Merge "Camera: Extend recommended stream configurations annotations"
diff --git a/Android.bp b/Android.bp
index 1012bb81..b3a2ef8 100644
--- a/Android.bp
+++ b/Android.bp
@@ -92,6 +92,7 @@
         "core/java/android/app/IWallpaperManagerCallback.aidl",
         "core/java/android/app/admin/IDeviceAdminService.aidl",
         "core/java/android/app/admin/IDevicePolicyManager.aidl",
+        "core/java/android/app/admin/StartInstallingUpdateCallback.aidl",
         "core/java/android/app/trust/IStrongAuthTracker.aidl",
         "core/java/android/app/trust/ITrustManager.aidl",
         "core/java/android/app/trust/ITrustListener.aidl",
@@ -157,9 +158,9 @@
         "core/java/android/hardware/IConsumerIrService.aidl",
         "core/java/android/hardware/ISerialManager.aidl",
         "core/java/android/hardware/biometrics/IBiometricEnabledOnKeyguardCallback.aidl",
-        "core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl",
         "core/java/android/hardware/biometrics/IBiometricService.aidl",
         "core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl",
+        "core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl",
         "core/java/android/hardware/biometrics/IBiometricServiceLockoutResetCallback.aidl",
         "core/java/android/hardware/display/IDisplayManager.aidl",
         "core/java/android/hardware/display/IDisplayManagerCallback.aidl",
@@ -254,6 +255,7 @@
         ":statsd_aidl",
         "core/java/android/os/ISystemUpdateManager.aidl",
         "core/java/android/os/IThermalEventListener.aidl",
+        "core/java/android/os/IThermalStatusListener.aidl",
         "core/java/android/os/IThermalService.aidl",
         "core/java/android/os/IUpdateLock.aidl",
         "core/java/android/os/IUserManager.aidl",
@@ -288,12 +290,12 @@
         "core/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl",
         "core/java/android/service/gatekeeper/IGateKeeperService.aidl",
         "core/java/android/service/intelligence/IIntelligenceService.aidl",
-
         "core/java/android/service/notification/INotificationListener.aidl",
         "core/java/android/service/notification/IStatusBarNotificationHolder.aidl",
         "core/java/android/service/notification/IConditionListener.aidl",
         "core/java/android/service/notification/IConditionProvider.aidl",
         "core/java/android/service/settings/suggestions/ISuggestionService.aidl",
+        "core/java/android/service/sms/IFinancialSmsService.aidl",
         "core/java/android/service/vr/IPersistentVrStateCallbacks.aidl",
         "core/java/android/service/vr/IVrListener.aidl",
         "core/java/android/service/vr/IVrManager.aidl",
@@ -334,8 +336,10 @@
         "core/java/android/service/chooser/IChooserTargetResult.aidl",
         "core/java/android/service/resolver/IResolverRankerService.aidl",
         "core/java/android/service/resolver/IResolverRankerResult.aidl",
+        "core/java/android/service/textclassifier/IConversationActionsCallback.aidl",
         "core/java/android/service/textclassifier/ITextClassificationCallback.aidl",
         "core/java/android/service/textclassifier/ITextClassifierService.aidl",
+        "core/java/android/service/textclassifier/ITextLanguageCallback.aidl",
         "core/java/android/service/textclassifier/ITextLinksCallback.aidl",
         "core/java/android/service/textclassifier/ITextSelectionCallback.aidl",
         "core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl",
@@ -344,6 +348,7 @@
         "core/java/android/view/accessibility/IAccessibilityManagerClient.aidl",
         "core/java/android/view/autofill/IAutoFillManager.aidl",
         "core/java/android/view/autofill/IAutoFillManagerClient.aidl",
+        "core/java/android/view/autofill/IAugmentedAutofillManagerClient.aidl",
         "core/java/android/view/autofill/IAutofillWindowPresenter.aidl",
         "core/java/android/view/intelligence/IIntelligenceManager.aidl",
         "core/java/android/view/IApplicationToken.aidl",
@@ -455,7 +460,6 @@
         "media/java/android/media/IMediaScannerListener.aidl",
         "media/java/android/media/IMediaScannerService.aidl",
         "media/java/android/media/IPlaybackConfigDispatcher.aidl",
-        "media/java/android/media/ISessionTokensListener.aidl",
         ":libaudioclient_aidl",
         "media/java/android/media/IRecordingConfigDispatcher.aidl",
         "media/java/android/media/IRemoteDisplayCallback.aidl",
@@ -568,6 +572,7 @@
         "telephony/java/com/android/internal/telephony/IApnSourceService.aidl",
         "telephony/java/com/android/internal/telephony/ICarrierConfigLoader.aidl",
         "telephony/java/com/android/internal/telephony/IMms.aidl",
+        "telephony/java/com/android/internal/telephony/INumberVerificationCallback.aidl",
         "telephony/java/com/android/internal/telephony/IOnSubscriptionsChangedListener.aidl",
         "telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl",
         "telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl",
@@ -648,6 +653,8 @@
         "core/java/com/android/server/DropboxLogTags.logtags",
         "core/java/org/chromium/arc/EventLogTags.logtags",
 
+        ":platform-properties",
+
         ":framework-statslog-gen",
     ],
 
@@ -721,12 +728,15 @@
         "android.hardware.wifi-V1.0-java-constants",
         "android.hardware.radio-V1.0-java",
         "android.hardware.radio-V1.3-java",
+        "android.hardware.radio-V1.4-java",
         "android.hardware.usb.gadget-V1.0-java",
         "netd_aidl_interface-java",
     ],
 
-    // Loaded with System.loadLibrary by android.view.textclassifier
     required: [
+        // TODO: remove gps_debug when the build system propagates "required" properly.
+        "gps_debug.conf",
+        // Loaded with System.loadLibrary by android.view.textclassifier
         "libmedia2_jni",
     ],
 
@@ -774,9 +784,11 @@
 java_library_host {
     name: "inspector-annotation",
     srcs: [
-        "core/java/android/view/inspector/InspectableChildren.java",
         "core/java/android/view/inspector/InspectableNodeName.java",
         "core/java/android/view/inspector/InspectableProperty.java",
+        // Needed for the ResourceId.ID_NULL constant
+        "core/java/android/content/res/ResourceId.java",
+        "core/java/android/annotation/AnyRes.java",
     ],
 }
 
@@ -856,7 +868,7 @@
 java_library {
     name: "ext",
     installable: true,
-    sdk_version: "core_current",
+    no_framework_libs: true,
     static_libs: [
         "libphonenumber-platform",
         "nist-sip",
@@ -1714,7 +1726,9 @@
         "core/java/android/annotation/RequiresPermission.java",
         "core/java/android/annotation/SdkConstant.java",
         "core/java/android/annotation/StringDef.java",
+        "core/java/android/annotation/TestApi.java",
         "core/java/android/annotation/UnsupportedAppUsage.java",
+        "core/java/com/android/internal/annotations/GuardedBy.java",
     ],
 }
 
diff --git a/Android.mk b/Android.mk
index 770ec20..b7dda9a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -73,55 +73,37 @@
 	( unzip -qo $< -d $(OUT_DOCS)/offline-sdk && touch -f $@ ) || exit 1
 
 # ==== hiddenapi lists =======================================
-.KATI_RESTAT: \
-	$(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST) \
-	$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST) \
-	$(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST) \
-	$(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST)
-$(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST): \
-    .KATI_IMPLICIT_OUTPUTS := \
-        $(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST) \
-        $(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST) \
-        $(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST)
-$(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST): \
+.KATI_RESTAT: $(INTERNAL_PLATFORM_HIDDENAPI_FLAGS)
+$(INTERNAL_PLATFORM_HIDDENAPI_FLAGS): \
     frameworks/base/tools/hiddenapi/generate_hiddenapi_lists.py \
     frameworks/base/config/hiddenapi-light-greylist.txt \
     frameworks/base/config/hiddenapi-vendor-list.txt \
+    frameworks/base/config/hiddenapi-greylist-max-o.txt \
     frameworks/base/config/hiddenapi-max-sdk-p-blacklist.txt \
     frameworks/base/config/hiddenapi-force-blacklist.txt \
     $(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST) \
     $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST) \
     $(INTERNAL_PLATFORM_REMOVED_DEX_API_FILE)
 	frameworks/base/tools/hiddenapi/generate_hiddenapi_lists.py \
-	    --input-public $(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST) \
-	    --input-private $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST) \
-	    --input-whitelists $(PRIVATE_WHITELIST_INPUTS) \
-	    --input-greylists \
+	    --public $(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST) \
+	    --private $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST) \
+	    --csv $(PRIVATE_FLAGS_INPUTS) \
+	    --greylist \
 	        frameworks/base/config/hiddenapi-light-greylist.txt \
 	        frameworks/base/config/hiddenapi-vendor-list.txt \
-	        frameworks/base/config/hiddenapi-max-sdk-p-blacklist.txt \
-	        <(comm -12 <(sort $(INTERNAL_PLATFORM_REMOVED_DEX_API_FILE)) \
-	                   $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST)) \
-	        $(PRIVATE_GREYLIST_INPUTS) \
-	    --input-blacklists frameworks/base/config/hiddenapi-force-blacklist.txt \
-	    --output-whitelist $(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST).tmp \
-	    --output-light-greylist $(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST).tmp \
-	    --output-dark-greylist $(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST).tmp \
-	    --output-blacklist $(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST).tmp
-	$(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST))
-	$(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST))
-	$(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST))
-	$(call commit-change-for-toc,$(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST))
+	    --greylist-ignore-conflicts $(INTERNAL_PLATFORM_REMOVED_DEX_API_FILE) \
+	    --greylist-max-o-ignore-conflicts \
+	        frameworks/base/config/hiddenapi-greylist-max-o.txt \
+	    --blacklist frameworks/base/config/hiddenapi-force-blacklist.txt \
+	    --output $@.tmp
+	$(call commit-change-for-toc,$@)
 
 $(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA): \
     frameworks/base/tools/hiddenapi/merge_csv.py \
     $(PRIVATE_METADATA_INPUTS)
 	frameworks/base/tools/hiddenapi/merge_csv.py $(PRIVATE_METADATA_INPUTS) > $@
 
-$(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_WHITELIST))
-$(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST))
-$(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_DARK_GREYLIST))
-$(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST))
+$(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_FLAGS))
 $(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA))
 
 # Include subdirectory makefiles
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 6deda0c..478e4fe 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -248,6 +248,9 @@
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/com.android.location.provider.jar)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/com.android.future.usb.accessory.jar)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/com.android.media.remotedisplay.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/overlay/ExperimentNavigationBarSlim)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor/overlay/ExperimentNavigationBarSlim)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/overlay/ExperimentNavigationBarSlim)
 # ******************************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER
 # ******************************************************************
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
index ec3366c..e731138 100644
--- a/PREUPLOAD.cfg
+++ b/PREUPLOAD.cfg
@@ -5,8 +5,12 @@
 
 strings_lint_hook = ${REPO_ROOT}/frameworks/base/tools/stringslint/stringslint_sha.sh ${PREUPLOAD_COMMIT}
 
-hidden_api_txt_hook = ${REPO_ROOT}/frameworks/base/tools/hiddenapi/checksorted_sha.sh ${PREUPLOAD_COMMIT} ${REPO_ROOT}
+hidden_api_txt_checksorted_hook = ${REPO_ROOT}/frameworks/base/tools/hiddenapi/checksorted_sha.sh ${PREUPLOAD_COMMIT} ${REPO_ROOT}
+
+hidden_api_txt_exclude_hook = ${REPO_ROOT}/frameworks/base/tools/hiddenapi/exclude.sh ${PREUPLOAD_COMMIT} ${REPO_ROOT}
 
 ktlint_hook = ${REPO_ROOT}/prebuilts/ktlint/ktlint.py -f ${PREUPLOAD_FILES}
 
 owners_hook = ${REPO_ROOT}/frameworks/base/tools/aosp/aosp_sha.sh ${PREUPLOAD_COMMIT} "OWNERS$"
+
+shell_hook = ${REPO_ROOT}/frameworks/base/tools/aosp/aosp_sha.sh ${PREUPLOAD_COMMIT} "^packages/Shell/"
diff --git a/api/current.txt b/api/current.txt
old mode 100755
new mode 100644
index 01b4612..2eb90d5
--- a/api/current.txt
+++ b/api/current.txt
@@ -150,6 +150,7 @@
     field public static final java.lang.String UPDATE_DEVICE_STATS = "android.permission.UPDATE_DEVICE_STATS";
     field public static final java.lang.String USE_BIOMETRIC = "android.permission.USE_BIOMETRIC";
     field public static final deprecated java.lang.String USE_FINGERPRINT = "android.permission.USE_FINGERPRINT";
+    field public static final java.lang.String USE_FULL_SCREEN_INTENT = "android.permission.USE_FULL_SCREEN_INTENT";
     field public static final java.lang.String USE_SIP = "android.permission.USE_SIP";
     field public static final java.lang.String VIBRATE = "android.permission.VIBRATE";
     field public static final java.lang.String WAKE_LOCK = "android.permission.WAKE_LOCK";
@@ -159,9 +160,6 @@
     field public static final java.lang.String WRITE_CONTACTS = "android.permission.WRITE_CONTACTS";
     field public static final deprecated java.lang.String WRITE_EXTERNAL_STORAGE = "android.permission.WRITE_EXTERNAL_STORAGE";
     field public static final java.lang.String WRITE_GSERVICES = "android.permission.WRITE_GSERVICES";
-    field public static final java.lang.String WRITE_MEDIA_AUDIO = "android.permission.WRITE_MEDIA_AUDIO";
-    field public static final java.lang.String WRITE_MEDIA_IMAGES = "android.permission.WRITE_MEDIA_IMAGES";
-    field public static final java.lang.String WRITE_MEDIA_VIDEO = "android.permission.WRITE_MEDIA_VIDEO";
     field public static final java.lang.String WRITE_SECURE_SETTINGS = "android.permission.WRITE_SECURE_SETTINGS";
     field public static final java.lang.String WRITE_SETTINGS = "android.permission.WRITE_SETTINGS";
     field public static final java.lang.String WRITE_SYNC_SETTINGS = "android.permission.WRITE_SYNC_SETTINGS";
@@ -483,6 +481,10 @@
     field public static final int dashGap = 16843175; // 0x10101a7
     field public static final int dashWidth = 16843174; // 0x10101a6
     field public static final int data = 16842798; // 0x101002e
+    field public static final int dataRetentionTime = 16844189; // 0x101059d
+    field public static final int dataSentOffDevice = 16844186; // 0x101059a
+    field public static final int dataSharedWithThirdParty = 16844187; // 0x101059b
+    field public static final int dataUsedForMonetization = 16844188; // 0x101059c
     field public static final int datePickerDialogTheme = 16843948; // 0x10104ac
     field public static final int datePickerMode = 16843955; // 0x10104b3
     field public static final int datePickerStyle = 16843612; // 0x101035c
@@ -1200,6 +1202,7 @@
     field public static final int selectableItemBackgroundBorderless = 16843868; // 0x101045c
     field public static final deprecated int selectedDateVerticalBar = 16843591; // 0x1010347
     field public static final deprecated int selectedWeekBackgroundColor = 16843586; // 0x1010342
+    field public static final int selectionDividerHeight = 16844190; // 0x101059e
     field public static final int sessionService = 16843837; // 0x101043d
     field public static final int settingsActivity = 16843301; // 0x1010225
     field public static final int settingsSliceUri = 16844179; // 0x1010593
@@ -1315,10 +1318,10 @@
     field public static final int summaryColumn = 16843426; // 0x10102a2
     field public static final int summaryOff = 16843248; // 0x10101f0
     field public static final int summaryOn = 16843247; // 0x10101ef
-    field public static final int supportsAmbientMode = 16844173; // 0x101058d
     field public static final int supportsAssist = 16844016; // 0x10104f0
     field public static final int supportsLaunchVoiceAssistFromKeyguard = 16844017; // 0x10104f1
     field public static final int supportsLocalInteraction = 16844047; // 0x101050f
+    field public static final int supportsMultipleDisplays = 16844183; // 0x1010597
     field public static final int supportsPictureInPicture = 16844023; // 0x10104f7
     field public static final int supportsRtl = 16843695; // 0x10103af
     field public static final int supportsSwitchingToNextInputMethod = 16843755; // 0x10103eb
@@ -1498,7 +1501,9 @@
     field public static final deprecated int unfocusedMonthDateColor = 16843588; // 0x1010344
     field public static final int unselectedAlpha = 16843278; // 0x101020e
     field public static final int updatePeriodMillis = 16843344; // 0x1010250
+    field public static final int usageInfoRequired = 16844185; // 0x1010599
     field public static final int use32bitAbi = 16844053; // 0x1010515
+    field public static final int useAppZygote = 16844184; // 0x1010598
     field public static final int useDefaultMargins = 16843641; // 0x1010379
     field public static final int useIntrinsicSizeAsMinimum = 16843536; // 0x1010310
     field public static final int useLevel = 16843167; // 0x101019f
@@ -3804,6 +3809,7 @@
     method public void overridePendingTransition(int, int);
     method public void postponeEnterTransition();
     method public void recreate();
+    method public void registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks);
     method public void registerForContextMenu(android.view.View);
     method public boolean releaseInstance();
     method public final deprecated void removeDialog(int);
@@ -3881,6 +3887,7 @@
     method public deprecated void stopManagingCursor(android.database.Cursor);
     method public void takeKeyEvents(boolean);
     method public void triggerSearch(java.lang.String, android.os.Bundle);
+    method public void unregisterActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks);
     method public void unregisterForContextMenu(android.view.View);
     field public static final int DEFAULT_KEYS_DIALER = 1; // 0x1
     field public static final int DEFAULT_KEYS_DISABLE = 0; // 0x0
@@ -5229,6 +5236,7 @@
     ctor public Notification(android.os.Parcel);
     method public android.app.Notification clone();
     method public int describeContents();
+    method public boolean getAllowSystemGeneratedContextualActions();
     method public android.app.PendingIntent getAppOverlayIntent();
     method public int getBadgeIconType();
     method public java.lang.String getChannelId();
@@ -5460,6 +5468,7 @@
     method public android.app.Notification.Style getStyle();
     method public static android.app.Notification.Builder recoverBuilder(android.content.Context, android.app.Notification);
     method public android.app.Notification.Builder setActions(android.app.Notification.Action...);
+    method public android.app.Notification.Builder setAllowSystemGeneratedContextualActions(boolean);
     method public android.app.Notification.Builder setAppOverlayIntent(android.app.PendingIntent);
     method public android.app.Notification.Builder setAutoCancel(boolean);
     method public android.app.Notification.Builder setBadgeIconType(int);
@@ -6351,7 +6360,7 @@
     method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
     method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
     method public android.graphics.drawable.Drawable loadThumbnail(android.content.pm.PackageManager);
-    method public boolean supportsAmbientMode();
+    method public boolean supportsMultipleDisplays();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.WallpaperInfo> CREATOR;
   }
@@ -6509,6 +6518,7 @@
   }
 
   public class DevicePolicyManager {
+    method public void addCrossProfileCalendarPackage(android.content.ComponentName, java.lang.String);
     method public void addCrossProfileIntentFilter(android.content.ComponentName, android.content.IntentFilter, int);
     method public boolean addCrossProfileWidgetProvider(android.content.ComponentName, java.lang.String);
     method public int addOverrideApn(android.content.ComponentName, android.telephony.data.ApnSetting);
@@ -6538,6 +6548,7 @@
     method public boolean getBluetoothContactSharingDisabled(android.content.ComponentName);
     method public boolean getCameraDisabled(android.content.ComponentName);
     method public deprecated java.lang.String getCertInstallerPackage(android.content.ComponentName) throws java.lang.SecurityException;
+    method public java.util.Set<java.lang.String> getCrossProfileCalendarPackages(android.content.ComponentName);
     method public boolean getCrossProfileCallerIdDisabled(android.content.ComponentName);
     method public boolean getCrossProfileContactsSearchDisabled(android.content.ComponentName);
     method public java.util.List<java.lang.String> getCrossProfileWidgetProviders(android.content.ComponentName);
@@ -6598,6 +6609,7 @@
     method public boolean installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate, java.lang.String);
     method public boolean installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate[], java.lang.String, boolean);
     method public boolean installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate[], java.lang.String, int);
+    method public void installSystemUpdate(android.content.ComponentName, android.net.Uri, java.util.concurrent.Executor, android.app.admin.DevicePolicyManager.InstallUpdateCallback);
     method public boolean isActivePasswordSufficient();
     method public boolean isAdminActive(android.content.ComponentName);
     method public boolean isAffiliatedUser();
@@ -6625,6 +6637,7 @@
     method public int logoutUser(android.content.ComponentName);
     method public void reboot(android.content.ComponentName);
     method public void removeActiveAdmin(android.content.ComponentName);
+    method public boolean removeCrossProfileCalendarPackage(android.content.ComponentName, java.lang.String);
     method public boolean removeCrossProfileWidgetProvider(android.content.ComponentName, java.lang.String);
     method public boolean removeKeyPair(android.content.ComponentName, java.lang.String);
     method public boolean removeOverrideApn(android.content.ComponentName, int);
@@ -6840,6 +6853,16 @@
     field public static final int WIPE_RESET_PROTECTION_DATA = 2; // 0x2
   }
 
+  public static abstract class DevicePolicyManager.InstallUpdateCallback {
+    ctor public DevicePolicyManager.InstallUpdateCallback();
+    method public void onInstallUpdateError(int, java.lang.String);
+    field public static final int UPDATE_ERROR_BATTERY_LOW = 5; // 0x5
+    field public static final int UPDATE_ERROR_FILE_NOT_FOUND = 4; // 0x4
+    field public static final int UPDATE_ERROR_INCORRECT_OS_VERSION = 2; // 0x2
+    field public static final int UPDATE_ERROR_UNKNOWN = 1; // 0x1
+    field public static final int UPDATE_ERROR_UPDATE_FILE_INVALID = 3; // 0x3
+  }
+
   public static abstract interface DevicePolicyManager.OnClearApplicationUserDataListener {
     method public abstract void onApplicationUserDataCleared(java.lang.String, boolean);
   }
@@ -7307,7 +7330,10 @@
     method public android.content.Intent createRequestRoleIntent(java.lang.String);
     method public boolean isRoleAvailable(java.lang.String);
     method public boolean isRoleHeld(java.lang.String);
+    field public static final java.lang.String ROLE_BROWSER = "android.app.role.BROWSER";
     field public static final java.lang.String ROLE_DIALER = "android.app.role.DIALER";
+    field public static final java.lang.String ROLE_GALLERY = "android.app.role.GALLERY";
+    field public static final java.lang.String ROLE_MUSIC = "android.app.role.MUSIC";
     field public static final java.lang.String ROLE_SMS = "android.app.role.SMS";
   }
 
@@ -7666,6 +7692,7 @@
     method protected void prepareView(android.view.View);
     method public void setAppWidget(int, android.appwidget.AppWidgetProviderInfo);
     method public void setExecutor(java.util.concurrent.Executor);
+    method public void setOnLightBackground(boolean);
     method public void updateAppWidget(android.widget.RemoteViews);
     method public void updateAppWidgetOptions(android.os.Bundle);
     method public void updateAppWidgetSize(android.os.Bundle, int, int, int, int);
@@ -9532,6 +9559,7 @@
     method public abstract java.io.File getNoBackupFilesDir();
     method public abstract java.io.File getObbDir();
     method public abstract java.io.File[] getObbDirs();
+    method public abstract java.lang.String getOpPackageName();
     method public abstract java.lang.String getPackageCodePath();
     method public abstract android.content.pm.PackageManager getPackageManager();
     method public abstract java.lang.String getPackageName();
@@ -9598,6 +9626,7 @@
     method public abstract void unbindService(android.content.ServiceConnection);
     method public void unregisterComponentCallbacks(android.content.ComponentCallbacks);
     method public abstract void unregisterReceiver(android.content.BroadcastReceiver);
+    method public abstract void updateServiceGroup(android.content.ServiceConnection, int, int);
     field public static final java.lang.String ACCESSIBILITY_SERVICE = "accessibility";
     field public static final java.lang.String ACCOUNT_SERVICE = "account";
     field public static final java.lang.String ACTIVITY_SERVICE = "activity";
@@ -9741,6 +9770,7 @@
     method public java.io.File getNoBackupFilesDir();
     method public java.io.File getObbDir();
     method public java.io.File[] getObbDirs();
+    method public java.lang.String getOpPackageName();
     method public java.lang.String getPackageCodePath();
     method public android.content.pm.PackageManager getPackageManager();
     method public java.lang.String getPackageName();
@@ -9796,6 +9826,7 @@
     method public boolean stopService(android.content.Intent);
     method public void unbindService(android.content.ServiceConnection);
     method public void unregisterReceiver(android.content.BroadcastReceiver);
+    method public void updateServiceGroup(android.content.ServiceConnection, int, int);
   }
 
   public deprecated class CursorLoader extends android.content.AsyncTaskLoader {
@@ -10023,6 +10054,7 @@
     field public static final java.lang.String ACTION_CREATE_SHORTCUT = "android.intent.action.CREATE_SHORTCUT";
     field public static final java.lang.String ACTION_DATE_CHANGED = "android.intent.action.DATE_CHANGED";
     field public static final java.lang.String ACTION_DEFAULT = "android.intent.action.VIEW";
+    field public static final java.lang.String ACTION_DEFINE = "android.intent.action.DEFINE";
     field public static final java.lang.String ACTION_DELETE = "android.intent.action.DELETE";
     field public static final deprecated java.lang.String ACTION_DEVICE_STORAGE_LOW = "android.intent.action.DEVICE_STORAGE_LOW";
     field public static final deprecated java.lang.String ACTION_DEVICE_STORAGE_OK = "android.intent.action.DEVICE_STORAGE_OK";
@@ -10113,6 +10145,7 @@
     field public static final java.lang.String ACTION_TIMEZONE_CHANGED = "android.intent.action.TIMEZONE_CHANGED";
     field public static final java.lang.String ACTION_TIME_CHANGED = "android.intent.action.TIME_SET";
     field public static final java.lang.String ACTION_TIME_TICK = "android.intent.action.TIME_TICK";
+    field public static final java.lang.String ACTION_TRANSLATE = "android.intent.action.TRANSLATE";
     field public static final java.lang.String ACTION_UID_REMOVED = "android.intent.action.UID_REMOVED";
     field public static final deprecated java.lang.String ACTION_UMS_CONNECTED = "android.intent.action.UMS_CONNECTED";
     field public static final deprecated java.lang.String ACTION_UMS_DISCONNECTED = "android.intent.action.UMS_DISCONNECTED";
@@ -11148,8 +11181,8 @@
     field public android.content.pm.ProviderInfo[] providers;
     field public android.content.pm.ActivityInfo[] receivers;
     field public android.content.pm.FeatureInfo[] reqFeatures;
-    field public java.lang.String[] requestedPermissions;
-    field public int[] requestedPermissionsFlags;
+    field public deprecated java.lang.String[] requestedPermissions;
+    field public deprecated int[] requestedPermissionsFlags;
     field public android.content.pm.ServiceInfo[] services;
     field public java.lang.String sharedUserId;
     field public int sharedUserLabel;
@@ -11157,6 +11190,7 @@
     field public android.content.pm.SigningInfo signingInfo;
     field public java.lang.String[] splitNames;
     field public int[] splitRevisionCodes;
+    field public android.content.pm.UsesPermissionInfo[] usesPermissions;
     field public deprecated int versionCode;
     field public java.lang.String versionName;
   }
@@ -11307,7 +11341,7 @@
     method public abstract int checkSignatures(java.lang.String, java.lang.String);
     method public abstract int checkSignatures(int, int);
     method public abstract void clearInstantAppCookie();
-    method public abstract void clearPackagePreferredActivities(java.lang.String);
+    method public abstract deprecated void clearPackagePreferredActivities(java.lang.String);
     method public abstract java.lang.String[] currentToCanonicalPackageNames(java.lang.String[]);
     method public abstract void extendVerificationTimeout(int, int, long);
     method public abstract android.graphics.drawable.Drawable getActivityBanner(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
@@ -11351,8 +11385,8 @@
     method public abstract java.util.List<android.content.pm.PackageInfo> getPackagesHoldingPermissions(java.lang.String[], int);
     method public abstract android.content.pm.PermissionGroupInfo getPermissionGroupInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.pm.PermissionInfo getPermissionInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract int getPreferredActivities(java.util.List<android.content.IntentFilter>, java.util.List<android.content.ComponentName>, java.lang.String);
-    method public abstract java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
+    method public abstract deprecated int getPreferredActivities(java.util.List<android.content.IntentFilter>, java.util.List<android.content.ComponentName>, java.lang.String);
+    method public abstract deprecated java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
     method public abstract android.content.pm.ProviderInfo getProviderInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.pm.ActivityInfo getReceiverInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.res.Resources getResourcesForActivity(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
@@ -11632,6 +11666,7 @@
     field public java.lang.String group;
     field public java.lang.CharSequence nonLocalizedDescription;
     field public deprecated int protectionLevel;
+    field public boolean usageInfoRequired;
   }
 
   public final class ProviderInfo extends android.content.pm.ComponentInfo implements android.os.Parcelable {
@@ -11694,6 +11729,7 @@
     field public static final int FLAG_ISOLATED_PROCESS = 2; // 0x2
     field public static final int FLAG_SINGLE_USER = 1073741824; // 0x40000000
     field public static final int FLAG_STOP_WITH_TASK = 1; // 0x1
+    field public static final int FLAG_USE_APP_ZYGOTE = 8; // 0x8
     field public int flags;
     field public java.lang.String permission;
   }
@@ -11810,6 +11846,28 @@
     field public static final android.os.Parcelable.Creator<android.content.pm.SigningInfo> CREATOR;
   }
 
+  public final class UsesPermissionInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
+    method public int describeContents();
+    method public int getDataRetention();
+    method public int getDataRetentionWeeks();
+    method public int getDataSentOffDevice();
+    method public int getDataSharedWithThirdParty();
+    method public int getDataUsedForMonetization();
+    method public int getFlags();
+    method public java.lang.String getPermission();
+    field public static final android.os.Parcelable.Creator<android.content.pm.UsesPermissionInfo> CREATOR;
+    field public static final int FLAG_REQUESTED_PERMISSION_GRANTED = 2; // 0x2
+    field public static final int RETENTION_NOT_RETAINED = 1; // 0x1
+    field public static final int RETENTION_SPECIFIED = 4; // 0x4
+    field public static final int RETENTION_UNDEFINED = 0; // 0x0
+    field public static final int RETENTION_UNLIMITED = 3; // 0x3
+    field public static final int RETENTION_USER_SELECTED = 2; // 0x2
+    field public static final int USAGE_NO = 3; // 0x3
+    field public static final int USAGE_UNDEFINED = 0; // 0x0
+    field public static final int USAGE_USER_TRIGGERED = 2; // 0x2
+    field public static final int USAGE_YES = 1; // 0x1
+  }
+
   public final class VersionedPackage implements android.os.Parcelable {
     ctor public VersionedPackage(java.lang.String, int);
     ctor public VersionedPackage(java.lang.String, long);
@@ -13671,6 +13729,8 @@
   public abstract class ColorSpace {
     method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[]);
     method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[], android.graphics.ColorSpace.Adaptation);
+    method public static float[] cctToIlluminantdXyz(int);
+    method public static float[] chromaticAdaptation(android.graphics.ColorSpace.Adaptation, float[], float[]);
     method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace);
     method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
     method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace);
@@ -13919,6 +13979,7 @@
   }
 
   public final class Insets {
+    method public static android.graphics.Insets add(android.graphics.Insets, android.graphics.Insets);
     method public static android.graphics.Insets of(int, int, int, int);
     method public static android.graphics.Insets of(android.graphics.Rect);
     field public static final android.graphics.Insets NONE;
@@ -14671,6 +14732,7 @@
     method public float getTranslationX();
     method public float getTranslationY();
     method public float getTranslationZ();
+    method public long getUniqueId();
     method public int getWidth();
     method public boolean hasDisplayList();
     method public boolean hasIdentityMatrix();
@@ -14804,6 +14866,7 @@
     ctor public Typeface.CustomFallbackBuilder(android.graphics.fonts.FontFamily);
     method public android.graphics.Typeface.CustomFallbackBuilder addCustomFallback(android.graphics.fonts.FontFamily);
     method public android.graphics.Typeface build();
+    method public static int getMaxCustomFallbackCount();
     method public android.graphics.Typeface.CustomFallbackBuilder setStyle(android.graphics.fonts.FontStyle);
     method public android.graphics.Typeface.CustomFallbackBuilder setSystemFallback(java.lang.String);
   }
@@ -15023,6 +15086,7 @@
     method public void invalidateSelf();
     method public boolean isAutoMirrored();
     method public boolean isFilterBitmap();
+    method public boolean isProjected();
     method public boolean isStateful();
     method public final boolean isVisible();
     method public void jumpToCurrentState();
@@ -22623,7 +22687,7 @@
     method public abstract void onLocationChanged(android.location.Location);
     method public abstract void onProviderDisabled(java.lang.String);
     method public abstract void onProviderEnabled(java.lang.String);
-    method public abstract void onStatusChanged(java.lang.String, int, android.os.Bundle);
+    method public abstract deprecated void onStatusChanged(java.lang.String, int, android.os.Bundle);
   }
 
   public class LocationManager {
@@ -22635,7 +22699,7 @@
     method public void addTestProvider(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int);
     method public void clearTestProviderEnabled(java.lang.String);
     method public void clearTestProviderLocation(java.lang.String);
-    method public void clearTestProviderStatus(java.lang.String);
+    method public deprecated void clearTestProviderStatus(java.lang.String);
     method public java.util.List<java.lang.String> getAllProviders();
     method public java.lang.String getBestProvider(android.location.Criteria, boolean);
     method public java.lang.String getGnssHardwareModelName();
@@ -22672,7 +22736,7 @@
     method public boolean sendExtraCommand(java.lang.String, java.lang.String, android.os.Bundle);
     method public void setTestProviderEnabled(java.lang.String, boolean);
     method public void setTestProviderLocation(java.lang.String, android.location.Location);
-    method public void setTestProviderStatus(java.lang.String, int, android.os.Bundle, long);
+    method public deprecated void setTestProviderStatus(java.lang.String, int, android.os.Bundle, long);
     method public void unregisterGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback);
     method public void unregisterGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback);
     method public void unregisterGnssStatusCallback(android.location.GnssStatus.Callback);
@@ -22680,7 +22744,7 @@
     field public static final java.lang.String KEY_LOCATION_CHANGED = "location";
     field public static final java.lang.String KEY_PROVIDER_ENABLED = "providerEnabled";
     field public static final java.lang.String KEY_PROXIMITY_ENTERING = "entering";
-    field public static final java.lang.String KEY_STATUS_CHANGED = "status";
+    field public static final deprecated java.lang.String KEY_STATUS_CHANGED = "status";
     field public static final java.lang.String MODE_CHANGED_ACTION = "android.location.MODE_CHANGED";
     field public static final java.lang.String NETWORK_PROVIDER = "network";
     field public static final java.lang.String PASSIVE_PROVIDER = "passive";
@@ -22699,9 +22763,9 @@
     method public boolean supportsAltitude();
     method public boolean supportsBearing();
     method public boolean supportsSpeed();
-    field public static final int AVAILABLE = 2; // 0x2
-    field public static final int OUT_OF_SERVICE = 0; // 0x0
-    field public static final int TEMPORARILY_UNAVAILABLE = 1; // 0x1
+    field public static final deprecated int AVAILABLE = 2; // 0x2
+    field public static final deprecated int OUT_OF_SERVICE = 0; // 0x0
+    field public static final deprecated int TEMPORARILY_UNAVAILABLE = 1; // 0x1
   }
 
   public abstract interface OnNmeaMessageListener {
@@ -23439,6 +23503,7 @@
   }
 
   public class ExifInterface {
+    ctor public ExifInterface(java.io.File) throws java.io.IOException;
     ctor public ExifInterface(java.lang.String) throws java.io.IOException;
     ctor public ExifInterface(java.io.FileDescriptor) throws java.io.IOException;
     ctor public ExifInterface(java.io.InputStream) throws java.io.IOException;
@@ -23446,11 +23511,13 @@
     method public java.lang.String getAttribute(java.lang.String);
     method public double getAttributeDouble(java.lang.String, double);
     method public int getAttributeInt(java.lang.String, int);
+    method public long[] getAttributeRange(java.lang.String);
     method public boolean getLatLong(float[]);
     method public byte[] getThumbnail();
     method public android.graphics.Bitmap getThumbnailBitmap();
     method public byte[] getThumbnailBytes();
     method public long[] getThumbnailRange();
+    method public boolean hasAttribute(java.lang.String);
     method public boolean hasThumbnail();
     method public boolean isThumbnailCompressed();
     method public void saveAttributes() throws java.io.IOException;
@@ -24485,16 +24552,30 @@
 
   public final class MediaFormat {
     ctor public MediaFormat();
+    ctor public MediaFormat(android.media.MediaFormat);
+    method public boolean containsFeature(java.lang.String);
     method public boolean containsKey(java.lang.String);
     method public static android.media.MediaFormat createAudioFormat(java.lang.String, int, int);
     method public static android.media.MediaFormat createSubtitleFormat(java.lang.String, java.lang.String);
     method public static android.media.MediaFormat createVideoFormat(java.lang.String, int, int);
     method public java.nio.ByteBuffer getByteBuffer(java.lang.String);
+    method public java.nio.ByteBuffer getByteBuffer(java.lang.String, java.nio.ByteBuffer);
     method public boolean getFeatureEnabled(java.lang.String);
+    method public java.util.Set<java.lang.String> getFeatures();
     method public float getFloat(java.lang.String);
+    method public float getFloat(java.lang.String, float);
     method public int getInteger(java.lang.String);
+    method public int getInteger(java.lang.String, int);
+    method public java.util.Set<java.lang.String> getKeys();
     method public long getLong(java.lang.String);
+    method public long getLong(java.lang.String, long);
+    method public java.lang.Number getNumber(java.lang.String);
+    method public java.lang.Number getNumber(java.lang.String, java.lang.Number);
     method public java.lang.String getString(java.lang.String);
+    method public java.lang.String getString(java.lang.String, java.lang.String);
+    method public int getValueTypeForKey(java.lang.String);
+    method public void removeFeature(java.lang.String);
+    method public void removeKey(java.lang.String);
     method public void setByteBuffer(java.lang.String, java.nio.ByteBuffer);
     method public void setFeatureEnabled(java.lang.String, boolean);
     method public void setFloat(java.lang.String, float);
@@ -24570,6 +24651,7 @@
     field public static final java.lang.String KEY_WIDTH = "width";
     field public static final java.lang.String MIMETYPE_AUDIO_AAC = "audio/mp4a-latm";
     field public static final java.lang.String MIMETYPE_AUDIO_AC3 = "audio/ac3";
+    field public static final java.lang.String MIMETYPE_AUDIO_AC4 = "audio/ac4";
     field public static final java.lang.String MIMETYPE_AUDIO_AMR_NB = "audio/3gpp";
     field public static final java.lang.String MIMETYPE_AUDIO_AMR_WB = "audio/amr-wb";
     field public static final java.lang.String MIMETYPE_AUDIO_EAC3 = "audio/eac3";
@@ -24598,6 +24680,12 @@
     field public static final java.lang.String MIMETYPE_VIDEO_SCRAMBLED = "video/scrambled";
     field public static final java.lang.String MIMETYPE_VIDEO_VP8 = "video/x-vnd.on2.vp8";
     field public static final java.lang.String MIMETYPE_VIDEO_VP9 = "video/x-vnd.on2.vp9";
+    field public static final int TYPE_BYTE_BUFFER = 5; // 0x5
+    field public static final int TYPE_FLOAT = 3; // 0x3
+    field public static final int TYPE_INTEGER = 1; // 0x1
+    field public static final int TYPE_LONG = 2; // 0x2
+    field public static final int TYPE_NULL = 0; // 0x0
+    field public static final int TYPE_STRING = 4; // 0x4
   }
 
   public final class MediaMetadata implements android.os.Parcelable {
@@ -28989,20 +29077,21 @@
 
   public class WifiManager {
     method public deprecated int addNetwork(android.net.wifi.WifiConfiguration);
-    method public boolean addNetworkSuggestions(java.util.List<android.net.wifi.WifiNetworkSuggestion>);
+    method public int addNetworkSuggestions(java.util.List<android.net.wifi.WifiNetworkSuggestion>);
     method public void addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration);
     method public static int calculateSignalLevel(int, int);
     method public deprecated void cancelWps(android.net.wifi.WifiManager.WpsCallback);
     method public static int compareSignalLevel(int, int);
     method public android.net.wifi.WifiManager.MulticastLock createMulticastLock(java.lang.String);
     method public android.net.wifi.WifiManager.WifiLock createWifiLock(int, java.lang.String);
-    method public android.net.wifi.WifiManager.WifiLock createWifiLock(java.lang.String);
+    method public deprecated android.net.wifi.WifiManager.WifiLock createWifiLock(java.lang.String);
     method public deprecated boolean disableNetwork(int);
     method public deprecated boolean disconnect();
     method public deprecated boolean enableNetwork(int, boolean);
     method public deprecated java.util.List<android.net.wifi.WifiConfiguration> getConfiguredNetworks();
     method public android.net.wifi.WifiInfo getConnectionInfo();
     method public android.net.DhcpInfo getDhcpInfo();
+    method public int getMaxNumberOfNetworkSuggestionsPerApp();
     method public java.util.List<android.net.wifi.hotspot2.PasspointConfiguration> getPasspointConfigurations();
     method public java.util.List<android.net.wifi.ScanResult> getScanResults();
     method public int getWifiState();
@@ -29021,7 +29110,7 @@
     method public deprecated boolean reassociate();
     method public deprecated boolean reconnect();
     method public deprecated boolean removeNetwork(int);
-    method public boolean removeNetworkSuggestions(java.util.List<android.net.wifi.WifiNetworkSuggestion>);
+    method public int removeNetworkSuggestions(java.util.List<android.net.wifi.WifiNetworkSuggestion>);
     method public void removePasspointConfiguration(java.lang.String);
     method public deprecated boolean saveConfiguration();
     method public void setTdlsEnabled(java.net.InetAddress, boolean);
@@ -29050,11 +29139,17 @@
     field public static final java.lang.String NETWORK_STATE_CHANGED_ACTION = "android.net.wifi.STATE_CHANGE";
     field public static final java.lang.String RSSI_CHANGED_ACTION = "android.net.wifi.RSSI_CHANGED";
     field public static final java.lang.String SCAN_RESULTS_AVAILABLE_ACTION = "android.net.wifi.SCAN_RESULTS";
+    field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_DUPLICATE = 2; // 0x2
+    field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_EXCEEDS_MAX_PER_APP = 3; // 0x3
+    field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL = 1; // 0x1
+    field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_REMOVE_INVALID = 4; // 0x4
+    field public static final int STATUS_NETWORK_SUGGESTIONS_SUCCESS = 0; // 0x0
     field public static final deprecated java.lang.String SUPPLICANT_CONNECTION_CHANGE_ACTION = "android.net.wifi.supplicant.CONNECTION_CHANGE";
     field public static final deprecated java.lang.String SUPPLICANT_STATE_CHANGED_ACTION = "android.net.wifi.supplicant.STATE_CHANGE";
-    field public static final int WIFI_MODE_FULL = 1; // 0x1
+    field public static final deprecated 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_SCAN_ONLY = 2; // 0x2
+    field public static final int WIFI_MODE_FULL_LOW_LATENCY = 4; // 0x4
+    field public static final deprecated int WIFI_MODE_SCAN_ONLY = 2; // 0x2
     field public static final java.lang.String WIFI_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_STATE_CHANGED";
     field public static final int WIFI_STATE_DISABLED = 1; // 0x1
     field public static final int WIFI_STATE_DISABLING = 0; // 0x0
@@ -29091,6 +29186,9 @@
     method public void setReferenceCounted(boolean);
   }
 
+  public static abstract class WifiManager.NetworkSuggestionsStatusCode implements java.lang.annotation.Annotation {
+  }
+
   public class WifiManager.WifiLock {
     method public void acquire();
     method public boolean isHeld();
@@ -29112,15 +29210,18 @@
     method public android.net.wifi.WifiNetworkSuggestion buildNetworkSuggestion();
     method public android.net.wifi.WifiNetworkConfigBuilder setBssid(android.net.MacAddress);
     method public android.net.wifi.WifiNetworkConfigBuilder setBssidPattern(android.net.MacAddress, android.net.MacAddress);
-    method public android.net.wifi.WifiNetworkConfigBuilder setEnterpriseConfig(android.net.wifi.WifiEnterpriseConfig);
     method public android.net.wifi.WifiNetworkConfigBuilder setIsAppInteractionRequired();
+    method public android.net.wifi.WifiNetworkConfigBuilder setIsEnhancedOpen();
     method public android.net.wifi.WifiNetworkConfigBuilder setIsHiddenSsid();
     method public android.net.wifi.WifiNetworkConfigBuilder setIsMetered();
     method public android.net.wifi.WifiNetworkConfigBuilder setIsUserInteractionRequired();
     method public android.net.wifi.WifiNetworkConfigBuilder setPriority(int);
-    method public android.net.wifi.WifiNetworkConfigBuilder setPskPassphrase(java.lang.String);
     method public android.net.wifi.WifiNetworkConfigBuilder setSsid(java.lang.String);
     method public android.net.wifi.WifiNetworkConfigBuilder setSsidPattern(android.os.PatternMatcher);
+    method public android.net.wifi.WifiNetworkConfigBuilder setWpa2EnterpriseConfig(android.net.wifi.WifiEnterpriseConfig);
+    method public android.net.wifi.WifiNetworkConfigBuilder setWpa2Passphrase(java.lang.String);
+    method public android.net.wifi.WifiNetworkConfigBuilder setWpa3EnterpriseConfig(android.net.wifi.WifiEnterpriseConfig);
+    method public android.net.wifi.WifiNetworkConfigBuilder setWpa3Passphrase(java.lang.String);
   }
 
   public final class WifiNetworkSuggestion implements android.os.Parcelable {
@@ -29379,11 +29480,24 @@
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pConfig> CREATOR;
+    field public static final int GROUP_OWNER_BAND_2GHZ = 1; // 0x1
+    field public static final int GROUP_OWNER_BAND_5GHZ = 2; // 0x2
+    field public static final int GROUP_OWNER_BAND_AUTO = 0; // 0x0
     field public java.lang.String deviceAddress;
     field public int groupOwnerIntent;
     field public android.net.wifi.WpsInfo wps;
   }
 
+  public static final class WifiP2pConfig.Builder {
+    ctor public WifiP2pConfig.Builder();
+    method public android.net.wifi.p2p.WifiP2pConfig build();
+    method public android.net.wifi.p2p.WifiP2pConfig.Builder enablePersistentMode(boolean);
+    method public android.net.wifi.p2p.WifiP2pConfig.Builder setDeviceAddress(android.net.MacAddress);
+    method public android.net.wifi.p2p.WifiP2pConfig.Builder setGroupOwnerBand(int);
+    method public android.net.wifi.p2p.WifiP2pConfig.Builder setNetworkName(java.lang.String);
+    method public android.net.wifi.p2p.WifiP2pConfig.Builder setPassphrase(java.lang.String);
+  }
+
   public class WifiP2pDevice implements android.os.Parcelable {
     ctor public WifiP2pDevice();
     ctor public WifiP2pDevice(android.net.wifi.p2p.WifiP2pDevice);
@@ -29450,6 +29564,7 @@
     method public void clearServiceRequests(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void connect(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pConfig, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void createGroup(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method public void createGroup(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pConfig, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void discoverPeers(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void discoverServices(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public android.net.wifi.p2p.WifiP2pManager.Channel initialize(android.content.Context, android.os.Looper, android.net.wifi.p2p.WifiP2pManager.ChannelListener);
@@ -29457,7 +29572,10 @@
     method public void removeLocalService(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.nsd.WifiP2pServiceInfo, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void removeServiceRequest(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.nsd.WifiP2pServiceRequest, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void requestConnectionInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ConnectionInfoListener);
+    method public void requestDiscoveryState(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.DiscoveryStateListener);
     method public void requestGroupInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.GroupInfoListener);
+    method public void requestNetworkInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.NetworkInfoListener);
+    method public void requestP2pState(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.P2pStateListener);
     method public void requestPeers(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.PeerListListener);
     method public void setDnsSdResponseListeners(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.DnsSdServiceResponseListener, android.net.wifi.p2p.WifiP2pManager.DnsSdTxtRecordListener);
     method public void setServiceResponseListener(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ServiceResponseListener);
@@ -29502,6 +29620,10 @@
     method public abstract void onConnectionInfoAvailable(android.net.wifi.p2p.WifiP2pInfo);
   }
 
+  public static abstract interface WifiP2pManager.DiscoveryStateListener {
+    method public abstract void onDiscoveryStateAvailable(int);
+  }
+
   public static abstract interface WifiP2pManager.DnsSdServiceResponseListener {
     method public abstract void onDnsSdServiceAvailable(java.lang.String, java.lang.String, android.net.wifi.p2p.WifiP2pDevice);
   }
@@ -29514,6 +29636,14 @@
     method public abstract void onGroupInfoAvailable(android.net.wifi.p2p.WifiP2pGroup);
   }
 
+  public static abstract interface WifiP2pManager.NetworkInfoListener {
+    method public abstract void onNetworkInfoAvailable(android.net.NetworkInfo);
+  }
+
+  public static abstract interface WifiP2pManager.P2pStateListener {
+    method public abstract void onP2pStateAvailable(int);
+  }
+
   public static abstract interface WifiP2pManager.PeerListListener {
     method public abstract void onPeersAvailable(android.net.wifi.p2p.WifiP2pDeviceList);
   }
@@ -33430,6 +33560,7 @@
     method public static boolean isExternalStorageRemovable();
     method public static boolean isExternalStorageRemovable(java.io.File);
     field public static java.lang.String DIRECTORY_ALARMS;
+    field public static java.lang.String DIRECTORY_AUDIOBOOKS;
     field public static java.lang.String DIRECTORY_DCIM;
     field public static java.lang.String DIRECTORY_DOCUMENTS;
     field public static java.lang.String DIRECTORY_DOWNLOADS;
@@ -34630,14 +34761,14 @@
 
 package android.preference {
 
-  public class CheckBoxPreference extends android.preference.TwoStatePreference {
+  public deprecated class CheckBoxPreference extends android.preference.TwoStatePreference {
     ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet, int);
     ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet);
     ctor public CheckBoxPreference(android.content.Context);
   }
 
-  public abstract class DialogPreference extends android.preference.Preference implements android.content.DialogInterface.OnClickListener android.content.DialogInterface.OnDismissListener android.preference.PreferenceManager.OnActivityDestroyListener {
+  public abstract deprecated class DialogPreference extends android.preference.Preference implements android.content.DialogInterface.OnClickListener android.content.DialogInterface.OnDismissListener android.preference.PreferenceManager.OnActivityDestroyListener {
     ctor public DialogPreference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public DialogPreference(android.content.Context, android.util.AttributeSet, int);
     ctor public DialogPreference(android.content.Context, android.util.AttributeSet);
@@ -34670,7 +34801,7 @@
     method protected void showDialog(android.os.Bundle);
   }
 
-  public class EditTextPreference extends android.preference.DialogPreference {
+  public deprecated class EditTextPreference extends android.preference.DialogPreference {
     ctor public EditTextPreference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public EditTextPreference(android.content.Context, android.util.AttributeSet, int);
     ctor public EditTextPreference(android.content.Context, android.util.AttributeSet);
@@ -34681,7 +34812,7 @@
     method public void setText(java.lang.String);
   }
 
-  public class ListPreference extends android.preference.DialogPreference {
+  public deprecated class ListPreference extends android.preference.DialogPreference {
     ctor public ListPreference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public ListPreference(android.content.Context, android.util.AttributeSet, int);
     ctor public ListPreference(android.content.Context, android.util.AttributeSet);
@@ -34699,7 +34830,7 @@
     method public void setValueIndex(int);
   }
 
-  public class MultiSelectListPreference extends android.preference.DialogPreference {
+  public deprecated class MultiSelectListPreference extends android.preference.DialogPreference {
     ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet, int);
     ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet);
@@ -34715,7 +34846,7 @@
     method public void setValues(java.util.Set<java.lang.String>);
   }
 
-  public class Preference implements java.lang.Comparable {
+  public deprecated class Preference implements java.lang.Comparable {
     ctor public Preference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public Preference(android.content.Context, android.util.AttributeSet, int);
     ctor public Preference(android.content.Context, android.util.AttributeSet);
@@ -34812,21 +34943,21 @@
     field public static final int DEFAULT_ORDER = 2147483647; // 0x7fffffff
   }
 
-  public static class Preference.BaseSavedState extends android.view.AbsSavedState {
+  public static deprecated class Preference.BaseSavedState extends android.view.AbsSavedState {
     ctor public Preference.BaseSavedState(android.os.Parcel);
     ctor public Preference.BaseSavedState(android.os.Parcelable);
     field public static final android.os.Parcelable.Creator<android.preference.Preference.BaseSavedState> CREATOR;
   }
 
-  public static abstract interface Preference.OnPreferenceChangeListener {
+  public static abstract deprecated interface Preference.OnPreferenceChangeListener {
     method public abstract boolean onPreferenceChange(android.preference.Preference, java.lang.Object);
   }
 
-  public static abstract interface Preference.OnPreferenceClickListener {
+  public static abstract deprecated interface Preference.OnPreferenceClickListener {
     method public abstract boolean onPreferenceClick(android.preference.Preference);
   }
 
-  public abstract class PreferenceActivity extends android.app.ListActivity implements android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback {
+  public abstract deprecated class PreferenceActivity extends android.app.ListActivity implements android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback {
     ctor public PreferenceActivity();
     method public deprecated void addPreferencesFromIntent(android.content.Intent);
     method public deprecated void addPreferencesFromResource(int);
@@ -34866,7 +34997,7 @@
     field public static final long HEADER_ID_UNDEFINED = -1L; // 0xffffffffffffffffL
   }
 
-  public static final class PreferenceActivity.Header implements android.os.Parcelable {
+  public static final deprecated class PreferenceActivity.Header implements android.os.Parcelable {
     ctor public PreferenceActivity.Header();
     method public int describeContents();
     method public java.lang.CharSequence getBreadCrumbShortTitle(android.content.res.Resources);
@@ -34892,14 +35023,14 @@
     field public int titleRes;
   }
 
-  public class PreferenceCategory extends android.preference.PreferenceGroup {
+  public deprecated class PreferenceCategory extends android.preference.PreferenceGroup {
     ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet, int, int);
     ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet, int);
     ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet);
     ctor public PreferenceCategory(android.content.Context);
   }
 
-  public abstract interface PreferenceDataStore {
+  public abstract deprecated interface PreferenceDataStore {
     method public default boolean getBoolean(java.lang.String, boolean);
     method public default float getFloat(java.lang.String, float);
     method public default int getInt(java.lang.String, int);
@@ -34929,7 +35060,7 @@
     method public abstract boolean onPreferenceStartFragment(android.preference.PreferenceFragment, android.preference.Preference);
   }
 
-  public abstract class PreferenceGroup extends android.preference.Preference {
+  public abstract deprecated class PreferenceGroup extends android.preference.Preference {
     ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet, int, int);
     ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet, int);
     ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet);
@@ -34948,7 +35079,7 @@
     method public void setOrderingAsAdded(boolean);
   }
 
-  public class PreferenceManager {
+  public deprecated class PreferenceManager {
     method public android.preference.PreferenceScreen createPreferenceScreen(android.content.Context);
     method public android.preference.Preference findPreference(java.lang.CharSequence);
     method public static android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context);
@@ -34970,19 +35101,19 @@
     field public static final java.lang.String METADATA_KEY_PREFERENCES = "android.preference";
   }
 
-  public static abstract interface PreferenceManager.OnActivityDestroyListener {
+  public static abstract deprecated interface PreferenceManager.OnActivityDestroyListener {
     method public abstract void onActivityDestroy();
   }
 
-  public static abstract interface PreferenceManager.OnActivityResultListener {
+  public static abstract deprecated interface PreferenceManager.OnActivityResultListener {
     method public abstract boolean onActivityResult(int, int, android.content.Intent);
   }
 
-  public static abstract interface PreferenceManager.OnActivityStopListener {
+  public static abstract deprecated interface PreferenceManager.OnActivityStopListener {
     method public abstract void onActivityStop();
   }
 
-  public final class PreferenceScreen extends android.preference.PreferenceGroup implements android.widget.AdapterView.OnItemClickListener android.content.DialogInterface.OnDismissListener {
+  public final deprecated class PreferenceScreen extends android.preference.PreferenceGroup implements android.widget.AdapterView.OnItemClickListener android.content.DialogInterface.OnDismissListener {
     method public void bind(android.widget.ListView);
     method public android.app.Dialog getDialog();
     method public android.widget.ListAdapter getRootAdapter();
@@ -34991,7 +35122,7 @@
     method public void onItemClick(android.widget.AdapterView, android.view.View, int, long);
   }
 
-  public class RingtonePreference extends android.preference.Preference implements android.preference.PreferenceManager.OnActivityResultListener {
+  public deprecated class RingtonePreference extends android.preference.Preference implements android.preference.PreferenceManager.OnActivityResultListener {
     ctor public RingtonePreference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public RingtonePreference(android.content.Context, android.util.AttributeSet, int);
     ctor public RingtonePreference(android.content.Context, android.util.AttributeSet);
@@ -35008,7 +35139,7 @@
     method public void setShowSilent(boolean);
   }
 
-  public class SwitchPreference extends android.preference.TwoStatePreference {
+  public deprecated class SwitchPreference extends android.preference.TwoStatePreference {
     ctor public SwitchPreference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public SwitchPreference(android.content.Context, android.util.AttributeSet, int);
     ctor public SwitchPreference(android.content.Context, android.util.AttributeSet);
@@ -35021,7 +35152,7 @@
     method public void setSwitchTextOn(int);
   }
 
-  public abstract class TwoStatePreference extends android.preference.Preference {
+  public abstract deprecated class TwoStatePreference extends android.preference.Preference {
     ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet, int, int);
     ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet, int);
     ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet);
@@ -37189,6 +37320,7 @@
     method public static java.lang.String getVolumeName(android.net.Uri);
     method public static android.provider.MediaStore.PendingSession openPending(android.content.Context, android.net.Uri);
     method public static android.net.Uri setIncludePending(android.net.Uri);
+    method public static android.net.Uri setRequireOriginal(android.net.Uri);
     field public static final java.lang.String ACTION_IMAGE_CAPTURE = "android.media.action.IMAGE_CAPTURE";
     field public static final java.lang.String ACTION_IMAGE_CAPTURE_SECURE = "android.media.action.IMAGE_CAPTURE_SECURE";
     field public static final java.lang.String ACTION_REVIEW = "android.provider.action.REVIEW";
@@ -37286,6 +37418,7 @@
     field public static final java.lang.String COMPOSER = "composer";
     field public static final java.lang.String DURATION = "duration";
     field public static final java.lang.String IS_ALARM = "is_alarm";
+    field public static final java.lang.String IS_AUDIOBOOK = "is_audiobook";
     field public static final java.lang.String IS_MUSIC = "is_music";
     field public static final java.lang.String IS_NOTIFICATION = "is_notification";
     field public static final java.lang.String IS_PODCAST = "is_podcast";
@@ -37365,6 +37498,17 @@
     field public static final java.lang.String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/radio";
   }
 
+  public static abstract interface MediaStore.DownloadColumns implements android.provider.MediaStore.MediaColumns {
+    field public static final java.lang.String DOWNLOAD_URI = "download_uri";
+    field public static final java.lang.String REFERER_URI = "referer_uri";
+  }
+
+  public static final class MediaStore.Downloads implements android.provider.MediaStore.DownloadColumns {
+    method public static android.net.Uri getContentUri(java.lang.String);
+    field public static final android.net.Uri EXTERNAL_CONTENT_URI;
+    field public static final android.net.Uri INTERNAL_CONTENT_URI;
+  }
+
   public static final class MediaStore.Files {
     ctor public MediaStore.Files();
     method public static android.net.Uri getContentUri(java.lang.String);
@@ -37393,8 +37537,8 @@
     field public static final java.lang.String DATE_TAKEN = "datetaken";
     field public static final java.lang.String DESCRIPTION = "description";
     field public static final java.lang.String IS_PRIVATE = "isprivate";
-    field public static final java.lang.String LATITUDE = "latitude";
-    field public static final java.lang.String LONGITUDE = "longitude";
+    field public static final deprecated java.lang.String LATITUDE = "latitude";
+    field public static final deprecated java.lang.String LONGITUDE = "longitude";
     field public static final deprecated java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic";
     field public static final java.lang.String ORIENTATION = "orientation";
     field public static final deprecated java.lang.String PICASA_ID = "picasa_id";
@@ -37456,7 +37600,9 @@
 
   public static class MediaStore.PendingParams {
     ctor public MediaStore.PendingParams(android.net.Uri, java.lang.String, java.lang.String);
+    method public void setDownloadUri(android.net.Uri);
     method public void setPrimaryDirectory(java.lang.String);
+    method public void setRefererUri(android.net.Uri);
     method public void setSecondaryDirectory(java.lang.String);
   }
 
@@ -37516,8 +37662,8 @@
     field public static final java.lang.String DURATION = "duration";
     field public static final java.lang.String IS_PRIVATE = "isprivate";
     field public static final java.lang.String LANGUAGE = "language";
-    field public static final java.lang.String LATITUDE = "latitude";
-    field public static final java.lang.String LONGITUDE = "longitude";
+    field public static final deprecated java.lang.String LATITUDE = "latitude";
+    field public static final deprecated java.lang.String LONGITUDE = "longitude";
     field public static final deprecated java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic";
     field public static final java.lang.String RESOLUTION = "resolution";
     field public static final java.lang.String TAGS = "tags";
@@ -40836,11 +40982,9 @@
     method public int getDesiredMinimumHeight();
     method public int getDesiredMinimumWidth();
     method public android.view.SurfaceHolder getSurfaceHolder();
-    method public boolean isInAmbientMode();
     method public boolean isPreview();
     method public boolean isVisible();
     method public void notifyColorsChanged();
-    method public void onAmbientModeChanged(boolean, boolean);
     method public void onApplyWindowInsets(android.view.WindowInsets);
     method public android.os.Bundle onCommand(java.lang.String, int, int, int, android.os.Bundle, boolean);
     method public android.app.WallpaperColors onComputeColors();
@@ -42780,6 +42924,19 @@
     field public static final int BAND_9 = 9; // 0x9
   }
 
+  public final class AvailableNetworkInfo implements android.os.Parcelable {
+    ctor public AvailableNetworkInfo(int, int, java.util.ArrayList<java.lang.String>);
+    method public int describeContents();
+    method public java.util.List<java.lang.String> getMccMncs();
+    method public int getPriority();
+    method public int getSubId();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.telephony.AvailableNetworkInfo> CREATOR;
+    field public static final int PRIORITY_HIGH = 1; // 0x1
+    field public static final int PRIORITY_LOW = 3; // 0x3
+    field public static final int PRIORITY_MED = 2; // 0x2
+  }
+
   public class CarrierConfigManager {
     method public android.os.PersistableBundle getConfig();
     method public android.os.PersistableBundle getConfigForSubId(int);
@@ -42856,6 +43013,7 @@
     field public static final java.lang.String KEY_EDITABLE_VOICEMAIL_NUMBER_BOOL = "editable_voicemail_number_bool";
     field public static final java.lang.String KEY_EDITABLE_VOICEMAIL_NUMBER_SETTING_BOOL = "editable_voicemail_number_setting_bool";
     field public static final java.lang.String KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL = "enable_dialer_key_vibration_bool";
+    field public static final java.lang.String KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL = "enhanced_4g_lte_on_by_default_bool";
     field public static final java.lang.String KEY_FORCE_HOME_NETWORK_BOOL = "force_home_network_bool";
     field public static final java.lang.String KEY_GSM_DTMF_TONE_DELAY_INT = "gsm_dtmf_tone_delay_int";
     field public static final java.lang.String KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY = "gsm_nonroaming_networks_string_array";
@@ -42865,6 +43023,7 @@
     field public static final java.lang.String KEY_HIDE_ENHANCED_4G_LTE_BOOL = "hide_enhanced_4g_lte_bool";
     field public static final java.lang.String KEY_HIDE_IMS_APN_BOOL = "hide_ims_apn_bool";
     field public static final java.lang.String KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL = "hide_preferred_network_type_bool";
+    field public static final java.lang.String KEY_HIDE_PRESET_APN_DETAILS_BOOL = "hide_preset_apn_details_bool";
     field public static final java.lang.String KEY_HIDE_SIM_LOCK_SETTINGS_BOOL = "hide_sim_lock_settings_bool";
     field public static final java.lang.String KEY_IGNORE_SIM_NETWORK_LOCKED_EVENTS_BOOL = "ignore_sim_network_locked_events_bool";
     field public static final java.lang.String KEY_IMS_CONFERENCE_SIZE_LIMIT_INT = "ims_conference_size_limit_int";
@@ -43212,9 +43371,9 @@
 
   public class MbmsGroupCallSession implements java.lang.AutoCloseable {
     method public void close();
-    method public static android.telephony.MbmsGroupCallSession create(android.content.Context, java.util.concurrent.Executor, int, android.telephony.mbms.MbmsGroupCallSessionCallback);
+    method public static android.telephony.MbmsGroupCallSession create(android.content.Context, int, java.util.concurrent.Executor, android.telephony.mbms.MbmsGroupCallSessionCallback);
     method public static android.telephony.MbmsGroupCallSession create(android.content.Context, java.util.concurrent.Executor, android.telephony.mbms.MbmsGroupCallSessionCallback);
-    method public android.telephony.mbms.GroupCall startGroupCall(java.util.concurrent.Executor, long, int[], int[], android.telephony.mbms.GroupCallCallback);
+    method public android.telephony.mbms.GroupCall startGroupCall(long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, java.util.concurrent.Executor, android.telephony.mbms.GroupCallCallback);
   }
 
   public class MbmsStreamingSession implements java.lang.AutoCloseable {
@@ -43599,7 +43758,7 @@
     method public static int getDefaultVoiceSubscriptionId();
     method public java.util.List<android.telephony.SubscriptionInfo> getOpportunisticSubscriptions();
     method public static int getSlotIndex(int);
-    method public static int[] getSubscriptionIds(int);
+    method public int[] getSubscriptionIds(int);
     method public java.util.List<android.telephony.SubscriptionPlan> getSubscriptionPlans(int);
     method public boolean isActiveSubscriptionId(int);
     method public boolean isNetworkRoaming(int);
@@ -43756,6 +43915,7 @@
     method public boolean setVoiceMailNumber(java.lang.String, java.lang.String);
     method public deprecated void setVoicemailRingtoneUri(android.telecom.PhoneAccountHandle, android.net.Uri);
     method public deprecated void setVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle, boolean);
+    method public boolean updateAvailableNetworks(java.util.List<android.telephony.AvailableNetworkInfo>);
     field public static final java.lang.String ACTION_CONFIGURE_VOICEMAIL = "android.telephony.action.CONFIGURE_VOICEMAIL";
     field public static final java.lang.String ACTION_PHONE_STATE_CHANGED = "android.intent.action.PHONE_STATE";
     field public static final java.lang.String ACTION_RESPOND_VIA_MESSAGE = "android.intent.action.RESPOND_VIA_MESSAGE";
@@ -43818,6 +43978,7 @@
     field public static final int NETWORK_TYPE_IDEN = 11; // 0xb
     field public static final int NETWORK_TYPE_IWLAN = 18; // 0x12
     field public static final int NETWORK_TYPE_LTE = 13; // 0xd
+    field public static final int NETWORK_TYPE_NR = 20; // 0x14
     field public static final int NETWORK_TYPE_TD_SCDMA = 17; // 0x11
     field public static final int NETWORK_TYPE_UMTS = 3; // 0x3
     field public static final int NETWORK_TYPE_UNKNOWN = 0; // 0x0
@@ -44219,7 +44380,7 @@
   public class GroupCall implements java.lang.AutoCloseable {
     method public void close();
     method public long getTmgi();
-    method public void updateGroupCall(int[], int[]);
+    method public void updateGroupCall(java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>);
     field public static final int REASON_BY_USER_REQUEST = 1; // 0x1
     field public static final int REASON_FREQUENCY_CONFLICT = 3; // 0x3
     field public static final int REASON_LEFT_MBMS_BROADCAST_AREA = 6; // 0x6
@@ -44231,11 +44392,10 @@
     field public static final int STATE_STOPPED = 1; // 0x1
   }
 
-  public class GroupCallCallback {
-    ctor public GroupCallCallback();
-    method public void onBroadcastSignalStrengthUpdated(int);
-    method public void onError(int, java.lang.String);
-    method public void onGroupCallStateChanged(int, int);
+  public abstract interface GroupCallCallback {
+    method public abstract void onBroadcastSignalStrengthUpdated(int);
+    method public abstract void onError(int, java.lang.String);
+    method public abstract void onGroupCallStateChanged(int, int);
     field public static final int SIGNAL_STRENGTH_UNAVAILABLE = -1; // 0xffffffff
   }
 
@@ -44275,6 +44435,11 @@
     field public static final int ERROR_UNABLE_TO_READ_SIM = 206; // 0xce
   }
 
+  public static class MbmsErrors.GroupCallErrors {
+    field public static final int ERROR_DUPLICATE_START_GROUP_CALL = 502; // 0x1f6
+    field public static final int ERROR_UNABLE_TO_START_SERVICE = 501; // 0x1f5
+  }
+
   public static class MbmsErrors.InitializationErrors {
     field public static final int ERROR_APP_PERMISSIONS_NOT_GRANTED = 102; // 0x66
     field public static final int ERROR_DUPLICATE_INITIALIZE = 101; // 0x65
@@ -44287,12 +44452,11 @@
     field public static final int ERROR_UNABLE_TO_START_SERVICE = 302; // 0x12e
   }
 
-  public class MbmsGroupCallSessionCallback {
-    ctor public MbmsGroupCallSessionCallback();
-    method public void onAvailableSaisUpdated(java.util.List<java.lang.Integer>, java.util.List<java.util.List<java.lang.Integer>>);
-    method public void onError(int, java.lang.String);
-    method public void onMiddlewareReady();
-    method public void onServiceInterfaceAvailable(java.lang.String, int);
+  public abstract interface MbmsGroupCallSessionCallback {
+    method public abstract void onAvailableSaisUpdated(java.util.List<java.lang.Integer>, java.util.List<java.util.List<java.lang.Integer>>);
+    method public abstract void onError(int, java.lang.String);
+    method public abstract void onMiddlewareReady();
+    method public abstract void onServiceInterfaceAvailable(java.lang.String, int);
   }
 
   public class MbmsStreamingSessionCallback {
@@ -45593,9 +45757,14 @@
     method public abstract void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt);
   }
 
-  public static class LineHeightSpan.Standard implements android.text.style.LineHeightSpan {
+  public static class LineHeightSpan.Standard implements android.text.style.LineHeightSpan android.text.ParcelableSpan {
     ctor public LineHeightSpan.Standard(int);
+    ctor public LineHeightSpan.Standard(android.os.Parcel);
     method public void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt);
+    method public int describeContents();
+    method public int getHeight();
+    method public int getSpanTypeId();
+    method public void writeToParcel(android.os.Parcel, int);
   }
 
   public static abstract interface LineHeightSpan.WithDensity implements android.text.style.LineHeightSpan {
@@ -45719,6 +45888,7 @@
     method public java.util.Locale getLocaleObject();
     method public int getSpanTypeId();
     method public java.lang.String[] getSuggestions();
+    method public int getUnderlineColor();
     method public void setFlags(int);
     method public void updateDrawState(android.text.TextPaint);
     method public void writeToParcel(android.os.Parcel, int);
@@ -47719,6 +47889,7 @@
     method public final boolean isFunctionPressed();
     method public static final boolean isGamepadButton(int);
     method public final boolean isLongPress();
+    method public static final boolean isMediaSessionKey(int);
     method public final boolean isMetaPressed();
     method public static boolean isModifierKey(int);
     method public final boolean isNumLockOn();
@@ -48951,10 +49122,12 @@
     method protected int getTopPaddingOffset();
     method public android.view.TouchDelegate getTouchDelegate();
     method public java.util.ArrayList<android.view.View> getTouchables();
+    method public float getTransitionAlpha();
     method public java.lang.String getTransitionName();
     method public float getTranslationX();
     method public float getTranslationY();
     method public float getTranslationZ();
+    method public long getUniqueDrawingId();
     method public int getVerticalFadingEdgeLength();
     method public int getVerticalScrollbarPosition();
     method public int getVerticalScrollbarWidth();
@@ -49082,7 +49255,7 @@
     method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public void onProvideAutofillStructure(android.view.ViewStructure, int);
     method public void onProvideAutofillVirtualStructure(android.view.ViewStructure, int);
-    method public boolean onProvideContentCaptureStructure(android.view.ViewStructure, int);
+    method public void onProvideContentCaptureStructure(android.view.ViewStructure, int);
     method public void onProvideStructure(android.view.ViewStructure);
     method public void onProvideVirtualStructure(android.view.ViewStructure);
     method public android.view.PointerIcon onResolvePointerIcon(android.view.MotionEvent, int);
@@ -49159,6 +49332,7 @@
     method public void setActivated(boolean);
     method public void setAlpha(float);
     method public void setAnimation(android.view.animation.Animation);
+    method public void setAnimationMatrix(android.graphics.Matrix);
     method public void setAutofillHints(java.lang.String...);
     method public void setAutofillId(android.view.autofill.AutofillId);
     method public void setBackground(android.graphics.drawable.Drawable);
@@ -49210,6 +49384,7 @@
     method public void setLayoutDirection(int);
     method public void setLayoutParams(android.view.ViewGroup.LayoutParams);
     method public final void setLeft(int);
+    method public final void setLeftTopRightBottom(int, int, int, int);
     method public void setLongClickable(boolean);
     method protected final void setMeasuredDimension(int, int);
     method public void setMinimumHeight(int);
@@ -49276,6 +49451,7 @@
     method public void setTooltipText(java.lang.CharSequence);
     method public final void setTop(int);
     method public void setTouchDelegate(android.view.TouchDelegate);
+    method public void setTransitionAlpha(float);
     method public final void setTransitionName(java.lang.String);
     method public void setTranslationX(float);
     method public void setTranslationY(float);
@@ -49298,6 +49474,8 @@
     method public final boolean startDragAndDrop(android.content.ClipData, android.view.View.DragShadowBuilder, java.lang.Object, int);
     method public boolean startNestedScroll(int);
     method public void stopNestedScroll();
+    method public void transformMatrixToGlobal(android.graphics.Matrix);
+    method public void transformMatrixToLocal(android.graphics.Matrix);
     method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
     method public void unscheduleDrawable(android.graphics.drawable.Drawable);
     method public final void updateDragShadow(android.view.View.DragShadowBuilder);
@@ -49747,6 +49925,7 @@
     method public deprecated boolean isAnimationCacheEnabled();
     method protected boolean isChildrenDrawingOrderEnabled();
     method protected deprecated boolean isChildrenDrawnWithCacheEnabled();
+    method public boolean isLayoutSuppressed();
     method public boolean isMotionEventSplittingEnabled();
     method public boolean isTransitionGroup();
     method public final void layout(int, int, int, int);
@@ -49812,6 +49991,7 @@
     method public android.view.ActionMode startActionModeForChild(android.view.View, android.view.ActionMode.Callback, int);
     method public void startLayoutAnimation();
     method public void startViewTransition(android.view.View);
+    method public void suppressLayout(boolean);
     method public void updateViewLayout(android.view.View, android.view.ViewGroup.LayoutParams);
     field protected static final int CLIP_TO_PADDING_MASK = 34; // 0x22
     field public static final int FOCUS_AFTER_DESCENDANTS = 262144; // 0x40000
@@ -51825,10 +52005,90 @@
 
 }
 
+package android.view.inspector {
+
+  public abstract interface InspectionCompanion<T> {
+    method public default java.lang.String getNodeName();
+    method public abstract void mapProperties(android.view.inspector.PropertyMapper);
+    method public abstract void readProperties(T, android.view.inspector.PropertyReader);
+  }
+
+  public static class InspectionCompanion.UninitializedPropertyMapException extends java.lang.RuntimeException {
+    ctor public InspectionCompanion.UninitializedPropertyMapException();
+  }
+
+  public final class IntEnumMapping {
+    method public java.lang.String nameOf(int);
+  }
+
+  public static final class IntEnumMapping.Builder {
+    ctor public IntEnumMapping.Builder();
+    method public android.view.inspector.IntEnumMapping.Builder addValue(java.lang.String, int);
+    method public android.view.inspector.IntEnumMapping build();
+    method public void clear();
+  }
+
+  public final class IntFlagMapping {
+    method public java.lang.String[] namesOf(int);
+  }
+
+  public static final class IntFlagMapping.Builder {
+    ctor public IntFlagMapping.Builder();
+    method public android.view.inspector.IntFlagMapping.Builder addFlag(java.lang.String, int);
+    method public android.view.inspector.IntFlagMapping.Builder addFlag(java.lang.String, int, int);
+    method public android.view.inspector.IntFlagMapping build();
+    method public void clear();
+  }
+
+  public abstract interface PropertyMapper {
+    method public abstract int mapBoolean(java.lang.String, int);
+    method public abstract int mapByte(java.lang.String, int);
+    method public abstract int mapChar(java.lang.String, int);
+    method public abstract int mapColor(java.lang.String, int);
+    method public abstract int mapDouble(java.lang.String, int);
+    method public abstract int mapFloat(java.lang.String, int);
+    method public abstract int mapGravity(java.lang.String, int);
+    method public abstract int mapInt(java.lang.String, int);
+    method public abstract int mapIntEnum(java.lang.String, int, android.view.inspector.IntEnumMapping);
+    method public abstract int mapIntFlag(java.lang.String, int, android.view.inspector.IntFlagMapping);
+    method public abstract int mapLong(java.lang.String, int);
+    method public abstract int mapObject(java.lang.String, int);
+    method public abstract int mapShort(java.lang.String, int);
+  }
+
+  public static class PropertyMapper.PropertyConflictException extends java.lang.RuntimeException {
+    ctor public PropertyMapper.PropertyConflictException(java.lang.String, java.lang.String, java.lang.String);
+  }
+
+  public abstract interface PropertyReader {
+    method public abstract void readBoolean(int, boolean);
+    method public abstract void readByte(int, byte);
+    method public abstract void readChar(int, char);
+    method public abstract void readColor(int, int);
+    method public abstract void readColor(int, long);
+    method public abstract void readColor(int, android.graphics.Color);
+    method public abstract void readDouble(int, double);
+    method public abstract void readFloat(int, float);
+    method public abstract void readGravity(int, int);
+    method public abstract void readInt(int, int);
+    method public abstract void readIntEnum(int, int);
+    method public abstract void readIntFlag(int, int);
+    method public abstract void readLong(int, long);
+    method public abstract void readObject(int, java.lang.Object);
+    method public abstract void readShort(int, short);
+  }
+
+  public static class PropertyReader.PropertyTypeMismatchException extends java.lang.RuntimeException {
+    ctor public PropertyReader.PropertyTypeMismatchException(int, java.lang.String, java.lang.String, java.lang.String);
+    ctor public PropertyReader.PropertyTypeMismatchException(int, java.lang.String, java.lang.String);
+  }
+
+}
+
 package android.view.intelligence {
 
-  public final class IntelligenceManager {
-    method public android.content.ComponentName getIntelligenceServiceComponentName();
+  public final class ContentCaptureManager {
+    method public android.content.ComponentName getServiceComponentName();
     method public boolean isContentCaptureEnabled();
     method public android.view.ViewStructure newVirtualViewStructure(android.view.autofill.AutofillId, int);
     method public void notifyViewAppeared(android.view.ViewStructure);
@@ -51890,6 +52150,7 @@
     method public java.time.ZonedDateTime getTime();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.ConversationActions.Message> CREATOR;
+    field public static final android.app.Person PERSON_USER_LOCAL;
   }
 
   public static final class ConversationActions.Message.Builder {
@@ -52158,6 +52419,7 @@
     field public static final int STATUS_LINKS_APPLIED = 0; // 0x0
     field public static final int STATUS_NO_LINKS_APPLIED = 2; // 0x2
     field public static final int STATUS_NO_LINKS_FOUND = 1; // 0x1
+    field public static final int STATUS_UNSUPPORTED_CHARACTER = 4; // 0x4
   }
 
   public static final class TextLinks.Builder {
@@ -54151,6 +54413,7 @@
     ctor public ImageView(android.content.Context, android.util.AttributeSet);
     ctor public ImageView(android.content.Context, android.util.AttributeSet, int);
     ctor public ImageView(android.content.Context, android.util.AttributeSet, int, int);
+    method public void animateTransform(android.graphics.Matrix);
     method public final void clearColorFilter();
     method public boolean getAdjustViewBounds();
     method public boolean getBaselineAlignBottom();
@@ -54368,6 +54631,7 @@
     method public int getDefaultVerticalSourceToMagnifierOffset();
     method public float getElevation();
     method public int getHeight();
+    method public android.graphics.drawable.Drawable getOverlay();
     method public android.graphics.Point getPosition();
     method public int getSourceHeight();
     method public android.graphics.Point getSourcePosition();
@@ -54391,6 +54655,7 @@
     method public android.widget.Magnifier.Builder setDefaultSourceToMagnifierOffset(int, int);
     method public android.widget.Magnifier.Builder setElevation(float);
     method public android.widget.Magnifier.Builder setForcePositionWithinWindowSystemInsetsBounds(boolean);
+    method public android.widget.Magnifier.Builder setOverlay(android.graphics.drawable.Drawable);
     method public android.widget.Magnifier.Builder setSize(int, int);
     method public android.widget.Magnifier.Builder setSourceBounds(int, int, int, int);
     method public android.widget.Magnifier.Builder setZoom(float);
@@ -54454,6 +54719,7 @@
     method public java.lang.String[] getDisplayedValues();
     method public int getMaxValue();
     method public int getMinValue();
+    method public int getSelectionDividerHeight();
     method public int getValue();
     method public boolean getWrapSelectorWheel();
     method public void setDisplayedValues(java.lang.String[]);
@@ -54463,6 +54729,7 @@
     method public void setOnLongPressUpdateInterval(long);
     method public void setOnScrollListener(android.widget.NumberPicker.OnScrollListener);
     method public void setOnValueChangedListener(android.widget.NumberPicker.OnValueChangeListener);
+    method public void setSelectionDividerHeight(int);
     method public void setValue(int);
     method public void setWrapSelectorWheel(boolean);
   }
@@ -54815,6 +55082,7 @@
     method public void setInt(int, java.lang.String, int);
     method public void setIntent(int, java.lang.String, android.content.Intent);
     method public void setLabelFor(int, int);
+    method public void setLightBackgroundLayoutId(int);
     method public void setLong(int, java.lang.String, long);
     method public void setOnClickFillInIntent(int, android.content.Intent);
     method public void setOnClickPendingIntent(int, android.app.PendingIntent);
@@ -55446,6 +55714,7 @@
     method public java.lang.CharSequence getText();
     method public android.view.textclassifier.TextClassifier getTextClassifier();
     method public final android.content.res.ColorStateList getTextColors();
+    method public android.text.TextDirectionHeuristic getTextDirectionHeuristic();
     method public java.util.Locale getTextLocale();
     method public android.os.LocaleList getTextLocales();
     method public android.text.PrecomputedText.Params getTextMetricsParams();
@@ -55469,6 +55738,7 @@
     method public boolean isElegantTextHeight();
     method public boolean isFallbackLineSpacing();
     method public boolean isInputMethodTarget();
+    method public boolean isSingleLine();
     method public boolean isSuggestionsEnabled();
     method public boolean isTextSelectable();
     method public int length();
@@ -56232,6 +56502,7 @@
   }
 
   public final class InMemoryDexClassLoader extends dalvik.system.BaseDexClassLoader {
+    ctor public InMemoryDexClassLoader(java.nio.ByteBuffer[], java.lang.String, java.lang.ClassLoader);
     ctor public InMemoryDexClassLoader(java.nio.ByteBuffer[], java.lang.ClassLoader);
     ctor public InMemoryDexClassLoader(java.nio.ByteBuffer, java.lang.ClassLoader);
   }
diff --git a/api/system-current.txt b/api/system-current.txt
index d7265c7..a112bba 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -17,6 +17,7 @@
     field public static final java.lang.String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
     field public static final java.lang.String ALLOCATE_AGGRESSIVE = "android.permission.ALLOCATE_AGGRESSIVE";
     field public static final java.lang.String ALLOW_ANY_CODEC_FOR_PLAYBACK = "android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK";
+    field public static final java.lang.String AMBIENT_WALLPAPER = "android.permission.AMBIENT_WALLPAPER";
     field public static final java.lang.String BACKUP = "android.permission.BACKUP";
     field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS";
     field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET";
@@ -24,7 +25,6 @@
     field public static final java.lang.String BIND_DIRECTORY_SEARCH = "android.permission.BIND_DIRECTORY_SEARCH";
     field public static final java.lang.String BIND_EUICC_SERVICE = "android.permission.BIND_EUICC_SERVICE";
     field public static final java.lang.String BIND_IMS_SERVICE = "android.permission.BIND_IMS_SERVICE";
-    field public static final java.lang.String BIND_INTELLIGENCE_SERVICE = "android.permission.BIND_INTELLIGENCE_SERVICE";
     field public static final java.lang.String BIND_KEYGUARD_APPWIDGET = "android.permission.BIND_KEYGUARD_APPWIDGET";
     field public static final java.lang.String BIND_NETWORK_RECOMMENDATION_SERVICE = "android.permission.BIND_NETWORK_RECOMMENDATION_SERVICE";
     field public static final java.lang.String BIND_NOTIFICATION_ASSISTANT_SERVICE = "android.permission.BIND_NOTIFICATION_ASSISTANT_SERVICE";
@@ -33,6 +33,7 @@
     field public static final java.lang.String BIND_RESOLVER_RANKER_SERVICE = "android.permission.BIND_RESOLVER_RANKER_SERVICE";
     field public static final java.lang.String BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE = "android.permission.BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE";
     field public static final java.lang.String BIND_SETTINGS_SUGGESTIONS_SERVICE = "android.permission.BIND_SETTINGS_SUGGESTIONS_SERVICE";
+    field public static final java.lang.String BIND_SMART_SUGGESTIONS_SERVICE = "android.permission.BIND_SMART_SUGGESTIONS_SERVICE";
     field public static final java.lang.String BIND_SOUND_TRIGGER_DETECTION_SERVICE = "android.permission.BIND_SOUND_TRIGGER_DETECTION_SERVICE";
     field public static final java.lang.String BIND_TELEPHONY_DATA_SERVICE = "android.permission.BIND_TELEPHONY_DATA_SERVICE";
     field public static final java.lang.String BIND_TELEPHONY_NETWORK_SERVICE = "android.permission.BIND_TELEPHONY_NETWORK_SERVICE";
@@ -75,6 +76,7 @@
     field public static final java.lang.String GET_PROCESS_STATE_AND_OOM_SCORE = "android.permission.GET_PROCESS_STATE_AND_OOM_SCORE";
     field public static final java.lang.String GET_TOP_ACTIVITY_INFO = "android.permission.GET_TOP_ACTIVITY_INFO";
     field public static final java.lang.String GLOBAL_SEARCH = "android.permission.GLOBAL_SEARCH";
+    field public static final java.lang.String GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS = "android.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS";
     field public static final java.lang.String GRANT_RUNTIME_PERMISSIONS = "android.permission.GRANT_RUNTIME_PERMISSIONS";
     field public static final java.lang.String HARDWARE_TEST = "android.permission.HARDWARE_TEST";
     field public static final java.lang.String HDMI_CEC = "android.permission.HDMI_CEC";
@@ -106,6 +108,7 @@
     field public static final java.lang.String MANAGE_DEVICE_ADMINS = "android.permission.MANAGE_DEVICE_ADMINS";
     field public static final java.lang.String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS";
     field public static final java.lang.String MANAGE_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS";
+    field public static final java.lang.String MANAGE_SMART_SUGGESTIONS = "android.permission.MANAGE_SMART_SUGGESTIONS";
     field public static final java.lang.String MANAGE_SOUND_TRIGGER = "android.permission.MANAGE_SOUND_TRIGGER";
     field public static final java.lang.String MANAGE_SUBSCRIPTION_PLANS = "android.permission.MANAGE_SUBSCRIPTION_PLANS";
     field public static final java.lang.String MANAGE_USB = "android.permission.MANAGE_USB";
@@ -157,6 +160,7 @@
     field public static final java.lang.String REAL_GET_TASKS = "android.permission.REAL_GET_TASKS";
     field public static final java.lang.String REBOOT = "android.permission.REBOOT";
     field public static final java.lang.String RECEIVE_DATA_ACTIVITY_CHANGE = "android.permission.RECEIVE_DATA_ACTIVITY_CHANGE";
+    field public static final java.lang.String RECEIVE_DEVICE_CUSTOMIZATION_READY = "android.permission.RECEIVE_DEVICE_CUSTOMIZATION_READY";
     field public static final java.lang.String RECEIVE_EMERGENCY_BROADCAST = "android.permission.RECEIVE_EMERGENCY_BROADCAST";
     field public static final java.lang.String RECEIVE_WIFI_CREDENTIAL_CHANGE = "android.permission.RECEIVE_WIFI_CREDENTIAL_CHANGE";
     field public static final java.lang.String RECOVERY = "android.permission.RECOVERY";
@@ -170,6 +174,7 @@
     field public static final java.lang.String RETRIEVE_WINDOW_CONTENT = "android.permission.RETRIEVE_WINDOW_CONTENT";
     field public static final java.lang.String REVOKE_RUNTIME_PERMISSIONS = "android.permission.REVOKE_RUNTIME_PERMISSIONS";
     field public static final java.lang.String SCORE_NETWORKS = "android.permission.SCORE_NETWORKS";
+    field public static final java.lang.String SEND_DEVICE_CUSTOMIZATION_READY = "android.permission.SEND_DEVICE_CUSTOMIZATION_READY";
     field public static final java.lang.String SEND_RESPOND_VIA_MESSAGE = "android.permission.SEND_RESPOND_VIA_MESSAGE";
     field public static final java.lang.String SEND_SHOW_SUSPENDED_APP_DETAILS = "android.permission.SEND_SHOW_SUSPENDED_APP_DETAILS";
     field public static final java.lang.String SEND_SMS_NO_CONFIRMATION = "android.permission.SEND_SMS_NO_CONFIRMATION";
@@ -213,6 +218,10 @@
     field public static final java.lang.String WRITE_SECURE_SETTINGS = "android.permission.WRITE_SECURE_SETTINGS";
   }
 
+  public static final class Manifest.permission_group {
+    field public static final java.lang.String UNDEFINED = "android.permission-group.UNDEFINED";
+  }
+
   public static final class R.array {
     field public static final int config_keySystemUuidMapping = 17235973; // 0x1070005
   }
@@ -221,6 +230,7 @@
     field public static final int isVrOnly = 16844152; // 0x1010578
     field public static final int requiredSystemPropertyName = 16844133; // 0x1010565
     field public static final int requiredSystemPropertyValue = 16844134; // 0x1010566
+    field public static final int supportsAmbientMode = 16844173; // 0x101058d
     field public static final int userRestriction = 16844164; // 0x1010584
   }
 
@@ -440,10 +450,10 @@
   }
 
   public class KeyguardManager {
-    method public void setPrivateNotificationsAllowed(boolean);
-    method public boolean getPrivateNotificationsAllowed();
     method public android.content.Intent createConfirmFactoryResetCredentialIntent(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence);
+    method public boolean getPrivateNotificationsAllowed();
     method public void requestDismissKeyguard(android.app.Activity, java.lang.CharSequence, android.app.KeyguardManager.KeyguardDismissCallback);
+    method public void setPrivateNotificationsAllowed(boolean);
   }
 
   public class Notification implements android.os.Parcelable {
@@ -552,6 +562,10 @@
     method public void onVrStateChanged(boolean);
   }
 
+  public final class WallpaperInfo implements android.os.Parcelable {
+    method public boolean supportsAmbientMode();
+  }
+
   public class WallpaperManager {
     method public void clearWallpaper(int, int);
     method public void setDisplayOffset(android.os.IBinder, int, int);
@@ -586,6 +600,7 @@
     method public boolean packageHasActiveAdmins(java.lang.String);
     method public deprecated boolean setActiveProfileOwner(android.content.ComponentName, java.lang.String) throws java.lang.IllegalArgumentException;
     method public void setDeviceProvisioningConfigApplied();
+    method public void setProfileOwnerCanAccessDeviceIdsForUser(android.content.ComponentName, android.os.UserHandle);
     field public static final java.lang.String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_ALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_ALLOWED";
     field public static final java.lang.String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_DISALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_DISALLOWED";
     field public static final java.lang.String ACTION_PROVISION_FINALIZATION = "android.app.action.PROVISION_FINALIZATION";
@@ -867,6 +882,7 @@
     method public java.util.List<java.lang.String> getRoleHoldersAsUser(java.lang.String, android.os.UserHandle);
     method public void removeRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback);
     method public boolean removeRoleHolderFromController(java.lang.String, java.lang.String);
+    method public void setRoleNamesFromController(java.util.List<java.lang.String>);
     field public static final java.lang.String EXTRA_REQUEST_ROLE_NAME = "android.app.role.extra.REQUEST_ROLE_NAME";
   }
 
@@ -1052,12 +1068,12 @@
     field public static final java.lang.String ACTION_BATTERY_LEVEL_CHANGED = "android.intent.action.BATTERY_LEVEL_CHANGED";
     field public static final java.lang.String ACTION_CALL_EMERGENCY = "android.intent.action.CALL_EMERGENCY";
     field public static final java.lang.String ACTION_CALL_PRIVILEGED = "android.intent.action.CALL_PRIVILEGED";
+    field public static final java.lang.String ACTION_DEVICE_CUSTOMIZATION_READY = "android.intent.action.DEVICE_CUSTOMIZATION_READY";
     field public static final java.lang.String ACTION_FACTORY_RESET = "android.intent.action.FACTORY_RESET";
     field public static final java.lang.String ACTION_GLOBAL_BUTTON = "android.intent.action.GLOBAL_BUTTON";
     field public static final java.lang.String ACTION_INSTALL_INSTANT_APP_PACKAGE = "android.intent.action.INSTALL_INSTANT_APP_PACKAGE";
     field public static final java.lang.String ACTION_INSTANT_APP_RESOLVER_SETTINGS = "android.intent.action.INSTANT_APP_RESOLVER_SETTINGS";
     field public static final java.lang.String ACTION_INTENT_FILTER_NEEDS_VERIFICATION = "android.intent.action.INTENT_FILTER_NEEDS_VERIFICATION";
-    field public static final java.lang.String ACTION_MANAGE_APP_PERMISSION = "android.intent.action.MANAGE_APP_PERMISSION";
     field public static final java.lang.String ACTION_MANAGE_APP_PERMISSIONS = "android.intent.action.MANAGE_APP_PERMISSIONS";
     field public static final java.lang.String ACTION_MANAGE_PERMISSIONS = "android.intent.action.MANAGE_PERMISSIONS";
     field public static final java.lang.String ACTION_MANAGE_PERMISSION_APPS = "android.intent.action.MANAGE_PERMISSION_APPS";
@@ -1229,8 +1245,9 @@
     method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(android.content.Intent, int, android.os.UserHandle);
     method public abstract void registerDexModule(java.lang.String, android.content.pm.PackageManager.DexModuleRegisterCallback);
     method public abstract void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
-    method public void replacePreferredActivity(android.content.IntentFilter, int, java.util.List<android.content.ComponentName>, android.content.ComponentName);
+    method public deprecated void replacePreferredActivity(android.content.IntentFilter, int, java.util.List<android.content.ComponentName>, android.content.ComponentName);
     method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
+    method public void sendDeviceCustomizationReadyBroadcast();
     method public abstract boolean setDefaultBrowserPackageNameAsUser(java.lang.String, int);
     method public void setHarmfulAppWarning(java.lang.String, java.lang.CharSequence);
     method public deprecated java.lang.String[] setPackagesSuspended(java.lang.String[], boolean, android.os.PersistableBundle, android.os.PersistableBundle, java.lang.String);
@@ -1817,9 +1834,19 @@
     field public static final android.os.Parcelable.Creator<android.hardware.location.ContextHubInfo> CREATOR;
   }
 
+  public class ContextHubIntentEvent {
+    method public static android.hardware.location.ContextHubIntentEvent fromIntent(android.content.Intent);
+    method public android.hardware.location.ContextHubInfo getContextHubInfo();
+    method public int getEventType();
+    method public int getNanoAppAbortCode();
+    method public long getNanoAppId();
+    method public android.hardware.location.NanoAppMessage getNanoAppMessage();
+  }
+
   public final class ContextHubManager {
     method public android.hardware.location.ContextHubClient createClient(android.hardware.location.ContextHubInfo, android.hardware.location.ContextHubClientCallback, java.util.concurrent.Executor);
     method public android.hardware.location.ContextHubClient createClient(android.hardware.location.ContextHubInfo, android.hardware.location.ContextHubClientCallback);
+    method public android.hardware.location.ContextHubClient createClient(android.hardware.location.ContextHubInfo, android.app.PendingIntent, long);
     method public android.hardware.location.ContextHubTransaction<java.lang.Void> disableNanoApp(android.hardware.location.ContextHubInfo, long);
     method public android.hardware.location.ContextHubTransaction<java.lang.Void> enableNanoApp(android.hardware.location.ContextHubInfo, long);
     method public deprecated int[] findNanoAppOnHub(int, android.hardware.location.NanoAppFilter);
@@ -1836,6 +1863,18 @@
     method public deprecated int unloadNanoApp(int);
     method public android.hardware.location.ContextHubTransaction<java.lang.Void> unloadNanoApp(android.hardware.location.ContextHubInfo, long);
     method public deprecated int unregisterCallback(android.hardware.location.ContextHubManager.Callback);
+    field public static final int EVENT_HUB_RESET = 6; // 0x6
+    field public static final int EVENT_NANOAPP_ABORTED = 4; // 0x4
+    field public static final int EVENT_NANOAPP_DISABLED = 3; // 0x3
+    field public static final int EVENT_NANOAPP_ENABLED = 2; // 0x2
+    field public static final int EVENT_NANOAPP_LOADED = 0; // 0x0
+    field public static final int EVENT_NANOAPP_MESSAGE = 5; // 0x5
+    field public static final int EVENT_NANOAPP_UNLOADED = 1; // 0x1
+    field public static final java.lang.String EXTRA_CONTEXT_HUB_INFO = "android.hardware.location.extra.CONTEXT_HUB_INFO";
+    field public static final java.lang.String EXTRA_EVENT_TYPE = "android.hardware.location.extra.EVENT_TYPE";
+    field public static final java.lang.String EXTRA_MESSAGE = "android.hardware.location.extra.MESSAGE";
+    field public static final java.lang.String EXTRA_NANOAPP_ABORT_CODE = "android.hardware.location.extra.NANOAPP_ABORT_CODE";
+    field public static final java.lang.String EXTRA_NANOAPP_ID = "android.hardware.location.extra.NANOAPP_ID";
   }
 
   public static abstract deprecated class ContextHubManager.Callback {
@@ -2727,7 +2766,6 @@
   public class LocationManager {
     method public deprecated boolean addGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
     method public deprecated boolean addGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
-    method public android.app.PendingIntent createManageLocationPermissionIntent(java.lang.String, java.lang.String);
     method public void flushGnssBatch();
     method public int getGnssBatchSize();
     method public java.lang.String getNetworkProviderPackage();
@@ -2836,6 +2874,7 @@
     field public static final int AUDIOFOCUS_FLAG_DELAY_OK = 1; // 0x1
     field public static final int AUDIOFOCUS_FLAG_LOCK = 4; // 0x4
     field public static final int AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS = 2; // 0x2
+    field public static final int FLAG_FROM_KEY = 4096; // 0x1000
   }
 
   public static abstract class AudioManager.AudioServerStateCallback {
@@ -2975,6 +3014,7 @@
 package android.media.session {
 
   public final class MediaSessionManager {
+    method public android.media.session.ISession createSession(android.media.session.MediaSession.CallbackStub, java.lang.String, int);
     method public void setOnMediaKeyListener(android.media.session.MediaSessionManager.OnMediaKeyListener, android.os.Handler);
     method public void setOnVolumeKeyLongPressListener(android.media.session.MediaSessionManager.OnVolumeKeyLongPressListener, android.os.Handler);
   }
@@ -3328,6 +3368,11 @@
     field public static final int ERROR_INVALID_NETWORK = 1; // 0x1
   }
 
+  public class LinkAddress implements android.os.Parcelable {
+    ctor public LinkAddress(java.net.InetAddress, int);
+    ctor public LinkAddress(java.lang.String);
+  }
+
   public final class NetworkCapabilities implements android.os.Parcelable {
     field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16
   }
@@ -3645,8 +3690,11 @@
 
   public class WifiManager {
     method public void connect(android.net.wifi.WifiConfiguration, android.net.wifi.WifiManager.ActionListener);
+    method public void connect(int, android.net.wifi.WifiManager.ActionListener);
+    method public void disable(int, android.net.wifi.WifiManager.ActionListener);
+    method public void disableEphemeralNetwork(java.lang.String);
+    method public void forget(int, android.net.wifi.WifiManager.ActionListener);
     method public java.util.List<android.net.wifi.WifiConfiguration> getAllMatchingWifiConfigs(java.util.List<android.net.wifi.ScanResult>);
-    method public java.util.List<android.net.wifi.hotspot2.OsuProvider> getMatchingOsuProviders(java.util.List<android.net.wifi.ScanResult>);
     method public java.util.List<android.net.wifi.WifiConfiguration> getPrivilegedConfiguredNetworks();
     method public android.net.wifi.WifiConfiguration getWifiApConfiguration();
     method public int getWifiApState();
@@ -3656,6 +3704,7 @@
     method public boolean isWifiApEnabled();
     method public boolean isWifiScannerSupported();
     method public void registerNetworkRequestMatchCallback(android.net.wifi.WifiManager.NetworkRequestMatchCallback, android.os.Handler);
+    method public void save(android.net.wifi.WifiConfiguration, android.net.wifi.WifiManager.ActionListener);
     method public boolean setWifiApConfiguration(android.net.wifi.WifiConfiguration);
     method public boolean startScan(android.os.WorkSource);
     method public void unregisterNetworkRequestMatchCallback(android.net.wifi.WifiManager.NetworkRequestMatchCallback);
@@ -3687,7 +3736,8 @@
   }
 
   public static abstract interface WifiManager.NetworkRequestMatchCallback {
-    method public abstract void onMatch(java.util.List<android.net.wifi.WifiConfiguration>);
+    method public abstract void onAbort();
+    method public abstract void onMatch(java.util.List<android.net.wifi.ScanResult>);
     method public abstract void onUserSelectionCallbackRegistration(android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback);
     method public abstract void onUserSelectionConnectFailure(android.net.wifi.WifiConfiguration);
     method public abstract void onUserSelectionConnectSuccess(android.net.wifi.WifiConfiguration);
@@ -3803,6 +3853,7 @@
     ctor public WifiScanner.ScanSettings();
     field public int band;
     field public android.net.wifi.WifiScanner.ChannelSpec[] channels;
+    field public boolean ignoreLocationSettings;
     field public int maxPeriodInMs;
     field public int maxScansToCache;
     field public int numBssidsPerScan;
@@ -3929,6 +3980,7 @@
   public final class ConfigUpdate {
     field public static final java.lang.String ACTION_UPDATE_CARRIER_ID_DB = "android.os.action.UPDATE_CARRIER_ID_DB";
     field public static final java.lang.String ACTION_UPDATE_CARRIER_PROVISIONING_URLS = "android.intent.action.UPDATE_CARRIER_PROVISIONING_URLS";
+    field public static final java.lang.String ACTION_UPDATE_CONVERSATION_ACTIONS = "android.intent.action.UPDATE_CONVERSATION_ACTIONS";
     field public static final java.lang.String ACTION_UPDATE_CT_LOGS = "android.intent.action.UPDATE_CT_LOGS";
     field public static final java.lang.String ACTION_UPDATE_INTENT_FIREWALL = "android.intent.action.UPDATE_INTENT_FIREWALL";
     field public static final java.lang.String ACTION_UPDATE_LANG_ID = "android.intent.action.UPDATE_LANG_ID";
@@ -4259,6 +4311,7 @@
 
   public class UserManager {
     method public void clearSeedAccountData();
+    method public android.os.UserHandle getProfileParent(android.os.UserHandle);
     method public java.lang.String getSeedAccountName();
     method public android.os.PersistableBundle getSeedAccountOptions();
     method public java.lang.String getSeedAccountType();
@@ -4348,7 +4401,7 @@
 
 package android.preference {
 
-  public class PreferenceManager {
+  public deprecated class PreferenceManager {
     method public boolean isStorageCredentialProtected();
     method public void setStorageCredentialProtected();
   }
@@ -4578,6 +4631,7 @@
   public static final class Settings.Secure extends android.provider.Settings.NameValueTable {
     method public static boolean putString(android.content.ContentResolver, java.lang.String, java.lang.String, java.lang.String, boolean);
     method public static void resetToDefaults(android.content.ContentResolver, java.lang.String);
+    field public static final java.lang.String ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED = "accessibility_display_magnification_navbar_enabled";
     field public static final java.lang.String ASSIST_GESTURE_SETUP_COMPLETE = "assist_gesture_setup_complete";
     field public static final java.lang.String AUTOFILL_FEATURE_FIELD_CLASSIFICATION = "autofill_field_classification";
     field public static final java.lang.String AUTOFILL_USER_DATA_MAX_CATEGORY_COUNT = "autofill_user_data_max_category_count";
@@ -4590,6 +4644,8 @@
     field public static final java.lang.String HUSH_GESTURE_USED = "hush_gesture_used";
     field public static final java.lang.String INSTANT_APPS_ENABLED = "instant_apps_enabled";
     field public static final java.lang.String LAST_SETUP_SHOWN = "last_setup_shown";
+    field public static final java.lang.String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis";
+    field public static final java.lang.String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis";
     field public static final java.lang.String LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS = "lock_screen_allow_private_notifications";
     field public static final java.lang.String LOCK_SCREEN_SHOW_NOTIFICATIONS = "lock_screen_show_notifications";
     field public static final java.lang.String MANUAL_RINGER_TOGGLE_COUNT = "manual_ringer_toggle_count";
@@ -4644,6 +4700,7 @@
     method public abstract void onAddRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback);
     method public final android.os.IBinder onBind(android.content.Intent);
     method public abstract void onClearRoleHolders(java.lang.String, android.app.role.RoleManagerCallback);
+    method public abstract void onGrantDefaultRoles(android.app.role.RoleManagerCallback);
     method public abstract void onRemoveRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback);
     field public static final java.lang.String SERVICE_INTERFACE = "android.rolecontrollerservice.RoleControllerService";
   }
@@ -4798,8 +4855,8 @@
 
   public abstract class ApnService extends android.app.Service {
     ctor public ApnService();
-    method public abstract java.util.List<android.content.ContentValues> onRestoreApns(int);
     method public android.os.IBinder onBind(android.content.Intent);
+    method public abstract java.util.List<android.content.ContentValues> onRestoreApns(int);
   }
 
 }
@@ -4926,12 +4983,45 @@
 
 package android.service.intelligence {
 
-  public abstract class IntelligenceService extends android.app.Service {
-    ctor public IntelligenceService();
-    method public abstract void onContentCaptureEvent(android.service.intelligence.InteractionSessionId, java.util.List<android.view.intelligence.ContentCaptureEvent>);
-    method public void onCreateInteractionSession(android.service.intelligence.InteractionContext, android.service.intelligence.InteractionSessionId);
-    method public void onDestroyInteractionSession(android.service.intelligence.InteractionSessionId);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.intelligence.IntelligenceService";
+  public final class ContentCaptureEventsRequest implements android.os.Parcelable {
+    method public int describeContents();
+    method public java.util.List<android.view.intelligence.ContentCaptureEvent> getEvents();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.service.intelligence.ContentCaptureEventsRequest> CREATOR;
+  }
+
+  public final class FillCallback {
+    method public void onSuccess(android.service.intelligence.FillResponse);
+  }
+
+  public final class FillController {
+    method public void autofill(java.util.List<android.util.Pair<android.view.autofill.AutofillId, android.view.autofill.AutofillValue>>);
+  }
+
+  public final class FillRequest {
+    method public android.view.autofill.AutofillId getFocusedId();
+    method public android.service.intelligence.PresentationParams getPresentationParams();
+    method public android.service.intelligence.InteractionSessionId getSessionId();
+  }
+
+  public final class FillResponse implements android.os.Parcelable {
+    method public int describeContents();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.service.intelligence.FillResponse> CREATOR;
+  }
+
+  public static class FillResponse.Builder {
+    ctor public FillResponse.Builder();
+    method public android.service.intelligence.FillResponse build();
+    method public android.service.intelligence.FillResponse.Builder setFillWindow(android.service.intelligence.FillWindow);
+    method public android.service.intelligence.FillResponse.Builder setIgnoredIds(java.util.List<android.view.autofill.AutofillId>);
+  }
+
+  public final class FillWindow {
+    ctor public FillWindow();
+    method public void destroy();
+    method public boolean update(android.service.intelligence.PresentationParams.Area, android.view.View, long);
+    field public static final long FLAG_METADATA_ADDRESS = 1L; // 0x1L
   }
 
   public final class InteractionContext implements android.os.Parcelable {
@@ -4952,6 +5042,47 @@
     field public static final android.os.Parcelable.Creator<android.service.intelligence.InteractionSessionId> CREATOR;
   }
 
+  public abstract class PresentationParams {
+    method public int getFlags();
+    method public android.service.intelligence.PresentationParams.Area getFullArea();
+    method public android.service.intelligence.PresentationParams.Area getSuggestionArea();
+    field public static final int FLAG_HINT_GRAVITY_BOTTOM = 2; // 0x2
+    field public static final int FLAG_HINT_GRAVITY_LEFT = 4; // 0x4
+    field public static final int FLAG_HINT_GRAVITY_RIGHT = 8; // 0x8
+    field public static final int FLAG_HINT_GRAVITY_TOP = 1; // 0x1
+    field public static final int FLAG_HOST_IME = 16; // 0x10
+    field public static final int FLAG_HOST_SYSTEM = 32; // 0x20
+  }
+
+  public static abstract class PresentationParams.Area {
+    method public android.graphics.Rect getBounds();
+    method public android.service.intelligence.PresentationParams.Area getSubArea(android.graphics.Rect);
+  }
+
+  public abstract class SmartSuggestionsService extends android.app.Service {
+    ctor public SmartSuggestionsService();
+    method public final java.util.Set<android.content.ComponentName> getContentCaptureDisabledActivities();
+    method public final java.util.Set<java.lang.String> getContentCaptureDisabledPackages();
+    method public void onActivitySnapshot(android.service.intelligence.InteractionSessionId, android.service.intelligence.SnapshotData);
+    method public abstract void onContentCaptureEventsRequest(android.service.intelligence.InteractionSessionId, android.service.intelligence.ContentCaptureEventsRequest);
+    method public void onCreateInteractionSession(android.service.intelligence.InteractionContext, android.service.intelligence.InteractionSessionId);
+    method public void onDestroyInteractionSession(android.service.intelligence.InteractionSessionId);
+    method public void onFillRequest(android.service.intelligence.InteractionSessionId, android.service.intelligence.FillRequest, android.os.CancellationSignal, android.service.intelligence.FillController, android.service.intelligence.FillCallback);
+    method public final void setActivityContentCaptureEnabled(android.content.ComponentName, boolean);
+    method public final void setContentCaptureWhitelist(java.util.List<java.lang.String>, java.util.List<android.content.ComponentName>);
+    method public final void setPackageContentCaptureEnabled(java.lang.String, boolean);
+    field public static final java.lang.String SERVICE_INTERFACE = "android.service.intelligence.SmartSuggestionsService";
+  }
+
+  public final class SnapshotData implements android.os.Parcelable {
+    method public int describeContents();
+    method public android.app.assist.AssistContent getAssistContent();
+    method public android.os.Bundle getAssistData();
+    method public android.app.assist.AssistStructure getAssistStructure();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.service.intelligence.SnapshotData> CREATOR;
+  }
+
 }
 
 package android.service.notification {
@@ -5001,14 +5132,20 @@
     ctor public NotificationAssistantService();
     method public final void adjustNotification(android.service.notification.Adjustment);
     method public final void adjustNotifications(java.util.List<android.service.notification.Adjustment>);
+    method public void onActionClicked(java.lang.String, android.app.Notification.Action, int);
     method public final android.os.IBinder onBind(android.content.Intent);
+    method public void onNotificationDirectReply(java.lang.String);
     method public android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification);
     method public android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification, android.app.NotificationChannel);
+    method public void onNotificationExpansionChanged(java.lang.String, boolean, boolean);
     method public void onNotificationRemoved(android.service.notification.StatusBarNotification, android.service.notification.NotificationListenerService.RankingMap, android.service.notification.NotificationStats, int);
     method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, java.lang.String);
     method public void onNotificationsSeen(java.util.List<java.lang.String>);
+    method public void onSuggestedReplySent(java.lang.String, java.lang.CharSequence, int);
     method public final void unsnoozeNotification(java.lang.String);
     field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
+    field public static final int SOURCE_FROM_APP = 0; // 0x0
+    field public static final int SOURCE_FROM_ASSISTANT = 1; // 0x1
   }
 
   public final class NotificationStats implements android.os.Parcelable {
@@ -5059,6 +5196,7 @@
 package android.service.oemlock {
 
   public class OemLockManager {
+    method public java.lang.String getLockName();
     method public boolean isOemUnlockAllowedByCarrier();
     method public boolean isOemUnlockAllowedByUser();
     method public void setOemUnlockAllowedByCarrier(boolean, byte[]);
@@ -5162,6 +5300,16 @@
 
 }
 
+package android.service.sms {
+
+  public abstract class FinancialSmsService extends android.app.Service {
+    method public android.os.IBinder onBind(android.content.Intent);
+    method public abstract android.database.CursorWindow onGetSmsMessages(android.os.Bundle);
+    field public static final java.lang.String ACTION_FINANCIAL_SERVICE_INTENT = "android.service.sms.action.FINANCIAL_SERVICE_INTENT";
+  }
+
+}
+
 package android.service.textclassifier {
 
   public abstract class TextClassifierService extends android.app.Service {
@@ -5171,8 +5319,10 @@
     method public abstract void onClassifyText(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextClassification.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextClassification>);
     method public void onCreateTextClassificationSession(android.view.textclassifier.TextClassificationContext, android.view.textclassifier.TextClassificationSessionId);
     method public void onDestroyTextClassificationSession(android.view.textclassifier.TextClassificationSessionId);
+    method public void onDetectLanguage(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextLanguage.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextLanguage>);
     method public abstract void onGenerateLinks(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextLinks.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextLinks>);
     method public void onSelectionEvent(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.SelectionEvent);
+    method public void onSuggestConversationActions(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.ConversationActions.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.ConversationActions>);
     method public abstract void onSuggestSelection(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextSelection.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextSelection>);
     field public static final java.lang.String SERVICE_INTERFACE = "android.service.textclassifier.TextClassifierService";
   }
@@ -5217,6 +5367,15 @@
 
 }
 
+package android.service.wallpaper {
+
+  public class WallpaperService.Engine {
+    method public boolean isInAmbientMode();
+    method public void onAmbientModeChanged(boolean, long);
+  }
+
+}
+
 package android.telecom {
 
   public deprecated class AudioState implements android.os.Parcelable {
@@ -5555,6 +5714,26 @@
     field public static final int RESULT_SUCCESS = 0; // 0x0
   }
 
+  public abstract interface NumberVerificationCallback {
+    method public default void onCallReceived(java.lang.String);
+    method public default void onVerificationFailed(int);
+    field public static final int REASON_CONCURRENT_REQUESTS = 4; // 0x4
+    field public static final int REASON_IN_ECBM = 5; // 0x5
+    field public static final int REASON_IN_EMERGENCY_CALL = 6; // 0x6
+    field public static final int REASON_NETWORK_NOT_AVAILABLE = 2; // 0x2
+    field public static final int REASON_TIMED_OUT = 1; // 0x1
+    field public static final int REASON_TOO_MANY_CALLS = 3; // 0x3
+    field public static final int REASON_UNSPECIFIED = 0; // 0x0
+  }
+
+  public final class PhoneNumberRange implements android.os.Parcelable {
+    ctor public PhoneNumberRange(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    method public int describeContents();
+    method public boolean matches(java.lang.String);
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.telephony.PhoneNumberRange> CREATOR;
+  }
+
   public class PhoneStateListener {
     method public void onRadioPowerStateChanged(int);
     method public void onSrvccStateChanged(int);
@@ -5719,6 +5898,7 @@
     method public boolean needsOtaServiceProvisioning();
     method public boolean rebootRadio();
     method public void requestCellInfoUpdate(android.os.WorkSource, java.util.concurrent.Executor, android.telephony.TelephonyManager.CellInfoCallback);
+    method public void requestNumberVerification(android.telephony.PhoneNumberRange, long, java.util.concurrent.Executor, android.telephony.NumberVerificationCallback);
     method public boolean resetRadioConfig();
     method public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
     method public void setCarrierDataEnabled(boolean);
@@ -5748,6 +5928,7 @@
     field public static final java.lang.String EXTRA_SIM_STATE = "android.telephony.extra.SIM_STATE";
     field public static final java.lang.String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL";
     field public static final java.lang.String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
+    field public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000L; // 0xea60L
     field public static final int NETWORK_MODE_CDMA_EVDO = 4; // 0x4
     field public static final int NETWORK_MODE_CDMA_NO_EVDO = 5; // 0x5
     field public static final int NETWORK_MODE_EVDO_NO_CDMA = 6; // 0x6
@@ -5786,6 +5967,7 @@
     field public static final int NETWORK_TYPE_BITMASK_HSUPA = 512; // 0x200
     field public static final int NETWORK_TYPE_BITMASK_LTE = 8192; // 0x2000
     field public static final int NETWORK_TYPE_BITMASK_LTE_CA = 524288; // 0x80000
+    field public static final int NETWORK_TYPE_BITMASK_NR = 1048576; // 0x100000
     field public static final int NETWORK_TYPE_BITMASK_TD_SCDMA = 131072; // 0x20000
     field public static final int NETWORK_TYPE_BITMASK_UMTS = 8; // 0x8
     field public static final int NETWORK_TYPE_BITMASK_UNKNOWN = 1; // 0x1
@@ -6098,6 +6280,7 @@
     method public android.os.Bundle getCallExtras();
     method public int getCallType();
     method public static int getCallTypeFromVideoState(int);
+    method public int getEmergencyServiceCategories();
     method public android.telephony.ims.ImsStreamMediaProfile getMediaProfile();
     method public int getRestrictCause();
     method public int getServiceType();
@@ -6110,6 +6293,7 @@
     method public void setCallExtraBoolean(java.lang.String, boolean);
     method public void setCallExtraInt(java.lang.String, int);
     method public void setCallRestrictCause(int);
+    method public void setEmergencyServiceCategories(int);
     method public void updateCallExtras(android.telephony.ims.ImsCallProfile);
     method public void updateCallType(android.telephony.ims.ImsCallProfile);
     method public void updateMediaProfile(android.telephony.ims.ImsCallProfile);
@@ -6234,6 +6418,45 @@
     field public static final android.os.Parcelable.Creator<android.telephony.ims.ImsExternalCallState> CREATOR;
   }
 
+  public class ImsMmTelManager {
+    method public static android.telephony.ims.ImsMmTelManager createForSubscriptionId(android.content.Context, int);
+    method public int getVoWiFiModeSetting();
+    method public boolean isAdvancedCallingSettingEnabled();
+    method public boolean isAvailable(int, int);
+    method public boolean isCapable(int, int);
+    method public boolean isVoWiFiRoamingSettingEnabled();
+    method public boolean isVoWiFiSettingEnabled();
+    method public boolean isVtSettingEnabled();
+    method public void registerImsRegistrationCallback(java.util.concurrent.Executor, android.telephony.ims.ImsMmTelManager.RegistrationCallback);
+    method public void registerMmTelCapabilityCallback(java.util.concurrent.Executor, android.telephony.ims.ImsMmTelManager.CapabilityCallback);
+    method public void setAdvancedCallingSetting(boolean);
+    method public void setRttCapabilitySetting(boolean);
+    method public void setVoWiFiModeSetting(int);
+    method public void setVoWiFiNonPersistent(boolean, int);
+    method public void setVoWiFiRoamingModeSetting(int);
+    method public void setVoWiFiRoamingSetting(boolean);
+    method public void setVoWiFiSetting(boolean);
+    method public void setVtSetting(boolean);
+    method public void unregisterImsRegistrationCallback(android.telephony.ims.ImsMmTelManager.RegistrationCallback);
+    method public void unregisterMmTelCapabilityCallback(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(android.telephony.ims.feature.MmTelFeature.MmTelCapabilities);
+  }
+
+  public static class ImsMmTelManager.RegistrationCallback {
+    ctor public ImsMmTelManager.RegistrationCallback();
+    method public void onDeregistered(android.telephony.ims.ImsReasonInfo);
+    method public void onRegistered(int);
+    method public void onRegistering(int);
+    method public void onTechnologyChangeFailed(int, android.telephony.ims.ImsReasonInfo);
+  }
+
   public final class ImsReasonInfo implements android.os.Parcelable {
     ctor public ImsReasonInfo(int, int, java.lang.String);
     method public int describeContents();
@@ -6960,9 +7183,9 @@
     method public int initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int) throws android.os.RemoteException;
     method public void onAppCallbackDied(int, int);
     method public android.os.IBinder onBind(android.content.Intent);
-    method public int startGroupCall(int, long, int[], int[], android.telephony.mbms.GroupCallCallback);
+    method public int startGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, android.telephony.mbms.GroupCallCallback);
     method public void stopGroupCall(int, long);
-    method public void updateGroupCall(int, long, int[], int[]);
+    method public void updateGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>);
   }
 
   public class MbmsStreamingServiceBase extends android.os.Binder {
@@ -7057,14 +7280,6 @@
     field public static final int TYPE_VIEW_TEXT_CHANGED = 7; // 0x7
   }
 
-  public final class IntelligenceManager {
-    method public java.util.Set<android.content.ComponentName> getContentCaptureDisabledActivities();
-    method public java.util.Set<java.lang.String> getContentCaptureDisabledPackages();
-    method public void setActivityContentCaptureEnabled(android.content.ComponentName, boolean);
-    method public void setContentCaptureWhitelist(java.util.List<java.lang.String>, java.util.List<android.content.ComponentName>);
-    method public void setPackageContentCaptureEnabled(java.lang.String, boolean);
-  }
-
   public final class ViewNode extends android.app.assist.AssistStructure.ViewNode {
     method public android.view.autofill.AutofillId getParentAutofillId();
   }
@@ -7454,7 +7669,7 @@
     method public default void onMovedToDisplay(int, android.content.res.Configuration);
     method public abstract void onOverScrolled(int, int, boolean, boolean);
     method public default void onProvideAutofillVirtualStructure(android.view.ViewStructure, int);
-    method public default boolean onProvideContentCaptureStructure(android.view.ViewStructure, int);
+    method public default void onProvideContentCaptureStructure(android.view.ViewStructure, int);
     method public abstract void onProvideVirtualStructure(android.view.ViewStructure);
     method public abstract void onScrollChanged(int, int, int, int);
     method public abstract void onSizeChanged(int, int, int, int);
diff --git a/api/test-current.txt b/api/test-current.txt
index 1c01cf1..46cbb52 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -61,6 +61,7 @@
   }
 
   public class ActivityTaskManager {
+    method public void clearLaunchParamsForPackages(java.util.List<java.lang.String>);
     method public java.lang.String listAllStacks();
     method public void moveTaskToStack(int, int, boolean);
     method public boolean moveTopActivityToPinnedStack(int, android.graphics.Rect);
@@ -81,6 +82,10 @@
     field public static final int SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT = 0; // 0x0
   }
 
+  public class AppDetailsActivity extends android.app.Activity {
+    ctor public AppDetailsActivity();
+  }
+
   public class AppOpsManager {
     method public java.util.List<android.app.AppOpsManager.HistoricalPackageOps> getAllHistoricPackagesOps(java.lang.String[], long, long);
     method public android.app.AppOpsManager.HistoricalPackageOps getHistoricalPackagesOps(int, java.lang.String, java.lang.String[], long, long);
@@ -300,16 +305,11 @@
 
   public abstract class Context {
     method public android.content.Context createPackageContextAsUser(java.lang.String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract java.lang.String getOpPackageName();
     method public android.os.UserHandle getUser();
     method public int getUserId();
     method public void setAutofillCompatibilityEnabled(boolean);
   }
 
-  public class ContextWrapper extends android.content.Context {
-    method public java.lang.String getOpPackageName();
-  }
-
 }
 
 package android.content.pm {
@@ -943,6 +943,10 @@
 
 package android.os.storage {
 
+  public class StorageManager {
+    method public static boolean hasIsolatedStorage();
+  }
+
   public final class StorageVolume implements android.os.Parcelable {
     method public java.lang.String getPath();
   }
@@ -985,6 +989,7 @@
 
   public static final class Settings.Global extends android.provider.Settings.NameValueTable {
     field public static final java.lang.String AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = "autofill_compat_mode_allowed_packages";
+    field public static final java.lang.String AUTOFILL_SMART_SUGGESTION_EMULATION_FLAGS = "autofill_smart_suggestion_emulation_flags";
     field public static final java.lang.String AUTOMATIC_POWER_SAVER_MODE = "automatic_power_saver_mode";
     field public static final java.lang.String DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD = "dynamic_power_savings_disable_threshold";
     field public static final java.lang.String DYNAMIC_POWER_SAVINGS_ENABLED = "dynamic_power_savings_enabled";
@@ -997,6 +1002,7 @@
   }
 
   public static final class Settings.Secure extends android.provider.Settings.NameValueTable {
+    method public static void resetToDefaults(android.content.ContentResolver, java.lang.String);
     field public static final java.lang.String ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED = "accessibility_display_magnification_enabled";
     field public static final java.lang.String ACCESSIBILITY_SHORTCUT_TARGET_SERVICE = "accessibility_shortcut_target_service";
     field public static final java.lang.String AUTOFILL_FEATURE_FIELD_CLASSIFICATION = "autofill_field_classification";
@@ -1008,6 +1014,8 @@
     field public static final java.lang.String AUTOFILL_USER_DATA_MIN_VALUE_LENGTH = "autofill_user_data_min_value_length";
     field public static final java.lang.String DISABLED_PRINT_SERVICES = "disabled_print_services";
     field public static final deprecated java.lang.String ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES = "enabled_notification_policy_access_packages";
+    field public static final java.lang.String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis";
+    field public static final java.lang.String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis";
     field public static final java.lang.String SYNC_PARENT_SOUNDS = "sync_parent_sounds";
     field public static final java.lang.String USER_SETUP_COMPLETE = "user_setup_complete";
     field public static final java.lang.String VOICE_INTERACTION_SERVICE = "voice_interaction_service";
@@ -1154,13 +1162,19 @@
     ctor public NotificationAssistantService();
     method public final void adjustNotification(android.service.notification.Adjustment);
     method public final void adjustNotifications(java.util.List<android.service.notification.Adjustment>);
+    method public void onActionClicked(java.lang.String, android.app.Notification.Action, int);
     method public final android.os.IBinder onBind(android.content.Intent);
+    method public void onNotificationDirectReply(java.lang.String);
     method public android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification);
     method public android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification, android.app.NotificationChannel);
+    method public void onNotificationExpansionChanged(java.lang.String, boolean, boolean);
     method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, java.lang.String);
     method public void onNotificationsSeen(java.util.List<java.lang.String>);
+    method public void onSuggestedReplySent(java.lang.String, java.lang.CharSequence, int);
     method public final void unsnoozeNotification(java.lang.String);
     field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
+    field public static final int SOURCE_FROM_APP = 0; // 0x0
+    field public static final int SOURCE_FROM_ASSISTANT = 1; // 0x1
   }
 
   public abstract class NotificationListenerService extends android.app.Service {
@@ -1318,9 +1332,9 @@
     method public int initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int) throws android.os.RemoteException;
     method public void onAppCallbackDied(int, int);
     method public android.os.IBinder onBind(android.content.Intent);
-    method public int startGroupCall(int, long, int[], int[], android.telephony.mbms.GroupCallCallback);
+    method public int startGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, android.telephony.mbms.GroupCallCallback);
     method public void stopGroupCall(int, long);
-    method public void updateGroupCall(int, long, int[], int[]);
+    method public void updateGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>);
   }
 
   public class MbmsStreamingServiceBase extends android.os.Binder {
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
index a826ec7..3723fce 100644
--- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
+++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
@@ -17,6 +17,7 @@
 package com.android.commands.bmgr;
 
 import android.annotation.IntDef;
+import android.annotation.UserIdInt;
 import android.app.backup.BackupManager;
 import android.app.backup.BackupManagerMonitor;
 import android.app.backup.BackupProgress;
@@ -29,6 +30,7 @@
 import android.app.backup.ISelectBackupTransportCallback;
 import android.app.backup.RestoreSet;
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageInfo;
 import android.os.Bundle;
@@ -37,8 +39,10 @@
 import android.os.SystemClock;
 import android.os.UserHandle;
 import android.util.ArraySet;
+import android.util.Slog;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -49,20 +53,34 @@
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 
-public final class Bmgr {
-    IBackupManager mBmgr;
-    IRestoreSession mRestore;
+/**
+ * Adb shell command for {@link android.app.backup.IBackupManager}.
+ */
+public class Bmgr {
+    public static final String TAG = "Bmgr";
 
-    static final String BMGR_NOT_RUNNING_ERR =
+    private final IBackupManager mBmgr;
+    private IRestoreSession mRestore;
+
+    private static final String BMGR_NOT_RUNNING_ERR =
             "Error: Could not access the Backup Manager.  Is the system running?";
-    static final String TRANSPORT_NOT_RUNNING_ERR =
+    private static final String TRANSPORT_NOT_RUNNING_ERR =
             "Error: Could not access the backup transport.  Is the system running?";
-    static final String PM_NOT_RUNNING_ERR =
+    private static final String PM_NOT_RUNNING_ERR =
             "Error: Could not access the Package Manager.  Is the system running?";
 
     private String[] mArgs;
     private int mNextArg;
 
+    @VisibleForTesting
+    Bmgr(IBackupManager bmgr) {
+        mBmgr = bmgr;
+    }
+
+    Bmgr() {
+        mBmgr = IBackupManager.Stub.asInterface(ServiceManager.getService(Context.BACKUP_SERVICE));
+    }
+
     public static void main(String[] args) {
         try {
             new Bmgr().run(args);
@@ -78,71 +96,73 @@
             return;
         }
 
-        if (!isBmgrActive()) {
+        mArgs = args;
+        mNextArg = 0;
+        int userId = parseUserId();
+        String op = nextArg();
+        Slog.v(TAG, "Running " + op + " for user:" + userId);
+
+        if (!isBmgrActive(userId)) {
             return;
         }
 
-        mArgs = args;
-        String op = args[0];
-        mNextArg = 1;
-
         if ("enabled".equals(op)) {
-            doEnabled();
+            doEnabled(userId);
             return;
         }
 
         if ("enable".equals(op)) {
-            doEnable();
+            doEnable(userId);
             return;
         }
 
         if ("run".equals(op)) {
-            doRun();
+            doRun(userId);
             return;
         }
 
         if ("backup".equals(op)) {
-            doBackup();
+            doBackup(userId);
             return;
         }
 
         if ("init".equals(op)) {
-            doInit();
+            doInit(userId);
             return;
         }
 
         if ("list".equals(op)) {
-            doList();
+            doList(userId);
             return;
         }
 
         if ("restore".equals(op)) {
-            doRestore();
+            doRestore(userId);
             return;
         }
 
         if ("transport".equals(op)) {
-            doTransport();
+            doTransport(userId);
             return;
         }
 
         if ("wipe".equals(op)) {
-            doWipe();
+            doWipe(userId);
             return;
         }
 
         if ("fullbackup".equals(op)) {
-            doFullTransportBackup();
+            doFullTransportBackup(userId);
             return;
         }
 
         if ("backupnow".equals(op)) {
-            doBackupNow();
+            doBackupNow(userId);
             return;
         }
 
         if ("cancel".equals(op)) {
-            doCancel();
+            doCancel(userId);
             return;
         }
 
@@ -155,15 +175,14 @@
         showUsage();
     }
 
-    private boolean isBmgrActive() {
-        mBmgr = IBackupManager.Stub.asInterface(ServiceManager.getService("backup"));
+    boolean isBmgrActive(@UserIdInt int userId) {
         if (mBmgr == null) {
             System.err.println(BMGR_NOT_RUNNING_ERR);
             return false;
         }
 
         try {
-            if (!mBmgr.isBackupServiceActive(UserHandle.USER_SYSTEM)) {
+            if (!mBmgr.isBackupServiceActive(userId)) {
                 System.err.println(BMGR_NOT_RUNNING_ERR);
                 return false;
             }
@@ -180,7 +199,7 @@
         return enabled ? "enabled" : "disabled";
     }
 
-    private void doEnabled() {
+    private void doEnabled(@UserIdInt int userId) {
         try {
             boolean isEnabled = mBmgr.isBackupEnabled();
             System.out.println("Backup Manager currently "
@@ -191,7 +210,7 @@
         }
     }
 
-    private void doEnable() {
+    private void doEnable(@UserIdInt int userId) {
         String arg = nextArg();
         if (arg == null) {
             showUsage();
@@ -211,7 +230,7 @@
         }
     }
 
-    private void doRun() {
+    void doRun(@UserIdInt int userId) {
         try {
             mBmgr.backupNow();
         } catch (RemoteException e) {
@@ -220,7 +239,7 @@
         }
     }
 
-    private void doBackup() {
+    private void doBackup(@UserIdInt int userId) {
         String pkg = nextArg();
         if (pkg == null) {
             showUsage();
@@ -235,7 +254,7 @@
         }
     }
 
-    private void doFullTransportBackup() {
+    private void doFullTransportBackup(@UserIdInt int userId) {
         System.out.println("Performing full transport backup");
 
         String pkg;
@@ -354,8 +373,8 @@
         }
     }
 
-    private void backupNowAllPackages(boolean nonIncrementalBackup, @Monitor int monitorState) {
-        int userId = UserHandle.USER_SYSTEM;
+    private void backupNowAllPackages(@UserIdInt int userId, boolean nonIncrementalBackup,
+            @Monitor int monitorState) {
         IPackageManager mPm =
                 IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
         if (mPm == null) {
@@ -379,11 +398,13 @@
                 System.err.println(e.toString());
                 System.err.println(BMGR_NOT_RUNNING_ERR);
             }
-            backupNowPackages(Arrays.asList(filteredPackages), nonIncrementalBackup, monitorState);
+            backupNowPackages(userId, Arrays.asList(filteredPackages), nonIncrementalBackup,
+                    monitorState);
         }
     }
 
     private void backupNowPackages(
+            @UserIdInt int userId,
             List<String> packages, boolean nonIncrementalBackup, @Monitor int monitorState) {
         int flags = 0;
         if (nonIncrementalBackup) {
@@ -412,7 +433,7 @@
         }
     }
 
-    private void doBackupNow() {
+    private void doBackupNow(@UserIdInt int userId) {
         String pkg;
         boolean backupAll = false;
         boolean nonIncrementalBackup = false;
@@ -439,20 +460,20 @@
             if (allPkgs.size() == 0) {
                 System.out.println("Running " + (nonIncrementalBackup ? "non-" : "") +
                         "incremental backup for all packages.");
-                backupNowAllPackages(nonIncrementalBackup, monitor);
+                backupNowAllPackages(userId, nonIncrementalBackup, monitor);
             } else {
                 System.err.println("Provide only '--all' flag or list of packages.");
             }
         } else if (allPkgs.size() > 0) {
             System.out.println("Running " + (nonIncrementalBackup ? "non-" : "") +
                     "incremental backup for " + allPkgs.size() +" requested packages.");
-            backupNowPackages(allPkgs, nonIncrementalBackup, monitor);
+            backupNowPackages(userId, allPkgs, nonIncrementalBackup, monitor);
         } else {
             System.err.println("Provide '--all' flag or list of packages.");
         }
     }
 
-    private void doCancel() {
+    private void doCancel(@UserIdInt int userId) {
         String arg = nextArg();
         if ("backups".equals(arg)) {
             try {
@@ -467,7 +488,7 @@
         System.err.println("Unknown command.");
     }
 
-    private void doTransport() {
+    private void doTransport(@UserIdInt int userId) {
         try {
             String which = nextArg();
             if (which == null) {
@@ -531,7 +552,7 @@
         }
     }
 
-    private void doWipe() {
+    private void doWipe(@UserIdInt int userId) {
         String transport = nextArg();
         if (transport == null) {
             showUsage();
@@ -563,7 +584,7 @@
         }
     }
 
-    private void doInit() {
+    private void doInit(@UserIdInt int userId) {
         ArraySet<String> transports = new ArraySet<>();
         String transport;
         while ((transport = nextArg()) != null) {
@@ -586,7 +607,7 @@
         }
     }
 
-    private void doList() {
+    private void doList(@UserIdInt int userId) {
         String arg = nextArg();     // sets, transports, packages set#
         if ("transports".equals(arg)) {
             doListTransports();
@@ -603,8 +624,6 @@
 
             if ("sets".equals(arg)) {
                 doListRestoreSets();
-            } else if ("transports".equals(arg)) {
-                doListTransports();
             }
 
             mRestore.endRestoreSession();
@@ -717,7 +736,7 @@
         }
     }
 
-    private void doRestore() {
+    private void doRestore(@UserIdInt int userId) {
         String arg = nextArg();
         if (arg == null) {
             showUsage();
@@ -830,8 +849,18 @@
         return arg;
     }
 
+    private int parseUserId() {
+        String arg = nextArg();
+        if ("--user".equals(arg)) {
+            return UserHandle.parseUserArg(nextArg());
+        } else {
+            mNextArg--;
+            return UserHandle.USER_SYSTEM;
+        }
+    }
+
     private static void showUsage() {
-        System.err.println("usage: bmgr [backup|restore|list|transport|run]");
+        System.err.println("usage: bmgr [--user <userId>] [backup|restore|list|transport|run]");
         System.err.println("       bmgr backup PACKAGE");
         System.err.println("       bmgr enable BOOL");
         System.err.println("       bmgr enabled");
@@ -847,6 +876,10 @@
         System.err.println("       bmgr cancel backups");
         System.err.println("       bmgr init TRANSPORT...");
         System.err.println("");
+        System.err.println("The '--user' option specifies the user on which the operation is run.");
+        System.err.println("It must be the first argument before the operation.");
+        System.err.println("The default value is 0 which is the system user.");
+        System.err.println("");
         System.err.println("The 'backup' command schedules a backup pass for the named package.");
         System.err.println("Note that the backup pass will effectively be a no-op if the package");
         System.err.println("does not actually have changed data to store.");
diff --git a/cmds/bootanimation/Android.bp b/cmds/bootanimation/Android.bp
new file mode 100644
index 0000000..31bd612
--- /dev/null
+++ b/cmds/bootanimation/Android.bp
@@ -0,0 +1,90 @@
+cc_defaults {
+    name: "bootanimation_defaults",
+
+    cflags: [
+        "-DGL_GLEXT_PROTOTYPES",
+        "-DEGL_EGLEXT_PROTOTYPES",
+
+        "-Wall",
+        "-Werror",
+        "-Wunused",
+        "-Wunreachable-code",
+    ],
+
+    shared_libs: [
+        "libandroidfw",
+        "libbase",
+        "libbinder",
+        "libcutils",
+        "liblog",
+        "libutils",
+    ],
+}
+
+// bootanimation executable
+// =========================================================
+
+cc_binary {
+    name: "bootanimation",
+    defaults: ["bootanimation_defaults"],
+
+    shared_libs: [
+        "libOpenSLES",
+        "libbootanimation",
+    ],
+
+    srcs: [
+        "BootAnimationUtil.cpp",
+
+        "bootanimation_main.cpp",
+        "audioplay.cpp",
+    ],
+
+    product_variables: {
+        product_is_iot: {
+            shared_libs: [
+                "libandroidthings",
+                "libandroidthings_protos",
+                "libchrome",
+                "libprotobuf-cpp-lite",
+            ],
+            static_libs: ["libjsoncpp"],
+            srcs: [
+                "iot/iotbootanimation_main.cpp",
+                "iot/BootAction.cpp",
+                "iot/BootParameters.cpp",
+            ],
+            exclude_srcs: [
+                "bootanimation_main.cpp",
+                "audioplay.cpp",
+            ],
+        },
+    },
+
+    init_rc: ["bootanim.rc"],
+}
+
+// libbootanimation
+// ===========================================================
+
+cc_library_shared {
+    name: "libbootanimation",
+    defaults: ["bootanimation_defaults"],
+
+    srcs: ["BootAnimation.cpp"],
+
+    shared_libs: [
+        "libui",
+        "libhwui",
+        "libEGL",
+        "libGLESv1_CM",
+        "libgui",
+        "libtinyalsa",
+    ],
+
+    product_variables: {
+        product_is_iot: {
+            init_rc: ["iot/bootanim_iot.rc"],
+        },
+    },
+}
diff --git a/cmds/bootanimation/Android.mk b/cmds/bootanimation/Android.mk
deleted file mode 100644
index 6943dab..0000000
--- a/cmds/bootanimation/Android.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-bootanimation_CommonCFlags = -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
-bootanimation_CommonCFlags += -Wall -Werror -Wunused -Wunreachable-code
-
-
-# bootanimation executable
-# =========================================================
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_CFLAGS += ${bootanimation_CommonCFlags}
-
-LOCAL_SHARED_LIBRARIES := \
-    libOpenSLES \
-    libandroidfw \
-    libbase \
-    libbinder \
-    libbootanimation \
-    libcutils \
-    liblog \
-    libutils \
-
-LOCAL_SRC_FILES:= \
-    BootAnimationUtil.cpp \
-
-ifeq ($(PRODUCT_IOT),true)
-
-LOCAL_SHARED_LIBRARIES += \
-    libandroidthings \
-    libandroidthings_protos \
-    libchrome \
-    libprotobuf-cpp-lite \
-
-LOCAL_STATIC_LIBRARIES += \
-    libjsoncpp
-
-LOCAL_SRC_FILES += \
-    iot/iotbootanimation_main.cpp \
-    iot/BootAction.cpp \
-    iot/BootParameters.cpp \
-
-else
-
-LOCAL_SRC_FILES += \
-    bootanimation_main.cpp \
-    audioplay.cpp \
-
-endif  # PRODUCT_IOT
-
-LOCAL_MODULE:= bootanimation
-
-LOCAL_INIT_RC := bootanim.rc
-
-ifdef TARGET_32_BIT_SURFACEFLINGER
-LOCAL_32_BIT_ONLY := true
-endif
-
-include $(BUILD_EXECUTABLE)
-
-
-# libbootanimation
-# ===========================================================
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := libbootanimation
-LOCAL_CFLAGS += ${bootanimation_CommonCFlags}
-
-LOCAL_SRC_FILES:= \
-    BootAnimation.cpp
-
-LOCAL_CFLAGS += ${bootanimation_CommonCFlags}
-
-LOCAL_C_INCLUDES += \
-    external/tinyalsa/include \
-    frameworks/wilhelm/include
-
-LOCAL_SHARED_LIBRARIES := \
-    libcutils \
-    liblog \
-    libandroidfw \
-    libutils \
-    libbinder \
-    libui \
-    libhwui \
-    libEGL \
-    libGLESv1_CM \
-    libgui \
-    libtinyalsa \
-    libbase
-
-ifeq ($(PRODUCT_IOT),true)
-
-LOCAL_INIT_RC := iot/bootanim_iot.rc
-
-endif # PRODUCT_IOT
-
-ifdef TARGET_32_BIT_SURFACEFLINGER
-LOCAL_32_BIT_ONLY := true
-endif
-
-include ${BUILD_SHARED_LIBRARY}
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/cmds/bootanimation/iot/Android.bp b/cmds/bootanimation/iot/Android.bp
new file mode 100644
index 0000000..1f248ad
--- /dev/null
+++ b/cmds/bootanimation/iot/Android.bp
@@ -0,0 +1,49 @@
+// 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.
+//
+
+// libbootanimation_iot_test
+// ===========================================================
+cc_test {
+    name: "libbootanimation_iot_test",
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wunused",
+        "-Wunreachable-code",
+    ],
+
+    shared_libs: [
+        "libandroidthings",
+        "libandroidthings_protos",
+        "libbase",
+        "libchrome",
+        "liblog",
+        "libprotobuf-cpp-lite",
+    ],
+
+    static_libs: ["libjsoncpp"],
+
+    srcs: [
+        "BootParameters.cpp",
+        "BootParameters_test.cpp",
+    ],
+
+    enabled: false,
+    product_variables: {
+        product_is_iot: {
+            enabled: true,
+        },
+    },
+}
diff --git a/cmds/bootanimation/iot/Android.mk b/cmds/bootanimation/iot/Android.mk
deleted file mode 100644
index 3d288e4..0000000
--- a/cmds/bootanimation/iot/Android.mk
+++ /dev/null
@@ -1,43 +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.
-#
-
-LOCAL_PATH:= $(call my-dir)
-
-ifeq ($(PRODUCT_IOT),true)
-
-# libbootanimation_iot_test
-# ===========================================================
-include $(CLEAR_VARS)
-LOCAL_MODULE := libbootanimation_iot_test
-LOCAL_CFLAGS := -Wall -Werror -Wunused -Wunreachable-code
-
-LOCAL_SHARED_LIBRARIES := \
-    libandroidthings \
-    libandroidthings_protos \
-    libbase \
-    libchrome \
-    liblog \
-    libprotobuf-cpp-lite \
-
-LOCAL_STATIC_LIBRARIES += \
-    libjsoncpp
-
-LOCAL_SRC_FILES := \
-    BootParameters.cpp \
-    BootParameters_test.cpp \
-
-include $(BUILD_NATIVE_TEST)
-
-endif # PRODUCT_IOT
diff --git a/cmds/content/src/com/android/commands/content/Content.java b/cmds/content/src/com/android/commands/content/Content.java
index 1597c8c..52a2ab4 100644
--- a/cmds/content/src/com/android/commands/content/Content.java
+++ b/cmds/content/src/com/android/commands/content/Content.java
@@ -77,7 +77,7 @@
                     + "  <BINDING> binds a typed value to a column and is formatted:\n"
                     + "  <COLUMN_NAME>:<TYPE>:<COLUMN_VALUE> where:\n"
                     + "  <TYPE> specifies data type such as:\n"
-                    + "  b - boolean, s - string, i - integer, l - long, f - float, d - double\n"
+                    + "  b - boolean, s - string, i - integer, l - long, f - float, d - double, n - null\n"
                     + "  Note: Omit the value for passing an empty string, e.g column:s:\n"
                     + "  Example:\n"
                     + "  # Add \"new_setting\" secure setting with value \"new_value\".\n"
@@ -153,6 +153,7 @@
         private static final String TYPE_LONG = "l";
         private static final String TYPE_FLOAT = "f";
         private static final String TYPE_DOUBLE = "d";
+        private static final String TYPE_NULL = "n";
         private static final String COLON = ":";
         private static final String ARGUMENT_PREFIX = "--";
 
@@ -410,6 +411,8 @@
                 values.put(column, Long.parseLong(value));
             } else if (TYPE_FLOAT.equalsIgnoreCase(type) || TYPE_DOUBLE.equalsIgnoreCase(type)) {
                 values.put(column, Double.parseDouble(value));
+            } else if (TYPE_NULL.equalsIgnoreCase(type)) {
+                values.putNull(column);
             } else {
                 throw new IllegalArgumentException("Unsupported type: " + type);
             }
diff --git a/cmds/dpm/src/com/android/commands/dpm/Dpm.java b/cmds/dpm/src/com/android/commands/dpm/Dpm.java
index 376b13c..6c6797a 100644
--- a/cmds/dpm/src/com/android/commands/dpm/Dpm.java
+++ b/cmds/dpm/src/com/android/commands/dpm/Dpm.java
@@ -48,6 +48,8 @@
     private static final String COMMAND_CLEAR_FREEZE_PERIOD_RECORD = "clear-freeze-period-record";
     private static final String COMMAND_FORCE_NETWORK_LOGS = "force-network-logs";
     private static final String COMMAND_FORCE_SECURITY_LOGS = "force-security-logs";
+    private static final String COMMAND_GRANT_PO_DEVICE_ID_ACCESS =
+            "grant-profile-owner-device-ids-access";
 
     private IDevicePolicyManager mDevicePolicyManager;
     private int mUserId = UserHandle.USER_SYSTEM;
@@ -89,7 +91,10 @@
                 "the DPC and triggers DeviceAdminReceiver.onNetworkLogsAvailable() if needed.\n" +
                 "\n" +
                 "dpm " + COMMAND_FORCE_SECURITY_LOGS + ": makes all security logs available to " +
-                "the DPC and triggers DeviceAdminReceiver.onSecurityLogsAvailable() if needed.");
+                "the DPC and triggers DeviceAdminReceiver.onSecurityLogsAvailable() if needed."
+                + "\n"
+                + "usage: dpm " + COMMAND_GRANT_PO_DEVICE_ID_ACCESS + ": "
+                + "[ --user <USER_ID> | current ] <COMPONENT>\n");
     }
 
     @Override
@@ -124,6 +129,9 @@
             case COMMAND_FORCE_SECURITY_LOGS:
                 runForceSecurityLogs();
                 break;
+            case COMMAND_GRANT_PO_DEVICE_ID_ACCESS:
+                runGrantProfileOwnerDeviceIdsAccess();
+                break;
             default:
                 throw new IllegalArgumentException ("unknown command '" + command + "'");
         }
@@ -242,6 +250,13 @@
         System.out.println("Success");
     }
 
+
+    private void runGrantProfileOwnerDeviceIdsAccess() throws RemoteException {
+        parseArgs(/*canHaveName=*/ false);
+        mDevicePolicyManager.grantDeviceIdsAccessToProfileOwner(mComponent, mUserId);
+        System.out.println("Success");
+    }
+
     private ComponentName parseComponentName(String component) {
         ComponentName cn = ComponentName.unflattenFromString(component);
         if (cn == null) {
diff --git a/cmds/idmap2/Android.bp b/cmds/idmap2/Android.bp
index 5a6c813..d7922bc 100644
--- a/cmds/idmap2/Android.bp
+++ b/cmds/idmap2/Android.bp
@@ -18,7 +18,7 @@
     tidy: true,
     tidy_flags: [
         "-system-headers",
-        "-warnings-as-errors=*",
+// b/120024673       "-warnings-as-errors=*",
     ],
     srcs: [
         "libidmap2/BinaryStreamVisitor.cpp",
@@ -64,7 +64,7 @@
     tidy: true,
     tidy_flags: [
         "-system-headers",
-        "-warnings-as-errors=*",
+// b/120024673        "-warnings-as-errors=*",
     ],
     srcs: [
         "tests/BinaryStreamVisitorTests.cpp",
@@ -118,7 +118,7 @@
     tidy: true,
     tidy_flags: [
         "-system-headers",
-        "-warnings-as-errors=*",
+// b/120024673        "-warnings-as-errors=*",
     ],
     srcs: [
         "idmap2/Create.cpp",
@@ -165,7 +165,7 @@
     ],
     tidy_flags: [
         "-system-headers",
-        "-warnings-as-errors=*",
+// b/120024673        "-warnings-as-errors=*",
     ],
     srcs: [
         ":idmap2_aidl",
@@ -181,6 +181,7 @@
         "libutils",
         "libziparchive",
     ],
+    init_rc: ["idmap2d/idmap2d.rc"],
 }
 
 filegroup {
diff --git a/cmds/idmap2/idmap2/Lookup.cpp b/cmds/idmap2/idmap2/Lookup.cpp
index 1191e6a..020c443 100644
--- a/cmds/idmap2/idmap2/Lookup.cpp
+++ b/cmds/idmap2/idmap2/Lookup.cpp
@@ -48,8 +48,6 @@
 using android::Res_value;
 using android::ResStringPool;
 using android::ResTable_config;
-using android::String16;
-using android::String8;
 using android::StringPiece16;
 using android::base::StringPrintf;
 using android::idmap2::CommandLineOptions;
diff --git a/cmds/idmap2/idmap2d/idmap2d.rc b/cmds/idmap2/idmap2d/idmap2d.rc
new file mode 100644
index 0000000..203e7be
--- /dev/null
+++ b/cmds/idmap2/idmap2d/idmap2d.rc
@@ -0,0 +1,4 @@
+service idmap2d /system/bin/idmap2d
+    class main
+    user system
+    group system
diff --git a/cmds/incidentd/src/IncidentService.cpp b/cmds/incidentd/src/IncidentService.cpp
index 1c3ebd8..b23c1ed 100644
--- a/cmds/incidentd/src/IncidentService.cpp
+++ b/cmds/incidentd/src/IncidentService.cpp
@@ -24,6 +24,7 @@
 #include "incidentd_util.h"
 #include "section_list.h"
 
+#include <android/os/IncidentReportArgs.h>
 #include <binder/IPCThreadState.h>
 #include <binder/IResultReceiver.h>
 #include <binder/IServiceManager.h>
@@ -41,6 +42,15 @@
 #define DEFAULT_BYTES_SIZE_LIMIT (20 * 1024 * 1024)        // 20MB
 #define DEFAULT_REFACTORY_PERIOD_MS (24 * 60 * 60 * 1000)  // 1 Day
 
+// Skip logs (1100 - 1108) because they are already in the bug report
+// Skip 1200, 1201, 1202, 3018 because they take too long
+// TODO(120079956): Skip 3008, 3015 because of error
+#define SKIPPED_SECTIONS { 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, /* Logs */ \
+                           1200, 1201, 1202, /* Native, hal, java traces */ \
+                           3008, /* "package --proto" */ \
+                           3015, /* "activity --proto processes" */ \
+                           3018  /* "meminfo -a --proto" */ }
+
 namespace android {
 namespace os {
 namespace incidentd {
@@ -391,6 +401,38 @@
     return NO_ERROR;
 }
 
+status_t IncidentService::dump(int fd, const Vector<String16>& args) {
+    if (std::find(args.begin(), args.end(), String16("--proto")) == args.end()) {
+        ALOGD("Skip dumping incident. Only proto format is supported.");
+        dprintf(fd, "Incident dump only supports proto version.\n");
+        return NO_ERROR;
+    }
+
+    ALOGD("Dump incident proto");
+    IncidentReportArgs incidentArgs;
+    incidentArgs.setDest(DEST_EXPLICIT);
+    int skipped[] = SKIPPED_SECTIONS;
+    for (const Section** section = SECTION_LIST; *section; section++) {
+        const int id = (*section)->id;
+        if (std::find(std::begin(skipped), std::end(skipped), id) == std::end(skipped)) {
+            incidentArgs.addSection(id);
+        }
+    }
+
+    if (!checkIncidentPermissions(incidentArgs).isOk()) {
+        return PERMISSION_DENIED;
+    }
+
+    int fd1 = dup(fd);
+    if (fd1 < 0) {
+        return -errno;
+    }
+
+    mHandler->scheduleRunReport(new ReportRequest(incidentArgs, NULL, fd1));
+
+    return NO_ERROR;
+}
+
 }  // namespace incidentd
 }  // namespace os
 }  // namespace android
diff --git a/cmds/incidentd/src/IncidentService.h b/cmds/incidentd/src/IncidentService.h
index e176bfd..6252ad2 100644
--- a/cmds/incidentd/src/IncidentService.h
+++ b/cmds/incidentd/src/IncidentService.h
@@ -112,6 +112,7 @@
     virtual status_t onTransact(uint32_t code, const Parcel& data, Parcel* reply,
                                 uint32_t flags) override;
     virtual status_t command(FILE* in, FILE* out, FILE* err, Vector<String8>& args);
+    virtual status_t dump(int fd, const Vector<String16>& args);
 
 private:
     sp<ReportRequestQueue> mQueue;
diff --git a/cmds/incidentd/src/main.cpp b/cmds/incidentd/src/main.cpp
index 4948823..098d74e 100644
--- a/cmds/incidentd/src/main.cpp
+++ b/cmds/incidentd/src/main.cpp
@@ -45,7 +45,8 @@
 
     // Create the service
     sp<IncidentService> service = new IncidentService(looper);
-    if (defaultServiceManager()->addService(String16("incident"), service) != 0) {
+    if (defaultServiceManager()->addService(String16("incident"), service, false,
+            IServiceManager::DUMP_FLAG_PRIORITY_NORMAL | IServiceManager::DUMP_FLAG_PROTO) != 0) {
         ALOGE("Failed to add service");
         return -1;
     }
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index fa0a018..41a2021 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -34,6 +34,8 @@
 import "frameworks/base/core/proto/android/telecomm/enums.proto";
 import "frameworks/base/core/proto/android/telephony/enums.proto";
 import "frameworks/base/core/proto/android/view/enums.proto";
+import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy_enums.proto";
+import "frameworks/base/core/proto/android/stats/devicepolicy/device_policy.proto";
 
 /**
  * The master atom class. This message defines all of the available
@@ -156,6 +158,7 @@
         ServiceLaunchReported service_launch_reported = 100;
         PhenotypeFlagStateChanged phenotype_flag_state_changed = 101;
         BinaryPushStateChanged binary_push_state_changed = 102;
+        DevicePolicyEvent device_policy_event = 103;
     }
 
     // Pulled events will start at field 10000.
@@ -204,6 +207,8 @@
         DeviceCalculatedPowerBlameUid device_calculated_power_blame_uid = 10040;
         DeviceCalculatedPowerBlameOther device_calculated_power_blame_other = 10041;
         ProcessMemoryHighWaterMark process_memory_high_water_mark = 10042;
+        BatteryLevel battery_level = 10043;
+        BuildInformation build_information = 10044;
     }
 
     // DO NOT USE field numbers above 100,000 in AOSP.
@@ -1333,8 +1338,9 @@
  * Log bucketed battery charge cycles.
  *
  * Each bucket represents cycles of the battery past
- * a given charge point.  For example, bucket 1 is the
- * lowest 1/8th of the battery, and bucket 8 is 100%.
+ * a given charge point.  For example, if 10 cycle buckets are
+ * initialized, bucket 1 is the lowest 1/10th of the battery,
+ * and bucket 10 is 100%.
  *
  * Logged from:
  * /sys/class/power_supply/bms/cycle_count, via Vendor.
@@ -1348,6 +1354,8 @@
     optional int32 cycle_bucket_6 = 6;
     optional int32 cycle_bucket_7 = 7;
     optional int32 cycle_bucket_8 = 8;
+    optional int32 cycle_bucket_9 = 9;
+    optional int32 cycle_bucket_10 = 10;
 }
 
 /**
@@ -2010,6 +2018,9 @@
 
     // SWAP
     optional int64 swap_in_bytes = 8;
+
+    // The elapsed real time of start of the process.
+    optional int64 process_start_time_nanos = 9;
 }
 
 /*
@@ -2420,8 +2431,8 @@
  */
 message CpuTimePerUid {
     optional int32 uid = 1 [(is_uid) = true];
-    optional uint64 user_time_millis = 2;
-    optional uint64 sys_time_millis = 3;
+    optional uint64 user_time_micros = 2;
+    optional uint64 sys_time_micros = 3;
 }
 
 /**
@@ -2535,10 +2546,7 @@
     // SWAP
     optional int64 swap_in_bytes = 8;
 
-    // RSS high watermark.
-    // Peak RSS usage of the process. Value is read from the VmHWM field in /proc/PID/status or
-    // from memory.max_usage_in_bytes under /dev/memcg if the device uses per-app memory cgroups.
-    // Deprecated: use ProcessMemoryHighWaterMark atom instead.
+    // Deprecated: use ProcessMemoryHighWaterMark atom instead. Always 0.
     optional int64 rss_high_watermark_in_bytes = 9 [deprecated = true];
 
     // Elapsed real time when the process started.
@@ -2565,9 +2573,7 @@
     // RSS
     optional int64 rss_in_bytes = 5;
 
-    // RSS high watermark.
-    // Peak RSS usage of the process. Value is read from the VmHWM field in /proc/PID/status.
-    // Deprecated: use ProcessMemoryHighWaterMark atom instead.
+    // Deprecated: use ProcessMemoryHighWaterMark atom instead. Always 0.
     optional int64 rss_high_watermark_in_bytes = 6 [deprecated = true];
 
     // Elapsed real time when the process started.
@@ -2679,6 +2685,17 @@
 }
 
 /**
+ * Pulls battery level (percent full, from 0 to 100).
+ *
+ * Pulled from:
+ *   frameworks/base/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp
+ */
+message BatteryLevel {
+    // Battery level. Should be in [0, 100].
+    optional int32 battery_level = 1;
+}
+
+/**
  * Pulls the temperature of various parts of the device.
  * The units are tenths of a degree Celsius. Eg: 30.3C is reported as 303.
  *
@@ -3305,17 +3322,68 @@
     // UID that owns the process.
     optional int32 uid = 1 [(is_uid) = true];
     // ID of the process.
-    optional uint32 process_id = 2;
+    optional int32 process_id = 2;
     // ID of the thread.
-    optional uint32 thread_id = 3;
+    optional int32 thread_id = 3;
     // Name of the process taken from `/proc/$PID/cmdline`.
     optional string process_name = 4;
     // Name of the thread taken from `/proc/$PID/task/$TID/comm`
     optional string thread_name = 5;
-    // What frequency the CPU was running at, in KHz
-    optional uint32 frequency_khz = 6;
-    // Time spent in frequency in milliseconds, since thread start.
-    optional uint32 time_millis = 7;
+
+    // Report eight different frequencies, and how much time is spent in each frequency. Frequencies
+    // are given in KHz, and time is given in milliseconds since the thread started. All eight
+    // frequencies are given here as the alternative is sending eight separate atoms. This method
+    // significantly reduces the amount of data created
+    optional int32 frequency1_khz = 6;
+    optional int32 time1_millis = 7;
+    optional int32 frequency2_khz = 8;
+    optional int32 time2_millis = 9;
+    optional int32 frequency3_khz = 10;
+    optional int32 time3_millis = 11;
+    optional int32 frequency4_khz = 12;
+    optional int32 time4_millis = 13;
+    optional int32 frequency5_khz = 14;
+    optional int32 time5_millis = 15;
+    optional int32 frequency6_khz = 16;
+    optional int32 time6_millis = 17;
+    optional int32 frequency7_khz = 18;
+    optional int32 time7_millis = 19;
+    optional int32 frequency8_khz = 20;
+    optional int32 time8_millis = 21;
+}
+
+/**
+ * Pulls information about the device's build.
+ */
+message BuildInformation {
+    // Build.FINGERPRINT. A string that uniquely identifies this build. Do not parse.
+    // E.g. may be composed of the brand, product, device, release, id, incremental, type, and tags.
+    optional string fingerprint = 1;
+
+    // Build.BRAND. The consumer-visible brand with which the product/hardware will be associated.
+    optional string brand = 2;
+
+    // Build.PRODUCT. The name of the overall product.
+    optional string product = 3;
+
+    // Build.DEVICE. The name of the industrial design.
+    optional string device = 4;
+
+    // Build.VERSION.RELEASE. The user-visible version string.  E.g., "1.0" or "3.4b5" or "bananas".
+    optional string version_release = 5;
+
+    // Build.ID. E.g. a label like "M4-rc20".
+    optional string id = 6;
+
+    // Build.VERSION.INCREMENTAL. The internal value used by the underlying source control to
+    // represent this build.
+    optional string version_incremental = 7;
+
+    // Build.TYPE. The type of build, like "user" or "eng".
+    optional string type = 8;
+
+    // Build.TAGS. Comma-separated tags describing the build, like "unsigned,debug".
+    optional string tags = 9;
 }
 
 /**
@@ -3377,3 +3445,25 @@
     // (i.e. roughly since device was last significantly charged).
     optional float power_milli_amp_hours = 2;
 }
+
+/**
+ * Logs device policy features.
+ *
+ * Logged from:
+ *   frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+ *   packages/apps/ManagedProvisioning/src/com/android/managedprovisioning/
+ */
+message DevicePolicyEvent {
+    // The event id - unique for each event.
+    optional android.stats.devicepolicy.EventId event_id = 1;
+    // The admin package name.
+    optional string admin_package_name = 2;
+    // A generic integer parameter.
+    optional int32 integer_value = 3;
+    // A generic boolean parameter.
+    optional bool boolean_value = 4;
+    // A parameter specifying a time period in milliseconds.
+    optional uint64 time_period_millis = 5;
+    // A parameter specifying a list of package names, bundle extras or string parameters.
+    optional android.stats.devicepolicy.StringList string_list_value = 6 [(log_mode) = MODE_BYTES];
+}
diff --git a/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp b/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp
index ae2cf74..b878652 100644
--- a/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp
+++ b/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp
@@ -91,6 +91,12 @@
             ptr->write(v.legacy.batteryVoltage);
             ptr->init();
             data->push_back(ptr);
+        } else if (mTagId == android::util::BATTERY_LEVEL) {
+                     auto ptr = make_shared<LogEvent>(android::util::BATTERY_LEVEL,
+                         wallClockTimestampNs, elapsedTimestampNs);
+                     ptr->write(v.legacy.batteryLevel);
+                     ptr->init();
+                     data->push_back(ptr);
         } else {
             ALOGE("Unsupported tag in ResourceHealthManagerPuller: %d", mTagId);
         }
diff --git a/cmds/statsd/src/external/StatsCompanionServicePuller.cpp b/cmds/statsd/src/external/StatsCompanionServicePuller.cpp
index 3eb05a9..4e4b8f3 100644
--- a/cmds/statsd/src/external/StatsCompanionServicePuller.cpp
+++ b/cmds/statsd/src/external/StatsCompanionServicePuller.cpp
@@ -59,7 +59,7 @@
         }
         data->clear();
         for (const StatsLogEventWrapper& it : returned_value) {
-            data->push_back(make_shared<LogEvent>(it));
+            LogEvent::createLogEvents(it, *data);
         }
         VLOG("StatsCompanionServicePuller::pull succeeded for %d", mTagId);
         return true;
diff --git a/cmds/statsd/src/external/StatsPuller.cpp b/cmds/statsd/src/external/StatsPuller.cpp
index e3f251a..f501574 100644
--- a/cmds/statsd/src/external/StatsPuller.cpp
+++ b/cmds/statsd/src/external/StatsPuller.cpp
@@ -32,9 +32,10 @@
 sp<UidMap> StatsPuller::mUidMap = nullptr;
 void StatsPuller::SetUidMap(const sp<UidMap>& uidMap) { mUidMap = uidMap; }
 
-// ValueMetric has a minimum bucket size of 10min so that we don't pull too frequently
 StatsPuller::StatsPuller(const int tagId)
     : mTagId(tagId) {
+    // Pullers can cause significant impact to system health and battery.
+    // So that we don't pull too frequently.
     mCoolDownNs = StatsPullerManager::kAllPullAtomInfo.find(tagId)->second.coolDownNs;
     VLOG("Puller for tag %d created. Cooldown set to %lld", mTagId, (long long)mCoolDownNs);
 }
@@ -64,8 +65,8 @@
         data->setLogdWallClockTimestampNs(wallClockTimeNs);
     }
     if (ret && mCachedData.size() > 0) {
-      mergeIsolatedUidsToHostUid(mCachedData, mUidMap, mTagId);
-      (*data) = mCachedData;
+        mapAndMergeIsolatedUidsToHostUid(mCachedData, mUidMap, mTagId);
+        (*data) = mCachedData;
     }
     StatsdStats::getInstance().notePullDelay(mTagId, getElapsedRealtimeNs() - elapsedTimeNs);
     return ret;
diff --git a/cmds/statsd/src/external/StatsPullerManager.cpp b/cmds/statsd/src/external/StatsPullerManager.cpp
index a375dd6..c070ca3 100644
--- a/cmds/statsd/src/external/StatsPullerManager.cpp
+++ b/cmds/statsd/src/external/StatsPullerManager.cpp
@@ -54,52 +54,42 @@
         // wifi_bytes_transfer
         {android::util::WIFI_BYTES_TRANSFER,
          {{2, 3, 4, 5},
-          {},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::WIFI_BYTES_TRANSFER)}},
         // wifi_bytes_transfer_by_fg_bg
         {android::util::WIFI_BYTES_TRANSFER_BY_FG_BG,
          {{3, 4, 5, 6},
-          {2},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::WIFI_BYTES_TRANSFER_BY_FG_BG)}},
         // mobile_bytes_transfer
         {android::util::MOBILE_BYTES_TRANSFER,
          {{2, 3, 4, 5},
-          {},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::MOBILE_BYTES_TRANSFER)}},
         // mobile_bytes_transfer_by_fg_bg
         {android::util::MOBILE_BYTES_TRANSFER_BY_FG_BG,
          {{3, 4, 5, 6},
-          {2},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::MOBILE_BYTES_TRANSFER_BY_FG_BG)}},
         // bluetooth_bytes_transfer
         {android::util::BLUETOOTH_BYTES_TRANSFER,
          {{2, 3},
-          {},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::BLUETOOTH_BYTES_TRANSFER)}},
         // kernel_wakelock
         {android::util::KERNEL_WAKELOCK,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::KERNEL_WAKELOCK)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::KERNEL_WAKELOCK)}},
         // subsystem_sleep_state
         {android::util::SUBSYSTEM_SLEEP_STATE,
-         {{}, {}, 1 * NS_PER_SEC, new SubsystemSleepStatePuller()}},
+         {{}, 1 * NS_PER_SEC, new SubsystemSleepStatePuller()}},
         // on_device_power_measurement
-        {android::util::ON_DEVICE_POWER_MEASUREMENT,
-         {{}, {}, 1 * NS_PER_SEC, new PowerStatsPuller()}},
+        {android::util::ON_DEVICE_POWER_MEASUREMENT, {{}, 1 * NS_PER_SEC, new PowerStatsPuller()}},
         // cpu_time_per_freq
         {android::util::CPU_TIME_PER_FREQ,
-         {{3},
-          {2},
-          1 * NS_PER_SEC,
-          new StatsCompanionServicePuller(android::util::CPU_TIME_PER_FREQ)}},
+         {{3}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::CPU_TIME_PER_FREQ)}},
         // cpu_time_per_uid
         {android::util::CPU_TIME_PER_UID,
          {{2, 3},
-          {},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::CPU_TIME_PER_UID)}},
         // cpu_time_per_uid_freq
@@ -107,161 +97,140 @@
         // frameworks/base/core/java/com/android/internal/os/KernelCpuProcReader
         {android::util::CPU_TIME_PER_UID_FREQ,
          {{4},
-          {2, 3},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::CPU_TIME_PER_UID_FREQ)}},
         // cpu_active_time
         // the throttling is 3sec, handled in
         // frameworks/base/core/java/com/android/internal/os/KernelCpuProcReader
         {android::util::CPU_ACTIVE_TIME,
-         {{2},
-          {},
-          1 * NS_PER_SEC,
-          new StatsCompanionServicePuller(android::util::CPU_ACTIVE_TIME)}},
+         {{2}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::CPU_ACTIVE_TIME)}},
         // cpu_cluster_time
         // the throttling is 3sec, handled in
         // frameworks/base/core/java/com/android/internal/os/KernelCpuProcReader
         {android::util::CPU_CLUSTER_TIME,
-         {{3},
-          {2},
-          1 * NS_PER_SEC,
-          new StatsCompanionServicePuller(android::util::CPU_CLUSTER_TIME)}},
+         {{3}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::CPU_CLUSTER_TIME)}},
         // wifi_activity_energy_info
         {android::util::WIFI_ACTIVITY_INFO,
-         {{},
-          {},
-          1 * NS_PER_SEC,
-          new StatsCompanionServicePuller(android::util::WIFI_ACTIVITY_INFO)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::WIFI_ACTIVITY_INFO)}},
         // modem_activity_info
         {android::util::MODEM_ACTIVITY_INFO,
-         {{},
-          {},
-          1 * NS_PER_SEC,
-          new StatsCompanionServicePuller(android::util::MODEM_ACTIVITY_INFO)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::MODEM_ACTIVITY_INFO)}},
         // bluetooth_activity_info
         {android::util::BLUETOOTH_ACTIVITY_INFO,
          {{},
-          {},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::BLUETOOTH_ACTIVITY_INFO)}},
         // system_elapsed_realtime
         {android::util::SYSTEM_ELAPSED_REALTIME,
          {{},
-          {},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::SYSTEM_ELAPSED_REALTIME)}},
         // system_uptime
         {android::util::SYSTEM_UPTIME,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::SYSTEM_UPTIME)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::SYSTEM_UPTIME)}},
         // remaining_battery_capacity
         {android::util::REMAINING_BATTERY_CAPACITY,
          {{},
-          {},
           1 * NS_PER_SEC,
           new ResourceHealthManagerPuller(android::util::REMAINING_BATTERY_CAPACITY)}},
         // full_battery_capacity
         {android::util::FULL_BATTERY_CAPACITY,
          {{},
-          {},
           1 * NS_PER_SEC,
           new ResourceHealthManagerPuller(android::util::FULL_BATTERY_CAPACITY)}},
         // battery_voltage
         {android::util::BATTERY_VOLTAGE,
-         {{}, {}, 1 * NS_PER_SEC, new ResourceHealthManagerPuller(android::util::BATTERY_VOLTAGE)}},
+         {{}, 1 * NS_PER_SEC, new ResourceHealthManagerPuller(android::util::BATTERY_VOLTAGE)}},
+        // battery_level
+        {android::util::BATTERY_LEVEL,
+         {{}, 1 * NS_PER_SEC, new ResourceHealthManagerPuller(android::util::BATTERY_LEVEL)}},
         // process_memory_state
         {android::util::PROCESS_MEMORY_STATE,
          {{4, 5, 6, 7, 8, 9},
-          {2, 3, 10},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::PROCESS_MEMORY_STATE)}},
         // native_process_memory_state
         {android::util::NATIVE_PROCESS_MEMORY_STATE,
          {{3, 4, 5, 6},
-          {2, 7},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::NATIVE_PROCESS_MEMORY_STATE)}},
         {android::util::PROCESS_MEMORY_HIGH_WATER_MARK,
          {{3},
-          {2},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::PROCESS_MEMORY_HIGH_WATER_MARK)}},
         // temperature
-        {android::util::TEMPERATURE, {{}, {}, 1 * NS_PER_SEC, new ResourceThermalManagerPuller()}},
+        {android::util::TEMPERATURE, {{}, 1 * NS_PER_SEC, new ResourceThermalManagerPuller()}},
         // binder_calls
         {android::util::BINDER_CALLS,
          {{4, 5, 6, 8, 12},
-          {2, 3, 7, 9, 10, 11, 13},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::BINDER_CALLS)}},
         // binder_calls_exceptions
         {android::util::BINDER_CALLS_EXCEPTIONS,
          {{},
-          {},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::BINDER_CALLS_EXCEPTIONS)}},
         // looper_stats
         {android::util::LOOPER_STATS,
          {{5, 6, 7, 8, 9},
-          {2, 3, 4, 10},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::LOOPER_STATS)}},
         // Disk Stats
         {android::util::DISK_STATS,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::DISK_STATS)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::DISK_STATS)}},
         // Directory usage
         {android::util::DIRECTORY_USAGE,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::DIRECTORY_USAGE)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::DIRECTORY_USAGE)}},
         // Size of app's code, data, and cache
         {android::util::APP_SIZE,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::APP_SIZE)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::APP_SIZE)}},
         // Size of specific categories of files. Eg. Music.
         {android::util::CATEGORY_SIZE,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::CATEGORY_SIZE)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::CATEGORY_SIZE)}},
         // Number of fingerprints registered to each user.
         {android::util::NUM_FINGERPRINTS,
-         {{},
-          {},
-          1 * NS_PER_SEC,
-          new StatsCompanionServicePuller(android::util::NUM_FINGERPRINTS)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::NUM_FINGERPRINTS)}},
         // ProcStats.
         {android::util::PROC_STATS,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::PROC_STATS)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::PROC_STATS)}},
         // ProcStatsPkgProc.
         {android::util::PROC_STATS_PKG_PROC,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::PROC_STATS_PKG_PROC)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::PROC_STATS_PKG_PROC)}},
         // Disk I/O stats per uid.
         {android::util::DISK_IO,
-         {{2,3,4,5,6,7,8,9,10,11},
-          {},
+         {{2, 3, 4, 5, 6, 7, 8, 9, 10, 11},
           3 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::DISK_IO)}},
         // PowerProfile constants for power model calculations.
         {android::util::POWER_PROFILE,
-         {{}, {}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::POWER_PROFILE)}},
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::POWER_PROFILE)}},
         // Process cpu stats. Min cool-down is 5 sec, inline with what AcitivityManagerService uses.
         {android::util::PROCESS_CPU_TIME,
-            {{} /* additive fields */, {} /* non additive fields */,
-             5 * NS_PER_SEC /* min cool-down in seconds*/,
-             new StatsCompanionServicePuller(android::util::PROCESS_CPU_TIME)}},
+         {{} /* additive fields */,
+          5 * NS_PER_SEC /* min cool-down in seconds*/,
+          new StatsCompanionServicePuller(android::util::PROCESS_CPU_TIME)}},
         {android::util::CPU_TIME_PER_THREAD_FREQ,
-         {{7},
-          {2, 3, 4, 5, 6},
+         {{7, 9, 11, 13, 15, 17, 19, 21},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::CPU_TIME_PER_THREAD_FREQ)}},
         // DeviceCalculatedPowerUse.
         {android::util::DEVICE_CALCULATED_POWER_USE,
-         {{}, {}, 1 * NS_PER_SEC,
+         {{},
+          1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::DEVICE_CALCULATED_POWER_USE)}},
         // DeviceCalculatedPowerBlameUid.
         {android::util::DEVICE_CALCULATED_POWER_BLAME_UID,
-         {{}, {}, // BatteryStats already merged isolated with host ids so it's unnecessary here.
+         {{},  // BatteryStats already merged isolated with host ids so it's unnecessary here.
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::DEVICE_CALCULATED_POWER_BLAME_UID)}},
         // DeviceCalculatedPowerBlameOther.
         {android::util::DEVICE_CALCULATED_POWER_BLAME_OTHER,
-         {{}, {},
+         {{},
           1 * NS_PER_SEC,
           new StatsCompanionServicePuller(android::util::DEVICE_CALCULATED_POWER_BLAME_OTHER)}},
+        // BuildInformation.
+        {android::util::BUILD_INFORMATION,
+         {{}, 1 * NS_PER_SEC, new StatsCompanionServicePuller(android::util::BUILD_INFORMATION)}},
 };
 
 StatsPullerManager::StatsPullerManager() : mNextPullTimeNs(NO_ALARM_UPDATE) {
diff --git a/cmds/statsd/src/external/StatsPullerManager.h b/cmds/statsd/src/external/StatsPullerManager.h
index bbf5d9d..3350736 100644
--- a/cmds/statsd/src/external/StatsPullerManager.h
+++ b/cmds/statsd/src/external/StatsPullerManager.h
@@ -36,9 +36,6 @@
     // The field numbers of the fields that need to be summed when merging
     // isolated uid with host uid.
     std::vector<int> additiveFields;
-    // The field numbers of the fields that can't be merged when merging
-    // data belong to isolated uid and host uid.
-    std::vector<int> nonAdditiveFields;
     // How long should the puller wait before doing an actual pull again. Default
     // 1 sec. Set this to 0 if this is handled elsewhere.
     int64_t coolDownNs = 1 * NS_PER_SEC;
diff --git a/cmds/statsd/src/external/puller_util.cpp b/cmds/statsd/src/external/puller_util.cpp
index ea7fa97..0b9b6ab 100644
--- a/cmds/statsd/src/external/puller_util.cpp
+++ b/cmds/statsd/src/external/puller_util.cpp
@@ -25,67 +25,13 @@
 namespace os {
 namespace statsd {
 
+using std::list;
 using std::map;
+using std::set;
 using std::shared_ptr;
+using std::sort;
 using std::vector;
 
-namespace {
-bool shouldMerge(shared_ptr<LogEvent>& lhs, shared_ptr<LogEvent>& rhs,
-                 const vector<int>& nonAdditiveFields) {
-    const auto& l_values = lhs->getValues();
-    const auto& r_values = rhs->getValues();
-
-    for (size_t i : nonAdditiveFields) {
-        // We store everything starting from index 0, so we need to use i-1
-        if (!(l_values.size() > i - 1 && r_values.size() > i - 1 &&
-              l_values[i - 1].mValue == r_values[i - 1].mValue)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-// merge rhs to lhs
-// when calling this function, all sanity check should be done already.
-// e.g., index boundary, nonAdditiveFields matching etc.
-bool mergeEvent(shared_ptr<LogEvent>& lhs, shared_ptr<LogEvent>& rhs,
-                const vector<int>& additiveFields) {
-    vector<FieldValue>* host_values = lhs->getMutableValues();
-    const auto& child_values = rhs->getValues();
-    for (int i : additiveFields) {
-        Value& host = (*host_values)[i - 1].mValue;
-        const Value& child = (child_values[i - 1]).mValue;
-        if (child.getType() != host.getType()) {
-            return false;
-        }
-        switch (child.getType()) {
-            case INT:
-                host.setInt(host.int_value + child.int_value);
-                break;
-            case LONG:
-                host.setLong(host.long_value + child.long_value);
-                break;
-            default:
-                ALOGE("Tried to merge 2 fields with unsupported type");
-                return false;
-        }
-    }
-    return true;
-}
-
-bool tryMerge(vector<shared_ptr<LogEvent>>& data, int child_pos, const vector<int>& host_pos,
-              const vector<int>& nonAdditiveFields, const vector<int>& additiveFields) {
-    for (const auto& pos : host_pos) {
-        if (shouldMerge(data[pos], data[child_pos], nonAdditiveFields) &&
-            mergeEvent(data[pos], data[child_pos], additiveFields)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-}  // namespace
-
 /**
  * Process all data and merge isolated with host if necessary.
  * For example:
@@ -95,7 +41,7 @@
  *       int byte_send = 3;
  *       int byte_recv = 4;
  *   }
- *   additive fields are {3, 4}, non-additive field is {2}
+ *   additive fields are {3, 4}
  * If we pulled the following events (uid1_child is an isolated uid which maps to uid1):
  * [uid1, fg, 100, 200]
  * [uid1_child, fg, 100, 200]
@@ -104,65 +50,119 @@
  * We want to merge them and results should be:
  * [uid1, fg, 200, 400]
  * [uid1, bg, 100, 200]
+ *
+ * All atoms should be of the same tagId. All fields should be present.
  */
-void mergeIsolatedUidsToHostUid(vector<shared_ptr<LogEvent>>& data, const sp<UidMap>& uidMap,
-                                int tagId) {
+void mapAndMergeIsolatedUidsToHostUid(vector<shared_ptr<LogEvent>>& data, const sp<UidMap>& uidMap,
+                                      int tagId) {
     if (StatsPullerManager::kAllPullAtomInfo.find(tagId) ==
         StatsPullerManager::kAllPullAtomInfo.end()) {
         VLOG("Unknown pull atom id %d", tagId);
         return;
     }
-    int uidField;
-    auto it = android::util::AtomsInfo::kAtomsWithUidField.find(tagId);
-    if (it == android::util::AtomsInfo::kAtomsWithUidField.end()) {
-        VLOG("No uid to merge for atom %d", tagId);
+    if ((android::util::AtomsInfo::kAtomsWithAttributionChain.find(tagId) ==
+         android::util::AtomsInfo::kAtomsWithAttributionChain.end()) &&
+        (android::util::AtomsInfo::kAtomsWithUidField.find(tagId) ==
+         android::util::AtomsInfo::kAtomsWithUidField.end())) {
+        VLOG("No uid or attribution chain to merge, atom %d", tagId);
         return;
-    } else {
-        uidField = it->second;  // uidField is the field number in proto,
     }
-    const vector<int>& additiveFields =
-            StatsPullerManager::kAllPullAtomInfo.find(tagId)->second.additiveFields;
-    const vector<int>& nonAdditiveFields =
-            StatsPullerManager::kAllPullAtomInfo.find(tagId)->second.nonAdditiveFields;
 
-    // map of host uid to their position in the original vector
-    map<int, vector<int>> hostPosition;
-    vector<bool> toRemove = vector<bool>(data.size(), false);
-
-    for (size_t i = 0; i < data.size(); i++) {
-        vector<FieldValue>* valueList = data[i]->getMutableValues();
-
-        int uid;
-        if (uidField > 0 && (int)data[i]->getValues().size() >= uidField &&
-            (data[i]->getValues())[uidField - 1].mValue.getType() == INT) {
-            uid = (*data[i]->getMutableValues())[uidField - 1].mValue.int_value;
-        } else {
-            ALOGE("Malformed log, uid not found. %s", data[i]->ToString().c_str());
-            continue;
+    // 1. Map all isolated uid in-place to host uid
+    for (shared_ptr<LogEvent>& event : data) {
+        if (event->GetTagId() != tagId) {
+            ALOGE("Wrong atom. Expecting %d, got %d", tagId, event->GetTagId());
+            return;
         }
-
-        const int hostUid = uidMap->getHostUidOrSelf(uid);
-
-        if (hostUid != uid) {
-            (*valueList)[0].mValue.setInt(hostUid);
-        }
-        if (hostPosition.find(hostUid) == hostPosition.end()) {
-            hostPosition[hostUid].push_back(i);
+        if (android::util::AtomsInfo::kAtomsWithAttributionChain.find(tagId) !=
+            android::util::AtomsInfo::kAtomsWithAttributionChain.end()) {
+            for (auto& value : *(event->getMutableValues())) {
+                if (value.mField.getPosAtDepth(0) > kAttributionField) {
+                    break;
+                }
+                if (isAttributionUidField(value)) {
+                    const int hostUid = uidMap->getHostUidOrSelf(value.mValue.int_value);
+                    value.mValue.setInt(hostUid);
+                }
+            }
         } else {
-            if (tryMerge(data, i, hostPosition[hostUid], nonAdditiveFields, additiveFields)) {
-                toRemove[i] = true;
-            } else {
-                hostPosition[hostUid].push_back(i);
+            auto it = android::util::AtomsInfo::kAtomsWithUidField.find(tagId);
+            if (it != android::util::AtomsInfo::kAtomsWithUidField.end()) {
+                int uidField = it->second;  // uidField is the field number in proto,
+                // starting from 1
+                if (uidField > 0 && (int)event->getValues().size() >= uidField &&
+                    (event->getValues())[uidField - 1].mValue.getType() == INT) {
+                    Value& value = (*event->getMutableValues())[uidField - 1].mValue;
+                    const int hostUid = uidMap->getHostUidOrSelf(value.int_value);
+                    value.setInt(hostUid);
+                } else {
+                    ALOGE("Malformed log, uid not found. %s", event->ToString().c_str());
+                    return;
+                }
             }
         }
     }
 
+    // 2. sort the data, bit-wise
+    sort(data.begin(), data.end(),
+         [](const shared_ptr<LogEvent>& lhs, const shared_ptr<LogEvent>& rhs) {
+             if (lhs->size() != rhs->size()) {
+                 return lhs->size() < rhs->size();
+             }
+             const std::vector<FieldValue>& lhsValues = lhs->getValues();
+             const std::vector<FieldValue>& rhsValues = rhs->getValues();
+             for (int i = 0; i < (int)lhs->size(); i++) {
+                 if (lhsValues[i] != rhsValues[i]) {
+                     return lhsValues[i] < rhsValues[i];
+                 }
+             }
+             return false;
+         });
+
     vector<shared_ptr<LogEvent>> mergedData;
-    for (size_t i = 0; i < toRemove.size(); i++) {
-        if (!toRemove[i]) {
+    const vector<int>& additiveFieldsVec =
+            StatsPullerManager::kAllPullAtomInfo.find(tagId)->second.additiveFields;
+    const set<int> additiveFields(additiveFieldsVec.begin(), additiveFieldsVec.end());
+    bool needMerge = true;
+
+    // 3. do the merge.
+    // The loop invariant is this: for every event, check if it differs on
+    // non-additive fields, or have different attribution chain length.
+    // If so, no need to merge, add itself to the result.
+    // Otherwise, merge the value onto the one immediately next to it.
+    for (int i = 0; i < (int)data.size() - 1; i++) {
+        // Size different, must be different chains.
+        if (data[i]->size() != data[i + 1]->size()) {
             mergedData.push_back(data[i]);
+            continue;
+        }
+        vector<FieldValue>* lhsValues = data[i]->getMutableValues();
+        vector<FieldValue>* rhsValues = data[i + 1]->getMutableValues();
+        needMerge = true;
+        for (int p = 0; p < (int)lhsValues->size(); p++) {
+            if ((*lhsValues)[p] != (*rhsValues)[p]) {
+                int pos = (*lhsValues)[p].mField.getPosAtDepth(0);
+                // Differ on non-additive field, abort.
+                if (additiveFields.find(pos) == additiveFields.end()) {
+                    needMerge = false;
+                    break;
+                }
+            }
+        }
+        if (!needMerge) {
+            mergedData.push_back(data[i]);
+            continue;
+        }
+        // This should be infrequent operation.
+        for (int p = 0; p < (int)lhsValues->size(); p++) {
+            int pos = (*lhsValues)[p].mField.getPosAtDepth(0);
+            if (additiveFields.find(pos) != additiveFields.end()) {
+                (*rhsValues)[p].mValue += (*lhsValues)[p].mValue;
+            }
         }
     }
+    mergedData.push_back(data.back());
+
     data.clear();
     data = mergedData;
 }
diff --git a/cmds/statsd/src/external/puller_util.h b/cmds/statsd/src/external/puller_util.h
index fd4a4a2..f703e6c 100644
--- a/cmds/statsd/src/external/puller_util.h
+++ b/cmds/statsd/src/external/puller_util.h
@@ -25,8 +25,8 @@
 namespace os {
 namespace statsd {
 
-void mergeIsolatedUidsToHostUid(std::vector<std::shared_ptr<LogEvent>>& data,
-                                const sp<UidMap>& uidMap, int tagId);
+void mapAndMergeIsolatedUidsToHostUid(std::vector<std::shared_ptr<LogEvent>>& data,
+                                      const sp<UidMap>& uidMap, int tagId);
 
 }  // namespace statsd
 }  // namespace os
diff --git a/cmds/statsd/src/guardrail/StatsdStats.cpp b/cmds/statsd/src/guardrail/StatsdStats.cpp
index 6617689..3e5e82f 100644
--- a/cmds/statsd/src/guardrail/StatsdStats.cpp
+++ b/cmds/statsd/src/guardrail/StatsdStats.cpp
@@ -101,6 +101,7 @@
 
 const std::map<int, std::pair<size_t, size_t>> StatsdStats::kAtomDimensionKeySizeLimitMap = {
         {android::util::BINDER_CALLS, {6000, 10000}},
+        {android::util::LOOPER_STATS, {1500, 2500}},
         {android::util::CPU_TIME_PER_UID_FREQ, {6000, 10000}},
 };
 
diff --git a/cmds/statsd/src/guardrail/StatsdStats.h b/cmds/statsd/src/guardrail/StatsdStats.h
index 343709a..3157037 100644
--- a/cmds/statsd/src/guardrail/StatsdStats.h
+++ b/cmds/statsd/src/guardrail/StatsdStats.h
@@ -113,7 +113,7 @@
 
     // Max memory allowed for storing metrics per configuration. If this limit is exceeded, statsd
     // drops the metrics data in memory.
-    static const size_t kMaxMetricsBytesPerConfig = 256 * 1024;
+    static const size_t kMaxMetricsBytesPerConfig = 2 * 1024 * 1024;
 
     // Soft memory limit per configuration. Once this limit is exceeded, we begin notifying the
     // data subscriber that it's time to call getData.
@@ -130,7 +130,7 @@
     static const int64_t kMinBroadcastPeriodNs = 60 * NS_PER_SEC;
 
     /* Min period between two checks of byte size per config key in nanoseconds. */
-    static const int64_t kMinByteSizeCheckPeriodNs = 10 * NS_PER_SEC;
+    static const int64_t kMinByteSizeCheckPeriodNs = 60 * NS_PER_SEC;
 
     // Maximum age (30 days) that files on disk can exist in seconds.
     static const int kMaxAgeSecond = 60 * 60 * 24 * 30;
diff --git a/cmds/statsd/src/logd/LogEvent.cpp b/cmds/statsd/src/logd/LogEvent.cpp
index 625294c..8d61aba 100644
--- a/cmds/statsd/src/logd/LogEvent.cpp
+++ b/cmds/statsd/src/logd/LogEvent.cpp
@@ -41,13 +41,28 @@
     }
 }
 
-LogEvent::LogEvent(const StatsLogEventWrapper& statsLogEventWrapper) {
+LogEvent::LogEvent(const StatsLogEventWrapper& statsLogEventWrapper, int workChainIndex) {
     mTagId = statsLogEventWrapper.getTagId();
     mLogdTimestampNs = statsLogEventWrapper.getWallClockTimeNs();
     mElapsedTimestampNs = statsLogEventWrapper.getElapsedRealTimeNs();
     mLogUid = 0;
+    int workChainPosOffset = 0;
+    if (workChainIndex != -1) {
+        const WorkChain& wc = statsLogEventWrapper.getWorkChains()[workChainIndex];
+        // chains are at field 1, level 2
+        int depth = 2;
+        for (int i = 0; i < (int)wc.uids.size(); i++) {
+            int pos[] = {1, i + 1, 1};
+            mValues.push_back(FieldValue(Field(mTagId, pos, depth), Value(wc.uids[i])));
+            pos[2]++;
+            mValues.push_back(FieldValue(Field(mTagId, pos, depth), Value(wc.tags[i])));
+            mValues.back().mField.decorateLastPos(2);
+        }
+        mValues.back().mField.decorateLastPos(1);
+        workChainPosOffset = 1;
+    }
     for (int i = 0; i < (int)statsLogEventWrapper.getElements().size(); i++) {
-        Field field(statsLogEventWrapper.getTagId(), getSimpleField(i + 1));
+        Field field(statsLogEventWrapper.getTagId(), getSimpleField(i + 1 + workChainPosOffset));
         switch (statsLogEventWrapper.getElements()[i].type) {
             case android::os::StatsLogValue::STATS_LOG_VALUE_TYPE::INT:
                 mValues.push_back(
@@ -79,6 +94,17 @@
     }
 }
 
+void LogEvent::createLogEvents(const StatsLogEventWrapper& statsLogEventWrapper,
+                               std::vector<std::shared_ptr<LogEvent>>& logEvents) {
+    if (statsLogEventWrapper.getWorkChains().size() == 0) {
+        logEvents.push_back(std::make_shared<LogEvent>(statsLogEventWrapper, -1));
+    } else {
+        for (size_t i = 0; i < statsLogEventWrapper.getWorkChains().size(); i++) {
+            logEvents.push_back(std::make_shared<LogEvent>(statsLogEventWrapper, i));
+        }
+    }
+}
+
 LogEvent::LogEvent(int32_t tagId, int64_t wallClockTimestampNs, int64_t elapsedTimestampNs) {
     mLogdTimestampNs = wallClockTimestampNs;
     mTagId = tagId;
@@ -653,7 +679,7 @@
 
 string LogEvent::ToString() const {
     string result;
-    result += StringPrintf("{ %lld %lld (%d)", (long long)mLogdTimestampNs,
+    result += StringPrintf("{ uid(%d) %lld %lld (%d)", mLogUid, (long long)mLogdTimestampNs,
                            (long long)mElapsedTimestampNs, mTagId);
     for (const auto& value : mValues) {
         result +=
diff --git a/cmds/statsd/src/logd/LogEvent.h b/cmds/statsd/src/logd/LogEvent.h
index 3d5b2ab..5408d17 100644
--- a/cmds/statsd/src/logd/LogEvent.h
+++ b/cmds/statsd/src/logd/LogEvent.h
@@ -65,7 +65,16 @@
      */
     explicit LogEvent(log_msg& msg);
 
-    explicit LogEvent(const StatsLogEventWrapper& statsLogEventWrapper);
+    /**
+     * Creates LogEvent from StatsLogEventWrapper.
+     */
+    static void createLogEvents(const StatsLogEventWrapper& statsLogEventWrapper,
+                                std::vector<std::shared_ptr<LogEvent>>& logEvents);
+
+    /**
+     * Construct one LogEvent from a StatsLogEventWrapper with the i-th work chain. -1 if no chain.
+     */
+    explicit LogEvent(const StatsLogEventWrapper& statsLogEventWrapper, int workChainIndex);
 
     /**
      * Constructs a LogEvent with synthetic data for testing. Must call init() before reading.
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.h b/cmds/statsd/src/metrics/ValueMetricProducer.h
index c3912ee..9fe84dc 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.h
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.h
@@ -165,7 +165,7 @@
     const bool mSkipZeroDiffOutput;
 
     FRIEND_TEST(ValueMetricProducerTest, TestPulledEventsNoCondition);
-  FRIEND_TEST(ValueMetricProducerTest, TestPulledEventsWithFiltering);
+    FRIEND_TEST(ValueMetricProducerTest, TestPulledEventsWithFiltering);
     FRIEND_TEST(ValueMetricProducerTest, TestPulledEventsTakeAbsoluteValueOnReset);
     FRIEND_TEST(ValueMetricProducerTest, TestPulledEventsTakeZeroOnReset);
     FRIEND_TEST(ValueMetricProducerTest, TestEventsWithNonSlicedCondition);
diff --git a/cmds/statsd/src/metrics/metrics_manager_util.cpp b/cmds/statsd/src/metrics/metrics_manager_util.cpp
index 4ac55b5..b317361 100644
--- a/cmds/statsd/src/metrics/metrics_manager_util.cpp
+++ b/cmds/statsd/src/metrics/metrics_manager_util.cpp
@@ -454,6 +454,16 @@
             ALOGW("cannot find \"what\" in ValueMetric \"%lld\"", (long long)metric.id());
             return false;
         }
+        if (!metric.has_value_field()) {
+            ALOGW("cannot find \"value_field\" in ValueMetric \"%lld\"", (long long)metric.id());
+            return false;
+        }
+        std::vector<Matcher> fieldMatchers;
+        translateFieldMatcher(metric.value_field(), &fieldMatchers);
+        if (fieldMatchers.size() < 1) {
+            ALOGW("incorrect \"value_field\" in ValueMetric \"%lld\"", (long long)metric.id());
+            return false;
+        }
 
         int metricIndex = allMetricProducers.size();
         metricMap.insert({metric.id(), metricIndex});
diff --git a/cmds/statsd/src/stats_log_util.cpp b/cmds/statsd/src/stats_log_util.cpp
index 504c586..f1310db 100644
--- a/cmds/statsd/src/stats_log_util.cpp
+++ b/cmds/statsd/src/stats_log_util.cpp
@@ -343,9 +343,11 @@
                         }
                     }
                     if (isBytesField) {
-                        protoOutput->write(FIELD_TYPE_MESSAGE | fieldNum,
-                                           (const char*)dim.mValue.str_value.c_str(),
-                                           dim.mValue.str_value.length());
+                        if (dim.mValue.str_value.length() > 0) {
+                            protoOutput->write(FIELD_TYPE_MESSAGE | fieldNum,
+                                               (const char*)dim.mValue.str_value.c_str(),
+                                               dim.mValue.str_value.length());
+                        }
                     } else {
                         protoOutput->write(FIELD_TYPE_STRING | fieldNum, dim.mValue.str_value);
                     }
diff --git a/cmds/statsd/tests/LogEvent_test.cpp b/cmds/statsd/tests/LogEvent_test.cpp
index 6384757..3a5be43 100644
--- a/cmds/statsd/tests/LogEvent_test.cpp
+++ b/cmds/statsd/tests/LogEvent_test.cpp
@@ -394,6 +394,167 @@
     EXPECT_EQ(1.1f, item16.mValue.float_value);
 }
 
+TEST(LogEventTest, TestStatsLogEventWrapperNoChain) {
+    Parcel parcel;
+    // tag id
+    parcel.writeInt32(1);
+    // elapsed realtime
+    parcel.writeInt64(1111L);
+    // wallclock time
+    parcel.writeInt64(2222L);
+    // no chain
+    parcel.writeInt32(0);
+    // 2 data
+    parcel.writeInt32(2);
+    // int 6
+    parcel.writeInt32(1);
+    parcel.writeInt32(6);
+    // long 10
+    parcel.writeInt32(2);
+    parcel.writeInt64(10);
+    parcel.setDataPosition(0);
+
+    StatsLogEventWrapper statsLogEventWrapper;
+    EXPECT_EQ(NO_ERROR, statsLogEventWrapper.readFromParcel(&parcel));
+    EXPECT_EQ(1, statsLogEventWrapper.getTagId());
+    EXPECT_EQ(1111L, statsLogEventWrapper.getElapsedRealTimeNs());
+    EXPECT_EQ(2222L, statsLogEventWrapper.getWallClockTimeNs());
+    EXPECT_EQ(0, statsLogEventWrapper.getWorkChains().size());
+    EXPECT_EQ(2, statsLogEventWrapper.getElements().size());
+    EXPECT_EQ(6, statsLogEventWrapper.getElements()[0].int_value);
+    EXPECT_EQ(10L, statsLogEventWrapper.getElements()[1].long_value);
+    LogEvent event(statsLogEventWrapper, -1);
+    EXPECT_EQ(1, event.GetTagId());
+    EXPECT_EQ(1111L, event.GetElapsedTimestampNs());
+    EXPECT_EQ(2222L, event.GetLogdTimestampNs());
+    EXPECT_EQ(2, event.size());
+    EXPECT_EQ(6, event.getValues()[0].mValue.int_value);
+    EXPECT_EQ(10, event.getValues()[1].mValue.long_value);
+}
+
+TEST(LogEventTest, TestStatsLogEventWrapperWithChain) {
+    Parcel parcel;
+    // tag id
+    parcel.writeInt32(1);
+    // elapsed realtime
+    parcel.writeInt64(1111L);
+    // wallclock time
+    parcel.writeInt64(2222L);
+    // 3 chains
+    parcel.writeInt32(3);
+    // chain1, 2 nodes (1, "tag1") (2, "tag2")
+    parcel.writeInt32(2);
+    parcel.writeInt32(1);
+    parcel.writeString16(String16("tag1"));
+    parcel.writeInt32(2);
+    parcel.writeString16(String16("tag2"));
+    // chain2, 1 node (3, "tag3")
+    parcel.writeInt32(1);
+    parcel.writeInt32(3);
+    parcel.writeString16(String16("tag3"));
+    // chain3, 2 nodes (4, "") (5, "")
+    parcel.writeInt32(2);
+    parcel.writeInt32(4);
+    parcel.writeString16(String16(""));
+    parcel.writeInt32(5);
+    parcel.writeString16(String16(""));
+    // 2 data
+    parcel.writeInt32(2);
+    // int 6
+    parcel.writeInt32(1);
+    parcel.writeInt32(6);
+    // long 10
+    parcel.writeInt32(2);
+    parcel.writeInt64(10);
+    parcel.setDataPosition(0);
+
+    StatsLogEventWrapper statsLogEventWrapper;
+    EXPECT_EQ(NO_ERROR, statsLogEventWrapper.readFromParcel(&parcel));
+    EXPECT_EQ(1, statsLogEventWrapper.getTagId());
+    EXPECT_EQ(1111L, statsLogEventWrapper.getElapsedRealTimeNs());
+    EXPECT_EQ(2222L, statsLogEventWrapper.getWallClockTimeNs());
+    EXPECT_EQ(3, statsLogEventWrapper.getWorkChains().size());
+    EXPECT_EQ(2, statsLogEventWrapper.getWorkChains()[0].uids.size());
+    EXPECT_EQ(1, statsLogEventWrapper.getWorkChains()[0].uids[0]);
+    EXPECT_EQ(2, statsLogEventWrapper.getWorkChains()[0].uids[1]);
+    EXPECT_EQ(2, statsLogEventWrapper.getWorkChains()[0].tags.size());
+    EXPECT_EQ("tag1", statsLogEventWrapper.getWorkChains()[0].tags[0]);
+    EXPECT_EQ("tag2", statsLogEventWrapper.getWorkChains()[0].tags[1]);
+    EXPECT_EQ(1, statsLogEventWrapper.getWorkChains()[1].uids.size());
+    EXPECT_EQ(3, statsLogEventWrapper.getWorkChains()[1].uids[0]);
+    EXPECT_EQ(1, statsLogEventWrapper.getWorkChains()[1].tags.size());
+    EXPECT_EQ("tag3", statsLogEventWrapper.getWorkChains()[1].tags[0]);
+    EXPECT_EQ(2, statsLogEventWrapper.getElements().size());
+    EXPECT_EQ(6, statsLogEventWrapper.getElements()[0].int_value);
+    EXPECT_EQ(10L, statsLogEventWrapper.getElements()[1].long_value);
+    EXPECT_EQ(2, statsLogEventWrapper.getWorkChains()[2].uids.size());
+    EXPECT_EQ(4, statsLogEventWrapper.getWorkChains()[2].uids[0]);
+    EXPECT_EQ(5, statsLogEventWrapper.getWorkChains()[2].uids[1]);
+    EXPECT_EQ(2, statsLogEventWrapper.getWorkChains()[2].tags.size());
+    EXPECT_EQ("", statsLogEventWrapper.getWorkChains()[2].tags[0]);
+    EXPECT_EQ("", statsLogEventWrapper.getWorkChains()[2].tags[1]);
+
+    LogEvent event(statsLogEventWrapper, -1);
+    EXPECT_EQ(1, event.GetTagId());
+    EXPECT_EQ(1111L, event.GetElapsedTimestampNs());
+    EXPECT_EQ(2222L, event.GetLogdTimestampNs());
+    EXPECT_EQ(2, event.size());
+    EXPECT_EQ(6, event.getValues()[0].mValue.int_value);
+    EXPECT_EQ(10, event.getValues()[1].mValue.long_value);
+
+    LogEvent event1(statsLogEventWrapper, 0);
+
+    EXPECT_EQ(1, event1.GetTagId());
+    EXPECT_EQ(1111L, event1.GetElapsedTimestampNs());
+    EXPECT_EQ(2222L, event1.GetLogdTimestampNs());
+    EXPECT_EQ(6, event1.size());
+    EXPECT_EQ(1, event1.getValues()[0].mValue.int_value);
+    EXPECT_EQ(0x2010101, event1.getValues()[0].mField.getField());
+    EXPECT_EQ("tag1", event1.getValues()[1].mValue.str_value);
+    EXPECT_EQ(0x2010182, event1.getValues()[1].mField.getField());
+    EXPECT_EQ(2, event1.getValues()[2].mValue.int_value);
+    EXPECT_EQ(0x2010201, event1.getValues()[2].mField.getField());
+    EXPECT_EQ("tag2", event1.getValues()[3].mValue.str_value);
+    EXPECT_EQ(0x2018282, event1.getValues()[3].mField.getField());
+    EXPECT_EQ(6, event1.getValues()[4].mValue.int_value);
+    EXPECT_EQ(0x20000, event1.getValues()[4].mField.getField());
+    EXPECT_EQ(10, event1.getValues()[5].mValue.long_value);
+    EXPECT_EQ(0x30000, event1.getValues()[5].mField.getField());
+
+    LogEvent event2(statsLogEventWrapper, 1);
+
+    EXPECT_EQ(1, event2.GetTagId());
+    EXPECT_EQ(1111L, event2.GetElapsedTimestampNs());
+    EXPECT_EQ(2222L, event2.GetLogdTimestampNs());
+    EXPECT_EQ(4, event2.size());
+    EXPECT_EQ(3, event2.getValues()[0].mValue.int_value);
+    EXPECT_EQ(0x2010101, event2.getValues()[0].mField.getField());
+    EXPECT_EQ("tag3", event2.getValues()[1].mValue.str_value);
+    EXPECT_EQ(0x2018182, event2.getValues()[1].mField.getField());
+    EXPECT_EQ(6, event2.getValues()[2].mValue.int_value);
+    EXPECT_EQ(0x20000, event2.getValues()[2].mField.getField());
+    EXPECT_EQ(10, event2.getValues()[3].mValue.long_value);
+    EXPECT_EQ(0x30000, event2.getValues()[3].mField.getField());
+
+    LogEvent event3(statsLogEventWrapper, 2);
+
+    EXPECT_EQ(1, event3.GetTagId());
+    EXPECT_EQ(1111L, event3.GetElapsedTimestampNs());
+    EXPECT_EQ(2222L, event3.GetLogdTimestampNs());
+    EXPECT_EQ(6, event3.size());
+    EXPECT_EQ(4, event3.getValues()[0].mValue.int_value);
+    EXPECT_EQ(0x2010101, event3.getValues()[0].mField.getField());
+    EXPECT_EQ("", event3.getValues()[1].mValue.str_value);
+    EXPECT_EQ(0x2010182, event3.getValues()[1].mField.getField());
+    EXPECT_EQ(5, event3.getValues()[2].mValue.int_value);
+    EXPECT_EQ(0x2010201, event3.getValues()[2].mField.getField());
+    EXPECT_EQ("", event3.getValues()[3].mValue.str_value);
+    EXPECT_EQ(0x2018282, event3.getValues()[3].mField.getField());
+    EXPECT_EQ(6, event3.getValues()[4].mValue.int_value);
+    EXPECT_EQ(0x20000, event3.getValues()[4].mField.getField());
+    EXPECT_EQ(10, event3.getValues()[5].mValue.long_value);
+    EXPECT_EQ(0x30000, event3.getValues()[5].mField.getField());
+}
 
 TEST(LogEventTest, TestBinaryFieldAtom) {
     Atom launcherAtom;
@@ -444,7 +605,44 @@
     EXPECT_EQ(orig_str, result_str);
 }
 
+TEST(LogEventTest, TestBinaryFieldAtom_empty) {
+    Atom launcherAtom;
+    auto launcher_event = launcherAtom.mutable_launcher_event();
+    launcher_event->set_action(stats::launcher::LauncherAction::LONGPRESS);
+    launcher_event->set_src_state(stats::launcher::LauncherState::OVERVIEW);
+    launcher_event->set_dst_state(stats::launcher::LauncherState::ALLAPPS);
 
+    // empty string.
+    string extension_str;
+
+    LogEvent event1(Atom::kLauncherEventFieldNumber, 1000);
+
+    event1.write((int32_t)stats::launcher::LauncherAction::LONGPRESS);
+    event1.write((int32_t)stats::launcher::LauncherState::OVERVIEW);
+    event1.write((int64_t)stats::launcher::LauncherState::ALLAPPS);
+    event1.write(extension_str);
+    event1.init();
+
+    ProtoOutputStream proto;
+    event1.ToProto(proto);
+
+    std::vector<uint8_t> outData;
+    outData.resize(proto.size());
+    size_t pos = 0;
+    auto iter = proto.data();
+    while (iter.readBuffer() != NULL) {
+        size_t toRead = iter.currentToRead();
+        std::memcpy(&(outData[pos]), iter.readBuffer(), toRead);
+        pos += toRead;
+        iter.rp()->move(toRead);
+    }
+
+    std::string result_str(outData.begin(), outData.end());
+    std::string orig_str;
+    launcherAtom.SerializeToString(&orig_str);
+
+    EXPECT_EQ(orig_str, result_str);
+}
 
 }  // namespace statsd
 }  // namespace os
diff --git a/cmds/statsd/tests/external/puller_util_test.cpp b/cmds/statsd/tests/external/puller_util_test.cpp
index fc6e420..266ea35 100644
--- a/cmds/statsd/tests/external/puller_util_test.cpp
+++ b/cmds/statsd/tests/external/puller_util_test.cpp
@@ -80,7 +80,7 @@
       .WillRepeatedly(Return(hostUid));
   EXPECT_CALL(*uidMap, getHostUidOrSelf(Ne(isolatedUid)))
       .WillRepeatedly(ReturnArg<0>());
-  mergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
+  mapAndMergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
 
   vector<vector<int>> actual;
   extractIntoVector(inputData, actual);
@@ -120,7 +120,7 @@
       .WillRepeatedly(Return(hostUid));
   EXPECT_CALL(*uidMap, getHostUidOrSelf(Ne(isolatedUid)))
       .WillRepeatedly(ReturnArg<0>());
-  mergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
+  mapAndMergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
 
   vector<vector<int>> actual;
   extractIntoVector(inputData, actual);
@@ -154,7 +154,7 @@
       .WillRepeatedly(Return(hostUid));
   EXPECT_CALL(*uidMap, getHostUidOrSelf(Ne(isolatedUid)))
       .WillRepeatedly(ReturnArg<0>());
-  mergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
+  mapAndMergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
 
   // 20->32->31
   // 20->22->21
@@ -190,7 +190,7 @@
       .WillRepeatedly(Return(hostUid));
   EXPECT_CALL(*uidMap, getHostUidOrSelf(Ne(isolatedUid)))
       .WillRepeatedly(ReturnArg<0>());
-  mergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
+  mapAndMergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
 
   // 20->32->31
   // 20->22->21
@@ -231,7 +231,7 @@
 
   sp<MockUidMap> uidMap = new NaggyMock<MockUidMap>();
   EXPECT_CALL(*uidMap, getHostUidOrSelf(_)).WillRepeatedly(Return(hostUid));
-  mergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
+  mapAndMergeIsolatedUidsToHostUid(inputData, uidMap, uidAtomTagId);
 
   vector<vector<int>> actual;
   extractIntoVector(inputData, actual);
@@ -256,7 +256,7 @@
   inputData.push_back(event);
 
   sp<MockUidMap> uidMap = new NaggyMock<MockUidMap>();
-  mergeIsolatedUidsToHostUid(inputData, uidMap, nonUidAtomTagId);
+  mapAndMergeIsolatedUidsToHostUid(inputData, uidMap, nonUidAtomTagId);
 
   EXPECT_EQ(2, (int)inputData.size());
 }
diff --git a/cmds/telecom/src/com/android/commands/telecom/Telecom.java b/cmds/telecom/src/com/android/commands/telecom/Telecom.java
index 8e9b91d..f3bf6e7 100644
--- a/cmds/telecom/src/com/android/commands/telecom/Telecom.java
+++ b/cmds/telecom/src/com/android/commands/telecom/Telecom.java
@@ -46,6 +46,10 @@
     private static final String COMMAND_SET_PHONE_ACCOUNT_DISABLED = "set-phone-account-disabled";
     private static final String COMMAND_REGISTER_PHONE_ACCOUNT = "register-phone-account";
     private static final String COMMAND_REGISTER_SIM_PHONE_ACCOUNT = "register-sim-phone-account";
+    private static final String COMMAND_SET_TEST_CALL_SCREENING_APP = "set-test-call-screening-app";
+    private static final String COMMAND_ADD_OR_REMOVE_CALL_COMPANION_APP =
+            "add-or-remove-call-companion-app";
+    private static final String COMMAND_SET_TEST_AUTO_MODE_APP = "set-test-auto-mode-app";
     private static final String COMMAND_UNREGISTER_PHONE_ACCOUNT = "unregister-phone-account";
     private static final String COMMAND_SET_DEFAULT_DIALER = "set-default-dialer";
     private static final String COMMAND_GET_DEFAULT_DIALER = "get-default-dialer";
@@ -64,6 +68,9 @@
                 "usage: telecom set-phone-account-enabled <COMPONENT> <ID> <USER_SN>\n" +
                 "usage: telecom set-phone-account-disabled <COMPONENT> <ID> <USER_SN>\n" +
                 "usage: telecom register-phone-account <COMPONENT> <ID> <USER_SN> <LABEL>\n" +
+                "usage: telecom set-test-call-screening-app <PACKAGE>\n" +
+                "usage: telecom set-test-auto-mode-app <PACKAGE>\n" +
+                "usage: telecom add-or-remove-call-companion-app <PACKAGE> <1/0>\n" +
                 "usage: telecom register-sim-phone-account <COMPONENT> <ID> <USER_SN> <LABEL> <ADDRESS>\n" +
                 "usage: telecom unregister-phone-account <COMPONENT> <ID> <USER_SN>\n" +
                 "usage: telecom set-default-dialer <PACKAGE>\n" +
@@ -113,6 +120,15 @@
             case COMMAND_REGISTER_PHONE_ACCOUNT:
                 runRegisterPhoneAccount();
                 break;
+            case COMMAND_SET_TEST_CALL_SCREENING_APP:
+                runSetTestCallScreeningApp();
+                break;
+            case COMMAND_ADD_OR_REMOVE_CALL_COMPANION_APP:
+                runAddOrRemoveCallCompanionApp();
+                break;
+            case COMMAND_SET_TEST_AUTO_MODE_APP:
+                runSetTestAutoModeApp();
+                break;
             case COMMAND_REGISTER_SIM_PHONE_ACCOUNT:
                 runRegisterSimPhoneAccount();
                 break;
@@ -173,6 +189,23 @@
         System.out.println("Success - " + handle + " registered.");
     }
 
+    private void runSetTestCallScreeningApp() throws RemoteException {
+        final String packageName = nextArg();
+        mTelecomService.setTestDefaultCallScreeningApp(packageName);
+    }
+
+    private void runAddOrRemoveCallCompanionApp() throws RemoteException {
+        final String packageName = nextArgRequired();
+        String isAdded = nextArgRequired();
+        boolean isAddedBool = "1".equals(isAdded);
+        mTelecomService.addOrRemoveTestCallCompanionApp(packageName, isAddedBool);
+    }
+
+    private void runSetTestAutoModeApp() throws RemoteException {
+        final String packageName = nextArg();
+        mTelecomService.setTestAutoModeApp(packageName);
+    }
+
     private void runUnregisterPhoneAccount() throws RemoteException {
         final PhoneAccountHandle handle = getPhoneAccountHandleFromArgs();
         mTelecomService.unregisterPhoneAccount(handle);
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
index e5764f04..c2e441b 100644
--- a/config/boot-image-profile.txt
+++ b/config/boot-image-profile.txt
@@ -12274,7 +12274,7 @@
 HPLorg/ccil/cowan/tagsoup/AttributesImpl;->setAttribute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HPLorg/ccil/cowan/tagsoup/Element;->anonymize()V
 HPLorg/ccil/cowan/tagsoup/Element;->preclose()V
-HPLorg/ccil/cowan/tagsoup/HTMLSchema;-><init>()V
+# HPLorg/ccil/cowan/tagsoup/HTMLSchema;-><init>()V b/76145463
 HPLorg/json/JSONArray;->optDouble(I)D
 HPLorg/json/JSONArray;->optDouble(ID)D
 HPLorg/json/JSONStringer;->value(J)Lorg/json/JSONStringer;
@@ -15623,7 +15623,7 @@
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isLockTaskPermitted(Ljava/lang/String;)Z
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isProvisioningAllowed(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLandroid/app/admin/IDevicePolicyManager$Stub;-><init>()V
-HSPLandroid/app/admin/IDevicePolicyManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+# HSPLandroid/app/admin/IDevicePolicyManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z b/76145463
 HSPLandroid/app/admin/IDevicePolicyManager;->addCrossProfileIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V
 HSPLandroid/app/admin/IDevicePolicyManager;->addCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
 HSPLandroid/app/admin/IDevicePolicyManager;->addOverrideApn(Landroid/content/ComponentName;Landroid/telephony/data/ApnSetting;)I
@@ -24296,7 +24296,8 @@
 HSPLandroid/icu/util/CodePointMap;->getRange(ILandroid/icu/util/CodePointMap$RangeOption;ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z
 HSPLandroid/icu/util/CodePointMap;->getRange(ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z
 HSPLandroid/icu/util/CodePointMap;->iterator()Ljava/util/Iterator;
-HSPLandroid/icu/util/CodePointMap;->stringIterator(Ljava/lang/CharSequence;I)Landroid/icu/util/CodePointMap$StringIterator;HSPLandroid/icu/util/Currency$1;-><init>()V
+HSPLandroid/icu/util/CodePointMap;->stringIterator(Ljava/lang/CharSequence;I)Landroid/icu/util/CodePointMap$StringIterator;
+HSPLandroid/icu/util/Currency$1;-><init>()V
 HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/Currency$CurrencyUsage;-><init>(Ljava/lang/String;I)V
@@ -25254,7 +25255,7 @@
 HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
 HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->parseWidthHeightRanges(Ljava/lang/Object;)Landroid/util/Pair;
 HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
-HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->updateLimits()V
+# HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->updateLimits()V b/76145463
 HSPLandroid/media/MediaCodecInfo;-><init>(Ljava/lang/String;Z[Landroid/media/MediaCodecInfo$CodecCapabilities;)V
 HSPLandroid/media/MediaCodecInfo;->access$200()Landroid/util/Range;
 HSPLandroid/media/MediaCodecInfo;->access$300()Landroid/util/Range;
@@ -32940,8 +32941,8 @@
 HSPLandroid/view/IWindowManager;->isWindowTraceEnabled()Z
 HSPLandroid/view/IWindowManager;->lockNow(Landroid/os/Bundle;)V
 HSPLandroid/view/IWindowManager;->openSession(Landroid/view/IWindowSessionCallback;Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;)Landroid/view/IWindowSession;
-HSPLandroid/view/IWindowManager;->overridePendingAppTransitionMultiThumbFuture(Landroid/view/IAppTransitionAnimationSpecsFuture;Landroid/os/IRemoteCallback;Z)V
-HSPLandroid/view/IWindowManager;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;)V
+HSPLandroid/view/IWindowManager;->overridePendingAppTransitionMultiThumbFuture(Landroid/view/IAppTransitionAnimationSpecsFuture;Landroid/os/IRemoteCallback;Z;I)V
+HSPLandroid/view/IWindowManager;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;I)V
 HSPLandroid/view/IWindowManager;->prepareAppTransition(IZ)V
 HSPLandroid/view/IWindowManager;->reenableKeyguard(Landroid/os/IBinder;)V
 HSPLandroid/view/IWindowManager;->refreshScreenCaptureDisabled(I)V
@@ -37845,7 +37846,7 @@
 HSPLandroid/widget/ViewSwitcher;->getNextView()Landroid/view/View;
 HSPLandroid/widget/WrapperListAdapter;->getWrappedAdapter()Landroid/widget/ListAdapter;
 HSPLcom/android/i18n/phonenumbers/AlternateFormatsCountryCodeSet;->getCountryCodeSet()Ljava/util/Set;
-HSPLcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap;->getCountryCodeToRegionCodeMap()Ljava/util/Map;
+# HSPLcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap;->getCountryCodeToRegionCodeMap()Ljava/util/Map; b/76145463
 HSPLcom/android/i18n/phonenumbers/MetadataLoader;->loadMetadata(Ljava/lang/String;)Ljava/io/InputStream;
 HSPLcom/android/i18n/phonenumbers/MetadataManager$1;-><init>()V
 HSPLcom/android/i18n/phonenumbers/MetadataManager$1;->loadMetadata(Ljava/lang/String;)Ljava/io/InputStream;
@@ -37999,7 +38000,7 @@
 HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCodeSource(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
 HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setNationalNumber(J)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
 HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setRawInput(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
-HSPLcom/android/i18n/phonenumbers/ShortNumbersRegionCodeSet;->getRegionCodeSet()Ljava/util/Set;
+# HSPLcom/android/i18n/phonenumbers/ShortNumbersRegionCodeSet;->getRegionCodeSet()Ljava/util/Set; b/76145463
 HSPLcom/android/i18n/phonenumbers/internal/MatcherApi;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z
 HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z
 HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z
@@ -38978,7 +38979,7 @@
 HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->updateUidProcessStateLocked(I)V
 HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->writeJobCompletionsToParcelLocked(Landroid/os/Parcel;)V
 HSPLcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->getUserIds()[I
-HSPLcom/android/internal/os/BatteryStatsImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Landroid/os/Parcel;)V
+# HSPLcom/android/internal/os/BatteryStatsImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Landroid/os/Parcel;)V b/76145463
 HSPLcom/android/internal/os/BatteryStatsImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Ljava/io/File;Landroid/os/Handler;Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;)V
 HSPLcom/android/internal/os/BatteryStatsImpl;-><init>(Ljava/io/File;Landroid/os/Handler;Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;)V
 HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryBufferLocked(JBLandroid/os/BatteryStats$HistoryItem;)V
@@ -41154,7 +41155,7 @@
 HSPLcom/android/internal/telephony/TimeServiceHelper;->setListener(Lcom/android/internal/telephony/TimeServiceHelper$Listener;)V
 HSPLcom/android/internal/telephony/TimeZoneLookupHelper$CountryResult;->toString()Ljava/lang/String;
 HSPLcom/android/internal/telephony/TimeZoneLookupHelper$OffsetResult;->toString()Ljava/lang/String;
-HSPLcom/android/internal/telephony/TimeZoneLookupHelper;->getCountryTimeZones(Ljava/lang/String;)Llibcore/util/CountryTimeZones;
+HSPLcom/android/internal/telephony/TimeZoneLookupHelper;->getCountryTimeZones(Ljava/lang/String;)Llibcore/timezone/CountryTimeZones;
 HSPLcom/android/internal/telephony/TimeZoneLookupHelper;->lookupByCountry(Ljava/lang/String;J)Lcom/android/internal/telephony/TimeZoneLookupHelper$CountryResult;
 HSPLcom/android/internal/telephony/TimeZoneLookupHelper;->lookupByNitzCountry(Lcom/android/internal/telephony/NitzData;Ljava/lang/String;)Lcom/android/internal/telephony/TimeZoneLookupHelper$OffsetResult;
 HSPLcom/android/internal/telephony/UiccSmsController;->disableCellBroadcastRangeForSubscriber(IIII)Z
@@ -51930,7 +51931,46 @@
 HSPLlibcore/reflect/Types;->getTypeArray(Llibcore/reflect/ListOfTypes;Z)[Ljava/lang/reflect/Type;
 HSPLlibcore/reflect/WildcardTypeImpl;->getLowerBounds()[Ljava/lang/reflect/Type;
 HSPLlibcore/reflect/WildcardTypeImpl;->getUpperBounds()[Ljava/lang/reflect/Type;
-HSPLlibcore/util/-$$Lambda$TimeZoneFinder$ReaderSupplier$IAVNuAYizGfcsPtGXEBkDPhlBF0;->get()Ljava/io/Reader;
+HSPLlibcore/timezone/-$$Lambda$TimeZoneFinder$ReaderSupplier$IAVNuAYizGfcsPtGXEBkDPhlBF0;->get()Ljava/io/Reader;
+HSPLlibcore/timezone/CountryTimeZones;->createValidated(Ljava/lang/String;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;)Llibcore/timezone/CountryTimeZones;
+HSPLlibcore/timezone/CountryTimeZones;->getDefaultTimeZone()Landroid/icu/util/TimeZone;
+HSPLlibcore/timezone/CountryTimeZones;->getIcuTimeZones()Ljava/util/List;
+HSPLlibcore/timezone/CountryTimeZones;->isDefaultOkForCountryTimeZoneDetection(J)Z
+HSPLlibcore/timezone/CountryTimeZones;->isForCountryCode(Ljava/lang/String;)Z
+HSPLlibcore/timezone/CountryTimeZones;->lookupByOffsetWithBias(IZJLandroid/icu/util/TimeZone;)Llibcore/timezone/CountryTimeZones$OffsetResult;
+HSPLlibcore/timezone/TimeZoneDataFiles;->generateIcuDataPath()Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getTimeZoneFilePaths(Ljava/lang/String;)[Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneFinder$ReaderSupplier;->forFile(Ljava/lang/String;Ljava/nio/charset/Charset;)Llibcore/timezone/TimeZoneFinder$ReaderSupplier;
+HSPLlibcore/timezone/TimeZoneFinder$ReaderSupplier;->get()Ljava/io/Reader;
+HSPLlibcore/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;->processCountryZones(Ljava/lang/String;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;)Z
+HSPLlibcore/timezone/TimeZoneFinder$TimeZonesProcessor;->processHeader(Ljava/lang/String;)Z
+HSPLlibcore/timezone/TimeZoneFinder;->checkOnEndTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
+HSPLlibcore/timezone/TimeZoneFinder;->consumeText(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneFinder;->createInstanceWithFallback([Ljava/lang/String;)Llibcore/timezone/TimeZoneFinder;
+HSPLlibcore/timezone/TimeZoneFinder;->findStartTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+HSPLlibcore/timezone/TimeZoneFinder;->getInstance()Llibcore/timezone/TimeZoneFinder;
+HSPLlibcore/timezone/TimeZoneFinder;->lookupCountryTimeZones(Ljava/lang/String;)Llibcore/timezone/CountryTimeZones;
+HSPLlibcore/timezone/TimeZoneFinder;->parseBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
+HSPLlibcore/timezone/TimeZoneFinder;->parseLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;
+HSPLlibcore/timezone/TimeZoneFinder;->parseTimeZoneMappings(Lorg/xmlpull/v1/XmlPullParser;)Ljava/util/List;
+HSPLlibcore/timezone/TimeZoneFinder;->processCountryZones(Lorg/xmlpull/v1/XmlPullParser;Llibcore/timezone/TimeZoneFinder$TimeZonesProcessor;)Z
+HSPLlibcore/timezone/TimeZoneFinder;->processXml(Llibcore/timezone/TimeZoneFinder$TimeZonesProcessor;)V
+HSPLlibcore/timezone/ZoneInfoDB$TzData$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLlibcore/timezone/ZoneInfoDB$TzData$1;->create(Ljava/lang/String;)Llibcore/util/ZoneInfo;
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->close()V
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->finalize()V
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->getAvailableIDs()[Ljava/lang/String;
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->getBufferIterator(Ljava/lang/String;)Llibcore/io/BufferIterator;
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->hasTimeZone(Ljava/lang/String;)Z
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->loadData(Ljava/lang/String;)Z
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->loadTzDataWithFallback([Ljava/lang/String;)Llibcore/timezone/ZoneInfoDB$TzData;
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->makeTimeZone(Ljava/lang/String;)Llibcore/util/ZoneInfo;
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->makeTimeZoneUncached(Ljava/lang/String;)Llibcore/util/ZoneInfo;
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->readHeader()V
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->readIndex(Llibcore/io/BufferIterator;II)V
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->readZoneTab(Llibcore/io/BufferIterator;II)V
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->validateOffset(II)V
+HSPLlibcore/timezone/ZoneInfoDB;->getInstance()Llibcore/timezone/ZoneInfoDB$TzData;
 HSPLlibcore/util/BasicLruCache;-><init>(I)V
 HSPLlibcore/util/BasicLruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLlibcore/util/BasicLruCache;->entryEvicted(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -51938,12 +51978,6 @@
 HSPLlibcore/util/BasicLruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLlibcore/util/BasicLruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLlibcore/util/CollectionUtils;->removeDuplicates(Ljava/util/List;Ljava/util/Comparator;)V
-HSPLlibcore/util/CountryTimeZones;->createValidated(Ljava/lang/String;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;)Llibcore/util/CountryTimeZones;
-HSPLlibcore/util/CountryTimeZones;->getDefaultTimeZone()Landroid/icu/util/TimeZone;
-HSPLlibcore/util/CountryTimeZones;->getIcuTimeZones()Ljava/util/List;
-HSPLlibcore/util/CountryTimeZones;->isDefaultOkForCountryTimeZoneDetection(J)Z
-HSPLlibcore/util/CountryTimeZones;->isForCountryCode(Ljava/lang/String;)Z
-HSPLlibcore/util/CountryTimeZones;->lookupByOffsetWithBias(IZJLandroid/icu/util/TimeZone;)Llibcore/util/CountryTimeZones$OffsetResult;
 HSPLlibcore/util/HexEncoding;->encode([BII)[C
 HSPLlibcore/util/NativeAllocationRegistry$CleanerRunner;->run()V
 HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;->run()V
@@ -51951,23 +51985,6 @@
 HSPLlibcore/util/NativeAllocationRegistry;->registerNativeAllocation(Ljava/lang/Object;J)Ljava/lang/Runnable;
 HSPLlibcore/util/SneakyThrow;->sneakyThrow(Ljava/lang/Throwable;)V
 HSPLlibcore/util/SneakyThrow;->sneakyThrow_(Ljava/lang/Throwable;)V
-HSPLlibcore/util/TimeZoneDataFiles;->generateIcuDataPath()Ljava/lang/String;
-HSPLlibcore/util/TimeZoneDataFiles;->getTimeZoneFilePaths(Ljava/lang/String;)[Ljava/lang/String;
-HSPLlibcore/util/TimeZoneFinder$ReaderSupplier;->forFile(Ljava/lang/String;Ljava/nio/charset/Charset;)Llibcore/util/TimeZoneFinder$ReaderSupplier;
-HSPLlibcore/util/TimeZoneFinder$ReaderSupplier;->get()Ljava/io/Reader;
-HSPLlibcore/util/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;->processCountryZones(Ljava/lang/String;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;)Z
-HSPLlibcore/util/TimeZoneFinder$TimeZonesProcessor;->processHeader(Ljava/lang/String;)Z
-HSPLlibcore/util/TimeZoneFinder;->checkOnEndTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
-HSPLlibcore/util/TimeZoneFinder;->consumeText(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/String;
-HSPLlibcore/util/TimeZoneFinder;->createInstanceWithFallback([Ljava/lang/String;)Llibcore/util/TimeZoneFinder;
-HSPLlibcore/util/TimeZoneFinder;->findStartTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
-HSPLlibcore/util/TimeZoneFinder;->getInstance()Llibcore/util/TimeZoneFinder;
-HSPLlibcore/util/TimeZoneFinder;->lookupCountryTimeZones(Ljava/lang/String;)Llibcore/util/CountryTimeZones;
-HSPLlibcore/util/TimeZoneFinder;->parseBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
-HSPLlibcore/util/TimeZoneFinder;->parseLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;
-HSPLlibcore/util/TimeZoneFinder;->parseTimeZoneMappings(Lorg/xmlpull/v1/XmlPullParser;)Ljava/util/List;
-HSPLlibcore/util/TimeZoneFinder;->processCountryZones(Lorg/xmlpull/v1/XmlPullParser;Llibcore/util/TimeZoneFinder$TimeZonesProcessor;)Z
-HSPLlibcore/util/TimeZoneFinder;->processXml(Llibcore/util/TimeZoneFinder$TimeZonesProcessor;)V
 HSPLlibcore/util/ZoneInfo$WallTime;-><init>()V
 HSPLlibcore/util/ZoneInfo$WallTime;->copyFieldsFromCalendar()V
 HSPLlibcore/util/ZoneInfo$WallTime;->copyFieldsToCalendar()V
@@ -52007,22 +52024,6 @@
 HSPLlibcore/util/ZoneInfo;->hashCode()I
 HSPLlibcore/util/ZoneInfo;->inDaylightTime(Ljava/util/Date;)Z
 HSPLlibcore/util/ZoneInfo;->readTimeZone(Ljava/lang/String;Llibcore/io/BufferIterator;J)Llibcore/util/ZoneInfo;
-HSPLlibcore/util/ZoneInfoDB$TzData$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLlibcore/util/ZoneInfoDB$TzData$1;->create(Ljava/lang/String;)Llibcore/util/ZoneInfo;
-HSPLlibcore/util/ZoneInfoDB$TzData;->close()V
-HSPLlibcore/util/ZoneInfoDB$TzData;->finalize()V
-HSPLlibcore/util/ZoneInfoDB$TzData;->getAvailableIDs()[Ljava/lang/String;
-HSPLlibcore/util/ZoneInfoDB$TzData;->getBufferIterator(Ljava/lang/String;)Llibcore/io/BufferIterator;
-HSPLlibcore/util/ZoneInfoDB$TzData;->hasTimeZone(Ljava/lang/String;)Z
-HSPLlibcore/util/ZoneInfoDB$TzData;->loadData(Ljava/lang/String;)Z
-HSPLlibcore/util/ZoneInfoDB$TzData;->loadTzDataWithFallback([Ljava/lang/String;)Llibcore/util/ZoneInfoDB$TzData;
-HSPLlibcore/util/ZoneInfoDB$TzData;->makeTimeZone(Ljava/lang/String;)Llibcore/util/ZoneInfo;
-HSPLlibcore/util/ZoneInfoDB$TzData;->makeTimeZoneUncached(Ljava/lang/String;)Llibcore/util/ZoneInfo;
-HSPLlibcore/util/ZoneInfoDB$TzData;->readHeader()V
-HSPLlibcore/util/ZoneInfoDB$TzData;->readIndex(Llibcore/io/BufferIterator;II)V
-HSPLlibcore/util/ZoneInfoDB$TzData;->readZoneTab(Llibcore/io/BufferIterator;II)V
-HSPLlibcore/util/ZoneInfoDB$TzData;->validateOffset(II)V
-HSPLlibcore/util/ZoneInfoDB;->getInstance()Llibcore/util/ZoneInfoDB$TzData;
 HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(ILjava/nio/ByteBuffer;)V
 HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->putString(Ljava/nio/ByteBuffer;Ljava/lang/String;)V
 HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->type(Ljava/lang/String;)I
@@ -63455,13 +63456,21 @@
 Llibcore/reflect/TypeVariableImpl;
 Llibcore/reflect/Types;
 Llibcore/reflect/WildcardTypeImpl;
-Llibcore/util/-$$Lambda$TimeZoneFinder$ReaderSupplier$IAVNuAYizGfcsPtGXEBkDPhlBF0;
+Llibcore/timezone/-$$Lambda$TimeZoneFinder$ReaderSupplier$IAVNuAYizGfcsPtGXEBkDPhlBF0;
+Llibcore/timezone/CountryTimeZones$OffsetResult;
+Llibcore/timezone/CountryTimeZones$TimeZoneMapping;
+Llibcore/timezone/CountryTimeZones;
+Llibcore/timezone/TimeZoneDataFiles;
+Llibcore/timezone/TimeZoneFinder$ReaderSupplier;
+Llibcore/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;
+Llibcore/timezone/TimeZoneFinder$TimeZonesProcessor;
+Llibcore/timezone/TimeZoneFinder;
+Llibcore/timezone/ZoneInfoDB$TzData$1;
+Llibcore/timezone/ZoneInfoDB$TzData;
+Llibcore/timezone/ZoneInfoDB;
 Llibcore/util/BasicLruCache;
 Llibcore/util/CharsetUtils;
 Llibcore/util/CollectionUtils;
-Llibcore/util/CountryTimeZones$OffsetResult;
-Llibcore/util/CountryTimeZones$TimeZoneMapping;
-Llibcore/util/CountryTimeZones;
 Llibcore/util/EmptyArray;
 Llibcore/util/HexEncoding;
 Llibcore/util/NativeAllocationRegistry$CleanerRunner;
@@ -63469,18 +63478,10 @@
 Llibcore/util/NativeAllocationRegistry;
 Llibcore/util/Objects;
 Llibcore/util/SneakyThrow;
-Llibcore/util/TimeZoneDataFiles;
-Llibcore/util/TimeZoneFinder$ReaderSupplier;
-Llibcore/util/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;
-Llibcore/util/TimeZoneFinder$TimeZonesProcessor;
-Llibcore/util/TimeZoneFinder;
 Llibcore/util/ZoneInfo$CheckedArithmeticException;
 Llibcore/util/ZoneInfo$OffsetInterval;
 Llibcore/util/ZoneInfo$WallTime;
 Llibcore/util/ZoneInfo;
-Llibcore/util/ZoneInfoDB$TzData$1;
-Llibcore/util/ZoneInfoDB$TzData;
-Llibcore/util/ZoneInfoDB;
 Lorg/apache/harmony/dalvik/NativeTestTarget;
 Lorg/apache/harmony/dalvik/ddmc/Chunk;
 Lorg/apache/harmony/dalvik/ddmc/ChunkHandler;
diff --git a/config/hiddenapi-greylist-max-o.txt b/config/hiddenapi-greylist-max-o.txt
new file mode 100644
index 0000000..4b6cc0e
--- /dev/null
+++ b/config/hiddenapi-greylist-max-o.txt
@@ -0,0 +1,120918 @@
+#
+# DO NOT EDIT!
+# This is an autogenerated file containing the dark greylist as present in P.
+# If you are changing/removing APIs listed in this file, you do not need to
+# change/remove them here. Entries no longer present in code are harmless and
+# will be cleaned up periodically by compat-team@.
+#
+Landroid/accessibilityservice/AccessibilityButtonController;-><init>(Landroid/accessibilityservice/IAccessibilityServiceConnection;)V
+Landroid/accessibilityservice/AccessibilityButtonController;->dispatchAccessibilityButtonAvailabilityChanged(Z)V
+Landroid/accessibilityservice/AccessibilityButtonController;->dispatchAccessibilityButtonClicked()V
+Landroid/accessibilityservice/AccessibilityButtonController;->LOG_TAG:Ljava/lang/String;
+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
+Landroid/accessibilityservice/AccessibilityService$Callbacks;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/accessibilityservice/AccessibilityService$Callbacks;->onFingerprintCapturingGesturesChanged(Z)V
+Landroid/accessibilityservice/AccessibilityService$Callbacks;->onFingerprintGesture(I)V
+Landroid/accessibilityservice/AccessibilityService$Callbacks;->onGesture(I)Z
+Landroid/accessibilityservice/AccessibilityService$Callbacks;->onInterrupt()V
+Landroid/accessibilityservice/AccessibilityService$Callbacks;->onKeyEvent(Landroid/view/KeyEvent;)Z
+Landroid/accessibilityservice/AccessibilityService$Callbacks;->onMagnificationChanged(Landroid/graphics/Region;FFF)V
+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
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ACCESSIBILITY_BUTTON_CLICKED:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_CLEAR_ACCESSIBILITY_CACHE:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_GESTURE_COMPLETE:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_INIT:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ON_ACCESSIBILITY_EVENT:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ON_FINGERPRINT_ACTIVE_CHANGED:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ON_FINGERPRINT_GESTURE:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ON_GESTURE:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ON_INTERRUPT:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ON_KEY_EVENT:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ON_MAGNIFICATION_CHANGED:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ON_SOFT_KEYBOARD_SHOW_MODE_CHANGED:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->executeMessage(Landroid/os/Message;)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->init(Landroid/accessibilityservice/IAccessibilityServiceConnection;ILandroid/os/IBinder;)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->mCallback:Landroid/accessibilityservice/AccessibilityService$Callbacks;
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->mCaller:Lcom/android/internal/os/HandlerCaller;
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->mConnectionId:I
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onAccessibilityButtonAvailabilityChanged(Z)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onAccessibilityButtonClicked()V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;Z)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onFingerprintCapturingGesturesChanged(Z)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onFingerprintGesture(I)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onGesture(I)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onInterrupt()V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onKeyEvent(Landroid/view/KeyEvent;I)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onMagnificationChanged(Landroid/graphics/Region;FFF)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onPerformGestureResult(IZ)V
+Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->onSoftKeyboardShowModeChanged(I)V
+Landroid/accessibilityservice/AccessibilityService$MagnificationController;-><init>(Landroid/accessibilityservice/AccessibilityService;Ljava/lang/Object;)V
+Landroid/accessibilityservice/AccessibilityService$MagnificationController;->dispatchMagnificationChanged(Landroid/graphics/Region;FFF)V
+Landroid/accessibilityservice/AccessibilityService$MagnificationController;->mListeners:Landroid/util/ArrayMap;
+Landroid/accessibilityservice/AccessibilityService$MagnificationController;->mLock:Ljava/lang/Object;
+Landroid/accessibilityservice/AccessibilityService$MagnificationController;->mService:Landroid/accessibilityservice/AccessibilityService;
+Landroid/accessibilityservice/AccessibilityService$MagnificationController;->onServiceConnected()V
+Landroid/accessibilityservice/AccessibilityService$MagnificationController;->setMagnificationCallbackEnabled(Z)V
+Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController;-><init>(Landroid/accessibilityservice/AccessibilityService;Ljava/lang/Object;)V
+Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController;->dispatchSoftKeyboardShowModeChanged(I)V
+Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController;->mListeners:Landroid/util/ArrayMap;
+Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController;->mLock:Ljava/lang/Object;
+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;
+Landroid/accessibilityservice/AccessibilityService;->mConnectionId:I
+Landroid/accessibilityservice/AccessibilityService;->mFingerprintGestureController:Landroid/accessibilityservice/FingerprintGestureController;
+Landroid/accessibilityservice/AccessibilityService;->mGestureStatusCallbackInfos:Landroid/util/SparseArray;
+Landroid/accessibilityservice/AccessibilityService;->mGestureStatusCallbackSequence:I
+Landroid/accessibilityservice/AccessibilityService;->mLock:Ljava/lang/Object;
+Landroid/accessibilityservice/AccessibilityService;->mMagnificationController:Landroid/accessibilityservice/AccessibilityService$MagnificationController;
+Landroid/accessibilityservice/AccessibilityService;->mSoftKeyboardController:Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController;
+Landroid/accessibilityservice/AccessibilityService;->mWindowManager:Landroid/view/WindowManager;
+Landroid/accessibilityservice/AccessibilityService;->onAccessibilityButtonAvailabilityChanged(Z)V
+Landroid/accessibilityservice/AccessibilityService;->onAccessibilityButtonClicked()V
+Landroid/accessibilityservice/AccessibilityService;->onFingerprintCapturingGesturesChanged(Z)V
+Landroid/accessibilityservice/AccessibilityService;->onFingerprintGesture(I)V
+Landroid/accessibilityservice/AccessibilityService;->onMagnificationChanged(Landroid/graphics/Region;FFF)V
+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
+Landroid/accessibilityservice/AccessibilityServiceInfo;->appendFeedbackTypes(Ljava/lang/StringBuilder;I)V
+Landroid/accessibilityservice/AccessibilityServiceInfo;->appendFlags(Ljava/lang/StringBuilder;I)V
+Landroid/accessibilityservice/AccessibilityServiceInfo;->appendPackageNames(Ljava/lang/StringBuilder;[Ljava/lang/String;)V
+Landroid/accessibilityservice/AccessibilityServiceInfo;->crashed:Z
+Landroid/accessibilityservice/AccessibilityServiceInfo;->fingerprintAvailable(Landroid/content/Context;)Z
+Landroid/accessibilityservice/AccessibilityServiceInfo;->FLAG_FORCE_DIRECT_BOOT_AWARE:I
+Landroid/accessibilityservice/AccessibilityServiceInfo;->getCapabilityInfos()Ljava/util/List;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->getCapabilityInfos(Landroid/content/Context;)Ljava/util/List;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->getCapabilityInfoSparseArray(Landroid/content/Context;)Landroid/util/SparseArray;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->getComponentName()Landroid/content/ComponentName;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->initFromParcel(Landroid/os/Parcel;)V
+Landroid/accessibilityservice/AccessibilityServiceInfo;->isDirectBootAware()Z
+Landroid/accessibilityservice/AccessibilityServiceInfo;->mCapabilities:I
+Landroid/accessibilityservice/AccessibilityServiceInfo;->mComponentName:Landroid/content/ComponentName;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->mDescriptionResId:I
+Landroid/accessibilityservice/AccessibilityServiceInfo;->mNonLocalizedDescription:Ljava/lang/String;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->mNonLocalizedSummary:Ljava/lang/String;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->mResolveInfo:Landroid/content/pm/ResolveInfo;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->mSettingsActivityName:Ljava/lang/String;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->mSummaryResId:I
+Landroid/accessibilityservice/AccessibilityServiceInfo;->sAvailableCapabilityInfos:Landroid/util/SparseArray;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->setComponentName(Landroid/content/ComponentName;)V
+Landroid/accessibilityservice/AccessibilityServiceInfo;->TAG_ACCESSIBILITY_SERVICE:Ljava/lang/String;
+Landroid/accessibilityservice/AccessibilityServiceInfo;->updateDynamicallyConfigurableProperties(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
+Landroid/accessibilityservice/FingerprintGestureController;-><init>(Landroid/accessibilityservice/IAccessibilityServiceConnection;)V
+Landroid/accessibilityservice/FingerprintGestureController;->LOG_TAG:Ljava/lang/String;
+Landroid/accessibilityservice/FingerprintGestureController;->mAccessibilityServiceConnection:Landroid/accessibilityservice/IAccessibilityServiceConnection;
+Landroid/accessibilityservice/FingerprintGestureController;->mCallbackHandlerMap:Landroid/util/ArrayMap;
+Landroid/accessibilityservice/FingerprintGestureController;->mLock:Ljava/lang/Object;
+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;
+Landroid/accessibilityservice/GestureDescription$MotionEventGenerator;->sCurrentTouchPoints:[Landroid/accessibilityservice/GestureDescription$TouchPoint;
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->getContinuedStrokeId()I
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->getId()I
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->getLength()F
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->getPosForTime(J[F)Z
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->hasPointForTime(J)Z
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->INVALID_STROKE_ID:I
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mContinued:Z
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mContinuedStrokeId:I
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mEndTime:J
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mId:I
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mPath:Landroid/graphics/Path;
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mPathMeasure:Landroid/graphics/PathMeasure;
+Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mStartTime:J
+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
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->copyFrom(Landroid/accessibilityservice/GestureDescription$TouchPoint;)V
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->FLAG_IS_END_OF_PATH:I
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->FLAG_IS_START_OF_PATH:I
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->mContinuedStrokeId:I
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->mIsEndOfPath:Z
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->mIsStartOfPath:Z
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->mStrokeId:I
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->mX:F
+Landroid/accessibilityservice/GestureDescription$TouchPoint;->mY:F
+Landroid/accessibilityservice/GestureDescription;-><init>()V
+Landroid/accessibilityservice/GestureDescription;-><init>(Ljava/util/List;)V
+Landroid/accessibilityservice/GestureDescription;->getNextKeyPointAtLeast(J)J
+Landroid/accessibilityservice/GestureDescription;->getPointsForTime(J[Landroid/accessibilityservice/GestureDescription$TouchPoint;)I
+Landroid/accessibilityservice/GestureDescription;->getTotalDuration(Ljava/util/List;)J
+Landroid/accessibilityservice/GestureDescription;->MAX_GESTURE_DURATION_MS:J
+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;
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->init(Landroid/accessibilityservice/IAccessibilityServiceConnection;ILandroid/os/IBinder;)V
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onAccessibilityButtonAvailabilityChanged(Z)V
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onAccessibilityButtonClicked()V
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;Z)V
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onFingerprintCapturingGesturesChanged(Z)V
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onFingerprintGesture(I)V
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onGesture(I)V
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onInterrupt()V
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onKeyEvent(Landroid/view/KeyEvent;I)V
+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;
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_clearAccessibilityCache:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_init:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onAccessibilityButtonAvailabilityChanged:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onAccessibilityButtonClicked:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onAccessibilityEvent:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onFingerprintCapturingGesturesChanged:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onFingerprintGesture:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onGesture:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onInterrupt:I
+Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onKeyEvent:I
+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
+Landroid/accessibilityservice/IAccessibilityServiceClient;->onAccessibilityButtonClicked()V
+Landroid/accessibilityservice/IAccessibilityServiceClient;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;Z)V
+Landroid/accessibilityservice/IAccessibilityServiceClient;->onFingerprintCapturingGesturesChanged(Z)V
+Landroid/accessibilityservice/IAccessibilityServiceClient;->onFingerprintGesture(I)V
+Landroid/accessibilityservice/IAccessibilityServiceClient;->onGesture(I)V
+Landroid/accessibilityservice/IAccessibilityServiceClient;->onInterrupt()V
+Landroid/accessibilityservice/IAccessibilityServiceClient;->onKeyEvent(Landroid/view/KeyEvent;I)V
+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;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->findAccessibilityNodeInfosByText(IJLjava/lang/String;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->findAccessibilityNodeInfosByViewId(IJLjava/lang/String;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->findFocus(IJIILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->focusSearch(IJIILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->getMagnificationCenterX()F
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->getMagnificationCenterY()F
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->getMagnificationRegion()Landroid/graphics/Region;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->getMagnificationScale()F
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->getWindow(I)Landroid/view/accessibility/AccessibilityWindowInfo;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->getWindows()Ljava/util/List;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->isAccessibilityButtonAvailable()Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->isFingerprintGestureDetectionAvailable()Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->performAccessibilityAction(IJILandroid/os/Bundle;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->performGlobalAction(I)Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->resetMagnification(Z)Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->sendGesture(ILandroid/content/pm/ParceledListSlice;)V
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->setMagnificationCallbackEnabled(Z)V
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->setMagnificationScaleAndCenter(FFFZ)Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->setOnKeyEventResult(ZI)V
+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
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_findAccessibilityNodeInfosByText:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_findAccessibilityNodeInfosByViewId:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_findFocus:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_focusSearch:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_getMagnificationCenterX:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_getMagnificationCenterY:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_getMagnificationRegion:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_getMagnificationScale:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_getServiceInfo:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_getWindow:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_getWindows:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_isAccessibilityButtonAvailable:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_isFingerprintGestureDetectionAvailable:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_performAccessibilityAction:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_performGlobalAction:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_resetMagnification:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_sendGesture:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_setMagnificationCallbackEnabled:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_setMagnificationScaleAndCenter:I
+Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_setOnKeyEventResult:I
+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;
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->findAccessibilityNodeInfosByViewId(IJLjava/lang/String;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->findFocus(IJIILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->focusSearch(IJIILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->getMagnificationCenterX()F
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->getMagnificationCenterY()F
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->getMagnificationRegion()Landroid/graphics/Region;
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->getMagnificationScale()F
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->getWindow(I)Landroid/view/accessibility/AccessibilityWindowInfo;
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->getWindows()Ljava/util/List;
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->isAccessibilityButtonAvailable()Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->isFingerprintGestureDetectionAvailable()Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->performAccessibilityAction(IJILandroid/os/Bundle;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->performGlobalAction(I)Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->resetMagnification(Z)Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->sendGesture(ILandroid/content/pm/ParceledListSlice;)V
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->setMagnificationCallbackEnabled(Z)V
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->setMagnificationScaleAndCenter(FFFZ)Z
+Landroid/accessibilityservice/IAccessibilityServiceConnection;->setOnKeyEventResult(ZI)V
+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
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->editProperties(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->finishSession(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->getAccountCredentialsForCloning(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->getAccountRemovalAllowed(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->getAuthToken(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->getAuthTokenLabel(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->hasFeatures(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;[Ljava/lang/String;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->isCredentialsUpdateSuggested(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->startAddAccountSession(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->startUpdateCredentialsSession(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/accounts/AbstractAccountAuthenticator$Transport;->updateCredentials(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/accounts/AbstractAccountAuthenticator;->checkBinderPermission()V
+Landroid/accounts/AbstractAccountAuthenticator;->handleException(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Exception;)V
+Landroid/accounts/AbstractAccountAuthenticator;->KEY_ACCOUNT:Ljava/lang/String;
+Landroid/accounts/AbstractAccountAuthenticator;->KEY_AUTH_TOKEN_TYPE:Ljava/lang/String;
+Landroid/accounts/AbstractAccountAuthenticator;->KEY_OPTIONS:Ljava/lang/String;
+Landroid/accounts/AbstractAccountAuthenticator;->KEY_REQUIRED_FEATURES:Ljava/lang/String;
+Landroid/accounts/AbstractAccountAuthenticator;->mContext:Landroid/content/Context;
+Landroid/accounts/AbstractAccountAuthenticator;->mTransport:Landroid/accounts/AbstractAccountAuthenticator$Transport;
+Landroid/accounts/AbstractAccountAuthenticator;->TAG:Ljava/lang/String;
+Landroid/accounts/Account;-><init>(Landroid/accounts/Account;Ljava/lang/String;)V
+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;
+Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mFeatures:[Ljava/lang/String;
+Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mFuture:Landroid/accounts/AccountManagerFuture;
+Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mNumAccounts:I
+Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->run(Landroid/accounts/AccountManagerFuture;)V
+Landroid/accounts/AccountManager;->ACCOUNT_ACCESS_TOKEN_TYPE:Ljava/lang/String;
+Landroid/accounts/AccountManager;->ACTION_VISIBLE_ACCOUNTS_CHANGED:Ljava/lang/String;
+Landroid/accounts/AccountManager;->addAccountAsUser(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/accounts/AccountManagerFuture;
+Landroid/accounts/AccountManager;->addSharedAccountsFromParentUser(Landroid/os/UserHandle;Landroid/os/UserHandle;)V
+Landroid/accounts/AccountManager;->convertErrorToException(ILjava/lang/String;)Ljava/lang/Exception;
+Landroid/accounts/AccountManager;->copyAccountToUser(Landroid/accounts/Account;Landroid/os/UserHandle;Landroid/os/UserHandle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
+Landroid/accounts/AccountManager;->createRequestAccountAccessIntentSenderAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/IntentSender;
+Landroid/accounts/AccountManager;->ensureNotOnMainThread()V
+Landroid/accounts/AccountManager;->ERROR_CODE_MANAGEMENT_DISABLED_FOR_ACCOUNT_TYPE:I
+Landroid/accounts/AccountManager;->ERROR_CODE_USER_RESTRICTED:I
+Landroid/accounts/AccountManager;->getAccountByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)V
+Landroid/accounts/AccountManager;->getAccountsAsUser(I)[Landroid/accounts/Account;
+Landroid/accounts/AccountManager;->getAccountsForPackage(Ljava/lang/String;I)[Landroid/accounts/Account;
+Landroid/accounts/AccountManager;->getAuthenticatorTypesAsUser(I)[Landroid/accounts/AuthenticatorDescription;
+Landroid/accounts/AccountManager;->getAuthTokenLabel(Ljava/lang/String;Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
+Landroid/accounts/AccountManager;->getSharedAccounts(Landroid/os/UserHandle;)[Landroid/accounts/Account;
+Landroid/accounts/AccountManager;->hasAccountAccess(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Z
+Landroid/accounts/AccountManager;->KEY_ACCOUNT_ACCESS_ID:Ljava/lang/String;
+Landroid/accounts/AccountManager;->KEY_NOTIFY_ON_FAILURE:Ljava/lang/String;
+Landroid/accounts/AccountManager;->mAccountsChangedBroadcastReceiver:Landroid/content/BroadcastReceiver;
+Landroid/accounts/AccountManager;->mAccountsUpdatedListeners:Ljava/util/HashMap;
+Landroid/accounts/AccountManager;->mAccountsUpdatedListenersTypes:Ljava/util/HashMap;
+Landroid/accounts/AccountManager;->mMainHandler:Landroid/os/Handler;
+Landroid/accounts/AccountManager;->mService:Landroid/accounts/IAccountManager;
+Landroid/accounts/AccountManager;->postToHandler(Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;Landroid/accounts/AccountManagerFuture;)V
+Landroid/accounts/AccountManager;->postToHandler(Landroid/os/Handler;Landroid/accounts/OnAccountsUpdateListener;[Landroid/accounts/Account;)V
+Landroid/accounts/AccountManager;->removeAccountAsUser(Landroid/accounts/Account;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/accounts/AccountManagerFuture;
+Landroid/accounts/AccountManager;->removeAccountAsUser(Landroid/accounts/Account;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/accounts/AccountManagerFuture;
+Landroid/accounts/AccountManager;->removeSharedAccount(Landroid/accounts/Account;Landroid/os/UserHandle;)Z
+Landroid/accounts/AccountManager;->sanitizeResult(Landroid/os/Bundle;)Landroid/os/Bundle;
+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;
+Landroid/accounts/ChooseAccountActivity;->mAccountManagerResponse:Landroid/accounts/AccountManagerResponse;
+Landroid/accounts/ChooseAccountActivity;->mAccounts:[Landroid/os/Parcelable;
+Landroid/accounts/ChooseAccountActivity;->mCallingPackage:Ljava/lang/String;
+Landroid/accounts/ChooseAccountActivity;->mCallingUid:I
+Landroid/accounts/ChooseAccountActivity;->mResult:Landroid/os/Bundle;
+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;
+Landroid/accounts/ChooseTypeAndAccountActivity;->EXTRA_ADD_ACCOUNT_REQUIRED_FEATURES_STRING_ARRAY:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->EXTRA_ALLOWABLE_ACCOUNTS_ARRAYLIST:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->EXTRA_ALLOWABLE_ACCOUNT_TYPES_STRING_ARRAY:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->EXTRA_ALWAYS_PROMPT_FOR_ACCOUNT:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->EXTRA_DESCRIPTION_TEXT_OVERRIDE:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->EXTRA_SELECTED_ACCOUNT:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->getAcceptableAccountChoices(Landroid/accounts/AccountManager;)Ljava/util/LinkedHashMap;
+Landroid/accounts/ChooseTypeAndAccountActivity;->getAllowableAccountSet(Landroid/content/Intent;)Ljava/util/Set;
+Landroid/accounts/ChooseTypeAndAccountActivity;->getItemIndexToSelect(Ljava/util/ArrayList;Ljava/lang/String;Z)I
+Landroid/accounts/ChooseTypeAndAccountActivity;->getListOfDisplayableOptions(Ljava/util/ArrayList;)[Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->getReleventAccountTypes(Landroid/content/Intent;)Ljava/util/Set;
+Landroid/accounts/ChooseTypeAndAccountActivity;->KEY_INSTANCE_STATE_ACCOUNTS_LIST:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->KEY_INSTANCE_STATE_EXISTING_ACCOUNTS:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->KEY_INSTANCE_STATE_PENDING_REQUEST:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->KEY_INSTANCE_STATE_SELECTED_ACCOUNT_NAME:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->KEY_INSTANCE_STATE_SELECTED_ADD_ACCOUNT:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->KEY_INSTANCE_STATE_VISIBILITY_LIST:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mAccounts:Ljava/util/LinkedHashMap;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mCallingPackage:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mCallingUid:I
+Landroid/accounts/ChooseTypeAndAccountActivity;->mDescriptionOverride:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mDisallowAddAccounts:Z
+Landroid/accounts/ChooseTypeAndAccountActivity;->mDontShowPicker:Z
+Landroid/accounts/ChooseTypeAndAccountActivity;->mExistingAccounts:[Landroid/os/Parcelable;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mOkButton:Landroid/widget/Button;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mPendingRequest:I
+Landroid/accounts/ChooseTypeAndAccountActivity;->mPossiblyVisibleAccounts:Ljava/util/ArrayList;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mSelectedAccountName:Ljava/lang/String;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mSelectedAddNewAccount:Z
+Landroid/accounts/ChooseTypeAndAccountActivity;->mSelectedItemIndex:I
+Landroid/accounts/ChooseTypeAndAccountActivity;->mSetOfAllowableAccounts:Ljava/util/Set;
+Landroid/accounts/ChooseTypeAndAccountActivity;->mSetOfRelevantAccountTypes:Ljava/util/Set;
+Landroid/accounts/ChooseTypeAndAccountActivity;->onAccountSelected(Landroid/accounts/Account;)V
+Landroid/accounts/ChooseTypeAndAccountActivity;->onCancelButtonClicked(Landroid/view/View;)V
+Landroid/accounts/ChooseTypeAndAccountActivity;->onOkButtonClicked(Landroid/view/View;)V
+Landroid/accounts/ChooseTypeAndAccountActivity;->overrideDescriptionIfSupplied(Ljava/lang/String;)V
+Landroid/accounts/ChooseTypeAndAccountActivity;->populateUIAccountList([Ljava/lang/String;)V
+Landroid/accounts/ChooseTypeAndAccountActivity;->REQUEST_ADD_ACCOUNT:I
+Landroid/accounts/ChooseTypeAndAccountActivity;->REQUEST_CHOOSE_TYPE:I
+Landroid/accounts/ChooseTypeAndAccountActivity;->REQUEST_NULL:I
+Landroid/accounts/ChooseTypeAndAccountActivity;->run(Landroid/accounts/AccountManagerFuture;)V
+Landroid/accounts/ChooseTypeAndAccountActivity;->runAddAccountForAuthenticator(Ljava/lang/String;)V
+Landroid/accounts/ChooseTypeAndAccountActivity;->SELECTED_ITEM_NONE:I
+Landroid/accounts/ChooseTypeAndAccountActivity;->setNonLabelThemeAndCallSuperCreate(Landroid/os/Bundle;)V
+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;
+Landroid/accounts/GrantCredentialsPermissionActivity;->EXTRAS_REQUESTING_UID:Ljava/lang/String;
+Landroid/accounts/GrantCredentialsPermissionActivity;->EXTRAS_RESPONSE:Ljava/lang/String;
+Landroid/accounts/GrantCredentialsPermissionActivity;->getAccountLabel(Landroid/accounts/Account;)Ljava/lang/String;
+Landroid/accounts/GrantCredentialsPermissionActivity;->mAccount:Landroid/accounts/Account;
+Landroid/accounts/GrantCredentialsPermissionActivity;->mAuthTokenType:Ljava/lang/String;
+Landroid/accounts/GrantCredentialsPermissionActivity;->mInflater:Landroid/view/LayoutInflater;
+Landroid/accounts/GrantCredentialsPermissionActivity;->mResultBundle:Landroid/os/Bundle;
+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
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->editProperties(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;)V
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->finishSession(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->getAccountCredentialsForCloning(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;)V
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->getAccountRemovalAllowed(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;)V
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->getAuthToken(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->getAuthTokenLabel(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;)V
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->hasFeatures(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;[Ljava/lang/String;)V
+Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->isCredentialsUpdateSuggested(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;)V
+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
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_confirmCredentials:I
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_editProperties:I
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_finishSession:I
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_getAccountCredentialsForCloning:I
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_getAccountRemovalAllowed:I
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_getAuthToken:I
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_getAuthTokenLabel:I
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_hasFeatures:I
+Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_isCredentialsUpdateSuggested:I
+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
+Landroid/accounts/IAccountManager$Stub$Proxy;->addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Z
+Landroid/accounts/IAccountManager$Stub$Proxy;->addAccountExplicitlyWithVisibility(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/Map;)Z
+Landroid/accounts/IAccountManager$Stub$Proxy;->addSharedAccountsFromParentUser(IILjava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->clearPassword(Landroid/accounts/Account;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->confirmCredentialsAsUser(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Landroid/os/Bundle;ZI)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->copyAccountToUser(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;II)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->createRequestAccountAccessIntentSenderAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/IntentSender;
+Landroid/accounts/IAccountManager$Stub$Proxy;->editProperties(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Z)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->finishSessionAsUser(Landroid/accounts/IAccountManagerResponse;Landroid/os/Bundle;ZLandroid/os/Bundle;I)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAccountByTypeAndFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAccounts(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAccountsAndVisibilityForPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAccountsByFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAccountsForPackage(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;)I
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAuthenticatorTypes(I)[Landroid/accounts/AuthenticatorDescription;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAuthToken(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZZLandroid/os/Bundle;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->getAuthTokenLabel(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getPackagesAndVisibilityForAccount(Landroid/accounts/Account;)Ljava/util/Map;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getPassword(Landroid/accounts/Account;)Ljava/lang/String;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getPreviousName(Landroid/accounts/Account;)Ljava/lang/String;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getSharedAccountsAsUser(I)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager$Stub$Proxy;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+Landroid/accounts/IAccountManager$Stub$Proxy;->hasAccountAccess(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Z
+Landroid/accounts/IAccountManager$Stub$Proxy;->hasFeatures(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;[Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->isCredentialsUpdateSuggested(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/accounts/IAccountManager$Stub$Proxy;->onAccountAccessed(Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+Landroid/accounts/IAccountManager$Stub$Proxy;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->removeAccount(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Z)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->removeAccountAsUser(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;ZI)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->removeAccountExplicitly(Landroid/accounts/Account;)Z
+Landroid/accounts/IAccountManager$Stub$Proxy;->removeSharedAccountAsUser(Landroid/accounts/Account;I)Z
+Landroid/accounts/IAccountManager$Stub$Proxy;->renameAccount(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->renameSharedAccountAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
+Landroid/accounts/IAccountManager$Stub$Proxy;->setAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;I)Z
+Landroid/accounts/IAccountManager$Stub$Proxy;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->setPassword(Landroid/accounts/Account;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->someUserHasAccount(Landroid/accounts/Account;)Z
+Landroid/accounts/IAccountManager$Stub$Proxy;->startAddAccountSession(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;)V
+Landroid/accounts/IAccountManager$Stub$Proxy;->startUpdateCredentialsSession(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZLandroid/os/Bundle;)V
+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
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_addAccountAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_addAccountExplicitly:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_addAccountExplicitlyWithVisibility:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_addSharedAccountsFromParentUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_clearPassword:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_confirmCredentialsAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_copyAccountToUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_createRequestAccountAccessIntentSenderAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_editProperties:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_finishSessionAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAccountByTypeAndFeatures:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAccounts:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAccountsAndVisibilityForPackage:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAccountsAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAccountsByFeatures:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAccountsByTypeForPackage:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAccountsForPackage:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAccountVisibility:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAuthenticatorTypes:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAuthToken:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getAuthTokenLabel:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getPackagesAndVisibilityForAccount:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getPassword:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getPreviousName:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getSharedAccountsAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_getUserData:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_hasAccountAccess:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_hasFeatures:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_invalidateAuthToken:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_isCredentialsUpdateSuggested:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_onAccountAccessed:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_peekAuthToken:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_registerAccountListener:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_removeAccount:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_removeAccountAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_removeAccountExplicitly:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_removeSharedAccountAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_renameAccount:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_renameSharedAccountAsUser:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_setAccountVisibility:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_setAuthToken:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_setPassword:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_setUserData:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_someUserHasAccount:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_startAddAccountSession:I
+Landroid/accounts/IAccountManager$Stub;->TRANSACTION_startUpdateCredentialsSession:I
+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
+Landroid/accounts/IAccountManager;->addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Z
+Landroid/accounts/IAccountManager;->addAccountExplicitlyWithVisibility(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/Map;)Z
+Landroid/accounts/IAccountManager;->addSharedAccountsFromParentUser(IILjava/lang/String;)V
+Landroid/accounts/IAccountManager;->clearPassword(Landroid/accounts/Account;)V
+Landroid/accounts/IAccountManager;->confirmCredentialsAsUser(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Landroid/os/Bundle;ZI)V
+Landroid/accounts/IAccountManager;->copyAccountToUser(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;II)V
+Landroid/accounts/IAccountManager;->createRequestAccountAccessIntentSenderAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/IntentSender;
+Landroid/accounts/IAccountManager;->editProperties(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Z)V
+Landroid/accounts/IAccountManager;->finishSessionAsUser(Landroid/accounts/IAccountManagerResponse;Landroid/os/Bundle;ZLandroid/os/Bundle;I)V
+Landroid/accounts/IAccountManager;->getAccountByTypeAndFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->getAccounts(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager;->getAccountsAndVisibilityForPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
+Landroid/accounts/IAccountManager;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager;->getAccountsByFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager;->getAccountsForPackage(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager;->getAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;)I
+Landroid/accounts/IAccountManager;->getAuthenticatorTypes(I)[Landroid/accounts/AuthenticatorDescription;
+Landroid/accounts/IAccountManager;->getAuthToken(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZZLandroid/os/Bundle;)V
+Landroid/accounts/IAccountManager;->getAuthTokenLabel(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->getPackagesAndVisibilityForAccount(Landroid/accounts/Account;)Ljava/util/Map;
+Landroid/accounts/IAccountManager;->getPassword(Landroid/accounts/Account;)Ljava/lang/String;
+Landroid/accounts/IAccountManager;->getPreviousName(Landroid/accounts/Account;)Ljava/lang/String;
+Landroid/accounts/IAccountManager;->getSharedAccountsAsUser(I)[Landroid/accounts/Account;
+Landroid/accounts/IAccountManager;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+Landroid/accounts/IAccountManager;->hasAccountAccess(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Z
+Landroid/accounts/IAccountManager;->hasFeatures(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;[Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->isCredentialsUpdateSuggested(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->onAccountAccessed(Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+Landroid/accounts/IAccountManager;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->removeAccount(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Z)V
+Landroid/accounts/IAccountManager;->removeAccountAsUser(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;ZI)V
+Landroid/accounts/IAccountManager;->removeAccountExplicitly(Landroid/accounts/Account;)Z
+Landroid/accounts/IAccountManager;->removeSharedAccountAsUser(Landroid/accounts/Account;I)Z
+Landroid/accounts/IAccountManager;->renameAccount(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->renameSharedAccountAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
+Landroid/accounts/IAccountManager;->setAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;I)Z
+Landroid/accounts/IAccountManager;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->setPassword(Landroid/accounts/Account;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/accounts/IAccountManager;->someUserHasAccount(Landroid/accounts/Account;)Z
+Landroid/accounts/IAccountManager;->startAddAccountSession(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;)V
+Landroid/accounts/IAccountManager;->startUpdateCredentialsSession(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZLandroid/os/Bundle;)V
+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
+Landroid/animation/AnimationHandler;->autoCancelBasedOn(Landroid/animation/ObjectAnimator;)V
+Landroid/animation/AnimationHandler;->cleanUpList()V
+Landroid/animation/AnimationHandler;->commitAnimationFrame(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)V
+Landroid/animation/AnimationHandler;->doAnimationFrame(J)V
+Landroid/animation/AnimationHandler;->getAnimationCount()I
+Landroid/animation/AnimationHandler;->getCallbackSize()I
+Landroid/animation/AnimationHandler;->getFrameDelay()J
+Landroid/animation/AnimationHandler;->getInstance()Landroid/animation/AnimationHandler;
+Landroid/animation/AnimationHandler;->getProvider()Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;
+Landroid/animation/AnimationHandler;->isCallbackDue(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)Z
+Landroid/animation/AnimationHandler;->mAnimationCallbacks:Ljava/util/ArrayList;
+Landroid/animation/AnimationHandler;->mCommitCallbacks:Ljava/util/ArrayList;
+Landroid/animation/AnimationHandler;->mDelayedCallbackStartTime:Landroid/util/ArrayMap;
+Landroid/animation/AnimationHandler;->mFrameCallback:Landroid/view/Choreographer$FrameCallback;
+Landroid/animation/AnimationHandler;->mListDirty:Z
+Landroid/animation/AnimationHandler;->mProvider:Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;
+Landroid/animation/AnimationHandler;->removeCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V
+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;
+Landroid/animation/Animator$AnimatorConstantState;->mChangingConf:I
+Landroid/animation/Animator$AnimatorConstantState;->newInstance()Landroid/animation/Animator;
+Landroid/animation/Animator;->animateBasedOnPlayTime(JJZ)V
+Landroid/animation/Animator;->appendChangingConfigurations(I)V
+Landroid/animation/Animator;->canReverse()Z
+Landroid/animation/Animator;->createConstantState()Landroid/content/res/ConstantState;
+Landroid/animation/Animator;->getChangingConfigurations()I
+Landroid/animation/Animator;->isInitialized()Z
+Landroid/animation/Animator;->mChangingConfigurations:I
+Landroid/animation/Animator;->mConstantState:Landroid/animation/Animator$AnimatorConstantState;
+Landroid/animation/Animator;->mListeners:Ljava/util/ArrayList;
+Landroid/animation/Animator;->mPaused:Z
+Landroid/animation/Animator;->mPauseListeners:Ljava/util/ArrayList;
+Landroid/animation/Animator;->pulseAnimationFrame(J)Z
+Landroid/animation/Animator;->setAllowRunningAsynchronously(Z)V
+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;
+Landroid/animation/AnimatorInflater;->createAnimatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;F)Landroid/animation/Animator;
+Landroid/animation/AnimatorInflater;->createAnimatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/animation/AnimatorSet;IF)Landroid/animation/Animator;
+Landroid/animation/AnimatorInflater;->createNewKeyframe(Landroid/animation/Keyframe;F)Landroid/animation/Keyframe;
+Landroid/animation/AnimatorInflater;->createStateListAnimatorFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/animation/StateListAnimator;
+Landroid/animation/AnimatorInflater;->DBG_ANIMATOR_INFLATER:Z
+Landroid/animation/AnimatorInflater;->distributeKeyframes([Landroid/animation/Keyframe;FII)V
+Landroid/animation/AnimatorInflater;->dumpKeyframes([Ljava/lang/Object;Ljava/lang/String;)V
+Landroid/animation/AnimatorInflater;->getChangingConfigs(Landroid/content/res/Resources;I)I
+Landroid/animation/AnimatorInflater;->getPVH(Landroid/content/res/TypedArray;IIILjava/lang/String;)Landroid/animation/PropertyValuesHolder;
+Landroid/animation/AnimatorInflater;->inferValueTypeFromValues(Landroid/content/res/TypedArray;II)I
+Landroid/animation/AnimatorInflater;->inferValueTypeOfKeyframe(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)I
+Landroid/animation/AnimatorInflater;->isColorType(I)Z
+Landroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/animation/Animator;
+Landroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;IF)Landroid/animation/Animator;
+Landroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;Landroid/animation/ValueAnimator;F)Landroid/animation/ValueAnimator;
+Landroid/animation/AnimatorInflater;->loadKeyframe(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;I)Landroid/animation/Keyframe;
+Landroid/animation/AnimatorInflater;->loadObjectAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;F)Landroid/animation/ObjectAnimator;
+Landroid/animation/AnimatorInflater;->loadPvh(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)Landroid/animation/PropertyValuesHolder;
+Landroid/animation/AnimatorInflater;->loadValues(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)[Landroid/animation/PropertyValuesHolder;
+Landroid/animation/AnimatorInflater;->parseAnimatorFromTypeArray(Landroid/animation/ValueAnimator;Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;F)V
+Landroid/animation/AnimatorInflater;->SEQUENTIALLY:I
+Landroid/animation/AnimatorInflater;->setupAnimatorForPath(Landroid/animation/ValueAnimator;Landroid/content/res/TypedArray;)Landroid/animation/TypeEvaluator;
+Landroid/animation/AnimatorInflater;->setupObjectAnimator(Landroid/animation/ValueAnimator;Landroid/content/res/TypedArray;IF)V
+Landroid/animation/AnimatorInflater;->setupValues(Landroid/animation/ValueAnimator;Landroid/content/res/TypedArray;ZZIZI)V
+Landroid/animation/AnimatorInflater;->sTmpTypedValue:Landroid/util/TypedValue;
+Landroid/animation/AnimatorInflater;->TAG:Ljava/lang/String;
+Landroid/animation/AnimatorInflater;->TOGETHER:I
+Landroid/animation/AnimatorInflater;->VALUE_TYPE_COLOR:I
+Landroid/animation/AnimatorInflater;->VALUE_TYPE_FLOAT:I
+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
+Landroid/animation/AnimatorSet$AnimationEvent;->ANIMATION_START:I
+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
+Landroid/animation/AnimatorSet$Node;->addParents(Ljava/util/ArrayList;)V
+Landroid/animation/AnimatorSet$Node;->addSibling(Landroid/animation/AnimatorSet$Node;)V
+Landroid/animation/AnimatorSet$Node;->mAnimation:Landroid/animation/Animator;
+Landroid/animation/AnimatorSet$Node;->mChildNodes:Ljava/util/ArrayList;
+Landroid/animation/AnimatorSet$Node;->mEnded:Z
+Landroid/animation/AnimatorSet$Node;->mEndTime:J
+Landroid/animation/AnimatorSet$Node;->mLatestParent:Landroid/animation/AnimatorSet$Node;
+Landroid/animation/AnimatorSet$Node;->mParents:Ljava/util/ArrayList;
+Landroid/animation/AnimatorSet$Node;->mParentsAdded:Z
+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
+Landroid/animation/AnimatorSet$SeekState;->mPlayTime:J
+Landroid/animation/AnimatorSet$SeekState;->mSeekingInReverse:Z
+Landroid/animation/AnimatorSet$SeekState;->reset()V
+Landroid/animation/AnimatorSet$SeekState;->setPlayTime(JZ)V
+Landroid/animation/AnimatorSet$SeekState;->updateSeekDirection(Z)V
+Landroid/animation/AnimatorSet;->addAnimationCallback(J)V
+Landroid/animation/AnimatorSet;->addDummyListener()V
+Landroid/animation/AnimatorSet;->animateBasedOnPlayTime(JJZ)V
+Landroid/animation/AnimatorSet;->canReverse()Z
+Landroid/animation/AnimatorSet;->commitAnimationFrame(J)V
+Landroid/animation/AnimatorSet;->createDependencyGraph()V
+Landroid/animation/AnimatorSet;->doAnimationFrame(J)Z
+Landroid/animation/AnimatorSet;->endAnimation()V
+Landroid/animation/AnimatorSet;->findLatestEventIdForTime(J)I
+Landroid/animation/AnimatorSet;->findSiblings(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V
+Landroid/animation/AnimatorSet;->forceToEnd()V
+Landroid/animation/AnimatorSet;->getChangingConfigurations()I
+Landroid/animation/AnimatorSet;->getNodeForAnimation(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Node;
+Landroid/animation/AnimatorSet;->getPlayTimeForNode(JLandroid/animation/AnimatorSet$Node;)J
+Landroid/animation/AnimatorSet;->getPlayTimeForNode(JLandroid/animation/AnimatorSet$Node;Z)J
+Landroid/animation/AnimatorSet;->handleAnimationEvents(IIJ)V
+Landroid/animation/AnimatorSet;->initAnimation()V
+Landroid/animation/AnimatorSet;->initChildren()V
+Landroid/animation/AnimatorSet;->isEmptySet(Landroid/animation/AnimatorSet;)Z
+Landroid/animation/AnimatorSet;->isInitialized()Z
+Landroid/animation/AnimatorSet;->mChildrenInitialized:Z
+Landroid/animation/AnimatorSet;->mDelayAnim:Landroid/animation/ValueAnimator;
+Landroid/animation/AnimatorSet;->mDependencyDirty:Z
+Landroid/animation/AnimatorSet;->mDummyListener:Landroid/animation/AnimatorListenerAdapter;
+Landroid/animation/AnimatorSet;->mDuration:J
+Landroid/animation/AnimatorSet;->mEndCanBeCalled:Z
+Landroid/animation/AnimatorSet;->mEvents:Ljava/util/ArrayList;
+Landroid/animation/AnimatorSet;->mFirstFrame:J
+Landroid/animation/AnimatorSet;->mInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/AnimatorSet;->mLastEventId:I
+Landroid/animation/AnimatorSet;->mLastFrameTime:J
+Landroid/animation/AnimatorSet;->mNodeMap:Landroid/util/ArrayMap;
+Landroid/animation/AnimatorSet;->mNodes:Ljava/util/ArrayList;
+Landroid/animation/AnimatorSet;->mPauseTime:J
+Landroid/animation/AnimatorSet;->mPlayingSet:Ljava/util/ArrayList;
+Landroid/animation/AnimatorSet;->mReversing:Z
+Landroid/animation/AnimatorSet;->mRootNode:Landroid/animation/AnimatorSet$Node;
+Landroid/animation/AnimatorSet;->mSeekState:Landroid/animation/AnimatorSet$SeekState;
+Landroid/animation/AnimatorSet;->mSelfPulse:Z
+Landroid/animation/AnimatorSet;->mShouldIgnoreEndWithoutStart:Z
+Landroid/animation/AnimatorSet;->mShouldResetValuesAtStart:Z
+Landroid/animation/AnimatorSet;->mStartDelay:J
+Landroid/animation/AnimatorSet;->mStarted:Z
+Landroid/animation/AnimatorSet;->mTotalDuration:J
+Landroid/animation/AnimatorSet;->printChildCount()V
+Landroid/animation/AnimatorSet;->pulseAnimationFrame(J)Z
+Landroid/animation/AnimatorSet;->pulseFrame(Landroid/animation/AnimatorSet$Node;J)V
+Landroid/animation/AnimatorSet;->removeAnimationCallback()V
+Landroid/animation/AnimatorSet;->removeDummyListener()V
+Landroid/animation/AnimatorSet;->shouldPlayTogether()Z
+Landroid/animation/AnimatorSet;->skipToEndValue(Z)V
+Landroid/animation/AnimatorSet;->skipToStartValue(Z)V
+Landroid/animation/AnimatorSet;->sortAnimationEvents()V
+Landroid/animation/AnimatorSet;->start(ZZ)V
+Landroid/animation/AnimatorSet;->startAnimation()V
+Landroid/animation/AnimatorSet;->startWithoutPulsing(Z)V
+Landroid/animation/AnimatorSet;->TAG:Ljava/lang/String;
+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;
+Landroid/animation/BidirectionalTypeConverter$InvertedConverter;->mConverter:Landroid/animation/BidirectionalTypeConverter;
+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
+Landroid/animation/Keyframe;->mHasValue:Z
+Landroid/animation/Keyframe;->mInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/Keyframe;->mValueType:Ljava/lang/Class;
+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;
+Landroid/animation/KeyframeSet;->mEvaluator:Landroid/animation/TypeEvaluator;
+Landroid/animation/KeyframeSet;->mFirstKeyframe:Landroid/animation/Keyframe;
+Landroid/animation/KeyframeSet;->mInterpolator:Landroid/animation/TimeInterpolator;
+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;
+Landroid/animation/LayoutTransition$CleanupCallback;->parent:Landroid/view/ViewGroup;
+Landroid/animation/LayoutTransition;->ACCEL_DECEL_INTERPOLATOR:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
+Landroid/animation/LayoutTransition;->currentAppearingAnimations:Ljava/util/LinkedHashMap;
+Landroid/animation/LayoutTransition;->currentChangingAnimations:Ljava/util/LinkedHashMap;
+Landroid/animation/LayoutTransition;->currentDisappearingAnimations:Ljava/util/LinkedHashMap;
+Landroid/animation/LayoutTransition;->DECEL_INTERPOLATOR:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->defaultChange:Landroid/animation/ObjectAnimator;
+Landroid/animation/LayoutTransition;->defaultChangeIn:Landroid/animation/ObjectAnimator;
+Landroid/animation/LayoutTransition;->defaultChangeOut:Landroid/animation/ObjectAnimator;
+Landroid/animation/LayoutTransition;->defaultFadeIn:Landroid/animation/ObjectAnimator;
+Landroid/animation/LayoutTransition;->defaultFadeOut:Landroid/animation/ObjectAnimator;
+Landroid/animation/LayoutTransition;->DEFAULT_DURATION:J
+Landroid/animation/LayoutTransition;->endChangingAnimations()V
+Landroid/animation/LayoutTransition;->FLAG_APPEARING:I
+Landroid/animation/LayoutTransition;->FLAG_CHANGE_APPEARING:I
+Landroid/animation/LayoutTransition;->FLAG_CHANGE_DISAPPEARING:I
+Landroid/animation/LayoutTransition;->FLAG_CHANGING:I
+Landroid/animation/LayoutTransition;->FLAG_DISAPPEARING:I
+Landroid/animation/LayoutTransition;->hasListeners()Z
+Landroid/animation/LayoutTransition;->layoutChange(Landroid/view/ViewGroup;)V
+Landroid/animation/LayoutTransition;->layoutChangeListenerMap:Ljava/util/HashMap;
+Landroid/animation/LayoutTransition;->mAnimateParentHierarchy:Z
+Landroid/animation/LayoutTransition;->mAppearingAnim:Landroid/animation/Animator;
+Landroid/animation/LayoutTransition;->mAppearingDelay:J
+Landroid/animation/LayoutTransition;->mAppearingDuration:J
+Landroid/animation/LayoutTransition;->mAppearingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->mChangingAnim:Landroid/animation/Animator;
+Landroid/animation/LayoutTransition;->mChangingAppearingAnim:Landroid/animation/Animator;
+Landroid/animation/LayoutTransition;->mChangingAppearingDelay:J
+Landroid/animation/LayoutTransition;->mChangingAppearingDuration:J
+Landroid/animation/LayoutTransition;->mChangingAppearingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->mChangingAppearingStagger:J
+Landroid/animation/LayoutTransition;->mChangingDelay:J
+Landroid/animation/LayoutTransition;->mChangingDisappearingAnim:Landroid/animation/Animator;
+Landroid/animation/LayoutTransition;->mChangingDisappearingDelay:J
+Landroid/animation/LayoutTransition;->mChangingDisappearingDuration:J
+Landroid/animation/LayoutTransition;->mChangingDisappearingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->mChangingDisappearingStagger:J
+Landroid/animation/LayoutTransition;->mChangingDuration:J
+Landroid/animation/LayoutTransition;->mChangingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->mChangingStagger:J
+Landroid/animation/LayoutTransition;->mDisappearingAnim:Landroid/animation/Animator;
+Landroid/animation/LayoutTransition;->mDisappearingDelay:J
+Landroid/animation/LayoutTransition;->mDisappearingDuration:J
+Landroid/animation/LayoutTransition;->mDisappearingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->mListeners:Ljava/util/ArrayList;
+Landroid/animation/LayoutTransition;->mTransitionTypes:I
+Landroid/animation/LayoutTransition;->pendingAnimations:Ljava/util/HashMap;
+Landroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
+Landroid/animation/LayoutTransition;->runAppearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V
+Landroid/animation/LayoutTransition;->runChangeTransition(Landroid/view/ViewGroup;Landroid/view/View;I)V
+Landroid/animation/LayoutTransition;->runDisappearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V
+Landroid/animation/LayoutTransition;->sAppearingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->sChangingAppearingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->sChangingDisappearingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->sChangingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->sDisappearingInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/LayoutTransition;->setupChangeAnimation(Landroid/view/ViewGroup;ILandroid/animation/Animator;JLandroid/view/View;)V
+Landroid/animation/LayoutTransition;->staggerDelay:J
+Landroid/animation/LayoutTransition;->startChangingAnimations()V
+Landroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Landroid/util/Property;)V
+Landroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Ljava/lang/String;)V
+Landroid/animation/ObjectAnimator;->animateValue(F)V
+Landroid/animation/ObjectAnimator;->DBG:Z
+Landroid/animation/ObjectAnimator;->getNameForTrace()Ljava/lang/String;
+Landroid/animation/ObjectAnimator;->hasSameTargetAndProperties(Landroid/animation/Animator;)Z
+Landroid/animation/ObjectAnimator;->initAnimation()V
+Landroid/animation/ObjectAnimator;->isInitialized()Z
+Landroid/animation/ObjectAnimator;->LOG_TAG:Ljava/lang/String;
+Landroid/animation/ObjectAnimator;->mAutoCancel:Z
+Landroid/animation/ObjectAnimator;->mProperty:Landroid/util/Property;
+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;
+Landroid/animation/PathKeyframes;->createXIntKeyframes()Landroid/animation/Keyframes$IntKeyframes;
+Landroid/animation/PathKeyframes;->createYFloatKeyframes()Landroid/animation/Keyframes$FloatKeyframes;
+Landroid/animation/PathKeyframes;->createYIntKeyframes()Landroid/animation/Keyframes$IntKeyframes;
+Landroid/animation/PathKeyframes;->EMPTY_KEYFRAMES:Ljava/util/ArrayList;
+Landroid/animation/PathKeyframes;->FRACTION_OFFSET:I
+Landroid/animation/PathKeyframes;->getKeyframes()Ljava/util/ArrayList;
+Landroid/animation/PathKeyframes;->getType()Ljava/lang/Class;
+Landroid/animation/PathKeyframes;->getValue(F)Ljava/lang/Object;
+Landroid/animation/PathKeyframes;->interpolate(FFF)F
+Landroid/animation/PathKeyframes;->interpolateInRange(FII)Landroid/graphics/PointF;
+Landroid/animation/PathKeyframes;->mKeyframeData:[F
+Landroid/animation/PathKeyframes;->mTempPointF:Landroid/graphics/PointF;
+Landroid/animation/PathKeyframes;->NUM_COMPONENTS:I
+Landroid/animation/PathKeyframes;->pointForIndex(I)Landroid/graphics/PointF;
+Landroid/animation/PathKeyframes;->setEvaluator(Landroid/animation/TypeEvaluator;)V
+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
+Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->mFloatKeyframes:Landroid/animation/Keyframes$FloatKeyframes;
+Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->mFloatProperty:Landroid/util/FloatProperty;
+Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->mJniSetter:J
+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
+Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->mIntKeyframes:Landroid/animation/Keyframes$IntKeyframes;
+Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->mIntProperty:Landroid/util/IntProperty;
+Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->mJniSetter:J
+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;
+Landroid/animation/PropertyValuesHolder$PropertyValues;->propertyName:Ljava/lang/String;
+Landroid/animation/PropertyValuesHolder$PropertyValues;->startValue:Ljava/lang/Object;
+Landroid/animation/PropertyValuesHolder$PropertyValues;->type:Ljava/lang/Class;
+Landroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;)V
+Landroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;)V
+Landroid/animation/PropertyValuesHolder;->calculateValue(F)V
+Landroid/animation/PropertyValuesHolder;->convertBack(Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/animation/PropertyValuesHolder;->DOUBLE_VARIANTS:[Ljava/lang/Class;
+Landroid/animation/PropertyValuesHolder;->FLOAT_VARIANTS:[Ljava/lang/Class;
+Landroid/animation/PropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object;
+Landroid/animation/PropertyValuesHolder;->getMethodName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/animation/PropertyValuesHolder;->getPropertyFunction(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
+Landroid/animation/PropertyValuesHolder;->getPropertyValues(Landroid/animation/PropertyValuesHolder$PropertyValues;)V
+Landroid/animation/PropertyValuesHolder;->getValueType()Ljava/lang/Class;
+Landroid/animation/PropertyValuesHolder;->init()V
+Landroid/animation/PropertyValuesHolder;->INTEGER_VARIANTS:[Ljava/lang/Class;
+Landroid/animation/PropertyValuesHolder;->mAnimatedValue:Ljava/lang/Object;
+Landroid/animation/PropertyValuesHolder;->mConverter:Landroid/animation/TypeConverter;
+Landroid/animation/PropertyValuesHolder;->mEvaluator:Landroid/animation/TypeEvaluator;
+Landroid/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method;
+Landroid/animation/PropertyValuesHolder;->mKeyframes:Landroid/animation/Keyframes;
+Landroid/animation/PropertyValuesHolder;->mProperty:Landroid/util/Property;
+Landroid/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String;
+Landroid/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method;
+Landroid/animation/PropertyValuesHolder;->mTmpValueArray:[Ljava/lang/Object;
+Landroid/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class;
+Landroid/animation/PropertyValuesHolder;->nCallFloatMethod(Ljava/lang/Object;JF)V
+Landroid/animation/PropertyValuesHolder;->nCallFourFloatMethod(Ljava/lang/Object;JFFFF)V
+Landroid/animation/PropertyValuesHolder;->nCallFourIntMethod(Ljava/lang/Object;JIIII)V
+Landroid/animation/PropertyValuesHolder;->nCallIntMethod(Ljava/lang/Object;JI)V
+Landroid/animation/PropertyValuesHolder;->nCallMultipleFloatMethod(Ljava/lang/Object;J[F)V
+Landroid/animation/PropertyValuesHolder;->nCallMultipleIntMethod(Ljava/lang/Object;J[I)V
+Landroid/animation/PropertyValuesHolder;->nCallTwoFloatMethod(Ljava/lang/Object;JFF)V
+Landroid/animation/PropertyValuesHolder;->nCallTwoIntMethod(Ljava/lang/Object;JII)V
+Landroid/animation/PropertyValuesHolder;->nGetFloatMethod(Ljava/lang/Class;Ljava/lang/String;)J
+Landroid/animation/PropertyValuesHolder;->nGetIntMethod(Ljava/lang/Class;Ljava/lang/String;)J
+Landroid/animation/PropertyValuesHolder;->nGetMultipleFloatMethod(Ljava/lang/Class;Ljava/lang/String;I)J
+Landroid/animation/PropertyValuesHolder;->nGetMultipleIntMethod(Ljava/lang/Class;Ljava/lang/String;I)J
+Landroid/animation/PropertyValuesHolder;->ofKeyframes(Landroid/util/Property;Landroid/animation/Keyframes;)Landroid/animation/PropertyValuesHolder;
+Landroid/animation/PropertyValuesHolder;->ofKeyframes(Ljava/lang/String;Landroid/animation/Keyframes;)Landroid/animation/PropertyValuesHolder;
+Landroid/animation/PropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
+Landroid/animation/PropertyValuesHolder;->setupEndValue(Ljava/lang/Object;)V
+Landroid/animation/PropertyValuesHolder;->setupGetter(Ljava/lang/Class;)V
+Landroid/animation/PropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V
+Landroid/animation/PropertyValuesHolder;->setupSetterAndGetter(Ljava/lang/Object;)V
+Landroid/animation/PropertyValuesHolder;->setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
+Landroid/animation/PropertyValuesHolder;->setupStartValue(Ljava/lang/Object;)V
+Landroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landroid/animation/Keyframe;)V
+Landroid/animation/PropertyValuesHolder;->sFloatEvaluator:Landroid/animation/TypeEvaluator;
+Landroid/animation/PropertyValuesHolder;->sGetterPropertyMap:Ljava/util/HashMap;
+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
+Landroid/animation/StateListAnimator$Tuple;->mAnimator:Landroid/animation/Animator;
+Landroid/animation/StateListAnimator$Tuple;->mSpecs:[I
+Landroid/animation/StateListAnimator;->appendChangingConfigurations(I)V
+Landroid/animation/StateListAnimator;->cancel()V
+Landroid/animation/StateListAnimator;->clearTarget()V
+Landroid/animation/StateListAnimator;->createConstantState()Landroid/content/res/ConstantState;
+Landroid/animation/StateListAnimator;->getChangingConfigurations()I
+Landroid/animation/StateListAnimator;->getRunningAnimator()Landroid/animation/Animator;
+Landroid/animation/StateListAnimator;->getTarget()Landroid/view/View;
+Landroid/animation/StateListAnimator;->getTuples()Ljava/util/ArrayList;
+Landroid/animation/StateListAnimator;->initAnimatorListener()V
+Landroid/animation/StateListAnimator;->mAnimatorListener:Landroid/animation/AnimatorListenerAdapter;
+Landroid/animation/StateListAnimator;->mChangingConfigurations:I
+Landroid/animation/StateListAnimator;->mConstantState:Landroid/animation/StateListAnimator$StateListAnimatorConstantState;
+Landroid/animation/StateListAnimator;->mLastMatch:Landroid/animation/StateListAnimator$Tuple;
+Landroid/animation/StateListAnimator;->mRunningAnimator:Landroid/animation/Animator;
+Landroid/animation/StateListAnimator;->mTuples:Ljava/util/ArrayList;
+Landroid/animation/StateListAnimator;->mViewRef:Ljava/lang/ref/WeakReference;
+Landroid/animation/StateListAnimator;->setChangingConfigurations(I)V
+Landroid/animation/StateListAnimator;->setState([I)V
+Landroid/animation/StateListAnimator;->setTarget(Landroid/view/View;)V
+Landroid/animation/StateListAnimator;->start(Landroid/animation/StateListAnimator$Tuple;)V
+Landroid/animation/TimeAnimator;->animateBasedOnTime(J)Z
+Landroid/animation/TimeAnimator;->animateValue(F)V
+Landroid/animation/TimeAnimator;->initAnimation()V
+Landroid/animation/TimeAnimator;->mListener:Landroid/animation/TimeAnimator$TimeListener;
+Landroid/animation/TimeAnimator;->mPreviousTime:J
+Landroid/animation/TypeConverter;->getSourceType()Ljava/lang/Class;
+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
+Landroid/animation/ValueAnimator;->animateBasedOnTime(J)Z
+Landroid/animation/ValueAnimator;->canReverse()Z
+Landroid/animation/ValueAnimator;->clampFraction(F)F
+Landroid/animation/ValueAnimator;->commitAnimationFrame(J)V
+Landroid/animation/ValueAnimator;->DEBUG:Z
+Landroid/animation/ValueAnimator;->doAnimationFrame(J)Z
+Landroid/animation/ValueAnimator;->endAnimation()V
+Landroid/animation/ValueAnimator;->getAnimationHandler()Landroid/animation/AnimationHandler;
+Landroid/animation/ValueAnimator;->getCurrentAnimationsCount()I
+Landroid/animation/ValueAnimator;->getCurrentIteration(F)I
+Landroid/animation/ValueAnimator;->getCurrentIterationFraction(FZ)F
+Landroid/animation/ValueAnimator;->getNameForTrace()Ljava/lang/String;
+Landroid/animation/ValueAnimator;->getScaledDuration()J
+Landroid/animation/ValueAnimator;->initAnimation()V
+Landroid/animation/ValueAnimator;->isInitialized()Z
+Landroid/animation/ValueAnimator;->isPulsingInternal()Z
+Landroid/animation/ValueAnimator;->mAnimationEndRequested:Z
+Landroid/animation/ValueAnimator;->mCurrentFraction:F
+Landroid/animation/ValueAnimator;->mDurationScale:F
+Landroid/animation/ValueAnimator;->mFirstFrameTime:J
+Landroid/animation/ValueAnimator;->mInitialized:Z
+Landroid/animation/ValueAnimator;->mInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/ValueAnimator;->mLastFrameTime:J
+Landroid/animation/ValueAnimator;->mOverallFraction:F
+Landroid/animation/ValueAnimator;->mPauseTime:J
+Landroid/animation/ValueAnimator;->mRepeatCount:I
+Landroid/animation/ValueAnimator;->mRepeatMode:I
+Landroid/animation/ValueAnimator;->mResumed:Z
+Landroid/animation/ValueAnimator;->mReversing:Z
+Landroid/animation/ValueAnimator;->mRunning:Z
+Landroid/animation/ValueAnimator;->mSeekFraction:F
+Landroid/animation/ValueAnimator;->mSelfPulse:Z
+Landroid/animation/ValueAnimator;->mStartDelay:J
+Landroid/animation/ValueAnimator;->mStarted:Z
+Landroid/animation/ValueAnimator;->mStartListenersCalled:Z
+Landroid/animation/ValueAnimator;->mStartTime:J
+Landroid/animation/ValueAnimator;->mStartTimeCommitted:Z
+Landroid/animation/ValueAnimator;->mSuppressSelfPulseRequested:Z
+Landroid/animation/ValueAnimator;->mUpdateListeners:Ljava/util/ArrayList;
+Landroid/animation/ValueAnimator;->mValues:[Landroid/animation/PropertyValuesHolder;
+Landroid/animation/ValueAnimator;->mValuesMap:Ljava/util/HashMap;
+Landroid/animation/ValueAnimator;->notifyStartListeners()V
+Landroid/animation/ValueAnimator;->overrideDurationScale(F)V
+Landroid/animation/ValueAnimator;->pulseAnimationFrame(J)Z
+Landroid/animation/ValueAnimator;->removeAnimationCallback()V
+Landroid/animation/ValueAnimator;->resolveDurationScale()F
+Landroid/animation/ValueAnimator;->sDefaultInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/animation/ValueAnimator;->setAllowRunningAsynchronously(Z)V
+Landroid/animation/ValueAnimator;->shouldPlayBackward(IZ)Z
+Landroid/animation/ValueAnimator;->skipToEndValue(Z)V
+Landroid/animation/ValueAnimator;->start(Z)V
+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;
+Landroid/annotation/SdkConstant$SdkConstantType;->INTENT_CATEGORY:Landroid/annotation/SdkConstant$SdkConstantType;
+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
+Landroid/app/ActionBar;->isTitleTruncated()Z
+Landroid/app/ActionBar;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/app/ActionBar;->onDestroy()V
+Landroid/app/ActionBar;->onKeyShortcut(ILandroid/view/KeyEvent;)Z
+Landroid/app/ActionBar;->onMenuKeyEvent(Landroid/view/KeyEvent;)Z
+Landroid/app/ActionBar;->openOptionsMenu()Z
+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;
+Landroid/app/Activity$NonConfigurationInstances;->fragments:Landroid/app/FragmentManagerNonConfig;
+Landroid/app/Activity$NonConfigurationInstances;->loaders:Landroid/util/ArrayMap;
+Landroid/app/Activity$NonConfigurationInstances;->voiceInteractor:Landroid/app/VoiceInteractor;
+Landroid/app/Activity;->autofillClientAuthenticate(ILandroid/content/IntentSender;Landroid/content/Intent;)V
+Landroid/app/Activity;->autofillClientDispatchUnhandledKey(Landroid/view/View;Landroid/view/KeyEvent;)V
+Landroid/app/Activity;->autofillClientFindViewByAccessibilityIdTraversal(II)Landroid/view/View;
+Landroid/app/Activity;->autofillClientFindViewByAutofillIdTraversal(Landroid/view/autofill/AutofillId;)Landroid/view/View;
+Landroid/app/Activity;->autofillClientFindViewsByAutofillIdTraversal([Landroid/view/autofill/AutofillId;)[Landroid/view/View;
+Landroid/app/Activity;->autofillClientGetActivityToken()Landroid/os/IBinder;
+Landroid/app/Activity;->autofillClientGetComponentName()Landroid/content/ComponentName;
+Landroid/app/Activity;->autofillClientGetNextAutofillId()Landroid/view/autofill/AutofillId;
+Landroid/app/Activity;->autofillClientGetViewVisibility([Landroid/view/autofill/AutofillId;)[Z
+Landroid/app/Activity;->autofillClientIsCompatibilityModeEnabled()Z
+Landroid/app/Activity;->autofillClientIsFillUiShowing()Z
+Landroid/app/Activity;->autofillClientIsVisibleForAutofill()Z
+Landroid/app/Activity;->autofillClientRequestHideFillUi()Z
+Landroid/app/Activity;->autofillClientRequestShowFillUi(Landroid/view/View;IILandroid/graphics/Rect;Landroid/view/autofill/IAutofillWindowPresenter;)Z
+Landroid/app/Activity;->autofillClientResetableStateAvailable()V
+Landroid/app/Activity;->autofillClientRunOnUiThread(Ljava/lang/Runnable;)V
+Landroid/app/Activity;->AUTOFILL_RESET_NEEDED:Ljava/lang/String;
+Landroid/app/Activity;->AUTO_FILL_AUTH_WHO_PREFIX:Ljava/lang/String;
+Landroid/app/Activity;->cancelInputsAndStartExitTransition(Landroid/os/Bundle;)V
+Landroid/app/Activity;->canStartActivityForResult()Z
+Landroid/app/Activity;->createDialog(Ljava/lang/Integer;Landroid/os/Bundle;Landroid/os/Bundle;)Landroid/app/Dialog;
+Landroid/app/Activity;->DEBUG_LIFECYCLE:Z
+Landroid/app/Activity;->deviceSupportsPictureInPictureMode()Z
+Landroid/app/Activity;->dispatchEnterAnimationComplete()V
+Landroid/app/Activity;->dispatchMovedToDisplay(ILandroid/content/res/Configuration;)V
+Landroid/app/Activity;->dispatchMultiWindowModeChanged(ZLandroid/content/res/Configuration;)V
+Landroid/app/Activity;->dispatchPictureInPictureModeChanged(ZLandroid/content/res/Configuration;)V
+Landroid/app/Activity;->dispatchRequestPermissionsResult(ILandroid/content/Intent;)V
+Landroid/app/Activity;->dispatchRequestPermissionsResultToFragment(ILandroid/content/Intent;Landroid/app/Fragment;)V
+Landroid/app/Activity;->DONT_FINISH_TASK_WITH_ACTIVITY:I
+Landroid/app/Activity;->dumpInner(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/Activity;->enableAutofillCompatibilityIfNeeded()V
+Landroid/app/Activity;->ensureSearchManager()V
+Landroid/app/Activity;->enterPictureInPictureModeIfPossible()V
+Landroid/app/Activity;->exitFreeformMode()V
+Landroid/app/Activity;->FINISH_TASK_WITH_ACTIVITY:I
+Landroid/app/Activity;->FINISH_TASK_WITH_ROOT_ACTIVITY:I
+Landroid/app/Activity;->getActivityThread()Landroid/app/ActivityThread;
+Landroid/app/Activity;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+Landroid/app/Activity;->getAutofillManager()Landroid/view/autofill/AutofillManager;
+Landroid/app/Activity;->getDlWarning()Ljava/lang/String;
+Landroid/app/Activity;->getLastNonConfigurationChildInstances()Ljava/util/HashMap;
+Landroid/app/Activity;->getNextAutofillId()I
+Landroid/app/Activity;->HAS_CURENT_PERMISSIONS_REQUEST_KEY:Ljava/lang/String;
+Landroid/app/Activity;->initWindowDecorActionBar()V
+Landroid/app/Activity;->isDisablingEnterExitEventForAutofill()Z
+Landroid/app/Activity;->isOverlayWithDecorCaptionEnabled()Z
+Landroid/app/Activity;->isTopOfTask()Z
+Landroid/app/Activity;->KEYBOARD_SHORTCUTS_RECEIVER_PKG_NAME:Ljava/lang/String;
+Landroid/app/Activity;->LAST_AUTOFILL_ID:Ljava/lang/String;
+Landroid/app/Activity;->LOG_AM_ON_ACTIVITY_RESULT_CALLED:I
+Landroid/app/Activity;->LOG_AM_ON_CREATE_CALLED:I
+Landroid/app/Activity;->LOG_AM_ON_DESTROY_CALLED:I
+Landroid/app/Activity;->LOG_AM_ON_PAUSE_CALLED:I
+Landroid/app/Activity;->LOG_AM_ON_RESTART_CALLED:I
+Landroid/app/Activity;->LOG_AM_ON_RESUME_CALLED:I
+Landroid/app/Activity;->LOG_AM_ON_START_CALLED:I
+Landroid/app/Activity;->LOG_AM_ON_STOP_CALLED:I
+Landroid/app/Activity;->mActionBar:Landroid/app/ActionBar;
+Landroid/app/Activity;->mActionModeTypeStarting:I
+Landroid/app/Activity;->makeVisible()V
+Landroid/app/Activity;->mAutoFillIgnoreFirstResumePause:Z
+Landroid/app/Activity;->mAutofillManager:Landroid/view/autofill/AutofillManager;
+Landroid/app/Activity;->mAutofillPopupWindow:Landroid/view/autofill/AutofillPopupWindow;
+Landroid/app/Activity;->mAutoFillResetNeeded:Z
+Landroid/app/Activity;->mCanEnterPictureInPicture:Z
+Landroid/app/Activity;->mChangeCanvasToTranslucent:Z
+Landroid/app/Activity;->mChangingConfigurations:Z
+Landroid/app/Activity;->mDecor:Landroid/view/View;
+Landroid/app/Activity;->mDefaultKeyMode:I
+Landroid/app/Activity;->mDefaultKeySsb:Landroid/text/SpannableStringBuilder;
+Landroid/app/Activity;->mDoReportFullyDrawn:Z
+Landroid/app/Activity;->mEnableDefaultActionBarUp:Z
+Landroid/app/Activity;->mEnterTransitionListener:Landroid/app/SharedElementCallback;
+Landroid/app/Activity;->mExitTransitionListener:Landroid/app/SharedElementCallback;
+Landroid/app/Activity;->mHasCurrentPermissionsRequest:Z
+Landroid/app/Activity;->mInstanceTracker:Ljava/lang/Object;
+Landroid/app/Activity;->missingDialog(I)Ljava/lang/IllegalArgumentException;
+Landroid/app/Activity;->mLastAutofillId:I
+Landroid/app/Activity;->mManagedCursors:Ljava/util/ArrayList;
+Landroid/app/Activity;->mManagedDialogs:Landroid/util/SparseArray;
+Landroid/app/Activity;->mMenuInflater:Landroid/view/MenuInflater;
+Landroid/app/Activity;->mRestoredFromBundle:Z
+Landroid/app/Activity;->mSearchEvent:Landroid/view/SearchEvent;
+Landroid/app/Activity;->mSearchManager:Landroid/app/SearchManager;
+Landroid/app/Activity;->mStartedActivity:Z
+Landroid/app/Activity;->mTaskDescription:Landroid/app/ActivityManager$TaskDescription;
+Landroid/app/Activity;->mTemporaryPause:Z
+Landroid/app/Activity;->mTitleColor:I
+Landroid/app/Activity;->mTitleReady:Z
+Landroid/app/Activity;->mTranslucentCallback:Landroid/app/Activity$TranslucentConversionListener;
+Landroid/app/Activity;->mUiThread:Ljava/lang/Thread;
+Landroid/app/Activity;->mVisibleFromServer:Z
+Landroid/app/Activity;->onMovedToDisplay(ILandroid/content/res/Configuration;)V
+Landroid/app/Activity;->onNewActivityOptions(Landroid/app/ActivityOptions;)V
+Landroid/app/Activity;->onRetainNonConfigurationChildInstances()Ljava/util/HashMap;
+Landroid/app/Activity;->onTranslucentConversionComplete(Z)V
+Landroid/app/Activity;->onWindowDismissed(ZZ)V
+Landroid/app/Activity;->performCreate(Landroid/os/Bundle;)V
+Landroid/app/Activity;->performDestroy()V
+Landroid/app/Activity;->performNewIntent(Landroid/content/Intent;)V
+Landroid/app/Activity;->performPause()V
+Landroid/app/Activity;->performRestart(ZLjava/lang/String;)V
+Landroid/app/Activity;->performRestoreInstanceState(Landroid/os/Bundle;)V
+Landroid/app/Activity;->performRestoreInstanceState(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V
+Landroid/app/Activity;->performResume(ZLjava/lang/String;)V
+Landroid/app/Activity;->performSaveInstanceState(Landroid/os/Bundle;)V
+Landroid/app/Activity;->performSaveInstanceState(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V
+Landroid/app/Activity;->performStart(Ljava/lang/String;)V
+Landroid/app/Activity;->performStop(ZLjava/lang/String;)V
+Landroid/app/Activity;->performUserLeaving()V
+Landroid/app/Activity;->REQUEST_PERMISSIONS_WHO_PREFIX:Ljava/lang/String;
+Landroid/app/Activity;->restoreHasCurrentPermissionRequest(Landroid/os/Bundle;)V
+Landroid/app/Activity;->restoreManagedDialogs(Landroid/os/Bundle;)V
+Landroid/app/Activity;->retainNonConfigurationInstances()Landroid/app/Activity$NonConfigurationInstances;
+Landroid/app/Activity;->savedDialogArgsKeyFor(I)Ljava/lang/String;
+Landroid/app/Activity;->savedDialogKeyFor(I)Ljava/lang/String;
+Landroid/app/Activity;->SAVED_DIALOGS_TAG:Ljava/lang/String;
+Landroid/app/Activity;->SAVED_DIALOG_ARGS_KEY_PREFIX:Ljava/lang/String;
+Landroid/app/Activity;->SAVED_DIALOG_IDS_KEY:Ljava/lang/String;
+Landroid/app/Activity;->SAVED_DIALOG_KEY_PREFIX:Ljava/lang/String;
+Landroid/app/Activity;->setOverlayWithDecorCaptionEnabled(Z)V
+Landroid/app/Activity;->setVoiceInteractor(Lcom/android/internal/app/IVoiceInteractor;)V
+Landroid/app/Activity;->startActivityAsCaller(Landroid/content/Intent;Landroid/os/Bundle;ZI)V
+Landroid/app/Activity;->startActivityAsUser(Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/app/Activity;->startActivityAsUserFromFragment(Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/app/Activity;->startActivityForResultAsUser(Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/app/Activity;->startActivityForResultAsUser(Landroid/content/Intent;Ljava/lang/String;ILandroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/app/Activity;->startIntentSenderForResultInner(Landroid/content/IntentSender;Ljava/lang/String;ILandroid/content/Intent;IILandroid/os/Bundle;)V
+Landroid/app/Activity;->startIntentSenderFromChildFragment(Landroid/app/Fragment;Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V
+Landroid/app/Activity;->storeHasCurrentPermissionRequest(Landroid/os/Bundle;)V
+Landroid/app/Activity;->TAG:Ljava/lang/String;
+Landroid/app/Activity;->transferSpringboardActivityOptions(Landroid/os/Bundle;)Landroid/os/Bundle;
+Landroid/app/Activity;->WINDOW_HIERARCHY_TAG:Ljava/lang/String;
+Landroid/app/Activity;->writeEventLog(ILjava/lang/String;)V
+Landroid/app/ActivityGroup;->dispatchActivityResult(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;)V
+Landroid/app/ActivityGroup;->onRetainNonConfigurationChildInstances()Ljava/util/HashMap;
+Landroid/app/ActivityGroup;->PARENT_NON_CONFIG_INSTANCE_KEY:Ljava/lang/String;
+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
+Landroid/app/ActivityManager$RunningAppProcessInfo;->importanceToProcState(I)I
+Landroid/app/ActivityManager$RunningAppProcessInfo;->IMPORTANCE_CANT_SAVE_STATE_PRE_26:I
+Landroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportanceForClient(ILandroid/content/Context;)I
+Landroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportanceForTargetSdk(II)I
+Landroid/app/ActivityManager$RunningServiceInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/app/ActivityManager$RunningTaskInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/app/ActivityManager$RunningTaskInfo;->configuration:Landroid/content/res/Configuration;
+Landroid/app/ActivityManager$RunningTaskInfo;->lastActiveTime:J
+Landroid/app/ActivityManager$RunningTaskInfo;->resizeMode:I
+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;
+Landroid/app/ActivityManager$StackInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/ActivityManager$StackInfo;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;)V
+Landroid/app/ActivityManager$TaskDescription;-><init>(Ljava/lang/String;Landroid/graphics/Bitmap;ILjava/lang/String;IIII)V
+Landroid/app/ActivityManager$TaskDescription;->ATTR_TASKDESCRIPTIONCOLOR_BACKGROUND:Ljava/lang/String;
+Landroid/app/ActivityManager$TaskDescription;->ATTR_TASKDESCRIPTIONCOLOR_PRIMARY:Ljava/lang/String;
+Landroid/app/ActivityManager$TaskDescription;->ATTR_TASKDESCRIPTIONICON_FILENAME:Ljava/lang/String;
+Landroid/app/ActivityManager$TaskDescription;->ATTR_TASKDESCRIPTIONICON_RESOURCE:Ljava/lang/String;
+Landroid/app/ActivityManager$TaskDescription;->ATTR_TASKDESCRIPTIONLABEL:Ljava/lang/String;
+Landroid/app/ActivityManager$TaskDescription;->ATTR_TASKDESCRIPTION_PREFIX:Ljava/lang/String;
+Landroid/app/ActivityManager$TaskDescription;->copyFrom(Landroid/app/ActivityManager$TaskDescription;)V
+Landroid/app/ActivityManager$TaskDescription;->copyFromPreserveHiddenFields(Landroid/app/ActivityManager$TaskDescription;)V
+Landroid/app/ActivityManager$TaskDescription;->getNavigationBarColor()I
+Landroid/app/ActivityManager$TaskDescription;->getStatusBarColor()I
+Landroid/app/ActivityManager$TaskDescription;->mColorBackground:I
+Landroid/app/ActivityManager$TaskDescription;->mColorPrimary:I
+Landroid/app/ActivityManager$TaskDescription;->mIcon:Landroid/graphics/Bitmap;
+Landroid/app/ActivityManager$TaskDescription;->mIconFilename:Ljava/lang/String;
+Landroid/app/ActivityManager$TaskDescription;->mIconRes:I
+Landroid/app/ActivityManager$TaskDescription;->mLabel:Ljava/lang/String;
+Landroid/app/ActivityManager$TaskDescription;->mNavigationBarColor:I
+Landroid/app/ActivityManager$TaskDescription;->mStatusBarColor:I
+Landroid/app/ActivityManager$TaskDescription;->restoreFromXml(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/ActivityManager$TaskDescription;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+Landroid/app/ActivityManager$TaskDescription;->setBackgroundColor(I)V
+Landroid/app/ActivityManager$TaskDescription;->setIcon(I)V
+Landroid/app/ActivityManager$TaskDescription;->setIconFilename(Ljava/lang/String;)V
+Landroid/app/ActivityManager$TaskDescription;->setLabel(Ljava/lang/String;)V
+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;
+Landroid/app/ActivityManager$TaskSnapshot;->getSystemUiVisibility()I
+Landroid/app/ActivityManager$TaskSnapshot;->getWindowingMode()I
+Landroid/app/ActivityManager$TaskSnapshot;->isTranslucent()Z
+Landroid/app/ActivityManager$TaskSnapshot;->mContentInsets:Landroid/graphics/Rect;
+Landroid/app/ActivityManager$TaskSnapshot;->mIsRealSnapshot:Z
+Landroid/app/ActivityManager$TaskSnapshot;->mIsTranslucent:Z
+Landroid/app/ActivityManager$TaskSnapshot;->mOrientation:I
+Landroid/app/ActivityManager$TaskSnapshot;->mReducedResolution:Z
+Landroid/app/ActivityManager$TaskSnapshot;->mScale:F
+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;
+Landroid/app/ActivityManager$UidObserver;->onUidActive(I)V
+Landroid/app/ActivityManager$UidObserver;->onUidCachedChanged(IZ)V
+Landroid/app/ActivityManager$UidObserver;->onUidGone(IZ)V
+Landroid/app/ActivityManager$UidObserver;->onUidIdle(IZ)V
+Landroid/app/ActivityManager$UidObserver;->onUidStateChanged(IIJ)V
+Landroid/app/ActivityManager;->APP_START_MODE_DELAYED:I
+Landroid/app/ActivityManager;->APP_START_MODE_DELAYED_RIGID:I
+Landroid/app/ActivityManager;->APP_START_MODE_DISABLED:I
+Landroid/app/ActivityManager;->APP_START_MODE_NORMAL:I
+Landroid/app/ActivityManager;->ASSIST_CONTEXT_AUTOFILL:I
+Landroid/app/ActivityManager;->ASSIST_CONTEXT_BASIC:I
+Landroid/app/ActivityManager;->ASSIST_CONTEXT_FULL:I
+Landroid/app/ActivityManager;->broadcastStickyIntent(Landroid/content/Intent;I)V
+Landroid/app/ActivityManager;->broadcastStickyIntent(Landroid/content/Intent;II)V
+Landroid/app/ActivityManager;->BROADCAST_FAILED_USER_STOPPED:I
+Landroid/app/ActivityManager;->BROADCAST_STICKY_CANT_HAVE_PERMISSION:I
+Landroid/app/ActivityManager;->BROADCAST_SUCCESS:I
+Landroid/app/ActivityManager;->BUGREPORT_OPTION_FULL:I
+Landroid/app/ActivityManager;->BUGREPORT_OPTION_INTERACTIVE:I
+Landroid/app/ActivityManager;->BUGREPORT_OPTION_REMOTE:I
+Landroid/app/ActivityManager;->BUGREPORT_OPTION_TELEPHONY:I
+Landroid/app/ActivityManager;->BUGREPORT_OPTION_WEAR:I
+Landroid/app/ActivityManager;->BUGREPORT_OPTION_WIFI:I
+Landroid/app/ActivityManager;->checkUidPermission(Ljava/lang/String;I)I
+Landroid/app/ActivityManager;->clearGrantedUriPermissions(Ljava/lang/String;)V
+Landroid/app/ActivityManager;->COMPAT_MODE_ALWAYS:I
+Landroid/app/ActivityManager;->COMPAT_MODE_DISABLED:I
+Landroid/app/ActivityManager;->COMPAT_MODE_ENABLED:I
+Landroid/app/ActivityManager;->COMPAT_MODE_NEVER:I
+Landroid/app/ActivityManager;->COMPAT_MODE_TOGGLE:I
+Landroid/app/ActivityManager;->COMPAT_MODE_UNKNOWN:I
+Landroid/app/ActivityManager;->DEVELOPMENT_FORCE_LOW_RAM:Z
+Landroid/app/ActivityManager;->dumpPackageStateStatic(Ljava/io/FileDescriptor;Ljava/lang/String;)V
+Landroid/app/ActivityManager;->dumpService(Ljava/io/PrintWriter;Ljava/io/FileDescriptor;Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/ActivityManager;->ensureAppTaskThumbnailSizeLocked()V
+Landroid/app/ActivityManager;->FIRST_START_FATAL_ERROR_CODE:I
+Landroid/app/ActivityManager;->FIRST_START_NON_FATAL_ERROR_CODE:I
+Landroid/app/ActivityManager;->FIRST_START_SUCCESS_CODE:I
+Landroid/app/ActivityManager;->FLAG_AND_LOCKED:I
+Landroid/app/ActivityManager;->FLAG_AND_UNLOCKED:I
+Landroid/app/ActivityManager;->FLAG_AND_UNLOCKING_OR_UNLOCKED:I
+Landroid/app/ActivityManager;->FLAG_OR_STOPPED:I
+Landroid/app/ActivityManager;->getDefaultAppRecentsLimitStatic()I
+Landroid/app/ActivityManager;->getFrontActivityScreenCompatMode()I
+Landroid/app/ActivityManager;->getGrantedUriPermissions(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/ActivityManager;->getLauncherLargeIconSizeInner(Landroid/content/Context;)I
+Landroid/app/ActivityManager;->getMaxAppRecentsLimitStatic()I
+Landroid/app/ActivityManager;->getPackageAskScreenCompat(Ljava/lang/String;)Z
+Landroid/app/ActivityManager;->getPackageScreenCompatMode(Ljava/lang/String;)I
+Landroid/app/ActivityManager;->getRunningExternalApplications()Ljava/util/List;
+Landroid/app/ActivityManager;->gMaxRecentTasks:I
+Landroid/app/ActivityManager;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
+Landroid/app/ActivityManager;->INTENT_SENDER_ACTIVITY_RESULT:I
+Landroid/app/ActivityManager;->INTENT_SENDER_BROADCAST:I
+Landroid/app/ActivityManager;->INTENT_SENDER_FOREGROUND_SERVICE:I
+Landroid/app/ActivityManager;->INTENT_SENDER_SERVICE:I
+Landroid/app/ActivityManager;->isProcStateBackground(I)Z
+Landroid/app/ActivityManager;->isSmallBatteryDevice()Z
+Landroid/app/ActivityManager;->isStartResultFatalError(I)Z
+Landroid/app/ActivityManager;->isStartResultSuccessful(I)Z
+Landroid/app/ActivityManager;->isSystemReady()Z
+Landroid/app/ActivityManager;->isVrModePackageEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/ActivityManager;->LAST_START_FATAL_ERROR_CODE:I
+Landroid/app/ActivityManager;->LAST_START_NON_FATAL_ERROR_CODE:I
+Landroid/app/ActivityManager;->LAST_START_SUCCESS_CODE:I
+Landroid/app/ActivityManager;->logoutCurrentUser()V
+Landroid/app/ActivityManager;->mAppTaskThumbnailSize:Landroid/graphics/Point;
+Landroid/app/ActivityManager;->MAX_PROCESS_STATE:I
+Landroid/app/ActivityManager;->mImportanceListeners:Landroid/util/ArrayMap;
+Landroid/app/ActivityManager;->MIN_PROCESS_STATE:I
+Landroid/app/ActivityManager;->noteAlarmFinish(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
+Landroid/app/ActivityManager;->noteAlarmStart(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
+Landroid/app/ActivityManager;->noteWakeupAlarm(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
+Landroid/app/ActivityManager;->processStateAmToProto(I)I
+Landroid/app/ActivityManager;->PROCESS_STATE_BACKUP:I
+Landroid/app/ActivityManager;->PROCESS_STATE_CACHED_ACTIVITY_CLIENT:I
+Landroid/app/ActivityManager;->PROCESS_STATE_CACHED_EMPTY:I
+Landroid/app/ActivityManager;->PROCESS_STATE_CACHED_RECENT:I
+Landroid/app/ActivityManager;->PROCESS_STATE_HEAVY_WEIGHT:I
+Landroid/app/ActivityManager;->PROCESS_STATE_IMPORTANT_FOREGROUND:I
+Landroid/app/ActivityManager;->PROCESS_STATE_LAST_ACTIVITY:I
+Landroid/app/ActivityManager;->PROCESS_STATE_NONEXISTENT:I
+Landroid/app/ActivityManager;->PROCESS_STATE_PERSISTENT:I
+Landroid/app/ActivityManager;->PROCESS_STATE_PERSISTENT_UI:I
+Landroid/app/ActivityManager;->PROCESS_STATE_TOP_SLEEPING:I
+Landroid/app/ActivityManager;->PROCESS_STATE_TRANSIENT_BACKGROUND:I
+Landroid/app/ActivityManager;->PROCESS_STATE_UNKNOWN:I
+Landroid/app/ActivityManager;->RESIZE_MODE_FORCED:I
+Landroid/app/ActivityManager;->RESIZE_MODE_PRESERVE_WINDOW:I
+Landroid/app/ActivityManager;->RESIZE_MODE_SYSTEM:I
+Landroid/app/ActivityManager;->RESIZE_MODE_SYSTEM_SCREEN_ROTATION:I
+Landroid/app/ActivityManager;->RESIZE_MODE_USER:I
+Landroid/app/ActivityManager;->RESIZE_MODE_USER_FORCED:I
+Landroid/app/ActivityManager;->setFrontActivityScreenCompatMode(I)V
+Landroid/app/ActivityManager;->setPackageAskScreenCompat(Ljava/lang/String;Z)V
+Landroid/app/ActivityManager;->setPackageScreenCompatMode(Ljava/lang/String;I)V
+Landroid/app/ActivityManager;->setProcessMemoryTrimLevel(Ljava/lang/String;II)Z
+Landroid/app/ActivityManager;->sSystemReady:Z
+Landroid/app/ActivityManager;->START_ABORTED:I
+Landroid/app/ActivityManager;->START_ASSISTANT_HIDDEN_SESSION:I
+Landroid/app/ActivityManager;->START_ASSISTANT_NOT_ACTIVE_SESSION:I
+Landroid/app/ActivityManager;->START_CANCELED:I
+Landroid/app/ActivityManager;->START_CLASS_NOT_FOUND:I
+Landroid/app/ActivityManager;->START_DELIVERED_TO_TOP:I
+Landroid/app/ActivityManager;->START_FLAG_DEBUG:I
+Landroid/app/ActivityManager;->START_FLAG_NATIVE_DEBUGGING:I
+Landroid/app/ActivityManager;->START_FLAG_ONLY_IF_NEEDED:I
+Landroid/app/ActivityManager;->START_FLAG_TRACK_ALLOCATION:I
+Landroid/app/ActivityManager;->START_FORWARD_AND_REQUEST_CONFLICT:I
+Landroid/app/ActivityManager;->START_INTENT_NOT_RESOLVED:I
+Landroid/app/ActivityManager;->START_NOT_ACTIVITY:I
+Landroid/app/ActivityManager;->START_NOT_CURRENT_USER_ACTIVITY:I
+Landroid/app/ActivityManager;->START_NOT_VOICE_COMPATIBLE:I
+Landroid/app/ActivityManager;->START_PERMISSION_DENIED:I
+Landroid/app/ActivityManager;->START_RETURN_INTENT_TO_CALLER:I
+Landroid/app/ActivityManager;->START_RETURN_LOCK_TASK_MODE_VIOLATION:I
+Landroid/app/ActivityManager;->START_SUCCESS:I
+Landroid/app/ActivityManager;->START_SWITCHES_CANCELED:I
+Landroid/app/ActivityManager;->START_TASK_TO_FRONT:I
+Landroid/app/ActivityManager;->START_VOICE_HIDDEN_SESSION:I
+Landroid/app/ActivityManager;->START_VOICE_NOT_ACTIVE_SESSION:I
+Landroid/app/ActivityManager;->staticGetLargeMemoryClass()I
+Landroid/app/ActivityManager;->TAG:Ljava/lang/String;
+Landroid/app/ActivityManager;->UID_OBSERVER_ACTIVE:I
+Landroid/app/ActivityManager;->UID_OBSERVER_CACHED:I
+Landroid/app/ActivityManager;->UID_OBSERVER_GONE:I
+Landroid/app/ActivityManager;->UID_OBSERVER_IDLE:I
+Landroid/app/ActivityManager;->UID_OBSERVER_PROCSTATE:I
+Landroid/app/ActivityManager;->USER_OP_ERROR_IS_SYSTEM:I
+Landroid/app/ActivityManager;->USER_OP_ERROR_RELATED_USERS_CANNOT_STOP:I
+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
+Landroid/app/ActivityManagerInternal;->APP_TRANSITION_SNAPSHOT:I
+Landroid/app/ActivityManagerInternal;->APP_TRANSITION_SPLASH_SCREEN:I
+Landroid/app/ActivityManagerInternal;->APP_TRANSITION_TIMEOUT:I
+Landroid/app/ActivityManagerInternal;->APP_TRANSITION_WINDOWS_DRAWN:I
+Landroid/app/ActivityManagerInternal;->ASSIST_KEY_CONTENT:Ljava/lang/String;
+Landroid/app/ActivityManagerInternal;->ASSIST_KEY_DATA:Ljava/lang/String;
+Landroid/app/ActivityManagerInternal;->ASSIST_KEY_RECEIVER_EXTRAS:Ljava/lang/String;
+Landroid/app/ActivityManagerInternal;->ASSIST_KEY_STRUCTURE:Ljava/lang/String;
+Landroid/app/ActivityManagerInternal;->cancelRecentsAnimation(Z)V
+Landroid/app/ActivityManagerInternal;->canStartMoreUsers()Z
+Landroid/app/ActivityManagerInternal;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/app/ActivityManagerInternal;->clearSavedANRState()V
+Landroid/app/ActivityManagerInternal;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/ActivityManagerInternal;->getHomeActivityForUser(I)Landroid/content/ComponentName;
+Landroid/app/ActivityManagerInternal;->getMaxRunningUsers()I
+Landroid/app/ActivityManagerInternal;->getMemoryStateForProcesses()Ljava/util/List;
+Landroid/app/ActivityManagerInternal;->getTopVisibleActivities()Ljava/util/List;
+Landroid/app/ActivityManagerInternal;->getUidProcessState(I)I
+Landroid/app/ActivityManagerInternal;->grantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;I)V
+Landroid/app/ActivityManagerInternal;->hasRunningActivity(ILjava/lang/String;)Z
+Landroid/app/ActivityManagerInternal;->isCallerRecents(I)Z
+Landroid/app/ActivityManagerInternal;->isRecentsComponentHomeActivity(I)Z
+Landroid/app/ActivityManagerInternal;->isRuntimeRestarted()Z
+Landroid/app/ActivityManagerInternal;->isSystemReady()Z
+Landroid/app/ActivityManagerInternal;->isUidActive(I)Z
+Landroid/app/ActivityManagerInternal;->killForegroundAppsForUser(I)V
+Landroid/app/ActivityManagerInternal;->notifyActiveVoiceInteractionServiceChanged(Landroid/content/ComponentName;)V
+Landroid/app/ActivityManagerInternal;->notifyAppTransitionCancelled()V
+Landroid/app/ActivityManagerInternal;->notifyAppTransitionFinished()V
+Landroid/app/ActivityManagerInternal;->notifyAppTransitionStarting(Landroid/util/SparseIntArray;J)V
+Landroid/app/ActivityManagerInternal;->notifyDockedStackMinimizedChanged(Z)V
+Landroid/app/ActivityManagerInternal;->notifyKeyguardFlagsChanged(Ljava/lang/Runnable;)V
+Landroid/app/ActivityManagerInternal;->notifyKeyguardTrustedChanged()V
+Landroid/app/ActivityManagerInternal;->notifyNetworkPolicyRulesUpdated(IJ)V
+Landroid/app/ActivityManagerInternal;->onLocalVoiceInteractionStarted(Landroid/os/IBinder;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;)V
+Landroid/app/ActivityManagerInternal;->onUserRemoved(I)V
+Landroid/app/ActivityManagerInternal;->onWakefulnessChanged(I)V
+Landroid/app/ActivityManagerInternal;->registerScreenObserver(Landroid/app/ActivityManagerInternal$ScreenObserver;)V
+Landroid/app/ActivityManagerInternal;->saveANRState(Ljava/lang/String;)V
+Landroid/app/ActivityManagerInternal;->setAllowAppSwitches(Ljava/lang/String;II)V
+Landroid/app/ActivityManagerInternal;->setDeviceIdleWhitelist([I[I)V
+Landroid/app/ActivityManagerInternal;->setFocusedActivity(Landroid/os/IBinder;)V
+Landroid/app/ActivityManagerInternal;->setHasOverlayUi(IZ)V
+Landroid/app/ActivityManagerInternal;->setPendingIntentWhitelistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;J)V
+Landroid/app/ActivityManagerInternal;->setRunningRemoteAnimation(IZ)V
+Landroid/app/ActivityManagerInternal;->setSwitchingFromSystemUserMessage(Ljava/lang/String;)V
+Landroid/app/ActivityManagerInternal;->setSwitchingToSystemUserMessage(Ljava/lang/String;)V
+Landroid/app/ActivityManagerInternal;->setVr2dDisplayId(I)V
+Landroid/app/ActivityManagerInternal;->startActivitiesAsPackage(Ljava/lang/String;I[Landroid/content/Intent;Landroid/os/Bundle;)I
+Landroid/app/ActivityManagerInternal;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Landroid/os/Bundle;I)I
+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
+Landroid/app/ActivityOptions$HideWindowListener;->mExit:Landroid/app/ExitTransitionCoordinator;
+Landroid/app/ActivityOptions$HideWindowListener;->mSharedElementHidden:Z
+Landroid/app/ActivityOptions$HideWindowListener;->mSharedElements:Ljava/util/ArrayList;
+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
+Landroid/app/ActivityOptions;->abort()V
+Landroid/app/ActivityOptions;->abort(Landroid/app/ActivityOptions;)V
+Landroid/app/ActivityOptions;->ANIM_CLIP_REVEAL:I
+Landroid/app/ActivityOptions;->ANIM_CUSTOM:I
+Landroid/app/ActivityOptions;->ANIM_CUSTOM_IN_PLACE:I
+Landroid/app/ActivityOptions;->ANIM_DEFAULT:I
+Landroid/app/ActivityOptions;->ANIM_LAUNCH_TASK_BEHIND:I
+Landroid/app/ActivityOptions;->ANIM_NONE:I
+Landroid/app/ActivityOptions;->ANIM_OPEN_CROSS_PROFILE_APPS:I
+Landroid/app/ActivityOptions;->ANIM_REMOTE_ANIMATION:I
+Landroid/app/ActivityOptions;->ANIM_SCALE_UP:I
+Landroid/app/ActivityOptions;->ANIM_SCENE_TRANSITION:I
+Landroid/app/ActivityOptions;->ANIM_THUMBNAIL_ASPECT_SCALE_DOWN:I
+Landroid/app/ActivityOptions;->ANIM_THUMBNAIL_ASPECT_SCALE_UP:I
+Landroid/app/ActivityOptions;->ANIM_THUMBNAIL_SCALE_DOWN:I
+Landroid/app/ActivityOptions;->ANIM_THUMBNAIL_SCALE_UP:I
+Landroid/app/ActivityOptions;->canTaskOverlayResume()Z
+Landroid/app/ActivityOptions;->disallowEnterPictureInPictureWhileLaunching()Z
+Landroid/app/ActivityOptions;->forTargetActivity()Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->fromBundle(Landroid/os/Bundle;)Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->getAnimationFinishedListener()Landroid/os/IRemoteCallback;
+Landroid/app/ActivityOptions;->getAnimationType()I
+Landroid/app/ActivityOptions;->getAnimSpecs()[Landroid/view/AppTransitionAnimationSpec;
+Landroid/app/ActivityOptions;->getAvoidMoveToFront()Z
+Landroid/app/ActivityOptions;->getCustomEnterResId()I
+Landroid/app/ActivityOptions;->getCustomExitResId()I
+Landroid/app/ActivityOptions;->getCustomInPlaceResId()I
+Landroid/app/ActivityOptions;->getExitCoordinatorKey()I
+Landroid/app/ActivityOptions;->getHeight()I
+Landroid/app/ActivityOptions;->getLaunchActivityType()I
+Landroid/app/ActivityOptions;->getLaunchTaskBehind()Z
+Landroid/app/ActivityOptions;->getLaunchTaskId()I
+Landroid/app/ActivityOptions;->getLaunchWindowingMode()I
+Landroid/app/ActivityOptions;->getOnAnimationStartListener()Landroid/os/IRemoteCallback;
+Landroid/app/ActivityOptions;->getPackageName()Ljava/lang/String;
+Landroid/app/ActivityOptions;->getRemoteAnimationAdapter()Landroid/view/RemoteAnimationAdapter;
+Landroid/app/ActivityOptions;->getResultCode()I
+Landroid/app/ActivityOptions;->getResultData()Landroid/content/Intent;
+Landroid/app/ActivityOptions;->getResultReceiver()Landroid/os/ResultReceiver;
+Landroid/app/ActivityOptions;->getRotationAnimationHint()I
+Landroid/app/ActivityOptions;->getSharedElementNames()Ljava/util/ArrayList;
+Landroid/app/ActivityOptions;->getSpecsFuture()Landroid/view/IAppTransitionAnimationSpecsFuture;
+Landroid/app/ActivityOptions;->getSplitScreenCreateMode()I
+Landroid/app/ActivityOptions;->getStartX()I
+Landroid/app/ActivityOptions;->getStartY()I
+Landroid/app/ActivityOptions;->getTaskOverlay()Z
+Landroid/app/ActivityOptions;->getThumbnail()Landroid/graphics/GraphicBuffer;
+Landroid/app/ActivityOptions;->getUsageTimeReport()Landroid/app/PendingIntent;
+Landroid/app/ActivityOptions;->getWidth()I
+Landroid/app/ActivityOptions;->isCrossTask()Z
+Landroid/app/ActivityOptions;->isReturning()Z
+Landroid/app/ActivityOptions;->KEY_ANIMATION_FINISHED_LISTENER:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_ENTER_RES_ID:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_EXIT_RES_ID:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_HEIGHT:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_IN_PLACE_RES_ID:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_SPECS:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_START_LISTENER:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_START_X:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_START_Y:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_THUMBNAIL:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_TYPE:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ANIM_WIDTH:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_AVOID_MOVE_TO_FRONT:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_DISALLOW_ENTER_PICTURE_IN_PICTURE_WHILE_LAUNCHING:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_EXIT_COORDINATOR_INDEX:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_INSTANT_APP_VERIFICATION_BUNDLE:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_LAUNCH_ACTIVITY_TYPE:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_LAUNCH_BOUNDS:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_LAUNCH_DISPLAY_ID:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_LAUNCH_TASK_ID:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_LAUNCH_WINDOWING_MODE:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_LOCK_TASK_MODE:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_PACKAGE_NAME:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_REMOTE_ANIMATION_ADAPTER:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_RESULT_CODE:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_RESULT_DATA:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_ROTATION_ANIMATION_HINT:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_SPECS_FUTURE:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_SPLIT_SCREEN_CREATE_MODE:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_TASK_OVERLAY:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_TASK_OVERLAY_CAN_RESUME:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_TRANSITION_COMPLETE_LISTENER:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_TRANSITION_IS_RETURNING:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_TRANSITION_SHARED_ELEMENTS:Ljava/lang/String;
+Landroid/app/ActivityOptions;->KEY_USAGE_TIME_REPORT:Ljava/lang/String;
+Landroid/app/ActivityOptions;->makeAspectScaledThumbnailAnimation(Landroid/view/View;Landroid/graphics/Bitmap;IIIILandroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;Z)Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->makeCustomInPlaceAnimation(Landroid/content/Context;I)Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->makeOpenCrossProfileAppsAnimation()Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->makeSceneTransitionAnimation(Landroid/app/Activity;Landroid/app/ExitTransitionCoordinator;Ljava/util/ArrayList;ILandroid/content/Intent;)Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->makeSceneTransitionAnimation(Landroid/app/Activity;Landroid/view/Window;Landroid/app/ActivityOptions;Landroid/app/SharedElementCallback;[Landroid/util/Pair;)Landroid/app/ExitTransitionCoordinator;
+Landroid/app/ActivityOptions;->makeThumbnailAnimation(Landroid/view/View;Landroid/graphics/Bitmap;IILandroid/app/ActivityOptions$OnAnimationStartedListener;Z)Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->makeThumbnailAspectScaleDownAnimation(Landroid/view/View;Landroid/graphics/Bitmap;IIIILandroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;)Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->makeThumbnailAspectScaleDownAnimation(Landroid/view/View;[Landroid/view/AppTransitionAnimationSpec;Landroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;Landroid/app/ActivityOptions$OnAnimationFinishedListener;)Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->makeThumbnailScaleUpAnimation(Landroid/view/View;Landroid/graphics/Bitmap;IILandroid/app/ActivityOptions$OnAnimationStartedListener;)Landroid/app/ActivityOptions;
+Landroid/app/ActivityOptions;->mAnimationFinishedListener:Landroid/os/IRemoteCallback;
+Landroid/app/ActivityOptions;->mAnimationStartedListener:Landroid/os/IRemoteCallback;
+Landroid/app/ActivityOptions;->mAnimationType:I
+Landroid/app/ActivityOptions;->mAnimSpecs:[Landroid/view/AppTransitionAnimationSpec;
+Landroid/app/ActivityOptions;->mAppVerificationBundle:Landroid/os/Bundle;
+Landroid/app/ActivityOptions;->mAvoidMoveToFront:Z
+Landroid/app/ActivityOptions;->mCustomEnterResId:I
+Landroid/app/ActivityOptions;->mCustomExitResId:I
+Landroid/app/ActivityOptions;->mCustomInPlaceResId:I
+Landroid/app/ActivityOptions;->mDisallowEnterPictureInPictureWhileLaunching:Z
+Landroid/app/ActivityOptions;->mExitCoordinatorIndex:I
+Landroid/app/ActivityOptions;->mHeight:I
+Landroid/app/ActivityOptions;->mIsReturning:Z
+Landroid/app/ActivityOptions;->mLaunchActivityType:I
+Landroid/app/ActivityOptions;->mLaunchBounds:Landroid/graphics/Rect;
+Landroid/app/ActivityOptions;->mLaunchDisplayId:I
+Landroid/app/ActivityOptions;->mLaunchTaskId:I
+Landroid/app/ActivityOptions;->mLaunchWindowingMode:I
+Landroid/app/ActivityOptions;->mLockTaskMode:Z
+Landroid/app/ActivityOptions;->mPackageName:Ljava/lang/String;
+Landroid/app/ActivityOptions;->mRemoteAnimationAdapter:Landroid/view/RemoteAnimationAdapter;
+Landroid/app/ActivityOptions;->mResultCode:I
+Landroid/app/ActivityOptions;->mResultData:Landroid/content/Intent;
+Landroid/app/ActivityOptions;->mRotationAnimationHint:I
+Landroid/app/ActivityOptions;->mSharedElementNames:Ljava/util/ArrayList;
+Landroid/app/ActivityOptions;->mSpecsFuture:Landroid/view/IAppTransitionAnimationSpecsFuture;
+Landroid/app/ActivityOptions;->mSplitScreenCreateMode:I
+Landroid/app/ActivityOptions;->mStartX:I
+Landroid/app/ActivityOptions;->mStartY:I
+Landroid/app/ActivityOptions;->mTaskOverlay:Z
+Landroid/app/ActivityOptions;->mTaskOverlayCanResume:Z
+Landroid/app/ActivityOptions;->mThumbnail:Landroid/graphics/Bitmap;
+Landroid/app/ActivityOptions;->mTransitionReceiver:Landroid/os/ResultReceiver;
+Landroid/app/ActivityOptions;->mUsageTimeReport:Landroid/app/PendingIntent;
+Landroid/app/ActivityOptions;->mWidth:I
+Landroid/app/ActivityOptions;->popAppVerificationBundle()Landroid/os/Bundle;
+Landroid/app/ActivityOptions;->setAvoidMoveToFront()V
+Landroid/app/ActivityOptions;->setDisallowEnterPictureInPictureWhileLaunching(Z)V
+Landroid/app/ActivityOptions;->setOnAnimationFinishedListener(Landroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationFinishedListener;)V
+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;
+Landroid/app/ActivityThread$ActivityClientRecord;->embeddedID:Ljava/lang/String;
+Landroid/app/ActivityThread$ActivityClientRecord;->getLifecycleState()I
+Landroid/app/ActivityThread$ActivityClientRecord;->getStateString()Ljava/lang/String;
+Landroid/app/ActivityThread$ActivityClientRecord;->hideForNow:Z
+Landroid/app/ActivityThread$ActivityClientRecord;->ident:I
+Landroid/app/ActivityThread$ActivityClientRecord;->init()V
+Landroid/app/ActivityThread$ActivityClientRecord;->isForward:Z
+Landroid/app/ActivityThread$ActivityClientRecord;->isPersistable()Z
+Landroid/app/ActivityThread$ActivityClientRecord;->isPreHoneycomb()Z
+Landroid/app/ActivityThread$ActivityClientRecord;->isPreP()Z
+Landroid/app/ActivityThread$ActivityClientRecord;->isVisibleFromServer()Z
+Landroid/app/ActivityThread$ActivityClientRecord;->lastNonConfigurationInstances:Landroid/app/Activity$NonConfigurationInstances;
+Landroid/app/ActivityThread$ActivityClientRecord;->mLifecycleState:I
+Landroid/app/ActivityThread$ActivityClientRecord;->mPendingRemoveWindow:Landroid/view/Window;
+Landroid/app/ActivityThread$ActivityClientRecord;->mPendingRemoveWindowManager:Landroid/view/WindowManager;
+Landroid/app/ActivityThread$ActivityClientRecord;->newConfig:Landroid/content/res/Configuration;
+Landroid/app/ActivityThread$ActivityClientRecord;->nextIdle:Landroid/app/ActivityThread$ActivityClientRecord;
+Landroid/app/ActivityThread$ActivityClientRecord;->overrideConfig:Landroid/content/res/Configuration;
+Landroid/app/ActivityThread$ActivityClientRecord;->parent:Landroid/app/Activity;
+Landroid/app/ActivityThread$ActivityClientRecord;->pendingConfigChanges:I
+Landroid/app/ActivityThread$ActivityClientRecord;->pendingIntents:Ljava/util/List;
+Landroid/app/ActivityThread$ActivityClientRecord;->pendingResults:Ljava/util/List;
+Landroid/app/ActivityThread$ActivityClientRecord;->persistentState:Landroid/os/PersistableBundle;
+Landroid/app/ActivityThread$ActivityClientRecord;->profilerInfo:Landroid/app/ProfilerInfo;
+Landroid/app/ActivityThread$ActivityClientRecord;->referrer:Ljava/lang/String;
+Landroid/app/ActivityThread$ActivityClientRecord;->setState(I)V
+Landroid/app/ActivityThread$ActivityClientRecord;->startsNotResumed:Z
+Landroid/app/ActivityThread$ActivityClientRecord;->state:Landroid/os/Bundle;
+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;
+Landroid/app/ActivityThread$AppBindData;->debugMode:I
+Landroid/app/ActivityThread$AppBindData;->enableBinderTracking:Z
+Landroid/app/ActivityThread$AppBindData;->initProfilerInfo:Landroid/app/ProfilerInfo;
+Landroid/app/ActivityThread$AppBindData;->instrumentationName:Landroid/content/ComponentName;
+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
+Landroid/app/ActivityThread$ApplicationThread;->DB_INFO_FORMAT:Ljava/lang/String;
+Landroid/app/ActivityThread$ApplicationThread;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpActivity(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpDatabaseInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpHeap(ZZZLjava/lang/String;Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZZ[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Landroid/util/proto/ProtoOutputStream;Landroid/os/Debug$MemoryInfo;ZZZZ)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Ljava/io/PrintWriter;Landroid/os/Debug$MemoryInfo;ZZZZZ)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpMemInfoProto(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZ[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpProvider(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->handleTrustStorageUpdate()V
+Landroid/app/ActivityThread$ApplicationThread;->mLastProcessState:I
+Landroid/app/ActivityThread$ApplicationThread;->notifyCleartextNetwork([B)V
+Landroid/app/ActivityThread$ApplicationThread;->processInBackground()V
+Landroid/app/ActivityThread$ApplicationThread;->profilerControl(ZLandroid/app/ProfilerInfo;I)V
+Landroid/app/ActivityThread$ApplicationThread;->requestAssistContextExtras(Landroid/os/IBinder;Landroid/os/IBinder;III)V
+Landroid/app/ActivityThread$ApplicationThread;->runIsolatedEntryPoint(Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleCrash(Ljava/lang/String;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleDestroyBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleExit()V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleLocalVoiceInteractionStarted(Landroid/os/IBinder;Lcom/android/internal/app/IVoiceInteractor;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleLowMemory()V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleOnNewActivityOptions(Landroid/os/IBinder;Landroid/os/Bundle;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZII)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZII)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleSleeping(Landroid/os/IBinder;Z)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleStopService(Landroid/os/IBinder;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleSuicide()V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleTranslucentConversionComplete(Landroid/os/IBinder;Z)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleTrimMemory(I)V
+Landroid/app/ActivityThread$ApplicationThread;->scheduleUnbindService(Landroid/os/IBinder;Landroid/content/Intent;)V
+Landroid/app/ActivityThread$ApplicationThread;->setCoreSettings(Landroid/os/Bundle;)V
+Landroid/app/ActivityThread$ApplicationThread;->setHttpProxy(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/app/ActivityThread$ApplicationThread;->setNetworkBlockSeq(J)V
+Landroid/app/ActivityThread$ApplicationThread;->setProcessState(I)V
+Landroid/app/ActivityThread$ApplicationThread;->setSchedulingGroup(I)V
+Landroid/app/ActivityThread$ApplicationThread;->startBinderTracking()V
+Landroid/app/ActivityThread$ApplicationThread;->stopBinderTrackingAndDump(Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/ActivityThread$ApplicationThread;->unstableProviderDied(Landroid/os/IBinder;)V
+Landroid/app/ActivityThread$ApplicationThread;->updatePackageCompatibilityInfo(Ljava/lang/String;Landroid/content/res/CompatibilityInfo;)V
+Landroid/app/ActivityThread$ApplicationThread;->updatePendingConfiguration(Landroid/content/res/Configuration;)V
+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
+Landroid/app/ActivityThread$H;->CLEAN_UP_CONTEXT:I
+Landroid/app/ActivityThread$H;->codeToString(I)Ljava/lang/String;
+Landroid/app/ActivityThread$H;->CONFIGURATION_CHANGED:I
+Landroid/app/ActivityThread$H;->CREATE_BACKUP_AGENT:I
+Landroid/app/ActivityThread$H;->DESTROY_BACKUP_AGENT:I
+Landroid/app/ActivityThread$H;->DISPATCH_PACKAGE_BROADCAST:I
+Landroid/app/ActivityThread$H;->DUMP_ACTIVITY:I
+Landroid/app/ActivityThread$H;->DUMP_HEAP:I
+Landroid/app/ActivityThread$H;->DUMP_SERVICE:I
+Landroid/app/ActivityThread$H;->ENABLE_JIT:I
+Landroid/app/ActivityThread$H;->EXECUTE_TRANSACTION:I
+Landroid/app/ActivityThread$H;->LOCAL_VOICE_INTERACTION_STARTED:I
+Landroid/app/ActivityThread$H;->LOW_MEMORY:I
+Landroid/app/ActivityThread$H;->ON_NEW_ACTIVITY_OPTIONS:I
+Landroid/app/ActivityThread$H;->PROFILER_CONTROL:I
+Landroid/app/ActivityThread$H;->RELAUNCH_ACTIVITY:I
+Landroid/app/ActivityThread$H;->REQUEST_ASSIST_CONTEXT_EXTRAS:I
+Landroid/app/ActivityThread$H;->RUN_ISOLATED_ENTRY_POINT:I
+Landroid/app/ActivityThread$H;->SET_CORE_SETTINGS:I
+Landroid/app/ActivityThread$H;->SLEEPING:I
+Landroid/app/ActivityThread$H;->START_BINDER_TRACKING:I
+Landroid/app/ActivityThread$H;->STOP_BINDER_TRACKING_AND_DUMP:I
+Landroid/app/ActivityThread$H;->SUICIDE:I
+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
+Landroid/app/ActivityThread$Profiler;->profileFd:Landroid/os/ParcelFileDescriptor;
+Landroid/app/ActivityThread$Profiler;->profileFile:Ljava/lang/String;
+Landroid/app/ActivityThread$Profiler;->profiling:Z
+Landroid/app/ActivityThread$Profiler;->samplingInterval:I
+Landroid/app/ActivityThread$Profiler;->setProfiler(Landroid/app/ProfilerInfo;)V
+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;
+Landroid/app/ActivityThread;->applyConfigurationToResources(Landroid/content/res/Configuration;)V
+Landroid/app/ActivityThread;->appNotRespondingViaProvider(Landroid/os/IBinder;)V
+Landroid/app/ActivityThread;->attemptAttachAgent(Ljava/lang/String;Ljava/lang/ClassLoader;)Z
+Landroid/app/ActivityThread;->callActivityOnSaveInstanceState(Landroid/app/ActivityThread$ActivityClientRecord;)V
+Landroid/app/ActivityThread;->callActivityOnStop(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)V
+Landroid/app/ActivityThread;->checkAndBlockForNetworkAccess()V
+Landroid/app/ActivityThread;->cleanUpPendingRemoveWindows(Landroid/app/ActivityThread$ActivityClientRecord;Z)V
+Landroid/app/ActivityThread;->collectComponentCallbacks(ZLandroid/content/res/Configuration;)Ljava/util/ArrayList;
+Landroid/app/ActivityThread;->completeRemoveProvider(Landroid/app/ActivityThread$ProviderRefCount;)V
+Landroid/app/ActivityThread;->createBaseContextForActivity(Landroid/app/ActivityThread$ActivityClientRecord;)Landroid/app/ContextImpl;
+Landroid/app/ActivityThread;->createNewConfigAndUpdateIfNotNull(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
+Landroid/app/ActivityThread;->currentOpPackageName()Ljava/lang/String;
+Landroid/app/ActivityThread;->DEBUG_BACKUP:Z
+Landroid/app/ActivityThread;->DEBUG_BROADCAST:Z
+Landroid/app/ActivityThread;->DEBUG_CONFIGURATION:Z
+Landroid/app/ActivityThread;->DEBUG_MEMORY_TRIM:Z
+Landroid/app/ActivityThread;->DEBUG_MESSAGES:Z
+Landroid/app/ActivityThread;->DEBUG_ORDER:Z
+Landroid/app/ActivityThread;->DEBUG_PROVIDER:Z
+Landroid/app/ActivityThread;->DEBUG_RESULTS:Z
+Landroid/app/ActivityThread;->DEBUG_SERVICE:Z
+Landroid/app/ActivityThread;->deliverNewIntents(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V
+Landroid/app/ActivityThread;->deliverResults(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;Ljava/lang/String;)V
+Landroid/app/ActivityThread;->doGcIfNeeded()V
+Landroid/app/ActivityThread;->dumpMemInfoTable(Landroid/util/proto/ProtoOutputStream;Landroid/os/Debug$MemoryInfo;ZZJJJJJJ)V
+Landroid/app/ActivityThread;->dumpMemInfoTable(Ljava/io/PrintWriter;Landroid/os/Debug$MemoryInfo;ZZZZILjava/lang/String;JJJJJJ)V
+Landroid/app/ActivityThread;->dumpMemoryInfo(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;IIIIIIZII)V
+Landroid/app/ActivityThread;->ensureJitEnabled()V
+Landroid/app/ActivityThread;->finishInstrumentation(ILandroid/os/Bundle;)V
+Landroid/app/ActivityThread;->freeTextLayoutCachesIfNeeded(I)V
+Landroid/app/ActivityThread;->getActivityClient(Landroid/os/IBinder;)Landroid/app/ActivityThread$ActivityClientRecord;
+Landroid/app/ActivityThread;->getExecutor()Ljava/util/concurrent/Executor;
+Landroid/app/ActivityThread;->getGetProviderLock(Ljava/lang/String;I)Ljava/lang/Object;
+Landroid/app/ActivityThread;->getInstrumentationLibrary(Landroid/content/pm/ApplicationInfo;Landroid/content/pm/InstrumentationInfo;)Ljava/lang/String;
+Landroid/app/ActivityThread;->getIntCoreSetting(Ljava/lang/String;I)I
+Landroid/app/ActivityThread;->getIntentBeingBroadcast()Landroid/content/Intent;
+Landroid/app/ActivityThread;->getPackageInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZ)Landroid/app/LoadedApk;
+Landroid/app/ActivityThread;->getPackageInfo(Ljava/lang/String;Landroid/content/res/CompatibilityInfo;II)Landroid/app/LoadedApk;
+Landroid/app/ActivityThread;->getProfileFilePath()Ljava/lang/String;
+Landroid/app/ActivityThread;->getSystemUiContext()Landroid/app/ContextImpl;
+Landroid/app/ActivityThread;->getTopLevelResources(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/LoadedApk;)Landroid/content/res/Resources;
+Landroid/app/ActivityThread;->getTransactionExecutor()Landroid/app/servertransaction/TransactionExecutor;
+Landroid/app/ActivityThread;->handleActivityConfigurationChanged(Landroid/os/IBinder;Landroid/content/res/Configuration;I)V
+Landroid/app/ActivityThread;->handleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V
+Landroid/app/ActivityThread;->handleAttachAgent(Ljava/lang/String;Landroid/app/LoadedApk;)V
+Landroid/app/ActivityThread;->handleBindService(Landroid/app/ActivityThread$BindServiceData;)V
+Landroid/app/ActivityThread;->handleConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/app/ActivityThread;->handleConfigurationChanged(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)V
+Landroid/app/ActivityThread;->handleCreateBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V
+Landroid/app/ActivityThread;->handleDestroyActivity(Landroid/os/IBinder;ZIZLjava/lang/String;)V
+Landroid/app/ActivityThread;->handleDestroyBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V
+Landroid/app/ActivityThread;->handleDispatchPackageBroadcast(I[Ljava/lang/String;)V
+Landroid/app/ActivityThread;->handleDumpActivity(Landroid/app/ActivityThread$DumpComponentInfo;)V
+Landroid/app/ActivityThread;->handleDumpHeap(Landroid/app/ActivityThread$DumpHeapData;)V
+Landroid/app/ActivityThread;->handleDumpProvider(Landroid/app/ActivityThread$DumpComponentInfo;)V
+Landroid/app/ActivityThread;->handleDumpService(Landroid/app/ActivityThread$DumpComponentInfo;)V
+Landroid/app/ActivityThread;->handleEnterAnimationComplete(Landroid/os/IBinder;)V
+Landroid/app/ActivityThread;->handleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+Landroid/app/ActivityThread;->handleLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;Landroid/content/Intent;)Landroid/app/Activity;
+Landroid/app/ActivityThread;->handleLocalVoiceInteractionStarted(Landroid/os/IBinder;Lcom/android/internal/app/IVoiceInteractor;)V
+Landroid/app/ActivityThread;->handleLowMemory()V
+Landroid/app/ActivityThread;->handleMultiWindowModeChanged(Landroid/os/IBinder;ZLandroid/content/res/Configuration;)V
+Landroid/app/ActivityThread;->handleNewIntent(Landroid/os/IBinder;Ljava/util/List;Z)V
+Landroid/app/ActivityThread;->handlePauseActivity(Landroid/os/IBinder;ZZILandroid/app/servertransaction/PendingTransactionActions;Ljava/lang/String;)V
+Landroid/app/ActivityThread;->handlePictureInPictureModeChanged(Landroid/os/IBinder;ZLandroid/content/res/Configuration;)V
+Landroid/app/ActivityThread;->handleProfilerControl(ZLandroid/app/ProfilerInfo;I)V
+Landroid/app/ActivityThread;->handleRelaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/ActivityThread;->handleRelaunchActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;ILjava/util/List;Ljava/util/List;Landroid/app/servertransaction/PendingTransactionActions;ZLandroid/content/res/Configuration;Ljava/lang/String;)V
+Landroid/app/ActivityThread;->handleRelaunchActivityLocally(Landroid/os/IBinder;)V
+Landroid/app/ActivityThread;->handleRequestAssistContextExtras(Landroid/app/ActivityThread$RequestAssistContextExtras;)V
+Landroid/app/ActivityThread;->handleResumeActivity(Landroid/os/IBinder;ZZLjava/lang/String;)V
+Landroid/app/ActivityThread;->handleRunIsolatedEntryPoint(Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/ActivityThread;->handleSendResult(Landroid/os/IBinder;Ljava/util/List;Ljava/lang/String;)V
+Landroid/app/ActivityThread;->handleServiceArgs(Landroid/app/ActivityThread$ServiceArgsData;)V
+Landroid/app/ActivityThread;->handleSetCoreSettings(Landroid/os/Bundle;)V
+Landroid/app/ActivityThread;->handleSleeping(Landroid/os/IBinder;Z)V
+Landroid/app/ActivityThread;->handleStartActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/ActivityThread;->handleStartBinderTracking()V
+Landroid/app/ActivityThread;->handleStopActivity(Landroid/os/IBinder;ZILandroid/app/servertransaction/PendingTransactionActions;ZLjava/lang/String;)V
+Landroid/app/ActivityThread;->handleStopBinderTrackingAndDump(Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/ActivityThread;->handleStopService(Landroid/os/IBinder;)V
+Landroid/app/ActivityThread;->handleTranslucentConversionComplete(Landroid/os/IBinder;Z)V
+Landroid/app/ActivityThread;->handleTrimMemory(I)V
+Landroid/app/ActivityThread;->handleUnbindService(Landroid/app/ActivityThread$BindServiceData;)V
+Landroid/app/ActivityThread;->handleUnstableProviderDiedLocked(Landroid/os/IBinder;Z)V
+Landroid/app/ActivityThread;->handleUpdatePackageCompatibilityInfo(Landroid/app/ActivityThread$UpdateCompatibilityData;)V
+Landroid/app/ActivityThread;->handleWindowVisibility(Landroid/os/IBinder;Z)V
+Landroid/app/ActivityThread;->HEAP_COLUMN:Ljava/lang/String;
+Landroid/app/ActivityThread;->HEAP_FULL_COLUMN:Ljava/lang/String;
+Landroid/app/ActivityThread;->incProviderRefLocked(Landroid/app/ActivityThread$ProviderRefCount;Z)V
+Landroid/app/ActivityThread;->installProviderAuthoritiesLocked(Landroid/content/IContentProvider;Landroid/content/ContentProvider;Landroid/app/ContentProviderHolder;)Landroid/app/ActivityThread$ProviderClientRecord;
+Landroid/app/ActivityThread;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
+Landroid/app/ActivityThread;->INVALID_PROC_STATE_SEQ:J
+Landroid/app/ActivityThread;->isProfiling()Z
+Landroid/app/ActivityThread;->isSystem()Z
+Landroid/app/ActivityThread;->localLOGV:Z
+Landroid/app/ActivityThread;->main([Ljava/lang/String;)V
+Landroid/app/ActivityThread;->mBackupAgents:Landroid/util/ArrayMap;
+Landroid/app/ActivityThread;->mCompatConfiguration:Landroid/content/res/Configuration;
+Landroid/app/ActivityThread;->mCoreSettings:Landroid/os/Bundle;
+Landroid/app/ActivityThread;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/app/ActivityThread;->mGcIdler:Landroid/app/ActivityThread$GcIdler;
+Landroid/app/ActivityThread;->mGcIdlerScheduled:Z
+Landroid/app/ActivityThread;->mGetProviderLocks:Landroid/util/ArrayMap;
+Landroid/app/ActivityThread;->mHiddenApiWarningShown:Z
+Landroid/app/ActivityThread;->mInstrumentationLibDir:Ljava/lang/String;
+Landroid/app/ActivityThread;->mInstrumentationPackageName:Ljava/lang/String;
+Landroid/app/ActivityThread;->mInstrumentationSplitAppDirs:[Ljava/lang/String;
+Landroid/app/ActivityThread;->mInstrumentedLibDir:Ljava/lang/String;
+Landroid/app/ActivityThread;->mInstrumentedSplitAppDirs:[Ljava/lang/String;
+Landroid/app/ActivityThread;->MIN_TIME_BETWEEN_GCS:J
+Landroid/app/ActivityThread;->mJitEnabled:Z
+Landroid/app/ActivityThread;->mLastAssistStructures:Ljava/util/ArrayList;
+Landroid/app/ActivityThread;->mLastSessionId:I
+Landroid/app/ActivityThread;->mMainThreadConfig:Landroid/content/res/Configuration;
+Landroid/app/ActivityThread;->mNetworkBlockSeq:J
+Landroid/app/ActivityThread;->mNetworkPolicyLock:Ljava/lang/Object;
+Landroid/app/ActivityThread;->mNewActivities:Landroid/app/ActivityThread$ActivityClientRecord;
+Landroid/app/ActivityThread;->mOnPauseListeners:Landroid/util/ArrayMap;
+Landroid/app/ActivityThread;->mProfiler:Landroid/app/ActivityThread$Profiler;
+Landroid/app/ActivityThread;->mRelaunchingActivities:Ljava/util/ArrayList;
+Landroid/app/ActivityThread;->mSomeActivitiesChanged:Z
+Landroid/app/ActivityThread;->mSystemThread:Z
+Landroid/app/ActivityThread;->mSystemUiContext:Landroid/app/ContextImpl;
+Landroid/app/ActivityThread;->mTransactionExecutor:Landroid/app/servertransaction/TransactionExecutor;
+Landroid/app/ActivityThread;->mUpdatingSystemConfig:Z
+Landroid/app/ActivityThread;->nDumpGraphicsInfo(Ljava/io/FileDescriptor;)V
+Landroid/app/ActivityThread;->onCoreSettingsChange()V
+Landroid/app/ActivityThread;->ONE_COUNT_COLUMN:Ljava/lang/String;
+Landroid/app/ActivityThread;->ONE_COUNT_COLUMN_HEADER:Ljava/lang/String;
+Landroid/app/ActivityThread;->onNewActivityOptions(Landroid/os/IBinder;Landroid/app/ActivityOptions;)V
+Landroid/app/ActivityThread;->performActivityConfigurationChanged(Landroid/app/Activity;Landroid/content/res/Configuration;Landroid/content/res/Configuration;IZ)Landroid/content/res/Configuration;
+Landroid/app/ActivityThread;->performConfigurationChanged(Landroid/content/ComponentCallbacks2;Landroid/content/res/Configuration;)V
+Landroid/app/ActivityThread;->performConfigurationChangedForActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;)V
+Landroid/app/ActivityThread;->performConfigurationChangedForActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;IZ)Landroid/content/res/Configuration;
+Landroid/app/ActivityThread;->performDestroyActivity(Landroid/os/IBinder;ZIZLjava/lang/String;)Landroid/app/ActivityThread$ActivityClientRecord;
+Landroid/app/ActivityThread;->performLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/Intent;)Landroid/app/Activity;
+Landroid/app/ActivityThread;->performPauseActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;Landroid/app/servertransaction/PendingTransactionActions;)Landroid/os/Bundle;
+Landroid/app/ActivityThread;->performPauseActivity(Landroid/os/IBinder;ZLjava/lang/String;Landroid/app/servertransaction/PendingTransactionActions;)Landroid/os/Bundle;
+Landroid/app/ActivityThread;->performPauseActivityIfNeeded(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/lang/String;)V
+Landroid/app/ActivityThread;->performRestartActivity(Landroid/os/IBinder;Z)V
+Landroid/app/ActivityThread;->performResumeActivity(Landroid/os/IBinder;ZLjava/lang/String;)Landroid/app/ActivityThread$ActivityClientRecord;
+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
+Landroid/app/ActivityThread;->reportSizeConfigurations(Landroid/app/ActivityThread$ActivityClientRecord;)V
+Landroid/app/ActivityThread;->reportStop(Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/ActivityThread;->REPORT_TO_ACTIVITY:Z
+Landroid/app/ActivityThread;->resolveActivityInfo(Landroid/content/Intent;)Landroid/content/pm/ActivityInfo;
+Landroid/app/ActivityThread;->safeToComponentShortString(Landroid/content/Intent;)Ljava/lang/String;
+Landroid/app/ActivityThread;->scheduleContextCleanup(Landroid/app/ContextImpl;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/ActivityThread;->scheduleRelaunchActivity(Landroid/os/IBinder;)V
+Landroid/app/ActivityThread;->sCurrentBroadcastIntent:Ljava/lang/ThreadLocal;
+Landroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;)V
+Landroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;I)V
+Landroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;II)V
+Landroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;III)V
+Landroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;IIZ)V
+Landroid/app/ActivityThread;->SERVICE_DONE_EXECUTING_ANON:I
+Landroid/app/ActivityThread;->SERVICE_DONE_EXECUTING_START:I
+Landroid/app/ActivityThread;->SERVICE_DONE_EXECUTING_STOP:I
+Landroid/app/ActivityThread;->setupGraphicsSupport(Landroid/content/Context;)V
+Landroid/app/ActivityThread;->SQLITE_MEM_RELEASED_EVENT_LOG_TAG:I
+Landroid/app/ActivityThread;->stopProfiling()V
+Landroid/app/ActivityThread;->TAG:Ljava/lang/String;
+Landroid/app/ActivityThread;->THUMBNAIL_FORMAT:Landroid/graphics/Bitmap$Config;
+Landroid/app/ActivityThread;->TWO_COUNT_COLUMNS:Ljava/lang/String;
+Landroid/app/ActivityThread;->unscheduleGcIdler()V
+Landroid/app/ActivityThread;->updateDefaultDensity()V
+Landroid/app/ActivityThread;->updateLocaleListFromAppContext(Landroid/content/Context;Landroid/os/LocaleList;)V
+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;
+Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;->mMatrix:Landroid/graphics/Matrix;
+Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;->mParent:Landroid/view/View;
+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
+Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mLeft:I
+Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mMatrix:Landroid/graphics/Matrix;
+Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mMeasuredHeight:I
+Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mMeasuredWidth:I
+Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mRight:I
+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
+Landroid/app/ActivityTransitionCoordinator;->captureSharedElementState()Landroid/os/Bundle;
+Landroid/app/ActivityTransitionCoordinator;->captureSharedElementState(Landroid/view/View;Ljava/lang/String;Landroid/os/Bundle;Landroid/graphics/Matrix;Landroid/graphics/RectF;)V
+Landroid/app/ActivityTransitionCoordinator;->clearState()V
+Landroid/app/ActivityTransitionCoordinator;->configureTransition(Landroid/transition/Transition;Z)Landroid/transition/Transition;
+Landroid/app/ActivityTransitionCoordinator;->copyMappedViews()Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->createSnapshots(Landroid/os/Bundle;Ljava/util/Collection;)Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->findIncludedViews(Landroid/transition/Transition;Ljava/util/ArrayList;Landroid/util/ArraySet;)V
+Landroid/app/ActivityTransitionCoordinator;->getAcceptedNames()Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->getAllSharedElementNames()Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->getDecor()Landroid/view/ViewGroup;
+Landroid/app/ActivityTransitionCoordinator;->getFadeDuration()J
+Landroid/app/ActivityTransitionCoordinator;->getMappedNames()Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->getOldSharedElementState(Landroid/view/View;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;
+Landroid/app/ActivityTransitionCoordinator;->getSharedElementParentMatrix(Landroid/view/View;Landroid/graphics/Matrix;)V
+Landroid/app/ActivityTransitionCoordinator;->getViewsTransition()Landroid/transition/Transition;
+Landroid/app/ActivityTransitionCoordinator;->getWindow()Landroid/view/Window;
+Landroid/app/ActivityTransitionCoordinator;->hideViews(Ljava/util/ArrayList;)V
+Landroid/app/ActivityTransitionCoordinator;->isInTransitionGroup(Landroid/view/ViewParent;Landroid/view/ViewGroup;)Z
+Landroid/app/ActivityTransitionCoordinator;->isNested(Landroid/view/View;Landroid/util/ArrayMap;)Z
+Landroid/app/ActivityTransitionCoordinator;->isTransitionRunning()Z
+Landroid/app/ActivityTransitionCoordinator;->isViewsTransitionComplete()Z
+Landroid/app/ActivityTransitionCoordinator;->KEY_ELEVATION:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_IMAGE_MATRIX:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_REMOTE_RECEIVER:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_SCALE_TYPE:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_SCREEN_BOTTOM:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_SCREEN_LEFT:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_SCREEN_RIGHT:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_SCREEN_TOP:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_SNAPSHOT:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->KEY_TRANSLATION_Z:Ljava/lang/String;
+Landroid/app/ActivityTransitionCoordinator;->mAllSharedElementNames:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->mapSharedElements(Ljava/util/ArrayList;Ljava/util/ArrayList;)Landroid/util/ArrayMap;
+Landroid/app/ActivityTransitionCoordinator;->mBackgroundAnimatorComplete:Z
+Landroid/app/ActivityTransitionCoordinator;->mEpicenterCallback:Landroid/app/ActivityTransitionCoordinator$FixedEpicenterCallback;
+Landroid/app/ActivityTransitionCoordinator;->mergeTransitions(Landroid/transition/Transition;Landroid/transition/Transition;)Landroid/transition/Transition;
+Landroid/app/ActivityTransitionCoordinator;->mGhostViewListeners:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->mIsReturning:Z
+Landroid/app/ActivityTransitionCoordinator;->mIsStartingTransition:Z
+Landroid/app/ActivityTransitionCoordinator;->mListener:Landroid/app/SharedElementCallback;
+Landroid/app/ActivityTransitionCoordinator;->mOriginalAlphas:Landroid/util/ArrayMap;
+Landroid/app/ActivityTransitionCoordinator;->moveSharedElementsFromOverlay()V
+Landroid/app/ActivityTransitionCoordinator;->moveSharedElementsToOverlay()V
+Landroid/app/ActivityTransitionCoordinator;->moveSharedElementWithParent()Z
+Landroid/app/ActivityTransitionCoordinator;->mPendingTransition:Ljava/lang/Runnable;
+Landroid/app/ActivityTransitionCoordinator;->mResultReceiver:Landroid/os/ResultReceiver;
+Landroid/app/ActivityTransitionCoordinator;->MSG_CANCEL:I
+Landroid/app/ActivityTransitionCoordinator;->MSG_EXIT_TRANSITION_COMPLETE:I
+Landroid/app/ActivityTransitionCoordinator;->MSG_HIDE_SHARED_ELEMENTS:I
+Landroid/app/ActivityTransitionCoordinator;->MSG_SET_REMOTE_RECEIVER:I
+Landroid/app/ActivityTransitionCoordinator;->MSG_SHARED_ELEMENT_DESTINATION:I
+Landroid/app/ActivityTransitionCoordinator;->MSG_START_EXIT_TRANSITION:I
+Landroid/app/ActivityTransitionCoordinator;->MSG_TAKE_SHARED_ELEMENTS:I
+Landroid/app/ActivityTransitionCoordinator;->mSharedElementNames:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->mSharedElementParentMatrices:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->mSharedElements:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->mSharedElementTransitionComplete:Z
+Landroid/app/ActivityTransitionCoordinator;->mStrippedTransitioningViews:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->mTransitioningViews:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->mViewsTransitionComplete:Z
+Landroid/app/ActivityTransitionCoordinator;->mWindow:Landroid/view/Window;
+Landroid/app/ActivityTransitionCoordinator;->noLayoutSuppressionForVisibilityTransitions(Landroid/transition/Transition;)V
+Landroid/app/ActivityTransitionCoordinator;->notifySharedElementEnd(Ljava/util/ArrayList;)V
+Landroid/app/ActivityTransitionCoordinator;->onTransitionsComplete()V
+Landroid/app/ActivityTransitionCoordinator;->pauseInput()V
+Landroid/app/ActivityTransitionCoordinator;->removeExcludedViews(Landroid/transition/Transition;Ljava/util/ArrayList;)V
+Landroid/app/ActivityTransitionCoordinator;->scaleTypeToInt(Landroid/widget/ImageView$ScaleType;)I
+Landroid/app/ActivityTransitionCoordinator;->SCALE_TYPE_VALUES:[Landroid/widget/ImageView$ScaleType;
+Landroid/app/ActivityTransitionCoordinator;->scheduleGhostVisibilityChange(I)V
+Landroid/app/ActivityTransitionCoordinator;->scheduleSetSharedElementEnd(Ljava/util/ArrayList;)V
+Landroid/app/ActivityTransitionCoordinator;->setEpicenter()V
+Landroid/app/ActivityTransitionCoordinator;->setEpicenter(Landroid/view/View;)V
+Landroid/app/ActivityTransitionCoordinator;->setGhostVisibility(I)V
+Landroid/app/ActivityTransitionCoordinator;->setOriginalSharedElementState(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+Landroid/app/ActivityTransitionCoordinator;->setResultReceiver(Landroid/os/ResultReceiver;)V
+Landroid/app/ActivityTransitionCoordinator;->setSharedElementMatrices()V
+Landroid/app/ActivityTransitionCoordinator;->setSharedElements(Landroid/util/ArrayMap;)V
+Landroid/app/ActivityTransitionCoordinator;->setSharedElementState(Landroid/os/Bundle;Ljava/util/ArrayList;)Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionCoordinator;->setSharedElementState(Landroid/view/View;Ljava/lang/String;Landroid/os/Bundle;Landroid/graphics/Matrix;Landroid/graphics/RectF;[I)V
+Landroid/app/ActivityTransitionCoordinator;->setTargets(Landroid/transition/Transition;Z)Landroid/transition/Transition;
+Landroid/app/ActivityTransitionCoordinator;->setTransitioningViewsVisiblity(IZ)V
+Landroid/app/ActivityTransitionCoordinator;->sharedElementTransitionComplete()V
+Landroid/app/ActivityTransitionCoordinator;->showView(Landroid/view/View;Z)V
+Landroid/app/ActivityTransitionCoordinator;->showViews(Ljava/util/ArrayList;Z)V
+Landroid/app/ActivityTransitionCoordinator;->startInputWhenTransitionsComplete()V
+Landroid/app/ActivityTransitionCoordinator;->startTransition(Ljava/lang/Runnable;)V
+Landroid/app/ActivityTransitionCoordinator;->stripOffscreenViews()V
+Landroid/app/ActivityTransitionCoordinator;->TAG:Ljava/lang/String;
+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
+Landroid/app/ActivityTransitionState;->ENTERING_SHARED_ELEMENTS:Ljava/lang/String;
+Landroid/app/ActivityTransitionState;->enterReady(Landroid/app/Activity;)V
+Landroid/app/ActivityTransitionState;->EXITING_MAPPED_FROM:Ljava/lang/String;
+Landroid/app/ActivityTransitionState;->EXITING_MAPPED_TO:Ljava/lang/String;
+Landroid/app/ActivityTransitionState;->isTransitionRunning()Z
+Landroid/app/ActivityTransitionState;->mCalledExitCoordinator:Landroid/app/ExitTransitionCoordinator;
+Landroid/app/ActivityTransitionState;->mEnterActivityOptions:Landroid/app/ActivityOptions;
+Landroid/app/ActivityTransitionState;->mEnteringNames:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionState;->mEnterTransitionCoordinator:Landroid/app/EnterTransitionCoordinator;
+Landroid/app/ActivityTransitionState;->mExitingFrom:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionState;->mExitingTo:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionState;->mExitingToView:Ljava/util/ArrayList;
+Landroid/app/ActivityTransitionState;->mExitTransitionCoordinators:Landroid/util/SparseArray;
+Landroid/app/ActivityTransitionState;->mExitTransitionCoordinatorsKey:I
+Landroid/app/ActivityTransitionState;->mHasExited:Z
+Landroid/app/ActivityTransitionState;->mIsEnterPostponed:Z
+Landroid/app/ActivityTransitionState;->mIsEnterTriggered:Z
+Landroid/app/ActivityTransitionState;->mReturnExitCoordinator:Landroid/app/ExitTransitionCoordinator;
+Landroid/app/ActivityTransitionState;->onResume(Landroid/app/Activity;Z)V
+Landroid/app/ActivityTransitionState;->onStop()V
+Landroid/app/ActivityTransitionState;->postponeEnterTransition()V
+Landroid/app/ActivityTransitionState;->readState(Landroid/os/Bundle;)V
+Landroid/app/ActivityTransitionState;->restoreExitedViews()V
+Landroid/app/ActivityTransitionState;->restoreReenteringViews()V
+Landroid/app/ActivityTransitionState;->saveState(Landroid/os/Bundle;)V
+Landroid/app/ActivityTransitionState;->setEnterActivityOptions(Landroid/app/Activity;Landroid/app/ActivityOptions;)V
+Landroid/app/ActivityTransitionState;->startEnter()V
+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
+Landroid/app/ActivityView;->DISPLAY_NAME:Ljava/lang/String;
+Landroid/app/ActivityView;->getBaseDisplayDensity()I
+Landroid/app/ActivityView;->initVirtualDisplay()V
+Landroid/app/ActivityView;->injectInputEvent(Landroid/view/InputEvent;)Z
+Landroid/app/ActivityView;->mActivityManager:Landroid/app/IActivityManager;
+Landroid/app/ActivityView;->mActivityViewCallback:Landroid/app/ActivityView$StateCallback;
+Landroid/app/ActivityView;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/app/ActivityView;->mInputForwarder:Landroid/app/IInputForwarder;
+Landroid/app/ActivityView;->mLocationOnScreen:[I
+Landroid/app/ActivityView;->mOpened:Z
+Landroid/app/ActivityView;->mSurface:Landroid/view/Surface;
+Landroid/app/ActivityView;->mSurfaceCallback:Landroid/app/ActivityView$SurfaceCallback;
+Landroid/app/ActivityView;->mSurfaceView:Landroid/view/SurfaceView;
+Landroid/app/ActivityView;->mTaskStackListener:Landroid/app/TaskStackListener;
+Landroid/app/ActivityView;->mVirtualDisplay:Landroid/hardware/display/VirtualDisplay;
+Landroid/app/ActivityView;->onLocationChanged()V
+Landroid/app/ActivityView;->performRelease()V
+Landroid/app/ActivityView;->prepareActivityOptions()Landroid/app/ActivityOptions;
+Landroid/app/ActivityView;->setCallback(Landroid/app/ActivityView$StateCallback;)V
+Landroid/app/ActivityView;->startActivity(Landroid/content/Intent;Landroid/os/UserHandle;)V
+Landroid/app/ActivityView;->TAG:Ljava/lang/String;
+Landroid/app/ActivityView;->updateLocation()V
+Landroid/app/admin/ConnectEvent;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/app/admin/DeviceAdminInfo$PolicyInfo;->descriptionForSecondaryUsers:I
+Landroid/app/admin/DeviceAdminInfo$PolicyInfo;->ident:I
+Landroid/app/admin/DeviceAdminInfo$PolicyInfo;->label:I
+Landroid/app/admin/DeviceAdminInfo$PolicyInfo;->labelForSecondaryUsers:I
+Landroid/app/admin/DeviceAdminInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ActivityInfo;)V
+Landroid/app/admin/DeviceAdminInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/app/admin/DeviceAdminInfo;->mActivityInfo:Landroid/content/pm/ActivityInfo;
+Landroid/app/admin/DeviceAdminInfo;->mSupportsTransferOwnership:Z
+Landroid/app/admin/DeviceAdminInfo;->mUsesPolicies:I
+Landroid/app/admin/DeviceAdminInfo;->mVisible:Z
+Landroid/app/admin/DeviceAdminInfo;->readPoliciesFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+Landroid/app/admin/DeviceAdminInfo;->sKnownPolicies:Ljava/util/HashMap;
+Landroid/app/admin/DeviceAdminInfo;->sPoliciesDisplayOrder:Ljava/util/ArrayList;
+Landroid/app/admin/DeviceAdminInfo;->sRevKnownPolicies:Landroid/util/SparseArray;
+Landroid/app/admin/DeviceAdminInfo;->TAG:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminInfo;->USES_POLICY_DEVICE_OWNER:I
+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;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_BUGREPORT_SHARING_DECLINED:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_CHOOSE_PRIVATE_KEY_ALIAS:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_NETWORK_LOGS_AVAILABLE:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_NOTIFY_PENDING_SYSTEM_UPDATE:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_SECURITY_LOGS_AVAILABLE:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_TRANSFER_OWNERSHIP_COMPLETE:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_USER_ADDED:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_USER_REMOVED:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_USER_STARTED:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_USER_STOPPED:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->ACTION_USER_SWITCHED:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_BUGREPORT_FAILURE_REASON:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_BUGREPORT_HASH:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_CHOOSE_PRIVATE_KEY_ALIAS:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_CHOOSE_PRIVATE_KEY_RESPONSE:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_CHOOSE_PRIVATE_KEY_URI:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_NETWORK_LOGS_COUNT:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_NETWORK_LOGS_TOKEN:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->EXTRA_SYSTEM_UPDATE_RECEIVED_TIME:Ljava/lang/String;
+Landroid/app/admin/DeviceAdminReceiver;->localLOGV:Z
+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;
+Landroid/app/admin/DevicePolicyManager;->ACTION_BUGREPORT_SHARING_DECLINED:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->ACTION_DATA_SHARING_RESTRICTION_CHANGED:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->ACTION_MANAGED_USER_CREATED:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->ACTION_PROVISION_MANAGED_SHAREABLE_DEVICE:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->ACTION_PROVISION_MANAGED_USER:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->ACTION_REMOTE_BUGREPORT_DISPATCH:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->ACTION_SHOW_DEVICE_MONITORING_DIALOG:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->approveCaCert(Ljava/lang/String;IZ)Z
+Landroid/app/admin/DevicePolicyManager;->checkProvisioningPreCondition(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/app/admin/DevicePolicyManager;->clearSystemUpdatePolicyFreezePeriodRecord()V
+Landroid/app/admin/DevicePolicyManager;->CODE_ACCOUNTS_NOT_EMPTY:I
+Landroid/app/admin/DevicePolicyManager;->CODE_ADD_MANAGED_PROFILE_DISALLOWED:I
+Landroid/app/admin/DevicePolicyManager;->CODE_CANNOT_ADD_MANAGED_PROFILE:I
+Landroid/app/admin/DevicePolicyManager;->CODE_DEVICE_ADMIN_NOT_SUPPORTED:I
+Landroid/app/admin/DevicePolicyManager;->CODE_HAS_DEVICE_OWNER:I
+Landroid/app/admin/DevicePolicyManager;->CODE_HAS_PAIRED:I
+Landroid/app/admin/DevicePolicyManager;->CODE_MANAGED_USERS_NOT_SUPPORTED:I
+Landroid/app/admin/DevicePolicyManager;->CODE_NONSYSTEM_USER_EXISTS:I
+Landroid/app/admin/DevicePolicyManager;->CODE_NOT_SYSTEM_USER:I
+Landroid/app/admin/DevicePolicyManager;->CODE_NOT_SYSTEM_USER_SPLIT:I
+Landroid/app/admin/DevicePolicyManager;->CODE_OK:I
+Landroid/app/admin/DevicePolicyManager;->CODE_SPLIT_SYSTEM_USER_DEVICE_SYSTEM_USER:I
+Landroid/app/admin/DevicePolicyManager;->CODE_SYSTEM_USER:I
+Landroid/app/admin/DevicePolicyManager;->CODE_USER_HAS_PROFILE_OWNER:I
+Landroid/app/admin/DevicePolicyManager;->CODE_USER_NOT_RUNNING:I
+Landroid/app/admin/DevicePolicyManager;->CODE_USER_SETUP_COMPLETED:I
+Landroid/app/admin/DevicePolicyManager;->DEFAULT_STRONG_AUTH_TIMEOUT_MS:J
+Landroid/app/admin/DevicePolicyManager;->EXTRA_BUGREPORT_NOTIFICATION_TYPE:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->EXTRA_PROVISIONING_SKIP_USER_SETUP:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->EXTRA_PROVISIONING_USE_MOBILE_DATA:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->EXTRA_REMOTE_BUGREPORT_HASH:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->forceRemoveActiveAdmin(Landroid/content/ComponentName;I)V
+Landroid/app/admin/DevicePolicyManager;->forceSecurityLogs()J
+Landroid/app/admin/DevicePolicyManager;->forceUpdateUserSetupComplete()V
+Landroid/app/admin/DevicePolicyManager;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->getBluetoothContactSharingDisabled(Landroid/os/UserHandle;)Z
+Landroid/app/admin/DevicePolicyManager;->getCaCertAlias([B)Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->getCrossProfileCallerIdDisabled(Landroid/os/UserHandle;)Z
+Landroid/app/admin/DevicePolicyManager;->getCrossProfileContactsSearchDisabled(Landroid/os/UserHandle;)Z
+Landroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentInner(Z)Landroid/content/ComponentName;
+Landroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentOnCallingUser()Landroid/content/ComponentName;
+Landroid/app/admin/DevicePolicyManager;->getDeviceOwnerUserId()I
+Landroid/app/admin/DevicePolicyManager;->getDisallowedSystemApps(Landroid/content/ComponentName;ILjava/lang/String;)Ljava/util/Set;
+Landroid/app/admin/DevicePolicyManager;->getDoNotAskCredentialsOnBoot()Z
+Landroid/app/admin/DevicePolicyManager;->getForceEphemeralUsers(Landroid/content/ComponentName;)Z
+Landroid/app/admin/DevicePolicyManager;->getGlobalProxyAdmin()Landroid/content/ComponentName;
+Landroid/app/admin/DevicePolicyManager;->getGuestUserDisabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/DevicePolicyManager;->getLongSupportMessageForUser(Landroid/content/ComponentName;I)Ljava/lang/CharSequence;
+Landroid/app/admin/DevicePolicyManager;->getOrganizationColorForUser(I)I
+Landroid/app/admin/DevicePolicyManager;->getOrganizationNameForUser(I)Ljava/lang/CharSequence;
+Landroid/app/admin/DevicePolicyManager;->getParentProfileInstance(Landroid/content/pm/UserInfo;)Landroid/app/admin/DevicePolicyManager;
+Landroid/app/admin/DevicePolicyManager;->getProfileOwnerName()Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->getProfileWithMinimumFailedPasswordsForWipe(I)I
+Landroid/app/admin/DevicePolicyManager;->getRemoveWarning(Landroid/content/ComponentName;Landroid/os/RemoteCallback;)V
+Landroid/app/admin/DevicePolicyManager;->getScreenCaptureDisabled(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/DevicePolicyManager;->getShortSupportMessageForUser(Landroid/content/ComponentName;I)Ljava/lang/CharSequence;
+Landroid/app/admin/DevicePolicyManager;->hasUserSetupCompleted()Z
+Landroid/app/admin/DevicePolicyManager;->isAccessibilityServicePermittedByAdmin(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/DevicePolicyManager;->isAdminActiveAsUser(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/DevicePolicyManager;->isCaCertApproved(Ljava/lang/String;I)Z
+Landroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnAnyUser(Ljava/lang/String;)Z
+Landroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnAnyUserInner(Ljava/lang/String;Z)Z
+Landroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnCallingUser(Ljava/lang/String;)Z
+Landroid/app/admin/DevicePolicyManager;->isInputMethodPermittedByAdmin(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/DevicePolicyManager;->isMeteredDataDisabledPackageForUser(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/DevicePolicyManager;->isNotificationListenerServicePermitted(Ljava/lang/String;I)Z
+Landroid/app/admin/DevicePolicyManager;->isProfileActivePasswordSufficientForParent(I)Z
+Landroid/app/admin/DevicePolicyManager;->isRemovingAdmin(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/DevicePolicyManager;->isSeparateProfileChallengeAllowed(I)Z
+Landroid/app/admin/DevicePolicyManager;->isSystemOnlyUser(Landroid/content/ComponentName;)Z
+Landroid/app/admin/DevicePolicyManager;->isUninstallInQueue(Ljava/lang/String;)Z
+Landroid/app/admin/DevicePolicyManager;->MAKE_USER_DEMO:I
+Landroid/app/admin/DevicePolicyManager;->mContext:Landroid/content/Context;
+Landroid/app/admin/DevicePolicyManager;->mParentInstance:Z
+Landroid/app/admin/DevicePolicyManager;->mService:Landroid/app/admin/IDevicePolicyManager;
+Landroid/app/admin/DevicePolicyManager;->myUserId()I
+Landroid/app/admin/DevicePolicyManager;->NOTIFICATION_BUGREPORT_ACCEPTED_NOT_FINISHED:I
+Landroid/app/admin/DevicePolicyManager;->NOTIFICATION_BUGREPORT_FINISHED_NOT_ACCEPTED:I
+Landroid/app/admin/DevicePolicyManager;->NOTIFICATION_BUGREPORT_STARTED:I
+Landroid/app/admin/DevicePolicyManager;->PASSWORD_QUALITY_MANAGED:I
+Landroid/app/admin/DevicePolicyManager;->POLICY_MANDATORY_BACKUPS:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->POLICY_SUSPEND_PACKAGES:Ljava/lang/String;
+Landroid/app/admin/DevicePolicyManager;->PROFILE_KEYGUARD_FEATURES_AFFECT_OWNER:I
+Landroid/app/admin/DevicePolicyManager;->reportFailedFingerprintAttempt(I)V
+Landroid/app/admin/DevicePolicyManager;->reportKeyguardDismissed(I)V
+Landroid/app/admin/DevicePolicyManager;->reportKeyguardSecured(I)V
+Landroid/app/admin/DevicePolicyManager;->reportPasswordChanged(I)V
+Landroid/app/admin/DevicePolicyManager;->reportSuccessfulFingerprintAttempt(I)V
+Landroid/app/admin/DevicePolicyManager;->setDeviceOwner(Landroid/content/ComponentName;)Z
+Landroid/app/admin/DevicePolicyManager;->setDeviceOwner(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/DevicePolicyManager;->setDeviceOwner(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/DevicePolicyManager;->setDeviceOwner(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/DevicePolicyManager;->setForceEphemeralUsers(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/DevicePolicyManager;->setMandatoryBackupTransport(Landroid/content/ComponentName;Landroid/content/ComponentName;)Z
+Landroid/app/admin/DevicePolicyManager;->setOrganizationColorForUser(II)V
+Landroid/app/admin/DevicePolicyManager;->setProfileOwner(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/DevicePolicyManager;->setUserProvisioningState(II)V
+Landroid/app/admin/DevicePolicyManager;->startManagedQuickContact(Ljava/lang/String;JLandroid/content/Intent;)V
+Landroid/app/admin/DevicePolicyManager;->startManagedQuickContact(Ljava/lang/String;JZJLandroid/content/Intent;)V
+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
+Landroid/app/admin/DevicePolicyManagerInternal;->createShowAdminSupportIntent(IZ)Landroid/content/Intent;
+Landroid/app/admin/DevicePolicyManagerInternal;->createUserRestrictionSupportIntent(ILjava/lang/String;)Landroid/content/Intent;
+Landroid/app/admin/DevicePolicyManagerInternal;->getCrossProfileWidgetProviders(I)Ljava/util/List;
+Landroid/app/admin/DevicePolicyManagerInternal;->getDevicePolicyCache()Landroid/app/admin/DevicePolicyCache;
+Landroid/app/admin/DevicePolicyManagerInternal;->getPrintingDisabledReasonForUser(I)Ljava/lang/CharSequence;
+Landroid/app/admin/DevicePolicyManagerInternal;->isActiveAdminWithPolicy(II)Z
+Landroid/app/admin/DevicePolicyManagerInternal;->isUserAffiliatedWithDevice(I)Z
+Landroid/app/admin/DevicePolicyManagerInternal;->reportSeparateProfileChallengeChanged(I)V
+Landroid/app/admin/DnsEvent;-><init>(Landroid/os/Parcel;)V
+Landroid/app/admin/DnsEvent;-><init>(Ljava/lang/String;[Ljava/lang/String;ILjava/lang/String;J)V
+Landroid/app/admin/DnsEvent;->mHostname:Ljava/lang/String;
+Landroid/app/admin/DnsEvent;->mIpAddresses:[Ljava/lang/String;
+Landroid/app/admin/DnsEvent;->mIpAddressesCount:I
+Landroid/app/admin/FreezePeriod;-><init>(II)V
+Landroid/app/admin/FreezePeriod;->after(Ljava/time/LocalDate;)Z
+Landroid/app/admin/FreezePeriod;->canonicalizePeriods(Ljava/util/List;)Ljava/util/List;
+Landroid/app/admin/FreezePeriod;->contains(Ljava/time/LocalDate;)Z
+Landroid/app/admin/FreezePeriod;->dayOfYearDisregardLeapYear(Ljava/time/LocalDate;)I
+Landroid/app/admin/FreezePeriod;->dayOfYearToMonthDay(I)Ljava/time/MonthDay;
+Landroid/app/admin/FreezePeriod;->DAYS_IN_YEAR:I
+Landroid/app/admin/FreezePeriod;->distanceWithoutLeapYear(Ljava/time/LocalDate;Ljava/time/LocalDate;)I
+Landroid/app/admin/FreezePeriod;->DUMMY_YEAR:I
+Landroid/app/admin/FreezePeriod;->getEffectiveEndDay()I
+Landroid/app/admin/FreezePeriod;->getLength()I
+Landroid/app/admin/FreezePeriod;->isWrapped()Z
+Landroid/app/admin/FreezePeriod;->mEnd:Ljava/time/MonthDay;
+Landroid/app/admin/FreezePeriod;->mEndDay:I
+Landroid/app/admin/FreezePeriod;->mStart:Ljava/time/MonthDay;
+Landroid/app/admin/FreezePeriod;->mStartDay:I
+Landroid/app/admin/FreezePeriod;->TAG:Ljava/lang/String;
+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
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->addOverrideApn(Landroid/content/ComponentName;Landroid/telephony/data/ApnSetting;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->addPersistentPreferredActivity(Landroid/content/ComponentName;Landroid/content/IntentFilter;Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->approveCaCert(Ljava/lang/String;IZ)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->bindDeviceAdminServiceAsUser(Landroid/content/ComponentName;Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Landroid/app/IServiceConnection;II)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->checkProvisioningPreCondition(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->choosePrivateKeyAlias(ILandroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->clearApplicationUserData(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->clearCrossProfileIntentFilters(Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->clearDeviceOwner(Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->clearPackagePersistentPreferredActivities(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->clearProfileOwner(Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->clearResetPasswordToken(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->clearSystemUpdatePolicyFreezePeriodRecord()V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->createAdminSupportIntent(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->createAndManageUser(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/PersistableBundle;I)Landroid/os/UserHandle;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->enableSystemApp(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->enableSystemAppWithIntent(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->enforceCanManageCaCerts(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->forceRemoveActiveAdmin(Landroid/content/ComponentName;I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->forceSecurityLogs()J
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->forceUpdateUserSetupComplete()V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->generateKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;ILandroid/security/keymaster/KeymasterCertificateChain;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getAccountTypesWithManagementDisabled()[Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getActiveAdmins(I)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getAffiliationIds(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getAlwaysOnVpnPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getApplicationRestrictionsManagingPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getAutoTimeRequired()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getBindDeviceAdminTargetUsers(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getBluetoothContactSharingDisabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getBluetoothContactSharingDisabledForUser(I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCameraDisabled(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCertInstallerPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCrossProfileCallerIdDisabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCrossProfileCallerIdDisabledForUser(I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCrossProfileContactsSearchDisabledForUser(I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCrossProfileWidgetProviders(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCurrentFailedPasswordAttempts(IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDelegatePackages(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerLockScreenInfo()Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerName()Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerUserId()I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDisallowedSystemApps(Landroid/content/ComponentName;ILjava/lang/String;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDoNotAskCredentialsOnBoot()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getEndUserSessionMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getForceEphemeralUsers(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getGlobalProxyAdmin(I)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getKeepUninstalledPackages(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getLastBugReportRequestTime()J
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getLastNetworkLogRetrievalTime()J
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getLastSecurityLogRetrievalTime()J
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getLockTaskFeatures(Landroid/content/ComponentName;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getLockTaskPackages(Landroid/content/ComponentName;)[Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getLongSupportMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getLongSupportMessageForUser(Landroid/content/ComponentName;I)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getMandatoryBackupTransport()Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getMaximumTimeToLock(Landroid/content/ComponentName;IZ)J
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getMeteredDataDisabledPackages(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getOrganizationColor(Landroid/content/ComponentName;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getOrganizationColorForUser(I)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getOrganizationName(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getOrganizationNameForUser(I)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getOverrideApns(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getOwnerInstalledCaCerts(Landroid/os/UserHandle;)Landroid/content/pm/StringParceledListSlice;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordExpiration(Landroid/content/ComponentName;IZ)J
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordExpirationTimeout(Landroid/content/ComponentName;IZ)J
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordHistoryLength(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumLength(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumLetters(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordQuality(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPendingSystemUpdate(Landroid/content/ComponentName;)Landroid/app/admin/SystemUpdateInfo;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPermissionGrantState(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPermissionPolicy(Landroid/content/ComponentName;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPermittedAccessibilityServices(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPermittedAccessibilityServicesForUser(I)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPermittedCrossProfileNotificationListeners(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPermittedInputMethods(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPermittedInputMethodsForCurrentUser()Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwner(I)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwnerName(I)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileWithMinimumFailedPasswordsForWipe(IZ)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getRemoveWarning(Landroid/content/ComponentName;Landroid/os/RemoteCallback;I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getRequiredStrongAuthTimeout(Landroid/content/ComponentName;IZ)J
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getRestrictionsProvider(I)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getScreenCaptureDisabled(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getSecondaryUsers(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getShortSupportMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getShortSupportMessageForUser(Landroid/content/ComponentName;I)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getStartUserSessionMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getStorageEncryption(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getStorageEncryptionStatus(Ljava/lang/String;I)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getTransferOwnershipBundle()Landroid/os/PersistableBundle;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getTrustAgentConfiguration(Landroid/content/ComponentName;Landroid/content/ComponentName;IZ)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getUserProvisioningState()I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getUserRestrictions(Landroid/content/ComponentName;)Landroid/os/Bundle;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getWifiMacAddress(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasDeviceOwner()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasGrantedPolicy(Landroid/content/ComponentName;II)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasUserSetupCompleted()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->installCaCert(Landroid/content/ComponentName;Ljava/lang/String;[B)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->installExistingPackage(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->installKeyPair(Landroid/content/ComponentName;Ljava/lang/String;[B[B[BLjava/lang/String;ZZ)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAccessibilityServicePermittedByAdmin(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isActivePasswordSufficient(IZ)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAdminActive(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAffiliatedUser()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isBackupServiceEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isCaCertApproved(Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isCallerApplicationRestrictionsManagingPackage(Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isCurrentInputMethodSetByOwner()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isDeviceProvisioned()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isDeviceProvisioningConfigApplied()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isEphemeralUser(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isInputMethodPermittedByAdmin(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isLockTaskPermitted(Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isLogoutEnabled()Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isManagedProfile(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isMasterVolumeMuted(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isMeteredDataDisabledPackageForUser(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isNetworkLoggingEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isNotificationListenerServicePermitted(Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isOverrideApnEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isPackageSuspended(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isProfileActivePasswordSufficientForParent(I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isProvisioningAllowed(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isRemovingAdmin(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isResetPasswordTokenActive(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isSecurityLoggingEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isSeparateProfileChallengeAllowed(I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isSystemOnlyUser(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isUninstallInQueue(Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isUsingUnifiedPassword(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->lockNow(IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->logoutUser(Landroid/content/ComponentName;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->notifyLockTaskModeChanged(ZLjava/lang/String;I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->notifyPendingSystemUpdate(Landroid/app/admin/SystemUpdateInfo;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->packageHasActiveAdmins(Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reboot(Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->removeActiveAdmin(Landroid/content/ComponentName;I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->removeCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->removeKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->removeOverrideApn(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->removeUser(Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportFailedFingerprintAttempt(I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportFailedPasswordAttempt(I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportKeyguardDismissed(I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportKeyguardSecured(I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportPasswordChanged(I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportSuccessfulFingerprintAttempt(I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportSuccessfulPasswordAttempt(I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->requestBugreport(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->resetPassword(Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->resetPasswordWithToken(Landroid/content/ComponentName;Ljava/lang/String;[BI)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->retrieveNetworkLogs(Landroid/content/ComponentName;J)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->retrievePreRebootSecurityLogs(Landroid/content/ComponentName;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->retrieveSecurityLogs(Landroid/content/ComponentName;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setAccountManagementDisabled(Landroid/content/ComponentName;Ljava/lang/String;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setActiveAdmin(Landroid/content/ComponentName;ZI)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setActivePasswordState(Landroid/app/admin/PasswordMetrics;I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setAffiliationIds(Landroid/content/ComponentName;Ljava/util/List;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setAlwaysOnVpnPackage(Landroid/content/ComponentName;Ljava/lang/String;Z)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Z)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setApplicationRestrictionsManagingPackage(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setAutoTimeRequired(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setBackupServiceEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setBluetoothContactSharingDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setCameraDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setCertInstallerPackage(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setCrossProfileCallerIdDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setDefaultSmsApplication(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setDeviceOwner(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setDeviceOwnerLockScreenInfo(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setDeviceProvisioningConfigApplied()V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setEndUserSessionMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setForceEphemeralUsers(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setGlobalProxy(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setGlobalSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setKeepUninstalledPackages(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setKeyguardDisabled(Landroid/content/ComponentName;Z)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setKeyPairCertificate(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;[B[BZ)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setLockTaskFeatures(Landroid/content/ComponentName;I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setLockTaskPackages(Landroid/content/ComponentName;[Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setLogoutEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setLongSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setMandatoryBackupTransport(Landroid/content/ComponentName;Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setMasterVolumeMuted(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setMaximumTimeToLock(Landroid/content/ComponentName;JZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setMeteredDataDisabledPackages(Landroid/content/ComponentName;Ljava/util/List;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setNetworkLoggingEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setOrganizationColor(Landroid/content/ComponentName;I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setOrganizationColorForUser(II)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setOrganizationName(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setOverrideApnsEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPackagesSuspended(Landroid/content/ComponentName;Ljava/lang/String;[Ljava/lang/String;Z)[Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordExpirationTimeout(Landroid/content/ComponentName;JZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordHistoryLength(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumLength(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumLetters(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordQuality(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPermissionGrantState(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPermissionPolicy(Landroid/content/ComponentName;Ljava/lang/String;I)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPermittedAccessibilityServices(Landroid/content/ComponentName;Ljava/util/List;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPermittedCrossProfileNotificationListeners(Landroid/content/ComponentName;Ljava/util/List;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPermittedInputMethods(Landroid/content/ComponentName;Ljava/util/List;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setProfileEnabled(Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setProfileName(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setProfileOwner(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setRecommendedGlobalProxy(Landroid/content/ComponentName;Landroid/net/ProxyInfo;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setRequiredStrongAuthTimeout(Landroid/content/ComponentName;JZ)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setResetPasswordToken(Landroid/content/ComponentName;[B)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setRestrictionsProvider(Landroid/content/ComponentName;Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setScreenCaptureDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setSecureSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setSecurityLoggingEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setShortSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setStartUserSessionMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setStatusBarDisabled(Landroid/content/ComponentName;Z)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setStorageEncryption(Landroid/content/ComponentName;Z)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setSystemSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setSystemUpdatePolicy(Landroid/content/ComponentName;Landroid/app/admin/SystemUpdatePolicy;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setTime(Landroid/content/ComponentName;J)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setTimeZone(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setTrustAgentConfiguration(Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/os/PersistableBundle;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setUserIcon(Landroid/content/ComponentName;Landroid/graphics/Bitmap;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setUserProvisioningState(II)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;Z)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->startManagedQuickContact(Ljava/lang/String;JZJLandroid/content/Intent;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->startUserInBackground(Landroid/content/ComponentName;Landroid/os/UserHandle;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->stopUser(Landroid/content/ComponentName;Landroid/os/UserHandle;)I
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->switchUser(Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->transferOwnership(Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/os/PersistableBundle;)V
+Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->uninstallCaCerts(Landroid/content/ComponentName;Ljava/lang/String;[Ljava/lang/String;)V
+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
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_addCrossProfileWidgetProvider:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_addOverrideApn:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_addPersistentPreferredActivity:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_approveCaCert:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_bindDeviceAdminServiceAsUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_checkProvisioningPreCondition:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_choosePrivateKeyAlias:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_clearApplicationUserData:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_clearCrossProfileIntentFilters:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_clearDeviceOwner:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_clearPackagePersistentPreferredActivities:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_clearProfileOwner:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_clearResetPasswordToken:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_clearSystemUpdatePolicyFreezePeriodRecord:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_createAdminSupportIntent:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_createAndManageUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_enableSystemApp:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_enableSystemAppWithIntent:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_enforceCanManageCaCerts:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_forceRemoveActiveAdmin:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_forceSecurityLogs:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_forceUpdateUserSetupComplete:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_generateKeyPair:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getAccountTypesWithManagementDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getAccountTypesWithManagementDisabledAsUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getActiveAdmins:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getAffiliationIds:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getAlwaysOnVpnPackage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getApplicationRestrictions:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getApplicationRestrictionsManagingPackage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getAutoTimeRequired:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getBindDeviceAdminTargetUsers:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getBluetoothContactSharingDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getBluetoothContactSharingDisabledForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getCameraDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getCertInstallerPackage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getCrossProfileCallerIdDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getCrossProfileCallerIdDisabledForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getCrossProfileContactsSearchDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getCrossProfileContactsSearchDisabledForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getCrossProfileWidgetProviders:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getCurrentFailedPasswordAttempts:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDelegatedScopes:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDelegatePackages:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDeviceOwnerComponent:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDeviceOwnerLockScreenInfo:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDeviceOwnerName:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDeviceOwnerOrganizationName:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDeviceOwnerUserId:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDisallowedSystemApps:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getDoNotAskCredentialsOnBoot:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getEndUserSessionMessage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getForceEphemeralUsers:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getGlobalProxyAdmin:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getKeepUninstalledPackages:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getKeyguardDisabledFeatures:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getLastBugReportRequestTime:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getLastNetworkLogRetrievalTime:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getLastSecurityLogRetrievalTime:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getLockTaskFeatures:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getLockTaskPackages:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getLongSupportMessage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getLongSupportMessageForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getMandatoryBackupTransport:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getMaximumFailedPasswordsForWipe:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getMaximumTimeToLock:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getMeteredDataDisabledPackages:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getOrganizationColor:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getOrganizationColorForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getOrganizationName:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getOrganizationNameForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getOverrideApns:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getOwnerInstalledCaCerts:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordExpiration:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordExpirationTimeout:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordHistoryLength:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordMinimumLength:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordMinimumLetters:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordMinimumLowerCase:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordMinimumNonLetter:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordMinimumNumeric:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordMinimumSymbols:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordMinimumUpperCase:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPasswordQuality:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPendingSystemUpdate:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPermissionGrantState:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPermissionPolicy:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPermittedAccessibilityServices:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPermittedAccessibilityServicesForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPermittedCrossProfileNotificationListeners:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPermittedInputMethods:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getPermittedInputMethodsForCurrentUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getProfileOwner:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getProfileOwnerName:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getProfileWithMinimumFailedPasswordsForWipe:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getRemoveWarning:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getRequiredStrongAuthTimeout:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getRestrictionsProvider:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getScreenCaptureDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getSecondaryUsers:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getShortSupportMessage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getShortSupportMessageForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getStartUserSessionMessage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getStorageEncryption:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getStorageEncryptionStatus:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getSystemUpdatePolicy:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getTransferOwnershipBundle:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getTrustAgentConfiguration:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getUserProvisioningState:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getUserRestrictions:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_getWifiMacAddress:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_hasDeviceOwner:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_hasGrantedPolicy:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_hasUserSetupCompleted:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_installCaCert:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_installExistingPackage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_installKeyPair:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isAccessibilityServicePermittedByAdmin:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isActivePasswordSufficient:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isAdminActive:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isAffiliatedUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isApplicationHidden:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isBackupServiceEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isCaCertApproved:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isCallerApplicationRestrictionsManagingPackage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isCurrentInputMethodSetByOwner:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isDeviceProvisioned:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isDeviceProvisioningConfigApplied:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isEphemeralUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isInputMethodPermittedByAdmin:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isLockTaskPermitted:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isLogoutEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isManagedProfile:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isMasterVolumeMuted:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isMeteredDataDisabledPackageForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isNetworkLoggingEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isNotificationListenerServicePermitted:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isOverrideApnEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isPackageSuspended:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isProfileActivePasswordSufficientForParent:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isProvisioningAllowed:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isRemovingAdmin:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isResetPasswordTokenActive:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isSecurityLoggingEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isSeparateProfileChallengeAllowed:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isSystemOnlyUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isUninstallBlocked:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isUninstallInQueue:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_isUsingUnifiedPassword:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_lockNow:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_logoutUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_notifyLockTaskModeChanged:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_notifyPendingSystemUpdate:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_reboot:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeCrossProfileWidgetProvider:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeKeyPair:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeOverrideApn:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_reportFailedFingerprintAttempt:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_reportFailedPasswordAttempt:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_reportKeyguardDismissed:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_reportKeyguardSecured:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_reportPasswordChanged:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_reportSuccessfulFingerprintAttempt:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_reportSuccessfulPasswordAttempt:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_requestBugreport:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_resetPassword:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_resetPasswordWithToken:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_retrieveNetworkLogs:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_retrievePreRebootSecurityLogs:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_retrieveSecurityLogs:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setAccountManagementDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setActiveAdmin:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setActivePasswordState:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setAffiliationIds:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setAlwaysOnVpnPackage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setApplicationHidden:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setApplicationRestrictions:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setApplicationRestrictionsManagingPackage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setAutoTimeRequired:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setBackupServiceEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setBluetoothContactSharingDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setCameraDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setCertInstallerPackage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setCrossProfileCallerIdDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setCrossProfileContactsSearchDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setDefaultSmsApplication:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setDelegatedScopes:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setDeviceOwner:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setDeviceOwnerLockScreenInfo:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setDeviceProvisioningConfigApplied:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setEndUserSessionMessage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setForceEphemeralUsers:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setGlobalProxy:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setGlobalSetting:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setKeepUninstalledPackages:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setKeyguardDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setKeyguardDisabledFeatures:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setKeyPairCertificate:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setLockTaskFeatures:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setLockTaskPackages:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setLogoutEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setLongSupportMessage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setMandatoryBackupTransport:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setMasterVolumeMuted:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setMaximumFailedPasswordsForWipe:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setMaximumTimeToLock:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setMeteredDataDisabledPackages:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setNetworkLoggingEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setOrganizationColor:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setOrganizationColorForUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setOrganizationName:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setOverrideApnsEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPackagesSuspended:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordExpirationTimeout:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordHistoryLength:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordMinimumLength:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordMinimumLetters:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordMinimumLowerCase:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordMinimumNonLetter:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordMinimumNumeric:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordMinimumSymbols:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordMinimumUpperCase:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPasswordQuality:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPermissionGrantState:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPermissionPolicy:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPermittedAccessibilityServices:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPermittedCrossProfileNotificationListeners:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setPermittedInputMethods:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setProfileEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setProfileName:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setProfileOwner:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setRecommendedGlobalProxy:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setRequiredStrongAuthTimeout:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setResetPasswordToken:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setRestrictionsProvider:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setScreenCaptureDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setSecureSetting:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setSecurityLoggingEnabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setShortSupportMessage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setStartUserSessionMessage:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setStatusBarDisabled:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setStorageEncryption:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setSystemSetting:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setSystemUpdatePolicy:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setTime:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setTimeZone:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setTrustAgentConfiguration:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setUninstallBlocked:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setUserIcon:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setUserProvisioningState:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_setUserRestriction:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_startManagedQuickContact:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_startUserInBackground:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_stopUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_switchUser:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_transferOwnership:I
+Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_uninstallCaCerts:I
+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
+Landroid/app/admin/IDevicePolicyManager;->addPersistentPreferredActivity(Landroid/content/ComponentName;Landroid/content/IntentFilter;Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager;->approveCaCert(Ljava/lang/String;IZ)Z
+Landroid/app/admin/IDevicePolicyManager;->bindDeviceAdminServiceAsUser(Landroid/content/ComponentName;Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Landroid/app/IServiceConnection;II)Z
+Landroid/app/admin/IDevicePolicyManager;->checkProvisioningPreCondition(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/app/admin/IDevicePolicyManager;->choosePrivateKeyAlias(ILandroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/app/admin/IDevicePolicyManager;->clearApplicationUserData(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
+Landroid/app/admin/IDevicePolicyManager;->clearCrossProfileIntentFilters(Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager;->clearDeviceOwner(Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->clearPackagePersistentPreferredActivities(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->clearProfileOwner(Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager;->clearResetPasswordToken(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->clearSystemUpdatePolicyFreezePeriodRecord()V
+Landroid/app/admin/IDevicePolicyManager;->createAdminSupportIntent(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/app/admin/IDevicePolicyManager;->createAndManageUser(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/PersistableBundle;I)Landroid/os/UserHandle;
+Landroid/app/admin/IDevicePolicyManager;->enableSystemApp(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->enableSystemAppWithIntent(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;)I
+Landroid/app/admin/IDevicePolicyManager;->enforceCanManageCaCerts(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->forceRemoveActiveAdmin(Landroid/content/ComponentName;I)V
+Landroid/app/admin/IDevicePolicyManager;->forceSecurityLogs()J
+Landroid/app/admin/IDevicePolicyManager;->forceUpdateUserSetupComplete()V
+Landroid/app/admin/IDevicePolicyManager;->generateKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;ILandroid/security/keymaster/KeymasterCertificateChain;)Z
+Landroid/app/admin/IDevicePolicyManager;->getAccountTypesWithManagementDisabled()[Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->getActiveAdmins(I)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getAffiliationIds(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getAlwaysOnVpnPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->getApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/app/admin/IDevicePolicyManager;->getApplicationRestrictionsManagingPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->getAutoTimeRequired()Z
+Landroid/app/admin/IDevicePolicyManager;->getBindDeviceAdminTargetUsers(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getBluetoothContactSharingDisabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->getBluetoothContactSharingDisabledForUser(I)Z
+Landroid/app/admin/IDevicePolicyManager;->getCameraDisabled(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager;->getCertInstallerPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->getCrossProfileCallerIdDisabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->getCrossProfileCallerIdDisabledForUser(I)Z
+Landroid/app/admin/IDevicePolicyManager;->getCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->getCrossProfileContactsSearchDisabledForUser(I)Z
+Landroid/app/admin/IDevicePolicyManager;->getCrossProfileWidgetProviders(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getCurrentFailedPasswordAttempts(IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getDelegatePackages(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager;->getDeviceOwnerLockScreenInfo()Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getDeviceOwnerName()Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getDeviceOwnerUserId()I
+Landroid/app/admin/IDevicePolicyManager;->getDisallowedSystemApps(Landroid/content/ComponentName;ILjava/lang/String;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getDoNotAskCredentialsOnBoot()Z
+Landroid/app/admin/IDevicePolicyManager;->getEndUserSessionMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getForceEphemeralUsers(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->getGlobalProxyAdmin(I)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager;->getKeepUninstalledPackages(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getLastBugReportRequestTime()J
+Landroid/app/admin/IDevicePolicyManager;->getLastNetworkLogRetrievalTime()J
+Landroid/app/admin/IDevicePolicyManager;->getLastSecurityLogRetrievalTime()J
+Landroid/app/admin/IDevicePolicyManager;->getLockTaskFeatures(Landroid/content/ComponentName;)I
+Landroid/app/admin/IDevicePolicyManager;->getLockTaskPackages(Landroid/content/ComponentName;)[Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->getLongSupportMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getLongSupportMessageForUser(Landroid/content/ComponentName;I)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getMandatoryBackupTransport()Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getMaximumTimeToLock(Landroid/content/ComponentName;IZ)J
+Landroid/app/admin/IDevicePolicyManager;->getMeteredDataDisabledPackages(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getOrganizationColor(Landroid/content/ComponentName;)I
+Landroid/app/admin/IDevicePolicyManager;->getOrganizationColorForUser(I)I
+Landroid/app/admin/IDevicePolicyManager;->getOrganizationName(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getOrganizationNameForUser(I)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getOverrideApns(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getOwnerInstalledCaCerts(Landroid/os/UserHandle;)Landroid/content/pm/StringParceledListSlice;
+Landroid/app/admin/IDevicePolicyManager;->getPasswordExpiration(Landroid/content/ComponentName;IZ)J
+Landroid/app/admin/IDevicePolicyManager;->getPasswordExpirationTimeout(Landroid/content/ComponentName;IZ)J
+Landroid/app/admin/IDevicePolicyManager;->getPasswordHistoryLength(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPasswordMinimumLength(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPasswordMinimumLetters(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getPendingSystemUpdate(Landroid/content/ComponentName;)Landroid/app/admin/SystemUpdateInfo;
+Landroid/app/admin/IDevicePolicyManager;->getPermissionGrantState(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/app/admin/IDevicePolicyManager;->getPermissionPolicy(Landroid/content/ComponentName;)I
+Landroid/app/admin/IDevicePolicyManager;->getPermittedAccessibilityServices(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getPermittedAccessibilityServicesForUser(I)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getPermittedCrossProfileNotificationListeners(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getPermittedInputMethods(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getPermittedInputMethodsForCurrentUser()Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getProfileOwner(I)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager;->getProfileOwnerName(I)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->getProfileWithMinimumFailedPasswordsForWipe(IZ)I
+Landroid/app/admin/IDevicePolicyManager;->getRemoveWarning(Landroid/content/ComponentName;Landroid/os/RemoteCallback;I)V
+Landroid/app/admin/IDevicePolicyManager;->getRequiredStrongAuthTimeout(Landroid/content/ComponentName;IZ)J
+Landroid/app/admin/IDevicePolicyManager;->getRestrictionsProvider(I)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager;->getScreenCaptureDisabled(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager;->getSecondaryUsers(Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getShortSupportMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getShortSupportMessageForUser(Landroid/content/ComponentName;I)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getStartUserSessionMessage(Landroid/content/ComponentName;)Ljava/lang/CharSequence;
+Landroid/app/admin/IDevicePolicyManager;->getStorageEncryption(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager;->getStorageEncryptionStatus(Ljava/lang/String;I)I
+Landroid/app/admin/IDevicePolicyManager;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
+Landroid/app/admin/IDevicePolicyManager;->getTransferOwnershipBundle()Landroid/os/PersistableBundle;
+Landroid/app/admin/IDevicePolicyManager;->getTrustAgentConfiguration(Landroid/content/ComponentName;Landroid/content/ComponentName;IZ)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->getUserProvisioningState()I
+Landroid/app/admin/IDevicePolicyManager;->getUserRestrictions(Landroid/content/ComponentName;)Landroid/os/Bundle;
+Landroid/app/admin/IDevicePolicyManager;->getWifiMacAddress(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->hasDeviceOwner()Z
+Landroid/app/admin/IDevicePolicyManager;->hasGrantedPolicy(Landroid/content/ComponentName;II)Z
+Landroid/app/admin/IDevicePolicyManager;->hasUserSetupCompleted()Z
+Landroid/app/admin/IDevicePolicyManager;->installCaCert(Landroid/content/ComponentName;Ljava/lang/String;[B)Z
+Landroid/app/admin/IDevicePolicyManager;->installExistingPackage(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->installKeyPair(Landroid/content/ComponentName;Ljava/lang/String;[B[B[BLjava/lang/String;ZZ)Z
+Landroid/app/admin/IDevicePolicyManager;->isAccessibilityServicePermittedByAdmin(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->isActivePasswordSufficient(IZ)Z
+Landroid/app/admin/IDevicePolicyManager;->isAdminActive(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager;->isAffiliatedUser()Z
+Landroid/app/admin/IDevicePolicyManager;->isApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->isBackupServiceEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isCaCertApproved(Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->isCallerApplicationRestrictionsManagingPackage(Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->isCurrentInputMethodSetByOwner()Z
+Landroid/app/admin/IDevicePolicyManager;->isDeviceProvisioned()Z
+Landroid/app/admin/IDevicePolicyManager;->isDeviceProvisioningConfigApplied()Z
+Landroid/app/admin/IDevicePolicyManager;->isEphemeralUser(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isInputMethodPermittedByAdmin(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->isLockTaskPermitted(Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->isLogoutEnabled()Z
+Landroid/app/admin/IDevicePolicyManager;->isManagedProfile(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isMasterVolumeMuted(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isMeteredDataDisabledPackageForUser(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->isNetworkLoggingEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isNotificationListenerServicePermitted(Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->isOverrideApnEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isPackageSuspended(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->isProfileActivePasswordSufficientForParent(I)Z
+Landroid/app/admin/IDevicePolicyManager;->isProvisioningAllowed(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->isRemovingAdmin(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager;->isResetPasswordTokenActive(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isSecurityLoggingEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isSeparateProfileChallengeAllowed(I)Z
+Landroid/app/admin/IDevicePolicyManager;->isSystemOnlyUser(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->isUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->isUninstallInQueue(Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->isUsingUnifiedPassword(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->lockNow(IZ)V
+Landroid/app/admin/IDevicePolicyManager;->logoutUser(Landroid/content/ComponentName;)I
+Landroid/app/admin/IDevicePolicyManager;->notifyLockTaskModeChanged(ZLjava/lang/String;I)V
+Landroid/app/admin/IDevicePolicyManager;->notifyPendingSystemUpdate(Landroid/app/admin/SystemUpdateInfo;)V
+Landroid/app/admin/IDevicePolicyManager;->reboot(Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager;->removeActiveAdmin(Landroid/content/ComponentName;I)V
+Landroid/app/admin/IDevicePolicyManager;->removeCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->removeKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->removeOverrideApn(Landroid/content/ComponentName;I)Z
+Landroid/app/admin/IDevicePolicyManager;->removeUser(Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+Landroid/app/admin/IDevicePolicyManager;->reportFailedFingerprintAttempt(I)V
+Landroid/app/admin/IDevicePolicyManager;->reportFailedPasswordAttempt(I)V
+Landroid/app/admin/IDevicePolicyManager;->reportKeyguardDismissed(I)V
+Landroid/app/admin/IDevicePolicyManager;->reportKeyguardSecured(I)V
+Landroid/app/admin/IDevicePolicyManager;->reportPasswordChanged(I)V
+Landroid/app/admin/IDevicePolicyManager;->reportSuccessfulFingerprintAttempt(I)V
+Landroid/app/admin/IDevicePolicyManager;->reportSuccessfulPasswordAttempt(I)V
+Landroid/app/admin/IDevicePolicyManager;->requestBugreport(Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->resetPassword(Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->resetPasswordWithToken(Landroid/content/ComponentName;Ljava/lang/String;[BI)Z
+Landroid/app/admin/IDevicePolicyManager;->retrieveNetworkLogs(Landroid/content/ComponentName;J)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->retrievePreRebootSecurityLogs(Landroid/content/ComponentName;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/admin/IDevicePolicyManager;->retrieveSecurityLogs(Landroid/content/ComponentName;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/admin/IDevicePolicyManager;->setAccountManagementDisabled(Landroid/content/ComponentName;Ljava/lang/String;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setActiveAdmin(Landroid/content/ComponentName;ZI)V
+Landroid/app/admin/IDevicePolicyManager;->setActivePasswordState(Landroid/app/admin/PasswordMetrics;I)V
+Landroid/app/admin/IDevicePolicyManager;->setAffiliationIds(Landroid/content/ComponentName;Ljava/util/List;)V
+Landroid/app/admin/IDevicePolicyManager;->setAlwaysOnVpnPackage(Landroid/content/ComponentName;Ljava/lang/String;Z)Z
+Landroid/app/admin/IDevicePolicyManager;->setApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Z)Z
+Landroid/app/admin/IDevicePolicyManager;->setApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/app/admin/IDevicePolicyManager;->setApplicationRestrictionsManagingPackage(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->setAutoTimeRequired(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setBackupServiceEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setBluetoothContactSharingDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setCameraDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setCertInstallerPackage(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->setCrossProfileCallerIdDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setDefaultSmsApplication(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->setDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
+Landroid/app/admin/IDevicePolicyManager;->setDeviceOwner(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->setDeviceOwnerLockScreenInfo(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager;->setDeviceProvisioningConfigApplied()V
+Landroid/app/admin/IDevicePolicyManager;->setEndUserSessionMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager;->setForceEphemeralUsers(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setGlobalProxy(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
+Landroid/app/admin/IDevicePolicyManager;->setGlobalSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->setKeepUninstalledPackages(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
+Landroid/app/admin/IDevicePolicyManager;->setKeyguardDisabled(Landroid/content/ComponentName;Z)Z
+Landroid/app/admin/IDevicePolicyManager;->setKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setKeyPairCertificate(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;[B[BZ)Z
+Landroid/app/admin/IDevicePolicyManager;->setLockTaskFeatures(Landroid/content/ComponentName;I)V
+Landroid/app/admin/IDevicePolicyManager;->setLockTaskPackages(Landroid/content/ComponentName;[Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->setLogoutEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setLongSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager;->setMandatoryBackupTransport(Landroid/content/ComponentName;Landroid/content/ComponentName;)Z
+Landroid/app/admin/IDevicePolicyManager;->setMasterVolumeMuted(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setMaximumTimeToLock(Landroid/content/ComponentName;JZ)V
+Landroid/app/admin/IDevicePolicyManager;->setMeteredDataDisabledPackages(Landroid/content/ComponentName;Ljava/util/List;)Ljava/util/List;
+Landroid/app/admin/IDevicePolicyManager;->setNetworkLoggingEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setOrganizationColor(Landroid/content/ComponentName;I)V
+Landroid/app/admin/IDevicePolicyManager;->setOrganizationColorForUser(II)V
+Landroid/app/admin/IDevicePolicyManager;->setOrganizationName(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager;->setOverrideApnsEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setPackagesSuspended(Landroid/content/ComponentName;Ljava/lang/String;[Ljava/lang/String;Z)[Ljava/lang/String;
+Landroid/app/admin/IDevicePolicyManager;->setPasswordExpirationTimeout(Landroid/content/ComponentName;JZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordHistoryLength(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordMinimumLength(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordMinimumLetters(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPasswordQuality(Landroid/content/ComponentName;IZ)V
+Landroid/app/admin/IDevicePolicyManager;->setPermissionGrantState(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->setPermissionPolicy(Landroid/content/ComponentName;Ljava/lang/String;I)V
+Landroid/app/admin/IDevicePolicyManager;->setPermittedAccessibilityServices(Landroid/content/ComponentName;Ljava/util/List;)Z
+Landroid/app/admin/IDevicePolicyManager;->setPermittedCrossProfileNotificationListeners(Landroid/content/ComponentName;Ljava/util/List;)Z
+Landroid/app/admin/IDevicePolicyManager;->setPermittedInputMethods(Landroid/content/ComponentName;Ljava/util/List;)Z
+Landroid/app/admin/IDevicePolicyManager;->setProfileEnabled(Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager;->setProfileName(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->setProfileOwner(Landroid/content/ComponentName;Ljava/lang/String;I)Z
+Landroid/app/admin/IDevicePolicyManager;->setRecommendedGlobalProxy(Landroid/content/ComponentName;Landroid/net/ProxyInfo;)V
+Landroid/app/admin/IDevicePolicyManager;->setRequiredStrongAuthTimeout(Landroid/content/ComponentName;JZ)V
+Landroid/app/admin/IDevicePolicyManager;->setResetPasswordToken(Landroid/content/ComponentName;[B)Z
+Landroid/app/admin/IDevicePolicyManager;->setRestrictionsProvider(Landroid/content/ComponentName;Landroid/content/ComponentName;)V
+Landroid/app/admin/IDevicePolicyManager;->setScreenCaptureDisabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setSecureSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->setSecurityLoggingEnabled(Landroid/content/ComponentName;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setShortSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager;->setStartUserSessionMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+Landroid/app/admin/IDevicePolicyManager;->setStatusBarDisabled(Landroid/content/ComponentName;Z)Z
+Landroid/app/admin/IDevicePolicyManager;->setStorageEncryption(Landroid/content/ComponentName;Z)I
+Landroid/app/admin/IDevicePolicyManager;->setSystemSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->setSystemUpdatePolicy(Landroid/content/ComponentName;Landroid/app/admin/SystemUpdatePolicy;)V
+Landroid/app/admin/IDevicePolicyManager;->setTime(Landroid/content/ComponentName;J)Z
+Landroid/app/admin/IDevicePolicyManager;->setTimeZone(Landroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/app/admin/IDevicePolicyManager;->setTrustAgentConfiguration(Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/os/PersistableBundle;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/app/admin/IDevicePolicyManager;->setUserIcon(Landroid/content/ComponentName;Landroid/graphics/Bitmap;)V
+Landroid/app/admin/IDevicePolicyManager;->setUserProvisioningState(II)V
+Landroid/app/admin/IDevicePolicyManager;->setUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;Z)V
+Landroid/app/admin/IDevicePolicyManager;->startManagedQuickContact(Ljava/lang/String;JZJLandroid/content/Intent;)V
+Landroid/app/admin/IDevicePolicyManager;->startUserInBackground(Landroid/content/ComponentName;Landroid/os/UserHandle;)I
+Landroid/app/admin/IDevicePolicyManager;->stopUser(Landroid/content/ComponentName;Landroid/os/UserHandle;)I
+Landroid/app/admin/IDevicePolicyManager;->switchUser(Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+Landroid/app/admin/IDevicePolicyManager;->transferOwnership(Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/os/PersistableBundle;)V
+Landroid/app/admin/IDevicePolicyManager;->uninstallCaCerts(Landroid/content/ComponentName;Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->uninstallPackageWithActiveAdmins(Ljava/lang/String;)V
+Landroid/app/admin/IDevicePolicyManager;->updateOverrideApn(Landroid/content/ComponentName;ILandroid/telephony/data/ApnSetting;)Z
+Landroid/app/admin/IDevicePolicyManager;->wipeDataWithReason(ILjava/lang/String;)V
+Landroid/app/admin/NetworkEvent;-><init>()V
+Landroid/app/admin/NetworkEvent;-><init>(Ljava/lang/String;J)V
+Landroid/app/admin/NetworkEvent;->mId:J
+Landroid/app/admin/NetworkEvent;->mPackageName:Ljava/lang/String;
+Landroid/app/admin/NetworkEvent;->mTimestamp:J
+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
+Landroid/app/admin/PasswordMetrics;-><init>(Landroid/os/Parcel;)V
+Landroid/app/admin/PasswordMetrics;->categoryChar(C)I
+Landroid/app/admin/PasswordMetrics;->CHAR_DIGIT:I
+Landroid/app/admin/PasswordMetrics;->CHAR_LOWER_CASE:I
+Landroid/app/admin/PasswordMetrics;->CHAR_SYMBOL:I
+Landroid/app/admin/PasswordMetrics;->CHAR_UPPER_CASE:I
+Landroid/app/admin/PasswordMetrics;->computeForPassword(Ljava/lang/String;)Landroid/app/admin/PasswordMetrics;
+Landroid/app/admin/PasswordMetrics;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/admin/PasswordMetrics;->isDefault()Z
+Landroid/app/admin/PasswordMetrics;->length:I
+Landroid/app/admin/PasswordMetrics;->letters:I
+Landroid/app/admin/PasswordMetrics;->lowerCase:I
+Landroid/app/admin/PasswordMetrics;->maxDiffCategory(I)I
+Landroid/app/admin/PasswordMetrics;->maxLengthSequence(Ljava/lang/String;)I
+Landroid/app/admin/PasswordMetrics;->MAX_ALLOWED_SEQUENCE:I
+Landroid/app/admin/PasswordMetrics;->nonLetter:I
+Landroid/app/admin/PasswordMetrics;->numeric:I
+Landroid/app/admin/PasswordMetrics;->quality:I
+Landroid/app/admin/PasswordMetrics;->symbols:I
+Landroid/app/admin/PasswordMetrics;->upperCase:I
+Landroid/app/admin/SecurityLog$SecurityEvent;-><init>(Landroid/os/Parcel;)V
+Landroid/app/admin/SecurityLog$SecurityEvent;->getSuccess()Z
+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;
+Landroid/app/admin/SecurityLog;->readEvents(Ljava/util/Collection;)V
+Landroid/app/admin/SecurityLog;->readEventsOnWrapping(JLjava/util/Collection;)V
+Landroid/app/admin/SecurityLog;->readEventsSince(JLjava/util/Collection;)V
+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
+Landroid/app/admin/SecurityLogTags;->SECURITY_ADB_SYNC_RECV:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_ADB_SYNC_SEND:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_APP_PROCESS_START:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_CERT_AUTHORITY_INSTALLED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_CERT_AUTHORITY_REMOVED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_CERT_VALIDATION_FAILURE:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_CRYPTO_SELF_TEST_COMPLETED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_KEYGUARD_DISABLED_FEATURES_SET:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_KEYGUARD_DISMISSED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_KEYGUARD_DISMISS_AUTH_ATTEMPT:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_KEYGUARD_SECURED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_KEY_DESTROYED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_KEY_GENERATED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_KEY_IMPORTED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_KEY_INTEGRITY_VIOLATION:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_LOGGING_STARTED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_LOGGING_STOPPED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_LOG_BUFFER_SIZE_CRITICAL:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_MAX_PASSWORD_ATTEMPTS_SET:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_MAX_SCREEN_LOCK_TIMEOUT_SET:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_MEDIA_MOUNTED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_MEDIA_UNMOUNTED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_OS_SHUTDOWN:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_OS_STARTUP:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_PASSWORD_COMPLEXITY_SET:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_PASSWORD_EXPIRATION_SET:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_PASSWORD_HISTORY_LENGTH_SET:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_REMOTE_LOCK:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_USER_RESTRICTION_ADDED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_USER_RESTRICTION_REMOVED:I
+Landroid/app/admin/SecurityLogTags;->SECURITY_WIPE_FAILED:I
+Landroid/app/admin/SecurityLogTags;->writeSecurityAdbShellCommand(Ljava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityAdbShellInteractive()V
+Landroid/app/admin/SecurityLogTags;->writeSecurityAdbSyncRecv(Ljava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityAdbSyncSend(Ljava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityAppProcessStart(Ljava/lang/String;JIILjava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityCertAuthorityInstalled(ILjava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityCertAuthorityRemoved(ILjava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityCertValidationFailure(Ljava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityCryptoSelfTestCompleted(I)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityKeyDestroyed(ILjava/lang/String;I)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityKeyGenerated(ILjava/lang/String;I)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityKeyguardDisabledFeaturesSet(Ljava/lang/String;III)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityKeyguardDismissAuthAttempt(II)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityKeyguardDismissed()V
+Landroid/app/admin/SecurityLogTags;->writeSecurityKeyguardSecured()V
+Landroid/app/admin/SecurityLogTags;->writeSecurityKeyImported(ILjava/lang/String;I)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityKeyIntegrityViolation(Ljava/lang/String;I)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityLogBufferSizeCritical()V
+Landroid/app/admin/SecurityLogTags;->writeSecurityLoggingStarted()V
+Landroid/app/admin/SecurityLogTags;->writeSecurityLoggingStopped()V
+Landroid/app/admin/SecurityLogTags;->writeSecurityMaxPasswordAttemptsSet(Ljava/lang/String;III)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityMaxScreenLockTimeoutSet(Ljava/lang/String;IIJ)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityMediaMounted(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityMediaUnmounted(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityOsShutdown()V
+Landroid/app/admin/SecurityLogTags;->writeSecurityOsStartup(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityPasswordComplexitySet(Ljava/lang/String;IIIIIIIIII)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityPasswordExpirationSet(Ljava/lang/String;IIJ)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityPasswordHistoryLengthSet(Ljava/lang/String;III)V
+Landroid/app/admin/SecurityLogTags;->writeSecurityRemoteLock(Ljava/lang/String;II)V
+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;
+Landroid/app/admin/SystemUpdateInfo;->ATTR_RECEIVED_TIME:Ljava/lang/String;
+Landroid/app/admin/SystemUpdateInfo;->ATTR_SECURITY_PATCH_STATE:Ljava/lang/String;
+Landroid/app/admin/SystemUpdateInfo;->mReceivedTime:J
+Landroid/app/admin/SystemUpdateInfo;->mSecurityPatchState:I
+Landroid/app/admin/SystemUpdateInfo;->of(J)Landroid/app/admin/SystemUpdateInfo;
+Landroid/app/admin/SystemUpdateInfo;->of(JZ)Landroid/app/admin/SystemUpdateInfo;
+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;
+Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;->duplicateOrOverlapPeriods()Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
+Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;->ERROR_NONE:I
+Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;->freezePeriodTooClose(Ljava/lang/String;)Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
+Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;->freezePeriodTooLong(Ljava/lang/String;)Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
+Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;->mErrorCode:I
+Landroid/app/admin/SystemUpdatePolicy;-><init>()V
+Landroid/app/admin/SystemUpdatePolicy;->dateToMillis(Ljava/time/LocalDate;)J
+Landroid/app/admin/SystemUpdatePolicy;->FREEZE_PERIOD_MAX_LENGTH:I
+Landroid/app/admin/SystemUpdatePolicy;->FREEZE_PERIOD_MIN_SEPARATION:I
+Landroid/app/admin/SystemUpdatePolicy;->getCurrentFreezePeriod(Ljava/time/LocalDate;)Landroid/util/Pair;
+Landroid/app/admin/SystemUpdatePolicy;->getInstallationOptionRegardlessFreezeAt(J)Landroid/app/admin/SystemUpdatePolicy$InstallationOption;
+Landroid/app/admin/SystemUpdatePolicy;->isValid()Z
+Landroid/app/admin/SystemUpdatePolicy;->KEY_FREEZE_END:Ljava/lang/String;
+Landroid/app/admin/SystemUpdatePolicy;->KEY_FREEZE_START:Ljava/lang/String;
+Landroid/app/admin/SystemUpdatePolicy;->KEY_FREEZE_TAG:Ljava/lang/String;
+Landroid/app/admin/SystemUpdatePolicy;->KEY_INSTALL_WINDOW_END:Ljava/lang/String;
+Landroid/app/admin/SystemUpdatePolicy;->KEY_INSTALL_WINDOW_START:Ljava/lang/String;
+Landroid/app/admin/SystemUpdatePolicy;->KEY_POLICY_TYPE:Ljava/lang/String;
+Landroid/app/admin/SystemUpdatePolicy;->mFreezePeriods:Ljava/util/ArrayList;
+Landroid/app/admin/SystemUpdatePolicy;->millisToDate(J)Ljava/time/LocalDate;
+Landroid/app/admin/SystemUpdatePolicy;->mMaintenanceWindowEnd:I
+Landroid/app/admin/SystemUpdatePolicy;->mMaintenanceWindowStart:I
+Landroid/app/admin/SystemUpdatePolicy;->mPolicyType:I
+Landroid/app/admin/SystemUpdatePolicy;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/app/admin/SystemUpdatePolicy;
+Landroid/app/admin/SystemUpdatePolicy;->roundUpLeapDay(Ljava/time/LocalDate;)Ljava/time/LocalDate;
+Landroid/app/admin/SystemUpdatePolicy;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+Landroid/app/admin/SystemUpdatePolicy;->TAG:Ljava/lang/String;
+Landroid/app/admin/SystemUpdatePolicy;->timeUntilNextFreezePeriod(J)J
+Landroid/app/admin/SystemUpdatePolicy;->TYPE_UNKNOWN:I
+Landroid/app/admin/SystemUpdatePolicy;->validateAgainstPreviousFreezePeriod(Ljava/time/LocalDate;Ljava/time/LocalDate;Ljava/time/LocalDate;)V
+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
+Landroid/app/AlarmManager$AlarmClockInfo;-><init>(Landroid/os/Parcel;)V
+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;
+Landroid/app/AlarmManager$ListenerWrapper;->mHandler:Landroid/os/Handler;
+Landroid/app/AlarmManager$ListenerWrapper;->mListener:Landroid/app/AlarmManager$OnAlarmListener;
+Landroid/app/AlarmManager$ListenerWrapper;->setHandler(Landroid/os/Handler;)V
+Landroid/app/AlarmManager;-><init>(Landroid/app/IAlarmManager;Landroid/content/Context;)V
+Landroid/app/AlarmManager;->FLAG_ALLOW_WHILE_IDLE:I
+Landroid/app/AlarmManager;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
+Landroid/app/AlarmManager;->getNextWakeFromIdleTime()J
+Landroid/app/AlarmManager;->legacyExactLength()J
+Landroid/app/AlarmManager;->mAlwaysExact:Z
+Landroid/app/AlarmManager;->mContext:Landroid/content/Context;
+Landroid/app/AlarmManager;->mMainThreadHandler:Landroid/os/Handler;
+Landroid/app/AlarmManager;->mPackageName:Ljava/lang/String;
+Landroid/app/AlarmManager;->mTargetSdkVersion:I
+Landroid/app/AlarmManager;->setIdleUntil(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
+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
+Landroid/app/AlarmManagerProto;->RTC:I
+Landroid/app/AlarmManagerProto;->RTC_WAKEUP:I
+Landroid/app/AlertDialog;-><init>(Landroid/content/Context;IZ)V
+Landroid/app/AlertDialog;->LAYOUT_HINT_NONE:I
+Landroid/app/AlertDialog;->LAYOUT_HINT_SIDE:I
+Landroid/app/AlertDialog;->resolveDialogTheme(Landroid/content/Context;I)I
+Landroid/app/AlertDialog;->setButtonPanelLayoutHint(I)V
+Landroid/app/AlertDialog;->setMessageHyphenationFrequency(I)V
+Landroid/app/AlertDialog;->setMessageMovementMethod(Landroid/text/method/MovementMethod;)V
+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;
+Landroid/app/Application;->dispatchOnProvideAssistData(Landroid/app/Activity;Landroid/os/Bundle;)V
+Landroid/app/Application;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+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
+Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/ApplicationErrorReport;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/app/ApplicationLoaders;->createAndCacheWebViewClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/ClassLoader;
+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;
+Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;->MSG_CREATED:I
+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
+Landroid/app/ApplicationPackageManager;->clearCrossProfileIntentFilters(I)V
+Landroid/app/ApplicationPackageManager;->CORP_BADGE_LABEL_RES_ID:[I
+Landroid/app/ApplicationPackageManager;->DEBUG_ICONS:Z
+Landroid/app/ApplicationPackageManager;->DEFAULT_EPHEMERAL_COOKIE_MAX_SIZE_BYTES:I
+Landroid/app/ApplicationPackageManager;->deleteApplicationCacheFiles(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
+Landroid/app/ApplicationPackageManager;->deleteApplicationCacheFilesAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDataObserver;)V
+Landroid/app/ApplicationPackageManager;->deletePackageAsUser(Ljava/lang/String;Landroid/content/pm/IPackageDeleteObserver;II)V
+Landroid/app/ApplicationPackageManager;->flushPackageRestrictionsAsUser(I)V
+Landroid/app/ApplicationPackageManager;->freeStorage(Ljava/lang/String;JLandroid/content/IntentSender;)V
+Landroid/app/ApplicationPackageManager;->freeStorageAndNotify(Ljava/lang/String;JLandroid/content/pm/IPackageDataObserver;)V
+Landroid/app/ApplicationPackageManager;->getApplicationHiddenSettingAsUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
+Landroid/app/ApplicationPackageManager;->getApplicationInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
+Landroid/app/ApplicationPackageManager;->getBadgedDrawable(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/Rect;Z)Landroid/graphics/drawable/Drawable;
+Landroid/app/ApplicationPackageManager;->getCachedIcon(Landroid/app/ApplicationPackageManager$ResourceName;)Landroid/graphics/drawable/Drawable;
+Landroid/app/ApplicationPackageManager;->getCachedString(Landroid/app/ApplicationPackageManager$ResourceName;)Ljava/lang/CharSequence;
+Landroid/app/ApplicationPackageManager;->getCarLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/app/ApplicationPackageManager;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;
+Landroid/app/ApplicationPackageManager;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
+Landroid/app/ApplicationPackageManager;->getInstantAppAndroidId(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/lang/String;
+Landroid/app/ApplicationPackageManager;->getInstantAppCookieMaxSize()I
+Landroid/app/ApplicationPackageManager;->getKeySetByAlias(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/KeySet;
+Landroid/app/ApplicationPackageManager;->getLaunchIntentForPackageAndCategory(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+Landroid/app/ApplicationPackageManager;->getManagedProfileIconForDensity(Landroid/os/UserHandle;II)Landroid/graphics/drawable/Drawable;
+Landroid/app/ApplicationPackageManager;->getMoveStatus(I)I
+Landroid/app/ApplicationPackageManager;->getPackageCandidateVolumes(Landroid/content/pm/ApplicationInfo;)Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->getPackageCandidateVolumes(Landroid/content/pm/ApplicationInfo;Landroid/os/storage/StorageManager;Landroid/content/pm/IPackageManager;)Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->getPackageCurrentVolume(Landroid/content/pm/ApplicationInfo;Landroid/os/storage/StorageManager;)Landroid/os/storage/VolumeInfo;
+Landroid/app/ApplicationPackageManager;->getPackageInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
+Landroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;I)I
+Landroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;II)I
+Landroid/app/ApplicationPackageManager;->getPrimaryStorageCandidateVolumes()Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->getPrimaryStorageCurrentVolume()Landroid/os/storage/VolumeInfo;
+Landroid/app/ApplicationPackageManager;->getResourcesForApplicationAsUser(Ljava/lang/String;I)Landroid/content/res/Resources;
+Landroid/app/ApplicationPackageManager;->getSharedLibrariesAsUser(II)Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->getSigningKeySet(Ljava/lang/String;)Landroid/content/pm/KeySet;
+Landroid/app/ApplicationPackageManager;->getSystemTextClassifierPackageName()Ljava/lang/String;
+Landroid/app/ApplicationPackageManager;->getUidForSharedUser(Ljava/lang/String;)I
+Landroid/app/ApplicationPackageManager;->getUserBadgeColor(Landroid/os/UserHandle;)I
+Landroid/app/ApplicationPackageManager;->getUserBadgeForDensity(Landroid/os/UserHandle;I)Landroid/graphics/drawable/Drawable;
+Landroid/app/ApplicationPackageManager;->getUserBadgeForDensityNoBackground(Landroid/os/UserHandle;I)Landroid/graphics/drawable/Drawable;
+Landroid/app/ApplicationPackageManager;->getUserId()I
+Landroid/app/ApplicationPackageManager;->getUserManager()Landroid/os/UserManager;
+Landroid/app/ApplicationPackageManager;->getVerifierDeviceIdentity()Landroid/content/pm/VerifierDeviceIdentity;
+Landroid/app/ApplicationPackageManager;->handlePackageBroadcast(I[Ljava/lang/String;Z)V
+Landroid/app/ApplicationPackageManager;->installExistingPackageAsUser(Ljava/lang/String;I)I
+Landroid/app/ApplicationPackageManager;->installExistingPackageAsUser(Ljava/lang/String;II)I
+Landroid/app/ApplicationPackageManager;->isAllow3rdPartyOnInternal(Landroid/content/Context;)Z
+Landroid/app/ApplicationPackageManager;->isForceAllowOnExternal(Landroid/content/Context;)Z
+Landroid/app/ApplicationPackageManager;->isManagedProfile(I)Z
+Landroid/app/ApplicationPackageManager;->isPackageAvailable(Ljava/lang/String;)Z
+Landroid/app/ApplicationPackageManager;->isPackageCandidateVolume(Landroid/app/ContextImpl;Landroid/content/pm/ApplicationInfo;Landroid/os/storage/VolumeInfo;Landroid/content/pm/IPackageManager;)Z
+Landroid/app/ApplicationPackageManager;->isPackageStateProtected(Ljava/lang/String;I)Z
+Landroid/app/ApplicationPackageManager;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
+Landroid/app/ApplicationPackageManager;->isPrimaryStorageCandidateVolume(Landroid/os/storage/VolumeInfo;)Z
+Landroid/app/ApplicationPackageManager;->isSignedBy(Ljava/lang/String;Landroid/content/pm/KeySet;)Z
+Landroid/app/ApplicationPackageManager;->isSignedByExactly(Ljava/lang/String;Landroid/content/pm/KeySet;)Z
+Landroid/app/ApplicationPackageManager;->isUpgrade()Z
+Landroid/app/ApplicationPackageManager;->loadItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
+Landroid/app/ApplicationPackageManager;->loadUnbadgedItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
+Landroid/app/ApplicationPackageManager;->mArtManager:Landroid/content/pm/dex/ArtManager;
+Landroid/app/ApplicationPackageManager;->maybeAdjustApplicationInfo(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
+Landroid/app/ApplicationPackageManager;->mCachedSafeMode:I
+Landroid/app/ApplicationPackageManager;->mContext:Landroid/app/ContextImpl;
+Landroid/app/ApplicationPackageManager;->mDelegates:Ljava/util/ArrayList;
+Landroid/app/ApplicationPackageManager;->mInstaller:Landroid/content/pm/PackageInstaller;
+Landroid/app/ApplicationPackageManager;->mLock:Ljava/lang/Object;
+Landroid/app/ApplicationPackageManager;->movePackage(Ljava/lang/String;Landroid/os/storage/VolumeInfo;)I
+Landroid/app/ApplicationPackageManager;->movePrimaryStorage(Landroid/os/storage/VolumeInfo;)I
+Landroid/app/ApplicationPackageManager;->mPermissionListeners:Ljava/util/Map;
+Landroid/app/ApplicationPackageManager;->mPermissionsControllerPackageName:Ljava/lang/String;
+Landroid/app/ApplicationPackageManager;->mUserManager:Landroid/os/UserManager;
+Landroid/app/ApplicationPackageManager;->putCachedIcon(Landroid/app/ApplicationPackageManager$ResourceName;Landroid/graphics/drawable/Drawable;)V
+Landroid/app/ApplicationPackageManager;->putCachedString(Landroid/app/ApplicationPackageManager$ResourceName;Ljava/lang/CharSequence;)V
+Landroid/app/ApplicationPackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->queryContentProviders(Ljava/lang/String;IILjava/lang/String;)Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->queryIntentContentProvidersAsUser(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;II)Ljava/util/List;
+Landroid/app/ApplicationPackageManager;->registerMoveCallback(Landroid/content/pm/PackageManager$MoveCallback;Landroid/os/Handler;)V
+Landroid/app/ApplicationPackageManager;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;)V
+Landroid/app/ApplicationPackageManager;->replacePreferredActivityAsUser(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
+Landroid/app/ApplicationPackageManager;->resolveActivityAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
+Landroid/app/ApplicationPackageManager;->resolveContentProviderAsUser(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+Landroid/app/ApplicationPackageManager;->resolveServiceAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
+Landroid/app/ApplicationPackageManager;->sDefaultFlags:I
+Landroid/app/ApplicationPackageManager;->setApplicationHiddenSettingAsUser(Ljava/lang/String;ZLandroid/os/UserHandle;)Z
+Landroid/app/ApplicationPackageManager;->sIconCache:Landroid/util/ArrayMap;
+Landroid/app/ApplicationPackageManager;->sStringCache:Landroid/util/ArrayMap;
+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
+Landroid/app/ApplicationThreadConstants;->BACKUP_MODE_RESTORE:I
+Landroid/app/ApplicationThreadConstants;->BACKUP_MODE_RESTORE_FULL:I
+Landroid/app/ApplicationThreadConstants;->DEBUG_OFF:I
+Landroid/app/ApplicationThreadConstants;->DEBUG_ON:I
+Landroid/app/ApplicationThreadConstants;->DEBUG_WAIT:I
+Landroid/app/ApplicationThreadConstants;->EXTERNAL_STORAGE_UNAVAILABLE:I
+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
+Landroid/app/AppOpsManager$OpEntry;-><init>(Landroid/os/Parcel;)V
+Landroid/app/AppOpsManager$OpEntry;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/AppOpsManager$OpEntry;->getLastRejectTimeFor(I)J
+Landroid/app/AppOpsManager$OpEntry;->getLastTimeFor(I)J
+Landroid/app/AppOpsManager$OpEntry;->getProxyPackageName()Ljava/lang/String;
+Landroid/app/AppOpsManager$OpEntry;->getProxyUid()I
+Landroid/app/AppOpsManager$OpEntry;->mDuration:I
+Landroid/app/AppOpsManager$OpEntry;->mMode:I
+Landroid/app/AppOpsManager$OpEntry;->mOp:I
+Landroid/app/AppOpsManager$OpEntry;->mProxyPackageName:Ljava/lang/String;
+Landroid/app/AppOpsManager$OpEntry;->mProxyUid:I
+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;
+Landroid/app/AppOpsManager$PackageOps;->mUid:I
+Landroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
+Landroid/app/AppOpsManager;->buildSecurityExceptionMsg(IILjava/lang/String;)Ljava/lang/String;
+Landroid/app/AppOpsManager;->checkAudioOp(IIILjava/lang/String;)I
+Landroid/app/AppOpsManager;->checkAudioOpNoThrow(IIILjava/lang/String;)I
+Landroid/app/AppOpsManager;->finishOp(I)V
+Landroid/app/AppOpsManager;->finishOp(IILjava/lang/String;)V
+Landroid/app/AppOpsManager;->mActiveWatchers:Landroid/util/ArrayMap;
+Landroid/app/AppOpsManager;->maxTime([JII)J
+Landroid/app/AppOpsManager;->mContext:Landroid/content/Context;
+Landroid/app/AppOpsManager;->mModeWatchers:Landroid/util/ArrayMap;
+Landroid/app/AppOpsManager;->modeToName(I)Ljava/lang/String;
+Landroid/app/AppOpsManager;->MODE_NAMES:[Ljava/lang/String;
+Landroid/app/AppOpsManager;->noteProxyOpNoThrow(ILjava/lang/String;)I
+Landroid/app/AppOpsManager;->opAllowsReset(I)Z
+Landroid/app/AppOpsManager;->opAllowSystemBypassRestriction(I)Z
+Landroid/app/AppOpsManager;->OPSTR_BLUETOOTH_SCAN:Ljava/lang/String;
+Landroid/app/AppOpsManager;->opToDefaultMode(I)I
+Landroid/app/AppOpsManager;->opToRestriction(I)Ljava/lang/String;
+Landroid/app/AppOpsManager;->RUNTIME_AND_APPOP_PERMISSIONS_OPS:[I
+Landroid/app/AppOpsManager;->setUidMode(III)V
+Landroid/app/AppOpsManager;->setUserRestriction(IZLandroid/os/IBinder;)V
+Landroid/app/AppOpsManager;->setUserRestriction(IZLandroid/os/IBinder;[Ljava/lang/String;)V
+Landroid/app/AppOpsManager;->setUserRestrictionForUser(IZLandroid/os/IBinder;[Ljava/lang/String;I)V
+Landroid/app/AppOpsManager;->sOpAllowSystemRestrictionBypass:[Z
+Landroid/app/AppOpsManager;->sOpDefaultMode:[I
+Landroid/app/AppOpsManager;->sOpDisableReset:[Z
+Landroid/app/AppOpsManager;->sOpNames:[Ljava/lang/String;
+Landroid/app/AppOpsManager;->sOpRestrictions:[Ljava/lang/String;
+Landroid/app/AppOpsManager;->sOpStrToOp:Ljava/util/HashMap;
+Landroid/app/AppOpsManager;->sOpToString:[Ljava/lang/String;
+Landroid/app/AppOpsManager;->sOpToSwitch:[I
+Landroid/app/AppOpsManager;->sPermToOp:Ljava/util/HashMap;
+Landroid/app/AppOpsManager;->startOp(I)I
+Landroid/app/AppOpsManager;->startOp(IILjava/lang/String;)I
+Landroid/app/AppOpsManager;->startOp(IILjava/lang/String;Z)I
+Landroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;)I
+Landroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;Z)I
+Landroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V
+Landroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V
+Landroid/app/AppOpsManager;->sToken:Landroid/os/IBinder;
+Landroid/app/AppOpsManager;->strDebugOpToOp(Ljava/lang/String;)I
+Landroid/app/AppOpsManager;->UID_STATE_BACKGROUND:I
+Landroid/app/AppOpsManager;->UID_STATE_CACHED:I
+Landroid/app/AppOpsManager;->UID_STATE_FOREGROUND:I
+Landroid/app/AppOpsManager;->UID_STATE_FOREGROUND_SERVICE:I
+Landroid/app/AppOpsManager;->UID_STATE_LAST_NON_RESTRICTED:I
+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
+Landroid/app/AppProtoEnums;->APP_TRANSITION_SNAPSHOT:I
+Landroid/app/AppProtoEnums;->APP_TRANSITION_SPLASH_SCREEN:I
+Landroid/app/AppProtoEnums;->APP_TRANSITION_TIMEOUT:I
+Landroid/app/AppProtoEnums;->APP_TRANSITION_WINDOWS_DRAWN:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_BACKUP:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_BOUND_FOREGROUND_SERVICE:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_CACHED_ACTIVITY:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_CACHED_ACTIVITY_CLIENT:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_CACHED_EMPTY:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_CACHED_RECENT:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_FOREGROUND_SERVICE:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_HEAVY_WEIGHT:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_HOME:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_IMPORTANT_BACKGROUND:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_IMPORTANT_FOREGROUND:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_LAST_ACTIVITY:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_NONEXISTENT:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_PERSISTENT:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_PERSISTENT_UI:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_RECEIVER:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_SERVICE:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_TOP:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_TOP_SLEEPING:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_TRANSIENT_BACKGROUND:I
+Landroid/app/AppProtoEnums;->PROCESS_STATE_UNKNOWN:I
+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;
+Landroid/app/assist/AssistStructure$ParcelTransferReader;->mCurParcel:Landroid/os/Parcel;
+Landroid/app/assist/AssistStructure$ParcelTransferReader;->mNumReadViews:I
+Landroid/app/assist/AssistStructure$ParcelTransferReader;->mNumReadWindows:I
+Landroid/app/assist/AssistStructure$ParcelTransferReader;->mStringReader:Landroid/os/PooledStringReader;
+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
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mCurWindow:I
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mNumWindows:I
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mNumWrittenViews:I
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mNumWrittenWindows:I
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mSanitizeOnWrite:Z
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mTmpMatrix:[F
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mViewStack:Ljava/util/ArrayList;
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mWriteStructure:Z
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->pushViewStackEntry(Landroid/app/assist/AssistStructure$ViewNode;I)V
+Landroid/app/assist/AssistStructure$ParcelTransferWriter;->writeNextEntryToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;Landroid/os/PooledStringWriter;)Z
+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
+Landroid/app/assist/AssistStructure$ViewNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;I)V
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_ACCESSIBILITY_FOCUSED:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_ACTIVATED:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_ALL_CONTROL:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_ASSIST_BLOCKED:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_CHECKABLE:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_CHECKED:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_CLICKABLE:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_CONTEXT_CLICKABLE:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_DISABLED:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_FOCUSABLE:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_FOCUSED:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_ALPHA:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_AUTOFILL_DATA:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_CHILDREN:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_COMPLEX_TEXT:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_CONTENT_DESCRIPTION:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_ELEVATION:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_EXTRAS:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_ID:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_INPUT_TYPE:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_LARGE_COORDS:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_LOCALE_LIST:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_MATRIX:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_SCROLL:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_TEXT:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_HAS_URL:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_LONG_CLICKABLE:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_OPAQUE:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_SELECTED:I
+Landroid/app/assist/AssistStructure$ViewNode;->FLAGS_VISIBILITY_MASK:I
+Landroid/app/assist/AssistStructure$ViewNode;->isSanitized()Z
+Landroid/app/assist/AssistStructure$ViewNode;->mAlpha:F
+Landroid/app/assist/AssistStructure$ViewNode;->mAutofillHints:[Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNode;->mAutofillId:Landroid/view/autofill/AutofillId;
+Landroid/app/assist/AssistStructure$ViewNode;->mAutofillOptions:[Ljava/lang/CharSequence;
+Landroid/app/assist/AssistStructure$ViewNode;->mAutofillOverlay:Landroid/app/assist/AssistStructure$AutofillOverlay;
+Landroid/app/assist/AssistStructure$ViewNode;->mAutofillType:I
+Landroid/app/assist/AssistStructure$ViewNode;->mAutofillValue:Landroid/view/autofill/AutofillValue;
+Landroid/app/assist/AssistStructure$ViewNode;->mChildren:[Landroid/app/assist/AssistStructure$ViewNode;
+Landroid/app/assist/AssistStructure$ViewNode;->mClassName:Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNode;->mContentDescription:Ljava/lang/CharSequence;
+Landroid/app/assist/AssistStructure$ViewNode;->mElevation:F
+Landroid/app/assist/AssistStructure$ViewNode;->mExtras:Landroid/os/Bundle;
+Landroid/app/assist/AssistStructure$ViewNode;->mFlags:I
+Landroid/app/assist/AssistStructure$ViewNode;->mHeight:I
+Landroid/app/assist/AssistStructure$ViewNode;->mHtmlInfo:Landroid/view/ViewStructure$HtmlInfo;
+Landroid/app/assist/AssistStructure$ViewNode;->mId:I
+Landroid/app/assist/AssistStructure$ViewNode;->mIdEntry:Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNode;->mIdPackage:Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNode;->mIdType:Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNode;->mImportantForAutofill:I
+Landroid/app/assist/AssistStructure$ViewNode;->mInputType:I
+Landroid/app/assist/AssistStructure$ViewNode;->mLocaleList:Landroid/os/LocaleList;
+Landroid/app/assist/AssistStructure$ViewNode;->mMatrix:Landroid/graphics/Matrix;
+Landroid/app/assist/AssistStructure$ViewNode;->mMaxEms:I
+Landroid/app/assist/AssistStructure$ViewNode;->mMaxLength:I
+Landroid/app/assist/AssistStructure$ViewNode;->mMinEms:I
+Landroid/app/assist/AssistStructure$ViewNode;->mSanitized:Z
+Landroid/app/assist/AssistStructure$ViewNode;->mScrollX:I
+Landroid/app/assist/AssistStructure$ViewNode;->mScrollY:I
+Landroid/app/assist/AssistStructure$ViewNode;->mText:Landroid/app/assist/AssistStructure$ViewNodeText;
+Landroid/app/assist/AssistStructure$ViewNode;->mTextIdEntry:Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNode;->mWebDomain:Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNode;->mWebScheme:Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNode;->mWidth:I
+Landroid/app/assist/AssistStructure$ViewNode;->mX:I
+Landroid/app/assist/AssistStructure$ViewNode;->mY:I
+Landroid/app/assist/AssistStructure$ViewNode;->setAutofillOverlay(Landroid/app/assist/AssistStructure$AutofillOverlay;)V
+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;
+Landroid/app/assist/AssistStructure$ViewNodeBuilder;->mAssist:Landroid/app/assist/AssistStructure;
+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
+Landroid/app/assist/AssistStructure$ViewNodeText;->mHint:Ljava/lang/String;
+Landroid/app/assist/AssistStructure$ViewNodeText;->mLineBaselines:[I
+Landroid/app/assist/AssistStructure$ViewNodeText;->mLineCharOffsets:[I
+Landroid/app/assist/AssistStructure$ViewNodeText;->mText:Ljava/lang/CharSequence;
+Landroid/app/assist/AssistStructure$ViewNodeText;->mTextBackgroundColor:I
+Landroid/app/assist/AssistStructure$ViewNodeText;->mTextColor:I
+Landroid/app/assist/AssistStructure$ViewNodeText;->mTextSelectionEnd:I
+Landroid/app/assist/AssistStructure$ViewNodeText;->mTextSelectionStart:I
+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;
+Landroid/app/assist/AssistStructure$ViewStackEntry;->numChildren:I
+Landroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;)V
+Landroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure;Landroid/view/ViewRootImpl;ZI)V
+Landroid/app/assist/AssistStructure$WindowNode;->mDisplayId:I
+Landroid/app/assist/AssistStructure$WindowNode;->mHeight:I
+Landroid/app/assist/AssistStructure$WindowNode;->mRoot:Landroid/app/assist/AssistStructure$ViewNode;
+Landroid/app/assist/AssistStructure$WindowNode;->mTitle:Ljava/lang/CharSequence;
+Landroid/app/assist/AssistStructure$WindowNode;->mWidth:I
+Landroid/app/assist/AssistStructure$WindowNode;->mX:I
+Landroid/app/assist/AssistStructure$WindowNode;->mY:I
+Landroid/app/assist/AssistStructure$WindowNode;->resolveViewAutofillFlags(Landroid/content/Context;I)I
+Landroid/app/assist/AssistStructure$WindowNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;[F)V
+Landroid/app/assist/AssistStructure;-><init>(Landroid/app/Activity;ZI)V
+Landroid/app/assist/AssistStructure;-><init>(Landroid/os/Parcel;)V
+Landroid/app/assist/AssistStructure;->clearSendChannel()V
+Landroid/app/assist/AssistStructure;->DEBUG_PARCEL:Z
+Landroid/app/assist/AssistStructure;->DEBUG_PARCEL_CHILDREN:Z
+Landroid/app/assist/AssistStructure;->DEBUG_PARCEL_TREE:Z
+Landroid/app/assist/AssistStructure;->DESCRIPTOR:Ljava/lang/String;
+Landroid/app/assist/AssistStructure;->dump(Ljava/lang/String;Landroid/app/assist/AssistStructure$ViewNode;Z)V
+Landroid/app/assist/AssistStructure;->dump(Z)V
+Landroid/app/assist/AssistStructure;->ensureData()V
+Landroid/app/assist/AssistStructure;->ensureDataForAutofill()V
+Landroid/app/assist/AssistStructure;->getFlags()I
+Landroid/app/assist/AssistStructure;->mAcquisitionEndTime:J
+Landroid/app/assist/AssistStructure;->mAcquisitionStartTime:J
+Landroid/app/assist/AssistStructure;->mActivityComponent:Landroid/content/ComponentName;
+Landroid/app/assist/AssistStructure;->mFlags:I
+Landroid/app/assist/AssistStructure;->mHaveData:Z
+Landroid/app/assist/AssistStructure;->mIsHomeActivity:Z
+Landroid/app/assist/AssistStructure;->mPendingAsyncChildren:Ljava/util/ArrayList;
+Landroid/app/assist/AssistStructure;->mReceiveChannel:Landroid/os/IBinder;
+Landroid/app/assist/AssistStructure;->mSanitizeOnWrite:Z
+Landroid/app/assist/AssistStructure;->mSendChannel:Landroid/app/assist/AssistStructure$SendChannel;
+Landroid/app/assist/AssistStructure;->mTmpRect:Landroid/graphics/Rect;
+Landroid/app/assist/AssistStructure;->mWindowNodes:Ljava/util/ArrayList;
+Landroid/app/assist/AssistStructure;->sanitizeForParceling(Z)V
+Landroid/app/assist/AssistStructure;->setAcquisitionEndTime(J)V
+Landroid/app/assist/AssistStructure;->setAcquisitionStartTime(J)V
+Landroid/app/assist/AssistStructure;->setActivityComponent(Landroid/content/ComponentName;)V
+Landroid/app/assist/AssistStructure;->setHomeActivity(Z)V
+Landroid/app/assist/AssistStructure;->TAG:Ljava/lang/String;
+Landroid/app/assist/AssistStructure;->TRANSACTION_XFER:I
+Landroid/app/assist/AssistStructure;->VALIDATE_VIEW_TOKEN:I
+Landroid/app/assist/AssistStructure;->VALIDATE_WINDOW_TOKEN:I
+Landroid/app/assist/AssistStructure;->waitForReady()Z
+Landroid/app/AuthenticationRequiredException;-><init>(Landroid/os/Parcel;)V
+Landroid/app/AuthenticationRequiredException;->mUserAction:Landroid/app/PendingIntent;
+Landroid/app/AuthenticationRequiredException;->TAG:Ljava/lang/String;
+Landroid/app/AutomaticZenRule;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/net/Uri;IZJ)V
+Landroid/app/AutomaticZenRule;->conditionId:Landroid/net/Uri;
+Landroid/app/AutomaticZenRule;->creationTime:J
+Landroid/app/AutomaticZenRule;->enabled:Z
+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
+Landroid/app/BackStackRecord$Op;->enterAnim:I
+Landroid/app/BackStackRecord$Op;->exitAnim:I
+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
+Landroid/app/BackStackRecord;->commitInternal(Z)I
+Landroid/app/BackStackRecord;->doAddOp(ILandroid/app/Fragment;Ljava/lang/String;I)V
+Landroid/app/BackStackRecord;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/BackStackRecord;->dump(Ljava/lang/String;Ljava/io/PrintWriter;Z)V
+Landroid/app/BackStackRecord;->executeOps()V
+Landroid/app/BackStackRecord;->executePopOps(Z)V
+Landroid/app/BackStackRecord;->expandOps(Ljava/util/ArrayList;Landroid/app/Fragment;)Landroid/app/Fragment;
+Landroid/app/BackStackRecord;->generateOps(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+Landroid/app/BackStackRecord;->getTransition()I
+Landroid/app/BackStackRecord;->getTransitionStyle()I
+Landroid/app/BackStackRecord;->interactsWith(I)Z
+Landroid/app/BackStackRecord;->interactsWith(Ljava/util/ArrayList;II)Z
+Landroid/app/BackStackRecord;->isFragmentPostponed(Landroid/app/BackStackRecord$Op;)Z
+Landroid/app/BackStackRecord;->isPostponed()Z
+Landroid/app/BackStackRecord;->mAddToBackStack:Z
+Landroid/app/BackStackRecord;->mAllowAddToBackStack:Z
+Landroid/app/BackStackRecord;->mBreadCrumbShortTitleRes:I
+Landroid/app/BackStackRecord;->mBreadCrumbShortTitleText:Ljava/lang/CharSequence;
+Landroid/app/BackStackRecord;->mBreadCrumbTitleRes:I
+Landroid/app/BackStackRecord;->mBreadCrumbTitleText:Ljava/lang/CharSequence;
+Landroid/app/BackStackRecord;->mCommitRunnables:Ljava/util/ArrayList;
+Landroid/app/BackStackRecord;->mCommitted:Z
+Landroid/app/BackStackRecord;->mEnterAnim:I
+Landroid/app/BackStackRecord;->mExitAnim:I
+Landroid/app/BackStackRecord;->mIndex:I
+Landroid/app/BackStackRecord;->mManager:Landroid/app/FragmentManagerImpl;
+Landroid/app/BackStackRecord;->mName:Ljava/lang/String;
+Landroid/app/BackStackRecord;->mOps:Ljava/util/ArrayList;
+Landroid/app/BackStackRecord;->mPopEnterAnim:I
+Landroid/app/BackStackRecord;->mPopExitAnim:I
+Landroid/app/BackStackRecord;->mReorderingAllowed:Z
+Landroid/app/BackStackRecord;->mSharedElementSourceNames:Ljava/util/ArrayList;
+Landroid/app/BackStackRecord;->mSharedElementTargetNames:Ljava/util/ArrayList;
+Landroid/app/BackStackRecord;->mTransition:I
+Landroid/app/BackStackRecord;->mTransitionStyle:I
+Landroid/app/BackStackRecord;->OP_ADD:I
+Landroid/app/BackStackRecord;->OP_ATTACH:I
+Landroid/app/BackStackRecord;->OP_DETACH:I
+Landroid/app/BackStackRecord;->OP_HIDE:I
+Landroid/app/BackStackRecord;->OP_NULL:I
+Landroid/app/BackStackRecord;->OP_REMOVE:I
+Landroid/app/BackStackRecord;->OP_REPLACE:I
+Landroid/app/BackStackRecord;->OP_SET_PRIMARY_NAV:I
+Landroid/app/BackStackRecord;->OP_SHOW:I
+Landroid/app/BackStackRecord;->OP_UNSET_PRIMARY_NAV:I
+Landroid/app/BackStackRecord;->runOnCommitRunnables()V
+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
+Landroid/app/backup/BackupAgent$BackupServiceBinder;->doQuotaExceeded(JJ)V
+Landroid/app/backup/BackupAgent$BackupServiceBinder;->doRestore(Landroid/os/ParcelFileDescriptor;JLandroid/os/ParcelFileDescriptor;ILandroid/app/backup/IBackupManager;)V
+Landroid/app/backup/BackupAgent$BackupServiceBinder;->doRestoreFile(Landroid/os/ParcelFileDescriptor;JILjava/lang/String;Ljava/lang/String;JJILandroid/app/backup/IBackupManager;)V
+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
+Landroid/app/backup/BackupAgent;->attach(Landroid/content/Context;)V
+Landroid/app/backup/BackupAgent;->DEBUG:Z
+Landroid/app/backup/BackupAgent;->FLAG_FAKE_CLIENT_SIDE_ENCRYPTION_ENABLED:I
+Landroid/app/backup/BackupAgent;->fullBackupFileTree(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/app/backup/FullBackupDataOutput;)V
+Landroid/app/backup/BackupAgent;->getHandler()Landroid/os/Handler;
+Landroid/app/backup/BackupAgent;->isFileEligibleForRestore(Ljava/io/File;)Z
+Landroid/app/backup/BackupAgent;->isFileSpecifiedInPathList(Ljava/io/File;Ljava/util/Collection;)Z
+Landroid/app/backup/BackupAgent;->manifestExcludesContainFilePath(Landroid/util/ArraySet;Ljava/lang/String;)Z
+Landroid/app/backup/BackupAgent;->mBinder:Landroid/os/IBinder;
+Landroid/app/backup/BackupAgent;->mHandler:Landroid/os/Handler;
+Landroid/app/backup/BackupAgent;->onBind()Landroid/os/IBinder;
+Landroid/app/backup/BackupAgent;->onRestoreFile(Landroid/os/ParcelFileDescriptor;JILjava/lang/String;Ljava/lang/String;JJ)V
+Landroid/app/backup/BackupAgent;->TAG:Ljava/lang/String;
+Landroid/app/backup/BackupAgent;->TYPE_EOF:I
+Landroid/app/backup/BackupAgent;->TYPE_SYMLINK:I
+Landroid/app/backup/BackupAgent;->waitForSharedPrefs()V
+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
+Landroid/app/backup/BackupDataInput;->mBackupReader:J
+Landroid/app/backup/BackupDataInput;->mHeader:Landroid/app/backup/BackupDataInput$EntityHeader;
+Landroid/app/backup/BackupDataInput;->mHeaderReady:Z
+Landroid/app/backup/BackupDataInput;->readEntityData_native(J[BII)I
+Landroid/app/backup/BackupDataInput;->readNextHeader_native(JLandroid/app/backup/BackupDataInput$EntityHeader;)I
+Landroid/app/backup/BackupDataInput;->skipEntityData_native(J)I
+Landroid/app/backup/BackupDataInputStream;-><init>(Landroid/app/backup/BackupDataInput;)V
+Landroid/app/backup/BackupDataInputStream;->mData:Landroid/app/backup/BackupDataInput;
+Landroid/app/backup/BackupDataInputStream;->mOneByte:[B
+Landroid/app/backup/BackupDataOutput;-><init>(Ljava/io/FileDescriptor;JI)V
+Landroid/app/backup/BackupDataOutput;->ctor(Ljava/io/FileDescriptor;)J
+Landroid/app/backup/BackupDataOutput;->dtor(J)V
+Landroid/app/backup/BackupDataOutput;->mQuota:J
+Landroid/app/backup/BackupDataOutput;->mTransportFlags:I
+Landroid/app/backup/BackupDataOutput;->setKeyPrefix(Ljava/lang/String;)V
+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
+Landroid/app/backup/BackupHelperDispatcher;->doOneBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupHelperDispatcher$Header;Landroid/app/backup/BackupHelper;)V
+Landroid/app/backup/BackupHelperDispatcher;->mHelpers:Ljava/util/TreeMap;
+Landroid/app/backup/BackupHelperDispatcher;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/backup/BackupHelperDispatcher;->performRestore(Landroid/app/backup/BackupDataInput;ILandroid/os/ParcelFileDescriptor;)V
+Landroid/app/backup/BackupHelperDispatcher;->readHeader_native(Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;)I
+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;
+Landroid/app/backup/BackupManager$BackupObserverWrapper;->MSG_FINISHED:I
+Landroid/app/backup/BackupManager$BackupObserverWrapper;->MSG_RESULT:I
+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
+Landroid/app/backup/BackupManager$SelectTransportListenerWrapper;->onSuccess(Ljava/lang/String;)V
+Landroid/app/backup/BackupManager;->EXTRA_BACKUP_SERVICES_AVAILABLE:Ljava/lang/String;
+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
+Landroid/app/backup/BackupTransport$TransportImpl;->clearBackupData(Landroid/content/pm/PackageInfo;)I
+Landroid/app/backup/BackupTransport$TransportImpl;->configurationIntent()Landroid/content/Intent;
+Landroid/app/backup/BackupTransport$TransportImpl;->currentDestinationString()Ljava/lang/String;
+Landroid/app/backup/BackupTransport$TransportImpl;->dataManagementIntent()Landroid/content/Intent;
+Landroid/app/backup/BackupTransport$TransportImpl;->dataManagementLabel()Ljava/lang/String;
+Landroid/app/backup/BackupTransport$TransportImpl;->finishBackup()I
+Landroid/app/backup/BackupTransport$TransportImpl;->finishRestore()V
+Landroid/app/backup/BackupTransport$TransportImpl;->getAvailableRestoreSets()[Landroid/app/backup/RestoreSet;
+Landroid/app/backup/BackupTransport$TransportImpl;->getBackupQuota(Ljava/lang/String;Z)J
+Landroid/app/backup/BackupTransport$TransportImpl;->getCurrentRestoreSet()J
+Landroid/app/backup/BackupTransport$TransportImpl;->getNextFullRestoreDataChunk(Landroid/os/ParcelFileDescriptor;)I
+Landroid/app/backup/BackupTransport$TransportImpl;->getRestoreData(Landroid/os/ParcelFileDescriptor;)I
+Landroid/app/backup/BackupTransport$TransportImpl;->getTransportFlags()I
+Landroid/app/backup/BackupTransport$TransportImpl;->initializeDevice()I
+Landroid/app/backup/BackupTransport$TransportImpl;->isAppEligibleForBackup(Landroid/content/pm/PackageInfo;Z)Z
+Landroid/app/backup/BackupTransport$TransportImpl;->name()Ljava/lang/String;
+Landroid/app/backup/BackupTransport$TransportImpl;->nextRestorePackage()Landroid/app/backup/RestoreDescription;
+Landroid/app/backup/BackupTransport$TransportImpl;->performBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+Landroid/app/backup/BackupTransport$TransportImpl;->performFullBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+Landroid/app/backup/BackupTransport$TransportImpl;->requestBackupTime()J
+Landroid/app/backup/BackupTransport$TransportImpl;->requestFullBackupTime()J
+Landroid/app/backup/BackupTransport$TransportImpl;->sendBackupData(I)I
+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
+Landroid/app/backup/BlobBackupHelper;->deflate([B)[B
+Landroid/app/backup/BlobBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+Landroid/app/backup/BlobBackupHelper;->inflate([B)[B
+Landroid/app/backup/BlobBackupHelper;->mCurrentBlobVersion:I
+Landroid/app/backup/BlobBackupHelper;->mKeys:[Ljava/lang/String;
+Landroid/app/backup/BlobBackupHelper;->readOldState(Landroid/os/ParcelFileDescriptor;)Landroid/util/ArrayMap;
+Landroid/app/backup/BlobBackupHelper;->TAG:Ljava/lang/String;
+Landroid/app/backup/BlobBackupHelper;->writeBackupState(Landroid/util/ArrayMap;Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/backup/FileBackupHelper;->DEBUG:Z
+Landroid/app/backup/FileBackupHelper;->mContext:Landroid/content/Context;
+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
+Landroid/app/backup/FileBackupHelperBase;->isKeyInList(Ljava/lang/String;[Ljava/lang/String;)Z
+Landroid/app/backup/FileBackupHelperBase;->mContext:Landroid/content/Context;
+Landroid/app/backup/FileBackupHelperBase;->mExceptionLogged:Z
+Landroid/app/backup/FileBackupHelperBase;->mPtr:J
+Landroid/app/backup/FileBackupHelperBase;->performBackup_checked(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/backup/FileBackupHelperBase;->performBackup_native(Ljava/io/FileDescriptor;JLjava/io/FileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)I
+Landroid/app/backup/FileBackupHelperBase;->TAG:Ljava/lang/String;
+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;
+Landroid/app/backup/FullBackup$BackupScheme;->DEVICE_CACHE_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->DEVICE_DATABASE_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->DEVICE_FILES_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->DEVICE_NOBACKUP_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->DEVICE_ROOT_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->DEVICE_SHAREDPREF_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->EXTERNAL_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->extractCanonicalFile(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->FILES_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->getDirectoryForCriteriaDomain(Ljava/lang/String;)Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->getRequiredFlagsFromString(Ljava/lang/String;)I
+Landroid/app/backup/FullBackup$BackupScheme;->getTokenForXmlDomain(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/backup/FullBackup$BackupScheme;->getVolumeList()[Landroid/os/storage/StorageVolume;
+Landroid/app/backup/FullBackup$BackupScheme;->isFullBackupContentEnabled()Z
+Landroid/app/backup/FullBackup$BackupScheme;->maybeParseAndGetCanonicalExcludePaths()Landroid/util/ArraySet;
+Landroid/app/backup/FullBackup$BackupScheme;->maybeParseAndGetCanonicalIncludePaths()Ljava/util/Map;
+Landroid/app/backup/FullBackup$BackupScheme;->maybeParseBackupSchemeLocked()V
+Landroid/app/backup/FullBackup$BackupScheme;->mExcludes:Landroid/util/ArraySet;
+Landroid/app/backup/FullBackup$BackupScheme;->mFullBackupContent:I
+Landroid/app/backup/FullBackup$BackupScheme;->mIncludes:Ljava/util/Map;
+Landroid/app/backup/FullBackup$BackupScheme;->mPackageManager:Landroid/content/pm/PackageManager;
+Landroid/app/backup/FullBackup$BackupScheme;->mPackageName:Ljava/lang/String;
+Landroid/app/backup/FullBackup$BackupScheme;->mStorageManager:Landroid/os/storage/StorageManager;
+Landroid/app/backup/FullBackup$BackupScheme;->mVolumes:[Landroid/os/storage/StorageVolume;
+Landroid/app/backup/FullBackup$BackupScheme;->NOBACKUP_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->parseBackupSchemeFromXmlLocked(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/Set;Ljava/util/Map;)V
+Landroid/app/backup/FullBackup$BackupScheme;->parseCurrentTagForDomain(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/Set;Ljava/util/Map;Ljava/lang/String;)Ljava/util/Set;
+Landroid/app/backup/FullBackup$BackupScheme;->ROOT_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->sharedDomainToPath(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/backup/FullBackup$BackupScheme;->SHAREDPREF_DIR:Ljava/io/File;
+Landroid/app/backup/FullBackup$BackupScheme;->TAG_EXCLUDE:Ljava/lang/String;
+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;
+Landroid/app/backup/FullBackup;->CACHE_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->CONF_TOKEN_INTENT_EXTRA:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->DATABASE_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->DEVICE_CACHE_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->DEVICE_DATABASE_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->DEVICE_FILES_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->DEVICE_NO_BACKUP_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->DEVICE_ROOT_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->DEVICE_SHAREDPREFS_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->FILES_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->FLAG_REQUIRED_CLIENT_SIDE_ENCRYPTION:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->FLAG_REQUIRED_DEVICE_TO_DEVICE_TRANSFER:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->FLAG_REQUIRED_FAKE_CLIENT_SIDE_ENCRYPTION:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->FULL_BACKUP_INTENT_ACTION:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->FULL_RESTORE_INTENT_ACTION:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->getBackupScheme(Landroid/content/Context;)Landroid/app/backup/FullBackup$BackupScheme;
+Landroid/app/backup/FullBackup;->getBackupSchemeForTest(Landroid/content/Context;)Landroid/app/backup/FullBackup$BackupScheme;
+Landroid/app/backup/FullBackup;->KEY_VALUE_DATA_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->kPackageBackupSchemeMap:Ljava/util/Map;
+Landroid/app/backup/FullBackup;->MANAGED_EXTERNAL_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->NO_BACKUP_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->OBB_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->restoreFile(Landroid/os/ParcelFileDescriptor;JIJJLjava/io/File;)V
+Landroid/app/backup/FullBackup;->ROOT_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->SHAREDPREFS_TREE_TOKEN:Ljava/lang/String;
+Landroid/app/backup/FullBackup;->SHARED_PREFIX:Ljava/lang/String;
+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
+Landroid/app/backup/FullBackupDataOutput;-><init>(Landroid/os/ParcelFileDescriptor;J)V
+Landroid/app/backup/FullBackupDataOutput;-><init>(Landroid/os/ParcelFileDescriptor;JI)V
+Landroid/app/backup/FullBackupDataOutput;->getSize()J
+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
+Landroid/app/backup/IBackupManager$Stub$Proxy;->adbRestore(Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->agentConnected(Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->agentDisconnected(Ljava/lang/String;)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->backupNow()V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->beginRestoreSession(Ljava/lang/String;Ljava/lang/String;)Landroid/app/backup/IRestoreSession;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->cancelBackups()V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->clearBackupData(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->dataChanged(Ljava/lang/String;)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->filterAppsEligibleForBackup([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->fullTransportBackup([Ljava/lang/String;)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->getAvailableRestoreToken(Ljava/lang/String;)J
+Landroid/app/backup/IBackupManager$Stub$Proxy;->getConfigurationIntent(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->getCurrentTransport()Ljava/lang/String;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->getDataManagementIntent(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->getDataManagementLabel(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->getDestinationString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->getTransportWhitelist()[Ljava/lang/String;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->hasBackupPassword()Z
+Landroid/app/backup/IBackupManager$Stub$Proxy;->initializeTransports([Ljava/lang/String;Landroid/app/backup/IBackupObserver;)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->isAppEligibleForBackup(Ljava/lang/String;)Z
+Landroid/app/backup/IBackupManager$Stub$Proxy;->isBackupEnabled()Z
+Landroid/app/backup/IBackupManager$Stub$Proxy;->isBackupServiceActive(I)Z
+Landroid/app/backup/IBackupManager$Stub$Proxy;->listAllTransportComponents()[Landroid/content/ComponentName;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->listAllTransports()[Ljava/lang/String;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->opComplete(IJ)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->requestBackup([Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
+Landroid/app/backup/IBackupManager$Stub$Proxy;->restoreAtInstall(Ljava/lang/String;I)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->selectBackupTransport(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/backup/IBackupManager$Stub$Proxy;->selectBackupTransportAsync(Landroid/content/ComponentName;Landroid/app/backup/ISelectBackupTransportCallback;)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->setAutoRestore(Z)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->setBackupEnabled(Z)V
+Landroid/app/backup/IBackupManager$Stub$Proxy;->setBackupPassword(Ljava/lang/String;Ljava/lang/String;)Z
+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
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_adbBackup:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_adbRestore:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_agentConnected:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_agentDisconnected:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_backupNow:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_beginRestoreSession:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_cancelBackups:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_clearBackupData:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_dataChanged:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_filterAppsEligibleForBackup:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_fullTransportBackup:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_getAvailableRestoreToken:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_getConfigurationIntent:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_getCurrentTransport:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_getDataManagementIntent:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_getDataManagementLabel:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_getDestinationString:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_getTransportWhitelist:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_hasBackupPassword:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_initializeTransports:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_isAppEligibleForBackup:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_isBackupEnabled:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_isBackupServiceActive:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_listAllTransportComponents:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_listAllTransports:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_opComplete:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_requestBackup:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_restoreAtInstall:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_selectBackupTransport:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_selectBackupTransportAsync:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_setAutoRestore:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_setBackupEnabled:I
+Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_setBackupPassword:I
+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
+Landroid/app/backup/IBackupManager;->agentDisconnected(Ljava/lang/String;)V
+Landroid/app/backup/IBackupManager;->backupNow()V
+Landroid/app/backup/IBackupManager;->beginRestoreSession(Ljava/lang/String;Ljava/lang/String;)Landroid/app/backup/IRestoreSession;
+Landroid/app/backup/IBackupManager;->cancelBackups()V
+Landroid/app/backup/IBackupManager;->filterAppsEligibleForBackup([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/app/backup/IBackupManager;->fullTransportBackup([Ljava/lang/String;)V
+Landroid/app/backup/IBackupManager;->getAvailableRestoreToken(Ljava/lang/String;)J
+Landroid/app/backup/IBackupManager;->getConfigurationIntent(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/app/backup/IBackupManager;->getDataManagementIntent(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/app/backup/IBackupManager;->getDataManagementLabel(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/backup/IBackupManager;->getDestinationString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/backup/IBackupManager;->getTransportWhitelist()[Ljava/lang/String;
+Landroid/app/backup/IBackupManager;->hasBackupPassword()Z
+Landroid/app/backup/IBackupManager;->initializeTransports([Ljava/lang/String;Landroid/app/backup/IBackupObserver;)V
+Landroid/app/backup/IBackupManager;->isAppEligibleForBackup(Ljava/lang/String;)Z
+Landroid/app/backup/IBackupManager;->listAllTransportComponents()[Landroid/content/ComponentName;
+Landroid/app/backup/IBackupManager;->opComplete(IJ)V
+Landroid/app/backup/IBackupManager;->requestBackup([Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
+Landroid/app/backup/IBackupManager;->restoreAtInstall(Ljava/lang/String;I)V
+Landroid/app/backup/IBackupManager;->selectBackupTransportAsync(Landroid/content/ComponentName;Landroid/app/backup/ISelectBackupTransportCallback;)V
+Landroid/app/backup/IBackupManager;->setBackupPassword(Ljava/lang/String;Ljava/lang/String;)Z
+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;
+Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->onBackupPackage(Ljava/lang/String;)V
+Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->onEndBackup()V
+Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->onEndRestore()V
+Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->onRestorePackage(Ljava/lang/String;)V
+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
+Landroid/app/backup/IFullBackupRestoreObserver$Stub;->TRANSACTION_onEndBackup:I
+Landroid/app/backup/IFullBackupRestoreObserver$Stub;->TRANSACTION_onEndRestore:I
+Landroid/app/backup/IFullBackupRestoreObserver$Stub;->TRANSACTION_onRestorePackage:I
+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
+Landroid/app/backup/IFullBackupRestoreObserver;->onRestorePackage(Ljava/lang/String;)V
+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;
+Landroid/app/backup/IRestoreObserver$Stub$Proxy;->onUpdate(ILjava/lang/String;)V
+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
+Landroid/app/backup/IRestoreSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/backup/IRestoreSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/app/backup/IRestoreSession$Stub;->TRANSACTION_endRestoreSession:I
+Landroid/app/backup/IRestoreSession$Stub;->TRANSACTION_getAvailableRestoreSets:I
+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
+Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->MSG_RESTORE_SETS_AVAILABLE:I
+Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->MSG_RESTORE_STARTING:I
+Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->MSG_UPDATE:I
+Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->onUpdate(ILjava/lang/String;)V
+Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->restoreFinished(I)V
+Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->restoreSetsAvailable([Landroid/app/backup/RestoreSet;)V
+Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->restoreStarting(I)V
+Landroid/app/backup/RestoreSession;-><init>(Landroid/content/Context;Landroid/app/backup/IRestoreSession;)V
+Landroid/app/backup/RestoreSession;->mBinder:Landroid/app/backup/IRestoreSession;
+Landroid/app/backup/RestoreSession;->mContext:Landroid/content/Context;
+Landroid/app/backup/RestoreSession;->mObserver:Landroid/app/backup/RestoreSession$RestoreObserverWrapper;
+Landroid/app/backup/RestoreSession;->restoreSome(JLandroid/app/backup/RestoreObserver;Landroid/app/backup/BackupManagerMonitor;[Ljava/lang/String;)I
+Landroid/app/backup/RestoreSession;->restoreSome(JLandroid/app/backup/RestoreObserver;[Ljava/lang/String;)I
+Landroid/app/backup/RestoreSession;->TAG:Ljava/lang/String;
+Landroid/app/backup/RestoreSet;-><init>(Landroid/os/Parcel;)V
+Landroid/app/backup/SharedPreferencesBackupHelper;->DEBUG:Z
+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;
+Landroid/app/backup/WallpaperBackupHelper;->mWpm:Landroid/app/WallpaperManager;
+Landroid/app/backup/WallpaperBackupHelper;->STAGE_FILE:Ljava/lang/String;
+Landroid/app/backup/WallpaperBackupHelper;->TAG:Ljava/lang/String;
+Landroid/app/backup/WallpaperBackupHelper;->WALLPAPER_IMAGE_KEY:Ljava/lang/String;
+Landroid/app/backup/WallpaperBackupHelper;->WALLPAPER_INFO_KEY:Ljava/lang/String;
+Landroid/app/BroadcastOptions;-><init>()V
+Landroid/app/BroadcastOptions;-><init>(Landroid/os/Bundle;)V
+Landroid/app/BroadcastOptions;->getMaxManifestReceiverApiLevel()I
+Landroid/app/BroadcastOptions;->getMinManifestReceiverApiLevel()I
+Landroid/app/BroadcastOptions;->getTemporaryAppWhitelistDuration()J
+Landroid/app/BroadcastOptions;->isDontSendToRestrictedApps()Z
+Landroid/app/BroadcastOptions;->KEY_DONT_SEND_TO_RESTRICTED_APPS:Ljava/lang/String;
+Landroid/app/BroadcastOptions;->KEY_MAX_MANIFEST_RECEIVER_API_LEVEL:Ljava/lang/String;
+Landroid/app/BroadcastOptions;->KEY_MIN_MANIFEST_RECEIVER_API_LEVEL:Ljava/lang/String;
+Landroid/app/BroadcastOptions;->KEY_TEMPORARY_APP_WHITELIST_DURATION:Ljava/lang/String;
+Landroid/app/BroadcastOptions;->mDontSendToRestrictedApps:Z
+Landroid/app/BroadcastOptions;->mMaxManifestReceiverApiLevel:I
+Landroid/app/BroadcastOptions;->mMinManifestReceiverApiLevel:I
+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;
+Landroid/app/ClientTransactionHandler;->getPackageInfoNoCheck(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;)Landroid/app/LoadedApk;
+Landroid/app/ClientTransactionHandler;->getTransactionExecutor()Landroid/app/servertransaction/TransactionExecutor;
+Landroid/app/ClientTransactionHandler;->handleActivityConfigurationChanged(Landroid/os/IBinder;Landroid/content/res/Configuration;I)V
+Landroid/app/ClientTransactionHandler;->handleConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/app/ClientTransactionHandler;->handleDestroyActivity(Landroid/os/IBinder;ZIZLjava/lang/String;)V
+Landroid/app/ClientTransactionHandler;->handleLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;Landroid/content/Intent;)Landroid/app/Activity;
+Landroid/app/ClientTransactionHandler;->handleMultiWindowModeChanged(Landroid/os/IBinder;ZLandroid/content/res/Configuration;)V
+Landroid/app/ClientTransactionHandler;->handleNewIntent(Landroid/os/IBinder;Ljava/util/List;Z)V
+Landroid/app/ClientTransactionHandler;->handlePauseActivity(Landroid/os/IBinder;ZZILandroid/app/servertransaction/PendingTransactionActions;Ljava/lang/String;)V
+Landroid/app/ClientTransactionHandler;->handlePictureInPictureModeChanged(Landroid/os/IBinder;ZLandroid/content/res/Configuration;)V
+Landroid/app/ClientTransactionHandler;->handleRelaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/ClientTransactionHandler;->handleResumeActivity(Landroid/os/IBinder;ZZLjava/lang/String;)V
+Landroid/app/ClientTransactionHandler;->handleSendResult(Landroid/os/IBinder;Ljava/util/List;Ljava/lang/String;)V
+Landroid/app/ClientTransactionHandler;->handleStartActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/ClientTransactionHandler;->handleStopActivity(Landroid/os/IBinder;ZILandroid/app/servertransaction/PendingTransactionActions;ZLjava/lang/String;)V
+Landroid/app/ClientTransactionHandler;->handleWindowVisibility(Landroid/os/IBinder;Z)V
+Landroid/app/ClientTransactionHandler;->performRestartActivity(Landroid/os/IBinder;Z)V
+Landroid/app/ClientTransactionHandler;->prepareRelaunchActivity(Landroid/os/IBinder;Ljava/util/List;Ljava/util/List;ILandroid/util/MergedConfiguration;Z)Landroid/app/ActivityThread$ActivityClientRecord;
+Landroid/app/ClientTransactionHandler;->reportRelaunch(Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/ClientTransactionHandler;->reportStop(Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/ClientTransactionHandler;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
+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;
+Landroid/app/ContextImpl$ApplicationContentResolver;->appNotRespondingViaProvider(Landroid/content/IContentProvider;)V
+Landroid/app/ContextImpl$ApplicationContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
+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
+Landroid/app/ContextImpl;->canLoadUnsafeResources()Z
+Landroid/app/ContextImpl;->checkMode(I)V
+Landroid/app/ContextImpl;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I
+Landroid/app/ContextImpl;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I
+Landroid/app/ContextImpl;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
+Landroid/app/ContextImpl;->createResources(Landroid/os/IBinder;Landroid/app/LoadedApk;Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
+Landroid/app/ContextImpl;->createSystemUiContext(Landroid/app/ContextImpl;)Landroid/app/ContextImpl;
+Landroid/app/ContextImpl;->DEBUG:Z
+Landroid/app/ContextImpl;->enforce(Ljava/lang/String;IZILjava/lang/String;)V
+Landroid/app/ContextImpl;->enforceForUri(IIZILandroid/net/Uri;Ljava/lang/String;)V
+Landroid/app/ContextImpl;->ensureExternalDirsExistOrFilter([Ljava/io/File;)[Ljava/io/File;
+Landroid/app/ContextImpl;->ensurePrivateCacheDirExists(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+Landroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;)Ljava/io/File;
+Landroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;IILjava/lang/String;)Ljava/io/File;
+Landroid/app/ContextImpl;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+Landroid/app/ContextImpl;->getBasePackageName()Ljava/lang/String;
+Landroid/app/ContextImpl;->getDatabasesDir()Ljava/io/File;
+Landroid/app/ContextImpl;->getDisplayAdjustments(I)Landroid/view/DisplayAdjustments;
+Landroid/app/ContextImpl;->getIApplicationThread()Landroid/app/IApplicationThread;
+Landroid/app/ContextImpl;->getMainThreadHandler()Landroid/os/Handler;
+Landroid/app/ContextImpl;->getOpPackageName()Ljava/lang/String;
+Landroid/app/ContextImpl;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
+Landroid/app/ContextImpl;->getSharedPreferencesCacheLocked()Landroid/util/ArrayMap;
+Landroid/app/ContextImpl;->getThemeResId()I
+Landroid/app/ContextImpl;->getWallpaperManager()Landroid/app/WallpaperManager;
+Landroid/app/ContextImpl;->initializeTheme()V
+Landroid/app/ContextImpl;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
+Landroid/app/ContextImpl;->isAutofillCompatibilityEnabled()Z
+Landroid/app/ContextImpl;->mActivityToken:Landroid/os/IBinder;
+Landroid/app/ContextImpl;->makeFilename(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+Landroid/app/ContextImpl;->mAutofillClient:Landroid/view/autofill/AutofillManager$AutofillClient;
+Landroid/app/ContextImpl;->mCacheDir:Ljava/io/File;
+Landroid/app/ContextImpl;->mCodeCacheDir:Ljava/io/File;
+Landroid/app/ContextImpl;->mDatabasesDir:Ljava/io/File;
+Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
+Landroid/app/ContextImpl;->mFilesDir:Ljava/io/File;
+Landroid/app/ContextImpl;->mIsAutofillCompatEnabled:Z
+Landroid/app/ContextImpl;->mNoBackupFilesDir:Ljava/io/File;
+Landroid/app/ContextImpl;->moveFiles(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)I
+Landroid/app/ContextImpl;->mReceiverRestrictedContext:Landroid/content/Context;
+Landroid/app/ContextImpl;->mResourcesManager:Landroid/app/ResourcesManager;
+Landroid/app/ContextImpl;->mServiceInitializationStateArray:[I
+Landroid/app/ContextImpl;->mSplitName:Ljava/lang/String;
+Landroid/app/ContextImpl;->mSync:Ljava/lang/Object;
+Landroid/app/ContextImpl;->mUser:Landroid/os/UserHandle;
+Landroid/app/ContextImpl;->performFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/ContextImpl;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+Landroid/app/ContextImpl;->registerReceiverInternal(Landroid/content/BroadcastReceiver;ILandroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;Landroid/content/Context;I)Landroid/content/Intent;
+Landroid/app/ContextImpl;->reloadSharedPreferences()V
+Landroid/app/ContextImpl;->resolveUserId(Landroid/net/Uri;)I
+Landroid/app/ContextImpl;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;I)V
+Landroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;I)V
+Landroid/app/ContextImpl;->sendBroadcastAsUserMultiplePermissions(Landroid/content/Intent;Landroid/os/UserHandle;[Ljava/lang/String;)V
+Landroid/app/ContextImpl;->sendBroadcastMultiplePermissions(Landroid/content/Intent;[Ljava/lang/String;)V
+Landroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+Landroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;Landroid/os/Bundle;)V
+Landroid/app/ContextImpl;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+Landroid/app/ContextImpl;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/os/Bundle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+Landroid/app/ContextImpl;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;)V
+Landroid/app/ContextImpl;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V
+Landroid/app/ContextImpl;->setFilePermissionsFromMode(Ljava/lang/String;II)V
+Landroid/app/ContextImpl;->setResources(Landroid/content/res/Resources;)V
+Landroid/app/ContextImpl;->startActivitiesAsUser([Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)I
+Landroid/app/ContextImpl;->startActivityAsUser(Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/app/ContextImpl;->startActivityAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+Landroid/app/ContextImpl;->startForegroundServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
+Landroid/app/ContextImpl;->startServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
+Landroid/app/ContextImpl;->startServiceCommon(Landroid/content/Intent;ZLandroid/os/UserHandle;)Landroid/content/ComponentName;
+Landroid/app/ContextImpl;->STATE_INITIALIZING:I
+Landroid/app/ContextImpl;->STATE_NOT_FOUND:I
+Landroid/app/ContextImpl;->STATE_READY:I
+Landroid/app/ContextImpl;->STATE_UNINITIALIZED:I
+Landroid/app/ContextImpl;->stopServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Z
+Landroid/app/ContextImpl;->stopServiceCommon(Landroid/content/Intent;Landroid/os/UserHandle;)Z
+Landroid/app/ContextImpl;->TAG:Ljava/lang/String;
+Landroid/app/ContextImpl;->updateDisplay(I)V
+Landroid/app/ContextImpl;->uriModeFlagToString(I)Ljava/lang/String;
+Landroid/app/ContextImpl;->validateServiceIntent(Landroid/content/Intent;)V
+Landroid/app/ContextImpl;->warnIfCallingFromSystemProcess()V
+Landroid/app/ContextImpl;->XATTR_INODE_CACHE:Ljava/lang/String;
+Landroid/app/ContextImpl;->XATTR_INODE_CODE_CACHE:Ljava/lang/String;
+Landroid/app/DatePickerDialog;-><init>(Landroid/content/Context;ILandroid/app/DatePickerDialog$OnDateSetListener;Ljava/util/Calendar;III)V
+Landroid/app/DatePickerDialog;->DAY:Ljava/lang/String;
+Landroid/app/DatePickerDialog;->mDateSetListener:Landroid/app/DatePickerDialog$OnDateSetListener;
+Landroid/app/DatePickerDialog;->MONTH:Ljava/lang/String;
+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
+Landroid/app/Dialog;-><init>(Landroid/content/Context;ZLandroid/os/Message;)V
+Landroid/app/Dialog;->DIALOG_HIERARCHY_TAG:Ljava/lang/String;
+Landroid/app/Dialog;->DIALOG_SHOWING_TAG:Ljava/lang/String;
+Landroid/app/Dialog;->DISMISS:I
+Landroid/app/Dialog;->dispatchOnCreate(Landroid/os/Bundle;)V
+Landroid/app/Dialog;->getAssociatedActivity()Landroid/content/ComponentName;
+Landroid/app/Dialog;->mActionBar:Landroid/app/ActionBar;
+Landroid/app/Dialog;->mActionMode:Landroid/view/ActionMode;
+Landroid/app/Dialog;->mActionModeTypeStarting:I
+Landroid/app/Dialog;->mCancelable:Z
+Landroid/app/Dialog;->mCancelAndDismissTaken:Ljava/lang/String;
+Landroid/app/Dialog;->mCanceled:Z
+Landroid/app/Dialog;->mCreated:Z
+Landroid/app/Dialog;->mDecor:Landroid/view/View;
+Landroid/app/Dialog;->mDismissAction:Ljava/lang/Runnable;
+Landroid/app/Dialog;->mSearchEvent:Landroid/view/SearchEvent;
+Landroid/app/Dialog;->mWindowManager:Landroid/view/WindowManager;
+Landroid/app/Dialog;->onWindowDismissed(ZZ)V
+Landroid/app/Dialog;->sendDismissMessage()V
+Landroid/app/Dialog;->sendShowMessage()V
+Landroid/app/Dialog;->SHOW:I
+Landroid/app/Dialog;->TAG:Ljava/lang/String;
+Landroid/app/Dialog;->takeCancelAndDismissListeners(Ljava/lang/String;Landroid/content/DialogInterface$OnCancelListener;Landroid/content/DialogInterface$OnDismissListener;)Z
+Landroid/app/Dialog;->updateWindowForCancelable()V
+Landroid/app/DialogFragment;->dismissInternal(Z)V
+Landroid/app/DialogFragment;->mCancelable:Z
+Landroid/app/DialogFragment;->mDialog:Landroid/app/Dialog;
+Landroid/app/DialogFragment;->mShowsDialog:Z
+Landroid/app/DialogFragment;->mStyle:I
+Landroid/app/DialogFragment;->mTheme:I
+Landroid/app/DialogFragment;->SAVED_BACK_STACK_ID:Ljava/lang/String;
+Landroid/app/DialogFragment;->SAVED_CANCELABLE:Ljava/lang/String;
+Landroid/app/DialogFragment;->SAVED_DIALOG_STATE_TAG:Ljava/lang/String;
+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;
+Landroid/app/DownloadManager$CursorTranslator;->getPausedReason(I)J
+Landroid/app/DownloadManager$CursorTranslator;->getReason(I)J
+Landroid/app/DownloadManager$CursorTranslator;->mAccessFilename:Z
+Landroid/app/DownloadManager$CursorTranslator;->mBaseUri:Landroid/net/Uri;
+Landroid/app/DownloadManager$CursorTranslator;->translateStatus(I)I
+Landroid/app/DownloadManager$Query;->joinStrings(Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/String;
+Landroid/app/DownloadManager$Query;->mFilterString:Ljava/lang/String;
+Landroid/app/DownloadManager$Query;->mIds:[J
+Landroid/app/DownloadManager$Query;->mOnlyIncludeVisibleInDownloadsUi:Z
+Landroid/app/DownloadManager$Query;->mOrderByColumn:Ljava/lang/String;
+Landroid/app/DownloadManager$Query;->mOrderDirection:I
+Landroid/app/DownloadManager$Query;->mStatusFlags:Ljava/lang/Integer;
+Landroid/app/DownloadManager$Query;->ORDER_ASCENDING:I
+Landroid/app/DownloadManager$Query;->ORDER_DESCENDING:I
+Landroid/app/DownloadManager$Query;->runQuery(Landroid/content/ContentResolver;[Ljava/lang/String;Landroid/net/Uri;)Landroid/database/Cursor;
+Landroid/app/DownloadManager$Query;->setFilterByString(Ljava/lang/String;)Landroid/app/DownloadManager$Query;
+Landroid/app/DownloadManager$Query;->statusClause(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/app/DownloadManager$Request;-><init>(Ljava/lang/String;)V
+Landroid/app/DownloadManager$Request;->encodeHttpHeaders(Landroid/content/ContentValues;)V
+Landroid/app/DownloadManager$Request;->mAllowedNetworkTypes:I
+Landroid/app/DownloadManager$Request;->mDescription:Ljava/lang/CharSequence;
+Landroid/app/DownloadManager$Request;->mDestinationUri:Landroid/net/Uri;
+Landroid/app/DownloadManager$Request;->mFlags:I
+Landroid/app/DownloadManager$Request;->mIsVisibleInDownloadsUi:Z
+Landroid/app/DownloadManager$Request;->mMeteredAllowed:Z
+Landroid/app/DownloadManager$Request;->mMimeType:Ljava/lang/String;
+Landroid/app/DownloadManager$Request;->mNotificationVisibility:I
+Landroid/app/DownloadManager$Request;->mRequestHeaders:Ljava/util/List;
+Landroid/app/DownloadManager$Request;->mRoamingAllowed:Z
+Landroid/app/DownloadManager$Request;->mScannable:Z
+Landroid/app/DownloadManager$Request;->mTitle:Ljava/lang/CharSequence;
+Landroid/app/DownloadManager$Request;->NETWORK_BLUETOOTH:I
+Landroid/app/DownloadManager$Request;->putIfNonNull(Landroid/content/ContentValues;Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/app/DownloadManager$Request;->SCANNABLE_VALUE_NO:I
+Landroid/app/DownloadManager$Request;->SCANNABLE_VALUE_YES:I
+Landroid/app/DownloadManager$Request;->setDestinationFromBase(Ljava/io/File;Ljava/lang/String;)V
+Landroid/app/DownloadManager$Request;->toContentValues(Ljava/lang/String;)Landroid/content/ContentValues;
+Landroid/app/DownloadManager;-><init>(Landroid/content/Context;)V
+Landroid/app/DownloadManager;->addCompletedDownload(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;JZZ)J
+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;
+Landroid/app/EnterTransitionCoordinator;->cancel()V
+Landroid/app/EnterTransitionCoordinator;->cancelEnter()Z
+Landroid/app/EnterTransitionCoordinator;->clearState()V
+Landroid/app/EnterTransitionCoordinator;->forceViewsToAppear()V
+Landroid/app/EnterTransitionCoordinator;->getEnterViewsTransition()Landroid/transition/Transition;
+Landroid/app/EnterTransitionCoordinator;->getListener(Landroid/app/Activity;Z)Landroid/app/SharedElementCallback;
+Landroid/app/EnterTransitionCoordinator;->getSharedElementTransition()Landroid/transition/Transition;
+Landroid/app/EnterTransitionCoordinator;->getViewsTransition()Landroid/transition/Transition;
+Landroid/app/EnterTransitionCoordinator;->isCrossTask()Z
+Landroid/app/EnterTransitionCoordinator;->isReturning()Z
+Landroid/app/EnterTransitionCoordinator;->isWaitingForRemoteExit()Z
+Landroid/app/EnterTransitionCoordinator;->mActivity:Landroid/app/Activity;
+Landroid/app/EnterTransitionCoordinator;->makeOpaque()V
+Landroid/app/EnterTransitionCoordinator;->mapNamedElements(Ljava/util/ArrayList;Ljava/util/ArrayList;)Landroid/util/ArrayMap;
+Landroid/app/EnterTransitionCoordinator;->mAreViewsReady:Z
+Landroid/app/EnterTransitionCoordinator;->mBackgroundAnimator:Landroid/animation/ObjectAnimator;
+Landroid/app/EnterTransitionCoordinator;->mEnterViewsTransition:Landroid/transition/Transition;
+Landroid/app/EnterTransitionCoordinator;->mHasStopped:Z
+Landroid/app/EnterTransitionCoordinator;->MIN_ANIMATION_FRAMES:I
+Landroid/app/EnterTransitionCoordinator;->mIsCanceled:Z
+Landroid/app/EnterTransitionCoordinator;->mIsCrossTask:Z
+Landroid/app/EnterTransitionCoordinator;->mIsExitTransitionComplete:Z
+Landroid/app/EnterTransitionCoordinator;->mIsReadyForTransition:Z
+Landroid/app/EnterTransitionCoordinator;->mIsViewsTransitionStarted:Z
+Landroid/app/EnterTransitionCoordinator;->mReplacedBackground:Landroid/graphics/drawable/Drawable;
+Landroid/app/EnterTransitionCoordinator;->mSharedElementsBundle:Landroid/os/Bundle;
+Landroid/app/EnterTransitionCoordinator;->mSharedElementTransitionStarted:Z
+Landroid/app/EnterTransitionCoordinator;->mViewsReadyListener:Lcom/android/internal/view/OneShotPreDrawListener;
+Landroid/app/EnterTransitionCoordinator;->mWasOpaque:Z
+Landroid/app/EnterTransitionCoordinator;->namedViewsReady(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+Landroid/app/EnterTransitionCoordinator;->onRemoteExitTransitionComplete()V
+Landroid/app/EnterTransitionCoordinator;->onTakeSharedElements()V
+Landroid/app/EnterTransitionCoordinator;->onTransitionsComplete()V
+Landroid/app/EnterTransitionCoordinator;->prepareEnter()V
+Landroid/app/EnterTransitionCoordinator;->removeNullViews(Ljava/util/ArrayList;)V
+Landroid/app/EnterTransitionCoordinator;->requestLayoutForSharedElements()V
+Landroid/app/EnterTransitionCoordinator;->sendSharedElementDestination()V
+Landroid/app/EnterTransitionCoordinator;->sharedElementTransitionStarted()V
+Landroid/app/EnterTransitionCoordinator;->startEnterTransition(Landroid/transition/Transition;)V
+Landroid/app/EnterTransitionCoordinator;->startEnterTransitionOnly()V
+Landroid/app/EnterTransitionCoordinator;->startRejectedAnimations(Ljava/util/ArrayList;)V
+Landroid/app/EnterTransitionCoordinator;->startSharedElementTransition(Landroid/os/Bundle;)V
+Landroid/app/EnterTransitionCoordinator;->stop()V
+Landroid/app/EnterTransitionCoordinator;->TAG:Ljava/lang/String;
+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;
+Landroid/app/ExitTransitionCoordinator;->clearState()V
+Landroid/app/ExitTransitionCoordinator;->delayCancel()V
+Landroid/app/ExitTransitionCoordinator;->fadeOutBackground()V
+Landroid/app/ExitTransitionCoordinator;->finish()V
+Landroid/app/ExitTransitionCoordinator;->finishIfNecessary()V
+Landroid/app/ExitTransitionCoordinator;->getExitTransition()Landroid/transition/Transition;
+Landroid/app/ExitTransitionCoordinator;->getSharedElementExitTransition()Landroid/transition/Transition;
+Landroid/app/ExitTransitionCoordinator;->getSharedElementTransition()Landroid/transition/Transition;
+Landroid/app/ExitTransitionCoordinator;->getViewsTransition()Landroid/transition/Transition;
+Landroid/app/ExitTransitionCoordinator;->hideSharedElements()V
+Landroid/app/ExitTransitionCoordinator;->isReadyToNotify()Z
+Landroid/app/ExitTransitionCoordinator;->mActivity:Landroid/app/Activity;
+Landroid/app/ExitTransitionCoordinator;->MAX_WAIT_MS:J
+Landroid/app/ExitTransitionCoordinator;->mBackgroundAnimator:Landroid/animation/ObjectAnimator;
+Landroid/app/ExitTransitionCoordinator;->mExitNotified:Z
+Landroid/app/ExitTransitionCoordinator;->mExitSharedElementBundle:Landroid/os/Bundle;
+Landroid/app/ExitTransitionCoordinator;->mHandler:Landroid/os/Handler;
+Landroid/app/ExitTransitionCoordinator;->mHideSharedElementsCallback:Landroid/app/ExitTransitionCoordinator$HideSharedElementsCallback;
+Landroid/app/ExitTransitionCoordinator;->mIsBackgroundReady:Z
+Landroid/app/ExitTransitionCoordinator;->mIsCanceled:Z
+Landroid/app/ExitTransitionCoordinator;->mIsExitStarted:Z
+Landroid/app/ExitTransitionCoordinator;->mIsHidden:Z
+Landroid/app/ExitTransitionCoordinator;->moveSharedElementWithParent()Z
+Landroid/app/ExitTransitionCoordinator;->mSharedElementBundle:Landroid/os/Bundle;
+Landroid/app/ExitTransitionCoordinator;->mSharedElementNotified:Z
+Landroid/app/ExitTransitionCoordinator;->mSharedElementsHidden:Z
+Landroid/app/ExitTransitionCoordinator;->notifyComplete()V
+Landroid/app/ExitTransitionCoordinator;->notifyExitComplete()V
+Landroid/app/ExitTransitionCoordinator;->onTransitionsComplete()V
+Landroid/app/ExitTransitionCoordinator;->resetViews()V
+Landroid/app/ExitTransitionCoordinator;->setHideSharedElementsCallback(Landroid/app/ExitTransitionCoordinator$HideSharedElementsCallback;)V
+Landroid/app/ExitTransitionCoordinator;->sharedElementExitBack()V
+Landroid/app/ExitTransitionCoordinator;->sharedElementTransitionComplete()V
+Landroid/app/ExitTransitionCoordinator;->startExit()V
+Landroid/app/ExitTransitionCoordinator;->startExit(ILandroid/content/Intent;)V
+Landroid/app/ExitTransitionCoordinator;->startExitTransition()V
+Landroid/app/ExitTransitionCoordinator;->startSharedElementExit(Landroid/view/ViewGroup;)V
+Landroid/app/ExitTransitionCoordinator;->stop()V
+Landroid/app/ExitTransitionCoordinator;->stopCancel()V
+Landroid/app/ExitTransitionCoordinator;->TAG:Ljava/lang/String;
+Landroid/app/ExpandableListActivity;->ensureList()V
+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;
+Landroid/app/Fragment$AnimationInfo;->mAnimatingAway:Landroid/animation/Animator;
+Landroid/app/Fragment$AnimationInfo;->mEnterTransition:Landroid/transition/Transition;
+Landroid/app/Fragment$AnimationInfo;->mEnterTransitionCallback:Landroid/app/SharedElementCallback;
+Landroid/app/Fragment$AnimationInfo;->mEnterTransitionPostponed:Z
+Landroid/app/Fragment$AnimationInfo;->mExitTransition:Landroid/transition/Transition;
+Landroid/app/Fragment$AnimationInfo;->mExitTransitionCallback:Landroid/app/SharedElementCallback;
+Landroid/app/Fragment$AnimationInfo;->mIsHideReplaced:Z
+Landroid/app/Fragment$AnimationInfo;->mNextAnim:I
+Landroid/app/Fragment$AnimationInfo;->mNextTransition:I
+Landroid/app/Fragment$AnimationInfo;->mNextTransitionStyle:I
+Landroid/app/Fragment$AnimationInfo;->mReenterTransition:Landroid/transition/Transition;
+Landroid/app/Fragment$AnimationInfo;->mReturnTransition:Landroid/transition/Transition;
+Landroid/app/Fragment$AnimationInfo;->mSharedElementEnterTransition:Landroid/transition/Transition;
+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
+Landroid/app/Fragment$SavedState;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
+Landroid/app/Fragment$SavedState;->mState:Landroid/os/Bundle;
+Landroid/app/Fragment;->ACTIVITY_CREATED:I
+Landroid/app/Fragment;->callStartTransitionListener()V
+Landroid/app/Fragment;->CREATED:I
+Landroid/app/Fragment;->ensureAnimationInfo()Landroid/app/Fragment$AnimationInfo;
+Landroid/app/Fragment;->findFragmentByWho(Ljava/lang/String;)Landroid/app/Fragment;
+Landroid/app/Fragment;->getAnimatingAway()Landroid/animation/Animator;
+Landroid/app/Fragment;->getEnterTransitionCallback()Landroid/app/SharedElementCallback;
+Landroid/app/Fragment;->getExitTransitionCallback()Landroid/app/SharedElementCallback;
+Landroid/app/Fragment;->getNextAnim()I
+Landroid/app/Fragment;->getNextTransition()I
+Landroid/app/Fragment;->getNextTransitionStyle()I
+Landroid/app/Fragment;->getStateAfterAnimating()I
+Landroid/app/Fragment;->INITIALIZING:I
+Landroid/app/Fragment;->initState()V
+Landroid/app/Fragment;->instantiateChildFragmentManager()V
+Landroid/app/Fragment;->INVALID_STATE:I
+Landroid/app/Fragment;->isHideReplaced()Z
+Landroid/app/Fragment;->isInBackStack()Z
+Landroid/app/Fragment;->isPostponed()Z
+Landroid/app/Fragment;->loadTransition(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/transition/Transition;Landroid/transition/Transition;I)Landroid/transition/Transition;
+Landroid/app/Fragment;->mAnimationInfo:Landroid/app/Fragment$AnimationInfo;
+Landroid/app/Fragment;->mArguments:Landroid/os/Bundle;
+Landroid/app/Fragment;->mBackStackNesting:I
+Landroid/app/Fragment;->mCalled:Z
+Landroid/app/Fragment;->mCheckedForLoaderManager:Z
+Landroid/app/Fragment;->mChildNonConfig:Landroid/app/FragmentManagerNonConfig;
+Landroid/app/Fragment;->mContainer:Landroid/view/ViewGroup;
+Landroid/app/Fragment;->mContainerId:I
+Landroid/app/Fragment;->mDeferStart:Z
+Landroid/app/Fragment;->mDetached:Z
+Landroid/app/Fragment;->mFromLayout:Z
+Landroid/app/Fragment;->mHasMenu:Z
+Landroid/app/Fragment;->mHidden:Z
+Landroid/app/Fragment;->mHiddenChanged:Z
+Landroid/app/Fragment;->mInLayout:Z
+Landroid/app/Fragment;->mIsCreated:Z
+Landroid/app/Fragment;->mIsNewlyAdded:Z
+Landroid/app/Fragment;->mLayoutInflater:Landroid/view/LayoutInflater;
+Landroid/app/Fragment;->mLoaderManager:Landroid/app/LoaderManagerImpl;
+Landroid/app/Fragment;->mMenuVisible:Z
+Landroid/app/Fragment;->mParentFragment:Landroid/app/Fragment;
+Landroid/app/Fragment;->mPerformedCreateView:Z
+Landroid/app/Fragment;->mRemoving:Z
+Landroid/app/Fragment;->mRestored:Z
+Landroid/app/Fragment;->mRetaining:Z
+Landroid/app/Fragment;->mRetainInstance:Z
+Landroid/app/Fragment;->mSavedViewState:Landroid/util/SparseArray;
+Landroid/app/Fragment;->mState:I
+Landroid/app/Fragment;->mTag:Ljava/lang/String;
+Landroid/app/Fragment;->mTarget:Landroid/app/Fragment;
+Landroid/app/Fragment;->mTargetIndex:I
+Landroid/app/Fragment;->mTargetRequestCode:I
+Landroid/app/Fragment;->mUserVisibleHint:Z
+Landroid/app/Fragment;->noteStateNotSaved()V
+Landroid/app/Fragment;->performActivityCreated(Landroid/os/Bundle;)V
+Landroid/app/Fragment;->performConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/app/Fragment;->performContextItemSelected(Landroid/view/MenuItem;)Z
+Landroid/app/Fragment;->performCreate(Landroid/os/Bundle;)V
+Landroid/app/Fragment;->performCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z
+Landroid/app/Fragment;->performCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;
+Landroid/app/Fragment;->performDestroy()V
+Landroid/app/Fragment;->performDestroyView()V
+Landroid/app/Fragment;->performDetach()V
+Landroid/app/Fragment;->performGetLayoutInflater(Landroid/os/Bundle;)Landroid/view/LayoutInflater;
+Landroid/app/Fragment;->performLowMemory()V
+Landroid/app/Fragment;->performMultiWindowModeChanged(Z)V
+Landroid/app/Fragment;->performMultiWindowModeChanged(ZLandroid/content/res/Configuration;)V
+Landroid/app/Fragment;->performOptionsItemSelected(Landroid/view/MenuItem;)Z
+Landroid/app/Fragment;->performOptionsMenuClosed(Landroid/view/Menu;)V
+Landroid/app/Fragment;->performPause()V
+Landroid/app/Fragment;->performPictureInPictureModeChanged(Z)V
+Landroid/app/Fragment;->performPictureInPictureModeChanged(ZLandroid/content/res/Configuration;)V
+Landroid/app/Fragment;->performPrepareOptionsMenu(Landroid/view/Menu;)Z
+Landroid/app/Fragment;->performResume()V
+Landroid/app/Fragment;->performSaveInstanceState(Landroid/os/Bundle;)V
+Landroid/app/Fragment;->performStart()V
+Landroid/app/Fragment;->performStop()V
+Landroid/app/Fragment;->performTrimMemory(I)V
+Landroid/app/Fragment;->restoreChildFragmentState(Landroid/os/Bundle;Z)V
+Landroid/app/Fragment;->restoreViewState(Landroid/os/Bundle;)V
+Landroid/app/Fragment;->RESUMED:I
+Landroid/app/Fragment;->setAnimatingAway(Landroid/animation/Animator;)V
+Landroid/app/Fragment;->setHideReplaced(Z)V
+Landroid/app/Fragment;->setIndex(ILandroid/app/Fragment;)V
+Landroid/app/Fragment;->setNextAnim(I)V
+Landroid/app/Fragment;->setNextTransition(II)V
+Landroid/app/Fragment;->setOnStartEnterTransitionListener(Landroid/app/Fragment$OnStartEnterTransitionListener;)V
+Landroid/app/Fragment;->setStateAfterAnimating(I)V
+Landroid/app/Fragment;->shouldChangeTransition(Landroid/transition/Transition;Landroid/transition/Transition;)Z
+Landroid/app/Fragment;->startActivityForResultAsUser(Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/app/Fragment;->STARTED:I
+Landroid/app/Fragment;->STOPPED:I
+Landroid/app/Fragment;->USE_DEFAULT_TRANSITION:Landroid/transition/Transition;
+Landroid/app/FragmentBreadCrumbs;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/app/FragmentBreadCrumbs;->createBackStackEntry(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/app/BackStackRecord;
+Landroid/app/FragmentBreadCrumbs;->DEFAULT_GRAVITY:I
+Landroid/app/FragmentBreadCrumbs;->getPreEntry(I)Landroid/app/FragmentManager$BackStackEntry;
+Landroid/app/FragmentBreadCrumbs;->getPreEntryCount()I
+Landroid/app/FragmentBreadCrumbs;->mActivity:Landroid/app/Activity;
+Landroid/app/FragmentBreadCrumbs;->mContainer:Landroid/widget/LinearLayout;
+Landroid/app/FragmentBreadCrumbs;->mGravity:I
+Landroid/app/FragmentBreadCrumbs;->mInflater:Landroid/view/LayoutInflater;
+Landroid/app/FragmentBreadCrumbs;->mLayoutResId:I
+Landroid/app/FragmentBreadCrumbs;->mMaxVisible:I
+Landroid/app/FragmentBreadCrumbs;->mOnBreadCrumbClickListener:Landroid/app/FragmentBreadCrumbs$OnBreadCrumbClickListener;
+Landroid/app/FragmentBreadCrumbs;->mOnClickListener:Landroid/view/View$OnClickListener;
+Landroid/app/FragmentBreadCrumbs;->mParentClickListener:Landroid/view/View$OnClickListener;
+Landroid/app/FragmentBreadCrumbs;->mParentEntry:Landroid/app/BackStackRecord;
+Landroid/app/FragmentBreadCrumbs;->mTextColor:I
+Landroid/app/FragmentBreadCrumbs;->mTopEntry:Landroid/app/BackStackRecord;
+Landroid/app/FragmentBreadCrumbs;->updateCrumbs()V
+Landroid/app/FragmentContainer;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;
+Landroid/app/FragmentController;-><init>(Landroid/app/FragmentHostCallback;)V
+Landroid/app/FragmentHostCallback;-><init>(Landroid/app/Activity;)V
+Landroid/app/FragmentHostCallback;-><init>(Landroid/app/Activity;Landroid/content/Context;Landroid/os/Handler;I)V
+Landroid/app/FragmentHostCallback;->chooseHandler(Landroid/content/Context;Landroid/os/Handler;)Landroid/os/Handler;
+Landroid/app/FragmentHostCallback;->doLoaderDestroy()V
+Landroid/app/FragmentHostCallback;->doLoaderRetain()V
+Landroid/app/FragmentHostCallback;->doLoaderStart()V
+Landroid/app/FragmentHostCallback;->doLoaderStop(Z)V
+Landroid/app/FragmentHostCallback;->dumpLoaders(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/FragmentHostCallback;->getActivity()Landroid/app/Activity;
+Landroid/app/FragmentHostCallback;->getContext()Landroid/content/Context;
+Landroid/app/FragmentHostCallback;->getFragmentManagerImpl()Landroid/app/FragmentManagerImpl;
+Landroid/app/FragmentHostCallback;->getHandler()Landroid/os/Handler;
+Landroid/app/FragmentHostCallback;->getLoaderManager(Ljava/lang/String;ZZ)Landroid/app/LoaderManagerImpl;
+Landroid/app/FragmentHostCallback;->getLoaderManagerImpl()Landroid/app/LoaderManagerImpl;
+Landroid/app/FragmentHostCallback;->getRetainLoaders()Z
+Landroid/app/FragmentHostCallback;->inactivateFragment(Ljava/lang/String;)V
+Landroid/app/FragmentHostCallback;->mActivity:Landroid/app/Activity;
+Landroid/app/FragmentHostCallback;->mAllLoaderManagers:Landroid/util/ArrayMap;
+Landroid/app/FragmentHostCallback;->mCheckedForLoaderManager:Z
+Landroid/app/FragmentHostCallback;->mContext:Landroid/content/Context;
+Landroid/app/FragmentHostCallback;->mFragmentManager:Landroid/app/FragmentManagerImpl;
+Landroid/app/FragmentHostCallback;->mHandler:Landroid/os/Handler;
+Landroid/app/FragmentHostCallback;->mLoaderManager:Landroid/app/LoaderManagerImpl;
+Landroid/app/FragmentHostCallback;->mRetainLoaders:Z
+Landroid/app/FragmentHostCallback;->mWindowAnimations:I
+Landroid/app/FragmentHostCallback;->onStartActivityAsUserFromFragment(Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/app/FragmentHostCallback;->reportLoaderStart()V
+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
+Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;->isReady()Z
+Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;->mIsBack:Z
+Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;->mNumPostponed:I
+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
+Landroid/app/FragmentManagerImpl;->addFragment(Landroid/app/Fragment;Z)V
+Landroid/app/FragmentManagerImpl;->allocBackStackIndex(Landroid/app/BackStackRecord;)I
+Landroid/app/FragmentManagerImpl;->attachController(Landroid/app/FragmentHostCallback;Landroid/app/FragmentContainer;Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->attachFragment(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->burpActive()V
+Landroid/app/FragmentManagerImpl;->checkStateLoss()V
+Landroid/app/FragmentManagerImpl;->cleanupExec()V
+Landroid/app/FragmentManagerImpl;->completeExecute(Landroid/app/BackStackRecord;ZZZ)V
+Landroid/app/FragmentManagerImpl;->completeShowHideFragment(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->DEBUG:Z
+Landroid/app/FragmentManagerImpl;->detachFragment(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->dispatchActivityCreated()V
+Landroid/app/FragmentManagerImpl;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/app/FragmentManagerImpl;->dispatchContextItemSelected(Landroid/view/MenuItem;)Z
+Landroid/app/FragmentManagerImpl;->dispatchCreate()V
+Landroid/app/FragmentManagerImpl;->dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z
+Landroid/app/FragmentManagerImpl;->dispatchDestroy()V
+Landroid/app/FragmentManagerImpl;->dispatchDestroyView()V
+Landroid/app/FragmentManagerImpl;->dispatchLowMemory()V
+Landroid/app/FragmentManagerImpl;->dispatchMoveToState(I)V
+Landroid/app/FragmentManagerImpl;->dispatchMultiWindowModeChanged(Z)V
+Landroid/app/FragmentManagerImpl;->dispatchMultiWindowModeChanged(ZLandroid/content/res/Configuration;)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentActivityCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentAttached(Landroid/app/Fragment;Landroid/content/Context;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentDestroyed(Landroid/app/Fragment;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentDetached(Landroid/app/Fragment;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentPaused(Landroid/app/Fragment;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentPreAttached(Landroid/app/Fragment;Landroid/content/Context;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentPreCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentResumed(Landroid/app/Fragment;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentSaveInstanceState(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentStarted(Landroid/app/Fragment;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentStopped(Landroid/app/Fragment;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentViewCreated(Landroid/app/Fragment;Landroid/view/View;Landroid/os/Bundle;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOnFragmentViewDestroyed(Landroid/app/Fragment;Z)V
+Landroid/app/FragmentManagerImpl;->dispatchOptionsItemSelected(Landroid/view/MenuItem;)Z
+Landroid/app/FragmentManagerImpl;->dispatchOptionsMenuClosed(Landroid/view/Menu;)V
+Landroid/app/FragmentManagerImpl;->dispatchPause()V
+Landroid/app/FragmentManagerImpl;->dispatchPictureInPictureModeChanged(Z)V
+Landroid/app/FragmentManagerImpl;->dispatchPictureInPictureModeChanged(ZLandroid/content/res/Configuration;)V
+Landroid/app/FragmentManagerImpl;->dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z
+Landroid/app/FragmentManagerImpl;->dispatchResume()V
+Landroid/app/FragmentManagerImpl;->dispatchStart()V
+Landroid/app/FragmentManagerImpl;->dispatchStop()V
+Landroid/app/FragmentManagerImpl;->dispatchTrimMemory(I)V
+Landroid/app/FragmentManagerImpl;->doPendingDeferredStart()V
+Landroid/app/FragmentManagerImpl;->endAnimatingAwayFragments()V
+Landroid/app/FragmentManagerImpl;->enqueueAction(Landroid/app/FragmentManagerImpl$OpGenerator;Z)V
+Landroid/app/FragmentManagerImpl;->ensureExecReady(Z)V
+Landroid/app/FragmentManagerImpl;->ensureInflatedFragmentView(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->execPendingActions()Z
+Landroid/app/FragmentManagerImpl;->execSingleAction(Landroid/app/FragmentManagerImpl$OpGenerator;Z)V
+Landroid/app/FragmentManagerImpl;->executeOps(Ljava/util/ArrayList;Ljava/util/ArrayList;II)V
+Landroid/app/FragmentManagerImpl;->executeOpsTogether(Ljava/util/ArrayList;Ljava/util/ArrayList;II)V
+Landroid/app/FragmentManagerImpl;->executePostponedTransaction(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+Landroid/app/FragmentManagerImpl;->findFragmentByWho(Ljava/lang/String;)Landroid/app/Fragment;
+Landroid/app/FragmentManagerImpl;->findFragmentUnder(Landroid/app/Fragment;)Landroid/app/Fragment;
+Landroid/app/FragmentManagerImpl;->forcePostponedTransactions()V
+Landroid/app/FragmentManagerImpl;->freeBackStackIndex(I)V
+Landroid/app/FragmentManagerImpl;->generateOpsForPendingActions(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+Landroid/app/FragmentManagerImpl;->getLayoutInflaterFactory()Landroid/view/LayoutInflater$Factory2;
+Landroid/app/FragmentManagerImpl;->getTargetSdk()I
+Landroid/app/FragmentManagerImpl;->hideFragment(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->isStateAtLeast(I)Z
+Landroid/app/FragmentManagerImpl;->makeActive(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->makeInactive(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->makeRemovedFragmentsInvisible(Landroid/util/ArraySet;)V
+Landroid/app/FragmentManagerImpl;->mAllowOldReentrantBehavior:Z
+Landroid/app/FragmentManagerImpl;->mAvailBackStackIndices:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mBackStack:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mBackStackChangeListeners:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mBackStackIndices:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mContainer:Landroid/app/FragmentContainer;
+Landroid/app/FragmentManagerImpl;->mCreatedMenus:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mCurState:I
+Landroid/app/FragmentManagerImpl;->mDestroyed:Z
+Landroid/app/FragmentManagerImpl;->mExecCommit:Ljava/lang/Runnable;
+Landroid/app/FragmentManagerImpl;->mExecutingActions:Z
+Landroid/app/FragmentManagerImpl;->mHavePendingDeferredStart:Z
+Landroid/app/FragmentManagerImpl;->mHost:Landroid/app/FragmentHostCallback;
+Landroid/app/FragmentManagerImpl;->mLifecycleCallbacks:Ljava/util/concurrent/CopyOnWriteArrayList;
+Landroid/app/FragmentManagerImpl;->mNeedMenuInvalidate:Z
+Landroid/app/FragmentManagerImpl;->mNextFragmentIndex:I
+Landroid/app/FragmentManagerImpl;->mNoTransactionsBecause:Ljava/lang/String;
+Landroid/app/FragmentManagerImpl;->modifiesAlpha(Landroid/animation/Animator;)Z
+Landroid/app/FragmentManagerImpl;->moveFragmentToExpectedState(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->moveToState(IZ)V
+Landroid/app/FragmentManagerImpl;->moveToState(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->moveToState(Landroid/app/Fragment;IIIZ)V
+Landroid/app/FragmentManagerImpl;->mParent:Landroid/app/Fragment;
+Landroid/app/FragmentManagerImpl;->mPendingActions:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mPostponedTransactions:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mPrimaryNav:Landroid/app/Fragment;
+Landroid/app/FragmentManagerImpl;->mSavedNonConfig:Landroid/app/FragmentManagerNonConfig;
+Landroid/app/FragmentManagerImpl;->mStateArray:Landroid/util/SparseArray;
+Landroid/app/FragmentManagerImpl;->mStateBundle:Landroid/os/Bundle;
+Landroid/app/FragmentManagerImpl;->mTmpAddedFragments:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mTmpIsPop:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->mTmpRecords:Ljava/util/ArrayList;
+Landroid/app/FragmentManagerImpl;->performPendingDeferredStart(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->popBackStackImmediate(Ljava/lang/String;II)Z
+Landroid/app/FragmentManagerImpl;->popBackStackState(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/String;II)Z
+Landroid/app/FragmentManagerImpl;->postponePostponableTransactions(Ljava/util/ArrayList;Ljava/util/ArrayList;IILandroid/util/ArraySet;)I
+Landroid/app/FragmentManagerImpl;->removeFragment(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->removeRedundantOperationsAndExecute(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+Landroid/app/FragmentManagerImpl;->reportBackStackChanged()V
+Landroid/app/FragmentManagerImpl;->restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V
+Landroid/app/FragmentManagerImpl;->retainNonConfig()Landroid/app/FragmentManagerNonConfig;
+Landroid/app/FragmentManagerImpl;->reverseTransit(I)I
+Landroid/app/FragmentManagerImpl;->saveAllState()Landroid/os/Parcelable;
+Landroid/app/FragmentManagerImpl;->saveFragmentBasicState(Landroid/app/Fragment;)Landroid/os/Bundle;
+Landroid/app/FragmentManagerImpl;->saveFragmentViewState(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->saveNonConfig()V
+Landroid/app/FragmentManagerImpl;->scheduleCommit()V
+Landroid/app/FragmentManagerImpl;->setBackStackIndex(ILandroid/app/BackStackRecord;)V
+Landroid/app/FragmentManagerImpl;->setHWLayerAnimListenerIfAlpha(Landroid/view/View;Landroid/animation/Animator;)V
+Landroid/app/FragmentManagerImpl;->setPrimaryNavigationFragment(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->setRetaining(Landroid/app/FragmentManagerNonConfig;)V
+Landroid/app/FragmentManagerImpl;->shouldRunOnHWLayer(Landroid/view/View;Landroid/animation/Animator;)Z
+Landroid/app/FragmentManagerImpl;->showFragment(Landroid/app/Fragment;)V
+Landroid/app/FragmentManagerImpl;->startPendingDeferredFragments()V
+Landroid/app/FragmentManagerImpl;->TAG:Ljava/lang/String;
+Landroid/app/FragmentManagerImpl;->TARGET_REQUEST_CODE_STATE_TAG:Ljava/lang/String;
+Landroid/app/FragmentManagerImpl;->TARGET_STATE_TAG:Ljava/lang/String;
+Landroid/app/FragmentManagerImpl;->throwException(Ljava/lang/RuntimeException;)V
+Landroid/app/FragmentManagerImpl;->transitToStyleIndex(IZ)I
+Landroid/app/FragmentManagerImpl;->USER_VISIBLE_HINT_TAG:Ljava/lang/String;
+Landroid/app/FragmentManagerImpl;->VIEW_STATE_TAG:Ljava/lang/String;
+Landroid/app/FragmentManagerNonConfig;-><init>(Ljava/util/List;Ljava/util/List;)V
+Landroid/app/FragmentManagerNonConfig;->getChildNonConfigs()Ljava/util/List;
+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
+Landroid/app/IActivityController$Stub$Proxy;->appCrashed(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;JLjava/lang/String;)Z
+Landroid/app/IActivityController$Stub$Proxy;->appEarlyNotResponding(Ljava/lang/String;ILjava/lang/String;)I
+Landroid/app/IActivityController$Stub$Proxy;->appNotResponding(Ljava/lang/String;ILjava/lang/String;)I
+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
+Landroid/app/IActivityController$Stub;->TRANSACTION_activityStarting:I
+Landroid/app/IActivityController$Stub;->TRANSACTION_appCrashed:I
+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
+Landroid/app/IActivityManager$Stub$Proxy;->activityPaused(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->activityRelaunched(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->activityResumed(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->activitySlept(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
+Landroid/app/IActivityManager$Stub$Proxy;->addAppTask(Landroid/os/IBinder;Landroid/content/Intent;Landroid/app/ActivityManager$TaskDescription;Landroid/graphics/Bitmap;)I
+Landroid/app/IActivityManager$Stub$Proxy;->addInstrumentationResults(Landroid/app/IApplicationThread;Landroid/os/Bundle;)V
+Landroid/app/IActivityManager$Stub$Proxy;->addPackageDependency(Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->alwaysShowUnsupportedCompileSdkWarning(Landroid/content/ComponentName;)V
+Landroid/app/IActivityManager$Stub$Proxy;->appNotRespondingViaProvider(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->attachApplication(Landroid/app/IApplicationThread;J)V
+Landroid/app/IActivityManager$Stub$Proxy;->backgroundWhitelistUid(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->backupAgentCreated(Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->bindBackupAgent(Ljava/lang/String;II)Z
+Landroid/app/IActivityManager$Stub$Proxy;->bindService(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;I)I
+Landroid/app/IActivityManager$Stub$Proxy;->bootAnimationComplete()V
+Landroid/app/IActivityManager$Stub$Proxy;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
+Landroid/app/IActivityManager$Stub$Proxy;->cancelIntentSender(Landroid/content/IIntentSender;)V
+Landroid/app/IActivityManager$Stub$Proxy;->cancelRecentsAnimation(Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->cancelTaskWindowTransition(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->checkGrantUriPermission(ILjava/lang/String;Landroid/net/Uri;II)I
+Landroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)I
+Landroid/app/IActivityManager$Stub$Proxy;->checkPermissionWithToken(Ljava/lang/String;IILandroid/os/IBinder;)I
+Landroid/app/IActivityManager$Stub$Proxy;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
+Landroid/app/IActivityManager$Stub$Proxy;->clearApplicationUserData(Ljava/lang/String;ZLandroid/content/pm/IPackageDataObserver;I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->clearGrantedUriPermissions(Ljava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->clearPendingBackup()V
+Landroid/app/IActivityManager$Stub$Proxy;->closeSystemDialogs(Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->convertFromTranslucent(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->convertToTranslucent(Landroid/os/IBinder;Landroid/os/Bundle;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->crashApplication(IILjava/lang/String;ILjava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->createStackOnDisplay(I)I
+Landroid/app/IActivityManager$Stub$Proxy;->dismissKeyguard(Landroid/os/IBinder;Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
+Landroid/app/IActivityManager$Stub$Proxy;->dismissPip(ZI)V
+Landroid/app/IActivityManager$Stub$Proxy;->dismissSplitScreenMode(Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->dumpHeap(Ljava/lang/String;IZZZLjava/lang/String;Landroid/os/ParcelFileDescriptor;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->dumpHeapFinished(Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->enterPictureInPictureMode(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->enterSafeMode()V
+Landroid/app/IActivityManager$Stub$Proxy;->exitFreeformMode(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->finishActivityAffinity(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->finishHeavyWeightApp()V
+Landroid/app/IActivityManager$Stub$Proxy;->finishInstrumentation(Landroid/app/IApplicationThread;ILandroid/os/Bundle;)V
+Landroid/app/IActivityManager$Stub$Proxy;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
+Landroid/app/IActivityManager$Stub$Proxy;->finishSubActivity(Landroid/os/IBinder;Ljava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->finishVoiceTask(Landroid/service/voice/IVoiceInteractionSession;)V
+Landroid/app/IActivityManager$Stub$Proxy;->forceStopPackage(Ljava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->getActivityClassForToken(Landroid/os/IBinder;)Landroid/content/ComponentName;
+Landroid/app/IActivityManager$Stub$Proxy;->getActivityDisplayId(Landroid/os/IBinder;)I
+Landroid/app/IActivityManager$Stub$Proxy;->getActivityOptions(Landroid/os/IBinder;)Landroid/os/Bundle;
+Landroid/app/IActivityManager$Stub$Proxy;->getAllStackInfos()Ljava/util/List;
+Landroid/app/IActivityManager$Stub$Proxy;->getAppTasks(Ljava/lang/String;)Ljava/util/List;
+Landroid/app/IActivityManager$Stub$Proxy;->getAppTaskThumbnailSize()Landroid/graphics/Point;
+Landroid/app/IActivityManager$Stub$Proxy;->getAssistContextExtras(I)Landroid/os/Bundle;
+Landroid/app/IActivityManager$Stub$Proxy;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName;
+Landroid/app/IActivityManager$Stub$Proxy;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String;
+Landroid/app/IActivityManager$Stub$Proxy;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;
+Landroid/app/IActivityManager$Stub$Proxy;->getContentProviderExternal(Ljava/lang/String;ILandroid/os/IBinder;)Landroid/app/ContentProviderHolder;
+Landroid/app/IActivityManager$Stub$Proxy;->getCurrentUser()Landroid/content/pm/UserInfo;
+Landroid/app/IActivityManager$Stub$Proxy;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
+Landroid/app/IActivityManager$Stub$Proxy;->getFilteredTasks(III)Ljava/util/List;
+Landroid/app/IActivityManager$Stub$Proxy;->getFocusedStackInfo()Landroid/app/ActivityManager$StackInfo;
+Landroid/app/IActivityManager$Stub$Proxy;->getFrontActivityScreenCompatMode()I
+Landroid/app/IActivityManager$Stub$Proxy;->getGrantedUriPermissions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/IActivityManager$Stub$Proxy;->getIntentForIntentSender(Landroid/content/IIntentSender;)Landroid/content/Intent;
+Landroid/app/IActivityManager$Stub$Proxy;->getIntentSender(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
+Landroid/app/IActivityManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/IActivityManager$Stub$Proxy;->getLastResumedActivityUserId()I
+Landroid/app/IActivityManager$Stub$Proxy;->getLaunchedFromPackage(Landroid/os/IBinder;)Ljava/lang/String;
+Landroid/app/IActivityManager$Stub$Proxy;->getLockTaskModeState()I
+Landroid/app/IActivityManager$Stub$Proxy;->getMaxNumPictureInPictureActions(Landroid/os/IBinder;)I
+Landroid/app/IActivityManager$Stub$Proxy;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
+Landroid/app/IActivityManager$Stub$Proxy;->getMemoryTrimLevel()I
+Landroid/app/IActivityManager$Stub$Proxy;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V
+Landroid/app/IActivityManager$Stub$Proxy;->getPackageAskScreenCompat(Ljava/lang/String;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->getPackageForIntentSender(Landroid/content/IIntentSender;)Ljava/lang/String;
+Landroid/app/IActivityManager$Stub$Proxy;->getPackageForToken(Landroid/os/IBinder;)Ljava/lang/String;
+Landroid/app/IActivityManager$Stub$Proxy;->getPackageProcessState(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/app/IActivityManager$Stub$Proxy;->getPackageScreenCompatMode(Ljava/lang/String;)I
+Landroid/app/IActivityManager$Stub$Proxy;->getPersistedUriPermissions(Ljava/lang/String;Z)Landroid/content/pm/ParceledListSlice;
+Landroid/app/IActivityManager$Stub$Proxy;->getProcessesInErrorState()Ljava/util/List;
+Landroid/app/IActivityManager$Stub$Proxy;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
+Landroid/app/IActivityManager$Stub$Proxy;->getProviderMimeType(Landroid/net/Uri;I)Ljava/lang/String;
+Landroid/app/IActivityManager$Stub$Proxy;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
+Landroid/app/IActivityManager$Stub$Proxy;->getRequestedOrientation(Landroid/os/IBinder;)I
+Landroid/app/IActivityManager$Stub$Proxy;->getRunningAppProcesses()Ljava/util/List;
+Landroid/app/IActivityManager$Stub$Proxy;->getRunningExternalApplications()Ljava/util/List;
+Landroid/app/IActivityManager$Stub$Proxy;->getRunningServiceControlPanel(Landroid/content/ComponentName;)Landroid/app/PendingIntent;
+Landroid/app/IActivityManager$Stub$Proxy;->getRunningUserIds()[I
+Landroid/app/IActivityManager$Stub$Proxy;->getServices(II)Ljava/util/List;
+Landroid/app/IActivityManager$Stub$Proxy;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
+Landroid/app/IActivityManager$Stub$Proxy;->getTagForIntentSender(Landroid/content/IIntentSender;Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/IActivityManager$Stub$Proxy;->getTaskBounds(I)Landroid/graphics/Rect;
+Landroid/app/IActivityManager$Stub$Proxy;->getTaskDescription(I)Landroid/app/ActivityManager$TaskDescription;
+Landroid/app/IActivityManager$Stub$Proxy;->getTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
+Landroid/app/IActivityManager$Stub$Proxy;->getTaskForActivity(Landroid/os/IBinder;Z)I
+Landroid/app/IActivityManager$Stub$Proxy;->getTasks(I)Ljava/util/List;
+Landroid/app/IActivityManager$Stub$Proxy;->getTaskSnapshot(IZ)Landroid/app/ActivityManager$TaskSnapshot;
+Landroid/app/IActivityManager$Stub$Proxy;->getUidForIntentSender(Landroid/content/IIntentSender;)I
+Landroid/app/IActivityManager$Stub$Proxy;->getUidProcessState(ILjava/lang/String;)I
+Landroid/app/IActivityManager$Stub$Proxy;->getUriPermissionOwnerForActivity(Landroid/os/IBinder;)Landroid/os/IBinder;
+Landroid/app/IActivityManager$Stub$Proxy;->grantUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
+Landroid/app/IActivityManager$Stub$Proxy;->grantUriPermissionFromOwner(Landroid/os/IBinder;ILjava/lang/String;Landroid/net/Uri;III)V
+Landroid/app/IActivityManager$Stub$Proxy;->handleApplicationCrash(Landroid/os/IBinder;Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;)V
+Landroid/app/IActivityManager$Stub$Proxy;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
+Landroid/app/IActivityManager$Stub$Proxy;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
+Landroid/app/IActivityManager$Stub$Proxy;->hang(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->inputDispatchingTimedOut(IZLjava/lang/String;)J
+Landroid/app/IActivityManager$Stub$Proxy;->isAppStartModeDisabled(ILjava/lang/String;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isAssistDataAllowedOnCurrentActivity()Z
+Landroid/app/IActivityManager$Stub$Proxy;->isBackgroundRestricted(Ljava/lang/String;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isImmersive(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isInLockTaskMode()Z
+Landroid/app/IActivityManager$Stub$Proxy;->isInMultiWindowMode(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isInPictureInPictureMode(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isIntentSenderAForegroundService(Landroid/content/IIntentSender;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isIntentSenderTargetedToPackage(Landroid/content/IIntentSender;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isRootVoiceInteraction(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isTopActivityImmersive()Z
+Landroid/app/IActivityManager$Stub$Proxy;->isTopOfTask(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isUidActive(ILjava/lang/String;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isUserAMonkey()Z
+Landroid/app/IActivityManager$Stub$Proxy;->isUserRunning(II)Z
+Landroid/app/IActivityManager$Stub$Proxy;->isVrModePackageEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->keyguardGoingAway(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->killAllBackgroundProcesses()V
+Landroid/app/IActivityManager$Stub$Proxy;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->killApplicationProcess(Ljava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->killBackgroundProcesses(Ljava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->killPackageDependents(Ljava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->killPids([ILjava/lang/String;Z)Z
+Landroid/app/IActivityManager$Stub$Proxy;->killProcessesBelowForeground(Ljava/lang/String;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->killUid(IILjava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->launchAssistIntent(Landroid/content/Intent;ILjava/lang/String;ILandroid/os/Bundle;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->makePackageIdle(Ljava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->moveActivityTaskToBack(Landroid/os/IBinder;Z)Z
+Landroid/app/IActivityManager$Stub$Proxy;->moveStackToDisplay(II)V
+Landroid/app/IActivityManager$Stub$Proxy;->moveTaskBackwards(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->moveTasksToFullscreenStack(IZ)V
+Landroid/app/IActivityManager$Stub$Proxy;->moveTaskToFront(IILandroid/os/Bundle;)V
+Landroid/app/IActivityManager$Stub$Proxy;->moveTaskToStack(IIZ)V
+Landroid/app/IActivityManager$Stub$Proxy;->moveTopActivityToPinnedStack(ILandroid/graphics/Rect;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->navigateUpTo(Landroid/os/IBinder;Landroid/content/Intent;ILandroid/content/Intent;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->newUriPermissionOwner(Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/app/IActivityManager$Stub$Proxy;->noteAlarmFinish(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->noteAlarmStart(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->noteWakeupAlarm(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->notifyActivityDrawn(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->notifyCleartextNetwork(I[B)V
+Landroid/app/IActivityManager$Stub$Proxy;->notifyEnterAnimationComplete(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->notifyLaunchTaskBehindComplete(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->notifyLockedProfile(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->notifyPinnedStackAnimationEnded()V
+Landroid/app/IActivityManager$Stub$Proxy;->notifyPinnedStackAnimationStarted()V
+Landroid/app/IActivityManager$Stub$Proxy;->openContentUri(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
+Landroid/app/IActivityManager$Stub$Proxy;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;II)V
+Landroid/app/IActivityManager$Stub$Proxy;->peekService(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/app/IActivityManager$Stub$Proxy;->performIdleMaintenance()V
+Landroid/app/IActivityManager$Stub$Proxy;->positionTaskInStack(III)V
+Landroid/app/IActivityManager$Stub$Proxy;->profileControl(Ljava/lang/String;IZLandroid/app/ProfilerInfo;I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
+Landroid/app/IActivityManager$Stub$Proxy;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->refContentProvider(Landroid/os/IBinder;II)Z
+Landroid/app/IActivityManager$Stub$Proxy;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
+Landroid/app/IActivityManager$Stub$Proxy;->registerProcessObserver(Landroid/app/IProcessObserver;)V
+Landroid/app/IActivityManager$Stub$Proxy;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
+Landroid/app/IActivityManager$Stub$Proxy;->registerRemoteAnimationForNextActivityStart(Ljava/lang/String;Landroid/view/RemoteAnimationAdapter;)V
+Landroid/app/IActivityManager$Stub$Proxy;->registerRemoteAnimations(Landroid/os/IBinder;Landroid/view/RemoteAnimationDefinition;)V
+Landroid/app/IActivityManager$Stub$Proxy;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+Landroid/app/IActivityManager$Stub$Proxy;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->releaseActivityInstance(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->releasePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->releaseSomeActivities(Landroid/app/IApplicationThread;)V
+Landroid/app/IActivityManager$Stub$Proxy;->removeContentProvider(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->removeContentProviderExternal(Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->removeStack(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->removeStacksInWindowingModes([I)V
+Landroid/app/IActivityManager$Stub$Proxy;->removeStacksWithActivityTypes([I)V
+Landroid/app/IActivityManager$Stub$Proxy;->removeTask(I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V
+Landroid/app/IActivityManager$Stub$Proxy;->reportSizeConfigurations(Landroid/os/IBinder;[I[I[I)V
+Landroid/app/IActivityManager$Stub$Proxy;->requestAssistContextExtras(ILandroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;ZZ)Z
+Landroid/app/IActivityManager$Stub$Proxy;->requestAutofillData(Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->requestBugReport(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->requestTelephonyBugReport(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->requestWifiBugReport(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->resizeDockedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/app/IActivityManager$Stub$Proxy;->resizePinnedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/app/IActivityManager$Stub$Proxy;->resizeStack(ILandroid/graphics/Rect;ZZZI)V
+Landroid/app/IActivityManager$Stub$Proxy;->resizeTask(ILandroid/graphics/Rect;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->restart()V
+Landroid/app/IActivityManager$Stub$Proxy;->restartUserInBackground(I)I
+Landroid/app/IActivityManager$Stub$Proxy;->resumeAppSwitches()V
+Landroid/app/IActivityManager$Stub$Proxy;->revokeUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
+Landroid/app/IActivityManager$Stub$Proxy;->revokeUriPermissionFromOwner(Landroid/os/IBinder;Landroid/net/Uri;II)V
+Landroid/app/IActivityManager$Stub$Proxy;->scheduleApplicationInfoChanged(Ljava/util/List;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->sendIdleJobTrigger()V
+Landroid/app/IActivityManager$Stub$Proxy;->sendIntentSender(Landroid/content/IIntentSender;Landroid/os/IBinder;ILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
+Landroid/app/IActivityManager$Stub$Proxy;->serviceDoneExecuting(Landroid/os/IBinder;III)V
+Landroid/app/IActivityManager$Stub$Proxy;->setAgentApp(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->setAlwaysFinish(Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setDebugApp(Ljava/lang/String;ZZ)V
+Landroid/app/IActivityManager$Stub$Proxy;->setDisablePreviewScreenshots(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setDumpHeapDebugLimit(Ljava/lang/String;IJLjava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->setFocusedStack(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setFocusedTask(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setFrontActivityScreenCompatMode(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setHasTopUi(Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setImmersive(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setLockScreenShown(ZZI)V
+Landroid/app/IActivityManager$Stub$Proxy;->setPackageAskScreenCompat(Ljava/lang/String;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setPackageScreenCompatMode(Ljava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setPersistentVrThread(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setPictureInPictureParams(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)V
+Landroid/app/IActivityManager$Stub$Proxy;->setProcessImportant(Landroid/os/IBinder;IZLjava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->setProcessLimit(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setProcessMemoryTrimLevel(Ljava/lang/String;II)Z
+Landroid/app/IActivityManager$Stub$Proxy;->setRenderThread(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setRequestedOrientation(Landroid/os/IBinder;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setServiceForeground(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->setShowWhenLocked(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setSplitScreenResizing(Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V
+Landroid/app/IActivityManager$Stub$Proxy;->setTaskResizeable(II)V
+Landroid/app/IActivityManager$Stub$Proxy;->setTaskWindowingMode(IIZ)V
+Landroid/app/IActivityManager$Stub$Proxy;->setTaskWindowingModeSplitScreenPrimary(IIZZLandroid/graphics/Rect;Z)Z
+Landroid/app/IActivityManager$Stub$Proxy;->setTurnScreenOn(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setUserIsMonkey(Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setVoiceKeepAwake(Landroid/service/voice/IVoiceInteractionSession;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->setVrMode(Landroid/os/IBinder;ZLandroid/content/ComponentName;)I
+Landroid/app/IActivityManager$Stub$Proxy;->setVrThread(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->shouldUpRecreateTask(Landroid/os/IBinder;Ljava/lang/String;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->showAssistFromActivity(Landroid/os/IBinder;Landroid/os/Bundle;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->showBootMessage(Ljava/lang/CharSequence;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->showLockTaskEscapeMessage(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->showWaitingForDebugger(Landroid/app/IApplicationThread;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->shutdown(I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->signalPersistentProcesses(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager$Stub$Proxy;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
+Landroid/app/IActivityManager$Stub$Proxy;->startActivityAndWait(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)Landroid/app/WaitResult;
+Landroid/app/IActivityManager$Stub$Proxy;->startActivityAsCaller(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;ZI)I
+Landroid/app/IActivityManager$Stub$Proxy;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager$Stub$Proxy;->startActivityFromRecents(ILandroid/os/Bundle;)I
+Landroid/app/IActivityManager$Stub$Proxy;->startActivityIntentSender(Landroid/app/IApplicationThread;Landroid/content/IIntentSender;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I
+Landroid/app/IActivityManager$Stub$Proxy;->startActivityWithConfig(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/content/res/Configuration;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager$Stub$Proxy;->startAssistantActivity(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager$Stub$Proxy;->startBinderTracking()Z
+Landroid/app/IActivityManager$Stub$Proxy;->startConfirmDeviceCredentialIntent(Landroid/content/Intent;Landroid/os/Bundle;)V
+Landroid/app/IActivityManager$Stub$Proxy;->startInPlaceAnimationOnFrontMostApplication(Landroid/os/Bundle;)V
+Landroid/app/IActivityManager$Stub$Proxy;->startInstrumentation(Landroid/content/ComponentName;Ljava/lang/String;ILandroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;ILjava/lang/String;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->startLocalVoiceInteraction(Landroid/os/IBinder;Landroid/os/Bundle;)V
+Landroid/app/IActivityManager$Stub$Proxy;->startLockTaskModeByToken(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->startNextMatchingActivity(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/Bundle;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->startRecentsActivity(Landroid/content/Intent;Landroid/app/IAssistDataReceiver;Landroid/view/IRecentsAnimationRunner;)V
+Landroid/app/IActivityManager$Stub$Proxy;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;I)Landroid/content/ComponentName;
+Landroid/app/IActivityManager$Stub$Proxy;->startSystemLockTaskMode(I)V
+Landroid/app/IActivityManager$Stub$Proxy;->startUserInBackground(I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->startUserInBackgroundWithListener(ILandroid/os/IProgressListener;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->startVoiceActivity(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager$Stub$Proxy;->stopAppSwitches()V
+Landroid/app/IActivityManager$Stub$Proxy;->stopBinderTrackingAndDump(Landroid/os/ParcelFileDescriptor;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->stopLocalVoiceInteraction(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->stopLockTaskModeByToken(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
+Landroid/app/IActivityManager$Stub$Proxy;->stopServiceToken(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->stopSystemLockTaskMode()V
+Landroid/app/IActivityManager$Stub$Proxy;->stopUser(IZLandroid/app/IStopUserCallback;)I
+Landroid/app/IActivityManager$Stub$Proxy;->supportsLocalVoiceInteraction()Z
+Landroid/app/IActivityManager$Stub$Proxy;->suppressResizeConfigChanges(Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->switchUser(I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->takePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->unbindBackupAgent(Landroid/content/pm/ApplicationInfo;)V
+Landroid/app/IActivityManager$Stub$Proxy;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V
+Landroid/app/IActivityManager$Stub$Proxy;->unbindService(Landroid/app/IServiceConnection;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->unbroadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;I)V
+Landroid/app/IActivityManager$Stub$Proxy;->unhandledBack()V
+Landroid/app/IActivityManager$Stub$Proxy;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
+Landroid/app/IActivityManager$Stub$Proxy;->unregisterProcessObserver(Landroid/app/IProcessObserver;)V
+Landroid/app/IActivityManager$Stub$Proxy;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
+Landroid/app/IActivityManager$Stub$Proxy;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
+Landroid/app/IActivityManager$Stub$Proxy;->unregisterUidObserver(Landroid/app/IUidObserver;)V
+Landroid/app/IActivityManager$Stub$Proxy;->unregisterUserSwitchObserver(Landroid/app/IUserSwitchObserver;)V
+Landroid/app/IActivityManager$Stub$Proxy;->unstableProviderDied(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager$Stub$Proxy;->updateConfiguration(Landroid/content/res/Configuration;)Z
+Landroid/app/IActivityManager$Stub$Proxy;->updateDeviceOwner(Ljava/lang/String;)V
+Landroid/app/IActivityManager$Stub$Proxy;->updateDisplayOverrideConfiguration(Landroid/content/res/Configuration;I)Z
+Landroid/app/IActivityManager$Stub$Proxy;->updateLockTaskFeatures(II)V
+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
+Landroid/app/IActivityManager$Stub;->onTransact$broadcastIntent$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$checkGrantUriPermission$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$checkUriPermission$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$crashApplication$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$dumpHeap$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$finishReceiver$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$getIntentSender$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$grantUriPermissionFromOwner$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$handleIncomingUser$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$launchAssistIntent$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$profileControl$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$registerReceiver$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$reportAssistContextExtras$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$requestAssistContextExtras$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$resizeDockedStack$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$resizeStack$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$sendIntentSender$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$setTaskWindowingModeSplitScreenPrimary$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startActivities$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startActivity$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startActivityAndWait$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startActivityAsCaller$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startActivityAsUser$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startActivityIntentSender$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startActivityWithConfig$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startAssistantActivity$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startInstrumentation$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startService$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->onTransact$startVoiceActivity$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+Landroid/app/IActivityManager$Stub;->TRANSACTION_activityDestroyed:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_activityIdle:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_activityPaused:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_activityRelaunched:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_activityResumed:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_activitySlept:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_activityStopped:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_addAppTask:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_addInstrumentationResults:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_addPackageDependency:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_alwaysShowUnsupportedCompileSdkWarning:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_appNotRespondingViaProvider:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_attachApplication:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_backgroundWhitelistUid:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_backupAgentCreated:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_bindBackupAgent:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_bindService:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_bootAnimationComplete:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_broadcastIntent:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_cancelIntentSender:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_cancelRecentsAnimation:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_cancelTaskWindowTransition:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_checkGrantUriPermission:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_checkPermission:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_checkPermissionWithToken:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_checkUriPermission:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_clearApplicationUserData:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_clearGrantedUriPermissions:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_clearPendingBackup:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_closeSystemDialogs:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_convertFromTranslucent:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_convertToTranslucent:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_crashApplication:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_createStackOnDisplay:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_dismissKeyguard:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_dismissPip:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_dismissSplitScreenMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_dumpHeap:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_dumpHeapFinished:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_enterPictureInPictureMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_enterSafeMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_exitFreeformMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_finishActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_finishActivityAffinity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_finishHeavyWeightApp:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_finishInstrumentation:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_finishReceiver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_finishSubActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_finishVoiceTask:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_forceStopPackage:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getActivityClassForToken:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getActivityDisplayId:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getActivityOptions:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getAllStackInfos:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getAppTasks:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getAppTaskThumbnailSize:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getAssistContextExtras:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getCallingActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getCallingPackage:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getConfiguration:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getContentProvider:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getContentProviderExternal:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getCurrentUser:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getDeviceConfigurationInfo:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getFilteredTasks:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getFocusedStackInfo:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getFrontActivityScreenCompatMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getGrantedUriPermissions:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getIntentForIntentSender:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getIntentSender:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getLastResumedActivityUserId:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getLaunchedFromPackage:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getLaunchedFromUid:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getLockTaskModeState:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getMaxNumPictureInPictureActions:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getMemoryInfo:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getMemoryTrimLevel:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getMyMemoryState:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getPackageAskScreenCompat:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getPackageForIntentSender:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getPackageForToken:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getPackageProcessState:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getPackageScreenCompatMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getPersistedUriPermissions:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getProcessesInErrorState:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getProcessLimit:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getProcessMemoryInfo:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getProcessPss:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getProviderMimeType:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getRecentTasks:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getRequestedOrientation:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getRunningAppProcesses:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getRunningExternalApplications:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getRunningServiceControlPanel:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getRunningUserIds:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getServices:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getStackInfo:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getTagForIntentSender:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getTaskBounds:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getTaskDescription:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getTaskDescriptionIcon:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getTaskForActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getTasks:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getTaskSnapshot:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getUidForIntentSender:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getUidProcessState:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_getUriPermissionOwnerForActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_grantUriPermission:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_grantUriPermissionFromOwner:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_handleApplicationCrash:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_handleApplicationStrictModeViolation:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_handleApplicationWtf:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_handleIncomingUser:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_hang:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_inputDispatchingTimedOut:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isAppForeground:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isAppStartModeDisabled:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isAssistDataAllowedOnCurrentActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isBackgroundRestricted:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isImmersive:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isInLockTaskMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isInMultiWindowMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isInPictureInPictureMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isIntentSenderAForegroundService:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isIntentSenderAnActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isIntentSenderTargetedToPackage:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isRootVoiceInteraction:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isTopActivityImmersive:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isTopOfTask:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isUidActive:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isUserAMonkey:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isUserRunning:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_isVrModePackageEnabled:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_keyguardGoingAway:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_killAllBackgroundProcesses:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_killApplication:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_killApplicationProcess:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_killBackgroundProcesses:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_killPackageDependents:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_killPids:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_killProcessesBelowForeground:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_killUid:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_launchAssistIntent:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_makePackageIdle:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_moveActivityTaskToBack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_moveStackToDisplay:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_moveTaskBackwards:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_moveTasksToFullscreenStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_moveTaskToFront:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_moveTaskToStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_moveTopActivityToPinnedStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_navigateUpTo:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_newUriPermissionOwner:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_noteAlarmFinish:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_noteAlarmStart:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_noteWakeupAlarm:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_notifyActivityDrawn:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_notifyCleartextNetwork:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_notifyEnterAnimationComplete:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_notifyLaunchTaskBehindComplete:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_notifyLockedProfile:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_notifyPinnedStackAnimationEnded:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_notifyPinnedStackAnimationStarted:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_openContentUri:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_overridePendingTransition:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_peekService:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_performIdleMaintenance:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_positionTaskInStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_profileControl:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_publishContentProviders:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_publishService:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_refContentProvider:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_registerIntentSenderCancelListener:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_registerProcessObserver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_registerReceiver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_registerRemoteAnimationForNextActivityStart:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_registerRemoteAnimations:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_registerTaskStackListener:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_registerUidObserver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_registerUserSwitchObserver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_releaseActivityInstance:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_releasePersistableUriPermission:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_releaseSomeActivities:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_removeContentProvider:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_removeContentProviderExternal:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_removeStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_removeStacksInWindowingModes:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_removeStacksWithActivityTypes:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_removeTask:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_reportActivityFullyDrawn:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_reportAssistContextExtras:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_reportSizeConfigurations:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_requestAssistContextExtras:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_requestAutofillData:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_requestBugReport:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_requestTelephonyBugReport:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_requestWifiBugReport:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_resizeDockedStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_resizePinnedStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_resizeStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_resizeTask:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_restart:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_restartUserInBackground:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_resumeAppSwitches:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_revokeUriPermission:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_revokeUriPermissionFromOwner:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_scheduleApplicationInfoChanged:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_sendIdleJobTrigger:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_sendIntentSender:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_serviceDoneExecuting:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setActivityController:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setAgentApp:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setAlwaysFinish:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setDebugApp:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setDisablePreviewScreenshots:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setDumpHeapDebugLimit:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setFocusedStack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setFocusedTask:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setFrontActivityScreenCompatMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setHasTopUi:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setImmersive:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setLockScreenShown:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setPackageAskScreenCompat:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setPackageScreenCompatMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setPersistentVrThread:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setPictureInPictureParams:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setProcessImportant:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setProcessLimit:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setProcessMemoryTrimLevel:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setRenderThread:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setRequestedOrientation:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setServiceForeground:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setShowWhenLocked:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setSplitScreenResizing:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setTaskDescription:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setTaskResizeable:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setTaskWindowingMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setTaskWindowingModeSplitScreenPrimary:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setTurnScreenOn:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setUserIsMonkey:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setVoiceKeepAwake:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setVrMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_setVrThread:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_shouldUpRecreateTask:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_showAssistFromActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_showBootMessage:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_showLockTaskEscapeMessage:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_showWaitingForDebugger:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_shutdown:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_signalPersistentProcesses:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startActivities:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startActivityAndWait:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startActivityAsCaller:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startActivityAsUser:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startActivityFromRecents:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startActivityIntentSender:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startActivityWithConfig:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startAssistantActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startBinderTracking:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startConfirmDeviceCredentialIntent:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startInPlaceAnimationOnFrontMostApplication:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startInstrumentation:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startLocalVoiceInteraction:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startLockTaskModeByToken:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startNextMatchingActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startRecentsActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startService:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startSystemLockTaskMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startUserInBackground:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startUserInBackgroundWithListener:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_startVoiceActivity:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_stopAppSwitches:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_stopBinderTrackingAndDump:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_stopLocalVoiceInteraction:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_stopLockTaskModeByToken:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_stopService:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_stopServiceToken:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_stopSystemLockTaskMode:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_stopUser:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_supportsLocalVoiceInteraction:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_suppressResizeConfigChanges:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_switchUser:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_takePersistableUriPermission:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unbindBackupAgent:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unbindFinished:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unbindService:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unbroadcastIntent:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unhandledBack:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unlockUser:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unregisterIntentSenderCancelListener:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unregisterProcessObserver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unregisterReceiver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unregisterTaskStackListener:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unregisterUidObserver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unregisterUserSwitchObserver:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_unstableProviderDied:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_updateConfiguration:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_updateDeviceOwner:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_updateDisplayOverrideConfiguration:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_updateLockTaskFeatures:I
+Landroid/app/IActivityManager$Stub;->TRANSACTION_updateLockTaskPackages:I
+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
+Landroid/app/IActivityManager;->activityRelaunched(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->activityResumed(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->activitySlept(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
+Landroid/app/IActivityManager;->addAppTask(Landroid/os/IBinder;Landroid/content/Intent;Landroid/app/ActivityManager$TaskDescription;Landroid/graphics/Bitmap;)I
+Landroid/app/IActivityManager;->addInstrumentationResults(Landroid/app/IApplicationThread;Landroid/os/Bundle;)V
+Landroid/app/IActivityManager;->addPackageDependency(Ljava/lang/String;)V
+Landroid/app/IActivityManager;->alwaysShowUnsupportedCompileSdkWarning(Landroid/content/ComponentName;)V
+Landroid/app/IActivityManager;->appNotRespondingViaProvider(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->attachApplication(Landroid/app/IApplicationThread;J)V
+Landroid/app/IActivityManager;->backgroundWhitelistUid(I)V
+Landroid/app/IActivityManager;->backupAgentCreated(Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->bindBackupAgent(Ljava/lang/String;II)Z
+Landroid/app/IActivityManager;->bootAnimationComplete()V
+Landroid/app/IActivityManager;->cancelIntentSender(Landroid/content/IIntentSender;)V
+Landroid/app/IActivityManager;->checkGrantUriPermission(ILjava/lang/String;Landroid/net/Uri;II)I
+Landroid/app/IActivityManager;->checkPermissionWithToken(Ljava/lang/String;IILandroid/os/IBinder;)I
+Landroid/app/IActivityManager;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
+Landroid/app/IActivityManager;->clearApplicationUserData(Ljava/lang/String;ZLandroid/content/pm/IPackageDataObserver;I)Z
+Landroid/app/IActivityManager;->clearGrantedUriPermissions(Ljava/lang/String;I)V
+Landroid/app/IActivityManager;->clearPendingBackup()V
+Landroid/app/IActivityManager;->convertFromTranslucent(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager;->convertToTranslucent(Landroid/os/IBinder;Landroid/os/Bundle;)Z
+Landroid/app/IActivityManager;->crashApplication(IILjava/lang/String;ILjava/lang/String;)V
+Landroid/app/IActivityManager;->createStackOnDisplay(I)I
+Landroid/app/IActivityManager;->dismissKeyguard(Landroid/os/IBinder;Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
+Landroid/app/IActivityManager;->dismissPip(ZI)V
+Landroid/app/IActivityManager;->dismissSplitScreenMode(Z)V
+Landroid/app/IActivityManager;->dumpHeap(Ljava/lang/String;IZZZLjava/lang/String;Landroid/os/ParcelFileDescriptor;)Z
+Landroid/app/IActivityManager;->dumpHeapFinished(Ljava/lang/String;)V
+Landroid/app/IActivityManager;->enterPictureInPictureMode(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)Z
+Landroid/app/IActivityManager;->exitFreeformMode(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->finishActivityAffinity(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager;->finishInstrumentation(Landroid/app/IApplicationThread;ILandroid/os/Bundle;)V
+Landroid/app/IActivityManager;->finishSubActivity(Landroid/os/IBinder;Ljava/lang/String;I)V
+Landroid/app/IActivityManager;->finishVoiceTask(Landroid/service/voice/IVoiceInteractionSession;)V
+Landroid/app/IActivityManager;->getActivityClassForToken(Landroid/os/IBinder;)Landroid/content/ComponentName;
+Landroid/app/IActivityManager;->getActivityDisplayId(Landroid/os/IBinder;)I
+Landroid/app/IActivityManager;->getActivityOptions(Landroid/os/IBinder;)Landroid/os/Bundle;
+Landroid/app/IActivityManager;->getAppTasks(Ljava/lang/String;)Ljava/util/List;
+Landroid/app/IActivityManager;->getAppTaskThumbnailSize()Landroid/graphics/Point;
+Landroid/app/IActivityManager;->getAssistContextExtras(I)Landroid/os/Bundle;
+Landroid/app/IActivityManager;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName;
+Landroid/app/IActivityManager;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String;
+Landroid/app/IActivityManager;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;
+Landroid/app/IActivityManager;->getContentProviderExternal(Ljava/lang/String;ILandroid/os/IBinder;)Landroid/app/ContentProviderHolder;
+Landroid/app/IActivityManager;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
+Landroid/app/IActivityManager;->getFocusedStackInfo()Landroid/app/ActivityManager$StackInfo;
+Landroid/app/IActivityManager;->getFrontActivityScreenCompatMode()I
+Landroid/app/IActivityManager;->getGrantedUriPermissions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/IActivityManager;->getLastResumedActivityUserId()I
+Landroid/app/IActivityManager;->getMaxNumPictureInPictureActions(Landroid/os/IBinder;)I
+Landroid/app/IActivityManager;->getMemoryTrimLevel()I
+Landroid/app/IActivityManager;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V
+Landroid/app/IActivityManager;->getPackageAskScreenCompat(Ljava/lang/String;)Z
+Landroid/app/IActivityManager;->getPackageForIntentSender(Landroid/content/IIntentSender;)Ljava/lang/String;
+Landroid/app/IActivityManager;->getPackageForToken(Landroid/os/IBinder;)Ljava/lang/String;
+Landroid/app/IActivityManager;->getPackageScreenCompatMode(Ljava/lang/String;)I
+Landroid/app/IActivityManager;->getPersistedUriPermissions(Ljava/lang/String;Z)Landroid/content/pm/ParceledListSlice;
+Landroid/app/IActivityManager;->getProcessesInErrorState()Ljava/util/List;
+Landroid/app/IActivityManager;->getRequestedOrientation(Landroid/os/IBinder;)I
+Landroid/app/IActivityManager;->getRunningExternalApplications()Ljava/util/List;
+Landroid/app/IActivityManager;->getRunningServiceControlPanel(Landroid/content/ComponentName;)Landroid/app/PendingIntent;
+Landroid/app/IActivityManager;->getRunningUserIds()[I
+Landroid/app/IActivityManager;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
+Landroid/app/IActivityManager;->getTagForIntentSender(Landroid/content/IIntentSender;Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/IActivityManager;->getTaskDescription(I)Landroid/app/ActivityManager$TaskDescription;
+Landroid/app/IActivityManager;->getTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
+Landroid/app/IActivityManager;->getTasks(I)Ljava/util/List;
+Landroid/app/IActivityManager;->getUidForIntentSender(Landroid/content/IIntentSender;)I
+Landroid/app/IActivityManager;->getUidProcessState(ILjava/lang/String;)I
+Landroid/app/IActivityManager;->getUriPermissionOwnerForActivity(Landroid/os/IBinder;)Landroid/os/IBinder;
+Landroid/app/IActivityManager;->grantUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
+Landroid/app/IActivityManager;->grantUriPermissionFromOwner(Landroid/os/IBinder;ILjava/lang/String;Landroid/net/Uri;III)V
+Landroid/app/IActivityManager;->handleApplicationCrash(Landroid/os/IBinder;Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;)V
+Landroid/app/IActivityManager;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;)Z
+Landroid/app/IActivityManager;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
+Landroid/app/IActivityManager;->inputDispatchingTimedOut(IZLjava/lang/String;)J
+Landroid/app/IActivityManager;->isAppForeground(I)Z
+Landroid/app/IActivityManager;->isAppStartModeDisabled(ILjava/lang/String;)Z
+Landroid/app/IActivityManager;->isAssistDataAllowedOnCurrentActivity()Z
+Landroid/app/IActivityManager;->isBackgroundRestricted(Ljava/lang/String;)Z
+Landroid/app/IActivityManager;->isImmersive(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager;->isInMultiWindowMode(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager;->isInPictureInPictureMode(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager;->isIntentSenderAForegroundService(Landroid/content/IIntentSender;)Z
+Landroid/app/IActivityManager;->isIntentSenderTargetedToPackage(Landroid/content/IIntentSender;)Z
+Landroid/app/IActivityManager;->isRootVoiceInteraction(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager;->isTopActivityImmersive()Z
+Landroid/app/IActivityManager;->isUidActive(ILjava/lang/String;)Z
+Landroid/app/IActivityManager;->isUserAMonkey()Z
+Landroid/app/IActivityManager;->isVrModePackageEnabled(Landroid/content/ComponentName;)Z
+Landroid/app/IActivityManager;->keyguardGoingAway(I)V
+Landroid/app/IActivityManager;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
+Landroid/app/IActivityManager;->killPackageDependents(Ljava/lang/String;I)V
+Landroid/app/IActivityManager;->killPids([ILjava/lang/String;Z)Z
+Landroid/app/IActivityManager;->killProcessesBelowForeground(Ljava/lang/String;)Z
+Landroid/app/IActivityManager;->killUid(IILjava/lang/String;)V
+Landroid/app/IActivityManager;->launchAssistIntent(Landroid/content/Intent;ILjava/lang/String;ILandroid/os/Bundle;)Z
+Landroid/app/IActivityManager;->makePackageIdle(Ljava/lang/String;I)V
+Landroid/app/IActivityManager;->moveStackToDisplay(II)V
+Landroid/app/IActivityManager;->moveTaskBackwards(I)V
+Landroid/app/IActivityManager;->moveTasksToFullscreenStack(IZ)V
+Landroid/app/IActivityManager;->navigateUpTo(Landroid/os/IBinder;Landroid/content/Intent;ILandroid/content/Intent;)Z
+Landroid/app/IActivityManager;->newUriPermissionOwner(Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/app/IActivityManager;->noteAlarmFinish(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V
+Landroid/app/IActivityManager;->noteAlarmStart(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V
+Landroid/app/IActivityManager;->noteWakeupAlarm(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
+Landroid/app/IActivityManager;->notifyActivityDrawn(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->notifyCleartextNetwork(I[B)V
+Landroid/app/IActivityManager;->notifyEnterAnimationComplete(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->notifyLaunchTaskBehindComplete(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->notifyLockedProfile(I)V
+Landroid/app/IActivityManager;->notifyPinnedStackAnimationEnded()V
+Landroid/app/IActivityManager;->notifyPinnedStackAnimationStarted()V
+Landroid/app/IActivityManager;->openContentUri(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
+Landroid/app/IActivityManager;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;II)V
+Landroid/app/IActivityManager;->peekService(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/app/IActivityManager;->performIdleMaintenance()V
+Landroid/app/IActivityManager;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->refContentProvider(Landroid/os/IBinder;II)Z
+Landroid/app/IActivityManager;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
+Landroid/app/IActivityManager;->registerRemoteAnimationForNextActivityStart(Ljava/lang/String;Landroid/view/RemoteAnimationAdapter;)V
+Landroid/app/IActivityManager;->registerRemoteAnimations(Landroid/os/IBinder;Landroid/view/RemoteAnimationDefinition;)V
+Landroid/app/IActivityManager;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
+Landroid/app/IActivityManager;->releaseActivityInstance(Landroid/os/IBinder;)Z
+Landroid/app/IActivityManager;->releasePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
+Landroid/app/IActivityManager;->releaseSomeActivities(Landroid/app/IApplicationThread;)V
+Landroid/app/IActivityManager;->removeContentProvider(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager;->removeStacksInWindowingModes([I)V
+Landroid/app/IActivityManager;->removeStacksWithActivityTypes([I)V
+Landroid/app/IActivityManager;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V
+Landroid/app/IActivityManager;->reportSizeConfigurations(Landroid/os/IBinder;[I[I[I)V
+Landroid/app/IActivityManager;->requestAssistContextExtras(ILandroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;ZZ)Z
+Landroid/app/IActivityManager;->requestAutofillData(Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;I)Z
+Landroid/app/IActivityManager;->requestTelephonyBugReport(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/IActivityManager;->requestWifiBugReport(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/IActivityManager;->resizePinnedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/app/IActivityManager;->restartUserInBackground(I)I
+Landroid/app/IActivityManager;->revokeUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
+Landroid/app/IActivityManager;->revokeUriPermissionFromOwner(Landroid/os/IBinder;Landroid/net/Uri;II)V
+Landroid/app/IActivityManager;->scheduleApplicationInfoChanged(Ljava/util/List;I)V
+Landroid/app/IActivityManager;->sendIntentSender(Landroid/content/IIntentSender;Landroid/os/IBinder;ILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
+Landroid/app/IActivityManager;->setAgentApp(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/IActivityManager;->setDisablePreviewScreenshots(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager;->setFocusedStack(I)V
+Landroid/app/IActivityManager;->setFocusedTask(I)V
+Landroid/app/IActivityManager;->setFrontActivityScreenCompatMode(I)V
+Landroid/app/IActivityManager;->setHasTopUi(Z)V
+Landroid/app/IActivityManager;->setImmersive(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager;->setLockScreenShown(ZZI)V
+Landroid/app/IActivityManager;->setPackageAskScreenCompat(Ljava/lang/String;Z)V
+Landroid/app/IActivityManager;->setPersistentVrThread(I)V
+Landroid/app/IActivityManager;->setPictureInPictureParams(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)V
+Landroid/app/IActivityManager;->setRenderThread(I)V
+Landroid/app/IActivityManager;->setServiceForeground(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;I)V
+Landroid/app/IActivityManager;->setShowWhenLocked(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager;->setSplitScreenResizing(Z)V
+Landroid/app/IActivityManager;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V
+Landroid/app/IActivityManager;->setTaskWindowingMode(IIZ)V
+Landroid/app/IActivityManager;->setTaskWindowingModeSplitScreenPrimary(IIZZLandroid/graphics/Rect;Z)Z
+Landroid/app/IActivityManager;->setTurnScreenOn(Landroid/os/IBinder;Z)V
+Landroid/app/IActivityManager;->setUserIsMonkey(Z)V
+Landroid/app/IActivityManager;->setVoiceKeepAwake(Landroid/service/voice/IVoiceInteractionSession;Z)V
+Landroid/app/IActivityManager;->setVrMode(Landroid/os/IBinder;ZLandroid/content/ComponentName;)I
+Landroid/app/IActivityManager;->setVrThread(I)V
+Landroid/app/IActivityManager;->shouldUpRecreateTask(Landroid/os/IBinder;Ljava/lang/String;)Z
+Landroid/app/IActivityManager;->showAssistFromActivity(Landroid/os/IBinder;Landroid/os/Bundle;)Z
+Landroid/app/IActivityManager;->showBootMessage(Ljava/lang/CharSequence;Z)V
+Landroid/app/IActivityManager;->showLockTaskEscapeMessage(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->showWaitingForDebugger(Landroid/app/IApplicationThread;Z)V
+Landroid/app/IActivityManager;->signalPersistentProcesses(I)V
+Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager;->startActivityAndWait(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)Landroid/app/WaitResult;
+Landroid/app/IActivityManager;->startActivityAsCaller(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;ZI)I
+Landroid/app/IActivityManager;->startActivityIntentSender(Landroid/app/IApplicationThread;Landroid/content/IIntentSender;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I
+Landroid/app/IActivityManager;->startActivityWithConfig(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/content/res/Configuration;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager;->startAssistantActivity(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager;->startConfirmDeviceCredentialIntent(Landroid/content/Intent;Landroid/os/Bundle;)V
+Landroid/app/IActivityManager;->startInPlaceAnimationOnFrontMostApplication(Landroid/os/Bundle;)V
+Landroid/app/IActivityManager;->startLocalVoiceInteraction(Landroid/os/IBinder;Landroid/os/Bundle;)V
+Landroid/app/IActivityManager;->startLockTaskModeByToken(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->startNextMatchingActivity(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/Bundle;)Z
+Landroid/app/IActivityManager;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;I)Landroid/content/ComponentName;
+Landroid/app/IActivityManager;->startUserInBackgroundWithListener(ILandroid/os/IProgressListener;)Z
+Landroid/app/IActivityManager;->startVoiceActivity(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
+Landroid/app/IActivityManager;->stopLocalVoiceInteraction(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->stopLockTaskModeByToken(Landroid/os/IBinder;)V
+Landroid/app/IActivityManager;->stopServiceToken(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
+Landroid/app/IActivityManager;->stopSystemLockTaskMode()V
+Landroid/app/IActivityManager;->supportsLocalVoiceInteraction()Z
+Landroid/app/IActivityManager;->takePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
+Landroid/app/IActivityManager;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V
+Landroid/app/IActivityManager;->unbroadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;I)V
+Landroid/app/IActivityManager;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
+Landroid/app/IActivityManager;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
+Landroid/app/IActivityManager;->unregisterUidObserver(Landroid/app/IUidObserver;)V
+Landroid/app/IActivityManager;->unregisterUserSwitchObserver(Landroid/app/IUserSwitchObserver;)V
+Landroid/app/IActivityManager;->updateDeviceOwner(Ljava/lang/String;)V
+Landroid/app/IActivityManager;->updateDisplayOverrideConfiguration(Landroid/content/res/Configuration;I)Z
+Landroid/app/IActivityManager;->updateLockTaskFeatures(II)V
+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;
+Landroid/app/IAlarmManager$Stub$Proxy;->getNextWakeFromIdleTime()J
+Landroid/app/IAlarmManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/IAlarmManager$Stub$Proxy;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
+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
+Landroid/app/IApplicationThread$Stub$Proxy;->clearDnsCache()V
+Landroid/app/IApplicationThread$Stub$Proxy;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->dumpActivity(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->dumpHeap(ZZZLjava/lang/String;Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->dumpMemInfo(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZZ[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->dumpMemInfoProto(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZ[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->dumpProvider(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/IApplicationThread$Stub$Proxy;->handleTrustStorageUpdate()V
+Landroid/app/IApplicationThread$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/IApplicationThread$Stub$Proxy;->notifyCleartextNetwork([B)V
+Landroid/app/IApplicationThread$Stub$Proxy;->processInBackground()V
+Landroid/app/IApplicationThread$Stub$Proxy;->profilerControl(ZLandroid/app/ProfilerInfo;I)V
+Landroid/app/IApplicationThread$Stub$Proxy;->requestAssistContextExtras(Landroid/os/IBinder;Landroid/os/IBinder;III)V
+Landroid/app/IApplicationThread$Stub$Proxy;->runIsolatedEntryPoint(Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleCrash(Ljava/lang/String;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleDestroyBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleExit()V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleLocalVoiceInteractionStarted(Landroid/os/IBinder;Lcom/android/internal/app/IVoiceInteractor;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleLowMemory()V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleOnNewActivityOptions(Landroid/os/IBinder;Landroid/os/Bundle;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZII)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZII)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleSleeping(Landroid/os/IBinder;Z)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleStopService(Landroid/os/IBinder;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleSuicide()V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleTranslucentConversionComplete(Landroid/os/IBinder;Z)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleTrimMemory(I)V
+Landroid/app/IApplicationThread$Stub$Proxy;->scheduleUnbindService(Landroid/os/IBinder;Landroid/content/Intent;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->setCoreSettings(Landroid/os/Bundle;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->setHttpProxy(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->setNetworkBlockSeq(J)V
+Landroid/app/IApplicationThread$Stub$Proxy;->setProcessState(I)V
+Landroid/app/IApplicationThread$Stub$Proxy;->setSchedulingGroup(I)V
+Landroid/app/IApplicationThread$Stub$Proxy;->startBinderTracking()V
+Landroid/app/IApplicationThread$Stub$Proxy;->stopBinderTrackingAndDump(Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/IApplicationThread$Stub$Proxy;->unstableProviderDied(Landroid/os/IBinder;)V
+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;
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_attachAgent:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_bindApplication:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_clearDnsCache:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dispatchPackageBroadcast:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dumpActivity:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dumpDbInfo:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dumpGfxInfo:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dumpHeap:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dumpMemInfo:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dumpMemInfoProto:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dumpProvider:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_dumpService:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_handleTrustStorageUpdate:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_notifyCleartextNetwork:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_processInBackground:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_profilerControl:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_requestAssistContextExtras:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_runIsolatedEntryPoint:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleApplicationInfoChanged:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleBindService:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleCrash:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleCreateBackupAgent:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleCreateService:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleDestroyBackupAgent:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleEnterAnimationComplete:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleExit:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleInstallProvider:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleLocalVoiceInteractionStarted:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleLowMemory:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleOnNewActivityOptions:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleReceiver:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleRegisteredReceiver:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleServiceArgs:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleSleeping:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleStopService:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleSuicide:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleTransaction:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleTranslucentConversionComplete:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleTrimMemory:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_scheduleUnbindService:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_setCoreSettings:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_setHttpProxy:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_setNetworkBlockSeq:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_setProcessState:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_setSchedulingGroup:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_startBinderTracking:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_stopBinderTrackingAndDump:I
+Landroid/app/IApplicationThread$Stub;->TRANSACTION_unstableProviderDied:I
+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
+Landroid/app/IApplicationThread;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->dumpActivity(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->dumpHeap(ZZZLjava/lang/String;Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/IApplicationThread;->dumpMemInfo(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZZ[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->dumpMemInfoProto(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZ[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->dumpProvider(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->handleTrustStorageUpdate()V
+Landroid/app/IApplicationThread;->notifyCleartextNetwork([B)V
+Landroid/app/IApplicationThread;->profilerControl(ZLandroid/app/ProfilerInfo;I)V
+Landroid/app/IApplicationThread;->requestAssistContextExtras(Landroid/os/IBinder;Landroid/os/IBinder;III)V
+Landroid/app/IApplicationThread;->runIsolatedEntryPoint(Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->scheduleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V
+Landroid/app/IApplicationThread;->scheduleCrash(Ljava/lang/String;)V
+Landroid/app/IApplicationThread;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)V
+Landroid/app/IApplicationThread;->scheduleDestroyBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;)V
+Landroid/app/IApplicationThread;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
+Landroid/app/IApplicationThread;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+Landroid/app/IApplicationThread;->scheduleLocalVoiceInteractionStarted(Landroid/os/IBinder;Lcom/android/internal/app/IVoiceInteractor;)V
+Landroid/app/IApplicationThread;->scheduleOnNewActivityOptions(Landroid/os/IBinder;Landroid/os/Bundle;)V
+Landroid/app/IApplicationThread;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZII)V
+Landroid/app/IApplicationThread;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZII)V
+Landroid/app/IApplicationThread;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)V
+Landroid/app/IApplicationThread;->scheduleSleeping(Landroid/os/IBinder;Z)V
+Landroid/app/IApplicationThread;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
+Landroid/app/IApplicationThread;->scheduleTranslucentConversionComplete(Landroid/os/IBinder;Z)V
+Landroid/app/IApplicationThread;->setCoreSettings(Landroid/os/Bundle;)V
+Landroid/app/IApplicationThread;->setHttpProxy(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/app/IApplicationThread;->setNetworkBlockSeq(J)V
+Landroid/app/IApplicationThread;->setProcessState(I)V
+Landroid/app/IApplicationThread;->setSchedulingGroup(I)V
+Landroid/app/IApplicationThread;->startBinderTracking()V
+Landroid/app/IApplicationThread;->stopBinderTrackingAndDump(Landroid/os/ParcelFileDescriptor;)V
+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;
+Landroid/app/IAppTask$Stub$Proxy;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
+Landroid/app/IAppTask$Stub$Proxy;->moveToFront()V
+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;
+Landroid/app/IAppTask$Stub;->TRANSACTION_finishAndRemoveTask:I
+Landroid/app/IAppTask$Stub;->TRANSACTION_getTaskInfo:I
+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
+Landroid/app/IBackupAgent$Stub$Proxy;->doMeasureFullBackup(JILandroid/app/backup/IBackupManager;I)V
+Landroid/app/IBackupAgent$Stub$Proxy;->doQuotaExceeded(JJ)V
+Landroid/app/IBackupAgent$Stub$Proxy;->doRestore(Landroid/os/ParcelFileDescriptor;JLandroid/os/ParcelFileDescriptor;ILandroid/app/backup/IBackupManager;)V
+Landroid/app/IBackupAgent$Stub$Proxy;->doRestoreFile(Landroid/os/ParcelFileDescriptor;JILjava/lang/String;Ljava/lang/String;JJILandroid/app/backup/IBackupManager;)V
+Landroid/app/IBackupAgent$Stub$Proxy;->doRestoreFinished(ILandroid/app/backup/IBackupManager;)V
+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
+Landroid/app/IBackupAgent$Stub;->TRANSACTION_doFullBackup:I
+Landroid/app/IBackupAgent$Stub;->TRANSACTION_doMeasureFullBackup:I
+Landroid/app/IBackupAgent$Stub;->TRANSACTION_doQuotaExceeded:I
+Landroid/app/IBackupAgent$Stub;->TRANSACTION_doRestore:I
+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
+Landroid/app/IBackupAgent;->doQuotaExceeded(JJ)V
+Landroid/app/IBackupAgent;->doRestore(Landroid/os/ParcelFileDescriptor;JLandroid/os/ParcelFileDescriptor;ILandroid/app/backup/IBackupManager;)V
+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
+Landroid/app/INotificationManager$Stub$Proxy;->applyEnqueuedAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
+Landroid/app/INotificationManager$Stub$Proxy;->applyRestore([BI)V
+Landroid/app/INotificationManager$Stub$Proxy;->areChannelsBypassingDnd()Z
+Landroid/app/INotificationManager$Stub$Proxy;->areNotificationsEnabled(Ljava/lang/String;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->cancelAllNotifications(Ljava/lang/String;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->cancelNotificationFromListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->cancelNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
+Landroid/app/INotificationManager$Stub$Proxy;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;II)V
+Landroid/app/INotificationManager$Stub$Proxy;->cancelToast(Ljava/lang/String;Landroid/app/ITransientNotification;)V
+Landroid/app/INotificationManager$Stub$Proxy;->canShowBadge(Ljava/lang/String;I)Z
+Landroid/app/INotificationManager$Stub$Proxy;->clearData(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager$Stub$Proxy;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
+Landroid/app/INotificationManager$Stub$Proxy;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
+Landroid/app/INotificationManager$Stub$Proxy;->createNotificationChannelsForPackage(Ljava/lang/String;ILandroid/content/pm/ParceledListSlice;)V
+Landroid/app/INotificationManager$Stub$Proxy;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/INotificationManager$Stub$Proxy;->deleteNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/INotificationManager$Stub$Proxy;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->enqueueToast(Ljava/lang/String;Landroid/app/ITransientNotification;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->finishToken(Ljava/lang/String;Landroid/app/ITransientNotification;)V
+Landroid/app/INotificationManager$Stub$Proxy;->getActiveNotifications(Ljava/lang/String;)[Landroid/service/notification/StatusBarNotification;
+Landroid/app/INotificationManager$Stub$Proxy;->getActiveNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getAppActiveNotifications(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getAutomaticZenRule(Ljava/lang/String;)Landroid/app/AutomaticZenRule;
+Landroid/app/INotificationManager$Stub$Proxy;->getBackupPayload(I)[B
+Landroid/app/INotificationManager$Stub$Proxy;->getBlockedAppCount(I)I
+Landroid/app/INotificationManager$Stub$Proxy;->getBlockedChannelCount(Ljava/lang/String;I)I
+Landroid/app/INotificationManager$Stub$Proxy;->getDeletedChannelCount(Ljava/lang/String;I)I
+Landroid/app/INotificationManager$Stub$Proxy;->getEffectsSuppressor()Landroid/content/ComponentName;
+Landroid/app/INotificationManager$Stub$Proxy;->getEnabledNotificationListenerPackages()Ljava/util/List;
+Landroid/app/INotificationManager$Stub$Proxy;->getEnabledNotificationListeners(I)Ljava/util/List;
+Landroid/app/INotificationManager$Stub$Proxy;->getHintsFromListener(Landroid/service/notification/INotificationListener;)I
+Landroid/app/INotificationManager$Stub$Proxy;->getHistoricalNotifications(Ljava/lang/String;I)[Landroid/service/notification/StatusBarNotification;
+Landroid/app/INotificationManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/INotificationManager$Stub$Proxy;->getInterruptionFilterFromListener(Landroid/service/notification/INotificationListener;)I
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannel(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelForPackage(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannel;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroupForPackage(Ljava/lang/String;Ljava/lang/String;I)Landroid/app/NotificationChannelGroup;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroupsForPackage(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroupsFromPrivilegedListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannels(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelsForPackage(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelsFromPrivilegedListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy;
+Landroid/app/INotificationManager$Stub$Proxy;->getNumNotificationChannelsForPackage(Ljava/lang/String;IZ)I
+Landroid/app/INotificationManager$Stub$Proxy;->getPackageImportance(Ljava/lang/String;)I
+Landroid/app/INotificationManager$Stub$Proxy;->getPopulatedNotificationChannelGroupForPackage(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannelGroup;
+Landroid/app/INotificationManager$Stub$Proxy;->getRecentNotifyingAppsForUser(I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getRuleInstanceCount(Landroid/content/ComponentName;)I
+Landroid/app/INotificationManager$Stub$Proxy;->getSnoozedNotificationsFromListener(Landroid/service/notification/INotificationListener;I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager$Stub$Proxy;->getZenMode()I
+Landroid/app/INotificationManager$Stub$Proxy;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
+Landroid/app/INotificationManager$Stub$Proxy;->getZenRules()Ljava/util/List;
+Landroid/app/INotificationManager$Stub$Proxy;->isNotificationAssistantAccessGranted(Landroid/content/ComponentName;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->isNotificationListenerAccessGranted(Landroid/content/ComponentName;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->isNotificationListenerAccessGrantedForUser(Landroid/content/ComponentName;I)Z
+Landroid/app/INotificationManager$Stub$Proxy;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->isNotificationPolicyAccessGrantedForPackage(Ljava/lang/String;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->isSystemConditionProviderEnabled(Ljava/lang/String;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->matchesCallFilter(Landroid/os/Bundle;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/INotificationManager$Stub$Proxy;->notifyConditions(Ljava/lang/String;Landroid/service/notification/IConditionProvider;[Landroid/service/notification/Condition;)V
+Landroid/app/INotificationManager$Stub$Proxy;->onlyHasDefaultChannel(Ljava/lang/String;I)Z
+Landroid/app/INotificationManager$Stub$Proxy;->registerListener(Landroid/service/notification/INotificationListener;Landroid/content/ComponentName;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->removeAutomaticZenRule(Ljava/lang/String;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->removeAutomaticZenRules(Ljava/lang/String;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->requestBindListener(Landroid/content/ComponentName;)V
+Landroid/app/INotificationManager$Stub$Proxy;->requestBindProvider(Landroid/content/ComponentName;)V
+Landroid/app/INotificationManager$Stub$Proxy;->requestHintsFromListener(Landroid/service/notification/INotificationListener;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->requestInterruptionFilterFromListener(Landroid/service/notification/INotificationListener;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->requestUnbindListener(Landroid/service/notification/INotificationListener;)V
+Landroid/app/INotificationManager$Stub$Proxy;->requestUnbindProvider(Landroid/service/notification/IConditionProvider;)V
+Landroid/app/INotificationManager$Stub$Proxy;->setInterruptionFilter(Ljava/lang/String;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationAssistantAccessGranted(Landroid/content/ComponentName;Z)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationAssistantAccessGrantedForUser(Landroid/content/ComponentName;IZ)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationListenerAccessGranted(Landroid/content/ComponentName;Z)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationListenerAccessGrantedForUser(Landroid/content/ComponentName;IZ)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationPolicy(Ljava/lang/String;Landroid/app/NotificationManager$Policy;)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationPolicyAccessGranted(Ljava/lang/String;Z)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationPolicyAccessGrantedForUser(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationsEnabledForPackage(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationsEnabledWithImportanceLockForPackage(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager$Stub$Proxy;->setNotificationsShownFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
+Landroid/app/INotificationManager$Stub$Proxy;->setOnNotificationPostedTrimFromListener(Landroid/service/notification/INotificationListener;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->setShowBadge(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager$Stub$Proxy;->setZenMode(ILandroid/net/Uri;Ljava/lang/String;)V
+Landroid/app/INotificationManager$Stub$Proxy;->snoozeNotificationUntilContextFromListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/INotificationManager$Stub$Proxy;->snoozeNotificationUntilFromListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;J)V
+Landroid/app/INotificationManager$Stub$Proxy;->unregisterListener(Landroid/service/notification/INotificationListener;I)V
+Landroid/app/INotificationManager$Stub$Proxy;->unsnoozeNotificationFromAssistant(Landroid/service/notification/INotificationListener;Ljava/lang/String;)V
+Landroid/app/INotificationManager$Stub$Proxy;->updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;)Z
+Landroid/app/INotificationManager$Stub$Proxy;->updateNotificationChannelForPackage(Ljava/lang/String;ILandroid/app/NotificationChannel;)V
+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
+Landroid/app/INotificationManager$Stub;->TRANSACTION_applyAdjustmentsFromAssistant:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_applyEnqueuedAdjustmentFromAssistant:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_applyRestore:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_areChannelsBypassingDnd:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_areNotificationsEnabled:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_areNotificationsEnabledForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_cancelAllNotifications:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_cancelNotificationFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_cancelNotificationsFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_cancelNotificationWithTag:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_cancelToast:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_canShowBadge:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_clearData:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_createNotificationChannelGroups:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_createNotificationChannels:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_createNotificationChannelsForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_deleteNotificationChannel:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_deleteNotificationChannelGroup:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_enqueueToast:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_finishToken:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getActiveNotifications:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getActiveNotificationsFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getAppActiveNotifications:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getAutomaticZenRule:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getBackupPayload:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getBlockedAppCount:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getBlockedChannelCount:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getDeletedChannelCount:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getEffectsSuppressor:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getEnabledNotificationListenerPackages:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getEnabledNotificationListeners:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getHintsFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getHistoricalNotifications:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getInterruptionFilterFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannel:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannelForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannelGroup:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannelGroupForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannelGroups:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannelGroupsForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannelGroupsFromPrivilegedListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannels:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannelsForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationChannelsFromPrivilegedListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNotificationPolicy:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getNumNotificationChannelsForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getPackageImportance:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getPopulatedNotificationChannelGroupForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getRecentNotifyingAppsForUser:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getRuleInstanceCount:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getSnoozedNotificationsFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getZenMode:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getZenModeConfig:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_getZenRules:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_isNotificationAssistantAccessGranted:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_isNotificationListenerAccessGranted:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_isNotificationListenerAccessGrantedForUser:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_isNotificationPolicyAccessGranted:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_isNotificationPolicyAccessGrantedForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_isSystemConditionProviderEnabled:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_matchesCallFilter:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_notifyConditions:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_onlyHasDefaultChannel:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_registerListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_removeAutomaticZenRule:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_removeAutomaticZenRules:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_requestBindListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_requestBindProvider:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_requestHintsFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_requestInterruptionFilterFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_requestUnbindListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_requestUnbindProvider:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setInterruptionFilter:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationAssistantAccessGranted:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationAssistantAccessGrantedForUser:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationListenerAccessGranted:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationListenerAccessGrantedForUser:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationPolicy:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationPolicyAccessGranted:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationPolicyAccessGrantedForUser:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationsEnabledForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationsEnabledWithImportanceLockForPackage:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setNotificationsShownFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setOnNotificationPostedTrimFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setShowBadge:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_setZenMode:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_snoozeNotificationUntilContextFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_snoozeNotificationUntilFromListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_unregisterListener:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_unsnoozeNotificationFromAssistant:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_updateAutomaticZenRule:I
+Landroid/app/INotificationManager$Stub;->TRANSACTION_updateNotificationChannelForPackage:I
+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
+Landroid/app/INotificationManager;->applyEnqueuedAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
+Landroid/app/INotificationManager;->applyRestore([BI)V
+Landroid/app/INotificationManager;->areChannelsBypassingDnd()Z
+Landroid/app/INotificationManager;->areNotificationsEnabled(Ljava/lang/String;)Z
+Landroid/app/INotificationManager;->cancelNotificationFromListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/app/INotificationManager;->cancelNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
+Landroid/app/INotificationManager;->canShowBadge(Ljava/lang/String;I)Z
+Landroid/app/INotificationManager;->clearData(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
+Landroid/app/INotificationManager;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
+Landroid/app/INotificationManager;->createNotificationChannelsForPackage(Ljava/lang/String;ILandroid/content/pm/ParceledListSlice;)V
+Landroid/app/INotificationManager;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/INotificationManager;->deleteNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/INotificationManager;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
+Landroid/app/INotificationManager;->finishToken(Ljava/lang/String;Landroid/app/ITransientNotification;)V
+Landroid/app/INotificationManager;->getActiveNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getAppActiveNotifications(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getAutomaticZenRule(Ljava/lang/String;)Landroid/app/AutomaticZenRule;
+Landroid/app/INotificationManager;->getBackupPayload(I)[B
+Landroid/app/INotificationManager;->getBlockedAppCount(I)I
+Landroid/app/INotificationManager;->getBlockedChannelCount(Ljava/lang/String;I)I
+Landroid/app/INotificationManager;->getDeletedChannelCount(Ljava/lang/String;I)I
+Landroid/app/INotificationManager;->getEffectsSuppressor()Landroid/content/ComponentName;
+Landroid/app/INotificationManager;->getEnabledNotificationListenerPackages()Ljava/util/List;
+Landroid/app/INotificationManager;->getEnabledNotificationListeners(I)Ljava/util/List;
+Landroid/app/INotificationManager;->getHintsFromListener(Landroid/service/notification/INotificationListener;)I
+Landroid/app/INotificationManager;->getInterruptionFilterFromListener(Landroid/service/notification/INotificationListener;)I
+Landroid/app/INotificationManager;->getNotificationChannel(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
+Landroid/app/INotificationManager;->getNotificationChannelForPackage(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannel;
+Landroid/app/INotificationManager;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+Landroid/app/INotificationManager;->getNotificationChannelGroupForPackage(Ljava/lang/String;Ljava/lang/String;I)Landroid/app/NotificationChannelGroup;
+Landroid/app/INotificationManager;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getNotificationChannelGroupsForPackage(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getNotificationChannelGroupsFromPrivilegedListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getNotificationChannels(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getNotificationChannelsForPackage(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getNotificationChannelsFromPrivilegedListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy;
+Landroid/app/INotificationManager;->getNumNotificationChannelsForPackage(Ljava/lang/String;IZ)I
+Landroid/app/INotificationManager;->getPackageImportance(Ljava/lang/String;)I
+Landroid/app/INotificationManager;->getPopulatedNotificationChannelGroupForPackage(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannelGroup;
+Landroid/app/INotificationManager;->getRecentNotifyingAppsForUser(I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getRuleInstanceCount(Landroid/content/ComponentName;)I
+Landroid/app/INotificationManager;->getSnoozedNotificationsFromListener(Landroid/service/notification/INotificationListener;I)Landroid/content/pm/ParceledListSlice;
+Landroid/app/INotificationManager;->getZenRules()Ljava/util/List;
+Landroid/app/INotificationManager;->isNotificationAssistantAccessGranted(Landroid/content/ComponentName;)Z
+Landroid/app/INotificationManager;->isNotificationListenerAccessGranted(Landroid/content/ComponentName;)Z
+Landroid/app/INotificationManager;->isNotificationListenerAccessGrantedForUser(Landroid/content/ComponentName;I)Z
+Landroid/app/INotificationManager;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z
+Landroid/app/INotificationManager;->isNotificationPolicyAccessGrantedForPackage(Ljava/lang/String;)Z
+Landroid/app/INotificationManager;->isSystemConditionProviderEnabled(Ljava/lang/String;)Z
+Landroid/app/INotificationManager;->matchesCallFilter(Landroid/os/Bundle;)Z
+Landroid/app/INotificationManager;->notifyConditions(Ljava/lang/String;Landroid/service/notification/IConditionProvider;[Landroid/service/notification/Condition;)V
+Landroid/app/INotificationManager;->onlyHasDefaultChannel(Ljava/lang/String;I)Z
+Landroid/app/INotificationManager;->registerListener(Landroid/service/notification/INotificationListener;Landroid/content/ComponentName;I)V
+Landroid/app/INotificationManager;->removeAutomaticZenRule(Ljava/lang/String;)Z
+Landroid/app/INotificationManager;->removeAutomaticZenRules(Ljava/lang/String;)Z
+Landroid/app/INotificationManager;->requestBindListener(Landroid/content/ComponentName;)V
+Landroid/app/INotificationManager;->requestBindProvider(Landroid/content/ComponentName;)V
+Landroid/app/INotificationManager;->requestHintsFromListener(Landroid/service/notification/INotificationListener;I)V
+Landroid/app/INotificationManager;->requestInterruptionFilterFromListener(Landroid/service/notification/INotificationListener;I)V
+Landroid/app/INotificationManager;->requestUnbindListener(Landroid/service/notification/INotificationListener;)V
+Landroid/app/INotificationManager;->requestUnbindProvider(Landroid/service/notification/IConditionProvider;)V
+Landroid/app/INotificationManager;->setInterruptionFilter(Ljava/lang/String;I)V
+Landroid/app/INotificationManager;->setNotificationAssistantAccessGranted(Landroid/content/ComponentName;Z)V
+Landroid/app/INotificationManager;->setNotificationAssistantAccessGrantedForUser(Landroid/content/ComponentName;IZ)V
+Landroid/app/INotificationManager;->setNotificationListenerAccessGranted(Landroid/content/ComponentName;Z)V
+Landroid/app/INotificationManager;->setNotificationListenerAccessGrantedForUser(Landroid/content/ComponentName;IZ)V
+Landroid/app/INotificationManager;->setNotificationPolicy(Ljava/lang/String;Landroid/app/NotificationManager$Policy;)V
+Landroid/app/INotificationManager;->setNotificationPolicyAccessGranted(Ljava/lang/String;Z)V
+Landroid/app/INotificationManager;->setNotificationPolicyAccessGrantedForUser(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager;->setNotificationsEnabledForPackage(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager;->setNotificationsEnabledWithImportanceLockForPackage(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager;->setNotificationsShownFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
+Landroid/app/INotificationManager;->setOnNotificationPostedTrimFromListener(Landroid/service/notification/INotificationListener;I)V
+Landroid/app/INotificationManager;->setShowBadge(Ljava/lang/String;IZ)V
+Landroid/app/INotificationManager;->setZenMode(ILandroid/net/Uri;Ljava/lang/String;)V
+Landroid/app/INotificationManager;->snoozeNotificationUntilContextFromListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/INotificationManager;->snoozeNotificationUntilFromListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;J)V
+Landroid/app/INotificationManager;->unregisterListener(Landroid/service/notification/INotificationListener;I)V
+Landroid/app/INotificationManager;->unsnoozeNotificationFromAssistant(Landroid/service/notification/INotificationListener;Ljava/lang/String;)V
+Landroid/app/INotificationManager;->updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;)Z
+Landroid/app/INotificationManager;->updateNotificationChannelForPackage(Ljava/lang/String;ILandroid/app/NotificationChannel;)V
+Landroid/app/INotificationManager;->updateNotificationChannelFromPrivilegedListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;)V
+Landroid/app/INotificationManager;->updateNotificationChannelGroupForPackage(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;)V
+Landroid/app/INotificationManager;->updateNotificationChannelGroupFromPrivilegedListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;)V
+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
+Landroid/app/InstantAppResolverService;->EXTRA_RESOLVE_INFO:Ljava/lang/String;
+Landroid/app/InstantAppResolverService;->EXTRA_SEQUENCE:Ljava/lang/String;
+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
+Landroid/app/Instrumentation$ActivityMonitor;->mBlock:Z
+Landroid/app/Instrumentation$ActivityMonitor;->mClass:Ljava/lang/String;
+Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
+Landroid/app/Instrumentation$ActivityMonitor;->mIgnoreMatchingSpecificIntents:Z
+Landroid/app/Instrumentation$ActivityMonitor;->mLastActivity:Landroid/app/Activity;
+Landroid/app/Instrumentation$ActivityMonitor;->mResult:Landroid/app/Instrumentation$ActivityResult;
+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
+Landroid/app/Instrumentation;->getFactory(Ljava/lang/String;)Landroid/app/AppComponentFactory;
+Landroid/app/Instrumentation;->init(Landroid/app/ActivityThread;Landroid/content/Context;Landroid/content/Context;Landroid/content/ComponentName;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;)V
+Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
+Landroid/app/Instrumentation;->mAppContext:Landroid/content/Context;
+Landroid/app/Instrumentation;->mAutomaticPerformanceSnapshots:Z
+Landroid/app/Instrumentation;->mComponent:Landroid/content/ComponentName;
+Landroid/app/Instrumentation;->mInstrContext:Landroid/content/Context;
+Landroid/app/Instrumentation;->mMessageQueue:Landroid/os/MessageQueue;
+Landroid/app/Instrumentation;->mPerfMetrics:Landroid/os/Bundle;
+Landroid/app/Instrumentation;->mPerformanceCollector:Landroid/os/PerformanceCollector;
+Landroid/app/Instrumentation;->mRunner:Ljava/lang/Thread;
+Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
+Landroid/app/Instrumentation;->mThread:Landroid/app/ActivityThread;
+Landroid/app/Instrumentation;->mUiAutomation:Landroid/app/UiAutomation;
+Landroid/app/Instrumentation;->mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
+Landroid/app/Instrumentation;->mWaitingActivities:Ljava/util/List;
+Landroid/app/Instrumentation;->mWatcher:Landroid/app/IInstrumentationWatcher;
+Landroid/app/Instrumentation;->postPerformCreate(Landroid/app/Activity;)V
+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;
+Landroid/app/ISearchManager$Stub$Proxy;->getSearchableInfo(Landroid/content/ComponentName;)Landroid/app/SearchableInfo;
+Landroid/app/ISearchManager$Stub$Proxy;->getSearchablesInGlobalSearch()Ljava/util/List;
+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
+Landroid/app/ISearchManager$Stub;->TRANSACTION_getSearchableInfo:I
+Landroid/app/ISearchManager$Stub;->TRANSACTION_getSearchablesInGlobalSearch:I
+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;
+Landroid/app/ITaskStackListener$Stub$Proxy;->onActivityDismissingDockedStack()V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onActivityForcedResizable(Ljava/lang/String;II)V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onActivityLaunchOnSecondaryDisplayFailed()V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onActivityPinned(Ljava/lang/String;III)V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onActivityRequestedOrientationChanged(II)V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onActivityUnpinned()V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onPinnedActivityRestartAttempt(Z)V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onPinnedStackAnimationEnded()V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onPinnedStackAnimationStarted()V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onTaskCreated(ILandroid/content/ComponentName;)V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onTaskMovedToFront(I)V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onTaskProfileLocked(II)V
+Landroid/app/ITaskStackListener$Stub$Proxy;->onTaskRemovalStarted(I)V
+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;
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onActivityDismissingDockedStack:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onActivityForcedResizable:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onActivityLaunchOnSecondaryDisplayFailed:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onActivityPinned:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onActivityRequestedOrientationChanged:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onActivityUnpinned:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onPinnedActivityRestartAttempt:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onPinnedStackAnimationEnded:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onPinnedStackAnimationStarted:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onTaskCreated:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onTaskDescriptionChanged:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onTaskMovedToFront:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onTaskProfileLocked:I
+Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onTaskRemovalStarted:I
+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
+Landroid/app/ITaskStackListener;->onActivityForcedResizable(Ljava/lang/String;II)V
+Landroid/app/ITaskStackListener;->onActivityLaunchOnSecondaryDisplayFailed()V
+Landroid/app/ITaskStackListener;->onActivityPinned(Ljava/lang/String;III)V
+Landroid/app/ITaskStackListener;->onActivityRequestedOrientationChanged(II)V
+Landroid/app/ITaskStackListener;->onActivityUnpinned()V
+Landroid/app/ITaskStackListener;->onPinnedActivityRestartAttempt(Z)V
+Landroid/app/ITaskStackListener;->onPinnedStackAnimationEnded()V
+Landroid/app/ITaskStackListener;->onPinnedStackAnimationStarted()V
+Landroid/app/ITaskStackListener;->onTaskCreated(ILandroid/content/ComponentName;)V
+Landroid/app/ITaskStackListener;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V
+Landroid/app/ITaskStackListener;->onTaskMovedToFront(I)V
+Landroid/app/ITaskStackListener;->onTaskProfileLocked(II)V
+Landroid/app/ITaskStackListener;->onTaskRemovalStarted(I)V
+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
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->connect(Landroid/accessibilityservice/IAccessibilityServiceClient;I)V
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->disconnect()V
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->executeShellCommand(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->getWindowAnimationFrameStats()Landroid/view/WindowAnimationFrameStats;
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->getWindowContentFrameStats(I)Landroid/view/WindowContentFrameStats;
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->injectInputEvent(Landroid/view/InputEvent;Z)Z
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/IUiAutomationConnection$Stub$Proxy;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+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;
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_clearWindowAnimationFrameStats:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_clearWindowContentFrameStats:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_connect:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_disconnect:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_executeShellCommand:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_getWindowAnimationFrameStats:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_getWindowContentFrameStats:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_grantRuntimePermission:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_injectInputEvent:I
+Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_revokeRuntimePermission:I
+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
+Landroid/app/IUiAutomationConnection;->disconnect()V
+Landroid/app/IUiAutomationConnection;->executeShellCommand(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/IUiAutomationConnection;->getWindowAnimationFrameStats()Landroid/view/WindowAnimationFrameStats;
+Landroid/app/IUiAutomationConnection;->getWindowContentFrameStats(I)Landroid/view/WindowContentFrameStats;
+Landroid/app/IUiAutomationConnection;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/app/IUiAutomationConnection;->injectInputEvent(Landroid/view/InputEvent;Z)Z
+Landroid/app/IUiAutomationConnection;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+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;
+Landroid/app/IUidObserver$Stub$Proxy;->onUidActive(I)V
+Landroid/app/IUidObserver$Stub$Proxy;->onUidCachedChanged(IZ)V
+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;
+Landroid/app/IUidObserver$Stub;->TRANSACTION_onUidActive:I
+Landroid/app/IUidObserver$Stub;->TRANSACTION_onUidCachedChanged:I
+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
+Landroid/app/IUiModeManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/IUiModeManager$Stub$Proxy;->getNightMode()I
+Landroid/app/IUiModeManager$Stub$Proxy;->isNightModeLocked()Z
+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
+Landroid/app/IUiModeManager$Stub;->TRANSACTION_enableCarMode:I
+Landroid/app/IUiModeManager$Stub;->TRANSACTION_getCurrentModeType:I
+Landroid/app/IUiModeManager$Stub;->TRANSACTION_getNightMode:I
+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;
+Landroid/app/IUserSwitchObserver$Stub$Proxy;->onForegroundProfileSwitch(I)V
+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
+Landroid/app/IWallpaperManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/IWallpaperManager$Stub$Proxy;->getName()Ljava/lang/String;
+Landroid/app/IWallpaperManager$Stub$Proxy;->getWallpaper(Ljava/lang/String;Landroid/app/IWallpaperManagerCallback;ILandroid/os/Bundle;I)Landroid/os/ParcelFileDescriptor;
+Landroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperColors(II)Landroid/app/WallpaperColors;
+Landroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperIdForUser(II)I
+Landroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
+Landroid/app/IWallpaperManager$Stub$Proxy;->getWidthHint()I
+Landroid/app/IWallpaperManager$Stub$Proxy;->hasNamedWallpaper(Ljava/lang/String;)Z
+Landroid/app/IWallpaperManager$Stub$Proxy;->isSetWallpaperAllowed(Ljava/lang/String;)Z
+Landroid/app/IWallpaperManager$Stub$Proxy;->isWallpaperBackupEligible(II)Z
+Landroid/app/IWallpaperManager$Stub$Proxy;->isWallpaperSupported(Ljava/lang/String;)Z
+Landroid/app/IWallpaperManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/IWallpaperManager$Stub$Proxy;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;I)V
+Landroid/app/IWallpaperManager$Stub$Proxy;->setDimensionHints(IILjava/lang/String;)V
+Landroid/app/IWallpaperManager$Stub$Proxy;->setDisplayPadding(Landroid/graphics/Rect;Ljava/lang/String;)V
+Landroid/app/IWallpaperManager$Stub$Proxy;->setInAmbientMode(ZZ)V
+Landroid/app/IWallpaperManager$Stub$Proxy;->setLockWallpaperCallback(Landroid/app/IWallpaperManagerCallback;)Z
+Landroid/app/IWallpaperManager$Stub$Proxy;->settingsRestored()V
+Landroid/app/IWallpaperManager$Stub$Proxy;->setWallpaper(Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;ZLandroid/os/Bundle;ILandroid/app/IWallpaperManagerCallback;I)Landroid/os/ParcelFileDescriptor;
+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
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_getName:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_getWallpaper:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_getWallpaperColors:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_getWallpaperIdForUser:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_getWallpaperInfo:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_getWidthHint:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_hasNamedWallpaper:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_isSetWallpaperAllowed:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_isWallpaperBackupEligible:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_isWallpaperSupported:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_registerWallpaperColorsCallback:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_setDimensionHints:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_setDisplayPadding:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_setInAmbientMode:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_setLockWallpaperCallback:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_settingsRestored:I
+Landroid/app/IWallpaperManager$Stub;->TRANSACTION_setWallpaper:I
+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;
+Landroid/app/IWallpaperManager;->getWallpaperIdForUser(II)I
+Landroid/app/IWallpaperManager;->isSetWallpaperAllowed(Ljava/lang/String;)Z
+Landroid/app/IWallpaperManager;->isWallpaperBackupEligible(II)Z
+Landroid/app/IWallpaperManager;->isWallpaperSupported(Ljava/lang/String;)Z
+Landroid/app/IWallpaperManager;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;I)V
+Landroid/app/IWallpaperManager;->setDimensionHints(IILjava/lang/String;)V
+Landroid/app/IWallpaperManager;->setDisplayPadding(Landroid/graphics/Rect;Ljava/lang/String;)V
+Landroid/app/IWallpaperManager;->setInAmbientMode(ZZ)V
+Landroid/app/IWallpaperManager;->setLockWallpaperCallback(Landroid/app/IWallpaperManagerCallback;)Z
+Landroid/app/IWallpaperManager;->settingsRestored()V
+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
+Landroid/app/job/IJobScheduler$Stub$Proxy;->getAllPendingJobs()Ljava/util/List;
+Landroid/app/job/IJobScheduler$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/job/IJobScheduler$Stub$Proxy;->getPendingJob(I)Landroid/app/job/JobInfo;
+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
+Landroid/app/job/IJobScheduler$Stub;->TRANSACTION_cancelAll:I
+Landroid/app/job/IJobScheduler$Stub;->TRANSACTION_enqueue:I
+Landroid/app/job/IJobScheduler$Stub;->TRANSACTION_getAllPendingJobs:I
+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
+Landroid/app/job/IJobScheduler;->getAllPendingJobs()Ljava/util/List;
+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;
+Landroid/app/job/JobInfo$Builder;->mClipGrantFlags:I
+Landroid/app/job/JobInfo$Builder;->mConstraintFlags:I
+Landroid/app/job/JobInfo$Builder;->mExtras:Landroid/os/PersistableBundle;
+Landroid/app/job/JobInfo$Builder;->mFlags:I
+Landroid/app/job/JobInfo$Builder;->mFlexMillis:J
+Landroid/app/job/JobInfo$Builder;->mHasEarlyConstraint:Z
+Landroid/app/job/JobInfo$Builder;->mHasLateConstraint:Z
+Landroid/app/job/JobInfo$Builder;->mInitialBackoffMillis:J
+Landroid/app/job/JobInfo$Builder;->mIntervalMillis:J
+Landroid/app/job/JobInfo$Builder;->mIsPeriodic:Z
+Landroid/app/job/JobInfo$Builder;->mIsPersisted:Z
+Landroid/app/job/JobInfo$Builder;->mJobId:I
+Landroid/app/job/JobInfo$Builder;->mJobService:Landroid/content/ComponentName;
+Landroid/app/job/JobInfo$Builder;->mMaxExecutionDelayMillis:J
+Landroid/app/job/JobInfo$Builder;->mMinLatencyMillis:J
+Landroid/app/job/JobInfo$Builder;->mNetworkDownloadBytes:J
+Landroid/app/job/JobInfo$Builder;->mNetworkRequest:Landroid/net/NetworkRequest;
+Landroid/app/job/JobInfo$Builder;->mNetworkUploadBytes:J
+Landroid/app/job/JobInfo$Builder;->mPriority:I
+Landroid/app/job/JobInfo$Builder;->mTransientExtras:Landroid/os/Bundle;
+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;
+Landroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;)V
+Landroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/app/job/JobInfo;->backoffPolicy:I
+Landroid/app/job/JobInfo;->clipData:Landroid/content/ClipData;
+Landroid/app/job/JobInfo;->clipGrantFlags:I
+Landroid/app/job/JobInfo;->constraintFlags:I
+Landroid/app/job/JobInfo;->CONSTRAINT_FLAG_BATTERY_NOT_LOW:I
+Landroid/app/job/JobInfo;->CONSTRAINT_FLAG_CHARGING:I
+Landroid/app/job/JobInfo;->CONSTRAINT_FLAG_DEVICE_IDLE:I
+Landroid/app/job/JobInfo;->CONSTRAINT_FLAG_STORAGE_NOT_LOW:I
+Landroid/app/job/JobInfo;->DEFAULT_BACKOFF_POLICY:I
+Landroid/app/job/JobInfo;->extras:Landroid/os/PersistableBundle;
+Landroid/app/job/JobInfo;->FLAG_EXEMPT_FROM_APP_STANDBY:I
+Landroid/app/job/JobInfo;->FLAG_IMPORTANT_WHILE_FOREGROUND:I
+Landroid/app/job/JobInfo;->FLAG_PREFETCH:I
+Landroid/app/job/JobInfo;->flexMillis:J
+Landroid/app/job/JobInfo;->getConstraintFlags()I
+Landroid/app/job/JobInfo;->getFlags()I
+Landroid/app/job/JobInfo;->getMinBackoffMillis()J
+Landroid/app/job/JobInfo;->getPriority()I
+Landroid/app/job/JobInfo;->hasEarlyConstraint()Z
+Landroid/app/job/JobInfo;->hasEarlyConstraint:Z
+Landroid/app/job/JobInfo;->hasLateConstraint()Z
+Landroid/app/job/JobInfo;->hasLateConstraint:Z
+Landroid/app/job/JobInfo;->initialBackoffMillis:J
+Landroid/app/job/JobInfo;->intervalMillis:J
+Landroid/app/job/JobInfo;->isExemptedFromAppStandby()Z
+Landroid/app/job/JobInfo;->isPeriodic:Z
+Landroid/app/job/JobInfo;->isPersisted:Z
+Landroid/app/job/JobInfo;->kindofEqualsBundle(Landroid/os/BaseBundle;Landroid/os/BaseBundle;)Z
+Landroid/app/job/JobInfo;->maxExecutionDelayMillis:J
+Landroid/app/job/JobInfo;->minLatencyMillis:J
+Landroid/app/job/JobInfo;->MIN_BACKOFF_MILLIS:J
+Landroid/app/job/JobInfo;->MIN_FLEX_MILLIS:J
+Landroid/app/job/JobInfo;->MIN_PERIOD_MILLIS:J
+Landroid/app/job/JobInfo;->networkDownloadBytes:J
+Landroid/app/job/JobInfo;->networkRequest:Landroid/net/NetworkRequest;
+Landroid/app/job/JobInfo;->networkUploadBytes:J
+Landroid/app/job/JobInfo;->priority:I
+Landroid/app/job/JobInfo;->PRIORITY_ADJ_ALWAYS_RUNNING:I
+Landroid/app/job/JobInfo;->PRIORITY_ADJ_OFTEN_RUNNING:I
+Landroid/app/job/JobInfo;->PRIORITY_DEFAULT:I
+Landroid/app/job/JobInfo;->PRIORITY_SYNC_EXPEDITED:I
+Landroid/app/job/JobInfo;->PRIORITY_SYNC_INITIALIZATION:I
+Landroid/app/job/JobInfo;->PRIORITY_TOP_APP:I
+Landroid/app/job/JobInfo;->TAG:Ljava/lang/String;
+Landroid/app/job/JobInfo;->transientExtras:Landroid/os/Bundle;
+Landroid/app/job/JobInfo;->triggerContentMaxDelay:J
+Landroid/app/job/JobInfo;->triggerContentUpdateDelay:J
+Landroid/app/job/JobInfo;->triggerContentUris:[Landroid/app/job/JobInfo$TriggerContentUri;
+Landroid/app/job/JobParameters;-><init>(Landroid/os/IBinder;ILandroid/os/PersistableBundle;Landroid/os/Bundle;Landroid/content/ClipData;IZ[Landroid/net/Uri;[Ljava/lang/String;Landroid/net/Network;)V
+Landroid/app/job/JobParameters;-><init>(Landroid/os/Parcel;)V
+Landroid/app/job/JobParameters;->clipData:Landroid/content/ClipData;
+Landroid/app/job/JobParameters;->clipGrantFlags:I
+Landroid/app/job/JobParameters;->debugStopReason:Ljava/lang/String;
+Landroid/app/job/JobParameters;->extras:Landroid/os/PersistableBundle;
+Landroid/app/job/JobParameters;->getDebugStopReason()Ljava/lang/String;
+Landroid/app/job/JobParameters;->getReasonName(I)Ljava/lang/String;
+Landroid/app/job/JobParameters;->getStopReason()I
+Landroid/app/job/JobParameters;->mTriggeredContentAuthorities:[Ljava/lang/String;
+Landroid/app/job/JobParameters;->mTriggeredContentUris:[Landroid/net/Uri;
+Landroid/app/job/JobParameters;->network:Landroid/net/Network;
+Landroid/app/job/JobParameters;->overrideDeadlineExpired:Z
+Landroid/app/job/JobParameters;->REASON_CANCELED:I
+Landroid/app/job/JobParameters;->REASON_CONSTRAINTS_NOT_SATISFIED:I
+Landroid/app/job/JobParameters;->REASON_DEVICE_IDLE:I
+Landroid/app/job/JobParameters;->REASON_PREEMPT:I
+Landroid/app/job/JobParameters;->REASON_TIMEOUT:I
+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
+Landroid/app/job/JobProtoEnums;->STOP_REASON_DEVICE_IDLE:I
+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
+Landroid/app/job/JobServiceEngine$JobInterface;->stopJob(Landroid/app/job/JobParameters;)V
+Landroid/app/job/JobServiceEngine;->mBinder:Landroid/app/job/IJobService;
+Landroid/app/job/JobServiceEngine;->mHandler:Landroid/app/job/JobServiceEngine$JobHandler;
+Landroid/app/job/JobServiceEngine;->MSG_EXECUTE_JOB:I
+Landroid/app/job/JobServiceEngine;->MSG_JOB_FINISHED:I
+Landroid/app/job/JobServiceEngine;->MSG_STOP_JOB:I
+Landroid/app/job/JobServiceEngine;->TAG:Ljava/lang/String;
+Landroid/app/job/JobWorkItem;->bumpDeliveryCount()V
+Landroid/app/job/JobWorkItem;->getGrants()Ljava/lang/Object;
+Landroid/app/job/JobWorkItem;->getWorkId()I
+Landroid/app/job/JobWorkItem;->mNetworkDownloadBytes:J
+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
+Landroid/app/KeyguardManager;->ACTION_CONFIRM_DEVICE_CREDENTIAL:Ljava/lang/String;
+Landroid/app/KeyguardManager;->ACTION_CONFIRM_DEVICE_CREDENTIAL_WITH_USER:Ljava/lang/String;
+Landroid/app/KeyguardManager;->ACTION_CONFIRM_FRP_CREDENTIAL:Ljava/lang/String;
+Landroid/app/KeyguardManager;->createConfirmDeviceCredentialIntent(Ljava/lang/CharSequence;Ljava/lang/CharSequence;I)Landroid/content/Intent;
+Landroid/app/KeyguardManager;->EXTRA_ALTERNATE_BUTTON_LABEL:Ljava/lang/String;
+Landroid/app/KeyguardManager;->EXTRA_DESCRIPTION:Ljava/lang/String;
+Landroid/app/KeyguardManager;->EXTRA_TITLE:Ljava/lang/String;
+Landroid/app/KeyguardManager;->getSettingsPackageForIntent(Landroid/content/Intent;)Ljava/lang/String;
+Landroid/app/KeyguardManager;->mAm:Landroid/app/IActivityManager;
+Landroid/app/KeyguardManager;->mContext:Landroid/content/Context;
+Landroid/app/KeyguardManager;->mTrustManager:Landroid/app/trust/ITrustManager;
+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;
+Landroid/app/LauncherActivity$ActivityAdapter;->lock:Ljava/lang/Object;
+Landroid/app/LauncherActivity$ActivityAdapter;->mActivitiesList:Ljava/util/List;
+Landroid/app/LauncherActivity$ActivityAdapter;->mFilter:Landroid/widget/Filter;
+Landroid/app/LauncherActivity$ActivityAdapter;->mIconResizer:Landroid/app/LauncherActivity$IconResizer;
+Landroid/app/LauncherActivity$ActivityAdapter;->mInflater:Landroid/view/LayoutInflater;
+Landroid/app/LauncherActivity$ActivityAdapter;->mOriginalValues:Ljava/util/ArrayList;
+Landroid/app/LauncherActivity$ActivityAdapter;->mShowIcons:Z
+Landroid/app/LauncherActivity$IconResizer;->mCanvas:Landroid/graphics/Canvas;
+Landroid/app/LauncherActivity$IconResizer;->mIconHeight:I
+Landroid/app/LauncherActivity$IconResizer;->mIconWidth:I
+Landroid/app/LauncherActivity$IconResizer;->mOldBounds:Landroid/graphics/Rect;
+Landroid/app/LauncherActivity$ListItem;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;Landroid/app/LauncherActivity$IconResizer;)V
+Landroid/app/LauncherActivity;->mIconResizer:Landroid/app/LauncherActivity$IconResizer;
+Landroid/app/LauncherActivity;->mIntent:Landroid/content/Intent;
+Landroid/app/LauncherActivity;->mPackageManager:Landroid/content/pm/PackageManager;
+Landroid/app/LauncherActivity;->onEvaluateShowIcons()Z
+Landroid/app/LauncherActivity;->onSortResultList(Ljava/util/List;)V
+Landroid/app/LauncherActivity;->updateAlertTitle()V
+Landroid/app/LauncherActivity;->updateButtonText()V
+Landroid/app/ListActivity;->ensureList()V
+Landroid/app/ListActivity;->mAdapter:Landroid/widget/ListAdapter;
+Landroid/app/ListActivity;->mFinishedStart:Z
+Landroid/app/ListActivity;->mHandler:Landroid/os/Handler;
+Landroid/app/ListActivity;->mList:Landroid/widget/ListView;
+Landroid/app/ListActivity;->mOnClickListener:Landroid/widget/AdapterView$OnItemClickListener;
+Landroid/app/ListActivity;->mRequestFocus:Ljava/lang/Runnable;
+Landroid/app/ListFragment;->ensureList()V
+Landroid/app/ListFragment;->mAdapter:Landroid/widget/ListAdapter;
+Landroid/app/ListFragment;->mEmptyText:Ljava/lang/CharSequence;
+Landroid/app/ListFragment;->mEmptyView:Landroid/view/View;
+Landroid/app/ListFragment;->mHandler:Landroid/os/Handler;
+Landroid/app/ListFragment;->mList:Landroid/widget/ListView;
+Landroid/app/ListFragment;->mListContainer:Landroid/view/View;
+Landroid/app/ListFragment;->mListShown:Z
+Landroid/app/ListFragment;->mOnClickListener:Landroid/widget/AdapterView$OnItemClickListener;
+Landroid/app/ListFragment;->mProgressContainer:Landroid/view/View;
+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;
+Landroid/app/LoadedApk$ReceiverDispatcher;->mActivityThread:Landroid/os/Handler;
+Landroid/app/LoadedApk$ReceiverDispatcher;->mForgotten:Z
+Landroid/app/LoadedApk$ReceiverDispatcher;->mIIntentReceiver:Landroid/content/IIntentReceiver$Stub;
+Landroid/app/LoadedApk$ReceiverDispatcher;->mInstrumentation:Landroid/app/Instrumentation;
+Landroid/app/LoadedApk$ReceiverDispatcher;->mLocation:Landroid/app/IntentReceiverLeaked;
+Landroid/app/LoadedApk$ReceiverDispatcher;->mRegistered:Z
+Landroid/app/LoadedApk$ReceiverDispatcher;->mUnregisterLocation:Ljava/lang/RuntimeException;
+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
+Landroid/app/LoadedApk$ServiceDispatcher;->doDeath(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+Landroid/app/LoadedApk$ServiceDispatcher;->doForget()V
+Landroid/app/LoadedApk$ServiceDispatcher;->getFlags()I
+Landroid/app/LoadedApk$ServiceDispatcher;->getLocation()Landroid/app/ServiceConnectionLeaked;
+Landroid/app/LoadedApk$ServiceDispatcher;->getServiceConnection()Landroid/content/ServiceConnection;
+Landroid/app/LoadedApk$ServiceDispatcher;->getUnbindLocation()Ljava/lang/RuntimeException;
+Landroid/app/LoadedApk$ServiceDispatcher;->mActiveConnections:Landroid/util/ArrayMap;
+Landroid/app/LoadedApk$ServiceDispatcher;->mActivityThread:Landroid/os/Handler;
+Landroid/app/LoadedApk$ServiceDispatcher;->mFlags:I
+Landroid/app/LoadedApk$ServiceDispatcher;->mForgotten:Z
+Landroid/app/LoadedApk$ServiceDispatcher;->mIServiceConnection:Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;
+Landroid/app/LoadedApk$ServiceDispatcher;->mLocation:Landroid/app/ServiceConnectionLeaked;
+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;
+Landroid/app/LoadedApk$SplitDependencyLoaderImpl;->getSplitPathsForSplit(Ljava/lang/String;)[Ljava/lang/String;
+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;
+Landroid/app/LoadedApk;->appendApkLibPathIfNeeded(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
+Landroid/app/LoadedApk;->createAppFactory(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
+Landroid/app/LoadedApk;->createOrUpdateClassLoaderLocked(Ljava/util/List;)V
+Landroid/app/LoadedApk;->DEBUG:Z
+Landroid/app/LoadedApk;->forgetReceiverDispatcher(Landroid/content/Context;Landroid/content/BroadcastReceiver;)Landroid/content/IIntentReceiver;
+Landroid/app/LoadedApk;->forgetServiceDispatcher(Landroid/content/Context;Landroid/content/ServiceConnection;)Landroid/app/IServiceConnection;
+Landroid/app/LoadedApk;->getAppFactory()Landroid/app/AppComponentFactory;
+Landroid/app/LoadedApk;->getApplication()Landroid/app/Application;
+Landroid/app/LoadedApk;->getCredentialProtectedDataDirFile()Ljava/io/File;
+Landroid/app/LoadedApk;->getDataDir()Ljava/lang/String;
+Landroid/app/LoadedApk;->getDeviceProtectedDataDirFile()Ljava/io/File;
+Landroid/app/LoadedApk;->getLibDir()Ljava/lang/String;
+Landroid/app/LoadedApk;->getLibrariesFor(Ljava/lang/String;)[Ljava/lang/String;
+Landroid/app/LoadedApk;->getReceiverDispatcher(Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)Landroid/content/IIntentReceiver;
+Landroid/app/LoadedApk;->getSplitAppDirs()[Ljava/lang/String;
+Landroid/app/LoadedApk;->getSplitClassLoader(Ljava/lang/String;)Ljava/lang/ClassLoader;
+Landroid/app/LoadedApk;->getSplitPaths(Ljava/lang/String;)[Ljava/lang/String;
+Landroid/app/LoadedApk;->getTargetSdkVersion()I
+Landroid/app/LoadedApk;->initializeJavaContextClassLoader()V
+Landroid/app/LoadedApk;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
+Landroid/app/LoadedApk;->isSecurityViolation()Z
+Landroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
+Landroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V
+Landroid/app/LoadedApk;->mAppComponentFactory:Landroid/app/AppComponentFactory;
+Landroid/app/LoadedApk;->mCredentialProtectedDataDirFile:Ljava/io/File;
+Landroid/app/LoadedApk;->mDeviceProtectedDataDirFile:Ljava/io/File;
+Landroid/app/LoadedApk;->mIncludeCode:Z
+Landroid/app/LoadedApk;->mOverlayDirs:[Ljava/lang/String;
+Landroid/app/LoadedApk;->mRegisterPackage:Z
+Landroid/app/LoadedApk;->mSecurityViolation:Z
+Landroid/app/LoadedApk;->mSplitAppDirs:[Ljava/lang/String;
+Landroid/app/LoadedApk;->mSplitClassLoaderNames:[Ljava/lang/String;
+Landroid/app/LoadedApk;->mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
+Landroid/app/LoadedApk;->mSplitNames:[Ljava/lang/String;
+Landroid/app/LoadedApk;->mUnboundServices:Landroid/util/ArrayMap;
+Landroid/app/LoadedApk;->mUnregisteredReceivers:Landroid/util/ArrayMap;
+Landroid/app/LoadedApk;->PROPERTY_NAME_APPEND_NATIVE:Ljava/lang/String;
+Landroid/app/LoadedApk;->removeContextRegistrations(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/LoadedApk;->setApplicationInfo(Landroid/content/pm/ApplicationInfo;)V
+Landroid/app/LoadedApk;->setCompatibilityInfo(Landroid/content/res/CompatibilityInfo;)V
+Landroid/app/LoadedApk;->setupJitProfileSupport()V
+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
+Landroid/app/LoaderManagerImpl$LoaderInfo;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/LoaderManagerImpl$LoaderInfo;->finishRetain()V
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mArgs:Landroid/os/Bundle;
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mCallbacks:Landroid/app/LoaderManager$LoaderCallbacks;
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mData:Ljava/lang/Object;
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mDeliveredData:Z
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mDestroyed:Z
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mHaveData:Z
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mId:I
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mListenerRegistered:Z
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mLoader:Landroid/content/Loader;
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mPendingLoader:Landroid/app/LoaderManagerImpl$LoaderInfo;
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mReportNextStart:Z
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mRetaining:Z
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mRetainingStarted:Z
+Landroid/app/LoaderManagerImpl$LoaderInfo;->mStarted:Z
+Landroid/app/LoaderManagerImpl$LoaderInfo;->onLoadCanceled(Landroid/content/Loader;)V
+Landroid/app/LoaderManagerImpl$LoaderInfo;->onLoadComplete(Landroid/content/Loader;Ljava/lang/Object;)V
+Landroid/app/LoaderManagerImpl$LoaderInfo;->reportStart()V
+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;
+Landroid/app/LoaderManagerImpl;->DEBUG:Z
+Landroid/app/LoaderManagerImpl;->doDestroy()V
+Landroid/app/LoaderManagerImpl;->doReportNextStart()V
+Landroid/app/LoaderManagerImpl;->doReportStart()V
+Landroid/app/LoaderManagerImpl;->doRetain()V
+Landroid/app/LoaderManagerImpl;->doStart()V
+Landroid/app/LoaderManagerImpl;->doStop()V
+Landroid/app/LoaderManagerImpl;->finishRetain()V
+Landroid/app/LoaderManagerImpl;->getFragmentHostCallback()Landroid/app/FragmentHostCallback;
+Landroid/app/LoaderManagerImpl;->hasRunningLoaders()Z
+Landroid/app/LoaderManagerImpl;->installLoader(Landroid/app/LoaderManagerImpl$LoaderInfo;)V
+Landroid/app/LoaderManagerImpl;->mCreatingLoader:Z
+Landroid/app/LoaderManagerImpl;->mHost:Landroid/app/FragmentHostCallback;
+Landroid/app/LoaderManagerImpl;->mInactiveLoaders:Landroid/util/SparseArray;
+Landroid/app/LoaderManagerImpl;->mLoaders:Landroid/util/SparseArray;
+Landroid/app/LoaderManagerImpl;->mRetaining:Z
+Landroid/app/LoaderManagerImpl;->mRetainingStarted:Z
+Landroid/app/LoaderManagerImpl;->mStarted:Z
+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;
+Landroid/app/LocalActivityManager$LocalActivityRecord;->curState:I
+Landroid/app/LocalActivityManager$LocalActivityRecord;->id:Ljava/lang/String;
+Landroid/app/LocalActivityManager$LocalActivityRecord;->instanceState:Landroid/os/Bundle;
+Landroid/app/LocalActivityManager$LocalActivityRecord;->intent:Landroid/content/Intent;
+Landroid/app/LocalActivityManager$LocalActivityRecord;->window:Landroid/view/Window;
+Landroid/app/LocalActivityManager;->CREATED:I
+Landroid/app/LocalActivityManager;->DESTROYED:I
+Landroid/app/LocalActivityManager;->dispatchRetainNonConfigurationInstance()Ljava/util/HashMap;
+Landroid/app/LocalActivityManager;->INITIALIZING:I
+Landroid/app/LocalActivityManager;->localLOGV:Z
+Landroid/app/LocalActivityManager;->mActivityThread:Landroid/app/ActivityThread;
+Landroid/app/LocalActivityManager;->mCurState:I
+Landroid/app/LocalActivityManager;->mFinishing:Z
+Landroid/app/LocalActivityManager;->performDestroy(Landroid/app/LocalActivityManager$LocalActivityRecord;Z)Landroid/view/Window;
+Landroid/app/LocalActivityManager;->performPause(Landroid/app/LocalActivityManager$LocalActivityRecord;Z)V
+Landroid/app/LocalActivityManager;->RESTORED:I
+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
+Landroid/app/MediaRouteActionProvider;->mButton:Landroid/app/MediaRouteButton;
+Landroid/app/MediaRouteActionProvider;->mCallback:Landroid/app/MediaRouteActionProvider$MediaRouterCallback;
+Landroid/app/MediaRouteActionProvider;->mContext:Landroid/content/Context;
+Landroid/app/MediaRouteActionProvider;->mExtendedSettingsListener:Landroid/view/View$OnClickListener;
+Landroid/app/MediaRouteActionProvider;->mRouter:Landroid/media/MediaRouter;
+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;
+Landroid/app/MediaRouteButton;->mAttachedToWindow:Z
+Landroid/app/MediaRouteButton;->mCallback:Landroid/app/MediaRouteButton$MediaRouterCallback;
+Landroid/app/MediaRouteButton;->mExtendedSettingsClickListener:Landroid/view/View$OnClickListener;
+Landroid/app/MediaRouteButton;->mIsConnecting:Z
+Landroid/app/MediaRouteButton;->mMinHeight:I
+Landroid/app/MediaRouteButton;->mMinWidth:I
+Landroid/app/MediaRouteButton;->mRemoteActive:Z
+Landroid/app/MediaRouteButton;->mRemoteIndicator:Landroid/graphics/drawable/Drawable;
+Landroid/app/MediaRouteButton;->mRouter:Landroid/media/MediaRouter;
+Landroid/app/MediaRouteButton;->mRouteTypes:I
+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;
+Landroid/app/NativeActivity;->getAbsolutePath(Ljava/io/File;)Ljava/lang/String;
+Landroid/app/NativeActivity;->getDlError()Ljava/lang/String;
+Landroid/app/NativeActivity;->KEY_NATIVE_SAVED_STATE:Ljava/lang/String;
+Landroid/app/NativeActivity;->mCurInputQueue:Landroid/view/InputQueue;
+Landroid/app/NativeActivity;->mCurSurfaceHolder:Landroid/view/SurfaceHolder;
+Landroid/app/NativeActivity;->mDestroyed:Z
+Landroid/app/NativeActivity;->mDispatchingUnhandledKey:Z
+Landroid/app/NativeActivity;->mIMM:Landroid/view/inputmethod/InputMethodManager;
+Landroid/app/NativeActivity;->mLastContentHeight:I
+Landroid/app/NativeActivity;->mLastContentWidth:I
+Landroid/app/NativeActivity;->mLastContentX:I
+Landroid/app/NativeActivity;->mLastContentY:I
+Landroid/app/NativeActivity;->mLocation:[I
+Landroid/app/NativeActivity;->mNativeContentView:Landroid/app/NativeActivity$NativeContentView;
+Landroid/app/NativeActivity;->onConfigurationChangedNative(J)V
+Landroid/app/NativeActivity;->onContentRectChangedNative(JIIII)V
+Landroid/app/NativeActivity;->onInputQueueCreatedNative(JJ)V
+Landroid/app/NativeActivity;->onInputQueueDestroyedNative(JJ)V
+Landroid/app/NativeActivity;->onLowMemoryNative(J)V
+Landroid/app/NativeActivity;->onPauseNative(J)V
+Landroid/app/NativeActivity;->onResumeNative(J)V
+Landroid/app/NativeActivity;->onSaveInstanceStateNative(J)[B
+Landroid/app/NativeActivity;->onStartNative(J)V
+Landroid/app/NativeActivity;->onStopNative(J)V
+Landroid/app/NativeActivity;->onSurfaceChangedNative(JLandroid/view/Surface;III)V
+Landroid/app/NativeActivity;->onSurfaceCreatedNative(JLandroid/view/Surface;)V
+Landroid/app/NativeActivity;->onSurfaceDestroyedNative(J)V
+Landroid/app/NativeActivity;->onSurfaceRedrawNeededNative(JLandroid/view/Surface;)V
+Landroid/app/NativeActivity;->onWindowFocusChangedNative(JZ)V
+Landroid/app/NativeActivity;->unloadNativeCode(J)V
+Landroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZI)V
+Landroid/app/Notification$Action$Builder;->mAllowGeneratedReplies:Z
+Landroid/app/Notification$Action$Builder;->mExtras:Landroid/os/Bundle;
+Landroid/app/Notification$Action$Builder;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/app/Notification$Action$Builder;->mIntent:Landroid/app/PendingIntent;
+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
+Landroid/app/Notification$Action$WearableExtender;->FLAG_HINT_DISPLAY_INLINE:I
+Landroid/app/Notification$Action$WearableExtender;->FLAG_HINT_LAUNCHES_ACTIVITY:I
+Landroid/app/Notification$Action$WearableExtender;->KEY_CANCEL_LABEL:Ljava/lang/String;
+Landroid/app/Notification$Action$WearableExtender;->KEY_CONFIRM_LABEL:Ljava/lang/String;
+Landroid/app/Notification$Action$WearableExtender;->KEY_FLAGS:Ljava/lang/String;
+Landroid/app/Notification$Action$WearableExtender;->KEY_IN_PROGRESS_LABEL:Ljava/lang/String;
+Landroid/app/Notification$Action$WearableExtender;->mCancelLabel:Ljava/lang/CharSequence;
+Landroid/app/Notification$Action$WearableExtender;->mConfirmLabel:Ljava/lang/CharSequence;
+Landroid/app/Notification$Action$WearableExtender;->mFlags:I
+Landroid/app/Notification$Action$WearableExtender;->mInProgressLabel:Ljava/lang/CharSequence;
+Landroid/app/Notification$Action$WearableExtender;->setFlag(IZ)V
+Landroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZI)V
+Landroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V
+Landroid/app/Notification$Action;->EXTRA_DATA_ONLY_INPUTS:Ljava/lang/String;
+Landroid/app/Notification$Action;->mAllowGeneratedReplies:Z
+Landroid/app/Notification$Action;->mExtras:Landroid/os/Bundle;
+Landroid/app/Notification$Action;->mRemoteInputs:[Landroid/app/RemoteInput;
+Landroid/app/Notification$Action;->mSemanticAction:I
+Landroid/app/Notification$BigPictureStyle;->addExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$BigPictureStyle;->areBitmapsObviouslyDifferent(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)Z
+Landroid/app/Notification$BigPictureStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+Landroid/app/Notification$BigPictureStyle;->getBigPicture()Landroid/graphics/Bitmap;
+Landroid/app/Notification$BigPictureStyle;->hasSummaryInHeader()Z
+Landroid/app/Notification$BigPictureStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$BigPictureStyle;->mBigLargeIcon:Landroid/graphics/drawable/Icon;
+Landroid/app/Notification$BigPictureStyle;->mBigLargeIconSet:Z
+Landroid/app/Notification$BigPictureStyle;->MIN_ASHMEM_BITMAP_SIZE:I
+Landroid/app/Notification$BigPictureStyle;->mPicture:Landroid/graphics/Bitmap;
+Landroid/app/Notification$BigPictureStyle;->purgeResources()V
+Landroid/app/Notification$BigPictureStyle;->reduceImageSizes(Landroid/content/Context;)V
+Landroid/app/Notification$BigPictureStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$BigTextStyle;->addExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$BigTextStyle;->applyBigTextContentView(Landroid/app/Notification$Builder;Landroid/widget/RemoteViews;Ljava/lang/CharSequence;)V
+Landroid/app/Notification$BigTextStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+Landroid/app/Notification$BigTextStyle;->getBigText()Ljava/lang/CharSequence;
+Landroid/app/Notification$BigTextStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$BigTextStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$BigTextStyle;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$BigTextStyle;->mBigText:Ljava/lang/CharSequence;
+Landroid/app/Notification$BigTextStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$Builder;-><init>(Landroid/content/Context;Landroid/app/Notification;)V
+Landroid/app/Notification$Builder;->applyStandardTemplate(ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->applyStandardTemplate(ILandroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->applyStandardTemplate(IZLandroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->applyStandardTemplateWithActions(ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->applyStandardTemplateWithActions(ILandroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->bindActivePermissions(Landroid/widget/RemoteViews;Z)V
+Landroid/app/Notification$Builder;->bindExpandButton(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->bindHeaderAppName(Landroid/widget/RemoteViews;Z)V
+Landroid/app/Notification$Builder;->bindHeaderChronometerAndTime(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->bindHeaderText(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->bindHeaderTextSecondary(Landroid/widget/RemoteViews;Ljava/lang/CharSequence;)V
+Landroid/app/Notification$Builder;->bindLargeIcon(Landroid/widget/RemoteViews;Z)Z
+Landroid/app/Notification$Builder;->bindLargeIconAndReply(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)V
+Landroid/app/Notification$Builder;->bindNotificationHeader(Landroid/widget/RemoteViews;ZLjava/lang/CharSequence;)V
+Landroid/app/Notification$Builder;->bindProfileBadge(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->bindReplyIcon(Landroid/widget/RemoteViews;Z)Z
+Landroid/app/Notification$Builder;->bindSmallIcon(Landroid/widget/RemoteViews;Z)V
+Landroid/app/Notification$Builder;->buildInto(Landroid/app/Notification;)Landroid/app/Notification;
+Landroid/app/Notification$Builder;->buildUnstyled()Landroid/app/Notification;
+Landroid/app/Notification$Builder;->calculateMarginEnd(ZZ)I
+Landroid/app/Notification$Builder;->createContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->createHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->createSummaryText()Ljava/lang/CharSequence;
+Landroid/app/Notification$Builder;->ensureColors()V
+Landroid/app/Notification$Builder;->ensureColorSpanContrast(Ljava/lang/CharSequence;I[Landroid/content/res/ColorStateList;)Ljava/lang/CharSequence;
+Landroid/app/Notification$Builder;->EXTRA_REBUILD_BIG_CONTENT_VIEW_ACTION_COUNT:Ljava/lang/String;
+Landroid/app/Notification$Builder;->EXTRA_REBUILD_CONTENT_VIEW_ACTION_COUNT:Ljava/lang/String;
+Landroid/app/Notification$Builder;->EXTRA_REBUILD_HEADS_UP_CONTENT_VIEW_ACTION_COUNT:Ljava/lang/String;
+Landroid/app/Notification$Builder;->findReplyAction()Landroid/app/Notification$Action;
+Landroid/app/Notification$Builder;->generateActionButton(Landroid/app/Notification$Action;ZZ)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->getActionLayoutResource()I
+Landroid/app/Notification$Builder;->getActionTombstoneLayoutResource()I
+Landroid/app/Notification$Builder;->getAllExtras()Landroid/os/Bundle;
+Landroid/app/Notification$Builder;->getBackgroundColor()I
+Landroid/app/Notification$Builder;->getBigBaseLayoutResource()I
+Landroid/app/Notification$Builder;->getBigPictureLayoutResource()I
+Landroid/app/Notification$Builder;->getBigTextLayoutResource()I
+Landroid/app/Notification$Builder;->getColorUtil()Lcom/android/internal/util/NotificationColorUtil;
+Landroid/app/Notification$Builder;->getEmphasizedActionLayoutResource()I
+Landroid/app/Notification$Builder;->getHeadsUpStatusBarText(Z)Ljava/lang/CharSequence;
+Landroid/app/Notification$Builder;->getInboxLayoutResource()I
+Landroid/app/Notification$Builder;->getMessagingLayoutResource()I
+Landroid/app/Notification$Builder;->getNeutralColor()I
+Landroid/app/Notification$Builder;->getPrimaryTextColor()I
+Landroid/app/Notification$Builder;->getProfileBadge()Landroid/graphics/Bitmap;
+Landroid/app/Notification$Builder;->getProfileBadgeDrawable()Landroid/graphics/drawable/Drawable;
+Landroid/app/Notification$Builder;->getSecondaryTextColor()I
+Landroid/app/Notification$Builder;->handleProgressBar(ZLandroid/widget/RemoteViews;Landroid/os/Bundle;)Z
+Landroid/app/Notification$Builder;->hasForegroundColor()Z
+Landroid/app/Notification$Builder;->hasValidRemoteInput(Landroid/app/Notification$Action;)Z
+Landroid/app/Notification$Builder;->hideLine1Text(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->isColorized()Z
+Landroid/app/Notification$Builder;->isLegacy()Z
+Landroid/app/Notification$Builder;->LIGHTNESS_TEXT_DIFFERENCE_DARK:I
+Landroid/app/Notification$Builder;->LIGHTNESS_TEXT_DIFFERENCE_LIGHT:I
+Landroid/app/Notification$Builder;->makeAmbientNotification()Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->makeHeaderExpanded(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->makeLowPriorityContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->makeNotificationHeader(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->makePublicAmbientNotification()Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->makePublicView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Builder;->MAX_ACTION_BUTTONS:I
+Landroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;ZLandroid/content/Context;)Landroid/app/Notification;
+Landroid/app/Notification$Builder;->mBackgroundColor:I
+Landroid/app/Notification$Builder;->mCachedAmbientColor:I
+Landroid/app/Notification$Builder;->mCachedAmbientColorIsFor:I
+Landroid/app/Notification$Builder;->mCachedContrastColor:I
+Landroid/app/Notification$Builder;->mCachedContrastColorIsFor:I
+Landroid/app/Notification$Builder;->mColorUtil:Lcom/android/internal/util/NotificationColorUtil;
+Landroid/app/Notification$Builder;->mContext:Landroid/content/Context;
+Landroid/app/Notification$Builder;->mForegroundColor:I
+Landroid/app/Notification$Builder;->mInNightMode:Z
+Landroid/app/Notification$Builder;->mIsLegacy:Z
+Landroid/app/Notification$Builder;->mIsLegacyInitialized:Z
+Landroid/app/Notification$Builder;->mN:Landroid/app/Notification;
+Landroid/app/Notification$Builder;->mNeutralColor:I
+Landroid/app/Notification$Builder;->mOriginalActions:Ljava/util/ArrayList;
+Landroid/app/Notification$Builder;->mParams:Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$Builder;->mPersonList:Ljava/util/ArrayList;
+Landroid/app/Notification$Builder;->mPrimaryTextColor:I
+Landroid/app/Notification$Builder;->mRebuildStyledRemoteViews:Z
+Landroid/app/Notification$Builder;->mSecondaryTextColor:I
+Landroid/app/Notification$Builder;->mStyle:Landroid/app/Notification$Style;
+Landroid/app/Notification$Builder;->mTextColorsAreForBackground:I
+Landroid/app/Notification$Builder;->mTintActionButtons:Z
+Landroid/app/Notification$Builder;->mUserExtras:Landroid/os/Bundle;
+Landroid/app/Notification$Builder;->processLargeLegacyIcon(Landroid/graphics/drawable/Icon;Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->processLegacyText(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/app/Notification$Builder;->processLegacyText(Ljava/lang/CharSequence;Z)Ljava/lang/CharSequence;
+Landroid/app/Notification$Builder;->processSmallIconColor(Landroid/graphics/drawable/Icon;Landroid/widget/RemoteViews;Z)V
+Landroid/app/Notification$Builder;->processTextSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/app/Notification$Builder;->resetNotificationHeader(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->resetStandardTemplate(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->resetStandardTemplateWithActions(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$Builder;->resolveAmbientColor()I
+Landroid/app/Notification$Builder;->resolveBackgroundColor()I
+Landroid/app/Notification$Builder;->resolveContrastColor()I
+Landroid/app/Notification$Builder;->resolveNeutralColor()I
+Landroid/app/Notification$Builder;->sanitizeColor()V
+Landroid/app/Notification$Builder;->setColorPalette(II)V
+Landroid/app/Notification$Builder;->setContentMinHeight(Landroid/widget/RemoteViews;Z)V
+Landroid/app/Notification$Builder;->setFlag(IZ)Landroid/app/Notification$Builder;
+Landroid/app/Notification$Builder;->setHideSmartReplies(Z)Landroid/app/Notification$Builder;
+Landroid/app/Notification$Builder;->setRebuildStyledRemoteViews(Z)V
+Landroid/app/Notification$Builder;->setShowRemoteInputSpinner(Z)Landroid/app/Notification$Builder;
+Landroid/app/Notification$Builder;->setTextViewColorPrimary(Landroid/widget/RemoteViews;I)V
+Landroid/app/Notification$Builder;->setTextViewColorSecondary(Landroid/widget/RemoteViews;I)V
+Landroid/app/Notification$Builder;->shouldTintActionButtons()Z
+Landroid/app/Notification$Builder;->showsTimeOrChronometer()Z
+Landroid/app/Notification$Builder;->textColorsNeedInversion()Z
+Landroid/app/Notification$Builder;->updateBackgroundColor(Landroid/widget/RemoteViews;)V
+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
+Landroid/app/Notification$CarExtender$Builder;->mMessages:Ljava/util/List;
+Landroid/app/Notification$CarExtender$Builder;->mParticipant:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$Builder;->mReadPendingIntent:Landroid/app/PendingIntent;
+Landroid/app/Notification$CarExtender$Builder;->mRemoteInput:Landroid/app/RemoteInput;
+Landroid/app/Notification$CarExtender$Builder;->mReplyPendingIntent:Landroid/app/PendingIntent;
+Landroid/app/Notification$CarExtender$UnreadConversation;-><init>([Ljava/lang/String;Landroid/app/RemoteInput;Landroid/app/PendingIntent;Landroid/app/PendingIntent;[Ljava/lang/String;J)V
+Landroid/app/Notification$CarExtender$UnreadConversation;->getBundleForUnreadConversation()Landroid/os/Bundle;
+Landroid/app/Notification$CarExtender$UnreadConversation;->getUnreadConversationFromBundle(Landroid/os/Bundle;)Landroid/app/Notification$CarExtender$UnreadConversation;
+Landroid/app/Notification$CarExtender$UnreadConversation;->KEY_AUTHOR:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->KEY_MESSAGES:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->KEY_ON_READ:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->KEY_ON_REPLY:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->KEY_PARTICIPANTS:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->KEY_REMOTE_INPUT:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->KEY_TEXT:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->KEY_TIMESTAMP:Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->mLatestTimestamp:J
+Landroid/app/Notification$CarExtender$UnreadConversation;->mMessages:[Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->mParticipants:[Ljava/lang/String;
+Landroid/app/Notification$CarExtender$UnreadConversation;->mReadPendingIntent:Landroid/app/PendingIntent;
+Landroid/app/Notification$CarExtender$UnreadConversation;->mRemoteInput:Landroid/app/RemoteInput;
+Landroid/app/Notification$CarExtender$UnreadConversation;->mReplyPendingIntent:Landroid/app/PendingIntent;
+Landroid/app/Notification$CarExtender;->EXTRA_CAR_EXTENDER:Ljava/lang/String;
+Landroid/app/Notification$CarExtender;->EXTRA_COLOR:Ljava/lang/String;
+Landroid/app/Notification$CarExtender;->EXTRA_CONVERSATION:Ljava/lang/String;
+Landroid/app/Notification$CarExtender;->EXTRA_LARGE_ICON:Ljava/lang/String;
+Landroid/app/Notification$CarExtender;->mColor:I
+Landroid/app/Notification$CarExtender;->mLargeIcon:Landroid/graphics/Bitmap;
+Landroid/app/Notification$CarExtender;->mUnreadConversation:Landroid/app/Notification$CarExtender$UnreadConversation;
+Landroid/app/Notification$CarExtender;->TAG:Ljava/lang/String;
+Landroid/app/Notification$DecoratedCustomViewStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+Landroid/app/Notification$DecoratedCustomViewStyle;->buildIntoRemoteViewContent(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;Landroid/app/Notification$TemplateBindResult;)V
+Landroid/app/Notification$DecoratedCustomViewStyle;->displayCustomViewInline()Z
+Landroid/app/Notification$DecoratedCustomViewStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$DecoratedCustomViewStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$DecoratedCustomViewStyle;->makeDecoratedBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$DecoratedCustomViewStyle;->makeDecoratedHeadsUpContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$DecoratedCustomViewStyle;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$DecoratedCustomViewStyle;->makeStandardTemplateWithCustomContent(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews;
+Landroid/app/Notification$DecoratedMediaCustomViewStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+Landroid/app/Notification$DecoratedMediaCustomViewStyle;->buildIntoRemoteView(Landroid/widget/RemoteViews;ILandroid/widget/RemoteViews;)Landroid/widget/RemoteViews;
+Landroid/app/Notification$DecoratedMediaCustomViewStyle;->displayCustomViewInline()Z
+Landroid/app/Notification$DecoratedMediaCustomViewStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+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;
+Landroid/app/Notification$InboxStyle;->handleInboxImageMargin(Landroid/widget/RemoteViews;IZI)V
+Landroid/app/Notification$InboxStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$InboxStyle;->mTexts:Ljava/util/ArrayList;
+Landroid/app/Notification$InboxStyle;->NUMBER_OF_HISTORY_ALLOWED_UNTIL_REDUCTION:I
+Landroid/app/Notification$InboxStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$MediaStyle;->addExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$MediaStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+Landroid/app/Notification$MediaStyle;->generateMediaActionButton(Landroid/app/Notification$Action;I)Landroid/widget/RemoteViews;
+Landroid/app/Notification$MediaStyle;->getActionColor()I
+Landroid/app/Notification$MediaStyle;->handleImage(Landroid/widget/RemoteViews;)V
+Landroid/app/Notification$MediaStyle;->hasProgress()Z
+Landroid/app/Notification$MediaStyle;->mActionsToShowInCompact:[I
+Landroid/app/Notification$MediaStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$MediaStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$MediaStyle;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$MediaStyle;->makeMediaBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$MediaStyle;->makeMediaContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$MediaStyle;->MAX_MEDIA_BUTTONS:I
+Landroid/app/Notification$MediaStyle;->MAX_MEDIA_BUTTONS_IN_COMPACT:I
+Landroid/app/Notification$MediaStyle;->mToken:Landroid/media/session/MediaSession$Token;
+Landroid/app/Notification$MediaStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;Z)V
+Landroid/app/Notification$MessagingStyle$Message;->getBundleArrayForMessages(Ljava/util/List;)[Landroid/os/Bundle;
+Landroid/app/Notification$MessagingStyle$Message;->getMessageFromBundle(Landroid/os/Bundle;)Landroid/app/Notification$MessagingStyle$Message;
+Landroid/app/Notification$MessagingStyle$Message;->getMessagesFromBundleArray([Landroid/os/Parcelable;)Ljava/util/List;
+Landroid/app/Notification$MessagingStyle$Message;->isRemoteInputHistory()Z
+Landroid/app/Notification$MessagingStyle$Message;->KEY_DATA_MIME_TYPE:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->KEY_DATA_URI:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->KEY_EXTRAS_BUNDLE:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->KEY_REMOTE_INPUT_HISTORY:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->KEY_SENDER:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->KEY_SENDER_PERSON:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->KEY_TEXT:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->KEY_TIMESTAMP:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->mDataMimeType:Ljava/lang/String;
+Landroid/app/Notification$MessagingStyle$Message;->mDataUri:Landroid/net/Uri;
+Landroid/app/Notification$MessagingStyle$Message;->mExtras:Landroid/os/Bundle;
+Landroid/app/Notification$MessagingStyle$Message;->mRemoteInputHistory:Z
+Landroid/app/Notification$MessagingStyle$Message;->mSender:Landroid/app/Person;
+Landroid/app/Notification$MessagingStyle$Message;->mText:Ljava/lang/CharSequence;
+Landroid/app/Notification$MessagingStyle$Message;->mTimestamp:J
+Landroid/app/Notification$MessagingStyle$Message;->toBundle()Landroid/os/Bundle;
+Landroid/app/Notification$MessagingStyle;-><init>()V
+Landroid/app/Notification$MessagingStyle;->addExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$MessagingStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+Landroid/app/Notification$MessagingStyle;->createConversationTitleFromMessages()Ljava/lang/CharSequence;
+Landroid/app/Notification$MessagingStyle;->findLatestIncomingMessage()Landroid/app/Notification$MessagingStyle$Message;
+Landroid/app/Notification$MessagingStyle;->findLatestIncomingMessage(Ljava/util/List;)Landroid/app/Notification$MessagingStyle$Message;
+Landroid/app/Notification$MessagingStyle;->fixTitleAndTextExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$MessagingStyle;->getHeadsUpStatusBarText()Ljava/lang/CharSequence;
+Landroid/app/Notification$MessagingStyle;->hasOnlyWhiteSpaceSenders()Z
+Landroid/app/Notification$MessagingStyle;->isWhiteSpace(Ljava/lang/CharSequence;)Z
+Landroid/app/Notification$MessagingStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$MessagingStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$MessagingStyle;->makeFontColorSpan(I)Landroid/text/style/TextAppearanceSpan;
+Landroid/app/Notification$MessagingStyle;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$MessagingStyle;->makeMessagingView(ZZ)Landroid/widget/RemoteViews;
+Landroid/app/Notification$MessagingStyle;->mConversationTitle:Ljava/lang/CharSequence;
+Landroid/app/Notification$MessagingStyle;->mHistoricMessages:Ljava/util/List;
+Landroid/app/Notification$MessagingStyle;->mIsGroupConversation:Z
+Landroid/app/Notification$MessagingStyle;->mMessages:Ljava/util/List;
+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
+Landroid/app/Notification$StandardTemplateParams;->fillTextsFrom(Landroid/app/Notification$Builder;)Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->hasProgress(Z)Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->hasProgress:Z
+Landroid/app/Notification$StandardTemplateParams;->headerTextSecondary(Ljava/lang/CharSequence;)Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->headerTextSecondary:Ljava/lang/CharSequence;
+Landroid/app/Notification$StandardTemplateParams;->hideLargeIcon(Z)Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->hideLargeIcon:Z
+Landroid/app/Notification$StandardTemplateParams;->hideReplyIcon(Z)Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->hideReplyIcon:Z
+Landroid/app/Notification$StandardTemplateParams;->maxRemoteInputHistory:I
+Landroid/app/Notification$StandardTemplateParams;->reset()Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->setMaxRemoteInputHistory(I)Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->text(Ljava/lang/CharSequence;)Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->text:Ljava/lang/CharSequence;
+Landroid/app/Notification$StandardTemplateParams;->title(Ljava/lang/CharSequence;)Landroid/app/Notification$StandardTemplateParams;
+Landroid/app/Notification$StandardTemplateParams;->title:Ljava/lang/CharSequence;
+Landroid/app/Notification$Style;->addExtras(Landroid/os/Bundle;)V
+Landroid/app/Notification$Style;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+Landroid/app/Notification$Style;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification;
+Landroid/app/Notification$Style;->displayCustomViewInline()Z
+Landroid/app/Notification$Style;->getHeadsUpStatusBarText()Ljava/lang/CharSequence;
+Landroid/app/Notification$Style;->getStandardView(ILandroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Style;->hasProgress()Z
+Landroid/app/Notification$Style;->hasSummaryInHeader()Z
+Landroid/app/Notification$Style;->makeBigContentView()Landroid/widget/RemoteViews;
+Landroid/app/Notification$Style;->makeContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Style;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+Landroid/app/Notification$Style;->MAX_REMOTE_INPUT_HISTORY_LINES:I
+Landroid/app/Notification$Style;->mBigContentTitle:Ljava/lang/CharSequence;
+Landroid/app/Notification$Style;->mSummaryText:Ljava/lang/CharSequence;
+Landroid/app/Notification$Style;->mSummaryTextSet:Z
+Landroid/app/Notification$Style;->purgeResources()V
+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
+Landroid/app/Notification$TemplateBindResult;->setIconMarginEnd(I)V
+Landroid/app/Notification$TvExtender;->EXTRA_CHANNEL_ID:Ljava/lang/String;
+Landroid/app/Notification$TvExtender;->EXTRA_CONTENT_INTENT:Ljava/lang/String;
+Landroid/app/Notification$TvExtender;->EXTRA_DELETE_INTENT:Ljava/lang/String;
+Landroid/app/Notification$TvExtender;->EXTRA_FLAGS:Ljava/lang/String;
+Landroid/app/Notification$TvExtender;->EXTRA_SUPPRESS_SHOW_OVER_APPS:Ljava/lang/String;
+Landroid/app/Notification$TvExtender;->EXTRA_TV_EXTENDER:Ljava/lang/String;
+Landroid/app/Notification$TvExtender;->FLAG_AVAILABLE_ON_TV:I
+Landroid/app/Notification$TvExtender;->mChannelId:Ljava/lang/String;
+Landroid/app/Notification$TvExtender;->mContentIntent:Landroid/app/PendingIntent;
+Landroid/app/Notification$TvExtender;->mDeleteIntent:Landroid/app/PendingIntent;
+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
+Landroid/app/Notification$WearableExtender;->EXTRA_WEARABLE_EXTENSIONS:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->FLAG_BIG_PICTURE_AMBIENT:I
+Landroid/app/Notification$WearableExtender;->FLAG_CONTENT_INTENT_AVAILABLE_OFFLINE:I
+Landroid/app/Notification$WearableExtender;->FLAG_HINT_AVOID_BACKGROUND_CLIPPING:I
+Landroid/app/Notification$WearableExtender;->FLAG_HINT_CONTENT_INTENT_LAUNCHES_ACTIVITY:I
+Landroid/app/Notification$WearableExtender;->FLAG_HINT_HIDE_ICON:I
+Landroid/app/Notification$WearableExtender;->FLAG_HINT_SHOW_BACKGROUND_ONLY:I
+Landroid/app/Notification$WearableExtender;->FLAG_START_SCROLL_BOTTOM:I
+Landroid/app/Notification$WearableExtender;->KEY_ACTIONS:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_BACKGROUND:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_BRIDGE_TAG:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_CONTENT_ACTION_INDEX:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_CONTENT_ICON:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_CONTENT_ICON_GRAVITY:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_CUSTOM_CONTENT_HEIGHT:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_CUSTOM_SIZE_PRESET:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_DISMISSAL_ID:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_DISPLAY_INTENT:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_FLAGS:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_GRAVITY:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_HINT_SCREEN_TIMEOUT:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->KEY_PAGES:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->mActions:Ljava/util/ArrayList;
+Landroid/app/Notification$WearableExtender;->mBackground:Landroid/graphics/Bitmap;
+Landroid/app/Notification$WearableExtender;->mBridgeTag:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->mContentActionIndex:I
+Landroid/app/Notification$WearableExtender;->mContentIcon:I
+Landroid/app/Notification$WearableExtender;->mContentIconGravity:I
+Landroid/app/Notification$WearableExtender;->mCustomContentHeight:I
+Landroid/app/Notification$WearableExtender;->mCustomSizePreset:I
+Landroid/app/Notification$WearableExtender;->mDismissalId:Ljava/lang/String;
+Landroid/app/Notification$WearableExtender;->mDisplayIntent:Landroid/app/PendingIntent;
+Landroid/app/Notification$WearableExtender;->mFlags:I
+Landroid/app/Notification$WearableExtender;->mGravity:I
+Landroid/app/Notification$WearableExtender;->mHintScreenTimeout:I
+Landroid/app/Notification$WearableExtender;->mPages:Ljava/util/ArrayList;
+Landroid/app/Notification$WearableExtender;->setFlag(IZ)V
+Landroid/app/Notification;->addFieldsFromContext(Landroid/content/Context;Landroid/app/Notification;)V
+Landroid/app/Notification;->addFieldsFromContext(Landroid/content/pm/ApplicationInfo;Landroid/app/Notification;)V
+Landroid/app/Notification;->areActionsVisiblyDifferent(Landroid/app/Notification;Landroid/app/Notification;)Z
+Landroid/app/Notification;->areRemoteViewsChanged(Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;)Z
+Landroid/app/Notification;->areRemoteViewsChanged(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;)Z
+Landroid/app/Notification;->areStyledNotificationsVisiblyDifferent(Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;)Z
+Landroid/app/Notification;->cloneInto(Landroid/app/Notification;Z)V
+Landroid/app/Notification;->COLOR_INVALID:I
+Landroid/app/Notification;->creationTime:J
+Landroid/app/Notification;->EXTRA_BUILDER_APPLICATION_INFO:Ljava/lang/String;
+Landroid/app/Notification;->EXTRA_CONTAINS_CUSTOM_VIEW:Ljava/lang/String;
+Landroid/app/Notification;->EXTRA_FOREGROUND_APPS:Ljava/lang/String;
+Landroid/app/Notification;->EXTRA_HIDE_SMART_REPLIES:Ljava/lang/String;
+Landroid/app/Notification;->EXTRA_REDUCED_IMAGES:Ljava/lang/String;
+Landroid/app/Notification;->EXTRA_SHOW_REMOTE_INPUT_SPINNER:Ljava/lang/String;
+Landroid/app/Notification;->fixDuplicateExtra(Landroid/os/Parcelable;Ljava/lang/String;)V
+Landroid/app/Notification;->fixDuplicateExtras()V
+Landroid/app/Notification;->FLAG_CAN_COLORIZE:I
+Landroid/app/Notification;->getNotificationArrayFromBundle(Landroid/os/Bundle;Ljava/lang/String;)[Landroid/app/Notification;
+Landroid/app/Notification;->getNotificationStyle()Ljava/lang/Class;
+Landroid/app/Notification;->hasColorizedPermission()Z
+Landroid/app/Notification;->hasCompletedProgress()Z
+Landroid/app/Notification;->hasLargeIcon()Z
+Landroid/app/Notification;->hasMediaSession()Z
+Landroid/app/Notification;->isColorized()Z
+Landroid/app/Notification;->isColorizedMedia()Z
+Landroid/app/Notification;->isForegroundService()Z
+Landroid/app/Notification;->isMediaNotification()Z
+Landroid/app/Notification;->lightenPayload()V
+Landroid/app/Notification;->MAX_CHARSEQUENCE_LENGTH:I
+Landroid/app/Notification;->MAX_REPLY_HISTORY:I
+Landroid/app/Notification;->mBadgeIcon:I
+Landroid/app/Notification;->mGroupAlertBehavior:I
+Landroid/app/Notification;->mSettingsText:Ljava/lang/CharSequence;
+Landroid/app/Notification;->mShortcutId:Ljava/lang/String;
+Landroid/app/Notification;->mSortKey:Ljava/lang/String;
+Landroid/app/Notification;->mTimeout:J
+Landroid/app/Notification;->mUsesStandardHeader:Z
+Landroid/app/Notification;->mWhitelistToken:Landroid/os/IBinder;
+Landroid/app/Notification;->priorityToString(I)Ljava/lang/String;
+Landroid/app/Notification;->processWhitelistToken:Landroid/os/IBinder;
+Landroid/app/Notification;->readFromParcelImpl(Landroid/os/Parcel;)V
+Landroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V
+Landroid/app/Notification;->reduceImageSizesForRemoteView(Landroid/widget/RemoteViews;Landroid/content/Context;Z)V
+Landroid/app/Notification;->removeTextSizeSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/app/Notification;->safeCharSequence(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/app/Notification;->showsChronometer()Z
+Landroid/app/Notification;->showsTime()Z
+Landroid/app/Notification;->STANDARD_LAYOUTS:Landroid/util/ArraySet;
+Landroid/app/Notification;->suppressAlertingDueToGrouping()Z
+Landroid/app/Notification;->TAG:Ljava/lang/String;
+Landroid/app/Notification;->visibilityToString(I)Ljava/lang/String;
+Landroid/app/Notification;->visitUris(Ljava/util/function/Consumer;)V
+Landroid/app/Notification;->writeToParcelImpl(Landroid/os/Parcel;I)V
+Landroid/app/Notification;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+Landroid/app/NotificationChannel;-><init>(Landroid/os/Parcel;)V
+Landroid/app/NotificationChannel;->ATT_BLOCKABLE_SYSTEM:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_CONTENT_TYPE:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_DELETED:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_DESC:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_FG_SERVICE_SHOWN:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_FLAGS:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_GROUP:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_ID:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_IMPORTANCE:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_LIGHTS:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_LIGHT_COLOR:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_NAME:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_PRIORITY:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_SHOW_BADGE:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_SOUND:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_USAGE:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_USER_LOCKED:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_VIBRATION:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_VIBRATION_ENABLED:Ljava/lang/String;
+Landroid/app/NotificationChannel;->ATT_VISIBILITY:Ljava/lang/String;
+Landroid/app/NotificationChannel;->DEFAULT_DELETED:Z
+Landroid/app/NotificationChannel;->DEFAULT_IMPORTANCE:I
+Landroid/app/NotificationChannel;->DEFAULT_LIGHT_COLOR:I
+Landroid/app/NotificationChannel;->DEFAULT_SHOW_BADGE:Z
+Landroid/app/NotificationChannel;->DEFAULT_VISIBILITY:I
+Landroid/app/NotificationChannel;->DELIMITER:Ljava/lang/String;
+Landroid/app/NotificationChannel;->getSoundForBackup(Landroid/content/Context;)Landroid/net/Uri;
+Landroid/app/NotificationChannel;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/NotificationChannel;->isBlockableSystem()Z
+Landroid/app/NotificationChannel;->isFgServiceShown()Z
+Landroid/app/NotificationChannel;->LOCKABLE_FIELDS:[I
+Landroid/app/NotificationChannel;->lockFields(I)V
+Landroid/app/NotificationChannel;->longArrayToString([J)Ljava/lang/String;
+Landroid/app/NotificationChannel;->mAudioAttributes:Landroid/media/AudioAttributes;
+Landroid/app/NotificationChannel;->MAX_TEXT_LENGTH:I
+Landroid/app/NotificationChannel;->mBlockableSystem:Z
+Landroid/app/NotificationChannel;->mBypassDnd:Z
+Landroid/app/NotificationChannel;->mDeleted:Z
+Landroid/app/NotificationChannel;->mDesc:Ljava/lang/String;
+Landroid/app/NotificationChannel;->mFgServiceShown:Z
+Landroid/app/NotificationChannel;->mGroup:Ljava/lang/String;
+Landroid/app/NotificationChannel;->mImportance:I
+Landroid/app/NotificationChannel;->mLightColor:I
+Landroid/app/NotificationChannel;->mLights:Z
+Landroid/app/NotificationChannel;->mLockscreenVisibility:I
+Landroid/app/NotificationChannel;->mName:Ljava/lang/String;
+Landroid/app/NotificationChannel;->mShowBadge:Z
+Landroid/app/NotificationChannel;->mSound:Landroid/net/Uri;
+Landroid/app/NotificationChannel;->mUserLockedFields:I
+Landroid/app/NotificationChannel;->mVibration:[J
+Landroid/app/NotificationChannel;->mVibrationEnabled:Z
+Landroid/app/NotificationChannel;->populateFromXml(Lorg/xmlpull/v1/XmlPullParser;ZLandroid/content/Context;)V
+Landroid/app/NotificationChannel;->populateFromXmlForRestore(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/Context;)V
+Landroid/app/NotificationChannel;->restoreSoundUri(Landroid/content/Context;Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/app/NotificationChannel;->safeAudioAttributes(Lorg/xmlpull/v1/XmlPullParser;)Landroid/media/AudioAttributes;
+Landroid/app/NotificationChannel;->safeBool(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+Landroid/app/NotificationChannel;->safeInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+Landroid/app/NotificationChannel;->safeLongArray(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[J)[J
+Landroid/app/NotificationChannel;->safeUri(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/app/NotificationChannel;->setDeleted(Z)V
+Landroid/app/NotificationChannel;->setFgServiceShown(Z)V
+Landroid/app/NotificationChannel;->TAG_CHANNEL:Ljava/lang/String;
+Landroid/app/NotificationChannel;->tryParseInt(Ljava/lang/String;I)I
+Landroid/app/NotificationChannel;->unlockFields(I)V
+Landroid/app/NotificationChannel;->USER_LOCKED_IMPORTANCE:I
+Landroid/app/NotificationChannel;->USER_LOCKED_LIGHTS:I
+Landroid/app/NotificationChannel;->USER_LOCKED_PRIORITY:I
+Landroid/app/NotificationChannel;->USER_LOCKED_SHOW_BADGE:I
+Landroid/app/NotificationChannel;->USER_LOCKED_SOUND:I
+Landroid/app/NotificationChannel;->USER_LOCKED_VIBRATION:I
+Landroid/app/NotificationChannel;->USER_LOCKED_VISIBILITY:I
+Landroid/app/NotificationChannel;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+Landroid/app/NotificationChannel;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZLandroid/content/Context;)V
+Landroid/app/NotificationChannel;->writeXmlForBackup(Lorg/xmlpull/v1/XmlSerializer;Landroid/content/Context;)V
+Landroid/app/NotificationChannelGroup;-><init>(Landroid/os/Parcel;)V
+Landroid/app/NotificationChannelGroup;->addChannel(Landroid/app/NotificationChannel;)V
+Landroid/app/NotificationChannelGroup;->ATT_BLOCKED:Ljava/lang/String;
+Landroid/app/NotificationChannelGroup;->ATT_DESC:Ljava/lang/String;
+Landroid/app/NotificationChannelGroup;->ATT_ID:Ljava/lang/String;
+Landroid/app/NotificationChannelGroup;->ATT_NAME:Ljava/lang/String;
+Landroid/app/NotificationChannelGroup;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/NotificationChannelGroup;->MAX_TEXT_LENGTH:I
+Landroid/app/NotificationChannelGroup;->mBlocked:Z
+Landroid/app/NotificationChannelGroup;->mChannels:Ljava/util/List;
+Landroid/app/NotificationChannelGroup;->mDescription:Ljava/lang/String;
+Landroid/app/NotificationChannelGroup;->mName:Ljava/lang/CharSequence;
+Landroid/app/NotificationChannelGroup;->populateFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+Landroid/app/NotificationChannelGroup;->safeBool(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+Landroid/app/NotificationChannelGroup;->setChannels(Ljava/util/List;)V
+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
+Landroid/app/NotificationChannelProto;->DESCRIPTION:J
+Landroid/app/NotificationChannelProto;->FG_SERVICE_SHOWN:J
+Landroid/app/NotificationChannelProto;->GROUP:J
+Landroid/app/NotificationChannelProto;->ID:J
+Landroid/app/NotificationChannelProto;->IMPORTANCE:J
+Landroid/app/NotificationChannelProto;->IS_BLOCKABLE_SYSTEM:J
+Landroid/app/NotificationChannelProto;->IS_DELETED:J
+Landroid/app/NotificationChannelProto;->IS_VIBRATION_ENABLED:J
+Landroid/app/NotificationChannelProto;->LIGHT_COLOR:J
+Landroid/app/NotificationChannelProto;->LOCKSCREEN_VISIBILITY:J
+Landroid/app/NotificationChannelProto;->NAME:J
+Landroid/app/NotificationChannelProto;->SHOW_BADGE:J
+Landroid/app/NotificationChannelProto;->SOUND:J
+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
+Landroid/app/NotificationManager$Policy;->ALL_SUPPRESSED_EFFECTS:[I
+Landroid/app/NotificationManager$Policy;->areAllVisualEffectsSuppressed(I)Z
+Landroid/app/NotificationManager$Policy;->areAnyScreenOffEffectsSuppressed(I)Z
+Landroid/app/NotificationManager$Policy;->areAnyScreenOnEffectsSuppressed(I)Z
+Landroid/app/NotificationManager$Policy;->bitwiseToProtoEnum(Landroid/util/proto/ProtoOutputStream;JI)V
+Landroid/app/NotificationManager$Policy;->effectToString(I)Ljava/lang/String;
+Landroid/app/NotificationManager$Policy;->getAllSuppressedVisualEffects()I
+Landroid/app/NotificationManager$Policy;->priorityCategoryToString(I)Ljava/lang/String;
+Landroid/app/NotificationManager$Policy;->SCREEN_OFF_SUPPRESSED_EFFECTS:[I
+Landroid/app/NotificationManager$Policy;->SCREEN_ON_SUPPRESSED_EFFECTS:[I
+Landroid/app/NotificationManager$Policy;->state:I
+Landroid/app/NotificationManager$Policy;->STATE_CHANNELS_BYPASSING_DND:I
+Landroid/app/NotificationManager$Policy;->STATE_UNSET:I
+Landroid/app/NotificationManager$Policy;->SUPPRESSED_EFFECTS_UNSET:I
+Landroid/app/NotificationManager$Policy;->toggleEffects(I[IZ)I
+Landroid/app/NotificationManager$Policy;->toggleScreenOffEffectsSuppressed(IZ)I
+Landroid/app/NotificationManager$Policy;->toggleScreenOnEffectsSuppressed(IZ)I
+Landroid/app/NotificationManager$Policy;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+Landroid/app/NotificationManager;->ACTION_EFFECTS_SUPPRESSOR_CHANGED:Ljava/lang/String;
+Landroid/app/NotificationManager;->ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL:Ljava/lang/String;
+Landroid/app/NotificationManager;->checkRequired(Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/app/NotificationManager;->fixLegacySmallIcon(Landroid/app/Notification;Ljava/lang/String;)V
+Landroid/app/NotificationManager;->getEnabledNotificationListenerPackages()Ljava/util/List;
+Landroid/app/NotificationManager;->getEnabledNotificationListeners(I)Ljava/util/List;
+Landroid/app/NotificationManager;->getRuleInstanceCount(Landroid/content/ComponentName;)I
+Landroid/app/NotificationManager;->getZenMode()I
+Landroid/app/NotificationManager;->isNotificationAssistantAccessGranted(Landroid/content/ComponentName;)Z
+Landroid/app/NotificationManager;->isNotificationPolicyAccessGrantedForPackage(Ljava/lang/String;)Z
+Landroid/app/NotificationManager;->isSystemConditionProviderEnabled(Ljava/lang/String;)Z
+Landroid/app/NotificationManager;->localLOGV:Z
+Landroid/app/NotificationManager;->matchesCallFilter(Landroid/os/Bundle;)Z
+Landroid/app/NotificationManager;->mContext:Landroid/content/Context;
+Landroid/app/NotificationManager;->removeAutomaticZenRules(Ljava/lang/String;)Z
+Landroid/app/NotificationManager;->setNotificationListenerAccessGranted(Landroid/content/ComponentName;Z)V
+Landroid/app/NotificationManager;->setNotificationListenerAccessGrantedForUser(Landroid/content/ComponentName;IZ)V
+Landroid/app/NotificationManager;->setNotificationPolicyAccessGranted(Ljava/lang/String;Z)V
+Landroid/app/NotificationManager;->TAG:Ljava/lang/String;
+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
+Landroid/app/NotificationProto;->CHANNEL_ID:J
+Landroid/app/NotificationProto;->COLOR:J
+Landroid/app/NotificationProto;->FLAGS:J
+Landroid/app/NotificationProto;->GROUP_KEY:J
+Landroid/app/NotificationProto;->HAS_TICKER_TEXT:J
+Landroid/app/NotificationProto;->PUBLIC_VERSION:J
+Landroid/app/NotificationProto;->SORT_KEY:J
+Landroid/app/NotificationProto;->VISIBILITY:J
+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;
+Landroid/app/PendingIntent$FinishedDispatcher;->mPendingIntent:Landroid/app/PendingIntent;
+Landroid/app/PendingIntent$FinishedDispatcher;->mResultCode:I
+Landroid/app/PendingIntent$FinishedDispatcher;->mResultData:Ljava/lang/String;
+Landroid/app/PendingIntent$FinishedDispatcher;->mResultExtras:Landroid/os/Bundle;
+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
+Landroid/app/PendingIntent;->buildServicePendingIntent(Landroid/content/Context;ILandroid/content/Intent;II)Landroid/app/PendingIntent;
+Landroid/app/PendingIntent;->getActivitiesAsUser(Landroid/content/Context;I[Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent;
+Landroid/app/PendingIntent;->getTarget()Landroid/content/IIntentSender;
+Landroid/app/PendingIntent;->getWhitelistToken()Landroid/os/IBinder;
+Landroid/app/PendingIntent;->isForegroundService()Z
+Landroid/app/PendingIntent;->isTargetedToPackage()Z
+Landroid/app/PendingIntent;->mCancelListeners:Landroid/util/ArraySet;
+Landroid/app/PendingIntent;->mCancelReceiver:Lcom/android/internal/os/IResultReceiver;
+Landroid/app/PendingIntent;->mTarget:Landroid/content/IIntentSender;
+Landroid/app/PendingIntent;->mWhitelistToken:Landroid/os/IBinder;
+Landroid/app/PendingIntent;->notifyCancelListeners()V
+Landroid/app/PendingIntent;->registerCancelListener(Landroid/app/PendingIntent$CancelListener;)V
+Landroid/app/PendingIntent;->sendAndReturnResult(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)I
+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
+Landroid/app/Person$Builder;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/app/Person$Builder;->mIsBot:Z
+Landroid/app/Person$Builder;->mIsImportant:Z
+Landroid/app/Person$Builder;->mKey:Ljava/lang/String;
+Landroid/app/Person$Builder;->mName:Ljava/lang/CharSequence;
+Landroid/app/Person$Builder;->mUri:Ljava/lang/String;
+Landroid/app/Person;-><init>(Landroid/app/Person$Builder;)V
+Landroid/app/Person;-><init>(Landroid/os/Parcel;)V
+Landroid/app/Person;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/app/Person;->mIsBot:Z
+Landroid/app/Person;->mIsImportant:Z
+Landroid/app/Person;->mKey:Ljava/lang/String;
+Landroid/app/Person;->mName:Ljava/lang/CharSequence;
+Landroid/app/Person;->mUri:Ljava/lang/String;
+Landroid/app/Person;->resolveToLegacyUri()Ljava/lang/String;
+Landroid/app/PictureInPictureArgs$Builder;->mAspectRatio:Landroid/util/Rational;
+Landroid/app/PictureInPictureArgs$Builder;->mSourceRectHint:Landroid/graphics/Rect;
+Landroid/app/PictureInPictureArgs$Builder;->mUserActions:Ljava/util/List;
+Landroid/app/PictureInPictureArgs;-><init>(FLjava/util/List;)V
+Landroid/app/PictureInPictureArgs;-><init>(Landroid/os/Parcel;)V
+Landroid/app/PictureInPictureArgs;-><init>(Landroid/util/Rational;Ljava/util/List;Landroid/graphics/Rect;)V
+Landroid/app/PictureInPictureArgs;->copyOnlySet(Landroid/app/PictureInPictureArgs;)V
+Landroid/app/PictureInPictureArgs;->getActions()Ljava/util/List;
+Landroid/app/PictureInPictureArgs;->getAspectRatio()F
+Landroid/app/PictureInPictureArgs;->getAspectRatioRational()Landroid/util/Rational;
+Landroid/app/PictureInPictureArgs;->getSourceRectHint()Landroid/graphics/Rect;
+Landroid/app/PictureInPictureArgs;->getSourceRectHintInsets()Landroid/graphics/Rect;
+Landroid/app/PictureInPictureArgs;->hasSetActions()Z
+Landroid/app/PictureInPictureArgs;->hasSetAspectRatio()Z
+Landroid/app/PictureInPictureArgs;->hasSourceBoundsHint()Z
+Landroid/app/PictureInPictureArgs;->hasSourceBoundsHintInsets()Z
+Landroid/app/PictureInPictureArgs;->mAspectRatio:Landroid/util/Rational;
+Landroid/app/PictureInPictureArgs;->mSourceRectHint:Landroid/graphics/Rect;
+Landroid/app/PictureInPictureArgs;->mSourceRectHintInsets:Landroid/graphics/Rect;
+Landroid/app/PictureInPictureArgs;->mUserActions:Ljava/util/List;
+Landroid/app/PictureInPictureArgs;->setSourceRectHint(Landroid/graphics/Rect;)V
+Landroid/app/PictureInPictureArgs;->setSourceRectHintInsets(Landroid/graphics/Rect;)V
+Landroid/app/PictureInPictureArgs;->truncateActions(I)V
+Landroid/app/PictureInPictureParams$Builder;->mAspectRatio:Landroid/util/Rational;
+Landroid/app/PictureInPictureParams$Builder;->mSourceRectHint:Landroid/graphics/Rect;
+Landroid/app/PictureInPictureParams$Builder;->mUserActions:Ljava/util/List;
+Landroid/app/PictureInPictureParams;-><init>()V
+Landroid/app/PictureInPictureParams;-><init>(Landroid/os/Parcel;)V
+Landroid/app/PictureInPictureParams;-><init>(Landroid/util/Rational;Ljava/util/List;Landroid/graphics/Rect;)V
+Landroid/app/PictureInPictureParams;->copyOnlySet(Landroid/app/PictureInPictureParams;)V
+Landroid/app/PictureInPictureParams;->getAspectRatioRational()Landroid/util/Rational;
+Landroid/app/PictureInPictureParams;->hasSetActions()Z
+Landroid/app/PictureInPictureParams;->hasSetAspectRatio()Z
+Landroid/app/PictureInPictureParams;->hasSourceBoundsHint()Z
+Landroid/app/PictureInPictureParams;->mAspectRatio:Landroid/util/Rational;
+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
+Landroid/app/PolicyProto;->CALLS:I
+Landroid/app/PolicyProto;->CATEGORY_UNKNOWN:I
+Landroid/app/PolicyProto;->CONTACTS:I
+Landroid/app/PolicyProto;->EVENTS:I
+Landroid/app/PolicyProto;->MEDIA_SYSTEM_OTHER:I
+Landroid/app/PolicyProto;->MESSAGES:I
+Landroid/app/PolicyProto;->PRIORITY_CALL_SENDER:J
+Landroid/app/PolicyProto;->PRIORITY_CATEGORIES:J
+Landroid/app/PolicyProto;->PRIORITY_MESSAGE_SENDER:J
+Landroid/app/PolicyProto;->REMINDERS:I
+Landroid/app/PolicyProto;->REPEAT_CALLERS:I
+Landroid/app/PolicyProto;->SCREEN_OFF:I
+Landroid/app/PolicyProto;->SCREEN_ON:I
+Landroid/app/PolicyProto;->STARRED:I
+Landroid/app/PolicyProto;->SUPPRESSED_VISUAL_EFFECTS:J
+Landroid/app/PolicyProto;->SVE_UNKNOWN:I
+Landroid/app/Presentation;->handleDisplayChanged()V
+Landroid/app/Presentation;->handleDisplayRemoved()V
+Landroid/app/Presentation;->isConfigurationStillValid()Z
+Landroid/app/Presentation;->mDisplay:Landroid/view/Display;
+Landroid/app/Presentation;->mDisplayListener:Landroid/hardware/display/DisplayManager$DisplayListener;
+Landroid/app/Presentation;->mDisplayManager:Landroid/hardware/display/DisplayManager;
+Landroid/app/Presentation;->mHandler:Landroid/os/Handler;
+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
+Landroid/app/ProcessMemoryState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/ProcessMemoryState;->oomScore:I
+Landroid/app/ProcessMemoryState;->pgfault:J
+Landroid/app/ProcessMemoryState;->pgmajfault:J
+Landroid/app/ProcessMemoryState;->processName:Ljava/lang/String;
+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
+Landroid/app/ProfilerInfo;->agent:Ljava/lang/String;
+Landroid/app/ProfilerInfo;->attachAgentDuringBind:Z
+Landroid/app/ProfilerInfo;->autoStopProfiler:Z
+Landroid/app/ProfilerInfo;->closeFd()V
+Landroid/app/ProfilerInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/ProfilerInfo;->profileFd:Landroid/os/ParcelFileDescriptor;
+Landroid/app/ProfilerInfo;->profileFile:Ljava/lang/String;
+Landroid/app/ProfilerInfo;->samplingInterval:I
+Landroid/app/ProfilerInfo;->setAgent(Ljava/lang/String;Z)Landroid/app/ProfilerInfo;
+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
+Landroid/app/ProfilerInfoProto;->PROFILE_FD:J
+Landroid/app/ProfilerInfoProto;->PROFILE_FILE:J
+Landroid/app/ProfilerInfoProto;->SAMPLING_INTERVAL:J
+Landroid/app/ProfilerInfoProto;->STREAMING_OUTPUT:J
+Landroid/app/ProgressDialog;->initFormats()V
+Landroid/app/ProgressDialog;->mHasStarted:Z
+Landroid/app/ProgressDialog;->mIncrementBy:I
+Landroid/app/ProgressDialog;->mIncrementSecondaryBy:I
+Landroid/app/ProgressDialog;->mIndeterminate:Z
+Landroid/app/ProgressDialog;->mIndeterminateDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/app/ProgressDialog;->mMax:I
+Landroid/app/ProgressDialog;->mMessage:Ljava/lang/CharSequence;
+Landroid/app/ProgressDialog;->mProgressDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/app/ProgressDialog;->mProgressNumberFormat:Ljava/lang/String;
+Landroid/app/ProgressDialog;->mProgressPercent:Landroid/widget/TextView;
+Landroid/app/ProgressDialog;->mProgressPercentFormat:Ljava/text/NumberFormat;
+Landroid/app/ProgressDialog;->mProgressStyle:I
+Landroid/app/ProgressDialog;->mProgressVal:I
+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
+Landroid/app/QueuedWork;->hasPendingWork()Z
+Landroid/app/QueuedWork;->LOG_TAG:Ljava/lang/String;
+Landroid/app/QueuedWork;->MAX_WAIT_TIME_MILLIS:J
+Landroid/app/QueuedWork;->mNumWaits:I
+Landroid/app/QueuedWork;->mWaitTimes:Lcom/android/internal/util/ExponentiallyBucketedHistogram;
+Landroid/app/QueuedWork;->processPendingWork()V
+Landroid/app/QueuedWork;->sCanDelay:Z
+Landroid/app/QueuedWork;->sHandler:Landroid/os/Handler;
+Landroid/app/QueuedWork;->sLock:Ljava/lang/Object;
+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
+Landroid/app/RecoverableSecurityException;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/RecoverableSecurityException;->getUserAction()Landroid/app/RemoteAction;
+Landroid/app/RecoverableSecurityException;->getUserMessage()Ljava/lang/CharSequence;
+Landroid/app/RecoverableSecurityException;->mUserAction:Landroid/app/RemoteAction;
+Landroid/app/RecoverableSecurityException;->mUserMessage:Ljava/lang/CharSequence;
+Landroid/app/RecoverableSecurityException;->showAsDialog(Landroid/app/Activity;)V
+Landroid/app/RecoverableSecurityException;->showAsNotification(Landroid/content/Context;)V
+Landroid/app/RecoverableSecurityException;->showAsNotification(Landroid/content/Context;Ljava/lang/String;)V
+Landroid/app/RecoverableSecurityException;->TAG:Ljava/lang/String;
+Landroid/app/RemoteAction;-><init>(Landroid/os/Parcel;)V
+Landroid/app/RemoteAction;->mActionIntent:Landroid/app/PendingIntent;
+Landroid/app/RemoteAction;->mContentDescription:Ljava/lang/CharSequence;
+Landroid/app/RemoteAction;->mEnabled:Z
+Landroid/app/RemoteAction;->mIcon:Landroid/graphics/drawable/Icon;
+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
+Landroid/app/RemoteAnimationTargetProto;->IS_TRANSLUCENT:J
+Landroid/app/RemoteAnimationTargetProto;->LEASH:J
+Landroid/app/RemoteAnimationTargetProto;->MODE:J
+Landroid/app/RemoteAnimationTargetProto;->POSITION:J
+Landroid/app/RemoteAnimationTargetProto;->PREFIX_ORDER_INDEX:J
+Landroid/app/RemoteAnimationTargetProto;->SOURCE_CONTAINER_BOUNDS:J
+Landroid/app/RemoteAnimationTargetProto;->TASK_ID:J
+Landroid/app/RemoteAnimationTargetProto;->WINDOW_CONFIGURATION:J
+Landroid/app/RemoteInput$Builder;->mAllowedDataTypes:Landroid/util/ArraySet;
+Landroid/app/RemoteInput$Builder;->mChoices:[Ljava/lang/CharSequence;
+Landroid/app/RemoteInput$Builder;->mExtras:Landroid/os/Bundle;
+Landroid/app/RemoteInput$Builder;->mFlags:I
+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
+Landroid/app/RemoteInput;->EXTRA_DATA_TYPE_RESULTS_DATA:Ljava/lang/String;
+Landroid/app/RemoteInput;->EXTRA_RESULTS_SOURCE:Ljava/lang/String;
+Landroid/app/RemoteInput;->FLAG_ALLOW_FREE_FORM_INPUT:I
+Landroid/app/RemoteInput;->getClipDataIntentFromIntent(Landroid/content/Intent;)Landroid/content/Intent;
+Landroid/app/RemoteInput;->getExtraResultsKeyForData(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/RemoteInput;->mAllowedDataTypes:Landroid/util/ArraySet;
+Landroid/app/RemoteInput;->mChoices:[Ljava/lang/CharSequence;
+Landroid/app/RemoteInput;->mExtras:Landroid/os/Bundle;
+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
+Landroid/app/ResourcesManager;->applyNonDefaultDisplayMetricsToConfiguration(Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V
+Landroid/app/ResourcesManager;->cleanupResourceImpl(Landroid/content/res/ResourcesKey;)V
+Landroid/app/ResourcesManager;->countLiveReferences(Ljava/util/Collection;)I
+Landroid/app/ResourcesManager;->createBaseActivityResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
+Landroid/app/ResourcesManager;->createResourcesImpl(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
+Landroid/app/ResourcesManager;->DEBUG:Z
+Landroid/app/ResourcesManager;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+Landroid/app/ResourcesManager;->findKeyForResourceImplLocked(Landroid/content/res/ResourcesImpl;)Landroid/content/res/ResourcesKey;
+Landroid/app/ResourcesManager;->findOrCreateResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
+Landroid/app/ResourcesManager;->findResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
+Landroid/app/ResourcesManager;->generateConfig(Landroid/content/res/ResourcesKey;Landroid/util/DisplayMetrics;)Landroid/content/res/Configuration;
+Landroid/app/ResourcesManager;->getAdjustedDisplay(ILandroid/content/res/Resources;)Landroid/view/Display;
+Landroid/app/ResourcesManager;->getAdjustedDisplay(ILandroid/view/DisplayAdjustments;)Landroid/view/Display;
+Landroid/app/ResourcesManager;->getConfiguration()Landroid/content/res/Configuration;
+Landroid/app/ResourcesManager;->getDisplayMetrics()Landroid/util/DisplayMetrics;
+Landroid/app/ResourcesManager;->getDisplayMetrics(ILandroid/view/DisplayAdjustments;)Landroid/util/DisplayMetrics;
+Landroid/app/ResourcesManager;->getOrCreateActivityResourcesStructLocked(Landroid/os/IBinder;)Landroid/app/ResourcesManager$ActivityResources;
+Landroid/app/ResourcesManager;->getOrCreateResources(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
+Landroid/app/ResourcesManager;->getOrCreateResourcesForActivityLocked(Landroid/os/IBinder;Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
+Landroid/app/ResourcesManager;->getOrCreateResourcesLocked(Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
+Landroid/app/ResourcesManager;->getResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
+Landroid/app/ResourcesManager;->invalidatePath(Ljava/lang/String;)V
+Landroid/app/ResourcesManager;->isSameResourcesOverrideConfig(Landroid/os/IBinder;Landroid/content/res/Configuration;)Z
+Landroid/app/ResourcesManager;->loadApkAssets(Ljava/lang/String;ZZ)Landroid/content/res/ApkAssets;
+Landroid/app/ResourcesManager;->mAdjustedDisplays:Landroid/util/ArrayMap;
+Landroid/app/ResourcesManager;->mCachedApkAssets:Landroid/util/ArrayMap;
+Landroid/app/ResourcesManager;->mLoadedApkAssets:Landroid/util/LruCache;
+Landroid/app/ResourcesManager;->mResCompatibilityInfo:Landroid/content/res/CompatibilityInfo;
+Landroid/app/ResourcesManager;->overlayPathToIdmapPath(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/ResourcesManager;->redirectResourcesToNewImplLocked(Landroid/util/ArrayMap;)V
+Landroid/app/ResourcesManager;->sEmptyReferencePredicate:Ljava/util/function/Predicate;
+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
+Landroid/app/SearchableInfo$ActionKeyInfo;->mKeyCode:I
+Landroid/app/SearchableInfo$ActionKeyInfo;->mQueryActionMsg:Ljava/lang/String;
+Landroid/app/SearchableInfo$ActionKeyInfo;->mSuggestActionMsg:Ljava/lang/String;
+Landroid/app/SearchableInfo$ActionKeyInfo;->mSuggestActionMsgColumn:Ljava/lang/String;
+Landroid/app/SearchableInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/app/SearchableInfo;->addActionKey(Landroid/app/SearchableInfo$ActionKeyInfo;)V
+Landroid/app/SearchableInfo;->createActivityContext(Landroid/content/Context;Landroid/content/ComponentName;)Landroid/content/Context;
+Landroid/app/SearchableInfo;->DBG:Z
+Landroid/app/SearchableInfo;->getActivityMetaData(Landroid/content/Context;Landroid/content/pm/ActivityInfo;I)Landroid/app/SearchableInfo;
+Landroid/app/SearchableInfo;->getActivityMetaData(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/ComponentName;)Landroid/app/SearchableInfo;
+Landroid/app/SearchableInfo;->getSearchButtonText()I
+Landroid/app/SearchableInfo;->LOG_TAG:Ljava/lang/String;
+Landroid/app/SearchableInfo;->mActionKeys:Ljava/util/HashMap;
+Landroid/app/SearchableInfo;->mAutoUrlDetect:Z
+Landroid/app/SearchableInfo;->MD_LABEL_SEARCHABLE:Ljava/lang/String;
+Landroid/app/SearchableInfo;->MD_XML_ELEMENT_SEARCHABLE:Ljava/lang/String;
+Landroid/app/SearchableInfo;->MD_XML_ELEMENT_SEARCHABLE_ACTION_KEY:Ljava/lang/String;
+Landroid/app/SearchableInfo;->mHintId:I
+Landroid/app/SearchableInfo;->mIconId:I
+Landroid/app/SearchableInfo;->mIncludeInGlobalSearch:Z
+Landroid/app/SearchableInfo;->mLabelId:I
+Landroid/app/SearchableInfo;->mQueryAfterZeroResults:Z
+Landroid/app/SearchableInfo;->mSearchActivity:Landroid/content/ComponentName;
+Landroid/app/SearchableInfo;->mSearchButtonText:I
+Landroid/app/SearchableInfo;->mSearchImeOptions:I
+Landroid/app/SearchableInfo;->mSearchInputType:I
+Landroid/app/SearchableInfo;->mSearchMode:I
+Landroid/app/SearchableInfo;->mSettingsDescriptionId:I
+Landroid/app/SearchableInfo;->mSuggestAuthority:Ljava/lang/String;
+Landroid/app/SearchableInfo;->mSuggestIntentAction:Ljava/lang/String;
+Landroid/app/SearchableInfo;->mSuggestIntentData:Ljava/lang/String;
+Landroid/app/SearchableInfo;->mSuggestPath:Ljava/lang/String;
+Landroid/app/SearchableInfo;->mSuggestProviderPackage:Ljava/lang/String;
+Landroid/app/SearchableInfo;->mSuggestSelection:Ljava/lang/String;
+Landroid/app/SearchableInfo;->mSuggestThreshold:I
+Landroid/app/SearchableInfo;->mVoiceLanguageId:I
+Landroid/app/SearchableInfo;->mVoiceLanguageModeId:I
+Landroid/app/SearchableInfo;->mVoiceMaxResults:I
+Landroid/app/SearchableInfo;->mVoicePromptTextId:I
+Landroid/app/SearchableInfo;->mVoiceSearchMode:I
+Landroid/app/SearchableInfo;->SEARCH_MODE_BADGE_ICON:I
+Landroid/app/SearchableInfo;->SEARCH_MODE_BADGE_LABEL:I
+Landroid/app/SearchableInfo;->SEARCH_MODE_QUERY_REWRITE_FROM_DATA:I
+Landroid/app/SearchableInfo;->SEARCH_MODE_QUERY_REWRITE_FROM_TEXT:I
+Landroid/app/SearchableInfo;->useBadgeIcon()Z
+Landroid/app/SearchableInfo;->useBadgeLabel()Z
+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;
+Landroid/app/SearchDialog;->DBG:Z
+Landroid/app/SearchDialog;->doShow(Ljava/lang/String;ZLandroid/content/ComponentName;Landroid/os/Bundle;)Z
+Landroid/app/SearchDialog;->IME_OPTION_NO_MICROPHONE:Ljava/lang/String;
+Landroid/app/SearchDialog;->INSTANCE_KEY_APPDATA:Ljava/lang/String;
+Landroid/app/SearchDialog;->INSTANCE_KEY_COMPONENT:Ljava/lang/String;
+Landroid/app/SearchDialog;->INSTANCE_KEY_USER_QUERY:Ljava/lang/String;
+Landroid/app/SearchDialog;->isEmpty(Landroid/widget/AutoCompleteTextView;)Z
+Landroid/app/SearchDialog;->isOutOfBounds(Landroid/view/View;Landroid/view/MotionEvent;)Z
+Landroid/app/SearchDialog;->launchIntent(Landroid/content/Intent;)V
+Landroid/app/SearchDialog;->LOG_TAG:Ljava/lang/String;
+Landroid/app/SearchDialog;->mActivityContext:Landroid/content/Context;
+Landroid/app/SearchDialog;->mAppIcon:Landroid/widget/ImageView;
+Landroid/app/SearchDialog;->mAppSearchData:Landroid/os/Bundle;
+Landroid/app/SearchDialog;->mBadgeLabel:Landroid/widget/TextView;
+Landroid/app/SearchDialog;->mCloseSearch:Landroid/view/View;
+Landroid/app/SearchDialog;->mConfChangeListener:Landroid/content/BroadcastReceiver;
+Landroid/app/SearchDialog;->mLaunchComponent:Landroid/content/ComponentName;
+Landroid/app/SearchDialog;->mOnCloseListener:Landroid/widget/SearchView$OnCloseListener;
+Landroid/app/SearchDialog;->mOnQueryChangeListener:Landroid/widget/SearchView$OnQueryTextListener;
+Landroid/app/SearchDialog;->mOnSuggestionSelectionListener:Landroid/widget/SearchView$OnSuggestionListener;
+Landroid/app/SearchDialog;->mSearchable:Landroid/app/SearchableInfo;
+Landroid/app/SearchDialog;->mSearchAutoComplete:Landroid/widget/AutoCompleteTextView;
+Landroid/app/SearchDialog;->mSearchAutoCompleteImeOptions:I
+Landroid/app/SearchDialog;->mSearchPlate:Landroid/view/View;
+Landroid/app/SearchDialog;->mSearchView:Landroid/widget/SearchView;
+Landroid/app/SearchDialog;->mUserQuery:Ljava/lang/String;
+Landroid/app/SearchDialog;->mVoiceAppSearchIntent:Landroid/content/Intent;
+Landroid/app/SearchDialog;->mVoiceWebSearchIntent:Landroid/content/Intent;
+Landroid/app/SearchDialog;->mWorkingSpinner:Landroid/graphics/drawable/Drawable;
+Landroid/app/SearchDialog;->onClosePressed()Z
+Landroid/app/SearchDialog;->onConfigurationChanged()V
+Landroid/app/SearchDialog;->resolveDialogTheme(Landroid/content/Context;)I
+Landroid/app/SearchDialog;->SEARCH_PLATE_LEFT_PADDING_NON_GLOBAL:I
+Landroid/app/SearchDialog;->setListSelection(I)V
+Landroid/app/SearchDialog;->setUserQuery(Ljava/lang/String;)V
+Landroid/app/SearchDialog;->show(Landroid/content/ComponentName;Landroid/os/Bundle;)Z
+Landroid/app/SearchDialog;->show(Ljava/lang/String;ZLandroid/content/ComponentName;Landroid/os/Bundle;)Z
+Landroid/app/SearchDialog;->updateSearchAppIcon()V
+Landroid/app/SearchDialog;->updateSearchAutoComplete()V
+Landroid/app/SearchDialog;->updateSearchBadge()V
+Landroid/app/SearchDialog;->updateUI()V
+Landroid/app/SearchManager;->CONTEXT_IS_VOICE:Ljava/lang/String;
+Landroid/app/SearchManager;->DBG:Z
+Landroid/app/SearchManager;->ensureSearchDialog()V
+Landroid/app/SearchManager;->getAssistIntent(Z)Landroid/content/Intent;
+Landroid/app/SearchManager;->getGlobalSearchActivities()Ljava/util/List;
+Landroid/app/SearchManager;->launchLegacyAssist(Ljava/lang/String;ILandroid/os/Bundle;)Z
+Landroid/app/SearchManager;->mCancelListener:Landroid/app/SearchManager$OnCancelListener;
+Landroid/app/SearchManager;->mContext:Landroid/content/Context;
+Landroid/app/SearchManager;->mDismissListener:Landroid/app/SearchManager$OnDismissListener;
+Landroid/app/SearchManager;->mHandler:Landroid/os/Handler;
+Landroid/app/SearchManager;->mService:Landroid/app/ISearchManager;
+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;
+Landroid/app/servertransaction/ActivityConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+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
+Landroid/app/servertransaction/ActivityLifecycleItem;->ON_DESTROY:I
+Landroid/app/servertransaction/ActivityLifecycleItem;->ON_PAUSE:I
+Landroid/app/servertransaction/ActivityLifecycleItem;->ON_RESTART:I
+Landroid/app/servertransaction/ActivityLifecycleItem;->ON_RESUME:I
+Landroid/app/servertransaction/ActivityLifecycleItem;->ON_START:I
+Landroid/app/servertransaction/ActivityLifecycleItem;->ON_STOP:I
+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;
+Landroid/app/servertransaction/ActivityRelaunchItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/ActivityRelaunchItem;->mActivityClientRecord:Landroid/app/ActivityThread$ActivityClientRecord;
+Landroid/app/servertransaction/ActivityRelaunchItem;->mConfig:Landroid/util/MergedConfiguration;
+Landroid/app/servertransaction/ActivityRelaunchItem;->mConfigChanges:I
+Landroid/app/servertransaction/ActivityRelaunchItem;->mPendingNewIntents:Ljava/util/List;
+Landroid/app/servertransaction/ActivityRelaunchItem;->mPendingResults:Ljava/util/List;
+Landroid/app/servertransaction/ActivityRelaunchItem;->mPreserveWindow:Z
+Landroid/app/servertransaction/ActivityRelaunchItem;->obtain(Ljava/util/List;Ljava/util/List;ILandroid/util/MergedConfiguration;Z)Landroid/app/servertransaction/ActivityRelaunchItem;
+Landroid/app/servertransaction/ActivityRelaunchItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+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
+Landroid/app/servertransaction/ClientTransaction;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/servertransaction/ClientTransaction;->getClient()Landroid/app/IApplicationThread;
+Landroid/app/servertransaction/ClientTransaction;->mActivityToken:Landroid/os/IBinder;
+Landroid/app/servertransaction/ClientTransaction;->mClient:Landroid/app/IApplicationThread;
+Landroid/app/servertransaction/ClientTransaction;->mLifecycleStateRequest:Landroid/app/servertransaction/ActivityLifecycleItem;
+Landroid/app/servertransaction/ClientTransaction;->obtain(Landroid/app/IApplicationThread;Landroid/os/IBinder;)Landroid/app/servertransaction/ClientTransaction;
+Landroid/app/servertransaction/ClientTransaction;->preExecute(Landroid/app/ClientTransactionHandler;)V
+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;
+Landroid/app/servertransaction/ConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/ConfigurationChangeItem;->mConfiguration:Landroid/content/res/Configuration;
+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;
+Landroid/app/servertransaction/DestroyActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/DestroyActivityItem;->getTargetState()I
+Landroid/app/servertransaction/DestroyActivityItem;->mConfigChanges:I
+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
+Landroid/app/servertransaction/LaunchActivityItem;->areBundlesEqual(Landroid/os/BaseBundle;Landroid/os/BaseBundle;)Z
+Landroid/app/servertransaction/LaunchActivityItem;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/servertransaction/LaunchActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/LaunchActivityItem;->mCompatInfo:Landroid/content/res/CompatibilityInfo;
+Landroid/app/servertransaction/LaunchActivityItem;->mCurConfig:Landroid/content/res/Configuration;
+Landroid/app/servertransaction/LaunchActivityItem;->mIdent:I
+Landroid/app/servertransaction/LaunchActivityItem;->mIsForward:Z
+Landroid/app/servertransaction/LaunchActivityItem;->mOverrideConfig:Landroid/content/res/Configuration;
+Landroid/app/servertransaction/LaunchActivityItem;->mPendingNewIntents:Ljava/util/List;
+Landroid/app/servertransaction/LaunchActivityItem;->mPendingResults:Ljava/util/List;
+Landroid/app/servertransaction/LaunchActivityItem;->mPersistentState:Landroid/os/PersistableBundle;
+Landroid/app/servertransaction/LaunchActivityItem;->mProcState:I
+Landroid/app/servertransaction/LaunchActivityItem;->mProfilerInfo:Landroid/app/ProfilerInfo;
+Landroid/app/servertransaction/LaunchActivityItem;->mReferrer:Ljava/lang/String;
+Landroid/app/servertransaction/LaunchActivityItem;->mState:Landroid/os/Bundle;
+Landroid/app/servertransaction/LaunchActivityItem;->mVoiceInteractor:Lcom/android/internal/app/IVoiceInteractor;
+Landroid/app/servertransaction/LaunchActivityItem;->obtain(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;)Landroid/app/servertransaction/LaunchActivityItem;
+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;
+Landroid/app/servertransaction/MoveToDisplayItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/MoveToDisplayItem;->mConfiguration:Landroid/content/res/Configuration;
+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;
+Landroid/app/servertransaction/MultiWindowModeChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/MultiWindowModeChangeItem;->mIsInMultiWindowMode:Z
+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;
+Landroid/app/servertransaction/NewIntentItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+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;
+Landroid/app/servertransaction/PauseActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/PauseActivityItem;->getTargetState()I
+Landroid/app/servertransaction/PauseActivityItem;->mConfigChanges:I
+Landroid/app/servertransaction/PauseActivityItem;->mDontReport:Z
+Landroid/app/servertransaction/PauseActivityItem;->mFinished:Z
+Landroid/app/servertransaction/PauseActivityItem;->mUserLeaving:Z
+Landroid/app/servertransaction/PauseActivityItem;->obtain()Landroid/app/servertransaction/PauseActivityItem;
+Landroid/app/servertransaction/PauseActivityItem;->obtain(ZZIZ)Landroid/app/servertransaction/PauseActivityItem;
+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;
+Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->mPersistentState:Landroid/os/PersistableBundle;
+Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->mState:Landroid/os/Bundle;
+Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->setActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V
+Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->setDescription(Ljava/lang/CharSequence;)V
+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;
+Landroid/app/servertransaction/PendingTransactionActions;->getStopInfo()Landroid/app/servertransaction/PendingTransactionActions$StopInfo;
+Landroid/app/servertransaction/PendingTransactionActions;->mCallOnPostCreate:Z
+Landroid/app/servertransaction/PendingTransactionActions;->mOldState:Landroid/os/Bundle;
+Landroid/app/servertransaction/PendingTransactionActions;->mReportRelaunchToWM:Z
+Landroid/app/servertransaction/PendingTransactionActions;->mRestoreInstanceState:Z
+Landroid/app/servertransaction/PendingTransactionActions;->mStopInfo:Landroid/app/servertransaction/PendingTransactionActions$StopInfo;
+Landroid/app/servertransaction/PendingTransactionActions;->setCallOnPostCreate(Z)V
+Landroid/app/servertransaction/PendingTransactionActions;->setOldState(Landroid/os/Bundle;)V
+Landroid/app/servertransaction/PendingTransactionActions;->setReportRelaunchToWindowManager(Z)V
+Landroid/app/servertransaction/PendingTransactionActions;->setRestoreInstanceState(Z)V
+Landroid/app/servertransaction/PendingTransactionActions;->setStopInfo(Landroid/app/servertransaction/PendingTransactionActions$StopInfo;)V
+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;
+Landroid/app/servertransaction/PipModeChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/PipModeChangeItem;->mIsInPipMode:Z
+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;
+Landroid/app/servertransaction/ResumeActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/ResumeActivityItem;->getTargetState()I
+Landroid/app/servertransaction/ResumeActivityItem;->mIsForward:Z
+Landroid/app/servertransaction/ResumeActivityItem;->mProcState:I
+Landroid/app/servertransaction/ResumeActivityItem;->mUpdateProcState:Z
+Landroid/app/servertransaction/ResumeActivityItem;->obtain(IZ)Landroid/app/servertransaction/ResumeActivityItem;
+Landroid/app/servertransaction/ResumeActivityItem;->obtain(Z)Landroid/app/servertransaction/ResumeActivityItem;
+Landroid/app/servertransaction/ResumeActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+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;
+Landroid/app/servertransaction/StopActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+Landroid/app/servertransaction/StopActivityItem;->getTargetState()I
+Landroid/app/servertransaction/StopActivityItem;->mConfigChanges:I
+Landroid/app/servertransaction/StopActivityItem;->mShowWindow:Z
+Landroid/app/servertransaction/StopActivityItem;->obtain(ZI)Landroid/app/servertransaction/StopActivityItem;
+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
+Landroid/app/servertransaction/TransactionExecutor;->DEBUG_RESOLVER:Z
+Landroid/app/servertransaction/TransactionExecutor;->execute(Landroid/app/servertransaction/ClientTransaction;)V
+Landroid/app/servertransaction/TransactionExecutor;->executeCallbacks(Landroid/app/servertransaction/ClientTransaction;)V
+Landroid/app/servertransaction/TransactionExecutor;->executeLifecycleState(Landroid/app/servertransaction/ClientTransaction;)V
+Landroid/app/servertransaction/TransactionExecutor;->log(Ljava/lang/String;)V
+Landroid/app/servertransaction/TransactionExecutor;->mHelper:Landroid/app/servertransaction/TransactionExecutorHelper;
+Landroid/app/servertransaction/TransactionExecutor;->mPendingActions:Landroid/app/servertransaction/PendingTransactionActions;
+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
+Landroid/app/servertransaction/TransactionExecutorHelper;->getClosestPreExecutionState(Landroid/app/ActivityThread$ActivityClientRecord;I)I
+Landroid/app/servertransaction/TransactionExecutorHelper;->getLifecyclePath(IIZ)Landroid/util/IntArray;
+Landroid/app/servertransaction/TransactionExecutorHelper;->getLifecycleRequestForCurrentState(Landroid/app/ActivityThread$ActivityClientRecord;)Landroid/app/servertransaction/ActivityLifecycleItem;
+Landroid/app/servertransaction/TransactionExecutorHelper;->lastCallbackRequestingState(Landroid/app/servertransaction/ClientTransaction;)I
+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;
+Landroid/app/servertransaction/WindowVisibilityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+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;
+Landroid/app/ServiceStartArgs;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/ServiceStartArgs;->flags:I
+Landroid/app/ServiceStartArgs;->startId:I
+Landroid/app/ServiceStartArgs;->taskRemoved:Z
+Landroid/app/SharedElementCallback;->BUNDLE_SNAPSHOT_BITMAP:Ljava/lang/String;
+Landroid/app/SharedElementCallback;->BUNDLE_SNAPSHOT_GRAPHIC_BUFFER:Ljava/lang/String;
+Landroid/app/SharedElementCallback;->BUNDLE_SNAPSHOT_IMAGE_MATRIX:Ljava/lang/String;
+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;
+Landroid/app/SharedPreferencesImpl$MemoryCommitResult;->mapToWriteToDisk:Ljava/util/Map;
+Landroid/app/SharedPreferencesImpl$MemoryCommitResult;->memoryStateGeneration:J
+Landroid/app/SharedPreferencesImpl$MemoryCommitResult;->setDiskWriteResult(ZZ)V
+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;
+Landroid/app/SharedPreferencesImpl;->DEBUG:Z
+Landroid/app/SharedPreferencesImpl;->enqueueDiskWrite(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Ljava/lang/Runnable;)V
+Landroid/app/SharedPreferencesImpl;->hasFileChangedUnexpectedly()Z
+Landroid/app/SharedPreferencesImpl;->loadFromDisk()V
+Landroid/app/SharedPreferencesImpl;->makeBackupFile(Ljava/io/File;)Ljava/io/File;
+Landroid/app/SharedPreferencesImpl;->MAX_FSYNC_DURATION_MILLIS:J
+Landroid/app/SharedPreferencesImpl;->mBackupFile:Ljava/io/File;
+Landroid/app/SharedPreferencesImpl;->mCurrentMemoryStateGeneration:J
+Landroid/app/SharedPreferencesImpl;->mDiskStateGeneration:J
+Landroid/app/SharedPreferencesImpl;->mDiskWritesInFlight:I
+Landroid/app/SharedPreferencesImpl;->mListeners:Ljava/util/WeakHashMap;
+Landroid/app/SharedPreferencesImpl;->mLoaded:Z
+Landroid/app/SharedPreferencesImpl;->mLock:Ljava/lang/Object;
+Landroid/app/SharedPreferencesImpl;->mMap:Ljava/util/Map;
+Landroid/app/SharedPreferencesImpl;->mMode:I
+Landroid/app/SharedPreferencesImpl;->mNumSync:I
+Landroid/app/SharedPreferencesImpl;->mStatSize:J
+Landroid/app/SharedPreferencesImpl;->mStatTimestamp:Landroid/system/StructTimespec;
+Landroid/app/SharedPreferencesImpl;->mSyncTimes:Lcom/android/internal/util/ExponentiallyBucketedHistogram;
+Landroid/app/SharedPreferencesImpl;->mThrowable:Ljava/lang/Throwable;
+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
+Landroid/app/slice/ISliceManager$Stub$Proxy;->getBackupPayload(I)[B
+Landroid/app/slice/ISliceManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/slice/ISliceManager$Stub$Proxy;->getPinnedSlices(Ljava/lang/String;)[Landroid/net/Uri;
+Landroid/app/slice/ISliceManager$Stub$Proxy;->getPinnedSpecs(Landroid/net/Uri;Ljava/lang/String;)[Landroid/app/slice/SliceSpec;
+Landroid/app/slice/ISliceManager$Stub$Proxy;->grantPermissionFromUser(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/app/slice/ISliceManager$Stub$Proxy;->grantSlicePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/app/slice/ISliceManager$Stub$Proxy;->hasSliceAccess(Ljava/lang/String;)Z
+Landroid/app/slice/ISliceManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_applyRestore:I
+Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_checkSlicePermission:I
+Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_getBackupPayload:I
+Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_getPinnedSlices:I
+Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_getPinnedSpecs:I
+Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_grantPermissionFromUser:I
+Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_grantSlicePermission:I
+Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_hasSliceAccess:I
+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
+Landroid/app/slice/ISliceManager;->getPinnedSlices(Ljava/lang/String;)[Landroid/net/Uri;
+Landroid/app/slice/ISliceManager;->getPinnedSpecs(Landroid/net/Uri;Ljava/lang/String;)[Landroid/app/slice/SliceSpec;
+Landroid/app/slice/ISliceManager;->grantPermissionFromUser(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/app/slice/ISliceManager;->grantSlicePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/app/slice/ISliceManager;->hasSliceAccess(Ljava/lang/String;)Z
+Landroid/app/slice/ISliceManager;->pinSlice(Ljava/lang/String;Landroid/net/Uri;[Landroid/app/slice/SliceSpec;Landroid/os/IBinder;)V
+Landroid/app/slice/ISliceManager;->revokeSlicePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/app/slice/ISliceManager;->unpinSlice(Ljava/lang/String;Landroid/net/Uri;Landroid/os/IBinder;)V
+Landroid/app/slice/Slice$Builder;->mHints:Ljava/util/ArrayList;
+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;
+Landroid/app/slice/Slice;->HINT_TOGGLE:Ljava/lang/String;
+Landroid/app/slice/Slice;->mHints:[Ljava/lang/String;
+Landroid/app/slice/Slice;->mItems:[Landroid/app/slice/SliceItem;
+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
+Landroid/app/slice/SliceItem;-><init>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/app/slice/SliceItem;->getBaseType(Ljava/lang/String;)Ljava/lang/String;
+Landroid/app/slice/SliceItem;->getRemoteView()Landroid/widget/RemoteViews;
+Landroid/app/slice/SliceItem;->hasAnyHints([Ljava/lang/String;)Z
+Landroid/app/slice/SliceItem;->hasHints([Ljava/lang/String;)Z
+Landroid/app/slice/SliceItem;->mFormat:Ljava/lang/String;
+Landroid/app/slice/SliceItem;->mHints:[Ljava/lang/String;
+Landroid/app/slice/SliceItem;->mObj:Ljava/lang/Object;
+Landroid/app/slice/SliceItem;->mSubType:Ljava/lang/String;
+Landroid/app/slice/SliceItem;->readObj(Ljava/lang/String;Landroid/os/Parcel;)Ljava/lang/Object;
+Landroid/app/slice/SliceItem;->TAG:Ljava/lang/String;
+Landroid/app/slice/SliceItem;->writeObj(Landroid/os/Parcel;ILjava/lang/Object;Ljava/lang/String;)V
+Landroid/app/slice/SliceManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+Landroid/app/slice/SliceManager;->ACTION_REQUEST_SLICE_PERMISSION:Ljava/lang/String;
+Landroid/app/slice/SliceManager;->enforceSlicePermission(Landroid/net/Uri;Ljava/lang/String;II[Ljava/lang/String;)V
+Landroid/app/slice/SliceManager;->getAuthority(Landroid/content/Intent;)Ljava/lang/String;
+Landroid/app/slice/SliceManager;->grantPermissionFromUser(Landroid/net/Uri;Ljava/lang/String;Z)V
+Landroid/app/slice/SliceManager;->hasSliceAccess()Z
+Landroid/app/slice/SliceManager;->mContext:Landroid/content/Context;
+Landroid/app/slice/SliceManager;->mService:Landroid/app/slice/ISliceManager;
+Landroid/app/slice/SliceManager;->mToken:Landroid/os/IBinder;
+Landroid/app/slice/SliceManager;->resolveStatic(Landroid/content/Intent;Landroid/content/ContentResolver;)Landroid/net/Uri;
+Landroid/app/slice/SliceManager;->TAG:Ljava/lang/String;
+Landroid/app/slice/SliceMetrics;->mLogMaker:Landroid/metrics/LogMaker;
+Landroid/app/slice/SliceMetrics;->mMetricsLogger:Lcom/android/internal/logging/MetricsLogger;
+Landroid/app/slice/SliceMetrics;->TAG:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->createPermissionIntent(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;)Landroid/app/PendingIntent;
+Landroid/app/slice/SliceProvider;->createPermissionSlice(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;)Landroid/app/slice/Slice;
+Landroid/app/slice/SliceProvider;->DEBUG:Z
+Landroid/app/slice/SliceProvider;->EXTRA_BIND_URI:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->EXTRA_INTENT:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->EXTRA_PKG:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->EXTRA_PROVIDER_PKG:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->EXTRA_RESULT:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->EXTRA_SLICE:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->EXTRA_SLICE_DESCENDANTS:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->EXTRA_SUPPORTED_SPECS:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->getPermissionString(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/CharSequence;
+Landroid/app/slice/SliceProvider;->handleBindSlice(Landroid/net/Uri;Ljava/util/List;Ljava/lang/String;II)Landroid/app/slice/Slice;
+Landroid/app/slice/SliceProvider;->handleGetDescendants(Landroid/net/Uri;)Ljava/util/Collection;
+Landroid/app/slice/SliceProvider;->handlePinSlice(Landroid/net/Uri;)V
+Landroid/app/slice/SliceProvider;->handleUnpinSlice(Landroid/net/Uri;)V
+Landroid/app/slice/SliceProvider;->mAnr:Ljava/lang/Runnable;
+Landroid/app/slice/SliceProvider;->mAutoGrantPermissions:[Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->mCallback:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->METHOD_GET_DESCENDANTS:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->METHOD_GET_PERMISSIONS:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->METHOD_MAP_INTENT:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->METHOD_MAP_ONLY_INTENT:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->METHOD_PIN:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->METHOD_SLICE:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->METHOD_UNPIN:Ljava/lang/String;
+Landroid/app/slice/SliceProvider;->mSliceManager:Landroid/app/slice/SliceManager;
+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
+Landroid/app/slice/SliceQuery;->find(Landroid/app/slice/Slice;Ljava/lang/String;)Landroid/app/slice/SliceItem;
+Landroid/app/slice/SliceQuery;->find(Landroid/app/slice/Slice;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/slice/SliceItem;
+Landroid/app/slice/SliceQuery;->find(Landroid/app/slice/Slice;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Landroid/app/slice/SliceItem;
+Landroid/app/slice/SliceQuery;->find(Landroid/app/slice/SliceItem;Ljava/lang/String;)Landroid/app/slice/SliceItem;
+Landroid/app/slice/SliceQuery;->find(Landroid/app/slice/SliceItem;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/slice/SliceItem;
+Landroid/app/slice/SliceQuery;->find(Landroid/app/slice/SliceItem;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Landroid/app/slice/SliceItem;
+Landroid/app/slice/SliceQuery;->findAll(Landroid/app/slice/SliceItem;Ljava/lang/String;)Ljava/util/List;
+Landroid/app/slice/SliceQuery;->findAll(Landroid/app/slice/SliceItem;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+Landroid/app/slice/SliceQuery;->findAll(Landroid/app/slice/SliceItem;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
+Landroid/app/slice/SliceQuery;->findNotContaining(Landroid/app/slice/SliceItem;Ljava/util/List;)Landroid/app/slice/SliceItem;
+Landroid/app/slice/SliceQuery;->getPrimaryIcon(Landroid/app/slice/Slice;)Landroid/app/slice/SliceItem;
+Landroid/app/slice/SliceQuery;->stream(Landroid/app/slice/SliceItem;)Ljava/util/stream/Stream;
+Landroid/app/slice/SliceQuery;->TAG:Ljava/lang/String;
+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
+Landroid/app/StatusBarManager;->disable2(I)V
+Landroid/app/StatusBarManager;->DISABLE2_GLOBAL_ACTIONS:I
+Landroid/app/StatusBarManager;->DISABLE2_MASK:I
+Landroid/app/StatusBarManager;->DISABLE2_NONE:I
+Landroid/app/StatusBarManager;->DISABLE2_NOTIFICATION_SHADE:I
+Landroid/app/StatusBarManager;->DISABLE2_QUICK_SETTINGS:I
+Landroid/app/StatusBarManager;->DISABLE2_ROTATE_SUGGESTIONS:I
+Landroid/app/StatusBarManager;->DISABLE2_SYSTEM_ICONS:I
+Landroid/app/StatusBarManager;->DISABLE_BACK:I
+Landroid/app/StatusBarManager;->DISABLE_CLOCK:I
+Landroid/app/StatusBarManager;->DISABLE_HOME:I
+Landroid/app/StatusBarManager;->DISABLE_MASK:I
+Landroid/app/StatusBarManager;->DISABLE_NAVIGATION:I
+Landroid/app/StatusBarManager;->DISABLE_NOTIFICATION_ALERTS:I
+Landroid/app/StatusBarManager;->DISABLE_NOTIFICATION_ICONS:I
+Landroid/app/StatusBarManager;->DISABLE_RECENT:I
+Landroid/app/StatusBarManager;->DISABLE_SEARCH:I
+Landroid/app/StatusBarManager;->DISABLE_SYSTEM_INFO:I
+Landroid/app/StatusBarManager;->mService:Lcom/android/internal/statusbar/IStatusBarService;
+Landroid/app/StatusBarManager;->NAVIGATION_HINT_BACK_ALT:I
+Landroid/app/StatusBarManager;->NAVIGATION_HINT_IME_SHOWN:I
+Landroid/app/StatusBarManager;->windowStateToString(I)Ljava/lang/String;
+Landroid/app/StatusBarManager;->WINDOW_NAVIGATION_BAR:I
+Landroid/app/StatusBarManager;->WINDOW_STATE_HIDDEN:I
+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
+Landroid/app/StatusBarManagerProto;->TRANSIENT_BAR_SHOWING:I
+Landroid/app/StatusBarManagerProto;->TRANSIENT_BAR_SHOW_REQUESTED:I
+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
+Landroid/app/TabActivity;->ensureTabHost()V
+Landroid/app/TabActivity;->mDefaultTab:Ljava/lang/String;
+Landroid/app/TabActivity;->mDefaultTabIndex:I
+Landroid/app/TabActivity;->mTabHost:Landroid/widget/TabHost;
+Landroid/app/TaskStackBuilder;-><init>(Landroid/content/Context;)V
+Landroid/app/TaskStackBuilder;->getPendingIntent(IILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent;
+Landroid/app/TaskStackBuilder;->mIntents:Ljava/util/ArrayList;
+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
+Landroid/app/TimePickerDialog;->HOUR:Ljava/lang/String;
+Landroid/app/TimePickerDialog;->IS_24_HOUR:Ljava/lang/String;
+Landroid/app/TimePickerDialog;->mInitialHourOfDay:I
+Landroid/app/TimePickerDialog;->mInitialMinute:I
+Landroid/app/TimePickerDialog;->MINUTE:Ljava/lang/String;
+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
+Landroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceSecure(I)Z
+Landroid/app/trust/ITrustManager$Stub$Proxy;->isTrustUsuallyManaged(I)Z
+Landroid/app/trust/ITrustManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/trust/ITrustManager$Stub$Proxy;->registerTrustListener(Landroid/app/trust/ITrustListener;)V
+Landroid/app/trust/ITrustManager$Stub$Proxy;->reportEnabledTrustAgentsChanged(I)V
+Landroid/app/trust/ITrustManager$Stub$Proxy;->reportKeyguardShowingChanged()V
+Landroid/app/trust/ITrustManager$Stub$Proxy;->reportUnlockAttempt(ZI)V
+Landroid/app/trust/ITrustManager$Stub$Proxy;->reportUnlockLockout(II)V
+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;
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_clearAllFingerprints:I
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_isDeviceLocked:I
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_isDeviceSecure:I
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_isTrustUsuallyManaged:I
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_registerTrustListener:I
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_reportEnabledTrustAgentsChanged:I
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_reportKeyguardShowingChanged:I
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_reportUnlockAttempt:I
+Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_reportUnlockLockout:I
+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
+Landroid/app/trust/ITrustManager;->isTrustUsuallyManaged(I)Z
+Landroid/app/trust/ITrustManager;->registerTrustListener(Landroid/app/trust/ITrustListener;)V
+Landroid/app/trust/ITrustManager;->reportEnabledTrustAgentsChanged(I)V
+Landroid/app/trust/ITrustManager;->reportKeyguardShowingChanged()V
+Landroid/app/trust/ITrustManager;->reportUnlockAttempt(ZI)V
+Landroid/app/trust/ITrustManager;->reportUnlockLockout(II)V
+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;
+Landroid/app/trust/TrustManager;->DATA_MESSAGE:Ljava/lang/String;
+Landroid/app/trust/TrustManager;->isTrustUsuallyManaged(I)Z
+Landroid/app/trust/TrustManager;->mHandler:Landroid/os/Handler;
+Landroid/app/trust/TrustManager;->mService:Landroid/app/trust/ITrustManager;
+Landroid/app/trust/TrustManager;->MSG_TRUST_CHANGED:I
+Landroid/app/trust/TrustManager;->MSG_TRUST_ERROR:I
+Landroid/app/trust/TrustManager;->MSG_TRUST_MANAGED_CHANGED:I
+Landroid/app/trust/TrustManager;->mTrustListeners:Landroid/util/ArrayMap;
+Landroid/app/trust/TrustManager;->registerTrustListener(Landroid/app/trust/TrustManager$TrustListener;)V
+Landroid/app/trust/TrustManager;->reportEnabledTrustAgentsChanged(I)V
+Landroid/app/trust/TrustManager;->reportKeyguardShowingChanged()V
+Landroid/app/trust/TrustManager;->reportUnlockLockout(II)V
+Landroid/app/trust/TrustManager;->setDeviceLockedForUser(IZ)V
+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
+Landroid/app/UiAutomation;->DEBUG:Z
+Landroid/app/UiAutomation;->getConnectionId()I
+Landroid/app/UiAutomation;->getDegreesForRotation(I)F
+Landroid/app/UiAutomation;->getFlags()I
+Landroid/app/UiAutomation;->isConnectedLocked()Z
+Landroid/app/UiAutomation;->isDestroyed()Z
+Landroid/app/UiAutomation;->LOG_TAG:Ljava/lang/String;
+Landroid/app/UiAutomation;->mClient:Landroid/accessibilityservice/IAccessibilityServiceClient;
+Landroid/app/UiAutomation;->mConnectionId:I
+Landroid/app/UiAutomation;->mEventQueue:Ljava/util/ArrayList;
+Landroid/app/UiAutomation;->mFlags:I
+Landroid/app/UiAutomation;->mIsConnecting:Z
+Landroid/app/UiAutomation;->mIsDestroyed:Z
+Landroid/app/UiAutomation;->mLastEventTimeMillis:J
+Landroid/app/UiAutomation;->mLocalCallbackHandler:Landroid/os/Handler;
+Landroid/app/UiAutomation;->mLock:Ljava/lang/Object;
+Landroid/app/UiAutomation;->mOnAccessibilityEventListener:Landroid/app/UiAutomation$OnAccessibilityEventListener;
+Landroid/app/UiAutomation;->mRemoteCallbackThread:Landroid/os/HandlerThread;
+Landroid/app/UiAutomation;->mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
+Landroid/app/UiAutomation;->mWaitingForEventDelivery:Z
+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
+Landroid/app/UiAutomationConnection;->disconnect()V
+Landroid/app/UiAutomationConnection;->executeShellCommand(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;)V
+Landroid/app/UiAutomationConnection;->getWindowAnimationFrameStats()Landroid/view/WindowAnimationFrameStats;
+Landroid/app/UiAutomationConnection;->getWindowContentFrameStats(I)Landroid/view/WindowContentFrameStats;
+Landroid/app/UiAutomationConnection;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/app/UiAutomationConnection;->INITIAL_FROZEN_ROTATION_UNSPECIFIED:I
+Landroid/app/UiAutomationConnection;->injectInputEvent(Landroid/view/InputEvent;Z)Z
+Landroid/app/UiAutomationConnection;->isConnectedLocked()Z
+Landroid/app/UiAutomationConnection;->mAccessibilityManager:Landroid/view/accessibility/IAccessibilityManager;
+Landroid/app/UiAutomationConnection;->mClient:Landroid/accessibilityservice/IAccessibilityServiceClient;
+Landroid/app/UiAutomationConnection;->mInitialFrozenRotation:I
+Landroid/app/UiAutomationConnection;->mIsShutdown:Z
+Landroid/app/UiAutomationConnection;->mLock:Ljava/lang/Object;
+Landroid/app/UiAutomationConnection;->mOwningUid:I
+Landroid/app/UiAutomationConnection;->mPackageManager:Landroid/content/pm/IPackageManager;
+Landroid/app/UiAutomationConnection;->mToken:Landroid/os/Binder;
+Landroid/app/UiAutomationConnection;->mWindowManager:Landroid/view/IWindowManager;
+Landroid/app/UiAutomationConnection;->registerUiTestAutomationServiceLocked(Landroid/accessibilityservice/IAccessibilityServiceClient;I)V
+Landroid/app/UiAutomationConnection;->restoreRotationStateLocked()V
+Landroid/app/UiAutomationConnection;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/app/UiAutomationConnection;->setRotation(I)Z
+Landroid/app/UiAutomationConnection;->shutdown()V
+Landroid/app/UiAutomationConnection;->storeRotationStateLocked()V
+Landroid/app/UiAutomationConnection;->TAG:Ljava/lang/String;
+Landroid/app/UiAutomationConnection;->takeScreenshot(Landroid/graphics/Rect;I)Landroid/graphics/Bitmap;
+Landroid/app/UiAutomationConnection;->throwIfCalledByNotTrustedUidLocked()V
+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;
+Landroid/app/usage/AppStandbyInfo;->mPackageName:Ljava/lang/String;
+Landroid/app/usage/AppStandbyInfo;->mStandbyBucket:I
+Landroid/app/usage/CacheQuotaHint$Builder;->mQuota:J
+Landroid/app/usage/CacheQuotaHint$Builder;->mUid:I
+Landroid/app/usage/CacheQuotaHint$Builder;->mUsageStats:Landroid/app/usage/UsageStats;
+Landroid/app/usage/CacheQuotaHint$Builder;->mUuid:Ljava/lang/String;
+Landroid/app/usage/CacheQuotaHint;->mQuota:J
+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
+Landroid/app/usage/EventList;->get(I)Landroid/app/usage/UsageEvents$Event;
+Landroid/app/usage/EventList;->insert(Landroid/app/usage/UsageEvents$Event;)V
+Landroid/app/usage/EventList;->mEvents:Ljava/util/ArrayList;
+Landroid/app/usage/EventList;->size()I
+Landroid/app/usage/EventStats;-><init>()V
+Landroid/app/usage/EventStats;->mBeginTimeStamp:J
+Landroid/app/usage/EventStats;->mCount:I
+Landroid/app/usage/EventStats;->mEndTimeStamp:J
+Landroid/app/usage/EventStats;->mEventType:I
+Landroid/app/usage/EventStats;->mLastEventTime:J
+Landroid/app/usage/EventStats;->mTotalTime:J
+Landroid/app/usage/ExternalStorageStats;-><init>()V
+Landroid/app/usage/ExternalStorageStats;-><init>(Landroid/os/Parcel;)V
+Landroid/app/usage/ExternalStorageStats;->appBytes:J
+Landroid/app/usage/ExternalStorageStats;->audioBytes:J
+Landroid/app/usage/ExternalStorageStats;->getObbBytes()J
+Landroid/app/usage/ExternalStorageStats;->imageBytes:J
+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
+Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->getFreeBytes(Ljava/lang/String;Ljava/lang/String;)J
+Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->getTotalBytes(Ljava/lang/String;Ljava/lang/String;)J
+Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->isQuotaSupported(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->isReservedSupported(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->queryExternalStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/ExternalStorageStats;
+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;
+Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_getCacheBytes:I
+Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_getCacheQuotaBytes:I
+Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_getFreeBytes:I
+Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_getTotalBytes:I
+Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_isQuotaSupported:I
+Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_isReservedSupported:I
+Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_queryExternalStatsForUser:I
+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
+Landroid/app/usage/IStorageStatsManager;->getTotalBytes(Ljava/lang/String;Ljava/lang/String;)J
+Landroid/app/usage/IStorageStatsManager;->isQuotaSupported(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/usage/IStorageStatsManager;->isReservedSupported(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/app/usage/IStorageStatsManager;->queryExternalStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/ExternalStorageStats;
+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;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->isAppInactive(Ljava/lang/String;I)Z
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->onCarrierPrivilegedAppsChanged()V
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryConfigurationStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEventsForPackage(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEventsForPackageForUser(JJILjava/lang/String;Ljava/lang/String;)Landroid/app/usage/UsageEvents;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEventsForUser(JJILjava/lang/String;)Landroid/app/usage/UsageEvents;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEventStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryUsageStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->registerAppUsageObserver(I[Ljava/lang/String;JLandroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->reportChooserSelection(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->setAppInactive(Ljava/lang/String;ZI)V
+Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->setAppStandbyBucket(Ljava/lang/String;II)V
+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
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_getAppStandbyBuckets:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_isAppInactive:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_onCarrierPrivilegedAppsChanged:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_queryConfigurationStats:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_queryEvents:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_queryEventsForPackage:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_queryEventsForPackageForUser:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_queryEventsForUser:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_queryEventStats:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_queryUsageStats:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_registerAppUsageObserver:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_reportChooserSelection:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_setAppInactive:I
+Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_setAppStandbyBucket:I
+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
+Landroid/app/usage/IUsageStatsManager;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
+Landroid/app/usage/IUsageStatsManager;->queryEventsForPackage(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
+Landroid/app/usage/IUsageStatsManager;->queryEventsForPackageForUser(JJILjava/lang/String;Ljava/lang/String;)Landroid/app/usage/UsageEvents;
+Landroid/app/usage/IUsageStatsManager;->queryEventsForUser(JJILjava/lang/String;)Landroid/app/usage/UsageEvents;
+Landroid/app/usage/IUsageStatsManager;->queryEventStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/app/usage/IUsageStatsManager;->registerAppUsageObserver(I[Ljava/lang/String;JLandroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/app/usage/IUsageStatsManager;->reportChooserSelection(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+Landroid/app/usage/IUsageStatsManager;->setAppStandbyBucket(Ljava/lang/String;II)V
+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
+Landroid/app/usage/NetworkStats$Bucket;->convertSet(I)I
+Landroid/app/usage/NetworkStats$Bucket;->convertState(I)I
+Landroid/app/usage/NetworkStats$Bucket;->convertTag(I)I
+Landroid/app/usage/NetworkStats$Bucket;->convertUid(I)I
+Landroid/app/usage/NetworkStats$Bucket;->mBeginTimeStamp:J
+Landroid/app/usage/NetworkStats$Bucket;->mDefaultNetworkStatus:I
+Landroid/app/usage/NetworkStats$Bucket;->mEndTimeStamp:J
+Landroid/app/usage/NetworkStats$Bucket;->mMetered:I
+Landroid/app/usage/NetworkStats$Bucket;->mRoaming:I
+Landroid/app/usage/NetworkStats$Bucket;->mRxBytes:J
+Landroid/app/usage/NetworkStats$Bucket;->mRxPackets:J
+Landroid/app/usage/NetworkStats$Bucket;->mState:I
+Landroid/app/usage/NetworkStats$Bucket;->mTag:I
+Landroid/app/usage/NetworkStats$Bucket;->mTxBytes:J
+Landroid/app/usage/NetworkStats$Bucket;->mTxPackets:J
+Landroid/app/usage/NetworkStats$Bucket;->mUid:I
+Landroid/app/usage/NetworkStats;-><init>(Landroid/content/Context;Landroid/net/NetworkTemplate;IJJLandroid/net/INetworkStatsService;)V
+Landroid/app/usage/NetworkStats;->fillBucketFromSummaryEntry(Landroid/app/usage/NetworkStats$Bucket;)V
+Landroid/app/usage/NetworkStats;->getDeviceSummaryForNetwork()Landroid/app/usage/NetworkStats$Bucket;
+Landroid/app/usage/NetworkStats;->getNextHistoryBucket(Landroid/app/usage/NetworkStats$Bucket;)Z
+Landroid/app/usage/NetworkStats;->getNextSummaryBucket(Landroid/app/usage/NetworkStats$Bucket;)Z
+Landroid/app/usage/NetworkStats;->getSummaryAggregate()Landroid/app/usage/NetworkStats$Bucket;
+Landroid/app/usage/NetworkStats;->getUid()I
+Landroid/app/usage/NetworkStats;->hasNextUid()Z
+Landroid/app/usage/NetworkStats;->isUidEnumeration()Z
+Landroid/app/usage/NetworkStats;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/app/usage/NetworkStats;->mEndTimeStamp:J
+Landroid/app/usage/NetworkStats;->mEnumerationIndex:I
+Landroid/app/usage/NetworkStats;->mHistory:Landroid/net/NetworkStatsHistory;
+Landroid/app/usage/NetworkStats;->mRecycledHistoryEntry:Landroid/net/NetworkStatsHistory$Entry;
+Landroid/app/usage/NetworkStats;->mRecycledSummaryEntry:Landroid/net/NetworkStats$Entry;
+Landroid/app/usage/NetworkStats;->mSession:Landroid/net/INetworkStatsSession;
+Landroid/app/usage/NetworkStats;->mStartTimeStamp:J
+Landroid/app/usage/NetworkStats;->mState:I
+Landroid/app/usage/NetworkStats;->mSummary:Landroid/net/NetworkStats;
+Landroid/app/usage/NetworkStats;->mTag:I
+Landroid/app/usage/NetworkStats;->mTemplate:Landroid/net/NetworkTemplate;
+Landroid/app/usage/NetworkStats;->mUidOrUidIndex:I
+Landroid/app/usage/NetworkStats;->mUids:[I
+Landroid/app/usage/NetworkStats;->setSingleUidTagState(III)V
+Landroid/app/usage/NetworkStats;->startHistoryEnumeration(III)V
+Landroid/app/usage/NetworkStats;->startSummaryEnumeration()V
+Landroid/app/usage/NetworkStats;->startUserUidEnumeration()V
+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;
+Landroid/app/usage/NetworkStatsManager$CallbackHandler;->mNetworkType:I
+Landroid/app/usage/NetworkStatsManager$CallbackHandler;->mSubscriberId:Ljava/lang/String;
+Landroid/app/usage/NetworkStatsManager$UsageCallback;->request:Landroid/net/DataUsageRequest;
+Landroid/app/usage/NetworkStatsManager;-><init>(Landroid/content/Context;Landroid/net/INetworkStatsService;)V
+Landroid/app/usage/NetworkStatsManager;->CALLBACK_LIMIT_REACHED:I
+Landroid/app/usage/NetworkStatsManager;->CALLBACK_RELEASED:I
+Landroid/app/usage/NetworkStatsManager;->createTemplate(ILjava/lang/String;)Landroid/net/NetworkTemplate;
+Landroid/app/usage/NetworkStatsManager;->DBG:Z
+Landroid/app/usage/NetworkStatsManager;->FLAG_AUGMENT_WITH_SUBSCRIPTION_PLAN:I
+Landroid/app/usage/NetworkStatsManager;->FLAG_POLL_FORCE:I
+Landroid/app/usage/NetworkStatsManager;->FLAG_POLL_ON_OPEN:I
+Landroid/app/usage/NetworkStatsManager;->mContext:Landroid/content/Context;
+Landroid/app/usage/NetworkStatsManager;->mFlags:I
+Landroid/app/usage/NetworkStatsManager;->MIN_THRESHOLD_BYTES:J
+Landroid/app/usage/NetworkStatsManager;->mService:Landroid/net/INetworkStatsService;
+Landroid/app/usage/NetworkStatsManager;->querySummaryForDevice(Landroid/net/NetworkTemplate;JJ)Landroid/app/usage/NetworkStats$Bucket;
+Landroid/app/usage/NetworkStatsManager;->registerUsageCallback(Landroid/net/NetworkTemplate;IJLandroid/app/usage/NetworkStatsManager$UsageCallback;Landroid/os/Handler;)V
+Landroid/app/usage/NetworkStatsManager;->setAugmentWithSubscriptionPlan(Z)V
+Landroid/app/usage/NetworkStatsManager;->setPollOnOpen(Z)V
+Landroid/app/usage/NetworkStatsManager;->TAG:Ljava/lang/String;
+Landroid/app/usage/StorageStats;-><init>()V
+Landroid/app/usage/StorageStats;-><init>(Landroid/os/Parcel;)V
+Landroid/app/usage/StorageStats;->cacheBytes:J
+Landroid/app/usage/StorageStats;->codeBytes:J
+Landroid/app/usage/StorageStats;->dataBytes:J
+Landroid/app/usage/StorageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IStorageStatsManager;)V
+Landroid/app/usage/StorageStatsManager;->getCacheBytes(Ljava/lang/String;)J
+Landroid/app/usage/StorageStatsManager;->getCacheBytes(Ljava/util/UUID;)J
+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
+Landroid/app/usage/UsageEvents$Event;->END_OF_DAY:I
+Landroid/app/usage/UsageEvents$Event;->FLAG_IS_PACKAGE_INSTANT_APP:I
+Landroid/app/usage/UsageEvents$Event;->getObfuscatedIfInstantApp()Landroid/app/usage/UsageEvents$Event;
+Landroid/app/usage/UsageEvents$Event;->getStandbyBucket()I
+Landroid/app/usage/UsageEvents$Event;->getStandbyReason()I
+Landroid/app/usage/UsageEvents$Event;->mAction:Ljava/lang/String;
+Landroid/app/usage/UsageEvents$Event;->mBucketAndReason:I
+Landroid/app/usage/UsageEvents$Event;->mContentAnnotations:[Ljava/lang/String;
+Landroid/app/usage/UsageEvents$Event;->mContentType:Ljava/lang/String;
+Landroid/app/usage/UsageEvents$Event;->mFlags:I
+Landroid/app/usage/UsageEvents$Event;->mNotificationChannelId:Ljava/lang/String;
+Landroid/app/usage/UsageEvents$Event;->mShortcutId:Ljava/lang/String;
+Landroid/app/usage/UsageEvents;-><init>()V
+Landroid/app/usage/UsageEvents;-><init>(Ljava/util/List;[Ljava/lang/String;)V
+Landroid/app/usage/UsageEvents;->INSTANT_APP_CLASS_NAME:Ljava/lang/String;
+Landroid/app/usage/UsageEvents;->INSTANT_APP_PACKAGE_NAME:Ljava/lang/String;
+Landroid/app/usage/UsageEvents;->resetToStart()V
+Landroid/app/usage/UsageStats;-><init>()V
+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
+Landroid/app/usage/UsageStatsManager;->reasonToString(I)Ljava/lang/String;
+Landroid/app/usage/UsageStatsManager;->REASON_MAIN_DEFAULT:I
+Landroid/app/usage/UsageStatsManager;->REASON_MAIN_FORCED:I
+Landroid/app/usage/UsageStatsManager;->REASON_MAIN_MASK:I
+Landroid/app/usage/UsageStatsManager;->REASON_MAIN_PREDICTED:I
+Landroid/app/usage/UsageStatsManager;->REASON_MAIN_TIMEOUT:I
+Landroid/app/usage/UsageStatsManager;->REASON_MAIN_USAGE:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_MASK:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_PREDICTED_RESTORED:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_ACTIVE_TIMEOUT:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_EXEMPTED_SYNC_SCHEDULED_DOZE:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_EXEMPTED_SYNC_SCHEDULED_NON_DOZE:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_EXEMPTED_SYNC_START:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_MOVE_TO_BACKGROUND:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_MOVE_TO_FOREGROUND:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_NOTIFICATION_SEEN:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_SLICE_PINNED:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_SLICE_PINNED_PRIV:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_SYNC_ADAPTER:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_SYSTEM_INTERACTION:I
+Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_SYSTEM_UPDATE:I
+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
+Landroid/app/usage/UsageStatsManagerInternal;->getAppStandbyBucket(Ljava/lang/String;IJ)I
+Landroid/app/usage/UsageStatsManagerInternal;->getBackupPayload(ILjava/lang/String;)[B
+Landroid/app/usage/UsageStatsManagerInternal;->getIdleUidsForUser(I)[I
+Landroid/app/usage/UsageStatsManagerInternal;->getTimeSinceLastJobRun(Ljava/lang/String;I)J
+Landroid/app/usage/UsageStatsManagerInternal;->isAppIdle(Ljava/lang/String;II)Z
+Landroid/app/usage/UsageStatsManagerInternal;->isAppIdleParoleOn()Z
+Landroid/app/usage/UsageStatsManagerInternal;->onActiveAdminAdded(Ljava/lang/String;I)V
+Landroid/app/usage/UsageStatsManagerInternal;->onAdminDataAvailable()V
+Landroid/app/usage/UsageStatsManagerInternal;->prepareShutdown()V
+Landroid/app/usage/UsageStatsManagerInternal;->queryUsageStatsForUser(IIJJZ)Ljava/util/List;
+Landroid/app/usage/UsageStatsManagerInternal;->removeAppIdleStateChangeListener(Landroid/app/usage/UsageStatsManagerInternal$AppIdleStateChangeListener;)V
+Landroid/app/usage/UsageStatsManagerInternal;->reportAppJobState(Ljava/lang/String;IIJ)V
+Landroid/app/usage/UsageStatsManagerInternal;->reportConfigurationChange(Landroid/content/res/Configuration;I)V
+Landroid/app/usage/UsageStatsManagerInternal;->reportContentProviderUsage(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/app/usage/UsageStatsManagerInternal;->reportEvent(Landroid/content/ComponentName;II)V
+Landroid/app/usage/UsageStatsManagerInternal;->reportEvent(Ljava/lang/String;II)V
+Landroid/app/usage/UsageStatsManagerInternal;->reportExemptedSyncScheduled(Ljava/lang/String;I)V
+Landroid/app/usage/UsageStatsManagerInternal;->reportExemptedSyncStart(Ljava/lang/String;I)V
+Landroid/app/usage/UsageStatsManagerInternal;->reportInterruptiveNotification(Ljava/lang/String;Ljava/lang/String;I)V
+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
+Landroid/app/UserSwitchObserver;->onUserSwitching(ILandroid/os/IRemoteCallback;)V
+Landroid/app/VoiceInteractor$AbortVoiceRequest;-><init>(Ljava/lang/CharSequence;Landroid/os/Bundle;)V
+Landroid/app/VoiceInteractor$AbortVoiceRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/VoiceInteractor$AbortVoiceRequest;->getRequestTypeName()Ljava/lang/String;
+Landroid/app/VoiceInteractor$AbortVoiceRequest;->mExtras:Landroid/os/Bundle;
+Landroid/app/VoiceInteractor$AbortVoiceRequest;->mPrompt:Landroid/app/VoiceInteractor$Prompt;
+Landroid/app/VoiceInteractor$AbortVoiceRequest;->submit(Lcom/android/internal/app/IVoiceInteractor;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;)Lcom/android/internal/app/IVoiceInteractorRequest;
+Landroid/app/VoiceInteractor$CommandRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/VoiceInteractor$CommandRequest;->getRequestTypeName()Ljava/lang/String;
+Landroid/app/VoiceInteractor$CommandRequest;->mArgs:Landroid/os/Bundle;
+Landroid/app/VoiceInteractor$CommandRequest;->mCommand:Ljava/lang/String;
+Landroid/app/VoiceInteractor$CommandRequest;->submit(Lcom/android/internal/app/IVoiceInteractor;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;)Lcom/android/internal/app/IVoiceInteractorRequest;
+Landroid/app/VoiceInteractor$CompleteVoiceRequest;-><init>(Ljava/lang/CharSequence;Landroid/os/Bundle;)V
+Landroid/app/VoiceInteractor$CompleteVoiceRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/VoiceInteractor$CompleteVoiceRequest;->getRequestTypeName()Ljava/lang/String;
+Landroid/app/VoiceInteractor$CompleteVoiceRequest;->mExtras:Landroid/os/Bundle;
+Landroid/app/VoiceInteractor$CompleteVoiceRequest;->mPrompt:Landroid/app/VoiceInteractor$Prompt;
+Landroid/app/VoiceInteractor$CompleteVoiceRequest;->submit(Lcom/android/internal/app/IVoiceInteractor;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;)Lcom/android/internal/app/IVoiceInteractorRequest;
+Landroid/app/VoiceInteractor$ConfirmationRequest;-><init>(Ljava/lang/CharSequence;Landroid/os/Bundle;)V
+Landroid/app/VoiceInteractor$ConfirmationRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/VoiceInteractor$ConfirmationRequest;->getRequestTypeName()Ljava/lang/String;
+Landroid/app/VoiceInteractor$ConfirmationRequest;->mExtras:Landroid/os/Bundle;
+Landroid/app/VoiceInteractor$ConfirmationRequest;->mPrompt:Landroid/app/VoiceInteractor$Prompt;
+Landroid/app/VoiceInteractor$ConfirmationRequest;->submit(Lcom/android/internal/app/IVoiceInteractor;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;)Lcom/android/internal/app/IVoiceInteractorRequest;
+Landroid/app/VoiceInteractor$PickOptionRequest$Option;-><init>(Landroid/os/Parcel;)V
+Landroid/app/VoiceInteractor$PickOptionRequest$Option;-><init>(Ljava/lang/CharSequence;)V
+Landroid/app/VoiceInteractor$PickOptionRequest$Option;->mExtras:Landroid/os/Bundle;
+Landroid/app/VoiceInteractor$PickOptionRequest$Option;->mIndex:I
+Landroid/app/VoiceInteractor$PickOptionRequest$Option;->mLabel:Ljava/lang/CharSequence;
+Landroid/app/VoiceInteractor$PickOptionRequest$Option;->mSynonyms:Ljava/util/ArrayList;
+Landroid/app/VoiceInteractor$PickOptionRequest;-><init>(Ljava/lang/CharSequence;[Landroid/app/VoiceInteractor$PickOptionRequest$Option;Landroid/os/Bundle;)V
+Landroid/app/VoiceInteractor$PickOptionRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/VoiceInteractor$PickOptionRequest;->getRequestTypeName()Ljava/lang/String;
+Landroid/app/VoiceInteractor$PickOptionRequest;->mExtras:Landroid/os/Bundle;
+Landroid/app/VoiceInteractor$PickOptionRequest;->mOptions:[Landroid/app/VoiceInteractor$PickOptionRequest$Option;
+Landroid/app/VoiceInteractor$PickOptionRequest;->mPrompt:Landroid/app/VoiceInteractor$Prompt;
+Landroid/app/VoiceInteractor$PickOptionRequest;->submit(Lcom/android/internal/app/IVoiceInteractor;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;)Lcom/android/internal/app/IVoiceInteractorRequest;
+Landroid/app/VoiceInteractor$Prompt;-><init>(Landroid/os/Parcel;)V
+Landroid/app/VoiceInteractor$Prompt;->mVisualPrompt:Ljava/lang/CharSequence;
+Landroid/app/VoiceInteractor$Prompt;->mVoicePrompts:[Ljava/lang/CharSequence;
+Landroid/app/VoiceInteractor$Request;-><init>()V
+Landroid/app/VoiceInteractor$Request;->clear()V
+Landroid/app/VoiceInteractor$Request;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/VoiceInteractor$Request;->getRequestTypeName()Ljava/lang/String;
+Landroid/app/VoiceInteractor$Request;->mActivity:Landroid/app/Activity;
+Landroid/app/VoiceInteractor$Request;->mContext:Landroid/content/Context;
+Landroid/app/VoiceInteractor$Request;->mName:Ljava/lang/String;
+Landroid/app/VoiceInteractor$Request;->mRequestInterface:Lcom/android/internal/app/IVoiceInteractorRequest;
+Landroid/app/VoiceInteractor$Request;->submit(Lcom/android/internal/app/IVoiceInteractor;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;)Lcom/android/internal/app/IVoiceInteractorRequest;
+Landroid/app/VoiceInteractor;-><init>(Lcom/android/internal/app/IVoiceInteractor;Landroid/content/Context;Landroid/app/Activity;Landroid/os/Looper;)V
+Landroid/app/VoiceInteractor;->attachActivity(Landroid/app/Activity;)V
+Landroid/app/VoiceInteractor;->DEBUG:Z
+Landroid/app/VoiceInteractor;->detachActivity()V
+Landroid/app/VoiceInteractor;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/app/VoiceInteractor;->mActiveRequests:Landroid/util/ArrayMap;
+Landroid/app/VoiceInteractor;->mActivity:Landroid/app/Activity;
+Landroid/app/VoiceInteractor;->makeRequestList()Ljava/util/ArrayList;
+Landroid/app/VoiceInteractor;->mCallback:Lcom/android/internal/app/IVoiceInteractorCallback$Stub;
+Landroid/app/VoiceInteractor;->mContext:Landroid/content/Context;
+Landroid/app/VoiceInteractor;->mHandlerCaller:Lcom/android/internal/os/HandlerCaller;
+Landroid/app/VoiceInteractor;->mHandlerCallerCallback:Lcom/android/internal/os/HandlerCaller$Callback;
+Landroid/app/VoiceInteractor;->mInteractor:Lcom/android/internal/app/IVoiceInteractor;
+Landroid/app/VoiceInteractor;->mRetaining:Z
+Landroid/app/VoiceInteractor;->MSG_ABORT_VOICE_RESULT:I
+Landroid/app/VoiceInteractor;->MSG_CANCEL_RESULT:I
+Landroid/app/VoiceInteractor;->MSG_COMMAND_RESULT:I
+Landroid/app/VoiceInteractor;->MSG_COMPLETE_VOICE_RESULT:I
+Landroid/app/VoiceInteractor;->MSG_CONFIRMATION_RESULT:I
+Landroid/app/VoiceInteractor;->MSG_PICK_OPTION_RESULT:I
+Landroid/app/VoiceInteractor;->NO_REQUESTS:[Landroid/app/VoiceInteractor$Request;
+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
+Landroid/app/Vr2dDisplayProperties$Builder;->mHeight:I
+Landroid/app/Vr2dDisplayProperties$Builder;->mRemovedFlags:I
+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;
+Landroid/app/Vr2dDisplayProperties;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+Landroid/app/Vr2dDisplayProperties;->FLAG_VIRTUAL_DISPLAY_ENABLED:I
+Landroid/app/Vr2dDisplayProperties;->getDpi()I
+Landroid/app/Vr2dDisplayProperties;->getFlags()I
+Landroid/app/Vr2dDisplayProperties;->getHeight()I
+Landroid/app/Vr2dDisplayProperties;->getRemovedFlags()I
+Landroid/app/Vr2dDisplayProperties;->getWidth()I
+Landroid/app/Vr2dDisplayProperties;->mAddedFlags:I
+Landroid/app/Vr2dDisplayProperties;->mDpi:I
+Landroid/app/Vr2dDisplayProperties;->mHeight:I
+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;
+Landroid/app/VrManager$CallbackEntry;->mPersistentStateCallback:Landroid/service/vr/IPersistentVrStateCallbacks;
+Landroid/app/VrManager$CallbackEntry;->mStateCallback:Landroid/service/vr/IVrStateCallbacks;
+Landroid/app/VrManager;-><init>(Landroid/service/vr/IVrManager;)V
+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;
+Landroid/app/WaitResult;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+Landroid/app/WaitResult;->result:I
+Landroid/app/WaitResult;->thisTime:J
+Landroid/app/WaitResult;->timeout:Z
+Landroid/app/WaitResult;->totalTime:J
+Landroid/app/WaitResult;->who:Landroid/content/ComponentName;
+Landroid/app/WallpaperColors;->BRIGHT_IMAGE_MEAN_LUMINANCE:F
+Landroid/app/WallpaperColors;->calculateDarkHints(Landroid/graphics/Bitmap;)I
+Landroid/app/WallpaperColors;->calculateOptimalSize(II)Landroid/util/Size;
+Landroid/app/WallpaperColors;->DARK_PIXEL_LUMINANCE:F
+Landroid/app/WallpaperColors;->DARK_THEME_MEAN_LUMINANCE:F
+Landroid/app/WallpaperColors;->getMainColors()Ljava/util/List;
+Landroid/app/WallpaperColors;->HINT_FROM_BITMAP:I
+Landroid/app/WallpaperColors;->HINT_SUPPORTS_DARK_TEXT:I
+Landroid/app/WallpaperColors;->HINT_SUPPORTS_DARK_THEME:I
+Landroid/app/WallpaperColors;->MAX_BITMAP_SIZE:I
+Landroid/app/WallpaperColors;->MAX_DARK_AREA:F
+Landroid/app/WallpaperColors;->MAX_WALLPAPER_EXTRACTION_AREA:I
+Landroid/app/WallpaperColors;->mColorHints:I
+Landroid/app/WallpaperColors;->MIN_COLOR_OCCURRENCE:F
+Landroid/app/WallpaperColors;->mMainColors:Ljava/util/ArrayList;
+Landroid/app/WallpaperColors;->setColorHints(I)V
+Landroid/app/WallpaperInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/app/WallpaperInfo;->getSupportsAmbientMode()Z
+Landroid/app/WallpaperInfo;->mAuthorResource:I
+Landroid/app/WallpaperInfo;->mContextDescriptionResource:I
+Landroid/app/WallpaperInfo;->mContextUriResource:I
+Landroid/app/WallpaperInfo;->mDescriptionResource:I
+Landroid/app/WallpaperInfo;->mService:Landroid/content/pm/ResolveInfo;
+Landroid/app/WallpaperInfo;->mSettingsActivityName:Ljava/lang/String;
+Landroid/app/WallpaperInfo;->mShowMetadataInPreview:Z
+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
+Landroid/app/WallpaperManager$FastBitmapDrawable;->mDrawTop:I
+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
+Landroid/app/WallpaperManager$Globals;->getCurrentWallpaperLocked(Landroid/content/Context;IZ)Landroid/graphics/Bitmap;
+Landroid/app/WallpaperManager$Globals;->getDefaultWallpaper(Landroid/content/Context;I)Landroid/graphics/Bitmap;
+Landroid/app/WallpaperManager$Globals;->getWallpaperColors(II)Landroid/app/WallpaperColors;
+Landroid/app/WallpaperManager$Globals;->mCachedWallpaper:Landroid/graphics/Bitmap;
+Landroid/app/WallpaperManager$Globals;->mCachedWallpaperUserId:I
+Landroid/app/WallpaperManager$Globals;->mColorCallbackRegistered:Z
+Landroid/app/WallpaperManager$Globals;->mColorListeners:Ljava/util/ArrayList;
+Landroid/app/WallpaperManager$Globals;->mDefaultWallpaper:Landroid/graphics/Bitmap;
+Landroid/app/WallpaperManager$Globals;->mMainLooperHandler:Landroid/os/Handler;
+Landroid/app/WallpaperManager$Globals;->mService:Landroid/app/IWallpaperManager;
+Landroid/app/WallpaperManager$Globals;->onWallpaperChanged()V
+Landroid/app/WallpaperManager$Globals;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;II)V
+Landroid/app/WallpaperManager$Globals;->peekWallpaperBitmap(Landroid/content/Context;ZI)Landroid/graphics/Bitmap;
+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
+Landroid/app/WallpaperManager$WallpaperSetCompletion;->waitForCompletion()V
+Landroid/app/WallpaperManager;-><init>(Landroid/app/IWallpaperManager;Landroid/content/Context;Landroid/os/Handler;)V
+Landroid/app/WallpaperManager;->copyStreamToWallpaperFile(Ljava/io/InputStream;Ljava/io/FileOutputStream;)V
+Landroid/app/WallpaperManager;->DEBUG:Z
+Landroid/app/WallpaperManager;->EXTRA_NEW_WALLPAPER_ID:Ljava/lang/String;
+Landroid/app/WallpaperManager;->getBitmapAsUser(IZ)Landroid/graphics/Bitmap;
+Landroid/app/WallpaperManager;->getDefaultWallpaperComponent(Landroid/content/Context;)Landroid/content/ComponentName;
+Landroid/app/WallpaperManager;->getMaxCropRect(IIIIFF)Landroid/graphics/RectF;
+Landroid/app/WallpaperManager;->getWallpaperIdForUser(II)I
+Landroid/app/WallpaperManager;->initGlobals(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
+Landroid/app/WallpaperManager;->isWallpaperBackupEligible(I)Z
+Landroid/app/WallpaperManager;->mContext:Landroid/content/Context;
+Landroid/app/WallpaperManager;->mWallpaperXStep:F
+Landroid/app/WallpaperManager;->mWallpaperYStep:F
+Landroid/app/WallpaperManager;->PROP_LOCK_WALLPAPER:Ljava/lang/String;
+Landroid/app/WallpaperManager;->PROP_WALLPAPER:Ljava/lang/String;
+Landroid/app/WallpaperManager;->PROP_WALLPAPER_COMPONENT:Ljava/lang/String;
+Landroid/app/WallpaperManager;->removeOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;I)V
+Landroid/app/WallpaperManager;->setLockWallpaperCallback(Landroid/app/IWallpaperManagerCallback;)Z
+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;
+Landroid/app/WindowConfiguration;->canReceiveKeys()Z
+Landroid/app/WindowConfiguration;->canResizeTask()Z
+Landroid/app/WindowConfiguration;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/app/WindowConfiguration;->diff(Landroid/app/WindowConfiguration;Z)J
+Landroid/app/WindowConfiguration;->hasMovementAnimations()Z
+Landroid/app/WindowConfiguration;->hasWindowDecorCaption()Z
+Landroid/app/WindowConfiguration;->hasWindowShadow()Z
+Landroid/app/WindowConfiguration;->isAlwaysOnTop()Z
+Landroid/app/WindowConfiguration;->isFloating(I)Z
+Landroid/app/WindowConfiguration;->keepVisibleDeadAppWindowOnScreen()Z
+Landroid/app/WindowConfiguration;->mActivityType:I
+Landroid/app/WindowConfiguration;->mAppBounds:Landroid/graphics/Rect;
+Landroid/app/WindowConfiguration;->mBounds:Landroid/graphics/Rect;
+Landroid/app/WindowConfiguration;->mWindowingMode:I
+Landroid/app/WindowConfiguration;->persistTaskBounds()Z
+Landroid/app/WindowConfiguration;->PINNED_WINDOWING_MODE_ELEVATION_IN_DIP:I
+Landroid/app/WindowConfiguration;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/app/WindowConfiguration;->setAppBounds(IIII)V
+Landroid/app/WindowConfiguration;->setToDefaults()V
+Landroid/app/WindowConfiguration;->supportSplitScreenWindowingMode()Z
+Landroid/app/WindowConfiguration;->supportSplitScreenWindowingMode(I)Z
+Landroid/app/WindowConfiguration;->tasksAreFloating()Z
+Landroid/app/WindowConfiguration;->unset()V
+Landroid/app/WindowConfiguration;->updateFrom(Landroid/app/WindowConfiguration;)I
+Landroid/app/WindowConfiguration;->useWindowFrameForBackdrop()Z
+Landroid/app/WindowConfiguration;->windowingModeToString(I)Ljava/lang/String;
+Landroid/app/WindowConfiguration;->windowsAreScaleable()Z
+Landroid/app/WindowConfiguration;->WINDOW_CONFIG_ACTIVITY_TYPE:I
+Landroid/app/WindowConfiguration;->WINDOW_CONFIG_APP_BOUNDS:I
+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;
+Landroid/appwidget/AppWidgetHost$Callbacks;->providerChanged(ILandroid/appwidget/AppWidgetProviderInfo;)V
+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
+Landroid/appwidget/AppWidgetHost;->HANDLE_UPDATE:I
+Landroid/appwidget/AppWidgetHost;->mCallbacks:Landroid/appwidget/AppWidgetHost$Callbacks;
+Landroid/appwidget/AppWidgetHost;->mContextOpPackageName:Ljava/lang/String;
+Landroid/appwidget/AppWidgetHost;->mDisplayMetrics:Landroid/util/DisplayMetrics;
+Landroid/appwidget/AppWidgetHost;->mHostId:I
+Landroid/appwidget/AppWidgetHost;->mOnClickHandler:Landroid/widget/RemoteViews$OnClickHandler;
+Landroid/appwidget/AppWidgetHost;->mViews:Landroid/util/SparseArray;
+Landroid/appwidget/AppWidgetHost;->sServiceInitialized:Z
+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;
+Landroid/appwidget/AppWidgetHostView$ViewApplyListener;->onError(Ljava/lang/Exception;)V
+Landroid/appwidget/AppWidgetHostView$ViewApplyListener;->onViewApplied(Landroid/view/View;)V
+Landroid/appwidget/AppWidgetHostView;-><init>(Landroid/content/Context;Landroid/widget/RemoteViews$OnClickHandler;)V
+Landroid/appwidget/AppWidgetHostView;->applyContent(Landroid/view/View;ZLjava/lang/Exception;)V
+Landroid/appwidget/AppWidgetHostView;->applyRemoteViews(Landroid/widget/RemoteViews;Z)V
+Landroid/appwidget/AppWidgetHostView;->generateId()I
+Landroid/appwidget/AppWidgetHostView;->getDefaultPadding()Landroid/graphics/Rect;
+Landroid/appwidget/AppWidgetHostView;->getRemoteContext()Landroid/content/Context;
+Landroid/appwidget/AppWidgetHostView;->inflateAsync(Landroid/widget/RemoteViews;)V
+Landroid/appwidget/AppWidgetHostView;->INFLATER_FILTER:Landroid/view/LayoutInflater$Filter;
+Landroid/appwidget/AppWidgetHostView;->KEY_JAILED_ARRAY:Ljava/lang/String;
+Landroid/appwidget/AppWidgetHostView;->LOGD:Z
+Landroid/appwidget/AppWidgetHostView;->mAsyncExecutor:Ljava/util/concurrent/Executor;
+Landroid/appwidget/AppWidgetHostView;->mContext:Landroid/content/Context;
+Landroid/appwidget/AppWidgetHostView;->mLastExecutionSignal:Landroid/os/CancellationSignal;
+Landroid/appwidget/AppWidgetHostView;->mLayoutId:I
+Landroid/appwidget/AppWidgetHostView;->mOnClickHandler:Landroid/widget/RemoteViews$OnClickHandler;
+Landroid/appwidget/AppWidgetHostView;->mRemoteContext:Landroid/content/Context;
+Landroid/appwidget/AppWidgetHostView;->mView:Landroid/view/View;
+Landroid/appwidget/AppWidgetHostView;->mViewMode:I
+Landroid/appwidget/AppWidgetHostView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/appwidget/AppWidgetHostView;->resetAppWidget(Landroid/appwidget/AppWidgetProviderInfo;)V
+Landroid/appwidget/AppWidgetHostView;->setOnClickHandler(Landroid/widget/RemoteViews$OnClickHandler;)V
+Landroid/appwidget/AppWidgetHostView;->TAG:Ljava/lang/String;
+Landroid/appwidget/AppWidgetHostView;->viewDataChanged(I)V
+Landroid/appwidget/AppWidgetHostView;->VIEW_MODE_CONTENT:I
+Landroid/appwidget/AppWidgetHostView;->VIEW_MODE_DEFAULT:I
+Landroid/appwidget/AppWidgetHostView;->VIEW_MODE_ERROR:I
+Landroid/appwidget/AppWidgetHostView;->VIEW_MODE_NOINIT:I
+Landroid/appwidget/AppWidgetManager;-><init>(Landroid/content/Context;Lcom/android/internal/appwidget/IAppWidgetService;)V
+Landroid/appwidget/AppWidgetManager;->ACTION_KEYGUARD_APPWIDGET_PICK:Ljava/lang/String;
+Landroid/appwidget/AppWidgetManager;->EXTRA_CATEGORY_FILTER:Ljava/lang/String;
+Landroid/appwidget/AppWidgetManager;->EXTRA_CUSTOM_SORT:Ljava/lang/String;
+Landroid/appwidget/AppWidgetManager;->hasBindAppWidgetPermission(Ljava/lang/String;)Z
+Landroid/appwidget/AppWidgetManager;->hasBindAppWidgetPermission(Ljava/lang/String;I)Z
+Landroid/appwidget/AppWidgetManager;->isBoundWidgetPackage(Ljava/lang/String;I)Z
+Landroid/appwidget/AppWidgetManager;->mContext:Landroid/content/Context;
+Landroid/appwidget/AppWidgetManager;->mDisplayMetrics:Landroid/util/DisplayMetrics;
+Landroid/appwidget/AppWidgetManager;->mPackageName:Ljava/lang/String;
+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
+Landroid/appwidget/PendingHostUpdate;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/appwidget/PendingHostUpdate;->providerChanged(ILandroid/appwidget/AppWidgetProviderInfo;)Landroid/appwidget/PendingHostUpdate;
+Landroid/appwidget/PendingHostUpdate;->type:I
+Landroid/appwidget/PendingHostUpdate;->TYPE_PROVIDER_CHANGED:I
+Landroid/appwidget/PendingHostUpdate;->TYPE_VIEWS_UPDATE:I
+Landroid/appwidget/PendingHostUpdate;->TYPE_VIEW_DATA_CHANGED:I
+Landroid/appwidget/PendingHostUpdate;->updateAppWidget(ILandroid/widget/RemoteViews;)Landroid/appwidget/PendingHostUpdate;
+Landroid/appwidget/PendingHostUpdate;->viewDataChanged(II)Landroid/appwidget/PendingHostUpdate;
+Landroid/appwidget/PendingHostUpdate;->viewId:I
+Landroid/appwidget/PendingHostUpdate;->views:Landroid/widget/RemoteViews;
+Landroid/appwidget/PendingHostUpdate;->widgetInfo:Landroid/appwidget/AppWidgetProviderInfo;
+Landroid/appwidget/PendingHostUpdate;->writeNullParcelable(Landroid/os/Parcelable;Landroid/os/Parcel;I)V
+Landroid/bluetooth/BluetoothA2dp;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+Landroid/bluetooth/BluetoothA2dp;->ACTION_AVRCP_CONNECTION_STATE_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothA2dp;->DBG:Z
+Landroid/bluetooth/BluetoothA2dp;->doBind()Z
+Landroid/bluetooth/BluetoothA2dp;->enableDisableOptionalCodecs(Landroid/bluetooth/BluetoothDevice;Z)V
+Landroid/bluetooth/BluetoothA2dp;->isAvrcpAbsoluteVolumeSupported()Z
+Landroid/bluetooth/BluetoothA2dp;->isEnabled()Z
+Landroid/bluetooth/BluetoothA2dp;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothA2dp;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothA2dp;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothA2dp;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothA2dp;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothA2dp;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothA2dp;->mService:Landroid/bluetooth/IBluetoothA2dp;
+Landroid/bluetooth/BluetoothA2dp;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothA2dp;->mServiceLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
+Landroid/bluetooth/BluetoothA2dp;->setAvrcpAbsoluteVolume(I)V
+Landroid/bluetooth/BluetoothA2dp;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+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;
+Landroid/bluetooth/BluetoothA2dpSink;->ACTION_PLAYING_STATE_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothA2dpSink;->close()V
+Landroid/bluetooth/BluetoothA2dpSink;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothA2dpSink;->DBG:Z
+Landroid/bluetooth/BluetoothA2dpSink;->doBind()Z
+Landroid/bluetooth/BluetoothA2dpSink;->EXTRA_AUDIO_CONFIG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothA2dpSink;->getAudioConfig(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothAudioConfig;
+Landroid/bluetooth/BluetoothA2dpSink;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothA2dpSink;->isA2dpPlaying(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothA2dpSink;->isEnabled()Z
+Landroid/bluetooth/BluetoothA2dpSink;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothA2dpSink;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothA2dpSink;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothA2dpSink;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothA2dpSink;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothA2dpSink;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothA2dpSink;->mService:Landroid/bluetooth/IBluetoothA2dpSink;
+Landroid/bluetooth/BluetoothA2dpSink;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothA2dpSink;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothA2dpSink;->stateToString(I)Ljava/lang/String;
+Landroid/bluetooth/BluetoothA2dpSink;->STATE_NOT_PLAYING:I
+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
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->BT_STACK_STATE_STATE_ACTIVE:I
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->BT_STACK_STATE_STATE_IDLE:I
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->BT_STACK_STATE_STATE_SCANNING:I
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->getBluetoothStackState()I
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->getControllerEnergyUsed()J
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->getControllerIdleTimeMillis()J
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->getControllerRxTimeMillis()J
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->getControllerTxTimeMillis()J
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->getTimeStamp()J
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->getUidTraffic()[Landroid/bluetooth/UidTraffic;
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->isValid()Z
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->mBluetoothStackState:I
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->mControllerEnergyUsed:J
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->mControllerIdleTimeMs:J
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->mControllerRxTimeMs:J
+Landroid/bluetooth/BluetoothActivityEnergyInfo;->mControllerTxTimeMs:J
+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
+Landroid/bluetooth/BluetoothAdapter;->ACTION_BLE_ACL_CONNECTED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothAdapter;->ACTION_BLE_ACL_DISCONNECTED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothAdapter;->ACTION_BLUETOOTH_ADDRESS_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothAdapter;->ACTION_REQUEST_DISABLE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothAdapter;->ADDRESS_LENGTH:I
+Landroid/bluetooth/BluetoothAdapter;->BLUETOOTH_MANAGER_SERVICE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothAdapter;->changeApplicationBluetoothState(ZLandroid/bluetooth/BluetoothAdapter$BluetoothStateChangeCallback;)Z
+Landroid/bluetooth/BluetoothAdapter;->createNewRfcommSocketAndRecord(Ljava/lang/String;Ljava/util/UUID;ZZ)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->DBG:Z
+Landroid/bluetooth/BluetoothAdapter;->DEFAULT_MAC_ADDRESS:Ljava/lang/String;
+Landroid/bluetooth/BluetoothAdapter;->EXTRA_BLUETOOTH_ADDRESS:Ljava/lang/String;
+Landroid/bluetooth/BluetoothAdapter;->getBluetoothClass()Landroid/bluetooth/BluetoothClass;
+Landroid/bluetooth/BluetoothAdapter;->getControllerActivityEnergyInfo(I)Landroid/bluetooth/BluetoothActivityEnergyInfo;
+Landroid/bluetooth/BluetoothAdapter;->getDiscoveryEndMillis()J
+Landroid/bluetooth/BluetoothAdapter;->getLeAccess()Z
+Landroid/bluetooth/BluetoothAdapter;->getMaxConnectedAudioDevices()I
+Landroid/bluetooth/BluetoothAdapter;->getPeriodicAdvertisingManager()Landroid/bluetooth/le/PeriodicAdvertisingManager;
+Landroid/bluetooth/BluetoothAdapter;->getSupportedProfiles()Ljava/util/List;
+Landroid/bluetooth/BluetoothAdapter;->isHardwareTrackingFiltersAvailable()Z
+Landroid/bluetooth/BluetoothAdapter;->LE_PSM_CHARACTERISTIC_UUID:Ljava/util/UUID;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingEncryptedRfcommOn(I)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingInsecureL2capCoc(I)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingInsecureL2capOn(I)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingInsecureRfcommOn(I)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingL2capCoc(I)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingL2capOn(I)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingL2capOn(IZZ)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingRfcommOn(I)Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->listenUsingScoOn()Landroid/bluetooth/BluetoothServerSocket;
+Landroid/bluetooth/BluetoothAdapter;->mLeScanClients:Ljava/util/Map;
+Landroid/bluetooth/BluetoothAdapter;->mLock:Ljava/lang/Object;
+Landroid/bluetooth/BluetoothAdapter;->mManagerCallback:Landroid/bluetooth/IBluetoothManagerCallback;
+Landroid/bluetooth/BluetoothAdapter;->mManagerService:Landroid/bluetooth/IBluetoothManager;
+Landroid/bluetooth/BluetoothAdapter;->mProxyServiceStateCallbacks:Ljava/util/ArrayList;
+Landroid/bluetooth/BluetoothAdapter;->mServiceLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
+Landroid/bluetooth/BluetoothAdapter;->mToken:Landroid/os/IBinder;
+Landroid/bluetooth/BluetoothAdapter;->nameForState(I)Ljava/lang/String;
+Landroid/bluetooth/BluetoothAdapter;->readOutOfBandData()Landroid/util/Pair;
+Landroid/bluetooth/BluetoothAdapter;->removeServiceStateCallback(Landroid/bluetooth/IBluetoothManagerCallback;)V
+Landroid/bluetooth/BluetoothAdapter;->requestControllerActivityEnergyInfo(Landroid/os/ResultReceiver;)V
+Landroid/bluetooth/BluetoothAdapter;->sAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothAdapter;->sBluetoothLeAdvertiser:Landroid/bluetooth/le/BluetoothLeAdvertiser;
+Landroid/bluetooth/BluetoothAdapter;->sBluetoothLeScanner:Landroid/bluetooth/le/BluetoothLeScanner;
+Landroid/bluetooth/BluetoothAdapter;->setBluetoothClass(Landroid/bluetooth/BluetoothClass;)Z
+Landroid/bluetooth/BluetoothAdapter;->SOCKET_CHANNEL_AUTO_STATIC_NO_SDP:I
+Landroid/bluetooth/BluetoothAdapter;->sPeriodicAdvertisingManager:Landroid/bluetooth/le/PeriodicAdvertisingManager;
+Landroid/bluetooth/BluetoothAdapter;->STATE_BLE_ON:I
+Landroid/bluetooth/BluetoothAdapter;->STATE_BLE_TURNING_OFF:I
+Landroid/bluetooth/BluetoothAdapter;->STATE_BLE_TURNING_ON:I
+Landroid/bluetooth/BluetoothAdapter;->TAG:Ljava/lang/String;
+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
+Landroid/bluetooth/BluetoothAudioConfig;->getChannelConfig()I
+Landroid/bluetooth/BluetoothAudioConfig;->getSampleRate()I
+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
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_2:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_3:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_4:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_5:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_6:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_7:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_8:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_9:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_ANGLE:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_BACKWARD:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_CHAN_DOWN:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_CHAN_UP:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_CLEAR:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_CONT_MENU:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_DISP_INFO:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_DOT:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_DOWN:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_EJECT:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_ENTER:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_EXIT:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_F1:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_F2:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_F3:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_F4:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_F5:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_FAST_FOR:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_FAV_MENU:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_FORWARD:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_HELP:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_INPUT_SEL:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_LEFT:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_LEFT_DOWN:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_LEFT_UP:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_MUTE:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_PAGE_DOWN:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_PAGE_UP:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_PAUSE:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_PLAY:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_POWER:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_PREV_CHAN:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_RECORD:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_REWIND:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_RIGHT:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_RIGHT_DOWN:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_RIGHT_UP:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_ROOT_MENU:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_SELECT:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_SETUP_MENU:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_SOUND_SEL:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_STOP:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_SUBPICT:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_UP:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_VENDOR:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_VOL_DOWN:I
+Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_VOL_UP:I
+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;
+Landroid/bluetooth/BluetoothAvrcpController;->close()V
+Landroid/bluetooth/BluetoothAvrcpController;->DBG:Z
+Landroid/bluetooth/BluetoothAvrcpController;->doBind()Z
+Landroid/bluetooth/BluetoothAvrcpController;->EXTRA_PLAYER_SETTING:Ljava/lang/String;
+Landroid/bluetooth/BluetoothAvrcpController;->getPlayerSettings(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothAvrcpPlayerSettings;
+Landroid/bluetooth/BluetoothAvrcpController;->isEnabled()Z
+Landroid/bluetooth/BluetoothAvrcpController;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothAvrcpController;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothAvrcpController;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothAvrcpController;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothAvrcpController;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothAvrcpController;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothAvrcpController;->mService:Landroid/bluetooth/IBluetoothAvrcpController;
+Landroid/bluetooth/BluetoothAvrcpController;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothAvrcpController;->sendGroupNavigationCmd(Landroid/bluetooth/BluetoothDevice;II)V
+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
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->getSettings()I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->getSettingValue(I)I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->mSettings:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->mSettingsValue:Ljava/util/Map;
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->SETTING_EQUALIZER:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->SETTING_REPEAT:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->SETTING_SCAN:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->SETTING_SHUFFLE:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->STATE_ALL_TRACK:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->STATE_GROUP:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->STATE_INVALID:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->STATE_OFF:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->STATE_ON:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->STATE_SINGLE_TRACK:I
+Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothClass$Device$Major;->BITMASK:I
+Landroid/bluetooth/BluetoothClass$Device;->BITMASK:I
+Landroid/bluetooth/BluetoothClass$Device;->PERIPHERAL_KEYBOARD:I
+Landroid/bluetooth/BluetoothClass$Device;->PERIPHERAL_KEYBOARD_POINTING:I
+Landroid/bluetooth/BluetoothClass$Device;->PERIPHERAL_NON_KEYBOARD_NON_POINTING:I
+Landroid/bluetooth/BluetoothClass$Device;->PERIPHERAL_POINTING:I
+Landroid/bluetooth/BluetoothClass$Service;->BITMASK:I
+Landroid/bluetooth/BluetoothClass;->ERROR:I
+Landroid/bluetooth/BluetoothClass;->getClassOfDevice()I
+Landroid/bluetooth/BluetoothClass;->getClassOfDeviceBytes()[B
+Landroid/bluetooth/BluetoothClass;->mClass:I
+Landroid/bluetooth/BluetoothClass;->PROFILE_A2DP_SINK:I
+Landroid/bluetooth/BluetoothClass;->PROFILE_HID:I
+Landroid/bluetooth/BluetoothClass;->PROFILE_NAP:I
+Landroid/bluetooth/BluetoothClass;->PROFILE_OPP:I
+Landroid/bluetooth/BluetoothClass;->PROFILE_PANU:I
+Landroid/bluetooth/BluetoothCodecConfig;->appendCapabilityToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/bluetooth/BluetoothCodecConfig;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/bluetooth/BluetoothCodecConfig;->getCodecName()Ljava/lang/String;
+Landroid/bluetooth/BluetoothCodecConfig;->isMandatoryCodec()Z
+Landroid/bluetooth/BluetoothCodecConfig;->isValid()Z
+Landroid/bluetooth/BluetoothCodecConfig;->mBitsPerSample:I
+Landroid/bluetooth/BluetoothCodecConfig;->mChannelMode:I
+Landroid/bluetooth/BluetoothCodecConfig;->mCodecPriority:I
+Landroid/bluetooth/BluetoothCodecConfig;->mCodecSpecific1:J
+Landroid/bluetooth/BluetoothCodecConfig;->mCodecSpecific2:J
+Landroid/bluetooth/BluetoothCodecConfig;->mCodecSpecific3:J
+Landroid/bluetooth/BluetoothCodecConfig;->mCodecSpecific4:J
+Landroid/bluetooth/BluetoothCodecConfig;->mCodecType:I
+Landroid/bluetooth/BluetoothCodecConfig;->mSampleRate:I
+Landroid/bluetooth/BluetoothCodecConfig;->sameAudioFeedingParameters(Landroid/bluetooth/BluetoothCodecConfig;)Z
+Landroid/bluetooth/BluetoothCodecStatus;-><init>(Landroid/bluetooth/BluetoothCodecConfig;[Landroid/bluetooth/BluetoothCodecConfig;[Landroid/bluetooth/BluetoothCodecConfig;)V
+Landroid/bluetooth/BluetoothCodecStatus;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/bluetooth/BluetoothCodecStatus;->mCodecConfig:Landroid/bluetooth/BluetoothCodecConfig;
+Landroid/bluetooth/BluetoothCodecStatus;->mCodecsLocalCapabilities:[Landroid/bluetooth/BluetoothCodecConfig;
+Landroid/bluetooth/BluetoothCodecStatus;->mCodecsSelectableCapabilities:[Landroid/bluetooth/BluetoothCodecConfig;
+Landroid/bluetooth/BluetoothCodecStatus;->sameCapabilities([Landroid/bluetooth/BluetoothCodecConfig;[Landroid/bluetooth/BluetoothCodecConfig;)Z
+Landroid/bluetooth/BluetoothDevice;->ACTION_BATTERY_LEVEL_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->ACTION_CONNECTION_ACCESS_CANCEL:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->ACTION_CONNECTION_ACCESS_REPLY:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->ACTION_CONNECTION_ACCESS_REQUEST:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->ACTION_MAS_INSTANCE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->ACTION_NAME_FAILED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->BATTERY_LEVEL_UNKNOWN:I
+Landroid/bluetooth/BluetoothDevice;->BOND_SUCCESS:I
+Landroid/bluetooth/BluetoothDevice;->CONNECTION_ACCESS_NO:I
+Landroid/bluetooth/BluetoothDevice;->CONNECTION_ACCESS_YES:I
+Landroid/bluetooth/BluetoothDevice;->CONNECTION_STATE_CONNECTED:I
+Landroid/bluetooth/BluetoothDevice;->CONNECTION_STATE_DISCONNECTED:I
+Landroid/bluetooth/BluetoothDevice;->CONNECTION_STATE_ENCRYPTED_BREDR:I
+Landroid/bluetooth/BluetoothDevice;->CONNECTION_STATE_ENCRYPTED_LE:I
+Landroid/bluetooth/BluetoothDevice;->createBondOutOfBand(ILandroid/bluetooth/OobData;)Z
+Landroid/bluetooth/BluetoothDevice;->createInsecureL2capCocSocket(II)Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothDevice;->createInsecureL2capSocket(I)Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothDevice;->createL2capCocSocket(II)Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothDevice;->createL2capSocket(I)Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothDevice;->DBG:Z
+Landroid/bluetooth/BluetoothDevice;->EXTRA_ACCESS_REQUEST_TYPE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_ALWAYS_ALLOWED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_BATTERY_LEVEL:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_CLASS_NAME:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_CONNECTION_ACCESS_RESULT:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_MAS_INSTANCE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_PACKAGE_NAME:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->EXTRA_SDP_RECORD:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->getSimAccessPermission()I
+Landroid/bluetooth/BluetoothDevice;->isBluetoothEnabled()Z
+Landroid/bluetooth/BluetoothDevice;->mAddress:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevice;->PAIRING_VARIANT_CONSENT:I
+Landroid/bluetooth/BluetoothDevice;->PAIRING_VARIANT_DISPLAY_PASSKEY:I
+Landroid/bluetooth/BluetoothDevice;->PAIRING_VARIANT_DISPLAY_PIN:I
+Landroid/bluetooth/BluetoothDevice;->PAIRING_VARIANT_OOB_CONSENT:I
+Landroid/bluetooth/BluetoothDevice;->PAIRING_VARIANT_PASSKEY:I
+Landroid/bluetooth/BluetoothDevice;->PAIRING_VARIANT_PIN_16_DIGITS:I
+Landroid/bluetooth/BluetoothDevice;->REQUEST_TYPE_MESSAGE_ACCESS:I
+Landroid/bluetooth/BluetoothDevice;->REQUEST_TYPE_PHONEBOOK_ACCESS:I
+Landroid/bluetooth/BluetoothDevice;->REQUEST_TYPE_PROFILE_CONNECTION:I
+Landroid/bluetooth/BluetoothDevice;->REQUEST_TYPE_SIM_ACCESS:I
+Landroid/bluetooth/BluetoothDevice;->sdpSearch(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothDevice;->setDeviceOutOfBandData([B[B)Z
+Landroid/bluetooth/BluetoothDevice;->setRemoteOutOfBandData()Z
+Landroid/bluetooth/BluetoothDevice;->sService:Landroid/bluetooth/IBluetooth;
+Landroid/bluetooth/BluetoothDevice;->sStateChangeCallback:Landroid/bluetooth/IBluetoothManagerCallback;
+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;
+Landroid/bluetooth/BluetoothDevicePicker;->EXTRA_LAUNCH_CLASS:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevicePicker;->EXTRA_LAUNCH_PACKAGE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevicePicker;->EXTRA_NEED_AUTH:Ljava/lang/String;
+Landroid/bluetooth/BluetoothDevicePicker;->FILTER_TYPE_ALL:I
+Landroid/bluetooth/BluetoothDevicePicker;->FILTER_TYPE_AUDIO:I
+Landroid/bluetooth/BluetoothDevicePicker;->FILTER_TYPE_NAP:I
+Landroid/bluetooth/BluetoothDevicePicker;->FILTER_TYPE_PANU:I
+Landroid/bluetooth/BluetoothDevicePicker;->FILTER_TYPE_TRANSFER:I
+Landroid/bluetooth/BluetoothGatt;-><init>(Landroid/bluetooth/IBluetoothGatt;Landroid/bluetooth/BluetoothDevice;IZI)V
+Landroid/bluetooth/BluetoothGatt;->AUTHENTICATION_MITM:I
+Landroid/bluetooth/BluetoothGatt;->AUTHENTICATION_NONE:I
+Landroid/bluetooth/BluetoothGatt;->AUTHENTICATION_NO_MITM:I
+Landroid/bluetooth/BluetoothGatt;->AUTH_RETRY_STATE_IDLE:I
+Landroid/bluetooth/BluetoothGatt;->AUTH_RETRY_STATE_MITM:I
+Landroid/bluetooth/BluetoothGatt;->AUTH_RETRY_STATE_NO_MITM:I
+Landroid/bluetooth/BluetoothGatt;->CONN_STATE_CLOSED:I
+Landroid/bluetooth/BluetoothGatt;->CONN_STATE_CONNECTED:I
+Landroid/bluetooth/BluetoothGatt;->CONN_STATE_CONNECTING:I
+Landroid/bluetooth/BluetoothGatt;->CONN_STATE_DISCONNECTING:I
+Landroid/bluetooth/BluetoothGatt;->CONN_STATE_IDLE:I
+Landroid/bluetooth/BluetoothGatt;->DBG:Z
+Landroid/bluetooth/BluetoothGatt;->discoverServiceByUuid(Ljava/util/UUID;)Z
+Landroid/bluetooth/BluetoothGatt;->getCharacteristicById(Landroid/bluetooth/BluetoothDevice;I)Landroid/bluetooth/BluetoothGattCharacteristic;
+Landroid/bluetooth/BluetoothGatt;->getDescriptorById(Landroid/bluetooth/BluetoothDevice;I)Landroid/bluetooth/BluetoothGattDescriptor;
+Landroid/bluetooth/BluetoothGatt;->getService(Landroid/bluetooth/BluetoothDevice;Ljava/util/UUID;I)Landroid/bluetooth/BluetoothGattService;
+Landroid/bluetooth/BluetoothGatt;->mBluetoothGattCallback:Landroid/bluetooth/IBluetoothGattCallback;
+Landroid/bluetooth/BluetoothGatt;->mConnState:I
+Landroid/bluetooth/BluetoothGatt;->mDevice:Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothGatt;->mHandler:Landroid/os/Handler;
+Landroid/bluetooth/BluetoothGatt;->mOpportunistic:Z
+Landroid/bluetooth/BluetoothGatt;->mPhy:I
+Landroid/bluetooth/BluetoothGatt;->mServices:Ljava/util/List;
+Landroid/bluetooth/BluetoothGatt;->mStateLock:Ljava/lang/Object;
+Landroid/bluetooth/BluetoothGatt;->readUsingCharacteristicUuid(Ljava/util/UUID;II)Z
+Landroid/bluetooth/BluetoothGatt;->registerApp(Landroid/bluetooth/BluetoothGattCallback;Landroid/os/Handler;)Z
+Landroid/bluetooth/BluetoothGatt;->requestLeConnectionUpdate(IIIIII)Z
+Landroid/bluetooth/BluetoothGatt;->runOrQueueCallback(Ljava/lang/Runnable;)V
+Landroid/bluetooth/BluetoothGatt;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothGatt;->VDBG:Z
+Landroid/bluetooth/BluetoothGattCallback;->onConnectionUpdated(Landroid/bluetooth/BluetoothGatt;IIII)V
+Landroid/bluetooth/BluetoothGattCharacteristic;-><init>(Landroid/bluetooth/BluetoothGattService;Ljava/util/UUID;III)V
+Landroid/bluetooth/BluetoothGattCharacteristic;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/BluetoothGattCharacteristic;-><init>(Ljava/util/UUID;III)V
+Landroid/bluetooth/BluetoothGattCharacteristic;->bytesToFloat(BB)F
+Landroid/bluetooth/BluetoothGattCharacteristic;->bytesToFloat(BBBB)F
+Landroid/bluetooth/BluetoothGattCharacteristic;->getDescriptor(Ljava/util/UUID;I)Landroid/bluetooth/BluetoothGattDescriptor;
+Landroid/bluetooth/BluetoothGattCharacteristic;->getKeySize()I
+Landroid/bluetooth/BluetoothGattCharacteristic;->getTypeLen(I)I
+Landroid/bluetooth/BluetoothGattCharacteristic;->initCharacteristic(Landroid/bluetooth/BluetoothGattService;Ljava/util/UUID;III)V
+Landroid/bluetooth/BluetoothGattCharacteristic;->intToSignedBits(II)I
+Landroid/bluetooth/BluetoothGattCharacteristic;->mKeySize:I
+Landroid/bluetooth/BluetoothGattCharacteristic;->mPermissions:I
+Landroid/bluetooth/BluetoothGattCharacteristic;->mProperties:I
+Landroid/bluetooth/BluetoothGattCharacteristic;->mUuid:Ljava/util/UUID;
+Landroid/bluetooth/BluetoothGattCharacteristic;->mValue:[B
+Landroid/bluetooth/BluetoothGattCharacteristic;->mWriteType:I
+Landroid/bluetooth/BluetoothGattCharacteristic;->setInstanceId(I)V
+Landroid/bluetooth/BluetoothGattCharacteristic;->unsignedBytesToInt(BB)I
+Landroid/bluetooth/BluetoothGattCharacteristic;->unsignedBytesToInt(BBBB)I
+Landroid/bluetooth/BluetoothGattCharacteristic;->unsignedByteToInt(B)I
+Landroid/bluetooth/BluetoothGattCharacteristic;->unsignedToSigned(II)I
+Landroid/bluetooth/BluetoothGattDescriptor;-><init>(Landroid/bluetooth/BluetoothGattCharacteristic;Ljava/util/UUID;II)V
+Landroid/bluetooth/BluetoothGattDescriptor;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/BluetoothGattDescriptor;-><init>(Ljava/util/UUID;II)V
+Landroid/bluetooth/BluetoothGattDescriptor;->getInstanceId()I
+Landroid/bluetooth/BluetoothGattDescriptor;->initDescriptor(Landroid/bluetooth/BluetoothGattCharacteristic;Ljava/util/UUID;II)V
+Landroid/bluetooth/BluetoothGattDescriptor;->mPermissions:I
+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;
+Landroid/bluetooth/BluetoothGattIncludedService;->getInstanceId()I
+Landroid/bluetooth/BluetoothGattIncludedService;->getType()I
+Landroid/bluetooth/BluetoothGattIncludedService;->getUuid()Ljava/util/UUID;
+Landroid/bluetooth/BluetoothGattIncludedService;->mInstanceId:I
+Landroid/bluetooth/BluetoothGattIncludedService;->mServiceType:I
+Landroid/bluetooth/BluetoothGattIncludedService;->mUuid:Ljava/util/UUID;
+Landroid/bluetooth/BluetoothGattServer;-><init>(Landroid/bluetooth/IBluetoothGatt;I)V
+Landroid/bluetooth/BluetoothGattServer;->CALLBACK_REG_TIMEOUT:I
+Landroid/bluetooth/BluetoothGattServer;->DBG:Z
+Landroid/bluetooth/BluetoothGattServer;->getCharacteristicByHandle(I)Landroid/bluetooth/BluetoothGattCharacteristic;
+Landroid/bluetooth/BluetoothGattServer;->getDescriptorByHandle(I)Landroid/bluetooth/BluetoothGattDescriptor;
+Landroid/bluetooth/BluetoothGattServer;->getService(Ljava/util/UUID;II)Landroid/bluetooth/BluetoothGattService;
+Landroid/bluetooth/BluetoothGattServer;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothGattServer;->mBluetoothGattServerCallback:Landroid/bluetooth/IBluetoothGattServerCallback;
+Landroid/bluetooth/BluetoothGattServer;->mCallback:Landroid/bluetooth/BluetoothGattServerCallback;
+Landroid/bluetooth/BluetoothGattServer;->mPendingService:Landroid/bluetooth/BluetoothGattService;
+Landroid/bluetooth/BluetoothGattServer;->mServerIf:I
+Landroid/bluetooth/BluetoothGattServer;->mServerIfLock:Ljava/lang/Object;
+Landroid/bluetooth/BluetoothGattServer;->mService:Landroid/bluetooth/IBluetoothGatt;
+Landroid/bluetooth/BluetoothGattServer;->mServices:Ljava/util/List;
+Landroid/bluetooth/BluetoothGattServer;->mTransport:I
+Landroid/bluetooth/BluetoothGattServer;->registerCallback(Landroid/bluetooth/BluetoothGattServerCallback;)Z
+Landroid/bluetooth/BluetoothGattServer;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothGattServer;->unregisterCallback()V
+Landroid/bluetooth/BluetoothGattServer;->VDBG:Z
+Landroid/bluetooth/BluetoothGattServerCallback;->onConnectionUpdated(Landroid/bluetooth/BluetoothDevice;IIII)V
+Landroid/bluetooth/BluetoothGattService;-><init>(Landroid/bluetooth/BluetoothDevice;Ljava/util/UUID;II)V
+Landroid/bluetooth/BluetoothGattService;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/BluetoothGattService;-><init>(Ljava/util/UUID;II)V
+Landroid/bluetooth/BluetoothGattService;->addIncludedService(Landroid/bluetooth/BluetoothGattService;)V
+Landroid/bluetooth/BluetoothGattService;->getCharacteristic(Ljava/util/UUID;I)Landroid/bluetooth/BluetoothGattCharacteristic;
+Landroid/bluetooth/BluetoothGattService;->getDevice()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothGattService;->getHandles()I
+Landroid/bluetooth/BluetoothGattService;->isAdvertisePreferred()Z
+Landroid/bluetooth/BluetoothGattService;->mAdvertisePreferred:Z
+Landroid/bluetooth/BluetoothGattService;->mHandles:I
+Landroid/bluetooth/BluetoothGattService;->mInstanceId:I
+Landroid/bluetooth/BluetoothGattService;->mServiceType:I
+Landroid/bluetooth/BluetoothGattService;->mUuid:Ljava/util/UUID;
+Landroid/bluetooth/BluetoothGattService;->setDevice(Landroid/bluetooth/BluetoothDevice;)V
+Landroid/bluetooth/BluetoothGattService;->setHandles(I)V
+Landroid/bluetooth/BluetoothHeadset;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+Landroid/bluetooth/BluetoothHeadset;->ACTION_HF_INDICATORS_VALUE_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadset;->clccResponse(IIIIZLjava/lang/String;I)V
+Landroid/bluetooth/BluetoothHeadset;->DBG:Z
+Landroid/bluetooth/BluetoothHeadset;->doBind()Z
+Landroid/bluetooth/BluetoothHeadset;->doUnbind()V
+Landroid/bluetooth/BluetoothHeadset;->EXTRA_HF_INDICATORS_IND_ID:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadset;->EXTRA_HF_INDICATORS_IND_VALUE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadset;->getAudioRouteAllowed()Z
+Landroid/bluetooth/BluetoothHeadset;->isAudioOn()Z
+Landroid/bluetooth/BluetoothHeadset;->isBluetoothVoiceDialingEnabled(Landroid/content/Context;)Z
+Landroid/bluetooth/BluetoothHeadset;->isDisabled()Z
+Landroid/bluetooth/BluetoothHeadset;->isInbandRingingEnabled()Z
+Landroid/bluetooth/BluetoothHeadset;->isInbandRingingSupported(Landroid/content/Context;)Z
+Landroid/bluetooth/BluetoothHeadset;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadset;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothHeadset;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothHeadset;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothHeadset;->mConnection:Landroid/bluetooth/IBluetoothProfileServiceConnection;
+Landroid/bluetooth/BluetoothHeadset;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothHeadset;->MESSAGE_HEADSET_SERVICE_CONNECTED:I
+Landroid/bluetooth/BluetoothHeadset;->MESSAGE_HEADSET_SERVICE_DISCONNECTED:I
+Landroid/bluetooth/BluetoothHeadset;->mHandler:Landroid/os/Handler;
+Landroid/bluetooth/BluetoothHeadset;->mService:Landroid/bluetooth/IBluetoothHeadset;
+Landroid/bluetooth/BluetoothHeadset;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothHeadset;->setAudioRouteAllowed(Z)V
+Landroid/bluetooth/BluetoothHeadset;->setForceScoAudio(Z)V
+Landroid/bluetooth/BluetoothHeadset;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadset;->VDBG:Z
+Landroid/bluetooth/BluetoothHeadset;->VENDOR_SPECIFIC_HEADSET_EVENT_IPHONEACCEV:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadset;->VENDOR_SPECIFIC_HEADSET_EVENT_IPHONEACCEV_BATTERY_LEVEL:I
+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;
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_CALL_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_LAST_VTAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT_ERROR:I
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT_ERROR_BLACKLISTED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT_ERROR_BUSY:I
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT_ERROR_CME:I
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT_ERROR_DELAYED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT_ERROR_NO_ANSWER:I
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT_ERROR_NO_CARRIER:I
+Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_RESULT_OK:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CALL_ACCEPT_HOLD:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CALL_ACCEPT_NONE:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CALL_ACCEPT_TERMINATE:I
+Landroid/bluetooth/BluetoothHeadsetClient;->close()V
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_CORPORATE_PERSONALIZATION_PIN_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_CORPORATE_PERSONALIZATION_PUK_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_DIAL_STRING_TOO_LONG:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_EAP_NOT_SUPPORTED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_EMERGENCY_SERVICE_ONLY:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_HIDDEN_KEY_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_INCORRECT_PARAMETERS:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_INCORRECT_PASSWORD:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_INVALID_CHARACTER_IN_DIAL_STRING:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_INVALID_CHARACTER_IN_TEXT_STRING:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_INVALID_INDEX:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_MEMORY_FAILURE:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_MEMORY_FULL:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NETWORK_PERSONALIZATION_PIN_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NETWORK_PERSONALIZATION_PUK_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NETWORK_SUBSET_PERSONALIZATION_PIN_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NETWORK_SUBSET_PERSONALIZATION_PUK_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NETWORK_TIMEOUT:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NOT_FOUND:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NOT_SUPPORTED_FOR_VOIP:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NO_CONNECTION_TO_PHONE:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NO_NETWORK_SERVICE:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_NO_SIMULTANOUS_VOIP_CS_CALLS:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_OPERATION_NOT_ALLOWED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_OPERATION_NOT_SUPPORTED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_PHFSIM_PIN_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_PHFSIM_PUK_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_PHONE_FAILURE:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_PHSIM_PIN_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SERVICE_PROVIDER_PERSONALIZATION_PIN_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SERVICE_PROVIDER_PERSONALIZATION_PUK_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIM_BUSY:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIM_FAILURE:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIM_NOT_INSERTED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIM_PIN2_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIM_PIN_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIM_PUK2_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIM_PUK_REQUIRED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIM_WRONG:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_SIP_RESPONSE_CODE:I
+Landroid/bluetooth/BluetoothHeadsetClient;->CME_TEXT_STRING_TOO_LONG:I
+Landroid/bluetooth/BluetoothHeadsetClient;->connectAudio(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->DBG:Z
+Landroid/bluetooth/BluetoothHeadsetClient;->dial(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;)Landroid/bluetooth/BluetoothHeadsetClientCall;
+Landroid/bluetooth/BluetoothHeadsetClient;->disconnectAudio(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->doBind()Z
+Landroid/bluetooth/BluetoothHeadsetClient;->enterPrivateMode(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->explicitCallTransfer(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_3WAY_CALLING:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_ACCEPT_HELD_OR_WAITING_CALL:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_ATTACH_NUMBER_TO_VT:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_ECC:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_MERGE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_MERGE_AND_DETACH:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_REJECT_CALL:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_RELEASE_AND_ACCEPT:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_RELEASE_HELD_OR_WAITING_CALL:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_RESPONSE_AND_HOLD:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AG_FEATURE_VOICE_RECOGNITION:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_AUDIO_WBS:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_BATTERY_LEVEL:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_CALL:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_CME_CODE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_IN_BAND_RING:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_NETWORK_ROAMING:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_NETWORK_SIGNAL_STRENGTH:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_NETWORK_STATUS:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_NUMBER:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_OPERATOR_NAME:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_RESULT_CODE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_SUBSCRIBER_INFO:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->EXTRA_VOICE_RECOGNITION:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClient;->getAudioRouteAllowed(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->getCurrentAgEvents(Landroid/bluetooth/BluetoothDevice;)Landroid/os/Bundle;
+Landroid/bluetooth/BluetoothHeadsetClient;->getCurrentAgFeatures(Landroid/bluetooth/BluetoothDevice;)Landroid/os/Bundle;
+Landroid/bluetooth/BluetoothHeadsetClient;->getCurrentCalls(Landroid/bluetooth/BluetoothDevice;)Ljava/util/List;
+Landroid/bluetooth/BluetoothHeadsetClient;->getLastVoiceTagNumber(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothHeadsetClient;->holdCall(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->isEnabled()Z
+Landroid/bluetooth/BluetoothHeadsetClient;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothHeadsetClient;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothHeadsetClient;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothHeadsetClient;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothHeadsetClient;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothHeadsetClient;->mService:Landroid/bluetooth/IBluetoothHeadsetClient;
+Landroid/bluetooth/BluetoothHeadsetClient;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothHeadsetClient;->sendDTMF(Landroid/bluetooth/BluetoothDevice;B)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->setAudioRouteAllowed(Landroid/bluetooth/BluetoothDevice;Z)V
+Landroid/bluetooth/BluetoothHeadsetClient;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->startVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHeadsetClient;->STATE_AUDIO_CONNECTED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->STATE_AUDIO_CONNECTING:I
+Landroid/bluetooth/BluetoothHeadsetClient;->STATE_AUDIO_DISCONNECTED:I
+Landroid/bluetooth/BluetoothHeadsetClient;->stopVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
+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
+Landroid/bluetooth/BluetoothHeadsetClientCall;->CALL_STATE_ALERTING:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->CALL_STATE_DIALING:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->CALL_STATE_HELD:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->CALL_STATE_HELD_BY_RESPONSE_AND_HOLD:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->CALL_STATE_INCOMING:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->CALL_STATE_TERMINATED:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->CALL_STATE_WAITING:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/bluetooth/BluetoothHeadsetClientCall;->getCreationElapsedMilli()J
+Landroid/bluetooth/BluetoothHeadsetClientCall;->getDevice()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothHeadsetClientCall;->getUUID()Ljava/util/UUID;
+Landroid/bluetooth/BluetoothHeadsetClientCall;->isInBandRing()Z
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mCreationElapsedMilli:J
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mDevice:Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mId:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mInBandRing:Z
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mMultiParty:Z
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mNumber:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mOutgoing:Z
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mState:I
+Landroid/bluetooth/BluetoothHeadsetClientCall;->mUUID:Ljava/util/UUID;
+Landroid/bluetooth/BluetoothHeadsetClientCall;->setMultiParty(Z)V
+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
+Landroid/bluetooth/BluetoothHealth$BluetoothHealthCallbackWrapper;->onHealthChannelStateChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/BluetoothDevice;IILandroid/os/ParcelFileDescriptor;I)V
+Landroid/bluetooth/BluetoothHealth;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+Landroid/bluetooth/BluetoothHealth;->CHANNEL_TYPE_ANY:I
+Landroid/bluetooth/BluetoothHealth;->checkAppParam(Ljava/lang/String;IILandroid/bluetooth/BluetoothHealthCallback;)Z
+Landroid/bluetooth/BluetoothHealth;->close()V
+Landroid/bluetooth/BluetoothHealth;->connectChannelToSink(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z
+Landroid/bluetooth/BluetoothHealth;->DBG:Z
+Landroid/bluetooth/BluetoothHealth;->doBind()Z
+Landroid/bluetooth/BluetoothHealth;->HEALTH_OPERATION_ERROR:I
+Landroid/bluetooth/BluetoothHealth;->HEALTH_OPERATION_GENERIC_FAILURE:I
+Landroid/bluetooth/BluetoothHealth;->HEALTH_OPERATION_INVALID_ARGS:I
+Landroid/bluetooth/BluetoothHealth;->HEALTH_OPERATION_NOT_ALLOWED:I
+Landroid/bluetooth/BluetoothHealth;->HEALTH_OPERATION_NOT_FOUND:I
+Landroid/bluetooth/BluetoothHealth;->HEALTH_OPERATION_SUCCESS:I
+Landroid/bluetooth/BluetoothHealth;->isEnabled()Z
+Landroid/bluetooth/BluetoothHealth;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHealth;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothHealth;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothHealth;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothHealth;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothHealth;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothHealth;->mService:Landroid/bluetooth/IBluetoothHealth;
+Landroid/bluetooth/BluetoothHealth;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothHealth;->registerAppConfiguration(Ljava/lang/String;IIILandroid/bluetooth/BluetoothHealthCallback;)Z
+Landroid/bluetooth/BluetoothHealth;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHealth;->VDBG:Z
+Landroid/bluetooth/BluetoothHealthAppConfiguration;-><init>(Ljava/lang/String;I)V
+Landroid/bluetooth/BluetoothHealthAppConfiguration;-><init>(Ljava/lang/String;III)V
+Landroid/bluetooth/BluetoothHealthAppConfiguration;->getChannelType()I
+Landroid/bluetooth/BluetoothHealthAppConfiguration;->mChannelType:I
+Landroid/bluetooth/BluetoothHealthAppConfiguration;->mDataType:I
+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;
+Landroid/bluetooth/BluetoothHearingAid;->adjustVolume(I)V
+Landroid/bluetooth/BluetoothHearingAid;->close()V
+Landroid/bluetooth/BluetoothHearingAid;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHearingAid;->DBG:Z
+Landroid/bluetooth/BluetoothHearingAid;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHearingAid;->doBind()V
+Landroid/bluetooth/BluetoothHearingAid;->getDeviceMode(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothHearingAid;->getDeviceSide(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothHearingAid;->getHiSyncId(Landroid/bluetooth/BluetoothDevice;)J
+Landroid/bluetooth/BluetoothHearingAid;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothHearingAid;->getVolume()I
+Landroid/bluetooth/BluetoothHearingAid;->HI_SYNC_ID_INVALID:J
+Landroid/bluetooth/BluetoothHearingAid;->isEnabled()Z
+Landroid/bluetooth/BluetoothHearingAid;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHearingAid;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothHearingAid;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothHearingAid;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothHearingAid;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothHearingAid;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothHearingAid;->MODE_BINAURAL:I
+Landroid/bluetooth/BluetoothHearingAid;->MODE_MONAURAL:I
+Landroid/bluetooth/BluetoothHearingAid;->mService:Landroid/bluetooth/IBluetoothHearingAid;
+Landroid/bluetooth/BluetoothHearingAid;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothHearingAid;->mServiceLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
+Landroid/bluetooth/BluetoothHearingAid;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothHearingAid;->setVolume(I)V
+Landroid/bluetooth/BluetoothHearingAid;->SIDE_LEFT:I
+Landroid/bluetooth/BluetoothHearingAid;->SIDE_RIGHT:I
+Landroid/bluetooth/BluetoothHearingAid;->stateToString(I)Ljava/lang/String;
+Landroid/bluetooth/BluetoothHearingAid;->STATE_NOT_PLAYING:I
+Landroid/bluetooth/BluetoothHearingAid;->STATE_PLAYING:I
+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;
+Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->onAppStatusChanged(Landroid/bluetooth/BluetoothDevice;Z)V
+Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->onConnectionStateChanged(Landroid/bluetooth/BluetoothDevice;I)V
+Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->onGetReport(Landroid/bluetooth/BluetoothDevice;BBI)V
+Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->onInterruptData(Landroid/bluetooth/BluetoothDevice;B[B)V
+Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->onSetProtocol(Landroid/bluetooth/BluetoothDevice;B)V
+Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->onSetReport(Landroid/bluetooth/BluetoothDevice;BB[B)V
+Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->onVirtualCableUnplug(Landroid/bluetooth/BluetoothDevice;)V
+Landroid/bluetooth/BluetoothHidDevice;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+Landroid/bluetooth/BluetoothHidDevice;->close()V
+Landroid/bluetooth/BluetoothHidDevice;->doBind()Z
+Landroid/bluetooth/BluetoothHidDevice;->doUnbind()V
+Landroid/bluetooth/BluetoothHidDevice;->getUserAppName()Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidDevice;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothHidDevice;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothHidDevice;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothHidDevice;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothHidDevice;->mService:Landroid/bluetooth/IBluetoothHidDevice;
+Landroid/bluetooth/BluetoothHidDevice;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothHidDevice;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;->mDelayVariation:I
+Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;->mLatency:I
+Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;->mPeakBandwidth:I
+Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;->mServiceType:I
+Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;->mTokenBucketSize:I
+Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;->mTokenRate:I
+Landroid/bluetooth/BluetoothHidDeviceAppSdpSettings;->mDescription:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidDeviceAppSdpSettings;->mDescriptors:[B
+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;
+Landroid/bluetooth/BluetoothHidHost;->ACTION_IDLE_TIME_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->ACTION_PROTOCOL_MODE_CHANGED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->ACTION_REPORT:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->ACTION_VIRTUAL_UNPLUG_STATUS:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->close()V
+Landroid/bluetooth/BluetoothHidHost;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHidHost;->DBG:Z
+Landroid/bluetooth/BluetoothHidHost;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHidHost;->doBind()Z
+Landroid/bluetooth/BluetoothHidHost;->EXTRA_IDLE_TIME:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->EXTRA_PROTOCOL_MODE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->EXTRA_REPORT:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->EXTRA_REPORT_BUFFER_SIZE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->EXTRA_REPORT_ID:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->EXTRA_REPORT_TYPE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->EXTRA_STATUS:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->EXTRA_VIRTUAL_UNPLUG_STATUS:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->getIdleTime(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHidHost;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothHidHost;->getProtocolMode(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHidHost;->getReport(Landroid/bluetooth/BluetoothDevice;BBI)Z
+Landroid/bluetooth/BluetoothHidHost;->INPUT_CONNECT_FAILED_ALREADY_CONNECTED:I
+Landroid/bluetooth/BluetoothHidHost;->INPUT_CONNECT_FAILED_ATTEMPT_FAILED:I
+Landroid/bluetooth/BluetoothHidHost;->INPUT_DISCONNECT_FAILED_NOT_CONNECTED:I
+Landroid/bluetooth/BluetoothHidHost;->INPUT_OPERATION_GENERIC_FAILURE:I
+Landroid/bluetooth/BluetoothHidHost;->INPUT_OPERATION_SUCCESS:I
+Landroid/bluetooth/BluetoothHidHost;->isEnabled()Z
+Landroid/bluetooth/BluetoothHidHost;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothHidHost;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothHidHost;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothHidHost;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothHidHost;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothHidHost;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothHidHost;->mService:Landroid/bluetooth/IBluetoothHidHost;
+Landroid/bluetooth/BluetoothHidHost;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothHidHost;->PROTOCOL_BOOT_MODE:I
+Landroid/bluetooth/BluetoothHidHost;->PROTOCOL_REPORT_MODE:I
+Landroid/bluetooth/BluetoothHidHost;->PROTOCOL_UNSUPPORTED_MODE:I
+Landroid/bluetooth/BluetoothHidHost;->REPORT_TYPE_FEATURE:B
+Landroid/bluetooth/BluetoothHidHost;->REPORT_TYPE_INPUT:B
+Landroid/bluetooth/BluetoothHidHost;->REPORT_TYPE_OUTPUT:B
+Landroid/bluetooth/BluetoothHidHost;->sendData(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;)Z
+Landroid/bluetooth/BluetoothHidHost;->setIdleTime(Landroid/bluetooth/BluetoothDevice;B)Z
+Landroid/bluetooth/BluetoothHidHost;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothHidHost;->setProtocolMode(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothHidHost;->setReport(Landroid/bluetooth/BluetoothDevice;BLjava/lang/String;)Z
+Landroid/bluetooth/BluetoothHidHost;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothHidHost;->VDBG:Z
+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
+Landroid/bluetooth/BluetoothManager;->DBG:Z
+Landroid/bluetooth/BluetoothManager;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+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
+Landroid/bluetooth/BluetoothMap;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMap;->DBG:Z
+Landroid/bluetooth/BluetoothMap;->doBind()Z
+Landroid/bluetooth/BluetoothMap;->doesClassMatchSink(Landroid/bluetooth/BluetoothClass;)Z
+Landroid/bluetooth/BluetoothMap;->getClient()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothMap;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothMap;->getState()I
+Landroid/bluetooth/BluetoothMap;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMap;->isEnabled()Z
+Landroid/bluetooth/BluetoothMap;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMap;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothMap;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothMap;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothMap;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothMap;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothMap;->mService:Landroid/bluetooth/IBluetoothMap;
+Landroid/bluetooth/BluetoothMap;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothMap;->RESULT_CANCELED:I
+Landroid/bluetooth/BluetoothMap;->RESULT_FAILURE:I
+Landroid/bluetooth/BluetoothMap;->RESULT_SUCCESS:I
+Landroid/bluetooth/BluetoothMap;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+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;
+Landroid/bluetooth/BluetoothMapClient;->ACTION_MESSAGE_RECEIVED:Ljava/lang/String;
+Landroid/bluetooth/BluetoothMapClient;->ACTION_MESSAGE_SENT_SUCCESSFULLY:Ljava/lang/String;
+Landroid/bluetooth/BluetoothMapClient;->close()V
+Landroid/bluetooth/BluetoothMapClient;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMapClient;->DBG:Z
+Landroid/bluetooth/BluetoothMapClient;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMapClient;->doBind()Z
+Landroid/bluetooth/BluetoothMapClient;->EXTRA_MESSAGE_HANDLE:Ljava/lang/String;
+Landroid/bluetooth/BluetoothMapClient;->EXTRA_SENDER_CONTACT_NAME:Ljava/lang/String;
+Landroid/bluetooth/BluetoothMapClient;->EXTRA_SENDER_CONTACT_URI:Ljava/lang/String;
+Landroid/bluetooth/BluetoothMapClient;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothMapClient;->getUnreadMessages(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMapClient;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMapClient;->isEnabled()Z
+Landroid/bluetooth/BluetoothMapClient;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothMapClient;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothMapClient;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothMapClient;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothMapClient;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothMapClient;->mService:Landroid/bluetooth/IBluetoothMapClient;
+Landroid/bluetooth/BluetoothMapClient;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothMapClient;->RESULT_CANCELED:I
+Landroid/bluetooth/BluetoothMapClient;->RESULT_FAILURE:I
+Landroid/bluetooth/BluetoothMapClient;->RESULT_SUCCESS:I
+Landroid/bluetooth/BluetoothMapClient;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+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
+Landroid/bluetooth/BluetoothMasInstance;->getId()I
+Landroid/bluetooth/BluetoothMasInstance;->getMsgTypes()I
+Landroid/bluetooth/BluetoothMasInstance;->getName()Ljava/lang/String;
+Landroid/bluetooth/BluetoothMasInstance;->mChannel:I
+Landroid/bluetooth/BluetoothMasInstance;->mId:I
+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;
+Landroid/bluetooth/BluetoothPan;->LOCAL_NAP_ROLE:I
+Landroid/bluetooth/BluetoothPan;->LOCAL_PANU_ROLE:I
+Landroid/bluetooth/BluetoothPan;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothPan;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothPan;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothPan;->mPanService:Landroid/bluetooth/IBluetoothPan;
+Landroid/bluetooth/BluetoothPan;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothPan;->mStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothPan;->PAN_CONNECT_FAILED_ALREADY_CONNECTED:I
+Landroid/bluetooth/BluetoothPan;->PAN_CONNECT_FAILED_ATTEMPT_FAILED:I
+Landroid/bluetooth/BluetoothPan;->PAN_DISCONNECT_FAILED_NOT_CONNECTED:I
+Landroid/bluetooth/BluetoothPan;->PAN_OPERATION_GENERIC_FAILURE:I
+Landroid/bluetooth/BluetoothPan;->PAN_OPERATION_SUCCESS:I
+Landroid/bluetooth/BluetoothPan;->PAN_ROLE_NONE:I
+Landroid/bluetooth/BluetoothPan;->REMOTE_NAP_ROLE:I
+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
+Landroid/bluetooth/BluetoothPbap;->DBG:Z
+Landroid/bluetooth/BluetoothPbap;->doBind()Z
+Landroid/bluetooth/BluetoothPbap;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothPbap;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothPbap;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothPbap;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothPbap;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothPbap;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothPbap;->mService:Landroid/bluetooth/IBluetoothPbap;
+Landroid/bluetooth/BluetoothPbap;->mServiceListener:Landroid/bluetooth/BluetoothPbap$ServiceListener;
+Landroid/bluetooth/BluetoothPbap;->RESULT_CANCELED:I
+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
+Landroid/bluetooth/BluetoothPbapClient;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothPbapClient;->DBG:Z
+Landroid/bluetooth/BluetoothPbapClient;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothPbapClient;->doBind()Z
+Landroid/bluetooth/BluetoothPbapClient;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothPbapClient;->isEnabled()Z
+Landroid/bluetooth/BluetoothPbapClient;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothPbapClient;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothPbapClient;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothPbapClient;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothPbapClient;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothPbapClient;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothPbapClient;->mService:Landroid/bluetooth/IBluetoothPbapClient;
+Landroid/bluetooth/BluetoothPbapClient;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothPbapClient;->RESULT_CANCELED:I
+Landroid/bluetooth/BluetoothPbapClient;->RESULT_FAILURE:I
+Landroid/bluetooth/BluetoothPbapClient;->RESULT_SUCCESS:I
+Landroid/bluetooth/BluetoothPbapClient;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothPbapClient;->STATE_ERROR:I
+Landroid/bluetooth/BluetoothPbapClient;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothPbapClient;->VDBG:Z
+Landroid/bluetooth/BluetoothProfile;->AVRCP:I
+Landroid/bluetooth/BluetoothProfile;->getConnectionStateName(I)Ljava/lang/String;
+Landroid/bluetooth/BluetoothProfile;->HEADSET_CLIENT:I
+Landroid/bluetooth/BluetoothProfile;->HEARING_AID:I
+Landroid/bluetooth/BluetoothProfile;->HID_HOST:I
+Landroid/bluetooth/BluetoothProfile;->MAP:I
+Landroid/bluetooth/BluetoothProfile;->MAP_CLIENT:I
+Landroid/bluetooth/BluetoothProfile;->MAX_PROFILE_ID:I
+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
+Landroid/bluetooth/BluetoothProtoEnums;->CONNECTION_STATE_DISCONNECTED:I
+Landroid/bluetooth/BluetoothProtoEnums;->CONNECTION_STATE_DISCONNECTING:I
+Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_AIRPLANE_MODE:I
+Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_APPLICATION_REQUEST:I
+Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_CRASH:I
+Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_DISALLOWED:I
+Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_RESTARTED:I
+Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_RESTORE_USER_SETTING:I
+Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_START_ERROR:I
+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
+Landroid/bluetooth/BluetoothSap;->connect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothSap;->DBG:Z
+Landroid/bluetooth/BluetoothSap;->doBind()Z
+Landroid/bluetooth/BluetoothSap;->getClient()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothSap;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/BluetoothSap;->getState()I
+Landroid/bluetooth/BluetoothSap;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothSap;->isEnabled()Z
+Landroid/bluetooth/BluetoothSap;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/BluetoothSap;->log(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothSap;->mAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/BluetoothSap;->mBluetoothStateChangeCallback:Landroid/bluetooth/IBluetoothStateChangeCallback;
+Landroid/bluetooth/BluetoothSap;->mConnection:Landroid/content/ServiceConnection;
+Landroid/bluetooth/BluetoothSap;->mContext:Landroid/content/Context;
+Landroid/bluetooth/BluetoothSap;->mService:Landroid/bluetooth/IBluetoothSap;
+Landroid/bluetooth/BluetoothSap;->mServiceListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
+Landroid/bluetooth/BluetoothSap;->RESULT_CANCELED:I
+Landroid/bluetooth/BluetoothSap;->RESULT_SUCCESS:I
+Landroid/bluetooth/BluetoothSap;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/BluetoothSap;->STATE_ERROR:I
+Landroid/bluetooth/BluetoothSap;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothSap;->VDBG:Z
+Landroid/bluetooth/BluetoothServerSocket;-><init>(IZZI)V
+Landroid/bluetooth/BluetoothServerSocket;-><init>(IZZIZZ)V
+Landroid/bluetooth/BluetoothServerSocket;-><init>(IZZLandroid/os/ParcelUuid;)V
+Landroid/bluetooth/BluetoothServerSocket;->DBG:Z
+Landroid/bluetooth/BluetoothServerSocket;->getChannel()I
+Landroid/bluetooth/BluetoothServerSocket;->getPsm()I
+Landroid/bluetooth/BluetoothServerSocket;->mChannel:I
+Landroid/bluetooth/BluetoothServerSocket;->mHandler:Landroid/os/Handler;
+Landroid/bluetooth/BluetoothServerSocket;->mMessage:I
+Landroid/bluetooth/BluetoothServerSocket;->setChannel(I)V
+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;
+Landroid/bluetooth/BluetoothSocket$SocketState;->LISTENING:Landroid/bluetooth/BluetoothSocket$SocketState;
+Landroid/bluetooth/BluetoothSocket$SocketState;->valueOf(Ljava/lang/String;)Landroid/bluetooth/BluetoothSocket$SocketState;
+Landroid/bluetooth/BluetoothSocket$SocketState;->values()[Landroid/bluetooth/BluetoothSocket$SocketState;
+Landroid/bluetooth/BluetoothSocket;-><init>(IIZZLandroid/bluetooth/BluetoothDevice;ILandroid/os/ParcelUuid;)V
+Landroid/bluetooth/BluetoothSocket;-><init>(IIZZLandroid/bluetooth/BluetoothDevice;ILandroid/os/ParcelUuid;ZZ)V
+Landroid/bluetooth/BluetoothSocket;-><init>(IIZZLjava/lang/String;I)V
+Landroid/bluetooth/BluetoothSocket;-><init>(Landroid/bluetooth/BluetoothSocket;)V
+Landroid/bluetooth/BluetoothSocket;->accept(I)Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothSocket;->acceptSocket(Ljava/lang/String;)Landroid/bluetooth/BluetoothSocket;
+Landroid/bluetooth/BluetoothSocket;->available()I
+Landroid/bluetooth/BluetoothSocket;->bindListen()I
+Landroid/bluetooth/BluetoothSocket;->BTSOCK_FLAG_NO_SDP:I
+Landroid/bluetooth/BluetoothSocket;->convertAddr([B)Ljava/lang/String;
+Landroid/bluetooth/BluetoothSocket;->createL2capRxBuffer()V
+Landroid/bluetooth/BluetoothSocket;->DBG:Z
+Landroid/bluetooth/BluetoothSocket;->EBADFD:I
+Landroid/bluetooth/BluetoothSocket;->fillL2capRxBuffer()I
+Landroid/bluetooth/BluetoothSocket;->getPort()I
+Landroid/bluetooth/BluetoothSocket;->getSecurityFlags()I
+Landroid/bluetooth/BluetoothSocket;->mAddress:Ljava/lang/String;
+Landroid/bluetooth/BluetoothSocket;->mAuth:Z
+Landroid/bluetooth/BluetoothSocket;->mAuthMitm:Z
+Landroid/bluetooth/BluetoothSocket;->MAX_L2CAP_PACKAGE_SIZE:I
+Landroid/bluetooth/BluetoothSocket;->MAX_RFCOMM_CHANNEL:I
+Landroid/bluetooth/BluetoothSocket;->mDevice:Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/BluetoothSocket;->mEncrypt:Z
+Landroid/bluetooth/BluetoothSocket;->mExcludeSdp:Z
+Landroid/bluetooth/BluetoothSocket;->mFd:I
+Landroid/bluetooth/BluetoothSocket;->mInputStream:Landroid/bluetooth/BluetoothInputStream;
+Landroid/bluetooth/BluetoothSocket;->mL2capBuffer:Ljava/nio/ByteBuffer;
+Landroid/bluetooth/BluetoothSocket;->mMaxRxPacketSize:I
+Landroid/bluetooth/BluetoothSocket;->mMaxTxPacketSize:I
+Landroid/bluetooth/BluetoothSocket;->mMin16DigitPin:Z
+Landroid/bluetooth/BluetoothSocket;->mOutputStream:Landroid/bluetooth/BluetoothOutputStream;
+Landroid/bluetooth/BluetoothSocket;->mServiceName:Ljava/lang/String;
+Landroid/bluetooth/BluetoothSocket;->mSocketIS:Ljava/io/InputStream;
+Landroid/bluetooth/BluetoothSocket;->mSocketOS:Ljava/io/OutputStream;
+Landroid/bluetooth/BluetoothSocket;->mSocketState:Landroid/bluetooth/BluetoothSocket$SocketState;
+Landroid/bluetooth/BluetoothSocket;->mType:I
+Landroid/bluetooth/BluetoothSocket;->mUuid:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothSocket;->PROXY_CONNECTION_TIMEOUT:I
+Landroid/bluetooth/BluetoothSocket;->read([BII)I
+Landroid/bluetooth/BluetoothSocket;->readAll(Ljava/io/InputStream;[B)I
+Landroid/bluetooth/BluetoothSocket;->readInt(Ljava/io/InputStream;)I
+Landroid/bluetooth/BluetoothSocket;->removeChannel()V
+Landroid/bluetooth/BluetoothSocket;->requestMaximumTxDataLength()V
+Landroid/bluetooth/BluetoothSocket;->SEC_FLAG_AUTH:I
+Landroid/bluetooth/BluetoothSocket;->SEC_FLAG_AUTH_16_DIGIT:I
+Landroid/bluetooth/BluetoothSocket;->SEC_FLAG_AUTH_MITM:I
+Landroid/bluetooth/BluetoothSocket;->SEC_FLAG_ENCRYPT:I
+Landroid/bluetooth/BluetoothSocket;->setExcludeSdp(Z)V
+Landroid/bluetooth/BluetoothSocket;->setServiceName(Ljava/lang/String;)V
+Landroid/bluetooth/BluetoothSocket;->SOCK_SIGNAL_SIZE:I
+Landroid/bluetooth/BluetoothSocket;->TAG:Ljava/lang/String;
+Landroid/bluetooth/BluetoothSocket;->TYPE_L2CAP_BREDR:I
+Landroid/bluetooth/BluetoothSocket;->TYPE_L2CAP_LE:I
+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;
+Landroid/bluetooth/BluetoothUuid;->AvrcpTarget:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->BASE_UUID:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->BNEP:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->containsAllUuids([Landroid/os/ParcelUuid;[Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->getServiceIdentifierFromParcelUuid(Landroid/os/ParcelUuid;)I
+Landroid/bluetooth/BluetoothUuid;->Handsfree_AG:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->HearingAid:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->Hid:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->HSP_AG:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->isAudioSink(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isAvrcpController(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isBnep(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isHandsfree(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isHeadset(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isInputDevice(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isMap(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isMas(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isMns(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isNap(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isPanu(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->isSap(Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/BluetoothUuid;->MAP:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->MAS:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->MNS:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->PANU:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->parseUuidFrom([B)Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->PBAP_PCE:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->SAP:Landroid/os/ParcelUuid;
+Landroid/bluetooth/BluetoothUuid;->uuidToBytes(Landroid/os/ParcelUuid;)[B
+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
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->createBond(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->createBondOutOfBand(Landroid/bluetooth/BluetoothDevice;ILandroid/bluetooth/OobData;)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->disable()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->enable()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->enableNoAutoConnect()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->factoryReset()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->fetchRemoteUuids(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getAdapterConnectionState()I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getBatteryLevel(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getBluetoothClass()Landroid/bluetooth/BluetoothClass;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getBondedDevices()[Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getBondState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getDiscoverableTimeout()I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getDiscoveryEndMillis()J
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getLeMaximumAdvertisingDataLength()I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getMaxConnectedAudioDevices()I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getMessageAccessPermission(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getName()Ljava/lang/String;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getPhonebookAccessPermission(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getProfileConnectionState(I)I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteAlias(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteClass(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteName(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteType(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteUuids(Landroid/bluetooth/BluetoothDevice;)[Landroid/os/ParcelUuid;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getScanMode()I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getSimAccessPermission(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getSocketManager()Landroid/bluetooth/IBluetoothSocketManager;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getState()I
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getSupportedProfiles()J
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->getUuids()[Landroid/os/ParcelUuid;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isActivityAndEnergyReportingSupported()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isBondingInitiatedLocally(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isDiscovering()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isEnabled()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isLe2MPhySupported()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isLeCodedPhySupported()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isLeExtendedAdvertisingSupported()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isLePeriodicAdvertisingSupported()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isMultiAdvertisementSupported()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isOffloadedFilteringSupported()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->isOffloadedScanBatchingSupported()Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->onBrEdrDown()V
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->onLeServiceUp()V
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->registerCallback(Landroid/bluetooth/IBluetoothCallback;)V
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->removeBond(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->reportActivityInfo()Landroid/bluetooth/BluetoothActivityEnergyInfo;
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->requestActivityInfo(Landroid/os/ResultReceiver;)V
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->sdpSearch(Landroid/bluetooth/BluetoothDevice;Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->sendConnectionStateChange(Landroid/bluetooth/BluetoothDevice;III)V
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setBluetoothClass(Landroid/bluetooth/BluetoothClass;)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setDiscoverableTimeout(I)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setMessageAccessPermission(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setName(Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setPairingConfirmation(Landroid/bluetooth/BluetoothDevice;Z)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setPasskey(Landroid/bluetooth/BluetoothDevice;ZI[B)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setPhonebookAccessPermission(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setPin(Landroid/bluetooth/BluetoothDevice;ZI[B)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setRemoteAlias(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetooth$Stub$Proxy;->setScanMode(II)Z
+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
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_createBond:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_createBondOutOfBand:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_disable:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_enableNoAutoConnect:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_factoryReset:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_fetchRemoteUuids:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getAdapterConnectionState:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getAddress:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getBatteryLevel:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getBluetoothClass:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getBondedDevices:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getBondState:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getDiscoverableTimeout:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getDiscoveryEndMillis:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getLeMaximumAdvertisingDataLength:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getMaxConnectedAudioDevices:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getMessageAccessPermission:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getName:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getPhonebookAccessPermission:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getProfileConnectionState:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getRemoteAlias:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getRemoteClass:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getRemoteName:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getRemoteType:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getRemoteUuids:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getScanMode:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getSimAccessPermission:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getSocketManager:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getState:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getSupportedProfiles:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_getUuids:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isActivityAndEnergyReportingSupported:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isBondingInitiatedLocally:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isDiscovering:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isEnabled:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isLe2MPhySupported:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isLeCodedPhySupported:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isLeExtendedAdvertisingSupported:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isLePeriodicAdvertisingSupported:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isMultiAdvertisementSupported:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isOffloadedFilteringSupported:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_isOffloadedScanBatchingSupported:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_onBrEdrDown:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_onLeServiceUp:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_registerCallback:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_removeBond:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_reportActivityInfo:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_requestActivityInfo:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_sdpSearch:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_sendConnectionStateChange:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setBluetoothClass:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setDiscoverableTimeout:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setMessageAccessPermission:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setName:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setPairingConfirmation:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setPasskey:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setPhonebookAccessPermission:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setPin:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setRemoteAlias:I
+Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setScanMode:I
+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
+Landroid/bluetooth/IBluetooth;->createBondOutOfBand(Landroid/bluetooth/BluetoothDevice;ILandroid/bluetooth/OobData;)Z
+Landroid/bluetooth/IBluetooth;->disable()Z
+Landroid/bluetooth/IBluetooth;->enable()Z
+Landroid/bluetooth/IBluetooth;->enableNoAutoConnect()Z
+Landroid/bluetooth/IBluetooth;->factoryReset()Z
+Landroid/bluetooth/IBluetooth;->getAdapterConnectionState()I
+Landroid/bluetooth/IBluetooth;->getBatteryLevel(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth;->getBluetoothClass()Landroid/bluetooth/BluetoothClass;
+Landroid/bluetooth/IBluetooth;->getBondedDevices()[Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/IBluetooth;->getBondState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth;->getDiscoverableTimeout()I
+Landroid/bluetooth/IBluetooth;->getDiscoveryEndMillis()J
+Landroid/bluetooth/IBluetooth;->getLeMaximumAdvertisingDataLength()I
+Landroid/bluetooth/IBluetooth;->getMaxConnectedAudioDevices()I
+Landroid/bluetooth/IBluetooth;->getMessageAccessPermission(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth;->getName()Ljava/lang/String;
+Landroid/bluetooth/IBluetooth;->getPhonebookAccessPermission(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth;->getProfileConnectionState(I)I
+Landroid/bluetooth/IBluetooth;->getRemoteClass(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth;->getRemoteName(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+Landroid/bluetooth/IBluetooth;->getRemoteType(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth;->getRemoteUuids(Landroid/bluetooth/BluetoothDevice;)[Landroid/os/ParcelUuid;
+Landroid/bluetooth/IBluetooth;->getScanMode()I
+Landroid/bluetooth/IBluetooth;->getSimAccessPermission(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetooth;->getSocketManager()Landroid/bluetooth/IBluetoothSocketManager;
+Landroid/bluetooth/IBluetooth;->getState()I
+Landroid/bluetooth/IBluetooth;->getSupportedProfiles()J
+Landroid/bluetooth/IBluetooth;->getUuids()[Landroid/os/ParcelUuid;
+Landroid/bluetooth/IBluetooth;->isActivityAndEnergyReportingSupported()Z
+Landroid/bluetooth/IBluetooth;->isBondingInitiatedLocally(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetooth;->isDiscovering()Z
+Landroid/bluetooth/IBluetooth;->isLe2MPhySupported()Z
+Landroid/bluetooth/IBluetooth;->isLeCodedPhySupported()Z
+Landroid/bluetooth/IBluetooth;->isLeExtendedAdvertisingSupported()Z
+Landroid/bluetooth/IBluetooth;->isLePeriodicAdvertisingSupported()Z
+Landroid/bluetooth/IBluetooth;->isMultiAdvertisementSupported()Z
+Landroid/bluetooth/IBluetooth;->isOffloadedFilteringSupported()Z
+Landroid/bluetooth/IBluetooth;->isOffloadedScanBatchingSupported()Z
+Landroid/bluetooth/IBluetooth;->onBrEdrDown()V
+Landroid/bluetooth/IBluetooth;->onLeServiceUp()V
+Landroid/bluetooth/IBluetooth;->registerCallback(Landroid/bluetooth/IBluetoothCallback;)V
+Landroid/bluetooth/IBluetooth;->removeBond(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetooth;->reportActivityInfo()Landroid/bluetooth/BluetoothActivityEnergyInfo;
+Landroid/bluetooth/IBluetooth;->requestActivityInfo(Landroid/os/ResultReceiver;)V
+Landroid/bluetooth/IBluetooth;->sdpSearch(Landroid/bluetooth/BluetoothDevice;Landroid/os/ParcelUuid;)Z
+Landroid/bluetooth/IBluetooth;->setBluetoothClass(Landroid/bluetooth/BluetoothClass;)Z
+Landroid/bluetooth/IBluetooth;->setDiscoverableTimeout(I)Z
+Landroid/bluetooth/IBluetooth;->setMessageAccessPermission(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetooth;->setName(Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetooth;->setPairingConfirmation(Landroid/bluetooth/BluetoothDevice;Z)Z
+Landroid/bluetooth/IBluetooth;->setPasskey(Landroid/bluetooth/BluetoothDevice;ZI[B)Z
+Landroid/bluetooth/IBluetooth;->setPhonebookAccessPermission(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetooth;->setPin(Landroid/bluetooth/BluetoothDevice;ZI[B)Z
+Landroid/bluetooth/IBluetooth;->setRemoteAlias(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetooth;->setScanMode(II)Z
+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
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->enableOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)V
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getCodecStatus(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothCodecStatus;
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getOptionalCodecsEnabled(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->isA2dpPlaying(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->isAvrcpAbsoluteVolumeSupported()Z
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->setAvrcpAbsoluteVolume(I)V
+Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->setCodecConfigPreference(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothCodecConfig;)V
+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
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_enableOptionalCodecs:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_getActiveDevice:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_getCodecStatus:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_getOptionalCodecsEnabled:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_getPriority:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_isA2dpPlaying:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_isAvrcpAbsoluteVolumeSupported:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_setActiveDevice:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_setAvrcpAbsoluteVolume:I
+Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_setCodecConfigPreference:I
+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;
+Landroid/bluetooth/IBluetoothA2dp;->getCodecStatus(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothCodecStatus;
+Landroid/bluetooth/IBluetoothA2dp;->getOptionalCodecsEnabled(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothA2dp;->isA2dpPlaying(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothA2dp;->isAvrcpAbsoluteVolumeSupported()Z
+Landroid/bluetooth/IBluetoothA2dp;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothA2dp;->setAvrcpAbsoluteVolume(I)V
+Landroid/bluetooth/IBluetoothA2dp;->setCodecConfigPreference(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothCodecConfig;)V
+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
+Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->getAudioConfig(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothAudioConfig;
+Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+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;
+Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_getAudioConfig:I
+Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+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;
+Landroid/bluetooth/IBluetoothA2dpSink;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothA2dpSink;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothA2dpSink;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+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
+Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;->getPlayerSettings(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothAvrcpPlayerSettings;
+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;
+Landroid/bluetooth/IBluetoothAvrcpController$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothAvrcpController$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothAvrcpController$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+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
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->clearServices(I)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->clientConnect(ILjava/lang/String;ZIZI)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->clientDisconnect(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->clientReadPhy(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->clientSetPreferredPhy(ILjava/lang/String;III)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->configureMTU(ILjava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->connectionParameterUpdate(ILjava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->disconnectAll()V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->discoverServiceByUuid(ILjava/lang/String;Landroid/os/ParcelUuid;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->discoverServices(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->enableAdvertisingSet(IZII)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->endReliableWrite(ILjava/lang/String;Z)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->flushPendingBatchResults(I)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->getOwnAddress(I)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->leConnectionUpdate(ILjava/lang/String;IIIIII)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->numHwTrackFiltersAvailable()I
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->readCharacteristic(ILjava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->readDescriptor(ILjava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->readRemoteRssi(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->readUsingCharacteristicUuid(ILjava/lang/String;Landroid/os/ParcelUuid;III)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->refreshDevice(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->registerClient(Landroid/os/ParcelUuid;Landroid/bluetooth/IBluetoothGattCallback;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->registerForNotification(ILjava/lang/String;IZ)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->registerScanner(Landroid/bluetooth/le/IScannerCallback;Landroid/os/WorkSource;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->registerServer(Landroid/os/ParcelUuid;Landroid/bluetooth/IBluetoothGattServerCallback;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->registerSync(Landroid/bluetooth/le/ScanResult;IILandroid/bluetooth/le/IPeriodicAdvertisingCallback;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->removeService(II)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->sendNotification(ILjava/lang/String;IZ[B)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->sendResponse(ILjava/lang/String;III[B)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->serverConnect(ILjava/lang/String;ZI)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->serverDisconnect(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->serverReadPhy(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->serverSetPreferredPhy(ILjava/lang/String;III)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->setAdvertisingData(ILandroid/bluetooth/le/AdvertiseData;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->setAdvertisingParameters(ILandroid/bluetooth/le/AdvertisingSetParameters;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->setPeriodicAdvertisingData(ILandroid/bluetooth/le/AdvertiseData;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->setPeriodicAdvertisingEnable(IZ)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->setPeriodicAdvertisingParameters(ILandroid/bluetooth/le/PeriodicAdvertisingParameters;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->setScanResponseData(ILandroid/bluetooth/le/AdvertiseData;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->startAdvertisingSet(Landroid/bluetooth/le/AdvertisingSetParameters;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/PeriodicAdvertisingParameters;Landroid/bluetooth/le/AdvertiseData;IILandroid/bluetooth/le/IAdvertisingSetCallback;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->startScan(ILandroid/bluetooth/le/ScanSettings;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->startScanForIntent(Landroid/app/PendingIntent;Landroid/bluetooth/le/ScanSettings;Ljava/util/List;Ljava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->stopAdvertisingSet(Landroid/bluetooth/le/IAdvertisingSetCallback;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->stopScan(I)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->stopScanForIntent(Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->unregAll()V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->unregisterClient(I)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->unregisterScanner(I)V
+Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->unregisterServer(I)V
+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;
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_addService:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_beginReliableWrite:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_clearServices:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_clientConnect:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_clientDisconnect:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_clientReadPhy:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_clientSetPreferredPhy:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_configureMTU:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_connectionParameterUpdate:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_disconnectAll:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_discoverServiceByUuid:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_discoverServices:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_enableAdvertisingSet:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_endReliableWrite:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_flushPendingBatchResults:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_getOwnAddress:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_leConnectionUpdate:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_numHwTrackFiltersAvailable:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_readCharacteristic:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_readDescriptor:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_readRemoteRssi:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_readUsingCharacteristicUuid:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_refreshDevice:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_registerClient:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_registerForNotification:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_registerScanner:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_registerServer:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_registerSync:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_removeService:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_sendNotification:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_sendResponse:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_serverConnect:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_serverDisconnect:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_serverReadPhy:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_serverSetPreferredPhy:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_setAdvertisingData:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_setAdvertisingParameters:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_setPeriodicAdvertisingData:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_setPeriodicAdvertisingEnable:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_setPeriodicAdvertisingParameters:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_setScanResponseData:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_startAdvertisingSet:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_startScan:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_startScanForIntent:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_stopAdvertisingSet:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_stopScan:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_stopScanForIntent:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_unregAll:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_unregisterClient:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_unregisterScanner:I
+Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_unregisterServer:I
+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
+Landroid/bluetooth/IBluetoothGatt;->clientConnect(ILjava/lang/String;ZIZI)V
+Landroid/bluetooth/IBluetoothGatt;->clientDisconnect(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->clientReadPhy(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->clientSetPreferredPhy(ILjava/lang/String;III)V
+Landroid/bluetooth/IBluetoothGatt;->configureMTU(ILjava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGatt;->connectionParameterUpdate(ILjava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGatt;->disconnectAll()V
+Landroid/bluetooth/IBluetoothGatt;->discoverServiceByUuid(ILjava/lang/String;Landroid/os/ParcelUuid;)V
+Landroid/bluetooth/IBluetoothGatt;->discoverServices(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->enableAdvertisingSet(IZII)V
+Landroid/bluetooth/IBluetoothGatt;->endReliableWrite(ILjava/lang/String;Z)V
+Landroid/bluetooth/IBluetoothGatt;->flushPendingBatchResults(I)V
+Landroid/bluetooth/IBluetoothGatt;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothGatt;->getOwnAddress(I)V
+Landroid/bluetooth/IBluetoothGatt;->leConnectionUpdate(ILjava/lang/String;IIIIII)V
+Landroid/bluetooth/IBluetoothGatt;->numHwTrackFiltersAvailable()I
+Landroid/bluetooth/IBluetoothGatt;->readCharacteristic(ILjava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGatt;->readDescriptor(ILjava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGatt;->readRemoteRssi(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->readUsingCharacteristicUuid(ILjava/lang/String;Landroid/os/ParcelUuid;III)V
+Landroid/bluetooth/IBluetoothGatt;->refreshDevice(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->registerForNotification(ILjava/lang/String;IZ)V
+Landroid/bluetooth/IBluetoothGatt;->registerScanner(Landroid/bluetooth/le/IScannerCallback;Landroid/os/WorkSource;)V
+Landroid/bluetooth/IBluetoothGatt;->registerServer(Landroid/os/ParcelUuid;Landroid/bluetooth/IBluetoothGattServerCallback;)V
+Landroid/bluetooth/IBluetoothGatt;->registerSync(Landroid/bluetooth/le/ScanResult;IILandroid/bluetooth/le/IPeriodicAdvertisingCallback;)V
+Landroid/bluetooth/IBluetoothGatt;->removeService(II)V
+Landroid/bluetooth/IBluetoothGatt;->sendNotification(ILjava/lang/String;IZ[B)V
+Landroid/bluetooth/IBluetoothGatt;->sendResponse(ILjava/lang/String;III[B)V
+Landroid/bluetooth/IBluetoothGatt;->serverConnect(ILjava/lang/String;ZI)V
+Landroid/bluetooth/IBluetoothGatt;->serverDisconnect(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->serverReadPhy(ILjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->serverSetPreferredPhy(ILjava/lang/String;III)V
+Landroid/bluetooth/IBluetoothGatt;->setAdvertisingData(ILandroid/bluetooth/le/AdvertiseData;)V
+Landroid/bluetooth/IBluetoothGatt;->setAdvertisingParameters(ILandroid/bluetooth/le/AdvertisingSetParameters;)V
+Landroid/bluetooth/IBluetoothGatt;->setPeriodicAdvertisingData(ILandroid/bluetooth/le/AdvertiseData;)V
+Landroid/bluetooth/IBluetoothGatt;->setPeriodicAdvertisingEnable(IZ)V
+Landroid/bluetooth/IBluetoothGatt;->setPeriodicAdvertisingParameters(ILandroid/bluetooth/le/PeriodicAdvertisingParameters;)V
+Landroid/bluetooth/IBluetoothGatt;->setScanResponseData(ILandroid/bluetooth/le/AdvertiseData;)V
+Landroid/bluetooth/IBluetoothGatt;->startAdvertisingSet(Landroid/bluetooth/le/AdvertisingSetParameters;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/AdvertiseData;Landroid/bluetooth/le/PeriodicAdvertisingParameters;Landroid/bluetooth/le/AdvertiseData;IILandroid/bluetooth/le/IAdvertisingSetCallback;)V
+Landroid/bluetooth/IBluetoothGatt;->startScan(ILandroid/bluetooth/le/ScanSettings;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->startScanForIntent(Landroid/app/PendingIntent;Landroid/bluetooth/le/ScanSettings;Ljava/util/List;Ljava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->stopAdvertisingSet(Landroid/bluetooth/le/IAdvertisingSetCallback;)V
+Landroid/bluetooth/IBluetoothGatt;->stopScan(I)V
+Landroid/bluetooth/IBluetoothGatt;->stopScanForIntent(Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/bluetooth/IBluetoothGatt;->unregAll()V
+Landroid/bluetooth/IBluetoothGatt;->unregisterScanner(I)V
+Landroid/bluetooth/IBluetoothGatt;->unregisterServer(I)V
+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;
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onCharacteristicRead(Ljava/lang/String;II[B)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onCharacteristicWrite(Ljava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onClientConnectionState(IIZLjava/lang/String;)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onClientRegistered(II)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onConfigureMTU(Ljava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onConnectionUpdated(Ljava/lang/String;IIII)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onDescriptorRead(Ljava/lang/String;II[B)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onDescriptorWrite(Ljava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onExecuteWrite(Ljava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onNotify(Ljava/lang/String;I[B)V
+Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onPhyRead(Ljava/lang/String;III)V
+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
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onClientConnectionState:I
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onClientRegistered:I
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onConfigureMTU:I
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onConnectionUpdated:I
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onDescriptorRead:I
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onDescriptorWrite:I
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onExecuteWrite:I
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onNotify:I
+Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onPhyRead:I
+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
+Landroid/bluetooth/IBluetoothGattCallback;->onClientRegistered(II)V
+Landroid/bluetooth/IBluetoothGattCallback;->onConfigureMTU(Ljava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGattCallback;->onConnectionUpdated(Ljava/lang/String;IIII)V
+Landroid/bluetooth/IBluetoothGattCallback;->onDescriptorRead(Ljava/lang/String;II[B)V
+Landroid/bluetooth/IBluetoothGattCallback;->onDescriptorWrite(Ljava/lang/String;II)V
+Landroid/bluetooth/IBluetoothGattCallback;->onExecuteWrite(Ljava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGattCallback;->onNotify(Ljava/lang/String;I[B)V
+Landroid/bluetooth/IBluetoothGattCallback;->onPhyRead(Ljava/lang/String;III)V
+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;
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onCharacteristicReadRequest(Ljava/lang/String;IIZI)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onCharacteristicWriteRequest(Ljava/lang/String;IIIZZI[B)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onConnectionUpdated(Ljava/lang/String;IIII)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onDescriptorReadRequest(Ljava/lang/String;IIZI)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onDescriptorWriteRequest(Ljava/lang/String;IIIZZI[B)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onExecuteWrite(Ljava/lang/String;IZ)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onMtuChanged(Ljava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onNotificationSent(Ljava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onPhyRead(Ljava/lang/String;III)V
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onPhyUpdate(Ljava/lang/String;III)V
+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;
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onCharacteristicReadRequest:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onCharacteristicWriteRequest:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onConnectionUpdated:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onDescriptorReadRequest:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onDescriptorWriteRequest:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onExecuteWrite:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onMtuChanged:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onNotificationSent:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onPhyRead:I
+Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onPhyUpdate:I
+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
+Landroid/bluetooth/IBluetoothGattServerCallback;->onDescriptorReadRequest(Ljava/lang/String;IIZI)V
+Landroid/bluetooth/IBluetoothGattServerCallback;->onDescriptorWriteRequest(Ljava/lang/String;IIIZZI[B)V
+Landroid/bluetooth/IBluetoothGattServerCallback;->onExecuteWrite(Ljava/lang/String;IZ)V
+Landroid/bluetooth/IBluetoothGattServerCallback;->onMtuChanged(Ljava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGattServerCallback;->onNotificationSent(Ljava/lang/String;I)V
+Landroid/bluetooth/IBluetoothGattServerCallback;->onPhyRead(Ljava/lang/String;III)V
+Landroid/bluetooth/IBluetoothGattServerCallback;->onPhyUpdate(Ljava/lang/String;III)V
+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
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->connectAudio()Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->disconnectAudio()Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getAudioRouteAllowed()Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getAudioState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->isAudioConnected(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->isAudioOn()Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->isInbandRingingEnabled()Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->phoneStateChanged(IIILjava/lang/String;I)V
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->sendVendorSpecificResultCode(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->setAudioRouteAllowed(Z)V
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->setForceScoAudio(Z)V
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->startScoUsingVirtualVoiceCall()Z
+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
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_connectAudio:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_disconnectAudio:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_getActiveDevice:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_getAudioRouteAllowed:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_getAudioState:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_getPriority:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_isAudioConnected:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_isAudioOn:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_isInbandRingingEnabled:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_phoneStateChanged:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_sendVendorSpecificResultCode:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_setActiveDevice:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_setAudioRouteAllowed:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_setForceScoAudio:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_setPriority:I
+Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_startScoUsingVirtualVoiceCall:I
+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
+Landroid/bluetooth/IBluetoothHeadset;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/IBluetoothHeadset;->getAudioRouteAllowed()Z
+Landroid/bluetooth/IBluetoothHeadset;->getAudioState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadset;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadset;->isAudioConnected(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadset;->isAudioOn()Z
+Landroid/bluetooth/IBluetoothHeadset;->isInbandRingingEnabled()Z
+Landroid/bluetooth/IBluetoothHeadset;->phoneStateChanged(IIILjava/lang/String;I)V
+Landroid/bluetooth/IBluetoothHeadset;->sendVendorSpecificResultCode(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetoothHeadset;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadset;->setAudioRouteAllowed(Z)V
+Landroid/bluetooth/IBluetoothHeadset;->setForceScoAudio(Z)V
+Landroid/bluetooth/IBluetoothHeadset;->startScoUsingVirtualVoiceCall()Z
+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
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->connectAudio(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->dial(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;)Landroid/bluetooth/BluetoothHeadsetClientCall;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->disconnectAudio(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->enterPrivateMode(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->explicitCallTransfer(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getAudioRouteAllowed(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getAudioState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getCurrentAgEvents(Landroid/bluetooth/BluetoothDevice;)Landroid/os/Bundle;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getCurrentAgFeatures(Landroid/bluetooth/BluetoothDevice;)Landroid/os/Bundle;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getCurrentCalls(Landroid/bluetooth/BluetoothDevice;)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getLastVoiceTagNumber(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->holdCall(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->rejectCall(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->sendDTMF(Landroid/bluetooth/BluetoothDevice;B)Z
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->setAudioRouteAllowed(Landroid/bluetooth/BluetoothDevice;Z)V
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+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;
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_acceptCall:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_connectAudio:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_dial:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_disconnectAudio:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_enterPrivateMode:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_explicitCallTransfer:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getAudioRouteAllowed:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getAudioState:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getCurrentAgEvents:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getCurrentAgFeatures:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getCurrentCalls:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getLastVoiceTagNumber:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_getPriority:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_holdCall:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_rejectCall:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_sendDTMF:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_setAudioRouteAllowed:I
+Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_setPriority:I
+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
+Landroid/bluetooth/IBluetoothHeadsetClient;->dial(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;)Landroid/bluetooth/BluetoothHeadsetClientCall;
+Landroid/bluetooth/IBluetoothHeadsetClient;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->disconnectAudio(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->enterPrivateMode(Landroid/bluetooth/BluetoothDevice;I)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->explicitCallTransfer(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->getAudioRouteAllowed(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->getAudioState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadsetClient;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadsetClient;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadsetClient;->getCurrentAgEvents(Landroid/bluetooth/BluetoothDevice;)Landroid/os/Bundle;
+Landroid/bluetooth/IBluetoothHeadsetClient;->getCurrentAgFeatures(Landroid/bluetooth/BluetoothDevice;)Landroid/os/Bundle;
+Landroid/bluetooth/IBluetoothHeadsetClient;->getCurrentCalls(Landroid/bluetooth/BluetoothDevice;)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadsetClient;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHeadsetClient;->getLastVoiceTagNumber(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHeadsetClient;->holdCall(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->rejectCall(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->sendDTMF(Landroid/bluetooth/BluetoothDevice;B)Z
+Landroid/bluetooth/IBluetoothHeadsetClient;->setAudioRouteAllowed(Landroid/bluetooth/BluetoothDevice;Z)V
+Landroid/bluetooth/IBluetoothHeadsetClient;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+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
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->cdmaSwapSecondCallState()V
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->getNetworkOperator()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->getSubscriberNumber()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->hangupCall()Z
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->listCurrentCalls()Z
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->processChld(I)Z
+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;
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_answerCall:I
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_cdmaSetSecondCallState:I
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_cdmaSwapSecondCallState:I
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_getNetworkOperator:I
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_getSubscriberNumber:I
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_hangupCall:I
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_listCurrentCalls:I
+Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_processChld:I
+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
+Landroid/bluetooth/IBluetoothHeadsetPhone;->getNetworkOperator()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHeadsetPhone;->getSubscriberNumber()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHeadsetPhone;->hangupCall()Z
+Landroid/bluetooth/IBluetoothHeadsetPhone;->listCurrentCalls()Z
+Landroid/bluetooth/IBluetoothHeadsetPhone;->processChld(I)Z
+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
+Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->disconnectChannel(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z
+Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->getConnectedHealthDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->getHealthDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->getHealthDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->getMainChannelFd(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Landroid/os/ParcelFileDescriptor;
+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;
+Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_connectChannelToSink:I
+Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_connectChannelToSource:I
+Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_disconnectChannel:I
+Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_getConnectedHealthDevices:I
+Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_getHealthDeviceConnectionState:I
+Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_getHealthDevicesMatchingConnectionStates:I
+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
+Landroid/bluetooth/IBluetoothHealth;->getConnectedHealthDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHealth;->getHealthDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHealth;->getHealthDevicesMatchingConnectionStates([I)Ljava/util/List;
+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
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getActiveDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getDeviceMode(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getDeviceSide(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getHiSyncId(Landroid/bluetooth/BluetoothDevice;)J
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getVolume()I
+Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_adjustVolume:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getActiveDevices:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getDeviceMode:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getDeviceSide:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getHiSyncId:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getPriority:I
+Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_getVolume:I
+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
+Landroid/bluetooth/IBluetoothHearingAid;->getActiveDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHearingAid;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHearingAid;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHearingAid;->getDeviceMode(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHearingAid;->getDeviceSide(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHearingAid;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHearingAid;->getHiSyncId(Landroid/bluetooth/BluetoothDevice;)J
+Landroid/bluetooth/IBluetoothHearingAid;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHearingAid;->getVolume()I
+Landroid/bluetooth/IBluetoothHearingAid;->HI_SYNC_ID_INVALID:I
+Landroid/bluetooth/IBluetoothHearingAid;->MODE_BINAURAL:I
+Landroid/bluetooth/IBluetoothHearingAid;->MODE_MONAURAL:I
+Landroid/bluetooth/IBluetoothHearingAid;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHearingAid;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+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
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getUserAppName()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->registerApp(Landroid/bluetooth/BluetoothHidDeviceAppSdpSettings;Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;Landroid/bluetooth/IBluetoothHidDeviceCallback;)Z
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->replyReport(Landroid/bluetooth/BluetoothDevice;BB[B)Z
+Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->reportError(Landroid/bluetooth/BluetoothDevice;B)Z
+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;
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_getUserAppName:I
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_registerApp:I
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_replyReport:I
+Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_reportError:I
+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;
+Landroid/bluetooth/IBluetoothHidDevice;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHidDevice;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHidDevice;->getUserAppName()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHidDevice;->registerApp(Landroid/bluetooth/BluetoothHidDeviceAppSdpSettings;Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;Landroid/bluetooth/BluetoothHidDeviceAppQosSettings;Landroid/bluetooth/IBluetoothHidDeviceCallback;)Z
+Landroid/bluetooth/IBluetoothHidDevice;->replyReport(Landroid/bluetooth/BluetoothDevice;BB[B)Z
+Landroid/bluetooth/IBluetoothHidDevice;->reportError(Landroid/bluetooth/BluetoothDevice;B)Z
+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;
+Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->onAppStatusChanged(Landroid/bluetooth/BluetoothDevice;Z)V
+Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->onConnectionStateChanged(Landroid/bluetooth/BluetoothDevice;I)V
+Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->onGetReport(Landroid/bluetooth/BluetoothDevice;BBI)V
+Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->onInterruptData(Landroid/bluetooth/BluetoothDevice;B[B)V
+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
+Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->TRANSACTION_onConnectionStateChanged:I
+Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->TRANSACTION_onGetReport:I
+Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->TRANSACTION_onInterruptData:I
+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
+Landroid/bluetooth/IBluetoothHidDeviceCallback;->onInterruptData(Landroid/bluetooth/BluetoothDevice;B[B)V
+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
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getIdleTime(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getProtocolMode(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getReport(Landroid/bluetooth/BluetoothDevice;BBI)Z
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->sendData(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->setIdleTime(Landroid/bluetooth/BluetoothDevice;B)Z
+Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+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;
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_getIdleTime:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_getPriority:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_getProtocolMode:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_getReport:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_sendData:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_setIdleTime:I
+Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_setPriority:I
+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;
+Landroid/bluetooth/IBluetoothHidHost;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHidHost;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothHidHost;->getIdleTime(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHidHost;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothHidHost;->getProtocolMode(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothHidHost;->getReport(Landroid/bluetooth/BluetoothDevice;BBI)Z
+Landroid/bluetooth/IBluetoothHidHost;->sendData(Landroid/bluetooth/BluetoothDevice;Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetoothHidHost;->setIdleTime(Landroid/bluetooth/BluetoothDevice;B)Z
+Landroid/bluetooth/IBluetoothHidHost;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
+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
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->enableNoAutoConnect(Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->getAddress()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->getBluetoothGatt()Landroid/bluetooth/IBluetoothGatt;
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->getName()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->getState()I
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->isBleAppPresent()Z
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->isBleScanAlwaysAvailable()Z
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->isEnabled()Z
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->registerAdapter(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
+Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->unbindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)V
+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
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_disable:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_enableNoAutoConnect:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_getAddress:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_getBluetoothGatt:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_getName:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_getState:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_isBleAppPresent:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_isBleScanAlwaysAvailable:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_isEnabled:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_registerAdapter:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_registerStateChangeCallback:I
+Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_unbindBluetoothProfileService:I
+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
+Landroid/bluetooth/IBluetoothManager;->enableNoAutoConnect(Ljava/lang/String;)Z
+Landroid/bluetooth/IBluetoothManager;->getAddress()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothManager;->getName()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothManager;->getState()I
+Landroid/bluetooth/IBluetoothManager;->isBleAppPresent()Z
+Landroid/bluetooth/IBluetoothManager;->isBleScanAlwaysAvailable()Z
+Landroid/bluetooth/IBluetoothManager;->isEnabled()Z
+Landroid/bluetooth/IBluetoothManager;->registerAdapter(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
+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
+Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->getClient()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->getState()I
+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;
+Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_getClient:I
+Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_getPriority:I
+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;
+Landroid/bluetooth/IBluetoothMap;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothMap;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothMap;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothMap;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+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
+Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->getUnreadMessages(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
+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;
+Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_getPriority:I
+Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_getUnreadMessages:I
+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;
+Landroid/bluetooth/IBluetoothMapClient;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothMapClient;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothMapClient;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothMapClient;->getUnreadMessages(Landroid/bluetooth/BluetoothDevice;)Z
+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
+Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+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;
+Landroid/bluetooth/IBluetoothPan$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothPan$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothPan$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothPan$Stub;->TRANSACTION_getConnectionState:I
+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;
+Landroid/bluetooth/IBluetoothPan;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+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;
+Landroid/bluetooth/IBluetoothPbap$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+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
+Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+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;
+Landroid/bluetooth/IBluetoothPbapClient$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothPbapClient$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothPbapClient$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothPbapClient$Stub;->TRANSACTION_getConnectionState:I
+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;
+Landroid/bluetooth/IBluetoothPbapClient;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+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
+Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->getClient()Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->getState()I
+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;
+Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_connect:I
+Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_disconnect:I
+Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_getClient:I
+Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_getConnectedDevices:I
+Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_getConnectionState:I
+Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
+Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_getPriority:I
+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;
+Landroid/bluetooth/IBluetoothSap;->getConnectedDevices()Ljava/util/List;
+Landroid/bluetooth/IBluetoothSap;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+Landroid/bluetooth/IBluetoothSap;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
+Landroid/bluetooth/IBluetoothSap;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
+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
+Landroid/bluetooth/le/AdvertiseData$Builder;->mIncludeTxPowerLevel:Z
+Landroid/bluetooth/le/AdvertiseData$Builder;->mManufacturerSpecificData:Landroid/util/SparseArray;
+Landroid/bluetooth/le/AdvertiseData$Builder;->mServiceData:Ljava/util/Map;
+Landroid/bluetooth/le/AdvertiseData$Builder;->mServiceUuids:Ljava/util/List;
+Landroid/bluetooth/le/AdvertiseData;-><init>(Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;ZZ)V
+Landroid/bluetooth/le/AdvertiseData;->mIncludeDeviceName:Z
+Landroid/bluetooth/le/AdvertiseData;->mIncludeTxPowerLevel:Z
+Landroid/bluetooth/le/AdvertiseData;->mManufacturerSpecificData:Landroid/util/SparseArray;
+Landroid/bluetooth/le/AdvertiseData;->mServiceData:Ljava/util/Map;
+Landroid/bluetooth/le/AdvertiseData;->mServiceUuids:Ljava/util/List;
+Landroid/bluetooth/le/AdvertiseSettings$Builder;->mConnectable:Z
+Landroid/bluetooth/le/AdvertiseSettings$Builder;->mMode:I
+Landroid/bluetooth/le/AdvertiseSettings$Builder;->mTimeoutMillis:I
+Landroid/bluetooth/le/AdvertiseSettings$Builder;->mTxPowerLevel:I
+Landroid/bluetooth/le/AdvertiseSettings;-><init>(IIZI)V
+Landroid/bluetooth/le/AdvertiseSettings;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/AdvertiseSettings;->LIMITED_ADVERTISING_MAX_MILLIS:I
+Landroid/bluetooth/le/AdvertiseSettings;->mAdvertiseConnectable:Z
+Landroid/bluetooth/le/AdvertiseSettings;->mAdvertiseMode:I
+Landroid/bluetooth/le/AdvertiseSettings;->mAdvertiseTimeoutMillis:I
+Landroid/bluetooth/le/AdvertiseSettings;->mAdvertiseTxPowerLevel:I
+Landroid/bluetooth/le/AdvertisingSet;-><init>(ILandroid/bluetooth/IBluetoothManager;)V
+Landroid/bluetooth/le/AdvertisingSet;->getAdvertiserId()I
+Landroid/bluetooth/le/AdvertisingSet;->getOwnAddress()V
+Landroid/bluetooth/le/AdvertisingSet;->mAdvertiserId:I
+Landroid/bluetooth/le/AdvertisingSet;->mGatt:Landroid/bluetooth/IBluetoothGatt;
+Landroid/bluetooth/le/AdvertisingSet;->setAdvertiserId(I)V
+Landroid/bluetooth/le/AdvertisingSet;->TAG:Ljava/lang/String;
+Landroid/bluetooth/le/AdvertisingSetCallback;->onOwnAddressRead(Landroid/bluetooth/le/AdvertisingSet;ILjava/lang/String;)V
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mConnectable:Z
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mIncludeTxPower:Z
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mInterval:I
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mIsAnonymous:Z
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mIsLegacy:Z
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mPrimaryPhy:I
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mScannable:Z
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mSecondaryPhy:I
+Landroid/bluetooth/le/AdvertisingSetParameters$Builder;->mTxPowerLevel:I
+Landroid/bluetooth/le/AdvertisingSetParameters;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/AdvertisingSetParameters;-><init>(ZZZZZIIII)V
+Landroid/bluetooth/le/AdvertisingSetParameters;->LIMITED_ADVERTISING_MAX_MILLIS:I
+Landroid/bluetooth/le/AdvertisingSetParameters;->mConnectable:Z
+Landroid/bluetooth/le/AdvertisingSetParameters;->mIncludeTxPower:Z
+Landroid/bluetooth/le/AdvertisingSetParameters;->mInterval:I
+Landroid/bluetooth/le/AdvertisingSetParameters;->mIsAnonymous:Z
+Landroid/bluetooth/le/AdvertisingSetParameters;->mIsLegacy:Z
+Landroid/bluetooth/le/AdvertisingSetParameters;->mPrimaryPhy:I
+Landroid/bluetooth/le/AdvertisingSetParameters;->mScannable:Z
+Landroid/bluetooth/le/AdvertisingSetParameters;->mSecondaryPhy:I
+Landroid/bluetooth/le/AdvertisingSetParameters;->mTxPowerLevel:I
+Landroid/bluetooth/le/BluetoothLeAdvertiser;-><init>(Landroid/bluetooth/IBluetoothManager;)V
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->byteLength([B)I
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->cleanup()V
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->FLAGS_FIELD_BYTES:I
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->mAdvertisingSets:Ljava/util/Map;
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->MANUFACTURER_SPECIFIC_DATA_LENGTH:I
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->MAX_ADVERTISING_DATA_BYTES:I
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->MAX_LEGACY_ADVERTISING_DATA_BYTES:I
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->mBluetoothAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->mBluetoothManager:Landroid/bluetooth/IBluetoothManager;
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->mCallbackWrappers:Ljava/util/Map;
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->mHandler:Landroid/os/Handler;
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->mLegacyAdvertisers:Ljava/util/Map;
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->OVERHEAD_BYTES_PER_FIELD:I
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->postStartFailure(Landroid/bluetooth/le/AdvertiseCallback;I)V
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->postStartSetFailure(Landroid/os/Handler;Landroid/bluetooth/le/AdvertisingSetCallback;I)V
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->postStartSuccess(Landroid/bluetooth/le/AdvertiseCallback;Landroid/bluetooth/le/AdvertiseSettings;)V
+Landroid/bluetooth/le/BluetoothLeAdvertiser;->TAG:Ljava/lang/String;
+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;
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->mResultStorages:Ljava/util/List;
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->mScanCallback:Landroid/bluetooth/le/ScanCallback;
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->mScannerId:I
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->mSettings:Landroid/bluetooth/le/ScanSettings;
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->mWorkSource:Landroid/os/WorkSource;
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->onBatchScanResults(Ljava/util/List;)V
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->onFoundOrLost(ZLandroid/bluetooth/le/ScanResult;)V
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->onScanManagerErrorCallback(I)V
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->onScannerRegistered(II)V
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->onScanResult(Landroid/bluetooth/le/ScanResult;)V
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->REGISTRATION_CALLBACK_TIMEOUT_MILLIS:I
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->startRegistration()V
+Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->stopLeScan()V
+Landroid/bluetooth/le/BluetoothLeScanner;-><init>(Landroid/bluetooth/IBluetoothManager;)V
+Landroid/bluetooth/le/BluetoothLeScanner;->cleanup()V
+Landroid/bluetooth/le/BluetoothLeScanner;->DBG:Z
+Landroid/bluetooth/le/BluetoothLeScanner;->isHardwareResourcesAvailableForScan(Landroid/bluetooth/le/ScanSettings;)Z
+Landroid/bluetooth/le/BluetoothLeScanner;->isSettingsAndFilterComboAllowed(Landroid/bluetooth/le/ScanSettings;Ljava/util/List;)Z
+Landroid/bluetooth/le/BluetoothLeScanner;->isSettingsConfigAllowedForScan(Landroid/bluetooth/le/ScanSettings;)Z
+Landroid/bluetooth/le/BluetoothLeScanner;->mBluetoothAdapter:Landroid/bluetooth/BluetoothAdapter;
+Landroid/bluetooth/le/BluetoothLeScanner;->mBluetoothManager:Landroid/bluetooth/IBluetoothManager;
+Landroid/bluetooth/le/BluetoothLeScanner;->mHandler:Landroid/os/Handler;
+Landroid/bluetooth/le/BluetoothLeScanner;->mLeScanClients:Ljava/util/Map;
+Landroid/bluetooth/le/BluetoothLeScanner;->postCallbackError(Landroid/bluetooth/le/ScanCallback;I)V
+Landroid/bluetooth/le/BluetoothLeScanner;->postCallbackErrorOrReturn(Landroid/bluetooth/le/ScanCallback;I)I
+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;
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onAdvertisingDataSet(II)V
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onAdvertisingEnabled(IZI)V
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onAdvertisingParametersUpdated(III)V
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onAdvertisingSetStarted(III)V
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onAdvertisingSetStopped(I)V
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onOwnAddressRead(IILjava/lang/String;)V
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onPeriodicAdvertisingDataSet(II)V
+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;
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onAdvertisingDataSet:I
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onAdvertisingEnabled:I
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onAdvertisingParametersUpdated:I
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onAdvertisingSetStarted:I
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onAdvertisingSetStopped:I
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onOwnAddressRead:I
+Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onPeriodicAdvertisingDataSet:I
+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
+Landroid/bluetooth/le/IAdvertisingSetCallback;->onAdvertisingSetStarted(III)V
+Landroid/bluetooth/le/IAdvertisingSetCallback;->onAdvertisingSetStopped(I)V
+Landroid/bluetooth/le/IAdvertisingSetCallback;->onOwnAddressRead(IILjava/lang/String;)V
+Landroid/bluetooth/le/IAdvertisingSetCallback;->onPeriodicAdvertisingDataSet(II)V
+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;
+Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;->onBatchScanResults(Ljava/util/List;)V
+Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;->onFoundOrLost(ZLandroid/bluetooth/le/ScanResult;)V
+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;
+Landroid/bluetooth/le/IScannerCallback$Stub;->TRANSACTION_onBatchScanResults:I
+Landroid/bluetooth/le/IScannerCallback$Stub;->TRANSACTION_onFoundOrLost:I
+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
+Landroid/bluetooth/le/PeriodicAdvertisingCallback;->onSyncLost(I)V
+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;
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->mCallbackWrappers:Ljava/util/Map;
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->registerSync(Landroid/bluetooth/le/ScanResult;IILandroid/bluetooth/le/PeriodicAdvertisingCallback;)V
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->registerSync(Landroid/bluetooth/le/ScanResult;IILandroid/bluetooth/le/PeriodicAdvertisingCallback;Landroid/os/Handler;)V
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->SKIP_MAX:I
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->SKIP_MIN:I
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->SYNC_STARTING:I
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->TAG:Ljava/lang/String;
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->TIMEOUT_MAX:I
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->TIMEOUT_MIN:I
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->unregisterSync(Landroid/bluetooth/le/PeriodicAdvertisingCallback;)V
+Landroid/bluetooth/le/PeriodicAdvertisingManager;->wrap(Landroid/bluetooth/le/PeriodicAdvertisingCallback;Landroid/os/Handler;)Landroid/bluetooth/le/IPeriodicAdvertisingCallback;
+Landroid/bluetooth/le/PeriodicAdvertisingParameters$Builder;->mIncludeTxPower:Z
+Landroid/bluetooth/le/PeriodicAdvertisingParameters$Builder;->mInterval:I
+Landroid/bluetooth/le/PeriodicAdvertisingParameters;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/PeriodicAdvertisingParameters;-><init>(ZI)V
+Landroid/bluetooth/le/PeriodicAdvertisingParameters;->INTERVAL_MAX:I
+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;
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->DATA_COMPLETE:I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->DATA_INCOMPLETE_TRUNCATED:I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->getData()Landroid/bluetooth/le/ScanRecord;
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->getDataStatus()I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->getRssi()I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->getSyncHandle()I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->getTimestampNanos()J
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->getTxPower()I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->mData:Landroid/bluetooth/le/ScanRecord;
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->mDataStatus:I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->mRssi:I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->mSyncHandle:I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->mTimestampNanos:J
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->mTxPower:I
+Landroid/bluetooth/le/PeriodicAdvertisingReport;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/ResultStorageDescriptor;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/ResultStorageDescriptor;->mLength:I
+Landroid/bluetooth/le/ResultStorageDescriptor;->mOffset:I
+Landroid/bluetooth/le/ResultStorageDescriptor;->mType:I
+Landroid/bluetooth/le/ResultStorageDescriptor;->ReadFromParcel(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/ScanCallback;->NO_ERROR:I
+Landroid/bluetooth/le/ScanCallback;->SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES:I
+Landroid/bluetooth/le/ScanCallback;->SCAN_FAILED_SCANNING_TOO_FREQUENTLY:I
+Landroid/bluetooth/le/ScanFilter$Builder;->mDeviceAddress:Ljava/lang/String;
+Landroid/bluetooth/le/ScanFilter$Builder;->mDeviceName:Ljava/lang/String;
+Landroid/bluetooth/le/ScanFilter$Builder;->mManufacturerData:[B
+Landroid/bluetooth/le/ScanFilter$Builder;->mManufacturerDataMask:[B
+Landroid/bluetooth/le/ScanFilter$Builder;->mManufacturerId:I
+Landroid/bluetooth/le/ScanFilter$Builder;->mServiceData:[B
+Landroid/bluetooth/le/ScanFilter$Builder;->mServiceDataMask:[B
+Landroid/bluetooth/le/ScanFilter$Builder;->mServiceDataUuid:Landroid/os/ParcelUuid;
+Landroid/bluetooth/le/ScanFilter$Builder;->mServiceUuid:Landroid/os/ParcelUuid;
+Landroid/bluetooth/le/ScanFilter$Builder;->mUuidMask:Landroid/os/ParcelUuid;
+Landroid/bluetooth/le/ScanFilter;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;[B[BI[B[B)V
+Landroid/bluetooth/le/ScanFilter;->EMPTY:Landroid/bluetooth/le/ScanFilter;
+Landroid/bluetooth/le/ScanFilter;->isAllFieldsEmpty()Z
+Landroid/bluetooth/le/ScanFilter;->matchesPartialData([B[B[B)Z
+Landroid/bluetooth/le/ScanFilter;->matchesServiceUuid(Ljava/util/UUID;Ljava/util/UUID;Ljava/util/UUID;)Z
+Landroid/bluetooth/le/ScanFilter;->matchesServiceUuids(Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Ljava/util/List;)Z
+Landroid/bluetooth/le/ScanFilter;->mDeviceAddress:Ljava/lang/String;
+Landroid/bluetooth/le/ScanFilter;->mDeviceName:Ljava/lang/String;
+Landroid/bluetooth/le/ScanFilter;->mManufacturerData:[B
+Landroid/bluetooth/le/ScanFilter;->mManufacturerDataMask:[B
+Landroid/bluetooth/le/ScanFilter;->mManufacturerId:I
+Landroid/bluetooth/le/ScanFilter;->mServiceData:[B
+Landroid/bluetooth/le/ScanFilter;->mServiceDataMask:[B
+Landroid/bluetooth/le/ScanFilter;->mServiceDataUuid:Landroid/os/ParcelUuid;
+Landroid/bluetooth/le/ScanFilter;->mServiceUuid:Landroid/os/ParcelUuid;
+Landroid/bluetooth/le/ScanFilter;->mServiceUuidMask:Landroid/os/ParcelUuid;
+Landroid/bluetooth/le/ScanRecord;-><init>(Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_FLAGS:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_LOCAL_NAME_COMPLETE:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_LOCAL_NAME_SHORT:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_MANUFACTURER_SPECIFIC_DATA:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_DATA_128_BIT:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_DATA_16_BIT:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_DATA_32_BIT:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_UUIDS_128_BIT_COMPLETE:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_UUIDS_128_BIT_PARTIAL:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_UUIDS_16_BIT_COMPLETE:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_UUIDS_16_BIT_PARTIAL:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_UUIDS_32_BIT_COMPLETE:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_SERVICE_UUIDS_32_BIT_PARTIAL:I
+Landroid/bluetooth/le/ScanRecord;->DATA_TYPE_TX_POWER_LEVEL:I
+Landroid/bluetooth/le/ScanRecord;->extractBytes([BII)[B
+Landroid/bluetooth/le/ScanRecord;->mAdvertiseFlags:I
+Landroid/bluetooth/le/ScanRecord;->mBytes:[B
+Landroid/bluetooth/le/ScanRecord;->mDeviceName:Ljava/lang/String;
+Landroid/bluetooth/le/ScanRecord;->mManufacturerSpecificData:Landroid/util/SparseArray;
+Landroid/bluetooth/le/ScanRecord;->mServiceData:Ljava/util/Map;
+Landroid/bluetooth/le/ScanRecord;->mServiceUuids:Ljava/util/List;
+Landroid/bluetooth/le/ScanRecord;->mTxPowerLevel:I
+Landroid/bluetooth/le/ScanRecord;->parseServiceUuid([BIIILjava/util/List;)I
+Landroid/bluetooth/le/ScanRecord;->TAG:Ljava/lang/String;
+Landroid/bluetooth/le/ScanResult;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/ScanResult;->ET_CONNECTABLE_MASK:I
+Landroid/bluetooth/le/ScanResult;->ET_LEGACY_MASK:I
+Landroid/bluetooth/le/ScanResult;->mAdvertisingSid:I
+Landroid/bluetooth/le/ScanResult;->mDevice:Landroid/bluetooth/BluetoothDevice;
+Landroid/bluetooth/le/ScanResult;->mEventType:I
+Landroid/bluetooth/le/ScanResult;->mPeriodicAdvertisingInterval:I
+Landroid/bluetooth/le/ScanResult;->mPrimaryPhy:I
+Landroid/bluetooth/le/ScanResult;->mRssi:I
+Landroid/bluetooth/le/ScanResult;->mScanRecord:Landroid/bluetooth/le/ScanRecord;
+Landroid/bluetooth/le/ScanResult;->mSecondaryPhy:I
+Landroid/bluetooth/le/ScanResult;->mTimestampNanos:J
+Landroid/bluetooth/le/ScanResult;->mTxPower:I
+Landroid/bluetooth/le/ScanResult;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/ScanSettings$Builder;->isValidCallbackType(I)Z
+Landroid/bluetooth/le/ScanSettings$Builder;->mCallbackType:I
+Landroid/bluetooth/le/ScanSettings$Builder;->mLegacy:Z
+Landroid/bluetooth/le/ScanSettings$Builder;->mMatchMode:I
+Landroid/bluetooth/le/ScanSettings$Builder;->mNumOfMatchesPerFilter:I
+Landroid/bluetooth/le/ScanSettings$Builder;->mPhy:I
+Landroid/bluetooth/le/ScanSettings$Builder;->mReportDelayMillis:J
+Landroid/bluetooth/le/ScanSettings$Builder;->mScanMode:I
+Landroid/bluetooth/le/ScanSettings$Builder;->mScanResultType:I
+Landroid/bluetooth/le/ScanSettings;-><init>(IIIJIIZI)V
+Landroid/bluetooth/le/ScanSettings;-><init>(Landroid/os/Parcel;)V
+Landroid/bluetooth/le/ScanSettings;->getMatchMode()I
+Landroid/bluetooth/le/ScanSettings;->getNumOfMatches()I
+Landroid/bluetooth/le/ScanSettings;->mCallbackType:I
+Landroid/bluetooth/le/ScanSettings;->mLegacy:Z
+Landroid/bluetooth/le/ScanSettings;->mMatchMode:I
+Landroid/bluetooth/le/ScanSettings;->mNumOfMatchesPerFilter:I
+Landroid/bluetooth/le/ScanSettings;->mPhy:I
+Landroid/bluetooth/le/ScanSettings;->mReportDelayMillis:J
+Landroid/bluetooth/le/ScanSettings;->mScanMode:I
+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;
+Landroid/bluetooth/OobData;->getLeBluetoothDeviceAddress()[B
+Landroid/bluetooth/OobData;->getLeSecureConnectionsConfirmation()[B
+Landroid/bluetooth/OobData;->getLeSecureConnectionsRandom()[B
+Landroid/bluetooth/OobData;->getSecurityManagerTk()[B
+Landroid/bluetooth/OobData;->mLeBluetoothDeviceAddress:[B
+Landroid/bluetooth/OobData;->mLeSecureConnectionsConfirmation:[B
+Landroid/bluetooth/OobData;->mLeSecureConnectionsRandom:[B
+Landroid/bluetooth/OobData;->mSecurityManagerTk:[B
+Landroid/bluetooth/OobData;->setLeBluetoothDeviceAddress([B)V
+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;
+Landroid/bluetooth/SdpMasRecord;->getL2capPsm()I
+Landroid/bluetooth/SdpMasRecord;->getMasInstanceId()I
+Landroid/bluetooth/SdpMasRecord;->getProfileVersion()I
+Landroid/bluetooth/SdpMasRecord;->getRfcommCannelNumber()I
+Landroid/bluetooth/SdpMasRecord;->getServiceName()Ljava/lang/String;
+Landroid/bluetooth/SdpMasRecord;->getSupportedFeatures()I
+Landroid/bluetooth/SdpMasRecord;->getSupportedMessageTypes()I
+Landroid/bluetooth/SdpMasRecord;->mL2capPsm:I
+Landroid/bluetooth/SdpMasRecord;->mMasInstanceId:I
+Landroid/bluetooth/SdpMasRecord;->mProfileVersion:I
+Landroid/bluetooth/SdpMasRecord;->mRfcommChannelNumber:I
+Landroid/bluetooth/SdpMasRecord;->mServiceName:Ljava/lang/String;
+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;
+Landroid/bluetooth/SdpMnsRecord;->getL2capPsm()I
+Landroid/bluetooth/SdpMnsRecord;->getProfileVersion()I
+Landroid/bluetooth/SdpMnsRecord;->getRfcommChannelNumber()I
+Landroid/bluetooth/SdpMnsRecord;->getServiceName()Ljava/lang/String;
+Landroid/bluetooth/SdpMnsRecord;->getSupportedFeatures()I
+Landroid/bluetooth/SdpMnsRecord;->mL2capPsm:I
+Landroid/bluetooth/SdpMnsRecord;->mProfileVersion:I
+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;
+Landroid/bluetooth/SdpOppOpsRecord;->getFormatsList()[B
+Landroid/bluetooth/SdpOppOpsRecord;->getL2capPsm()I
+Landroid/bluetooth/SdpOppOpsRecord;->getProfileVersion()I
+Landroid/bluetooth/SdpOppOpsRecord;->getRfcommChannel()I
+Landroid/bluetooth/SdpOppOpsRecord;->getServiceName()Ljava/lang/String;
+Landroid/bluetooth/SdpOppOpsRecord;->mFormatsList:[B
+Landroid/bluetooth/SdpOppOpsRecord;->mL2capPsm:I
+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;
+Landroid/bluetooth/SdpPseRecord;->getL2capPsm()I
+Landroid/bluetooth/SdpPseRecord;->getProfileVersion()I
+Landroid/bluetooth/SdpPseRecord;->getRfcommChannelNumber()I
+Landroid/bluetooth/SdpPseRecord;->getServiceName()Ljava/lang/String;
+Landroid/bluetooth/SdpPseRecord;->getSupportedFeatures()I
+Landroid/bluetooth/SdpPseRecord;->getSupportedRepositories()I
+Landroid/bluetooth/SdpPseRecord;->mL2capPsm:I
+Landroid/bluetooth/SdpPseRecord;->mProfileVersion:I
+Landroid/bluetooth/SdpPseRecord;->mRfcommChannelNumber:I
+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;
+Landroid/bluetooth/SdpRecord;->getRawData()[B
+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;
+Landroid/bluetooth/SdpSapsRecord;->getProfileVersion()I
+Landroid/bluetooth/SdpSapsRecord;->getRfcommCannelNumber()I
+Landroid/bluetooth/SdpSapsRecord;->getServiceName()Ljava/lang/String;
+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
+Landroid/bluetooth/UidTraffic;->addRxBytes(J)V
+Landroid/bluetooth/UidTraffic;->addTxBytes(J)V
+Landroid/bluetooth/UidTraffic;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/bluetooth/UidTraffic;->getRxBytes()J
+Landroid/bluetooth/UidTraffic;->getTxBytes()J
+Landroid/bluetooth/UidTraffic;->getUid()I
+Landroid/bluetooth/UidTraffic;->mAppUid:I
+Landroid/bluetooth/UidTraffic;->mRxBytes:J
+Landroid/bluetooth/UidTraffic;->mTxBytes:J
+Landroid/bluetooth/UidTraffic;->setRxBytes(J)V
+Landroid/bluetooth/UidTraffic;->setTxBytes(J)V
+Landroid/companion/AssociationRequest$Builder;->mDeviceFilters:Ljava/util/ArrayList;
+Landroid/companion/AssociationRequest$Builder;->mSingleDevice:Z
+Landroid/companion/AssociationRequest;-><init>(Landroid/os/Parcel;)V
+Landroid/companion/AssociationRequest;-><init>(ZLjava/util/List;)V
+Landroid/companion/AssociationRequest;->mDeviceFilters:Ljava/util/List;
+Landroid/companion/AssociationRequest;->mSingleDevice:Z
+Landroid/companion/BluetoothDeviceFilter$Builder;->mAddress:Ljava/lang/String;
+Landroid/companion/BluetoothDeviceFilter$Builder;->mNamePattern:Ljava/util/regex/Pattern;
+Landroid/companion/BluetoothDeviceFilter$Builder;->mServiceUuid:Ljava/util/ArrayList;
+Landroid/companion/BluetoothDeviceFilter$Builder;->mServiceUuidMask:Ljava/util/ArrayList;
+Landroid/companion/BluetoothDeviceFilter;-><init>(Landroid/os/Parcel;)V
+Landroid/companion/BluetoothDeviceFilter;-><init>(Ljava/util/regex/Pattern;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
+Landroid/companion/BluetoothDeviceFilter;->getDeviceDisplayName(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+Landroid/companion/BluetoothDeviceFilter;->getMediumType()I
+Landroid/companion/BluetoothDeviceFilter;->getNamePattern()Ljava/util/regex/Pattern;
+Landroid/companion/BluetoothDeviceFilter;->getServiceUuidMasks()Ljava/util/List;
+Landroid/companion/BluetoothDeviceFilter;->getServiceUuids()Ljava/util/List;
+Landroid/companion/BluetoothDeviceFilter;->mAddress:Ljava/lang/String;
+Landroid/companion/BluetoothDeviceFilter;->matches(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/companion/BluetoothDeviceFilter;->mNamePattern:Ljava/util/regex/Pattern;
+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
+Landroid/companion/BluetoothDeviceFilterUtils;->debugLogMatchResult(ZLandroid/net/wifi/ScanResult;Ljava/lang/Object;)V
+Landroid/companion/BluetoothDeviceFilterUtils;->LOG_TAG:Ljava/lang/String;
+Landroid/companion/BluetoothDeviceFilterUtils;->matches(Landroid/bluetooth/le/ScanFilter;Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/companion/BluetoothDeviceFilterUtils;->matchesAddress(Ljava/lang/String;Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/companion/BluetoothDeviceFilterUtils;->matchesName(Ljava/util/regex/Pattern;Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/companion/BluetoothDeviceFilterUtils;->matchesName(Ljava/util/regex/Pattern;Landroid/net/wifi/ScanResult;)Z
+Landroid/companion/BluetoothDeviceFilterUtils;->matchesServiceUuid(Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/companion/BluetoothDeviceFilterUtils;->matchesServiceUuids(Ljava/util/List;Ljava/util/List;Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/companion/BluetoothDeviceFilterUtils;->patternFromString(Ljava/lang/String;)Ljava/util/regex/Pattern;
+Landroid/companion/BluetoothDeviceFilterUtils;->patternToString(Ljava/util/regex/Pattern;)Ljava/lang/String;
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->checkRangeNotEmpty(I)V
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->checkRenameNotSet()V
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mNamePattern:Ljava/util/regex/Pattern;
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRawDataFilter:[B
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRawDataFilterMask:[B
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRenameBytesFrom:I
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRenameBytesLength:I
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRenameBytesReverseOrder:Z
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRenameNameFrom:I
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRenameNameLength:I
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRenamePrefix:Ljava/lang/String;
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mRenameSuffix:Ljava/lang/String;
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->mScanFilter:Landroid/bluetooth/le/ScanFilter;
+Landroid/companion/BluetoothLeDeviceFilter$Builder;->setRename(Ljava/lang/String;Ljava/lang/String;)Landroid/companion/BluetoothLeDeviceFilter$Builder;
+Landroid/companion/BluetoothLeDeviceFilter;-><init>(Ljava/util/regex/Pattern;Landroid/bluetooth/le/ScanFilter;[B[BLjava/lang/String;Ljava/lang/String;IIIIZ)V
+Landroid/companion/BluetoothLeDeviceFilter;->DEBUG:Z
+Landroid/companion/BluetoothLeDeviceFilter;->getDeviceDisplayName(Landroid/bluetooth/le/ScanResult;)Ljava/lang/String;
+Landroid/companion/BluetoothLeDeviceFilter;->getMediumType()I
+Landroid/companion/BluetoothLeDeviceFilter;->getNamePattern()Ljava/util/regex/Pattern;
+Landroid/companion/BluetoothLeDeviceFilter;->getRawDataFilter()[B
+Landroid/companion/BluetoothLeDeviceFilter;->getRawDataFilterMask()[B
+Landroid/companion/BluetoothLeDeviceFilter;->getRenameBytesFrom()I
+Landroid/companion/BluetoothLeDeviceFilter;->getRenameBytesLength()I
+Landroid/companion/BluetoothLeDeviceFilter;->getRenamePrefix()Ljava/lang/String;
+Landroid/companion/BluetoothLeDeviceFilter;->getRenameSuffix()Ljava/lang/String;
+Landroid/companion/BluetoothLeDeviceFilter;->isRenameBytesReverseOrder()Z
+Landroid/companion/BluetoothLeDeviceFilter;->LOG_TAG:Ljava/lang/String;
+Landroid/companion/BluetoothLeDeviceFilter;->matches(Landroid/bluetooth/BluetoothDevice;)Z
+Landroid/companion/BluetoothLeDeviceFilter;->matches(Landroid/bluetooth/le/ScanResult;)Z
+Landroid/companion/BluetoothLeDeviceFilter;->mNamePattern:Ljava/util/regex/Pattern;
+Landroid/companion/BluetoothLeDeviceFilter;->mRawDataFilter:[B
+Landroid/companion/BluetoothLeDeviceFilter;->mRawDataFilterMask:[B
+Landroid/companion/BluetoothLeDeviceFilter;->mRenameBytesFrom:I
+Landroid/companion/BluetoothLeDeviceFilter;->mRenameBytesLength:I
+Landroid/companion/BluetoothLeDeviceFilter;->mRenameBytesReverseOrder:Z
+Landroid/companion/BluetoothLeDeviceFilter;->mRenameNameFrom:I
+Landroid/companion/BluetoothLeDeviceFilter;->mRenameNameLength:I
+Landroid/companion/BluetoothLeDeviceFilter;->mRenamePrefix:Ljava/lang/String;
+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;
+Landroid/companion/CompanionDeviceManager$CallbackProxy;->mLock:Ljava/lang/Object;
+Landroid/companion/CompanionDeviceManager$CallbackProxy;->mRequest:Landroid/companion/AssociationRequest;
+Landroid/companion/CompanionDeviceManager$CallbackProxy;->onFailure(Ljava/lang/CharSequence;)V
+Landroid/companion/CompanionDeviceManager$CallbackProxy;->onSuccess(Landroid/app/PendingIntent;)V
+Landroid/companion/CompanionDeviceManager;-><init>(Landroid/companion/ICompanionDeviceManager;Landroid/content/Context;)V
+Landroid/companion/CompanionDeviceManager;->checkFeaturePresent()Z
+Landroid/companion/CompanionDeviceManager;->COMPANION_DEVICE_DISCOVERY_PACKAGE_NAME:Ljava/lang/String;
+Landroid/companion/CompanionDeviceManager;->DEBUG:Z
+Landroid/companion/CompanionDeviceManager;->getActivity()Landroid/app/Activity;
+Landroid/companion/CompanionDeviceManager;->getCallingPackage()Ljava/lang/String;
+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
+Landroid/companion/ICompanionDeviceManager$Stub$Proxy;->getAssociations(Ljava/lang/String;I)Ljava/util/List;
+Landroid/companion/ICompanionDeviceManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/companion/ICompanionDeviceManager$Stub$Proxy;->hasNotificationAccess(Landroid/content/ComponentName;)Z
+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;
+Landroid/companion/ICompanionDeviceManager$Stub;->TRANSACTION_associate:I
+Landroid/companion/ICompanionDeviceManager$Stub;->TRANSACTION_disassociate:I
+Landroid/companion/ICompanionDeviceManager$Stub;->TRANSACTION_getAssociations:I
+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
+Landroid/companion/WifiDeviceFilter;-><init>(Ljava/util/regex/Pattern;)V
+Landroid/companion/WifiDeviceFilter;->getDeviceDisplayName(Landroid/net/wifi/ScanResult;)Ljava/lang/String;
+Landroid/companion/WifiDeviceFilter;->getMediumType()I
+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;
+Landroid/content/AbstractThreadedSyncAdapter$SyncThread;->mExtras:Landroid/os/Bundle;
+Landroid/content/AbstractThreadedSyncAdapter$SyncThread;->mSyncContext:Landroid/content/SyncContext;
+Landroid/content/AbstractThreadedSyncAdapter$SyncThread;->mThreadsKey:Landroid/accounts/Account;
+Landroid/content/AbstractThreadedSyncAdapter;->ENABLE_LOG:Z
+Landroid/content/AbstractThreadedSyncAdapter;->handleOnUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
+Landroid/content/AbstractThreadedSyncAdapter;->mAllowParallelSyncs:Z
+Landroid/content/AbstractThreadedSyncAdapter;->mAutoInitialize:Z
+Landroid/content/AbstractThreadedSyncAdapter;->mContext:Landroid/content/Context;
+Landroid/content/AbstractThreadedSyncAdapter;->mISyncAdapterImpl:Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;
+Landroid/content/AbstractThreadedSyncAdapter;->mNumSyncStarts:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/content/AbstractThreadedSyncAdapter;->mSyncThreadLock:Ljava/lang/Object;
+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
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_FULL_USER:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_LANDSCAPE:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_LOCKED:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_NOSENSOR:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_PORTRAIT:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_REVERSE_LANDSCAPE:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_REVERSE_PORTRAIT:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_SENSOR:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_SENSOR_LANDSCAPE:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_SENSOR_PORTRAIT:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_UNSET:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_UNSPECIFIED:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_USER:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_USER_LANDSCAPE:I
+Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_USER_PORTRAIT:I
+Landroid/content/AsyncQueryHandler;->EVENT_ARG_DELETE:I
+Landroid/content/AsyncQueryHandler;->EVENT_ARG_INSERT:I
+Landroid/content/AsyncQueryHandler;->EVENT_ARG_QUERY:I
+Landroid/content/AsyncQueryHandler;->EVENT_ARG_UPDATE:I
+Landroid/content/AsyncQueryHandler;->localLOGV:Z
+Landroid/content/AsyncQueryHandler;->mResolver:Ljava/lang/ref/WeakReference;
+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
+Landroid/content/AsyncTaskLoader$LoadTask;->waitForLoader()V
+Landroid/content/AsyncTaskLoader$LoadTask;->waiting:Z
+Landroid/content/AsyncTaskLoader;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;)V
+Landroid/content/AsyncTaskLoader;->DEBUG:Z
+Landroid/content/AsyncTaskLoader;->dispatchOnCancelled(Landroid/content/AsyncTaskLoader$LoadTask;Ljava/lang/Object;)V
+Landroid/content/AsyncTaskLoader;->dispatchOnLoadComplete(Landroid/content/AsyncTaskLoader$LoadTask;Ljava/lang/Object;)V
+Landroid/content/AsyncTaskLoader;->executePendingTask()V
+Landroid/content/AsyncTaskLoader;->mCancellingTask:Landroid/content/AsyncTaskLoader$LoadTask;
+Landroid/content/AsyncTaskLoader;->mHandler:Landroid/os/Handler;
+Landroid/content/AsyncTaskLoader;->mLastLoadCompleteTime:J
+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
+Landroid/content/AuthorityEntryProto;->WILD:J
+Landroid/content/BroadcastReceiver$PendingResult;->checkSynchronousHint()V
+Landroid/content/BroadcastReceiver$PendingResult;->getSendingUserId()I
+Landroid/content/BroadcastReceiver$PendingResult;->sendFinished(Landroid/app/IActivityManager;)V
+Landroid/content/BroadcastReceiver$PendingResult;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V
+Landroid/content/BroadcastReceiver$PendingResult;->TYPE_COMPONENT:I
+Landroid/content/BroadcastReceiver$PendingResult;->TYPE_REGISTERED:I
+Landroid/content/BroadcastReceiver$PendingResult;->TYPE_UNREGISTERED:I
+Landroid/content/BroadcastReceiver;->checkSynchronousHint()V
+Landroid/content/BroadcastReceiver;->getSendingUserId()I
+Landroid/content/BroadcastReceiver;->mDebugUnregister:Z
+Landroid/content/ClipboardManager;->mContext:Landroid/content/Context;
+Landroid/content/ClipboardManager;->mHandler:Landroid/os/Handler;
+Landroid/content/ClipboardManager;->mPrimaryClipChangedListeners:Ljava/util/ArrayList;
+Landroid/content/ClipboardManager;->mPrimaryClipChangedServiceListener:Landroid/content/IOnPrimaryClipChangedListener$Stub;
+Landroid/content/ClipboardManager;->mService:Landroid/content/IClipboard;
+Landroid/content/ClipData$Item;-><init>(Landroid/content/ClipData$Item;)V
+Landroid/content/ClipData$Item;->coerceToHtmlOrStyledText(Landroid/content/Context;Z)Ljava/lang/CharSequence;
+Landroid/content/ClipData$Item;->mHtmlText:Ljava/lang/String;
+Landroid/content/ClipData$Item;->mIntent:Landroid/content/Intent;
+Landroid/content/ClipData$Item;->mText:Ljava/lang/CharSequence;
+Landroid/content/ClipData$Item;->toShortString(Ljava/lang/StringBuilder;)V
+Landroid/content/ClipData$Item;->toShortSummaryString(Ljava/lang/StringBuilder;)V
+Landroid/content/ClipData$Item;->uriToHtml(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/ClipData$Item;->uriToStyledText(Ljava/lang/String;)Ljava/lang/CharSequence;
+Landroid/content/ClipData$Item;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+Landroid/content/ClipData;-><init>(Landroid/content/ClipDescription;Ljava/util/ArrayList;)V
+Landroid/content/ClipData;-><init>(Landroid/os/Parcel;)V
+Landroid/content/ClipData;->collectUris(Ljava/util/List;)V
+Landroid/content/ClipData;->fixUris(I)V
+Landroid/content/ClipData;->fixUrisLight(I)V
+Landroid/content/ClipData;->getMimeTypes(Landroid/content/ContentResolver;Landroid/net/Uri;)[Ljava/lang/String;
+Landroid/content/ClipData;->mClipDescription:Landroid/content/ClipDescription;
+Landroid/content/ClipData;->mIcon:Landroid/graphics/Bitmap;
+Landroid/content/ClipData;->MIMETYPES_TEXT_HTML:[Ljava/lang/String;
+Landroid/content/ClipData;->MIMETYPES_TEXT_INTENT:[Ljava/lang/String;
+Landroid/content/ClipData;->MIMETYPES_TEXT_PLAIN:[Ljava/lang/String;
+Landroid/content/ClipData;->MIMETYPES_TEXT_URILIST:[Ljava/lang/String;
+Landroid/content/ClipData;->mItems:Ljava/util/ArrayList;
+Landroid/content/ClipData;->prepareToEnterProcess()V
+Landroid/content/ClipData;->prepareToLeaveProcess(Z)V
+Landroid/content/ClipData;->prepareToLeaveProcess(ZI)V
+Landroid/content/ClipData;->setItemAt(ILandroid/content/ClipData$Item;)V
+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
+Landroid/content/ClipDataProto;->ITEMS:J
+Landroid/content/ClipDescription;-><init>(Landroid/os/Parcel;)V
+Landroid/content/ClipDescription;->addMimeTypes([Ljava/lang/String;)V
+Landroid/content/ClipDescription;->EXTRA_TARGET_COMPONENT_NAME:Ljava/lang/String;
+Landroid/content/ClipDescription;->EXTRA_USER_SERIAL_NUMBER:Ljava/lang/String;
+Landroid/content/ClipDescription;->mExtras:Landroid/os/PersistableBundle;
+Landroid/content/ClipDescription;->mLabel:Ljava/lang/CharSequence;
+Landroid/content/ClipDescription;->mMimeTypes:Ljava/util/ArrayList;
+Landroid/content/ClipDescription;->mTimeStamp:J
+Landroid/content/ClipDescription;->setTimestamp(J)V
+Landroid/content/ClipDescription;->toShortString(Ljava/lang/StringBuilder;)Z
+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
+Landroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;)V
+Landroid/content/ComponentName;->mClass:Ljava/lang/String;
+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
+Landroid/content/ConfigurationProto;->FONT_SCALE:J
+Landroid/content/ConfigurationProto;->HARD_KEYBOARD_HIDDEN:J
+Landroid/content/ConfigurationProto;->KEYBOARD:J
+Landroid/content/ConfigurationProto;->KEYBOARD_HIDDEN:J
+Landroid/content/ConfigurationProto;->LOCALES:J
+Landroid/content/ConfigurationProto;->MCC:J
+Landroid/content/ConfigurationProto;->MNC:J
+Landroid/content/ConfigurationProto;->NAVIGATION:J
+Landroid/content/ConfigurationProto;->NAVIGATION_HIDDEN:J
+Landroid/content/ConfigurationProto;->ORIENTATION:J
+Landroid/content/ConfigurationProto;->SCREEN_HEIGHT_DP:J
+Landroid/content/ConfigurationProto;->SCREEN_LAYOUT:J
+Landroid/content/ConfigurationProto;->SCREEN_WIDTH_DP:J
+Landroid/content/ConfigurationProto;->SMALLEST_SCREEN_WIDTH_DP:J
+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;
+Landroid/content/ContentProvider$Transport;->canonicalize(Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/content/ContentProvider$Transport;->createCancellationSignal()Landroid/os/ICancellationSignal;
+Landroid/content/ContentProvider$Transport;->delete(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
+Landroid/content/ContentProvider$Transport;->enforceFilePermission(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)V
+Landroid/content/ContentProvider$Transport;->enforceReadPermission(Ljava/lang/String;Landroid/net/Uri;Landroid/os/IBinder;)I
+Landroid/content/ContentProvider$Transport;->enforceWritePermission(Ljava/lang/String;Landroid/net/Uri;Landroid/os/IBinder;)I
+Landroid/content/ContentProvider$Transport;->getContentProvider()Landroid/content/ContentProvider;
+Landroid/content/ContentProvider$Transport;->getProviderName()Ljava/lang/String;
+Landroid/content/ContentProvider$Transport;->getStreamTypes(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;
+Landroid/content/ContentProvider$Transport;->getType(Landroid/net/Uri;)Ljava/lang/String;
+Landroid/content/ContentProvider$Transport;->insert(Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
+Landroid/content/ContentProvider$Transport;->mAppOpsManager:Landroid/app/AppOpsManager;
+Landroid/content/ContentProvider$Transport;->mReadOp:I
+Landroid/content/ContentProvider$Transport;->mWriteOp:I
+Landroid/content/ContentProvider$Transport;->openAssetFile(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
+Landroid/content/ContentProvider$Transport;->openFile(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/ICancellationSignal;Landroid/os/IBinder;)Landroid/os/ParcelFileDescriptor;
+Landroid/content/ContentProvider$Transport;->openTypedAssetFile(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
+Landroid/content/ContentProvider$Transport;->query(Ljava/lang/String;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
+Landroid/content/ContentProvider$Transport;->refresh(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Z
+Landroid/content/ContentProvider$Transport;->uncanonicalize(Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/content/ContentProvider$Transport;->update(Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
+Landroid/content/ContentProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;Z)V
+Landroid/content/ContentProvider;->checkPermissionAndAppOp(Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
+Landroid/content/ContentProvider;->checkUser(IILandroid/content/Context;)Z
+Landroid/content/ContentProvider;->enforceReadPermissionInner(Landroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)I
+Landroid/content/ContentProvider;->enforceWritePermissionInner(Landroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)I
+Landroid/content/ContentProvider;->getAppOpsManager()Landroid/app/AppOpsManager;
+Landroid/content/ContentProvider;->getAuthorityWithoutUserId(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/ContentProvider;->getUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/content/ContentProvider;->getUserIdFromAuthority(Ljava/lang/String;)I
+Landroid/content/ContentProvider;->getUserIdFromAuthority(Ljava/lang/String;I)I
+Landroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;)I
+Landroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;I)I
+Landroid/content/ContentProvider;->matchesOurAuthorities(Ljava/lang/String;)Z
+Landroid/content/ContentProvider;->maybeGetUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/content/ContentProvider;->mCallingPackage:Ljava/lang/ThreadLocal;
+Landroid/content/ContentProvider;->mExported:Z
+Landroid/content/ContentProvider;->mMyUid:I
+Landroid/content/ContentProvider;->mNoPerms:Z
+Landroid/content/ContentProvider;->mSingleUser:Z
+Landroid/content/ContentProvider;->mTransport:Landroid/content/ContentProvider$Transport;
+Landroid/content/ContentProvider;->rejectInsert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
+Landroid/content/ContentProvider;->setAuthorities(Ljava/lang/String;)V
+Landroid/content/ContentProvider;->setCallingPackage(Ljava/lang/String;)Ljava/lang/String;
+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
+Landroid/content/ContentProviderClient;->closeInternal()Z
+Landroid/content/ContentProviderClient;->mAnrRunnable:Landroid/content/ContentProviderClient$NotRespondingRunnable;
+Landroid/content/ContentProviderClient;->mAnrTimeout:J
+Landroid/content/ContentProviderClient;->mClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/content/ContentProviderClient;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/content/ContentProviderClient;->mContentResolver:Landroid/content/ContentResolver;
+Landroid/content/ContentProviderClient;->mStable:Z
+Landroid/content/ContentProviderClient;->releaseQuietly(Landroid/content/ContentProviderClient;)V
+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
+Landroid/content/ContentProviderOperation$Builder;->mExpectedCount:Ljava/lang/Integer;
+Landroid/content/ContentProviderOperation$Builder;->mSelection:Ljava/lang/String;
+Landroid/content/ContentProviderOperation$Builder;->mSelectionArgs:[Ljava/lang/String;
+Landroid/content/ContentProviderOperation$Builder;->mSelectionArgsBackReferences:Ljava/util/Map;
+Landroid/content/ContentProviderOperation$Builder;->mType:I
+Landroid/content/ContentProviderOperation$Builder;->mUri:Landroid/net/Uri;
+Landroid/content/ContentProviderOperation$Builder;->mValues:Landroid/content/ContentValues;
+Landroid/content/ContentProviderOperation$Builder;->mValuesBackReferences:Landroid/content/ContentValues;
+Landroid/content/ContentProviderOperation$Builder;->mYieldAllowed:Z
+Landroid/content/ContentProviderOperation;-><init>(Landroid/content/ContentProviderOperation$Builder;)V
+Landroid/content/ContentProviderOperation;-><init>(Landroid/content/ContentProviderOperation;Z)V
+Landroid/content/ContentProviderOperation;-><init>(Landroid/os/Parcel;)V
+Landroid/content/ContentProviderOperation;->backRefToValue([Landroid/content/ContentProviderResult;ILjava/lang/Integer;)J
+Landroid/content/ContentProviderOperation;->getWithoutUserIdInUri()Landroid/content/ContentProviderOperation;
+Landroid/content/ContentProviderOperation;->mExpectedCount:Ljava/lang/Integer;
+Landroid/content/ContentProviderOperation;->mSelectionArgs:[Ljava/lang/String;
+Landroid/content/ContentProviderOperation;->mSelectionArgsBackReferences:Ljava/util/Map;
+Landroid/content/ContentProviderOperation;->mValues:Landroid/content/ContentValues;
+Landroid/content/ContentProviderOperation;->mValuesBackReferences:Landroid/content/ContentValues;
+Landroid/content/ContentProviderOperation;->mYieldAllowed:Z
+Landroid/content/ContentProviderOperation;->TAG:Ljava/lang/String;
+Landroid/content/ContentProviderOperation;->TYPE_ASSERT:I
+Landroid/content/ContentProviderResult;-><init>(Landroid/content/ContentProviderResult;I)V
+Landroid/content/ContentQueryMap;->mColumnNames:[Ljava/lang/String;
+Landroid/content/ContentQueryMap;->mContentObserver:Landroid/database/ContentObserver;
+Landroid/content/ContentQueryMap;->mCursor:Landroid/database/Cursor;
+Landroid/content/ContentQueryMap;->mDirty:Z
+Landroid/content/ContentQueryMap;->mHandlerForUpdateNotifications:Landroid/os/Handler;
+Landroid/content/ContentQueryMap;->mKeepUpdated:Z
+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
+Landroid/content/ContentResolver;->cancelSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;I)V
+Landroid/content/ContentResolver;->CONTENT_SERVICE_NAME:Ljava/lang/String;
+Landroid/content/ContentResolver;->createSqlQueryBundle(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/content/ContentResolver;->createSqlSortClause(Landroid/os/Bundle;)Ljava/lang/String;
+Landroid/content/ContentResolver;->ENABLE_CONTENT_SAMPLE:Z
+Landroid/content/ContentResolver;->getCache(Landroid/net/Uri;)Landroid/os/Bundle;
+Landroid/content/ContentResolver;->getCurrentSyncsAsUser(I)Ljava/util/List;
+Landroid/content/ContentResolver;->getIsSyncableAsUser(Landroid/accounts/Account;Ljava/lang/String;I)I
+Landroid/content/ContentResolver;->getMasterSyncAutomaticallyAsUser(I)Z
+Landroid/content/ContentResolver;->getSyncAdapterTypesAsUser(I)[Landroid/content/SyncAdapterType;
+Landroid/content/ContentResolver;->getSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
+Landroid/content/ContentResolver;->getTargetSdkVersion()I
+Landroid/content/ContentResolver;->getTypeDrawable(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
+Landroid/content/ContentResolver;->getUserId()I
+Landroid/content/ContentResolver;->invalidPeriodicExtras(Landroid/os/Bundle;)Z
+Landroid/content/ContentResolver;->isSyncPendingAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
+Landroid/content/ContentResolver;->maybeLogQueryToEventLog(JLandroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/ContentResolver;->maybeLogUpdateToEventLog(JLandroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/content/ContentResolver;->mRandom:Ljava/util/Random;
+Landroid/content/ContentResolver;->mTargetSdkVersion:I
+Landroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;II)V
+Landroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;ZI)V
+Landroid/content/ContentResolver;->putCache(Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/content/ContentResolver;->requestSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;ILandroid/os/Bundle;)V
+Landroid/content/ContentResolver;->resolveUserId(Landroid/net/Uri;)I
+Landroid/content/ContentResolver;->samplePercentForDuration(J)I
+Landroid/content/ContentResolver;->setMasterSyncAutomaticallyAsUser(ZI)V
+Landroid/content/ContentResolver;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V
+Landroid/content/ContentResolver;->SLOW_THRESHOLD_MILLIS:I
+Landroid/content/ContentResolver;->syncErrorStringToInt(Ljava/lang/String;)I
+Landroid/content/ContentResolver;->syncErrorToString(I)Ljava/lang/String;
+Landroid/content/ContentResolver;->SYNC_ERROR_AUTHENTICATION:I
+Landroid/content/ContentResolver;->SYNC_ERROR_CONFLICT:I
+Landroid/content/ContentResolver;->SYNC_ERROR_INTERNAL:I
+Landroid/content/ContentResolver;->SYNC_ERROR_IO:I
+Landroid/content/ContentResolver;->SYNC_ERROR_NAMES:[Ljava/lang/String;
+Landroid/content/ContentResolver;->SYNC_ERROR_PARSE:I
+Landroid/content/ContentResolver;->SYNC_ERROR_TOO_MANY_DELETIONS:I
+Landroid/content/ContentResolver;->SYNC_ERROR_TOO_MANY_RETRIES:I
+Landroid/content/ContentResolver;->SYNC_EXEMPTION_NONE:I
+Landroid/content/ContentResolver;->SYNC_EXEMPTION_PROMOTE_BUCKET:I
+Landroid/content/ContentResolver;->SYNC_EXEMPTION_PROMOTE_BUCKET_WITH_TEMP:I
+Landroid/content/ContentResolver;->SYNC_EXTRAS_DISALLOW_METERED:Ljava/lang/String;
+Landroid/content/ContentResolver;->SYNC_EXTRAS_EXPECTED_DOWNLOAD:Ljava/lang/String;
+Landroid/content/ContentResolver;->SYNC_EXTRAS_EXPECTED_UPLOAD:Ljava/lang/String;
+Landroid/content/ContentResolver;->SYNC_EXTRAS_PRIORITY:Ljava/lang/String;
+Landroid/content/ContentResolver;->SYNC_OBSERVER_TYPE_ALL:I
+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
+Landroid/content/Context;->BIND_ALLOW_WHITELIST_MANAGEMENT:I
+Landroid/content/Context;->BIND_FOREGROUND_SERVICE:I
+Landroid/content/Context;->BIND_FOREGROUND_SERVICE_WHILE_AWAKE:I
+Landroid/content/Context;->BIND_IMPORTANT_BACKGROUND:I
+Landroid/content/Context;->BIND_NOT_VISIBLE:I
+Landroid/content/Context;->BIND_SHOWING_UI:I
+Landroid/content/Context;->BIND_TREAT_LIKE_ACTIVITY:I
+Landroid/content/Context;->BIND_VISIBLE:I
+Landroid/content/Context;->canLoadUnsafeResources()Z
+Landroid/content/Context;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I
+Landroid/content/Context;->CONTEXT_CREDENTIAL_PROTECTED_STORAGE:I
+Landroid/content/Context;->CONTEXT_DEVICE_PROTECTED_STORAGE:I
+Landroid/content/Context;->CONTEXT_REGISTER_PACKAGE:I
+Landroid/content/Context;->DEVICE_IDENTIFIERS_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->DEVICE_IDLE_CONTROLLER:Ljava/lang/String;
+Landroid/content/Context;->GATEKEEPER_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->getActivityToken()Landroid/os/IBinder;
+Landroid/content/Context;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+Landroid/content/Context;->getDisplayAdjustments(I)Landroid/view/DisplayAdjustments;
+Landroid/content/Context;->getIApplicationThread()Landroid/app/IApplicationThread;
+Landroid/content/Context;->getMainThreadHandler()Landroid/os/Handler;
+Landroid/content/Context;->getNextAutofillId()I
+Landroid/content/Context;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
+Landroid/content/Context;->INCIDENT_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->isAutofillCompatibilityEnabled()Z
+Landroid/content/Context;->LOWPAN_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->NETWORKMANAGEMENT_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->NETWORK_POLICY_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->NETWORK_WATCHLIST_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->OVERLAY_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->RADIO_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->RECOVERY_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->reloadSharedPreferences()V
+Landroid/content/Context;->sendBroadcastAsUserMultiplePermissions(Landroid/content/Intent;Landroid/os/UserHandle;[Ljava/lang/String;)V
+Landroid/content/Context;->sendBroadcastMultiplePermissions(Landroid/content/Intent;[Ljava/lang/String;)V
+Landroid/content/Context;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;)V
+Landroid/content/Context;->SERIAL_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V
+Landroid/content/Context;->SIP_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->sLastAutofillId:I
+Landroid/content/Context;->SLICE_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->SOUND_TRIGGER_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->startActivitiesAsUser([Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)I
+Landroid/content/Context;->startForegroundServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
+Landroid/content/Context;->STATS_COMPANION_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->stopServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Z
+Landroid/content/Context;->TIME_ZONE_RULES_MANAGER_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->TRUST_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->updateDisplay(I)V
+Landroid/content/Context;->UPDATE_LOCK_SERVICE:Ljava/lang/String;
+Landroid/content/Context;->VOICE_INTERACTION_MANAGER_SERVICE:Ljava/lang/String;
+Landroid/content/ContextWrapper;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
+Landroid/content/ContextWrapper;->canLoadUnsafeResources()Z
+Landroid/content/ContextWrapper;->canStartActivityForResult()Z
+Landroid/content/ContextWrapper;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I
+Landroid/content/ContextWrapper;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I
+Landroid/content/ContextWrapper;->getActivityToken()Landroid/os/IBinder;
+Landroid/content/ContextWrapper;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+Landroid/content/ContextWrapper;->getDisplayAdjustments(I)Landroid/view/DisplayAdjustments;
+Landroid/content/ContextWrapper;->getIApplicationThread()Landroid/app/IApplicationThread;
+Landroid/content/ContextWrapper;->getMainThreadHandler()Landroid/os/Handler;
+Landroid/content/ContextWrapper;->getNextAutofillId()I
+Landroid/content/ContextWrapper;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
+Landroid/content/ContextWrapper;->isAutofillCompatibilityEnabled()Z
+Landroid/content/ContextWrapper;->reloadSharedPreferences()V
+Landroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;I)V
+Landroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;I)V
+Landroid/content/ContextWrapper;->sendBroadcastAsUserMultiplePermissions(Landroid/content/Intent;Landroid/os/UserHandle;[Ljava/lang/String;)V
+Landroid/content/ContextWrapper;->sendBroadcastMultiplePermissions(Landroid/content/Intent;[Ljava/lang/String;)V
+Landroid/content/ContextWrapper;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/ContextWrapper;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/ContextWrapper;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/os/Bundle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/ContextWrapper;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;)V
+Landroid/content/ContextWrapper;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V
+Landroid/content/ContextWrapper;->startActivitiesAsUser([Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)I
+Landroid/content/ContextWrapper;->startActivityAsUser(Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+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
+Landroid/content/CursorLoader;->mCursor:Landroid/database/Cursor;
+Landroid/content/CursorLoader;->mProjection:[Ljava/lang/String;
+Landroid/content/CursorLoader;->mSelection:Ljava/lang/String;
+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;
+Landroid/content/DefaultDataHandler;->DEL:Ljava/lang/String;
+Landroid/content/DefaultDataHandler;->insert(Landroid/content/ContentResolver;Ljava/io/InputStream;)V
+Landroid/content/DefaultDataHandler;->insert(Landroid/content/ContentResolver;Ljava/lang/String;)V
+Landroid/content/DefaultDataHandler;->insertRow()Landroid/net/Uri;
+Landroid/content/DefaultDataHandler;->mContentResolver:Landroid/content/ContentResolver;
+Landroid/content/DefaultDataHandler;->mUris:Ljava/util/Stack;
+Landroid/content/DefaultDataHandler;->mValues:Landroid/content/ContentValues;
+Landroid/content/DefaultDataHandler;->parseRow(Lorg/xml/sax/Attributes;)V
+Landroid/content/DefaultDataHandler;->POSTFIX:Ljava/lang/String;
+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
+Landroid/content/DeviceConfigurationProto;->HAS_SECURE_SCREEN_LOCK:J
+Landroid/content/DeviceConfigurationProto;->LOW_RAM:J
+Landroid/content/DeviceConfigurationProto;->MAX_CORES:J
+Landroid/content/DeviceConfigurationProto;->OPENGL_EXTENSIONS:J
+Landroid/content/DeviceConfigurationProto;->OPENGL_VERSION:J
+Landroid/content/DeviceConfigurationProto;->SHARED_LIBRARIES:J
+Landroid/content/DeviceConfigurationProto;->STABLE_DENSITY_DPI:J
+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
+Landroid/content/EventLogTags;->CONTENT_UPDATE_SAMPLE:I
+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;
+Landroid/content/IClipboard$Stub$Proxy;->getPrimaryClip(Ljava/lang/String;)Landroid/content/ClipData;
+Landroid/content/IClipboard$Stub$Proxy;->getPrimaryClipDescription(Ljava/lang/String;)Landroid/content/ClipDescription;
+Landroid/content/IClipboard$Stub$Proxy;->hasClipboardText(Ljava/lang/String;)Z
+Landroid/content/IClipboard$Stub$Proxy;->hasPrimaryClip(Ljava/lang/String;)Z
+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
+Landroid/content/IClipboard$Stub;->TRANSACTION_clearPrimaryClip:I
+Landroid/content/IClipboard$Stub;->TRANSACTION_getPrimaryClip:I
+Landroid/content/IClipboard$Stub;->TRANSACTION_getPrimaryClipDescription:I
+Landroid/content/IClipboard$Stub;->TRANSACTION_hasClipboardText:I
+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;
+Landroid/content/IClipboard;->getPrimaryClipDescription(Ljava/lang/String;)Landroid/content/ClipDescription;
+Landroid/content/IClipboard;->hasClipboardText(Ljava/lang/String;)Z
+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
+Landroid/content/IContentProvider;->CALL_TRANSACTION:I
+Landroid/content/IContentProvider;->canonicalize(Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/content/IContentProvider;->CANONICALIZE_TRANSACTION:I
+Landroid/content/IContentProvider;->createCancellationSignal()Landroid/os/ICancellationSignal;
+Landroid/content/IContentProvider;->CREATE_CANCELATION_SIGNAL_TRANSACTION:I
+Landroid/content/IContentProvider;->DELETE_TRANSACTION:I
+Landroid/content/IContentProvider;->getStreamTypes(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;
+Landroid/content/IContentProvider;->getType(Landroid/net/Uri;)Ljava/lang/String;
+Landroid/content/IContentProvider;->GET_STREAM_TYPES_TRANSACTION:I
+Landroid/content/IContentProvider;->GET_TYPE_TRANSACTION:I
+Landroid/content/IContentProvider;->INSERT_TRANSACTION:I
+Landroid/content/IContentProvider;->openAssetFile(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
+Landroid/content/IContentProvider;->openFile(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/ICancellationSignal;Landroid/os/IBinder;)Landroid/os/ParcelFileDescriptor;
+Landroid/content/IContentProvider;->openTypedAssetFile(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
+Landroid/content/IContentProvider;->OPEN_ASSET_FILE_TRANSACTION:I
+Landroid/content/IContentProvider;->OPEN_FILE_TRANSACTION:I
+Landroid/content/IContentProvider;->OPEN_TYPED_ASSET_FILE_TRANSACTION:I
+Landroid/content/IContentProvider;->query(Ljava/lang/String;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
+Landroid/content/IContentProvider;->refresh(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Z
+Landroid/content/IContentProvider;->REFRESH_TRANSACTION:I
+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
+Landroid/content/IContentService$Stub$Proxy;->cancelSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)V
+Landroid/content/IContentService$Stub$Proxy;->cancelSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)V
+Landroid/content/IContentService$Stub$Proxy;->getCache(Ljava/lang/String;Landroid/net/Uri;I)Landroid/os/Bundle;
+Landroid/content/IContentService$Stub$Proxy;->getCurrentSyncs()Ljava/util/List;
+Landroid/content/IContentService$Stub$Proxy;->getCurrentSyncsAsUser(I)Ljava/util/List;
+Landroid/content/IContentService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/content/IContentService$Stub$Proxy;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
+Landroid/content/IContentService$Stub$Proxy;->getIsSyncableAsUser(Landroid/accounts/Account;Ljava/lang/String;I)I
+Landroid/content/IContentService$Stub$Proxy;->getMasterSyncAutomatically()Z
+Landroid/content/IContentService$Stub$Proxy;->getMasterSyncAutomaticallyAsUser(I)Z
+Landroid/content/IContentService$Stub$Proxy;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/content/IContentService$Stub$Proxy;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;I)[Ljava/lang/String;
+Landroid/content/IContentService$Stub$Proxy;->getSyncAdapterTypes()[Landroid/content/SyncAdapterType;
+Landroid/content/IContentService$Stub$Proxy;->getSyncAdapterTypesAsUser(I)[Landroid/content/SyncAdapterType;
+Landroid/content/IContentService$Stub$Proxy;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z
+Landroid/content/IContentService$Stub$Proxy;->getSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
+Landroid/content/IContentService$Stub$Proxy;->getSyncStatus(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Landroid/content/SyncStatusInfo;
+Landroid/content/IContentService$Stub$Proxy;->getSyncStatusAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)Landroid/content/SyncStatusInfo;
+Landroid/content/IContentService$Stub$Proxy;->isSyncActive(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Z
+Landroid/content/IContentService$Stub$Proxy;->isSyncPending(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Z
+Landroid/content/IContentService$Stub$Proxy;->isSyncPendingAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)Z
+Landroid/content/IContentService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/IContentService$Stub$Proxy;->notifyChange(Landroid/net/Uri;Landroid/database/IContentObserver;ZIII)V
+Landroid/content/IContentService$Stub$Proxy;->putCache(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;I)V
+Landroid/content/IContentService$Stub$Proxy;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V
+Landroid/content/IContentService$Stub$Proxy;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/IContentService$Stub$Proxy;->removeStatusChangeListener(Landroid/content/ISyncStatusObserver;)V
+Landroid/content/IContentService$Stub$Proxy;->requestSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/IContentService$Stub$Proxy;->resetTodayStats()V
+Landroid/content/IContentService$Stub$Proxy;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V
+Landroid/content/IContentService$Stub$Proxy;->setMasterSyncAutomatically(Z)V
+Landroid/content/IContentService$Stub$Proxy;->setMasterSyncAutomaticallyAsUser(ZI)V
+Landroid/content/IContentService$Stub$Proxy;->setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V
+Landroid/content/IContentService$Stub$Proxy;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V
+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
+Landroid/content/IContentService$Stub;->TRANSACTION_cancelRequest:I
+Landroid/content/IContentService$Stub;->TRANSACTION_cancelSync:I
+Landroid/content/IContentService$Stub;->TRANSACTION_cancelSyncAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getCache:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getCurrentSyncs:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getCurrentSyncsAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getIsSyncable:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getIsSyncableAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getMasterSyncAutomatically:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getMasterSyncAutomaticallyAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getPeriodicSyncs:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getSyncAdapterPackagesForAuthorityAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getSyncAdapterTypes:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getSyncAdapterTypesAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getSyncAutomatically:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getSyncAutomaticallyAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getSyncStatus:I
+Landroid/content/IContentService$Stub;->TRANSACTION_getSyncStatusAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_isSyncActive:I
+Landroid/content/IContentService$Stub;->TRANSACTION_isSyncPending:I
+Landroid/content/IContentService$Stub;->TRANSACTION_isSyncPendingAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_notifyChange:I
+Landroid/content/IContentService$Stub;->TRANSACTION_putCache:I
+Landroid/content/IContentService$Stub;->TRANSACTION_registerContentObserver:I
+Landroid/content/IContentService$Stub;->TRANSACTION_removePeriodicSync:I
+Landroid/content/IContentService$Stub;->TRANSACTION_removeStatusChangeListener:I
+Landroid/content/IContentService$Stub;->TRANSACTION_requestSync:I
+Landroid/content/IContentService$Stub;->TRANSACTION_resetTodayStats:I
+Landroid/content/IContentService$Stub;->TRANSACTION_setIsSyncable:I
+Landroid/content/IContentService$Stub;->TRANSACTION_setMasterSyncAutomatically:I
+Landroid/content/IContentService$Stub;->TRANSACTION_setMasterSyncAutomaticallyAsUser:I
+Landroid/content/IContentService$Stub;->TRANSACTION_setSyncAutomatically:I
+Landroid/content/IContentService$Stub;->TRANSACTION_setSyncAutomaticallyAsUser:I
+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
+Landroid/content/IContentService;->cancelSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)V
+Landroid/content/IContentService;->getCache(Ljava/lang/String;Landroid/net/Uri;I)Landroid/os/Bundle;
+Landroid/content/IContentService;->getCurrentSyncs()Ljava/util/List;
+Landroid/content/IContentService;->getCurrentSyncsAsUser(I)Ljava/util/List;
+Landroid/content/IContentService;->getIsSyncableAsUser(Landroid/accounts/Account;Ljava/lang/String;I)I
+Landroid/content/IContentService;->getMasterSyncAutomaticallyAsUser(I)Z
+Landroid/content/IContentService;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Ljava/util/List;
+Landroid/content/IContentService;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;I)[Ljava/lang/String;
+Landroid/content/IContentService;->getSyncAdapterTypesAsUser(I)[Landroid/content/SyncAdapterType;
+Landroid/content/IContentService;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z
+Landroid/content/IContentService;->getSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
+Landroid/content/IContentService;->getSyncStatus(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Landroid/content/SyncStatusInfo;
+Landroid/content/IContentService;->getSyncStatusAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)Landroid/content/SyncStatusInfo;
+Landroid/content/IContentService;->isSyncPending(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Z
+Landroid/content/IContentService;->isSyncPendingAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)Z
+Landroid/content/IContentService;->notifyChange(Landroid/net/Uri;Landroid/database/IContentObserver;ZIII)V
+Landroid/content/IContentService;->putCache(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;I)V
+Landroid/content/IContentService;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V
+Landroid/content/IContentService;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/IContentService;->removeStatusChangeListener(Landroid/content/ISyncStatusObserver;)V
+Landroid/content/IContentService;->requestSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/content/IContentService;->resetTodayStats()V
+Landroid/content/IContentService;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V
+Landroid/content/IContentService;->setMasterSyncAutomaticallyAsUser(ZI)V
+Landroid/content/IContentService;->setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V
+Landroid/content/IContentService;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V
+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;
+Landroid/content/Intent;->ACTION_CLEAR_DNS_CACHE:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_DEVICE_LOCKED_CHANGED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_DEVICE_STORAGE_FULL:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_DEVICE_STORAGE_NOT_FULL:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_DISMISS_KEYBOARD_SHORTCUTS:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_DOCK_ACTIVE:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_DOCK_IDLE:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_DYNAMIC_SENSOR_CHANGED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_IDLE_MAINTENANCE_END:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_IDLE_MAINTENANCE_START:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_MEDIA_RESOURCE_GRANTED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_MEDIA_UNSHARED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_OVERLAY_CHANGED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_PREFERRED_ACTIVITY_CHANGED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_REMOTE_INTENT:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_REQUEST_SHUTDOWN:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_SETTING_RESTORED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_SHOW_BRIGHTNESS_DIALOG:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_SHOW_KEYBOARD_SHORTCUTS:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_THERMAL_EVENT:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_USER_ADDED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_USER_INFO_CHANGED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_USER_STARTED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_USER_STARTING:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_USER_STOPPED:Ljava/lang/String;
+Landroid/content/Intent;->ACTION_USER_STOPPING:Ljava/lang/String;
+Landroid/content/Intent;->ATTR_ACTION:Ljava/lang/String;
+Landroid/content/Intent;->ATTR_CATEGORY:Ljava/lang/String;
+Landroid/content/Intent;->ATTR_COMPONENT:Ljava/lang/String;
+Landroid/content/Intent;->ATTR_DATA:Ljava/lang/String;
+Landroid/content/Intent;->ATTR_FLAGS:Ljava/lang/String;
+Landroid/content/Intent;->ATTR_TYPE:Ljava/lang/String;
+Landroid/content/Intent;->canStripForHistory()Z
+Landroid/content/Intent;->CATEGORY_CAR_LAUNCHER:Ljava/lang/String;
+Landroid/content/Intent;->CATEGORY_HOME_MAIN:Ljava/lang/String;
+Landroid/content/Intent;->CATEGORY_LAUNCHER_APP:Ljava/lang/String;
+Landroid/content/Intent;->CATEGORY_SETUP_WIZARD:Ljava/lang/String;
+Landroid/content/Intent;->COPY_MODE_ALL:I
+Landroid/content/Intent;->COPY_MODE_FILTER:I
+Landroid/content/Intent;->COPY_MODE_HISTORY:I
+Landroid/content/Intent;->dockStateToString(I)Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_AUTO_LAUNCH_SINGLE_CHOICE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_CLIENT_INTENT:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_CLIENT_LABEL:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_EPHEMERAL_FAILURE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_EPHEMERAL_HOSTNAME:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_EPHEMERAL_SUCCESS:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_EPHEMERAL_TOKEN:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_FORCE_MASTER_CLEAR:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_INSTALL_RESULT:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_KEY_CONFIRM:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_LAUNCHER_EXTRAS:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_MEDIA_RESOURCE_TYPE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_MEDIA_RESOURCE_TYPE_AUDIO_CODEC:I
+Landroid/content/Intent;->EXTRA_MEDIA_RESOURCE_TYPE_VIDEO_CODEC:I
+Landroid/content/Intent;->EXTRA_REMOVED_FOR_ALL_USERS:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_SETTING_NAME:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_SETTING_NEW_VALUE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_SETTING_PREVIOUS_VALUE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_SETTING_RESTORED_FROM_SDK_INT:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_SIM_ACTIVATION_RESPONSE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_TASK_ID:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_THERMAL_STATE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_THERMAL_STATE_EXCEEDED:I
+Landroid/content/Intent;->EXTRA_THERMAL_STATE_NORMAL:I
+Landroid/content/Intent;->EXTRA_THERMAL_STATE_WARNING:I
+Landroid/content/Intent;->EXTRA_TIME_PREF_24_HOUR_FORMAT:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_TIME_PREF_VALUE_USE_12_HOUR:I
+Landroid/content/Intent;->EXTRA_TIME_PREF_VALUE_USE_24_HOUR:I
+Landroid/content/Intent;->EXTRA_TIME_PREF_VALUE_USE_LOCALE_DEFAULT:I
+Landroid/content/Intent;->EXTRA_UNINSTALL_ALL_USERS:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_USER_HANDLE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_USER_ID:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_USER_REQUESTED_SHUTDOWN:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_VERSION_CODE:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_WIPE_ESIMS:Ljava/lang/String;
+Landroid/content/Intent;->EXTRA_WIPE_EXTERNAL_STORAGE:Ljava/lang/String;
+Landroid/content/Intent;->fixUris(I)V
+Landroid/content/Intent;->FLAG_DEBUG_TRIAGED_MISSING:I
+Landroid/content/Intent;->FLAG_IGNORE_EPHEMERAL:I
+Landroid/content/Intent;->FLAG_RECEIVER_BOOT_UPGRADE:I
+Landroid/content/Intent;->FLAG_RECEIVER_EXCLUDE_BACKGROUND:I
+Landroid/content/Intent;->FLAG_RECEIVER_FROM_SHELL:I
+Landroid/content/Intent;->FLAG_RECEIVER_INCLUDE_BACKGROUND:I
+Landroid/content/Intent;->getContentUserHint()I
+Landroid/content/Intent;->getIntentOld(Ljava/lang/String;I)Landroid/content/Intent;
+Landroid/content/Intent;->getLaunchToken()Ljava/lang/String;
+Landroid/content/Intent;->hasWebURI()Z
+Landroid/content/Intent;->IMMUTABLE_FLAGS:I
+Landroid/content/Intent;->isAccessUriMode(I)Z
+Landroid/content/Intent;->isDocument()Z
+Landroid/content/Intent;->isWebIntent()Z
+Landroid/content/Intent;->mAction:Ljava/lang/String;
+Landroid/content/Intent;->makeClipItem(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;I)Landroid/content/ClipData$Item;
+Landroid/content/Intent;->maybeStripForHistory()Landroid/content/Intent;
+Landroid/content/Intent;->mCategories:Landroid/util/ArraySet;
+Landroid/content/Intent;->mClipData:Landroid/content/ClipData;
+Landroid/content/Intent;->mComponent:Landroid/content/ComponentName;
+Landroid/content/Intent;->mContentUserHint:I
+Landroid/content/Intent;->mData:Landroid/net/Uri;
+Landroid/content/Intent;->METADATA_SETUP_VERSION:Ljava/lang/String;
+Landroid/content/Intent;->mFlags:I
+Landroid/content/Intent;->migrateExtraStreamToClipData()Z
+Landroid/content/Intent;->mLaunchToken:Ljava/lang/String;
+Landroid/content/Intent;->mPackage:Ljava/lang/String;
+Landroid/content/Intent;->mSelector:Landroid/content/Intent;
+Landroid/content/Intent;->mSourceBounds:Landroid/graphics/Rect;
+Landroid/content/Intent;->mType:Ljava/lang/String;
+Landroid/content/Intent;->prepareToEnterProcess()V
+Landroid/content/Intent;->prepareToLeaveProcess(Z)V
+Landroid/content/Intent;->prepareToLeaveUser(I)V
+Landroid/content/Intent;->removeUnsafeExtras()V
+Landroid/content/Intent;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/Intent;
+Landroid/content/Intent;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+Landroid/content/Intent;->setDefusable(Z)V
+Landroid/content/Intent;->setLaunchToken(Ljava/lang/String;)V
+Landroid/content/Intent;->TAG_CATEGORIES:Ljava/lang/String;
+Landroid/content/Intent;->TAG_EXTRA:Ljava/lang/String;
+Landroid/content/Intent;->toInsecureStringWithClip()Ljava/lang/String;
+Landroid/content/Intent;->toShortString(Ljava/lang/StringBuilder;ZZZZ)V
+Landroid/content/Intent;->toShortString(ZZZZ)Ljava/lang/String;
+Landroid/content/Intent;->toUriFragment(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/Intent;->toUriInner(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/Intent;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+Landroid/content/Intent;->writeToProto(Landroid/util/proto/ProtoOutputStream;JZZZZ)V
+Landroid/content/IntentFilter$AuthorityEntry;-><init>(Landroid/os/Parcel;)V
+Landroid/content/IntentFilter$AuthorityEntry;->match(Landroid/content/IntentFilter$AuthorityEntry;)Z
+Landroid/content/IntentFilter$AuthorityEntry;->mHost:Ljava/lang/String;
+Landroid/content/IntentFilter$AuthorityEntry;->mOrigHost:Ljava/lang/String;
+Landroid/content/IntentFilter$AuthorityEntry;->mPort:I
+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
+Landroid/content/IntentFilter;->addDataPath(Landroid/os/PatternMatcher;)V
+Landroid/content/IntentFilter;->addDataSchemeSpecificPart(Landroid/os/PatternMatcher;)V
+Landroid/content/IntentFilter;->addStringToSet([Ljava/lang/String;Ljava/lang/String;[II)[Ljava/lang/String;
+Landroid/content/IntentFilter;->AGLOB_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->AUTH_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->AUTO_VERIFY_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->CAT_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->debugCheck()Z
+Landroid/content/IntentFilter;->findMimeType(Ljava/lang/String;)Z
+Landroid/content/IntentFilter;->findStringInSet([Ljava/lang/String;Ljava/lang/String;[II)I
+Landroid/content/IntentFilter;->getAutoVerify()Z
+Landroid/content/IntentFilter;->getHosts()[Ljava/lang/String;
+Landroid/content/IntentFilter;->getHostsList()Ljava/util/ArrayList;
+Landroid/content/IntentFilter;->getVisibilityToInstantApp()I
+Landroid/content/IntentFilter;->handleAllWebDataURI()Z
+Landroid/content/IntentFilter;->handlesWebUris(Z)Z
+Landroid/content/IntentFilter;->HOST_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->isExplicitlyVisibleToInstantApp()Z
+Landroid/content/IntentFilter;->isImplicitlyVisibleToInstantApp()Z
+Landroid/content/IntentFilter;->isVisibleToInstantApp()Z
+Landroid/content/IntentFilter;->LITERAL_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->mCategories:Ljava/util/ArrayList;
+Landroid/content/IntentFilter;->mDataAuthorities:Ljava/util/ArrayList;
+Landroid/content/IntentFilter;->mDataPaths:Ljava/util/ArrayList;
+Landroid/content/IntentFilter;->mDataSchemes:Ljava/util/ArrayList;
+Landroid/content/IntentFilter;->mDataSchemeSpecificParts:Ljava/util/ArrayList;
+Landroid/content/IntentFilter;->mDataTypes:Ljava/util/ArrayList;
+Landroid/content/IntentFilter;->mHasPartialTypes:Z
+Landroid/content/IntentFilter;->mInstantAppVisibility:I
+Landroid/content/IntentFilter;->mPriority:I
+Landroid/content/IntentFilter;->mVerifyState:I
+Landroid/content/IntentFilter;->NAME_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->needsVerification()Z
+Landroid/content/IntentFilter;->PATH_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->PORT_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->PREFIX_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->removeStringFromSet([Ljava/lang/String;Ljava/lang/String;[II)[Ljava/lang/String;
+Landroid/content/IntentFilter;->SCHEME_HTTP:Ljava/lang/String;
+Landroid/content/IntentFilter;->SCHEME_HTTPS:Ljava/lang/String;
+Landroid/content/IntentFilter;->SCHEME_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->setVerified(Z)V
+Landroid/content/IntentFilter;->setVisibilityToInstantApp(I)V
+Landroid/content/IntentFilter;->SGLOB_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->SSP_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->STATE_NEED_VERIFY:I
+Landroid/content/IntentFilter;->STATE_NEED_VERIFY_CHECKED:I
+Landroid/content/IntentFilter;->STATE_VERIFIED:I
+Landroid/content/IntentFilter;->STATE_VERIFY_AUTO:I
+Landroid/content/IntentFilter;->TYPE_STR:Ljava/lang/String;
+Landroid/content/IntentFilter;->VISIBILITY_EXPLICIT:I
+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
+Landroid/content/IntentFilterProto;->DATA_AUTHORITIES:J
+Landroid/content/IntentFilterProto;->DATA_PATHS:J
+Landroid/content/IntentFilterProto;->DATA_SCHEMES:J
+Landroid/content/IntentFilterProto;->DATA_SCHEME_SPECS:J
+Landroid/content/IntentFilterProto;->DATA_TYPES:J
+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
+Landroid/content/IntentProto;->CLIP_DATA:J
+Landroid/content/IntentProto;->COMPONENT:J
+Landroid/content/IntentProto;->CONTENT_USER_HINT:J
+Landroid/content/IntentProto;->DATA:J
+Landroid/content/IntentProto;->DOCK_STATE_CAR:I
+Landroid/content/IntentProto;->DOCK_STATE_DESK:I
+Landroid/content/IntentProto;->DOCK_STATE_HE_DESK:I
+Landroid/content/IntentProto;->DOCK_STATE_LE_DESK:I
+Landroid/content/IntentProto;->DOCK_STATE_UNDOCKED:I
+Landroid/content/IntentProto;->EXTRAS:J
+Landroid/content/IntentProto;->FLAG:J
+Landroid/content/IntentProto;->PACKAGE:J
+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;
+Landroid/content/IntentSender$FinishedDispatcher;->mIntentSender:Landroid/content/IntentSender;
+Landroid/content/IntentSender$FinishedDispatcher;->mResultCode:I
+Landroid/content/IntentSender$FinishedDispatcher;->mResultData:Ljava/lang/String;
+Landroid/content/IntentSender$FinishedDispatcher;->mResultExtras:Landroid/os/Bundle;
+Landroid/content/IntentSender$FinishedDispatcher;->mWho:Landroid/content/IntentSender$OnFinished;
+Landroid/content/IntentSender$FinishedDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
+Landroid/content/IntentSender;-><init>(Landroid/content/IIntentSender;Landroid/os/IBinder;)V
+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;
+Landroid/content/IRestrictionsManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/content/IRestrictionsManager$Stub$Proxy;->hasRestrictionsProvider()Z
+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
+Landroid/content/IRestrictionsManager$Stub;->TRANSACTION_getApplicationRestrictions:I
+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;
+Landroid/content/Loader;->mId:I
+Landroid/content/Loader;->mListener:Landroid/content/Loader$OnLoadCompleteListener;
+Landroid/content/Loader;->mOnLoadCanceledListener:Landroid/content/Loader$OnLoadCanceledListener;
+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;
+Landroid/content/om/IOverlayManager$Stub$Proxy;->getOverlayInfo(Ljava/lang/String;I)Landroid/content/om/OverlayInfo;
+Landroid/content/om/IOverlayManager$Stub$Proxy;->getOverlayInfosForTarget(Ljava/lang/String;I)Ljava/util/List;
+Landroid/content/om/IOverlayManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/om/IOverlayManager$Stub$Proxy;->setEnabled(Ljava/lang/String;ZI)Z
+Landroid/content/om/IOverlayManager$Stub$Proxy;->setEnabledExclusive(Ljava/lang/String;ZI)Z
+Landroid/content/om/IOverlayManager$Stub$Proxy;->setEnabledExclusiveInCategory(Ljava/lang/String;I)Z
+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
+Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_getOverlayInfo:I
+Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_getOverlayInfosForTarget:I
+Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_setEnabled:I
+Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_setEnabledExclusive:I
+Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_setEnabledExclusiveInCategory:I
+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
+Landroid/content/om/IOverlayManager;->setEnabledExclusiveInCategory(Ljava/lang/String;I)Z
+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
+Landroid/content/om/OverlayInfo;->baseCodePath:Ljava/lang/String;
+Landroid/content/om/OverlayInfo;->category:Ljava/lang/String;
+Landroid/content/om/OverlayInfo;->CATEGORY_THEME:Ljava/lang/String;
+Landroid/content/om/OverlayInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/om/OverlayInfo;->ensureValidState()V
+Landroid/content/om/OverlayInfo;->isStatic:Z
+Landroid/content/om/OverlayInfo;->priority:I
+Landroid/content/om/OverlayInfo;->stateToString(I)Ljava/lang/String;
+Landroid/content/om/OverlayInfo;->STATE_DISABLED:I
+Landroid/content/om/OverlayInfo;->STATE_ENABLED:I
+Landroid/content/om/OverlayInfo;->STATE_ENABLED_STATIC:I
+Landroid/content/om/OverlayInfo;->STATE_MISSING_TARGET:I
+Landroid/content/om/OverlayInfo;->STATE_NO_IDMAP:I
+Landroid/content/om/OverlayInfo;->STATE_OVERLAY_UPGRADING:I
+Landroid/content/om/OverlayInfo;->STATE_TARGET_UPGRADING:I
+Landroid/content/om/OverlayInfo;->STATE_UNKNOWN:I
+Landroid/content/om/OverlayInfo;->userId:I
+Landroid/content/OperationApplicationException;->mNumSuccessfulYieldPoints:I
+Landroid/content/PeriodicSync;-><init>(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;JJ)V
+Landroid/content/PeriodicSync;-><init>(Landroid/content/PeriodicSync;)V
+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
+Landroid/content/PermissionChecker;->checkPermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)I
+Landroid/content/PermissionChecker;->checkSelfPermission(Landroid/content/Context;Ljava/lang/String;)I
+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
+Landroid/content/pm/ActivityInfo;->colorModeToString(I)Ljava/lang/String;
+Landroid/content/pm/ActivityInfo;->CONFIG_ASSETS_PATHS:I
+Landroid/content/pm/ActivityInfo;->CONFIG_NATIVE_BITS:[I
+Landroid/content/pm/ActivityInfo;->CONFIG_WINDOW_CONFIGURATION:I
+Landroid/content/pm/ActivityInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
+Landroid/content/pm/ActivityInfo;->FLAG_ALWAYS_FOCUSABLE:I
+Landroid/content/pm/ActivityInfo;->FLAG_IMPLICITLY_VISIBLE_TO_INSTANT_APP:I
+Landroid/content/pm/ActivityInfo;->FLAG_SHOW_WHEN_LOCKED:I
+Landroid/content/pm/ActivityInfo;->FLAG_SUPPORTS_PICTURE_IN_PICTURE:I
+Landroid/content/pm/ActivityInfo;->FLAG_SYSTEM_USER_ONLY:I
+Landroid/content/pm/ActivityInfo;->FLAG_TURN_SCREEN_ON:I
+Landroid/content/pm/ActivityInfo;->FLAG_VISIBLE_TO_INSTANT_APP:I
+Landroid/content/pm/ActivityInfo;->getRealConfigChanged()I
+Landroid/content/pm/ActivityInfo;->isFixedOrientation()Z
+Landroid/content/pm/ActivityInfo;->isFixedOrientationLandscape()Z
+Landroid/content/pm/ActivityInfo;->isFixedOrientationLandscape(I)Z
+Landroid/content/pm/ActivityInfo;->isFixedOrientationPortrait()Z
+Landroid/content/pm/ActivityInfo;->isFixedOrientationPortrait(I)Z
+Landroid/content/pm/ActivityInfo;->isPreserveOrientationMode(I)Z
+Landroid/content/pm/ActivityInfo;->launchToken:Ljava/lang/String;
+Landroid/content/pm/ActivityInfo;->lockTaskLaunchMode:I
+Landroid/content/pm/ActivityInfo;->lockTaskLaunchModeToString(I)Ljava/lang/String;
+Landroid/content/pm/ActivityInfo;->LOCK_TASK_LAUNCH_MODE_ALWAYS:I
+Landroid/content/pm/ActivityInfo;->LOCK_TASK_LAUNCH_MODE_DEFAULT:I
+Landroid/content/pm/ActivityInfo;->LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED:I
+Landroid/content/pm/ActivityInfo;->LOCK_TASK_LAUNCH_MODE_NEVER:I
+Landroid/content/pm/ActivityInfo;->maxAspectRatio:F
+Landroid/content/pm/ActivityInfo;->persistableModeToString()Ljava/lang/String;
+Landroid/content/pm/ActivityInfo;->requestedVrComponent:Ljava/lang/String;
+Landroid/content/pm/ActivityInfo;->resizeModeToString(I)Ljava/lang/String;
+Landroid/content/pm/ActivityInfo;->RESIZE_MODE_FORCE_RESIZABLE_LANDSCAPE_ONLY:I
+Landroid/content/pm/ActivityInfo;->RESIZE_MODE_FORCE_RESIZABLE_PORTRAIT_ONLY:I
+Landroid/content/pm/ActivityInfo;->RESIZE_MODE_FORCE_RESIZABLE_PRESERVE_ORIENTATION:I
+Landroid/content/pm/ActivityInfo;->RESIZE_MODE_FORCE_RESIZEABLE:I
+Landroid/content/pm/ActivityInfo;->RESIZE_MODE_RESIZEABLE_AND_PIPABLE_DEPRECATED:I
+Landroid/content/pm/ActivityInfo;->RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION:I
+Landroid/content/pm/ActivityInfo;->RESIZE_MODE_UNRESIZEABLE:I
+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
+Landroid/content/pm/ApplicationInfo;->compileSdkVersionCodename:Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
+Landroid/content/pm/ApplicationInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/ApplicationInfo;->getBaseCodePath()Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->getHiddenApiEnforcementPolicy()I
+Landroid/content/pm/ApplicationInfo;->getResourcePath()Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->getSplitCodePaths()[Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->getSplitResourcePaths()[Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->hasCode()Z
+Landroid/content/pm/ApplicationInfo;->HIDDEN_API_ENFORCEMENT_BLACK:I
+Landroid/content/pm/ApplicationInfo;->HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK:I
+Landroid/content/pm/ApplicationInfo;->HIDDEN_API_ENFORCEMENT_DEFAULT:I
+Landroid/content/pm/ApplicationInfo;->HIDDEN_API_ENFORCEMENT_JUST_WARN:I
+Landroid/content/pm/ApplicationInfo;->HIDDEN_API_ENFORCEMENT_MAX:I
+Landroid/content/pm/ApplicationInfo;->HIDDEN_API_ENFORCEMENT_NONE:I
+Landroid/content/pm/ApplicationInfo;->initForUser(I)V
+Landroid/content/pm/ApplicationInfo;->isAllowedToUseHiddenApis()Z
+Landroid/content/pm/ApplicationInfo;->isDefaultToDeviceProtectedStorage()Z
+Landroid/content/pm/ApplicationInfo;->isDirectBootAware()Z
+Landroid/content/pm/ApplicationInfo;->isEncryptionAware()Z
+Landroid/content/pm/ApplicationInfo;->isExternal()Z
+Landroid/content/pm/ApplicationInfo;->isExternalAsec()Z
+Landroid/content/pm/ApplicationInfo;->isInternal()Z
+Landroid/content/pm/ApplicationInfo;->isOem()Z
+Landroid/content/pm/ApplicationInfo;->isPackageWhitelistedForHiddenApis()Z
+Landroid/content/pm/ApplicationInfo;->isPartiallyDirectBootAware()Z
+Landroid/content/pm/ApplicationInfo;->isProduct()Z
+Landroid/content/pm/ApplicationInfo;->isRequiredForSystemUser()Z
+Landroid/content/pm/ApplicationInfo;->isSignedWithPlatformKey()Z
+Landroid/content/pm/ApplicationInfo;->isStaticSharedLibrary()Z
+Landroid/content/pm/ApplicationInfo;->isUpdatedSystemApp()Z
+Landroid/content/pm/ApplicationInfo;->isValidHiddenApiEnforcementPolicy(I)Z
+Landroid/content/pm/ApplicationInfo;->isVendor()Z
+Landroid/content/pm/ApplicationInfo;->loadDefaultIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/ApplicationInfo;->longVersionCode:J
+Landroid/content/pm/ApplicationInfo;->maxAspectRatio:F
+Landroid/content/pm/ApplicationInfo;->maybeUpdateHiddenApiEnforcementPolicy(II)V
+Landroid/content/pm/ApplicationInfo;->METADATA_PRELOADED_FONTS:Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->mHiddenApiPolicy:I
+Landroid/content/pm/ApplicationInfo;->nativeLibraryRootRequiresIsa:Z
+Landroid/content/pm/ApplicationInfo;->networkSecurityConfigRes:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_UNRESIZEABLE:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_BACKUP_IN_FOREGROUND:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_CANT_SAVE_STATE:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_DIRECT_BOOT_AWARE:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_FORWARD_LOCK:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_HAS_DOMAIN_URLS:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_HIDDEN:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_INSTANT:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_ISOLATED_SPLIT_LOADING:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_OEM:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_PRODUCT:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_REQUIRED_FOR_SYSTEM_USER:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_SIGNED_WITH_PLATFORM_KEY:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_STATIC_SHARED_LIBRARY:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_VENDOR:I
+Landroid/content/pm/ApplicationInfo;->PRIVATE_FLAG_VIRTUAL_PRELOAD:I
+Landroid/content/pm/ApplicationInfo;->requestsIsolatedSplitLoading()Z
+Landroid/content/pm/ApplicationInfo;->seInfo:Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->seInfoUser:Ljava/lang/String;
+Landroid/content/pm/ApplicationInfo;->setBaseCodePath(Ljava/lang/String;)V
+Landroid/content/pm/ApplicationInfo;->setBaseResourcePath(Ljava/lang/String;)V
+Landroid/content/pm/ApplicationInfo;->setCodePath(Ljava/lang/String;)V
+Landroid/content/pm/ApplicationInfo;->setHiddenApiEnforcementPolicy(I)V
+Landroid/content/pm/ApplicationInfo;->setResourcePath(Ljava/lang/String;)V
+Landroid/content/pm/ApplicationInfo;->setSplitCodePaths([Ljava/lang/String;)V
+Landroid/content/pm/ApplicationInfo;->setSplitResourcePaths([Ljava/lang/String;)V
+Landroid/content/pm/ApplicationInfo;->setVersionCode(J)V
+Landroid/content/pm/ApplicationInfo;->splitClassLoaderNames:[Ljava/lang/String;
+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
+Landroid/content/pm/ApplicationInfoProto$Detail;->CONTENT:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->CREDENTIAL_PROTECTED_DATA_DIR:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->DESCRIPTION_RES:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->DEVICE_PROTECTED_DATA_DIR:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->IS_FULL_BACKUP:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->LARGEST_WIDTH_LIMIT_DP:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->MANAGE_SPACE_ACTIVITY_NAME:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->NETWORK_SECURITY_CONFIG_RES:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->REQUIRES_SMALLEST_WIDTH_DP:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->SEINFO:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->SEINFO_USER:J
+Landroid/content/pm/ApplicationInfoProto$Detail;->SHARED_LIBRARY_FILES:J
+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
+Landroid/content/pm/ApplicationInfoProto;->DETAIL:J
+Landroid/content/pm/ApplicationInfoProto;->FLAGS:J
+Landroid/content/pm/ApplicationInfoProto;->PACKAGE:J
+Landroid/content/pm/ApplicationInfoProto;->PERMISSION:J
+Landroid/content/pm/ApplicationInfoProto;->PRIVATE_FLAGS:J
+Landroid/content/pm/ApplicationInfoProto;->PROCESS_NAME:J
+Landroid/content/pm/ApplicationInfoProto;->PUBLIC_SOURCE_DIR:J
+Landroid/content/pm/ApplicationInfoProto;->RESOURCE_DIRS:J
+Landroid/content/pm/ApplicationInfoProto;->SOURCE_DIR:J
+Landroid/content/pm/ApplicationInfoProto;->SPLIT_CLASS_LOADER_NAMES:J
+Landroid/content/pm/ApplicationInfoProto;->SPLIT_PUBLIC_SOURCE_DIRS:J
+Landroid/content/pm/ApplicationInfoProto;->SPLIT_SOURCE_DIRS:J
+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;
+Landroid/content/pm/AppsQueryHelper;->getPackagesHoldingPermission(Ljava/lang/String;I)Ljava/util/List;
+Landroid/content/pm/AppsQueryHelper;->GET_APPS_WITH_INTERACT_ACROSS_USERS_PERM:I
+Landroid/content/pm/AppsQueryHelper;->GET_IMES:I
+Landroid/content/pm/AppsQueryHelper;->GET_NON_LAUNCHABLE_APPS:I
+Landroid/content/pm/AppsQueryHelper;->GET_REQUIRED_FOR_SYSTEM_USER:I
+Landroid/content/pm/AppsQueryHelper;->mAllApps:Ljava/util/List;
+Landroid/content/pm/AppsQueryHelper;->mPackageManager:Landroid/content/pm/IPackageManager;
+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
+Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;->extras:Landroid/os/Bundle;
+Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;->packageName:Ljava/lang/String;
+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
+Landroid/content/pm/AuxiliaryResolveInfo;->failureIntent:Landroid/content/Intent;
+Landroid/content/pm/AuxiliaryResolveInfo;->filters:Ljava/util/List;
+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
+Landroid/content/pm/BaseParceledListSlice;->MAX_IPC_SIZE:I
+Landroid/content/pm/BaseParceledListSlice;->mInlineCountLimit:I
+Landroid/content/pm/BaseParceledListSlice;->mList:Ljava/util/List;
+Landroid/content/pm/BaseParceledListSlice;->readCreator(Landroid/os/Parcelable$Creator;Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
+Landroid/content/pm/BaseParceledListSlice;->readParcelableCreator(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator;
+Landroid/content/pm/BaseParceledListSlice;->setInlineCountLimit(I)V
+Landroid/content/pm/BaseParceledListSlice;->TAG:Ljava/lang/String;
+Landroid/content/pm/BaseParceledListSlice;->verifySameType(Ljava/lang/Class;Ljava/lang/Class;)V
+Landroid/content/pm/BaseParceledListSlice;->writeElement(Ljava/lang/Object;Landroid/os/Parcel;I)V
+Landroid/content/pm/ChangedPackages;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/ChangedPackages;->mPackageNames:Ljava/util/List;
+Landroid/content/pm/ChangedPackages;->mSequenceNumber:I
+Landroid/content/pm/ComponentInfo;->dumpBack(Landroid/util/Printer;Ljava/lang/String;I)V
+Landroid/content/pm/ComponentInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/ComponentInfo;->loadDefaultBanner(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/ComponentInfo;->loadDefaultIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/ComponentInfo;->loadDefaultLogo(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/ComponentInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+Landroid/content/pm/ConfigurationInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/CrossProfileApps;-><init>(Landroid/content/Context;Landroid/content/pm/ICrossProfileApps;)V
+Landroid/content/pm/CrossProfileApps;->mContext:Landroid/content/Context;
+Landroid/content/pm/CrossProfileApps;->mResources:Landroid/content/res/Resources;
+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;
+Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate;->onError(I)V
+Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate;->onSuccess(Landroid/os/ParcelFileDescriptor;)V
+Landroid/content/pm/dex/ArtManager;-><init>(Landroid/content/Context;Landroid/content/pm/dex/IArtManager;)V
+Landroid/content/pm/dex/ArtManager;->getCurrentProfilePath(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/dex/ArtManager;->getProfileName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/dex/ArtManager;->getProfileSnapshotFileForName(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
+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;
+Landroid/content/pm/dex/DexMetadataHelper;->buildPackageApkToDexMetadataMap(Ljava/util/List;)Ljava/util/Map;
+Landroid/content/pm/dex/DexMetadataHelper;->DEX_METADATA_FILE_EXTENSION:Ljava/lang/String;
+Landroid/content/pm/dex/DexMetadataHelper;->findDexMetadataForFile(Ljava/io/File;)Ljava/io/File;
+Landroid/content/pm/dex/DexMetadataHelper;->getPackageDexMetadata(Landroid/content/pm/PackageParser$Package;)Ljava/util/Map;
+Landroid/content/pm/dex/DexMetadataHelper;->getPackageDexMetadata(Landroid/content/pm/PackageParser$PackageLite;)Ljava/util/Map;
+Landroid/content/pm/dex/DexMetadataHelper;->getPackageDexMetadataSize(Landroid/content/pm/PackageParser$PackageLite;)J
+Landroid/content/pm/dex/DexMetadataHelper;->isDexMetadataFile(Ljava/io/File;)Z
+Landroid/content/pm/dex/DexMetadataHelper;->isDexMetadataPath(Ljava/lang/String;)Z
+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
+Landroid/content/pm/FallbackCategoryProvider;->sFallbacks:Landroid/util/ArrayMap;
+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;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->getLauncherActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcutConfigActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcutConfigActivityIntent(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/content/IntentSender;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcutIconResId(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->getSuspendedPackageLauncherExtras(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->hasShortcutHostPermission(Ljava/lang/String;)Z
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->isActivityEnabled(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->isPackageEnabled(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->pinShortcuts(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->removeOnAppsChangedListener(Landroid/content/pm/IOnAppsChangedListener;)V
+Landroid/content/pm/ILauncherApps$Stub$Proxy;->resolveActivity(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/content/pm/ActivityInfo;
+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;
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_addOnAppsChangedListener:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_getApplicationInfo:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_getLauncherActivities:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_getShortcutConfigActivities:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_getShortcutConfigActivityIntent:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_getShortcutIconFd:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_getShortcutIconResId:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_getShortcuts:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_getSuspendedPackageLauncherExtras:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_hasShortcutHostPermission:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_isActivityEnabled:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_isPackageEnabled:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_pinShortcuts:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_removeOnAppsChangedListener:I
+Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_resolveActivity:I
+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;
+Landroid/content/pm/ILauncherApps;->getShortcutConfigActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/ILauncherApps;->getShortcutConfigActivityIntent(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/content/IntentSender;
+Landroid/content/pm/ILauncherApps;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/ILauncherApps;->getShortcutIconResId(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/content/pm/ILauncherApps;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/ILauncherApps;->getSuspendedPackageLauncherExtras(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
+Landroid/content/pm/ILauncherApps;->hasShortcutHostPermission(Ljava/lang/String;)Z
+Landroid/content/pm/ILauncherApps;->isActivityEnabled(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+Landroid/content/pm/ILauncherApps;->isPackageEnabled(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z
+Landroid/content/pm/ILauncherApps;->pinShortcuts(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
+Landroid/content/pm/ILauncherApps;->removeOnAppsChangedListener(Landroid/content/pm/IOnAppsChangedListener;)V
+Landroid/content/pm/ILauncherApps;->resolveActivity(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/content/pm/ActivityInfo;
+Landroid/content/pm/ILauncherApps;->showAppDetailsAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/content/pm/ILauncherApps;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/content/pm/ILauncherApps;->startShortcut(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;I)Z
+Landroid/content/pm/InstantAppInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/InstantAppInfo;->mApplicationInfo:Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/InstantAppInfo;->mGrantedPermissions:[Ljava/lang/String;
+Landroid/content/pm/InstantAppInfo;->mLabelText:Ljava/lang/CharSequence;
+Landroid/content/pm/InstantAppInfo;->mPackageName:Ljava/lang/String;
+Landroid/content/pm/InstantAppInfo;->mRequestedPermissions:[Ljava/lang/String;
+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;
+Landroid/content/pm/InstantAppRequest;->origIntent:Landroid/content/Intent;
+Landroid/content/pm/InstantAppRequest;->resolvedType:Ljava/lang/String;
+Landroid/content/pm/InstantAppRequest;->resolveForStart:Z
+Landroid/content/pm/InstantAppRequest;->responseObj:Landroid/content/pm/AuxiliaryResolveInfo;
+Landroid/content/pm/InstantAppRequest;->userId:I
+Landroid/content/pm/InstantAppRequest;->verificationBundle:Landroid/os/Bundle;
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><init>(Ljava/lang/String;I)V
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><init>([[B[I)V
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->DIGEST_MASK:I
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->generateDigest(Ljava/lang/String;I)[[B
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->getDigestPrefixSecure()[I
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->mDigestBytes:[[B
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->mDigestPrefix:[I
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->mDigestPrefixSecure:[I
+Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->sRandom:Ljava/util/Random;
+Landroid/content/pm/InstantAppResolveInfo;-><init>(Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;Ljava/lang/String;Ljava/util/List;JLandroid/os/Bundle;Z)V
+Landroid/content/pm/InstantAppResolveInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/InstantAppResolveInfo;->EMPTY_DIGEST:[B
+Landroid/content/pm/InstantAppResolveInfo;->mDigest:Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;
+Landroid/content/pm/InstantAppResolveInfo;->mExtras:Landroid/os/Bundle;
+Landroid/content/pm/InstantAppResolveInfo;->mFilters:Ljava/util/List;
+Landroid/content/pm/InstantAppResolveInfo;->mPackageName:Ljava/lang/String;
+Landroid/content/pm/InstantAppResolveInfo;->mShouldLetInstallerDecide:Z
+Landroid/content/pm/InstantAppResolveInfo;->mVersionCode:J
+Landroid/content/pm/InstantAppResolveInfo;->SHA_ALGORITHM:Ljava/lang/String;
+Landroid/content/pm/InstrumentationInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/InstrumentationInfo;->copyTo(Landroid/content/pm/ApplicationInfo;)V
+Landroid/content/pm/InstrumentationInfo;->credentialProtectedDataDir:Ljava/lang/String;
+Landroid/content/pm/InstrumentationInfo;->deviceProtectedDataDir:Ljava/lang/String;
+Landroid/content/pm/InstrumentationInfo;->nativeLibraryDir:Ljava/lang/String;
+Landroid/content/pm/InstrumentationInfo;->primaryCpuAbi:Ljava/lang/String;
+Landroid/content/pm/InstrumentationInfo;->secondaryCpuAbi:Ljava/lang/String;
+Landroid/content/pm/InstrumentationInfo;->secondaryNativeLibraryDir:Ljava/lang/String;
+Landroid/content/pm/InstrumentationInfo;->splitDependencies:Landroid/util/SparseArray;
+Landroid/content/pm/IntentFilterVerificationInfo;-><init>()V
+Landroid/content/pm/IntentFilterVerificationInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/IntentFilterVerificationInfo;-><init>(Ljava/lang/String;Landroid/util/ArraySet;)V
+Landroid/content/pm/IntentFilterVerificationInfo;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
+Landroid/content/pm/IntentFilterVerificationInfo;->ATTR_DOMAIN_NAME:Ljava/lang/String;
+Landroid/content/pm/IntentFilterVerificationInfo;->ATTR_PACKAGE_NAME:Ljava/lang/String;
+Landroid/content/pm/IntentFilterVerificationInfo;->ATTR_STATUS:Ljava/lang/String;
+Landroid/content/pm/IntentFilterVerificationInfo;->getDomainsString()Ljava/lang/String;
+Landroid/content/pm/IntentFilterVerificationInfo;->getIntFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+Landroid/content/pm/IntentFilterVerificationInfo;->getStatusString()Ljava/lang/String;
+Landroid/content/pm/IntentFilterVerificationInfo;->getStatusStringFromValue(J)Ljava/lang/String;
+Landroid/content/pm/IntentFilterVerificationInfo;->getStringFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/IntentFilterVerificationInfo;->mDomains:Landroid/util/ArraySet;
+Landroid/content/pm/IntentFilterVerificationInfo;->mMainStatus:I
+Landroid/content/pm/IntentFilterVerificationInfo;->mPackageName:Ljava/lang/String;
+Landroid/content/pm/IntentFilterVerificationInfo;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/content/pm/IntentFilterVerificationInfo;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+Landroid/content/pm/IntentFilterVerificationInfo;->setDomains(Landroid/util/ArraySet;)V
+Landroid/content/pm/IntentFilterVerificationInfo;->setStatus(I)V
+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;
+Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackageAdded(Landroid/os/UserHandle;Ljava/lang/String;)V
+Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackageChanged(Landroid/os/UserHandle;Ljava/lang/String;)V
+Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackageRemoved(Landroid/os/UserHandle;Ljava/lang/String;)V
+Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackagesAvailable(Landroid/os/UserHandle;[Ljava/lang/String;Z)V
+Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackagesSuspended(Landroid/os/UserHandle;[Ljava/lang/String;Landroid/os/Bundle;)V
+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;
+Landroid/content/pm/IOnAppsChangedListener$Stub;->TRANSACTION_onPackageAdded:I
+Landroid/content/pm/IOnAppsChangedListener$Stub;->TRANSACTION_onPackageChanged:I
+Landroid/content/pm/IOnAppsChangedListener$Stub;->TRANSACTION_onPackageRemoved:I
+Landroid/content/pm/IOnAppsChangedListener$Stub;->TRANSACTION_onPackagesAvailable:I
+Landroid/content/pm/IOnAppsChangedListener$Stub;->TRANSACTION_onPackagesSuspended:I
+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
+Landroid/content/pm/IOnAppsChangedListener;->onPackagesAvailable(Landroid/os/UserHandle;[Ljava/lang/String;Z)V
+Landroid/content/pm/IOnAppsChangedListener;->onPackagesSuspended(Landroid/os/UserHandle;[Ljava/lang/String;Landroid/os/Bundle;)V
+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
+Landroid/content/pm/IOtaDexopt$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/content/pm/IOtaDexopt$Stub$Proxy;->getProgress()F
+Landroid/content/pm/IOtaDexopt$Stub$Proxy;->isDone()Z
+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;
+Landroid/content/pm/IOtaDexopt$Stub;->TRANSACTION_cleanup:I
+Landroid/content/pm/IOtaDexopt$Stub;->TRANSACTION_dexoptNextPackage:I
+Landroid/content/pm/IOtaDexopt$Stub;->TRANSACTION_getProgress:I
+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
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->getAllSessions(I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->getMySessions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->openSession(I)Landroid/content/pm/IPackageInstallerSession;
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->registerCallback(Landroid/content/pm/IPackageInstallerCallback;I)V
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->setPermissionsResult(IZ)V
+Landroid/content/pm/IPackageInstaller$Stub$Proxy;->uninstall(Landroid/content/pm/VersionedPackage;Ljava/lang/String;ILandroid/content/IntentSender;I)V
+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;
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_abandonSession:I
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_createSession:I
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_getAllSessions:I
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_getMySessions:I
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_getSessionInfo:I
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_openSession:I
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_registerCallback:I
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_setPermissionsResult:I
+Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_uninstall:I
+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;
+Landroid/content/pm/IPackageInstaller;->getMySessions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageInstaller;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
+Landroid/content/pm/IPackageInstaller;->openSession(I)Landroid/content/pm/IPackageInstallerSession;
+Landroid/content/pm/IPackageInstaller;->registerCallback(Landroid/content/pm/IPackageInstallerCallback;I)V
+Landroid/content/pm/IPackageInstaller;->setPermissionsResult(IZ)V
+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
+Landroid/content/pm/IPackageInstallerCallback$Stub;->TRANSACTION_onSessionBadgingChanged:I
+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
+Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->commit(Landroid/content/IntentSender;Z)V
+Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->getNames()[Ljava/lang/String;
+Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->openRead(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->openWrite(Ljava/lang/String;JJ)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->removeSplit(Ljava/lang/String;)V
+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
+Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_close:I
+Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_commit:I
+Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_getNames:I
+Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_openRead:I
+Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_openWrite:I
+Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_removeSplit:I
+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
+Landroid/content/pm/IPackageInstallerSession;->commit(Landroid/content/IntentSender;Z)V
+Landroid/content/pm/IPackageInstallerSession;->getNames()[Ljava/lang/String;
+Landroid/content/pm/IPackageInstallerSession;->openRead(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/IPackageInstallerSession;->openWrite(Ljava/lang/String;JJ)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/IPackageInstallerSession;->removeSplit(Ljava/lang/String;)V
+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
+Landroid/content/pm/IPackageManager$Stub$Proxy;->addPermission(Landroid/content/pm/PermissionInfo;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->addPermissionAsync(Landroid/content/pm/PermissionInfo;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->addPersistentPreferredActivity(Landroid/content/IntentFilter;Landroid/content/ComponentName;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->addPreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->canForwardTo(Landroid/content/Intent;Ljava/lang/String;II)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->canRequestPackageInstalls(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->checkPackageStartable(Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->checkUidSignatures(II)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->clearApplicationProfileData(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->clearApplicationUserData(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->clearCrossProfileIntentFilters(ILjava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->clearPackagePersistentPreferredActivities(Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->clearPackagePreferredActivities(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->currentToCanonicalPackageNames([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->deleteApplicationCacheFiles(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->deleteApplicationCacheFilesAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->deletePackageAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDeleteObserver;II)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->deletePackageVersioned(Landroid/content/pm/VersionedPackage;Landroid/content/pm/IPackageDeleteObserver2;II)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->deletePreloadsFileCache()V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->dumpProfiles(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->enterSafeMode()V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->extendVerificationTimeout(IIJ)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->findPersistentPreferredActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->finishPackageInstall(IZ)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->flushPackageRestrictionsAsUser(I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->forceDexOpt(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->freeStorage(Ljava/lang/String;JILandroid/content/IntentSender;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->freeStorageAndNotify(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getActivityInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getAllIntentFilters(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getAllPackages()Ljava/util/List;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getAllPermissionGroups(I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationEnabledSetting(Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationHiddenSettingAsUser(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getArtManager()Landroid/content/pm/dex/IArtManager;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getBlockUninstallForUser(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getChangedPackages(II)Landroid/content/pm/ChangedPackages;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getDefaultAppsBackup(I)[B
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getDefaultBrowserPackageName(I)Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getFlagsForUid(I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getHarmfulAppWarning(Ljava/lang/String;I)Ljava/lang/CharSequence;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledApplications(II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstallReason(Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstantAppAndroidId(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstantAppCookie(Ljava/lang/String;I)[B
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstantAppIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstantAppInstallerComponent()Landroid/content/ComponentName;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstantAppResolverComponent()Landroid/content/ComponentName;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstantAppResolverSettingsComponent()Landroid/content/ComponentName;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstantApps(I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInstrumentationInfo(Landroid/content/ComponentName;I)Landroid/content/pm/InstrumentationInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getIntentFilterVerificationBackup(I)[B
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getIntentFilterVerifications(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getIntentVerificationStatus(Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getKeySetByAlias(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/KeySet;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getMoveStatus(I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getNameForUid(I)Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getNamesForUids([I)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackageGids(Ljava/lang/String;II)[I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInfoVersioned(Landroid/content/pm/VersionedPackage;II)Landroid/content/pm/PackageInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesHoldingPermissions([Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackageSizeInfo(Ljava/lang/String;ILandroid/content/pm/IPackageStatsObserver;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPackageUid(Ljava/lang/String;II)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionControllerPackageName()Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionGrantBackup(I)[B
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPersistentApplications(I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPreferredActivities(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPreferredActivityBackup(I)[B
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getPrivateFlagsForUid(I)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getProviderInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ProviderInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getReceiverInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getServiceInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ServiceInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getSharedLibraries(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getSharedSystemSharedLibraryPackageName()Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getSigningKeySet(Ljava/lang/String;)Landroid/content/pm/KeySet;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getSuspendedPackageAppExtras(Ljava/lang/String;I)Landroid/os/PersistableBundle;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getSystemTextClassifierPackageName()Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getUidForSharedUser(Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->getVerifierDeviceIdentity()Landroid/content/pm/VerifierDeviceIdentity;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->grantDefaultPermissionsToActiveLuiApp(Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->grantDefaultPermissionsToEnabledCarrierApps([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->grantDefaultPermissionsToEnabledImsServices([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->grantDefaultPermissionsToEnabledTelephonyDataServices([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->hasSigningCertificate(Ljava/lang/String;[BI)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->hasSystemFeature(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->hasSystemUidErrors()Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->hasUidSigningCertificate(I[BI)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->installExistingPackageAsUser(Ljava/lang/String;III)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isFirstBoot()Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isInstantApp(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isOnlyCoreApps()Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isPackageAvailable(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isPackageDeviceAdminOnAnyUser(Ljava/lang/String;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isPackageSignedByKeySet(Ljava/lang/String;Landroid/content/pm/KeySet;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isPackageSignedByKeySetExactly(Ljava/lang/String;Landroid/content/pm/KeySet;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isPackageStateProtected(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isPermissionEnforced(Ljava/lang/String;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isProtectedBroadcast(Ljava/lang/String;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isSafeMode()Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isStorageLow()Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isUidPrivileged(I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->isUpgrade()Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->logAppProcessStartIfNeeded(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->movePackage(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->movePrimaryStorage(Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->nextPackageToClean(Landroid/content/pm/PackageCleanItem;)Landroid/content/pm/PackageCleanItem;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->notifyDexLoad(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->notifyPackageUse(Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->performDexOptMode(Ljava/lang/String;ZLjava/lang/String;ZZLjava/lang/String;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->performDexOptSecondary(Ljava/lang/String;Ljava/lang/String;Z)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->performFstrimIfNeeded()V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->queryContentProviders(Ljava/lang/String;IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->queryInstrumentation(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentActivityOptions(Landroid/content/ComponentName;[Landroid/content/Intent;[Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentContentProviders(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->queryPermissionsByGroup(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->querySyncProviders(Ljava/util/List;Ljava/util/List;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->reconcileSecondaryDexFiles(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->registerDexModule(Ljava/lang/String;Ljava/lang/String;ZLandroid/content/pm/IDexModuleRegisterCallback;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->registerMoveCallback(Landroid/content/pm/IPackageMoveObserver;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->removeOnPermissionsChangeListener(Landroid/content/pm/IOnPermissionsChangeListener;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->removePermission(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->resetApplicationPreferences(I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->resetRuntimePermissions()V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->resolveService(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->restoreDefaultApps([BI)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->restoreIntentFilterVerification([BI)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->restorePermissionGrants([BI)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->restorePreferredActivities([BI)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->revokeDefaultPermissionsFromDisabledTelephonyDataServices([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->revokeDefaultPermissionsFromLuiApps([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->runBackgroundDexoptJob(Ljava/util/List;)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setApplicationCategoryHint(Ljava/lang/String;ILjava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setApplicationEnabledSetting(Ljava/lang/String;IIILjava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setApplicationHiddenSettingAsUser(Ljava/lang/String;ZI)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setBlockUninstallForUser(Ljava/lang/String;ZI)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setComponentEnabledSetting(Landroid/content/ComponentName;III)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setDefaultBrowserPackageName(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setHarmfulAppWarning(Ljava/lang/String;Ljava/lang/CharSequence;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setHomeActivity(Landroid/content/ComponentName;I)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setInstallerPackageName(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setInstallLocation(I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setInstantAppCookie(Ljava/lang/String;[BI)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setLastChosenActivity(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/IntentFilter;ILandroid/content/ComponentName;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setPackagesSuspendedAsUser([Ljava/lang/String;ZLandroid/os/PersistableBundle;Landroid/os/PersistableBundle;Ljava/lang/String;Ljava/lang/String;I)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setPackageStoppedState(Ljava/lang/String;ZI)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setPermissionEnforced(Ljava/lang/String;Z)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setRequiredForSystemUser(Ljava/lang/String;Z)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->setUpdateAvailable(Ljava/lang/String;Z)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->shouldShowRequestPermissionRationale(Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->systemReady()V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->unregisterMoveCallback(Landroid/content/pm/IPackageMoveObserver;)V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->updateIntentVerificationStatus(Ljava/lang/String;II)Z
+Landroid/content/pm/IPackageManager$Stub$Proxy;->updatePackagesIfNeeded()V
+Landroid/content/pm/IPackageManager$Stub$Proxy;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;III)V
+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
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_addOnPermissionsChangeListener:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_addPermission:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_addPermissionAsync:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_addPersistentPreferredActivity:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_addPreferredActivity:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_canForwardTo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_canonicalToCurrentPackageNames:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_canRequestPackageInstalls:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_checkPackageStartable:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_checkPermission:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_checkSignatures:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_checkUidPermission:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_checkUidSignatures:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_clearApplicationProfileData:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_clearApplicationUserData:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_clearCrossProfileIntentFilters:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_clearPackagePersistentPreferredActivities:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_clearPackagePreferredActivities:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_currentToCanonicalPackageNames:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_deleteApplicationCacheFiles:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_deleteApplicationCacheFilesAsUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_deletePackageAsUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_deletePackageVersioned:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_deletePreloadsFileCache:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_dumpProfiles:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_enterSafeMode:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_extendVerificationTimeout:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_findPersistentPreferredActivity:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_finishPackageInstall:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_flushPackageRestrictionsAsUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_forceDexOpt:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_freeStorage:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_freeStorageAndNotify:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getActivityInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getAllIntentFilters:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getAllPackages:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getAllPermissionGroups:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getApplicationEnabledSetting:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getApplicationHiddenSettingAsUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getAppOpPermissionPackages:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getArtManager:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getBlockUninstallForUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getChangedPackages:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getComponentEnabledSetting:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getDefaultAppsBackup:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getDefaultBrowserPackageName:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getFlagsForUid:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getHarmfulAppWarning:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getHomeActivities:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstalledApplications:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstalledPackages:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstallerPackageName:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstallLocation:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstallReason:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstantAppAndroidId:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstantAppCookie:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstantAppIcon:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstantAppInstallerComponent:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstantAppResolverComponent:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstantAppResolverSettingsComponent:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstantApps:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getInstrumentationInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getIntentFilterVerificationBackup:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getIntentFilterVerifications:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getIntentVerificationStatus:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getKeySetByAlias:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getLastChosenActivity:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getMoveStatus:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getNameForUid:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getNamesForUids:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPackageGids:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPackageInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPackageInfoVersioned:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPackageInstaller:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPackagesForUid:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPackagesHoldingPermissions:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPackageSizeInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPackageUid:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPermissionControllerPackageName:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPermissionFlags:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPermissionGrantBackup:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPermissionGroupInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPermissionInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPersistentApplications:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPreferredActivities:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPreferredActivityBackup:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getPrivateFlagsForUid:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getProviderInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getReceiverInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getServiceInfo:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getServicesSystemSharedLibraryPackageName:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getSharedLibraries:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getSharedSystemSharedLibraryPackageName:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getSigningKeySet:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getSuspendedPackageAppExtras:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getSystemAvailableFeatures:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getSystemSharedLibraryNames:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getSystemTextClassifierPackageName:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getUidForSharedUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_getVerifierDeviceIdentity:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_grantDefaultPermissionsToActiveLuiApp:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_grantDefaultPermissionsToEnabledCarrierApps:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_grantDefaultPermissionsToEnabledImsServices:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_grantDefaultPermissionsToEnabledTelephonyDataServices:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_grantRuntimePermission:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_hasSigningCertificate:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_hasSystemFeature:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_hasSystemUidErrors:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_hasUidSigningCertificate:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_installExistingPackageAsUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isFirstBoot:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isInstantApp:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isOnlyCoreApps:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isPackageAvailable:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isPackageDeviceAdminOnAnyUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isPackageSignedByKeySet:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isPackageSignedByKeySetExactly:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isPackageStateProtected:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isPackageSuspendedForUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isPermissionEnforced:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isPermissionRevokedByPolicy:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isProtectedBroadcast:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isSafeMode:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isStorageLow:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isUidPrivileged:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_isUpgrade:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_logAppProcessStartIfNeeded:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_movePackage:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_movePrimaryStorage:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_nextPackageToClean:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_notifyDexLoad:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_notifyPackageUse:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_performDexOptMode:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_performDexOptSecondary:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_performFstrimIfNeeded:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_queryContentProviders:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_queryInstrumentation:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_queryIntentActivities:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_queryIntentActivityOptions:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_queryIntentContentProviders:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_queryIntentReceivers:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_queryIntentServices:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_queryPermissionsByGroup:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_querySyncProviders:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_reconcileSecondaryDexFiles:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_registerDexModule:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_registerMoveCallback:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_removeOnPermissionsChangeListener:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_removePermission:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_replacePreferredActivity:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_resetApplicationPreferences:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_resetRuntimePermissions:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_resolveContentProvider:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_resolveIntent:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_resolveService:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_restoreDefaultApps:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_restoreIntentFilterVerification:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_restorePermissionGrants:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_restorePreferredActivities:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_revokeDefaultPermissionsFromDisabledTelephonyDataServices:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_revokeDefaultPermissionsFromLuiApps:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_revokeRuntimePermission:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_runBackgroundDexoptJob:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setApplicationCategoryHint:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setApplicationEnabledSetting:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setApplicationHiddenSettingAsUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setBlockUninstallForUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setComponentEnabledSetting:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setDefaultBrowserPackageName:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setHarmfulAppWarning:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setHomeActivity:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setInstallerPackageName:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setInstallLocation:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setInstantAppCookie:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setLastChosenActivity:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setPackagesSuspendedAsUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setPackageStoppedState:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setPermissionEnforced:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setRequiredForSystemUser:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_setUpdateAvailable:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_shouldShowRequestPermissionRationale:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_systemReady:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_unregisterMoveCallback:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_updateIntentVerificationStatus:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_updatePackagesIfNeeded:I
+Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_updatePermissionFlags:I
+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
+Landroid/content/pm/IPackageManager;->addPersistentPreferredActivity(Landroid/content/IntentFilter;Landroid/content/ComponentName;I)V
+Landroid/content/pm/IPackageManager;->addPreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
+Landroid/content/pm/IPackageManager;->canForwardTo(Landroid/content/Intent;Ljava/lang/String;II)Z
+Landroid/content/pm/IPackageManager;->canRequestPackageInstalls(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->checkPackageStartable(Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->clearApplicationProfileData(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager;->clearApplicationUserData(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;I)V
+Landroid/content/pm/IPackageManager;->clearCrossProfileIntentFilters(ILjava/lang/String;)V
+Landroid/content/pm/IPackageManager;->clearPackagePersistentPreferredActivities(Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->deleteApplicationCacheFilesAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/IPackageManager;->deletePackageAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDeleteObserver;II)V
+Landroid/content/pm/IPackageManager;->deletePackageVersioned(Landroid/content/pm/VersionedPackage;Landroid/content/pm/IPackageDeleteObserver2;II)V
+Landroid/content/pm/IPackageManager;->deletePreloadsFileCache()V
+Landroid/content/pm/IPackageManager;->dumpProfiles(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager;->extendVerificationTimeout(IIJ)V
+Landroid/content/pm/IPackageManager;->findPersistentPreferredActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/IPackageManager;->finishPackageInstall(IZ)V
+Landroid/content/pm/IPackageManager;->flushPackageRestrictionsAsUser(I)V
+Landroid/content/pm/IPackageManager;->forceDexOpt(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager;->freeStorage(Ljava/lang/String;JILandroid/content/IntentSender;)V
+Landroid/content/pm/IPackageManager;->freeStorageAndNotify(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
+Landroid/content/pm/IPackageManager;->getAllIntentFilters(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->getAllPackages()Ljava/util/List;
+Landroid/content/pm/IPackageManager;->getAllPermissionGroups(I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->getApplicationHiddenSettingAsUser(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->getArtManager()Landroid/content/pm/dex/IArtManager;
+Landroid/content/pm/IPackageManager;->getChangedPackages(II)Landroid/content/pm/ChangedPackages;
+Landroid/content/pm/IPackageManager;->getDefaultAppsBackup(I)[B
+Landroid/content/pm/IPackageManager;->getDefaultBrowserPackageName(I)Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getHarmfulAppWarning(Ljava/lang/String;I)Ljava/lang/CharSequence;
+Landroid/content/pm/IPackageManager;->getInstallReason(Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager;->getInstantAppAndroidId(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getInstantAppCookie(Ljava/lang/String;I)[B
+Landroid/content/pm/IPackageManager;->getInstantAppIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
+Landroid/content/pm/IPackageManager;->getInstantAppInstallerComponent()Landroid/content/ComponentName;
+Landroid/content/pm/IPackageManager;->getInstantAppResolverComponent()Landroid/content/ComponentName;
+Landroid/content/pm/IPackageManager;->getInstantAppResolverSettingsComponent()Landroid/content/ComponentName;
+Landroid/content/pm/IPackageManager;->getInstantApps(I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->getIntentFilterVerificationBackup(I)[B
+Landroid/content/pm/IPackageManager;->getIntentFilterVerifications(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->getIntentVerificationStatus(Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager;->getKeySetByAlias(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/KeySet;
+Landroid/content/pm/IPackageManager;->getMoveStatus(I)I
+Landroid/content/pm/IPackageManager;->getNamesForUids([I)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getPackageGids(Ljava/lang/String;II)[I
+Landroid/content/pm/IPackageManager;->getPackageInfoVersioned(Landroid/content/pm/VersionedPackage;II)Landroid/content/pm/PackageInfo;
+Landroid/content/pm/IPackageManager;->getPackagesHoldingPermissions([Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->getPackageSizeInfo(Ljava/lang/String;ILandroid/content/pm/IPackageStatsObserver;)V
+Landroid/content/pm/IPackageManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/content/pm/IPackageManager;->getPermissionGrantBackup(I)[B
+Landroid/content/pm/IPackageManager;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
+Landroid/content/pm/IPackageManager;->getPersistentApplications(I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->getPreferredActivityBackup(I)[B
+Landroid/content/pm/IPackageManager;->getPrivateFlagsForUid(I)I
+Landroid/content/pm/IPackageManager;->getSharedLibraries(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->getSigningKeySet(Ljava/lang/String;)Landroid/content/pm/KeySet;
+Landroid/content/pm/IPackageManager;->getSuspendedPackageAppExtras(Ljava/lang/String;I)Landroid/os/PersistableBundle;
+Landroid/content/pm/IPackageManager;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->getSystemTextClassifierPackageName()Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->getVerifierDeviceIdentity()Landroid/content/pm/VerifierDeviceIdentity;
+Landroid/content/pm/IPackageManager;->grantDefaultPermissionsToActiveLuiApp(Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->grantDefaultPermissionsToEnabledCarrierApps([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->grantDefaultPermissionsToEnabledImsServices([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->grantDefaultPermissionsToEnabledTelephonyDataServices([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->hasSigningCertificate(Ljava/lang/String;[BI)Z
+Landroid/content/pm/IPackageManager;->hasSystemFeature(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->hasUidSigningCertificate(I[BI)Z
+Landroid/content/pm/IPackageManager;->installExistingPackageAsUser(Ljava/lang/String;III)I
+Landroid/content/pm/IPackageManager;->isFirstBoot()Z
+Landroid/content/pm/IPackageManager;->isInstantApp(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->isOnlyCoreApps()Z
+Landroid/content/pm/IPackageManager;->isPackageDeviceAdminOnAnyUser(Ljava/lang/String;)Z
+Landroid/content/pm/IPackageManager;->isPackageSignedByKeySet(Ljava/lang/String;Landroid/content/pm/KeySet;)Z
+Landroid/content/pm/IPackageManager;->isPackageSignedByKeySetExactly(Ljava/lang/String;Landroid/content/pm/KeySet;)Z
+Landroid/content/pm/IPackageManager;->isPackageStateProtected(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->isPermissionEnforced(Ljava/lang/String;)Z
+Landroid/content/pm/IPackageManager;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->isUpgrade()Z
+Landroid/content/pm/IPackageManager;->logAppProcessStartIfNeeded(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->movePackage(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager;->movePrimaryStorage(Ljava/lang/String;)I
+Landroid/content/pm/IPackageManager;->nextPackageToClean(Landroid/content/pm/PackageCleanItem;)Landroid/content/pm/PackageCleanItem;
+Landroid/content/pm/IPackageManager;->notifyDexLoad(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager;->notifyPackageUse(Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->performDexOptMode(Ljava/lang/String;ZLjava/lang/String;ZZLjava/lang/String;)Z
+Landroid/content/pm/IPackageManager;->performDexOptSecondary(Ljava/lang/String;Ljava/lang/String;Z)Z
+Landroid/content/pm/IPackageManager;->performFstrimIfNeeded()V
+Landroid/content/pm/IPackageManager;->queryContentProviders(Ljava/lang/String;IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->queryIntentActivityOptions(Landroid/content/ComponentName;[Landroid/content/Intent;[Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->queryIntentContentProviders(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->queryPermissionsByGroup(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IPackageManager;->reconcileSecondaryDexFiles(Ljava/lang/String;)V
+Landroid/content/pm/IPackageManager;->registerDexModule(Ljava/lang/String;Ljava/lang/String;ZLandroid/content/pm/IDexModuleRegisterCallback;)V
+Landroid/content/pm/IPackageManager;->registerMoveCallback(Landroid/content/pm/IPackageMoveObserver;)V
+Landroid/content/pm/IPackageManager;->removeOnPermissionsChangeListener(Landroid/content/pm/IOnPermissionsChangeListener;)V
+Landroid/content/pm/IPackageManager;->resetApplicationPreferences(I)V
+Landroid/content/pm/IPackageManager;->resetRuntimePermissions()V
+Landroid/content/pm/IPackageManager;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+Landroid/content/pm/IPackageManager;->resolveService(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/IPackageManager;->restoreDefaultApps([BI)V
+Landroid/content/pm/IPackageManager;->restoreIntentFilterVerification([BI)V
+Landroid/content/pm/IPackageManager;->restorePermissionGrants([BI)V
+Landroid/content/pm/IPackageManager;->restorePreferredActivities([BI)V
+Landroid/content/pm/IPackageManager;->revokeDefaultPermissionsFromDisabledTelephonyDataServices([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->revokeDefaultPermissionsFromLuiApps([Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/IPackageManager;->runBackgroundDexoptJob(Ljava/util/List;)Z
+Landroid/content/pm/IPackageManager;->setApplicationCategoryHint(Ljava/lang/String;ILjava/lang/String;)V
+Landroid/content/pm/IPackageManager;->setBlockUninstallForUser(Ljava/lang/String;ZI)Z
+Landroid/content/pm/IPackageManager;->setDefaultBrowserPackageName(Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->setHarmfulAppWarning(Ljava/lang/String;Ljava/lang/CharSequence;I)V
+Landroid/content/pm/IPackageManager;->setHomeActivity(Landroid/content/ComponentName;I)V
+Landroid/content/pm/IPackageManager;->setInstallLocation(I)Z
+Landroid/content/pm/IPackageManager;->setInstantAppCookie(Ljava/lang/String;[BI)Z
+Landroid/content/pm/IPackageManager;->setPackagesSuspendedAsUser([Ljava/lang/String;ZLandroid/os/PersistableBundle;Landroid/os/PersistableBundle;Ljava/lang/String;Ljava/lang/String;I)[Ljava/lang/String;
+Landroid/content/pm/IPackageManager;->setPermissionEnforced(Ljava/lang/String;Z)V
+Landroid/content/pm/IPackageManager;->setRequiredForSystemUser(Ljava/lang/String;Z)Z
+Landroid/content/pm/IPackageManager;->setUpdateAvailable(Ljava/lang/String;Z)V
+Landroid/content/pm/IPackageManager;->shouldShowRequestPermissionRationale(Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/content/pm/IPackageManager;->unregisterMoveCallback(Landroid/content/pm/IPackageMoveObserver;)V
+Landroid/content/pm/IPackageManager;->updateIntentVerificationStatus(Ljava/lang/String;II)Z
+Landroid/content/pm/IPackageManager;->updatePackagesIfNeeded()V
+Landroid/content/pm/IPackageManager;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;III)V
+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;
+Landroid/content/pm/IPinItemRequest$Stub$Proxy;->getExtras()Landroid/os/Bundle;
+Landroid/content/pm/IPinItemRequest$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+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;
+Landroid/content/pm/IPinItemRequest$Stub;->TRANSACTION_accept:I
+Landroid/content/pm/IPinItemRequest$Stub;->TRANSACTION_getAppWidgetProviderInfo:I
+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;
+Landroid/content/pm/IShortcutService$Stub$Proxy;->disableShortcuts(Ljava/lang/String;Ljava/util/List;Ljava/lang/CharSequence;II)V
+Landroid/content/pm/IShortcutService$Stub$Proxy;->enableShortcuts(Ljava/lang/String;Ljava/util/List;I)V
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getBackupPayload(I)[B
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getDynamicShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getIconMaxDimensions(Ljava/lang/String;I)I
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getManifestShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getPinnedShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getRateLimitResetTime(Ljava/lang/String;I)J
+Landroid/content/pm/IShortcutService$Stub$Proxy;->getRemainingCallCount(Ljava/lang/String;I)I
+Landroid/content/pm/IShortcutService$Stub$Proxy;->isRequestPinItemSupported(II)Z
+Landroid/content/pm/IShortcutService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/content/pm/IShortcutService$Stub$Proxy;->onApplicationActive(Ljava/lang/String;I)V
+Landroid/content/pm/IShortcutService$Stub$Proxy;->removeAllDynamicShortcuts(Ljava/lang/String;I)V
+Landroid/content/pm/IShortcutService$Stub$Proxy;->removeDynamicShortcuts(Ljava/lang/String;Ljava/util/List;I)V
+Landroid/content/pm/IShortcutService$Stub$Proxy;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/IShortcutService$Stub$Proxy;->requestPinShortcut(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;Landroid/content/IntentSender;I)Z
+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
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_applyRestore:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_createShortcutResultIntent:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_disableShortcuts:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_enableShortcuts:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_getBackupPayload:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_getDynamicShortcuts:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_getIconMaxDimensions:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_getManifestShortcuts:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_getMaxShortcutCountPerActivity:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_getPinnedShortcuts:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_getRateLimitResetTime:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_getRemainingCallCount:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_isRequestPinItemSupported:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_onApplicationActive:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_removeAllDynamicShortcuts:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_removeDynamicShortcuts:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_reportShortcutUsed:I
+Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_requestPinShortcut:I
+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;
+Landroid/content/pm/IShortcutService;->disableShortcuts(Ljava/lang/String;Ljava/util/List;Ljava/lang/CharSequence;II)V
+Landroid/content/pm/IShortcutService;->enableShortcuts(Ljava/lang/String;Ljava/util/List;I)V
+Landroid/content/pm/IShortcutService;->getBackupPayload(I)[B
+Landroid/content/pm/IShortcutService;->getDynamicShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IShortcutService;->getIconMaxDimensions(Ljava/lang/String;I)I
+Landroid/content/pm/IShortcutService;->getManifestShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IShortcutService;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I
+Landroid/content/pm/IShortcutService;->getPinnedShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+Landroid/content/pm/IShortcutService;->getRateLimitResetTime(Ljava/lang/String;I)J
+Landroid/content/pm/IShortcutService;->getRemainingCallCount(Ljava/lang/String;I)I
+Landroid/content/pm/IShortcutService;->isRequestPinItemSupported(II)Z
+Landroid/content/pm/IShortcutService;->onApplicationActive(Ljava/lang/String;I)V
+Landroid/content/pm/IShortcutService;->removeAllDynamicShortcuts(Ljava/lang/String;I)V
+Landroid/content/pm/IShortcutService;->removeDynamicShortcuts(Ljava/lang/String;Ljava/util/List;I)V
+Landroid/content/pm/IShortcutService;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/IShortcutService;->requestPinShortcut(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;Landroid/content/IntentSender;I)Z
+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;
+Landroid/content/pm/KeySet;->readFromParcel(Landroid/os/Parcel;)Landroid/content/pm/KeySet;
+Landroid/content/pm/KeySet;->token:Landroid/os/IBinder;
+Landroid/content/pm/LabeledIntent;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/LabeledIntent;->mIcon:I
+Landroid/content/pm/LabeledIntent;->mLabelRes:I
+Landroid/content/pm/LabeledIntent;->mNonLocalizedLabel:Ljava/lang/CharSequence;
+Landroid/content/pm/LabeledIntent;->mSourcePackage:Ljava/lang/String;
+Landroid/content/pm/LauncherActivityInfo;-><init>(Landroid/content/Context;)V
+Landroid/content/pm/LauncherActivityInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ActivityInfo;Landroid/os/UserHandle;)V
+Landroid/content/pm/LauncherActivityInfo;->getApplicationFlags()I
+Landroid/content/pm/LauncherActivityInfo;->mComponentName:Landroid/content/ComponentName;
+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;
+Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;->packageNames:[Ljava/lang/String;
+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
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->MSG_AVAILABLE:I
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->MSG_CHANGED:I
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->MSG_REMOVED:I
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->MSG_SHORTCUT_CHANGED:I
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->MSG_SUSPENDED:I
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->MSG_UNAVAILABLE:I
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->MSG_UNSUSPENDED:I
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackageAdded(Ljava/lang/String;Landroid/os/UserHandle;)V
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackageChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackageRemoved(Ljava/lang/String;Landroid/os/UserHandle;)V
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackagesAvailable([Ljava/lang/String;Landroid/os/UserHandle;Z)V
+Landroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackagesSuspended([Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+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
+Landroid/content/pm/LauncherApps$ShortcutQuery;->FLAG_GET_PINNED:I
+Landroid/content/pm/LauncherApps$ShortcutQuery;->FLAG_MATCH_ALL_KINDS:I
+Landroid/content/pm/LauncherApps$ShortcutQuery;->FLAG_MATCH_ALL_KINDS_WITH_ALL_PINNED:I
+Landroid/content/pm/LauncherApps$ShortcutQuery;->mActivity:Landroid/content/ComponentName;
+Landroid/content/pm/LauncherApps$ShortcutQuery;->mChangedSince:J
+Landroid/content/pm/LauncherApps$ShortcutQuery;->mPackage:Ljava/lang/String;
+Landroid/content/pm/LauncherApps$ShortcutQuery;->mQueryFlags:I
+Landroid/content/pm/LauncherApps$ShortcutQuery;->mShortcutIds:Ljava/util/List;
+Landroid/content/pm/LauncherApps;-><init>(Landroid/content/Context;Landroid/content/pm/ILauncherApps;)V
+Landroid/content/pm/LauncherApps;->addCallbackLocked(Landroid/content/pm/LauncherApps$Callback;Landroid/os/Handler;)V
+Landroid/content/pm/LauncherApps;->convertToActivityList(Landroid/content/pm/ParceledListSlice;Landroid/os/UserHandle;)Ljava/util/List;
+Landroid/content/pm/LauncherApps;->DEBUG:Z
+Landroid/content/pm/LauncherApps;->findCallbackLocked(Landroid/content/pm/LauncherApps$Callback;)I
+Landroid/content/pm/LauncherApps;->getShortcutIconFd(Landroid/content/pm/ShortcutInfo;)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/LauncherApps;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/LauncherApps;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/LauncherApps;->getShortcutIconResId(Landroid/content/pm/ShortcutInfo;)I
+Landroid/content/pm/LauncherApps;->getShortcutIconResId(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I
+Landroid/content/pm/LauncherApps;->getShortcutInfo(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)Ljava/util/List;
+Landroid/content/pm/LauncherApps;->loadDrawableResourceFromPackage(Ljava/lang/String;ILandroid/os/UserHandle;I)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/LauncherApps;->logErrorForInvalidProfileAccess(Landroid/os/UserHandle;)V
+Landroid/content/pm/LauncherApps;->mAppsChangedListener:Landroid/content/pm/IOnAppsChangedListener$Stub;
+Landroid/content/pm/LauncherApps;->maybeUpdateDisabledMessage(Ljava/util/List;)Ljava/util/List;
+Landroid/content/pm/LauncherApps;->mCallbacks:Ljava/util/List;
+Landroid/content/pm/LauncherApps;->mContext:Landroid/content/Context;
+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
+Landroid/content/pm/PackageBackwardCompatibility;->bootClassPathContainsOAHL()Z
+Landroid/content/pm/PackageBackwardCompatibility;->getInstance()Landroid/content/pm/PackageSharedLibraryUpdater;
+Landroid/content/pm/PackageBackwardCompatibility;->INSTANCE:Landroid/content/pm/PackageBackwardCompatibility;
+Landroid/content/pm/PackageBackwardCompatibility;->mBootClassPathContainsATB:Z
+Landroid/content/pm/PackageBackwardCompatibility;->mBootClassPathContainsOAHL:Z
+Landroid/content/pm/PackageBackwardCompatibility;->modifySharedLibraries(Landroid/content/pm/PackageParser$Package;)V
+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
+Landroid/content/pm/PackageCleanItem;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/pm/PackageCleanItem;->packageName:Ljava/lang/String;
+Landroid/content/pm/PackageCleanItem;->userId:I
+Landroid/content/pm/PackageInfo;->compileSdkVersion:I
+Landroid/content/pm/PackageInfo;->compileSdkVersionCodename:Ljava/lang/String;
+Landroid/content/pm/PackageInfo;->composeLongVersionCode(II)J
+Landroid/content/pm/PackageInfo;->isOverlayPackage()Z
+Landroid/content/pm/PackageInfo;->isStaticOverlayPackage()Z
+Landroid/content/pm/PackageInfo;->isStub:Z
+Landroid/content/pm/PackageInfo;->mOverlayIsStatic:Z
+Landroid/content/pm/PackageInfo;->overlayCategory:Ljava/lang/String;
+Landroid/content/pm/PackageInfo;->overlayPriority:I
+Landroid/content/pm/PackageInfo;->propagateApplicationInfo(Landroid/content/pm/ApplicationInfo;[Landroid/content/pm/ComponentInfo;)V
+Landroid/content/pm/PackageInfo;->requiredAccountType:Ljava/lang/String;
+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
+Landroid/content/pm/PackageInfoLite;->getLongVersionCode()J
+Landroid/content/pm/PackageInfoLite;->installLocation:I
+Landroid/content/pm/PackageInfoLite;->multiArch:Z
+Landroid/content/pm/PackageInfoLite;->packageName:Ljava/lang/String;
+Landroid/content/pm/PackageInfoLite;->recommendedInstallLocation:I
+Landroid/content/pm/PackageInfoLite;->splitNames:[Ljava/lang/String;
+Landroid/content/pm/PackageInfoLite;->splitRevisionCodes:[I
+Landroid/content/pm/PackageInfoLite;->verifiers:[Landroid/content/pm/VerifierInfo;
+Landroid/content/pm/PackageInfoLite;->versionCode:I
+Landroid/content/pm/PackageInfoLite;->versionCodeMajor:I
+Landroid/content/pm/PackageInstaller$Session;-><init>(Landroid/content/pm/IPackageInstallerSession;)V
+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;
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->MSG_SESSION_ACTIVE_CHANGED:I
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->MSG_SESSION_BADGING_CHANGED:I
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->MSG_SESSION_CREATED:I
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->MSG_SESSION_FINISHED:I
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->MSG_SESSION_PROGRESS_CHANGED:I
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionActiveChanged(IZ)V
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionBadgingChanged(I)V
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionCreated(I)V
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionFinished(IZ)V
+Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionProgressChanged(IF)V
+Landroid/content/pm/PackageInstaller$SessionInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/PackageInstaller$SessionInfo;->getDetailsIntent()Landroid/content/Intent;
+Landroid/content/pm/PackageInstaller$SessionInfo;->grantedRuntimePermissions:[Ljava/lang/String;
+Landroid/content/pm/PackageInstaller$SessionInfo;->installFlags:I
+Landroid/content/pm/PackageInstaller$SessionInfo;->installLocation:I
+Landroid/content/pm/PackageInstaller$SessionInfo;->installReason:I
+Landroid/content/pm/PackageInstaller$SessionInfo;->isOpen()Z
+Landroid/content/pm/PackageInstaller$SessionInfo;->originatingUid:I
+Landroid/content/pm/PackageInstaller$SessionInfo;->originatingUri:Landroid/net/Uri;
+Landroid/content/pm/PackageInstaller$SessionInfo;->referrerUri:Landroid/net/Uri;
+Landroid/content/pm/PackageInstaller$SessionParams;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/PackageInstaller$SessionParams;->abiOverride:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller$SessionParams;->appIconLastModified:J
+Landroid/content/pm/PackageInstaller$SessionParams;->areHiddenOptionsSet()Z
+Landroid/content/pm/PackageInstaller$SessionParams;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+Landroid/content/pm/PackageInstaller$SessionParams;->grantedRuntimePermissions:[Ljava/lang/String;
+Landroid/content/pm/PackageInstaller$SessionParams;->installerPackageName:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller$SessionParams;->installLocation:I
+Landroid/content/pm/PackageInstaller$SessionParams;->installReason:I
+Landroid/content/pm/PackageInstaller$SessionParams;->MODE_INVALID:I
+Landroid/content/pm/PackageInstaller$SessionParams;->originatingUri:Landroid/net/Uri;
+Landroid/content/pm/PackageInstaller$SessionParams;->referrerUri:Landroid/net/Uri;
+Landroid/content/pm/PackageInstaller$SessionParams;->setInstallerPackageName(Ljava/lang/String;)V
+Landroid/content/pm/PackageInstaller$SessionParams;->setInstallFlagsExternal()V
+Landroid/content/pm/PackageInstaller$SessionParams;->setInstallFlagsForcePermissionPrompt()V
+Landroid/content/pm/PackageInstaller$SessionParams;->setInstallFlagsInternal()V
+Landroid/content/pm/PackageInstaller$SessionParams;->UID_UNKNOWN:I
+Landroid/content/pm/PackageInstaller$SessionParams;->volumeUuid:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller;-><init>(Landroid/content/pm/IPackageInstaller;Ljava/lang/String;I)V
+Landroid/content/pm/PackageInstaller;->ACTION_CONFIRM_PERMISSIONS:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller;->addSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;)V
+Landroid/content/pm/PackageInstaller;->addSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Handler;)V
+Landroid/content/pm/PackageInstaller;->ENABLE_REVOCABLE_FD:Z
+Landroid/content/pm/PackageInstaller;->EXTRA_CALLBACK:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller;->EXTRA_LEGACY_BUNDLE:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller;->EXTRA_LEGACY_STATUS:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller;->EXTRA_PACKAGE_NAMES:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller;->mDelegates:Ljava/util/ArrayList;
+Landroid/content/pm/PackageInstaller;->mInstaller:Landroid/content/pm/IPackageInstaller;
+Landroid/content/pm/PackageInstaller;->mInstallerPackageName:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller;->mUserId:I
+Landroid/content/pm/PackageInstaller;->removeSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;)V
+Landroid/content/pm/PackageInstaller;->TAG:Ljava/lang/String;
+Landroid/content/pm/PackageInstaller;->uninstall(Landroid/content/pm/VersionedPackage;ILandroid/content/IntentSender;)V
+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
+Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;->length()I
+Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;->mOriginal:Ljava/lang/String;
+Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;->mRemovedChars:Ljava/util/BitSet;
+Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;->removeAllCharAfter(I)V
+Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;->removeAllCharBefore(I)V
+Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;->removeRange(II)V
+Landroid/content/pm/PackageItemInfo;->DUMP_FLAG_ALL:I
+Landroid/content/pm/PackageItemInfo;->DUMP_FLAG_APPLICATION:I
+Landroid/content/pm/PackageItemInfo;->DUMP_FLAG_DETAILS:I
+Landroid/content/pm/PackageItemInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/PackageItemInfo;->isNewline(I)Z
+Landroid/content/pm/PackageItemInfo;->isWhiteSpace(I)Z
+Landroid/content/pm/PackageItemInfo;->LINE_FEED_CODE_POINT:I
+Landroid/content/pm/PackageItemInfo;->loadDefaultBanner(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/PackageItemInfo;->loadDefaultIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/PackageItemInfo;->loadDefaultLogo(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/content/pm/PackageItemInfo;->loadSafeLabel(Landroid/content/pm/PackageManager;FI)Ljava/lang/CharSequence;
+Landroid/content/pm/PackageItemInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+Landroid/content/pm/PackageItemInfo;->MAX_LABEL_SIZE_PX:F
+Landroid/content/pm/PackageItemInfo;->MAX_SAFE_LABEL_LENGTH:I
+Landroid/content/pm/PackageItemInfo;->NBSP_CODE_POINT:I
+Landroid/content/pm/PackageItemInfo;->SAFE_LABEL_FLAG_FIRST_LINE:I
+Landroid/content/pm/PackageItemInfo;->SAFE_LABEL_FLAG_SINGLE_LINE:I
+Landroid/content/pm/PackageItemInfo;->SAFE_LABEL_FLAG_TRIM:I
+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
+Landroid/content/pm/PackageItemInfoProto;->LABEL_RES:J
+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
+Landroid/content/pm/PackageManager;->deleteStatusToString(ILjava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/PackageManager;->DELETE_ALL_USERS:I
+Landroid/content/pm/PackageManager;->DELETE_CHATTY:I
+Landroid/content/pm/PackageManager;->DELETE_DONT_KILL_APP:I
+Landroid/content/pm/PackageManager;->DELETE_FAILED_ABORTED:I
+Landroid/content/pm/PackageManager;->DELETE_FAILED_DEVICE_POLICY_MANAGER:I
+Landroid/content/pm/PackageManager;->DELETE_FAILED_INTERNAL_ERROR:I
+Landroid/content/pm/PackageManager;->DELETE_FAILED_OWNER_BLOCKED:I
+Landroid/content/pm/PackageManager;->DELETE_FAILED_USED_SHARED_LIBRARY:I
+Landroid/content/pm/PackageManager;->DELETE_FAILED_USER_RESTRICTED:I
+Landroid/content/pm/PackageManager;->DELETE_KEEP_DATA:I
+Landroid/content/pm/PackageManager;->DELETE_SUCCEEDED:I
+Landroid/content/pm/PackageManager;->DELETE_SYSTEM_APP:I
+Landroid/content/pm/PackageManager;->EXTRA_FAILURE_EXISTING_PACKAGE:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_FAILURE_EXISTING_PERMISSION:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_INTENT_FILTER_VERIFICATION_HOSTS:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_INTENT_FILTER_VERIFICATION_ID:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_INTENT_FILTER_VERIFICATION_PACKAGE_NAME:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_INTENT_FILTER_VERIFICATION_URI_SCHEME:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_MOVE_ID:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_VERIFICATION_INSTALLER_PACKAGE:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_VERIFICATION_INSTALLER_UID:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_VERIFICATION_INSTALL_FLAGS:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_VERIFICATION_LONG_VERSION_CODE:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_VERIFICATION_PACKAGE_NAME:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_VERIFICATION_URI:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->EXTRA_VERIFICATION_VERSION_CODE:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_ASSIST_GESTURE:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_CTS:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_DEVICE_ID_ATTESTATION:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_HDMI_CEC:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_LOWPAN:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_MANAGED_PROFILES:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_NFC_ANY:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_NFC_HCE:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->FEATURE_VOICE_RECOGNIZERS:Ljava/lang/String;
+Landroid/content/pm/PackageManager;->getCarLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;
+Landroid/content/pm/PackageManager;->getInstantAppAndroidId(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/lang/String;
+Landroid/content/pm/PackageManager;->getInstantAppCookieMaxSize()I
+Landroid/content/pm/PackageManager;->getPrimaryStorageCandidateVolumes()Ljava/util/List;
+Landroid/content/pm/PackageManager;->getPrimaryStorageCurrentVolume()Landroid/os/storage/VolumeInfo;
+Landroid/content/pm/PackageManager;->getSharedLibrariesAsUser(II)Ljava/util/List;
+Landroid/content/pm/PackageManager;->getSystemTextClassifierPackageName()Ljava/lang/String;
+Landroid/content/pm/PackageManager;->getUserId()I
+Landroid/content/pm/PackageManager;->getVerifierDeviceIdentity()Landroid/content/pm/VerifierDeviceIdentity;
+Landroid/content/pm/PackageManager;->installStatusToPublicStatus(I)I
+Landroid/content/pm/PackageManager;->INSTALL_ALLOCATE_AGGRESSIVE:I
+Landroid/content/pm/PackageManager;->INSTALL_ALLOW_DOWNGRADE:I
+Landroid/content/pm/PackageManager;->INSTALL_ALLOW_TEST:I
+Landroid/content/pm/PackageManager;->INSTALL_ALL_USERS:I
+Landroid/content/pm/PackageManager;->INSTALL_DONT_KILL_APP:I
+Landroid/content/pm/PackageManager;->INSTALL_EXTERNAL:I
+Landroid/content/pm/PackageManager;->INSTALL_FAILED_ABORTED:I
+Landroid/content/pm/PackageManager;->INSTALL_FAILED_BAD_DEX_METADATA:I
+Landroid/content/pm/PackageManager;->INSTALL_FAILED_DUPLICATE_PERMISSION:I
+Landroid/content/pm/PackageManager;->INSTALL_FAILED_INSTANT_APP_INVALID:I
+Landroid/content/pm/PackageManager;->INSTALL_FAILED_NO_MATCHING_ABIS:I
+Landroid/content/pm/PackageManager;->INSTALL_FAILED_UID_CHANGED:I
+Landroid/content/pm/PackageManager;->INSTALL_FAILED_USER_RESTRICTED:I
+Landroid/content/pm/PackageManager;->INSTALL_FAILED_VERSION_DOWNGRADE:I
+Landroid/content/pm/PackageManager;->INSTALL_FORCE_PERMISSION_PROMPT:I
+Landroid/content/pm/PackageManager;->INSTALL_FORCE_SDK:I
+Landroid/content/pm/PackageManager;->INSTALL_FORCE_VOLUME_UUID:I
+Landroid/content/pm/PackageManager;->INSTALL_FORWARD_LOCK:I
+Landroid/content/pm/PackageManager;->INSTALL_FROM_ADB:I
+Landroid/content/pm/PackageManager;->INSTALL_FULL_APP:I
+Landroid/content/pm/PackageManager;->INSTALL_GRANT_RUNTIME_PERMISSIONS:I
+Landroid/content/pm/PackageManager;->INSTALL_INSTANT_APP:I
+Landroid/content/pm/PackageManager;->INSTALL_INTERNAL:I
+Landroid/content/pm/PackageManager;->INSTALL_VIRTUAL_PRELOAD:I
+Landroid/content/pm/PackageManager;->isMoveStatusFinished(I)Z
+Landroid/content/pm/PackageManager;->isPackageStateProtected(Ljava/lang/String;I)Z
+Landroid/content/pm/PackageManager;->MATCH_DEBUG_TRIAGED_MISSING:I
+Landroid/content/pm/PackageManager;->MATCH_EXPLICITLY_VISIBLE_ONLY:I
+Landroid/content/pm/PackageManager;->MATCH_STATIC_SHARED_LIBRARIES:I
+Landroid/content/pm/PackageManager;->MATCH_VISIBLE_TO_INSTANT_APP_ONLY:I
+Landroid/content/pm/PackageManager;->movePrimaryStorage(Landroid/os/storage/VolumeInfo;)I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_3RD_PARTY_NOT_ALLOWED_ON_INTERNAL:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_DEVICE_ADMIN:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_DOESNT_EXIST:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_FORWARD_LOCKED:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_INSUFFICIENT_STORAGE:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_INTERNAL_ERROR:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_INVALID_LOCATION:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_LOCKED_USER:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_OPERATION_PENDING:I
+Landroid/content/pm/PackageManager;->MOVE_FAILED_SYSTEM_PACKAGE:I
+Landroid/content/pm/PackageManager;->MOVE_SUCCEEDED:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_ACTIVITY:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_BACKUP:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_BROADCAST_RECEIVER:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_CONTENT_PROVIDER:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_CROSS_PACKAGE:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_FOREGROUND_SERVICE:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_INSTRUMENTATION:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_REASONS_COUNT:I
+Landroid/content/pm/PackageManager;->NOTIFY_PACKAGE_USE_SERVICE:I
+Landroid/content/pm/PackageManager;->ONLY_IF_NO_MATCH_FOUND:I
+Landroid/content/pm/PackageManager;->permissionFlagToString(I)Ljava/lang/String;
+Landroid/content/pm/PackageManager;->queryContentProviders(Ljava/lang/String;IILjava/lang/String;)Ljava/util/List;
+Landroid/content/pm/PackageManager;->resolveServiceAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/PackageManager;->SKIP_CURRENT_PROFILE:I
+Landroid/content/pm/PackageManager;->SYSTEM_SHARED_LIBRARY_SERVICES:Ljava/lang/String;
+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
+Landroid/content/pm/PackageManagerInternal;->canAccessInstantApps(II)Z
+Landroid/content/pm/PackageManagerInternal;->filterAppAccess(Landroid/content/pm/PackageParser$Package;II)Z
+Landroid/content/pm/PackageManagerInternal;->getActivityInfo(Landroid/content/ComponentName;III)Landroid/content/pm/ActivityInfo;
+Landroid/content/pm/PackageManagerInternal;->getApplicationInfo(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/PackageManagerInternal;->getDefaultHomeActivity(I)Landroid/content/ComponentName;
+Landroid/content/pm/PackageManagerInternal;->getDisabledPackage(Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageManagerInternal;->getHomeActivitiesAsUser(Ljava/util/List;I)Landroid/content/ComponentName;
+Landroid/content/pm/PackageManagerInternal;->getInstantAppPackageName(I)Ljava/lang/String;
+Landroid/content/pm/PackageManagerInternal;->getKnownPackageName(II)Ljava/lang/String;
+Landroid/content/pm/PackageManagerInternal;->getNameForUid(I)Ljava/lang/String;
+Landroid/content/pm/PackageManagerInternal;->getOverlayPackages(I)Ljava/util/List;
+Landroid/content/pm/PackageManagerInternal;->getPackage(Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageManagerInternal;->getPackageInfo(Ljava/lang/String;III)Landroid/content/pm/PackageInfo;
+Landroid/content/pm/PackageManagerInternal;->getPackageList()Landroid/content/pm/PackageList;
+Landroid/content/pm/PackageManagerInternal;->getPackageList(Landroid/content/pm/PackageManagerInternal$PackageListObserver;)Landroid/content/pm/PackageList;
+Landroid/content/pm/PackageManagerInternal;->getPackageTargetSdkVersion(Ljava/lang/String;)I
+Landroid/content/pm/PackageManagerInternal;->getPackageUid(Ljava/lang/String;II)I
+Landroid/content/pm/PackageManagerInternal;->getPermissionFlagsTEMP(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/content/pm/PackageManagerInternal;->getSetupWizardPackageName()Ljava/lang/String;
+Landroid/content/pm/PackageManagerInternal;->getSuspendedDialogMessage(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/content/pm/PackageManagerInternal;->getSuspendedPackageLauncherExtras(Ljava/lang/String;I)Landroid/os/Bundle;
+Landroid/content/pm/PackageManagerInternal;->getSuspendingPackage(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/content/pm/PackageManagerInternal;->getTargetPackageNames(I)Ljava/util/List;
+Landroid/content/pm/PackageManagerInternal;->getUidTargetSdkVersion(I)I
+Landroid/content/pm/PackageManagerInternal;->grantDefaultPermissionsToDefaultDialerApp(Ljava/lang/String;I)V
+Landroid/content/pm/PackageManagerInternal;->grantDefaultPermissionsToDefaultSimCallManager(Ljava/lang/String;I)V
+Landroid/content/pm/PackageManagerInternal;->grantDefaultPermissionsToDefaultSmsApp(Ljava/lang/String;I)V
+Landroid/content/pm/PackageManagerInternal;->grantDefaultPermissionsToDefaultUseOpenWifiApp(Ljava/lang/String;I)V
+Landroid/content/pm/PackageManagerInternal;->grantEphemeralAccess(ILandroid/content/Intent;II)V
+Landroid/content/pm/PackageManagerInternal;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;IZ)V
+Landroid/content/pm/PackageManagerInternal;->hasInstantApplicationMetadata(Ljava/lang/String;I)Z
+Landroid/content/pm/PackageManagerInternal;->hasSignatureCapability(III)Z
+Landroid/content/pm/PackageManagerInternal;->isDataRestoreSafe(Landroid/content/pm/Signature;Ljava/lang/String;)Z
+Landroid/content/pm/PackageManagerInternal;->isDataRestoreSafe([BLjava/lang/String;)Z
+Landroid/content/pm/PackageManagerInternal;->isInstantApp(Ljava/lang/String;I)Z
+Landroid/content/pm/PackageManagerInternal;->isInstantAppInstallerComponent(Landroid/content/ComponentName;)Z
+Landroid/content/pm/PackageManagerInternal;->isLegacySystemApp(Landroid/content/pm/PackageParser$Package;)Z
+Landroid/content/pm/PackageManagerInternal;->isPackageDataProtected(ILjava/lang/String;)Z
+Landroid/content/pm/PackageManagerInternal;->isPackageEphemeral(ILjava/lang/String;)Z
+Landroid/content/pm/PackageManagerInternal;->isPackagePersistent(Ljava/lang/String;)Z
+Landroid/content/pm/PackageManagerInternal;->isPackageStateProtected(Ljava/lang/String;I)Z
+Landroid/content/pm/PackageManagerInternal;->isPackageSuspended(Ljava/lang/String;I)Z
+Landroid/content/pm/PackageManagerInternal;->isPermissionsReviewRequired(Ljava/lang/String;I)Z
+Landroid/content/pm/PackageManagerInternal;->isResolveActivityComponent(Landroid/content/pm/ComponentInfo;)Z
+Landroid/content/pm/PackageManagerInternal;->notifyPackageUse(Ljava/lang/String;I)V
+Landroid/content/pm/PackageManagerInternal;->PACKAGE_BROWSER:I
+Landroid/content/pm/PackageManagerInternal;->PACKAGE_INSTALLER:I
+Landroid/content/pm/PackageManagerInternal;->PACKAGE_SETUP_WIZARD:I
+Landroid/content/pm/PackageManagerInternal;->PACKAGE_SYSTEM:I
+Landroid/content/pm/PackageManagerInternal;->PACKAGE_SYSTEM_TEXT_CLASSIFIER:I
+Landroid/content/pm/PackageManagerInternal;->PACKAGE_VERIFIER:I
+Landroid/content/pm/PackageManagerInternal;->pruneInstantApps()V
+Landroid/content/pm/PackageManagerInternal;->queryIntentActivities(Landroid/content/Intent;III)Ljava/util/List;
+Landroid/content/pm/PackageManagerInternal;->queryIntentServices(Landroid/content/Intent;III)Ljava/util/List;
+Landroid/content/pm/PackageManagerInternal;->removeIsolatedUid(I)V
+Landroid/content/pm/PackageManagerInternal;->removePackageListObserver(Landroid/content/pm/PackageManagerInternal$PackageListObserver;)V
+Landroid/content/pm/PackageManagerInternal;->requestInstantAppResolutionPhaseTwo(Landroid/content/pm/AuxiliaryResolveInfo;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;I)V
+Landroid/content/pm/PackageManagerInternal;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+Landroid/content/pm/PackageManagerInternal;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/PackageManagerInternal;->resolveService(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
+Landroid/content/pm/PackageManagerInternal;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;IZ)V
+Landroid/content/pm/PackageManagerInternal;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V
+Landroid/content/pm/PackageManagerInternal;->setDialerAppPackagesProvider(Landroid/content/pm/PackageManagerInternal$PackagesProvider;)V
+Landroid/content/pm/PackageManagerInternal;->setEnabledOverlayPackages(ILjava/lang/String;Ljava/util/List;)Z
+Landroid/content/pm/PackageManagerInternal;->setExternalSourcesPolicy(Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;)V
+Landroid/content/pm/PackageManagerInternal;->setKeepUninstalledPackages(Ljava/util/List;)V
+Landroid/content/pm/PackageManagerInternal;->setLocationPackagesProvider(Landroid/content/pm/PackageManagerInternal$PackagesProvider;)V
+Landroid/content/pm/PackageManagerInternal;->setSimCallManagerPackagesProvider(Landroid/content/pm/PackageManagerInternal$PackagesProvider;)V
+Landroid/content/pm/PackageManagerInternal;->setSmsAppPackagesProvider(Landroid/content/pm/PackageManagerInternal$PackagesProvider;)V
+Landroid/content/pm/PackageManagerInternal;->setSyncAdapterPackagesprovider(Landroid/content/pm/PackageManagerInternal$SyncAdapterPackagesProvider;)V
+Landroid/content/pm/PackageManagerInternal;->setUseOpenWifiAppPackagesProvider(Landroid/content/pm/PackageManagerInternal$PackagesProvider;)V
+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;
+Landroid/content/pm/PackageParser$Activity;->hasMaxAspectRatio()Z
+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;
+Landroid/content/pm/PackageParser$ApkLite;->coreApp:Z
+Landroid/content/pm/PackageParser$ApkLite;->debuggable:Z
+Landroid/content/pm/PackageParser$ApkLite;->extractNativeLibs:Z
+Landroid/content/pm/PackageParser$ApkLite;->getLongVersionCode()J
+Landroid/content/pm/PackageParser$ApkLite;->installLocation:I
+Landroid/content/pm/PackageParser$ApkLite;->isFeatureSplit:Z
+Landroid/content/pm/PackageParser$ApkLite;->isolatedSplits:Z
+Landroid/content/pm/PackageParser$ApkLite;->multiArch:Z
+Landroid/content/pm/PackageParser$ApkLite;->packageName:Ljava/lang/String;
+Landroid/content/pm/PackageParser$ApkLite;->revisionCode:I
+Landroid/content/pm/PackageParser$ApkLite;->signingDetails:Landroid/content/pm/PackageParser$SigningDetails;
+Landroid/content/pm/PackageParser$ApkLite;->splitName:Ljava/lang/String;
+Landroid/content/pm/PackageParser$ApkLite;->use32bitAbi:Z
+Landroid/content/pm/PackageParser$ApkLite;->usesSplitName:Ljava/lang/String;
+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
+Landroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$ParsePackageItemArgs;Landroid/content/pm/PackageItemInfo;)V
+Landroid/content/pm/PackageParser$Component;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/PackageParser$Component;->appendComponentShortName(Ljava/lang/StringBuilder;)V
+Landroid/content/pm/PackageParser$Component;->componentName:Landroid/content/ComponentName;
+Landroid/content/pm/PackageParser$Component;->componentShortName:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Component;->createIntentsList(Landroid/os/Parcel;)Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Component;->order:I
+Landroid/content/pm/PackageParser$Component;->printComponentShortName(Ljava/io/PrintWriter;)V
+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
+Landroid/content/pm/PackageParser$Package;->baseRevisionCode:I
+Landroid/content/pm/PackageParser$Package;->canHaveOatDir()Z
+Landroid/content/pm/PackageParser$Package;->childPackages:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->codePath:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->coreApp:Z
+Landroid/content/pm/PackageParser$Package;->cpuAbiOverride:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/pm/PackageParser$Package;->featureGroups:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->fixupOwner(Ljava/util/List;)V
+Landroid/content/pm/PackageParser$Package;->getAllCodePaths()Ljava/util/List;
+Landroid/content/pm/PackageParser$Package;->getAllCodePathsExcludingResourceOnly()Ljava/util/List;
+Landroid/content/pm/PackageParser$Package;->getChildPackageNames()Ljava/util/List;
+Landroid/content/pm/PackageParser$Package;->getLatestForegroundPackageUseTimeInMills()J
+Landroid/content/pm/PackageParser$Package;->getLatestPackageUseTimeInMills()J
+Landroid/content/pm/PackageParser$Package;->getLongVersionCode()J
+Landroid/content/pm/PackageParser$Package;->hasChildPackage(Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser$Package;->hasComponentClassName(Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser$Package;->internStringArrayList(Ljava/util/List;)V
+Landroid/content/pm/PackageParser$Package;->isExternal()Z
+Landroid/content/pm/PackageParser$Package;->isForwardLocked()Z
+Landroid/content/pm/PackageParser$Package;->isLibrary()Z
+Landroid/content/pm/PackageParser$Package;->isMatch(I)Z
+Landroid/content/pm/PackageParser$Package;->isOem()Z
+Landroid/content/pm/PackageParser$Package;->isPrivileged()Z
+Landroid/content/pm/PackageParser$Package;->isProduct()Z
+Landroid/content/pm/PackageParser$Package;->isStub:Z
+Landroid/content/pm/PackageParser$Package;->isSystem()Z
+Landroid/content/pm/PackageParser$Package;->isUpdatedSystemApp()Z
+Landroid/content/pm/PackageParser$Package;->isVendor()Z
+Landroid/content/pm/PackageParser$Package;->libraryNames:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->mAdoptPermissions:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->manifestPackageName:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->mCompileSdkVersion:I
+Landroid/content/pm/PackageParser$Package;->mCompileSdkVersionCodename:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->mLastPackageUsageTimeInMills:[J
+Landroid/content/pm/PackageParser$Package;->mOriginalPackages:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->mOverlayCategory:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->mOverlayIsStatic:Z
+Landroid/content/pm/PackageParser$Package;->mOverlayPriority:I
+Landroid/content/pm/PackageParser$Package;->mOverlayTarget:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->mRealPackage:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->mRequiredAccountType:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->mRequiredForAllUsers:Z
+Landroid/content/pm/PackageParser$Package;->mRestrictedAccountType:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->mVersionCodeMajor:I
+Landroid/content/pm/PackageParser$Package;->parentPackage:Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser$Package;->preferredActivityFilters:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->readKeySetMapping(Landroid/os/Parcel;)Landroid/util/ArrayMap;
+Landroid/content/pm/PackageParser$Package;->restrictUpdateHash:[B
+Landroid/content/pm/PackageParser$Package;->setApplicationInfoBaseCodePath(Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setApplicationInfoBaseResourcePath(Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setApplicationInfoCodePath(Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setApplicationInfoFlags(II)V
+Landroid/content/pm/PackageParser$Package;->setApplicationInfoResourcePath(Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setApplicationInfoSplitCodePaths([Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setApplicationInfoSplitResourcePaths([Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setApplicationVolumeUuid(Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setBaseCodePath(Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setCodePath(Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)V
+Landroid/content/pm/PackageParser$Package;->setSplitCodePaths([Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->setUse32bitAbi(Z)V
+Landroid/content/pm/PackageParser$Package;->setVolumeUuid(Ljava/lang/String;)V
+Landroid/content/pm/PackageParser$Package;->splitCodePaths:[Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->splitFlags:[I
+Landroid/content/pm/PackageParser$Package;->splitNames:[Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->splitPrivateFlags:[I
+Landroid/content/pm/PackageParser$Package;->splitRevisionCodes:[I
+Landroid/content/pm/PackageParser$Package;->staticSharedLibName:Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->staticSharedLibVersion:J
+Landroid/content/pm/PackageParser$Package;->use32bitAbi:Z
+Landroid/content/pm/PackageParser$Package;->usesStaticLibraries:Ljava/util/ArrayList;
+Landroid/content/pm/PackageParser$Package;->usesStaticLibrariesCertDigests:[[Ljava/lang/String;
+Landroid/content/pm/PackageParser$Package;->usesStaticLibrariesVersions:[J
+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
+Landroid/content/pm/PackageParser$PackageLite;->codePath:Ljava/lang/String;
+Landroid/content/pm/PackageParser$PackageLite;->configForSplit:[Ljava/lang/String;
+Landroid/content/pm/PackageParser$PackageLite;->coreApp:Z
+Landroid/content/pm/PackageParser$PackageLite;->debuggable:Z
+Landroid/content/pm/PackageParser$PackageLite;->extractNativeLibs:Z
+Landroid/content/pm/PackageParser$PackageLite;->getAllCodePaths()Ljava/util/List;
+Landroid/content/pm/PackageParser$PackageLite;->isFeatureSplits:[Z
+Landroid/content/pm/PackageParser$PackageLite;->isolatedSplits:Z
+Landroid/content/pm/PackageParser$PackageLite;->multiArch:Z
+Landroid/content/pm/PackageParser$PackageLite;->splitCodePaths:[Ljava/lang/String;
+Landroid/content/pm/PackageParser$PackageLite;->splitNames:[Ljava/lang/String;
+Landroid/content/pm/PackageParser$PackageLite;->splitRevisionCodes:[I
+Landroid/content/pm/PackageParser$PackageLite;->use32bitAbi:Z
+Landroid/content/pm/PackageParser$PackageLite;->usesSplitNames:[Ljava/lang/String;
+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
+Landroid/content/pm/PackageParser$ParsePackageItemArgs;->labelRes:I
+Landroid/content/pm/PackageParser$ParsePackageItemArgs;->logoRes:I
+Landroid/content/pm/PackageParser$ParsePackageItemArgs;->nameRes:I
+Landroid/content/pm/PackageParser$ParsePackageItemArgs;->outError:[Ljava/lang/String;
+Landroid/content/pm/PackageParser$ParsePackageItemArgs;->owner:Landroid/content/pm/PackageParser$Package;
+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
+Landroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;ILandroid/util/ArraySet;[Landroid/content/pm/Signature;[I)V
+Landroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;I[Landroid/content/pm/Signature;[I)V
+Landroid/content/pm/PackageParser$SigningDetails;->checkCapability(Landroid/content/pm/PackageParser$SigningDetails;I)Z
+Landroid/content/pm/PackageParser$SigningDetails;->checkCapability(Ljava/lang/String;I)Z
+Landroid/content/pm/PackageParser$SigningDetails;->checkCapabilityRecover(Landroid/content/pm/PackageParser$SigningDetails;I)Z
+Landroid/content/pm/PackageParser$SigningDetails;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/content/pm/PackageParser$SigningDetails;->hasAncestor(Landroid/content/pm/PackageParser$SigningDetails;)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasAncestorOrSelf(Landroid/content/pm/PackageParser$SigningDetails;)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasCertificate(Landroid/content/pm/Signature;)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasCertificate(Landroid/content/pm/Signature;I)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasCertificate([B)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasCertificateInternal(Landroid/content/pm/Signature;I)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasPastSigningCertificates()Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasSha256Certificate([B)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasSha256Certificate([BI)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasSha256CertificateInternal([BI)Z
+Landroid/content/pm/PackageParser$SigningDetails;->hasSignatures()Z
+Landroid/content/pm/PackageParser$SigningDetails;->pastSigningCertificates:[Landroid/content/pm/Signature;
+Landroid/content/pm/PackageParser$SigningDetails;->pastSigningCertificatesFlags:[I
+Landroid/content/pm/PackageParser$SigningDetails;->PAST_CERT_EXISTS:I
+Landroid/content/pm/PackageParser$SigningDetails;->publicKeys:Landroid/util/ArraySet;
+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;
+Landroid/content/pm/PackageParser;->APK_FILE_EXTENSION:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/PackageParser;->buildCompoundName(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/PackageParser;->buildProcessName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;I[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/PackageParser;->buildTaskAffinityName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/PackageParser;->cacheResult(Ljava/io/File;ILandroid/content/pm/PackageParser$Package;)V
+Landroid/content/pm/PackageParser;->checkOverlayRequiredSystemProperty(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->checkUseInstalledOrHidden(ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;)Z
+Landroid/content/pm/PackageParser;->CHILD_PACKAGE_TAGS:Ljava/util/Set;
+Landroid/content/pm/PackageParser;->collectCertificatesInternal(Landroid/content/pm/PackageParser$Package;Z)V
+Landroid/content/pm/PackageParser;->computeMinSdkVersion(ILjava/lang/String;I[Ljava/lang/String;[Ljava/lang/String;)I
+Landroid/content/pm/PackageParser;->computeTargetSdkVersion(ILjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Z)I
+Landroid/content/pm/PackageParser;->copyNeeded(ILandroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageUserState;Landroid/os/Bundle;I)Z
+Landroid/content/pm/PackageParser;->DEBUG_BACKUP:Z
+Landroid/content/pm/PackageParser;->DEBUG_JAR:Z
+Landroid/content/pm/PackageParser;->DEBUG_PARSER:Z
+Landroid/content/pm/PackageParser;->DEFAULT_PRE_O_MAX_ASPECT_RATIO:F
+Landroid/content/pm/PackageParser;->fromCacheEntry([B)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser;->fromCacheEntryStatic([B)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser;->generateActivityInfo(Landroid/content/pm/ActivityInfo;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ActivityInfo;
+Landroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/ApplicationInfo;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ApplicationInfo;
+Landroid/content/pm/PackageParser;->getActivityConfigChanges(II)I
+Landroid/content/pm/PackageParser;->getCachedResult(Ljava/io/File;I)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser;->getCacheKey(Ljava/io/File;I)Ljava/lang/String;
+Landroid/content/pm/PackageParser;->hasDomainURLs(Landroid/content/pm/PackageParser$Package;)Z
+Landroid/content/pm/PackageParser;->isApkFile(Ljava/io/File;)Z
+Landroid/content/pm/PackageParser;->isApkPath(Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->isAvailable(Landroid/content/pm/PackageUserState;)Z
+Landroid/content/pm/PackageParser;->isCacheUpToDate(Ljava/io/File;Ljava/io/File;)Z
+Landroid/content/pm/PackageParser;->isImplicitlyExposedIntent(Landroid/content/pm/PackageParser$IntentInfo;)Z
+Landroid/content/pm/PackageParser;->LOG_PARSE_TIMINGS:Z
+Landroid/content/pm/PackageParser;->LOG_PARSE_TIMINGS_THRESHOLD_MS:I
+Landroid/content/pm/PackageParser;->LOG_UNSAFE_BROADCASTS:Z
+Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->mCacheDir:Ljava/io/File;
+Landroid/content/pm/PackageParser;->METADATA_MAX_ASPECT_RATIO:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->mMetrics:Landroid/util/DisplayMetrics;
+Landroid/content/pm/PackageParser;->MNT_EXPAND:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->mOnlyCoreApps:Z
+Landroid/content/pm/PackageParser;->mParseError:I
+Landroid/content/pm/PackageParser;->mParseInstrumentationArgs:Landroid/content/pm/PackageParser$ParsePackageItemArgs;
+Landroid/content/pm/PackageParser;->mSeparateProcesses:[Ljava/lang/String;
+Landroid/content/pm/PackageParser;->MULTI_PACKAGE_APK_ENABLED:Z
+Landroid/content/pm/PackageParser;->newConfiguredAssetManager()Landroid/content/res/AssetManager;
+Landroid/content/pm/PackageParser;->parseActivity(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;Landroid/content/pm/PackageParser$CachedComponentArgs;ZZ)Landroid/content/pm/PackageParser$Activity;
+Landroid/content/pm/PackageParser;->parseActivityAlias(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;Landroid/content/pm/PackageParser$CachedComponentArgs;)Landroid/content/pm/PackageParser$Activity;
+Landroid/content/pm/PackageParser;->parseAdditionalCertificates(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)[Ljava/lang/String;
+Landroid/content/pm/PackageParser;->parseAllMetaData(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Ljava/lang/String;Landroid/content/pm/PackageParser$Component;[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parseApkLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$ApkLite;
+Landroid/content/pm/PackageParser;->parseApkLite(Ljava/io/FileDescriptor;Ljava/lang/String;I)Landroid/content/pm/PackageParser$ApkLite;
+Landroid/content/pm/PackageParser;->parseApkLite(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/PackageParser$ApkLite;
+Landroid/content/pm/PackageParser;->parseApkLiteInner(Ljava/io/File;Ljava/io/FileDescriptor;Ljava/lang/String;I)Landroid/content/pm/PackageParser$ApkLite;
+Landroid/content/pm/PackageParser;->parseBaseApk(Ljava/io/File;Landroid/content/res/AssetManager;I)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser;->parseBaseApkChild(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parseBaseApkCommon(Landroid/content/pm/PackageParser$Package;Ljava/util/Set;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser;->parseClusterPackage(Ljava/io/File;I)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser;->parseClusterPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+Landroid/content/pm/PackageParser;->parseInstrumentation(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/PackageParser$Instrumentation;
+Landroid/content/pm/PackageParser;->parseIntent(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZZLandroid/content/pm/PackageParser$IntentInfo;[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parseKeySets(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parseLayout(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/pm/PackageParser$Activity;)V
+Landroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/content/pm/PackageParser;->parseMonolithicPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+Landroid/content/pm/PackageParser;->parsePackageItemInfo(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageItemInfo;[Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;ZIIIIII)Z
+Landroid/content/pm/PackageParser;->parsePackageSplitNames(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/util/Pair;
+Landroid/content/pm/PackageParser;->parsePermission(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parsePermissionGroup(Landroid/content/pm/PackageParser$Package;ILandroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parsePermissionTree(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parseProvider(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;Landroid/content/pm/PackageParser$CachedComponentArgs;)Landroid/content/pm/PackageParser$Provider;
+Landroid/content/pm/PackageParser;->parseProviderTags(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZLandroid/content/pm/PackageParser$Provider;[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parsePublicKey(Ljava/lang/String;)Ljava/security/PublicKey;
+Landroid/content/pm/PackageParser;->parseService(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;Landroid/content/pm/PackageParser$CachedComponentArgs;)Landroid/content/pm/PackageParser$Service;
+Landroid/content/pm/PackageParser;->parseSplitApk(Landroid/content/pm/PackageParser$Package;ILandroid/content/res/AssetManager;I)V
+Landroid/content/pm/PackageParser;->parseSplitApk(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;II[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
+Landroid/content/pm/PackageParser;->parseSplitApplication(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;II[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parseUsesFeature(Landroid/content/res/Resources;Landroid/util/AttributeSet;)Landroid/content/pm/FeatureInfo;
+Landroid/content/pm/PackageParser;->parseUsesPermission(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+Landroid/content/pm/PackageParser;->parseUsesStaticLibrary(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Z
+Landroid/content/pm/PackageParser;->parseVerifier(Landroid/util/AttributeSet;)Landroid/content/pm/VerifierInfo;
+Landroid/content/pm/PackageParser;->PARSE_CHATTY:I
+Landroid/content/pm/PackageParser;->PARSE_COLLECT_CERTIFICATES:I
+Landroid/content/pm/PackageParser;->PARSE_DEFAULT_INSTALL_LOCATION:I
+Landroid/content/pm/PackageParser;->PARSE_DEFAULT_TARGET_SANDBOX:I
+Landroid/content/pm/PackageParser;->PARSE_ENFORCE_CODE:I
+Landroid/content/pm/PackageParser;->PARSE_EXTERNAL_STORAGE:I
+Landroid/content/pm/PackageParser;->PARSE_FORCE_SDK:I
+Landroid/content/pm/PackageParser;->PARSE_FORWARD_LOCK:I
+Landroid/content/pm/PackageParser;->PARSE_IGNORE_PROCESSES:I
+Landroid/content/pm/PackageParser;->PARSE_IS_SYSTEM_DIR:I
+Landroid/content/pm/PackageParser;->PARSE_MUST_BE_APK:I
+Landroid/content/pm/PackageParser;->PROPERTY_CHILD_PACKAGES_ENABLED:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->RECREATE_ON_CONFIG_CHANGES_MASK:I
+Landroid/content/pm/PackageParser;->RIGID_PARSER:Z
+Landroid/content/pm/PackageParser;->SAFE_BROADCASTS:Ljava/util/Set;
+Landroid/content/pm/PackageParser;->sCachedPackageReadCount:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/content/pm/PackageParser;->sCompatibilityModeEnabled:Z
+Landroid/content/pm/PackageParser;->SDK_CODENAMES:[Ljava/lang/String;
+Landroid/content/pm/PackageParser;->SDK_VERSION:I
+Landroid/content/pm/PackageParser;->setActivityResizeMode(Landroid/content/pm/ActivityInfo;Landroid/content/res/TypedArray;Landroid/content/pm/PackageParser$Package;)V
+Landroid/content/pm/PackageParser;->setCacheDir(Ljava/io/File;)V
+Landroid/content/pm/PackageParser;->setCallback(Landroid/content/pm/PackageParser$Callback;)V
+Landroid/content/pm/PackageParser;->setDisplayMetrics(Landroid/util/DisplayMetrics;)V
+Landroid/content/pm/PackageParser;->setMaxAspectRatio(Landroid/content/pm/PackageParser$Package;)V
+Landroid/content/pm/PackageParser;->setOnlyCoreApps(Z)V
+Landroid/content/pm/PackageParser;->SPLIT_PERMISSIONS:[Landroid/content/pm/PackageParser$SplitPermissionInfo;
+Landroid/content/pm/PackageParser;->sSplitNameComparator:Ljava/util/Comparator;
+Landroid/content/pm/PackageParser;->TAG:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_ADOPT_PERMISSIONS:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_APPLICATION:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_COMPATIBLE_SCREENS:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_EAT_COMMENT:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_FEATURE_GROUP:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_INSTRUMENTATION:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_KEY_SETS:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_MANIFEST:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_ORIGINAL_PACKAGE:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_OVERLAY:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_PACKAGE:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_PACKAGE_VERIFIER:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_PERMISSION:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_PERMISSION_GROUP:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_PERMISSION_TREE:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_PROTECTED_BROADCAST:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_RESTRICT_UPDATE:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_SUPPORTS_INPUT:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_SUPPORT_SCREENS:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_USES_CONFIGURATION:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_USES_FEATURE:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_USES_GL_TEXTURE:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_USES_PERMISSION:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_USES_PERMISSION_SDK_23:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_USES_PERMISSION_SDK_M:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_USES_SDK:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->TAG_USES_SPLIT:Ljava/lang/String;
+Landroid/content/pm/PackageParser;->toCacheEntry(Landroid/content/pm/PackageParser$Package;)[B
+Landroid/content/pm/PackageParser;->toCacheEntryStatic(Landroid/content/pm/PackageParser$Package;)[B
+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;
+Landroid/content/pm/PackageParserCacheHelper$WriteHelper;->mParcel:Landroid/os/Parcel;
+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
+Landroid/content/pm/PackageSharedLibraryUpdater;->prefix(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList;
+Landroid/content/pm/PackageSharedLibraryUpdater;->prefixImplicitDependency(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/content/pm/PackageSharedLibraryUpdater;->prefixRequiredLibrary(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;)V
+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
+Landroid/content/pm/PackageUserState;->ceDataInode:J
+Landroid/content/pm/PackageUserState;->dialogMessage:Ljava/lang/String;
+Landroid/content/pm/PackageUserState;->disabledComponents:Landroid/util/ArraySet;
+Landroid/content/pm/PackageUserState;->domainVerificationStatus:I
+Landroid/content/pm/PackageUserState;->enabled:I
+Landroid/content/pm/PackageUserState;->enabledComponents:Landroid/util/ArraySet;
+Landroid/content/pm/PackageUserState;->harmfulAppWarning:Ljava/lang/String;
+Landroid/content/pm/PackageUserState;->hidden:Z
+Landroid/content/pm/PackageUserState;->installed:Z
+Landroid/content/pm/PackageUserState;->installReason:I
+Landroid/content/pm/PackageUserState;->instantApp:Z
+Landroid/content/pm/PackageUserState;->isAvailable(I)Z
+Landroid/content/pm/PackageUserState;->isEnabled(Landroid/content/pm/ComponentInfo;I)Z
+Landroid/content/pm/PackageUserState;->isMatch(Landroid/content/pm/ComponentInfo;I)Z
+Landroid/content/pm/PackageUserState;->lastDisableAppCaller:Ljava/lang/String;
+Landroid/content/pm/PackageUserState;->notLaunched:Z
+Landroid/content/pm/PackageUserState;->overlayPaths:[Ljava/lang/String;
+Landroid/content/pm/PackageUserState;->stopped:Z
+Landroid/content/pm/PackageUserState;->suspended:Z
+Landroid/content/pm/PackageUserState;->suspendedAppExtras:Landroid/os/PersistableBundle;
+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
+Landroid/content/pm/permission/RuntimePermissionPresentationInfo;->FLAG_GRANTED:I
+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;
+Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->mLock:Ljava/lang/Object;
+Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->mPendingWork:Ljava/util/List;
+Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->mRemoteInstance:Landroid/content/pm/permission/IRuntimePermissionPresenter;
+Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->MSG_GET_APPS_USING_PERMISSIONS:I
+Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->MSG_GET_APP_PERMISSIONS:I
+Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->MSG_REVOKE_APP_PERMISSIONS:I
+Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->MSG_UNBIND:I
+Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->processMessage(Landroid/os/Message;)V
+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;
+Landroid/content/pm/permission/RuntimePermissionPresenter;->KEY_RESULT:Ljava/lang/String;
+Landroid/content/pm/permission/RuntimePermissionPresenter;->mRemoteService:Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;
+Landroid/content/pm/permission/RuntimePermissionPresenter;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/content/pm/permission/RuntimePermissionPresenter;->sInstance:Landroid/content/pm/permission/RuntimePermissionPresenter;
+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
+Landroid/content/pm/PermissionInfo;->isAppOp()Z
+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
+Landroid/content/pm/RegisteredServicesCache;->createFileForUser(I)Landroid/util/AtomicFile;
+Landroid/content/pm/RegisteredServicesCache;->DEBUG:Z
+Landroid/content/pm/RegisteredServicesCache;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;I)V
+Landroid/content/pm/RegisteredServicesCache;->findOrCreateUserLocked(I)Landroid/content/pm/RegisteredServicesCache$UserServices;
+Landroid/content/pm/RegisteredServicesCache;->findOrCreateUserLocked(IZ)Landroid/content/pm/RegisteredServicesCache$UserServices;
+Landroid/content/pm/RegisteredServicesCache;->generateServicesMap([II)V
+Landroid/content/pm/RegisteredServicesCache;->getAllServices(I)Ljava/util/Collection;
+Landroid/content/pm/RegisteredServicesCache;->getBindInstantServiceAllowed(I)Z
+Landroid/content/pm/RegisteredServicesCache;->getDataDirectory()Ljava/io/File;
+Landroid/content/pm/RegisteredServicesCache;->getListener()Landroid/content/pm/RegisteredServicesCacheListener;
+Landroid/content/pm/RegisteredServicesCache;->getPersistentServices(I)Ljava/util/Map;
+Landroid/content/pm/RegisteredServicesCache;->getServiceInfo(Ljava/lang/Object;I)Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
+Landroid/content/pm/RegisteredServicesCache;->getUser(I)Landroid/content/pm/UserInfo;
+Landroid/content/pm/RegisteredServicesCache;->getUsers()Ljava/util/List;
+Landroid/content/pm/RegisteredServicesCache;->getUserSystemDirectory(I)Ljava/io/File;
+Landroid/content/pm/RegisteredServicesCache;->handlePackageEvent(Landroid/content/Intent;I)V
+Landroid/content/pm/RegisteredServicesCache;->inSystemImage(I)Z
+Landroid/content/pm/RegisteredServicesCache;->invalidateCache(I)V
+Landroid/content/pm/RegisteredServicesCache;->mAttributesName:Ljava/lang/String;
+Landroid/content/pm/RegisteredServicesCache;->mContext:Landroid/content/Context;
+Landroid/content/pm/RegisteredServicesCache;->mExternalReceiver:Landroid/content/BroadcastReceiver;
+Landroid/content/pm/RegisteredServicesCache;->mHandler:Landroid/os/Handler;
+Landroid/content/pm/RegisteredServicesCache;->migrateIfNecessaryLocked()V
+Landroid/content/pm/RegisteredServicesCache;->mInterfaceName:Ljava/lang/String;
+Landroid/content/pm/RegisteredServicesCache;->mListener:Landroid/content/pm/RegisteredServicesCacheListener;
+Landroid/content/pm/RegisteredServicesCache;->mMetaDataName:Ljava/lang/String;
+Landroid/content/pm/RegisteredServicesCache;->mPackageReceiver:Landroid/content/BroadcastReceiver;
+Landroid/content/pm/RegisteredServicesCache;->mSerializerAndParser:Landroid/content/pm/XmlSerializerAndParser;
+Landroid/content/pm/RegisteredServicesCache;->mServicesLock:Ljava/lang/Object;
+Landroid/content/pm/RegisteredServicesCache;->mUserRemovedReceiver:Landroid/content/BroadcastReceiver;
+Landroid/content/pm/RegisteredServicesCache;->mUserServices:Landroid/util/SparseArray;
+Landroid/content/pm/RegisteredServicesCache;->notifyListener(Ljava/lang/Object;IZ)V
+Landroid/content/pm/RegisteredServicesCache;->onServicesChangedLocked(I)V
+Landroid/content/pm/RegisteredServicesCache;->onUserRemoved(I)V
+Landroid/content/pm/RegisteredServicesCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Ljava/lang/Object;
+Landroid/content/pm/RegisteredServicesCache;->parseServiceInfo(Landroid/content/pm/ResolveInfo;)Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
+Landroid/content/pm/RegisteredServicesCache;->queryIntentServices(I)Ljava/util/List;
+Landroid/content/pm/RegisteredServicesCache;->readPersistentServicesLocked(Ljava/io/InputStream;)V
+Landroid/content/pm/RegisteredServicesCache;->REGISTERED_SERVICES_DIR:Ljava/lang/String;
+Landroid/content/pm/RegisteredServicesCache;->setBindInstantServiceAllowed(IZ)V
+Landroid/content/pm/RegisteredServicesCache;->setListener(Landroid/content/pm/RegisteredServicesCacheListener;Landroid/os/Handler;)V
+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;
+Landroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/ResolveInfo;->auxiliaryInfo:Landroid/content/pm/AuxiliaryResolveInfo;
+Landroid/content/pm/ResolveInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
+Landroid/content/pm/ResolveInfo;->getIconResourceInternal()I
+Landroid/content/pm/ResolveInfo;->iconResourceId:I
+Landroid/content/pm/ResolveInfo;->noResourceId:Z
+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;
+Landroid/content/pm/SELinuxUtil;->INSTANT_APP_STR:Ljava/lang/String;
+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;
+Landroid/content/pm/SharedLibraryInfo;->mDependentPackages:Ljava/util/List;
+Landroid/content/pm/SharedLibraryInfo;->mName:Ljava/lang/String;
+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;
+Landroid/content/pm/SharedLibraryNames;->ANDROID_TEST_RUNNER:Ljava/lang/String;
+Landroid/content/pm/SharedLibraryNames;->ORG_APACHE_HTTP_LEGACY:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo$Builder;-><init>(Landroid/content/Context;)V
+Landroid/content/pm/ShortcutInfo$Builder;->mActivity:Landroid/content/ComponentName;
+Landroid/content/pm/ShortcutInfo$Builder;->mCategories:Ljava/util/Set;
+Landroid/content/pm/ShortcutInfo$Builder;->mContext:Landroid/content/Context;
+Landroid/content/pm/ShortcutInfo$Builder;->mDisabledMessage:Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo$Builder;->mDisabledMessageResId:I
+Landroid/content/pm/ShortcutInfo$Builder;->mExtras:Landroid/os/PersistableBundle;
+Landroid/content/pm/ShortcutInfo$Builder;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/content/pm/ShortcutInfo$Builder;->mId:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo$Builder;->mIntents:[Landroid/content/Intent;
+Landroid/content/pm/ShortcutInfo$Builder;->mRank:I
+Landroid/content/pm/ShortcutInfo$Builder;->mText:Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo$Builder;->mTextResId:I
+Landroid/content/pm/ShortcutInfo$Builder;->mTitle:Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo$Builder;->mTitleResId:I
+Landroid/content/pm/ShortcutInfo$Builder;->setDisabledMessageResId(I)Landroid/content/pm/ShortcutInfo$Builder;
+Landroid/content/pm/ShortcutInfo$Builder;->setId(Ljava/lang/String;)Landroid/content/pm/ShortcutInfo$Builder;
+Landroid/content/pm/ShortcutInfo$Builder;->setLongLabelResId(I)Landroid/content/pm/ShortcutInfo$Builder;
+Landroid/content/pm/ShortcutInfo$Builder;->setShortLabelResId(I)Landroid/content/pm/ShortcutInfo$Builder;
+Landroid/content/pm/ShortcutInfo$Builder;->setText(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;
+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
+Landroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/ShortcutInfo;->addFlags(I)V
+Landroid/content/pm/ShortcutInfo;->addIndentOrComma(Ljava/lang/StringBuilder;Ljava/lang/String;)V
+Landroid/content/pm/ShortcutInfo;->ANDROID_PACKAGE_NAME:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->clearFlags(I)V
+Landroid/content/pm/ShortcutInfo;->clearIcon()V
+Landroid/content/pm/ShortcutInfo;->clearIconPendingSave()V
+Landroid/content/pm/ShortcutInfo;->clearImplicitRankAndRankChangedFlag()V
+Landroid/content/pm/ShortcutInfo;->clone(I)Landroid/content/pm/ShortcutInfo;
+Landroid/content/pm/ShortcutInfo;->cloneCategories(Ljava/util/Set;)Landroid/util/ArraySet;
+Landroid/content/pm/ShortcutInfo;->cloneIntents([Landroid/content/Intent;)[Landroid/content/Intent;
+Landroid/content/pm/ShortcutInfo;->clonePersistableBundle([Landroid/os/PersistableBundle;)[Landroid/os/PersistableBundle;
+Landroid/content/pm/ShortcutInfo;->CLONE_REMOVE_FOR_CREATOR:I
+Landroid/content/pm/ShortcutInfo;->CLONE_REMOVE_FOR_LAUNCHER:I
+Landroid/content/pm/ShortcutInfo;->CLONE_REMOVE_FOR_LAUNCHER_APPROVAL:I
+Landroid/content/pm/ShortcutInfo;->CLONE_REMOVE_ICON:I
+Landroid/content/pm/ShortcutInfo;->CLONE_REMOVE_INTENT:I
+Landroid/content/pm/ShortcutInfo;->CLONE_REMOVE_NON_KEY_INFO:I
+Landroid/content/pm/ShortcutInfo;->CLONE_REMOVE_RES_NAMES:I
+Landroid/content/pm/ShortcutInfo;->copyNonNullFieldsFrom(Landroid/content/pm/ShortcutInfo;)V
+Landroid/content/pm/ShortcutInfo;->DISABLED_REASON_RESTORE_ISSUE_START:I
+Landroid/content/pm/ShortcutInfo;->enforceMandatoryFields(Z)V
+Landroid/content/pm/ShortcutInfo;->ensureUpdatableWith(Landroid/content/pm/ShortcutInfo;Z)V
+Landroid/content/pm/ShortcutInfo;->fixUpIntentExtras()V
+Landroid/content/pm/ShortcutInfo;->FLAG_ADAPTIVE_BITMAP:I
+Landroid/content/pm/ShortcutInfo;->FLAG_DISABLED:I
+Landroid/content/pm/ShortcutInfo;->FLAG_DYNAMIC:I
+Landroid/content/pm/ShortcutInfo;->FLAG_HAS_ICON_FILE:I
+Landroid/content/pm/ShortcutInfo;->FLAG_HAS_ICON_RES:I
+Landroid/content/pm/ShortcutInfo;->FLAG_ICON_FILE_PENDING_SAVE:I
+Landroid/content/pm/ShortcutInfo;->FLAG_IMMUTABLE:I
+Landroid/content/pm/ShortcutInfo;->FLAG_KEY_FIELDS_ONLY:I
+Landroid/content/pm/ShortcutInfo;->FLAG_MANIFEST:I
+Landroid/content/pm/ShortcutInfo;->FLAG_PINNED:I
+Landroid/content/pm/ShortcutInfo;->FLAG_RETURNED_BY_SERVICE:I
+Landroid/content/pm/ShortcutInfo;->FLAG_SHADOW:I
+Landroid/content/pm/ShortcutInfo;->FLAG_STRINGS_RESOLVED:I
+Landroid/content/pm/ShortcutInfo;->getBitmapPath()Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getDisabledMessageResName()Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getDisabledMessageResourceId()I
+Landroid/content/pm/ShortcutInfo;->getDisabledReasonDebugString(I)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getDisabledReasonForRestoreIssue(Landroid/content/Context;I)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getFlags()I
+Landroid/content/pm/ShortcutInfo;->getIconResName()Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getIconResourceId()I
+Landroid/content/pm/ShortcutInfo;->getImplicitRank()I
+Landroid/content/pm/ShortcutInfo;->getIntentPersistableExtrases()[Landroid/os/PersistableBundle;
+Landroid/content/pm/ShortcutInfo;->getIntentsNoExtras()[Landroid/content/Intent;
+Landroid/content/pm/ShortcutInfo;->getInvalidIconException()Ljava/lang/IllegalArgumentException;
+Landroid/content/pm/ShortcutInfo;->getLongLabelResourceId()I
+Landroid/content/pm/ShortcutInfo;->getResourceEntryName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getResourcePackageName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getResourceString(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo;->getResourceTypeAndEntryName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getResourceTypeName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getShortLabelResourceId()I
+Landroid/content/pm/ShortcutInfo;->getText()Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo;->getTextResId()I
+Landroid/content/pm/ShortcutInfo;->getTextResName()Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getTitle()Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo;->getTitleResId()I
+Landroid/content/pm/ShortcutInfo;->getTitleResName()Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->getUserId()I
+Landroid/content/pm/ShortcutInfo;->hasAdaptiveBitmap()Z
+Landroid/content/pm/ShortcutInfo;->hasAnyResources()Z
+Landroid/content/pm/ShortcutInfo;->hasFlags(I)Z
+Landroid/content/pm/ShortcutInfo;->hasIconFile()Z
+Landroid/content/pm/ShortcutInfo;->hasIconResource()Z
+Landroid/content/pm/ShortcutInfo;->hasRank()Z
+Landroid/content/pm/ShortcutInfo;->hasStringResources()Z
+Landroid/content/pm/ShortcutInfo;->hasStringResourcesResolved()Z
+Landroid/content/pm/ShortcutInfo;->IMPLICIT_RANK_MASK:I
+Landroid/content/pm/ShortcutInfo;->isAlive()Z
+Landroid/content/pm/ShortcutInfo;->isDisabledForRestoreIssue(I)Z
+Landroid/content/pm/ShortcutInfo;->isDynamicVisible()Z
+Landroid/content/pm/ShortcutInfo;->isFloating()Z
+Landroid/content/pm/ShortcutInfo;->isIconPendingSave()Z
+Landroid/content/pm/ShortcutInfo;->isManifestShortcut()Z
+Landroid/content/pm/ShortcutInfo;->isManifestVisible()Z
+Landroid/content/pm/ShortcutInfo;->isOriginallyFromManifest()Z
+Landroid/content/pm/ShortcutInfo;->isPinnedVisible()Z
+Landroid/content/pm/ShortcutInfo;->isRankChanged()Z
+Landroid/content/pm/ShortcutInfo;->isReturnedByServer()Z
+Landroid/content/pm/ShortcutInfo;->lookupAndFillInResourceIds(Landroid/content/res/Resources;)V
+Landroid/content/pm/ShortcutInfo;->lookupAndFillInResourceNames(Landroid/content/res/Resources;)V
+Landroid/content/pm/ShortcutInfo;->lookUpResourceId(Landroid/content/res/Resources;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/content/pm/ShortcutInfo;->lookUpResourceName(Landroid/content/res/Resources;IZLjava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->mActivity:Landroid/content/ComponentName;
+Landroid/content/pm/ShortcutInfo;->mBitmapPath:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->mCategories:Landroid/util/ArraySet;
+Landroid/content/pm/ShortcutInfo;->mDisabledMessage:Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo;->mDisabledMessageResId:I
+Landroid/content/pm/ShortcutInfo;->mDisabledMessageResName:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->mDisabledReason:I
+Landroid/content/pm/ShortcutInfo;->mExtras:Landroid/os/PersistableBundle;
+Landroid/content/pm/ShortcutInfo;->mFlags:I
+Landroid/content/pm/ShortcutInfo;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/content/pm/ShortcutInfo;->mIconResId:I
+Landroid/content/pm/ShortcutInfo;->mIconResName:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->mId:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->mImplicitRank:I
+Landroid/content/pm/ShortcutInfo;->mIntentPersistableExtrases:[Landroid/os/PersistableBundle;
+Landroid/content/pm/ShortcutInfo;->mIntents:[Landroid/content/Intent;
+Landroid/content/pm/ShortcutInfo;->mLastChangedTimestamp:J
+Landroid/content/pm/ShortcutInfo;->mPackageName:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->mRank:I
+Landroid/content/pm/ShortcutInfo;->mText:Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo;->mTextResId:I
+Landroid/content/pm/ShortcutInfo;->mTextResName:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->mTitle:Ljava/lang/CharSequence;
+Landroid/content/pm/ShortcutInfo;->mTitleResId:I
+Landroid/content/pm/ShortcutInfo;->mTitleResName:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->mUserId:I
+Landroid/content/pm/ShortcutInfo;->RANK_CHANGED_BIT:I
+Landroid/content/pm/ShortcutInfo;->RANK_NOT_SET:I
+Landroid/content/pm/ShortcutInfo;->replaceFlags(I)V
+Landroid/content/pm/ShortcutInfo;->resolveResourceStrings(Landroid/content/res/Resources;)V
+Landroid/content/pm/ShortcutInfo;->RES_TYPE_STRING:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->setActivity(Landroid/content/ComponentName;)V
+Landroid/content/pm/ShortcutInfo;->setBitmapPath(Ljava/lang/String;)V
+Landroid/content/pm/ShortcutInfo;->setCategories(Ljava/util/Set;)V
+Landroid/content/pm/ShortcutInfo;->setDisabledMessage(Ljava/lang/String;)V
+Landroid/content/pm/ShortcutInfo;->setDisabledMessageResId(I)V
+Landroid/content/pm/ShortcutInfo;->setDisabledMessageResName(Ljava/lang/String;)V
+Landroid/content/pm/ShortcutInfo;->setDisabledReason(I)V
+Landroid/content/pm/ShortcutInfo;->setIconPendingSave()V
+Landroid/content/pm/ShortcutInfo;->setIconResName(Ljava/lang/String;)V
+Landroid/content/pm/ShortcutInfo;->setIconResourceId(I)V
+Landroid/content/pm/ShortcutInfo;->setImplicitRank(I)V
+Landroid/content/pm/ShortcutInfo;->setIntentExtras(Landroid/content/Intent;Landroid/os/PersistableBundle;)Landroid/content/Intent;
+Landroid/content/pm/ShortcutInfo;->setIntents([Landroid/content/Intent;)V
+Landroid/content/pm/ShortcutInfo;->setRank(I)V
+Landroid/content/pm/ShortcutInfo;->setRankChanged()V
+Landroid/content/pm/ShortcutInfo;->setReturnedByServer()V
+Landroid/content/pm/ShortcutInfo;->setTextResName(Ljava/lang/String;)V
+Landroid/content/pm/ShortcutInfo;->setTimestamp(J)V
+Landroid/content/pm/ShortcutInfo;->setTitleResName(Ljava/lang/String;)V
+Landroid/content/pm/ShortcutInfo;->TAG:Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->toDumpString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->toInsecureString()Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->toStringInner(ZZLjava/lang/String;)Ljava/lang/String;
+Landroid/content/pm/ShortcutInfo;->updateTimestamp()V
+Landroid/content/pm/ShortcutInfo;->usesQuota()Z
+Landroid/content/pm/ShortcutInfo;->validateIcon(Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
+Landroid/content/pm/ShortcutInfo;->VERSION_CODE_UNKNOWN:I
+Landroid/content/pm/ShortcutManager;-><init>(Landroid/content/Context;Landroid/content/pm/IShortcutService;)V
+Landroid/content/pm/ShortcutManager;->disableShortcuts(Ljava/util/List;I)V
+Landroid/content/pm/ShortcutManager;->disableShortcuts(Ljava/util/List;Ljava/lang/String;)V
+Landroid/content/pm/ShortcutManager;->getMaxShortcutCountForActivity()I
+Landroid/content/pm/ShortcutManager;->getRateLimitResetTime()J
+Landroid/content/pm/ShortcutManager;->getRemainingCallCount()I
+Landroid/content/pm/ShortcutManager;->injectMyUserId()I
+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;
+Landroid/content/pm/ShortcutServiceInternal;->getShortcutIconFd(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+Landroid/content/pm/ShortcutServiceInternal;->getShortcutIconResId(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/content/pm/ShortcutServiceInternal;->getShortcuts(ILjava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;IIII)Ljava/util/List;
+Landroid/content/pm/ShortcutServiceInternal;->hasShortcutHostPermission(ILjava/lang/String;II)Z
+Landroid/content/pm/ShortcutServiceInternal;->isForegroundDefaultLauncher(Ljava/lang/String;I)Z
+Landroid/content/pm/ShortcutServiceInternal;->isPinnedByCaller(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/content/pm/ShortcutServiceInternal;->isRequestPinItemSupported(II)Z
+Landroid/content/pm/ShortcutServiceInternal;->pinShortcuts(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;I)V
+Landroid/content/pm/ShortcutServiceInternal;->requestPinAppWidget(Ljava/lang/String;Landroid/appwidget/AppWidgetProviderInfo;Landroid/os/Bundle;Landroid/content/IntentSender;I)Z
+Landroid/content/pm/ShortcutServiceInternal;->setShortcutHostPackage(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/content/pm/Signature;-><init>(Landroid/os/Parcel;)V
+Landroid/content/pm/Signature;-><init>([Ljava/security/cert/Certificate;)V
+Landroid/content/pm/Signature;->areEffectiveMatch(Landroid/content/pm/Signature;Landroid/content/pm/Signature;)Z
+Landroid/content/pm/Signature;->areEffectiveMatch([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
+Landroid/content/pm/Signature;->areExactMatch([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
+Landroid/content/pm/Signature;->bounce(Ljava/security/cert/CertificateFactory;Landroid/content/pm/Signature;)Landroid/content/pm/Signature;
+Landroid/content/pm/Signature;->getChainSignatures()[Landroid/content/pm/Signature;
+Landroid/content/pm/Signature;->mCertificateChain:[Ljava/security/cert/Certificate;
+Landroid/content/pm/Signature;->mHashCode:I
+Landroid/content/pm/Signature;->mHaveHashCode:Z
+Landroid/content/pm/Signature;->mSignature:[B
+Landroid/content/pm/Signature;->mStringRef:Ljava/lang/ref/SoftReference;
+Landroid/content/pm/Signature;->parseHexDigit(I)I
+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;
+Landroid/content/pm/StringParceledListSlice;->emptyList()Landroid/content/pm/StringParceledListSlice;
+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
+Landroid/content/pm/UserInfo;->canHaveProfile()Z
+Landroid/content/pm/UserInfo;->FLAG_ADMIN:I
+Landroid/content/pm/UserInfo;->FLAG_DEMO:I
+Landroid/content/pm/UserInfo;->FLAG_DISABLED:I
+Landroid/content/pm/UserInfo;->FLAG_EPHEMERAL:I
+Landroid/content/pm/UserInfo;->FLAG_GUEST:I
+Landroid/content/pm/UserInfo;->FLAG_INITIALIZED:I
+Landroid/content/pm/UserInfo;->FLAG_MANAGED_PROFILE:I
+Landroid/content/pm/UserInfo;->FLAG_MASK_USER_TYPE:I
+Landroid/content/pm/UserInfo;->FLAG_QUIET_MODE:I
+Landroid/content/pm/UserInfo;->FLAG_RESTRICTED:I
+Landroid/content/pm/UserInfo;->isDemo()Z
+Landroid/content/pm/UserInfo;->isEphemeral()Z
+Landroid/content/pm/UserInfo;->isInitialized()Z
+Landroid/content/pm/UserInfo;->isQuietModeEnabled()Z
+Landroid/content/pm/UserInfo;->isSystemOnly()Z
+Landroid/content/pm/UserInfo;->isSystemOnly(I)Z
+Landroid/content/pm/UserInfo;->lastLoggedInFingerprint:Ljava/lang/String;
+Landroid/content/pm/UserInfo;->NO_PROFILE_GROUP_ID:I
+Landroid/content/pm/UserInfo;->profileBadge:I
+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;
+Landroid/content/pm/VerificationParams;->getInstallerUid()I
+Landroid/content/pm/VerificationParams;->getOriginatingUid()I
+Landroid/content/pm/VerificationParams;->getOriginatingURI()Landroid/net/Uri;
+Landroid/content/pm/VerificationParams;->getReferrer()Landroid/net/Uri;
+Landroid/content/pm/VerificationParams;->getVerificationURI()Landroid/net/Uri;
+Landroid/content/pm/VerificationParams;->mInstallerUid:I
+Landroid/content/pm/VerificationParams;->mOriginatingUid:I
+Landroid/content/pm/VerificationParams;->mOriginatingURI:Landroid/net/Uri;
+Landroid/content/pm/VerificationParams;->mReferrer:Landroid/net/Uri;
+Landroid/content/pm/VerificationParams;->mVerificationURI:Landroid/net/Uri;
+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;
+Landroid/content/pm/VerifierDeviceIdentity;->decodeBase32([B)J
+Landroid/content/pm/VerifierDeviceIdentity;->ENCODE:[C
+Landroid/content/pm/VerifierDeviceIdentity;->encodeBase32(J)Ljava/lang/String;
+Landroid/content/pm/VerifierDeviceIdentity;->generate()Landroid/content/pm/VerifierDeviceIdentity;
+Landroid/content/pm/VerifierDeviceIdentity;->generate(Ljava/util/Random;)Landroid/content/pm/VerifierDeviceIdentity;
+Landroid/content/pm/VerifierDeviceIdentity;->GROUP_SIZE:I
+Landroid/content/pm/VerifierDeviceIdentity;->LONG_SIZE:I
+Landroid/content/pm/VerifierDeviceIdentity;->mIdentity:J
+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;
+Landroid/content/res/ApkAssets;->isUpToDate()Z
+Landroid/content/res/ApkAssets;->loadFromFd(Ljava/io/FileDescriptor;Ljava/lang/String;ZZ)Landroid/content/res/ApkAssets;
+Landroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;)Landroid/content/res/ApkAssets;
+Landroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;Z)Landroid/content/res/ApkAssets;
+Landroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;ZZ)Landroid/content/res/ApkAssets;
+Landroid/content/res/ApkAssets;->loadOverlayFromPath(Ljava/lang/String;Z)Landroid/content/res/ApkAssets;
+Landroid/content/res/ApkAssets;->mNativePtr:J
+Landroid/content/res/ApkAssets;->mStringBlock:Landroid/content/res/StringBlock;
+Landroid/content/res/ApkAssets;->nativeDestroy(J)V
+Landroid/content/res/ApkAssets;->nativeGetAssetPath(J)Ljava/lang/String;
+Landroid/content/res/ApkAssets;->nativeGetStringBlock(J)J
+Landroid/content/res/ApkAssets;->nativeIsUpToDate(J)Z
+Landroid/content/res/ApkAssets;->nativeLoad(Ljava/lang/String;ZZZ)J
+Landroid/content/res/ApkAssets;->nativeLoadFromFd(Ljava/io/FileDescriptor;Ljava/lang/String;ZZ)J
+Landroid/content/res/ApkAssets;->nativeOpenXml(JLjava/lang/String;)J
+Landroid/content/res/ApkAssets;->openXml(Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
+Landroid/content/res/AssetFileDescriptor$AutoCloseInputStream;->mRemaining:J
+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;
+Landroid/content/res/AssetManager$Builder;->mUserApkAssets:Ljava/util/ArrayList;
+Landroid/content/res/AssetManager;-><init>(Z)V
+Landroid/content/res/AssetManager;->addAssetPathInternal(Ljava/lang/String;ZZ)I
+Landroid/content/res/AssetManager;->applyStyleToTheme(JIZ)V
+Landroid/content/res/AssetManager;->createSystemAssetsInZygoteLocked()V
+Landroid/content/res/AssetManager;->DEBUG_REFS:Z
+Landroid/content/res/AssetManager;->decRefsLocked(J)V
+Landroid/content/res/AssetManager;->dumpTheme(JILjava/lang/String;Ljava/lang/String;)V
+Landroid/content/res/AssetManager;->ensureOpenLocked()V
+Landroid/content/res/AssetManager;->ensureValidLocked()V
+Landroid/content/res/AssetManager;->findCookieForPath(Ljava/lang/String;)I
+Landroid/content/res/AssetManager;->FRAMEWORK_APK_PATH:Ljava/lang/String;
+Landroid/content/res/AssetManager;->getAssetAllocations()Ljava/lang/String;
+Landroid/content/res/AssetManager;->getNonSystemLocales()[Ljava/lang/String;
+Landroid/content/res/AssetManager;->getPooledStringForCookie(II)Ljava/lang/CharSequence;
+Landroid/content/res/AssetManager;->getResourceArray(I[I)I
+Landroid/content/res/AssetManager;->getResourceArraySize(I)I
+Landroid/content/res/AssetManager;->getResourceIntArray(I)[I
+Landroid/content/res/AssetManager;->getResourceStringArray(I)[Ljava/lang/String;
+Landroid/content/res/AssetManager;->getResourceTextArray(I)[Ljava/lang/CharSequence;
+Landroid/content/res/AssetManager;->getSizeConfigurations()[Landroid/content/res/Configuration;
+Landroid/content/res/AssetManager;->getStyleAttributes(I)[I
+Landroid/content/res/AssetManager;->getThemeValue(JILandroid/util/TypedValue;Z)Z
+Landroid/content/res/AssetManager;->incRefsLocked(J)V
+Landroid/content/res/AssetManager;->invalidateCachesLocked(I)V
+Landroid/content/res/AssetManager;->loadStaticRuntimeOverlays(Ljava/util/ArrayList;)V
+Landroid/content/res/AssetManager;->mApkAssets:[Landroid/content/res/ApkAssets;
+Landroid/content/res/AssetManager;->mNumRefs:I
+Landroid/content/res/AssetManager;->mOffsets:[J
+Landroid/content/res/AssetManager;->mOpen:Z
+Landroid/content/res/AssetManager;->mRefStacks:Ljava/util/HashMap;
+Landroid/content/res/AssetManager;->mValue:Landroid/util/TypedValue;
+Landroid/content/res/AssetManager;->nativeApplyStyle(JJIIJ[IJJ)V
+Landroid/content/res/AssetManager;->nativeAssetDestroy(J)V
+Landroid/content/res/AssetManager;->nativeAssetGetLength(J)J
+Landroid/content/res/AssetManager;->nativeAssetGetRemainingLength(J)J
+Landroid/content/res/AssetManager;->nativeAssetRead(J[BII)I
+Landroid/content/res/AssetManager;->nativeAssetReadChar(J)I
+Landroid/content/res/AssetManager;->nativeAssetSeek(JJI)J
+Landroid/content/res/AssetManager;->nativeCreate()J
+Landroid/content/res/AssetManager;->nativeDestroy(J)V
+Landroid/content/res/AssetManager;->nativeGetAssignedPackageIdentifiers(J)Landroid/util/SparseArray;
+Landroid/content/res/AssetManager;->nativeGetLocales(JZ)[Ljava/lang/String;
+Landroid/content/res/AssetManager;->nativeGetResourceArray(JI[I)I
+Landroid/content/res/AssetManager;->nativeGetResourceArraySize(JI)I
+Landroid/content/res/AssetManager;->nativeGetResourceBagValue(JIILandroid/util/TypedValue;)I
+Landroid/content/res/AssetManager;->nativeGetResourceEntryName(JI)Ljava/lang/String;
+Landroid/content/res/AssetManager;->nativeGetResourceIdentifier(JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/content/res/AssetManager;->nativeGetResourceIntArray(JI)[I
+Landroid/content/res/AssetManager;->nativeGetResourceName(JI)Ljava/lang/String;
+Landroid/content/res/AssetManager;->nativeGetResourcePackageName(JI)Ljava/lang/String;
+Landroid/content/res/AssetManager;->nativeGetResourceStringArray(JI)[Ljava/lang/String;
+Landroid/content/res/AssetManager;->nativeGetResourceStringArrayInfo(JI)[I
+Landroid/content/res/AssetManager;->nativeGetResourceTypeName(JI)Ljava/lang/String;
+Landroid/content/res/AssetManager;->nativeGetResourceValue(JISLandroid/util/TypedValue;Z)I
+Landroid/content/res/AssetManager;->nativeGetSizeConfigurations(J)[Landroid/content/res/Configuration;
+Landroid/content/res/AssetManager;->nativeGetStyleAttributes(JI)[I
+Landroid/content/res/AssetManager;->nativeList(JLjava/lang/String;)[Ljava/lang/String;
+Landroid/content/res/AssetManager;->nativeOpenAsset(JLjava/lang/String;I)J
+Landroid/content/res/AssetManager;->nativeOpenAssetFd(JLjava/lang/String;[J)Landroid/os/ParcelFileDescriptor;
+Landroid/content/res/AssetManager;->nativeOpenNonAsset(JILjava/lang/String;I)J
+Landroid/content/res/AssetManager;->nativeOpenNonAssetFd(JILjava/lang/String;[J)Landroid/os/ParcelFileDescriptor;
+Landroid/content/res/AssetManager;->nativeOpenXmlAsset(JILjava/lang/String;)J
+Landroid/content/res/AssetManager;->nativeResolveAttrs(JJII[I[I[I[I)Z
+Landroid/content/res/AssetManager;->nativeRetrieveAttributes(JJ[I[I[I)Z
+Landroid/content/res/AssetManager;->nativeSetApkAssets(J[Landroid/content/res/ApkAssets;Z)V
+Landroid/content/res/AssetManager;->nativeSetConfiguration(JIILjava/lang/String;IIIIIIIIIIIIIII)V
+Landroid/content/res/AssetManager;->nativeThemeApplyStyle(JJIZ)V
+Landroid/content/res/AssetManager;->nativeThemeClear(J)V
+Landroid/content/res/AssetManager;->nativeThemeCopy(JJ)V
+Landroid/content/res/AssetManager;->nativeThemeCreate(J)J
+Landroid/content/res/AssetManager;->nativeThemeDestroy(J)V
+Landroid/content/res/AssetManager;->nativeThemeDump(JJILjava/lang/String;Ljava/lang/String;)V
+Landroid/content/res/AssetManager;->nativeThemeGetAttributeValue(JJILandroid/util/TypedValue;Z)I
+Landroid/content/res/AssetManager;->nativeThemeGetChangingConfigurations(J)I
+Landroid/content/res/AssetManager;->nativeVerifySystemIdmaps()V
+Landroid/content/res/AssetManager;->openXmlBlockAsset(ILjava/lang/String;)Landroid/content/res/XmlBlock;
+Landroid/content/res/AssetManager;->openXmlBlockAsset(Ljava/lang/String;)Landroid/content/res/XmlBlock;
+Landroid/content/res/AssetManager;->releaseTheme(J)V
+Landroid/content/res/AssetManager;->sEmptyApkAssets:[Landroid/content/res/ApkAssets;
+Landroid/content/res/AssetManager;->setApkAssets([Landroid/content/res/ApkAssets;Z)V
+Landroid/content/res/AssetManager;->sSync:Ljava/lang/Object;
+Landroid/content/res/AssetManager;->sSystemApkAssets:[Landroid/content/res/ApkAssets;
+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;
+Landroid/content/res/ColorStateList$ColorStateListFactory;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
+Landroid/content/res/ColorStateList;-><init>(Landroid/content/res/ColorStateList;)V
+Landroid/content/res/ColorStateList;->applyTheme(Landroid/content/res/Resources$Theme;)V
+Landroid/content/res/ColorStateList;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
+Landroid/content/res/ColorStateList;->DEFAULT_COLOR:I
+Landroid/content/res/ColorStateList;->EMPTY:[[I
+Landroid/content/res/ColorStateList;->getConstantState()Landroid/content/res/ConstantState;
+Landroid/content/res/ColorStateList;->hasFocusStateSpecified()Z
+Landroid/content/res/ColorStateList;->hasState(I)Z
+Landroid/content/res/ColorStateList;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/content/res/ColorStateList;->mChangingConfigurations:I
+Landroid/content/res/ColorStateList;->mIsOpaque:Z
+Landroid/content/res/ColorStateList;->modulateColorAlpha(IF)I
+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;
+Landroid/content/res/CompatibilityInfo$Translator;->mTouchableAreaBuffer:Landroid/graphics/Region;
+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
+Landroid/content/res/CompatibilityInfo;->ALWAYS_NEEDS_COMPAT:I
+Landroid/content/res/CompatibilityInfo;->applicationDensity:I
+Landroid/content/res/CompatibilityInfo;->applicationInvertedScale:F
+Landroid/content/res/CompatibilityInfo;->applyToConfiguration(ILandroid/content/res/Configuration;)V
+Landroid/content/res/CompatibilityInfo;->applyToDisplayMetrics(Landroid/util/DisplayMetrics;)V
+Landroid/content/res/CompatibilityInfo;->DEFAULT_NORMAL_SHORT_DIMENSION:I
+Landroid/content/res/CompatibilityInfo;->MAXIMUM_ASPECT_RATIO:F
+Landroid/content/res/CompatibilityInfo;->mCompatibilityFlags:I
+Landroid/content/res/CompatibilityInfo;->needsCompatResources()Z
+Landroid/content/res/CompatibilityInfo;->NEEDS_COMPAT_RES:I
+Landroid/content/res/CompatibilityInfo;->NEEDS_SCREEN_COMPAT:I
+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
+Landroid/content/res/ComplexColor;->getConstantState()Landroid/content/res/ConstantState;
+Landroid/content/res/ComplexColor;->getDefaultColor()I
+Landroid/content/res/ComplexColor;->isStateful()Z
+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
+Landroid/content/res/Configuration;->clearLocales()V
+Landroid/content/res/Configuration;->compatScreenHeightDp:I
+Landroid/content/res/Configuration;->compatScreenWidthDp:I
+Landroid/content/res/Configuration;->compatSmallestScreenWidthDp:I
+Landroid/content/res/Configuration;->configurationDiffToString(I)Ljava/lang/String;
+Landroid/content/res/Configuration;->DENSITY_DPI_ANY:I
+Landroid/content/res/Configuration;->DENSITY_DPI_NONE:I
+Landroid/content/res/Configuration;->diff(Landroid/content/res/Configuration;ZZ)I
+Landroid/content/res/Configuration;->diffPublicOnly(Landroid/content/res/Configuration;)I
+Landroid/content/res/Configuration;->EMPTY:Landroid/content/res/Configuration;
+Landroid/content/res/Configuration;->fixUpLocaleList()V
+Landroid/content/res/Configuration;->getScreenLayoutNoDirection(I)I
+Landroid/content/res/Configuration;->isOtherSeqNewer(Landroid/content/res/Configuration;)Z
+Landroid/content/res/Configuration;->KEYBOARDHIDDEN_SOFT:I
+Landroid/content/res/Configuration;->localesToResourceQualifier(Landroid/os/LocaleList;)Ljava/lang/String;
+Landroid/content/res/Configuration;->mLocaleList:Landroid/os/LocaleList;
+Landroid/content/res/Configuration;->NATIVE_CONFIG_COLOR_MODE:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_DENSITY:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_KEYBOARD:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_KEYBOARD_HIDDEN:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_LAYOUTDIR:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_LOCALE:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_MCC:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_MNC:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_NAVIGATION:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_ORIENTATION:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_SCREEN_LAYOUT:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_SCREEN_SIZE:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_SMALLEST_SCREEN_SIZE:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_TOUCHSCREEN:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_UI_MODE:I
+Landroid/content/res/Configuration;->NATIVE_CONFIG_VERSION:I
+Landroid/content/res/Configuration;->readXmlAttrs(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Configuration;)V
+Landroid/content/res/Configuration;->reduceScreenLayout(III)I
+Landroid/content/res/Configuration;->resetScreenLayout(I)I
+Landroid/content/res/Configuration;->resourceQualifierString(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;)Ljava/lang/String;
+Landroid/content/res/Configuration;->SCREENLAYOUT_COMPAT_NEEDED:I
+Landroid/content/res/Configuration;->SCREENLAYOUT_ROUND_SHIFT:I
+Landroid/content/res/Configuration;->uiModeToString(I)Ljava/lang/String;
+Landroid/content/res/Configuration;->unset()V
+Landroid/content/res/Configuration;->writeResConfigToProto(Landroid/util/proto/ProtoOutputStream;JLandroid/util/DisplayMetrics;)V
+Landroid/content/res/Configuration;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+Landroid/content/res/Configuration;->writeXmlAttrs(Lorg/xmlpull/v1/XmlSerializer;Landroid/content/res/Configuration;)V
+Landroid/content/res/Configuration;->XML_ATTR_APP_BOUNDS:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_COLOR_MODE:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_DENSITY:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_FONT_SCALE:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_HARD_KEYBOARD_HIDDEN:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_KEYBOARD:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_KEYBOARD_HIDDEN:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_LOCALES:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_MCC:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_MNC:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_NAVIGATION:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_NAVIGATION_HIDDEN:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_ORIENTATION:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_ROTATION:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_SCREEN_HEIGHT:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_SCREEN_LAYOUT:Ljava/lang/String;
+Landroid/content/res/Configuration;->XML_ATTR_SCREEN_WIDTH:Ljava/lang/String;
+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
+Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->getTtcIndex()I
+Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->getVariationSettings()Ljava/lang/String;
+Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->getWeight()I
+Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->mFileName:Ljava/lang/String;
+Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->mItalic:I
+Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->mResourceId:I
+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;
+Landroid/content/res/FontResourcesParser$ProviderResourceEntry;->getPackage()Ljava/lang/String;
+Landroid/content/res/FontResourcesParser$ProviderResourceEntry;->getQuery()Ljava/lang/String;
+Landroid/content/res/FontResourcesParser$ProviderResourceEntry;->mCerts:Ljava/util/List;
+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;
+Landroid/content/res/FontResourcesParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
+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
+Landroid/content/res/GradientColor;->applyRootAttrsTheme(Landroid/content/res/Resources$Theme;)V
+Landroid/content/res/GradientColor;->applyTheme(Landroid/content/res/Resources$Theme;)V
+Landroid/content/res/GradientColor;->canApplyTheme()Z
+Landroid/content/res/GradientColor;->createFromXml(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
+Landroid/content/res/GradientColor;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
+Landroid/content/res/GradientColor;->DBG_GRADIENT:Z
+Landroid/content/res/GradientColor;->getChangingConfigurations()I
+Landroid/content/res/GradientColor;->getConstantState()Landroid/content/res/ConstantState;
+Landroid/content/res/GradientColor;->getDefaultColor()I
+Landroid/content/res/GradientColor;->getShader()Landroid/graphics/Shader;
+Landroid/content/res/GradientColor;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/content/res/GradientColor;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/content/res/GradientColor;->mCenterColor:I
+Landroid/content/res/GradientColor;->mCenterX:F
+Landroid/content/res/GradientColor;->mCenterY:F
+Landroid/content/res/GradientColor;->mChangingConfigurations:I
+Landroid/content/res/GradientColor;->mDefaultColor:I
+Landroid/content/res/GradientColor;->mEndColor:I
+Landroid/content/res/GradientColor;->mEndX:F
+Landroid/content/res/GradientColor;->mEndY:F
+Landroid/content/res/GradientColor;->mFactory:Landroid/content/res/GradientColor$GradientColorFactory;
+Landroid/content/res/GradientColor;->mGradientRadius:F
+Landroid/content/res/GradientColor;->mGradientType:I
+Landroid/content/res/GradientColor;->mHasCenterColor:Z
+Landroid/content/res/GradientColor;->mItemColors:[I
+Landroid/content/res/GradientColor;->mItemOffsets:[F
+Landroid/content/res/GradientColor;->mItemsThemeAttrs:[[I
+Landroid/content/res/GradientColor;->mShader:Landroid/graphics/Shader;
+Landroid/content/res/GradientColor;->mStartColor:I
+Landroid/content/res/GradientColor;->mStartX:F
+Landroid/content/res/GradientColor;->mStartY:F
+Landroid/content/res/GradientColor;->mThemeAttrs:[I
+Landroid/content/res/GradientColor;->mTileMode:I
+Landroid/content/res/GradientColor;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
+Landroid/content/res/GradientColor;->onColorsChange()V
+Landroid/content/res/GradientColor;->parseTileMode(I)Landroid/graphics/Shader$TileMode;
+Landroid/content/res/GradientColor;->TAG:Ljava/lang/String;
+Landroid/content/res/GradientColor;->TILE_MODE_CLAMP:I
+Landroid/content/res/GradientColor;->TILE_MODE_MIRROR:I
+Landroid/content/res/GradientColor;->TILE_MODE_REPEAT:I
+Landroid/content/res/GradientColor;->updateRootElementState(Landroid/content/res/TypedArray;)V
+Landroid/content/res/GradientColor;->validateXmlContent()V
+Landroid/content/res/ObbInfo;-><init>()V
+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
+Landroid/content/res/Resources$Theme;->getKey()Landroid/content/res/Resources$ThemeKey;
+Landroid/content/res/Resources$Theme;->getNativeTheme()J
+Landroid/content/res/Resources$Theme;->getResourceNameFromHexString(Ljava/lang/String;)Ljava/lang/String;
+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
+Landroid/content/res/Resources$ThemeKey;->mForce:[Z
+Landroid/content/res/Resources$ThemeKey;->mHashCode:I
+Landroid/content/res/Resources$ThemeKey;->mResId:[I
+Landroid/content/res/Resources$ThemeKey;->setTo(Landroid/content/res/Resources$ThemeKey;)V
+Landroid/content/res/Resources;->calcConfigChanges(Landroid/content/res/Configuration;)I
+Landroid/content/res/Resources;->getAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache;
+Landroid/content/res/Resources;->getClassLoader()Ljava/lang/ClassLoader;
+Landroid/content/res/Resources;->getFont(Landroid/util/TypedValue;I)Landroid/graphics/Typeface;
+Landroid/content/res/Resources;->getSizeConfigurations()[Landroid/content/res/Configuration;
+Landroid/content/res/Resources;->getStateListAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache;
+Landroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
+Landroid/content/res/Resources;->loadComplexColor(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
+Landroid/content/res/Resources;->MIN_THEME_REFS_FLUSH_SIZE:I
+Landroid/content/res/Resources;->mThemeRefs:Ljava/util/ArrayList;
+Landroid/content/res/Resources;->mThemeRefsNextFlushSize:I
+Landroid/content/res/Resources;->mTmpValueLock:Ljava/lang/Object;
+Landroid/content/res/Resources;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
+Landroid/content/res/Resources;->obtainTempTypedValue()Landroid/util/TypedValue;
+Landroid/content/res/Resources;->preloadFonts(I)V
+Landroid/content/res/Resources;->releaseTempTypedValue(Landroid/util/TypedValue;)V
+Landroid/content/res/Resources;->resourceHasPackage(I)Z
+Landroid/content/res/Resources;->selectSystemTheme(IIIIII)I
+Landroid/content/res/Resources;->sSync:Ljava/lang/Object;
+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
+Landroid/content/res/ResourcesImpl$ThemeImpl;->getAppliedStyleResId()I
+Landroid/content/res/ResourcesImpl$ThemeImpl;->getChangingConfigurations()I
+Landroid/content/res/ResourcesImpl$ThemeImpl;->getKey()Landroid/content/res/Resources$ThemeKey;
+Landroid/content/res/ResourcesImpl$ThemeImpl;->getNativeTheme()J
+Landroid/content/res/ResourcesImpl$ThemeImpl;->getTheme()[Ljava/lang/String;
+Landroid/content/res/ResourcesImpl$ThemeImpl;->mAssets:Landroid/content/res/AssetManager;
+Landroid/content/res/ResourcesImpl$ThemeImpl;->mKey:Landroid/content/res/Resources$ThemeKey;
+Landroid/content/res/ResourcesImpl$ThemeImpl;->mTheme:J
+Landroid/content/res/ResourcesImpl$ThemeImpl;->mThemeResId:I
+Landroid/content/res/ResourcesImpl$ThemeImpl;->obtainStyledAttributes(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;
+Landroid/content/res/ResourcesImpl$ThemeImpl;->rebase()V
+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
+Landroid/content/res/ResourcesImpl;->calcConfigChanges(Landroid/content/res/Configuration;)I
+Landroid/content/res/ResourcesImpl;->DEBUG_CONFIG:Z
+Landroid/content/res/ResourcesImpl;->DEBUG_LOAD:Z
+Landroid/content/res/ResourcesImpl;->decodeImageDrawable(Landroid/content/res/AssetManager$AssetInputStream;Landroid/content/res/Resources;Landroid/util/TypedValue;)Landroid/graphics/drawable/Drawable;
+Landroid/content/res/ResourcesImpl;->finishPreloading()V
+Landroid/content/res/ResourcesImpl;->flushLayoutCache()V
+Landroid/content/res/ResourcesImpl;->getAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache;
+Landroid/content/res/ResourcesImpl;->getColorStateListFromInt(Landroid/util/TypedValue;J)Landroid/content/res/ColorStateList;
+Landroid/content/res/ResourcesImpl;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
+Landroid/content/res/ResourcesImpl;->getConfiguration()Landroid/content/res/Configuration;
+Landroid/content/res/ResourcesImpl;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;
+Landroid/content/res/ResourcesImpl;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/content/res/ResourcesImpl;->getPluralRule()Landroid/icu/text/PluralRules;
+Landroid/content/res/ResourcesImpl;->getPreloadedDrawables()Landroid/util/LongSparseArray;
+Landroid/content/res/ResourcesImpl;->getQuantityText(II)Ljava/lang/CharSequence;
+Landroid/content/res/ResourcesImpl;->getResourceEntryName(I)Ljava/lang/String;
+Landroid/content/res/ResourcesImpl;->getResourceName(I)Ljava/lang/String;
+Landroid/content/res/ResourcesImpl;->getResourcePackageName(I)Ljava/lang/String;
+Landroid/content/res/ResourcesImpl;->getResourceTypeName(I)Ljava/lang/String;
+Landroid/content/res/ResourcesImpl;->getSizeConfigurations()[Landroid/content/res/Configuration;
+Landroid/content/res/ResourcesImpl;->getStateListAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache;
+Landroid/content/res/ResourcesImpl;->getValue(Ljava/lang/String;Landroid/util/TypedValue;Z)V
+Landroid/content/res/ResourcesImpl;->getValueForDensity(IILandroid/util/TypedValue;Z)V
+Landroid/content/res/ResourcesImpl;->ID_OTHER:I
+Landroid/content/res/ResourcesImpl;->loadColorStateList(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
+Landroid/content/res/ResourcesImpl;->loadComplexColor(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
+Landroid/content/res/ResourcesImpl;->loadComplexColorForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
+Landroid/content/res/ResourcesImpl;->loadComplexColorFromName(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/TypedValue;I)Landroid/content/res/ComplexColor;
+Landroid/content/res/ResourcesImpl;->loadDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+Landroid/content/res/ResourcesImpl;->loadDrawableForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;II)Landroid/graphics/drawable/Drawable;
+Landroid/content/res/ResourcesImpl;->loadFont(Landroid/content/res/Resources;Landroid/util/TypedValue;I)Landroid/graphics/Typeface;
+Landroid/content/res/ResourcesImpl;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser;
+Landroid/content/res/ResourcesImpl;->mCachedXmlBlockCookies:[I
+Landroid/content/res/ResourcesImpl;->mCachedXmlBlockFiles:[Ljava/lang/String;
+Landroid/content/res/ResourcesImpl;->mCachedXmlBlocks:[Landroid/content/res/XmlBlock;
+Landroid/content/res/ResourcesImpl;->mComplexColorCache:Landroid/content/res/ConfigurationBoundResourceCache;
+Landroid/content/res/ResourcesImpl;->mDisplayAdjustments:Landroid/view/DisplayAdjustments;
+Landroid/content/res/ResourcesImpl;->mLastCachedXmlBlockIndex:I
+Landroid/content/res/ResourcesImpl;->mLookupStack:Ljava/lang/ThreadLocal;
+Landroid/content/res/ResourcesImpl;->mMetrics:Landroid/util/DisplayMetrics;
+Landroid/content/res/ResourcesImpl;->mPluralRule:Landroid/icu/text/PluralRules;
+Landroid/content/res/ResourcesImpl;->mPreloadTracingPreloadStartTime:J
+Landroid/content/res/ResourcesImpl;->mPreloadTracingStartBitmapCount:J
+Landroid/content/res/ResourcesImpl;->mPreloadTracingStartBitmapSize:J
+Landroid/content/res/ResourcesImpl;->mTmpConfig:Landroid/content/res/Configuration;
+Landroid/content/res/ResourcesImpl;->newThemeImpl()Landroid/content/res/ResourcesImpl$ThemeImpl;
+Landroid/content/res/ResourcesImpl;->newThemeImpl(Landroid/content/res/Resources$ThemeKey;)Landroid/content/res/ResourcesImpl$ThemeImpl;
+Landroid/content/res/ResourcesImpl;->openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream;
+Landroid/content/res/ResourcesImpl;->openRawResourceFd(ILandroid/util/TypedValue;)Landroid/content/res/AssetFileDescriptor;
+Landroid/content/res/ResourcesImpl;->sPreloaded:Z
+Landroid/content/res/ResourcesImpl;->sPreloadTracingNumLoadedDrawables:I
+Landroid/content/res/ResourcesImpl;->sSync:Ljava/lang/Object;
+Landroid/content/res/ResourcesImpl;->startPreloading()V
+Landroid/content/res/ResourcesImpl;->TAG:Ljava/lang/String;
+Landroid/content/res/ResourcesImpl;->TAG_PRELOAD:Ljava/lang/String;
+Landroid/content/res/ResourcesImpl;->TRACE_FOR_DETAILED_PRELOAD:Z
+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
+Landroid/content/res/ResourcesKey;->mCompatInfo:Landroid/content/res/CompatibilityInfo;
+Landroid/content/res/ResourcesKey;->mDisplayId:I
+Landroid/content/res/ResourcesKey;->mHash:I
+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
+Landroid/content/res/StringBlock$StyleIDs;->italicId:I
+Landroid/content/res/StringBlock$StyleIDs;->listItemId:I
+Landroid/content/res/StringBlock$StyleIDs;->marqueeId:I
+Landroid/content/res/StringBlock$StyleIDs;->smallId:I
+Landroid/content/res/StringBlock$StyleIDs;->strikeId:I
+Landroid/content/res/StringBlock$StyleIDs;->subId:I
+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
+Landroid/content/res/StringBlock;->applyStyles(Ljava/lang/String;[ILandroid/content/res/StringBlock$StyleIDs;)Ljava/lang/CharSequence;
+Landroid/content/res/StringBlock;->getColor(Ljava/lang/String;Z)Landroid/text/style/CharacterStyle;
+Landroid/content/res/StringBlock;->localLOGV:Z
+Landroid/content/res/StringBlock;->mNative:J
+Landroid/content/res/StringBlock;->mOwnsNative:Z
+Landroid/content/res/StringBlock;->mSparseStrings:Landroid/util/SparseArray;
+Landroid/content/res/StringBlock;->mStrings:[Ljava/lang/CharSequence;
+Landroid/content/res/StringBlock;->mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
+Landroid/content/res/StringBlock;->mUseSparse:Z
+Landroid/content/res/StringBlock;->nativeCreate([BII)J
+Landroid/content/res/StringBlock;->nativeDestroy(J)V
+Landroid/content/res/StringBlock;->nativeGetSize(J)I
+Landroid/content/res/StringBlock;->nativeGetString(JI)Ljava/lang/String;
+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;
+Landroid/content/res/ThemedResourceCache;->getUnthemedLocked(Z)Landroid/util/LongSparseArray;
+Landroid/content/res/ThemedResourceCache;->mNullThemedEntries:Landroid/util/LongSparseArray;
+Landroid/content/res/ThemedResourceCache;->mUnthemedEntries:Landroid/util/LongSparseArray;
+Landroid/content/res/ThemedResourceCache;->prune(I)Z
+Landroid/content/res/ThemedResourceCache;->pruneEntriesLocked(Landroid/util/LongSparseArray;I)Z
+Landroid/content/res/ThemedResourceCache;->pruneEntryLocked(Ljava/lang/Object;I)Z
+Landroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;)V
+Landroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;Z)V
+Landroid/content/res/ThemedResourceCache;->shouldInvalidateEntry(Ljava/lang/Object;I)Z
+Landroid/content/res/TypedArray;-><init>(Landroid/content/res/Resources;)V
+Landroid/content/res/TypedArray;->getComplexColor(I)Landroid/content/res/ComplexColor;
+Landroid/content/res/TypedArray;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;
+Landroid/content/res/TypedArray;->getThemeAttributeId(II)I
+Landroid/content/res/TypedArray;->loadStringValueAt(I)Ljava/lang/CharSequence;
+Landroid/content/res/TypedArray;->mDataAddress:J
+Landroid/content/res/TypedArray;->mIndicesAddress:J
+Landroid/content/res/TypedArray;->obtain(Landroid/content/res/Resources;I)Landroid/content/res/TypedArray;
+Landroid/content/res/TypedArray;->resize(I)V
+Landroid/content/res/TypedArray;->STYLE_ASSET_COOKIE:I
+Landroid/content/res/TypedArray;->STYLE_CHANGING_CONFIGURATIONS:I
+Landroid/content/res/TypedArray;->STYLE_DATA:I
+Landroid/content/res/TypedArray;->STYLE_DENSITY:I
+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
+Landroid/content/res/XmlBlock;->decOpenCountLocked()V
+Landroid/content/res/XmlBlock;->mAssets:Landroid/content/res/AssetManager;
+Landroid/content/res/XmlBlock;->mNative:J
+Landroid/content/res/XmlBlock;->mOpen:Z
+Landroid/content/res/XmlBlock;->mOpenCount:I
+Landroid/content/res/XmlBlock;->mStrings:Landroid/content/res/StringBlock;
+Landroid/content/res/XmlBlock;->nativeCreate([BII)J
+Landroid/content/res/XmlBlock;->nativeCreateParseState(J)J
+Landroid/content/res/XmlBlock;->nativeDestroy(J)V
+Landroid/content/res/XmlBlock;->nativeDestroyParseState(J)V
+Landroid/content/res/XmlBlock;->nativeGetAttributeCount(J)I
+Landroid/content/res/XmlBlock;->nativeGetAttributeData(JI)I
+Landroid/content/res/XmlBlock;->nativeGetAttributeDataType(JI)I
+Landroid/content/res/XmlBlock;->nativeGetAttributeIndex(JLjava/lang/String;Ljava/lang/String;)I
+Landroid/content/res/XmlBlock;->nativeGetAttributeName(JI)I
+Landroid/content/res/XmlBlock;->nativeGetAttributeNamespace(JI)I
+Landroid/content/res/XmlBlock;->nativeGetAttributeResource(JI)I
+Landroid/content/res/XmlBlock;->nativeGetAttributeStringValue(JI)I
+Landroid/content/res/XmlBlock;->nativeGetClassAttribute(J)I
+Landroid/content/res/XmlBlock;->nativeGetIdAttribute(J)I
+Landroid/content/res/XmlBlock;->nativeGetLineNumber(J)I
+Landroid/content/res/XmlBlock;->nativeGetName(J)I
+Landroid/content/res/XmlBlock;->nativeGetNamespace(J)I
+Landroid/content/res/XmlBlock;->nativeGetStringBlock(J)J
+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
+Landroid/content/ResourcesConfigurationProto;->SCREEN_WIDTH_PX:J
+Landroid/content/ResourcesConfigurationProto;->SDK_VERSION:J
+Landroid/content/RestrictionEntry;-><init>(Ljava/lang/String;[Landroid/content/RestrictionEntry;Z)V
+Landroid/content/RestrictionEntry;->mChoiceEntries:[Ljava/lang/String;
+Landroid/content/RestrictionEntry;->mChoiceValues:[Ljava/lang/String;
+Landroid/content/RestrictionEntry;->mCurrentValue:Ljava/lang/String;
+Landroid/content/RestrictionEntry;->mCurrentValues:[Ljava/lang/String;
+Landroid/content/RestrictionEntry;->mDescription:Ljava/lang/String;
+Landroid/content/RestrictionEntry;->mKey:Ljava/lang/String;
+Landroid/content/RestrictionEntry;->mRestrictions:[Landroid/content/RestrictionEntry;
+Landroid/content/RestrictionEntry;->mTitle:Ljava/lang/String;
+Landroid/content/RestrictionEntry;->mType:I
+Landroid/content/RestrictionEntry;->TYPE_CHOICE_LEVEL:I
+Landroid/content/RestrictionsManager;-><init>(Landroid/content/Context;Landroid/content/IRestrictionsManager;)V
+Landroid/content/RestrictionsManager;->addRestrictionToBundle(Landroid/os/Bundle;Landroid/content/RestrictionEntry;)Landroid/os/Bundle;
+Landroid/content/RestrictionsManager;->loadManifestRestrictions(Ljava/lang/String;Landroid/content/res/XmlResourceParser;)Ljava/util/List;
+Landroid/content/RestrictionsManager;->loadRestriction(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/content/res/XmlResourceParser;)Landroid/content/RestrictionEntry;
+Landroid/content/RestrictionsManager;->loadRestrictionElement(Landroid/content/Context;Landroid/content/res/XmlResourceParser;)Landroid/content/RestrictionEntry;
+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
+Landroid/content/SearchRecentSuggestionsProvider;->mAuthority:Ljava/lang/String;
+Landroid/content/SearchRecentSuggestionsProvider;->mMode:I
+Landroid/content/SearchRecentSuggestionsProvider;->mOpenHelper:Landroid/database/sqlite/SQLiteOpenHelper;
+Landroid/content/SearchRecentSuggestionsProvider;->mSuggestionsUri:Landroid/net/Uri;
+Landroid/content/SearchRecentSuggestionsProvider;->mSuggestSuggestionClause:Ljava/lang/String;
+Landroid/content/SearchRecentSuggestionsProvider;->mTwoLineDisplay:Z
+Landroid/content/SearchRecentSuggestionsProvider;->mUriMatcher:Landroid/content/UriMatcher;
+Landroid/content/SearchRecentSuggestionsProvider;->NULL_COLUMN:Ljava/lang/String;
+Landroid/content/SearchRecentSuggestionsProvider;->ORDER_BY:Ljava/lang/String;
+Landroid/content/SearchRecentSuggestionsProvider;->sDatabaseName:Ljava/lang/String;
+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;
+Landroid/content/SyncActivityTooManyDeletes;->mNumDeletes:J
+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;
+Landroid/content/SyncAdaptersCache;->onServicesChangedLocked(I)V
+Landroid/content/SyncAdaptersCache;->onUserRemoved(I)V
+Landroid/content/SyncAdaptersCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/content/SyncAdapterType;
+Landroid/content/SyncAdaptersCache;->SERVICE_INTERFACE:Ljava/lang/String;
+Landroid/content/SyncAdaptersCache;->SERVICE_META_DATA:Ljava/lang/String;
+Landroid/content/SyncAdaptersCache;->sSerializer:Landroid/content/SyncAdaptersCache$MySerializer;
+Landroid/content/SyncAdaptersCache;->TAG:Ljava/lang/String;
+Landroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;)V
+Landroid/content/SyncAdapterType;->getPackageName()Ljava/lang/String;
+Landroid/content/SyncAdapterType;->packageName:Ljava/lang/String;
+Landroid/content/SyncContext;->HEARTBEAT_SEND_INTERVAL_IN_MS:J
+Landroid/content/SyncContext;->mLastHeartbeatSendTime:J
+Landroid/content/SyncContext;->mSyncContext:Landroid/content/ISyncContext;
+Landroid/content/SyncContext;->updateHeartbeat()V
+Landroid/content/SyncInfo;-><init>(Landroid/content/SyncInfo;)V
+Landroid/content/SyncInfo;->createAccountRedacted(ILjava/lang/String;J)Landroid/content/SyncInfo;
+Landroid/content/SyncInfo;->REDACTED_ACCOUNT:Landroid/accounts/Account;
+Landroid/content/SyncRequest$Builder;->mAccount:Landroid/accounts/Account;
+Landroid/content/SyncRequest$Builder;->mAuthority:Ljava/lang/String;
+Landroid/content/SyncRequest$Builder;->mCustomExtras:Landroid/os/Bundle;
+Landroid/content/SyncRequest$Builder;->mDisallowMetered:Z
+Landroid/content/SyncRequest$Builder;->mExpedited:Z
+Landroid/content/SyncRequest$Builder;->mIgnoreBackoff:Z
+Landroid/content/SyncRequest$Builder;->mIgnoreSettings:Z
+Landroid/content/SyncRequest$Builder;->mIsManual:Z
+Landroid/content/SyncRequest$Builder;->mNoRetry:Z
+Landroid/content/SyncRequest$Builder;->mRequiresCharging:Z
+Landroid/content/SyncRequest$Builder;->mSyncConfigExtras:Landroid/os/Bundle;
+Landroid/content/SyncRequest$Builder;->mSyncFlexTimeSecs:J
+Landroid/content/SyncRequest$Builder;->mSyncRunTimeSecs:J
+Landroid/content/SyncRequest$Builder;->mSyncTarget:I
+Landroid/content/SyncRequest$Builder;->mSyncType:I
+Landroid/content/SyncRequest$Builder;->setupInterval(JJ)V
+Landroid/content/SyncRequest$Builder;->SYNC_TARGET_ADAPTER:I
+Landroid/content/SyncRequest$Builder;->SYNC_TARGET_UNKNOWN:I
+Landroid/content/SyncRequest$Builder;->SYNC_TYPE_ONCE:I
+Landroid/content/SyncRequest$Builder;->SYNC_TYPE_PERIODIC:I
+Landroid/content/SyncRequest$Builder;->SYNC_TYPE_UNKNOWN:I
+Landroid/content/SyncRequest;-><init>(Landroid/content/SyncRequest$Builder;)V
+Landroid/content/SyncRequest;-><init>(Landroid/os/Parcel;)V
+Landroid/content/SyncRequest;->getAccount()Landroid/accounts/Account;
+Landroid/content/SyncRequest;->getBundle()Landroid/os/Bundle;
+Landroid/content/SyncRequest;->getProvider()Ljava/lang/String;
+Landroid/content/SyncRequest;->getSyncFlexTime()J
+Landroid/content/SyncRequest;->getSyncRunTime()J
+Landroid/content/SyncRequest;->isExpedited()Z
+Landroid/content/SyncRequest;->isPeriodic()Z
+Landroid/content/SyncRequest;->mDisallowMetered:Z
+Landroid/content/SyncRequest;->mIsAuthority:Z
+Landroid/content/SyncRequest;->mIsExpedited:Z
+Landroid/content/SyncRequest;->mSyncFlexTimeSecs:J
+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
+Landroid/content/SyncStatusInfo$Stats;->numCancels:I
+Landroid/content/SyncStatusInfo$Stats;->numFailures:I
+Landroid/content/SyncStatusInfo$Stats;->numSourceFeed:I
+Landroid/content/SyncStatusInfo$Stats;->numSourceLocal:I
+Landroid/content/SyncStatusInfo$Stats;->numSourceOther:I
+Landroid/content/SyncStatusInfo$Stats;->numSourcePeriodic:I
+Landroid/content/SyncStatusInfo$Stats;->numSourcePoll:I
+Landroid/content/SyncStatusInfo$Stats;->numSourceUser:I
+Landroid/content/SyncStatusInfo$Stats;->numSyncs:I
+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
+Landroid/content/SyncStatusInfo;->copy([J[J)V
+Landroid/content/SyncStatusInfo;->getEvent(I)Ljava/lang/String;
+Landroid/content/SyncStatusInfo;->getEventCount()I
+Landroid/content/SyncStatusInfo;->getEventTime(I)J
+Landroid/content/SyncStatusInfo;->lastTodayResetTime:J
+Landroid/content/SyncStatusInfo;->MAX_EVENT_COUNT:I
+Landroid/content/SyncStatusInfo;->maybeResetTodayStats(ZZ)V
+Landroid/content/SyncStatusInfo;->mLastEvents:Ljava/util/ArrayList;
+Landroid/content/SyncStatusInfo;->mLastEventTimes:Ljava/util/ArrayList;
+Landroid/content/SyncStatusInfo;->perSourceLastFailureTimes:[J
+Landroid/content/SyncStatusInfo;->perSourceLastSuccessTimes:[J
+Landroid/content/SyncStatusInfo;->setLastFailure(IJLjava/lang/String;)V
+Landroid/content/SyncStatusInfo;->setLastSuccess(IJ)V
+Landroid/content/SyncStatusInfo;->SOURCE_COUNT:I
+Landroid/content/SyncStatusInfo;->TAG:Ljava/lang/String;
+Landroid/content/SyncStatusInfo;->todayStats:Landroid/content/SyncStatusInfo$Stats;
+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
+Landroid/content/UndoManager$UndoState;->canMerge()Z
+Landroid/content/UndoManager$UndoState;->commit()V
+Landroid/content/UndoManager$UndoState;->countOperations()I
+Landroid/content/UndoManager$UndoState;->destroy()V
+Landroid/content/UndoManager$UndoState;->getCommitId()I
+Landroid/content/UndoManager$UndoState;->getLabel()Ljava/lang/CharSequence;
+Landroid/content/UndoManager$UndoState;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;)Landroid/content/UndoOperation;
+Landroid/content/UndoManager$UndoState;->hasData()Z
+Landroid/content/UndoManager$UndoState;->hasMultipleOwners()Z
+Landroid/content/UndoManager$UndoState;->hasOperation(Landroid/content/UndoOwner;)Z
+Landroid/content/UndoManager$UndoState;->makeExecuted()V
+Landroid/content/UndoManager$UndoState;->matchOwner(Landroid/content/UndoOwner;)Z
+Landroid/content/UndoManager$UndoState;->mCanMerge:Z
+Landroid/content/UndoManager$UndoState;->mCommitId:I
+Landroid/content/UndoManager$UndoState;->mExecuted:Z
+Landroid/content/UndoManager$UndoState;->mLabel:Ljava/lang/CharSequence;
+Landroid/content/UndoManager$UndoState;->mManager:Landroid/content/UndoManager;
+Landroid/content/UndoManager$UndoState;->mOperations:Ljava/util/ArrayList;
+Landroid/content/UndoManager$UndoState;->mRecent:Ljava/util/ArrayList;
+Landroid/content/UndoManager$UndoState;->redo()V
+Landroid/content/UndoManager$UndoState;->setCanMerge(Z)Z
+Landroid/content/UndoManager$UndoState;->setLabel(Ljava/lang/CharSequence;)V
+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
+Landroid/content/UndoManager;->getHistorySize()I
+Landroid/content/UndoManager;->getLastOperation(I)Landroid/content/UndoOperation;
+Landroid/content/UndoManager;->getLastOperation(Landroid/content/UndoOwner;I)Landroid/content/UndoOperation;
+Landroid/content/UndoManager;->getRedoLabel([Landroid/content/UndoOwner;)Ljava/lang/CharSequence;
+Landroid/content/UndoManager;->getTopRedo([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
+Landroid/content/UndoManager;->getTopUndo([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
+Landroid/content/UndoManager;->getUndoLabel([Landroid/content/UndoOwner;)Ljava/lang/CharSequence;
+Landroid/content/UndoManager;->getUpdateNestingLevel()I
+Landroid/content/UndoManager;->hasOperation(Landroid/content/UndoOwner;)Z
+Landroid/content/UndoManager;->isInUpdate()Z
+Landroid/content/UndoManager;->matchOwners(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
+Landroid/content/UndoManager;->mCommitId:I
+Landroid/content/UndoManager;->MERGE_MODE_ANY:I
+Landroid/content/UndoManager;->MERGE_MODE_NONE:I
+Landroid/content/UndoManager;->MERGE_MODE_UNIQUE:I
+Landroid/content/UndoManager;->mHistorySize:I
+Landroid/content/UndoManager;->mInUndo:Z
+Landroid/content/UndoManager;->mMerged:Z
+Landroid/content/UndoManager;->mNextSavedIdx:I
+Landroid/content/UndoManager;->mOwners:Landroid/util/ArrayMap;
+Landroid/content/UndoManager;->mRedos:Ljava/util/ArrayList;
+Landroid/content/UndoManager;->mStateOwners:[Landroid/content/UndoOwner;
+Landroid/content/UndoManager;->mStateSeq:I
+Landroid/content/UndoManager;->mUndos:Ljava/util/ArrayList;
+Landroid/content/UndoManager;->mUpdateCount:I
+Landroid/content/UndoManager;->mWorking:Landroid/content/UndoManager$UndoState;
+Landroid/content/UndoManager;->pushWorkingState()V
+Landroid/content/UndoManager;->removeOwner(Landroid/content/UndoOwner;)V
+Landroid/content/UndoManager;->restoreOwner(Landroid/os/Parcel;)Landroid/content/UndoOwner;
+Landroid/content/UndoManager;->saveOwner(Landroid/content/UndoOwner;Landroid/os/Parcel;)V
+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;
+Landroid/content/UndoOperation;->getOwnerData()Ljava/lang/Object;
+Landroid/content/UndoOperation;->hasData()Z
+Landroid/content/UndoOperation;->matchOwner(Landroid/content/UndoOwner;)Z
+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;
+Landroid/content/UndoOwner;->mData:Ljava/lang/Object;
+Landroid/content/UndoOwner;->mManager:Landroid/content/UndoManager;
+Landroid/content/UndoOwner;->mOpCount:I
+Landroid/content/UndoOwner;->mSavedIdx:I
+Landroid/content/UndoOwner;->mStateSeq:I
+Landroid/content/UndoOwner;->mTag:Ljava/lang/String;
+Landroid/content/UriMatcher;-><init>()V
+Landroid/content/UriMatcher;->EXACT:I
+Landroid/content/UriMatcher;->mCode:I
+Landroid/content/UriMatcher;->mWhich:I
+Landroid/content/UriMatcher;->NUMBER:I
+Landroid/content/UriMatcher;->TEXT:I
+Landroid/content/UriPermission;-><init>(Landroid/net/Uri;IJ)V
+Landroid/content/UriPermission;-><init>(Landroid/os/Parcel;)V
+Landroid/content/UriPermission;->mModeFlags:I
+Landroid/content/UriPermission;->mPersistedTime:J
+Landroid/content/UriPermission;->mUri:Landroid/net/Uri;
+Landroid/database/AbstractCursor$SelfContentObserver;->mCursor:Ljava/lang/ref/WeakReference;
+Landroid/database/AbstractCursor;->mContentObservable:Landroid/database/ContentObservable;
+Landroid/database/AbstractCursor;->mDataSetObservable:Landroid/database/DataSetObservable;
+Landroid/database/AbstractCursor;->mSelfObserver:Landroid/database/ContentObserver;
+Landroid/database/AbstractCursor;->mSelfObserverLock:Ljava/lang/Object;
+Landroid/database/AbstractCursor;->mSelfObserverRegistered:Z
+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
+Landroid/database/BulkCursorDescriptor;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/database/BulkCursorDescriptor;->cursor:Landroid/database/IBulkCursor;
+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
+Landroid/database/BulkCursorToCursorAdaptor;->mBulkCursor:Landroid/database/IBulkCursor;
+Landroid/database/BulkCursorToCursorAdaptor;->mColumns:[Ljava/lang/String;
+Landroid/database/BulkCursorToCursorAdaptor;->mCount:I
+Landroid/database/BulkCursorToCursorAdaptor;->mObserverBridge:Landroid/database/AbstractCursor$SelfContentObserver;
+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
+Landroid/database/ContentObserver$Transport;->releaseContentObserver()V
+Landroid/database/ContentObserver;->dispatchChange(ZLandroid/net/Uri;I)V
+Landroid/database/ContentObserver;->getContentObserver()Landroid/database/IContentObserver;
+Landroid/database/ContentObserver;->mHandler:Landroid/os/Handler;
+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
+Landroid/database/CursorJoiner;->mCompareResult:Landroid/database/CursorJoiner$Result;
+Landroid/database/CursorJoiner;->mCompareResultIsValid:Z
+Landroid/database/CursorJoiner;->mCursorLeft:Landroid/database/Cursor;
+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
+Landroid/database/CursorToBulkCursorAdaptor;->createAndRegisterObserverProxyLocked(Landroid/database/IContentObserver;)V
+Landroid/database/CursorToBulkCursorAdaptor;->deactivate()V
+Landroid/database/CursorToBulkCursorAdaptor;->disposeLocked()V
+Landroid/database/CursorToBulkCursorAdaptor;->getBulkCursorDescriptor()Landroid/database/BulkCursorDescriptor;
+Landroid/database/CursorToBulkCursorAdaptor;->getExtras()Landroid/os/Bundle;
+Landroid/database/CursorToBulkCursorAdaptor;->getWindow(I)Landroid/database/CursorWindow;
+Landroid/database/CursorToBulkCursorAdaptor;->mCursor:Landroid/database/CrossProcessCursor;
+Landroid/database/CursorToBulkCursorAdaptor;->mFilledWindow:Landroid/database/CursorWindow;
+Landroid/database/CursorToBulkCursorAdaptor;->mLock:Ljava/lang/Object;
+Landroid/database/CursorToBulkCursorAdaptor;->mObserver:Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
+Landroid/database/CursorToBulkCursorAdaptor;->mProviderName:Ljava/lang/String;
+Landroid/database/CursorToBulkCursorAdaptor;->onMove(I)V
+Landroid/database/CursorToBulkCursorAdaptor;->requery(Landroid/database/IContentObserver;)I
+Landroid/database/CursorToBulkCursorAdaptor;->respond(Landroid/os/Bundle;)Landroid/os/Bundle;
+Landroid/database/CursorToBulkCursorAdaptor;->TAG:Ljava/lang/String;
+Landroid/database/CursorToBulkCursorAdaptor;->throwIfCursorIsClosed()V
+Landroid/database/CursorToBulkCursorAdaptor;->unregisterObserverProxyLocked()V
+Landroid/database/CursorWindow;-><init>(Landroid/os/Parcel;)V
+Landroid/database/CursorWindow;->dispose()V
+Landroid/database/CursorWindow;->getCursorWindowSize()I
+Landroid/database/CursorWindow;->getName()Ljava/lang/String;
+Landroid/database/CursorWindow;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/database/CursorWindow;->mName:Ljava/lang/String;
+Landroid/database/CursorWindow;->mStartPos:I
+Landroid/database/CursorWindow;->nativeAllocRow(J)Z
+Landroid/database/CursorWindow;->nativeClear(J)V
+Landroid/database/CursorWindow;->nativeCopyStringToBuffer(JIILandroid/database/CharArrayBuffer;)V
+Landroid/database/CursorWindow;->nativeCreate(Ljava/lang/String;I)J
+Landroid/database/CursorWindow;->nativeCreateFromParcel(Landroid/os/Parcel;)J
+Landroid/database/CursorWindow;->nativeDispose(J)V
+Landroid/database/CursorWindow;->nativeFreeLastRow(J)V
+Landroid/database/CursorWindow;->nativeGetBlob(JII)[B
+Landroid/database/CursorWindow;->nativeGetDouble(JII)D
+Landroid/database/CursorWindow;->nativeGetLong(JII)J
+Landroid/database/CursorWindow;->nativeGetName(J)Ljava/lang/String;
+Landroid/database/CursorWindow;->nativeGetNumRows(J)I
+Landroid/database/CursorWindow;->nativeGetString(JII)Ljava/lang/String;
+Landroid/database/CursorWindow;->nativeGetType(JII)I
+Landroid/database/CursorWindow;->nativePutBlob(J[BII)Z
+Landroid/database/CursorWindow;->nativePutDouble(JDII)Z
+Landroid/database/CursorWindow;->nativePutLong(JJII)Z
+Landroid/database/CursorWindow;->nativePutNull(JII)Z
+Landroid/database/CursorWindow;->nativePutString(JLjava/lang/String;II)Z
+Landroid/database/CursorWindow;->nativeSetNumColumns(JI)Z
+Landroid/database/CursorWindow;->nativeWriteToParcel(JLandroid/os/Parcel;)V
+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;
+Landroid/database/DatabaseUtils$InsertHelper;->insertInternal(Landroid/content/ContentValues;Z)J
+Landroid/database/DatabaseUtils$InsertHelper;->mColumns:Ljava/util/HashMap;
+Landroid/database/DatabaseUtils$InsertHelper;->mDb:Landroid/database/sqlite/SQLiteDatabase;
+Landroid/database/DatabaseUtils$InsertHelper;->mInsertSQL:Ljava/lang/String;
+Landroid/database/DatabaseUtils$InsertHelper;->mInsertStatement:Landroid/database/sqlite/SQLiteStatement;
+Landroid/database/DatabaseUtils$InsertHelper;->mPreparedStatement:Landroid/database/sqlite/SQLiteStatement;
+Landroid/database/DatabaseUtils$InsertHelper;->mReplaceStatement:Landroid/database/sqlite/SQLiteStatement;
+Landroid/database/DatabaseUtils$InsertHelper;->mTableName:Ljava/lang/String;
+Landroid/database/DatabaseUtils$InsertHelper;->TABLE_INFO_PRAGMA_COLUMNNAME_INDEX:I
+Landroid/database/DatabaseUtils$InsertHelper;->TABLE_INFO_PRAGMA_DEFAULT_INDEX:I
+Landroid/database/DatabaseUtils;->cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V
+Landroid/database/DatabaseUtils;->DEBUG:Z
+Landroid/database/DatabaseUtils;->DIGITS:[C
+Landroid/database/DatabaseUtils;->encodeHex([B)[C
+Landroid/database/DatabaseUtils;->findRowIdColumnIndex([Ljava/lang/String;)I
+Landroid/database/DatabaseUtils;->getCollationKeyInBytes(Ljava/lang/String;)[B
+Landroid/database/DatabaseUtils;->getKeyLen([B)I
+Landroid/database/DatabaseUtils;->mColl:Ljava/text/Collator;
+Landroid/database/DatabaseUtils;->queryIsEmpty(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Z
+Landroid/database/DatabaseUtils;->readExceptionFromParcel(Landroid/os/Parcel;Ljava/lang/String;I)V
+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
+Landroid/database/IBulkCursor;->DEACTIVATE_TRANSACTION:I
+Landroid/database/IBulkCursor;->descriptor:Ljava/lang/String;
+Landroid/database/IBulkCursor;->getExtras()Landroid/os/Bundle;
+Landroid/database/IBulkCursor;->getWindow(I)Landroid/database/CursorWindow;
+Landroid/database/IBulkCursor;->GET_CURSOR_WINDOW_TRANSACTION:I
+Landroid/database/IBulkCursor;->GET_EXTRAS_TRANSACTION:I
+Landroid/database/IBulkCursor;->onMove(I)V
+Landroid/database/IBulkCursor;->ON_MOVE_TRANSACTION:I
+Landroid/database/IBulkCursor;->requery(Landroid/database/IContentObserver;)I
+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
+Landroid/database/MatrixCursor;->addRow(Ljava/util/ArrayList;I)V
+Landroid/database/MatrixCursor;->columnCount:I
+Landroid/database/MatrixCursor;->columnNames:[Ljava/lang/String;
+Landroid/database/MatrixCursor;->ensureCapacity(I)V
+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;
+Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->init(Ljava/lang/String;)V
+Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->initIfNeeded()V
+Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->isCompatibilityWalSupported()Z
+Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->reset()V
+Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->sCallingGlobalSettings:Z
+Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->sCompatibilityWalSupported:Z
+Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->sFlagsSet:Z
+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;
+Landroid/database/sqlite/SQLiteConnection$Operation;->getTraceMethodName()Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnection$Operation;->MAX_TRACE_METHOD_NAME_LEN:I
+Landroid/database/sqlite/SQLiteConnection$Operation;->mBindArgs:Ljava/util/ArrayList;
+Landroid/database/sqlite/SQLiteConnection$Operation;->mCookie:I
+Landroid/database/sqlite/SQLiteConnection$Operation;->mEndTime:J
+Landroid/database/sqlite/SQLiteConnection$Operation;->mException:Ljava/lang/Exception;
+Landroid/database/sqlite/SQLiteConnection$Operation;->mFinished:Z
+Landroid/database/sqlite/SQLiteConnection$Operation;->mKind:Ljava/lang/String;
+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
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->COOKIE_INDEX_MASK:I
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->describeCurrentOperation()Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->dump(Landroid/util/Printer;Z)V
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperation(I)V
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLogLocked(I)Z
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->getOperationLocked(I)Landroid/database/sqlite/SQLiteConnection$Operation;
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperationLocked(ILjava/lang/String;)V
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->MAX_RECENT_OPERATIONS:I
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->mGeneration:I
+Landroid/database/sqlite/SQLiteConnection$OperationLog;->mIndex:I
+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
+Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mNumParameters:I
+Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mPoolNext:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
+Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mReadOnly:Z
+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
+Landroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
+Landroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
+Landroid/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnection;->close()V
+Landroid/database/sqlite/SQLiteConnection;->collectDbStats(Ljava/util/ArrayList;)V
+Landroid/database/sqlite/SQLiteConnection;->collectDbStatsUnsafe(Ljava/util/ArrayList;)V
+Landroid/database/sqlite/SQLiteConnection;->DEBUG:Z
+Landroid/database/sqlite/SQLiteConnection;->describeCurrentOperationUnsafe()Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
+Landroid/database/sqlite/SQLiteConnection;->dispose(Z)V
+Landroid/database/sqlite/SQLiteConnection;->dump(Landroid/util/Printer;Z)V
+Landroid/database/sqlite/SQLiteConnection;->dumpUnsafe(Landroid/util/Printer;Z)V
+Landroid/database/sqlite/SQLiteConnection;->EMPTY_BYTE_ARRAY:[B
+Landroid/database/sqlite/SQLiteConnection;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
+Landroid/database/sqlite/SQLiteConnection;->executeForBlobFileDescriptor(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;
+Landroid/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I
+Landroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I
+Landroid/database/sqlite/SQLiteConnection;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
+Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
+Landroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
+Landroid/database/sqlite/SQLiteConnection;->getConnectionId()I
+Landroid/database/sqlite/SQLiteConnection;->getMainDbStatsUnsafe(IJJ)Landroid/database/sqlite/SQLiteDebug$DbStats;
+Landroid/database/sqlite/SQLiteConnection;->isCacheable(I)Z
+Landroid/database/sqlite/SQLiteConnection;->isPreparedStatementInCache(Ljava/lang/String;)Z
+Landroid/database/sqlite/SQLiteConnection;->isPrimaryConnection()Z
+Landroid/database/sqlite/SQLiteConnection;->mCancellationSignalAttachCount:I
+Landroid/database/sqlite/SQLiteConnection;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
+Landroid/database/sqlite/SQLiteConnection;->mConnectionId:I
+Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
+Landroid/database/sqlite/SQLiteConnection;->mIsPrimaryConnection:Z
+Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
+Landroid/database/sqlite/SQLiteConnection;->mOnlyAllowReadOnlyOperations:Z
+Landroid/database/sqlite/SQLiteConnection;->mPool:Landroid/database/sqlite/SQLiteConnectionPool;
+Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
+Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementPool:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
+Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
+Landroid/database/sqlite/SQLiteConnection;->nativeBindBlob(JJI[B)V
+Landroid/database/sqlite/SQLiteConnection;->nativeBindDouble(JJID)V
+Landroid/database/sqlite/SQLiteConnection;->nativeBindLong(JJIJ)V
+Landroid/database/sqlite/SQLiteConnection;->nativeBindNull(JJI)V
+Landroid/database/sqlite/SQLiteConnection;->nativeBindString(JJILjava/lang/String;)V
+Landroid/database/sqlite/SQLiteConnection;->nativeCancel(J)V
+Landroid/database/sqlite/SQLiteConnection;->nativeClose(J)V
+Landroid/database/sqlite/SQLiteConnection;->nativeExecute(JJ)V
+Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForBlobFileDescriptor(JJ)I
+Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForChangedRowCount(JJ)I
+Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForCursorWindow(JJJIIZ)J
+Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForLastInsertedRowId(JJ)J
+Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForLong(JJ)J
+Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForString(JJ)Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnection;->nativeFinalizeStatement(JJ)V
+Landroid/database/sqlite/SQLiteConnection;->nativeGetColumnCount(JJ)I
+Landroid/database/sqlite/SQLiteConnection;->nativeGetColumnName(JJI)Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnection;->nativeGetDbLookaside(J)I
+Landroid/database/sqlite/SQLiteConnection;->nativeGetParameterCount(JJ)I
+Landroid/database/sqlite/SQLiteConnection;->nativeIsReadOnly(JJ)Z
+Landroid/database/sqlite/SQLiteConnection;->nativeOpen(Ljava/lang/String;ILjava/lang/String;ZZII)J
+Landroid/database/sqlite/SQLiteConnection;->nativePrepareStatement(JLjava/lang/String;)J
+Landroid/database/sqlite/SQLiteConnection;->nativeRegisterCustomFunction(JLandroid/database/sqlite/SQLiteCustomFunction;)V
+Landroid/database/sqlite/SQLiteConnection;->nativeRegisterLocalizedCollators(JLjava/lang/String;)V
+Landroid/database/sqlite/SQLiteConnection;->nativeResetCancel(JZ)V
+Landroid/database/sqlite/SQLiteConnection;->nativeResetStatementAndClearBindings(JJ)V
+Landroid/database/sqlite/SQLiteConnection;->obtainPreparedStatement(Ljava/lang/String;JIIZ)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
+Landroid/database/sqlite/SQLiteConnection;->open()V
+Landroid/database/sqlite/SQLiteConnection;->open(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)Landroid/database/sqlite/SQLiteConnection;
+Landroid/database/sqlite/SQLiteConnection;->prepare(Ljava/lang/String;Landroid/database/sqlite/SQLiteStatementInfo;)V
+Landroid/database/sqlite/SQLiteConnection;->reconfigure(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
+Landroid/database/sqlite/SQLiteConnection;->recyclePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
+Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
+Landroid/database/sqlite/SQLiteConnection;->setAutoCheckpointInterval()V
+Landroid/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V
+Landroid/database/sqlite/SQLiteConnection;->setJournalMode(Ljava/lang/String;)V
+Landroid/database/sqlite/SQLiteConnection;->setJournalSizeLimit()V
+Landroid/database/sqlite/SQLiteConnection;->setLocaleFromConfiguration()V
+Landroid/database/sqlite/SQLiteConnection;->setOnlyAllowReadOnlyOperations(Z)V
+Landroid/database/sqlite/SQLiteConnection;->setPageSize()V
+Landroid/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V
+Landroid/database/sqlite/SQLiteConnection;->setWalModeFromConfiguration()V
+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
+Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mException:Ljava/lang/RuntimeException;
+Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mNext:Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;
+Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mNonce:I
+Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mPriority:I
+Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mSql:Ljava/lang/String;
+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
+Landroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionLocked(I)Z
+Landroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionsAndLogExceptionsLocked()V
+Landroid/database/sqlite/SQLiteConnectionPool;->closeAvailableNonPrimaryConnectionsAndLogExceptions()V
+Landroid/database/sqlite/SQLiteConnectionPool;->closeAvailableNonPrimaryConnectionsAndLogExceptionsLocked()V
+Landroid/database/sqlite/SQLiteConnectionPool;->closeConnectionAndLogExceptionsLocked(Landroid/database/sqlite/SQLiteConnection;)V
+Landroid/database/sqlite/SQLiteConnectionPool;->closeExcessConnectionsAndLogExceptionsLocked()V
+Landroid/database/sqlite/SQLiteConnectionPool;->collectDbStats(Ljava/util/ArrayList;)V
+Landroid/database/sqlite/SQLiteConnectionPool;->CONNECTION_FLAG_INTERACTIVE:I
+Landroid/database/sqlite/SQLiteConnectionPool;->CONNECTION_FLAG_PRIMARY_CONNECTION_AFFINITY:I
+Landroid/database/sqlite/SQLiteConnectionPool;->CONNECTION_FLAG_READ_ONLY:I
+Landroid/database/sqlite/SQLiteConnectionPool;->CONNECTION_POOL_BUSY_MILLIS:J
+Landroid/database/sqlite/SQLiteConnectionPool;->disableIdleConnectionHandler()V
+Landroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLocked()V
+Landroid/database/sqlite/SQLiteConnectionPool;->dispose(Z)V
+Landroid/database/sqlite/SQLiteConnectionPool;->dump(Landroid/util/Printer;Z)V
+Landroid/database/sqlite/SQLiteConnectionPool;->finishAcquireConnectionLocked(Landroid/database/sqlite/SQLiteConnection;I)V
+Landroid/database/sqlite/SQLiteConnectionPool;->getPriority(I)I
+Landroid/database/sqlite/SQLiteConnectionPool;->isSessionBlockingImportantConnectionWaitersLocked(ZI)Z
+Landroid/database/sqlite/SQLiteConnectionPool;->logConnectionPoolBusyLocked(JI)V
+Landroid/database/sqlite/SQLiteConnectionPool;->mAcquiredConnections:Ljava/util/WeakHashMap;
+Landroid/database/sqlite/SQLiteConnectionPool;->markAcquiredConnectionsLocked(Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)V
+Landroid/database/sqlite/SQLiteConnectionPool;->mAvailableNonPrimaryConnections:Ljava/util/ArrayList;
+Landroid/database/sqlite/SQLiteConnectionPool;->mAvailablePrimaryConnection:Landroid/database/sqlite/SQLiteConnection;
+Landroid/database/sqlite/SQLiteConnectionPool;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/database/sqlite/SQLiteConnectionPool;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
+Landroid/database/sqlite/SQLiteConnectionPool;->mConnectionLeaked:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/database/sqlite/SQLiteConnectionPool;->mConnectionWaiterPool:Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;
+Landroid/database/sqlite/SQLiteConnectionPool;->mConnectionWaiterQueue:Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;
+Landroid/database/sqlite/SQLiteConnectionPool;->mIdleConnectionHandler:Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;
+Landroid/database/sqlite/SQLiteConnectionPool;->mIsOpen:Z
+Landroid/database/sqlite/SQLiteConnectionPool;->mLock:Ljava/lang/Object;
+Landroid/database/sqlite/SQLiteConnectionPool;->mMaxConnectionPoolSize:I
+Landroid/database/sqlite/SQLiteConnectionPool;->mNextConnectionId:I
+Landroid/database/sqlite/SQLiteConnectionPool;->mTotalExecutionTimeCounter:Ljava/util/concurrent/atomic/AtomicLong;
+Landroid/database/sqlite/SQLiteConnectionPool;->obtainConnectionWaiterLocked(Ljava/lang/Thread;JIZLjava/lang/String;I)Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;
+Landroid/database/sqlite/SQLiteConnectionPool;->onConnectionLeaked()V
+Landroid/database/sqlite/SQLiteConnectionPool;->onStatementExecuted(J)V
+Landroid/database/sqlite/SQLiteConnectionPool;->open()V
+Landroid/database/sqlite/SQLiteConnectionPool;->open(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)Landroid/database/sqlite/SQLiteConnectionPool;
+Landroid/database/sqlite/SQLiteConnectionPool;->openConnectionLocked(Landroid/database/sqlite/SQLiteDatabaseConfiguration;Z)Landroid/database/sqlite/SQLiteConnection;
+Landroid/database/sqlite/SQLiteConnectionPool;->reconfigure(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
+Landroid/database/sqlite/SQLiteConnectionPool;->reconfigureAllConnectionsLocked()V
+Landroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)Z
+Landroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionWaiterLocked(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V
+Landroid/database/sqlite/SQLiteConnectionPool;->releaseConnection(Landroid/database/sqlite/SQLiteConnection;)V
+Landroid/database/sqlite/SQLiteConnectionPool;->setMaxConnectionPoolSizeLocked()V
+Landroid/database/sqlite/SQLiteConnectionPool;->setupIdleConnectionHandler(Landroid/os/Looper;J)V
+Landroid/database/sqlite/SQLiteConnectionPool;->shouldYieldConnection(Landroid/database/sqlite/SQLiteConnection;I)Z
+Landroid/database/sqlite/SQLiteConnectionPool;->TAG:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteConnectionPool;->throwIfClosedLocked()V
+Landroid/database/sqlite/SQLiteConnectionPool;->tryAcquireNonPrimaryConnectionLocked(Ljava/lang/String;I)Landroid/database/sqlite/SQLiteConnection;
+Landroid/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Landroid/database/sqlite/SQLiteConnection;
+Landroid/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;
+Landroid/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V
+Landroid/database/sqlite/SQLiteCursor;->mColumnNameMap:Ljava/util/Map;
+Landroid/database/sqlite/SQLiteCursor;->mColumns:[Ljava/lang/String;
+Landroid/database/sqlite/SQLiteCursor;->mCount:I
+Landroid/database/sqlite/SQLiteCursor;->mCursorWindowCapacity:I
+Landroid/database/sqlite/SQLiteCursor;->mDriver:Landroid/database/sqlite/SQLiteCursorDriver;
+Landroid/database/sqlite/SQLiteCursor;->mFillWindowForwardOnly:Z
+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;
+Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->mIdleConnectionTimeout:J
+Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->mJournalMode:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->mLookasideSlotCount:I
+Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->mLookasideSlotSize:I
+Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->mOpenFlags:I
+Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->mSyncMode:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setWriteAheadLoggingEnabled(Z)V
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;-><init>(ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->mCursorFactory:Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->mErrorHandler:Landroid/database/DatabaseErrorHandler;
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->mIdleConnectionTimeout:J
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->mJournalMode:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->mLookasideSlotCount:I
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->mLookasideSlotSize:I
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->mOpenFlags:I
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->mSyncMode:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabase$OpenParams;->toBuilder()Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
+Landroid/database/sqlite/SQLiteDatabase;-><init>(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V
+Landroid/database/sqlite/SQLiteDatabase;->addCustomFunction(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CustomFunction;)V
+Landroid/database/sqlite/SQLiteDatabase;->createSession()Landroid/database/sqlite/SQLiteSession;
+Landroid/database/sqlite/SQLiteDatabase;->DEBUG_CLOSE_IDLE_CONNECTIONS:Z
+Landroid/database/sqlite/SQLiteDatabase;->DISABLE_COMPATIBILITY_WAL:I
+Landroid/database/sqlite/SQLiteDatabase;->dispose(Z)V
+Landroid/database/sqlite/SQLiteDatabase;->dump(Landroid/util/Printer;Z)V
+Landroid/database/sqlite/SQLiteDatabase;->dumpAll(Landroid/util/Printer;Z)V
+Landroid/database/sqlite/SQLiteDatabase;->EVENT_DB_CORRUPT:I
+Landroid/database/sqlite/SQLiteDatabase;->executeSql(Ljava/lang/String;[Ljava/lang/Object;)I
+Landroid/database/sqlite/SQLiteDatabase;->getDbStats()Ljava/util/ArrayList;
+Landroid/database/sqlite/SQLiteDatabase;->getLabel()Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabase;->getThreadDefaultConnectionFlags(Z)I
+Landroid/database/sqlite/SQLiteDatabase;->isInMemoryDatabase()Z
+Landroid/database/sqlite/SQLiteDatabase;->isMainThread()Z
+Landroid/database/sqlite/SQLiteDatabase;->isReadOnlyLocked()Z
+Landroid/database/sqlite/SQLiteDatabase;->mCloseGuardLocked:Ldalvik/system/CloseGuard;
+Landroid/database/sqlite/SQLiteDatabase;->mCursorFactory:Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
+Landroid/database/sqlite/SQLiteDatabase;->mErrorHandler:Landroid/database/DatabaseErrorHandler;
+Landroid/database/sqlite/SQLiteDatabase;->mHasAttachedDbsLocked:Z
+Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object;
+Landroid/database/sqlite/SQLiteDatabase;->onCorruption()V
+Landroid/database/sqlite/SQLiteDatabase;->open()V
+Landroid/database/sqlite/SQLiteDatabase;->openInner()V
+Landroid/database/sqlite/SQLiteDatabase;->OPEN_READ_MASK:I
+Landroid/database/sqlite/SQLiteDatabase;->sActiveDatabases:Ljava/util/WeakHashMap;
+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;
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->EMAIL_IN_DB_PATTERN:Ljava/util/regex/Pattern;
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->foreignKeyConstraintsEnabled:Z
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->idleConnectionTimeoutMs:J
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isLookasideConfigSet()Z
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->journalMode:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->label:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->locale:Ljava/util/Locale;
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->lookasideSlotCount:I
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->lookasideSlotSize:I
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->MEMORY_DB_PATH:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDatabaseConfiguration;->stripPathForLogs(Ljava/lang/String;)Ljava/lang/String;
+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
+Landroid/database/sqlite/SQLiteDebug;->DEBUG_SQL_STATEMENTS:Z
+Landroid/database/sqlite/SQLiteDebug;->DEBUG_SQL_TIME:Z
+Landroid/database/sqlite/SQLiteDebug;->dump(Landroid/util/Printer;[Ljava/lang/String;)V
+Landroid/database/sqlite/SQLiteDebug;->getDatabaseInfo()Landroid/database/sqlite/SQLiteDebug$PagerStats;
+Landroid/database/sqlite/SQLiteDebug;->nativeGetPagerStats(Landroid/database/sqlite/SQLiteDebug$PagerStats;)V
+Landroid/database/sqlite/SQLiteDebug;->shouldLogSlowQuery(J)Z
+Landroid/database/sqlite/SQLiteDirectCursorDriver;->mCancellationSignal:Landroid/os/CancellationSignal;
+Landroid/database/sqlite/SQLiteDirectCursorDriver;->mDatabase:Landroid/database/sqlite/SQLiteDatabase;
+Landroid/database/sqlite/SQLiteDirectCursorDriver;->mEditTable:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteDirectCursorDriver;->mQuery:Landroid/database/sqlite/SQLiteQuery;
+Landroid/database/sqlite/SQLiteDirectCursorDriver;->mSql:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteGlobal;-><init>()V
+Landroid/database/sqlite/SQLiteGlobal;->nativeReleaseMemory()I
+Landroid/database/sqlite/SQLiteGlobal;->sDefaultPageSize:I
+Landroid/database/sqlite/SQLiteGlobal;->sLock:Ljava/lang/Object;
+Landroid/database/sqlite/SQLiteGlobal;->TAG:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;IILandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V
+Landroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;IILandroid/database/DatabaseErrorHandler;)V
+Landroid/database/sqlite/SQLiteOpenHelper;->getDatabaseLocked(Z)Landroid/database/sqlite/SQLiteDatabase;
+Landroid/database/sqlite/SQLiteOpenHelper;->mContext:Landroid/content/Context;
+Landroid/database/sqlite/SQLiteOpenHelper;->mDatabase:Landroid/database/sqlite/SQLiteDatabase;
+Landroid/database/sqlite/SQLiteOpenHelper;->mIsInitializing:Z
+Landroid/database/sqlite/SQLiteOpenHelper;->mMinimumSupportedVersion:I
+Landroid/database/sqlite/SQLiteOpenHelper;->mNewVersion:I
+Landroid/database/sqlite/SQLiteOpenHelper;->mOpenParamsBuilder:Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
+Landroid/database/sqlite/SQLiteOpenHelper;->onBeforeDelete(Landroid/database/sqlite/SQLiteDatabase;)V
+Landroid/database/sqlite/SQLiteOpenHelper;->setFilePermissionsForDb(Ljava/lang/String;)V
+Landroid/database/sqlite/SQLiteOpenHelper;->setOpenParamsBuilder(Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V
+Landroid/database/sqlite/SQLiteOpenHelper;->TAG:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteProgram;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
+Landroid/database/sqlite/SQLiteProgram;->bind(ILjava/lang/Object;)V
+Landroid/database/sqlite/SQLiteProgram;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
+Landroid/database/sqlite/SQLiteProgram;->getBindArgs()[Ljava/lang/Object;
+Landroid/database/sqlite/SQLiteProgram;->getColumnNames()[Ljava/lang/String;
+Landroid/database/sqlite/SQLiteProgram;->getConnectionFlags()I
+Landroid/database/sqlite/SQLiteProgram;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
+Landroid/database/sqlite/SQLiteProgram;->getSession()Landroid/database/sqlite/SQLiteSession;
+Landroid/database/sqlite/SQLiteProgram;->getSql()Ljava/lang/String;
+Landroid/database/sqlite/SQLiteProgram;->mColumnNames:[Ljava/lang/String;
+Landroid/database/sqlite/SQLiteProgram;->mDatabase:Landroid/database/sqlite/SQLiteDatabase;
+Landroid/database/sqlite/SQLiteProgram;->mNumParameters:I
+Landroid/database/sqlite/SQLiteProgram;->mReadOnly:Z
+Landroid/database/sqlite/SQLiteProgram;->onCorruption()V
+Landroid/database/sqlite/SQLiteQuery;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Landroid/os/CancellationSignal;)V
+Landroid/database/sqlite/SQLiteQuery;->fillWindow(Landroid/database/CursorWindow;IIZ)I
+Landroid/database/sqlite/SQLiteQuery;->mCancellationSignal:Landroid/os/CancellationSignal;
+Landroid/database/sqlite/SQLiteQuery;->TAG:Ljava/lang/String;
+Landroid/database/sqlite/SQLiteQueryBuilder;->appendClause(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/database/sqlite/SQLiteQueryBuilder;->mFactory:Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
+Landroid/database/sqlite/SQLiteQueryBuilder;->mProjectionMap:Ljava/util/Map;
+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
+Landroid/database/sqlite/SQLiteSession;->endTransaction(Landroid/os/CancellationSignal;)V
+Landroid/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroid/os/CancellationSignal;Z)V
+Landroid/database/sqlite/SQLiteSession;->execute(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)V
+Landroid/database/sqlite/SQLiteSession;->executeForBlobFileDescriptor(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;
+Landroid/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)I
+Landroid/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I
+Landroid/database/sqlite/SQLiteSession;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J
+Landroid/database/sqlite/SQLiteSession;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J
+Landroid/database/sqlite/SQLiteSession;->executeForString(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Ljava/lang/String;
+Landroid/database/sqlite/SQLiteSession;->executeSpecial(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Z
+Landroid/database/sqlite/SQLiteSession;->hasConnection()Z
+Landroid/database/sqlite/SQLiteSession;->hasNestedTransaction()Z
+Landroid/database/sqlite/SQLiteSession;->hasTransaction()Z
+Landroid/database/sqlite/SQLiteSession;->mConnection:Landroid/database/sqlite/SQLiteConnection;
+Landroid/database/sqlite/SQLiteSession;->mConnectionFlags:I
+Landroid/database/sqlite/SQLiteSession;->mConnectionPool:Landroid/database/sqlite/SQLiteConnectionPool;
+Landroid/database/sqlite/SQLiteSession;->mConnectionUseCount:I
+Landroid/database/sqlite/SQLiteSession;->mTransactionPool:Landroid/database/sqlite/SQLiteSession$Transaction;
+Landroid/database/sqlite/SQLiteSession;->mTransactionStack:Landroid/database/sqlite/SQLiteSession$Transaction;
+Landroid/database/sqlite/SQLiteSession;->obtainTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;)Landroid/database/sqlite/SQLiteSession$Transaction;
+Landroid/database/sqlite/SQLiteSession;->prepare(Ljava/lang/String;ILandroid/os/CancellationSignal;Landroid/database/sqlite/SQLiteStatementInfo;)V
+Landroid/database/sqlite/SQLiteSession;->recycleTransaction(Landroid/database/sqlite/SQLiteSession$Transaction;)V
+Landroid/database/sqlite/SQLiteSession;->releaseConnection()V
+Landroid/database/sqlite/SQLiteSession;->setTransactionSuccessful()V
+Landroid/database/sqlite/SQLiteSession;->throwIfNestedTransaction()V
+Landroid/database/sqlite/SQLiteSession;->throwIfNoTransaction()V
+Landroid/database/sqlite/SQLiteSession;->throwIfTransactionMarkedSuccessful()V
+Landroid/database/sqlite/SQLiteSession;->TRANSACTION_MODE_DEFERRED:I
+Landroid/database/sqlite/SQLiteSession;->TRANSACTION_MODE_EXCLUSIVE:I
+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
+Landroid/ddm/DdmHandleHeap;->CHUNK_HPGC:I
+Landroid/ddm/DdmHandleHeap;->CHUNK_HPIF:I
+Landroid/ddm/DdmHandleHeap;->CHUNK_HPSG:I
+Landroid/ddm/DdmHandleHeap;->CHUNK_NHSG:I
+Landroid/ddm/DdmHandleHeap;->CHUNK_REAE:I
+Landroid/ddm/DdmHandleHeap;->CHUNK_REAL:I
+Landroid/ddm/DdmHandleHeap;->CHUNK_REAQ:I
+Landroid/ddm/DdmHandleHeap;->handleHPDS(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleHeap;->handleHPDU(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleHeap;->handleHPGC(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleHeap;->handleHPIF(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleHeap;->handleHPSGNHSG(Lorg/apache/harmony/dalvik/ddmc/Chunk;Z)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleHeap;->handleREAE(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleHeap;->handleREAL(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+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
+Landroid/ddm/DdmHandleHello;->CHUNK_WAIT:I
+Landroid/ddm/DdmHandleHello;->FRAMEWORK_FEATURES:[Ljava/lang/String;
+Landroid/ddm/DdmHandleHello;->handleFEAT(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleHello;->handleHELO(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+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
+Landroid/ddm/DdmHandleProfiling;->CHUNK_MPRS:I
+Landroid/ddm/DdmHandleProfiling;->CHUNK_MPSE:I
+Landroid/ddm/DdmHandleProfiling;->CHUNK_MPSS:I
+Landroid/ddm/DdmHandleProfiling;->CHUNK_SPSE:I
+Landroid/ddm/DdmHandleProfiling;->CHUNK_SPSS:I
+Landroid/ddm/DdmHandleProfiling;->DEBUG:Z
+Landroid/ddm/DdmHandleProfiling;->handleMPRE(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleProfiling;->handleMPRQ(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleProfiling;->handleMPRS(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleProfiling;->handleMPSEOrSPSE(Lorg/apache/harmony/dalvik/ddmc/Chunk;Ljava/lang/String;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleProfiling;->handleMPSS(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+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
+Landroid/ddm/DdmHandleThread;->CHUNK_THDE:I
+Landroid/ddm/DdmHandleThread;->CHUNK_THEN:I
+Landroid/ddm/DdmHandleThread;->CHUNK_THST:I
+Landroid/ddm/DdmHandleThread;->createStackChunk([Ljava/lang/StackTraceElement;I)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleThread;->handleSTKL(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleThread;->handleTHEN(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+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;
+Landroid/ddm/DdmHandleViewDebug;->CHUNK_VULW:I
+Landroid/ddm/DdmHandleViewDebug;->CHUNK_VUOP:I
+Landroid/ddm/DdmHandleViewDebug;->CHUNK_VURT:I
+Landroid/ddm/DdmHandleViewDebug;->dumpDisplayLists(Landroid/view/View;Landroid/view/View;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleViewDebug;->dumpHierarchy(Landroid/view/View;Ljava/nio/ByteBuffer;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleViewDebug;->dumpTheme(Landroid/view/View;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleViewDebug;->ERR_EXCEPTION:I
+Landroid/ddm/DdmHandleViewDebug;->ERR_INVALID_OP:I
+Landroid/ddm/DdmHandleViewDebug;->ERR_INVALID_PARAM:I
+Landroid/ddm/DdmHandleViewDebug;->getRootView(Ljava/nio/ByteBuffer;)Landroid/view/View;
+Landroid/ddm/DdmHandleViewDebug;->getTargetView(Landroid/view/View;Ljava/nio/ByteBuffer;)Landroid/view/View;
+Landroid/ddm/DdmHandleViewDebug;->invokeViewMethod(Landroid/view/View;Landroid/view/View;Ljava/nio/ByteBuffer;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleViewDebug;->listWindows()Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleViewDebug;->profileView(Landroid/view/View;Landroid/view/View;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleViewDebug;->register()V
+Landroid/ddm/DdmHandleViewDebug;->setLayoutParameter(Landroid/view/View;Landroid/view/View;Ljava/nio/ByteBuffer;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+Landroid/ddm/DdmHandleViewDebug;->sInstance:Landroid/ddm/DdmHandleViewDebug;
+Landroid/ddm/DdmHandleViewDebug;->TAG:Ljava/lang/String;
+Landroid/ddm/DdmHandleViewDebug;->VUOP_CAPTURE_VIEW:I
+Landroid/ddm/DdmHandleViewDebug;->VUOP_DUMP_DISPLAYLIST:I
+Landroid/ddm/DdmHandleViewDebug;->VUOP_INVOKE_VIEW_METHOD:I
+Landroid/ddm/DdmHandleViewDebug;->VUOP_PROFILE_VIEW:I
+Landroid/ddm/DdmHandleViewDebug;->VUOP_SET_LAYOUT_PARAMETER:I
+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
+Landroid/drm/DrmErrorEvent;->checkTypeValidity(I)V
+Landroid/drm/DrmEvent;->mAttributes:Ljava/util/HashMap;
+Landroid/drm/DrmEvent;->mMessage:Ljava/lang/String;
+Landroid/drm/DrmEvent;->mType:I
+Landroid/drm/DrmEvent;->mUniqueId:I
+Landroid/drm/DrmInfo;->isValid()Z
+Landroid/drm/DrmInfo;->mAttributes:Ljava/util/HashMap;
+Landroid/drm/DrmInfo;->mData:[B
+Landroid/drm/DrmInfo;->mInfoType:I
+Landroid/drm/DrmInfo;->mMimeType:Ljava/lang/String;
+Landroid/drm/DrmInfoEvent;->checkTypeValidity(I)V
+Landroid/drm/DrmInfoRequest;->isValid()Z
+Landroid/drm/DrmInfoRequest;->isValidType(I)Z
+Landroid/drm/DrmInfoRequest;->mInfoType:I
+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
+Landroid/drm/DrmManagerClient;->convertUriToPath(Landroid/net/Uri;)Ljava/lang/String;
+Landroid/drm/DrmManagerClient;->createEventThreads()V
+Landroid/drm/DrmManagerClient;->createListeners()V
+Landroid/drm/DrmManagerClient;->getErrorType(I)I
+Landroid/drm/DrmManagerClient;->getEventType(I)I
+Landroid/drm/DrmManagerClient;->installDrmEngine(Ljava/lang/String;)V
+Landroid/drm/DrmManagerClient;->INVALID_SESSION:I
+Landroid/drm/DrmManagerClient;->mClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/drm/DrmManagerClient;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/drm/DrmManagerClient;->mContext:Landroid/content/Context;
+Landroid/drm/DrmManagerClient;->mEventHandler:Landroid/drm/DrmManagerClient$EventHandler;
+Landroid/drm/DrmManagerClient;->mEventThread:Landroid/os/HandlerThread;
+Landroid/drm/DrmManagerClient;->mInfoHandler:Landroid/drm/DrmManagerClient$InfoHandler;
+Landroid/drm/DrmManagerClient;->mInfoThread:Landroid/os/HandlerThread;
+Landroid/drm/DrmManagerClient;->mNativeContext:J
+Landroid/drm/DrmManagerClient;->mOnErrorListener:Landroid/drm/DrmManagerClient$OnErrorListener;
+Landroid/drm/DrmManagerClient;->mOnEventListener:Landroid/drm/DrmManagerClient$OnEventListener;
+Landroid/drm/DrmManagerClient;->mOnInfoListener:Landroid/drm/DrmManagerClient$OnInfoListener;
+Landroid/drm/DrmManagerClient;->mUniqueId:I
+Landroid/drm/DrmManagerClient;->notify(Ljava/lang/Object;IILjava/lang/String;)V
+Landroid/drm/DrmManagerClient;->TAG:Ljava/lang/String;
+Landroid/drm/DrmManagerClient;->_acquireDrmInfo(ILandroid/drm/DrmInfoRequest;)Landroid/drm/DrmInfo;
+Landroid/drm/DrmManagerClient;->_canHandle(ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/drm/DrmManagerClient;->_checkRightsStatus(ILjava/lang/String;I)I
+Landroid/drm/DrmManagerClient;->_closeConvertSession(II)Landroid/drm/DrmConvertedStatus;
+Landroid/drm/DrmManagerClient;->_convertData(II[B)Landroid/drm/DrmConvertedStatus;
+Landroid/drm/DrmManagerClient;->_getAllSupportInfo(I)[Landroid/drm/DrmSupportInfo;
+Landroid/drm/DrmManagerClient;->_getConstraints(ILjava/lang/String;I)Landroid/content/ContentValues;
+Landroid/drm/DrmManagerClient;->_getDrmObjectType(ILjava/lang/String;Ljava/lang/String;)I
+Landroid/drm/DrmManagerClient;->_getMetadata(ILjava/lang/String;)Landroid/content/ContentValues;
+Landroid/drm/DrmManagerClient;->_getOriginalMimeType(ILjava/lang/String;Ljava/io/FileDescriptor;)Ljava/lang/String;
+Landroid/drm/DrmManagerClient;->_initialize()I
+Landroid/drm/DrmManagerClient;->_installDrmEngine(ILjava/lang/String;)V
+Landroid/drm/DrmManagerClient;->_openConvertSession(ILjava/lang/String;)I
+Landroid/drm/DrmManagerClient;->_processDrmInfo(ILandroid/drm/DrmInfo;)Landroid/drm/DrmInfoStatus;
+Landroid/drm/DrmManagerClient;->_release(I)V
+Landroid/drm/DrmManagerClient;->_removeAllRights(I)I
+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;
+Landroid/drm/DrmOutputStream;->mFd:Ljava/io/FileDescriptor;
+Landroid/drm/DrmOutputStream;->mPfd:Landroid/os/ParcelFileDescriptor;
+Landroid/drm/DrmOutputStream;->mSessionId:I
+Landroid/drm/DrmOutputStream;->TAG:Ljava/lang/String;
+Landroid/drm/DrmRights;->instantiate(Ljava/io/File;Ljava/lang/String;)V
+Landroid/drm/DrmRights;->isValid()Z
+Landroid/drm/DrmRights;->mAccountId:Ljava/lang/String;
+Landroid/drm/DrmRights;->mData:[B
+Landroid/drm/DrmRights;->mMimeType:Ljava/lang/String;
+Landroid/drm/DrmRights;->mSubscriptionId:Ljava/lang/String;
+Landroid/drm/DrmStore$Action;->isValid(I)Z
+Landroid/drm/DrmStore$Playback;->isValid(I)Z
+Landroid/drm/DrmSupportInfo;->isSupportedFileSuffix(Ljava/lang/String;)Z
+Landroid/drm/DrmSupportInfo;->isSupportedMimeType(Ljava/lang/String;)Z
+Landroid/drm/DrmSupportInfo;->mDescription:Ljava/lang/String;
+Landroid/drm/DrmSupportInfo;->mFileSuffixList:Ljava/util/ArrayList;
+Landroid/drm/DrmSupportInfo;->mMimeTypeList:Ljava/util/ArrayList;
+Landroid/drm/DrmUtils$ExtendedMetadataParser;-><init>([B)V
+Landroid/drm/DrmUtils$ExtendedMetadataParser;->mMap:Ljava/util/HashMap;
+Landroid/drm/DrmUtils$ExtendedMetadataParser;->readByte([BI)I
+Landroid/drm/DrmUtils$ExtendedMetadataParser;->readMultipleBytes([BII)Ljava/lang/String;
+Landroid/drm/DrmUtils;->quietlyDispose(Ljava/io/Closeable;)V
+Landroid/drm/DrmUtils;->readBytes(Ljava/io/File;)[B
+Landroid/drm/DrmUtils;->readBytes(Ljava/lang/String;)[B
+Landroid/drm/DrmUtils;->removeFile(Ljava/lang/String;)V
+Landroid/drm/DrmUtils;->writeToFile(Ljava/lang/String;[B)V
+Landroid/drm/ProcessedData;-><init>([BLjava/lang/String;)V
+Landroid/drm/ProcessedData;-><init>([BLjava/lang/String;Ljava/lang/String;)V
+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
+Landroid/filterfw/core/AsyncRunner;->getError()Ljava/lang/Exception;
+Landroid/filterfw/core/AsyncRunner;->getGraph()Landroid/filterfw/core/FilterGraph;
+Landroid/filterfw/core/AsyncRunner;->isProcessing:Z
+Landroid/filterfw/core/AsyncRunner;->isRunning()Z
+Landroid/filterfw/core/AsyncRunner;->mDoneListener:Landroid/filterfw/core/GraphRunner$OnRunnerDoneListener;
+Landroid/filterfw/core/AsyncRunner;->mException:Ljava/lang/Exception;
+Landroid/filterfw/core/AsyncRunner;->mLogVerbose:Z
+Landroid/filterfw/core/AsyncRunner;->mRunner:Landroid/filterfw/core/SyncRunner;
+Landroid/filterfw/core/AsyncRunner;->mRunTask:Landroid/filterfw/core/AsyncRunner$AsyncRunnerTask;
+Landroid/filterfw/core/AsyncRunner;->mSchedulerClass:Ljava/lang/Class;
+Landroid/filterfw/core/AsyncRunner;->run()V
+Landroid/filterfw/core/AsyncRunner;->setDoneCallback(Landroid/filterfw/core/GraphRunner$OnRunnerDoneListener;)V
+Landroid/filterfw/core/AsyncRunner;->setException(Ljava/lang/Exception;)V
+Landroid/filterfw/core/AsyncRunner;->setGraph(Landroid/filterfw/core/FilterGraph;)V
+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
+Landroid/filterfw/core/CachedFrameManager;->findAvailableFrame(Landroid/filterfw/core/FrameFormat;IJ)Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/CachedFrameManager;->mAvailableFrames:Ljava/util/SortedMap;
+Landroid/filterfw/core/CachedFrameManager;->mStorageCapacity:I
+Landroid/filterfw/core/CachedFrameManager;->mStorageSize:I
+Landroid/filterfw/core/CachedFrameManager;->mTimeStamp:I
+Landroid/filterfw/core/CachedFrameManager;->newBoundFrame(Landroid/filterfw/core/FrameFormat;IJ)Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/CachedFrameManager;->newFrame(Landroid/filterfw/core/FrameFormat;)Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/CachedFrameManager;->releaseFrame(Landroid/filterfw/core/Frame;)Landroid/filterfw/core/Frame;
+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
+Landroid/filterfw/core/FieldPort;->getTarget()Ljava/lang/Object;
+Landroid/filterfw/core/FieldPort;->hasFrame()Z
+Landroid/filterfw/core/FieldPort;->mField:Ljava/lang/reflect/Field;
+Landroid/filterfw/core/FieldPort;->mHasFrame:Z
+Landroid/filterfw/core/FieldPort;->mValue:Ljava/lang/Object;
+Landroid/filterfw/core/FieldPort;->mValueWaiting:Z
+Landroid/filterfw/core/FieldPort;->pullFrame()Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/FieldPort;->pushFrame(Landroid/filterfw/core/Frame;)V
+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
+Landroid/filterfw/core/Filter;->addFieldPort(Ljava/lang/String;Ljava/lang/reflect/Field;ZZ)V
+Landroid/filterfw/core/Filter;->addInputPort(Ljava/lang/String;)V
+Landroid/filterfw/core/Filter;->addMaskedInputPort(Ljava/lang/String;Landroid/filterfw/core/FrameFormat;)V
+Landroid/filterfw/core/Filter;->addOutputBasedOnInput(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/filterfw/core/Filter;->addOutputPort(Ljava/lang/String;Landroid/filterfw/core/FrameFormat;)V
+Landroid/filterfw/core/Filter;->addProgramGenerator(Landroid/filterfw/core/GenerateProgramPort;Ljava/lang/reflect/Field;)V
+Landroid/filterfw/core/Filter;->addProgramPort(Ljava/lang/String;Ljava/lang/String;Ljava/lang/reflect/Field;Ljava/lang/Class;Z)V
+Landroid/filterfw/core/Filter;->canProcess()Z
+Landroid/filterfw/core/Filter;->clearInputs()V
+Landroid/filterfw/core/Filter;->clearOutputs()V
+Landroid/filterfw/core/Filter;->close(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->closeOutputPort(Ljava/lang/String;)V
+Landroid/filterfw/core/Filter;->closePorts()V
+Landroid/filterfw/core/Filter;->delayNextProcess(I)V
+Landroid/filterfw/core/Filter;->fieldPortValueUpdated(Ljava/lang/String;Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->filterMustClose()Z
+Landroid/filterfw/core/Filter;->getFilterClassName()Ljava/lang/String;
+Landroid/filterfw/core/Filter;->getInputFormat(Ljava/lang/String;)Landroid/filterfw/core/FrameFormat;
+Landroid/filterfw/core/Filter;->getInputPort(Ljava/lang/String;)Landroid/filterfw/core/InputPort;
+Landroid/filterfw/core/Filter;->getInputPorts()Ljava/util/Collection;
+Landroid/filterfw/core/Filter;->getName()Ljava/lang/String;
+Landroid/filterfw/core/Filter;->getNumberOfConnectedInputs()I
+Landroid/filterfw/core/Filter;->getNumberOfConnectedOutputs()I
+Landroid/filterfw/core/Filter;->getNumberOfInputs()I
+Landroid/filterfw/core/Filter;->getNumberOfOutputs()I
+Landroid/filterfw/core/Filter;->getOutputFormat(Ljava/lang/String;Landroid/filterfw/core/FrameFormat;)Landroid/filterfw/core/FrameFormat;
+Landroid/filterfw/core/Filter;->getOutputPort(Ljava/lang/String;)Landroid/filterfw/core/OutputPort;
+Landroid/filterfw/core/Filter;->getOutputPorts()Ljava/util/Collection;
+Landroid/filterfw/core/Filter;->getSleepDelay()I
+Landroid/filterfw/core/Filter;->getStatus()I
+Landroid/filterfw/core/Filter;->init()V
+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
+Landroid/filterfw/core/Filter;->isOpen()Z
+Landroid/filterfw/core/Filter;->mCurrentTimestamp:J
+Landroid/filterfw/core/Filter;->mFramesToRelease:Ljava/util/HashSet;
+Landroid/filterfw/core/Filter;->mFramesToSet:Ljava/util/HashMap;
+Landroid/filterfw/core/Filter;->mInputCount:I
+Landroid/filterfw/core/Filter;->mInputPorts:Ljava/util/HashMap;
+Landroid/filterfw/core/Filter;->mIsOpen:Z
+Landroid/filterfw/core/Filter;->mLogVerbose:Z
+Landroid/filterfw/core/Filter;->mName:Ljava/lang/String;
+Landroid/filterfw/core/Filter;->mOutputCount:I
+Landroid/filterfw/core/Filter;->mOutputPorts:Ljava/util/HashMap;
+Landroid/filterfw/core/Filter;->mSleepDelay:I
+Landroid/filterfw/core/Filter;->mStatus:I
+Landroid/filterfw/core/Filter;->notifyFieldPortValueUpdated(Ljava/lang/String;Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->open(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->openOutputs()V
+Landroid/filterfw/core/Filter;->outputConditionsMet()Z
+Landroid/filterfw/core/Filter;->parametersUpdated(Ljava/util/Set;)V
+Landroid/filterfw/core/Filter;->performClose(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->performOpen(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->performProcess(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->performTearDown(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->prepare(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->process(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->pullInput(Ljava/lang/String;)Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/Filter;->pushInputFrame(Ljava/lang/String;Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/Filter;->pushInputValue(Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/filterfw/core/Filter;->pushOutput(Ljava/lang/String;Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/Filter;->releasePulledFrames(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->setImmediateInputValue(Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/filterfw/core/Filter;->setInitialInputValues(Landroid/filterfw/core/KeyValueMap;)V
+Landroid/filterfw/core/Filter;->setInputFrame(Ljava/lang/String;Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/Filter;->setupPorts()V
+Landroid/filterfw/core/Filter;->setWaitsOnInputPort(Ljava/lang/String;Z)V
+Landroid/filterfw/core/Filter;->setWaitsOnOutputPort(Ljava/lang/String;Z)V
+Landroid/filterfw/core/Filter;->STATUS_ERROR:I
+Landroid/filterfw/core/Filter;->STATUS_FINISHED:I
+Landroid/filterfw/core/Filter;->STATUS_PREINIT:I
+Landroid/filterfw/core/Filter;->STATUS_PREPARED:I
+Landroid/filterfw/core/Filter;->STATUS_PROCESSING:I
+Landroid/filterfw/core/Filter;->STATUS_RELEASED:I
+Landroid/filterfw/core/Filter;->STATUS_SLEEPING:I
+Landroid/filterfw/core/Filter;->STATUS_UNPREPARED:I
+Landroid/filterfw/core/Filter;->TAG:Ljava/lang/String;
+Landroid/filterfw/core/Filter;->tearDown(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/Filter;->transferInputFrames(Landroid/filterfw/core/FilterContext;)V
+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;
+Landroid/filterfw/core/FilterContext;->initGLEnvironment(Landroid/filterfw/core/GLEnvironment;)V
+Landroid/filterfw/core/FilterContext;->mFrameManager:Landroid/filterfw/core/FrameManager;
+Landroid/filterfw/core/FilterContext;->mGLEnvironment:Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/FilterContext;->mGraphs:Ljava/util/Set;
+Landroid/filterfw/core/FilterContext;->mStoredFrames:Ljava/util/HashMap;
+Landroid/filterfw/core/FilterContext;->removeFrame(Ljava/lang/String;)V
+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
+Landroid/filterfw/core/FilterFactory;->createFilterByClass(Ljava/lang/Class;Ljava/lang/String;)Landroid/filterfw/core/Filter;
+Landroid/filterfw/core/FilterFactory;->createFilterByClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/filterfw/core/Filter;
+Landroid/filterfw/core/FilterFactory;->mClassLoaderGuard:Ljava/lang/Object;
+Landroid/filterfw/core/FilterFactory;->mCurrentClassLoader:Ljava/lang/ClassLoader;
+Landroid/filterfw/core/FilterFactory;->mLibraries:Ljava/util/HashSet;
+Landroid/filterfw/core/FilterFactory;->mLogVerbose:Z
+Landroid/filterfw/core/FilterFactory;->mPackages:Ljava/util/HashSet;
+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;
+Landroid/filterfw/core/FilterFunction;->mFilterContext:Landroid/filterfw/core/FilterContext;
+Landroid/filterfw/core/FilterFunction;->mFilterIsSetup:Z
+Landroid/filterfw/core/FilterFunction;->mResultHolders:[Landroid/filterfw/core/FilterFunction$FrameHolderPort;
+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
+Landroid/filterfw/core/FilterGraph;->AUTOBRANCH_SYNCED:I
+Landroid/filterfw/core/FilterGraph;->AUTOBRANCH_UNSYNCED:I
+Landroid/filterfw/core/FilterGraph;->beginProcessing()V
+Landroid/filterfw/core/FilterGraph;->checkConnections()V
+Landroid/filterfw/core/FilterGraph;->closeFilters(Landroid/filterfw/core/FilterContext;)V
+Landroid/filterfw/core/FilterGraph;->connect(Landroid/filterfw/core/Filter;Ljava/lang/String;Landroid/filterfw/core/Filter;Ljava/lang/String;)V
+Landroid/filterfw/core/FilterGraph;->connect(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/filterfw/core/FilterGraph;->connectPorts()V
+Landroid/filterfw/core/FilterGraph;->containsFilter(Landroid/filterfw/core/Filter;)Z
+Landroid/filterfw/core/FilterGraph;->discardUnconnectedOutputs()V
+Landroid/filterfw/core/FilterGraph;->flushFrames()V
+Landroid/filterfw/core/FilterGraph;->getFilters()Ljava/util/Set;
+Landroid/filterfw/core/FilterGraph;->getSourceFilters()Ljava/util/HashSet;
+Landroid/filterfw/core/FilterGraph;->isReady()Z
+Landroid/filterfw/core/FilterGraph;->mAutoBranchMode:I
+Landroid/filterfw/core/FilterGraph;->mDiscardUnconnectedOutputs:Z
+Landroid/filterfw/core/FilterGraph;->mFilters:Ljava/util/HashSet;
+Landroid/filterfw/core/FilterGraph;->mIsReady:Z
+Landroid/filterfw/core/FilterGraph;->mLogVerbose:Z
+Landroid/filterfw/core/FilterGraph;->mNameMap:Ljava/util/HashMap;
+Landroid/filterfw/core/FilterGraph;->mPreconnections:Ljava/util/HashMap;
+Landroid/filterfw/core/FilterGraph;->mTypeCheckMode:I
+Landroid/filterfw/core/FilterGraph;->preconnect(Landroid/filterfw/core/OutputPort;Landroid/filterfw/core/InputPort;)V
+Landroid/filterfw/core/FilterGraph;->readyForProcessing(Landroid/filterfw/core/Filter;Ljava/util/Set;)Z
+Landroid/filterfw/core/FilterGraph;->removeFilter(Landroid/filterfw/core/Filter;)V
+Landroid/filterfw/core/FilterGraph;->runTypeCheck()V
+Landroid/filterfw/core/FilterGraph;->runTypeCheckOn(Landroid/filterfw/core/Filter;)V
+Landroid/filterfw/core/FilterGraph;->setAutoBranchMode(I)V
+Landroid/filterfw/core/FilterGraph;->setDiscardUnconnectedOutputs(Z)V
+Landroid/filterfw/core/FilterGraph;->setTypeCheckMode(I)V
+Landroid/filterfw/core/FilterGraph;->setupFilters()V
+Landroid/filterfw/core/FilterGraph;->TAG:Ljava/lang/String;
+Landroid/filterfw/core/FilterGraph;->TYPECHECK_DYNAMIC:I
+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
+Landroid/filterfw/core/FilterPort;->checkFrameType(Landroid/filterfw/core/Frame;Z)V
+Landroid/filterfw/core/FilterPort;->clear()V
+Landroid/filterfw/core/FilterPort;->close()V
+Landroid/filterfw/core/FilterPort;->filterMustClose()Z
+Landroid/filterfw/core/FilterPort;->getFilter()Landroid/filterfw/core/Filter;
+Landroid/filterfw/core/FilterPort;->getName()Ljava/lang/String;
+Landroid/filterfw/core/FilterPort;->getPortFormat()Landroid/filterfw/core/FrameFormat;
+Landroid/filterfw/core/FilterPort;->hasFrame()Z
+Landroid/filterfw/core/FilterPort;->isAttached()Z
+Landroid/filterfw/core/FilterPort;->isBlocking()Z
+Landroid/filterfw/core/FilterPort;->isOpen()Z
+Landroid/filterfw/core/FilterPort;->isReady()Z
+Landroid/filterfw/core/FilterPort;->mChecksType:Z
+Landroid/filterfw/core/FilterPort;->mFilter:Landroid/filterfw/core/Filter;
+Landroid/filterfw/core/FilterPort;->mIsBlocking:Z
+Landroid/filterfw/core/FilterPort;->mIsOpen:Z
+Landroid/filterfw/core/FilterPort;->mLogVerbose:Z
+Landroid/filterfw/core/FilterPort;->mName:Ljava/lang/String;
+Landroid/filterfw/core/FilterPort;->mPortFormat:Landroid/filterfw/core/FrameFormat;
+Landroid/filterfw/core/FilterPort;->open()V
+Landroid/filterfw/core/FilterPort;->pullFrame()Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/FilterPort;->pushFrame(Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/FilterPort;->setBlocking(Z)V
+Landroid/filterfw/core/FilterPort;->setChecksType(Z)V
+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
+Landroid/filterfw/core/FilterSurfaceView;->getGLEnv()Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/FilterSurfaceView;->getSurfaceId()I
+Landroid/filterfw/core/FilterSurfaceView;->mFormat:I
+Landroid/filterfw/core/FilterSurfaceView;->mGLEnv:Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/FilterSurfaceView;->mHeight:I
+Landroid/filterfw/core/FilterSurfaceView;->mListener:Landroid/view/SurfaceHolder$Callback;
+Landroid/filterfw/core/FilterSurfaceView;->mState:I
+Landroid/filterfw/core/FilterSurfaceView;->mSurfaceId:I
+Landroid/filterfw/core/FilterSurfaceView;->mWidth:I
+Landroid/filterfw/core/FilterSurfaceView;->registerSurface()V
+Landroid/filterfw/core/FilterSurfaceView;->STATE_ALLOCATED:I
+Landroid/filterfw/core/FilterSurfaceView;->STATE_CREATED:I
+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
+Landroid/filterfw/core/Frame;->convertBitmapToRGBA(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
+Landroid/filterfw/core/Frame;->decRefCount()I
+Landroid/filterfw/core/Frame;->getBindingId()J
+Landroid/filterfw/core/Frame;->getBindingType()I
+Landroid/filterfw/core/Frame;->getCapacity()I
+Landroid/filterfw/core/Frame;->getData()Ljava/nio/ByteBuffer;
+Landroid/filterfw/core/Frame;->getFloats()[F
+Landroid/filterfw/core/Frame;->getFrameManager()Landroid/filterfw/core/FrameManager;
+Landroid/filterfw/core/Frame;->getInts()[I
+Landroid/filterfw/core/Frame;->getObjectValue()Ljava/lang/Object;
+Landroid/filterfw/core/Frame;->getRefCount()I
+Landroid/filterfw/core/Frame;->hasNativeAllocation()Z
+Landroid/filterfw/core/Frame;->incRefCount()I
+Landroid/filterfw/core/Frame;->isReadOnly()Z
+Landroid/filterfw/core/Frame;->isReusable()Z
+Landroid/filterfw/core/Frame;->markReadOnly()V
+Landroid/filterfw/core/Frame;->mBindingId:J
+Landroid/filterfw/core/Frame;->mBindingType:I
+Landroid/filterfw/core/Frame;->mFormat:Landroid/filterfw/core/FrameFormat;
+Landroid/filterfw/core/Frame;->mFrameManager:Landroid/filterfw/core/FrameManager;
+Landroid/filterfw/core/Frame;->mReadOnly:Z
+Landroid/filterfw/core/Frame;->mRefCount:I
+Landroid/filterfw/core/Frame;->mReusable:Z
+Landroid/filterfw/core/Frame;->mTimestamp:J
+Landroid/filterfw/core/Frame;->NO_BINDING:I
+Landroid/filterfw/core/Frame;->onFrameFetch()V
+Landroid/filterfw/core/Frame;->onFrameStore()V
+Landroid/filterfw/core/Frame;->releaseNativeAllocation()V
+Landroid/filterfw/core/Frame;->requestResize([I)Z
+Landroid/filterfw/core/Frame;->reset(Landroid/filterfw/core/FrameFormat;)V
+Landroid/filterfw/core/Frame;->retain()Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/Frame;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/filterfw/core/Frame;->setData(Ljava/nio/ByteBuffer;)V
+Landroid/filterfw/core/Frame;->setData(Ljava/nio/ByteBuffer;II)V
+Landroid/filterfw/core/Frame;->setData([BII)V
+Landroid/filterfw/core/Frame;->setDataFromFrame(Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/Frame;->setFloats([F)V
+Landroid/filterfw/core/Frame;->setFormat(Landroid/filterfw/core/FrameFormat;)V
+Landroid/filterfw/core/Frame;->setGenericObjectValue(Ljava/lang/Object;)V
+Landroid/filterfw/core/Frame;->setObjectValue(Ljava/lang/Object;)V
+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;
+Landroid/filterfw/core/FrameFormat;->bytesPerSampleOf(I)I
+Landroid/filterfw/core/FrameFormat;->BYTES_PER_SAMPLE_UNSPECIFIED:I
+Landroid/filterfw/core/FrameFormat;->calcSize([I)I
+Landroid/filterfw/core/FrameFormat;->dimensionsToString([I)Ljava/lang/String;
+Landroid/filterfw/core/FrameFormat;->getBaseType()I
+Landroid/filterfw/core/FrameFormat;->getBytesPerSample()I
+Landroid/filterfw/core/FrameFormat;->getDepth()I
+Landroid/filterfw/core/FrameFormat;->getDimension(I)I
+Landroid/filterfw/core/FrameFormat;->getDimensionCount()I
+Landroid/filterfw/core/FrameFormat;->getDimensions()[I
+Landroid/filterfw/core/FrameFormat;->getLength()I
+Landroid/filterfw/core/FrameFormat;->getMetaValue(Ljava/lang/String;)Ljava/lang/Object;
+Landroid/filterfw/core/FrameFormat;->getNumberOfDimensions()I
+Landroid/filterfw/core/FrameFormat;->getObjectClass()Ljava/lang/Class;
+Landroid/filterfw/core/FrameFormat;->getSize()I
+Landroid/filterfw/core/FrameFormat;->getValuesPerSample()I
+Landroid/filterfw/core/FrameFormat;->hasMetaKey(Ljava/lang/String;)Z
+Landroid/filterfw/core/FrameFormat;->hasMetaKey(Ljava/lang/String;Ljava/lang/Class;)Z
+Landroid/filterfw/core/FrameFormat;->initDefaults()V
+Landroid/filterfw/core/FrameFormat;->isBinaryDataType()Z
+Landroid/filterfw/core/FrameFormat;->isCompatibleWith(Landroid/filterfw/core/FrameFormat;)Z
+Landroid/filterfw/core/FrameFormat;->isReplaceableBy(Landroid/filterfw/core/FrameFormat;)Z
+Landroid/filterfw/core/FrameFormat;->mayBeCompatibleWith(Landroid/filterfw/core/FrameFormat;)Z
+Landroid/filterfw/core/FrameFormat;->mBaseType:I
+Landroid/filterfw/core/FrameFormat;->mBytesPerSample:I
+Landroid/filterfw/core/FrameFormat;->mDimensions:[I
+Landroid/filterfw/core/FrameFormat;->metaDataToString(Landroid/filterfw/core/KeyValueMap;)Ljava/lang/String;
+Landroid/filterfw/core/FrameFormat;->mMetaData:Landroid/filterfw/core/KeyValueMap;
+Landroid/filterfw/core/FrameFormat;->mObjectClass:Ljava/lang/Class;
+Landroid/filterfw/core/FrameFormat;->mSize:I
+Landroid/filterfw/core/FrameFormat;->mTarget:I
+Landroid/filterfw/core/FrameFormat;->readTargetString(Ljava/lang/String;)I
+Landroid/filterfw/core/FrameFormat;->SIZE_UNKNOWN:I
+Landroid/filterfw/core/FrameFormat;->SIZE_UNSPECIFIED:I
+Landroid/filterfw/core/FrameFormat;->targetToString(I)Ljava/lang/String;
+Landroid/filterfw/core/FrameFormat;->TARGET_GPU:I
+Landroid/filterfw/core/FrameFormat;->TARGET_NATIVE:I
+Landroid/filterfw/core/FrameFormat;->TARGET_RS:I
+Landroid/filterfw/core/FrameFormat;->TARGET_SIMPLE:I
+Landroid/filterfw/core/FrameFormat;->TARGET_UNSPECIFIED:I
+Landroid/filterfw/core/FrameFormat;->TARGET_VERTEXBUFFER:I
+Landroid/filterfw/core/FrameFormat;->TYPE_BIT:I
+Landroid/filterfw/core/FrameFormat;->TYPE_BYTE:I
+Landroid/filterfw/core/FrameFormat;->TYPE_DOUBLE:I
+Landroid/filterfw/core/FrameFormat;->TYPE_FLOAT:I
+Landroid/filterfw/core/FrameFormat;->TYPE_INT16:I
+Landroid/filterfw/core/FrameFormat;->TYPE_INT32:I
+Landroid/filterfw/core/FrameFormat;->TYPE_OBJECT:I
+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;
+Landroid/filterfw/core/FrameManager;->getGLEnvironment()Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/FrameManager;->mContext:Landroid/filterfw/core/FilterContext;
+Landroid/filterfw/core/FrameManager;->releaseFrame(Landroid/filterfw/core/Frame;)Landroid/filterfw/core/Frame;
+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
+Landroid/filterfw/core/GLEnvironment;->initWithCurrentContext()V
+Landroid/filterfw/core/GLEnvironment;->initWithNewContext()V
+Landroid/filterfw/core/GLEnvironment;->isAnyContextActive()Z
+Landroid/filterfw/core/GLEnvironment;->isContextActive()Z
+Landroid/filterfw/core/GLEnvironment;->mManageContext:Z
+Landroid/filterfw/core/GLEnvironment;->nativeActivate()Z
+Landroid/filterfw/core/GLEnvironment;->nativeActivateSurfaceId(I)Z
+Landroid/filterfw/core/GLEnvironment;->nativeAddSurface(Landroid/view/Surface;)I
+Landroid/filterfw/core/GLEnvironment;->nativeAddSurfaceFromMediaRecorder(Landroid/media/MediaRecorder;)I
+Landroid/filterfw/core/GLEnvironment;->nativeAddSurfaceWidthHeight(Landroid/view/Surface;II)I
+Landroid/filterfw/core/GLEnvironment;->nativeAllocate()Z
+Landroid/filterfw/core/GLEnvironment;->nativeDeactivate()Z
+Landroid/filterfw/core/GLEnvironment;->nativeDeallocate()Z
+Landroid/filterfw/core/GLEnvironment;->nativeDisconnectSurfaceMediaSource(Landroid/media/MediaRecorder;)Z
+Landroid/filterfw/core/GLEnvironment;->nativeInitWithCurrentContext()Z
+Landroid/filterfw/core/GLEnvironment;->nativeInitWithNewContext()Z
+Landroid/filterfw/core/GLEnvironment;->nativeIsActive()Z
+Landroid/filterfw/core/GLEnvironment;->nativeIsAnyContextActive()Z
+Landroid/filterfw/core/GLEnvironment;->nativeIsContextActive()Z
+Landroid/filterfw/core/GLEnvironment;->nativeRemoveSurfaceId(I)Z
+Landroid/filterfw/core/GLEnvironment;->nativeSetSurfaceTimestamp(J)Z
+Landroid/filterfw/core/GLEnvironment;->nativeSwapBuffers()Z
+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
+Landroid/filterfw/core/GLFrame;->EXISTING_FBO_BINDING:I
+Landroid/filterfw/core/GLFrame;->EXISTING_TEXTURE_BINDING:I
+Landroid/filterfw/core/GLFrame;->EXTERNAL_TEXTURE:I
+Landroid/filterfw/core/GLFrame;->flushGPU(Ljava/lang/String;)V
+Landroid/filterfw/core/GLFrame;->focus()V
+Landroid/filterfw/core/GLFrame;->generateNativeMipMap()Z
+Landroid/filterfw/core/GLFrame;->getBitmap()Landroid/graphics/Bitmap;
+Landroid/filterfw/core/GLFrame;->getData()Ljava/nio/ByteBuffer;
+Landroid/filterfw/core/GLFrame;->getFboId()I
+Landroid/filterfw/core/GLFrame;->getFloats()[F
+Landroid/filterfw/core/GLFrame;->getGLEnvironment()Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/GLFrame;->getInts()[I
+Landroid/filterfw/core/GLFrame;->getNativeBitmap(Landroid/graphics/Bitmap;)Z
+Landroid/filterfw/core/GLFrame;->getNativeData()[B
+Landroid/filterfw/core/GLFrame;->getNativeFboId()I
+Landroid/filterfw/core/GLFrame;->getNativeFloats()[F
+Landroid/filterfw/core/GLFrame;->getNativeInts()[I
+Landroid/filterfw/core/GLFrame;->getNativeTextureId()I
+Landroid/filterfw/core/GLFrame;->getObjectValue()Ljava/lang/Object;
+Landroid/filterfw/core/GLFrame;->glFrameId:I
+Landroid/filterfw/core/GLFrame;->hasNativeAllocation()Z
+Landroid/filterfw/core/GLFrame;->init(Landroid/filterfw/core/GLEnvironment;)V
+Landroid/filterfw/core/GLFrame;->initNew(Z)V
+Landroid/filterfw/core/GLFrame;->initWithFbo(I)V
+Landroid/filterfw/core/GLFrame;->initWithTexture(I)V
+Landroid/filterfw/core/GLFrame;->mGLEnvironment:Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/GLFrame;->mOwnsTexture:Z
+Landroid/filterfw/core/GLFrame;->nativeAllocate(Landroid/filterfw/core/GLEnvironment;II)Z
+Landroid/filterfw/core/GLFrame;->nativeAllocateExternal(Landroid/filterfw/core/GLEnvironment;)Z
+Landroid/filterfw/core/GLFrame;->nativeAllocateWithFbo(Landroid/filterfw/core/GLEnvironment;III)Z
+Landroid/filterfw/core/GLFrame;->nativeAllocateWithTexture(Landroid/filterfw/core/GLEnvironment;III)Z
+Landroid/filterfw/core/GLFrame;->nativeCopyFromGL(Landroid/filterfw/core/GLFrame;)Z
+Landroid/filterfw/core/GLFrame;->nativeCopyFromNative(Landroid/filterfw/core/NativeFrame;)Z
+Landroid/filterfw/core/GLFrame;->nativeDeallocate()Z
+Landroid/filterfw/core/GLFrame;->nativeDetachTexFromFbo()Z
+Landroid/filterfw/core/GLFrame;->nativeFocus()Z
+Landroid/filterfw/core/GLFrame;->nativeReattachTexToFbo()Z
+Landroid/filterfw/core/GLFrame;->nativeResetParams()Z
+Landroid/filterfw/core/GLFrame;->NEW_FBO_BINDING:I
+Landroid/filterfw/core/GLFrame;->NEW_TEXTURE_BINDING:I
+Landroid/filterfw/core/GLFrame;->onFrameFetch()V
+Landroid/filterfw/core/GLFrame;->onFrameStore()V
+Landroid/filterfw/core/GLFrame;->releaseNativeAllocation()V
+Landroid/filterfw/core/GLFrame;->reset(Landroid/filterfw/core/FrameFormat;)V
+Landroid/filterfw/core/GLFrame;->setData(Ljava/nio/ByteBuffer;II)V
+Landroid/filterfw/core/GLFrame;->setDataFromFrame(Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/GLFrame;->setFloats([F)V
+Landroid/filterfw/core/GLFrame;->setInts([I)V
+Landroid/filterfw/core/GLFrame;->setNativeBitmap(Landroid/graphics/Bitmap;I)Z
+Landroid/filterfw/core/GLFrame;->setNativeData([BII)Z
+Landroid/filterfw/core/GLFrame;->setNativeFloats([F)Z
+Landroid/filterfw/core/GLFrame;->setNativeInts([I)Z
+Landroid/filterfw/core/GLFrame;->setNativeTextureParam(II)Z
+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
+Landroid/filterfw/core/GraphRunner;->deactivateGlContext()V
+Landroid/filterfw/core/GraphRunner;->getContext()Landroid/filterfw/core/FilterContext;
+Landroid/filterfw/core/GraphRunner;->isRunning()Z
+Landroid/filterfw/core/GraphRunner;->mFilterContext:Landroid/filterfw/core/FilterContext;
+Landroid/filterfw/core/GraphRunner;->RESULT_BLOCKED:I
+Landroid/filterfw/core/GraphRunner;->RESULT_ERROR:I
+Landroid/filterfw/core/GraphRunner;->RESULT_FINISHED:I
+Landroid/filterfw/core/GraphRunner;->RESULT_RUNNING:I
+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
+Landroid/filterfw/core/InputPort;->filterMustClose()Z
+Landroid/filterfw/core/InputPort;->getSourceFilter()Landroid/filterfw/core/Filter;
+Landroid/filterfw/core/InputPort;->getSourceFormat()Landroid/filterfw/core/FrameFormat;
+Landroid/filterfw/core/InputPort;->getSourcePort()Landroid/filterfw/core/OutputPort;
+Landroid/filterfw/core/InputPort;->getTarget()Ljava/lang/Object;
+Landroid/filterfw/core/InputPort;->isConnected()Z
+Landroid/filterfw/core/InputPort;->isReady()Z
+Landroid/filterfw/core/InputPort;->mSourcePort:Landroid/filterfw/core/OutputPort;
+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
+Landroid/filterfw/core/MutableFrameFormat;->setDimensions(I)V
+Landroid/filterfw/core/MutableFrameFormat;->setDimensions(III)V
+Landroid/filterfw/core/MutableFrameFormat;->setDimensions([I)V
+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
+Landroid/filterfw/core/NativeBuffer;->assertReadable()V
+Landroid/filterfw/core/NativeBuffer;->assertWritable()V
+Landroid/filterfw/core/NativeBuffer;->attachToFrame(Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/NativeBuffer;->count()I
+Landroid/filterfw/core/NativeBuffer;->deallocate(Z)Z
+Landroid/filterfw/core/NativeBuffer;->getElementSize()I
+Landroid/filterfw/core/NativeBuffer;->isReadOnly()Z
+Landroid/filterfw/core/NativeBuffer;->mAttachedFrame:Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/NativeBuffer;->mDataPointer:J
+Landroid/filterfw/core/NativeBuffer;->mOwnsData:Z
+Landroid/filterfw/core/NativeBuffer;->mRefCount:I
+Landroid/filterfw/core/NativeBuffer;->mSize:I
+Landroid/filterfw/core/NativeBuffer;->mutableCopy()Landroid/filterfw/core/NativeBuffer;
+Landroid/filterfw/core/NativeBuffer;->nativeCopyTo(Landroid/filterfw/core/NativeBuffer;)Z
+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
+Landroid/filterfw/core/NativeFrame;->getData()Ljava/nio/ByteBuffer;
+Landroid/filterfw/core/NativeFrame;->getFloats()[F
+Landroid/filterfw/core/NativeFrame;->getInts()[I
+Landroid/filterfw/core/NativeFrame;->getNativeBitmap(Landroid/graphics/Bitmap;II)Z
+Landroid/filterfw/core/NativeFrame;->getNativeBuffer(Landroid/filterfw/core/NativeBuffer;)Z
+Landroid/filterfw/core/NativeFrame;->getNativeCapacity()I
+Landroid/filterfw/core/NativeFrame;->getNativeData(I)[B
+Landroid/filterfw/core/NativeFrame;->getNativeFloats(I)[F
+Landroid/filterfw/core/NativeFrame;->getNativeInts(I)[I
+Landroid/filterfw/core/NativeFrame;->getObjectValue()Ljava/lang/Object;
+Landroid/filterfw/core/NativeFrame;->hasNativeAllocation()Z
+Landroid/filterfw/core/NativeFrame;->nativeAllocate(I)Z
+Landroid/filterfw/core/NativeFrame;->nativeCopyFromGL(Landroid/filterfw/core/GLFrame;)Z
+Landroid/filterfw/core/NativeFrame;->nativeCopyFromNative(Landroid/filterfw/core/NativeFrame;)Z
+Landroid/filterfw/core/NativeFrame;->nativeDeallocate()Z
+Landroid/filterfw/core/NativeFrame;->nativeFloatSize()I
+Landroid/filterfw/core/NativeFrame;->nativeFrameId:I
+Landroid/filterfw/core/NativeFrame;->nativeIntSize()I
+Landroid/filterfw/core/NativeFrame;->releaseNativeAllocation()V
+Landroid/filterfw/core/NativeFrame;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/filterfw/core/NativeFrame;->setData(Ljava/nio/ByteBuffer;II)V
+Landroid/filterfw/core/NativeFrame;->setDataFromFrame(Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/NativeFrame;->setFloats([F)V
+Landroid/filterfw/core/NativeFrame;->setInts([I)V
+Landroid/filterfw/core/NativeFrame;->setNativeBitmap(Landroid/graphics/Bitmap;II)Z
+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
+Landroid/filterfw/core/NativeProgram;->bindInitFunction(Ljava/lang/String;)Z
+Landroid/filterfw/core/NativeProgram;->bindProcessFunction(Ljava/lang/String;)Z
+Landroid/filterfw/core/NativeProgram;->bindResetFunction(Ljava/lang/String;)Z
+Landroid/filterfw/core/NativeProgram;->bindSetValueFunction(Ljava/lang/String;)Z
+Landroid/filterfw/core/NativeProgram;->bindTeardownFunction(Ljava/lang/String;)Z
+Landroid/filterfw/core/NativeProgram;->callNativeGetValue(Ljava/lang/String;)Ljava/lang/String;
+Landroid/filterfw/core/NativeProgram;->callNativeInit()Z
+Landroid/filterfw/core/NativeProgram;->callNativeProcess([Landroid/filterfw/core/NativeFrame;Landroid/filterfw/core/NativeFrame;)Z
+Landroid/filterfw/core/NativeProgram;->callNativeReset()Z
+Landroid/filterfw/core/NativeProgram;->callNativeSetValue(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/filterfw/core/NativeProgram;->callNativeTeardown()Z
+Landroid/filterfw/core/NativeProgram;->deallocate()Z
+Landroid/filterfw/core/NativeProgram;->getHostValue(Ljava/lang/String;)Ljava/lang/Object;
+Landroid/filterfw/core/NativeProgram;->mHasGetValueFunction:Z
+Landroid/filterfw/core/NativeProgram;->mHasInitFunction:Z
+Landroid/filterfw/core/NativeProgram;->mHasResetFunction:Z
+Landroid/filterfw/core/NativeProgram;->mHasSetValueFunction:Z
+Landroid/filterfw/core/NativeProgram;->mHasTeardownFunction:Z
+Landroid/filterfw/core/NativeProgram;->mTornDown:Z
+Landroid/filterfw/core/NativeProgram;->nativeInit()Z
+Landroid/filterfw/core/NativeProgram;->nativeProgramId:I
+Landroid/filterfw/core/NativeProgram;->openNativeLibrary(Ljava/lang/String;)Z
+Landroid/filterfw/core/NativeProgram;->process([Landroid/filterfw/core/Frame;Landroid/filterfw/core/Frame;)V
+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
+Landroid/filterfw/core/OutputPort;->connectTo(Landroid/filterfw/core/InputPort;)V
+Landroid/filterfw/core/OutputPort;->filterMustClose()Z
+Landroid/filterfw/core/OutputPort;->getBasePort()Landroid/filterfw/core/InputPort;
+Landroid/filterfw/core/OutputPort;->getTargetFilter()Landroid/filterfw/core/Filter;
+Landroid/filterfw/core/OutputPort;->getTargetPort()Landroid/filterfw/core/InputPort;
+Landroid/filterfw/core/OutputPort;->hasFrame()Z
+Landroid/filterfw/core/OutputPort;->isConnected()Z
+Landroid/filterfw/core/OutputPort;->isReady()Z
+Landroid/filterfw/core/OutputPort;->mBasePort:Landroid/filterfw/core/InputPort;
+Landroid/filterfw/core/OutputPort;->mTargetPort:Landroid/filterfw/core/InputPort;
+Landroid/filterfw/core/OutputPort;->open()V
+Landroid/filterfw/core/OutputPort;->pullFrame()Landroid/filterfw/core/Frame;
+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;
+Landroid/filterfw/core/ProgramVariable;->getVariableName()Ljava/lang/String;
+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;
+Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->getSize()I
+Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->markHeaderEnd()V
+Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->mBuffer:[B
+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;
+Landroid/filterfw/core/SerializedFrame;->getData()Ljava/nio/ByteBuffer;
+Landroid/filterfw/core/SerializedFrame;->getFloats()[F
+Landroid/filterfw/core/SerializedFrame;->getInts()[I
+Landroid/filterfw/core/SerializedFrame;->getObjectValue()Ljava/lang/Object;
+Landroid/filterfw/core/SerializedFrame;->hasNativeAllocation()Z
+Landroid/filterfw/core/SerializedFrame;->INITIAL_CAPACITY:I
+Landroid/filterfw/core/SerializedFrame;->mByteOutputStream:Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;
+Landroid/filterfw/core/SerializedFrame;->mObjectOut:Ljava/io/ObjectOutputStream;
+Landroid/filterfw/core/SerializedFrame;->releaseNativeAllocation()V
+Landroid/filterfw/core/SerializedFrame;->serializeObjectValue(Ljava/lang/Object;)V
+Landroid/filterfw/core/SerializedFrame;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/filterfw/core/SerializedFrame;->setData(Ljava/nio/ByteBuffer;II)V
+Landroid/filterfw/core/SerializedFrame;->setFloats([F)V
+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
+Landroid/filterfw/core/ShaderProgram;->allocate(Landroid/filterfw/core/GLEnvironment;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/filterfw/core/ShaderProgram;->beginDrawing()V
+Landroid/filterfw/core/ShaderProgram;->beginShaderDrawing()Z
+Landroid/filterfw/core/ShaderProgram;->compileAndLink()Z
+Landroid/filterfw/core/ShaderProgram;->deallocate()Z
+Landroid/filterfw/core/ShaderProgram;->getGLEnvironment()Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/ShaderProgram;->getGLEnvironment(Landroid/filterfw/core/FilterContext;)Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/ShaderProgram;->getHostValue(Ljava/lang/String;)Ljava/lang/Object;
+Landroid/filterfw/core/ShaderProgram;->getUniformValue(Ljava/lang/String;)Ljava/lang/Object;
+Landroid/filterfw/core/ShaderProgram;->mGLEnvironment:Landroid/filterfw/core/GLEnvironment;
+Landroid/filterfw/core/ShaderProgram;->mMaxTileSize:I
+Landroid/filterfw/core/ShaderProgram;->mTimer:Landroid/filterfw/core/StopWatchMap;
+Landroid/filterfw/core/ShaderProgram;->nativeCreateIdentity(Landroid/filterfw/core/GLEnvironment;)Landroid/filterfw/core/ShaderProgram;
+Landroid/filterfw/core/ShaderProgram;->setAttributeValues(Ljava/lang/String;Landroid/filterfw/core/VertexFrame;IIIIZ)V
+Landroid/filterfw/core/ShaderProgram;->setAttributeValues(Ljava/lang/String;[FI)V
+Landroid/filterfw/core/ShaderProgram;->setBlendEnabled(Z)V
+Landroid/filterfw/core/ShaderProgram;->setBlendFunc(II)V
+Landroid/filterfw/core/ShaderProgram;->setClearColor(FFF)V
+Landroid/filterfw/core/ShaderProgram;->setClearsOutput(Z)V
+Landroid/filterfw/core/ShaderProgram;->setDrawMode(I)V
+Landroid/filterfw/core/ShaderProgram;->setShaderAttributeValues(Ljava/lang/String;[FI)Z
+Landroid/filterfw/core/ShaderProgram;->setShaderAttributeVertexFrame(Ljava/lang/String;Landroid/filterfw/core/VertexFrame;IIIIZ)Z
+Landroid/filterfw/core/ShaderProgram;->setShaderBlendEnabled(Z)Z
+Landroid/filterfw/core/ShaderProgram;->setShaderBlendFunc(II)Z
+Landroid/filterfw/core/ShaderProgram;->setShaderClearColor(FFF)Z
+Landroid/filterfw/core/ShaderProgram;->setShaderClearsOutput(Z)Z
+Landroid/filterfw/core/ShaderProgram;->setShaderDrawMode(I)Z
+Landroid/filterfw/core/ShaderProgram;->setShaderTileCounts(II)Z
+Landroid/filterfw/core/ShaderProgram;->setShaderVertexCount(I)Z
+Landroid/filterfw/core/ShaderProgram;->setSourceRegion(FFFFFFFF)Z
+Landroid/filterfw/core/ShaderProgram;->setTargetRect(FFFF)V
+Landroid/filterfw/core/ShaderProgram;->setTargetRegion(FFFFFFFF)Z
+Landroid/filterfw/core/ShaderProgram;->setTargetRegion(Landroid/filterfw/geometry/Quad;)V
+Landroid/filterfw/core/ShaderProgram;->setTimer()V
+Landroid/filterfw/core/ShaderProgram;->setUniformValue(Ljava/lang/String;Ljava/lang/Object;)Z
+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;
+Landroid/filterfw/core/SimpleFrame;->getFloats()[F
+Landroid/filterfw/core/SimpleFrame;->getInts()[I
+Landroid/filterfw/core/SimpleFrame;->getObjectValue()Ljava/lang/Object;
+Landroid/filterfw/core/SimpleFrame;->hasNativeAllocation()Z
+Landroid/filterfw/core/SimpleFrame;->initWithFormat(Landroid/filterfw/core/FrameFormat;)V
+Landroid/filterfw/core/SimpleFrame;->mObject:Ljava/lang/Object;
+Landroid/filterfw/core/SimpleFrame;->releaseNativeAllocation()V
+Landroid/filterfw/core/SimpleFrame;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/filterfw/core/SimpleFrame;->setData(Ljava/nio/ByteBuffer;II)V
+Landroid/filterfw/core/SimpleFrame;->setFloats([F)V
+Landroid/filterfw/core/SimpleFrame;->setFormatObjectClass(Ljava/lang/Class;)V
+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
+Landroid/filterfw/core/StopWatch;->mStartTime:J
+Landroid/filterfw/core/StopWatch;->mTotalTime:J
+Landroid/filterfw/core/StopWatch;->start()V
+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
+Landroid/filterfw/core/StreamPort;->hasFrame()Z
+Landroid/filterfw/core/StreamPort;->mFrame:Landroid/filterfw/core/Frame;
+Landroid/filterfw/core/StreamPort;->mPersistent:Z
+Landroid/filterfw/core/StreamPort;->pullFrame()Landroid/filterfw/core/Frame;
+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
+Landroid/filterfw/core/SyncRunner;->close()V
+Landroid/filterfw/core/SyncRunner;->determinePostRunState()I
+Landroid/filterfw/core/SyncRunner;->getError()Ljava/lang/Exception;
+Landroid/filterfw/core/SyncRunner;->getGraph()Landroid/filterfw/core/FilterGraph;
+Landroid/filterfw/core/SyncRunner;->isRunning()Z
+Landroid/filterfw/core/SyncRunner;->mDoneListener:Landroid/filterfw/core/GraphRunner$OnRunnerDoneListener;
+Landroid/filterfw/core/SyncRunner;->mLogVerbose:Z
+Landroid/filterfw/core/SyncRunner;->mScheduler:Landroid/filterfw/core/Scheduler;
+Landroid/filterfw/core/SyncRunner;->mTimer:Landroid/filterfw/core/StopWatchMap;
+Landroid/filterfw/core/SyncRunner;->mWakeCondition:Landroid/os/ConditionVariable;
+Landroid/filterfw/core/SyncRunner;->mWakeExecutor:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
+Landroid/filterfw/core/SyncRunner;->performStep()Z
+Landroid/filterfw/core/SyncRunner;->processFilterNode(Landroid/filterfw/core/Filter;)V
+Landroid/filterfw/core/SyncRunner;->run()V
+Landroid/filterfw/core/SyncRunner;->scheduleFilterWake(Landroid/filterfw/core/Filter;I)V
+Landroid/filterfw/core/SyncRunner;->setDoneCallback(Landroid/filterfw/core/GraphRunner$OnRunnerDoneListener;)V
+Landroid/filterfw/core/SyncRunner;->step()I
+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;
+Landroid/filterfw/core/VertexFrame;->getFloats()[F
+Landroid/filterfw/core/VertexFrame;->getInts()[I
+Landroid/filterfw/core/VertexFrame;->getNativeVboId()I
+Landroid/filterfw/core/VertexFrame;->getObjectValue()Ljava/lang/Object;
+Landroid/filterfw/core/VertexFrame;->getVboId()I
+Landroid/filterfw/core/VertexFrame;->hasNativeAllocation()Z
+Landroid/filterfw/core/VertexFrame;->nativeAllocate(I)Z
+Landroid/filterfw/core/VertexFrame;->nativeDeallocate()Z
+Landroid/filterfw/core/VertexFrame;->releaseNativeAllocation()V
+Landroid/filterfw/core/VertexFrame;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/filterfw/core/VertexFrame;->setData(Ljava/nio/ByteBuffer;II)V
+Landroid/filterfw/core/VertexFrame;->setDataFromFrame(Landroid/filterfw/core/Frame;)V
+Landroid/filterfw/core/VertexFrame;->setFloats([F)V
+Landroid/filterfw/core/VertexFrame;->setInts([I)V
+Landroid/filterfw/core/VertexFrame;->setNativeData([BII)Z
+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
+Landroid/filterfw/format/ImageFormat;->COLORSPACE_KEY:Ljava/lang/String;
+Landroid/filterfw/format/ImageFormat;->COLORSPACE_RGB:I
+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;
+Landroid/filterfw/format/ObjectFormat;->fromClass(Ljava/lang/Class;II)Landroid/filterfw/core/MutableFrameFormat;
+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;
+Landroid/filterfw/format/PrimitiveFormat;->createDoubleFormat(I)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/format/PrimitiveFormat;->createDoubleFormat(II)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/format/PrimitiveFormat;->createFloatFormat(I)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/format/PrimitiveFormat;->createFloatFormat(II)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/format/PrimitiveFormat;->createFormat(II)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/format/PrimitiveFormat;->createFormat(III)Landroid/filterfw/core/MutableFrameFormat;
+Landroid/filterfw/format/PrimitiveFormat;->createInt16Format(I)Landroid/filterfw/core/MutableFrameFormat;
+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
+Landroid/filterfw/geometry/Point;->minus(FF)Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Point;->minus(Landroid/filterfw/geometry/Point;)Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Point;->mult(FF)Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Point;->normalize()Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Point;->plus(FF)Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Point;->plus(Landroid/filterfw/geometry/Point;)Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Point;->rotated(F)Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Point;->rotated90(I)Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Point;->rotatedAround(Landroid/filterfw/geometry/Point;F)Landroid/filterfw/geometry/Point;
+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
+Landroid/filterfw/geometry/Quad;->IsInUnitRange()Z
+Landroid/filterfw/geometry/Quad;->scaled(F)Landroid/filterfw/geometry/Quad;
+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
+Landroid/filterfw/geometry/Rectangle;-><init>(Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;)V
+Landroid/filterfw/geometry/Rectangle;->center()Landroid/filterfw/geometry/Point;
+Landroid/filterfw/geometry/Rectangle;->fromCenterVerticalAxis(Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;)Landroid/filterfw/geometry/Rectangle;
+Landroid/filterfw/geometry/Rectangle;->fromRotatedRect(Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;F)Landroid/filterfw/geometry/Rectangle;
+Landroid/filterfw/geometry/Rectangle;->getHeight()F
+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
+Landroid/filterfw/MffEnvironment;->deactivateGLEnvironment()V
+Landroid/filterfw/MffEnvironment;->getContext()Landroid/filterfw/core/FilterContext;
+Landroid/filterfw/MffEnvironment;->mContext:Landroid/filterfw/core/FilterContext;
+Landroid/filterfw/MffEnvironment;->setGLEnvironment(Landroid/filterfw/core/GLEnvironment;)V
+Landroid/gesture/Gesture;->BITMAP_RENDERING_ANTIALIAS:Z
+Landroid/gesture/Gesture;->BITMAP_RENDERING_DITHER:Z
+Landroid/gesture/Gesture;->BITMAP_RENDERING_WIDTH:I
+Landroid/gesture/Gesture;->deserialize(Ljava/io/DataInputStream;)Landroid/gesture/Gesture;
+Landroid/gesture/Gesture;->GESTURE_ID_BASE:J
+Landroid/gesture/Gesture;->mBoundingBox:Landroid/graphics/RectF;
+Landroid/gesture/Gesture;->mGestureID:J
+Landroid/gesture/Gesture;->mStrokes:Ljava/util/ArrayList;
+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
+Landroid/gesture/GestureOverlayView;->clear(ZZZ)V
+Landroid/gesture/GestureOverlayView;->DITHER_FLAG:Z
+Landroid/gesture/GestureOverlayView;->FADE_ANIMATION_RATE:I
+Landroid/gesture/GestureOverlayView;->fireOnGesturePerformed()V
+Landroid/gesture/GestureOverlayView;->GESTURE_RENDERING_ANTIALIAS:Z
+Landroid/gesture/GestureOverlayView;->getGesturePaint()Landroid/graphics/Paint;
+Landroid/gesture/GestureOverlayView;->init()V
+Landroid/gesture/GestureOverlayView;->mCertainGestureColor:I
+Landroid/gesture/GestureOverlayView;->mCurrentColor:I
+Landroid/gesture/GestureOverlayView;->mCurrentGesture:Landroid/gesture/Gesture;
+Landroid/gesture/GestureOverlayView;->mCurveEndX:F
+Landroid/gesture/GestureOverlayView;->mCurveEndY:F
+Landroid/gesture/GestureOverlayView;->mFadeDuration:J
+Landroid/gesture/GestureOverlayView;->mFadeEnabled:Z
+Landroid/gesture/GestureOverlayView;->mFadeOffset:J
+Landroid/gesture/GestureOverlayView;->mFadingAlpha:F
+Landroid/gesture/GestureOverlayView;->mFadingHasStarted:Z
+Landroid/gesture/GestureOverlayView;->mFadingOut:Landroid/gesture/GestureOverlayView$FadeOutRunnable;
+Landroid/gesture/GestureOverlayView;->mFadingStart:J
+Landroid/gesture/GestureOverlayView;->mGesturePaint:Landroid/graphics/Paint;
+Landroid/gesture/GestureOverlayView;->mGestureStrokeAngleThreshold:F
+Landroid/gesture/GestureOverlayView;->mGestureStrokeLengthThreshold:F
+Landroid/gesture/GestureOverlayView;->mGestureStrokeSquarenessTreshold:F
+Landroid/gesture/GestureOverlayView;->mGestureStrokeType:I
+Landroid/gesture/GestureOverlayView;->mGestureStrokeWidth:F
+Landroid/gesture/GestureOverlayView;->mGestureVisible:Z
+Landroid/gesture/GestureOverlayView;->mHandleGestureActions:Z
+Landroid/gesture/GestureOverlayView;->mInterceptEvents:Z
+Landroid/gesture/GestureOverlayView;->mInterpolator:Landroid/view/animation/AccelerateDecelerateInterpolator;
+Landroid/gesture/GestureOverlayView;->mInvalidateExtraBorder:I
+Landroid/gesture/GestureOverlayView;->mInvalidRect:Landroid/graphics/Rect;
+Landroid/gesture/GestureOverlayView;->mIsFadingOut:Z
+Landroid/gesture/GestureOverlayView;->mIsGesturing:Z
+Landroid/gesture/GestureOverlayView;->mIsListeningForGestures:Z
+Landroid/gesture/GestureOverlayView;->mOnGestureListeners:Ljava/util/ArrayList;
+Landroid/gesture/GestureOverlayView;->mOnGesturePerformedListeners:Ljava/util/ArrayList;
+Landroid/gesture/GestureOverlayView;->mOnGesturingListeners:Ljava/util/ArrayList;
+Landroid/gesture/GestureOverlayView;->mOrientation:I
+Landroid/gesture/GestureOverlayView;->mPath:Landroid/graphics/Path;
+Landroid/gesture/GestureOverlayView;->mPreviousWasGesturing:Z
+Landroid/gesture/GestureOverlayView;->mResetGesture:Z
+Landroid/gesture/GestureOverlayView;->mStrokeBuffer:Ljava/util/ArrayList;
+Landroid/gesture/GestureOverlayView;->mTotalLength:F
+Landroid/gesture/GestureOverlayView;->mUncertainGestureColor:I
+Landroid/gesture/GestureOverlayView;->mX:F
+Landroid/gesture/GestureOverlayView;->mY:F
+Landroid/gesture/GestureOverlayView;->processEvent(Landroid/view/MotionEvent;)Z
+Landroid/gesture/GestureOverlayView;->setCurrentColor(I)V
+Landroid/gesture/GestureOverlayView;->setPaintAlpha(I)V
+Landroid/gesture/GestureOverlayView;->touchDown(Landroid/view/MotionEvent;)V
+Landroid/gesture/GestureOverlayView;->touchMove(Landroid/view/MotionEvent;)Landroid/graphics/Rect;
+Landroid/gesture/GestureOverlayView;->touchUp(Landroid/view/MotionEvent;Z)V
+Landroid/gesture/GesturePoint;->deserialize(Ljava/io/DataInputStream;)Landroid/gesture/GesturePoint;
+Landroid/gesture/GestureStore;->FILE_FORMAT_VERSION:S
+Landroid/gesture/GestureStore;->getLearner()Landroid/gesture/Learner;
+Landroid/gesture/GestureStore;->mChanged:Z
+Landroid/gesture/GestureStore;->mClassifier:Landroid/gesture/Learner;
+Landroid/gesture/GestureStore;->mNamedGestures:Ljava/util/HashMap;
+Landroid/gesture/GestureStore;->mOrientationStyle:I
+Landroid/gesture/GestureStore;->mSequenceType:I
+Landroid/gesture/GestureStore;->ORIENTATION_SENSITIVE_4:I
+Landroid/gesture/GestureStore;->ORIENTATION_SENSITIVE_8:I
+Landroid/gesture/GestureStore;->PROFILE_LOADING_SAVING:Z
+Landroid/gesture/GestureStore;->readFormatV1(Ljava/io/DataInputStream;)V
+Landroid/gesture/GestureStroke;-><init>(Landroid/graphics/RectF;F[F[J)V
+Landroid/gesture/GestureStroke;->deserialize(Ljava/io/DataInputStream;)Landroid/gesture/GestureStroke;
+Landroid/gesture/GestureStroke;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+Landroid/gesture/GestureStroke;->makePath()V
+Landroid/gesture/GestureStroke;->mCachedPath:Landroid/graphics/Path;
+Landroid/gesture/GestureStroke;->serialize(Ljava/io/DataOutputStream;)V
+Landroid/gesture/GestureStroke;->timestamps:[J
+Landroid/gesture/GestureStroke;->TOUCH_TOLERANCE:F
+Landroid/gesture/GestureUtils;-><init>()V
+Landroid/gesture/GestureUtils;->closeStream(Ljava/io/Closeable;)V
+Landroid/gesture/GestureUtils;->computeCentroid([F)[F
+Landroid/gesture/GestureUtils;->computeCoVariance([F)[[F
+Landroid/gesture/GestureUtils;->computeOrientation([[F)[F
+Landroid/gesture/GestureUtils;->computeOrientedBoundingBox([F[F)Landroid/gesture/OrientedBoundingBox;
+Landroid/gesture/GestureUtils;->computeStraightness([F)F
+Landroid/gesture/GestureUtils;->computeStraightness([FF)F
+Landroid/gesture/GestureUtils;->computeTotalLength([F)F
+Landroid/gesture/GestureUtils;->cosineDistance([F[F)F
+Landroid/gesture/GestureUtils;->minimumCosineDistance([F[FI)F
+Landroid/gesture/GestureUtils;->NONUNIFORM_SCALE:F
+Landroid/gesture/GestureUtils;->plot(FF[FI)V
+Landroid/gesture/GestureUtils;->rotate([FF)[F
+Landroid/gesture/GestureUtils;->scale([FFF)[F
+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
+Landroid/gesture/Instance;->label:Ljava/lang/String;
+Landroid/gesture/Instance;->normalize()V
+Landroid/gesture/Instance;->ORIENTATIONS:[F
+Landroid/gesture/Instance;->PATCH_SAMPLE_SIZE:I
+Landroid/gesture/Instance;->SEQUENCE_SAMPLE_SIZE:I
+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;
+Landroid/gesture/Learner;->getInstances()Ljava/util/ArrayList;
+Landroid/gesture/Learner;->mInstances:Ljava/util/ArrayList;
+Landroid/gesture/Learner;->removeInstance(J)V
+Landroid/gesture/Learner;->removeInstances(Ljava/lang/String;)V
+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
+Landroid/graphics/BaseCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawARGB(IIII)V
+Landroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawBitmap([IIIFFIIZLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawBitmap([IIIIIIIZLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawBitmapMesh(Landroid/graphics/Bitmap;II[FI[IILandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawColor(I)V
+Landroid/graphics/BaseCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
+Landroid/graphics/BaseCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawLines([FIILandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawLines([FLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPaint(Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPoint(FFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPoints([FIILandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPoints([FLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPosText(Ljava/lang/String;[FLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawPosText([CII[FLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawRGB(III)V
+Landroid/graphics/BaseCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawText(Ljava/lang/String;IIFFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawText([CIIFFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawTextOnPath(Ljava/lang/String;Landroid/graphics/Path;FFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawTextOnPath([CIILandroid/graphics/Path;FFLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawTextRun([CIIIIFFZLandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->drawVertices(Landroid/graphics/Canvas$VertexMode;I[FI[FI[II[SIILandroid/graphics/Paint;)V
+Landroid/graphics/BaseCanvas;->isHardwareAccelerated()Z
+Landroid/graphics/BaseCanvas;->isHwBitmapsInSwModeEnabled()Z
+Landroid/graphics/BaseCanvas;->mAllowHwBitmapsInSwMode:Z
+Landroid/graphics/BaseCanvas;->mDensity:I
+Landroid/graphics/BaseCanvas;->mScreenDensity:I
+Landroid/graphics/BaseCanvas;->nDrawArc(JFFFFFFZJ)V
+Landroid/graphics/BaseCanvas;->nDrawBitmap(JLandroid/graphics/Bitmap;FFFFFFFFJII)V
+Landroid/graphics/BaseCanvas;->nDrawBitmap(JLandroid/graphics/Bitmap;FFJIII)V
+Landroid/graphics/BaseCanvas;->nDrawBitmap(J[IIIFFIIZJ)V
+Landroid/graphics/BaseCanvas;->nDrawBitmapMatrix(JLandroid/graphics/Bitmap;JJ)V
+Landroid/graphics/BaseCanvas;->nDrawBitmapMesh(JLandroid/graphics/Bitmap;II[FI[IIJ)V
+Landroid/graphics/BaseCanvas;->nDrawCircle(JFFFJ)V
+Landroid/graphics/BaseCanvas;->nDrawColor(JII)V
+Landroid/graphics/BaseCanvas;->nDrawLine(JFFFFJ)V
+Landroid/graphics/BaseCanvas;->nDrawLines(J[FIIJ)V
+Landroid/graphics/BaseCanvas;->nDrawNinePatch(JJJFFFFJII)V
+Landroid/graphics/BaseCanvas;->nDrawOval(JFFFFJ)V
+Landroid/graphics/BaseCanvas;->nDrawPaint(JJ)V
+Landroid/graphics/BaseCanvas;->nDrawPath(JJJ)V
+Landroid/graphics/BaseCanvas;->nDrawPoint(JFFJ)V
+Landroid/graphics/BaseCanvas;->nDrawPoints(J[FIIJ)V
+Landroid/graphics/BaseCanvas;->nDrawRect(JFFFFJ)V
+Landroid/graphics/BaseCanvas;->nDrawRegion(JJJ)V
+Landroid/graphics/BaseCanvas;->nDrawRoundRect(JFFFFFFJ)V
+Landroid/graphics/BaseCanvas;->nDrawText(JLjava/lang/String;IIFFIJ)V
+Landroid/graphics/BaseCanvas;->nDrawText(J[CIIFFIJ)V
+Landroid/graphics/BaseCanvas;->nDrawTextOnPath(JLjava/lang/String;JFFIJ)V
+Landroid/graphics/BaseCanvas;->nDrawTextOnPath(J[CIIJFFIJ)V
+Landroid/graphics/BaseCanvas;->nDrawTextRun(JLjava/lang/String;IIIIFFZJ)V
+Landroid/graphics/BaseCanvas;->nDrawTextRun(J[CIIIIFFZJJ)V
+Landroid/graphics/BaseCanvas;->nDrawVertices(JII[FI[FI[II[SIIJ)V
+Landroid/graphics/BaseCanvas;->onHwBitmapInSwMode()V
+Landroid/graphics/BaseCanvas;->setHwBitmapsInSwModeEnabled(Z)V
+Landroid/graphics/BaseCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V
+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
+Landroid/graphics/Bitmap;->checkPixelsAccess(IIIIII[I)V
+Landroid/graphics/Bitmap;->checkRecycled(Ljava/lang/String;)V
+Landroid/graphics/Bitmap;->checkWidthHeight(II)V
+Landroid/graphics/Bitmap;->checkXYSign(II)V
+Landroid/graphics/Bitmap;->getNativeInstance()J
+Landroid/graphics/Bitmap;->getNinePatchInsets()Landroid/graphics/NinePatch$InsetStruct;
+Landroid/graphics/Bitmap;->getOpticalInsets(Landroid/graphics/Rect;)V
+Landroid/graphics/Bitmap;->makeImmutable()V
+Landroid/graphics/Bitmap;->mColorSpace:Landroid/graphics/ColorSpace;
+Landroid/graphics/Bitmap;->mDensity:I
+Landroid/graphics/Bitmap;->mRecycled:Z
+Landroid/graphics/Bitmap;->mRequestPremultiplied:Z
+Landroid/graphics/Bitmap;->nativeCompress(JIILjava/io/OutputStream;[B)Z
+Landroid/graphics/Bitmap;->nativeConfig(J)I
+Landroid/graphics/Bitmap;->nativeCopy(JIZ)Landroid/graphics/Bitmap;
+Landroid/graphics/Bitmap;->nativeCopyAshmem(J)Landroid/graphics/Bitmap;
+Landroid/graphics/Bitmap;->nativeCopyAshmemConfig(JI)Landroid/graphics/Bitmap;
+Landroid/graphics/Bitmap;->nativeCopyColorSpace(JJ)V
+Landroid/graphics/Bitmap;->nativeCopyPixelsFromBuffer(JLjava/nio/Buffer;)V
+Landroid/graphics/Bitmap;->nativeCopyPixelsToBuffer(JLjava/nio/Buffer;)V
+Landroid/graphics/Bitmap;->nativeCopyPreserveInternalConfig(J)Landroid/graphics/Bitmap;
+Landroid/graphics/Bitmap;->nativeCreate([IIIIIIZ[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)Landroid/graphics/Bitmap;
+Landroid/graphics/Bitmap;->nativeCreateFromParcel(Landroid/os/Parcel;)Landroid/graphics/Bitmap;
+Landroid/graphics/Bitmap;->nativeCreateGraphicBufferHandle(J)Landroid/graphics/GraphicBuffer;
+Landroid/graphics/Bitmap;->nativeCreateHardwareBitmap(Landroid/graphics/GraphicBuffer;)Landroid/graphics/Bitmap;
+Landroid/graphics/Bitmap;->nativeErase(JI)V
+Landroid/graphics/Bitmap;->nativeExtractAlpha(JJ[I)Landroid/graphics/Bitmap;
+Landroid/graphics/Bitmap;->nativeGenerationId(J)I
+Landroid/graphics/Bitmap;->nativeGetAllocationByteCount(J)I
+Landroid/graphics/Bitmap;->nativeGetColorSpace(J[F[F)Z
+Landroid/graphics/Bitmap;->nativeGetNativeFinalizer()J
+Landroid/graphics/Bitmap;->nativeGetPixel(JII)I
+Landroid/graphics/Bitmap;->nativeGetPixels(J[IIIIIII)V
+Landroid/graphics/Bitmap;->nativeHasAlpha(J)Z
+Landroid/graphics/Bitmap;->nativeHasMipMap(J)Z
+Landroid/graphics/Bitmap;->nativeIsPremultiplied(J)Z
+Landroid/graphics/Bitmap;->nativeIsSRGB(J)Z
+Landroid/graphics/Bitmap;->nativeIsSRGBLinear(J)Z
+Landroid/graphics/Bitmap;->nativePrepareToDraw(J)V
+Landroid/graphics/Bitmap;->nativeRecycle(J)Z
+Landroid/graphics/Bitmap;->nativeRowBytes(J)I
+Landroid/graphics/Bitmap;->nativeSameAs(JJ)Z
+Landroid/graphics/Bitmap;->nativeSetHasAlpha(JZZ)V
+Landroid/graphics/Bitmap;->nativeSetHasMipMap(JZ)V
+Landroid/graphics/Bitmap;->nativeSetPixel(JIII)V
+Landroid/graphics/Bitmap;->nativeSetPixels(J[IIIIIII)V
+Landroid/graphics/Bitmap;->nativeSetPremultiplied(JZ)V
+Landroid/graphics/Bitmap;->nativeWriteToParcel(JZILandroid/os/Parcel;)Z
+Landroid/graphics/Bitmap;->NATIVE_ALLOCATION_SIZE:J
+Landroid/graphics/Bitmap;->noteHardwareBitmapSlowCall()V
+Landroid/graphics/Bitmap;->sDefaultDensity:I
+Landroid/graphics/Bitmap;->sPreloadTracingNumInstantiatedBitmaps:I
+Landroid/graphics/Bitmap;->sPreloadTracingTotalBitmapsSize:J
+Landroid/graphics/Bitmap;->TAG:Ljava/lang/String;
+Landroid/graphics/Bitmap;->WORKING_COMPRESS_STORAGE:I
+Landroid/graphics/BitmapFactory$Options;->validate(Landroid/graphics/BitmapFactory$Options;)V
+Landroid/graphics/BitmapFactory;->decodeStreamInternal(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+Landroid/graphics/BitmapFactory;->DECODE_BUFFER_SIZE:I
+Landroid/graphics/BitmapFactory;->nativeIsSeekable(Ljava/io/FileDescriptor;)Z
+Landroid/graphics/BitmapFactory;->setDensityFromOptions(Landroid/graphics/Bitmap;Landroid/graphics/BitmapFactory$Options;)V
+Landroid/graphics/BitmapRegionDecoder;->checkRecycled(Ljava/lang/String;)V
+Landroid/graphics/BitmapRegionDecoder;->mNativeBitmapRegionDecoder:J
+Landroid/graphics/BitmapRegionDecoder;->mNativeLock:Ljava/lang/Object;
+Landroid/graphics/BitmapRegionDecoder;->mRecycled:Z
+Landroid/graphics/BitmapRegionDecoder;->nativeClean(J)V
+Landroid/graphics/BitmapRegionDecoder;->nativeDecodeRegion(JIIIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+Landroid/graphics/BitmapRegionDecoder;->nativeGetHeight(J)I
+Landroid/graphics/BitmapRegionDecoder;->nativeGetWidth(J)I
+Landroid/graphics/BitmapRegionDecoder;->nativeNewInstance(JZ)Landroid/graphics/BitmapRegionDecoder;
+Landroid/graphics/BitmapRegionDecoder;->nativeNewInstance(Ljava/io/FileDescriptor;Z)Landroid/graphics/BitmapRegionDecoder;
+Landroid/graphics/BitmapRegionDecoder;->nativeNewInstance(Ljava/io/InputStream;[BZ)Landroid/graphics/BitmapRegionDecoder;
+Landroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;II)V
+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;
+Landroid/graphics/Camera;->nativeApplyToCanvas(J)V
+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
+Landroid/graphics/Canvas;->clipRectUnion(Landroid/graphics/Rect;)Z
+Landroid/graphics/Canvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+Landroid/graphics/Canvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+Landroid/graphics/Canvas;->insertInorderBarrier()V
+Landroid/graphics/Canvas;->insertReorderBarrier()V
+Landroid/graphics/Canvas;->isRecordingFor(Ljava/lang/Object;)Z
+Landroid/graphics/Canvas;->MAXMIMUM_BITMAP_SIZE:I
+Landroid/graphics/Canvas;->mDrawFilter:Landroid/graphics/DrawFilter;
+Landroid/graphics/Canvas;->mFinalizer:Ljava/lang/Runnable;
+Landroid/graphics/Canvas;->NATIVE_ALLOCATION_SIZE:J
+Landroid/graphics/Canvas;->nClipPath(JJI)Z
+Landroid/graphics/Canvas;->nClipRect(JFFFFI)Z
+Landroid/graphics/Canvas;->nConcat(JJ)V
+Landroid/graphics/Canvas;->nFreeCaches()V
+Landroid/graphics/Canvas;->nFreeTextLayoutCaches()V
+Landroid/graphics/Canvas;->nGetClipBounds(JLandroid/graphics/Rect;)Z
+Landroid/graphics/Canvas;->nGetHeight(J)I
+Landroid/graphics/Canvas;->nGetMatrix(JJ)V
+Landroid/graphics/Canvas;->nGetNativeFinalizer()J
+Landroid/graphics/Canvas;->nGetSaveCount(J)I
+Landroid/graphics/Canvas;->nGetWidth(J)I
+Landroid/graphics/Canvas;->nInitRaster(Landroid/graphics/Bitmap;)J
+Landroid/graphics/Canvas;->nIsOpaque(J)Z
+Landroid/graphics/Canvas;->nQuickReject(JFFFF)Z
+Landroid/graphics/Canvas;->nQuickReject(JJ)Z
+Landroid/graphics/Canvas;->nRestore(J)Z
+Landroid/graphics/Canvas;->nRestoreToCount(JI)V
+Landroid/graphics/Canvas;->nRotate(JF)V
+Landroid/graphics/Canvas;->nSave(JI)I
+Landroid/graphics/Canvas;->nSaveLayer(JFFFFJI)I
+Landroid/graphics/Canvas;->nSaveLayerAlpha(JFFFFII)I
+Landroid/graphics/Canvas;->nScale(JFF)V
+Landroid/graphics/Canvas;->nSetBitmap(JLandroid/graphics/Bitmap;)V
+Landroid/graphics/Canvas;->nSetCompatibilityVersion(I)V
+Landroid/graphics/Canvas;->nSetDrawFilter(JJ)V
+Landroid/graphics/Canvas;->nSetMatrix(JJ)V
+Landroid/graphics/Canvas;->nSkew(JFF)V
+Landroid/graphics/Canvas;->nTranslate(JFF)V
+Landroid/graphics/Canvas;->saveUnclippedLayer(IIII)I
+Landroid/graphics/Canvas;->sCompatibilityRestore:Z
+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;
+Landroid/graphics/CanvasProperty;->nCreateFloat(F)J
+Landroid/graphics/CanvasProperty;->nCreatePaint(J)J
+Landroid/graphics/Color;-><init>(FFFF)V
+Landroid/graphics/Color;-><init>(FFFFLandroid/graphics/ColorSpace;)V
+Landroid/graphics/Color;-><init>([FLandroid/graphics/ColorSpace;)V
+Landroid/graphics/Color;->getHtmlColor(Ljava/lang/String;)I
+Landroid/graphics/Color;->mColorSpace:Landroid/graphics/ColorSpace;
+Landroid/graphics/Color;->mComponents:[F
+Landroid/graphics/Color;->nativeHSVToColor(I[F)I
+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
+Landroid/graphics/ColorFilter;->discardNativeInstance()V
+Landroid/graphics/ColorFilter;->getNativeInstance()J
+Landroid/graphics/ColorFilter;->mCleaner:Ljava/lang/Runnable;
+Landroid/graphics/ColorFilter;->mNativeInstance:J
+Landroid/graphics/ColorFilter;->nativeGetFinalizer()J
+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;
+Landroid/graphics/ColorSpace$Connector$Rgb;->mSource:Landroid/graphics/ColorSpace$Rgb;
+Landroid/graphics/ColorSpace$Connector$Rgb;->mTransform:[F
+Landroid/graphics/ColorSpace$Connector;-><init>(Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$RenderIntent;)V
+Landroid/graphics/ColorSpace$Connector;-><init>(Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$RenderIntent;[F)V
+Landroid/graphics/ColorSpace$Connector;->computeTransform(Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$RenderIntent;)[F
+Landroid/graphics/ColorSpace$Connector;->identity(Landroid/graphics/ColorSpace;)Landroid/graphics/ColorSpace$Connector;
+Landroid/graphics/ColorSpace$Connector;->mDestination:Landroid/graphics/ColorSpace;
+Landroid/graphics/ColorSpace$Connector;->mIntent:Landroid/graphics/ColorSpace$RenderIntent;
+Landroid/graphics/ColorSpace$Connector;->mSource:Landroid/graphics/ColorSpace;
+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;
+Landroid/graphics/ColorSpace$Renderer;->CHROMATICITY_RESOLUTION:I
+Landroid/graphics/ColorSpace$Renderer;->clip(Z)Landroid/graphics/ColorSpace$Renderer;
+Landroid/graphics/ColorSpace$Renderer;->computeChromaticityMesh([F[I)V
+Landroid/graphics/ColorSpace$Renderer;->computeColor([FFFFLandroid/graphics/ColorSpace;)I
+Landroid/graphics/ColorSpace$Renderer;->drawBox(Landroid/graphics/Canvas;IILandroid/graphics/Paint;Landroid/graphics/Path;)V
+Landroid/graphics/ColorSpace$Renderer;->drawGamuts(Landroid/graphics/Canvas;IILandroid/graphics/Paint;Landroid/graphics/Path;[F[F)V
+Landroid/graphics/ColorSpace$Renderer;->drawLocus(Landroid/graphics/Canvas;IILandroid/graphics/Paint;Landroid/graphics/Path;[F)V
+Landroid/graphics/ColorSpace$Renderer;->drawPoints(Landroid/graphics/Canvas;IILandroid/graphics/Paint;)V
+Landroid/graphics/ColorSpace$Renderer;->getPrimaries(Landroid/graphics/ColorSpace$Rgb;[FZ)V
+Landroid/graphics/ColorSpace$Renderer;->mClip:Z
+Landroid/graphics/ColorSpace$Renderer;->mColorSpaces:Ljava/util/List;
+Landroid/graphics/ColorSpace$Renderer;->mPoints:Ljava/util/List;
+Landroid/graphics/ColorSpace$Renderer;->mShowWhitePoint:Z
+Landroid/graphics/ColorSpace$Renderer;->mSize:I
+Landroid/graphics/ColorSpace$Renderer;->mUcs:Z
+Landroid/graphics/ColorSpace$Renderer;->NATIVE_SIZE:I
+Landroid/graphics/ColorSpace$Renderer;->ONE_THIRD:D
+Landroid/graphics/ColorSpace$Renderer;->render()Landroid/graphics/Bitmap;
+Landroid/graphics/ColorSpace$Renderer;->setTransform(Landroid/graphics/Canvas;II[F)V
+Landroid/graphics/ColorSpace$Renderer;->setUcsTransform(Landroid/graphics/Canvas;I)V
+Landroid/graphics/ColorSpace$Renderer;->showWhitePoint(Z)Landroid/graphics/ColorSpace$Renderer;
+Landroid/graphics/ColorSpace$Renderer;->size(I)Landroid/graphics/ColorSpace$Renderer;
+Landroid/graphics/ColorSpace$Renderer;->SPECTRUM_LOCUS_X:[F
+Landroid/graphics/ColorSpace$Renderer;->SPECTRUM_LOCUS_Y:[F
+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
+Landroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFI)V
+Landroid/graphics/ColorSpace$Rgb;->area([F)F
+Landroid/graphics/ColorSpace$Rgb;->clamp(D)D
+Landroid/graphics/ColorSpace$Rgb;->computePrimaries([F)[F
+Landroid/graphics/ColorSpace$Rgb;->computeWhitePoint([F)[F
+Landroid/graphics/ColorSpace$Rgb;->computeXYZMatrix([F[F)[F
+Landroid/graphics/ColorSpace$Rgb;->contains([F[F)Z
+Landroid/graphics/ColorSpace$Rgb;->cross(FFFF)F
+Landroid/graphics/ColorSpace$Rgb;->isSrgb([F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFI)Z
+Landroid/graphics/ColorSpace$Rgb;->isWideGamut([FFF)Z
+Landroid/graphics/ColorSpace$Rgb;->mClampedEotf:Ljava/util/function/DoubleUnaryOperator;
+Landroid/graphics/ColorSpace$Rgb;->mClampedOetf:Ljava/util/function/DoubleUnaryOperator;
+Landroid/graphics/ColorSpace$Rgb;->mEotf:Ljava/util/function/DoubleUnaryOperator;
+Landroid/graphics/ColorSpace$Rgb;->mInverseTransform:[F
+Landroid/graphics/ColorSpace$Rgb;->mIsSrgb:Z
+Landroid/graphics/ColorSpace$Rgb;->mIsWideGamut:Z
+Landroid/graphics/ColorSpace$Rgb;->mMax:F
+Landroid/graphics/ColorSpace$Rgb;->mMin:F
+Landroid/graphics/ColorSpace$Rgb;->mOetf:Ljava/util/function/DoubleUnaryOperator;
+Landroid/graphics/ColorSpace$Rgb;->mPrimaries:[F
+Landroid/graphics/ColorSpace$Rgb;->mTransferParameters:Landroid/graphics/ColorSpace$Rgb$TransferParameters;
+Landroid/graphics/ColorSpace$Rgb;->mTransform:[F
+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
+Landroid/graphics/ColorSpace;->absRcpResponse(DDDDDD)D
+Landroid/graphics/ColorSpace;->absResponse(DDDDDD)D
+Landroid/graphics/ColorSpace;->chromaticAdaptation([F[F[F)[F
+Landroid/graphics/ColorSpace;->compare(Landroid/graphics/ColorSpace$Rgb$TransferParameters;Landroid/graphics/ColorSpace$Rgb$TransferParameters;)Z
+Landroid/graphics/ColorSpace;->compare([F[F)Z
+Landroid/graphics/ColorSpace;->createRenderer()Landroid/graphics/ColorSpace$Renderer;
+Landroid/graphics/ColorSpace;->get(I)Landroid/graphics/ColorSpace;
+Landroid/graphics/ColorSpace;->ILLUMINANT_D50_XYZ:[F
+Landroid/graphics/ColorSpace;->inverse3x3([F)[F
+Landroid/graphics/ColorSpace;->mId:I
+Landroid/graphics/ColorSpace;->mModel:Landroid/graphics/ColorSpace$Model;
+Landroid/graphics/ColorSpace;->mName:Ljava/lang/String;
+Landroid/graphics/ColorSpace;->mul3x3([F[F)[F
+Landroid/graphics/ColorSpace;->mul3x3Diag([F[F)[F
+Landroid/graphics/ColorSpace;->mul3x3Float3([F[F)[F
+Landroid/graphics/ColorSpace;->NTSC_1953_PRIMARIES:[F
+Landroid/graphics/ColorSpace;->rcpResponse(DDDDDD)D
+Landroid/graphics/ColorSpace;->rcpResponse(DDDDDDDD)D
+Landroid/graphics/ColorSpace;->response(DDDDDD)D
+Landroid/graphics/ColorSpace;->response(DDDDDDDD)D
+Landroid/graphics/ColorSpace;->sNamedColorSpaces:[Landroid/graphics/ColorSpace;
+Landroid/graphics/ColorSpace;->SRGB_PRIMARIES:[F
+Landroid/graphics/ColorSpace;->xyYToUv([F)V
+Landroid/graphics/ColorSpace;->xyYToXyz([F)[F
+Landroid/graphics/ComposePathEffect;->nativeCreate(JJ)J
+Landroid/graphics/ComposeShader;-><init>(Landroid/graphics/Shader;Landroid/graphics/Shader;I)V
+Landroid/graphics/ComposeShader;->copy()Landroid/graphics/Shader;
+Landroid/graphics/ComposeShader;->createNativeInstance(J)J
+Landroid/graphics/ComposeShader;->mNativeInstanceShaderA:J
+Landroid/graphics/ComposeShader;->mNativeInstanceShaderB:J
+Landroid/graphics/ComposeShader;->mPorterDuffMode:I
+Landroid/graphics/ComposeShader;->mShaderA:Landroid/graphics/Shader;
+Landroid/graphics/ComposeShader;->mShaderB:Landroid/graphics/Shader;
+Landroid/graphics/ComposeShader;->nativeCreate(JJJI)J
+Landroid/graphics/ComposeShader;->verifyNativeInstance()V
+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
+Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;->mDensity:I
+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
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->hasFocusStateSpecified()Z
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->invalidateCache()V
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->isStateful()Z
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mAutoMirrored:Z
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mChangingConfigurations:I
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mCheckedOpacity:Z
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mCheckedStateful:Z
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mChildren:[Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mChildrenChangingConfigurations:I
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mDensity:I
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mIsStateful:Z
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mOpacity:I
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mOpacityOverride:I
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mSrcDensityOverride:I
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->mThemeAttrs:[I
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->N_CHILDREN:I
+Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->setDensity(I)V
+Landroid/graphics/drawable/AdaptiveIconDrawable;-><init>()V
+Landroid/graphics/drawable/AdaptiveIconDrawable;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/AdaptiveIconDrawable;->addLayer(ILandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;)V
+Landroid/graphics/drawable/AdaptiveIconDrawable;->BACKGROUND_ID:I
+Landroid/graphics/drawable/AdaptiveIconDrawable;->clearMutated()V
+Landroid/graphics/drawable/AdaptiveIconDrawable;->createChildDrawable(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->createConstantState(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->DEFAULT_VIEW_PORT_SCALE:F
+Landroid/graphics/drawable/AdaptiveIconDrawable;->EXTRA_INSET_PERCENTAGE:F
+Landroid/graphics/drawable/AdaptiveIconDrawable;->FOREGROUND_ID:I
+Landroid/graphics/drawable/AdaptiveIconDrawable;->getExtraInsetPercentage()F
+Landroid/graphics/drawable/AdaptiveIconDrawable;->getMaxIntrinsicHeight()I
+Landroid/graphics/drawable/AdaptiveIconDrawable;->getMaxIntrinsicWidth()I
+Landroid/graphics/drawable/AdaptiveIconDrawable;->inflateLayers(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/AdaptiveIconDrawable;->isProjected()Z
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mCanvas:Landroid/graphics/Canvas;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mChildRequestedInvalidation:Z
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mHotspotBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mLayersBitmap:Landroid/graphics/Bitmap;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mLayersShader:Landroid/graphics/Shader;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mLayerState:Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mMask:Landroid/graphics/Path;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mMaskBitmap:Landroid/graphics/Bitmap;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mMaskMatrix:Landroid/graphics/Matrix;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mMutated:Z
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mPaint:Landroid/graphics/Paint;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mSuspendChildInvalidation:Z
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mTmpOutRect:Landroid/graphics/Rect;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->mTransparentRegion:Landroid/graphics/Region;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->resumeChildInvalidation()V
+Landroid/graphics/drawable/AdaptiveIconDrawable;->SAFEZONE_SCALE:F
+Landroid/graphics/drawable/AdaptiveIconDrawable;->sMask:Landroid/graphics/Path;
+Landroid/graphics/drawable/AdaptiveIconDrawable;->suspendChildInvalidation()V
+Landroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V
+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;
+Landroid/graphics/drawable/AnimatedImageDrawable$State;->mNativePtr:J
+Landroid/graphics/drawable/AnimatedImageDrawable$State;->mRepeatCount:I
+Landroid/graphics/drawable/AnimatedImageDrawable$State;->mThemeAttrs:[I
+Landroid/graphics/drawable/AnimatedImageDrawable;-><init>(JLandroid/graphics/ImageDecoder;IIIILandroid/graphics/Rect;Ljava/io/InputStream;Landroid/content/res/AssetFileDescriptor;)V
+Landroid/graphics/drawable/AnimatedImageDrawable;->FINISHED:I
+Landroid/graphics/drawable/AnimatedImageDrawable;->getHandler()Landroid/os/Handler;
+Landroid/graphics/drawable/AnimatedImageDrawable;->mAnimationCallbacks:Ljava/util/ArrayList;
+Landroid/graphics/drawable/AnimatedImageDrawable;->mColorFilter:Landroid/graphics/ColorFilter;
+Landroid/graphics/drawable/AnimatedImageDrawable;->mHandler:Landroid/os/Handler;
+Landroid/graphics/drawable/AnimatedImageDrawable;->mIntrinsicHeight:I
+Landroid/graphics/drawable/AnimatedImageDrawable;->mIntrinsicWidth:I
+Landroid/graphics/drawable/AnimatedImageDrawable;->mRunnable:Ljava/lang/Runnable;
+Landroid/graphics/drawable/AnimatedImageDrawable;->mStarting:Z
+Landroid/graphics/drawable/AnimatedImageDrawable;->mState:Landroid/graphics/drawable/AnimatedImageDrawable$State;
+Landroid/graphics/drawable/AnimatedImageDrawable;->nCreate(JLandroid/graphics/ImageDecoder;IILandroid/graphics/Rect;)J
+Landroid/graphics/drawable/AnimatedImageDrawable;->nDraw(JJ)J
+Landroid/graphics/drawable/AnimatedImageDrawable;->nGetAlpha(J)I
+Landroid/graphics/drawable/AnimatedImageDrawable;->nGetNativeFinalizer()J
+Landroid/graphics/drawable/AnimatedImageDrawable;->nGetRepeatCount(J)I
+Landroid/graphics/drawable/AnimatedImageDrawable;->nIsRunning(J)Z
+Landroid/graphics/drawable/AnimatedImageDrawable;->nNativeByteSize(J)J
+Landroid/graphics/drawable/AnimatedImageDrawable;->nSetAlpha(JI)V
+Landroid/graphics/drawable/AnimatedImageDrawable;->nSetColorFilter(JJ)V
+Landroid/graphics/drawable/AnimatedImageDrawable;->nSetMirrored(JZ)V
+Landroid/graphics/drawable/AnimatedImageDrawable;->nSetOnAnimationEndListener(JLandroid/graphics/drawable/AnimatedImageDrawable;)V
+Landroid/graphics/drawable/AnimatedImageDrawable;->nSetRepeatCount(JI)V
+Landroid/graphics/drawable/AnimatedImageDrawable;->nStart(J)Z
+Landroid/graphics/drawable/AnimatedImageDrawable;->nStop(J)Z
+Landroid/graphics/drawable/AnimatedImageDrawable;->postOnAnimationEnd()V
+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
+Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;->mPivotX:F
+Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;->mPivotXRel:Z
+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
+Landroid/graphics/drawable/AnimatedRotateDrawable;->mIncrement:F
+Landroid/graphics/drawable/AnimatedRotateDrawable;->mNextFrame:Ljava/lang/Runnable;
+Landroid/graphics/drawable/AnimatedRotateDrawable;->mRunning:Z
+Landroid/graphics/drawable/AnimatedRotateDrawable;->mState:Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;
+Landroid/graphics/drawable/AnimatedRotateDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
+Landroid/graphics/drawable/AnimatedRotateDrawable;->nextFrame()V
+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
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->generateTransitionKey(II)J
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->getKeyframeIdAt(I)I
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfKeyframe([I)I
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfTransition(II)I
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->isTransitionReversed(II)Z
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->mAnimThemeAttrs:[I
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->mutate()V
+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;
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->mHasReversibleFlag:Z
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->mReversed:Z
+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;
+Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->mHasReversibleFlag:Z
+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
+Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;->start()V
+Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;->stop()V
+Landroid/graphics/drawable/AnimatedStateListDrawable;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/AnimatedStateListDrawable;->clearMutated()V
+Landroid/graphics/drawable/AnimatedStateListDrawable;->cloneConstantState()Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;
+Landroid/graphics/drawable/AnimatedStateListDrawable;->ELEMENT_ITEM:Ljava/lang/String;
+Landroid/graphics/drawable/AnimatedStateListDrawable;->ELEMENT_TRANSITION:Ljava/lang/String;
+Landroid/graphics/drawable/AnimatedStateListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/AnimatedStateListDrawable;->init()V
+Landroid/graphics/drawable/AnimatedStateListDrawable;->LOGTAG:Ljava/lang/String;
+Landroid/graphics/drawable/AnimatedStateListDrawable;->mMutated:Z
+Landroid/graphics/drawable/AnimatedStateListDrawable;->mTransition:Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;
+Landroid/graphics/drawable/AnimatedStateListDrawable;->mTransitionFromIndex:I
+Landroid/graphics/drawable/AnimatedStateListDrawable;->mTransitionToIndex:I
+Landroid/graphics/drawable/AnimatedStateListDrawable;->parseItem(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)I
+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
+Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->inflatePendingAnimators(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->mAnimators:Ljava/util/ArrayList;
+Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->mChangingConfigurations:I
+Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->mPendingAnims:Ljava/util/ArrayList;
+Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->mShouldIgnoreInvalidAnim:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->mTargetNameMap:Landroid/util/ArrayMap;
+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
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->isInfinite()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->isRunning()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->isStarted()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->onDraw(Landroid/graphics/Canvas;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->pause()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->removeListener(Landroid/animation/Animator$AnimatorListener;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->reset()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->resume()V
+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
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createFloatDataPoints(Landroid/animation/PropertyValuesHolder$PropertyValues$DataSource;J)[F
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createIntDataPoints(Landroid/animation/PropertyValuesHolder$PropertyValues$DataSource;J)[I
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createNativeChildAnimator(JJLandroid/animation/ObjectAnimator;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimator(Landroid/animation/ObjectAnimator;J)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForFullPath(Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VFullPath;J)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForGroup([Landroid/animation/PropertyValuesHolder;Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VGroup;J)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForPath(Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VPath;J)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForRootGroup([Landroid/animation/PropertyValuesHolder;Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;J)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->end()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->endAnimation()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->END_ANIMATION:I
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getAnimatorNativePtr()J
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getFrameCount(J)I
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->handlePendingAction(I)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->init(Landroid/animation/AnimatorSet;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->invalidateOwningView()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isInfinite()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isRunning()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isStarted()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->MAX_SAMPLE_POINTS:I
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mContainsSequentialAnimators:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mDrawable:Landroid/graphics/drawable/AnimatedVectorDrawable;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mInitialized:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mIsInfinite:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mIsReversible:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mLastListenerId:I
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mLastSeenTarget:Ljava/lang/ref/WeakReference;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mListener:Landroid/animation/Animator$AnimatorListener;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mPendingAnimationActions:Landroid/util/IntArray;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mSetPtr:J
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mSetRefBasePtr:Lcom/android/internal/util/VirtualRefBasePtr;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mStartDelays:Landroid/util/LongArray;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mStarted:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->mTmpValues:Landroid/animation/PropertyValuesHolder$PropertyValues;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->onAnimationEnd(I)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->onDraw(Landroid/graphics/Canvas;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->parseAnimatorSet(Landroid/animation/AnimatorSet;J)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->pause()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->recordLastSeenTarget(Landroid/view/DisplayListCanvas;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->removeListener(Landroid/animation/Animator$AnimatorListener;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->reset()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->resetAnimation()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->RESET_ANIMATION:I
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->resume()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->reverse()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->reverseAnimation()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->REVERSE_ANIMATION:I
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->setListener(Landroid/animation/Animator$AnimatorListener;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->start()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->startAnimation()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->START_ANIMATION:I
+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
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->init(Landroid/animation/AnimatorSet;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->invalidateOwningView()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->isInfinite()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->isRunning()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->isStarted()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->mDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->mIsInfinite:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->mListenerArray:Ljava/util/ArrayList;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->mSet:Landroid/animation/AnimatorSet;
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->onDraw(Landroid/graphics/Canvas;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->pause()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->removeListener(Landroid/animation/Animator$AnimatorListener;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->reset()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->resume()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->reverse()V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->setListener(Landroid/animation/Animator$AnimatorListener;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->start()V
+Landroid/graphics/drawable/AnimatedVectorDrawable;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->ANIMATED_VECTOR:Ljava/lang/String;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->canReverse()Z
+Landroid/graphics/drawable/AnimatedVectorDrawable;->clearMutated()V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->containsSameValueType(Landroid/animation/PropertyValuesHolder;Landroid/util/Property;)Z
+Landroid/graphics/drawable/AnimatedVectorDrawable;->DBG_ANIMATION_VECTOR_DRAWABLE:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable;->ensureAnimatorSet()V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->fallbackOntoUI()V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->LOGTAG:Ljava/lang/String;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mAnimationCallbacks:Ljava/util/ArrayList;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mAnimatorListener:Landroid/animation/Animator$AnimatorListener;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mAnimatorSetFromXml:Landroid/animation/AnimatorSet;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mCallback:Landroid/graphics/drawable/Drawable$Callback;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mMutated:Z
+Landroid/graphics/drawable/AnimatedVectorDrawable;->mRes:Landroid/content/res/Resources;
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nAddAnimator(JJJJJII)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nCreateAnimatorSet()J
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nCreateGroupPropertyHolder(JIFF)J
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nCreatePathColorPropertyHolder(JIII)J
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nCreatePathDataPropertyHolder(JJJ)J
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nCreatePathPropertyHolder(JIFF)J
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nCreateRootAlphaPropertyHolder(JFF)J
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nEnd(J)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nReset(J)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nReverse(JLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nSetPropertyHolderData(J[FI)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nSetPropertyHolderData(J[II)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nSetVectorDrawableTarget(JJ)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->nStart(JLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->removeAnimatorSetListener()V
+Landroid/graphics/drawable/AnimatedVectorDrawable;->reverse()V
+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
+Landroid/graphics/drawable/AnimationDrawable$AnimationState;->mOneShot:Z
+Landroid/graphics/drawable/AnimationDrawable$AnimationState;->mutate()V
+Landroid/graphics/drawable/AnimationDrawable;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/AnimationDrawable;->clearMutated()V
+Landroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/AnimationDrawable$AnimationState;
+Landroid/graphics/drawable/AnimationDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/AnimationDrawable;->mAnimating:Z
+Landroid/graphics/drawable/AnimationDrawable;->mAnimationState:Landroid/graphics/drawable/AnimationDrawable$AnimationState;
+Landroid/graphics/drawable/AnimationDrawable;->mMutated:Z
+Landroid/graphics/drawable/AnimationDrawable;->mRunning:Z
+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
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mBaseAlpha:F
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mBitmap:Landroid/graphics/Bitmap;
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mChangingConfigurations:I
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mGravity:I
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mPaint:Landroid/graphics/Paint;
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mRebuildShader:Z
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mSrcDensityOverride:I
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mTargetDensity:I
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mThemeAttrs:[I
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mTileModeX:Landroid/graphics/Shader$TileMode;
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mTileModeY:Landroid/graphics/Shader$TileMode;
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mTint:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/BitmapDrawable;->clearMutated()V
+Landroid/graphics/drawable/BitmapDrawable;->computeBitmapSize()V
+Landroid/graphics/drawable/BitmapDrawable;->DEFAULT_PAINT_FLAGS:I
+Landroid/graphics/drawable/BitmapDrawable;->getOrCreateMirrorMatrix()Landroid/graphics/Matrix;
+Landroid/graphics/drawable/BitmapDrawable;->init(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/BitmapDrawable;->mBitmapHeight:I
+Landroid/graphics/drawable/BitmapDrawable;->mBitmapWidth:I
+Landroid/graphics/drawable/BitmapDrawable;->mDstRect:Landroid/graphics/Rect;
+Landroid/graphics/drawable/BitmapDrawable;->mDstRectAndInsetsDirty:Z
+Landroid/graphics/drawable/BitmapDrawable;->mMirrorMatrix:Landroid/graphics/Matrix;
+Landroid/graphics/drawable/BitmapDrawable;->mMutated:Z
+Landroid/graphics/drawable/BitmapDrawable;->mOpticalInsets:Landroid/graphics/Insets;
+Landroid/graphics/drawable/BitmapDrawable;->mTintFilter:Landroid/graphics/PorterDuffColorFilter;
+Landroid/graphics/drawable/BitmapDrawable;->needMirroring()Z
+Landroid/graphics/drawable/BitmapDrawable;->parseTileMode(I)Landroid/graphics/Shader$TileMode;
+Landroid/graphics/drawable/BitmapDrawable;->setXfermode(Landroid/graphics/Xfermode;)V
+Landroid/graphics/drawable/BitmapDrawable;->TILE_MODE_CLAMP:I
+Landroid/graphics/drawable/BitmapDrawable;->TILE_MODE_DISABLED:I
+Landroid/graphics/drawable/BitmapDrawable;->TILE_MODE_MIRROR:I
+Landroid/graphics/drawable/BitmapDrawable;->TILE_MODE_REPEAT:I
+Landroid/graphics/drawable/BitmapDrawable;->TILE_MODE_UNDEFINED:I
+Landroid/graphics/drawable/BitmapDrawable;->updateDstRectAndInsetsIfDirty()V
+Landroid/graphics/drawable/BitmapDrawable;->updateLocalState(Landroid/content/res/Resources;)V
+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
+Landroid/graphics/drawable/ClipDrawable$ClipState;->mThemeAttrs:[I
+Landroid/graphics/drawable/ClipDrawable;-><init>()V
+Landroid/graphics/drawable/ClipDrawable;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/ClipDrawable;->MAX_LEVEL:I
+Landroid/graphics/drawable/ClipDrawable;->mTmpRect:Landroid/graphics/Rect;
+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
+Landroid/graphics/drawable/ColorDrawable$ColorState;->mChangingConfigurations:I
+Landroid/graphics/drawable/ColorDrawable$ColorState;->mThemeAttrs:[I
+Landroid/graphics/drawable/ColorDrawable$ColorState;->mTint:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/ColorDrawable$ColorState;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/ColorDrawable;->clearMutated()V
+Landroid/graphics/drawable/ColorDrawable;->mColorState:Landroid/graphics/drawable/ColorDrawable$ColorState;
+Landroid/graphics/drawable/ColorDrawable;->mMutated:Z
+Landroid/graphics/drawable/ColorDrawable;->mTintFilter:Landroid/graphics/PorterDuffColorFilter;
+Landroid/graphics/drawable/ColorDrawable;->setXfermode(Landroid/graphics/Xfermode;)V
+Landroid/graphics/drawable/ColorDrawable;->updateLocalState(Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/ColorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+Landroid/graphics/drawable/Drawable;->clearMutated()V
+Landroid/graphics/drawable/Drawable;->createFromXmlForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/Drawable;->createFromXmlInnerForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/Drawable;->DEFAULT_TINT_MODE:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/Drawable;->drawableFromBitmap(Landroid/content/res/Resources;Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Landroid/graphics/Rect;Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/Drawable;->getBitmapDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/Drawable;->mBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/Drawable;->mChangingConfigurations:I
+Landroid/graphics/drawable/Drawable;->mLayoutDirection:I
+Landroid/graphics/drawable/Drawable;->mLevel:I
+Landroid/graphics/drawable/Drawable;->mStateSet:[I
+Landroid/graphics/drawable/Drawable;->mVisible:Z
+Landroid/graphics/drawable/Drawable;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
+Landroid/graphics/drawable/Drawable;->resolveDensity(Landroid/content/res/Resources;I)I
+Landroid/graphics/drawable/Drawable;->rethrowAsRuntimeException(Ljava/lang/Exception;)V
+Landroid/graphics/drawable/Drawable;->scaleFromDensity(FII)F
+Landroid/graphics/drawable/Drawable;->scaleFromDensity(IIIZ)I
+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;
+Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->wrap(Landroid/graphics/drawable/Drawable$Callback;)Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->applyTheme(Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->clearMutated()V
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->createAllFutures()V
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getCapacity()I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->invalidateCache()V
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mAutoMirrored:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mCanConstantState:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mChangingConfigurations:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mCheckedConstantSize:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mCheckedConstantState:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mCheckedOpacity:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mCheckedPadding:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mCheckedStateful:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mChildrenChangingConfigurations:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mColorFilter:Landroid/graphics/ColorFilter;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mConstantHeight:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mConstantMinimumHeight:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mConstantMinimumWidth:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mConstantSize:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mConstantWidth:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mDensity:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mDither:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mDrawableFutures:Landroid/util/SparseArray;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mEnterFadeDuration:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mExitFadeDuration:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mHasTintList:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mHasTintMode:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mLayoutDirection:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mMutated:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mNumChildren:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mOpacity:I
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mOwner:Landroid/graphics/drawable/DrawableContainer;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mSourceRes:Landroid/content/res/Resources;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mStateful:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mTintList:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mutate()V
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mVariablePadding:Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->prepareDrawable(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setLayoutDirection(II)Z
+Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;->updateDensity(Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/DrawableContainer;->animate(Z)V
+Landroid/graphics/drawable/DrawableContainer;->clearMutated()V
+Landroid/graphics/drawable/DrawableContainer;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
+Landroid/graphics/drawable/DrawableContainer;->DEBUG:Z
+Landroid/graphics/drawable/DrawableContainer;->DEFAULT_DITHER:Z
+Landroid/graphics/drawable/DrawableContainer;->getCurrentIndex()I
+Landroid/graphics/drawable/DrawableContainer;->initializeDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V
+Landroid/graphics/drawable/DrawableContainer;->mAlpha:I
+Landroid/graphics/drawable/DrawableContainer;->mAnimationRunnable:Ljava/lang/Runnable;
+Landroid/graphics/drawable/DrawableContainer;->mBlockInvalidateCallback:Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;
+Landroid/graphics/drawable/DrawableContainer;->mCurIndex:I
+Landroid/graphics/drawable/DrawableContainer;->mCurrDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/DrawableContainer;->mEnterAnimationEnd:J
+Landroid/graphics/drawable/DrawableContainer;->mExitAnimationEnd:J
+Landroid/graphics/drawable/DrawableContainer;->mHasAlpha:Z
+Landroid/graphics/drawable/DrawableContainer;->mHotspotBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/DrawableContainer;->mLastIndex:I
+Landroid/graphics/drawable/DrawableContainer;->mMutated:Z
+Landroid/graphics/drawable/DrawableContainer;->needsMirroring()Z
+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;
+Landroid/graphics/drawable/DrawableInflater;->inflateFromTag(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/DrawableInflater;->inflateFromXml(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/DrawableInflater;->inflateFromXmlForDensity(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+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
+Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->mDensity:I
+Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->mDrawableState:Landroid/graphics/drawable/Drawable$ConstantState;
+Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->mSrcDensityOverride:I
+Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->mThemeAttrs:[I
+Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->onDensityChanged(II)V
+Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->setDensity(I)V
+Landroid/graphics/drawable/DrawableWrapper;-><init>(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/DrawableWrapper;->clearMutated()V
+Landroid/graphics/drawable/DrawableWrapper;->inflateChildDrawable(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/DrawableWrapper;->mDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/DrawableWrapper;->mMutated:Z
+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
+Landroid/graphics/drawable/GradientDrawable$GradientState;->computeOpacity()V
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mAttrCorners:[I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mAttrGradient:[I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mAttrPadding:[I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mAttrSize:[I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mAttrSolid:[I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mAttrStroke:[I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mCenterX:F
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mCenterY:F
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mChangingConfigurations:I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mDensity:I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mDither:Z
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mGradientRadius:F
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mGradientRadiusType:I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mOpaqueOverBounds:Z
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mOpaqueOverShape:Z
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mOpticalInsets:Landroid/graphics/Insets;
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mStrokeColors:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mTempColors:[I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mTempPositions:[F
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mThemeAttrs:[I
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mTint:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mUseLevel:Z
+Landroid/graphics/drawable/GradientDrawable$GradientState;->mUseLevelForShape:Z
+Landroid/graphics/drawable/GradientDrawable$GradientState;->setCornerRadii([F)V
+Landroid/graphics/drawable/GradientDrawable$GradientState;->setCornerRadius(F)V
+Landroid/graphics/drawable/GradientDrawable$GradientState;->setDensity(I)V
+Landroid/graphics/drawable/GradientDrawable$GradientState;->setGradientCenter(FF)V
+Landroid/graphics/drawable/GradientDrawable$GradientState;->setGradientColors([I)V
+Landroid/graphics/drawable/GradientDrawable$GradientState;->setGradientRadius(FI)V
+Landroid/graphics/drawable/GradientDrawable$GradientState;->setGradientType(I)V
+Landroid/graphics/drawable/GradientDrawable$GradientState;->setShape(I)V
+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
+Landroid/graphics/drawable/GradientDrawable;->buildRing(Landroid/graphics/drawable/GradientDrawable$GradientState;)Landroid/graphics/Path;
+Landroid/graphics/drawable/GradientDrawable;->clearMutated()V
+Landroid/graphics/drawable/GradientDrawable;->DEFAULT_INNER_RADIUS_RATIO:F
+Landroid/graphics/drawable/GradientDrawable;->DEFAULT_THICKNESS_RATIO:F
+Landroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z
+Landroid/graphics/drawable/GradientDrawable;->getFloatOrFraction(Landroid/content/res/TypedArray;IF)F
+Landroid/graphics/drawable/GradientDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/GradientDrawable;->isOpaque(I)Z
+Landroid/graphics/drawable/GradientDrawable;->isOpaqueForState()Z
+Landroid/graphics/drawable/GradientDrawable;->mAlpha:I
+Landroid/graphics/drawable/GradientDrawable;->mColorFilter:Landroid/graphics/ColorFilter;
+Landroid/graphics/drawable/GradientDrawable;->mGradientIsDirty:Z
+Landroid/graphics/drawable/GradientDrawable;->mGradientRadius:F
+Landroid/graphics/drawable/GradientDrawable;->mLayerPaint:Landroid/graphics/Paint;
+Landroid/graphics/drawable/GradientDrawable;->mMutated:Z
+Landroid/graphics/drawable/GradientDrawable;->modulateAlpha(I)I
+Landroid/graphics/drawable/GradientDrawable;->mPath:Landroid/graphics/Path;
+Landroid/graphics/drawable/GradientDrawable;->mPathIsDirty:Z
+Landroid/graphics/drawable/GradientDrawable;->mRect:Landroid/graphics/RectF;
+Landroid/graphics/drawable/GradientDrawable;->mRingPath:Landroid/graphics/Path;
+Landroid/graphics/drawable/GradientDrawable;->mTintFilter:Landroid/graphics/PorterDuffColorFilter;
+Landroid/graphics/drawable/GradientDrawable;->RADIUS_TYPE_FRACTION:I
+Landroid/graphics/drawable/GradientDrawable;->RADIUS_TYPE_FRACTION_PARENT:I
+Landroid/graphics/drawable/GradientDrawable;->RADIUS_TYPE_PIXELS:I
+Landroid/graphics/drawable/GradientDrawable;->setAntiAlias(Z)V
+Landroid/graphics/drawable/GradientDrawable;->setStrokeInternal(IIFF)V
+Landroid/graphics/drawable/GradientDrawable;->setXfermode(Landroid/graphics/Xfermode;)V
+Landroid/graphics/drawable/GradientDrawable;->updateDrawableCorners(Landroid/content/res/TypedArray;)V
+Landroid/graphics/drawable/GradientDrawable;->updateGradientDrawableGradient(Landroid/content/res/Resources;Landroid/content/res/TypedArray;)V
+Landroid/graphics/drawable/GradientDrawable;->updateGradientDrawablePadding(Landroid/content/res/TypedArray;)V
+Landroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSize(Landroid/content/res/TypedArray;)V
+Landroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSolid(Landroid/content/res/TypedArray;)V
+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
+Landroid/graphics/drawable/Icon;-><init>(I)V
+Landroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;)V
+Landroid/graphics/drawable/Icon;->convertToAshmem()V
+Landroid/graphics/drawable/Icon;->createFromStream(Ljava/io/InputStream;)Landroid/graphics/drawable/Icon;
+Landroid/graphics/drawable/Icon;->DEFAULT_TINT_MODE:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/Icon;->getUriString()Ljava/lang/String;
+Landroid/graphics/drawable/Icon;->loadDrawableAsUser(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/Icon;->loadDrawableInner(Landroid/content/Context;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/Icon;->mInt1:I
+Landroid/graphics/drawable/Icon;->mInt2:I
+Landroid/graphics/drawable/Icon;->MIN_ASHMEM_ICON_SIZE:I
+Landroid/graphics/drawable/Icon;->mObj1:Ljava/lang/Object;
+Landroid/graphics/drawable/Icon;->mTintList:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/Icon;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/Icon;->sameAs(Landroid/graphics/drawable/Icon;)Z
+Landroid/graphics/drawable/Icon;->scaleDownIfNecessary(II)V
+Landroid/graphics/drawable/Icon;->scaleDownIfNecessary(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
+Landroid/graphics/drawable/Icon;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/graphics/drawable/Icon;->TAG:Ljava/lang/String;
+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;
+Landroid/graphics/drawable/InsetDrawable$InsetState;->mInsetLeft:Landroid/graphics/drawable/InsetDrawable$InsetValue;
+Landroid/graphics/drawable/InsetDrawable$InsetState;->mInsetRight:Landroid/graphics/drawable/InsetDrawable$InsetValue;
+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
+Landroid/graphics/drawable/InsetDrawable$InsetValue;->mDimension:I
+Landroid/graphics/drawable/InsetDrawable$InsetValue;->mFraction:F
+Landroid/graphics/drawable/InsetDrawable$InsetValue;->scaleFromDensity(II)V
+Landroid/graphics/drawable/InsetDrawable;-><init>()V
+Landroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/InsetDrawable;->getInset(Landroid/content/res/TypedArray;ILandroid/graphics/drawable/InsetDrawable$InsetValue;)Landroid/graphics/drawable/InsetDrawable$InsetValue;
+Landroid/graphics/drawable/InsetDrawable;->getInsets(Landroid/graphics/Rect;)V
+Landroid/graphics/drawable/InsetDrawable;->mTmpInsetRect:Landroid/graphics/Rect;
+Landroid/graphics/drawable/InsetDrawable;->mTmpRect:Landroid/graphics/Rect;
+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
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->canApplyTheme()Z
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mDensity:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mGravity:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mHeight:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mId:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mInsetB:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mInsetE:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mInsetL:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mInsetR:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mInsetS:I
+Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mInsetT:I
+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
+Landroid/graphics/drawable/LayerDrawable$LayerState;->getOpacity()I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->hasFocusStateSpecified()Z
+Landroid/graphics/drawable/LayerDrawable$LayerState;->invalidateCache()V
+Landroid/graphics/drawable/LayerDrawable$LayerState;->isStateful()Z
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mAutoMirrored:Z
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mChangingConfigurations:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mCheckedOpacity:Z
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mCheckedStateful:Z
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mChildrenChangingConfigurations:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mDensity:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mIsStateful:Z
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mNumChildren:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mOpacity:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mOpacityOverride:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mPaddingBottom:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mPaddingEnd:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mPaddingLeft:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mPaddingMode:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mPaddingRight:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mPaddingStart:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mPaddingTop:I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->mThemeAttrs:[I
+Landroid/graphics/drawable/LayerDrawable$LayerState;->onDensityChanged(II)V
+Landroid/graphics/drawable/LayerDrawable$LayerState;->setDensity(I)V
+Landroid/graphics/drawable/LayerDrawable;-><init>()V
+Landroid/graphics/drawable/LayerDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/LayerDrawable$LayerState;)V
+Landroid/graphics/drawable/LayerDrawable;->addLayer(Landroid/graphics/drawable/Drawable;[IIIIII)Landroid/graphics/drawable/LayerDrawable$ChildDrawable;
+Landroid/graphics/drawable/LayerDrawable;->clearMutated()V
+Landroid/graphics/drawable/LayerDrawable;->computeNestedPadding(Landroid/graphics/Rect;)V
+Landroid/graphics/drawable/LayerDrawable;->computeStackedPadding(Landroid/graphics/Rect;)V
+Landroid/graphics/drawable/LayerDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState;
+Landroid/graphics/drawable/LayerDrawable;->createLayer(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/LayerDrawable$ChildDrawable;
+Landroid/graphics/drawable/LayerDrawable;->getFirstNonNullDrawable()Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/LayerDrawable;->inflateLayers(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/LayerDrawable;->isProjected()Z
+Landroid/graphics/drawable/LayerDrawable;->LOG_TAG:Ljava/lang/String;
+Landroid/graphics/drawable/LayerDrawable;->mChildRequestedInvalidation:Z
+Landroid/graphics/drawable/LayerDrawable;->mHotspotBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/LayerDrawable;->mMutated:Z
+Landroid/graphics/drawable/LayerDrawable;->mPaddingB:[I
+Landroid/graphics/drawable/LayerDrawable;->mPaddingL:[I
+Landroid/graphics/drawable/LayerDrawable;->mPaddingR:[I
+Landroid/graphics/drawable/LayerDrawable;->mPaddingT:[I
+Landroid/graphics/drawable/LayerDrawable;->mSuspendChildInvalidation:Z
+Landroid/graphics/drawable/LayerDrawable;->mTmpContainer:Landroid/graphics/Rect;
+Landroid/graphics/drawable/LayerDrawable;->mTmpOutRect:Landroid/graphics/Rect;
+Landroid/graphics/drawable/LayerDrawable;->mTmpRect:Landroid/graphics/Rect;
+Landroid/graphics/drawable/LayerDrawable;->refreshChildPadding(ILandroid/graphics/drawable/LayerDrawable$ChildDrawable;)Z
+Landroid/graphics/drawable/LayerDrawable;->refreshPadding()V
+Landroid/graphics/drawable/LayerDrawable;->resolveGravity(IIIII)I
+Landroid/graphics/drawable/LayerDrawable;->resumeChildInvalidation()V
+Landroid/graphics/drawable/LayerDrawable;->setLayerInsetInternal(IIIIIII)V
+Landroid/graphics/drawable/LayerDrawable;->suspendChildInvalidation()V
+Landroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V
+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
+Landroid/graphics/drawable/LevelListDrawable$LevelListState;->mHighs:[I
+Landroid/graphics/drawable/LevelListDrawable$LevelListState;->mLows:[I
+Landroid/graphics/drawable/LevelListDrawable$LevelListState;->mutate()V
+Landroid/graphics/drawable/LevelListDrawable;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/LevelListDrawable;->clearMutated()V
+Landroid/graphics/drawable/LevelListDrawable;->cloneConstantState()Landroid/graphics/drawable/LevelListDrawable$LevelListState;
+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
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mAutoMirrored:Z
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mBaseAlpha:F
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mChangingConfigurations:I
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mDither:Z
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mOpticalInsets:Landroid/graphics/Insets;
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mPadding:Landroid/graphics/Rect;
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mThemeAttrs:[I
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mTint:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/NinePatchDrawable;-><init>()V
+Landroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Landroid/graphics/Rect;Ljava/lang/String;)V
+Landroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/NinePatchDrawable;->clearMutated()V
+Landroid/graphics/drawable/NinePatchDrawable;->computeBitmapSize()V
+Landroid/graphics/drawable/NinePatchDrawable;->DEFAULT_DITHER:Z
+Landroid/graphics/drawable/NinePatchDrawable;->mBitmapHeight:I
+Landroid/graphics/drawable/NinePatchDrawable;->mBitmapWidth:I
+Landroid/graphics/drawable/NinePatchDrawable;->mMutated:Z
+Landroid/graphics/drawable/NinePatchDrawable;->mOpticalInsets:Landroid/graphics/Insets;
+Landroid/graphics/drawable/NinePatchDrawable;->mOutlineInsets:Landroid/graphics/Rect;
+Landroid/graphics/drawable/NinePatchDrawable;->mOutlineRadius:F
+Landroid/graphics/drawable/NinePatchDrawable;->mPadding:Landroid/graphics/Rect;
+Landroid/graphics/drawable/NinePatchDrawable;->mPaint:Landroid/graphics/Paint;
+Landroid/graphics/drawable/NinePatchDrawable;->mTargetDensity:I
+Landroid/graphics/drawable/NinePatchDrawable;->mTempRect:Landroid/graphics/Rect;
+Landroid/graphics/drawable/NinePatchDrawable;->mTintFilter:Landroid/graphics/PorterDuffColorFilter;
+Landroid/graphics/drawable/NinePatchDrawable;->needsMirroring()Z
+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
+Landroid/graphics/drawable/RippleBackground;->jumpToFinal()V
+Landroid/graphics/drawable/RippleBackground;->LINEAR_INTERPOLATOR:Landroid/animation/TimeInterpolator;
+Landroid/graphics/drawable/RippleBackground;->mAnimator:Landroid/animation/ObjectAnimator;
+Landroid/graphics/drawable/RippleBackground;->mFocused:Z
+Landroid/graphics/drawable/RippleBackground;->mHovered:Z
+Landroid/graphics/drawable/RippleBackground;->mIsBounded:Z
+Landroid/graphics/drawable/RippleBackground;->mOpacity:F
+Landroid/graphics/drawable/RippleBackground;->onStateChanged()V
+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
+Landroid/graphics/drawable/RippleComponent;->invalidateSelf()V
+Landroid/graphics/drawable/RippleComponent;->mBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/RippleComponent;->mDensityScale:F
+Landroid/graphics/drawable/RippleComponent;->mHasMaxRadius:Z
+Landroid/graphics/drawable/RippleComponent;->mOwner:Landroid/graphics/drawable/RippleDrawable;
+Landroid/graphics/drawable/RippleComponent;->mTargetRadius:F
+Landroid/graphics/drawable/RippleComponent;->onBoundsChange()V
+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
+Landroid/graphics/drawable/RippleDrawable$RippleState;->mTouchThemeAttrs:[I
+Landroid/graphics/drawable/RippleDrawable$RippleState;->onDensityChanged(II)V
+Landroid/graphics/drawable/RippleDrawable;-><init>()V
+Landroid/graphics/drawable/RippleDrawable;-><init>(Landroid/graphics/drawable/RippleDrawable$RippleState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/RippleDrawable;->cancelExitingRipples()V
+Landroid/graphics/drawable/RippleDrawable;->clearHotspots()V
+Landroid/graphics/drawable/RippleDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/RippleDrawable$RippleState;
+Landroid/graphics/drawable/RippleDrawable;->drawBackgroundAndRipples(Landroid/graphics/Canvas;)V
+Landroid/graphics/drawable/RippleDrawable;->drawContent(Landroid/graphics/Canvas;)V
+Landroid/graphics/drawable/RippleDrawable;->drawMask(Landroid/graphics/Canvas;)V
+Landroid/graphics/drawable/RippleDrawable;->getMaskType()I
+Landroid/graphics/drawable/RippleDrawable;->invalidateSelf(Z)V
+Landroid/graphics/drawable/RippleDrawable;->isBounded()Z
+Landroid/graphics/drawable/RippleDrawable;->isProjected()Z
+Landroid/graphics/drawable/RippleDrawable;->MASK_CONTENT:I
+Landroid/graphics/drawable/RippleDrawable;->MASK_EXPLICIT:I
+Landroid/graphics/drawable/RippleDrawable;->MASK_NONE:I
+Landroid/graphics/drawable/RippleDrawable;->MASK_UNKNOWN:I
+Landroid/graphics/drawable/RippleDrawable;->MAX_RIPPLES:I
+Landroid/graphics/drawable/RippleDrawable;->mBackground:Landroid/graphics/drawable/RippleBackground;
+Landroid/graphics/drawable/RippleDrawable;->mDirtyBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/RippleDrawable;->mDrawingBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/RippleDrawable;->mExitingRipples:[Landroid/graphics/drawable/RippleForeground;
+Landroid/graphics/drawable/RippleDrawable;->mExitingRipplesCount:I
+Landroid/graphics/drawable/RippleDrawable;->mForceSoftware:Z
+Landroid/graphics/drawable/RippleDrawable;->mHasPending:Z
+Landroid/graphics/drawable/RippleDrawable;->mHasValidMask:Z
+Landroid/graphics/drawable/RippleDrawable;->mHotspotBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/RippleDrawable;->mMask:Landroid/graphics/drawable/Drawable;
+Landroid/graphics/drawable/RippleDrawable;->mMaskBuffer:Landroid/graphics/Bitmap;
+Landroid/graphics/drawable/RippleDrawable;->mMaskCanvas:Landroid/graphics/Canvas;
+Landroid/graphics/drawable/RippleDrawable;->mMaskColorFilter:Landroid/graphics/PorterDuffColorFilter;
+Landroid/graphics/drawable/RippleDrawable;->mMaskMatrix:Landroid/graphics/Matrix;
+Landroid/graphics/drawable/RippleDrawable;->mMaskShader:Landroid/graphics/BitmapShader;
+Landroid/graphics/drawable/RippleDrawable;->mOverrideBounds:Z
+Landroid/graphics/drawable/RippleDrawable;->mPendingX:F
+Landroid/graphics/drawable/RippleDrawable;->mPendingY:F
+Landroid/graphics/drawable/RippleDrawable;->mRipple:Landroid/graphics/drawable/RippleForeground;
+Landroid/graphics/drawable/RippleDrawable;->mRippleActive:Z
+Landroid/graphics/drawable/RippleDrawable;->mRipplePaint:Landroid/graphics/Paint;
+Landroid/graphics/drawable/RippleDrawable;->mTempRect:Landroid/graphics/Rect;
+Landroid/graphics/drawable/RippleDrawable;->onHotspotBoundsChanged()V
+Landroid/graphics/drawable/RippleDrawable;->pruneRipples()V
+Landroid/graphics/drawable/RippleDrawable;->setBackgroundActive(ZZZ)V
+Landroid/graphics/drawable/RippleDrawable;->setRippleActive(Z)V
+Landroid/graphics/drawable/RippleDrawable;->tryRippleEnter()V
+Landroid/graphics/drawable/RippleDrawable;->tryRippleExit()V
+Landroid/graphics/drawable/RippleDrawable;->updateLocalState()V
+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
+Landroid/graphics/drawable/RippleForeground;->computeFadeOutDelay()J
+Landroid/graphics/drawable/RippleForeground;->DECELERATE_INTERPOLATOR:Landroid/animation/TimeInterpolator;
+Landroid/graphics/drawable/RippleForeground;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+Landroid/graphics/drawable/RippleForeground;->drawHardware(Landroid/view/DisplayListCanvas;Landroid/graphics/Paint;)V
+Landroid/graphics/drawable/RippleForeground;->drawSoftware(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+Landroid/graphics/drawable/RippleForeground;->end()V
+Landroid/graphics/drawable/RippleForeground;->enter()V
+Landroid/graphics/drawable/RippleForeground;->exit()V
+Landroid/graphics/drawable/RippleForeground;->getBounds(Landroid/graphics/Rect;)V
+Landroid/graphics/drawable/RippleForeground;->getCurrentRadius()F
+Landroid/graphics/drawable/RippleForeground;->getCurrentX()F
+Landroid/graphics/drawable/RippleForeground;->getCurrentY()F
+Landroid/graphics/drawable/RippleForeground;->hasFinishedExit()Z
+Landroid/graphics/drawable/RippleForeground;->LINEAR_INTERPOLATOR:Landroid/animation/TimeInterpolator;
+Landroid/graphics/drawable/RippleForeground;->mAnimationListener:Landroid/animation/AnimatorListenerAdapter;
+Landroid/graphics/drawable/RippleForeground;->mClampedStartingX:F
+Landroid/graphics/drawable/RippleForeground;->mClampedStartingY:F
+Landroid/graphics/drawable/RippleForeground;->mEnterStartedAtMillis:J
+Landroid/graphics/drawable/RippleForeground;->mForceSoftware:Z
+Landroid/graphics/drawable/RippleForeground;->mHasFinishedExit:Z
+Landroid/graphics/drawable/RippleForeground;->mOpacity:F
+Landroid/graphics/drawable/RippleForeground;->move(FF)V
+Landroid/graphics/drawable/RippleForeground;->mPendingHwAnimators:Ljava/util/ArrayList;
+Landroid/graphics/drawable/RippleForeground;->mPropPaint:Landroid/graphics/CanvasProperty;
+Landroid/graphics/drawable/RippleForeground;->mPropRadius:Landroid/graphics/CanvasProperty;
+Landroid/graphics/drawable/RippleForeground;->mPropX:Landroid/graphics/CanvasProperty;
+Landroid/graphics/drawable/RippleForeground;->mPropY:Landroid/graphics/CanvasProperty;
+Landroid/graphics/drawable/RippleForeground;->mRunningHwAnimators:Ljava/util/ArrayList;
+Landroid/graphics/drawable/RippleForeground;->mRunningSwAnimators:Ljava/util/ArrayList;
+Landroid/graphics/drawable/RippleForeground;->mStartingX:F
+Landroid/graphics/drawable/RippleForeground;->mStartingY:F
+Landroid/graphics/drawable/RippleForeground;->mStartRadius:F
+Landroid/graphics/drawable/RippleForeground;->mTargetX:F
+Landroid/graphics/drawable/RippleForeground;->mTargetY:F
+Landroid/graphics/drawable/RippleForeground;->mTweenRadius:F
+Landroid/graphics/drawable/RippleForeground;->mTweenX:F
+Landroid/graphics/drawable/RippleForeground;->mTweenY:F
+Landroid/graphics/drawable/RippleForeground;->mUsingProperties:Z
+Landroid/graphics/drawable/RippleForeground;->onAnimationPropertyChanged()V
+Landroid/graphics/drawable/RippleForeground;->onTargetRadiusChanged(F)V
+Landroid/graphics/drawable/RippleForeground;->OPACITY:Landroid/util/FloatProperty;
+Landroid/graphics/drawable/RippleForeground;->OPACITY_ENTER_DURATION:I
+Landroid/graphics/drawable/RippleForeground;->OPACITY_EXIT_DURATION:I
+Landroid/graphics/drawable/RippleForeground;->OPACITY_HOLD_DURATION:I
+Landroid/graphics/drawable/RippleForeground;->pruneHwFinished()V
+Landroid/graphics/drawable/RippleForeground;->pruneSwFinished()V
+Landroid/graphics/drawable/RippleForeground;->RIPPLE_ENTER_DURATION:I
+Landroid/graphics/drawable/RippleForeground;->RIPPLE_ORIGIN_DURATION:I
+Landroid/graphics/drawable/RippleForeground;->startHardwareEnter()V
+Landroid/graphics/drawable/RippleForeground;->startHardwareExit()V
+Landroid/graphics/drawable/RippleForeground;->startPending(Landroid/view/DisplayListCanvas;)V
+Landroid/graphics/drawable/RippleForeground;->startSoftwareEnter()V
+Landroid/graphics/drawable/RippleForeground;->startSoftwareExit()V
+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
+Landroid/graphics/drawable/RotateDrawable$RotateState;->mPivotX:F
+Landroid/graphics/drawable/RotateDrawable$RotateState;->mPivotXRel:Z
+Landroid/graphics/drawable/RotateDrawable$RotateState;->mPivotY:F
+Landroid/graphics/drawable/RotateDrawable$RotateState;->mPivotYRel:Z
+Landroid/graphics/drawable/RotateDrawable$RotateState;->mThemeAttrs:[I
+Landroid/graphics/drawable/RotateDrawable$RotateState;->mToDegrees:F
+Landroid/graphics/drawable/RotateDrawable;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/RotateDrawable;->MAX_LEVEL:I
+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
+Landroid/graphics/drawable/ScaleDrawable$ScaleState;->mInitialLevel:I
+Landroid/graphics/drawable/ScaleDrawable$ScaleState;->mScaleHeight:F
+Landroid/graphics/drawable/ScaleDrawable$ScaleState;->mScaleWidth:F
+Landroid/graphics/drawable/ScaleDrawable$ScaleState;->mThemeAttrs:[I
+Landroid/graphics/drawable/ScaleDrawable$ScaleState;->mUseIntrinsicSizeAsMin:Z
+Landroid/graphics/drawable/ScaleDrawable;-><init>()V
+Landroid/graphics/drawable/ScaleDrawable;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/ScaleDrawable;->getPercent(Landroid/content/res/TypedArray;IF)F
+Landroid/graphics/drawable/ScaleDrawable;->MAX_LEVEL:I
+Landroid/graphics/drawable/ScaleDrawable;->mTmpRect:Landroid/graphics/Rect;
+Landroid/graphics/drawable/ScaleDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
+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
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mChangingConfigurations:I
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mIntrinsicHeight:I
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mIntrinsicWidth:I
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mPadding:Landroid/graphics/Rect;
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mPaint:Landroid/graphics/Paint;
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mShaderFactory:Landroid/graphics/drawable/ShapeDrawable$ShaderFactory;
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mShape:Landroid/graphics/drawable/shapes/Shape;
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mThemeAttrs:[I
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mTint:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/ShapeDrawable$ShapeState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/ShapeDrawable;->clearMutated()V
+Landroid/graphics/drawable/ShapeDrawable;->mMutated:Z
+Landroid/graphics/drawable/ShapeDrawable;->modulateAlpha(II)I
+Landroid/graphics/drawable/ShapeDrawable;->mShapeState:Landroid/graphics/drawable/ShapeDrawable$ShapeState;
+Landroid/graphics/drawable/ShapeDrawable;->mTintFilter:Landroid/graphics/PorterDuffColorFilter;
+Landroid/graphics/drawable/ShapeDrawable;->updateLocalState()V
+Landroid/graphics/drawable/ShapeDrawable;->updateShape()V
+Landroid/graphics/drawable/ShapeDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+Landroid/graphics/drawable/shapes/ArcShape;->mStartAngle:F
+Landroid/graphics/drawable/shapes/ArcShape;->mSweepAngle:F
+Landroid/graphics/drawable/shapes/PathShape;->mPath:Landroid/graphics/Path;
+Landroid/graphics/drawable/shapes/PathShape;->mScaleX:F
+Landroid/graphics/drawable/shapes/PathShape;->mScaleY:F
+Landroid/graphics/drawable/shapes/PathShape;->mStdHeight:F
+Landroid/graphics/drawable/shapes/PathShape;->mStdWidth:F
+Landroid/graphics/drawable/shapes/RectShape;->mRect:Landroid/graphics/RectF;
+Landroid/graphics/drawable/shapes/RoundRectShape;->mInnerRadii:[F
+Landroid/graphics/drawable/shapes/RoundRectShape;->mInnerRect:Landroid/graphics/RectF;
+Landroid/graphics/drawable/shapes/RoundRectShape;->mInset:Landroid/graphics/RectF;
+Landroid/graphics/drawable/shapes/RoundRectShape;->mOuterRadii:[F
+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
+Landroid/graphics/drawable/StateListDrawable$StateListState;->mStateSets:[[I
+Landroid/graphics/drawable/StateListDrawable$StateListState;->mThemeAttrs:[I
+Landroid/graphics/drawable/StateListDrawable$StateListState;->mutate()V
+Landroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;)V
+Landroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/StateListDrawable;->clearMutated()V
+Landroid/graphics/drawable/StateListDrawable;->cloneConstantState()Landroid/graphics/drawable/StateListDrawable$StateListState;
+Landroid/graphics/drawable/StateListDrawable;->DEBUG:Z
+Landroid/graphics/drawable/StateListDrawable;->getStateListState()Landroid/graphics/drawable/StateListDrawable$StateListState;
+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
+Landroid/graphics/drawable/TransitionDrawable;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;[Landroid/graphics/drawable/Drawable;)V
+Landroid/graphics/drawable/TransitionDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState;
+Landroid/graphics/drawable/TransitionDrawable;->mDuration:I
+Landroid/graphics/drawable/TransitionDrawable;->mFrom:I
+Landroid/graphics/drawable/TransitionDrawable;->mOriginalDuration:I
+Landroid/graphics/drawable/TransitionDrawable;->mReverse:Z
+Landroid/graphics/drawable/TransitionDrawable;->mStartTimeMillis:J
+Landroid/graphics/drawable/TransitionDrawable;->mTransitionState:I
+Landroid/graphics/drawable/TransitionDrawable;->showSecondLayer()V
+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
+Landroid/graphics/drawable/VectorDrawable$VClipPath;->canApplyTheme()Z
+Landroid/graphics/drawable/VectorDrawable$VClipPath;->getNativePtr()J
+Landroid/graphics/drawable/VectorDrawable$VClipPath;->getNativeSize()I
+Landroid/graphics/drawable/VectorDrawable$VClipPath;->hasFocusStateSpecified()Z
+Landroid/graphics/drawable/VectorDrawable$VClipPath;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/VectorDrawable$VClipPath;->isStateful()Z
+Landroid/graphics/drawable/VectorDrawable$VClipPath;->mNativePtr:J
+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
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyTheme(Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->canReuseCache()Z
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->createNativeTree(Landroid/graphics/drawable/VectorDrawable$VGroup;)V
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->createNativeTreeFromCopy(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getAlpha()F
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getNativeRenderer()J
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getProperty(Ljava/lang/String;)Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->hasFocusStateSpecified()Z
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->isStateful()Z
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mAllocationOfAllNodes:I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mAutoMirrored:Z
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mBaseHeight:I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mBaseWidth:I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mCachedAutoMirrored:Z
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mCacheDirty:Z
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mCachedThemeAttrs:[I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mCachedTint:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mCachedTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mChangingConfigurations:I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mDensity:I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mLastHWCachePixelCount:I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mLastSWCachePixelCount:I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mNativeTree:Lcom/android/internal/util/VirtualRefBasePtr;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mOpticalInsets:Landroid/graphics/Insets;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mRootGroup:Landroid/graphics/drawable/VectorDrawable$VGroup;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mRootName:Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mThemeAttrs:[I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mTint:Landroid/content/res/ColorStateList;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mVGTargetsMap:Landroid/util/ArrayMap;
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mViewportHeight:F
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->mViewportWidth:F
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->NATIVE_ALLOCATION_SIZE:I
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onStateChange([I)Z
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onTreeConstructionFinished()V
+Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setAlpha(F)Z
+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
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->canApplyTheme()Z
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->canComplexColorApplyTheme(Landroid/content/res/ComplexColor;)Z
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->FILL_ALPHA:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->FILL_ALPHA_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->FILL_COLOR:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->FILL_COLOR_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->FILL_TYPE_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getFillAlpha()F
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getFillColor()I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getNativePtr()J
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getNativeSize()I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getProperty(Ljava/lang/String;)Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getPropertyIndex(Ljava/lang/String;)I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getStrokeAlpha()F
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getStrokeColor()I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getStrokeWidth()F
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getTrimPathEnd()F
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getTrimPathOffset()F
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->getTrimPathStart()F
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->hasFocusStateSpecified()Z
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->isStateful()Z
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->mFillColors:Landroid/content/res/ComplexColor;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->mNativePtr:J
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->mPropertyData:[B
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->mStrokeColors:Landroid/content/res/ComplexColor;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->mThemeAttrs:[I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->NATIVE_ALLOCATION_SIZE:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->onStateChange([I)Z
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->setFillAlpha(F)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->setFillColor(I)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->setStrokeAlpha(F)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->setStrokeColor(I)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->setStrokeWidth(F)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->setTrimPathEnd(F)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->setTrimPathOffset(F)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->setTrimPathStart(F)V
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->sPropertyIndexMap:Ljava/util/HashMap;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->sPropertyMap:Ljava/util/HashMap;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_ALPHA:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_ALPHA_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_COLOR:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_COLOR_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_LINE_CAP_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_LINE_JOIN_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_MITER_LIMIT_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_WIDTH:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->STROKE_WIDTH_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->TOTAL_PROPERTY_COUNT:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->TRIM_PATH_END:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->TRIM_PATH_END_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->TRIM_PATH_OFFSET:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VFullPath;->TRIM_PATH_OFFSET_INDEX:I
+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
+Landroid/graphics/drawable/VectorDrawable$VGroup;->applyTheme(Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/VectorDrawable$VGroup;->canApplyTheme()Z
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getGroupName()Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getNativePtr()J
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getNativeSize()I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getPivotX()F
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getPivotY()F
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getProperty(Ljava/lang/String;)Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getPropertyIndex(Ljava/lang/String;)I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getRotation()F
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getScaleX()F
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getScaleY()F
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getTranslateX()F
+Landroid/graphics/drawable/VectorDrawable$VGroup;->getTranslateY()F
+Landroid/graphics/drawable/VectorDrawable$VGroup;->hasFocusStateSpecified()Z
+Landroid/graphics/drawable/VectorDrawable$VGroup;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/VectorDrawable$VGroup;->isStateful()Z
+Landroid/graphics/drawable/VectorDrawable$VGroup;->mChangingConfigurations:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->mChildren:Ljava/util/ArrayList;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->mGroupName:Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->mIsStateful:Z
+Landroid/graphics/drawable/VectorDrawable$VGroup;->mNativePtr:J
+Landroid/graphics/drawable/VectorDrawable$VGroup;->mThemeAttrs:[I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->mTransform:[F
+Landroid/graphics/drawable/VectorDrawable$VGroup;->NATIVE_ALLOCATION_SIZE:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->onStateChange([I)Z
+Landroid/graphics/drawable/VectorDrawable$VGroup;->PIVOT_X:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->PIVOT_X_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->PIVOT_Y:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->PIVOT_Y_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->ROTATION:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->ROTATION_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->SCALE_X:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->SCALE_X_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->SCALE_Y:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->SCALE_Y_INDEX:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->setScaleX(F)V
+Landroid/graphics/drawable/VectorDrawable$VGroup;->setScaleY(F)V
+Landroid/graphics/drawable/VectorDrawable$VGroup;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V
+Landroid/graphics/drawable/VectorDrawable$VGroup;->sPropertyIndexMap:Ljava/util/HashMap;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->sPropertyMap:Ljava/util/HashMap;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->TRANSFORM_PROPERTY_COUNT:I
+Landroid/graphics/drawable/VectorDrawable$VGroup;->TRANSLATE_X:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VGroup;->TRANSLATE_X_INDEX:I
+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
+Landroid/graphics/drawable/VectorDrawable$VObject;->getNativePtr()J
+Landroid/graphics/drawable/VectorDrawable$VObject;->getNativeSize()I
+Landroid/graphics/drawable/VectorDrawable$VObject;->getProperty(Ljava/lang/String;)Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VObject;->hasFocusStateSpecified()Z
+Landroid/graphics/drawable/VectorDrawable$VObject;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/VectorDrawable$VObject;->isStateful()Z
+Landroid/graphics/drawable/VectorDrawable$VObject;->isTreeValid()Z
+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;
+Landroid/graphics/drawable/VectorDrawable$VPath;->getPathName()Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable$VPath;->getProperty(Ljava/lang/String;)Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VPath;->mChangingConfigurations:I
+Landroid/graphics/drawable/VectorDrawable$VPath;->mPathData:Landroid/util/PathParser$PathData;
+Landroid/graphics/drawable/VectorDrawable$VPath;->mPathName:Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable$VPath;->PATH_DATA:Landroid/util/Property;
+Landroid/graphics/drawable/VectorDrawable$VPath;->setPathData(Landroid/util/PathParser$PathData;)V
+Landroid/graphics/drawable/VectorDrawable;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/VectorDrawable;->clearMutated()V
+Landroid/graphics/drawable/VectorDrawable;->computeVectorSize()V
+Landroid/graphics/drawable/VectorDrawable;->create(Landroid/content/res/Resources;I)Landroid/graphics/drawable/VectorDrawable;
+Landroid/graphics/drawable/VectorDrawable;->getNativeTree()J
+Landroid/graphics/drawable/VectorDrawable;->getPixelSize()F
+Landroid/graphics/drawable/VectorDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+Landroid/graphics/drawable/VectorDrawable;->LOGTAG:Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable;->mColorFilter:Landroid/graphics/ColorFilter;
+Landroid/graphics/drawable/VectorDrawable;->mDpiScaledDirty:Z
+Landroid/graphics/drawable/VectorDrawable;->mDpiScaledHeight:I
+Landroid/graphics/drawable/VectorDrawable;->mDpiScaledInsets:Landroid/graphics/Insets;
+Landroid/graphics/drawable/VectorDrawable;->mDpiScaledWidth:I
+Landroid/graphics/drawable/VectorDrawable;->mMutated:Z
+Landroid/graphics/drawable/VectorDrawable;->mTargetDensity:I
+Landroid/graphics/drawable/VectorDrawable;->mTmpBounds:Landroid/graphics/Rect;
+Landroid/graphics/drawable/VectorDrawable;->mVectorState:Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;
+Landroid/graphics/drawable/VectorDrawable;->nAddChild(JJ)V
+Landroid/graphics/drawable/VectorDrawable;->nCreateClipPath()J
+Landroid/graphics/drawable/VectorDrawable;->nCreateClipPath(J)J
+Landroid/graphics/drawable/VectorDrawable;->nCreateFullPath()J
+Landroid/graphics/drawable/VectorDrawable;->nCreateFullPath(J)J
+Landroid/graphics/drawable/VectorDrawable;->nCreateGroup()J
+Landroid/graphics/drawable/VectorDrawable;->nCreateGroup(J)J
+Landroid/graphics/drawable/VectorDrawable;->nCreateTree(J)J
+Landroid/graphics/drawable/VectorDrawable;->nCreateTreeFromCopy(JJ)J
+Landroid/graphics/drawable/VectorDrawable;->nDraw(JJJLandroid/graphics/Rect;ZZ)I
+Landroid/graphics/drawable/VectorDrawable;->needMirroring()Z
+Landroid/graphics/drawable/VectorDrawable;->nGetFillAlpha(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetFillColor(J)I
+Landroid/graphics/drawable/VectorDrawable;->nGetFullPathProperties(J[BI)Z
+Landroid/graphics/drawable/VectorDrawable;->nGetGroupProperties(J[FI)Z
+Landroid/graphics/drawable/VectorDrawable;->nGetPivotX(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetPivotY(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetRootAlpha(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetRotation(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetScaleX(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetScaleY(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetStrokeAlpha(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetStrokeColor(J)I
+Landroid/graphics/drawable/VectorDrawable;->nGetStrokeWidth(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetTranslateX(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetTranslateY(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetTrimPathEnd(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetTrimPathOffset(J)F
+Landroid/graphics/drawable/VectorDrawable;->nGetTrimPathStart(J)F
+Landroid/graphics/drawable/VectorDrawable;->nSetAllowCaching(JZ)V
+Landroid/graphics/drawable/VectorDrawable;->nSetAntiAlias(JZ)V
+Landroid/graphics/drawable/VectorDrawable;->nSetFillAlpha(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetFillColor(JI)V
+Landroid/graphics/drawable/VectorDrawable;->nSetName(JLjava/lang/String;)V
+Landroid/graphics/drawable/VectorDrawable;->nSetPathData(JJ)V
+Landroid/graphics/drawable/VectorDrawable;->nSetPathString(JLjava/lang/String;I)V
+Landroid/graphics/drawable/VectorDrawable;->nSetPivotX(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetPivotY(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetRendererViewportSize(JFF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetRootAlpha(JF)Z
+Landroid/graphics/drawable/VectorDrawable;->nSetRotation(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetScaleX(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetScaleY(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetStrokeAlpha(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetStrokeColor(JI)V
+Landroid/graphics/drawable/VectorDrawable;->nSetStrokeWidth(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetTranslateX(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetTranslateY(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetTrimPathEnd(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetTrimPathOffset(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nSetTrimPathStart(JF)V
+Landroid/graphics/drawable/VectorDrawable;->nUpdateFullPathFillGradient(JJ)V
+Landroid/graphics/drawable/VectorDrawable;->nUpdateFullPathProperties(JFIFIFFFFFIII)V
+Landroid/graphics/drawable/VectorDrawable;->nUpdateFullPathStrokeGradient(JJ)V
+Landroid/graphics/drawable/VectorDrawable;->nUpdateGroupProperties(JFFFFFFF)V
+Landroid/graphics/drawable/VectorDrawable;->setAntiAlias(Z)V
+Landroid/graphics/drawable/VectorDrawable;->SHAPE_CLIP_PATH:Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable;->SHAPE_GROUP:Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable;->SHAPE_PATH:Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable;->SHAPE_VECTOR:Ljava/lang/String;
+Landroid/graphics/drawable/VectorDrawable;->updateLocalState(Landroid/content/res/Resources;)V
+Landroid/graphics/drawable/VectorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+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;
+Landroid/graphics/FontFamily;->nAddAxisValue(JIF)V
+Landroid/graphics/FontFamily;->nAddFont(JLjava/nio/ByteBuffer;I)Z
+Landroid/graphics/FontFamily;->nAddFont(JLjava/nio/ByteBuffer;III)Z
+Landroid/graphics/FontFamily;->nAddFontFromAssetManager(JLandroid/content/res/AssetManager;Ljava/lang/String;IZIII)Z
+Landroid/graphics/FontFamily;->nAddFontWeightStyle(JLjava/nio/ByteBuffer;III)Z
+Landroid/graphics/FontFamily;->nCreateFamily(J)J
+Landroid/graphics/FontFamily;->nGetBuilderReleaseFunc()J
+Landroid/graphics/FontFamily;->nGetFamilyReleaseFunc()J
+Landroid/graphics/FontFamily;->nInitBuilder(Ljava/lang/String;I)J
+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;
+Landroid/graphics/FontListParser;->readAxis(Lorg/xmlpull/v1/XmlPullParser;)Landroid/graphics/fonts/FontVariationAxis;
+Landroid/graphics/FontListParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;)Landroid/text/FontConfig;
+Landroid/graphics/FontListParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;)Landroid/text/FontConfig$Family;
+Landroid/graphics/FontListParser;->readFont(Lorg/xmlpull/v1/XmlPullParser;)Landroid/text/FontConfig$Font;
+Landroid/graphics/FontListParser;->skip(Lorg/xmlpull/v1/XmlPullParser;)V
+Landroid/graphics/fonts/FontVariationAxis;->getOpenTypeTagValue()I
+Landroid/graphics/fonts/FontVariationAxis;->isValidTag(Ljava/lang/String;)Z
+Landroid/graphics/fonts/FontVariationAxis;->isValidValueFormat(Ljava/lang/String;)Z
+Landroid/graphics/fonts/FontVariationAxis;->makeTag(Ljava/lang/String;)I
+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
+Landroid/graphics/GraphicBuffer;->getHeight()I
+Landroid/graphics/GraphicBuffer;->getUsage()I
+Landroid/graphics/GraphicBuffer;->getWidth()I
+Landroid/graphics/GraphicBuffer;->isDestroyed()Z
+Landroid/graphics/GraphicBuffer;->lockCanvas()Landroid/graphics/Canvas;
+Landroid/graphics/GraphicBuffer;->lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;
+Landroid/graphics/GraphicBuffer;->mCanvas:Landroid/graphics/Canvas;
+Landroid/graphics/GraphicBuffer;->mDestroyed:Z
+Landroid/graphics/GraphicBuffer;->mFormat:I
+Landroid/graphics/GraphicBuffer;->mHeight:I
+Landroid/graphics/GraphicBuffer;->mSaveCount:I
+Landroid/graphics/GraphicBuffer;->mUsage:I
+Landroid/graphics/GraphicBuffer;->mWidth:I
+Landroid/graphics/GraphicBuffer;->nCreateGraphicBuffer(IIII)J
+Landroid/graphics/GraphicBuffer;->nDestroyGraphicBuffer(J)V
+Landroid/graphics/GraphicBuffer;->nLockCanvas(JLandroid/graphics/Canvas;Landroid/graphics/Rect;)Z
+Landroid/graphics/GraphicBuffer;->nReadGraphicBufferFromParcel(Landroid/os/Parcel;)J
+Landroid/graphics/GraphicBuffer;->nUnlockCanvasAndPost(JLandroid/graphics/Canvas;)Z
+Landroid/graphics/GraphicBuffer;->nWrapGraphicBuffer(J)J
+Landroid/graphics/GraphicBuffer;->nWriteGraphicBufferToParcel(JLandroid/os/Parcel;)V
+Landroid/graphics/GraphicBuffer;->unlockCanvasAndPost(Landroid/graphics/Canvas;)V
+Landroid/graphics/GraphicBuffer;->USAGE_HW_2D:I
+Landroid/graphics/GraphicBuffer;->USAGE_HW_COMPOSER:I
+Landroid/graphics/GraphicBuffer;->USAGE_HW_MASK:I
+Landroid/graphics/GraphicBuffer;->USAGE_HW_RENDER:I
+Landroid/graphics/GraphicBuffer;->USAGE_HW_TEXTURE:I
+Landroid/graphics/GraphicBuffer;->USAGE_HW_VIDEO_ENCODER:I
+Landroid/graphics/GraphicBuffer;->USAGE_PROTECTED:I
+Landroid/graphics/GraphicBuffer;->USAGE_SOFTWARE_MASK:I
+Landroid/graphics/GraphicBuffer;->USAGE_SW_READ_MASK:I
+Landroid/graphics/GraphicBuffer;->USAGE_SW_READ_NEVER:I
+Landroid/graphics/GraphicBuffer;->USAGE_SW_READ_OFTEN:I
+Landroid/graphics/GraphicBuffer;->USAGE_SW_READ_RARELY:I
+Landroid/graphics/GraphicBuffer;->USAGE_SW_WRITE_MASK:I
+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
+Landroid/graphics/ImageDecoder$AssetInputStreamSource;->getResources()Landroid/content/res/Resources;
+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
+Landroid/graphics/ImageDecoder$InputStreamSource;->getResources()Landroid/content/res/Resources;
+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
+Landroid/graphics/ImageDecoder$ResourceSource;->getResources()Landroid/content/res/Resources;
+Landroid/graphics/ImageDecoder$ResourceSource;->mLock:Ljava/lang/Object;
+Landroid/graphics/ImageDecoder$ResourceSource;->mResDensity:I
+Landroid/graphics/ImageDecoder$ResourceSource;->mResId:I
+Landroid/graphics/ImageDecoder$ResourceSource;->mResources:Landroid/content/res/Resources;
+Landroid/graphics/ImageDecoder$Source;-><init>()V
+Landroid/graphics/ImageDecoder$Source;->computeDstDensity()I
+Landroid/graphics/ImageDecoder$Source;->createImageDecoder()Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder$Source;->getDensity()I
+Landroid/graphics/ImageDecoder$Source;->getResources()Landroid/content/res/Resources;
+Landroid/graphics/ImageDecoder;-><init>(JIIZZ)V
+Landroid/graphics/ImageDecoder;->callHeaderDecoded(Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;Landroid/graphics/ImageDecoder$Source;)V
+Landroid/graphics/ImageDecoder;->checkState()V
+Landroid/graphics/ImageDecoder;->checkSubset(IILandroid/graphics/Rect;)V
+Landroid/graphics/ImageDecoder;->computeDensity(Landroid/graphics/ImageDecoder$Source;)I
+Landroid/graphics/ImageDecoder;->createFromAsset(Landroid/content/res/AssetManager$AssetInputStream;Landroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->createFromFile(Ljava/io/File;Landroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->createFromStream(Ljava/io/InputStream;ZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->createSource(Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/content/res/Resources;)Landroid/graphics/ImageDecoder$Source;
+Landroid/graphics/ImageDecoder;->createSource(Landroid/content/res/Resources;Ljava/io/InputStream;)Landroid/graphics/ImageDecoder$Source;
+Landroid/graphics/ImageDecoder;->createSource([B)Landroid/graphics/ImageDecoder$Source;
+Landroid/graphics/ImageDecoder;->createSource([BII)Landroid/graphics/ImageDecoder$Source;
+Landroid/graphics/ImageDecoder;->decodeBitmapImpl(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/Bitmap;
+Landroid/graphics/ImageDecoder;->decodeBitmapInternal()Landroid/graphics/Bitmap;
+Landroid/graphics/ImageDecoder;->decodeDrawableImpl(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/drawable/Drawable;
+Landroid/graphics/ImageDecoder;->getColorSpace()Landroid/graphics/ColorSpace;
+Landroid/graphics/ImageDecoder;->getMimeType()Ljava/lang/String;
+Landroid/graphics/ImageDecoder;->getSampledSize(I)Landroid/util/Size;
+Landroid/graphics/ImageDecoder;->getTargetDimension(III)I
+Landroid/graphics/ImageDecoder;->mAllocator:I
+Landroid/graphics/ImageDecoder;->mAnimated:Z
+Landroid/graphics/ImageDecoder;->mAssetFd:Landroid/content/res/AssetFileDescriptor;
+Landroid/graphics/ImageDecoder;->mClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/graphics/ImageDecoder;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/graphics/ImageDecoder;->mConserveMemory:Z
+Landroid/graphics/ImageDecoder;->mCropRect:Landroid/graphics/Rect;
+Landroid/graphics/ImageDecoder;->mDecodeAsAlphaMask:Z
+Landroid/graphics/ImageDecoder;->mDesiredColorSpace:Landroid/graphics/ColorSpace;
+Landroid/graphics/ImageDecoder;->mDesiredHeight:I
+Landroid/graphics/ImageDecoder;->mDesiredWidth:I
+Landroid/graphics/ImageDecoder;->mHeight:I
+Landroid/graphics/ImageDecoder;->mInputStream:Ljava/io/InputStream;
+Landroid/graphics/ImageDecoder;->mIsNinePatch:Z
+Landroid/graphics/ImageDecoder;->mMutable:Z
+Landroid/graphics/ImageDecoder;->mNativePtr:J
+Landroid/graphics/ImageDecoder;->mOnPartialImageListener:Landroid/graphics/ImageDecoder$OnPartialImageListener;
+Landroid/graphics/ImageDecoder;->mOutPaddingRect:Landroid/graphics/Rect;
+Landroid/graphics/ImageDecoder;->mOwnsInputStream:Z
+Landroid/graphics/ImageDecoder;->mPostProcessor:Landroid/graphics/PostProcessor;
+Landroid/graphics/ImageDecoder;->mSource:Landroid/graphics/ImageDecoder$Source;
+Landroid/graphics/ImageDecoder;->mTempStorage:[B
+Landroid/graphics/ImageDecoder;->mUnpremultipliedRequired:Z
+Landroid/graphics/ImageDecoder;->mWidth:I
+Landroid/graphics/ImageDecoder;->nClose(J)V
+Landroid/graphics/ImageDecoder;->nCreate(JLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->nCreate(Ljava/io/FileDescriptor;Landroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->nCreate(Ljava/io/InputStream;[BLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->nCreate(Ljava/nio/ByteBuffer;IILandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->nCreate([BIILandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+Landroid/graphics/ImageDecoder;->nDecodeBitmap(JLandroid/graphics/ImageDecoder;ZIILandroid/graphics/Rect;ZIZZZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
+Landroid/graphics/ImageDecoder;->nGetColorSpace(J)Landroid/graphics/ColorSpace;
+Landroid/graphics/ImageDecoder;->nGetMimeType(J)Ljava/lang/String;
+Landroid/graphics/ImageDecoder;->nGetPadding(JLandroid/graphics/Rect;)V
+Landroid/graphics/ImageDecoder;->nGetSampledSize(JI)Landroid/util/Size;
+Landroid/graphics/ImageDecoder;->onPartialImage(ILjava/lang/Throwable;)V
+Landroid/graphics/ImageDecoder;->requestedResize()Z
+Landroid/graphics/ImageDecoder;->sApiLevel:I
+Landroid/graphics/ImageDecoder;->setOutPaddingRect(Landroid/graphics/Rect;)V
+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
+Landroid/graphics/Interpolator;->nativeDestructor(J)V
+Landroid/graphics/Interpolator;->nativeReset(JII)V
+Landroid/graphics/Interpolator;->nativeSetKeyFrame(JII[F[F)V
+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;
+Landroid/graphics/LargeBitmap;->getHeight()I
+Landroid/graphics/LargeBitmap;->getWidth()I
+Landroid/graphics/LargeBitmap;->isRecycled()Z
+Landroid/graphics/LargeBitmap;->mNativeLargeBitmap:J
+Landroid/graphics/LargeBitmap;->mRecycled:Z
+Landroid/graphics/LargeBitmap;->nativeClean(J)V
+Landroid/graphics/LargeBitmap;->nativeDecodeRegion(JIIIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+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;
+Landroid/graphics/LeakyTypefaceStorage;->sStorage:Ljava/util/ArrayList;
+Landroid/graphics/LeakyTypefaceStorage;->sTypefaceMap:Landroid/util/ArrayMap;
+Landroid/graphics/LeakyTypefaceStorage;->writeTypefaceToParcel(Landroid/graphics/Typeface;Landroid/os/Parcel;)V
+Landroid/graphics/LightingColorFilter;->createNativeInstance()J
+Landroid/graphics/LightingColorFilter;->mAdd:I
+Landroid/graphics/LightingColorFilter;->mMul:I
+Landroid/graphics/LightingColorFilter;->native_CreateLightingFilter(II)J
+Landroid/graphics/LinearGradient;->copy()Landroid/graphics/Shader;
+Landroid/graphics/LinearGradient;->createNativeInstance(J)J
+Landroid/graphics/LinearGradient;->mType:I
+Landroid/graphics/LinearGradient;->nativeCreate1(JFFFF[I[FI)J
+Landroid/graphics/LinearGradient;->nativeCreate2(JFFFFIII)J
+Landroid/graphics/LinearGradient;->TYPE_COLORS_AND_POSITIONS:I
+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
+Landroid/graphics/Matrix;->nCreate(J)J
+Landroid/graphics/Matrix;->nEquals(JJ)Z
+Landroid/graphics/Matrix;->nGetNativeFinalizer()J
+Landroid/graphics/Matrix;->nGetValues(J[F)V
+Landroid/graphics/Matrix;->ni()J
+Landroid/graphics/Matrix;->nInvert(JJ)Z
+Landroid/graphics/Matrix;->nIsAffine(J)Z
+Landroid/graphics/Matrix;->nIsIdentity(J)Z
+Landroid/graphics/Matrix;->nMapPoints(J[FI[FIIZ)V
+Landroid/graphics/Matrix;->nMapRadius(JF)F
+Landroid/graphics/Matrix;->nMapRect(JLandroid/graphics/RectF;Landroid/graphics/RectF;)Z
+Landroid/graphics/Matrix;->nPostConcat(JJ)V
+Landroid/graphics/Matrix;->nPostRotate(JF)V
+Landroid/graphics/Matrix;->nPostRotate(JFFF)V
+Landroid/graphics/Matrix;->nPostScale(JFF)V
+Landroid/graphics/Matrix;->nPostScale(JFFFF)V
+Landroid/graphics/Matrix;->nPostSkew(JFF)V
+Landroid/graphics/Matrix;->nPostSkew(JFFFF)V
+Landroid/graphics/Matrix;->nPostTranslate(JFF)V
+Landroid/graphics/Matrix;->nPreConcat(JJ)V
+Landroid/graphics/Matrix;->nPreRotate(JF)V
+Landroid/graphics/Matrix;->nPreRotate(JFFF)V
+Landroid/graphics/Matrix;->nPreScale(JFF)V
+Landroid/graphics/Matrix;->nPreScale(JFFFF)V
+Landroid/graphics/Matrix;->nPreSkew(JFF)V
+Landroid/graphics/Matrix;->nPreSkew(JFFFF)V
+Landroid/graphics/Matrix;->nPreTranslate(JFF)V
+Landroid/graphics/Matrix;->nRectStaysRect(J)Z
+Landroid/graphics/Matrix;->nReset(J)V
+Landroid/graphics/Matrix;->nSet(JJ)V
+Landroid/graphics/Matrix;->nSetConcat(JJJ)V
+Landroid/graphics/Matrix;->nSetPolyToPoly(J[FI[FII)Z
+Landroid/graphics/Matrix;->nSetRectToRect(JLandroid/graphics/RectF;Landroid/graphics/RectF;I)Z
+Landroid/graphics/Matrix;->nSetRotate(JF)V
+Landroid/graphics/Matrix;->nSetRotate(JFFF)V
+Landroid/graphics/Matrix;->nSetScale(JFF)V
+Landroid/graphics/Matrix;->nSetScale(JFFFF)V
+Landroid/graphics/Matrix;->nSetSinCos(JFF)V
+Landroid/graphics/Matrix;->nSetSinCos(JFFFF)V
+Landroid/graphics/Matrix;->nSetSkew(JFF)V
+Landroid/graphics/Matrix;->nSetSkew(JFFFF)V
+Landroid/graphics/Matrix;->nSetTranslate(JFF)V
+Landroid/graphics/Matrix;->nSetValues(J[F)V
+Landroid/graphics/Matrix;->printShortString(Ljava/io/PrintWriter;)V
+Landroid/graphics/Matrix;->toShortString(Ljava/lang/StringBuilder;)V
+Landroid/graphics/Movie;->decodeTempStream(Ljava/io/InputStream;)Landroid/graphics/Movie;
+Landroid/graphics/Movie;->nativeDecodeAsset(J)Landroid/graphics/Movie;
+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
+Landroid/graphics/NinePatch$InsetStruct;->outlineRect:Landroid/graphics/Rect;
+Landroid/graphics/NinePatch$InsetStruct;->scaleInsets(IIIIF)Landroid/graphics/Rect;
+Landroid/graphics/NinePatch;-><init>(Landroid/graphics/NinePatch;)V
+Landroid/graphics/NinePatch;->mPaint:Landroid/graphics/Paint;
+Landroid/graphics/NinePatch;->mSrcName:Ljava/lang/String;
+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
+Landroid/graphics/Outline;->MODE_EMPTY:I
+Landroid/graphics/Outline;->MODE_ROUND_RECT:I
+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
+Landroid/graphics/Paint;->BIDI_DEFAULT_RTL:I
+Landroid/graphics/Paint;->BIDI_FLAG_MASK:I
+Landroid/graphics/Paint;->BIDI_FORCE_LTR:I
+Landroid/graphics/Paint;->BIDI_FORCE_RTL:I
+Landroid/graphics/Paint;->BIDI_LTR:I
+Landroid/graphics/Paint;->BIDI_MAX_FLAG_VALUE:I
+Landroid/graphics/Paint;->BIDI_RTL:I
+Landroid/graphics/Paint;->CURSOR_AFTER:I
+Landroid/graphics/Paint;->CURSOR_AT:I
+Landroid/graphics/Paint;->CURSOR_AT_OR_AFTER:I
+Landroid/graphics/Paint;->CURSOR_AT_OR_BEFORE:I
+Landroid/graphics/Paint;->CURSOR_BEFORE:I
+Landroid/graphics/Paint;->CURSOR_OPT_MAX_VALUE:I
+Landroid/graphics/Paint;->DIRECTION_LTR:I
+Landroid/graphics/Paint;->DIRECTION_RTL:I
+Landroid/graphics/Paint;->getBidiFlags()I
+Landroid/graphics/Paint;->getHyphenEdit()I
+Landroid/graphics/Paint;->getStrikeThruPosition()F
+Landroid/graphics/Paint;->getStrikeThruThickness()F
+Landroid/graphics/Paint;->getTextBounds(Ljava/lang/CharSequence;IILandroid/graphics/Rect;)V
+Landroid/graphics/Paint;->getTextRunAdvances(Ljava/lang/CharSequence;IIIIZ[FI)F
+Landroid/graphics/Paint;->getTextRunAdvances(Ljava/lang/String;IIIIZ[FI)F
+Landroid/graphics/Paint;->getTextRunCursor(Ljava/lang/CharSequence;IIIII)I
+Landroid/graphics/Paint;->getTextRunCursor(Ljava/lang/String;IIIII)I
+Landroid/graphics/Paint;->getUnderlinePosition()F
+Landroid/graphics/Paint;->getUnderlineThickness()F
+Landroid/graphics/Paint;->getWordSpacing()F
+Landroid/graphics/Paint;->hasEqualAttributes(Landroid/graphics/Paint;)Z
+Landroid/graphics/Paint;->hasShadowLayer()Z
+Landroid/graphics/Paint;->HIDDEN_DEFAULT_PAINT_FLAGS:I
+Landroid/graphics/Paint;->HYPHENEDIT_MASK_END_OF_LINE:I
+Landroid/graphics/Paint;->HYPHENEDIT_MASK_START_OF_LINE:I
+Landroid/graphics/Paint;->LCD_RENDER_TEXT_FLAG:I
+Landroid/graphics/Paint;->mBidiFlags:I
+Landroid/graphics/Paint;->mColorFilter:Landroid/graphics/ColorFilter;
+Landroid/graphics/Paint;->mCompatScaling:F
+Landroid/graphics/Paint;->mFontFeatureSettings:Ljava/lang/String;
+Landroid/graphics/Paint;->mFontVariationSettings:Ljava/lang/String;
+Landroid/graphics/Paint;->mHasCompatScaling:Z
+Landroid/graphics/Paint;->mInvCompatScaling:F
+Landroid/graphics/Paint;->mLocales:Landroid/os/LocaleList;
+Landroid/graphics/Paint;->mMaskFilter:Landroid/graphics/MaskFilter;
+Landroid/graphics/Paint;->mNativeColorFilter:J
+Landroid/graphics/Paint;->mNativeShader:J
+Landroid/graphics/Paint;->mPathEffect:Landroid/graphics/PathEffect;
+Landroid/graphics/Paint;->mShader:Landroid/graphics/Shader;
+Landroid/graphics/Paint;->mShadowLayerColor:I
+Landroid/graphics/Paint;->mShadowLayerDx:F
+Landroid/graphics/Paint;->mShadowLayerDy:F
+Landroid/graphics/Paint;->mShadowLayerRadius:F
+Landroid/graphics/Paint;->mXfermode:Landroid/graphics/Xfermode;
+Landroid/graphics/Paint;->nAscent(J)F
+Landroid/graphics/Paint;->NATIVE_PAINT_SIZE:J
+Landroid/graphics/Paint;->nBreakText(JLjava/lang/String;ZFI[F)I
+Landroid/graphics/Paint;->nBreakText(J[CIIFI[F)I
+Landroid/graphics/Paint;->nDescent(J)F
+Landroid/graphics/Paint;->nEqualsForTextMeasurement(JJ)Z
+Landroid/graphics/Paint;->nGetAlpha(J)I
+Landroid/graphics/Paint;->nGetCharArrayBounds(J[CIIILandroid/graphics/Rect;)V
+Landroid/graphics/Paint;->nGetColor(J)I
+Landroid/graphics/Paint;->nGetFillPath(JJJ)Z
+Landroid/graphics/Paint;->nGetFlags(J)I
+Landroid/graphics/Paint;->nGetFontMetrics(JLandroid/graphics/Paint$FontMetrics;)F
+Landroid/graphics/Paint;->nGetFontMetricsInt(JLandroid/graphics/Paint$FontMetricsInt;)I
+Landroid/graphics/Paint;->nGetHinting(J)I
+Landroid/graphics/Paint;->nGetHyphenEdit(J)I
+Landroid/graphics/Paint;->nGetLetterSpacing(J)F
+Landroid/graphics/Paint;->nGetNativeFinalizer()J
+Landroid/graphics/Paint;->nGetOffsetForAdvance(J[CIIIIZF)I
+Landroid/graphics/Paint;->nGetRunAdvance(J[CIIIIZI)F
+Landroid/graphics/Paint;->nGetStrikeThruPosition(J)F
+Landroid/graphics/Paint;->nGetStrikeThruThickness(J)F
+Landroid/graphics/Paint;->nGetStringBounds(JLjava/lang/String;IIILandroid/graphics/Rect;)V
+Landroid/graphics/Paint;->nGetStrokeCap(J)I
+Landroid/graphics/Paint;->nGetStrokeJoin(J)I
+Landroid/graphics/Paint;->nGetStrokeMiter(J)F
+Landroid/graphics/Paint;->nGetStrokeWidth(J)F
+Landroid/graphics/Paint;->nGetStyle(J)I
+Landroid/graphics/Paint;->nGetTextAdvances(JLjava/lang/String;IIIII[FI)F
+Landroid/graphics/Paint;->nGetTextAdvances(J[CIIIII[FI)F
+Landroid/graphics/Paint;->nGetTextAlign(J)I
+Landroid/graphics/Paint;->nGetTextPath(JILjava/lang/String;IIFFJ)V
+Landroid/graphics/Paint;->nGetTextPath(JI[CIIFFJ)V
+Landroid/graphics/Paint;->nGetTextRunCursor(JLjava/lang/String;IIIII)I
+Landroid/graphics/Paint;->nGetTextRunCursor(J[CIIIII)I
+Landroid/graphics/Paint;->nGetTextScaleX(J)F
+Landroid/graphics/Paint;->nGetTextSize(J)F
+Landroid/graphics/Paint;->nGetTextSkewX(J)F
+Landroid/graphics/Paint;->nGetUnderlinePosition(J)F
+Landroid/graphics/Paint;->nGetUnderlineThickness(J)F
+Landroid/graphics/Paint;->nGetWordSpacing(J)F
+Landroid/graphics/Paint;->nHasGlyph(JILjava/lang/String;)Z
+Landroid/graphics/Paint;->nHasShadowLayer(J)Z
+Landroid/graphics/Paint;->nInit()J
+Landroid/graphics/Paint;->nInitWithPaint(J)J
+Landroid/graphics/Paint;->nIsElegantTextHeight(J)Z
+Landroid/graphics/Paint;->nReset(J)V
+Landroid/graphics/Paint;->nSet(JJ)V
+Landroid/graphics/Paint;->nSetAlpha(JI)V
+Landroid/graphics/Paint;->nSetAntiAlias(JZ)V
+Landroid/graphics/Paint;->nSetColor(JI)V
+Landroid/graphics/Paint;->nSetColorFilter(JJ)J
+Landroid/graphics/Paint;->nSetDither(JZ)V
+Landroid/graphics/Paint;->nSetElegantTextHeight(JZ)V
+Landroid/graphics/Paint;->nSetFakeBoldText(JZ)V
+Landroid/graphics/Paint;->nSetFilterBitmap(JZ)V
+Landroid/graphics/Paint;->nSetFlags(JI)V
+Landroid/graphics/Paint;->nSetFontFeatureSettings(JLjava/lang/String;)V
+Landroid/graphics/Paint;->nSetHinting(JI)V
+Landroid/graphics/Paint;->nSetHyphenEdit(JI)V
+Landroid/graphics/Paint;->nSetLetterSpacing(JF)V
+Landroid/graphics/Paint;->nSetLinearText(JZ)V
+Landroid/graphics/Paint;->nSetMaskFilter(JJ)J
+Landroid/graphics/Paint;->nSetPathEffect(JJ)J
+Landroid/graphics/Paint;->nSetShader(JJ)J
+Landroid/graphics/Paint;->nSetShadowLayer(JFFFI)V
+Landroid/graphics/Paint;->nSetStrikeThruText(JZ)V
+Landroid/graphics/Paint;->nSetStrokeCap(JI)V
+Landroid/graphics/Paint;->nSetStrokeJoin(JI)V
+Landroid/graphics/Paint;->nSetStrokeMiter(JF)V
+Landroid/graphics/Paint;->nSetStrokeWidth(JF)V
+Landroid/graphics/Paint;->nSetStyle(JI)V
+Landroid/graphics/Paint;->nSetSubpixelText(JZ)V
+Landroid/graphics/Paint;->nSetTextAlign(JI)V
+Landroid/graphics/Paint;->nSetTextLocales(JLjava/lang/String;)I
+Landroid/graphics/Paint;->nSetTextLocalesByMinikinLocaleListId(JI)V
+Landroid/graphics/Paint;->nSetTextScaleX(JF)V
+Landroid/graphics/Paint;->nSetTextSize(JF)V
+Landroid/graphics/Paint;->nSetTextSkewX(JF)V
+Landroid/graphics/Paint;->nSetTypeface(JJ)V
+Landroid/graphics/Paint;->nSetUnderlineText(JZ)V
+Landroid/graphics/Paint;->nSetWordSpacing(JF)V
+Landroid/graphics/Paint;->nSetXfermode(JI)V
+Landroid/graphics/Paint;->sAlignArray:[Landroid/graphics/Paint$Align;
+Landroid/graphics/Paint;->sCacheLock:Ljava/lang/Object;
+Landroid/graphics/Paint;->sCapArray:[Landroid/graphics/Paint$Cap;
+Landroid/graphics/Paint;->setBidiFlags(I)V
+Landroid/graphics/Paint;->setClassVariablesFrom(Landroid/graphics/Paint;)V
+Landroid/graphics/Paint;->setWordSpacing(F)V
+Landroid/graphics/Paint;->sJoinArray:[Landroid/graphics/Paint$Join;
+Landroid/graphics/Paint;->sMinikinLocaleListIdCache:Ljava/util/HashMap;
+Landroid/graphics/Paint;->sStyleArray:[Landroid/graphics/Paint$Style;
+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
+Landroid/graphics/Path;->mutateNI()J
+Landroid/graphics/Path;->nAddArc(JFFFFFF)V
+Landroid/graphics/Path;->nAddCircle(JFFFI)V
+Landroid/graphics/Path;->nAddOval(JFFFFI)V
+Landroid/graphics/Path;->nAddPath(JJ)V
+Landroid/graphics/Path;->nAddPath(JJFF)V
+Landroid/graphics/Path;->nAddPath(JJJ)V
+Landroid/graphics/Path;->nAddRect(JFFFFI)V
+Landroid/graphics/Path;->nAddRoundRect(JFFFFFFI)V
+Landroid/graphics/Path;->nAddRoundRect(JFFFF[FI)V
+Landroid/graphics/Path;->nApproximate(JF)[F
+Landroid/graphics/Path;->nArcTo(JFFFFFFZ)V
+Landroid/graphics/Path;->nClose(J)V
+Landroid/graphics/Path;->nComputeBounds(JLandroid/graphics/RectF;)V
+Landroid/graphics/Path;->nCubicTo(JFFFFFF)V
+Landroid/graphics/Path;->nGetFillType(J)I
+Landroid/graphics/Path;->nGetFinalizer()J
+Landroid/graphics/Path;->nIncReserve(JI)V
+Landroid/graphics/Path;->nInit()J
+Landroid/graphics/Path;->nInit(J)J
+Landroid/graphics/Path;->nIsConvex(J)Z
+Landroid/graphics/Path;->nIsEmpty(J)Z
+Landroid/graphics/Path;->nIsRect(JLandroid/graphics/RectF;)Z
+Landroid/graphics/Path;->nLineTo(JFF)V
+Landroid/graphics/Path;->nMoveTo(JFF)V
+Landroid/graphics/Path;->nOffset(JFF)V
+Landroid/graphics/Path;->nOp(JJIJ)Z
+Landroid/graphics/Path;->nQuadTo(JFFFF)V
+Landroid/graphics/Path;->nRCubicTo(JFFFFFF)V
+Landroid/graphics/Path;->nReset(J)V
+Landroid/graphics/Path;->nRewind(J)V
+Landroid/graphics/Path;->nRLineTo(JFF)V
+Landroid/graphics/Path;->nRMoveTo(JFF)V
+Landroid/graphics/Path;->nRQuadTo(JFFFF)V
+Landroid/graphics/Path;->nSet(JJ)V
+Landroid/graphics/Path;->nSetFillType(JI)V
+Landroid/graphics/Path;->nSetLastPoint(JFF)V
+Landroid/graphics/Path;->nTransform(JJ)V
+Landroid/graphics/Path;->nTransform(JJJ)V
+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
+Landroid/graphics/PathEffect;->native_instance:J
+Landroid/graphics/PathMeasure;->mPath:Landroid/graphics/Path;
+Landroid/graphics/PathMeasure;->native_create(JZ)J
+Landroid/graphics/PathMeasure;->native_destroy(J)V
+Landroid/graphics/PathMeasure;->native_getLength(J)F
+Landroid/graphics/PathMeasure;->native_getMatrix(JFJI)Z
+Landroid/graphics/PathMeasure;->native_getPosTan(JF[F[F)Z
+Landroid/graphics/PathMeasure;->native_getSegment(JFFJZ)Z
+Landroid/graphics/PathMeasure;->native_instance:J
+Landroid/graphics/PathMeasure;->native_isClosed(J)Z
+Landroid/graphics/PathMeasure;->native_nextContour(J)Z
+Landroid/graphics/PathMeasure;->native_setPath(JJZ)V
+Landroid/graphics/pdf/PdfDocument$Page;-><init>(Landroid/graphics/Canvas;Landroid/graphics/pdf/PdfDocument$PageInfo;)V
+Landroid/graphics/pdf/PdfDocument$Page;->finish()V
+Landroid/graphics/pdf/PdfDocument$Page;->isFinished()Z
+Landroid/graphics/pdf/PdfDocument$Page;->mCanvas:Landroid/graphics/Canvas;
+Landroid/graphics/pdf/PdfDocument$Page;->mPageInfo:Landroid/graphics/pdf/PdfDocument$PageInfo;
+Landroid/graphics/pdf/PdfDocument$PageInfo$Builder;->mPageInfo:Landroid/graphics/pdf/PdfDocument$PageInfo;
+Landroid/graphics/pdf/PdfDocument$PageInfo;-><init>()V
+Landroid/graphics/pdf/PdfDocument$PageInfo;->mContentRect:Landroid/graphics/Rect;
+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;
+Landroid/graphics/pdf/PdfDocument;->mCurrentPage:Landroid/graphics/pdf/PdfDocument$Page;
+Landroid/graphics/pdf/PdfDocument;->mNativeDocument:J
+Landroid/graphics/pdf/PdfDocument;->mPages:Ljava/util/List;
+Landroid/graphics/pdf/PdfDocument;->nativeClose(J)V
+Landroid/graphics/pdf/PdfDocument;->nativeCreateDocument()J
+Landroid/graphics/pdf/PdfDocument;->nativeFinishPage(J)V
+Landroid/graphics/pdf/PdfDocument;->nativeStartPage(JIIIIII)J
+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
+Landroid/graphics/pdf/PdfEditor;->getPageCount()I
+Landroid/graphics/pdf/PdfEditor;->getPageCropBox(ILandroid/graphics/Rect;)Z
+Landroid/graphics/pdf/PdfEditor;->getPageMediaBox(ILandroid/graphics/Rect;)Z
+Landroid/graphics/pdf/PdfEditor;->getPageSize(ILandroid/graphics/Point;)V
+Landroid/graphics/pdf/PdfEditor;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/graphics/pdf/PdfEditor;->mInput:Landroid/os/ParcelFileDescriptor;
+Landroid/graphics/pdf/PdfEditor;->mNativeDocument:J
+Landroid/graphics/pdf/PdfEditor;->mPageCount:I
+Landroid/graphics/pdf/PdfEditor;->nativeClose(J)V
+Landroid/graphics/pdf/PdfEditor;->nativeGetPageCount(J)I
+Landroid/graphics/pdf/PdfEditor;->nativeGetPageCropBox(JILandroid/graphics/Rect;)Z
+Landroid/graphics/pdf/PdfEditor;->nativeGetPageMediaBox(JILandroid/graphics/Rect;)Z
+Landroid/graphics/pdf/PdfEditor;->nativeGetPageSize(JILandroid/graphics/Point;)V
+Landroid/graphics/pdf/PdfEditor;->nativeOpen(IJ)J
+Landroid/graphics/pdf/PdfEditor;->nativeRemovePage(JI)I
+Landroid/graphics/pdf/PdfEditor;->nativeScaleForPrinting(J)Z
+Landroid/graphics/pdf/PdfEditor;->nativeSetPageCropBox(JILandroid/graphics/Rect;)V
+Landroid/graphics/pdf/PdfEditor;->nativeSetPageMediaBox(JILandroid/graphics/Rect;)V
+Landroid/graphics/pdf/PdfEditor;->nativeSetTransformAndClip(JIJIIII)V
+Landroid/graphics/pdf/PdfEditor;->nativeWrite(JI)V
+Landroid/graphics/pdf/PdfEditor;->removePage(I)V
+Landroid/graphics/pdf/PdfEditor;->setPageCropBox(ILandroid/graphics/Rect;)V
+Landroid/graphics/pdf/PdfEditor;->setPageMediaBox(ILandroid/graphics/Rect;)V
+Landroid/graphics/pdf/PdfEditor;->setTransformAndClip(ILandroid/graphics/Matrix;Landroid/graphics/Rect;)V
+Landroid/graphics/pdf/PdfEditor;->shouldScaleForPrinting()Z
+Landroid/graphics/pdf/PdfEditor;->throwIfClosed()V
+Landroid/graphics/pdf/PdfEditor;->throwIfCropBoxNull(Landroid/graphics/Rect;)V
+Landroid/graphics/pdf/PdfEditor;->throwIfMediaBoxNull(Landroid/graphics/Rect;)V
+Landroid/graphics/pdf/PdfEditor;->throwIfNotNullAndNotAfine(Landroid/graphics/Matrix;)V
+Landroid/graphics/pdf/PdfEditor;->throwIfOutCropBoxNull(Landroid/graphics/Rect;)V
+Landroid/graphics/pdf/PdfEditor;->throwIfOutMediaBoxNull(Landroid/graphics/Rect;)V
+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
+Landroid/graphics/pdf/PdfRenderer$Page;->mIndex:I
+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
+Landroid/graphics/pdf/PdfRenderer;->mPageCount:I
+Landroid/graphics/pdf/PdfRenderer;->mTempPoint:Landroid/graphics/Point;
+Landroid/graphics/pdf/PdfRenderer;->nativeClose(J)V
+Landroid/graphics/pdf/PdfRenderer;->nativeClosePage(J)V
+Landroid/graphics/pdf/PdfRenderer;->nativeCreate(IJ)J
+Landroid/graphics/pdf/PdfRenderer;->nativeGetPageCount(J)I
+Landroid/graphics/pdf/PdfRenderer;->nativeOpenPageAndGetSize(JILandroid/graphics/Point;)J
+Landroid/graphics/pdf/PdfRenderer;->nativeRenderPage(JJLandroid/graphics/Bitmap;IIIIJI)V
+Landroid/graphics/pdf/PdfRenderer;->nativeScaleForPrinting(J)Z
+Landroid/graphics/pdf/PdfRenderer;->sPdfiumLock:Ljava/lang/Object;
+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;
+Landroid/graphics/Picture$PictureCanvas;->onHwBitmapInSwMode()V
+Landroid/graphics/Picture;-><init>(J)V
+Landroid/graphics/Picture;->mRecordingCanvas:Landroid/graphics/Picture$PictureCanvas;
+Landroid/graphics/Picture;->mRequiresHwAcceleration:Z
+Landroid/graphics/Picture;->nativeBeginRecording(JII)J
+Landroid/graphics/Picture;->nativeConstructor(J)J
+Landroid/graphics/Picture;->nativeCreateFromStream(Ljava/io/InputStream;[B)J
+Landroid/graphics/Picture;->nativeDestructor(J)V
+Landroid/graphics/Picture;->nativeDraw(JJ)V
+Landroid/graphics/Picture;->nativeEndRecording(J)V
+Landroid/graphics/Picture;->nativeGetHeight(J)I
+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
+Landroid/graphics/PixelFormatProto;->RGBA_8888:I
+Landroid/graphics/PixelFormatProto;->RGBA_F16:I
+Landroid/graphics/PixelFormatProto;->RGBX_8888:I
+Landroid/graphics/PixelFormatProto;->RGB_565:I
+Landroid/graphics/PixelFormatProto;->RGB_888:I
+Landroid/graphics/PixelFormatProto;->TRANSLUCENT:I
+Landroid/graphics/PixelFormatProto;->TRANSPARENT:I
+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
+Landroid/graphics/PorterDuffColorFilter;->mColor:I
+Landroid/graphics/PorterDuffColorFilter;->mMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/graphics/PorterDuffColorFilter;->native_CreatePorterDuffFilter(II)J
+Landroid/graphics/RadialGradient;->copy()Landroid/graphics/Shader;
+Landroid/graphics/RadialGradient;->createNativeInstance(J)J
+Landroid/graphics/RadialGradient;->mType:I
+Landroid/graphics/RadialGradient;->nativeCreate1(JFFF[I[FI)J
+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;
+Landroid/graphics/Rect;->copyOrNull(Landroid/graphics/Rect;)Landroid/graphics/Rect;
+Landroid/graphics/Rect;->inset(IIII)V
+Landroid/graphics/Rect;->inset(Landroid/graphics/Rect;)V
+Landroid/graphics/Rect;->intersectUnchecked(Landroid/graphics/Rect;)V
+Landroid/graphics/Rect;->toShortString(Ljava/lang/StringBuilder;)Ljava/lang/String;
+Landroid/graphics/Rect;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+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
+Landroid/graphics/Region;->nativeCreateFromParcel(Landroid/os/Parcel;)J
+Landroid/graphics/Region;->nativeDestructor(J)V
+Landroid/graphics/Region;->nativeEquals(JJ)Z
+Landroid/graphics/Region;->nativeGetBoundaryPath(JJ)Z
+Landroid/graphics/Region;->nativeGetBounds(JLandroid/graphics/Rect;)Z
+Landroid/graphics/Region;->nativeOp(JIIIII)Z
+Landroid/graphics/Region;->nativeOp(JJJI)Z
+Landroid/graphics/Region;->nativeOp(JLandroid/graphics/Rect;JI)Z
+Landroid/graphics/Region;->nativeSetPath(JJJ)Z
+Landroid/graphics/Region;->nativeSetRect(JIIII)Z
+Landroid/graphics/Region;->nativeSetRegion(JJ)V
+Landroid/graphics/Region;->nativeToString(J)Ljava/lang/String;
+Landroid/graphics/Region;->nativeWriteToParcel(JLandroid/os/Parcel;)Z
+Landroid/graphics/Region;->ni()J
+Landroid/graphics/Region;->obtain()Landroid/graphics/Region;
+Landroid/graphics/Region;->obtain(Landroid/graphics/Region;)Landroid/graphics/Region;
+Landroid/graphics/Region;->scale(FLandroid/graphics/Region;)V
+Landroid/graphics/Region;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/graphics/RegionIterator;->mNativeIter:J
+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
+Landroid/graphics/Shader;->discardNativeInstance()V
+Landroid/graphics/Shader;->getNativeInstance()J
+Landroid/graphics/Shader;->mCleaner:Ljava/lang/Runnable;
+Landroid/graphics/Shader;->mLocalMatrix:Landroid/graphics/Matrix;
+Landroid/graphics/Shader;->mNativeInstance:J
+Landroid/graphics/Shader;->nativeGetFinalizer()J
+Landroid/graphics/Shader;->verifyNativeInstance()V
+Landroid/graphics/SumPathEffect;->nativeCreate(JJ)J
+Landroid/graphics/SurfaceTexture;->isSingleBuffered()Z
+Landroid/graphics/SurfaceTexture;->mCreatorLooper:Landroid/os/Looper;
+Landroid/graphics/SurfaceTexture;->mIsSingleBuffered:Z
+Landroid/graphics/SurfaceTexture;->nativeAttachToGLContext(I)I
+Landroid/graphics/SurfaceTexture;->nativeFinalize()V
+Landroid/graphics/SurfaceTexture;->nativeGetTimestamp()J
+Landroid/graphics/SurfaceTexture;->nativeGetTransformMatrix([F)V
+Landroid/graphics/SurfaceTexture;->nativeInit(ZIZLjava/lang/ref/WeakReference;)V
+Landroid/graphics/SurfaceTexture;->nativeIsReleased()Z
+Landroid/graphics/SurfaceTexture;->nativeRelease()V
+Landroid/graphics/SurfaceTexture;->nativeReleaseTexImage()V
+Landroid/graphics/SurfaceTexture;->nativeSetDefaultBufferSize(II)V
+Landroid/graphics/SurfaceTexture;->nativeUpdateTexImage()V
+Landroid/graphics/SweepGradient;->copy()Landroid/graphics/Shader;
+Landroid/graphics/SweepGradient;->createNativeInstance(J)J
+Landroid/graphics/SweepGradient;->mType:I
+Landroid/graphics/SweepGradient;->nativeCreate1(JFF[I[F)J
+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
+Landroid/graphics/Typeface$Builder;->BOLD_WEIGHT:I
+Landroid/graphics/Typeface$Builder;->createAssetUid(Landroid/content/res/AssetManager;Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IILjava/lang/String;)Ljava/lang/String;
+Landroid/graphics/Typeface$Builder;->mAssetManager:Landroid/content/res/AssetManager;
+Landroid/graphics/Typeface$Builder;->mAxes:[Landroid/graphics/fonts/FontVariationAxis;
+Landroid/graphics/Typeface$Builder;->mFallbackFamilyName:Ljava/lang/String;
+Landroid/graphics/Typeface$Builder;->mFd:Ljava/io/FileDescriptor;
+Landroid/graphics/Typeface$Builder;->mFontBuffers:Ljava/util/Map;
+Landroid/graphics/Typeface$Builder;->mFonts:[Landroid/provider/FontsContract$FontInfo;
+Landroid/graphics/Typeface$Builder;->mItalic:I
+Landroid/graphics/Typeface$Builder;->mPath:Ljava/lang/String;
+Landroid/graphics/Typeface$Builder;->mTtcIndex:I
+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;
+Landroid/graphics/Typeface;->createFromResources(Landroid/content/res/FontResourcesParser$FamilyResourceEntry;Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->createFromTypefaceWithVariation(Landroid/graphics/Typeface;Ljava/util/List;)Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->createProviderUid(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/graphics/Typeface;->createWeightStyle(Landroid/graphics/Typeface;IZ)Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->DEFAULT_FAMILY:Ljava/lang/String;
+Landroid/graphics/Typeface;->EMPTY_AXES:[I
+Landroid/graphics/Typeface;->findFromCache(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->isSupportedAxes(I)Z
+Landroid/graphics/Typeface;->MAX_WEIGHT:I
+Landroid/graphics/Typeface;->mmap(Ljava/lang/String;)Ljava/nio/ByteBuffer;
+Landroid/graphics/Typeface;->mSupportedAxes:[I
+Landroid/graphics/Typeface;->mWeight:I
+Landroid/graphics/Typeface;->nativeCreateFromTypeface(JI)J
+Landroid/graphics/Typeface;->nativeCreateFromTypefaceWithExactStyle(JIZ)J
+Landroid/graphics/Typeface;->nativeCreateFromTypefaceWithVariation(JLjava/util/List;)J
+Landroid/graphics/Typeface;->nativeGetReleaseFunc()J
+Landroid/graphics/Typeface;->nativeGetStyle(J)I
+Landroid/graphics/Typeface;->nativeGetSupportedAxes(J)[I
+Landroid/graphics/Typeface;->nativeGetWeight(J)I
+Landroid/graphics/Typeface;->nativeSetDefault(J)V
+Landroid/graphics/Typeface;->pushFamilyToFallback(Landroid/text/FontConfig$Family;Landroid/util/ArrayMap;Ljava/util/Map;Ljava/lang/String;)V
+Landroid/graphics/Typeface;->RESOLVE_BY_FONT_TABLE:I
+Landroid/graphics/Typeface;->sDefaultTypeface:Landroid/graphics/Typeface;
+Landroid/graphics/Typeface;->sDynamicCacheLock:Ljava/lang/Object;
+Landroid/graphics/Typeface;->sDynamicTypefaceCache:Landroid/util/LruCache;
+Landroid/graphics/Typeface;->sRegistry:Llibcore/util/NativeAllocationRegistry;
+Landroid/graphics/Typeface;->sStyledCacheLock:Ljava/lang/Object;
+Landroid/graphics/Typeface;->sStyledTypefaceCache:Landroid/util/LongSparseArray;
+Landroid/graphics/Typeface;->STYLE_ITALIC:I
+Landroid/graphics/Typeface;->STYLE_MASK:I
+Landroid/graphics/Typeface;->STYLE_NORMAL:I
+Landroid/graphics/Typeface;->sWeightCacheLock:Ljava/lang/Object;
+Landroid/graphics/Typeface;->sWeightTypefaceCache:Landroid/util/LongSparseArray;
+Landroid/graphics/Typeface;->TAG:Ljava/lang/String;
+Landroid/graphics/Xfermode;->DEFAULT:I
+Landroid/graphics/YuvImage;->adjustRectangle(Landroid/graphics/Rect;)V
+Landroid/graphics/YuvImage;->calculateOffsets(II)[I
+Landroid/graphics/YuvImage;->calculateStrides(II)[I
+Landroid/graphics/YuvImage;->mData:[B
+Landroid/graphics/YuvImage;->mFormat:I
+Landroid/graphics/YuvImage;->mHeight:I
+Landroid/graphics/YuvImage;->mStrides:[I
+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;
+Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;->getId()Landroid/hardware/biometrics/BiometricAuthenticator$BiometricIdentifier;
+Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;->getUserId()I
+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
+Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;->onAuthenticationAcquired(I)V
+Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;->onAuthenticationSucceeded(Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;)V
+Landroid/hardware/biometrics/BiometricPrompt$AuthenticationResult;-><init>(Landroid/hardware/biometrics/BiometricPrompt$CryptoObject;Landroid/hardware/biometrics/BiometricAuthenticator$BiometricIdentifier;I)V
+Landroid/hardware/biometrics/BiometricPrompt$Builder;->mBundle:Landroid/os/Bundle;
+Landroid/hardware/biometrics/BiometricPrompt$Builder;->mContext:Landroid/content/Context;
+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;
+Landroid/hardware/biometrics/BiometricPrompt;-><init>(Landroid/content/Context;Landroid/os/Bundle;Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;)V
+Landroid/hardware/biometrics/BiometricPrompt;->authenticate(Landroid/hardware/biometrics/CryptoObject;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
+Landroid/hardware/biometrics/BiometricPrompt;->authenticate(Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
+Landroid/hardware/biometrics/BiometricPrompt;->DISMISSED_REASON_NEGATIVE:I
+Landroid/hardware/biometrics/BiometricPrompt;->DISMISSED_REASON_POSITIVE:I
+Landroid/hardware/biometrics/BiometricPrompt;->DISMISSED_REASON_USER_CANCEL:I
+Landroid/hardware/biometrics/BiometricPrompt;->handlePreAuthenticationErrors(Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;Ljava/util/concurrent/Executor;)Z
+Landroid/hardware/biometrics/BiometricPrompt;->HIDE_DIALOG_DELAY:I
+Landroid/hardware/biometrics/BiometricPrompt;->KEY_DESCRIPTION:Ljava/lang/String;
+Landroid/hardware/biometrics/BiometricPrompt;->KEY_NEGATIVE_TEXT:Ljava/lang/String;
+Landroid/hardware/biometrics/BiometricPrompt;->KEY_POSITIVE_TEXT:Ljava/lang/String;
+Landroid/hardware/biometrics/BiometricPrompt;->KEY_SUBTITLE:Ljava/lang/String;
+Landroid/hardware/biometrics/BiometricPrompt;->KEY_TITLE:Ljava/lang/String;
+Landroid/hardware/biometrics/BiometricPrompt;->mBundle:Landroid/os/Bundle;
+Landroid/hardware/biometrics/BiometricPrompt;->mDialogReceiver:Landroid/hardware/biometrics/IBiometricPromptReceiver;
+Landroid/hardware/biometrics/BiometricPrompt;->mFingerprintManager:Landroid/hardware/fingerprint/FingerprintManager;
+Landroid/hardware/biometrics/BiometricPrompt;->mNegativeButtonInfo:Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
+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
+Landroid/hardware/biometrics/CryptoObject;->getCipher()Ljavax/crypto/Cipher;
+Landroid/hardware/biometrics/CryptoObject;->getMac()Ljavax/crypto/Mac;
+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
+Landroid/hardware/Camera$Parameters;->getInt(Ljava/lang/String;I)I
+Landroid/hardware/Camera$Parameters;->getOuter()Landroid/hardware/Camera;
+Landroid/hardware/Camera$Parameters;->KEY_ANTIBANDING:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_AUTO_EXPOSURE_LOCK:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_AUTO_EXPOSURE_LOCK_SUPPORTED:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_AUTO_WHITEBALANCE_LOCK:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_AUTO_WHITEBALANCE_LOCK_SUPPORTED:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_EFFECT:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_EXPOSURE_COMPENSATION:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_EXPOSURE_COMPENSATION_STEP:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_FLASH_MODE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_FOCAL_LENGTH:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_FOCUS_AREAS:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_FOCUS_DISTANCES:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_FOCUS_MODE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_GPS_ALTITUDE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_GPS_LATITUDE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_GPS_LONGITUDE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_GPS_PROCESSING_METHOD:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_GPS_TIMESTAMP:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_HORIZONTAL_VIEW_ANGLE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_JPEG_QUALITY:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_JPEG_THUMBNAIL_HEIGHT:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_JPEG_THUMBNAIL_QUALITY:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_JPEG_THUMBNAIL_SIZE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_JPEG_THUMBNAIL_WIDTH:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_MAX_EXPOSURE_COMPENSATION:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_MAX_NUM_DETECTED_FACES_HW:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_MAX_NUM_DETECTED_FACES_SW:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_MAX_NUM_FOCUS_AREAS:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_MAX_NUM_METERING_AREAS:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_MAX_ZOOM:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_METERING_AREAS:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_MIN_EXPOSURE_COMPENSATION:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_PICTURE_FORMAT:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_PICTURE_SIZE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_PREVIEW_FORMAT:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_PREVIEW_FPS_RANGE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_PREVIEW_FRAME_RATE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_PREVIEW_SIZE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_RECORDING_HINT:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_ROTATION:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_SCENE_MODE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_SMOOTH_ZOOM_SUPPORTED:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_VERTICAL_VIEW_ANGLE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_VIDEO_SIZE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_VIDEO_SNAPSHOT_SUPPORTED:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_VIDEO_STABILIZATION:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_VIDEO_STABILIZATION_SUPPORTED:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_WHITE_BALANCE:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_ZOOM:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_ZOOM_RATIOS:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->KEY_ZOOM_SUPPORTED:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->mMap:Ljava/util/LinkedHashMap;
+Landroid/hardware/Camera$Parameters;->pixelFormatForCameraFormat(Ljava/lang/String;)I
+Landroid/hardware/Camera$Parameters;->PIXEL_FORMAT_BAYER_RGGB:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->PIXEL_FORMAT_JPEG:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->PIXEL_FORMAT_RGB565:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->PIXEL_FORMAT_YUV420P:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->PIXEL_FORMAT_YUV420SP:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->PIXEL_FORMAT_YUV422I:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->PIXEL_FORMAT_YUV422SP:Ljava/lang/String;
+Landroid/hardware/Camera$Parameters;->put(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/hardware/Camera$Parameters;->same(Landroid/hardware/Camera$Parameters;)Z
+Landroid/hardware/Camera$Parameters;->same(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/hardware/Camera$Parameters;->set(Ljava/lang/String;Ljava/util/List;)V
+Landroid/hardware/Camera$Parameters;->split(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/hardware/Camera$Parameters;->splitFloat(Ljava/lang/String;[F)V
+Landroid/hardware/Camera$Parameters;->splitInt(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/hardware/Camera$Parameters;->splitInt(Ljava/lang/String;[I)V
+Landroid/hardware/Camera$Parameters;->splitRange(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/hardware/Camera$Parameters;->splitSize(Ljava/lang/String;)Ljava/util/ArrayList;
+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;
+Landroid/hardware/camera2/CameraAccessException;->getProblemString(I)Ljava/lang/String;
+Landroid/hardware/camera2/CameraAccessException;->mReason:I
+Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;->NO_FRAMES_CAPTURED:I
+Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;->onCapturePartial(Landroid/hardware/camera2/CameraCaptureSession;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureResult;)V
+Landroid/hardware/camera2/CameraCaptureSession;->prepare(ILandroid/view/Surface;)V
+Landroid/hardware/camera2/CameraCaptureSession;->SESSION_ID_NONE:I
+Landroid/hardware/camera2/CameraCaptureSession;->tearDown(Landroid/view/Surface;)V
+Landroid/hardware/camera2/CameraCharacteristics$Key;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)V
+Landroid/hardware/camera2/CameraCharacteristics$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)V
+Landroid/hardware/camera2/CameraCharacteristics$Key;->getVendorId()J
+Landroid/hardware/camera2/CameraCharacteristics$Key;->mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
+Landroid/hardware/camera2/CameraCharacteristics;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
+Landroid/hardware/camera2/CameraCharacteristics;->getAvailableKeyList(Ljava/lang/Class;Ljava/lang/Class;[I)Ljava/util/List;
+Landroid/hardware/camera2/CameraCharacteristics;->getKeyClass()Ljava/lang/Class;
+Landroid/hardware/camera2/CameraCharacteristics;->getNativeCopy()Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/CameraCharacteristics;->getProtected(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/CameraCharacteristics;->mAvailablePhysicalRequestKeys:Ljava/util/List;
+Landroid/hardware/camera2/CameraCharacteristics;->mAvailableRequestKeys:Ljava/util/List;
+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
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->connectCameraServiceLocked()V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->DEBUG:Z
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->gCameraManager:Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->get()Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraIdList()[Ljava/lang/String;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraService()Landroid/hardware/ICameraService;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->handleRecoverableSetupErrors(Landroid/os/ServiceSpecificException;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->isAvailable(I)Z
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->mCallbackMap:Landroid/util/ArrayMap;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->mCameraService:Landroid/hardware/ICameraService;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->mDeviceStatus:Landroid/util/ArrayMap;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->mLock:Ljava/lang/Object;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->mScheduler:Ljava/util/concurrent/ScheduledExecutorService;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->mTorchCallbackMap:Landroid/util/ArrayMap;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->mTorchClientBinder:Landroid/os/Binder;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->mTorchStatus:Landroid/util/ArrayMap;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChanged(ILjava/lang/String;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChangedLocked(ILjava/lang/String;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChanged(ILjava/lang/String;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChangedLocked(ILjava/lang/String;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleTorchUpdate(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;I)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;I)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->registerAvailabilityCallback(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->registerTorchCallback(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->sCameraServiceDisabled:Z
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->scheduleCameraServiceReconnectionLocked()V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->setTorchMode(Ljava/lang/String;Z)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->TAG:Ljava/lang/String;
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->unregisterAvailabilityCallback(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->unregisterTorchCallback(Landroid/hardware/camera2/CameraManager$TorchCallback;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->updateCallbackLocked(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->updateTorchCallbackLocked(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;)V
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->validStatus(I)Z
+Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->validTorchStatus(I)Z
+Landroid/hardware/camera2/CameraManager;-><init>(Landroid/content/Context;)V
+Landroid/hardware/camera2/CameraManager;->API_VERSION_1:I
+Landroid/hardware/camera2/CameraManager;->API_VERSION_2:I
+Landroid/hardware/camera2/CameraManager;->CAMERA_TYPE_ALL:I
+Landroid/hardware/camera2/CameraManager;->CAMERA_TYPE_BACKWARD_COMPATIBLE:I
+Landroid/hardware/camera2/CameraManager;->DEBUG:Z
+Landroid/hardware/camera2/CameraManager;->mContext:Landroid/content/Context;
+Landroid/hardware/camera2/CameraManager;->mDeviceIdList:Ljava/util/ArrayList;
+Landroid/hardware/camera2/CameraManager;->mLock:Ljava/lang/Object;
+Landroid/hardware/camera2/CameraManager;->openCameraDeviceUserAsync(Ljava/lang/String;Landroid/hardware/camera2/CameraDevice$StateCallback;Ljava/util/concurrent/Executor;I)Landroid/hardware/camera2/CameraDevice;
+Landroid/hardware/camera2/CameraManager;->openCameraForUid(Ljava/lang/String;Landroid/hardware/camera2/CameraDevice$StateCallback;Ljava/util/concurrent/Executor;I)V
+Landroid/hardware/camera2/CameraManager;->supportsCamera2ApiLocked(Ljava/lang/String;)Z
+Landroid/hardware/camera2/CameraManager;->supportsCameraApiLocked(Ljava/lang/String;I)Z
+Landroid/hardware/camera2/CameraManager;->TAG:Ljava/lang/String;
+Landroid/hardware/camera2/CameraManager;->throwAsPublicException(Ljava/lang/Throwable;)V
+Landroid/hardware/camera2/CameraManager;->USE_CALLING_UID:I
+Landroid/hardware/camera2/CameraMetadata;-><init>()V
+Landroid/hardware/camera2/CameraMetadata;->CONTROL_SCENE_MODE_DEVICE_CUSTOM_END:I
+Landroid/hardware/camera2/CameraMetadata;->CONTROL_SCENE_MODE_DEVICE_CUSTOM_START:I
+Landroid/hardware/camera2/CameraMetadata;->CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT:I
+Landroid/hardware/camera2/CameraMetadata;->DEBUG:Z
+Landroid/hardware/camera2/CameraMetadata;->getKeyClass()Ljava/lang/Class;
+Landroid/hardware/camera2/CameraMetadata;->getKeys(Ljava/lang/Class;Ljava/lang/Class;Landroid/hardware/camera2/CameraMetadata;[I)Ljava/util/ArrayList;
+Landroid/hardware/camera2/CameraMetadata;->getProtected(Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/hardware/camera2/CameraMetadata;->LED_AVAILABLE_LEDS_TRANSMIT:I
+Landroid/hardware/camera2/CameraMetadata;->mNativeInstance:Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/CameraMetadata;->setNativeInstance(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
+Landroid/hardware/camera2/CameraMetadata;->shouldKeyBeAdded(Ljava/lang/Object;Ljava/lang/reflect/Field;[I)Z
+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
+Landroid/hardware/camera2/CaptureFailure;->mReason:I
+Landroid/hardware/camera2/CaptureFailure;->mRequest:Landroid/hardware/camera2/CaptureRequest;
+Landroid/hardware/camera2/CaptureFailure;->mSequenceId:I
+Landroid/hardware/camera2/CaptureRequest$Builder;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;ZILjava/lang/String;Ljava/util/Set;)V
+Landroid/hardware/camera2/CaptureRequest$Builder;->isEmpty()Z
+Landroid/hardware/camera2/CaptureRequest$Builder;->mRequest:Landroid/hardware/camera2/CaptureRequest;
+Landroid/hardware/camera2/CaptureRequest$Key;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)V
+Landroid/hardware/camera2/CaptureRequest$Key;->getVendorId()J
+Landroid/hardware/camera2/CaptureRequest$Key;->mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
+Landroid/hardware/camera2/CaptureRequest;-><init>()V
+Landroid/hardware/camera2/CaptureRequest;-><init>(Landroid/hardware/camera2/CaptureRequest;)V
+Landroid/hardware/camera2/CaptureRequest;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;ZILjava/lang/String;Ljava/util/Set;)V
+Landroid/hardware/camera2/CaptureRequest;->containsTarget(Landroid/view/Surface;)Z
+Landroid/hardware/camera2/CaptureRequest;->convertSurfaceToStreamId(Landroid/util/SparseArray;)V
+Landroid/hardware/camera2/CaptureRequest;->equals(Landroid/hardware/camera2/CaptureRequest;)Z
+Landroid/hardware/camera2/CaptureRequest;->getKeyClass()Ljava/lang/Class;
+Landroid/hardware/camera2/CaptureRequest;->getLogicalCameraId()Ljava/lang/String;
+Landroid/hardware/camera2/CaptureRequest;->getNativeCopy()Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/CaptureRequest;->getProtected(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/CaptureRequest;->getReprocessableSessionId()I
+Landroid/hardware/camera2/CaptureRequest;->isPartOfCRequestList()Z
+Landroid/hardware/camera2/CaptureRequest;->mEmptySurfaceSet:Landroid/util/ArraySet;
+Landroid/hardware/camera2/CaptureRequest;->mIsPartOfCHSRequestList:Z
+Landroid/hardware/camera2/CaptureRequest;->mIsReprocess:Z
+Landroid/hardware/camera2/CaptureRequest;->mLogicalCameraId:Ljava/lang/String;
+Landroid/hardware/camera2/CaptureRequest;->mPhysicalCameraSettings:Ljava/util/HashMap;
+Landroid/hardware/camera2/CaptureRequest;->mReprocessableSessionId:I
+Landroid/hardware/camera2/CaptureRequest;->mStreamIdxArray:[I
+Landroid/hardware/camera2/CaptureRequest;->mSurfaceConverted:Z
+Landroid/hardware/camera2/CaptureRequest;->mSurfaceIdxArray:[I
+Landroid/hardware/camera2/CaptureRequest;->mSurfaceSet:Landroid/util/ArraySet;
+Landroid/hardware/camera2/CaptureRequest;->mSurfacesLock:Ljava/lang/Object;
+Landroid/hardware/camera2/CaptureRequest;->mUserTag:Ljava/lang/Object;
+Landroid/hardware/camera2/CaptureRequest;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/hardware/camera2/CaptureRequest;->recoverStreamIdToSurface()V
+Landroid/hardware/camera2/CaptureRequest;->TAG:Ljava/lang/String;
+Landroid/hardware/camera2/CaptureResult$Key;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)V
+Landroid/hardware/camera2/CaptureResult$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)V
+Landroid/hardware/camera2/CaptureResult$Key;->getVendorId()J
+Landroid/hardware/camera2/CaptureResult$Key;->mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
+Landroid/hardware/camera2/CaptureResult;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;I)V
+Landroid/hardware/camera2/CaptureResult;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/impl/CaptureResultExtras;)V
+Landroid/hardware/camera2/CaptureResult;->dumpToLog()V
+Landroid/hardware/camera2/CaptureResult;->getKeyClass()Ljava/lang/Class;
+Landroid/hardware/camera2/CaptureResult;->getNativeCopy()Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/CaptureResult;->getProtected(Landroid/hardware/camera2/CaptureResult$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/CaptureResult;->mFrameNumber:J
+Landroid/hardware/camera2/CaptureResult;->mRequest:Landroid/hardware/camera2/CaptureRequest;
+Landroid/hardware/camera2/CaptureResult;->mSequenceId:I
+Landroid/hardware/camera2/CaptureResult;->TAG:Ljava/lang/String;
+Landroid/hardware/camera2/CaptureResult;->VERBOSE:Z
+Landroid/hardware/camera2/DngCreator;->BYTES_PER_RGB_PIX:I
+Landroid/hardware/camera2/DngCreator;->colorToRgb(II[B)V
+Landroid/hardware/camera2/DngCreator;->convertToRGB(Landroid/graphics/Bitmap;)Ljava/nio/ByteBuffer;
+Landroid/hardware/camera2/DngCreator;->convertToRGB(Landroid/media/Image;)Ljava/nio/ByteBuffer;
+Landroid/hardware/camera2/DngCreator;->DEFAULT_PIXEL_STRIDE:I
+Landroid/hardware/camera2/DngCreator;->GPS_DATE_FORMAT_STR:Ljava/lang/String;
+Landroid/hardware/camera2/DngCreator;->GPS_LAT_REF_NORTH:Ljava/lang/String;
+Landroid/hardware/camera2/DngCreator;->GPS_LAT_REF_SOUTH:Ljava/lang/String;
+Landroid/hardware/camera2/DngCreator;->GPS_LONG_REF_EAST:Ljava/lang/String;
+Landroid/hardware/camera2/DngCreator;->GPS_LONG_REF_WEST:Ljava/lang/String;
+Landroid/hardware/camera2/DngCreator;->mGPSTimeStampCalendar:Ljava/util/Calendar;
+Landroid/hardware/camera2/DngCreator;->mNativeContext:J
+Landroid/hardware/camera2/DngCreator;->nativeClassInit()V
+Landroid/hardware/camera2/DngCreator;->nativeDestroy()V
+Landroid/hardware/camera2/DngCreator;->nativeInit(Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/impl/CameraMetadataNative;Ljava/lang/String;)V
+Landroid/hardware/camera2/DngCreator;->nativeSetDescription(Ljava/lang/String;)V
+Landroid/hardware/camera2/DngCreator;->nativeSetGpsTags([ILjava/lang/String;[ILjava/lang/String;Ljava/lang/String;[I)V
+Landroid/hardware/camera2/DngCreator;->nativeSetOrientation(I)V
+Landroid/hardware/camera2/DngCreator;->nativeSetThumbnail(Ljava/nio/ByteBuffer;II)V
+Landroid/hardware/camera2/DngCreator;->nativeWriteImage(Ljava/io/OutputStream;IILjava/nio/ByteBuffer;IIJZ)V
+Landroid/hardware/camera2/DngCreator;->nativeWriteInputStream(Ljava/io/OutputStream;Ljava/io/InputStream;IIJ)V
+Landroid/hardware/camera2/DngCreator;->sExifGPSDateStamp:Ljava/text/DateFormat;
+Landroid/hardware/camera2/DngCreator;->TAG:Ljava/lang/String;
+Landroid/hardware/camera2/DngCreator;->TAG_ORIENTATION_UNKNOWN:I
+Landroid/hardware/camera2/DngCreator;->TIFF_DATETIME_FORMAT:Ljava/lang/String;
+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;
+Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->onCaptureStarted(Landroid/hardware/camera2/impl/CaptureResultExtras;J)V
+Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->onDeviceError(ILandroid/hardware/camera2/impl/CaptureResultExtras;)V
+Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->onDeviceIdle()V
+Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->onPrepared(I)V
+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;
+Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->TRANSACTION_onCaptureStarted:I
+Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->TRANSACTION_onDeviceError:I
+Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->TRANSACTION_onDeviceIdle:I
+Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->TRANSACTION_onPrepared:I
+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
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->ERROR_CAMERA_DISCONNECTED:I
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->ERROR_CAMERA_INVALID_ERROR:I
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->ERROR_CAMERA_REQUEST:I
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->ERROR_CAMERA_RESULT:I
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->ERROR_CAMERA_SERVICE:I
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->onCaptureStarted(Landroid/hardware/camera2/impl/CaptureResultExtras;J)V
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->onDeviceError(ILandroid/hardware/camera2/impl/CaptureResultExtras;)V
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->onDeviceIdle()V
+Landroid/hardware/camera2/ICameraDeviceCallbacks;->onPrepared(I)V
+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
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->createDefaultRequest(I)Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->createInputStream(III)I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->createStream(Landroid/hardware/camera2/params/OutputConfiguration;)I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->deleteStream(I)V
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->disconnect()V
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->endConfigure(ILandroid/hardware/camera2/impl/CameraMetadataNative;)V
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->finalizeOutputConfigurations(ILandroid/hardware/camera2/params/OutputConfiguration;)V
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->flush()J
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->getCameraInfo()Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->getInputSurface()Landroid/view/Surface;
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->prepare(I)V
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->prepare2(II)V
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->submitRequest(Landroid/hardware/camera2/CaptureRequest;Z)Landroid/hardware/camera2/utils/SubmitInfo;
+Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->submitRequestList([Landroid/hardware/camera2/CaptureRequest;Z)Landroid/hardware/camera2/utils/SubmitInfo;
+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;
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_beginConfigure:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_cancelRequest:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_createDefaultRequest:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_createInputStream:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_createStream:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_deleteStream:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_disconnect:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_endConfigure:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_finalizeOutputConfigurations:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_flush:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_getCameraInfo:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_getInputSurface:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_prepare2:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_prepare:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_submitRequest:I
+Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_submitRequestList:I
+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
+Landroid/hardware/camera2/ICameraDeviceUser;->createDefaultRequest(I)Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/ICameraDeviceUser;->createInputStream(III)I
+Landroid/hardware/camera2/ICameraDeviceUser;->createStream(Landroid/hardware/camera2/params/OutputConfiguration;)I
+Landroid/hardware/camera2/ICameraDeviceUser;->deleteStream(I)V
+Landroid/hardware/camera2/ICameraDeviceUser;->disconnect()V
+Landroid/hardware/camera2/ICameraDeviceUser;->endConfigure(ILandroid/hardware/camera2/impl/CameraMetadataNative;)V
+Landroid/hardware/camera2/ICameraDeviceUser;->finalizeOutputConfigurations(ILandroid/hardware/camera2/params/OutputConfiguration;)V
+Landroid/hardware/camera2/ICameraDeviceUser;->flush()J
+Landroid/hardware/camera2/ICameraDeviceUser;->getCameraInfo()Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/ICameraDeviceUser;->getInputSurface()Landroid/view/Surface;
+Landroid/hardware/camera2/ICameraDeviceUser;->NORMAL_MODE:I
+Landroid/hardware/camera2/ICameraDeviceUser;->NO_IN_FLIGHT_REPEATING_FRAMES:I
+Landroid/hardware/camera2/ICameraDeviceUser;->prepare(I)V
+Landroid/hardware/camera2/ICameraDeviceUser;->prepare2(II)V
+Landroid/hardware/camera2/ICameraDeviceUser;->submitRequest(Landroid/hardware/camera2/CaptureRequest;Z)Landroid/hardware/camera2/utils/SubmitInfo;
+Landroid/hardware/camera2/ICameraDeviceUser;->submitRequestList([Landroid/hardware/camera2/CaptureRequest;Z)Landroid/hardware/camera2/utils/SubmitInfo;
+Landroid/hardware/camera2/ICameraDeviceUser;->tearDown(I)V
+Landroid/hardware/camera2/ICameraDeviceUser;->TEMPLATE_MANUAL:I
+Landroid/hardware/camera2/ICameraDeviceUser;->TEMPLATE_PREVIEW:I
+Landroid/hardware/camera2/ICameraDeviceUser;->TEMPLATE_RECORD:I
+Landroid/hardware/camera2/ICameraDeviceUser;->TEMPLATE_STILL_CAPTURE:I
+Landroid/hardware/camera2/ICameraDeviceUser;->TEMPLATE_VIDEO_SNAPSHOT:I
+Landroid/hardware/camera2/ICameraDeviceUser;->TEMPLATE_ZERO_SHUTTER_LAG:I
+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
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->checkCaptureRequests(Ljava/util/List;)V
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->checkNotClosed()V
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->checkRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;)V
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->checkRepeatingRequests(Ljava/util/List;)V
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->createCaptureCallbackProxy(Landroid/os/Handler;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;)Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->createCaptureCallbackProxyWithExecutor(Ljava/util/concurrent/Executor;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;)Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->createUserStateCallbackProxy(Ljava/util/concurrent/Executor;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;)Landroid/hardware/camera2/CameraCaptureSession$StateCallback;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->DEBUG:Z
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->finishPendingSequence(I)V
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->getDeviceStateCallback()Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->isAborting()Z
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mAbortDrainer:Landroid/hardware/camera2/utils/TaskSingleDrainer;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mAborting:Z
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mClosed:Z
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mConfigureSuccess:Z
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mDeviceExecutor:Ljava/util/concurrent/Executor;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mDeviceImpl:Landroid/hardware/camera2/impl/CameraDeviceImpl;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mId:I
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mIdleDrainer:Landroid/hardware/camera2/utils/TaskSingleDrainer;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mIdString:Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mInput:Landroid/view/Surface;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mSequenceDrainer:Landroid/hardware/camera2/utils/TaskDrainer;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mSkipUnconfigure:Z
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mStateCallback:Landroid/hardware/camera2/CameraCaptureSession$StateCallback;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->mStateExecutor:Ljava/util/concurrent/Executor;
+Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->prepare(ILandroid/view/Surface;)V
+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
+Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;->isConstrainedHighSpeedRequestList(Ljava/util/List;)Z
+Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;->mCharacteristics:Landroid/hardware/camera2/CameraCharacteristics;
+Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;->mSessionImpl:Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;
+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
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->onDeviceError(ILandroid/hardware/camera2/impl/CaptureResultExtras;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->onDeviceIdle()V
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->onPrepared(I)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->onRepeatingRequestError(JI)V
+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
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->onCaptureFailed(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureFailure;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->onCapturePartial(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureResult;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->onCaptureProgressed(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureResult;)V
+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;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->getRequest()Landroid/hardware/camera2/CaptureRequest;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->getRequest(I)Landroid/hardware/camera2/CaptureRequest;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->getRequestCount()I
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->getSessionId()I
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->hasBatchedOutputs()Z
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->isRepeating()Z
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->mCallback:Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->mHasBatchedOutputs:Z
+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
+Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->mCompletedReprocessFrameNumber:J
+Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->mFutureErrorMap:Ljava/util/TreeMap;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->mPartialResults:Ljava/util/HashMap;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->mSkippedRegularFrameNumbers:Ljava/util/LinkedList;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->mSkippedReprocessFrameNumbers:Ljava/util/LinkedList;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->popPartialResults(J)Ljava/util/List;
+Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->update()V
+Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->updateCompletedFrameNumber(J)V
+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
+Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;->getLastRegularFrameNumber()J
+Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;->getLastReprocessFrameNumber()J
+Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;->getRequestId()I
+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
+Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;->onIdle(Landroid/hardware/camera2/CameraDevice;)V
+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
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkAndFireSequenceComplete()V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkAndWrapHandler(Landroid/os/Handler;)Ljava/util/concurrent/Executor;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkEarlyTriggerSequenceComplete(IJ)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkExecutor(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/Executor;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkExecutor(Ljava/util/concurrent/Executor;Ljava/lang/Object;)Ljava/util/concurrent/Executor;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkHandler(Landroid/os/Handler;)Landroid/os/Handler;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkHandler(Landroid/os/Handler;Ljava/lang/Object;)Landroid/os/Handler;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkIfCameraClosedOrInError()V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->checkInputConfiguration(Landroid/hardware/camera2/params/InputConfiguration;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->configureOutputs(Ljava/util/List;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->configureStreamsChecked(Landroid/hardware/camera2/params/InputConfiguration;Ljava/util/List;ILandroid/hardware/camera2/CaptureRequest;)Z
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->createCaptureSessionInternal(Landroid/hardware/camera2/params/InputConfiguration;Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Ljava/util/concurrent/Executor;ILandroid/hardware/camera2/CaptureRequest;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->DEBUG:Z
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->finalizeOutputConfigs(Ljava/util/List;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->flush()V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->getCallbacks()Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->getCharacteristics()Landroid/hardware/camera2/CameraCharacteristics;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->isClosed()Z
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mAppTargetSdkVersion:I
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCallbacks:Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCallOnActive:Ljava/lang/Runnable;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCallOnBusy:Ljava/lang/Runnable;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCallOnClosed:Ljava/lang/Runnable;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCallOnDisconnected:Ljava/lang/Runnable;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCallOnIdle:Ljava/lang/Runnable;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCallOnOpened:Ljava/lang/Runnable;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCallOnUnconfigured:Ljava/lang/Runnable;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCameraId:Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCaptureCallbackMap:Landroid/util/SparseArray;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCharacteristics:Landroid/hardware/camera2/CameraCharacteristics;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mClosing:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mConfiguredInput:Ljava/util/AbstractMap$SimpleEntry;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mConfiguredOutputs:Landroid/util/SparseArray;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mCurrentSession:Landroid/hardware/camera2/impl/CameraCaptureSessionCore;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mDeviceCallback:Landroid/hardware/camera2/CameraDevice$StateCallback;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mDeviceExecutor:Ljava/util/concurrent/Executor;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mFrameNumberTracker:Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mIdle:Z
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mInError:Z
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mInterfaceLock:Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mNextSessionId:I
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mRemoteDevice:Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mRepeatingRequestId:I
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mRequestLastFrameNumbersList:Ljava/util/List;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mSessionStateCallback:Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->mTotalPartialCount:I
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->NANO_PER_SECOND:J
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->overrideEnableZsl(Landroid/hardware/camera2/impl/CameraMetadataNative;Z)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->prepare(ILandroid/view/Surface;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->prepare(Landroid/view/Surface;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->REQUEST_ID_NONE:I
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->setRemoteDevice(Landroid/hardware/camera2/ICameraDeviceUser;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->setRemoteFailure(Landroid/os/ServiceSpecificException;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->setRepeatingBurst(Ljava/util/List;Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;Ljava/util/concurrent/Executor;)I
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;Ljava/util/concurrent/Executor;)I
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->setSessionListener(Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;)V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->stopRepeating()V
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->submitCaptureRequest(Ljava/util/List;Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;Ljava/util/concurrent/Executor;Z)I
+Landroid/hardware/camera2/impl/CameraDeviceImpl;->TAG:Ljava/lang/String;
+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
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->getName()Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->getType()Ljava/lang/Class;
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->getTypeReference()Landroid/hardware/camera2/utils/TypeReference;
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->getVendorId()J
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->mFallbackName:Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->mHash:I
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->mHasTag:Z
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->mName:Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->mTag:I
+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;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->DEBUG:Z
+Landroid/hardware/camera2/impl/CameraMetadataNative;->dumpToLog()V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->FACE_LANDMARK_SIZE:I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/CaptureResult$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getAllVendorKeys(Ljava/lang/Class;)Ljava/util/ArrayList;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getAvailableFormats()[I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/CaptureResult$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getEntryCount()I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getFaceRectangles()[Landroid/graphics/Rect;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getFaces()[Landroid/hardware/camera2/params/Face;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getGpsLocation()Landroid/location/Location;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getLensShadingMap()Landroid/hardware/camera2/params/LensShadingMap;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getMarshalerForKey(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;I)Landroid/hardware/camera2/marshal/Marshaler;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getMaxNumOutputs(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Integer;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getMaxRegions(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Integer;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getNativeType(IJ)I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getOisSamples()[Landroid/hardware/camera2/params/OisSample;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getStreamConfigurationMap()Landroid/hardware/camera2/params/StreamConfigurationMap;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getTag(Ljava/lang/String;)I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getTag(Ljava/lang/String;J)I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->getTonemapCurve()Landroid/hardware/camera2/params/TonemapCurve;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->GPS_PROCESS:Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->isEmpty()Z
+Landroid/hardware/camera2/impl/CameraMetadataNative;->move(Landroid/hardware/camera2/impl/CameraMetadataNative;)Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeAllocate()J
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeAllocateCopy(Landroid/hardware/camera2/impl/CameraMetadataNative;)J
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeClose()V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeDump()V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeGetAllVendorKeys(Ljava/lang/Class;)Ljava/util/ArrayList;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeGetEntryCount()I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeGetTagFromKey(Ljava/lang/String;J)I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeGetTypeFromTag(IJ)I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeIsEmpty()Z
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeReadFromParcel(Landroid/os/Parcel;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeSetupGlobalVendorTagDescriptor()I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeSwap(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeWriteToParcel(Landroid/os/Parcel;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->nativeWriteValues(I[B)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->NATIVE_JPEG_FORMAT:I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->NUM_TYPES:I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->readValues(I)[B
+Landroid/hardware/camera2/impl/CameraMetadataNative;->registerAllMarshalers()V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->set(Landroid/hardware/camera2/CameraCharacteristics$Key;Ljava/lang/Object;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->set(Landroid/hardware/camera2/CaptureResult$Key;Ljava/lang/Object;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->set(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;Ljava/lang/Object;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setAvailableFormats([I)Z
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setBase(Landroid/hardware/camera2/CameraCharacteristics$Key;Ljava/lang/Object;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setBase(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setBase(Landroid/hardware/camera2/CaptureResult$Key;Ljava/lang/Object;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setBase(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;Ljava/lang/Object;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setFaceRectangles([Landroid/graphics/Rect;)Z
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setFaces([Landroid/hardware/camera2/params/Face;)Z
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setGpsLocation(Landroid/location/Location;)Z
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setTonemapCurve(Landroid/hardware/camera2/params/TonemapCurve;)Z
+Landroid/hardware/camera2/impl/CameraMetadataNative;->setupGlobalVendorTagDescriptor()V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->sGetCommandMap:Ljava/util/HashMap;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->sSetCommandMap:Ljava/util/HashMap;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->swap(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
+Landroid/hardware/camera2/impl/CameraMetadataNative;->TAG:Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->translateLocationProviderToProcess(Ljava/lang/String;)Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->translateProcessToLocationProvider(Ljava/lang/String;)Ljava/lang/String;
+Landroid/hardware/camera2/impl/CameraMetadataNative;->TYPE_BYTE:I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->TYPE_DOUBLE:I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->TYPE_FLOAT:I
+Landroid/hardware/camera2/impl/CameraMetadataNative;->TYPE_INT32:I
+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
+Landroid/hardware/camera2/impl/CaptureResultExtras;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/hardware/camera2/impl/CaptureResultExtras;->errorStreamId:I
+Landroid/hardware/camera2/impl/CaptureResultExtras;->frameNumber:J
+Landroid/hardware/camera2/impl/CaptureResultExtras;->getAfTriggerId()I
+Landroid/hardware/camera2/impl/CaptureResultExtras;->getErrorStreamId()I
+Landroid/hardware/camera2/impl/CaptureResultExtras;->getFrameNumber()J
+Landroid/hardware/camera2/impl/CaptureResultExtras;->getPartialResultCount()I
+Landroid/hardware/camera2/impl/CaptureResultExtras;->getPrecaptureTriggerId()I
+Landroid/hardware/camera2/impl/CaptureResultExtras;->getRequestId()I
+Landroid/hardware/camera2/impl/CaptureResultExtras;->getSubsequenceId()I
+Landroid/hardware/camera2/impl/CaptureResultExtras;->partialResultCount:I
+Landroid/hardware/camera2/impl/CaptureResultExtras;->precaptureTriggerId:I
+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
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->createDefaultRequest(I)Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->createInputStream(III)I
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->createStream(Landroid/hardware/camera2/params/OutputConfiguration;)I
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->deleteStream(I)V
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->disconnect()V
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->endConfigure(ILandroid/hardware/camera2/impl/CameraMetadataNative;)V
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->finalizeOutputConfigurations(ILandroid/hardware/camera2/params/OutputConfiguration;)V
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->flush()J
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->getCameraInfo()Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->getInputSurface()Landroid/view/Surface;
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->mRemoteDevice:Landroid/hardware/camera2/ICameraDeviceUser;
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->prepare(I)V
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->prepare2(II)V
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->submitRequest(Landroid/hardware/camera2/CaptureRequest;Z)Landroid/hardware/camera2/utils/SubmitInfo;
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->submitRequestList([Landroid/hardware/camera2/CaptureRequest;Z)Landroid/hardware/camera2/utils/SubmitInfo;
+Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->tearDown(I)V
+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;
+Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;->cameraMetadata:Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+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
+Landroid/hardware/camera2/params/ColorSpaceTransform;->COUNT:I
+Landroid/hardware/camera2/params/ColorSpaceTransform;->COUNT_INT:I
+Landroid/hardware/camera2/params/ColorSpaceTransform;->mElements:[I
+Landroid/hardware/camera2/params/ColorSpaceTransform;->OFFSET_DENOMINATOR:I
+Landroid/hardware/camera2/params/ColorSpaceTransform;->OFFSET_NUMERATOR:I
+Landroid/hardware/camera2/params/ColorSpaceTransform;->RATIONAL_SIZE:I
+Landroid/hardware/camera2/params/ColorSpaceTransform;->ROWS:I
+Landroid/hardware/camera2/params/ColorSpaceTransform;->toShortString()Ljava/lang/String;
+Landroid/hardware/camera2/params/Face;-><init>(Landroid/graphics/Rect;I)V
+Landroid/hardware/camera2/params/Face;-><init>(Landroid/graphics/Rect;IILandroid/graphics/Point;Landroid/graphics/Point;Landroid/graphics/Point;)V
+Landroid/hardware/camera2/params/Face;->checkNotNull(Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/hardware/camera2/params/Face;->checkNull(Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/hardware/camera2/params/Face;->mBounds:Landroid/graphics/Rect;
+Landroid/hardware/camera2/params/Face;->mId:I
+Landroid/hardware/camera2/params/Face;->mLeftEye:Landroid/graphics/Point;
+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
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->getFpsMin()I
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->getFpsRange()Landroid/util/Range;
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->getHeight()I
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->getSize()Landroid/util/Size;
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->getWidth()I
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->HIGH_SPEED_MAX_MINIMAL_FPS:I
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->mBatchSizeMax:I
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->mFpsMax:I
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->mFpsMin:I
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->mFpsRange:Landroid/util/Range;
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->mHeight:I
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->mSize:Landroid/util/Size;
+Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->mWidth:I
+Landroid/hardware/camera2/params/InputConfiguration;->mFormat:I
+Landroid/hardware/camera2/params/InputConfiguration;->mHeight:I
+Landroid/hardware/camera2/params/InputConfiguration;->mWidth:I
+Landroid/hardware/camera2/params/LensShadingMap;-><init>([FII)V
+Landroid/hardware/camera2/params/LensShadingMap;->mColumns:I
+Landroid/hardware/camera2/params/LensShadingMap;->mElements:[F
+Landroid/hardware/camera2/params/LensShadingMap;->mRows:I
+Landroid/hardware/camera2/params/MeteringRectangle;->mHeight:I
+Landroid/hardware/camera2/params/MeteringRectangle;->mWeight:I
+Landroid/hardware/camera2/params/MeteringRectangle;->mWidth:I
+Landroid/hardware/camera2/params/MeteringRectangle;->mX:I
+Landroid/hardware/camera2/params/MeteringRectangle;->mY:I
+Landroid/hardware/camera2/params/OisSample;->mTimestampNs:J
+Landroid/hardware/camera2/params/OisSample;->mXShift:F
+Landroid/hardware/camera2/params/OisSample;->mYShift:F
+Landroid/hardware/camera2/params/OutputConfiguration;-><init>(Landroid/hardware/camera2/params/OutputConfiguration;)V
+Landroid/hardware/camera2/params/OutputConfiguration;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/camera2/params/OutputConfiguration;->isDeferredConfiguration()Z
+Landroid/hardware/camera2/params/OutputConfiguration;->isForPhysicalCamera()Z
+Landroid/hardware/camera2/params/OutputConfiguration;->MAX_SURFACES_COUNT:I
+Landroid/hardware/camera2/params/OutputConfiguration;->mConfiguredDataspace:I
+Landroid/hardware/camera2/params/OutputConfiguration;->mConfiguredFormat:I
+Landroid/hardware/camera2/params/OutputConfiguration;->mConfiguredGenerationId:I
+Landroid/hardware/camera2/params/OutputConfiguration;->mConfiguredSize:Landroid/util/Size;
+Landroid/hardware/camera2/params/OutputConfiguration;->mIsDeferredConfig:Z
+Landroid/hardware/camera2/params/OutputConfiguration;->mIsShared:Z
+Landroid/hardware/camera2/params/OutputConfiguration;->mPhysicalCameraId:Ljava/lang/String;
+Landroid/hardware/camera2/params/OutputConfiguration;->mRotation:I
+Landroid/hardware/camera2/params/OutputConfiguration;->mSurfaceGroupId:I
+Landroid/hardware/camera2/params/OutputConfiguration;->mSurfaces:Ljava/util/ArrayList;
+Landroid/hardware/camera2/params/OutputConfiguration;->mSurfaceType:I
+Landroid/hardware/camera2/params/OutputConfiguration;->SURFACE_TYPE_SURFACE_TEXTURE:I
+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
+Landroid/hardware/camera2/params/ReprocessFormatsMap;->mEntry:[I
+Landroid/hardware/camera2/params/ReprocessFormatsMap;->mInputCount:I
+Landroid/hardware/camera2/params/RggbChannelVector;->mBlue:F
+Landroid/hardware/camera2/params/RggbChannelVector;->mGreenEven:F
+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;
+Landroid/hardware/camera2/params/SessionConfiguration;->mSessionParameters:Landroid/hardware/camera2/CaptureRequest;
+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
+Landroid/hardware/camera2/params/StreamConfiguration;->getSize()Landroid/util/Size;
+Landroid/hardware/camera2/params/StreamConfiguration;->getWidth()I
+Landroid/hardware/camera2/params/StreamConfiguration;->isInput()Z
+Landroid/hardware/camera2/params/StreamConfiguration;->isOutput()Z
+Landroid/hardware/camera2/params/StreamConfiguration;->mFormat:I
+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
+Landroid/hardware/camera2/params/StreamConfigurationDuration;->getHeight()I
+Landroid/hardware/camera2/params/StreamConfigurationDuration;->getSize()Landroid/util/Size;
+Landroid/hardware/camera2/params/StreamConfigurationDuration;->getWidth()I
+Landroid/hardware/camera2/params/StreamConfigurationDuration;->mDurationNs:J
+Landroid/hardware/camera2/params/StreamConfigurationDuration;->mFormat:I
+Landroid/hardware/camera2/params/StreamConfigurationDuration;->mHeight:I
+Landroid/hardware/camera2/params/StreamConfigurationDuration;->mWidth:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;-><init>([Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;Landroid/hardware/camera2/params/ReprocessFormatsMap;Z)V
+Landroid/hardware/camera2/params/StreamConfigurationMap;->appendHighResOutputsString(Ljava/lang/StringBuilder;)V
+Landroid/hardware/camera2/params/StreamConfigurationMap;->appendHighSpeedVideoConfigurationsString(Ljava/lang/StringBuilder;)V
+Landroid/hardware/camera2/params/StreamConfigurationMap;->appendInputsString(Ljava/lang/StringBuilder;)V
+Landroid/hardware/camera2/params/StreamConfigurationMap;->appendOutputsString(Ljava/lang/StringBuilder;)V
+Landroid/hardware/camera2/params/StreamConfigurationMap;->appendValidOutputFormatsForInputString(Ljava/lang/StringBuilder;)V
+Landroid/hardware/camera2/params/StreamConfigurationMap;->arrayContains([Ljava/lang/Object;Ljava/lang/Object;)Z
+Landroid/hardware/camera2/params/StreamConfigurationMap;->checkArgumentFormat(I)I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->checkArgumentFormatInternal(I)I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->checkArgumentFormatSupported(IZ)I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->depthFormatToPublic(I)I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->DURATION_20FPS_NS:J
+Landroid/hardware/camera2/params/StreamConfigurationMap;->DURATION_MIN_FRAME:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->DURATION_STALL:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->formatToString(I)Ljava/lang/String;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->getDurations(II)[Landroid/hardware/camera2/params/StreamConfigurationDuration;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->getFormatsMap(Z)Landroid/util/SparseIntArray;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->getInternalFormatDuration(IILandroid/util/Size;I)J
+Landroid/hardware/camera2/params/StreamConfigurationMap;->getInternalFormatSizes(IIZZ)[Landroid/util/Size;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->getPublicFormatCount(Z)I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->getPublicFormats(Z)[I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->getPublicFormatSizes(IZZ)[Landroid/util/Size;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_DATASPACE_DEPTH:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_DATASPACE_RANGE_SHIFT:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_DATASPACE_STANDARD_SHIFT:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_DATASPACE_TRANSFER_SHIFT:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_DATASPACE_UNKNOWN:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_DATASPACE_V0_JFIF:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_PIXEL_FORMAT_BLOB:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_PIXEL_FORMAT_RAW10:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_PIXEL_FORMAT_RAW12:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_PIXEL_FORMAT_RAW16:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_PIXEL_FORMAT_RAW_OPAQUE:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_PIXEL_FORMAT_Y16:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->HAL_PIXEL_FORMAT_YCbCr_420_888:I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->imageFormatToDataspace(I)I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->imageFormatToInternal(I)I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->imageFormatToInternal([I)[I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->imageFormatToPublic(I)I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->imageFormatToPublic([I)[I
+Landroid/hardware/camera2/params/StreamConfigurationMap;->isSupportedInternalConfiguration(IILandroid/util/Size;)Z
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mAllOutputFormats:Landroid/util/SparseIntArray;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mConfigurations:[Landroid/hardware/camera2/params/StreamConfiguration;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mDepthConfigurations:[Landroid/hardware/camera2/params/StreamConfiguration;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mDepthMinFrameDurations:[Landroid/hardware/camera2/params/StreamConfigurationDuration;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mDepthOutputFormats:Landroid/util/SparseIntArray;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mDepthStallDurations:[Landroid/hardware/camera2/params/StreamConfigurationDuration;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mHighResOutputFormats:Landroid/util/SparseIntArray;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mHighSpeedVideoConfigurations:[Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mHighSpeedVideoFpsRangeMap:Ljava/util/HashMap;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mHighSpeedVideoSizeMap:Ljava/util/HashMap;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mInputFormats:Landroid/util/SparseIntArray;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mInputOutputFormatsMap:Landroid/hardware/camera2/params/ReprocessFormatsMap;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mListHighResolution:Z
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mMinFrameDurations:[Landroid/hardware/camera2/params/StreamConfigurationDuration;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mOutputFormats:Landroid/util/SparseIntArray;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->mStallDurations:[Landroid/hardware/camera2/params/StreamConfigurationDuration;
+Landroid/hardware/camera2/params/StreamConfigurationMap;->TAG:Ljava/lang/String;
+Landroid/hardware/camera2/params/TonemapCurve;->checkArgumentArrayLengthDivisibleBy([FILjava/lang/String;)V
+Landroid/hardware/camera2/params/TonemapCurve;->checkArgumentArrayLengthNoLessThan([FILjava/lang/String;)V
+Landroid/hardware/camera2/params/TonemapCurve;->checkArgumentColorChannel(I)I
+Landroid/hardware/camera2/params/TonemapCurve;->curveToString(I)Ljava/lang/String;
+Landroid/hardware/camera2/params/TonemapCurve;->getCurve(I)[F
+Landroid/hardware/camera2/params/TonemapCurve;->mBlue:[F
+Landroid/hardware/camera2/params/TonemapCurve;->mGreen:[F
+Landroid/hardware/camera2/params/TonemapCurve;->mHashCalculated:Z
+Landroid/hardware/camera2/params/TonemapCurve;->mHashCode:I
+Landroid/hardware/camera2/params/TonemapCurve;->MIN_CURVE_LENGTH:I
+Landroid/hardware/camera2/params/TonemapCurve;->mRed:[F
+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;
+Landroid/hardware/camera2/TotalCaptureResult;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;I)V
+Landroid/hardware/camera2/TotalCaptureResult;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/impl/CaptureResultExtras;Ljava/util/List;I[Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;)V
+Landroid/hardware/camera2/TotalCaptureResult;->getSessionId()I
+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
+Landroid/hardware/camera2/utils/ArrayUtils;->convertStringListToIntArray(Ljava/util/List;[Ljava/lang/String;[I)[I
+Landroid/hardware/camera2/utils/ArrayUtils;->convertStringListToIntList(Ljava/util/List;[Ljava/lang/String;[I)Ljava/util/List;
+Landroid/hardware/camera2/utils/ArrayUtils;->DEBUG:Z
+Landroid/hardware/camera2/utils/ArrayUtils;->getArrayIndex([II)I
+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;
+Landroid/hardware/camera2/utils/CloseableLock;->acquireLock()Landroid/hardware/camera2/utils/CloseableLock$ScopedLock;
+Landroid/hardware/camera2/utils/CloseableLock;->log(Ljava/lang/String;)V
+Landroid/hardware/camera2/utils/CloseableLock;->mClosed:Z
+Landroid/hardware/camera2/utils/CloseableLock;->mCondition:Ljava/util/concurrent/locks/Condition;
+Landroid/hardware/camera2/utils/CloseableLock;->mExclusive:Z
+Landroid/hardware/camera2/utils/CloseableLock;->mLock:Ljava/util/concurrent/locks/ReentrantLock;
+Landroid/hardware/camera2/utils/CloseableLock;->mLockCount:Ljava/lang/ThreadLocal;
+Landroid/hardware/camera2/utils/CloseableLock;->mName:Ljava/lang/String;
+Landroid/hardware/camera2/utils/CloseableLock;->mSharedLocks:I
+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
+Landroid/hardware/camera2/utils/LongParcelable;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/hardware/camera2/utils/LongParcelable;->getNumber()J
+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;
+Landroid/hardware/camera2/utils/ParamsUtils;->createRect(Landroid/graphics/RectF;)Landroid/graphics/Rect;
+Landroid/hardware/camera2/utils/ParamsUtils;->createRect(Landroid/util/Size;)Landroid/graphics/Rect;
+Landroid/hardware/camera2/utils/ParamsUtils;->createSize(Landroid/graphics/Rect;)Landroid/util/Size;
+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
+Landroid/hardware/camera2/utils/SubmitInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/hardware/camera2/utils/SubmitInfo;->getLastFrameNumber()J
+Landroid/hardware/camera2/utils/SubmitInfo;->getRequestId()I
+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
+Landroid/hardware/camera2/utils/SurfaceUtils;->getSurfaceDataspace(Landroid/view/Surface;)I
+Landroid/hardware/camera2/utils/SurfaceUtils;->getSurfaceFormat(Landroid/view/Surface;)I
+Landroid/hardware/camera2/utils/SurfaceUtils;->getSurfaceId(Landroid/view/Surface;)J
+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
+Landroid/hardware/camera2/utils/TaskDrainer;->checkIfDrainFinished()V
+Landroid/hardware/camera2/utils/TaskDrainer;->DEBUG:Z
+Landroid/hardware/camera2/utils/TaskDrainer;->mDrainFinished:Z
+Landroid/hardware/camera2/utils/TaskDrainer;->mDraining:Z
+Landroid/hardware/camera2/utils/TaskDrainer;->mEarlyFinishedTaskSet:Ljava/util/Set;
+Landroid/hardware/camera2/utils/TaskDrainer;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/hardware/camera2/utils/TaskDrainer;->mListener:Landroid/hardware/camera2/utils/TaskDrainer$DrainListener;
+Landroid/hardware/camera2/utils/TaskDrainer;->mLock:Ljava/lang/Object;
+Landroid/hardware/camera2/utils/TaskDrainer;->mName:Ljava/lang/String;
+Landroid/hardware/camera2/utils/TaskDrainer;->mTaskSet:Ljava/util/Set;
+Landroid/hardware/camera2/utils/TaskDrainer;->postDrained()V
+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
+Landroid/hardware/camera2/utils/TaskSingleDrainer;->mSingleTask:Ljava/lang/Object;
+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
+Landroid/hardware/camera2/utils/TypeReference;->createSpecializedTypeReference(Ljava/lang/Class;)Landroid/hardware/camera2/utils/TypeReference;
+Landroid/hardware/camera2/utils/TypeReference;->getArrayClass(Ljava/lang/Class;)Ljava/lang/Class;
+Landroid/hardware/camera2/utils/TypeReference;->getComponentType()Landroid/hardware/camera2/utils/TypeReference;
+Landroid/hardware/camera2/utils/TypeReference;->getComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
+Landroid/hardware/camera2/utils/TypeReference;->getRawType()Ljava/lang/Class;
+Landroid/hardware/camera2/utils/TypeReference;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
+Landroid/hardware/camera2/utils/TypeReference;->getRawType([Ljava/lang/reflect/Type;)Ljava/lang/Class;
+Landroid/hardware/camera2/utils/TypeReference;->getType()Ljava/lang/reflect/Type;
+Landroid/hardware/camera2/utils/TypeReference;->mHash:I
+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
+Landroid/hardware/camera2/utils/UncheckedThrow;->throwAnyImpl(Ljava/lang/Throwable;)V
+Landroid/hardware/Camera;-><init>()V
+Landroid/hardware/Camera;-><init>(I)V
+Landroid/hardware/Camera;-><init>(II)V
+Landroid/hardware/Camera;->cameraInitNormal(I)I
+Landroid/hardware/Camera;->cameraInitUnspecified(I)I
+Landroid/hardware/Camera;->cameraInitVersion(II)I
+Landroid/hardware/Camera;->CAMERA_ERROR_DISABLED:I
+Landroid/hardware/Camera;->CAMERA_FACE_DETECTION_HW:I
+Landroid/hardware/Camera;->CAMERA_FACE_DETECTION_SW:I
+Landroid/hardware/Camera;->CAMERA_HAL_API_VERSION_NORMAL_CONNECT:I
+Landroid/hardware/Camera;->CAMERA_HAL_API_VERSION_UNSPECIFIED:I
+Landroid/hardware/Camera;->CAMERA_MSG_COMPRESSED_IMAGE:I
+Landroid/hardware/Camera;->CAMERA_MSG_ERROR:I
+Landroid/hardware/Camera;->CAMERA_MSG_FOCUS:I
+Landroid/hardware/Camera;->CAMERA_MSG_FOCUS_MOVE:I
+Landroid/hardware/Camera;->CAMERA_MSG_POSTVIEW_FRAME:I
+Landroid/hardware/Camera;->CAMERA_MSG_PREVIEW_FRAME:I
+Landroid/hardware/Camera;->CAMERA_MSG_PREVIEW_METADATA:I
+Landroid/hardware/Camera;->CAMERA_MSG_RAW_IMAGE:I
+Landroid/hardware/Camera;->CAMERA_MSG_RAW_IMAGE_NOTIFY:I
+Landroid/hardware/Camera;->CAMERA_MSG_SHUTTER:I
+Landroid/hardware/Camera;->CAMERA_MSG_VIDEO_FRAME:I
+Landroid/hardware/Camera;->CAMERA_MSG_ZOOM:I
+Landroid/hardware/Camera;->checkInitErrors(I)Z
+Landroid/hardware/Camera;->createPreviewAllocation(Landroid/renderscript/RenderScript;I)Landroid/renderscript/Allocation;
+Landroid/hardware/Camera;->disableShutterSound()Z
+Landroid/hardware/Camera;->enableFocusMoveCallback(I)V
+Landroid/hardware/Camera;->getParametersCopy(Landroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Parameters;
+Landroid/hardware/Camera;->initAppOps()V
+Landroid/hardware/Camera;->mAppOps:Lcom/android/internal/app/IAppOpsService;
+Landroid/hardware/Camera;->mAppOpsCallback:Lcom/android/internal/app/IAppOpsCallback;
+Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
+Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
+Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
+Landroid/hardware/Camera;->mDetailedErrorCallback:Landroid/hardware/Camera$ErrorCallback;
+Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
+Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
+Landroid/hardware/Camera;->mFaceDetectionRunning:Z
+Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
+Landroid/hardware/Camera;->mHasAppOpsPlayAudio:Z
+Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
+Landroid/hardware/Camera;->mOneShot:Z
+Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
+Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
+Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
+Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
+Landroid/hardware/Camera;->mShutterSoundEnabledFromApp:Z
+Landroid/hardware/Camera;->mShutterSoundLock:Ljava/lang/Object;
+Landroid/hardware/Camera;->mUsingPreviewAllocation:Z
+Landroid/hardware/Camera;->mWithBuffer:Z
+Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
+Landroid/hardware/Camera;->native_autoFocus()V
+Landroid/hardware/Camera;->native_cancelAutoFocus()V
+Landroid/hardware/Camera;->native_release()V
+Landroid/hardware/Camera;->native_takePicture(I)V
+Landroid/hardware/Camera;->NO_ERROR:I
+Landroid/hardware/Camera;->openUninitialized()Landroid/hardware/Camera;
+Landroid/hardware/Camera;->releaseAppOps()V
+Landroid/hardware/Camera;->setDetailedErrorCallback(Landroid/hardware/Camera$ErrorCallback;)V
+Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
+Landroid/hardware/Camera;->setPreviewCallbackAllocation(Landroid/renderscript/Allocation;)V
+Landroid/hardware/Camera;->setPreviewCallbackSurface(Landroid/view/Surface;)V
+Landroid/hardware/Camera;->TAG:Ljava/lang/String;
+Landroid/hardware/Camera;->updateAppOpsPlayAudio()V
+Landroid/hardware/Camera;->_addCallbackBuffer([BI)V
+Landroid/hardware/Camera;->_enableShutterSound(Z)Z
+Landroid/hardware/Camera;->_getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V
+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;
+Landroid/hardware/CameraStatus;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/hardware/CameraStatus;->status:I
+Landroid/hardware/ConsumerIrManager$CarrierFrequencyRange;->mMaxFrequency:I
+Landroid/hardware/ConsumerIrManager$CarrierFrequencyRange;->mMinFrequency:I
+Landroid/hardware/ConsumerIrManager;-><init>(Landroid/content/Context;)V
+Landroid/hardware/ConsumerIrManager;->mPackageName:Ljava/lang/String;
+Landroid/hardware/ConsumerIrManager;->mService:Landroid/hardware/IConsumerIrService;
+Landroid/hardware/ConsumerIrManager;->TAG:Ljava/lang/String;
+Landroid/hardware/display/AmbientBrightnessDayStats;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/display/AmbientBrightnessDayStats;-><init>(Ljava/time/LocalDate;[F)V
+Landroid/hardware/display/AmbientBrightnessDayStats;-><init>(Ljava/time/LocalDate;[F[F)V
+Landroid/hardware/display/AmbientBrightnessDayStats;->checkSorted([F)V
+Landroid/hardware/display/AmbientBrightnessDayStats;->getBucketIndex(F)I
+Landroid/hardware/display/AmbientBrightnessDayStats;->log(FF)V
+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
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mBrightness:F
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mColorTemperature:I
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mIsDefaultBrightnessConfig:Z
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mIsUserSetBrightness:Z
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mLastBrightness:F
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mLuxTimestamps:[J
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mLuxValues:[F
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mNightMode:Z
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mPackageName:Ljava/lang/String;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mPowerBrightnessFactor:F
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mTimeStamp:J
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->mUserId:I
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setBatteryLevel(F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setBrightness(F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setColorTemperature(I)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setIsDefaultBrightnessConfig(Z)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setLastBrightness(F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setLuxTimestamps([J)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setLuxValues([F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setNightMode(Z)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setPackageName(Ljava/lang/String;)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setPowerBrightnessFactor(F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setTimeStamp(J)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setUserBrightnessPoint(Z)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent$Builder;->setUserId(I)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+Landroid/hardware/display/BrightnessChangeEvent;-><init>(FJLjava/lang/String;I[F[JFFZIFZZ)V
+Landroid/hardware/display/BrightnessChangeEvent;-><init>(Landroid/hardware/display/BrightnessChangeEvent;Z)V
+Landroid/hardware/display/BrightnessChangeEvent;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/display/BrightnessChangeEvent;->userId:I
+Landroid/hardware/display/BrightnessConfiguration$Builder;-><init>()V
+Landroid/hardware/display/BrightnessConfiguration$Builder;->checkMonotonic([FZLjava/lang/String;)V
+Landroid/hardware/display/BrightnessConfiguration$Builder;->mCurveLux:[F
+Landroid/hardware/display/BrightnessConfiguration$Builder;->mCurveNits:[F
+Landroid/hardware/display/BrightnessConfiguration$Builder;->mDescription:Ljava/lang/String;
+Landroid/hardware/display/BrightnessConfiguration$Builder;->setCurve([F[F)Landroid/hardware/display/BrightnessConfiguration$Builder;
+Landroid/hardware/display/BrightnessConfiguration;-><init>([F[FLjava/lang/String;)V
+Landroid/hardware/display/BrightnessConfiguration;->getDescription()Ljava/lang/String;
+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
+Landroid/hardware/display/Curve;->getY()[F
+Landroid/hardware/display/Curve;->mX:[F
+Landroid/hardware/display/Curve;->mY:[F
+Landroid/hardware/display/DisplayManager;-><init>(Landroid/content/Context;)V
+Landroid/hardware/display/DisplayManager;->addAllDisplaysLocked(Ljava/util/ArrayList;[I)V
+Landroid/hardware/display/DisplayManager;->addPresentationDisplaysLocked(Ljava/util/ArrayList;[II)V
+Landroid/hardware/display/DisplayManager;->createVirtualDisplay(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;
+Landroid/hardware/display/DisplayManager;->DEBUG:Z
+Landroid/hardware/display/DisplayManager;->getBrightnessConfigurationForUser(I)Landroid/hardware/display/BrightnessConfiguration;
+Landroid/hardware/display/DisplayManager;->getOrCreateDisplayLocked(IZ)Landroid/view/Display;
+Landroid/hardware/display/DisplayManager;->mContext:Landroid/content/Context;
+Landroid/hardware/display/DisplayManager;->mDisplays:Landroid/util/SparseArray;
+Landroid/hardware/display/DisplayManager;->mGlobal:Landroid/hardware/display/DisplayManagerGlobal;
+Landroid/hardware/display/DisplayManager;->mLock:Ljava/lang/Object;
+Landroid/hardware/display/DisplayManager;->mTempDisplays:Ljava/util/ArrayList;
+Landroid/hardware/display/DisplayManager;->setBrightnessConfigurationForUser(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)V
+Landroid/hardware/display/DisplayManager;->setTemporaryAutoBrightnessAdjustment(F)V
+Landroid/hardware/display/DisplayManager;->setTemporaryBrightness(I)V
+Landroid/hardware/display/DisplayManager;->TAG:Ljava/lang/String;
+Landroid/hardware/display/DisplayManager;->VIRTUAL_DISPLAY_FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD:I
+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;
+Landroid/hardware/display/DisplayManagerGlobal;->DEBUG:Z
+Landroid/hardware/display/DisplayManagerGlobal;->EVENT_DISPLAY_ADDED:I
+Landroid/hardware/display/DisplayManagerGlobal;->EVENT_DISPLAY_CHANGED:I
+Landroid/hardware/display/DisplayManagerGlobal;->EVENT_DISPLAY_REMOVED:I
+Landroid/hardware/display/DisplayManagerGlobal;->findDisplayListenerLocked(Landroid/hardware/display/DisplayManager$DisplayListener;)I
+Landroid/hardware/display/DisplayManagerGlobal;->forgetWifiDisplay(Ljava/lang/String;)V
+Landroid/hardware/display/DisplayManagerGlobal;->getAmbientBrightnessStats()Ljava/util/List;
+Landroid/hardware/display/DisplayManagerGlobal;->getBrightnessConfigurationForUser(I)Landroid/hardware/display/BrightnessConfiguration;
+Landroid/hardware/display/DisplayManagerGlobal;->getBrightnessEvents(Ljava/lang/String;)Ljava/util/List;
+Landroid/hardware/display/DisplayManagerGlobal;->getCompatibleDisplay(ILandroid/content/res/Resources;)Landroid/view/Display;
+Landroid/hardware/display/DisplayManagerGlobal;->getCompatibleDisplay(ILandroid/view/DisplayAdjustments;)Landroid/view/Display;
+Landroid/hardware/display/DisplayManagerGlobal;->getDefaultBrightnessConfiguration()Landroid/hardware/display/BrightnessConfiguration;
+Landroid/hardware/display/DisplayManagerGlobal;->getMinimumBrightnessCurve()Landroid/util/Pair;
+Landroid/hardware/display/DisplayManagerGlobal;->getStableDisplaySize()Landroid/graphics/Point;
+Landroid/hardware/display/DisplayManagerGlobal;->handleDisplayEvent(II)V
+Landroid/hardware/display/DisplayManagerGlobal;->mCallback:Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;
+Landroid/hardware/display/DisplayManagerGlobal;->mDisplayIdCache:[I
+Landroid/hardware/display/DisplayManagerGlobal;->mDisplayInfoCache:Landroid/util/SparseArray;
+Landroid/hardware/display/DisplayManagerGlobal;->mDisplayListeners:Ljava/util/ArrayList;
+Landroid/hardware/display/DisplayManagerGlobal;->mLock:Ljava/lang/Object;
+Landroid/hardware/display/DisplayManagerGlobal;->mWifiDisplayScanNestCount:I
+Landroid/hardware/display/DisplayManagerGlobal;->pauseWifiDisplay()V
+Landroid/hardware/display/DisplayManagerGlobal;->registerCallbackIfNeededLocked()V
+Landroid/hardware/display/DisplayManagerGlobal;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
+Landroid/hardware/display/DisplayManagerGlobal;->releaseVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;)V
+Landroid/hardware/display/DisplayManagerGlobal;->renameWifiDisplay(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/hardware/display/DisplayManagerGlobal;->requestColorMode(II)V
+Landroid/hardware/display/DisplayManagerGlobal;->resizeVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;III)V
+Landroid/hardware/display/DisplayManagerGlobal;->resumeWifiDisplay()V
+Landroid/hardware/display/DisplayManagerGlobal;->setBrightnessConfigurationForUser(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)V
+Landroid/hardware/display/DisplayManagerGlobal;->setSaturationLevel(F)V
+Landroid/hardware/display/DisplayManagerGlobal;->setTemporaryAutoBrightnessAdjustment(F)V
+Landroid/hardware/display/DisplayManagerGlobal;->setTemporaryBrightness(I)V
+Landroid/hardware/display/DisplayManagerGlobal;->setVirtualDisplaySurface(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/view/Surface;)V
+Landroid/hardware/display/DisplayManagerGlobal;->startWifiDisplayScan()V
+Landroid/hardware/display/DisplayManagerGlobal;->stopWifiDisplayScan()V
+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
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->boostScreenBrightness:Z
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->copyFrom(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)V
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->dozeScreenBrightness:I
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->dozeScreenState:I
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->equals(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Z
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->floatEquals(FF)Z
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->isBrightOrDim()Z
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->isVr()Z
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->lowPowerMode:Z
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->policy:I
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->policyToString(I)Ljava/lang/String;
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->POLICY_BRIGHT:I
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->POLICY_DIM:I
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->POLICY_DOZE:I
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->POLICY_OFF:I
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->POLICY_VR:I
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->screenAutoBrightnessAdjustmentOverride:F
+Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->screenBrightnessOverride:I
+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
+Landroid/hardware/display/DisplayManagerInternal;->initPowerManagement(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;Landroid/os/Handler;Landroid/hardware/SensorManager;)V
+Landroid/hardware/display/DisplayManagerInternal;->isProximitySensorAvailable()Z
+Landroid/hardware/display/DisplayManagerInternal;->isUidPresentOnDisplay(II)Z
+Landroid/hardware/display/DisplayManagerInternal;->onOverlayChanged()V
+Landroid/hardware/display/DisplayManagerInternal;->performTraversal(Landroid/view/SurfaceControl$Transaction;)V
+Landroid/hardware/display/DisplayManagerInternal;->persistBrightnessTrackerState()V
+Landroid/hardware/display/DisplayManagerInternal;->registerDisplayTransactionListener(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
+Landroid/hardware/display/DisplayManagerInternal;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z
+Landroid/hardware/display/DisplayManagerInternal;->setDisplayAccessUIDs(Landroid/util/SparseArray;)V
+Landroid/hardware/display/DisplayManagerInternal;->setDisplayInfoOverrideFromWindowManager(ILandroid/view/DisplayInfo;)V
+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
+Landroid/hardware/display/DisplayViewport;->deviceWidth:I
+Landroid/hardware/display/DisplayViewport;->displayId:I
+Landroid/hardware/display/DisplayViewport;->logicalFrame:Landroid/graphics/Rect;
+Landroid/hardware/display/DisplayViewport;->makeCopy()Landroid/hardware/display/DisplayViewport;
+Landroid/hardware/display/DisplayViewport;->orientation:I
+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
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->disconnectWifiDisplay()V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->forgetWifiDisplay(Ljava/lang/String;)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getAmbientBrightnessStats()Landroid/content/pm/ParceledListSlice;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getBrightnessConfigurationForUser(I)Landroid/hardware/display/BrightnessConfiguration;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getBrightnessEvents(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getDefaultBrightnessConfiguration()Landroid/hardware/display/BrightnessConfiguration;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayIds()[I
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayInfo(I)Landroid/view/DisplayInfo;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getMinimumBrightnessCurve()Landroid/hardware/display/Curve;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getStableDisplaySize()Landroid/graphics/Point;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->pauseWifiDisplay()V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->registerCallback(Landroid/hardware/display/IDisplayManagerCallback;)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->releaseVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->renameWifiDisplay(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->requestColorMode(II)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->resizeVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;III)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->resumeWifiDisplay()V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->setBrightnessConfigurationForUser(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->setSaturationLevel(F)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->setTemporaryAutoBrightnessAdjustment(F)V
+Landroid/hardware/display/IDisplayManager$Stub$Proxy;->setTemporaryBrightness(I)V
+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
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_createVirtualDisplay:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_disconnectWifiDisplay:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_forgetWifiDisplay:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getAmbientBrightnessStats:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getBrightnessConfigurationForUser:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getBrightnessEvents:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getDefaultBrightnessConfiguration:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getDisplayIds:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getDisplayInfo:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getMinimumBrightnessCurve:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getStableDisplaySize:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_getWifiDisplayStatus:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_pauseWifiDisplay:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_registerCallback:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_releaseVirtualDisplay:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_renameWifiDisplay:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_requestColorMode:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_resizeVirtualDisplay:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_resumeWifiDisplay:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_setBrightnessConfigurationForUser:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_setSaturationLevel:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_setTemporaryAutoBrightnessAdjustment:I
+Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_setTemporaryBrightness:I
+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
+Landroid/hardware/display/IDisplayManager;->forgetWifiDisplay(Ljava/lang/String;)V
+Landroid/hardware/display/IDisplayManager;->getAmbientBrightnessStats()Landroid/content/pm/ParceledListSlice;
+Landroid/hardware/display/IDisplayManager;->getBrightnessConfigurationForUser(I)Landroid/hardware/display/BrightnessConfiguration;
+Landroid/hardware/display/IDisplayManager;->getBrightnessEvents(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Landroid/hardware/display/IDisplayManager;->getDefaultBrightnessConfiguration()Landroid/hardware/display/BrightnessConfiguration;
+Landroid/hardware/display/IDisplayManager;->getDisplayIds()[I
+Landroid/hardware/display/IDisplayManager;->getMinimumBrightnessCurve()Landroid/hardware/display/Curve;
+Landroid/hardware/display/IDisplayManager;->getStableDisplaySize()Landroid/graphics/Point;
+Landroid/hardware/display/IDisplayManager;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
+Landroid/hardware/display/IDisplayManager;->pauseWifiDisplay()V
+Landroid/hardware/display/IDisplayManager;->registerCallback(Landroid/hardware/display/IDisplayManagerCallback;)V
+Landroid/hardware/display/IDisplayManager;->releaseVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;)V
+Landroid/hardware/display/IDisplayManager;->renameWifiDisplay(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/hardware/display/IDisplayManager;->requestColorMode(II)V
+Landroid/hardware/display/IDisplayManager;->resizeVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;III)V
+Landroid/hardware/display/IDisplayManager;->resumeWifiDisplay()V
+Landroid/hardware/display/IDisplayManager;->setBrightnessConfigurationForUser(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)V
+Landroid/hardware/display/IDisplayManager;->setSaturationLevel(F)V
+Landroid/hardware/display/IDisplayManager;->setTemporaryAutoBrightnessAdjustment(F)V
+Landroid/hardware/display/IDisplayManager;->setTemporaryBrightness(I)V
+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
+Landroid/hardware/display/VirtualDisplay;-><init>(Landroid/hardware/display/DisplayManagerGlobal;Landroid/view/Display;Landroid/hardware/display/IVirtualDisplayCallback;Landroid/view/Surface;)V
+Landroid/hardware/display/VirtualDisplay;->mDisplay:Landroid/view/Display;
+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;
+Landroid/hardware/display/WifiDisplay;->getFriendlyDisplayName()Ljava/lang/String;
+Landroid/hardware/display/WifiDisplay;->hasSameAddress(Landroid/hardware/display/WifiDisplay;)Z
+Landroid/hardware/display/WifiDisplay;->mCanConnect:Z
+Landroid/hardware/display/WifiDisplay;->mDeviceAddress:Ljava/lang/String;
+Landroid/hardware/display/WifiDisplay;->mDeviceAlias:Ljava/lang/String;
+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;
+Landroid/hardware/display/WifiDisplaySessionInfo;->getGroupId()Ljava/lang/String;
+Landroid/hardware/display/WifiDisplaySessionInfo;->getIP()Ljava/lang/String;
+Landroid/hardware/display/WifiDisplaySessionInfo;->getPassphrase()Ljava/lang/String;
+Landroid/hardware/display/WifiDisplaySessionInfo;->getSessionId()I
+Landroid/hardware/display/WifiDisplaySessionInfo;->isClient()Z
+Landroid/hardware/display/WifiDisplaySessionInfo;->mClient:Z
+Landroid/hardware/display/WifiDisplaySessionInfo;->mGroupId:Ljava/lang/String;
+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;
+Landroid/hardware/display/WifiDisplayStatus;->FEATURE_STATE_DISABLED:I
+Landroid/hardware/display/WifiDisplayStatus;->FEATURE_STATE_OFF:I
+Landroid/hardware/display/WifiDisplayStatus;->FEATURE_STATE_UNAVAILABLE:I
+Landroid/hardware/display/WifiDisplayStatus;->getSessionInfo()Landroid/hardware/display/WifiDisplaySessionInfo;
+Landroid/hardware/display/WifiDisplayStatus;->mActiveDisplayState:I
+Landroid/hardware/display/WifiDisplayStatus;->mFeatureState:I
+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;
+Landroid/hardware/fingerprint/Fingerprint;->getDeviceId()J
+Landroid/hardware/fingerprint/Fingerprint;->getGroupId()I
+Landroid/hardware/fingerprint/Fingerprint;->mDeviceId:J
+Landroid/hardware/fingerprint/Fingerprint;->mFingerId:I
+Landroid/hardware/fingerprint/Fingerprint;->mGroupId:I
+Landroid/hardware/fingerprint/Fingerprint;->mName:Ljava/lang/CharSequence;
+Landroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;->onAuthenticationAcquired(I)V
+Landroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;->onAuthenticationSucceeded(Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;)V
+Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;-><init>(Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;Landroid/hardware/fingerprint/Fingerprint;I)V
+Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;->getUserId()I
+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
+Landroid/hardware/fingerprint/FingerprintManager;-><init>(Landroid/content/Context;Landroid/hardware/fingerprint/IFingerprintService;)V
+Landroid/hardware/fingerprint/FingerprintManager;->addLockoutResetCallback(Landroid/hardware/fingerprint/FingerprintManager$LockoutResetCallback;)V
+Landroid/hardware/fingerprint/FingerprintManager;->authenticate(ILandroid/hardware/biometrics/CryptoObject;Landroid/os/CancellationSignal;Landroid/os/Bundle;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/IBiometricPromptReceiver;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
+Landroid/hardware/fingerprint/FingerprintManager;->authenticate(Landroid/hardware/biometrics/CryptoObject;Landroid/os/CancellationSignal;Landroid/os/Bundle;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/IBiometricPromptReceiver;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
+Landroid/hardware/fingerprint/FingerprintManager;->authenticate(Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;Landroid/os/CancellationSignal;ILandroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;Landroid/os/Handler;I)V
+Landroid/hardware/fingerprint/FingerprintManager;->authenticate(Landroid/os/CancellationSignal;Landroid/os/Bundle;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/IBiometricPromptReceiver;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
+Landroid/hardware/fingerprint/FingerprintManager;->cancelAuthentication(Landroid/hardware/biometrics/CryptoObject;)V
+Landroid/hardware/fingerprint/FingerprintManager;->cancelEnrollment()V
+Landroid/hardware/fingerprint/FingerprintManager;->DEBUG:Z
+Landroid/hardware/fingerprint/FingerprintManager;->enroll([BLandroid/os/CancellationSignal;IILandroid/hardware/fingerprint/FingerprintManager$EnrollmentCallback;)V
+Landroid/hardware/fingerprint/FingerprintManager;->enumerate(ILandroid/hardware/fingerprint/FingerprintManager$EnumerateCallback;)V
+Landroid/hardware/fingerprint/FingerprintManager;->getAcquiredString(II)Ljava/lang/String;
+Landroid/hardware/fingerprint/FingerprintManager;->getCurrentUserId()I
+Landroid/hardware/fingerprint/FingerprintManager;->getErrorString(II)Ljava/lang/String;
+Landroid/hardware/fingerprint/FingerprintManager;->hasEnrolledFingerprints(I)Z
+Landroid/hardware/fingerprint/FingerprintManager;->mAuthenticationCallback:Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;
+Landroid/hardware/fingerprint/FingerprintManager;->mContext:Landroid/content/Context;
+Landroid/hardware/fingerprint/FingerprintManager;->mCryptoObject:Landroid/hardware/biometrics/CryptoObject;
+Landroid/hardware/fingerprint/FingerprintManager;->mEnrollmentCallback:Landroid/hardware/fingerprint/FingerprintManager$EnrollmentCallback;
+Landroid/hardware/fingerprint/FingerprintManager;->mEnumerateCallback:Landroid/hardware/fingerprint/FingerprintManager$EnumerateCallback;
+Landroid/hardware/fingerprint/FingerprintManager;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/hardware/fingerprint/FingerprintManager;->mHandler:Landroid/os/Handler;
+Landroid/hardware/fingerprint/FingerprintManager;->mRemovalCallback:Landroid/hardware/fingerprint/FingerprintManager$RemovalCallback;
+Landroid/hardware/fingerprint/FingerprintManager;->mRemovalFingerprint:Landroid/hardware/fingerprint/Fingerprint;
+Landroid/hardware/fingerprint/FingerprintManager;->mService:Landroid/hardware/fingerprint/IFingerprintService;
+Landroid/hardware/fingerprint/FingerprintManager;->mServiceReceiver:Landroid/hardware/fingerprint/IFingerprintServiceReceiver;
+Landroid/hardware/fingerprint/FingerprintManager;->MSG_ACQUIRED:I
+Landroid/hardware/fingerprint/FingerprintManager;->MSG_AUTHENTICATION_FAILED:I
+Landroid/hardware/fingerprint/FingerprintManager;->MSG_AUTHENTICATION_SUCCEEDED:I
+Landroid/hardware/fingerprint/FingerprintManager;->MSG_ENROLL_RESULT:I
+Landroid/hardware/fingerprint/FingerprintManager;->MSG_ENUMERATED:I
+Landroid/hardware/fingerprint/FingerprintManager;->MSG_ERROR:I
+Landroid/hardware/fingerprint/FingerprintManager;->MSG_REMOVED:I
+Landroid/hardware/fingerprint/FingerprintManager;->mToken:Landroid/os/IBinder;
+Landroid/hardware/fingerprint/FingerprintManager;->postEnroll()I
+Landroid/hardware/fingerprint/FingerprintManager;->preEnroll()J
+Landroid/hardware/fingerprint/FingerprintManager;->remove(Landroid/hardware/fingerprint/Fingerprint;ILandroid/hardware/fingerprint/FingerprintManager$RemovalCallback;)V
+Landroid/hardware/fingerprint/FingerprintManager;->rename(IILjava/lang/String;)V
+Landroid/hardware/fingerprint/FingerprintManager;->resetTimeout([B)V
+Landroid/hardware/fingerprint/FingerprintManager;->sendAcquiredResult(JII)V
+Landroid/hardware/fingerprint/FingerprintManager;->sendAuthenticatedFailed()V
+Landroid/hardware/fingerprint/FingerprintManager;->sendAuthenticatedSucceeded(Landroid/hardware/fingerprint/Fingerprint;I)V
+Landroid/hardware/fingerprint/FingerprintManager;->sendErrorResult(JII)V
+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
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;)V
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->cancelEnrollment(Landroid/os/IBinder;)V
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->enroll(Landroid/os/IBinder;[BILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;)V
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->enumerate(Landroid/os/IBinder;ILandroid/hardware/fingerprint/IFingerprintServiceReceiver;)V
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->getAuthenticatorId(Ljava/lang/String;)J
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->getEnrolledFingerprints(ILjava/lang/String;)Ljava/util/List;
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->hasEnrolledFingerprints(ILjava/lang/String;)Z
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->isClientActive()Z
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->isHardwareDetected(JLjava/lang/String;)Z
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->postEnroll(Landroid/os/IBinder;)I
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->preEnroll(Landroid/os/IBinder;)J
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->remove(Landroid/os/IBinder;IIILandroid/hardware/fingerprint/IFingerprintServiceReceiver;)V
+Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->removeClientActiveCallback(Landroid/hardware/fingerprint/IFingerprintClientActiveCallback;)V
+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
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_addLockoutResetCallback:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_authenticate:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_cancelAuthentication:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_cancelEnrollment:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_enroll:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_enumerate:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_getAuthenticatorId:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_getEnrolledFingerprints:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_hasEnrolledFingerprints:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_isClientActive:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_isHardwareDetected:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_postEnroll:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_preEnroll:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_remove:I
+Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_removeClientActiveCallback:I
+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
+Landroid/hardware/fingerprint/IFingerprintService;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;)V
+Landroid/hardware/fingerprint/IFingerprintService;->cancelEnrollment(Landroid/os/IBinder;)V
+Landroid/hardware/fingerprint/IFingerprintService;->enroll(Landroid/os/IBinder;[BILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;)V
+Landroid/hardware/fingerprint/IFingerprintService;->enumerate(Landroid/os/IBinder;ILandroid/hardware/fingerprint/IFingerprintServiceReceiver;)V
+Landroid/hardware/fingerprint/IFingerprintService;->getAuthenticatorId(Ljava/lang/String;)J
+Landroid/hardware/fingerprint/IFingerprintService;->getEnrolledFingerprints(ILjava/lang/String;)Ljava/util/List;
+Landroid/hardware/fingerprint/IFingerprintService;->hasEnrolledFingerprints(ILjava/lang/String;)Z
+Landroid/hardware/fingerprint/IFingerprintService;->isClientActive()Z
+Landroid/hardware/fingerprint/IFingerprintService;->isHardwareDetected(JLjava/lang/String;)Z
+Landroid/hardware/fingerprint/IFingerprintService;->postEnroll(Landroid/os/IBinder;)I
+Landroid/hardware/fingerprint/IFingerprintService;->preEnroll(Landroid/os/IBinder;)J
+Landroid/hardware/fingerprint/IFingerprintService;->remove(Landroid/os/IBinder;IIILandroid/hardware/fingerprint/IFingerprintServiceReceiver;)V
+Landroid/hardware/fingerprint/IFingerprintService;->removeClientActiveCallback(Landroid/hardware/fingerprint/IFingerprintClientActiveCallback;)V
+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;
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->onAcquired(JII)V
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->onAuthenticationFailed(J)V
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->onAuthenticationSucceeded(JLandroid/hardware/fingerprint/Fingerprint;I)V
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->onEnrollResult(JIII)V
+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;
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->TRANSACTION_onAcquired:I
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->TRANSACTION_onAuthenticationFailed:I
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->TRANSACTION_onAuthenticationSucceeded:I
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->TRANSACTION_onEnrollResult:I
+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
+Landroid/hardware/fingerprint/IFingerprintServiceReceiver;->onEnrollResult(JIII)V
+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
+Landroid/hardware/GeomagneticField;->BASE_TIME:J
+Landroid/hardware/GeomagneticField;->computeGeocentricCoordinates(FFF)V
+Landroid/hardware/GeomagneticField;->computeSchmidtQuasiNormFactors(I)[[F
+Landroid/hardware/GeomagneticField;->DELTA_G:[[F
+Landroid/hardware/GeomagneticField;->DELTA_H:[[F
+Landroid/hardware/GeomagneticField;->EARTH_REFERENCE_RADIUS_KM:F
+Landroid/hardware/GeomagneticField;->EARTH_SEMI_MAJOR_AXIS_KM:F
+Landroid/hardware/GeomagneticField;->EARTH_SEMI_MINOR_AXIS_KM:F
+Landroid/hardware/GeomagneticField;->G_COEFF:[[F
+Landroid/hardware/GeomagneticField;->H_COEFF:[[F
+Landroid/hardware/GeomagneticField;->mGcLatitudeRad:F
+Landroid/hardware/GeomagneticField;->mGcLongitudeRad:F
+Landroid/hardware/GeomagneticField;->mGcRadiusKm:F
+Landroid/hardware/GeomagneticField;->mX:F
+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;
+Landroid/hardware/HardwareBuffer;->NATIVE_HARDWARE_BUFFER_SIZE:J
+Landroid/hardware/HardwareBuffer;->nCreateHardwareBuffer(IIIIJ)J
+Landroid/hardware/HardwareBuffer;->nGetFormat(J)I
+Landroid/hardware/HardwareBuffer;->nGetHeight(J)I
+Landroid/hardware/HardwareBuffer;->nGetLayers(J)I
+Landroid/hardware/HardwareBuffer;->nGetNativeFinalizer()J
+Landroid/hardware/HardwareBuffer;->nGetUsage(J)J
+Landroid/hardware/HardwareBuffer;->nGetWidth(J)I
+Landroid/hardware/HardwareBuffer;->nReadHardwareBufferFromParcel(Landroid/os/Parcel;)J
+Landroid/hardware/HardwareBuffer;->nWriteHardwareBufferToParcel(JLandroid/os/Parcel;)V
+Landroid/hardware/hdmi/HdmiClient;-><init>(Landroid/hardware/hdmi/IHdmiControlService;)V
+Landroid/hardware/hdmi/HdmiClient;->getDeviceType()I
+Landroid/hardware/hdmi/HdmiClient;->getListenerWrapper(Landroid/hardware/hdmi/HdmiControlManager$VendorCommandListener;)Landroid/hardware/hdmi/IHdmiVendorCommandListener;
+Landroid/hardware/hdmi/HdmiClient;->mIHdmiVendorCommandListener:Landroid/hardware/hdmi/IHdmiVendorCommandListener;
+Landroid/hardware/hdmi/HdmiClient;->mService:Landroid/hardware/hdmi/IHdmiControlService;
+Landroid/hardware/hdmi/HdmiClient;->TAG:Ljava/lang/String;
+Landroid/hardware/hdmi/HdmiControlManager;-><init>(Landroid/hardware/hdmi/IHdmiControlService;)V
+Landroid/hardware/hdmi/HdmiControlManager;->getHotplugEventListenerWrapper(Landroid/hardware/hdmi/HdmiControlManager$HotplugEventListener;)Landroid/hardware/hdmi/IHdmiHotplugEventListener;
+Landroid/hardware/hdmi/HdmiControlManager;->hasDeviceType([II)Z
+Landroid/hardware/hdmi/HdmiControlManager;->mHasPlaybackDevice:Z
+Landroid/hardware/hdmi/HdmiControlManager;->mHasTvDevice:Z
+Landroid/hardware/hdmi/HdmiControlManager;->mHotplugEventListeners:Landroid/util/ArrayMap;
+Landroid/hardware/hdmi/HdmiControlManager;->mService:Landroid/hardware/hdmi/IHdmiControlService;
+Landroid/hardware/hdmi/HdmiControlManager;->TAG:Ljava/lang/String;
+Landroid/hardware/hdmi/HdmiDeviceInfo;-><init>(II)V
+Landroid/hardware/hdmi/HdmiDeviceInfo;-><init>(IIII)V
+Landroid/hardware/hdmi/HdmiDeviceInfo;-><init>(IIIIILjava/lang/String;)V
+Landroid/hardware/hdmi/HdmiDeviceInfo;-><init>(IIIIILjava/lang/String;I)V
+Landroid/hardware/hdmi/HdmiDeviceInfo;->DEVICE_PURE_CEC_SWITCH:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->DEVICE_VIDEO_PROCESSOR:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->HDMI_DEVICE_TYPE_CEC:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->HDMI_DEVICE_TYPE_HARDWARE:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->HDMI_DEVICE_TYPE_INACTIVE:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->HDMI_DEVICE_TYPE_MHL:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->ID_OFFSET_CEC:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->ID_OFFSET_HARDWARE:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->ID_OFFSET_MHL:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mAdopterId:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mDeviceId:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mDevicePowerStatus:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mDeviceType:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mDisplayName:Ljava/lang/String;
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mHdmiDeviceType:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mId:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mLogicalAddress:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mPhysicalAddress:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mPortId:I
+Landroid/hardware/hdmi/HdmiDeviceInfo;->mVendorId:I
+Landroid/hardware/hdmi/HdmiHotplugEvent;-><init>(IZ)V
+Landroid/hardware/hdmi/HdmiHotplugEvent;->mConnected:Z
+Landroid/hardware/hdmi/HdmiHotplugEvent;->mPort:I
+Landroid/hardware/hdmi/HdmiPlaybackClient;-><init>(Landroid/hardware/hdmi/IHdmiControlService;)V
+Landroid/hardware/hdmi/HdmiPlaybackClient;->ADDR_TV:I
+Landroid/hardware/hdmi/HdmiPlaybackClient;->getCallbackWrapper(Landroid/hardware/hdmi/HdmiPlaybackClient$DisplayStatusCallback;)Landroid/hardware/hdmi/IHdmiControlCallback;
+Landroid/hardware/hdmi/HdmiPlaybackClient;->getCallbackWrapper(Landroid/hardware/hdmi/HdmiPlaybackClient$OneTouchPlayCallback;)Landroid/hardware/hdmi/IHdmiControlCallback;
+Landroid/hardware/hdmi/HdmiPlaybackClient;->TAG:Ljava/lang/String;
+Landroid/hardware/hdmi/HdmiPortInfo;->mAddress:I
+Landroid/hardware/hdmi/HdmiPortInfo;->mArcSupported:Z
+Landroid/hardware/hdmi/HdmiPortInfo;->mCecSupported:Z
+Landroid/hardware/hdmi/HdmiPortInfo;->mId:I
+Landroid/hardware/hdmi/HdmiPortInfo;->mMhlSupported:Z
+Landroid/hardware/hdmi/HdmiPortInfo;->mType:I
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;-><init>()V
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->bcdByteToInt(B)I
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->mDurationHour:I
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->mDurationMinute:I
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->mExtraError:I
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->mMediaInfo:I
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->mNotProgrammedError:I
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->mOverlapped:Z
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->mProgrammed:Z
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->mProgrammedInfo:I
+Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;->parseFrom(I)Landroid/hardware/hdmi/HdmiRecordListener$TimerStatusData;
+Landroid/hardware/hdmi/HdmiRecordSources$AnalogueServiceSource;-><init>(III)V
+Landroid/hardware/hdmi/HdmiRecordSources$AnalogueServiceSource;->extraParamToByteArray([BI)I
+Landroid/hardware/hdmi/HdmiRecordSources$AnalogueServiceSource;->EXTRA_DATA_SIZE:I
+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
+Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;->DIGITAL_SERVICE_IDENTIFIED_BY_DIGITAL_ID:I
+Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;->extraParamToByteArray([BI)I
+Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;->EXTRA_DATA_SIZE:I
+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
+Landroid/hardware/hdmi/HdmiRecordSources$DvbData;->mTransportStreamId:I
+Landroid/hardware/hdmi/HdmiRecordSources$DvbData;->toByteArray([BI)I
+Landroid/hardware/hdmi/HdmiRecordSources$ExternalPhysicalAddress;-><init>(I)V
+Landroid/hardware/hdmi/HdmiRecordSources$ExternalPhysicalAddress;->extraParamToByteArray([BI)I
+Landroid/hardware/hdmi/HdmiRecordSources$ExternalPhysicalAddress;->EXTRA_DATA_SIZE:I
+Landroid/hardware/hdmi/HdmiRecordSources$ExternalPhysicalAddress;->mPhysicalAddress:I
+Landroid/hardware/hdmi/HdmiRecordSources$ExternalPlugData;-><init>(I)V
+Landroid/hardware/hdmi/HdmiRecordSources$ExternalPlugData;->extraParamToByteArray([BI)I
+Landroid/hardware/hdmi/HdmiRecordSources$ExternalPlugData;->EXTRA_DATA_SIZE:I
+Landroid/hardware/hdmi/HdmiRecordSources$ExternalPlugData;->mPlugNumber:I
+Landroid/hardware/hdmi/HdmiRecordSources$OwnSource;-><init>()V
+Landroid/hardware/hdmi/HdmiRecordSources$OwnSource;->extraParamToByteArray([BI)I
+Landroid/hardware/hdmi/HdmiRecordSources$OwnSource;->EXTRA_DATA_SIZE:I
+Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;-><init>(II)V
+Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;->extraParamToByteArray([BI)I
+Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;->getDataSize(Z)I
+Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;->mExtraDataSize:I
+Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;->mSourceType:I
+Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;->toByteArray(Z[BI)I
+Landroid/hardware/hdmi/HdmiRecordSources;-><init>()V
+Landroid/hardware/hdmi/HdmiRecordSources;->ANALOGUE_BROADCAST_TYPE_CABLE:I
+Landroid/hardware/hdmi/HdmiRecordSources;->ANALOGUE_BROADCAST_TYPE_SATELLITE:I
+Landroid/hardware/hdmi/HdmiRecordSources;->ANALOGUE_BROADCAST_TYPE_TERRESTRIAL:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_NTSC_M:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_PAL_BG:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_PAL_DK:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_PAL_I:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_PAL_M:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_PAL_OTHER_SYSTEM:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_SECAM_BG:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_SECAM_DK:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_SECAM_L:I
+Landroid/hardware/hdmi/HdmiRecordSources;->BROADCAST_SYSTEM_SECAM_LP:I
+Landroid/hardware/hdmi/HdmiRecordSources;->CHANNEL_NUMBER_FORMAT_1_PART:I
+Landroid/hardware/hdmi/HdmiRecordSources;->CHANNEL_NUMBER_FORMAT_2_PART:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_ARIB:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_ARIB_BS:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_ARIB_CS:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_ARIB_T:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_ATSC:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_ATSC_CABLE:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_ATSC_SATELLITE:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_ATSC_TERRESTRIAL:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_DVB:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_DVB_C:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_DVB_S2:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_DVB_S:I
+Landroid/hardware/hdmi/HdmiRecordSources;->DIGITAL_BROADCAST_TYPE_DVB_T:I
+Landroid/hardware/hdmi/HdmiRecordSources;->ofAnalogue(III)Landroid/hardware/hdmi/HdmiRecordSources$AnalogueServiceSource;
+Landroid/hardware/hdmi/HdmiRecordSources;->ofArib(ILandroid/hardware/hdmi/HdmiRecordSources$AribData;)Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;
+Landroid/hardware/hdmi/HdmiRecordSources;->ofAtsc(ILandroid/hardware/hdmi/HdmiRecordSources$AtscData;)Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;
+Landroid/hardware/hdmi/HdmiRecordSources;->ofDigitalChannelId(ILandroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;)Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;
+Landroid/hardware/hdmi/HdmiRecordSources;->ofDvb(ILandroid/hardware/hdmi/HdmiRecordSources$DvbData;)Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;
+Landroid/hardware/hdmi/HdmiRecordSources;->ofExternalPhysicalAddress(I)Landroid/hardware/hdmi/HdmiRecordSources$ExternalPhysicalAddress;
+Landroid/hardware/hdmi/HdmiRecordSources;->ofExternalPlug(I)Landroid/hardware/hdmi/HdmiRecordSources$ExternalPlugData;
+Landroid/hardware/hdmi/HdmiRecordSources;->RECORD_SOURCE_TYPE_ANALOGUE_SERVICE:I
+Landroid/hardware/hdmi/HdmiRecordSources;->RECORD_SOURCE_TYPE_DIGITAL_SERVICE:I
+Landroid/hardware/hdmi/HdmiRecordSources;->RECORD_SOURCE_TYPE_EXTERNAL_PHYSICAL_ADDRESS:I
+Landroid/hardware/hdmi/HdmiRecordSources;->RECORD_SOURCE_TYPE_EXTERNAL_PLUG:I
+Landroid/hardware/hdmi/HdmiRecordSources;->RECORD_SOURCE_TYPE_OWN_SOURCE:I
+Landroid/hardware/hdmi/HdmiRecordSources;->shortToByteArray(S[BI)I
+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
+Landroid/hardware/hdmi/HdmiTimerRecordSources$ExternalSourceDecorator;->mRecordSource:Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;
+Landroid/hardware/hdmi/HdmiTimerRecordSources$Time;-><init>(II)V
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;-><init>(IILandroid/hardware/hdmi/HdmiTimerRecordSources$Time;Landroid/hardware/hdmi/HdmiTimerRecordSources$Duration;I)V
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->BASIC_INFO_SIZE:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->DAY_OF_MONTH_SIZE:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->DURATION_SIZE:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->getDataSize()I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->mDayOfMonth:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->mDuration:Landroid/hardware/hdmi/HdmiTimerRecordSources$Duration;
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->mMonthOfYear:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->MONTH_OF_YEAR_SIZE:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->mRecordingSequence:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->mStartTime:Landroid/hardware/hdmi/HdmiTimerRecordSources$Time;
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->RECORDING_SEQUENCE_SIZE:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->START_TIME_SIZE:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;->toByteArray([BI)I
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerRecordSource;-><init>(Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;)V
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerRecordSource;->getDataSize()I
+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
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimeUnit;->toBcdByte(I)B
+Landroid/hardware/hdmi/HdmiTimerRecordSources$TimeUnit;->toByteArray([BI)I
+Landroid/hardware/hdmi/HdmiTimerRecordSources;-><init>()V
+Landroid/hardware/hdmi/HdmiTimerRecordSources;->checkDurationValue(II)V
+Landroid/hardware/hdmi/HdmiTimerRecordSources;->checkTimerRecordSourceInputs(Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;)V
+Landroid/hardware/hdmi/HdmiTimerRecordSources;->checkTimeValue(II)V
+Landroid/hardware/hdmi/HdmiTimerRecordSources;->EXTERNAL_SOURCE_SPECIFIER_EXTERNAL_PHYSICAL_ADDRESS:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources;->EXTERNAL_SOURCE_SPECIFIER_EXTERNAL_PLUG:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources;->RECORDING_SEQUENCE_REPEAT_MASK:I
+Landroid/hardware/hdmi/HdmiTimerRecordSources;->TAG:Ljava/lang/String;
+Landroid/hardware/hdmi/HdmiTvClient;-><init>(Landroid/hardware/hdmi/IHdmiControlService;)V
+Landroid/hardware/hdmi/HdmiTvClient;->checkTimerRecordingSourceType(I)V
+Landroid/hardware/hdmi/HdmiTvClient;->create(Landroid/hardware/hdmi/IHdmiControlService;)Landroid/hardware/hdmi/HdmiTvClient;
+Landroid/hardware/hdmi/HdmiTvClient;->getCallbackWrapper(Landroid/hardware/hdmi/HdmiTvClient$SelectCallback;)Landroid/hardware/hdmi/IHdmiControlCallback;
+Landroid/hardware/hdmi/HdmiTvClient;->getListenerWrapper(Landroid/hardware/hdmi/HdmiRecordListener;)Landroid/hardware/hdmi/IHdmiRecordListener;
+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
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->addHotplugEventListener(Landroid/hardware/hdmi/IHdmiHotplugEventListener;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->addSystemAudioModeChangeListener(Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->addVendorCommandListener(Landroid/hardware/hdmi/IHdmiVendorCommandListener;I)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->canChangeSystemAudioMode()Z
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->clearTimerRecording(II[B)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->deviceSelect(ILandroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->getActiveSource()Landroid/hardware/hdmi/HdmiDeviceInfo;
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->getDeviceList()Ljava/util/List;
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->getInputDevices()Ljava/util/List;
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->getPortInfo()Ljava/util/List;
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->getSupportedTypes()[I
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->getSystemAudioMode()Z
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->oneTouchPlay(Landroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->portSelect(ILandroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->queryDisplayStatus(Landroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->removeHotplugEventListener(Landroid/hardware/hdmi/IHdmiHotplugEventListener;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->removeSystemAudioModeChangeListener(Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->sendKeyEvent(IIZ)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->sendMhlVendorCommand(III[B)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->sendStandby(II)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->sendVendorCommand(II[BZ)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->setArcMode(Z)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->setHdmiRecordListener(Landroid/hardware/hdmi/IHdmiRecordListener;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->setInputChangeListener(Landroid/hardware/hdmi/IHdmiInputChangeListener;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->setProhibitMode(Z)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->setStandbyMode(Z)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->setSystemAudioMode(ZLandroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->setSystemAudioMute(Z)V
+Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->setSystemAudioVolume(III)V
+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;
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_addDeviceEventListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_addHdmiMhlVendorCommandListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_addHotplugEventListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_addSystemAudioModeChangeListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_addVendorCommandListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_canChangeSystemAudioMode:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_clearTimerRecording:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_deviceSelect:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_getActiveSource:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_getDeviceList:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_getInputDevices:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_getPortInfo:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_getSupportedTypes:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_getSystemAudioMode:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_oneTouchPlay:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_portSelect:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_queryDisplayStatus:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_removeHotplugEventListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_removeSystemAudioModeChangeListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_sendKeyEvent:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_sendMhlVendorCommand:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_sendStandby:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_sendVendorCommand:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_setArcMode:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_setHdmiRecordListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_setInputChangeListener:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_setProhibitMode:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_setStandbyMode:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_setSystemAudioMode:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_setSystemAudioMute:I
+Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_setSystemAudioVolume:I
+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
+Landroid/hardware/hdmi/IHdmiControlService;->addSystemAudioModeChangeListener(Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener;)V
+Landroid/hardware/hdmi/IHdmiControlService;->addVendorCommandListener(Landroid/hardware/hdmi/IHdmiVendorCommandListener;I)V
+Landroid/hardware/hdmi/IHdmiControlService;->canChangeSystemAudioMode()Z
+Landroid/hardware/hdmi/IHdmiControlService;->clearTimerRecording(II[B)V
+Landroid/hardware/hdmi/IHdmiControlService;->deviceSelect(ILandroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService;->getActiveSource()Landroid/hardware/hdmi/HdmiDeviceInfo;
+Landroid/hardware/hdmi/IHdmiControlService;->getDeviceList()Ljava/util/List;
+Landroid/hardware/hdmi/IHdmiControlService;->getInputDevices()Ljava/util/List;
+Landroid/hardware/hdmi/IHdmiControlService;->getPortInfo()Ljava/util/List;
+Landroid/hardware/hdmi/IHdmiControlService;->getSupportedTypes()[I
+Landroid/hardware/hdmi/IHdmiControlService;->getSystemAudioMode()Z
+Landroid/hardware/hdmi/IHdmiControlService;->oneTouchPlay(Landroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService;->portSelect(ILandroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService;->queryDisplayStatus(Landroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService;->removeHotplugEventListener(Landroid/hardware/hdmi/IHdmiHotplugEventListener;)V
+Landroid/hardware/hdmi/IHdmiControlService;->removeSystemAudioModeChangeListener(Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener;)V
+Landroid/hardware/hdmi/IHdmiControlService;->sendKeyEvent(IIZ)V
+Landroid/hardware/hdmi/IHdmiControlService;->sendMhlVendorCommand(III[B)V
+Landroid/hardware/hdmi/IHdmiControlService;->sendStandby(II)V
+Landroid/hardware/hdmi/IHdmiControlService;->sendVendorCommand(II[BZ)V
+Landroid/hardware/hdmi/IHdmiControlService;->setArcMode(Z)V
+Landroid/hardware/hdmi/IHdmiControlService;->setHdmiRecordListener(Landroid/hardware/hdmi/IHdmiRecordListener;)V
+Landroid/hardware/hdmi/IHdmiControlService;->setInputChangeListener(Landroid/hardware/hdmi/IHdmiInputChangeListener;)V
+Landroid/hardware/hdmi/IHdmiControlService;->setProhibitMode(Z)V
+Landroid/hardware/hdmi/IHdmiControlService;->setStandbyMode(Z)V
+Landroid/hardware/hdmi/IHdmiControlService;->setSystemAudioMode(ZLandroid/hardware/hdmi/IHdmiControlCallback;)V
+Landroid/hardware/hdmi/IHdmiControlService;->setSystemAudioMute(Z)V
+Landroid/hardware/hdmi/IHdmiControlService;->setSystemAudioVolume(III)V
+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
+Landroid/hardware/hdmi/IHdmiRecordListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/hardware/hdmi/IHdmiRecordListener$Stub;->TRANSACTION_getOneTouchRecordSource:I
+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;
+Landroid/hardware/ICameraService$Stub$Proxy;->connectDevice(Landroid/hardware/camera2/ICameraDeviceCallbacks;Ljava/lang/String;Ljava/lang/String;I)Landroid/hardware/camera2/ICameraDeviceUser;
+Landroid/hardware/ICameraService$Stub$Proxy;->connectLegacy(Landroid/hardware/ICameraClient;IILjava/lang/String;I)Landroid/hardware/ICamera;
+Landroid/hardware/ICameraService$Stub$Proxy;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/ICameraService$Stub$Proxy;->getCameraInfo(I)Landroid/hardware/CameraInfo;
+Landroid/hardware/ICameraService$Stub$Proxy;->getCameraVendorTagCache()Landroid/hardware/camera2/params/VendorTagDescriptorCache;
+Landroid/hardware/ICameraService$Stub$Proxy;->getCameraVendorTagDescriptor()Landroid/hardware/camera2/params/VendorTagDescriptor;
+Landroid/hardware/ICameraService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/ICameraService$Stub$Proxy;->getLegacyParameters(I)Ljava/lang/String;
+Landroid/hardware/ICameraService$Stub$Proxy;->getNumberOfCameras(I)I
+Landroid/hardware/ICameraService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/ICameraService$Stub$Proxy;->notifySystemEvent(I[I)V
+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
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_connect:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_connectDevice:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_connectLegacy:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_getCameraCharacteristics:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_getCameraInfo:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_getCameraVendorTagCache:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_getCameraVendorTagDescriptor:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_getLegacyParameters:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_getNumberOfCameras:I
+Landroid/hardware/ICameraService$Stub;->TRANSACTION_notifySystemEvent:I
+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
+Landroid/hardware/ICameraService;->CAMERA_HAL_API_VERSION_UNSPECIFIED:I
+Landroid/hardware/ICameraService;->CAMERA_TYPE_ALL:I
+Landroid/hardware/ICameraService;->CAMERA_TYPE_BACKWARD_COMPATIBLE:I
+Landroid/hardware/ICameraService;->connect(Landroid/hardware/ICameraClient;ILjava/lang/String;II)Landroid/hardware/ICamera;
+Landroid/hardware/ICameraService;->connectDevice(Landroid/hardware/camera2/ICameraDeviceCallbacks;Ljava/lang/String;Ljava/lang/String;I)Landroid/hardware/camera2/ICameraDeviceUser;
+Landroid/hardware/ICameraService;->connectLegacy(Landroid/hardware/ICameraClient;IILjava/lang/String;I)Landroid/hardware/ICamera;
+Landroid/hardware/ICameraService;->ERROR_ALREADY_EXISTS:I
+Landroid/hardware/ICameraService;->ERROR_CAMERA_IN_USE:I
+Landroid/hardware/ICameraService;->ERROR_DEPRECATED_HAL:I
+Landroid/hardware/ICameraService;->ERROR_DISABLED:I
+Landroid/hardware/ICameraService;->ERROR_DISCONNECTED:I
+Landroid/hardware/ICameraService;->ERROR_ILLEGAL_ARGUMENT:I
+Landroid/hardware/ICameraService;->ERROR_INVALID_OPERATION:I
+Landroid/hardware/ICameraService;->ERROR_MAX_CAMERAS_IN_USE:I
+Landroid/hardware/ICameraService;->ERROR_PERMISSION_DENIED:I
+Landroid/hardware/ICameraService;->ERROR_TIMED_OUT:I
+Landroid/hardware/ICameraService;->EVENT_NONE:I
+Landroid/hardware/ICameraService;->EVENT_USER_SWITCHED:I
+Landroid/hardware/ICameraService;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/impl/CameraMetadataNative;
+Landroid/hardware/ICameraService;->getCameraInfo(I)Landroid/hardware/CameraInfo;
+Landroid/hardware/ICameraService;->getCameraVendorTagCache()Landroid/hardware/camera2/params/VendorTagDescriptorCache;
+Landroid/hardware/ICameraService;->getCameraVendorTagDescriptor()Landroid/hardware/camera2/params/VendorTagDescriptor;
+Landroid/hardware/ICameraService;->getLegacyParameters(I)Ljava/lang/String;
+Landroid/hardware/ICameraService;->getNumberOfCameras(I)I
+Landroid/hardware/ICameraService;->notifySystemEvent(I[I)V
+Landroid/hardware/ICameraService;->removeListener(Landroid/hardware/ICameraServiceListener;)V
+Landroid/hardware/ICameraService;->setTorchMode(Ljava/lang/String;ZLandroid/os/IBinder;)V
+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
+Landroid/hardware/ICameraServiceListener;->STATUS_NOT_AVAILABLE:I
+Landroid/hardware/ICameraServiceListener;->STATUS_NOT_PRESENT:I
+Landroid/hardware/ICameraServiceListener;->STATUS_PRESENT:I
+Landroid/hardware/ICameraServiceListener;->STATUS_UNKNOWN:I
+Landroid/hardware/ICameraServiceListener;->TORCH_STATUS_AVAILABLE_OFF:I
+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
+Landroid/hardware/ICameraServiceProxy;->CAMERA_FACING_EXTERNAL:I
+Landroid/hardware/ICameraServiceProxy;->CAMERA_FACING_FRONT:I
+Landroid/hardware/ICameraServiceProxy;->CAMERA_STATE_ACTIVE:I
+Landroid/hardware/ICameraServiceProxy;->CAMERA_STATE_CLOSED:I
+Landroid/hardware/ICameraServiceProxy;->CAMERA_STATE_IDLE:I
+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;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->disableInputDevice(I)V
+Landroid/hardware/input/IInputManager$Stub$Proxy;->enableInputDevice(I)V
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getCurrentKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getEnabledKeyboardLayoutsForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)[Ljava/lang/String;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getInputDevice(I)Landroid/view/InputDevice;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getInputDeviceIds()[I
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getKeyboardLayout(Ljava/lang/String;)Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getKeyboardLayouts()[Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getKeyboardLayoutsForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)[Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->getTouchCalibrationForInputDevice(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->hasKeys(II[I[Z)Z
+Landroid/hardware/input/IInputManager$Stub$Proxy;->injectInputEvent(Landroid/view/InputEvent;I)Z
+Landroid/hardware/input/IInputManager$Stub$Proxy;->isInputDeviceEnabled(I)Z
+Landroid/hardware/input/IInputManager$Stub$Proxy;->isInTabletMode()I
+Landroid/hardware/input/IInputManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/input/IInputManager$Stub$Proxy;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V
+Landroid/hardware/input/IInputManager$Stub$Proxy;->registerTabletModeChangedListener(Landroid/hardware/input/ITabletModeChangedListener;)V
+Landroid/hardware/input/IInputManager$Stub$Proxy;->removeKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
+Landroid/hardware/input/IInputManager$Stub$Proxy;->requestPointerCapture(Landroid/os/IBinder;Z)V
+Landroid/hardware/input/IInputManager$Stub$Proxy;->setCurrentKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
+Landroid/hardware/input/IInputManager$Stub$Proxy;->setCustomPointerIcon(Landroid/view/PointerIcon;)V
+Landroid/hardware/input/IInputManager$Stub$Proxy;->setPointerIconType(I)V
+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
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_cancelVibrate:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_createInputForwarder:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_disableInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_enableInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_getCurrentKeyboardLayoutForInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_getEnabledKeyboardLayoutsForInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_getInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_getInputDeviceIds:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_getKeyboardLayout:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_getKeyboardLayouts:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_getKeyboardLayoutsForInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_getTouchCalibrationForInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_hasKeys:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_isInputDeviceEnabled:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_isInTabletMode:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_registerInputDevicesChangedListener:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_registerTabletModeChangedListener:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_removeKeyboardLayoutForInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_requestPointerCapture:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_setCurrentKeyboardLayoutForInputDevice:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_setCustomPointerIcon:I
+Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_setPointerIconType:I
+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;
+Landroid/hardware/input/IInputManager;->disableInputDevice(I)V
+Landroid/hardware/input/IInputManager;->enableInputDevice(I)V
+Landroid/hardware/input/IInputManager;->getCurrentKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String;
+Landroid/hardware/input/IInputManager;->getEnabledKeyboardLayoutsForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)[Ljava/lang/String;
+Landroid/hardware/input/IInputManager;->getInputDevice(I)Landroid/view/InputDevice;
+Landroid/hardware/input/IInputManager;->getInputDeviceIds()[I
+Landroid/hardware/input/IInputManager;->getKeyboardLayout(Ljava/lang/String;)Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/IInputManager;->getKeyboardLayouts()[Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/IInputManager;->getKeyboardLayoutsForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)[Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/IInputManager;->getTouchCalibrationForInputDevice(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
+Landroid/hardware/input/IInputManager;->hasKeys(II[I[Z)Z
+Landroid/hardware/input/IInputManager;->isInputDeviceEnabled(I)Z
+Landroid/hardware/input/IInputManager;->isInTabletMode()I
+Landroid/hardware/input/IInputManager;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V
+Landroid/hardware/input/IInputManager;->registerTabletModeChangedListener(Landroid/hardware/input/ITabletModeChangedListener;)V
+Landroid/hardware/input/IInputManager;->removeKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
+Landroid/hardware/input/IInputManager;->requestPointerCapture(Landroid/os/IBinder;Z)V
+Landroid/hardware/input/IInputManager;->setCurrentKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
+Landroid/hardware/input/IInputManager;->setCustomPointerIcon(Landroid/view/PointerIcon;)V
+Landroid/hardware/input/IInputManager;->setPointerIconType(I)V
+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;
+Landroid/hardware/input/InputDeviceIdentifier;->getDescriptor()Ljava/lang/String;
+Landroid/hardware/input/InputDeviceIdentifier;->getProductId()I
+Landroid/hardware/input/InputDeviceIdentifier;->getVendorId()I
+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
+Landroid/hardware/input/InputManager;->containsDeviceId([II)Z
+Landroid/hardware/input/InputManager;->DEBUG:Z
+Landroid/hardware/input/InputManager;->DEFAULT_POINTER_SPEED:I
+Landroid/hardware/input/InputManager;->deviceHasKeys(I[I)[Z
+Landroid/hardware/input/InputManager;->deviceHasKeys([I)[Z
+Landroid/hardware/input/InputManager;->disableInputDevice(I)V
+Landroid/hardware/input/InputManager;->enableInputDevice(I)V
+Landroid/hardware/input/InputManager;->findInputDeviceListenerLocked(Landroid/hardware/input/InputManager$InputDeviceListener;)I
+Landroid/hardware/input/InputManager;->findOnTabletModeChangedListenerLocked(Landroid/hardware/input/InputManager$OnTabletModeChangedListener;)I
+Landroid/hardware/input/InputManager;->getCurrentKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String;
+Landroid/hardware/input/InputManager;->getEnabledKeyboardLayoutsForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)[Ljava/lang/String;
+Landroid/hardware/input/InputManager;->getInputDeviceByDescriptor(Ljava/lang/String;)Landroid/view/InputDevice;
+Landroid/hardware/input/InputManager;->getInputDeviceVibrator(I)Landroid/os/Vibrator;
+Landroid/hardware/input/InputManager;->getKeyboardLayout(Ljava/lang/String;)Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/InputManager;->getKeyboardLayouts()[Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/InputManager;->getKeyboardLayoutsForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)[Landroid/hardware/input/KeyboardLayout;
+Landroid/hardware/input/InputManager;->getPointerSpeed(Landroid/content/Context;)I
+Landroid/hardware/input/InputManager;->getTouchCalibration(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
+Landroid/hardware/input/InputManager;->initializeTabletModeListenerLocked()V
+Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_ASYNC:I
+Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_RESULT:I
+Landroid/hardware/input/InputManager;->isInputDeviceEnabled(I)Z
+Landroid/hardware/input/InputManager;->isInTabletMode()I
+Landroid/hardware/input/InputManager;->MAX_POINTER_SPEED:I
+Landroid/hardware/input/InputManager;->mInputDeviceListeners:Ljava/util/ArrayList;
+Landroid/hardware/input/InputManager;->mInputDevices:Landroid/util/SparseArray;
+Landroid/hardware/input/InputManager;->mInputDevicesChangedListener:Landroid/hardware/input/InputManager$InputDevicesChangedListener;
+Landroid/hardware/input/InputManager;->mInputDevicesLock:Ljava/lang/Object;
+Landroid/hardware/input/InputManager;->MIN_POINTER_SPEED:I
+Landroid/hardware/input/InputManager;->mOnTabletModeChangedListeners:Ljava/util/List;
+Landroid/hardware/input/InputManager;->MSG_DEVICE_ADDED:I
+Landroid/hardware/input/InputManager;->MSG_DEVICE_CHANGED:I
+Landroid/hardware/input/InputManager;->MSG_DEVICE_REMOVED:I
+Landroid/hardware/input/InputManager;->mTabletModeChangedListener:Landroid/hardware/input/InputManager$TabletModeChangedListener;
+Landroid/hardware/input/InputManager;->mTabletModeLock:Ljava/lang/Object;
+Landroid/hardware/input/InputManager;->onInputDevicesChanged([I)V
+Landroid/hardware/input/InputManager;->onTabletModeChanged(JZ)V
+Landroid/hardware/input/InputManager;->populateInputDevicesLocked()V
+Landroid/hardware/input/InputManager;->registerOnTabletModeChangedListener(Landroid/hardware/input/InputManager$OnTabletModeChangedListener;Landroid/os/Handler;)V
+Landroid/hardware/input/InputManager;->removeKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
+Landroid/hardware/input/InputManager;->requestPointerCapture(Landroid/os/IBinder;Z)V
+Landroid/hardware/input/InputManager;->sendMessageToInputDeviceListenersLocked(II)V
+Landroid/hardware/input/InputManager;->setCurrentKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
+Landroid/hardware/input/InputManager;->setCustomPointerIcon(Landroid/view/PointerIcon;)V
+Landroid/hardware/input/InputManager;->setPointerSpeed(Landroid/content/Context;I)V
+Landroid/hardware/input/InputManager;->setTouchCalibration(Ljava/lang/String;ILandroid/hardware/input/TouchCalibration;)V
+Landroid/hardware/input/InputManager;->sInstance:Landroid/hardware/input/InputManager;
+Landroid/hardware/input/InputManager;->SWITCH_STATE_OFF:I
+Landroid/hardware/input/InputManager;->SWITCH_STATE_ON:I
+Landroid/hardware/input/InputManager;->SWITCH_STATE_UNKNOWN:I
+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
+Landroid/hardware/input/KeyboardLayout;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/hardware/input/KeyboardLayout;->getCollection()Ljava/lang/String;
+Landroid/hardware/input/KeyboardLayout;->getDescriptor()Ljava/lang/String;
+Landroid/hardware/input/KeyboardLayout;->getLabel()Ljava/lang/String;
+Landroid/hardware/input/KeyboardLayout;->getLocales()Landroid/os/LocaleList;
+Landroid/hardware/input/KeyboardLayout;->getProductId()I
+Landroid/hardware/input/KeyboardLayout;->getVendorId()I
+Landroid/hardware/input/KeyboardLayout;->mCollection:Ljava/lang/String;
+Landroid/hardware/input/KeyboardLayout;->mDescriptor:Ljava/lang/String;
+Landroid/hardware/input/KeyboardLayout;->mLabel:Ljava/lang/String;
+Landroid/hardware/input/KeyboardLayout;->mLocales:Landroid/os/LocaleList;
+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
+Landroid/hardware/input/TouchCalibration;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/hardware/input/TouchCalibration;->getAffineTransform()[F
+Landroid/hardware/input/TouchCalibration;->IDENTITY:Landroid/hardware/input/TouchCalibration;
+Landroid/hardware/input/TouchCalibration;->mXOffset:F
+Landroid/hardware/input/TouchCalibration;->mXScale:F
+Landroid/hardware/input/TouchCalibration;->mXYMix:F
+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
+Landroid/hardware/LegacySensorManager$LegacyListener;->hasSensors()Z
+Landroid/hardware/LegacySensorManager$LegacyListener;->mapSensorDataToWindow(I[FI)V
+Landroid/hardware/LegacySensorManager$LegacyListener;->mSensors:I
+Landroid/hardware/LegacySensorManager$LegacyListener;->mTarget:Landroid/hardware/SensorListener;
+Landroid/hardware/LegacySensorManager$LegacyListener;->mValues:[F
+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
+Landroid/hardware/LegacySensorManager$LmsFilter;->mIndex:I
+Landroid/hardware/LegacySensorManager$LmsFilter;->mT:[J
+Landroid/hardware/LegacySensorManager$LmsFilter;->mV:[F
+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
+Landroid/hardware/LegacySensorManager;->mLegacyListenersMap:Ljava/util/HashMap;
+Landroid/hardware/LegacySensorManager;->mSensorManager:Landroid/hardware/SensorManager;
+Landroid/hardware/LegacySensorManager;->onRotationChanged(I)V
+Landroid/hardware/LegacySensorManager;->registerLegacyListener(IILandroid/hardware/SensorListener;II)Z
+Landroid/hardware/LegacySensorManager;->registerListener(Landroid/hardware/SensorListener;II)Z
+Landroid/hardware/LegacySensorManager;->sInitialized:Z
+Landroid/hardware/LegacySensorManager;->sRotation:I
+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;
+Landroid/hardware/location/ActivityRecognitionEvent;->getEventType()I
+Landroid/hardware/location/ActivityRecognitionEvent;->getTimestampNs()J
+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
+Landroid/hardware/location/ActivityRecognitionHardware;->disableActivityEvent(Ljava/lang/String;I)Z
+Landroid/hardware/location/ActivityRecognitionHardware;->enableActivityEvent(Ljava/lang/String;IJ)Z
+Landroid/hardware/location/ActivityRecognitionHardware;->ENFORCE_HW_PERMISSION_MESSAGE:Ljava/lang/String;
+Landroid/hardware/location/ActivityRecognitionHardware;->EVENT_TYPE_COUNT:I
+Landroid/hardware/location/ActivityRecognitionHardware;->EVENT_TYPE_DISABLED:I
+Landroid/hardware/location/ActivityRecognitionHardware;->EVENT_TYPE_ENABLED:I
+Landroid/hardware/location/ActivityRecognitionHardware;->fetchSupportedActivities()[Ljava/lang/String;
+Landroid/hardware/location/ActivityRecognitionHardware;->flush()Z
+Landroid/hardware/location/ActivityRecognitionHardware;->getActivityName(I)Ljava/lang/String;
+Landroid/hardware/location/ActivityRecognitionHardware;->getActivityType(Ljava/lang/String;)I
+Landroid/hardware/location/ActivityRecognitionHardware;->getInstance(Landroid/content/Context;)Landroid/hardware/location/ActivityRecognitionHardware;
+Landroid/hardware/location/ActivityRecognitionHardware;->getSupportedActivities()[Ljava/lang/String;
+Landroid/hardware/location/ActivityRecognitionHardware;->HARDWARE_PERMISSION:Ljava/lang/String;
+Landroid/hardware/location/ActivityRecognitionHardware;->INVALID_ACTIVITY_TYPE:I
+Landroid/hardware/location/ActivityRecognitionHardware;->isActivitySupported(Ljava/lang/String;)Z
+Landroid/hardware/location/ActivityRecognitionHardware;->isSupported()Z
+Landroid/hardware/location/ActivityRecognitionHardware;->mContext:Landroid/content/Context;
+Landroid/hardware/location/ActivityRecognitionHardware;->mSinks:Landroid/hardware/location/ActivityRecognitionHardware$SinkList;
+Landroid/hardware/location/ActivityRecognitionHardware;->mSupportedActivities:[Ljava/lang/String;
+Landroid/hardware/location/ActivityRecognitionHardware;->mSupportedActivitiesCount:I
+Landroid/hardware/location/ActivityRecognitionHardware;->mSupportedActivitiesEnabledEvents:[[I
+Landroid/hardware/location/ActivityRecognitionHardware;->nativeClassInit()V
+Landroid/hardware/location/ActivityRecognitionHardware;->nativeDisableActivityEvent(II)I
+Landroid/hardware/location/ActivityRecognitionHardware;->nativeEnableActivityEvent(IIJ)I
+Landroid/hardware/location/ActivityRecognitionHardware;->nativeFlush()I
+Landroid/hardware/location/ActivityRecognitionHardware;->nativeGetSupportedActivities()[Ljava/lang/String;
+Landroid/hardware/location/ActivityRecognitionHardware;->nativeInitialize()V
+Landroid/hardware/location/ActivityRecognitionHardware;->nativeIsSupported()Z
+Landroid/hardware/location/ActivityRecognitionHardware;->nativeRelease()V
+Landroid/hardware/location/ActivityRecognitionHardware;->NATIVE_SUCCESS_RESULT:I
+Landroid/hardware/location/ActivityRecognitionHardware;->onActivityChanged([Landroid/hardware/location/ActivityRecognitionHardware$Event;)V
+Landroid/hardware/location/ActivityRecognitionHardware;->registerSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
+Landroid/hardware/location/ActivityRecognitionHardware;->sSingletonInstance:Landroid/hardware/location/ActivityRecognitionHardware;
+Landroid/hardware/location/ActivityRecognitionHardware;->sSingletonInstanceLock:Ljava/lang/Object;
+Landroid/hardware/location/ActivityRecognitionHardware;->TAG:Ljava/lang/String;
+Landroid/hardware/location/ActivityRecognitionHardware;->unregisterSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
+Landroid/hardware/location/ContextHubClient;-><init>(Landroid/hardware/location/ContextHubInfo;)V
+Landroid/hardware/location/ContextHubClient;->mAttachedHub:Landroid/hardware/location/ContextHubInfo;
+Landroid/hardware/location/ContextHubClient;->mClientProxy:Landroid/hardware/location/IContextHubClient;
+Landroid/hardware/location/ContextHubClient;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/hardware/location/ContextHubClient;->mIsClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/hardware/location/ContextHubClient;->setClientProxy(Landroid/hardware/location/IContextHubClient;)V
+Landroid/hardware/location/ContextHubInfo;-><init>(Landroid/hardware/contexthub/V1_0/ContextHub;)V
+Landroid/hardware/location/ContextHubInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/location/ContextHubInfo;->mChreApiMajorVersion:B
+Landroid/hardware/location/ContextHubInfo;->mChreApiMinorVersion:B
+Landroid/hardware/location/ContextHubInfo;->mChrePatchVersion:S
+Landroid/hardware/location/ContextHubInfo;->mChrePlatformId:J
+Landroid/hardware/location/ContextHubInfo;->mId:I
+Landroid/hardware/location/ContextHubInfo;->mMaxPacketLengthBytes:I
+Landroid/hardware/location/ContextHubInfo;->mMemoryRegions:[Landroid/hardware/location/MemoryRegion;
+Landroid/hardware/location/ContextHubInfo;->mName:Ljava/lang/String;
+Landroid/hardware/location/ContextHubInfo;->mPeakMips:F
+Landroid/hardware/location/ContextHubInfo;->mPeakPowerDrawMw:F
+Landroid/hardware/location/ContextHubInfo;->mPlatformVersion:I
+Landroid/hardware/location/ContextHubInfo;->mSleepPowerDrawMw:F
+Landroid/hardware/location/ContextHubInfo;->mStoppedPowerDrawMw:F
+Landroid/hardware/location/ContextHubInfo;->mSupportedSensors:[I
+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;
+Landroid/hardware/location/ContextHubManager;->createQueryCallback(Landroid/hardware/location/ContextHubTransaction;)Landroid/hardware/location/IContextHubTransactionCallback;
+Landroid/hardware/location/ContextHubManager;->createTransactionCallback(Landroid/hardware/location/ContextHubTransaction;)Landroid/hardware/location/IContextHubTransactionCallback;
+Landroid/hardware/location/ContextHubManager;->mCallback:Landroid/hardware/location/ContextHubManager$Callback;
+Landroid/hardware/location/ContextHubManager;->mCallbackHandler:Landroid/os/Handler;
+Landroid/hardware/location/ContextHubManager;->mClientCallback:Landroid/hardware/location/IContextHubCallback$Stub;
+Landroid/hardware/location/ContextHubManager;->mLocalCallback:Landroid/hardware/location/ContextHubManager$ICallback;
+Landroid/hardware/location/ContextHubManager;->mMainLooper:Landroid/os/Looper;
+Landroid/hardware/location/ContextHubManager;->mService:Landroid/hardware/location/IContextHubService;
+Landroid/hardware/location/ContextHubManager;->registerCallback(Landroid/hardware/location/ContextHubManager$ICallback;)I
+Landroid/hardware/location/ContextHubManager;->TAG:Ljava/lang/String;
+Landroid/hardware/location/ContextHubManager;->unregisterCallback(Landroid/hardware/location/ContextHubManager$ICallback;)I
+Landroid/hardware/location/ContextHubMessage;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/location/ContextHubMessage;->DEBUG_LOG_NUM_BYTES:I
+Landroid/hardware/location/ContextHubMessage;->mData:[B
+Landroid/hardware/location/ContextHubMessage;->mType:I
+Landroid/hardware/location/ContextHubMessage;->mVersion:I
+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;
+Landroid/hardware/location/ContextHubTransaction;->mIsResponseSet:Z
+Landroid/hardware/location/ContextHubTransaction;->mListener:Landroid/hardware/location/ContextHubTransaction$OnCompleteListener;
+Landroid/hardware/location/ContextHubTransaction;->mResponse:Landroid/hardware/location/ContextHubTransaction$Response;
+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;
+Landroid/hardware/location/GeofenceHardware;->getMonitorCallbackWrapper(Landroid/hardware/location/GeofenceHardwareMonitorCallback;)Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
+Landroid/hardware/location/GeofenceHardware;->mCallbacks:Ljava/util/HashMap;
+Landroid/hardware/location/GeofenceHardware;->mMonitorCallbacks:Ljava/util/HashMap;
+Landroid/hardware/location/GeofenceHardware;->mService:Landroid/hardware/location/IGeofenceHardware;
+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
+Landroid/hardware/location/GeofenceHardwareImpl;->ADD_GEOFENCE_CALLBACK:I
+Landroid/hardware/location/GeofenceHardwareImpl;->CALLBACK_ADD:I
+Landroid/hardware/location/GeofenceHardwareImpl;->CALLBACK_REMOVE:I
+Landroid/hardware/location/GeofenceHardwareImpl;->CAPABILITY_GNSS:I
+Landroid/hardware/location/GeofenceHardwareImpl;->DEBUG:Z
+Landroid/hardware/location/GeofenceHardwareImpl;->FIRST_VERSION_WITH_CAPABILITIES:I
+Landroid/hardware/location/GeofenceHardwareImpl;->GEOFENCE_CALLBACK_BINDER_DIED:I
+Landroid/hardware/location/GeofenceHardwareImpl;->GEOFENCE_STATUS:I
+Landroid/hardware/location/GeofenceHardwareImpl;->GEOFENCE_TRANSITION_CALLBACK:I
+Landroid/hardware/location/GeofenceHardwareImpl;->getAllowedResolutionLevel(II)I
+Landroid/hardware/location/GeofenceHardwareImpl;->getCapabilitiesForMonitoringType(I)I
+Landroid/hardware/location/GeofenceHardwareImpl;->getInstance(Landroid/content/Context;)Landroid/hardware/location/GeofenceHardwareImpl;
+Landroid/hardware/location/GeofenceHardwareImpl;->getMonitoringResolutionLevel(I)I
+Landroid/hardware/location/GeofenceHardwareImpl;->getMonitoringTypes()[I
+Landroid/hardware/location/GeofenceHardwareImpl;->getStatusOfMonitoringType(I)I
+Landroid/hardware/location/GeofenceHardwareImpl;->LOCATION_HAS_ACCURACY:I
+Landroid/hardware/location/GeofenceHardwareImpl;->LOCATION_HAS_ALTITUDE:I
+Landroid/hardware/location/GeofenceHardwareImpl;->LOCATION_HAS_BEARING:I
+Landroid/hardware/location/GeofenceHardwareImpl;->LOCATION_HAS_LAT_LONG:I
+Landroid/hardware/location/GeofenceHardwareImpl;->LOCATION_HAS_SPEED:I
+Landroid/hardware/location/GeofenceHardwareImpl;->LOCATION_INVALID:I
+Landroid/hardware/location/GeofenceHardwareImpl;->mCallbacks:[Ljava/util/ArrayList;
+Landroid/hardware/location/GeofenceHardwareImpl;->mCallbacksHandler:Landroid/os/Handler;
+Landroid/hardware/location/GeofenceHardwareImpl;->mCapabilities:I
+Landroid/hardware/location/GeofenceHardwareImpl;->mContext:Landroid/content/Context;
+Landroid/hardware/location/GeofenceHardwareImpl;->mFusedService:Landroid/location/IFusedGeofenceHardware;
+Landroid/hardware/location/GeofenceHardwareImpl;->mGeofenceHandler:Landroid/os/Handler;
+Landroid/hardware/location/GeofenceHardwareImpl;->mGeofences:Landroid/util/SparseArray;
+Landroid/hardware/location/GeofenceHardwareImpl;->mGpsService:Landroid/location/IGpsGeofenceHardware;
+Landroid/hardware/location/GeofenceHardwareImpl;->MONITOR_CALLBACK_BINDER_DIED:I
+Landroid/hardware/location/GeofenceHardwareImpl;->mReaperHandler:Landroid/os/Handler;
+Landroid/hardware/location/GeofenceHardwareImpl;->mReapers:Ljava/util/ArrayList;
+Landroid/hardware/location/GeofenceHardwareImpl;->mSupportedMonitorTypes:[I
+Landroid/hardware/location/GeofenceHardwareImpl;->mVersion:I
+Landroid/hardware/location/GeofenceHardwareImpl;->mWakeLock:Landroid/os/PowerManager$WakeLock;
+Landroid/hardware/location/GeofenceHardwareImpl;->onCapabilities(I)V
+Landroid/hardware/location/GeofenceHardwareImpl;->pauseGeofence(II)Z
+Landroid/hardware/location/GeofenceHardwareImpl;->PAUSE_GEOFENCE_CALLBACK:I
+Landroid/hardware/location/GeofenceHardwareImpl;->REAPER_GEOFENCE_ADDED:I
+Landroid/hardware/location/GeofenceHardwareImpl;->REAPER_MONITOR_CALLBACK_ADDED:I
+Landroid/hardware/location/GeofenceHardwareImpl;->REAPER_REMOVED:I
+Landroid/hardware/location/GeofenceHardwareImpl;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
+Landroid/hardware/location/GeofenceHardwareImpl;->releaseWakeLock()V
+Landroid/hardware/location/GeofenceHardwareImpl;->removeGeofence(II)Z
+Landroid/hardware/location/GeofenceHardwareImpl;->REMOVE_GEOFENCE_CALLBACK:I
+Landroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceAddStatus(II)V
+Landroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceMonitorStatus(IILandroid/location/Location;I)V
+Landroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceOperationStatus(III)V
+Landroid/hardware/location/GeofenceHardwareImpl;->reportGeofencePauseStatus(II)V
+Landroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceRemoveStatus(II)V
+Landroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceResumeStatus(II)V
+Landroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceTransition(ILandroid/location/Location;IJII)V
+Landroid/hardware/location/GeofenceHardwareImpl;->RESOLUTION_LEVEL_COARSE:I
+Landroid/hardware/location/GeofenceHardwareImpl;->RESOLUTION_LEVEL_FINE:I
+Landroid/hardware/location/GeofenceHardwareImpl;->RESOLUTION_LEVEL_NONE:I
+Landroid/hardware/location/GeofenceHardwareImpl;->resumeGeofence(III)Z
+Landroid/hardware/location/GeofenceHardwareImpl;->RESUME_GEOFENCE_CALLBACK:I
+Landroid/hardware/location/GeofenceHardwareImpl;->setFusedGeofenceHardware(Landroid/location/IFusedGeofenceHardware;)V
+Landroid/hardware/location/GeofenceHardwareImpl;->setGpsHardwareGeofence(Landroid/location/IGpsGeofenceHardware;)V
+Landroid/hardware/location/GeofenceHardwareImpl;->setMonitorAvailability(II)V
+Landroid/hardware/location/GeofenceHardwareImpl;->setVersion(I)V
+Landroid/hardware/location/GeofenceHardwareImpl;->sInstance:Landroid/hardware/location/GeofenceHardwareImpl;
+Landroid/hardware/location/GeofenceHardwareImpl;->TAG:Ljava/lang/String;
+Landroid/hardware/location/GeofenceHardwareImpl;->unregisterForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
+Landroid/hardware/location/GeofenceHardwareImpl;->updateFusedHardwareAvailability()V
+Landroid/hardware/location/GeofenceHardwareImpl;->updateGpsHardwareAvailability()V
+Landroid/hardware/location/GeofenceHardwareMonitorEvent;->mLocation:Landroid/location/Location;
+Landroid/hardware/location/GeofenceHardwareMonitorEvent;->mMonitoringStatus:I
+Landroid/hardware/location/GeofenceHardwareMonitorEvent;->mMonitoringType:I
+Landroid/hardware/location/GeofenceHardwareMonitorEvent;->mSourceTechnologies:I
+Landroid/hardware/location/GeofenceHardwareRequest;->GEOFENCE_TYPE_CIRCLE:I
+Landroid/hardware/location/GeofenceHardwareRequest;->getType()I
+Landroid/hardware/location/GeofenceHardwareRequest;->mLastTransition:I
+Landroid/hardware/location/GeofenceHardwareRequest;->mLatitude:D
+Landroid/hardware/location/GeofenceHardwareRequest;->mLongitude:D
+Landroid/hardware/location/GeofenceHardwareRequest;->mMonitorTransitions:I
+Landroid/hardware/location/GeofenceHardwareRequest;->mNotificationResponsiveness:I
+Landroid/hardware/location/GeofenceHardwareRequest;->mRadius:D
+Landroid/hardware/location/GeofenceHardwareRequest;->mSourceTechnologies:I
+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
+Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getLastTransition()I
+Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getLatitude()D
+Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getLongitude()D
+Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getMonitorTransitions()I
+Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getNotificationResponsiveness()I
+Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getRadius()D
+Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getSourceTechnologies()I
+Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getType()I
+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
+Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->flush()Z
+Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->getSupportedActivities()[Ljava/lang/String;
+Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->isActivitySupported(Ljava/lang/String;)Z
+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;
+Landroid/hardware/location/IActivityRecognitionHardware$Stub;->TRANSACTION_disableActivityEvent:I
+Landroid/hardware/location/IActivityRecognitionHardware$Stub;->TRANSACTION_enableActivityEvent:I
+Landroid/hardware/location/IActivityRecognitionHardware$Stub;->TRANSACTION_flush:I
+Landroid/hardware/location/IActivityRecognitionHardware$Stub;->TRANSACTION_getSupportedActivities:I
+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
+Landroid/hardware/location/IActivityRecognitionHardware;->getSupportedActivities()[Ljava/lang/String;
+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;
+Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onHubReset()V
+Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
+Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onNanoAppAborted(JI)V
+Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onNanoAppDisabled(J)V
+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;
+Landroid/hardware/location/IContextHubClientCallback$Stub;->TRANSACTION_onHubReset:I
+Landroid/hardware/location/IContextHubClientCallback$Stub;->TRANSACTION_onMessageFromNanoApp:I
+Landroid/hardware/location/IContextHubClientCallback$Stub;->TRANSACTION_onNanoAppAborted:I
+Landroid/hardware/location/IContextHubClientCallback$Stub;->TRANSACTION_onNanoAppDisabled:I
+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
+Landroid/hardware/location/IContextHubClientCallback;->onNanoAppDisabled(J)V
+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
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->enableNanoApp(ILandroid/hardware/location/IContextHubTransactionCallback;J)V
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubHandles()[I
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubs()Ljava/util/List;
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->loadNanoApp(ILandroid/hardware/location/NanoApp;)I
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->loadNanoAppOnHub(ILandroid/hardware/location/IContextHubTransactionCallback;Landroid/hardware/location/NanoAppBinary;)V
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->queryNanoApps(ILandroid/hardware/location/IContextHubTransactionCallback;)V
+Landroid/hardware/location/IContextHubService$Stub$Proxy;->registerCallback(Landroid/hardware/location/IContextHubCallback;)I
+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
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_disableNanoApp:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_enableNanoApp:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_findNanoAppOnHub:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_getContextHubHandles:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_getContextHubInfo:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_getContextHubs:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_getNanoAppInstanceInfo:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_loadNanoApp:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_loadNanoAppOnHub:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_queryNanoApps:I
+Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_registerCallback:I
+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
+Landroid/hardware/location/IContextHubService;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
+Landroid/hardware/location/IContextHubService;->getContextHubHandles()[I
+Landroid/hardware/location/IContextHubService;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
+Landroid/hardware/location/IContextHubService;->getContextHubs()Ljava/util/List;
+Landroid/hardware/location/IContextHubService;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
+Landroid/hardware/location/IContextHubService;->loadNanoApp(ILandroid/hardware/location/NanoApp;)I
+Landroid/hardware/location/IContextHubService;->loadNanoAppOnHub(ILandroid/hardware/location/IContextHubTransactionCallback;Landroid/hardware/location/NanoAppBinary;)V
+Landroid/hardware/location/IContextHubService;->queryNanoApps(ILandroid/hardware/location/IContextHubTransactionCallback;)V
+Landroid/hardware/location/IContextHubService;->registerCallback(Landroid/hardware/location/IContextHubCallback;)I
+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;
+Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->getMonitoringTypes()[I
+Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->getStatusOfMonitoringType(I)I
+Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->pauseGeofence(II)Z
+Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
+Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->removeGeofence(II)Z
+Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->resumeGeofence(III)Z
+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;
+Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_addCircularFence:I
+Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_getMonitoringTypes:I
+Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_getStatusOfMonitoringType:I
+Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_pauseGeofence:I
+Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_registerForMonitorStateChangeCallback:I
+Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_removeGeofence:I
+Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_resumeGeofence:I
+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
+Landroid/hardware/location/IGeofenceHardware;->pauseGeofence(II)Z
+Landroid/hardware/location/IGeofenceHardware;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
+Landroid/hardware/location/IGeofenceHardware;->removeGeofence(II)Z
+Landroid/hardware/location/IGeofenceHardware;->resumeGeofence(III)Z
+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;
+Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->onGeofenceAdd(II)V
+Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->onGeofencePause(II)V
+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;
+Landroid/hardware/location/IGeofenceHardwareCallback$Stub;->TRANSACTION_onGeofenceAdd:I
+Landroid/hardware/location/IGeofenceHardwareCallback$Stub;->TRANSACTION_onGeofencePause:I
+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
+Landroid/hardware/location/MemoryRegion;->mIsWritable:Z
+Landroid/hardware/location/MemoryRegion;->mSizeBytes:I
+Landroid/hardware/location/MemoryRegion;->mSizeBytesFree:I
+Landroid/hardware/location/NanoApp;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/location/NanoApp;->mAppBinary:[B
+Landroid/hardware/location/NanoApp;->mAppId:J
+Landroid/hardware/location/NanoApp;->mAppIdSet:Z
+Landroid/hardware/location/NanoApp;->mAppVersion:I
+Landroid/hardware/location/NanoApp;->mName:Ljava/lang/String;
+Landroid/hardware/location/NanoApp;->mNeededExecMemBytes:I
+Landroid/hardware/location/NanoApp;->mNeededReadMemBytes:I
+Landroid/hardware/location/NanoApp;->mNeededSensors:[I
+Landroid/hardware/location/NanoApp;->mNeededWriteMemBytes:I
+Landroid/hardware/location/NanoApp;->mOutputEvents:[I
+Landroid/hardware/location/NanoApp;->mPublisher:Ljava/lang/String;
+Landroid/hardware/location/NanoApp;->TAG:Ljava/lang/String;
+Landroid/hardware/location/NanoApp;->UNKNOWN:Ljava/lang/String;
+Landroid/hardware/location/NanoAppBinary;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/location/NanoAppBinary;->EXPECTED_HEADER_VERSION:I
+Landroid/hardware/location/NanoAppBinary;->EXPECTED_MAGIC_VALUE:I
+Landroid/hardware/location/NanoAppBinary;->HEADER_ORDER:Ljava/nio/ByteOrder;
+Landroid/hardware/location/NanoAppBinary;->HEADER_SIZE_BYTES:I
+Landroid/hardware/location/NanoAppBinary;->mFlags:I
+Landroid/hardware/location/NanoAppBinary;->mHasValidHeader:Z
+Landroid/hardware/location/NanoAppBinary;->mHeaderVersion:I
+Landroid/hardware/location/NanoAppBinary;->mHwHubType:J
+Landroid/hardware/location/NanoAppBinary;->mMagic:I
+Landroid/hardware/location/NanoAppBinary;->mNanoAppBinary:[B
+Landroid/hardware/location/NanoAppBinary;->mNanoAppId:J
+Landroid/hardware/location/NanoAppBinary;->mNanoAppVersion:I
+Landroid/hardware/location/NanoAppBinary;->mTargetChreApiMajorVersion:B
+Landroid/hardware/location/NanoAppBinary;->mTargetChreApiMinorVersion:B
+Landroid/hardware/location/NanoAppBinary;->NANOAPP_ENCRYPTED_FLAG_BIT:I
+Landroid/hardware/location/NanoAppBinary;->NANOAPP_SIGNED_FLAG_BIT:I
+Landroid/hardware/location/NanoAppBinary;->parseBinaryHeader()V
+Landroid/hardware/location/NanoAppBinary;->TAG:Ljava/lang/String;
+Landroid/hardware/location/NanoAppFilter;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/location/NanoAppFilter;->mAppId:J
+Landroid/hardware/location/NanoAppFilter;->mAppIdVendorMask:J
+Landroid/hardware/location/NanoAppFilter;->mAppVersion:I
+Landroid/hardware/location/NanoAppFilter;->mContextHubId:I
+Landroid/hardware/location/NanoAppFilter;->mVersionRestrictionMask:I
+Landroid/hardware/location/NanoAppFilter;->TAG:Ljava/lang/String;
+Landroid/hardware/location/NanoAppFilter;->versionsMatch(III)Z
+Landroid/hardware/location/NanoAppInstanceInfo;-><init>(IJII)V
+Landroid/hardware/location/NanoAppInstanceInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/location/NanoAppInstanceInfo;->mAppId:J
+Landroid/hardware/location/NanoAppInstanceInfo;->mAppVersion:I
+Landroid/hardware/location/NanoAppInstanceInfo;->mContexthubId:I
+Landroid/hardware/location/NanoAppInstanceInfo;->mHandle:I
+Landroid/hardware/location/NanoAppInstanceInfo;->mName:Ljava/lang/String;
+Landroid/hardware/location/NanoAppInstanceInfo;->mNeededExecMemBytes:I
+Landroid/hardware/location/NanoAppInstanceInfo;->mNeededReadMemBytes:I
+Landroid/hardware/location/NanoAppInstanceInfo;->mNeededSensors:[I
+Landroid/hardware/location/NanoAppInstanceInfo;->mNeededWriteMemBytes:I
+Landroid/hardware/location/NanoAppInstanceInfo;->mOutputEvents:[I
+Landroid/hardware/location/NanoAppInstanceInfo;->mPublisher:Ljava/lang/String;
+Landroid/hardware/location/NanoAppMessage;-><init>(JI[BZ)V
+Landroid/hardware/location/NanoAppMessage;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/location/NanoAppMessage;->DEBUG_LOG_NUM_BYTES:I
+Landroid/hardware/location/NanoAppMessage;->mIsBroadcasted:Z
+Landroid/hardware/location/NanoAppMessage;->mMessageBody:[B
+Landroid/hardware/location/NanoAppMessage;->mMessageType:I
+Landroid/hardware/location/NanoAppMessage;->mNanoAppId:J
+Landroid/hardware/location/NanoAppState;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/hardware/radio/ITuner$Stub$Proxy;->close()V
+Landroid/hardware/radio/ITuner$Stub$Proxy;->getConfiguration()Landroid/hardware/radio/RadioManager$BandConfig;
+Landroid/hardware/radio/ITuner$Stub$Proxy;->getImage(I)Landroid/graphics/Bitmap;
+Landroid/hardware/radio/ITuner$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/radio/ITuner$Stub$Proxy;->getParameters(Ljava/util/List;)Ljava/util/Map;
+Landroid/hardware/radio/ITuner$Stub$Proxy;->isClosed()Z
+Landroid/hardware/radio/ITuner$Stub$Proxy;->isConfigFlagSet(I)Z
+Landroid/hardware/radio/ITuner$Stub$Proxy;->isConfigFlagSupported(I)Z
+Landroid/hardware/radio/ITuner$Stub$Proxy;->isMuted()Z
+Landroid/hardware/radio/ITuner$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/radio/ITuner$Stub$Proxy;->scan(ZZ)V
+Landroid/hardware/radio/ITuner$Stub$Proxy;->setConfigFlag(IZ)V
+Landroid/hardware/radio/ITuner$Stub$Proxy;->setConfiguration(Landroid/hardware/radio/RadioManager$BandConfig;)V
+Landroid/hardware/radio/ITuner$Stub$Proxy;->setMuted(Z)V
+Landroid/hardware/radio/ITuner$Stub$Proxy;->setParameters(Ljava/util/Map;)Ljava/util/Map;
+Landroid/hardware/radio/ITuner$Stub$Proxy;->startBackgroundScan()Z
+Landroid/hardware/radio/ITuner$Stub$Proxy;->startProgramListUpdates(Landroid/hardware/radio/ProgramList$Filter;)V
+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;
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_cancel:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_cancelAnnouncement:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_close:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_getConfiguration:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_getImage:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_getParameters:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_isClosed:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_isConfigFlagSet:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_isConfigFlagSupported:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_isMuted:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_scan:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_setConfigFlag:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_setConfiguration:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_setMuted:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_setParameters:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_startBackgroundScan:I
+Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_startProgramListUpdates:I
+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
+Landroid/hardware/radio/ITuner;->getConfiguration()Landroid/hardware/radio/RadioManager$BandConfig;
+Landroid/hardware/radio/ITuner;->getImage(I)Landroid/graphics/Bitmap;
+Landroid/hardware/radio/ITuner;->getParameters(Ljava/util/List;)Ljava/util/Map;
+Landroid/hardware/radio/ITuner;->isClosed()Z
+Landroid/hardware/radio/ITuner;->isConfigFlagSet(I)Z
+Landroid/hardware/radio/ITuner;->isConfigFlagSupported(I)Z
+Landroid/hardware/radio/ITuner;->isMuted()Z
+Landroid/hardware/radio/ITuner;->scan(ZZ)V
+Landroid/hardware/radio/ITuner;->setConfigFlag(IZ)V
+Landroid/hardware/radio/ITuner;->setConfiguration(Landroid/hardware/radio/RadioManager$BandConfig;)V
+Landroid/hardware/radio/ITuner;->setMuted(Z)V
+Landroid/hardware/radio/ITuner;->setParameters(Ljava/util/Map;)Ljava/util/Map;
+Landroid/hardware/radio/ITuner;->startBackgroundScan()Z
+Landroid/hardware/radio/ITuner;->startProgramListUpdates(Landroid/hardware/radio/ProgramList$Filter;)V
+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;
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onAntennaState(Z)V
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onBackgroundScanAvailabilityChange(Z)V
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onBackgroundScanComplete()V
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onConfigurationChanged(Landroid/hardware/radio/RadioManager$BandConfig;)V
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onCurrentProgramInfoChanged(Landroid/hardware/radio/RadioManager$ProgramInfo;)V
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onEmergencyAnnouncement(Z)V
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onError(I)V
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onParametersUpdated(Ljava/util/Map;)V
+Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onProgramListChanged()V
+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;
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onAntennaState:I
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onBackgroundScanAvailabilityChange:I
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onBackgroundScanComplete:I
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onConfigurationChanged:I
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onCurrentProgramInfoChanged:I
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onEmergencyAnnouncement:I
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onError:I
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onParametersUpdated:I
+Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onProgramListChanged:I
+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
+Landroid/hardware/radio/ITunerCallback;->onConfigurationChanged(Landroid/hardware/radio/RadioManager$BandConfig;)V
+Landroid/hardware/radio/ITunerCallback;->onCurrentProgramInfoChanged(Landroid/hardware/radio/RadioManager$ProgramInfo;)V
+Landroid/hardware/radio/ITunerCallback;->onEmergencyAnnouncement(Z)V
+Landroid/hardware/radio/ITunerCallback;->onError(I)V
+Landroid/hardware/radio/ITunerCallback;->onParametersUpdated(Ljava/util/Map;)V
+Landroid/hardware/radio/ITunerCallback;->onProgramListChanged()V
+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;
+Landroid/hardware/radio/ProgramList$Chunk;->getModified()Ljava/util/Set;
+Landroid/hardware/radio/ProgramList$Chunk;->getRemoved()Ljava/util/Set;
+Landroid/hardware/radio/ProgramList$Chunk;->isComplete()Z
+Landroid/hardware/radio/ProgramList$Chunk;->isPurge()Z
+Landroid/hardware/radio/ProgramList$Chunk;->mComplete:Z
+Landroid/hardware/radio/ProgramList$Chunk;->mModified:Ljava/util/Set;
+Landroid/hardware/radio/ProgramList$Chunk;->mPurge:Z
+Landroid/hardware/radio/ProgramList$Chunk;->mRemoved:Ljava/util/Set;
+Landroid/hardware/radio/ProgramList$Filter;-><init>()V
+Landroid/hardware/radio/ProgramList$Filter;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/ProgramList$Filter;-><init>(Ljava/util/Map;)V
+Landroid/hardware/radio/ProgramList$Filter;->getVendorFilter()Ljava/util/Map;
+Landroid/hardware/radio/ProgramList$Filter;->mExcludeModifications:Z
+Landroid/hardware/radio/ProgramList$Filter;->mIdentifiers:Ljava/util/Set;
+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
+Landroid/hardware/radio/ProgramList;->mIsClosed:Z
+Landroid/hardware/radio/ProgramList;->mIsComplete:Z
+Landroid/hardware/radio/ProgramList;->mListCallbacks:Ljava/util/List;
+Landroid/hardware/radio/ProgramList;->mLock:Ljava/lang/Object;
+Landroid/hardware/radio/ProgramList;->mOnCloseListener:Landroid/hardware/radio/ProgramList$OnCloseListener;
+Landroid/hardware/radio/ProgramList;->mOnCompleteListeners:Ljava/util/List;
+Landroid/hardware/radio/ProgramList;->mPrograms:Ljava/util/Map;
+Landroid/hardware/radio/ProgramList;->putLocked(Landroid/hardware/radio/RadioManager$ProgramInfo;)V
+Landroid/hardware/radio/ProgramList;->removeLocked(Landroid/hardware/radio/ProgramSelector$Identifier;)V
+Landroid/hardware/radio/ProgramList;->setOnCloseListener(Landroid/hardware/radio/ProgramList$OnCloseListener;)V
+Landroid/hardware/radio/ProgramSelector$Identifier;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/ProgramSelector$Identifier;->mType:I
+Landroid/hardware/radio/ProgramSelector$Identifier;->mValue:J
+Landroid/hardware/radio/ProgramSelector;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/ProgramSelector;->isValidAmFmFrequency(ZI)Z
+Landroid/hardware/radio/ProgramSelector;->mPrimaryId:Landroid/hardware/radio/ProgramSelector$Identifier;
+Landroid/hardware/radio/ProgramSelector;->mProgramType:I
+Landroid/hardware/radio/ProgramSelector;->mSecondaryIds:[Landroid/hardware/radio/ProgramSelector$Identifier;
+Landroid/hardware/radio/ProgramSelector;->mVendorIds:[J
+Landroid/hardware/radio/RadioManager$AmBandConfig$Builder;->mDescriptor:Landroid/hardware/radio/RadioManager$BandDescriptor;
+Landroid/hardware/radio/RadioManager$AmBandConfig$Builder;->mStereo:Z
+Landroid/hardware/radio/RadioManager$AmBandConfig;-><init>(IIIIIZ)V
+Landroid/hardware/radio/RadioManager$AmBandConfig;-><init>(Landroid/hardware/radio/RadioManager$AmBandDescriptor;)V
+Landroid/hardware/radio/RadioManager$AmBandConfig;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioManager$AmBandConfig;->mStereo:Z
+Landroid/hardware/radio/RadioManager$AmBandDescriptor;-><init>(IIIIIZ)V
+Landroid/hardware/radio/RadioManager$AmBandDescriptor;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioManager$AmBandDescriptor;->mStereo:Z
+Landroid/hardware/radio/RadioManager$BandConfig;-><init>(IIIII)V
+Landroid/hardware/radio/RadioManager$BandConfig;-><init>(Landroid/hardware/radio/RadioManager$BandDescriptor;)V
+Landroid/hardware/radio/RadioManager$BandConfig;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioManager$BandConfig;->getDescriptor()Landroid/hardware/radio/RadioManager$BandDescriptor;
+Landroid/hardware/radio/RadioManager$BandConfig;->mDescriptor:Landroid/hardware/radio/RadioManager$BandDescriptor;
+Landroid/hardware/radio/RadioManager$BandDescriptor;-><init>(IIIII)V
+Landroid/hardware/radio/RadioManager$BandDescriptor;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioManager$BandDescriptor;->lookupTypeFromParcel(Landroid/os/Parcel;)I
+Landroid/hardware/radio/RadioManager$BandDescriptor;->mLowerLimit:I
+Landroid/hardware/radio/RadioManager$BandDescriptor;->mRegion:I
+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
+Landroid/hardware/radio/RadioManager$FmBandConfig$Builder;->mRds:Z
+Landroid/hardware/radio/RadioManager$FmBandConfig$Builder;->mStereo:Z
+Landroid/hardware/radio/RadioManager$FmBandConfig$Builder;->mTa:Z
+Landroid/hardware/radio/RadioManager$FmBandConfig;-><init>(IIIIIZZZZZ)V
+Landroid/hardware/radio/RadioManager$FmBandConfig;-><init>(Landroid/hardware/radio/RadioManager$FmBandDescriptor;)V
+Landroid/hardware/radio/RadioManager$FmBandConfig;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioManager$FmBandConfig;->mAf:Z
+Landroid/hardware/radio/RadioManager$FmBandConfig;->mEa:Z
+Landroid/hardware/radio/RadioManager$FmBandConfig;->mRds:Z
+Landroid/hardware/radio/RadioManager$FmBandConfig;->mStereo:Z
+Landroid/hardware/radio/RadioManager$FmBandConfig;->mTa:Z
+Landroid/hardware/radio/RadioManager$FmBandDescriptor;-><init>(IIIIIZZZZZ)V
+Landroid/hardware/radio/RadioManager$FmBandDescriptor;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioManager$FmBandDescriptor;->mAf:Z
+Landroid/hardware/radio/RadioManager$FmBandDescriptor;->mEa:Z
+Landroid/hardware/radio/RadioManager$FmBandDescriptor;->mRds:Z
+Landroid/hardware/radio/RadioManager$FmBandDescriptor;->mStereo:Z
+Landroid/hardware/radio/RadioManager$FmBandDescriptor;->mTa:Z
+Landroid/hardware/radio/RadioManager$ModuleProperties;-><init>(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZZ[Landroid/hardware/radio/RadioManager$BandDescriptor;Z[I[ILjava/util/Map;Ljava/util/Map;)V
+Landroid/hardware/radio/RadioManager$ModuleProperties;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioManager$ModuleProperties;->arrayToSet([I)Ljava/util/Set;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mBands:[Landroid/hardware/radio/RadioManager$BandDescriptor;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mClassId:I
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mDabFrequencyTable:Ljava/util/Map;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mId:I
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mImplementor:Ljava/lang/String;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mIsBgScanSupported:Z
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mIsCaptureSupported:Z
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mIsInitializationRequired:Z
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mNumAudioSources:I
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mNumTuners:I
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mProduct:Ljava/lang/String;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mSerial:Ljava/lang/String;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mServiceName:Ljava/lang/String;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mSupportedIdentifierTypes:Ljava/util/Set;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mSupportedProgramTypes:Ljava/util/Set;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mVendorInfo:Ljava/util/Map;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->mVersion:Ljava/lang/String;
+Landroid/hardware/radio/RadioManager$ModuleProperties;->setToArray(Ljava/util/Set;)[I
+Landroid/hardware/radio/RadioManager$ProgramInfo;-><init>(Landroid/hardware/radio/ProgramSelector;Landroid/hardware/radio/ProgramSelector$Identifier;Landroid/hardware/radio/ProgramSelector$Identifier;Ljava/util/Collection;IILandroid/hardware/radio/RadioMetadata;Ljava/util/Map;)V
+Landroid/hardware/radio/RadioManager$ProgramInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioManager$ProgramInfo;->FLAG_LIVE:I
+Landroid/hardware/radio/RadioManager$ProgramInfo;->FLAG_MUTED:I
+Landroid/hardware/radio/RadioManager$ProgramInfo;->FLAG_STEREO:I
+Landroid/hardware/radio/RadioManager$ProgramInfo;->FLAG_TRAFFIC_ANNOUNCEMENT:I
+Landroid/hardware/radio/RadioManager$ProgramInfo;->FLAG_TRAFFIC_PROGRAM:I
+Landroid/hardware/radio/RadioManager$ProgramInfo;->FLAG_TUNED:I
+Landroid/hardware/radio/RadioManager$ProgramInfo;->mInfoFlags:I
+Landroid/hardware/radio/RadioManager$ProgramInfo;->mLogicallyTunedTo:Landroid/hardware/radio/ProgramSelector$Identifier;
+Landroid/hardware/radio/RadioManager$ProgramInfo;->mMetadata:Landroid/hardware/radio/RadioMetadata;
+Landroid/hardware/radio/RadioManager$ProgramInfo;->mPhysicallyTunedTo:Landroid/hardware/radio/ProgramSelector$Identifier;
+Landroid/hardware/radio/RadioManager$ProgramInfo;->mRelatedContent:Ljava/util/Collection;
+Landroid/hardware/radio/RadioManager$ProgramInfo;->mSelector:Landroid/hardware/radio/ProgramSelector;
+Landroid/hardware/radio/RadioManager$ProgramInfo;->mSignalQuality:I
+Landroid/hardware/radio/RadioManager$ProgramInfo;->mVendorInfo:Ljava/util/Map;
+Landroid/hardware/radio/RadioManager;-><init>(Landroid/content/Context;)V
+Landroid/hardware/radio/RadioManager;->mAnnouncementListeners:Ljava/util/Map;
+Landroid/hardware/radio/RadioManager;->mContext:Landroid/content/Context;
+Landroid/hardware/radio/RadioManager;->mService:Landroid/hardware/radio/IRadioService;
+Landroid/hardware/radio/RadioManager;->nativeListModules(Ljava/util/List;)I
+Landroid/hardware/radio/RadioManager;->TAG:Ljava/lang/String;
+Landroid/hardware/radio/RadioMetadata$Builder;-><init>(Landroid/hardware/radio/RadioMetadata;I)V
+Landroid/hardware/radio/RadioMetadata$Builder;->mBundle:Landroid/os/Bundle;
+Landroid/hardware/radio/RadioMetadata$Builder;->scaleBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
+Landroid/hardware/radio/RadioMetadata$Clock;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioMetadata$Clock;->mTimezoneOffsetMinutes:I
+Landroid/hardware/radio/RadioMetadata$Clock;->mUtcEpochSeconds:J
+Landroid/hardware/radio/RadioMetadata;-><init>()V
+Landroid/hardware/radio/RadioMetadata;-><init>(Landroid/os/Bundle;)V
+Landroid/hardware/radio/RadioMetadata;-><init>(Landroid/os/Parcel;)V
+Landroid/hardware/radio/RadioMetadata;->getBitmapId(Ljava/lang/String;)I
+Landroid/hardware/radio/RadioMetadata;->getKeyFromNativeKey(I)Ljava/lang/String;
+Landroid/hardware/radio/RadioMetadata;->mBundle:Landroid/os/Bundle;
+Landroid/hardware/radio/RadioMetadata;->METADATA_KEYS_TYPE:Landroid/util/ArrayMap;
+Landroid/hardware/radio/RadioMetadata;->METADATA_TYPE_BITMAP:I
+Landroid/hardware/radio/RadioMetadata;->METADATA_TYPE_CLOCK:I
+Landroid/hardware/radio/RadioMetadata;->METADATA_TYPE_INT:I
+Landroid/hardware/radio/RadioMetadata;->METADATA_TYPE_INVALID:I
+Landroid/hardware/radio/RadioMetadata;->METADATA_TYPE_TEXT:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_ALBUM:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_ART:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_ARTIST:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_CLOCK:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_GENRE:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_ICON:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_INVALID:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_MAPPING:Landroid/util/SparseArray;
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_RBDS_PTY:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_RDS_PI:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_RDS_PS:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_RDS_PTY:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_RDS_RT:I
+Landroid/hardware/radio/RadioMetadata;->NATIVE_KEY_TITLE:I
+Landroid/hardware/radio/RadioMetadata;->putBitmapFromNative(I[B)I
+Landroid/hardware/radio/RadioMetadata;->putClockFromNative(IJI)I
+Landroid/hardware/radio/RadioMetadata;->putInt(Landroid/os/Bundle;Ljava/lang/String;I)V
+Landroid/hardware/radio/RadioMetadata;->putIntFromNative(II)I
+Landroid/hardware/radio/RadioMetadata;->putStringFromNative(ILjava/lang/String;)I
+Landroid/hardware/radio/RadioMetadata;->TAG:Ljava/lang/String;
+Landroid/hardware/radio/RadioTuner;->getMetadataImage(I)Landroid/graphics/Bitmap;
+Landroid/hardware/Sensor;-><init>()V
+Landroid/hardware/Sensor;->ADDITIONAL_INFO_MASK:I
+Landroid/hardware/Sensor;->ADDITIONAL_INFO_SHIFT:I
+Landroid/hardware/Sensor;->DATA_INJECTION_MASK:I
+Landroid/hardware/Sensor;->DATA_INJECTION_SHIFT:I
+Landroid/hardware/Sensor;->DIRECT_CHANNEL_MASK:I
+Landroid/hardware/Sensor;->DIRECT_CHANNEL_SHIFT:I
+Landroid/hardware/Sensor;->DIRECT_REPORT_MASK:I
+Landroid/hardware/Sensor;->DIRECT_REPORT_SHIFT:I
+Landroid/hardware/Sensor;->DYNAMIC_SENSOR_MASK:I
+Landroid/hardware/Sensor;->DYNAMIC_SENSOR_SHIFT:I
+Landroid/hardware/Sensor;->getMaxLengthValuesArray(Landroid/hardware/Sensor;I)I
+Landroid/hardware/Sensor;->getRequiredPermission()Ljava/lang/String;
+Landroid/hardware/Sensor;->mFifoMaxEventCount:I
+Landroid/hardware/Sensor;->mFifoReservedEventCount:I
+Landroid/hardware/Sensor;->mHandle:I
+Landroid/hardware/Sensor;->mId:I
+Landroid/hardware/Sensor;->mMaxDelay:I
+Landroid/hardware/Sensor;->mMaxRange:F
+Landroid/hardware/Sensor;->mMinDelay:I
+Landroid/hardware/Sensor;->mName:Ljava/lang/String;
+Landroid/hardware/Sensor;->mPower:F
+Landroid/hardware/Sensor;->mRequiredPermission:Ljava/lang/String;
+Landroid/hardware/Sensor;->mResolution:F
+Landroid/hardware/Sensor;->mStringType:Ljava/lang/String;
+Landroid/hardware/Sensor;->mType:I
+Landroid/hardware/Sensor;->mVendor:Ljava/lang/String;
+Landroid/hardware/Sensor;->mVersion:I
+Landroid/hardware/Sensor;->REPORTING_MODE_MASK:I
+Landroid/hardware/Sensor;->REPORTING_MODE_SHIFT:I
+Landroid/hardware/Sensor;->SENSOR_FLAG_WAKE_UP_SENSOR:I
+Landroid/hardware/Sensor;->SENSOR_STRING_TYPE_TILT_DETECTOR:Ljava/lang/String;
+Landroid/hardware/Sensor;->setRange(FF)V
+Landroid/hardware/Sensor;->setType(I)Z
+Landroid/hardware/Sensor;->setUuid(JJ)V
+Landroid/hardware/Sensor;->sSensorReportingModes:[I
+Landroid/hardware/Sensor;->STRING_TYPE_DEVICE_ORIENTATION:Ljava/lang/String;
+Landroid/hardware/Sensor;->STRING_TYPE_GLANCE_GESTURE:Ljava/lang/String;
+Landroid/hardware/Sensor;->STRING_TYPE_PICK_UP_GESTURE:Ljava/lang/String;
+Landroid/hardware/Sensor;->STRING_TYPE_WAKE_GESTURE:Ljava/lang/String;
+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;
+Landroid/hardware/SensorAdditionalInfo;->TYPE_CUSTOM_INFO:I
+Landroid/hardware/SensorAdditionalInfo;->TYPE_DEBUG_INFO:I
+Landroid/hardware/SensorAdditionalInfo;->TYPE_DOCK_STATE:I
+Landroid/hardware/SensorAdditionalInfo;->TYPE_HIGH_PERFORMANCE_MODE:I
+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
+Landroid/hardware/SensorDirectChannel;->mClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/hardware/SensorDirectChannel;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/hardware/SensorDirectChannel;->mManager:Landroid/hardware/SensorManager;
+Landroid/hardware/SensorDirectChannel;->mNativeHandle:I
+Landroid/hardware/SensorDirectChannel;->mSize:J
+Landroid/hardware/SensorDirectChannel;->mType:I
+Landroid/hardware/SensorManager;->cancelTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;Z)Z
+Landroid/hardware/SensorManager;->configureDirectChannelImpl(Landroid/hardware/SensorDirectChannel;Landroid/hardware/Sensor;I)I
+Landroid/hardware/SensorManager;->createDirectChannelImpl(Landroid/os/MemoryFile;Landroid/hardware/HardwareBuffer;)Landroid/hardware/SensorDirectChannel;
+Landroid/hardware/SensorManager;->destroyDirectChannel(Landroid/hardware/SensorDirectChannel;)V
+Landroid/hardware/SensorManager;->destroyDirectChannelImpl(Landroid/hardware/SensorDirectChannel;)V
+Landroid/hardware/SensorManager;->flushImpl(Landroid/hardware/SensorEventListener;)Z
+Landroid/hardware/SensorManager;->getDelay(I)I
+Landroid/hardware/SensorManager;->getFullDynamicSensorList()Ljava/util/List;
+Landroid/hardware/SensorManager;->getFullSensorList()Ljava/util/List;
+Landroid/hardware/SensorManager;->getLegacySensorManager()Landroid/hardware/LegacySensorManager;
+Landroid/hardware/SensorManager;->initDataInjectionImpl(Z)Z
+Landroid/hardware/SensorManager;->injectSensorDataImpl(Landroid/hardware/Sensor;[FIJ)Z
+Landroid/hardware/SensorManager;->mLegacySensorManager:Landroid/hardware/LegacySensorManager;
+Landroid/hardware/SensorManager;->mSensorListByType:Landroid/util/SparseArray;
+Landroid/hardware/SensorManager;->registerDynamicSensorCallbackImpl(Landroid/hardware/SensorManager$DynamicSensorCallback;Landroid/os/Handler;)V
+Landroid/hardware/SensorManager;->registerListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;II)Z
+Landroid/hardware/SensorManager;->remapCoordinateSystemImpl([FII[F)Z
+Landroid/hardware/SensorManager;->requestTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
+Landroid/hardware/SensorManager;->setOperationParameter(Landroid/hardware/SensorAdditionalInfo;)Z
+Landroid/hardware/SensorManager;->setOperationParameterImpl(Landroid/hardware/SensorAdditionalInfo;)Z
+Landroid/hardware/SensorManager;->sTempMatrix:[F
+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;
+Landroid/hardware/SerialPort;->mName:Ljava/lang/String;
+Landroid/hardware/SerialPort;->native_close()V
+Landroid/hardware/SerialPort;->native_open(Ljava/io/FileDescriptor;I)V
+Landroid/hardware/SerialPort;->native_read_array([BI)I
+Landroid/hardware/SerialPort;->native_read_direct(Ljava/nio/ByteBuffer;I)I
+Landroid/hardware/SerialPort;->native_send_break()V
+Landroid/hardware/SerialPort;->native_write_array([BI)V
+Landroid/hardware/SerialPort;->native_write_direct(Ljava/nio/ByteBuffer;I)V
+Landroid/hardware/SerialPort;->open(Landroid/os/ParcelFileDescriptor;I)V
+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;
+Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->onError(I)V
+Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->onGenericSoundTriggerDetected(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
+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;
+Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->TRANSACTION_onError:I
+Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->TRANSACTION_onGenericSoundTriggerDetected:I
+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;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->EXTRA_VOICE_KEYPHRASE_HINT_TEXT:Ljava/lang/String;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->EXTRA_VOICE_KEYPHRASE_LOCALE:Ljava/lang/String;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->getKeyphraseFromTypedArray(Landroid/content/res/TypedArray;Ljava/lang/String;Ljava/util/List;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->getKeyphraseMetadata(Ljava/lang/String;Ljava/util/Locale;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->getKeyphraseMetadataFromApplicationInfo(Landroid/content/pm/PackageManager;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->getManageKeyphraseIntent(ILjava/lang/String;Ljava/util/Locale;)Landroid/content/Intent;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->getParseError()Ljava/lang/String;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->listKeyphraseMetadata()[Landroid/hardware/soundtrigger/KeyphraseMetadata;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->mKeyphrasePackageMap:Ljava/util/Map;
+Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->mKeyphrases:[Landroid/hardware/soundtrigger/KeyphraseMetadata;
+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;
+Landroid/hardware/soundtrigger/KeyphraseMetadata;->recognitionModeFlags:I
+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;
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->implementor:Ljava/lang/String;
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->maxBufferMs:I
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->maxKeyphrases:I
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->maxUsers:I
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->powerConsumptionMw:I
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->recognitionModes:I
+Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->returnsTriggerInEvent:Z
+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;
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->captureDelayMs:I
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->captureFormat:Landroid/media/AudioFormat;
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->capturePreambleMs:I
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->describeContents()I
+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
+Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;->onSoundModelUpdate(Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;)V
+Landroid/hardware/soundtrigger/SoundTrigger;-><init>()V
+Landroid/hardware/soundtrigger/SoundTrigger;->RECOGNITION_MODE_USER_AUTHENTICATION:I
+Landroid/hardware/soundtrigger/SoundTrigger;->RECOGNITION_MODE_USER_IDENTIFICATION:I
+Landroid/hardware/soundtrigger/SoundTrigger;->RECOGNITION_MODE_VOICE_TRIGGER:I
+Landroid/hardware/soundtrigger/SoundTrigger;->RECOGNITION_STATUS_ABORT:I
+Landroid/hardware/soundtrigger/SoundTrigger;->RECOGNITION_STATUS_FAILURE:I
+Landroid/hardware/soundtrigger/SoundTrigger;->RECOGNITION_STATUS_SUCCESS:I
+Landroid/hardware/soundtrigger/SoundTrigger;->SERVICE_STATE_DISABLED:I
+Landroid/hardware/soundtrigger/SoundTrigger;->SERVICE_STATE_ENABLED:I
+Landroid/hardware/soundtrigger/SoundTrigger;->SOUNDMODEL_STATUS_UPDATED:I
+Landroid/hardware/soundtrigger/SoundTrigger;->STATUS_BAD_VALUE:I
+Landroid/hardware/soundtrigger/SoundTrigger;->STATUS_DEAD_OBJECT:I
+Landroid/hardware/soundtrigger/SoundTrigger;->STATUS_ERROR:I
+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
+Landroid/hardware/soundtrigger/SoundTriggerModule;->EVENT_SERVICE_STATE_CHANGE:I
+Landroid/hardware/soundtrigger/SoundTriggerModule;->EVENT_SOUNDMODEL:I
+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
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->disableSensor(Landroid/hardware/Sensor;)I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->dispose()V
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->dispose(Z)V
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->enableSensor(Landroid/hardware/Sensor;II)I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->flush()I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->hasSensors()Z
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->injectSensorDataBase(I[FIJ)I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->mActiveSensors:Landroid/util/SparseBooleanArray;
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->mManager:Landroid/hardware/SystemSensorManager;
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->mNativeSensorEventQueue:J
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->mSensorAccuracies:Landroid/util/SparseIntArray;
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->nativeDestroySensorEventQueue(J)V
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->nativeDisableSensor(JI)I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->nativeEnableSensor(JIII)I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->nativeFlushSensor(J)I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->nativeInitBaseEventQueue(JLjava/lang/ref/WeakReference;Landroid/os/MessageQueue;Ljava/lang/String;ILjava/lang/String;)J
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->nativeInjectSensorData(JI[FIJ)I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->OPERATING_MODE_DATA_INJECTION:I
+Landroid/hardware/SystemSensorManager$BaseEventQueue;->OPERATING_MODE_NORMAL:I
+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
+Landroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchFlushCompleteEvent(I)V
+Landroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchSensorEvent(I[FIJ)V
+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
+Landroid/hardware/SystemSensorManager$TriggerEventQueue;->dispatchSensorEvent(I[FIJ)V
+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
+Landroid/hardware/SystemSensorManager;->configureDirectChannelImpl(Landroid/hardware/SensorDirectChannel;Landroid/hardware/Sensor;I)I
+Landroid/hardware/SystemSensorManager;->createDirectChannelImpl(Landroid/os/MemoryFile;Landroid/hardware/HardwareBuffer;)Landroid/hardware/SensorDirectChannel;
+Landroid/hardware/SystemSensorManager;->DEBUG_DYNAMIC_SENSOR:Z
+Landroid/hardware/SystemSensorManager;->destroyDirectChannelImpl(Landroid/hardware/SensorDirectChannel;)V
+Landroid/hardware/SystemSensorManager;->diffSortedSensorList(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
+Landroid/hardware/SystemSensorManager;->flushImpl(Landroid/hardware/SensorEventListener;)Z
+Landroid/hardware/SystemSensorManager;->getFullDynamicSensorList()Ljava/util/List;
+Landroid/hardware/SystemSensorManager;->getFullSensorList()Ljava/util/List;
+Landroid/hardware/SystemSensorManager;->initDataInjectionImpl(Z)Z
+Landroid/hardware/SystemSensorManager;->injectSensorDataImpl(Landroid/hardware/Sensor;[FIJ)Z
+Landroid/hardware/SystemSensorManager;->MAX_LISTENER_COUNT:I
+Landroid/hardware/SystemSensorManager;->mContext:Landroid/content/Context;
+Landroid/hardware/SystemSensorManager;->mDynamicSensorBroadcastReceiver:Landroid/content/BroadcastReceiver;
+Landroid/hardware/SystemSensorManager;->mDynamicSensorCallbacks:Ljava/util/HashMap;
+Landroid/hardware/SystemSensorManager;->mDynamicSensorListDirty:Z
+Landroid/hardware/SystemSensorManager;->mFullDynamicSensorsList:Ljava/util/List;
+Landroid/hardware/SystemSensorManager;->mFullSensorsList:Ljava/util/ArrayList;
+Landroid/hardware/SystemSensorManager;->mHandleToSensor:Ljava/util/HashMap;
+Landroid/hardware/SystemSensorManager;->MIN_DIRECT_CHANNEL_BUFFER_SIZE:I
+Landroid/hardware/SystemSensorManager;->mMainLooper:Landroid/os/Looper;
+Landroid/hardware/SystemSensorManager;->mNativeInstance:J
+Landroid/hardware/SystemSensorManager;->mSensorListeners:Ljava/util/HashMap;
+Landroid/hardware/SystemSensorManager;->mTargetSdkLevel:I
+Landroid/hardware/SystemSensorManager;->mTriggerListeners:Ljava/util/HashMap;
+Landroid/hardware/SystemSensorManager;->nativeClassInit()V
+Landroid/hardware/SystemSensorManager;->nativeConfigDirectChannel(JIII)I
+Landroid/hardware/SystemSensorManager;->nativeCreate(Ljava/lang/String;)J
+Landroid/hardware/SystemSensorManager;->nativeCreateDirectChannel(JJIILandroid/hardware/HardwareBuffer;)I
+Landroid/hardware/SystemSensorManager;->nativeDestroyDirectChannel(JI)V
+Landroid/hardware/SystemSensorManager;->nativeGetDynamicSensors(JLjava/util/List;)V
+Landroid/hardware/SystemSensorManager;->nativeGetSensorAtIndex(JLandroid/hardware/Sensor;I)Z
+Landroid/hardware/SystemSensorManager;->nativeIsDataInjectionEnabled(J)Z
+Landroid/hardware/SystemSensorManager;->nativeSetOperationParameter(JII[F[I)I
+Landroid/hardware/SystemSensorManager;->registerDynamicSensorCallbackImpl(Landroid/hardware/SensorManager$DynamicSensorCallback;Landroid/os/Handler;)V
+Landroid/hardware/SystemSensorManager;->registerListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;II)Z
+Landroid/hardware/SystemSensorManager;->requestTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
+Landroid/hardware/SystemSensorManager;->setOperationParameterImpl(Landroid/hardware/SensorAdditionalInfo;)Z
+Landroid/hardware/SystemSensorManager;->setupDynamicSensorBroadcastReceiver()V
+Landroid/hardware/SystemSensorManager;->sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
+Landroid/hardware/SystemSensorManager;->sLock:Ljava/lang/Object;
+Landroid/hardware/SystemSensorManager;->sNativeClassInited:Z
+Landroid/hardware/SystemSensorManager;->teardownDynamicSensorBroadcastReceiver()V
+Landroid/hardware/SystemSensorManager;->unregisterDynamicSensorCallbackImpl(Landroid/hardware/SensorManager$DynamicSensorCallback;)V
+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
+Landroid/hardware/usb/AccessoryFilter;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+Landroid/hardware/usb/AccessoryFilter;->matches(Landroid/hardware/usb/UsbAccessory;)Z
+Landroid/hardware/usb/AccessoryFilter;->mManufacturer:Ljava/lang/String;
+Landroid/hardware/usb/AccessoryFilter;->mModel:Ljava/lang/String;
+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
+Landroid/hardware/usb/DeviceFilter;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+Landroid/hardware/usb/DeviceFilter;->matches(III)Z
+Landroid/hardware/usb/DeviceFilter;->matches(Landroid/hardware/usb/UsbDevice;)Z
+Landroid/hardware/usb/DeviceFilter;->mClass:I
+Landroid/hardware/usb/DeviceFilter;->mManufacturerName:Ljava/lang/String;
+Landroid/hardware/usb/DeviceFilter;->mProductId:I
+Landroid/hardware/usb/DeviceFilter;->mProductName:Ljava/lang/String;
+Landroid/hardware/usb/DeviceFilter;->mProtocol:I
+Landroid/hardware/usb/DeviceFilter;->mSerialNumber:Ljava/lang/String;
+Landroid/hardware/usb/DeviceFilter;->mSubclass:I
+Landroid/hardware/usb/DeviceFilter;->mVendorId:I
+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
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->denyUsbDebugging()V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->getControlFd(J)Landroid/os/ParcelFileDescriptor;
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->getCurrentFunctions()J
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->getDeviceList(Landroid/os/Bundle;)V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->getPorts()[Landroid/hardware/usb/UsbPort;
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->getPortStatus(Ljava/lang/String;)Landroid/hardware/usb/UsbPortStatus;
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->getScreenUnlockedFunctions()J
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->grantAccessoryPermission(Landroid/hardware/usb/UsbAccessory;I)V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->grantDevicePermission(Landroid/hardware/usb/UsbDevice;I)V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->hasAccessoryPermission(Landroid/hardware/usb/UsbAccessory;)Z
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->hasDefaults(Ljava/lang/String;I)Z
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->hasDevicePermission(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;)Z
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->isFunctionEnabled(Ljava/lang/String;)Z
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->openAccessory(Landroid/hardware/usb/UsbAccessory;)Landroid/os/ParcelFileDescriptor;
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->openDevice(Ljava/lang/String;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->requestAccessoryPermission(Landroid/hardware/usb/UsbAccessory;Ljava/lang/String;Landroid/app/PendingIntent;)V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->requestDevicePermission(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;Landroid/app/PendingIntent;)V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->setAccessoryPackage(Landroid/hardware/usb/UsbAccessory;Ljava/lang/String;I)V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->setCurrentFunction(Ljava/lang/String;Z)V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->setCurrentFunctions(J)V
+Landroid/hardware/usb/IUsbManager$Stub$Proxy;->setDevicePackage(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;I)V
+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
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_clearDefaults:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_clearUsbDebuggingKeys:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_denyUsbDebugging:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_getControlFd:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_getCurrentAccessory:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_getCurrentFunctions:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_getDeviceList:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_getPorts:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_getPortStatus:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_getScreenUnlockedFunctions:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_grantAccessoryPermission:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_grantDevicePermission:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_hasAccessoryPermission:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_hasDefaults:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_hasDevicePermission:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_isFunctionEnabled:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_openAccessory:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_openDevice:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_requestAccessoryPermission:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_requestDevicePermission:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_setAccessoryPackage:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_setCurrentFunction:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_setCurrentFunctions:I
+Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_setDevicePackage:I
+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
+Landroid/hardware/usb/IUsbManager;->denyUsbDebugging()V
+Landroid/hardware/usb/IUsbManager;->getControlFd(J)Landroid/os/ParcelFileDescriptor;
+Landroid/hardware/usb/IUsbManager;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
+Landroid/hardware/usb/IUsbManager;->getCurrentFunctions()J
+Landroid/hardware/usb/IUsbManager;->getDeviceList(Landroid/os/Bundle;)V
+Landroid/hardware/usb/IUsbManager;->getPorts()[Landroid/hardware/usb/UsbPort;
+Landroid/hardware/usb/IUsbManager;->getPortStatus(Ljava/lang/String;)Landroid/hardware/usb/UsbPortStatus;
+Landroid/hardware/usb/IUsbManager;->getScreenUnlockedFunctions()J
+Landroid/hardware/usb/IUsbManager;->grantAccessoryPermission(Landroid/hardware/usb/UsbAccessory;I)V
+Landroid/hardware/usb/IUsbManager;->grantDevicePermission(Landroid/hardware/usb/UsbDevice;I)V
+Landroid/hardware/usb/IUsbManager;->hasAccessoryPermission(Landroid/hardware/usb/UsbAccessory;)Z
+Landroid/hardware/usb/IUsbManager;->hasDefaults(Ljava/lang/String;I)Z
+Landroid/hardware/usb/IUsbManager;->hasDevicePermission(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;)Z
+Landroid/hardware/usb/IUsbManager;->isFunctionEnabled(Ljava/lang/String;)Z
+Landroid/hardware/usb/IUsbManager;->openAccessory(Landroid/hardware/usb/UsbAccessory;)Landroid/os/ParcelFileDescriptor;
+Landroid/hardware/usb/IUsbManager;->openDevice(Ljava/lang/String;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
+Landroid/hardware/usb/IUsbManager;->requestAccessoryPermission(Landroid/hardware/usb/UsbAccessory;Ljava/lang/String;Landroid/app/PendingIntent;)V
+Landroid/hardware/usb/IUsbManager;->requestDevicePermission(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;Landroid/app/PendingIntent;)V
+Landroid/hardware/usb/IUsbManager;->setAccessoryPackage(Landroid/hardware/usb/UsbAccessory;Ljava/lang/String;I)V
+Landroid/hardware/usb/IUsbManager;->setCurrentFunction(Ljava/lang/String;Z)V
+Landroid/hardware/usb/IUsbManager;->setCurrentFunctions(J)V
+Landroid/hardware/usb/IUsbManager;->setDevicePackage(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;I)V
+Landroid/hardware/usb/IUsbManager;->setPortRoles(Ljava/lang/String;II)V
+Landroid/hardware/usb/IUsbManager;->setScreenUnlockedFunctions(J)V
+Landroid/hardware/usb/IUsbManager;->setUsbDeviceConnectionHandler(Landroid/content/ComponentName;)V
+Landroid/hardware/usb/UsbAccessory;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/hardware/usb/UsbAccessory;-><init>([Ljava/lang/String;)V
+Landroid/hardware/usb/UsbAccessory;->compare(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/hardware/usb/UsbAccessory;->DESCRIPTION_STRING:I
+Landroid/hardware/usb/UsbAccessory;->MANUFACTURER_STRING:I
+Landroid/hardware/usb/UsbAccessory;->mDescription:Ljava/lang/String;
+Landroid/hardware/usb/UsbAccessory;->mManufacturer:Ljava/lang/String;
+Landroid/hardware/usb/UsbAccessory;->mModel:Ljava/lang/String;
+Landroid/hardware/usb/UsbAccessory;->MODEL_STRING:I
+Landroid/hardware/usb/UsbAccessory;->mSerial:Ljava/lang/String;
+Landroid/hardware/usb/UsbAccessory;->mUri:Ljava/lang/String;
+Landroid/hardware/usb/UsbAccessory;->mVersion:Ljava/lang/String;
+Landroid/hardware/usb/UsbAccessory;->SERIAL_STRING:I
+Landroid/hardware/usb/UsbAccessory;->TAG:Ljava/lang/String;
+Landroid/hardware/usb/UsbAccessory;->URI_STRING:I
+Landroid/hardware/usb/UsbAccessory;->VERSION_STRING:I
+Landroid/hardware/usb/UsbConfiguration;-><init>(ILjava/lang/String;II)V
+Landroid/hardware/usb/UsbConfiguration;->ATTR_REMOTE_WAKEUP:I
+Landroid/hardware/usb/UsbConfiguration;->ATTR_SELF_POWERED:I
+Landroid/hardware/usb/UsbConfiguration;->getAttributes()I
+Landroid/hardware/usb/UsbConfiguration;->mAttributes:I
+Landroid/hardware/usb/UsbConfiguration;->mId:I
+Landroid/hardware/usb/UsbConfiguration;->mInterfaces:[Landroid/os/Parcelable;
+Landroid/hardware/usb/UsbConfiguration;->mMaxPower:I
+Landroid/hardware/usb/UsbConfiguration;->mName:Ljava/lang/String;
+Landroid/hardware/usb/UsbConfiguration;->setInterfaces([Landroid/os/Parcelable;)V
+Landroid/hardware/usb/UsbDevice;-><init>(Ljava/lang/String;IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/hardware/usb/UsbDevice;->DEBUG:Z
+Landroid/hardware/usb/UsbDevice;->getInterfaceList()[Landroid/hardware/usb/UsbInterface;
+Landroid/hardware/usb/UsbDevice;->mClass:I
+Landroid/hardware/usb/UsbDevice;->mConfigurations:[Landroid/os/Parcelable;
+Landroid/hardware/usb/UsbDevice;->mManufacturerName:Ljava/lang/String;
+Landroid/hardware/usb/UsbDevice;->mName:Ljava/lang/String;
+Landroid/hardware/usb/UsbDevice;->mProductId:I
+Landroid/hardware/usb/UsbDevice;->mProductName:Ljava/lang/String;
+Landroid/hardware/usb/UsbDevice;->mProtocol:I
+Landroid/hardware/usb/UsbDevice;->mSerialNumber:Ljava/lang/String;
+Landroid/hardware/usb/UsbDevice;->mSubclass:I
+Landroid/hardware/usb/UsbDevice;->mVendorId:I
+Landroid/hardware/usb/UsbDevice;->mVersion:Ljava/lang/String;
+Landroid/hardware/usb/UsbDevice;->native_get_device_id(Ljava/lang/String;)I
+Landroid/hardware/usb/UsbDevice;->native_get_device_name(I)Ljava/lang/String;
+Landroid/hardware/usb/UsbDevice;->setConfigurations([Landroid/os/Parcelable;)V
+Landroid/hardware/usb/UsbDevice;->TAG:Ljava/lang/String;
+Landroid/hardware/usb/UsbDeviceConnection;-><init>(Landroid/hardware/usb/UsbDevice;)V
+Landroid/hardware/usb/UsbDeviceConnection;->checkBounds([BII)V
+Landroid/hardware/usb/UsbDeviceConnection;->getContext()Landroid/content/Context;
+Landroid/hardware/usb/UsbDeviceConnection;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/hardware/usb/UsbDeviceConnection;->mContext:Landroid/content/Context;
+Landroid/hardware/usb/UsbDeviceConnection;->mDevice:Landroid/hardware/usb/UsbDevice;
+Landroid/hardware/usb/UsbDeviceConnection;->native_bulk_request(I[BIII)I
+Landroid/hardware/usb/UsbDeviceConnection;->native_claim_interface(IZ)Z
+Landroid/hardware/usb/UsbDeviceConnection;->native_close()V
+Landroid/hardware/usb/UsbDeviceConnection;->native_control_request(IIII[BIII)I
+Landroid/hardware/usb/UsbDeviceConnection;->native_get_desc()[B
+Landroid/hardware/usb/UsbDeviceConnection;->native_get_fd()I
+Landroid/hardware/usb/UsbDeviceConnection;->native_get_serial()Ljava/lang/String;
+Landroid/hardware/usb/UsbDeviceConnection;->native_open(Ljava/lang/String;Ljava/io/FileDescriptor;)Z
+Landroid/hardware/usb/UsbDeviceConnection;->native_release_interface(I)Z
+Landroid/hardware/usb/UsbDeviceConnection;->native_request_wait(J)Landroid/hardware/usb/UsbRequest;
+Landroid/hardware/usb/UsbDeviceConnection;->native_reset_device()Z
+Landroid/hardware/usb/UsbDeviceConnection;->native_set_configuration(I)Z
+Landroid/hardware/usb/UsbDeviceConnection;->native_set_interface(II)Z
+Landroid/hardware/usb/UsbDeviceConnection;->open(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/content/Context;)Z
+Landroid/hardware/usb/UsbDeviceConnection;->TAG:Ljava/lang/String;
+Landroid/hardware/usb/UsbEndpoint;-><init>(IIII)V
+Landroid/hardware/usb/UsbEndpoint;->mAddress:I
+Landroid/hardware/usb/UsbEndpoint;->mAttributes:I
+Landroid/hardware/usb/UsbEndpoint;->mInterval:I
+Landroid/hardware/usb/UsbEndpoint;->mMaxPacketSize:I
+Landroid/hardware/usb/UsbInterface;-><init>(IILjava/lang/String;III)V
+Landroid/hardware/usb/UsbInterface;->mAlternateSetting:I
+Landroid/hardware/usb/UsbInterface;->mClass:I
+Landroid/hardware/usb/UsbInterface;->mEndpoints:[Landroid/os/Parcelable;
+Landroid/hardware/usb/UsbInterface;->mId:I
+Landroid/hardware/usb/UsbInterface;->mName:Ljava/lang/String;
+Landroid/hardware/usb/UsbInterface;->mProtocol:I
+Landroid/hardware/usb/UsbInterface;->mSubclass:I
+Landroid/hardware/usb/UsbInterface;->setEndpoints([Landroid/os/Parcelable;)V
+Landroid/hardware/usb/UsbManager;->ACTION_USB_PORT_CHANGED:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->areSettableFunctions(J)Z
+Landroid/hardware/usb/UsbManager;->EXTRA_PORT:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->EXTRA_PORT_STATUS:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->FUNCTION_ACCESSORY:J
+Landroid/hardware/usb/UsbManager;->FUNCTION_ADB:J
+Landroid/hardware/usb/UsbManager;->FUNCTION_AUDIO_SOURCE:J
+Landroid/hardware/usb/UsbManager;->FUNCTION_MIDI:J
+Landroid/hardware/usb/UsbManager;->FUNCTION_MTP:J
+Landroid/hardware/usb/UsbManager;->FUNCTION_NAME_TO_CODE:Ljava/util/Map;
+Landroid/hardware/usb/UsbManager;->FUNCTION_NONE:J
+Landroid/hardware/usb/UsbManager;->FUNCTION_PTP:J
+Landroid/hardware/usb/UsbManager;->FUNCTION_RNDIS:J
+Landroid/hardware/usb/UsbManager;->getControlFd(J)Landroid/os/ParcelFileDescriptor;
+Landroid/hardware/usb/UsbManager;->getCurrentFunctions()J
+Landroid/hardware/usb/UsbManager;->getScreenUnlockedFunctions()J
+Landroid/hardware/usb/UsbManager;->grantPermission(Landroid/hardware/usb/UsbDevice;)V
+Landroid/hardware/usb/UsbManager;->grantPermission(Landroid/hardware/usb/UsbDevice;I)V
+Landroid/hardware/usb/UsbManager;->mContext:Landroid/content/Context;
+Landroid/hardware/usb/UsbManager;->mService:Landroid/hardware/usb/IUsbManager;
+Landroid/hardware/usb/UsbManager;->setCurrentFunctions(J)V
+Landroid/hardware/usb/UsbManager;->setScreenUnlockedFunctions(J)V
+Landroid/hardware/usb/UsbManager;->SETTABLE_FUNCTIONS:J
+Landroid/hardware/usb/UsbManager;->setUsbDeviceConnectionHandler(Landroid/content/ComponentName;)V
+Landroid/hardware/usb/UsbManager;->TAG:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->usbFunctionsFromString(Ljava/lang/String;)J
+Landroid/hardware/usb/UsbManager;->usbFunctionsToString(J)Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->USB_CONFIGURED:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->USB_FUNCTION_ACCESSORY:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->USB_FUNCTION_ADB:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->USB_FUNCTION_AUDIO_SOURCE:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->USB_FUNCTION_MIDI:Ljava/lang/String;
+Landroid/hardware/usb/UsbManager;->USB_FUNCTION_MTP:Ljava/lang/String;
+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
+Landroid/hardware/usb/UsbPort;->checkPowerRole(I)V
+Landroid/hardware/usb/UsbPort;->checkRoles(II)V
+Landroid/hardware/usb/UsbPort;->combineRolesAsBit(II)I
+Landroid/hardware/usb/UsbPort;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/hardware/usb/UsbPort;->dataRoleToString(I)Ljava/lang/String;
+Landroid/hardware/usb/UsbPort;->DATA_ROLE_DEVICE:I
+Landroid/hardware/usb/UsbPort;->DATA_ROLE_HOST:I
+Landroid/hardware/usb/UsbPort;->DATA_ROLE_NONE:I
+Landroid/hardware/usb/UsbPort;->getId()Ljava/lang/String;
+Landroid/hardware/usb/UsbPort;->getSupportedModes()I
+Landroid/hardware/usb/UsbPort;->isModeSupported(I)Z
+Landroid/hardware/usb/UsbPort;->mId:Ljava/lang/String;
+Landroid/hardware/usb/UsbPort;->modeToString(I)Ljava/lang/String;
+Landroid/hardware/usb/UsbPort;->MODE_AUDIO_ACCESSORY:I
+Landroid/hardware/usb/UsbPort;->MODE_DEBUG_ACCESSORY:I
+Landroid/hardware/usb/UsbPort;->MODE_DFP:I
+Landroid/hardware/usb/UsbPort;->MODE_DUAL:I
+Landroid/hardware/usb/UsbPort;->MODE_NONE:I
+Landroid/hardware/usb/UsbPort;->MODE_UFP:I
+Landroid/hardware/usb/UsbPort;->mSupportedModes:I
+Landroid/hardware/usb/UsbPort;->NUM_DATA_ROLES:I
+Landroid/hardware/usb/UsbPort;->powerRoleToString(I)Ljava/lang/String;
+Landroid/hardware/usb/UsbPort;->POWER_ROLE_NONE:I
+Landroid/hardware/usb/UsbPort;->POWER_ROLE_OFFSET:I
+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
+Landroid/hardware/usb/UsbPortStatus;->mCurrentMode:I
+Landroid/hardware/usb/UsbPortStatus;->mCurrentPowerRole:I
+Landroid/hardware/usb/UsbPortStatus;->mSupportedRoleCombinations:I
+Landroid/hardware/usb/UsbRequest;->dequeue(Z)V
+Landroid/hardware/usb/UsbRequest;->MAX_USBFS_BUFFER_SIZE:I
+Landroid/hardware/usb/UsbRequest;->mClientData:Ljava/lang/Object;
+Landroid/hardware/usb/UsbRequest;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/hardware/usb/UsbRequest;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
+Landroid/hardware/usb/UsbRequest;->mEndpoint:Landroid/hardware/usb/UsbEndpoint;
+Landroid/hardware/usb/UsbRequest;->mIsUsingNewQueue:Z
+Landroid/hardware/usb/UsbRequest;->mLock:Ljava/lang/Object;
+Landroid/hardware/usb/UsbRequest;->mTempBuffer:Ljava/nio/ByteBuffer;
+Landroid/hardware/usb/UsbRequest;->native_cancel()Z
+Landroid/hardware/usb/UsbRequest;->native_close()V
+Landroid/hardware/usb/UsbRequest;->native_dequeue_array([BIZ)I
+Landroid/hardware/usb/UsbRequest;->native_dequeue_direct()I
+Landroid/hardware/usb/UsbRequest;->native_init(Landroid/hardware/usb/UsbDeviceConnection;IIII)Z
+Landroid/hardware/usb/UsbRequest;->native_queue(Ljava/nio/ByteBuffer;II)Z
+Landroid/hardware/usb/UsbRequest;->native_queue_array([BIZ)Z
+Landroid/hardware/usb/UsbRequest;->native_queue_direct(Ljava/nio/ByteBuffer;IZ)Z
+Landroid/hardware/usb/UsbRequest;->TAG:Ljava/lang/String;
+Landroid/icu/impl/BMPSet;->bmpBlockBits:[I
+Landroid/icu/impl/BMPSet;->containsSlow(III)Z
+Landroid/icu/impl/BMPSet;->findCodePoint(III)I
+Landroid/icu/impl/BMPSet;->initBits()V
+Landroid/icu/impl/BMPSet;->latin1Contains:[Z
+Landroid/icu/impl/BMPSet;->list4kStarts:[I
+Landroid/icu/impl/BMPSet;->list:[I
+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
+Landroid/icu/impl/CalendarAstronomer;->DEG_RAD:D
+Landroid/icu/impl/CalendarAstronomer;->eclipObliquity:D
+Landroid/icu/impl/CalendarAstronomer;->eclipticObliquity()D
+Landroid/icu/impl/CalendarAstronomer;->EPOCH_2000_MS:J
+Landroid/icu/impl/CalendarAstronomer;->fGmtOffset:J
+Landroid/icu/impl/CalendarAstronomer;->fLatitude:D
+Landroid/icu/impl/CalendarAstronomer;->fLongitude:D
+Landroid/icu/impl/CalendarAstronomer;->getSiderealOffset()D
+Landroid/icu/impl/CalendarAstronomer;->getSunLongitude(D)[D
+Landroid/icu/impl/CalendarAstronomer;->INVALID:D
+Landroid/icu/impl/CalendarAstronomer;->JD_EPOCH:D
+Landroid/icu/impl/CalendarAstronomer;->julianCentury:D
+Landroid/icu/impl/CalendarAstronomer;->julianDay:D
+Landroid/icu/impl/CalendarAstronomer;->lstToUT(D)J
+Landroid/icu/impl/CalendarAstronomer;->meanAnomalySun:D
+Landroid/icu/impl/CalendarAstronomer;->moonA:D
+Landroid/icu/impl/CalendarAstronomer;->moonE:D
+Landroid/icu/impl/CalendarAstronomer;->moonEclipLong:D
+Landroid/icu/impl/CalendarAstronomer;->moonI:D
+Landroid/icu/impl/CalendarAstronomer;->moonL0:D
+Landroid/icu/impl/CalendarAstronomer;->moonLongitude:D
+Landroid/icu/impl/CalendarAstronomer;->moonN0:D
+Landroid/icu/impl/CalendarAstronomer;->moonP0:D
+Landroid/icu/impl/CalendarAstronomer;->moonPi:D
+Landroid/icu/impl/CalendarAstronomer;->moonPosition:Landroid/icu/impl/CalendarAstronomer$Equatorial;
+Landroid/icu/impl/CalendarAstronomer;->moonT0:D
+Landroid/icu/impl/CalendarAstronomer;->norm2PI(D)D
+Landroid/icu/impl/CalendarAstronomer;->normalize(DD)D
+Landroid/icu/impl/CalendarAstronomer;->normPI(D)D
+Landroid/icu/impl/CalendarAstronomer;->PI2:D
+Landroid/icu/impl/CalendarAstronomer;->PI:D
+Landroid/icu/impl/CalendarAstronomer;->radToDms(D)Ljava/lang/String;
+Landroid/icu/impl/CalendarAstronomer;->radToHms(D)Ljava/lang/String;
+Landroid/icu/impl/CalendarAstronomer;->RAD_DEG:D
+Landroid/icu/impl/CalendarAstronomer;->RAD_HOUR:D
+Landroid/icu/impl/CalendarAstronomer;->riseOrSet(Landroid/icu/impl/CalendarAstronomer$CoordFunc;ZDDJ)J
+Landroid/icu/impl/CalendarAstronomer;->siderealT0:D
+Landroid/icu/impl/CalendarAstronomer;->siderealTime:D
+Landroid/icu/impl/CalendarAstronomer;->sunLongitude:D
+Landroid/icu/impl/CalendarAstronomer;->SUN_E:D
+Landroid/icu/impl/CalendarAstronomer;->SUN_ETA_G:D
+Landroid/icu/impl/CalendarAstronomer;->SUN_OMEGA_G:D
+Landroid/icu/impl/CalendarAstronomer;->time:J
+Landroid/icu/impl/CalendarAstronomer;->timeOfAngle(Landroid/icu/impl/CalendarAstronomer$AngleFunc;DDJZ)J
+Landroid/icu/impl/CalendarAstronomer;->trueAnomaly(DD)D
+Landroid/icu/impl/CalendarCache;->arraySize:I
+Landroid/icu/impl/CalendarCache;->findIndex(J)I
+Landroid/icu/impl/CalendarCache;->hash(J)I
+Landroid/icu/impl/CalendarCache;->hash2(J)I
+Landroid/icu/impl/CalendarCache;->keys:[J
+Landroid/icu/impl/CalendarCache;->makeArrays(I)V
+Landroid/icu/impl/CalendarCache;->pIndex:I
+Landroid/icu/impl/CalendarCache;->primes:[I
+Landroid/icu/impl/CalendarCache;->rehash()V
+Landroid/icu/impl/CalendarCache;->size:I
+Landroid/icu/impl/CalendarCache;->threshold:I
+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;
+Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;->symbols:[[Ljava/lang/String;
+Landroid/icu/impl/CurrencyData$DefaultInfo;-><init>(Z)V
+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;
+Landroid/icu/impl/DayPeriodRules$CutoffType;->FROM:Landroid/icu/impl/DayPeriodRules$CutoffType;
+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
+Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->cutoffType:Landroid/icu/impl/DayPeriodRules$CutoffType;
+Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->data:Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
+Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->parseHour(Ljava/lang/String;)I
+Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->period:Landroid/icu/impl/DayPeriodRules$DayPeriod;
+Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->processRules(Landroid/icu/impl/UResource$Table;Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->ruleSetNum:I
+Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->setDayPeriodForHoursFromCutoffs()V
+Landroid/icu/impl/DayPeriodRules;-><init>()V
+Landroid/icu/impl/DayPeriodRules;->add(IILandroid/icu/impl/DayPeriodRules$DayPeriod;)V
+Landroid/icu/impl/DayPeriodRules;->DATA:Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
+Landroid/icu/impl/DayPeriodRules;->dayPeriodForHour:[Landroid/icu/impl/DayPeriodRules$DayPeriod;
+Landroid/icu/impl/DayPeriodRules;->getEndHourForDayPeriod(Landroid/icu/impl/DayPeriodRules$DayPeriod;)I
+Landroid/icu/impl/DayPeriodRules;->getStartHourForDayPeriod(Landroid/icu/impl/DayPeriodRules$DayPeriod;)I
+Landroid/icu/impl/DayPeriodRules;->hasMidnight:Z
+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
+Landroid/icu/impl/ICUBinary$DatPackageReader;->binarySearch(Ljava/nio/ByteBuffer;Ljava/lang/CharSequence;)I
+Landroid/icu/impl/ICUBinary$DatPackageReader;->DATA_FORMAT:I
+Landroid/icu/impl/ICUBinary$DatPackageReader;->getData(Ljava/nio/ByteBuffer;Ljava/lang/CharSequence;)Ljava/nio/ByteBuffer;
+Landroid/icu/impl/ICUBinary$DatPackageReader;->getDataOffset(Ljava/nio/ByteBuffer;I)I
+Landroid/icu/impl/ICUBinary$DatPackageReader;->getNameOffset(Ljava/nio/ByteBuffer;I)I
+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;
+Landroid/icu/impl/ICUBinary$SingleDataFile;->path:Ljava/io/File;
+Landroid/icu/impl/ICUBinary;->addDataFilesFromFolder(Ljava/io/File;Ljava/lang/StringBuilder;Ljava/util/List;)V
+Landroid/icu/impl/ICUBinary;->addDataFilesFromPath(Ljava/lang/String;Ljava/util/List;)V
+Landroid/icu/impl/ICUBinary;->CHAR_SET_:B
+Landroid/icu/impl/ICUBinary;->CHAR_SIZE_:B
+Landroid/icu/impl/ICUBinary;->compareKeys(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;I)I
+Landroid/icu/impl/ICUBinary;->compareKeys(Ljava/lang/CharSequence;[BI)I
+Landroid/icu/impl/ICUBinary;->getData(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Z)Ljava/nio/ByteBuffer;
+Landroid/icu/impl/ICUBinary;->getDataFromFile(Ljava/lang/String;)Ljava/nio/ByteBuffer;
+Landroid/icu/impl/ICUBinary;->HEADER_AUTHENTICATION_FAILED_:Ljava/lang/String;
+Landroid/icu/impl/ICUBinary;->icuDataFiles:Ljava/util/List;
+Landroid/icu/impl/ICUBinary;->MAGIC1:B
+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;
+Landroid/icu/impl/ICUResourceBundle$AvailEntry;->getLocaleList()[Ljava/util/Locale;
+Landroid/icu/impl/ICUResourceBundle$AvailEntry;->getLocaleNameSet()Ljava/util/Set;
+Landroid/icu/impl/ICUResourceBundle$AvailEntry;->getULocaleList()[Landroid/icu/util/ULocale;
+Landroid/icu/impl/ICUResourceBundle$AvailEntry;->loader:Ljava/lang/ClassLoader;
+Landroid/icu/impl/ICUResourceBundle$AvailEntry;->locales:[Ljava/util/Locale;
+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;
+Landroid/icu/impl/ICUResourceBundle$WholeBundle;->localeID:Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundle$WholeBundle;->reader:Landroid/icu/impl/ICUResourceBundleReader;
+Landroid/icu/impl/ICUResourceBundle$WholeBundle;->topLevelKeys:Ljava/util/Set;
+Landroid/icu/impl/ICUResourceBundle$WholeBundle;->ulocale:Landroid/icu/util/ULocale;
+Landroid/icu/impl/ICUResourceBundle;->addBundleBaseNamesFromClassLoader(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V
+Landroid/icu/impl/ICUResourceBundle;->addLocaleIDsFromIndexBundle(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V
+Landroid/icu/impl/ICUResourceBundle;->addLocaleIDsFromListFile(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V
+Landroid/icu/impl/ICUResourceBundle;->BUNDLE_CACHE:Landroid/icu/impl/CacheBase;
+Landroid/icu/impl/ICUResourceBundle;->container:Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/impl/ICUResourceBundle;->countPathKeys(Ljava/lang/String;)I
+Landroid/icu/impl/ICUResourceBundle;->createFullLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;
+Landroid/icu/impl/ICUResourceBundle;->createLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;
+Landroid/icu/impl/ICUResourceBundle;->createULocaleList(Ljava/lang/String;Ljava/lang/ClassLoader;)[Landroid/icu/util/ULocale;
+Landroid/icu/impl/ICUResourceBundle;->DEBUG:Z
+Landroid/icu/impl/ICUResourceBundle;->DEFAULT_TAG:Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundle;->findResourceWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/impl/ICUResourceBundle;->findResourceWithFallback([Ljava/lang/String;ILandroid/icu/impl/ICUResourceBundle;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/impl/ICUResourceBundle;->findStringWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundle;->FULL_LOCALE_NAMES_LIST:Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundle;->get(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/impl/ICUResourceBundle;->getAllItemsWithFallback(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;Landroid/icu/impl/UResource$Sink;)V
+Landroid/icu/impl/ICUResourceBundle;->getAvailEntry(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle$AvailEntry;
+Landroid/icu/impl/ICUResourceBundle;->getBundle(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/impl/ICUResourceBundle;->getNoFallback()Z
+Landroid/icu/impl/ICUResourceBundle;->getResDepth()I
+Landroid/icu/impl/ICUResourceBundle;->getResPathKeys(Ljava/lang/String;I[Ljava/lang/String;I)V
+Landroid/icu/impl/ICUResourceBundle;->getResPathKeys([Ljava/lang/String;I)V
+Landroid/icu/impl/ICUResourceBundle;->GET_AVAILABLE_CACHE:Landroid/icu/impl/CacheBase;
+Landroid/icu/impl/ICUResourceBundle;->HYPHEN:C
+Landroid/icu/impl/ICUResourceBundle;->ICUDATA:Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundle;->ICU_RESOURCE_INDEX:Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundle;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/impl/ICUResourceBundle;->LOCALE:Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundle;->localeIDStartsWithLangSubtag(Ljava/lang/String;Ljava/lang/String;)Z
+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
+Landroid/icu/impl/ICUResourceBundleReader$Container;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
+Landroid/icu/impl/ICUResourceBundleReader$Container;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I
+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
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->levelBitsList:I
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->mask:I
+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;
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->keys:[I
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->length:I
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->levelBitsList:I
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->makeKey(I)I
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->maxOffsetBits:I
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->NEXT_BITS:I
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object;
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->putIfCleared([Ljava/lang/Object;ILjava/lang/Object;I)Ljava/lang/Object;
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->rootLevel:Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;
+Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->ROOT_BITS:I
+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;
+Landroid/icu/impl/ICUResourceBundleReader$Table;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I
+Landroid/icu/impl/ICUResourceBundleReader$Table;->key32Offsets:[I
+Landroid/icu/impl/ICUResourceBundleReader$Table;->keyOffsets:[C
+Landroid/icu/impl/ICUResourceBundleReader$Table;->URESDATA_ITEM_NOT_FOUND:I
+Landroid/icu/impl/ICUResourceBundleReader;-><init>()V
+Landroid/icu/impl/ICUResourceBundleReader;-><init>(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V
+Landroid/icu/impl/ICUResourceBundleReader;->b16BitUnits:Ljava/nio/CharBuffer;
+Landroid/icu/impl/ICUResourceBundleReader;->bytes:Ljava/nio/ByteBuffer;
+Landroid/icu/impl/ICUResourceBundleReader;->CACHE:Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;
+Landroid/icu/impl/ICUResourceBundleReader;->compareKeys(Ljava/lang/CharSequence;C)I
+Landroid/icu/impl/ICUResourceBundleReader;->compareKeys32(Ljava/lang/CharSequence;I)I
+Landroid/icu/impl/ICUResourceBundleReader;->dataVersion:I
+Landroid/icu/impl/ICUResourceBundleReader;->DATA_FORMAT:I
+Landroid/icu/impl/ICUResourceBundleReader;->DEBUG:Z
+Landroid/icu/impl/ICUResourceBundleReader;->emptyByteBuffer:Ljava/nio/ByteBuffer;
+Landroid/icu/impl/ICUResourceBundleReader;->emptyBytes:[B
+Landroid/icu/impl/ICUResourceBundleReader;->emptyChars:[C
+Landroid/icu/impl/ICUResourceBundleReader;->emptyInts:[I
+Landroid/icu/impl/ICUResourceBundleReader;->emptyString:Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->EMPTY_16_BIT_UNITS:Ljava/nio/CharBuffer;
+Landroid/icu/impl/ICUResourceBundleReader;->EMPTY_ARRAY:Landroid/icu/impl/ICUResourceBundleReader$Array;
+Landroid/icu/impl/ICUResourceBundleReader;->EMPTY_TABLE:Landroid/icu/impl/ICUResourceBundleReader$Table;
+Landroid/icu/impl/ICUResourceBundleReader;->getAlias(I)Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->getArray(I)Landroid/icu/impl/ICUResourceBundleReader$Array;
+Landroid/icu/impl/ICUResourceBundleReader;->getBinary(I)Ljava/nio/ByteBuffer;
+Landroid/icu/impl/ICUResourceBundleReader;->getBinary(I[B)[B
+Landroid/icu/impl/ICUResourceBundleReader;->getChars(II)[C
+Landroid/icu/impl/ICUResourceBundleReader;->getIndexesInt(I)I
+Landroid/icu/impl/ICUResourceBundleReader;->getInt(I)I
+Landroid/icu/impl/ICUResourceBundleReader;->getInts(II)[I
+Landroid/icu/impl/ICUResourceBundleReader;->getIntVector(I)[I
+Landroid/icu/impl/ICUResourceBundleReader;->getKey16String(I)Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->getKey32String(I)Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->getNoFallback()Z
+Landroid/icu/impl/ICUResourceBundleReader;->getReader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundleReader;
+Landroid/icu/impl/ICUResourceBundleReader;->getResourceByteOffset(I)I
+Landroid/icu/impl/ICUResourceBundleReader;->getRootResource()I
+Landroid/icu/impl/ICUResourceBundleReader;->getString(I)Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->getStringV2(I)Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->getTable(I)Landroid/icu/impl/ICUResourceBundleReader$Table;
+Landroid/icu/impl/ICUResourceBundleReader;->getTable16KeyOffsets(I)[C
+Landroid/icu/impl/ICUResourceBundleReader;->getTable32KeyOffsets(I)[I
+Landroid/icu/impl/ICUResourceBundleReader;->getTableKeyOffsets(I)[C
+Landroid/icu/impl/ICUResourceBundleReader;->getUsesPoolBundle()Z
+Landroid/icu/impl/ICUResourceBundleReader;->getVersion()Landroid/icu/util/VersionInfo;
+Landroid/icu/impl/ICUResourceBundleReader;->ICU_RESOURCE_SUFFIX:Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->init(Ljava/nio/ByteBuffer;)V
+Landroid/icu/impl/ICUResourceBundleReader;->isNoInheritanceMarker(I)Z
+Landroid/icu/impl/ICUResourceBundleReader;->isPoolBundle:Z
+Landroid/icu/impl/ICUResourceBundleReader;->isStringV2NoInheritanceMarker(I)Z
+Landroid/icu/impl/ICUResourceBundleReader;->IS_ACCEPTABLE:Landroid/icu/impl/ICUResourceBundleReader$IsAcceptable;
+Landroid/icu/impl/ICUResourceBundleReader;->keyBytes:[B
+Landroid/icu/impl/ICUResourceBundleReader;->LARGE_SIZE:I
+Landroid/icu/impl/ICUResourceBundleReader;->localKeyLimit:I
+Landroid/icu/impl/ICUResourceBundleReader;->makeKeyStringFromBytes([BI)Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->makeStringFromBytes(II)Ljava/lang/String;
+Landroid/icu/impl/ICUResourceBundleReader;->noFallback:Z
+Landroid/icu/impl/ICUResourceBundleReader;->NULL_READER:Landroid/icu/impl/ICUResourceBundleReader;
+Landroid/icu/impl/ICUResourceBundleReader;->poolBundleReader:Landroid/icu/impl/ICUResourceBundleReader;
+Landroid/icu/impl/ICUResourceBundleReader;->poolCheckSum:I
+Landroid/icu/impl/ICUResourceBundleReader;->poolStringIndex16Limit:I
+Landroid/icu/impl/ICUResourceBundleReader;->poolStringIndexLimit:I
+Landroid/icu/impl/ICUResourceBundleReader;->PUBLIC_TYPES:[I
+Landroid/icu/impl/ICUResourceBundleReader;->resourceCache:Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;
+Landroid/icu/impl/ICUResourceBundleReader;->RES_GET_INT(I)I
+Landroid/icu/impl/ICUResourceBundleReader;->RES_GET_OFFSET(I)I
+Landroid/icu/impl/ICUResourceBundleReader;->RES_GET_TYPE(I)I
+Landroid/icu/impl/ICUResourceBundleReader;->RES_GET_UINT(I)I
+Landroid/icu/impl/ICUResourceBundleReader;->rootRes:I
+Landroid/icu/impl/ICUResourceBundleReader;->setKeyFromKey16(ILandroid/icu/impl/UResource$Key;)V
+Landroid/icu/impl/ICUResourceBundleReader;->setKeyFromKey32(ILandroid/icu/impl/UResource$Key;)V
+Landroid/icu/impl/ICUResourceBundleReader;->URES_ATT_IS_POOL_BUNDLE:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_ATT_NO_FALLBACK:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_ATT_USES_POOL_BUNDLE:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_16BIT_TOP:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_ATTRIBUTES:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_BUNDLE_TOP:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_KEYS_TOP:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_LENGTH:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_MAX_TABLE_LENGTH:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_POOL_CHECKSUM:I
+Landroid/icu/impl/ICUResourceBundleReader;->URES_IS_ARRAY(I)Z
+Landroid/icu/impl/ICUResourceBundleReader;->URES_IS_TABLE(I)Z
+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
+Landroid/icu/impl/locale/BaseLocale$Key;->normalize(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key;
+Landroid/icu/impl/locale/BaseLocale$Key;->_hash:I
+Landroid/icu/impl/locale/BaseLocale$Key;->_lang:Ljava/lang/String;
+Landroid/icu/impl/locale/BaseLocale$Key;->_regn:Ljava/lang/String;
+Landroid/icu/impl/locale/BaseLocale$Key;->_scrt:Ljava/lang/String;
+Landroid/icu/impl/locale/BaseLocale$Key;->_vart:Ljava/lang/String;
+Landroid/icu/impl/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/icu/impl/locale/BaseLocale;->CACHE:Landroid/icu/impl/locale/BaseLocale$Cache;
+Landroid/icu/impl/locale/BaseLocale;->JDKIMPL:Z
+Landroid/icu/impl/locale/BaseLocale;->_hash:I
+Landroid/icu/impl/locale/BaseLocale;->_language:Ljava/lang/String;
+Landroid/icu/impl/locale/BaseLocale;->_region:Ljava/lang/String;
+Landroid/icu/impl/locale/BaseLocale;->_script:Ljava/lang/String;
+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;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->checkVariants(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/icu/impl/locale/InternalLocaleBuilder;->JDKIMPL:Z
+Landroid/icu/impl/locale/InternalLocaleBuilder;->PRIVUSE_KEY:Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->removePrivateuseVariant(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->setExtensions(Ljava/util/List;Ljava/lang/String;)Landroid/icu/impl/locale/InternalLocaleBuilder;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->setUnicodeLocaleExtension(Ljava/lang/String;)V
+Landroid/icu/impl/locale/InternalLocaleBuilder;->_extensions:Ljava/util/HashMap;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->_language:Ljava/lang/String;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->_region:Ljava/lang/String;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->_script:Ljava/lang/String;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->_uattributes:Ljava/util/HashSet;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->_ukeywords:Ljava/util/HashMap;
+Landroid/icu/impl/locale/InternalLocaleBuilder;->_variant:Ljava/lang/String;
+Landroid/icu/impl/locale/LanguageTag;-><init>()V
+Landroid/icu/impl/locale/LanguageTag;->GRANDFATHERED:Ljava/util/Map;
+Landroid/icu/impl/locale/LanguageTag;->JDKIMPL:Z
+Landroid/icu/impl/locale/LanguageTag;->parseExtensions(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
+Landroid/icu/impl/locale/LanguageTag;->parseExtlangs(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
+Landroid/icu/impl/locale/LanguageTag;->parseLanguage(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
+Landroid/icu/impl/locale/LanguageTag;->parsePrivateuse(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
+Landroid/icu/impl/locale/LanguageTag;->parseRegion(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
+Landroid/icu/impl/locale/LanguageTag;->parseScript(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
+Landroid/icu/impl/locale/LanguageTag;->parseVariants(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
+Landroid/icu/impl/locale/LanguageTag;->_extensions:Ljava/util/List;
+Landroid/icu/impl/locale/LanguageTag;->_extlangs:Ljava/util/List;
+Landroid/icu/impl/locale/LanguageTag;->_language:Ljava/lang/String;
+Landroid/icu/impl/locale/LanguageTag;->_privateuse:Ljava/lang/String;
+Landroid/icu/impl/locale/LanguageTag;->_region:Ljava/lang/String;
+Landroid/icu/impl/locale/LanguageTag;->_script:Ljava/lang/String;
+Landroid/icu/impl/locale/LanguageTag;->_variants:Ljava/util/List;
+Landroid/icu/impl/locale/LocaleExtensions;-><init>()V
+Landroid/icu/impl/locale/LocaleExtensions;-><init>(Ljava/util/Map;Ljava/util/Set;Ljava/util/Map;)V
+Landroid/icu/impl/locale/LocaleExtensions;->EMPTY_MAP:Ljava/util/SortedMap;
+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;
+Landroid/icu/impl/locale/LocaleObjectCache;->cleanStaleEntries()V
+Landroid/icu/impl/locale/LocaleObjectCache;->_map:Ljava/util/concurrent/ConcurrentHashMap;
+Landroid/icu/impl/locale/LocaleObjectCache;->_queue:Ljava/lang/ref/ReferenceQueue;
+Landroid/icu/impl/locale/LocaleSyntaxException;->_index:I
+Landroid/icu/impl/locale/ParseStatus;->_errorIndex:I
+Landroid/icu/impl/locale/ParseStatus;->_errorMsg:Ljava/lang/String;
+Landroid/icu/impl/locale/ParseStatus;->_parseLength:I
+Landroid/icu/impl/locale/StringTokenIterator;->nextDelimiter(I)I
+Landroid/icu/impl/locale/StringTokenIterator;->_dlms:Ljava/lang/String;
+Landroid/icu/impl/locale/StringTokenIterator;->_done:Z
+Landroid/icu/impl/locale/StringTokenIterator;->_end:I
+Landroid/icu/impl/locale/StringTokenIterator;->_start:I
+Landroid/icu/impl/locale/StringTokenIterator;->_text:Ljava/lang/String;
+Landroid/icu/impl/locale/StringTokenIterator;->_token:Ljava/lang/String;
+Landroid/icu/impl/locale/XCldrStub$HashMultimap;-><init>()V
+Landroid/icu/impl/locale/XCldrStub$Joiner;-><init>(Ljava/lang/String;)V
+Landroid/icu/impl/locale/XCldrStub$Joiner;->separator:Ljava/lang/String;
+Landroid/icu/impl/locale/XCldrStub$LinkedHashMultimap;-><init>()V
+Landroid/icu/impl/locale/XCldrStub$Multimap;-><init>(Ljava/util/Map;Ljava/lang/Class;)V
+Landroid/icu/impl/locale/XCldrStub$Multimap;->createSetIfMissing(Ljava/lang/Object;)Ljava/util/Set;
+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;
+Landroid/icu/impl/locale/XCldrStub$Splitter;->pattern:Ljava/util/regex/Pattern;
+Landroid/icu/impl/locale/XCldrStub$Splitter;->trimResults:Z
+Landroid/icu/impl/locale/XCldrStub$TreeMultimap;-><init>()V
+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;
+Landroid/icu/impl/locale/XLikelySubtags$Maker;->make()Ljava/lang/Object;
+Landroid/icu/impl/locale/XLikelySubtags$Maker;->TREEMAP:Landroid/icu/impl/locale/XLikelySubtags$Maker;
+Landroid/icu/impl/locale/XLikelySubtags;->DEFAULT:Landroid/icu/impl/locale/XLikelySubtags;
+Landroid/icu/impl/locale/XLikelySubtags;->getDefaultRawData()Ljava/util/Map;
+Landroid/icu/impl/locale/XLikelySubtags;->init(Ljava/util/Map;Z)Ljava/util/Map;
+Landroid/icu/impl/locale/XLikelySubtags;->langTable:Ljava/util/Map;
+Landroid/icu/impl/locale/XLikelySubtags;->minimizeSubtags(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale$Minimize;)Landroid/icu/impl/locale/XLikelySubtags$LSR;
+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
+Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->add(Ljava/lang/Object;)Ljava/lang/Integer;
+Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->fromId(I)Ljava/lang/Object;
+Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->getOldAndAdd(Ljava/lang/Object;)Ljava/lang/Integer;
+Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->intern(Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->intToObject:Ljava/util/List;
+Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->name:Ljava/lang/String;
+Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->objectToInt:Ljava/util/Map;
+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;
+Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->paradigms:Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->regions()Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->regionToPartition:Ljava/util/Map;
+Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->toId(Ljava/lang/Object;)Ljava/lang/Object;
+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
+Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->inverse()Ljava/util/Set;
+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
+Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;->copyTables(Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;)V
+Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;->distanceTable:Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;
+Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;-><init>()V
+Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;-><init>(Ljava/util/Map;)V
+Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;->addSubtable(Ljava/lang/String;Ljava/lang/String;I)Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;
+Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;->getNode(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;
+Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;->subtables:Ljava/util/Map;
+Landroid/icu/impl/locale/XLocaleDistance;->ALL_FINAL_REGIONS:Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleDistance;->CONTAINER_TO_CONTAINED:Landroid/icu/impl/locale/XCldrStub$Multimap;
+Landroid/icu/impl/locale/XLocaleDistance;->CONTAINER_TO_CONTAINED_FINAL:Landroid/icu/impl/locale/XCldrStub$Multimap;
+Landroid/icu/impl/locale/XLocaleDistance;->DEFAULT:Landroid/icu/impl/locale/XLocaleDistance;
+Landroid/icu/impl/locale/XLocaleDistance;->defaultLanguageDistance:I
+Landroid/icu/impl/locale/XLocaleDistance;->defaultRegionDistance:I
+Landroid/icu/impl/locale/XLocaleDistance;->defaultScriptDistance:I
+Landroid/icu/impl/locale/XLocaleDistance;->english:Landroid/icu/text/LocaleDisplayNames;
+Landroid/icu/impl/locale/XLocaleDistance;->fill(Ljava/lang/String;Landroid/icu/impl/locale/XCldrStub$TreeMultimap;Landroid/icu/impl/locale/XCldrStub$Multimap;)Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleDistance;->fixAny(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/impl/locale/XLocaleDistance;->fixedName(Ljava/util/List;)Ljava/lang/String;
+Landroid/icu/impl/locale/XLocaleDistance;->getContainingMacrosFor(Ljava/util/Collection;Ljava/util/Set;)Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleDistance;->languageDesired2Supported:Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;
+Landroid/icu/impl/locale/XLocaleDistance;->newMap()Ljava/util/Map;
+Landroid/icu/impl/locale/XLocaleDistance;->printMatchXml(Ljava/util/List;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Boolean;)V
+Landroid/icu/impl/locale/XLocaleDistance;->PRINT_OVERRIDES:Z
+Landroid/icu/impl/locale/XLocaleDistance;->regionMapper:Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;
+Landroid/icu/impl/locale/XLocaleDistance;->xGetContainment()Landroid/icu/impl/locale/XCldrStub$Multimap;
+Landroid/icu/impl/locale/XLocaleDistance;->xGetLanguageMatcherData()Ljava/util/List;
+Landroid/icu/impl/locale/XLocaleDistance;->xGetMatchVariables()Ljava/util/Map;
+Landroid/icu/impl/locale/XLocaleDistance;->xGetParadigmLocales()Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleMatcher$Builder;->defaultLanguage:Landroid/icu/util/ULocale;
+Landroid/icu/impl/locale/XLocaleMatcher$Builder;->demotionPerAdditionalDesiredLocale:I
+Landroid/icu/impl/locale/XLocaleMatcher$Builder;->distanceOption:Landroid/icu/impl/locale/XLocaleDistance$DistanceOption;
+Landroid/icu/impl/locale/XLocaleMatcher$Builder;->localeDistance:Landroid/icu/impl/locale/XLocaleDistance;
+Landroid/icu/impl/locale/XLocaleMatcher$Builder;->supportedLanguagesList:Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleMatcher$Builder;->thresholdDistance:I
+Landroid/icu/impl/locale/XLocaleMatcher;-><init>(Landroid/icu/impl/locale/XLocaleMatcher$Builder;)V
+Landroid/icu/impl/locale/XLocaleMatcher;->asSet(Landroid/icu/util/LocalePriorityList;)Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleMatcher;->defaultLanguage:Landroid/icu/util/ULocale;
+Landroid/icu/impl/locale/XLocaleMatcher;->demotionPerAdditionalDesiredLocale:I
+Landroid/icu/impl/locale/XLocaleMatcher;->distanceOption:Landroid/icu/impl/locale/XLocaleDistance$DistanceOption;
+Landroid/icu/impl/locale/XLocaleMatcher;->exactSupportedLocales:Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleMatcher;->extractLsrMap(Ljava/util/Set;Ljava/util/Set;)Landroid/icu/impl/locale/XCldrStub$Multimap;
+Landroid/icu/impl/locale/XLocaleMatcher;->extractLsrSet(Ljava/util/Set;)Ljava/util/Set;
+Landroid/icu/impl/locale/XLocaleMatcher;->localeDistance:Landroid/icu/impl/locale/XLocaleDistance;
+Landroid/icu/impl/locale/XLocaleMatcher;->supportedLanguages:Ljava/util/Map;
+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
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->codePointLimit:I
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->codePointStart:I
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->impl:Landroid/icu/impl/Normalizer2Impl;
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->insert(II)V
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->lastCC:I
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->previousCC()I
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->reorderStart:I
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->setIterator()V
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->skipPrevious()V
+Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->str:Ljava/lang/StringBuilder;
+Landroid/icu/impl/Normalizer2Impl;->addComposites(ILandroid/icu/text/UnicodeSet;)V
+Landroid/icu/impl/Normalizer2Impl;->addToStartSet(Landroid/icu/impl/Trie2Writable;II)V
+Landroid/icu/impl/Normalizer2Impl;->canonIterData:Landroid/icu/impl/Trie2_32;
+Landroid/icu/impl/Normalizer2Impl;->canonStartSets:Ljava/util/ArrayList;
+Landroid/icu/impl/Normalizer2Impl;->CANON_HAS_COMPOSITIONS:I
+Landroid/icu/impl/Normalizer2Impl;->CANON_HAS_SET:I
+Landroid/icu/impl/Normalizer2Impl;->CANON_NOT_SEGMENT_STARTER:I
+Landroid/icu/impl/Normalizer2Impl;->CANON_VALUE_MASK:I
+Landroid/icu/impl/Normalizer2Impl;->centerNoNoDelta:I
+Landroid/icu/impl/Normalizer2Impl;->combine(Ljava/lang/String;II)I
+Landroid/icu/impl/Normalizer2Impl;->dataVersion:Landroid/icu/util/VersionInfo;
+Landroid/icu/impl/Normalizer2Impl;->DATA_FORMAT:I
+Landroid/icu/impl/Normalizer2Impl;->decompose(IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
+Landroid/icu/impl/Normalizer2Impl;->decomposeShort(Ljava/lang/CharSequence;IIZZLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I
+Landroid/icu/impl/Normalizer2Impl;->enumLcccRange(IIILandroid/icu/text/UnicodeSet;)V
+Landroid/icu/impl/Normalizer2Impl;->enumNorm16PropertyStartsRange(IIILandroid/icu/text/UnicodeSet;)V
+Landroid/icu/impl/Normalizer2Impl;->extraData:Ljava/lang/String;
+Landroid/icu/impl/Normalizer2Impl;->findNextCompBoundary(Ljava/lang/CharSequence;IIZ)I
+Landroid/icu/impl/Normalizer2Impl;->findNextFCDBoundary(Ljava/lang/CharSequence;II)I
+Landroid/icu/impl/Normalizer2Impl;->findPreviousCompBoundary(Ljava/lang/CharSequence;IZ)I
+Landroid/icu/impl/Normalizer2Impl;->findPreviousFCDBoundary(Ljava/lang/CharSequence;I)I
+Landroid/icu/impl/Normalizer2Impl;->getCCFromNoNo(I)I
+Landroid/icu/impl/Normalizer2Impl;->getCompositionsList(I)I
+Landroid/icu/impl/Normalizer2Impl;->getCompositionsListForComposite(I)I
+Landroid/icu/impl/Normalizer2Impl;->getCompositionsListForDecompYes(I)I
+Landroid/icu/impl/Normalizer2Impl;->getCompositionsListForMaybe(I)I
+Landroid/icu/impl/Normalizer2Impl;->getPreviousTrailCC(Ljava/lang/CharSequence;II)I
+Landroid/icu/impl/Normalizer2Impl;->getTrailCCFromCompYesAndZeroCC(I)I
+Landroid/icu/impl/Normalizer2Impl;->hangulLVT()I
+Landroid/icu/impl/Normalizer2Impl;->hasCompBoundaryAfter(Ljava/lang/CharSequence;IIZ)Z
+Landroid/icu/impl/Normalizer2Impl;->hasCompBoundaryBefore(II)Z
+Landroid/icu/impl/Normalizer2Impl;->hasCompBoundaryBefore(Ljava/lang/CharSequence;II)Z
+Landroid/icu/impl/Normalizer2Impl;->isCompYesAndZeroCC(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isDecompNoAlgorithmic(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isDecompYesAndZeroCC(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isHangulLV(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isHangulLVT(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isInert(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isJamoL(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isJamoVT(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isMaybe(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isMaybeOrNonZeroCC(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isMostDecompYesAndZeroCC(I)Z
+Landroid/icu/impl/Normalizer2Impl;->isTrailCC01ForCompBoundaryAfter(I)Z
+Landroid/icu/impl/Normalizer2Impl;->IS_ACCEPTABLE:Landroid/icu/impl/Normalizer2Impl$IsAcceptable;
+Landroid/icu/impl/Normalizer2Impl;->limitNoNo:I
+Landroid/icu/impl/Normalizer2Impl;->mapAlgorithmic(II)I
+Landroid/icu/impl/Normalizer2Impl;->maybeYesCompositions:Ljava/lang/String;
+Landroid/icu/impl/Normalizer2Impl;->minCompNoMaybeCP:I
+Landroid/icu/impl/Normalizer2Impl;->minDecompNoCP:I
+Landroid/icu/impl/Normalizer2Impl;->minLcccCP:I
+Landroid/icu/impl/Normalizer2Impl;->minMaybeYes:I
+Landroid/icu/impl/Normalizer2Impl;->minNoNo:I
+Landroid/icu/impl/Normalizer2Impl;->minNoNoCompBoundaryBefore:I
+Landroid/icu/impl/Normalizer2Impl;->minNoNoCompNoMaybeCC:I
+Landroid/icu/impl/Normalizer2Impl;->minNoNoEmpty:I
+Landroid/icu/impl/Normalizer2Impl;->minYesNo:I
+Landroid/icu/impl/Normalizer2Impl;->minYesNoMappingsOnly:I
+Landroid/icu/impl/Normalizer2Impl;->norm16HasCompBoundaryAfter(IZ)Z
+Landroid/icu/impl/Normalizer2Impl;->norm16HasCompBoundaryBefore(I)Z
+Landroid/icu/impl/Normalizer2Impl;->normTrie:Landroid/icu/impl/Trie2_16;
+Landroid/icu/impl/Normalizer2Impl;->recompose(Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;IZ)V
+Landroid/icu/impl/Normalizer2Impl;->segmentStarterMapper:Landroid/icu/impl/Trie2$ValueMapper;
+Landroid/icu/impl/Normalizer2Impl;->smallFCD:[B
+Landroid/icu/impl/number/AffixUtils;->getCodePoint(J)I
+Landroid/icu/impl/number/AffixUtils;->getOffset(J)I
+Landroid/icu/impl/number/AffixUtils;->getState(J)I
+Landroid/icu/impl/number/AffixUtils;->getType(J)I
+Landroid/icu/impl/number/AffixUtils;->makeTag(IIII)J
+Landroid/icu/impl/number/AffixUtils;->STATE_AFTER_QUOTE:I
+Landroid/icu/impl/number/AffixUtils;->STATE_BASE:I
+Landroid/icu/impl/number/AffixUtils;->STATE_FIFTH_CURR:I
+Landroid/icu/impl/number/AffixUtils;->STATE_FIRST_CURR:I
+Landroid/icu/impl/number/AffixUtils;->STATE_FIRST_QUOTE:I
+Landroid/icu/impl/number/AffixUtils;->STATE_FOURTH_CURR:I
+Landroid/icu/impl/number/AffixUtils;->STATE_INSIDE_QUOTE:I
+Landroid/icu/impl/number/AffixUtils;->STATE_OVERFLOW_CURR:I
+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
+Landroid/icu/impl/number/CompactData;->getResourceBundleKey(Ljava/lang/String;Landroid/icu/text/CompactDecimalFormat$CompactStyle;Landroid/icu/impl/number/CompactData$CompactType;Ljava/lang/StringBuilder;)V
+Landroid/icu/impl/number/CompactData;->isEmpty:Z
+Landroid/icu/impl/number/CompactData;->largestMagnitude:B
+Landroid/icu/impl/number/CompactData;->multipliers:[B
+Landroid/icu/impl/number/CompactData;->patterns:[Ljava/lang/String;
+Landroid/icu/impl/number/CompactData;->USE_FALLBACK:Ljava/lang/String;
+Landroid/icu/impl/number/ConstantMultiFieldModifier;->strong:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->compactCustomData:Ljava/util/Map;
+Landroid/icu/impl/number/DecimalFormatProperties;->compactStyle:Landroid/icu/text/CompactDecimalFormat$CompactStyle;
+Landroid/icu/impl/number/DecimalFormatProperties;->currency:Landroid/icu/util/Currency;
+Landroid/icu/impl/number/DecimalFormatProperties;->currencyPluralInfo:Landroid/icu/text/CurrencyPluralInfo;
+Landroid/icu/impl/number/DecimalFormatProperties;->currencyUsage:Landroid/icu/util/Currency$CurrencyUsage;
+Landroid/icu/impl/number/DecimalFormatProperties;->decimalPatternMatchRequired:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->decimalSeparatorAlwaysShown:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->DEFAULT:Landroid/icu/impl/number/DecimalFormatProperties;
+Landroid/icu/impl/number/DecimalFormatProperties;->exponentSignAlwaysShown:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->formatWidth:I
+Landroid/icu/impl/number/DecimalFormatProperties;->groupingSize:I
+Landroid/icu/impl/number/DecimalFormatProperties;->magnitudeMultiplier:I
+Landroid/icu/impl/number/DecimalFormatProperties;->mathContext:Ljava/math/MathContext;
+Landroid/icu/impl/number/DecimalFormatProperties;->maximumFractionDigits:I
+Landroid/icu/impl/number/DecimalFormatProperties;->maximumIntegerDigits:I
+Landroid/icu/impl/number/DecimalFormatProperties;->maximumSignificantDigits:I
+Landroid/icu/impl/number/DecimalFormatProperties;->minimumExponentDigits:I
+Landroid/icu/impl/number/DecimalFormatProperties;->minimumFractionDigits:I
+Landroid/icu/impl/number/DecimalFormatProperties;->minimumGroupingDigits:I
+Landroid/icu/impl/number/DecimalFormatProperties;->minimumIntegerDigits:I
+Landroid/icu/impl/number/DecimalFormatProperties;->minimumSignificantDigits:I
+Landroid/icu/impl/number/DecimalFormatProperties;->multiplier:Ljava/math/BigDecimal;
+Landroid/icu/impl/number/DecimalFormatProperties;->negativePrefix:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->negativePrefixPattern:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->negativeSuffix:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->negativeSuffixPattern:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->padPosition:Landroid/icu/impl/number/Padder$PadPosition;
+Landroid/icu/impl/number/DecimalFormatProperties;->padString:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->parseCaseSensitive:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->parseGroupingMode:Landroid/icu/impl/number/Parse$GroupingMode;
+Landroid/icu/impl/number/DecimalFormatProperties;->parseIntegerOnly:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->parseMode:Landroid/icu/impl/number/Parse$ParseMode;
+Landroid/icu/impl/number/DecimalFormatProperties;->parseNoExponent:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->parseToBigDecimal:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->pluralRules:Landroid/icu/text/PluralRules;
+Landroid/icu/impl/number/DecimalFormatProperties;->positivePrefix:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->positivePrefixPattern:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->positiveSuffix:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->positiveSuffixPattern:Ljava/lang/String;
+Landroid/icu/impl/number/DecimalFormatProperties;->readObjectImpl(Ljava/io/ObjectInputStream;)V
+Landroid/icu/impl/number/DecimalFormatProperties;->roundingIncrement:Ljava/math/BigDecimal;
+Landroid/icu/impl/number/DecimalFormatProperties;->roundingMode:Ljava/math/RoundingMode;
+Landroid/icu/impl/number/DecimalFormatProperties;->secondaryGroupingSize:I
+Landroid/icu/impl/number/DecimalFormatProperties;->signAlwaysShown:Z
+Landroid/icu/impl/number/DecimalFormatProperties;->writeObjectImpl(Ljava/io/ObjectOutputStream;)V
+Landroid/icu/impl/number/DecimalFormatProperties;->_clear()Landroid/icu/impl/number/DecimalFormatProperties;
+Landroid/icu/impl/number/DecimalFormatProperties;->_copyFrom(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/DecimalFormatProperties;
+Landroid/icu/impl/number/DecimalFormatProperties;->_equals(Landroid/icu/impl/number/DecimalFormatProperties;)Z
+Landroid/icu/impl/number/DecimalFormatProperties;->_equalsHelper(II)Z
+Landroid/icu/impl/number/DecimalFormatProperties;->_equalsHelper(Ljava/lang/Object;Ljava/lang/Object;)Z
+Landroid/icu/impl/number/DecimalFormatProperties;->_equalsHelper(ZZ)Z
+Landroid/icu/impl/number/DecimalFormatProperties;->_hashCode()I
+Landroid/icu/impl/number/DecimalFormatProperties;->_hashCodeHelper(I)I
+Landroid/icu/impl/number/DecimalFormatProperties;->_hashCodeHelper(Ljava/lang/Object;)I
+Landroid/icu/impl/number/DecimalFormatProperties;->_hashCodeHelper(Z)I
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->convertToAccurateDouble()V
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->DOUBLE_MULTIPLIERS:[D
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fractionCount()I
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fractionCountWithoutTrailingZeros()I
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->safeSubtract(II)I
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->SECTION_LOWER_EDGE:I
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->SECTION_UPPER_EDGE:I
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigDecimal(Ljava/math/BigDecimal;)V
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigInteger(Ljava/math/BigInteger;)V
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToDoubleFast(D)V
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToInt(I)V
+Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToLong(J)V
+Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->bcdBytes:[B
+Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->bcdLong:J
+Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->ensureCapacity()V
+Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->ensureCapacity(I)V
+Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->switchStorage()V
+Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->usingBytes:Z
+Landroid/icu/impl/number/MicroProps;->exhausted:Z
+Landroid/icu/impl/number/MicroProps;->immutable:Z
+Landroid/icu/impl/number/MultiplierImpl;-><init>(Landroid/icu/impl/number/MultiplierImpl;Landroid/icu/impl/number/MicroPropsGenerator;)V
+Landroid/icu/impl/number/MultiplierImpl;->bigDecimalMultiplier:Ljava/math/BigDecimal;
+Landroid/icu/impl/number/MultiplierImpl;->magnitudeMultiplier:I
+Landroid/icu/impl/number/MultiplierImpl;->parent:Landroid/icu/impl/number/MicroPropsGenerator;
+Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;-><init>(Landroid/icu/impl/number/ParameterizedModifier;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)V
+Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->parent:Landroid/icu/impl/number/MicroPropsGenerator;
+Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->pm:Landroid/icu/impl/number/ParameterizedModifier;
+Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->rules:Landroid/icu/text/PluralRules;
+Landroid/icu/impl/number/MutablePatternModifier;->createConstantModifier(Landroid/icu/impl/number/NumberStringBuilder;Landroid/icu/impl/number/NumberStringBuilder;)Landroid/icu/impl/number/ConstantMultiFieldModifier;
+Landroid/icu/impl/number/MutablePatternModifier;->currency:Landroid/icu/util/Currency;
+Landroid/icu/impl/number/MutablePatternModifier;->enterCharSequenceMode(Z)V
+Landroid/icu/impl/number/MutablePatternModifier;->exitCharSequenceMode()V
+Landroid/icu/impl/number/MutablePatternModifier;->flags:I
+Landroid/icu/impl/number/MutablePatternModifier;->inCharSequenceMode:Z
+Landroid/icu/impl/number/MutablePatternModifier;->insertPrefix(Landroid/icu/impl/number/NumberStringBuilder;I)I
+Landroid/icu/impl/number/MutablePatternModifier;->insertSuffix(Landroid/icu/impl/number/NumberStringBuilder;I)I
+Landroid/icu/impl/number/MutablePatternModifier;->isNegative:Z
+Landroid/icu/impl/number/MutablePatternModifier;->isStrong:Z
+Landroid/icu/impl/number/MutablePatternModifier;->length:I
+Landroid/icu/impl/number/MutablePatternModifier;->parent:Landroid/icu/impl/number/MicroPropsGenerator;
+Landroid/icu/impl/number/MutablePatternModifier;->patternInfo:Landroid/icu/impl/number/AffixPatternProvider;
+Landroid/icu/impl/number/MutablePatternModifier;->perMilleReplacesPercent:Z
+Landroid/icu/impl/number/MutablePatternModifier;->plural:Landroid/icu/impl/StandardPlural;
+Landroid/icu/impl/number/MutablePatternModifier;->plusReplacesMinusSign:Z
+Landroid/icu/impl/number/MutablePatternModifier;->prependSign:Z
+Landroid/icu/impl/number/MutablePatternModifier;->rules:Landroid/icu/text/PluralRules;
+Landroid/icu/impl/number/MutablePatternModifier;->signDisplay:Landroid/icu/number/NumberFormatter$SignDisplay;
+Landroid/icu/impl/number/MutablePatternModifier;->symbols:Landroid/icu/text/DecimalFormatSymbols;
+Landroid/icu/impl/number/MutablePatternModifier;->unitWidth:Landroid/icu/number/NumberFormatter$UnitWidth;
+Landroid/icu/impl/number/NumberStringBuilder;->chars:[C
+Landroid/icu/impl/number/NumberStringBuilder;->fields:[Landroid/icu/text/NumberFormat$Field;
+Landroid/icu/impl/number/NumberStringBuilder;->fieldToDebugChar:Ljava/util/Map;
+Landroid/icu/impl/number/NumberStringBuilder;->getCapacity()I
+Landroid/icu/impl/number/NumberStringBuilder;->length:I
+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;
+Landroid/icu/impl/number/Padder;->targetWidth:I
+Landroid/icu/impl/number/ParameterizedModifier;->frozen:Z
+Landroid/icu/impl/number/ParameterizedModifier;->getModIndex(ZLandroid/icu/impl/StandardPlural;)I
+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;
+Landroid/icu/impl/number/Parse$AffixHolder;->EMPTY_POSITIVE:Landroid/icu/impl/number/Parse$AffixHolder;
+Landroid/icu/impl/number/Parse$AffixHolder;->fromPropertiesNegativePattern(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Parse$AffixHolder;
+Landroid/icu/impl/number/Parse$AffixHolder;->fromPropertiesNegativeString(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Parse$AffixHolder;
+Landroid/icu/impl/number/Parse$AffixHolder;->fromPropertiesPositivePattern(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Parse$AffixHolder;
+Landroid/icu/impl/number/Parse$AffixHolder;->fromPropertiesPositiveString(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Parse$AffixHolder;
+Landroid/icu/impl/number/Parse$AffixHolder;->getInstance(Ljava/lang/String;Ljava/lang/String;ZZ)Landroid/icu/impl/number/Parse$AffixHolder;
+Landroid/icu/impl/number/Parse$AffixHolder;->negative:Z
+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
+Landroid/icu/impl/number/Parse$ParserState;->clear()Landroid/icu/impl/number/Parse$ParserState;
+Landroid/icu/impl/number/Parse$ParserState;->decimalCp1:I
+Landroid/icu/impl/number/Parse$ParserState;->decimalCp2:I
+Landroid/icu/impl/number/Parse$ParserState;->decimalType1:Landroid/icu/impl/number/Parse$SeparatorType;
+Landroid/icu/impl/number/Parse$ParserState;->decimalType2:Landroid/icu/impl/number/Parse$SeparatorType;
+Landroid/icu/impl/number/Parse$ParserState;->digitTrie:Landroid/icu/impl/TextTrieMap;
+Landroid/icu/impl/number/Parse$ParserState;->getItem(I)Landroid/icu/impl/number/Parse$StateItem;
+Landroid/icu/impl/number/Parse$ParserState;->getNext()Landroid/icu/impl/number/Parse$StateItem;
+Landroid/icu/impl/number/Parse$ParserState;->groupingCp1:I
+Landroid/icu/impl/number/Parse$ParserState;->groupingCp2:I
+Landroid/icu/impl/number/Parse$ParserState;->groupingMode:Landroid/icu/impl/number/Parse$GroupingMode;
+Landroid/icu/impl/number/Parse$ParserState;->groupingType1:Landroid/icu/impl/number/Parse$SeparatorType;
+Landroid/icu/impl/number/Parse$ParserState;->groupingType2:Landroid/icu/impl/number/Parse$SeparatorType;
+Landroid/icu/impl/number/Parse$ParserState;->items:[Landroid/icu/impl/number/Parse$StateItem;
+Landroid/icu/impl/number/Parse$ParserState;->lastInsertedIndex()I
+Landroid/icu/impl/number/Parse$ParserState;->length:I
+Landroid/icu/impl/number/Parse$ParserState;->mode:Landroid/icu/impl/number/Parse$ParseMode;
+Landroid/icu/impl/number/Parse$ParserState;->parseCurrency:Z
+Landroid/icu/impl/number/Parse$ParserState;->prevItems:[Landroid/icu/impl/number/Parse$StateItem;
+Landroid/icu/impl/number/Parse$ParserState;->prevLength:I
+Landroid/icu/impl/number/Parse$ParserState;->properties:Landroid/icu/impl/number/DecimalFormatProperties;
+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;
+Landroid/icu/impl/number/Parse$SeparatorType;->PERIOD_LIKE:Landroid/icu/impl/number/Parse$SeparatorType;
+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
+Landroid/icu/impl/number/Parse$StateItem;->clear()Landroid/icu/impl/number/Parse$StateItem;
+Landroid/icu/impl/number/Parse$StateItem;->copyFrom(Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$StateName;I)Landroid/icu/impl/number/Parse$StateItem;
+Landroid/icu/impl/number/Parse$StateItem;->currentAffixPattern:Ljava/lang/CharSequence;
+Landroid/icu/impl/number/Parse$StateItem;->currentCurrencyTrieState:Landroid/icu/impl/TextTrieMap$ParseState;
+Landroid/icu/impl/number/Parse$StateItem;->currentDigitTrieState:Landroid/icu/impl/TextTrieMap$ParseState;
+Landroid/icu/impl/number/Parse$StateItem;->currentDigitType:Landroid/icu/impl/number/Parse$DigitType;
+Landroid/icu/impl/number/Parse$StateItem;->currentOffset:I
+Landroid/icu/impl/number/Parse$StateItem;->currentStepwiseParserTag:J
+Landroid/icu/impl/number/Parse$StateItem;->currentString:Ljava/lang/CharSequence;
+Landroid/icu/impl/number/Parse$StateItem;->currentTrailing:Z
+Landroid/icu/impl/number/Parse$StateItem;->exponent:I
+Landroid/icu/impl/number/Parse$StateItem;->fq:Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
+Landroid/icu/impl/number/Parse$StateItem;->groupingCp:I
+Landroid/icu/impl/number/Parse$StateItem;->groupingWidths:J
+Landroid/icu/impl/number/Parse$StateItem;->hasNumber()Z
+Landroid/icu/impl/number/Parse$StateItem;->id:C
+Landroid/icu/impl/number/Parse$StateItem;->isoCode:Ljava/lang/String;
+Landroid/icu/impl/number/Parse$StateItem;->name:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateItem;->numDigits:I
+Landroid/icu/impl/number/Parse$StateItem;->path:Ljava/lang/String;
+Landroid/icu/impl/number/Parse$StateItem;->returnTo1:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateItem;->returnTo2:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateItem;->sawCurrency:Z
+Landroid/icu/impl/number/Parse$StateItem;->sawDecimalPoint:Z
+Landroid/icu/impl/number/Parse$StateItem;->sawExponentDigit:Z
+Landroid/icu/impl/number/Parse$StateItem;->sawInfinity:Z
+Landroid/icu/impl/number/Parse$StateItem;->sawNaN:Z
+Landroid/icu/impl/number/Parse$StateItem;->sawNegative:Z
+Landroid/icu/impl/number/Parse$StateItem;->sawNegativeExponent:Z
+Landroid/icu/impl/number/Parse$StateItem;->sawPrefix:Z
+Landroid/icu/impl/number/Parse$StateItem;->sawSuffix:Z
+Landroid/icu/impl/number/Parse$StateItem;->score:I
+Landroid/icu/impl/number/Parse$StateItem;->toCurrencyAmount(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/util/CurrencyAmount;
+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;
+Landroid/icu/impl/number/Parse$StateName;->AFTER_INTEGER_DIGIT:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->AFTER_PREFIX:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->AFTER_SUFFIX:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->BEFORE_PREFIX:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->BEFORE_SUFFIX:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->BEFORE_SUFFIX_SEEN_EXPONENT:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->INSIDE_AFFIX_PATTERN:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->INSIDE_CURRENCY:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->INSIDE_DIGIT:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->INSIDE_STRING:Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->valueOf(Ljava/lang/String;)Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse$StateName;->values()[Landroid/icu/impl/number/Parse$StateName;
+Landroid/icu/impl/number/Parse;->acceptAffixHolder(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$AffixHolder;Z)V
+Landroid/icu/impl/number/Parse;->acceptAffixPattern(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;J)J
+Landroid/icu/impl/number/Parse;->acceptAffixPatternHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;J)J
+Landroid/icu/impl/number/Parse;->acceptAffixPatternNonIgnorable(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;IJJ)J
+Landroid/icu/impl/number/Parse;->acceptAffixPatternOffset(ILandroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)J
+Landroid/icu/impl/number/Parse;->acceptBidi(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptCurrency(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptCurrency(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)J
+Landroid/icu/impl/number/Parse;->acceptCurrencyHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/TextTrieMap$ParseState;)J
+Landroid/icu/impl/number/Parse;->acceptCurrencyOffset(ILandroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptDecimalPoint(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptDigitHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$DigitType;)V
+Landroid/icu/impl/number/Parse;->acceptDigitTrie(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$DigitType;)J
+Landroid/icu/impl/number/Parse;->acceptDigitTrieHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$DigitType;Landroid/icu/impl/TextTrieMap$ParseState;)J
+Landroid/icu/impl/number/Parse;->acceptDigitTrieOffset(ILandroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptExponentDigit(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptExponentSeparator(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptFractionDigit(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptGrouping(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptInfinity(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptIntegerDigit(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptMinusOrPlusSign(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Z)V
+Landroid/icu/impl/number/Parse;->acceptMinusSign(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Z)J
+Landroid/icu/impl/number/Parse;->acceptNan(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptPadding(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptPlusSign(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Z)J
+Landroid/icu/impl/number/Parse;->acceptPrefix(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptString(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;IZ)J
+Landroid/icu/impl/number/Parse;->acceptStringHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;IZ)J
+Landroid/icu/impl/number/Parse;->acceptStringNonIgnorable(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;ZIJJ)J
+Landroid/icu/impl/number/Parse;->acceptStringOffset(ILandroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)J
+Landroid/icu/impl/number/Parse;->acceptStringOrAffixPatternWithIgnorables(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;JZZ)J
+Landroid/icu/impl/number/Parse;->acceptSuffix(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->acceptWhitespace(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
+Landroid/icu/impl/number/Parse;->codePointEquals(IILandroid/icu/impl/number/Parse$ParserState;)Z
+Landroid/icu/impl/number/Parse;->isIgnorable(ILandroid/icu/impl/number/Parse$ParserState;)Z
+Landroid/icu/impl/number/Parse;->makeDigitTrie([Ljava/lang/String;)Landroid/icu/impl/TextTrieMap;
+Landroid/icu/impl/number/Parse;->MAX_LONG_AS_BIG_DECIMAL:Ljava/math/BigDecimal;
+Landroid/icu/impl/number/Parse;->MIN_LONG_AS_BIG_DECIMAL:Ljava/math/BigDecimal;
+Landroid/icu/impl/number/Parse;->recordDigit(Landroid/icu/impl/number/Parse$StateItem;BLandroid/icu/impl/number/Parse$DigitType;)V
+Landroid/icu/impl/number/Parse;->UNISET_BIDI:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/number/Parse;->UNISET_COMMA_LIKE:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/number/Parse;->UNISET_OTHER_GROUPING_SEPARATORS:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/number/Parse;->UNISET_PERIOD_LIKE:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/number/Parse;->UNISET_STRICT_COMMA_LIKE:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/number/Parse;->UNISET_STRICT_PERIOD_LIKE:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/number/Parse;->UNISET_WHITESPACE:Landroid/icu/text/UnicodeSet;
+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
+Landroid/icu/impl/number/PatternStringParser$ParserState;->pattern:Ljava/lang/String;
+Landroid/icu/impl/number/PatternStringParser$ParserState;->peek()I
+Landroid/icu/impl/number/PatternStringParser$ParserState;->toParseException(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
+Landroid/icu/impl/number/PatternStringParser;->consumeAffix(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)J
+Landroid/icu/impl/number/PatternStringParser;->consumeExponent(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
+Landroid/icu/impl/number/PatternStringParser;->consumeFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
+Landroid/icu/impl/number/PatternStringParser;->consumeFractionFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
+Landroid/icu/impl/number/PatternStringParser;->consumeIntegerFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
+Landroid/icu/impl/number/PatternStringParser;->consumeLiteral(Landroid/icu/impl/number/PatternStringParser$ParserState;)V
+Landroid/icu/impl/number/PatternStringParser;->consumePadding(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;Landroid/icu/impl/number/Padder$PadPosition;)V
+Landroid/icu/impl/number/PatternStringParser;->consumePattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)V
+Landroid/icu/impl/number/PatternStringParser;->consumeSubpattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
+Landroid/icu/impl/number/PatternStringParser;->parseToExistingPropertiesImpl(Ljava/lang/String;Landroid/icu/impl/number/DecimalFormatProperties;I)V
+Landroid/icu/impl/number/PatternStringParser;->patternInfoToProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;I)V
+Landroid/icu/impl/PatternTokenizer;->AFTER_QUOTE:I
+Landroid/icu/impl/PatternTokenizer;->appendEscaped(Ljava/lang/StringBuffer;I)V
+Landroid/icu/impl/PatternTokenizer;->escapeCharacters:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/PatternTokenizer;->extraQuotingCharacters:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/PatternTokenizer;->HEX:I
+Landroid/icu/impl/PatternTokenizer;->ignorableCharacters:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/PatternTokenizer;->IN_QUOTE:I
+Landroid/icu/impl/PatternTokenizer;->limit:I
+Landroid/icu/impl/PatternTokenizer;->needingQuoteCharacters:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/PatternTokenizer;->NONE:I
+Landroid/icu/impl/PatternTokenizer;->NORMAL_QUOTE:I
+Landroid/icu/impl/PatternTokenizer;->NO_QUOTE:I
+Landroid/icu/impl/PatternTokenizer;->pattern:Ljava/lang/String;
+Landroid/icu/impl/PatternTokenizer;->SLASH_START:I
+Landroid/icu/impl/PatternTokenizer;->start:I
+Landroid/icu/impl/PatternTokenizer;->START_QUOTE:I
+Landroid/icu/impl/PatternTokenizer;->syntaxCharacters:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/PatternTokenizer;->usingQuote:Z
+Landroid/icu/impl/PatternTokenizer;->usingSlash:Z
+Landroid/icu/impl/PluralRulesLoader;-><init>()V
+Landroid/icu/impl/PluralRulesLoader;->checkBuildRulesIdMaps()V
+Landroid/icu/impl/PluralRulesLoader;->getLocaleIdToRulesIdMap(Landroid/icu/text/PluralRules$PluralType;)Ljava/util/Map;
+Landroid/icu/impl/PluralRulesLoader;->getRulesIdToEquivalentULocaleMap()Ljava/util/Map;
+Landroid/icu/impl/PluralRulesLoader;->localeIdToCardinalRulesId:Ljava/util/Map;
+Landroid/icu/impl/PluralRulesLoader;->localeIdToOrdinalRulesId:Ljava/util/Map;
+Landroid/icu/impl/PluralRulesLoader;->localeIdToPluralRanges:Ljava/util/Map;
+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;
+Landroid/icu/impl/Relation$SimpleEntry;->value:Ljava/lang/Object;
+Landroid/icu/impl/Relation;->data:Ljava/util/Map;
+Landroid/icu/impl/Relation;->frozen:Z
+Landroid/icu/impl/Relation;->newSet()Ljava/util/Set;
+Landroid/icu/impl/Relation;->setComparatorParam:[Ljava/lang/Object;
+Landroid/icu/impl/Relation;->setCreator:Ljava/lang/reflect/Constructor;
+Landroid/icu/impl/RuleCharacterIterator;->buf:[C
+Landroid/icu/impl/RuleCharacterIterator;->bufPos:I
+Landroid/icu/impl/RuleCharacterIterator;->isEscaped:Z
+Landroid/icu/impl/RuleCharacterIterator;->pos:Ljava/text/ParsePosition;
+Landroid/icu/impl/RuleCharacterIterator;->sym:Landroid/icu/text/SymbolTable;
+Landroid/icu/impl/RuleCharacterIterator;->text:Ljava/lang/String;
+Landroid/icu/impl/RuleCharacterIterator;->_advance(I)V
+Landroid/icu/impl/RuleCharacterIterator;->_current()I
+Landroid/icu/impl/SimpleCache;->cacheRef:Ljava/lang/ref/Reference;
+Landroid/icu/impl/SimpleCache;->capacity:I
+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
+Landroid/icu/impl/TextTrieMap$CharIterator;->_nextIdx:I
+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;
+Landroid/icu/impl/TextTrieMap$Node;->charCount()I
+Landroid/icu/impl/TextTrieMap$Node;->findMatch(Landroid/icu/impl/TextTrieMap$CharIterator;)Landroid/icu/impl/TextTrieMap$Node;
+Landroid/icu/impl/TextTrieMap$Node;->hasChildFor(C)Z
+Landroid/icu/impl/TextTrieMap$Node;->lenMatches([CI)I
+Landroid/icu/impl/TextTrieMap$Node;->matchFollowing(Landroid/icu/impl/TextTrieMap$CharIterator;)Z
+Landroid/icu/impl/TextTrieMap$Node;->split(I)V
+Landroid/icu/impl/TextTrieMap$Node;->takeStep(CILandroid/icu/impl/TextTrieMap$Node$StepResult;)V
+Landroid/icu/impl/TextTrieMap$Node;->values()Ljava/util/Iterator;
+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;
+Landroid/icu/impl/TextTrieMap;->find(Landroid/icu/impl/TextTrieMap$Node;Landroid/icu/impl/TextTrieMap$CharIterator;Landroid/icu/impl/TextTrieMap$ResultHandler;)V
+Landroid/icu/impl/TextTrieMap;->subArray([CI)[C
+Landroid/icu/impl/TextTrieMap;->subArray([CII)[C
+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;
+Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;-><init>(Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;Ljava/lang/String;I)V
+Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;-><init>(Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;Ljava/lang/String;ILandroid/icu/text/TimeZoneFormat$TimeType;)V
+Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;->matchLength:I
+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
+Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->handlePrefixMatch(ILjava/util/Iterator;)Z
+Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->resetResults()V
+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;
+Landroid/icu/impl/TimeZoneGenericNames$Pattern;->_key:Ljava/lang/String;
+Landroid/icu/impl/TimeZoneGenericNames;-><init>(Landroid/icu/util/ULocale;)V
+Landroid/icu/impl/TimeZoneGenericNames;->createGenericMatchInfo(Landroid/icu/text/TimeZoneNames$MatchInfo;)Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;
+Landroid/icu/impl/TimeZoneGenericNames;->DST_CHECK_RANGE:J
+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;
+Landroid/icu/impl/TimeZoneGenericNames;->getPartialLocationName(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Ljava/lang/String;
+Landroid/icu/impl/TimeZoneGenericNames;->getTargetRegion()Ljava/lang/String;
+Landroid/icu/impl/TimeZoneGenericNames;->init()V
+Landroid/icu/impl/TimeZoneGenericNames;->loadStrings(Ljava/lang/String;)V
+Landroid/icu/impl/TimeZoneGenericNames;->_frozen:Z
+Landroid/icu/impl/TimeZoneGenericNames;->_genericLocationNamesMap:Ljava/util/concurrent/ConcurrentHashMap;
+Landroid/icu/impl/TimeZoneGenericNames;->_genericPartialLocationNamesMap:Ljava/util/concurrent/ConcurrentHashMap;
+Landroid/icu/impl/TimeZoneGenericNames;->_gnamesTrie:Landroid/icu/impl/TextTrieMap;
+Landroid/icu/impl/TimeZoneGenericNames;->_gnamesTrieFullyLoaded:Z
+Landroid/icu/impl/TimeZoneGenericNames;->_locale:Landroid/icu/util/ULocale;
+Landroid/icu/impl/TimeZoneGenericNames;->_localeDisplayNamesRef:Ljava/lang/ref/WeakReference;
+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
+Landroid/icu/impl/Trie2$Trie2Iterator;->mapper:Landroid/icu/impl/Trie2$ValueMapper;
+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
+Landroid/icu/impl/Trie2$UTrie2Header;->indexLength:I
+Landroid/icu/impl/Trie2$UTrie2Header;->options:I
+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;
+Landroid/icu/impl/Trie2$ValueWidth;->values()[Landroid/icu/impl/Trie2$ValueWidth;
+Landroid/icu/impl/Trie2;->data16:I
+Landroid/icu/impl/Trie2;->data32:[I
+Landroid/icu/impl/Trie2;->dataLength:I
+Landroid/icu/impl/Trie2;->dataNullOffset:I
+Landroid/icu/impl/Trie2;->defaultValueMapper:Landroid/icu/impl/Trie2$ValueMapper;
+Landroid/icu/impl/Trie2;->errorValue:I
+Landroid/icu/impl/Trie2;->fHash:I
+Landroid/icu/impl/Trie2;->hashByte(II)I
+Landroid/icu/impl/Trie2;->hashInt(II)I
+Landroid/icu/impl/Trie2;->hashUChar32(II)I
+Landroid/icu/impl/Trie2;->header:Landroid/icu/impl/Trie2$UTrie2Header;
+Landroid/icu/impl/Trie2;->highStart:I
+Landroid/icu/impl/Trie2;->highValueIndex:I
+Landroid/icu/impl/Trie2;->index2NullOffset:I
+Landroid/icu/impl/Trie2;->index:[C
+Landroid/icu/impl/Trie2;->indexLength:I
+Landroid/icu/impl/Trie2;->initHash()I
+Landroid/icu/impl/Trie2;->initialValue:I
+Landroid/icu/impl/Trie2;->rangeEnd(III)I
+Landroid/icu/impl/Trie2;->UNEWTRIE2_INDEX_1_LENGTH:I
+Landroid/icu/impl/Trie2;->UNEWTRIE2_INDEX_GAP_LENGTH:I
+Landroid/icu/impl/Trie2;->UNEWTRIE2_INDEX_GAP_OFFSET:I
+Landroid/icu/impl/Trie2;->UNEWTRIE2_MAX_DATA_LENGTH:I
+Landroid/icu/impl/Trie2;->UNEWTRIE2_MAX_INDEX_2_LENGTH:I
+Landroid/icu/impl/Trie2;->UTRIE2_BAD_UTF8_DATA_OFFSET:I
+Landroid/icu/impl/Trie2;->UTRIE2_CP_PER_INDEX_1_ENTRY:I
+Landroid/icu/impl/Trie2;->UTRIE2_DATA_BLOCK_LENGTH:I
+Landroid/icu/impl/Trie2;->UTRIE2_DATA_GRANULARITY:I
+Landroid/icu/impl/Trie2;->UTRIE2_DATA_MASK:I
+Landroid/icu/impl/Trie2;->UTRIE2_DATA_START_OFFSET:I
+Landroid/icu/impl/Trie2;->UTRIE2_INDEX_1_OFFSET:I
+Landroid/icu/impl/Trie2;->UTRIE2_INDEX_2_BLOCK_LENGTH:I
+Landroid/icu/impl/Trie2;->UTRIE2_INDEX_2_BMP_LENGTH:I
+Landroid/icu/impl/Trie2;->UTRIE2_INDEX_2_MASK:I
+Landroid/icu/impl/Trie2;->UTRIE2_INDEX_2_OFFSET:I
+Landroid/icu/impl/Trie2;->UTRIE2_INDEX_SHIFT:I
+Landroid/icu/impl/Trie2;->UTRIE2_LSCP_INDEX_2_LENGTH:I
+Landroid/icu/impl/Trie2;->UTRIE2_LSCP_INDEX_2_OFFSET:I
+Landroid/icu/impl/Trie2;->UTRIE2_MAX_INDEX_1_LENGTH:I
+Landroid/icu/impl/Trie2;->UTRIE2_OMITTED_BMP_INDEX_1_LENGTH:I
+Landroid/icu/impl/Trie2;->UTRIE2_OPTIONS_VALUE_BITS_MASK:I
+Landroid/icu/impl/Trie2;->UTRIE2_SHIFT_1:I
+Landroid/icu/impl/Trie2;->UTRIE2_SHIFT_1_2:I
+Landroid/icu/impl/Trie2;->UTRIE2_SHIFT_2:I
+Landroid/icu/impl/Trie2;->UTRIE2_UTF8_2B_INDEX_2_LENGTH:I
+Landroid/icu/impl/Trie2;->UTRIE2_UTF8_2B_INDEX_2_OFFSET:I
+Landroid/icu/impl/Trie2Writable;->allocDataBlock(I)I
+Landroid/icu/impl/Trie2Writable;->allocIndex2Block()I
+Landroid/icu/impl/Trie2Writable;->compactData()V
+Landroid/icu/impl/Trie2Writable;->compactIndex2()V
+Landroid/icu/impl/Trie2Writable;->compactTrie()V
+Landroid/icu/impl/Trie2Writable;->data:[I
+Landroid/icu/impl/Trie2Writable;->dataCapacity:I
+Landroid/icu/impl/Trie2Writable;->equal_int([IIII)Z
+Landroid/icu/impl/Trie2Writable;->fillBlock(IIIIIZ)V
+Landroid/icu/impl/Trie2Writable;->findHighStart(I)I
+Landroid/icu/impl/Trie2Writable;->findSameDataBlock(III)I
+Landroid/icu/impl/Trie2Writable;->findSameIndex2Block(II)I
+Landroid/icu/impl/Trie2Writable;->firstFreeBlock:I
+Landroid/icu/impl/Trie2Writable;->freeze(Landroid/icu/impl/Trie2;Landroid/icu/impl/Trie2$ValueWidth;)V
+Landroid/icu/impl/Trie2Writable;->get(IZ)I
+Landroid/icu/impl/Trie2Writable;->getDataBlock(IZ)I
+Landroid/icu/impl/Trie2Writable;->getIndex2Block(IZ)I
+Landroid/icu/impl/Trie2Writable;->index1:[I
+Landroid/icu/impl/Trie2Writable;->index2:[I
+Landroid/icu/impl/Trie2Writable;->index2Length:I
+Landroid/icu/impl/Trie2Writable;->index2NullOffset:I
+Landroid/icu/impl/Trie2Writable;->init(II)V
+Landroid/icu/impl/Trie2Writable;->isCompacted:Z
+Landroid/icu/impl/Trie2Writable;->isInNullBlock(IZ)Z
+Landroid/icu/impl/Trie2Writable;->isWritableBlock(I)Z
+Landroid/icu/impl/Trie2Writable;->map:[I
+Landroid/icu/impl/Trie2Writable;->releaseDataBlock(I)V
+Landroid/icu/impl/Trie2Writable;->set(IZI)Landroid/icu/impl/Trie2Writable;
+Landroid/icu/impl/Trie2Writable;->setIndex2Entry(II)V
+Landroid/icu/impl/Trie2Writable;->uncompact()V
+Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_DATA_0800_OFFSET:I
+Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_DATA_NULL_OFFSET:I
+Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_DATA_START_OFFSET:I
+Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_INDEX_2_NULL_OFFSET:I
+Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_INDEX_2_START_OFFSET:I
+Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_INITIAL_DATA_LENGTH:I
+Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_MEDIUM_DATA_LENGTH:I
+Landroid/icu/impl/Trie2Writable;->UTRIE2_DEBUG:Z
+Landroid/icu/impl/Trie2Writable;->UTRIE2_MAX_DATA_LENGTH:I
+Landroid/icu/impl/Trie2Writable;->UTRIE2_MAX_INDEX_LENGTH:I
+Landroid/icu/impl/Trie2Writable;->writeBlock(II)V
+Landroid/icu/impl/Trie2_16;-><init>()V
+Landroid/icu/impl/Trie2_16;->rangeEnd(III)I
+Landroid/icu/impl/Trie2_32;-><init>()V
+Landroid/icu/impl/Trie2_32;->rangeEnd(III)I
+Landroid/icu/impl/Trie;->checkHeader(I)Z
+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
+Landroid/icu/impl/UBiDiProps;->BPT_MASK:I
+Landroid/icu/impl/UBiDiProps;->BPT_SHIFT:I
+Landroid/icu/impl/UBiDiProps;->CLASS_MASK:I
+Landroid/icu/impl/UBiDiProps;->DATA_FILE_NAME:Ljava/lang/String;
+Landroid/icu/impl/UBiDiProps;->DATA_NAME:Ljava/lang/String;
+Landroid/icu/impl/UBiDiProps;->DATA_TYPE:Ljava/lang/String;
+Landroid/icu/impl/UBiDiProps;->ESC_MIRROR_DELTA:I
+Landroid/icu/impl/UBiDiProps;->FMT:I
+Landroid/icu/impl/UBiDiProps;->getClassFromProps(I)I
+Landroid/icu/impl/UBiDiProps;->getFlagFromProps(II)Z
+Landroid/icu/impl/UBiDiProps;->getMirror(II)I
+Landroid/icu/impl/UBiDiProps;->getMirrorCodePoint(I)I
+Landroid/icu/impl/UBiDiProps;->getMirrorDeltaFromProps(I)I
+Landroid/icu/impl/UBiDiProps;->getMirrorIndex(I)I
+Landroid/icu/impl/UBiDiProps;->indexes:[I
+Landroid/icu/impl/UBiDiProps;->IS_MIRRORED_SHIFT:I
+Landroid/icu/impl/UBiDiProps;->IX_JG_LIMIT2:I
+Landroid/icu/impl/UBiDiProps;->IX_JG_LIMIT:I
+Landroid/icu/impl/UBiDiProps;->IX_JG_START2:I
+Landroid/icu/impl/UBiDiProps;->IX_JG_START:I
+Landroid/icu/impl/UBiDiProps;->IX_MAX_VALUES:I
+Landroid/icu/impl/UBiDiProps;->IX_MIRROR_LENGTH:I
+Landroid/icu/impl/UBiDiProps;->IX_TOP:I
+Landroid/icu/impl/UBiDiProps;->IX_TRIE_SIZE:I
+Landroid/icu/impl/UBiDiProps;->jgArray2:[B
+Landroid/icu/impl/UBiDiProps;->jgArray:[B
+Landroid/icu/impl/UBiDiProps;->JOIN_CONTROL_SHIFT:I
+Landroid/icu/impl/UBiDiProps;->JT_MASK:I
+Landroid/icu/impl/UBiDiProps;->JT_SHIFT:I
+Landroid/icu/impl/UBiDiProps;->MAX_JG_MASK:I
+Landroid/icu/impl/UBiDiProps;->MAX_JG_SHIFT:I
+Landroid/icu/impl/UBiDiProps;->mirrors:[I
+Landroid/icu/impl/UBiDiProps;->MIRROR_DELTA_SHIFT:I
+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
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->clear()V
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->containsOffset(I)Z
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->hasCountAtOffset(II)Z
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->isEmpty()Z
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->length:I
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->list:[I
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->popMinimum(Landroid/icu/util/OutputInt;)I
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->setMaxLength(I)V
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->shift(I)V
+Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->start:I
+Landroid/icu/impl/UnicodeSetStringSpan;->addToSpanNotSet(I)V
+Landroid/icu/impl/UnicodeSetStringSpan;->all:Z
+Landroid/icu/impl/UnicodeSetStringSpan;->ALL_CP_CONTAINED:S
+Landroid/icu/impl/UnicodeSetStringSpan;->LONG_SPAN:S
+Landroid/icu/impl/UnicodeSetStringSpan;->makeSpanLengthByte(I)S
+Landroid/icu/impl/UnicodeSetStringSpan;->matches16(Ljava/lang/CharSequence;ILjava/lang/String;I)Z
+Landroid/icu/impl/UnicodeSetStringSpan;->matches16CPB(Ljava/lang/CharSequence;IILjava/lang/String;I)Z
+Landroid/icu/impl/UnicodeSetStringSpan;->maxLength16:I
+Landroid/icu/impl/UnicodeSetStringSpan;->offsets:Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;
+Landroid/icu/impl/UnicodeSetStringSpan;->someRelevant:Z
+Landroid/icu/impl/UnicodeSetStringSpan;->spanContainedAndCount(Ljava/lang/CharSequence;ILandroid/icu/util/OutputInt;)I
+Landroid/icu/impl/UnicodeSetStringSpan;->spanLengths:[S
+Landroid/icu/impl/UnicodeSetStringSpan;->spanNot(Ljava/lang/CharSequence;ILandroid/icu/util/OutputInt;)I
+Landroid/icu/impl/UnicodeSetStringSpan;->spanNotBack(Ljava/lang/CharSequence;I)I
+Landroid/icu/impl/UnicodeSetStringSpan;->spanNotSet:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/UnicodeSetStringSpan;->spanOne(Landroid/icu/text/UnicodeSet;Ljava/lang/CharSequence;II)I
+Landroid/icu/impl/UnicodeSetStringSpan;->spanOneBack(Landroid/icu/text/UnicodeSet;Ljava/lang/CharSequence;I)I
+Landroid/icu/impl/UnicodeSetStringSpan;->spanSet:Landroid/icu/text/UnicodeSet;
+Landroid/icu/impl/UnicodeSetStringSpan;->spanWithStrings(Ljava/lang/CharSequence;IILandroid/icu/text/UnicodeSet$SpanCondition;)I
+Landroid/icu/impl/UnicodeSetStringSpan;->strings:Ljava/util/ArrayList;
+Landroid/icu/impl/UResource$Key;-><init>([BII)V
+Landroid/icu/impl/UResource$Key;->bytes:[B
+Landroid/icu/impl/UResource$Key;->internalSubString(II)Ljava/lang/String;
+Landroid/icu/impl/UResource$Key;->length:I
+Landroid/icu/impl/UResource$Key;->offset:I
+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
+Landroid/icu/lang/CharSequences;->compare(ILjava/lang/CharSequence;)I
+Landroid/icu/lang/CharSequences;->compare(Ljava/lang/CharSequence;I)I
+Landroid/icu/lang/CharSequences;->compare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
+Landroid/icu/lang/CharSequences;->equals(ILjava/lang/CharSequence;)Z
+Landroid/icu/lang/CharSequences;->equals(Ljava/lang/CharSequence;I)Z
+Landroid/icu/lang/CharSequences;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
+Landroid/icu/lang/CharSequences;->equalsChars(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
+Landroid/icu/lang/CharSequences;->getSingleCodePoint(Ljava/lang/CharSequence;)I
+Landroid/icu/lang/CharSequences;->indexOf(Ljava/lang/CharSequence;I)I
+Landroid/icu/lang/CharSequences;->matchAfter(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)I
+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
+Landroid/icu/lang/UCharacter$HangulSyllableType;->COUNT:I
+Landroid/icu/lang/UCharacter$JoiningGroup;->COUNT:I
+Landroid/icu/lang/UCharacter$JoiningType;->COUNT:I
+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;
+Landroid/icu/lang/UCharacter$UCharacterTypeIterator;->trieIterator:Ljava/util/Iterator;
+Landroid/icu/lang/UCharacter$UnicodeBlock;-><init>(Ljava/lang/String;I)V
+Landroid/icu/lang/UCharacter$UnicodeBlock;->BLOCKS_:[Landroid/icu/lang/UCharacter$UnicodeBlock;
+Landroid/icu/lang/UCharacter$UnicodeBlock;->COUNT:I
+Landroid/icu/lang/UCharacter$UnicodeBlock;->mref:Ljava/lang/ref/SoftReference;
+Landroid/icu/lang/UCharacter$UnicodeBlock;->m_id_:I
+Landroid/icu/lang/UCharacter$UnicodeBlock;->trimBlockName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/lang/UCharacter$WordBreak;->COUNT:I
+Landroid/icu/lang/UCharacter;-><init>()V
+Landroid/icu/lang/UCharacter;->APPLICATION_PROGRAM_COMMAND_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_EIGHT_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_FIVE_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_FOUR_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_HUNDRED_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_NINE_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_ONE_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_SEVEN_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_SIX_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_TEN_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_THOUSAND_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_THREE_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_TWO_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_ZERO_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_EIGHTH_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_FIFTH_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_FIRST_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_FOURTH_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_HUNDRED_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_HUNDRED_MILLION_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_NINETH_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_SECOND_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_SEVENTH_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_SIXTH_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_TEN_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_TEN_THOUSAND_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_THIRD_:I
+Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_THOUSAND_:I
+Landroid/icu/lang/UCharacter;->DELETE_:I
+Landroid/icu/lang/UCharacter;->FIGURE_SPACE_:I
+Landroid/icu/lang/UCharacter;->getCaseLocale(Landroid/icu/util/ULocale;)I
+Landroid/icu/lang/UCharacter;->getCaseLocale(Ljava/util/Locale;)I
+Landroid/icu/lang/UCharacter;->getCharFromName1_0(Ljava/lang/String;)I
+Landroid/icu/lang/UCharacter;->getDefaultCaseLocale()I
+Landroid/icu/lang/UCharacter;->getISOComment(I)Ljava/lang/String;
+Landroid/icu/lang/UCharacter;->getName1_0(I)Ljava/lang/String;
+Landroid/icu/lang/UCharacter;->getName1_0Iterator()Landroid/icu/util/ValueIterator;
+Landroid/icu/lang/UCharacter;->getPropertyValueEnumNoThrow(ILjava/lang/CharSequence;)I
+Landroid/icu/lang/UCharacter;->getStringPropertyValue(III)Ljava/lang/String;
+Landroid/icu/lang/UCharacter;->IDEOGRAPHIC_NUMBER_ZERO_:I
+Landroid/icu/lang/UCharacter;->isJavaLetter(I)Z
+Landroid/icu/lang/UCharacter;->isJavaLetterOrDigit(I)Z
+Landroid/icu/lang/UCharacter;->isSpace(I)Z
+Landroid/icu/lang/UCharacter;->LAST_CHAR_MASK_:I
+Landroid/icu/lang/UCharacter;->NARROW_NO_BREAK_SPACE_:I
+Landroid/icu/lang/UCharacter;->NO_BREAK_SPACE_:I
+Landroid/icu/lang/UCharacter;->toTitleFirst(Landroid/icu/util/ULocale;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/lang/UCharacter;->TO_TITLE_WHOLE_STRING_NO_LOWERCASE:Landroid/icu/text/CaseMap$Title;
+Landroid/icu/lang/UCharacter;->UNIT_SEPARATOR_:I
+Landroid/icu/lang/UCharacterCategory;-><init>()V
+Landroid/icu/lang/UCharacterDirection;-><init>()V
+Landroid/icu/lang/UCharacterEnums$ECharacterCategory;->CHAR_CATEGORY_COUNT:B
+Landroid/icu/lang/UCharacterEnums$ECharacterDirection;->CHAR_DIRECTION_COUNT:I
+Landroid/icu/lang/UCharacterEnums;-><init>()V
+Landroid/icu/lang/UProperty$NameChoice;->COUNT:I
+Landroid/icu/lang/UProperty;->BINARY_LIMIT:I
+Landroid/icu/lang/UProperty;->DOUBLE_LIMIT:I
+Landroid/icu/lang/UProperty;->INT_LIMIT:I
+Landroid/icu/lang/UProperty;->ISO_COMMENT:I
+Landroid/icu/lang/UProperty;->MASK_LIMIT:I
+Landroid/icu/lang/UProperty;->OTHER_PROPERTY_LIMIT:I
+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
+Landroid/icu/lang/UScript$ScriptMetadata;->getScriptProps(I)I
+Landroid/icu/lang/UScript$ScriptMetadata;->LB_LETTERS:I
+Landroid/icu/lang/UScript$ScriptMetadata;->LIMITED_USE:I
+Landroid/icu/lang/UScript$ScriptMetadata;->RECOMMENDED:I
+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
+Landroid/icu/lang/UScriptRun;-><init>([C)V
+Landroid/icu/lang/UScriptRun;-><init>([CII)V
+Landroid/icu/lang/UScriptRun;->dec(I)I
+Landroid/icu/lang/UScriptRun;->dec(II)I
+Landroid/icu/lang/UScriptRun;->emptyCharArray:[C
+Landroid/icu/lang/UScriptRun;->fixup(I)V
+Landroid/icu/lang/UScriptRun;->fixupCount:I
+Landroid/icu/lang/UScriptRun;->getPairIndex(I)I
+Landroid/icu/lang/UScriptRun;->getScriptCode()I
+Landroid/icu/lang/UScriptRun;->getScriptLimit()I
+Landroid/icu/lang/UScriptRun;->getScriptStart()I
+Landroid/icu/lang/UScriptRun;->highBit(I)B
+Landroid/icu/lang/UScriptRun;->inc(I)I
+Landroid/icu/lang/UScriptRun;->inc(II)I
+Landroid/icu/lang/UScriptRun;->limitInc(I)I
+Landroid/icu/lang/UScriptRun;->mod(I)I
+Landroid/icu/lang/UScriptRun;->next()Z
+Landroid/icu/lang/UScriptRun;->pairedCharExtra:I
+Landroid/icu/lang/UScriptRun;->pairedCharPower:I
+Landroid/icu/lang/UScriptRun;->pairedChars:[I
+Landroid/icu/lang/UScriptRun;->parenSP:I
+Landroid/icu/lang/UScriptRun;->parenStack:[Landroid/icu/lang/UScriptRun$ParenStackEntry;
+Landroid/icu/lang/UScriptRun;->PAREN_STACK_DEPTH:I
+Landroid/icu/lang/UScriptRun;->pop()V
+Landroid/icu/lang/UScriptRun;->push(II)V
+Landroid/icu/lang/UScriptRun;->pushCount:I
+Landroid/icu/lang/UScriptRun;->reset()V
+Landroid/icu/lang/UScriptRun;->reset(II)V
+Landroid/icu/lang/UScriptRun;->reset(Ljava/lang/String;)V
+Landroid/icu/lang/UScriptRun;->reset(Ljava/lang/String;II)V
+Landroid/icu/lang/UScriptRun;->reset([C)V
+Landroid/icu/lang/UScriptRun;->reset([CII)V
+Landroid/icu/lang/UScriptRun;->sameScript(II)Z
+Landroid/icu/lang/UScriptRun;->scriptCode:I
+Landroid/icu/lang/UScriptRun;->scriptLimit:I
+Landroid/icu/lang/UScriptRun;->scriptStart:I
+Landroid/icu/lang/UScriptRun;->stackIsEmpty()Z
+Landroid/icu/lang/UScriptRun;->stackIsNotEmpty()Z
+Landroid/icu/lang/UScriptRun;->syncFixup()V
+Landroid/icu/lang/UScriptRun;->text:[C
+Landroid/icu/lang/UScriptRun;->textIndex:I
+Landroid/icu/lang/UScriptRun;->textLimit:I
+Landroid/icu/lang/UScriptRun;->textStart:I
+Landroid/icu/lang/UScriptRun;->top()Landroid/icu/lang/UScriptRun$ParenStackEntry;
+Landroid/icu/math/BigDecimal;-><init>()V
+Landroid/icu/math/BigDecimal;->allzero([BI)Z
+Landroid/icu/math/BigDecimal;->bad([C)V
+Landroid/icu/math/BigDecimal;->badarg(Ljava/lang/String;ILjava/lang/String;)V
+Landroid/icu/math/BigDecimal;->byteaddsub([BI[BIIZ)[B
+Landroid/icu/math/BigDecimal;->bytecar:[B
+Landroid/icu/math/BigDecimal;->bytedig:[B
+Landroid/icu/math/BigDecimal;->checkdigits(Landroid/icu/math/BigDecimal;I)V
+Landroid/icu/math/BigDecimal;->clone(Landroid/icu/math/BigDecimal;)Landroid/icu/math/BigDecimal;
+Landroid/icu/math/BigDecimal;->diginit()[B
+Landroid/icu/math/BigDecimal;->dodivide(CLandroid/icu/math/BigDecimal;Landroid/icu/math/MathContext;I)Landroid/icu/math/BigDecimal;
+Landroid/icu/math/BigDecimal;->exp:I
+Landroid/icu/math/BigDecimal;->extend([BI)[B
+Landroid/icu/math/BigDecimal;->finish(Landroid/icu/math/MathContext;Z)Landroid/icu/math/BigDecimal;
+Landroid/icu/math/BigDecimal;->form:B
+Landroid/icu/math/BigDecimal;->ind:B
+Landroid/icu/math/BigDecimal;->intcheck(II)I
+Landroid/icu/math/BigDecimal;->isneg:B
+Landroid/icu/math/BigDecimal;->ispos:B
+Landroid/icu/math/BigDecimal;->iszero:B
+Landroid/icu/math/BigDecimal;->layout()[C
+Landroid/icu/math/BigDecimal;->mant:[B
+Landroid/icu/math/BigDecimal;->MaxArg:I
+Landroid/icu/math/BigDecimal;->MaxExp:I
+Landroid/icu/math/BigDecimal;->MinArg:I
+Landroid/icu/math/BigDecimal;->MinExp:I
+Landroid/icu/math/BigDecimal;->plainMC:Landroid/icu/math/MathContext;
+Landroid/icu/math/BigDecimal;->round(II)Landroid/icu/math/BigDecimal;
+Landroid/icu/math/BigDecimal;->round(Landroid/icu/math/MathContext;)Landroid/icu/math/BigDecimal;
+Landroid/icu/math/MathContext;->DEFAULT_DIGITS:I
+Landroid/icu/math/MathContext;->DEFAULT_FORM:I
+Landroid/icu/math/MathContext;->DEFAULT_LOSTDIGITS:Z
+Landroid/icu/math/MathContext;->DEFAULT_ROUNDINGMODE:I
+Landroid/icu/math/MathContext;->digits:I
+Landroid/icu/math/MathContext;->form:I
+Landroid/icu/math/MathContext;->isValidRound(I)Z
+Landroid/icu/math/MathContext;->lostDigits:Z
+Landroid/icu/math/MathContext;->MAX_DIGITS:I
+Landroid/icu/math/MathContext;->MIN_DIGITS:I
+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
+Landroid/icu/text/AlphabeticIndex$Bucket;->label:Ljava/lang/String;
+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;
+Landroid/icu/text/AlphabeticIndex$BucketList;->getBucketCount()I
+Landroid/icu/text/AlphabeticIndex$BucketList;->getBucketIndex(Ljava/lang/CharSequence;Landroid/icu/text/Collator;)I
+Landroid/icu/text/AlphabeticIndex$BucketList;->immutableVisibleList:Ljava/util/List;
+Landroid/icu/text/AlphabeticIndex$ImmutableIndex;-><init>(Landroid/icu/text/AlphabeticIndex$BucketList;Landroid/icu/text/Collator;)V
+Landroid/icu/text/AlphabeticIndex$ImmutableIndex;->buckets:Landroid/icu/text/AlphabeticIndex$BucketList;
+Landroid/icu/text/AlphabeticIndex$ImmutableIndex;->collatorPrimaryOnly:Landroid/icu/text/Collator;
+Landroid/icu/text/AlphabeticIndex$Record;-><init>(Ljava/lang/CharSequence;Ljava/lang/Object;)V
+Landroid/icu/text/AlphabeticIndex$Record;->data:Ljava/lang/Object;
+Landroid/icu/text/AlphabeticIndex$Record;->name:Ljava/lang/CharSequence;
+Landroid/icu/text/AlphabeticIndex;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/RuleBasedCollator;)V
+Landroid/icu/text/AlphabeticIndex;->addChineseIndexCharacters()Z
+Landroid/icu/text/AlphabeticIndex;->addIndexExemplars(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/AlphabeticIndex;->BASE:Ljava/lang/String;
+Landroid/icu/text/AlphabeticIndex;->binaryCmp:Ljava/util/Comparator;
+Landroid/icu/text/AlphabeticIndex;->buckets:Landroid/icu/text/AlphabeticIndex$BucketList;
+Landroid/icu/text/AlphabeticIndex;->CGJ:C
+Landroid/icu/text/AlphabeticIndex;->collatorExternal:Landroid/icu/text/RuleBasedCollator;
+Landroid/icu/text/AlphabeticIndex;->collatorOriginal:Landroid/icu/text/RuleBasedCollator;
+Landroid/icu/text/AlphabeticIndex;->collatorPrimaryOnly:Landroid/icu/text/RuleBasedCollator;
+Landroid/icu/text/AlphabeticIndex;->createBucketList()Landroid/icu/text/AlphabeticIndex$BucketList;
+Landroid/icu/text/AlphabeticIndex;->firstCharsInScripts:Ljava/util/List;
+Landroid/icu/text/AlphabeticIndex;->fixLabel(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/AlphabeticIndex;->GC_CN_MASK:I
+Landroid/icu/text/AlphabeticIndex;->GC_LL_MASK:I
+Landroid/icu/text/AlphabeticIndex;->GC_LM_MASK:I
+Landroid/icu/text/AlphabeticIndex;->GC_LO_MASK:I
+Landroid/icu/text/AlphabeticIndex;->GC_LT_MASK:I
+Landroid/icu/text/AlphabeticIndex;->GC_LU_MASK:I
+Landroid/icu/text/AlphabeticIndex;->GC_L_MASK:I
+Landroid/icu/text/AlphabeticIndex;->getFirstCharactersInScripts()Ljava/util/List;
+Landroid/icu/text/AlphabeticIndex;->hasMultiplePrimaryWeights(Landroid/icu/text/RuleBasedCollator;JLjava/lang/String;)Z
+Landroid/icu/text/AlphabeticIndex;->inflowLabel:Ljava/lang/String;
+Landroid/icu/text/AlphabeticIndex;->initBuckets()V
+Landroid/icu/text/AlphabeticIndex;->initialLabels:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/AlphabeticIndex;->initLabels()Ljava/util/List;
+Landroid/icu/text/AlphabeticIndex;->inputList:Ljava/util/List;
+Landroid/icu/text/AlphabeticIndex;->isOneLabelBetterThanOther(Landroid/icu/text/Normalizer2;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/icu/text/AlphabeticIndex;->maxLabelCount:I
+Landroid/icu/text/AlphabeticIndex;->overflowLabel:Ljava/lang/String;
+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
+Landroid/icu/text/ArabicShaping;->changeLamAlef(C)C
+Landroid/icu/text/ArabicShaping;->convertFEto06:[I
+Landroid/icu/text/ArabicShaping;->convertNormalizedLamAlef:[C
+Landroid/icu/text/ArabicShaping;->countSpacesLeft([CII)I
+Landroid/icu/text/ArabicShaping;->countSpacesRight([CII)I
+Landroid/icu/text/ArabicShaping;->countSpaceSub([CIC)I
+Landroid/icu/text/ArabicShaping;->deshapeNormalize([CII)I
+Landroid/icu/text/ArabicShaping;->deShapeUnicode([CIII)I
+Landroid/icu/text/ArabicShaping;->DESHAPE_MODE:I
+Landroid/icu/text/ArabicShaping;->DIGITS_AN2EN:I
+Landroid/icu/text/ArabicShaping;->DIGITS_EN2AN:I
+Landroid/icu/text/ArabicShaping;->DIGITS_EN2AN_INIT_AL:I
+Landroid/icu/text/ArabicShaping;->DIGITS_EN2AN_INIT_LR:I
+Landroid/icu/text/ArabicShaping;->DIGITS_MASK:I
+Landroid/icu/text/ArabicShaping;->DIGITS_NOOP:I
+Landroid/icu/text/ArabicShaping;->DIGIT_TYPE_AN:I
+Landroid/icu/text/ArabicShaping;->DIGIT_TYPE_AN_EXTENDED:I
+Landroid/icu/text/ArabicShaping;->DIGIT_TYPE_MASK:I
+Landroid/icu/text/ArabicShaping;->expandCompositChar([CIIII)I
+Landroid/icu/text/ArabicShaping;->expandCompositCharAtBegin([CIII)Z
+Landroid/icu/text/ArabicShaping;->expandCompositCharAtEnd([CIII)Z
+Landroid/icu/text/ArabicShaping;->expandCompositCharAtNear([CIIIII)Z
+Landroid/icu/text/ArabicShaping;->flipArray([CIII)I
+Landroid/icu/text/ArabicShaping;->getLink(C)I
+Landroid/icu/text/ArabicShaping;->HAMZA06_CHAR:C
+Landroid/icu/text/ArabicShaping;->HAMZAFE_CHAR:C
+Landroid/icu/text/ArabicShaping;->handleGeneratedSpaces([CII)I
+Landroid/icu/text/ArabicShaping;->handleTashkeelWithTatweel([CI)I
+Landroid/icu/text/ArabicShaping;->internalShape([CII[CII)I
+Landroid/icu/text/ArabicShaping;->invertBuffer([CII)V
+Landroid/icu/text/ArabicShaping;->IRRELEVANT:I
+Landroid/icu/text/ArabicShaping;->irrelevantPos:[I
+Landroid/icu/text/ArabicShaping;->isAlefChar(C)Z
+Landroid/icu/text/ArabicShaping;->isIsolatedTashkeelChar(C)I
+Landroid/icu/text/ArabicShaping;->isLamAlefChar(C)Z
+Landroid/icu/text/ArabicShaping;->isLogical:Z
+Landroid/icu/text/ArabicShaping;->isNormalizedLamAlefChar(C)Z
+Landroid/icu/text/ArabicShaping;->isSeenFamilyChar(C)I
+Landroid/icu/text/ArabicShaping;->isTashkeelChar(C)Z
+Landroid/icu/text/ArabicShaping;->isTashkeelCharFE(C)Z
+Landroid/icu/text/ArabicShaping;->isTashkeelOnTatweelChar(C)I
+Landroid/icu/text/ArabicShaping;->LAMALEF_AUTO:I
+Landroid/icu/text/ArabicShaping;->LAMALEF_BEGIN:I
+Landroid/icu/text/ArabicShaping;->LAMALEF_END:I
+Landroid/icu/text/ArabicShaping;->LAMALEF_MASK:I
+Landroid/icu/text/ArabicShaping;->LAMALEF_NEAR:I
+Landroid/icu/text/ArabicShaping;->LAMALEF_RESIZE:I
+Landroid/icu/text/ArabicShaping;->LAMALEF_SPACE_SUB:C
+Landroid/icu/text/ArabicShaping;->LAMTYPE:I
+Landroid/icu/text/ArabicShaping;->LAM_CHAR:C
+Landroid/icu/text/ArabicShaping;->LENGTH_FIXED_SPACES_AT_BEGINNING:I
+Landroid/icu/text/ArabicShaping;->LENGTH_FIXED_SPACES_AT_END:I
+Landroid/icu/text/ArabicShaping;->LENGTH_FIXED_SPACES_NEAR:I
+Landroid/icu/text/ArabicShaping;->LENGTH_GROW_SHRINK:I
+Landroid/icu/text/ArabicShaping;->LENGTH_MASK:I
+Landroid/icu/text/ArabicShaping;->LETTERS_MASK:I
+Landroid/icu/text/ArabicShaping;->LETTERS_NOOP:I
+Landroid/icu/text/ArabicShaping;->LETTERS_SHAPE:I
+Landroid/icu/text/ArabicShaping;->LETTERS_SHAPE_TASHKEEL_ISOLATED:I
+Landroid/icu/text/ArabicShaping;->LETTERS_UNSHAPE:I
+Landroid/icu/text/ArabicShaping;->LINKL:I
+Landroid/icu/text/ArabicShaping;->LINKR:I
+Landroid/icu/text/ArabicShaping;->LINK_MASK:I
+Landroid/icu/text/ArabicShaping;->NEW_TAIL_CHAR:C
+Landroid/icu/text/ArabicShaping;->normalize([CII)I
+Landroid/icu/text/ArabicShaping;->OLD_TAIL_CHAR:C
+Landroid/icu/text/ArabicShaping;->options:I
+Landroid/icu/text/ArabicShaping;->presLink:[I
+Landroid/icu/text/ArabicShaping;->SEEN_MASK:I
+Landroid/icu/text/ArabicShaping;->SEEN_TWOCELL_NEAR:I
+Landroid/icu/text/ArabicShaping;->SHADDA06_CHAR:C
+Landroid/icu/text/ArabicShaping;->SHADDA_CHAR:C
+Landroid/icu/text/ArabicShaping;->SHADDA_TATWEEL_CHAR:C
+Landroid/icu/text/ArabicShaping;->shape([CII)V
+Landroid/icu/text/ArabicShaping;->shape([CII[CII)I
+Landroid/icu/text/ArabicShaping;->shapeTable:[[[I
+Landroid/icu/text/ArabicShaping;->shapeToArabicDigitsWithContext([CIICZ)V
+Landroid/icu/text/ArabicShaping;->shapeUnicode([CIIII)I
+Landroid/icu/text/ArabicShaping;->SHAPE_MODE:I
+Landroid/icu/text/ArabicShaping;->SHAPE_TAIL_NEW_UNICODE:I
+Landroid/icu/text/ArabicShaping;->SHAPE_TAIL_TYPE_MASK:I
+Landroid/icu/text/ArabicShaping;->shiftArray([CIIC)V
+Landroid/icu/text/ArabicShaping;->spacesRelativeToTextBeginEnd:Z
+Landroid/icu/text/ArabicShaping;->SPACES_RELATIVE_TO_TEXT_BEGIN_END:I
+Landroid/icu/text/ArabicShaping;->SPACES_RELATIVE_TO_TEXT_MASK:I
+Landroid/icu/text/ArabicShaping;->SPACE_CHAR:C
+Landroid/icu/text/ArabicShaping;->specialChar(C)I
+Landroid/icu/text/ArabicShaping;->tailChar:C
+Landroid/icu/text/ArabicShaping;->tailFamilyIsolatedFinal:[I
+Landroid/icu/text/ArabicShaping;->tashkeelMedial:[I
+Landroid/icu/text/ArabicShaping;->TASHKEEL_BEGIN:I
+Landroid/icu/text/ArabicShaping;->TASHKEEL_END:I
+Landroid/icu/text/ArabicShaping;->TASHKEEL_MASK:I
+Landroid/icu/text/ArabicShaping;->TASHKEEL_REPLACE_BY_TATWEEL:I
+Landroid/icu/text/ArabicShaping;->TASHKEEL_RESIZE:I
+Landroid/icu/text/ArabicShaping;->TASHKEEL_SPACE_SUB:C
+Landroid/icu/text/ArabicShaping;->TATWEEL_CHAR:C
+Landroid/icu/text/ArabicShaping;->TEXT_DIRECTION_LOGICAL:I
+Landroid/icu/text/ArabicShaping;->TEXT_DIRECTION_MASK:I
+Landroid/icu/text/ArabicShaping;->TEXT_DIRECTION_VISUAL_LTR:I
+Landroid/icu/text/ArabicShaping;->TEXT_DIRECTION_VISUAL_RTL:I
+Landroid/icu/text/ArabicShaping;->yehHamzaToYeh:[C
+Landroid/icu/text/ArabicShaping;->YEHHAMZA_MASK:I
+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
+Landroid/icu/text/Bidi$IsoRun;->lastBase:B
+Landroid/icu/text/Bidi$IsoRun;->lastStrong:B
+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
+Landroid/icu/text/Bidi$LevState;->lastStrongRTL:I
+Landroid/icu/text/Bidi$LevState;->runLevel:B
+Landroid/icu/text/Bidi$LevState;->runStart:I
+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
+Landroid/icu/text/Bidi;-><init>(Ljava/text/AttributedCharacterIterator;)V
+Landroid/icu/text/Bidi;-><init>([CI[BIII)V
+Landroid/icu/text/Bidi;->addPoint(II)V
+Landroid/icu/text/Bidi;->adjustWSLevels()V
+Landroid/icu/text/Bidi;->AL:B
+Landroid/icu/text/Bidi;->AN:B
+Landroid/icu/text/Bidi;->B:B
+Landroid/icu/text/Bidi;->baseIsLeftToRight()Z
+Landroid/icu/text/Bidi;->bdp:Landroid/icu/impl/UBiDiProps;
+Landroid/icu/text/Bidi;->Bidi_Abs(I)I
+Landroid/icu/text/Bidi;->Bidi_Min(II)I
+Landroid/icu/text/Bidi;->BN:B
+Landroid/icu/text/Bidi;->bracketAddOpening(Landroid/icu/text/Bidi$BracketData;CI)V
+Landroid/icu/text/Bidi;->bracketInit(Landroid/icu/text/Bidi$BracketData;)V
+Landroid/icu/text/Bidi;->bracketProcessB(Landroid/icu/text/Bidi$BracketData;B)V
+Landroid/icu/text/Bidi;->bracketProcessBoundary(Landroid/icu/text/Bidi$BracketData;IBB)V
+Landroid/icu/text/Bidi;->bracketProcessChar(Landroid/icu/text/Bidi$BracketData;I)V
+Landroid/icu/text/Bidi;->bracketProcessClosing(Landroid/icu/text/Bidi$BracketData;II)B
+Landroid/icu/text/Bidi;->bracketProcessLRI_RLI(Landroid/icu/text/Bidi$BracketData;B)V
+Landroid/icu/text/Bidi;->bracketProcessPDI(Landroid/icu/text/Bidi$BracketData;)V
+Landroid/icu/text/Bidi;->checkExplicitLevels()B
+Landroid/icu/text/Bidi;->checkParaCount()V
+Landroid/icu/text/Bidi;->CLASS_DEFAULT:I
+Landroid/icu/text/Bidi;->controlCount:I
+Landroid/icu/text/Bidi;->countParagraphs()I
+Landroid/icu/text/Bidi;->countRuns()I
+Landroid/icu/text/Bidi;->CR:C
+Landroid/icu/text/Bidi;->createLineBidi(II)Landroid/icu/text/Bidi;
+Landroid/icu/text/Bidi;->CS:B
+Landroid/icu/text/Bidi;->customClassifier:Landroid/icu/text/BidiClassifier;
+Landroid/icu/text/Bidi;->defaultParaLevel:B
+Landroid/icu/text/Bidi;->direction:B
+Landroid/icu/text/Bidi;->directionFromFlags()B
+Landroid/icu/text/Bidi;->DIRECTION_DEFAULT_LEFT_TO_RIGHT:I
+Landroid/icu/text/Bidi;->DIRECTION_DEFAULT_RIGHT_TO_LEFT:I
+Landroid/icu/text/Bidi;->DIRECTION_LEFT_TO_RIGHT:I
+Landroid/icu/text/Bidi;->DIRECTION_RIGHT_TO_LEFT:I
+Landroid/icu/text/Bidi;->DirFromStrong(B)B
+Landroid/icu/text/Bidi;->DirPropFlag(B)I
+Landroid/icu/text/Bidi;->DirPropFlagE(B)I
+Landroid/icu/text/Bidi;->DirPropFlagE:[I
+Landroid/icu/text/Bidi;->DirPropFlagLR(B)I
+Landroid/icu/text/Bidi;->DirPropFlagLR:[I
+Landroid/icu/text/Bidi;->DirPropFlagMultiRuns:I
+Landroid/icu/text/Bidi;->DirPropFlagO(B)I
+Landroid/icu/text/Bidi;->DirPropFlagO:[I
+Landroid/icu/text/Bidi;->dirProps:[B
+Landroid/icu/text/Bidi;->dirPropsMemory:[B
+Landroid/icu/text/Bidi;->DO_MIRRORING:S
+Landroid/icu/text/Bidi;->EN:B
+Landroid/icu/text/Bidi;->ENL:B
+Landroid/icu/text/Bidi;->ENR:B
+Landroid/icu/text/Bidi;->epilogue:Ljava/lang/String;
+Landroid/icu/text/Bidi;->ES:B
+Landroid/icu/text/Bidi;->ET:B
+Landroid/icu/text/Bidi;->FIRSTALLOC:I
+Landroid/icu/text/Bidi;->firstL_R_AL()B
+Landroid/icu/text/Bidi;->firstL_R_AL_EN_AN()B
+Landroid/icu/text/Bidi;->fixN0c(Landroid/icu/text/Bidi$BracketData;IIB)V
+Landroid/icu/text/Bidi;->flags:I
+Landroid/icu/text/Bidi;->FOUND_L:B
+Landroid/icu/text/Bidi;->FOUND_R:B
+Landroid/icu/text/Bidi;->FSI:B
+Landroid/icu/text/Bidi;->GetAction(B)S
+Landroid/icu/text/Bidi;->GetActionProps(S)S
+Landroid/icu/text/Bidi;->getBaseDirection(Ljava/lang/CharSequence;)B
+Landroid/icu/text/Bidi;->getBaseLevel()I
+Landroid/icu/text/Bidi;->getCustomClassifier()Landroid/icu/text/BidiClassifier;
+Landroid/icu/text/Bidi;->getCustomizedClass(I)I
+Landroid/icu/text/Bidi;->getDirection()B
+Landroid/icu/text/Bidi;->getDirProps()V
+Landroid/icu/text/Bidi;->getDirPropsMemory(I)V
+Landroid/icu/text/Bidi;->getDirPropsMemory(ZI)V
+Landroid/icu/text/Bidi;->getInitialDirPropsMemory(I)V
+Landroid/icu/text/Bidi;->getInitialLevelsMemory(I)V
+Landroid/icu/text/Bidi;->getInitialRunsMemory(I)V
+Landroid/icu/text/Bidi;->getLength()I
+Landroid/icu/text/Bidi;->getLevelAt(I)B
+Landroid/icu/text/Bidi;->getLevels()[B
+Landroid/icu/text/Bidi;->getLevelsMemory(I)V
+Landroid/icu/text/Bidi;->getLevelsMemory(ZI)V
+Landroid/icu/text/Bidi;->getLogicalIndex(I)I
+Landroid/icu/text/Bidi;->getLogicalMap()[I
+Landroid/icu/text/Bidi;->getLogicalRun(I)Landroid/icu/text/BidiRun;
+Landroid/icu/text/Bidi;->getLogicalToVisualRunsMap()V
+Landroid/icu/text/Bidi;->GetLRFromLevel(B)B
+Landroid/icu/text/Bidi;->getMemory(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;ZI)Ljava/lang/Object;
+Landroid/icu/text/Bidi;->getParagraph(I)Landroid/icu/text/BidiRun;
+Landroid/icu/text/Bidi;->getParagraphByIndex(I)Landroid/icu/text/BidiRun;
+Landroid/icu/text/Bidi;->getParagraphIndex(I)I
+Landroid/icu/text/Bidi;->getParaLevel()B
+Landroid/icu/text/Bidi;->GetParaLevelAt(I)B
+Landroid/icu/text/Bidi;->getProcessedLength()I
+Landroid/icu/text/Bidi;->getReorderingMode()I
+Landroid/icu/text/Bidi;->getReorderingOptions()I
+Landroid/icu/text/Bidi;->getResultLength()I
+Landroid/icu/text/Bidi;->getRunCount()I
+Landroid/icu/text/Bidi;->getRunLevel(I)I
+Landroid/icu/text/Bidi;->getRunLimit(I)I
+Landroid/icu/text/Bidi;->getRunsMemory(I)V
+Landroid/icu/text/Bidi;->getRunsMemory(ZI)V
+Landroid/icu/text/Bidi;->getRunStart(I)I
+Landroid/icu/text/Bidi;->GetState(B)S
+Landroid/icu/text/Bidi;->GetStateProps(S)S
+Landroid/icu/text/Bidi;->getText()[C
+Landroid/icu/text/Bidi;->getTextAsString()Ljava/lang/String;
+Landroid/icu/text/Bidi;->getVisualIndex(I)I
+Landroid/icu/text/Bidi;->getVisualMap()[I
+Landroid/icu/text/Bidi;->getVisualRun(I)Landroid/icu/text/BidiRun;
+Landroid/icu/text/Bidi;->groupProp:[S
+Landroid/icu/text/Bidi;->impAct0:[S
+Landroid/icu/text/Bidi;->impAct1:[S
+Landroid/icu/text/Bidi;->impAct2:[S
+Landroid/icu/text/Bidi;->impAct3:[S
+Landroid/icu/text/Bidi;->IMPTABLEVELS_COLUMNS:I
+Landroid/icu/text/Bidi;->IMPTABLEVELS_RES:I
+Landroid/icu/text/Bidi;->impTabL_DEFAULT:[[B
+Landroid/icu/text/Bidi;->impTabL_GROUP_NUMBERS_WITH_R:[[B
+Landroid/icu/text/Bidi;->impTabL_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS:[[B
+Landroid/icu/text/Bidi;->impTabL_INVERSE_LIKE_DIRECT_WITH_MARKS:[[B
+Landroid/icu/text/Bidi;->impTabL_INVERSE_NUMBERS_AS_L:[[B
+Landroid/icu/text/Bidi;->impTabL_NUMBERS_SPECIAL:[[B
+Landroid/icu/text/Bidi;->impTabPair:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->impTabProps:[[S
+Landroid/icu/text/Bidi;->IMPTABPROPS_COLUMNS:I
+Landroid/icu/text/Bidi;->IMPTABPROPS_RES:I
+Landroid/icu/text/Bidi;->impTabR_DEFAULT:[[B
+Landroid/icu/text/Bidi;->impTabR_GROUP_NUMBERS_WITH_R:[[B
+Landroid/icu/text/Bidi;->impTabR_INVERSE_LIKE_DIRECT:[[B
+Landroid/icu/text/Bidi;->impTabR_INVERSE_LIKE_DIRECT_WITH_MARKS:[[B
+Landroid/icu/text/Bidi;->impTabR_INVERSE_NUMBERS_AS_L:[[B
+Landroid/icu/text/Bidi;->impTab_DEFAULT:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->impTab_GROUP_NUMBERS_WITH_R:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->impTab_INVERSE_FOR_NUMBERS_SPECIAL:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->impTab_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->impTab_INVERSE_LIKE_DIRECT:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->impTab_INVERSE_LIKE_DIRECT_WITH_MARKS:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->impTab_INVERSE_NUMBERS_AS_L:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->impTab_NUMBERS_SPECIAL:Landroid/icu/text/Bidi$ImpTabPair;
+Landroid/icu/text/Bidi;->insertPoints:Landroid/icu/text/Bidi$InsertPoints;
+Landroid/icu/text/Bidi;->INSERT_LRM_FOR_NUMERIC:S
+Landroid/icu/text/Bidi;->invertMap([I)[I
+Landroid/icu/text/Bidi;->IsBidiControlChar(I)Z
+Landroid/icu/text/Bidi;->IsDefaultLevel(B)Z
+Landroid/icu/text/Bidi;->isGoodLogicalToVisualRunsMap:Z
+Landroid/icu/text/Bidi;->isInverse()Z
+Landroid/icu/text/Bidi;->isInverse:Z
+Landroid/icu/text/Bidi;->isLeftToRight()Z
+Landroid/icu/text/Bidi;->isMixed()Z
+Landroid/icu/text/Bidi;->ISOLATE:I
+Landroid/icu/text/Bidi;->isolateCount:I
+Landroid/icu/text/Bidi;->isolates:[Landroid/icu/text/Bidi$Isolate;
+Landroid/icu/text/Bidi;->isOrderParagraphsLTR()Z
+Landroid/icu/text/Bidi;->isRightToLeft()Z
+Landroid/icu/text/Bidi;->KEEP_BASE_COMBINING:S
+Landroid/icu/text/Bidi;->L:B
+Landroid/icu/text/Bidi;->lastArabicPos:I
+Landroid/icu/text/Bidi;->lastL_R_AL()B
+Landroid/icu/text/Bidi;->length:I
+Landroid/icu/text/Bidi;->levels:[B
+Landroid/icu/text/Bidi;->levelsMemory:[B
+Landroid/icu/text/Bidi;->LEVEL_DEFAULT_LTR:B
+Landroid/icu/text/Bidi;->LEVEL_DEFAULT_RTL:B
+Landroid/icu/text/Bidi;->LEVEL_OVERRIDE:B
+Landroid/icu/text/Bidi;->LF:C
+Landroid/icu/text/Bidi;->logicalToVisualRunsMap:[I
+Landroid/icu/text/Bidi;->LOOKING_FOR_PDI:I
+Landroid/icu/text/Bidi;->LRE:B
+Landroid/icu/text/Bidi;->LRI:B
+Landroid/icu/text/Bidi;->LRM_AFTER:I
+Landroid/icu/text/Bidi;->LRM_BEFORE:I
+Landroid/icu/text/Bidi;->LRO:B
+Landroid/icu/text/Bidi;->LTR:B
+Landroid/icu/text/Bidi;->MAP_NOWHERE:I
+Landroid/icu/text/Bidi;->MASK_BN_EXPLICIT:I
+Landroid/icu/text/Bidi;->MASK_B_S:I
+Landroid/icu/text/Bidi;->MASK_EMBEDDING:I
+Landroid/icu/text/Bidi;->MASK_EXPLICIT:I
+Landroid/icu/text/Bidi;->MASK_ISO:I
+Landroid/icu/text/Bidi;->MASK_LTR:I
+Landroid/icu/text/Bidi;->MASK_POSSIBLE_N:I
+Landroid/icu/text/Bidi;->MASK_RTL:I
+Landroid/icu/text/Bidi;->MASK_R_AL:I
+Landroid/icu/text/Bidi;->MASK_STRONG_EN_AN:I
+Landroid/icu/text/Bidi;->MASK_WS:I
+Landroid/icu/text/Bidi;->MAX_EXPLICIT_LEVEL:B
+Landroid/icu/text/Bidi;->mayAllocateRuns:Z
+Landroid/icu/text/Bidi;->mayAllocateText:Z
+Landroid/icu/text/Bidi;->MIXED:B
+Landroid/icu/text/Bidi;->NEUTRAL:B
+Landroid/icu/text/Bidi;->NoOverride(B)B
+Landroid/icu/text/Bidi;->NOT_SEEKING_STRONG:I
+Landroid/icu/text/Bidi;->NSM:B
+Landroid/icu/text/Bidi;->ON:B
+Landroid/icu/text/Bidi;->OPTION_DEFAULT:I
+Landroid/icu/text/Bidi;->OPTION_INSERT_MARKS:I
+Landroid/icu/text/Bidi;->OPTION_REMOVE_CONTROLS:I
+Landroid/icu/text/Bidi;->OPTION_STREAMING:I
+Landroid/icu/text/Bidi;->orderParagraphsLTR(Z)V
+Landroid/icu/text/Bidi;->orderParagraphsLTR:Z
+Landroid/icu/text/Bidi;->originalLength:I
+Landroid/icu/text/Bidi;->OUTPUT_REVERSE:S
+Landroid/icu/text/Bidi;->paraBidi:Landroid/icu/text/Bidi;
+Landroid/icu/text/Bidi;->paraCount:I
+Landroid/icu/text/Bidi;->paraLevel:B
+Landroid/icu/text/Bidi;->paras_level:[B
+Landroid/icu/text/Bidi;->paras_limit:[I
+Landroid/icu/text/Bidi;->PDF:B
+Landroid/icu/text/Bidi;->PDI:B
+Landroid/icu/text/Bidi;->processPropertySeq(Landroid/icu/text/Bidi$LevState;SII)V
+Landroid/icu/text/Bidi;->prologue:Ljava/lang/String;
+Landroid/icu/text/Bidi;->R:B
+Landroid/icu/text/Bidi;->REMOVE_BIDI_CONTROLS:S
+Landroid/icu/text/Bidi;->reorderingMode:I
+Landroid/icu/text/Bidi;->reorderingOptions:I
+Landroid/icu/text/Bidi;->reorderLogical([B)[I
+Landroid/icu/text/Bidi;->reorderVisual([B)[I
+Landroid/icu/text/Bidi;->reorderVisually([BI[Ljava/lang/Object;II)V
+Landroid/icu/text/Bidi;->REORDER_COUNT:S
+Landroid/icu/text/Bidi;->REORDER_DEFAULT:S
+Landroid/icu/text/Bidi;->REORDER_GROUP_NUMBERS_WITH_R:S
+Landroid/icu/text/Bidi;->REORDER_INVERSE_FOR_NUMBERS_SPECIAL:S
+Landroid/icu/text/Bidi;->REORDER_INVERSE_LIKE_DIRECT:S
+Landroid/icu/text/Bidi;->REORDER_INVERSE_NUMBERS_AS_L:S
+Landroid/icu/text/Bidi;->REORDER_LAST_LOGICAL_TO_VISUAL:S
+Landroid/icu/text/Bidi;->REORDER_NUMBERS_SPECIAL:S
+Landroid/icu/text/Bidi;->REORDER_RUNS_ONLY:S
+Landroid/icu/text/Bidi;->requiresBidi([CII)Z
+Landroid/icu/text/Bidi;->resolveExplicitLevels()B
+Landroid/icu/text/Bidi;->resolveImplicitLevels(IISS)V
+Landroid/icu/text/Bidi;->resultLength:I
+Landroid/icu/text/Bidi;->RLE:B
+Landroid/icu/text/Bidi;->RLI:B
+Landroid/icu/text/Bidi;->RLM_AFTER:I
+Landroid/icu/text/Bidi;->RLM_BEFORE:I
+Landroid/icu/text/Bidi;->RLO:B
+Landroid/icu/text/Bidi;->RTL:B
+Landroid/icu/text/Bidi;->runCount:I
+Landroid/icu/text/Bidi;->runs:[Landroid/icu/text/BidiRun;
+Landroid/icu/text/Bidi;->runsMemory:[Landroid/icu/text/BidiRun;
+Landroid/icu/text/Bidi;->S:B
+Landroid/icu/text/Bidi;->SEEKING_STRONG_FOR_FSI:I
+Landroid/icu/text/Bidi;->SEEKING_STRONG_FOR_PARA:I
+Landroid/icu/text/Bidi;->setContext(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/icu/text/Bidi;->setCustomClassifier(Landroid/icu/text/BidiClassifier;)V
+Landroid/icu/text/Bidi;->setInverse(Z)V
+Landroid/icu/text/Bidi;->setLevelsOutsideIsolates(IIB)V
+Landroid/icu/text/Bidi;->setLine(II)Landroid/icu/text/Bidi;
+Landroid/icu/text/Bidi;->setPara(Ljava/lang/String;B[B)V
+Landroid/icu/text/Bidi;->setPara(Ljava/text/AttributedCharacterIterator;)V
+Landroid/icu/text/Bidi;->setPara([CB[B)V
+Landroid/icu/text/Bidi;->setParaRunsOnly([CB)V
+Landroid/icu/text/Bidi;->setParaSuccess()V
+Landroid/icu/text/Bidi;->setReorderingMode(I)V
+Landroid/icu/text/Bidi;->setReorderingOptions(I)V
+Landroid/icu/text/Bidi;->simpleRuns:[Landroid/icu/text/BidiRun;
+Landroid/icu/text/Bidi;->SIMPLE_OPENINGS_COUNT:I
+Landroid/icu/text/Bidi;->SIMPLE_PARAS_COUNT:I
+Landroid/icu/text/Bidi;->testDirPropFlagAt(II)Z
+Landroid/icu/text/Bidi;->text:[C
+Landroid/icu/text/Bidi;->trailingWSStart:I
+Landroid/icu/text/Bidi;->verifyRange(III)V
+Landroid/icu/text/Bidi;->verifyValidPara()V
+Landroid/icu/text/Bidi;->verifyValidParaOrLine()V
+Landroid/icu/text/Bidi;->writeReordered(I)Ljava/lang/String;
+Landroid/icu/text/Bidi;->writeReverse(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/icu/text/Bidi;->WS:B
+Landroid/icu/text/Bidi;->_AN:S
+Landroid/icu/text/Bidi;->_B:S
+Landroid/icu/text/Bidi;->_EN:S
+Landroid/icu/text/Bidi;->_L:S
+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
+Landroid/icu/text/BidiRun;->getDirection()B
+Landroid/icu/text/BidiRun;->getEmbeddingLevel()B
+Landroid/icu/text/BidiRun;->getLength()I
+Landroid/icu/text/BidiRun;->getLimit()I
+Landroid/icu/text/BidiRun;->getStart()I
+Landroid/icu/text/BidiRun;->insertRemove:I
+Landroid/icu/text/BidiRun;->isEvenRun()Z
+Landroid/icu/text/BidiRun;->isOddRun()Z
+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;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_LTR_TO_VIS_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_LTR_TO_VIS_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_RTL_TO_LOG_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_RTL_TO_LOG_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_RTL_TO_VIS_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_RTL_TO_VIS_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->matches(BLandroid/icu/text/BidiTransform$Order;BLandroid/icu/text/BidiTransform$Order;)Z
+Landroid/icu/text/BidiTransform$ReorderingScheme;->valueOf(Ljava/lang/String;)Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->values()[Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_LTR_TO_LOG_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_LTR_TO_LOG_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_LTR_TO_VIS_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_LTR_TO_VIS_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
+Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_RTL_TO_LOG_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
+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;
+Landroid/icu/text/BidiTransform;->IsLogical(Landroid/icu/text/BidiTransform$Order;)Z
+Landroid/icu/text/BidiTransform;->IsLTR(B)Z
+Landroid/icu/text/BidiTransform;->IsRTL(B)Z
+Landroid/icu/text/BidiTransform;->IsVisual(Landroid/icu/text/BidiTransform$Order;)Z
+Landroid/icu/text/BidiTransform;->mirror()V
+Landroid/icu/text/BidiTransform;->reorder()V
+Landroid/icu/text/BidiTransform;->reorderingOptions:I
+Landroid/icu/text/BidiTransform;->resolve(BI)V
+Landroid/icu/text/BidiTransform;->resolveBaseDirection([B)V
+Landroid/icu/text/BidiTransform;->reverse()V
+Landroid/icu/text/BidiTransform;->shapeArabic(I)V
+Landroid/icu/text/BidiTransform;->shapeArabic(II)V
+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;
+Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->registerInstance(Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;I)Ljava/lang/Object;
+Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->unregister(Ljava/lang/Object;)Z
+Landroid/icu/text/BreakIterator;->actualLocale:Landroid/icu/util/ULocale;
+Landroid/icu/text/BreakIterator;->DEBUG:Z
+Landroid/icu/text/BreakIterator;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/text/BreakIterator;->getBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
+Landroid/icu/text/BreakIterator;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
+Landroid/icu/text/BreakIterator;->getShim()Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
+Landroid/icu/text/BreakIterator;->iterCache:[Landroid/icu/impl/CacheValue;
+Landroid/icu/text/BreakIterator;->KIND_COUNT:I
+Landroid/icu/text/BreakIterator;->registerInstance(Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;I)Ljava/lang/Object;
+Landroid/icu/text/BreakIterator;->registerInstance(Landroid/icu/text/BreakIterator;Ljava/util/Locale;I)Ljava/lang/Object;
+Landroid/icu/text/BreakIterator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/BreakIterator;->setText(Ljava/lang/CharSequence;)V
+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
+Landroid/icu/text/CanonicalIterator;->done:Z
+Landroid/icu/text/CanonicalIterator;->extract(ILjava/lang/String;ILjava/lang/StringBuffer;)Ljava/util/Set;
+Landroid/icu/text/CanonicalIterator;->getEquivalents(Ljava/lang/String;)[Ljava/lang/String;
+Landroid/icu/text/CanonicalIterator;->getEquivalents2(Ljava/lang/String;)Ljava/util/Set;
+Landroid/icu/text/CanonicalIterator;->getSource()Ljava/lang/String;
+Landroid/icu/text/CanonicalIterator;->next()Ljava/lang/String;
+Landroid/icu/text/CanonicalIterator;->nfcImpl:Landroid/icu/impl/Normalizer2Impl;
+Landroid/icu/text/CanonicalIterator;->nfd:Landroid/icu/text/Normalizer2;
+Landroid/icu/text/CanonicalIterator;->permute(Ljava/lang/String;ZLjava/util/Set;)V
+Landroid/icu/text/CanonicalIterator;->pieces:[[Ljava/lang/String;
+Landroid/icu/text/CanonicalIterator;->PROGRESS:Z
+Landroid/icu/text/CanonicalIterator;->reset()V
+Landroid/icu/text/CanonicalIterator;->setSource(Ljava/lang/String;)V
+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;
+Landroid/icu/text/CaseMap$Fold;->DEFAULT:Landroid/icu/text/CaseMap$Fold;
+Landroid/icu/text/CaseMap$Fold;->omitUnchangedText()Landroid/icu/text/CaseMap$Fold;
+Landroid/icu/text/CaseMap$Fold;->OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Fold;
+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;
+Landroid/icu/text/CaseMap$Title;->apply(Ljava/util/Locale;Landroid/icu/text/BreakIterator;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
+Landroid/icu/text/CaseMap$Title;->DEFAULT:Landroid/icu/text/CaseMap$Title;
+Landroid/icu/text/CaseMap$Title;->noBreakAdjustment()Landroid/icu/text/CaseMap$Title;
+Landroid/icu/text/CaseMap$Title;->noLowercase()Landroid/icu/text/CaseMap$Title;
+Landroid/icu/text/CaseMap$Title;->omitUnchangedText()Landroid/icu/text/CaseMap$Title;
+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
+Landroid/icu/text/CaseMap;->internalOptions:I
+Landroid/icu/text/CaseMap;->omitUnchangedText()Landroid/icu/text/CaseMap;
+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;
+Landroid/icu/text/CharsetDetector;->detectAll()[Landroid/icu/text/CharsetMatch;
+Landroid/icu/text/CharsetDetector;->enableInputFilter(Z)Z
+Landroid/icu/text/CharsetDetector;->fByteStats:[S
+Landroid/icu/text/CharsetDetector;->fC1Bytes:Z
+Landroid/icu/text/CharsetDetector;->fDeclaredEncoding:Ljava/lang/String;
+Landroid/icu/text/CharsetDetector;->fEnabledRecognizers:[Z
+Landroid/icu/text/CharsetDetector;->fInputBytes:[B
+Landroid/icu/text/CharsetDetector;->fInputLen:I
+Landroid/icu/text/CharsetDetector;->fInputStream:Ljava/io/InputStream;
+Landroid/icu/text/CharsetDetector;->fRawInput:[B
+Landroid/icu/text/CharsetDetector;->fRawLength:I
+Landroid/icu/text/CharsetDetector;->fStripTags:Z
+Landroid/icu/text/CharsetDetector;->getAllDetectableCharsets()[Ljava/lang/String;
+Landroid/icu/text/CharsetDetector;->getDetectableCharsets()[Ljava/lang/String;
+Landroid/icu/text/CharsetDetector;->getReader(Ljava/io/InputStream;Ljava/lang/String;)Ljava/io/Reader;
+Landroid/icu/text/CharsetDetector;->getString([BLjava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/CharsetDetector;->inputFilterEnabled()Z
+Landroid/icu/text/CharsetDetector;->kBufSize:I
+Landroid/icu/text/CharsetDetector;->MungeInput()V
+Landroid/icu/text/CharsetDetector;->setDeclaredEncoding(Ljava/lang/String;)Landroid/icu/text/CharsetDetector;
+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
+Landroid/icu/text/CharsetMatch;->fCharsetName:Ljava/lang/String;
+Landroid/icu/text/CharsetMatch;->fConfidence:I
+Landroid/icu/text/CharsetMatch;->fInputStream:Ljava/io/InputStream;
+Landroid/icu/text/CharsetMatch;->fLang:Ljava/lang/String;
+Landroid/icu/text/CharsetMatch;->fRawInput:[B
+Landroid/icu/text/CharsetMatch;->fRawLength:I
+Landroid/icu/text/CharsetMatch;->getConfidence()I
+Landroid/icu/text/CharsetMatch;->getLanguage()Ljava/lang/String;
+Landroid/icu/text/CharsetMatch;->getName()Ljava/lang/String;
+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
+Landroid/icu/text/ChineseDateFormatSymbols;-><init>(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/ChineseDateFormatSymbols;-><init>(Ljava/util/Locale;)V
+Landroid/icu/text/ChineseDateFormatSymbols;->getLeapMonth(I)Ljava/lang/String;
+Landroid/icu/text/ChineseDateFormatSymbols;->initializeData(Landroid/icu/text/DateFormatSymbols;)V
+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
+Landroid/icu/text/CollationElementIterator;-><init>(Landroid/icu/text/UCharacterIterator;Landroid/icu/text/RuleBasedCollator;)V
+Landroid/icu/text/CollationElementIterator;-><init>(Ljava/lang/String;Landroid/icu/text/RuleBasedCollator;)V
+Landroid/icu/text/CollationElementIterator;-><init>(Ljava/text/CharacterIterator;Landroid/icu/text/RuleBasedCollator;)V
+Landroid/icu/text/CollationElementIterator;->ceNeedsTwoParts(J)Z
+Landroid/icu/text/CollationElementIterator;->computeMaxExpansions(Landroid/icu/impl/coll/CollationData;)Ljava/util/Map;
+Landroid/icu/text/CollationElementIterator;->dir_:B
+Landroid/icu/text/CollationElementIterator;->getFirstHalf(JI)I
+Landroid/icu/text/CollationElementIterator;->getMaxExpansion(Ljava/util/Map;I)I
+Landroid/icu/text/CollationElementIterator;->getRuleBasedCollator()Landroid/icu/text/RuleBasedCollator;
+Landroid/icu/text/CollationElementIterator;->getSecondHalf(JI)I
+Landroid/icu/text/CollationElementIterator;->iter_:Landroid/icu/impl/coll/CollationIterator;
+Landroid/icu/text/CollationElementIterator;->normalizeDir()B
+Landroid/icu/text/CollationElementIterator;->offsets_:Landroid/icu/impl/coll/UVector32;
+Landroid/icu/text/CollationElementIterator;->otherHalf_:I
+Landroid/icu/text/CollationElementIterator;->rbc_:Landroid/icu/text/RuleBasedCollator;
+Landroid/icu/text/CollationElementIterator;->string_:Ljava/lang/String;
+Landroid/icu/text/CollationKey$BoundMode;-><init>()V
+Landroid/icu/text/CollationKey$BoundMode;->COUNT:I
+Landroid/icu/text/CollationKey;-><init>(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)V
+Landroid/icu/text/CollationKey;-><init>(Ljava/lang/String;[BI)V
+Landroid/icu/text/CollationKey;->getLength()I
+Landroid/icu/text/CollationKey;->MERGE_SEPERATOR_:I
+Landroid/icu/text/CollationKey;->m_hashCode_:I
+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;
+Landroid/icu/text/Collator$CollatorFactory;->getDisplayName(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
+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;
+Landroid/icu/text/Collator$ServiceShim;->getDisplayName(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/text/Collator$ServiceShim;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
+Landroid/icu/text/Collator$ServiceShim;->registerFactory(Landroid/icu/text/Collator$CollatorFactory;)Ljava/lang/Object;
+Landroid/icu/text/Collator$ServiceShim;->registerInstance(Landroid/icu/text/Collator;Landroid/icu/util/ULocale;)Ljava/lang/Object;
+Landroid/icu/text/Collator$ServiceShim;->unregister(Ljava/lang/Object;)Z
+Landroid/icu/text/Collator;->BASE:Ljava/lang/String;
+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
+Landroid/icu/text/Collator;->getShim()Landroid/icu/text/Collator$ServiceShim;
+Landroid/icu/text/Collator;->getYesOrNo(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/icu/text/Collator;->KEYWORDS:[Ljava/lang/String;
+Landroid/icu/text/Collator;->registerFactory(Landroid/icu/text/Collator$CollatorFactory;)Ljava/lang/Object;
+Landroid/icu/text/Collator;->registerInstance(Landroid/icu/text/Collator;Landroid/icu/util/ULocale;)Ljava/lang/Object;
+Landroid/icu/text/Collator;->RESOURCE:Ljava/lang/String;
+Landroid/icu/text/Collator;->setAttributesFromKeywords(Landroid/icu/util/ULocale;Landroid/icu/text/Collator;Landroid/icu/text/RuleBasedCollator;)V
+Landroid/icu/text/Collator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/Collator;->setStrength2(I)Landroid/icu/text/Collator;
+Landroid/icu/text/Collator;->setVariableTop(I)V
+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
+Landroid/icu/text/ComposedCharIter;->decompBuf:Ljava/lang/String;
+Landroid/icu/text/ComposedCharIter;->decomposition()Ljava/lang/String;
+Landroid/icu/text/ComposedCharIter;->DONE:C
+Landroid/icu/text/ComposedCharIter;->findNextChar()V
+Landroid/icu/text/ComposedCharIter;->hasNext()Z
+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;
+Landroid/icu/text/CurrencyDisplayNames;->getInstance(Ljava/util/Locale;)Landroid/icu/text/CurrencyDisplayNames;
+Landroid/icu/text/CurrencyDisplayNames;->getInstance(Ljava/util/Locale;Z)Landroid/icu/text/CurrencyDisplayNames;
+Landroid/icu/text/CurrencyDisplayNames;->getName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/CurrencyDisplayNames;->getPluralName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/CurrencyDisplayNames;->getSymbol(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/CurrencyDisplayNames;->getULocale()Landroid/icu/util/ULocale;
+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;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->currency:Ljava/lang/String;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->equals(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Z
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->equals(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->from:J
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->now()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onCurrency(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDate(J)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDate(Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDateRange(JJ)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDateRange(Ljava/util/Date;Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onTender()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->region:Ljava/lang/String;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->tenderOnly:Z
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->to:J
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withCurrency(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDate(J)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDate(Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDateRange(JJ)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+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;
+Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->from:J
+Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->isTender()Z
+Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->priority:I
+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;
+Landroid/icu/text/CurrencyMetaInfo;->currencyDigits(Ljava/lang/String;Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
+Landroid/icu/text/CurrencyMetaInfo;->currencyInfo(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
+Landroid/icu/text/CurrencyMetaInfo;->dateString(J)Ljava/lang/String;
+Landroid/icu/text/CurrencyMetaInfo;->debugString(Ljava/lang/Object;)Ljava/lang/String;
+Landroid/icu/text/CurrencyMetaInfo;->defaultDigits:Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
+Landroid/icu/text/CurrencyMetaInfo;->getInstance()Landroid/icu/text/CurrencyMetaInfo;
+Landroid/icu/text/CurrencyMetaInfo;->getInstance(Z)Landroid/icu/text/CurrencyMetaInfo;
+Landroid/icu/text/CurrencyMetaInfo;->hasData()Z
+Landroid/icu/text/CurrencyMetaInfo;->hasData:Z
+Landroid/icu/text/CurrencyMetaInfo;->impl:Landroid/icu/text/CurrencyMetaInfo;
+Landroid/icu/text/CurrencyMetaInfo;->regions(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
+Landroid/icu/text/CurrencyPluralInfo;->defaultCurrencyPluralPattern:Ljava/lang/String;
+Landroid/icu/text/CurrencyPluralInfo;->defaultCurrencyPluralPatternChar:[C
+Landroid/icu/text/CurrencyPluralInfo;->initialize(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/CurrencyPluralInfo;->pluralCountToCurrencyUnitPattern:Ljava/util/Map;
+Landroid/icu/text/CurrencyPluralInfo;->pluralPatternIterator()Ljava/util/Iterator;
+Landroid/icu/text/CurrencyPluralInfo;->pluralRules:Landroid/icu/text/PluralRules;
+Landroid/icu/text/CurrencyPluralInfo;->select(D)Ljava/lang/String;
+Landroid/icu/text/CurrencyPluralInfo;->select(Landroid/icu/text/PluralRules$FixedDecimal;)Ljava/lang/String;
+Landroid/icu/text/CurrencyPluralInfo;->setupCurrencyPluralPattern(Landroid/icu/util/ULocale;)V
+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;
+Landroid/icu/text/DateFormat$Field;->CAL_FIELD_COUNT:I
+Landroid/icu/text/DateFormat$Field;->FIELD_NAME_MAP:Ljava/util/Map;
+Landroid/icu/text/DateFormat$Field;->RELATED_YEAR:Landroid/icu/text/DateFormat$Field;
+Landroid/icu/text/DateFormat$Field;->TIME_SEPARATOR:Landroid/icu/text/DateFormat$Field;
+Landroid/icu/text/DateFormat;->ABBR_STANDALONE_MONTH:Ljava/lang/String;
+Landroid/icu/text/DateFormat;->booleanAttributes:Ljava/util/EnumSet;
+Landroid/icu/text/DateFormat;->capitalizationSetting:Landroid/icu/text/DisplayContext;
+Landroid/icu/text/DateFormat;->currentSerialVersion:I
+Landroid/icu/text/DateFormat;->DATE_SKELETONS:Ljava/util/List;
+Landroid/icu/text/DateFormat;->FIELD_COUNT:I
+Landroid/icu/text/DateFormat;->fixNumberFormatForDates(Landroid/icu/text/NumberFormat;)V
+Landroid/icu/text/DateFormat;->get(IILandroid/icu/util/ULocale;Landroid/icu/util/Calendar;)Landroid/icu/text/DateFormat;
+Landroid/icu/text/DateFormat;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/text/DateFormat;->getInstance(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
+Landroid/icu/text/DateFormat;->HOUR_GENERIC_TZ:Ljava/lang/String;
+Landroid/icu/text/DateFormat;->HOUR_MINUTE_GENERIC_TZ:Ljava/lang/String;
+Landroid/icu/text/DateFormat;->HOUR_MINUTE_TZ:Ljava/lang/String;
+Landroid/icu/text/DateFormat;->HOUR_TZ:Ljava/lang/String;
+Landroid/icu/text/DateFormat;->RELATED_YEAR:I
+Landroid/icu/text/DateFormat;->serialVersionOnStream:I
+Landroid/icu/text/DateFormat;->STANDALONE_MONTH:Ljava/lang/String;
+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;
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->arrays:Ljava/util/Map;
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->CALENDAR_ALIAS_PREFIX:Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->currentCalendarType:Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->maps:Ljava/util/Map;
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->nextCalendarType:Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->preEnumerate(Ljava/lang/String;)V
+Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->processAliasFromValue(Ljava/lang/String;Landroid/icu/impl/UResource$Value;)Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
+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;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ERA_ABBREV:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ERA_NARROW:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ERA_WIDE:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->METAZONE_LONG:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->METAZONE_SHORT:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->MONTH_FORMAT:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->MONTH_NARROW:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->MONTH_STANDALONE:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->OTHER:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->valueOf(Ljava/lang/String;)Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->values()[Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ZONE_LONG:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ZONE_SHORT:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
+Landroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
+Landroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;)V
+Landroid/icu/text/DateFormatSymbols;->abbreviatedDayPeriods:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->actualLocale:Landroid/icu/util/ULocale;
+Landroid/icu/text/DateFormatSymbols;->ALTERNATE_TIME_SEPARATOR:Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->ampms:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->ampmsNarrow:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->arrayOfArrayEquals([[Ljava/lang/Object;[[Ljava/lang/Object;)Z
+Landroid/icu/text/DateFormatSymbols;->CALENDAR_CLASSES:[[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->capitalization:Ljava/util/Map;
+Landroid/icu/text/DateFormatSymbols;->contextUsageTypeMap:Ljava/util/Map;
+Landroid/icu/text/DateFormatSymbols;->DAY_PERIOD_KEYS:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->DEFAULT_TIME_SEPARATOR:Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->DFSCACHE:Landroid/icu/impl/CacheBase;
+Landroid/icu/text/DateFormatSymbols;->DT_CONTEXT_COUNT:I
+Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_FORMAT_ABBREV:I
+Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_FORMAT_NARROW:I
+Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_FORMAT_WIDE:I
+Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_NUMERIC:I
+Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_STANDALONE_ABBREV:I
+Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_STANDALONE_NARROW:I
+Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_STANDALONE_WIDE:I
+Landroid/icu/text/DateFormatSymbols;->DT_MONTH_PATTERN_COUNT:I
+Landroid/icu/text/DateFormatSymbols;->DT_WIDTH_COUNT:I
+Landroid/icu/text/DateFormatSymbols;->duplicate([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->duplicate([[Ljava/lang/String;)[[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->eraNames:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->eras:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/text/DateFormatSymbols;->getDateFormatBundle(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Ljava/util/ResourceBundle;
+Landroid/icu/text/DateFormatSymbols;->getDateFormatBundle(Landroid/icu/util/Calendar;Ljava/util/Locale;)Ljava/util/ResourceBundle;
+Landroid/icu/text/DateFormatSymbols;->getDateFormatBundle(Ljava/lang/Class;Landroid/icu/util/ULocale;)Ljava/util/ResourceBundle;
+Landroid/icu/text/DateFormatSymbols;->getDateFormatBundle(Ljava/lang/Class;Ljava/util/Locale;)Ljava/util/ResourceBundle;
+Landroid/icu/text/DateFormatSymbols;->getLeapMonthPattern(II)Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->getNarrowEras()[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->getTimeSeparatorString()Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/text/DateFormatSymbols;)V
+Landroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
+Landroid/icu/text/DateFormatSymbols;->leapMonthPatterns:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->LEAP_MONTH_PATTERNS_PATHS:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->loadDayPeriodStrings(Ljava/util/Map;)[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->localPatternChars:Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->millisPerHour:I
+Landroid/icu/text/DateFormatSymbols;->months:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->narrowDayPeriods:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->narrowEras:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->narrowMonths:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->narrowWeekdays:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->NUMERIC:I
+Landroid/icu/text/DateFormatSymbols;->patternChars:Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->quarters:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->requestedLocale:Landroid/icu/util/ULocale;
+Landroid/icu/text/DateFormatSymbols;->setLeapMonthPattern(Ljava/lang/String;II)V
+Landroid/icu/text/DateFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DateFormatSymbols;->setTimeSeparatorString(Ljava/lang/String;)V
+Landroid/icu/text/DateFormatSymbols;->shorterWeekdays:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->shortMonths:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->shortQuarters:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->shortWeekdays:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->shortYearNames:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->shortZodiacNames:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneAbbreviatedDayPeriods:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneMonths:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneNarrowDayPeriods:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneNarrowMonths:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneNarrowWeekdays:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneQuarters:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneShorterWeekdays:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneShortMonths:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneShortQuarters:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneShortWeekdays:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneWeekdays:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->standaloneWideDayPeriods:[Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->timeSeparator:Ljava/lang/String;
+Landroid/icu/text/DateFormatSymbols;->validLocale:Landroid/icu/util/ULocale;
+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;
+Landroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateIntervalInfo;Landroid/icu/text/SimpleDateFormat;)V
+Landroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/text/SimpleDateFormat;)V
+Landroid/icu/text/DateIntervalFormat;->adjustFieldWidth(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/icu/text/DateIntervalFormat;->adjustPosition(Ljava/lang/String;Ljava/lang/String;Ljava/text/FieldPosition;Ljava/lang/String;Ljava/text/FieldPosition;Ljava/text/FieldPosition;)V
+Landroid/icu/text/DateIntervalFormat;->concatSingleDate2TimeInterval(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;)V
+Landroid/icu/text/DateIntervalFormat;->fallbackFormat(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;ZLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+Landroid/icu/text/DateIntervalFormat;->fallbackFormat(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;ZLjava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/lang/String;)Ljava/lang/StringBuffer;
+Landroid/icu/text/DateIntervalFormat;->fDateFormat:Landroid/icu/text/SimpleDateFormat;
+Landroid/icu/text/DateIntervalFormat;->fDatePattern:Ljava/lang/String;
+Landroid/icu/text/DateIntervalFormat;->fDateTimeFormat:Ljava/lang/String;
+Landroid/icu/text/DateIntervalFormat;->fFromCalendar:Landroid/icu/util/Calendar;
+Landroid/icu/text/DateIntervalFormat;->fieldExistsInSkeleton(ILjava/lang/String;)Z
+Landroid/icu/text/DateIntervalFormat;->fInfo:Landroid/icu/text/DateIntervalInfo;
+Landroid/icu/text/DateIntervalFormat;->fIntervalPatterns:Ljava/util/Map;
+Landroid/icu/text/DateIntervalFormat;->fSkeleton:Ljava/lang/String;
+Landroid/icu/text/DateIntervalFormat;->fTimePattern:Ljava/lang/String;
+Landroid/icu/text/DateIntervalFormat;->fToCalendar:Landroid/icu/util/Calendar;
+Landroid/icu/text/DateIntervalFormat;->genFallbackPattern(ILjava/lang/String;Ljava/util/Map;Landroid/icu/text/DateTimePatternGenerator;)V
+Landroid/icu/text/DateIntervalFormat;->genIntervalPattern(ILjava/lang/String;Ljava/lang/String;ILjava/util/Map;)Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;
+Landroid/icu/text/DateIntervalFormat;->genSeparateDateTimePtn(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Landroid/icu/text/DateTimePatternGenerator;)Z
+Landroid/icu/text/DateIntervalFormat;->getConcatenationPattern(Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/text/DateIntervalFormat;->getDateTimeSkeleton(Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)V
+Landroid/icu/text/DateIntervalFormat;->getPatterns(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Landroid/icu/util/Output;)Ljava/lang/String;
+Landroid/icu/text/DateIntervalFormat;->getRawPatterns()Ljava/util/Map;
+Landroid/icu/text/DateIntervalFormat;->initializeIntervalPattern(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/util/Map;
+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;
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->DATE_INTERVAL_PATH_PREFIX:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->DATE_INTERVAL_PATH_SUFFIX:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->getAndResetNextCalendarType()Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->getCalendarTypeFromPath(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->nextCalendarType:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->processSkeletonTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->setIntervalPatternIfAbsent(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->validateAndProcessPatternLetter(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/icu/text/DateIntervalInfo$PatternInfo;->currentSerialVersion:I
+Landroid/icu/text/DateIntervalInfo$PatternInfo;->fFirstDateInPtnIsLaterDate:Z
+Landroid/icu/text/DateIntervalInfo$PatternInfo;->fIntervalPatternFirstPart:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo$PatternInfo;->fIntervalPatternSecondPart:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo;-><init>()V
+Landroid/icu/text/DateIntervalInfo;->CALENDAR_FIELD_TO_PATTERN_LETTER:[Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo;->CALENDAR_KEY:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo;->cloneIntervalPatterns(Ljava/util/Map;)Ljava/util/Map;
+Landroid/icu/text/DateIntervalInfo;->cloneUnfrozenDII()Ljava/lang/Object;
+Landroid/icu/text/DateIntervalInfo;->currentSerialVersion:I
+Landroid/icu/text/DateIntervalInfo;->DIICACHE:Landroid/icu/impl/ICUCache;
+Landroid/icu/text/DateIntervalInfo;->EARLIEST_FIRST_PREFIX:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo;->FALLBACK_STRING:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo;->fFallbackIntervalPattern:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo;->fFirstDateInPtnIsLaterDate:Z
+Landroid/icu/text/DateIntervalInfo;->fIntervalPatterns:Ljava/util/Map;
+Landroid/icu/text/DateIntervalInfo;->fIntervalPatternsReadOnly:Z
+Landroid/icu/text/DateIntervalInfo;->frozen:Z
+Landroid/icu/text/DateIntervalInfo;->genPatternInfo(Ljava/lang/String;Z)Landroid/icu/text/DateIntervalInfo$PatternInfo;
+Landroid/icu/text/DateIntervalInfo;->getBestSkeleton(Ljava/lang/String;)Landroid/icu/text/DateIntervalFormat$BestMatchInfo;
+Landroid/icu/text/DateIntervalInfo;->getPatterns()Ljava/util/Map;
+Landroid/icu/text/DateIntervalInfo;->getRawPatterns()Ljava/util/Map;
+Landroid/icu/text/DateIntervalInfo;->initializeData(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DateIntervalInfo;->initializeFromReadOnlyPatterns(Landroid/icu/text/DateIntervalInfo;)V
+Landroid/icu/text/DateIntervalInfo;->INTERVAL_FORMATS_KEY:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo;->LATEST_FIRST_PREFIX:Ljava/lang/String;
+Landroid/icu/text/DateIntervalInfo;->MINIMUM_SUPPORTED_CALENDAR_FIELD:I
+Landroid/icu/text/DateIntervalInfo;->parseSkeleton(Ljava/lang/String;[I)V
+Landroid/icu/text/DateIntervalInfo;->setIntervalPattern(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/DateIntervalInfo$PatternInfo;)V
+Landroid/icu/text/DateIntervalInfo;->setIntervalPatternInternally(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/DateIntervalInfo$PatternInfo;
+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;
+Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->compareTo(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)I
+Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->extractFrom(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;I)V
+Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->fieldIsNumeric(I)Z
+Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getBasePattern()Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I
+Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getFieldMask()I
+Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->original:Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;
+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;
+Landroid/icu/text/DateTimePatternGenerator$FormatParser;->hasDateAndTimeFields()Z
+Landroid/icu/text/DateTimePatternGenerator$FormatParser;->items:Ljava/util/List;
+Landroid/icu/text/DateTimePatternGenerator$FormatParser;->quoteLiteral(Ljava/lang/String;)Ljava/lang/Object;
+Landroid/icu/text/DateTimePatternGenerator$FormatParser;->QUOTING_CHARS:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;)Landroid/icu/text/DateTimePatternGenerator$FormatParser;
+Landroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;Z)Landroid/icu/text/DateTimePatternGenerator$FormatParser;
+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;
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendTo(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendTo(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->chars:[B
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->clear()V
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->clearField(I)V
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->compareTo(Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;)I
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->copyFieldFrom(Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;I)V
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->DEFAULT_CHAR:B
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->DEFAULT_LENGTH:B
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldChar(I)C
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldLength(I)I
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->isFieldEmpty(I)Z
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->lengths:[B
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->populate(ICI)V
+Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->populate(ILjava/lang/String;)V
+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
+Landroid/icu/text/DateTimePatternGenerator$VariableField;->getCanonicalCode(I)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator$VariableField;->getCanonicalIndex()I
+Landroid/icu/text/DateTimePatternGenerator$VariableField;->getType()I
+Landroid/icu/text/DateTimePatternGenerator$VariableField;->isNumeric()Z
+Landroid/icu/text/DateTimePatternGenerator$VariableField;->string:Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->addCanonicalItems()V
+Landroid/icu/text/DateTimePatternGenerator;->addCLDRData(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DateTimePatternGenerator;->addICUPatterns(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DateTimePatternGenerator;->addPatternWithSkeleton(Ljava/lang/String;Ljava/lang/String;ZLandroid/icu/text/DateTimePatternGenerator$PatternInfo;)Landroid/icu/text/DateTimePatternGenerator;
+Landroid/icu/text/DateTimePatternGenerator;->adjustFieldTypes(Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;Ljava/util/EnumSet;I)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->allowedHourFormats:[Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->appendItemFormats:[Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->appendItemNames:[Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->basePattern_pattern:Ljava/util/TreeMap;
+Landroid/icu/text/DateTimePatternGenerator;->CANONICAL_ITEMS:[Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->CANONICAL_SET:Ljava/util/Set;
+Landroid/icu/text/DateTimePatternGenerator;->checkFrozen()V
+Landroid/icu/text/DateTimePatternGenerator;->cldrAvailableFormatKeys:Ljava/util/Set;
+Landroid/icu/text/DateTimePatternGenerator;->CLDR_FIELD_APPEND:[Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->CLDR_FIELD_NAME:[Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->consumeShortTimePattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V
+Landroid/icu/text/DateTimePatternGenerator;->current:Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
+Landroid/icu/text/DateTimePatternGenerator;->dateTimeFormat:Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->DATE_MASK:I
+Landroid/icu/text/DateTimePatternGenerator;->DEBUG:Z
+Landroid/icu/text/DateTimePatternGenerator;->decimal:Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->defaultHourFormatChar:C
+Landroid/icu/text/DateTimePatternGenerator;->DELTA:I
+Landroid/icu/text/DateTimePatternGenerator;->DTPNG_CACHE:Landroid/icu/impl/ICUCache;
+Landroid/icu/text/DateTimePatternGenerator;->EXTRA_FIELD:I
+Landroid/icu/text/DateTimePatternGenerator;->FIELD_NAME:[Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->fillInMissing()V
+Landroid/icu/text/DateTimePatternGenerator;->fp:Landroid/icu/text/DateTimePatternGenerator$FormatParser;
+Landroid/icu/text/DateTimePatternGenerator;->FRACTIONAL_MASK:I
+Landroid/icu/text/DateTimePatternGenerator;->frozen:Z
+Landroid/icu/text/DateTimePatternGenerator;->getAllowedHourFormats(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DateTimePatternGenerator;->getAppendFormat(I)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getAppendFormatNumber(Landroid/icu/impl/UResource$Key;)I
+Landroid/icu/text/DateTimePatternGenerator;->getAppendFormatNumber(Ljava/lang/String;)I
+Landroid/icu/text/DateTimePatternGenerator;->getAppendName(I)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getBestAppending(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;Ljava/util/EnumSet;I)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;I)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getBestRaw(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;
+Landroid/icu/text/DateTimePatternGenerator;->getCalendarTypeToUse(Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getCanonicalChar(IC)C
+Landroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I
+Landroid/icu/text/DateTimePatternGenerator;->getCanonicalSkeletonAllowingDuplicates(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getCLDRFieldNumber(Landroid/icu/impl/UResource$Key;)I
+Landroid/icu/text/DateTimePatternGenerator;->getDefaultHourFormatChar()C
+Landroid/icu/text/DateTimePatternGenerator;->getFields(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getFilteredPattern(Landroid/icu/text/DateTimePatternGenerator$FormatParser;Ljava/util/BitSet;)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getFrozenInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator;
+Landroid/icu/text/DateTimePatternGenerator;->getName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getRedundants(Ljava/util/Collection;)Ljava/util/Collection;
+Landroid/icu/text/DateTimePatternGenerator;->getSet(Ljava/lang/String;)Ljava/util/TreeSet;
+Landroid/icu/text/DateTimePatternGenerator;->getSkeletonAllowingDuplicates(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->getTopBitNumber(I)I
+Landroid/icu/text/DateTimePatternGenerator;->hackTimes(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Ljava/lang/String;)V
+Landroid/icu/text/DateTimePatternGenerator;->initData(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DateTimePatternGenerator;->isAvailableFormatSet(Ljava/lang/String;)Z
+Landroid/icu/text/DateTimePatternGenerator;->isSingleField(Ljava/lang/String;)Z
+Landroid/icu/text/DateTimePatternGenerator;->LAST_RESORT_ALLOWED_HOUR_FORMAT:[Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->LOCALE_TO_ALLOWED_HOUR:Ljava/util/Map;
+Landroid/icu/text/DateTimePatternGenerator;->LONG:I
+Landroid/icu/text/DateTimePatternGenerator;->mapSkeletonMetacharacters(Ljava/lang/String;Ljava/util/EnumSet;)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->MATCH_MINUTE_FIELD_LENGTH:I
+Landroid/icu/text/DateTimePatternGenerator;->MATCH_SECOND_FIELD_LENGTH:I
+Landroid/icu/text/DateTimePatternGenerator;->MISSING_FIELD:I
+Landroid/icu/text/DateTimePatternGenerator;->NARROW:I
+Landroid/icu/text/DateTimePatternGenerator;->NONE:I
+Landroid/icu/text/DateTimePatternGenerator;->NUMERIC:I
+Landroid/icu/text/DateTimePatternGenerator;->SECOND_AND_FRACTIONAL_MASK:I
+Landroid/icu/text/DateTimePatternGenerator;->setAvailableFormat(Ljava/lang/String;)V
+Landroid/icu/text/DateTimePatternGenerator;->setDateTimeFromCalendar(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DateTimePatternGenerator;->setDecimalSymbols(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DateTimePatternGenerator;->setDefaultHourFormatChar(C)V
+Landroid/icu/text/DateTimePatternGenerator;->SHORT:I
+Landroid/icu/text/DateTimePatternGenerator;->SHORTER:I
+Landroid/icu/text/DateTimePatternGenerator;->showMask(I)Ljava/lang/String;
+Landroid/icu/text/DateTimePatternGenerator;->skeleton2pattern:Ljava/util/TreeMap;
+Landroid/icu/text/DateTimePatternGenerator;->skeletonsAreSimilar(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/icu/text/DateTimePatternGenerator;->TIME_MASK:I
+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;
+Landroid/icu/text/DecimalFormat;->formatter:Landroid/icu/number/LocalizedNumberFormatter;
+Landroid/icu/text/DecimalFormat;->getDefaultSymbols()Landroid/icu/text/DecimalFormatSymbols;
+Landroid/icu/text/DecimalFormat;->getFixedDecimal(D)Landroid/icu/text/PluralRules$IFixedDecimal;
+Landroid/icu/text/DecimalFormat;->getMinimumGroupingDigits()I
+Landroid/icu/text/DecimalFormat;->getParseCaseSensitive()Z
+Landroid/icu/text/DecimalFormat;->getParseNoExponent()Z
+Landroid/icu/text/DecimalFormat;->getSignAlwaysShown()Z
+Landroid/icu/text/DecimalFormat;->icuMathContextForm:I
+Landroid/icu/text/DecimalFormat;->properties:Landroid/icu/impl/number/DecimalFormatProperties;
+Landroid/icu/text/DecimalFormat;->refreshFormatter()V
+Landroid/icu/text/DecimalFormat;->safeConvertBigDecimal(Ljava/math/BigDecimal;)Ljava/lang/Number;
+Landroid/icu/text/DecimalFormat;->serialVersionOnStream:I
+Landroid/icu/text/DecimalFormat;->setMinimumGroupingDigits(I)V
+Landroid/icu/text/DecimalFormat;->setParseCaseSensitive(Z)V
+Landroid/icu/text/DecimalFormat;->setParseNoExponent(Z)V
+Landroid/icu/text/DecimalFormat;->setProperties(Landroid/icu/text/DecimalFormat$PropertySetter;)V
+Landroid/icu/text/DecimalFormat;->setPropertiesFromPattern(Ljava/lang/String;I)V
+Landroid/icu/text/DecimalFormat;->setSignAlwaysShown(Z)V
+Landroid/icu/text/DecimalFormat;->symbols:Landroid/icu/text/DecimalFormatSymbols;
+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
+Landroid/icu/text/DecimalFormatSymbols;-><init>(Ljava/util/Locale;Landroid/icu/text/NumberingSystem;)V
+Landroid/icu/text/DecimalFormatSymbols;->actualLocale:Landroid/icu/util/ULocale;
+Landroid/icu/text/DecimalFormatSymbols;->cachedLocaleData:Landroid/icu/impl/CacheBase;
+Landroid/icu/text/DecimalFormatSymbols;->codePointZero:I
+Landroid/icu/text/DecimalFormatSymbols;->currency:Landroid/icu/util/Currency;
+Landroid/icu/text/DecimalFormatSymbols;->currencyPattern:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->currencySpcAfterSym:[Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->currencySpcBeforeSym:[Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->currencySymbol:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->currentSerialVersion:I
+Landroid/icu/text/DecimalFormatSymbols;->decimalSeparator:C
+Landroid/icu/text/DecimalFormatSymbols;->decimalSeparatorString:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->DEF_DECIMAL_SEPARATOR:C
+Landroid/icu/text/DecimalFormatSymbols;->DEF_DIGIT_CHARS_ARRAY:[C
+Landroid/icu/text/DecimalFormatSymbols;->DEF_DIGIT_STRINGS_ARRAY:[Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->DEF_GROUPING_SEPARATOR:C
+Landroid/icu/text/DecimalFormatSymbols;->DEF_MINUS_SIGN:C
+Landroid/icu/text/DecimalFormatSymbols;->DEF_PERCENT:C
+Landroid/icu/text/DecimalFormatSymbols;->DEF_PERMILL:C
+Landroid/icu/text/DecimalFormatSymbols;->DEF_PLUS_SIGN:C
+Landroid/icu/text/DecimalFormatSymbols;->digit:C
+Landroid/icu/text/DecimalFormatSymbols;->digits:[C
+Landroid/icu/text/DecimalFormatSymbols;->digitStrings:[Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->exponential:C
+Landroid/icu/text/DecimalFormatSymbols;->exponentMultiplicationSign:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->exponentSeparator:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->forNumberingSystem(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Landroid/icu/text/DecimalFormatSymbols;
+Landroid/icu/text/DecimalFormatSymbols;->forNumberingSystem(Ljava/util/Locale;Landroid/icu/text/NumberingSystem;)Landroid/icu/text/DecimalFormatSymbols;
+Landroid/icu/text/DecimalFormatSymbols;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/text/DecimalFormatSymbols;->getCodePointZero()I
+Landroid/icu/text/DecimalFormatSymbols;->getCurrencyPattern()Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->getDigitStringsLocal()[Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->groupingSeparator:C
+Landroid/icu/text/DecimalFormatSymbols;->groupingSeparatorString:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->infinity:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->initialize(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V
+Landroid/icu/text/DecimalFormatSymbols;->initSpacingInfo(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;)V
+Landroid/icu/text/DecimalFormatSymbols;->intlCurrencySymbol:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->LATIN_NUMBERING_SYSTEM:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->loadData(Landroid/icu/util/ULocale;)Landroid/icu/text/DecimalFormatSymbols$CacheData;
+Landroid/icu/text/DecimalFormatSymbols;->minusSign:C
+Landroid/icu/text/DecimalFormatSymbols;->minusString:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->monetaryGroupingSeparator:C
+Landroid/icu/text/DecimalFormatSymbols;->monetaryGroupingSeparatorString:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->monetarySeparator:C
+Landroid/icu/text/DecimalFormatSymbols;->monetarySeparatorString:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->NaN:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->NUMBER_ELEMENTS:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->padEscape:C
+Landroid/icu/text/DecimalFormatSymbols;->patternSeparator:C
+Landroid/icu/text/DecimalFormatSymbols;->percent:C
+Landroid/icu/text/DecimalFormatSymbols;->percentString:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->perMill:C
+Landroid/icu/text/DecimalFormatSymbols;->perMillString:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->plusSign:C
+Landroid/icu/text/DecimalFormatSymbols;->plusString:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->requestedLocale:Ljava/util/Locale;
+Landroid/icu/text/DecimalFormatSymbols;->serialVersionOnStream:I
+Landroid/icu/text/DecimalFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/DecimalFormatSymbols;->sigDigit:C
+Landroid/icu/text/DecimalFormatSymbols;->SYMBOLS:Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->SYMBOL_DEFAULTS:[Ljava/lang/String;
+Landroid/icu/text/DecimalFormatSymbols;->SYMBOL_KEYS:[Ljava/lang/String;
+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;
+Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getPatternType()I
+Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getPosPrefix()Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getPosSuffix()Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->negPrefixPatternForCurrency:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->negSuffixPatternForCurrency:Ljava/lang/String;
+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
+Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/CurrencyPluralInfo;I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->actualRoundingIncrement:Ljava/math/BigDecimal;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->actualRoundingIncrementICU:Landroid/icu/math/BigDecimal;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->addAttribute(Landroid/icu/text/NumberFormat$Field;II)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->addPadding(Ljava/lang/StringBuffer;Ljava/text/FieldPosition;II)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->adjustNumberAsInFormatting(D)D
+Landroid/icu/text/DecimalFormat_ICU58_Android;->affixPatternsForCurrency:Ljava/util/Set;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->appendAffix(Ljava/lang/StringBuffer;ZZLjava/text/FieldPosition;Z)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->appendAffixPattern(Ljava/lang/StringBuffer;ZZZ)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->applyLocalizedPattern(Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->applyPattern(Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->applyPattern(Ljava/lang/String;Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->applyPatternWithoutExpandAffix(Ljava/lang/String;Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->areSignificantDigitsUsed()Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->attributes:Ljava/util/ArrayList;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->commaEquivalents:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->compareAffix(Ljava/lang/String;IZZLjava/lang/String;ZI[Landroid/icu/util/Currency;)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->compareComplexAffix(Ljava/lang/String;Ljava/lang/String;II[Landroid/icu/util/Currency;)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->compareSimpleAffix(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->create(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/CurrencyPluralInfo;I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->createFromPatternAndSymbols(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->currencyChoice:Ljava/text/ChoiceFormat;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->currencyPluralInfo:Landroid/icu/text/CurrencyPluralInfo;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->currencySignCount:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->currencyUsage:Landroid/icu/util/Currency$CurrencyUsage;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN_COUNT_IN_ISO_FORMAT:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN_COUNT_IN_PLURAL_FORMAT:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN_COUNT_IN_SYMBOL_FORMAT:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN_COUNT_ZERO:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->currentSerialVersion:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->decimalSeparatorAlwaysShown:Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->defaultGroupingSeparators:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->digitList:Landroid/icu/text/DigitList_Android;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->dotEquivalents:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->DOUBLE_FRACTION_DIGITS:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->DOUBLE_INTEGER_DIGITS:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->epsilon:D
+Landroid/icu/text/DecimalFormat_ICU58_Android;->equals(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->equalWithSignCompatibility(II)Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->expandAffix(Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuffer;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->expandAffixAdjustWidth(Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->expandAffixes(Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->exponentSignAlwaysShown:Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;Z)Ljava/lang/StringBuffer;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;Z)Ljava/lang/StringBuffer;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->format(Ljava/math/BigDecimal;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Z)Ljava/lang/StringBuffer;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->format(Ljava/math/BigInteger;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Z)Ljava/lang/StringBuffer;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->formatAffix2Attribute(ZLandroid/icu/text/NumberFormat$Field;Ljava/lang/StringBuffer;II)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->formatPattern:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->formatToCharacterIterator(Ljava/lang/Object;Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;)Ljava/text/AttributedCharacterIterator;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->formatWidth:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getCurrencyPluralInfo()Landroid/icu/text/CurrencyPluralInfo;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getCurrencyUsage()Landroid/icu/util/Currency$CurrencyUsage;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getEffectiveCurrency()Landroid/icu/util/Currency;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getEquivalentDecimals(Ljava/lang/String;Z)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getFixedDecimal(D)Landroid/icu/text/PluralRules$FixedDecimal;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getFixedDecimal(DLandroid/icu/text/DigitList_Android;)Landroid/icu/text/PluralRules$FixedDecimal;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getFormatWidth()I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getGroupingSize()I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getMathContext()Ljava/math/MathContext;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getMathContextICU()Landroid/icu/math/MathContext;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getMaximumSignificantDigits()I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getMinimumExponentDigits()B
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getMinimumSignificantDigits()I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getMultiplier()I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getNegativePrefix()Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getNegativeSuffix()Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getPadCharacter()C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getPadPosition()I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getParseMaxDigits()I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getPositivePrefix()Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getPositiveSuffix()Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getRoundingIncrement()Ljava/math/BigDecimal;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->getSecondaryGroupingSize()I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->groupingSize2:B
+Landroid/icu/text/DecimalFormat_ICU58_Android;->groupingSize:B
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isBidiMark(I)Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isDecimalPatternMatchRequired()Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isDecimalSeparatorAlwaysShown()Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isExponentSignAlwaysShown()Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isGroupingPosition(I)Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isNegative(D)Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isNumberNegative(D)Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isParseBigDecimal()Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isReadyForParsing:Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->isScientificNotation()Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->match(Ljava/lang/String;II)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->match(Ljava/lang/String;ILjava/lang/String;)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->matchesDigit(Ljava/lang/String;I[I)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->mathContext:Landroid/icu/math/MathContext;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->maxSignificantDigits:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->MAX_INTEGER_DIGITS:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->MAX_SCIENTIFIC_INTEGER_DIGITS:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->minExponentDigits:B
+Landroid/icu/text/DecimalFormat_ICU58_Android;->minSignificantDigits:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->minusSigns:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->multiplier:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->multiply(D)D
+Landroid/icu/text/DecimalFormat_ICU58_Android;->negativePrefix:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->negativeSuffix:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->negPrefixPattern:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->negSuffixPattern:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->NULL_UNIT:Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->pad:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->padPosition:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PAD_AFTER_PREFIX:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PAD_AFTER_SUFFIX:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PAD_BEFORE_PREFIX:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PAD_BEFORE_SUFFIX:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->parse(Ljava/lang/String;Ljava/text/ParsePosition;[Landroid/icu/util/Currency;)Ljava/lang/Object;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->parseBigDecimal:Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->parseForCurrency(Ljava/lang/String;Ljava/text/ParsePosition;[Landroid/icu/util/Currency;[Z)Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->parseRequireDecimalPoint:Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PARSE_MAX_EXPONENT:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->patternError(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_DECIMAL_SEPARATOR:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_EIGHT_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_EXPONENT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_FIVE_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_FOUR_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_GROUPING_SEPARATOR:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_MINUS_SIGN:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_NINE_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_ONE_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_PAD_ESCAPE:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_PERCENT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_PER_MILLE:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_PLUS_SIGN:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_SEPARATOR:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_SEVEN_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_SIGNIFICANT_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_SIX_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_THREE_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_TWO_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_ZERO_DIGIT:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->plusSigns:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->positivePrefix:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->positiveSuffix:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->posPrefixPattern:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->posSuffixPattern:Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->precision(Z)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->QUOTE:C
+Landroid/icu/text/DecimalFormat_ICU58_Android;->resetActualRounding()V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->round(D)D
+Landroid/icu/text/DecimalFormat_ICU58_Android;->round(DDDIZ)D
+Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingDouble:D
+Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingDoubleReciprocal:D
+Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingIncrement:Ljava/math/BigDecimal;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingIncrementEpsilon:D
+Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingIncrementICU:Landroid/icu/math/BigDecimal;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingMode:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->serialVersionOnStream:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setCurrencyForSymbols()V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setCurrencyPluralInfo(Landroid/icu/text/CurrencyPluralInfo;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setCurrencyUsage(Landroid/icu/util/Currency$CurrencyUsage;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setDecimalPatternMatchRequired(Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setDecimalSeparatorAlwaysShown(Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setExponentSignAlwaysShown(Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setFormatWidth(I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setGroupingSize(I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setInternalRoundingIncrement(Landroid/icu/math/BigDecimal;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setMathContext(Ljava/math/MathContext;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setMathContextICU(Landroid/icu/math/MathContext;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setMaximumSignificantDigits(I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setMinimumExponentDigits(B)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setMinimumSignificantDigits(I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setMultiplier(I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setNegativePrefix(Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setNegativeSuffix(Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setPadCharacter(C)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setPadPosition(I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setParseBigDecimal(Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setParseMaxDigits(I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setPositivePrefix(Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setPositiveSuffix(Ljava/lang/String;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setRoundingDouble(D)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setRoundingIncrement(D)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setRoundingIncrement(Landroid/icu/math/BigDecimal;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setRoundingIncrement(Ljava/math/BigDecimal;)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setScientificNotation(Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setSecondaryGroupingSize(I)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setSignificantDigitsUsed(Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->setupCurrencyAffixForAllPatterns()V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->skipBidiMarks(Ljava/lang/String;I)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->skipExtendedSeparatorParsing:Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->skipPadding(Ljava/lang/String;I)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->skipPatternWhiteSpace(Ljava/lang/String;I)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->skipUWhiteSpace(Ljava/lang/String;I)I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->STATUS_INFINITE:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->STATUS_LENGTH:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->STATUS_POSITIVE:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->STATUS_UNDERFLOW:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->strictCommaEquivalents:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->strictDefaultGroupingSeparators:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->strictDotEquivalents:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->style:I
+Landroid/icu/text/DecimalFormat_ICU58_Android;->subformat(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;ZZZ)Ljava/lang/StringBuffer;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->subformat(ILjava/lang/StringBuffer;Ljava/text/FieldPosition;ZZZ)Ljava/lang/StringBuffer;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->subformat(Ljava/lang/String;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;ZZZ)Ljava/lang/StringBuffer;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->subformat(Ljava/lang/StringBuffer;Ljava/text/FieldPosition;ZZZ)Ljava/lang/StringBuffer;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->subformatExponential(Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Z)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->subformatFixed(Ljava/lang/StringBuffer;Ljava/text/FieldPosition;ZZ)V
+Landroid/icu/text/DecimalFormat_ICU58_Android;->subparse(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/DigitList_Android;[Z[Landroid/icu/util/Currency;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Z
+Landroid/icu/text/DecimalFormat_ICU58_Android;->symbols:Landroid/icu/text/DecimalFormatSymbols;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->toDigitList(D)Landroid/icu/text/DigitList_Android;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->toLocalizedPattern()Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->toPattern()Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->toPattern(Z)Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->trimMarksFromAffix(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/DecimalFormat_ICU58_Android;->unquote(Ljava/lang/String;)Ljava/lang/String;
+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
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->elementAt(I)I
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->firstIdx:I
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->grow()V
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->isEmpty()Z
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->lastIdx:I
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->offer(I)V
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->peek()I
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->peekLast()I
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->pollLast()I
+Landroid/icu/text/DictionaryBreakEngine$DequeI;->pop()I
+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
+Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->candidates(Ljava/text/CharacterIterator;Landroid/icu/text/DictionaryMatcher;I)I
+Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->count:[I
+Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->current:I
+Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->lengths:[I
+Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->longestPrefix()I
+Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->mark:I
+Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->markCurrent()V
+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
+Landroid/icu/text/DigitList_Android;->DBL_DIG:I
+Landroid/icu/text/DigitList_Android;->decimalAt:I
+Landroid/icu/text/DigitList_Android;->didRound:Z
+Landroid/icu/text/DigitList_Android;->digits:[B
+Landroid/icu/text/DigitList_Android;->ensureCapacity(II)V
+Landroid/icu/text/DigitList_Android;->getBigDecimalICU(Z)Landroid/icu/math/BigDecimal;
+Landroid/icu/text/DigitList_Android;->getBigInteger(Z)Ljava/math/BigInteger;
+Landroid/icu/text/DigitList_Android;->getDigitValue(I)B
+Landroid/icu/text/DigitList_Android;->getDouble()D
+Landroid/icu/text/DigitList_Android;->getLong()J
+Landroid/icu/text/DigitList_Android;->getStringRep(Z)Ljava/lang/String;
+Landroid/icu/text/DigitList_Android;->isIntegral()Z
+Landroid/icu/text/DigitList_Android;->isLongMIN_VALUE()Z
+Landroid/icu/text/DigitList_Android;->isZero()Z
+Landroid/icu/text/DigitList_Android;->LONG_MIN_REP:[B
+Landroid/icu/text/DigitList_Android;->MAX_LONG_DIGITS:I
+Landroid/icu/text/DigitList_Android;->round(I)V
+Landroid/icu/text/DigitList_Android;->set(DIZ)V
+Landroid/icu/text/DigitList_Android;->set(J)V
+Landroid/icu/text/DigitList_Android;->set(JI)V
+Landroid/icu/text/DigitList_Android;->set(Landroid/icu/math/BigDecimal;IZ)V
+Landroid/icu/text/DigitList_Android;->set(Ljava/lang/String;I)V
+Landroid/icu/text/DigitList_Android;->set(Ljava/math/BigDecimal;IZ)V
+Landroid/icu/text/DigitList_Android;->set(Ljava/math/BigInteger;I)V
+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
+Landroid/icu/text/Edits$Iterator;->coarse:Z
+Landroid/icu/text/Edits$Iterator;->destinationIndex()I
+Landroid/icu/text/Edits$Iterator;->destinationIndexFromSourceIndex(I)I
+Landroid/icu/text/Edits$Iterator;->destIndex:I
+Landroid/icu/text/Edits$Iterator;->dir:I
+Landroid/icu/text/Edits$Iterator;->findDestinationIndex(I)Z
+Landroid/icu/text/Edits$Iterator;->findIndex(IZ)I
+Landroid/icu/text/Edits$Iterator;->findSourceIndex(I)Z
+Landroid/icu/text/Edits$Iterator;->hasChange()Z
+Landroid/icu/text/Edits$Iterator;->index:I
+Landroid/icu/text/Edits$Iterator;->length:I
+Landroid/icu/text/Edits$Iterator;->newLength()I
+Landroid/icu/text/Edits$Iterator;->newLength_:I
+Landroid/icu/text/Edits$Iterator;->next()Z
+Landroid/icu/text/Edits$Iterator;->next(Z)Z
+Landroid/icu/text/Edits$Iterator;->noNext()Z
+Landroid/icu/text/Edits$Iterator;->oldLength()I
+Landroid/icu/text/Edits$Iterator;->oldLength_:I
+Landroid/icu/text/Edits$Iterator;->onlyChanges_:Z
+Landroid/icu/text/Edits$Iterator;->previous()Z
+Landroid/icu/text/Edits$Iterator;->readLength(I)I
+Landroid/icu/text/Edits$Iterator;->remaining:I
+Landroid/icu/text/Edits$Iterator;->replacementIndex()I
+Landroid/icu/text/Edits$Iterator;->replIndex:I
+Landroid/icu/text/Edits$Iterator;->sourceIndex()I
+Landroid/icu/text/Edits$Iterator;->sourceIndexFromDestinationIndex(I)I
+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
+Landroid/icu/text/Edits;->append(I)V
+Landroid/icu/text/Edits;->array:[C
+Landroid/icu/text/Edits;->delta:I
+Landroid/icu/text/Edits;->getCoarseChangesIterator()Landroid/icu/text/Edits$Iterator;
+Landroid/icu/text/Edits;->getCoarseIterator()Landroid/icu/text/Edits$Iterator;
+Landroid/icu/text/Edits;->getFineChangesIterator()Landroid/icu/text/Edits$Iterator;
+Landroid/icu/text/Edits;->getFineIterator()Landroid/icu/text/Edits$Iterator;
+Landroid/icu/text/Edits;->growArray()Z
+Landroid/icu/text/Edits;->hasChanges()Z
+Landroid/icu/text/Edits;->lastUnit()I
+Landroid/icu/text/Edits;->length:I
+Landroid/icu/text/Edits;->lengthDelta()I
+Landroid/icu/text/Edits;->LENGTH_IN_1TRAIL:I
+Landroid/icu/text/Edits;->LENGTH_IN_2TRAIL:I
+Landroid/icu/text/Edits;->MAX_SHORT_CHANGE:I
+Landroid/icu/text/Edits;->MAX_SHORT_CHANGE_NEW_LENGTH:I
+Landroid/icu/text/Edits;->MAX_SHORT_CHANGE_OLD_LENGTH:I
+Landroid/icu/text/Edits;->MAX_UNCHANGED:I
+Landroid/icu/text/Edits;->MAX_UNCHANGED_LENGTH:I
+Landroid/icu/text/Edits;->mergeAndAppend(Landroid/icu/text/Edits;Landroid/icu/text/Edits;)Landroid/icu/text/Edits;
+Landroid/icu/text/Edits;->numberOfChanges()I
+Landroid/icu/text/Edits;->numChanges:I
+Landroid/icu/text/Edits;->reset()V
+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;
+Landroid/icu/text/FilteredBreakIteratorBuilder;->getInstance(Ljava/util/Locale;)Landroid/icu/text/FilteredBreakIteratorBuilder;
+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
+Landroid/icu/text/IDNA$Info;->isTransDiff:Z
+Landroid/icu/text/IDNA$Info;->labelErrors:Ljava/util/EnumSet;
+Landroid/icu/text/IDNA$Info;->reset()V
+Landroid/icu/text/IDNA;-><init>()V
+Landroid/icu/text/IDNA;->addError(Landroid/icu/text/IDNA$Info;Landroid/icu/text/IDNA$Error;)V
+Landroid/icu/text/IDNA;->addLabelError(Landroid/icu/text/IDNA$Info;Landroid/icu/text/IDNA$Error;)V
+Landroid/icu/text/IDNA;->ALLOW_UNASSIGNED:I
+Landroid/icu/text/IDNA;->compare(Landroid/icu/text/UCharacterIterator;Landroid/icu/text/UCharacterIterator;I)I
+Landroid/icu/text/IDNA;->compare(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/icu/text/IDNA;->compare(Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;I)I
+Landroid/icu/text/IDNA;->convertIDNToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertIDNToUnicode(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertIDNToUnicode(Ljava/lang/String;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertIDNToUnicode(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertToASCII(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertToUnicode(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertToUnicode(Ljava/lang/String;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->convertToUnicode(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/IDNA;->hasCertainErrors(Landroid/icu/text/IDNA$Info;Ljava/util/EnumSet;)Z
+Landroid/icu/text/IDNA;->hasCertainLabelErrors(Landroid/icu/text/IDNA$Info;Ljava/util/EnumSet;)Z
+Landroid/icu/text/IDNA;->isBiDi(Landroid/icu/text/IDNA$Info;)Z
+Landroid/icu/text/IDNA;->isOkBiDi(Landroid/icu/text/IDNA$Info;)Z
+Landroid/icu/text/IDNA;->promoteAndResetLabelErrors(Landroid/icu/text/IDNA$Info;)V
+Landroid/icu/text/IDNA;->resetInfo(Landroid/icu/text/IDNA$Info;)V
+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;
+Landroid/icu/text/ListFormatter$Style;->getName()Ljava/lang/String;
+Landroid/icu/text/ListFormatter$Style;->name:Ljava/lang/String;
+Landroid/icu/text/ListFormatter$Style;->STANDARD:Landroid/icu/text/ListFormatter$Style;
+Landroid/icu/text/ListFormatter$Style;->valueOf(Ljava/lang/String;)Landroid/icu/text/ListFormatter$Style;
+Landroid/icu/text/ListFormatter$Style;->values()[Landroid/icu/text/ListFormatter$Style;
+Landroid/icu/text/ListFormatter;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/icu/text/ListFormatter;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/ListFormatter;->cache:Landroid/icu/text/ListFormatter$Cache;
+Landroid/icu/text/ListFormatter;->compilePattern(Ljava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/String;
+Landroid/icu/text/ListFormatter;->end:Ljava/lang/String;
+Landroid/icu/text/ListFormatter;->format(Ljava/util/Collection;I)Landroid/icu/text/ListFormatter$FormattedListBuilder;
+Landroid/icu/text/ListFormatter;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/ListFormatter$Style;)Landroid/icu/text/ListFormatter;
+Landroid/icu/text/ListFormatter;->getLocale()Landroid/icu/util/ULocale;
+Landroid/icu/text/ListFormatter;->locale:Landroid/icu/util/ULocale;
+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
+Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;->useSelf:Z
+Landroid/icu/text/LocaleDisplayNames;-><init>()V
+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;
+Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->format(Ljava/lang/Number;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->get()Landroid/icu/text/NumberFormat;
+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
+Landroid/icu/text/MeasureFormat$MeasureFormatData;->PER_UNIT_INDEX:I
+Landroid/icu/text/MeasureFormat$MeasureFormatData;->styleToPerPattern:Ljava/util/EnumMap;
+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;
+Landroid/icu/text/MeasureFormat$MeasureProxy;->formatWidth:Landroid/icu/text/MeasureFormat$FormatWidth;
+Landroid/icu/text/MeasureFormat$MeasureProxy;->keyValues:Ljava/util/HashMap;
+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;
+Landroid/icu/text/MeasureFormat$NumericFormatters;->getMinuteSecond()Landroid/icu/text/DateFormat;
+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
+Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeCompoundPattern(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/MeasureFormat$UnitDataSink;->consumePattern(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeSubtypeTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeUnitTypesTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/MeasureFormat$UnitDataSink;->patterns:[Ljava/lang/String;
+Landroid/icu/text/MeasureFormat$UnitDataSink;->sb:Ljava/lang/StringBuilder;
+Landroid/icu/text/MeasureFormat$UnitDataSink;->setDnamIfAbsent(Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/MeasureFormat$UnitDataSink;->setFormatterIfAbsent(ILandroid/icu/impl/UResource$Value;I)V
+Landroid/icu/text/MeasureFormat$UnitDataSink;->type:Ljava/lang/String;
+Landroid/icu/text/MeasureFormat$UnitDataSink;->unit:Landroid/icu/util/MeasureUnit;
+Landroid/icu/text/MeasureFormat$UnitDataSink;->width:Landroid/icu/text/MeasureFormat$FormatWidth;
+Landroid/icu/text/MeasureFormat$UnitDataSink;->widthFromAlias(Landroid/icu/impl/UResource$Value;)Landroid/icu/text/MeasureFormat$FormatWidth;
+Landroid/icu/text/MeasureFormat$UnitDataSink;->widthFromKey(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/MeasureFormat$FormatWidth;
+Landroid/icu/text/MeasureFormat;-><init>()V
+Landroid/icu/text/MeasureFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$MeasureFormatData;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;Landroid/icu/text/PluralRules;Landroid/icu/text/MeasureFormat$NumericFormatters;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;)V
+Landroid/icu/text/MeasureFormat;->appendReplacingCurrency(Ljava/lang/String;Landroid/icu/util/Currency;Landroid/icu/impl/StandardPlural;Ljava/lang/StringBuilder;)V
+Landroid/icu/text/MeasureFormat;->cache:Landroid/icu/text/MeasureFormat$MeasureFormatData;
+Landroid/icu/text/MeasureFormat;->currencyFormat:Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;
+Landroid/icu/text/MeasureFormat;->CURRENCY_FORMAT:I
+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;
+Landroid/icu/text/MeasureFormat;->fromFormatWidthOrdinal(I)Landroid/icu/text/MeasureFormat$FormatWidth;
+Landroid/icu/text/MeasureFormat;->getFormatter(Landroid/icu/util/MeasureUnit;Landroid/icu/text/MeasureFormat$FormatWidth;I)Ljava/lang/String;
+Landroid/icu/text/MeasureFormat;->getFormatterOrNull(Landroid/icu/util/MeasureUnit;Landroid/icu/text/MeasureFormat$FormatWidth;I)Ljava/lang/String;
+Landroid/icu/text/MeasureFormat;->getPerFormatter(Landroid/icu/text/MeasureFormat$FormatWidth;)Ljava/lang/String;
+Landroid/icu/text/MeasureFormat;->getPluralFormatter(Landroid/icu/util/MeasureUnit;Landroid/icu/text/MeasureFormat$FormatWidth;I)Ljava/lang/String;
+Landroid/icu/text/MeasureFormat;->getRangeFormat(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;)Ljava/lang/String;
+Landroid/icu/text/MeasureFormat;->getRegularWidth(Landroid/icu/text/MeasureFormat$FormatWidth;)Landroid/icu/text/MeasureFormat$FormatWidth;
+Landroid/icu/text/MeasureFormat;->hmsTo012:Ljava/util/Map;
+Landroid/icu/text/MeasureFormat;->integerFormat:Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;
+Landroid/icu/text/MeasureFormat;->loadLocaleData(Landroid/icu/util/ULocale;)Landroid/icu/text/MeasureFormat$MeasureFormatData;
+Landroid/icu/text/MeasureFormat;->loadNumericDurationFormat(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)Landroid/icu/text/DateFormat;
+Landroid/icu/text/MeasureFormat;->loadNumericFormatters(Landroid/icu/util/ULocale;)Landroid/icu/text/MeasureFormat$NumericFormatters;
+Landroid/icu/text/MeasureFormat;->localeIdToRangeFormat:Ljava/util/Map;
+Landroid/icu/text/MeasureFormat;->localeMeasureFormatData:Landroid/icu/impl/SimpleCache;
+Landroid/icu/text/MeasureFormat;->localeToNumericDurationFormatters:Landroid/icu/impl/SimpleCache;
+Landroid/icu/text/MeasureFormat;->MEASURE_FORMAT:I
+Landroid/icu/text/MeasureFormat;->numberFormat:Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;
+Landroid/icu/text/MeasureFormat;->numericFormatters:Landroid/icu/text/MeasureFormat$NumericFormatters;
+Landroid/icu/text/MeasureFormat;->rules:Landroid/icu/text/PluralRules;
+Landroid/icu/text/MeasureFormat;->TIME_UNIT_FORMAT:I
+Landroid/icu/text/MeasureFormat;->toCurrencyProxy()Ljava/lang/Object;
+Landroid/icu/text/MeasureFormat;->toHMS([Landroid/icu/util/Measure;)[Ljava/lang/Number;
+Landroid/icu/text/MeasureFormat;->toTimeUnitProxy()Ljava/lang/Object;
+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;
+Landroid/icu/text/MessageFormat$AppendableWrapper;->append(Ljava/lang/Appendable;Ljava/text/CharacterIterator;)I
+Landroid/icu/text/MessageFormat$AppendableWrapper;->append(Ljava/lang/CharSequence;)V
+Landroid/icu/text/MessageFormat$AppendableWrapper;->append(Ljava/lang/CharSequence;II)V
+Landroid/icu/text/MessageFormat$AppendableWrapper;->append(Ljava/text/CharacterIterator;)V
+Landroid/icu/text/MessageFormat$AppendableWrapper;->attributes:Ljava/util/List;
+Landroid/icu/text/MessageFormat$AppendableWrapper;->formatAndAppend(Ljava/text/Format;Ljava/lang/Object;)V
+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
+Landroid/icu/text/MessageFormat$AttributeAndPosition;->key:Ljava/text/AttributedCharacterIterator$Attribute;
+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;
+Landroid/icu/text/MessageFormat$PluralSelectorContext;->forReplaceNumber:Z
+Landroid/icu/text/MessageFormat$PluralSelectorContext;->number:Ljava/lang/Number;
+Landroid/icu/text/MessageFormat$PluralSelectorContext;->numberArgIndex:I
+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;
+Landroid/icu/text/MessageFormat$PluralSelectorProvider;->select(Ljava/lang/Object;D)Ljava/lang/String;
+Landroid/icu/text/MessageFormat$PluralSelectorProvider;->type:Landroid/icu/text/PluralRules$PluralType;
+Landroid/icu/text/MessageFormat;->argNameMatches(ILjava/lang/String;I)Z
+Landroid/icu/text/MessageFormat;->cachedFormatters:Ljava/util/Map;
+Landroid/icu/text/MessageFormat;->cacheExplicitFormats()V
+Landroid/icu/text/MessageFormat;->createAppropriateFormat(Ljava/lang/String;Ljava/lang/String;)Ljava/text/Format;
+Landroid/icu/text/MessageFormat;->CURLY_BRACE_LEFT:C
+Landroid/icu/text/MessageFormat;->CURLY_BRACE_RIGHT:C
+Landroid/icu/text/MessageFormat;->customFormatArgStarts:Ljava/util/Set;
+Landroid/icu/text/MessageFormat;->dateModifierList:[Ljava/lang/String;
+Landroid/icu/text/MessageFormat;->DATE_MODIFIER_EMPTY:I
+Landroid/icu/text/MessageFormat;->DATE_MODIFIER_FULL:I
+Landroid/icu/text/MessageFormat;->DATE_MODIFIER_LONG:I
+Landroid/icu/text/MessageFormat;->DATE_MODIFIER_MEDIUM:I
+Landroid/icu/text/MessageFormat;->DATE_MODIFIER_SHORT:I
+Landroid/icu/text/MessageFormat;->findChoiceSubMessage(Landroid/icu/text/MessagePattern;ID)I
+Landroid/icu/text/MessageFormat;->findFirstPluralNumberArg(ILjava/lang/String;)I
+Landroid/icu/text/MessageFormat;->findKeyword(Ljava/lang/String;[Ljava/lang/String;)I
+Landroid/icu/text/MessageFormat;->findOtherSubMessage(I)I
+Landroid/icu/text/MessageFormat;->format(ILandroid/icu/text/MessageFormat$PluralSelectorContext;[Ljava/lang/Object;Ljava/util/Map;Landroid/icu/text/MessageFormat$AppendableWrapper;Ljava/text/FieldPosition;)V
+Landroid/icu/text/MessageFormat;->format(Ljava/lang/Object;Landroid/icu/text/MessageFormat$AppendableWrapper;Ljava/text/FieldPosition;)V
+Landroid/icu/text/MessageFormat;->format([Ljava/lang/Object;Ljava/util/Map;Landroid/icu/text/MessageFormat$AppendableWrapper;Ljava/text/FieldPosition;)V
+Landroid/icu/text/MessageFormat;->formatComplexSubMessage(ILandroid/icu/text/MessageFormat$PluralSelectorContext;[Ljava/lang/Object;Ljava/util/Map;Landroid/icu/text/MessageFormat$AppendableWrapper;)V
+Landroid/icu/text/MessageFormat;->getArgName(I)Ljava/lang/String;
+Landroid/icu/text/MessageFormat;->getLiteralStringUntilNextArgument(I)Ljava/lang/String;
+Landroid/icu/text/MessageFormat;->getStockDateFormatter()Landroid/icu/text/DateFormat;
+Landroid/icu/text/MessageFormat;->getStockNumberFormatter()Landroid/icu/text/NumberFormat;
+Landroid/icu/text/MessageFormat;->matchStringUntilLimitPart(Landroid/icu/text/MessagePattern;IILjava/lang/String;I)I
+Landroid/icu/text/MessageFormat;->modifierList:[Ljava/lang/String;
+Landroid/icu/text/MessageFormat;->MODIFIER_CURRENCY:I
+Landroid/icu/text/MessageFormat;->MODIFIER_EMPTY:I
+Landroid/icu/text/MessageFormat;->MODIFIER_INTEGER:I
+Landroid/icu/text/MessageFormat;->MODIFIER_PERCENT:I
+Landroid/icu/text/MessageFormat;->msgPattern:Landroid/icu/text/MessagePattern;
+Landroid/icu/text/MessageFormat;->nextTopLevelArgStart(I)I
+Landroid/icu/text/MessageFormat;->ordinalProvider:Landroid/icu/text/MessageFormat$PluralSelectorProvider;
+Landroid/icu/text/MessageFormat;->parse(ILjava/lang/String;Ljava/text/ParsePosition;[Ljava/lang/Object;Ljava/util/Map;)V
+Landroid/icu/text/MessageFormat;->parseChoiceArgument(Landroid/icu/text/MessagePattern;ILjava/lang/String;Ljava/text/ParsePosition;)D
+Landroid/icu/text/MessageFormat;->pluralProvider:Landroid/icu/text/MessageFormat$PluralSelectorProvider;
+Landroid/icu/text/MessageFormat;->resetPattern()V
+Landroid/icu/text/MessageFormat;->rootLocale:Ljava/util/Locale;
+Landroid/icu/text/MessageFormat;->setArgStartFormat(ILjava/text/Format;)V
+Landroid/icu/text/MessageFormat;->setCustomArgStartFormat(ILjava/text/Format;)V
+Landroid/icu/text/MessageFormat;->SINGLE_QUOTE:C
+Landroid/icu/text/MessageFormat;->STATE_INITIAL:I
+Landroid/icu/text/MessageFormat;->STATE_IN_QUOTE:I
+Landroid/icu/text/MessageFormat;->STATE_MSG_ELEMENT:I
+Landroid/icu/text/MessageFormat;->STATE_SINGLE_QUOTE:I
+Landroid/icu/text/MessageFormat;->stockDateFormatter:Landroid/icu/text/DateFormat;
+Landroid/icu/text/MessageFormat;->stockNumberFormatter:Landroid/icu/text/NumberFormat;
+Landroid/icu/text/MessageFormat;->typeList:[Ljava/lang/String;
+Landroid/icu/text/MessageFormat;->TYPE_DATE:I
+Landroid/icu/text/MessageFormat;->TYPE_DURATION:I
+Landroid/icu/text/MessageFormat;->TYPE_NUMBER:I
+Landroid/icu/text/MessageFormat;->TYPE_ORDINAL:I
+Landroid/icu/text/MessageFormat;->TYPE_SPELLOUT:I
+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
+Landroid/icu/text/MessagePattern$Part;->limitPartIndex:I
+Landroid/icu/text/MessagePattern$Part;->MAX_LENGTH:I
+Landroid/icu/text/MessagePattern$Part;->MAX_VALUE:I
+Landroid/icu/text/MessagePattern$Part;->type:Landroid/icu/text/MessagePattern$Part$Type;
+Landroid/icu/text/MessagePattern$Part;->value:S
+Landroid/icu/text/MessagePattern;->addArgDoublePart(DII)V
+Landroid/icu/text/MessagePattern;->addLimitPart(ILandroid/icu/text/MessagePattern$Part$Type;III)V
+Landroid/icu/text/MessagePattern;->addPart(Landroid/icu/text/MessagePattern$Part$Type;III)V
+Landroid/icu/text/MessagePattern;->aposMode:Landroid/icu/text/MessagePattern$ApostropheMode;
+Landroid/icu/text/MessagePattern;->appendReducedApostrophes(Ljava/lang/String;IILjava/lang/StringBuilder;)V
+Landroid/icu/text/MessagePattern;->argTypes:[Landroid/icu/text/MessagePattern$ArgType;
+Landroid/icu/text/MessagePattern;->defaultAposMode:Landroid/icu/text/MessagePattern$ApostropheMode;
+Landroid/icu/text/MessagePattern;->frozen:Z
+Landroid/icu/text/MessagePattern;->hasArgNames:Z
+Landroid/icu/text/MessagePattern;->hasArgNumbers:Z
+Landroid/icu/text/MessagePattern;->inMessageFormatPattern(I)Z
+Landroid/icu/text/MessagePattern;->inTopLevelChoiceMessage(ILandroid/icu/text/MessagePattern$ArgType;)Z
+Landroid/icu/text/MessagePattern;->isArgTypeChar(I)Z
+Landroid/icu/text/MessagePattern;->isChoice(I)Z
+Landroid/icu/text/MessagePattern;->isOrdinal(I)Z
+Landroid/icu/text/MessagePattern;->isPlural(I)Z
+Landroid/icu/text/MessagePattern;->isSelect(I)Z
+Landroid/icu/text/MessagePattern;->jdkAposMode()Z
+Landroid/icu/text/MessagePattern;->MAX_PREFIX_LENGTH:I
+Landroid/icu/text/MessagePattern;->msg:Ljava/lang/String;
+Landroid/icu/text/MessagePattern;->needsAutoQuoting:Z
+Landroid/icu/text/MessagePattern;->numericValues:Ljava/util/ArrayList;
+Landroid/icu/text/MessagePattern;->parseArg(III)I
+Landroid/icu/text/MessagePattern;->parseArgNumber(II)I
+Landroid/icu/text/MessagePattern;->parseArgNumber(Ljava/lang/CharSequence;II)I
+Landroid/icu/text/MessagePattern;->parseChoiceStyle(II)I
+Landroid/icu/text/MessagePattern;->parseDouble(IIZ)V
+Landroid/icu/text/MessagePattern;->parseMessage(IIILandroid/icu/text/MessagePattern$ArgType;)I
+Landroid/icu/text/MessagePattern;->parsePluralOrSelectStyle(Landroid/icu/text/MessagePattern$ArgType;II)I
+Landroid/icu/text/MessagePattern;->parseSimpleStyle(I)I
+Landroid/icu/text/MessagePattern;->parts:Ljava/util/ArrayList;
+Landroid/icu/text/MessagePattern;->postParse()V
+Landroid/icu/text/MessagePattern;->prefix()Ljava/lang/String;
+Landroid/icu/text/MessagePattern;->prefix(I)Ljava/lang/String;
+Landroid/icu/text/MessagePattern;->prefix(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/MessagePattern;->prefix(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/icu/text/MessagePattern;->preParse(Ljava/lang/String;)V
+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;
+Landroid/icu/text/MessagePatternUtil$ArgNode;->createArgNode()Landroid/icu/text/MessagePatternUtil$ArgNode;
+Landroid/icu/text/MessagePatternUtil$ArgNode;->getArgType()Landroid/icu/text/MessagePattern$ArgType;
+Landroid/icu/text/MessagePatternUtil$ArgNode;->getComplexStyle()Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
+Landroid/icu/text/MessagePatternUtil$ArgNode;->getName()Ljava/lang/String;
+Landroid/icu/text/MessagePatternUtil$ArgNode;->getNumber()I
+Landroid/icu/text/MessagePatternUtil$ArgNode;->getSimpleStyle()Ljava/lang/String;
+Landroid/icu/text/MessagePatternUtil$ArgNode;->getTypeName()Ljava/lang/String;
+Landroid/icu/text/MessagePatternUtil$ArgNode;->name:Ljava/lang/String;
+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;
+Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->explicitOffset:Z
+Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->freeze()Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
+Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->getArgType()Landroid/icu/text/MessagePattern$ArgType;
+Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->getOffset()D
+Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->getVariants()Ljava/util/List;
+Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->getVariantsByType(Ljava/util/List;Ljava/util/List;)Landroid/icu/text/MessagePatternUtil$VariantNode;
+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;
+Landroid/icu/text/MessagePatternUtil$VariantNode;->getSelectorValue()D
+Landroid/icu/text/MessagePatternUtil$VariantNode;->isSelectorNumeric()Z
+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;
+Landroid/icu/text/MessagePatternUtil;->buildMessageNode(Landroid/icu/text/MessagePattern;)Landroid/icu/text/MessagePatternUtil$MessageNode;
+Landroid/icu/text/MessagePatternUtil;->buildMessageNode(Landroid/icu/text/MessagePattern;II)Landroid/icu/text/MessagePatternUtil$MessageNode;
+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
+Landroid/icu/text/NFRule;->decimalPoint:C
+Landroid/icu/text/NFRule;->doFormat(DLjava/lang/StringBuilder;II)V
+Landroid/icu/text/NFRule;->doFormat(JLjava/lang/StringBuilder;II)V
+Landroid/icu/text/NFRule;->doParse(Ljava/lang/String;Ljava/text/ParsePosition;ZD)Ljava/lang/Number;
+Landroid/icu/text/NFRule;->expectedExponent()S
+Landroid/icu/text/NFRule;->exponent:S
+Landroid/icu/text/NFRule;->extractSubstitution(Landroid/icu/text/NFRuleSet;Landroid/icu/text/NFRule;)Landroid/icu/text/NFSubstitution;
+Landroid/icu/text/NFRule;->extractSubstitutions(Landroid/icu/text/NFRuleSet;Ljava/lang/String;Landroid/icu/text/NFRule;)V
+Landroid/icu/text/NFRule;->findText(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/PluralFormat;I)[I
+Landroid/icu/text/NFRule;->formatter:Landroid/icu/text/RuleBasedNumberFormat;
+Landroid/icu/text/NFRule;->getBaseValue()J
+Landroid/icu/text/NFRule;->getDecimalPoint()C
+Landroid/icu/text/NFRule;->getDivisor()J
+Landroid/icu/text/NFRule;->IMPROPER_FRACTION_RULE:I
+Landroid/icu/text/NFRule;->indexOfAnyRulePrefix(Ljava/lang/String;)I
+Landroid/icu/text/NFRule;->INFINITY_RULE:I
+Landroid/icu/text/NFRule;->makeRules(Ljava/lang/String;Landroid/icu/text/NFRuleSet;Landroid/icu/text/NFRule;Landroid/icu/text/RuleBasedNumberFormat;Ljava/util/List;)V
+Landroid/icu/text/NFRule;->MASTER_RULE:I
+Landroid/icu/text/NFRule;->matchToDelimiter(Ljava/lang/String;IDLjava/lang/String;Landroid/icu/text/PluralFormat;Ljava/text/ParsePosition;Landroid/icu/text/NFSubstitution;D)Ljava/lang/Number;
+Landroid/icu/text/NFRule;->NAN_RULE:I
+Landroid/icu/text/NFRule;->NEGATIVE_NUMBER_RULE:I
+Landroid/icu/text/NFRule;->parseRuleDescriptor(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/NFRule;->power(JS)J
+Landroid/icu/text/NFRule;->prefixLength(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/icu/text/NFRule;->PROPER_FRACTION_RULE:I
+Landroid/icu/text/NFRule;->radix:I
+Landroid/icu/text/NFRule;->rulePatternFormat:Landroid/icu/text/PluralFormat;
+Landroid/icu/text/NFRule;->ruleText:Ljava/lang/String;
+Landroid/icu/text/NFRule;->RULE_PREFIXES:[Ljava/lang/String;
+Landroid/icu/text/NFRule;->setBaseValue(J)V
+Landroid/icu/text/NFRule;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
+Landroid/icu/text/NFRule;->shouldRollBack(J)Z
+Landroid/icu/text/NFRule;->stripPrefix(Ljava/lang/String;Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/String;
+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;
+Landroid/icu/text/NFRuleSet;->findRule(D)Landroid/icu/text/NFRule;
+Landroid/icu/text/NFRuleSet;->format(DLjava/lang/StringBuilder;II)V
+Landroid/icu/text/NFRuleSet;->format(JLjava/lang/StringBuilder;II)V
+Landroid/icu/text/NFRuleSet;->fractionRules:Ljava/util/LinkedList;
+Landroid/icu/text/NFRuleSet;->getName()Ljava/lang/String;
+Landroid/icu/text/NFRuleSet;->IMPROPER_FRACTION_RULE_INDEX:I
+Landroid/icu/text/NFRuleSet;->INFINITY_RULE_INDEX:I
+Landroid/icu/text/NFRuleSet;->isFractionRuleSet:Z
+Landroid/icu/text/NFRuleSet;->isFractionSet()Z
+Landroid/icu/text/NFRuleSet;->isParseable()Z
+Landroid/icu/text/NFRuleSet;->isParseable:Z
+Landroid/icu/text/NFRuleSet;->isPublic()Z
+Landroid/icu/text/NFRuleSet;->lcm(JJ)J
+Landroid/icu/text/NFRuleSet;->makeIntoFractionRuleSet()V
+Landroid/icu/text/NFRuleSet;->MASTER_RULE_INDEX:I
+Landroid/icu/text/NFRuleSet;->name:Ljava/lang/String;
+Landroid/icu/text/NFRuleSet;->NAN_RULE_INDEX:I
+Landroid/icu/text/NFRuleSet;->NEGATIVE_RULE_INDEX:I
+Landroid/icu/text/NFRuleSet;->nonNumericalRules:[Landroid/icu/text/NFRule;
+Landroid/icu/text/NFRuleSet;->owner:Landroid/icu/text/RuleBasedNumberFormat;
+Landroid/icu/text/NFRuleSet;->parse(Ljava/lang/String;Ljava/text/ParsePosition;D)Ljava/lang/Number;
+Landroid/icu/text/NFRuleSet;->parseRules(Ljava/lang/String;)V
+Landroid/icu/text/NFRuleSet;->PROPER_FRACTION_RULE_INDEX:I
+Landroid/icu/text/NFRuleSet;->RECURSION_LIMIT:I
+Landroid/icu/text/NFRuleSet;->rules:[Landroid/icu/text/NFRule;
+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
+Landroid/icu/text/NFSubstitution;->doParse(Ljava/lang/String;Ljava/text/ParsePosition;DDZ)Ljava/lang/Number;
+Landroid/icu/text/NFSubstitution;->doSubstitution(DLjava/lang/StringBuilder;II)V
+Landroid/icu/text/NFSubstitution;->doSubstitution(JLjava/lang/StringBuilder;II)V
+Landroid/icu/text/NFSubstitution;->getPos()I
+Landroid/icu/text/NFSubstitution;->isModulusSubstitution()Z
+Landroid/icu/text/NFSubstitution;->makeSubstitution(ILandroid/icu/text/NFRule;Landroid/icu/text/NFRule;Landroid/icu/text/NFRuleSet;Landroid/icu/text/RuleBasedNumberFormat;Ljava/lang/String;)Landroid/icu/text/NFSubstitution;
+Landroid/icu/text/NFSubstitution;->MAX_INT64_IN_DOUBLE:J
+Landroid/icu/text/NFSubstitution;->numberFormat:Landroid/icu/text/DecimalFormat;
+Landroid/icu/text/NFSubstitution;->pos:I
+Landroid/icu/text/NFSubstitution;->ruleSet:Landroid/icu/text/NFRuleSet;
+Landroid/icu/text/NFSubstitution;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
+Landroid/icu/text/NFSubstitution;->setDivisor(IS)V
+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
+Landroid/icu/text/Normalizer;-><init>(Ljava/text/CharacterIterator;Landroid/icu/text/Normalizer$Mode;I)V
+Landroid/icu/text/Normalizer;->buffer:Ljava/lang/StringBuilder;
+Landroid/icu/text/Normalizer;->bufferPos:I
+Landroid/icu/text/Normalizer;->clearBuffer()V
+Landroid/icu/text/Normalizer;->cmpEquivFold(Ljava/lang/CharSequence;Ljava/lang/CharSequence;I)I
+Landroid/icu/text/Normalizer;->COMPARE_EQUIV:I
+Landroid/icu/text/Normalizer;->COMPARE_NORM_OPTIONS_SHIFT:I
+Landroid/icu/text/Normalizer;->compose(Ljava/lang/String;Z)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->compose(Ljava/lang/String;ZI)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->compose([CII[CIIZI)I
+Landroid/icu/text/Normalizer;->compose([C[CZI)I
+Landroid/icu/text/Normalizer;->COMPOSE:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->COMPOSE_COMPAT:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->concatenate(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->concatenate([CII[CII[CIILandroid/icu/text/Normalizer$Mode;I)I
+Landroid/icu/text/Normalizer;->concatenate([C[CLandroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->createCmpEquivLevelStack()[Landroid/icu/text/Normalizer$CmpEquivLevel;
+Landroid/icu/text/Normalizer;->current()I
+Landroid/icu/text/Normalizer;->currentIndex:I
+Landroid/icu/text/Normalizer;->DECOMP:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->decompose(Ljava/lang/String;Z)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->decompose(Ljava/lang/String;ZI)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->decompose([CII[CIIZI)I
+Landroid/icu/text/Normalizer;->decompose([C[CZI)I
+Landroid/icu/text/Normalizer;->DECOMP_COMPAT:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->DEFAULT:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->DONE:I
+Landroid/icu/text/Normalizer;->endIndex()I
+Landroid/icu/text/Normalizer;->FCD:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->first()I
+Landroid/icu/text/Normalizer;->getBeginIndex()I
+Landroid/icu/text/Normalizer;->getComposeNormalizer2(ZI)Landroid/icu/text/Normalizer2;
+Landroid/icu/text/Normalizer;->getDecomposeNormalizer2(ZI)Landroid/icu/text/Normalizer2;
+Landroid/icu/text/Normalizer;->getEndIndex()I
+Landroid/icu/text/Normalizer;->getFC_NFKC_Closure(I)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->getFC_NFKC_Closure(I[C)I
+Landroid/icu/text/Normalizer;->getIndex()I
+Landroid/icu/text/Normalizer;->getLength()I
+Landroid/icu/text/Normalizer;->getMode()Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->getOption(I)I
+Landroid/icu/text/Normalizer;->getText()Ljava/lang/String;
+Landroid/icu/text/Normalizer;->getText([C)I
+Landroid/icu/text/Normalizer;->IGNORE_HANGUL:I
+Landroid/icu/text/Normalizer;->internalCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;I)I
+Landroid/icu/text/Normalizer;->isNormalized(ILandroid/icu/text/Normalizer$Mode;I)Z
+Landroid/icu/text/Normalizer;->isNormalized(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Z
+Landroid/icu/text/Normalizer;->isNormalized([CIILandroid/icu/text/Normalizer$Mode;I)Z
+Landroid/icu/text/Normalizer;->last()I
+Landroid/icu/text/Normalizer;->mode:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->next()I
+Landroid/icu/text/Normalizer;->nextIndex:I
+Landroid/icu/text/Normalizer;->nextNormalize()Z
+Landroid/icu/text/Normalizer;->NFC:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->NFD:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->NFKC:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->NFKD:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->NONE:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->norm2:Landroid/icu/text/Normalizer2;
+Landroid/icu/text/Normalizer;->normalize(ILandroid/icu/text/Normalizer$Mode;)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->normalize(ILandroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->normalize(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->normalize(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
+Landroid/icu/text/Normalizer;->normalize([CII[CIILandroid/icu/text/Normalizer$Mode;I)I
+Landroid/icu/text/Normalizer;->normalize([C[CLandroid/icu/text/Normalizer$Mode;I)I
+Landroid/icu/text/Normalizer;->NO_OP:Landroid/icu/text/Normalizer$Mode;
+Landroid/icu/text/Normalizer;->options:I
+Landroid/icu/text/Normalizer;->previous()I
+Landroid/icu/text/Normalizer;->previousNormalize()Z
+Landroid/icu/text/Normalizer;->quickCheck(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;)Landroid/icu/text/Normalizer$QuickCheckResult;
+Landroid/icu/text/Normalizer;->quickCheck(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Landroid/icu/text/Normalizer$QuickCheckResult;
+Landroid/icu/text/Normalizer;->quickCheck([CIILandroid/icu/text/Normalizer$Mode;I)Landroid/icu/text/Normalizer$QuickCheckResult;
+Landroid/icu/text/Normalizer;->quickCheck([CLandroid/icu/text/Normalizer$Mode;I)Landroid/icu/text/Normalizer$QuickCheckResult;
+Landroid/icu/text/Normalizer;->reset()V
+Landroid/icu/text/Normalizer;->setIndex(I)I
+Landroid/icu/text/Normalizer;->setIndexOnly(I)V
+Landroid/icu/text/Normalizer;->setMode(Landroid/icu/text/Normalizer$Mode;)V
+Landroid/icu/text/Normalizer;->setOption(IZ)V
+Landroid/icu/text/Normalizer;->setText(Landroid/icu/text/UCharacterIterator;)V
+Landroid/icu/text/Normalizer;->setText(Ljava/lang/String;)V
+Landroid/icu/text/Normalizer;->setText(Ljava/lang/StringBuffer;)V
+Landroid/icu/text/Normalizer;->setText(Ljava/text/CharacterIterator;)V
+Landroid/icu/text/Normalizer;->setText([C)V
+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;
+Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_CURRENCY:I
+Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_INTEGER:I
+Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_NUMBER:I
+Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_PERCENT:I
+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
+Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;-><init>(Ljava/util/Locale;Z)V
+Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;->getSupportedLocaleNames()Ljava/util/Set;
+Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;->localeNames:Ljava/util/Set;
+Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;->visible()Z
+Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;->visible:Z
+Landroid/icu/text/NumberFormat;->capitalizationSetting:Landroid/icu/text/DisplayContext;
+Landroid/icu/text/NumberFormat;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
+Landroid/icu/text/NumberFormat;->currency:Landroid/icu/util/Currency;
+Landroid/icu/text/NumberFormat;->currentSerialVersion:I
+Landroid/icu/text/NumberFormat;->doubleCurrencySign:[C
+Landroid/icu/text/NumberFormat;->doubleCurrencyStr:Ljava/lang/String;
+Landroid/icu/text/NumberFormat;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/text/NumberFormat;->getEffectiveCurrency()Landroid/icu/util/Currency;
+Landroid/icu/text/NumberFormat;->getPattern(Ljava/util/Locale;I)Ljava/lang/String;
+Landroid/icu/text/NumberFormat;->getPatternForStyle(Landroid/icu/util/ULocale;I)Ljava/lang/String;
+Landroid/icu/text/NumberFormat;->getPatternForStyleAndNumberingSystem(Landroid/icu/util/ULocale;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/icu/text/NumberFormat;->getShim()Landroid/icu/text/NumberFormat$NumberFormatShim;
+Landroid/icu/text/NumberFormat;->groupingUsed:Z
+Landroid/icu/text/NumberFormat;->maxFractionDigits:B
+Landroid/icu/text/NumberFormat;->maximumFractionDigits:I
+Landroid/icu/text/NumberFormat;->maximumIntegerDigits:I
+Landroid/icu/text/NumberFormat;->maxIntegerDigits:B
+Landroid/icu/text/NumberFormat;->minFractionDigits:B
+Landroid/icu/text/NumberFormat;->minimumFractionDigits:I
+Landroid/icu/text/NumberFormat;->minimumIntegerDigits:I
+Landroid/icu/text/NumberFormat;->minIntegerDigits:B
+Landroid/icu/text/NumberFormat;->parseIntegerOnly:Z
+Landroid/icu/text/NumberFormat;->parseStrict:Z
+Landroid/icu/text/NumberFormat;->registerFactory(Landroid/icu/text/NumberFormat$NumberFormatFactory;)Ljava/lang/Object;
+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;
+Landroid/icu/text/NumberingSystem;->algorithmic:Z
+Landroid/icu/text/NumberingSystem;->cachedLocaleData:Landroid/icu/impl/CacheBase;
+Landroid/icu/text/NumberingSystem;->cachedStringData:Landroid/icu/impl/CacheBase;
+Landroid/icu/text/NumberingSystem;->desc:Ljava/lang/String;
+Landroid/icu/text/NumberingSystem;->getInstance(Ljava/lang/String;IZLjava/lang/String;)Landroid/icu/text/NumberingSystem;
+Landroid/icu/text/NumberingSystem;->LATIN:Landroid/icu/text/NumberingSystem;
+Landroid/icu/text/NumberingSystem;->lookupInstanceByLocale(Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem;
+Landroid/icu/text/NumberingSystem;->lookupInstanceByName(Ljava/lang/String;)Landroid/icu/text/NumberingSystem;
+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
+Landroid/icu/text/PluralFormat;->format(Ljava/lang/Number;D)Ljava/lang/String;
+Landroid/icu/text/PluralFormat;->init(Landroid/icu/text/PluralRules;Landroid/icu/text/PluralRules$PluralType;Landroid/icu/util/ULocale;Landroid/icu/text/NumberFormat;)V
+Landroid/icu/text/PluralFormat;->msgPattern:Landroid/icu/text/MessagePattern;
+Landroid/icu/text/PluralFormat;->numberFormat:Landroid/icu/text/NumberFormat;
+Landroid/icu/text/PluralFormat;->offset:D
+Landroid/icu/text/PluralFormat;->parsedValues:Ljava/util/Map;
+Landroid/icu/text/PluralFormat;->parseType(Ljava/lang/String;Landroid/icu/text/RbnfLenientScanner;Ljava/text/FieldPosition;)Ljava/lang/String;
+Landroid/icu/text/PluralFormat;->pattern:Ljava/lang/String;
+Landroid/icu/text/PluralFormat;->pluralRules:Landroid/icu/text/PluralRules;
+Landroid/icu/text/PluralFormat;->pluralRulesWrapper:Landroid/icu/text/PluralFormat$PluralSelectorAdapter;
+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
+Landroid/icu/text/PluralRanges$Matrix;->endSame(Landroid/icu/impl/StandardPlural;)Landroid/icu/impl/StandardPlural;
+Landroid/icu/text/PluralRanges$Matrix;->get(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)Landroid/icu/impl/StandardPlural;
+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
+Landroid/icu/text/PluralRanges;->explicit:[Z
+Landroid/icu/text/PluralRanges;->get(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)Landroid/icu/impl/StandardPlural;
+Landroid/icu/text/PluralRanges;->isExplicit(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)Z
+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;
+Landroid/icu/text/PluralRules$Factory;->getAvailableULocales()[Landroid/icu/util/ULocale;
+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
+Landroid/icu/text/PluralRules$FixedDecimal;-><init>(J)V
+Landroid/icu/text/PluralRules$FixedDecimal;-><init>(Ljava/lang/String;)V
+Landroid/icu/text/PluralRules$FixedDecimal;->baseFactor:I
+Landroid/icu/text/PluralRules$FixedDecimal;->compareTo(Landroid/icu/text/PluralRules$FixedDecimal;)I
+Landroid/icu/text/PluralRules$FixedDecimal;->decimalDigits:J
+Landroid/icu/text/PluralRules$FixedDecimal;->decimalDigitsWithoutTrailingZeros:J
+Landroid/icu/text/PluralRules$FixedDecimal;->decimals(D)I
+Landroid/icu/text/PluralRules$FixedDecimal;->getBaseFactor()I
+Landroid/icu/text/PluralRules$FixedDecimal;->getDecimalDigits()J
+Landroid/icu/text/PluralRules$FixedDecimal;->getDecimalDigitsWithoutTrailingZeros()J
+Landroid/icu/text/PluralRules$FixedDecimal;->getFractionalDigits(DI)I
+Landroid/icu/text/PluralRules$FixedDecimal;->getIntegerValue()J
+Landroid/icu/text/PluralRules$FixedDecimal;->getOperand(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand;
+Landroid/icu/text/PluralRules$FixedDecimal;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D
+Landroid/icu/text/PluralRules$FixedDecimal;->getShiftedValue()J
+Landroid/icu/text/PluralRules$FixedDecimal;->getSource()D
+Landroid/icu/text/PluralRules$FixedDecimal;->getVisibleDecimalDigitCount()I
+Landroid/icu/text/PluralRules$FixedDecimal;->getVisibleDecimalDigitCountWithoutTrailingZeros()I
+Landroid/icu/text/PluralRules$FixedDecimal;->getVisibleFractionCount(Ljava/lang/String;)I
+Landroid/icu/text/PluralRules$FixedDecimal;->hasIntegerValue()Z
+Landroid/icu/text/PluralRules$FixedDecimal;->hasIntegerValue:Z
+Landroid/icu/text/PluralRules$FixedDecimal;->integerValue:J
+Landroid/icu/text/PluralRules$FixedDecimal;->isHasIntegerValue()Z
+Landroid/icu/text/PluralRules$FixedDecimal;->isInfinite()Z
+Landroid/icu/text/PluralRules$FixedDecimal;->isNaN()Z
+Landroid/icu/text/PluralRules$FixedDecimal;->isNegative()Z
+Landroid/icu/text/PluralRules$FixedDecimal;->isNegative:Z
+Landroid/icu/text/PluralRules$FixedDecimal;->MAX:J
+Landroid/icu/text/PluralRules$FixedDecimal;->MAX_INTEGER_PART:J
+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
+Landroid/icu/text/PluralRules$FixedDecimalSamples;->checkDecimal(Landroid/icu/text/PluralRules$SampleType;Landroid/icu/text/PluralRules$FixedDecimal;)V
+Landroid/icu/text/PluralRules$FixedDecimalSamples;->getSamples()Ljava/util/Set;
+Landroid/icu/text/PluralRules$FixedDecimalSamples;->getStartEndSamples(Ljava/util/Set;)V
+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;
+Landroid/icu/text/PluralRules$KeywordStatus;->UNBOUNDED:Landroid/icu/text/PluralRules$KeywordStatus;
+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;
+Landroid/icu/text/PluralRules$Operand;->n:Landroid/icu/text/PluralRules$Operand;
+Landroid/icu/text/PluralRules$Operand;->t:Landroid/icu/text/PluralRules$Operand;
+Landroid/icu/text/PluralRules$Operand;->v:Landroid/icu/text/PluralRules$Operand;
+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
+Landroid/icu/text/PluralRules$RangeConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
+Landroid/icu/text/PluralRules$RangeConstraint;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
+Landroid/icu/text/PluralRules$RangeConstraint;->lowerBound:D
+Landroid/icu/text/PluralRules$RangeConstraint;->mod:I
+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
+Landroid/icu/text/PluralRules$Rule;->constraint:Landroid/icu/text/PluralRules$Constraint;
+Landroid/icu/text/PluralRules$Rule;->decimalSamples:Landroid/icu/text/PluralRules$FixedDecimalSamples;
+Landroid/icu/text/PluralRules$Rule;->getConstraint()Ljava/lang/String;
+Landroid/icu/text/PluralRules$Rule;->getKeyword()Ljava/lang/String;
+Landroid/icu/text/PluralRules$Rule;->integerSamples:Landroid/icu/text/PluralRules$FixedDecimalSamples;
+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
+Landroid/icu/text/PluralRules$RuleList;->finish()Landroid/icu/text/PluralRules$RuleList;
+Landroid/icu/text/PluralRules$RuleList;->getDecimalSamples(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Landroid/icu/text/PluralRules$FixedDecimalSamples;
+Landroid/icu/text/PluralRules$RuleList;->getKeywords()Ljava/util/Set;
+Landroid/icu/text/PluralRules$RuleList;->getRules(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/PluralRules$RuleList;->hasExplicitBoundingInfo:Z
+Landroid/icu/text/PluralRules$RuleList;->isLimited(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Z
+Landroid/icu/text/PluralRules$RuleList;->rules:Ljava/util/List;
+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;
+Landroid/icu/text/PluralRules$SimpleTokenizer;->split(Ljava/lang/String;)[Ljava/lang/String;
+Landroid/icu/text/PluralRules;-><init>(Landroid/icu/text/PluralRules$RuleList;)V
+Landroid/icu/text/PluralRules;->addConditional(Ljava/util/Set;Ljava/util/Set;D)Z
+Landroid/icu/text/PluralRules;->addRange(Ljava/lang/StringBuilder;DDZ)V
+Landroid/icu/text/PluralRules;->addSample(Ljava/lang/String;Ljava/lang/Number;ILjava/util/Set;)Z
+Landroid/icu/text/PluralRules;->ALLOWED_ID:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/PluralRules;->AND_SEPARATED:Ljava/util/regex/Pattern;
+Landroid/icu/text/PluralRules;->AT_SEPARATED:Ljava/util/regex/Pattern;
+Landroid/icu/text/PluralRules;->CATEGORY_SEPARATOR:Ljava/lang/String;
+Landroid/icu/text/PluralRules;->COMMA_SEPARATED:Ljava/util/regex/Pattern;
+Landroid/icu/text/PluralRules;->compareTo(Landroid/icu/text/PluralRules;)I
+Landroid/icu/text/PluralRules;->computeLimited(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Z
+Landroid/icu/text/PluralRules;->DEFAULT_RULE:Landroid/icu/text/PluralRules$Rule;
+Landroid/icu/text/PluralRules;->DOTDOT_SEPARATED:Ljava/util/regex/Pattern;
+Landroid/icu/text/PluralRules;->format(D)Ljava/lang/String;
+Landroid/icu/text/PluralRules;->getAllKeywordValues(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Ljava/util/Collection;
+Landroid/icu/text/PluralRules;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/text/PluralRules;->getDecimalSamples(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Landroid/icu/text/PluralRules$FixedDecimalSamples;
+Landroid/icu/text/PluralRules;->getFunctionalEquivalent(Landroid/icu/util/ULocale;[Z)Landroid/icu/util/ULocale;
+Landroid/icu/text/PluralRules;->getKeywordStatus(Ljava/lang/String;ILjava/util/Set;Landroid/icu/util/Output;)Landroid/icu/text/PluralRules$KeywordStatus;
+Landroid/icu/text/PluralRules;->getKeywordStatus(Ljava/lang/String;ILjava/util/Set;Landroid/icu/util/Output;Landroid/icu/text/PluralRules$SampleType;)Landroid/icu/text/PluralRules$KeywordStatus;
+Landroid/icu/text/PluralRules;->getRules(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/PluralRules;->getSamples(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Ljava/util/Collection;
+Landroid/icu/text/PluralRules;->isLimited(Ljava/lang/String;)Ljava/lang/Boolean;
+Landroid/icu/text/PluralRules;->isLimited(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Z
+Landroid/icu/text/PluralRules;->isValidKeyword(Ljava/lang/String;)Z
+Landroid/icu/text/PluralRules;->keywords:Ljava/util/Set;
+Landroid/icu/text/PluralRules;->KEYWORD_RULE_SEPARATOR:Ljava/lang/String;
+Landroid/icu/text/PluralRules;->matches(Landroid/icu/text/PluralRules$FixedDecimal;Ljava/lang/String;)Z
+Landroid/icu/text/PluralRules;->nextToken([Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/PluralRules;->NO_CONSTRAINT:Landroid/icu/text/PluralRules$Constraint;
+Landroid/icu/text/PluralRules;->OR_SEPARATED:Ljava/util/regex/Pattern;
+Landroid/icu/text/PluralRules;->parseConstraint(Ljava/lang/String;)Landroid/icu/text/PluralRules$Constraint;
+Landroid/icu/text/PluralRules;->parseRule(Ljava/lang/String;)Landroid/icu/text/PluralRules$Rule;
+Landroid/icu/text/PluralRules;->parseRuleChain(Ljava/lang/String;)Landroid/icu/text/PluralRules$RuleList;
+Landroid/icu/text/PluralRules;->rules:Landroid/icu/text/PluralRules$RuleList;
+Landroid/icu/text/PluralRules;->select(DIJ)Ljava/lang/String;
+Landroid/icu/text/PluralRules;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String;
+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
+Landroid/icu/text/PluralSamples;->addSimpleSamples(Landroid/icu/text/PluralRules;ILjava/util/Map;ID)I
+Landroid/icu/text/PluralSamples;->fractions(Ljava/util/Set;)Ljava/util/Set;
+Landroid/icu/text/PluralSamples;->getAllKeywordValues(Ljava/lang/String;)Ljava/util/Collection;
+Landroid/icu/text/PluralSamples;->getDifferentCategory(Ljava/util/List;Ljava/lang/String;)Ljava/lang/Integer;
+Landroid/icu/text/PluralSamples;->getFractionSamples()Ljava/util/Set;
+Landroid/icu/text/PluralSamples;->getKeyFractionSamplesMap()Ljava/util/Map;
+Landroid/icu/text/PluralSamples;->getKeySamplesMap()Ljava/util/Map;
+Landroid/icu/text/PluralSamples;->getStatus(Ljava/lang/String;ILjava/util/Set;Landroid/icu/util/Output;)Landroid/icu/text/PluralRules$KeywordStatus;
+Landroid/icu/text/PluralSamples;->LIMIT_FRACTION_SAMPLES:I
+Landroid/icu/text/PluralSamples;->pluralRules:Landroid/icu/text/PluralRules;
+Landroid/icu/text/PluralSamples;->TENS:[I
+Landroid/icu/text/PluralSamples;->_fractionSamples:Ljava/util/Set;
+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
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fFTable:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fFTableLen:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fLength:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fMagic:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fRTable:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fRTableLen:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fRuleSource:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fRuleSourceLen:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fSFTable:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fSFTableLen:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fSRTable:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fSRTableLen:I
+Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fStatusTable:I
+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
+Landroid/icu/text/RBBIDataWrapper;->DH_CATCOUNT:I
+Landroid/icu/text/RBBIDataWrapper;->DH_FORMATVERSION:I
+Landroid/icu/text/RBBIDataWrapper;->DH_FTABLE:I
+Landroid/icu/text/RBBIDataWrapper;->DH_FTABLELEN:I
+Landroid/icu/text/RBBIDataWrapper;->DH_LENGTH:I
+Landroid/icu/text/RBBIDataWrapper;->DH_MAGIC:I
+Landroid/icu/text/RBBIDataWrapper;->DH_RTABLE:I
+Landroid/icu/text/RBBIDataWrapper;->DH_RTABLELEN:I
+Landroid/icu/text/RBBIDataWrapper;->DH_RULESOURCE:I
+Landroid/icu/text/RBBIDataWrapper;->DH_RULESOURCELEN:I
+Landroid/icu/text/RBBIDataWrapper;->DH_SFTABLE:I
+Landroid/icu/text/RBBIDataWrapper;->DH_SFTABLELEN:I
+Landroid/icu/text/RBBIDataWrapper;->DH_SIZE:I
+Landroid/icu/text/RBBIDataWrapper;->DH_SRTABLE:I
+Landroid/icu/text/RBBIDataWrapper;->DH_SRTABLELEN:I
+Landroid/icu/text/RBBIDataWrapper;->DH_STATUSTABLE:I
+Landroid/icu/text/RBBIDataWrapper;->DH_STATUSTABLELEN:I
+Landroid/icu/text/RBBIDataWrapper;->DH_TRIE:I
+Landroid/icu/text/RBBIDataWrapper;->DH_TRIELEN:I
+Landroid/icu/text/RBBIDataWrapper;->dump(Ljava/io/PrintStream;)V
+Landroid/icu/text/RBBIDataWrapper;->dumpCharCategories(Ljava/io/PrintStream;)V
+Landroid/icu/text/RBBIDataWrapper;->dumpRow(Ljava/io/PrintStream;[SI)V
+Landroid/icu/text/RBBIDataWrapper;->dumpTable(Ljava/io/PrintStream;[S)V
+Landroid/icu/text/RBBIDataWrapper;->fFTable:[S
+Landroid/icu/text/RBBIDataWrapper;->fHeader:Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;
+Landroid/icu/text/RBBIDataWrapper;->FLAGS:I
+Landroid/icu/text/RBBIDataWrapper;->FORMAT_VERSION:I
+Landroid/icu/text/RBBIDataWrapper;->fRTable:[S
+Landroid/icu/text/RBBIDataWrapper;->fRuleSource:Ljava/lang/String;
+Landroid/icu/text/RBBIDataWrapper;->fSFTable:[S
+Landroid/icu/text/RBBIDataWrapper;->fSRTable:[S
+Landroid/icu/text/RBBIDataWrapper;->fStatusTable:[I
+Landroid/icu/text/RBBIDataWrapper;->fTrie:Landroid/icu/impl/Trie2;
+Landroid/icu/text/RBBIDataWrapper;->get(Ljava/nio/ByteBuffer;)Landroid/icu/text/RBBIDataWrapper;
+Landroid/icu/text/RBBIDataWrapper;->getRowIndex(I)I
+Landroid/icu/text/RBBIDataWrapper;->getStateTableFlags([S)I
+Landroid/icu/text/RBBIDataWrapper;->getStateTableNumStates([S)I
+Landroid/icu/text/RBBIDataWrapper;->intToHexString(II)Ljava/lang/String;
+Landroid/icu/text/RBBIDataWrapper;->intToString(II)Ljava/lang/String;
+Landroid/icu/text/RBBIDataWrapper;->isBigEndian:Z
+Landroid/icu/text/RBBIDataWrapper;->IS_ACCEPTABLE:Landroid/icu/text/RBBIDataWrapper$IsAcceptable;
+Landroid/icu/text/RBBIDataWrapper;->LOOKAHEAD:I
+Landroid/icu/text/RBBIDataWrapper;->NEXTSTATES:I
+Landroid/icu/text/RBBIDataWrapper;->NUMSTATES:I
+Landroid/icu/text/RBBIDataWrapper;->RBBI_BOF_REQUIRED:I
+Landroid/icu/text/RBBIDataWrapper;->RBBI_LOOKAHEAD_HARD_BREAK:I
+Landroid/icu/text/RBBIDataWrapper;->RESERVED:I
+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;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->HOUR:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->MINUTE:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->MONDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->MONTH:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->orNullFromString(Ljava/lang/CharSequence;)Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->QUARTER:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->relUnit:Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->SATURDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->SECOND:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->SUNDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->THURSDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->TUESDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->valueOf(Ljava/lang/String;)Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+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
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeDetail(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeUnit(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handleAlias(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handlePlainDirection(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->pastFutureIndex:I
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->qualitativeUnitMap:Ljava/util/EnumMap;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->sb:Ljava/lang/StringBuilder;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->style:Landroid/icu/text/RelativeDateTimeFormatter$Style;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleFromAlias(Landroid/icu/impl/UResource$Value;)Landroid/icu/text/RelativeDateTimeFormatter$Style;
+Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleFromKey(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Style;
+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;
+Landroid/icu/text/RelativeDateTimeFormatter;->breakIterator:Landroid/icu/text/BreakIterator;
+Landroid/icu/text/RelativeDateTimeFormatter;->cache:Landroid/icu/text/RelativeDateTimeFormatter$Cache;
+Landroid/icu/text/RelativeDateTimeFormatter;->capitalizationContext:Landroid/icu/text/DisplayContext;
+Landroid/icu/text/RelativeDateTimeFormatter;->combinedDateAndTime:Ljava/lang/String;
+Landroid/icu/text/RelativeDateTimeFormatter;->dateFormatSymbols:Landroid/icu/text/DateFormatSymbols;
+Landroid/icu/text/RelativeDateTimeFormatter;->fallbackCache:[Landroid/icu/text/RelativeDateTimeFormatter$Style;
+Landroid/icu/text/RelativeDateTimeFormatter;->getAbsoluteUnitString(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;Landroid/icu/text/RelativeDateTimeFormatter$Direction;)Ljava/lang/String;
+Landroid/icu/text/RelativeDateTimeFormatter;->getRelativeUnitPattern(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;ILandroid/icu/impl/StandardPlural;)Ljava/lang/String;
+Landroid/icu/text/RelativeDateTimeFormatter;->getRelativeUnitPluralPattern(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;ILandroid/icu/impl/StandardPlural;)Ljava/lang/String;
+Landroid/icu/text/RelativeDateTimeFormatter;->keyToDirection(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Direction;
+Landroid/icu/text/RelativeDateTimeFormatter;->locale:Landroid/icu/util/ULocale;
+Landroid/icu/text/RelativeDateTimeFormatter;->numberFormat:Landroid/icu/text/NumberFormat;
+Landroid/icu/text/RelativeDateTimeFormatter;->patternMap:Ljava/util/EnumMap;
+Landroid/icu/text/RelativeDateTimeFormatter;->pluralRules:Landroid/icu/text/PluralRules;
+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
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->current()I
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->dumpCache()V
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fBoundaries:[I
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fBufIdx:I
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fEndBufIdx:I
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->following(I)V
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fSideBuffer:Landroid/icu/text/DictionaryBreakEngine$DequeI;
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fStartBufIdx:I
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fStatuses:[S
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fTextIdx:I
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->modChunkSize(I)I
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->next()V
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateFollowing()Z
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateNear(I)Z
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->populatePreceding()Z
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->preceding(I)V
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->previous()V
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset()V
+Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset(II)V
+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
+Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fLimit:I
+Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->following(I)Z
+Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fOtherRuleStatusIndex:I
+Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fPositionInCache:I
+Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fStart:I
+Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fStatusIndex:I
+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
+Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->fUsedSlotLimit:I
+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
+Landroid/icu/text/RuleBasedBreakIterator;->CISetIndex32(Ljava/text/CharacterIterator;I)I
+Landroid/icu/text/RuleBasedBreakIterator;->compileRules(Ljava/lang/String;Ljava/io/OutputStream;)V
+Landroid/icu/text/RuleBasedBreakIterator;->dump(Ljava/io/PrintStream;)V
+Landroid/icu/text/RuleBasedBreakIterator;->fBreakCache:Landroid/icu/text/RuleBasedBreakIterator$BreakCache;
+Landroid/icu/text/RuleBasedBreakIterator;->fBreakEngines:Ljava/util/List;
+Landroid/icu/text/RuleBasedBreakIterator;->fBreakType:I
+Landroid/icu/text/RuleBasedBreakIterator;->fDebugEnv:Ljava/lang/String;
+Landroid/icu/text/RuleBasedBreakIterator;->fDictionaryCache:Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;
+Landroid/icu/text/RuleBasedBreakIterator;->fDictionaryCharCount:I
+Landroid/icu/text/RuleBasedBreakIterator;->fDone:Z
+Landroid/icu/text/RuleBasedBreakIterator;->fLookAheadMatches:Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;
+Landroid/icu/text/RuleBasedBreakIterator;->fPosition:I
+Landroid/icu/text/RuleBasedBreakIterator;->fRData:Landroid/icu/text/RBBIDataWrapper;
+Landroid/icu/text/RuleBasedBreakIterator;->fRuleStatusIndex:I
+Landroid/icu/text/RuleBasedBreakIterator;->fText:Ljava/text/CharacterIterator;
+Landroid/icu/text/RuleBasedBreakIterator;->gAllBreakEngines:Ljava/util/List;
+Landroid/icu/text/RuleBasedBreakIterator;->getBreakType()I
+Landroid/icu/text/RuleBasedBreakIterator;->getInstanceFromCompiledRules(Ljava/io/InputStream;)Landroid/icu/text/RuleBasedBreakIterator;
+Landroid/icu/text/RuleBasedBreakIterator;->getInstanceFromCompiledRules(Ljava/nio/ByteBuffer;)Landroid/icu/text/RuleBasedBreakIterator;
+Landroid/icu/text/RuleBasedBreakIterator;->getLanguageBreakEngine(I)Landroid/icu/text/LanguageBreakEngine;
+Landroid/icu/text/RuleBasedBreakIterator;->gUnhandledBreakEngine:Landroid/icu/text/UnhandledBreakEngine;
+Landroid/icu/text/RuleBasedBreakIterator;->handleNext()I
+Landroid/icu/text/RuleBasedBreakIterator;->handlePrevious(I)I
+Landroid/icu/text/RuleBasedBreakIterator;->kMaxLookaheads:I
+Landroid/icu/text/RuleBasedBreakIterator;->RBBI_DEBUG_ARG:Ljava/lang/String;
+Landroid/icu/text/RuleBasedBreakIterator;->RBBI_END:I
+Landroid/icu/text/RuleBasedBreakIterator;->RBBI_RUN:I
+Landroid/icu/text/RuleBasedBreakIterator;->RBBI_START:I
+Landroid/icu/text/RuleBasedBreakIterator;->setBreakType(I)V
+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;
+Landroid/icu/text/RuleBasedCollator$CollationBuffer;->leftUTF16CollIter:Landroid/icu/impl/coll/UTF16CollationIterator;
+Landroid/icu/text/RuleBasedCollator$CollationBuffer;->leftUTF16NFDIter:Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;
+Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rawCollationKey:Landroid/icu/text/RawCollationKey;
+Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rightFCDUTF16Iter:Landroid/icu/impl/coll/FCDUTF16CollationIterator;
+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
+Landroid/icu/text/RuleBasedCollator$NFDIterator;->nextCodePoint()I
+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
+Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;->s:Ljava/lang/CharSequence;
+Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;->setText(Ljava/lang/CharSequence;I)V
+Landroid/icu/text/RuleBasedCollator;-><init>(Landroid/icu/impl/coll/CollationTailoring;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/RuleBasedCollator;->actualLocaleIsSameAsValid:Z
+Landroid/icu/text/RuleBasedCollator;->adoptTailoring(Landroid/icu/impl/coll/CollationTailoring;)V
+Landroid/icu/text/RuleBasedCollator;->checkNotFrozen()V
+Landroid/icu/text/RuleBasedCollator;->collationBuffer:Landroid/icu/text/RuleBasedCollator$CollationBuffer;
+Landroid/icu/text/RuleBasedCollator;->compareNFDIter(Landroid/icu/impl/Normalizer2Impl;Landroid/icu/text/RuleBasedCollator$NFDIterator;Landroid/icu/text/RuleBasedCollator$NFDIterator;)I
+Landroid/icu/text/RuleBasedCollator;->data:Landroid/icu/impl/coll/CollationData;
+Landroid/icu/text/RuleBasedCollator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
+Landroid/icu/text/RuleBasedCollator;->frozenLock:Ljava/util/concurrent/locks/Lock;
+Landroid/icu/text/RuleBasedCollator;->getCollationBuffer()Landroid/icu/text/RuleBasedCollator$CollationBuffer;
+Landroid/icu/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/CollationKey;
+Landroid/icu/text/RuleBasedCollator;->getDefaultSettings()Landroid/icu/impl/coll/CollationSettings;
+Landroid/icu/text/RuleBasedCollator;->getOwnedSettings()Landroid/icu/impl/coll/CollationSettings;
+Landroid/icu/text/RuleBasedCollator;->getRawCollationKey(Ljava/lang/CharSequence;Landroid/icu/text/RawCollationKey;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/RawCollationKey;
+Landroid/icu/text/RuleBasedCollator;->getRawCollationKey(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)Landroid/icu/text/RawCollationKey;
+Landroid/icu/text/RuleBasedCollator;->initMaxExpansions()V
+Landroid/icu/text/RuleBasedCollator;->internalAddContractions(ILandroid/icu/text/UnicodeSet;)V
+Landroid/icu/text/RuleBasedCollator;->internalBuildTailoring(Ljava/lang/String;)V
+Landroid/icu/text/RuleBasedCollator;->internalGetCEs(Ljava/lang/CharSequence;)[J
+Landroid/icu/text/RuleBasedCollator;->internalSetVariableTop(J)V
+Landroid/icu/text/RuleBasedCollator;->isHiraganaQuaternary()Z
+Landroid/icu/text/RuleBasedCollator;->isUnsafe(I)Z
+Landroid/icu/text/RuleBasedCollator;->releaseCollationBuffer(Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
+Landroid/icu/text/RuleBasedCollator;->setFastLatinOptions(Landroid/icu/impl/coll/CollationSettings;)V
+Landroid/icu/text/RuleBasedCollator;->setHiraganaQuaternary(Z)V
+Landroid/icu/text/RuleBasedCollator;->setHiraganaQuaternaryDefault()V
+Landroid/icu/text/RuleBasedCollator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/RuleBasedCollator;->settings:Landroid/icu/impl/coll/SharedObject$Reference;
+Landroid/icu/text/RuleBasedCollator;->setVariableTop(I)V
+Landroid/icu/text/RuleBasedCollator;->setVariableTop(Ljava/lang/String;)I
+Landroid/icu/text/RuleBasedCollator;->simpleKeyLengthEstimate(Ljava/lang/CharSequence;)I
+Landroid/icu/text/RuleBasedCollator;->tailoring:Landroid/icu/impl/coll/CollationTailoring;
+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
+Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
+Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;[[Ljava/lang/String;)V
+Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;[[Ljava/lang/String;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/util/Locale;I)V
+Landroid/icu/text/RuleBasedNumberFormat;->adjustForContext(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->capitalizationBrkIter:Landroid/icu/text/BreakIterator;
+Landroid/icu/text/RuleBasedNumberFormat;->capitalizationForListOrMenu:Z
+Landroid/icu/text/RuleBasedNumberFormat;->capitalizationForStandAlone:Z
+Landroid/icu/text/RuleBasedNumberFormat;->capitalizationInfoIsSet:Z
+Landroid/icu/text/RuleBasedNumberFormat;->createPluralFormat(Landroid/icu/text/PluralRules$PluralType;Ljava/lang/String;)Landroid/icu/text/PluralFormat;
+Landroid/icu/text/RuleBasedNumberFormat;->DEBUG:Z
+Landroid/icu/text/RuleBasedNumberFormat;->decimalFormat:Landroid/icu/text/DecimalFormat;
+Landroid/icu/text/RuleBasedNumberFormat;->decimalFormatSymbols:Landroid/icu/text/DecimalFormatSymbols;
+Landroid/icu/text/RuleBasedNumberFormat;->defaultInfinityRule:Landroid/icu/text/NFRule;
+Landroid/icu/text/RuleBasedNumberFormat;->defaultNaNRule:Landroid/icu/text/NFRule;
+Landroid/icu/text/RuleBasedNumberFormat;->defaultRuleSet:Landroid/icu/text/NFRuleSet;
+Landroid/icu/text/RuleBasedNumberFormat;->DURATION:I
+Landroid/icu/text/RuleBasedNumberFormat;->extractSpecial(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->findRuleSet(Ljava/lang/String;)Landroid/icu/text/NFRuleSet;
+Landroid/icu/text/RuleBasedNumberFormat;->format(DLandroid/icu/text/NFRuleSet;)Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->format(DLjava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->format(JLandroid/icu/text/NFRuleSet;)Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->format(JLjava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->getDecimalFormat()Landroid/icu/text/DecimalFormat;
+Landroid/icu/text/RuleBasedNumberFormat;->getDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
+Landroid/icu/text/RuleBasedNumberFormat;->getDefaultInfinityRule()Landroid/icu/text/NFRule;
+Landroid/icu/text/RuleBasedNumberFormat;->getDefaultNaNRule()Landroid/icu/text/NFRule;
+Landroid/icu/text/RuleBasedNumberFormat;->getDefaultRuleSet()Landroid/icu/text/NFRuleSet;
+Landroid/icu/text/RuleBasedNumberFormat;->getDefaultRuleSetName()Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->getLenientScanner()Landroid/icu/text/RbnfLenientScanner;
+Landroid/icu/text/RuleBasedNumberFormat;->getLenientScannerProvider()Landroid/icu/text/RbnfLenientScannerProvider;
+Landroid/icu/text/RuleBasedNumberFormat;->getNameListForLocale(Landroid/icu/util/ULocale;)[Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayName(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayNameLocales()[Landroid/icu/util/ULocale;
+Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayNames()[Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayNames(Landroid/icu/util/ULocale;)[Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetNames()[Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->init(Ljava/lang/String;[[Ljava/lang/String;)V
+Landroid/icu/text/RuleBasedNumberFormat;->initCapitalizationContextInfo(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/RuleBasedNumberFormat;->initLocalizations([[Ljava/lang/String;)V
+Landroid/icu/text/RuleBasedNumberFormat;->lenientParse:Z
+Landroid/icu/text/RuleBasedNumberFormat;->lenientParseEnabled()Z
+Landroid/icu/text/RuleBasedNumberFormat;->lenientParseRules:Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->locale:Landroid/icu/util/ULocale;
+Landroid/icu/text/RuleBasedNumberFormat;->locnames:[Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->lookedForScanner:Z
+Landroid/icu/text/RuleBasedNumberFormat;->MAX_VALUE:Landroid/icu/math/BigDecimal;
+Landroid/icu/text/RuleBasedNumberFormat;->MIN_VALUE:Landroid/icu/math/BigDecimal;
+Landroid/icu/text/RuleBasedNumberFormat;->NUMBERING_SYSTEM:I
+Landroid/icu/text/RuleBasedNumberFormat;->ORDINAL:I
+Landroid/icu/text/RuleBasedNumberFormat;->postProcess(Ljava/lang/StringBuilder;Landroid/icu/text/NFRuleSet;)V
+Landroid/icu/text/RuleBasedNumberFormat;->postProcessor:Landroid/icu/text/RBNFPostProcessor;
+Landroid/icu/text/RuleBasedNumberFormat;->postProcessRules:Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->publicRuleSetNames:[Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->roundingMode:I
+Landroid/icu/text/RuleBasedNumberFormat;->rulenames:[Ljava/lang/String;
+Landroid/icu/text/RuleBasedNumberFormat;->ruleSetDisplayNames:Ljava/util/Map;
+Landroid/icu/text/RuleBasedNumberFormat;->ruleSets:[Landroid/icu/text/NFRuleSet;
+Landroid/icu/text/RuleBasedNumberFormat;->ruleSetsMap:Ljava/util/Map;
+Landroid/icu/text/RuleBasedNumberFormat;->scannerProvider:Landroid/icu/text/RbnfLenientScannerProvider;
+Landroid/icu/text/RuleBasedNumberFormat;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
+Landroid/icu/text/RuleBasedNumberFormat;->setDefaultRuleSet(Ljava/lang/String;)V
+Landroid/icu/text/RuleBasedNumberFormat;->setLenientParseMode(Z)V
+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;
+Landroid/icu/text/RuleBasedTransliterator$Data;->ruleSet:Landroid/icu/text/TransliterationRuleSet;
+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
+Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->format(Ljava/text/AttributedCharacterIterator;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->SUPERSCRIPT_DIGITS:[C
+Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->SUPERSCRIPT_MINUS_SIGN:C
+Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->SUPERSCRIPT_PLUS_SIGN:C
+Landroid/icu/text/ScientificNumberFormatter;-><init>(Landroid/icu/text/DecimalFormat;Ljava/lang/String;Landroid/icu/text/ScientificNumberFormatter$Style;)V
+Landroid/icu/text/ScientificNumberFormatter;->fmt:Landroid/icu/text/DecimalFormat;
+Landroid/icu/text/ScientificNumberFormatter;->getInstance(Landroid/icu/text/DecimalFormat;Landroid/icu/text/ScientificNumberFormatter$Style;)Landroid/icu/text/ScientificNumberFormatter;
+Landroid/icu/text/ScientificNumberFormatter;->getInstanceForLocale(Landroid/icu/util/ULocale;Landroid/icu/text/ScientificNumberFormatter$Style;)Landroid/icu/text/ScientificNumberFormatter;
+Landroid/icu/text/ScientificNumberFormatter;->getPreExponent(Landroid/icu/text/DecimalFormatSymbols;)Ljava/lang/String;
+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
+Landroid/icu/text/SCSU;->HALFWIDTHKATAKANAINDEX:I
+Landroid/icu/text/SCSU;->HIRAGANAINDEX:I
+Landroid/icu/text/SCSU;->INVALIDCHAR:I
+Landroid/icu/text/SCSU;->INVALIDWINDOW:I
+Landroid/icu/text/SCSU;->IPAEXTENSIONINDEX:I
+Landroid/icu/text/SCSU;->KATAKANAINDEX:I
+Landroid/icu/text/SCSU;->LATININDEX:I
+Landroid/icu/text/SCSU;->MAXINDEX:I
+Landroid/icu/text/SCSU;->NUMSTATICWINDOWS:I
+Landroid/icu/text/SCSU;->NUMWINDOWS:I
+Landroid/icu/text/SCSU;->RESERVEDINDEX:I
+Landroid/icu/text/SCSU;->SCHANGE0:I
+Landroid/icu/text/SCSU;->SCHANGE1:I
+Landroid/icu/text/SCSU;->SCHANGE2:I
+Landroid/icu/text/SCSU;->SCHANGE3:I
+Landroid/icu/text/SCSU;->SCHANGE4:I
+Landroid/icu/text/SCSU;->SCHANGE5:I
+Landroid/icu/text/SCSU;->SCHANGE6:I
+Landroid/icu/text/SCSU;->SCHANGE7:I
+Landroid/icu/text/SCSU;->SCHANGEU:I
+Landroid/icu/text/SCSU;->SDEFINE0:I
+Landroid/icu/text/SCSU;->SDEFINE1:I
+Landroid/icu/text/SCSU;->SDEFINE2:I
+Landroid/icu/text/SCSU;->SDEFINE3:I
+Landroid/icu/text/SCSU;->SDEFINE4:I
+Landroid/icu/text/SCSU;->SDEFINE5:I
+Landroid/icu/text/SCSU;->SDEFINE6:I
+Landroid/icu/text/SCSU;->SDEFINE7:I
+Landroid/icu/text/SCSU;->SDEFINEX:I
+Landroid/icu/text/SCSU;->SINGLEBYTEMODE:I
+Landroid/icu/text/SCSU;->sOffsets:[I
+Landroid/icu/text/SCSU;->sOffsetTable:[I
+Landroid/icu/text/SCSU;->SQUOTE0:I
+Landroid/icu/text/SCSU;->SQUOTE1:I
+Landroid/icu/text/SCSU;->SQUOTE2:I
+Landroid/icu/text/SCSU;->SQUOTE3:I
+Landroid/icu/text/SCSU;->SQUOTE4:I
+Landroid/icu/text/SCSU;->SQUOTE5:I
+Landroid/icu/text/SCSU;->SQUOTE6:I
+Landroid/icu/text/SCSU;->SQUOTE7:I
+Landroid/icu/text/SCSU;->SQUOTEU:I
+Landroid/icu/text/SCSU;->SRESERVED:I
+Landroid/icu/text/SCSU;->UCHANGE0:I
+Landroid/icu/text/SCSU;->UCHANGE1:I
+Landroid/icu/text/SCSU;->UCHANGE2:I
+Landroid/icu/text/SCSU;->UCHANGE3:I
+Landroid/icu/text/SCSU;->UCHANGE4:I
+Landroid/icu/text/SCSU;->UCHANGE5:I
+Landroid/icu/text/SCSU;->UCHANGE6:I
+Landroid/icu/text/SCSU;->UCHANGE7:I
+Landroid/icu/text/SCSU;->UDEFINE0:I
+Landroid/icu/text/SCSU;->UDEFINE1:I
+Landroid/icu/text/SCSU;->UDEFINE2:I
+Landroid/icu/text/SCSU;->UDEFINE3:I
+Landroid/icu/text/SCSU;->UDEFINE4:I
+Landroid/icu/text/SCSU;->UDEFINE5:I
+Landroid/icu/text/SCSU;->UDEFINE6:I
+Landroid/icu/text/SCSU;->UDEFINE7:I
+Landroid/icu/text/SCSU;->UDEFINEX:I
+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;
+Landroid/icu/text/SearchIterator$Search;->endIndex()I
+Landroid/icu/text/SearchIterator$Search;->internalBreakIter_:Landroid/icu/text/BreakIterator;
+Landroid/icu/text/SearchIterator$Search;->isCanonicalMatch_:Z
+Landroid/icu/text/SearchIterator$Search;->isForwardSearching_:Z
+Landroid/icu/text/SearchIterator$Search;->isOverlap_:Z
+Landroid/icu/text/SearchIterator$Search;->matchedIndex_:I
+Landroid/icu/text/SearchIterator$Search;->matchedLength()I
+Landroid/icu/text/SearchIterator$Search;->reset_:Z
+Landroid/icu/text/SearchIterator$Search;->setBreakIter(Landroid/icu/text/BreakIterator;)V
+Landroid/icu/text/SearchIterator$Search;->setMatchedLength(I)V
+Landroid/icu/text/SearchIterator$Search;->setTarget(Ljava/text/CharacterIterator;)V
+Landroid/icu/text/SearchIterator$Search;->text()Ljava/text/CharacterIterator;
+Landroid/icu/text/SearchIterator;->search_:Landroid/icu/text/SearchIterator$Search;
+Landroid/icu/text/SearchIterator;->setMatchNotFound()V
+Landroid/icu/text/SelectFormat;->findSubMessage(Landroid/icu/text/MessagePattern;ILjava/lang/String;)I
+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;
+Landroid/icu/text/SimpleDateFormat$ContextValue;->CAPITALIZATION_FOR_UI_LIST_OR_MENU:Landroid/icu/text/SimpleDateFormat$ContextValue;
+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
+Landroid/icu/text/SimpleDateFormat$PatternItem;->type:C
+Landroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/Calendar;Landroid/icu/text/NumberFormat;Landroid/icu/util/ULocale;ZLjava/lang/String;)V
+Landroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;ZLjava/lang/String;)V
+Landroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/ULocale;)V
+Landroid/icu/text/SimpleDateFormat;->allowNumericFallback(I)Z
+Landroid/icu/text/SimpleDateFormat;->cachedDefaultLocale:Landroid/icu/util/ULocale;
+Landroid/icu/text/SimpleDateFormat;->cachedDefaultPattern:Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->CALENDAR_FIELD_TO_LEVEL:[I
+Landroid/icu/text/SimpleDateFormat;->capitalizationBrkIter:Landroid/icu/text/BreakIterator;
+Landroid/icu/text/SimpleDateFormat;->countDigits(Ljava/lang/String;II)I
+Landroid/icu/text/SimpleDateFormat;->currentSerialVersion:I
+Landroid/icu/text/SimpleDateFormat;->DATE_PATTERN_TYPE:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/SimpleDateFormat;->decDigits:[C
+Landroid/icu/text/SimpleDateFormat;->decimalBuf:[C
+Landroid/icu/text/SimpleDateFormat;->DECIMAL_BUF_SIZE:I
+Landroid/icu/text/SimpleDateFormat;->defaultCenturyBase:J
+Landroid/icu/text/SimpleDateFormat;->defaultCenturyStart:Ljava/util/Date;
+Landroid/icu/text/SimpleDateFormat;->defaultCenturyStartYear:I
+Landroid/icu/text/SimpleDateFormat;->DelayedHebrewMonthCheck:Z
+Landroid/icu/text/SimpleDateFormat;->diffCalFieldValue(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;[Ljava/lang/Object;I)Z
+Landroid/icu/text/SimpleDateFormat;->FALLBACKPATTERN:Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->fastZeroPaddingNumber(Ljava/lang/StringBuffer;III)V
+Landroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/text/DisplayContext;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
+Landroid/icu/text/SimpleDateFormat;->formatData:Landroid/icu/text/DateFormatSymbols;
+Landroid/icu/text/SimpleDateFormat;->getDefaultCenturyStart()Ljava/util/Date;
+Landroid/icu/text/SimpleDateFormat;->getDefaultCenturyStartYear()I
+Landroid/icu/text/SimpleDateFormat;->getDefaultPattern()Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->getIndexFromChar(C)I
+Landroid/icu/text/SimpleDateFormat;->getInstance(Landroid/icu/util/Calendar$FormatConfiguration;)Landroid/icu/text/SimpleDateFormat;
+Landroid/icu/text/SimpleDateFormat;->getLevelFromChar(C)I
+Landroid/icu/text/SimpleDateFormat;->getLocale()Landroid/icu/util/ULocale;
+Landroid/icu/text/SimpleDateFormat;->getPatternItems()[Ljava/lang/Object;
+Landroid/icu/text/SimpleDateFormat;->hasMinute:Z
+Landroid/icu/text/SimpleDateFormat;->hasSecond:Z
+Landroid/icu/text/SimpleDateFormat;->HEBREW_CAL_CUR_MILLENIUM_END_YEAR:I
+Landroid/icu/text/SimpleDateFormat;->HEBREW_CAL_CUR_MILLENIUM_START_YEAR:I
+Landroid/icu/text/SimpleDateFormat;->initialize()V
+Landroid/icu/text/SimpleDateFormat;->initializeDefaultCenturyStart(J)V
+Landroid/icu/text/SimpleDateFormat;->initializeTimeZoneFormat(Z)V
+Landroid/icu/text/SimpleDateFormat;->initLocalZeroPaddingNumberFormat()V
+Landroid/icu/text/SimpleDateFormat;->initNumberFormatters(Landroid/icu/util/ULocale;)V
+Landroid/icu/text/SimpleDateFormat;->intervalFormatByAlgorithm(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+Landroid/icu/text/SimpleDateFormat;->isFieldUnitIgnored(I)Z
+Landroid/icu/text/SimpleDateFormat;->isFieldUnitIgnored(Ljava/lang/String;I)Z
+Landroid/icu/text/SimpleDateFormat;->isNumeric(CI)Z
+Landroid/icu/text/SimpleDateFormat;->ISOSpecialEra:I
+Landroid/icu/text/SimpleDateFormat;->isSyntaxChar(C)Z
+Landroid/icu/text/SimpleDateFormat;->locale:Landroid/icu/util/ULocale;
+Landroid/icu/text/SimpleDateFormat;->lowerLevel([Ljava/lang/Object;II)Z
+Landroid/icu/text/SimpleDateFormat;->matchDayPeriodString(Ljava/lang/String;I[Ljava/lang/String;ILandroid/icu/util/Output;)I
+Landroid/icu/text/SimpleDateFormat;->matchLiteral(Ljava/lang/String;I[Ljava/lang/Object;I[Z)I
+Landroid/icu/text/SimpleDateFormat;->matchString(Ljava/lang/String;II[Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/Calendar;)I
+Landroid/icu/text/SimpleDateFormat;->millisPerHour:I
+Landroid/icu/text/SimpleDateFormat;->numberFormatters:Ljava/util/HashMap;
+Landroid/icu/text/SimpleDateFormat;->NUMERIC_FORMAT_CHARS2:Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->NUMERIC_FORMAT_CHARS:Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->override:Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->overrideMap:Ljava/util/HashMap;
+Landroid/icu/text/SimpleDateFormat;->parseAmbiguousDatesAsAfter(Ljava/util/Date;)V
+Landroid/icu/text/SimpleDateFormat;->PARSED_PATTERN_CACHE:Landroid/icu/impl/ICUCache;
+Landroid/icu/text/SimpleDateFormat;->parseInt(Ljava/lang/String;ILjava/text/ParsePosition;ZLandroid/icu/text/NumberFormat;)Ljava/lang/Number;
+Landroid/icu/text/SimpleDateFormat;->parseInt(Ljava/lang/String;Ljava/text/ParsePosition;ZLandroid/icu/text/NumberFormat;)Ljava/lang/Number;
+Landroid/icu/text/SimpleDateFormat;->parsePattern()V
+Landroid/icu/text/SimpleDateFormat;->pattern:Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->patternItems:[Ljava/lang/Object;
+Landroid/icu/text/SimpleDateFormat;->PATTERN_CHAR_IS_SYNTAX:[Z
+Landroid/icu/text/SimpleDateFormat;->PATTERN_CHAR_TO_INDEX:[I
+Landroid/icu/text/SimpleDateFormat;->PATTERN_CHAR_TO_LEVEL:[I
+Landroid/icu/text/SimpleDateFormat;->PATTERN_INDEX_TO_CALENDAR_FIELD:[I
+Landroid/icu/text/SimpleDateFormat;->PATTERN_INDEX_TO_DATE_FORMAT_ATTRIBUTE:[Landroid/icu/text/DateFormat$Field;
+Landroid/icu/text/SimpleDateFormat;->PATTERN_INDEX_TO_DATE_FORMAT_FIELD:[I
+Landroid/icu/text/SimpleDateFormat;->processOverrideString(Landroid/icu/util/ULocale;Ljava/lang/String;)V
+Landroid/icu/text/SimpleDateFormat;->regionMatchesWithOptionalDot(Ljava/lang/String;ILjava/lang/String;I)I
+Landroid/icu/text/SimpleDateFormat;->safeAppend([Ljava/lang/String;ILjava/lang/StringBuffer;)V
+Landroid/icu/text/SimpleDateFormat;->safeAppendWithMonthPattern([Ljava/lang/String;ILjava/lang/StringBuffer;Ljava/lang/String;)V
+Landroid/icu/text/SimpleDateFormat;->serialVersionOnStream:I
+Landroid/icu/text/SimpleDateFormat;->subFormat(CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;Landroid/icu/util/Calendar;)Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;Landroid/icu/util/Calendar;)V
+Landroid/icu/text/SimpleDateFormat;->subParse(Ljava/lang/String;ICIZZ[ZLandroid/icu/util/Calendar;Landroid/icu/text/MessageFormat;Landroid/icu/util/Output;)I
+Landroid/icu/text/SimpleDateFormat;->subParse(Ljava/lang/String;ICIZZ[ZLandroid/icu/util/Calendar;Landroid/icu/text/MessageFormat;Landroid/icu/util/Output;Landroid/icu/util/Output;)I
+Landroid/icu/text/SimpleDateFormat;->SUPPRESS_NEGATIVE_PREFIX:Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->translatePattern(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/SimpleDateFormat;->tzFormat()Landroid/icu/text/TimeZoneFormat;
+Landroid/icu/text/SimpleDateFormat;->tzFormat:Landroid/icu/text/TimeZoneFormat;
+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;
+Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->fVec:Ljava/util/Vector;
+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
+Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fKeySet:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fKeyVec:Ljava/util/ArrayList;
+Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fLineNum:I
+Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fParseHexNum:Ljava/util/regex/Pattern;
+Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fParseLine:Ljava/util/regex/Pattern;
+Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fStringTable:Ljava/lang/StringBuffer;
+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
+Landroid/icu/text/SpoofChecker$Builder;->build()Landroid/icu/text/SpoofChecker;
+Landroid/icu/text/SpoofChecker$Builder;->fAllowedCharsSet:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/SpoofChecker$Builder;->fAllowedLocales:Ljava/util/Set;
+Landroid/icu/text/SpoofChecker$Builder;->fChecks:I
+Landroid/icu/text/SpoofChecker$Builder;->fRestrictionLevel:Landroid/icu/text/SpoofChecker$RestrictionLevel;
+Landroid/icu/text/SpoofChecker$Builder;->fSpoofData:Landroid/icu/text/SpoofChecker$SpoofData;
+Landroid/icu/text/SpoofChecker$Builder;->setAllowedChars(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/SpoofChecker$Builder;
+Landroid/icu/text/SpoofChecker$Builder;->setAllowedJavaLocales(Ljava/util/Set;)Landroid/icu/text/SpoofChecker$Builder;
+Landroid/icu/text/SpoofChecker$Builder;->setAllowedLocales(Ljava/util/Set;)Landroid/icu/text/SpoofChecker$Builder;
+Landroid/icu/text/SpoofChecker$Builder;->setChecks(I)Landroid/icu/text/SpoofChecker$Builder;
+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;
+Landroid/icu/text/SpoofChecker$RestrictionLevel;->MODERATELY_RESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
+Landroid/icu/text/SpoofChecker$RestrictionLevel;->SINGLE_SCRIPT_RESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
+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
+Landroid/icu/text/SpoofChecker$SpoofData;->codePointAt(I)I
+Landroid/icu/text/SpoofChecker$SpoofData;->confusableLookup(ILjava/lang/StringBuilder;)V
+Landroid/icu/text/SpoofChecker$SpoofData;->DATA_FORMAT:I
+Landroid/icu/text/SpoofChecker$SpoofData;->fCFUKeys:[I
+Landroid/icu/text/SpoofChecker$SpoofData;->fCFUStrings:Ljava/lang/String;
+Landroid/icu/text/SpoofChecker$SpoofData;->fCFUValues:[S
+Landroid/icu/text/SpoofChecker$SpoofData;->getDefault()Landroid/icu/text/SpoofChecker$SpoofData;
+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
+Landroid/icu/text/SpoofChecker;->areConfusable(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/icu/text/SpoofChecker;->ASCII:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/SpoofChecker;->CHAR_LIMIT:I
+Landroid/icu/text/SpoofChecker;->CONFUSABLE:I
+Landroid/icu/text/SpoofChecker;->failsChecks(Ljava/lang/String;)Z
+Landroid/icu/text/SpoofChecker;->failsChecks(Ljava/lang/String;Landroid/icu/text/SpoofChecker$CheckResult;)Z
+Landroid/icu/text/SpoofChecker;->fAllowedCharsSet:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/SpoofChecker;->fAllowedLocales:Ljava/util/Set;
+Landroid/icu/text/SpoofChecker;->fChecks:I
+Landroid/icu/text/SpoofChecker;->fRestrictionLevel:Landroid/icu/text/SpoofChecker$RestrictionLevel;
+Landroid/icu/text/SpoofChecker;->fSpoofData:Landroid/icu/text/SpoofChecker$SpoofData;
+Landroid/icu/text/SpoofChecker;->getAllowedChars()Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/SpoofChecker;->getAllowedJavaLocales()Ljava/util/Set;
+Landroid/icu/text/SpoofChecker;->getAllowedLocales()Ljava/util/Set;
+Landroid/icu/text/SpoofChecker;->getAugmentedScriptSet(ILandroid/icu/text/SpoofChecker$ScriptSet;)V
+Landroid/icu/text/SpoofChecker;->getChecks()I
+Landroid/icu/text/SpoofChecker;->getNumerics(Ljava/lang/String;Landroid/icu/text/UnicodeSet;)V
+Landroid/icu/text/SpoofChecker;->getResolvedScriptSet(Ljava/lang/CharSequence;Landroid/icu/text/SpoofChecker$ScriptSet;)V
+Landroid/icu/text/SpoofChecker;->getResolvedScriptSetWithout(Ljava/lang/CharSequence;ILandroid/icu/text/SpoofChecker$ScriptSet;)V
+Landroid/icu/text/SpoofChecker;->getRestrictionLevel()Landroid/icu/text/SpoofChecker$RestrictionLevel;
+Landroid/icu/text/SpoofChecker;->getRestrictionLevel(Ljava/lang/String;)Landroid/icu/text/SpoofChecker$RestrictionLevel;
+Landroid/icu/text/SpoofChecker;->getSkeleton(ILjava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/SpoofChecker;->getSkeleton(Ljava/lang/CharSequence;)Ljava/lang/String;
+Landroid/icu/text/SpoofChecker;->INCLUSION:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/SpoofChecker;->INVISIBLE:I
+Landroid/icu/text/SpoofChecker;->MIXED_NUMBERS:I
+Landroid/icu/text/SpoofChecker;->MIXED_SCRIPT_CONFUSABLE:I
+Landroid/icu/text/SpoofChecker;->nfdNormalizer:Landroid/icu/text/Normalizer2;
+Landroid/icu/text/SpoofChecker;->RECOMMENDED:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/SpoofChecker;->RESTRICTION_LEVEL:I
+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
+Landroid/icu/text/StringCharacterIterator;->begin:I
+Landroid/icu/text/StringCharacterIterator;->end:I
+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
+Landroid/icu/text/StringMatcher;->data:Landroid/icu/text/RuleBasedTransliterator$Data;
+Landroid/icu/text/StringMatcher;->matchLimit:I
+Landroid/icu/text/StringMatcher;->matchStart:I
+Landroid/icu/text/StringMatcher;->pattern:Ljava/lang/String;
+Landroid/icu/text/StringMatcher;->replace(Landroid/icu/text/Replaceable;II[I)I
+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
+Landroid/icu/text/StringPrep;->bdp:Landroid/icu/impl/UBiDiProps;
+Landroid/icu/text/StringPrep;->CACHE:[Ljava/lang/ref/WeakReference;
+Landroid/icu/text/StringPrep;->checkBiDi:Z
+Landroid/icu/text/StringPrep;->CHECK_BIDI_ON:I
+Landroid/icu/text/StringPrep;->DEFAULT:I
+Landroid/icu/text/StringPrep;->DELETE:I
+Landroid/icu/text/StringPrep;->doNFKC:Z
+Landroid/icu/text/StringPrep;->FOUR_UCHARS_MAPPING_INDEX_START:I
+Landroid/icu/text/StringPrep;->getCodePointValue(I)C
+Landroid/icu/text/StringPrep;->getInstance(I)Landroid/icu/text/StringPrep;
+Landroid/icu/text/StringPrep;->getValues(CLandroid/icu/text/StringPrep$Values;)V
+Landroid/icu/text/StringPrep;->getVersionInfo(I)Landroid/icu/util/VersionInfo;
+Landroid/icu/text/StringPrep;->getVersionInfo([B)Landroid/icu/util/VersionInfo;
+Landroid/icu/text/StringPrep;->indexes:[I
+Landroid/icu/text/StringPrep;->INDEX_MAPPING_DATA_SIZE:I
+Landroid/icu/text/StringPrep;->INDEX_TOP:I
+Landroid/icu/text/StringPrep;->map(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/StringPrep;->MAP:I
+Landroid/icu/text/StringPrep;->mappingData:[C
+Landroid/icu/text/StringPrep;->MAX_INDEX_VALUE:I
+Landroid/icu/text/StringPrep;->MAX_PROFILE:I
+Landroid/icu/text/StringPrep;->NORMALIZATION_ON:I
+Landroid/icu/text/StringPrep;->normalize(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
+Landroid/icu/text/StringPrep;->normCorrVer:Landroid/icu/util/VersionInfo;
+Landroid/icu/text/StringPrep;->NORM_CORRECTNS_LAST_UNI_VERSION:I
+Landroid/icu/text/StringPrep;->ONE_UCHAR_MAPPING_INDEX_START:I
+Landroid/icu/text/StringPrep;->OPTIONS:I
+Landroid/icu/text/StringPrep;->prepare(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/StringPrep;->prepare(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/icu/text/StringPrep;->PROFILE_NAMES:[Ljava/lang/String;
+Landroid/icu/text/StringPrep;->PROHIBITED:I
+Landroid/icu/text/StringPrep;->RFC3491_NAMEPREP:I
+Landroid/icu/text/StringPrep;->RFC3530_NFS4_CIS_PREP:I
+Landroid/icu/text/StringPrep;->RFC3530_NFS4_CS_PREP:I
+Landroid/icu/text/StringPrep;->RFC3530_NFS4_CS_PREP_CI:I
+Landroid/icu/text/StringPrep;->RFC3530_NFS4_MIXED_PREP_PREFIX:I
+Landroid/icu/text/StringPrep;->RFC3530_NFS4_MIXED_PREP_SUFFIX:I
+Landroid/icu/text/StringPrep;->RFC3722_ISCSI:I
+Landroid/icu/text/StringPrep;->RFC3920_NODEPREP:I
+Landroid/icu/text/StringPrep;->RFC3920_RESOURCEPREP:I
+Landroid/icu/text/StringPrep;->RFC4011_MIB:I
+Landroid/icu/text/StringPrep;->RFC4013_SASLPREP:I
+Landroid/icu/text/StringPrep;->RFC4505_TRACE:I
+Landroid/icu/text/StringPrep;->RFC4518_LDAP:I
+Landroid/icu/text/StringPrep;->RFC4518_LDAP_CI:I
+Landroid/icu/text/StringPrep;->sprepTrie:Landroid/icu/impl/CharTrie;
+Landroid/icu/text/StringPrep;->sprepUniVer:Landroid/icu/util/VersionInfo;
+Landroid/icu/text/StringPrep;->THREE_UCHARS_MAPPING_INDEX_START:I
+Landroid/icu/text/StringPrep;->TWO_UCHARS_MAPPING_INDEX_START:I
+Landroid/icu/text/StringPrep;->TYPE_LIMIT:I
+Landroid/icu/text/StringPrep;->TYPE_THRESHOLD:I
+Landroid/icu/text/StringPrep;->UNASSIGNED:I
+Landroid/icu/text/StringPrepParseException;->error:I
+Landroid/icu/text/StringPrepParseException;->line:I
+Landroid/icu/text/StringPrepParseException;->PARSE_CONTEXT_LEN:I
+Landroid/icu/text/StringPrepParseException;->postContext:Ljava/lang/StringBuffer;
+Landroid/icu/text/StringPrepParseException;->preContext:Ljava/lang/StringBuffer;
+Landroid/icu/text/StringPrepParseException;->setContext(Ljava/lang/String;I)V
+Landroid/icu/text/StringPrepParseException;->setPostContext(Ljava/lang/String;I)V
+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;
+Landroid/icu/text/StringSearch$CEBuffer;->CEBUFFER_EXTRA:I
+Landroid/icu/text/StringSearch$CEBuffer;->firstIx_:I
+Landroid/icu/text/StringSearch$CEBuffer;->get(I)Landroid/icu/text/StringSearch$CEI;
+Landroid/icu/text/StringSearch$CEBuffer;->getPrevious(I)Landroid/icu/text/StringSearch$CEI;
+Landroid/icu/text/StringSearch$CEBuffer;->limitIx_:I
+Landroid/icu/text/StringSearch$CEBuffer;->MAX_TARGET_IGNORABLES_PER_PAT_JAMO_L:I
+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;
+Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->empty()Z
+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;
+Landroid/icu/text/StringSearch$CollationPCE;->CONTINUATION_MARKER:I
+Landroid/icu/text/StringSearch$CollationPCE;->DEFAULT_BUFFER_SIZE:I
+Landroid/icu/text/StringSearch$CollationPCE;->init(Landroid/icu/text/CollationElementIterator;)V
+Landroid/icu/text/StringSearch$CollationPCE;->init(Landroid/icu/text/RuleBasedCollator;)V
+Landroid/icu/text/StringSearch$CollationPCE;->isContinuation(I)Z
+Landroid/icu/text/StringSearch$CollationPCE;->isShifted_:Z
+Landroid/icu/text/StringSearch$CollationPCE;->nextProcessed(Landroid/icu/text/StringSearch$CollationPCE$Range;)J
+Landroid/icu/text/StringSearch$CollationPCE;->pceBuffer_:Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;
+Landroid/icu/text/StringSearch$CollationPCE;->previousProcessed(Landroid/icu/text/StringSearch$CollationPCE$Range;)J
+Landroid/icu/text/StringSearch$CollationPCE;->PRIMARYORDERMASK:I
+Landroid/icu/text/StringSearch$CollationPCE;->processCE(I)J
+Landroid/icu/text/StringSearch$CollationPCE;->PROCESSED_NULLORDER:J
+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
+Landroid/icu/text/StringSearch$Pattern;->PCELength_:I
+Landroid/icu/text/StringSearch$Pattern;->PCE_:[J
+Landroid/icu/text/StringSearch$Pattern;->text_:Ljava/lang/String;
+Landroid/icu/text/StringSearch;->addToIntArray([IIII)[I
+Landroid/icu/text/StringSearch;->addToLongArray([JIIJI)[J
+Landroid/icu/text/StringSearch;->ceMask_:I
+Landroid/icu/text/StringSearch;->CE_LEVEL2_BASE:I
+Landroid/icu/text/StringSearch;->CE_LEVEL3_BASE:I
+Landroid/icu/text/StringSearch;->CE_MATCH:I
+Landroid/icu/text/StringSearch;->CE_NO_MATCH:I
+Landroid/icu/text/StringSearch;->CE_SKIP_PATN:I
+Landroid/icu/text/StringSearch;->CE_SKIP_TARG:I
+Landroid/icu/text/StringSearch;->checkIdentical(II)Z
+Landroid/icu/text/StringSearch;->codePointAt(Ljava/text/CharacterIterator;I)I
+Landroid/icu/text/StringSearch;->codePointBefore(Ljava/text/CharacterIterator;I)I
+Landroid/icu/text/StringSearch;->collator_:Landroid/icu/text/RuleBasedCollator;
+Landroid/icu/text/StringSearch;->compareCE64s(JJLandroid/icu/text/SearchIterator$ElementComparisonType;)I
+Landroid/icu/text/StringSearch;->getCE(I)I
+Landroid/icu/text/StringSearch;->getMask(I)I
+Landroid/icu/text/StringSearch;->getString(Ljava/text/CharacterIterator;II)Ljava/lang/String;
+Landroid/icu/text/StringSearch;->handleNextCanonical()Z
+Landroid/icu/text/StringSearch;->handleNextCommonImpl()Z
+Landroid/icu/text/StringSearch;->handleNextExact()Z
+Landroid/icu/text/StringSearch;->handlePreviousCanonical()Z
+Landroid/icu/text/StringSearch;->handlePreviousCommonImpl()Z
+Landroid/icu/text/StringSearch;->handlePreviousExact()Z
+Landroid/icu/text/StringSearch;->initialize()V
+Landroid/icu/text/StringSearch;->initializePattern()I
+Landroid/icu/text/StringSearch;->initializePatternCETable()I
+Landroid/icu/text/StringSearch;->initializePatternPCETable()I
+Landroid/icu/text/StringSearch;->INITIAL_ARRAY_SIZE_:I
+Landroid/icu/text/StringSearch;->initTextProcessedIter()Z
+Landroid/icu/text/StringSearch;->isBreakBoundary(I)Z
+Landroid/icu/text/StringSearch;->isOutOfBounds(III)Z
+Landroid/icu/text/StringSearch;->nextBoundaryAfter(I)I
+Landroid/icu/text/StringSearch;->nfd_:Landroid/icu/text/Normalizer2;
+Landroid/icu/text/StringSearch;->pattern_:Landroid/icu/text/StringSearch$Pattern;
+Landroid/icu/text/StringSearch;->PRIMARYORDERMASK:I
+Landroid/icu/text/StringSearch;->search(ILandroid/icu/text/StringSearch$Match;)Z
+Landroid/icu/text/StringSearch;->searchBackwards(ILandroid/icu/text/StringSearch$Match;)Z
+Landroid/icu/text/StringSearch;->SECONDARYORDERMASK:I
+Landroid/icu/text/StringSearch;->setMatchNotFound()V
+Landroid/icu/text/StringSearch;->strength_:I
+Landroid/icu/text/StringSearch;->TERTIARYORDERMASK:I
+Landroid/icu/text/StringSearch;->textIter_:Landroid/icu/text/CollationElementIterator;
+Landroid/icu/text/StringSearch;->textProcessedIter_:Landroid/icu/text/StringSearch$CollationPCE;
+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
+Landroid/icu/text/TimeUnitFormat;-><init>(Landroid/icu/util/ULocale;ILandroid/icu/text/NumberFormat;)V
+Landroid/icu/text/TimeUnitFormat;-><init>(Ljava/util/Locale;)V
+Landroid/icu/text/TimeUnitFormat;-><init>(Ljava/util/Locale;I)V
+Landroid/icu/text/TimeUnitFormat;->ABBREVIATED_NAME:I
+Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_DAY:Ljava/lang/String;
+Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_HOUR:Ljava/lang/String;
+Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_MINUTE:Ljava/lang/String;
+Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_MONTH:Ljava/lang/String;
+Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_SECOND:Ljava/lang/String;
+Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_WEEK:Ljava/lang/String;
+Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_YEAR:Ljava/lang/String;
+Landroid/icu/text/TimeUnitFormat;->format:Landroid/icu/text/NumberFormat;
+Landroid/icu/text/TimeUnitFormat;->FULL_NAME:I
+Landroid/icu/text/TimeUnitFormat;->isReady:Z
+Landroid/icu/text/TimeUnitFormat;->locale:Landroid/icu/util/ULocale;
+Landroid/icu/text/TimeUnitFormat;->mf:Landroid/icu/text/MeasureFormat;
+Landroid/icu/text/TimeUnitFormat;->pluralRules:Landroid/icu/text/PluralRules;
+Landroid/icu/text/TimeUnitFormat;->searchInTree(Ljava/lang/String;ILandroid/icu/util/TimeUnit;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
+Landroid/icu/text/TimeUnitFormat;->setLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeUnitFormat;
+Landroid/icu/text/TimeUnitFormat;->setLocale(Ljava/util/Locale;)Landroid/icu/text/TimeUnitFormat;
+Landroid/icu/text/TimeUnitFormat;->setNumberFormat(Landroid/icu/text/NumberFormat;)Landroid/icu/text/TimeUnitFormat;
+Landroid/icu/text/TimeUnitFormat;->setup()V
+Landroid/icu/text/TimeUnitFormat;->setup(Ljava/lang/String;Ljava/util/Map;ILjava/util/Set;)V
+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;
+Landroid/icu/text/TimeZoneFormat;->ALL_SIMPLE_NAME_TYPES:Ljava/util/EnumSet;
+Landroid/icu/text/TimeZoneFormat;->ALT_GMT_STRINGS:[Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->appendOffsetDigits(Ljava/lang/StringBuilder;II)V
+Landroid/icu/text/TimeZoneFormat;->ASCII_DIGITS:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->checkAbuttingHoursAndMinutes()V
+Landroid/icu/text/TimeZoneFormat;->DEFAULT_GMT_DIGITS:[Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->DEFAULT_GMT_OFFSET_SEP:C
+Landroid/icu/text/TimeZoneFormat;->DEFAULT_GMT_PATTERN:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->DEFAULT_GMT_ZERO:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->expandOffsetPattern(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->formatExemplarLocation(Landroid/icu/util/TimeZone;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->formatOffsetISO8601(IZZZZ)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->formatOffsetLocalizedGMT(IZ)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->formatSpecific(Landroid/icu/util/TimeZone;Landroid/icu/text/TimeZoneNames$NameType;Landroid/icu/text/TimeZoneNames$NameType;JLandroid/icu/util/Output;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->getTargetRegion()Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->getTimeType(Landroid/icu/text/TimeZoneNames$NameType;)Landroid/icu/text/TimeZoneFormat$TimeType;
+Landroid/icu/text/TimeZoneFormat;->getTimeZoneForOffset(I)Landroid/icu/util/TimeZone;
+Landroid/icu/text/TimeZoneFormat;->getTimeZoneGenericNames()Landroid/icu/impl/TimeZoneGenericNames;
+Landroid/icu/text/TimeZoneFormat;->getTimeZoneID(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->getTZDBTimeZoneNames()Landroid/icu/text/TimeZoneNames;
+Landroid/icu/text/TimeZoneFormat;->initGMTOffsetPatterns([Ljava/lang/String;)V
+Landroid/icu/text/TimeZoneFormat;->initGMTPattern(Ljava/lang/String;)V
+Landroid/icu/text/TimeZoneFormat;->ISO8601_UTC:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->ISO_LOCAL_STYLE_FLAG:I
+Landroid/icu/text/TimeZoneFormat;->ISO_Z_STYLE_FLAG:I
+Landroid/icu/text/TimeZoneFormat;->MAX_OFFSET:I
+Landroid/icu/text/TimeZoneFormat;->MAX_OFFSET_HOUR:I
+Landroid/icu/text/TimeZoneFormat;->MAX_OFFSET_MINUTE:I
+Landroid/icu/text/TimeZoneFormat;->MAX_OFFSET_SECOND:I
+Landroid/icu/text/TimeZoneFormat;->MILLIS_PER_HOUR:I
+Landroid/icu/text/TimeZoneFormat;->MILLIS_PER_MINUTE:I
+Landroid/icu/text/TimeZoneFormat;->MILLIS_PER_SECOND:I
+Landroid/icu/text/TimeZoneFormat;->parseAbuttingAsciiOffsetFields(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/TimeZoneFormat$OffsetFields;Landroid/icu/text/TimeZoneFormat$OffsetFields;Z)I
+Landroid/icu/text/TimeZoneFormat;->parseAbuttingOffsetFields(Ljava/lang/String;I[I)I
+Landroid/icu/text/TimeZoneFormat;->parseAsciiOffsetFields(Ljava/lang/String;Ljava/text/ParsePosition;CLandroid/icu/text/TimeZoneFormat$OffsetFields;Landroid/icu/text/TimeZoneFormat$OffsetFields;)I
+Landroid/icu/text/TimeZoneFormat;->parseDefaultOffsetFields(Ljava/lang/String;IC[I)I
+Landroid/icu/text/TimeZoneFormat;->parseExemplarLocation(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->parseOffsetDefaultLocalizedGMT(Ljava/lang/String;I[I)I
+Landroid/icu/text/TimeZoneFormat;->parseOffsetFields(Ljava/lang/String;IZ[I)I
+Landroid/icu/text/TimeZoneFormat;->parseOffsetFieldsWithPattern(Ljava/lang/String;I[Ljava/lang/Object;Z[I)I
+Landroid/icu/text/TimeZoneFormat;->parseOffsetFieldWithLocalizedDigits(Ljava/lang/String;IIIII[I)I
+Landroid/icu/text/TimeZoneFormat;->parseOffsetISO8601(Ljava/lang/String;Ljava/text/ParsePosition;ZLandroid/icu/util/Output;)I
+Landroid/icu/text/TimeZoneFormat;->parseOffsetLocalizedGMT(Ljava/lang/String;Ljava/text/ParsePosition;ZLandroid/icu/util/Output;)I
+Landroid/icu/text/TimeZoneFormat;->parseOffsetLocalizedGMTPattern(Ljava/lang/String;IZ[I)I
+Landroid/icu/text/TimeZoneFormat;->parseOffsetPattern(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
+Landroid/icu/text/TimeZoneFormat;->parseShortZoneID(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->parseSingleLocalizedDigit(Ljava/lang/String;I[I)I
+Landroid/icu/text/TimeZoneFormat;->parseZoneID(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->PARSE_GMT_OFFSET_TYPES:[Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;
+Landroid/icu/text/TimeZoneFormat;->SHORT_ZONE_ID_TRIE:Landroid/icu/impl/TextTrieMap;
+Landroid/icu/text/TimeZoneFormat;->toCodePoints(Ljava/lang/String;)[Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->truncateOffsetPattern(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->TZID_GMT:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->UNKNOWN_LOCATION:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->UNKNOWN_OFFSET:I
+Landroid/icu/text/TimeZoneFormat;->UNKNOWN_SHORT_ZONE_ID:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->UNKNOWN_ZONE_ID:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->unquote(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->ZONE_ID_TRIE:Landroid/icu/impl/TextTrieMap;
+Landroid/icu/text/TimeZoneFormat;->_abuttingOffsetHoursAndMinutes:Z
+Landroid/icu/text/TimeZoneFormat;->_frozen:Z
+Landroid/icu/text/TimeZoneFormat;->_gmtOffsetDigits:[Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->_gmtOffsetPatternItems:[[Ljava/lang/Object;
+Landroid/icu/text/TimeZoneFormat;->_gmtOffsetPatterns:[Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->_gmtPattern:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->_gmtPatternPrefix:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->_gmtPatternSuffix:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->_gmtZeroFormat:Ljava/lang/String;
+Landroid/icu/text/TimeZoneFormat;->_gnames:Landroid/icu/impl/TimeZoneGenericNames;
+Landroid/icu/text/TimeZoneFormat;->_locale:Landroid/icu/util/ULocale;
+Landroid/icu/text/TimeZoneFormat;->_parseAllStyles:Z
+Landroid/icu/text/TimeZoneFormat;->_parseTZDBNames:Z
+Landroid/icu/text/TimeZoneFormat;->_region:Ljava/lang/String;
+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;
+Landroid/icu/text/TimeZoneNames$MatchInfo;->nameType()Landroid/icu/text/TimeZoneNames$NameType;
+Landroid/icu/text/TimeZoneNames$MatchInfo;->tzID()Ljava/lang/String;
+Landroid/icu/text/TimeZoneNames$MatchInfo;->_matchLength:I
+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;
+Landroid/icu/text/TimeZoneNames;->find(Ljava/lang/CharSequence;ILjava/util/EnumSet;)Ljava/util/Collection;
+Landroid/icu/text/TimeZoneNames;->getDisplayNames(Ljava/lang/String;[Landroid/icu/text/TimeZoneNames$NameType;J[Ljava/lang/String;I)V
+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
+Landroid/icu/text/TransliterationRule;->ANCHOR_START:I
+Landroid/icu/text/TransliterationRule;->anteContext:Landroid/icu/text/StringMatcher;
+Landroid/icu/text/TransliterationRule;->anteContextLength:I
+Landroid/icu/text/TransliterationRule;->data:Landroid/icu/text/RuleBasedTransliterator$Data;
+Landroid/icu/text/TransliterationRule;->flags:B
+Landroid/icu/text/TransliterationRule;->getAnteContextLength()I
+Landroid/icu/text/TransliterationRule;->getIndexValue()I
+Landroid/icu/text/TransliterationRule;->key:Landroid/icu/text/StringMatcher;
+Landroid/icu/text/TransliterationRule;->keyLength:I
+Landroid/icu/text/TransliterationRule;->masks(Landroid/icu/text/TransliterationRule;)Z
+Landroid/icu/text/TransliterationRule;->matchAndReplace(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)I
+Landroid/icu/text/TransliterationRule;->matchesIndexValue(I)Z
+Landroid/icu/text/TransliterationRule;->output:Landroid/icu/text/UnicodeReplacer;
+Landroid/icu/text/TransliterationRule;->pattern:Ljava/lang/String;
+Landroid/icu/text/TransliterationRule;->posAfter(Landroid/icu/text/Replaceable;I)I
+Landroid/icu/text/TransliterationRule;->posBefore(Landroid/icu/text/Replaceable;I)I
+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
+Landroid/icu/text/TransliterationRuleSet;->freeze()V
+Landroid/icu/text/TransliterationRuleSet;->getMaximumContextLength()I
+Landroid/icu/text/TransliterationRuleSet;->index:[I
+Landroid/icu/text/TransliterationRuleSet;->maxContextLength:I
+Landroid/icu/text/TransliterationRuleSet;->rules:[Landroid/icu/text/TransliterationRule;
+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
+Landroid/icu/text/Transliterator$Position;-><init>(Landroid/icu/text/Transliterator$Position;)V
+Landroid/icu/text/Transliterator$Position;->contextLimit:I
+Landroid/icu/text/Transliterator$Position;->contextStart:I
+Landroid/icu/text/Transliterator$Position;->limit:I
+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;
+Landroid/icu/text/Transliterator;->DEBUG:Z
+Landroid/icu/text/Transliterator;->displayNameCache:Ljava/util/Map;
+Landroid/icu/text/Transliterator;->filter:Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/Transliterator;->filteredTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)V
+Landroid/icu/text/Transliterator;->filteredTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;ZZ)V
+Landroid/icu/text/Transliterator;->finishTransliteration(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;)V
+Landroid/icu/text/Transliterator;->FORWARD:I
+Landroid/icu/text/Transliterator;->getAvailableIDs()Ljava/util/Enumeration;
+Landroid/icu/text/Transliterator;->getAvailableSources()Ljava/util/Enumeration;
+Landroid/icu/text/Transliterator;->getAvailableTargets(Ljava/lang/String;)Ljava/util/Enumeration;
+Landroid/icu/text/Transliterator;->getAvailableVariants(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Enumeration;
+Landroid/icu/text/Transliterator;->getBasicInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/Transliterator;
+Landroid/icu/text/Transliterator;->getDisplayName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/Transliterator;->getDisplayName(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/text/Transliterator;->getDisplayName(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
+Landroid/icu/text/Transliterator;->getElements()[Landroid/icu/text/Transliterator;
+Landroid/icu/text/Transliterator;->getFilter()Landroid/icu/text/UnicodeFilter;
+Landroid/icu/text/Transliterator;->getFilterAsUnicodeSet(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/Transliterator;->getID()Ljava/lang/String;
+Landroid/icu/text/Transliterator;->getInverse()Landroid/icu/text/Transliterator;
+Landroid/icu/text/Transliterator;->getMaximumContextLength()I
+Landroid/icu/text/Transliterator;->getSourceSet()Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/Transliterator;->getTargetSet()Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/Transliterator;->handleGetSourceSet()Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/Transliterator;->handleTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)V
+Landroid/icu/text/Transliterator;->ID:Ljava/lang/String;
+Landroid/icu/text/Transliterator;->ID_DELIM:C
+Landroid/icu/text/Transliterator;->ID_SEP:C
+Landroid/icu/text/Transliterator;->maximumContextLength:I
+Landroid/icu/text/Transliterator;->RB_DISPLAY_NAME_PATTERN:Ljava/lang/String;
+Landroid/icu/text/Transliterator;->RB_DISPLAY_NAME_PREFIX:Ljava/lang/String;
+Landroid/icu/text/Transliterator;->RB_RULE_BASED_IDS:Ljava/lang/String;
+Landroid/icu/text/Transliterator;->RB_SCRIPT_DISPLAY_NAME_PREFIX:Ljava/lang/String;
+Landroid/icu/text/Transliterator;->registerAlias(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/icu/text/Transliterator;->registerAny()V
+Landroid/icu/text/Transliterator;->registerClass(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;)V
+Landroid/icu/text/Transliterator;->registerFactory(Ljava/lang/String;Landroid/icu/text/Transliterator$Factory;)V
+Landroid/icu/text/Transliterator;->registerInstance(Landroid/icu/text/Transliterator;)V
+Landroid/icu/text/Transliterator;->registerInstance(Landroid/icu/text/Transliterator;Z)V
+Landroid/icu/text/Transliterator;->registerSpecialInverse(Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/icu/text/Transliterator;->registry:Landroid/icu/text/TransliteratorRegistry;
+Landroid/icu/text/Transliterator;->REVERSE:I
+Landroid/icu/text/Transliterator;->ROOT:Ljava/lang/String;
+Landroid/icu/text/Transliterator;->setFilter(Landroid/icu/text/UnicodeFilter;)V
+Landroid/icu/text/Transliterator;->setID(Ljava/lang/String;)V
+Landroid/icu/text/Transliterator;->setMaximumContextLength(I)V
+Landroid/icu/text/Transliterator;->toRules(Z)Ljava/lang/String;
+Landroid/icu/text/Transliterator;->transform(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;)V
+Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;II)I
+Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;)V
+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;
+Landroid/icu/text/TransliteratorRegistry$Spec;->getTop()Ljava/lang/String;
+Landroid/icu/text/TransliteratorRegistry$Spec;->hasFallback()Z
+Landroid/icu/text/TransliteratorRegistry$Spec;->isLocale()Z
+Landroid/icu/text/TransliteratorRegistry$Spec;->isNextLocale:Z
+Landroid/icu/text/TransliteratorRegistry$Spec;->isSpecLocale:Z
+Landroid/icu/text/TransliteratorRegistry$Spec;->next()Ljava/lang/String;
+Landroid/icu/text/TransliteratorRegistry$Spec;->nextSpec:Ljava/lang/String;
+Landroid/icu/text/TransliteratorRegistry$Spec;->res:Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/text/TransliteratorRegistry$Spec;->reset()V
+Landroid/icu/text/TransliteratorRegistry$Spec;->scriptName:Ljava/lang/String;
+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;
+Landroid/icu/text/TransliteratorRegistry;->DEBUG:Z
+Landroid/icu/text/TransliteratorRegistry;->find(Ljava/lang/String;)[Ljava/lang/Object;
+Landroid/icu/text/TransliteratorRegistry;->find(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
+Landroid/icu/text/TransliteratorRegistry;->findInBundle(Landroid/icu/text/TransliteratorRegistry$Spec;Landroid/icu/text/TransliteratorRegistry$Spec;Ljava/lang/String;I)[Ljava/lang/Object;
+Landroid/icu/text/TransliteratorRegistry;->findInDynamicStore(Landroid/icu/text/TransliteratorRegistry$Spec;Landroid/icu/text/TransliteratorRegistry$Spec;Ljava/lang/String;)[Ljava/lang/Object;
+Landroid/icu/text/TransliteratorRegistry;->findInStaticStore(Landroid/icu/text/TransliteratorRegistry$Spec;Landroid/icu/text/TransliteratorRegistry$Spec;Ljava/lang/String;)[Ljava/lang/Object;
+Landroid/icu/text/TransliteratorRegistry;->get(Ljava/lang/String;Ljava/lang/StringBuffer;)Landroid/icu/text/Transliterator;
+Landroid/icu/text/TransliteratorRegistry;->getAvailableIDs()Ljava/util/Enumeration;
+Landroid/icu/text/TransliteratorRegistry;->getAvailableSources()Ljava/util/Enumeration;
+Landroid/icu/text/TransliteratorRegistry;->getAvailableTargets(Ljava/lang/String;)Ljava/util/Enumeration;
+Landroid/icu/text/TransliteratorRegistry;->getAvailableVariants(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Enumeration;
+Landroid/icu/text/TransliteratorRegistry;->instantiateEntry(Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/StringBuffer;)Landroid/icu/text/Transliterator;
+Landroid/icu/text/TransliteratorRegistry;->LOCALE_SEP:C
+Landroid/icu/text/TransliteratorRegistry;->NO_VARIANT:Ljava/lang/String;
+Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Landroid/icu/text/Transliterator$Factory;Z)V
+Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Landroid/icu/text/Transliterator;Z)V
+Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Ljava/lang/Class;Z)V
+Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Ljava/lang/String;IZ)V
+Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/icu/text/TransliteratorRegistry;->registerEntry(Ljava/lang/String;Ljava/lang/Object;Z)V
+Landroid/icu/text/TransliteratorRegistry;->registerEntry(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V
+Landroid/icu/text/TransliteratorRegistry;->registerEntry(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V
+Landroid/icu/text/TransliteratorRegistry;->registerSTV(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/icu/text/TransliteratorRegistry;->registry:Ljava/util/Map;
+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
+Landroid/icu/text/UFieldPosition;-><init>(Ljava/text/Format$Field;I)V
+Landroid/icu/text/UFieldPosition;->countVisibleFractionDigits:I
+Landroid/icu/text/UFieldPosition;->fractionDigits:J
+Landroid/icu/text/UFieldPosition;->getCountVisibleFractionDigits()I
+Landroid/icu/text/UFieldPosition;->getFractionDigits()J
+Landroid/icu/text/UFieldPosition;->setFractionDigits(IJ)V
+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
+Landroid/icu/text/UnicodeCompressor;->compress([CII[I[BII)I
+Landroid/icu/text/UnicodeCompressor;->fCurrentWindow:I
+Landroid/icu/text/UnicodeCompressor;->findDynamicWindow(I)I
+Landroid/icu/text/UnicodeCompressor;->fIndexCount:[I
+Landroid/icu/text/UnicodeCompressor;->findStaticWindow(I)I
+Landroid/icu/text/UnicodeCompressor;->fMode:I
+Landroid/icu/text/UnicodeCompressor;->fOffsets:[I
+Landroid/icu/text/UnicodeCompressor;->fTimeStamp:I
+Landroid/icu/text/UnicodeCompressor;->fTimeStamps:[I
+Landroid/icu/text/UnicodeCompressor;->getLRDefinedWindow()I
+Landroid/icu/text/UnicodeCompressor;->inDynamicWindow(II)Z
+Landroid/icu/text/UnicodeCompressor;->inStaticWindow(II)Z
+Landroid/icu/text/UnicodeCompressor;->isCompressible(I)Z
+Landroid/icu/text/UnicodeCompressor;->makeIndex(I)I
+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;
+Landroid/icu/text/UnicodeDecompressor;->decompress([BII)[C
+Landroid/icu/text/UnicodeDecompressor;->decompress([BII[I[CII)I
+Landroid/icu/text/UnicodeDecompressor;->fBuffer:[B
+Landroid/icu/text/UnicodeDecompressor;->fBufferLength:I
+Landroid/icu/text/UnicodeDecompressor;->fCurrentWindow:I
+Landroid/icu/text/UnicodeDecompressor;->fMode:I
+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
+Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->item:I
+Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->len:I
+Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->limit:I
+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;
+Landroid/icu/text/UnicodeSet;->addAllTo(Ljava/lang/Iterable;Ljava/util/Collection;)Ljava/util/Collection;
+Landroid/icu/text/UnicodeSet;->addAllTo(Ljava/lang/Iterable;[Ljava/lang/Object;)[Ljava/lang/Object;
+Landroid/icu/text/UnicodeSet;->addAllTo([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->addBridges(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->addCaseMapping(Landroid/icu/text/UnicodeSet;ILjava/lang/StringBuilder;)V
+Landroid/icu/text/UnicodeSet;->add_unchecked(I)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->add_unchecked(II)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->ANY_ID:Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->append(Ljava/lang/Appendable;Ljava/lang/CharSequence;)V
+Landroid/icu/text/UnicodeSet;->appendCodePoint(Ljava/lang/Appendable;I)V
+Landroid/icu/text/UnicodeSet;->appendNewPattern(Ljava/lang/Appendable;ZZ)Ljava/lang/Appendable;
+Landroid/icu/text/UnicodeSet;->applyFilter(Landroid/icu/text/UnicodeSet$Filter;I)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->applyPattern(Landroid/icu/impl/RuleCharacterIterator;Landroid/icu/text/SymbolTable;Ljava/lang/Appendable;I)V
+Landroid/icu/text/UnicodeSet;->applyPattern(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/SymbolTable;I)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->applyPropertyPattern(Landroid/icu/impl/RuleCharacterIterator;Ljava/lang/Appendable;Landroid/icu/text/SymbolTable;)V
+Landroid/icu/text/UnicodeSet;->applyPropertyPattern(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/SymbolTable;)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->ASCII_ID:Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->ASSIGNED:Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->bmpSet:Landroid/icu/impl/BMPSet;
+Landroid/icu/text/UnicodeSet;->buffer:[I
+Landroid/icu/text/UnicodeSet;->checkFrozen()V
+Landroid/icu/text/UnicodeSet;->compare(ILjava/lang/CharSequence;)I
+Landroid/icu/text/UnicodeSet;->compare(Ljava/lang/CharSequence;I)I
+Landroid/icu/text/UnicodeSet;->compare(Ljava/lang/Iterable;Ljava/lang/Iterable;)I
+Landroid/icu/text/UnicodeSet;->compare(Ljava/util/Collection;Ljava/util/Collection;Landroid/icu/text/UnicodeSet$ComparisonStyle;)I
+Landroid/icu/text/UnicodeSet;->compare(Ljava/util/Iterator;Ljava/util/Iterator;)I
+Landroid/icu/text/UnicodeSet;->containsAll(Ljava/lang/String;I)Z
+Landroid/icu/text/UnicodeSet;->ensureBufferCapacity(I)V
+Landroid/icu/text/UnicodeSet;->ensureCapacity(I)V
+Landroid/icu/text/UnicodeSet;->findCodePoint(I)I
+Landroid/icu/text/UnicodeSet;->findIn(Ljava/lang/CharSequence;IZ)I
+Landroid/icu/text/UnicodeSet;->findLastIn(Ljava/lang/CharSequence;IZ)I
+Landroid/icu/text/UnicodeSet;->getDefaultXSymbolTable()Landroid/icu/text/UnicodeSet$XSymbolTable;
+Landroid/icu/text/UnicodeSet;->getInclusions(I)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->getRegexEquivalent()Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->getSingleCodePoint(Ljava/lang/CharSequence;)I
+Landroid/icu/text/UnicodeSet;->getSingleCP(Ljava/lang/CharSequence;)I
+Landroid/icu/text/UnicodeSet;->GROW_EXTRA:I
+Landroid/icu/text/UnicodeSet;->HIGH:I
+Landroid/icu/text/UnicodeSet;->INCLUSIONS:[Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->LAST0_START:I
+Landroid/icu/text/UnicodeSet;->LAST1_RANGE:I
+Landroid/icu/text/UnicodeSet;->LAST2_SET:I
+Landroid/icu/text/UnicodeSet;->len:I
+Landroid/icu/text/UnicodeSet;->list:[I
+Landroid/icu/text/UnicodeSet;->LOW:I
+Landroid/icu/text/UnicodeSet;->matchesAt(Ljava/lang/CharSequence;I)I
+Landroid/icu/text/UnicodeSet;->matchesAt(Ljava/lang/CharSequence;ILjava/lang/CharSequence;)I
+Landroid/icu/text/UnicodeSet;->matchRest(Landroid/icu/text/Replaceable;IILjava/lang/String;)I
+Landroid/icu/text/UnicodeSet;->max(II)I
+Landroid/icu/text/UnicodeSet;->MODE0_NONE:I
+Landroid/icu/text/UnicodeSet;->MODE1_INBRACKET:I
+Landroid/icu/text/UnicodeSet;->MODE2_OUTBRACKET:I
+Landroid/icu/text/UnicodeSet;->mungeCharName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->NO_VERSION:Landroid/icu/util/VersionInfo;
+Landroid/icu/text/UnicodeSet;->pat:Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->range(II)[I
+Landroid/icu/text/UnicodeSet;->rangeList:[I
+Landroid/icu/text/UnicodeSet;->resemblesPattern(Ljava/lang/String;I)Z
+Landroid/icu/text/UnicodeSet;->resemblesPropertyPattern(Landroid/icu/impl/RuleCharacterIterator;I)Z
+Landroid/icu/text/UnicodeSet;->resemblesPropertyPattern(Ljava/lang/String;I)Z
+Landroid/icu/text/UnicodeSet;->retain([III)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->setDefaultXSymbolTable(Landroid/icu/text/UnicodeSet$XSymbolTable;)V
+Landroid/icu/text/UnicodeSet;->SETMODE0_NONE:I
+Landroid/icu/text/UnicodeSet;->SETMODE1_UNICODESET:I
+Landroid/icu/text/UnicodeSet;->SETMODE2_PROPERTYPAT:I
+Landroid/icu/text/UnicodeSet;->SETMODE3_PREPARSED:I
+Landroid/icu/text/UnicodeSet;->spanAndCount(Ljava/lang/CharSequence;ILandroid/icu/text/UnicodeSet$SpanCondition;Landroid/icu/util/OutputInt;)I
+Landroid/icu/text/UnicodeSet;->spanCodePointsAndCount(Ljava/lang/CharSequence;ILandroid/icu/text/UnicodeSet$SpanCondition;Landroid/icu/util/OutputInt;)I
+Landroid/icu/text/UnicodeSet;->START_EXTRA:I
+Landroid/icu/text/UnicodeSet;->strings:Ljava/util/TreeSet;
+Landroid/icu/text/UnicodeSet;->stringSpan:Landroid/icu/impl/UnicodeSetStringSpan;
+Landroid/icu/text/UnicodeSet;->stripFrom(Ljava/lang/CharSequence;Z)Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->syntaxError(Landroid/icu/impl/RuleCharacterIterator;Ljava/lang/String;)V
+Landroid/icu/text/UnicodeSet;->toArray(Landroid/icu/text/UnicodeSet;)[Ljava/lang/String;
+Landroid/icu/text/UnicodeSet;->xor([III)Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSet;->XSYMBOL_TABLE:Landroid/icu/text/UnicodeSet$XSymbolTable;
+Landroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;IZ)Ljava/lang/Appendable;
+Landroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;Ljava/lang/String;Z)Ljava/lang/Appendable;
+Landroid/icu/text/UnicodeSet;->_toPattern(Ljava/lang/Appendable;Z)Ljava/lang/Appendable;
+Landroid/icu/text/UnicodeSetIterator;->endElement:I
+Landroid/icu/text/UnicodeSetIterator;->endRange:I
+Landroid/icu/text/UnicodeSetIterator;->getSet()Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UnicodeSetIterator;->loadRange(I)V
+Landroid/icu/text/UnicodeSetIterator;->nextElement:I
+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
+Landroid/icu/text/UTF16$StringComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/icu/text/UTF16$StringComparator;->compareCaseInsensitive(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/icu/text/UTF16$StringComparator;->compareCaseSensitive(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/icu/text/UTF16$StringComparator;->FOLD_CASE_DEFAULT:I
+Landroid/icu/text/UTF16$StringComparator;->FOLD_CASE_EXCLUDE_SPECIAL_I:I
+Landroid/icu/text/UTF16$StringComparator;->getCodePointCompare()Z
+Landroid/icu/text/UTF16$StringComparator;->getIgnoreCase()Z
+Landroid/icu/text/UTF16$StringComparator;->getIgnoreCaseOption()I
+Landroid/icu/text/UTF16$StringComparator;->m_codePointCompare_:I
+Landroid/icu/text/UTF16$StringComparator;->m_foldCase_:I
+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
+Landroid/icu/text/UTF16;->appendCodePoint(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/UTF16;->bounds(Ljava/lang/String;I)I
+Landroid/icu/text/UTF16;->bounds(Ljava/lang/StringBuffer;I)I
+Landroid/icu/text/UTF16;->bounds([CIII)I
+Landroid/icu/text/UTF16;->charAt(Landroid/icu/text/Replaceable;I)I
+Landroid/icu/text/UTF16;->charAt(Ljava/lang/CharSequence;I)I
+Landroid/icu/text/UTF16;->charAt(Ljava/lang/String;I)I
+Landroid/icu/text/UTF16;->charAt(Ljava/lang/StringBuffer;I)I
+Landroid/icu/text/UTF16;->charAt([CIII)I
+Landroid/icu/text/UTF16;->CODEPOINT_MAX_VALUE:I
+Landroid/icu/text/UTF16;->CODEPOINT_MIN_VALUE:I
+Landroid/icu/text/UTF16;->compareCodePoint(ILjava/lang/CharSequence;)I
+Landroid/icu/text/UTF16;->countCodePoint(Ljava/lang/String;)I
+Landroid/icu/text/UTF16;->countCodePoint(Ljava/lang/StringBuffer;)I
+Landroid/icu/text/UTF16;->countCodePoint([CII)I
+Landroid/icu/text/UTF16;->delete(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
+Landroid/icu/text/UTF16;->delete([CII)I
+Landroid/icu/text/UTF16;->findCodePointOffset(Ljava/lang/String;I)I
+Landroid/icu/text/UTF16;->findCodePointOffset(Ljava/lang/StringBuffer;I)I
+Landroid/icu/text/UTF16;->findCodePointOffset([CIII)I
+Landroid/icu/text/UTF16;->findOffsetFromCodePoint(Ljava/lang/String;I)I
+Landroid/icu/text/UTF16;->findOffsetFromCodePoint(Ljava/lang/StringBuffer;I)I
+Landroid/icu/text/UTF16;->findOffsetFromCodePoint([CIII)I
+Landroid/icu/text/UTF16;->getCharCount(I)I
+Landroid/icu/text/UTF16;->getLeadSurrogate(I)C
+Landroid/icu/text/UTF16;->getSingleCodePoint(Ljava/lang/CharSequence;)I
+Landroid/icu/text/UTF16;->getTrailSurrogate(I)C
+Landroid/icu/text/UTF16;->hasMoreCodePointsThan(Ljava/lang/String;I)Z
+Landroid/icu/text/UTF16;->hasMoreCodePointsThan(Ljava/lang/StringBuffer;I)Z
+Landroid/icu/text/UTF16;->hasMoreCodePointsThan([CIII)Z
+Landroid/icu/text/UTF16;->indexOf(Ljava/lang/String;I)I
+Landroid/icu/text/UTF16;->indexOf(Ljava/lang/String;II)I
+Landroid/icu/text/UTF16;->indexOf(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/icu/text/UTF16;->indexOf(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/icu/text/UTF16;->insert(Ljava/lang/StringBuffer;II)Ljava/lang/StringBuffer;
+Landroid/icu/text/UTF16;->insert([CIII)I
+Landroid/icu/text/UTF16;->isLeadSurrogate(C)Z
+Landroid/icu/text/UTF16;->isSurrogate(C)Z
+Landroid/icu/text/UTF16;->isTrailSurrogate(C)Z
+Landroid/icu/text/UTF16;->lastIndexOf(Ljava/lang/String;I)I
+Landroid/icu/text/UTF16;->lastIndexOf(Ljava/lang/String;II)I
+Landroid/icu/text/UTF16;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/icu/text/UTF16;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/icu/text/UTF16;->LEAD_SURROGATE_BITMASK:I
+Landroid/icu/text/UTF16;->LEAD_SURROGATE_BITS:I
+Landroid/icu/text/UTF16;->LEAD_SURROGATE_BOUNDARY:I
+Landroid/icu/text/UTF16;->LEAD_SURROGATE_MAX_VALUE:I
+Landroid/icu/text/UTF16;->LEAD_SURROGATE_MIN_VALUE:I
+Landroid/icu/text/UTF16;->LEAD_SURROGATE_OFFSET_:I
+Landroid/icu/text/UTF16;->LEAD_SURROGATE_SHIFT_:I
+Landroid/icu/text/UTF16;->moveCodePointOffset(Ljava/lang/String;II)I
+Landroid/icu/text/UTF16;->moveCodePointOffset(Ljava/lang/StringBuffer;II)I
+Landroid/icu/text/UTF16;->moveCodePointOffset([CIIII)I
+Landroid/icu/text/UTF16;->newString([III)Ljava/lang/String;
+Landroid/icu/text/UTF16;->replace(Ljava/lang/String;II)Ljava/lang/String;
+Landroid/icu/text/UTF16;->replace(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/text/UTF16;->reverse(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
+Landroid/icu/text/UTF16;->setCharAt(Ljava/lang/StringBuffer;II)V
+Landroid/icu/text/UTF16;->setCharAt([CIII)I
+Landroid/icu/text/UTF16;->SINGLE_CHAR_BOUNDARY:I
+Landroid/icu/text/UTF16;->SUPPLEMENTARY_MIN_VALUE:I
+Landroid/icu/text/UTF16;->SURROGATE_BITMASK:I
+Landroid/icu/text/UTF16;->SURROGATE_BITS:I
+Landroid/icu/text/UTF16;->SURROGATE_MAX_VALUE:I
+Landroid/icu/text/UTF16;->SURROGATE_MIN_VALUE:I
+Landroid/icu/text/UTF16;->toString(I)Ljava/lang/String;
+Landroid/icu/text/UTF16;->TRAIL_SURROGATE_BITMASK:I
+Landroid/icu/text/UTF16;->TRAIL_SURROGATE_BITS:I
+Landroid/icu/text/UTF16;->TRAIL_SURROGATE_BOUNDARY:I
+Landroid/icu/text/UTF16;->TRAIL_SURROGATE_MASK_:I
+Landroid/icu/text/UTF16;->TRAIL_SURROGATE_MAX_VALUE:I
+Landroid/icu/text/UTF16;->TRAIL_SURROGATE_MIN_VALUE:I
+Landroid/icu/text/UTF16;->valueOf(I)Ljava/lang/String;
+Landroid/icu/text/UTF16;->valueOf(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/icu/text/UTF16;->valueOf(Ljava/lang/StringBuffer;I)Ljava/lang/String;
+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
+Landroid/icu/util/AnnualTimeZoneRule;->getEndYear()I
+Landroid/icu/util/AnnualTimeZoneRule;->getFinalStart(II)Ljava/util/Date;
+Landroid/icu/util/AnnualTimeZoneRule;->getFirstStart(II)Ljava/util/Date;
+Landroid/icu/util/AnnualTimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
+Landroid/icu/util/AnnualTimeZoneRule;->getPreviousStart(JIIZ)Ljava/util/Date;
+Landroid/icu/util/AnnualTimeZoneRule;->getRule()Landroid/icu/util/DateTimeRule;
+Landroid/icu/util/AnnualTimeZoneRule;->getStartInYear(III)Ljava/util/Date;
+Landroid/icu/util/AnnualTimeZoneRule;->getStartYear()I
+Landroid/icu/util/AnnualTimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
+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
+Landroid/icu/util/BasicTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/BasicTimeZone;->getOffsetFromLocal(JII[I)V
+Landroid/icu/util/BasicTimeZone;->getPreviousTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/BasicTimeZone;->getSimpleTimeZoneRulesNear(J)[Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/BasicTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/BasicTimeZone;->getTimeZoneRules(J)[Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/BasicTimeZone;->hasEquivalentTransitions(Landroid/icu/util/TimeZone;JJ)Z
+Landroid/icu/util/BasicTimeZone;->hasEquivalentTransitions(Landroid/icu/util/TimeZone;JJZ)Z
+Landroid/icu/util/BasicTimeZone;->LOCAL_DST:I
+Landroid/icu/util/BasicTimeZone;->LOCAL_FORMER:I
+Landroid/icu/util/BasicTimeZone;->LOCAL_LATTER:I
+Landroid/icu/util/BasicTimeZone;->LOCAL_STD:I
+Landroid/icu/util/BasicTimeZone;->MILLIS_PER_YEAR:J
+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
+Landroid/icu/util/ByteArrayWrapper;->append([BII)Landroid/icu/util/ByteArrayWrapper;
+Landroid/icu/util/ByteArrayWrapper;->bytes:[B
+Landroid/icu/util/ByteArrayWrapper;->compareTo(Landroid/icu/util/ByteArrayWrapper;)I
+Landroid/icu/util/ByteArrayWrapper;->copyBytes([BI[BII)V
+Landroid/icu/util/ByteArrayWrapper;->ensureCapacity(I)Landroid/icu/util/ByteArrayWrapper;
+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
+Landroid/icu/util/BytesTrie$Entry;->byteAt(I)B
+Landroid/icu/util/BytesTrie$Entry;->bytes:[B
+Landroid/icu/util/BytesTrie$Entry;->bytesAsByteBuffer()Ljava/nio/ByteBuffer;
+Landroid/icu/util/BytesTrie$Entry;->bytesLength()I
+Landroid/icu/util/BytesTrie$Entry;->copyBytesTo([BI)V
+Landroid/icu/util/BytesTrie$Entry;->ensureCapacity(I)V
+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
+Landroid/icu/util/BytesTrie$Iterator;->entry_:Landroid/icu/util/BytesTrie$Entry;
+Landroid/icu/util/BytesTrie$Iterator;->initialPos_:I
+Landroid/icu/util/BytesTrie$Iterator;->initialRemainingMatchLength_:I
+Landroid/icu/util/BytesTrie$Iterator;->maxLength_:I
+Landroid/icu/util/BytesTrie$Iterator;->pos_:I
+Landroid/icu/util/BytesTrie$Iterator;->remainingMatchLength_:I
+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
+Landroid/icu/util/BytesTrie$Result;->INTERMEDIATE_VALUE:Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/BytesTrie$Result;->matches()Z
+Landroid/icu/util/BytesTrie$Result;->NO_MATCH:Landroid/icu/util/BytesTrie$Result;
+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;
+Landroid/icu/util/BytesTrie;->bytes_:[B
+Landroid/icu/util/BytesTrie;->current()Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/BytesTrie;->findUniqueValue([BIJ)J
+Landroid/icu/util/BytesTrie;->findUniqueValueFromBranch([BIIJ)J
+Landroid/icu/util/BytesTrie;->first(I)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/BytesTrie;->getNextBranchBytes([BIILjava/lang/Appendable;)V
+Landroid/icu/util/BytesTrie;->getNextBytes(Ljava/lang/Appendable;)I
+Landroid/icu/util/BytesTrie;->getUniqueValue()J
+Landroid/icu/util/BytesTrie;->getValue()I
+Landroid/icu/util/BytesTrie;->iterator(I)Landroid/icu/util/BytesTrie$Iterator;
+Landroid/icu/util/BytesTrie;->iterator([BII)Landroid/icu/util/BytesTrie$Iterator;
+Landroid/icu/util/BytesTrie;->jumpByDelta([BI)I
+Landroid/icu/util/BytesTrie;->kFiveByteDeltaLead:I
+Landroid/icu/util/BytesTrie;->kFiveByteValueLead:I
+Landroid/icu/util/BytesTrie;->kFourByteDeltaLead:I
+Landroid/icu/util/BytesTrie;->kFourByteValueLead:I
+Landroid/icu/util/BytesTrie;->kMaxBranchLinearSubNodeLength:I
+Landroid/icu/util/BytesTrie;->kMaxLinearMatchLength:I
+Landroid/icu/util/BytesTrie;->kMaxOneByteDelta:I
+Landroid/icu/util/BytesTrie;->kMaxOneByteValue:I
+Landroid/icu/util/BytesTrie;->kMaxThreeByteDelta:I
+Landroid/icu/util/BytesTrie;->kMaxThreeByteValue:I
+Landroid/icu/util/BytesTrie;->kMaxTwoByteDelta:I
+Landroid/icu/util/BytesTrie;->kMaxTwoByteValue:I
+Landroid/icu/util/BytesTrie;->kMinLinearMatch:I
+Landroid/icu/util/BytesTrie;->kMinOneByteValueLead:I
+Landroid/icu/util/BytesTrie;->kMinThreeByteDeltaLead:I
+Landroid/icu/util/BytesTrie;->kMinThreeByteValueLead:I
+Landroid/icu/util/BytesTrie;->kMinTwoByteDeltaLead:I
+Landroid/icu/util/BytesTrie;->kMinTwoByteValueLead:I
+Landroid/icu/util/BytesTrie;->kMinValueLead:I
+Landroid/icu/util/BytesTrie;->kValueIsFinal:I
+Landroid/icu/util/BytesTrie;->next(I)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/BytesTrie;->next([BII)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/BytesTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/BytesTrie;->pos_:I
+Landroid/icu/util/BytesTrie;->readValue([BII)I
+Landroid/icu/util/BytesTrie;->remainingMatchLength_:I
+Landroid/icu/util/BytesTrie;->reset()Landroid/icu/util/BytesTrie;
+Landroid/icu/util/BytesTrie;->resetToState(Landroid/icu/util/BytesTrie$State;)Landroid/icu/util/BytesTrie;
+Landroid/icu/util/BytesTrie;->root_:I
+Landroid/icu/util/BytesTrie;->saveState(Landroid/icu/util/BytesTrie$State;)Landroid/icu/util/BytesTrie;
+Landroid/icu/util/BytesTrie;->skipDelta([BI)I
+Landroid/icu/util/BytesTrie;->skipValue(II)I
+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;
+Landroid/icu/util/BytesTrieBuilder;->buildByteBuffer(Landroid/icu/util/StringTrieBuilder$Option;)Ljava/nio/ByteBuffer;
+Landroid/icu/util/BytesTrieBuilder;->buildBytes(Landroid/icu/util/StringTrieBuilder$Option;)V
+Landroid/icu/util/BytesTrieBuilder;->bytes:[B
+Landroid/icu/util/BytesTrieBuilder;->bytesLength:I
+Landroid/icu/util/BytesTrieBuilder;->clear()Landroid/icu/util/BytesTrieBuilder;
+Landroid/icu/util/BytesTrieBuilder;->ensureCapacity(I)V
+Landroid/icu/util/BytesTrieBuilder;->getMaxBranchLinearSubNodeLength()I
+Landroid/icu/util/BytesTrieBuilder;->getMaxLinearMatchLength()I
+Landroid/icu/util/BytesTrieBuilder;->getMinLinearMatch()I
+Landroid/icu/util/BytesTrieBuilder;->intBytes:[B
+Landroid/icu/util/BytesTrieBuilder;->matchNodesCanHaveValues()Z
+Landroid/icu/util/BytesTrieBuilder;->write(I)I
+Landroid/icu/util/BytesTrieBuilder;->write(II)I
+Landroid/icu/util/BytesTrieBuilder;->write([BI)I
+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;
+Landroid/icu/util/Calendar$CalType;->DANGI:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ETHIOPIC:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ETHIOPIC_AMETE_ALEM:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->GREGORIAN:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->HEBREW:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->id:Ljava/lang/String;
+Landroid/icu/util/Calendar$CalType;->INDIAN:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ISLAMIC:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ISLAMIC_CIVIL:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ISLAMIC_RGSA:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ISLAMIC_TBLA:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ISLAMIC_UMALQURA:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ISO8601:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->JAPANESE:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->PERSIAN:Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar$CalType;->ROC:Landroid/icu/util/Calendar$CalType;
+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;
+Landroid/icu/util/Calendar$FormatConfiguration;->getCalendar()Landroid/icu/util/Calendar;
+Landroid/icu/util/Calendar$FormatConfiguration;->getDateFormatSymbols()Landroid/icu/text/DateFormatSymbols;
+Landroid/icu/util/Calendar$FormatConfiguration;->getLocale()Landroid/icu/util/ULocale;
+Landroid/icu/util/Calendar$FormatConfiguration;->getOverrideString()Ljava/lang/String;
+Landroid/icu/util/Calendar$FormatConfiguration;->getPatternString()Ljava/lang/String;
+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;
+Landroid/icu/util/Calendar;->areAllFieldsSet:Z
+Landroid/icu/util/Calendar;->areFieldsSet:Z
+Landroid/icu/util/Calendar;->areFieldsVirtuallySet:Z
+Landroid/icu/util/Calendar;->compare(Ljava/lang/Object;)J
+Landroid/icu/util/Calendar;->computeGregorianAndDOWFields(I)V
+Landroid/icu/util/Calendar;->computeMillisInDayLong()J
+Landroid/icu/util/Calendar;->computeWeekFields()V
+Landroid/icu/util/Calendar;->computeZoneOffset(JJ)I
+Landroid/icu/util/Calendar;->createInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
+Landroid/icu/util/Calendar;->DATE_PRECEDENCE:[[[I
+Landroid/icu/util/Calendar;->DEFAULT_PATTERNS:[Ljava/lang/String;
+Landroid/icu/util/Calendar;->DOW_PRECEDENCE:[[[I
+Landroid/icu/util/Calendar;->expandOverride(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/Calendar;->fields:[I
+Landroid/icu/util/Calendar;->FIELD_DIFF_MAX_INT:I
+Landroid/icu/util/Calendar;->FIELD_NAME:[Ljava/lang/String;
+Landroid/icu/util/Calendar;->findPreviousZoneTransitionTime(Landroid/icu/util/TimeZone;IJJ)Ljava/lang/Long;
+Landroid/icu/util/Calendar;->FIND_ZONE_TRANSITION_TIME_UNITS:[I
+Landroid/icu/util/Calendar;->firstDayOfWeek:I
+Landroid/icu/util/Calendar;->firstIslamicStartYearFromGrego(I)I
+Landroid/icu/util/Calendar;->formatHelper(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;II)Landroid/icu/text/DateFormat;
+Landroid/icu/util/Calendar;->getActualHelper(III)I
+Landroid/icu/util/Calendar;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/util/Calendar;->getCalendarTypeForLocale(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar$CalType;
+Landroid/icu/util/Calendar;->getDateTimeFormatString(Landroid/icu/util/ULocale;Ljava/lang/String;II)Ljava/lang/String;
+Landroid/icu/util/Calendar;->getDateTimePattern(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;I)Ljava/lang/String;
+Landroid/icu/util/Calendar;->getDayOfWeekType(I)I
+Landroid/icu/util/Calendar;->getDefaultDayInMonth(II)I
+Landroid/icu/util/Calendar;->getDefaultMonthInYear(I)I
+Landroid/icu/util/Calendar;->getImmediatePreviousZoneTransition(J)Ljava/lang/Long;
+Landroid/icu/util/Calendar;->getInstanceInternal(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
+Landroid/icu/util/Calendar;->getPatternData(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
+Landroid/icu/util/Calendar;->getPreviousZoneTransitionTime(Landroid/icu/util/TimeZone;JJ)Ljava/lang/Long;
+Landroid/icu/util/Calendar;->getRegionForCalendar(Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/Calendar;->getRelatedYear()I
+Landroid/icu/util/Calendar;->getWeekDataForRegionInternal(Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
+Landroid/icu/util/Calendar;->getWeekendTransition(I)I
+Landroid/icu/util/Calendar;->gregorianDayOfMonth:I
+Landroid/icu/util/Calendar;->gregorianDayOfYear:I
+Landroid/icu/util/Calendar;->gregorianMonth:I
+Landroid/icu/util/Calendar;->gregorianYear:I
+Landroid/icu/util/Calendar;->GREGORIAN_MONTH_COUNT:[[I
+Landroid/icu/util/Calendar;->gregoYearFromIslamicStart(I)I
+Landroid/icu/util/Calendar;->handleGetDateFormat(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
+Landroid/icu/util/Calendar;->haveDefaultCentury()Z
+Landroid/icu/util/Calendar;->initInternal()V
+Landroid/icu/util/Calendar;->internalSetMask:I
+Landroid/icu/util/Calendar;->isTimeSet:Z
+Landroid/icu/util/Calendar;->lenient:Z
+Landroid/icu/util/Calendar;->LIMITS:[[I
+Landroid/icu/util/Calendar;->MAX_HOURS:I
+Landroid/icu/util/Calendar;->mergeOverrideStrings(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/Calendar;->minimalDaysInFirstWeek:I
+Landroid/icu/util/Calendar;->nextStamp:I
+Landroid/icu/util/Calendar;->PATTERN_CACHE:Landroid/icu/impl/ICUCache;
+Landroid/icu/util/Calendar;->QUOTE:C
+Landroid/icu/util/Calendar;->recalculateStamp()V
+Landroid/icu/util/Calendar;->repeatedWallTime:I
+Landroid/icu/util/Calendar;->setCalendarLocale(Landroid/icu/util/ULocale;)V
+Landroid/icu/util/Calendar;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
+Landroid/icu/util/Calendar;->setRelatedYear(I)V
+Landroid/icu/util/Calendar;->setWeekData(Ljava/lang/String;)V
+Landroid/icu/util/Calendar;->skippedWallTime:I
+Landroid/icu/util/Calendar;->stamp:[I
+Landroid/icu/util/Calendar;->STAMP_MAX:I
+Landroid/icu/util/Calendar;->time:J
+Landroid/icu/util/Calendar;->updateTime()V
+Landroid/icu/util/Calendar;->validLocale:Landroid/icu/util/ULocale;
+Landroid/icu/util/Calendar;->WEEKDAY:I
+Landroid/icu/util/Calendar;->WEEKEND:I
+Landroid/icu/util/Calendar;->weekendCease:I
+Landroid/icu/util/Calendar;->weekendCeaseMillis:I
+Landroid/icu/util/Calendar;->weekendOnset:I
+Landroid/icu/util/Calendar;->weekendOnsetMillis:I
+Landroid/icu/util/Calendar;->WEEKEND_CEASE:I
+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;
+Landroid/icu/util/CaseInsensitiveString;->getFolded()V
+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
+Landroid/icu/util/CECalendar;-><init>(Landroid/icu/util/TimeZone;)V
+Landroid/icu/util/CECalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
+Landroid/icu/util/CECalendar;-><init>(Landroid/icu/util/TimeZone;Ljava/util/Locale;)V
+Landroid/icu/util/CECalendar;-><init>(Landroid/icu/util/ULocale;)V
+Landroid/icu/util/CECalendar;-><init>(Ljava/util/Date;)V
+Landroid/icu/util/CECalendar;-><init>(Ljava/util/Locale;)V
+Landroid/icu/util/CECalendar;->ceToJD(JIII)I
+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;
+Landroid/icu/util/CharsTrie$Iterator;->entry_:Landroid/icu/util/CharsTrie$Entry;
+Landroid/icu/util/CharsTrie$Iterator;->initialPos_:I
+Landroid/icu/util/CharsTrie$Iterator;->initialRemainingMatchLength_:I
+Landroid/icu/util/CharsTrie$Iterator;->maxLength_:I
+Landroid/icu/util/CharsTrie$Iterator;->pos_:I
+Landroid/icu/util/CharsTrie$Iterator;->remainingMatchLength_:I
+Landroid/icu/util/CharsTrie$Iterator;->reset()Landroid/icu/util/CharsTrie$Iterator;
+Landroid/icu/util/CharsTrie$Iterator;->skipValue_:Z
+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;
+Landroid/icu/util/CharsTrie;->chars_:Ljava/lang/CharSequence;
+Landroid/icu/util/CharsTrie;->current()Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/CharsTrie;->findUniqueValue(Ljava/lang/CharSequence;IJ)J
+Landroid/icu/util/CharsTrie;->findUniqueValueFromBranch(Ljava/lang/CharSequence;IIJ)J
+Landroid/icu/util/CharsTrie;->first(I)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/CharsTrie;->firstForCodePoint(I)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/CharsTrie;->getNextBranchChars(Ljava/lang/CharSequence;IILjava/lang/Appendable;)V
+Landroid/icu/util/CharsTrie;->getNextChars(Ljava/lang/Appendable;)I
+Landroid/icu/util/CharsTrie;->getUniqueValue()J
+Landroid/icu/util/CharsTrie;->getValue()I
+Landroid/icu/util/CharsTrie;->iterator(I)Landroid/icu/util/CharsTrie$Iterator;
+Landroid/icu/util/CharsTrie;->iterator(Ljava/lang/CharSequence;II)Landroid/icu/util/CharsTrie$Iterator;
+Landroid/icu/util/CharsTrie;->jumpByDelta(Ljava/lang/CharSequence;I)I
+Landroid/icu/util/CharsTrie;->kMaxBranchLinearSubNodeLength:I
+Landroid/icu/util/CharsTrie;->kMaxLinearMatchLength:I
+Landroid/icu/util/CharsTrie;->kMaxOneUnitDelta:I
+Landroid/icu/util/CharsTrie;->kMaxOneUnitNodeValue:I
+Landroid/icu/util/CharsTrie;->kMaxOneUnitValue:I
+Landroid/icu/util/CharsTrie;->kMaxTwoUnitDelta:I
+Landroid/icu/util/CharsTrie;->kMaxTwoUnitNodeValue:I
+Landroid/icu/util/CharsTrie;->kMaxTwoUnitValue:I
+Landroid/icu/util/CharsTrie;->kMinLinearMatch:I
+Landroid/icu/util/CharsTrie;->kMinTwoUnitDeltaLead:I
+Landroid/icu/util/CharsTrie;->kMinTwoUnitNodeValueLead:I
+Landroid/icu/util/CharsTrie;->kMinTwoUnitValueLead:I
+Landroid/icu/util/CharsTrie;->kMinValueLead:I
+Landroid/icu/util/CharsTrie;->kNodeTypeMask:I
+Landroid/icu/util/CharsTrie;->kThreeUnitDeltaLead:I
+Landroid/icu/util/CharsTrie;->kThreeUnitNodeValueLead:I
+Landroid/icu/util/CharsTrie;->kThreeUnitValueLead:I
+Landroid/icu/util/CharsTrie;->kValueIsFinal:I
+Landroid/icu/util/CharsTrie;->next(I)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/CharsTrie;->next(Ljava/lang/CharSequence;II)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/CharsTrie;->nextForCodePoint(I)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/CharsTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result;
+Landroid/icu/util/CharsTrie;->pos_:I
+Landroid/icu/util/CharsTrie;->readNodeValue(Ljava/lang/CharSequence;II)I
+Landroid/icu/util/CharsTrie;->readValue(Ljava/lang/CharSequence;II)I
+Landroid/icu/util/CharsTrie;->remainingMatchLength_:I
+Landroid/icu/util/CharsTrie;->reset()Landroid/icu/util/CharsTrie;
+Landroid/icu/util/CharsTrie;->resetToState(Landroid/icu/util/CharsTrie$State;)Landroid/icu/util/CharsTrie;
+Landroid/icu/util/CharsTrie;->root_:I
+Landroid/icu/util/CharsTrie;->saveState(Landroid/icu/util/CharsTrie$State;)Landroid/icu/util/CharsTrie;
+Landroid/icu/util/CharsTrie;->skipDelta(Ljava/lang/CharSequence;I)I
+Landroid/icu/util/CharsTrie;->skipNodeValue(II)I
+Landroid/icu/util/CharsTrie;->skipValue(II)I
+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;
+Landroid/icu/util/CharsTrieBuilder;->buildChars(Landroid/icu/util/StringTrieBuilder$Option;)V
+Landroid/icu/util/CharsTrieBuilder;->buildCharSequence(Landroid/icu/util/StringTrieBuilder$Option;)Ljava/lang/CharSequence;
+Landroid/icu/util/CharsTrieBuilder;->chars:[C
+Landroid/icu/util/CharsTrieBuilder;->charsLength:I
+Landroid/icu/util/CharsTrieBuilder;->clear()Landroid/icu/util/CharsTrieBuilder;
+Landroid/icu/util/CharsTrieBuilder;->ensureCapacity(I)V
+Landroid/icu/util/CharsTrieBuilder;->getMaxBranchLinearSubNodeLength()I
+Landroid/icu/util/CharsTrieBuilder;->getMaxLinearMatchLength()I
+Landroid/icu/util/CharsTrieBuilder;->getMinLinearMatch()I
+Landroid/icu/util/CharsTrieBuilder;->intUnits:[C
+Landroid/icu/util/CharsTrieBuilder;->matchNodesCanHaveValues()Z
+Landroid/icu/util/CharsTrieBuilder;->write(I)I
+Landroid/icu/util/CharsTrieBuilder;->write(II)I
+Landroid/icu/util/CharsTrieBuilder;->write([CI)I
+Landroid/icu/util/CharsTrieBuilder;->writeDeltaTo(I)I
+Landroid/icu/util/CharsTrieBuilder;->writeValueAndFinal(IZ)I
+Landroid/icu/util/CharsTrieBuilder;->writeValueAndType(ZII)I
+Landroid/icu/util/ChineseCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;ILandroid/icu/util/TimeZone;)V
+Landroid/icu/util/ChineseCalendar;->astro:Landroid/icu/impl/CalendarAstronomer;
+Landroid/icu/util/ChineseCalendar;->CHINA_ZONE:Landroid/icu/util/TimeZone;
+Landroid/icu/util/ChineseCalendar;->CHINESE_DATE_PRECEDENCE:[[[I
+Landroid/icu/util/ChineseCalendar;->CHINESE_EPOCH_YEAR:I
+Landroid/icu/util/ChineseCalendar;->computeChineseFields(IIIZ)V
+Landroid/icu/util/ChineseCalendar;->daysToMillis(I)J
+Landroid/icu/util/ChineseCalendar;->epochYear:I
+Landroid/icu/util/ChineseCalendar;->hasNoMajorSolarTerm(I)Z
+Landroid/icu/util/ChineseCalendar;->haveDefaultCentury()Z
+Landroid/icu/util/ChineseCalendar;->isLeapMonthBetween(II)Z
+Landroid/icu/util/ChineseCalendar;->isLeapYear:Z
+Landroid/icu/util/ChineseCalendar;->LIMITS:[[I
+Landroid/icu/util/ChineseCalendar;->majorSolarTerm(I)I
+Landroid/icu/util/ChineseCalendar;->millisToDays(J)I
+Landroid/icu/util/ChineseCalendar;->newMoonNear(IZ)I
+Landroid/icu/util/ChineseCalendar;->newYear(I)I
+Landroid/icu/util/ChineseCalendar;->newYearCache:Landroid/icu/impl/CalendarCache;
+Landroid/icu/util/ChineseCalendar;->offsetMonth(III)V
+Landroid/icu/util/ChineseCalendar;->synodicMonthsBetween(II)I
+Landroid/icu/util/ChineseCalendar;->SYNODIC_GAP:I
+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
+Landroid/icu/util/CompactByteArray;-><init>([C[B)V
+Landroid/icu/util/CompactByteArray;->arrayRegionMatches([BI[BII)Z
+Landroid/icu/util/CompactByteArray;->BLOCKCOUNT:I
+Landroid/icu/util/CompactByteArray;->BLOCKMASK:I
+Landroid/icu/util/CompactByteArray;->BLOCKSHIFT:I
+Landroid/icu/util/CompactByteArray;->blockTouched(I)Z
+Landroid/icu/util/CompactByteArray;->compact()V
+Landroid/icu/util/CompactByteArray;->compact(Z)V
+Landroid/icu/util/CompactByteArray;->defaultValue:B
+Landroid/icu/util/CompactByteArray;->elementAt(C)B
+Landroid/icu/util/CompactByteArray;->expand()V
+Landroid/icu/util/CompactByteArray;->getIndexArray()[C
+Landroid/icu/util/CompactByteArray;->getValueArray()[B
+Landroid/icu/util/CompactByteArray;->hashes:[I
+Landroid/icu/util/CompactByteArray;->INDEXCOUNT:I
+Landroid/icu/util/CompactByteArray;->INDEXSHIFT:I
+Landroid/icu/util/CompactByteArray;->indices:[C
+Landroid/icu/util/CompactByteArray;->isCompact:Z
+Landroid/icu/util/CompactByteArray;->setElementAt(CB)V
+Landroid/icu/util/CompactByteArray;->setElementAt(CCB)V
+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
+Landroid/icu/util/CompactCharArray;-><init>([C[C)V
+Landroid/icu/util/CompactCharArray;->arrayRegionMatches([CI[CII)Z
+Landroid/icu/util/CompactCharArray;->BLOCKCOUNT:I
+Landroid/icu/util/CompactCharArray;->BLOCKMASK:I
+Landroid/icu/util/CompactCharArray;->BLOCKSHIFT:I
+Landroid/icu/util/CompactCharArray;->blockTouched(I)Z
+Landroid/icu/util/CompactCharArray;->compact()V
+Landroid/icu/util/CompactCharArray;->compact(Z)V
+Landroid/icu/util/CompactCharArray;->defaultValue:C
+Landroid/icu/util/CompactCharArray;->elementAt(C)C
+Landroid/icu/util/CompactCharArray;->expand()V
+Landroid/icu/util/CompactCharArray;->FindOverlappingPosition(I[CI)I
+Landroid/icu/util/CompactCharArray;->getIndexArray()[C
+Landroid/icu/util/CompactCharArray;->getValueArray()[C
+Landroid/icu/util/CompactCharArray;->hashes:[I
+Landroid/icu/util/CompactCharArray;->INDEXCOUNT:I
+Landroid/icu/util/CompactCharArray;->INDEXSHIFT:I
+Landroid/icu/util/CompactCharArray;->indices:[C
+Landroid/icu/util/CompactCharArray;->isCompact:Z
+Landroid/icu/util/CompactCharArray;->setElementAt(CC)V
+Landroid/icu/util/CompactCharArray;->setElementAt(CCC)V
+Landroid/icu/util/CompactCharArray;->touchBlock(II)V
+Landroid/icu/util/CompactCharArray;->UNICODECOUNT:I
+Landroid/icu/util/CompactCharArray;->values:[C
+Landroid/icu/util/CopticCalendar;->BCE:I
+Landroid/icu/util/CopticCalendar;->CE:I
+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;
+Landroid/icu/util/Currency$ServiceShim;->getAvailableULocales()[Landroid/icu/util/ULocale;
+Landroid/icu/util/Currency$ServiceShim;->registerInstance(Landroid/icu/util/Currency;Landroid/icu/util/ULocale;)Ljava/lang/Object;
+Landroid/icu/util/Currency$ServiceShim;->unregister(Ljava/lang/Object;)Z
+Landroid/icu/util/Currency;->ALL_CODES_AS_SET:Ljava/lang/ref/SoftReference;
+Landroid/icu/util/Currency;->ALL_TENDER_CODES:Ljava/lang/ref/SoftReference;
+Landroid/icu/util/Currency;->createCurrency(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
+Landroid/icu/util/Currency;->CURRENCY_NAME_CACHE:Landroid/icu/impl/ICUCache;
+Landroid/icu/util/Currency;->DEBUG:Z
+Landroid/icu/util/Currency;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
+Landroid/icu/util/Currency;->EQUIVALENT_CURRENCY_SYMBOLS:Landroid/icu/util/Currency$EquivalenceRelation;
+Landroid/icu/util/Currency;->EUR_STR:Ljava/lang/String;
+Landroid/icu/util/Currency;->fromJavaCurrency(Ljava/util/Currency;)Landroid/icu/util/Currency;
+Landroid/icu/util/Currency;->getAllCurrenciesAsSet()Ljava/util/Set;
+Landroid/icu/util/Currency;->getAllTenderCurrencies()Ljava/util/List;
+Landroid/icu/util/Currency;->getCurrencyTrieVec(Landroid/icu/util/ULocale;)Ljava/util/List;
+Landroid/icu/util/Currency;->getShim()Landroid/icu/util/Currency$ServiceShim;
+Landroid/icu/util/Currency;->getTenderCurrencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
+Landroid/icu/util/Currency;->isAlpha3Code(Ljava/lang/String;)Z
+Landroid/icu/util/Currency;->isoCode:Ljava/lang/String;
+Landroid/icu/util/Currency;->loadCurrency(Ljava/lang/String;)Landroid/icu/util/Currency;
+Landroid/icu/util/Currency;->NARROW_SYMBOL_NAME:I
+Landroid/icu/util/Currency;->openParseState(Landroid/icu/util/ULocale;II)Landroid/icu/impl/TextTrieMap$ParseState;
+Landroid/icu/util/Currency;->parse(Landroid/icu/util/ULocale;Ljava/lang/String;ILjava/text/ParsePosition;)Ljava/lang/String;
+Landroid/icu/util/Currency;->POW10:[I
+Landroid/icu/util/Currency;->regionCurrencyCache:Landroid/icu/impl/CacheBase;
+Landroid/icu/util/Currency;->registerInstance(Landroid/icu/util/Currency;Landroid/icu/util/ULocale;)Ljava/lang/Object;
+Landroid/icu/util/Currency;->setupCurrencyTrieVec(Landroid/icu/util/ULocale;Ljava/util/List;)V
+Landroid/icu/util/Currency;->shim:Landroid/icu/util/Currency$ServiceShim;
+Landroid/icu/util/Currency;->toJavaCurrency()Ljava/util/Currency;
+Landroid/icu/util/Currency;->UND:Landroid/icu/util/ULocale;
+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
+Landroid/icu/util/DangiCalendar;->DANGI_EPOCH_YEAR:I
+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
+Landroid/icu/util/DateTimeRule;->dateRuleType:I
+Landroid/icu/util/DateTimeRule;->dayOfMonth:I
+Landroid/icu/util/DateTimeRule;->dayOfWeek:I
+Landroid/icu/util/DateTimeRule;->DOM:I
+Landroid/icu/util/DateTimeRule;->DOW:I
+Landroid/icu/util/DateTimeRule;->DOWSTR:[Ljava/lang/String;
+Landroid/icu/util/DateTimeRule;->DOW_GEQ_DOM:I
+Landroid/icu/util/DateTimeRule;->DOW_LEQ_DOM:I
+Landroid/icu/util/DateTimeRule;->getDateRuleType()I
+Landroid/icu/util/DateTimeRule;->getRuleDayOfMonth()I
+Landroid/icu/util/DateTimeRule;->getRuleDayOfWeek()I
+Landroid/icu/util/DateTimeRule;->getRuleMillisInDay()I
+Landroid/icu/util/DateTimeRule;->getRuleMonth()I
+Landroid/icu/util/DateTimeRule;->getRuleWeekInMonth()I
+Landroid/icu/util/DateTimeRule;->getTimeRuleType()I
+Landroid/icu/util/DateTimeRule;->millisInDay:I
+Landroid/icu/util/DateTimeRule;->MONSTR:[Ljava/lang/String;
+Landroid/icu/util/DateTimeRule;->month:I
+Landroid/icu/util/DateTimeRule;->STANDARD_TIME:I
+Landroid/icu/util/DateTimeRule;->timeRuleType:I
+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
+Landroid/icu/util/EasterHoliday;->ASCENSION:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->ASH_WEDNESDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->CORPUS_CHRISTI:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->EASTER_MONDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->EASTER_SUNDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->GOOD_FRIDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->MAUNDY_THURSDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->PALM_SUNDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->PENTECOST:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->SHROVE_TUESDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->WHIT_MONDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EasterHoliday;->WHIT_SUNDAY:Landroid/icu/util/EasterHoliday;
+Landroid/icu/util/EthiopicCalendar;->AMETE_ALEM:I
+Landroid/icu/util/EthiopicCalendar;->AMETE_ALEM_ERA:I
+Landroid/icu/util/EthiopicCalendar;->AMETE_MIHRET:I
+Landroid/icu/util/EthiopicCalendar;->AMETE_MIHRET_DELTA:I
+Landroid/icu/util/EthiopicCalendar;->AMETE_MIHRET_ERA:I
+Landroid/icu/util/EthiopicCalendar;->eraType:I
+Landroid/icu/util/EthiopicCalendar;->EthiopicToJD(JII)I
+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;
+Landroid/icu/util/GenderInfo$ListGenderStyle;->MIXED_NEUTRAL:Landroid/icu/util/GenderInfo$ListGenderStyle;
+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
+Landroid/icu/util/GlobalizationPreferences;->BI_LIMIT:I
+Landroid/icu/util/GlobalizationPreferences;->BI_LINE:I
+Landroid/icu/util/GlobalizationPreferences;->BI_SENTENCE:I
+Landroid/icu/util/GlobalizationPreferences;->BI_TITLE:I
+Landroid/icu/util/GlobalizationPreferences;->BI_WORD:I
+Landroid/icu/util/GlobalizationPreferences;->breakIterators:[Landroid/icu/text/BreakIterator;
+Landroid/icu/util/GlobalizationPreferences;->calendar:Landroid/icu/util/Calendar;
+Landroid/icu/util/GlobalizationPreferences;->collator:Landroid/icu/text/Collator;
+Landroid/icu/util/GlobalizationPreferences;->currency:Landroid/icu/util/Currency;
+Landroid/icu/util/GlobalizationPreferences;->dateFormats:[[Landroid/icu/text/DateFormat;
+Landroid/icu/util/GlobalizationPreferences;->DF_FULL:I
+Landroid/icu/util/GlobalizationPreferences;->DF_LIMIT:I
+Landroid/icu/util/GlobalizationPreferences;->DF_LONG:I
+Landroid/icu/util/GlobalizationPreferences;->DF_MEDIUM:I
+Landroid/icu/util/GlobalizationPreferences;->DF_NONE:I
+Landroid/icu/util/GlobalizationPreferences;->DF_SHORT:I
+Landroid/icu/util/GlobalizationPreferences;->frozen:Z
+Landroid/icu/util/GlobalizationPreferences;->getAvailableLocale(I)Landroid/icu/util/ULocale;
+Landroid/icu/util/GlobalizationPreferences;->getBreakIterator(I)Landroid/icu/text/BreakIterator;
+Landroid/icu/util/GlobalizationPreferences;->getCalendar()Landroid/icu/util/Calendar;
+Landroid/icu/util/GlobalizationPreferences;->getCollator()Landroid/icu/text/Collator;
+Landroid/icu/util/GlobalizationPreferences;->getCurrency()Landroid/icu/util/Currency;
+Landroid/icu/util/GlobalizationPreferences;->getDateFormat(II)Landroid/icu/text/DateFormat;
+Landroid/icu/util/GlobalizationPreferences;->getDisplayName(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/icu/util/GlobalizationPreferences;->getLocale(I)Landroid/icu/util/ULocale;
+Landroid/icu/util/GlobalizationPreferences;->getLocales()Ljava/util/List;
+Landroid/icu/util/GlobalizationPreferences;->getNumberFormat(I)Landroid/icu/text/NumberFormat;
+Landroid/icu/util/GlobalizationPreferences;->getResourceBundle(Ljava/lang/String;)Ljava/util/ResourceBundle;
+Landroid/icu/util/GlobalizationPreferences;->getResourceBundle(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/ResourceBundle;
+Landroid/icu/util/GlobalizationPreferences;->getTerritory()Ljava/lang/String;
+Landroid/icu/util/GlobalizationPreferences;->getTimeZone()Landroid/icu/util/TimeZone;
+Landroid/icu/util/GlobalizationPreferences;->guessBreakIterator(I)Landroid/icu/text/BreakIterator;
+Landroid/icu/util/GlobalizationPreferences;->guessCalendar()Landroid/icu/util/Calendar;
+Landroid/icu/util/GlobalizationPreferences;->guessCollator()Landroid/icu/text/Collator;
+Landroid/icu/util/GlobalizationPreferences;->guessCurrency()Landroid/icu/util/Currency;
+Landroid/icu/util/GlobalizationPreferences;->guessDateFormat(II)Landroid/icu/text/DateFormat;
+Landroid/icu/util/GlobalizationPreferences;->guessLocales()Ljava/util/List;
+Landroid/icu/util/GlobalizationPreferences;->guessNumberFormat(I)Landroid/icu/text/NumberFormat;
+Landroid/icu/util/GlobalizationPreferences;->guessTerritory()Ljava/lang/String;
+Landroid/icu/util/GlobalizationPreferences;->guessTimeZone()Landroid/icu/util/TimeZone;
+Landroid/icu/util/GlobalizationPreferences;->ID_CURRENCY:I
+Landroid/icu/util/GlobalizationPreferences;->ID_CURRENCY_SYMBOL:I
+Landroid/icu/util/GlobalizationPreferences;->ID_KEYWORD:I
+Landroid/icu/util/GlobalizationPreferences;->ID_KEYWORD_VALUE:I
+Landroid/icu/util/GlobalizationPreferences;->ID_LANGUAGE:I
+Landroid/icu/util/GlobalizationPreferences;->ID_LOCALE:I
+Landroid/icu/util/GlobalizationPreferences;->ID_SCRIPT:I
+Landroid/icu/util/GlobalizationPreferences;->ID_TERRITORY:I
+Landroid/icu/util/GlobalizationPreferences;->ID_TIMEZONE:I
+Landroid/icu/util/GlobalizationPreferences;->ID_VARIANT:I
+Landroid/icu/util/GlobalizationPreferences;->implicitLocales:Ljava/util/List;
+Landroid/icu/util/GlobalizationPreferences;->isAvailableLocale(Landroid/icu/util/ULocale;I)Z
+Landroid/icu/util/GlobalizationPreferences;->language_territory_hack:[[Ljava/lang/String;
+Landroid/icu/util/GlobalizationPreferences;->language_territory_hack_map:Ljava/util/Map;
+Landroid/icu/util/GlobalizationPreferences;->locales:Ljava/util/List;
+Landroid/icu/util/GlobalizationPreferences;->NF_CURRENCY:I
+Landroid/icu/util/GlobalizationPreferences;->NF_INTEGER:I
+Landroid/icu/util/GlobalizationPreferences;->NF_LIMIT:I
+Landroid/icu/util/GlobalizationPreferences;->NF_NUMBER:I
+Landroid/icu/util/GlobalizationPreferences;->NF_PERCENT:I
+Landroid/icu/util/GlobalizationPreferences;->NF_SCIENTIFIC:I
+Landroid/icu/util/GlobalizationPreferences;->numberFormats:[Landroid/icu/text/NumberFormat;
+Landroid/icu/util/GlobalizationPreferences;->processLocales(Ljava/util/List;)Ljava/util/List;
+Landroid/icu/util/GlobalizationPreferences;->reset()Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setBreakIterator(ILandroid/icu/text/BreakIterator;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setCalendar(Landroid/icu/util/Calendar;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setCollator(Landroid/icu/text/Collator;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setCurrency(Landroid/icu/util/Currency;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setDateFormat(IILandroid/icu/text/DateFormat;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setLocale(Landroid/icu/util/ULocale;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setLocales(Ljava/lang/String;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setLocales(Ljava/util/List;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setLocales([Landroid/icu/util/ULocale;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setNumberFormat(ILandroid/icu/text/NumberFormat;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setTerritory(Ljava/lang/String;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->setTimeZone(Landroid/icu/util/TimeZone;)Landroid/icu/util/GlobalizationPreferences;
+Landroid/icu/util/GlobalizationPreferences;->territory:Ljava/lang/String;
+Landroid/icu/util/GlobalizationPreferences;->territory_tzid_hack:[[Ljava/lang/String;
+Landroid/icu/util/GlobalizationPreferences;->territory_tzid_hack_map:Ljava/util/Map;
+Landroid/icu/util/GlobalizationPreferences;->timezone:Landroid/icu/util/TimeZone;
+Landroid/icu/util/GlobalizationPreferences;->TYPE_BREAKITERATOR:I
+Landroid/icu/util/GlobalizationPreferences;->TYPE_CALENDAR:I
+Landroid/icu/util/GlobalizationPreferences;->TYPE_COLLATOR:I
+Landroid/icu/util/GlobalizationPreferences;->TYPE_DATEFORMAT:I
+Landroid/icu/util/GlobalizationPreferences;->TYPE_GENERIC:I
+Landroid/icu/util/GlobalizationPreferences;->TYPE_LIMIT:I
+Landroid/icu/util/GlobalizationPreferences;->TYPE_NUMBERFORMAT:I
+Landroid/icu/util/GregorianCalendar;->cutoverJulianDay:I
+Landroid/icu/util/GregorianCalendar;->EPOCH_YEAR:I
+Landroid/icu/util/GregorianCalendar;->gregorianCutover:J
+Landroid/icu/util/GregorianCalendar;->gregorianCutoverYear:I
+Landroid/icu/util/GregorianCalendar;->inDaylightTime()Z
+Landroid/icu/util/GregorianCalendar;->LIMITS:[[I
+Landroid/icu/util/GregorianCalendar;->MONTH_COUNT:[[I
+Landroid/icu/util/HebrewCalendar;->BAHARAD:J
+Landroid/icu/util/HebrewCalendar;->cache:Landroid/icu/impl/CalendarCache;
+Landroid/icu/util/HebrewCalendar;->DAY_PARTS:J
+Landroid/icu/util/HebrewCalendar;->HOUR_PARTS:J
+Landroid/icu/util/HebrewCalendar;->isLeapYear(I)Z
+Landroid/icu/util/HebrewCalendar;->LEAP_MONTH_START:[[I
+Landroid/icu/util/HebrewCalendar;->LIMITS:[[I
+Landroid/icu/util/HebrewCalendar;->monthsInYear(I)I
+Landroid/icu/util/HebrewCalendar;->MONTH_DAYS:I
+Landroid/icu/util/HebrewCalendar;->MONTH_FRACT:J
+Landroid/icu/util/HebrewCalendar;->MONTH_LENGTH:[[I
+Landroid/icu/util/HebrewCalendar;->MONTH_PARTS:J
+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;
+Landroid/icu/util/HebrewHoliday;->gCalendar:Landroid/icu/util/HebrewCalendar;
+Landroid/icu/util/HebrewHoliday;->GEDALIAH:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->HANUKKAH:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->HOSHANAH_RABBAH:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->LAG_BOMER:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->PASSOVER:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->PESACH_SHEINI:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->PURIM:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->ROSH_HASHANAH:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->SELIHOT:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->SHAVUOT:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->SHEMINI_ATZERET:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->SHUSHAN_PURIM:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->SIMCHAT_TORAH:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->SUKKOT:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->TAMMUZ_17:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->TEVET_10:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->TISHA_BAV:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->TU_BSHEVAT:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->YOM_HAATZMAUT:Landroid/icu/util/HebrewHoliday;
+Landroid/icu/util/HebrewHoliday;->YOM_HASHOAH:Landroid/icu/util/HebrewHoliday;
+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;
+Landroid/icu/util/Holiday;->getDisplayName()Ljava/lang/String;
+Landroid/icu/util/Holiday;->getDisplayName(Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/Holiday;->getDisplayName(Ljava/util/Locale;)Ljava/lang/String;
+Landroid/icu/util/Holiday;->getHolidays()[Landroid/icu/util/Holiday;
+Landroid/icu/util/Holiday;->getHolidays(Landroid/icu/util/ULocale;)[Landroid/icu/util/Holiday;
+Landroid/icu/util/Holiday;->getHolidays(Ljava/util/Locale;)[Landroid/icu/util/Holiday;
+Landroid/icu/util/Holiday;->getRule()Landroid/icu/util/DateRule;
+Landroid/icu/util/Holiday;->isBetween(Ljava/util/Date;Ljava/util/Date;)Z
+Landroid/icu/util/Holiday;->isOn(Ljava/util/Date;)Z
+Landroid/icu/util/Holiday;->name:Ljava/lang/String;
+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
+Landroid/icu/util/ICUException;-><init>(Ljava/lang/Throwable;)V
+Landroid/icu/util/IllformedLocaleException;->_errIdx:I
+Landroid/icu/util/IndianCalendar;->gregorianToJD(III)D
+Landroid/icu/util/IndianCalendar;->IndianToJD(III)D
+Landroid/icu/util/IndianCalendar;->INDIAN_ERA_START:I
+Landroid/icu/util/IndianCalendar;->INDIAN_YEAR_START:I
+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;
+Landroid/icu/util/InitialTimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
+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;
+Landroid/icu/util/IslamicCalendar;->ASTRONOMICAL_EPOC:J
+Landroid/icu/util/IslamicCalendar;->cache:Landroid/icu/impl/CalendarCache;
+Landroid/icu/util/IslamicCalendar;->civil:Z
+Landroid/icu/util/IslamicCalendar;->civilLeapYear(I)Z
+Landroid/icu/util/IslamicCalendar;->CIVIL_EPOC:J
+Landroid/icu/util/IslamicCalendar;->cType:Landroid/icu/util/IslamicCalendar$CalculationType;
+Landroid/icu/util/IslamicCalendar;->HIJRA_MILLIS:J
+Landroid/icu/util/IslamicCalendar;->isCivil()Z
+Landroid/icu/util/IslamicCalendar;->LIMITS:[[I
+Landroid/icu/util/IslamicCalendar;->monthStart(II)J
+Landroid/icu/util/IslamicCalendar;->moonAge(J)D
+Landroid/icu/util/IslamicCalendar;->setCalcTypeForLocale(Landroid/icu/util/ULocale;)V
+Landroid/icu/util/IslamicCalendar;->setCivil(Z)V
+Landroid/icu/util/IslamicCalendar;->trueMonthStart(J)J
+Landroid/icu/util/IslamicCalendar;->UMALQURA_MONTHLENGTH:[I
+Landroid/icu/util/IslamicCalendar;->UMALQURA_YEAR_END:I
+Landroid/icu/util/IslamicCalendar;->UMALQURA_YEAR_START:I
+Landroid/icu/util/IslamicCalendar;->UMALQURA_YEAR_START_ESTIMATE_FIX:[B
+Landroid/icu/util/IslamicCalendar;->yearStart(I)J
+Landroid/icu/util/JapaneseCalendar;->ERAS:[I
+Landroid/icu/util/JapaneseCalendar;->getDefaultDayInMonth(II)I
+Landroid/icu/util/JapaneseCalendar;->getDefaultMonthInYear(I)I
+Landroid/icu/util/JapaneseCalendar;->GREGORIAN_EPOCH:I
+Landroid/icu/util/JapaneseCalendar;->haveDefaultCentury()Z
+Landroid/icu/util/LocaleData$MeasurementSystem;-><init>()V
+Landroid/icu/util/LocaleData$PaperSize;-><init>(II)V
+Landroid/icu/util/LocaleData$PaperSize;->height:I
+Landroid/icu/util/LocaleData$PaperSize;->width:I
+Landroid/icu/util/LocaleData;-><init>()V
+Landroid/icu/util/LocaleData;->bundle:Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/util/LocaleData;->DELIMITER_COUNT:I
+Landroid/icu/util/LocaleData;->DELIMITER_TYPES:[Ljava/lang/String;
+Landroid/icu/util/LocaleData;->ES_AUXILIARY:I
+Landroid/icu/util/LocaleData;->ES_COUNT:I
+Landroid/icu/util/LocaleData;->ES_CURRENCY:I
+Landroid/icu/util/LocaleData;->ES_INDEX:I
+Landroid/icu/util/LocaleData;->ES_PUNCTUATION:I
+Landroid/icu/util/LocaleData;->ES_STANDARD:I
+Landroid/icu/util/LocaleData;->gCLDRVersion:Landroid/icu/util/VersionInfo;
+Landroid/icu/util/LocaleData;->getExemplarSet(II)Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/LocaleData;->getExemplarSet(Landroid/icu/util/ULocale;I)Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/LocaleData;->getExemplarSet(Landroid/icu/util/ULocale;II)Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/LocaleData;->getLocaleDisplayPattern()Ljava/lang/String;
+Landroid/icu/util/LocaleData;->getLocaleSeparator()Ljava/lang/String;
+Landroid/icu/util/LocaleData;->langBundle:Landroid/icu/impl/ICUResourceBundle;
+Landroid/icu/util/LocaleData;->LOCALE_DISPLAY_PATTERN:Ljava/lang/String;
+Landroid/icu/util/LocaleData;->measurementTypeBundleForLocale(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/LocaleData;->MEASUREMENT_SYSTEM:Ljava/lang/String;
+Landroid/icu/util/LocaleData;->noSubstitute:Z
+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;
+Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->addDistance(Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;)Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
+Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->frozen:Z
+Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->languageScores:Landroid/icu/util/LocaleMatcher$ScoreData;
+Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->match(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)D
+Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->matchingLanguages()Landroid/icu/impl/Relation;
+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;
+Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->getRegion()Ljava/lang/String;
+Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->getScript()Ljava/lang/String;
+Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->lang:Ljava/lang/String;
+Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->level:Landroid/icu/util/LocaleMatcher$Level;
+Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->matches(Landroid/icu/util/ULocale;)Z
+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
+Landroid/icu/util/LocaleMatcher$ScoreData;->getMatchingLanguages()Landroid/icu/impl/Relation;
+Landroid/icu/util/LocaleMatcher$ScoreData;->getRawScore(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)D
+Landroid/icu/util/LocaleMatcher$ScoreData;->getScore(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)D
+Landroid/icu/util/LocaleMatcher$ScoreData;->level:Landroid/icu/util/LocaleMatcher$Level;
+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
+Landroid/icu/util/LocaleMatcher;-><init>(Ljava/lang/String;)V
+Landroid/icu/util/LocaleMatcher;->add(Landroid/icu/util/ULocale;Ljava/lang/Double;)V
+Landroid/icu/util/LocaleMatcher;->addFiltered(Ljava/lang/String;Landroid/icu/impl/Row$R3;)V
+Landroid/icu/util/LocaleMatcher;->addLikelySubtags(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
+Landroid/icu/util/LocaleMatcher;->canonicalize(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
+Landroid/icu/util/LocaleMatcher;->canonicalMap:Ljava/util/HashMap;
+Landroid/icu/util/LocaleMatcher;->DEBUG:Z
+Landroid/icu/util/LocaleMatcher;->defaultLanguage:Landroid/icu/util/ULocale;
+Landroid/icu/util/LocaleMatcher;->defaultWritten:Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
+Landroid/icu/util/LocaleMatcher;->DEFAULT_THRESHOLD:D
+Landroid/icu/util/LocaleMatcher;->desiredLanguageToPossibleLocalesToMaxLocaleToData:Ljava/util/Map;
+Landroid/icu/util/LocaleMatcher;->distance(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)I
+Landroid/icu/util/LocaleMatcher;->getBestMatch(Landroid/icu/util/LocalePriorityList;)Landroid/icu/util/ULocale;
+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;
+Landroid/icu/util/LocaleMatcher;->languagePriorityList:Landroid/icu/util/LocalePriorityList;
+Landroid/icu/util/LocaleMatcher;->localeToMaxLocaleAndWeight:Ljava/util/Set;
+Landroid/icu/util/LocaleMatcher;->match(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)D
+Landroid/icu/util/LocaleMatcher;->match(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)D
+Landroid/icu/util/LocaleMatcher;->matcherData:Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
+Landroid/icu/util/LocaleMatcher;->processMapping()V
+Landroid/icu/util/LocaleMatcher;->setDefaultLanguage(Landroid/icu/util/ULocale;)Landroid/icu/util/LocaleMatcher;
+Landroid/icu/util/LocaleMatcher;->setFavorScript(Z)Landroid/icu/util/LocaleMatcher;
+Landroid/icu/util/LocaleMatcher;->threshold:D
+Landroid/icu/util/LocaleMatcher;->UNKNOWN_LOCALE:Landroid/icu/util/ULocale;
+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;
+Landroid/icu/util/LocalePriorityList;->languagesAndWeights:Ljava/util/Map;
+Landroid/icu/util/LocalePriorityList;->languageSplitter:Ljava/util/regex/Pattern;
+Landroid/icu/util/LocalePriorityList;->myDescendingDouble:Ljava/util/Comparator;
+Landroid/icu/util/LocalePriorityList;->weightSplitter:Ljava/util/regex/Pattern;
+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;
+Landroid/icu/util/MeasureUnit;->ASCII:Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/MeasureUnit;->ASCII_HYPHEN_DIGITS:Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/MeasureUnit;->cache:Ljava/util/Map;
+Landroid/icu/util/MeasureUnit;->cacheIsPopulated:Z
+Landroid/icu/util/MeasureUnit;->CURRENCY_FACTORY:Landroid/icu/util/MeasureUnit$Factory;
+Landroid/icu/util/MeasureUnit;->internalGetInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit;
+Landroid/icu/util/MeasureUnit;->NOUNIT_FACTORY:Landroid/icu/util/MeasureUnit$Factory;
+Landroid/icu/util/MeasureUnit;->POINT:Landroid/icu/util/MeasureUnit;
+Landroid/icu/util/MeasureUnit;->populateCache()V
+Landroid/icu/util/MeasureUnit;->resolveUnitPerUnit(Landroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit;)Landroid/icu/util/MeasureUnit;
+Landroid/icu/util/MeasureUnit;->subType:Ljava/lang/String;
+Landroid/icu/util/MeasureUnit;->TIMEUNIT_FACTORY:Landroid/icu/util/MeasureUnit$Factory;
+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
+Landroid/icu/util/PersianCalendar;-><init>(Landroid/icu/util/TimeZone;)V
+Landroid/icu/util/PersianCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
+Landroid/icu/util/PersianCalendar;-><init>(Landroid/icu/util/TimeZone;Ljava/util/Locale;)V
+Landroid/icu/util/PersianCalendar;-><init>(Landroid/icu/util/ULocale;)V
+Landroid/icu/util/PersianCalendar;-><init>(Ljava/util/Date;)V
+Landroid/icu/util/PersianCalendar;->isLeapYear(I)Z
+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
+Landroid/icu/util/RangeDateRule;->firstAfter(Ljava/util/Date;)Ljava/util/Date;
+Landroid/icu/util/RangeDateRule;->firstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
+Landroid/icu/util/RangeDateRule;->isBetween(Ljava/util/Date;Ljava/util/Date;)Z
+Landroid/icu/util/RangeDateRule;->isOn(Ljava/util/Date;)Z
+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;
+Landroid/icu/util/Region$RegionType;->SUBCONTINENT:Landroid/icu/util/Region$RegionType;
+Landroid/icu/util/Region$RegionType;->TERRITORY:Landroid/icu/util/Region$RegionType;
+Landroid/icu/util/Region$RegionType;->UNKNOWN:Landroid/icu/util/Region$RegionType;
+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
+Landroid/icu/util/Region;->compareTo(Landroid/icu/util/Region;)I
+Landroid/icu/util/Region;->containedRegions:Ljava/util/Set;
+Landroid/icu/util/Region;->containingRegion:Landroid/icu/util/Region;
+Landroid/icu/util/Region;->contains(Landroid/icu/util/Region;)Z
+Landroid/icu/util/Region;->getAvailable(Landroid/icu/util/Region$RegionType;)Ljava/util/Set;
+Landroid/icu/util/Region;->getContainedRegions()Ljava/util/Set;
+Landroid/icu/util/Region;->getContainedRegions(Landroid/icu/util/Region$RegionType;)Ljava/util/Set;
+Landroid/icu/util/Region;->getContainingRegion()Landroid/icu/util/Region;
+Landroid/icu/util/Region;->getContainingRegion(Landroid/icu/util/Region$RegionType;)Landroid/icu/util/Region;
+Landroid/icu/util/Region;->getInstance(I)Landroid/icu/util/Region;
+Landroid/icu/util/Region;->getInstance(Ljava/lang/String;)Landroid/icu/util/Region;
+Landroid/icu/util/Region;->getNumericCode()I
+Landroid/icu/util/Region;->getPreferredValues()Ljava/util/List;
+Landroid/icu/util/Region;->getType()Landroid/icu/util/Region$RegionType;
+Landroid/icu/util/Region;->id:Ljava/lang/String;
+Landroid/icu/util/Region;->loadRegionData()V
+Landroid/icu/util/Region;->numericCodeMap:Ljava/util/Map;
+Landroid/icu/util/Region;->OUTLYING_OCEANIA_REGION_ID:Ljava/lang/String;
+Landroid/icu/util/Region;->preferredValues:Ljava/util/List;
+Landroid/icu/util/Region;->regionAliases:Ljava/util/Map;
+Landroid/icu/util/Region;->regionDataIsLoaded:Z
+Landroid/icu/util/Region;->regionIDMap:Ljava/util/Map;
+Landroid/icu/util/Region;->regions:Ljava/util/ArrayList;
+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
+Landroid/icu/util/RuleBasedTimeZone;->finalRules:[Landroid/icu/util/AnnualTimeZoneRule;
+Landroid/icu/util/RuleBasedTimeZone;->findRuleInFinal(JZII)Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/RuleBasedTimeZone;->getLocalDelta(IIIIII)I
+Landroid/icu/util/RuleBasedTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/RuleBasedTimeZone;->getOffset(JZII[I)V
+Landroid/icu/util/RuleBasedTimeZone;->getOffsetFromLocal(JII[I)V
+Landroid/icu/util/RuleBasedTimeZone;->getPreviousTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/RuleBasedTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/RuleBasedTimeZone;->getTransitionTime(Landroid/icu/util/TimeZoneTransition;ZII)J
+Landroid/icu/util/RuleBasedTimeZone;->historicRules:Ljava/util/List;
+Landroid/icu/util/RuleBasedTimeZone;->historicTransitions:Ljava/util/List;
+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
+Landroid/icu/util/SimpleDateRule;->calendar:Landroid/icu/util/Calendar;
+Landroid/icu/util/SimpleDateRule;->computeInYear(ILandroid/icu/util/Calendar;)Ljava/util/Date;
+Landroid/icu/util/SimpleDateRule;->dayOfMonth:I
+Landroid/icu/util/SimpleDateRule;->dayOfWeek:I
+Landroid/icu/util/SimpleDateRule;->doFirstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
+Landroid/icu/util/SimpleDateRule;->firstAfter(Ljava/util/Date;)Ljava/util/Date;
+Landroid/icu/util/SimpleDateRule;->firstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
+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
+Landroid/icu/util/SimpleHoliday;-><init>(IILjava/lang/String;)V
+Landroid/icu/util/SimpleHoliday;-><init>(IILjava/lang/String;I)V
+Landroid/icu/util/SimpleHoliday;-><init>(IILjava/lang/String;II)V
+Landroid/icu/util/SimpleHoliday;->ALL_SAINTS_DAY:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->ALL_SOULS_DAY:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->ASSUMPTION:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->BOXING_DAY:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->CHRISTMAS:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->CHRISTMAS_EVE:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->EPIPHANY:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->IMMACULATE_CONCEPTION:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->MAY_DAY:Landroid/icu/util/SimpleHoliday;
+Landroid/icu/util/SimpleHoliday;->NEW_YEARS_DAY:Landroid/icu/util/SimpleHoliday;
+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
+Landroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIIIIII)V
+Landroid/icu/util/SimpleTimeZone;->compareToRule(IIIIIIIIIIII)I
+Landroid/icu/util/SimpleTimeZone;->construct(IIIIIIIIIIII)V
+Landroid/icu/util/SimpleTimeZone;->decodeEndRule()V
+Landroid/icu/util/SimpleTimeZone;->decodeRules()V
+Landroid/icu/util/SimpleTimeZone;->decodeStartRule()V
+Landroid/icu/util/SimpleTimeZone;->DOM_MODE:I
+Landroid/icu/util/SimpleTimeZone;->DOW_GE_DOM_MODE:I
+Landroid/icu/util/SimpleTimeZone;->DOW_IN_MONTH_MODE:I
+Landroid/icu/util/SimpleTimeZone;->DOW_LE_DOM_MODE:I
+Landroid/icu/util/SimpleTimeZone;->dst:I
+Landroid/icu/util/SimpleTimeZone;->dstRule:Landroid/icu/util/AnnualTimeZoneRule;
+Landroid/icu/util/SimpleTimeZone;->endDay:I
+Landroid/icu/util/SimpleTimeZone;->endDayOfWeek:I
+Landroid/icu/util/SimpleTimeZone;->endMode:I
+Landroid/icu/util/SimpleTimeZone;->endMonth:I
+Landroid/icu/util/SimpleTimeZone;->endTime:I
+Landroid/icu/util/SimpleTimeZone;->endTimeMode:I
+Landroid/icu/util/SimpleTimeZone;->firstTransition:Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/SimpleTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/SimpleTimeZone;->getOffset(IIIIIII)I
+Landroid/icu/util/SimpleTimeZone;->getOffset(IIIIIIII)I
+Landroid/icu/util/SimpleTimeZone;->getOffsetFromLocal(JII[I)V
+Landroid/icu/util/SimpleTimeZone;->getPreviousTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/SimpleTimeZone;->getSTZInfo()Landroid/icu/util/STZInfo;
+Landroid/icu/util/SimpleTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/SimpleTimeZone;->idEquals(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/icu/util/SimpleTimeZone;->initialRule:Landroid/icu/util/InitialTimeZoneRule;
+Landroid/icu/util/SimpleTimeZone;->initTransitionRules()V
+Landroid/icu/util/SimpleTimeZone;->isFrozen:Z
+Landroid/icu/util/SimpleTimeZone;->raw:I
+Landroid/icu/util/SimpleTimeZone;->setDSTSavings(I)V
+Landroid/icu/util/SimpleTimeZone;->setEndRule(III)V
+Landroid/icu/util/SimpleTimeZone;->setEndRule(IIII)V
+Landroid/icu/util/SimpleTimeZone;->setEndRule(IIIII)V
+Landroid/icu/util/SimpleTimeZone;->setEndRule(IIIIIZ)V
+Landroid/icu/util/SimpleTimeZone;->setEndRule(IIIIZ)V
+Landroid/icu/util/SimpleTimeZone;->setStartRule(III)V
+Landroid/icu/util/SimpleTimeZone;->setStartRule(IIII)V
+Landroid/icu/util/SimpleTimeZone;->setStartRule(IIIII)V
+Landroid/icu/util/SimpleTimeZone;->setStartRule(IIIIZ)V
+Landroid/icu/util/SimpleTimeZone;->setStartYear(I)V
+Landroid/icu/util/SimpleTimeZone;->STANDARD_TIME:I
+Landroid/icu/util/SimpleTimeZone;->startDay:I
+Landroid/icu/util/SimpleTimeZone;->startDayOfWeek:I
+Landroid/icu/util/SimpleTimeZone;->startMode:I
+Landroid/icu/util/SimpleTimeZone;->startMonth:I
+Landroid/icu/util/SimpleTimeZone;->startTime:I
+Landroid/icu/util/SimpleTimeZone;->startTimeMode:I
+Landroid/icu/util/SimpleTimeZone;->startYear:I
+Landroid/icu/util/SimpleTimeZone;->staticMonthLength:[B
+Landroid/icu/util/SimpleTimeZone;->stdRule:Landroid/icu/util/AnnualTimeZoneRule;
+Landroid/icu/util/SimpleTimeZone;->transitionRulesInitialized:Z
+Landroid/icu/util/SimpleTimeZone;->useDaylight:Z
+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
+Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Landroid/icu/text/UnicodeSet;ZZ)V
+Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;ZZ)V
+Landroid/icu/util/StringTokenizer;->checkDelimiters()V
+Landroid/icu/util/StringTokenizer;->countTokens()I
+Landroid/icu/util/StringTokenizer;->DEFAULT_DELIMITERS_:Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/StringTokenizer;->delims:[Z
+Landroid/icu/util/StringTokenizer;->EMPTY_DELIMITER_:Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/StringTokenizer;->getNextDelimiter(I)I
+Landroid/icu/util/StringTokenizer;->getNextNonDelimiter(I)I
+Landroid/icu/util/StringTokenizer;->hasMoreTokens()Z
+Landroid/icu/util/StringTokenizer;->m_coalesceDelimiters_:Z
+Landroid/icu/util/StringTokenizer;->m_delimiters_:Landroid/icu/text/UnicodeSet;
+Landroid/icu/util/StringTokenizer;->m_length_:I
+Landroid/icu/util/StringTokenizer;->m_nextOffset_:I
+Landroid/icu/util/StringTokenizer;->m_returnDelimiters_:Z
+Landroid/icu/util/StringTokenizer;->m_source_:Ljava/lang/String;
+Landroid/icu/util/StringTokenizer;->m_tokenLimit_:[I
+Landroid/icu/util/StringTokenizer;->m_tokenOffset_:I
+Landroid/icu/util/StringTokenizer;->m_tokenSize_:I
+Landroid/icu/util/StringTokenizer;->m_tokenStart_:[I
+Landroid/icu/util/StringTokenizer;->nextToken()Ljava/lang/String;
+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;
+Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->chars:Ljava/lang/StringBuilder;
+Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->equal:Ljava/util/ArrayList;
+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
+Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->length:I
+Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->markRightEdgesFirst(I)I
+Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->next:Landroid/icu/util/StringTrieBuilder$Node;
+Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->register(Landroid/icu/util/StringTrieBuilder;)Landroid/icu/util/StringTrieBuilder$Node;
+Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->setHashCode()V
+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
+Landroid/icu/util/StringTrieBuilder$ListBranchNode;->equal:[Landroid/icu/util/StringTrieBuilder$Node;
+Landroid/icu/util/StringTrieBuilder$ListBranchNode;->length:I
+Landroid/icu/util/StringTrieBuilder$ListBranchNode;->markRightEdgesFirst(I)I
+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
+Landroid/icu/util/StringTrieBuilder$Node;->markRightEdgesFirst(I)I
+Landroid/icu/util/StringTrieBuilder$Node;->offset:I
+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;
+Landroid/icu/util/StringTrieBuilder$ValueNode;->hasValue:Z
+Landroid/icu/util/StringTrieBuilder$ValueNode;->setFinalValue(I)V
+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
+Landroid/icu/util/StringTrieBuilder;->clearImpl()V
+Landroid/icu/util/StringTrieBuilder;->createSuffixNode(Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$ValueNode;
+Landroid/icu/util/StringTrieBuilder;->getMaxBranchLinearSubNodeLength()I
+Landroid/icu/util/StringTrieBuilder;->getMaxLinearMatchLength()I
+Landroid/icu/util/StringTrieBuilder;->getMinLinearMatch()I
+Landroid/icu/util/StringTrieBuilder;->lookupFinalValueNode:Landroid/icu/util/StringTrieBuilder$ValueNode;
+Landroid/icu/util/StringTrieBuilder;->matchNodesCanHaveValues()Z
+Landroid/icu/util/StringTrieBuilder;->nodes:Ljava/util/HashMap;
+Landroid/icu/util/StringTrieBuilder;->registerFinalValue(I)Landroid/icu/util/StringTrieBuilder$ValueNode;
+Landroid/icu/util/StringTrieBuilder;->registerNode(Landroid/icu/util/StringTrieBuilder$Node;)Landroid/icu/util/StringTrieBuilder$Node;
+Landroid/icu/util/StringTrieBuilder;->root:Landroid/icu/util/StringTrieBuilder$Node;
+Landroid/icu/util/StringTrieBuilder;->state:Landroid/icu/util/StringTrieBuilder$State;
+Landroid/icu/util/StringTrieBuilder;->strings:Ljava/lang/StringBuilder;
+Landroid/icu/util/StringTrieBuilder;->write(I)I
+Landroid/icu/util/StringTrieBuilder;->write(II)I
+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
+Landroid/icu/util/STZInfo;->edm:I
+Landroid/icu/util/STZInfo;->edw:I
+Landroid/icu/util/STZInfo;->edwm:I
+Landroid/icu/util/STZInfo;->em:I
+Landroid/icu/util/STZInfo;->et:I
+Landroid/icu/util/STZInfo;->sa:Z
+Landroid/icu/util/STZInfo;->sdm:I
+Landroid/icu/util/STZInfo;->sdw:I
+Landroid/icu/util/STZInfo;->sdwm:I
+Landroid/icu/util/STZInfo;->setEnd(IIIIIZ)V
+Landroid/icu/util/STZInfo;->setStart(IIIIIZ)V
+Landroid/icu/util/STZInfo;->sm:I
+Landroid/icu/util/STZInfo;->st:I
+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;
+Landroid/icu/util/TimeArrayTimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
+Landroid/icu/util/TimeArrayTimeZoneRule;->getPreviousStart(JIIZ)Ljava/util/Date;
+Landroid/icu/util/TimeArrayTimeZoneRule;->getStartTimes()[J
+Landroid/icu/util/TimeArrayTimeZoneRule;->getTimeType()I
+Landroid/icu/util/TimeArrayTimeZoneRule;->getUTC(JII)J
+Landroid/icu/util/TimeArrayTimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
+Landroid/icu/util/TimeArrayTimeZoneRule;->isTransitionRule()Z
+Landroid/icu/util/TimeArrayTimeZoneRule;->startTimes:[J
+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
+Landroid/icu/util/TimeZone;->getFrozenICUTimeZone(Ljava/lang/String;Z)Landroid/icu/util/BasicTimeZone;
+Landroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;IZ)Landroid/icu/util/TimeZone;
+Landroid/icu/util/TimeZone;->GMT_ZONE_ID:Ljava/lang/String;
+Landroid/icu/util/TimeZone;->ID:Ljava/lang/String;
+Landroid/icu/util/TimeZone;->LOGGER:Ljava/util/logging/Logger;
+Landroid/icu/util/TimeZone;->setDefault(Landroid/icu/util/TimeZone;)V
+Landroid/icu/util/TimeZone;->setDefaultTimeZoneType(I)V
+Landroid/icu/util/TimeZone;->setICUDefault(Landroid/icu/util/TimeZone;)V
+Landroid/icu/util/TimeZone;->TZIMPL_CONFIG_ICU:Ljava/lang/String;
+Landroid/icu/util/TimeZone;->TZIMPL_CONFIG_JDK:Ljava/lang/String;
+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
+Landroid/icu/util/TimeZoneRule;->getFinalStart(II)Ljava/util/Date;
+Landroid/icu/util/TimeZoneRule;->getFirstStart(II)Ljava/util/Date;
+Landroid/icu/util/TimeZoneRule;->getName()Ljava/lang/String;
+Landroid/icu/util/TimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
+Landroid/icu/util/TimeZoneRule;->getPreviousStart(JIIZ)Ljava/util/Date;
+Landroid/icu/util/TimeZoneRule;->getRawOffset()I
+Landroid/icu/util/TimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
+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;
+Landroid/icu/util/TimeZoneTransition;->getTime()J
+Landroid/icu/util/TimeZoneTransition;->getTo()Landroid/icu/util/TimeZoneRule;
+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;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->getDefault(Landroid/icu/util/ULocale$Category;)Ljava/util/Locale;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->getSystemProperty(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->hasLocaleCategories()Z
+Landroid/icu/util/ULocale$JDKLocaleHelper;->hasLocaleCategories:Z
+Landroid/icu/util/ULocale$JDKLocaleHelper;->hasScriptsAndUnicodeExtensions:Z
+Landroid/icu/util/ULocale$JDKLocaleHelper;->isOriginalDefaultLocale(Ljava/util/Locale;)Z
+Landroid/icu/util/ULocale$JDKLocaleHelper;->JAVA6_MAPDATA:[[Ljava/lang/String;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mForLanguageTag:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetDefault:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetExtension:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetExtensionKeys:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetScript:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetUnicodeLocaleAttributes:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetUnicodeLocaleKeys:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetUnicodeLocaleType:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->mSetDefault:Ljava/lang/reflect/Method;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->setDefault(Landroid/icu/util/ULocale$Category;Ljava/util/Locale;)V
+Landroid/icu/util/ULocale$JDKLocaleHelper;->toLocale(Landroid/icu/util/ULocale;)Ljava/util/Locale;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->toLocale6(Landroid/icu/util/ULocale;)Ljava/util/Locale;
+Landroid/icu/util/ULocale$JDKLocaleHelper;->toLocale7(Landroid/icu/util/ULocale;)Ljava/util/Locale;
+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
+Landroid/icu/util/ULocale;->ACTUAL_LOCALE:Landroid/icu/util/ULocale$Type;
+Landroid/icu/util/ULocale;->appendTag(Ljava/lang/String;Ljava/lang/StringBuilder;)V
+Landroid/icu/util/ULocale;->base()Landroid/icu/impl/locale/BaseLocale;
+Landroid/icu/util/ULocale;->baseLocale:Landroid/icu/impl/locale/BaseLocale;
+Landroid/icu/util/ULocale;->CACHE:Landroid/icu/impl/SoftCache;
+Landroid/icu/util/ULocale;->CANONICALIZE_MAP:[[Ljava/lang/String;
+Landroid/icu/util/ULocale;->createLikelySubtagsString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->defaultCategoryLocales:[Ljava/util/Locale;
+Landroid/icu/util/ULocale;->defaultCategoryULocales:[Landroid/icu/util/ULocale;
+Landroid/icu/util/ULocale;->defaultLocale:Ljava/util/Locale;
+Landroid/icu/util/ULocale;->defaultULocale:Landroid/icu/util/ULocale;
+Landroid/icu/util/ULocale;->EMPTY_LOCALE:Ljava/util/Locale;
+Landroid/icu/util/ULocale;->EMPTY_STRING:Ljava/lang/String;
+Landroid/icu/util/ULocale;->extensions()Landroid/icu/impl/locale/LocaleExtensions;
+Landroid/icu/util/ULocale;->extensions:Landroid/icu/impl/locale/LocaleExtensions;
+Landroid/icu/util/ULocale;->getDisplayCountryInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayKeywordInternal(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayKeywordValueInternal(Landroid/icu/util/ULocale;Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayLanguageInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Z)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayNameInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayNameWithDialectInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayScriptInContext()Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayScriptInContext(Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayScriptInContext(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayScriptInContext(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayScriptInContextInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayScriptInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getDisplayVariantInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getFallbackString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getInstance(Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/LocaleExtensions;)Landroid/icu/util/ULocale;
+Landroid/icu/util/ULocale;->getRegionForSupplementalData(Landroid/icu/util/ULocale;Z)Ljava/lang/String;
+Landroid/icu/util/ULocale;->getShortestSubtagLength(Ljava/lang/String;)I
+Landroid/icu/util/ULocale;->isEmptyString(Ljava/lang/String;)Z
+Landroid/icu/util/ULocale;->LANG_DIR_STRING:Ljava/lang/String;
+Landroid/icu/util/ULocale;->locale:Ljava/util/Locale;
+Landroid/icu/util/ULocale;->localeID:Ljava/lang/String;
+Landroid/icu/util/ULocale;->LOCALE_ATTRIBUTE_KEY:Ljava/lang/String;
+Landroid/icu/util/ULocale;->lookupLikelySubtags(Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->lscvToID(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/icu/util/ULocale;->minimizeSubtags(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale$Minimize;)Landroid/icu/util/ULocale;
+Landroid/icu/util/ULocale;->nameCache:Landroid/icu/impl/CacheBase;
+Landroid/icu/util/ULocale;->parseAcceptLanguage(Ljava/lang/String;Z)[Landroid/icu/util/ULocale;
+Landroid/icu/util/ULocale;->parseTagString(Ljava/lang/String;[Ljava/lang/String;)I
+Landroid/icu/util/ULocale;->setDefault(Landroid/icu/util/ULocale$Category;Landroid/icu/util/ULocale;)V
+Landroid/icu/util/ULocale;->setDefault(Landroid/icu/util/ULocale;)V
+Landroid/icu/util/ULocale;->UNDEFINED_LANGUAGE:Ljava/lang/String;
+Landroid/icu/util/ULocale;->UNDEFINED_REGION:Ljava/lang/String;
+Landroid/icu/util/ULocale;->UNDEFINED_SCRIPT:Ljava/lang/String;
+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
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->epochOffsetP1:J
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->fromMax:J
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->fromMin:J
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->maxRound:J
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->minRound:J
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->toMax:J
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->toMin:J
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->units:J
+Landroid/icu/util/UniversalTimeScale$TimeScaleData;->unitsRound:J
+Landroid/icu/util/UniversalTimeScale;-><init>()V
+Landroid/icu/util/UniversalTimeScale;->days:J
+Landroid/icu/util/UniversalTimeScale;->EPOCH_OFFSET_MINUS_1_VALUE:I
+Landroid/icu/util/UniversalTimeScale;->fromRangeCheck(JI)Landroid/icu/util/UniversalTimeScale$TimeScaleData;
+Landroid/icu/util/UniversalTimeScale;->getTimeScaleData(I)Landroid/icu/util/UniversalTimeScale$TimeScaleData;
+Landroid/icu/util/UniversalTimeScale;->hours:J
+Landroid/icu/util/UniversalTimeScale;->MAX_ROUND_VALUE:I
+Landroid/icu/util/UniversalTimeScale;->MAX_SCALE_VALUE:I
+Landroid/icu/util/UniversalTimeScale;->microseconds:J
+Landroid/icu/util/UniversalTimeScale;->milliseconds:J
+Landroid/icu/util/UniversalTimeScale;->minutes:J
+Landroid/icu/util/UniversalTimeScale;->MIN_ROUND_VALUE:I
+Landroid/icu/util/UniversalTimeScale;->seconds:J
+Landroid/icu/util/UniversalTimeScale;->ticks:J
+Landroid/icu/util/UniversalTimeScale;->timeScaleTable:[Landroid/icu/util/UniversalTimeScale$TimeScaleData;
+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
+Landroid/icu/util/UResourceBundle;->findTopLevel(I)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->findTopLevel(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->get(I)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->get(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getBaseName()Ljava/lang/String;
+Landroid/icu/util/UResourceBundle;->getBinary()Ljava/nio/ByteBuffer;
+Landroid/icu/util/UResourceBundle;->getBinary([B)[B
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Landroid/icu/util/ULocale;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getInt()I
+Landroid/icu/util/UResourceBundle;->getIntVector()[I
+Landroid/icu/util/UResourceBundle;->getIterator()Landroid/icu/util/UResourceBundleIterator;
+Landroid/icu/util/UResourceBundle;->getLocaleID()Ljava/lang/String;
+Landroid/icu/util/UResourceBundle;->getParent()Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->getRootType(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle$RootType;
+Landroid/icu/util/UResourceBundle;->getSize()I
+Landroid/icu/util/UResourceBundle;->getString(I)Ljava/lang/String;
+Landroid/icu/util/UResourceBundle;->getStringArray()[Ljava/lang/String;
+Landroid/icu/util/UResourceBundle;->getUInt()I
+Landroid/icu/util/UResourceBundle;->getULocale()Landroid/icu/util/ULocale;
+Landroid/icu/util/UResourceBundle;->getVersion()Landroid/icu/util/VersionInfo;
+Landroid/icu/util/UResourceBundle;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->handleGet(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->handleGetKeys()Ljava/util/Enumeration;
+Landroid/icu/util/UResourceBundle;->handleGetObjectImpl(Ljava/lang/String;Landroid/icu/util/UResourceBundle;)Ljava/lang/Object;
+Landroid/icu/util/UResourceBundle;->handleGetStringArray()[Ljava/lang/String;
+Landroid/icu/util/UResourceBundle;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle;
+Landroid/icu/util/UResourceBundle;->INT:I
+Landroid/icu/util/UResourceBundle;->INT_VECTOR:I
+Landroid/icu/util/UResourceBundle;->isTopLevelResource()Z
+Landroid/icu/util/UResourceBundle;->NONE:I
+Landroid/icu/util/UResourceBundle;->resolveObject(Ljava/lang/String;Landroid/icu/util/UResourceBundle;)Ljava/lang/Object;
+Landroid/icu/util/UResourceBundle;->ROOT_CACHE:Ljava/util/Map;
+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
+Landroid/icu/util/VersionInfo;->getTZDataVersion()Ljava/lang/String;
+Landroid/icu/util/VersionInfo;->getVersionString(II)Ljava/lang/String;
+Landroid/icu/util/VersionInfo;->ICU_DATA_VERSION:Landroid/icu/util/VersionInfo;
+Landroid/icu/util/VersionInfo;->ICU_DATA_VERSION_PATH:Ljava/lang/String;
+Landroid/icu/util/VersionInfo;->INVALID_VERSION_NUMBER_:Ljava/lang/String;
+Landroid/icu/util/VersionInfo;->javaVersion()Landroid/icu/util/VersionInfo;
+Landroid/icu/util/VersionInfo;->javaVersion:Landroid/icu/util/VersionInfo;
+Landroid/icu/util/VersionInfo;->LAST_BYTE_MASK_:I
+Landroid/icu/util/VersionInfo;->main([Ljava/lang/String;)V
+Landroid/icu/util/VersionInfo;->MAP_:Ljava/util/concurrent/ConcurrentHashMap;
+Landroid/icu/util/VersionInfo;->m_version_:I
+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
+Landroid/icu/util/VTimeZone;->beginRRULE(Ljava/io/Writer;I)V
+Landroid/icu/util/VTimeZone;->beginZoneProps(Ljava/io/Writer;ZLjava/lang/String;IIJ)V
+Landroid/icu/util/VTimeZone;->COLON:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->COMMA:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->create(Ljava/io/Reader;)Landroid/icu/util/VTimeZone;
+Landroid/icu/util/VTimeZone;->create(Ljava/lang/String;)Landroid/icu/util/VTimeZone;
+Landroid/icu/util/VTimeZone;->createRuleByRDATE(Ljava/lang/String;IIJLjava/util/List;I)Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/VTimeZone;->createRuleByRRULE(Ljava/lang/String;IIJLjava/util/List;I)Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/VTimeZone;->DEF_DSTSAVINGS:I
+Landroid/icu/util/VTimeZone;->DEF_TZSTARTTIME:J
+Landroid/icu/util/VTimeZone;->endZoneProps(Ljava/io/Writer;Z)V
+Landroid/icu/util/VTimeZone;->EQUALS_SIGN:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ERR:I
+Landroid/icu/util/VTimeZone;->getDateTimeString(J)Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->getDefaultTZName(Ljava/lang/String;Z)Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->getLastModified()Ljava/util/Date;
+Landroid/icu/util/VTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/VTimeZone;->getOffsetFromLocal(JII[I)V
+Landroid/icu/util/VTimeZone;->getPreviousTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+Landroid/icu/util/VTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/VTimeZone;->getTimeZoneRules(J)[Landroid/icu/util/TimeZoneRule;
+Landroid/icu/util/VTimeZone;->getTZURL()Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->getUTCDateTimeString(J)Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->hasEquivalentTransitions(Landroid/icu/util/TimeZone;JJ)Z
+Landroid/icu/util/VTimeZone;->ICAL_BEGIN:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_BEGIN_VTIMEZONE:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_BYDAY:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_BYMONTH:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_BYMONTHDAY:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_DAYLIGHT:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_DOW_NAMES:[Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_DTSTART:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_END:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_END_VTIMEZONE:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_FREQ:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_LASTMOD:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_RDATE:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_RRULE:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_STANDARD:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_TZID:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_TZNAME:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_TZOFFSETFROM:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_TZOFFSETTO:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_TZURL:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_UNTIL:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_VTIMEZONE:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICAL_YEARLY:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICU_TZINFO_PROP:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->ICU_TZVERSION:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->INI:I
+Landroid/icu/util/VTimeZone;->isEquivalentDateRule(IIILandroid/icu/util/DateTimeRule;)Z
+Landroid/icu/util/VTimeZone;->isFrozen:Z
+Landroid/icu/util/VTimeZone;->lastmod:Ljava/util/Date;
+Landroid/icu/util/VTimeZone;->load(Ljava/io/Reader;)Z
+Landroid/icu/util/VTimeZone;->MAX_TIME:J
+Landroid/icu/util/VTimeZone;->millisToOffset(I)Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->MIN_TIME:J
+Landroid/icu/util/VTimeZone;->MONTHLENGTH:[I
+Landroid/icu/util/VTimeZone;->NEWLINE:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->numToString(II)Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->offsetStrToMillis(Ljava/lang/String;)I
+Landroid/icu/util/VTimeZone;->olsonzid:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->parse()Z
+Landroid/icu/util/VTimeZone;->parseDateTimeString(Ljava/lang/String;I)J
+Landroid/icu/util/VTimeZone;->parseRRULE(Ljava/lang/String;[J)[I
+Landroid/icu/util/VTimeZone;->SEMICOLON:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->setLastModified(Ljava/util/Date;)V
+Landroid/icu/util/VTimeZone;->setTZURL(Ljava/lang/String;)V
+Landroid/icu/util/VTimeZone;->toWallTimeRule(Landroid/icu/util/DateTimeRule;II)Landroid/icu/util/DateTimeRule;
+Landroid/icu/util/VTimeZone;->tz:Landroid/icu/util/BasicTimeZone;
+Landroid/icu/util/VTimeZone;->TZI:I
+Landroid/icu/util/VTimeZone;->tzurl:Ljava/lang/String;
+Landroid/icu/util/VTimeZone;->VTZ:I
+Landroid/icu/util/VTimeZone;->vtzlines:Ljava/util/List;
+Landroid/icu/util/VTimeZone;->write(Ljava/io/Writer;)V
+Landroid/icu/util/VTimeZone;->write(Ljava/io/Writer;J)V
+Landroid/icu/util/VTimeZone;->writeFinalRule(Ljava/io/Writer;ZLandroid/icu/util/AnnualTimeZoneRule;IIJ)V
+Landroid/icu/util/VTimeZone;->writeFooter(Ljava/io/Writer;)V
+Landroid/icu/util/VTimeZone;->writeHeader(Ljava/io/Writer;)V
+Landroid/icu/util/VTimeZone;->writeSimple(Ljava/io/Writer;J)V
+Landroid/icu/util/VTimeZone;->writeZone(Ljava/io/Writer;Landroid/icu/util/BasicTimeZone;[Ljava/lang/String;)V
+Landroid/icu/util/VTimeZone;->writeZonePropsByDOM(Ljava/io/Writer;ZLjava/lang/String;IIIIJJ)V
+Landroid/icu/util/VTimeZone;->writeZonePropsByDOW(Ljava/io/Writer;ZLjava/lang/String;IIIIIJJ)V
+Landroid/icu/util/VTimeZone;->writeZonePropsByDOW_GEQ_DOM(Ljava/io/Writer;ZLjava/lang/String;IIIIIJJ)V
+Landroid/icu/util/VTimeZone;->writeZonePropsByDOW_GEQ_DOM_sub(Ljava/io/Writer;IIIIJI)V
+Landroid/icu/util/VTimeZone;->writeZonePropsByDOW_LEQ_DOM(Ljava/io/Writer;ZLjava/lang/String;IIIIIJJ)V
+Landroid/icu/util/VTimeZone;->writeZonePropsByTime(Ljava/io/Writer;ZLjava/lang/String;IIJZ)V
+Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;->mEnabled:Z
+Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;->mRevoked:Z
+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
+Landroid/inputmethodservice/CompactExtractEditLayout;->applyFractionInt(II)I
+Landroid/inputmethodservice/CompactExtractEditLayout;->applyProportionalLayout(II)V
+Landroid/inputmethodservice/CompactExtractEditLayout;->mInputExtractAccessories:Landroid/view/View;
+Landroid/inputmethodservice/CompactExtractEditLayout;->mInputExtractAction:Landroid/view/View;
+Landroid/inputmethodservice/CompactExtractEditLayout;->mInputExtractEditText:Landroid/view/View;
+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;
+Landroid/inputmethodservice/ExtractEditText;->deleteText_internal(II)V
+Landroid/inputmethodservice/ExtractEditText;->isInExtractedMode()Z
+Landroid/inputmethodservice/ExtractEditText;->mIME:Landroid/inputmethodservice/InputMethodService;
+Landroid/inputmethodservice/ExtractEditText;->mSettingExtractedText:I
+Landroid/inputmethodservice/ExtractEditText;->replaceText_internal(IILjava/lang/CharSequence;)V
+Landroid/inputmethodservice/ExtractEditText;->setCursorPosition_internal(II)V
+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;
+Landroid/inputmethodservice/InputMethodService$SettingsObserver;->mShowImeWithHardKeyboard:I
+Landroid/inputmethodservice/InputMethodService$SettingsObserver;->unregister()V
+Landroid/inputmethodservice/InputMethodService;->BACK_DISPOSITION_MAX:I
+Landroid/inputmethodservice/InputMethodService;->BACK_DISPOSITION_MIN:I
+Landroid/inputmethodservice/InputMethodService;->clearInsetOfPreviousIme()V
+Landroid/inputmethodservice/InputMethodService;->DEBUG:Z
+Landroid/inputmethodservice/InputMethodService;->dispatchOnShowInputRequested(IZ)Z
+Landroid/inputmethodservice/InputMethodService;->doFinishInput()V
+Landroid/inputmethodservice/InputMethodService;->doHideWindow()V
+Landroid/inputmethodservice/InputMethodService;->doMovementKey(ILandroid/view/KeyEvent;I)Z
+Landroid/inputmethodservice/InputMethodService;->doStartInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;Z)V
+Landroid/inputmethodservice/InputMethodService;->exposeContent(Landroid/view/inputmethod/InputContentInfo;Landroid/view/inputmethod/InputConnection;)V
+Landroid/inputmethodservice/InputMethodService;->finishViews()V
+Landroid/inputmethodservice/InputMethodService;->getExtractEditTextIfVisible()Landroid/inputmethodservice/ExtractEditText;
+Landroid/inputmethodservice/InputMethodService;->getIconForImeAction(I)I
+Landroid/inputmethodservice/InputMethodService;->handleBack(Z)Z
+Landroid/inputmethodservice/InputMethodService;->IME_ACTIVE:I
+Landroid/inputmethodservice/InputMethodService;->IME_VISIBLE:I
+Landroid/inputmethodservice/InputMethodService;->initialize()V
+Landroid/inputmethodservice/InputMethodService;->initViews()V
+Landroid/inputmethodservice/InputMethodService;->mActionClickListener:Landroid/view/View$OnClickListener;
+Landroid/inputmethodservice/InputMethodService;->mapToImeWindowStatus(Z)I
+Landroid/inputmethodservice/InputMethodService;->mBackDisposition:I
+Landroid/inputmethodservice/InputMethodService;->mCandidatesFrame:Landroid/widget/FrameLayout;
+Landroid/inputmethodservice/InputMethodService;->mCandidatesViewStarted:Z
+Landroid/inputmethodservice/InputMethodService;->mCandidatesVisibility:I
+Landroid/inputmethodservice/InputMethodService;->mCurCompletions:[Landroid/view/inputmethod/CompletionInfo;
+Landroid/inputmethodservice/InputMethodService;->mExtractAccessories:Landroid/view/ViewGroup;
+Landroid/inputmethodservice/InputMethodService;->mExtractAction:Landroid/view/View;
+Landroid/inputmethodservice/InputMethodService;->mExtractedText:Landroid/view/inputmethod/ExtractedText;
+Landroid/inputmethodservice/InputMethodService;->mExtractedToken:I
+Landroid/inputmethodservice/InputMethodService;->mExtractFrame:Landroid/widget/FrameLayout;
+Landroid/inputmethodservice/InputMethodService;->mExtractViewHidden:Z
+Landroid/inputmethodservice/InputMethodService;->mFullscreenApplied:Z
+Landroid/inputmethodservice/InputMethodService;->mFullscreenArea:Landroid/view/ViewGroup;
+Landroid/inputmethodservice/InputMethodService;->mImm:Landroid/view/inputmethod/InputMethodManager;
+Landroid/inputmethodservice/InputMethodService;->mInflater:Landroid/view/LayoutInflater;
+Landroid/inputmethodservice/InputMethodService;->mInitialized:Z
+Landroid/inputmethodservice/InputMethodService;->mInputBinding:Landroid/view/inputmethod/InputBinding;
+Landroid/inputmethodservice/InputMethodService;->mInputConnection:Landroid/view/inputmethod/InputConnection;
+Landroid/inputmethodservice/InputMethodService;->mInputEditorInfo:Landroid/view/inputmethod/EditorInfo;
+Landroid/inputmethodservice/InputMethodService;->mInputFrame:Landroid/widget/FrameLayout;
+Landroid/inputmethodservice/InputMethodService;->mInputStarted:Z
+Landroid/inputmethodservice/InputMethodService;->mInputView:Landroid/view/View;
+Landroid/inputmethodservice/InputMethodService;->mInputViewStarted:Z
+Landroid/inputmethodservice/InputMethodService;->mInsetsComputer:Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;
+Landroid/inputmethodservice/InputMethodService;->mInShowWindow:Z
+Landroid/inputmethodservice/InputMethodService;->mIsFullscreen:Z
+Landroid/inputmethodservice/InputMethodService;->mIsInputViewShown:Z
+Landroid/inputmethodservice/InputMethodService;->mLastShowInputRequested:Z
+Landroid/inputmethodservice/InputMethodService;->MOVEMENT_DOWN:I
+Landroid/inputmethodservice/InputMethodService;->MOVEMENT_UP:I
+Landroid/inputmethodservice/InputMethodService;->mShouldClearInsetOfPreviousIme:Z
+Landroid/inputmethodservice/InputMethodService;->mShowInputFlags:I
+Landroid/inputmethodservice/InputMethodService;->mShowInputRequested:Z
+Landroid/inputmethodservice/InputMethodService;->mStartedInputConnection:Landroid/view/inputmethod/InputConnection;
+Landroid/inputmethodservice/InputMethodService;->mStartInputToken:Landroid/os/IBinder;
+Landroid/inputmethodservice/InputMethodService;->mStatusIcon:I
+Landroid/inputmethodservice/InputMethodService;->mThemeAttrs:Landroid/content/res/TypedArray;
+Landroid/inputmethodservice/InputMethodService;->mTmpLocation:[I
+Landroid/inputmethodservice/InputMethodService;->mToken:Landroid/os/IBinder;
+Landroid/inputmethodservice/InputMethodService;->mWindow:Landroid/inputmethodservice/SoftInputWindow;
+Landroid/inputmethodservice/InputMethodService;->mWindowAdded:Z
+Landroid/inputmethodservice/InputMethodService;->mWindowCreated:Z
+Landroid/inputmethodservice/InputMethodService;->mWindowVisible:Z
+Landroid/inputmethodservice/InputMethodService;->mWindowWasVisible:Z
+Landroid/inputmethodservice/InputMethodService;->onToggleSoftInput(II)V
+Landroid/inputmethodservice/InputMethodService;->reportExtractedMovement(II)V
+Landroid/inputmethodservice/InputMethodService;->resetStateForNewConfiguration()V
+Landroid/inputmethodservice/InputMethodService;->showWindowInner(Z)V
+Landroid/inputmethodservice/InputMethodService;->startExtractingText(Z)V
+Landroid/inputmethodservice/InputMethodService;->TAG:Ljava/lang/String;
+Landroid/inputmethodservice/InputMethodService;->updateCandidatesVisibility(Z)V
+Landroid/inputmethodservice/InputMethodService;->updateExtractFrameVisibility()V
+Landroid/inputmethodservice/Keyboard$Key;->keyboard:Landroid/inputmethodservice/Keyboard;
+Landroid/inputmethodservice/Keyboard$Key;->KEY_STATE_NORMAL:[I
+Landroid/inputmethodservice/Keyboard$Key;->KEY_STATE_NORMAL_OFF:[I
+Landroid/inputmethodservice/Keyboard$Key;->KEY_STATE_NORMAL_ON:[I
+Landroid/inputmethodservice/Keyboard$Key;->KEY_STATE_PRESSED:[I
+Landroid/inputmethodservice/Keyboard$Key;->KEY_STATE_PRESSED_OFF:[I
+Landroid/inputmethodservice/Keyboard$Key;->KEY_STATE_PRESSED_ON:[I
+Landroid/inputmethodservice/Keyboard$Key;->parseCSV(Ljava/lang/String;)[I
+Landroid/inputmethodservice/Keyboard$Row;->mKeys:Ljava/util/ArrayList;
+Landroid/inputmethodservice/Keyboard$Row;->parent:Landroid/inputmethodservice/Keyboard;
+Landroid/inputmethodservice/Keyboard;->computeNearestNeighbors()V
+Landroid/inputmethodservice/Keyboard;->getDimensionOrFraction(Landroid/content/res/TypedArray;III)I
+Landroid/inputmethodservice/Keyboard;->getShiftKeyIndices()[I
+Landroid/inputmethodservice/Keyboard;->GRID_HEIGHT:I
+Landroid/inputmethodservice/Keyboard;->GRID_SIZE:I
+Landroid/inputmethodservice/Keyboard;->GRID_WIDTH:I
+Landroid/inputmethodservice/Keyboard;->loadKeyboard(Landroid/content/Context;Landroid/content/res/XmlResourceParser;)V
+Landroid/inputmethodservice/Keyboard;->mCellHeight:I
+Landroid/inputmethodservice/Keyboard;->mCellWidth:I
+Landroid/inputmethodservice/Keyboard;->mDefaultHeight:I
+Landroid/inputmethodservice/Keyboard;->mDefaultHorizontalGap:I
+Landroid/inputmethodservice/Keyboard;->mDefaultVerticalGap:I
+Landroid/inputmethodservice/Keyboard;->mDefaultWidth:I
+Landroid/inputmethodservice/Keyboard;->mDisplayHeight:I
+Landroid/inputmethodservice/Keyboard;->mDisplayWidth:I
+Landroid/inputmethodservice/Keyboard;->mGridNeighbors:[[I
+Landroid/inputmethodservice/Keyboard;->mKeyboardMode:I
+Landroid/inputmethodservice/Keyboard;->mKeyHeight:I
+Landroid/inputmethodservice/Keyboard;->mKeys:Ljava/util/List;
+Landroid/inputmethodservice/Keyboard;->mKeyWidth:I
+Landroid/inputmethodservice/Keyboard;->mLabel:Ljava/lang/CharSequence;
+Landroid/inputmethodservice/Keyboard;->mProximityThreshold:I
+Landroid/inputmethodservice/Keyboard;->mShifted:Z
+Landroid/inputmethodservice/Keyboard;->mShiftKeyIndices:[I
+Landroid/inputmethodservice/Keyboard;->mShiftKeys:[Landroid/inputmethodservice/Keyboard$Key;
+Landroid/inputmethodservice/Keyboard;->parseKeyboardAttributes(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)V
+Landroid/inputmethodservice/Keyboard;->rows:Ljava/util/ArrayList;
+Landroid/inputmethodservice/Keyboard;->SEARCH_DISTANCE:F
+Landroid/inputmethodservice/Keyboard;->skipToEndOfRow(Landroid/content/res/XmlResourceParser;)V
+Landroid/inputmethodservice/Keyboard;->TAG:Ljava/lang/String;
+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
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->clear()V
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->computeCurrentVelocity(I)V
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->computeCurrentVelocity(IF)V
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->getXVelocity()F
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->getYVelocity()F
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->LONGEST_PAST_TIME:I
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->mPastTime:[J
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->mPastX:[F
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->mPastY:[F
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->mXVelocity:F
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->mYVelocity:F
+Landroid/inputmethodservice/KeyboardView$SwipeTracker;->NUM_PAST:I
+Landroid/inputmethodservice/KeyboardView;->adjustCase(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/inputmethodservice/KeyboardView;->checkMultiTap(JI)V
+Landroid/inputmethodservice/KeyboardView;->computeProximityThreshold(Landroid/inputmethodservice/Keyboard;)V
+Landroid/inputmethodservice/KeyboardView;->DEBOUNCE_TIME:I
+Landroid/inputmethodservice/KeyboardView;->DEBUG:Z
+Landroid/inputmethodservice/KeyboardView;->DELAY_AFTER_PREVIEW:I
+Landroid/inputmethodservice/KeyboardView;->DELAY_BEFORE_PREVIEW:I
+Landroid/inputmethodservice/KeyboardView;->detectAndSendKey(IIIJ)V
+Landroid/inputmethodservice/KeyboardView;->dismissPopupKeyboard()V
+Landroid/inputmethodservice/KeyboardView;->getKeyIndices(II[I)I
+Landroid/inputmethodservice/KeyboardView;->getPreviewText(Landroid/inputmethodservice/Keyboard$Key;)Ljava/lang/CharSequence;
+Landroid/inputmethodservice/KeyboardView;->initGestureDetector()V
+Landroid/inputmethodservice/KeyboardView;->KEY_DELETE:[I
+Landroid/inputmethodservice/KeyboardView;->LONGPRESS_TIMEOUT:I
+Landroid/inputmethodservice/KeyboardView;->LONG_PRESSABLE_STATE_SET:[I
+Landroid/inputmethodservice/KeyboardView;->mAbortKey:Z
+Landroid/inputmethodservice/KeyboardView;->mAccessibilityManager:Landroid/view/accessibility/AccessibilityManager;
+Landroid/inputmethodservice/KeyboardView;->mAudioManager:Landroid/media/AudioManager;
+Landroid/inputmethodservice/KeyboardView;->MAX_NEARBY_KEYS:I
+Landroid/inputmethodservice/KeyboardView;->mBackgroundDimAmount:F
+Landroid/inputmethodservice/KeyboardView;->mBuffer:Landroid/graphics/Bitmap;
+Landroid/inputmethodservice/KeyboardView;->mCanvas:Landroid/graphics/Canvas;
+Landroid/inputmethodservice/KeyboardView;->mClipRegion:Landroid/graphics/Rect;
+Landroid/inputmethodservice/KeyboardView;->mCoordinates:[I
+Landroid/inputmethodservice/KeyboardView;->mCurrentKey:I
+Landroid/inputmethodservice/KeyboardView;->mCurrentKeyIndex:I
+Landroid/inputmethodservice/KeyboardView;->mCurrentKeyTime:J
+Landroid/inputmethodservice/KeyboardView;->mDirtyRect:Landroid/graphics/Rect;
+Landroid/inputmethodservice/KeyboardView;->mDisambiguateSwipe:Z
+Landroid/inputmethodservice/KeyboardView;->mDistances:[I
+Landroid/inputmethodservice/KeyboardView;->mDownKey:I
+Landroid/inputmethodservice/KeyboardView;->mDownTime:J
+Landroid/inputmethodservice/KeyboardView;->mDrawPending:Z
+Landroid/inputmethodservice/KeyboardView;->mGestureDetector:Landroid/view/GestureDetector;
+Landroid/inputmethodservice/KeyboardView;->mHandler:Landroid/os/Handler;
+Landroid/inputmethodservice/KeyboardView;->mHeadsetRequiredToHearPasswordsAnnounced:Z
+Landroid/inputmethodservice/KeyboardView;->mInMultiTap:Z
+Landroid/inputmethodservice/KeyboardView;->mInvalidatedKey:Landroid/inputmethodservice/Keyboard$Key;
+Landroid/inputmethodservice/KeyboardView;->mKeyboard:Landroid/inputmethodservice/Keyboard;
+Landroid/inputmethodservice/KeyboardView;->mKeyboardActionListener:Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;
+Landroid/inputmethodservice/KeyboardView;->mKeyboardChanged:Z
+Landroid/inputmethodservice/KeyboardView;->mKeyIndices:[I
+Landroid/inputmethodservice/KeyboardView;->mKeys:[Landroid/inputmethodservice/Keyboard$Key;
+Landroid/inputmethodservice/KeyboardView;->mKeyTextColor:I
+Landroid/inputmethodservice/KeyboardView;->mKeyTextSize:I
+Landroid/inputmethodservice/KeyboardView;->mLastCodeX:I
+Landroid/inputmethodservice/KeyboardView;->mLastCodeY:I
+Landroid/inputmethodservice/KeyboardView;->mLastKey:I
+Landroid/inputmethodservice/KeyboardView;->mLastKeyTime:J
+Landroid/inputmethodservice/KeyboardView;->mLastMoveTime:J
+Landroid/inputmethodservice/KeyboardView;->mLastSentIndex:I
+Landroid/inputmethodservice/KeyboardView;->mLastTapTime:J
+Landroid/inputmethodservice/KeyboardView;->mLastX:I
+Landroid/inputmethodservice/KeyboardView;->mLastY:I
+Landroid/inputmethodservice/KeyboardView;->mMiniKeyboard:Landroid/inputmethodservice/KeyboardView;
+Landroid/inputmethodservice/KeyboardView;->mMiniKeyboardCache:Ljava/util/Map;
+Landroid/inputmethodservice/KeyboardView;->mMiniKeyboardContainer:Landroid/view/View;
+Landroid/inputmethodservice/KeyboardView;->mMiniKeyboardOffsetX:I
+Landroid/inputmethodservice/KeyboardView;->mMiniKeyboardOffsetY:I
+Landroid/inputmethodservice/KeyboardView;->mMiniKeyboardOnScreen:Z
+Landroid/inputmethodservice/KeyboardView;->mOldPointerCount:I
+Landroid/inputmethodservice/KeyboardView;->mOldPointerX:F
+Landroid/inputmethodservice/KeyboardView;->mOldPointerY:F
+Landroid/inputmethodservice/KeyboardView;->mPadding:Landroid/graphics/Rect;
+Landroid/inputmethodservice/KeyboardView;->mPaint:Landroid/graphics/Paint;
+Landroid/inputmethodservice/KeyboardView;->mPopupKeyboard:Landroid/widget/PopupWindow;
+Landroid/inputmethodservice/KeyboardView;->mPopupLayout:I
+Landroid/inputmethodservice/KeyboardView;->mPopupParent:Landroid/view/View;
+Landroid/inputmethodservice/KeyboardView;->mPopupPreviewX:I
+Landroid/inputmethodservice/KeyboardView;->mPopupPreviewY:I
+Landroid/inputmethodservice/KeyboardView;->mPopupX:I
+Landroid/inputmethodservice/KeyboardView;->mPopupY:I
+Landroid/inputmethodservice/KeyboardView;->mPossiblePoly:Z
+Landroid/inputmethodservice/KeyboardView;->mPreviewCentered:Z
+Landroid/inputmethodservice/KeyboardView;->mPreviewHeight:I
+Landroid/inputmethodservice/KeyboardView;->mPreviewLabel:Ljava/lang/StringBuilder;
+Landroid/inputmethodservice/KeyboardView;->mPreviewOffset:I
+Landroid/inputmethodservice/KeyboardView;->mPreviewPopup:Landroid/widget/PopupWindow;
+Landroid/inputmethodservice/KeyboardView;->mPreviewTextSizeLarge:I
+Landroid/inputmethodservice/KeyboardView;->mProximityCorrectOn:Z
+Landroid/inputmethodservice/KeyboardView;->mProximityThreshold:I
+Landroid/inputmethodservice/KeyboardView;->mRepeatKeyIndex:I
+Landroid/inputmethodservice/KeyboardView;->MSG_LONGPRESS:I
+Landroid/inputmethodservice/KeyboardView;->MSG_REMOVE_PREVIEW:I
+Landroid/inputmethodservice/KeyboardView;->MSG_REPEAT:I
+Landroid/inputmethodservice/KeyboardView;->MSG_SHOW_PREVIEW:I
+Landroid/inputmethodservice/KeyboardView;->mShadowColor:I
+Landroid/inputmethodservice/KeyboardView;->mShadowRadius:F
+Landroid/inputmethodservice/KeyboardView;->mShowPreview:Z
+Landroid/inputmethodservice/KeyboardView;->mShowTouchPoints:Z
+Landroid/inputmethodservice/KeyboardView;->mStartX:I
+Landroid/inputmethodservice/KeyboardView;->mStartY:I
+Landroid/inputmethodservice/KeyboardView;->mSwipeThreshold:I
+Landroid/inputmethodservice/KeyboardView;->mSwipeTracker:Landroid/inputmethodservice/KeyboardView$SwipeTracker;
+Landroid/inputmethodservice/KeyboardView;->mTapCount:I
+Landroid/inputmethodservice/KeyboardView;->MULTITAP_INTERVAL:I
+Landroid/inputmethodservice/KeyboardView;->mVerticalCorrection:I
+Landroid/inputmethodservice/KeyboardView;->NOT_A_KEY:I
+Landroid/inputmethodservice/KeyboardView;->onBufferDraw()V
+Landroid/inputmethodservice/KeyboardView;->onModifiedTouchEvent(Landroid/view/MotionEvent;Z)Z
+Landroid/inputmethodservice/KeyboardView;->removeMessages()V
+Landroid/inputmethodservice/KeyboardView;->REPEAT_INTERVAL:I
+Landroid/inputmethodservice/KeyboardView;->REPEAT_START_DELAY:I
+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
+Landroid/inputmethodservice/SoftInputWindow;->mBounds:Landroid/graphics/Rect;
+Landroid/inputmethodservice/SoftInputWindow;->mCallback:Landroid/inputmethodservice/SoftInputWindow$Callback;
+Landroid/inputmethodservice/SoftInputWindow;->mDispatcherState:Landroid/view/KeyEvent$DispatcherState;
+Landroid/inputmethodservice/SoftInputWindow;->mGravity:I
+Landroid/inputmethodservice/SoftInputWindow;->mKeyEventCallback:Landroid/view/KeyEvent$Callback;
+Landroid/inputmethodservice/SoftInputWindow;->mName:Ljava/lang/String;
+Landroid/inputmethodservice/SoftInputWindow;->mTakesFocus:Z
+Landroid/inputmethodservice/SoftInputWindow;->mWindowType:I
+Landroid/inputmethodservice/SoftInputWindow;->setGravity(I)V
+Landroid/inputmethodservice/SoftInputWindow;->setToken(Landroid/os/IBinder;)V
+Landroid/inputmethodservice/SoftInputWindow;->updateWidthHeight(Landroid/view/WindowManager$LayoutParams;)V
+Landroid/location/Address;->mAddressLines:Ljava/util/HashMap;
+Landroid/location/Address;->mAdminArea:Ljava/lang/String;
+Landroid/location/Address;->mCountryCode:Ljava/lang/String;
+Landroid/location/Address;->mCountryName:Ljava/lang/String;
+Landroid/location/Address;->mExtras:Landroid/os/Bundle;
+Landroid/location/Address;->mFeatureName:Ljava/lang/String;
+Landroid/location/Address;->mHasLatitude:Z
+Landroid/location/Address;->mHasLongitude:Z
+Landroid/location/Address;->mLatitude:D
+Landroid/location/Address;->mLocale:Ljava/util/Locale;
+Landroid/location/Address;->mLocality:Ljava/lang/String;
+Landroid/location/Address;->mLongitude:D
+Landroid/location/Address;->mMaxAddressLineIndex:I
+Landroid/location/Address;->mPhone:Ljava/lang/String;
+Landroid/location/Address;->mPostalCode:Ljava/lang/String;
+Landroid/location/Address;->mPremises:Ljava/lang/String;
+Landroid/location/Address;->mSubAdminArea:Ljava/lang/String;
+Landroid/location/Address;->mSubLocality:Ljava/lang/String;
+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
+Landroid/location/Country;->COUNTRY_SOURCE_LOCATION:I
+Landroid/location/Country;->COUNTRY_SOURCE_NETWORK:I
+Landroid/location/Country;->COUNTRY_SOURCE_SIM:I
+Landroid/location/Country;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/location/Country;->equalsIgnoreSource(Landroid/location/Country;)Z
+Landroid/location/Country;->getTimestamp()J
+Landroid/location/Country;->mCountryIso:Ljava/lang/String;
+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
+Landroid/location/Criteria;->mBearingRequired:Z
+Landroid/location/Criteria;->mCostAllowed:Z
+Landroid/location/Criteria;->mHorizontalAccuracy:I
+Landroid/location/Criteria;->mPowerRequirement:I
+Landroid/location/Criteria;->mSpeedAccuracy:I
+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
+Landroid/location/FusedBatchOptions;->getMaxPowerAllocationInMW()D
+Landroid/location/FusedBatchOptions;->getPeriodInNS()J
+Landroid/location/FusedBatchOptions;->getSmallestDisplacementMeters()F
+Landroid/location/FusedBatchOptions;->getSourcesToUse()I
+Landroid/location/FusedBatchOptions;->isFlagSet(I)Z
+Landroid/location/FusedBatchOptions;->isSourceToUseSet(I)Z
+Landroid/location/FusedBatchOptions;->mFlags:I
+Landroid/location/FusedBatchOptions;->mMaxPowerAllocationInMW:D
+Landroid/location/FusedBatchOptions;->mPeriodInNS:J
+Landroid/location/FusedBatchOptions;->mSmallestDisplacementMeters:F
+Landroid/location/FusedBatchOptions;->mSourcesToUse:I
+Landroid/location/FusedBatchOptions;->resetFlag(I)V
+Landroid/location/FusedBatchOptions;->resetSourceToUse(I)V
+Landroid/location/FusedBatchOptions;->setFlag(I)V
+Landroid/location/FusedBatchOptions;->setMaxPowerAllocationInMW(D)V
+Landroid/location/FusedBatchOptions;->setPeriodInNS(J)V
+Landroid/location/FusedBatchOptions;->setSmallestDisplacementMeters(F)V
+Landroid/location/FusedBatchOptions;->setSourceToUse(I)V
+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
+Landroid/location/Geofence;->checkType(I)V
+Landroid/location/Geofence;->createCircle(DDF)Landroid/location/Geofence;
+Landroid/location/Geofence;->getLatitude()D
+Landroid/location/Geofence;->getLongitude()D
+Landroid/location/Geofence;->getRadius()F
+Landroid/location/Geofence;->getType()I
+Landroid/location/Geofence;->mLatitude:D
+Landroid/location/Geofence;->mLongitude:D
+Landroid/location/Geofence;->mRadius:F
+Landroid/location/Geofence;->mType:I
+Landroid/location/Geofence;->typeToString(I)Ljava/lang/String;
+Landroid/location/Geofence;->TYPE_HORIZONTAL_CIRCLE:I
+Landroid/location/GnssClock;->HAS_BIAS:I
+Landroid/location/GnssClock;->HAS_BIAS_UNCERTAINTY:I
+Landroid/location/GnssClock;->HAS_DRIFT:I
+Landroid/location/GnssClock;->HAS_DRIFT_UNCERTAINTY:I
+Landroid/location/GnssClock;->HAS_FULL_BIAS:I
+Landroid/location/GnssClock;->HAS_LEAP_SECOND:I
+Landroid/location/GnssClock;->HAS_NO_FLAGS:I
+Landroid/location/GnssClock;->HAS_TIME_UNCERTAINTY:I
+Landroid/location/GnssClock;->initialize()V
+Landroid/location/GnssClock;->isFlagSet(I)Z
+Landroid/location/GnssClock;->mBiasNanos:D
+Landroid/location/GnssClock;->mBiasUncertaintyNanos:D
+Landroid/location/GnssClock;->mDriftNanosPerSecond:D
+Landroid/location/GnssClock;->mDriftUncertaintyNanosPerSecond:D
+Landroid/location/GnssClock;->mFlags:I
+Landroid/location/GnssClock;->mFullBiasNanos:J
+Landroid/location/GnssClock;->mHardwareClockDiscontinuityCount:I
+Landroid/location/GnssClock;->mLeapSecond:I
+Landroid/location/GnssClock;->mTimeNanos:J
+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;
+Landroid/location/GnssMeasurement;->HAS_AUTOMATIC_GAIN_CONTROL:I
+Landroid/location/GnssMeasurement;->HAS_CARRIER_CYCLES:I
+Landroid/location/GnssMeasurement;->HAS_CARRIER_FREQUENCY:I
+Landroid/location/GnssMeasurement;->HAS_CARRIER_PHASE:I
+Landroid/location/GnssMeasurement;->HAS_CARRIER_PHASE_UNCERTAINTY:I
+Landroid/location/GnssMeasurement;->HAS_NO_FLAGS:I
+Landroid/location/GnssMeasurement;->HAS_SNR:I
+Landroid/location/GnssMeasurement;->initialize()V
+Landroid/location/GnssMeasurement;->isFlagSet(I)Z
+Landroid/location/GnssMeasurement;->mAccumulatedDeltaRangeMeters:D
+Landroid/location/GnssMeasurement;->mAccumulatedDeltaRangeState:I
+Landroid/location/GnssMeasurement;->mAccumulatedDeltaRangeUncertaintyMeters:D
+Landroid/location/GnssMeasurement;->mAutomaticGainControlLevelInDb:D
+Landroid/location/GnssMeasurement;->mCarrierCycles:J
+Landroid/location/GnssMeasurement;->mCarrierFrequencyHz:F
+Landroid/location/GnssMeasurement;->mCarrierPhase:D
+Landroid/location/GnssMeasurement;->mCarrierPhaseUncertainty:D
+Landroid/location/GnssMeasurement;->mCn0DbHz:D
+Landroid/location/GnssMeasurement;->mConstellationType:I
+Landroid/location/GnssMeasurement;->mFlags:I
+Landroid/location/GnssMeasurement;->mMultipathIndicator:I
+Landroid/location/GnssMeasurement;->mPseudorangeRateMetersPerSecond:D
+Landroid/location/GnssMeasurement;->mPseudorangeRateUncertaintyMetersPerSecond:D
+Landroid/location/GnssMeasurement;->mReceivedSvTimeNanos:J
+Landroid/location/GnssMeasurement;->mReceivedSvTimeUncertaintyNanos:J
+Landroid/location/GnssMeasurement;->mSnrInDb:D
+Landroid/location/GnssMeasurement;->mState:I
+Landroid/location/GnssMeasurement;->mSvid:I
+Landroid/location/GnssMeasurement;->mTimeOffsetNanos:D
+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;
+Landroid/location/GnssNavigationMessage;->initialize()V
+Landroid/location/GnssNavigationMessage;->mData:[B
+Landroid/location/GnssNavigationMessage;->mMessageId:I
+Landroid/location/GnssNavigationMessage;->mStatus:I
+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
+Landroid/location/GnssStatus;->GNSS_SV_FLAGS_HAS_ALMANAC_DATA:I
+Landroid/location/GnssStatus;->GNSS_SV_FLAGS_HAS_CARRIER_FREQUENCY:I
+Landroid/location/GnssStatus;->GNSS_SV_FLAGS_HAS_EPHEMERIS_DATA:I
+Landroid/location/GnssStatus;->GNSS_SV_FLAGS_NONE:I
+Landroid/location/GnssStatus;->GNSS_SV_FLAGS_USED_IN_FIX:I
+Landroid/location/GnssStatus;->mAzimuths:[F
+Landroid/location/GnssStatus;->mCarrierFrequencies:[F
+Landroid/location/GnssStatus;->mCn0DbHz:[F
+Landroid/location/GnssStatus;->mElevations:[F
+Landroid/location/GnssStatus;->mSvCount:I
+Landroid/location/GnssStatus;->mSvidWithFlags:[I
+Landroid/location/GnssStatus;->SVID_SHIFT_WIDTH:I
+Landroid/location/GpsClock;-><init>()V
+Landroid/location/GpsClock;->getTypeString()Ljava/lang/String;
+Landroid/location/GpsClock;->HAS_BIAS:S
+Landroid/location/GpsClock;->HAS_BIAS_UNCERTAINTY:S
+Landroid/location/GpsClock;->HAS_DRIFT:S
+Landroid/location/GpsClock;->HAS_DRIFT_UNCERTAINTY:S
+Landroid/location/GpsClock;->HAS_FULL_BIAS:S
+Landroid/location/GpsClock;->HAS_LEAP_SECOND:S
+Landroid/location/GpsClock;->HAS_NO_FLAGS:S
+Landroid/location/GpsClock;->HAS_TIME_UNCERTAINTY:S
+Landroid/location/GpsClock;->initialize()V
+Landroid/location/GpsClock;->isFlagSet(S)Z
+Landroid/location/GpsClock;->mBiasInNs:D
+Landroid/location/GpsClock;->mBiasUncertaintyInNs:D
+Landroid/location/GpsClock;->mDriftInNsPerSec:D
+Landroid/location/GpsClock;->mDriftUncertaintyInNsPerSec:D
+Landroid/location/GpsClock;->mFlags:S
+Landroid/location/GpsClock;->mFullBiasInNs:J
+Landroid/location/GpsClock;->mLeapSecond:S
+Landroid/location/GpsClock;->mTimeInNs:J
+Landroid/location/GpsClock;->mTimeUncertaintyInNs:D
+Landroid/location/GpsClock;->mType:B
+Landroid/location/GpsClock;->resetFlag(S)V
+Landroid/location/GpsClock;->setFlag(S)V
+Landroid/location/GpsMeasurement;-><init>()V
+Landroid/location/GpsMeasurement;->ADR_ALL:S
+Landroid/location/GpsMeasurement;->getAccumulatedDeltaRangeStateString()Ljava/lang/String;
+Landroid/location/GpsMeasurement;->getLossOfLockString()Ljava/lang/String;
+Landroid/location/GpsMeasurement;->getMultipathIndicatorString()Ljava/lang/String;
+Landroid/location/GpsMeasurement;->getStateString()Ljava/lang/String;
+Landroid/location/GpsMeasurement;->GPS_MEASUREMENT_HAS_UNCORRECTED_PSEUDORANGE_RATE:I
+Landroid/location/GpsMeasurement;->HAS_AZIMUTH:I
+Landroid/location/GpsMeasurement;->HAS_AZIMUTH_UNCERTAINTY:I
+Landroid/location/GpsMeasurement;->HAS_BIT_NUMBER:I
+Landroid/location/GpsMeasurement;->HAS_CARRIER_CYCLES:I
+Landroid/location/GpsMeasurement;->HAS_CARRIER_FREQUENCY:I
+Landroid/location/GpsMeasurement;->HAS_CARRIER_PHASE:I
+Landroid/location/GpsMeasurement;->HAS_CARRIER_PHASE_UNCERTAINTY:I
+Landroid/location/GpsMeasurement;->HAS_CODE_PHASE:I
+Landroid/location/GpsMeasurement;->HAS_CODE_PHASE_UNCERTAINTY:I
+Landroid/location/GpsMeasurement;->HAS_DOPPLER_SHIFT:I
+Landroid/location/GpsMeasurement;->HAS_DOPPLER_SHIFT_UNCERTAINTY:I
+Landroid/location/GpsMeasurement;->HAS_ELEVATION:I
+Landroid/location/GpsMeasurement;->HAS_ELEVATION_UNCERTAINTY:I
+Landroid/location/GpsMeasurement;->HAS_NO_FLAGS:I
+Landroid/location/GpsMeasurement;->HAS_PSEUDORANGE:I
+Landroid/location/GpsMeasurement;->HAS_PSEUDORANGE_UNCERTAINTY:I
+Landroid/location/GpsMeasurement;->HAS_SNR:I
+Landroid/location/GpsMeasurement;->HAS_TIME_FROM_LAST_BIT:I
+Landroid/location/GpsMeasurement;->HAS_USED_IN_FIX:I
+Landroid/location/GpsMeasurement;->initialize()V
+Landroid/location/GpsMeasurement;->isFlagSet(I)Z
+Landroid/location/GpsMeasurement;->mAccumulatedDeltaRangeInMeters:D
+Landroid/location/GpsMeasurement;->mAccumulatedDeltaRangeState:S
+Landroid/location/GpsMeasurement;->mAccumulatedDeltaRangeUncertaintyInMeters:D
+Landroid/location/GpsMeasurement;->mAzimuthInDeg:D
+Landroid/location/GpsMeasurement;->mAzimuthUncertaintyInDeg:D
+Landroid/location/GpsMeasurement;->mBitNumber:I
+Landroid/location/GpsMeasurement;->mCarrierCycles:J
+Landroid/location/GpsMeasurement;->mCarrierFrequencyInHz:F
+Landroid/location/GpsMeasurement;->mCarrierPhase:D
+Landroid/location/GpsMeasurement;->mCarrierPhaseUncertainty:D
+Landroid/location/GpsMeasurement;->mCn0InDbHz:D
+Landroid/location/GpsMeasurement;->mCodePhaseInChips:D
+Landroid/location/GpsMeasurement;->mCodePhaseUncertaintyInChips:D
+Landroid/location/GpsMeasurement;->mDopplerShiftInHz:D
+Landroid/location/GpsMeasurement;->mDopplerShiftUncertaintyInHz:D
+Landroid/location/GpsMeasurement;->mElevationInDeg:D
+Landroid/location/GpsMeasurement;->mElevationUncertaintyInDeg:D
+Landroid/location/GpsMeasurement;->mFlags:I
+Landroid/location/GpsMeasurement;->mLossOfLock:B
+Landroid/location/GpsMeasurement;->mMultipathIndicator:B
+Landroid/location/GpsMeasurement;->mPrn:B
+Landroid/location/GpsMeasurement;->mPseudorangeInMeters:D
+Landroid/location/GpsMeasurement;->mPseudorangeRateInMetersPerSec:D
+Landroid/location/GpsMeasurement;->mPseudorangeRateUncertaintyInMetersPerSec:D
+Landroid/location/GpsMeasurement;->mPseudorangeUncertaintyInMeters:D
+Landroid/location/GpsMeasurement;->mReceivedGpsTowInNs:J
+Landroid/location/GpsMeasurement;->mReceivedGpsTowUncertaintyInNs:J
+Landroid/location/GpsMeasurement;->mSnrInDb:D
+Landroid/location/GpsMeasurement;->mState:S
+Landroid/location/GpsMeasurement;->mTimeFromLastBitInMs:S
+Landroid/location/GpsMeasurement;->mTimeOffsetInNs:D
+Landroid/location/GpsMeasurement;->mUsedInFix:Z
+Landroid/location/GpsMeasurement;->resetFlag(I)V
+Landroid/location/GpsMeasurement;->setFlag(I)V
+Landroid/location/GpsMeasurement;->STATE_ALL:S
+Landroid/location/GpsMeasurementsEvent;->mClock:Landroid/location/GpsClock;
+Landroid/location/GpsMeasurementsEvent;->mReadOnlyMeasurements:Ljava/util/Collection;
+Landroid/location/GpsNavigationMessage;-><init>()V
+Landroid/location/GpsNavigationMessage;->EMPTY_ARRAY:[B
+Landroid/location/GpsNavigationMessage;->getStatusString()Ljava/lang/String;
+Landroid/location/GpsNavigationMessage;->getTypeString()Ljava/lang/String;
+Landroid/location/GpsNavigationMessage;->initialize()V
+Landroid/location/GpsNavigationMessage;->mData:[B
+Landroid/location/GpsNavigationMessage;->mMessageId:S
+Landroid/location/GpsNavigationMessage;->mPrn:B
+Landroid/location/GpsNavigationMessage;->mStatus:S
+Landroid/location/GpsNavigationMessage;->mSubmessageId:S
+Landroid/location/GpsNavigationMessage;->mType:B
+Landroid/location/GpsNavigationMessageEvent;->mNavigationMessage:Landroid/location/GpsNavigationMessage;
+Landroid/location/GpsSatellite;-><init>(I)V
+Landroid/location/GpsSatellite;->mAzimuth:F
+Landroid/location/GpsSatellite;->mElevation:F
+Landroid/location/GpsSatellite;->mHasAlmanac:Z
+Landroid/location/GpsSatellite;->mHasEphemeris:Z
+Landroid/location/GpsSatellite;->mPrn:I
+Landroid/location/GpsSatellite;->mSnr:F
+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
+Landroid/location/GpsStatus;->BEIDOU_SVID_OFFSET:I
+Landroid/location/GpsStatus;->clearSatellites()V
+Landroid/location/GpsStatus;->GLONASS_SVID_OFFSET:I
+Landroid/location/GpsStatus;->mSatelliteList:Ljava/lang/Iterable;
+Landroid/location/GpsStatus;->mSatellites:Landroid/util/SparseArray;
+Landroid/location/GpsStatus;->mTimeToFirstFix:I
+Landroid/location/GpsStatus;->NUM_SATELLITES:I
+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;
+Landroid/location/IFusedGeofenceHardware$Stub$Proxy;->isSupported()Z
+Landroid/location/IFusedGeofenceHardware$Stub$Proxy;->modifyGeofenceOptions(IIIIII)V
+Landroid/location/IFusedGeofenceHardware$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/location/IFusedGeofenceHardware$Stub;->TRANSACTION_addGeofences:I
+Landroid/location/IFusedGeofenceHardware$Stub;->TRANSACTION_isSupported:I
+Landroid/location/IFusedGeofenceHardware$Stub;->TRANSACTION_modifyGeofenceOptions:I
+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;
+Landroid/location/IGnssStatusListener$Stub$Proxy;->onFirstFix(I)V
+Landroid/location/IGnssStatusListener$Stub$Proxy;->onGnssStarted()V
+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;
+Landroid/location/IGnssStatusListener$Stub;->TRANSACTION_onFirstFix:I
+Landroid/location/IGnssStatusListener$Stub;->TRANSACTION_onGnssStarted:I
+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;
+Landroid/location/IGpsGeofenceHardware$Stub$Proxy;->isHardwareGeofenceSupported()Z
+Landroid/location/IGpsGeofenceHardware$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/location/IGpsGeofenceHardware$Stub;->TRANSACTION_addCircularHardwareGeofence:I
+Landroid/location/IGpsGeofenceHardware$Stub;->TRANSACTION_isHardwareGeofenceSupported:I
+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
+Landroid/location/ILocationManager$Stub$Proxy;->addTestProvider(Ljava/lang/String;Lcom/android/internal/location/ProviderProperties;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->clearTestProviderEnabled(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->clearTestProviderLocation(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->clearTestProviderStatus(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->flushGnssBatch(Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->geocoderIsPresent()Z
+Landroid/location/ILocationManager$Stub$Proxy;->getAllProviders()Ljava/util/List;
+Landroid/location/ILocationManager$Stub$Proxy;->getBackgroundThrottlingWhitelist()[Ljava/lang/String;
+Landroid/location/ILocationManager$Stub$Proxy;->getBestProvider(Landroid/location/Criteria;Z)Ljava/lang/String;
+Landroid/location/ILocationManager$Stub$Proxy;->getFromLocation(DDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
+Landroid/location/ILocationManager$Stub$Proxy;->getFromLocationName(Ljava/lang/String;DDDDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
+Landroid/location/ILocationManager$Stub$Proxy;->getGnssBatchSize(Ljava/lang/String;)I
+Landroid/location/ILocationManager$Stub$Proxy;->getGnssHardwareModelName()Ljava/lang/String;
+Landroid/location/ILocationManager$Stub$Proxy;->getGnssYearOfHardware()I
+Landroid/location/ILocationManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/location/ILocationManager$Stub$Proxy;->getLastLocation(Landroid/location/LocationRequest;Ljava/lang/String;)Landroid/location/Location;
+Landroid/location/ILocationManager$Stub$Proxy;->getNetworkProviderPackage()Ljava/lang/String;
+Landroid/location/ILocationManager$Stub$Proxy;->getProviderProperties(Ljava/lang/String;)Lcom/android/internal/location/ProviderProperties;
+Landroid/location/ILocationManager$Stub$Proxy;->getProviders(Landroid/location/Criteria;Z)Ljava/util/List;
+Landroid/location/ILocationManager$Stub$Proxy;->injectLocation(Landroid/location/Location;)Z
+Landroid/location/ILocationManager$Stub$Proxy;->isLocationEnabledForUser(I)Z
+Landroid/location/ILocationManager$Stub$Proxy;->isProviderEnabledForUser(Ljava/lang/String;I)Z
+Landroid/location/ILocationManager$Stub$Proxy;->locationCallbackFinished(Landroid/location/ILocationListener;)V
+Landroid/location/ILocationManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/location/ILocationManager$Stub$Proxy;->providerMeetsCriteria(Ljava/lang/String;Landroid/location/Criteria;)Z
+Landroid/location/ILocationManager$Stub$Proxy;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;)Z
+Landroid/location/ILocationManager$Stub$Proxy;->removeGeofence(Landroid/location/Geofence;Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->removeGnssBatchingCallback()V
+Landroid/location/ILocationManager$Stub$Proxy;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V
+Landroid/location/ILocationManager$Stub$Proxy;->removeGnssNavigationMessageListener(Landroid/location/IGnssNavigationMessageListener;)V
+Landroid/location/ILocationManager$Stub$Proxy;->removeTestProvider(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->removeUpdates(Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->reportLocation(Landroid/location/Location;Z)V
+Landroid/location/ILocationManager$Stub$Proxy;->reportLocationBatch(Ljava/util/List;)V
+Landroid/location/ILocationManager$Stub$Proxy;->requestGeofence(Landroid/location/LocationRequest;Landroid/location/Geofence;Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->sendExtraCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Z
+Landroid/location/ILocationManager$Stub$Proxy;->sendNiResponse(II)Z
+Landroid/location/ILocationManager$Stub$Proxy;->setLocationEnabledForUser(ZI)V
+Landroid/location/ILocationManager$Stub$Proxy;->setProviderEnabledForUser(Ljava/lang/String;ZI)Z
+Landroid/location/ILocationManager$Stub$Proxy;->setTestProviderEnabled(Ljava/lang/String;ZLjava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->setTestProviderLocation(Ljava/lang/String;Landroid/location/Location;Ljava/lang/String;)V
+Landroid/location/ILocationManager$Stub$Proxy;->setTestProviderStatus(Ljava/lang/String;ILandroid/os/Bundle;JLjava/lang/String;)V
+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
+Landroid/location/ILocationManager$Stub;->TRANSACTION_addGnssNavigationMessageListener:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_addTestProvider:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_clearTestProviderEnabled:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_clearTestProviderLocation:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_clearTestProviderStatus:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_flushGnssBatch:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_geocoderIsPresent:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getBackgroundThrottlingWhitelist:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getBestProvider:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getFromLocation:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getFromLocationName:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getGnssBatchSize:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getGnssHardwareModelName:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getGnssYearOfHardware:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getLastLocation:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getNetworkProviderPackage:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getProviderProperties:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_getProviders:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_injectLocation:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_isLocationEnabledForUser:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_isProviderEnabledForUser:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_locationCallbackFinished:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_providerMeetsCriteria:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_registerGnssStatusCallback:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_removeGeofence:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_removeGnssBatchingCallback:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_removeGnssMeasurementsListener:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_removeGnssNavigationMessageListener:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_removeTestProvider:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_removeUpdates:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_reportLocation:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_reportLocationBatch:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_requestGeofence:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_requestLocationUpdates:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_sendExtraCommand:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_sendNiResponse:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_setLocationEnabledForUser:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_setProviderEnabledForUser:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_setTestProviderEnabled:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_setTestProviderLocation:I
+Landroid/location/ILocationManager$Stub;->TRANSACTION_setTestProviderStatus:I
+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
+Landroid/location/ILocationManager;->addTestProvider(Ljava/lang/String;Lcom/android/internal/location/ProviderProperties;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->clearTestProviderEnabled(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->clearTestProviderLocation(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->clearTestProviderStatus(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->flushGnssBatch(Ljava/lang/String;)V
+Landroid/location/ILocationManager;->geocoderIsPresent()Z
+Landroid/location/ILocationManager;->getBackgroundThrottlingWhitelist()[Ljava/lang/String;
+Landroid/location/ILocationManager;->getBestProvider(Landroid/location/Criteria;Z)Ljava/lang/String;
+Landroid/location/ILocationManager;->getFromLocation(DDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
+Landroid/location/ILocationManager;->getFromLocationName(Ljava/lang/String;DDDDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
+Landroid/location/ILocationManager;->getGnssBatchSize(Ljava/lang/String;)I
+Landroid/location/ILocationManager;->getGnssHardwareModelName()Ljava/lang/String;
+Landroid/location/ILocationManager;->getGnssYearOfHardware()I
+Landroid/location/ILocationManager;->getLastLocation(Landroid/location/LocationRequest;Ljava/lang/String;)Landroid/location/Location;
+Landroid/location/ILocationManager;->getProviderProperties(Ljava/lang/String;)Lcom/android/internal/location/ProviderProperties;
+Landroid/location/ILocationManager;->getProviders(Landroid/location/Criteria;Z)Ljava/util/List;
+Landroid/location/ILocationManager;->injectLocation(Landroid/location/Location;)Z
+Landroid/location/ILocationManager;->isLocationEnabledForUser(I)Z
+Landroid/location/ILocationManager;->isProviderEnabledForUser(Ljava/lang/String;I)Z
+Landroid/location/ILocationManager;->locationCallbackFinished(Landroid/location/ILocationListener;)V
+Landroid/location/ILocationManager;->providerMeetsCriteria(Ljava/lang/String;Landroid/location/Criteria;)Z
+Landroid/location/ILocationManager;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;)Z
+Landroid/location/ILocationManager;->removeGeofence(Landroid/location/Geofence;Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->removeGnssBatchingCallback()V
+Landroid/location/ILocationManager;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V
+Landroid/location/ILocationManager;->removeGnssNavigationMessageListener(Landroid/location/IGnssNavigationMessageListener;)V
+Landroid/location/ILocationManager;->removeTestProvider(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->removeUpdates(Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->reportLocationBatch(Ljava/util/List;)V
+Landroid/location/ILocationManager;->requestGeofence(Landroid/location/LocationRequest;Landroid/location/Geofence;Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->sendExtraCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Z
+Landroid/location/ILocationManager;->sendNiResponse(II)Z
+Landroid/location/ILocationManager;->setLocationEnabledForUser(ZI)V
+Landroid/location/ILocationManager;->setProviderEnabledForUser(Ljava/lang/String;ZI)Z
+Landroid/location/ILocationManager;->setTestProviderEnabled(Ljava/lang/String;ZLjava/lang/String;)V
+Landroid/location/ILocationManager;->setTestProviderLocation(Ljava/lang/String;Landroid/location/Location;Ljava/lang/String;)V
+Landroid/location/ILocationManager;->setTestProviderStatus(Ljava/lang/String;ILandroid/os/Bundle;JLjava/lang/String;)V
+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
+Landroid/location/LocalListenerHelper;->foreach(Landroid/location/LocalListenerHelper$ListenerOperation;)V
+Landroid/location/LocalListenerHelper;->getContext()Landroid/content/Context;
+Landroid/location/LocalListenerHelper;->mContext:Landroid/content/Context;
+Landroid/location/LocalListenerHelper;->mListeners:Ljava/util/HashMap;
+Landroid/location/LocalListenerHelper;->mTag:Ljava/lang/String;
+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
+Landroid/location/Location$BearingDistanceCache;->mInitialBearing:F
+Landroid/location/Location$BearingDistanceCache;->mLat1:D
+Landroid/location/Location$BearingDistanceCache;->mLat2:D
+Landroid/location/Location$BearingDistanceCache;->mLon1:D
+Landroid/location/Location$BearingDistanceCache;->mLon2:D
+Landroid/location/Location;->computeDistanceAndBearing(DDDDLandroid/location/Location$BearingDistanceCache;)V
+Landroid/location/Location;->EXTRA_COARSE_LOCATION:Ljava/lang/String;
+Landroid/location/Location;->EXTRA_NO_GPS_LOCATION:Ljava/lang/String;
+Landroid/location/Location;->getExtraLocation(Ljava/lang/String;)Landroid/location/Location;
+Landroid/location/Location;->HAS_ALTITUDE_MASK:I
+Landroid/location/Location;->HAS_BEARING_ACCURACY_MASK:I
+Landroid/location/Location;->HAS_BEARING_MASK:I
+Landroid/location/Location;->HAS_HORIZONTAL_ACCURACY_MASK:I
+Landroid/location/Location;->HAS_MOCK_PROVIDER_MASK:I
+Landroid/location/Location;->HAS_SPEED_ACCURACY_MASK:I
+Landroid/location/Location;->HAS_SPEED_MASK:I
+Landroid/location/Location;->HAS_VERTICAL_ACCURACY_MASK:I
+Landroid/location/Location;->mAltitude:D
+Landroid/location/Location;->mBearing:F
+Landroid/location/Location;->mBearingAccuracyDegrees:F
+Landroid/location/Location;->mExtras:Landroid/os/Bundle;
+Landroid/location/Location;->mFieldsMask:B
+Landroid/location/Location;->mHorizontalAccuracyMeters:F
+Landroid/location/Location;->mLatitude:D
+Landroid/location/Location;->mLongitude:D
+Landroid/location/Location;->mSpeed:F
+Landroid/location/Location;->mSpeedAccuracyMetersPerSecond:F
+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;
+Landroid/location/LocationManager$GnssStatusListenerTransport;->mGpsListener:Landroid/location/GpsStatus$Listener;
+Landroid/location/LocationManager$GnssStatusListenerTransport;->mGpsNmeaListener:Landroid/location/GpsStatus$NmeaListener;
+Landroid/location/LocationManager$GnssStatusListenerTransport;->mNmeaBuffer:Ljava/util/ArrayList;
+Landroid/location/LocationManager$GnssStatusListenerTransport;->NMEA_RECEIVED:I
+Landroid/location/LocationManager$GnssStatusListenerTransport;->onFirstFix(I)V
+Landroid/location/LocationManager$GnssStatusListenerTransport;->onGnssStarted()V
+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
+Landroid/location/LocationManager$ListenerTransport;->onProviderDisabled(Ljava/lang/String;)V
+Landroid/location/LocationManager$ListenerTransport;->onProviderEnabled(Ljava/lang/String;)V
+Landroid/location/LocationManager$ListenerTransport;->onStatusChanged(Ljava/lang/String;ILandroid/os/Bundle;)V
+Landroid/location/LocationManager$ListenerTransport;->TYPE_LOCATION_CHANGED:I
+Landroid/location/LocationManager$ListenerTransport;->TYPE_PROVIDER_DISABLED:I
+Landroid/location/LocationManager$ListenerTransport;->TYPE_PROVIDER_ENABLED:I
+Landroid/location/LocationManager$ListenerTransport;->TYPE_STATUS_CHANGED:I
+Landroid/location/LocationManager$ListenerTransport;->_handleMessage(Landroid/os/Message;)V
+Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
+Landroid/location/LocationManager;->addGeofence(Landroid/location/LocationRequest;Landroid/location/Geofence;Landroid/app/PendingIntent;)V
+Landroid/location/LocationManager;->checkCriteria(Landroid/location/Criteria;)V
+Landroid/location/LocationManager;->checkGeofence(Landroid/location/Geofence;)V
+Landroid/location/LocationManager;->checkListener(Landroid/location/LocationListener;)V
+Landroid/location/LocationManager;->checkPendingIntent(Landroid/app/PendingIntent;)V
+Landroid/location/LocationManager;->checkProvider(Ljava/lang/String;)V
+Landroid/location/LocationManager;->createProvider(Ljava/lang/String;Lcom/android/internal/location/ProviderProperties;)Landroid/location/LocationProvider;
+Landroid/location/LocationManager;->EXTRA_GPS_ENABLED:Ljava/lang/String;
+Landroid/location/LocationManager;->FUSED_PROVIDER:Ljava/lang/String;
+Landroid/location/LocationManager;->getLastLocation()Landroid/location/Location;
+Landroid/location/LocationManager;->GPS_ENABLED_CHANGE_ACTION:Ljava/lang/String;
+Landroid/location/LocationManager;->GPS_FIX_CHANGE_ACTION:Ljava/lang/String;
+Landroid/location/LocationManager;->HIGH_POWER_REQUEST_CHANGE_ACTION:Ljava/lang/String;
+Landroid/location/LocationManager;->injectLocation(Landroid/location/Location;)Z
+Landroid/location/LocationManager;->mBatchedLocationCallbackTransport:Landroid/location/BatchedLocationCallbackTransport;
+Landroid/location/LocationManager;->mContext:Landroid/content/Context;
+Landroid/location/LocationManager;->METADATA_SETTINGS_FOOTER_STRING:Ljava/lang/String;
+Landroid/location/LocationManager;->mGnssMeasurementCallbackTransport:Landroid/location/GnssMeasurementCallbackTransport;
+Landroid/location/LocationManager;->mGnssNavigationMessageCallbackTransport:Landroid/location/GnssNavigationMessageCallbackTransport;
+Landroid/location/LocationManager;->mGnssNmeaListeners:Ljava/util/HashMap;
+Landroid/location/LocationManager;->mGnssStatus:Landroid/location/GnssStatus;
+Landroid/location/LocationManager;->mGnssStatusListeners:Ljava/util/HashMap;
+Landroid/location/LocationManager;->mGpsNmeaListeners:Ljava/util/HashMap;
+Landroid/location/LocationManager;->mGpsStatusListeners:Ljava/util/HashMap;
+Landroid/location/LocationManager;->mListeners:Ljava/util/HashMap;
+Landroid/location/LocationManager;->MODE_CHANGING_ACTION:Ljava/lang/String;
+Landroid/location/LocationManager;->mTimeToFirstFix:I
+Landroid/location/LocationManager;->removeAllGeofences(Landroid/app/PendingIntent;)V
+Landroid/location/LocationManager;->removeGeofence(Landroid/location/Geofence;Landroid/app/PendingIntent;)V
+Landroid/location/LocationManager;->SETTINGS_FOOTER_DISPLAYED_ACTION:Ljava/lang/String;
+Landroid/location/LocationManager;->SETTINGS_FOOTER_REMOVED_ACTION:Ljava/lang/String;
+Landroid/location/LocationManager;->TAG:Ljava/lang/String;
+Landroid/location/LocationManager;->wrapListener(Landroid/location/LocationListener;Landroid/os/Looper;)Landroid/location/LocationManager$ListenerTransport;
+Landroid/location/LocationProvider;-><init>(Ljava/lang/String;Lcom/android/internal/location/ProviderProperties;)V
+Landroid/location/LocationProvider;->BAD_CHARS_REGEX:Ljava/lang/String;
+Landroid/location/LocationProvider;->mName:Ljava/lang/String;
+Landroid/location/LocationProvider;->mProperties:Lcom/android/internal/location/ProviderProperties;
+Landroid/location/LocationProvider;->propertiesMeetCriteria(Ljava/lang/String;Lcom/android/internal/location/ProviderProperties;Landroid/location/Criteria;)Z
+Landroid/location/LocationRequest;-><init>()V
+Landroid/location/LocationRequest;-><init>(Landroid/location/LocationRequest;)V
+Landroid/location/LocationRequest;->decrementNumUpdates()V
+Landroid/location/LocationRequest;->FASTEST_INTERVAL_FACTOR:D
+Landroid/location/LocationRequest;->mLowPowerMode:Z
+Landroid/location/LocationRequest;->qualityToString(I)Ljava/lang/String;
+Landroid/location/SettingInjectorService;->ENABLED_KEY:Ljava/lang/String;
+Landroid/location/SettingInjectorService;->MESSENGER_KEY:Ljava/lang/String;
+Landroid/location/SettingInjectorService;->mName:Ljava/lang/String;
+Landroid/location/SettingInjectorService;->onHandleIntent(Landroid/content/Intent;)V
+Landroid/location/SettingInjectorService;->sendStatus(Landroid/content/Intent;Z)V
+Landroid/location/SettingInjectorService;->TAG:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_CONTENT_PROVIDERS_EXTERNALLY:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_IMS_CALL_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_INPUT_FLINGER:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_INSTANT_APPS:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_KEYGUARD_SECURE_STORAGE:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_LOWPAN_STATE:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_PDB_STATE:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_UCE_OPTIONS_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_UCE_PRESENCE_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_VOICE_INTERACTION_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_VR_MANAGER:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_VR_STATE:Ljava/lang/String;
+Landroid/Manifest$permission;->ACCESS_WIMAX_STATE:Ljava/lang/String;
+Landroid/Manifest$permission;->ASEC_ACCESS:Ljava/lang/String;
+Landroid/Manifest$permission;->ASEC_CREATE:Ljava/lang/String;
+Landroid/Manifest$permission;->ASEC_DESTROY:Ljava/lang/String;
+Landroid/Manifest$permission;->ASEC_MOUNT_UNMOUNT:Ljava/lang/String;
+Landroid/Manifest$permission;->ASEC_RENAME:Ljava/lang/String;
+Landroid/Manifest$permission;->AUTHENTICATE_ACCOUNTS:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_AUTOFILL:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_AUTOFILL_FIELD_CLASSIFICATION_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_CACHE_QUOTA_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_COMPANION_DEVICE_MANAGER_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_INTENT_FILTER_VERIFIER:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_JOB_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_PACKAGE_VERIFIER:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_PRINT_SPOOLER_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_REMOTE_DISPLAY:Ljava/lang/String;
+Landroid/Manifest$permission;->BIND_ROUTE_PROVIDER:Ljava/lang/String;
+Landroid/Manifest$permission;->BLUETOOTH_MAP:Ljava/lang/String;
+Landroid/Manifest$permission;->BLUETOOTH_STACK:Ljava/lang/String;
+Landroid/Manifest$permission;->C2D_MESSAGE:Ljava/lang/String;
+Landroid/Manifest$permission;->CACHE_CONTENT:Ljava/lang/String;
+Landroid/Manifest$permission;->CAMERA_SEND_SYSTEM_EVENTS:Ljava/lang/String;
+Landroid/Manifest$permission;->CARRIER_FILTER_SMS:Ljava/lang/String;
+Landroid/Manifest$permission;->CHANGE_ACCESSIBILITY_VOLUME:Ljava/lang/String;
+Landroid/Manifest$permission;->CHANGE_BACKGROUND_DATA_SETTING:Ljava/lang/String;
+Landroid/Manifest$permission;->CHANGE_HDMI_CEC_ACTIVE_SOURCE:Ljava/lang/String;
+Landroid/Manifest$permission;->CHANGE_LOWPAN_STATE:Ljava/lang/String;
+Landroid/Manifest$permission;->CHANGE_OVERLAY_PACKAGES:Ljava/lang/String;
+Landroid/Manifest$permission;->CHANGE_WIMAX_STATE:Ljava/lang/String;
+Landroid/Manifest$permission;->CLEAR_APP_GRANTED_URI_PERMISSIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->CONFIGURE_DISPLAY_COLOR_MODE:Ljava/lang/String;
+Landroid/Manifest$permission;->CONFIGURE_WIFI_DISPLAY:Ljava/lang/String;
+Landroid/Manifest$permission;->CONFIRM_FULL_BACKUP:Ljava/lang/String;
+Landroid/Manifest$permission;->CONTROL_DISPLAY_BRIGHTNESS:Ljava/lang/String;
+Landroid/Manifest$permission;->CONTROL_KEYGUARD:Ljava/lang/String;
+Landroid/Manifest$permission;->CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->CONTROL_WIFI_DISPLAY:Ljava/lang/String;
+Landroid/Manifest$permission;->COPY_PROTECTED_DATA:Ljava/lang/String;
+Landroid/Manifest$permission;->CREATE_USERS:Ljava/lang/String;
+Landroid/Manifest$permission;->DISABLE_HIDDEN_API_CHECKS:Ljava/lang/String;
+Landroid/Manifest$permission;->DISABLE_INPUT_DEVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->DISPATCH_NFC_MESSAGE:Ljava/lang/String;
+Landroid/Manifest$permission;->DVB_DEVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->FILTER_EVENTS:Ljava/lang/String;
+Landroid/Manifest$permission;->FLASHLIGHT:Ljava/lang/String;
+Landroid/Manifest$permission;->FORCE_PERSISTABLE_URI_PERMISSIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->FRAME_STATS:Ljava/lang/String;
+Landroid/Manifest$permission;->FREEZE_SCREEN:Ljava/lang/String;
+Landroid/Manifest$permission;->GET_APP_GRANTED_URI_PERMISSIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->GET_DETAILED_TASKS:Ljava/lang/String;
+Landroid/Manifest$permission;->GET_INTENT_SENDER_INTENT:Ljava/lang/String;
+Landroid/Manifest$permission;->GET_PASSWORD:Ljava/lang/String;
+Landroid/Manifest$permission;->GLOBAL_SEARCH_CONTROL:Ljava/lang/String;
+Landroid/Manifest$permission;->INTERNAL_DELETE_CACHE_FILES:Ljava/lang/String;
+Landroid/Manifest$permission;->LAUNCH_TRUST_AGENT_SETTINGS:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_ACCOUNTS:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_APP_OPS_MODES:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_AUDIO_POLICY:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_BIND_INSTANT_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_BLUETOOTH_WHEN_PERMISSION_REVIEW_REQUIRED:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_CAMERA:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_FINGERPRINT:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_LOWPAN_INTERFACES:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_MEDIA_PROJECTION:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_NETWORK_POLICY:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_NOTIFICATIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_PROFILE_AND_DEVICE_OWNERS:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_SCOPED_ACCESS_DIRECTORY_PERMISSIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_SENSORS:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_SLICE_PERMISSIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_VOICE_KEYPHRASES:Ljava/lang/String;
+Landroid/Manifest$permission;->MANAGE_WIFI_WHEN_PERMISSION_REVIEW_REQUIRED:Ljava/lang/String;
+Landroid/Manifest$permission;->MODIFY_ACCESSIBILITY_DATA:Ljava/lang/String;
+Landroid/Manifest$permission;->MODIFY_THEME_OVERLAY:Ljava/lang/String;
+Landroid/Manifest$permission;->NETWORK_BYPASS_PRIVATE_DNS:Ljava/lang/String;
+Landroid/Manifest$permission;->NETWORK_SETTINGS:Ljava/lang/String;
+Landroid/Manifest$permission;->NETWORK_SETUP_WIZARD:Ljava/lang/String;
+Landroid/Manifest$permission;->NETWORK_STACK:Ljava/lang/String;
+Landroid/Manifest$permission;->NET_ADMIN:Ljava/lang/String;
+Landroid/Manifest$permission;->NET_TUNNELING:Ljava/lang/String;
+Landroid/Manifest$permission;->NFC_HANDOVER_STATUS:Ljava/lang/String;
+Landroid/Manifest$permission;->NOTIFY_PENDING_SYSTEM_UPDATE:Ljava/lang/String;
+Landroid/Manifest$permission;->OBSERVE_GRANT_REVOKE_PERMISSIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->OEM_UNLOCK_STATE:Ljava/lang/String;
+Landroid/Manifest$permission;->OPEN_APPLICATION_DETAILS_OPEN_BY_DEFAULT_PAGE:Ljava/lang/String;
+Landroid/Manifest$permission;->PACKET_KEEPALIVE_OFFLOAD:Ljava/lang/String;
+Landroid/Manifest$permission;->QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT:Ljava/lang/String;
+Landroid/Manifest$permission;->READ_BLOCKED_NUMBERS:Ljava/lang/String;
+Landroid/Manifest$permission;->READ_CELL_BROADCASTS:Ljava/lang/String;
+Landroid/Manifest$permission;->READ_HISTORY_BOOKMARKS:Ljava/lang/String;
+Landroid/Manifest$permission;->READ_LOWPAN_CREDENTIAL:Ljava/lang/String;
+Landroid/Manifest$permission;->READ_PRECISE_PHONE_STATE:Ljava/lang/String;
+Landroid/Manifest$permission;->READ_PROFILE:Ljava/lang/String;
+Landroid/Manifest$permission;->READ_SOCIAL_STREAM:Ljava/lang/String;
+Landroid/Manifest$permission;->READ_USER_DICTIONARY:Ljava/lang/String;
+Landroid/Manifest$permission;->RECEIVE_BLUETOOTH_MAP:Ljava/lang/String;
+Landroid/Manifest$permission;->RECEIVE_MEDIA_RESOURCE_USAGE:Ljava/lang/String;
+Landroid/Manifest$permission;->RECEIVE_STK_COMMANDS:Ljava/lang/String;
+Landroid/Manifest$permission;->REGISTER_WINDOW_MANAGER_LISTENERS:Ljava/lang/String;
+Landroid/Manifest$permission;->REMOTE_AUDIO_PLAYBACK:Ljava/lang/String;
+Landroid/Manifest$permission;->REMOVE_TASKS:Ljava/lang/String;
+Landroid/Manifest$permission;->REQUEST_NETWORK_SCORES:Ljava/lang/String;
+Landroid/Manifest$permission;->RESET_FINGERPRINT_LOCKOUT:Ljava/lang/String;
+Landroid/Manifest$permission;->RESET_SHORTCUT_MANAGER_THROTTLING:Ljava/lang/String;
+Landroid/Manifest$permission;->RETRIEVE_WINDOW_TOKEN:Ljava/lang/String;
+Landroid/Manifest$permission;->RUN_IN_BACKGROUND:Ljava/lang/String;
+Landroid/Manifest$permission;->SEND_EMBMS_INTENTS:Ljava/lang/String;
+Landroid/Manifest$permission;->SET_DISPLAY_OFFSET:Ljava/lang/String;
+Landroid/Manifest$permission;->SET_INPUT_CALIBRATION:Ljava/lang/String;
+Landroid/Manifest$permission;->SET_KEYBOARD_LAYOUT:Ljava/lang/String;
+Landroid/Manifest$permission;->START_ANY_ACTIVITY:Ljava/lang/String;
+Landroid/Manifest$permission;->START_TASKS_FROM_RECENTS:Ljava/lang/String;
+Landroid/Manifest$permission;->STATSCOMPANION:Ljava/lang/String;
+Landroid/Manifest$permission;->STATUS_BAR_SERVICE:Ljava/lang/String;
+Landroid/Manifest$permission;->STORAGE_INTERNAL:Ljava/lang/String;
+Landroid/Manifest$permission;->SUBSCRIBED_FEEDS_READ:Ljava/lang/String;
+Landroid/Manifest$permission;->SUBSCRIBED_FEEDS_WRITE:Ljava/lang/String;
+Landroid/Manifest$permission;->TABLET_MODE:Ljava/lang/String;
+Landroid/Manifest$permission;->TEMPORARY_ENABLE_ACCESSIBILITY:Ljava/lang/String;
+Landroid/Manifest$permission;->TEST_BLACKLISTED_PASSWORD:Ljava/lang/String;
+Landroid/Manifest$permission;->TRIGGER_TIME_ZONE_RULES_CHECK:Ljava/lang/String;
+Landroid/Manifest$permission;->TRUST_LISTENER:Ljava/lang/String;
+Landroid/Manifest$permission;->UPDATE_CONFIG:Ljava/lang/String;
+Landroid/Manifest$permission;->UPDATE_LOCK_TASK_PACKAGES:Ljava/lang/String;
+Landroid/Manifest$permission;->USE_COLORIZED_NOTIFICATIONS:Ljava/lang/String;
+Landroid/Manifest$permission;->USE_CREDENTIALS:Ljava/lang/String;
+Landroid/Manifest$permission;->USE_DATA_IN_BACKGROUND:Ljava/lang/String;
+Landroid/Manifest$permission;->VIEW_INSTANT_APPS:Ljava/lang/String;
+Landroid/Manifest$permission;->WATCH_APPOPS:Ljava/lang/String;
+Landroid/Manifest$permission;->WRITE_BLOCKED_NUMBERS:Ljava/lang/String;
+Landroid/Manifest$permission;->WRITE_HISTORY_BOOKMARKS:Ljava/lang/String;
+Landroid/Manifest$permission;->WRITE_PROFILE:Ljava/lang/String;
+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
+Landroid/media/AmrInputStream;->mCodec:Landroid/media/MediaCodec;
+Landroid/media/AmrInputStream;->mInfo:Landroid/media/MediaCodec$BufferInfo;
+Landroid/media/AmrInputStream;->mInputStream:Ljava/io/InputStream;
+Landroid/media/AmrInputStream;->mOneByte:[B
+Landroid/media/AmrInputStream;->mSawInputEOS:Z
+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
+Landroid/media/AsyncPlayer$Command;->context:Landroid/content/Context;
+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;
+Landroid/media/AsyncPlayer;->mDebug:Z
+Landroid/media/AsyncPlayer;->mPlayer:Landroid/media/MediaPlayer;
+Landroid/media/AsyncPlayer;->mState:I
+Landroid/media/AsyncPlayer;->mTag:Ljava/lang/String;
+Landroid/media/AsyncPlayer;->mThread:Landroid/media/AsyncPlayer$Thread;
+Landroid/media/AsyncPlayer;->mWakeLock:Landroid/os/PowerManager$WakeLock;
+Landroid/media/AsyncPlayer;->PLAY:I
+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
+Landroid/media/AudioAttributes$Builder;->mSource:I
+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
+Landroid/media/Audioattributes;->ALARM:I
+Landroid/media/AudioAttributes;->ALL_PARCEL_FLAGS:I
+Landroid/media/Audioattributes;->ASSISTANCE_ACCESSIBILITY:I
+Landroid/media/Audioattributes;->ASSISTANCE_NAVIGATION_GUIDANCE:I
+Landroid/media/Audioattributes;->ASSISTANCE_SONIFICATION:I
+Landroid/media/Audioattributes;->ASSISTANT:I
+Landroid/media/AudioAttributes;->ATTR_PARCEL_IS_NULL_BUNDLE:I
+Landroid/media/AudioAttributes;->ATTR_PARCEL_IS_VALID_BUNDLE:I
+Landroid/media/AudioAttributes;->contentTypeToString()Ljava/lang/String;
+Landroid/media/Audioattributes;->CONTENT_TYPE_UNKNOWN:I
+Landroid/media/AudioAttributes;->FLAG_ALL:I
+Landroid/media/AudioAttributes;->FLAG_ALL_PUBLIC:I
+Landroid/media/AudioAttributes;->FLAG_DEEP_BUFFER:I
+Landroid/media/AudioAttributes;->FLAG_SCO:I
+Landroid/media/AudioAttributes;->FLAG_SECURE:I
+Landroid/media/AudioAttributes;->FLATTEN_TAGS:I
+Landroid/media/Audioattributes;->GAME:I
+Landroid/media/AudioAttributes;->getTags()Ljava/util/Set;
+Landroid/media/AudioAttributes;->mBundle:Landroid/os/Bundle;
+Landroid/media/Audioattributes;->MEDIA:I
+Landroid/media/Audioattributes;->MOVIE:I
+Landroid/media/AudioAttributes;->mTags:Ljava/util/HashSet;
+Landroid/media/Audioattributes;->MUSIC:I
+Landroid/media/Audioattributes;->NOTIFICATION:I
+Landroid/media/Audioattributes;->NOTIFICATION_COMMUNICATION_DELAYED:I
+Landroid/media/Audioattributes;->NOTIFICATION_COMMUNICATION_INSTANT:I
+Landroid/media/Audioattributes;->NOTIFICATION_COMMUNICATION_REQUEST:I
+Landroid/media/Audioattributes;->NOTIFICATION_EVENT:I
+Landroid/media/Audioattributes;->NOTIFICATION_RINGTONE:I
+Landroid/media/AudioAttributes;->SDK_USAGES:[I
+Landroid/media/Audioattributes;->SONIFICATION:I
+Landroid/media/Audioattributes;->SPEECH:I
+Landroid/media/AudioAttributes;->SUPPRESSIBLE_ALARM:I
+Landroid/media/AudioAttributes;->SUPPRESSIBLE_CALL:I
+Landroid/media/AudioAttributes;->SUPPRESSIBLE_MEDIA:I
+Landroid/media/AudioAttributes;->SUPPRESSIBLE_NEVER:I
+Landroid/media/AudioAttributes;->SUPPRESSIBLE_NOTIFICATION:I
+Landroid/media/AudioAttributes;->SUPPRESSIBLE_SYSTEM:I
+Landroid/media/AudioAttributes;->SUPPRESSIBLE_USAGES:Landroid/util/SparseIntArray;
+Landroid/media/AudioAttributes;->TAG:Ljava/lang/String;
+Landroid/media/AudioAttributes;->toVolumeStreamType(ZLandroid/media/AudioAttributes;)I
+Landroid/media/AudioAttributes;->usageForStreamType(I)I
+Landroid/media/AudioAttributes;->usageToString()Ljava/lang/String;
+Landroid/media/AudioAttributes;->usageToString(I)Ljava/lang/String;
+Landroid/media/Audioattributes;->USAGE_UNKNOWN:I
+Landroid/media/AudioAttributes;->USAGE_VIRTUAL_SOURCE:I
+Landroid/media/Audioattributes;->VIRTUAL_SOURCE:I
+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
+Landroid/media/AudioDeviceInfo;->EXT_TO_INT_DEVICE_MAPPING:Landroid/util/SparseIntArray;
+Landroid/media/AudioDeviceInfo;->getPort()Landroid/media/AudioDevicePort;
+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
+Landroid/media/AudioFocusInfo;->clearLossReceived()V
+Landroid/media/AudioFocusInfo;->getGen()J
+Landroid/media/AudioFocusInfo;->getSdkTarget()I
+Landroid/media/AudioFocusInfo;->mAttributes:Landroid/media/AudioAttributes;
+Landroid/media/AudioFocusInfo;->mClientId:Ljava/lang/String;
+Landroid/media/AudioFocusInfo;->mClientUid:I
+Landroid/media/AudioFocusInfo;->mFlags:I
+Landroid/media/AudioFocusInfo;->mGainRequest:I
+Landroid/media/AudioFocusInfo;->mGenCount:J
+Landroid/media/AudioFocusInfo;->mLossReceived:I
+Landroid/media/AudioFocusInfo;->mPackageName:Ljava/lang/String;
+Landroid/media/AudioFocusInfo;->mSdkTarget:I
+Landroid/media/AudioFocusInfo;->setGen(J)V
+Landroid/media/AudioFocusRequest$Builder;->mA11yForceDucking:Z
+Landroid/media/AudioFocusRequest$Builder;->mAttr:Landroid/media/AudioAttributes;
+Landroid/media/AudioFocusRequest$Builder;->mDelayedFocus:Z
+Landroid/media/AudioFocusRequest$Builder;->mFocusGain:I
+Landroid/media/AudioFocusRequest$Builder;->mFocusListener:Landroid/media/AudioManager$OnAudioFocusChangeListener;
+Landroid/media/AudioFocusRequest$Builder;->mFocusLocked:Z
+Landroid/media/AudioFocusRequest$Builder;->mListenerHandler:Landroid/os/Handler;
+Landroid/media/AudioFocusRequest$Builder;->mPausesOnDuck:Z
+Landroid/media/AudioFocusRequest$Builder;->setOnAudioFocusChangeListenerInt(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/os/Handler;)Landroid/media/AudioFocusRequest$Builder;
+Landroid/media/AudioFocusRequest;-><init>(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/os/Handler;Landroid/media/AudioAttributes;II)V
+Landroid/media/AudioFocusRequest;->FOCUS_DEFAULT_ATTR:Landroid/media/AudioAttributes;
+Landroid/media/AudioFocusRequest;->getFlags()I
+Landroid/media/AudioFocusRequest;->getOnAudioFocusChangeListenerHandler()Landroid/os/Handler;
+Landroid/media/AudioFocusRequest;->isValidFocusGain(I)Z
+Landroid/media/AudioFocusRequest;->KEY_ACCESSIBILITY_FORCE_FOCUS_DUCKING:Ljava/lang/String;
+Landroid/media/AudioFocusRequest;->mAttr:Landroid/media/AudioAttributes;
+Landroid/media/AudioFocusRequest;->mFlags:I
+Landroid/media/AudioFocusRequest;->mFocusGain:I
+Landroid/media/AudioFocusRequest;->mFocusListener:Landroid/media/AudioManager$OnAudioFocusChangeListener;
+Landroid/media/AudioFocusRequest;->mListenerHandler:Landroid/os/Handler;
+Landroid/media/AudioFormat$Builder;->mChannelIndexMask:I
+Landroid/media/AudioFormat$Builder;->mChannelMask:I
+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
+Landroid/media/AudioFormat;->AUDIO_FORMAT_HAS_PROPERTY_CHANNEL_MASK:I
+Landroid/media/AudioFormat;->AUDIO_FORMAT_HAS_PROPERTY_ENCODING:I
+Landroid/media/AudioFormat;->AUDIO_FORMAT_HAS_PROPERTY_NONE:I
+Landroid/media/AudioFormat;->AUDIO_FORMAT_HAS_PROPERTY_SAMPLE_RATE:I
+Landroid/media/AudioFormat;->CHANNEL_IN_FRONT_BACK:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_5POINT1_SIDE:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_QUAD_SIDE:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_TOP_BACK_CENTER:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_TOP_BACK_LEFT:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_TOP_BACK_RIGHT:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_TOP_CENTER:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_TOP_FRONT_CENTER:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_TOP_FRONT_LEFT:I
+Landroid/media/AudioFormat;->CHANNEL_OUT_TOP_FRONT_RIGHT:I
+Landroid/media/AudioFormat;->convertChannelOutMaskToNativeMask(I)I
+Landroid/media/AudioFormat;->convertNativeChannelMaskToOutMask(I)I
+Landroid/media/AudioFormat;->filterPublicFormats([I)[I
+Landroid/media/AudioFormat;->getPropertySetMask()I
+Landroid/media/AudioFormat;->inChannelMaskFromOutChannelMask(I)I
+Landroid/media/AudioFormat;->isEncodingLinearFrames(I)Z
+Landroid/media/AudioFormat;->isPublicEncoding(I)Z
+Landroid/media/AudioFormat;->isValidEncoding(I)Z
+Landroid/media/AudioFormat;->mChannelIndexMask:I
+Landroid/media/AudioFormat;->mPropertySetMask:I
+Landroid/media/AudioFormat;->SAMPLE_RATE_HZ_MAX:I
+Landroid/media/AudioFormat;->SAMPLE_RATE_HZ_MIN:I
+Landroid/media/AudioFormat;->SURROUND_SOUND_ENCODING:[I
+Landroid/media/AudioFormat;->toDisplayName(I)Ljava/lang/String;
+Landroid/media/AudioFormat;->toLogFriendlyEncoding(I)Ljava/lang/String;
+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
+Landroid/media/audiofx/AudioEffect;->mControlChangeStatusListener:Landroid/media/audiofx/AudioEffect$OnControlStatusChangeListener;
+Landroid/media/audiofx/AudioEffect;->mDescriptor:Landroid/media/audiofx/AudioEffect$Descriptor;
+Landroid/media/audiofx/AudioEffect;->mEnableStatusChangeListener:Landroid/media/audiofx/AudioEffect$OnEnableStatusChangeListener;
+Landroid/media/audiofx/AudioEffect;->mId:I
+Landroid/media/audiofx/AudioEffect;->mJniData:J
+Landroid/media/audiofx/AudioEffect;->mListenerLock:Ljava/lang/Object;
+Landroid/media/audiofx/AudioEffect;->mNativeAudioEffect:J
+Landroid/media/audiofx/AudioEffect;->mNativeEventHandler:Landroid/media/audiofx/AudioEffect$NativeEventHandler;
+Landroid/media/audiofx/AudioEffect;->mParameterChangeListener:Landroid/media/audiofx/AudioEffect$OnParameterChangeListener;
+Landroid/media/audiofx/AudioEffect;->mState:I
+Landroid/media/audiofx/AudioEffect;->mStateLock:Ljava/lang/Object;
+Landroid/media/audiofx/AudioEffect;->native_command(II[BI[B)I
+Landroid/media/audiofx/AudioEffect;->NATIVE_EVENT_CONTROL_STATUS:I
+Landroid/media/audiofx/AudioEffect;->NATIVE_EVENT_ENABLED_STATUS:I
+Landroid/media/audiofx/AudioEffect;->NATIVE_EVENT_PARAMETER_CHANGED:I
+Landroid/media/audiofx/AudioEffect;->native_finalize()V
+Landroid/media/audiofx/AudioEffect;->native_getEnabled()Z
+Landroid/media/audiofx/AudioEffect;->native_getParameter(I[BI[B)I
+Landroid/media/audiofx/AudioEffect;->native_hasControl()Z
+Landroid/media/audiofx/AudioEffect;->native_init()V
+Landroid/media/audiofx/AudioEffect;->native_query_effects()[Ljava/lang/Object;
+Landroid/media/audiofx/AudioEffect;->native_query_pre_processing(I)[Ljava/lang/Object;
+Landroid/media/audiofx/AudioEffect;->native_release()V
+Landroid/media/audiofx/AudioEffect;->native_setEnabled(Z)I
+Landroid/media/audiofx/AudioEffect;->native_setParameter(I[BI[B)I
+Landroid/media/audiofx/AudioEffect;->native_setup(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;II[I[Ljava/lang/Object;Ljava/lang/String;)I
+Landroid/media/audiofx/AudioEffect;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/media/audiofx/AudioEffect;->queryPreProcessings(I)[Landroid/media/audiofx/AudioEffect$Descriptor;
+Landroid/media/audiofx/AudioEffect;->STATE_INITIALIZED:I
+Landroid/media/audiofx/AudioEffect;->STATE_UNINITIALIZED:I
+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;
+Landroid/media/audiofx/BassBoost;->mStrengthSupported:Z
+Landroid/media/audiofx/BassBoost;->TAG:Ljava/lang/String;
+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;
+Landroid/media/audiofx/DynamicsProcessing$Channel;->mPostEq:Landroid/media/audiofx/DynamicsProcessing$Eq;
+Landroid/media/audiofx/DynamicsProcessing$Channel;->mPreEq:Landroid/media/audiofx/DynamicsProcessing$Eq;
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->checkChannel(I)V
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mChannel:[Landroid/media/audiofx/DynamicsProcessing$Channel;
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mChannelCount:I
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mLimiterInUse:Z
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mMbcBandCount:I
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mMbcInUse:Z
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mPostEqBandCount:I
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mPostEqInUse:Z
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mPreEqBandCount:I
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mPreEqInUse:Z
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mPreferredFrameDuration:F
+Landroid/media/audiofx/DynamicsProcessing$Config$Builder;->mVariant:I
+Landroid/media/audiofx/DynamicsProcessing$Config;-><init>(IFIZIZIZIZ[Landroid/media/audiofx/DynamicsProcessing$Channel;)V
+Landroid/media/audiofx/DynamicsProcessing$Config;-><init>(ILandroid/media/audiofx/DynamicsProcessing$Config;)V
+Landroid/media/audiofx/DynamicsProcessing$Config;-><init>(Landroid/media/audiofx/DynamicsProcessing$Config;)V
+Landroid/media/audiofx/DynamicsProcessing$Config;->checkChannel(I)V
+Landroid/media/audiofx/DynamicsProcessing$Config;->mChannel:[Landroid/media/audiofx/DynamicsProcessing$Channel;
+Landroid/media/audiofx/DynamicsProcessing$Config;->mChannelCount:I
+Landroid/media/audiofx/DynamicsProcessing$Config;->mLimiterInUse:Z
+Landroid/media/audiofx/DynamicsProcessing$Config;->mMbcBandCount:I
+Landroid/media/audiofx/DynamicsProcessing$Config;->mMbcInUse:Z
+Landroid/media/audiofx/DynamicsProcessing$Config;->mPostEqBandCount:I
+Landroid/media/audiofx/DynamicsProcessing$Config;->mPostEqInUse:Z
+Landroid/media/audiofx/DynamicsProcessing$Config;->mPreEqBandCount:I
+Landroid/media/audiofx/DynamicsProcessing$Config;->mPreEqInUse:Z
+Landroid/media/audiofx/DynamicsProcessing$Config;->mPreferredFrameDuration:F
+Landroid/media/audiofx/DynamicsProcessing$Config;->mVariant:I
+Landroid/media/audiofx/DynamicsProcessing$Eq;->checkBand(I)V
+Landroid/media/audiofx/DynamicsProcessing$Eq;->mBands:[Landroid/media/audiofx/DynamicsProcessing$EqBand;
+Landroid/media/audiofx/DynamicsProcessing$EqBand;->mGain:F
+Landroid/media/audiofx/DynamicsProcessing$Limiter;->mAttackTime:F
+Landroid/media/audiofx/DynamicsProcessing$Limiter;->mLinkGroup:I
+Landroid/media/audiofx/DynamicsProcessing$Limiter;->mPostGain:F
+Landroid/media/audiofx/DynamicsProcessing$Limiter;->mRatio:F
+Landroid/media/audiofx/DynamicsProcessing$Limiter;->mReleaseTime:F
+Landroid/media/audiofx/DynamicsProcessing$Limiter;->mThreshold:F
+Landroid/media/audiofx/DynamicsProcessing$Mbc;->checkBand(I)V
+Landroid/media/audiofx/DynamicsProcessing$Mbc;->mBands:[Landroid/media/audiofx/DynamicsProcessing$MbcBand;
+Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mAttackTime:F
+Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mExpanderRatio:F
+Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mKneeWidth:F
+Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mNoiseGateThreshold:F
+Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mPostGain:F
+Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mPreGain:F
+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
+Landroid/media/audiofx/DynamicsProcessing$Settings;->inputGain:[F
+Landroid/media/audiofx/DynamicsProcessing$Stage;->mEnabled:Z
+Landroid/media/audiofx/DynamicsProcessing$Stage;->mInUse:Z
+Landroid/media/audiofx/DynamicsProcessing;-><init>(II)V
+Landroid/media/audiofx/DynamicsProcessing;->byteArrayToNumberArray([B[Ljava/lang/Number;)V
+Landroid/media/audiofx/DynamicsProcessing;->CHANNEL_COUNT_MAX:I
+Landroid/media/audiofx/DynamicsProcessing;->CHANNEL_DEFAULT_INPUT_GAIN:F
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_DEFAULT_MBC_BANDS:I
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_DEFAULT_POSTEQ_BANDS:I
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_DEFAULT_PREEQ_BANDS:I
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_DEFAULT_USE_LIMITER:Z
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_DEFAULT_USE_MBC:Z
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_DEFAULT_USE_POSTEQ:Z
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_DEFAULT_USE_PREEQ:Z
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_DEFAULT_VARIANT:I
+Landroid/media/audiofx/DynamicsProcessing;->CONFIG_PREFERRED_FRAME_DURATION_MS:F
+Landroid/media/audiofx/DynamicsProcessing;->DEFAULT_MAX_FREQUENCY:F
+Landroid/media/audiofx/DynamicsProcessing;->DEFAULT_MIN_FREQUENCY:F
+Landroid/media/audiofx/DynamicsProcessing;->EQ_DEFAULT_GAIN:F
+Landroid/media/audiofx/DynamicsProcessing;->getOneInt(I)I
+Landroid/media/audiofx/DynamicsProcessing;->getProperties()Landroid/media/audiofx/DynamicsProcessing$Settings;
+Landroid/media/audiofx/DynamicsProcessing;->getTwoFloat(II)F
+Landroid/media/audiofx/DynamicsProcessing;->LIMITER_DEFAULT_ATTACK_TIME:F
+Landroid/media/audiofx/DynamicsProcessing;->LIMITER_DEFAULT_ENABLED:Z
+Landroid/media/audiofx/DynamicsProcessing;->LIMITER_DEFAULT_LINK_GROUP:I
+Landroid/media/audiofx/DynamicsProcessing;->LIMITER_DEFAULT_POST_GAIN:F
+Landroid/media/audiofx/DynamicsProcessing;->LIMITER_DEFAULT_RATIO:F
+Landroid/media/audiofx/DynamicsProcessing;->LIMITER_DEFAULT_RELEASE_TIME:F
+Landroid/media/audiofx/DynamicsProcessing;->LIMITER_DEFAULT_THRESHOLD:F
+Landroid/media/audiofx/DynamicsProcessing;->mBaseParamListener:Landroid/media/audiofx/DynamicsProcessing$BaseParameterListener;
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_ATTACK_TIME:F
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_ENABLED:Z
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_EXPANDER_RATIO:F
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_KNEE_WIDTH:F
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_NOISE_GATE_THRESHOLD:F
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_POST_GAIN:F
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_PRE_GAIN:F
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_RATIO:F
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_RELEASE_TIME:F
+Landroid/media/audiofx/DynamicsProcessing;->MBC_DEFAULT_THRESHOLD:F
+Landroid/media/audiofx/DynamicsProcessing;->mChannelCount:I
+Landroid/media/audiofx/DynamicsProcessing;->mMaxFreqLog:F
+Landroid/media/audiofx/DynamicsProcessing;->mMinFreqLog:F
+Landroid/media/audiofx/DynamicsProcessing;->mParamListener:Landroid/media/audiofx/DynamicsProcessing$OnParameterChangeListener;
+Landroid/media/audiofx/DynamicsProcessing;->mParamListenerLock:Ljava/lang/Object;
+Landroid/media/audiofx/DynamicsProcessing;->numberArrayToByteArray([Ljava/lang/Number;)[B
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_ENGINE_ARCHITECTURE:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_GET_CHANNEL_COUNT:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_INPUT_GAIN:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_LIMITER:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_MBC:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_MBC_BAND:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_POST_EQ:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_POST_EQ_BAND:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_PRE_EQ:I
+Landroid/media/audiofx/DynamicsProcessing;->PARAM_PRE_EQ_BAND:I
+Landroid/media/audiofx/DynamicsProcessing;->POSTEQ_DEFAULT_ENABLED:Z
+Landroid/media/audiofx/DynamicsProcessing;->PREEQ_DEFAULT_ENABLED:Z
+Landroid/media/audiofx/DynamicsProcessing;->queryEngineByChannelIndex(I)Landroid/media/audiofx/DynamicsProcessing$Channel;
+Landroid/media/audiofx/DynamicsProcessing;->queryEngineEqBandByChannelIndex(III)Landroid/media/audiofx/DynamicsProcessing$EqBand;
+Landroid/media/audiofx/DynamicsProcessing;->queryEngineEqByChannelIndex(II)Landroid/media/audiofx/DynamicsProcessing$Eq;
+Landroid/media/audiofx/DynamicsProcessing;->queryEngineLimiterByChannelIndex(I)Landroid/media/audiofx/DynamicsProcessing$Limiter;
+Landroid/media/audiofx/DynamicsProcessing;->queryEngineMbcBandByChannelIndex(II)Landroid/media/audiofx/DynamicsProcessing$MbcBand;
+Landroid/media/audiofx/DynamicsProcessing;->queryEngineMbcByChannelIndex(I)Landroid/media/audiofx/DynamicsProcessing$Mbc;
+Landroid/media/audiofx/DynamicsProcessing;->setEngineArchitecture(IFZIZIZIZ)V
+Landroid/media/audiofx/DynamicsProcessing;->setNumberArray([Ljava/lang/Number;[Ljava/lang/Number;)V
+Landroid/media/audiofx/DynamicsProcessing;->setParameterListener(Landroid/media/audiofx/DynamicsProcessing$OnParameterChangeListener;)V
+Landroid/media/audiofx/DynamicsProcessing;->setProperties(Landroid/media/audiofx/DynamicsProcessing$Settings;)V
+Landroid/media/audiofx/DynamicsProcessing;->setTwoFloat(IIF)V
+Landroid/media/audiofx/DynamicsProcessing;->TAG:Ljava/lang/String;
+Landroid/media/audiofx/DynamicsProcessing;->updateEffectArchitecture()V
+Landroid/media/audiofx/DynamicsProcessing;->updateEngineChannelByChannelIndex(ILandroid/media/audiofx/DynamicsProcessing$Channel;)V
+Landroid/media/audiofx/DynamicsProcessing;->updateEngineEqBandByChannelIndex(IIILandroid/media/audiofx/DynamicsProcessing$EqBand;)V
+Landroid/media/audiofx/DynamicsProcessing;->updateEngineEqByChannelIndex(IILandroid/media/audiofx/DynamicsProcessing$Eq;)V
+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
+Landroid/media/audiofx/Equalizer;->mParamListener:Landroid/media/audiofx/Equalizer$OnParameterChangeListener;
+Landroid/media/audiofx/Equalizer;->mParamListenerLock:Ljava/lang/Object;
+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
+Landroid/media/audiofx/LoudnessEnhancer;-><init>(II)V
+Landroid/media/audiofx/LoudnessEnhancer;->getProperties()Landroid/media/audiofx/LoudnessEnhancer$Settings;
+Landroid/media/audiofx/LoudnessEnhancer;->mBaseParamListener:Landroid/media/audiofx/LoudnessEnhancer$BaseParameterListener;
+Landroid/media/audiofx/LoudnessEnhancer;->mParamListener:Landroid/media/audiofx/LoudnessEnhancer$OnParameterChangeListener;
+Landroid/media/audiofx/LoudnessEnhancer;->mParamListenerLock:Ljava/lang/Object;
+Landroid/media/audiofx/LoudnessEnhancer;->setParameterListener(Landroid/media/audiofx/LoudnessEnhancer$OnParameterChangeListener;)V
+Landroid/media/audiofx/LoudnessEnhancer;->setProperties(Landroid/media/audiofx/LoudnessEnhancer$Settings;)V
+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
+Landroid/media/audiofx/Virtualizer;->getDeviceForModeForce(I)I
+Landroid/media/audiofx/Virtualizer;->getDeviceForModeQuery(I)I
+Landroid/media/audiofx/Virtualizer;->mBaseParamListener:Landroid/media/audiofx/Virtualizer$BaseParameterListener;
+Landroid/media/audiofx/Virtualizer;->mParamListener:Landroid/media/audiofx/Virtualizer$OnParameterChangeListener;
+Landroid/media/audiofx/Virtualizer;->mParamListenerLock:Ljava/lang/Object;
+Landroid/media/audiofx/Virtualizer;->mStrengthSupported:Z
+Landroid/media/audiofx/Virtualizer;->PARAM_FORCE_VIRTUALIZATION_MODE:I
+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
+Landroid/media/audiofx/Visualizer;->mListenerLock:Ljava/lang/Object;
+Landroid/media/audiofx/Visualizer;->mNativeEventHandler:Landroid/media/audiofx/Visualizer$NativeEventHandler;
+Landroid/media/audiofx/Visualizer;->mNativeVisualizer:J
+Landroid/media/audiofx/Visualizer;->mServerDiedListener:Landroid/media/audiofx/Visualizer$OnServerDiedListener;
+Landroid/media/audiofx/Visualizer;->mState:I
+Landroid/media/audiofx/Visualizer;->mStateLock:Ljava/lang/Object;
+Landroid/media/audiofx/Visualizer;->NATIVE_EVENT_FFT_CAPTURE:I
+Landroid/media/audiofx/Visualizer;->NATIVE_EVENT_PCM_CAPTURE:I
+Landroid/media/audiofx/Visualizer;->NATIVE_EVENT_SERVER_DIED:I
+Landroid/media/audiofx/Visualizer;->native_finalize()V
+Landroid/media/audiofx/Visualizer;->native_getCaptureSize()I
+Landroid/media/audiofx/Visualizer;->native_getEnabled()Z
+Landroid/media/audiofx/Visualizer;->native_getFft([B)I
+Landroid/media/audiofx/Visualizer;->native_getMeasurementMode()I
+Landroid/media/audiofx/Visualizer;->native_getPeakRms(Landroid/media/audiofx/Visualizer$MeasurementPeakRms;)I
+Landroid/media/audiofx/Visualizer;->native_getSamplingRate()I
+Landroid/media/audiofx/Visualizer;->native_getScalingMode()I
+Landroid/media/audiofx/Visualizer;->native_getWaveForm([B)I
+Landroid/media/audiofx/Visualizer;->native_init()V
+Landroid/media/audiofx/Visualizer;->native_release()V
+Landroid/media/audiofx/Visualizer;->native_setCaptureSize(I)I
+Landroid/media/audiofx/Visualizer;->native_setEnabled(Z)I
+Landroid/media/audiofx/Visualizer;->native_setMeasurementMode(I)I
+Landroid/media/audiofx/Visualizer;->native_setPeriodicCapture(IZZ)I
+Landroid/media/audiofx/Visualizer;->native_setScalingMode(I)I
+Landroid/media/audiofx/Visualizer;->native_setup(Ljava/lang/Object;I[ILjava/lang/String;)I
+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
+Landroid/media/AudioGain;->maxValue()I
+Landroid/media/AudioGain;->mChannelMask:I
+Landroid/media/AudioGain;->mDefaultValue:I
+Landroid/media/AudioGain;->mIndex:I
+Landroid/media/AudioGain;->minValue()I
+Landroid/media/AudioGain;->mMaxValue:I
+Landroid/media/AudioGain;->mMinValue:I
+Landroid/media/AudioGain;->mMode:I
+Landroid/media/AudioGain;->mode()I
+Landroid/media/AudioGain;->MODE_CHANNELS:I
+Landroid/media/AudioGain;->MODE_JOINT:I
+Landroid/media/AudioGain;->MODE_RAMP:I
+Landroid/media/AudioGain;->mRampDurationMaxMs:I
+Landroid/media/AudioGain;->mRampDurationMinMs:I
+Landroid/media/AudioGain;->mStepValue:I
+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
+Landroid/media/AudioManager$BlockingFocusResultReceiver;->mLock:Landroid/media/AudioManager$SafeWaitObject;
+Landroid/media/AudioManager$BlockingFocusResultReceiver;->mResultReceived:Z
+Landroid/media/AudioManager$BlockingFocusResultReceiver;->notifyResult(I)V
+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
+Landroid/media/AudioManager;->AUDIOFOCUS_FLAGS_SYSTEM:I
+Landroid/media/AudioManager;->AUDIOFOCUS_REQUEST_WAITING_FOR_EXT_POLICY:I
+Landroid/media/AudioManager;->AUDIOPORT_GENERATION_INIT:I
+Landroid/media/AudioManager;->avrcpSupportsAbsoluteVolume(Ljava/lang/String;Z)V
+Landroid/media/AudioManager;->broadcastDeviceListChange_sync(Landroid/os/Handler;)V
+Landroid/media/AudioManager;->calcListDeltas(Ljava/util/ArrayList;Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
+Landroid/media/AudioManager;->checkFlags(Landroid/media/AudioDevicePort;I)Z
+Landroid/media/AudioManager;->checkTypes(Landroid/media/AudioDevicePort;)Z
+Landroid/media/AudioManager;->DEBUG:Z
+Landroid/media/AudioManager;->DEVICE_IN_ANLG_DOCK_HEADSET:I
+Landroid/media/AudioManager;->DEVICE_IN_BACK_MIC:I
+Landroid/media/AudioManager;->DEVICE_IN_BLUETOOTH_SCO_HEADSET:I
+Landroid/media/AudioManager;->DEVICE_IN_BUILTIN_MIC:I
+Landroid/media/AudioManager;->DEVICE_IN_DGTL_DOCK_HEADSET:I
+Landroid/media/AudioManager;->DEVICE_IN_FM_TUNER:I
+Landroid/media/AudioManager;->DEVICE_IN_HDMI:I
+Landroid/media/AudioManager;->DEVICE_IN_LINE:I
+Landroid/media/AudioManager;->DEVICE_IN_LOOPBACK:I
+Landroid/media/AudioManager;->DEVICE_IN_SPDIF:I
+Landroid/media/AudioManager;->DEVICE_IN_TELEPHONY_RX:I
+Landroid/media/AudioManager;->DEVICE_IN_TV_TUNER:I
+Landroid/media/AudioManager;->DEVICE_IN_USB_ACCESSORY:I
+Landroid/media/AudioManager;->DEVICE_IN_USB_DEVICE:I
+Landroid/media/AudioManager;->DEVICE_IN_WIRED_HEADSET:I
+Landroid/media/AudioManager;->DEVICE_NONE:I
+Landroid/media/AudioManager;->DEVICE_OUT_AUX_DIGITAL:I
+Landroid/media/AudioManager;->DEVICE_OUT_BLUETOOTH_SCO:I
+Landroid/media/AudioManager;->DEVICE_OUT_BLUETOOTH_SCO_CARKIT:I
+Landroid/media/AudioManager;->DEVICE_OUT_DEFAULT:I
+Landroid/media/AudioManager;->DEVICE_OUT_FM:I
+Landroid/media/AudioManager;->DEVICE_OUT_HDMI_ARC:I
+Landroid/media/AudioManager;->DEVICE_OUT_LINE:I
+Landroid/media/AudioManager;->DEVICE_OUT_REMOTE_SUBMIX:I
+Landroid/media/AudioManager;->DEVICE_OUT_SPDIF:I
+Landroid/media/AudioManager;->DEVICE_OUT_TELEPHONY_TX:I
+Landroid/media/AudioManager;->DEVICE_OUT_USB_ACCESSORY:I
+Landroid/media/AudioManager;->DEVICE_OUT_USB_DEVICE:I
+Landroid/media/AudioManager;->DEVICE_OUT_USB_HEADSET:I
+Landroid/media/AudioManager;->disableSafeMediaVolume()V
+Landroid/media/AudioManager;->ERROR_BAD_VALUE:I
+Landroid/media/AudioManager;->ERROR_INVALID_OPERATION:I
+Landroid/media/AudioManager;->ERROR_NO_INIT:I
+Landroid/media/AudioManager;->ERROR_PERMISSION_DENIED:I
+Landroid/media/AudioManager;->EXTRA_MASTER_VOLUME_MUTED:Ljava/lang/String;
+Landroid/media/AudioManager;->EXTRA_PREV_VOLUME_STREAM_DEVICES:Ljava/lang/String;
+Landroid/media/AudioManager;->EXTRA_PREV_VOLUME_STREAM_VALUE:Ljava/lang/String;
+Landroid/media/AudioManager;->EXTRA_STREAM_VOLUME_MUTED:Ljava/lang/String;
+Landroid/media/AudioManager;->EXTRA_VOLUME_STREAM_DEVICES:Ljava/lang/String;
+Landroid/media/AudioManager;->EXTRA_VOLUME_STREAM_TYPE_ALIAS:Ljava/lang/String;
+Landroid/media/AudioManager;->EXT_FOCUS_POLICY_TIMEOUT_MS:I
+Landroid/media/AudioManager;->filterDevicePorts(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+Landroid/media/AudioManager;->findFocusRequestInfo(Ljava/lang/String;)Landroid/media/AudioManager$FocusRequestInfo;
+Landroid/media/AudioManager;->flagsToString(I)Ljava/lang/String;
+Landroid/media/AudioManager;->FLAG_ACTIVE_MEDIA_ONLY:I
+Landroid/media/AudioManager;->FLAG_BLUETOOTH_ABS_VOLUME:I
+Landroid/media/AudioManager;->FLAG_FIXED_VOLUME:I
+Landroid/media/AudioManager;->FLAG_FROM_KEY:I
+Landroid/media/AudioManager;->FLAG_HDMI_SYSTEM_AUDIO_VOLUME:I
+Landroid/media/AudioManager;->FLAG_NAMES:[Ljava/lang/String;
+Landroid/media/AudioManager;->FLAG_SHOW_SILENT_HINT:I
+Landroid/media/AudioManager;->FLAG_SHOW_UI_WARNINGS:I
+Landroid/media/AudioManager;->FLAG_SHOW_VIBRATE_HINT:I
+Landroid/media/AudioManager;->FOCUS_CLIENT_ID_STRING:Ljava/lang/String;
+Landroid/media/AudioManager;->getContext()Landroid/content/Context;
+Landroid/media/AudioManager;->getDevicesStatic(I)[Landroid/media/AudioDeviceInfo;
+Landroid/media/AudioManager;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
+Landroid/media/AudioManager;->getIdForAudioFocusListener(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String;
+Landroid/media/AudioManager;->getReportedSurroundFormats()Ljava/util/Map;
+Landroid/media/AudioManager;->getRingtonePlayer()Landroid/media/IRingtonePlayer;
+Landroid/media/AudioManager;->getStreamMinVolumeInt(I)I
+Landroid/media/AudioManager;->getSurroundFormats()Ljava/util/Map;
+Landroid/media/AudioManager;->getUiSoundsStreamType()I
+Landroid/media/AudioManager;->handleBluetoothA2dpDeviceConfigChange(Landroid/bluetooth/BluetoothDevice;)V
+Landroid/media/AudioManager;->hasPlaybackCallback_sync(Landroid/media/AudioManager$AudioPlaybackCallback;)Z
+Landroid/media/AudioManager;->hasRecordCallback_sync(Landroid/media/AudioManager$AudioRecordingCallback;)Z
+Landroid/media/AudioManager;->infoListFromPortList(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
+Landroid/media/AudioManager;->INTERNAL_RINGER_MODE_CHANGED_ACTION:Ljava/lang/String;
+Landroid/media/AudioManager;->isAudioFocusExclusive()Z
+Landroid/media/AudioManager;->isInputDevice(I)Z
+Landroid/media/AudioManager;->isOffloadedPlaybackSupported(Landroid/media/AudioFormat;)Z
+Landroid/media/AudioManager;->isOutputDevice(I)Z
+Landroid/media/AudioManager;->isPublicStreamType(I)Z
+Landroid/media/AudioManager;->isStreamAffectedByMute(I)Z
+Landroid/media/AudioManager;->isStreamAffectedByRingerMode(I)Z
+Landroid/media/AudioManager;->listAudioDevicePorts(Ljava/util/ArrayList;)I
+Landroid/media/AudioManager;->listPreviousAudioDevicePorts(Ljava/util/ArrayList;)I
+Landroid/media/AudioManager;->listPreviousAudioPorts(Ljava/util/ArrayList;)I
+Landroid/media/AudioManager;->mApplicationContext:Landroid/content/Context;
+Landroid/media/AudioManager;->MASTER_MUTE_CHANGED_ACTION:Ljava/lang/String;
+Landroid/media/AudioManager;->mAudioFocusDispatcher:Landroid/media/IAudioFocusDispatcher;
+Landroid/media/AudioManager;->mAudioServerStateCb:Landroid/media/AudioManager$AudioServerStateCallback;
+Landroid/media/AudioManager;->mAudioServerStateCbLock:Ljava/lang/Object;
+Landroid/media/AudioManager;->mAudioServerStateDispatcher:Landroid/media/IAudioServerStateDispatcher;
+Landroid/media/AudioManager;->mAudioServerStateExec:Ljava/util/concurrent/Executor;
+Landroid/media/AudioManager;->mDeviceCallbacks:Landroid/util/ArrayMap;
+Landroid/media/AudioManager;->mFocusRequestsAwaitingResult:Ljava/util/HashMap;
+Landroid/media/AudioManager;->mFocusRequestsLock:Ljava/lang/Object;
+Landroid/media/AudioManager;->mICallBack:Landroid/os/IBinder;
+Landroid/media/AudioManager;->microphoneInfoFromAudioDeviceInfo(Landroid/media/AudioDeviceInfo;)Landroid/media/MicrophoneInfo;
+Landroid/media/AudioManager;->mOriginalContext:Landroid/content/Context;
+Landroid/media/AudioManager;->mPlaybackCallbackList:Ljava/util/List;
+Landroid/media/AudioManager;->mPlaybackCallbackLock:Ljava/lang/Object;
+Landroid/media/AudioManager;->mPlayCb:Landroid/media/IPlaybackConfigDispatcher;
+Landroid/media/AudioManager;->mPortListener:Landroid/media/AudioManager$OnAmPortUpdateListener;
+Landroid/media/AudioManager;->mPreviousPorts:Ljava/util/ArrayList;
+Landroid/media/AudioManager;->mRecCb:Landroid/media/IRecordingConfigDispatcher;
+Landroid/media/AudioManager;->mRecordCallbackList:Ljava/util/List;
+Landroid/media/AudioManager;->mRecordCallbackLock:Ljava/lang/Object;
+Landroid/media/AudioManager;->mServiceEventHandlerDelegate:Landroid/media/AudioManager$ServiceEventHandlerDelegate;
+Landroid/media/AudioManager;->MSG_DEVICES_CALLBACK_REGISTERED:I
+Landroid/media/AudioManager;->MSG_DEVICES_DEVICES_ADDED:I
+Landroid/media/AudioManager;->MSG_DEVICES_DEVICES_REMOVED:I
+Landroid/media/AudioManager;->MSSG_FOCUS_CHANGE:I
+Landroid/media/AudioManager;->MSSG_PLAYBACK_CONFIG_CHANGE:I
+Landroid/media/AudioManager;->MSSG_RECORDING_CONFIG_CHANGE:I
+Landroid/media/AudioManager;->mUseFixedVolume:Z
+Landroid/media/AudioManager;->mUseVolumeKeySounds:Z
+Landroid/media/AudioManager;->mVolumeKeyUpTime:J
+Landroid/media/AudioManager;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
+Landroid/media/AudioManager;->playSoundEffect(II)V
+Landroid/media/AudioManager;->preDispatchKeyEvent(Landroid/view/KeyEvent;I)V
+Landroid/media/AudioManager;->querySoundEffectsEnabled(I)Z
+Landroid/media/AudioManager;->RECORD_CONFIG_EVENT_START:I
+Landroid/media/AudioManager;->RECORD_CONFIG_EVENT_STOP:I
+Landroid/media/AudioManager;->registerAudioFocusRequest(Landroid/media/AudioFocusRequest;)V
+Landroid/media/AudioManager;->registerMediaButtonIntent(Landroid/app/PendingIntent;Landroid/content/ComponentName;)V
+Landroid/media/AudioManager;->removePlaybackCallback_sync(Landroid/media/AudioManager$AudioPlaybackCallback;)Z
+Landroid/media/AudioManager;->removeRecordCallback_sync(Landroid/media/AudioManager$AudioRecordingCallback;)Z
+Landroid/media/AudioManager;->resetAudioPortGeneration()I
+Landroid/media/AudioManager;->RINGER_MODE_MAX:I
+Landroid/media/AudioManager;->sAudioPatchesCached:Ljava/util/ArrayList;
+Landroid/media/AudioManager;->sAudioPortEventHandler:Landroid/media/AudioPortEventHandler;
+Landroid/media/AudioManager;->sAudioPortGeneration:Ljava/lang/Integer;
+Landroid/media/AudioManager;->sAudioPortsCached:Ljava/util/ArrayList;
+Landroid/media/AudioManager;->setAudioPortGain(Landroid/media/AudioPort;Landroid/media/AudioGainConfig;)I
+Landroid/media/AudioManager;->setBluetoothA2dpDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;II)I
+Landroid/media/AudioManager;->setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(Landroid/bluetooth/BluetoothDevice;IIZI)I
+Landroid/media/AudioManager;->setContext(Landroid/content/Context;)V
+Landroid/media/AudioManager;->setHdmiSystemAudioSupported(Z)I
+Landroid/media/AudioManager;->setHearingAidDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;I)V
+Landroid/media/AudioManager;->setParameter(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/media/AudioManager;->setPortIdForMicrophones(Ljava/util/ArrayList;)V
+Landroid/media/AudioManager;->setSurroundFormatEnabled(IZ)Z
+Landroid/media/AudioManager;->setVolumeController(Landroid/media/IVolumeController;)V
+Landroid/media/AudioManager;->setVolumePolicy(Landroid/media/VolumePolicy;)V
+Landroid/media/AudioManager;->sPreviousAudioPortsCached:Ljava/util/ArrayList;
+Landroid/media/AudioManager;->sService:Landroid/media/IAudioService;
+Landroid/media/AudioManager;->STREAM_DEVICES_CHANGED_ACTION:Ljava/lang/String;
+Landroid/media/AudioManager;->STREAM_MUTE_CHANGED_ACTION:Ljava/lang/String;
+Landroid/media/AudioManager;->SUCCESS:I
+Landroid/media/AudioManager;->TAG:Ljava/lang/String;
+Landroid/media/AudioManager;->unregisterAudioFocusRequest(Landroid/media/AudioManager$OnAudioFocusChangeListener;)V
+Landroid/media/AudioManager;->unregisterMediaButtonIntent(Landroid/app/PendingIntent;)V
+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
+Landroid/media/AudioManagerInternal;->getRingerModeInternal()I
+Landroid/media/AudioManagerInternal;->setAccessibilityServiceUids(Landroid/util/IntArray;)V
+Landroid/media/AudioManagerInternal;->setRingerModeDelegate(Landroid/media/AudioManagerInternal$RingerModeDelegate;)V
+Landroid/media/AudioManagerInternal;->setRingerModeInternal(ILjava/lang/String;)V
+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
+Landroid/media/AudioPlaybackConfiguration;->anonymizedCopy(Landroid/media/AudioPlaybackConfiguration;)Landroid/media/AudioPlaybackConfiguration;
+Landroid/media/AudioPlaybackConfiguration;->DEBUG:Z
+Landroid/media/AudioPlaybackConfiguration;->dump(Ljava/io/PrintWriter;)V
+Landroid/media/AudioPlaybackConfiguration;->getIPlayer()Landroid/media/IPlayer;
+Landroid/media/AudioPlaybackConfiguration;->handleAudioAttributesEvent(Landroid/media/AudioAttributes;)Z
+Landroid/media/AudioPlaybackConfiguration;->handleStateEvent(I)Z
+Landroid/media/AudioPlaybackConfiguration;->init()V
+Landroid/media/AudioPlaybackConfiguration;->isActive()Z
+Landroid/media/AudioPlaybackConfiguration;->mClientPid:I
+Landroid/media/AudioPlaybackConfiguration;->mClientUid:I
+Landroid/media/AudioPlaybackConfiguration;->mIPlayerShell:Landroid/media/AudioPlaybackConfiguration$IPlayerShell;
+Landroid/media/AudioPlaybackConfiguration;->mPlayerAttr:Landroid/media/AudioAttributes;
+Landroid/media/AudioPlaybackConfiguration;->mPlayerIId:I
+Landroid/media/AudioPlaybackConfiguration;->mPlayerState:I
+Landroid/media/AudioPlaybackConfiguration;->mPlayerType:I
+Landroid/media/AudioPlaybackConfiguration;->playerDied()V
+Landroid/media/AudioPlaybackConfiguration;->PLAYER_PIID_INVALID:I
+Landroid/media/AudioPlaybackConfiguration;->PLAYER_PIID_UNASSIGNED:I
+Landroid/media/AudioPlaybackConfiguration;->PLAYER_TYPE_AAUDIO:I
+Landroid/media/AudioPlaybackConfiguration;->PLAYER_TYPE_EXTERNAL_PROXY:I
+Landroid/media/AudioPlaybackConfiguration;->PLAYER_TYPE_HW_SOURCE:I
+Landroid/media/AudioPlaybackConfiguration;->PLAYER_UPID_INVALID:I
+Landroid/media/AudioPlaybackConfiguration;->sPlayerDeathMonitor:Landroid/media/AudioPlaybackConfiguration$PlayerDeathMonitor;
+Landroid/media/AudioPlaybackConfiguration;->TAG:Ljava/lang/String;
+Landroid/media/AudioPlaybackConfiguration;->toLogFriendlyPlayerState(I)Ljava/lang/String;
+Landroid/media/AudioPlaybackConfiguration;->toLogFriendlyPlayerType(I)Ljava/lang/String;
+Landroid/media/AudioPlaybackConfiguration;->toLogFriendlyString(Landroid/media/AudioPlaybackConfiguration;)Ljava/lang/String;
+Landroid/media/audiopolicy/AudioMix$Builder;-><init>()V
+Landroid/media/audiopolicy/AudioMix$Builder;->mCallbackFlags:I
+Landroid/media/audiopolicy/AudioMix$Builder;->mDeviceAddress:Ljava/lang/String;
+Landroid/media/audiopolicy/AudioMix$Builder;->mDeviceSystemType:I
+Landroid/media/audiopolicy/AudioMix$Builder;->mFormat:Landroid/media/AudioFormat;
+Landroid/media/audiopolicy/AudioMix$Builder;->mRouteFlags:I
+Landroid/media/audiopolicy/AudioMix$Builder;->mRule:Landroid/media/audiopolicy/AudioMixingRule;
+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
+Landroid/media/audiopolicy/AudioMix;->getFormat()Landroid/media/AudioFormat;
+Landroid/media/audiopolicy/AudioMix;->getMixType()I
+Landroid/media/audiopolicy/AudioMix;->getRegistration()Ljava/lang/String;
+Landroid/media/audiopolicy/AudioMix;->getRouteFlags()I
+Landroid/media/audiopolicy/AudioMix;->getRule()Landroid/media/audiopolicy/AudioMixingRule;
+Landroid/media/audiopolicy/AudioMix;->isAffectingUsage(I)Z
+Landroid/media/audiopolicy/AudioMix;->MIX_TYPE_INVALID:I
+Landroid/media/audiopolicy/AudioMix;->MIX_TYPE_PLAYERS:I
+Landroid/media/audiopolicy/AudioMix;->MIX_TYPE_RECORDERS:I
+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
+Landroid/media/audiopolicy/AudioMixingRule$Builder;->addRuleFromParcel(Landroid/os/Parcel;)Landroid/media/audiopolicy/AudioMixingRule$Builder;
+Landroid/media/audiopolicy/AudioMixingRule$Builder;->addRuleInternal(Landroid/media/AudioAttributes;Ljava/lang/Integer;I)Landroid/media/audiopolicy/AudioMixingRule$Builder;
+Landroid/media/audiopolicy/AudioMixingRule$Builder;->checkAddRuleObjInternal(ILjava/lang/Object;)Landroid/media/audiopolicy/AudioMixingRule$Builder;
+Landroid/media/audiopolicy/AudioMixingRule$Builder;->mCriteria:Ljava/util/ArrayList;
+Landroid/media/audiopolicy/AudioMixingRule$Builder;->mTargetMixType:I
+Landroid/media/audiopolicy/AudioMixingRule;-><init>(ILjava/util/ArrayList;)V
+Landroid/media/audiopolicy/AudioMixingRule;->areCriteriaEquivalent(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+Landroid/media/audiopolicy/AudioMixingRule;->getCriteria()Ljava/util/ArrayList;
+Landroid/media/audiopolicy/AudioMixingRule;->getTargetMixType()I
+Landroid/media/audiopolicy/AudioMixingRule;->isAffectingUsage(I)Z
+Landroid/media/audiopolicy/AudioMixingRule;->isAudioAttributeRule(I)Z
+Landroid/media/audiopolicy/AudioMixingRule;->isPlayerRule(I)Z
+Landroid/media/audiopolicy/AudioMixingRule;->isValidAttributesSystemApiRule(I)Z
+Landroid/media/audiopolicy/AudioMixingRule;->isValidRule(I)Z
+Landroid/media/audiopolicy/AudioMixingRule;->isValidSystemApiRule(I)Z
+Landroid/media/audiopolicy/AudioMixingRule;->mTargetMixType:I
+Landroid/media/audiopolicy/AudioMixingRule;->RULE_EXCLUDE_ATTRIBUTE_CAPTURE_PRESET:I
+Landroid/media/audiopolicy/AudioMixingRule;->RULE_EXCLUDE_ATTRIBUTE_USAGE:I
+Landroid/media/audiopolicy/AudioMixingRule;->RULE_EXCLUDE_UID:I
+Landroid/media/audiopolicy/AudioMixingRule;->RULE_EXCLUSION_MASK:I
+Landroid/media/audiopolicy/AudioPolicy$AudioPolicyVolumeCallback;-><init>()V
+Landroid/media/audiopolicy/AudioPolicy$Builder;->mContext:Landroid/content/Context;
+Landroid/media/audiopolicy/AudioPolicy$Builder;->mFocusListener:Landroid/media/audiopolicy/AudioPolicy$AudioPolicyFocusListener;
+Landroid/media/audiopolicy/AudioPolicy$Builder;->mIsFocusPolicy:Z
+Landroid/media/audiopolicy/AudioPolicy$Builder;->mLooper:Landroid/os/Looper;
+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;
+Landroid/media/audiopolicy/AudioPolicy;->checkMixReadyToUse(Landroid/media/audiopolicy/AudioMix;Z)V
+Landroid/media/audiopolicy/AudioPolicy;->DEBUG:Z
+Landroid/media/audiopolicy/AudioPolicy;->getConfig()Landroid/media/audiopolicy/AudioPolicyConfig;
+Landroid/media/audiopolicy/AudioPolicy;->getService()Landroid/media/IAudioService;
+Landroid/media/audiopolicy/AudioPolicy;->hasFocusListener()Z
+Landroid/media/audiopolicy/AudioPolicy;->isFocusPolicy()Z
+Landroid/media/audiopolicy/AudioPolicy;->isVolumeController()Z
+Landroid/media/audiopolicy/AudioPolicy;->mConfig:Landroid/media/audiopolicy/AudioPolicyConfig;
+Landroid/media/audiopolicy/AudioPolicy;->mContext:Landroid/content/Context;
+Landroid/media/audiopolicy/AudioPolicy;->mEventHandler:Landroid/media/audiopolicy/AudioPolicy$EventHandler;
+Landroid/media/audiopolicy/AudioPolicy;->mFocusListener:Landroid/media/audiopolicy/AudioPolicy$AudioPolicyFocusListener;
+Landroid/media/audiopolicy/AudioPolicy;->mIsFocusPolicy:Z
+Landroid/media/audiopolicy/AudioPolicy;->mLock:Ljava/lang/Object;
+Landroid/media/audiopolicy/AudioPolicy;->mPolicyCb:Landroid/media/audiopolicy/IAudioPolicyCallback;
+Landroid/media/audiopolicy/AudioPolicy;->mRegistrationId:Ljava/lang/String;
+Landroid/media/audiopolicy/AudioPolicy;->MSG_FOCUS_ABANDON:I
+Landroid/media/audiopolicy/AudioPolicy;->MSG_FOCUS_GRANT:I
+Landroid/media/audiopolicy/AudioPolicy;->MSG_FOCUS_LOSS:I
+Landroid/media/audiopolicy/AudioPolicy;->MSG_FOCUS_REQUEST:I
+Landroid/media/audiopolicy/AudioPolicy;->MSG_MIX_STATE_UPDATE:I
+Landroid/media/audiopolicy/AudioPolicy;->MSG_POLICY_STATUS_CHANGE:I
+Landroid/media/audiopolicy/AudioPolicy;->MSG_VOL_ADJUST:I
+Landroid/media/audiopolicy/AudioPolicy;->mStatus:I
+Landroid/media/audiopolicy/AudioPolicy;->mStatusListener:Landroid/media/audiopolicy/AudioPolicy$AudioPolicyStatusListener;
+Landroid/media/audiopolicy/AudioPolicy;->mVolCb:Landroid/media/audiopolicy/AudioPolicy$AudioPolicyVolumeCallback;
+Landroid/media/audiopolicy/AudioPolicy;->onPolicyStatusChange()V
+Landroid/media/audiopolicy/AudioPolicy;->policyReadyToUse()Z
+Landroid/media/audiopolicy/AudioPolicy;->sendMsg(I)V
+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
+Landroid/media/audiopolicy/AudioPolicyConfig;->add(Ljava/util/ArrayList;)V
+Landroid/media/audiopolicy/AudioPolicyConfig;->addMix(Landroid/media/audiopolicy/AudioMix;)V
+Landroid/media/audiopolicy/AudioPolicyConfig;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/media/audiopolicy/AudioPolicyConfig;->getMixes()Ljava/util/ArrayList;
+Landroid/media/audiopolicy/AudioPolicyConfig;->getRegistration()Ljava/lang/String;
+Landroid/media/audiopolicy/AudioPolicyConfig;->mDuckingPolicy:I
+Landroid/media/audiopolicy/AudioPolicyConfig;->mixTypeId(I)Ljava/lang/String;
+Landroid/media/audiopolicy/AudioPolicyConfig;->mMixCounter:I
+Landroid/media/audiopolicy/AudioPolicyConfig;->mMixes:Ljava/util/ArrayList;
+Landroid/media/audiopolicy/AudioPolicyConfig;->mRegistrationId:Ljava/lang/String;
+Landroid/media/audiopolicy/AudioPolicyConfig;->remove(Ljava/util/ArrayList;)V
+Landroid/media/audiopolicy/AudioPolicyConfig;->setMixRegistration(Landroid/media/audiopolicy/AudioMix;)V
+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;
+Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->notifyAudioFocusAbandon(Landroid/media/AudioFocusInfo;)V
+Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->notifyAudioFocusGrant(Landroid/media/AudioFocusInfo;I)V
+Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->notifyAudioFocusLoss(Landroid/media/AudioFocusInfo;Z)V
+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;
+Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;->TRANSACTION_notifyAudioFocusAbandon:I
+Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;->TRANSACTION_notifyAudioFocusGrant:I
+Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;->TRANSACTION_notifyAudioFocusLoss:I
+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
+Landroid/media/AudioPort;->channelMasks()[I
+Landroid/media/AudioPort;->formats()[I
+Landroid/media/AudioPort;->gain(I)Landroid/media/AudioGain;
+Landroid/media/AudioPort;->gains()[Landroid/media/AudioGain;
+Landroid/media/AudioPort;->handle()Landroid/media/AudioHandle;
+Landroid/media/AudioPort;->mChannelIndexMasks:[I
+Landroid/media/AudioPort;->mChannelMasks:[I
+Landroid/media/AudioPort;->mFormats:[I
+Landroid/media/AudioPort;->mName:Ljava/lang/String;
+Landroid/media/AudioPort;->mSamplingRates:[I
+Landroid/media/AudioPort;->name()Ljava/lang/String;
+Landroid/media/AudioPort;->ROLE_NONE:I
+Landroid/media/AudioPort;->ROLE_SINK:I
+Landroid/media/AudioPort;->ROLE_SOURCE:I
+Landroid/media/AudioPort;->samplingRates()[I
+Landroid/media/AudioPort;->TAG:Ljava/lang/String;
+Landroid/media/AudioPort;->TYPE_DEVICE:I
+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
+Landroid/media/AudioPortConfig;->FORMAT:I
+Landroid/media/AudioPortConfig;->gain()Landroid/media/AudioGainConfig;
+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
+Landroid/media/AudioPortEventHandler;->AUDIOPORT_EVENT_PORT_LIST_UPDATED:I
+Landroid/media/AudioPortEventHandler;->AUDIOPORT_EVENT_SERVICE_DIED:I
+Landroid/media/AudioPortEventHandler;->handler()Landroid/os/Handler;
+Landroid/media/AudioPortEventHandler;->init()V
+Landroid/media/AudioPortEventHandler;->mHandler:Landroid/os/Handler;
+Landroid/media/AudioPortEventHandler;->mHandlerThread:Landroid/os/HandlerThread;
+Landroid/media/AudioPortEventHandler;->mListeners:Ljava/util/ArrayList;
+Landroid/media/AudioPortEventHandler;->native_finalize()V
+Landroid/media/AudioPortEventHandler;->native_setup(Ljava/lang/Object;)V
+Landroid/media/AudioPortEventHandler;->registerListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
+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;
+Landroid/media/AudioPresentation;->mLanguage:Ljava/lang/String;
+Landroid/media/AudioPresentation;->mMasteringIndication:I
+Landroid/media/AudioPresentation;->mPresentationId:I
+Landroid/media/AudioPresentation;->mProgramId:I
+Landroid/media/AudioPresentation;->mSpokenSubtitlesAvailable:Z
+Landroid/media/AudioRecord$Builder;->mAttributes:Landroid/media/AudioAttributes;
+Landroid/media/AudioRecord$Builder;->mBufferSizeInBytes:I
+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
+Landroid/media/AudioRecord;->AUDIORECORD_ERROR_SETUP_INVALIDCHANNELMASK:I
+Landroid/media/AudioRecord;->AUDIORECORD_ERROR_SETUP_INVALIDFORMAT:I
+Landroid/media/AudioRecord;->AUDIORECORD_ERROR_SETUP_INVALIDSOURCE:I
+Landroid/media/AudioRecord;->AUDIORECORD_ERROR_SETUP_NATIVEINITFAILED:I
+Landroid/media/AudioRecord;->AUDIORECORD_ERROR_SETUP_ZEROFRAMECOUNT:I
+Landroid/media/AudioRecord;->broadcastRoutingChange()V
+Landroid/media/AudioRecord;->deferred_connect(J)V
+Landroid/media/AudioRecord;->getChannelMaskFromLegacyConfig(IZ)I
+Landroid/media/AudioRecord;->handleFullVolumeRec(Z)V
+Landroid/media/AudioRecord;->logd(Ljava/lang/String;)V
+Landroid/media/AudioRecord;->loge(Ljava/lang/String;)V
+Landroid/media/AudioRecord;->mAudioFormat:I
+Landroid/media/AudioRecord;->mChannelCount:I
+Landroid/media/AudioRecord;->mChannelIndexMask:I
+Landroid/media/AudioRecord;->mChannelMask:I
+Landroid/media/AudioRecord;->mEventHandler:Landroid/media/AudioRecord$NativeEventHandler;
+Landroid/media/AudioRecord;->mICallBack:Landroid/os/IBinder;
+Landroid/media/AudioRecord;->mIsSubmixFullVolume:Z
+Landroid/media/AudioRecord;->mNativeBufferSizeInBytes:I
+Landroid/media/AudioRecord;->mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
+Landroid/media/AudioRecord;->mPositionListenerLock:Ljava/lang/Object;
+Landroid/media/AudioRecord;->mPreferredDevice:Landroid/media/AudioDeviceInfo;
+Landroid/media/AudioRecord;->mRecordingState:I
+Landroid/media/AudioRecord;->mRecordingStateLock:Ljava/lang/Object;
+Landroid/media/AudioRecord;->mRecordSource:I
+Landroid/media/AudioRecord;->mRoutingChangeListeners:Landroid/util/ArrayMap;
+Landroid/media/AudioRecord;->mSampleRate:I
+Landroid/media/AudioRecord;->mSessionId:I
+Landroid/media/AudioRecord;->mState:I
+Landroid/media/AudioRecord;->native_disableDeviceCallback()V
+Landroid/media/AudioRecord;->native_enableDeviceCallback()V
+Landroid/media/AudioRecord;->NATIVE_EVENT_MARKER:I
+Landroid/media/AudioRecord;->NATIVE_EVENT_NEW_POS:I
+Landroid/media/AudioRecord;->native_finalize()V
+Landroid/media/AudioRecord;->native_getMetrics()Landroid/os/PersistableBundle;
+Landroid/media/AudioRecord;->native_getRoutedDeviceId()I
+Landroid/media/AudioRecord;->native_get_active_microphones(Ljava/util/ArrayList;)I
+Landroid/media/AudioRecord;->native_get_buffer_size_in_frames()I
+Landroid/media/AudioRecord;->native_get_marker_pos()I
+Landroid/media/AudioRecord;->native_get_min_buff_size(III)I
+Landroid/media/AudioRecord;->native_get_pos_update_period()I
+Landroid/media/AudioRecord;->native_get_timestamp(Landroid/media/AudioTimestamp;I)I
+Landroid/media/AudioRecord;->native_read_in_byte_array([BIIZ)I
+Landroid/media/AudioRecord;->native_read_in_direct_buffer(Ljava/lang/Object;IZ)I
+Landroid/media/AudioRecord;->native_read_in_float_array([FIIZ)I
+Landroid/media/AudioRecord;->native_read_in_short_array([SIIZ)I
+Landroid/media/AudioRecord;->native_setInputDevice(I)Z
+Landroid/media/AudioRecord;->native_set_marker_pos(I)I
+Landroid/media/AudioRecord;->native_set_pos_update_period(I)I
+Landroid/media/AudioRecord;->native_start(II)I
+Landroid/media/AudioRecord;->native_stop()V
+Landroid/media/AudioRecord;->SUBMIX_FIXED_VOLUME:Ljava/lang/String;
+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;
+Landroid/media/AudioRecordingConfiguration;->dump(Ljava/io/PrintWriter;)V
+Landroid/media/AudioRecordingConfiguration;->mClientFormat:Landroid/media/AudioFormat;
+Landroid/media/AudioRecordingConfiguration;->mClientPackageName:Ljava/lang/String;
+Landroid/media/AudioRecordingConfiguration;->mClientSource:I
+Landroid/media/AudioRecordingConfiguration;->mClientUid:I
+Landroid/media/AudioRecordingConfiguration;->mDeviceFormat:Landroid/media/AudioFormat;
+Landroid/media/AudioRecordingConfiguration;->mPatchHandle:I
+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
+Landroid/media/AudioRoutesInfo;->bluetoothName:Ljava/lang/CharSequence;
+Landroid/media/AudioRoutesInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/media/AudioRoutesInfo;->mainType:I
+Landroid/media/AudioRoutesInfo;->MAIN_DOCK_SPEAKERS:I
+Landroid/media/AudioRoutesInfo;->MAIN_HDMI:I
+Landroid/media/AudioRoutesInfo;->MAIN_HEADPHONES:I
+Landroid/media/AudioRoutesInfo;->MAIN_HEADSET:I
+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
+Landroid/media/AudioSystem;->AUDIO_STATUS_ERROR:I
+Landroid/media/AudioSystem;->AUDIO_STATUS_OK:I
+Landroid/media/AudioSystem;->AUDIO_STATUS_SERVER_DIED:I
+Landroid/media/AudioSystem;->BAD_VALUE:I
+Landroid/media/AudioSystem;->createAudioPatch([Landroid/media/AudioPatch;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)I
+Landroid/media/AudioSystem;->DEAD_OBJECT:I
+Landroid/media/AudioSystem;->DEFAULT_MUTE_STREAMS_AFFECTED:I
+Landroid/media/AudioSystem;->DEFAULT_STREAM_VOLUME:[I
+Landroid/media/AudioSystem;->deviceStateToString(I)Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_ALL_HDMI_SYSTEM_AUDIO_AND_SPEAKER:I
+Landroid/media/AudioSystem;->DEVICE_BIT_DEFAULT:I
+Landroid/media/AudioSystem;->DEVICE_BIT_IN:I
+Landroid/media/AudioSystem;->DEVICE_IN_ALL:I
+Landroid/media/AudioSystem;->DEVICE_IN_ALL_SCO:I
+Landroid/media/AudioSystem;->DEVICE_IN_ALL_USB:I
+Landroid/media/AudioSystem;->DEVICE_IN_AMBIENT_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_ANLG_DOCK_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_AUX_DIGITAL_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_BACK_MIC_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_BLUETOOTH_A2DP_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_BLUETOOTH_SCO_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_BUILTIN_MIC_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_BUS:I
+Landroid/media/AudioSystem;->DEVICE_IN_BUS_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_COMMUNICATION_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_DGTL_DOCK_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_FM_TUNER:I
+Landroid/media/AudioSystem;->DEVICE_IN_FM_TUNER_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_HDMI:I
+Landroid/media/AudioSystem;->DEVICE_IN_IP:I
+Landroid/media/AudioSystem;->DEVICE_IN_IP_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_LINE:I
+Landroid/media/AudioSystem;->DEVICE_IN_LINE_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_LOOPBACK:I
+Landroid/media/AudioSystem;->DEVICE_IN_LOOPBACK_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_PROXY:I
+Landroid/media/AudioSystem;->DEVICE_IN_PROXY_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_REMOTE_SUBMIX_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_SPDIF:I
+Landroid/media/AudioSystem;->DEVICE_IN_SPDIF_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_TELEPHONY_RX:I
+Landroid/media/AudioSystem;->DEVICE_IN_TELEPHONY_RX_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_TV_TUNER:I
+Landroid/media/AudioSystem;->DEVICE_IN_TV_TUNER_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_USB_ACCESSORY_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_USB_DEVICE_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_USB_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_IN_USB_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_IN_WIRED_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_NONE:I
+Landroid/media/AudioSystem;->DEVICE_OUT_ALL:I
+Landroid/media/AudioSystem;->DEVICE_OUT_ALL_A2DP:I
+Landroid/media/AudioSystem;->DEVICE_OUT_ALL_HDMI_SYSTEM_AUDIO:I
+Landroid/media/AudioSystem;->DEVICE_OUT_ALL_SCO:I
+Landroid/media/AudioSystem;->DEVICE_OUT_ANLG_DOCK_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_AUX_DIGITAL_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_AUX_LINE:I
+Landroid/media/AudioSystem;->DEVICE_OUT_AUX_LINE_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_A2DP_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_SCO_CARKIT_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_SCO_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_BLUETOOTH_SCO_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_BUS:I
+Landroid/media/AudioSystem;->DEVICE_OUT_BUS_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_DEFAULT:I
+Landroid/media/AudioSystem;->DEVICE_OUT_DGTL_DOCK_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_EARPIECE_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_FM_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_HDMI:I
+Landroid/media/AudioSystem;->DEVICE_OUT_HDMI_ARC:I
+Landroid/media/AudioSystem;->DEVICE_OUT_HDMI_ARC_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_HDMI_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_HEARING_AID:I
+Landroid/media/AudioSystem;->DEVICE_OUT_HEARING_AID_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_IP:I
+Landroid/media/AudioSystem;->DEVICE_OUT_IP_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_LINE:I
+Landroid/media/AudioSystem;->DEVICE_OUT_LINE_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_PROXY:I
+Landroid/media/AudioSystem;->DEVICE_OUT_PROXY_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_REMOTE_SUBMIX_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_SPDIF:I
+Landroid/media/AudioSystem;->DEVICE_OUT_SPDIF_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_SPEAKER_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_SPEAKER_SAFE:I
+Landroid/media/AudioSystem;->DEVICE_OUT_SPEAKER_SAFE_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_TELEPHONY_TX_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_USB_ACCESSORY_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_USB_DEVICE_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_USB_HEADSET:I
+Landroid/media/AudioSystem;->DEVICE_OUT_USB_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_WIRED_HEADPHONE_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DEVICE_OUT_WIRED_HEADSET_NAME:Ljava/lang/String;
+Landroid/media/AudioSystem;->DYNAMIC_POLICY_EVENT_MIX_STATE_UPDATE:I
+Landroid/media/AudioSystem;->ERROR:I
+Landroid/media/AudioSystem;->forceUseConfigToString(I)Ljava/lang/String;
+Landroid/media/AudioSystem;->forceUseUsageToString(I)Ljava/lang/String;
+Landroid/media/AudioSystem;->FORCE_BT_A2DP:I
+Landroid/media/AudioSystem;->FORCE_BT_SCO:I
+Landroid/media/AudioSystem;->FORCE_DEFAULT:I
+Landroid/media/AudioSystem;->FORCE_ENCODED_SURROUND_ALWAYS:I
+Landroid/media/AudioSystem;->FORCE_ENCODED_SURROUND_MANUAL:I
+Landroid/media/AudioSystem;->FORCE_ENCODED_SURROUND_NEVER:I
+Landroid/media/AudioSystem;->FORCE_HDMI_SYSTEM_AUDIO_ENFORCED:I
+Landroid/media/AudioSystem;->FORCE_HEADPHONES:I
+Landroid/media/AudioSystem;->FORCE_NO_BT_A2DP:I
+Landroid/media/AudioSystem;->FORCE_SPEAKER:I
+Landroid/media/AudioSystem;->FORCE_SYSTEM_ENFORCED:I
+Landroid/media/AudioSystem;->FORCE_WIRED_ACCESSORY:I
+Landroid/media/AudioSystem;->FOR_COMMUNICATION:I
+Landroid/media/AudioSystem;->FOR_DOCK:I
+Landroid/media/AudioSystem;->FOR_ENCODED_SURROUND:I
+Landroid/media/AudioSystem;->FOR_HDMI_SYSTEM_AUDIO:I
+Landroid/media/AudioSystem;->FOR_MEDIA:I
+Landroid/media/AudioSystem;->FOR_RECORD:I
+Landroid/media/AudioSystem;->FOR_SYSTEM:I
+Landroid/media/AudioSystem;->FOR_VIBRATE_RINGING:I
+Landroid/media/AudioSystem;->getAudioHwSyncForSession(I)I
+Landroid/media/AudioSystem;->getDefaultStreamVolume(I)I
+Landroid/media/AudioSystem;->getInputDeviceName(I)Ljava/lang/String;
+Landroid/media/AudioSystem;->getMasterMono()Z
+Landroid/media/AudioSystem;->getMasterVolume()F
+Landroid/media/AudioSystem;->getMicrophones(Ljava/util/ArrayList;)I
+Landroid/media/AudioSystem;->getPlatformType(Landroid/content/Context;)I
+Landroid/media/AudioSystem;->getStreamVolumeDB(III)F
+Landroid/media/AudioSystem;->getStreamVolumeIndex(II)I
+Landroid/media/AudioSystem;->getSurroundFormats(Ljava/util/Map;Z)I
+Landroid/media/AudioSystem;->getValueForVibrateSetting(III)I
+Landroid/media/AudioSystem;->handleDeviceConfigChange(ILjava/lang/String;Ljava/lang/String;)I
+Landroid/media/AudioSystem;->INVALID_OPERATION:I
+Landroid/media/AudioSystem;->IN_VOICE_COMM_FOCUS_ID:Ljava/lang/String;
+Landroid/media/AudioSystem;->isOffloadSupported(Landroid/media/AudioFormat;)Z
+Landroid/media/AudioSystem;->isSingleVolume(Landroid/content/Context;)Z
+Landroid/media/AudioSystem;->isStreamActiveRemotely(II)Z
+Landroid/media/AudioSystem;->listAudioPatches(Ljava/util/ArrayList;[I)I
+Landroid/media/AudioSystem;->listAudioPorts(Ljava/util/ArrayList;[I)I
+Landroid/media/AudioSystem;->mErrorCallback:Landroid/media/AudioSystem$ErrorCallback;
+Landroid/media/AudioSystem;->modeToString(I)Ljava/lang/String;
+Landroid/media/AudioSystem;->MODE_CURRENT:I
+Landroid/media/AudioSystem;->MODE_INVALID:I
+Landroid/media/AudioSystem;->MODE_IN_CALL:I
+Landroid/media/AudioSystem;->MODE_IN_COMMUNICATION:I
+Landroid/media/AudioSystem;->MODE_NORMAL:I
+Landroid/media/AudioSystem;->MODE_RINGTONE:I
+Landroid/media/AudioSystem;->NATIVE_EVENT_ROUTING_CHANGE:I
+Landroid/media/AudioSystem;->native_is_offload_supported(IIII)Z
+Landroid/media/AudioSystem;->native_register_dynamic_policy_callback()V
+Landroid/media/AudioSystem;->native_register_recording_callback()V
+Landroid/media/AudioSystem;->newAudioPlayerId()I
+Landroid/media/AudioSystem;->newAudioSessionId()I
+Landroid/media/AudioSystem;->NO_INIT:I
+Landroid/media/AudioSystem;->NUM_DEVICE_STATES:I
+Landroid/media/AudioSystem;->NUM_FORCE_CONFIG:I
+Landroid/media/AudioSystem;->NUM_FORCE_USE:I
+Landroid/media/AudioSystem;->NUM_MODES:I
+Landroid/media/AudioSystem;->NUM_STREAMS:I
+Landroid/media/AudioSystem;->NUM_STREAM_TYPES:I
+Landroid/media/AudioSystem;->PERMISSION_DENIED:I
+Landroid/media/AudioSystem;->PHONE_STATE_INCALL:I
+Landroid/media/AudioSystem;->PHONE_STATE_OFFCALL:I
+Landroid/media/AudioSystem;->PHONE_STATE_RINGING:I
+Landroid/media/AudioSystem;->PLATFORM_DEFAULT:I
+Landroid/media/AudioSystem;->PLATFORM_TELEVISION:I
+Landroid/media/AudioSystem;->PLATFORM_VOICE:I
+Landroid/media/AudioSystem;->PLAY_SOUND_DELAY:I
+Landroid/media/AudioSystem;->registerPolicyMixes(Ljava/util/ArrayList;Z)I
+Landroid/media/AudioSystem;->releaseAudioPatch(Landroid/media/AudioPatch;)I
+Landroid/media/AudioSystem;->ROUTE_ALL:I
+Landroid/media/AudioSystem;->ROUTE_BLUETOOTH:I
+Landroid/media/AudioSystem;->ROUTE_BLUETOOTH_A2DP:I
+Landroid/media/AudioSystem;->ROUTE_BLUETOOTH_SCO:I
+Landroid/media/AudioSystem;->ROUTE_EARPIECE:I
+Landroid/media/AudioSystem;->ROUTE_HEADSET:I
+Landroid/media/AudioSystem;->ROUTE_SPEAKER:I
+Landroid/media/AudioSystem;->sDynPolicyCallback:Landroid/media/AudioSystem$DynamicPolicyCallback;
+Landroid/media/AudioSystem;->setAudioPortConfig(Landroid/media/AudioPortConfig;)I
+Landroid/media/AudioSystem;->setDynamicPolicyCallback(Landroid/media/AudioSystem$DynamicPolicyCallback;)V
+Landroid/media/AudioSystem;->setLowRamDevice(ZJ)I
+Landroid/media/AudioSystem;->setMasterMono(Z)I
+Landroid/media/AudioSystem;->setMasterVolume(F)I
+Landroid/media/AudioSystem;->setRecordingCallback(Landroid/media/AudioSystem$AudioRecordingCallback;)V
+Landroid/media/AudioSystem;->setSurroundFormatEnabled(IZ)I
+Landroid/media/AudioSystem;->sRecordingCallback:Landroid/media/AudioSystem$AudioRecordingCallback;
+Landroid/media/AudioSystem;->streamToString(I)Ljava/lang/String;
+Landroid/media/AudioSystem;->STREAM_ACCESSIBILITY:I
+Landroid/media/AudioSystem;->STREAM_ALARM:I
+Landroid/media/AudioSystem;->STREAM_BLUETOOTH_SCO:I
+Landroid/media/AudioSystem;->STREAM_DEFAULT:I
+Landroid/media/AudioSystem;->STREAM_DTMF:I
+Landroid/media/AudioSystem;->STREAM_MUSIC:I
+Landroid/media/AudioSystem;->STREAM_NAMES:[Ljava/lang/String;
+Landroid/media/AudioSystem;->STREAM_NOTIFICATION:I
+Landroid/media/AudioSystem;->STREAM_RING:I
+Landroid/media/AudioSystem;->STREAM_SYSTEM:I
+Landroid/media/AudioSystem;->STREAM_TTS:I
+Landroid/media/AudioSystem;->STREAM_VOICE_CALL:I
+Landroid/media/AudioSystem;->SUCCESS:I
+Landroid/media/AudioSystem;->SYNC_EVENT_NONE:I
+Landroid/media/AudioSystem;->SYNC_EVENT_PRESENTATION_COMPLETE:I
+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;
+Landroid/media/AudioTrack$Builder;->mMode:I
+Landroid/media/AudioTrack$Builder;->mOffload:Z
+Landroid/media/AudioTrack$Builder;->mPerformanceMode:I
+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
+Landroid/media/AudioTrack;->audioParamCheck(IIIII)V
+Landroid/media/AudioTrack;->AUDIO_OUTPUT_FLAG_DEEP_BUFFER:I
+Landroid/media/AudioTrack;->AUDIO_OUTPUT_FLAG_FAST:I
+Landroid/media/AudioTrack;->broadcastRoutingChange()V
+Landroid/media/AudioTrack;->CHANNEL_COUNT_MAX:I
+Landroid/media/AudioTrack;->clampGainOrLevel(F)F
+Landroid/media/AudioTrack;->ERROR_NATIVESETUP_AUDIOSYSTEM:I
+Landroid/media/AudioTrack;->ERROR_NATIVESETUP_INVALIDCHANNELMASK:I
+Landroid/media/AudioTrack;->ERROR_NATIVESETUP_INVALIDFORMAT:I
+Landroid/media/AudioTrack;->ERROR_NATIVESETUP_INVALIDSTREAMTYPE:I
+Landroid/media/AudioTrack;->ERROR_NATIVESETUP_NATIVEINITFAILED:I
+Landroid/media/AudioTrack;->ERROR_WOULD_BLOCK:I
+Landroid/media/AudioTrack;->GAIN_MAX:F
+Landroid/media/AudioTrack;->GAIN_MIN:F
+Landroid/media/AudioTrack;->getTimestampWithStatus(Landroid/media/AudioTimestamp;)I
+Landroid/media/AudioTrack;->HEADER_V2_SIZE_BYTES:F
+Landroid/media/AudioTrack;->isMultichannelConfigSupported(I)Z
+Landroid/media/AudioTrack;->logd(Ljava/lang/String;)V
+Landroid/media/AudioTrack;->loge(Ljava/lang/String;)V
+Landroid/media/AudioTrack;->mAudioFormat:I
+Landroid/media/AudioTrack;->mAvSyncBytesRemaining:I
+Landroid/media/AudioTrack;->mAvSyncHeader:Ljava/nio/ByteBuffer;
+Landroid/media/AudioTrack;->mChannelConfiguration:I
+Landroid/media/AudioTrack;->mChannelCount:I
+Landroid/media/AudioTrack;->mChannelIndexMask:I
+Landroid/media/AudioTrack;->mChannelMask:I
+Landroid/media/AudioTrack;->mDataLoadMode:I
+Landroid/media/AudioTrack;->mEventHandlerDelegate:Landroid/media/AudioTrack$NativePositionEventHandlerDelegate;
+Landroid/media/AudioTrack;->mInitializationLooper:Landroid/os/Looper;
+Landroid/media/AudioTrack;->mNativeBufferSizeInBytes:I
+Landroid/media/AudioTrack;->mNativeBufferSizeInFrames:I
+Landroid/media/AudioTrack;->mOffset:I
+Landroid/media/AudioTrack;->mPlayState:I
+Landroid/media/AudioTrack;->mPlayStateLock:Ljava/lang/Object;
+Landroid/media/AudioTrack;->mPreferredDevice:Landroid/media/AudioDeviceInfo;
+Landroid/media/AudioTrack;->mRoutingChangeListeners:Landroid/util/ArrayMap;
+Landroid/media/AudioTrack;->mSampleRate:I
+Landroid/media/AudioTrack;->mSessionId:I
+Landroid/media/AudioTrack;->mState:I
+Landroid/media/AudioTrack;->mStreamEventCb:Landroid/media/AudioTrack$StreamEventCallback;
+Landroid/media/AudioTrack;->mStreamEventCbLock:Ljava/lang/Object;
+Landroid/media/AudioTrack;->mStreamEventExec:Ljava/util/concurrent/Executor;
+Landroid/media/AudioTrack;->native_applyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
+Landroid/media/AudioTrack;->native_attachAuxEffect(I)I
+Landroid/media/AudioTrack;->native_disableDeviceCallback()V
+Landroid/media/AudioTrack;->native_enableDeviceCallback()V
+Landroid/media/AudioTrack;->NATIVE_EVENT_MARKER:I
+Landroid/media/AudioTrack;->NATIVE_EVENT_MORE_DATA:I
+Landroid/media/AudioTrack;->NATIVE_EVENT_NEW_IAUDIOTRACK:I
+Landroid/media/AudioTrack;->NATIVE_EVENT_NEW_POS:I
+Landroid/media/AudioTrack;->NATIVE_EVENT_STREAM_END:I
+Landroid/media/AudioTrack;->native_finalize()V
+Landroid/media/AudioTrack;->native_flush()V
+Landroid/media/AudioTrack;->native_getMetrics()Landroid/os/PersistableBundle;
+Landroid/media/AudioTrack;->native_getRoutedDeviceId()I
+Landroid/media/AudioTrack;->native_getVolumeShaperState(I)Landroid/media/VolumeShaper$State;
+Landroid/media/AudioTrack;->native_get_buffer_capacity_frames()I
+Landroid/media/AudioTrack;->native_get_buffer_size_frames()I
+Landroid/media/AudioTrack;->native_get_FCC_8()I
+Landroid/media/AudioTrack;->native_get_flags()I
+Landroid/media/AudioTrack;->native_get_latency()I
+Landroid/media/AudioTrack;->native_get_marker_pos()I
+Landroid/media/AudioTrack;->native_get_min_buff_size(III)I
+Landroid/media/AudioTrack;->native_get_output_sample_rate(I)I
+Landroid/media/AudioTrack;->native_get_playback_params()Landroid/media/PlaybackParams;
+Landroid/media/AudioTrack;->native_get_playback_rate()I
+Landroid/media/AudioTrack;->native_get_position()I
+Landroid/media/AudioTrack;->native_get_pos_update_period()I
+Landroid/media/AudioTrack;->native_get_timestamp([J)I
+Landroid/media/AudioTrack;->native_get_underrun_count()I
+Landroid/media/AudioTrack;->native_pause()V
+Landroid/media/AudioTrack;->native_reload_static()I
+Landroid/media/AudioTrack;->native_setAuxEffectSendLevel(F)I
+Landroid/media/AudioTrack;->native_setOutputDevice(I)Z
+Landroid/media/AudioTrack;->native_setPresentation(II)I
+Landroid/media/AudioTrack;->native_setup(Ljava/lang/Object;Ljava/lang/Object;[IIIIII[IJZ)I
+Landroid/media/AudioTrack;->native_setVolume(FF)V
+Landroid/media/AudioTrack;->native_set_buffer_size_frames(I)I
+Landroid/media/AudioTrack;->native_set_loop(III)I
+Landroid/media/AudioTrack;->native_set_marker_pos(I)I
+Landroid/media/AudioTrack;->native_set_playback_params(Landroid/media/PlaybackParams;)V
+Landroid/media/AudioTrack;->native_set_playback_rate(I)I
+Landroid/media/AudioTrack;->native_set_position(I)I
+Landroid/media/AudioTrack;->native_set_pos_update_period(I)I
+Landroid/media/AudioTrack;->native_start()V
+Landroid/media/AudioTrack;->native_stop()V
+Landroid/media/AudioTrack;->native_write_byte([BIIIZ)I
+Landroid/media/AudioTrack;->native_write_float([FIIIZ)I
+Landroid/media/AudioTrack;->native_write_native_bytes(Ljava/lang/Object;IIIZ)I
+Landroid/media/AudioTrack;->native_write_short([SIIIZ)I
+Landroid/media/AudioTrack;->playerApplyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
+Landroid/media/AudioTrack;->playerGetVolumeShaperState(I)Landroid/media/VolumeShaper$State;
+Landroid/media/AudioTrack;->playerPause()V
+Landroid/media/AudioTrack;->playerSetAuxEffectSendLevel(ZF)I
+Landroid/media/AudioTrack;->playerSetVolume(ZFF)V
+Landroid/media/AudioTrack;->playerStart()V
+Landroid/media/AudioTrack;->playerStop()V
+Landroid/media/AudioTrack;->removeStreamEventCallback()V
+Landroid/media/AudioTrack;->setStreamEventCallback(Ljava/util/concurrent/Executor;Landroid/media/AudioTrack$StreamEventCallback;)V
+Landroid/media/AudioTrack;->shouldEnablePowerSaving(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)Z
+Landroid/media/AudioTrack;->startImpl()V
+Landroid/media/AudioTrack;->SUPPORTED_OUT_CHANNELS:I
+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;
+Landroid/media/browse/MediaBrowser$Subscription;->getOptionsList()Ljava/util/List;
+Landroid/media/browse/MediaBrowser$Subscription;->isEmpty()Z
+Landroid/media/browse/MediaBrowser$Subscription;->mCallbacks:Ljava/util/List;
+Landroid/media/browse/MediaBrowser$Subscription;->mOptionsList:Ljava/util/List;
+Landroid/media/browse/MediaBrowser$Subscription;->putCallback(Landroid/content/Context;Landroid/os/Bundle;Landroid/media/browse/MediaBrowser$SubscriptionCallback;)V
+Landroid/media/browse/MediaBrowser$SubscriptionCallback;->mToken:Landroid/os/Binder;
+Landroid/media/browse/MediaBrowser;->CONNECT_STATE_CONNECTED:I
+Landroid/media/browse/MediaBrowser;->CONNECT_STATE_CONNECTING:I
+Landroid/media/browse/MediaBrowser;->CONNECT_STATE_DISCONNECTED:I
+Landroid/media/browse/MediaBrowser;->CONNECT_STATE_DISCONNECTING:I
+Landroid/media/browse/MediaBrowser;->CONNECT_STATE_SUSPENDED:I
+Landroid/media/browse/MediaBrowser;->DBG:Z
+Landroid/media/browse/MediaBrowser;->dump()V
+Landroid/media/browse/MediaBrowser;->forceCloseConnection()V
+Landroid/media/browse/MediaBrowser;->getNewServiceCallbacks()Landroid/media/browse/MediaBrowser$ServiceCallbacks;
+Landroid/media/browse/MediaBrowser;->getStateLabel(I)Ljava/lang/String;
+Landroid/media/browse/MediaBrowser;->isCurrent(Landroid/service/media/IMediaBrowserServiceCallbacks;Ljava/lang/String;)Z
+Landroid/media/browse/MediaBrowser;->mCallback:Landroid/media/browse/MediaBrowser$ConnectionCallback;
+Landroid/media/browse/MediaBrowser;->mContext:Landroid/content/Context;
+Landroid/media/browse/MediaBrowser;->mExtras:Landroid/os/Bundle;
+Landroid/media/browse/MediaBrowser;->mHandler:Landroid/os/Handler;
+Landroid/media/browse/MediaBrowser;->mMediaSessionToken:Landroid/media/session/MediaSession$Token;
+Landroid/media/browse/MediaBrowser;->mRootHints:Landroid/os/Bundle;
+Landroid/media/browse/MediaBrowser;->mRootId:Ljava/lang/String;
+Landroid/media/browse/MediaBrowser;->mServiceBinder:Landroid/service/media/IMediaBrowserService;
+Landroid/media/browse/MediaBrowser;->mServiceCallbacks:Landroid/service/media/IMediaBrowserServiceCallbacks;
+Landroid/media/browse/MediaBrowser;->mServiceComponent:Landroid/content/ComponentName;
+Landroid/media/browse/MediaBrowser;->mServiceConnection:Landroid/media/browse/MediaBrowser$MediaServiceConnection;
+Landroid/media/browse/MediaBrowser;->mState:I
+Landroid/media/browse/MediaBrowser;->mSubscriptions:Landroid/util/ArrayMap;
+Landroid/media/browse/MediaBrowser;->onConnectionFailed(Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+Landroid/media/browse/MediaBrowser;->onLoadChildren(Landroid/service/media/IMediaBrowserServiceCallbacks;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;Landroid/os/Bundle;)V
+Landroid/media/browse/MediaBrowser;->onServiceConnected(Landroid/service/media/IMediaBrowserServiceCallbacks;Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/os/Bundle;)V
+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
+Landroid/media/BufferingParams$Builder;->mInitialMarkMs:I
+Landroid/media/BufferingParams$Builder;->mResumePlaybackMarkMs:I
+Landroid/media/BufferingParams;-><init>()V
+Landroid/media/BufferingParams;-><init>(Landroid/os/Parcel;)V
+Landroid/media/BufferingParams;->BUFFERING_NO_MARK:I
+Landroid/media/BufferingParams;->mInitialMarkMs:I
+Landroid/media/BufferingParams;->mResumePlaybackMarkMs:I
+Landroid/media/CamcorderProfile;-><init>(IIIIIIIIIIII)V
+Landroid/media/CamcorderProfile;->native_has_camcorder_profile(II)Z
+Landroid/media/CamcorderProfile;->QUALITY_HIGH_SPEED_LIST_END:I
+Landroid/media/CamcorderProfile;->QUALITY_HIGH_SPEED_LIST_START:I
+Landroid/media/CamcorderProfile;->QUALITY_LIST_END:I
+Landroid/media/CamcorderProfile;->QUALITY_LIST_START:I
+Landroid/media/CamcorderProfile;->QUALITY_TIME_LAPSE_LIST_END:I
+Landroid/media/CamcorderProfile;->QUALITY_TIME_LAPSE_LIST_START:I
+Landroid/media/CameraProfile;->getImageEncodingQualityLevels(I)[I
+Landroid/media/CameraProfile;->native_get_image_encoding_quality_level(II)I
+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;
+Landroid/media/Cea608CCParser$CCData;->getBasicChar(B)C
+Landroid/media/Cea608CCParser$CCData;->getBasicChars()Ljava/lang/String;
+Landroid/media/Cea608CCParser$CCData;->getCtrlCode()I
+Landroid/media/Cea608CCParser$CCData;->getDisplayText()Ljava/lang/String;
+Landroid/media/Cea608CCParser$CCData;->getExtendedChar()Ljava/lang/String;
+Landroid/media/Cea608CCParser$CCData;->getMidRow()Landroid/media/Cea608CCParser$StyleCode;
+Landroid/media/Cea608CCParser$CCData;->getPAC()Landroid/media/Cea608CCParser$PAC;
+Landroid/media/Cea608CCParser$CCData;->getSpecialChar()Ljava/lang/String;
+Landroid/media/Cea608CCParser$CCData;->getTabOffset()I
+Landroid/media/Cea608CCParser$CCData;->isBasicChar()Z
+Landroid/media/Cea608CCParser$CCData;->isDisplayableChar()Z
+Landroid/media/Cea608CCParser$CCData;->isExtendedChar()Z
+Landroid/media/Cea608CCParser$CCData;->isSpecialChar()Z
+Landroid/media/Cea608CCParser$CCData;->mCtrlCodeMap:[Ljava/lang/String;
+Landroid/media/Cea608CCParser$CCData;->mData1:B
+Landroid/media/Cea608CCParser$CCData;->mData2:B
+Landroid/media/Cea608CCParser$CCData;->mProtugueseCharMap:[Ljava/lang/String;
+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
+Landroid/media/Cea608CCParser$CCLineBuilder;->getStyledText(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)Landroid/text/SpannableStringBuilder;
+Landroid/media/Cea608CCParser$CCLineBuilder;->length()I
+Landroid/media/Cea608CCParser$CCLineBuilder;->mDisplayChars:Ljava/lang/StringBuilder;
+Landroid/media/Cea608CCParser$CCLineBuilder;->mMidRowStyles:[Landroid/media/Cea608CCParser$StyleCode;
+Landroid/media/Cea608CCParser$CCLineBuilder;->mPACStyles:[Landroid/media/Cea608CCParser$StyleCode;
+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
+Landroid/media/Cea608CCParser$CCMemory;->cr()V
+Landroid/media/Cea608CCParser$CCMemory;->der()V
+Landroid/media/Cea608CCParser$CCMemory;->erase()V
+Landroid/media/Cea608CCParser$CCMemory;->getLineBuffer(I)Landroid/media/Cea608CCParser$CCLineBuilder;
+Landroid/media/Cea608CCParser$CCMemory;->getStyledText(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)[Landroid/text/SpannableStringBuilder;
+Landroid/media/Cea608CCParser$CCMemory;->mBlankLine:Ljava/lang/String;
+Landroid/media/Cea608CCParser$CCMemory;->mCol:I
+Landroid/media/Cea608CCParser$CCMemory;->mLines:[Landroid/media/Cea608CCParser$CCLineBuilder;
+Landroid/media/Cea608CCParser$CCMemory;->moveBaselineTo(II)V
+Landroid/media/Cea608CCParser$CCMemory;->moveCursorByCol(I)V
+Landroid/media/Cea608CCParser$CCMemory;->moveCursorTo(II)V
+Landroid/media/Cea608CCParser$CCMemory;->moveCursorToRow(I)V
+Landroid/media/Cea608CCParser$CCMemory;->mRow:I
+Landroid/media/Cea608CCParser$CCMemory;->rollUp(I)V
+Landroid/media/Cea608CCParser$CCMemory;->tab(I)V
+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
+Landroid/media/Cea608CCParser$PAC;->getRow()I
+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
+Landroid/media/Cea608CCParser$StyleCode;->COLOR_GREEN:I
+Landroid/media/Cea608CCParser$StyleCode;->COLOR_INVALID:I
+Landroid/media/Cea608CCParser$StyleCode;->COLOR_MAGENTA:I
+Landroid/media/Cea608CCParser$StyleCode;->COLOR_RED:I
+Landroid/media/Cea608CCParser$StyleCode;->COLOR_WHITE:I
+Landroid/media/Cea608CCParser$StyleCode;->COLOR_YELLOW:I
+Landroid/media/Cea608CCParser$StyleCode;->fromByte(B)Landroid/media/Cea608CCParser$StyleCode;
+Landroid/media/Cea608CCParser$StyleCode;->getColor()I
+Landroid/media/Cea608CCParser$StyleCode;->isItalics()Z
+Landroid/media/Cea608CCParser$StyleCode;->isUnderline()Z
+Landroid/media/Cea608CCParser$StyleCode;->mColor:I
+Landroid/media/Cea608CCParser$StyleCode;->mColorMap:[Ljava/lang/String;
+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
+Landroid/media/Cea608CCParser;->BS:I
+Landroid/media/Cea608CCParser;->CR:I
+Landroid/media/Cea608CCParser;->DEBUG:Z
+Landroid/media/Cea608CCParser;->DER:I
+Landroid/media/Cea608CCParser;->EDM:I
+Landroid/media/Cea608CCParser;->ENM:I
+Landroid/media/Cea608CCParser;->EOC:I
+Landroid/media/Cea608CCParser;->FON:I
+Landroid/media/Cea608CCParser;->getMemory()Landroid/media/Cea608CCParser$CCMemory;
+Landroid/media/Cea608CCParser;->handleCtrlCode(Landroid/media/Cea608CCParser$CCData;)Z
+Landroid/media/Cea608CCParser;->handleDisplayableChars(Landroid/media/Cea608CCParser$CCData;)Z
+Landroid/media/Cea608CCParser;->handleMidRowCode(Landroid/media/Cea608CCParser$CCData;)Z
+Landroid/media/Cea608CCParser;->handlePACCode(Landroid/media/Cea608CCParser$CCData;)Z
+Landroid/media/Cea608CCParser;->handleTabOffsets(Landroid/media/Cea608CCParser$CCData;)Z
+Landroid/media/Cea608CCParser;->INVALID:I
+Landroid/media/Cea608CCParser;->MAX_COLS:I
+Landroid/media/Cea608CCParser;->MAX_ROWS:I
+Landroid/media/Cea608CCParser;->mDisplay:Landroid/media/Cea608CCParser$CCMemory;
+Landroid/media/Cea608CCParser;->mListener:Landroid/media/Cea608CCParser$DisplayListener;
+Landroid/media/Cea608CCParser;->mMode:I
+Landroid/media/Cea608CCParser;->mNonDisplay:Landroid/media/Cea608CCParser$CCMemory;
+Landroid/media/Cea608CCParser;->MODE_PAINT_ON:I
+Landroid/media/Cea608CCParser;->MODE_POP_ON:I
+Landroid/media/Cea608CCParser;->MODE_ROLL_UP:I
+Landroid/media/Cea608CCParser;->MODE_TEXT:I
+Landroid/media/Cea608CCParser;->MODE_UNKNOWN:I
+Landroid/media/Cea608CCParser;->mPrevCtrlCode:I
+Landroid/media/Cea608CCParser;->mRollUpSize:I
+Landroid/media/Cea608CCParser;->mTextMem:Landroid/media/Cea608CCParser$CCMemory;
+Landroid/media/Cea608CCParser;->parse([B)V
+Landroid/media/Cea608CCParser;->RCL:I
+Landroid/media/Cea608CCParser;->RDC:I
+Landroid/media/Cea608CCParser;->RTD:I
+Landroid/media/Cea608CCParser;->RU2:I
+Landroid/media/Cea608CCParser;->RU3:I
+Landroid/media/Cea608CCParser;->RU4:I
+Landroid/media/Cea608CCParser;->swapMemory()V
+Landroid/media/Cea608CCParser;->TAG:Ljava/lang/String;
+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;
+Landroid/media/Cea608CCWidget$CCLayout;->SAFE_AREA_RATIO:F
+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
+Landroid/media/Cea608CCWidget$CCLineBox;->EDGE_OUTLINE_RATIO:F
+Landroid/media/Cea608CCWidget$CCLineBox;->EDGE_SHADOW_RATIO:F
+Landroid/media/Cea608CCWidget$CCLineBox;->FONT_PADDING_RATIO:F
+Landroid/media/Cea608CCWidget$CCLineBox;->mBgColor:I
+Landroid/media/Cea608CCWidget$CCLineBox;->mEdgeColor:I
+Landroid/media/Cea608CCWidget$CCLineBox;->mEdgeType:I
+Landroid/media/Cea608CCWidget$CCLineBox;->mOutlineWidth:F
+Landroid/media/Cea608CCWidget$CCLineBox;->mShadowOffset:F
+Landroid/media/Cea608CCWidget$CCLineBox;->mShadowRadius:F
+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
+Landroid/media/Cea608CCWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/media/Cea608CCWidget;->createCaptionLayout(Landroid/content/Context;)Landroid/media/ClosedCaptionWidget$ClosedCaptionLayout;
+Landroid/media/Cea608CCWidget;->getCaptionStyle()Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+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
+Landroid/media/Cea708CCParser$CaptionColor;->getArgbValue()I
+Landroid/media/Cea708CCParser$CaptionColor;->green:I
+Landroid/media/Cea708CCParser$CaptionColor;->opacity:I
+Landroid/media/Cea708CCParser$CaptionColor;->OPACITY_FLASH:I
+Landroid/media/Cea708CCParser$CaptionColor;->OPACITY_MAP:[I
+Landroid/media/Cea708CCParser$CaptionColor;->OPACITY_SOLID:I
+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
+Landroid/media/Cea708CCParser$CaptionPenAttr;->italic:Z
+Landroid/media/Cea708CCParser$CaptionPenAttr;->OFFSET_NORMAL:I
+Landroid/media/Cea708CCParser$CaptionPenAttr;->OFFSET_SUBSCRIPT:I
+Landroid/media/Cea708CCParser$CaptionPenAttr;->OFFSET_SUPERSCRIPT:I
+Landroid/media/Cea708CCParser$CaptionPenAttr;->penOffset:I
+Landroid/media/Cea708CCParser$CaptionPenAttr;->penSize:I
+Landroid/media/Cea708CCParser$CaptionPenAttr;->PEN_SIZE_LARGE:I
+Landroid/media/Cea708CCParser$CaptionPenAttr;->PEN_SIZE_SMALL:I
+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
+Landroid/media/Cea708CCParser$CaptionWindow;->anchorVertical:I
+Landroid/media/Cea708CCParser$CaptionWindow;->columnCount:I
+Landroid/media/Cea708CCParser$CaptionWindow;->columnLock:Z
+Landroid/media/Cea708CCParser$CaptionWindow;->id:I
+Landroid/media/Cea708CCParser$CaptionWindow;->penStyle:I
+Landroid/media/Cea708CCParser$CaptionWindow;->priority:I
+Landroid/media/Cea708CCParser$CaptionWindow;->relativePositioning:Z
+Landroid/media/Cea708CCParser$CaptionWindow;->rowCount:I
+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
+Landroid/media/Cea708CCParser$CaptionWindowAttr;->displayEffect:I
+Landroid/media/Cea708CCParser$CaptionWindowAttr;->effectDirection:I
+Landroid/media/Cea708CCParser$CaptionWindowAttr;->effectSpeed:I
+Landroid/media/Cea708CCParser$CaptionWindowAttr;->fillColor:Landroid/media/Cea708CCParser$CaptionColor;
+Landroid/media/Cea708CCParser$CaptionWindowAttr;->justify:I
+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
+Landroid/media/Cea708CCParser$Const;->CODE_C0_ETX:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_EXT1:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_FF:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_HCR:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_NUL:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_P16:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_SKIP1_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_SKIP1_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_SKIP2_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C0_SKIP2_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CLW:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CW0:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CW1:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CW2:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CW3:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CW4:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CW5:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CW6:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_CW7:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DF0:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DF1:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DF2:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DF3:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DF4:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DF5:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DF6:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DF7:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DLC:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DLW:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DLY:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_DSW:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_HDW:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_RST:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_SPA:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_SPC:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_SPL:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_SWA:I
+Landroid/media/Cea708CCParser$Const;->CODE_C1_TGW:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_SKIP0_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_SKIP0_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_SKIP1_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_SKIP1_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_SKIP2_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_SKIP2_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_SKIP3_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C2_SKIP3_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C3_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C3_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C3_SKIP4_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C3_SKIP4_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_C3_SKIP5_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_C3_SKIP5_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_G0_MUSICNOTE:I
+Landroid/media/Cea708CCParser$Const;->CODE_G0_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_G0_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_G1_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_G1_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_G2_BLK:I
+Landroid/media/Cea708CCParser$Const;->CODE_G2_NBTSP:I
+Landroid/media/Cea708CCParser$Const;->CODE_G2_RANGE_END:I
+Landroid/media/Cea708CCParser$Const;->CODE_G2_RANGE_START:I
+Landroid/media/Cea708CCParser$Const;->CODE_G2_TSP:I
+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
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_CWX:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_DFX:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_DLC:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_DLW:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_DLY:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_DSW:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_HDW:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_RST:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_SPA:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_SPC:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_SPL:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_SWA:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_TGW:I
+Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_CONTROL:I
+Landroid/media/Cea708CCParser;->DEBUG:Z
+Landroid/media/Cea708CCParser;->emitCaptionBuffer()V
+Landroid/media/Cea708CCParser;->emitCaptionEvent(Landroid/media/Cea708CCParser$CaptionEvent;)V
+Landroid/media/Cea708CCParser;->mBuffer:Ljava/lang/StringBuffer;
+Landroid/media/Cea708CCParser;->mCommand:I
+Landroid/media/Cea708CCParser;->mListener:Landroid/media/Cea708CCParser$DisplayListener;
+Landroid/media/Cea708CCParser;->MUSIC_NOTE_CHAR:Ljava/lang/String;
+Landroid/media/Cea708CCParser;->parse([B)V
+Landroid/media/Cea708CCParser;->parseC0([BI)I
+Landroid/media/Cea708CCParser;->parseC1([BI)I
+Landroid/media/Cea708CCParser;->parseC2([BI)I
+Landroid/media/Cea708CCParser;->parseC3([BI)I
+Landroid/media/Cea708CCParser;->parseExt1([BI)I
+Landroid/media/Cea708CCParser;->parseG0([BI)I
+Landroid/media/Cea708CCParser;->parseG1([BI)I
+Landroid/media/Cea708CCParser;->parseG2([BI)I
+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
+Landroid/media/Cea708CCWidget$CCHandler;->CAPTION_WINDOWS_MAX:I
+Landroid/media/Cea708CCWidget$CCHandler;->clearWindows(I)V
+Landroid/media/Cea708CCWidget$CCHandler;->DEBUG:Z
+Landroid/media/Cea708CCWidget$CCHandler;->defineWindow(Landroid/media/Cea708CCParser$CaptionWindow;)V
+Landroid/media/Cea708CCWidget$CCHandler;->delay(I)V
+Landroid/media/Cea708CCWidget$CCHandler;->delayCancel()V
+Landroid/media/Cea708CCWidget$CCHandler;->deleteWindows(I)V
+Landroid/media/Cea708CCWidget$CCHandler;->displayWindows(I)V
+Landroid/media/Cea708CCWidget$CCHandler;->getWindowsFromBitmap(I)Ljava/util/ArrayList;
+Landroid/media/Cea708CCWidget$CCHandler;->hideWindows(I)V
+Landroid/media/Cea708CCWidget$CCHandler;->mCaptionWindowLayouts:[Landroid/media/Cea708CCWidget$CCWindowLayout;
+Landroid/media/Cea708CCWidget$CCHandler;->mCCLayout:Landroid/media/Cea708CCWidget$CCLayout;
+Landroid/media/Cea708CCWidget$CCHandler;->mCurrentWindowLayout:Landroid/media/Cea708CCWidget$CCWindowLayout;
+Landroid/media/Cea708CCWidget$CCHandler;->mHandler:Landroid/os/Handler;
+Landroid/media/Cea708CCWidget$CCHandler;->mIsDelayed:Z
+Landroid/media/Cea708CCWidget$CCHandler;->mPendingCaptionEvents:Ljava/util/ArrayList;
+Landroid/media/Cea708CCWidget$CCHandler;->MSG_CAPTION_CLEAR:I
+Landroid/media/Cea708CCWidget$CCHandler;->MSG_DELAY_CANCEL:I
+Landroid/media/Cea708CCWidget$CCHandler;->processCaptionEvent(Landroid/media/Cea708CCParser$CaptionEvent;)V
+Landroid/media/Cea708CCWidget$CCHandler;->processPendingBuffer()V
+Landroid/media/Cea708CCWidget$CCHandler;->reset()V
+Landroid/media/Cea708CCWidget$CCHandler;->sendBufferToCurrentWindow(Ljava/lang/String;)V
+Landroid/media/Cea708CCWidget$CCHandler;->sendControlToCurrentWindow(C)V
+Landroid/media/Cea708CCWidget$CCHandler;->setCurrentWindowLayout(I)V
+Landroid/media/Cea708CCWidget$CCHandler;->setPenAttr(Landroid/media/Cea708CCParser$CaptionPenAttr;)V
+Landroid/media/Cea708CCWidget$CCHandler;->setPenColor(Landroid/media/Cea708CCParser$CaptionPenColor;)V
+Landroid/media/Cea708CCWidget$CCHandler;->setPenLocation(Landroid/media/Cea708CCParser$CaptionPenLocation;)V
+Landroid/media/Cea708CCWidget$CCHandler;->setWindowAttr(Landroid/media/Cea708CCParser$CaptionWindowAttr;)V
+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;
+Landroid/media/Cea708CCWidget$CCLayout;->removeViewFromSafeTitleArea(Landroid/media/Cea708CCWidget$CCWindowLayout;)V
+Landroid/media/Cea708CCWidget$CCLayout;->SAFE_TITLE_AREA_SCALE_END_X:F
+Landroid/media/Cea708CCWidget$CCLayout;->SAFE_TITLE_AREA_SCALE_END_Y:F
+Landroid/media/Cea708CCWidget$CCLayout;->SAFE_TITLE_AREA_SCALE_START_X:F
+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
+Landroid/media/Cea708CCWidget$CCWindowLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_HORIZONTAL_16_9_MAX:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_HORIZONTAL_MODE_CENTER:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_HORIZONTAL_MODE_LEFT:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_HORIZONTAL_MODE_RIGHT:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_MODE_DIVIDER:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_RELATIVE_POSITIONING_MAX:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_VERTICAL_MAX:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_VERTICAL_MODE_BOTTOM:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_VERTICAL_MODE_CENTER:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->ANCHOR_VERTICAL_MODE_TOP:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->appendText(Ljava/lang/String;)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->clear()V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->clearText()V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->getCaptionWindowId()I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->getScreenColumnCount()I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->hide()V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->initWindow(Landroid/media/Cea708CCWidget$CCLayout;Landroid/media/Cea708CCParser$CaptionWindow;)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->MAX_COLUMN_COUNT_16_9:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mBuilder:Landroid/text/SpannableStringBuilder;
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mCaptionStyle:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mCaptionWindowId:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mCCLayout:Landroid/media/Cea708CCWidget$CCLayout;
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mCCView:Landroid/media/Cea708CCWidget$CCView;
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mCharacterStyles:Ljava/util/List;
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mFontScale:F
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mLastCaptionLayoutHeight:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mLastCaptionLayoutWidth:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mRow:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mRowLimit:I
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mTextSize:F
+Landroid/media/Cea708CCWidget$CCWindowLayout;->mWidestChar:Ljava/lang/String;
+Landroid/media/Cea708CCWidget$CCWindowLayout;->PROPORTION_PEN_SIZE_LARGE:F
+Landroid/media/Cea708CCWidget$CCWindowLayout;->PROPORTION_PEN_SIZE_SMALL:F
+Landroid/media/Cea708CCWidget$CCWindowLayout;->removeFromCaptionView()V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->sendBuffer(Ljava/lang/String;)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->sendControl(C)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setCaptionWindowId(I)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setFontScale(F)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setPenAttr(Landroid/media/Cea708CCParser$CaptionPenAttr;)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setPenColor(Landroid/media/Cea708CCParser$CaptionPenColor;)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setPenLocation(II)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setRowLimit(I)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setText(Ljava/lang/String;)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->setWindowAttr(Landroid/media/Cea708CCParser$CaptionWindowAttr;)V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->show()V
+Landroid/media/Cea708CCWidget$CCWindowLayout;->TAG:Ljava/lang/String;
+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
+Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;->scaleEndRow:F
+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
+Landroid/media/Cea708CCWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+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
+Landroid/media/ClosedCaptionWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/media/ClosedCaptionWidget;->createCaptionLayout(Landroid/content/Context;)Landroid/media/ClosedCaptionWidget$ClosedCaptionLayout;
+Landroid/media/ClosedCaptionWidget;->DEFAULT_CAPTION_STYLE:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/media/ClosedCaptionWidget;->manageChangeListener()V
+Landroid/media/ClosedCaptionWidget;->mCaptioningListener:Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;
+Landroid/media/ClosedCaptionWidget;->mCaptionStyle:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/media/ClosedCaptionWidget;->mClosedCaptionLayout:Landroid/media/ClosedCaptionWidget$ClosedCaptionLayout;
+Landroid/media/ClosedCaptionWidget;->mHasChangeListener:Z
+Landroid/media/ClosedCaptionWidget;->mListener:Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
+Landroid/media/ClosedCaptionWidget;->mManager:Landroid/view/accessibility/CaptioningManager;
+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;
+Landroid/media/DataSourceDesc$Builder;->mEndPositionMs:J
+Landroid/media/DataSourceDesc$Builder;->mFD:Ljava/io/FileDescriptor;
+Landroid/media/DataSourceDesc$Builder;->mFDLength:J
+Landroid/media/DataSourceDesc$Builder;->mFDOffset:J
+Landroid/media/DataSourceDesc$Builder;->mMedia2DataSource:Landroid/media/Media2DataSource;
+Landroid/media/DataSourceDesc$Builder;->mMediaId:Ljava/lang/String;
+Landroid/media/DataSourceDesc$Builder;->mStartPositionMs:J
+Landroid/media/DataSourceDesc$Builder;->mType:I
+Landroid/media/DataSourceDesc$Builder;->mUri:Landroid/net/Uri;
+Landroid/media/DataSourceDesc$Builder;->mUriContext:Landroid/content/Context;
+Landroid/media/DataSourceDesc$Builder;->mUriCookies:Ljava/util/List;
+Landroid/media/DataSourceDesc$Builder;->mUriHeader:Ljava/util/Map;
+Landroid/media/DataSourceDesc$Builder;->resetDataSource()V
+Landroid/media/DataSourceDesc$Builder;->setDataSource(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/DataSourceDesc$Builder;
+Landroid/media/DataSourceDesc$Builder;->setDataSource(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;Ljava/util/List;)Landroid/media/DataSourceDesc$Builder;
+Landroid/media/DataSourceDesc$Builder;->setDataSource(Landroid/media/Media2DataSource;)Landroid/media/DataSourceDesc$Builder;
+Landroid/media/DataSourceDesc$Builder;->setDataSource(Ljava/io/FileDescriptor;)Landroid/media/DataSourceDesc$Builder;
+Landroid/media/DataSourceDesc$Builder;->setDataSource(Ljava/io/FileDescriptor;JJ)Landroid/media/DataSourceDesc$Builder;
+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;
+Landroid/media/DataSourceDesc;->getFileDescriptorLength()J
+Landroid/media/DataSourceDesc;->getFileDescriptorOffset()J
+Landroid/media/DataSourceDesc;->getMedia2DataSource()Landroid/media/Media2DataSource;
+Landroid/media/DataSourceDesc;->getMediaId()Ljava/lang/String;
+Landroid/media/DataSourceDesc;->getStartPosition()J
+Landroid/media/DataSourceDesc;->getType()I
+Landroid/media/DataSourceDesc;->getUri()Landroid/net/Uri;
+Landroid/media/DataSourceDesc;->getUriContext()Landroid/content/Context;
+Landroid/media/DataSourceDesc;->getUriCookies()Ljava/util/List;
+Landroid/media/DataSourceDesc;->getUriHeaders()Ljava/util/Map;
+Landroid/media/DataSourceDesc;->LONG_MAX:J
+Landroid/media/DataSourceDesc;->mEndPositionMs:J
+Landroid/media/DataSourceDesc;->mFD:Ljava/io/FileDescriptor;
+Landroid/media/DataSourceDesc;->mFDLength:J
+Landroid/media/DataSourceDesc;->mFDOffset:J
+Landroid/media/DataSourceDesc;->mMedia2DataSource:Landroid/media/Media2DataSource;
+Landroid/media/DataSourceDesc;->mMediaId:Ljava/lang/String;
+Landroid/media/DataSourceDesc;->mStartPositionMs:J
+Landroid/media/DataSourceDesc;->mType:I
+Landroid/media/DataSourceDesc;->mUri:Landroid/net/Uri;
+Landroid/media/DataSourceDesc;->mUriContext:Landroid/content/Context;
+Landroid/media/DataSourceDesc;->mUriCookies:Ljava/util/List;
+Landroid/media/DataSourceDesc;->mUriHeader:Ljava/util/Map;
+Landroid/media/DataSourceDesc;->TYPE_CALLBACK:I
+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
+Landroid/media/DecoderCapabilities;->native_get_num_video_decoders()I
+Landroid/media/DecoderCapabilities;->native_get_video_decoder_type(I)I
+Landroid/media/DecoderCapabilities;->native_init()V
+Landroid/media/DrmInitData$SchemeInitData;-><init>(Ljava/lang/String;[B)V
+Landroid/media/DrmInitData;-><init>()V
+Landroid/media/effect/EffectContext;-><init>()V
+Landroid/media/effect/EffectContext;->assertValidGLState()V
+Landroid/media/effect/EffectContext;->GL_STATE_ARRAYBUFFER:I
+Landroid/media/effect/EffectContext;->GL_STATE_COUNT:I
+Landroid/media/effect/EffectContext;->GL_STATE_FBO:I
+Landroid/media/effect/EffectContext;->GL_STATE_PROGRAM:I
+Landroid/media/effect/EffectContext;->initInCurrentGlContext()V
+Landroid/media/effect/EffectContext;->mFactory:Landroid/media/effect/EffectFactory;
+Landroid/media/effect/EffectContext;->mFilterContext:Landroid/filterfw/core/FilterContext;
+Landroid/media/effect/EffectContext;->mOldState:[I
+Landroid/media/effect/EffectContext;->restoreGLState()V
+Landroid/media/effect/EffectContext;->saveGLState()V
+Landroid/media/effect/EffectFactory;-><init>(Landroid/media/effect/EffectContext;)V
+Landroid/media/effect/EffectFactory;->EFFECT_IDENTITY:Ljava/lang/String;
+Landroid/media/effect/EffectFactory;->EFFECT_PACKAGES:[Ljava/lang/String;
+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
+Landroid/media/effect/FilterEffect;->frameFromTexture(III)Landroid/filterfw/core/Frame;
+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;
+Landroid/media/effect/FilterGraphEffect;->mInputName:Ljava/lang/String;
+Landroid/media/effect/FilterGraphEffect;->mOutputName:Ljava/lang/String;
+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
+Landroid/media/EncoderCapabilities$AudioEncoderCap;->mMaxChannels:I
+Landroid/media/EncoderCapabilities$AudioEncoderCap;->mMaxSampleRate:I
+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
+Landroid/media/EncoderCapabilities;->native_get_audio_encoder_cap(I)Landroid/media/EncoderCapabilities$AudioEncoderCap;
+Landroid/media/EncoderCapabilities;->native_get_file_format(I)I
+Landroid/media/EncoderCapabilities;->native_get_num_audio_encoders()I
+Landroid/media/EncoderCapabilities;->native_get_num_file_formats()I
+Landroid/media/EncoderCapabilities;->native_get_num_video_encoders()I
+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;
+Landroid/media/ExifInterface$ByteOrderedDataInputStream;->LITTLE_ENDIAN:Ljava/nio/ByteOrder;
+Landroid/media/ExifInterface$ByteOrderedDataInputStream;->mByteOrder:Ljava/nio/ByteOrder;
+Landroid/media/ExifInterface$ByteOrderedDataInputStream;->mDataInputStream:Ljava/io/DataInputStream;
+Landroid/media/ExifInterface$ByteOrderedDataInputStream;->mInputStream:Ljava/io/InputStream;
+Landroid/media/ExifInterface$ByteOrderedDataInputStream;->mLength:I
+Landroid/media/ExifInterface$ByteOrderedDataInputStream;->mPosition:I
+Landroid/media/ExifInterface$ByteOrderedDataInputStream;->peek()I
+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;
+Landroid/media/ExifInterface$ByteOrderedDataOutputStream;->setByteOrder(Ljava/nio/ByteOrder;)V
+Landroid/media/ExifInterface$ByteOrderedDataOutputStream;->writeByte(I)V
+Landroid/media/ExifInterface$ByteOrderedDataOutputStream;->writeInt(I)V
+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;
+Landroid/media/ExifInterface$ExifAttribute;->createDouble(DLjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createDouble([DLjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createSLong(ILjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createSLong([ILjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createSRational(Landroid/media/ExifInterface$Rational;Ljava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createSRational([Landroid/media/ExifInterface$Rational;Ljava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createString(Ljava/lang/String;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createULong([JLjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createURational(Landroid/media/ExifInterface$Rational;Ljava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createURational([Landroid/media/ExifInterface$Rational;Ljava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->createUShort([ILjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface$ExifAttribute;->format:I
+Landroid/media/ExifInterface$ExifAttribute;->getDoubleValue(Ljava/nio/ByteOrder;)D
+Landroid/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I
+Landroid/media/ExifInterface$ExifAttribute;->getStringValue(Ljava/nio/ByteOrder;)Ljava/lang/String;
+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
+Landroid/media/ExifInterface$Rational;->numerator:J
+Landroid/media/ExifInterface;->addDefaultValuesForCompatibility()V
+Landroid/media/ExifInterface;->ASCII:Ljava/nio/charset/Charset;
+Landroid/media/ExifInterface;->BITS_PER_SAMPLE_GREYSCALE_1:[I
+Landroid/media/ExifInterface;->BITS_PER_SAMPLE_GREYSCALE_2:[I
+Landroid/media/ExifInterface;->BITS_PER_SAMPLE_RGB:[I
+Landroid/media/ExifInterface;->BYTE_ALIGN_II:S
+Landroid/media/ExifInterface;->BYTE_ALIGN_MM:S
+Landroid/media/ExifInterface;->containsMatch([B[B)Z
+Landroid/media/ExifInterface;->convertToLongArray(Ljava/lang/Object;)[J
+Landroid/media/ExifInterface;->DATA_DEFLATE_ZIP:I
+Landroid/media/ExifInterface;->DATA_HUFFMAN_COMPRESSED:I
+Landroid/media/ExifInterface;->DATA_JPEG:I
+Landroid/media/ExifInterface;->DATA_JPEG_COMPRESSED:I
+Landroid/media/ExifInterface;->DATA_LOSSY_JPEG:I
+Landroid/media/ExifInterface;->DATA_PACK_BITS_COMPRESSED:I
+Landroid/media/ExifInterface;->DATA_UNCOMPRESSED:I
+Landroid/media/ExifInterface;->DEBUG:Z
+Landroid/media/ExifInterface;->EXIF_ASCII_PREFIX:[B
+Landroid/media/ExifInterface;->EXIF_POINTER_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->EXIF_TAGS:[[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroid/media/ExifInterface$ExifAttribute;
+Landroid/media/ExifInterface;->getHeifAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+Landroid/media/ExifInterface;->getJpegAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;II)V
+Landroid/media/ExifInterface;->getMimeType(Ljava/io/BufferedInputStream;)I
+Landroid/media/ExifInterface;->getOrfAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+Landroid/media/ExifInterface;->getRafAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+Landroid/media/ExifInterface;->getRawAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+Landroid/media/ExifInterface;->getRw2Attributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+Landroid/media/ExifInterface;->guessDataFormat(Ljava/lang/String;)Landroid/util/Pair;
+Landroid/media/ExifInterface;->handleThumbnailFromJfif(Landroid/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V
+Landroid/media/ExifInterface;->handleThumbnailFromStrips(Landroid/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V
+Landroid/media/ExifInterface;->HEIF_BRAND_HEIC:[B
+Landroid/media/ExifInterface;->HEIF_BRAND_MIF1:[B
+Landroid/media/ExifInterface;->HEIF_TYPE_FTYP:[B
+Landroid/media/ExifInterface;->IDENTIFIER_EXIF_APP1:[B
+Landroid/media/ExifInterface;->IFD_EXIF_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->IFD_FORMAT_BYTE:I
+Landroid/media/ExifInterface;->IFD_FORMAT_BYTES_PER_FORMAT:[I
+Landroid/media/ExifInterface;->IFD_FORMAT_DOUBLE:I
+Landroid/media/ExifInterface;->IFD_FORMAT_IFD:I
+Landroid/media/ExifInterface;->IFD_FORMAT_NAMES:[Ljava/lang/String;
+Landroid/media/ExifInterface;->IFD_FORMAT_SBYTE:I
+Landroid/media/ExifInterface;->IFD_FORMAT_SINGLE:I
+Landroid/media/ExifInterface;->IFD_FORMAT_SLONG:I
+Landroid/media/ExifInterface;->IFD_FORMAT_SRATIONAL:I
+Landroid/media/ExifInterface;->IFD_FORMAT_SSHORT:I
+Landroid/media/ExifInterface;->IFD_FORMAT_STRING:I
+Landroid/media/ExifInterface;->IFD_FORMAT_ULONG:I
+Landroid/media/ExifInterface;->IFD_FORMAT_UNDEFINED:I
+Landroid/media/ExifInterface;->IFD_FORMAT_URATIONAL:I
+Landroid/media/ExifInterface;->IFD_FORMAT_USHORT:I
+Landroid/media/ExifInterface;->IFD_GPS_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->IFD_INTEROPERABILITY_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->IFD_OFFSET:I
+Landroid/media/ExifInterface;->IFD_THUMBNAIL_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->IFD_TIFF_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->IFD_TYPE_EXIF:I
+Landroid/media/ExifInterface;->IFD_TYPE_GPS:I
+Landroid/media/ExifInterface;->IFD_TYPE_INTEROPERABILITY:I
+Landroid/media/ExifInterface;->IFD_TYPE_ORF_CAMERA_SETTINGS:I
+Landroid/media/ExifInterface;->IFD_TYPE_ORF_IMAGE_PROCESSING:I
+Landroid/media/ExifInterface;->IFD_TYPE_ORF_MAKER_NOTE:I
+Landroid/media/ExifInterface;->IFD_TYPE_PEF:I
+Landroid/media/ExifInterface;->IFD_TYPE_PREVIEW:I
+Landroid/media/ExifInterface;->IFD_TYPE_PRIMARY:I
+Landroid/media/ExifInterface;->IFD_TYPE_THUMBNAIL:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_ARW:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_CR2:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_DNG:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_HEIF:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_JPEG:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_NEF:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_NRW:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_ORF:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_PEF:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_RAF:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_RW2:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_SRW:I
+Landroid/media/ExifInterface;->IMAGE_TYPE_UNKNOWN:I
+Landroid/media/ExifInterface;->isHeifFormat([B)Z
+Landroid/media/ExifInterface;->isJpegFormat([B)Z
+Landroid/media/ExifInterface;->isOrfFormat([B)Z
+Landroid/media/ExifInterface;->isRafFormat([B)Z
+Landroid/media/ExifInterface;->isRw2Format([B)Z
+Landroid/media/ExifInterface;->isSeekableFD(Ljava/io/FileDescriptor;)Z
+Landroid/media/ExifInterface;->isSupportedDataType(Ljava/util/HashMap;)Z
+Landroid/media/ExifInterface;->isThumbnail(Ljava/util/HashMap;)Z
+Landroid/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_LENGTH_TAG:Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->JPEG_INTERCHANGE_FORMAT_TAG:Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->JPEG_SIGNATURE:[B
+Landroid/media/ExifInterface;->loadAttributes(Ljava/io/InputStream;)V
+Landroid/media/ExifInterface;->MARKER:B
+Landroid/media/ExifInterface;->MARKER_APP1:B
+Landroid/media/ExifInterface;->MARKER_COM:B
+Landroid/media/ExifInterface;->MARKER_EOI:B
+Landroid/media/ExifInterface;->MARKER_SOF0:B
+Landroid/media/ExifInterface;->MARKER_SOF10:B
+Landroid/media/ExifInterface;->MARKER_SOF11:B
+Landroid/media/ExifInterface;->MARKER_SOF13:B
+Landroid/media/ExifInterface;->MARKER_SOF14:B
+Landroid/media/ExifInterface;->MARKER_SOF15:B
+Landroid/media/ExifInterface;->MARKER_SOF1:B
+Landroid/media/ExifInterface;->MARKER_SOF2:B
+Landroid/media/ExifInterface;->MARKER_SOF3:B
+Landroid/media/ExifInterface;->MARKER_SOF5:B
+Landroid/media/ExifInterface;->MARKER_SOF6:B
+Landroid/media/ExifInterface;->MARKER_SOF7:B
+Landroid/media/ExifInterface;->MARKER_SOF9:B
+Landroid/media/ExifInterface;->MARKER_SOI:B
+Landroid/media/ExifInterface;->MARKER_SOS:B
+Landroid/media/ExifInterface;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream;
+Landroid/media/ExifInterface;->mAttributesOffsets:Ljava/util/Set;
+Landroid/media/ExifInterface;->MAX_THUMBNAIL_SIZE:I
+Landroid/media/ExifInterface;->mExifByteOrder:Ljava/nio/ByteOrder;
+Landroid/media/ExifInterface;->mExifOffset:I
+Landroid/media/ExifInterface;->mIsInputStream:Z
+Landroid/media/ExifInterface;->mIsSupportedFile:Z
+Landroid/media/ExifInterface;->mMimeType:I
+Landroid/media/ExifInterface;->mOrfMakerNoteOffset:I
+Landroid/media/ExifInterface;->mOrfThumbnailLength:I
+Landroid/media/ExifInterface;->mOrfThumbnailOffset:I
+Landroid/media/ExifInterface;->mRw2JpgFromRawOffset:I
+Landroid/media/ExifInterface;->mSeekableFileDescriptor:Ljava/io/FileDescriptor;
+Landroid/media/ExifInterface;->mThumbnailBytes:[B
+Landroid/media/ExifInterface;->mThumbnailCompression:I
+Landroid/media/ExifInterface;->mThumbnailLength:I
+Landroid/media/ExifInterface;->mThumbnailOffset:I
+Landroid/media/ExifInterface;->ORF_CAMERA_SETTINGS_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->ORF_IMAGE_PROCESSING_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_1:[B
+Landroid/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_1_SIZE:I
+Landroid/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_2:[B
+Landroid/media/ExifInterface;->ORF_MAKER_NOTE_HEADER_2_SIZE:I
+Landroid/media/ExifInterface;->ORF_MAKER_NOTE_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->ORF_SIGNATURE_1:S
+Landroid/media/ExifInterface;->ORF_SIGNATURE_2:S
+Landroid/media/ExifInterface;->ORIGINAL_RESOLUTION_IMAGE:I
+Landroid/media/ExifInterface;->parseTiffHeaders(Landroid/media/ExifInterface$ByteOrderedDataInputStream;I)V
+Landroid/media/ExifInterface;->PEF_MAKER_NOTE_SKIP_SIZE:I
+Landroid/media/ExifInterface;->PEF_SIGNATURE:Ljava/lang/String;
+Landroid/media/ExifInterface;->PEF_TAGS:[Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->PHOTOMETRIC_INTERPRETATION_BLACK_IS_ZERO:I
+Landroid/media/ExifInterface;->PHOTOMETRIC_INTERPRETATION_RGB:I
+Landroid/media/ExifInterface;->PHOTOMETRIC_INTERPRETATION_WHITE_IS_ZERO:I
+Landroid/media/ExifInterface;->PHOTOMETRIC_INTERPRETATION_YCBCR:I
+Landroid/media/ExifInterface;->printAttributes()V
+Landroid/media/ExifInterface;->RAF_INFO_SIZE:I
+Landroid/media/ExifInterface;->RAF_JPEG_LENGTH_VALUE_SIZE:I
+Landroid/media/ExifInterface;->RAF_OFFSET_TO_JPEG_IMAGE_OFFSET:I
+Landroid/media/ExifInterface;->RAF_SIGNATURE:Ljava/lang/String;
+Landroid/media/ExifInterface;->readByteOrder(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)Ljava/nio/ByteOrder;
+Landroid/media/ExifInterface;->readExifSegment([BI)V
+Landroid/media/ExifInterface;->readImageFileDirectory(Landroid/media/ExifInterface$ByteOrderedDataInputStream;I)V
+Landroid/media/ExifInterface;->REDUCED_RESOLUTION_IMAGE:I
+Landroid/media/ExifInterface;->removeAttribute(Ljava/lang/String;)V
+Landroid/media/ExifInterface;->retrieveJpegImageSize(Landroid/media/ExifInterface$ByteOrderedDataInputStream;I)V
+Landroid/media/ExifInterface;->RW2_SIGNATURE:S
+Landroid/media/ExifInterface;->saveJpegAttributes(Ljava/io/InputStream;Ljava/io/OutputStream;)V
+Landroid/media/ExifInterface;->setThumbnailData(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+Landroid/media/ExifInterface;->sExifPointerTagMap:Ljava/util/HashMap;
+Landroid/media/ExifInterface;->sExifTagMapsForReading:[Ljava/util/HashMap;
+Landroid/media/ExifInterface;->sExifTagMapsForWriting:[Ljava/util/HashMap;
+Landroid/media/ExifInterface;->sGpsTimestampPattern:Ljava/util/regex/Pattern;
+Landroid/media/ExifInterface;->SIGNATURE_CHECK_SIZE:I
+Landroid/media/ExifInterface;->sNonZeroTimePattern:Ljava/util/regex/Pattern;
+Landroid/media/ExifInterface;->sTagSetForCompatibility:Ljava/util/HashSet;
+Landroid/media/ExifInterface;->START_CODE:B
+Landroid/media/ExifInterface;->swapBasedOnImageSize(II)V
+Landroid/media/ExifInterface;->TAG:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_EXIF_IFD_POINTER:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_GPS_INFO_IFD_POINTER:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_HAS_THUMBNAIL:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_INTEROPERABILITY_IFD_POINTER:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_ORF_CAMERA_SETTINGS_IFD_POINTER:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_ORF_IMAGE_PROCESSING_IFD_POINTER:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_RAF_IMAGE_SIZE:Landroid/media/ExifInterface$ExifTag;
+Landroid/media/ExifInterface;->TAG_SUB_IFD_POINTER:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_THUMBNAIL_DATA:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_THUMBNAIL_LENGTH:Ljava/lang/String;
+Landroid/media/ExifInterface;->TAG_THUMBNAIL_OFFSET:Ljava/lang/String;
+Landroid/media/ExifInterface;->updateAttribute(Ljava/lang/String;Landroid/media/ExifInterface$ExifAttribute;)Z
+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
+Landroid/media/FaceDetector$Face;->mMidPointY:F
+Landroid/media/FaceDetector$Face;->mPoseEulerX:F
+Landroid/media/FaceDetector$Face;->mPoseEulerY:F
+Landroid/media/FaceDetector$Face;->mPoseEulerZ:F
+Landroid/media/FaceDetector;->fft_destroy()V
+Landroid/media/FaceDetector;->fft_detect(Landroid/graphics/Bitmap;)I
+Landroid/media/FaceDetector;->fft_get_face(Landroid/media/FaceDetector$Face;I)V
+Landroid/media/FaceDetector;->fft_initialize(III)I
+Landroid/media/FaceDetector;->mBWBuffer:[B
+Landroid/media/FaceDetector;->mDCR:J
+Landroid/media/FaceDetector;->mFD:J
+Landroid/media/FaceDetector;->mHeight:I
+Landroid/media/FaceDetector;->mMaxFaces:I
+Landroid/media/FaceDetector;->mSDK:J
+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
+Landroid/media/IAudioService$Stub$Proxy;->adjustSuggestedStreamVolume(IIILjava/lang/String;Ljava/lang/String;)V
+Landroid/media/IAudioService$Stub$Proxy;->avrcpSupportsAbsoluteVolume(Ljava/lang/String;Z)V
+Landroid/media/IAudioService$Stub$Proxy;->disableRingtoneSync(I)V
+Landroid/media/IAudioService$Stub$Proxy;->disableSafeMediaVolume(Ljava/lang/String;)V
+Landroid/media/IAudioService$Stub$Proxy;->dispatchFocusChange(Landroid/media/AudioFocusInfo;ILandroid/media/audiopolicy/IAudioPolicyCallback;)I
+Landroid/media/IAudioService$Stub$Proxy;->forceRemoteSubmixFullVolume(ZLandroid/os/IBinder;)V
+Landroid/media/IAudioService$Stub$Proxy;->forceVolumeControlStream(ILandroid/os/IBinder;)V
+Landroid/media/IAudioService$Stub$Proxy;->getActivePlaybackConfigurations()Ljava/util/List;
+Landroid/media/IAudioService$Stub$Proxy;->getActiveRecordingConfigurations()Ljava/util/List;
+Landroid/media/IAudioService$Stub$Proxy;->getCurrentAudioFocus()I
+Landroid/media/IAudioService$Stub$Proxy;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
+Landroid/media/IAudioService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/IAudioService$Stub$Proxy;->getLastAudibleStreamVolume(I)I
+Landroid/media/IAudioService$Stub$Proxy;->getMode()I
+Landroid/media/IAudioService$Stub$Proxy;->getRingerModeExternal()I
+Landroid/media/IAudioService$Stub$Proxy;->getRingerModeInternal()I
+Landroid/media/IAudioService$Stub$Proxy;->getRingtonePlayer()Landroid/media/IRingtonePlayer;
+Landroid/media/IAudioService$Stub$Proxy;->getStreamMaxVolume(I)I
+Landroid/media/IAudioService$Stub$Proxy;->getStreamMinVolume(I)I
+Landroid/media/IAudioService$Stub$Proxy;->getStreamVolume(I)I
+Landroid/media/IAudioService$Stub$Proxy;->getUiSoundsStreamType()I
+Landroid/media/IAudioService$Stub$Proxy;->getVibrateSetting(I)I
+Landroid/media/IAudioService$Stub$Proxy;->handleBluetoothA2dpDeviceConfigChange(Landroid/bluetooth/BluetoothDevice;)V
+Landroid/media/IAudioService$Stub$Proxy;->isAudioServerRunning()Z
+Landroid/media/IAudioService$Stub$Proxy;->isBluetoothA2dpOn()Z
+Landroid/media/IAudioService$Stub$Proxy;->isBluetoothScoOn()Z
+Landroid/media/IAudioService$Stub$Proxy;->isCameraSoundForced()Z
+Landroid/media/IAudioService$Stub$Proxy;->isHdmiSystemAudioSupported()Z
+Landroid/media/IAudioService$Stub$Proxy;->isMasterMute()Z
+Landroid/media/IAudioService$Stub$Proxy;->isSpeakerphoneOn()Z
+Landroid/media/IAudioService$Stub$Proxy;->isStreamAffectedByMute(I)Z
+Landroid/media/IAudioService$Stub$Proxy;->isStreamAffectedByRingerMode(I)Z
+Landroid/media/IAudioService$Stub$Proxy;->isStreamMute(I)Z
+Landroid/media/IAudioService$Stub$Proxy;->isValidRingerMode(I)Z
+Landroid/media/IAudioService$Stub$Proxy;->loadSoundEffects()Z
+Landroid/media/IAudioService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/IAudioService$Stub$Proxy;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
+Landroid/media/IAudioService$Stub$Proxy;->playerAttributes(ILandroid/media/AudioAttributes;)V
+Landroid/media/IAudioService$Stub$Proxy;->playerEvent(II)V
+Landroid/media/IAudioService$Stub$Proxy;->playerHasOpPlayAudio(IZ)V
+Landroid/media/IAudioService$Stub$Proxy;->playSoundEffect(I)V
+Landroid/media/IAudioService$Stub$Proxy;->playSoundEffectVolume(IF)V
+Landroid/media/IAudioService$Stub$Proxy;->registerAudioPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZ)Ljava/lang/String;
+Landroid/media/IAudioService$Stub$Proxy;->registerAudioServerStateDispatcher(Landroid/media/IAudioServerStateDispatcher;)V
+Landroid/media/IAudioService$Stub$Proxy;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+Landroid/media/IAudioService$Stub$Proxy;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
+Landroid/media/IAudioService$Stub$Proxy;->releasePlayer(I)V
+Landroid/media/IAudioService$Stub$Proxy;->reloadAudioSettings()V
+Landroid/media/IAudioService$Stub$Proxy;->removeMixForPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;)I
+Landroid/media/IAudioService$Stub$Proxy;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I
+Landroid/media/IAudioService$Stub$Proxy;->setBluetoothA2dpDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;II)I
+Landroid/media/IAudioService$Stub$Proxy;->setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(Landroid/bluetooth/BluetoothDevice;IIZI)I
+Landroid/media/IAudioService$Stub$Proxy;->setBluetoothA2dpOn(Z)V
+Landroid/media/IAudioService$Stub$Proxy;->setBluetoothScoOn(Z)V
+Landroid/media/IAudioService$Stub$Proxy;->setFocusPropertiesForPolicy(ILandroid/media/audiopolicy/IAudioPolicyCallback;)I
+Landroid/media/IAudioService$Stub$Proxy;->setFocusRequestResultFromExtPolicy(Landroid/media/AudioFocusInfo;ILandroid/media/audiopolicy/IAudioPolicyCallback;)V
+Landroid/media/IAudioService$Stub$Proxy;->setHdmiSystemAudioSupported(Z)I
+Landroid/media/IAudioService$Stub$Proxy;->setHearingAidDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;I)V
+Landroid/media/IAudioService$Stub$Proxy;->setMasterMute(ZILjava/lang/String;I)V
+Landroid/media/IAudioService$Stub$Proxy;->setMicrophoneMute(ZLjava/lang/String;I)V
+Landroid/media/IAudioService$Stub$Proxy;->setMode(ILandroid/os/IBinder;Ljava/lang/String;)V
+Landroid/media/IAudioService$Stub$Proxy;->setRingerModeExternal(ILjava/lang/String;)V
+Landroid/media/IAudioService$Stub$Proxy;->setRingerModeInternal(ILjava/lang/String;)V
+Landroid/media/IAudioService$Stub$Proxy;->setRingtonePlayer(Landroid/media/IRingtonePlayer;)V
+Landroid/media/IAudioService$Stub$Proxy;->setSpeakerphoneOn(Z)V
+Landroid/media/IAudioService$Stub$Proxy;->setStreamVolume(IIILjava/lang/String;)V
+Landroid/media/IAudioService$Stub$Proxy;->setVibrateSetting(II)V
+Landroid/media/IAudioService$Stub$Proxy;->setVolumeController(Landroid/media/IVolumeController;)V
+Landroid/media/IAudioService$Stub$Proxy;->setVolumePolicy(Landroid/media/VolumePolicy;)V
+Landroid/media/IAudioService$Stub$Proxy;->setWiredDeviceConnectionState(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/media/IAudioService$Stub$Proxy;->shouldVibrate(I)Z
+Landroid/media/IAudioService$Stub$Proxy;->startBluetoothSco(Landroid/os/IBinder;I)V
+Landroid/media/IAudioService$Stub$Proxy;->startBluetoothScoVirtualCall(Landroid/os/IBinder;)V
+Landroid/media/IAudioService$Stub$Proxy;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
+Landroid/media/IAudioService$Stub$Proxy;->stopBluetoothSco(Landroid/os/IBinder;)V
+Landroid/media/IAudioService$Stub$Proxy;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
+Landroid/media/IAudioService$Stub$Proxy;->unloadSoundEffects()V
+Landroid/media/IAudioService$Stub$Proxy;->unregisterAudioFocusClient(Ljava/lang/String;)V
+Landroid/media/IAudioService$Stub$Proxy;->unregisterAudioPolicyAsync(Landroid/media/audiopolicy/IAudioPolicyCallback;)V
+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
+Landroid/media/IAudioService$Stub;->TRANSACTION_adjustStreamVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_adjustSuggestedStreamVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_avrcpSupportsAbsoluteVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_disableRingtoneSync:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_disableSafeMediaVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_dispatchFocusChange:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_forceRemoteSubmixFullVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_forceVolumeControlStream:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getActivePlaybackConfigurations:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getActiveRecordingConfigurations:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getCurrentAudioFocus:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getFocusRampTimeMs:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getLastAudibleStreamVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getMode:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getRingerModeExternal:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getRingerModeInternal:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getRingtonePlayer:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getStreamMaxVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getStreamMinVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getStreamVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getUiSoundsStreamType:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_getVibrateSetting:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_handleBluetoothA2dpDeviceConfigChange:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isAudioServerRunning:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isBluetoothA2dpOn:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isBluetoothScoOn:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isCameraSoundForced:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isHdmiSystemAudioSupported:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isMasterMute:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isSpeakerphoneOn:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isStreamAffectedByMute:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isStreamAffectedByRingerMode:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isStreamMute:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_isValidRingerMode:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_loadSoundEffects:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_notifyVolumeControllerVisible:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_playerAttributes:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_playerEvent:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_playerHasOpPlayAudio:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_playSoundEffect:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_playSoundEffectVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_registerAudioPolicy:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_registerAudioServerStateDispatcher:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_registerPlaybackCallback:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_registerRecordingCallback:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_releasePlayer:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_reloadAudioSettings:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_removeMixForPolicy:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_requestAudioFocus:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setBluetoothA2dpDeviceConnectionState:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setBluetoothA2dpOn:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setBluetoothScoOn:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setFocusPropertiesForPolicy:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setFocusRequestResultFromExtPolicy:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setHdmiSystemAudioSupported:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setHearingAidDeviceConnectionState:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setMasterMute:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setMicrophoneMute:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setMode:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setRingerModeExternal:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setRingerModeInternal:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setRingtonePlayer:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setSpeakerphoneOn:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setStreamVolume:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setVibrateSetting:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setVolumeController:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setVolumePolicy:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_setWiredDeviceConnectionState:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_shouldVibrate:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_startBluetoothSco:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_startBluetoothScoVirtualCall:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_startWatchingRoutes:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_stopBluetoothSco:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_trackPlayer:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_unloadSoundEffects:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_unregisterAudioFocusClient:I
+Landroid/media/IAudioService$Stub;->TRANSACTION_unregisterAudioPolicyAsync:I
+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
+Landroid/media/IAudioService;->adjustSuggestedStreamVolume(IIILjava/lang/String;Ljava/lang/String;)V
+Landroid/media/IAudioService;->avrcpSupportsAbsoluteVolume(Ljava/lang/String;Z)V
+Landroid/media/IAudioService;->disableRingtoneSync(I)V
+Landroid/media/IAudioService;->disableSafeMediaVolume(Ljava/lang/String;)V
+Landroid/media/IAudioService;->dispatchFocusChange(Landroid/media/AudioFocusInfo;ILandroid/media/audiopolicy/IAudioPolicyCallback;)I
+Landroid/media/IAudioService;->forceRemoteSubmixFullVolume(ZLandroid/os/IBinder;)V
+Landroid/media/IAudioService;->forceVolumeControlStream(ILandroid/os/IBinder;)V
+Landroid/media/IAudioService;->getActivePlaybackConfigurations()Ljava/util/List;
+Landroid/media/IAudioService;->getActiveRecordingConfigurations()Ljava/util/List;
+Landroid/media/IAudioService;->getCurrentAudioFocus()I
+Landroid/media/IAudioService;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
+Landroid/media/IAudioService;->getLastAudibleStreamVolume(I)I
+Landroid/media/IAudioService;->getMode()I
+Landroid/media/IAudioService;->getRingerModeExternal()I
+Landroid/media/IAudioService;->getRingerModeInternal()I
+Landroid/media/IAudioService;->getRingtonePlayer()Landroid/media/IRingtonePlayer;
+Landroid/media/IAudioService;->getStreamMinVolume(I)I
+Landroid/media/IAudioService;->getUiSoundsStreamType()I
+Landroid/media/IAudioService;->getVibrateSetting(I)I
+Landroid/media/IAudioService;->handleBluetoothA2dpDeviceConfigChange(Landroid/bluetooth/BluetoothDevice;)V
+Landroid/media/IAudioService;->isAudioServerRunning()Z
+Landroid/media/IAudioService;->isBluetoothA2dpOn()Z
+Landroid/media/IAudioService;->isBluetoothScoOn()Z
+Landroid/media/IAudioService;->isCameraSoundForced()Z
+Landroid/media/IAudioService;->isHdmiSystemAudioSupported()Z
+Landroid/media/IAudioService;->isMasterMute()Z
+Landroid/media/IAudioService;->isSpeakerphoneOn()Z
+Landroid/media/IAudioService;->isStreamAffectedByMute(I)Z
+Landroid/media/IAudioService;->isStreamAffectedByRingerMode(I)Z
+Landroid/media/IAudioService;->isStreamMute(I)Z
+Landroid/media/IAudioService;->isValidRingerMode(I)Z
+Landroid/media/IAudioService;->loadSoundEffects()Z
+Landroid/media/IAudioService;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
+Landroid/media/IAudioService;->playerAttributes(ILandroid/media/AudioAttributes;)V
+Landroid/media/IAudioService;->playerEvent(II)V
+Landroid/media/IAudioService;->playerHasOpPlayAudio(IZ)V
+Landroid/media/IAudioService;->playSoundEffect(I)V
+Landroid/media/IAudioService;->playSoundEffectVolume(IF)V
+Landroid/media/IAudioService;->registerAudioPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZ)Ljava/lang/String;
+Landroid/media/IAudioService;->registerAudioServerStateDispatcher(Landroid/media/IAudioServerStateDispatcher;)V
+Landroid/media/IAudioService;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+Landroid/media/IAudioService;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
+Landroid/media/IAudioService;->releasePlayer(I)V
+Landroid/media/IAudioService;->reloadAudioSettings()V
+Landroid/media/IAudioService;->removeMixForPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;)I
+Landroid/media/IAudioService;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I
+Landroid/media/IAudioService;->setBluetoothA2dpDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;II)I
+Landroid/media/IAudioService;->setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(Landroid/bluetooth/BluetoothDevice;IIZI)I
+Landroid/media/IAudioService;->setBluetoothA2dpOn(Z)V
+Landroid/media/IAudioService;->setBluetoothScoOn(Z)V
+Landroid/media/IAudioService;->setFocusPropertiesForPolicy(ILandroid/media/audiopolicy/IAudioPolicyCallback;)I
+Landroid/media/IAudioService;->setFocusRequestResultFromExtPolicy(Landroid/media/AudioFocusInfo;ILandroid/media/audiopolicy/IAudioPolicyCallback;)V
+Landroid/media/IAudioService;->setHdmiSystemAudioSupported(Z)I
+Landroid/media/IAudioService;->setHearingAidDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;I)V
+Landroid/media/IAudioService;->setMasterMute(ZILjava/lang/String;I)V
+Landroid/media/IAudioService;->setMicrophoneMute(ZLjava/lang/String;I)V
+Landroid/media/IAudioService;->setMode(ILandroid/os/IBinder;Ljava/lang/String;)V
+Landroid/media/IAudioService;->setRingerModeExternal(ILjava/lang/String;)V
+Landroid/media/IAudioService;->setRingerModeInternal(ILjava/lang/String;)V
+Landroid/media/IAudioService;->setRingtonePlayer(Landroid/media/IRingtonePlayer;)V
+Landroid/media/IAudioService;->setSpeakerphoneOn(Z)V
+Landroid/media/IAudioService;->setVibrateSetting(II)V
+Landroid/media/IAudioService;->setVolumeController(Landroid/media/IVolumeController;)V
+Landroid/media/IAudioService;->setVolumePolicy(Landroid/media/VolumePolicy;)V
+Landroid/media/IAudioService;->setWiredDeviceConnectionState(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/media/IAudioService;->shouldVibrate(I)Z
+Landroid/media/IAudioService;->startBluetoothSco(Landroid/os/IBinder;I)V
+Landroid/media/IAudioService;->startBluetoothScoVirtualCall(Landroid/os/IBinder;)V
+Landroid/media/IAudioService;->stopBluetoothSco(Landroid/os/IBinder;)V
+Landroid/media/IAudioService;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
+Landroid/media/IAudioService;->unloadSoundEffects()V
+Landroid/media/IAudioService;->unregisterAudioFocusClient(Ljava/lang/String;)V
+Landroid/media/IAudioService;->unregisterAudioPolicyAsync(Landroid/media/audiopolicy/IAudioPolicyCallback;)V
+Landroid/media/IAudioService;->unregisterAudioServerStateDispatcher(Landroid/media/IAudioServerStateDispatcher;)V
+Landroid/media/IAudioService;->unregisterPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+Landroid/media/IAudioService;->unregisterRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
+Landroid/media/Image;->getNativeContext()J
+Landroid/media/Image;->getOwner()Ljava/lang/Object;
+Landroid/media/Image;->getScalingMode()I
+Landroid/media/Image;->getTransform()I
+Landroid/media/Image;->isAttachable()Z
+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;
+Landroid/media/ImageReader$SurfaceImage;->getReader()Landroid/media/ImageReader;
+Landroid/media/ImageReader$SurfaceImage;->getScalingMode()I
+Landroid/media/ImageReader$SurfaceImage;->getTransform()I
+Landroid/media/ImageReader$SurfaceImage;->isAttachable()Z
+Landroid/media/ImageReader$SurfaceImage;->mFormat:I
+Landroid/media/ImageReader$SurfaceImage;->mIsDetached:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/media/ImageReader$SurfaceImage;->mNativeBuffer:J
+Landroid/media/ImageReader$SurfaceImage;->mPlanes:[Landroid/media/ImageReader$SurfaceImage$SurfacePlane;
+Landroid/media/ImageReader$SurfaceImage;->mScalingMode:I
+Landroid/media/ImageReader$SurfaceImage;->mTimestamp:J
+Landroid/media/ImageReader$SurfaceImage;->mTransform:I
+Landroid/media/ImageReader$SurfaceImage;->nativeCreatePlanes(II)[Landroid/media/ImageReader$SurfaceImage$SurfacePlane;
+Landroid/media/ImageReader$SurfaceImage;->nativeGetFormat(I)I
+Landroid/media/ImageReader$SurfaceImage;->nativeGetHardwareBuffer()Landroid/hardware/HardwareBuffer;
+Landroid/media/ImageReader$SurfaceImage;->nativeGetHeight()I
+Landroid/media/ImageReader$SurfaceImage;->nativeGetWidth()I
+Landroid/media/ImageReader$SurfaceImage;->setDetached(Z)V
+Landroid/media/ImageReader;-><init>(IIIIJ)V
+Landroid/media/ImageReader;->acquireNextImageNoThrowISE()Landroid/media/Image;
+Landroid/media/ImageReader;->acquireNextSurfaceImage(Landroid/media/ImageReader$SurfaceImage;)I
+Landroid/media/ImageReader;->ACQUIRE_MAX_IMAGES:I
+Landroid/media/ImageReader;->ACQUIRE_NO_BUFS:I
+Landroid/media/ImageReader;->ACQUIRE_SUCCESS:I
+Landroid/media/ImageReader;->BUFFER_USAGE_UNKNOWN:J
+Landroid/media/ImageReader;->detachImage(Landroid/media/Image;)V
+Landroid/media/ImageReader;->isFormatUsageCombinationAllowed(IJ)Z
+Landroid/media/ImageReader;->isImageOwnedbyMe(Landroid/media/Image;)Z
+Landroid/media/ImageReader;->mAcquiredImages:Ljava/util/List;
+Landroid/media/ImageReader;->mCloseLock:Ljava/lang/Object;
+Landroid/media/ImageReader;->mEstimatedNativeAllocBytes:I
+Landroid/media/ImageReader;->mFormat:I
+Landroid/media/ImageReader;->mHeight:I
+Landroid/media/ImageReader;->mIsReaderValid:Z
+Landroid/media/ImageReader;->mListener:Landroid/media/ImageReader$OnImageAvailableListener;
+Landroid/media/ImageReader;->mListenerHandler:Landroid/media/ImageReader$ListenerHandler;
+Landroid/media/ImageReader;->mListenerLock:Ljava/lang/Object;
+Landroid/media/ImageReader;->mMaxImages:I
+Landroid/media/ImageReader;->mNativeContext:J
+Landroid/media/ImageReader;->mNumPlanes:I
+Landroid/media/ImageReader;->mSurface:Landroid/view/Surface;
+Landroid/media/ImageReader;->mWidth:I
+Landroid/media/ImageReader;->nativeClassInit()V
+Landroid/media/ImageReader;->nativeClose()V
+Landroid/media/ImageReader;->nativeDetachImage(Landroid/media/Image;)I
+Landroid/media/ImageReader;->nativeDiscardFreeBuffers()V
+Landroid/media/ImageReader;->nativeGetSurface()Landroid/view/Surface;
+Landroid/media/ImageReader;->nativeImageSetup(Landroid/media/Image;)I
+Landroid/media/ImageReader;->nativeInit(Ljava/lang/Object;IIIIJ)V
+Landroid/media/ImageReader;->nativeReleaseImage(Landroid/media/Image;)V
+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
+Landroid/media/ImageWriter$WriterSurfaceImage;->getNativeContext()J
+Landroid/media/ImageWriter$WriterSurfaceImage;->getOwner()Landroid/media/ImageWriter;
+Landroid/media/ImageWriter$WriterSurfaceImage;->getScalingMode()I
+Landroid/media/ImageWriter$WriterSurfaceImage;->getTransform()I
+Landroid/media/ImageWriter$WriterSurfaceImage;->isAttachable()Z
+Landroid/media/ImageWriter$WriterSurfaceImage;->mFormat:I
+Landroid/media/ImageWriter$WriterSurfaceImage;->mHeight:I
+Landroid/media/ImageWriter$WriterSurfaceImage;->mNativeBuffer:J
+Landroid/media/ImageWriter$WriterSurfaceImage;->mNativeFenceFd:I
+Landroid/media/ImageWriter$WriterSurfaceImage;->mOwner:Landroid/media/ImageWriter;
+Landroid/media/ImageWriter$WriterSurfaceImage;->mPlanes:[Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;
+Landroid/media/ImageWriter$WriterSurfaceImage;->mScalingMode:I
+Landroid/media/ImageWriter$WriterSurfaceImage;->mTimestamp:J
+Landroid/media/ImageWriter$WriterSurfaceImage;->mTransform:I
+Landroid/media/ImageWriter$WriterSurfaceImage;->mWidth:I
+Landroid/media/ImageWriter$WriterSurfaceImage;->nativeCreatePlanes(II)[Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;
+Landroid/media/ImageWriter$WriterSurfaceImage;->nativeGetFormat()I
+Landroid/media/ImageWriter$WriterSurfaceImage;->nativeGetHardwareBuffer()Landroid/hardware/HardwareBuffer;
+Landroid/media/ImageWriter$WriterSurfaceImage;->nativeGetHeight()I
+Landroid/media/ImageWriter$WriterSurfaceImage;->nativeGetWidth()I
+Landroid/media/ImageWriter;-><init>(Landroid/view/Surface;II)V
+Landroid/media/ImageWriter;->abortImage(Landroid/media/Image;)V
+Landroid/media/ImageWriter;->attachAndQueueInputImage(Landroid/media/Image;)V
+Landroid/media/ImageWriter;->cancelImage(JLandroid/media/Image;)V
+Landroid/media/ImageWriter;->isImageOwnedByMe(Landroid/media/Image;)Z
+Landroid/media/ImageWriter;->mDequeuedImages:Ljava/util/List;
+Landroid/media/ImageWriter;->mEstimatedNativeAllocBytes:I
+Landroid/media/ImageWriter;->mListener:Landroid/media/ImageWriter$OnImageReleasedListener;
+Landroid/media/ImageWriter;->mListenerHandler:Landroid/media/ImageWriter$ListenerHandler;
+Landroid/media/ImageWriter;->mListenerLock:Ljava/lang/Object;
+Landroid/media/ImageWriter;->mMaxImages:I
+Landroid/media/ImageWriter;->mNativeContext:J
+Landroid/media/ImageWriter;->mWriterFormat:I
+Landroid/media/ImageWriter;->nativeAttachAndQueueImage(JJIJIIIIII)I
+Landroid/media/ImageWriter;->nativeClassInit()V
+Landroid/media/ImageWriter;->nativeClose(J)V
+Landroid/media/ImageWriter;->nativeDequeueInputImage(JLandroid/media/Image;)V
+Landroid/media/ImageWriter;->nativeInit(Ljava/lang/Object;Landroid/view/Surface;II)J
+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
+Landroid/media/IMediaHTTPConnection$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/IMediaHTTPConnection$Stub$Proxy;->getMIMEType()Ljava/lang/String;
+Landroid/media/IMediaHTTPConnection$Stub$Proxy;->getSize()J
+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;
+Landroid/media/IMediaHTTPConnection$Stub;->TRANSACTION_connect:I
+Landroid/media/IMediaHTTPConnection$Stub;->TRANSACTION_disconnect:I
+Landroid/media/IMediaHTTPConnection$Stub;->TRANSACTION_getMIMEType:I
+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;
+Landroid/media/IMediaRouterService$Stub$Proxy;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z
+Landroid/media/IMediaRouterService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/IMediaRouterService$Stub$Proxy;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
+Landroid/media/IMediaRouterService$Stub$Proxy;->requestSetVolume(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
+Landroid/media/IMediaRouterService$Stub$Proxy;->requestUpdateVolume(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
+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
+Landroid/media/IMediaRouterService$Stub;->TRANSACTION_isPlaybackActive:I
+Landroid/media/IMediaRouterService$Stub;->TRANSACTION_registerClientAsUser:I
+Landroid/media/IMediaRouterService$Stub;->TRANSACTION_requestSetVolume:I
+Landroid/media/IMediaRouterService$Stub;->TRANSACTION_requestUpdateVolume:I
+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
+Landroid/media/IMediaRouterService;->requestSetVolume(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
+Landroid/media/IMediaRouterService;->requestUpdateVolume(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
+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;
+Landroid/media/IPlayer$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/IPlayer$Stub$Proxy;->pause()V
+Landroid/media/IPlayer$Stub$Proxy;->setPan(F)V
+Landroid/media/IPlayer$Stub$Proxy;->setStartDelayMs(I)V
+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;
+Landroid/media/IPlayer$Stub;->TRANSACTION_applyVolumeShaper:I
+Landroid/media/IPlayer$Stub;->TRANSACTION_pause:I
+Landroid/media/IPlayer$Stub;->TRANSACTION_setPan:I
+Landroid/media/IPlayer$Stub;->TRANSACTION_setStartDelayMs:I
+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
+Landroid/media/IPlayer;->setStartDelayMs(I)V
+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
+Landroid/media/IRemoteDisplayProvider$Stub$Proxy;->disconnect(Ljava/lang/String;)V
+Landroid/media/IRemoteDisplayProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/IRemoteDisplayProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/media/IRemoteDisplayProvider$Stub;->TRANSACTION_adjustVolume:I
+Landroid/media/IRemoteDisplayProvider$Stub;->TRANSACTION_connect:I
+Landroid/media/IRemoteDisplayProvider$Stub;->TRANSACTION_disconnect:I
+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;
+Landroid/media/IRingtonePlayer$Stub$Proxy;->isPlaying(Landroid/os/IBinder;)Z
+Landroid/media/IRingtonePlayer$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/IRingtonePlayer$Stub$Proxy;->openRingtone(Landroid/net/Uri;)Landroid/os/ParcelFileDescriptor;
+Landroid/media/IRingtonePlayer$Stub$Proxy;->play(Landroid/os/IBinder;Landroid/net/Uri;Landroid/media/AudioAttributes;FZ)V
+Landroid/media/IRingtonePlayer$Stub$Proxy;->playAsync(Landroid/net/Uri;Landroid/os/UserHandle;ZLandroid/media/AudioAttributes;)V
+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;
+Landroid/media/IRingtonePlayer$Stub;->TRANSACTION_getTitle:I
+Landroid/media/IRingtonePlayer$Stub;->TRANSACTION_isPlaying:I
+Landroid/media/IRingtonePlayer$Stub;->TRANSACTION_openRingtone:I
+Landroid/media/IRingtonePlayer$Stub;->TRANSACTION_play:I
+Landroid/media/IRingtonePlayer$Stub;->TRANSACTION_playAsync:I
+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;
+Landroid/media/IRingtonePlayer;->playAsync(Landroid/net/Uri;Landroid/os/UserHandle;ZLandroid/media/AudioAttributes;)V
+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
+Landroid/media/IVolumeController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/IVolumeController$Stub$Proxy;->masterMuteChanged(I)V
+Landroid/media/IVolumeController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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
+Landroid/media/IVolumeController$Stub;->TRANSACTION_displaySafeVolumeWarning:I
+Landroid/media/IVolumeController$Stub;->TRANSACTION_masterMuteChanged:I
+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
+Landroid/media/JetPlayer;->JET_EVENT_CHAN_MASK:I
+Landroid/media/JetPlayer;->JET_EVENT_CHAN_SHIFT:I
+Landroid/media/JetPlayer;->JET_EVENT_CTRL_MASK:I
+Landroid/media/JetPlayer;->JET_EVENT_CTRL_SHIFT:I
+Landroid/media/JetPlayer;->JET_EVENT_SEG_MASK:I
+Landroid/media/JetPlayer;->JET_EVENT_SEG_SHIFT:I
+Landroid/media/JetPlayer;->JET_EVENT_TRACK_MASK:I
+Landroid/media/JetPlayer;->JET_EVENT_TRACK_SHIFT:I
+Landroid/media/JetPlayer;->JET_EVENT_VAL_MASK:I
+Landroid/media/JetPlayer;->JET_NUMQUEUEDSEGMENT_UPDATE:I
+Landroid/media/JetPlayer;->JET_OUTPUT_CHANNEL_CONFIG:I
+Landroid/media/JetPlayer;->JET_OUTPUT_RATE:I
+Landroid/media/JetPlayer;->JET_PAUSE_UPDATE:I
+Landroid/media/JetPlayer;->JET_USERID_UPDATE:I
+Landroid/media/JetPlayer;->logd(Ljava/lang/String;)V
+Landroid/media/JetPlayer;->loge(Ljava/lang/String;)V
+Landroid/media/JetPlayer;->MAXTRACKS:I
+Landroid/media/JetPlayer;->mEventHandler:Landroid/media/JetPlayer$NativeEventHandler;
+Landroid/media/JetPlayer;->mEventListenerLock:Ljava/lang/Object;
+Landroid/media/JetPlayer;->mInitializationLooper:Landroid/os/Looper;
+Landroid/media/JetPlayer;->mJetEventListener:Landroid/media/JetPlayer$OnJetEventListener;
+Landroid/media/JetPlayer;->native_clearQueue()Z
+Landroid/media/JetPlayer;->native_closeJetFile()Z
+Landroid/media/JetPlayer;->native_finalize()V
+Landroid/media/JetPlayer;->native_loadJetFromFile(Ljava/lang/String;)Z
+Landroid/media/JetPlayer;->native_loadJetFromFileD(Ljava/io/FileDescriptor;JJ)Z
+Landroid/media/JetPlayer;->native_pauseJet()Z
+Landroid/media/JetPlayer;->native_playJet()Z
+Landroid/media/JetPlayer;->native_queueJetSegment(IIIIIB)Z
+Landroid/media/JetPlayer;->native_queueJetSegmentMuteArray(IIII[ZB)Z
+Landroid/media/JetPlayer;->native_release()V
+Landroid/media/JetPlayer;->native_setMuteArray([ZZ)Z
+Landroid/media/JetPlayer;->native_setMuteFlag(IZZ)Z
+Landroid/media/JetPlayer;->native_setMuteFlags(IZ)Z
+Landroid/media/JetPlayer;->native_setup(Ljava/lang/Object;II)Z
+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
+Landroid/media/Media2HTTPConnection;->convertHeaderStringToMap(Ljava/lang/String;)Ljava/util/Map;
+Landroid/media/Media2HTTPConnection;->disconnect()V
+Landroid/media/Media2HTTPConnection;->filterOutInternalHeaders(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/media/Media2HTTPConnection;->getMIMEType()Ljava/lang/String;
+Landroid/media/Media2HTTPConnection;->getSize()J
+Landroid/media/Media2HTTPConnection;->getUri()Ljava/lang/String;
+Landroid/media/Media2HTTPConnection;->HTTP_TEMP_REDIRECT:I
+Landroid/media/Media2HTTPConnection;->isLocalHost(Ljava/net/URL;)Z
+Landroid/media/Media2HTTPConnection;->mAllowCrossDomainRedirect:Z
+Landroid/media/Media2HTTPConnection;->mAllowCrossProtocolRedirect:Z
+Landroid/media/Media2HTTPConnection;->MAX_REDIRECTS:I
+Landroid/media/Media2HTTPConnection;->mConnection:Ljava/net/HttpURLConnection;
+Landroid/media/Media2HTTPConnection;->mCurrentOffset:J
+Landroid/media/Media2HTTPConnection;->mHeaders:Ljava/util/Map;
+Landroid/media/Media2HTTPConnection;->mInputStream:Ljava/io/InputStream;
+Landroid/media/Media2HTTPConnection;->mTotalSize:J
+Landroid/media/Media2HTTPConnection;->mURL:Ljava/net/URL;
+Landroid/media/Media2HTTPConnection;->parseBoolean(Ljava/lang/String;)Z
+Landroid/media/Media2HTTPConnection;->readAt(J[BI)I
+Landroid/media/Media2HTTPConnection;->seekTo(J)V
+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;
+Landroid/media/Media2HTTPService;->makeHTTPConnection()Landroid/media/Media2HTTPConnection;
+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
+Landroid/media/MediaActionSound;->loadSound(Landroid/media/MediaActionSound$SoundState;)I
+Landroid/media/MediaActionSound;->mLoadCompleteListener:Landroid/media/SoundPool$OnLoadCompleteListener;
+Landroid/media/MediaActionSound;->mSoundPool:Landroid/media/SoundPool;
+Landroid/media/MediaActionSound;->mSounds:[Landroid/media/MediaActionSound$SoundState;
+Landroid/media/MediaActionSound;->NUM_MEDIA_SOUND_STREAMS:I
+Landroid/media/MediaActionSound;->SOUND_DIRS:[Ljava/lang/String;
+Landroid/media/MediaActionSound;->SOUND_FILES:[Ljava/lang/String;
+Landroid/media/MediaActionSound;->STATE_LOADED:I
+Landroid/media/MediaActionSound;->STATE_LOADING:I
+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
+Landroid/media/MediaBrowser2$BrowserCallback;->onGetItemDone(Landroid/media/MediaBrowser2;Ljava/lang/String;Landroid/media/MediaItem2;)V
+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
+Landroid/media/MediaBrowser2;->getItem(Ljava/lang/String;)V
+Landroid/media/MediaBrowser2;->getLibraryRoot(Landroid/os/Bundle;)V
+Landroid/media/MediaBrowser2;->getSearchResult(Ljava/lang/String;IILandroid/os/Bundle;)V
+Landroid/media/MediaBrowser2;->mProvider:Landroid/media/update/MediaBrowser2Provider;
+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;
+Landroid/media/MediaCas;->gDefault:Landroid/util/Singleton;
+Landroid/media/MediaCas;->getBinder()Landroid/os/IHwBinder;
+Landroid/media/MediaCas;->getService()Landroid/hardware/cas/V1_0/IMediaCasService;
+Landroid/media/MediaCas;->mBinder:Landroid/hardware/cas/V1_0/ICasListener$Stub;
+Landroid/media/MediaCas;->mEventHandler:Landroid/media/MediaCas$EventHandler;
+Landroid/media/MediaCas;->mHandlerThread:Landroid/os/HandlerThread;
+Landroid/media/MediaCas;->mICas:Landroid/hardware/cas/V1_0/ICas;
+Landroid/media/MediaCas;->mListener:Landroid/media/MediaCas$EventListener;
+Landroid/media/MediaCas;->TAG:Ljava/lang/String;
+Landroid/media/MediaCas;->toByteArray([B)Ljava/util/ArrayList;
+Landroid/media/MediaCas;->toByteArray([BII)Ljava/util/ArrayList;
+Landroid/media/MediaCas;->toBytes(Ljava/util/ArrayList;)[B
+Landroid/media/MediaCas;->validateInternalStates()V
+Landroid/media/MediaCasException$DeniedByServerException;-><init>(Ljava/lang/String;)V
+Landroid/media/MediaCasException$NotProvisionedException;-><init>(Ljava/lang/String;)V
+Landroid/media/MediaCasException$ResourceBusyException;-><init>(Ljava/lang/String;)V
+Landroid/media/MediaCasException$UnsupportedCasException;-><init>(Ljava/lang/String;)V
+Landroid/media/MediaCasException;-><init>(Ljava/lang/String;)V
+Landroid/media/MediaCasException;->throwExceptionIfNeeded(I)V
+Landroid/media/MediaCasStateException;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+Landroid/media/MediaCasStateException;->getErrorCode()I
+Landroid/media/MediaCasStateException;->mDiagnosticInfo:Ljava/lang/String;
+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
+Landroid/media/MediaCodec$MediaImage;->mBuffer:Ljava/nio/ByteBuffer;
+Landroid/media/MediaCodec$MediaImage;->mFormat:I
+Landroid/media/MediaCodec$MediaImage;->mHeight:I
+Landroid/media/MediaCodec$MediaImage;->mInfo:Ljava/nio/ByteBuffer;
+Landroid/media/MediaCodec$MediaImage;->mIsReadOnly:Z
+Landroid/media/MediaCodec$MediaImage;->mPlanes:[Landroid/media/Image$Plane;
+Landroid/media/MediaCodec$MediaImage;->mScalingMode:I
+Landroid/media/MediaCodec$MediaImage;->mTimestamp:J
+Landroid/media/MediaCodec$MediaImage;->mTransform:I
+Landroid/media/MediaCodec$MediaImage;->mWidth:I
+Landroid/media/MediaCodec$MediaImage;->mXOffset:I
+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
+Landroid/media/MediaCodec;->CB_ERROR:I
+Landroid/media/MediaCodec;->CB_INPUT_AVAILABLE:I
+Landroid/media/MediaCodec;->CB_OUTPUT_AVAILABLE:I
+Landroid/media/MediaCodec;->CB_OUTPUT_FORMAT_CHANGE:I
+Landroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
+Landroid/media/MediaCodec;->EVENT_CALLBACK:I
+Landroid/media/MediaCodec;->EVENT_FRAME_RENDERED:I
+Landroid/media/MediaCodec;->EVENT_SET_CALLBACK:I
+Landroid/media/MediaCodec;->freeAllTrackedBuffers()V
+Landroid/media/MediaCodec;->freeByteBuffer(Ljava/nio/ByteBuffer;)V
+Landroid/media/MediaCodec;->freeByteBuffers([Ljava/nio/ByteBuffer;)V
+Landroid/media/MediaCodec;->getBuffer(ZI)Ljava/nio/ByteBuffer;
+Landroid/media/MediaCodec;->getEventHandlerOn(Landroid/os/Handler;Landroid/media/MediaCodec$EventHandler;)Landroid/media/MediaCodec$EventHandler;
+Landroid/media/MediaCodec;->getFormatNative(Z)Ljava/util/Map;
+Landroid/media/MediaCodec;->getImage(ZI)Landroid/media/Image;
+Landroid/media/MediaCodec;->getOutputFormatNative(I)Ljava/util/Map;
+Landroid/media/MediaCodec;->getOwnCodecInfo()Landroid/media/MediaCodecInfo;
+Landroid/media/MediaCodec;->invalidateByteBuffer([Ljava/nio/ByteBuffer;I)V
+Landroid/media/MediaCodec;->invalidateByteBuffers([Ljava/nio/ByteBuffer;)V
+Landroid/media/MediaCodec;->mBufferLock:Ljava/lang/Object;
+Landroid/media/MediaCodec;->mCachedInputBuffers:[Ljava/nio/ByteBuffer;
+Landroid/media/MediaCodec;->mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
+Landroid/media/MediaCodec;->mCallback:Landroid/media/MediaCodec$Callback;
+Landroid/media/MediaCodec;->mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
+Landroid/media/MediaCodec;->mCodecInfo:Landroid/media/MediaCodecInfo;
+Landroid/media/MediaCodec;->mCodecInfoLock:Ljava/lang/Object;
+Landroid/media/MediaCodec;->mDequeuedInputBuffers:Landroid/media/MediaCodec$BufferMap;
+Landroid/media/MediaCodec;->mDequeuedOutputBuffers:Landroid/media/MediaCodec$BufferMap;
+Landroid/media/MediaCodec;->mDequeuedOutputInfos:Ljava/util/Map;
+Landroid/media/MediaCodec;->mEventHandler:Landroid/media/MediaCodec$EventHandler;
+Landroid/media/MediaCodec;->mHasSurface:Z
+Landroid/media/MediaCodec;->mListenerLock:Ljava/lang/Object;
+Landroid/media/MediaCodec;->mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
+Landroid/media/MediaCodec;->mOnFrameRenderedListener:Landroid/media/MediaCodec$OnFrameRenderedListener;
+Landroid/media/MediaCodec;->native_configure([Ljava/lang/String;[Ljava/lang/Object;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
+Landroid/media/MediaCodec;->native_createPersistentInputSurface()Landroid/media/MediaCodec$PersistentSurface;
+Landroid/media/MediaCodec;->native_dequeueInputBuffer(J)I
+Landroid/media/MediaCodec;->native_dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I
+Landroid/media/MediaCodec;->native_enableOnFrameRenderedListener(Z)V
+Landroid/media/MediaCodec;->native_finalize()V
+Landroid/media/MediaCodec;->native_flush()V
+Landroid/media/MediaCodec;->native_getMetrics()Landroid/os/PersistableBundle;
+Landroid/media/MediaCodec;->native_init()V
+Landroid/media/MediaCodec;->native_queueInputBuffer(IIIJI)V
+Landroid/media/MediaCodec;->native_queueSecureInputBuffer(IILandroid/media/MediaCodec$CryptoInfo;JI)V
+Landroid/media/MediaCodec;->native_release()V
+Landroid/media/MediaCodec;->native_releasePersistentInputSurface(Landroid/view/Surface;)V
+Landroid/media/MediaCodec;->native_reset()V
+Landroid/media/MediaCodec;->native_setCallback(Landroid/media/MediaCodec$Callback;)V
+Landroid/media/MediaCodec;->native_setInputSurface(Landroid/view/Surface;)V
+Landroid/media/MediaCodec;->native_setSurface(Landroid/view/Surface;)V
+Landroid/media/MediaCodec;->native_setup(Ljava/lang/String;ZZ)V
+Landroid/media/MediaCodec;->native_start()V
+Landroid/media/MediaCodec;->native_stop()V
+Landroid/media/MediaCodec;->postEventFromNative(IIILjava/lang/Object;)V
+Landroid/media/MediaCodec;->revalidateByteBuffer([Ljava/nio/ByteBuffer;I)V
+Landroid/media/MediaCodec;->validateInputByteBuffer([Ljava/nio/ByteBuffer;I)V
+Landroid/media/MediaCodec;->validateOutputByteBuffer([Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V
+Landroid/media/MediaCodecInfo$AudioCapabilities;-><init>()V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->applyLevelLimits()V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->applyLimits(ILandroid/util/Range;)V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->create(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$AudioCapabilities;
+Landroid/media/MediaCodecInfo$AudioCapabilities;->createDiscreteSampleRates()V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->getDefaultFormat(Landroid/media/MediaFormat;)V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->init(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->initWithPlatformLimits()V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->limitSampleRates([I)V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->limitSampleRates([Landroid/util/Range;)V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->MAX_INPUT_CHANNEL_COUNT:I
+Landroid/media/MediaCodecInfo$AudioCapabilities;->mBitrateRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$AudioCapabilities;->mMaxInputChannelCount:I
+Landroid/media/MediaCodecInfo$AudioCapabilities;->mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
+Landroid/media/MediaCodecInfo$AudioCapabilities;->mSampleRateRanges:[Landroid/util/Range;
+Landroid/media/MediaCodecInfo$AudioCapabilities;->mSampleRates:[I
+Landroid/media/MediaCodecInfo$AudioCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
+Landroid/media/MediaCodecInfo$AudioCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;)Z
+Landroid/media/MediaCodecInfo$AudioCapabilities;->supportsFormat(Landroid/media/MediaFormat;)Z
+Landroid/media/MediaCodecInfo$AudioCapabilities;->TAG:Ljava/lang/String;
+Landroid/media/MediaCodecInfo$CodecCapabilities;-><init>([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZILandroid/media/MediaFormat;Landroid/media/MediaFormat;)V
+Landroid/media/MediaCodecInfo$CodecCapabilities;-><init>([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZILjava/util/Map;Ljava/util/Map;)V
+Landroid/media/MediaCodecInfo$CodecCapabilities;->checkFeature(Ljava/lang/String;I)Z
+Landroid/media/MediaCodecInfo$CodecCapabilities;->decoderFeatures:[Landroid/media/MediaCodecInfo$Feature;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->dup()Landroid/media/MediaCodecInfo$CodecCapabilities;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->encoderFeatures:[Landroid/media/MediaCodecInfo$Feature;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->getValidFeatures()[Landroid/media/MediaCodecInfo$Feature;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->isAudio()Z
+Landroid/media/MediaCodecInfo$CodecCapabilities;->isEncoder()Z
+Landroid/media/MediaCodecInfo$CodecCapabilities;->isRegular()Z
+Landroid/media/MediaCodecInfo$CodecCapabilities;->isVideo()Z
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mCapabilitiesInfo:Landroid/media/MediaFormat;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mDefaultFormat:Landroid/media/MediaFormat;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mError:I
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mFlagsRequired:I
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mFlagsSupported:I
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mFlagsVerified:I
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mMaxSupportedInstances:I
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mMime:Ljava/lang/String;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->mVideoCaps:Landroid/media/MediaCodecInfo$VideoCapabilities;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->supportsBitrate(Landroid/util/Range;Landroid/media/MediaFormat;)Z
+Landroid/media/MediaCodecInfo$CodecCapabilities;->supportsProfileLevel(ILjava/lang/Integer;)Z
+Landroid/media/MediaCodecInfo$CodecCapabilities;->TAG:Ljava/lang/String;
+Landroid/media/MediaCodecInfo$CodecCapabilities;->validFeatures()[Ljava/lang/String;
+Landroid/media/MediaCodecInfo$CodecProfileLevel;->HEVCHighTierLevels:I
+Landroid/media/MediaCodecInfo$EncoderCapabilities;-><init>()V
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->applyLevelLimits()V
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->bitrates:[Landroid/media/MediaCodecInfo$Feature;
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->create(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$EncoderCapabilities;
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->getDefaultFormat(Landroid/media/MediaFormat;)V
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->init(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)V
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->mBitControl:I
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->mComplexityRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->mDefaultComplexity:Ljava/lang/Integer;
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->mDefaultQuality:Ljava/lang/Integer;
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->mQualityRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->mQualityScale:Ljava/lang/String;
+Landroid/media/MediaCodecInfo$EncoderCapabilities;->parseBitrateMode(Ljava/lang/String;)I
+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;
+Landroid/media/MediaCodecInfo$Feature;->mValue:I
+Landroid/media/MediaCodecInfo$VideoCapabilities;-><init>()V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->applyAlignment(II)V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->applyBlockLimits(IILandroid/util/Range;Landroid/util/Range;Landroid/util/Range;)V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->applyLevelLimits()V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->applyMacroBlockLimits(IIIIIJIIII)V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->applyMacroBlockLimits(IIIJIIII)V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->equivalentVP9Level(Landroid/media/MediaFormat;)I
+Landroid/media/MediaCodecInfo$VideoCapabilities;->estimateFrameRatesFor(II)Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->findClosestSize(II)Landroid/util/Size;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->getAspectRatioRange(Z)Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->getBlockCount(II)I
+Landroid/media/MediaCodecInfo$VideoCapabilities;->getBlockCountRange()Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->getBlockSize()Landroid/util/Size;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->getBlocksPerSecondRange()Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->getMeasuredFrameRates(Ljava/util/Map;)Ljava/util/Map;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->getSmallerDimensionUpperLimit()I
+Landroid/media/MediaCodecInfo$VideoCapabilities;->init(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->initWithPlatformLimits()V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mAllowMbOverride:Z
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mAspectRatioRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mBitrateRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mBlockAspectRatioRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mBlockCountRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mBlockHeight:I
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mBlocksPerSecondRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mBlockWidth:I
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mFrameRateRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mHeightAlignment:I
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mHeightRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mHorizontalBlockRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mMeasuredFrameRates:Ljava/util/Map;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mSmallerDimensionUpperLimit:I
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mVerticalBlockRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mWidthAlignment:I
+Landroid/media/MediaCodecInfo$VideoCapabilities;->mWidthRange:Landroid/util/Range;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
+Landroid/media/MediaCodecInfo$VideoCapabilities;->parseWidthHeightRanges(Ljava/lang/Object;)Landroid/util/Pair;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
+Landroid/media/MediaCodecInfo$VideoCapabilities;->supportsFormat(Landroid/media/MediaFormat;)Z
+Landroid/media/MediaCodecInfo$VideoCapabilities;->TAG:Ljava/lang/String;
+Landroid/media/MediaCodecInfo$VideoCapabilities;->updateLimits()V
+Landroid/media/MediaCodecInfo;-><init>(Ljava/lang/String;Z[Landroid/media/MediaCodecInfo$CodecCapabilities;)V
+Landroid/media/MediaCodecInfo;->BITRATE_RANGE:Landroid/util/Range;
+Landroid/media/MediaCodecInfo;->checkPowerOfTwo(ILjava/lang/String;)I
+Landroid/media/MediaCodecInfo;->DEFAULT_MAX_SUPPORTED_INSTANCES:I
+Landroid/media/MediaCodecInfo;->ERROR_NONE_SUPPORTED:I
+Landroid/media/MediaCodecInfo;->ERROR_UNRECOGNIZED:I
+Landroid/media/MediaCodecInfo;->ERROR_UNSUPPORTED:I
+Landroid/media/MediaCodecInfo;->FRAME_RATE_RANGE:Landroid/util/Range;
+Landroid/media/MediaCodecInfo;->makeRegular()Landroid/media/MediaCodecInfo;
+Landroid/media/MediaCodecInfo;->MAX_SUPPORTED_INSTANCES_LIMIT:I
+Landroid/media/MediaCodecInfo;->mCaps:Ljava/util/Map;
+Landroid/media/MediaCodecInfo;->mIsEncoder:Z
+Landroid/media/MediaCodecInfo;->mName:Ljava/lang/String;
+Landroid/media/MediaCodecInfo;->POSITIVE_INTEGERS:Landroid/util/Range;
+Landroid/media/MediaCodecInfo;->POSITIVE_LONGS:Landroid/util/Range;
+Landroid/media/MediaCodecInfo;->POSITIVE_RATIONALS:Landroid/util/Range;
+Landroid/media/MediaCodecInfo;->SIZE_RANGE:Landroid/util/Range;
+Landroid/media/MediaCodecList;-><init>()V
+Landroid/media/MediaCodecList;->findCodecByName(Ljava/lang/String;)I
+Landroid/media/MediaCodecList;->findCodecForFormat(ZLandroid/media/MediaFormat;)Ljava/lang/String;
+Landroid/media/MediaCodecList;->getCodecCapabilities(ILjava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;
+Landroid/media/MediaCodecList;->getCodecName(I)Ljava/lang/String;
+Landroid/media/MediaCodecList;->getGlobalSettings()Ljava/util/Map;
+Landroid/media/MediaCodecList;->getInfoFor(Ljava/lang/String;)Landroid/media/MediaCodecInfo;
+Landroid/media/MediaCodecList;->getNewCodecInfoAt(I)Landroid/media/MediaCodecInfo;
+Landroid/media/MediaCodecList;->getSupportedTypes(I)[Ljava/lang/String;
+Landroid/media/MediaCodecList;->initCodecList()V
+Landroid/media/MediaCodecList;->isEncoder(I)Z
+Landroid/media/MediaCodecList;->mCodecInfos:[Landroid/media/MediaCodecInfo;
+Landroid/media/MediaCodecList;->native_getCodecCount()I
+Landroid/media/MediaCodecList;->native_getGlobalSettings()Ljava/util/Map;
+Landroid/media/MediaCodecList;->native_init()V
+Landroid/media/MediaCodecList;->sAllCodecInfos:[Landroid/media/MediaCodecInfo;
+Landroid/media/MediaCodecList;->sGlobalSettings:Ljava/util/Map;
+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
+Landroid/media/MediaController2$ControllerCallback;->onConnected(Landroid/media/MediaController2;Landroid/media/SessionCommandGroup2;)V
+Landroid/media/MediaController2$ControllerCallback;->onCurrentMediaItemChanged(Landroid/media/MediaController2;Landroid/media/MediaItem2;)V
+Landroid/media/MediaController2$ControllerCallback;->onCustomCommand(Landroid/media/MediaController2;Landroid/media/SessionCommand2;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/MediaController2$ControllerCallback;->onCustomLayoutChanged(Landroid/media/MediaController2;Ljava/util/List;)V
+Landroid/media/MediaController2$ControllerCallback;->onDisconnected(Landroid/media/MediaController2;)V
+Landroid/media/MediaController2$ControllerCallback;->onError(Landroid/media/MediaController2;ILandroid/os/Bundle;)V
+Landroid/media/MediaController2$ControllerCallback;->onPlaybackInfoChanged(Landroid/media/MediaController2;Landroid/media/MediaController2$PlaybackInfo;)V
+Landroid/media/MediaController2$ControllerCallback;->onPlaybackSpeedChanged(Landroid/media/MediaController2;F)V
+Landroid/media/MediaController2$ControllerCallback;->onPlayerStateChanged(Landroid/media/MediaController2;I)V
+Landroid/media/MediaController2$ControllerCallback;->onPlaylistChanged(Landroid/media/MediaController2;Ljava/util/List;Landroid/media/MediaMetadata2;)V
+Landroid/media/MediaController2$ControllerCallback;->onPlaylistMetadataChanged(Landroid/media/MediaController2;Landroid/media/MediaMetadata2;)V
+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
+Landroid/media/MediaController2$PlaybackInfo;->getCurrentVolume()I
+Landroid/media/MediaController2$PlaybackInfo;->getMaxVolume()I
+Landroid/media/MediaController2$PlaybackInfo;->getPlaybackType()I
+Landroid/media/MediaController2$PlaybackInfo;->getProvider()Landroid/media/update/MediaController2Provider$PlaybackInfoProvider;
+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
+Landroid/media/MediaController2;->createProvider(Landroid/content/Context;Landroid/media/SessionToken2;Ljava/util/concurrent/Executor;Landroid/media/MediaController2$ControllerCallback;)Landroid/media/update/MediaController2Provider;
+Landroid/media/MediaController2;->fastForward()V
+Landroid/media/MediaController2;->getBufferedPosition()J
+Landroid/media/MediaController2;->getBufferingState()I
+Landroid/media/MediaController2;->getCurrentMediaItem()Landroid/media/MediaItem2;
+Landroid/media/MediaController2;->getCurrentPosition()J
+Landroid/media/MediaController2;->getPlaybackInfo()Landroid/media/MediaController2$PlaybackInfo;
+Landroid/media/MediaController2;->getPlaybackSpeed()F
+Landroid/media/MediaController2;->getPlayerState()I
+Landroid/media/MediaController2;->getPlaylist()Ljava/util/List;
+Landroid/media/MediaController2;->getPlaylistMetadata()Landroid/media/MediaMetadata2;
+Landroid/media/MediaController2;->getProvider()Landroid/media/update/MediaController2Provider;
+Landroid/media/MediaController2;->getRepeatMode()I
+Landroid/media/MediaController2;->getSessionActivity()Landroid/app/PendingIntent;
+Landroid/media/MediaController2;->getSessionToken()Landroid/media/SessionToken2;
+Landroid/media/MediaController2;->getShuffleMode()I
+Landroid/media/MediaController2;->isConnected()Z
+Landroid/media/MediaController2;->mProvider:Landroid/media/update/MediaController2Provider;
+Landroid/media/MediaController2;->pause()V
+Landroid/media/MediaController2;->play()V
+Landroid/media/MediaController2;->playFromMediaId(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/MediaController2;->playFromSearch(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/MediaController2;->playFromUri(Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/MediaController2;->prepare()V
+Landroid/media/MediaController2;->prepareFromMediaId(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/MediaController2;->prepareFromSearch(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/MediaController2;->prepareFromUri(Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/MediaController2;->removePlaylistItem(Landroid/media/MediaItem2;)V
+Landroid/media/MediaController2;->replacePlaylistItem(ILandroid/media/MediaItem2;)V
+Landroid/media/MediaController2;->rewind()V
+Landroid/media/MediaController2;->seekTo(J)V
+Landroid/media/MediaController2;->sendCustomCommand(Landroid/media/SessionCommand2;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/MediaController2;->setPlaybackSpeed(F)V
+Landroid/media/MediaController2;->setPlaylist(Ljava/util/List;Landroid/media/MediaMetadata2;)V
+Landroid/media/MediaController2;->setRating(Ljava/lang/String;Landroid/media/Rating2;)V
+Landroid/media/MediaController2;->setRepeatMode(I)V
+Landroid/media/MediaController2;->setShuffleMode(I)V
+Landroid/media/MediaController2;->setVolumeTo(II)V
+Landroid/media/MediaController2;->skipBackward()V
+Landroid/media/MediaController2;->skipForward()V
+Landroid/media/MediaController2;->skipToNextItem()V
+Landroid/media/MediaController2;->skipToPlaylistItem(Landroid/media/MediaItem2;)V
+Landroid/media/MediaController2;->skipToPreviousItem()V
+Landroid/media/MediaController2;->stop()V
+Landroid/media/MediaController2;->updatePlaylistMetadata(Landroid/media/MediaMetadata2;)V
+Landroid/media/MediaCrypto;->getByteArrayFromUUID(Ljava/util/UUID;)[B
+Landroid/media/MediaCrypto;->isCryptoSchemeSupportedNative([B)Z
+Landroid/media/MediaCrypto;->mNativeContext:J
+Landroid/media/MediaCrypto;->native_finalize()V
+Landroid/media/MediaCrypto;->native_init()V
+Landroid/media/MediaCrypto;->native_setup([B[B)V
+Landroid/media/MediaDescrambler;->cleanupAndRethrowIllegalState()V
+Landroid/media/MediaDescrambler;->getBinder()Landroid/os/IHwBinder;
+Landroid/media/MediaDescrambler;->mIDescrambler:Landroid/hardware/cas/V1_0/IDescramblerBase;
+Landroid/media/MediaDescrambler;->mNativeContext:J
+Landroid/media/MediaDescrambler;->native_descramble(BBI[I[ILjava/nio/ByteBuffer;IILjava/nio/ByteBuffer;II)I
+Landroid/media/MediaDescrambler;->native_init()V
+Landroid/media/MediaDescrambler;->native_release()V
+Landroid/media/MediaDescrambler;->native_setup(Landroid/os/IHwBinder;)V
+Landroid/media/MediaDescrambler;->TAG:Ljava/lang/String;
+Landroid/media/MediaDescrambler;->validateInternalStates()V
+Landroid/media/MediaDescription$Builder;->mDescription:Ljava/lang/CharSequence;
+Landroid/media/MediaDescription$Builder;->mExtras:Landroid/os/Bundle;
+Landroid/media/MediaDescription$Builder;->mIcon:Landroid/graphics/Bitmap;
+Landroid/media/MediaDescription$Builder;->mIconUri:Landroid/net/Uri;
+Landroid/media/MediaDescription$Builder;->mMediaId:Ljava/lang/String;
+Landroid/media/MediaDescription$Builder;->mMediaUri:Landroid/net/Uri;
+Landroid/media/MediaDescription$Builder;->mSubtitle:Ljava/lang/CharSequence;
+Landroid/media/MediaDescription$Builder;->mTitle:Ljava/lang/CharSequence;
+Landroid/media/MediaDescription;-><init>(Landroid/os/Parcel;)V
+Landroid/media/MediaDescription;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/graphics/Bitmap;Landroid/net/Uri;Landroid/os/Bundle;Landroid/net/Uri;)V
+Landroid/media/MediaDescription;->mDescription:Ljava/lang/CharSequence;
+Landroid/media/MediaDescription;->mExtras:Landroid/os/Bundle;
+Landroid/media/MediaDescription;->mIcon:Landroid/graphics/Bitmap;
+Landroid/media/MediaDescription;->mIconUri:Landroid/net/Uri;
+Landroid/media/MediaDescription;->mMediaId:Ljava/lang/String;
+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;
+Landroid/media/MediaDrm$MediaDrmStateException;->mErrorCode:I
+Landroid/media/MediaDrm$MetricsConstants;-><init>()V
+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
+Landroid/media/MediaDrm;->DRM_EVENT:I
+Landroid/media/MediaDrm;->encryptNative(Landroid/media/MediaDrm;[B[B[B[B)[B
+Landroid/media/MediaDrm;->EXPIRATION_UPDATE:I
+Landroid/media/MediaDrm;->getByteArrayFromUUID(Ljava/util/UUID;)[B
+Landroid/media/MediaDrm;->getMetricsNative()Landroid/os/PersistableBundle;
+Landroid/media/MediaDrm;->getProvisionRequestNative(ILjava/lang/String;)Landroid/media/MediaDrm$ProvisionRequest;
+Landroid/media/MediaDrm;->isCryptoSchemeSupportedNative([BLjava/lang/String;)Z
+Landroid/media/MediaDrm;->keyStatusListFromParcel(Landroid/os/Parcel;)Ljava/util/List;
+Landroid/media/MediaDrm;->KEY_STATUS_CHANGE:I
+Landroid/media/MediaDrm;->mClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/media/MediaDrm;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/media/MediaDrm;->mEventHandler:Landroid/media/MediaDrm$EventHandler;
+Landroid/media/MediaDrm;->mNativeContext:J
+Landroid/media/MediaDrm;->mOnEventListener:Landroid/media/MediaDrm$OnEventListener;
+Landroid/media/MediaDrm;->mOnExpirationUpdateEventHandler:Landroid/media/MediaDrm$EventHandler;
+Landroid/media/MediaDrm;->mOnExpirationUpdateListener:Landroid/media/MediaDrm$OnExpirationUpdateListener;
+Landroid/media/MediaDrm;->mOnKeyStatusChangeEventHandler:Landroid/media/MediaDrm$EventHandler;
+Landroid/media/MediaDrm;->mOnKeyStatusChangeListener:Landroid/media/MediaDrm$OnKeyStatusChangeListener;
+Landroid/media/MediaDrm;->native_init()V
+Landroid/media/MediaDrm;->native_release()V
+Landroid/media/MediaDrm;->native_setup(Ljava/lang/Object;[BLjava/lang/String;)V
+Landroid/media/MediaDrm;->PERMISSION:Ljava/lang/String;
+Landroid/media/MediaDrm;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/media/MediaDrm;->provideProvisionResponseNative([B)Landroid/media/MediaDrm$Certificate;
+Landroid/media/MediaDrm;->SECURITY_LEVEL_MAX:I
+Landroid/media/MediaDrm;->setCipherAlgorithmNative(Landroid/media/MediaDrm;[BLjava/lang/String;)V
+Landroid/media/MediaDrm;->setMacAlgorithmNative(Landroid/media/MediaDrm;[BLjava/lang/String;)V
+Landroid/media/MediaDrm;->signNative(Landroid/media/MediaDrm;[B[B[B)[B
+Landroid/media/MediaDrm;->signRSANative(Landroid/media/MediaDrm;[BLjava/lang/String;[B[B)[B
+Landroid/media/MediaDrm;->TAG:Ljava/lang/String;
+Landroid/media/MediaDrm;->verifyNative(Landroid/media/MediaDrm;[B[B[B[B)Z
+Landroid/media/MediaExtractor$CasInfo;-><init>(ILandroid/media/MediaCas$Session;)V
+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;
+Landroid/media/MediaExtractor;->mNativeContext:J
+Landroid/media/MediaExtractor;->nativeSetDataSource(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/media/MediaExtractor;->nativeSetMediaCas(Landroid/os/IHwBinder;)V
+Landroid/media/MediaExtractor;->native_finalize()V
+Landroid/media/MediaExtractor;->native_getMetrics()Landroid/os/PersistableBundle;
+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
+Landroid/media/MediaFile;->FILE_TYPE_AAC:I
+Landroid/media/MediaFile;->FILE_TYPE_AMR:I
+Landroid/media/MediaFile;->FILE_TYPE_ARW:I
+Landroid/media/MediaFile;->FILE_TYPE_ASF:I
+Landroid/media/MediaFile;->FILE_TYPE_AVI:I
+Landroid/media/MediaFile;->FILE_TYPE_AWB:I
+Landroid/media/MediaFile;->FILE_TYPE_BMP:I
+Landroid/media/MediaFile;->FILE_TYPE_CR2:I
+Landroid/media/MediaFile;->FILE_TYPE_DNG:I
+Landroid/media/MediaFile;->FILE_TYPE_FL:I
+Landroid/media/MediaFile;->FILE_TYPE_FLAC:I
+Landroid/media/MediaFile;->FILE_TYPE_GIF:I
+Landroid/media/MediaFile;->FILE_TYPE_HEIF:I
+Landroid/media/MediaFile;->FILE_TYPE_HTML:I
+Landroid/media/MediaFile;->FILE_TYPE_HTTPLIVE:I
+Landroid/media/MediaFile;->FILE_TYPE_IMY:I
+Landroid/media/MediaFile;->FILE_TYPE_JPEG:I
+Landroid/media/MediaFile;->FILE_TYPE_M3U:I
+Landroid/media/MediaFile;->FILE_TYPE_M4A:I
+Landroid/media/MediaFile;->FILE_TYPE_M4V:I
+Landroid/media/MediaFile;->FILE_TYPE_MID:I
+Landroid/media/MediaFile;->FILE_TYPE_MKA:I
+Landroid/media/MediaFile;->FILE_TYPE_MKV:I
+Landroid/media/MediaFile;->FILE_TYPE_MP2PS:I
+Landroid/media/MediaFile;->FILE_TYPE_MP2TS:I
+Landroid/media/MediaFile;->FILE_TYPE_MP3:I
+Landroid/media/MediaFile;->FILE_TYPE_MP4:I
+Landroid/media/MediaFile;->FILE_TYPE_MS_EXCEL:I
+Landroid/media/MediaFile;->FILE_TYPE_MS_POWERPOINT:I
+Landroid/media/MediaFile;->FILE_TYPE_MS_WORD:I
+Landroid/media/MediaFile;->FILE_TYPE_NEF:I
+Landroid/media/MediaFile;->FILE_TYPE_NRW:I
+Landroid/media/MediaFile;->FILE_TYPE_OGG:I
+Landroid/media/MediaFile;->FILE_TYPE_ORF:I
+Landroid/media/MediaFile;->FILE_TYPE_PDF:I
+Landroid/media/MediaFile;->FILE_TYPE_PEF:I
+Landroid/media/MediaFile;->FILE_TYPE_PLS:I
+Landroid/media/MediaFile;->FILE_TYPE_PNG:I
+Landroid/media/MediaFile;->FILE_TYPE_QT:I
+Landroid/media/MediaFile;->FILE_TYPE_RAF:I
+Landroid/media/MediaFile;->FILE_TYPE_RW2:I
+Landroid/media/MediaFile;->FILE_TYPE_SMF:I
+Landroid/media/MediaFile;->FILE_TYPE_SRW:I
+Landroid/media/MediaFile;->FILE_TYPE_TEXT:I
+Landroid/media/MediaFile;->FILE_TYPE_WAV:I
+Landroid/media/MediaFile;->FILE_TYPE_WBMP:I
+Landroid/media/MediaFile;->FILE_TYPE_WEBM:I
+Landroid/media/MediaFile;->FILE_TYPE_WEBP:I
+Landroid/media/MediaFile;->FILE_TYPE_WMA:I
+Landroid/media/MediaFile;->FILE_TYPE_WMV:I
+Landroid/media/MediaFile;->FILE_TYPE_WPL:I
+Landroid/media/MediaFile;->FILE_TYPE_XML:I
+Landroid/media/MediaFile;->FILE_TYPE_ZIP:I
+Landroid/media/MediaFile;->FIRST_DRM_FILE_TYPE:I
+Landroid/media/MediaFile;->FIRST_IMAGE_FILE_TYPE:I
+Landroid/media/MediaFile;->FIRST_MIDI_FILE_TYPE:I
+Landroid/media/MediaFile;->FIRST_PLAYLIST_FILE_TYPE:I
+Landroid/media/MediaFile;->FIRST_RAW_IMAGE_FILE_TYPE:I
+Landroid/media/MediaFile;->FIRST_VIDEO_FILE_TYPE2:I
+Landroid/media/MediaFile;->FIRST_VIDEO_FILE_TYPE:I
+Landroid/media/MediaFile;->getFormatCode(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/media/MediaFile;->getMimeTypeForFormatCode(I)Ljava/lang/String;
+Landroid/media/MediaFile;->isMimeTypeMedia(Ljava/lang/String;)Z
+Landroid/media/MediaFile;->isRawImageFileType(I)Z
+Landroid/media/MediaFile;->isWMAEnabled()Z
+Landroid/media/MediaFile;->isWMVEnabled()Z
+Landroid/media/MediaFile;->LAST_DRM_FILE_TYPE:I
+Landroid/media/MediaFile;->LAST_IMAGE_FILE_TYPE:I
+Landroid/media/MediaFile;->LAST_MIDI_FILE_TYPE:I
+Landroid/media/MediaFile;->LAST_PLAYLIST_FILE_TYPE:I
+Landroid/media/MediaFile;->LAST_RAW_IMAGE_FILE_TYPE:I
+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;
+Landroid/media/MediaFormat;->KEY_CA_SYSTEM_ID:Ljava/lang/String;
+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
+Landroid/media/MediaHTTPConnection;->getSize()J
+Landroid/media/MediaHTTPConnection;->HTTP_TEMP_REDIRECT:I
+Landroid/media/MediaHTTPConnection;->isLocalHost(Ljava/net/URL;)Z
+Landroid/media/MediaHTTPConnection;->MAX_REDIRECTS:I
+Landroid/media/MediaHTTPConnection;->mInputStream:Ljava/io/InputStream;
+Landroid/media/MediaHTTPConnection;->mNativeContext:J
+Landroid/media/MediaHTTPConnection;->native_finalize()V
+Landroid/media/MediaHTTPConnection;->native_getIMemory()Landroid/os/IBinder;
+Landroid/media/MediaHTTPConnection;->native_init()V
+Landroid/media/MediaHTTPConnection;->native_readAt(JI)I
+Landroid/media/MediaHTTPConnection;->native_setup()V
+Landroid/media/MediaHTTPConnection;->parseBoolean(Ljava/lang/String;)Z
+Landroid/media/MediaHTTPConnection;->readAt(J[BI)I
+Landroid/media/MediaHTTPConnection;->seekTo(J)V
+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
+Landroid/media/MediaInserter;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)V
+Landroid/media/MediaInserter;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Z)V
+Landroid/media/MediaInserter;->insertwithPriority(Landroid/net/Uri;Landroid/content/ContentValues;)V
+Landroid/media/MediaInserter;->mBufferSizePerUri:I
+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
+Landroid/media/MediaItem2;->fromBundle(Landroid/os/Bundle;)Landroid/media/MediaItem2;
+Landroid/media/MediaItem2;->getDataSourceDesc()Landroid/media/DataSourceDesc;
+Landroid/media/MediaItem2;->getFlags()I
+Landroid/media/MediaItem2;->getMediaId()Ljava/lang/String;
+Landroid/media/MediaItem2;->getMetadata()Landroid/media/MediaMetadata2;
+Landroid/media/MediaItem2;->getProvider()Landroid/media/update/MediaItem2Provider;
+Landroid/media/MediaItem2;->isBrowsable()Z
+Landroid/media/MediaItem2;->isPlayable()Z
+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;
+Landroid/media/MediaLibraryService2$LibraryRoot;->EXTRA_SUGGESTED:Ljava/lang/String;
+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;
+Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;->setPlayer(Landroid/media/MediaPlayerBase;)Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;
+Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;->setPlaylistAgent(Landroid/media/MediaPlaylistAgent;)Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;
+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;
+Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;->onGetLibraryRoot(Landroid/media/MediaLibraryService2$MediaLibrarySession;Landroid/media/MediaSession2$ControllerInfo;Landroid/os/Bundle;)Landroid/media/MediaLibraryService2$LibraryRoot;
+Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;->onGetSearchResult(Landroid/media/MediaLibraryService2$MediaLibrarySession;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;IILandroid/os/Bundle;)Ljava/util/List;
+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
+Landroid/media/MediaMetadata2$Builder;->build()Landroid/media/MediaMetadata2;
+Landroid/media/MediaMetadata2$Builder;->mProvider:Landroid/media/update/MediaMetadata2Provider$BuilderProvider;
+Landroid/media/MediaMetadata2$Builder;->putBitmap(Ljava/lang/String;Landroid/graphics/Bitmap;)Landroid/media/MediaMetadata2$Builder;
+Landroid/media/MediaMetadata2$Builder;->putFloat(Ljava/lang/String;F)Landroid/media/MediaMetadata2$Builder;
+Landroid/media/MediaMetadata2$Builder;->putLong(Ljava/lang/String;J)Landroid/media/MediaMetadata2$Builder;
+Landroid/media/MediaMetadata2$Builder;->putRating(Ljava/lang/String;Landroid/media/Rating2;)Landroid/media/MediaMetadata2$Builder;
+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
+Landroid/media/MediaMetadata2;->BT_FOLDER_TYPE_GENRES:J
+Landroid/media/MediaMetadata2;->BT_FOLDER_TYPE_MIXED:J
+Landroid/media/MediaMetadata2;->BT_FOLDER_TYPE_PLAYLISTS:J
+Landroid/media/MediaMetadata2;->BT_FOLDER_TYPE_TITLES:J
+Landroid/media/MediaMetadata2;->BT_FOLDER_TYPE_YEARS:J
+Landroid/media/MediaMetadata2;->containsKey(Ljava/lang/String;)Z
+Landroid/media/MediaMetadata2;->fromBundle(Landroid/os/Bundle;)Landroid/media/MediaMetadata2;
+Landroid/media/MediaMetadata2;->getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
+Landroid/media/MediaMetadata2;->getExtras()Landroid/os/Bundle;
+Landroid/media/MediaMetadata2;->getFloat(Ljava/lang/String;)F
+Landroid/media/MediaMetadata2;->getLong(Ljava/lang/String;)J
+Landroid/media/MediaMetadata2;->getMediaId()Ljava/lang/String;
+Landroid/media/MediaMetadata2;->getRating(Ljava/lang/String;)Landroid/media/Rating2;
+Landroid/media/MediaMetadata2;->getString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/media/MediaMetadata2;->getText(Ljava/lang/String;)Ljava/lang/CharSequence;
+Landroid/media/MediaMetadata2;->keySet()Ljava/util/Set;
+Landroid/media/MediaMetadata2;->METADATA_KEY_ADVERTISEMENT:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_ALBUM:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_ALBUM_ART:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_ALBUM_ARTIST:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_ALBUM_ART_URI:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_ART:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_ARTIST:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_ART_URI:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_AUTHOR:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_BT_FOLDER_TYPE:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_COMPILATION:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_COMPOSER:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DATE:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DISC_NUMBER:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DISPLAY_DESCRIPTION:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DISPLAY_ICON:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DISPLAY_ICON_URI:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DISPLAY_SUBTITLE:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DISPLAY_TITLE:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DOWNLOAD_STATUS:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_DURATION:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_EXTRAS:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_GENRE:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_MEDIA_ID:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_MEDIA_URI:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_NUM_TRACKS:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_RATING:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_TITLE:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_TRACK_NUMBER:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_USER_RATING:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_WRITER:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->METADATA_KEY_YEAR:Ljava/lang/String;
+Landroid/media/MediaMetadata2;->mProvider:Landroid/media/update/MediaMetadata2Provider;
+Landroid/media/MediaMetadata2;->size()I
+Landroid/media/MediaMetadata2;->STATUS_DOWNLOADED:J
+Landroid/media/MediaMetadata2;->STATUS_DOWNLOADING:J
+Landroid/media/MediaMetadata2;->STATUS_NOT_DOWNLOADED:J
+Landroid/media/MediaMetadata2;->toBundle()Landroid/os/Bundle;
+Landroid/media/MediaMetadata;-><init>(Landroid/os/Bundle;)V
+Landroid/media/MediaMetadata;-><init>(Landroid/os/Parcel;)V
+Landroid/media/MediaMetadata;->EDITOR_KEY_MAPPING:Landroid/util/SparseArray;
+Landroid/media/MediaMetadata;->mBundle:Landroid/os/Bundle;
+Landroid/media/MediaMetadata;->mDescription:Landroid/media/MediaDescription;
+Landroid/media/MediaMetadata;->METADATA_KEYS_TYPE:Landroid/util/ArrayMap;
+Landroid/media/MediaMetadata;->METADATA_TYPE_BITMAP:I
+Landroid/media/MediaMetadata;->METADATA_TYPE_INVALID:I
+Landroid/media/MediaMetadata;->METADATA_TYPE_LONG:I
+Landroid/media/MediaMetadata;->METADATA_TYPE_RATING:I
+Landroid/media/MediaMetadata;->METADATA_TYPE_TEXT:I
+Landroid/media/MediaMetadata;->PREFERRED_BITMAP_ORDER:[Ljava/lang/String;
+Landroid/media/MediaMetadata;->PREFERRED_DESCRIPTION_ORDER:[Ljava/lang/String;
+Landroid/media/MediaMetadata;->PREFERRED_URI_ORDER:[Ljava/lang/String;
+Landroid/media/MediaMetadata;->TAG:Ljava/lang/String;
+Landroid/media/MediaMetadataEditor;-><init>()V
+Landroid/media/MediaMetadataEditor;->KEY_EDITABLE_MASK:I
+Landroid/media/MediaMetadataEditor;->mApplied:Z
+Landroid/media/MediaMetadataEditor;->mArtworkChanged:Z
+Landroid/media/MediaMetadataEditor;->mEditableKeys:J
+Landroid/media/MediaMetadataEditor;->mEditorArtwork:Landroid/graphics/Bitmap;
+Landroid/media/MediaMetadataEditor;->mEditorMetadata:Landroid/os/Bundle;
+Landroid/media/MediaMetadataEditor;->METADATA_KEYS_TYPE:Landroid/util/SparseIntArray;
+Landroid/media/MediaMetadataEditor;->METADATA_TYPE_BITMAP:I
+Landroid/media/MediaMetadataEditor;->METADATA_TYPE_INVALID:I
+Landroid/media/MediaMetadataEditor;->METADATA_TYPE_LONG:I
+Landroid/media/MediaMetadataEditor;->METADATA_TYPE_RATING:I
+Landroid/media/MediaMetadataEditor;->METADATA_TYPE_STRING:I
+Landroid/media/MediaMetadataEditor;->mMetadataBuilder:Landroid/media/MediaMetadata$Builder;
+Landroid/media/MediaMetadataEditor;->mMetadataChanged:Z
+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;
+Landroid/media/MediaMetadataRetriever;->getThumbnailImageAtIndex(ILandroid/media/MediaMetadataRetriever$BitmapParams;II)Landroid/graphics/Bitmap;
+Landroid/media/MediaMetadataRetriever;->METADATA_KEY_EXIF_LENGTH:I
+Landroid/media/MediaMetadataRetriever;->METADATA_KEY_EXIF_OFFSET:I
+Landroid/media/MediaMetadataRetriever;->METADATA_KEY_IS_DRM:I
+Landroid/media/MediaMetadataRetriever;->METADATA_KEY_TIMED_TEXT_LANGUAGES:I
+Landroid/media/MediaMetadataRetriever;->mNativeContext:J
+Landroid/media/MediaMetadataRetriever;->_getFrameAtIndex(IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
+Landroid/media/MediaMetadataRetriever;->_getFrameAtTime(JIII)Landroid/graphics/Bitmap;
+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
+Landroid/media/MediaMuxer;->mLastTrackIndex:I
+Landroid/media/MediaMuxer;->MUXER_STATE_INITIALIZED:I
+Landroid/media/MediaMuxer;->nativeAddTrack(J[Ljava/lang/String;[Ljava/lang/Object;)I
+Landroid/media/MediaMuxer;->nativeSetLocation(JII)V
+Landroid/media/MediaMuxer;->nativeSetOrientationHint(JI)V
+Landroid/media/MediaMuxer;->nativeStart(J)V
+Landroid/media/MediaMuxer;->nativeStop(J)V
+Landroid/media/MediaMuxer;->nativeWriteSampleData(JILjava/nio/ByteBuffer;IIJI)V
+Landroid/media/MediaMuxer;->setUpMediaMuxer(Ljava/io/FileDescriptor;I)V
+Landroid/media/MediaPlayer$DrmInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/media/MediaPlayer$DrmInfo;-><init>(Ljava/util/Map;[Ljava/util/UUID;)V
+Landroid/media/MediaPlayer$DrmInfo;->arrToHex([B)Ljava/lang/String;
+Landroid/media/MediaPlayer$DrmInfo;->bytesToUUID([B)Ljava/util/UUID;
+Landroid/media/MediaPlayer$DrmInfo;->makeCopy()Landroid/media/MediaPlayer$DrmInfo;
+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;
+Landroid/media/MediaPlayer$ProvisioningThread;->mediaPlayer:Landroid/media/MediaPlayer;
+Landroid/media/MediaPlayer$ProvisioningThread;->onDrmPreparedHandlerDelegate:Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
+Landroid/media/MediaPlayer$ProvisioningThread;->status()I
+Landroid/media/MediaPlayer$ProvisioningThread;->status:I
+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
+Landroid/media/MediaPlayer$TimeProvider;->DEBUG:Z
+Landroid/media/MediaPlayer$TimeProvider;->getCurrentTimeUs(ZZ)J
+Landroid/media/MediaPlayer$TimeProvider;->MAX_EARLY_CALLBACK_US:J
+Landroid/media/MediaPlayer$TimeProvider;->MAX_NS_WITHOUT_POSITION_CHECK:J
+Landroid/media/MediaPlayer$TimeProvider;->mBuffering:Z
+Landroid/media/MediaPlayer$TimeProvider;->mEventHandler:Landroid/os/Handler;
+Landroid/media/MediaPlayer$TimeProvider;->mHandlerThread:Landroid/os/HandlerThread;
+Landroid/media/MediaPlayer$TimeProvider;->mLastReportedTime:J
+Landroid/media/MediaPlayer$TimeProvider;->mLastTimeUs:J
+Landroid/media/MediaPlayer$TimeProvider;->mListeners:[Landroid/media/MediaTimeProvider$OnMediaTimeListener;
+Landroid/media/MediaPlayer$TimeProvider;->mPaused:Z
+Landroid/media/MediaPlayer$TimeProvider;->mPausing:Z
+Landroid/media/MediaPlayer$TimeProvider;->mPlayer:Landroid/media/MediaPlayer;
+Landroid/media/MediaPlayer$TimeProvider;->mRefresh:Z
+Landroid/media/MediaPlayer$TimeProvider;->mSeeking:Z
+Landroid/media/MediaPlayer$TimeProvider;->mStopped:Z
+Landroid/media/MediaPlayer$TimeProvider;->mTimes:[J
+Landroid/media/MediaPlayer$TimeProvider;->NOTIFY:I
+Landroid/media/MediaPlayer$TimeProvider;->notifyAt(JLandroid/media/MediaTimeProvider$OnMediaTimeListener;)V
+Landroid/media/MediaPlayer$TimeProvider;->notifySeek()V
+Landroid/media/MediaPlayer$TimeProvider;->notifyStop()V
+Landroid/media/MediaPlayer$TimeProvider;->notifyTimedEvent(Z)V
+Landroid/media/MediaPlayer$TimeProvider;->notifyTrackData(Landroid/util/Pair;)V
+Landroid/media/MediaPlayer$TimeProvider;->NOTIFY_SEEK:I
+Landroid/media/MediaPlayer$TimeProvider;->NOTIFY_STOP:I
+Landroid/media/MediaPlayer$TimeProvider;->NOTIFY_TIME:I
+Landroid/media/MediaPlayer$TimeProvider;->NOTIFY_TRACK_DATA:I
+Landroid/media/MediaPlayer$TimeProvider;->onBuffering(Z)V
+Landroid/media/MediaPlayer$TimeProvider;->onNewPlayer()V
+Landroid/media/MediaPlayer$TimeProvider;->onNotifyTime()V
+Landroid/media/MediaPlayer$TimeProvider;->onPaused(Z)V
+Landroid/media/MediaPlayer$TimeProvider;->onStopped()V
+Landroid/media/MediaPlayer$TimeProvider;->registerListener(Landroid/media/MediaTimeProvider$OnMediaTimeListener;)I
+Landroid/media/MediaPlayer$TimeProvider;->scheduleNotification(IJ)V
+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
+Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;->onError(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;II)V
+Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;->onInfo(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;II)V
+Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;->onMediaTimeChanged(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;Landroid/media/MediaTimestamp;)V
+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;
+Landroid/media/MediaPlayer2$MetricsConstants;->DURATION:Ljava/lang/String;
+Landroid/media/MediaPlayer2$MetricsConstants;->ERRORS:Ljava/lang/String;
+Landroid/media/MediaPlayer2$MetricsConstants;->ERROR_CODE:Ljava/lang/String;
+Landroid/media/MediaPlayer2$MetricsConstants;->FRAMES:Ljava/lang/String;
+Landroid/media/MediaPlayer2$MetricsConstants;->FRAMES_DROPPED:Ljava/lang/String;
+Landroid/media/MediaPlayer2$MetricsConstants;->HEIGHT:Ljava/lang/String;
+Landroid/media/MediaPlayer2$MetricsConstants;->MIME_TYPE_AUDIO:Ljava/lang/String;
+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
+Landroid/media/MediaPlayer2$TrackInfo;->MEDIA_TRACK_TYPE_METADATA:I
+Landroid/media/MediaPlayer2$TrackInfo;->MEDIA_TRACK_TYPE_SUBTITLE:I
+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
+Landroid/media/MediaPlayer2;->addTimedTextSource(Ljava/io/FileDescriptor;JJLjava/lang/String;)V
+Landroid/media/MediaPlayer2;->addTimedTextSource(Ljava/io/FileDescriptor;Ljava/lang/String;)V
+Landroid/media/MediaPlayer2;->addTimedTextSource(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/media/MediaPlayer2;->APPLY_METADATA_FILTER:Z
+Landroid/media/MediaPlayer2;->attachAuxEffect(I)V
+Landroid/media/MediaPlayer2;->BYPASS_METADATA_FILTER:Z
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_ATTACH_AUX_EFFECT:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_DESELECT_TRACK:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_LOOP_CURRENT:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_NOTIFY_WHEN_COMMAND_LABEL_REACHED:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_PAUSE:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_PLAY:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_PREPARE:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_RELEASE_DRM:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_RESTORE_DRM_KEYS:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SEEK_TO:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SELECT_TRACK:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_AUDIO_ATTRIBUTES:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_AUDIO_SESSION_ID:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_AUX_EFFECT_SEND_LEVEL:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_BUFFERING_PARAMS:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_DATA_SOURCE:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_NEXT_DATA_SOURCE:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_NEXT_DATA_SOURCES:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_PLAYBACK_PARAMS:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_PLAYBACK_SPEED:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_PLAYER_VOLUME:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_SURFACE:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_SYNC_PARAMS:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SET_VIDEO_SCALING_MODE:I
+Landroid/media/MediaPlayer2;->CALL_COMPLETED_SKIP_TO_NEXT:I
+Landroid/media/MediaPlayer2;->CALL_STATUS_BAD_VALUE:I
+Landroid/media/MediaPlayer2;->CALL_STATUS_ERROR_IO:I
+Landroid/media/MediaPlayer2;->CALL_STATUS_ERROR_UNKNOWN:I
+Landroid/media/MediaPlayer2;->CALL_STATUS_INVALID_OPERATION:I
+Landroid/media/MediaPlayer2;->CALL_STATUS_NO_DRM_SCHEME:I
+Landroid/media/MediaPlayer2;->CALL_STATUS_NO_ERROR:I
+Landroid/media/MediaPlayer2;->CALL_STATUS_PERMISSION_DENIED:I
+Landroid/media/MediaPlayer2;->clearDrmEventCallback()V
+Landroid/media/MediaPlayer2;->clearMediaPlayer2EventCallback()V
+Landroid/media/MediaPlayer2;->clearPendingCommands()V
+Landroid/media/MediaPlayer2;->create()Landroid/media/MediaPlayer2;
+Landroid/media/MediaPlayer2;->decodeMediaPlayer2Uri(Ljava/lang/String;)[Ljava/lang/String;
+Landroid/media/MediaPlayer2;->deselectTrack(I)V
+Landroid/media/MediaPlayer2;->easyPlaybackParams(FI)Landroid/media/PlaybackParams;
+Landroid/media/MediaPlayer2;->encodeMediaPlayer2Uri(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+Landroid/media/MediaPlayer2;->getAudioAttributes()Landroid/media/AudioAttributes;
+Landroid/media/MediaPlayer2;->getAudioSessionId()I
+Landroid/media/MediaPlayer2;->getBufferedPosition()J
+Landroid/media/MediaPlayer2;->getBufferingParams()Landroid/media/BufferingParams;
+Landroid/media/MediaPlayer2;->getBufferingState()I
+Landroid/media/MediaPlayer2;->getCurrentDataSource()Landroid/media/DataSourceDesc;
+Landroid/media/MediaPlayer2;->getCurrentPosition()J
+Landroid/media/MediaPlayer2;->getDrmInfo()Landroid/media/MediaPlayer2$DrmInfo;
+Landroid/media/MediaPlayer2;->getDrmKeyRequest([B[BLjava/lang/String;ILjava/util/Map;)Landroid/media/MediaDrm$KeyRequest;
+Landroid/media/MediaPlayer2;->getDrmPropertyString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/media/MediaPlayer2;->getDuration()J
+Landroid/media/MediaPlayer2;->getMaxPlayerVolume()F
+Landroid/media/MediaPlayer2;->getMediaPlayer2State()I
+Landroid/media/MediaPlayer2;->getMediaTimeProvider()Landroid/media/MediaTimeProvider;
+Landroid/media/MediaPlayer2;->getMetadata(ZZ)Landroid/media/Metadata;
+Landroid/media/MediaPlayer2;->getMetrics()Landroid/os/PersistableBundle;
+Landroid/media/MediaPlayer2;->getPlaybackParams()Landroid/media/PlaybackParams;
+Landroid/media/MediaPlayer2;->getPlaybackSpeed()F
+Landroid/media/MediaPlayer2;->getPlayerState()I
+Landroid/media/MediaPlayer2;->getPlayerVolume()F
+Landroid/media/MediaPlayer2;->getSelectedTrack(I)I
+Landroid/media/MediaPlayer2;->getSyncParams()Landroid/media/SyncParams;
+Landroid/media/MediaPlayer2;->getTimestamp()Landroid/media/MediaTimestamp;
+Landroid/media/MediaPlayer2;->getTrackInfo()Ljava/util/List;
+Landroid/media/MediaPlayer2;->getVideoHeight()I
+Landroid/media/MediaPlayer2;->getVideoWidth()I
+Landroid/media/MediaPlayer2;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V
+Landroid/media/MediaPlayer2;->isLooping()Z
+Landroid/media/MediaPlayer2;->isPlaying()Z
+Landroid/media/MediaPlayer2;->isReversePlaybackSupported()Z
+Landroid/media/MediaPlayer2;->loopCurrent(Z)V
+Landroid/media/MediaPlayer2;->MEDIAPLAYER2_STATE_ERROR:I
+Landroid/media/MediaPlayer2;->MEDIAPLAYER2_STATE_IDLE:I
+Landroid/media/MediaPlayer2;->MEDIAPLAYER2_STATE_PAUSED:I
+Landroid/media/MediaPlayer2;->MEDIAPLAYER2_STATE_PLAYING:I
+Landroid/media/MediaPlayer2;->MEDIAPLAYER2_STATE_PREPARED:I
+Landroid/media/MediaPlayer2;->MEDIA_ERROR_IO:I
+Landroid/media/MediaPlayer2;->MEDIA_ERROR_MALFORMED:I
+Landroid/media/MediaPlayer2;->MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:I
+Landroid/media/MediaPlayer2;->MEDIA_ERROR_SYSTEM:I
+Landroid/media/MediaPlayer2;->MEDIA_ERROR_TIMED_OUT:I
+Landroid/media/MediaPlayer2;->MEDIA_ERROR_UNKNOWN:I
+Landroid/media/MediaPlayer2;->MEDIA_ERROR_UNSUPPORTED:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_AUDIO_NOT_PLAYING:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_AUDIO_RENDERING_START:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_BAD_INTERLEAVING:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_BUFFERING_END:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_BUFFERING_START:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_BUFFERING_UPDATE:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_EXTERNAL_METADATA_UPDATE:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_METADATA_UPDATE:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_NETWORK_BANDWIDTH:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_NOT_SEEKABLE:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_PLAYBACK_COMPLETE:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_PLAYLIST_END:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_PREPARED:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_STARTED_AS_NEXT:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_SUBTITLE_TIMED_OUT:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_TIMED_TEXT_ERROR:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_UNKNOWN:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_UNSUPPORTED_SUBTITLE:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_VIDEO_NOT_PLAYING:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_VIDEO_RENDERING_START:I
+Landroid/media/MediaPlayer2;->MEDIA_INFO_VIDEO_TRACK_LAGGING:I
+Landroid/media/MediaPlayer2;->MEDIA_MIMETYPE_TEXT_CEA_608:Ljava/lang/String;
+Landroid/media/MediaPlayer2;->MEDIA_MIMETYPE_TEXT_CEA_708:Ljava/lang/String;
+Landroid/media/MediaPlayer2;->MEDIA_MIMETYPE_TEXT_SUBRIP:Ljava/lang/String;
+Landroid/media/MediaPlayer2;->MEDIA_MIMETYPE_TEXT_VTT:Ljava/lang/String;
+Landroid/media/MediaPlayer2;->METADATA_ALL:Z
+Landroid/media/MediaPlayer2;->METADATA_UPDATE_ONLY:Z
+Landroid/media/MediaPlayer2;->newRequest()Landroid/os/Parcel;
+Landroid/media/MediaPlayer2;->notifyAt(J)V
+Landroid/media/MediaPlayer2;->notifyWhenCommandLabelReached(Ljava/lang/Object;)V
+Landroid/media/MediaPlayer2;->onSubtitleTrackSelected(Landroid/media/SubtitleTrack;)V
+Landroid/media/MediaPlayer2;->pause()V
+Landroid/media/MediaPlayer2;->play()V
+Landroid/media/MediaPlayer2;->PLAYBACK_RATE_AUDIO_MODE_DEFAULT:I
+Landroid/media/MediaPlayer2;->PLAYBACK_RATE_AUDIO_MODE_RESAMPLE:I
+Landroid/media/MediaPlayer2;->PLAYBACK_RATE_AUDIO_MODE_STRETCH:I
+Landroid/media/MediaPlayer2;->prepare()V
+Landroid/media/MediaPlayer2;->prepareDrm(Ljava/util/UUID;)V
+Landroid/media/MediaPlayer2;->PREPARE_DRM_STATUS_PREPARATION_ERROR:I
+Landroid/media/MediaPlayer2;->PREPARE_DRM_STATUS_PROVISIONING_NETWORK_ERROR:I
+Landroid/media/MediaPlayer2;->PREPARE_DRM_STATUS_PROVISIONING_SERVER_ERROR:I
+Landroid/media/MediaPlayer2;->PREPARE_DRM_STATUS_SUCCESS:I
+Landroid/media/MediaPlayer2;->provideDrmKeyResponse([B[B)[B
+Landroid/media/MediaPlayer2;->registerPlayerEventCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaPlayerBase$PlayerEventCallback;)V
+Landroid/media/MediaPlayer2;->releaseDrm()V
+Landroid/media/MediaPlayer2;->reset()V
+Landroid/media/MediaPlayer2;->restoreDrmKeys([B)V
+Landroid/media/MediaPlayer2;->seekTo(J)V
+Landroid/media/MediaPlayer2;->seekTo(JI)V
+Landroid/media/MediaPlayer2;->SEEK_CLOSEST:I
+Landroid/media/MediaPlayer2;->SEEK_CLOSEST_SYNC:I
+Landroid/media/MediaPlayer2;->SEEK_NEXT_SYNC:I
+Landroid/media/MediaPlayer2;->SEEK_PREVIOUS_SYNC:I
+Landroid/media/MediaPlayer2;->selectTrack(I)V
+Landroid/media/MediaPlayer2;->setAudioAttributes(Landroid/media/AudioAttributes;)V
+Landroid/media/MediaPlayer2;->setAudioSessionId(I)V
+Landroid/media/MediaPlayer2;->setAuxEffectSendLevel(F)V
+Landroid/media/MediaPlayer2;->setBufferingParams(Landroid/media/BufferingParams;)V
+Landroid/media/MediaPlayer2;->setDataSource(Landroid/media/DataSourceDesc;)V
+Landroid/media/MediaPlayer2;->setDisplay(Landroid/view/SurfaceHolder;)V
+Landroid/media/MediaPlayer2;->setDrmEventCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaPlayer2$DrmEventCallback;)V
+Landroid/media/MediaPlayer2;->setDrmPropertyString(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/media/MediaPlayer2;->setMediaPlayer2EventCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;)V
+Landroid/media/MediaPlayer2;->setMetadataFilter(Ljava/util/Set;Ljava/util/Set;)I
+Landroid/media/MediaPlayer2;->setNextDataSource(Landroid/media/DataSourceDesc;)V
+Landroid/media/MediaPlayer2;->setNextDataSources(Ljava/util/List;)V
+Landroid/media/MediaPlayer2;->setOnDrmConfigHelper(Landroid/media/MediaPlayer2$OnDrmConfigHelper;)V
+Landroid/media/MediaPlayer2;->setOnSubtitleDataListener(Landroid/media/MediaPlayer2$OnSubtitleDataListener;)V
+Landroid/media/MediaPlayer2;->setPlaybackParams(Landroid/media/PlaybackParams;)V
+Landroid/media/MediaPlayer2;->setPlaybackSpeed(F)V
+Landroid/media/MediaPlayer2;->setPlayerVolume(F)V
+Landroid/media/MediaPlayer2;->setScreenOnWhilePlaying(Z)V
+Landroid/media/MediaPlayer2;->setSubtitleAnchor(Landroid/media/SubtitleController;Landroid/media/SubtitleController$Anchor;)V
+Landroid/media/MediaPlayer2;->setSurface(Landroid/view/Surface;)V
+Landroid/media/MediaPlayer2;->setSyncParams(Landroid/media/SyncParams;)V
+Landroid/media/MediaPlayer2;->setVideoScalingMode(I)V
+Landroid/media/MediaPlayer2;->setWakeMode(Landroid/content/Context;I)V
+Landroid/media/MediaPlayer2;->skipToNext()V
+Landroid/media/MediaPlayer2;->stop()V
+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;
+Landroid/media/MediaPlayer2Impl$DrmInfoImpl;->bytesToUUID([B)Ljava/util/UUID;
+Landroid/media/MediaPlayer2Impl$DrmInfoImpl;->getPssh()Ljava/util/Map;
+Landroid/media/MediaPlayer2Impl$DrmInfoImpl;->getSupportedSchemes()Ljava/util/List;
+Landroid/media/MediaPlayer2Impl$DrmInfoImpl;->makeCopy()Landroid/media/MediaPlayer2Impl$DrmInfoImpl;
+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;
+Landroid/media/MediaPlayer2Impl$ProvisioningThread;->mediaPlayer:Landroid/media/MediaPlayer2Impl;
+Landroid/media/MediaPlayer2Impl$ProvisioningThread;->status()I
+Landroid/media/MediaPlayer2Impl$ProvisioningThread;->status:I
+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
+Landroid/media/MediaPlayer2Impl$StreamEventCallback;->mUserDataPtr:J
+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
+Landroid/media/MediaPlayer2Impl$TimeProvider;->DEBUG:Z
+Landroid/media/MediaPlayer2Impl$TimeProvider;->getCurrentTimeUs(ZZ)J
+Landroid/media/MediaPlayer2Impl$TimeProvider;->MAX_EARLY_CALLBACK_US:J
+Landroid/media/MediaPlayer2Impl$TimeProvider;->MAX_NS_WITHOUT_POSITION_CHECK:J
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mBuffering:Z
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mEventHandler:Landroid/media/MediaPlayer2Impl$TimeProvider$EventHandler;
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mHandlerThread:Landroid/os/HandlerThread;
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mLastReportedTime:J
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mLastTimeUs:J
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mListeners:[Landroid/media/MediaTimeProvider$OnMediaTimeListener;
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mPaused:Z
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mPausing:Z
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mPlayer:Landroid/media/MediaPlayer2Impl;
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mRefresh:Z
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mSeeking:Z
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mStopped:Z
+Landroid/media/MediaPlayer2Impl$TimeProvider;->mTimes:[J
+Landroid/media/MediaPlayer2Impl$TimeProvider;->NOTIFY:I
+Landroid/media/MediaPlayer2Impl$TimeProvider;->notifyAt(JLandroid/media/MediaTimeProvider$OnMediaTimeListener;)V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->notifySeek()V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->notifyStop()V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->notifyTimedEvent(Z)V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->notifyTrackData(Landroid/util/Pair;)V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->NOTIFY_SEEK:I
+Landroid/media/MediaPlayer2Impl$TimeProvider;->NOTIFY_STOP:I
+Landroid/media/MediaPlayer2Impl$TimeProvider;->NOTIFY_TIME:I
+Landroid/media/MediaPlayer2Impl$TimeProvider;->NOTIFY_TRACK_DATA:I
+Landroid/media/MediaPlayer2Impl$TimeProvider;->onBuffering(Z)V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->onNewPlayer()V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->onNotifyTime()V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->onPaused(Z)V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->onSeekComplete(Landroid/media/MediaPlayer2Impl;)V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->onStopped()V
+Landroid/media/MediaPlayer2Impl$TimeProvider;->registerListener(Landroid/media/MediaTimeProvider$OnMediaTimeListener;)I
+Landroid/media/MediaPlayer2Impl$TimeProvider;->scheduleNotification(IJ)V
+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;
+Landroid/media/MediaPlayer2Impl$TrackInfoImpl;->getFormat()Landroid/media/MediaFormat;
+Landroid/media/MediaPlayer2Impl$TrackInfoImpl;->getLanguage()Ljava/lang/String;
+Landroid/media/MediaPlayer2Impl$TrackInfoImpl;->getTrackType()I
+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
+Landroid/media/MediaPlayer2Impl;->addTimedTextSource(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;)V
+Landroid/media/MediaPlayer2Impl;->addTimedTextSource(Ljava/io/FileDescriptor;JJLjava/lang/String;)V
+Landroid/media/MediaPlayer2Impl;->addTimedTextSource(Ljava/io/FileDescriptor;Ljava/lang/String;)V
+Landroid/media/MediaPlayer2Impl;->addTimedTextSource(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/media/MediaPlayer2Impl;->attachAuxEffect(I)V
+Landroid/media/MediaPlayer2Impl;->attemptDataSource(ZJLandroid/content/ContentResolver;Landroid/net/Uri;)Z
+Landroid/media/MediaPlayer2Impl;->availableMimeTypeForExternalSource(Ljava/lang/String;)Z
+Landroid/media/MediaPlayer2Impl;->cleanDrmObj()V
+Landroid/media/MediaPlayer2Impl;->clearDrmEventCallback()V
+Landroid/media/MediaPlayer2Impl;->clearMediaPlayer2EventCallback()V
+Landroid/media/MediaPlayer2Impl;->clearPendingCommands()V
+Landroid/media/MediaPlayer2Impl;->deselectTrack(I)V
+Landroid/media/MediaPlayer2Impl;->easyPlaybackParams(FI)Landroid/media/PlaybackParams;
+Landroid/media/MediaPlayer2Impl;->enableNativeRoutingCallbacksLocked(Z)V
+Landroid/media/MediaPlayer2Impl;->getAudioAttributes()Landroid/media/AudioAttributes;
+Landroid/media/MediaPlayer2Impl;->getAudioSessionId()I
+Landroid/media/MediaPlayer2Impl;->getAudioStreamType()I
+Landroid/media/MediaPlayer2Impl;->getBufferedPosition()J
+Landroid/media/MediaPlayer2Impl;->getBufferingParams()Landroid/media/BufferingParams;
+Landroid/media/MediaPlayer2Impl;->getBufferingState()I
+Landroid/media/MediaPlayer2Impl;->getByteArrayFromUUID(Ljava/util/UUID;)[B
+Landroid/media/MediaPlayer2Impl;->getCurrentDataSource()Landroid/media/DataSourceDesc;
+Landroid/media/MediaPlayer2Impl;->getCurrentPosition()J
+Landroid/media/MediaPlayer2Impl;->getDrmInfo()Landroid/media/MediaPlayer2$DrmInfo;
+Landroid/media/MediaPlayer2Impl;->getDrmKeyRequest([B[BLjava/lang/String;ILjava/util/Map;)Landroid/media/MediaDrm$KeyRequest;
+Landroid/media/MediaPlayer2Impl;->getDrmPropertyString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/media/MediaPlayer2Impl;->getDuration()J
+Landroid/media/MediaPlayer2Impl;->getInbandTrackInfoImpl()[Landroid/media/MediaPlayer2Impl$TrackInfoImpl;
+Landroid/media/MediaPlayer2Impl;->getMaxPlayerVolume()F
+Landroid/media/MediaPlayer2Impl;->getMediaPlayer2State()I
+Landroid/media/MediaPlayer2Impl;->getMediaTimeProvider()Landroid/media/MediaTimeProvider;
+Landroid/media/MediaPlayer2Impl;->getMetadata(ZZ)Landroid/media/Metadata;
+Landroid/media/MediaPlayer2Impl;->getMetrics()Landroid/os/PersistableBundle;
+Landroid/media/MediaPlayer2Impl;->getParameter(I)Landroid/os/Parcel;
+Landroid/media/MediaPlayer2Impl;->getPlaybackParams()Landroid/media/PlaybackParams;
+Landroid/media/MediaPlayer2Impl;->getPlaybackSpeed()F
+Landroid/media/MediaPlayer2Impl;->getPlayerState()I
+Landroid/media/MediaPlayer2Impl;->getPlayerVolume()F
+Landroid/media/MediaPlayer2Impl;->getSelectedTrack(I)I
+Landroid/media/MediaPlayer2Impl;->getSyncParams()Landroid/media/SyncParams;
+Landroid/media/MediaPlayer2Impl;->getTimestamp()Landroid/media/MediaTimestamp;
+Landroid/media/MediaPlayer2Impl;->getTrackInfo()Ljava/util/List;
+Landroid/media/MediaPlayer2Impl;->getVideoHeight()I
+Landroid/media/MediaPlayer2Impl;->getVideoWidth()I
+Landroid/media/MediaPlayer2Impl;->handleDataSource(ZJLandroid/content/Context;Landroid/net/Uri;Ljava/util/Map;Ljava/util/List;)V
+Landroid/media/MediaPlayer2Impl;->handleDataSource(ZJLandroid/media/Media2DataSource;)V
+Landroid/media/MediaPlayer2Impl;->handleDataSource(ZJLjava/io/FileDescriptor;JJ)V
+Landroid/media/MediaPlayer2Impl;->handleDataSource(ZJLjava/lang/String;Ljava/util/Map;Ljava/util/List;)V
+Landroid/media/MediaPlayer2Impl;->handleDataSource(ZJLjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;)V
+Landroid/media/MediaPlayer2Impl;->handleDataSource(ZLandroid/media/DataSourceDesc;J)V
+Landroid/media/MediaPlayer2Impl;->HandleProvisioninig(Ljava/util/UUID;)I
+Landroid/media/MediaPlayer2Impl;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V
+Landroid/media/MediaPlayer2Impl;->INVOKE_ID_ADD_EXTERNAL_SOURCE:I
+Landroid/media/MediaPlayer2Impl;->INVOKE_ID_ADD_EXTERNAL_SOURCE_FD:I
+Landroid/media/MediaPlayer2Impl;->INVOKE_ID_DESELECT_TRACK:I
+Landroid/media/MediaPlayer2Impl;->INVOKE_ID_GET_SELECTED_TRACK:I
+Landroid/media/MediaPlayer2Impl;->INVOKE_ID_GET_TRACK_INFO:I
+Landroid/media/MediaPlayer2Impl;->INVOKE_ID_SELECT_TRACK:I
+Landroid/media/MediaPlayer2Impl;->INVOKE_ID_SET_VIDEO_SCALE_MODE:I
+Landroid/media/MediaPlayer2Impl;->isLooping()Z
+Landroid/media/MediaPlayer2Impl;->isPlaying()Z
+Landroid/media/MediaPlayer2Impl;->isReversePlaybackSupported()Z
+Landroid/media/MediaPlayer2Impl;->isVideoScalingModeSupported(I)Z
+Landroid/media/MediaPlayer2Impl;->KEY_PARAMETER_AUDIO_ATTRIBUTES:I
+Landroid/media/MediaPlayer2Impl;->loopCurrent(Z)V
+Landroid/media/MediaPlayer2Impl;->mActiveDrmScheme:Z
+Landroid/media/MediaPlayer2Impl;->mBufferedPercentageCurrent:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/media/MediaPlayer2Impl;->mBufferedPercentageNext:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/media/MediaPlayer2Impl;->mCurrentDSD:Landroid/media/DataSourceDesc;
+Landroid/media/MediaPlayer2Impl;->mCurrentSrcId:J
+Landroid/media/MediaPlayer2Impl;->mCurrentTask:Landroid/media/MediaPlayer2Impl$Task;
+Landroid/media/MediaPlayer2Impl;->mDrmConfigAllowed:Z
+Landroid/media/MediaPlayer2Impl;->mDrmEventCallbackRecords:Ljava/util/ArrayList;
+Landroid/media/MediaPlayer2Impl;->mDrmEventCbLock:Ljava/lang/Object;
+Landroid/media/MediaPlayer2Impl;->mDrmInfoImpl:Landroid/media/MediaPlayer2Impl$DrmInfoImpl;
+Landroid/media/MediaPlayer2Impl;->mDrmInfoResolved:Z
+Landroid/media/MediaPlayer2Impl;->mDrmLock:Ljava/lang/Object;
+Landroid/media/MediaPlayer2Impl;->mDrmObj:Landroid/media/MediaDrm;
+Landroid/media/MediaPlayer2Impl;->mDrmProvisioningInProgress:Z
+Landroid/media/MediaPlayer2Impl;->mDrmProvisioningThread:Landroid/media/MediaPlayer2Impl$ProvisioningThread;
+Landroid/media/MediaPlayer2Impl;->mDrmSessionId:[B
+Landroid/media/MediaPlayer2Impl;->mDrmUUID:Ljava/util/UUID;
+Landroid/media/MediaPlayer2Impl;->MEDIA_AUDIO_ROUTING_CHANGED:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_BUFFERING_UPDATE:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_DRM_INFO:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_ERROR:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_INFO:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_META_DATA:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_NOP:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_NOTIFY_TIME:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_PAUSED:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_PLAYBACK_COMPLETE:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_PREPARED:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_SEEK_COMPLETE:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_SET_VIDEO_SIZE:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_SKIPPED:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_STARTED:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_STOPPED:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_SUBTITLE_DATA:I
+Landroid/media/MediaPlayer2Impl;->MEDIA_TIMED_TEXT:I
+Landroid/media/MediaPlayer2Impl;->mEventCallbackRecords:Ljava/util/ArrayList;
+Landroid/media/MediaPlayer2Impl;->mEventCbLock:Ljava/lang/Object;
+Landroid/media/MediaPlayer2Impl;->mEventHandler:Landroid/media/MediaPlayer2Impl$EventHandler;
+Landroid/media/MediaPlayer2Impl;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/media/MediaPlayer2Impl;->mHandlerThread:Landroid/os/HandlerThread;
+Landroid/media/MediaPlayer2Impl;->mInbandTrackIndices:Ljava/util/BitSet;
+Landroid/media/MediaPlayer2Impl;->mIndexTrackPairs:Ljava/util/Vector;
+Landroid/media/MediaPlayer2Impl;->mListenerContext:I
+Landroid/media/MediaPlayer2Impl;->mNativeContext:J
+Landroid/media/MediaPlayer2Impl;->mNativeSurfaceTexture:J
+Landroid/media/MediaPlayer2Impl;->mNextDSDs:Ljava/util/List;
+Landroid/media/MediaPlayer2Impl;->mNextSourcePlayPending:Z
+Landroid/media/MediaPlayer2Impl;->mNextSourceState:I
+Landroid/media/MediaPlayer2Impl;->mNextSrcId:J
+Landroid/media/MediaPlayer2Impl;->mOnDrmConfigHelper:Landroid/media/MediaPlayer2$OnDrmConfigHelper;
+Landroid/media/MediaPlayer2Impl;->mOnSubtitleDataListener:Landroid/media/MediaPlayer2$OnSubtitleDataListener;
+Landroid/media/MediaPlayer2Impl;->mOpenSubtitleSources:Ljava/util/Vector;
+Landroid/media/MediaPlayer2Impl;->mPendingTasks:Ljava/util/List;
+Landroid/media/MediaPlayer2Impl;->mPreferredDevice:Landroid/media/AudioDeviceInfo;
+Landroid/media/MediaPlayer2Impl;->mPrepareDrmInProgress:Z
+Landroid/media/MediaPlayer2Impl;->mRoutingChangeListeners:Landroid/util/ArrayMap;
+Landroid/media/MediaPlayer2Impl;->mScreenOnWhilePlaying:Z
+Landroid/media/MediaPlayer2Impl;->mSelectedSubtitleTrackIndex:I
+Landroid/media/MediaPlayer2Impl;->mSrcIdGenerator:J
+Landroid/media/MediaPlayer2Impl;->mSrcLock:Ljava/lang/Object;
+Landroid/media/MediaPlayer2Impl;->mStayAwake:Z
+Landroid/media/MediaPlayer2Impl;->mStreamType:I
+Landroid/media/MediaPlayer2Impl;->mSubtitleController:Landroid/media/SubtitleController;
+Landroid/media/MediaPlayer2Impl;->mSubtitleDataListener:Landroid/media/MediaPlayer2$OnSubtitleDataListener;
+Landroid/media/MediaPlayer2Impl;->mSurfaceHolder:Landroid/view/SurfaceHolder;
+Landroid/media/MediaPlayer2Impl;->mTaskHandler:Landroid/os/Handler;
+Landroid/media/MediaPlayer2Impl;->mTaskLock:Ljava/lang/Object;
+Landroid/media/MediaPlayer2Impl;->mTimeProvider:Landroid/media/MediaPlayer2Impl$TimeProvider;
+Landroid/media/MediaPlayer2Impl;->mVolume:F
+Landroid/media/MediaPlayer2Impl;->mWakeLock:Landroid/os/PowerManager$WakeLock;
+Landroid/media/MediaPlayer2Impl;->nativeHandleDataSourceCallback(ZJLandroid/media/Media2DataSource;)V
+Landroid/media/MediaPlayer2Impl;->nativeHandleDataSourceFD(ZJLjava/io/FileDescriptor;JJ)V
+Landroid/media/MediaPlayer2Impl;->nativeHandleDataSourceUrl(ZJLandroid/media/Media2HTTPService;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/media/MediaPlayer2Impl;->nativePlayNextDataSource(J)V
+Landroid/media/MediaPlayer2Impl;->native_enableDeviceCallback(Z)V
+Landroid/media/MediaPlayer2Impl;->native_finalize()V
+Landroid/media/MediaPlayer2Impl;->native_getMediaPlayer2State()I
+Landroid/media/MediaPlayer2Impl;->native_getMetadata(ZZLandroid/os/Parcel;)Z
+Landroid/media/MediaPlayer2Impl;->native_getMetrics()Landroid/os/PersistableBundle;
+Landroid/media/MediaPlayer2Impl;->native_getRoutedDeviceId()I
+Landroid/media/MediaPlayer2Impl;->native_init()V
+Landroid/media/MediaPlayer2Impl;->native_invoke(Landroid/os/Parcel;Landroid/os/Parcel;)I
+Landroid/media/MediaPlayer2Impl;->native_setMetadataFilter(Landroid/os/Parcel;)I
+Landroid/media/MediaPlayer2Impl;->native_setOutputDevice(I)Z
+Landroid/media/MediaPlayer2Impl;->native_setup(Ljava/lang/Object;)V
+Landroid/media/MediaPlayer2Impl;->native_stream_event_onStreamDataRequest(JJJ)V
+Landroid/media/MediaPlayer2Impl;->native_stream_event_onStreamPresentationEnd(JJ)V
+Landroid/media/MediaPlayer2Impl;->native_stream_event_onTearDown(JJ)V
+Landroid/media/MediaPlayer2Impl;->newRequest()Landroid/os/Parcel;
+Landroid/media/MediaPlayer2Impl;->NEXT_SOURCE_STATE_ERROR:I
+Landroid/media/MediaPlayer2Impl;->NEXT_SOURCE_STATE_INIT:I
+Landroid/media/MediaPlayer2Impl;->NEXT_SOURCE_STATE_PREPARED:I
+Landroid/media/MediaPlayer2Impl;->NEXT_SOURCE_STATE_PREPARING:I
+Landroid/media/MediaPlayer2Impl;->notifyAt(J)V
+Landroid/media/MediaPlayer2Impl;->notifyWhenCommandLabelReached(Ljava/lang/Object;)V
+Landroid/media/MediaPlayer2Impl;->onSubtitleTrackSelected(Landroid/media/SubtitleTrack;)V
+Landroid/media/MediaPlayer2Impl;->pause()V
+Landroid/media/MediaPlayer2Impl;->play()V
+Landroid/media/MediaPlayer2Impl;->playNextDataSource_l()V
+Landroid/media/MediaPlayer2Impl;->populateInbandTracks()V
+Landroid/media/MediaPlayer2Impl;->postEventFromNative(Ljava/lang/Object;JIIILjava/lang/Object;)V
+Landroid/media/MediaPlayer2Impl;->prepare()V
+Landroid/media/MediaPlayer2Impl;->prepareDrm(Ljava/util/UUID;)V
+Landroid/media/MediaPlayer2Impl;->prepareDrm_createDrmStep(Ljava/util/UUID;)V
+Landroid/media/MediaPlayer2Impl;->prepareDrm_openSessionStep(Ljava/util/UUID;)V
+Landroid/media/MediaPlayer2Impl;->prepareNextDataSource_l()V
+Landroid/media/MediaPlayer2Impl;->processPendingTask_l()V
+Landroid/media/MediaPlayer2Impl;->provideDrmKeyResponse([B[B)[B
+Landroid/media/MediaPlayer2Impl;->registerPlayerEventCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaPlayerBase$PlayerEventCallback;)V
+Landroid/media/MediaPlayer2Impl;->release()V
+Landroid/media/MediaPlayer2Impl;->releaseDrm()V
+Landroid/media/MediaPlayer2Impl;->reset()V
+Landroid/media/MediaPlayer2Impl;->resetDrmState()V
+Landroid/media/MediaPlayer2Impl;->restoreDrmKeys([B)V
+Landroid/media/MediaPlayer2Impl;->resumePrepareDrm(Ljava/util/UUID;)Z
+Landroid/media/MediaPlayer2Impl;->scanInternalSubtitleTracks()V
+Landroid/media/MediaPlayer2Impl;->seekTo(JI)V
+Landroid/media/MediaPlayer2Impl;->selectOrDeselectInbandTrack(IZ)V
+Landroid/media/MediaPlayer2Impl;->selectOrDeselectTrack(IZ)V
+Landroid/media/MediaPlayer2Impl;->selectTrack(I)V
+Landroid/media/MediaPlayer2Impl;->setAudioAttributes(Landroid/media/AudioAttributes;)V
+Landroid/media/MediaPlayer2Impl;->setAudioOutputDeviceById(Landroid/media/AudioTrack;I)Z
+Landroid/media/MediaPlayer2Impl;->setAudioSessionId(I)V
+Landroid/media/MediaPlayer2Impl;->setAuxEffectSendLevel(F)V
+Landroid/media/MediaPlayer2Impl;->setBufferingParams(Landroid/media/BufferingParams;)V
+Landroid/media/MediaPlayer2Impl;->setDataSource(Landroid/media/DataSourceDesc;)V
+Landroid/media/MediaPlayer2Impl;->setDisplay(Landroid/view/SurfaceHolder;)V
+Landroid/media/MediaPlayer2Impl;->setDrmEventCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaPlayer2$DrmEventCallback;)V
+Landroid/media/MediaPlayer2Impl;->setDrmPropertyString(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/media/MediaPlayer2Impl;->setLooping(Z)V
+Landroid/media/MediaPlayer2Impl;->setMediaPlayer2EventCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;)V
+Landroid/media/MediaPlayer2Impl;->setMetadataFilter(Ljava/util/Set;Ljava/util/Set;)I
+Landroid/media/MediaPlayer2Impl;->setNextDataSource(Landroid/media/DataSourceDesc;)V
+Landroid/media/MediaPlayer2Impl;->setNextDataSources(Ljava/util/List;)V
+Landroid/media/MediaPlayer2Impl;->setOnDrmConfigHelper(Landroid/media/MediaPlayer2$OnDrmConfigHelper;)V
+Landroid/media/MediaPlayer2Impl;->setOnSubtitleDataListener(Landroid/media/MediaPlayer2$OnSubtitleDataListener;)V
+Landroid/media/MediaPlayer2Impl;->setParameter(ILandroid/os/Parcel;)Z
+Landroid/media/MediaPlayer2Impl;->setPlaybackParams(Landroid/media/PlaybackParams;)V
+Landroid/media/MediaPlayer2Impl;->setPlaybackSpeed(F)V
+Landroid/media/MediaPlayer2Impl;->setPlayerVolume(F)V
+Landroid/media/MediaPlayer2Impl;->setScreenOnWhilePlaying(Z)V
+Landroid/media/MediaPlayer2Impl;->setSubtitleAnchor()V
+Landroid/media/MediaPlayer2Impl;->setSubtitleAnchor(Landroid/media/SubtitleController;Landroid/media/SubtitleController$Anchor;)V
+Landroid/media/MediaPlayer2Impl;->setSurface(Landroid/view/Surface;)V
+Landroid/media/MediaPlayer2Impl;->setSyncParams(Landroid/media/SyncParams;)V
+Landroid/media/MediaPlayer2Impl;->setVideoScalingMode(I)V
+Landroid/media/MediaPlayer2Impl;->setWakeMode(Landroid/content/Context;I)V
+Landroid/media/MediaPlayer2Impl;->skipToNext()V
+Landroid/media/MediaPlayer2Impl;->stayAwake(Z)V
+Landroid/media/MediaPlayer2Impl;->stop()V
+Landroid/media/MediaPlayer2Impl;->TAG:Ljava/lang/String;
+Landroid/media/MediaPlayer2Impl;->unregisterPlayerEventCallback(Landroid/media/MediaPlayerBase$PlayerEventCallback;)V
+Landroid/media/MediaPlayer2Impl;->updateSurfaceScreenOn()V
+Landroid/media/MediaPlayer2Impl;->_attachAuxEffect(I)V
+Landroid/media/MediaPlayer2Impl;->_getAudioStreamType()I
+Landroid/media/MediaPlayer2Impl;->_notifyAt(J)V
+Landroid/media/MediaPlayer2Impl;->_pause()V
+Landroid/media/MediaPlayer2Impl;->_prepare()V
+Landroid/media/MediaPlayer2Impl;->_prepareDrm([B[B)V
+Landroid/media/MediaPlayer2Impl;->_release()V
+Landroid/media/MediaPlayer2Impl;->_releaseDrm()V
+Landroid/media/MediaPlayer2Impl;->_reset()V
+Landroid/media/MediaPlayer2Impl;->_seekTo(JI)V
+Landroid/media/MediaPlayer2Impl;->_setAudioSessionId(I)V
+Landroid/media/MediaPlayer2Impl;->_setAuxEffectSendLevel(F)V
+Landroid/media/MediaPlayer2Impl;->_setBufferingParams(Landroid/media/BufferingParams;)V
+Landroid/media/MediaPlayer2Impl;->_setPlaybackParams(Landroid/media/PlaybackParams;)V
+Landroid/media/MediaPlayer2Impl;->_setSyncParams(Landroid/media/SyncParams;)V
+Landroid/media/MediaPlayer2Impl;->_setVideoSurface(Landroid/view/Surface;)V
+Landroid/media/MediaPlayer2Impl;->_setVolume(FF)V
+Landroid/media/MediaPlayer2Impl;->_start()V
+Landroid/media/MediaPlayer2Impl;->_stop()V
+Landroid/media/MediaPlayer;->APPLY_METADATA_FILTER:Z
+Landroid/media/MediaPlayer;->attemptDataSource(Landroid/content/ContentResolver;Landroid/net/Uri;)Z
+Landroid/media/MediaPlayer;->availableMimeTypeForExternalSource(Ljava/lang/String;)Z
+Landroid/media/MediaPlayer;->cleanDrmObj()V
+Landroid/media/MediaPlayer;->easyPlaybackParams(FI)Landroid/media/PlaybackParams;
+Landroid/media/MediaPlayer;->enableNativeRoutingCallbacksLocked(Z)V
+Landroid/media/MediaPlayer;->getAudioStreamType()I
+Landroid/media/MediaPlayer;->getByteArrayFromUUID(Ljava/util/UUID;)[B
+Landroid/media/MediaPlayer;->getInbandTrackInfo()[Landroid/media/MediaPlayer$TrackInfo;
+Landroid/media/MediaPlayer;->HandleProvisioninig(Ljava/util/UUID;)I
+Landroid/media/MediaPlayer;->IMEDIA_PLAYER:Ljava/lang/String;
+Landroid/media/MediaPlayer;->INVOKE_ID_ADD_EXTERNAL_SOURCE:I
+Landroid/media/MediaPlayer;->INVOKE_ID_ADD_EXTERNAL_SOURCE_FD:I
+Landroid/media/MediaPlayer;->INVOKE_ID_DESELECT_TRACK:I
+Landroid/media/MediaPlayer;->INVOKE_ID_GET_SELECTED_TRACK:I
+Landroid/media/MediaPlayer;->INVOKE_ID_GET_TRACK_INFO:I
+Landroid/media/MediaPlayer;->INVOKE_ID_SELECT_TRACK:I
+Landroid/media/MediaPlayer;->INVOKE_ID_SET_VIDEO_SCALE_MODE:I
+Landroid/media/MediaPlayer;->isVideoScalingModeSupported(I)Z
+Landroid/media/MediaPlayer;->KEY_PARAMETER_AUDIO_ATTRIBUTES:I
+Landroid/media/MediaPlayer;->mActiveDrmScheme:Z
+Landroid/media/MediaPlayer;->mBypassInterruptionPolicy:Z
+Landroid/media/MediaPlayer;->mDrmConfigAllowed:Z
+Landroid/media/MediaPlayer;->mDrmInfo:Landroid/media/MediaPlayer$DrmInfo;
+Landroid/media/MediaPlayer;->mDrmInfoResolved:Z
+Landroid/media/MediaPlayer;->mDrmLock:Ljava/lang/Object;
+Landroid/media/MediaPlayer;->mDrmObj:Landroid/media/MediaDrm;
+Landroid/media/MediaPlayer;->mDrmProvisioningInProgress:Z
+Landroid/media/MediaPlayer;->mDrmProvisioningThread:Landroid/media/MediaPlayer$ProvisioningThread;
+Landroid/media/MediaPlayer;->mDrmSessionId:[B
+Landroid/media/MediaPlayer;->mDrmUUID:Ljava/util/UUID;
+Landroid/media/MediaPlayer;->MEDIA_AUDIO_ROUTING_CHANGED:I
+Landroid/media/MediaPlayer;->MEDIA_BUFFERING_UPDATE:I
+Landroid/media/MediaPlayer;->MEDIA_DRM_INFO:I
+Landroid/media/MediaPlayer;->MEDIA_ERROR:I
+Landroid/media/MediaPlayer;->MEDIA_ERROR_SYSTEM:I
+Landroid/media/MediaPlayer;->MEDIA_INFO:I
+Landroid/media/MediaPlayer;->MEDIA_INFO_NETWORK_BANDWIDTH:I
+Landroid/media/MediaPlayer;->MEDIA_META_DATA:I
+Landroid/media/MediaPlayer;->MEDIA_MIMETYPE_TEXT_CEA_608:Ljava/lang/String;
+Landroid/media/MediaPlayer;->MEDIA_MIMETYPE_TEXT_CEA_708:Ljava/lang/String;
+Landroid/media/MediaPlayer;->MEDIA_MIMETYPE_TEXT_VTT:Ljava/lang/String;
+Landroid/media/MediaPlayer;->MEDIA_NOP:I
+Landroid/media/MediaPlayer;->MEDIA_NOTIFY_TIME:I
+Landroid/media/MediaPlayer;->MEDIA_PAUSED:I
+Landroid/media/MediaPlayer;->MEDIA_PLAYBACK_COMPLETE:I
+Landroid/media/MediaPlayer;->MEDIA_PREPARED:I
+Landroid/media/MediaPlayer;->MEDIA_SEEK_COMPLETE:I
+Landroid/media/MediaPlayer;->MEDIA_SET_VIDEO_SIZE:I
+Landroid/media/MediaPlayer;->MEDIA_SKIPPED:I
+Landroid/media/MediaPlayer;->MEDIA_STARTED:I
+Landroid/media/MediaPlayer;->MEDIA_STOPPED:I
+Landroid/media/MediaPlayer;->MEDIA_SUBTITLE_DATA:I
+Landroid/media/MediaPlayer;->MEDIA_TIMED_TEXT:I
+Landroid/media/MediaPlayer;->MEDIA_TIME_DISCONTINUITY:I
+Landroid/media/MediaPlayer;->METADATA_UPDATE_ONLY:Z
+Landroid/media/MediaPlayer;->mExtSubtitleDataHandler:Landroid/os/Handler;
+Landroid/media/MediaPlayer;->mExtSubtitleDataListener:Landroid/media/MediaPlayer$OnSubtitleDataListener;
+Landroid/media/MediaPlayer;->mInbandTrackIndices:Ljava/util/BitSet;
+Landroid/media/MediaPlayer;->mIndexTrackPairs:Ljava/util/Vector;
+Landroid/media/MediaPlayer;->mIntSubtitleDataListener:Landroid/media/MediaPlayer$OnSubtitleDataListener;
+Landroid/media/MediaPlayer;->mListenerContext:I
+Landroid/media/MediaPlayer;->mNativeContext:J
+Landroid/media/MediaPlayer;->mNativeSurfaceTexture:J
+Landroid/media/MediaPlayer;->mOnBufferingUpdateListener:Landroid/media/MediaPlayer$OnBufferingUpdateListener;
+Landroid/media/MediaPlayer;->mOnCompletionInternalListener:Landroid/media/MediaPlayer$OnCompletionListener;
+Landroid/media/MediaPlayer;->mOnDrmConfigHelper:Landroid/media/MediaPlayer$OnDrmConfigHelper;
+Landroid/media/MediaPlayer;->mOnDrmInfoHandlerDelegate:Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;
+Landroid/media/MediaPlayer;->mOnDrmPreparedHandlerDelegate:Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
+Landroid/media/MediaPlayer;->mOnMediaTimeDiscontinuityHandler:Landroid/os/Handler;
+Landroid/media/MediaPlayer;->mOnMediaTimeDiscontinuityListener:Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
+Landroid/media/MediaPlayer;->mOnTimedMetaDataAvailableListener:Landroid/media/MediaPlayer$OnTimedMetaDataAvailableListener;
+Landroid/media/MediaPlayer;->mOnVideoSizeChangedListener:Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
+Landroid/media/MediaPlayer;->mOpenSubtitleSources:Ljava/util/Vector;
+Landroid/media/MediaPlayer;->mPreferredDevice:Landroid/media/AudioDeviceInfo;
+Landroid/media/MediaPlayer;->mPrepareDrmInProgress:Z
+Landroid/media/MediaPlayer;->mRoutingChangeListeners:Landroid/util/ArrayMap;
+Landroid/media/MediaPlayer;->mScreenOnWhilePlaying:Z
+Landroid/media/MediaPlayer;->mSelectedSubtitleTrackIndex:I
+Landroid/media/MediaPlayer;->mStayAwake:Z
+Landroid/media/MediaPlayer;->mStreamType:I
+Landroid/media/MediaPlayer;->mSubtitleController:Landroid/media/SubtitleController;
+Landroid/media/MediaPlayer;->mSubtitleDataListenerDisabled:Z
+Landroid/media/MediaPlayer;->mSurfaceHolder:Landroid/view/SurfaceHolder;
+Landroid/media/MediaPlayer;->mTimeProvider:Landroid/media/MediaPlayer$TimeProvider;
+Landroid/media/MediaPlayer;->mUsage:I
+Landroid/media/MediaPlayer;->mWakeLock:Landroid/os/PowerManager$WakeLock;
+Landroid/media/MediaPlayer;->nativeSetDataSource(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/media/MediaPlayer;->native_applyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
+Landroid/media/MediaPlayer;->native_enableDeviceCallback(Z)V
+Landroid/media/MediaPlayer;->native_finalize()V
+Landroid/media/MediaPlayer;->native_getMetadata(ZZLandroid/os/Parcel;)Z
+Landroid/media/MediaPlayer;->native_getMetrics()Landroid/os/PersistableBundle;
+Landroid/media/MediaPlayer;->native_getRoutedDeviceId()I
+Landroid/media/MediaPlayer;->native_getVolumeShaperState(I)Landroid/media/VolumeShaper$State;
+Landroid/media/MediaPlayer;->native_init()V
+Landroid/media/MediaPlayer;->native_invoke(Landroid/os/Parcel;Landroid/os/Parcel;)I
+Landroid/media/MediaPlayer;->native_pullBatteryData(Landroid/os/Parcel;)I
+Landroid/media/MediaPlayer;->native_setMetadataFilter(Landroid/os/Parcel;)I
+Landroid/media/MediaPlayer;->native_setOutputDevice(I)Z
+Landroid/media/MediaPlayer;->native_setRetransmitEndpoint(Ljava/lang/String;I)I
+Landroid/media/MediaPlayer;->native_setup(Ljava/lang/Object;)V
+Landroid/media/MediaPlayer;->notifyAt(J)V
+Landroid/media/MediaPlayer;->onSubtitleTrackSelected(Landroid/media/SubtitleTrack;)V
+Landroid/media/MediaPlayer;->PLAYBACK_RATE_AUDIO_MODE_DEFAULT:I
+Landroid/media/MediaPlayer;->PLAYBACK_RATE_AUDIO_MODE_RESAMPLE:I
+Landroid/media/MediaPlayer;->PLAYBACK_RATE_AUDIO_MODE_STRETCH:I
+Landroid/media/MediaPlayer;->playerApplyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
+Landroid/media/MediaPlayer;->playerGetVolumeShaperState(I)Landroid/media/VolumeShaper$State;
+Landroid/media/MediaPlayer;->playerPause()V
+Landroid/media/MediaPlayer;->playerSetAuxEffectSendLevel(ZF)I
+Landroid/media/MediaPlayer;->playerSetVolume(ZFF)V
+Landroid/media/MediaPlayer;->playerStart()V
+Landroid/media/MediaPlayer;->playerStop()V
+Landroid/media/MediaPlayer;->populateInbandTracks()V
+Landroid/media/MediaPlayer;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/media/MediaPlayer;->prepareDrm_createDrmStep(Ljava/util/UUID;)V
+Landroid/media/MediaPlayer;->prepareDrm_openSessionStep(Ljava/util/UUID;)V
+Landroid/media/MediaPlayer;->resetDrmState()V
+Landroid/media/MediaPlayer;->resumePrepareDrm(Ljava/util/UUID;)Z
+Landroid/media/MediaPlayer;->scanInternalSubtitleTracks()V
+Landroid/media/MediaPlayer;->selectOrDeselectInbandTrack(IZ)V
+Landroid/media/MediaPlayer;->selectOrDeselectTrack(IZ)V
+Landroid/media/MediaPlayer;->setMetadataFilter(Ljava/util/Set;Ljava/util/Set;)I
+Landroid/media/MediaPlayer;->setOnMediaTimeDiscontinuityListenerInt(Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;Landroid/os/Handler;)V
+Landroid/media/MediaPlayer;->setOnSubtitleDataListenerInt(Landroid/media/MediaPlayer$OnSubtitleDataListener;Landroid/os/Handler;)V
+Landroid/media/MediaPlayer;->setSubtitleAnchor()V
+Landroid/media/MediaPlayer;->setVolume(F)V
+Landroid/media/MediaPlayer;->startImpl()V
+Landroid/media/MediaPlayer;->stayAwake(Z)V
+Landroid/media/MediaPlayer;->TAG:Ljava/lang/String;
+Landroid/media/MediaPlayer;->updateSurfaceScreenOn()V
+Landroid/media/MediaPlayer;->_getAudioStreamType()I
+Landroid/media/MediaPlayer;->_notifyAt(J)V
+Landroid/media/MediaPlayer;->_pause()V
+Landroid/media/MediaPlayer;->_prepare()V
+Landroid/media/MediaPlayer;->_prepareDrm([B[B)V
+Landroid/media/MediaPlayer;->_release()V
+Landroid/media/MediaPlayer;->_releaseDrm()V
+Landroid/media/MediaPlayer;->_reset()V
+Landroid/media/MediaPlayer;->_seekTo(JI)V
+Landroid/media/MediaPlayer;->_setAudioStreamType(I)V
+Landroid/media/MediaPlayer;->_setAuxEffectSendLevel(F)V
+Landroid/media/MediaPlayer;->_setDataSource(Landroid/media/MediaDataSource;)V
+Landroid/media/MediaPlayer;->_setDataSource(Ljava/io/FileDescriptor;JJ)V
+Landroid/media/MediaPlayer;->_setVideoSurface(Landroid/view/Surface;)V
+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
+Landroid/media/MediaPlayerBase$PlayerEventCallback;->onMediaPrepared(Landroid/media/MediaPlayerBase;Landroid/media/DataSourceDesc;)V
+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
+Landroid/media/MediaPlayerBase;->BUFFERING_STATE_BUFFERING_COMPLETE:I
+Landroid/media/MediaPlayerBase;->BUFFERING_STATE_UNKNOWN:I
+Landroid/media/MediaPlayerBase;->getAudioAttributes()Landroid/media/AudioAttributes;
+Landroid/media/MediaPlayerBase;->getBufferedPosition()J
+Landroid/media/MediaPlayerBase;->getBufferingState()I
+Landroid/media/MediaPlayerBase;->getCurrentDataSource()Landroid/media/DataSourceDesc;
+Landroid/media/MediaPlayerBase;->getCurrentPosition()J
+Landroid/media/MediaPlayerBase;->getDuration()J
+Landroid/media/MediaPlayerBase;->getMaxPlayerVolume()F
+Landroid/media/MediaPlayerBase;->getPlaybackSpeed()F
+Landroid/media/MediaPlayerBase;->getPlayerState()I
+Landroid/media/MediaPlayerBase;->getPlayerVolume()F
+Landroid/media/MediaPlayerBase;->isReversePlaybackSupported()Z
+Landroid/media/MediaPlayerBase;->loopCurrent(Z)V
+Landroid/media/MediaPlayerBase;->pause()V
+Landroid/media/MediaPlayerBase;->play()V
+Landroid/media/MediaPlayerBase;->PLAYER_STATE_ERROR:I
+Landroid/media/MediaPlayerBase;->PLAYER_STATE_IDLE:I
+Landroid/media/MediaPlayerBase;->PLAYER_STATE_PAUSED:I
+Landroid/media/MediaPlayerBase;->PLAYER_STATE_PLAYING:I
+Landroid/media/MediaPlayerBase;->prepare()V
+Landroid/media/MediaPlayerBase;->registerPlayerEventCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaPlayerBase$PlayerEventCallback;)V
+Landroid/media/MediaPlayerBase;->reset()V
+Landroid/media/MediaPlayerBase;->seekTo(J)V
+Landroid/media/MediaPlayerBase;->setAudioAttributes(Landroid/media/AudioAttributes;)V
+Landroid/media/MediaPlayerBase;->setDataSource(Landroid/media/DataSourceDesc;)V
+Landroid/media/MediaPlayerBase;->setNextDataSource(Landroid/media/DataSourceDesc;)V
+Landroid/media/MediaPlayerBase;->setNextDataSources(Ljava/util/List;)V
+Landroid/media/MediaPlayerBase;->setPlaybackSpeed(F)V
+Landroid/media/MediaPlayerBase;->setPlayerVolume(F)V
+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;
+Landroid/media/MediaPlaylistAgent;->getPlaylist()Ljava/util/List;
+Landroid/media/MediaPlaylistAgent;->getPlaylistMetadata()Landroid/media/MediaMetadata2;
+Landroid/media/MediaPlaylistAgent;->getRepeatMode()I
+Landroid/media/MediaPlaylistAgent;->getShuffleMode()I
+Landroid/media/MediaPlaylistAgent;->mProvider:Landroid/media/update/MediaPlaylistAgentProvider;
+Landroid/media/MediaPlaylistAgent;->notifyPlaylistChanged()V
+Landroid/media/MediaPlaylistAgent;->notifyPlaylistMetadataChanged()V
+Landroid/media/MediaPlaylistAgent;->notifyRepeatModeChanged()V
+Landroid/media/MediaPlaylistAgent;->notifyShuffleModeChanged()V
+Landroid/media/MediaPlaylistAgent;->registerPlaylistEventCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaPlaylistAgent$PlaylistEventCallback;)V
+Landroid/media/MediaPlaylistAgent;->removePlaylistItem(Landroid/media/MediaItem2;)V
+Landroid/media/MediaPlaylistAgent;->REPEAT_MODE_ALL:I
+Landroid/media/MediaPlaylistAgent;->REPEAT_MODE_GROUP:I
+Landroid/media/MediaPlaylistAgent;->REPEAT_MODE_NONE:I
+Landroid/media/MediaPlaylistAgent;->REPEAT_MODE_ONE:I
+Landroid/media/MediaPlaylistAgent;->replacePlaylistItem(ILandroid/media/MediaItem2;)V
+Landroid/media/MediaPlaylistAgent;->setPlaylist(Ljava/util/List;Landroid/media/MediaMetadata2;)V
+Landroid/media/MediaPlaylistAgent;->setRepeatMode(I)V
+Landroid/media/MediaPlaylistAgent;->setShuffleMode(I)V
+Landroid/media/MediaPlaylistAgent;->SHUFFLE_MODE_ALL:I
+Landroid/media/MediaPlaylistAgent;->SHUFFLE_MODE_GROUP:I
+Landroid/media/MediaPlaylistAgent;->SHUFFLE_MODE_NONE:I
+Landroid/media/MediaPlaylistAgent;->skipToNextItem()V
+Landroid/media/MediaPlaylistAgent;->skipToPlaylistItem(Landroid/media/MediaItem2;)V
+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
+Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_EVENT_LIST_END:I
+Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_EVENT_LIST_START:I
+Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_TRACK_EVENT_ERROR:I
+Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_TRACK_EVENT_INFO:I
+Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_TRACK_EVENT_LIST_END:I
+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
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_COMPLETION_STATUS:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_DATA_KBYTES:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_DURATION_MS:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_ENCODED_FRAMES:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_INITIAL_DELAY_MS:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_LIST_END:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_LIST_START:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_MAX_CHUNK_DUR_MS:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_PROGRESS_IN_TIME:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_START_OFFSET_MS:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INFO_TYPE:I
+Landroid/media/MediaRecorder;->MEDIA_RECORDER_TRACK_INTER_CHUNK_TIME_MS:I
+Landroid/media/MediaRecorder;->mFile:Ljava/io/File;
+Landroid/media/MediaRecorder;->mNativeContext:J
+Landroid/media/MediaRecorder;->mPreferredDevice:Landroid/media/AudioDeviceInfo;
+Landroid/media/MediaRecorder;->mRoutingChangeListeners:Landroid/util/ArrayMap;
+Landroid/media/MediaRecorder;->native_enableDeviceCallback(Z)V
+Landroid/media/MediaRecorder;->native_getActiveMicrophones(Ljava/util/ArrayList;)I
+Landroid/media/MediaRecorder;->native_getMetrics()Landroid/os/PersistableBundle;
+Landroid/media/MediaRecorder;->native_getRoutedDeviceId()I
+Landroid/media/MediaRecorder;->native_setInputDevice(I)Z
+Landroid/media/MediaRecorder;->native_setInputSurface(Landroid/view/Surface;)V
+Landroid/media/MediaRecorder;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/media/MediaRecorder;->setAuxiliaryOutputFile(Ljava/io/FileDescriptor;)V
+Landroid/media/MediaRecorder;->setAuxiliaryOutputFile(Ljava/lang/String;)V
+Landroid/media/MediaRecorder;->TAG:Ljava/lang/String;
+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
+Landroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(Landroid/media/MediaRouter$RouteInfo;)Z
+Landroid/media/MediaRouter$CallbackInfo;->flags:I
+Landroid/media/MediaRouter$CallbackInfo;->router:Landroid/media/MediaRouter;
+Landroid/media/MediaRouter$CallbackInfo;->type:I
+Landroid/media/MediaRouter$RouteCategory;-><init>(IIZ)V
+Landroid/media/MediaRouter$RouteCategory;-><init>(Ljava/lang/CharSequence;IZ)V
+Landroid/media/MediaRouter$RouteCategory;->getName(Landroid/content/res/Resources;)Ljava/lang/CharSequence;
+Landroid/media/MediaRouter$RouteCategory;->isSystem()Z
+Landroid/media/MediaRouter$RouteCategory;->mGroupable:Z
+Landroid/media/MediaRouter$RouteCategory;->mIsSystem:Z
+Landroid/media/MediaRouter$RouteCategory;->mName:Ljava/lang/CharSequence;
+Landroid/media/MediaRouter$RouteCategory;->mNameResId:I
+Landroid/media/MediaRouter$RouteCategory;->mTypes:I
+Landroid/media/MediaRouter$RouteGroup;-><init>(Landroid/media/MediaRouter$RouteCategory;)V
+Landroid/media/MediaRouter$RouteGroup;->getName(Landroid/content/res/Resources;)Ljava/lang/CharSequence;
+Landroid/media/MediaRouter$RouteGroup;->memberNameChanged(Landroid/media/MediaRouter$RouteInfo;Ljava/lang/CharSequence;)V
+Landroid/media/MediaRouter$RouteGroup;->memberStatusChanged(Landroid/media/MediaRouter$RouteInfo;Ljava/lang/CharSequence;)V
+Landroid/media/MediaRouter$RouteGroup;->memberVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter$RouteGroup;->mRoutes:Ljava/util/ArrayList;
+Landroid/media/MediaRouter$RouteGroup;->mUpdateName:Z
+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
+Landroid/media/MediaRouter$RouteInfo;->mCategory:Landroid/media/MediaRouter$RouteCategory;
+Landroid/media/MediaRouter$RouteInfo;->mDescription:Ljava/lang/CharSequence;
+Landroid/media/MediaRouter$RouteInfo;->mDeviceAddress:Ljava/lang/String;
+Landroid/media/MediaRouter$RouteInfo;->mDeviceType:I
+Landroid/media/MediaRouter$RouteInfo;->mEnabled:Z
+Landroid/media/MediaRouter$RouteInfo;->mGlobalRouteId:Ljava/lang/String;
+Landroid/media/MediaRouter$RouteInfo;->mGroup:Landroid/media/MediaRouter$RouteGroup;
+Landroid/media/MediaRouter$RouteInfo;->mIcon:Landroid/graphics/drawable/Drawable;
+Landroid/media/MediaRouter$RouteInfo;->mName:Ljava/lang/CharSequence;
+Landroid/media/MediaRouter$RouteInfo;->mPlaybackStream:I
+Landroid/media/MediaRouter$RouteInfo;->mPlaybackType:I
+Landroid/media/MediaRouter$RouteInfo;->mPresentationDisplay:Landroid/view/Display;
+Landroid/media/MediaRouter$RouteInfo;->mPresentationDisplayId:I
+Landroid/media/MediaRouter$RouteInfo;->mRealStatusCode:I
+Landroid/media/MediaRouter$RouteInfo;->mRemoteVolObserver:Landroid/media/IRemoteVolumeObserver$Stub;
+Landroid/media/MediaRouter$RouteInfo;->mResolvedStatusCode:I
+Landroid/media/MediaRouter$RouteInfo;->mStatus:Ljava/lang/CharSequence;
+Landroid/media/MediaRouter$RouteInfo;->mSupportedTypes:I
+Landroid/media/MediaRouter$RouteInfo;->mTag:Ljava/lang/Object;
+Landroid/media/MediaRouter$RouteInfo;->mVcb:Landroid/media/MediaRouter$VolumeCallbackInfo;
+Landroid/media/MediaRouter$RouteInfo;->mVolume:I
+Landroid/media/MediaRouter$RouteInfo;->mVolumeHandling:I
+Landroid/media/MediaRouter$RouteInfo;->mVolumeMax:I
+Landroid/media/MediaRouter$RouteInfo;->resolveStatusCode()Z
+Landroid/media/MediaRouter$RouteInfo;->routeUpdated()V
+Landroid/media/MediaRouter$RouteInfo;->setRealStatusCode(I)Z
+Landroid/media/MediaRouter$RouteInfo;->setStatusInt(Ljava/lang/CharSequence;)V
+Landroid/media/MediaRouter$RouteInfo;->STATUS_AVAILABLE:I
+Landroid/media/MediaRouter$RouteInfo;->STATUS_CONNECTED:I
+Landroid/media/MediaRouter$RouteInfo;->STATUS_IN_USE:I
+Landroid/media/MediaRouter$RouteInfo;->STATUS_NONE:I
+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;
+Landroid/media/MediaRouter$Static;->isBluetoothA2dpOn()Z
+Landroid/media/MediaRouter$Static;->isPlaybackActive()Z
+Landroid/media/MediaRouter$Static;->mActivelyScanningWifiDisplays:Z
+Landroid/media/MediaRouter$Static;->makeGlobalRoute(Landroid/media/MediaRouterClientState$RouteInfo;)Landroid/media/MediaRouter$RouteInfo;
+Landroid/media/MediaRouter$Static;->mAudioRoutesObserver:Landroid/media/IAudioRoutesObserver$Stub;
+Landroid/media/MediaRouter$Static;->mAudioService:Landroid/media/IAudioService;
+Landroid/media/MediaRouter$Static;->mBluetoothA2dpRoute:Landroid/media/MediaRouter$RouteInfo;
+Landroid/media/MediaRouter$Static;->mCallbacks:Ljava/util/concurrent/CopyOnWriteArrayList;
+Landroid/media/MediaRouter$Static;->mCanConfigureWifiDisplays:Z
+Landroid/media/MediaRouter$Static;->mCategories:Ljava/util/ArrayList;
+Landroid/media/MediaRouter$Static;->mClient:Landroid/media/IMediaRouterClient;
+Landroid/media/MediaRouter$Static;->mClientState:Landroid/media/MediaRouterClientState;
+Landroid/media/MediaRouter$Static;->mCurAudioRoutesInfo:Landroid/media/AudioRoutesInfo;
+Landroid/media/MediaRouter$Static;->mCurrentUserId:I
+Landroid/media/MediaRouter$Static;->mDefaultAudioVideo:Landroid/media/MediaRouter$RouteInfo;
+Landroid/media/MediaRouter$Static;->mDiscoverRequestActiveScan:Z
+Landroid/media/MediaRouter$Static;->mDiscoveryRequestRouteTypes:I
+Landroid/media/MediaRouter$Static;->mDisplayService:Landroid/hardware/display/DisplayManager;
+Landroid/media/MediaRouter$Static;->mHandler:Landroid/os/Handler;
+Landroid/media/MediaRouter$Static;->mMediaRouterService:Landroid/media/IMediaRouterService;
+Landroid/media/MediaRouter$Static;->mPackageName:Ljava/lang/String;
+Landroid/media/MediaRouter$Static;->mPreviousActiveWifiDisplayAddress:Ljava/lang/String;
+Landroid/media/MediaRouter$Static;->mResources:Landroid/content/res/Resources;
+Landroid/media/MediaRouter$Static;->mRoutes:Ljava/util/ArrayList;
+Landroid/media/MediaRouter$Static;->mSelectedRoute:Landroid/media/MediaRouter$RouteInfo;
+Landroid/media/MediaRouter$Static;->mSystemCategory:Landroid/media/MediaRouter$RouteCategory;
+Landroid/media/MediaRouter$Static;->publishClientDiscoveryRequest()V
+Landroid/media/MediaRouter$Static;->publishClientSelectedRoute(Z)V
+Landroid/media/MediaRouter$Static;->rebindAsUser(I)V
+Landroid/media/MediaRouter$Static;->requestSetVolume(Landroid/media/MediaRouter$RouteInfo;I)V
+Landroid/media/MediaRouter$Static;->requestUpdateVolume(Landroid/media/MediaRouter$RouteInfo;I)V
+Landroid/media/MediaRouter$Static;->setSelectedRoute(Landroid/media/MediaRouter$RouteInfo;Z)V
+Landroid/media/MediaRouter$Static;->startMonitoringRoutes(Landroid/content/Context;)V
+Landroid/media/MediaRouter$Static;->updateAudioRoutes(Landroid/media/AudioRoutesInfo;)V
+Landroid/media/MediaRouter$Static;->updateClientState()V
+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
+Landroid/media/MediaRouter;->addRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->AVAILABILITY_FLAG_IGNORE_DEFAULT_ROUTE:I
+Landroid/media/MediaRouter;->CALLBACK_FLAG_PASSIVE_DISCOVERY:I
+Landroid/media/MediaRouter;->CALLBACK_FLAG_REQUEST_DISCOVERY:I
+Landroid/media/MediaRouter;->DEBUG:Z
+Landroid/media/MediaRouter;->dispatchRouteAdded(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;I)V
+Landroid/media/MediaRouter;->dispatchRouteGrouped(Landroid/media/MediaRouter$RouteInfo;Landroid/media/MediaRouter$RouteGroup;I)V
+Landroid/media/MediaRouter;->dispatchRoutePresentationDisplayChanged(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->dispatchRouteRemoved(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->dispatchRouteSelected(ILandroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->dispatchRouteUngrouped(Landroid/media/MediaRouter$RouteInfo;Landroid/media/MediaRouter$RouteGroup;)V
+Landroid/media/MediaRouter;->dispatchRouteUnselected(ILandroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->dispatchRouteVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->findCallbackInfo(Landroid/media/MediaRouter$Callback;)I
+Landroid/media/MediaRouter;->findWifiDisplay([Landroid/hardware/display/WifiDisplay;Ljava/lang/String;)Landroid/hardware/display/WifiDisplay;
+Landroid/media/MediaRouter;->findWifiDisplayRoute(Landroid/hardware/display/WifiDisplay;)Landroid/media/MediaRouter$RouteInfo;
+Landroid/media/MediaRouter;->getFallbackRoute()Landroid/media/MediaRouter$RouteInfo;
+Landroid/media/MediaRouter;->getRouteAtStatic(I)Landroid/media/MediaRouter$RouteInfo;
+Landroid/media/MediaRouter;->getRouteCountStatic()I
+Landroid/media/MediaRouter;->getSystemCategory()Landroid/media/MediaRouter$RouteCategory;
+Landroid/media/MediaRouter;->getWifiDisplayStatusCode(Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplayStatus;)I
+Landroid/media/MediaRouter;->isRouteAvailable(II)Z
+Landroid/media/MediaRouter;->isWifiDisplayEnabled(Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplayStatus;)Z
+Landroid/media/MediaRouter;->makeWifiDisplayRoute(Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplayStatus;)Landroid/media/MediaRouter$RouteInfo;
+Landroid/media/MediaRouter;->matchesDeviceAddress(Landroid/hardware/display/WifiDisplay;Landroid/media/MediaRouter$RouteInfo;)Z
+Landroid/media/MediaRouter;->rebindAsUser(I)V
+Landroid/media/MediaRouter;->removeRouteInt(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->removeRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V
+Landroid/media/MediaRouter;->ROUTE_TYPE_ANY:I
+Landroid/media/MediaRouter;->ROUTE_TYPE_REMOTE_DISPLAY:I
+Landroid/media/MediaRouter;->selectDefaultRouteStatic()V
+Landroid/media/MediaRouter;->selectRouteStatic(ILandroid/media/MediaRouter$RouteInfo;Z)V
+Landroid/media/MediaRouter;->shouldShowWifiDisplay(Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplay;)Z
+Landroid/media/MediaRouter;->sRouters:Ljava/util/HashMap;
+Landroid/media/MediaRouter;->sStatic:Landroid/media/MediaRouter$Static;
+Landroid/media/MediaRouter;->systemVolumeChanged(I)V
+Landroid/media/MediaRouter;->TAG:Ljava/lang/String;
+Landroid/media/MediaRouter;->typesToString(I)Ljava/lang/String;
+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
+Landroid/media/MediaRouterClientState$RouteInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/media/MediaRouterClientState$RouteInfo;->description:Ljava/lang/String;
+Landroid/media/MediaRouterClientState$RouteInfo;->deviceType:I
+Landroid/media/MediaRouterClientState$RouteInfo;->enabled:Z
+Landroid/media/MediaRouterClientState$RouteInfo;->id:Ljava/lang/String;
+Landroid/media/MediaRouterClientState$RouteInfo;->name:Ljava/lang/String;
+Landroid/media/MediaRouterClientState$RouteInfo;->playbackStream:I
+Landroid/media/MediaRouterClientState$RouteInfo;->playbackType:I
+Landroid/media/MediaRouterClientState$RouteInfo;->presentationDisplayId:I
+Landroid/media/MediaRouterClientState$RouteInfo;->statusCode:I
+Landroid/media/MediaRouterClientState$RouteInfo;->supportedTypes:I
+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
+Landroid/media/MediaScanner$MediaBulkDeleter;->mBaseUri:Landroid/net/Uri;
+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;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mAlbum:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mAlbumArtist:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mArtist:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mCompilation:I
+Landroid/media/MediaScanner$MyMediaScannerClient;->mComposer:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mDate:J
+Landroid/media/MediaScanner$MyMediaScannerClient;->mDateFormatter:Ljava/text/SimpleDateFormat;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mDuration:I
+Landroid/media/MediaScanner$MyMediaScannerClient;->mFileSize:J
+Landroid/media/MediaScanner$MyMediaScannerClient;->mGenre:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mHeight:I
+Landroid/media/MediaScanner$MyMediaScannerClient;->mLastModified:J
+Landroid/media/MediaScanner$MyMediaScannerClient;->mScanSuccess:Z
+Landroid/media/MediaScanner$MyMediaScannerClient;->mTitle:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mTrack:I
+Landroid/media/MediaScanner$MyMediaScannerClient;->mWidth:I
+Landroid/media/MediaScanner$MyMediaScannerClient;->mWriter:Ljava/lang/String;
+Landroid/media/MediaScanner$MyMediaScannerClient;->mYear:I
+Landroid/media/MediaScanner$MyMediaScannerClient;->parseDate(Ljava/lang/String;)J
+Landroid/media/MediaScanner$MyMediaScannerClient;->parseSubstring(Ljava/lang/String;II)I
+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
+Landroid/media/MediaScanner;->DATE_MODIFIED_PLAYLISTS_COLUMN_INDEX:I
+Landroid/media/MediaScanner;->DEFAULT_RINGTONE_PROPERTY_PREFIX:Ljava/lang/String;
+Landroid/media/MediaScanner;->ENABLE_BULK_INSERTS:Z
+Landroid/media/MediaScanner;->extractAlbumArt(Ljava/io/FileDescriptor;)[B
+Landroid/media/MediaScanner;->FILES_PRESCAN_DATE_MODIFIED_COLUMN_INDEX:I
+Landroid/media/MediaScanner;->FILES_PRESCAN_FORMAT_COLUMN_INDEX:I
+Landroid/media/MediaScanner;->FILES_PRESCAN_ID_COLUMN_INDEX:I
+Landroid/media/MediaScanner;->FILES_PRESCAN_PATH_COLUMN_INDEX:I
+Landroid/media/MediaScanner;->ID3_GENRES:[Ljava/lang/String;
+Landroid/media/MediaScanner;->ID_PLAYLISTS_COLUMN_INDEX:I
+Landroid/media/MediaScanner;->ID_PROJECTION:[Ljava/lang/String;
+Landroid/media/MediaScanner;->isNoMediaFile(Ljava/lang/String;)Z
+Landroid/media/MediaScanner;->isSystemSoundWithMetadata(Ljava/lang/String;)Z
+Landroid/media/MediaScanner;->LAST_INTERNAL_SCAN_FINGERPRINT:Ljava/lang/String;
+Landroid/media/MediaScanner;->matchEntries(JLjava/lang/String;)Z
+Landroid/media/MediaScanner;->matchPaths(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/media/MediaScanner;->mBitmapOptions:Landroid/graphics/BitmapFactory$Options;
+Landroid/media/MediaScanner;->mClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/media/MediaScanner;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/media/MediaScanner;->mDefaultAlarmSet:Z
+Landroid/media/MediaScanner;->mDefaultNotificationSet:Z
+Landroid/media/MediaScanner;->mDefaultRingtoneSet:Z
+Landroid/media/MediaScanner;->mDrmManagerClient:Landroid/drm/DrmManagerClient;
+Landroid/media/MediaScanner;->mFilesUriNoNotify:Landroid/net/Uri;
+Landroid/media/MediaScanner;->mImagesUri:Landroid/net/Uri;
+Landroid/media/MediaScanner;->mMediaPaths:Ljava/util/HashMap;
+Landroid/media/MediaScanner;->mMediaProvider:Landroid/content/ContentProviderClient;
+Landroid/media/MediaScanner;->mMtpObjectHandle:I
+Landroid/media/MediaScanner;->mNativeContext:J
+Landroid/media/MediaScanner;->mNoMediaPaths:Ljava/util/HashMap;
+Landroid/media/MediaScanner;->mOriginalCount:I
+Landroid/media/MediaScanner;->mPlaylistEntries:Ljava/util/ArrayList;
+Landroid/media/MediaScanner;->mPlayLists:Ljava/util/ArrayList;
+Landroid/media/MediaScanner;->mPlaylistsUri:Landroid/net/Uri;
+Landroid/media/MediaScanner;->mProcessGenres:Z
+Landroid/media/MediaScanner;->mProcessPlaylists:Z
+Landroid/media/MediaScanner;->MUSIC_DIR:Ljava/lang/String;
+Landroid/media/MediaScanner;->mVideoUri:Landroid/net/Uri;
+Landroid/media/MediaScanner;->mVolumeName:Ljava/lang/String;
+Landroid/media/MediaScanner;->native_finalize()V
+Landroid/media/MediaScanner;->native_init()V
+Landroid/media/MediaScanner;->native_setup()V
+Landroid/media/MediaScanner;->NOTIFICATIONS_DIR:Ljava/lang/String;
+Landroid/media/MediaScanner;->PATH_PLAYLISTS_COLUMN_INDEX:I
+Landroid/media/MediaScanner;->PLAYLIST_MEMBERS_PROJECTION:[Ljava/lang/String;
+Landroid/media/MediaScanner;->PODCAST_DIR:Ljava/lang/String;
+Landroid/media/MediaScanner;->processCachedPlaylist(Landroid/database/Cursor;Landroid/content/ContentValues;Landroid/net/Uri;)V
+Landroid/media/MediaScanner;->processDirectory(Ljava/lang/String;Landroid/media/MediaScannerClient;)V
+Landroid/media/MediaScanner;->processFile(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaScannerClient;)Z
+Landroid/media/MediaScanner;->processM3uPlayList(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/database/Cursor;)V
+Landroid/media/MediaScanner;->processPlayList(Landroid/media/MediaScanner$FileEntry;Landroid/database/Cursor;)V
+Landroid/media/MediaScanner;->processPlayLists()V
+Landroid/media/MediaScanner;->processPlsPlayList(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/database/Cursor;)V
+Landroid/media/MediaScanner;->processWplPlayList(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/database/Cursor;)V
+Landroid/media/MediaScanner;->PRODUCT_SOUNDS_DIR:Ljava/lang/String;
+Landroid/media/MediaScanner;->releaseResources()V
+Landroid/media/MediaScanner;->RINGTONES_DIR:Ljava/lang/String;
+Landroid/media/MediaScanner;->scanDirectories([Ljava/lang/String;)V
+Landroid/media/MediaScanner;->scanMtpFile(Ljava/lang/String;II)V
+Landroid/media/MediaScanner;->SCANNED_BUILD_PREFS_NAME:Ljava/lang/String;
+Landroid/media/MediaScanner;->setDefaultRingtoneFileNames()V
+Landroid/media/MediaScanner;->settingSetIndicatorName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/media/MediaScanner;->sLastInternalScanFingerprint:Ljava/lang/String;
+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;
+Landroid/media/MediaScannerConnection$ClientProxy;->mMimeTypes:[Ljava/lang/String;
+Landroid/media/MediaScannerConnection$ClientProxy;->mNextPath:I
+Landroid/media/MediaScannerConnection$ClientProxy;->mPaths:[Ljava/lang/String;
+Landroid/media/MediaScannerConnection$ClientProxy;->scanNextPath()V
+Landroid/media/MediaScannerConnection;->mClient:Landroid/media/MediaScannerConnection$MediaScannerConnectionClient;
+Landroid/media/MediaScannerConnection;->mConnected:Z
+Landroid/media/MediaScannerConnection;->mContext:Landroid/content/Context;
+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;
+Landroid/media/MediaSession2$Builder;->setPlayer(Landroid/media/MediaPlayerBase;)Landroid/media/MediaSession2$Builder;
+Landroid/media/MediaSession2$Builder;->setPlaylistAgent(Landroid/media/MediaPlaylistAgent;)Landroid/media/MediaSession2$Builder;
+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;
+Landroid/media/MediaSession2$BuilderBase;->setId(Ljava/lang/String;)Landroid/media/MediaSession2$BuilderBase;
+Landroid/media/MediaSession2$BuilderBase;->setPlayer(Landroid/media/MediaPlayerBase;)Landroid/media/MediaSession2$BuilderBase;
+Landroid/media/MediaSession2$BuilderBase;->setPlaylistAgent(Landroid/media/MediaPlaylistAgent;)Landroid/media/MediaSession2$BuilderBase;
+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;
+Landroid/media/MediaSession2$CommandButton$Builder;->setCommand(Landroid/media/SessionCommand2;)Landroid/media/MediaSession2$CommandButton$Builder;
+Landroid/media/MediaSession2$CommandButton$Builder;->setDisplayName(Ljava/lang/String;)Landroid/media/MediaSession2$CommandButton$Builder;
+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;
+Landroid/media/MediaSession2$CommandButton;->getExtras()Landroid/os/Bundle;
+Landroid/media/MediaSession2$CommandButton;->getIconResId()I
+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
+Landroid/media/MediaSession2$SessionCallback;->onConnect(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;)Landroid/media/SessionCommandGroup2;
+Landroid/media/MediaSession2$SessionCallback;->onCurrentMediaItemChanged(Landroid/media/MediaSession2;Landroid/media/MediaPlayerBase;Landroid/media/MediaItem2;)V
+Landroid/media/MediaSession2$SessionCallback;->onCustomCommand(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Landroid/media/SessionCommand2;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/MediaSession2$SessionCallback;->onDisconnected(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;)V
+Landroid/media/MediaSession2$SessionCallback;->onFastForward(Landroid/media/MediaSession2;)V
+Landroid/media/MediaSession2$SessionCallback;->onMediaPrepared(Landroid/media/MediaSession2;Landroid/media/MediaPlayerBase;Landroid/media/MediaItem2;)V
+Landroid/media/MediaSession2$SessionCallback;->onPlaybackSpeedChanged(Landroid/media/MediaSession2;Landroid/media/MediaPlayerBase;F)V
+Landroid/media/MediaSession2$SessionCallback;->onPlayerStateChanged(Landroid/media/MediaSession2;Landroid/media/MediaPlayerBase;I)V
+Landroid/media/MediaSession2$SessionCallback;->onPlayFromMediaId(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/MediaSession2$SessionCallback;->onPlayFromSearch(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/MediaSession2$SessionCallback;->onPlayFromUri(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/MediaSession2$SessionCallback;->onPlaylistChanged(Landroid/media/MediaSession2;Landroid/media/MediaPlaylistAgent;Ljava/util/List;Landroid/media/MediaMetadata2;)V
+Landroid/media/MediaSession2$SessionCallback;->onPlaylistMetadataChanged(Landroid/media/MediaSession2;Landroid/media/MediaPlaylistAgent;Landroid/media/MediaMetadata2;)V
+Landroid/media/MediaSession2$SessionCallback;->onPrepareFromMediaId(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/MediaSession2$SessionCallback;->onPrepareFromSearch(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/MediaSession2$SessionCallback;->onPrepareFromUri(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/MediaSession2$SessionCallback;->onRepeatModeChanged(Landroid/media/MediaSession2;Landroid/media/MediaPlaylistAgent;I)V
+Landroid/media/MediaSession2$SessionCallback;->onRewind(Landroid/media/MediaSession2;)V
+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
+Landroid/media/MediaSession2;->ERROR_CODE_ACTION_ABORTED:I
+Landroid/media/MediaSession2;->ERROR_CODE_APP_ERROR:I
+Landroid/media/MediaSession2;->ERROR_CODE_AUTHENTICATION_EXPIRED:I
+Landroid/media/MediaSession2;->ERROR_CODE_CONCURRENT_STREAM_LIMIT:I
+Landroid/media/MediaSession2;->ERROR_CODE_CONTENT_ALREADY_PLAYING:I
+Landroid/media/MediaSession2;->ERROR_CODE_END_OF_QUEUE:I
+Landroid/media/MediaSession2;->ERROR_CODE_NOT_AVAILABLE_IN_REGION:I
+Landroid/media/MediaSession2;->ERROR_CODE_NOT_SUPPORTED:I
+Landroid/media/MediaSession2;->ERROR_CODE_PARENTAL_CONTROL_RESTRICTED:I
+Landroid/media/MediaSession2;->ERROR_CODE_PREMIUM_ACCOUNT_REQUIRED:I
+Landroid/media/MediaSession2;->ERROR_CODE_SETUP_REQUIRED:I
+Landroid/media/MediaSession2;->ERROR_CODE_SKIP_LIMIT_REACHED:I
+Landroid/media/MediaSession2;->ERROR_CODE_UNKNOWN_ERROR:I
+Landroid/media/MediaSession2;->getBufferedPosition()J
+Landroid/media/MediaSession2;->getBufferingState()I
+Landroid/media/MediaSession2;->getConnectedControllers()Ljava/util/List;
+Landroid/media/MediaSession2;->getCurrentMediaItem()Landroid/media/MediaItem2;
+Landroid/media/MediaSession2;->getCurrentPosition()J
+Landroid/media/MediaSession2;->getPlaybackSpeed()F
+Landroid/media/MediaSession2;->getPlayer()Landroid/media/MediaPlayerBase;
+Landroid/media/MediaSession2;->getPlayerState()I
+Landroid/media/MediaSession2;->getPlaylist()Ljava/util/List;
+Landroid/media/MediaSession2;->getPlaylistAgent()Landroid/media/MediaPlaylistAgent;
+Landroid/media/MediaSession2;->getPlaylistMetadata()Landroid/media/MediaMetadata2;
+Landroid/media/MediaSession2;->getProvider()Landroid/media/update/MediaSession2Provider;
+Landroid/media/MediaSession2;->getRepeatMode()I
+Landroid/media/MediaSession2;->getShuffleMode()I
+Landroid/media/MediaSession2;->getToken()Landroid/media/SessionToken2;
+Landroid/media/MediaSession2;->getVolumeProvider()Landroid/media/VolumeProvider2;
+Landroid/media/MediaSession2;->mProvider:Landroid/media/update/MediaSession2Provider;
+Landroid/media/MediaSession2;->notifyError(ILandroid/os/Bundle;)V
+Landroid/media/MediaSession2;->pause()V
+Landroid/media/MediaSession2;->play()V
+Landroid/media/MediaSession2;->prepare()V
+Landroid/media/MediaSession2;->removePlaylistItem(Landroid/media/MediaItem2;)V
+Landroid/media/MediaSession2;->replacePlaylistItem(ILandroid/media/MediaItem2;)V
+Landroid/media/MediaSession2;->seekTo(J)V
+Landroid/media/MediaSession2;->sendCustomCommand(Landroid/media/MediaSession2$ControllerInfo;Landroid/media/SessionCommand2;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/MediaSession2;->sendCustomCommand(Landroid/media/SessionCommand2;Landroid/os/Bundle;)V
+Landroid/media/MediaSession2;->setAllowedCommands(Landroid/media/MediaSession2$ControllerInfo;Landroid/media/SessionCommandGroup2;)V
+Landroid/media/MediaSession2;->setAudioFocusRequest(Landroid/media/AudioFocusRequest;)V
+Landroid/media/MediaSession2;->setCustomLayout(Landroid/media/MediaSession2$ControllerInfo;Ljava/util/List;)V
+Landroid/media/MediaSession2;->setOnDataSourceMissingHelper(Landroid/media/MediaSession2$OnDataSourceMissingHelper;)V
+Landroid/media/MediaSession2;->setPlaybackSpeed(F)V
+Landroid/media/MediaSession2;->setPlaylist(Ljava/util/List;Landroid/media/MediaMetadata2;)V
+Landroid/media/MediaSession2;->setRepeatMode(I)V
+Landroid/media/MediaSession2;->setShuffleMode(I)V
+Landroid/media/MediaSession2;->skipBackward()V
+Landroid/media/MediaSession2;->skipForward()V
+Landroid/media/MediaSession2;->skipToNextItem()V
+Landroid/media/MediaSession2;->skipToPlaylistItem(Landroid/media/MediaItem2;)V
+Landroid/media/MediaSession2;->skipToPreviousItem()V
+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;
+Landroid/media/MediaSessionService2;->mProvider:Landroid/media/update/MediaSessionService2Provider;
+Landroid/media/MediaSessionService2;->onCreateSession(Ljava/lang/String;)Landroid/media/MediaSession2;
+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;
+Landroid/media/MediaSync$AudioBuffer;->mPresentationTimeUs:J
+Landroid/media/MediaSync;->CB_RETURN_AUDIO_BUFFER:I
+Landroid/media/MediaSync;->createAudioThread()V
+Landroid/media/MediaSync;->EVENT_CALLBACK:I
+Landroid/media/MediaSync;->EVENT_SET_CALLBACK:I
+Landroid/media/MediaSync;->mAudioBuffers:Ljava/util/List;
+Landroid/media/MediaSync;->mAudioHandler:Landroid/os/Handler;
+Landroid/media/MediaSync;->mAudioLock:Ljava/lang/Object;
+Landroid/media/MediaSync;->mAudioLooper:Landroid/os/Looper;
+Landroid/media/MediaSync;->mAudioThread:Ljava/lang/Thread;
+Landroid/media/MediaSync;->mAudioTrack:Landroid/media/AudioTrack;
+Landroid/media/MediaSync;->mCallback:Landroid/media/MediaSync$Callback;
+Landroid/media/MediaSync;->mCallbackHandler:Landroid/os/Handler;
+Landroid/media/MediaSync;->mCallbackLock:Ljava/lang/Object;
+Landroid/media/MediaSync;->mNativeContext:J
+Landroid/media/MediaSync;->mOnErrorListener:Landroid/media/MediaSync$OnErrorListener;
+Landroid/media/MediaSync;->mOnErrorListenerHandler:Landroid/os/Handler;
+Landroid/media/MediaSync;->mOnErrorListenerLock:Ljava/lang/Object;
+Landroid/media/MediaSync;->mPlaybackRate:F
+Landroid/media/MediaSync;->native_finalize()V
+Landroid/media/MediaSync;->native_flush()V
+Landroid/media/MediaSync;->native_getPlayTimeForPendingAudioFrames()J
+Landroid/media/MediaSync;->native_getTimestamp(Landroid/media/MediaTimestamp;)Z
+Landroid/media/MediaSync;->native_init()V
+Landroid/media/MediaSync;->native_release()V
+Landroid/media/MediaSync;->native_setAudioTrack(Landroid/media/AudioTrack;)V
+Landroid/media/MediaSync;->native_setPlaybackParams(Landroid/media/PlaybackParams;)F
+Landroid/media/MediaSync;->native_setSurface(Landroid/view/Surface;)V
+Landroid/media/MediaSync;->native_setSyncParams(Landroid/media/SyncParams;)F
+Landroid/media/MediaSync;->native_setup()V
+Landroid/media/MediaSync;->native_updateQueuedAudioData(IJ)V
+Landroid/media/MediaSync;->postRenderAudio(J)V
+Landroid/media/MediaSync;->postReturnByteBuffer(Landroid/media/MediaSync$AudioBuffer;)V
+Landroid/media/MediaSync;->returnAudioBuffers()V
+Landroid/media/MediaSync;->TAG:Ljava/lang/String;
+Landroid/media/MediaSyncEvent;-><init>(I)V
+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
+Landroid/media/MediaTimeProvider;->NO_TIME:J
+Landroid/media/MediaTimeProvider;->scheduleUpdate(Landroid/media/MediaTimeProvider$OnMediaTimeListener;)V
+Landroid/media/MediaTimestamp;-><init>()V
+Landroid/media/MediaTimestamp;-><init>(JJF)V
+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
+Landroid/media/Metadata;->ARTIST:I
+Landroid/media/Metadata;->AUDIO_BIT_RATE:I
+Landroid/media/Metadata;->AUDIO_CODEC:I
+Landroid/media/Metadata;->AUDIO_SAMPLE_RATE:I
+Landroid/media/Metadata;->AUTHOR:I
+Landroid/media/Metadata;->BIT_RATE:I
+Landroid/media/Metadata;->BOOLEAN_VAL:I
+Landroid/media/Metadata;->BYTE_ARRAY_VAL:I
+Landroid/media/Metadata;->CD_TRACK_MAX:I
+Landroid/media/Metadata;->CD_TRACK_NUM:I
+Landroid/media/Metadata;->checkMetadataId(I)Z
+Landroid/media/Metadata;->checkType(II)V
+Landroid/media/Metadata;->COMMENT:I
+Landroid/media/Metadata;->COMPOSER:I
+Landroid/media/Metadata;->COPYRIGHT:I
+Landroid/media/Metadata;->DATE:I
+Landroid/media/Metadata;->DATE_VAL:I
+Landroid/media/Metadata;->DOUBLE_VAL:I
+Landroid/media/Metadata;->DRM_CRIPPLED:I
+Landroid/media/Metadata;->DURATION:I
+Landroid/media/Metadata;->firstCustomId()I
+Landroid/media/Metadata;->FIRST_CUSTOM:I
+Landroid/media/Metadata;->GENRE:I
+Landroid/media/Metadata;->INTEGER_VAL:I
+Landroid/media/Metadata;->kInt32Size:I
+Landroid/media/Metadata;->kMetaHeaderSize:I
+Landroid/media/Metadata;->kMetaMarker:I
+Landroid/media/Metadata;->kRecordHeaderSize:I
+Landroid/media/Metadata;->lastSytemId()I
+Landroid/media/Metadata;->lastType()I
+Landroid/media/Metadata;->LAST_SYSTEM:I
+Landroid/media/Metadata;->LAST_TYPE:I
+Landroid/media/Metadata;->LONG_VAL:I
+Landroid/media/Metadata;->MATCH_ALL:Ljava/util/Set;
+Landroid/media/Metadata;->MATCH_NONE:Ljava/util/Set;
+Landroid/media/Metadata;->MIME_TYPE:I
+Landroid/media/Metadata;->mKeyToPosMap:Ljava/util/HashMap;
+Landroid/media/Metadata;->mParcel:Landroid/os/Parcel;
+Landroid/media/Metadata;->NUM_TRACKS:I
+Landroid/media/Metadata;->RATING:I
+Landroid/media/Metadata;->scanAllRecords(Landroid/os/Parcel;I)Z
+Landroid/media/Metadata;->STRING_VAL:I
+Landroid/media/Metadata;->TAG:Ljava/lang/String;
+Landroid/media/Metadata;->TITLE:I
+Landroid/media/Metadata;->VIDEO_BIT_RATE:I
+Landroid/media/Metadata;->VIDEO_CODEC:I
+Landroid/media/Metadata;->VIDEO_FRAME:I
+Landroid/media/Metadata;->VIDEO_FRAME_RATE:I
+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;
+Landroid/media/MicrophoneInfo;->mDeviceId:Ljava/lang/String;
+Landroid/media/MicrophoneInfo;->mDirectionality:I
+Landroid/media/MicrophoneInfo;->mFrequencyResponse:Ljava/util/List;
+Landroid/media/MicrophoneInfo;->mGroup:I
+Landroid/media/MicrophoneInfo;->mIndexInTheGroup:I
+Landroid/media/MicrophoneInfo;->mLocation:I
+Landroid/media/MicrophoneInfo;->mMaxSpl:F
+Landroid/media/MicrophoneInfo;->mMinSpl:F
+Landroid/media/MicrophoneInfo;->mOrientation:Landroid/media/MicrophoneInfo$Coordinate3F;
+Landroid/media/MicrophoneInfo;->mPortId:I
+Landroid/media/MicrophoneInfo;->mPosition:Landroid/media/MicrophoneInfo$Coordinate3F;
+Landroid/media/MicrophoneInfo;->mSensitivity:F
+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
+Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->connectPorts(Landroid/os/IBinder;Ljava/io/FileDescriptor;I)I
+Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->getDeviceInfo()Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/media/midi/IMidiDeviceServer$Stub;->TRANSACTION_closeDevice:I
+Landroid/media/midi/IMidiDeviceServer$Stub;->TRANSACTION_closePort:I
+Landroid/media/midi/IMidiDeviceServer$Stub;->TRANSACTION_connectPorts:I
+Landroid/media/midi/IMidiDeviceServer$Stub;->TRANSACTION_getDeviceInfo:I
+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
+Landroid/media/midi/IMidiDeviceServer;->getDeviceInfo()Landroid/media/midi/MidiDeviceInfo;
+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;
+Landroid/media/midi/IMidiManager$Stub$Proxy;->getDeviceStatus(Landroid/media/midi/MidiDeviceInfo;)Landroid/media/midi/MidiDeviceStatus;
+Landroid/media/midi/IMidiManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/midi/IMidiManager$Stub$Proxy;->getServiceDeviceInfo(Ljava/lang/String;Ljava/lang/String;)Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/IMidiManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/midi/IMidiManager$Stub$Proxy;->openBluetoothDevice(Landroid/os/IBinder;Landroid/bluetooth/BluetoothDevice;Landroid/media/midi/IMidiDeviceOpenCallback;)V
+Landroid/media/midi/IMidiManager$Stub$Proxy;->openDevice(Landroid/os/IBinder;Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/IMidiDeviceOpenCallback;)V
+Landroid/media/midi/IMidiManager$Stub$Proxy;->registerDeviceServer(Landroid/media/midi/IMidiDeviceServer;II[Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;I)Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/IMidiManager$Stub$Proxy;->registerListener(Landroid/os/IBinder;Landroid/media/midi/IMidiDeviceListener;)V
+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;
+Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_closeDevice:I
+Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_getDevices:I
+Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_getDeviceStatus:I
+Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_getServiceDeviceInfo:I
+Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_openBluetoothDevice:I
+Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_openDevice:I
+Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_registerDeviceServer:I
+Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_registerListener:I
+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;
+Landroid/media/midi/IMidiManager;->getServiceDeviceInfo(Ljava/lang/String;Ljava/lang/String;)Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/IMidiManager;->openBluetoothDevice(Landroid/os/IBinder;Landroid/bluetooth/BluetoothDevice;Landroid/media/midi/IMidiDeviceOpenCallback;)V
+Landroid/media/midi/IMidiManager;->openDevice(Landroid/os/IBinder;Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/IMidiDeviceOpenCallback;)V
+Landroid/media/midi/IMidiManager;->registerDeviceServer(Landroid/media/midi/IMidiDeviceServer;II[Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;I)Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/IMidiManager;->registerListener(Landroid/os/IBinder;Landroid/media/midi/IMidiDeviceListener;)V
+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;
+Landroid/media/midi/MidiDevice$MidiConnection;->mIsClosed:Z
+Landroid/media/midi/MidiDevice$MidiConnection;->mOutputPortToken:Landroid/os/IBinder;
+Landroid/media/midi/MidiDevice;-><init>(Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/IMidiDeviceServer;Landroid/media/midi/IMidiManager;Landroid/os/IBinder;Landroid/os/IBinder;)V
+Landroid/media/midi/MidiDevice;->mClientToken:Landroid/os/IBinder;
+Landroid/media/midi/MidiDevice;->mDeviceInfo:Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/MidiDevice;->mDeviceServer:Landroid/media/midi/IMidiDeviceServer;
+Landroid/media/midi/MidiDevice;->mDeviceToken:Landroid/os/IBinder;
+Landroid/media/midi/MidiDevice;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/media/midi/MidiDevice;->mirrorToNative()J
+Landroid/media/midi/MidiDevice;->mIsDeviceClosed:Z
+Landroid/media/midi/MidiDevice;->mMidiManager:Landroid/media/midi/IMidiManager;
+Landroid/media/midi/MidiDevice;->mMirroredDevices:Ljava/util/HashSet;
+Landroid/media/midi/MidiDevice;->mNativeHandle:J
+Landroid/media/midi/MidiDevice;->native_mirrorToNative(Landroid/os/IBinder;I)J
+Landroid/media/midi/MidiDevice;->native_removeFromNative(J)V
+Landroid/media/midi/MidiDevice;->removeFromNative()V
+Landroid/media/midi/MidiDevice;->TAG:Ljava/lang/String;
+Landroid/media/midi/MidiDeviceInfo$PortInfo;-><init>(IILjava/lang/String;)V
+Landroid/media/midi/MidiDeviceInfo$PortInfo;->mName:Ljava/lang/String;
+Landroid/media/midi/MidiDeviceInfo$PortInfo;->mPortNumber:I
+Landroid/media/midi/MidiDeviceInfo$PortInfo;->mPortType:I
+Landroid/media/midi/MidiDeviceInfo;-><init>(IIII[Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Z)V
+Landroid/media/midi/MidiDeviceInfo;->getBasicProperties([Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/media/midi/MidiDeviceInfo;->mId:I
+Landroid/media/midi/MidiDeviceInfo;->mInputPortCount:I
+Landroid/media/midi/MidiDeviceInfo;->mInputPortNames:[Ljava/lang/String;
+Landroid/media/midi/MidiDeviceInfo;->mIsPrivate:Z
+Landroid/media/midi/MidiDeviceInfo;->mOutputPortCount:I
+Landroid/media/midi/MidiDeviceInfo;->mOutputPortNames:[Ljava/lang/String;
+Landroid/media/midi/MidiDeviceInfo;->mProperties:Landroid/os/Bundle;
+Landroid/media/midi/MidiDeviceInfo;->mType:I
+Landroid/media/midi/MidiDeviceInfo;->PROPERTY_ALSA_CARD:Ljava/lang/String;
+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;
+Landroid/media/midi/MidiDeviceServer;->createSeqPacketSocketPair()[Ljava/io/FileDescriptor;
+Landroid/media/midi/MidiDeviceServer;->getBinderInterface()Landroid/media/midi/IMidiDeviceServer;
+Landroid/media/midi/MidiDeviceServer;->getOutputPortReceivers()[Landroid/media/midi/MidiReceiver;
+Landroid/media/midi/MidiDeviceServer;->mCallback:Landroid/media/midi/MidiDeviceServer$Callback;
+Landroid/media/midi/MidiDeviceServer;->mDeviceInfo:Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/MidiDeviceServer;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/media/midi/MidiDeviceServer;->mInputPortClients:Ljava/util/HashMap;
+Landroid/media/midi/MidiDeviceServer;->mInputPortCount:I
+Landroid/media/midi/MidiDeviceServer;->mInputPortFailureHandler:Lcom/android/internal/midi/MidiDispatcher$MidiReceiverFailureHandler;
+Landroid/media/midi/MidiDeviceServer;->mInputPortOpen:[Z
+Landroid/media/midi/MidiDeviceServer;->mInputPortOutputPorts:[Landroid/media/midi/MidiOutputPort;
+Landroid/media/midi/MidiDeviceServer;->mInputPortReceivers:[Landroid/media/midi/MidiReceiver;
+Landroid/media/midi/MidiDeviceServer;->mInputPorts:Ljava/util/concurrent/CopyOnWriteArrayList;
+Landroid/media/midi/MidiDeviceServer;->mIsClosed:Z
+Landroid/media/midi/MidiDeviceServer;->mMidiManager:Landroid/media/midi/IMidiManager;
+Landroid/media/midi/MidiDeviceServer;->mOutputPortCount:I
+Landroid/media/midi/MidiDeviceServer;->mOutputPortDispatchers:[Lcom/android/internal/midi/MidiDispatcher;
+Landroid/media/midi/MidiDeviceServer;->mOutputPortOpenCount:[I
+Landroid/media/midi/MidiDeviceServer;->mPortClients:Ljava/util/HashMap;
+Landroid/media/midi/MidiDeviceServer;->mServer:Landroid/media/midi/IMidiDeviceServer;
+Landroid/media/midi/MidiDeviceServer;->TAG:Ljava/lang/String;
+Landroid/media/midi/MidiDeviceServer;->updateDeviceStatus()V
+Landroid/media/midi/MidiDeviceService;->mCallback:Landroid/media/midi/MidiDeviceServer$Callback;
+Landroid/media/midi/MidiDeviceService;->mDeviceInfo:Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/MidiDeviceService;->mMidiManager:Landroid/media/midi/IMidiManager;
+Landroid/media/midi/MidiDeviceService;->mServer:Landroid/media/midi/MidiDeviceServer;
+Landroid/media/midi/MidiDeviceService;->TAG:Ljava/lang/String;
+Landroid/media/midi/MidiDeviceStatus;-><init>(Landroid/media/midi/MidiDeviceInfo;)V
+Landroid/media/midi/MidiDeviceStatus;-><init>(Landroid/media/midi/MidiDeviceInfo;[Z[I)V
+Landroid/media/midi/MidiDeviceStatus;->mDeviceInfo:Landroid/media/midi/MidiDeviceInfo;
+Landroid/media/midi/MidiDeviceStatus;->mInputPortOpen:[Z
+Landroid/media/midi/MidiDeviceStatus;->mOutputPortOpenCount:[I
+Landroid/media/midi/MidiDeviceStatus;->TAG:Ljava/lang/String;
+Landroid/media/midi/MidiInputPort;-><init>(Landroid/media/midi/IMidiDeviceServer;Landroid/os/IBinder;Ljava/io/FileDescriptor;I)V
+Landroid/media/midi/MidiInputPort;-><init>(Ljava/io/FileDescriptor;I)V
+Landroid/media/midi/MidiInputPort;->claimFileDescriptor()Ljava/io/FileDescriptor;
+Landroid/media/midi/MidiInputPort;->getDeviceServer()Landroid/media/midi/IMidiDeviceServer;
+Landroid/media/midi/MidiInputPort;->getToken()Landroid/os/IBinder;
+Landroid/media/midi/MidiInputPort;->mBuffer:[B
+Landroid/media/midi/MidiInputPort;->mDeviceServer:Landroid/media/midi/IMidiDeviceServer;
+Landroid/media/midi/MidiInputPort;->mFileDescriptor:Ljava/io/FileDescriptor;
+Landroid/media/midi/MidiInputPort;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/media/midi/MidiInputPort;->mIsClosed:Z
+Landroid/media/midi/MidiInputPort;->mOutputStream:Ljava/io/FileOutputStream;
+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
+Landroid/media/midi/MidiManager$DeviceListener;->onDeviceRemoved(Landroid/media/midi/MidiDeviceInfo;)V
+Landroid/media/midi/MidiManager$DeviceListener;->onDeviceStatusChanged(Landroid/media/midi/MidiDeviceStatus;)V
+Landroid/media/midi/MidiManager;-><init>(Landroid/media/midi/IMidiManager;)V
+Landroid/media/midi/MidiManager;->BLUETOOTH_MIDI_SERVICE_CLASS:Ljava/lang/String;
+Landroid/media/midi/MidiManager;->BLUETOOTH_MIDI_SERVICE_INTENT:Ljava/lang/String;
+Landroid/media/midi/MidiManager;->BLUETOOTH_MIDI_SERVICE_PACKAGE:Ljava/lang/String;
+Landroid/media/midi/MidiManager;->createDeviceServer([Landroid/media/midi/MidiReceiver;I[Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;ILandroid/media/midi/MidiDeviceServer$Callback;)Landroid/media/midi/MidiDeviceServer;
+Landroid/media/midi/MidiManager;->mDeviceListeners:Ljava/util/concurrent/ConcurrentHashMap;
+Landroid/media/midi/MidiManager;->mService:Landroid/media/midi/IMidiManager;
+Landroid/media/midi/MidiManager;->mToken:Landroid/os/IBinder;
+Landroid/media/midi/MidiManager;->sendOpenDeviceResponse(Landroid/media/midi/MidiDevice;Landroid/media/midi/MidiManager$OnDeviceOpenedListener;Landroid/os/Handler;)V
+Landroid/media/midi/MidiManager;->TAG:Ljava/lang/String;
+Landroid/media/midi/MidiOutputPort;-><init>(Landroid/media/midi/IMidiDeviceServer;Landroid/os/IBinder;Ljava/io/FileDescriptor;I)V
+Landroid/media/midi/MidiOutputPort;-><init>(Ljava/io/FileDescriptor;I)V
+Landroid/media/midi/MidiOutputPort;->mDeviceServer:Landroid/media/midi/IMidiDeviceServer;
+Landroid/media/midi/MidiOutputPort;->mDispatcher:Lcom/android/internal/midi/MidiDispatcher;
+Landroid/media/midi/MidiOutputPort;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/media/midi/MidiOutputPort;->mInputStream:Ljava/io/FileInputStream;
+Landroid/media/midi/MidiOutputPort;->mIsClosed:Z
+Landroid/media/midi/MidiOutputPort;->mPortNumber:I
+Landroid/media/midi/MidiOutputPort;->mThread:Ljava/lang/Thread;
+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
+Landroid/media/MiniThumbFile;->eraseMiniThumb(J)V
+Landroid/media/MiniThumbFile;->getMagic(J)J
+Landroid/media/MiniThumbFile;->getMiniThumbFromFile(J[B)[B
+Landroid/media/MiniThumbFile;->HEADER_SIZE:I
+Landroid/media/MiniThumbFile;->instance(Landroid/net/Uri;)Landroid/media/MiniThumbFile;
+Landroid/media/MiniThumbFile;->mBuffer:Ljava/nio/ByteBuffer;
+Landroid/media/MiniThumbFile;->mChannel:Ljava/nio/channels/FileChannel;
+Landroid/media/MiniThumbFile;->mEmptyBuffer:Ljava/nio/ByteBuffer;
+Landroid/media/MiniThumbFile;->miniThumbDataFile()Ljava/io/RandomAccessFile;
+Landroid/media/MiniThumbFile;->MINI_THUMB_DATA_FILE_VERSION:I
+Landroid/media/MiniThumbFile;->mMiniThumbFile:Ljava/io/RandomAccessFile;
+Landroid/media/MiniThumbFile;->mUri:Landroid/net/Uri;
+Landroid/media/MiniThumbFile;->randomAccessFilePath(I)Ljava/lang/String;
+Landroid/media/MiniThumbFile;->removeOldFile()V
+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;
+Landroid/media/PlayerBase$IPlayerWrapper;->pause()V
+Landroid/media/PlayerBase$IPlayerWrapper;->setPan(F)V
+Landroid/media/PlayerBase$IPlayerWrapper;->setStartDelayMs(I)V
+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
+Landroid/media/PlayerBase$PlayerIdCard;->AUDIO_ATTRIBUTES_NONE:I
+Landroid/media/PlayerBase$PlayerIdCard;->CREATOR:Landroid/os/Parcelable$Creator;
+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
+Landroid/media/PlayerBase;->baseRelease()V
+Landroid/media/PlayerBase;->baseSetAuxEffectSendLevel(F)I
+Landroid/media/PlayerBase;->baseSetPan(F)V
+Landroid/media/PlayerBase;->baseSetStartDelayMs(I)V
+Landroid/media/PlayerBase;->baseSetVolume(FF)V
+Landroid/media/PlayerBase;->baseStart()V
+Landroid/media/PlayerBase;->baseStop()V
+Landroid/media/PlayerBase;->baseUpdateAudioAttributes(Landroid/media/AudioAttributes;)V
+Landroid/media/PlayerBase;->DEBUG:Z
+Landroid/media/PlayerBase;->DEBUG_APP_OPS:Z
+Landroid/media/PlayerBase;->deprecateStreamTypeForPlayback(ILjava/lang/String;Ljava/lang/String;)V
+Landroid/media/PlayerBase;->getService()Landroid/media/IAudioService;
+Landroid/media/PlayerBase;->getStartDelayMs()I
+Landroid/media/PlayerBase;->isRestricted_sync()Z
+Landroid/media/PlayerBase;->mAppOps:Lcom/android/internal/app/IAppOpsService;
+Landroid/media/PlayerBase;->mAppOpsCallback:Lcom/android/internal/app/IAppOpsCallback;
+Landroid/media/PlayerBase;->mAttributes:Landroid/media/AudioAttributes;
+Landroid/media/PlayerBase;->mAuxEffectSendLevel:F
+Landroid/media/PlayerBase;->mHasAppOpsPlayAudio:Z
+Landroid/media/PlayerBase;->mImplType:I
+Landroid/media/PlayerBase;->mLeftVolume:F
+Landroid/media/PlayerBase;->mLock:Ljava/lang/Object;
+Landroid/media/PlayerBase;->mPanMultiplierL:F
+Landroid/media/PlayerBase;->mPanMultiplierR:F
+Landroid/media/PlayerBase;->mPlayerIId:I
+Landroid/media/PlayerBase;->mRightVolume:F
+Landroid/media/PlayerBase;->mStartDelayMs:I
+Landroid/media/PlayerBase;->mState:I
+Landroid/media/PlayerBase;->playerApplyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
+Landroid/media/PlayerBase;->playerGetVolumeShaperState(I)Landroid/media/VolumeShaper$State;
+Landroid/media/PlayerBase;->playerPause()V
+Landroid/media/PlayerBase;->playerSetAuxEffectSendLevel(ZF)I
+Landroid/media/PlayerBase;->playerSetVolume(ZFF)V
+Landroid/media/PlayerBase;->playerStart()V
+Landroid/media/PlayerBase;->playerStop()V
+Landroid/media/PlayerBase;->setStartDelayMs(I)V
+Landroid/media/PlayerBase;->sService:Landroid/media/IAudioService;
+Landroid/media/PlayerBase;->TAG:Ljava/lang/String;
+Landroid/media/PlayerBase;->updateAppOpsPlayAudio()V
+Landroid/media/PlayerBase;->updateAppOpsPlayAudio_sync(Z)V
+Landroid/media/PlayerBase;->updateState(I)V
+Landroid/media/PlayerProxy;-><init>(Landroid/media/AudioPlaybackConfiguration;)V
+Landroid/media/PlayerProxy;->applyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)V
+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
+Landroid/media/projection/IMediaProjection$Stub$Proxy;->canProjectSecureVideo()Z
+Landroid/media/projection/IMediaProjection$Stub$Proxy;->canProjectVideo()Z
+Landroid/media/projection/IMediaProjection$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/projection/IMediaProjection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/projection/IMediaProjection$Stub$Proxy;->registerCallback(Landroid/media/projection/IMediaProjectionCallback;)V
+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;
+Landroid/media/projection/IMediaProjection$Stub;->TRANSACTION_applyVirtualDisplayFlags:I
+Landroid/media/projection/IMediaProjection$Stub;->TRANSACTION_canProjectAudio:I
+Landroid/media/projection/IMediaProjection$Stub;->TRANSACTION_canProjectSecureVideo:I
+Landroid/media/projection/IMediaProjection$Stub;->TRANSACTION_canProjectVideo:I
+Landroid/media/projection/IMediaProjection$Stub;->TRANSACTION_registerCallback:I
+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
+Landroid/media/projection/IMediaProjection;->canProjectVideo()Z
+Landroid/media/projection/IMediaProjection;->registerCallback(Landroid/media/projection/IMediaProjectionCallback;)V
+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;
+Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->getActiveProjectionInfo()Landroid/media/projection/MediaProjectionInfo;
+Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->hasProjectionPermission(ILjava/lang/String;)Z
+Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->isValidMediaProjection(Landroid/media/projection/IMediaProjection;)Z
+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;
+Landroid/media/projection/IMediaProjectionManager$Stub;->TRANSACTION_addCallback:I
+Landroid/media/projection/IMediaProjectionManager$Stub;->TRANSACTION_createProjection:I
+Landroid/media/projection/IMediaProjectionManager$Stub;->TRANSACTION_getActiveProjectionInfo:I
+Landroid/media/projection/IMediaProjectionManager$Stub;->TRANSACTION_hasProjectionPermission:I
+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;
+Landroid/media/projection/MediaProjection;->createVirtualDisplay(Ljava/lang/String;IIIZLandroid/view/Surface;Landroid/hardware/display/VirtualDisplay$Callback;Landroid/os/Handler;)Landroid/hardware/display/VirtualDisplay;
+Landroid/media/projection/MediaProjection;->getProjection()Landroid/media/projection/IMediaProjection;
+Landroid/media/projection/MediaProjection;->mCallbacks:Ljava/util/Map;
+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;
+Landroid/media/projection/MediaProjectionInfo;->getPackageName()Ljava/lang/String;
+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;
+Landroid/media/projection/MediaProjectionManager$CallbackDelegate;->onStart(Landroid/media/projection/MediaProjectionInfo;)V
+Landroid/media/projection/MediaProjectionManager$CallbackDelegate;->onStop(Landroid/media/projection/MediaProjectionInfo;)V
+Landroid/media/projection/MediaProjectionManager;-><init>(Landroid/content/Context;)V
+Landroid/media/projection/MediaProjectionManager;->addCallback(Landroid/media/projection/MediaProjectionManager$Callback;Landroid/os/Handler;)V
+Landroid/media/projection/MediaProjectionManager;->EXTRA_APP_TOKEN:Ljava/lang/String;
+Landroid/media/projection/MediaProjectionManager;->EXTRA_MEDIA_PROJECTION:Ljava/lang/String;
+Landroid/media/projection/MediaProjectionManager;->getActiveProjectionInfo()Landroid/media/projection/MediaProjectionInfo;
+Landroid/media/projection/MediaProjectionManager;->mCallbacks:Ljava/util/Map;
+Landroid/media/projection/MediaProjectionManager;->mContext:Landroid/content/Context;
+Landroid/media/projection/MediaProjectionManager;->mService:Landroid/media/projection/IMediaProjectionManager;
+Landroid/media/projection/MediaProjectionManager;->removeCallback(Landroid/media/projection/MediaProjectionManager$Callback;)V
+Landroid/media/projection/MediaProjectionManager;->stopActiveProjection()V
+Landroid/media/projection/MediaProjectionManager;->TAG:Ljava/lang/String;
+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
+Landroid/media/Rating2;->getProvider()Landroid/media/update/Rating2Provider;
+Landroid/media/Rating2;->getRatingStyle()I
+Landroid/media/Rating2;->getStarRating()F
+Landroid/media/Rating2;->hasHeart()Z
+Landroid/media/Rating2;->isRated()Z
+Landroid/media/Rating2;->isThumbUp()Z
+Landroid/media/Rating2;->mProvider:Landroid/media/update/Rating2Provider;
+Landroid/media/Rating2;->newHeartRating(Z)Landroid/media/Rating2;
+Landroid/media/Rating2;->newPercentageRating(F)Landroid/media/Rating2;
+Landroid/media/Rating2;->newStarRating(IF)Landroid/media/Rating2;
+Landroid/media/Rating2;->newThumbRating(Z)Landroid/media/Rating2;
+Landroid/media/Rating2;->newUnratedRating(I)Landroid/media/Rating2;
+Landroid/media/Rating2;->RATING_3_STARS:I
+Landroid/media/Rating2;->RATING_4_STARS:I
+Landroid/media/Rating2;->RATING_5_STARS:I
+Landroid/media/Rating2;->RATING_HEART:I
+Landroid/media/Rating2;->RATING_NONE:I
+Landroid/media/Rating2;->RATING_PERCENTAGE:I
+Landroid/media/Rating2;->RATING_THUMB_UP_DOWN:I
+Landroid/media/Rating2;->toBundle()Landroid/os/Bundle;
+Landroid/media/Rating;-><init>(IF)V
+Landroid/media/Rating;->mRatingStyle:I
+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
+Landroid/media/RemoteControlClient;->DEFAULT_PLAYBACK_VOLUME_HANDLING:I
+Landroid/media/RemoteControlClient;->FLAGS_KEY_MEDIA_NONE:I
+Landroid/media/RemoteControlClient;->FLAG_INFORMATION_REQUEST_ALBUM_ART:I
+Landroid/media/RemoteControlClient;->FLAG_INFORMATION_REQUEST_KEY_MEDIA:I
+Landroid/media/RemoteControlClient;->FLAG_INFORMATION_REQUEST_METADATA:I
+Landroid/media/RemoteControlClient;->FLAG_INFORMATION_REQUEST_PLAYSTATE:I
+Landroid/media/RemoteControlClient;->getCheckPeriodFromSpeed(F)J
+Landroid/media/RemoteControlClient;->getRcMediaIntent()Landroid/app/PendingIntent;
+Landroid/media/RemoteControlClient;->mCacheLock:Ljava/lang/Object;
+Landroid/media/RemoteControlClient;->mCurrentClientGenId:I
+Landroid/media/RemoteControlClient;->mMediaMetadata:Landroid/media/MediaMetadata;
+Landroid/media/RemoteControlClient;->mMetadata:Landroid/os/Bundle;
+Landroid/media/RemoteControlClient;->mMetadataUpdateListener:Landroid/media/RemoteControlClient$OnMetadataUpdateListener;
+Landroid/media/RemoteControlClient;->mNeedsPositionSync:Z
+Landroid/media/RemoteControlClient;->mOriginalArtwork:Landroid/graphics/Bitmap;
+Landroid/media/RemoteControlClient;->mPlaybackPositionMs:J
+Landroid/media/RemoteControlClient;->mPlaybackSpeed:F
+Landroid/media/RemoteControlClient;->mPlaybackState:I
+Landroid/media/RemoteControlClient;->mPlaybackStateChangeTimeMs:J
+Landroid/media/RemoteControlClient;->mPositionProvider:Landroid/media/RemoteControlClient$OnGetPlaybackPositionListener;
+Landroid/media/RemoteControlClient;->mPositionUpdateListener:Landroid/media/RemoteControlClient$OnPlaybackPositionUpdateListener;
+Landroid/media/RemoteControlClient;->mRcMediaIntent:Landroid/app/PendingIntent;
+Landroid/media/RemoteControlClient;->mSession:Landroid/media/session/MediaSession;
+Landroid/media/RemoteControlClient;->mSessionPlaybackState:Landroid/media/session/PlaybackState;
+Landroid/media/RemoteControlClient;->mTransportControlFlags:I
+Landroid/media/RemoteControlClient;->mTransportListener:Landroid/media/session/MediaSession$Callback;
+Landroid/media/RemoteControlClient;->onSeekTo(IJ)V
+Landroid/media/RemoteControlClient;->onUpdateMetadata(IILjava/lang/Object;)V
+Landroid/media/RemoteControlClient;->PLAYBACKINFO_INVALID_VALUE:I
+Landroid/media/RemoteControlClient;->PLAYBACKINFO_PLAYBACK_TYPE:I
+Landroid/media/RemoteControlClient;->PLAYBACKINFO_USES_STREAM:I
+Landroid/media/RemoteControlClient;->PLAYBACKINFO_VOLUME:I
+Landroid/media/RemoteControlClient;->PLAYBACKINFO_VOLUME_HANDLING:I
+Landroid/media/RemoteControlClient;->PLAYBACKINFO_VOLUME_MAX:I
+Landroid/media/RemoteControlClient;->playbackPositionShouldMove(I)Z
+Landroid/media/RemoteControlClient;->PLAYBACK_POSITION_ALWAYS_UNKNOWN:J
+Landroid/media/RemoteControlClient;->PLAYBACK_POSITION_INVALID:J
+Landroid/media/RemoteControlClient;->PLAYBACK_SPEED_1X:F
+Landroid/media/RemoteControlClient;->PLAYBACK_TYPE_LOCAL:I
+Landroid/media/RemoteControlClient;->PLAYBACK_TYPE_MAX:I
+Landroid/media/RemoteControlClient;->PLAYBACK_TYPE_MIN:I
+Landroid/media/RemoteControlClient;->PLAYBACK_TYPE_REMOTE:I
+Landroid/media/RemoteControlClient;->PLAYBACK_VOLUME_FIXED:I
+Landroid/media/RemoteControlClient;->PLAYBACK_VOLUME_VARIABLE:I
+Landroid/media/RemoteControlClient;->PLAYSTATE_NONE:I
+Landroid/media/RemoteControlClient;->POSITION_DRIFT_MAX_MS:J
+Landroid/media/RemoteControlClient;->POSITION_REFRESH_PERIOD_MIN_MS:J
+Landroid/media/RemoteControlClient;->POSITION_REFRESH_PERIOD_PLAYING_MS:J
+Landroid/media/RemoteControlClient;->RCSE_ID_UNREGISTERED:I
+Landroid/media/RemoteControlClient;->registerWithSession(Landroid/media/session/MediaSessionLegacyHelper;)V
+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
+Landroid/media/RemoteController;->MAX_BITMAP_DIMENSION:I
+Landroid/media/RemoteController;->mContext:Landroid/content/Context;
+Landroid/media/RemoteController;->mEnabled:Z
+Landroid/media/RemoteController;->mEventHandler:Landroid/media/RemoteController$EventHandler;
+Landroid/media/RemoteController;->mInfoLock:Ljava/lang/Object;
+Landroid/media/RemoteController;->mIsRegistered:Z
+Landroid/media/RemoteController;->mLastPlaybackInfo:Landroid/media/RemoteController$PlaybackInfo;
+Landroid/media/RemoteController;->mMaxBitmapDimension:I
+Landroid/media/RemoteController;->mMetadataEditor:Landroid/media/RemoteController$MetadataEditor;
+Landroid/media/RemoteController;->mOnClientUpdateListener:Landroid/media/RemoteController$OnClientUpdateListener;
+Landroid/media/RemoteController;->mSessionCb:Landroid/media/session/MediaController$Callback;
+Landroid/media/RemoteController;->mSessionListener:Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;
+Landroid/media/RemoteController;->mSessionManager:Landroid/media/session/MediaSessionManager;
+Landroid/media/RemoteController;->MSG_CLIENT_CHANGE:I
+Landroid/media/RemoteController;->MSG_NEW_MEDIA_METADATA:I
+Landroid/media/RemoteController;->MSG_NEW_PLAYBACK_STATE:I
+Landroid/media/RemoteController;->onClientChange(Z)V
+Landroid/media/RemoteController;->onNewMediaMetadata(Landroid/media/MediaMetadata;)V
+Landroid/media/RemoteController;->onNewPlaybackState(Landroid/media/session/PlaybackState;)V
+Landroid/media/RemoteController;->sendMsg(Landroid/os/Handler;IIIILjava/lang/Object;I)V
+Landroid/media/RemoteController;->SENDMSG_NOOP:I
+Landroid/media/RemoteController;->SENDMSG_QUEUE:I
+Landroid/media/RemoteController;->SENDMSG_REPLACE:I
+Landroid/media/RemoteController;->startListeningToSessions()V
+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
+Landroid/media/RemoteDisplay;->DISPLAY_FLAG_SECURE:I
+Landroid/media/RemoteDisplay;->dispose(Z)V
+Landroid/media/RemoteDisplay;->listen(Ljava/lang/String;Landroid/media/RemoteDisplay$Listener;Landroid/os/Handler;Ljava/lang/String;)Landroid/media/RemoteDisplay;
+Landroid/media/RemoteDisplay;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/media/RemoteDisplay;->mHandler:Landroid/os/Handler;
+Landroid/media/RemoteDisplay;->mListener:Landroid/media/RemoteDisplay$Listener;
+Landroid/media/RemoteDisplay;->mOpPackageName:Ljava/lang/String;
+Landroid/media/RemoteDisplay;->mPtr:J
+Landroid/media/RemoteDisplay;->nativeDispose(J)V
+Landroid/media/RemoteDisplay;->nativeListen(Ljava/lang/String;Ljava/lang/String;)J
+Landroid/media/RemoteDisplay;->nativePause(J)V
+Landroid/media/RemoteDisplay;->nativeResume(J)V
+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
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->description:Ljava/lang/String;
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->id:Ljava/lang/String;
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->isValid()Z
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->name:Ljava/lang/String;
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->PLAYBACK_VOLUME_FIXED:I
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->PLAYBACK_VOLUME_VARIABLE:I
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->presentationDisplayId:I
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->status:I
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->STATUS_AVAILABLE:I
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->STATUS_CONNECTED:I
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->STATUS_CONNECTING:I
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->STATUS_IN_USE:I
+Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->STATUS_NOT_AVAILABLE:I
+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
+Landroid/media/RemoteDisplayState;->DISCOVERY_MODE_NONE:I
+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
+Landroid/media/ResampleInputStream;->mBufCount:I
+Landroid/media/ResampleInputStream;->mFirLength:I
+Landroid/media/ResampleInputStream;->mInputStream:Ljava/io/InputStream;
+Landroid/media/ResampleInputStream;->mOneByte:[B
+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;
+Landroid/media/Ringtone;->LOGD:Z
+Landroid/media/Ringtone;->mAllowRemote:Z
+Landroid/media/Ringtone;->mAudioAttributes:Landroid/media/AudioAttributes;
+Landroid/media/Ringtone;->mAudioManager:Landroid/media/AudioManager;
+Landroid/media/Ringtone;->mCompletionListener:Landroid/media/Ringtone$MyOnCompletionListener;
+Landroid/media/Ringtone;->mContext:Landroid/content/Context;
+Landroid/media/Ringtone;->MEDIA_COLUMNS:[Ljava/lang/String;
+Landroid/media/Ringtone;->MEDIA_SELECTION:Ljava/lang/String;
+Landroid/media/Ringtone;->mIsLooping:Z
+Landroid/media/Ringtone;->mPlaybackSettingsLock:Ljava/lang/Object;
+Landroid/media/Ringtone;->mRemotePlayer:Landroid/media/IRingtonePlayer;
+Landroid/media/Ringtone;->mRemoteToken:Landroid/os/Binder;
+Landroid/media/Ringtone;->mTitle:Ljava/lang/String;
+Landroid/media/Ringtone;->mVolume:F
+Landroid/media/Ringtone;->playFallbackRingtone()Z
+Landroid/media/Ringtone;->sActiveRingtones:Ljava/util/ArrayList;
+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;
+Landroid/media/RingtoneManager$NewRingtoneScanner;->take()Landroid/net/Uri;
+Landroid/media/RingtoneManager;-><init>(Landroid/app/Activity;Z)V
+Landroid/media/RingtoneManager;-><init>(Landroid/content/Context;Z)V
+Landroid/media/RingtoneManager;->addCustomExternalRingtone(Landroid/net/Uri;I)Landroid/net/Uri;
+Landroid/media/RingtoneManager;->constructBooleanTrueWhereClause(Ljava/util/List;)Ljava/lang/String;
+Landroid/media/RingtoneManager;->createPackageContextAsUser(Landroid/content/Context;I)Landroid/content/Context;
+Landroid/media/RingtoneManager;->deleteExternalRingtone(Landroid/net/Uri;)Z
+Landroid/media/RingtoneManager;->disableSyncFromParent(Landroid/content/Context;)V
+Landroid/media/RingtoneManager;->enableSyncFromParent(Landroid/content/Context;)V
+Landroid/media/RingtoneManager;->EXTRA_RINGTONE_AUDIO_ATTRIBUTES_FLAGS:Ljava/lang/String;
+Landroid/media/RingtoneManager;->getCacheForType(I)Landroid/net/Uri;
+Landroid/media/RingtoneManager;->getCacheForType(II)Landroid/net/Uri;
+Landroid/media/RingtoneManager;->getExistingRingtoneUriFromPath(Landroid/content/Context;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/media/RingtoneManager;->getExternalDirectoryForType(I)Ljava/lang/String;
+Landroid/media/RingtoneManager;->getMediaRingtones()Landroid/database/Cursor;
+Landroid/media/RingtoneManager;->getParentProfileRingtones()Landroid/database/Cursor;
+Landroid/media/RingtoneManager;->getRingtonePathFromUri(Landroid/net/Uri;)Ljava/io/File;
+Landroid/media/RingtoneManager;->getSettingForType(I)Ljava/lang/String;
+Landroid/media/RingtoneManager;->getUriFromCursor(Landroid/database/Cursor;)Landroid/net/Uri;
+Landroid/media/RingtoneManager;->getValidRingtoneUriFromCursorAndClose(Landroid/content/Context;Landroid/database/Cursor;)Landroid/net/Uri;
+Landroid/media/RingtoneManager;->INTERNAL_COLUMNS:[Ljava/lang/String;
+Landroid/media/RingtoneManager;->isCustomRingtone(Landroid/net/Uri;)Z
+Landroid/media/RingtoneManager;->isExternalRingtoneUri(Landroid/net/Uri;)Z
+Landroid/media/RingtoneManager;->isInternalRingtoneUri(Landroid/net/Uri;)Z
+Landroid/media/RingtoneManager;->isRingtoneUriInStorage(Landroid/net/Uri;Landroid/net/Uri;)Z
+Landroid/media/RingtoneManager;->mActivity:Landroid/app/Activity;
+Landroid/media/RingtoneManager;->mContext:Landroid/content/Context;
+Landroid/media/RingtoneManager;->MEDIA_COLUMNS:[Ljava/lang/String;
+Landroid/media/RingtoneManager;->mFilterColumns:Ljava/util/List;
+Landroid/media/RingtoneManager;->mIncludeParentRingtones:Z
+Landroid/media/RingtoneManager;->mPreviousRingtone:Landroid/media/Ringtone;
+Landroid/media/RingtoneManager;->mStopPreviousRingtone:Z
+Landroid/media/RingtoneManager;->mType:I
+Landroid/media/RingtoneManager;->openRingtone(Landroid/content/Context;Landroid/net/Uri;)Ljava/io/InputStream;
+Landroid/media/RingtoneManager;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+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;
+Landroid/media/session/ICallback$Stub$Proxy;->onAddressedPlayerChangedToMediaButtonReceiver(Landroid/content/ComponentName;)V
+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;
+Landroid/media/session/ICallback$Stub;->TRANSACTION_onAddressedPlayerChangedToMediaButtonReceiver:I
+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;
+Landroid/media/session/ISession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/session/ISession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/session/ISession$Stub$Proxy;->sendEvent(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISession$Stub$Proxy;->setActive(Z)V
+Landroid/media/session/ISession$Stub$Proxy;->setCurrentVolume(I)V
+Landroid/media/session/ISession$Stub$Proxy;->setExtras(Landroid/os/Bundle;)V
+Landroid/media/session/ISession$Stub$Proxy;->setFlags(I)V
+Landroid/media/session/ISession$Stub$Proxy;->setLaunchPendingIntent(Landroid/app/PendingIntent;)V
+Landroid/media/session/ISession$Stub$Proxy;->setMediaButtonReceiver(Landroid/app/PendingIntent;)V
+Landroid/media/session/ISession$Stub$Proxy;->setMetadata(Landroid/media/MediaMetadata;)V
+Landroid/media/session/ISession$Stub$Proxy;->setPlaybackState(Landroid/media/session/PlaybackState;)V
+Landroid/media/session/ISession$Stub$Proxy;->setPlaybackToLocal(Landroid/media/AudioAttributes;)V
+Landroid/media/session/ISession$Stub$Proxy;->setPlaybackToRemote(II)V
+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;
+Landroid/media/session/ISession$Stub;->TRANSACTION_destroy:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_getController:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_sendEvent:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setActive:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setCurrentVolume:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setExtras:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setFlags:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setLaunchPendingIntent:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setMediaButtonReceiver:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setMetadata:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setPlaybackState:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setPlaybackToLocal:I
+Landroid/media/session/ISession$Stub;->TRANSACTION_setPlaybackToRemote:I
+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
+Landroid/media/session/ISession;->setActive(Z)V
+Landroid/media/session/ISession;->setCurrentVolume(I)V
+Landroid/media/session/ISession;->setExtras(Landroid/os/Bundle;)V
+Landroid/media/session/ISession;->setFlags(I)V
+Landroid/media/session/ISession;->setLaunchPendingIntent(Landroid/app/PendingIntent;)V
+Landroid/media/session/ISession;->setMediaButtonReceiver(Landroid/app/PendingIntent;)V
+Landroid/media/session/ISession;->setMetadata(Landroid/media/MediaMetadata;)V
+Landroid/media/session/ISession;->setPlaybackState(Landroid/media/session/PlaybackState;)V
+Landroid/media/session/ISession;->setPlaybackToLocal(Landroid/media/AudioAttributes;)V
+Landroid/media/session/ISession;->setPlaybackToRemote(II)V
+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;
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onAdjustVolume(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;I)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onCommand(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onCustomAction(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onFastForward(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onMediaButton(Ljava/lang/String;IILandroid/content/Intent;ILandroid/os/ResultReceiver;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onMediaButtonFromController(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/content/Intent;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onNext(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPause(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPlay(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPlayFromMediaId(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPlayFromSearch(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPlayFromUri(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPrepare(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPrepareFromMediaId(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPrepareFromSearch(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPrepareFromUri(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onPrevious(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onRate(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/media/Rating;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onRewind(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback$Stub$Proxy;->onSeekTo(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;J)V
+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;
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onAdjustVolume:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onCommand:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onCustomAction:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onFastForward:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onMediaButton:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onMediaButtonFromController:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onNext:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPause:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPlay:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPlayFromMediaId:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPlayFromSearch:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPlayFromUri:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPrepare:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPrepareFromMediaId:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPrepareFromSearch:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPrepareFromUri:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onPrevious:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onRate:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onRewind:I
+Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onSeekTo:I
+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
+Landroid/media/session/ISessionCallback;->onFastForward(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback;->onMediaButton(Ljava/lang/String;IILandroid/content/Intent;ILandroid/os/ResultReceiver;)V
+Landroid/media/session/ISessionCallback;->onMediaButtonFromController(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/content/Intent;)V
+Landroid/media/session/ISessionCallback;->onNext(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback;->onPause(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback;->onPlay(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback;->onPlayFromMediaId(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback;->onPlayFromSearch(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback;->onPlayFromUri(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback;->onPrepare(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback;->onPrepareFromMediaId(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback;->onPrepareFromSearch(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback;->onPrepareFromUri(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionCallback;->onPrevious(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback;->onRate(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/media/Rating;)V
+Landroid/media/session/ISessionCallback;->onRewind(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionCallback;->onSeekTo(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;J)V
+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
+Landroid/media/session/ISessionController$Stub$Proxy;->getExtras()Landroid/os/Bundle;
+Landroid/media/session/ISessionController$Stub$Proxy;->getFlags()J
+Landroid/media/session/ISessionController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/session/ISessionController$Stub$Proxy;->getLaunchPendingIntent()Landroid/app/PendingIntent;
+Landroid/media/session/ISessionController$Stub$Proxy;->getMetadata()Landroid/media/MediaMetadata;
+Landroid/media/session/ISessionController$Stub$Proxy;->getPackageName()Ljava/lang/String;
+Landroid/media/session/ISessionController$Stub$Proxy;->getPlaybackState()Landroid/media/session/PlaybackState;
+Landroid/media/session/ISessionController$Stub$Proxy;->getQueue()Landroid/content/pm/ParceledListSlice;
+Landroid/media/session/ISessionController$Stub$Proxy;->getQueueTitle()Ljava/lang/CharSequence;
+Landroid/media/session/ISessionController$Stub$Proxy;->getRatingType()I
+Landroid/media/session/ISessionController$Stub$Proxy;->getTag()Ljava/lang/String;
+Landroid/media/session/ISessionController$Stub$Proxy;->getVolumeAttributes()Landroid/media/session/ParcelableVolumeInfo;
+Landroid/media/session/ISessionController$Stub$Proxy;->isTransportControlEnabled()Z
+Landroid/media/session/ISessionController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/session/ISessionController$Stub$Proxy;->next(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->pause(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->play(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->playFromMediaId(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->playFromSearch(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->playFromUri(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->prepare(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->prepareFromMediaId(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->prepareFromSearch(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->prepareFromUri(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->previous(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->rate(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Landroid/media/Rating;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->registerCallbackListener(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->rewind(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->seekTo(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;J)V
+Landroid/media/session/ISessionController$Stub$Proxy;->sendCommand(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->sendCustomAction(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController$Stub$Proxy;->sendMediaButton(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;ZLandroid/view/KeyEvent;)Z
+Landroid/media/session/ISessionController$Stub$Proxy;->setVolumeTo(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;II)V
+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;
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_adjustVolume:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_fastForward:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getExtras:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getFlags:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getLaunchPendingIntent:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getMetadata:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getPackageName:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getPlaybackState:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getQueue:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getQueueTitle:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getRatingType:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getTag:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_getVolumeAttributes:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_isTransportControlEnabled:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_next:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_pause:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_play:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_playFromMediaId:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_playFromSearch:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_playFromUri:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_prepare:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_prepareFromMediaId:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_prepareFromSearch:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_prepareFromUri:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_previous:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_rate:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_registerCallbackListener:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_rewind:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_seekTo:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_sendCommand:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_sendCustomAction:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_sendMediaButton:I
+Landroid/media/session/ISessionController$Stub;->TRANSACTION_setVolumeTo:I
+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;
+Landroid/media/session/ISessionController;->getFlags()J
+Landroid/media/session/ISessionController;->getLaunchPendingIntent()Landroid/app/PendingIntent;
+Landroid/media/session/ISessionController;->getMetadata()Landroid/media/MediaMetadata;
+Landroid/media/session/ISessionController;->getPackageName()Ljava/lang/String;
+Landroid/media/session/ISessionController;->getPlaybackState()Landroid/media/session/PlaybackState;
+Landroid/media/session/ISessionController;->getQueue()Landroid/content/pm/ParceledListSlice;
+Landroid/media/session/ISessionController;->getQueueTitle()Ljava/lang/CharSequence;
+Landroid/media/session/ISessionController;->getRatingType()I
+Landroid/media/session/ISessionController;->getTag()Ljava/lang/String;
+Landroid/media/session/ISessionController;->getVolumeAttributes()Landroid/media/session/ParcelableVolumeInfo;
+Landroid/media/session/ISessionController;->isTransportControlEnabled()Z
+Landroid/media/session/ISessionController;->next(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController;->pause(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController;->play(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController;->playFromMediaId(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController;->playFromSearch(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController;->playFromUri(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController;->prepare(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController;->prepareFromMediaId(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController;->prepareFromSearch(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController;->prepareFromUri(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController;->previous(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController;->rate(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Landroid/media/Rating;)V
+Landroid/media/session/ISessionController;->registerCallbackListener(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController;->rewind(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/ISessionController;->seekTo(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;J)V
+Landroid/media/session/ISessionController;->sendCommand(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/session/ISessionController;->sendCustomAction(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionController;->sendMediaButton(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;ZLandroid/view/KeyEvent;)Z
+Landroid/media/session/ISessionController;->setVolumeTo(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;II)V
+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;
+Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->onEvent(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->onExtrasChanged(Landroid/os/Bundle;)V
+Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->onMetadataChanged(Landroid/media/MediaMetadata;)V
+Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
+Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->onQueueChanged(Landroid/content/pm/ParceledListSlice;)V
+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;
+Landroid/media/session/ISessionControllerCallback$Stub;->TRANSACTION_onEvent:I
+Landroid/media/session/ISessionControllerCallback$Stub;->TRANSACTION_onExtrasChanged:I
+Landroid/media/session/ISessionControllerCallback$Stub;->TRANSACTION_onMetadataChanged:I
+Landroid/media/session/ISessionControllerCallback$Stub;->TRANSACTION_onPlaybackStateChanged:I
+Landroid/media/session/ISessionControllerCallback$Stub;->TRANSACTION_onQueueChanged:I
+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
+Landroid/media/session/ISessionControllerCallback;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
+Landroid/media/session/ISessionControllerCallback;->onQueueChanged(Landroid/content/pm/ParceledListSlice;)V
+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
+Landroid/media/session/ISessionManager$Stub$Proxy;->createSession(Ljava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;I)Landroid/media/session/ISession;
+Landroid/media/session/ISessionManager$Stub$Proxy;->createSession2(Landroid/os/Bundle;)Z
+Landroid/media/session/ISessionManager$Stub$Proxy;->destroySession2(Landroid/os/Bundle;)V
+Landroid/media/session/ISessionManager$Stub$Proxy;->dispatchAdjustVolume(Ljava/lang/String;III)V
+Landroid/media/session/ISessionManager$Stub$Proxy;->dispatchMediaKeyEvent(Ljava/lang/String;ZLandroid/view/KeyEvent;Z)V
+Landroid/media/session/ISessionManager$Stub$Proxy;->dispatchVolumeKeyEvent(Ljava/lang/String;ZLandroid/view/KeyEvent;IZ)V
+Landroid/media/session/ISessionManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/session/ISessionManager$Stub$Proxy;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
+Landroid/media/session/ISessionManager$Stub$Proxy;->getSessionTokens(ZZLjava/lang/String;)Ljava/util/List;
+Landroid/media/session/ISessionManager$Stub$Proxy;->isGlobalPriorityActive()Z
+Landroid/media/session/ISessionManager$Stub$Proxy;->isTrusted(Ljava/lang/String;II)Z
+Landroid/media/session/ISessionManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/session/ISessionManager$Stub$Proxy;->removeSessionsListener(Landroid/media/session/IActiveSessionsListener;)V
+Landroid/media/session/ISessionManager$Stub$Proxy;->removeSessionTokensListener(Landroid/media/ISessionTokensListener;Ljava/lang/String;)V
+Landroid/media/session/ISessionManager$Stub$Proxy;->setCallback(Landroid/media/session/ICallback;)V
+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
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_addSessionTokensListener:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_createSession2:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_createSession:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_destroySession2:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_dispatchAdjustVolume:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_dispatchMediaKeyEvent:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_dispatchVolumeKeyEvent:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_getSessions:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_getSessionTokens:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_isGlobalPriorityActive:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_isTrusted:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_removeSessionsListener:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_removeSessionTokensListener:I
+Landroid/media/session/ISessionManager$Stub;->TRANSACTION_setCallback:I
+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;
+Landroid/media/session/ISessionManager;->createSession2(Landroid/os/Bundle;)Z
+Landroid/media/session/ISessionManager;->destroySession2(Landroid/os/Bundle;)V
+Landroid/media/session/ISessionManager;->dispatchAdjustVolume(Ljava/lang/String;III)V
+Landroid/media/session/ISessionManager;->dispatchMediaKeyEvent(Ljava/lang/String;ZLandroid/view/KeyEvent;Z)V
+Landroid/media/session/ISessionManager;->dispatchVolumeKeyEvent(Ljava/lang/String;ZLandroid/view/KeyEvent;IZ)V
+Landroid/media/session/ISessionManager;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
+Landroid/media/session/ISessionManager;->getSessionTokens(ZZLjava/lang/String;)Ljava/util/List;
+Landroid/media/session/ISessionManager;->isGlobalPriorityActive()Z
+Landroid/media/session/ISessionManager;->isTrusted(Ljava/lang/String;II)Z
+Landroid/media/session/ISessionManager;->removeSessionsListener(Landroid/media/session/IActiveSessionsListener;)V
+Landroid/media/session/ISessionManager;->removeSessionTokensListener(Landroid/media/ISessionTokensListener;Ljava/lang/String;)V
+Landroid/media/session/ISessionManager;->setCallback(Landroid/media/session/ICallback;)V
+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
+Landroid/media/session/MediaController$CallbackStub;->onExtrasChanged(Landroid/os/Bundle;)V
+Landroid/media/session/MediaController$CallbackStub;->onMetadataChanged(Landroid/media/MediaMetadata;)V
+Landroid/media/session/MediaController$CallbackStub;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
+Landroid/media/session/MediaController$CallbackStub;->onQueueChanged(Landroid/content/pm/ParceledListSlice;)V
+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
+Landroid/media/session/MediaController$MessageHandler;->post(ILjava/lang/Object;Landroid/os/Bundle;)V
+Landroid/media/session/MediaController$PlaybackInfo;-><init>(ILandroid/media/AudioAttributes;III)V
+Landroid/media/session/MediaController$PlaybackInfo;->mAudioAttrs:Landroid/media/AudioAttributes;
+Landroid/media/session/MediaController$PlaybackInfo;->mCurrentVolume:I
+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
+Landroid/media/session/MediaController;->dispatchMediaButtonEventAsSystemService(Landroid/view/KeyEvent;)Z
+Landroid/media/session/MediaController;->dispatchMediaButtonEventInternal(ZLandroid/view/KeyEvent;)Z
+Landroid/media/session/MediaController;->dispatchVolumeButtonEventAsSystemService(Landroid/view/KeyEvent;)V
+Landroid/media/session/MediaController;->getHandlerForCallbackLocked(Landroid/media/session/MediaController$Callback;)Landroid/media/session/MediaController$MessageHandler;
+Landroid/media/session/MediaController;->getSessionBinder()Landroid/media/session/ISessionController;
+Landroid/media/session/MediaController;->getTag()Ljava/lang/String;
+Landroid/media/session/MediaController;->mCallbacks:Ljava/util/ArrayList;
+Landroid/media/session/MediaController;->mCbRegistered:Z
+Landroid/media/session/MediaController;->mCbStub:Landroid/media/session/MediaController$CallbackStub;
+Landroid/media/session/MediaController;->mContext:Landroid/content/Context;
+Landroid/media/session/MediaController;->mLock:Ljava/lang/Object;
+Landroid/media/session/MediaController;->mPackageName:Ljava/lang/String;
+Landroid/media/session/MediaController;->mSessionBinder:Landroid/media/session/ISessionController;
+Landroid/media/session/MediaController;->MSG_DESTROYED:I
+Landroid/media/session/MediaController;->MSG_EVENT:I
+Landroid/media/session/MediaController;->MSG_UPDATE_EXTRAS:I
+Landroid/media/session/MediaController;->MSG_UPDATE_METADATA:I
+Landroid/media/session/MediaController;->MSG_UPDATE_PLAYBACK_STATE:I
+Landroid/media/session/MediaController;->MSG_UPDATE_QUEUE:I
+Landroid/media/session/MediaController;->MSG_UPDATE_QUEUE_TITLE:I
+Landroid/media/session/MediaController;->MSG_UPDATE_VOLUME:I
+Landroid/media/session/MediaController;->mTag:Ljava/lang/String;
+Landroid/media/session/MediaController;->mToken:Landroid/media/session/MediaSession$Token;
+Landroid/media/session/MediaController;->mTransportControls:Landroid/media/session/MediaController$TransportControls;
+Landroid/media/session/MediaController;->postMessage(ILjava/lang/Object;Landroid/os/Bundle;)V
+Landroid/media/session/MediaController;->removeCallbackLocked(Landroid/media/session/MediaController$Callback;)Z
+Landroid/media/session/MediaController;->TAG:Ljava/lang/String;
+Landroid/media/session/MediaSession$Callback;->handleMediaPlayPauseKeySingleTapIfPending()V
+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
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_COMMAND:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_CUSTOM_ACTION:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_FAST_FORWARD:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_MEDIA_BUTTON:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_NEXT:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PAUSE:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PLAY:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PLAY_MEDIA_ID:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PLAY_PAUSE_KEY_DOUBLE_TAP_TIMEOUT:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PLAY_SEARCH:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PLAY_URI:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PREPARE:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PREPARE_MEDIA_ID:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PREPARE_SEARCH:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PREPARE_URI:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_PREVIOUS:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_RATE:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_REWIND:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_SEEK_TO:I
+Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_SET_VOLUME:I
+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;
+Landroid/media/session/MediaSession$CallbackStub;->onAdjustVolume(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;I)V
+Landroid/media/session/MediaSession$CallbackStub;->onCommand(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/session/MediaSession$CallbackStub;->onCustomAction(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession$CallbackStub;->onFastForward(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/MediaSession$CallbackStub;->onMediaButton(Ljava/lang/String;IILandroid/content/Intent;ILandroid/os/ResultReceiver;)V
+Landroid/media/session/MediaSession$CallbackStub;->onMediaButtonFromController(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/content/Intent;)V
+Landroid/media/session/MediaSession$CallbackStub;->onNext(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPause(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPlay(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPlayFromMediaId(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPlayFromSearch(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPlayFromUri(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPrepare(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPrepareFromMediaId(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPrepareFromSearch(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPrepareFromUri(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession$CallbackStub;->onPrevious(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/MediaSession$CallbackStub;->onRate(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Landroid/media/Rating;)V
+Landroid/media/session/MediaSession$CallbackStub;->onRewind(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
+Landroid/media/session/MediaSession$CallbackStub;->onSeekTo(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;J)V
+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;
+Landroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;I)V
+Landroid/media/session/MediaSession;->dispatchAdjustVolume(Landroid/media/session/MediaSessionManager$RemoteUserInfo;I)V
+Landroid/media/session/MediaSession;->dispatchCommand(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
+Landroid/media/session/MediaSession;->dispatchCustomAction(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession;->dispatchFastForward(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)V
+Landroid/media/session/MediaSession;->dispatchMediaButton(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Landroid/content/Intent;)V
+Landroid/media/session/MediaSession;->dispatchMediaButtonDelayed(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Landroid/content/Intent;J)V
+Landroid/media/session/MediaSession;->dispatchNext(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)V
+Landroid/media/session/MediaSession;->dispatchPause(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)V
+Landroid/media/session/MediaSession;->dispatchPlay(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)V
+Landroid/media/session/MediaSession;->dispatchPlayFromMediaId(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession;->dispatchPlayFromSearch(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession;->dispatchPlayFromUri(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession;->dispatchPrepare(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)V
+Landroid/media/session/MediaSession;->dispatchPrepareFromMediaId(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession;->dispatchPrepareFromSearch(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession;->dispatchPrepareFromUri(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/session/MediaSession;->dispatchPrevious(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)V
+Landroid/media/session/MediaSession;->dispatchRate(Landroid/media/session/MediaSessionManager$RemoteUserInfo;Landroid/media/Rating;)V
+Landroid/media/session/MediaSession;->dispatchRewind(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)V
+Landroid/media/session/MediaSession;->dispatchSeekTo(Landroid/media/session/MediaSessionManager$RemoteUserInfo;J)V
+Landroid/media/session/MediaSession;->dispatchSetVolumeTo(Landroid/media/session/MediaSessionManager$RemoteUserInfo;I)V
+Landroid/media/session/MediaSession;->dispatchSkipToItem(Landroid/media/session/MediaSessionManager$RemoteUserInfo;J)V
+Landroid/media/session/MediaSession;->dispatchStop(Landroid/media/session/MediaSessionManager$RemoteUserInfo;)V
+Landroid/media/session/MediaSession;->FLAG_EXCLUSIVE_GLOBAL_PRIORITY:I
+Landroid/media/session/MediaSession;->INVALID_PID:I
+Landroid/media/session/MediaSession;->INVALID_UID:I
+Landroid/media/session/MediaSession;->isActiveState(I)Z
+Landroid/media/session/MediaSession;->mActive:Z
+Landroid/media/session/MediaSession;->mBinder:Landroid/media/session/ISession;
+Landroid/media/session/MediaSession;->mCbStub:Landroid/media/session/MediaSession$CallbackStub;
+Landroid/media/session/MediaSession;->mController:Landroid/media/session/MediaController;
+Landroid/media/session/MediaSession;->mLock:Ljava/lang/Object;
+Landroid/media/session/MediaSession;->mMaxBitmapSize:I
+Landroid/media/session/MediaSession;->mPlaybackState:Landroid/media/session/PlaybackState;
+Landroid/media/session/MediaSession;->mSessionToken:Landroid/media/session/MediaSession$Token;
+Landroid/media/session/MediaSession;->mVolumeProvider:Landroid/media/VolumeProvider;
+Landroid/media/session/MediaSession;->notifyRemoteVolumeChanged(Landroid/media/VolumeProvider;)V
+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;
+Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;->mPi:Landroid/app/PendingIntent;
+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
+Landroid/media/session/MediaSessionLegacyHelper;->DEBUG:Z
+Landroid/media/session/MediaSessionLegacyHelper;->getHolder(Landroid/app/PendingIntent;Z)Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;
+Landroid/media/session/MediaSessionLegacyHelper;->getOldMetadata(Landroid/media/MediaMetadata;II)Landroid/os/Bundle;
+Landroid/media/session/MediaSessionLegacyHelper;->getSession(Landroid/app/PendingIntent;)Landroid/media/session/MediaSession;
+Landroid/media/session/MediaSessionLegacyHelper;->isGlobalPriorityActive()Z
+Landroid/media/session/MediaSessionLegacyHelper;->mContext:Landroid/content/Context;
+Landroid/media/session/MediaSessionLegacyHelper;->mHandler:Landroid/os/Handler;
+Landroid/media/session/MediaSessionLegacyHelper;->mSessionManager:Landroid/media/session/MediaSessionManager;
+Landroid/media/session/MediaSessionLegacyHelper;->mSessions:Landroid/util/ArrayMap;
+Landroid/media/session/MediaSessionLegacyHelper;->removeMediaButtonListener(Landroid/app/PendingIntent;)V
+Landroid/media/session/MediaSessionLegacyHelper;->removeRccListener(Landroid/app/PendingIntent;)V
+Landroid/media/session/MediaSessionLegacyHelper;->scaleBitmapIfTooBig(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
+Landroid/media/session/MediaSessionLegacyHelper;->sendAdjustVolumeBy(III)V
+Landroid/media/session/MediaSessionLegacyHelper;->sendKeyEvent(Landroid/app/PendingIntent;Landroid/content/Context;Landroid/content/Intent;)V
+Landroid/media/session/MediaSessionLegacyHelper;->sendMediaButtonEvent(Landroid/view/KeyEvent;Z)V
+Landroid/media/session/MediaSessionLegacyHelper;->sendVolumeKeyEvent(Landroid/view/KeyEvent;IZ)V
+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;
+Landroid/media/session/MediaSessionManager$CallbackImpl;->onAddressedPlayerChangedToMediaButtonReceiver(Landroid/content/ComponentName;)V
+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;
+Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListenerImpl;->onVolumeKeyLongPress(Landroid/view/KeyEvent;)V
+Landroid/media/session/MediaSessionManager$RemoteUserInfo;-><init>(Ljava/lang/String;IILandroid/os/IBinder;)V
+Landroid/media/session/MediaSessionManager$RemoteUserInfo;->mCallerBinder:Landroid/os/IBinder;
+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;
+Landroid/media/session/MediaSessionManager$SessionTokensChangedWrapper;->mListener:Landroid/media/session/MediaSessionManager$OnSessionTokensChangedListener;
+Landroid/media/session/MediaSessionManager$SessionTokensChangedWrapper;->mStub:Landroid/media/ISessionTokensListener$Stub;
+Landroid/media/session/MediaSessionManager$SessionTokensChangedWrapper;->release()V
+Landroid/media/session/MediaSessionManager;-><init>(Landroid/content/Context;)V
+Landroid/media/session/MediaSessionManager;->addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;ILandroid/os/Handler;)V
+Landroid/media/session/MediaSessionManager;->addOnSessionTokensChangedListener(ILjava/util/concurrent/Executor;Landroid/media/session/MediaSessionManager$OnSessionTokensChangedListener;)V
+Landroid/media/session/MediaSessionManager;->addOnSessionTokensChangedListener(Ljava/util/concurrent/Executor;Landroid/media/session/MediaSessionManager$OnSessionTokensChangedListener;)V
+Landroid/media/session/MediaSessionManager;->createSession(Landroid/media/session/MediaSession$CallbackStub;Ljava/lang/String;I)Landroid/media/session/ISession;
+Landroid/media/session/MediaSessionManager;->createSession2(Landroid/media/SessionToken2;)Z
+Landroid/media/session/MediaSessionManager;->destroySession2(Landroid/media/SessionToken2;)V
+Landroid/media/session/MediaSessionManager;->dispatchAdjustVolume(III)V
+Landroid/media/session/MediaSessionManager;->dispatchMediaKeyEvent(Landroid/view/KeyEvent;)V
+Landroid/media/session/MediaSessionManager;->dispatchMediaKeyEvent(Landroid/view/KeyEvent;Z)V
+Landroid/media/session/MediaSessionManager;->dispatchMediaKeyEventAsSystemService(Landroid/view/KeyEvent;)V
+Landroid/media/session/MediaSessionManager;->dispatchMediaKeyEventInternal(ZLandroid/view/KeyEvent;Z)V
+Landroid/media/session/MediaSessionManager;->dispatchVolumeKeyEvent(Landroid/view/KeyEvent;IZ)V
+Landroid/media/session/MediaSessionManager;->dispatchVolumeKeyEventAsSystemService(Landroid/view/KeyEvent;I)V
+Landroid/media/session/MediaSessionManager;->dispatchVolumeKeyEventInternal(ZLandroid/view/KeyEvent;IZ)V
+Landroid/media/session/MediaSessionManager;->getActiveSessionTokens()Ljava/util/List;
+Landroid/media/session/MediaSessionManager;->getAllSessionTokens()Ljava/util/List;
+Landroid/media/session/MediaSessionManager;->getSessionServiceTokens()Ljava/util/List;
+Landroid/media/session/MediaSessionManager;->isGlobalPriorityActive()Z
+Landroid/media/session/MediaSessionManager;->mCallback:Landroid/media/session/MediaSessionManager$CallbackImpl;
+Landroid/media/session/MediaSessionManager;->mContext:Landroid/content/Context;
+Landroid/media/session/MediaSessionManager;->mListeners:Landroid/util/ArrayMap;
+Landroid/media/session/MediaSessionManager;->mLock:Ljava/lang/Object;
+Landroid/media/session/MediaSessionManager;->mOnMediaKeyListener:Landroid/media/session/MediaSessionManager$OnMediaKeyListenerImpl;
+Landroid/media/session/MediaSessionManager;->mOnVolumeKeyLongPressListener:Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListenerImpl;
+Landroid/media/session/MediaSessionManager;->mService:Landroid/media/session/ISessionManager;
+Landroid/media/session/MediaSessionManager;->mSessionTokensListener:Landroid/util/ArrayMap;
+Landroid/media/session/MediaSessionManager;->removeOnSessionTokensChangedListener(Landroid/media/session/MediaSessionManager$OnSessionTokensChangedListener;)V
+Landroid/media/session/MediaSessionManager;->RESULT_MEDIA_KEY_HANDLED:I
+Landroid/media/session/MediaSessionManager;->RESULT_MEDIA_KEY_NOT_HANDLED:I
+Landroid/media/session/MediaSessionManager;->setCallback(Landroid/media/session/MediaSessionManager$Callback;Landroid/os/Handler;)V
+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;
+Landroid/media/session/ParcelableVolumeInfo;->controlType:I
+Landroid/media/session/ParcelableVolumeInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+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
+Landroid/media/session/PlaybackState$Builder;->mCustomActions:Ljava/util/List;
+Landroid/media/session/PlaybackState$Builder;->mErrorMessage:Ljava/lang/CharSequence;
+Landroid/media/session/PlaybackState$Builder;->mExtras:Landroid/os/Bundle;
+Landroid/media/session/PlaybackState$Builder;->mPosition:J
+Landroid/media/session/PlaybackState$Builder;->mSpeed:F
+Landroid/media/session/PlaybackState$Builder;->mState:I
+Landroid/media/session/PlaybackState$Builder;->mUpdateTime:J
+Landroid/media/session/PlaybackState$CustomAction$Builder;->mAction:Ljava/lang/String;
+Landroid/media/session/PlaybackState$CustomAction$Builder;->mExtras:Landroid/os/Bundle;
+Landroid/media/session/PlaybackState$CustomAction$Builder;->mIcon:I
+Landroid/media/session/PlaybackState$CustomAction$Builder;->mName:Ljava/lang/CharSequence;
+Landroid/media/session/PlaybackState$CustomAction;-><init>(Landroid/os/Parcel;)V
+Landroid/media/session/PlaybackState$CustomAction;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;ILandroid/os/Bundle;)V
+Landroid/media/session/PlaybackState$CustomAction;->mAction:Ljava/lang/String;
+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
+Landroid/media/session/PlaybackState;->getActionsFromRccControlFlags(I)J
+Landroid/media/session/PlaybackState;->getRccControlFlagsFromActions(J)I
+Landroid/media/session/PlaybackState;->getRccFlagForAction(J)I
+Landroid/media/session/PlaybackState;->getRccStateFromState(I)I
+Landroid/media/session/PlaybackState;->getStateFromRccState(I)I
+Landroid/media/session/PlaybackState;->mActions:J
+Landroid/media/session/PlaybackState;->mActiveItemId:J
+Landroid/media/session/PlaybackState;->mBufferedPosition:J
+Landroid/media/session/PlaybackState;->mCustomActions:Ljava/util/List;
+Landroid/media/session/PlaybackState;->mErrorMessage:Ljava/lang/CharSequence;
+Landroid/media/session/PlaybackState;->mExtras:Landroid/os/Bundle;
+Landroid/media/session/PlaybackState;->mPosition:J
+Landroid/media/session/PlaybackState;->mSpeed:F
+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
+Landroid/media/SessionCommand2;->COMMAND_CODE_CUSTOM:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_LIBRARY_GET_CHILDREN:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_LIBRARY_GET_ITEM:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_LIBRARY_GET_LIBRARY_ROOT:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_LIBRARY_GET_SEARCH_RESULT:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_LIBRARY_SEARCH:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_LIBRARY_SUBSCRIBE:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_LIBRARY_UNSUBSCRIBE:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYBACK_PAUSE:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYBACK_PLAY:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYBACK_PREPARE:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYBACK_SEEK_TO:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYBACK_STOP:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_ADD_ITEM:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_GET_LIST:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_GET_LIST_METADATA:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_REMOVE_ITEM:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_REPLACE_ITEM:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_SET_LIST:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_SET_LIST_METADATA:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_SET_REPEAT_MODE:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_SET_SHUFFLE_MODE:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_SKIP_NEXT_ITEM:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_SKIP_PREV_ITEM:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_PLAYLIST_SKIP_TO_PLAYLIST_ITEM:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_FAST_FORWARD:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_PLAY_FROM_MEDIA_ID:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_PLAY_FROM_SEARCH:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_PLAY_FROM_URI:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_PREPARE_FROM_MEDIA_ID:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_PREPARE_FROM_SEARCH:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_PREPARE_FROM_URI:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_REWIND:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SESSION_SET_RATING:I
+Landroid/media/SessionCommand2;->COMMAND_CODE_SET_VOLUME:I
+Landroid/media/SessionCommand2;->fromBundle(Landroid/os/Bundle;)Landroid/media/SessionCommand2;
+Landroid/media/SessionCommand2;->getCommandCode()I
+Landroid/media/SessionCommand2;->getCustomCommand()Ljava/lang/String;
+Landroid/media/SessionCommand2;->getExtras()Landroid/os/Bundle;
+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
+Landroid/media/SessionCommandGroup2;->addAllPredefinedCommands()V
+Landroid/media/SessionCommandGroup2;->addCommand(I)V
+Landroid/media/SessionCommandGroup2;->addCommand(Landroid/media/SessionCommand2;)V
+Landroid/media/SessionCommandGroup2;->fromBundle(Landroid/os/Bundle;)Landroid/media/SessionCommandGroup2;
+Landroid/media/SessionCommandGroup2;->getCommands()Ljava/util/Set;
+Landroid/media/SessionCommandGroup2;->getProvider()Landroid/media/update/MediaSession2Provider$CommandGroupProvider;
+Landroid/media/SessionCommandGroup2;->hasCommand(I)Z
+Landroid/media/SessionCommandGroup2;->hasCommand(Landroid/media/SessionCommand2;)Z
+Landroid/media/SessionCommandGroup2;->mProvider:Landroid/media/update/MediaSession2Provider$CommandGroupProvider;
+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
+Landroid/media/SessionToken2;->fromBundle(Landroid/os/Bundle;)Landroid/media/SessionToken2;
+Landroid/media/SessionToken2;->getId()Ljava/lang/String;
+Landroid/media/SessionToken2;->getPackageName()Ljava/lang/String;
+Landroid/media/SessionToken2;->getProvider()Landroid/media/update/SessionToken2Provider;
+Landroid/media/SessionToken2;->getType()I
+Landroid/media/SessionToken2;->getUid()I
+Landroid/media/SessionToken2;->mProvider:Landroid/media/update/SessionToken2Provider;
+Landroid/media/SessionToken2;->toBundle()Landroid/os/Bundle;
+Landroid/media/SessionToken2;->TYPE_LIBRARY_SERVICE:I
+Landroid/media/SessionToken2;->TYPE_SESSION:I
+Landroid/media/SessionToken2;->TYPE_SESSION_SERVICE:I
+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;
+Landroid/media/SoundPool;->mEventHandler:Landroid/media/SoundPool$EventHandler;
+Landroid/media/SoundPool;->mHasAppOpsPlayAudio:Z
+Landroid/media/SoundPool;->mLock:Ljava/lang/Object;
+Landroid/media/SoundPool;->mNativeContext:J
+Landroid/media/SoundPool;->mOnLoadCompleteListener:Landroid/media/SoundPool$OnLoadCompleteListener;
+Landroid/media/SoundPool;->native_release()V
+Landroid/media/SoundPool;->native_setup(Ljava/lang/Object;ILjava/lang/Object;)I
+Landroid/media/SoundPool;->playerApplyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
+Landroid/media/SoundPool;->playerGetVolumeShaperState(I)Landroid/media/VolumeShaper$State;
+Landroid/media/SoundPool;->playerPause()V
+Landroid/media/SoundPool;->playerSetAuxEffectSendLevel(ZF)I
+Landroid/media/SoundPool;->playerSetVolume(ZFF)V
+Landroid/media/SoundPool;->playerStart()V
+Landroid/media/SoundPool;->playerStop()V
+Landroid/media/SoundPool;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+Landroid/media/SoundPool;->SAMPLE_LOADED:I
+Landroid/media/SoundPool;->setVolume(IF)V
+Landroid/media/SoundPool;->TAG:Ljava/lang/String;
+Landroid/media/SoundPool;->_load(Ljava/io/FileDescriptor;JJI)I
+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;
+Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;->onError(Landroid/os/ParcelUuid;II)V
+Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;->onGenericRecognitionEvent(Landroid/os/ParcelUuid;ILandroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
+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;
+Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;->TRANSACTION_onError:I
+Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;->TRANSACTION_onGenericRecognitionEvent:I
+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;
+Landroid/media/soundtrigger/SoundTriggerDetectionService;->mClients:Landroid/util/ArrayMap;
+Landroid/media/soundtrigger/SoundTriggerDetectionService;->mHandler:Landroid/os/Handler;
+Landroid/media/soundtrigger/SoundTriggerDetectionService;->mLock:Ljava/lang/Object;
+Landroid/media/soundtrigger/SoundTriggerDetectionService;->removeClient(Ljava/util/UUID;Landroid/os/Bundle;)V
+Landroid/media/soundtrigger/SoundTriggerDetectionService;->setClient(Ljava/util/UUID;Landroid/os/Bundle;Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient;)V
+Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;-><init>(ZZLandroid/media/AudioFormat;I[B)V
+Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->mAudioFormat:Landroid/media/AudioFormat;
+Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->mCaptureAvailable:Z
+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
+Landroid/media/soundtrigger/SoundTriggerDetector;->mCallback:Landroid/media/soundtrigger/SoundTriggerDetector$Callback;
+Landroid/media/soundtrigger/SoundTriggerDetector;->mHandler:Landroid/os/Handler;
+Landroid/media/soundtrigger/SoundTriggerDetector;->mLock:Ljava/lang/Object;
+Landroid/media/soundtrigger/SoundTriggerDetector;->mRecognitionCallback:Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionCallback;
+Landroid/media/soundtrigger/SoundTriggerDetector;->MSG_AVAILABILITY_CHANGED:I
+Landroid/media/soundtrigger/SoundTriggerDetector;->MSG_DETECTION_ERROR:I
+Landroid/media/soundtrigger/SoundTriggerDetector;->MSG_DETECTION_PAUSE:I
+Landroid/media/soundtrigger/SoundTriggerDetector;->MSG_DETECTION_RESUME:I
+Landroid/media/soundtrigger/SoundTriggerDetector;->MSG_SOUND_TRIGGER_DETECTED:I
+Landroid/media/soundtrigger/SoundTriggerDetector;->mSoundModelId:Ljava/util/UUID;
+Landroid/media/soundtrigger/SoundTriggerDetector;->mSoundTriggerService:Lcom/android/internal/app/ISoundTriggerService;
+Landroid/media/soundtrigger/SoundTriggerDetector;->RECOGNITION_FLAG_NONE:I
+Landroid/media/soundtrigger/SoundTriggerDetector;->TAG:Ljava/lang/String;
+Landroid/media/soundtrigger/SoundTriggerManager$Model;-><init>(Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;)V
+Landroid/media/soundtrigger/SoundTriggerManager$Model;->getGenericSoundModel()Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;
+Landroid/media/soundtrigger/SoundTriggerManager$Model;->mGenericSoundModel:Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;
+Landroid/media/soundtrigger/SoundTriggerManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/ISoundTriggerService;)V
+Landroid/media/soundtrigger/SoundTriggerManager;->DBG:Z
+Landroid/media/soundtrigger/SoundTriggerManager;->EXTRA_MESSAGE_TYPE:Ljava/lang/String;
+Landroid/media/soundtrigger/SoundTriggerManager;->EXTRA_RECOGNITION_EVENT:Ljava/lang/String;
+Landroid/media/soundtrigger/SoundTriggerManager;->EXTRA_STATUS:Ljava/lang/String;
+Landroid/media/soundtrigger/SoundTriggerManager;->FLAG_MESSAGE_TYPE_RECOGNITION_ERROR:I
+Landroid/media/soundtrigger/SoundTriggerManager;->FLAG_MESSAGE_TYPE_RECOGNITION_EVENT:I
+Landroid/media/soundtrigger/SoundTriggerManager;->FLAG_MESSAGE_TYPE_RECOGNITION_PAUSED:I
+Landroid/media/soundtrigger/SoundTriggerManager;->FLAG_MESSAGE_TYPE_RECOGNITION_RESUMED:I
+Landroid/media/soundtrigger/SoundTriggerManager;->FLAG_MESSAGE_TYPE_UNKNOWN:I
+Landroid/media/soundtrigger/SoundTriggerManager;->mContext:Landroid/content/Context;
+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;
+Landroid/media/SRTRenderer;->mContext:Landroid/content/Context;
+Landroid/media/SRTRenderer;->mEventHandler:Landroid/os/Handler;
+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
+Landroid/media/SubtitleController;->doSelectDefaultTrack()V
+Landroid/media/SubtitleController;->doSelectTrack(Landroid/media/SubtitleTrack;)V
+Landroid/media/SubtitleController;->doShow()V
+Landroid/media/SubtitleController;->getDefaultTrack()Landroid/media/SubtitleTrack;
+Landroid/media/SubtitleController;->getRenderingWidget()Landroid/media/SubtitleTrack$RenderingWidget;
+Landroid/media/SubtitleController;->getSelectedTrack()Landroid/media/SubtitleTrack;
+Landroid/media/SubtitleController;->getTracks()[Landroid/media/SubtitleTrack;
+Landroid/media/SubtitleController;->hasRendererFor(Landroid/media/MediaFormat;)Z
+Landroid/media/SubtitleController;->mAnchor:Landroid/media/SubtitleController$Anchor;
+Landroid/media/SubtitleController;->mCallback:Landroid/os/Handler$Callback;
+Landroid/media/SubtitleController;->mCaptioningChangeListener:Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;
+Landroid/media/SubtitleController;->mCaptioningManager:Landroid/view/accessibility/CaptioningManager;
+Landroid/media/SubtitleController;->mListener:Landroid/media/SubtitleController$Listener;
+Landroid/media/SubtitleController;->mRenderers:Ljava/util/Vector;
+Landroid/media/SubtitleController;->mSelectedTrack:Landroid/media/SubtitleTrack;
+Landroid/media/SubtitleController;->mShowing:Z
+Landroid/media/SubtitleController;->mTimeProvider:Landroid/media/MediaTimeProvider;
+Landroid/media/SubtitleController;->mTrackIsExplicit:Z
+Landroid/media/SubtitleController;->mTracks:Ljava/util/Vector;
+Landroid/media/SubtitleController;->mVisibilityIsExplicit:Z
+Landroid/media/SubtitleController;->processOnAnchor(Landroid/os/Message;)V
+Landroid/media/SubtitleController;->selectDefaultTrack()V
+Landroid/media/SubtitleController;->selectTrack(Landroid/media/SubtitleTrack;)Z
+Landroid/media/SubtitleController;->setAnchor(Landroid/media/SubtitleController$Anchor;)V
+Landroid/media/SubtitleController;->WHAT_HIDE:I
+Landroid/media/SubtitleController;->WHAT_SELECT_DEFAULT_TRACK:I
+Landroid/media/SubtitleController;->WHAT_SELECT_TRACK:I
+Landroid/media/SubtitleController;->WHAT_SHOW:I
+Landroid/media/SubtitleData;-><init>(Landroid/os/Parcel;)V
+Landroid/media/SubtitleData;->mData:[B
+Landroid/media/SubtitleData;->mDurationUs:J
+Landroid/media/SubtitleData;->mStartTimeUs:J
+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
+Landroid/media/SubtitleTrack$Cue;->mNextInRun:Landroid/media/SubtitleTrack$Cue;
+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;
+Landroid/media/SubtitleTrack$CueList$EntryIterator;->mLastListIterator:Ljava/util/Iterator;
+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
+Landroid/media/SubtitleTrack$CueList;->DEBUG:Z
+Landroid/media/SubtitleTrack$CueList;->entriesBetween(JJ)Ljava/lang/Iterable;
+Landroid/media/SubtitleTrack$CueList;->mCues:Ljava/util/SortedMap;
+Landroid/media/SubtitleTrack$CueList;->nextTimeAfter(J)J
+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;
+Landroid/media/SubtitleTrack$Run;->mNextRunAtEndTimeMs:Landroid/media/SubtitleTrack$Run;
+Landroid/media/SubtitleTrack$Run;->mPrevRunAtEndTimeMs:Landroid/media/SubtitleTrack$Run;
+Landroid/media/SubtitleTrack$Run;->mRunID:J
+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
+Landroid/media/SubtitleTrack;->DEBUG:Z
+Landroid/media/SubtitleTrack;->finishedRun(J)V
+Landroid/media/SubtitleTrack;->getFormat()Landroid/media/MediaFormat;
+Landroid/media/SubtitleTrack;->getRenderingWidget()Landroid/media/SubtitleTrack$RenderingWidget;
+Landroid/media/SubtitleTrack;->getTrackType()I
+Landroid/media/SubtitleTrack;->hide()V
+Landroid/media/SubtitleTrack;->mActiveCues:Ljava/util/Vector;
+Landroid/media/SubtitleTrack;->mCues:Landroid/media/SubtitleTrack$CueList;
+Landroid/media/SubtitleTrack;->mFormat:Landroid/media/MediaFormat;
+Landroid/media/SubtitleTrack;->mHandler:Landroid/os/Handler;
+Landroid/media/SubtitleTrack;->mLastTimeMs:J
+Landroid/media/SubtitleTrack;->mLastUpdateTimeMs:J
+Landroid/media/SubtitleTrack;->mNextScheduledTimeMs:J
+Landroid/media/SubtitleTrack;->mRunnable:Ljava/lang/Runnable;
+Landroid/media/SubtitleTrack;->mRunsByEndTime:Landroid/util/LongSparseArray;
+Landroid/media/SubtitleTrack;->mRunsByID:Landroid/util/LongSparseArray;
+Landroid/media/SubtitleTrack;->mTimeProvider:Landroid/media/MediaTimeProvider;
+Landroid/media/SubtitleTrack;->mVisible:Z
+Landroid/media/SubtitleTrack;->onData(Landroid/media/SubtitleData;)V
+Landroid/media/SubtitleTrack;->onData([BZJ)V
+Landroid/media/SubtitleTrack;->onSeek(J)V
+Landroid/media/SubtitleTrack;->onStop()V
+Landroid/media/SubtitleTrack;->onTimedEvent(J)V
+Landroid/media/SubtitleTrack;->removeRunsByEndTimeIndex(I)V
+Landroid/media/SubtitleTrack;->scheduleTimedEvents()V
+Landroid/media/SubtitleTrack;->setRunDiscardTimeMs(JJ)V
+Landroid/media/SubtitleTrack;->setTimeProvider(Landroid/media/MediaTimeProvider;)V
+Landroid/media/SubtitleTrack;->show()V
+Landroid/media/SubtitleTrack;->TAG:Ljava/lang/String;
+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
+Landroid/media/SyncParams;->mSyncSource:I
+Landroid/media/SyncParams;->mTolerance:F
+Landroid/media/SyncParams;->SET_AUDIO_ADJUST_MODE:I
+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
+Landroid/media/TextTrackCue;->ALIGNMENT_MIDDLE:I
+Landroid/media/TextTrackCue;->ALIGNMENT_RIGHT:I
+Landroid/media/TextTrackCue;->ALIGNMENT_START:I
+Landroid/media/TextTrackCue;->appendLinesToBuilder(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
+Landroid/media/TextTrackCue;->appendStringsToBuilder(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
+Landroid/media/TextTrackCue;->mAlignment:I
+Landroid/media/TextTrackCue;->mAutoLinePosition:Z
+Landroid/media/TextTrackCue;->mId:Ljava/lang/String;
+Landroid/media/TextTrackCue;->mLinePosition:Ljava/lang/Integer;
+Landroid/media/TextTrackCue;->mLines:[[Landroid/media/TextTrackCueSpan;
+Landroid/media/TextTrackCue;->mPauseOnExit:Z
+Landroid/media/TextTrackCue;->mRegion:Landroid/media/TextTrackRegion;
+Landroid/media/TextTrackCue;->mRegionId:Ljava/lang/String;
+Landroid/media/TextTrackCue;->mSize:I
+Landroid/media/TextTrackCue;->mSnapToLines:Z
+Landroid/media/TextTrackCue;->mStrings:[Ljava/lang/String;
+Landroid/media/TextTrackCue;->mTextPosition:I
+Landroid/media/TextTrackCue;->mWritingDirection:I
+Landroid/media/TextTrackCue;->onTime(J)V
+Landroid/media/TextTrackCue;->TAG:Ljava/lang/String;
+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
+Landroid/media/TextTrackRegion;->mId:Ljava/lang/String;
+Landroid/media/TextTrackRegion;->mLines:I
+Landroid/media/TextTrackRegion;->mScrollValue:I
+Landroid/media/TextTrackRegion;->mViewportAnchorPointX:F
+Landroid/media/TextTrackRegion;->mViewportAnchorPointY:F
+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
+Landroid/media/ThumbnailUtils$SizedThumbnailBitmap;->mThumbnailHeight:I
+Landroid/media/ThumbnailUtils$SizedThumbnailBitmap;->mThumbnailWidth:I
+Landroid/media/ThumbnailUtils;->createThumbnailFromMetadataRetriever(Ljava/lang/String;II)Landroid/graphics/Bitmap;
+Landroid/media/ThumbnailUtils;->makeBitmap(IILandroid/net/Uri;Landroid/content/ContentResolver;Landroid/os/ParcelFileDescriptor;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+Landroid/media/ThumbnailUtils;->MAX_NUM_PIXELS_MICRO_THUMBNAIL:I
+Landroid/media/ThumbnailUtils;->MAX_NUM_PIXELS_THUMBNAIL:I
+Landroid/media/ThumbnailUtils;->OPTIONS_NONE:I
+Landroid/media/ThumbnailUtils;->OPTIONS_SCALE_UP:I
+Landroid/media/ThumbnailUtils;->TAG:Ljava/lang/String;
+Landroid/media/ThumbnailUtils;->TARGET_SIZE_MINI_THUMBNAIL:I
+Landroid/media/ThumbnailUtils;->UNCONSTRAINED:I
+Landroid/media/TimedMetaData;-><init>(Landroid/os/Parcel;)V
+Landroid/media/TimedMetaData;->createTimedMetaDataFromParcel(Landroid/os/Parcel;)Landroid/media/TimedMetaData;
+Landroid/media/TimedMetaData;->mMetaData:[B
+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
+Landroid/media/TimedText$Style;->fontID:I
+Landroid/media/TimedText$Style;->fontSize:I
+Landroid/media/TimedText$Style;->isBold:Z
+Landroid/media/TimedText$Style;->isItalic:Z
+Landroid/media/TimedText$Style;->isUnderlined:Z
+Landroid/media/TimedText$Style;->startChar:I
+Landroid/media/TimedText;-><init>(Landroid/os/Parcel;)V
+Landroid/media/TimedText;->containsKey(I)Z
+Landroid/media/TimedText;->FIRST_PRIVATE_KEY:I
+Landroid/media/TimedText;->FIRST_PUBLIC_KEY:I
+Landroid/media/TimedText;->isValidKey(I)Z
+Landroid/media/TimedText;->keySet()Ljava/util/Set;
+Landroid/media/TimedText;->KEY_BACKGROUND_COLOR_RGBA:I
+Landroid/media/TimedText;->KEY_DISPLAY_FLAGS:I
+Landroid/media/TimedText;->KEY_END_CHAR:I
+Landroid/media/TimedText;->KEY_FONT_ID:I
+Landroid/media/TimedText;->KEY_FONT_SIZE:I
+Landroid/media/TimedText;->KEY_GLOBAL_SETTING:I
+Landroid/media/TimedText;->KEY_HIGHLIGHT_COLOR_RGBA:I
+Landroid/media/TimedText;->KEY_LOCAL_SETTING:I
+Landroid/media/TimedText;->KEY_SCROLL_DELAY:I
+Landroid/media/TimedText;->KEY_START_CHAR:I
+Landroid/media/TimedText;->KEY_START_TIME:I
+Landroid/media/TimedText;->KEY_STRUCT_BLINKING_TEXT_LIST:I
+Landroid/media/TimedText;->KEY_STRUCT_FONT_LIST:I
+Landroid/media/TimedText;->KEY_STRUCT_HIGHLIGHT_LIST:I
+Landroid/media/TimedText;->KEY_STRUCT_HYPER_TEXT_LIST:I
+Landroid/media/TimedText;->KEY_STRUCT_JUSTIFICATION:I
+Landroid/media/TimedText;->KEY_STRUCT_KARAOKE_LIST:I
+Landroid/media/TimedText;->KEY_STRUCT_STYLE_LIST:I
+Landroid/media/TimedText;->KEY_STRUCT_TEXT:I
+Landroid/media/TimedText;->KEY_STRUCT_TEXT_POS:I
+Landroid/media/TimedText;->KEY_STYLE_FLAGS:I
+Landroid/media/TimedText;->KEY_TEXT_COLOR_RGBA:I
+Landroid/media/TimedText;->KEY_WRAP_TEXT:I
+Landroid/media/TimedText;->LAST_PRIVATE_KEY:I
+Landroid/media/TimedText;->LAST_PUBLIC_KEY:I
+Landroid/media/TimedText;->mBackgroundColorRGBA:I
+Landroid/media/TimedText;->mBlinkingPosList:Ljava/util/List;
+Landroid/media/TimedText;->mDisplayFlags:I
+Landroid/media/TimedText;->mFontList:Ljava/util/List;
+Landroid/media/TimedText;->mHighlightColorRGBA:I
+Landroid/media/TimedText;->mHighlightPosList:Ljava/util/List;
+Landroid/media/TimedText;->mHyperTextList:Ljava/util/List;
+Landroid/media/TimedText;->mJustification:Landroid/media/TimedText$Justification;
+Landroid/media/TimedText;->mKaraokeList:Ljava/util/List;
+Landroid/media/TimedText;->mKeyObjectMap:Ljava/util/HashMap;
+Landroid/media/TimedText;->mScrollDelay:I
+Landroid/media/TimedText;->mStyleList:Ljava/util/List;
+Landroid/media/TimedText;->mTextBounds:Landroid/graphics/Rect;
+Landroid/media/TimedText;->mTextChars:Ljava/lang/String;
+Landroid/media/TimedText;->mWrapText:I
+Landroid/media/TimedText;->parseParcel(Landroid/os/Parcel;)Z
+Landroid/media/TimedText;->readBlinkingText(Landroid/os/Parcel;)V
+Landroid/media/TimedText;->readFont(Landroid/os/Parcel;)V
+Landroid/media/TimedText;->readHighlight(Landroid/os/Parcel;)V
+Landroid/media/TimedText;->readHyperText(Landroid/os/Parcel;)V
+Landroid/media/TimedText;->readKaraoke(Landroid/os/Parcel;)V
+Landroid/media/TimedText;->readStyle(Landroid/os/Parcel;)V
+Landroid/media/TimedText;->TAG:Ljava/lang/String;
+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
+Landroid/media/TtmlRenderingWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/media/TtmlRenderingWidget;->mListener:Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
+Landroid/media/TtmlRenderingWidget;->mTextView:Landroid/widget/TextView;
+Landroid/media/TtmlRenderingWidget;->setActiveCues(Ljava/util/Vector;)V
+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;
+Landroid/media/tv/DvbDeviceInfo;->getAdapterId()I
+Landroid/media/tv/DvbDeviceInfo;->getDeviceId()I
+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;
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onChannelRetuned(Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onContentAllowed(I)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onContentBlocked(Ljava/lang/String;I)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onError(II)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onLayoutSurface(IIIII)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onRecordingStopped(Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onSessionCreated(Ljava/lang/String;Landroid/os/IBinder;Landroid/view/InputChannel;I)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onSessionEvent(Ljava/lang/String;Landroid/os/Bundle;I)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onSessionReleased(I)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onTimeShiftCurrentPositionChanged(JI)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onTimeShiftStartPositionChanged(JI)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onTimeShiftStatusChanged(II)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onTracksChanged(Ljava/util/List;I)V
+Landroid/media/tv/ITvInputClient$Stub$Proxy;->onTrackSelected(ILjava/lang/String;I)V
+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;
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onChannelRetuned:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onContentAllowed:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onContentBlocked:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onError:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onLayoutSurface:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onRecordingStopped:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onSessionCreated:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onSessionEvent:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onSessionReleased:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onTimeShiftCurrentPositionChanged:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onTimeShiftStartPositionChanged:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onTimeShiftStatusChanged:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onTracksChanged:I
+Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onTrackSelected:I
+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
+Landroid/media/tv/ITvInputClient;->onError(II)V
+Landroid/media/tv/ITvInputClient;->onLayoutSurface(IIIII)V
+Landroid/media/tv/ITvInputClient;->onRecordingStopped(Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputClient;->onSessionCreated(Ljava/lang/String;Landroid/os/IBinder;Landroid/view/InputChannel;I)V
+Landroid/media/tv/ITvInputClient;->onSessionEvent(Ljava/lang/String;Landroid/os/Bundle;I)V
+Landroid/media/tv/ITvInputClient;->onSessionReleased(I)V
+Landroid/media/tv/ITvInputClient;->onTimeShiftCurrentPositionChanged(JI)V
+Landroid/media/tv/ITvInputClient;->onTimeShiftStartPositionChanged(JI)V
+Landroid/media/tv/ITvInputClient;->onTimeShiftStatusChanged(II)V
+Landroid/media/tv/ITvInputClient;->onTracksChanged(Ljava/util/List;I)V
+Landroid/media/tv/ITvInputClient;->onTrackSelected(ILjava/lang/String;I)V
+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
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->captureFrame(Ljava/lang/String;Landroid/view/Surface;Landroid/media/tv/TvStreamConfig;I)Z
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->createOverlayView(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/graphics/Rect;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->createSession(Landroid/media/tv/ITvInputClient;Ljava/lang/String;ZII)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->dispatchSurfaceChanged(Landroid/os/IBinder;IIII)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getAvailableTvStreamConfigList(Ljava/lang/String;I)Ljava/util/List;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getBlockedRatings(I)Ljava/util/List;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getDvbDeviceList()Ljava/util/List;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getHardwareList()Ljava/util/List;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getTvContentRatingSystemList(I)Ljava/util/List;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getTvInputInfo(Ljava/lang/String;I)Landroid/media/tv/TvInputInfo;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getTvInputList(I)Ljava/util/List;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->getTvInputState(Ljava/lang/String;I)I
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->isParentalControlsEnabled(I)Z
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->isRatingBlocked(Ljava/lang/String;I)Z
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->isSingleSessionActive(I)Z
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->openDvbDevice(Landroid/media/tv/DvbDeviceInfo;I)Landroid/os/ParcelFileDescriptor;
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->registerCallback(Landroid/media/tv/ITvInputManagerCallback;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->relayoutOverlayView(Landroid/os/IBinder;Landroid/graphics/Rect;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->releaseSession(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->releaseTvInputHardware(ILandroid/media/tv/ITvInputHardware;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->removeBlockedRating(Ljava/lang/String;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->removeOverlayView(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->requestChannelBrowsable(Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->selectTrack(Landroid/os/IBinder;ILjava/lang/String;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->sendAppPrivateCommand(Landroid/os/IBinder;Ljava/lang/String;Landroid/os/Bundle;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->sendTvInputNotifyIntent(Landroid/content/Intent;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->setCaptionEnabled(Landroid/os/IBinder;ZI)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->setMainSession(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->setParentalControlsEnabled(ZI)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->setSurface(Landroid/os/IBinder;Landroid/view/Surface;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->setVolume(Landroid/os/IBinder;FI)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->startRecording(Landroid/os/IBinder;Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->stopRecording(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->timeShiftEnablePositionTracking(Landroid/os/IBinder;ZI)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->timeShiftPause(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->timeShiftPlay(Landroid/os/IBinder;Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->timeShiftResume(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->timeShiftSeekTo(Landroid/os/IBinder;JI)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->timeShiftSetPlaybackParams(Landroid/os/IBinder;Landroid/media/PlaybackParams;I)V
+Landroid/media/tv/ITvInputManager$Stub$Proxy;->tune(Landroid/os/IBinder;Landroid/net/Uri;Landroid/os/Bundle;I)V
+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;
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_acquireTvInputHardware:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_addBlockedRating:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_captureFrame:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_createOverlayView:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_createSession:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_dispatchSurfaceChanged:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_getAvailableTvStreamConfigList:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_getBlockedRatings:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_getDvbDeviceList:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_getHardwareList:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_getTvContentRatingSystemList:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_getTvInputInfo:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_getTvInputList:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_getTvInputState:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_isParentalControlsEnabled:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_isRatingBlocked:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_isSingleSessionActive:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_openDvbDevice:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_registerCallback:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_relayoutOverlayView:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_releaseSession:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_releaseTvInputHardware:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_removeBlockedRating:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_removeOverlayView:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_requestChannelBrowsable:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_selectTrack:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_sendAppPrivateCommand:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_sendTvInputNotifyIntent:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_setCaptionEnabled:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_setMainSession:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_setParentalControlsEnabled:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_setSurface:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_setVolume:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_startRecording:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_stopRecording:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_timeShiftEnablePositionTracking:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_timeShiftPause:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_timeShiftPlay:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_timeShiftResume:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_timeShiftSeekTo:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_timeShiftSetPlaybackParams:I
+Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_tune:I
+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
+Landroid/media/tv/ITvInputManager;->createOverlayView(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/graphics/Rect;I)V
+Landroid/media/tv/ITvInputManager;->createSession(Landroid/media/tv/ITvInputClient;Ljava/lang/String;ZII)V
+Landroid/media/tv/ITvInputManager;->dispatchSurfaceChanged(Landroid/os/IBinder;IIII)V
+Landroid/media/tv/ITvInputManager;->getAvailableTvStreamConfigList(Ljava/lang/String;I)Ljava/util/List;
+Landroid/media/tv/ITvInputManager;->getBlockedRatings(I)Ljava/util/List;
+Landroid/media/tv/ITvInputManager;->getDvbDeviceList()Ljava/util/List;
+Landroid/media/tv/ITvInputManager;->getHardwareList()Ljava/util/List;
+Landroid/media/tv/ITvInputManager;->getTvContentRatingSystemList(I)Ljava/util/List;
+Landroid/media/tv/ITvInputManager;->getTvInputInfo(Ljava/lang/String;I)Landroid/media/tv/TvInputInfo;
+Landroid/media/tv/ITvInputManager;->getTvInputList(I)Ljava/util/List;
+Landroid/media/tv/ITvInputManager;->getTvInputState(Ljava/lang/String;I)I
+Landroid/media/tv/ITvInputManager;->isParentalControlsEnabled(I)Z
+Landroid/media/tv/ITvInputManager;->isRatingBlocked(Ljava/lang/String;I)Z
+Landroid/media/tv/ITvInputManager;->isSingleSessionActive(I)Z
+Landroid/media/tv/ITvInputManager;->openDvbDevice(Landroid/media/tv/DvbDeviceInfo;I)Landroid/os/ParcelFileDescriptor;
+Landroid/media/tv/ITvInputManager;->registerCallback(Landroid/media/tv/ITvInputManagerCallback;I)V
+Landroid/media/tv/ITvInputManager;->relayoutOverlayView(Landroid/os/IBinder;Landroid/graphics/Rect;I)V
+Landroid/media/tv/ITvInputManager;->releaseSession(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager;->releaseTvInputHardware(ILandroid/media/tv/ITvInputHardware;I)V
+Landroid/media/tv/ITvInputManager;->removeBlockedRating(Ljava/lang/String;I)V
+Landroid/media/tv/ITvInputManager;->removeOverlayView(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager;->requestChannelBrowsable(Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputManager;->selectTrack(Landroid/os/IBinder;ILjava/lang/String;I)V
+Landroid/media/tv/ITvInputManager;->sendAppPrivateCommand(Landroid/os/IBinder;Ljava/lang/String;Landroid/os/Bundle;I)V
+Landroid/media/tv/ITvInputManager;->sendTvInputNotifyIntent(Landroid/content/Intent;I)V
+Landroid/media/tv/ITvInputManager;->setCaptionEnabled(Landroid/os/IBinder;ZI)V
+Landroid/media/tv/ITvInputManager;->setMainSession(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager;->setParentalControlsEnabled(ZI)V
+Landroid/media/tv/ITvInputManager;->setSurface(Landroid/os/IBinder;Landroid/view/Surface;I)V
+Landroid/media/tv/ITvInputManager;->setVolume(Landroid/os/IBinder;FI)V
+Landroid/media/tv/ITvInputManager;->startRecording(Landroid/os/IBinder;Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputManager;->stopRecording(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager;->timeShiftEnablePositionTracking(Landroid/os/IBinder;ZI)V
+Landroid/media/tv/ITvInputManager;->timeShiftPause(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager;->timeShiftPlay(Landroid/os/IBinder;Landroid/net/Uri;I)V
+Landroid/media/tv/ITvInputManager;->timeShiftResume(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvInputManager;->timeShiftSeekTo(Landroid/os/IBinder;JI)V
+Landroid/media/tv/ITvInputManager;->timeShiftSetPlaybackParams(Landroid/os/IBinder;Landroid/media/PlaybackParams;I)V
+Landroid/media/tv/ITvInputManager;->tune(Landroid/os/IBinder;Landroid/net/Uri;Landroid/os/Bundle;I)V
+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;
+Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;->onInputAdded(Ljava/lang/String;)V
+Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;->onInputRemoved(Ljava/lang/String;)V
+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;
+Landroid/media/tv/ITvInputManagerCallback$Stub;->TRANSACTION_onInputAdded:I
+Landroid/media/tv/ITvInputManagerCallback$Stub;->TRANSACTION_onInputRemoved:I
+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
+Landroid/media/tv/ITvInputService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/tv/ITvInputService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/tv/ITvInputService$Stub$Proxy;->notifyHardwareAdded(Landroid/media/tv/TvInputHardwareInfo;)V
+Landroid/media/tv/ITvInputService$Stub$Proxy;->notifyHardwareRemoved(Landroid/media/tv/TvInputHardwareInfo;)V
+Landroid/media/tv/ITvInputService$Stub$Proxy;->notifyHdmiDeviceAdded(Landroid/hardware/hdmi/HdmiDeviceInfo;)V
+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;
+Landroid/media/tv/ITvInputService$Stub;->TRANSACTION_createRecordingSession:I
+Landroid/media/tv/ITvInputService$Stub;->TRANSACTION_createSession:I
+Landroid/media/tv/ITvInputService$Stub;->TRANSACTION_notifyHardwareAdded:I
+Landroid/media/tv/ITvInputService$Stub;->TRANSACTION_notifyHardwareRemoved:I
+Landroid/media/tv/ITvInputService$Stub;->TRANSACTION_notifyHdmiDeviceAdded:I
+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
+Landroid/media/tv/ITvInputService;->notifyHardwareRemoved(Landroid/media/tv/TvInputHardwareInfo;)V
+Landroid/media/tv/ITvInputService;->notifyHdmiDeviceAdded(Landroid/hardware/hdmi/HdmiDeviceInfo;)V
+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
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->dispatchSurfaceChanged(III)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->relayoutOverlayView(Landroid/graphics/Rect;)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->release()V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->removeOverlayView()V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->selectTrack(ILjava/lang/String;)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->setCaptionEnabled(Z)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->setMain(Z)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->setSurface(Landroid/view/Surface;)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->setVolume(F)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->startRecording(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->stopRecording()V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->timeShiftEnablePositionTracking(Z)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->timeShiftPause()V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->timeShiftPlay(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->timeShiftResume()V
+Landroid/media/tv/ITvInputSession$Stub$Proxy;->timeShiftSeekTo(J)V
+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;
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_appPrivateCommand:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_createOverlayView:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_dispatchSurfaceChanged:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_relayoutOverlayView:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_release:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_removeOverlayView:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_selectTrack:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_setCaptionEnabled:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_setMain:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_setSurface:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_setVolume:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_startRecording:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_stopRecording:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_timeShiftEnablePositionTracking:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_timeShiftPause:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_timeShiftPlay:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_timeShiftResume:I
+Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_timeShiftSeekTo:I
+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
+Landroid/media/tv/ITvInputSession;->relayoutOverlayView(Landroid/graphics/Rect;)V
+Landroid/media/tv/ITvInputSession;->release()V
+Landroid/media/tv/ITvInputSession;->removeOverlayView()V
+Landroid/media/tv/ITvInputSession;->selectTrack(ILjava/lang/String;)V
+Landroid/media/tv/ITvInputSession;->setCaptionEnabled(Z)V
+Landroid/media/tv/ITvInputSession;->setMain(Z)V
+Landroid/media/tv/ITvInputSession;->setSurface(Landroid/view/Surface;)V
+Landroid/media/tv/ITvInputSession;->setVolume(F)V
+Landroid/media/tv/ITvInputSession;->startRecording(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSession;->stopRecording()V
+Landroid/media/tv/ITvInputSession;->timeShiftEnablePositionTracking(Z)V
+Landroid/media/tv/ITvInputSession;->timeShiftPause()V
+Landroid/media/tv/ITvInputSession;->timeShiftPlay(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSession;->timeShiftResume()V
+Landroid/media/tv/ITvInputSession;->timeShiftSeekTo(J)V
+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;
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onChannelRetuned(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onContentAllowed()V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onContentBlocked(Ljava/lang/String;)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onError(I)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onLayoutSurface(IIII)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onRecordingStopped(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onSessionCreated(Landroid/media/tv/ITvInputSession;Landroid/os/IBinder;)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onSessionEvent(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onTimeShiftCurrentPositionChanged(J)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onTimeShiftStartPositionChanged(J)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onTimeShiftStatusChanged(I)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onTracksChanged(Ljava/util/List;)V
+Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onTrackSelected(ILjava/lang/String;)V
+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;
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onChannelRetuned:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onContentAllowed:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onContentBlocked:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onError:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onLayoutSurface:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onRecordingStopped:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onSessionCreated:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onSessionEvent:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onTimeShiftCurrentPositionChanged:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onTimeShiftStartPositionChanged:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onTimeShiftStatusChanged:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onTracksChanged:I
+Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onTrackSelected:I
+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
+Landroid/media/tv/ITvInputSessionCallback;->onError(I)V
+Landroid/media/tv/ITvInputSessionCallback;->onLayoutSurface(IIII)V
+Landroid/media/tv/ITvInputSessionCallback;->onRecordingStopped(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSessionCallback;->onSessionCreated(Landroid/media/tv/ITvInputSession;Landroid/os/IBinder;)V
+Landroid/media/tv/ITvInputSessionCallback;->onSessionEvent(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/tv/ITvInputSessionCallback;->onTimeShiftCurrentPositionChanged(J)V
+Landroid/media/tv/ITvInputSessionCallback;->onTimeShiftStartPositionChanged(J)V
+Landroid/media/tv/ITvInputSessionCallback;->onTimeShiftStatusChanged(I)V
+Landroid/media/tv/ITvInputSessionCallback;->onTracksChanged(Ljava/util/List;)V
+Landroid/media/tv/ITvInputSessionCallback;->onTrackSelected(ILjava/lang/String;)V
+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
+Landroid/media/tv/ITvInputSessionWrapper;->createOverlayView(Landroid/os/IBinder;Landroid/graphics/Rect;)V
+Landroid/media/tv/ITvInputSessionWrapper;->dispatchSurfaceChanged(III)V
+Landroid/media/tv/ITvInputSessionWrapper;->DO_APP_PRIVATE_COMMAND:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_CREATE_OVERLAY_VIEW:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_DISPATCH_SURFACE_CHANGED:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_RELAYOUT_OVERLAY_VIEW:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_RELEASE:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_REMOVE_OVERLAY_VIEW:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_SELECT_TRACK:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_SET_CAPTION_ENABLED:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_SET_MAIN:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_SET_STREAM_VOLUME:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_SET_SURFACE:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_START_RECORDING:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_STOP_RECORDING:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_TIME_SHIFT_ENABLE_POSITION_TRACKING:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_TIME_SHIFT_PAUSE:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_TIME_SHIFT_PLAY:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_TIME_SHIFT_RESUME:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_TIME_SHIFT_SEEK_TO:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_TIME_SHIFT_SET_PLAYBACK_PARAMS:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_TUNE:I
+Landroid/media/tv/ITvInputSessionWrapper;->DO_UNBLOCK_CONTENT:I
+Landroid/media/tv/ITvInputSessionWrapper;->executeMessage(Landroid/os/Message;)V
+Landroid/media/tv/ITvInputSessionWrapper;->EXECUTE_MESSAGE_TIMEOUT_LONG_MILLIS:I
+Landroid/media/tv/ITvInputSessionWrapper;->EXECUTE_MESSAGE_TIMEOUT_SHORT_MILLIS:I
+Landroid/media/tv/ITvInputSessionWrapper;->EXECUTE_MESSAGE_TUNE_TIMEOUT_MILLIS:I
+Landroid/media/tv/ITvInputSessionWrapper;->mCaller:Lcom/android/internal/os/HandlerCaller;
+Landroid/media/tv/ITvInputSessionWrapper;->mChannel:Landroid/view/InputChannel;
+Landroid/media/tv/ITvInputSessionWrapper;->mIsRecordingSession:Z
+Landroid/media/tv/ITvInputSessionWrapper;->mReceiver:Landroid/media/tv/ITvInputSessionWrapper$TvInputEventReceiver;
+Landroid/media/tv/ITvInputSessionWrapper;->mTvInputRecordingSessionImpl:Landroid/media/tv/TvInputService$RecordingSession;
+Landroid/media/tv/ITvInputSessionWrapper;->mTvInputSessionImpl:Landroid/media/tv/TvInputService$Session;
+Landroid/media/tv/ITvInputSessionWrapper;->relayoutOverlayView(Landroid/graphics/Rect;)V
+Landroid/media/tv/ITvInputSessionWrapper;->release()V
+Landroid/media/tv/ITvInputSessionWrapper;->removeOverlayView()V
+Landroid/media/tv/ITvInputSessionWrapper;->selectTrack(ILjava/lang/String;)V
+Landroid/media/tv/ITvInputSessionWrapper;->setCaptionEnabled(Z)V
+Landroid/media/tv/ITvInputSessionWrapper;->setMain(Z)V
+Landroid/media/tv/ITvInputSessionWrapper;->setSurface(Landroid/view/Surface;)V
+Landroid/media/tv/ITvInputSessionWrapper;->setVolume(F)V
+Landroid/media/tv/ITvInputSessionWrapper;->startRecording(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSessionWrapper;->stopRecording()V
+Landroid/media/tv/ITvInputSessionWrapper;->TAG:Ljava/lang/String;
+Landroid/media/tv/ITvInputSessionWrapper;->timeShiftEnablePositionTracking(Z)V
+Landroid/media/tv/ITvInputSessionWrapper;->timeShiftPause()V
+Landroid/media/tv/ITvInputSessionWrapper;->timeShiftPlay(Landroid/net/Uri;)V
+Landroid/media/tv/ITvInputSessionWrapper;->timeShiftResume()V
+Landroid/media/tv/ITvInputSessionWrapper;->timeShiftSeekTo(J)V
+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
+Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->openInputBridge(Landroid/os/IBinder;Ljava/lang/String;III)V
+Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->sendKeyDown(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->sendKeyUp(Landroid/os/IBinder;I)V
+Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->sendPointerDown(Landroid/os/IBinder;III)V
+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;
+Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_clearInputBridge:I
+Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_closeInputBridge:I
+Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_openInputBridge:I
+Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_sendKeyDown:I
+Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_sendKeyUp:I
+Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_sendPointerDown:I
+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;
+Landroid/media/tv/TvContentRating;->mHashCode:I
+Landroid/media/tv/TvContentRating;->mRating:Ljava/lang/String;
+Landroid/media/tv/TvContentRating;->mRatingSystem:Ljava/lang/String;
+Landroid/media/tv/TvContentRating;->mSubRatings:[Ljava/lang/String;
+Landroid/media/tv/TvContentRatingSystemInfo;-><init>(Landroid/net/Uri;Landroid/content/pm/ApplicationInfo;)V
+Landroid/media/tv/TvContentRatingSystemInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/media/tv/TvContentRatingSystemInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+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
+Landroid/media/tv/TvContract$Programs$Genres;->DELIMITER:Ljava/lang/String;
+Landroid/media/tv/TvContract$Programs$Genres;->DOUBLE_QUOTE:C
+Landroid/media/tv/TvContract$Programs$Genres;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
+Landroid/media/tv/TvContract$Programs$Genres;->encodeToCsv(Ljava/lang/String;)Ljava/lang/String;
+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;
+Landroid/media/tv/TvContract;->isTvUri(Landroid/net/Uri;)Z
+Landroid/media/tv/TvContract;->isTwoSegmentUriStartingWith(Landroid/net/Uri;Ljava/lang/String;)Z
+Landroid/media/tv/TvContract;->PARAM_BROWSABLE_ONLY:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PARAM_CANONICAL_GENRE:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PARAM_CHANNEL:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PARAM_END_TIME:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PARAM_INPUT:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PARAM_PACKAGE:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PARAM_PREVIEW:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PARAM_START_TIME:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PATH_CHANNEL:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PATH_PASSTHROUGH:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PATH_PREVIEW_PROGRAM:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PATH_PROGRAM:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PATH_RECORDED_PROGRAM:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PATH_WATCH_NEXT_PROGRAM:Ljava/lang/String;
+Landroid/media/tv/TvContract;->PERMISSION_READ_TV_LISTINGS:Ljava/lang/String;
+Landroid/media/tv/TvInputHardwareInfo$Builder;->mAudioAddress:Ljava/lang/String;
+Landroid/media/tv/TvInputHardwareInfo$Builder;->mAudioType:I
+Landroid/media/tv/TvInputHardwareInfo$Builder;->mCableConnectionStatus:Ljava/lang/Integer;
+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
+Landroid/media/tv/TvInputHardwareInfo;->mCableConnectionStatus:I
+Landroid/media/tv/TvInputHardwareInfo;->mDeviceId:I
+Landroid/media/tv/TvInputHardwareInfo;->mHdmiPortId:I
+Landroid/media/tv/TvInputHardwareInfo;->mType:I
+Landroid/media/tv/TvInputHardwareInfo;->TAG:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;-><init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V
+Landroid/media/tv/TvInputInfo$Builder;->DELIMITER_INFO_IN_ID:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;->generateInputId(Landroid/content/ComponentName;)Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;->generateInputId(Landroid/content/ComponentName;Landroid/hardware/hdmi/HdmiDeviceInfo;)Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;->generateInputId(Landroid/content/ComponentName;Landroid/media/tv/TvInputHardwareInfo;)Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;->LENGTH_HDMI_DEVICE_ID:I
+Landroid/media/tv/TvInputInfo$Builder;->LENGTH_HDMI_PHYSICAL_ADDRESS:I
+Landroid/media/tv/TvInputInfo$Builder;->mCanRecord:Ljava/lang/Boolean;
+Landroid/media/tv/TvInputInfo$Builder;->mContext:Landroid/content/Context;
+Landroid/media/tv/TvInputInfo$Builder;->mExtras:Landroid/os/Bundle;
+Landroid/media/tv/TvInputInfo$Builder;->mHdmiDeviceInfo:Landroid/hardware/hdmi/HdmiDeviceInfo;
+Landroid/media/tv/TvInputInfo$Builder;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/media/tv/TvInputInfo$Builder;->mIconDisconnected:Landroid/graphics/drawable/Icon;
+Landroid/media/tv/TvInputInfo$Builder;->mIconStandby:Landroid/graphics/drawable/Icon;
+Landroid/media/tv/TvInputInfo$Builder;->mLabel:Ljava/lang/CharSequence;
+Landroid/media/tv/TvInputInfo$Builder;->mLabelResId:I
+Landroid/media/tv/TvInputInfo$Builder;->mParentId:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;->mResolveInfo:Landroid/content/pm/ResolveInfo;
+Landroid/media/tv/TvInputInfo$Builder;->mSetupActivity:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;->mTunerCount:Ljava/lang/Integer;
+Landroid/media/tv/TvInputInfo$Builder;->mTvInputHardwareInfo:Landroid/media/tv/TvInputHardwareInfo;
+Landroid/media/tv/TvInputInfo$Builder;->parseServiceMetadata(I)V
+Landroid/media/tv/TvInputInfo$Builder;->PREFIX_HARDWARE_DEVICE:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;->PREFIX_HDMI_DEVICE:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$Builder;->sHardwareTypeToTvInputType:Landroid/util/SparseIntArray;
+Landroid/media/tv/TvInputInfo$Builder;->XML_START_TAG_NAME:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$TvInputSettings;-><init>()V
+Landroid/media/tv/TvInputInfo$TvInputSettings;->CUSTOM_NAME_SEPARATOR:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo$TvInputSettings;->ensureValidField(Ljava/lang/String;)V
+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
+Landroid/media/tv/TvInputInfo;->loadServiceIcon(Landroid/content/Context;)Landroid/graphics/drawable/Drawable;
+Landroid/media/tv/TvInputInfo;->mCanRecord:Z
+Landroid/media/tv/TvInputInfo;->mExtras:Landroid/os/Bundle;
+Landroid/media/tv/TvInputInfo;->mHdmiDeviceInfo:Landroid/hardware/hdmi/HdmiDeviceInfo;
+Landroid/media/tv/TvInputInfo;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/media/tv/TvInputInfo;->mIconDisconnected:Landroid/graphics/drawable/Icon;
+Landroid/media/tv/TvInputInfo;->mIconStandby:Landroid/graphics/drawable/Icon;
+Landroid/media/tv/TvInputInfo;->mIconUri:Landroid/net/Uri;
+Landroid/media/tv/TvInputInfo;->mId:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo;->mIsConnectedToHdmiSwitch:Z
+Landroid/media/tv/TvInputInfo;->mIsHardwareInput:Z
+Landroid/media/tv/TvInputInfo;->mLabel:Ljava/lang/CharSequence;
+Landroid/media/tv/TvInputInfo;->mLabelResId:I
+Landroid/media/tv/TvInputInfo;->mParentId:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo;->mService:Landroid/content/pm/ResolveInfo;
+Landroid/media/tv/TvInputInfo;->mSetupActivity:Ljava/lang/String;
+Landroid/media/tv/TvInputInfo;->mTunerCount:I
+Landroid/media/tv/TvInputInfo;->mType:I
+Landroid/media/tv/TvInputInfo;->TAG:Ljava/lang/String;
+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
+Landroid/media/tv/TvInputManager$Session;->dispatchInputEvent(Landroid/view/InputEvent;Ljava/lang/Object;Landroid/media/tv/TvInputManager$Session$FinishedInputEventCallback;Landroid/os/Handler;)I
+Landroid/media/tv/TvInputManager$Session;->dispatchSurfaceChanged(III)V
+Landroid/media/tv/TvInputManager$Session;->DISPATCH_HANDLED:I
+Landroid/media/tv/TvInputManager$Session;->DISPATCH_IN_PROGRESS:I
+Landroid/media/tv/TvInputManager$Session;->DISPATCH_NOT_HANDLED:I
+Landroid/media/tv/TvInputManager$Session;->finishedInputEvent(IZZ)V
+Landroid/media/tv/TvInputManager$Session;->flushPendingEventsLocked()V
+Landroid/media/tv/TvInputManager$Session;->getSelectedTrack(I)Ljava/lang/String;
+Landroid/media/tv/TvInputManager$Session;->getToken()Landroid/os/IBinder;
+Landroid/media/tv/TvInputManager$Session;->getTracks(I)Ljava/util/List;
+Landroid/media/tv/TvInputManager$Session;->getVideoTrackToNotify()Landroid/media/tv/TvTrackInfo;
+Landroid/media/tv/TvInputManager$Session;->INPUT_SESSION_NOT_RESPONDING_TIMEOUT:J
+Landroid/media/tv/TvInputManager$Session;->invokeFinishedInputEventCallback(Landroid/media/tv/TvInputManager$Session$PendingEvent;Z)V
+Landroid/media/tv/TvInputManager$Session;->mAudioTracks:Ljava/util/List;
+Landroid/media/tv/TvInputManager$Session;->mChannel:Landroid/view/InputChannel;
+Landroid/media/tv/TvInputManager$Session;->mHandler:Landroid/media/tv/TvInputManager$Session$InputEventHandler;
+Landroid/media/tv/TvInputManager$Session;->mMetadataLock:Ljava/lang/Object;
+Landroid/media/tv/TvInputManager$Session;->mPendingEventPool:Landroid/util/Pools$Pool;
+Landroid/media/tv/TvInputManager$Session;->mPendingEvents:Landroid/util/SparseArray;
+Landroid/media/tv/TvInputManager$Session;->mSelectedAudioTrackId:Ljava/lang/String;
+Landroid/media/tv/TvInputManager$Session;->mSelectedSubtitleTrackId:Ljava/lang/String;
+Landroid/media/tv/TvInputManager$Session;->mSelectedVideoTrackId:Ljava/lang/String;
+Landroid/media/tv/TvInputManager$Session;->mSender:Landroid/media/tv/TvInputManager$Session$TvInputEventSender;
+Landroid/media/tv/TvInputManager$Session;->mSeq:I
+Landroid/media/tv/TvInputManager$Session;->mService:Landroid/media/tv/ITvInputManager;
+Landroid/media/tv/TvInputManager$Session;->mSessionCallbackRecordMap:Landroid/util/SparseArray;
+Landroid/media/tv/TvInputManager$Session;->mSubtitleTracks:Ljava/util/List;
+Landroid/media/tv/TvInputManager$Session;->mToken:Landroid/os/IBinder;
+Landroid/media/tv/TvInputManager$Session;->mUserId:I
+Landroid/media/tv/TvInputManager$Session;->mVideoHeight:I
+Landroid/media/tv/TvInputManager$Session;->mVideoTracks:Ljava/util/List;
+Landroid/media/tv/TvInputManager$Session;->mVideoWidth:I
+Landroid/media/tv/TvInputManager$Session;->obtainPendingEventLocked(Landroid/view/InputEvent;Ljava/lang/Object;Landroid/media/tv/TvInputManager$Session$FinishedInputEventCallback;Landroid/os/Handler;)Landroid/media/tv/TvInputManager$Session$PendingEvent;
+Landroid/media/tv/TvInputManager$Session;->recyclePendingEventLocked(Landroid/media/tv/TvInputManager$Session$PendingEvent;)V
+Landroid/media/tv/TvInputManager$Session;->relayoutOverlayView(Landroid/graphics/Rect;)V
+Landroid/media/tv/TvInputManager$Session;->release()V
+Landroid/media/tv/TvInputManager$Session;->releaseInternal()V
+Landroid/media/tv/TvInputManager$Session;->removeOverlayView()V
+Landroid/media/tv/TvInputManager$Session;->selectTrack(ILjava/lang/String;)V
+Landroid/media/tv/TvInputManager$Session;->sendAppPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/tv/TvInputManager$Session;->sendInputEventAndReportResultOnMainLooper(Landroid/media/tv/TvInputManager$Session$PendingEvent;)V
+Landroid/media/tv/TvInputManager$Session;->sendInputEventOnMainLooperLocked(Landroid/media/tv/TvInputManager$Session$PendingEvent;)I
+Landroid/media/tv/TvInputManager$Session;->setCaptionEnabled(Z)V
+Landroid/media/tv/TvInputManager$Session;->setMain()V
+Landroid/media/tv/TvInputManager$Session;->setStreamVolume(F)V
+Landroid/media/tv/TvInputManager$Session;->setSurface(Landroid/view/Surface;)V
+Landroid/media/tv/TvInputManager$Session;->startRecording(Landroid/net/Uri;)V
+Landroid/media/tv/TvInputManager$Session;->stopRecording()V
+Landroid/media/tv/TvInputManager$Session;->timeShiftEnablePositionTracking(Z)V
+Landroid/media/tv/TvInputManager$Session;->timeShiftPause()V
+Landroid/media/tv/TvInputManager$Session;->timeShiftPlay(Landroid/net/Uri;)V
+Landroid/media/tv/TvInputManager$Session;->timeShiftResume()V
+Landroid/media/tv/TvInputManager$Session;->timeShiftSeekTo(J)V
+Landroid/media/tv/TvInputManager$Session;->timeShiftSetPlaybackParams(Landroid/media/PlaybackParams;)V
+Landroid/media/tv/TvInputManager$Session;->tune(Landroid/net/Uri;)V
+Landroid/media/tv/TvInputManager$Session;->tune(Landroid/net/Uri;Landroid/os/Bundle;)V
+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
+Landroid/media/tv/TvInputManager$SessionCallback;->onContentBlocked(Landroid/media/tv/TvInputManager$Session;Landroid/media/tv/TvContentRating;)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onError(Landroid/media/tv/TvInputManager$Session;I)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onLayoutSurface(Landroid/media/tv/TvInputManager$Session;IIII)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onRecordingStopped(Landroid/media/tv/TvInputManager$Session;Landroid/net/Uri;)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onSessionCreated(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onSessionEvent(Landroid/media/tv/TvInputManager$Session;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onSessionReleased(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onTimeShiftCurrentPositionChanged(Landroid/media/tv/TvInputManager$Session;J)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onTimeShiftStartPositionChanged(Landroid/media/tv/TvInputManager$Session;J)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onTimeShiftStatusChanged(Landroid/media/tv/TvInputManager$Session;I)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onTracksChanged(Landroid/media/tv/TvInputManager$Session;Ljava/util/List;)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onTrackSelected(Landroid/media/tv/TvInputManager$Session;ILjava/lang/String;)V
+Landroid/media/tv/TvInputManager$SessionCallback;->onTuned(Landroid/media/tv/TvInputManager$Session;Landroid/net/Uri;)V
+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;
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->mSessionCallback:Landroid/media/tv/TvInputManager$SessionCallback;
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postChannelRetuned(Landroid/net/Uri;)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postContentAllowed()V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postContentBlocked(Landroid/media/tv/TvContentRating;)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postError(I)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postLayoutSurface(IIII)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postRecordingStopped(Landroid/net/Uri;)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postSessionCreated(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postSessionEvent(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postSessionReleased()V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postTimeShiftCurrentPositionChanged(J)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postTimeShiftStartPositionChanged(J)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postTimeShiftStatusChanged(I)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postTracksChanged(Ljava/util/List;)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postTrackSelected(ILjava/lang/String;)V
+Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postTuned(Landroid/net/Uri;)V
+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;
+Landroid/media/tv/TvInputManager$TvInputCallbackRecord;->mHandler:Landroid/os/Handler;
+Landroid/media/tv/TvInputManager$TvInputCallbackRecord;->postInputAdded(Ljava/lang/String;)V
+Landroid/media/tv/TvInputManager$TvInputCallbackRecord;->postInputRemoved(Ljava/lang/String;)V
+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
+Landroid/media/tv/TvInputManager;->createSessionInternal(Ljava/lang/String;ZLandroid/media/tv/TvInputManager$SessionCallback;Landroid/os/Handler;)V
+Landroid/media/tv/TvInputManager;->DVB_DEVICE_DEMUX:I
+Landroid/media/tv/TvInputManager;->DVB_DEVICE_DVR:I
+Landroid/media/tv/TvInputManager;->DVB_DEVICE_END:I
+Landroid/media/tv/TvInputManager;->DVB_DEVICE_FRONTEND:I
+Landroid/media/tv/TvInputManager;->DVB_DEVICE_START:I
+Landroid/media/tv/TvInputManager;->getDvbDeviceList()Ljava/util/List;
+Landroid/media/tv/TvInputManager;->mCallbackRecords:Ljava/util/List;
+Landroid/media/tv/TvInputManager;->mClient:Landroid/media/tv/ITvInputClient;
+Landroid/media/tv/TvInputManager;->mLock:Ljava/lang/Object;
+Landroid/media/tv/TvInputManager;->mNextSeq:I
+Landroid/media/tv/TvInputManager;->mService:Landroid/media/tv/ITvInputManager;
+Landroid/media/tv/TvInputManager;->mSessionCallbackRecordMap:Landroid/util/SparseArray;
+Landroid/media/tv/TvInputManager;->mStateMap:Ljava/util/Map;
+Landroid/media/tv/TvInputManager;->mUserId:I
+Landroid/media/tv/TvInputManager;->openDvbDevice(Landroid/media/tv/DvbDeviceInfo;I)Landroid/os/ParcelFileDescriptor;
+Landroid/media/tv/TvInputManager;->RECORDING_ERROR_END:I
+Landroid/media/tv/TvInputManager;->RECORDING_ERROR_START:I
+Landroid/media/tv/TvInputManager;->requestChannelBrowsable(Landroid/net/Uri;)V
+Landroid/media/tv/TvInputManager;->TAG:Ljava/lang/String;
+Landroid/media/tv/TvInputManager;->VIDEO_UNAVAILABLE_REASON_END:I
+Landroid/media/tv/TvInputManager;->VIDEO_UNAVAILABLE_REASON_START:I
+Landroid/media/tv/TvInputService$HardwareSession;->mHardwareSession:Landroid/media/tv/TvInputManager$Session;
+Landroid/media/tv/TvInputService$HardwareSession;->mHardwareSessionCallback:Landroid/media/tv/TvInputManager$SessionCallback;
+Landroid/media/tv/TvInputService$HardwareSession;->mProxySession:Landroid/media/tv/ITvInputSession;
+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
+Landroid/media/tv/TvInputService$RecordingSession;->mHandler:Landroid/os/Handler;
+Landroid/media/tv/TvInputService$RecordingSession;->mLock:Ljava/lang/Object;
+Landroid/media/tv/TvInputService$RecordingSession;->mPendingActions:Ljava/util/List;
+Landroid/media/tv/TvInputService$RecordingSession;->mSessionCallback:Landroid/media/tv/ITvInputSessionCallback;
+Landroid/media/tv/TvInputService$RecordingSession;->release()V
+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
+Landroid/media/tv/TvInputService$ServiceHandler;->DO_ADD_HARDWARE_INPUT:I
+Landroid/media/tv/TvInputService$ServiceHandler;->DO_ADD_HDMI_INPUT:I
+Landroid/media/tv/TvInputService$ServiceHandler;->DO_CREATE_RECORDING_SESSION:I
+Landroid/media/tv/TvInputService$ServiceHandler;->DO_CREATE_SESSION:I
+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
+Landroid/media/tv/TvInputService$Session;->dispatchSurfaceChanged(III)V
+Landroid/media/tv/TvInputService$Session;->executeOrPostRunnableOnMainThread(Ljava/lang/Runnable;)V
+Landroid/media/tv/TvInputService$Session;->initialize(Landroid/media/tv/ITvInputSessionCallback;)V
+Landroid/media/tv/TvInputService$Session;->mContext:Landroid/content/Context;
+Landroid/media/tv/TvInputService$Session;->mCurrentPositionMs:J
+Landroid/media/tv/TvInputService$Session;->mDispatcherState:Landroid/view/KeyEvent$DispatcherState;
+Landroid/media/tv/TvInputService$Session;->mHandler:Landroid/os/Handler;
+Landroid/media/tv/TvInputService$Session;->mLock:Ljava/lang/Object;
+Landroid/media/tv/TvInputService$Session;->mOverlayView:Landroid/view/View;
+Landroid/media/tv/TvInputService$Session;->mOverlayViewCleanUpTask:Landroid/media/tv/TvInputService$OverlayViewCleanUpTask;
+Landroid/media/tv/TvInputService$Session;->mOverlayViewContainer:Landroid/widget/FrameLayout;
+Landroid/media/tv/TvInputService$Session;->mOverlayViewEnabled:Z
+Landroid/media/tv/TvInputService$Session;->mPendingActions:Ljava/util/List;
+Landroid/media/tv/TvInputService$Session;->mSessionCallback:Landroid/media/tv/ITvInputSessionCallback;
+Landroid/media/tv/TvInputService$Session;->mStartPositionMs:J
+Landroid/media/tv/TvInputService$Session;->mSurface:Landroid/view/Surface;
+Landroid/media/tv/TvInputService$Session;->mTimeShiftPositionTrackingRunnable:Landroid/media/tv/TvInputService$Session$TimeShiftPositionTrackingRunnable;
+Landroid/media/tv/TvInputService$Session;->mWindowManager:Landroid/view/WindowManager;
+Landroid/media/tv/TvInputService$Session;->mWindowParams:Landroid/view/WindowManager$LayoutParams;
+Landroid/media/tv/TvInputService$Session;->mWindowToken:Landroid/os/IBinder;
+Landroid/media/tv/TvInputService$Session;->notifyTimeShiftCurrentPositionChanged(J)V
+Landroid/media/tv/TvInputService$Session;->notifyTimeShiftStartPositionChanged(J)V
+Landroid/media/tv/TvInputService$Session;->POSITION_UPDATE_INTERVAL_MS:I
+Landroid/media/tv/TvInputService$Session;->relayoutOverlayView(Landroid/graphics/Rect;)V
+Landroid/media/tv/TvInputService$Session;->release()V
+Landroid/media/tv/TvInputService$Session;->removeOverlayView(Z)V
+Landroid/media/tv/TvInputService$Session;->scheduleOverlayViewCleanup()V
+Landroid/media/tv/TvInputService$Session;->selectTrack(ILjava/lang/String;)V
+Landroid/media/tv/TvInputService$Session;->setCaptionEnabled(Z)V
+Landroid/media/tv/TvInputService$Session;->setMain(Z)V
+Landroid/media/tv/TvInputService$Session;->setStreamVolume(F)V
+Landroid/media/tv/TvInputService$Session;->setSurface(Landroid/view/Surface;)V
+Landroid/media/tv/TvInputService$Session;->timeShiftEnablePositionTracking(Z)V
+Landroid/media/tv/TvInputService$Session;->timeShiftPause()V
+Landroid/media/tv/TvInputService$Session;->timeShiftPlay(Landroid/net/Uri;)V
+Landroid/media/tv/TvInputService$Session;->timeShiftResume()V
+Landroid/media/tv/TvInputService$Session;->timeShiftSeekTo(J)V
+Landroid/media/tv/TvInputService$Session;->timeShiftSetPlaybackParams(Landroid/media/PlaybackParams;)V
+Landroid/media/tv/TvInputService$Session;->tune(Landroid/net/Uri;Landroid/os/Bundle;)V
+Landroid/media/tv/TvInputService$Session;->unblockContent(Ljava/lang/String;)V
+Landroid/media/tv/TvInputService;->DEBUG:Z
+Landroid/media/tv/TvInputService;->DETACH_OVERLAY_VIEW_TIMEOUT_MS:I
+Landroid/media/tv/TvInputService;->isNavigationKey(I)Z
+Landroid/media/tv/TvInputService;->isPassthroughInput(Ljava/lang/String;)Z
+Landroid/media/tv/TvInputService;->mCallbacks:Landroid/os/RemoteCallbackList;
+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;
+Landroid/media/tv/TvRecordingClient$MySessionCallback;->onError(Landroid/media/tv/TvInputManager$Session;I)V
+Landroid/media/tv/TvRecordingClient$MySessionCallback;->onRecordingStopped(Landroid/media/tv/TvInputManager$Session;Landroid/net/Uri;)V
+Landroid/media/tv/TvRecordingClient$MySessionCallback;->onSessionCreated(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvRecordingClient$MySessionCallback;->onSessionEvent(Landroid/media/tv/TvInputManager$Session;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/tv/TvRecordingClient$MySessionCallback;->onSessionReleased(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvRecordingClient$MySessionCallback;->onTuned(Landroid/media/tv/TvInputManager$Session;Landroid/net/Uri;)V
+Landroid/media/tv/TvRecordingClient;->DEBUG:Z
+Landroid/media/tv/TvRecordingClient;->mCallback:Landroid/media/tv/TvRecordingClient$RecordingCallback;
+Landroid/media/tv/TvRecordingClient;->mHandler:Landroid/os/Handler;
+Landroid/media/tv/TvRecordingClient;->mIsRecordingStarted:Z
+Landroid/media/tv/TvRecordingClient;->mIsTuned:Z
+Landroid/media/tv/TvRecordingClient;->mPendingAppPrivateCommands:Ljava/util/Queue;
+Landroid/media/tv/TvRecordingClient;->mSession:Landroid/media/tv/TvInputManager$Session;
+Landroid/media/tv/TvRecordingClient;->mSessionCallback:Landroid/media/tv/TvRecordingClient$MySessionCallback;
+Landroid/media/tv/TvRecordingClient;->mTvInputManager:Landroid/media/tv/TvInputManager;
+Landroid/media/tv/TvRecordingClient;->resetInternal()V
+Landroid/media/tv/TvRecordingClient;->TAG:Ljava/lang/String;
+Landroid/media/tv/TvStreamConfig$Builder;->mGeneration:Ljava/lang/Integer;
+Landroid/media/tv/TvStreamConfig$Builder;->mMaxHeight:Ljava/lang/Integer;
+Landroid/media/tv/TvStreamConfig$Builder;->mMaxWidth:Ljava/lang/Integer;
+Landroid/media/tv/TvStreamConfig$Builder;->mStreamId:Ljava/lang/Integer;
+Landroid/media/tv/TvStreamConfig$Builder;->mType:Ljava/lang/Integer;
+Landroid/media/tv/TvStreamConfig;-><init>()V
+Landroid/media/tv/TvStreamConfig;->mGeneration:I
+Landroid/media/tv/TvStreamConfig;->mMaxHeight:I
+Landroid/media/tv/TvStreamConfig;->mMaxWidth:I
+Landroid/media/tv/TvStreamConfig;->mStreamId:I
+Landroid/media/tv/TvStreamConfig;->mType:I
+Landroid/media/tv/TvStreamConfig;->TAG:Ljava/lang/String;
+Landroid/media/tv/TvTrackInfo$Builder;->mAudioChannelCount:I
+Landroid/media/tv/TvTrackInfo$Builder;->mAudioSampleRate:I
+Landroid/media/tv/TvTrackInfo$Builder;->mDescription:Ljava/lang/CharSequence;
+Landroid/media/tv/TvTrackInfo$Builder;->mExtra:Landroid/os/Bundle;
+Landroid/media/tv/TvTrackInfo$Builder;->mId:Ljava/lang/String;
+Landroid/media/tv/TvTrackInfo$Builder;->mLanguage:Ljava/lang/String;
+Landroid/media/tv/TvTrackInfo$Builder;->mType:I
+Landroid/media/tv/TvTrackInfo$Builder;->mVideoActiveFormatDescription:B
+Landroid/media/tv/TvTrackInfo$Builder;->mVideoFrameRate:F
+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
+Landroid/media/tv/TvTrackInfo;->mAudioSampleRate:I
+Landroid/media/tv/TvTrackInfo;->mDescription:Ljava/lang/CharSequence;
+Landroid/media/tv/TvTrackInfo;->mExtra:Landroid/os/Bundle;
+Landroid/media/tv/TvTrackInfo;->mId:Ljava/lang/String;
+Landroid/media/tv/TvTrackInfo;->mLanguage:Ljava/lang/String;
+Landroid/media/tv/TvTrackInfo;->mType:I
+Landroid/media/tv/TvTrackInfo;->mVideoActiveFormatDescription:B
+Landroid/media/tv/TvTrackInfo;->mVideoFrameRate:F
+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;
+Landroid/media/tv/TvView$MySessionCallback;->mTuneParams:Landroid/os/Bundle;
+Landroid/media/tv/TvView$MySessionCallback;->onChannelRetuned(Landroid/media/tv/TvInputManager$Session;Landroid/net/Uri;)V
+Landroid/media/tv/TvView$MySessionCallback;->onContentAllowed(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvView$MySessionCallback;->onContentBlocked(Landroid/media/tv/TvInputManager$Session;Landroid/media/tv/TvContentRating;)V
+Landroid/media/tv/TvView$MySessionCallback;->onLayoutSurface(Landroid/media/tv/TvInputManager$Session;IIII)V
+Landroid/media/tv/TvView$MySessionCallback;->onSessionCreated(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvView$MySessionCallback;->onSessionEvent(Landroid/media/tv/TvInputManager$Session;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/media/tv/TvView$MySessionCallback;->onSessionReleased(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvView$MySessionCallback;->onTimeShiftCurrentPositionChanged(Landroid/media/tv/TvInputManager$Session;J)V
+Landroid/media/tv/TvView$MySessionCallback;->onTimeShiftStartPositionChanged(Landroid/media/tv/TvInputManager$Session;J)V
+Landroid/media/tv/TvView$MySessionCallback;->onTimeShiftStatusChanged(Landroid/media/tv/TvInputManager$Session;I)V
+Landroid/media/tv/TvView$MySessionCallback;->onTracksChanged(Landroid/media/tv/TvInputManager$Session;Ljava/util/List;)V
+Landroid/media/tv/TvView$MySessionCallback;->onTrackSelected(Landroid/media/tv/TvInputManager$Session;ILjava/lang/String;)V
+Landroid/media/tv/TvView$MySessionCallback;->onVideoAvailable(Landroid/media/tv/TvInputManager$Session;)V
+Landroid/media/tv/TvView$MySessionCallback;->onVideoSizeChanged(Landroid/media/tv/TvInputManager$Session;II)V
+Landroid/media/tv/TvView$MySessionCallback;->onVideoUnavailable(Landroid/media/tv/TvInputManager$Session;I)V
+Landroid/media/tv/TvView;->checkChangeHdmiCecActiveSourcePermission()Z
+Landroid/media/tv/TvView;->createSessionOverlayView()V
+Landroid/media/tv/TvView;->DEBUG:Z
+Landroid/media/tv/TvView;->dispatchSurfaceChanged(III)V
+Landroid/media/tv/TvView;->ensurePositionTracking()V
+Landroid/media/tv/TvView;->getViewFrameOnScreen()Landroid/graphics/Rect;
+Landroid/media/tv/TvView;->mAttrs:Landroid/util/AttributeSet;
+Landroid/media/tv/TvView;->mCallback:Landroid/media/tv/TvView$TvInputCallback;
+Landroid/media/tv/TvView;->mCaptionEnabled:Ljava/lang/Boolean;
+Landroid/media/tv/TvView;->mDefStyleAttr:I
+Landroid/media/tv/TvView;->mFinishedInputEventCallback:Landroid/media/tv/TvInputManager$Session$FinishedInputEventCallback;
+Landroid/media/tv/TvView;->mHandler:Landroid/os/Handler;
+Landroid/media/tv/TvView;->mOnUnhandledInputEventListener:Landroid/media/tv/TvView$OnUnhandledInputEventListener;
+Landroid/media/tv/TvView;->mOverlayViewCreated:Z
+Landroid/media/tv/TvView;->mOverlayViewFrame:Landroid/graphics/Rect;
+Landroid/media/tv/TvView;->mPendingAppPrivateCommands:Ljava/util/Queue;
+Landroid/media/tv/TvView;->mSession:Landroid/media/tv/TvInputManager$Session;
+Landroid/media/tv/TvView;->mSessionCallback:Landroid/media/tv/TvView$MySessionCallback;
+Landroid/media/tv/TvView;->mStreamVolume:Ljava/lang/Float;
+Landroid/media/tv/TvView;->mSurface:Landroid/view/Surface;
+Landroid/media/tv/TvView;->mSurfaceChanged:Z
+Landroid/media/tv/TvView;->mSurfaceFormat:I
+Landroid/media/tv/TvView;->mSurfaceHeight:I
+Landroid/media/tv/TvView;->mSurfaceHolderCallback:Landroid/view/SurfaceHolder$Callback;
+Landroid/media/tv/TvView;->mSurfaceView:Landroid/view/SurfaceView;
+Landroid/media/tv/TvView;->mSurfaceViewBottom:I
+Landroid/media/tv/TvView;->mSurfaceViewLeft:I
+Landroid/media/tv/TvView;->mSurfaceViewRight:I
+Landroid/media/tv/TvView;->mSurfaceViewTop:I
+Landroid/media/tv/TvView;->mSurfaceWidth:I
+Landroid/media/tv/TvView;->mTimeShiftPositionCallback:Landroid/media/tv/TvView$TimeShiftPositionCallback;
+Landroid/media/tv/TvView;->mTvInputManager:Landroid/media/tv/TvInputManager;
+Landroid/media/tv/TvView;->mUseRequestedSurfaceLayout:Z
+Landroid/media/tv/TvView;->mWindowZOrder:I
+Landroid/media/tv/TvView;->NULL_TV_VIEW:Ljava/lang/ref/WeakReference;
+Landroid/media/tv/TvView;->relayoutSessionOverlayView()V
+Landroid/media/tv/TvView;->removeSessionOverlayView()V
+Landroid/media/tv/TvView;->resetInternal()V
+Landroid/media/tv/TvView;->resetSurfaceView()V
+Landroid/media/tv/TvView;->setSessionSurface(Landroid/view/Surface;)V
+Landroid/media/tv/TvView;->sMainTvView:Ljava/lang/ref/WeakReference;
+Landroid/media/tv/TvView;->sMainTvViewLock:Ljava/lang/Object;
+Landroid/media/tv/TvView;->TAG:Ljava/lang/String;
+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
+Landroid/media/VolumePolicy;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/media/VolumePolicy;->DEFAULT:Landroid/media/VolumePolicy;
+Landroid/media/VolumePolicy;->doNotDisturbWhenSilent:Z
+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
+Landroid/media/VolumeProvider2;->getMaxVolume()I
+Landroid/media/VolumeProvider2;->getProvider()Landroid/media/update/VolumeProvider2Provider;
+Landroid/media/VolumeProvider2;->mProvider:Landroid/media/update/VolumeProvider2Provider;
+Landroid/media/VolumeProvider2;->onAdjustVolume(I)V
+Landroid/media/VolumeProvider2;->onSetVolumeTo(I)V
+Landroid/media/VolumeProvider2;->setCurrentVolume(I)V
+Landroid/media/VolumeProvider2;->VOLUME_CONTROL_ABSOLUTE:I
+Landroid/media/VolumeProvider2;->VOLUME_CONTROL_FIXED:I
+Landroid/media/VolumeProvider2;->VOLUME_CONTROL_RELATIVE:I
+Landroid/media/VolumeProvider;->mCallback:Landroid/media/VolumeProvider$Callback;
+Landroid/media/VolumeProvider;->mControlType:I
+Landroid/media/VolumeProvider;->mCurrentVolume:I
+Landroid/media/VolumeProvider;->mMaxVolume:I
+Landroid/media/VolumeProvider;->setCallback(Landroid/media/VolumeProvider$Callback;)V
+Landroid/media/VolumeShaper$Configuration$Builder;->mDurationMs:D
+Landroid/media/VolumeShaper$Configuration$Builder;->mId:I
+Landroid/media/VolumeShaper$Configuration$Builder;->mInterpolatorType:I
+Landroid/media/VolumeShaper$Configuration$Builder;->mOptionFlags:I
+Landroid/media/VolumeShaper$Configuration$Builder;->mTimes:[F
+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
+Landroid/media/VolumeShaper$Configuration;->checkValidVolumeAndThrowException(FZ)V
+Landroid/media/VolumeShaper$Configuration;->clampVolume([FZ)V
+Landroid/media/VolumeShaper$Configuration;->getAllOptionFlags()I
+Landroid/media/VolumeShaper$Configuration;->getId()I
+Landroid/media/VolumeShaper$Configuration;->getOptionFlags()I
+Landroid/media/VolumeShaper$Configuration;->getType()I
+Landroid/media/VolumeShaper$Configuration;->MAXIMUM_CURVE_POINTS:I
+Landroid/media/VolumeShaper$Configuration;->OPTION_FLAG_CLOCK_TIME:I
+Landroid/media/VolumeShaper$Configuration;->OPTION_FLAG_PUBLIC_ALL:I
+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;
+Landroid/media/VolumeShaper$Operation$Builder;->createIfNeeded()Landroid/media/VolumeShaper$Operation$Builder;
+Landroid/media/VolumeShaper$Operation$Builder;->defer()Landroid/media/VolumeShaper$Operation$Builder;
+Landroid/media/VolumeShaper$Operation$Builder;->mFlags:I
+Landroid/media/VolumeShaper$Operation$Builder;->mReplaceId:I
+Landroid/media/VolumeShaper$Operation$Builder;->mXOffset:F
+Landroid/media/VolumeShaper$Operation$Builder;->replace(IZ)Landroid/media/VolumeShaper$Operation$Builder;
+Landroid/media/VolumeShaper$Operation$Builder;->reverse()Landroid/media/VolumeShaper$Operation$Builder;
+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
+Landroid/media/VolumeShaper$Operation;->FLAG_NONE:I
+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
+Landroid/media/VolumeShaper;-><init>(Landroid/media/VolumeShaper$Configuration;Landroid/media/PlayerBase;)V
+Landroid/media/VolumeShaper;->applyPlayer(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
+Landroid/media/VolumeShaper;->getId()I
+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
+Landroid/media/WebVttRenderingWidget$CueLayout;->mActive:Z
+Landroid/media/WebVttRenderingWidget$CueLayout;->mCaptionStyle:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/media/WebVttRenderingWidget$CueLayout;->mCue:Landroid/media/TextTrackCue;
+Landroid/media/WebVttRenderingWidget$CueLayout;->measureForParent(II)V
+Landroid/media/WebVttRenderingWidget$CueLayout;->mFontSize:F
+Landroid/media/WebVttRenderingWidget$CueLayout;->mOrder:I
+Landroid/media/WebVttRenderingWidget$CueLayout;->prepForPrune()V
+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;
+Landroid/media/WebVttRenderingWidget$RegionLayout;->measureForParent(II)V
+Landroid/media/WebVttRenderingWidget$RegionLayout;->mFontSize:F
+Landroid/media/WebVttRenderingWidget$RegionLayout;->mRegion:Landroid/media/TextTrackRegion;
+Landroid/media/WebVttRenderingWidget$RegionLayout;->mRegionCueBoxes:Ljava/util/ArrayList;
+Landroid/media/WebVttRenderingWidget$RegionLayout;->prepForPrune()V
+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
+Landroid/media/WebVttRenderingWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/media/WebVttRenderingWidget;->calculateLinePosition(Landroid/media/WebVttRenderingWidget$CueLayout;)I
+Landroid/media/WebVttRenderingWidget;->DEBUG:Z
+Landroid/media/WebVttRenderingWidget;->DEBUG_CUE_BACKGROUND:I
+Landroid/media/WebVttRenderingWidget;->DEBUG_REGION_BACKGROUND:I
+Landroid/media/WebVttRenderingWidget;->DEFAULT_CAPTION_STYLE:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/media/WebVttRenderingWidget;->layoutCue(IILandroid/media/WebVttRenderingWidget$CueLayout;)V
+Landroid/media/WebVttRenderingWidget;->layoutRegion(IILandroid/media/WebVttRenderingWidget$RegionLayout;)V
+Landroid/media/WebVttRenderingWidget;->LINE_HEIGHT_RATIO:F
+Landroid/media/WebVttRenderingWidget;->manageChangeListener()V
+Landroid/media/WebVttRenderingWidget;->mCaptioningListener:Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;
+Landroid/media/WebVttRenderingWidget;->mCaptionStyle:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/media/WebVttRenderingWidget;->mCueBoxes:Landroid/util/ArrayMap;
+Landroid/media/WebVttRenderingWidget;->mFontSize:F
+Landroid/media/WebVttRenderingWidget;->mHasChangeListener:Z
+Landroid/media/WebVttRenderingWidget;->mListener:Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
+Landroid/media/WebVttRenderingWidget;->mManager:Landroid/view/accessibility/CaptioningManager;
+Landroid/media/WebVttRenderingWidget;->mRegionBoxes:Landroid/util/ArrayMap;
+Landroid/media/WebVttRenderingWidget;->prepForPrune()V
+Landroid/media/WebVttRenderingWidget;->prune()V
+Landroid/media/WebVttRenderingWidget;->resolveCueAlignment(II)I
+Landroid/media/WebVttRenderingWidget;->setActiveCues(Ljava/util/Vector;)V
+Landroid/media/WebVttRenderingWidget;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;F)V
+Landroid/media/WebVttRenderingWidget;->setOnChangedListener(Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;)V
+Landroid/media/WebVttRenderingWidget;->setSize(II)V
+Landroid/media/WebVttRenderingWidget;->setVisible(Z)V
+Landroid/metrics/LogMaker;->clearProcessId()Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->clearTimestamp()Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->clearUid()Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->entries:Landroid/util/SparseArray;
+Landroid/metrics/LogMaker;->MAX_SERIALIZED_SIZE:I
+Landroid/metrics/LogMaker;->setComponentName(Landroid/content/ComponentName;)Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->setCounterBucket(I)Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->setCounterBucket(J)Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->setCounterName(Ljava/lang/String;)Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->setCounterValue(I)Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->setLatency(J)Landroid/metrics/LogMaker;
+Landroid/metrics/LogMaker;->setProcessId(I)Landroid/metrics/LogMaker;
+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;
+Landroid/metrics/MetricsReader$Event;->getProcessId()I
+Landroid/metrics/MetricsReader$Event;->getTimeMillis()J
+Landroid/metrics/MetricsReader$Event;->getUid()I
+Landroid/metrics/MetricsReader$Event;->mData:Ljava/lang/Object;
+Landroid/metrics/MetricsReader$Event;->mPid:I
+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
+Landroid/metrics/MetricsReader;->LOGTAGS:[I
+Landroid/metrics/MetricsReader;->mCheckpointTag:I
+Landroid/metrics/MetricsReader;->mPendingQueue:Ljava/util/Queue;
+Landroid/metrics/MetricsReader;->mReader:Landroid/metrics/MetricsReader$LogReader;
+Landroid/metrics/MetricsReader;->mSeenQueue:Ljava/util/Queue;
+Landroid/metrics/MetricsReader;->setLogReader(Landroid/metrics/MetricsReader$LogReader;)V
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_ARTIST:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_BATTERY_LEVEL:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_BURST_INTERVAL:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_BURST_NUMBER:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_CAPTURE_DELAY:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_COMPRESSION_SETTING:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_CONTRAST:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_COPYRIGHT_INFO:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_DATETIME:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_DEVICE_ICON:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_DIGITAL_ZOOM:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_EFFECT_MODE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_EXPOSURE_BIAS_COMPENSATION:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_EXPOSURE_INDEX:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_EXPOSURE_METERING_MODE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_EXPOSURE_PROGRAM_MODE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_EXPOSURE_TIME:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_FLASH_MODE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_FOCAL_LENGTH:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_FOCUS_DISTANCE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_FOCUS_METERING_MODE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_FOCUS_MODE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_FUNCTIONAL_MODE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_F_NUMBER:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_IMAGE_SIZE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_PERCEIVED_DEVICE_TYPE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_PLAYBACK_CONTAINER_INDEX:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_PLAYBACK_OBJECT:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_PLAYBACK_RATE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_RGB_GAIN:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_SHARPNESS:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_STILL_CAPTURE_MODE:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_SUPPORTED_FORMATS_ORDERED:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_SYNCHRONIZATION_PARTNER:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_TIMELAPSE_INTERVAL:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_TIMELAPSE_NUMBER:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_UNDEFINED:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_UPLOAD_URL:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_VOLUME:I
+Landroid/mtp/MtpConstants;->DEVICE_PROPERTY_WHITE_BALANCE:I
+Landroid/mtp/MtpConstants;->FORMAT_HEIF:I
+Landroid/mtp/MtpConstants;->PROPERTY_ALBUM_ARTIST:I
+Landroid/mtp/MtpConstants;->PROPERTY_ALBUM_NAME:I
+Landroid/mtp/MtpConstants;->PROPERTY_ALLOWED_FOLDER_CONTENTS:I
+Landroid/mtp/MtpConstants;->PROPERTY_ARTIST:I
+Landroid/mtp/MtpConstants;->PROPERTY_ASSOCIATION_DESC:I
+Landroid/mtp/MtpConstants;->PROPERTY_ASSOCIATION_TYPE:I
+Landroid/mtp/MtpConstants;->PROPERTY_AUDIO_BITRATE:I
+Landroid/mtp/MtpConstants;->PROPERTY_AUDIO_BIT_DEPTH:I
+Landroid/mtp/MtpConstants;->PROPERTY_AUDIO_WAVE_CODEC:I
+Landroid/mtp/MtpConstants;->PROPERTY_BITRATE_TYPE:I
+Landroid/mtp/MtpConstants;->PROPERTY_BUFFER_SIZE:I
+Landroid/mtp/MtpConstants;->PROPERTY_COMPOSER:I
+Landroid/mtp/MtpConstants;->PROPERTY_COPYRIGHT_INFORMATION:I
+Landroid/mtp/MtpConstants;->PROPERTY_CORRUPT_UNPLAYABLE:I
+Landroid/mtp/MtpConstants;->PROPERTY_CREATED_BY:I
+Landroid/mtp/MtpConstants;->PROPERTY_CREDITS:I
+Landroid/mtp/MtpConstants;->PROPERTY_DATE_ADDED:I
+Landroid/mtp/MtpConstants;->PROPERTY_DATE_AUTHORED:I
+Landroid/mtp/MtpConstants;->PROPERTY_DATE_CREATED:I
+Landroid/mtp/MtpConstants;->PROPERTY_DATE_MODIFIED:I
+Landroid/mtp/MtpConstants;->PROPERTY_DESCRIPTION:I
+Landroid/mtp/MtpConstants;->PROPERTY_DISPLAY_NAME:I
+Landroid/mtp/MtpConstants;->PROPERTY_DRM_STATUS:I
+Landroid/mtp/MtpConstants;->PROPERTY_DURATION:I
+Landroid/mtp/MtpConstants;->PROPERTY_EFFECTIVE_RATING:I
+Landroid/mtp/MtpConstants;->PROPERTY_ENCODING_PROFILE:I
+Landroid/mtp/MtpConstants;->PROPERTY_ENCODING_QUALITY:I
+Landroid/mtp/MtpConstants;->PROPERTY_EXPOSURE_INDEX:I
+Landroid/mtp/MtpConstants;->PROPERTY_EXPOSURE_TIME:I
+Landroid/mtp/MtpConstants;->PROPERTY_FRAMES_PER_THOUSAND_SECONDS:I
+Landroid/mtp/MtpConstants;->PROPERTY_F_NUMBER:I
+Landroid/mtp/MtpConstants;->PROPERTY_GENRE:I
+Landroid/mtp/MtpConstants;->PROPERTY_HEIGHT:I
+Landroid/mtp/MtpConstants;->PROPERTY_HIDDEN:I
+Landroid/mtp/MtpConstants;->PROPERTY_IMAGE_BIT_DEPTH:I
+Landroid/mtp/MtpConstants;->PROPERTY_IS_COLOUR_CORRECTED:I
+Landroid/mtp/MtpConstants;->PROPERTY_IS_CROPPED:I
+Landroid/mtp/MtpConstants;->PROPERTY_KEYFRAME_DISTANCE:I
+Landroid/mtp/MtpConstants;->PROPERTY_KEYWORDS:I
+Landroid/mtp/MtpConstants;->PROPERTY_LANGUAGE_LOCALE:I
+Landroid/mtp/MtpConstants;->PROPERTY_LAST_ACCESSED:I
+Landroid/mtp/MtpConstants;->PROPERTY_LYRICS:I
+Landroid/mtp/MtpConstants;->PROPERTY_META_GENRE:I
+Landroid/mtp/MtpConstants;->PROPERTY_MOOD:I
+Landroid/mtp/MtpConstants;->PROPERTY_NAME:I
+Landroid/mtp/MtpConstants;->PROPERTY_NON_CONSUMABLE:I
+Landroid/mtp/MtpConstants;->PROPERTY_NUMBER_OF_CHANNELS:I
+Landroid/mtp/MtpConstants;->PROPERTY_OBJECT_FILE_NAME:I
+Landroid/mtp/MtpConstants;->PROPERTY_OBJECT_FORMAT:I
+Landroid/mtp/MtpConstants;->PROPERTY_OBJECT_SIZE:I
+Landroid/mtp/MtpConstants;->PROPERTY_ORIGINAL_RELEASE_DATE:I
+Landroid/mtp/MtpConstants;->PROPERTY_ORIGIN_LOCATION:I
+Landroid/mtp/MtpConstants;->PROPERTY_PARENTAL_RATING:I
+Landroid/mtp/MtpConstants;->PROPERTY_PARENT_OBJECT:I
+Landroid/mtp/MtpConstants;->PROPERTY_PERSISTENT_UID:I
+Landroid/mtp/MtpConstants;->PROPERTY_PRODUCED_BY:I
+Landroid/mtp/MtpConstants;->PROPERTY_PRODUCER_SERIAL_NUMBER:I
+Landroid/mtp/MtpConstants;->PROPERTY_PROPERTY_BAG:I
+Landroid/mtp/MtpConstants;->PROPERTY_PROTECTION_STATUS:I
+Landroid/mtp/MtpConstants;->PROPERTY_RATING:I
+Landroid/mtp/MtpConstants;->PROPERTY_REPRESENTATIVE_SAMPLE_DATA:I
+Landroid/mtp/MtpConstants;->PROPERTY_REPRESENTATIVE_SAMPLE_DURATION:I
+Landroid/mtp/MtpConstants;->PROPERTY_REPRESENTATIVE_SAMPLE_FORMAT:I
+Landroid/mtp/MtpConstants;->PROPERTY_REPRESENTATIVE_SAMPLE_HEIGHT:I
+Landroid/mtp/MtpConstants;->PROPERTY_REPRESENTATIVE_SAMPLE_SIZE:I
+Landroid/mtp/MtpConstants;->PROPERTY_REPRESENTATIVE_SAMPLE_WIDTH:I
+Landroid/mtp/MtpConstants;->PROPERTY_SAMPLE_RATE:I
+Landroid/mtp/MtpConstants;->PROPERTY_SCAN_TYPE:I
+Landroid/mtp/MtpConstants;->PROPERTY_SKIP_COUNT:I
+Landroid/mtp/MtpConstants;->PROPERTY_SOURCE:I
+Landroid/mtp/MtpConstants;->PROPERTY_STORAGE_ID:I
+Landroid/mtp/MtpConstants;->PROPERTY_SUBSCRIPTION_CONTENT_ID:I
+Landroid/mtp/MtpConstants;->PROPERTY_SUBTITLE:I
+Landroid/mtp/MtpConstants;->PROPERTY_SUB_DESCRIPTION:I
+Landroid/mtp/MtpConstants;->PROPERTY_SYNC_ID:I
+Landroid/mtp/MtpConstants;->PROPERTY_SYSTEM_OBJECT:I
+Landroid/mtp/MtpConstants;->PROPERTY_TOTAL_BITRATE:I
+Landroid/mtp/MtpConstants;->PROPERTY_TRACK:I
+Landroid/mtp/MtpConstants;->PROPERTY_URL_REFERENCE:I
+Landroid/mtp/MtpConstants;->PROPERTY_USE_COUNT:I
+Landroid/mtp/MtpConstants;->PROPERTY_VIDEO_BITRATE:I
+Landroid/mtp/MtpConstants;->PROPERTY_VIDEO_FOURCC_CODEC:I
+Landroid/mtp/MtpConstants;->PROPERTY_WIDTH:I
+Landroid/mtp/MtpConstants;->RESPONSE_ACCESS_DENIED:I
+Landroid/mtp/MtpConstants;->RESPONSE_CAPTURE_ALREADY_TERMINATED:I
+Landroid/mtp/MtpConstants;->RESPONSE_DEVICE_BUSY:I
+Landroid/mtp/MtpConstants;->RESPONSE_DEVICE_PROP_NOT_SUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_GENERAL_ERROR:I
+Landroid/mtp/MtpConstants;->RESPONSE_GROUP_NOT_SUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_INCOMPLETE_TRANSFER:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_CODE_FORMAT:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_DATASET:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_DEVICE_PROP_FORMAT:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_DEVICE_PROP_VALUE:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_OBJECT_FORMAT_CODE:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_OBJECT_HANDLE:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_OBJECT_PROP_CODE:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_OBJECT_PROP_FORMAT:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_OBJECT_PROP_VALUE:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_OBJECT_REFERENCE:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_PARAMETER:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_PARENT_OBJECT:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_STORAGE_ID:I
+Landroid/mtp/MtpConstants;->RESPONSE_INVALID_TRANSACTION_ID:I
+Landroid/mtp/MtpConstants;->RESPONSE_NO_THUMBNAIL_PRESENT:I
+Landroid/mtp/MtpConstants;->RESPONSE_NO_VALID_OBJECT_INFO:I
+Landroid/mtp/MtpConstants;->RESPONSE_OBJECT_PROP_NOT_SUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_OBJECT_TOO_LARGE:I
+Landroid/mtp/MtpConstants;->RESPONSE_OBJECT_WRITE_PROTECTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_OK:I
+Landroid/mtp/MtpConstants;->RESPONSE_OPERATION_NOT_SUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_PARAMETER_NOT_SUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_PARTIAL_DELETION:I
+Landroid/mtp/MtpConstants;->RESPONSE_SELF_TEST_FAILED:I
+Landroid/mtp/MtpConstants;->RESPONSE_SESSION_ALREADY_OPEN:I
+Landroid/mtp/MtpConstants;->RESPONSE_SESSION_NOT_OPEN:I
+Landroid/mtp/MtpConstants;->RESPONSE_SPECIFICATION_BY_DEPTH_UNSUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_SPECIFICATION_BY_FORMAT_UNSUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_SPECIFICATION_BY_GROUP_UNSUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_SPECIFICATION_OF_DESTINATION_UNSUPPORTED:I
+Landroid/mtp/MtpConstants;->RESPONSE_STORAGE_FULL:I
+Landroid/mtp/MtpConstants;->RESPONSE_STORE_NOT_AVAILABLE:I
+Landroid/mtp/MtpConstants;->RESPONSE_STORE_READ_ONLY:I
+Landroid/mtp/MtpConstants;->RESPONSE_TRANSACTION_CANCELLED:I
+Landroid/mtp/MtpConstants;->RESPONSE_UNDEFINED:I
+Landroid/mtp/MtpConstants;->RESPONSE_UNKNOWN_VENDOR_CODE:I
+Landroid/mtp/MtpConstants;->TYPE_AINT128:I
+Landroid/mtp/MtpConstants;->TYPE_AINT16:I
+Landroid/mtp/MtpConstants;->TYPE_AINT32:I
+Landroid/mtp/MtpConstants;->TYPE_AINT64:I
+Landroid/mtp/MtpConstants;->TYPE_AINT8:I
+Landroid/mtp/MtpConstants;->TYPE_AUINT128:I
+Landroid/mtp/MtpConstants;->TYPE_AUINT16:I
+Landroid/mtp/MtpConstants;->TYPE_AUINT32:I
+Landroid/mtp/MtpConstants;->TYPE_AUINT64:I
+Landroid/mtp/MtpConstants;->TYPE_AUINT8:I
+Landroid/mtp/MtpConstants;->TYPE_INT128:I
+Landroid/mtp/MtpConstants;->TYPE_INT16:I
+Landroid/mtp/MtpConstants;->TYPE_INT32:I
+Landroid/mtp/MtpConstants;->TYPE_INT64:I
+Landroid/mtp/MtpConstants;->TYPE_INT8:I
+Landroid/mtp/MtpConstants;->TYPE_STR:I
+Landroid/mtp/MtpConstants;->TYPE_UINT128:I
+Landroid/mtp/MtpConstants;->TYPE_UINT16:I
+Landroid/mtp/MtpConstants;->TYPE_UINT32:I
+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
+Landroid/mtp/MtpDatabase;->beginCopyObject(III)I
+Landroid/mtp/MtpDatabase;->beginDeleteObject(I)I
+Landroid/mtp/MtpDatabase;->beginMoveObject(III)I
+Landroid/mtp/MtpDatabase;->beginSendObject(Ljava/lang/String;III)I
+Landroid/mtp/MtpDatabase;->deleteFromMedia(Ljava/nio/file/Path;Z)V
+Landroid/mtp/MtpDatabase;->DEVICE_PROPERTIES:[I
+Landroid/mtp/MtpDatabase;->endCopyObject(IZ)V
+Landroid/mtp/MtpDatabase;->endDeleteObject(IZ)V
+Landroid/mtp/MtpDatabase;->endMoveObject(IIIIIZ)V
+Landroid/mtp/MtpDatabase;->endSendObject(IZ)V
+Landroid/mtp/MtpDatabase;->FILE_PROPERTIES:[I
+Landroid/mtp/MtpDatabase;->findInMedia(Ljava/nio/file/Path;)I
+Landroid/mtp/MtpDatabase;->getDeviceProperty(I[J[C)I
+Landroid/mtp/MtpDatabase;->getNumObjects(III)I
+Landroid/mtp/MtpDatabase;->getObjectFilePath(I[C[J)I
+Landroid/mtp/MtpDatabase;->getObjectFormat(I)I
+Landroid/mtp/MtpDatabase;->getObjectInfo(I[I[C[J)Z
+Landroid/mtp/MtpDatabase;->getObjectList(III)[I
+Landroid/mtp/MtpDatabase;->getObjectPropertyList(IIIII)Landroid/mtp/MtpPropertyList;
+Landroid/mtp/MtpDatabase;->getObjectReferences(I)[I
+Landroid/mtp/MtpDatabase;->getSupportedCaptureFormats()[I
+Landroid/mtp/MtpDatabase;->getSupportedDeviceProperties()[I
+Landroid/mtp/MtpDatabase;->getSupportedObjectProperties(I)[I
+Landroid/mtp/MtpDatabase;->getSupportedPlaybackFormats()[I
+Landroid/mtp/MtpDatabase;->ID_PROJECTION:[Ljava/lang/String;
+Landroid/mtp/MtpDatabase;->IMAGE_PROPERTIES:[I
+Landroid/mtp/MtpDatabase;->initDeviceProperties(Landroid/content/Context;)V
+Landroid/mtp/MtpDatabase;->mBatteryLevel:I
+Landroid/mtp/MtpDatabase;->mBatteryReceiver:Landroid/content/BroadcastReceiver;
+Landroid/mtp/MtpDatabase;->mBatteryScale:I
+Landroid/mtp/MtpDatabase;->mClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/mtp/MtpDatabase;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/mtp/MtpDatabase;->mContext:Landroid/content/Context;
+Landroid/mtp/MtpDatabase;->mDeviceProperties:Landroid/content/SharedPreferences;
+Landroid/mtp/MtpDatabase;->mDeviceType:I
+Landroid/mtp/MtpDatabase;->mManager:Landroid/mtp/MtpStorageManager;
+Landroid/mtp/MtpDatabase;->mMediaProvider:Landroid/content/ContentProviderClient;
+Landroid/mtp/MtpDatabase;->mMediaScanner:Landroid/media/MediaScanner;
+Landroid/mtp/MtpDatabase;->mNativeContext:J
+Landroid/mtp/MtpDatabase;->mObjectsUri:Landroid/net/Uri;
+Landroid/mtp/MtpDatabase;->mPropertyGroupsByFormat:Ljava/util/HashMap;
+Landroid/mtp/MtpDatabase;->mPropertyGroupsByProperty:Ljava/util/HashMap;
+Landroid/mtp/MtpDatabase;->mServer:Landroid/mtp/MtpServer;
+Landroid/mtp/MtpDatabase;->mStorageMap:Ljava/util/HashMap;
+Landroid/mtp/MtpDatabase;->mVolumeName:Ljava/lang/String;
+Landroid/mtp/MtpDatabase;->native_finalize()V
+Landroid/mtp/MtpDatabase;->native_setup()V
+Landroid/mtp/MtpDatabase;->NO_MEDIA:Ljava/lang/String;
+Landroid/mtp/MtpDatabase;->PATH_PROJECTION:[Ljava/lang/String;
+Landroid/mtp/MtpDatabase;->PATH_WHERE:Ljava/lang/String;
+Landroid/mtp/MtpDatabase;->PLAYBACK_FORMATS:[I
+Landroid/mtp/MtpDatabase;->removeStorage(Landroid/os/storage/StorageVolume;)V
+Landroid/mtp/MtpDatabase;->renameFile(ILjava/lang/String;)I
+Landroid/mtp/MtpDatabase;->rescanFile(Ljava/lang/String;II)V
+Landroid/mtp/MtpDatabase;->setDeviceProperty(IJLjava/lang/String;)I
+Landroid/mtp/MtpDatabase;->setObjectProperty(IIJLjava/lang/String;)I
+Landroid/mtp/MtpDatabase;->setObjectReferences(I[I)I
+Landroid/mtp/MtpDatabase;->setServer(Landroid/mtp/MtpServer;)V
+Landroid/mtp/MtpDatabase;->TAG:Ljava/lang/String;
+Landroid/mtp/MtpDatabase;->VIDEO_PROPERTIES:[I
+Landroid/mtp/MtpDevice;->getObjectSizeLong(II)J
+Landroid/mtp/MtpDevice;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/mtp/MtpDevice;->mConnection:Landroid/hardware/usb/UsbDeviceConnection;
+Landroid/mtp/MtpDevice;->mDevice:Landroid/hardware/usb/UsbDevice;
+Landroid/mtp/MtpDevice;->mLock:Ljava/lang/Object;
+Landroid/mtp/MtpDevice;->mNativeContext:J
+Landroid/mtp/MtpDevice;->native_close()V
+Landroid/mtp/MtpDevice;->native_delete_object(I)Z
+Landroid/mtp/MtpDevice;->native_discard_event_request(I)V
+Landroid/mtp/MtpDevice;->native_get_device_info()Landroid/mtp/MtpDeviceInfo;
+Landroid/mtp/MtpDevice;->native_get_object(IJ)[B
+Landroid/mtp/MtpDevice;->native_get_object_handles(III)[I
+Landroid/mtp/MtpDevice;->native_get_object_info(I)Landroid/mtp/MtpObjectInfo;
+Landroid/mtp/MtpDevice;->native_get_object_size_long(II)J
+Landroid/mtp/MtpDevice;->native_get_parent(I)I
+Landroid/mtp/MtpDevice;->native_get_partial_object(IJJ[B)J
+Landroid/mtp/MtpDevice;->native_get_partial_object_64(IJJ[B)I
+Landroid/mtp/MtpDevice;->native_get_storage_id(I)I
+Landroid/mtp/MtpDevice;->native_get_storage_ids()[I
+Landroid/mtp/MtpDevice;->native_get_storage_info(I)Landroid/mtp/MtpStorageInfo;
+Landroid/mtp/MtpDevice;->native_get_thumbnail(I)[B
+Landroid/mtp/MtpDevice;->native_import_file(II)Z
+Landroid/mtp/MtpDevice;->native_import_file(ILjava/lang/String;)Z
+Landroid/mtp/MtpDevice;->native_open(Ljava/lang/String;I)Z
+Landroid/mtp/MtpDevice;->native_reap_event_request(I)Landroid/mtp/MtpEvent;
+Landroid/mtp/MtpDevice;->native_send_object(IJI)Z
+Landroid/mtp/MtpDevice;->native_send_object_info(Landroid/mtp/MtpObjectInfo;)Landroid/mtp/MtpObjectInfo;
+Landroid/mtp/MtpDevice;->native_submit_event_request()I
+Landroid/mtp/MtpDevice;->TAG:Ljava/lang/String;
+Landroid/mtp/MtpDeviceInfo;-><init>()V
+Landroid/mtp/MtpDeviceInfo;->isSupported([II)Z
+Landroid/mtp/MtpDeviceInfo;->mEventsSupported:[I
+Landroid/mtp/MtpDeviceInfo;->mManufacturer:Ljava/lang/String;
+Landroid/mtp/MtpDeviceInfo;->mModel:Ljava/lang/String;
+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
+Landroid/mtp/MtpEvent;->mParameter1:I
+Landroid/mtp/MtpEvent;->mParameter2:I
+Landroid/mtp/MtpEvent;->mParameter3:I
+Landroid/mtp/MtpObjectInfo$Builder;->mObjectInfo:Landroid/mtp/MtpObjectInfo;
+Landroid/mtp/MtpObjectInfo;-><init>()V
+Landroid/mtp/MtpObjectInfo;->longToUint32(JLjava/lang/String;)I
+Landroid/mtp/MtpObjectInfo;->mAssociationDesc:I
+Landroid/mtp/MtpObjectInfo;->mAssociationType:I
+Landroid/mtp/MtpObjectInfo;->mCompressedSize:I
+Landroid/mtp/MtpObjectInfo;->mDateCreated:J
+Landroid/mtp/MtpObjectInfo;->mDateModified:J
+Landroid/mtp/MtpObjectInfo;->mFormat:I
+Landroid/mtp/MtpObjectInfo;->mHandle:I
+Landroid/mtp/MtpObjectInfo;->mImagePixDepth:I
+Landroid/mtp/MtpObjectInfo;->mImagePixHeight:I
+Landroid/mtp/MtpObjectInfo;->mImagePixWidth:I
+Landroid/mtp/MtpObjectInfo;->mKeywords:Ljava/lang/String;
+Landroid/mtp/MtpObjectInfo;->mName:Ljava/lang/String;
+Landroid/mtp/MtpObjectInfo;->mParent:I
+Landroid/mtp/MtpObjectInfo;->mProtectionStatus:I
+Landroid/mtp/MtpObjectInfo;->mSequenceNumber:I
+Landroid/mtp/MtpObjectInfo;->mStorageId:I
+Landroid/mtp/MtpObjectInfo;->mThumbCompressedSize:I
+Landroid/mtp/MtpObjectInfo;->mThumbFormat:I
+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;
+Landroid/mtp/MtpPropertyGroup;->getPropertyList(Landroid/mtp/MtpStorageManager$MtpObject;Landroid/mtp/MtpPropertyList;)I
+Landroid/mtp/MtpPropertyGroup;->mColumns:[Ljava/lang/String;
+Landroid/mtp/MtpPropertyGroup;->mProperties:[Landroid/mtp/MtpPropertyGroup$Property;
+Landroid/mtp/MtpPropertyGroup;->mProvider:Landroid/content/ContentProviderClient;
+Landroid/mtp/MtpPropertyGroup;->mUri:Landroid/net/Uri;
+Landroid/mtp/MtpPropertyGroup;->mVolumeName:Ljava/lang/String;
+Landroid/mtp/MtpPropertyGroup;->PATH_WHERE:Ljava/lang/String;
+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
+Landroid/mtp/MtpPropertyList;->getDataTypes()[I
+Landroid/mtp/MtpPropertyList;->getLongValues()[J
+Landroid/mtp/MtpPropertyList;->getObjectHandles()[I
+Landroid/mtp/MtpPropertyList;->getPropertyCodes()[I
+Landroid/mtp/MtpPropertyList;->getStringValues()[Ljava/lang/String;
+Landroid/mtp/MtpPropertyList;->mCode:I
+Landroid/mtp/MtpPropertyList;->mDataTypes:Ljava/util/List;
+Landroid/mtp/MtpPropertyList;->mLongValues:Ljava/util/List;
+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
+Landroid/mtp/MtpServer;->mDatabase:Landroid/mtp/MtpDatabase;
+Landroid/mtp/MtpServer;->mNativeContext:J
+Landroid/mtp/MtpServer;->mOnTerminate:Ljava/lang/Runnable;
+Landroid/mtp/MtpServer;->native_add_storage(Landroid/mtp/MtpStorage;)V
+Landroid/mtp/MtpServer;->native_cleanup()V
+Landroid/mtp/MtpServer;->native_configure(Z)V
+Landroid/mtp/MtpServer;->native_remove_storage(I)V
+Landroid/mtp/MtpServer;->native_run()V
+Landroid/mtp/MtpServer;->native_send_device_property_changed(I)V
+Landroid/mtp/MtpServer;->native_send_object_added(I)V
+Landroid/mtp/MtpServer;->native_send_object_removed(I)V
+Landroid/mtp/MtpServer;->native_setup(Landroid/mtp/MtpDatabase;Ljava/io/FileDescriptor;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/mtp/MtpServer;->removeStorage(Landroid/mtp/MtpStorage;)V
+Landroid/mtp/MtpServer;->sendDevicePropertyChanged(I)V
+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
+Landroid/mtp/MtpStorage;->isRemovable()Z
+Landroid/mtp/MtpStorage;->mDescription:Ljava/lang/String;
+Landroid/mtp/MtpStorage;->mMaxFileSize:J
+Landroid/mtp/MtpStorage;->mPath:Ljava/lang/String;
+Landroid/mtp/MtpStorage;->mRemovable:Z
+Landroid/mtp/MtpStorage;->mStorageId:I
+Landroid/mtp/MtpStorageInfo;-><init>()V
+Landroid/mtp/MtpStorageInfo;->mDescription:Ljava/lang/String;
+Landroid/mtp/MtpStorageInfo;->mFreeSpace:J
+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;
+Landroid/mtp/MtpStorageManager$MtpObject;->exists()Z
+Landroid/mtp/MtpStorageManager$MtpObject;->getChild(Ljava/lang/String;)Landroid/mtp/MtpStorageManager$MtpObject;
+Landroid/mtp/MtpStorageManager$MtpObject;->getChildren()Ljava/util/Collection;
+Landroid/mtp/MtpStorageManager$MtpObject;->getFormat()I
+Landroid/mtp/MtpStorageManager$MtpObject;->getId()I
+Landroid/mtp/MtpStorageManager$MtpObject;->getModifiedTime()J
+Landroid/mtp/MtpStorageManager$MtpObject;->getName()Ljava/lang/String;
+Landroid/mtp/MtpStorageManager$MtpObject;->getObserver()Landroid/os/FileObserver;
+Landroid/mtp/MtpStorageManager$MtpObject;->getOperation()Landroid/mtp/MtpStorageManager$MtpOperation;
+Landroid/mtp/MtpStorageManager$MtpObject;->getParent()Landroid/mtp/MtpStorageManager$MtpObject;
+Landroid/mtp/MtpStorageManager$MtpObject;->getPath()Ljava/nio/file/Path;
+Landroid/mtp/MtpStorageManager$MtpObject;->getRoot()Landroid/mtp/MtpStorageManager$MtpObject;
+Landroid/mtp/MtpStorageManager$MtpObject;->getSize()J
+Landroid/mtp/MtpStorageManager$MtpObject;->getState()Landroid/mtp/MtpStorageManager$MtpObjectState;
+Landroid/mtp/MtpStorageManager$MtpObject;->getStorageId()I
+Landroid/mtp/MtpStorageManager$MtpObject;->isDir()Z
+Landroid/mtp/MtpStorageManager$MtpObject;->isRoot()Z
+Landroid/mtp/MtpStorageManager$MtpObject;->isVisited()Z
+Landroid/mtp/MtpStorageManager$MtpObject;->mChildren:Ljava/util/HashMap;
+Landroid/mtp/MtpStorageManager$MtpObject;->mId:I
+Landroid/mtp/MtpStorageManager$MtpObject;->mIsDir:Z
+Landroid/mtp/MtpStorageManager$MtpObject;->mName:Ljava/lang/String;
+Landroid/mtp/MtpStorageManager$MtpObject;->mObserver:Landroid/os/FileObserver;
+Landroid/mtp/MtpStorageManager$MtpObject;->mOp:Landroid/mtp/MtpStorageManager$MtpOperation;
+Landroid/mtp/MtpStorageManager$MtpObject;->mParent:Landroid/mtp/MtpStorageManager$MtpObject;
+Landroid/mtp/MtpStorageManager$MtpObject;->mState:Landroid/mtp/MtpStorageManager$MtpObjectState;
+Landroid/mtp/MtpStorageManager$MtpObject;->mVisited:Z
+Landroid/mtp/MtpStorageManager$MtpObject;->setDir(Z)V
+Landroid/mtp/MtpStorageManager$MtpObject;->setId(I)V
+Landroid/mtp/MtpStorageManager$MtpObject;->setName(Ljava/lang/String;)V
+Landroid/mtp/MtpStorageManager$MtpObject;->setObserver(Landroid/os/FileObserver;)V
+Landroid/mtp/MtpStorageManager$MtpObject;->setOperation(Landroid/mtp/MtpStorageManager$MtpOperation;)V
+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;
+Landroid/mtp/MtpStorageManager$MtpObjectState;->FROZEN_ONESHOT_DEL:Landroid/mtp/MtpStorageManager$MtpObjectState;
+Landroid/mtp/MtpStorageManager$MtpObjectState;->FROZEN_REMOVED:Landroid/mtp/MtpStorageManager$MtpObjectState;
+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;
+Landroid/mtp/MtpStorageManager$MtpOperation;->NONE:Landroid/mtp/MtpStorageManager$MtpOperation;
+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;
+Landroid/mtp/MtpStorageManager;->beginCopyObject(Landroid/mtp/MtpStorageManager$MtpObject;Landroid/mtp/MtpStorageManager$MtpObject;)I
+Landroid/mtp/MtpStorageManager;->beginMoveObject(Landroid/mtp/MtpStorageManager$MtpObject;Landroid/mtp/MtpStorageManager$MtpObject;)Z
+Landroid/mtp/MtpStorageManager;->beginRemoveObject(Landroid/mtp/MtpStorageManager$MtpObject;)Z
+Landroid/mtp/MtpStorageManager;->beginRenameObject(Landroid/mtp/MtpStorageManager$MtpObject;Ljava/lang/String;)Z
+Landroid/mtp/MtpStorageManager;->beginSendObject(Landroid/mtp/MtpStorageManager$MtpObject;Ljava/lang/String;I)I
+Landroid/mtp/MtpStorageManager;->checkConsistency()Z
+Landroid/mtp/MtpStorageManager;->close()V
+Landroid/mtp/MtpStorageManager;->dump()V
+Landroid/mtp/MtpStorageManager;->endCopyObject(Landroid/mtp/MtpStorageManager$MtpObject;Z)Z
+Landroid/mtp/MtpStorageManager;->endMoveObject(Landroid/mtp/MtpStorageManager$MtpObject;Landroid/mtp/MtpStorageManager$MtpObject;Ljava/lang/String;Z)Z
+Landroid/mtp/MtpStorageManager;->endRemoveObject(Landroid/mtp/MtpStorageManager$MtpObject;Z)Z
+Landroid/mtp/MtpStorageManager;->endRenameObject(Landroid/mtp/MtpStorageManager$MtpObject;Ljava/lang/String;Z)Z
+Landroid/mtp/MtpStorageManager;->endSendObject(Landroid/mtp/MtpStorageManager$MtpObject;Z)Z
+Landroid/mtp/MtpStorageManager;->flushEvents()V
+Landroid/mtp/MtpStorageManager;->generalBeginCopyObject(Landroid/mtp/MtpStorageManager$MtpObject;Z)Z
+Landroid/mtp/MtpStorageManager;->generalBeginRemoveObject(Landroid/mtp/MtpStorageManager$MtpObject;Landroid/mtp/MtpStorageManager$MtpOperation;)Z
+Landroid/mtp/MtpStorageManager;->generalBeginRenameObject(Landroid/mtp/MtpStorageManager$MtpObject;Landroid/mtp/MtpStorageManager$MtpObject;)Z
+Landroid/mtp/MtpStorageManager;->generalEndAddObject(Landroid/mtp/MtpStorageManager$MtpObject;ZZ)Z
+Landroid/mtp/MtpStorageManager;->generalEndCopyObject(Landroid/mtp/MtpStorageManager$MtpObject;ZZ)Z
+Landroid/mtp/MtpStorageManager;->generalEndRemoveObject(Landroid/mtp/MtpStorageManager$MtpObject;ZZ)Z
+Landroid/mtp/MtpStorageManager;->generalEndRenameObject(Landroid/mtp/MtpStorageManager$MtpObject;Landroid/mtp/MtpStorageManager$MtpObject;Z)Z
+Landroid/mtp/MtpStorageManager;->getByPath(Ljava/lang/String;)Landroid/mtp/MtpStorageManager$MtpObject;
+Landroid/mtp/MtpStorageManager;->getChildren(Landroid/mtp/MtpStorageManager$MtpObject;)Ljava/util/Collection;
+Landroid/mtp/MtpStorageManager;->getNextObjectId()I
+Landroid/mtp/MtpStorageManager;->getNextStorageId()I
+Landroid/mtp/MtpStorageManager;->getObject(I)Landroid/mtp/MtpStorageManager$MtpObject;
+Landroid/mtp/MtpStorageManager;->getObjects(III)Ljava/util/stream/Stream;
+Landroid/mtp/MtpStorageManager;->getObjects(Landroid/mtp/MtpStorageManager$MtpObject;IZ)Ljava/util/stream/Stream;
+Landroid/mtp/MtpStorageManager;->getStorageRoot(I)Landroid/mtp/MtpStorageManager$MtpObject;
+Landroid/mtp/MtpStorageManager;->handleAddedObject(Landroid/mtp/MtpStorageManager$MtpObject;Ljava/lang/String;Z)V
+Landroid/mtp/MtpStorageManager;->handleRemovedObject(Landroid/mtp/MtpStorageManager$MtpObject;)V
+Landroid/mtp/MtpStorageManager;->IN_IGNORED:I
+Landroid/mtp/MtpStorageManager;->IN_ISDIR:I
+Landroid/mtp/MtpStorageManager;->IN_ONLYDIR:I
+Landroid/mtp/MtpStorageManager;->IN_Q_OVERFLOW:I
+Landroid/mtp/MtpStorageManager;->isSpecialSubDir(Landroid/mtp/MtpStorageManager$MtpObject;)Z
+Landroid/mtp/MtpStorageManager;->mCheckConsistency:Z
+Landroid/mtp/MtpStorageManager;->mConsistencyThread:Ljava/lang/Thread;
+Landroid/mtp/MtpStorageManager;->mMtpNotifier:Landroid/mtp/MtpStorageManager$MtpNotifier;
+Landroid/mtp/MtpStorageManager;->mNextObjectId:I
+Landroid/mtp/MtpStorageManager;->mNextStorageId:I
+Landroid/mtp/MtpStorageManager;->mObjects:Ljava/util/HashMap;
+Landroid/mtp/MtpStorageManager;->mRoots:Ljava/util/HashMap;
+Landroid/mtp/MtpStorageManager;->mSubdirectories:Ljava/util/Set;
+Landroid/mtp/MtpStorageManager;->removeMtpStorage(Landroid/mtp/MtpStorage;)V
+Landroid/mtp/MtpStorageManager;->removeObjectFromCache(Landroid/mtp/MtpStorageManager$MtpObject;ZZ)Z
+Landroid/mtp/MtpStorageManager;->sDebug:Z
+Landroid/mtp/MtpStorageManager;->setSubdirectories(Ljava/util/Set;)V
+Landroid/mtp/MtpStorageManager;->TAG:Ljava/lang/String;
+Landroid/net/CaptivePortal;-><init>(Landroid/os/IBinder;)V
+Landroid/net/CaptivePortal;->APP_RETURN_DISMISSED:I
+Landroid/net/CaptivePortal;->APP_RETURN_UNWANTED:I
+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;
+Landroid/net/ConnectivityManager$LegacyRequest;->delay:I
+Landroid/net/ConnectivityManager$LegacyRequest;->expireSequenceNumber:I
+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
+Landroid/net/ConnectivityManager$PacketKeepalive;->ERROR_INVALID_INTERVAL:I
+Landroid/net/ConnectivityManager$PacketKeepalive;->ERROR_INVALID_IP_ADDRESS:I
+Landroid/net/ConnectivityManager$PacketKeepalive;->ERROR_INVALID_LENGTH:I
+Landroid/net/ConnectivityManager$PacketKeepalive;->ERROR_INVALID_NETWORK:I
+Landroid/net/ConnectivityManager$PacketKeepalive;->ERROR_INVALID_PORT:I
+Landroid/net/ConnectivityManager$PacketKeepalive;->mCallback:Landroid/net/ConnectivityManager$PacketKeepaliveCallback;
+Landroid/net/ConnectivityManager$PacketKeepalive;->MIN_INTERVAL:I
+Landroid/net/ConnectivityManager$PacketKeepalive;->mLooper:Landroid/os/Looper;
+Landroid/net/ConnectivityManager$PacketKeepalive;->mMessenger:Landroid/os/Messenger;
+Landroid/net/ConnectivityManager$PacketKeepalive;->mNetwork:Landroid/net/Network;
+Landroid/net/ConnectivityManager$PacketKeepalive;->mSlot:Ljava/lang/Integer;
+Landroid/net/ConnectivityManager$PacketKeepalive;->NATT_PORT:I
+Landroid/net/ConnectivityManager$PacketKeepalive;->NO_KEEPALIVE:I
+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;
+Landroid/net/ConnectivityManager;->ACTION_DATA_ACTIVITY_CHANGE:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->ACTION_PROMPT_LOST_VALIDATION:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->ACTION_PROMPT_UNVALIDATED:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->ALREADY_UNREGISTERED:Landroid/net/NetworkRequest;
+Landroid/net/ConnectivityManager;->BASE:I
+Landroid/net/ConnectivityManager;->CALLBACK_AVAILABLE:I
+Landroid/net/ConnectivityManager;->CALLBACK_CAP_CHANGED:I
+Landroid/net/ConnectivityManager;->CALLBACK_IP_CHANGED:I
+Landroid/net/ConnectivityManager;->CALLBACK_LOSING:I
+Landroid/net/ConnectivityManager;->CALLBACK_LOST:I
+Landroid/net/ConnectivityManager;->CALLBACK_PRECHECK:I
+Landroid/net/ConnectivityManager;->CALLBACK_RESUMED:I
+Landroid/net/ConnectivityManager;->CALLBACK_SUSPENDED:I
+Landroid/net/ConnectivityManager;->CALLBACK_UNAVAIL:I
+Landroid/net/ConnectivityManager;->checkCallbackNotNull(Landroid/net/ConnectivityManager$NetworkCallback;)V
+Landroid/net/ConnectivityManager;->checkLegacyRoutingApiAccess()V
+Landroid/net/ConnectivityManager;->checkMobileProvisioning(I)I
+Landroid/net/ConnectivityManager;->checkPendingIntentNotNull(Landroid/app/PendingIntent;)V
+Landroid/net/ConnectivityManager;->checkTimeout(I)V
+Landroid/net/ConnectivityManager;->CONNECTIVITY_ACTION_SUPL:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->convertServiceException(Landroid/os/ServiceSpecificException;)Ljava/lang/RuntimeException;
+Landroid/net/ConnectivityManager;->enforceChangePermission(Landroid/content/Context;)V
+Landroid/net/ConnectivityManager;->enforceTetherChangePermission(Landroid/content/Context;Ljava/lang/String;)V
+Landroid/net/ConnectivityManager;->expireRequest(Landroid/net/NetworkCapabilities;I)V
+Landroid/net/ConnectivityManager;->EXPIRE_LEGACY_REQUEST:I
+Landroid/net/ConnectivityManager;->EXTRA_ACTIVE_LOCAL_ONLY:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_ADD_TETHER_TYPE:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_CAPTIVE_PORTAL_PROBE_SPEC:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_CAPTIVE_PORTAL_USER_AGENT:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_DEVICE_TYPE:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_INET_CONDITION:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_IS_ACTIVE:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_IS_CAPTIVE_PORTAL:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_PROVISION_CALLBACK:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_REALTIME_NS:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_REM_TETHER_TYPE:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_RUN_PROVISION:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->EXTRA_SET_ALARM:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->factoryReset()V
+Landroid/net/ConnectivityManager;->findRequestForFeature(Landroid/net/NetworkCapabilities;)Landroid/net/NetworkRequest;
+Landroid/net/ConnectivityManager;->getActiveNetworkForUid(I)Landroid/net/Network;
+Landroid/net/ConnectivityManager;->getActiveNetworkForUid(IZ)Landroid/net/Network;
+Landroid/net/ConnectivityManager;->getActiveNetworkInfoForUid(IZ)Landroid/net/NetworkInfo;
+Landroid/net/ConnectivityManager;->getAlwaysOnVpnPackageForUser(I)Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getCallbackName(I)Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getDefaultHandler()Landroid/net/ConnectivityManager$CallbackHandler;
+Landroid/net/ConnectivityManager;->getGlobalProxy()Landroid/net/ProxyInfo;
+Landroid/net/ConnectivityManager;->getInstanceOrNull()Landroid/net/ConnectivityManager;
+Landroid/net/ConnectivityManager;->getMobileProvisioningUrl()Ljava/lang/String;
+Landroid/net/ConnectivityManager;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
+Landroid/net/ConnectivityManager;->getNetworkManagementService()Landroid/os/INetworkManagementService;
+Landroid/net/ConnectivityManager;->getNetworkPolicyManager()Landroid/net/INetworkPolicyManager;
+Landroid/net/ConnectivityManager;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
+Landroid/net/ConnectivityManager;->getTetheredDhcpRanges()[Ljava/lang/String;
+Landroid/net/ConnectivityManager;->inferLegacyTypeForNetworkCapabilities(Landroid/net/NetworkCapabilities;)I
+Landroid/net/ConnectivityManager;->isAlwaysOnVpnPackageSupportedForUser(ILjava/lang/String;)Z
+Landroid/net/ConnectivityManager;->isNetworkTypeWifi(I)Z
+Landroid/net/ConnectivityManager;->legacyTypeForNetworkCapabilities(Landroid/net/NetworkCapabilities;)I
+Landroid/net/ConnectivityManager;->LISTEN:I
+Landroid/net/ConnectivityManager;->MAX_NETWORK_TYPE:I
+Landroid/net/ConnectivityManager;->MAX_RADIO_TYPE:I
+Landroid/net/ConnectivityManager;->mContext:Landroid/content/Context;
+Landroid/net/ConnectivityManager;->MIN_NETWORK_TYPE:I
+Landroid/net/ConnectivityManager;->mNetworkActivityListeners:Landroid/util/ArrayMap;
+Landroid/net/ConnectivityManager;->mNMService:Landroid/os/INetworkManagementService;
+Landroid/net/ConnectivityManager;->mNPManager:Landroid/net/INetworkPolicyManager;
+Landroid/net/ConnectivityManager;->MULTIPATH_PREFERENCE_UNMETERED:I
+Landroid/net/ConnectivityManager;->NETID_UNSET:I
+Landroid/net/ConnectivityManager;->networkCapabilitiesForType(I)Landroid/net/NetworkCapabilities;
+Landroid/net/ConnectivityManager;->PRIVATE_DNS_DEFAULT_MODE_FALLBACK:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->PRIVATE_DNS_MODE_OFF:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->PRIVATE_DNS_MODE_OPPORTUNISTIC:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->PRIVATE_DNS_MODE_PROVIDER_HOSTNAME:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->registerNetworkAgent(Landroid/os/Messenger;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;ILandroid/net/NetworkMisc;)I
+Landroid/net/ConnectivityManager;->renewRequestLocked(Landroid/net/ConnectivityManager$LegacyRequest;)V
+Landroid/net/ConnectivityManager;->reportInetCondition(II)V
+Landroid/net/ConnectivityManager;->REQUEST:I
+Landroid/net/ConnectivityManager;->requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;IILandroid/os/Handler;)V
+Landroid/net/ConnectivityManager;->REQUEST_ID_UNSET:I
+Landroid/net/ConnectivityManager;->sCallbackHandler:Landroid/net/ConnectivityManager$CallbackHandler;
+Landroid/net/ConnectivityManager;->sCallbacks:Ljava/util/HashMap;
+Landroid/net/ConnectivityManager;->sendExpireMsgForFeature(Landroid/net/NetworkCapabilities;II)V
+Landroid/net/ConnectivityManager;->sendRequestForNetwork(Landroid/net/NetworkCapabilities;Landroid/net/ConnectivityManager$NetworkCallback;IIILandroid/net/ConnectivityManager$CallbackHandler;)Landroid/net/NetworkRequest;
+Landroid/net/ConnectivityManager;->setAcceptUnvalidated(Landroid/net/Network;ZZ)V
+Landroid/net/ConnectivityManager;->setAlwaysOnVpnPackageForUser(ILjava/lang/String;Z)Z
+Landroid/net/ConnectivityManager;->setAvoidUnvalidated(Landroid/net/Network;)V
+Landroid/net/ConnectivityManager;->setGlobalProxy(Landroid/net/ProxyInfo;)V
+Landroid/net/ConnectivityManager;->setProvisioningNotificationVisible(ZILjava/lang/String;)V
+Landroid/net/ConnectivityManager;->sInstance:Landroid/net/ConnectivityManager;
+Landroid/net/ConnectivityManager;->sLegacyTypeToCapability:Landroid/util/SparseIntArray;
+Landroid/net/ConnectivityManager;->sLegacyTypeToTransport:Landroid/util/SparseIntArray;
+Landroid/net/ConnectivityManager;->startCaptivePortalApp(Landroid/net/Network;)V
+Landroid/net/ConnectivityManager;->TAG:Ljava/lang/String;
+Landroid/net/ConnectivityManager;->TETHERING_INVALID:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_DISABLE_NAT_ERROR:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_ENABLE_NAT_ERROR:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_IFACE_CFG_ERROR:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_MASTER_ERROR:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_NO_ERROR:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_PROVISION_FAILED:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_SERVICE_UNAVAIL:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_TETHER_IFACE_ERROR:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_UNAVAIL_IFACE:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_UNKNOWN_IFACE:I
+Landroid/net/ConnectivityManager;->TETHER_ERROR_UNSUPPORTED:I
+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;
+Landroid/net/ConnectivityMetricsEvent;->data:Landroid/os/Parcelable;
+Landroid/net/ConnectivityMetricsEvent;->ifname:Ljava/lang/String;
+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;
+Landroid/net/ConnectivityThread;->getInstanceLooper()Landroid/os/Looper;
+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;
+Landroid/net/DataUsageRequest;->requestId:I
+Landroid/net/DataUsageRequest;->REQUEST_ID_UNSET:I
+Landroid/net/DataUsageRequest;->template:Landroid/net/NetworkTemplate;
+Landroid/net/DataUsageRequest;->thresholdInBytes:J
+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;
+Landroid/net/DhcpResults;->hasMeteredHint()Z
+Landroid/net/DhcpResults;->readFromParcel(Landroid/net/DhcpResults;Landroid/os/Parcel;)V
+Landroid/net/DhcpResults;->setDomains(Ljava/lang/String;)V
+Landroid/net/DhcpResults;->setGateway(Ljava/lang/String;)Z
+Landroid/net/DhcpResults;->setIpAddress(Ljava/lang/String;I)Z
+Landroid/net/DhcpResults;->setLeaseDuration(I)V
+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;
+Landroid/net/EthernetManager;->mListeners:Ljava/util/ArrayList;
+Landroid/net/EthernetManager;->mService:Landroid/net/IEthernetManager;
+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
+Landroid/net/EventLogTags;->writeNtpFailure(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/EventLogTags;->writeNtpSuccess(Ljava/lang/String;JJ)V
+Landroid/net/http/HttpResponseCache;-><init>(Lcom/android/okhttp/AndroidShimResponseCache;)V
+Landroid/net/http/HttpResponseCache;->delegate:Lcom/android/okhttp/AndroidShimResponseCache;
+Landroid/net/http/HttpResponseCache;->getCache()Lcom/android/okhttp/Cache;
+Landroid/net/http/SslCertificate$DName;->mCName:Ljava/lang/String;
+Landroid/net/http/SslCertificate$DName;->mDName:Ljava/lang/String;
+Landroid/net/http/SslCertificate$DName;->mOName:Ljava/lang/String;
+Landroid/net/http/SslCertificate$DName;->mUName:Ljava/lang/String;
+Landroid/net/http/SslCertificate;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;Ljava/security/cert/X509Certificate;)V
+Landroid/net/http/SslCertificate;->cloneDate(Ljava/util/Date;)Ljava/util/Date;
+Landroid/net/http/SslCertificate;->fingerprint([B)Ljava/lang/String;
+Landroid/net/http/SslCertificate;->formatCertificateDate(Landroid/content/Context;Ljava/util/Date;)Ljava/lang/String;
+Landroid/net/http/SslCertificate;->formatDate(Ljava/util/Date;)Ljava/lang/String;
+Landroid/net/http/SslCertificate;->ISO_8601_DATE_FORMAT:Ljava/lang/String;
+Landroid/net/http/SslCertificate;->ISSUED_BY:Ljava/lang/String;
+Landroid/net/http/SslCertificate;->ISSUED_TO:Ljava/lang/String;
+Landroid/net/http/SslCertificate;->mIssuedBy:Landroid/net/http/SslCertificate$DName;
+Landroid/net/http/SslCertificate;->mIssuedTo:Landroid/net/http/SslCertificate$DName;
+Landroid/net/http/SslCertificate;->mValidNotAfter:Ljava/util/Date;
+Landroid/net/http/SslCertificate;->mValidNotBefore:Ljava/util/Date;
+Landroid/net/http/SslCertificate;->parseDate(Ljava/lang/String;)Ljava/util/Date;
+Landroid/net/http/SslCertificate;->VALID_NOT_AFTER:Ljava/lang/String;
+Landroid/net/http/SslCertificate;->VALID_NOT_BEFORE:Ljava/lang/String;
+Landroid/net/http/SslCertificate;->X509_CERTIFICATE:Ljava/lang/String;
+Landroid/net/http/SslError;->SslErrorFromChromiumErrorCode(ILandroid/net/http/SslCertificate;Ljava/lang/String;)Landroid/net/http/SslError;
+Landroid/net/http/X509TrustManagerExtensions;->mCheckServerTrusted:Ljava/lang/reflect/Method;
+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;
+Landroid/net/IConnectivityManager$Stub$Proxy;->factoryReset()V
+Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetwork()Landroid/net/Network;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkForUid(IZ)Landroid/net/Network;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkInfoForUid(IZ)Landroid/net/NetworkInfo;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkQuotaInfo()Landroid/net/NetworkQuotaInfo;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getAllNetworkState()[Landroid/net/NetworkState;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getAllVpnInfo()[Lcom/android/internal/net/VpnInfo;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getAlwaysOnVpnPackage(I)Ljava/lang/String;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getCaptivePortalServerUrl()Ljava/lang/String;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getGlobalProxy()Landroid/net/ProxyInfo;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getLastTetherError(Ljava/lang/String;)I
+Landroid/net/IConnectivityManager$Stub$Proxy;->getLegacyVpnInfo(I)Lcom/android/internal/net/LegacyVpnInfo;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getLinkPropertiesForType(I)Landroid/net/LinkProperties;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getMobileProvisioningUrl()Ljava/lang/String;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getMultipathPreference(Landroid/net/Network;)I
+Landroid/net/IConnectivityManager$Stub$Proxy;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getNetworkForType(I)Landroid/net/Network;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getNetworkInfo(I)Landroid/net/NetworkInfo;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getNetworkWatchlistConfigHash()[B
+Landroid/net/IConnectivityManager$Stub$Proxy;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getRestoreDefaultNetworkDelay(I)I
+Landroid/net/IConnectivityManager$Stub$Proxy;->getTetherableBluetoothRegexs()[Ljava/lang/String;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getTetherableWifiRegexs()[Ljava/lang/String;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getTetheredDhcpRanges()[Ljava/lang/String;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getTetheringErroredIfaces()[Ljava/lang/String;
+Landroid/net/IConnectivityManager$Stub$Proxy;->getVpnConfig(I)Lcom/android/internal/net/VpnConfig;
+Landroid/net/IConnectivityManager$Stub$Proxy;->isActiveNetworkMetered()Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->isAlwaysOnVpnPackageSupported(ILjava/lang/String;)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->isNetworkSupported(I)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->isTetheringSupported(Ljava/lang/String;)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
+Landroid/net/IConnectivityManager$Stub$Proxy;->pendingListenForNetwork(Landroid/net/NetworkCapabilities;Landroid/app/PendingIntent;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->pendingRequestForNetwork(Landroid/net/NetworkCapabilities;Landroid/app/PendingIntent;)Landroid/net/NetworkRequest;
+Landroid/net/IConnectivityManager$Stub$Proxy;->prepareVpn(Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->registerNetworkAgent(Landroid/os/Messenger;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;ILandroid/net/NetworkMisc;)I
+Landroid/net/IConnectivityManager$Stub$Proxy;->registerNetworkFactory(Landroid/os/Messenger;Ljava/lang/String;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->releaseNetworkRequest(Landroid/net/NetworkRequest;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->releasePendingNetworkRequest(Landroid/app/PendingIntent;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->removeVpnAddress(Ljava/lang/String;I)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->reportInetCondition(II)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->reportNetworkConnectivity(Landroid/net/Network;Z)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->requestBandwidthUpdate(Landroid/net/Network;)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
+Landroid/net/IConnectivityManager$Stub$Proxy;->requestRouteToHostAddress(I[B)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->setAcceptUnvalidated(Landroid/net/Network;ZZ)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->setAirplaneMode(Z)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->setAlwaysOnVpnPackage(ILjava/lang/String;Z)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->setAvoidUnvalidated(Landroid/net/Network;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->setGlobalProxy(Landroid/net/ProxyInfo;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->setProvisioningNotificationVisible(ZILjava/lang/String;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->setUnderlyingNetworksForVpn([Landroid/net/Network;)Z
+Landroid/net/IConnectivityManager$Stub$Proxy;->setUsbTethering(ZLjava/lang/String;)I
+Landroid/net/IConnectivityManager$Stub$Proxy;->setVpnPackageAuthorization(Ljava/lang/String;IZ)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->startCaptivePortalApp(Landroid/net/Network;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->startLegacyVpn(Lcom/android/internal/net/VpnProfile;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->startNattKeepalive(Landroid/net/Network;ILandroid/os/Messenger;Landroid/os/IBinder;Ljava/lang/String;ILjava/lang/String;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->startTethering(ILandroid/os/ResultReceiver;ZLjava/lang/String;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->stopKeepalive(Landroid/net/Network;I)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->stopTethering(ILjava/lang/String;)V
+Landroid/net/IConnectivityManager$Stub$Proxy;->tether(Ljava/lang/String;Ljava/lang/String;)I
+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
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_establishVpn:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_factoryReset:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getActiveLinkProperties:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getActiveNetwork:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getActiveNetworkForUid:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getActiveNetworkInfo:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getActiveNetworkInfoForUid:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getActiveNetworkQuotaInfo:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getAllNetworkInfo:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getAllNetworks:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getAllNetworkState:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getAllVpnInfo:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getAlwaysOnVpnPackage:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getCaptivePortalServerUrl:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getDefaultNetworkCapabilitiesForUser:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getGlobalProxy:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getLastTetherError:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getLegacyVpnInfo:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getLinkProperties:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getLinkPropertiesForType:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getMobileProvisioningUrl:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getMultipathPreference:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getNetworkCapabilities:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getNetworkForType:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getNetworkInfo:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getNetworkInfoForUid:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getNetworkWatchlistConfigHash:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getProxyForNetwork:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getRestoreDefaultNetworkDelay:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getTetherableBluetoothRegexs:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getTetherableIfaces:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getTetherableUsbRegexs:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getTetherableWifiRegexs:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getTetheredDhcpRanges:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getTetheredIfaces:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getTetheringErroredIfaces:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_getVpnConfig:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_isActiveNetworkMetered:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_isAlwaysOnVpnPackageSupported:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_isNetworkSupported:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_isTetheringSupported:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_listenForNetwork:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_pendingListenForNetwork:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_pendingRequestForNetwork:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_prepareVpn:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_registerNetworkAgent:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_registerNetworkFactory:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_releaseNetworkRequest:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_releasePendingNetworkRequest:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_removeVpnAddress:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_reportInetCondition:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_reportNetworkConnectivity:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_requestBandwidthUpdate:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_requestNetwork:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_requestRouteToHostAddress:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setAcceptUnvalidated:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setAirplaneMode:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setAlwaysOnVpnPackage:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setAvoidUnvalidated:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setGlobalProxy:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setProvisioningNotificationVisible:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setUnderlyingNetworksForVpn:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setUsbTethering:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_setVpnPackageAuthorization:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_startCaptivePortalApp:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_startLegacyVpn:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_startNattKeepalive:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_startTethering:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_stopKeepalive:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_stopTethering:I
+Landroid/net/IConnectivityManager$Stub;->TRANSACTION_tether:I
+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;
+Landroid/net/IConnectivityManager;->factoryReset()V
+Landroid/net/IConnectivityManager;->getActiveNetwork()Landroid/net/Network;
+Landroid/net/IConnectivityManager;->getActiveNetworkForUid(IZ)Landroid/net/Network;
+Landroid/net/IConnectivityManager;->getActiveNetworkInfoForUid(IZ)Landroid/net/NetworkInfo;
+Landroid/net/IConnectivityManager;->getActiveNetworkQuotaInfo()Landroid/net/NetworkQuotaInfo;
+Landroid/net/IConnectivityManager;->getAllNetworks()[Landroid/net/Network;
+Landroid/net/IConnectivityManager;->getAllVpnInfo()[Lcom/android/internal/net/VpnInfo;
+Landroid/net/IConnectivityManager;->getAlwaysOnVpnPackage(I)Ljava/lang/String;
+Landroid/net/IConnectivityManager;->getCaptivePortalServerUrl()Ljava/lang/String;
+Landroid/net/IConnectivityManager;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
+Landroid/net/IConnectivityManager;->getGlobalProxy()Landroid/net/ProxyInfo;
+Landroid/net/IConnectivityManager;->getLegacyVpnInfo(I)Lcom/android/internal/net/LegacyVpnInfo;
+Landroid/net/IConnectivityManager;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
+Landroid/net/IConnectivityManager;->getLinkPropertiesForType(I)Landroid/net/LinkProperties;
+Landroid/net/IConnectivityManager;->getMobileProvisioningUrl()Ljava/lang/String;
+Landroid/net/IConnectivityManager;->getMultipathPreference(Landroid/net/Network;)I
+Landroid/net/IConnectivityManager;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
+Landroid/net/IConnectivityManager;->getNetworkForType(I)Landroid/net/Network;
+Landroid/net/IConnectivityManager;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
+Landroid/net/IConnectivityManager;->getNetworkWatchlistConfigHash()[B
+Landroid/net/IConnectivityManager;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
+Landroid/net/IConnectivityManager;->getRestoreDefaultNetworkDelay(I)I
+Landroid/net/IConnectivityManager;->getTetherableBluetoothRegexs()[Ljava/lang/String;
+Landroid/net/IConnectivityManager;->getTetheredDhcpRanges()[Ljava/lang/String;
+Landroid/net/IConnectivityManager;->getVpnConfig(I)Lcom/android/internal/net/VpnConfig;
+Landroid/net/IConnectivityManager;->isActiveNetworkMetered()Z
+Landroid/net/IConnectivityManager;->isAlwaysOnVpnPackageSupported(ILjava/lang/String;)Z
+Landroid/net/IConnectivityManager;->isNetworkSupported(I)Z
+Landroid/net/IConnectivityManager;->isTetheringSupported(Ljava/lang/String;)Z
+Landroid/net/IConnectivityManager;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
+Landroid/net/IConnectivityManager;->pendingListenForNetwork(Landroid/net/NetworkCapabilities;Landroid/app/PendingIntent;)V
+Landroid/net/IConnectivityManager;->pendingRequestForNetwork(Landroid/net/NetworkCapabilities;Landroid/app/PendingIntent;)Landroid/net/NetworkRequest;
+Landroid/net/IConnectivityManager;->prepareVpn(Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/net/IConnectivityManager;->registerNetworkAgent(Landroid/os/Messenger;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;ILandroid/net/NetworkMisc;)I
+Landroid/net/IConnectivityManager;->registerNetworkFactory(Landroid/os/Messenger;Ljava/lang/String;)V
+Landroid/net/IConnectivityManager;->releaseNetworkRequest(Landroid/net/NetworkRequest;)V
+Landroid/net/IConnectivityManager;->releasePendingNetworkRequest(Landroid/app/PendingIntent;)V
+Landroid/net/IConnectivityManager;->removeVpnAddress(Ljava/lang/String;I)Z
+Landroid/net/IConnectivityManager;->reportNetworkConnectivity(Landroid/net/Network;Z)V
+Landroid/net/IConnectivityManager;->requestBandwidthUpdate(Landroid/net/Network;)Z
+Landroid/net/IConnectivityManager;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
+Landroid/net/IConnectivityManager;->requestRouteToHostAddress(I[B)Z
+Landroid/net/IConnectivityManager;->setAcceptUnvalidated(Landroid/net/Network;ZZ)V
+Landroid/net/IConnectivityManager;->setAlwaysOnVpnPackage(ILjava/lang/String;Z)Z
+Landroid/net/IConnectivityManager;->setAvoidUnvalidated(Landroid/net/Network;)V
+Landroid/net/IConnectivityManager;->setGlobalProxy(Landroid/net/ProxyInfo;)V
+Landroid/net/IConnectivityManager;->setProvisioningNotificationVisible(ZILjava/lang/String;)V
+Landroid/net/IConnectivityManager;->setUnderlyingNetworksForVpn([Landroid/net/Network;)Z
+Landroid/net/IConnectivityManager;->setUsbTethering(ZLjava/lang/String;)I
+Landroid/net/IConnectivityManager;->setVpnPackageAuthorization(Ljava/lang/String;IZ)V
+Landroid/net/IConnectivityManager;->startCaptivePortalApp(Landroid/net/Network;)V
+Landroid/net/IConnectivityManager;->startNattKeepalive(Landroid/net/Network;ILandroid/os/Messenger;Landroid/os/IBinder;Ljava/lang/String;ILjava/lang/String;)V
+Landroid/net/IConnectivityManager;->startTethering(ILandroid/os/ResultReceiver;ZLjava/lang/String;)V
+Landroid/net/IConnectivityManager;->stopKeepalive(Landroid/net/Network;I)V
+Landroid/net/IConnectivityManager;->stopTethering(ILjava/lang/String;)V
+Landroid/net/IConnectivityManager;->tether(Ljava/lang/String;Ljava/lang/String;)I
+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;
+Landroid/net/IEthernetManager$Stub$Proxy;->getConfiguration(Ljava/lang/String;)Landroid/net/IpConfiguration;
+Landroid/net/IEthernetManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/IEthernetManager$Stub$Proxy;->isAvailable(Ljava/lang/String;)Z
+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;
+Landroid/net/IEthernetManager$Stub;->TRANSACTION_addListener:I
+Landroid/net/IEthernetManager$Stub;->TRANSACTION_getAvailableInterfaces:I
+Landroid/net/IEthernetManager$Stub;->TRANSACTION_getConfiguration:I
+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;
+Landroid/net/IIpSecService$Stub$Proxy;->applyTransportModeTransform(Landroid/os/ParcelFileDescriptor;II)V
+Landroid/net/IIpSecService$Stub$Proxy;->applyTunnelModeTransform(IIILjava/lang/String;)V
+Landroid/net/IIpSecService$Stub$Proxy;->closeUdpEncapsulationSocket(I)V
+Landroid/net/IIpSecService$Stub$Proxy;->createTransform(Landroid/net/IpSecConfig;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/IpSecTransformResponse;
+Landroid/net/IIpSecService$Stub$Proxy;->createTunnelInterface(Ljava/lang/String;Ljava/lang/String;Landroid/net/Network;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/IpSecTunnelInterfaceResponse;
+Landroid/net/IIpSecService$Stub$Proxy;->deleteTransform(I)V
+Landroid/net/IIpSecService$Stub$Proxy;->deleteTunnelInterface(ILjava/lang/String;)V
+Landroid/net/IIpSecService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/IIpSecService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/net/IIpSecService$Stub$Proxy;->openUdpEncapsulationSocket(ILandroid/os/IBinder;)Landroid/net/IpSecUdpEncapResponse;
+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;
+Landroid/net/IIpSecService$Stub;->TRANSACTION_addAddressToTunnelInterface:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_allocateSecurityParameterIndex:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_applyTransportModeTransform:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_applyTunnelModeTransform:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_closeUdpEncapsulationSocket:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_createTransform:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_createTunnelInterface:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_deleteTransform:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_deleteTunnelInterface:I
+Landroid/net/IIpSecService$Stub;->TRANSACTION_openUdpEncapsulationSocket:I
+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
+Landroid/net/IIpSecService;->applyTunnelModeTransform(IIILjava/lang/String;)V
+Landroid/net/IIpSecService;->closeUdpEncapsulationSocket(I)V
+Landroid/net/IIpSecService;->createTransform(Landroid/net/IpSecConfig;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/IpSecTransformResponse;
+Landroid/net/IIpSecService;->createTunnelInterface(Ljava/lang/String;Ljava/lang/String;Landroid/net/Network;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/IpSecTunnelInterfaceResponse;
+Landroid/net/IIpSecService;->deleteTransform(I)V
+Landroid/net/IIpSecService;->deleteTunnelInterface(ILjava/lang/String;)V
+Landroid/net/IIpSecService;->openUdpEncapsulationSocket(ILandroid/os/IBinder;)Landroid/net/IpSecUdpEncapResponse;
+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
+Landroid/net/INetd$Stub$Proxy;->firewallReplaceUidChain(Ljava/lang/String;Z[I)Z
+Landroid/net/INetd$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/INetd$Stub$Proxy;->getMetricsReportingLevel()I
+Landroid/net/INetd$Stub$Proxy;->getResolverInfo(I[Ljava/lang/String;[Ljava/lang/String;[I[I)V
+Landroid/net/INetd$Stub$Proxy;->interfaceAddAddress(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/net/INetd$Stub$Proxy;->interfaceDelAddress(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/net/INetd$Stub$Proxy;->ipSecAddSecurityAssociation(IILjava/lang/String;Ljava/lang/String;IIIILjava/lang/String;[BILjava/lang/String;[BILjava/lang/String;[BIIII)V
+Landroid/net/INetd$Stub$Proxy;->ipSecAddSecurityPolicy(IILjava/lang/String;Ljava/lang/String;III)V
+Landroid/net/INetd$Stub$Proxy;->ipSecAllocateSpi(ILjava/lang/String;Ljava/lang/String;I)I
+Landroid/net/INetd$Stub$Proxy;->ipSecApplyTransportModeTransform(Ljava/io/FileDescriptor;IILjava/lang/String;Ljava/lang/String;I)V
+Landroid/net/INetd$Stub$Proxy;->ipSecDeleteSecurityAssociation(ILjava/lang/String;Ljava/lang/String;III)V
+Landroid/net/INetd$Stub$Proxy;->ipSecDeleteSecurityPolicy(IILjava/lang/String;Ljava/lang/String;II)V
+Landroid/net/INetd$Stub$Proxy;->ipSecRemoveTransportModeTransform(Ljava/io/FileDescriptor;)V
+Landroid/net/INetd$Stub$Proxy;->ipSecSetEncapSocketOwner(Ljava/io/FileDescriptor;I)V
+Landroid/net/INetd$Stub$Proxy;->ipSecUpdateSecurityPolicy(IILjava/lang/String;Ljava/lang/String;III)V
+Landroid/net/INetd$Stub$Proxy;->isAlive()Z
+Landroid/net/INetd$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/net/INetd$Stub$Proxy;->networkAddInterface(ILjava/lang/String;)V
+Landroid/net/INetd$Stub$Proxy;->networkAddUidRanges(I[Landroid/net/UidRange;)V
+Landroid/net/INetd$Stub$Proxy;->networkCreatePhysical(ILjava/lang/String;)V
+Landroid/net/INetd$Stub$Proxy;->networkCreateVpn(IZZ)V
+Landroid/net/INetd$Stub$Proxy;->networkDestroy(I)V
+Landroid/net/INetd$Stub$Proxy;->networkRejectNonSecureVpn(Z[Landroid/net/UidRange;)V
+Landroid/net/INetd$Stub$Proxy;->networkRemoveInterface(ILjava/lang/String;)V
+Landroid/net/INetd$Stub$Proxy;->networkRemoveUidRanges(I[Landroid/net/UidRange;)V
+Landroid/net/INetd$Stub$Proxy;->removeVirtualTunnelInterface(Ljava/lang/String;)V
+Landroid/net/INetd$Stub$Proxy;->setIPv6AddrGenMode(Ljava/lang/String;I)V
+Landroid/net/INetd$Stub$Proxy;->setMetricsReportingLevel(I)V
+Landroid/net/INetd$Stub$Proxy;->setProcSysNet(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/INetd$Stub$Proxy;->setResolverConfiguration(I[Ljava/lang/String;[Ljava/lang/String;[ILjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/net/INetd$Stub$Proxy;->socketDestroy([Landroid/net/UidRange;[I)V
+Landroid/net/INetd$Stub$Proxy;->tetherApplyDnsInterfaces()Z
+Landroid/net/INetd$Stub$Proxy;->tetherGetStats()Landroid/os/PersistableBundle;
+Landroid/net/INetd$Stub$Proxy;->trafficCheckBpfStatsEnable()Z
+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
+Landroid/net/INetd$Stub;->TRANSACTION_bandwidthEnableDataSaver:I
+Landroid/net/INetd$Stub;->TRANSACTION_firewallReplaceUidChain:I
+Landroid/net/INetd$Stub;->TRANSACTION_getMetricsReportingLevel:I
+Landroid/net/INetd$Stub;->TRANSACTION_getResolverInfo:I
+Landroid/net/INetd$Stub;->TRANSACTION_interfaceAddAddress:I
+Landroid/net/INetd$Stub;->TRANSACTION_interfaceDelAddress:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecAddSecurityAssociation:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecAddSecurityPolicy:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecAllocateSpi:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecApplyTransportModeTransform:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecDeleteSecurityAssociation:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecDeleteSecurityPolicy:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecRemoveTransportModeTransform:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecSetEncapSocketOwner:I
+Landroid/net/INetd$Stub;->TRANSACTION_ipSecUpdateSecurityPolicy:I
+Landroid/net/INetd$Stub;->TRANSACTION_isAlive:I
+Landroid/net/INetd$Stub;->TRANSACTION_networkAddInterface:I
+Landroid/net/INetd$Stub;->TRANSACTION_networkAddUidRanges:I
+Landroid/net/INetd$Stub;->TRANSACTION_networkCreatePhysical:I
+Landroid/net/INetd$Stub;->TRANSACTION_networkCreateVpn:I
+Landroid/net/INetd$Stub;->TRANSACTION_networkDestroy:I
+Landroid/net/INetd$Stub;->TRANSACTION_networkRejectNonSecureVpn:I
+Landroid/net/INetd$Stub;->TRANSACTION_networkRemoveInterface:I
+Landroid/net/INetd$Stub;->TRANSACTION_networkRemoveUidRanges:I
+Landroid/net/INetd$Stub;->TRANSACTION_removeVirtualTunnelInterface:I
+Landroid/net/INetd$Stub;->TRANSACTION_setIPv6AddrGenMode:I
+Landroid/net/INetd$Stub;->TRANSACTION_setMetricsReportingLevel:I
+Landroid/net/INetd$Stub;->TRANSACTION_setProcSysNet:I
+Landroid/net/INetd$Stub;->TRANSACTION_setResolverConfiguration:I
+Landroid/net/INetd$Stub;->TRANSACTION_socketDestroy:I
+Landroid/net/INetd$Stub;->TRANSACTION_tetherApplyDnsInterfaces:I
+Landroid/net/INetd$Stub;->TRANSACTION_tetherGetStats:I
+Landroid/net/INetd$Stub;->TRANSACTION_trafficCheckBpfStatsEnable:I
+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
+Landroid/net/INetd;->firewallReplaceUidChain(Ljava/lang/String;Z[I)Z
+Landroid/net/INetd;->getMetricsReportingLevel()I
+Landroid/net/INetd;->getResolverInfo(I[Ljava/lang/String;[Ljava/lang/String;[I[I)V
+Landroid/net/INetd;->interfaceDelAddress(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/net/INetd;->ipSecAddSecurityAssociation(IILjava/lang/String;Ljava/lang/String;IIIILjava/lang/String;[BILjava/lang/String;[BILjava/lang/String;[BIIII)V
+Landroid/net/INetd;->ipSecAddSecurityPolicy(IILjava/lang/String;Ljava/lang/String;III)V
+Landroid/net/INetd;->ipSecAllocateSpi(ILjava/lang/String;Ljava/lang/String;I)I
+Landroid/net/INetd;->ipSecApplyTransportModeTransform(Ljava/io/FileDescriptor;IILjava/lang/String;Ljava/lang/String;I)V
+Landroid/net/INetd;->ipSecDeleteSecurityAssociation(ILjava/lang/String;Ljava/lang/String;III)V
+Landroid/net/INetd;->ipSecDeleteSecurityPolicy(IILjava/lang/String;Ljava/lang/String;II)V
+Landroid/net/INetd;->ipSecRemoveTransportModeTransform(Ljava/io/FileDescriptor;)V
+Landroid/net/INetd;->ipSecSetEncapSocketOwner(Ljava/io/FileDescriptor;I)V
+Landroid/net/INetd;->ipSecUpdateSecurityPolicy(IILjava/lang/String;Ljava/lang/String;III)V
+Landroid/net/INetd;->IPSEC_INTERFACE_PREFIX:Ljava/lang/String;
+Landroid/net/INetd;->IPV4:I
+Landroid/net/INetd;->IPV6:I
+Landroid/net/INetd;->IPV6_ADDR_GEN_MODE_DEFAULT:I
+Landroid/net/INetd;->IPV6_ADDR_GEN_MODE_EUI64:I
+Landroid/net/INetd;->IPV6_ADDR_GEN_MODE_NONE:I
+Landroid/net/INetd;->IPV6_ADDR_GEN_MODE_RANDOM:I
+Landroid/net/INetd;->IPV6_ADDR_GEN_MODE_STABLE_PRIVACY:I
+Landroid/net/INetd;->isAlive()Z
+Landroid/net/INetd;->NEIGH:I
+Landroid/net/INetd;->networkAddInterface(ILjava/lang/String;)V
+Landroid/net/INetd;->networkAddUidRanges(I[Landroid/net/UidRange;)V
+Landroid/net/INetd;->networkCreatePhysical(ILjava/lang/String;)V
+Landroid/net/INetd;->networkCreateVpn(IZZ)V
+Landroid/net/INetd;->networkDestroy(I)V
+Landroid/net/INetd;->networkRejectNonSecureVpn(Z[Landroid/net/UidRange;)V
+Landroid/net/INetd;->networkRemoveInterface(ILjava/lang/String;)V
+Landroid/net/INetd;->networkRemoveUidRanges(I[Landroid/net/UidRange;)V
+Landroid/net/INetd;->PERMISSION_NETWORK:Ljava/lang/String;
+Landroid/net/INetd;->PERMISSION_SYSTEM:Ljava/lang/String;
+Landroid/net/INetd;->removeVirtualTunnelInterface(Ljava/lang/String;)V
+Landroid/net/INetd;->RESOLVER_PARAMS_COUNT:I
+Landroid/net/INetd;->RESOLVER_PARAMS_MAX_SAMPLES:I
+Landroid/net/INetd;->RESOLVER_PARAMS_MIN_SAMPLES:I
+Landroid/net/INetd;->RESOLVER_PARAMS_SAMPLE_VALIDITY:I
+Landroid/net/INetd;->RESOLVER_PARAMS_SUCCESS_THRESHOLD:I
+Landroid/net/INetd;->RESOLVER_STATS_COUNT:I
+Landroid/net/INetd;->RESOLVER_STATS_ERRORS:I
+Landroid/net/INetd;->RESOLVER_STATS_INTERNAL_ERRORS:I
+Landroid/net/INetd;->RESOLVER_STATS_LAST_SAMPLE_TIME:I
+Landroid/net/INetd;->RESOLVER_STATS_RTT_AVG:I
+Landroid/net/INetd;->RESOLVER_STATS_SUCCESSES:I
+Landroid/net/INetd;->RESOLVER_STATS_TIMEOUTS:I
+Landroid/net/INetd;->RESOLVER_STATS_USABLE:I
+Landroid/net/INetd;->setIPv6AddrGenMode(Ljava/lang/String;I)V
+Landroid/net/INetd;->setMetricsReportingLevel(I)V
+Landroid/net/INetd;->setProcSysNet(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/INetd;->setResolverConfiguration(I[Ljava/lang/String;[Ljava/lang/String;[ILjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/net/INetd;->socketDestroy([Landroid/net/UidRange;[I)V
+Landroid/net/INetd;->tetherApplyDnsInterfaces()Z
+Landroid/net/INetd;->tetherGetStats()Landroid/os/PersistableBundle;
+Landroid/net/INetd;->TETHER_STATS_ARRAY_SIZE:I
+Landroid/net/INetd;->TETHER_STATS_RX_BYTES:I
+Landroid/net/INetd;->TETHER_STATS_RX_PACKETS:I
+Landroid/net/INetd;->TETHER_STATS_TX_BYTES:I
+Landroid/net/INetd;->TETHER_STATS_TX_PACKETS:I
+Landroid/net/INetd;->trafficCheckBpfStatsEnable()Z
+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
+Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->interfaceAdded(Ljava/lang/String;)V
+Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->interfaceClassDataActivityChanged(Ljava/lang/String;ZJ)V
+Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->interfaceDnsServerInfo(Ljava/lang/String;J[Ljava/lang/String;)V
+Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->interfaceLinkStateChanged(Ljava/lang/String;Z)V
+Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->interfaceRemoved(Ljava/lang/String;)V
+Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->interfaceStatusChanged(Ljava/lang/String;Z)V
+Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->limitReached(Ljava/lang/String;Ljava/lang/String;)V
+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
+Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_addressUpdated:I
+Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_interfaceAdded:I
+Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_interfaceClassDataActivityChanged:I
+Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_interfaceDnsServerInfo:I
+Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_interfaceLinkStateChanged:I
+Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_interfaceRemoved:I
+Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_interfaceStatusChanged:I
+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
+Landroid/net/INetworkManagementEventObserver;->interfaceClassDataActivityChanged(Ljava/lang/String;ZJ)V
+Landroid/net/INetworkManagementEventObserver;->interfaceDnsServerInfo(Ljava/lang/String;J[Ljava/lang/String;)V
+Landroid/net/INetworkManagementEventObserver;->interfaceLinkStateChanged(Ljava/lang/String;Z)V
+Landroid/net/INetworkManagementEventObserver;->interfaceRemoved(Ljava/lang/String;)V
+Landroid/net/INetworkManagementEventObserver;->interfaceStatusChanged(Ljava/lang/String;Z)V
+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;
+Landroid/net/INetworkPolicyListener$Stub$Proxy;->onMeteredIfacesChanged([Ljava/lang/String;)V
+Landroid/net/INetworkPolicyListener$Stub$Proxy;->onRestrictBackgroundChanged(Z)V
+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
+Landroid/net/INetworkPolicyListener$Stub;->TRANSACTION_onRestrictBackgroundChanged:I
+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
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getNetworkPolicies(Ljava/lang/String;)[Landroid/net/NetworkPolicy;
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getNetworkQuotaInfo(Landroid/net/NetworkState;)Landroid/net/NetworkQuotaInfo;
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackground()Z
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackgroundByCaller()I
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getSubscriptionPlans(ILjava/lang/String;)[Landroid/telephony/SubscriptionPlan;
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getSubscriptionPlansOwner(I)Ljava/lang/String;
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getUidPolicy(I)I
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->getUidsWithPolicy(I)[I
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->isUidNetworkingBlocked(IZ)Z
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->onTetheringChanged(Ljava/lang/String;Z)V
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->registerListener(Landroid/net/INetworkPolicyListener;)V
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->removeUidPolicy(II)V
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->setDeviceIdleMode(Z)V
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->setNetworkPolicies([Landroid/net/NetworkPolicy;)V
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->setRestrictBackground(Z)V
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->setSubscriptionOverride(IIIJLjava/lang/String;)V
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->setSubscriptionPlans(I[Landroid/telephony/SubscriptionPlan;Ljava/lang/String;)V
+Landroid/net/INetworkPolicyManager$Stub$Proxy;->setUidPolicy(II)V
+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
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_factoryReset:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_getNetworkPolicies:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_getNetworkQuotaInfo:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_getRestrictBackground:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_getRestrictBackgroundByCaller:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_getSubscriptionPlans:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_getSubscriptionPlansOwner:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_getUidPolicy:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_getUidsWithPolicy:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_isUidNetworkingBlocked:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_onTetheringChanged:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_registerListener:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_removeUidPolicy:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_setDeviceIdleMode:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_setNetworkPolicies:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_setRestrictBackground:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_setSubscriptionOverride:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_setSubscriptionPlans:I
+Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_setUidPolicy:I
+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;
+Landroid/net/INetworkPolicyManager;->getRestrictBackgroundByCaller()I
+Landroid/net/INetworkPolicyManager;->getSubscriptionPlans(ILjava/lang/String;)[Landroid/telephony/SubscriptionPlan;
+Landroid/net/INetworkPolicyManager;->getSubscriptionPlansOwner(I)Ljava/lang/String;
+Landroid/net/INetworkPolicyManager;->getUidsWithPolicy(I)[I
+Landroid/net/INetworkPolicyManager;->isUidNetworkingBlocked(IZ)Z
+Landroid/net/INetworkPolicyManager;->onTetheringChanged(Ljava/lang/String;Z)V
+Landroid/net/INetworkPolicyManager;->registerListener(Landroid/net/INetworkPolicyListener;)V
+Landroid/net/INetworkPolicyManager;->removeUidPolicy(II)V
+Landroid/net/INetworkPolicyManager;->setDeviceIdleMode(Z)V
+Landroid/net/INetworkPolicyManager;->setSubscriptionOverride(IIIJLjava/lang/String;)V
+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
+Landroid/net/INetworkScoreService$Stub$Proxy;->getActiveScorer()Landroid/net/NetworkScorerAppData;
+Landroid/net/INetworkScoreService$Stub$Proxy;->getActiveScorerPackage()Ljava/lang/String;
+Landroid/net/INetworkScoreService$Stub$Proxy;->getAllValidScorers()Ljava/util/List;
+Landroid/net/INetworkScoreService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/INetworkScoreService$Stub$Proxy;->isCallerActiveScorer(I)Z
+Landroid/net/INetworkScoreService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/net/INetworkScoreService$Stub$Proxy;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
+Landroid/net/INetworkScoreService$Stub$Proxy;->requestScores([Landroid/net/NetworkKey;)Z
+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
+Landroid/net/INetworkScoreService$Stub;->TRANSACTION_disableScoring:I
+Landroid/net/INetworkScoreService$Stub;->TRANSACTION_getActiveScorer:I
+Landroid/net/INetworkScoreService$Stub;->TRANSACTION_getActiveScorerPackage:I
+Landroid/net/INetworkScoreService$Stub;->TRANSACTION_getAllValidScorers:I
+Landroid/net/INetworkScoreService$Stub;->TRANSACTION_isCallerActiveScorer:I
+Landroid/net/INetworkScoreService$Stub;->TRANSACTION_registerNetworkScoreCache:I
+Landroid/net/INetworkScoreService$Stub;->TRANSACTION_requestScores:I
+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;
+Landroid/net/INetworkScoreService;->getActiveScorerPackage()Ljava/lang/String;
+Landroid/net/INetworkScoreService;->getAllValidScorers()Ljava/util/List;
+Landroid/net/INetworkScoreService;->isCallerActiveScorer(I)Z
+Landroid/net/INetworkScoreService;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
+Landroid/net/INetworkScoreService;->requestScores([Landroid/net/NetworkKey;)Z
+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;
+Landroid/net/INetworkStatsService$Stub$Proxy;->getDetailedUidStats([Ljava/lang/String;)Landroid/net/NetworkStats;
+Landroid/net/INetworkStatsService$Stub$Proxy;->getIfaceStats(Ljava/lang/String;I)J
+Landroid/net/INetworkStatsService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/INetworkStatsService$Stub$Proxy;->getTotalStats(I)J
+Landroid/net/INetworkStatsService$Stub$Proxy;->getUidStats(II)J
+Landroid/net/INetworkStatsService$Stub$Proxy;->incrementOperationCount(III)V
+Landroid/net/INetworkStatsService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/net/INetworkStatsService$Stub$Proxy;->openSession()Landroid/net/INetworkStatsSession;
+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
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_forceUpdateIfaces:I
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getDataLayerSnapshotForUid:I
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getDetailedUidStats:I
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getIfaceStats:I
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getMobileIfaces:I
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getTotalStats:I
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_getUidStats:I
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_incrementOperationCount:I
+Landroid/net/INetworkStatsService$Stub;->TRANSACTION_openSession:I
+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
+Landroid/net/INetworkStatsService;->getTotalStats(I)J
+Landroid/net/INetworkStatsService;->getUidStats(II)J
+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;
+Landroid/net/INetworkStatsSession$Stub$Proxy;->getHistoryForNetwork(Landroid/net/NetworkTemplate;I)Landroid/net/NetworkStatsHistory;
+Landroid/net/INetworkStatsSession$Stub$Proxy;->getHistoryForUid(Landroid/net/NetworkTemplate;IIII)Landroid/net/NetworkStatsHistory;
+Landroid/net/INetworkStatsSession$Stub$Proxy;->getHistoryIntervalForUid(Landroid/net/NetworkTemplate;IIIIJJ)Landroid/net/NetworkStatsHistory;
+Landroid/net/INetworkStatsSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/INetworkStatsSession$Stub$Proxy;->getRelevantUids()[I
+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;
+Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_close:I
+Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getDeviceSummaryForNetwork:I
+Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getHistoryForNetwork:I
+Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getHistoryForUid:I
+Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getHistoryIntervalForUid:I
+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;
+Landroid/net/InterfaceConfiguration;->getHardwareAddress()Ljava/lang/String;
+Landroid/net/InterfaceConfiguration;->getLinkAddress()Landroid/net/LinkAddress;
+Landroid/net/InterfaceConfiguration;->hasFlag(Ljava/lang/String;)Z
+Landroid/net/InterfaceConfiguration;->ignoreInterfaceUpDownStatus()V
+Landroid/net/InterfaceConfiguration;->isActive()Z
+Landroid/net/InterfaceConfiguration;->isUp()Z
+Landroid/net/InterfaceConfiguration;->mAddr:Landroid/net/LinkAddress;
+Landroid/net/InterfaceConfiguration;->mFlags:Ljava/util/HashSet;
+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;
+Landroid/net/IpConfiguration;->getHttpProxy()Landroid/net/ProxyInfo;
+Landroid/net/IpConfiguration;->getIpAssignment()Landroid/net/IpConfiguration$IpAssignment;
+Landroid/net/IpConfiguration;->getProxySettings()Landroid/net/IpConfiguration$ProxySettings;
+Landroid/net/IpConfiguration;->getStaticIpConfiguration()Landroid/net/StaticIpConfiguration;
+Landroid/net/IpConfiguration;->init(Landroid/net/IpConfiguration$IpAssignment;Landroid/net/IpConfiguration$ProxySettings;Landroid/net/StaticIpConfiguration;Landroid/net/ProxyInfo;)V
+Landroid/net/IpConfiguration;->ipAssignment:Landroid/net/IpConfiguration$IpAssignment;
+Landroid/net/IpConfiguration;->proxySettings:Landroid/net/IpConfiguration$ProxySettings;
+Landroid/net/IpConfiguration;->setHttpProxy(Landroid/net/ProxyInfo;)V
+Landroid/net/IpConfiguration;->setIpAssignment(Landroid/net/IpConfiguration$IpAssignment;)V
+Landroid/net/IpConfiguration;->setProxySettings(Landroid/net/IpConfiguration$ProxySettings;)V
+Landroid/net/IpConfiguration;->setStaticIpConfiguration(Landroid/net/StaticIpConfiguration;)V
+Landroid/net/IpConfiguration;->staticIpConfiguration:Landroid/net/StaticIpConfiguration;
+Landroid/net/IpConfiguration;->TAG:Ljava/lang/String;
+Landroid/net/IpPrefix;-><init>(Ljava/lang/String;)V
+Landroid/net/IpPrefix;-><init>(Ljava/net/InetAddress;I)V
+Landroid/net/IpPrefix;-><init>([BI)V
+Landroid/net/IpPrefix;->address:[B
+Landroid/net/IpPrefix;->checkAndMaskAddressAndPrefixLength()V
+Landroid/net/IpPrefix;->containsPrefix(Landroid/net/IpPrefix;)Z
+Landroid/net/IpPrefix;->isIPv4()Z
+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
+Landroid/net/IpSecAlgorithm;->isAead()Z
+Landroid/net/IpSecAlgorithm;->isAuthentication()Z
+Landroid/net/IpSecAlgorithm;->isEncryption()Z
+Landroid/net/IpSecAlgorithm;->isUnsafeBuild()Z
+Landroid/net/IpSecAlgorithm;->mKey:[B
+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
+Landroid/net/IpSecConfig;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/IpSecConfig;->equals(Landroid/net/IpSecConfig;Landroid/net/IpSecConfig;)Z
+Landroid/net/IpSecConfig;->getAuthenticatedEncryption()Landroid/net/IpSecAlgorithm;
+Landroid/net/IpSecConfig;->getAuthentication()Landroid/net/IpSecAlgorithm;
+Landroid/net/IpSecConfig;->getDestinationAddress()Ljava/lang/String;
+Landroid/net/IpSecConfig;->getEncapRemotePort()I
+Landroid/net/IpSecConfig;->getEncapSocketResourceId()I
+Landroid/net/IpSecConfig;->getEncapType()I
+Landroid/net/IpSecConfig;->getEncryption()Landroid/net/IpSecAlgorithm;
+Landroid/net/IpSecConfig;->getMarkMask()I
+Landroid/net/IpSecConfig;->getMarkValue()I
+Landroid/net/IpSecConfig;->getMode()I
+Landroid/net/IpSecConfig;->getNattKeepaliveInterval()I
+Landroid/net/IpSecConfig;->getNetwork()Landroid/net/Network;
+Landroid/net/IpSecConfig;->getSourceAddress()Ljava/lang/String;
+Landroid/net/IpSecConfig;->getSpiResourceId()I
+Landroid/net/IpSecConfig;->mAuthenticatedEncryption:Landroid/net/IpSecAlgorithm;
+Landroid/net/IpSecConfig;->mAuthentication:Landroid/net/IpSecAlgorithm;
+Landroid/net/IpSecConfig;->mDestinationAddress:Ljava/lang/String;
+Landroid/net/IpSecConfig;->mEncapRemotePort:I
+Landroid/net/IpSecConfig;->mEncapSocketResourceId:I
+Landroid/net/IpSecConfig;->mEncapType:I
+Landroid/net/IpSecConfig;->mEncryption:Landroid/net/IpSecAlgorithm;
+Landroid/net/IpSecConfig;->mMarkMask:I
+Landroid/net/IpSecConfig;->mMarkValue:I
+Landroid/net/IpSecConfig;->mMode:I
+Landroid/net/IpSecConfig;->mNattKeepaliveInterval:I
+Landroid/net/IpSecConfig;->mNetwork:Landroid/net/Network;
+Landroid/net/IpSecConfig;->mSourceAddress:Ljava/lang/String;
+Landroid/net/IpSecConfig;->mSpiResourceId:I
+Landroid/net/IpSecConfig;->setAuthenticatedEncryption(Landroid/net/IpSecAlgorithm;)V
+Landroid/net/IpSecConfig;->setAuthentication(Landroid/net/IpSecAlgorithm;)V
+Landroid/net/IpSecConfig;->setDestinationAddress(Ljava/lang/String;)V
+Landroid/net/IpSecConfig;->setEncapRemotePort(I)V
+Landroid/net/IpSecConfig;->setEncapSocketResourceId(I)V
+Landroid/net/IpSecConfig;->setEncapType(I)V
+Landroid/net/IpSecConfig;->setEncryption(Landroid/net/IpSecAlgorithm;)V
+Landroid/net/IpSecConfig;->setMarkMask(I)V
+Landroid/net/IpSecConfig;->setMarkValue(I)V
+Landroid/net/IpSecConfig;->setMode(I)V
+Landroid/net/IpSecConfig;->setNattKeepaliveInterval(I)V
+Landroid/net/IpSecConfig;->setNetwork(Landroid/net/Network;)V
+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;
+Landroid/net/IpSecManager$IpSecTunnelInterface;->getResourceId()I
+Landroid/net/IpSecManager$IpSecTunnelInterface;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/net/IpSecManager$IpSecTunnelInterface;->mInterfaceName:Ljava/lang/String;
+Landroid/net/IpSecManager$IpSecTunnelInterface;->mLocalAddress:Ljava/net/InetAddress;
+Landroid/net/IpSecManager$IpSecTunnelInterface;->mOpPackageName:Ljava/lang/String;
+Landroid/net/IpSecManager$IpSecTunnelInterface;->mRemoteAddress:Ljava/net/InetAddress;
+Landroid/net/IpSecManager$IpSecTunnelInterface;->mResourceId:I
+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
+Landroid/net/IpSecManager$SecurityParameterIndex;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/net/IpSecManager$SecurityParameterIndex;->mDestinationAddress:Ljava/net/InetAddress;
+Landroid/net/IpSecManager$SecurityParameterIndex;->mResourceId:I
+Landroid/net/IpSecManager$SecurityParameterIndex;->mService:Landroid/net/IIpSecService;
+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
+Landroid/net/IpSecManager$UdpEncapsulationSocket;-><init>(Landroid/net/IIpSecService;I)V
+Landroid/net/IpSecManager$UdpEncapsulationSocket;->getResourceId()I
+Landroid/net/IpSecManager$UdpEncapsulationSocket;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/net/IpSecManager$UdpEncapsulationSocket;->mPfd:Landroid/os/ParcelFileDescriptor;
+Landroid/net/IpSecManager$UdpEncapsulationSocket;->mPort:I
+Landroid/net/IpSecManager$UdpEncapsulationSocket;->mResourceId:I
+Landroid/net/IpSecManager$UdpEncapsulationSocket;->mService:Landroid/net/IIpSecService;
+Landroid/net/IpSecManager;-><init>(Landroid/content/Context;Landroid/net/IIpSecService;)V
+Landroid/net/IpSecManager;->applyTunnelModeTransform(Landroid/net/IpSecManager$IpSecTunnelInterface;ILandroid/net/IpSecTransform;)V
+Landroid/net/IpSecManager;->createIpSecTunnelInterface(Ljava/net/InetAddress;Ljava/net/InetAddress;Landroid/net/Network;)Landroid/net/IpSecManager$IpSecTunnelInterface;
+Landroid/net/IpSecManager;->INVALID_RESOURCE_ID:I
+Landroid/net/IpSecManager;->maybeHandleServiceSpecificException(Landroid/os/ServiceSpecificException;)V
+Landroid/net/IpSecManager;->mContext:Landroid/content/Context;
+Landroid/net/IpSecManager;->mService:Landroid/net/IIpSecService;
+Landroid/net/IpSecManager;->removeTunnelModeTransform(Landroid/net/Network;Landroid/net/IpSecTransform;)V
+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
+Landroid/net/IpSecSpiResponse;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/IpSecSpiResponse;->resourceId:I
+Landroid/net/IpSecSpiResponse;->spi:I
+Landroid/net/IpSecSpiResponse;->status:I
+Landroid/net/IpSecSpiResponse;->TAG:Ljava/lang/String;
+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
+Landroid/net/IpSecTransform$NattKeepaliveCallback;->ERROR_INVALID_NETWORK:I
+Landroid/net/IpSecTransform$NattKeepaliveCallback;->onError(I)V
+Landroid/net/IpSecTransform$NattKeepaliveCallback;->onStarted()V
+Landroid/net/IpSecTransform$NattKeepaliveCallback;->onStopped()V
+Landroid/net/IpSecTransform;-><init>(Landroid/content/Context;Landroid/net/IpSecConfig;)V
+Landroid/net/IpSecTransform;->activate()Landroid/net/IpSecTransform;
+Landroid/net/IpSecTransform;->checkResultStatus(I)V
+Landroid/net/IpSecTransform;->ENCAP_ESPINUDP:I
+Landroid/net/IpSecTransform;->ENCAP_ESPINUDP_NON_IKE:I
+Landroid/net/IpSecTransform;->ENCAP_NONE:I
+Landroid/net/IpSecTransform;->equals(Landroid/net/IpSecTransform;Landroid/net/IpSecTransform;)Z
+Landroid/net/IpSecTransform;->getConfig()Landroid/net/IpSecConfig;
+Landroid/net/IpSecTransform;->getIpSecService()Landroid/net/IIpSecService;
+Landroid/net/IpSecTransform;->getResourceId()I
+Landroid/net/IpSecTransform;->mCallbackHandler:Landroid/os/Handler;
+Landroid/net/IpSecTransform;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/net/IpSecTransform;->mConfig:Landroid/net/IpSecConfig;
+Landroid/net/IpSecTransform;->mContext:Landroid/content/Context;
+Landroid/net/IpSecTransform;->mKeepalive:Landroid/net/ConnectivityManager$PacketKeepalive;
+Landroid/net/IpSecTransform;->mKeepaliveCallback:Landroid/net/ConnectivityManager$PacketKeepaliveCallback;
+Landroid/net/IpSecTransform;->MODE_TRANSPORT:I
+Landroid/net/IpSecTransform;->MODE_TUNNEL:I
+Landroid/net/IpSecTransform;->mResourceId:I
+Landroid/net/IpSecTransform;->mUserKeepaliveCallback:Landroid/net/IpSecTransform$NattKeepaliveCallback;
+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
+Landroid/net/IpSecTransformResponse;->CREATOR:Landroid/os/Parcelable$Creator;
+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
+Landroid/net/IpSecTunnelInterfaceResponse;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/IpSecTunnelInterfaceResponse;->interfaceName:Ljava/lang/String;
+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
+Landroid/net/IpSecUdpEncapResponse;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/IpSecUdpEncapResponse;->fileDescriptor:Landroid/os/ParcelFileDescriptor;
+Landroid/net/IpSecUdpEncapResponse;->port:I
+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;
+Landroid/net/KeepalivePacketData;->dstAddress:Ljava/net/InetAddress;
+Landroid/net/KeepalivePacketData;->dstPort:I
+Landroid/net/KeepalivePacketData;->getPacket()[B
+Landroid/net/KeepalivePacketData;->IPV4_HEADER_LENGTH:I
+Landroid/net/KeepalivePacketData;->mPacket:[B
+Landroid/net/KeepalivePacketData;->nattKeepalivePacket(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Landroid/net/KeepalivePacketData;
+Landroid/net/KeepalivePacketData;->srcAddress:Ljava/net/InetAddress;
+Landroid/net/KeepalivePacketData;->srcPort:I
+Landroid/net/KeepalivePacketData;->TAG:Ljava/lang/String;
+Landroid/net/KeepalivePacketData;->UDP_HEADER_LENGTH:I
+Landroid/net/LinkAddress;-><init>(Ljava/lang/String;II)V
+Landroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;III)V
+Landroid/net/LinkAddress;-><init>(Ljava/net/InterfaceAddress;)V
+Landroid/net/LinkAddress;->flags:I
+Landroid/net/LinkAddress;->init(Ljava/net/InetAddress;III)V
+Landroid/net/LinkAddress;->isGlobalPreferred()Z
+Landroid/net/LinkAddress;->isIPv4()Z
+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;
+Landroid/net/LinkProperties;->compareAllInterfaceNames(Landroid/net/LinkProperties;)Landroid/net/LinkProperties$CompareResult;
+Landroid/net/LinkProperties;->compareAllRoutes(Landroid/net/LinkProperties;)Landroid/net/LinkProperties$CompareResult;
+Landroid/net/LinkProperties;->compareDnses(Landroid/net/LinkProperties;)Landroid/net/LinkProperties$CompareResult;
+Landroid/net/LinkProperties;->compareValidatedPrivateDnses(Landroid/net/LinkProperties;)Landroid/net/LinkProperties$CompareResult;
+Landroid/net/LinkProperties;->ensureDirectlyConnectedRoutes()V
+Landroid/net/LinkProperties;->findLinkAddressIndex(Landroid/net/LinkAddress;)I
+Landroid/net/LinkProperties;->getValidatedPrivateDnsServers()Ljava/util/List;
+Landroid/net/LinkProperties;->hasIPv4AddressOnInterface(Ljava/lang/String;)Z
+Landroid/net/LinkProperties;->isIdenticalMtu(Landroid/net/LinkProperties;)Z
+Landroid/net/LinkProperties;->isIdenticalPrivateDns(Landroid/net/LinkProperties;)Z
+Landroid/net/LinkProperties;->isIdenticalTcpBufferSizes(Landroid/net/LinkProperties;)Z
+Landroid/net/LinkProperties;->isIdenticalValidatedPrivateDnses(Landroid/net/LinkProperties;)Z
+Landroid/net/LinkProperties;->isIPv4Provisioned()Z
+Landroid/net/LinkProperties;->isValidMtu(IZ)Z
+Landroid/net/LinkProperties;->MAX_MTU:I
+Landroid/net/LinkProperties;->mDnses:Ljava/util/ArrayList;
+Landroid/net/LinkProperties;->mDomains:Ljava/lang/String;
+Landroid/net/LinkProperties;->mHttpProxy:Landroid/net/ProxyInfo;
+Landroid/net/LinkProperties;->MIN_MTU:I
+Landroid/net/LinkProperties;->MIN_MTU_V6:I
+Landroid/net/LinkProperties;->mLinkAddresses:Ljava/util/ArrayList;
+Landroid/net/LinkProperties;->mMtu:I
+Landroid/net/LinkProperties;->mPrivateDnsServerName:Ljava/lang/String;
+Landroid/net/LinkProperties;->mRoutes:Ljava/util/ArrayList;
+Landroid/net/LinkProperties;->mStackedLinks:Ljava/util/Hashtable;
+Landroid/net/LinkProperties;->mTcpBufferSizes:Ljava/lang/String;
+Landroid/net/LinkProperties;->mUsePrivateDns:Z
+Landroid/net/LinkProperties;->mValidatedPrivateDnses:Ljava/util/ArrayList;
+Landroid/net/LinkProperties;->removeLinkAddress(Landroid/net/LinkAddress;)Z
+Landroid/net/LinkProperties;->removeStackedLink(Ljava/lang/String;)Z
+Landroid/net/LinkProperties;->removeValidatedPrivateDnsServer(Ljava/net/InetAddress;)Z
+Landroid/net/LinkProperties;->routeWithInterface(Landroid/net/RouteInfo;)Landroid/net/RouteInfo;
+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
+Landroid/net/LinkQualityInfo;->getLastDataSampleTime()J
+Landroid/net/LinkQualityInfo;->getNetworkType()I
+Landroid/net/LinkQualityInfo;->getNormalizedSignalStrength()I
+Landroid/net/LinkQualityInfo;->getPacketCount()J
+Landroid/net/LinkQualityInfo;->getPacketErrorCount()J
+Landroid/net/LinkQualityInfo;->getTheoreticalLatency()I
+Landroid/net/LinkQualityInfo;->getTheoreticalRxBandwidth()I
+Landroid/net/LinkQualityInfo;->getTheoreticalTxBandwidth()I
+Landroid/net/LinkQualityInfo;->initializeFromParcel(Landroid/os/Parcel;)V
+Landroid/net/LinkQualityInfo;->mDataSampleDuration:I
+Landroid/net/LinkQualityInfo;->mLastDataSampleTime:J
+Landroid/net/LinkQualityInfo;->mNetworkType:I
+Landroid/net/LinkQualityInfo;->mNormalizedSignalStrength:I
+Landroid/net/LinkQualityInfo;->mPacketCount:J
+Landroid/net/LinkQualityInfo;->mPacketErrorCount:J
+Landroid/net/LinkQualityInfo;->mTheoreticalLatency:I
+Landroid/net/LinkQualityInfo;->mTheoreticalRxBandwidth:I
+Landroid/net/LinkQualityInfo;->mTheoreticalTxBandwidth:I
+Landroid/net/LinkQualityInfo;->NORMALIZED_MAX_SIGNAL_STRENGTH:I
+Landroid/net/LinkQualityInfo;->NORMALIZED_MIN_SIGNAL_STRENGTH:I
+Landroid/net/LinkQualityInfo;->NORMALIZED_SIGNAL_STRENGTH_RANGE:I
+Landroid/net/LinkQualityInfo;->OBJECT_TYPE_LINK_QUALITY_INFO:I
+Landroid/net/LinkQualityInfo;->OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO:I
+Landroid/net/LinkQualityInfo;->OBJECT_TYPE_WIFI_LINK_QUALITY_INFO:I
+Landroid/net/LinkQualityInfo;->setNetworkType(I)V
+Landroid/net/LinkQualityInfo;->setNormalizedSignalStrength(I)V
+Landroid/net/LinkQualityInfo;->setTheoreticalLatency(I)V
+Landroid/net/LinkQualityInfo;->setTheoreticalRxBandwidth(I)V
+Landroid/net/LinkQualityInfo;->setTheoreticalTxBandwidth(I)V
+Landroid/net/LinkQualityInfo;->UNKNOWN_INT:I
+Landroid/net/LinkQualityInfo;->UNKNOWN_LONG:J
+Landroid/net/LinkQualityInfo;->writeToParcel(Landroid/os/Parcel;II)V
+Landroid/net/LocalServerSocket;->impl:Landroid/net/LocalSocketImpl;
+Landroid/net/LocalServerSocket;->LISTEN_BACKLOG:I
+Landroid/net/LocalServerSocket;->localAddress:Landroid/net/LocalSocketAddress;
+Landroid/net/LocalSocket;-><init>(Landroid/net/LocalSocketImpl;I)V
+Landroid/net/LocalSocket;->createConnectedLocalSocket(Landroid/net/LocalSocketImpl;I)Landroid/net/LocalSocket;
+Landroid/net/LocalSocket;->createConnectedLocalSocket(Ljava/io/FileDescriptor;)Landroid/net/LocalSocket;
+Landroid/net/LocalSocket;->createLocalSocketForAccept(Landroid/net/LocalSocketImpl;)Landroid/net/LocalSocket;
+Landroid/net/LocalSocket;->implCreated:Z
+Landroid/net/LocalSocket;->implCreateIfNeeded()V
+Landroid/net/LocalSocket;->isBound:Z
+Landroid/net/LocalSocket;->isConnected:Z
+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
+Landroid/net/LocalSocketImpl;->bind(Landroid/net/LocalSocketAddress;)V
+Landroid/net/LocalSocketImpl;->bindLocal(Ljava/io/FileDescriptor;Ljava/lang/String;I)V
+Landroid/net/LocalSocketImpl;->close()V
+Landroid/net/LocalSocketImpl;->connect(Landroid/net/LocalSocketAddress;I)V
+Landroid/net/LocalSocketImpl;->connectLocal(Ljava/io/FileDescriptor;Ljava/lang/String;I)V
+Landroid/net/LocalSocketImpl;->create(I)V
+Landroid/net/LocalSocketImpl;->fd:Ljava/io/FileDescriptor;
+Landroid/net/LocalSocketImpl;->fis:Landroid/net/LocalSocketImpl$SocketInputStream;
+Landroid/net/LocalSocketImpl;->fos:Landroid/net/LocalSocketImpl$SocketOutputStream;
+Landroid/net/LocalSocketImpl;->getAncillaryFileDescriptors()[Ljava/io/FileDescriptor;
+Landroid/net/LocalSocketImpl;->getFileDescriptor()Ljava/io/FileDescriptor;
+Landroid/net/LocalSocketImpl;->getInputStream()Ljava/io/InputStream;
+Landroid/net/LocalSocketImpl;->getOption(I)Ljava/lang/Object;
+Landroid/net/LocalSocketImpl;->getOutputStream()Ljava/io/OutputStream;
+Landroid/net/LocalSocketImpl;->getPeerCredentials()Landroid/net/Credentials;
+Landroid/net/LocalSocketImpl;->getPeerCredentials_native(Ljava/io/FileDescriptor;)Landroid/net/Credentials;
+Landroid/net/LocalSocketImpl;->getSockAddress()Landroid/net/LocalSocketAddress;
+Landroid/net/LocalSocketImpl;->javaSoToOsOpt(I)I
+Landroid/net/LocalSocketImpl;->listen(I)V
+Landroid/net/LocalSocketImpl;->mFdCreatedInternally:Z
+Landroid/net/LocalSocketImpl;->readba_native([BIILjava/io/FileDescriptor;)I
+Landroid/net/LocalSocketImpl;->readMonitor:Ljava/lang/Object;
+Landroid/net/LocalSocketImpl;->read_native(Ljava/io/FileDescriptor;)I
+Landroid/net/LocalSocketImpl;->sendUrgentData(I)V
+Landroid/net/LocalSocketImpl;->setFileDescriptorsForSend([Ljava/io/FileDescriptor;)V
+Landroid/net/LocalSocketImpl;->setOption(ILjava/lang/Object;)V
+Landroid/net/LocalSocketImpl;->shutdownInput()V
+Landroid/net/LocalSocketImpl;->shutdownOutput()V
+Landroid/net/LocalSocketImpl;->supportsUrgentData()Z
+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
+Landroid/net/MacAddress;->createRandomUnicastAddress()Landroid/net/MacAddress;
+Landroid/net/MacAddress;->createRandomUnicastAddress(Landroid/net/MacAddress;Ljava/util/Random;)Landroid/net/MacAddress;
+Landroid/net/MacAddress;->createRandomUnicastAddressWithGoogleBase()Landroid/net/MacAddress;
+Landroid/net/MacAddress;->ETHER_ADDR_BROADCAST:[B
+Landroid/net/MacAddress;->ETHER_ADDR_LEN:I
+Landroid/net/MacAddress;->isMacAddress([B)Z
+Landroid/net/MacAddress;->isMulticastAddress()Z
+Landroid/net/MacAddress;->LOCALLY_ASSIGNED_MASK:J
+Landroid/net/MacAddress;->longAddrFromByteAddr([B)J
+Landroid/net/MacAddress;->longAddrFromStringAddr(Ljava/lang/String;)J
+Landroid/net/MacAddress;->macAddressType([B)I
+Landroid/net/MacAddress;->mAddr:J
+Landroid/net/MacAddress;->MULTICAST_MASK:J
+Landroid/net/MacAddress;->NIC_MASK:J
+Landroid/net/MacAddress;->OUI_MASK:J
+Landroid/net/MacAddress;->stringAddrFromByteAddr([B)Ljava/lang/String;
+Landroid/net/MacAddress;->stringAddrFromLongAddr(J)Ljava/lang/String;
+Landroid/net/MacAddress;->TYPE_UNKNOWN:I
+Landroid/net/MacAddress;->VALID_LONG_MASK:J
+Landroid/net/MailTo;-><init>()V
+Landroid/net/MailTo;->BODY:Ljava/lang/String;
+Landroid/net/MailTo;->CC:Ljava/lang/String;
+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
+Landroid/net/metrics/ConnectStats;->connectCount:I
+Landroid/net/metrics/ConnectStats;->countConnect(ILjava/lang/String;)V
+Landroid/net/metrics/ConnectStats;->countError(I)V
+Landroid/net/metrics/ConnectStats;->countLatency(II)V
+Landroid/net/metrics/ConnectStats;->EALREADY:I
+Landroid/net/metrics/ConnectStats;->EINPROGRESS:I
+Landroid/net/metrics/ConnectStats;->errnos:Landroid/util/SparseIntArray;
+Landroid/net/metrics/ConnectStats;->eventCount:I
+Landroid/net/metrics/ConnectStats;->ipv6ConnectCount:I
+Landroid/net/metrics/ConnectStats;->isIPv6(Ljava/lang/String;)Z
+Landroid/net/metrics/ConnectStats;->isNonBlocking(I)Z
+Landroid/net/metrics/ConnectStats;->isSuccess(I)Z
+Landroid/net/metrics/ConnectStats;->latencies:Landroid/util/IntArray;
+Landroid/net/metrics/ConnectStats;->mLatencyTb:Lcom/android/internal/util/TokenBucket;
+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
+Landroid/net/metrics/DefaultNetworkEvent;->finalScore:I
+Landroid/net/metrics/DefaultNetworkEvent;->initialScore:I
+Landroid/net/metrics/DefaultNetworkEvent;->ipSupport()Ljava/lang/String;
+Landroid/net/metrics/DefaultNetworkEvent;->ipv4:Z
+Landroid/net/metrics/DefaultNetworkEvent;->ipv6:Z
+Landroid/net/metrics/DefaultNetworkEvent;->netId:I
+Landroid/net/metrics/DefaultNetworkEvent;->previousTransports:I
+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
+Landroid/net/metrics/DhcpErrorEvent;->errorCode:I
+Landroid/net/metrics/DhcpErrorEvent;->L2_ERROR:I
+Landroid/net/metrics/DhcpErrorEvent;->L3_ERROR:I
+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
+Landroid/net/metrics/DnsEvent;->eventTypes:[B
+Landroid/net/metrics/DnsEvent;->latenciesMs:[I
+Landroid/net/metrics/DnsEvent;->netId:I
+Landroid/net/metrics/DnsEvent;->resize(I)V
+Landroid/net/metrics/DnsEvent;->returnCodes:[B
+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
+Landroid/net/metrics/IpConnectivityLog;->log(I[ILandroid/os/Parcelable;)Z
+Landroid/net/metrics/IpConnectivityLog;->log(JLandroid/os/Parcelable;)Z
+Landroid/net/metrics/IpConnectivityLog;->log(Landroid/net/ConnectivityMetricsEvent;)Z
+Landroid/net/metrics/IpConnectivityLog;->makeEv(Landroid/os/Parcelable;)Landroid/net/ConnectivityMetricsEvent;
+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;
+Landroid/net/metrics/IpManagerEvent;->durationMs:J
+Landroid/net/metrics/IpManagerEvent;->ERROR_INTERFACE_NOT_FOUND:I
+Landroid/net/metrics/IpManagerEvent;->ERROR_INVALID_PROVISIONING:I
+Landroid/net/metrics/IpManagerEvent;->ERROR_STARTING_IPREACHABILITYMONITOR:I
+Landroid/net/metrics/IpManagerEvent;->ERROR_STARTING_IPV4:I
+Landroid/net/metrics/IpManagerEvent;->ERROR_STARTING_IPV6:I
+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
+Landroid/net/metrics/IpReachabilityEvent;->NUD_FAILED:I
+Landroid/net/metrics/IpReachabilityEvent;->NUD_FAILED_ORGANIC:I
+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
+Landroid/net/metrics/NetworkEvent;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/metrics/NetworkEvent;->durationMs:J
+Landroid/net/metrics/NetworkEvent;->eventType:I
+Landroid/net/metrics/NetworkEvent;->NETWORK_CAPTIVE_PORTAL_FOUND:I
+Landroid/net/metrics/NetworkEvent;->NETWORK_CONNECTED:I
+Landroid/net/metrics/NetworkEvent;->NETWORK_DISCONNECTED:I
+Landroid/net/metrics/NetworkEvent;->NETWORK_FIRST_VALIDATION_PORTAL_FOUND:I
+Landroid/net/metrics/NetworkEvent;->NETWORK_FIRST_VALIDATION_SUCCESS:I
+Landroid/net/metrics/NetworkEvent;->NETWORK_LINGER:I
+Landroid/net/metrics/NetworkEvent;->NETWORK_REVALIDATION_PORTAL_FOUND:I
+Landroid/net/metrics/NetworkEvent;->NETWORK_REVALIDATION_SUCCESS:I
+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
+Landroid/net/metrics/NetworkMetrics$Metrics;->count(DI)V
+Landroid/net/metrics/NetworkMetrics$Metrics;->count:I
+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;
+Landroid/net/metrics/NetworkMetrics$Summary;->dnsErrorRate:Landroid/net/metrics/NetworkMetrics$Metrics;
+Landroid/net/metrics/NetworkMetrics$Summary;->dnsLatencies:Landroid/net/metrics/NetworkMetrics$Metrics;
+Landroid/net/metrics/NetworkMetrics$Summary;->merge(Landroid/net/metrics/NetworkMetrics$Summary;)V
+Landroid/net/metrics/NetworkMetrics$Summary;->netId:I
+Landroid/net/metrics/NetworkMetrics$Summary;->roundTripTimeUs:Landroid/net/metrics/NetworkMetrics$Metrics;
+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
+Landroid/net/metrics/NetworkMetrics;->addTcpStatsResult(IIII)V
+Landroid/net/metrics/NetworkMetrics;->connectMetrics:Landroid/net/metrics/ConnectStats;
+Landroid/net/metrics/NetworkMetrics;->CONNECT_LATENCY_MAXIMUM_RECORDS:I
+Landroid/net/metrics/NetworkMetrics;->dnsMetrics:Landroid/net/metrics/DnsEvent;
+Landroid/net/metrics/NetworkMetrics;->getPendingStats()Landroid/net/metrics/NetworkMetrics$Summary;
+Landroid/net/metrics/NetworkMetrics;->INITIAL_DNS_BATCH_SIZE:I
+Landroid/net/metrics/NetworkMetrics;->netId:I
+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
+Landroid/net/metrics/RaEvent$Builder;->rdnssLifetime:J
+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;
+Landroid/net/metrics/RaEvent;->dnsslLifetime:J
+Landroid/net/metrics/RaEvent;->NO_LIFETIME:J
+Landroid/net/metrics/RaEvent;->prefixPreferredLifetime:J
+Landroid/net/metrics/RaEvent;->prefixValidLifetime:J
+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;
+Landroid/net/metrics/ValidationProbeEvent;->DNS_FAILURE:I
+Landroid/net/metrics/ValidationProbeEvent;->DNS_SUCCESS:I
+Landroid/net/metrics/ValidationProbeEvent;->durationMs:J
+Landroid/net/metrics/ValidationProbeEvent;->FIRST_VALIDATION:I
+Landroid/net/metrics/ValidationProbeEvent;->getProbeName(I)Ljava/lang/String;
+Landroid/net/metrics/ValidationProbeEvent;->getValidationStage(I)Ljava/lang/String;
+Landroid/net/metrics/ValidationProbeEvent;->makeProbeType(IZ)I
+Landroid/net/metrics/ValidationProbeEvent;->probeType:I
+Landroid/net/metrics/ValidationProbeEvent;->PROBE_DNS:I
+Landroid/net/metrics/ValidationProbeEvent;->PROBE_FALLBACK:I
+Landroid/net/metrics/ValidationProbeEvent;->PROBE_HTTP:I
+Landroid/net/metrics/ValidationProbeEvent;->PROBE_HTTPS:I
+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;
+Landroid/net/metrics/WakeupEvent;->dstPort:I
+Landroid/net/metrics/WakeupEvent;->ethertype:I
+Landroid/net/metrics/WakeupEvent;->iface:Ljava/lang/String;
+Landroid/net/metrics/WakeupEvent;->ipNextHeader:I
+Landroid/net/metrics/WakeupEvent;->srcIp:Ljava/lang/String;
+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
+Landroid/net/metrics/WakeupStats;->creationTimeMs:J
+Landroid/net/metrics/WakeupStats;->durationSec:J
+Landroid/net/metrics/WakeupStats;->ethertypes:Landroid/util/SparseIntArray;
+Landroid/net/metrics/WakeupStats;->iface:Ljava/lang/String;
+Landroid/net/metrics/WakeupStats;->increment(Landroid/util/SparseIntArray;I)V
+Landroid/net/metrics/WakeupStats;->ipNextHeaders:Landroid/util/SparseIntArray;
+Landroid/net/metrics/WakeupStats;->l2BroadcastCount:J
+Landroid/net/metrics/WakeupStats;->l2MulticastCount:J
+Landroid/net/metrics/WakeupStats;->l2UnicastCount:J
+Landroid/net/metrics/WakeupStats;->nonApplicationWakeups:J
+Landroid/net/metrics/WakeupStats;->noUidWakeups:J
+Landroid/net/metrics/WakeupStats;->NO_UID:I
+Landroid/net/metrics/WakeupStats;->rootWakeups:J
+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
+Landroid/net/MobileLinkQualityInfo;->getEvdoDbm()I
+Landroid/net/MobileLinkQualityInfo;->getEvdoEcio()I
+Landroid/net/MobileLinkQualityInfo;->getEvdoSnr()I
+Landroid/net/MobileLinkQualityInfo;->getGsmErrorRate()I
+Landroid/net/MobileLinkQualityInfo;->getLteCqi()I
+Landroid/net/MobileLinkQualityInfo;->getLteRsrp()I
+Landroid/net/MobileLinkQualityInfo;->getLteRsrq()I
+Landroid/net/MobileLinkQualityInfo;->getLteRssnr()I
+Landroid/net/MobileLinkQualityInfo;->getLteSignalStrength()I
+Landroid/net/MobileLinkQualityInfo;->getRssi()I
+Landroid/net/MobileLinkQualityInfo;->mCdmaDbm:I
+Landroid/net/MobileLinkQualityInfo;->mCdmaEcio:I
+Landroid/net/MobileLinkQualityInfo;->mEvdoDbm:I
+Landroid/net/MobileLinkQualityInfo;->mEvdoEcio:I
+Landroid/net/MobileLinkQualityInfo;->mEvdoSnr:I
+Landroid/net/MobileLinkQualityInfo;->mGsmErrorRate:I
+Landroid/net/MobileLinkQualityInfo;->mLteCqi:I
+Landroid/net/MobileLinkQualityInfo;->mLteRsrp:I
+Landroid/net/MobileLinkQualityInfo;->mLteRsrq:I
+Landroid/net/MobileLinkQualityInfo;->mLteRssnr:I
+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
+Landroid/net/Network;->getNetIdForResolv()I
+Landroid/net/Network;->HANDLE_MAGIC:J
+Landroid/net/Network;->HANDLE_MAGIC_SIZE:I
+Landroid/net/Network;->httpKeepAlive:Z
+Landroid/net/Network;->httpKeepAliveDurationMs:J
+Landroid/net/Network;->httpMaxConnections:I
+Landroid/net/Network;->maybeInitUrlConnectionFactory()V
+Landroid/net/Network;->mLock:Ljava/lang/Object;
+Landroid/net/Network;->mNetworkBoundSocketFactory:Landroid/net/Network$NetworkBoundSocketFactory;
+Landroid/net/Network;->mPrivateDnsBypass:Z
+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
+Landroid/net/NetworkAgent;->BW_REFRESH_MIN_WIN_MS:J
+Landroid/net/NetworkAgent;->CMD_PREVENT_AUTOMATIC_RECONNECT:I
+Landroid/net/NetworkAgent;->CMD_REPORT_NETWORK_STATUS:I
+Landroid/net/NetworkAgent;->CMD_REQUEST_BANDWIDTH_UPDATE:I
+Landroid/net/NetworkAgent;->CMD_SAVE_ACCEPT_UNVALIDATED:I
+Landroid/net/NetworkAgent;->CMD_SET_SIGNAL_STRENGTH_THRESHOLDS:I
+Landroid/net/NetworkAgent;->CMD_START_PACKET_KEEPALIVE:I
+Landroid/net/NetworkAgent;->CMD_STOP_PACKET_KEEPALIVE:I
+Landroid/net/NetworkAgent;->CMD_SUSPECT_BAD:I
+Landroid/net/NetworkAgent;->DBG:Z
+Landroid/net/NetworkAgent;->EVENT_NETWORK_CAPABILITIES_CHANGED:I
+Landroid/net/NetworkAgent;->EVENT_NETWORK_INFO_CHANGED:I
+Landroid/net/NetworkAgent;->EVENT_NETWORK_PROPERTIES_CHANGED:I
+Landroid/net/NetworkAgent;->EVENT_NETWORK_SCORE_CHANGED:I
+Landroid/net/NetworkAgent;->EVENT_PACKET_KEEPALIVE:I
+Landroid/net/NetworkAgent;->EVENT_SET_EXPLICITLY_SELECTED:I
+Landroid/net/NetworkAgent;->explicitlySelected(Z)V
+Landroid/net/NetworkAgent;->INVALID_NETWORK:I
+Landroid/net/NetworkAgent;->log(Ljava/lang/String;)V
+Landroid/net/NetworkAgent;->LOG_TAG:Ljava/lang/String;
+Landroid/net/NetworkAgent;->mAsyncChannel:Lcom/android/internal/util/AsyncChannel;
+Landroid/net/NetworkAgent;->mContext:Landroid/content/Context;
+Landroid/net/NetworkAgent;->mLastBwRefreshTime:J
+Landroid/net/NetworkAgent;->mPollLcePending:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/net/NetworkAgent;->mPollLceScheduled:Z
+Landroid/net/NetworkAgent;->mPreConnectedQueue:Ljava/util/ArrayList;
+Landroid/net/NetworkAgent;->netId:I
+Landroid/net/NetworkAgent;->networkStatus(ILjava/lang/String;)V
+Landroid/net/NetworkAgent;->onPacketKeepaliveEvent(II)V
+Landroid/net/NetworkAgent;->pollLceData()V
+Landroid/net/NetworkAgent;->preventAutomaticReconnect()V
+Landroid/net/NetworkAgent;->queueOrSendMessage(III)V
+Landroid/net/NetworkAgent;->queueOrSendMessage(IIILjava/lang/Object;)V
+Landroid/net/NetworkAgent;->queueOrSendMessage(ILjava/lang/Object;)V
+Landroid/net/NetworkAgent;->queueOrSendMessage(Landroid/os/Message;)V
+Landroid/net/NetworkAgent;->REDIRECT_URL_KEY:Ljava/lang/String;
+Landroid/net/NetworkAgent;->saveAcceptUnvalidated(Z)V
+Landroid/net/NetworkAgent;->sendLinkProperties(Landroid/net/LinkProperties;)V
+Landroid/net/NetworkAgent;->sendNetworkCapabilities(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkAgent;->sendNetworkScore(I)V
+Landroid/net/NetworkAgent;->setSignalStrengthThresholds([I)V
+Landroid/net/NetworkAgent;->startPacketKeepalive(Landroid/os/Message;)V
+Landroid/net/NetworkAgent;->stopPacketKeepalive(Landroid/os/Message;)V
+Landroid/net/NetworkAgent;->unwanted()V
+Landroid/net/NetworkAgent;->VALID_NETWORK:I
+Landroid/net/NetworkAgent;->VDBG:Z
+Landroid/net/NetworkAgent;->WIFI_BASE_SCORE:I
+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
+Landroid/net/NetworkCapabilities;->appliesToUidRange(Landroid/net/UidRange;)Z
+Landroid/net/NetworkCapabilities;->capabilityNameOf(I)Ljava/lang/String;
+Landroid/net/NetworkCapabilities;->capabilityNamesOf([I)Ljava/lang/String;
+Landroid/net/NetworkCapabilities;->checkValidCapability(I)V
+Landroid/net/NetworkCapabilities;->checkValidTransportType(I)V
+Landroid/net/NetworkCapabilities;->clearAll()V
+Landroid/net/NetworkCapabilities;->combineCapabilities(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->combineLinkBandwidths(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->combineNetCapabilities(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->combineSignalStrength(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->combineSpecifiers(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->combineSSIDs(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->combineTransportTypes(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->combineUids(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->DEFAULT_CAPABILITIES:J
+Landroid/net/NetworkCapabilities;->describeFirstNonRequestableCapability()Ljava/lang/String;
+Landroid/net/NetworkCapabilities;->describeImmutableDifferences(Landroid/net/NetworkCapabilities;)Ljava/lang/String;
+Landroid/net/NetworkCapabilities;->equalRequestableCapabilities(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->equalsLinkBandwidths(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->equalsNetCapabilities(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->equalsNetCapabilitiesRequestable(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->equalsSignalStrength(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->equalsSpecifier(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->equalsSSID(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->equalsTransportTypes(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->equalsUids(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->FORCE_RESTRICTED_CAPABILITIES:J
+Landroid/net/NetworkCapabilities;->getSSID()Ljava/lang/String;
+Landroid/net/NetworkCapabilities;->getUids()Ljava/util/Set;
+Landroid/net/NetworkCapabilities;->getUnwantedCapabilities()[I
+Landroid/net/NetworkCapabilities;->hasUnwantedCapability(I)Z
+Landroid/net/NetworkCapabilities;->INVALID_UID:I
+Landroid/net/NetworkCapabilities;->isValidCapability(I)Z
+Landroid/net/NetworkCapabilities;->isValidTransport(I)Z
+Landroid/net/NetworkCapabilities;->LINK_BANDWIDTH_UNSPECIFIED:I
+Landroid/net/NetworkCapabilities;->maxBandwidth(II)I
+Landroid/net/NetworkCapabilities;->MAX_NET_CAPABILITY:I
+Landroid/net/NetworkCapabilities;->MAX_TRANSPORT:I
+Landroid/net/NetworkCapabilities;->maybeMarkCapabilitiesRestricted()V
+Landroid/net/NetworkCapabilities;->mEstablishingVpnAppUid:I
+Landroid/net/NetworkCapabilities;->minBandwidth(II)I
+Landroid/net/NetworkCapabilities;->MIN_NET_CAPABILITY:I
+Landroid/net/NetworkCapabilities;->MIN_TRANSPORT:I
+Landroid/net/NetworkCapabilities;->mLinkDownBandwidthKbps:I
+Landroid/net/NetworkCapabilities;->mLinkUpBandwidthKbps:I
+Landroid/net/NetworkCapabilities;->mNetworkSpecifier:Landroid/net/NetworkSpecifier;
+Landroid/net/NetworkCapabilities;->mSSID:Ljava/lang/String;
+Landroid/net/NetworkCapabilities;->mTransportTypes:J
+Landroid/net/NetworkCapabilities;->mUids:Landroid/util/ArraySet;
+Landroid/net/NetworkCapabilities;->mUnwantedNetworkCapabilities:J
+Landroid/net/NetworkCapabilities;->MUTABLE_CAPABILITIES:J
+Landroid/net/NetworkCapabilities;->NON_REQUESTABLE_CAPABILITIES:J
+Landroid/net/NetworkCapabilities;->removeTransportType(I)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->RESTRICTED_CAPABILITIES:J
+Landroid/net/NetworkCapabilities;->satisfiedByImmutableNetworkCapabilities(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->satisfiedByLinkBandwidths(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->satisfiedByNetCapabilities(Landroid/net/NetworkCapabilities;Z)Z
+Landroid/net/NetworkCapabilities;->satisfiedByNetworkCapabilities(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->satisfiedByNetworkCapabilities(Landroid/net/NetworkCapabilities;Z)Z
+Landroid/net/NetworkCapabilities;->satisfiedBySignalStrength(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->satisfiedBySpecifier(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->satisfiedBySSID(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->satisfiedByTransportTypes(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->satisfiedByUids(Landroid/net/NetworkCapabilities;)Z
+Landroid/net/NetworkCapabilities;->set(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkCapabilities;->setCapabilities([I)V
+Landroid/net/NetworkCapabilities;->setCapabilities([I[I)V
+Landroid/net/NetworkCapabilities;->setCapability(IZ)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->setEstablishingVpnAppUid(I)V
+Landroid/net/NetworkCapabilities;->setLinkDownstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->setLinkUpstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->setNetworkSpecifier(Landroid/net/NetworkSpecifier;)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->setSingleUid(I)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->setSSID(Ljava/lang/String;)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->setTransportType(IZ)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->setTransportTypes([I)V
+Landroid/net/NetworkCapabilities;->setUids(Ljava/util/Set;)Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkCapabilities;->SIGNAL_STRENGTH_UNSPECIFIED:I
+Landroid/net/NetworkCapabilities;->TAG:Ljava/lang/String;
+Landroid/net/NetworkCapabilities;->transportNameOf(I)Ljava/lang/String;
+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
+Landroid/net/NetworkCapabilitiesProto;->LINK_DOWN_BANDWIDTH_KBPS:J
+Landroid/net/NetworkCapabilitiesProto;->LINK_UP_BANDWIDTH_KBPS:J
+Landroid/net/NetworkCapabilitiesProto;->NETWORK_SPECIFIER:J
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_CAPTIVE_PORTAL:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_CBS:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_DUN:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_EIMS:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_FOREGROUND:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_FOTA:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_IA:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_IMS:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_INTERNET:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_MMS:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_NOT_METERED:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_NOT_RESTRICTED:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_NOT_ROAMING:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_NOT_VPN:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_RCS:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_SUPL:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_TRUSTED:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_VALIDATED:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_WIFI_P2P:I
+Landroid/net/NetworkCapabilitiesProto;->NET_CAPABILITY_XCAP:I
+Landroid/net/NetworkCapabilitiesProto;->SIGNAL_STRENGTH:J
+Landroid/net/NetworkCapabilitiesProto;->TRANSPORTS:J
+Landroid/net/NetworkCapabilitiesProto;->TRANSPORT_BLUETOOTH:I
+Landroid/net/NetworkCapabilitiesProto;->TRANSPORT_CELLULAR:I
+Landroid/net/NetworkCapabilitiesProto;->TRANSPORT_ETHERNET:I
+Landroid/net/NetworkCapabilitiesProto;->TRANSPORT_LOWPAN:I
+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
+Landroid/net/NetworkConfig;->name:Ljava/lang/String;
+Landroid/net/NetworkConfig;->priority:I
+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
+Landroid/net/NetworkFactory;->CMD_CANCEL_REQUEST:I
+Landroid/net/NetworkFactory;->CMD_REQUEST_NETWORK:I
+Landroid/net/NetworkFactory;->CMD_SET_FILTER:I
+Landroid/net/NetworkFactory;->CMD_SET_SCORE:I
+Landroid/net/NetworkFactory;->DBG:Z
+Landroid/net/NetworkFactory;->evalRequest(Landroid/net/NetworkFactory$NetworkRequestInfo;)V
+Landroid/net/NetworkFactory;->evalRequests()V
+Landroid/net/NetworkFactory;->getRequestCount()I
+Landroid/net/NetworkFactory;->handleAddRequest(Landroid/net/NetworkRequest;I)V
+Landroid/net/NetworkFactory;->handleRemoveRequest(Landroid/net/NetworkRequest;)V
+Landroid/net/NetworkFactory;->handleSetFilter(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkFactory;->handleSetScore(I)V
+Landroid/net/NetworkFactory;->log(Ljava/lang/String;)V
+Landroid/net/NetworkFactory;->LOG_TAG:Ljava/lang/String;
+Landroid/net/NetworkFactory;->mCapabilityFilter:Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkFactory;->mContext:Landroid/content/Context;
+Landroid/net/NetworkFactory;->mMessenger:Landroid/os/Messenger;
+Landroid/net/NetworkFactory;->mNetworkRequests:Landroid/util/SparseArray;
+Landroid/net/NetworkFactory;->mRefCount:I
+Landroid/net/NetworkFactory;->mScore:I
+Landroid/net/NetworkFactory;->needNetworkFor(Landroid/net/NetworkRequest;I)V
+Landroid/net/NetworkFactory;->reevaluateAllRequests()V
+Landroid/net/NetworkFactory;->register()V
+Landroid/net/NetworkFactory;->releaseNetworkFor(Landroid/net/NetworkRequest;)V
+Landroid/net/NetworkFactory;->removeNetworkRequest(Landroid/net/NetworkRequest;)V
+Landroid/net/NetworkFactory;->setCapabilityFilter(Landroid/net/NetworkCapabilities;)V
+Landroid/net/NetworkFactory;->startNetwork()V
+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
+Landroid/net/NetworkIdentity;->compareTo(Landroid/net/NetworkIdentity;)I
+Landroid/net/NetworkIdentity;->getDefaultNetwork()Z
+Landroid/net/NetworkIdentity;->getMetered()Z
+Landroid/net/NetworkIdentity;->getNetworkId()Ljava/lang/String;
+Landroid/net/NetworkIdentity;->getRoaming()Z
+Landroid/net/NetworkIdentity;->getSubscriberId()Ljava/lang/String;
+Landroid/net/NetworkIdentity;->getSubType()I
+Landroid/net/NetworkIdentity;->getType()I
+Landroid/net/NetworkIdentity;->mDefaultNetwork:Z
+Landroid/net/NetworkIdentity;->mMetered:Z
+Landroid/net/NetworkIdentity;->mNetworkId:Ljava/lang/String;
+Landroid/net/NetworkIdentity;->mRoaming:Z
+Landroid/net/NetworkIdentity;->mSubscriberId:Ljava/lang/String;
+Landroid/net/NetworkIdentity;->mSubType:I
+Landroid/net/NetworkIdentity;->mType:I
+Landroid/net/NetworkIdentity;->scrubSubscriberId(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/NetworkIdentity;->scrubSubscriberId([Ljava/lang/String;)[Ljava/lang/String;
+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
+Landroid/net/NetworkInfo;->mIsFailover:Z
+Landroid/net/NetworkInfo;->mIsRoaming:Z
+Landroid/net/NetworkInfo;->mNetworkType:I
+Landroid/net/NetworkInfo;->mReason:Ljava/lang/String;
+Landroid/net/NetworkInfo;->mState:Landroid/net/NetworkInfo$State;
+Landroid/net/NetworkInfo;->mSubtype:I
+Landroid/net/NetworkInfo;->mSubtypeName:Ljava/lang/String;
+Landroid/net/NetworkInfo;->mTypeName:Ljava/lang/String;
+Landroid/net/NetworkInfo;->setExtraInfo(Ljava/lang/String;)V
+Landroid/net/NetworkInfo;->setType(I)V
+Landroid/net/NetworkInfo;->stateMap:Ljava/util/EnumMap;
+Landroid/net/NetworkKey;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/net/NetworkMisc;->allowBypass:Z
+Landroid/net/NetworkMisc;->CREATOR:Landroid/os/Parcelable$Creator;
+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
+Landroid/net/NetworkPolicy;-><init>(Landroid/os/Parcel;)V
+Landroid/net/NetworkPolicy;->buildRule(ILjava/time/ZoneId;)Landroid/util/RecurrenceRule;
+Landroid/net/NetworkPolicy;->cycleIterator()Ljava/util/Iterator;
+Landroid/net/NetworkPolicy;->cycleRule:Landroid/util/RecurrenceRule;
+Landroid/net/NetworkPolicy;->CYCLE_NONE:I
+Landroid/net/NetworkPolicy;->DEFAULT_MTU:J
+Landroid/net/NetworkPolicy;->getBytesForBackup()[B
+Landroid/net/NetworkPolicy;->getNetworkPolicyFromBackup(Ljava/io/DataInputStream;)Landroid/net/NetworkPolicy;
+Landroid/net/NetworkPolicy;->hasCycle()Z
+Landroid/net/NetworkPolicy;->lastLimitSnooze:J
+Landroid/net/NetworkPolicy;->lastRapidSnooze:J
+Landroid/net/NetworkPolicy;->lastWarningSnooze:J
+Landroid/net/NetworkPolicy;->LIMIT_DISABLED:J
+Landroid/net/NetworkPolicy;->SNOOZE_NEVER:J
+Landroid/net/NetworkPolicy;->VERSION_INIT:I
+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
+Landroid/net/NetworkPolicyManager;->cycleIterator(Landroid/net/NetworkPolicy;)Ljava/util/Iterator;
+Landroid/net/NetworkPolicyManager;->EXTRA_NETWORK_TEMPLATE:Ljava/lang/String;
+Landroid/net/NetworkPolicyManager;->factoryReset(Ljava/lang/String;)V
+Landroid/net/NetworkPolicyManager;->FIREWALL_CHAIN_DOZABLE:I
+Landroid/net/NetworkPolicyManager;->FIREWALL_CHAIN_NAME_DOZABLE:Ljava/lang/String;
+Landroid/net/NetworkPolicyManager;->FIREWALL_CHAIN_NAME_NONE:Ljava/lang/String;
+Landroid/net/NetworkPolicyManager;->FIREWALL_CHAIN_NAME_POWERSAVE:Ljava/lang/String;
+Landroid/net/NetworkPolicyManager;->FIREWALL_CHAIN_NAME_STANDBY:Ljava/lang/String;
+Landroid/net/NetworkPolicyManager;->FIREWALL_CHAIN_NONE:I
+Landroid/net/NetworkPolicyManager;->FIREWALL_CHAIN_POWERSAVE:I
+Landroid/net/NetworkPolicyManager;->FIREWALL_CHAIN_STANDBY:I
+Landroid/net/NetworkPolicyManager;->FIREWALL_RULE_ALLOW:I
+Landroid/net/NetworkPolicyManager;->FIREWALL_RULE_DEFAULT:I
+Landroid/net/NetworkPolicyManager;->FIREWALL_RULE_DENY:I
+Landroid/net/NetworkPolicyManager;->FIREWALL_TYPE_BLACKLIST:I
+Landroid/net/NetworkPolicyManager;->FIREWALL_TYPE_WHITELIST:I
+Landroid/net/NetworkPolicyManager;->FOREGROUND_THRESHOLD_STATE:I
+Landroid/net/NetworkPolicyManager;->isProcStateAllowedWhileIdleOrPowerSaveMode(I)Z
+Landroid/net/NetworkPolicyManager;->isProcStateAllowedWhileOnRestrictBackground(I)Z
+Landroid/net/NetworkPolicyManager;->isUidValidForPolicy(Landroid/content/Context;I)Z
+Landroid/net/NetworkPolicyManager;->MASK_ALL_NETWORKS:I
+Landroid/net/NetworkPolicyManager;->MASK_METERED_NETWORKS:I
+Landroid/net/NetworkPolicyManager;->mContext:Landroid/content/Context;
+Landroid/net/NetworkPolicyManager;->OVERRIDE_CONGESTED:I
+Landroid/net/NetworkPolicyManager;->OVERRIDE_UNMETERED:I
+Landroid/net/NetworkPolicyManager;->POLICY_ALLOW_METERED_BACKGROUND:I
+Landroid/net/NetworkPolicyManager;->POLICY_NONE:I
+Landroid/net/NetworkPolicyManager;->POLICY_REJECT_METERED_BACKGROUND:I
+Landroid/net/NetworkPolicyManager;->removeUidPolicy(II)V
+Landroid/net/NetworkPolicyManager;->resolveNetworkId(Landroid/net/wifi/WifiConfiguration;)Ljava/lang/String;
+Landroid/net/NetworkPolicyManager;->resolveNetworkId(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/NetworkPolicyManager;->RULE_ALLOW_ALL:I
+Landroid/net/NetworkPolicyManager;->RULE_ALLOW_METERED:I
+Landroid/net/NetworkPolicyManager;->RULE_NONE:I
+Landroid/net/NetworkPolicyManager;->RULE_REJECT_ALL:I
+Landroid/net/NetworkPolicyManager;->RULE_REJECT_METERED:I
+Landroid/net/NetworkPolicyManager;->RULE_TEMPORARY_ALLOW_METERED:I
+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;
+Landroid/net/NetworkRecommendationProvider$ServiceWrapper;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/net/NetworkRecommendationProvider$ServiceWrapper;->mHandler:Landroid/os/Handler;
+Landroid/net/NetworkRecommendationProvider$ServiceWrapper;->requestScores([Landroid/net/NetworkKey;)V
+Landroid/net/NetworkRecommendationProvider;->mService:Landroid/os/IBinder;
+Landroid/net/NetworkRecommendationProvider;->TAG:Ljava/lang/String;
+Landroid/net/NetworkRecommendationProvider;->VERBOSE:Z
+Landroid/net/NetworkRequest$Builder;->addUnwantedCapability(I)Landroid/net/NetworkRequest$Builder;
+Landroid/net/NetworkRequest$Builder;->mNetworkCapabilities:Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkRequest$Builder;->setCapabilities(Landroid/net/NetworkCapabilities;)Landroid/net/NetworkRequest$Builder;
+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;
+Landroid/net/NetworkRequest$Type;->REQUEST:Landroid/net/NetworkRequest$Type;
+Landroid/net/NetworkRequest$Type;->TRACK_DEFAULT:Landroid/net/NetworkRequest$Type;
+Landroid/net/NetworkRequest$Type;->valueOf(Ljava/lang/String;)Landroid/net/NetworkRequest$Type;
+Landroid/net/NetworkRequest$Type;->values()[Landroid/net/NetworkRequest$Type;
+Landroid/net/NetworkRequest;-><init>(Landroid/net/NetworkCapabilities;IILandroid/net/NetworkRequest$Type;)V
+Landroid/net/NetworkRequest;-><init>(Landroid/net/NetworkRequest;)V
+Landroid/net/NetworkRequest;->hasUnwantedCapability(I)Z
+Landroid/net/NetworkRequest;->isBackgroundRequest()Z
+Landroid/net/NetworkRequest;->isForegroundRequest()Z
+Landroid/net/NetworkRequest;->isListen()Z
+Landroid/net/NetworkRequest;->isRequest()Z
+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
+Landroid/net/NetworkRequestProto;->REQUEST_ID:J
+Landroid/net/NetworkRequestProto;->TYPE:J
+Landroid/net/NetworkRequestProto;->TYPE_BACKGROUND_REQUEST:I
+Landroid/net/NetworkRequestProto;->TYPE_LISTEN:I
+Landroid/net/NetworkRequestProto;->TYPE_NONE:I
+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
+Landroid/net/NetworkScoreManager;->CACHE_FILTER_SCAN_RESULTS:I
+Landroid/net/NetworkScoreManager;->getActiveScorer()Landroid/net/NetworkScorerAppData;
+Landroid/net/NetworkScoreManager;->getAllValidScorers()Ljava/util/List;
+Landroid/net/NetworkScoreManager;->isCallerActiveScorer(I)Z
+Landroid/net/NetworkScoreManager;->mContext:Landroid/content/Context;
+Landroid/net/NetworkScoreManager;->mService:Landroid/net/INetworkScoreService;
+Landroid/net/NetworkScoreManager;->NETWORK_AVAILABLE_NOTIFICATION_CHANNEL_ID_META_DATA:Ljava/lang/String;
+Landroid/net/NetworkScoreManager;->RECOMMENDATIONS_ENABLED_FORCED_OFF:I
+Landroid/net/NetworkScoreManager;->RECOMMENDATIONS_ENABLED_OFF:I
+Landroid/net/NetworkScoreManager;->RECOMMENDATIONS_ENABLED_ON:I
+Landroid/net/NetworkScoreManager;->RECOMMENDATION_SERVICE_LABEL_META_DATA:Ljava/lang/String;
+Landroid/net/NetworkScoreManager;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;)V
+Landroid/net/NetworkScoreManager;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
+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;
+Landroid/net/NetworkScorerAppData;->getEnableUseOpenWifiActivity()Landroid/content/ComponentName;
+Landroid/net/NetworkScorerAppData;->getNetworkAvailableNotificationChannelId()Ljava/lang/String;
+Landroid/net/NetworkScorerAppData;->getRecommendationServiceComponent()Landroid/content/ComponentName;
+Landroid/net/NetworkScorerAppData;->getRecommendationServiceLabel()Ljava/lang/String;
+Landroid/net/NetworkScorerAppData;->getRecommendationServicePackageName()Ljava/lang/String;
+Landroid/net/NetworkScorerAppData;->mEnableUseOpenWifiActivity:Landroid/content/ComponentName;
+Landroid/net/NetworkScorerAppData;->mNetworkAvailableNotificationChannelId:Ljava/lang/String;
+Landroid/net/NetworkScorerAppData;->mRecommendationService:Landroid/content/ComponentName;
+Landroid/net/NetworkScorerAppData;->mRecommendationServiceLabel:Ljava/lang/String;
+Landroid/net/NetworkScorerAppData;->packageUid:I
+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;
+Landroid/net/NetworkState;->networkCapabilities:Landroid/net/NetworkCapabilities;
+Landroid/net/NetworkState;->networkId:Ljava/lang/String;
+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
+Landroid/net/NetworkStats$Entry;->add(Landroid/net/NetworkStats$Entry;)V
+Landroid/net/NetworkStats$Entry;->defaultNetwork:I
+Landroid/net/NetworkStats$Entry;->isEmpty()Z
+Landroid/net/NetworkStats$Entry;->isNegative()Z
+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;
+Landroid/net/NetworkStats;->addValues(Ljava/lang/String;IIIIIIJJJJJ)Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->addValues(Ljava/lang/String;IIIJJJJJ)Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->apply464xlatAdjustments(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Ljava/util/Map;)V
+Landroid/net/NetworkStats;->apply464xlatAdjustments(Ljava/util/Map;)V
+Landroid/net/NetworkStats;->CLATD_INTERFACE_PREFIX:Ljava/lang/String;
+Landroid/net/NetworkStats;->clear()V
+Landroid/net/NetworkStats;->combineValues(Ljava/lang/String;IIIJJJJJ)Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->combineValues(Ljava/lang/String;IIJJJJJ)Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->deductTrafficFromVpnApp(ILjava/lang/String;Landroid/net/NetworkStats$Entry;)V
+Landroid/net/NetworkStats;->defaultNetworkToString(I)Ljava/lang/String;
+Landroid/net/NetworkStats;->DEFAULT_NETWORK_ALL:I
+Landroid/net/NetworkStats;->DEFAULT_NETWORK_NO:I
+Landroid/net/NetworkStats;->DEFAULT_NETWORK_YES:I
+Landroid/net/NetworkStats;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+Landroid/net/NetworkStats;->elapsedRealtime:J
+Landroid/net/NetworkStats;->filter(I[Ljava/lang/String;I)V
+Landroid/net/NetworkStats;->findIndex(Ljava/lang/String;IIIIII)I
+Landroid/net/NetworkStats;->findIndexHinted(Ljava/lang/String;IIIIIII)I
+Landroid/net/NetworkStats;->getElapsedRealtime()J
+Landroid/net/NetworkStats;->getElapsedRealtimeAge()J
+Landroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;Ljava/util/HashSet;)Landroid/net/NetworkStats$Entry;
+Landroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;Ljava/util/HashSet;IZ)Landroid/net/NetworkStats$Entry;
+Landroid/net/NetworkStats;->getTotalPackets()J
+Landroid/net/NetworkStats;->getUniqueIfaces()[Ljava/lang/String;
+Landroid/net/NetworkStats;->groupedByIface()Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->groupedByUid()Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->IFACE_ALL:Ljava/lang/String;
+Landroid/net/NetworkStats;->INTERFACES_ALL:[Ljava/lang/String;
+Landroid/net/NetworkStats;->internalSize()I
+Landroid/net/NetworkStats;->IPV4V6_HEADER_DELTA:I
+Landroid/net/NetworkStats;->meteredToString(I)Ljava/lang/String;
+Landroid/net/NetworkStats;->METERED_ALL:I
+Landroid/net/NetworkStats;->METERED_NO:I
+Landroid/net/NetworkStats;->METERED_YES:I
+Landroid/net/NetworkStats;->migrateTun(ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/net/NetworkStats;->roamingToString(I)Ljava/lang/String;
+Landroid/net/NetworkStats;->ROAMING_ALL:I
+Landroid/net/NetworkStats;->ROAMING_NO:I
+Landroid/net/NetworkStats;->ROAMING_YES:I
+Landroid/net/NetworkStats;->setElapsedRealtime(J)V
+Landroid/net/NetworkStats;->setMatches(II)Z
+Landroid/net/NetworkStats;->setToCheckinString(I)Ljava/lang/String;
+Landroid/net/NetworkStats;->setToString(I)Ljava/lang/String;
+Landroid/net/NetworkStats;->setValues(ILandroid/net/NetworkStats$Entry;)V
+Landroid/net/NetworkStats;->SET_ALL:I
+Landroid/net/NetworkStats;->SET_DBG_VPN_IN:I
+Landroid/net/NetworkStats;->SET_DBG_VPN_OUT:I
+Landroid/net/NetworkStats;->SET_DEBUG_START:I
+Landroid/net/NetworkStats;->SET_DEFAULT:I
+Landroid/net/NetworkStats;->SET_FOREGROUND:I
+Landroid/net/NetworkStats;->spliceOperationsFrom(Landroid/net/NetworkStats;)V
+Landroid/net/NetworkStats;->STATS_PER_IFACE:I
+Landroid/net/NetworkStats;->STATS_PER_UID:I
+Landroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/net/NetworkStats$NonMonotonicObserver;Ljava/lang/Object;)Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/net/NetworkStats$NonMonotonicObserver;Ljava/lang/Object;Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
+Landroid/net/NetworkStats;->TAG:Ljava/lang/String;
+Landroid/net/NetworkStats;->tagToString(I)Ljava/lang/String;
+Landroid/net/NetworkStats;->TAG_ALL:I
+Landroid/net/NetworkStats;->TAG_NONE:I
+Landroid/net/NetworkStats;->tunAdjustmentInit(ILjava/lang/String;Ljava/lang/String;Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;)V
+Landroid/net/NetworkStats;->tunGetPool(Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
+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
+Landroid/net/NetworkStatsHistory;-><init>(Ljava/io/DataInputStream;)V
+Landroid/net/NetworkStatsHistory;->activeTime:[J
+Landroid/net/NetworkStatsHistory;->addLong([JIJ)V
+Landroid/net/NetworkStatsHistory;->bucketCount:I
+Landroid/net/NetworkStatsHistory;->bucketDuration:J
+Landroid/net/NetworkStatsHistory;->bucketStart:[J
+Landroid/net/NetworkStatsHistory;->clear()V
+Landroid/net/NetworkStatsHistory;->dump(Lcom/android/internal/util/IndentingPrintWriter;Z)V
+Landroid/net/NetworkStatsHistory;->dumpCheckin(Ljava/io/PrintWriter;)V
+Landroid/net/NetworkStatsHistory;->ensureBuckets(JJ)V
+Landroid/net/NetworkStatsHistory;->estimateResizeBuckets(J)I
+Landroid/net/NetworkStatsHistory;->FIELD_ACTIVE_TIME:I
+Landroid/net/NetworkStatsHistory;->FIELD_ALL:I
+Landroid/net/NetworkStatsHistory;->FIELD_OPERATIONS:I
+Landroid/net/NetworkStatsHistory;->FIELD_RX_BYTES:I
+Landroid/net/NetworkStatsHistory;->FIELD_RX_PACKETS:I
+Landroid/net/NetworkStatsHistory;->FIELD_TX_BYTES:I
+Landroid/net/NetworkStatsHistory;->FIELD_TX_PACKETS:I
+Landroid/net/NetworkStatsHistory;->generateRandom(JJJ)V
+Landroid/net/NetworkStatsHistory;->generateRandom(JJJJJJJLjava/util/Random;)V
+Landroid/net/NetworkStatsHistory;->getBucketDuration()J
+Landroid/net/NetworkStatsHistory;->getIndexAfter(J)I
+Landroid/net/NetworkStatsHistory;->getLong([JIJ)J
+Landroid/net/NetworkStatsHistory;->getTotalBytes()J
+Landroid/net/NetworkStatsHistory;->insertBucket(IJ)V
+Landroid/net/NetworkStatsHistory;->intersects(JJ)Z
+Landroid/net/NetworkStatsHistory;->operations:[J
+Landroid/net/NetworkStatsHistory;->randomLong(Ljava/util/Random;JJ)J
+Landroid/net/NetworkStatsHistory;->recordData(JJJJ)V
+Landroid/net/NetworkStatsHistory;->recordData(JJLandroid/net/NetworkStats$Entry;)V
+Landroid/net/NetworkStatsHistory;->recordHistory(Landroid/net/NetworkStatsHistory;JJ)V
+Landroid/net/NetworkStatsHistory;->removeBucketsBefore(J)V
+Landroid/net/NetworkStatsHistory;->rxBytes:[J
+Landroid/net/NetworkStatsHistory;->rxPackets:[J
+Landroid/net/NetworkStatsHistory;->setLong([JIJ)V
+Landroid/net/NetworkStatsHistory;->setValues(ILandroid/net/NetworkStatsHistory$Entry;)V
+Landroid/net/NetworkStatsHistory;->totalBytes:J
+Landroid/net/NetworkStatsHistory;->txBytes:[J
+Landroid/net/NetworkStatsHistory;->txPackets:[J
+Landroid/net/NetworkStatsHistory;->VERSION_ADD_ACTIVE:I
+Landroid/net/NetworkStatsHistory;->VERSION_ADD_PACKETS:I
+Landroid/net/NetworkStatsHistory;->VERSION_INIT:I
+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
+Landroid/net/NetworkTemplate;->BACKUP_VERSION:I
+Landroid/net/NetworkTemplate;->buildTemplateBluetooth()Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->buildTemplateProxy()Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->buildTemplateWifi(Ljava/lang/String;)Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->forceAllNetworkTypes()V
+Landroid/net/NetworkTemplate;->getBytesForBackup()[B
+Landroid/net/NetworkTemplate;->getMatchRuleName(I)Ljava/lang/String;
+Landroid/net/NetworkTemplate;->getNetworkId()Ljava/lang/String;
+Landroid/net/NetworkTemplate;->getNetworkTemplateFromBackup(Ljava/io/DataInputStream;)Landroid/net/NetworkTemplate;
+Landroid/net/NetworkTemplate;->isKnownMatchRule(I)Z
+Landroid/net/NetworkTemplate;->isMatchRuleMobile()Z
+Landroid/net/NetworkTemplate;->isPersistable()Z
+Landroid/net/NetworkTemplate;->matches(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesBluetooth(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesDefaultNetwork(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesEthernet(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesMetered(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesMobile(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesMobileWildcard(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesProxy(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesRoaming(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesSubscriberId(Ljava/lang/String;)Z
+Landroid/net/NetworkTemplate;->matchesWifi(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->matchesWifiWildcard(Landroid/net/NetworkIdentity;)Z
+Landroid/net/NetworkTemplate;->MATCH_BLUETOOTH:I
+Landroid/net/NetworkTemplate;->MATCH_ETHERNET:I
+Landroid/net/NetworkTemplate;->MATCH_MOBILE:I
+Landroid/net/NetworkTemplate;->MATCH_MOBILE_WILDCARD:I
+Landroid/net/NetworkTemplate;->MATCH_PROXY:I
+Landroid/net/NetworkTemplate;->MATCH_WIFI:I
+Landroid/net/NetworkTemplate;->MATCH_WIFI_WILDCARD:I
+Landroid/net/NetworkTemplate;->mDefaultNetwork:I
+Landroid/net/NetworkTemplate;->mMatchRule:I
+Landroid/net/NetworkTemplate;->mMatchSubscriberIds:[Ljava/lang/String;
+Landroid/net/NetworkTemplate;->mMetered:I
+Landroid/net/NetworkTemplate;->mNetworkId:Ljava/lang/String;
+Landroid/net/NetworkTemplate;->mRoaming:I
+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
+Landroid/net/NetworkUtils;->bindProcessToNetworkForHostResolution(I)Z
+Landroid/net/NetworkUtils;->bindSocketToNetwork(II)I
+Landroid/net/NetworkUtils;->deduplicatePrefixSet(Ljava/util/TreeSet;)Ljava/util/TreeSet;
+Landroid/net/NetworkUtils;->getBoundNetworkForProcess()I
+Landroid/net/NetworkUtils;->getNetworkPart(Ljava/net/InetAddress;I)Ljava/net/InetAddress;
+Landroid/net/NetworkUtils;->hexToInet6Address(Ljava/lang/String;)Ljava/net/InetAddress;
+Landroid/net/NetworkUtils;->inetAddressToInt(Ljava/net/Inet4Address;)I
+Landroid/net/NetworkUtils;->makeStrings(Ljava/util/Collection;)[Ljava/lang/String;
+Landroid/net/NetworkUtils;->maskRawAddress([BI)V
+Landroid/net/NetworkUtils;->netmaskIntToPrefixLength(I)I
+Landroid/net/NetworkUtils;->parcelInetAddress(Landroid/os/Parcel;Ljava/net/InetAddress;I)V
+Landroid/net/NetworkUtils;->parseIpAndMask(Ljava/lang/String;)Landroid/util/Pair;
+Landroid/net/NetworkUtils;->protectFromVpn(I)Z
+Landroid/net/NetworkUtils;->queryUserAccess(II)Z
+Landroid/net/NetworkUtils;->routedIPv4AddressCount(Ljava/util/TreeSet;)J
+Landroid/net/NetworkUtils;->routedIPv6AddressCount(Ljava/util/TreeSet;)Ljava/math/BigInteger;
+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
+Landroid/net/NetworkWatchlistManager;->mContext:Landroid/content/Context;
+Landroid/net/NetworkWatchlistManager;->mNetworkWatchlistManager:Lcom/android/internal/net/INetworkWatchlistManager;
+Landroid/net/NetworkWatchlistManager;->reloadWatchlist()V
+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
+Landroid/net/nsd/DnsSdTxtRecord;->contains(Ljava/lang/String;)Z
+Landroid/net/nsd/DnsSdTxtRecord;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/nsd/DnsSdTxtRecord;->get(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/nsd/DnsSdTxtRecord;->getKey(I)Ljava/lang/String;
+Landroid/net/nsd/DnsSdTxtRecord;->getRawData()[B
+Landroid/net/nsd/DnsSdTxtRecord;->getValue(I)[B
+Landroid/net/nsd/DnsSdTxtRecord;->getValue(Ljava/lang/String;)[B
+Landroid/net/nsd/DnsSdTxtRecord;->getValueAsString(I)Ljava/lang/String;
+Landroid/net/nsd/DnsSdTxtRecord;->insert([B[BI)V
+Landroid/net/nsd/DnsSdTxtRecord;->keyCount()I
+Landroid/net/nsd/DnsSdTxtRecord;->mData:[B
+Landroid/net/nsd/DnsSdTxtRecord;->mSeperator:B
+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
+Landroid/net/nsd/NsdManager;->checkProtocol(I)V
+Landroid/net/nsd/NsdManager;->checkServiceInfo(Landroid/net/nsd/NsdServiceInfo;)V
+Landroid/net/nsd/NsdManager;->DBG:Z
+Landroid/net/nsd/NsdManager;->DISABLE:I
+Landroid/net/nsd/NsdManager;->disconnect()V
+Landroid/net/nsd/NsdManager;->DISCOVER_SERVICES:I
+Landroid/net/nsd/NsdManager;->DISCOVER_SERVICES_FAILED:I
+Landroid/net/nsd/NsdManager;->DISCOVER_SERVICES_STARTED:I
+Landroid/net/nsd/NsdManager;->ENABLE:I
+Landroid/net/nsd/NsdManager;->EVENT_NAMES:Landroid/util/SparseArray;
+Landroid/net/nsd/NsdManager;->fatal(Ljava/lang/String;)V
+Landroid/net/nsd/NsdManager;->FIRST_LISTENER_KEY:I
+Landroid/net/nsd/NsdManager;->getListenerKey(Ljava/lang/Object;)I
+Landroid/net/nsd/NsdManager;->getMessenger()Landroid/os/Messenger;
+Landroid/net/nsd/NsdManager;->getNsdServiceInfoType(Landroid/net/nsd/NsdServiceInfo;)Ljava/lang/String;
+Landroid/net/nsd/NsdManager;->init()V
+Landroid/net/nsd/NsdManager;->mAsyncChannel:Lcom/android/internal/util/AsyncChannel;
+Landroid/net/nsd/NsdManager;->mConnected:Ljava/util/concurrent/CountDownLatch;
+Landroid/net/nsd/NsdManager;->mContext:Landroid/content/Context;
+Landroid/net/nsd/NsdManager;->mHandler:Landroid/net/nsd/NsdManager$ServiceHandler;
+Landroid/net/nsd/NsdManager;->mListenerKey:I
+Landroid/net/nsd/NsdManager;->mListenerMap:Landroid/util/SparseArray;
+Landroid/net/nsd/NsdManager;->mMapLock:Ljava/lang/Object;
+Landroid/net/nsd/NsdManager;->mService:Landroid/net/nsd/INsdManager;
+Landroid/net/nsd/NsdManager;->mServiceMap:Landroid/util/SparseArray;
+Landroid/net/nsd/NsdManager;->nameOf(I)Ljava/lang/String;
+Landroid/net/nsd/NsdManager;->NATIVE_DAEMON_EVENT:I
+Landroid/net/nsd/NsdManager;->nextListenerKey()I
+Landroid/net/nsd/NsdManager;->putListener(Ljava/lang/Object;Landroid/net/nsd/NsdServiceInfo;)I
+Landroid/net/nsd/NsdManager;->REGISTER_SERVICE:I
+Landroid/net/nsd/NsdManager;->REGISTER_SERVICE_FAILED:I
+Landroid/net/nsd/NsdManager;->REGISTER_SERVICE_SUCCEEDED:I
+Landroid/net/nsd/NsdManager;->removeListener(I)V
+Landroid/net/nsd/NsdManager;->RESOLVE_SERVICE:I
+Landroid/net/nsd/NsdManager;->RESOLVE_SERVICE_FAILED:I
+Landroid/net/nsd/NsdManager;->RESOLVE_SERVICE_SUCCEEDED:I
+Landroid/net/nsd/NsdManager;->SERVICE_FOUND:I
+Landroid/net/nsd/NsdManager;->SERVICE_LOST:I
+Landroid/net/nsd/NsdManager;->setEnabled(Z)V
+Landroid/net/nsd/NsdManager;->STOP_DISCOVERY:I
+Landroid/net/nsd/NsdManager;->STOP_DISCOVERY_FAILED:I
+Landroid/net/nsd/NsdManager;->STOP_DISCOVERY_SUCCEEDED:I
+Landroid/net/nsd/NsdManager;->TAG:Ljava/lang/String;
+Landroid/net/nsd/NsdManager;->UNREGISTER_SERVICE:I
+Landroid/net/nsd/NsdManager;->UNREGISTER_SERVICE_FAILED:I
+Landroid/net/nsd/NsdManager;->UNREGISTER_SERVICE_SUCCEEDED:I
+Landroid/net/nsd/NsdServiceInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/nsd/NsdServiceInfo;->getTxtRecord()[B
+Landroid/net/nsd/NsdServiceInfo;->getTxtRecordSize()I
+Landroid/net/nsd/NsdServiceInfo;->mHost:Ljava/net/InetAddress;
+Landroid/net/nsd/NsdServiceInfo;->mPort:I
+Landroid/net/nsd/NsdServiceInfo;->mServiceName:Ljava/lang/String;
+Landroid/net/nsd/NsdServiceInfo;->mServiceType:Ljava/lang/String;
+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;
+Landroid/net/PacProxySelector;->parseResponse(Ljava/lang/String;)Ljava/util/List;
+Landroid/net/PacProxySelector;->PROXY:Ljava/lang/String;
+Landroid/net/PacProxySelector;->proxyFromHostPort(Ljava/net/Proxy$Type;Ljava/lang/String;)Ljava/net/Proxy;
+Landroid/net/PacProxySelector;->PROXY_SERVICE:Ljava/lang/String;
+Landroid/net/PacProxySelector;->SOCKS:Ljava/lang/String;
+Landroid/net/PacProxySelector;->TAG:Ljava/lang/String;
+Landroid/net/ParseException;-><init>(Ljava/lang/String;)V
+Landroid/net/Proxy;->EXCLLIST_PATTERN:Ljava/util/regex/Pattern;
+Landroid/net/Proxy;->EXCLLIST_REGEXP:Ljava/lang/String;
+Landroid/net/Proxy;->EXCL_REGEX:Ljava/lang/String;
+Landroid/net/Proxy;->HOSTNAME_PATTERN:Ljava/util/regex/Pattern;
+Landroid/net/Proxy;->HOSTNAME_REGEXP:Ljava/lang/String;
+Landroid/net/Proxy;->isLocalHost(Ljava/lang/String;)Z
+Landroid/net/Proxy;->NAME_IP_REGEX:Ljava/lang/String;
+Landroid/net/Proxy;->PROXY_EXCLLIST_INVALID:I
+Landroid/net/Proxy;->PROXY_HOSTNAME_EMPTY:I
+Landroid/net/Proxy;->PROXY_HOSTNAME_INVALID:I
+Landroid/net/Proxy;->PROXY_PORT_EMPTY:I
+Landroid/net/Proxy;->PROXY_PORT_INVALID:I
+Landroid/net/Proxy;->PROXY_VALID:I
+Landroid/net/Proxy;->sConnectivityManager:Landroid/net/ConnectivityManager;
+Landroid/net/Proxy;->sDefaultProxySelector:Ljava/net/ProxySelector;
+Landroid/net/Proxy;->setHttpProxySystemProperty(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/net/Proxy;->TAG:Ljava/lang/String;
+Landroid/net/Proxy;->validate(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/net/ProxyInfo;-><init>(Landroid/net/ProxyInfo;)V
+Landroid/net/ProxyInfo;-><init>(Landroid/net/Uri;)V
+Landroid/net/ProxyInfo;-><init>(Landroid/net/Uri;I)V
+Landroid/net/ProxyInfo;-><init>(Ljava/lang/String;)V
+Landroid/net/ProxyInfo;-><init>(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;)V
+Landroid/net/ProxyInfo;->getExclusionListAsString()Ljava/lang/String;
+Landroid/net/ProxyInfo;->getSocketAddress()Ljava/net/InetSocketAddress;
+Landroid/net/ProxyInfo;->isValid()Z
+Landroid/net/ProxyInfo;->LOCAL_EXCL_LIST:Ljava/lang/String;
+Landroid/net/ProxyInfo;->LOCAL_HOST:Ljava/lang/String;
+Landroid/net/ProxyInfo;->LOCAL_PORT:I
+Landroid/net/ProxyInfo;->makeProxy()Ljava/net/Proxy;
+Landroid/net/ProxyInfo;->mExclusionList:Ljava/lang/String;
+Landroid/net/ProxyInfo;->mHost:Ljava/lang/String;
+Landroid/net/ProxyInfo;->mPacFileUrl:Landroid/net/Uri;
+Landroid/net/ProxyInfo;->mParsedExclusionList:[Ljava/lang/String;
+Landroid/net/ProxyInfo;->mPort:I
+Landroid/net/ProxyInfo;->setExclusionList(Ljava/lang/String;)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;I)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;I)V
+Landroid/net/RouteInfo;-><init>(Landroid/net/LinkAddress;)V
+Landroid/net/RouteInfo;->getDestinationLinkAddress()Landroid/net/LinkAddress;
+Landroid/net/RouteInfo;->getType()I
+Landroid/net/RouteInfo;->isHostRoute()Z
+Landroid/net/RouteInfo;->isIPv4Default()Z
+Landroid/net/RouteInfo;->isIPv6Default()Z
+Landroid/net/RouteInfo;->makeHostRoute(Ljava/net/InetAddress;Ljava/lang/String;)Landroid/net/RouteInfo;
+Landroid/net/RouteInfo;->makeHostRoute(Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/lang/String;)Landroid/net/RouteInfo;
+Landroid/net/RouteInfo;->mDestination:Landroid/net/IpPrefix;
+Landroid/net/RouteInfo;->mHasGateway:Z
+Landroid/net/RouteInfo;->mInterface:Ljava/lang/String;
+Landroid/net/RouteInfo;->mType:I
+Landroid/net/RouteInfo;->RTN_THROW:I
+Landroid/net/RouteInfo;->RTN_UNICAST:I
+Landroid/net/RouteInfo;->RTN_UNREACHABLE:I
+Landroid/net/RssiCurve;-><init>(Landroid/os/Parcel;)V
+Landroid/net/RssiCurve;->DEFAULT_ACTIVE_NETWORK_RSSI_BOOST:I
+Landroid/net/rtp/AudioCodec;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+Landroid/net/rtp/AudioCodec;->sCodecs:[Landroid/net/rtp/AudioCodec;
+Landroid/net/rtp/AudioGroup;->add(Landroid/net/rtp/AudioStream;)V
+Landroid/net/rtp/AudioGroup;->mMode:I
+Landroid/net/rtp/AudioGroup;->mNative:J
+Landroid/net/rtp/AudioGroup;->MODE_LAST:I
+Landroid/net/rtp/AudioGroup;->mStreams:Ljava/util/Map;
+Landroid/net/rtp/AudioGroup;->nativeAdd(IILjava/lang/String;ILjava/lang/String;ILjava/lang/String;)J
+Landroid/net/rtp/AudioGroup;->nativeRemove(J)V
+Landroid/net/rtp/AudioGroup;->nativeSendDtmf(I)V
+Landroid/net/rtp/AudioGroup;->nativeSetMode(I)V
+Landroid/net/rtp/AudioGroup;->remove(Landroid/net/rtp/AudioStream;)V
+Landroid/net/rtp/AudioStream;->mCodec:Landroid/net/rtp/AudioCodec;
+Landroid/net/rtp/AudioStream;->mDtmfType:I
+Landroid/net/rtp/AudioStream;->mGroup:Landroid/net/rtp/AudioGroup;
+Landroid/net/rtp/RtpStream;-><init>(Ljava/net/InetAddress;)V
+Landroid/net/rtp/RtpStream;->close()V
+Landroid/net/rtp/RtpStream;->create(Ljava/lang/String;)I
+Landroid/net/rtp/RtpStream;->getSocket()I
+Landroid/net/rtp/RtpStream;->mLocalAddress:Ljava/net/InetAddress;
+Landroid/net/rtp/RtpStream;->mLocalPort:I
+Landroid/net/rtp/RtpStream;->mMode:I
+Landroid/net/rtp/RtpStream;->MODE_LAST:I
+Landroid/net/rtp/RtpStream;->mRemoteAddress:Ljava/net/InetAddress;
+Landroid/net/rtp/RtpStream;->mRemotePort:I
+Landroid/net/rtp/RtpStream;->mSocket:I
+Landroid/net/ScoredNetwork;-><init>(Landroid/os/Parcel;)V
+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;
+Landroid/net/sip/ISipService$Stub;->DESCRIPTOR:Ljava/lang/String;
+Landroid/net/sip/ISipService$Stub;->TRANSACTION_close:I
+Landroid/net/sip/ISipService$Stub;->TRANSACTION_createSession:I
+Landroid/net/sip/ISipService$Stub;->TRANSACTION_getListOfProfiles:I
+Landroid/net/sip/ISipService$Stub;->TRANSACTION_getPendingSession:I
+Landroid/net/sip/ISipService$Stub;->TRANSACTION_isOpened:I
+Landroid/net/sip/ISipService$Stub;->TRANSACTION_isRegistered:I
+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;
+Landroid/net/sip/ISipSession$Stub;->DESCRIPTOR:Ljava/lang/String;
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_answerCall:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_changeCall:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_endCall:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_getCallId:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_getLocalIp:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_getLocalProfile:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_getPeerProfile:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_getState:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_isInCall:I
+Landroid/net/sip/ISipSession$Stub;->TRANSACTION_makeCall:I
+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;
+Landroid/net/sip/ISipSessionListener$Stub;->DESCRIPTOR:Ljava/lang/String;
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onCallBusy:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onCallChangeFailed:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onCallEnded:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onCallEstablished:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onCalling:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onCallTransferring:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onError:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onRegistering:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onRegistrationDone:I
+Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onRegistrationFailed:I
+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
+Landroid/net/sip/SimpleSessionDescription$Fields;->get(Ljava/lang/String;C)Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Fields;->getAddress()Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Fields;->getAttribute(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Fields;->getAttributeNames()[Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Fields;->getBandwidth(Ljava/lang/String;)I
+Landroid/net/sip/SimpleSessionDescription$Fields;->getBandwidthTypes()[Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Fields;->getEncryptionKey()Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Fields;->getEncryptionMethod()Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Fields;->mLines:Ljava/util/ArrayList;
+Landroid/net/sip/SimpleSessionDescription$Fields;->mOrder:Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Fields;->parse(Ljava/lang/String;)V
+Landroid/net/sip/SimpleSessionDescription$Fields;->set(Ljava/lang/String;CLjava/lang/String;)V
+Landroid/net/sip/SimpleSessionDescription$Fields;->setAddress(Ljava/lang/String;)V
+Landroid/net/sip/SimpleSessionDescription$Fields;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V
+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;
+Landroid/net/sip/SimpleSessionDescription$Media;->getFormats()[Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Media;->getPort()I
+Landroid/net/sip/SimpleSessionDescription$Media;->getPortCount()I
+Landroid/net/sip/SimpleSessionDescription$Media;->getProtocol()Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Media;->getRtpmap(I)Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Media;->getRtpPayloadTypes()[I
+Landroid/net/sip/SimpleSessionDescription$Media;->getType()Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Media;->mFormats:Ljava/util/ArrayList;
+Landroid/net/sip/SimpleSessionDescription$Media;->mPort:I
+Landroid/net/sip/SimpleSessionDescription$Media;->mPortCount:I
+Landroid/net/sip/SimpleSessionDescription$Media;->mProtocol:Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Media;->mType:Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription$Media;->removeFormat(Ljava/lang/String;)V
+Landroid/net/sip/SimpleSessionDescription$Media;->removeRtpPayload(I)V
+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;
+Landroid/net/sip/SimpleSessionDescription;->getAddress()Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription;->getAttribute(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription;->getAttributeNames()[Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription;->getBandwidth(Ljava/lang/String;)I
+Landroid/net/sip/SimpleSessionDescription;->getBandwidthTypes()[Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription;->getEncryptionKey()Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription;->getEncryptionMethod()Ljava/lang/String;
+Landroid/net/sip/SimpleSessionDescription;->getMedia()[Landroid/net/sip/SimpleSessionDescription$Media;
+Landroid/net/sip/SimpleSessionDescription;->mFields:Landroid/net/sip/SimpleSessionDescription$Fields;
+Landroid/net/sip/SimpleSessionDescription;->mMedia:Ljava/util/ArrayList;
+Landroid/net/sip/SimpleSessionDescription;->newMedia(Ljava/lang/String;IILjava/lang/String;)Landroid/net/sip/SimpleSessionDescription$Media;
+Landroid/net/sip/SimpleSessionDescription;->setAddress(Ljava/lang/String;)V
+Landroid/net/sip/SimpleSessionDescription;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/sip/SimpleSessionDescription;->setBandwidth(Ljava/lang/String;I)V
+Landroid/net/sip/SimpleSessionDescription;->setEncryption(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/sip/SipAudioCall;->close(Z)V
+Landroid/net/sip/SipAudioCall;->createAnswer(Ljava/lang/String;)Landroid/net/sip/SimpleSessionDescription;
+Landroid/net/sip/SipAudioCall;->createContinueOffer()Landroid/net/sip/SimpleSessionDescription;
+Landroid/net/sip/SipAudioCall;->createHoldOffer()Landroid/net/sip/SimpleSessionDescription;
+Landroid/net/sip/SipAudioCall;->createListener()Landroid/net/sip/SipSession$Listener;
+Landroid/net/sip/SipAudioCall;->createOffer()Landroid/net/sip/SimpleSessionDescription;
+Landroid/net/sip/SipAudioCall;->DBG:Z
+Landroid/net/sip/SipAudioCall;->DONT_RELEASE_SOCKET:Z
+Landroid/net/sip/SipAudioCall;->getAudioGroup()Landroid/net/rtp/AudioGroup;
+Landroid/net/sip/SipAudioCall;->getAudioStream()Landroid/net/rtp/AudioStream;
+Landroid/net/sip/SipAudioCall;->getLocalIp()Ljava/lang/String;
+Landroid/net/sip/SipAudioCall;->getSipSession()Landroid/net/sip/SipSession;
+Landroid/net/sip/SipAudioCall;->grabWifiHighPerfLock()V
+Landroid/net/sip/SipAudioCall;->isSpeakerOn()Z
+Landroid/net/sip/SipAudioCall;->isWifiOn()Z
+Landroid/net/sip/SipAudioCall;->log(Ljava/lang/String;)V
+Landroid/net/sip/SipAudioCall;->loge(Ljava/lang/String;)V
+Landroid/net/sip/SipAudioCall;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
+Landroid/net/sip/SipAudioCall;->LOG_TAG:Ljava/lang/String;
+Landroid/net/sip/SipAudioCall;->mAudioGroup:Landroid/net/rtp/AudioGroup;
+Landroid/net/sip/SipAudioCall;->mAudioStream:Landroid/net/rtp/AudioStream;
+Landroid/net/sip/SipAudioCall;->mContext:Landroid/content/Context;
+Landroid/net/sip/SipAudioCall;->mErrorCode:I
+Landroid/net/sip/SipAudioCall;->mErrorMessage:Ljava/lang/String;
+Landroid/net/sip/SipAudioCall;->mHold:Z
+Landroid/net/sip/SipAudioCall;->mInCall:Z
+Landroid/net/sip/SipAudioCall;->mListener:Landroid/net/sip/SipAudioCall$Listener;
+Landroid/net/sip/SipAudioCall;->mLocalProfile:Landroid/net/sip/SipProfile;
+Landroid/net/sip/SipAudioCall;->mMuted:Z
+Landroid/net/sip/SipAudioCall;->mPeerSd:Ljava/lang/String;
+Landroid/net/sip/SipAudioCall;->mSessionId:J
+Landroid/net/sip/SipAudioCall;->mSipSession:Landroid/net/sip/SipSession;
+Landroid/net/sip/SipAudioCall;->mTransferringSession:Landroid/net/sip/SipSession;
+Landroid/net/sip/SipAudioCall;->mWifiHighPerfLock:Landroid/net/wifi/WifiManager$WifiLock;
+Landroid/net/sip/SipAudioCall;->mWm:Landroid/net/wifi/WifiManager;
+Landroid/net/sip/SipAudioCall;->onError(ILjava/lang/String;)V
+Landroid/net/sip/SipAudioCall;->releaseWifiHighPerfLock()V
+Landroid/net/sip/SipAudioCall;->RELEASE_SOCKET:Z
+Landroid/net/sip/SipAudioCall;->SESSION_TIMEOUT:I
+Landroid/net/sip/SipAudioCall;->setAudioGroup(Landroid/net/rtp/AudioGroup;)V
+Landroid/net/sip/SipAudioCall;->setAudioGroupMode()V
+Landroid/net/sip/SipAudioCall;->startAudioInternal()V
+Landroid/net/sip/SipAudioCall;->stopCall(Z)V
+Landroid/net/sip/SipAudioCall;->throwSipException(Ljava/lang/Throwable;)V
+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;
+Landroid/net/sip/SipManager$ListenerRelay;->mUri:Ljava/lang/String;
+Landroid/net/sip/SipManager;-><init>(Landroid/content/Context;)V
+Landroid/net/sip/SipManager;->ACTION_SIP_ADD_PHONE:Ljava/lang/String;
+Landroid/net/sip/SipManager;->ACTION_SIP_CALL_OPTION_CHANGED:Ljava/lang/String;
+Landroid/net/sip/SipManager;->ACTION_SIP_INCOMING_CALL:Ljava/lang/String;
+Landroid/net/sip/SipManager;->ACTION_SIP_REMOVE_PHONE:Ljava/lang/String;
+Landroid/net/sip/SipManager;->ACTION_SIP_SERVICE_UP:Ljava/lang/String;
+Landroid/net/sip/SipManager;->checkSipServiceConnection()V
+Landroid/net/sip/SipManager;->createIncomingCallBroadcast(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+Landroid/net/sip/SipManager;->createRelay(Landroid/net/sip/SipRegistrationListener;Ljava/lang/String;)Landroid/net/sip/ISipSessionListener;
+Landroid/net/sip/SipManager;->createSipService()V
+Landroid/net/sip/SipManager;->EXTRA_LOCAL_URI:Ljava/lang/String;
+Landroid/net/sip/SipManager;->getListOfProfiles()[Landroid/net/sip/SipProfile;
+Landroid/net/sip/SipManager;->mContext:Landroid/content/Context;
+Landroid/net/sip/SipManager;->mSipService:Landroid/net/sip/ISipService;
+Landroid/net/sip/SipManager;->TAG:Ljava/lang/String;
+Landroid/net/sip/SipProfile$Builder;->fix(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/sip/SipProfile$Builder;->mAddressFactory:Ljavax/sip/address/AddressFactory;
+Landroid/net/sip/SipProfile$Builder;->mDisplayName:Ljava/lang/String;
+Landroid/net/sip/SipProfile$Builder;->mProfile:Landroid/net/sip/SipProfile;
+Landroid/net/sip/SipProfile$Builder;->mProxyAddress:Ljava/lang/String;
+Landroid/net/sip/SipProfile$Builder;->mUri:Ljavax/sip/address/SipURI;
+Landroid/net/sip/SipProfile;-><init>()V
+Landroid/net/sip/SipProfile;-><init>(Landroid/os/Parcel;)V
+Landroid/net/sip/SipProfile;->DEFAULT_PORT:I
+Landroid/net/sip/SipProfile;->getCallingUid()I
+Landroid/net/sip/SipProfile;->getSipAddress()Ljavax/sip/address/Address;
+Landroid/net/sip/SipProfile;->getUri()Ljavax/sip/address/SipURI;
+Landroid/net/sip/SipProfile;->mAddress:Ljavax/sip/address/Address;
+Landroid/net/sip/SipProfile;->mAuthUserName:Ljava/lang/String;
+Landroid/net/sip/SipProfile;->mAutoRegistration:Z
+Landroid/net/sip/SipProfile;->mCallingUid:I
+Landroid/net/sip/SipProfile;->mDomain:Ljava/lang/String;
+Landroid/net/sip/SipProfile;->mPassword:Ljava/lang/String;
+Landroid/net/sip/SipProfile;->mPort:I
+Landroid/net/sip/SipProfile;->mProfileName:Ljava/lang/String;
+Landroid/net/sip/SipProfile;->mProtocol:Ljava/lang/String;
+Landroid/net/sip/SipProfile;->mProxyAddress:Ljava/lang/String;
+Landroid/net/sip/SipProfile;->mSendKeepAlive:Z
+Landroid/net/sip/SipProfile;->setCallingUid(I)V
+Landroid/net/sip/SipProfile;->TCP:Ljava/lang/String;
+Landroid/net/sip/SipProfile;->UDP:Ljava/lang/String;
+Landroid/net/sip/SipSession$Listener;->onCallTransferring(Landroid/net/sip/SipSession;Ljava/lang/String;)V
+Landroid/net/sip/SipSession$State;-><init>()V
+Landroid/net/sip/SipSession$State;->ENDING_CALL:I
+Landroid/net/sip/SipSession;-><init>(Landroid/net/sip/ISipSession;)V
+Landroid/net/sip/SipSession;-><init>(Landroid/net/sip/ISipSession;Landroid/net/sip/SipSession$Listener;)V
+Landroid/net/sip/SipSession;->createListener()Landroid/net/sip/ISipSessionListener;
+Landroid/net/sip/SipSession;->getRealSession()Landroid/net/sip/ISipSession;
+Landroid/net/sip/SipSession;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
+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
+Landroid/net/SntpClient;->mNtpTimeReference:J
+Landroid/net/SntpClient;->mRoundTripTime:J
+Landroid/net/SntpClient;->NTP_LEAP_NOSYNC:I
+Landroid/net/SntpClient;->NTP_MODE_BROADCAST:I
+Landroid/net/SntpClient;->NTP_MODE_CLIENT:I
+Landroid/net/SntpClient;->NTP_MODE_SERVER:I
+Landroid/net/SntpClient;->NTP_PACKET_SIZE:I
+Landroid/net/SntpClient;->NTP_PORT:I
+Landroid/net/SntpClient;->NTP_STRATUM_DEATH:I
+Landroid/net/SntpClient;->NTP_STRATUM_MAX:I
+Landroid/net/SntpClient;->NTP_VERSION:I
+Landroid/net/SntpClient;->OFFSET_1900_TO_1970:J
+Landroid/net/SntpClient;->ORIGINATE_TIME_OFFSET:I
+Landroid/net/SntpClient;->read32([BI)J
+Landroid/net/SntpClient;->readTimeStamp([BI)J
+Landroid/net/SntpClient;->RECEIVE_TIME_OFFSET:I
+Landroid/net/SntpClient;->REFERENCE_TIME_OFFSET:I
+Landroid/net/SntpClient;->requestTime(Ljava/lang/String;ILandroid/net/Network;)Z
+Landroid/net/SntpClient;->requestTime(Ljava/net/InetAddress;IILandroid/net/Network;)Z
+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
+Landroid/net/TrafficStats;->addIfSupported(J)J
+Landroid/net/TrafficStats;->closeQuietly(Landroid/net/INetworkStatsSession;)V
+Landroid/net/TrafficStats;->GB_IN_BYTES:J
+Landroid/net/TrafficStats;->getDataLayerSnapshotForUid(Landroid/content/Context;)Landroid/net/NetworkStats;
+Landroid/net/TrafficStats;->getRxPackets(Ljava/lang/String;)J
+Landroid/net/TrafficStats;->getTxPackets(Ljava/lang/String;)J
+Landroid/net/TrafficStats;->KB_IN_BYTES:J
+Landroid/net/TrafficStats;->LOOPBACK_IFACE:Ljava/lang/String;
+Landroid/net/TrafficStats;->MB_IN_BYTES:J
+Landroid/net/TrafficStats;->PB_IN_BYTES:J
+Landroid/net/TrafficStats;->sActiveProfilingStart:Landroid/net/NetworkStats;
+Landroid/net/TrafficStats;->sProfilingLock:Ljava/lang/Object;
+Landroid/net/TrafficStats;->sStatsService:Landroid/net/INetworkStatsService;
+Landroid/net/TrafficStats;->startDataProfiling(Landroid/content/Context;)V
+Landroid/net/TrafficStats;->stopDataProfiling(Landroid/content/Context;)Landroid/net/NetworkStats;
+Landroid/net/TrafficStats;->TAG_SYSTEM_APP:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_BACKUP:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_DHCP:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_DOWNLOAD:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_GPS:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_MEDIA:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_NEIGHBOR:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_NTP:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_PAC:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_PROBE:I
+Landroid/net/TrafficStats;->TAG_SYSTEM_RESTORE:I
+Landroid/net/TrafficStats;->TB_IN_BYTES:J
+Landroid/net/TrafficStats;->TYPE_RX_BYTES:I
+Landroid/net/TrafficStats;->TYPE_RX_PACKETS:I
+Landroid/net/TrafficStats;->TYPE_TCP_RX_PACKETS:I
+Landroid/net/TrafficStats;->TYPE_TCP_TX_PACKETS:I
+Landroid/net/TrafficStats;->TYPE_TX_BYTES:I
+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
+Landroid/net/UidRange;->count()I
+Landroid/net/UidRange;->createForUser(I)Landroid/net/UidRange;
+Landroid/net/UidRange;->CREATOR:Landroid/os/Parcelable$Creator;
+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;
+Landroid/net/Uri$AbstractHierarchicalUri;->parseHost()Ljava/lang/String;
+Landroid/net/Uri$AbstractHierarchicalUri;->parsePort()I
+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;
+Landroid/net/Uri$AbstractPart;->getDecoded()Ljava/lang/String;
+Landroid/net/Uri$AbstractPart;->getEncoded()Ljava/lang/String;
+Landroid/net/Uri$AbstractPart;->writeTo(Landroid/os/Parcel;)V
+Landroid/net/Uri$Builder;->authority(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
+Landroid/net/Uri$Builder;->authority:Landroid/net/Uri$Part;
+Landroid/net/Uri$Builder;->fragment(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
+Landroid/net/Uri$Builder;->fragment:Landroid/net/Uri$Part;
+Landroid/net/Uri$Builder;->hasSchemeOrAuthority()Z
+Landroid/net/Uri$Builder;->opaquePart(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
+Landroid/net/Uri$Builder;->opaquePart:Landroid/net/Uri$Part;
+Landroid/net/Uri$Builder;->path(Landroid/net/Uri$PathPart;)Landroid/net/Uri$Builder;
+Landroid/net/Uri$Builder;->path:Landroid/net/Uri$PathPart;
+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;
+Landroid/net/Uri$HierarchicalUri;->fragment:Landroid/net/Uri$Part;
+Landroid/net/Uri$HierarchicalUri;->getSsp()Landroid/net/Uri$Part;
+Landroid/net/Uri$HierarchicalUri;->makeSchemeSpecificPart()Ljava/lang/String;
+Landroid/net/Uri$HierarchicalUri;->makeUriString()Ljava/lang/String;
+Landroid/net/Uri$HierarchicalUri;->path:Landroid/net/Uri$PathPart;
+Landroid/net/Uri$HierarchicalUri;->query:Landroid/net/Uri$Part;
+Landroid/net/Uri$HierarchicalUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri;
+Landroid/net/Uri$HierarchicalUri;->scheme:Ljava/lang/String;
+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;
+Landroid/net/Uri$OpaqueUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri;
+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;
+Landroid/net/Uri$Part;->fromDecoded(Ljava/lang/String;)Landroid/net/Uri$Part;
+Landroid/net/Uri$Part;->fromEncoded(Ljava/lang/String;)Landroid/net/Uri$Part;
+Landroid/net/Uri$Part;->getEncoded()Ljava/lang/String;
+Landroid/net/Uri$Part;->isEmpty()Z
+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;
+Landroid/net/Uri$PathPart;->EMPTY:Landroid/net/Uri$PathPart;
+Landroid/net/Uri$PathPart;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$PathPart;
+Landroid/net/Uri$PathPart;->fromDecoded(Ljava/lang/String;)Landroid/net/Uri$PathPart;
+Landroid/net/Uri$PathPart;->fromEncoded(Ljava/lang/String;)Landroid/net/Uri$PathPart;
+Landroid/net/Uri$PathPart;->getEncoded()Ljava/lang/String;
+Landroid/net/Uri$PathPart;->getPathSegments()Landroid/net/Uri$PathSegments;
+Landroid/net/Uri$PathPart;->makeAbsolute(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart;
+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
+Landroid/net/Uri$StringUri;->cachedSsi:I
+Landroid/net/Uri$StringUri;->findFragmentSeparator()I
+Landroid/net/Uri$StringUri;->findSchemeSeparator()I
+Landroid/net/Uri$StringUri;->fragment:Landroid/net/Uri$Part;
+Landroid/net/Uri$StringUri;->getAuthorityPart()Landroid/net/Uri$Part;
+Landroid/net/Uri$StringUri;->getFragmentPart()Landroid/net/Uri$Part;
+Landroid/net/Uri$StringUri;->getPathPart()Landroid/net/Uri$PathPart;
+Landroid/net/Uri$StringUri;->getQueryPart()Landroid/net/Uri$Part;
+Landroid/net/Uri$StringUri;->getSsp()Landroid/net/Uri$Part;
+Landroid/net/Uri$StringUri;->parseAuthority(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/net/Uri$StringUri;->parseFragment()Ljava/lang/String;
+Landroid/net/Uri$StringUri;->parsePath()Ljava/lang/String;
+Landroid/net/Uri$StringUri;->parsePath(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/net/Uri$StringUri;->parseQuery()Ljava/lang/String;
+Landroid/net/Uri$StringUri;->parseScheme()Ljava/lang/String;
+Landroid/net/Uri$StringUri;->parseSsp()Ljava/lang/String;
+Landroid/net/Uri$StringUri;->path:Landroid/net/Uri$PathPart;
+Landroid/net/Uri$StringUri;->query:Landroid/net/Uri$Part;
+Landroid/net/Uri$StringUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri;
+Landroid/net/Uri$StringUri;->scheme:Ljava/lang/String;
+Landroid/net/Uri$StringUri;->ssp:Landroid/net/Uri$Part;
+Landroid/net/Uri$StringUri;->TYPE_ID:I
+Landroid/net/Uri$StringUri;->uriString:Ljava/lang/String;
+Landroid/net/Uri;->checkContentUriWithoutPermission(Ljava/lang/String;I)V
+Landroid/net/Uri;->checkFileUriExposed(Ljava/lang/String;)V
+Landroid/net/Uri;->DEFAULT_ENCODING:Ljava/lang/String;
+Landroid/net/Uri;->HEX_DIGITS:[C
+Landroid/net/Uri;->isAllowed(CLjava/lang/String;)Z
+Landroid/net/Uri;->isPathPrefixMatch(Landroid/net/Uri;)Z
+Landroid/net/Uri;->LOG:Ljava/lang/String;
+Landroid/net/Uri;->NOT_CACHED:Ljava/lang/String;
+Landroid/net/Uri;->NOT_CALCULATED:I
+Landroid/net/Uri;->NOT_FOUND:I
+Landroid/net/Uri;->NOT_HIERARCHICAL:Ljava/lang/String;
+Landroid/net/Uri;->NULL_TYPE_ID:I
+Landroid/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer;->characterIsLegal(C)Z
+Landroid/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer;->isWhitespace(C)Z
+Landroid/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer;->JAVASCRIPT_PREFIX:Ljava/lang/String;
+Landroid/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer;->mFlags:I
+Landroid/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer;->MIN_SCRIPT_PREFIX_LENGTH:I
+Landroid/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer;->trimWhitespace(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer;->VBSCRIPT_PREFIX:Ljava/lang/String;
+Landroid/net/UrlQuerySanitizer;->mAllowUnregisteredParamaters:Z
+Landroid/net/UrlQuerySanitizer;->mEntries:Ljava/util/HashMap;
+Landroid/net/UrlQuerySanitizer;->mEntriesList:Ljava/util/ArrayList;
+Landroid/net/UrlQuerySanitizer;->mPreferFirstRepeatedParameter:Z
+Landroid/net/UrlQuerySanitizer;->mSanitizers:Ljava/util/HashMap;
+Landroid/net/UrlQuerySanitizer;->mUnregisteredParameterValueSanitizer:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+Landroid/net/UrlQuerySanitizer;->sAllButNulAndAngleBracketsLegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+Landroid/net/UrlQuerySanitizer;->sAllButNulLegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+Landroid/net/UrlQuerySanitizer;->sAllButWhitespaceLegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+Landroid/net/UrlQuerySanitizer;->sAllIllegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+Landroid/net/UrlQuerySanitizer;->sAmpAndSpaceLegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+Landroid/net/UrlQuerySanitizer;->sAmpLegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+Landroid/net/UrlQuerySanitizer;->sSpaceLegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+Landroid/net/UrlQuerySanitizer;->sUrlAndSpaceLegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
+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;
+Landroid/net/VpnService;->removeAddress(Ljava/net/InetAddress;I)Z
+Landroid/net/WebAddress;->MATCH_GROUP_AUTHORITY:I
+Landroid/net/WebAddress;->MATCH_GROUP_HOST:I
+Landroid/net/WebAddress;->MATCH_GROUP_PATH:I
+Landroid/net/WebAddress;->MATCH_GROUP_PORT:I
+Landroid/net/WebAddress;->MATCH_GROUP_SCHEME:I
+Landroid/net/WebAddress;->mAuthInfo:Ljava/lang/String;
+Landroid/net/WebAddress;->sAddressPattern:Ljava/util/regex/Pattern;
+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
+Landroid/net/wifi/AnqpInformationElement;->ANQP_CIVIC_LOC:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_DOM_NAME:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_EMERGENCY_ALERT:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_EMERGENCY_NAI:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_EMERGENCY_NUMBER:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_GEO_LOC:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_IP_ADDR_AVAILABILITY:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_LOC_URI:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_NAI_REALM:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_NEIGHBOR_REPORT:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_NWK_AUTH_TYPE:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_QUERY_LIST:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_ROAMING_CONSORTIUM:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_TDLS_CAP:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_VENDOR_SPEC:I
+Landroid/net/wifi/AnqpInformationElement;->ANQP_VENUE_NAME:I
+Landroid/net/wifi/AnqpInformationElement;->getElementId()I
+Landroid/net/wifi/AnqpInformationElement;->getPayload()[B
+Landroid/net/wifi/AnqpInformationElement;->getVendorId()I
+Landroid/net/wifi/AnqpInformationElement;->HOTSPOT20_VENDOR_ID:I
+Landroid/net/wifi/AnqpInformationElement;->HS_CAPABILITY_LIST:I
+Landroid/net/wifi/AnqpInformationElement;->HS_CONN_CAPABILITY:I
+Landroid/net/wifi/AnqpInformationElement;->HS_FRIENDLY_NAME:I
+Landroid/net/wifi/AnqpInformationElement;->HS_ICON_FILE:I
+Landroid/net/wifi/AnqpInformationElement;->HS_ICON_REQUEST:I
+Landroid/net/wifi/AnqpInformationElement;->HS_NAI_HOME_REALM_QUERY:I
+Landroid/net/wifi/AnqpInformationElement;->HS_OPERATING_CLASS:I
+Landroid/net/wifi/AnqpInformationElement;->HS_OSU_PROVIDERS:I
+Landroid/net/wifi/AnqpInformationElement;->HS_QUERY_LIST:I
+Landroid/net/wifi/AnqpInformationElement;->HS_WAN_METRICS:I
+Landroid/net/wifi/AnqpInformationElement;->mElementId:I
+Landroid/net/wifi/AnqpInformationElement;->mPayload:[B
+Landroid/net/wifi/AnqpInformationElement;->mVendorId:I
+Landroid/net/wifi/aware/Characteristics;-><init>(Landroid/os/Bundle;)V
+Landroid/net/wifi/aware/Characteristics;->KEY_MAX_MATCH_FILTER_LENGTH:Ljava/lang/String;
+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
+Landroid/net/wifi/aware/ConfigRequest$Builder;->mClusterLow:I
+Landroid/net/wifi/aware/ConfigRequest$Builder;->mDiscoveryWindowInterval:[I
+Landroid/net/wifi/aware/ConfigRequest$Builder;->mMasterPreference:I
+Landroid/net/wifi/aware/ConfigRequest$Builder;->mSupport5gBand:Z
+Landroid/net/wifi/aware/ConfigRequest$Builder;->setClusterHigh(I)Landroid/net/wifi/aware/ConfigRequest$Builder;
+Landroid/net/wifi/aware/ConfigRequest$Builder;->setClusterLow(I)Landroid/net/wifi/aware/ConfigRequest$Builder;
+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
+Landroid/net/wifi/aware/ConfigRequest;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/aware/ConfigRequest;->DW_DISABLE:I
+Landroid/net/wifi/aware/ConfigRequest;->DW_INTERVAL_NOT_INIT:I
+Landroid/net/wifi/aware/ConfigRequest;->mClusterHigh:I
+Landroid/net/wifi/aware/ConfigRequest;->mClusterLow:I
+Landroid/net/wifi/aware/ConfigRequest;->mDiscoveryWindowInterval:[I
+Landroid/net/wifi/aware/ConfigRequest;->mMasterPreference:I
+Landroid/net/wifi/aware/ConfigRequest;->mSupport5gBand:Z
+Landroid/net/wifi/aware/ConfigRequest;->NAN_BAND_24GHZ:I
+Landroid/net/wifi/aware/ConfigRequest;->NAN_BAND_5GHZ:I
+Landroid/net/wifi/aware/ConfigRequest;->validate()V
+Landroid/net/wifi/aware/DiscoverySession;-><init>(Landroid/net/wifi/aware/WifiAwareManager;II)V
+Landroid/net/wifi/aware/DiscoverySession;->DBG:Z
+Landroid/net/wifi/aware/DiscoverySession;->getClientId()I
+Landroid/net/wifi/aware/DiscoverySession;->getMaxSendRetryCount()I
+Landroid/net/wifi/aware/DiscoverySession;->getSessionId()I
+Landroid/net/wifi/aware/DiscoverySession;->MAX_SEND_RETRY_COUNT:I
+Landroid/net/wifi/aware/DiscoverySession;->mClientId:I
+Landroid/net/wifi/aware/DiscoverySession;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/net/wifi/aware/DiscoverySession;->mMgr:Ljava/lang/ref/WeakReference;
+Landroid/net/wifi/aware/DiscoverySession;->mSessionId:I
+Landroid/net/wifi/aware/DiscoverySession;->mTerminated:Z
+Landroid/net/wifi/aware/DiscoverySession;->sendMessage(Landroid/net/wifi/aware/PeerHandle;I[BI)V
+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;
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onMatch(I[B[B)V
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onMatchWithDistance(I[B[BI)V
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onMessageReceived(I[B)V
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onMessageSendFail(II)V
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onMessageSendSuccess(I)V
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onSessionConfigFail(I)V
+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;
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onMatch:I
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onMatchWithDistance:I
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onMessageReceived:I
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onMessageSendFail:I
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onMessageSendSuccess:I
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onSessionConfigFail:I
+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
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onMessageSendFail(II)V
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onMessageSendSuccess(I)V
+Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onSessionConfigFail(I)V
+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
+Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->getCharacteristics()Landroid/net/wifi/aware/Characteristics;
+Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->isUsageEnabled()Z
+Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->publish(Ljava/lang/String;ILandroid/net/wifi/aware/PublishConfig;Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;)V
+Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->requestMacAddresses(ILjava/util/List;Landroid/net/wifi/aware/IWifiAwareMacAddressProvider;)V
+Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->sendMessage(III[BII)V
+Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->subscribe(Ljava/lang/String;ILandroid/net/wifi/aware/SubscribeConfig;Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;)V
+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;
+Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_connect:I
+Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_disconnect:I
+Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_getCharacteristics:I
+Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_isUsageEnabled:I
+Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_publish:I
+Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_requestMacAddresses:I
+Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_sendMessage:I
+Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_subscribe:I
+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;
+Landroid/net/wifi/aware/IWifiAwareManager;->isUsageEnabled()Z
+Landroid/net/wifi/aware/IWifiAwareManager;->publish(Ljava/lang/String;ILandroid/net/wifi/aware/PublishConfig;Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;)V
+Landroid/net/wifi/aware/IWifiAwareManager;->requestMacAddresses(ILjava/util/List;Landroid/net/wifi/aware/IWifiAwareMacAddressProvider;)V
+Landroid/net/wifi/aware/IWifiAwareManager;->sendMessage(III[BII)V
+Landroid/net/wifi/aware/IWifiAwareManager;->subscribe(Ljava/lang/String;ILandroid/net/wifi/aware/SubscribeConfig;Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;)V
+Landroid/net/wifi/aware/IWifiAwareManager;->terminateSession(II)V
+Landroid/net/wifi/aware/IWifiAwareManager;->updatePublish(IILandroid/net/wifi/aware/PublishConfig;)V
+Landroid/net/wifi/aware/IWifiAwareManager;->updateSubscribe(IILandroid/net/wifi/aware/SubscribeConfig;)V
+Landroid/net/wifi/aware/PeerHandle;-><init>(I)V
+Landroid/net/wifi/aware/PeerHandle;->peerId:I
+Landroid/net/wifi/aware/PublishConfig$Builder;->mEnableRanging:Z
+Landroid/net/wifi/aware/PublishConfig$Builder;->mEnableTerminateNotification:Z
+Landroid/net/wifi/aware/PublishConfig$Builder;->mMatchFilter:[B
+Landroid/net/wifi/aware/PublishConfig$Builder;->mPublishType:I
+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
+Landroid/net/wifi/aware/PublishConfig;->mEnableTerminateNotification:Z
+Landroid/net/wifi/aware/PublishConfig;->mMatchFilter:[B
+Landroid/net/wifi/aware/PublishConfig;->mPublishType:I
+Landroid/net/wifi/aware/PublishConfig;->mServiceName:[B
+Landroid/net/wifi/aware/PublishConfig;->mServiceSpecificInfo:[B
+Landroid/net/wifi/aware/PublishConfig;->mTtlSec:I
+Landroid/net/wifi/aware/PublishDiscoverySession;-><init>(Landroid/net/wifi/aware/WifiAwareManager;II)V
+Landroid/net/wifi/aware/PublishDiscoverySession;->TAG:Ljava/lang/String;
+Landroid/net/wifi/aware/SubscribeConfig$Builder;->mEnableTerminateNotification:Z
+Landroid/net/wifi/aware/SubscribeConfig$Builder;->mMatchFilter:[B
+Landroid/net/wifi/aware/SubscribeConfig$Builder;->mMaxDistanceMm:I
+Landroid/net/wifi/aware/SubscribeConfig$Builder;->mMaxDistanceMmSet:Z
+Landroid/net/wifi/aware/SubscribeConfig$Builder;->mMinDistanceMm:I
+Landroid/net/wifi/aware/SubscribeConfig$Builder;->mMinDistanceMmSet:Z
+Landroid/net/wifi/aware/SubscribeConfig$Builder;->mServiceName:[B
+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
+Landroid/net/wifi/aware/SubscribeConfig;->mMatchFilter:[B
+Landroid/net/wifi/aware/SubscribeConfig;->mMaxDistanceMm:I
+Landroid/net/wifi/aware/SubscribeConfig;->mMaxDistanceMmSet:Z
+Landroid/net/wifi/aware/SubscribeConfig;->mMinDistanceMm:I
+Landroid/net/wifi/aware/SubscribeConfig;->mMinDistanceMmSet:Z
+Landroid/net/wifi/aware/SubscribeConfig;->mServiceName:[B
+Landroid/net/wifi/aware/SubscribeConfig;->mServiceSpecificInfo:[B
+Landroid/net/wifi/aware/SubscribeConfig;->mSubscribeType:I
+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;
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->allocateAndPut(Ljava/util/List;)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->checkLength(I)V
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->getActualLength()I
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->getArray()[B
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->mArray:[B
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->mArrayLength:I
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->mLengthSize:I
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->mPosition:I
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->mTypeSize:I
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->putByte(IB)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->putByteArray(I[B)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->putByteArray(I[BII)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->putInt(II)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
+Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->putShort(IS)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
+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
+Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;->getShort()S
+Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;->getString()Ljava/lang/String;
+Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;->length:I
+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
+Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->assertValidFromUid(I)V
+Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->convert(Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;)Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier$ByteArrayWrapper;
+Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->initialize()V
+Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->isEmpty()Z
+Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->mDigester:Ljava/security/MessageDigest;
+Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->mNetworkSpecifiers:Ljava/util/Set;
+Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->satisfiedBy(Landroid/net/NetworkSpecifier;)Z
+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
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_MESSAGE_RECEIVED:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_MESSAGE_SEND_FAIL:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_MESSAGE_SEND_SUCCESS:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_SESSION_CONFIG_FAIL:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_SESSION_CONFIG_SUCCESS:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_SESSION_STARTED:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_SESSION_TERMINATED:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->mAwareManager:Ljava/lang/ref/WeakReference;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->mClientId:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->MESSAGE_BUNDLE_KEY_MESSAGE2:Ljava/lang/String;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->MESSAGE_BUNDLE_KEY_MESSAGE:Ljava/lang/String;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->mHandler:Landroid/os/Handler;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->mIsPublish:Z
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->mOriginalCallback:Landroid/net/wifi/aware/DiscoverySessionCallback;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->mSession:Landroid/net/wifi/aware/DiscoverySession;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onMatch(I[B[B)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onMatchCommon(II[B[BI)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onMatchWithDistance(I[B[BI)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onMessageReceived(I[B)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onMessageSendFail(II)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onMessageSendSuccess(I)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onProxySessionStarted(I)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onProxySessionTerminated(I)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onSessionConfigFail(I)V
+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
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->CALLBACK_IDENTITY_CHANGED:I
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->mAwareManager:Ljava/lang/ref/WeakReference;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->mBinder:Landroid/os/Binder;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->mHandler:Landroid/os/Handler;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->mLooper:Landroid/os/Looper;
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->onConnectFail(I)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->onConnectSuccess(I)V
+Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->onIdentityChanged([B)V
+Landroid/net/wifi/aware/WifiAwareManager;-><init>(Landroid/content/Context;Landroid/net/wifi/aware/IWifiAwareManager;)V
+Landroid/net/wifi/aware/WifiAwareManager;->attach(Landroid/os/Handler;Landroid/net/wifi/aware/ConfigRequest;Landroid/net/wifi/aware/AttachCallback;Landroid/net/wifi/aware/IdentityChangedListener;)V
+Landroid/net/wifi/aware/WifiAwareManager;->createNetworkSpecifier(IIILandroid/net/wifi/aware/PeerHandle;[BLjava/lang/String;)Landroid/net/NetworkSpecifier;
+Landroid/net/wifi/aware/WifiAwareManager;->createNetworkSpecifier(II[B[BLjava/lang/String;)Landroid/net/NetworkSpecifier;
+Landroid/net/wifi/aware/WifiAwareManager;->DBG:Z
+Landroid/net/wifi/aware/WifiAwareManager;->disconnect(ILandroid/os/Binder;)V
+Landroid/net/wifi/aware/WifiAwareManager;->mContext:Landroid/content/Context;
+Landroid/net/wifi/aware/WifiAwareManager;->mLock:Ljava/lang/Object;
+Landroid/net/wifi/aware/WifiAwareManager;->mService:Landroid/net/wifi/aware/IWifiAwareManager;
+Landroid/net/wifi/aware/WifiAwareManager;->publish(ILandroid/os/Looper;Landroid/net/wifi/aware/PublishConfig;Landroid/net/wifi/aware/DiscoverySessionCallback;)V
+Landroid/net/wifi/aware/WifiAwareManager;->sendMessage(IILandroid/net/wifi/aware/PeerHandle;[BII)V
+Landroid/net/wifi/aware/WifiAwareManager;->subscribe(ILandroid/os/Looper;Landroid/net/wifi/aware/SubscribeConfig;Landroid/net/wifi/aware/DiscoverySessionCallback;)V
+Landroid/net/wifi/aware/WifiAwareManager;->TAG:Ljava/lang/String;
+Landroid/net/wifi/aware/WifiAwareManager;->terminateSession(II)V
+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
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->isOutOfBand()Z
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->NETWORK_SPECIFIER_TYPE_IB:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->NETWORK_SPECIFIER_TYPE_IB_ANY_PEER:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->NETWORK_SPECIFIER_TYPE_MAX_VALID:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->NETWORK_SPECIFIER_TYPE_OOB:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->NETWORK_SPECIFIER_TYPE_OOB_ANY_PEER:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->passphrase:Ljava/lang/String;
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->peerId:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->peerMac:[B
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->pmk:[B
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->requestorUid:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->role:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->satisfiedBy(Landroid/net/NetworkSpecifier;)Z
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->sessionId:I
+Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->type:I
+Landroid/net/wifi/aware/WifiAwareSession;-><init>(Landroid/net/wifi/aware/WifiAwareManager;Landroid/os/Binder;I)V
+Landroid/net/wifi/aware/WifiAwareSession;->DBG:Z
+Landroid/net/wifi/aware/WifiAwareSession;->getClientId()I
+Landroid/net/wifi/aware/WifiAwareSession;->mBinder:Landroid/os/Binder;
+Landroid/net/wifi/aware/WifiAwareSession;->mClientId:I
+Landroid/net/wifi/aware/WifiAwareSession;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/net/wifi/aware/WifiAwareSession;->mMgr:Ljava/lang/ref/WeakReference;
+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
+Landroid/net/wifi/aware/WifiAwareUtils;->validatePmk([B)Z
+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
+Landroid/net/wifi/EAPConstants;->EAP_AKA:I
+Landroid/net/wifi/EAPConstants;->EAP_AKA_PRIME:I
+Landroid/net/wifi/EAPConstants;->EAP_EKE:I
+Landroid/net/wifi/EAPConstants;->EAP_FAST:I
+Landroid/net/wifi/EAPConstants;->EAP_GPSK:I
+Landroid/net/wifi/EAPConstants;->EAP_HTTPDigest:I
+Landroid/net/wifi/EAPConstants;->EAP_IKEv2:I
+Landroid/net/wifi/EAPConstants;->EAP_KEA:I
+Landroid/net/wifi/EAPConstants;->EAP_KEA_VALIDATE:I
+Landroid/net/wifi/EAPConstants;->EAP_LEAP:I
+Landroid/net/wifi/EAPConstants;->EAP_Link:I
+Landroid/net/wifi/EAPConstants;->EAP_MD5:I
+Landroid/net/wifi/EAPConstants;->EAP_MOBAC:I
+Landroid/net/wifi/EAPConstants;->EAP_MSCHAPv2:I
+Landroid/net/wifi/EAPConstants;->EAP_OTP:I
+Landroid/net/wifi/EAPConstants;->EAP_PAX:I
+Landroid/net/wifi/EAPConstants;->EAP_PEAP:I
+Landroid/net/wifi/EAPConstants;->EAP_POTP:I
+Landroid/net/wifi/EAPConstants;->EAP_PSK:I
+Landroid/net/wifi/EAPConstants;->EAP_PWD:I
+Landroid/net/wifi/EAPConstants;->EAP_RSA:I
+Landroid/net/wifi/EAPConstants;->EAP_SAKE:I
+Landroid/net/wifi/EAPConstants;->EAP_SIM:I
+Landroid/net/wifi/EAPConstants;->EAP_SPEKE:I
+Landroid/net/wifi/EAPConstants;->EAP_TEAP:I
+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
+Landroid/net/wifi/hotspot2/ConfigParser$MimePart;->type:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/ConfigParser;-><init>()V
+Landroid/net/wifi/hotspot2/ConfigParser;->BOUNDARY:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/ConfigParser;->CONTENT_TRANSFER_ENCODING:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/ConfigParser;->CONTENT_TYPE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/ConfigParser;->createPasspointConfig(Ljava/util/Map;)Landroid/net/wifi/hotspot2/PasspointConfiguration;
+Landroid/net/wifi/hotspot2/ConfigParser;->ENCODING_BASE64:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/ConfigParser;->parseCACert([B)Ljava/security/cert/X509Certificate;
+Landroid/net/wifi/hotspot2/ConfigParser;->parseContentType(Ljava/lang/String;)Landroid/util/Pair;
+Landroid/net/wifi/hotspot2/ConfigParser;->parseHeaders(Ljava/io/LineNumberReader;)Landroid/net/wifi/hotspot2/ConfigParser$MimeHeader;
+Landroid/net/wifi/hotspot2/ConfigParser;->parseMimeMultipartMessage(Ljava/io/LineNumberReader;)Ljava/util/Map;
+Landroid/net/wifi/hotspot2/ConfigParser;->parseMimePart(Ljava/io/LineNumberReader;Ljava/lang/String;)Landroid/net/wifi/hotspot2/ConfigParser$MimePart;
+Landroid/net/wifi/hotspot2/ConfigParser;->parsePkcs12([B)Landroid/util/Pair;
+Landroid/net/wifi/hotspot2/ConfigParser;->readHeaders(Ljava/io/LineNumberReader;)Ljava/util/Map;
+Landroid/net/wifi/hotspot2/ConfigParser;->TAG:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/ConfigParser;->TYPE_CA_CERT:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/ConfigParser;->TYPE_MULTIPART_MIXED:Ljava/lang/String;
+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;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;->getValue()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;->isLeaf()Z
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;->mName:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;-><init>()V
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->buildPpsNode(Landroid/net/wifi/hotspot2/omadm/XMLNode;)Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->convertFromLongList(Ljava/util/List;)[J
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->getPpsNodeValue(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_AAA_SERVER_TRUST_ROOT:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_ABLE_TO_SHARE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_CERTIFICATE_TYPE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_CERT_SHA256_FINGERPRINT:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_CERT_URL:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_CHECK_AAA_SERVER_CERT_STATUS:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_COUNTRY:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_CREATION_DATE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_CREDENTIAL:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_CREDENTIAL_PRIORITY:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_DATA_LIMIT:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_DIGITAL_CERTIFICATE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_DOWNLINK_BANDWIDTH:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_EAP_METHOD:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_EAP_TYPE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_EXPIRATION_DATE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_EXTENSION:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_FQDN:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_FQDN_MATCH:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_FRIENDLY_NAME:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_HESSID:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_HOMESP:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_HOME_OI:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_HOME_OI_LIST:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_HOME_OI_REQUIRED:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_ICON_URL:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_INNER_EAP_TYPE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_INNER_METHOD:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_INNER_VENDOR_ID:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_INNER_VENDOR_TYPE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_IP_PROTOCOL:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_MACHINE_MANAGED:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_MAXIMUM_BSS_LOAD_VALUE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_MIN_BACKHAUL_THRESHOLD:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_NETWORK_ID:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_NETWORK_TYPE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_OTHER:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_OTHER_HOME_PARTNERS:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_PASSWORD:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_PER_PROVIDER_SUBSCRIPTION:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_POLICY:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_POLICY_UPDATE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_PORT_NUMBER:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_PREFERRED_ROAMING_PARTNER_LIST:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_PRIORITY:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_REALM:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_REQUIRED_PROTO_PORT_TUPLE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_RESTRICTION:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_ROAMING_CONSORTIUM_OI:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_SIM:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_SIM_IMSI:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_SOFT_TOKEN_APP:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_SP_EXCLUSION_LIST:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_SSID:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_START_DATE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_SUBSCRIPTION_PARAMETER:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_SUBSCRIPTION_UPDATE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_TIME_LIMIT:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_TRUST_ROOT:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_TYPE_OF_SUBSCRIPTION:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_UPDATE_IDENTIFIER:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_UPDATE_INTERVAL:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_UPDATE_METHOD:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_UPLINK_BANDWIDTH:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_URI:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_USAGE_LIMITS:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_USAGE_TIME_PERIOD:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_USERNAME:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_USERNAME_PASSWORD:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_VENDOR_ID:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->NODE_VENDOR_TYPE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseAAAServerTrustRootList(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Ljava/util/Map;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseCertificateCredential(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/pps/Credential$CertificateCredential;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseCredential(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/pps/Credential;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseDate(Ljava/lang/String;)J
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseEAPMethod(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;)V
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseHexString(Ljava/lang/String;)[B
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseHomeOIInstance(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/util/Pair;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseHomeOIList(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/util/Pair;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseHomeSP(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/pps/HomeSp;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseInteger(Ljava/lang/String;)I
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseLong(Ljava/lang/String;I)J
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseMinBackhaulThreshold(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;Landroid/net/wifi/hotspot2/pps/Policy;)V
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseMinBackhaulThresholdInstance(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;Landroid/net/wifi/hotspot2/pps/Policy;)V
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseNetworkIdInstance(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/util/Pair;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseNetworkIds(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Ljava/util/Map;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseOtherHomePartnerInstance(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseOtherHomePartners(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)[Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parsePolicy(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/pps/Policy;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parsePpsInstance(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/PasspointConfiguration;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parsePpsNode(Landroid/net/wifi/hotspot2/omadm/XMLNode;)Landroid/net/wifi/hotspot2/PasspointConfiguration;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parsePreferredRoamingPartner(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parsePreferredRoamingPartnerList(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Ljava/util/List;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseProtoPortTuple(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/util/Pair;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseRequiredProtoPortTuple(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Ljava/util/Map;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseRoamingConsortiumOI(Ljava/lang/String;)[J
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseSimCredential(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/pps/Credential$SimCredential;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseSpExclusionInstance(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseSpExclusionList(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)[Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseSubscriptionParameter(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;Landroid/net/wifi/hotspot2/PasspointConfiguration;)V
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseTrustRoot(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/util/Pair;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseUpdateParameter(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/pps/UpdateParameter;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseUpdateUserCredential(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/util/Pair;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseUrn(Landroid/net/wifi/hotspot2/omadm/XMLNode;)Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseUsageLimits(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;Landroid/net/wifi/hotspot2/PasspointConfiguration;)V
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->parseUserCredential(Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;)Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->PPS_MO_URN:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG_DDF_NAME:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG_MANAGEMENT_TREE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG_NODE:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG_NODE_NAME:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG_RT_PROPERTIES:Ljava/lang/String;
+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
+Landroid/net/wifi/hotspot2/omadm/XMLNode;->close()V
+Landroid/net/wifi/hotspot2/omadm/XMLNode;->getChildren()Ljava/util/List;
+Landroid/net/wifi/hotspot2/omadm/XMLNode;->getParent()Landroid/net/wifi/hotspot2/omadm/XMLNode;
+Landroid/net/wifi/hotspot2/omadm/XMLNode;->getTag()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/XMLNode;->getText()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/omadm/XMLNode;->mChildren:Ljava/util/List;
+Landroid/net/wifi/hotspot2/omadm/XMLNode;->mParent:Landroid/net/wifi/hotspot2/omadm/XMLNode;
+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;
+Landroid/net/wifi/hotspot2/OsuProvider;->getFriendlyName()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/OsuProvider;->getIcon()Landroid/graphics/drawable/Icon;
+Landroid/net/wifi/hotspot2/OsuProvider;->getMethodList()Ljava/util/List;
+Landroid/net/wifi/hotspot2/OsuProvider;->getNetworkAccessIdentifier()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/OsuProvider;->getOsuSsid()Landroid/net/wifi/WifiSsid;
+Landroid/net/wifi/hotspot2/OsuProvider;->getServerUri()Landroid/net/Uri;
+Landroid/net/wifi/hotspot2/OsuProvider;->getServiceDescription()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/OsuProvider;->METHOD_OMA_DM:I
+Landroid/net/wifi/hotspot2/OsuProvider;->METHOD_SOAP_XML_SPP:I
+Landroid/net/wifi/hotspot2/OsuProvider;->mFriendlyName:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/OsuProvider;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/net/wifi/hotspot2/OsuProvider;->mMethodList:Ljava/util/List;
+Landroid/net/wifi/hotspot2/OsuProvider;->mNetworkAccessIdentifier:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/OsuProvider;->mOsuSsid:Landroid/net/wifi/WifiSsid;
+Landroid/net/wifi/hotspot2/OsuProvider;->mServerUri:Landroid/net/Uri;
+Landroid/net/wifi/hotspot2/OsuProvider;->mServiceDescription:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->CERTIFICATE_SHA256_BYTES:I
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getCredentialPriority()I
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getPolicy()Landroid/net/wifi/hotspot2/pps/Policy;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getSubscriptionCreationTimeInMillis()J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getSubscriptionExpirationTimeInMillis()J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getSubscriptionType()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getSubscriptionUpdate()Landroid/net/wifi/hotspot2/pps/UpdateParameter;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getTrustRootCertList()Ljava/util/Map;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getUpdateIdentifier()I
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getUsageLimitDataLimit()J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getUsageLimitStartTimeInMillis()J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getUsageLimitTimeLimitInMinutes()J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->getUsageLimitUsageTimePeriodInMinutes()J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->isTrustRootCertListEquals(Ljava/util/Map;Ljava/util/Map;)Z
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->MAX_URL_BYTES:I
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mCredential:Landroid/net/wifi/hotspot2/pps/Credential;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mCredentialPriority:I
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mHomeSp:Landroid/net/wifi/hotspot2/pps/HomeSp;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mPolicy:Landroid/net/wifi/hotspot2/pps/Policy;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mSubscriptionCreationTimeInMillis:J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mSubscriptionExpirationTimeInMillis:J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mSubscriptionType:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mSubscriptionUpdate:Landroid/net/wifi/hotspot2/pps/UpdateParameter;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mTrustRootCertList:Ljava/util/Map;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mUpdateIdentifier:I
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mUsageLimitDataLimit:J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mUsageLimitStartTimeInMillis:J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mUsageLimitTimeLimitInMinutes:J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->mUsageLimitUsageTimePeriodInMinutes:J
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->NULL_VALUE:I
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setCredentialPriority(I)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setPolicy(Landroid/net/wifi/hotspot2/pps/Policy;)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setSubscriptionCreationTimeInMillis(J)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setSubscriptionExpirationTimeInMillis(J)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setSubscriptionType(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setSubscriptionUpdate(Landroid/net/wifi/hotspot2/pps/UpdateParameter;)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setTrustRootCertList(Ljava/util/Map;)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setUpdateIdentifier(I)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setUsageLimitDataLimit(J)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setUsageLimitStartTimeInMillis(J)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setUsageLimitTimeLimitInMinutes(J)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->setUsageLimitUsageTimePeriodInMinutes(J)V
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->TAG:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->validate()Z
+Landroid/net/wifi/hotspot2/PasspointConfiguration;->writeTrustRootCerts(Landroid/os/Parcel;Ljava/util/Map;)V
+Landroid/net/wifi/hotspot2/pps/Credential$CertificateCredential;->CERT_SHA256_FINGER_PRINT_LENGTH:I
+Landroid/net/wifi/hotspot2/pps/Credential$CertificateCredential;->CERT_TYPE_X509V3:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$CertificateCredential;->mCertSha256Fingerprint:[B
+Landroid/net/wifi/hotspot2/pps/Credential$CertificateCredential;->mCertType:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$CertificateCredential;->validate()Z
+Landroid/net/wifi/hotspot2/pps/Credential$SimCredential;->MAX_IMSI_LENGTH:I
+Landroid/net/wifi/hotspot2/pps/Credential$SimCredential;->mEapType:I
+Landroid/net/wifi/hotspot2/pps/Credential$SimCredential;->mImsi:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$SimCredential;->validate()Z
+Landroid/net/wifi/hotspot2/pps/Credential$SimCredential;->verifyImsi()Z
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->AUTH_METHOD_MSCHAP:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->AUTH_METHOD_MSCHAPV2:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->AUTH_METHOD_PAP:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->getAbleToShare()Z
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->getMachineManaged()Z
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->getSoftTokenApp()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->mAbleToShare:Z
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->MAX_PASSWORD_BYTES:I
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->MAX_USERNAME_BYTES:I
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->mEapType:I
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->mMachineManaged:Z
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->mNonEapInnerMethod:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->mPassword:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->mSoftTokenApp:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->mUsername:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->setAbleToShare(Z)V
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->setMachineManaged(Z)V
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->setSoftTokenApp(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->SUPPORTED_AUTH:Ljava/util/Set;
+Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;->validate()Z
+Landroid/net/wifi/hotspot2/pps/Credential;->getCheckAaaServerCertStatus()Z
+Landroid/net/wifi/hotspot2/pps/Credential;->getCreationTimeInMillis()J
+Landroid/net/wifi/hotspot2/pps/Credential;->getExpirationTimeInMillis()J
+Landroid/net/wifi/hotspot2/pps/Credential;->isPrivateKeyEquals(Ljava/security/PrivateKey;Ljava/security/PrivateKey;)Z
+Landroid/net/wifi/hotspot2/pps/Credential;->isX509CertificateEquals(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
+Landroid/net/wifi/hotspot2/pps/Credential;->isX509CertificatesEquals([Ljava/security/cert/X509Certificate;[Ljava/security/cert/X509Certificate;)Z
+Landroid/net/wifi/hotspot2/pps/Credential;->MAX_REALM_BYTES:I
+Landroid/net/wifi/hotspot2/pps/Credential;->mCaCertificate:Ljava/security/cert/X509Certificate;
+Landroid/net/wifi/hotspot2/pps/Credential;->mCertCredential:Landroid/net/wifi/hotspot2/pps/Credential$CertificateCredential;
+Landroid/net/wifi/hotspot2/pps/Credential;->mCheckAaaServerCertStatus:Z
+Landroid/net/wifi/hotspot2/pps/Credential;->mClientCertificateChain:[Ljava/security/cert/X509Certificate;
+Landroid/net/wifi/hotspot2/pps/Credential;->mClientPrivateKey:Ljava/security/PrivateKey;
+Landroid/net/wifi/hotspot2/pps/Credential;->mCreationTimeInMillis:J
+Landroid/net/wifi/hotspot2/pps/Credential;->mExpirationTimeInMillis:J
+Landroid/net/wifi/hotspot2/pps/Credential;->mRealm:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential;->mSimCredential:Landroid/net/wifi/hotspot2/pps/Credential$SimCredential;
+Landroid/net/wifi/hotspot2/pps/Credential;->mUserCredential:Landroid/net/wifi/hotspot2/pps/Credential$UserCredential;
+Landroid/net/wifi/hotspot2/pps/Credential;->setCheckAaaServerCertStatus(Z)V
+Landroid/net/wifi/hotspot2/pps/Credential;->setCreationTimeInMillis(J)V
+Landroid/net/wifi/hotspot2/pps/Credential;->setExpirationTimeInMillis(J)V
+Landroid/net/wifi/hotspot2/pps/Credential;->TAG:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Credential;->validate()Z
+Landroid/net/wifi/hotspot2/pps/Credential;->verifyCertCredential()Z
+Landroid/net/wifi/hotspot2/pps/Credential;->verifySha256Fingerprint([Ljava/security/cert/X509Certificate;[B)Z
+Landroid/net/wifi/hotspot2/pps/Credential;->verifySimCredential()Z
+Landroid/net/wifi/hotspot2/pps/Credential;->verifyUserCredential()Z
+Landroid/net/wifi/hotspot2/pps/HomeSp;->getHomeNetworkIds()Ljava/util/Map;
+Landroid/net/wifi/hotspot2/pps/HomeSp;->getIconUrl()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/HomeSp;->getMatchAllOis()[J
+Landroid/net/wifi/hotspot2/pps/HomeSp;->getMatchAnyOis()[J
+Landroid/net/wifi/hotspot2/pps/HomeSp;->getOtherHomePartners()[Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/HomeSp;->MAX_SSID_BYTES:I
+Landroid/net/wifi/hotspot2/pps/HomeSp;->mFqdn:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/HomeSp;->mFriendlyName:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/HomeSp;->mHomeNetworkIds:Ljava/util/Map;
+Landroid/net/wifi/hotspot2/pps/HomeSp;->mIconUrl:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/HomeSp;->mMatchAllOis:[J
+Landroid/net/wifi/hotspot2/pps/HomeSp;->mMatchAnyOis:[J
+Landroid/net/wifi/hotspot2/pps/HomeSp;->mOtherHomePartners:[Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/HomeSp;->mRoamingConsortiumOis:[J
+Landroid/net/wifi/hotspot2/pps/HomeSp;->NULL_VALUE:I
+Landroid/net/wifi/hotspot2/pps/HomeSp;->setHomeNetworkIds(Ljava/util/Map;)V
+Landroid/net/wifi/hotspot2/pps/HomeSp;->setIconUrl(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/HomeSp;->setMatchAllOis([J)V
+Landroid/net/wifi/hotspot2/pps/HomeSp;->setMatchAnyOis([J)V
+Landroid/net/wifi/hotspot2/pps/HomeSp;->setOtherHomePartners([Ljava/lang/String;)V
+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;
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->getCountries()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->getFqdn()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->getFqdnExactMatch()Z
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->getPriority()I
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->mCountries:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->mFqdn:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->mFqdnExactMatch:Z
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->mPriority:I
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->setCountries(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->setFqdn(Ljava/lang/String;)V
+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;
+Landroid/net/wifi/hotspot2/pps/Policy;->getExcludedSsidList()[Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Policy;->getMaximumBssLoadValue()I
+Landroid/net/wifi/hotspot2/pps/Policy;->getMinHomeDownlinkBandwidth()J
+Landroid/net/wifi/hotspot2/pps/Policy;->getMinHomeUplinkBandwidth()J
+Landroid/net/wifi/hotspot2/pps/Policy;->getMinRoamingDownlinkBandwidth()J
+Landroid/net/wifi/hotspot2/pps/Policy;->getMinRoamingUplinkBandwidth()J
+Landroid/net/wifi/hotspot2/pps/Policy;->getPolicyUpdate()Landroid/net/wifi/hotspot2/pps/UpdateParameter;
+Landroid/net/wifi/hotspot2/pps/Policy;->getPreferredRoamingPartnerList()Ljava/util/List;
+Landroid/net/wifi/hotspot2/pps/Policy;->getRequiredProtoPortMap()Ljava/util/Map;
+Landroid/net/wifi/hotspot2/pps/Policy;->MAX_EXCLUSION_SSIDS:I
+Landroid/net/wifi/hotspot2/pps/Policy;->MAX_PORT_STRING_BYTES:I
+Landroid/net/wifi/hotspot2/pps/Policy;->MAX_SSID_BYTES:I
+Landroid/net/wifi/hotspot2/pps/Policy;->mExcludedSsidList:[Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/Policy;->mMaximumBssLoadValue:I
+Landroid/net/wifi/hotspot2/pps/Policy;->mMinHomeDownlinkBandwidth:J
+Landroid/net/wifi/hotspot2/pps/Policy;->mMinHomeUplinkBandwidth:J
+Landroid/net/wifi/hotspot2/pps/Policy;->mMinRoamingDownlinkBandwidth:J
+Landroid/net/wifi/hotspot2/pps/Policy;->mMinRoamingUplinkBandwidth:J
+Landroid/net/wifi/hotspot2/pps/Policy;->mPolicyUpdate:Landroid/net/wifi/hotspot2/pps/UpdateParameter;
+Landroid/net/wifi/hotspot2/pps/Policy;->mPreferredRoamingPartnerList:Ljava/util/List;
+Landroid/net/wifi/hotspot2/pps/Policy;->mRequiredProtoPortMap:Ljava/util/Map;
+Landroid/net/wifi/hotspot2/pps/Policy;->NULL_VALUE:I
+Landroid/net/wifi/hotspot2/pps/Policy;->setExcludedSsidList([Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/Policy;->setMaximumBssLoadValue(I)V
+Landroid/net/wifi/hotspot2/pps/Policy;->setMinHomeDownlinkBandwidth(J)V
+Landroid/net/wifi/hotspot2/pps/Policy;->setMinHomeUplinkBandwidth(J)V
+Landroid/net/wifi/hotspot2/pps/Policy;->setMinRoamingDownlinkBandwidth(J)V
+Landroid/net/wifi/hotspot2/pps/Policy;->setMinRoamingUplinkBandwidth(J)V
+Landroid/net/wifi/hotspot2/pps/Policy;->setPolicyUpdate(Landroid/net/wifi/hotspot2/pps/UpdateParameter;)V
+Landroid/net/wifi/hotspot2/pps/Policy;->setPreferredRoamingPartnerList(Ljava/util/List;)V
+Landroid/net/wifi/hotspot2/pps/Policy;->setRequiredProtoPortMap(Ljava/util/Map;)V
+Landroid/net/wifi/hotspot2/pps/Policy;->TAG:Ljava/lang/String;
+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
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->getBase64EncodedPassword()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->getRestriction()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->getServerUri()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->getTrustRootCertSha256Fingerprint()[B
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->getTrustRootCertUrl()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->getUpdateIntervalInMinutes()J
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->getUpdateMethod()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->getUsername()Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->MAX_PASSWORD_BYTES:I
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->MAX_URI_BYTES:I
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->MAX_URL_BYTES:I
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->MAX_USERNAME_BYTES:I
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->mBase64EncodedPassword:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->mRestriction:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->mServerUri:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->mTrustRootCertSha256Fingerprint:[B
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->mTrustRootCertUrl:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->mUpdateIntervalInMinutes:J
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->mUpdateMethod:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->mUsername:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->setBase64EncodedPassword(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->setRestriction(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->setServerUri(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->setTrustRootCertSha256Fingerprint([B)V
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->setTrustRootCertUrl(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->setUpdateIntervalInMinutes(J)V
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->setUpdateMethod(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->setUsername(Ljava/lang/String;)V
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->TAG:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->UPDATE_CHECK_INTERVAL_NEVER:J
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->UPDATE_METHOD_OMADM:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->UPDATE_METHOD_SSP:Ljava/lang/String;
+Landroid/net/wifi/hotspot2/pps/UpdateParameter;->UPDATE_RESTRICTION_HOMESP:Ljava/lang/String;
+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
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_FAILURE_AP_CONNECTION:I
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_FAILURE_PROVIDER_VERIFICATION:I
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_FAILURE_PROVISIONING_ABORTED:I
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_FAILURE_PROVISIONING_NOT_AVAILABLE:I
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_FAILURE_SERVER_CONNECTION:I
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_FAILURE_SERVER_URL_INVALID:I
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_FAILURE_SERVER_VALIDATION:I
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_STATUS_AP_CONNECTED:I
+Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_STATUS_AP_CONNECTING:I
+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
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->addOrUpdatePasspointConfiguration(Landroid/net/wifi/hotspot2/PasspointConfiguration;Ljava/lang/String;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->deauthenticateNetwork(JZ)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->disableEphemeralNetwork(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->disableNetwork(ILjava/lang/String;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->disconnect(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->enableNetwork(IZLjava/lang/String;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->enableTdls(Ljava/lang/String;Z)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->enableTdlsWithMacAddress(Ljava/lang/String;Z)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->enableVerboseLogging(I)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->enableWifiConnectivityManager(Z)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->factoryReset(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getAllMatchingWifiConfigs(Landroid/net/wifi/ScanResult;)Ljava/util/List;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getConfiguredNetworks()Landroid/content/pm/ParceledListSlice;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getConnectionInfo(Ljava/lang/String;)Landroid/net/wifi/WifiInfo;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getCountryCode()Ljava/lang/String;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getCurrentNetwork()Landroid/net/Network;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getCurrentNetworkWpsNfcConfigurationToken()Ljava/lang/String;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getDhcpInfo()Landroid/net/DhcpInfo;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getMatchingOsuProviders(Landroid/net/wifi/ScanResult;)Ljava/util/List;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getMatchingWifiConfig(Landroid/net/wifi/ScanResult;)Landroid/net/wifi/WifiConfiguration;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getPasspointConfigurations()Ljava/util/List;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getPrivilegedConfiguredNetworks()Landroid/content/pm/ParceledListSlice;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getScanResults(Ljava/lang/String;)Ljava/util/List;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getSupportedFeatures()I
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getVerboseLoggingLevel()I
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getWifiApEnabledState()I
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getWifiEnabledState()I
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->getWifiServiceMessenger(Ljava/lang/String;)Landroid/os/Messenger;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->initializeMulticastFiltering()V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->isDualBandSupported()Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->isMulticastEnabled()Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->isScanAlwaysAvailable()Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->matchProviderWithCurrentNetwork(Ljava/lang/String;)I
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->needs5GHzToAnyApBandConversion()Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->queryPasspointIcon(JLjava/lang/String;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->reassociate(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->reconnect(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->registerSoftApCallback(Landroid/os/IBinder;Landroid/net/wifi/ISoftApCallback;I)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->releaseMulticastLock()V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->releaseWifiLock(Landroid/os/IBinder;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->removeNetwork(ILjava/lang/String;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->removePasspointConfiguration(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->reportActivityInfo()Landroid/net/wifi/WifiActivityEnergyInfo;
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->requestActivityInfo(Landroid/os/ResultReceiver;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->restoreBackupData([B)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->restoreSupplicantBackupData([B[B)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->retrieveBackupData()[B
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->setCountryCode(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->setWifiApConfiguration(Landroid/net/wifi/WifiConfiguration;Ljava/lang/String;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->setWifiEnabled(Ljava/lang/String;Z)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->startLocalOnlyHotspot(Landroid/os/Messenger;Landroid/os/IBinder;Ljava/lang/String;)I
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->startScan(Ljava/lang/String;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->startSoftAp(Landroid/net/wifi/WifiConfiguration;)Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->startSubscriptionProvisioning(Landroid/net/wifi/hotspot2/OsuProvider;Landroid/net/wifi/hotspot2/IProvisioningCallback;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->startWatchLocalOnlyHotspot(Landroid/os/Messenger;Landroid/os/IBinder;)V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->stopLocalOnlyHotspot()V
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->stopSoftAp()Z
+Landroid/net/wifi/IWifiManager$Stub$Proxy;->stopWatchLocalOnlyHotspot()V
+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
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_addOrUpdateNetwork:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_addOrUpdatePasspointConfiguration:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_deauthenticateNetwork:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_disableEphemeralNetwork:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_disableNetwork:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_disconnect:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_enableNetwork:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_enableTdls:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_enableTdlsWithMacAddress:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_enableVerboseLogging:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_enableWifiConnectivityManager:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_factoryReset:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getAllMatchingWifiConfigs:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getConfiguredNetworks:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getConnectionInfo:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getCountryCode:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getCurrentNetwork:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getCurrentNetworkWpsNfcConfigurationToken:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getDhcpInfo:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getMatchingOsuProviders:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getMatchingWifiConfig:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getPasspointConfigurations:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getPrivilegedConfiguredNetworks:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getSupportedFeatures:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getVerboseLoggingLevel:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getWifiApConfiguration:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getWifiApEnabledState:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getWifiEnabledState:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getWifiServiceMessenger:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_initializeMulticastFiltering:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_isDualBandSupported:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_isMulticastEnabled:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_isScanAlwaysAvailable:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_matchProviderWithCurrentNetwork:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_needs5GHzToAnyApBandConversion:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_queryPasspointIcon:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_reassociate:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_reconnect:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_registerSoftApCallback:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_releaseMulticastLock:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_releaseWifiLock:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_removeNetwork:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_removePasspointConfiguration:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_reportActivityInfo:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_requestActivityInfo:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_restoreBackupData:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_restoreSupplicantBackupData:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_retrieveBackupData:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_setCountryCode:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_setWifiApConfiguration:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_setWifiEnabled:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_startLocalOnlyHotspot:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_startScan:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_startSoftAp:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_startSubscriptionProvisioning:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_startWatchLocalOnlyHotspot:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_stopLocalOnlyHotspot:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_stopSoftAp:I
+Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_stopWatchLocalOnlyHotspot:I
+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
+Landroid/net/wifi/IWifiManager;->addOrUpdatePasspointConfiguration(Landroid/net/wifi/hotspot2/PasspointConfiguration;Ljava/lang/String;)Z
+Landroid/net/wifi/IWifiManager;->deauthenticateNetwork(JZ)V
+Landroid/net/wifi/IWifiManager;->disableEphemeralNetwork(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager;->disableNetwork(ILjava/lang/String;)Z
+Landroid/net/wifi/IWifiManager;->disconnect(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager;->enableNetwork(IZLjava/lang/String;)Z
+Landroid/net/wifi/IWifiManager;->enableTdls(Ljava/lang/String;Z)V
+Landroid/net/wifi/IWifiManager;->enableTdlsWithMacAddress(Ljava/lang/String;Z)V
+Landroid/net/wifi/IWifiManager;->enableVerboseLogging(I)V
+Landroid/net/wifi/IWifiManager;->enableWifiConnectivityManager(Z)V
+Landroid/net/wifi/IWifiManager;->factoryReset(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager;->getAllMatchingWifiConfigs(Landroid/net/wifi/ScanResult;)Ljava/util/List;
+Landroid/net/wifi/IWifiManager;->getConfiguredNetworks()Landroid/content/pm/ParceledListSlice;
+Landroid/net/wifi/IWifiManager;->getConnectionInfo(Ljava/lang/String;)Landroid/net/wifi/WifiInfo;
+Landroid/net/wifi/IWifiManager;->getCountryCode()Ljava/lang/String;
+Landroid/net/wifi/IWifiManager;->getCurrentNetworkWpsNfcConfigurationToken()Ljava/lang/String;
+Landroid/net/wifi/IWifiManager;->getDhcpInfo()Landroid/net/DhcpInfo;
+Landroid/net/wifi/IWifiManager;->getMatchingOsuProviders(Landroid/net/wifi/ScanResult;)Ljava/util/List;
+Landroid/net/wifi/IWifiManager;->getMatchingWifiConfig(Landroid/net/wifi/ScanResult;)Landroid/net/wifi/WifiConfiguration;
+Landroid/net/wifi/IWifiManager;->getPasspointConfigurations()Ljava/util/List;
+Landroid/net/wifi/IWifiManager;->getPrivilegedConfiguredNetworks()Landroid/content/pm/ParceledListSlice;
+Landroid/net/wifi/IWifiManager;->getScanResults(Ljava/lang/String;)Ljava/util/List;
+Landroid/net/wifi/IWifiManager;->getSupportedFeatures()I
+Landroid/net/wifi/IWifiManager;->getVerboseLoggingLevel()I
+Landroid/net/wifi/IWifiManager;->getWifiEnabledState()I
+Landroid/net/wifi/IWifiManager;->getWifiServiceMessenger(Ljava/lang/String;)Landroid/os/Messenger;
+Landroid/net/wifi/IWifiManager;->initializeMulticastFiltering()V
+Landroid/net/wifi/IWifiManager;->isDualBandSupported()Z
+Landroid/net/wifi/IWifiManager;->isMulticastEnabled()Z
+Landroid/net/wifi/IWifiManager;->isScanAlwaysAvailable()Z
+Landroid/net/wifi/IWifiManager;->matchProviderWithCurrentNetwork(Ljava/lang/String;)I
+Landroid/net/wifi/IWifiManager;->needs5GHzToAnyApBandConversion()Z
+Landroid/net/wifi/IWifiManager;->queryPasspointIcon(JLjava/lang/String;)V
+Landroid/net/wifi/IWifiManager;->reassociate(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager;->reconnect(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager;->registerSoftApCallback(Landroid/os/IBinder;Landroid/net/wifi/ISoftApCallback;I)V
+Landroid/net/wifi/IWifiManager;->releaseMulticastLock()V
+Landroid/net/wifi/IWifiManager;->releaseWifiLock(Landroid/os/IBinder;)Z
+Landroid/net/wifi/IWifiManager;->removeNetwork(ILjava/lang/String;)Z
+Landroid/net/wifi/IWifiManager;->removePasspointConfiguration(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/net/wifi/IWifiManager;->reportActivityInfo()Landroid/net/wifi/WifiActivityEnergyInfo;
+Landroid/net/wifi/IWifiManager;->requestActivityInfo(Landroid/os/ResultReceiver;)V
+Landroid/net/wifi/IWifiManager;->restoreBackupData([B)V
+Landroid/net/wifi/IWifiManager;->restoreSupplicantBackupData([B[B)V
+Landroid/net/wifi/IWifiManager;->retrieveBackupData()[B
+Landroid/net/wifi/IWifiManager;->setCountryCode(Ljava/lang/String;)V
+Landroid/net/wifi/IWifiManager;->setWifiApConfiguration(Landroid/net/wifi/WifiConfiguration;Ljava/lang/String;)Z
+Landroid/net/wifi/IWifiManager;->setWifiEnabled(Ljava/lang/String;Z)Z
+Landroid/net/wifi/IWifiManager;->startLocalOnlyHotspot(Landroid/os/Messenger;Landroid/os/IBinder;Ljava/lang/String;)I
+Landroid/net/wifi/IWifiManager;->startScan(Ljava/lang/String;)Z
+Landroid/net/wifi/IWifiManager;->startSoftAp(Landroid/net/wifi/WifiConfiguration;)Z
+Landroid/net/wifi/IWifiManager;->startSubscriptionProvisioning(Landroid/net/wifi/hotspot2/OsuProvider;Landroid/net/wifi/hotspot2/IProvisioningCallback;)V
+Landroid/net/wifi/IWifiManager;->startWatchLocalOnlyHotspot(Landroid/os/Messenger;Landroid/os/IBinder;)V
+Landroid/net/wifi/IWifiManager;->stopLocalOnlyHotspot()V
+Landroid/net/wifi/IWifiManager;->stopSoftAp()Z
+Landroid/net/wifi/IWifiManager;->stopWatchLocalOnlyHotspot()V
+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
+Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;->getMessenger(Landroid/os/IBinder;)Landroid/os/Messenger;
+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
+Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->TRANSACTION_close:I
+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;
+Landroid/net/wifi/p2p/IWifiP2pManager;->getP2pStateMachineMessenger()Landroid/os/Messenger;
+Landroid/net/wifi/p2p/IWifiP2pManager;->setMiracastMode(I)V
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;-><init>(Ljava/util/List;)V
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->compressDnsName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->createPtrServiceQuery(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->createTxtServiceQuery(Ljava/lang/String;Ljava/lang/String;Landroid/net/nsd/DnsSdTxtRecord;)Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->DNS_TYPE_PTR:I
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->DNS_TYPE_TXT:I
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->sVmPacket:Ljava/util/Map;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo;->VERSION_1:I
+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
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->getInstanceName()Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->getTxtRecord()Ljava/util/Map;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->getVersion()I
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->mDnsQueryName:Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->mDnsType:I
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->mInstanceName:Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->mTxtRecord:Ljava/util/HashMap;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->mVersion:I
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->newInstance(IILandroid/net/wifi/p2p/WifiP2pDevice;[B)Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->parse()Z
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->readDnsName(Ljava/io/DataInputStream;)Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->readTxtData(Ljava/io/DataInputStream;)Z
+Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->sVmpack:Ljava/util/Map;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;->bin2HexStr([B)Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;->getSupplicantQueryList()Ljava/util/List;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;->SERVICE_TYPE_WS_DISCOVERY:I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;-><init>(IIILjava/lang/String;)V
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->getSupplicantQuery()Ljava/lang/String;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->getTransactionId()I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->mLength:I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->mProtocolType:I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->mQuery:Ljava/lang/String;
+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
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->getRawData()[B
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->getServiceType()I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->getSrcDevice()Landroid/net/wifi/p2p/WifiP2pDevice;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->getStatus()I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->getTransactionId()I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->hexStr2Bin(Ljava/lang/String;)[B
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->MAX_BUF_SIZE:I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->mData:[B
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->mDevice:Landroid/net/wifi/p2p/WifiP2pDevice;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->mServiceType:I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->mStatus:I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->mTransId:I
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->newInstance(Ljava/lang/String;[B)Ljava/util/List;
+Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->setSrcDevice(Landroid/net/wifi/p2p/WifiP2pDevice;)V
+Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo;-><init>(Ljava/util/List;)V
+Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo;->createSupplicantQuery(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+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
+Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;->mUniqueServiceNames:Ljava/util/List;
+Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;->mVersion:I
+Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;->newInstance(IILandroid/net/wifi/p2p/WifiP2pDevice;[B)Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;
+Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;->parse()Z
+Landroid/net/wifi/p2p/WifiP2pConfig;->invalidate()V
+Landroid/net/wifi/p2p/WifiP2pConfig;->MAX_GROUP_OWNER_INTENT:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->detailedDevicePattern:Ljava/util/regex/Pattern;
+Landroid/net/wifi/p2p/WifiP2pDevice;->DEVICE_CAPAB_CLIENT_DISCOVERABILITY:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->DEVICE_CAPAB_CONCURRENT_OPER:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->DEVICE_CAPAB_DEVICE_LIMIT:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->DEVICE_CAPAB_INFRA_MANAGED:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->DEVICE_CAPAB_INVITATION_PROCEDURE:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->DEVICE_CAPAB_SERVICE_DISCOVERY:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->GROUP_CAPAB_CROSS_CONN:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->GROUP_CAPAB_GROUP_FORMATION:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->GROUP_CAPAB_GROUP_LIMIT:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->GROUP_CAPAB_GROUP_OWNER:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->GROUP_CAPAB_INTRA_BSS_DIST:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->GROUP_CAPAB_PERSISTENT_GROUP:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->GROUP_CAPAB_PERSISTENT_RECONN:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->isDeviceLimit()Z
+Landroid/net/wifi/p2p/WifiP2pDevice;->isGroupLimit()Z
+Landroid/net/wifi/p2p/WifiP2pDevice;->isInvitationCapable()Z
+Landroid/net/wifi/p2p/WifiP2pDevice;->parseHex(Ljava/lang/String;)I
+Landroid/net/wifi/p2p/WifiP2pDevice;->TAG:Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pDevice;->threeTokenPattern:Ljava/util/regex/Pattern;
+Landroid/net/wifi/p2p/WifiP2pDevice;->twoTokenPattern:Ljava/util/regex/Pattern;
+Landroid/net/wifi/p2p/WifiP2pDevice;->updateSupplicantDetails(Landroid/net/wifi/p2p/WifiP2pDevice;)V
+Landroid/net/wifi/p2p/WifiP2pDevice;->WPS_CONFIG_DISPLAY:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->WPS_CONFIG_KEYPAD:I
+Landroid/net/wifi/p2p/WifiP2pDevice;->WPS_CONFIG_PUSHBUTTON:I
+Landroid/net/wifi/p2p/WifiP2pDeviceList;-><init>(Ljava/util/ArrayList;)V
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->clear()Z
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->isGroupOwner(Ljava/lang/String;)Z
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->mDevices:Ljava/util/HashMap;
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->remove(Landroid/net/wifi/p2p/WifiP2pDevice;)Z
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->remove(Landroid/net/wifi/p2p/WifiP2pDeviceList;)Z
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->updateGroupCapability(Ljava/lang/String;I)V
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->updateStatus(Ljava/lang/String;I)V
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->updateSupplicantDetails(Landroid/net/wifi/p2p/WifiP2pDevice;)V
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->validateDevice(Landroid/net/wifi/p2p/WifiP2pDevice;)V
+Landroid/net/wifi/p2p/WifiP2pDeviceList;->validateDeviceAddress(Ljava/lang/String;)V
+Landroid/net/wifi/p2p/WifiP2pGroup;->addClient(Landroid/net/wifi/p2p/WifiP2pDevice;)V
+Landroid/net/wifi/p2p/WifiP2pGroup;->addClient(Ljava/lang/String;)V
+Landroid/net/wifi/p2p/WifiP2pGroup;->contains(Landroid/net/wifi/p2p/WifiP2pDevice;)Z
+Landroid/net/wifi/p2p/WifiP2pGroup;->groupStartedPattern:Ljava/util/regex/Pattern;
+Landroid/net/wifi/p2p/WifiP2pGroup;->mClients:Ljava/util/List;
+Landroid/net/wifi/p2p/WifiP2pGroup;->mInterface:Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pGroup;->mIsGroupOwner:Z
+Landroid/net/wifi/p2p/WifiP2pGroup;->mNetId:I
+Landroid/net/wifi/p2p/WifiP2pGroup;->mNetworkName:Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pGroup;->mOwner:Landroid/net/wifi/p2p/WifiP2pDevice;
+Landroid/net/wifi/p2p/WifiP2pGroup;->mPassphrase:Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pGroup;->PERSISTENT_NET_ID:I
+Landroid/net/wifi/p2p/WifiP2pGroup;->removeClient(Landroid/net/wifi/p2p/WifiP2pDevice;)Z
+Landroid/net/wifi/p2p/WifiP2pGroup;->removeClient(Ljava/lang/String;)Z
+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
+Landroid/net/wifi/p2p/WifiP2pGroupList;->contains(I)Z
+Landroid/net/wifi/p2p/WifiP2pGroupList;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/p2p/WifiP2pGroupList;->CREDENTIAL_MAX_NUM:I
+Landroid/net/wifi/p2p/WifiP2pGroupList;->getNetworkId(Ljava/lang/String;)I
+Landroid/net/wifi/p2p/WifiP2pGroupList;->getNetworkId(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/net/wifi/p2p/WifiP2pGroupList;->getOwnerAddr(I)Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pGroupList;->isClearCalled:Z
+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
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->handleServiceResponse(Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;)V
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->handleUpnpServiceResponse(Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;)V
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->INVALID_LISTENER_KEY:I
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mBinder:Landroid/os/Binder;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mChannelListener:Landroid/net/wifi/p2p/WifiP2pManager$ChannelListener;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mContext:Landroid/content/Context;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mDnsSdServRspListener:Landroid/net/wifi/p2p/WifiP2pManager$DnsSdServiceResponseListener;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mDnsSdTxtListener:Landroid/net/wifi/p2p/WifiP2pManager$DnsSdTxtRecordListener;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mHandler:Landroid/net/wifi/p2p/WifiP2pManager$Channel$P2pHandler;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mListenerKey:I
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mListenerMap:Ljava/util/HashMap;
+Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mListenerMapLock:Ljava/lang/Object;
+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
+Landroid/net/wifi/p2p/WifiP2pManager;->ADD_LOCAL_SERVICE_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->ADD_SERVICE_REQUEST:I
+Landroid/net/wifi/p2p/WifiP2pManager;->ADD_SERVICE_REQUEST_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->ADD_SERVICE_REQUEST_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->BASE:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CALLING_PACKAGE:Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pManager;->CANCEL_CONNECT:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CANCEL_CONNECT_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CANCEL_CONNECT_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->checkChannel(Landroid/net/wifi/p2p/WifiP2pManager$Channel;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->checkP2pConfig(Landroid/net/wifi/p2p/WifiP2pConfig;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->checkServiceInfo(Landroid/net/wifi/p2p/nsd/WifiP2pServiceInfo;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->checkServiceRequest(Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->CLEAR_LOCAL_SERVICES:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CLEAR_LOCAL_SERVICES_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CLEAR_LOCAL_SERVICES_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CLEAR_SERVICE_REQUESTS:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CLEAR_SERVICE_REQUESTS_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CLEAR_SERVICE_REQUESTS_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CONNECT:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CONNECT_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CONNECT_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CREATE_GROUP_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->CREATE_GROUP_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DELETE_PERSISTENT_GROUP:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DELETE_PERSISTENT_GROUP_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DELETE_PERSISTENT_GROUP_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DISCOVER_PEERS:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DISCOVER_PEERS_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DISCOVER_PEERS_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DISCOVER_SERVICES:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DISCOVER_SERVICES_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->DISCOVER_SERVICES_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->EXTRA_HANDOVER_MESSAGE:Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pManager;->getMessenger(Landroid/os/Binder;)Landroid/os/Messenger;
+Landroid/net/wifi/p2p/WifiP2pManager;->getNfcHandoverRequest(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$HandoverMessageListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->getNfcHandoverSelect(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$HandoverMessageListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->getP2pStateMachineMessenger()Landroid/os/Messenger;
+Landroid/net/wifi/p2p/WifiP2pManager;->GET_HANDOVER_REQUEST:I
+Landroid/net/wifi/p2p/WifiP2pManager;->GET_HANDOVER_SELECT:I
+Landroid/net/wifi/p2p/WifiP2pManager;->initalizeChannel(Landroid/content/Context;Landroid/os/Looper;Landroid/net/wifi/p2p/WifiP2pManager$ChannelListener;Landroid/os/Messenger;Landroid/os/Binder;)Landroid/net/wifi/p2p/WifiP2pManager$Channel;
+Landroid/net/wifi/p2p/WifiP2pManager;->initializeInternal(Landroid/content/Context;Landroid/os/Looper;Landroid/net/wifi/p2p/WifiP2pManager$ChannelListener;)Landroid/net/wifi/p2p/WifiP2pManager$Channel;
+Landroid/net/wifi/p2p/WifiP2pManager;->initiatorReportNfcHandover(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Ljava/lang/String;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->INITIATOR_REPORT_NFC_HANDOVER:I
+Landroid/net/wifi/p2p/WifiP2pManager;->listen(Landroid/net/wifi/p2p/WifiP2pManager$Channel;ZLandroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->MIRACAST_DISABLED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->MIRACAST_SINK:I
+Landroid/net/wifi/p2p/WifiP2pManager;->MIRACAST_SOURCE:I
+Landroid/net/wifi/p2p/WifiP2pManager;->mService:Landroid/net/wifi/p2p/IWifiP2pManager;
+Landroid/net/wifi/p2p/WifiP2pManager;->PING:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_GROUP:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_GROUP_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_GROUP_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_LOCAL_SERVICE:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_LOCAL_SERVICE_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_LOCAL_SERVICE_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_SERVICE_REQUEST:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_SERVICE_REQUEST_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REMOVE_SERVICE_REQUEST_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REPORT_NFC_HANDOVER_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REPORT_NFC_HANDOVER_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REQUEST_CONNECTION_INFO:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REQUEST_GROUP_INFO:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REQUEST_PEERS:I
+Landroid/net/wifi/p2p/WifiP2pManager;->REQUEST_PERSISTENT_GROUP_INFO:I
+Landroid/net/wifi/p2p/WifiP2pManager;->responderReportNfcHandover(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Ljava/lang/String;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V
+Landroid/net/wifi/p2p/WifiP2pManager;->RESPONDER_REPORT_NFC_HANDOVER:I
+Landroid/net/wifi/p2p/WifiP2pManager;->RESPONSE_CONNECTION_INFO:I
+Landroid/net/wifi/p2p/WifiP2pManager;->RESPONSE_GET_HANDOVER_MESSAGE:I
+Landroid/net/wifi/p2p/WifiP2pManager;->RESPONSE_GROUP_INFO:I
+Landroid/net/wifi/p2p/WifiP2pManager;->RESPONSE_PEERS:I
+Landroid/net/wifi/p2p/WifiP2pManager;->RESPONSE_PERSISTENT_GROUP_INFO:I
+Landroid/net/wifi/p2p/WifiP2pManager;->RESPONSE_SERVICE:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_CHANNEL:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_CHANNEL_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_CHANNEL_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_DEVICE_NAME:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_DEVICE_NAME_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_DEVICE_NAME_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_WFD_INFO:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_WFD_INFO_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->SET_WFD_INFO_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->START_LISTEN:I
+Landroid/net/wifi/p2p/WifiP2pManager;->START_LISTEN_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->START_LISTEN_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->START_WPS:I
+Landroid/net/wifi/p2p/WifiP2pManager;->START_WPS_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->START_WPS_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->STOP_DISCOVERY:I
+Landroid/net/wifi/p2p/WifiP2pManager;->STOP_DISCOVERY_FAILED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->STOP_DISCOVERY_SUCCEEDED:I
+Landroid/net/wifi/p2p/WifiP2pManager;->STOP_LISTEN:I
+Landroid/net/wifi/p2p/WifiP2pManager;->STOP_LISTEN_FAILED:I
+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
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->getControlPort()I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->getDeviceInfoHex()Ljava/lang/String;
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->getMaxThroughput()I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->isCoupledSinkSupportedAtSink()Z
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->isCoupledSinkSupportedAtSource()Z
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->isSessionAvailable()Z
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->mCtrlPort:I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->mDeviceInfo:I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->mMaxThroughput:I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->mWfdEnabled:Z
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->PRIMARY_SINK:I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->SECONDARY_SINK:I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->SESSION_AVAILABLE:I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->SESSION_AVAILABLE_BIT1:I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->SESSION_AVAILABLE_BIT2:I
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->setCoupledSinkSupportAtSink(Z)V
+Landroid/net/wifi/p2p/WifiP2pWfdInfo;->setCoupledSinkSupportAtSource(Z)V
+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;
+Landroid/net/wifi/ParcelUtil;->readPrivateKey(Landroid/os/Parcel;)Ljava/security/PrivateKey;
+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;
+Landroid/net/wifi/PasspointManagementObjectDefinition;->getMoTree()Ljava/lang/String;
+Landroid/net/wifi/PasspointManagementObjectDefinition;->getUrn()Ljava/lang/String;
+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;
+Landroid/net/wifi/RssiPacketCountInfo;->rssi:I
+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
+Landroid/net/wifi/rtt/RangingRequest$Builder;->mRttPeers:Ljava/util/List;
+Landroid/net/wifi/rtt/RangingRequest;-><init>(Ljava/util/List;)V
+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
+Landroid/net/wifi/rtt/RangingResult;->mDistanceMm:I
+Landroid/net/wifi/rtt/RangingResult;->mDistanceStdDevMm:I
+Landroid/net/wifi/rtt/RangingResult;->mLci:[B
+Landroid/net/wifi/rtt/RangingResult;->mLcr:[B
+Landroid/net/wifi/rtt/RangingResult;->mMac:Landroid/net/MacAddress;
+Landroid/net/wifi/rtt/RangingResult;->mNumAttemptedMeasurements:I
+Landroid/net/wifi/rtt/RangingResult;->mNumSuccessfulMeasurements:I
+Landroid/net/wifi/rtt/RangingResult;->mPeerHandle:Landroid/net/wifi/aware/PeerHandle;
+Landroid/net/wifi/rtt/RangingResult;->mRssi:I
+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
+Landroid/net/wifi/rtt/ResponderConfig;->TAG:Ljava/lang/String;
+Landroid/net/wifi/rtt/ResponderConfig;->translateScanResultChannelWidth(I)I
+Landroid/net/wifi/rtt/WifiRttManager;-><init>(Landroid/content/Context;Landroid/net/wifi/rtt/IWifiRttManager;)V
+Landroid/net/wifi/rtt/WifiRttManager;->mContext:Landroid/content/Context;
+Landroid/net/wifi/rtt/WifiRttManager;->mService:Landroid/net/wifi/rtt/IWifiRttManager;
+Landroid/net/wifi/rtt/WifiRttManager;->TAG:Ljava/lang/String;
+Landroid/net/wifi/rtt/WifiRttManager;->VDBG:Z
+Landroid/net/wifi/RttManager$ParcelableRttParams;-><init>([Landroid/net/wifi/RttManager$RttParams;)V
+Landroid/net/wifi/RttManager$ParcelableRttParams;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/RttManager$ParcelableRttResults;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/RttManager$RttCapabilities;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/RttManager;-><init>(Landroid/content/Context;Landroid/net/wifi/rtt/WifiRttManager;)V
+Landroid/net/wifi/RttManager;->CMD_OP_REG_BINDER:I
+Landroid/net/wifi/RttManager;->DBG:Z
+Landroid/net/wifi/RttManager;->mContext:Landroid/content/Context;
+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
+Landroid/net/wifi/ScanResult;-><init>()V
+Landroid/net/wifi/ScanResult;-><init>(Landroid/net/wifi/ScanResult;)V
+Landroid/net/wifi/ScanResult;-><init>(Landroid/net/wifi/WifiSsid;Ljava/lang/String;JI[BLjava/lang/String;IIJ)V
+Landroid/net/wifi/ScanResult;-><init>(Landroid/net/wifi/WifiSsid;Ljava/lang/String;Ljava/lang/String;IIJII)V
+Landroid/net/wifi/ScanResult;-><init>(Landroid/net/wifi/WifiSsid;Ljava/lang/String;Ljava/lang/String;JILjava/lang/String;IIJIIIIIZ)V
+Landroid/net/wifi/ScanResult;-><init>(Ljava/lang/String;Ljava/lang/String;JILjava/lang/String;IIJIIIIIZ)V
+Landroid/net/wifi/ScanResult;->anqpElements:[Landroid/net/wifi/AnqpInformationElement;
+Landroid/net/wifi/ScanResult;->carrierApEapType:I
+Landroid/net/wifi/ScanResult;->carrierName:Ljava/lang/String;
+Landroid/net/wifi/ScanResult;->CIPHER_CCMP:I
+Landroid/net/wifi/ScanResult;->CIPHER_NONE:I
+Landroid/net/wifi/ScanResult;->CIPHER_NO_GROUP_ADDRESSED:I
+Landroid/net/wifi/ScanResult;->CIPHER_TKIP:I
+Landroid/net/wifi/ScanResult;->clearFlag(J)V
+Landroid/net/wifi/ScanResult;->FLAG_80211mc_RESPONDER:J
+Landroid/net/wifi/ScanResult;->FLAG_PASSPOINT_NETWORK:J
+Landroid/net/wifi/ScanResult;->is24GHz()Z
+Landroid/net/wifi/ScanResult;->is24GHz(I)Z
+Landroid/net/wifi/ScanResult;->is5GHz()Z
+Landroid/net/wifi/ScanResult;->is5GHz(I)Z
+Landroid/net/wifi/ScanResult;->isCarrierAp:Z
+Landroid/net/wifi/ScanResult;->KEY_MGMT_EAP:I
+Landroid/net/wifi/ScanResult;->KEY_MGMT_EAP_SHA256:I
+Landroid/net/wifi/ScanResult;->KEY_MGMT_FT_EAP:I
+Landroid/net/wifi/ScanResult;->KEY_MGMT_FT_PSK:I
+Landroid/net/wifi/ScanResult;->KEY_MGMT_NONE:I
+Landroid/net/wifi/ScanResult;->KEY_MGMT_OSEN:I
+Landroid/net/wifi/ScanResult;->KEY_MGMT_PSK:I
+Landroid/net/wifi/ScanResult;->KEY_MGMT_PSK_SHA256:I
+Landroid/net/wifi/ScanResult;->PROTOCOL_NONE:I
+Landroid/net/wifi/ScanResult;->PROTOCOL_OSEN:I
+Landroid/net/wifi/ScanResult;->PROTOCOL_WPA2:I
+Landroid/net/wifi/ScanResult;->PROTOCOL_WPA:I
+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
+Landroid/net/wifi/WifiActivityEnergyInfo;->getControllerIdleTimeMillis()J
+Landroid/net/wifi/WifiActivityEnergyInfo;->getControllerRxTimeMillis()J
+Landroid/net/wifi/WifiActivityEnergyInfo;->getControllerScanTimeMillis()J
+Landroid/net/wifi/WifiActivityEnergyInfo;->getControllerTxTimeMillis()J
+Landroid/net/wifi/WifiActivityEnergyInfo;->getControllerTxTimeMillisAtLevel(I)J
+Landroid/net/wifi/WifiActivityEnergyInfo;->getStackState()I
+Landroid/net/wifi/WifiActivityEnergyInfo;->getTimeStamp()J
+Landroid/net/wifi/WifiActivityEnergyInfo;->isValid()Z
+Landroid/net/wifi/WifiActivityEnergyInfo;->mControllerEnergyUsed:J
+Landroid/net/wifi/WifiActivityEnergyInfo;->mControllerIdleTimeMs:J
+Landroid/net/wifi/WifiActivityEnergyInfo;->mControllerRxTimeMs:J
+Landroid/net/wifi/WifiActivityEnergyInfo;->mControllerScanTimeMs:J
+Landroid/net/wifi/WifiActivityEnergyInfo;->mControllerTxTimeMs:J
+Landroid/net/wifi/WifiActivityEnergyInfo;->mControllerTxTimePerLevelMs:[J
+Landroid/net/wifi/WifiActivityEnergyInfo;->mStackState:I
+Landroid/net/wifi/WifiActivityEnergyInfo;->mTimestamp:J
+Landroid/net/wifi/WifiActivityEnergyInfo;->STACK_STATE_INVALID:I
+Landroid/net/wifi/WifiActivityEnergyInfo;->STACK_STATE_STATE_ACTIVE:I
+Landroid/net/wifi/WifiActivityEnergyInfo;->STACK_STATE_STATE_IDLE:I
+Landroid/net/wifi/WifiActivityEnergyInfo;->STACK_STATE_STATE_SCANNING:I
+Landroid/net/wifi/WifiConfiguration$AuthAlgorithm;-><init>()V
+Landroid/net/wifi/WifiConfiguration$GroupCipher;-><init>()V
+Landroid/net/wifi/WifiConfiguration$GroupCipher;->GTK_NOT_USED:I
+Landroid/net/wifi/WifiConfiguration$KeyMgmt;-><init>()V
+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
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->CONNECT_CHOICE_EXISTS:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->CONNECT_CHOICE_NOT_EXISTS:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->copy(Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_ASSOCIATION_REJECTION:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_AUTHENTICATION_FAILURE:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_AUTHENTICATION_NO_CREDENTIALS:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_BAD_LINK:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_BY_WIFI_MANAGER:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_BY_WRONG_PASSWORD:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_DHCP_FAILURE:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_DNS_FAILURE:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_DUE_TO_USER_SWITCH:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_NO_INTERNET_PERMANENT:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_NO_INTERNET_TEMPORARY:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_TLS_VERSION_MISMATCH:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->DISABLED_WPS_START:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getCandidate()Landroid/net/wifi/ScanResult;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getCandidateScore()I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getConnectChoice()Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getConnectChoiceTimestamp()J
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getDisableReasonCounter(I)I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getDisableTime()J
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getHasEverConnected()Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkDisableReasonString()Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkDisableReasonString(I)Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkSelectionBSSID()Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkSelectionDisableReason()I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkSelectionStatus()I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkStatusString()Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getSeenInLastQualifiedNetworkSelection()Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->incrementDisableReasonCounter(I)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->INVALID_NETWORK_SELECTION_DISABLE_TIMESTAMP:J
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->isDisabledByReason(I)Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->isNetworkEnabled()Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->isNetworkPermanentlyDisabled()Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->isNetworkTemporaryDisabled()Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->isNotRecommended()Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mCandidate:Landroid/net/wifi/ScanResult;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mCandidateScore:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mConnectChoice:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mConnectChoiceTimestamp:J
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mHasEverConnected:Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mNetworkSeclectionDisableCounter:[I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mNetworkSelectionBSSID:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mNetworkSelectionDisableReason:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mNotRecommended:Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mSeenInLastQualifiedNetworkSelection:Z
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mStatus:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->mTemporarilyDisabledTimestamp:J
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->NETWORK_SELECTION_DISABLED_MAX:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->NETWORK_SELECTION_DISABLED_STARTING_INDEX:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->NETWORK_SELECTION_ENABLE:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->NETWORK_SELECTION_ENABLED:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->NETWORK_SELECTION_PERMANENTLY_DISABLED:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->NETWORK_SELECTION_STATUS_MAX:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->NETWORK_SELECTION_TEMPORARY_DISABLED:I
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->QUALITY_NETWORK_SELECTION_DISABLE_REASON:[Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->QUALITY_NETWORK_SELECTION_STATUS:[Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setCandidate(Landroid/net/wifi/ScanResult;)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setCandidateScore(I)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setConnectChoice(Ljava/lang/String;)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setConnectChoiceTimestamp(J)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setDisableReasonCounter(II)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setDisableTime(J)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setHasEverConnected(Z)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setNetworkSelectionBSSID(Ljava/lang/String;)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setNetworkSelectionDisableReason(I)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setNetworkSelectionStatus(I)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setNotRecommended(Z)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setSeenInLastQualifiedNetworkSelection(Z)V
+Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->writeToParcel(Landroid/os/Parcel;)V
+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
+Landroid/net/wifi/WifiConfiguration$RecentFailure;->mAssociationStatus:I
+Landroid/net/wifi/WifiConfiguration$RecentFailure;->NONE:I
+Landroid/net/wifi/WifiConfiguration$RecentFailure;->setAssociationStatus(I)V
+Landroid/net/wifi/WifiConfiguration$RecentFailure;->STATUS_AP_UNABLE_TO_HANDLE_NEW_STA:I
+Landroid/net/wifi/WifiConfiguration$Status;-><init>()V
+Landroid/net/wifi/WifiConfiguration;->AP_BAND_2GHZ:I
+Landroid/net/wifi/WifiConfiguration;->AP_BAND_5GHZ:I
+Landroid/net/wifi/WifiConfiguration;->AP_BAND_ANY:I
+Landroid/net/wifi/WifiConfiguration;->BACKUP_VERSION:I
+Landroid/net/wifi/WifiConfiguration;->bssidVarName:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->configKey()Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->configKey(Z)Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->creationTime:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->dhcpServer:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->didSelfAdd:Z
+Landroid/net/wifi/WifiConfiguration;->dtimInterval:I
+Landroid/net/wifi/WifiConfiguration;->ephemeral:Z
+Landroid/net/wifi/WifiConfiguration;->getBytesForBackup()[B
+Landroid/net/wifi/WifiConfiguration;->getKeyIdForCredentials(Landroid/net/wifi/WifiConfiguration;)Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->getMoTree()Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->getNetworkSelectionStatus()Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;
+Landroid/net/wifi/WifiConfiguration;->getOrCreateRandomizedMacAddress()Landroid/net/MacAddress;
+Landroid/net/wifi/WifiConfiguration;->getRandomizedMacAddress()Landroid/net/MacAddress;
+Landroid/net/wifi/WifiConfiguration;->getWifiConfigFromBackup(Ljava/io/DataInputStream;)Landroid/net/wifi/WifiConfiguration;
+Landroid/net/wifi/WifiConfiguration;->hiddenSSIDVarName:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->HOME_NETWORK_RSSI_BOOST:I
+Landroid/net/wifi/WifiConfiguration;->INVALID_NETWORK_ID:I
+Landroid/net/wifi/WifiConfiguration;->isLegacyPasspointConfig:Z
+Landroid/net/wifi/WifiConfiguration;->isLinked(Landroid/net/wifi/WifiConfiguration;)Z
+Landroid/net/wifi/WifiConfiguration;->isMetered(Landroid/net/wifi/WifiConfiguration;Landroid/net/wifi/WifiInfo;)Z
+Landroid/net/wifi/WifiConfiguration;->isOpenNetwork()Z
+Landroid/net/wifi/WifiConfiguration;->isValidMacAddressForRandomization(Landroid/net/MacAddress;)Z
+Landroid/net/wifi/WifiConfiguration;->lastConnected:J
+Landroid/net/wifi/WifiConfiguration;->lastDisconnected:J
+Landroid/net/wifi/WifiConfiguration;->linkedConfigurations:Ljava/util/HashMap;
+Landroid/net/wifi/WifiConfiguration;->LOCAL_ONLY_NETWORK_ID:I
+Landroid/net/wifi/WifiConfiguration;->MAXIMUM_RANDOM_MAC_GENERATION_RETRY:I
+Landroid/net/wifi/WifiConfiguration;->mCachedConfigKey:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->meteredOverride:I
+Landroid/net/wifi/WifiConfiguration;->METERED_OVERRIDE_METERED:I
+Landroid/net/wifi/WifiConfiguration;->METERED_OVERRIDE_NONE:I
+Landroid/net/wifi/WifiConfiguration;->METERED_OVERRIDE_NOT_METERED:I
+Landroid/net/wifi/WifiConfiguration;->mNetworkSelectionStatus:Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;
+Landroid/net/wifi/WifiConfiguration;->mPasspointManagementObjectTree:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->mRandomizedMacAddress:Landroid/net/MacAddress;
+Landroid/net/wifi/WifiConfiguration;->peerWifiConfiguration:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->pmfVarName:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->priorityVarName:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->pskVarName:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->readBitSet(Landroid/os/Parcel;)Ljava/util/BitSet;
+Landroid/net/wifi/WifiConfiguration;->recentFailure:Landroid/net/wifi/WifiConfiguration$RecentFailure;
+Landroid/net/wifi/WifiConfiguration;->requirePMF:Z
+Landroid/net/wifi/WifiConfiguration;->setNetworkSelectionStatus(Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;)V
+Landroid/net/wifi/WifiConfiguration;->setPasspointManagementObjectTree(Ljava/lang/String;)V
+Landroid/net/wifi/WifiConfiguration;->setRandomizedMacAddress(Landroid/net/MacAddress;)V
+Landroid/net/wifi/WifiConfiguration;->ssidVarName:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->TAG:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->trimStringForKeyId(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->UNKNOWN_UID:I
+Landroid/net/wifi/WifiConfiguration;->updateIdentiferVarName:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->updateIdentifier:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->updateTime:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->userApproved:I
+Landroid/net/wifi/WifiConfiguration;->userApprovedAsString(I)Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->USER_APPROVED:I
+Landroid/net/wifi/WifiConfiguration;->USER_BANNED:I
+Landroid/net/wifi/WifiConfiguration;->USER_PENDING:I
+Landroid/net/wifi/WifiConfiguration;->USER_UNSPECIFIED:I
+Landroid/net/wifi/WifiConfiguration;->wepTxKeyIdxVarName:Ljava/lang/String;
+Landroid/net/wifi/WifiConfiguration;->writeBitSet(Landroid/os/Parcel;Ljava/util/BitSet;)V
+Landroid/net/wifi/WifiEnterpriseConfig$Eap;-><init>()V
+Landroid/net/wifi/WifiEnterpriseConfig$Eap;->strings:[Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig$Phase2;-><init>()V
+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;
+Landroid/net/wifi/WifiEnterpriseConfig;->CA_CERT_ALIAS_DELIMITER:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->CA_CERT_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->CA_CERT_PREFIX:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->CA_PATH_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->CLIENT_CERT_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->CLIENT_CERT_PREFIX:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->convertToQuotedString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->copyFrom(Landroid/net/wifi/WifiEnterpriseConfig;ZLjava/lang/String;)V
+Landroid/net/wifi/WifiEnterpriseConfig;->copyFromExternal(Landroid/net/wifi/WifiEnterpriseConfig;Ljava/lang/String;)V
+Landroid/net/wifi/WifiEnterpriseConfig;->decodeCaCertificateAlias(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->DOM_SUFFIX_MATCH_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->EAP_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->EMPTY_VALUE:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->encodeCaCertificateAlias(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->ENGINE_DISABLE:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->ENGINE_ENABLE:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->ENGINE_ID_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->ENGINE_ID_KEYSTORE:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->ENGINE_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->getCaCertificateAliases()[Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->getCaPath()Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->getClientPrivateKey()Ljava/security/PrivateKey;
+Landroid/net/wifi/WifiEnterpriseConfig;->getFieldValue(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->getFieldValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->getKeyId(Landroid/net/wifi/WifiEnterpriseConfig;)Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->getStringIndex([Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/net/wifi/WifiEnterpriseConfig;->IDENTITY_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->isEapMethodValid()Z
+Landroid/net/wifi/WifiEnterpriseConfig;->KEYSTORES_URI:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->KEYSTORE_URI:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->loadFromSupplicant(Landroid/net/wifi/WifiEnterpriseConfig$SupplicantLoader;)V
+Landroid/net/wifi/WifiEnterpriseConfig;->mCaCerts:[Ljava/security/cert/X509Certificate;
+Landroid/net/wifi/WifiEnterpriseConfig;->mClientCertificateChain:[Ljava/security/cert/X509Certificate;
+Landroid/net/wifi/WifiEnterpriseConfig;->mClientPrivateKey:Ljava/security/PrivateKey;
+Landroid/net/wifi/WifiEnterpriseConfig;->mEapMethod:I
+Landroid/net/wifi/WifiEnterpriseConfig;->mPhase2Method:I
+Landroid/net/wifi/WifiEnterpriseConfig;->OPP_KEY_CACHING:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->PASSWORD_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->PHASE2_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->PLMN_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->PRIVATE_KEY_ID_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->REALM_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->removeDoubleQuotes(Ljava/lang/String;)Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->resetCaCertificate()V
+Landroid/net/wifi/WifiEnterpriseConfig;->resetClientKeyEntry()V
+Landroid/net/wifi/WifiEnterpriseConfig;->saveToSupplicant(Landroid/net/wifi/WifiEnterpriseConfig$SupplicantSaver;)Z
+Landroid/net/wifi/WifiEnterpriseConfig;->setCaCertificateAliases([Ljava/lang/String;)V
+Landroid/net/wifi/WifiEnterpriseConfig;->setCaPath(Ljava/lang/String;)V
+Landroid/net/wifi/WifiEnterpriseConfig;->setFieldValue(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/wifi/WifiEnterpriseConfig;->setFieldValue(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/net/wifi/WifiEnterpriseConfig;->SUBJECT_MATCH_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->SUPPLICANT_CONFIG_KEYS:[Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->TAG:Ljava/lang/String;
+Landroid/net/wifi/WifiEnterpriseConfig;->UNQUOTED_KEYS:Ljava/util/List;
+Landroid/net/wifi/WifiInfo;-><init>(Landroid/net/wifi/WifiInfo;)V
+Landroid/net/wifi/WifiInfo;->hasRealMacAddress()Z
+Landroid/net/wifi/WifiInfo;->is24GHz()Z
+Landroid/net/wifi/WifiInfo;->MAX_RSSI:I
+Landroid/net/wifi/WifiInfo;->mEphemeral:Z
+Landroid/net/wifi/WifiInfo;->mFrequency:I
+Landroid/net/wifi/WifiInfo;->MIN_RSSI:I
+Landroid/net/wifi/WifiInfo;->mLinkSpeed:I
+Landroid/net/wifi/WifiInfo;->mMeteredHint:Z
+Landroid/net/wifi/WifiInfo;->mNetworkId:I
+Landroid/net/wifi/WifiInfo;->mRssi:I
+Landroid/net/wifi/WifiInfo;->mSupplicantState:Landroid/net/wifi/SupplicantState;
+Landroid/net/wifi/WifiInfo;->reset()V
+Landroid/net/wifi/WifiInfo;->rxSuccess:J
+Landroid/net/wifi/WifiInfo;->rxSuccessRate:D
+Landroid/net/wifi/WifiInfo;->setEphemeral(Z)V
+Landroid/net/wifi/WifiInfo;->setFrequency(I)V
+Landroid/net/wifi/WifiInfo;->setInetAddress(Ljava/net/InetAddress;)V
+Landroid/net/wifi/WifiInfo;->setMeteredHint(Z)V
+Landroid/net/wifi/WifiInfo;->setSSID(Landroid/net/wifi/WifiSsid;)V
+Landroid/net/wifi/WifiInfo;->stateMap:Ljava/util/EnumMap;
+Landroid/net/wifi/WifiInfo;->TAG:Ljava/lang/String;
+Landroid/net/wifi/WifiInfo;->txBad:J
+Landroid/net/wifi/WifiInfo;->txBadRate:D
+Landroid/net/wifi/WifiInfo;->txRetries:J
+Landroid/net/wifi/WifiInfo;->txRetriesRate:D
+Landroid/net/wifi/WifiInfo;->txSuccess:J
+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;
+Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;->mLooper:Landroid/os/Looper;
+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;
+Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;->mLooper:Landroid/os/Looper;
+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
+Landroid/net/wifi/WifiManager$WifiLock;->mRefCount:I
+Landroid/net/wifi/WifiManager$WifiLock;->mRefCounted:Z
+Landroid/net/wifi/WifiManager$WifiLock;->mTag:Ljava/lang/String;
+Landroid/net/wifi/WifiManager$WifiLock;->mWorkSource:Landroid/os/WorkSource;
+Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;Landroid/os/Looper;)V
+Landroid/net/wifi/WifiManager;->ACTION_PASSPOINT_DEAUTH_IMMINENT:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->ACTION_PASSPOINT_ICON:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->ACTION_PASSPOINT_OSU_PROVIDERS_LIST:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->ACTION_PASSPOINT_SUBSCRIPTION_REMEDIATION:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->ACTION_REQUEST_DISABLE:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->ACTION_REQUEST_ENABLE:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->addOrUpdateNetwork(Landroid/net/wifi/WifiConfiguration;)I
+Landroid/net/wifi/WifiManager;->BASE:I
+Landroid/net/wifi/WifiManager;->BATCHED_SCAN_RESULTS_AVAILABLE_ACTION:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->BUSY:I
+Landroid/net/wifi/WifiManager;->CANCEL_WPS:I
+Landroid/net/wifi/WifiManager;->CANCEL_WPS_FAILED:I
+Landroid/net/wifi/WifiManager;->CANCEL_WPS_SUCCEDED:I
+Landroid/net/wifi/WifiManager;->CONNECT_NETWORK:I
+Landroid/net/wifi/WifiManager;->CONNECT_NETWORK_FAILED:I
+Landroid/net/wifi/WifiManager;->CONNECT_NETWORK_SUCCEEDED:I
+Landroid/net/wifi/WifiManager;->DATA_ACTIVITY_IN:I
+Landroid/net/wifi/WifiManager;->DATA_ACTIVITY_INOUT:I
+Landroid/net/wifi/WifiManager;->DATA_ACTIVITY_NONE:I
+Landroid/net/wifi/WifiManager;->DATA_ACTIVITY_NOTIFICATION:I
+Landroid/net/wifi/WifiManager;->DATA_ACTIVITY_OUT:I
+Landroid/net/wifi/WifiManager;->deauthenticateNetwork(JZ)V
+Landroid/net/wifi/WifiManager;->DEFAULT_POOR_NETWORK_AVOIDANCE_ENABLED:Z
+Landroid/net/wifi/WifiManager;->disableEphemeralNetwork(Ljava/lang/String;)V
+Landroid/net/wifi/WifiManager;->DISABLE_NETWORK:I
+Landroid/net/wifi/WifiManager;->DISABLE_NETWORK_FAILED:I
+Landroid/net/wifi/WifiManager;->DISABLE_NETWORK_SUCCEEDED:I
+Landroid/net/wifi/WifiManager;->enableWifiConnectivityManager(Z)V
+Landroid/net/wifi/WifiManager;->ERROR:I
+Landroid/net/wifi/WifiManager;->ERROR_AUTH_FAILURE_EAP_FAILURE:I
+Landroid/net/wifi/WifiManager;->ERROR_AUTH_FAILURE_NONE:I
+Landroid/net/wifi/WifiManager;->ERROR_AUTH_FAILURE_TIMEOUT:I
+Landroid/net/wifi/WifiManager;->ERROR_AUTH_FAILURE_WRONG_PSWD:I
+Landroid/net/wifi/WifiManager;->EXTRA_ANQP_ELEMENT_DATA:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_BSSID_LONG:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_DELAY:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_ESS:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_FILENAME:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_ICON:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_LINK_PROPERTIES:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_NETWORK_CAPABILITIES:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_SCAN_AVAILABLE:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_SUBSCRIPTION_REMEDIATION_METHOD:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_SUPPLICANT_ERROR_REASON:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_URL:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_WIFI_AP_FAILURE_REASON:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_WIFI_AP_INTERFACE_NAME:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->EXTRA_WIFI_AP_MODE:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->factoryReset()V
+Landroid/net/wifi/WifiManager;->FORGET_NETWORK:I
+Landroid/net/wifi/WifiManager;->FORGET_NETWORK_FAILED:I
+Landroid/net/wifi/WifiManager;->FORGET_NETWORK_SUCCEEDED:I
+Landroid/net/wifi/WifiManager;->getAllMatchingWifiConfigs(Landroid/net/wifi/ScanResult;)Ljava/util/List;
+Landroid/net/wifi/WifiManager;->getChannel()Lcom/android/internal/util/AsyncChannel;
+Landroid/net/wifi/WifiManager;->getControllerActivityEnergyInfo(I)Landroid/net/wifi/WifiActivityEnergyInfo;
+Landroid/net/wifi/WifiManager;->getCurrentNetworkWpsNfcConfigurationToken()Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->getEnableAutoJoinWhenAssociated()Z
+Landroid/net/wifi/WifiManager;->getMatchingOsuProviders(Landroid/net/wifi/ScanResult;)Ljava/util/List;
+Landroid/net/wifi/WifiManager;->getSupportedFeatures()I
+Landroid/net/wifi/WifiManager;->getTxPacketCount(Landroid/net/wifi/WifiManager$TxPacketCountListener;)V
+Landroid/net/wifi/WifiManager;->HOTSPOT_FAILED:I
+Landroid/net/wifi/WifiManager;->HOTSPOT_OBSERVER_REGISTERED:I
+Landroid/net/wifi/WifiManager;->HOTSPOT_STARTED:I
+Landroid/net/wifi/WifiManager;->HOTSPOT_STOPPED:I
+Landroid/net/wifi/WifiManager;->IFACE_IP_MODE_CONFIGURATION_ERROR:I
+Landroid/net/wifi/WifiManager;->IFACE_IP_MODE_LOCAL_ONLY:I
+Landroid/net/wifi/WifiManager;->IFACE_IP_MODE_TETHERED:I
+Landroid/net/wifi/WifiManager;->IFACE_IP_MODE_UNSPECIFIED:I
+Landroid/net/wifi/WifiManager;->INVALID_ARGS:I
+Landroid/net/wifi/WifiManager;->INVALID_KEY:I
+Landroid/net/wifi/WifiManager;->IN_PROGRESS:I
+Landroid/net/wifi/WifiManager;->isAdditionalStaSupported()Z
+Landroid/net/wifi/WifiManager;->isDualModeSupported()Z
+Landroid/net/wifi/WifiManager;->isFeatureSupported(I)Z
+Landroid/net/wifi/WifiManager;->isMulticastEnabled()Z
+Landroid/net/wifi/WifiManager;->isOffChannelTdlsSupported()Z
+Landroid/net/wifi/WifiManager;->isPasspointSupported()Z
+Landroid/net/wifi/WifiManager;->isWifiAwareSupported()Z
+Landroid/net/wifi/WifiManager;->mAsyncChannel:Lcom/android/internal/util/AsyncChannel;
+Landroid/net/wifi/WifiManager;->matchProviderWithCurrentNetwork(Ljava/lang/String;)I
+Landroid/net/wifi/WifiManager;->MAX_ACTIVE_LOCKS:I
+Landroid/net/wifi/WifiManager;->mConnected:Ljava/util/concurrent/CountDownLatch;
+Landroid/net/wifi/WifiManager;->mContext:Landroid/content/Context;
+Landroid/net/wifi/WifiManager;->mListenerKey:I
+Landroid/net/wifi/WifiManager;->mListenerMap:Landroid/util/SparseArray;
+Landroid/net/wifi/WifiManager;->mListenerMapLock:Ljava/lang/Object;
+Landroid/net/wifi/WifiManager;->mLock:Ljava/lang/Object;
+Landroid/net/wifi/WifiManager;->mLOHSCallbackProxy:Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;
+Landroid/net/wifi/WifiManager;->mLOHSObserverProxy:Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;
+Landroid/net/wifi/WifiManager;->mLooper:Landroid/os/Looper;
+Landroid/net/wifi/WifiManager;->mTargetSdkVersion:I
+Landroid/net/wifi/WifiManager;->NOT_AUTHORIZED:I
+Landroid/net/wifi/WifiManager;->putListener(Ljava/lang/Object;)I
+Landroid/net/wifi/WifiManager;->queryPasspointIcon(JLjava/lang/String;)V
+Landroid/net/wifi/WifiManager;->registerSoftApCallback(Landroid/net/wifi/WifiManager$SoftApCallback;Landroid/os/Handler;)V
+Landroid/net/wifi/WifiManager;->removeListener(I)Ljava/lang/Object;
+Landroid/net/wifi/WifiManager;->restoreBackupData([B)V
+Landroid/net/wifi/WifiManager;->restoreSupplicantBackupData([B[B)V
+Landroid/net/wifi/WifiManager;->retrieveBackupData()[B
+Landroid/net/wifi/WifiManager;->RSSI_PKTCNT_FETCH:I
+Landroid/net/wifi/WifiManager;->RSSI_PKTCNT_FETCH_FAILED:I
+Landroid/net/wifi/WifiManager;->RSSI_PKTCNT_FETCH_SUCCEEDED:I
+Landroid/net/wifi/WifiManager;->SAP_START_FAILURE_GENERAL:I
+Landroid/net/wifi/WifiManager;->SAP_START_FAILURE_NO_CHANNEL:I
+Landroid/net/wifi/WifiManager;->SAVE_NETWORK:I
+Landroid/net/wifi/WifiManager;->SAVE_NETWORK_FAILED:I
+Landroid/net/wifi/WifiManager;->SAVE_NETWORK_SUCCEEDED:I
+Landroid/net/wifi/WifiManager;->setCountryCode(Ljava/lang/String;)V
+Landroid/net/wifi/WifiManager;->setEnableAutoJoinWhenAssociated(Z)Z
+Landroid/net/wifi/WifiManager;->sServiceHandlerDispatchLock:Ljava/lang/Object;
+Landroid/net/wifi/WifiManager;->startSoftAp(Landroid/net/wifi/WifiConfiguration;)Z
+Landroid/net/wifi/WifiManager;->startSubscriptionProvisioning(Landroid/net/wifi/hotspot2/OsuProvider;Landroid/net/wifi/hotspot2/ProvisioningCallback;Landroid/os/Handler;)V
+Landroid/net/wifi/WifiManager;->START_WPS:I
+Landroid/net/wifi/WifiManager;->START_WPS_SUCCEEDED:I
+Landroid/net/wifi/WifiManager;->stopLocalOnlyHotspot()V
+Landroid/net/wifi/WifiManager;->stopSoftAp()Z
+Landroid/net/wifi/WifiManager;->TAG:Ljava/lang/String;
+Landroid/net/wifi/WifiManager;->unregisterLocalOnlyHotspotObserver()V
+Landroid/net/wifi/WifiManager;->unregisterSoftApCallback(Landroid/net/wifi/WifiManager$SoftApCallback;)V
+Landroid/net/wifi/WifiManager;->updateInterfaceIpState(Ljava/lang/String;I)V
+Landroid/net/wifi/WifiManager;->watchLocalOnlyHotspot(Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserver;Landroid/os/Handler;)V
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_ADDITIONAL_STA:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_AP_STA:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_AWARE:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_BATCH_SCAN:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_CONFIG_NDO:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_CONTROL_ROAMING:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_D2AP_RTT:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_D2D_RTT:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_EPR:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_HAL_EPNO:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_IE_WHITELIST:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_INFRA:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_INFRA_5G:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_LINK_LAYER_STATS:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_LOGGER:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_MKEEP_ALIVE:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_MOBILE_HOTSPOT:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_P2P:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_PASSPOINT:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_PNO:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_RSSI_MONITOR:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_SCANNER:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_SCAN_RAND:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_TDLS:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_TDLS_OFFCHANNEL:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_TRANSMIT_POWER:I
+Landroid/net/wifi/WifiManager;->WIFI_FEATURE_TX_POWER_LIMIT:I
+Landroid/net/wifi/WifiManager;->WIFI_MODE_NO_LOCKS_HELD:I
+Landroid/net/wifi/WifiManager;->WIFI_SCAN_AVAILABLE:Ljava/lang/String;
+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
+Landroid/net/wifi/WifiNetworkScoreCache;->buildNetworkKey(Landroid/net/NetworkKey;)Ljava/lang/String;
+Landroid/net/wifi/WifiNetworkScoreCache;->buildNetworkKey(Landroid/net/ScoredNetwork;)Ljava/lang/String;
+Landroid/net/wifi/WifiNetworkScoreCache;->buildNetworkKey(Landroid/net/wifi/ScanResult;)Ljava/lang/String;
+Landroid/net/wifi/WifiNetworkScoreCache;->clearScores()V
+Landroid/net/wifi/WifiNetworkScoreCache;->DBG:Z
+Landroid/net/wifi/WifiNetworkScoreCache;->DEFAULT_MAX_CACHE_SIZE:I
+Landroid/net/wifi/WifiNetworkScoreCache;->getMeteredHint(Landroid/net/wifi/ScanResult;)Z
+Landroid/net/wifi/WifiNetworkScoreCache;->getNetworkScore(Landroid/net/wifi/ScanResult;)I
+Landroid/net/wifi/WifiNetworkScoreCache;->getNetworkScore(Landroid/net/wifi/ScanResult;Z)I
+Landroid/net/wifi/WifiNetworkScoreCache;->getScoredNetwork(Landroid/net/NetworkKey;)Landroid/net/ScoredNetwork;
+Landroid/net/wifi/WifiNetworkScoreCache;->getScoredNetwork(Landroid/net/wifi/ScanResult;)Landroid/net/ScoredNetwork;
+Landroid/net/wifi/WifiNetworkScoreCache;->hasScoreCurve(Landroid/net/wifi/ScanResult;)Z
+Landroid/net/wifi/WifiNetworkScoreCache;->INVALID_NETWORK_SCORE:I
+Landroid/net/wifi/WifiNetworkScoreCache;->isScoredNetwork(Landroid/net/wifi/ScanResult;)Z
+Landroid/net/wifi/WifiNetworkScoreCache;->mCache:Landroid/util/LruCache;
+Landroid/net/wifi/WifiNetworkScoreCache;->mContext:Landroid/content/Context;
+Landroid/net/wifi/WifiNetworkScoreCache;->mListener:Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;
+Landroid/net/wifi/WifiNetworkScoreCache;->mLock:Ljava/lang/Object;
+Landroid/net/wifi/WifiNetworkScoreCache;->registerListener(Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;)V
+Landroid/net/wifi/WifiNetworkScoreCache;->TAG:Ljava/lang/String;
+Landroid/net/wifi/WifiNetworkScoreCache;->unregisterListener()V
+Landroid/net/wifi/WifiNetworkScoreCache;->updateScores(Ljava/util/List;)V
+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
+Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->AUTH_CODE_OPEN:B
+Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->AUTH_CODE_PSK:B
+Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->flags:B
+Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->FLAG_A_BAND:B
+Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->FLAG_DIRECTED_SCAN:B
+Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->FLAG_G_BAND:B
+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;
+Landroid/net/wifi/WifiScanner$PnoSettings;->currentConnectionBonus:I
+Landroid/net/wifi/WifiScanner$PnoSettings;->initialScoreMax:I
+Landroid/net/wifi/WifiScanner$PnoSettings;->isConnected:Z
+Landroid/net/wifi/WifiScanner$PnoSettings;->min24GHzRssi:I
+Landroid/net/wifi/WifiScanner$PnoSettings;->min5GHzRssi:I
+Landroid/net/wifi/WifiScanner$PnoSettings;->networkList:[Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;
+Landroid/net/wifi/WifiScanner$PnoSettings;->sameNetworkBonus:I
+Landroid/net/wifi/WifiScanner$PnoSettings;->secureBonus:I
+Landroid/net/wifi/WifiScanner$ScanData;-><init>()V
+Landroid/net/wifi/WifiScanner$ScanData;-><init>(IIIZ[Landroid/net/wifi/ScanResult;)V
+Landroid/net/wifi/WifiScanner$ScanData;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/WifiScanner$ScanData;->getBucketsScanned()I
+Landroid/net/wifi/WifiScanner$ScanData;->isAllChannelsScanned()Z
+Landroid/net/wifi/WifiScanner$ScanData;->mAllChannelsScanned:Z
+Landroid/net/wifi/WifiScanner$ScanData;->mBucketsScanned:I
+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
+Landroid/net/wifi/WifiScanner;->BASE:I
+Landroid/net/wifi/WifiScanner;->CMD_DEREGISTER_SCAN_LISTENER:I
+Landroid/net/wifi/WifiScanner;->CMD_FULL_SCAN_RESULT:I
+Landroid/net/wifi/WifiScanner;->CMD_GET_SCAN_RESULTS:I
+Landroid/net/wifi/WifiScanner;->CMD_GET_SINGLE_SCAN_RESULTS:I
+Landroid/net/wifi/WifiScanner;->CMD_OP_FAILED:I
+Landroid/net/wifi/WifiScanner;->CMD_OP_SUCCEEDED:I
+Landroid/net/wifi/WifiScanner;->CMD_PNO_NETWORK_FOUND:I
+Landroid/net/wifi/WifiScanner;->CMD_REGISTER_SCAN_LISTENER:I
+Landroid/net/wifi/WifiScanner;->CMD_SCAN_RESULT:I
+Landroid/net/wifi/WifiScanner;->CMD_SINGLE_SCAN_COMPLETED:I
+Landroid/net/wifi/WifiScanner;->CMD_START_BACKGROUND_SCAN:I
+Landroid/net/wifi/WifiScanner;->CMD_START_PNO_SCAN:I
+Landroid/net/wifi/WifiScanner;->CMD_START_SINGLE_SCAN:I
+Landroid/net/wifi/WifiScanner;->CMD_STOP_BACKGROUND_SCAN:I
+Landroid/net/wifi/WifiScanner;->CMD_STOP_PNO_SCAN:I
+Landroid/net/wifi/WifiScanner;->CMD_STOP_SINGLE_SCAN:I
+Landroid/net/wifi/WifiScanner;->DBG:Z
+Landroid/net/wifi/WifiScanner;->deregisterScanListener(Landroid/net/wifi/WifiScanner$ScanListener;)V
+Landroid/net/wifi/WifiScanner;->getAvailableChannels(I)Ljava/util/List;
+Landroid/net/wifi/WifiScanner;->getListener(I)Ljava/lang/Object;
+Landroid/net/wifi/WifiScanner;->getListenerKey(Ljava/lang/Object;)I
+Landroid/net/wifi/WifiScanner;->getSingleScanResults()Ljava/util/List;
+Landroid/net/wifi/WifiScanner;->GET_AVAILABLE_CHANNELS_EXTRA:Ljava/lang/String;
+Landroid/net/wifi/WifiScanner;->INVALID_KEY:I
+Landroid/net/wifi/WifiScanner;->mAsyncChannel:Lcom/android/internal/util/AsyncChannel;
+Landroid/net/wifi/WifiScanner;->mContext:Landroid/content/Context;
+Landroid/net/wifi/WifiScanner;->mInternalHandler:Landroid/os/Handler;
+Landroid/net/wifi/WifiScanner;->mListenerKey:I
+Landroid/net/wifi/WifiScanner;->mListenerMap:Landroid/util/SparseArray;
+Landroid/net/wifi/WifiScanner;->mListenerMapLock:Ljava/lang/Object;
+Landroid/net/wifi/WifiScanner;->mService:Landroid/net/wifi/IWifiScanner;
+Landroid/net/wifi/WifiScanner;->PNO_PARAMS_PNO_SETTINGS_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiScanner;->PNO_PARAMS_SCAN_SETTINGS_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiScanner;->putListener(Ljava/lang/Object;)I
+Landroid/net/wifi/WifiScanner;->registerScanListener(Landroid/net/wifi/WifiScanner$ScanListener;)V
+Landroid/net/wifi/WifiScanner;->removeListener(I)Ljava/lang/Object;
+Landroid/net/wifi/WifiScanner;->removeListener(Ljava/lang/Object;)I
+Landroid/net/wifi/WifiScanner;->SCAN_PARAMS_SCAN_SETTINGS_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiScanner;->SCAN_PARAMS_WORK_SOURCE_KEY:Ljava/lang/String;
+Landroid/net/wifi/WifiScanner;->startConnectedPnoScan(Landroid/net/wifi/WifiScanner$ScanSettings;Landroid/net/wifi/WifiScanner$PnoSettings;Landroid/net/wifi/WifiScanner$PnoScanListener;)V
+Landroid/net/wifi/WifiScanner;->startDisconnectedPnoScan(Landroid/net/wifi/WifiScanner$ScanSettings;Landroid/net/wifi/WifiScanner$PnoSettings;Landroid/net/wifi/WifiScanner$PnoScanListener;)V
+Landroid/net/wifi/WifiScanner;->startPnoScan(Landroid/net/wifi/WifiScanner$ScanSettings;Landroid/net/wifi/WifiScanner$PnoSettings;I)V
+Landroid/net/wifi/WifiScanner;->stopPnoScan(Landroid/net/wifi/WifiScanner$ScanListener;)V
+Landroid/net/wifi/WifiScanner;->TAG:Ljava/lang/String;
+Landroid/net/wifi/WifiScanner;->TYPE_HIGH_ACCURACY:I
+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;
+Landroid/net/wifi/WifiSsid;->createFromHex(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
+Landroid/net/wifi/WifiSsid;->getHexString()Ljava/lang/String;
+Landroid/net/wifi/WifiSsid;->HEX_RADIX:I
+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;
+Landroid/net/wifi/WifiWakeReasonAndCounts;->driverFWLocalWakeCntArray:[I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->icmp6:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->icmp6Na:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->icmp6Ns:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->icmp6Ra:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->icmp:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->ipv4RxMulticast:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->ipv6Multicast:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->otherRxMulticast:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->rxBroadcast:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->rxMulticast:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->rxUnicast:I
+Landroid/net/wifi/WifiWakeReasonAndCounts;->TAG:Ljava/lang/String;
+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
+Landroid/net/wifi/WpsResult;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/net/wifi/WpsResult;->pin:Ljava/lang/String;
+Landroid/net/wifi/WpsResult;->status:Landroid/net/wifi/WpsResult$Status;
+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;
+Landroid/net/WifiLinkQualityInfo;->getRssi()I
+Landroid/net/WifiLinkQualityInfo;->getTxBad()J
+Landroid/net/WifiLinkQualityInfo;->getTxGood()J
+Landroid/net/WifiLinkQualityInfo;->getType()I
+Landroid/net/WifiLinkQualityInfo;->mBssid:Ljava/lang/String;
+Landroid/net/WifiLinkQualityInfo;->mRssi:I
+Landroid/net/WifiLinkQualityInfo;->mTxBad:J
+Landroid/net/WifiLinkQualityInfo;->mTxGood:J
+Landroid/net/WifiLinkQualityInfo;->mType:I
+Landroid/net/WifiLinkQualityInfo;->setBssid(Ljava/lang/String;)V
+Landroid/net/WifiLinkQualityInfo;->setRssi(I)V
+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;
+Landroid/nfc/cardemulation/ApduServiceInfo;->getCategoryForAid(Ljava/lang/String;)Ljava/lang/String;
+Landroid/nfc/cardemulation/ApduServiceInfo;->getComponent()Landroid/content/ComponentName;
+Landroid/nfc/cardemulation/ApduServiceInfo;->getDynamicAidGroupForCategory(Ljava/lang/String;)Landroid/nfc/cardemulation/AidGroup;
+Landroid/nfc/cardemulation/ApduServiceInfo;->getPrefixAids()Ljava/util/List;
+Landroid/nfc/cardemulation/ApduServiceInfo;->getSubsetAids()Ljava/util/List;
+Landroid/nfc/cardemulation/ApduServiceInfo;->hasCategory(Ljava/lang/String;)Z
+Landroid/nfc/cardemulation/ApduServiceInfo;->loadAppLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+Landroid/nfc/cardemulation/ApduServiceInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/nfc/cardemulation/ApduServiceInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+Landroid/nfc/cardemulation/ApduServiceInfo;->mBannerResourceId:I
+Landroid/nfc/cardemulation/ApduServiceInfo;->mDescription:Ljava/lang/String;
+Landroid/nfc/cardemulation/ApduServiceInfo;->mOnHost:Z
+Landroid/nfc/cardemulation/ApduServiceInfo;->mRequiresDeviceUnlock:Z
+Landroid/nfc/cardemulation/ApduServiceInfo;->mSettingsActivityName:Ljava/lang/String;
+Landroid/nfc/cardemulation/ApduServiceInfo;->mUid:I
+Landroid/nfc/cardemulation/ApduServiceInfo;->removeDynamicAidGroupForCategory(Ljava/lang/String;)Z
+Landroid/nfc/cardemulation/ApduServiceInfo;->setOrReplaceDynamicAidGroup(Landroid/nfc/cardemulation/AidGroup;)V
+Landroid/nfc/cardemulation/ApduServiceInfo;->TAG:Ljava/lang/String;
+Landroid/nfc/cardemulation/CardEmulation;-><init>(Landroid/content/Context;Landroid/nfc/INfcCardEmulation;)V
+Landroid/nfc/cardemulation/CardEmulation;->getServices(Ljava/lang/String;)Ljava/util/List;
+Landroid/nfc/cardemulation/CardEmulation;->isValidAid(Ljava/lang/String;)Z
+Landroid/nfc/cardemulation/CardEmulation;->mContext:Landroid/content/Context;
+Landroid/nfc/cardemulation/CardEmulation;->recoverService()V
+Landroid/nfc/cardemulation/CardEmulation;->sCardEmus:Ljava/util/HashMap;
+Landroid/nfc/cardemulation/CardEmulation;->setDefaultForNextTap(Landroid/content/ComponentName;)Z
+Landroid/nfc/cardemulation/CardEmulation;->setDefaultServiceForCategory(Landroid/content/ComponentName;Ljava/lang/String;)Z
+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;
+Landroid/nfc/cardemulation/HostApduService;->MSG_COMMAND_APDU:I
+Landroid/nfc/cardemulation/HostApduService;->MSG_DEACTIVATED:I
+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;
+Landroid/nfc/cardemulation/HostNfcFService;->mNfcService:Landroid/os/Messenger;
+Landroid/nfc/cardemulation/HostNfcFService;->MSG_COMMAND_PACKET:I
+Landroid/nfc/cardemulation/HostNfcFService;->MSG_DEACTIVATED:I
+Landroid/nfc/cardemulation/HostNfcFService;->MSG_RESPONSE_PACKET:I
+Landroid/nfc/cardemulation/HostNfcFService;->TAG:Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFCardEmulation;-><init>(Landroid/content/Context;Landroid/nfc/INfcFCardEmulation;)V
+Landroid/nfc/cardemulation/NfcFCardEmulation;->getMaxNumOfRegisterableSystemCodes()I
+Landroid/nfc/cardemulation/NfcFCardEmulation;->getNfcFServices()Ljava/util/List;
+Landroid/nfc/cardemulation/NfcFCardEmulation;->isValidNfcid2(Ljava/lang/String;)Z
+Landroid/nfc/cardemulation/NfcFCardEmulation;->isValidSystemCode(Ljava/lang/String;)Z
+Landroid/nfc/cardemulation/NfcFCardEmulation;->mContext:Landroid/content/Context;
+Landroid/nfc/cardemulation/NfcFCardEmulation;->recoverService()V
+Landroid/nfc/cardemulation/NfcFCardEmulation;->sCardEmus:Ljava/util/HashMap;
+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;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->DEFAULT_T3T_PMM:Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/nfc/cardemulation/NfcFServiceInfo;->getComponent()Landroid/content/ComponentName;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->getDescription()Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->getNfcid2()Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->getSystemCode()Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->getT3tPmm()Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->getUid()I
+Landroid/nfc/cardemulation/NfcFServiceInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->mDescription:Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->mDynamicNfcid2:Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->mDynamicSystemCode:Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->mNfcid2:Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->mService:Landroid/content/pm/ResolveInfo;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->mSystemCode:Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->mT3tPmm:Ljava/lang/String;
+Landroid/nfc/cardemulation/NfcFServiceInfo;->mUid:I
+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
+Landroid/nfc/ErrorCodes;->ERROR_BUSY:I
+Landroid/nfc/ErrorCodes;->ERROR_CANCELLED:I
+Landroid/nfc/ErrorCodes;->ERROR_CONNECT:I
+Landroid/nfc/ErrorCodes;->ERROR_DISCONNECT:I
+Landroid/nfc/ErrorCodes;->ERROR_INSUFFICIENT_RESOURCES:I
+Landroid/nfc/ErrorCodes;->ERROR_INVALID_PARAM:I
+Landroid/nfc/ErrorCodes;->ERROR_IO:I
+Landroid/nfc/ErrorCodes;->ERROR_NFC_ON:I
+Landroid/nfc/ErrorCodes;->ERROR_NOT_INITIALIZED:I
+Landroid/nfc/ErrorCodes;->ERROR_NOT_SUPPORTED:I
+Landroid/nfc/ErrorCodes;->ERROR_NO_SE_CONNECTED:I
+Landroid/nfc/ErrorCodes;->ERROR_READ:I
+Landroid/nfc/ErrorCodes;->ERROR_SAP_USED:I
+Landroid/nfc/ErrorCodes;->ERROR_SERVICE_NAME_USED:I
+Landroid/nfc/ErrorCodes;->ERROR_SE_ALREADY_SELECTED:I
+Landroid/nfc/ErrorCodes;->ERROR_SE_CONNECTED:I
+Landroid/nfc/ErrorCodes;->ERROR_SOCKET_CREATION:I
+Landroid/nfc/ErrorCodes;->ERROR_SOCKET_NOT_CONNECTED:I
+Landroid/nfc/ErrorCodes;->ERROR_SOCKET_OPTIONS:I
+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
+Landroid/nfc/INfcAdapter$Stub$Proxy;->disableNdefPush()Z
+Landroid/nfc/INfcAdapter$Stub$Proxy;->dispatch(Landroid/nfc/Tag;)V
+Landroid/nfc/INfcAdapter$Stub$Proxy;->enable()Z
+Landroid/nfc/INfcAdapter$Stub$Proxy;->enableNdefPush()Z
+Landroid/nfc/INfcAdapter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/nfc/INfcAdapter$Stub$Proxy;->getNfcAdapterExtrasInterface(Ljava/lang/String;)Landroid/nfc/INfcAdapterExtras;
+Landroid/nfc/INfcAdapter$Stub$Proxy;->getNfcCardEmulationInterface()Landroid/nfc/INfcCardEmulation;
+Landroid/nfc/INfcAdapter$Stub$Proxy;->getNfcDtaInterface(Ljava/lang/String;)Landroid/nfc/INfcDta;
+Landroid/nfc/INfcAdapter$Stub$Proxy;->getNfcFCardEmulationInterface()Landroid/nfc/INfcFCardEmulation;
+Landroid/nfc/INfcAdapter$Stub$Proxy;->getNfcTagInterface()Landroid/nfc/INfcTag;
+Landroid/nfc/INfcAdapter$Stub$Proxy;->getState()I
+Landroid/nfc/INfcAdapter$Stub$Proxy;->ignore(IILandroid/nfc/ITagRemovedCallback;)Z
+Landroid/nfc/INfcAdapter$Stub$Proxy;->invokeBeam()V
+Landroid/nfc/INfcAdapter$Stub$Proxy;->invokeBeamInternal(Landroid/nfc/BeamShareData;)V
+Landroid/nfc/INfcAdapter$Stub$Proxy;->isNdefPushEnabled()Z
+Landroid/nfc/INfcAdapter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/nfc/INfcAdapter$Stub$Proxy;->pausePolling(I)V
+Landroid/nfc/INfcAdapter$Stub$Proxy;->removeNfcUnlockHandler(Landroid/nfc/INfcUnlockHandler;)V
+Landroid/nfc/INfcAdapter$Stub$Proxy;->resumePolling()V
+Landroid/nfc/INfcAdapter$Stub$Proxy;->setAppCallback(Landroid/nfc/IAppCallback;)V
+Landroid/nfc/INfcAdapter$Stub$Proxy;->setForegroundDispatch(Landroid/app/PendingIntent;[Landroid/content/IntentFilter;Landroid/nfc/TechListParcel;)V
+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;
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_addNfcUnlockHandler:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_disable:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_disableNdefPush:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_dispatch:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_enableNdefPush:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_getNfcAdapterExtrasInterface:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_getNfcCardEmulationInterface:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_getNfcDtaInterface:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_getNfcFCardEmulationInterface:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_getNfcTagInterface:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_getState:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_ignore:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_invokeBeam:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_invokeBeamInternal:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_isNdefPushEnabled:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_pausePolling:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_removeNfcUnlockHandler:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_resumePolling:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_setAppCallback:I
+Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_setForegroundDispatch:I
+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
+Landroid/nfc/INfcAdapter;->dispatch(Landroid/nfc/Tag;)V
+Landroid/nfc/INfcAdapter;->enable()Z
+Landroid/nfc/INfcAdapter;->enableNdefPush()Z
+Landroid/nfc/INfcAdapter;->getNfcAdapterExtrasInterface(Ljava/lang/String;)Landroid/nfc/INfcAdapterExtras;
+Landroid/nfc/INfcAdapter;->getNfcCardEmulationInterface()Landroid/nfc/INfcCardEmulation;
+Landroid/nfc/INfcAdapter;->getNfcDtaInterface(Ljava/lang/String;)Landroid/nfc/INfcDta;
+Landroid/nfc/INfcAdapter;->getNfcFCardEmulationInterface()Landroid/nfc/INfcFCardEmulation;
+Landroid/nfc/INfcAdapter;->getNfcTagInterface()Landroid/nfc/INfcTag;
+Landroid/nfc/INfcAdapter;->getState()I
+Landroid/nfc/INfcAdapter;->ignore(IILandroid/nfc/ITagRemovedCallback;)Z
+Landroid/nfc/INfcAdapter;->invokeBeam()V
+Landroid/nfc/INfcAdapter;->invokeBeamInternal(Landroid/nfc/BeamShareData;)V
+Landroid/nfc/INfcAdapter;->isNdefPushEnabled()Z
+Landroid/nfc/INfcAdapter;->pausePolling(I)V
+Landroid/nfc/INfcAdapter;->removeNfcUnlockHandler(Landroid/nfc/INfcUnlockHandler;)V
+Landroid/nfc/INfcAdapter;->resumePolling()V
+Landroid/nfc/INfcAdapter;->setAppCallback(Landroid/nfc/IAppCallback;)V
+Landroid/nfc/INfcAdapter;->setForegroundDispatch(Landroid/app/PendingIntent;[Landroid/content/IntentFilter;Landroid/nfc/TechListParcel;)V
+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;
+Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->getCardEmulationRoute(Ljava/lang/String;)I
+Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->getDriverName(Ljava/lang/String;)Ljava/lang/String;
+Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/nfc/INfcAdapterExtras$Stub;->TRANSACTION_authenticate:I
+Landroid/nfc/INfcAdapterExtras$Stub;->TRANSACTION_close:I
+Landroid/nfc/INfcAdapterExtras$Stub;->TRANSACTION_getCardEmulationRoute:I
+Landroid/nfc/INfcAdapterExtras$Stub;->TRANSACTION_getDriverName:I
+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;
+Landroid/nfc/INfcCardEmulation$Stub$Proxy;->getServices(ILjava/lang/String;)Ljava/util/List;
+Landroid/nfc/INfcCardEmulation$Stub$Proxy;->isDefaultServiceForAid(ILandroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/nfc/INfcCardEmulation$Stub$Proxy;->isDefaultServiceForCategory(ILandroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/nfc/INfcCardEmulation$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/nfc/INfcCardEmulation$Stub$Proxy;->registerAidGroupForService(ILandroid/content/ComponentName;Landroid/nfc/cardemulation/AidGroup;)Z
+Landroid/nfc/INfcCardEmulation$Stub$Proxy;->removeAidGroupForService(ILandroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/nfc/INfcCardEmulation$Stub$Proxy;->setDefaultForNextTap(ILandroid/content/ComponentName;)Z
+Landroid/nfc/INfcCardEmulation$Stub$Proxy;->setDefaultServiceForCategory(ILandroid/content/ComponentName;Ljava/lang/String;)Z
+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;
+Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_getAidGroupForService:I
+Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_getServices:I
+Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_isDefaultServiceForAid:I
+Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_isDefaultServiceForCategory:I
+Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_registerAidGroupForService:I
+Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_removeAidGroupForService:I
+Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_setDefaultForNextTap:I
+Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_setDefaultServiceForCategory:I
+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
+Landroid/nfc/INfcCardEmulation;->isDefaultServiceForCategory(ILandroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/nfc/INfcCardEmulation;->registerAidGroupForService(ILandroid/content/ComponentName;Landroid/nfc/cardemulation/AidGroup;)Z
+Landroid/nfc/INfcCardEmulation;->removeAidGroupForService(ILandroid/content/ComponentName;Ljava/lang/String;)Z
+Landroid/nfc/INfcCardEmulation;->setDefaultForNextTap(ILandroid/content/ComponentName;)Z
+Landroid/nfc/INfcCardEmulation;->setDefaultServiceForCategory(ILandroid/content/ComponentName;Ljava/lang/String;)Z
+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
+Landroid/nfc/INfcDta$Stub$Proxy;->disableServer()V
+Landroid/nfc/INfcDta$Stub$Proxy;->enableClient(Ljava/lang/String;III)Z
+Landroid/nfc/INfcDta$Stub$Proxy;->enableDta()V
+Landroid/nfc/INfcDta$Stub$Proxy;->enableServer(Ljava/lang/String;IIII)Z
+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;
+Landroid/nfc/INfcDta$Stub;->TRANSACTION_disableClient:I
+Landroid/nfc/INfcDta$Stub;->TRANSACTION_disableDta:I
+Landroid/nfc/INfcDta$Stub;->TRANSACTION_disableServer:I
+Landroid/nfc/INfcDta$Stub;->TRANSACTION_enableClient:I
+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
+Landroid/nfc/INfcDta;->enableClient(Ljava/lang/String;III)Z
+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
+Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->getMaxNumOfRegisterableSystemCodes()I
+Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->getNfcFServices(I)Ljava/util/List;
+Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->getNfcid2ForService(ILandroid/content/ComponentName;)Ljava/lang/String;
+Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->getSystemCodeForService(ILandroid/content/ComponentName;)Ljava/lang/String;
+Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_disableNfcFForegroundService:I
+Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_enableNfcFForegroundService:I
+Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_getMaxNumOfRegisterableSystemCodes:I
+Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_getNfcFServices:I
+Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_getNfcid2ForService:I
+Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_getSystemCodeForService:I
+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
+Landroid/nfc/INfcFCardEmulation;->getNfcFServices(I)Ljava/util/List;
+Landroid/nfc/INfcFCardEmulation;->getNfcid2ForService(ILandroid/content/ComponentName;)Ljava/lang/String;
+Landroid/nfc/INfcFCardEmulation;->getSystemCodeForService(ILandroid/content/ComponentName;)Ljava/lang/String;
+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
+Landroid/nfc/INfcTag$Stub$Proxy;->formatNdef(I[B)I
+Landroid/nfc/INfcTag$Stub$Proxy;->getExtendedLengthApdusSupported()Z
+Landroid/nfc/INfcTag$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/nfc/INfcTag$Stub$Proxy;->getMaxTransceiveLength(I)I
+Landroid/nfc/INfcTag$Stub$Proxy;->getTechList(I)[I
+Landroid/nfc/INfcTag$Stub$Proxy;->getTimeout(I)I
+Landroid/nfc/INfcTag$Stub$Proxy;->isNdef(I)Z
+Landroid/nfc/INfcTag$Stub$Proxy;->isPresent(I)Z
+Landroid/nfc/INfcTag$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/nfc/INfcTag$Stub$Proxy;->ndefIsWritable(I)Z
+Landroid/nfc/INfcTag$Stub$Proxy;->ndefMakeReadOnly(I)I
+Landroid/nfc/INfcTag$Stub$Proxy;->ndefRead(I)Landroid/nfc/NdefMessage;
+Landroid/nfc/INfcTag$Stub$Proxy;->ndefWrite(ILandroid/nfc/NdefMessage;)I
+Landroid/nfc/INfcTag$Stub$Proxy;->reconnect(I)I
+Landroid/nfc/INfcTag$Stub$Proxy;->rediscover(I)Landroid/nfc/Tag;
+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;
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_canMakeReadOnly:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_connect:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_formatNdef:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_getExtendedLengthApdusSupported:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_getMaxTransceiveLength:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_getTechList:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_getTimeout:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_isNdef:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_isPresent:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_ndefIsWritable:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_ndefMakeReadOnly:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_ndefRead:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_ndefWrite:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_reconnect:I
+Landroid/nfc/INfcTag$Stub;->TRANSACTION_rediscover:I
+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
+Landroid/nfc/INfcTag;->getExtendedLengthApdusSupported()Z
+Landroid/nfc/INfcTag;->getMaxTransceiveLength(I)I
+Landroid/nfc/INfcTag;->getTechList(I)[I
+Landroid/nfc/INfcTag;->getTimeout(I)I
+Landroid/nfc/INfcTag;->isNdef(I)Z
+Landroid/nfc/INfcTag;->isPresent(I)Z
+Landroid/nfc/INfcTag;->ndefIsWritable(I)Z
+Landroid/nfc/INfcTag;->ndefMakeReadOnly(I)I
+Landroid/nfc/INfcTag;->ndefRead(I)Landroid/nfc/NdefMessage;
+Landroid/nfc/INfcTag;->ndefWrite(ILandroid/nfc/NdefMessage;)I
+Landroid/nfc/INfcTag;->reconnect(I)I
+Landroid/nfc/INfcTag;->rediscover(I)Landroid/nfc/Tag;
+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;
+Landroid/nfc/NdefRecord;->EMPTY_BYTE_ARRAY:[B
+Landroid/nfc/NdefRecord;->ensureSanePayloadSize(J)V
+Landroid/nfc/NdefRecord;->FLAG_CF:B
+Landroid/nfc/NdefRecord;->FLAG_IL:B
+Landroid/nfc/NdefRecord;->FLAG_MB:B
+Landroid/nfc/NdefRecord;->FLAG_ME:B
+Landroid/nfc/NdefRecord;->FLAG_SR:B
+Landroid/nfc/NdefRecord;->getByteLength()I
+Landroid/nfc/NdefRecord;->MAX_PAYLOAD_SIZE:I
+Landroid/nfc/NdefRecord;->mPayload:[B
+Landroid/nfc/NdefRecord;->mTnf:S
+Landroid/nfc/NdefRecord;->mType:[B
+Landroid/nfc/NdefRecord;->parse(Ljava/nio/ByteBuffer;Z)[Landroid/nfc/NdefRecord;
+Landroid/nfc/NdefRecord;->parseWktUri()Landroid/net/Uri;
+Landroid/nfc/NdefRecord;->RTD_ANDROID_APP:[B
+Landroid/nfc/NdefRecord;->TNF_RESERVED:S
+Landroid/nfc/NdefRecord;->toUri(Z)Landroid/net/Uri;
+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
+Landroid/nfc/NfcActivityManager$NfcActivityState;->ndefMessage:Landroid/nfc/NdefMessage;
+Landroid/nfc/NfcActivityManager$NfcActivityState;->ndefMessageCallback:Landroid/nfc/NfcAdapter$CreateNdefMessageCallback;
+Landroid/nfc/NfcActivityManager$NfcActivityState;->onNdefPushCompleteCallback:Landroid/nfc/NfcAdapter$OnNdefPushCompleteCallback;
+Landroid/nfc/NfcActivityManager$NfcActivityState;->readerCallback:Landroid/nfc/NfcAdapter$ReaderCallback;
+Landroid/nfc/NfcActivityManager$NfcActivityState;->readerModeExtras:Landroid/os/Bundle;
+Landroid/nfc/NfcActivityManager$NfcActivityState;->readerModeFlags:I
+Landroid/nfc/NfcActivityManager$NfcActivityState;->resumed:Z
+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;
+Landroid/nfc/NfcActivityManager;->destroyActivityState(Landroid/app/Activity;)V
+Landroid/nfc/NfcActivityManager;->disableReaderMode(Landroid/app/Activity;)V
+Landroid/nfc/NfcActivityManager;->enableReaderMode(Landroid/app/Activity;Landroid/nfc/NfcAdapter$ReaderCallback;ILandroid/os/Bundle;)V
+Landroid/nfc/NfcActivityManager;->findActivityState(Landroid/app/Activity;)Landroid/nfc/NfcActivityManager$NfcActivityState;
+Landroid/nfc/NfcActivityManager;->findAppState(Landroid/app/Application;)Landroid/nfc/NfcActivityManager$NfcApplicationState;
+Landroid/nfc/NfcActivityManager;->findResumedActivityState()Landroid/nfc/NfcActivityManager$NfcActivityState;
+Landroid/nfc/NfcActivityManager;->getActivityState(Landroid/app/Activity;)Landroid/nfc/NfcActivityManager$NfcActivityState;
+Landroid/nfc/NfcActivityManager;->mActivities:Ljava/util/List;
+Landroid/nfc/NfcActivityManager;->mApps:Ljava/util/List;
+Landroid/nfc/NfcActivityManager;->onNdefPushComplete(B)V
+Landroid/nfc/NfcActivityManager;->onTagDiscovered(Landroid/nfc/Tag;)V
+Landroid/nfc/NfcActivityManager;->registerApplication(Landroid/app/Application;)V
+Landroid/nfc/NfcActivityManager;->requestNfcServiceCallback()V
+Landroid/nfc/NfcActivityManager;->setNdefPushContentUri(Landroid/app/Activity;[Landroid/net/Uri;)V
+Landroid/nfc/NfcActivityManager;->setNdefPushContentUriCallback(Landroid/app/Activity;Landroid/nfc/NfcAdapter$CreateBeamUrisCallback;)V
+Landroid/nfc/NfcActivityManager;->setNdefPushMessage(Landroid/app/Activity;Landroid/nfc/NdefMessage;I)V
+Landroid/nfc/NfcActivityManager;->setNdefPushMessageCallback(Landroid/app/Activity;Landroid/nfc/NfcAdapter$CreateNdefMessageCallback;I)V
+Landroid/nfc/NfcActivityManager;->setOnNdefPushCompleteCallback(Landroid/app/Activity;Landroid/nfc/NfcAdapter$OnNdefPushCompleteCallback;)V
+Landroid/nfc/NfcActivityManager;->setReaderMode(Landroid/os/Binder;ILandroid/os/Bundle;)V
+Landroid/nfc/NfcActivityManager;->TAG:Ljava/lang/String;
+Landroid/nfc/NfcActivityManager;->unregisterApplication(Landroid/app/Application;)V
+Landroid/nfc/NfcActivityManager;->verifyNfcPermission()V
+Landroid/nfc/NfcAdapter;-><init>(Landroid/content/Context;)V
+Landroid/nfc/NfcAdapter;->ACTION_HANDOVER_TRANSFER_DONE:Ljava/lang/String;
+Landroid/nfc/NfcAdapter;->ACTION_HANDOVER_TRANSFER_STARTED:Ljava/lang/String;
+Landroid/nfc/NfcAdapter;->ACTION_TAG_LEFT_FIELD:Ljava/lang/String;
+Landroid/nfc/NfcAdapter;->disableForegroundDispatchInternal(Landroid/app/Activity;Z)V
+Landroid/nfc/NfcAdapter;->dispatch(Landroid/nfc/Tag;)V
+Landroid/nfc/NfcAdapter;->enforceResumed(Landroid/app/Activity;)V
+Landroid/nfc/NfcAdapter;->EXTRA_HANDOVER_TRANSFER_STATUS:Ljava/lang/String;
+Landroid/nfc/NfcAdapter;->EXTRA_HANDOVER_TRANSFER_URI:Ljava/lang/String;
+Landroid/nfc/NfcAdapter;->getCardEmulationService()Landroid/nfc/INfcCardEmulation;
+Landroid/nfc/NfcAdapter;->getNfcDtaInterface()Landroid/nfc/INfcDta;
+Landroid/nfc/NfcAdapter;->getNfcFCardEmulationService()Landroid/nfc/INfcFCardEmulation;
+Landroid/nfc/NfcAdapter;->getSdkVersion()I
+Landroid/nfc/NfcAdapter;->getServiceInterface()Landroid/nfc/INfcAdapter;
+Landroid/nfc/NfcAdapter;->getTagService()Landroid/nfc/INfcTag;
+Landroid/nfc/NfcAdapter;->HANDOVER_TRANSFER_STATUS_FAILURE:I
+Landroid/nfc/NfcAdapter;->HANDOVER_TRANSFER_STATUS_SUCCESS:I
+Landroid/nfc/NfcAdapter;->hasNfcFeature()Z
+Landroid/nfc/NfcAdapter;->hasNfcHceFeature()Z
+Landroid/nfc/NfcAdapter;->invokeBeam(Landroid/nfc/BeamShareData;)Z
+Landroid/nfc/NfcAdapter;->mContext:Landroid/content/Context;
+Landroid/nfc/NfcAdapter;->mForegroundDispatchListener:Landroid/app/OnActivityPausedListener;
+Landroid/nfc/NfcAdapter;->mLock:Ljava/lang/Object;
+Landroid/nfc/NfcAdapter;->mNfcActivityManager:Landroid/nfc/NfcActivityManager;
+Landroid/nfc/NfcAdapter;->mNfcUnlockHandlers:Ljava/util/HashMap;
+Landroid/nfc/NfcAdapter;->mTagRemovedListener:Landroid/nfc/ITagRemovedCallback;
+Landroid/nfc/NfcAdapter;->pausePolling(I)V
+Landroid/nfc/NfcAdapter;->resumePolling()V
+Landroid/nfc/NfcAdapter;->sCardEmulationService:Landroid/nfc/INfcCardEmulation;
+Landroid/nfc/NfcAdapter;->setP2pModes(II)V
+Landroid/nfc/NfcAdapter;->sHasNfcFeature:Z
+Landroid/nfc/NfcAdapter;->sIsInitialized:Z
+Landroid/nfc/NfcAdapter;->sNfcAdapters:Ljava/util/HashMap;
+Landroid/nfc/NfcAdapter;->sNfcFCardEmulationService:Landroid/nfc/INfcFCardEmulation;
+Landroid/nfc/NfcAdapter;->sNullContextNfcAdapter:Landroid/nfc/NfcAdapter;
+Landroid/nfc/NfcAdapter;->sTagService:Landroid/nfc/INfcTag;
+Landroid/nfc/NfcAdapter;->TAG:Ljava/lang/String;
+Landroid/nfc/NfcEvent;-><init>(Landroid/nfc/NfcAdapter;B)V
+Landroid/nfc/NfcManager;->mAdapter:Landroid/nfc/NfcAdapter;
+Landroid/nfc/Tag;-><init>([B[I[Landroid/os/Bundle;ILandroid/nfc/INfcTag;)V
+Landroid/nfc/Tag;->createMockTag([B[I[Landroid/os/Bundle;)Landroid/nfc/Tag;
+Landroid/nfc/Tag;->generateTechStringList([I)[Ljava/lang/String;
+Landroid/nfc/Tag;->getConnectedTechnology()I
+Landroid/nfc/Tag;->getTechCodeList()[I
+Landroid/nfc/Tag;->getTechCodesFromStrings([Ljava/lang/String;)[I
+Landroid/nfc/Tag;->getTechExtras(I)Landroid/os/Bundle;
+Landroid/nfc/Tag;->getTechStringToCodeMap()Ljava/util/HashMap;
+Landroid/nfc/Tag;->hasTech(I)Z
+Landroid/nfc/Tag;->mConnectedTechnology:I
+Landroid/nfc/Tag;->mServiceHandle:I
+Landroid/nfc/Tag;->mTagService:Landroid/nfc/INfcTag;
+Landroid/nfc/Tag;->mTechExtras:[Landroid/os/Bundle;
+Landroid/nfc/Tag;->mTechList:[I
+Landroid/nfc/Tag;->mTechStringList:[Ljava/lang/String;
+Landroid/nfc/Tag;->readBytesWithNull(Landroid/os/Parcel;)[B
+Landroid/nfc/Tag;->rediscover()Landroid/nfc/Tag;
+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
+Landroid/nfc/tech/BasicTagTechnology;->mIsConnected:Z
+Landroid/nfc/tech/BasicTagTechnology;->mSelectedTechnology:I
+Landroid/nfc/tech/BasicTagTechnology;->mTag:Landroid/nfc/Tag;
+Landroid/nfc/tech/BasicTagTechnology;->reconnect()V
+Landroid/nfc/tech/BasicTagTechnology;->TAG:Ljava/lang/String;
+Landroid/nfc/tech/BasicTagTechnology;->transceive([BZ)[B
+Landroid/nfc/tech/IsoDep;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/IsoDep;->EXTRA_HIST_BYTES:Ljava/lang/String;
+Landroid/nfc/tech/IsoDep;->EXTRA_HI_LAYER_RESP:Ljava/lang/String;
+Landroid/nfc/tech/IsoDep;->mHiLayerResponse:[B
+Landroid/nfc/tech/IsoDep;->mHistBytes:[B
+Landroid/nfc/tech/IsoDep;->TAG:Ljava/lang/String;
+Landroid/nfc/tech/MifareClassic;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/MifareClassic;->authenticate(I[BZ)Z
+Landroid/nfc/tech/MifareClassic;->isEmulated()Z
+Landroid/nfc/tech/MifareClassic;->MAX_BLOCK_COUNT:I
+Landroid/nfc/tech/MifareClassic;->MAX_SECTOR_COUNT:I
+Landroid/nfc/tech/MifareClassic;->mIsEmulated:Z
+Landroid/nfc/tech/MifareClassic;->mSize:I
+Landroid/nfc/tech/MifareClassic;->mType:I
+Landroid/nfc/tech/MifareClassic;->TAG:Ljava/lang/String;
+Landroid/nfc/tech/MifareClassic;->validateBlock(I)V
+Landroid/nfc/tech/MifareClassic;->validateSector(I)V
+Landroid/nfc/tech/MifareClassic;->validateValueOperand(I)V
+Landroid/nfc/tech/MifareUltralight;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/MifareUltralight;->EXTRA_IS_UL_C:Ljava/lang/String;
+Landroid/nfc/tech/MifareUltralight;->MAX_PAGE_COUNT:I
+Landroid/nfc/tech/MifareUltralight;->mType:I
+Landroid/nfc/tech/MifareUltralight;->NXP_MANUFACTURER_ID:I
+Landroid/nfc/tech/MifareUltralight;->TAG:Ljava/lang/String;
+Landroid/nfc/tech/MifareUltralight;->validatePageIndex(I)V
+Landroid/nfc/tech/Ndef;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/Ndef;->EXTRA_NDEF_CARDSTATE:Ljava/lang/String;
+Landroid/nfc/tech/Ndef;->EXTRA_NDEF_MAXLENGTH:Ljava/lang/String;
+Landroid/nfc/tech/Ndef;->EXTRA_NDEF_MSG:Ljava/lang/String;
+Landroid/nfc/tech/Ndef;->EXTRA_NDEF_TYPE:Ljava/lang/String;
+Landroid/nfc/tech/Ndef;->ICODE_SLI:Ljava/lang/String;
+Landroid/nfc/tech/Ndef;->mCardState:I
+Landroid/nfc/tech/Ndef;->mMaxNdefSize:I
+Landroid/nfc/tech/Ndef;->mNdefMsg:Landroid/nfc/NdefMessage;
+Landroid/nfc/tech/Ndef;->mNdefType:I
+Landroid/nfc/tech/Ndef;->NDEF_MODE_READ_ONLY:I
+Landroid/nfc/tech/Ndef;->NDEF_MODE_READ_WRITE:I
+Landroid/nfc/tech/Ndef;->NDEF_MODE_UNKNOWN:I
+Landroid/nfc/tech/Ndef;->TAG:Ljava/lang/String;
+Landroid/nfc/tech/Ndef;->TYPE_1:I
+Landroid/nfc/tech/Ndef;->TYPE_2:I
+Landroid/nfc/tech/Ndef;->TYPE_3:I
+Landroid/nfc/tech/Ndef;->TYPE_4:I
+Landroid/nfc/tech/Ndef;->TYPE_ICODE_SLI:I
+Landroid/nfc/tech/Ndef;->TYPE_MIFARE_CLASSIC:I
+Landroid/nfc/tech/Ndef;->TYPE_OTHER:I
+Landroid/nfc/tech/Ndef;->UNKNOWN:Ljava/lang/String;
+Landroid/nfc/tech/NdefFormatable;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/NdefFormatable;->format(Landroid/nfc/NdefMessage;Z)V
+Landroid/nfc/tech/NdefFormatable;->TAG:Ljava/lang/String;
+Landroid/nfc/tech/NfcA;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/NfcA;->EXTRA_ATQA:Ljava/lang/String;
+Landroid/nfc/tech/NfcA;->EXTRA_SAK:Ljava/lang/String;
+Landroid/nfc/tech/NfcA;->mAtqa:[B
+Landroid/nfc/tech/NfcA;->mSak:S
+Landroid/nfc/tech/NfcA;->TAG:Ljava/lang/String;
+Landroid/nfc/tech/NfcB;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/NfcB;->EXTRA_APPDATA:Ljava/lang/String;
+Landroid/nfc/tech/NfcB;->EXTRA_PROTINFO:Ljava/lang/String;
+Landroid/nfc/tech/NfcB;->mAppData:[B
+Landroid/nfc/tech/NfcB;->mProtInfo:[B
+Landroid/nfc/tech/NfcBarcode;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/NfcBarcode;->EXTRA_BARCODE_TYPE:Ljava/lang/String;
+Landroid/nfc/tech/NfcBarcode;->mType:I
+Landroid/nfc/tech/NfcF;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/NfcF;->EXTRA_PMM:Ljava/lang/String;
+Landroid/nfc/tech/NfcF;->EXTRA_SC:Ljava/lang/String;
+Landroid/nfc/tech/NfcF;->mManufacturer:[B
+Landroid/nfc/tech/NfcF;->mSystemCode:[B
+Landroid/nfc/tech/NfcF;->TAG:Ljava/lang/String;
+Landroid/nfc/tech/NfcV;-><init>(Landroid/nfc/Tag;)V
+Landroid/nfc/tech/NfcV;->EXTRA_DSFID:Ljava/lang/String;
+Landroid/nfc/tech/NfcV;->EXTRA_RESP_FLAGS:Ljava/lang/String;
+Landroid/nfc/tech/NfcV;->mDsfId:B
+Landroid/nfc/tech/NfcV;->mRespFlags:B
+Landroid/nfc/tech/TagTechnology;->ISO_DEP:I
+Landroid/nfc/tech/TagTechnology;->MIFARE_CLASSIC:I
+Landroid/nfc/tech/TagTechnology;->MIFARE_ULTRALIGHT:I
+Landroid/nfc/tech/TagTechnology;->NDEF:I
+Landroid/nfc/tech/TagTechnology;->NDEF_FORMATABLE:I
+Landroid/nfc/tech/TagTechnology;->NFC_A:I
+Landroid/nfc/tech/TagTechnology;->NFC_B:I
+Landroid/nfc/tech/TagTechnology;->NFC_BARCODE:I
+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
+Landroid/nfc/TransceiveResult;->mResponseData:[B
+Landroid/nfc/TransceiveResult;->mResult:I
+Landroid/nfc/TransceiveResult;->RESULT_EXCEEDED_LENGTH:I
+Landroid/nfc/TransceiveResult;->RESULT_FAILURE:I
+Landroid/nfc/TransceiveResult;->RESULT_SUCCESS:I
+Landroid/nfc/TransceiveResult;->RESULT_TAGLOST:I
+Landroid/opengl/EGL14;->eglCreatePbufferFromClientBuffer(Landroid/opengl/EGLDisplay;IJLandroid/opengl/EGLConfig;[II)Landroid/opengl/EGLSurface;
+Landroid/opengl/EGL14;->_eglCreateWindowSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface;
+Landroid/opengl/EGL14;->_eglCreateWindowSurfaceTexture(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface;
+Landroid/opengl/EGL14;->_nativeClassInit()V
+Landroid/opengl/EGLConfig;-><init>(J)V
+Landroid/opengl/EGLContext;-><init>(J)V
+Landroid/opengl/EGLDisplay;-><init>(J)V
+Landroid/opengl/EGLExt;->_nativeClassInit()V
+Landroid/opengl/EGLObjectHandle;->mHandle:J
+Landroid/opengl/EGLSurface;-><init>(J)V
+Landroid/opengl/ETC1Util$ETC1Texture;->mData:Ljava/nio/ByteBuffer;
+Landroid/opengl/ETC1Util$ETC1Texture;->mHeight:I
+Landroid/opengl/ETC1Util$ETC1Texture;->mWidth:I
+Landroid/opengl/GLES10;->glColorPointerBounds(IIILjava/nio/Buffer;I)V
+Landroid/opengl/GLES10;->glNormalPointerBounds(IILjava/nio/Buffer;I)V
+Landroid/opengl/GLES10;->glTexCoordPointerBounds(IIILjava/nio/Buffer;I)V
+Landroid/opengl/GLES10;->glVertexPointerBounds(IIILjava/nio/Buffer;I)V
+Landroid/opengl/GLES10;->_colorPointer:Ljava/nio/Buffer;
+Landroid/opengl/GLES10;->_nativeClassInit()V
+Landroid/opengl/GLES10;->_normalPointer:Ljava/nio/Buffer;
+Landroid/opengl/GLES10;->_texCoordPointer:Ljava/nio/Buffer;
+Landroid/opengl/GLES10;->_vertexPointer:Ljava/nio/Buffer;
+Landroid/opengl/GLES10Ext;->_nativeClassInit()V
+Landroid/opengl/GLES11;->glPointSizePointerOESBounds(IILjava/nio/Buffer;I)V
+Landroid/opengl/GLES11;->_nativeClassInit()V
+Landroid/opengl/GLES11;->_pointSizePointerOES:Ljava/nio/Buffer;
+Landroid/opengl/GLES11Ext;->glMatrixIndexPointerOESBounds(IIILjava/nio/Buffer;I)V
+Landroid/opengl/GLES11Ext;->glWeightPointerOESBounds(IIILjava/nio/Buffer;I)V
+Landroid/opengl/GLES11Ext;->GL_BYTE:I
+Landroid/opengl/GLES11Ext;->GL_FIXED:I
+Landroid/opengl/GLES11Ext;->GL_FLOAT:I
+Landroid/opengl/GLES11Ext;->GL_SHORT:I
+Landroid/opengl/GLES11Ext;->_matrixIndexPointerOES:Ljava/nio/Buffer;
+Landroid/opengl/GLES11Ext;->_nativeClassInit()V
+Landroid/opengl/GLES20;->glGetShaderSource(IILjava/nio/IntBuffer;B)V
+Landroid/opengl/GLES20;->glVertexAttribPointerBounds(IIIZILjava/nio/Buffer;I)V
+Landroid/opengl/GLES20;->_nativeClassInit()V
+Landroid/opengl/GLES30;->glVertexAttribIPointerBounds(IIIILjava/nio/Buffer;I)V
+Landroid/opengl/GLES30;->_nativeClassInit()V
+Landroid/opengl/GLES31;-><init>()V
+Landroid/opengl/GLES31;->_nativeClassInit()V
+Landroid/opengl/GLES31Ext;-><init>()V
+Landroid/opengl/GLES31Ext;->_nativeClassInit()V
+Landroid/opengl/GLES32;-><init>()V
+Landroid/opengl/GLES32;->_nativeClassInit()V
+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
+Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->mBlueSize:I
+Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->mDepthSize:I
+Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->mGreenSize:I
+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
+Landroid/opengl/GLSurfaceView$EglHelper;->destroySurface()V
+Landroid/opengl/GLSurfaceView$EglHelper;->destroySurfaceImp()V
+Landroid/opengl/GLSurfaceView$EglHelper;->finish()V
+Landroid/opengl/GLSurfaceView$EglHelper;->formatEglError(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/opengl/GLSurfaceView$EglHelper;->logEglErrorAsWarning(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/opengl/GLSurfaceView$EglHelper;->mEgl:Ljavax/microedition/khronos/egl/EGL10;
+Landroid/opengl/GLSurfaceView$EglHelper;->mEglConfig:Ljavax/microedition/khronos/egl/EGLConfig;
+Landroid/opengl/GLSurfaceView$EglHelper;->mEglDisplay:Ljavax/microedition/khronos/egl/EGLDisplay;
+Landroid/opengl/GLSurfaceView$EglHelper;->mEglSurface:Ljavax/microedition/khronos/egl/EGLSurface;
+Landroid/opengl/GLSurfaceView$EglHelper;->mGLSurfaceViewWeakRef:Ljava/lang/ref/WeakReference;
+Landroid/opengl/GLSurfaceView$EglHelper;->start()V
+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
+Landroid/opengl/GLSurfaceView$GLThread;->guardedRun()V
+Landroid/opengl/GLSurfaceView$GLThread;->mEventQueue:Ljava/util/ArrayList;
+Landroid/opengl/GLSurfaceView$GLThread;->mExited:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mFinishDrawingRunnable:Ljava/lang/Runnable;
+Landroid/opengl/GLSurfaceView$GLThread;->mFinishedCreatingEglSurface:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mGLSurfaceViewWeakRef:Ljava/lang/ref/WeakReference;
+Landroid/opengl/GLSurfaceView$GLThread;->mHasSurface:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mHaveEglContext:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mHaveEglSurface:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mHeight:I
+Landroid/opengl/GLSurfaceView$GLThread;->mPaused:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mRenderComplete:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mRenderMode:I
+Landroid/opengl/GLSurfaceView$GLThread;->mRequestPaused:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mRequestRender:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mShouldExit:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mShouldReleaseEglContext:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mSizeChanged:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mSurfaceIsBad:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mWaitingForSurface:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mWantRenderNotification:Z
+Landroid/opengl/GLSurfaceView$GLThread;->mWidth:I
+Landroid/opengl/GLSurfaceView$GLThread;->onPause()V
+Landroid/opengl/GLSurfaceView$GLThread;->onResume()V
+Landroid/opengl/GLSurfaceView$GLThread;->onWindowResize(II)V
+Landroid/opengl/GLSurfaceView$GLThread;->queueEvent(Ljava/lang/Runnable;)V
+Landroid/opengl/GLSurfaceView$GLThread;->readyToDraw()Z
+Landroid/opengl/GLSurfaceView$GLThread;->requestExitAndWait()V
+Landroid/opengl/GLSurfaceView$GLThread;->requestReleaseEglContextLocked()V
+Landroid/opengl/GLSurfaceView$GLThread;->requestRender()V
+Landroid/opengl/GLSurfaceView$GLThread;->requestRenderAndNotify(Ljava/lang/Runnable;)V
+Landroid/opengl/GLSurfaceView$GLThread;->setRenderMode(I)V
+Landroid/opengl/GLSurfaceView$GLThread;->stopEglContextLocked()V
+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
+Landroid/opengl/GLSurfaceView;->LOG_EGL:Z
+Landroid/opengl/GLSurfaceView;->LOG_PAUSE_RESUME:Z
+Landroid/opengl/GLSurfaceView;->LOG_RENDERER:Z
+Landroid/opengl/GLSurfaceView;->LOG_RENDERER_DRAW_FRAME:Z
+Landroid/opengl/GLSurfaceView;->LOG_SURFACE:Z
+Landroid/opengl/GLSurfaceView;->LOG_THREADS:Z
+Landroid/opengl/GLSurfaceView;->mDebugFlags:I
+Landroid/opengl/GLSurfaceView;->mDetached:Z
+Landroid/opengl/GLSurfaceView;->mEGLConfigChooser:Landroid/opengl/GLSurfaceView$EGLConfigChooser;
+Landroid/opengl/GLSurfaceView;->mEGLContextClientVersion:I
+Landroid/opengl/GLSurfaceView;->mEGLContextFactory:Landroid/opengl/GLSurfaceView$EGLContextFactory;
+Landroid/opengl/GLSurfaceView;->mEGLWindowSurfaceFactory:Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;
+Landroid/opengl/GLSurfaceView;->mGLWrapper:Landroid/opengl/GLSurfaceView$GLWrapper;
+Landroid/opengl/GLSurfaceView;->mPreserveEGLContextOnPause:Z
+Landroid/opengl/GLSurfaceView;->mThisWeakRef:Ljava/lang/ref/WeakReference;
+Landroid/opengl/GLSurfaceView;->sGLThreadManager:Landroid/opengl/GLSurfaceView$GLThreadManager;
+Landroid/opengl/GLSurfaceView;->TAG:Ljava/lang/String;
+Landroid/opengl/GLU;->sScratch:[F
+Landroid/opengl/GLUtils;-><init>()V
+Landroid/opengl/GLUtils;->native_getInternalFormat(Landroid/graphics/Bitmap;)I
+Landroid/opengl/GLUtils;->native_getType(Landroid/graphics/Bitmap;)I
+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
+Landroid/os/AsyncTask;-><init>(Landroid/os/Looper;)V
+Landroid/os/AsyncTask;->CORE_POOL_SIZE:I
+Landroid/os/AsyncTask;->CPU_COUNT:I
+Landroid/os/AsyncTask;->finish(Ljava/lang/Object;)V
+Landroid/os/AsyncTask;->getHandler()Landroid/os/Handler;
+Landroid/os/AsyncTask;->getMainHandler()Landroid/os/Handler;
+Landroid/os/AsyncTask;->KEEP_ALIVE_SECONDS:I
+Landroid/os/AsyncTask;->LOG_TAG:Ljava/lang/String;
+Landroid/os/AsyncTask;->MAXIMUM_POOL_SIZE:I
+Landroid/os/AsyncTask;->mCancelled:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/os/AsyncTask;->MESSAGE_POST_PROGRESS:I
+Landroid/os/AsyncTask;->MESSAGE_POST_RESULT:I
+Landroid/os/AsyncTask;->mHandler:Landroid/os/Handler;
+Landroid/os/AsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/os/AsyncTask;->postResultIfNotInvoked(Ljava/lang/Object;)V
+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
+Landroid/os/BaseBundle;-><init>(I)V
+Landroid/os/BaseBundle;-><init>(Landroid/os/BaseBundle;)V
+Landroid/os/BaseBundle;-><init>(Landroid/os/Parcel;)V
+Landroid/os/BaseBundle;-><init>(Landroid/os/Parcel;I)V
+Landroid/os/BaseBundle;-><init>(Ljava/lang/ClassLoader;)V
+Landroid/os/BaseBundle;-><init>(Ljava/lang/ClassLoader;I)V
+Landroid/os/BaseBundle;-><init>(Z)V
+Landroid/os/BaseBundle;->BUNDLE_MAGIC:I
+Landroid/os/BaseBundle;->BUNDLE_MAGIC_NATIVE:I
+Landroid/os/BaseBundle;->copyInternal(Landroid/os/BaseBundle;Z)V
+Landroid/os/BaseBundle;->DEBUG:Z
+Landroid/os/BaseBundle;->deepcopyArrayList(Ljava/util/ArrayList;)Ljava/util/ArrayList;
+Landroid/os/BaseBundle;->deepCopyValue(Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/os/BaseBundle;->dumpStats(Lcom/android/internal/util/IndentingPrintWriter;Landroid/os/BaseBundle;)V
+Landroid/os/BaseBundle;->dumpStats(Lcom/android/internal/util/IndentingPrintWriter;Landroid/util/SparseArray;)V
+Landroid/os/BaseBundle;->dumpStats(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/os/BaseBundle;->FLAG_DEFUSABLE:I
+Landroid/os/BaseBundle;->getByte(Ljava/lang/String;)B
+Landroid/os/BaseBundle;->getByte(Ljava/lang/String;B)Ljava/lang/Byte;
+Landroid/os/BaseBundle;->getByteArray(Ljava/lang/String;)[B
+Landroid/os/BaseBundle;->getChar(Ljava/lang/String;)C
+Landroid/os/BaseBundle;->getChar(Ljava/lang/String;C)C
+Landroid/os/BaseBundle;->getCharArray(Ljava/lang/String;)[C
+Landroid/os/BaseBundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence;
+Landroid/os/BaseBundle;->getCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/os/BaseBundle;->getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence;
+Landroid/os/BaseBundle;->getCharSequenceArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/os/BaseBundle;->getClassLoader()Ljava/lang/ClassLoader;
+Landroid/os/BaseBundle;->getFloat(Ljava/lang/String;)F
+Landroid/os/BaseBundle;->getFloat(Ljava/lang/String;F)F
+Landroid/os/BaseBundle;->getFloatArray(Ljava/lang/String;)[F
+Landroid/os/BaseBundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/os/BaseBundle;->getMap()Landroid/util/ArrayMap;
+Landroid/os/BaseBundle;->getPairValue()Ljava/lang/String;
+Landroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
+Landroid/os/BaseBundle;->getShort(Ljava/lang/String;)S
+Landroid/os/BaseBundle;->getShort(Ljava/lang/String;S)S
+Landroid/os/BaseBundle;->getShortArray(Ljava/lang/String;)[S
+Landroid/os/BaseBundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/os/BaseBundle;->initializeFromParcelLocked(Landroid/os/Parcel;ZZ)V
+Landroid/os/BaseBundle;->isEmptyParcel()Z
+Landroid/os/BaseBundle;->isEmptyParcel(Landroid/os/Parcel;)Z
+Landroid/os/BaseBundle;->kindofEquals(Landroid/os/BaseBundle;)Z
+Landroid/os/BaseBundle;->kindofEquals(Landroid/os/BaseBundle;Landroid/os/BaseBundle;)Z
+Landroid/os/BaseBundle;->LOG_DEFUSABLE:Z
+Landroid/os/BaseBundle;->maybeIsEmpty()Z
+Landroid/os/BaseBundle;->mClassLoader:Ljava/lang/ClassLoader;
+Landroid/os/BaseBundle;->mFlags:I
+Landroid/os/BaseBundle;->mParcelledByNative:Z
+Landroid/os/BaseBundle;->putAll(Landroid/util/ArrayMap;)V
+Landroid/os/BaseBundle;->putByte(Ljava/lang/String;B)V
+Landroid/os/BaseBundle;->putByteArray(Ljava/lang/String;[B)V
+Landroid/os/BaseBundle;->putChar(Ljava/lang/String;C)V
+Landroid/os/BaseBundle;->putCharArray(Ljava/lang/String;[C)V
+Landroid/os/BaseBundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V
+Landroid/os/BaseBundle;->putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V
+Landroid/os/BaseBundle;->putCharSequenceArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
+Landroid/os/BaseBundle;->putFloat(Ljava/lang/String;F)V
+Landroid/os/BaseBundle;->putFloatArray(Ljava/lang/String;[F)V
+Landroid/os/BaseBundle;->putIntegerArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
+Landroid/os/BaseBundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
+Landroid/os/BaseBundle;->putShort(Ljava/lang/String;S)V
+Landroid/os/BaseBundle;->putShortArray(Ljava/lang/String;[S)V
+Landroid/os/BaseBundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
+Landroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;)V
+Landroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;I)V
+Landroid/os/BaseBundle;->recycleParcel(Landroid/os/Parcel;)V
+Landroid/os/BaseBundle;->setClassLoader(Ljava/lang/ClassLoader;)V
+Landroid/os/BaseBundle;->setShouldDefuse(Z)V
+Landroid/os/BaseBundle;->sShouldDefuse:Z
+Landroid/os/BaseBundle;->TAG:Ljava/lang/String;
+Landroid/os/BaseBundle;->typeWarning(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/ClassCastException;)V
+Landroid/os/BaseBundle;->typeWarning(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/ClassCastException;)V
+Landroid/os/BaseBundle;->writeToParcelInner(Landroid/os/Parcel;I)V
+Landroid/os/BatteryManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Landroid/os/IBatteryPropertiesRegistrar;)V
+Landroid/os/BatteryManager;->BATTERY_PLUGGED_ANY:I
+Landroid/os/BatteryManager;->EXTRA_SEQUENCE:Ljava/lang/String;
+Landroid/os/BatteryManager;->isPlugWired(I)Z
+Landroid/os/BatteryManager;->mBatteryPropertiesRegistrar:Landroid/os/IBatteryPropertiesRegistrar;
+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
+Landroid/os/BatteryManagerInternal;->getBatteryLevel()I
+Landroid/os/BatteryManagerInternal;->getBatteryLevelLow()Z
+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
+Landroid/os/BatteryProperties;->batteryFullCharge:I
+Landroid/os/BatteryProperties;->batteryHealth:I
+Landroid/os/BatteryProperties;->batteryLevel:I
+Landroid/os/BatteryProperties;->batteryPresent:Z
+Landroid/os/BatteryProperties;->batteryStatus:I
+Landroid/os/BatteryProperties;->batteryTechnology:Ljava/lang/String;
+Landroid/os/BatteryProperties;->batteryTemperature:I
+Landroid/os/BatteryProperties;->batteryVoltage:I
+Landroid/os/BatteryProperties;->chargerAcOnline:Z
+Landroid/os/BatteryProperties;->chargerUsbOnline:Z
+Landroid/os/BatteryProperties;->chargerWirelessOnline:Z
+Landroid/os/BatteryProperties;->CREATOR:Landroid/os/Parcelable$Creator;
+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;
+Landroid/os/BatteryProperty;->getLong()J
+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
+Landroid/os/BatteryStats$BitDescription;->name:Ljava/lang/String;
+Landroid/os/BatteryStats$BitDescription;->shift:I
+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;
+Landroid/os/BatteryStats$ControllerActivityCounter;->getRxTimeCounter()Landroid/os/BatteryStats$LongCounter;
+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
+Landroid/os/BatteryStats$HistoryItem;->CMD_CURRENT_TIME:B
+Landroid/os/BatteryStats$HistoryItem;->CMD_NULL:B
+Landroid/os/BatteryStats$HistoryItem;->CMD_OVERFLOW:B
+Landroid/os/BatteryStats$HistoryItem;->CMD_RESET:B
+Landroid/os/BatteryStats$HistoryItem;->CMD_SHUTDOWN:B
+Landroid/os/BatteryStats$HistoryItem;->CMD_START:B
+Landroid/os/BatteryStats$HistoryItem;->currentTime:J
+Landroid/os/BatteryStats$HistoryItem;->eventCode:I
+Landroid/os/BatteryStats$HistoryItem;->eventTag:Landroid/os/BatteryStats$HistoryTag;
+Landroid/os/BatteryStats$HistoryItem;->EVENT_ACTIVE:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_ALARM:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_ALARM_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_ALARM_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_COLLECT_EXTERNAL_STATS:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_CONNECTIVITY_CHANGED:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_COUNT:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_FLAG_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_FLAG_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_FOREGROUND:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_FOREGROUND_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_FOREGROUND_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_JOB:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_JOB_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_JOB_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_LONG_WAKE_LOCK:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_LONG_WAKE_LOCK_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_LONG_WAKE_LOCK_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_NONE:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_PACKAGE_ACTIVE:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_PACKAGE_INACTIVE:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_PACKAGE_INSTALLED:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_PACKAGE_UNINSTALLED:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_PROC:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_PROC_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_PROC_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_SCREEN_WAKE_UP:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_SYNC:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_SYNC_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_SYNC_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_TEMP_WHITELIST:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_TEMP_WHITELIST_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_TEMP_WHITELIST_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_TOP:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_TOP_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_TOP_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_TYPE_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_USER_FOREGROUND:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_USER_FOREGROUND_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_USER_FOREGROUND_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_USER_RUNNING:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_USER_RUNNING_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_USER_RUNNING_START:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_WAKEUP_AP:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_WAKE_LOCK:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_WAKE_LOCK_FINISH:I
+Landroid/os/BatteryStats$HistoryItem;->EVENT_WAKE_LOCK_START:I
+Landroid/os/BatteryStats$HistoryItem;->isDeltaData()Z
+Landroid/os/BatteryStats$HistoryItem;->localEventTag:Landroid/os/BatteryStats$HistoryTag;
+Landroid/os/BatteryStats$HistoryItem;->localWakelockTag:Landroid/os/BatteryStats$HistoryTag;
+Landroid/os/BatteryStats$HistoryItem;->localWakeReasonTag:Landroid/os/BatteryStats$HistoryTag;
+Landroid/os/BatteryStats$HistoryItem;->MOST_INTERESTING_STATES2:I
+Landroid/os/BatteryStats$HistoryItem;->MOST_INTERESTING_STATES:I
+Landroid/os/BatteryStats$HistoryItem;->numReadInts:I
+Landroid/os/BatteryStats$HistoryItem;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/os/BatteryStats$HistoryItem;->sameNonEvent(Landroid/os/BatteryStats$HistoryItem;)Z
+Landroid/os/BatteryStats$HistoryItem;->SETTLE_TO_ZERO_STATES2:I
+Landroid/os/BatteryStats$HistoryItem;->SETTLE_TO_ZERO_STATES:I
+Landroid/os/BatteryStats$HistoryItem;->setToCommon(Landroid/os/BatteryStats$HistoryItem;)V
+Landroid/os/BatteryStats$HistoryItem;->STATE2_BLUETOOTH_ON_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_BLUETOOTH_SCAN_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_CAMERA_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_CELLULAR_HIGH_TX_POWER_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_CHARGING_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_DEVICE_IDLE_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_DEVICE_IDLE_SHIFT:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_FLASHLIGHT_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_GPS_SIGNAL_QUALITY_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_GPS_SIGNAL_QUALITY_SHIFT:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_PHONE_IN_CALL_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_POWER_SAVE_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_USB_DATA_LINK_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_VIDEO_ON_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_WIFI_ON_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_WIFI_RUNNING_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_WIFI_SIGNAL_STRENGTH_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_WIFI_SIGNAL_STRENGTH_SHIFT:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_WIFI_SUPPL_STATE_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->STATE2_WIFI_SUPPL_STATE_SHIFT:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_AUDIO_ON_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_BATTERY_PLUGGED_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_BRIGHTNESS_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_BRIGHTNESS_SHIFT:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_CPU_RUNNING_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_DATA_CONNECTION_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_DATA_CONNECTION_SHIFT:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_GPS_ON_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_MOBILE_RADIO_ACTIVE_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_PHONE_SCANNING_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_PHONE_SIGNAL_STRENGTH_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_PHONE_SIGNAL_STRENGTH_SHIFT:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_PHONE_STATE_MASK:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_PHONE_STATE_SHIFT:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_RESERVED_0:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_SCREEN_DOZE_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_SCREEN_ON_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_SENSOR_ON_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_WAKE_LOCK_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_WIFI_FULL_LOCK_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_WIFI_MULTICAST_ON_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_WIFI_RADIO_ACTIVE_FLAG:I
+Landroid/os/BatteryStats$HistoryItem;->STATE_WIFI_SCAN_FLAG:I
+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
+Landroid/os/BatteryStats$HistoryPrinter;->oldHealth:I
+Landroid/os/BatteryStats$HistoryPrinter;->oldLevel:I
+Landroid/os/BatteryStats$HistoryPrinter;->oldPlug:I
+Landroid/os/BatteryStats$HistoryPrinter;->oldState2:I
+Landroid/os/BatteryStats$HistoryPrinter;->oldState:I
+Landroid/os/BatteryStats$HistoryPrinter;->oldStatus:I
+Landroid/os/BatteryStats$HistoryPrinter;->oldTemp:I
+Landroid/os/BatteryStats$HistoryPrinter;->oldVolt:I
+Landroid/os/BatteryStats$HistoryPrinter;->printNextItem(Landroid/os/BatteryStats$HistoryItem;JZZ)Ljava/lang/String;
+Landroid/os/BatteryStats$HistoryPrinter;->printNextItem(Landroid/util/proto/ProtoOutputStream;Landroid/os/BatteryStats$HistoryItem;JZ)V
+Landroid/os/BatteryStats$HistoryPrinter;->printNextItem(Ljava/io/PrintWriter;Landroid/os/BatteryStats$HistoryItem;JZZ)V
+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
+Landroid/os/BatteryStats$HistoryStepDetails;->appCpuSTime3:I
+Landroid/os/BatteryStats$HistoryStepDetails;->appCpuUid1:I
+Landroid/os/BatteryStats$HistoryStepDetails;->appCpuUid2:I
+Landroid/os/BatteryStats$HistoryStepDetails;->appCpuUid3:I
+Landroid/os/BatteryStats$HistoryStepDetails;->appCpuUTime1:I
+Landroid/os/BatteryStats$HistoryStepDetails;->appCpuUTime2:I
+Landroid/os/BatteryStats$HistoryStepDetails;->appCpuUTime3:I
+Landroid/os/BatteryStats$HistoryStepDetails;->clear()V
+Landroid/os/BatteryStats$HistoryStepDetails;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/os/BatteryStats$HistoryStepDetails;->statIdlTime:I
+Landroid/os/BatteryStats$HistoryStepDetails;->statIOWaitTime:I
+Landroid/os/BatteryStats$HistoryStepDetails;->statIrqTime:I
+Landroid/os/BatteryStats$HistoryStepDetails;->statPlatformIdleState:Ljava/lang/String;
+Landroid/os/BatteryStats$HistoryStepDetails;->statSoftIrqTime:I
+Landroid/os/BatteryStats$HistoryStepDetails;->statSubsystemPowerState:Ljava/lang/String;
+Landroid/os/BatteryStats$HistoryStepDetails;->statSystemTime:I
+Landroid/os/BatteryStats$HistoryStepDetails;->statUserTime:I
+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
+Landroid/os/BatteryStats$HistoryTag;->setTo(Landroid/os/BatteryStats$HistoryTag;)V
+Landroid/os/BatteryStats$HistoryTag;->setTo(Ljava/lang/String;I)V
+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
+Landroid/os/BatteryStats$LevelStepTracker;->appendHex(JILjava/lang/StringBuilder;)V
+Landroid/os/BatteryStats$LevelStepTracker;->clearTime()V
+Landroid/os/BatteryStats$LevelStepTracker;->computeTimeEstimate(JJ[I)J
+Landroid/os/BatteryStats$LevelStepTracker;->computeTimePerLevel()J
+Landroid/os/BatteryStats$LevelStepTracker;->decodeEntryAt(ILjava/lang/String;)V
+Landroid/os/BatteryStats$LevelStepTracker;->encodeEntryAt(ILjava/lang/StringBuilder;)V
+Landroid/os/BatteryStats$LevelStepTracker;->getDurationAt(I)J
+Landroid/os/BatteryStats$LevelStepTracker;->getInitModeAt(I)I
+Landroid/os/BatteryStats$LevelStepTracker;->getLevelAt(I)I
+Landroid/os/BatteryStats$LevelStepTracker;->getModModeAt(I)I
+Landroid/os/BatteryStats$LevelStepTracker;->init()V
+Landroid/os/BatteryStats$LevelStepTracker;->mLastStepTime:J
+Landroid/os/BatteryStats$LevelStepTracker;->mNumStepDurations:I
+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;
+Landroid/os/BatteryStats$Timer;->getTimeSinceMarkLocked(J)J
+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;
+Landroid/os/BatteryStats$Uid;->getBluetoothScanBackgroundTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getBluetoothScanResultBgCounter()Landroid/os/BatteryStats$Counter;
+Landroid/os/BatteryStats$Uid;->getBluetoothScanResultCounter()Landroid/os/BatteryStats$Counter;
+Landroid/os/BatteryStats$Uid;->getBluetoothScanTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getBluetoothUnoptimizedScanBackgroundTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getBluetoothUnoptimizedScanTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getCameraTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getCpuActiveTime()J
+Landroid/os/BatteryStats$Uid;->getCpuClusterTimes()[J
+Landroid/os/BatteryStats$Uid;->getCpuFreqTimes(I)[J
+Landroid/os/BatteryStats$Uid;->getCpuFreqTimes(II)[J
+Landroid/os/BatteryStats$Uid;->getDeferredJobsCheckinLineLocked(Ljava/lang/StringBuilder;I)V
+Landroid/os/BatteryStats$Uid;->getDeferredJobsLineLocked(Ljava/lang/StringBuilder;I)V
+Landroid/os/BatteryStats$Uid;->getFlashlightTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getForegroundActivityTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getForegroundServiceTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getJobCompletionStats()Landroid/util/ArrayMap;
+Landroid/os/BatteryStats$Uid;->getJobStats()Landroid/util/ArrayMap;
+Landroid/os/BatteryStats$Uid;->getMobileRadioActiveCount(I)I
+Landroid/os/BatteryStats$Uid;->getMobileRadioApWakeupCount(I)J
+Landroid/os/BatteryStats$Uid;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Landroid/os/BatteryStats$Uid;->getMulticastWakelockStats()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getNetworkActivityPackets(II)J
+Landroid/os/BatteryStats$Uid;->getPidStats()Landroid/util/SparseArray;
+Landroid/os/BatteryStats$Uid;->getProcessStateTime(IJI)J
+Landroid/os/BatteryStats$Uid;->getProcessStateTimer(I)Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getScreenOffCpuFreqTimes(I)[J
+Landroid/os/BatteryStats$Uid;->getScreenOffCpuFreqTimes(II)[J
+Landroid/os/BatteryStats$Uid;->getSyncStats()Landroid/util/ArrayMap;
+Landroid/os/BatteryStats$Uid;->getSystemCpuTimeUs(I)J
+Landroid/os/BatteryStats$Uid;->getTimeAtCpuSpeed(III)J
+Landroid/os/BatteryStats$Uid;->getUserActivityCount(II)I
+Landroid/os/BatteryStats$Uid;->getUserCpuTimeUs(I)J
+Landroid/os/BatteryStats$Uid;->getVibratorOnTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getWifiBatchedScanCount(II)I
+Landroid/os/BatteryStats$Uid;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Landroid/os/BatteryStats$Uid;->getWifiRadioApWakeupCount(I)J
+Landroid/os/BatteryStats$Uid;->getWifiScanActualTime(J)J
+Landroid/os/BatteryStats$Uid;->getWifiScanBackgroundCount(I)I
+Landroid/os/BatteryStats$Uid;->getWifiScanBackgroundTime(J)J
+Landroid/os/BatteryStats$Uid;->getWifiScanBackgroundTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->getWifiScanCount(I)I
+Landroid/os/BatteryStats$Uid;->getWifiScanTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats$Uid;->hasNetworkActivity()Z
+Landroid/os/BatteryStats$Uid;->hasUserActivity()Z
+Landroid/os/BatteryStats$Uid;->noteActivityPausedLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteActivityResumedLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteFullWifiLockAcquiredLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteFullWifiLockReleasedLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteUserActivityLocked(I)V
+Landroid/os/BatteryStats$Uid;->noteWifiBatchedScanStartedLocked(IJ)V
+Landroid/os/BatteryStats$Uid;->noteWifiBatchedScanStoppedLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteWifiMulticastDisabledLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteWifiMulticastEnabledLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteWifiRunningLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteWifiScanStartedLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteWifiScanStoppedLocked(J)V
+Landroid/os/BatteryStats$Uid;->noteWifiStoppedLocked(J)V
+Landroid/os/BatteryStats$Uid;->NUM_PROCESS_STATE:I
+Landroid/os/BatteryStats$Uid;->NUM_USER_ACTIVITY_TYPES:I
+Landroid/os/BatteryStats$Uid;->NUM_WIFI_BATCHED_SCAN_BINS:I
+Landroid/os/BatteryStats$Uid;->PROCESS_STATE_BACKGROUND:I
+Landroid/os/BatteryStats$Uid;->PROCESS_STATE_CACHED:I
+Landroid/os/BatteryStats$Uid;->PROCESS_STATE_FOREGROUND:I
+Landroid/os/BatteryStats$Uid;->PROCESS_STATE_FOREGROUND_SERVICE:I
+Landroid/os/BatteryStats$Uid;->PROCESS_STATE_HEAVY_WEIGHT:I
+Landroid/os/BatteryStats$Uid;->PROCESS_STATE_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats$Uid;->PROCESS_STATE_TOP:I
+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;
+Landroid/os/BatteryStats;->AUDIO_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->AUDIO_TURNED_ON:I
+Landroid/os/BatteryStats;->BATTERY_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->BATTERY_DISCHARGE_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->BATTERY_LEVEL_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->BATTERY_STATS_CHECKIN_VERSION:I
+Landroid/os/BatteryStats;->BLUETOOTH_CONTROLLER_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->BLUETOOTH_MISC_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->BLUETOOTH_SCAN_ON:I
+Landroid/os/BatteryStats;->BLUETOOTH_UNOPTIMIZED_SCAN_ON:I
+Landroid/os/BatteryStats;->BYTES_PER_GB:J
+Landroid/os/BatteryStats;->BYTES_PER_KB:J
+Landroid/os/BatteryStats;->BYTES_PER_MB:J
+Landroid/os/BatteryStats;->CAMERA_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->CAMERA_TURNED_ON:I
+Landroid/os/BatteryStats;->CELLULAR_CONTROLLER_NAME:Ljava/lang/String;
+Landroid/os/BatteryStats;->CHARGE_STEP_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->CHARGE_TIME_REMAIN_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->CHECKIN_VERSION:I
+Landroid/os/BatteryStats;->commitCurrentHistoryBatchLocked()V
+Landroid/os/BatteryStats;->computeBatteryScreenOffRealtime(JI)J
+Landroid/os/BatteryStats;->computeBatteryScreenOffUptime(JI)J
+Landroid/os/BatteryStats;->computeRealtime(JI)J
+Landroid/os/BatteryStats;->computeUptime(JI)J
+Landroid/os/BatteryStats;->computeWakeLock(Landroid/os/BatteryStats$Timer;JI)J
+Landroid/os/BatteryStats;->controllerActivityHasData(Landroid/os/BatteryStats$ControllerActivityCounter;I)Z
+Landroid/os/BatteryStats;->CPU_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->CPU_TIMES_AT_FREQ_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->DATA_CONNECTION_COUNT_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->DATA_CONNECTION_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats;->DATA_CONNECTION_NONE:I
+Landroid/os/BatteryStats;->DATA_CONNECTION_OTHER:I
+Landroid/os/BatteryStats;->DATA_CONNECTION_TIME_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->DEVICE_IDLE_MODE_DEEP:I
+Landroid/os/BatteryStats;->DEVICE_IDLE_MODE_LIGHT:I
+Landroid/os/BatteryStats;->DEVICE_IDLE_MODE_OFF:I
+Landroid/os/BatteryStats;->DISCHARGE_STEP_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->DISCHARGE_TIME_REMAIN_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->dumpCheckinLocked(Landroid/content/Context;Ljava/io/PrintWriter;II)V
+Landroid/os/BatteryStats;->dumpCheckinLocked(Landroid/content/Context;Ljava/io/PrintWriter;IIZ)V
+Landroid/os/BatteryStats;->dumpCheckinLocked(Landroid/content/Context;Ljava/io/PrintWriter;Ljava/util/List;IJ)V
+Landroid/os/BatteryStats;->dumpControllerActivityLine(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$ControllerActivityCounter;I)V
+Landroid/os/BatteryStats;->dumpControllerActivityProto(Landroid/util/proto/ProtoOutputStream;JLandroid/os/BatteryStats$ControllerActivityCounter;I)V
+Landroid/os/BatteryStats;->dumpDailyLevelStepSummary(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Ljava/lang/StringBuilder;[I)V
+Landroid/os/BatteryStats;->dumpDailyPackageChanges(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/ArrayList;)V
+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
+Landroid/os/BatteryStats;->dumpLocked(Landroid/content/Context;Ljava/io/PrintWriter;Ljava/lang/String;IIZ)V
+Landroid/os/BatteryStats;->dumpProtoAppsLocked(Landroid/util/proto/ProtoOutputStream;Lcom/android/internal/os/BatteryStatsHelper;Ljava/util/List;)V
+Landroid/os/BatteryStats;->dumpProtoHistoryLocked(Landroid/util/proto/ProtoOutputStream;IJ)V
+Landroid/os/BatteryStats;->dumpProtoLocked(Landroid/content/Context;Ljava/io/FileDescriptor;Ljava/util/List;IJ)V
+Landroid/os/BatteryStats;->dumpProtoSystemLocked(Landroid/util/proto/ProtoOutputStream;Lcom/android/internal/os/BatteryStatsHelper;)V
+Landroid/os/BatteryStats;->dumpTimeEstimate(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z
+Landroid/os/BatteryStats;->dumpTimer(Landroid/util/proto/ProtoOutputStream;JLandroid/os/BatteryStats$Timer;JI)V
+Landroid/os/BatteryStats;->dumpTimer(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$Timer;JI)V
+Landroid/os/BatteryStats;->DUMP_CHARGED_ONLY:I
+Landroid/os/BatteryStats;->DUMP_DAILY_ONLY:I
+Landroid/os/BatteryStats;->DUMP_DEVICE_WIFI_ONLY:I
+Landroid/os/BatteryStats;->DUMP_HISTORY_ONLY:I
+Landroid/os/BatteryStats;->DUMP_INCLUDE_HISTORY:I
+Landroid/os/BatteryStats;->DUMP_VERBOSE:I
+Landroid/os/BatteryStats;->finishIteratingHistoryLocked()V
+Landroid/os/BatteryStats;->finishIteratingOldHistoryLocked()V
+Landroid/os/BatteryStats;->FLASHLIGHT_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->FLASHLIGHT_TURNED_ON:I
+Landroid/os/BatteryStats;->FOREGROUND_ACTIVITY:I
+Landroid/os/BatteryStats;->FOREGROUND_ACTIVITY_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->FOREGROUND_SERVICE:I
+Landroid/os/BatteryStats;->FOREGROUND_SERVICE_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->formatBytesLocked(J)Ljava/lang/String;
+Landroid/os/BatteryStats;->formatRatioLocked(JJ)Ljava/lang/String;
+Landroid/os/BatteryStats;->formatTimeMs(Ljava/lang/StringBuilder;J)V
+Landroid/os/BatteryStats;->formatTimeMsNoSpace(Ljava/lang/StringBuilder;J)V
+Landroid/os/BatteryStats;->formatTimeRaw(Ljava/lang/StringBuilder;J)V
+Landroid/os/BatteryStats;->FULL_WIFI_LOCK:I
+Landroid/os/BatteryStats;->getBatteryRealtime(J)J
+Landroid/os/BatteryStats;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Landroid/os/BatteryStats;->getBluetoothScanTime(JI)J
+Landroid/os/BatteryStats;->getCameraOnTime(JI)J
+Landroid/os/BatteryStats;->getChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+Landroid/os/BatteryStats;->getCpuFreqs()[J
+Landroid/os/BatteryStats;->getCurrentDailyStartTime()J
+Landroid/os/BatteryStats;->getDailyChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+Landroid/os/BatteryStats;->getDailyDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+Landroid/os/BatteryStats;->getDailyItemLocked(I)Landroid/os/BatteryStats$DailyItem;
+Landroid/os/BatteryStats;->getDailyPackageChanges()Ljava/util/ArrayList;
+Landroid/os/BatteryStats;->getDeviceIdleModeCount(II)I
+Landroid/os/BatteryStats;->getDeviceIdleModeTime(IJI)J
+Landroid/os/BatteryStats;->getDeviceIdlingCount(II)I
+Landroid/os/BatteryStats;->getDeviceIdlingTime(IJI)J
+Landroid/os/BatteryStats;->getDischargeAmount(I)I
+Landroid/os/BatteryStats;->getDischargeAmountScreenDoze()I
+Landroid/os/BatteryStats;->getDischargeAmountScreenDozeSinceCharge()I
+Landroid/os/BatteryStats;->getDischargeAmountScreenOff()I
+Landroid/os/BatteryStats;->getDischargeAmountScreenOffSinceCharge()I
+Landroid/os/BatteryStats;->getDischargeAmountScreenOn()I
+Landroid/os/BatteryStats;->getDischargeAmountScreenOnSinceCharge()I
+Landroid/os/BatteryStats;->getDischargeCurrentLevel()I
+Landroid/os/BatteryStats;->getDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+Landroid/os/BatteryStats;->getDischargeStartLevel()I
+Landroid/os/BatteryStats;->getEndPlatformVersion()Ljava/lang/String;
+Landroid/os/BatteryStats;->getEstimatedBatteryCapacity()I
+Landroid/os/BatteryStats;->getFlashlightOnCount(I)J
+Landroid/os/BatteryStats;->getFlashlightOnTime(JI)J
+Landroid/os/BatteryStats;->getGpsBatteryDrainMaMs()J
+Landroid/os/BatteryStats;->getGpsSignalQualityTime(IJI)J
+Landroid/os/BatteryStats;->getHighDischargeAmountSinceCharge()I
+Landroid/os/BatteryStats;->getHistoryBaseTime()J
+Landroid/os/BatteryStats;->getHistoryStringPoolBytes()I
+Landroid/os/BatteryStats;->getHistoryStringPoolSize()I
+Landroid/os/BatteryStats;->getHistoryTagPoolString(I)Ljava/lang/String;
+Landroid/os/BatteryStats;->getHistoryTagPoolUid(I)I
+Landroid/os/BatteryStats;->getHistoryTotalSize()I
+Landroid/os/BatteryStats;->getHistoryUsedSize()I
+Landroid/os/BatteryStats;->getInteractiveTime(JI)J
+Landroid/os/BatteryStats;->getIsOnBattery()Z
+Landroid/os/BatteryStats;->getKernelMemoryStats()Landroid/util/LongSparseArray;
+Landroid/os/BatteryStats;->getKernelWakelockStats()Ljava/util/Map;
+Landroid/os/BatteryStats;->getLongestDeviceIdleModeTime(I)J
+Landroid/os/BatteryStats;->getLowDischargeAmountSinceCharge()I
+Landroid/os/BatteryStats;->getMaxLearnedBatteryCapacity()I
+Landroid/os/BatteryStats;->getMinLearnedBatteryCapacity()I
+Landroid/os/BatteryStats;->getMobileRadioActiveAdjustedTime(I)J
+Landroid/os/BatteryStats;->getMobileRadioActiveCount(I)I
+Landroid/os/BatteryStats;->getMobileRadioActiveUnknownCount(I)I
+Landroid/os/BatteryStats;->getMobileRadioActiveUnknownTime(I)J
+Landroid/os/BatteryStats;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Landroid/os/BatteryStats;->getNetworkActivityPackets(II)J
+Landroid/os/BatteryStats;->getNextMaxDailyDeadline()J
+Landroid/os/BatteryStats;->getNextMinDailyDeadline()J
+Landroid/os/BatteryStats;->getNextOldHistoryLocked(Landroid/os/BatteryStats$HistoryItem;)Z
+Landroid/os/BatteryStats;->getNumConnectivityChange(I)I
+Landroid/os/BatteryStats;->getParcelVersion()I
+Landroid/os/BatteryStats;->getPhoneDataConnectionCount(II)I
+Landroid/os/BatteryStats;->getPhoneDataConnectionTime(IJI)J
+Landroid/os/BatteryStats;->getPhoneDataConnectionTimer(I)Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats;->getPhoneOnCount(I)I
+Landroid/os/BatteryStats;->getPhoneSignalScanningTime(JI)J
+Landroid/os/BatteryStats;->getPhoneSignalScanningTimer()Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats;->getPhoneSignalStrengthCount(II)I
+Landroid/os/BatteryStats;->getPhoneSignalStrengthTimer(I)Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats;->getPowerSaveModeEnabledCount(I)I
+Landroid/os/BatteryStats;->getPowerSaveModeEnabledTime(JI)J
+Landroid/os/BatteryStats;->getRpmStats()Ljava/util/Map;
+Landroid/os/BatteryStats;->getScreenBrightnessTimer(I)Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats;->getScreenDozeCount(I)I
+Landroid/os/BatteryStats;->getScreenDozeTime(JI)J
+Landroid/os/BatteryStats;->getScreenOffRpmStats()Ljava/util/Map;
+Landroid/os/BatteryStats;->getScreenOnCount(I)I
+Landroid/os/BatteryStats;->getStartClockTime()J
+Landroid/os/BatteryStats;->getStartCount()I
+Landroid/os/BatteryStats;->getStartPlatformVersion()Ljava/lang/String;
+Landroid/os/BatteryStats;->getUahDischarge(I)J
+Landroid/os/BatteryStats;->getUahDischargeDeepDoze(I)J
+Landroid/os/BatteryStats;->getUahDischargeLightDoze(I)J
+Landroid/os/BatteryStats;->getUahDischargeScreenDoze(I)J
+Landroid/os/BatteryStats;->getUahDischargeScreenOff(I)J
+Landroid/os/BatteryStats;->getWakeupReasonStats()Ljava/util/Map;
+Landroid/os/BatteryStats;->getWifiActiveTime(JI)J
+Landroid/os/BatteryStats;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Landroid/os/BatteryStats;->getWifiMulticastWakelockCount(I)I
+Landroid/os/BatteryStats;->getWifiMulticastWakelockTime(JI)J
+Landroid/os/BatteryStats;->getWifiSignalStrengthCount(II)I
+Landroid/os/BatteryStats;->getWifiSignalStrengthTime(IJI)J
+Landroid/os/BatteryStats;->getWifiSignalStrengthTimer(I)Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats;->getWifiStateCount(II)I
+Landroid/os/BatteryStats;->getWifiStateTime(IJI)J
+Landroid/os/BatteryStats;->getWifiStateTimer(I)Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats;->getWifiSupplStateCount(II)I
+Landroid/os/BatteryStats;->getWifiSupplStateTime(IJI)J
+Landroid/os/BatteryStats;->getWifiSupplStateTimer(I)Landroid/os/BatteryStats$Timer;
+Landroid/os/BatteryStats;->GLOBAL_BLUETOOTH_CONTROLLER_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->GLOBAL_CPU_FREQ_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->GLOBAL_MODEM_CONTROLLER_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->GLOBAL_NETWORK_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->GLOBAL_WIFI_CONTROLLER_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->GLOBAL_WIFI_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->hasBluetoothActivityReporting()Z
+Landroid/os/BatteryStats;->hasModemActivityReporting()Z
+Landroid/os/BatteryStats;->hasWifiActivityReporting()Z
+Landroid/os/BatteryStats;->HISTORY_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->HISTORY_EVENT_CHECKIN_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats;->HISTORY_EVENT_INT_FORMATTERS:[Landroid/os/BatteryStats$IntToString;
+Landroid/os/BatteryStats;->HISTORY_EVENT_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats;->HISTORY_STATE2_DESCRIPTIONS:[Landroid/os/BatteryStats$BitDescription;
+Landroid/os/BatteryStats;->HISTORY_STATE_DESCRIPTIONS:[Landroid/os/BatteryStats$BitDescription;
+Landroid/os/BatteryStats;->HISTORY_STRING_POOL:Ljava/lang/String;
+Landroid/os/BatteryStats;->JOB:I
+Landroid/os/BatteryStats;->JOBS_DEFERRED_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->JOB_COMPLETION_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->JOB_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->JOB_FRESHNESS_BUCKETS:[J
+Landroid/os/BatteryStats;->KERNEL_WAKELOCK_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->LOCAL_LOGV:Z
+Landroid/os/BatteryStats;->mapToInternalProcessState(I)I
+Landroid/os/BatteryStats;->MAX_TRACKED_SCREEN_STATE:I
+Landroid/os/BatteryStats;->mFormatBuilder:Ljava/lang/StringBuilder;
+Landroid/os/BatteryStats;->mFormatter:Ljava/util/Formatter;
+Landroid/os/BatteryStats;->MISC_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->MODEM_CONTROLLER_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->NETWORK_BT_RX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_BT_TX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->NETWORK_MOBILE_BG_RX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_MOBILE_BG_TX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_MOBILE_RX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_MOBILE_TX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_WIFI_BG_RX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_WIFI_BG_TX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_WIFI_RX_DATA:I
+Landroid/os/BatteryStats;->NETWORK_WIFI_TX_DATA:I
+Landroid/os/BatteryStats;->NUM_NETWORK_ACTIVITY_TYPES:I
+Landroid/os/BatteryStats;->NUM_WIFI_SIGNAL_STRENGTH_BINS:I
+Landroid/os/BatteryStats;->NUM_WIFI_STATES:I
+Landroid/os/BatteryStats;->NUM_WIFI_SUPPL_STATES:I
+Landroid/os/BatteryStats;->POWER_USE_ITEM_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->POWER_USE_SUMMARY_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->prepareForDumpLocked()V
+Landroid/os/BatteryStats;->printBitDescriptions(Ljava/lang/StringBuilder;IILandroid/os/BatteryStats$HistoryTag;[Landroid/os/BatteryStats$BitDescription;Z)V
+Landroid/os/BatteryStats;->printControllerActivity(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$ControllerActivityCounter;I)V
+Landroid/os/BatteryStats;->printControllerActivityIfInteresting(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$ControllerActivityCounter;I)V
+Landroid/os/BatteryStats;->printmAh(Ljava/io/PrintWriter;D)V
+Landroid/os/BatteryStats;->printmAh(Ljava/lang/StringBuilder;D)V
+Landroid/os/BatteryStats;->printSizeValue(Ljava/io/PrintWriter;J)V
+Landroid/os/BatteryStats;->printTimer(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;Landroid/os/BatteryStats$Timer;JILjava/lang/String;Ljava/lang/String;)Z
+Landroid/os/BatteryStats;->printWakeLock(Ljava/lang/StringBuilder;Landroid/os/BatteryStats$Timer;JLjava/lang/String;ILjava/lang/String;)Ljava/lang/String;
+Landroid/os/BatteryStats;->printWakeLockCheckin(Ljava/lang/StringBuilder;Landroid/os/BatteryStats$Timer;JLjava/lang/String;ILjava/lang/String;)Ljava/lang/String;
+Landroid/os/BatteryStats;->PROCESS_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->PROCESS_STATE:I
+Landroid/os/BatteryStats;->RESOURCE_POWER_MANAGER_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->RESULT_RECEIVER_CONTROLLER_KEY:Ljava/lang/String;
+Landroid/os/BatteryStats;->roundUsToMs(J)J
+Landroid/os/BatteryStats;->SCREEN_BRIGHTNESS_BRIGHT:I
+Landroid/os/BatteryStats;->SCREEN_BRIGHTNESS_DARK:I
+Landroid/os/BatteryStats;->SCREEN_BRIGHTNESS_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->SCREEN_BRIGHTNESS_DIM:I
+Landroid/os/BatteryStats;->SCREEN_BRIGHTNESS_LIGHT:I
+Landroid/os/BatteryStats;->SCREEN_BRIGHTNESS_MEDIUM:I
+Landroid/os/BatteryStats;->SCREEN_BRIGHTNESS_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats;->SCREEN_BRIGHTNESS_SHORT_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats;->SCREEN_OFF_RPM_STATS_ENABLED:Z
+Landroid/os/BatteryStats;->SENSOR:I
+Landroid/os/BatteryStats;->SENSOR_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->SERVICE_NAME:Ljava/lang/String;
+Landroid/os/BatteryStats;->SIGNAL_SCANNING_TIME_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->SIGNAL_STRENGTH_COUNT_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->SIGNAL_STRENGTH_TIME_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->sIntToString:Landroid/os/BatteryStats$IntToString;
+Landroid/os/BatteryStats;->startIteratingOldHistoryLocked()Z
+Landroid/os/BatteryStats;->STATE_TIME_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->STATS_SINCE_CHARGED:I
+Landroid/os/BatteryStats;->STATS_SINCE_UNPLUGGED:I
+Landroid/os/BatteryStats;->STAT_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats;->STEP_LEVEL_INITIAL_MODE_MASK:J
+Landroid/os/BatteryStats;->STEP_LEVEL_INITIAL_MODE_SHIFT:I
+Landroid/os/BatteryStats;->STEP_LEVEL_LEVEL_MASK:J
+Landroid/os/BatteryStats;->STEP_LEVEL_LEVEL_SHIFT:I
+Landroid/os/BatteryStats;->STEP_LEVEL_MODES_OF_INTEREST:[I
+Landroid/os/BatteryStats;->STEP_LEVEL_MODE_DEVICE_IDLE:I
+Landroid/os/BatteryStats;->STEP_LEVEL_MODE_LABELS:[Ljava/lang/String;
+Landroid/os/BatteryStats;->STEP_LEVEL_MODE_POWER_SAVE:I
+Landroid/os/BatteryStats;->STEP_LEVEL_MODE_SCREEN_STATE:I
+Landroid/os/BatteryStats;->STEP_LEVEL_MODE_VALUES:[I
+Landroid/os/BatteryStats;->STEP_LEVEL_MODIFIED_MODE_MASK:J
+Landroid/os/BatteryStats;->STEP_LEVEL_MODIFIED_MODE_SHIFT:I
+Landroid/os/BatteryStats;->STEP_LEVEL_TIME_MASK:J
+Landroid/os/BatteryStats;->sUidToString:Landroid/os/BatteryStats$IntToString;
+Landroid/os/BatteryStats;->SYNC:I
+Landroid/os/BatteryStats;->SYNC_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->TAG:Ljava/lang/String;
+Landroid/os/BatteryStats;->UID_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->UID_TIMES_TYPE_ALL:Ljava/lang/String;
+Landroid/os/BatteryStats;->USER_ACTIVITY_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->VERSION_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->VIBRATOR_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->VIBRATOR_ON:I
+Landroid/os/BatteryStats;->VIDEO_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->VIDEO_TURNED_ON:I
+Landroid/os/BatteryStats;->WAKELOCK_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WAKEUP_ALARM_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WAKEUP_REASON_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WAKE_TYPE_DRAW:I
+Landroid/os/BatteryStats;->WAKE_TYPE_FULL:I
+Landroid/os/BatteryStats;->WAKE_TYPE_WINDOW:I
+Landroid/os/BatteryStats;->WIFI_AGGREGATE_MULTICAST_ENABLED:I
+Landroid/os/BatteryStats;->WIFI_BATCHED_SCAN:I
+Landroid/os/BatteryStats;->WIFI_CONTROLLER_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_CONTROLLER_NAME:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_MULTICAST_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_MULTICAST_ENABLED:I
+Landroid/os/BatteryStats;->WIFI_MULTICAST_TOTAL_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_RUNNING:I
+Landroid/os/BatteryStats;->WIFI_SCAN:I
+Landroid/os/BatteryStats;->WIFI_SIGNAL_STRENGTH_COUNT_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_SIGNAL_STRENGTH_TIME_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_STATE_COUNT_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_STATE_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_STATE_OFF:I
+Landroid/os/BatteryStats;->WIFI_STATE_OFF_SCANNING:I
+Landroid/os/BatteryStats;->WIFI_STATE_ON_CONNECTED_P2P:I
+Landroid/os/BatteryStats;->WIFI_STATE_ON_CONNECTED_STA:I
+Landroid/os/BatteryStats;->WIFI_STATE_ON_CONNECTED_STA_P2P:I
+Landroid/os/BatteryStats;->WIFI_STATE_ON_DISCONNECTED:I
+Landroid/os/BatteryStats;->WIFI_STATE_ON_NO_NETWORKS:I
+Landroid/os/BatteryStats;->WIFI_STATE_SOFT_AP:I
+Landroid/os/BatteryStats;->WIFI_STATE_TIME_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_ASSOCIATED:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_ASSOCIATING:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_AUTHENTICATING:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_COMPLETED:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_COUNT_DATA:Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_DISCONNECTED:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_DORMANT:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_FOUR_WAY_HANDSHAKE:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_GROUP_HANDSHAKE:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_INACTIVE:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_INTERFACE_DISABLED:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_INVALID:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_NAMES:[Ljava/lang/String;
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_SCANNING:I
+Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_SHORT_NAMES:[Ljava/lang/String;
+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
+Landroid/os/BatteryStatsProto;->REPORT_VERSION:J
+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;
+Landroid/os/Binder;->blockUntilThreadAvailable()V
+Landroid/os/Binder;->checkParcel(Landroid/os/IBinder;ILandroid/os/Parcel;Ljava/lang/String;)V
+Landroid/os/Binder;->CHECK_PARCEL_SIZE:Z
+Landroid/os/Binder;->copyAllowBlocking(Landroid/os/IBinder;Landroid/os/IBinder;)V
+Landroid/os/Binder;->defaultBlocking(Landroid/os/IBinder;)Landroid/os/IBinder;
+Landroid/os/Binder;->disableTracing()V
+Landroid/os/Binder;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/os/Binder;->enableTracing()V
+Landroid/os/Binder;->FIND_POTENTIAL_LEAKS:Z
+Landroid/os/Binder;->getFinalizer()J
+Landroid/os/Binder;->getNativeBBinderHolder()J
+Landroid/os/Binder;->getNativeFinalizer()J
+Landroid/os/Binder;->getThreadStrictModePolicy()I
+Landroid/os/Binder;->getTransactionTracker()Landroid/os/TransactionTracker;
+Landroid/os/Binder;->isProxy(Landroid/os/IInterface;)Z
+Landroid/os/Binder;->isTracingEnabled()Z
+Landroid/os/Binder;->LOG_RUNTIME_EXCEPTION:Z
+Landroid/os/Binder;->mDescriptor:Ljava/lang/String;
+Landroid/os/Binder;->mOwner:Landroid/os/IInterface;
+Landroid/os/Binder;->NATIVE_ALLOCATION_SIZE:I
+Landroid/os/Binder;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
+Landroid/os/Binder;->sDumpDisabled:Ljava/lang/String;
+Landroid/os/Binder;->setDumpDisabled(Ljava/lang/String;)V
+Landroid/os/Binder;->setThreadStrictModePolicy(I)V
+Landroid/os/Binder;->setWarnOnBlocking(Z)V
+Landroid/os/Binder;->shellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
+Landroid/os/Binder;->sTracingEnabled:Z
+Landroid/os/Binder;->sTransactionTracker:Landroid/os/TransactionTracker;
+Landroid/os/Binder;->sWarnOnBlocking:Z
+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;
+Landroid/os/Build$VERSION;->MIN_SUPPORTED_TARGET_SDK_INT:I
+Landroid/os/Build$VERSION_CODES;->L:I
+Landroid/os/Build;->deriveFingerprint()Ljava/lang/String;
+Landroid/os/Build;->ensureFingerprintProperty()V
+Landroid/os/Build;->getStringList(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Landroid/os/Build;->isBuildConsistent()Z
+Landroid/os/Build;->IS_CONTAINER:Z
+Landroid/os/Build;->IS_ENG:Z
+Landroid/os/Build;->IS_TREBLE_ENABLED:Z
+Landroid/os/Build;->IS_USER:Z
+Landroid/os/Build;->IS_USERDEBUG:Z
+Landroid/os/Build;->TAG:Ljava/lang/String;
+Landroid/os/Bundle;-><init>(Landroid/os/Parcel;)V
+Landroid/os/Bundle;-><init>(Landroid/os/Parcel;I)V
+Landroid/os/Bundle;-><init>(Z)V
+Landroid/os/Bundle;->FLAG_ALLOW_FDS:I
+Landroid/os/Bundle;->FLAG_HAS_FDS:I
+Landroid/os/Bundle;->FLAG_HAS_FDS_KNOWN:I
+Landroid/os/Bundle;->maybePrefillHasFds()V
+Landroid/os/Bundle;->setAllowFds(Z)Z
+Landroid/os/Bundle;->setDefusable(Z)V
+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
+Landroid/os/CommonClock;->getEstimatedError()I
+Landroid/os/CommonClock;->getMasterAddr()Ljava/net/InetSocketAddress;
+Landroid/os/CommonClock;->getState()I
+Landroid/os/CommonClock;->getTime()J
+Landroid/os/CommonClock;->getTimelineId()J
+Landroid/os/CommonClock;->INVALID_TIMELINE_ID:J
+Landroid/os/CommonClock;->mCallbackTgt:Landroid/os/CommonClock$TimelineChangedListener;
+Landroid/os/CommonClock;->mDeathHandler:Landroid/os/IBinder$DeathRecipient;
+Landroid/os/CommonClock;->METHOD_CBK_ON_TIMELINE_CHANGED:I
+Landroid/os/CommonClock;->METHOD_COMMON_TIME_TO_LOCAL_TIME:I
+Landroid/os/CommonClock;->METHOD_GET_COMMON_FREQ:I
+Landroid/os/CommonClock;->METHOD_GET_COMMON_TIME:I
+Landroid/os/CommonClock;->METHOD_GET_ESTIMATED_ERROR:I
+Landroid/os/CommonClock;->METHOD_GET_LOCAL_FREQ:I
+Landroid/os/CommonClock;->METHOD_GET_LOCAL_TIME:I
+Landroid/os/CommonClock;->METHOD_GET_MASTER_ADDRESS:I
+Landroid/os/CommonClock;->METHOD_GET_STATE:I
+Landroid/os/CommonClock;->METHOD_GET_TIMELINE_ID:I
+Landroid/os/CommonClock;->METHOD_IS_COMMON_TIME_VALID:I
+Landroid/os/CommonClock;->METHOD_LOCAL_TIME_TO_COMMON_TIME:I
+Landroid/os/CommonClock;->METHOD_REGISTER_LISTENER:I
+Landroid/os/CommonClock;->METHOD_UNREGISTER_LISTENER:I
+Landroid/os/CommonClock;->mInterfaceDesc:Ljava/lang/String;
+Landroid/os/CommonClock;->mListenerLock:Ljava/lang/Object;
+Landroid/os/CommonClock;->mRemote:Landroid/os/IBinder;
+Landroid/os/CommonClock;->mServerDiedListener:Landroid/os/CommonClock$OnServerDiedListener;
+Landroid/os/CommonClock;->mTimelineChangedListener:Landroid/os/CommonClock$OnTimelineChangedListener;
+Landroid/os/CommonClock;->mUtils:Landroid/os/CommonTimeUtils;
+Landroid/os/CommonClock;->registerTimelineChangeListener()V
+Landroid/os/CommonClock;->release()V
+Landroid/os/CommonClock;->SERVICE_NAME:Ljava/lang/String;
+Landroid/os/CommonClock;->setServerDiedListener(Landroid/os/CommonClock$OnServerDiedListener;)V
+Landroid/os/CommonClock;->setTimelineChangedListener(Landroid/os/CommonClock$OnTimelineChangedListener;)V
+Landroid/os/CommonClock;->STATE_CLIENT:I
+Landroid/os/CommonClock;->STATE_INITIAL:I
+Landroid/os/CommonClock;->STATE_INVALID:I
+Landroid/os/CommonClock;->STATE_MASTER:I
+Landroid/os/CommonClock;->STATE_RONIN:I
+Landroid/os/CommonClock;->STATE_WAIT_FOR_ELECTION:I
+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;
+Landroid/os/CommonTimeConfig;->ERROR:I
+Landroid/os/CommonTimeConfig;->ERROR_BAD_VALUE:I
+Landroid/os/CommonTimeConfig;->ERROR_DEAD_OBJECT:I
+Landroid/os/CommonTimeConfig;->forceNetworklessMasterMode()I
+Landroid/os/CommonTimeConfig;->getAutoDisable()Z
+Landroid/os/CommonTimeConfig;->getClientSyncInterval()I
+Landroid/os/CommonTimeConfig;->getInterfaceBinding()Ljava/lang/String;
+Landroid/os/CommonTimeConfig;->getMasterAnnounceInterval()I
+Landroid/os/CommonTimeConfig;->getMasterElectionEndpoint()Ljava/net/InetSocketAddress;
+Landroid/os/CommonTimeConfig;->getMasterElectionGroupId()J
+Landroid/os/CommonTimeConfig;->getMasterElectionPriority()B
+Landroid/os/CommonTimeConfig;->getPanicThreshold()I
+Landroid/os/CommonTimeConfig;->INVALID_GROUP_ID:J
+Landroid/os/CommonTimeConfig;->mDeathHandler:Landroid/os/IBinder$DeathRecipient;
+Landroid/os/CommonTimeConfig;->METHOD_FORCE_NETWORKLESS_MASTER_MODE:I
+Landroid/os/CommonTimeConfig;->METHOD_GET_AUTO_DISABLE:I
+Landroid/os/CommonTimeConfig;->METHOD_GET_CLIENT_SYNC_INTERVAL:I
+Landroid/os/CommonTimeConfig;->METHOD_GET_INTERFACE_BINDING:I
+Landroid/os/CommonTimeConfig;->METHOD_GET_MASTER_ANNOUNCE_INTERVAL:I
+Landroid/os/CommonTimeConfig;->METHOD_GET_MASTER_ELECTION_ENDPOINT:I
+Landroid/os/CommonTimeConfig;->METHOD_GET_MASTER_ELECTION_GROUP_ID:I
+Landroid/os/CommonTimeConfig;->METHOD_GET_MASTER_ELECTION_PRIORITY:I
+Landroid/os/CommonTimeConfig;->METHOD_GET_PANIC_THRESHOLD:I
+Landroid/os/CommonTimeConfig;->METHOD_SET_AUTO_DISABLE:I
+Landroid/os/CommonTimeConfig;->METHOD_SET_CLIENT_SYNC_INTERVAL:I
+Landroid/os/CommonTimeConfig;->METHOD_SET_INTERFACE_BINDING:I
+Landroid/os/CommonTimeConfig;->METHOD_SET_MASTER_ANNOUNCE_INTERVAL:I
+Landroid/os/CommonTimeConfig;->METHOD_SET_MASTER_ELECTION_ENDPOINT:I
+Landroid/os/CommonTimeConfig;->METHOD_SET_MASTER_ELECTION_GROUP_ID:I
+Landroid/os/CommonTimeConfig;->METHOD_SET_MASTER_ELECTION_PRIORITY:I
+Landroid/os/CommonTimeConfig;->METHOD_SET_PANIC_THRESHOLD:I
+Landroid/os/CommonTimeConfig;->mInterfaceDesc:Ljava/lang/String;
+Landroid/os/CommonTimeConfig;->mListenerLock:Ljava/lang/Object;
+Landroid/os/CommonTimeConfig;->mRemote:Landroid/os/IBinder;
+Landroid/os/CommonTimeConfig;->mServerDiedListener:Landroid/os/CommonTimeConfig$OnServerDiedListener;
+Landroid/os/CommonTimeConfig;->mUtils:Landroid/os/CommonTimeUtils;
+Landroid/os/CommonTimeConfig;->release()V
+Landroid/os/CommonTimeConfig;->SERVICE_NAME:Ljava/lang/String;
+Landroid/os/CommonTimeConfig;->setAutoDisable(Z)I
+Landroid/os/CommonTimeConfig;->setClientSyncInterval(I)I
+Landroid/os/CommonTimeConfig;->setMasterAnnounceInterval(I)I
+Landroid/os/CommonTimeConfig;->setMasterElectionEndpoint(Ljava/net/InetSocketAddress;)I
+Landroid/os/CommonTimeConfig;->setMasterElectionGroupId(J)I
+Landroid/os/CommonTimeConfig;->setMasterElectionPriority(B)I
+Landroid/os/CommonTimeConfig;->setNetworkBinding(Ljava/lang/String;)I
+Landroid/os/CommonTimeConfig;->setPanicThreshold(I)I
+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
+Landroid/os/CommonTimeUtils;->ERROR_DEAD_OBJECT:I
+Landroid/os/CommonTimeUtils;->mInterfaceDesc:Ljava/lang/String;
+Landroid/os/CommonTimeUtils;->mRemote:Landroid/os/IBinder;
+Landroid/os/CommonTimeUtils;->SUCCESS:I
+Landroid/os/CommonTimeUtils;->transactGetInt(II)I
+Landroid/os/CommonTimeUtils;->transactGetLong(IJ)J
+Landroid/os/CommonTimeUtils;->transactGetSockaddr(I)Ljava/net/InetSocketAddress;
+Landroid/os/CommonTimeUtils;->transactGetString(ILjava/lang/String;)Ljava/lang/String;
+Landroid/os/CommonTimeUtils;->transactSetInt(II)I
+Landroid/os/CommonTimeUtils;->transactSetLong(IJ)I
+Landroid/os/CommonTimeUtils;->transactSetSockaddr(ILjava/net/InetSocketAddress;)I
+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
+Landroid/os/ControllerActivityProto;->RX_DURATION_MS:J
+Landroid/os/ControllerActivityProto;->TX:J
+Landroid/os/CountDownTimer;->mCancelled:Z
+Landroid/os/CountDownTimer;->mCountdownInterval:J
+Landroid/os/CountDownTimer;->mHandler:Landroid/os/Handler;
+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
+Landroid/os/CpuInfoProto$CpuUsage;->IOW:J
+Landroid/os/CpuInfoProto$CpuUsage;->IRQ:J
+Landroid/os/CpuInfoProto$CpuUsage;->NICE:J
+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
+Landroid/os/CpuInfoProto$Task;->NI:J
+Landroid/os/CpuInfoProto$Task;->PCY:J
+Landroid/os/CpuInfoProto$Task;->PID:J
+Landroid/os/CpuInfoProto$Task;->POLICY_BG:I
+Landroid/os/CpuInfoProto$Task;->POLICY_FG:I
+Landroid/os/CpuInfoProto$Task;->POLICY_TA:I
+Landroid/os/CpuInfoProto$Task;->POLICY_UNKNOWN:I
+Landroid/os/CpuInfoProto$Task;->PR:J
+Landroid/os/CpuInfoProto$Task;->RES:J
+Landroid/os/CpuInfoProto$Task;->S:J
+Landroid/os/CpuInfoProto$Task;->STATUS_D:I
+Landroid/os/CpuInfoProto$Task;->STATUS_R:I
+Landroid/os/CpuInfoProto$Task;->STATUS_S:I
+Landroid/os/CpuInfoProto$Task;->STATUS_T:I
+Landroid/os/CpuInfoProto$Task;->STATUS_UNKNOWN:I
+Landroid/os/CpuInfoProto$Task;->STATUS_Z:I
+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
+Landroid/os/CpuInfoProto;->SWAP:J
+Landroid/os/CpuInfoProto;->TASKS:J
+Landroid/os/CpuInfoProto;->TASK_STATS:J
+Landroid/os/CpuUsageInfo;-><init>(JJ)V
+Landroid/os/CpuUsageInfo;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/os/Debug$MemoryInfo;->getOtherSharedClean(I)I
+Landroid/os/Debug$MemoryInfo;->getOtherSwappablePss(I)I
+Landroid/os/Debug$MemoryInfo;->getOtherSwappedOut(I)I
+Landroid/os/Debug$MemoryInfo;->getOtherSwappedOutPss(I)I
+Landroid/os/Debug$MemoryInfo;->getSummaryTotalPss()I
+Landroid/os/Debug$MemoryInfo;->getSummaryTotalSwap()I
+Landroid/os/Debug$MemoryInfo;->getSummaryTotalSwapPss()I
+Landroid/os/Debug$MemoryInfo;->getTotalRss()I
+Landroid/os/Debug$MemoryInfo;->getTotalSwappedOut()I
+Landroid/os/Debug$MemoryInfo;->getTotalSwappedOutPss()I
+Landroid/os/Debug$MemoryInfo;->hasSwappedOutPss()Z
+Landroid/os/Debug$MemoryInfo;->HEAP_DALVIK:I
+Landroid/os/Debug$MemoryInfo;->HEAP_NATIVE:I
+Landroid/os/Debug$MemoryInfo;->HEAP_UNKNOWN:I
+Landroid/os/Debug$MemoryInfo;->NUM_CATEGORIES:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_PRIVATE_CLEAN:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_PRIVATE_DIRTY:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_PSS:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_RSS:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_SHARED_CLEAN:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_SHARED_DIRTY:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_SWAPPABLE_PSS:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_SWAPPED_OUT:I
+Landroid/os/Debug$MemoryInfo;->OFFSET_SWAPPED_OUT_PSS:I
+Landroid/os/Debug$MemoryInfo;->OTHER_APK:I
+Landroid/os/Debug$MemoryInfo;->OTHER_ART:I
+Landroid/os/Debug$MemoryInfo;->OTHER_ART_APP:I
+Landroid/os/Debug$MemoryInfo;->OTHER_ART_BOOT:I
+Landroid/os/Debug$MemoryInfo;->OTHER_ASHMEM:I
+Landroid/os/Debug$MemoryInfo;->OTHER_CURSOR:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_LARGE:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_NON_MOVING:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_NORMAL:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_OTHER:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_OTHER_ACCOUNTING:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_OTHER_CODE_CACHE:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_OTHER_COMPILER_METADATA:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_OTHER_INDIRECT_REFERENCE_TABLE:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_OTHER_LINEARALLOC:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DALVIK_ZYGOTE:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DEX:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DEX_APP_DEX:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DEX_APP_VDEX:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DEX_BOOT_VDEX:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DVK_STAT_ART_END:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DVK_STAT_ART_START:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DVK_STAT_DALVIK_END:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DVK_STAT_DALVIK_OTHER_END:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DVK_STAT_DALVIK_OTHER_START:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DVK_STAT_DALVIK_START:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DVK_STAT_DEX_END:I
+Landroid/os/Debug$MemoryInfo;->OTHER_DVK_STAT_DEX_START:I
+Landroid/os/Debug$MemoryInfo;->OTHER_GL:I
+Landroid/os/Debug$MemoryInfo;->OTHER_GL_DEV:I
+Landroid/os/Debug$MemoryInfo;->OTHER_GRAPHICS:I
+Landroid/os/Debug$MemoryInfo;->OTHER_JAR:I
+Landroid/os/Debug$MemoryInfo;->OTHER_OAT:I
+Landroid/os/Debug$MemoryInfo;->OTHER_OTHER_MEMTRACK:I
+Landroid/os/Debug$MemoryInfo;->OTHER_SO:I
+Landroid/os/Debug$MemoryInfo;->OTHER_STACK:I
+Landroid/os/Debug$MemoryInfo;->OTHER_TTF:I
+Landroid/os/Debug$MemoryInfo;->OTHER_UNKNOWN_DEV:I
+Landroid/os/Debug$MemoryInfo;->OTHER_UNKNOWN_MAP:I
+Landroid/os/Debug;->cacheRegisterMap(Ljava/lang/String;)Z
+Landroid/os/Debug;->debugProperties:Lcom/android/internal/util/TypedProperties;
+Landroid/os/Debug;->DEFAULT_TRACE_BODY:Ljava/lang/String;
+Landroid/os/Debug;->DEFAULT_TRACE_EXTENSION:Ljava/lang/String;
+Landroid/os/Debug;->dumpHprofData(Ljava/lang/String;Ljava/io/FileDescriptor;)V
+Landroid/os/Debug;->dumpHprofDataDdms()V
+Landroid/os/Debug;->dumpJavaBacktraceToFileTimeout(ILjava/lang/String;I)Z
+Landroid/os/Debug;->dumpNativeBacktraceToFileTimeout(ILjava/lang/String;I)Z
+Landroid/os/Debug;->dumpNativeMallocInfo(Ljava/io/FileDescriptor;)V
+Landroid/os/Debug;->fieldTypeMatches(Ljava/lang/reflect/Field;Ljava/lang/Class;)Z
+Landroid/os/Debug;->fixTracePath(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/Debug;->getCaller([Ljava/lang/StackTraceElement;I)Ljava/lang/String;
+Landroid/os/Debug;->getCallers(II)Ljava/lang/String;
+Landroid/os/Debug;->getCallers(ILjava/lang/String;)Ljava/lang/String;
+Landroid/os/Debug;->getMethodTracingMode()I
+Landroid/os/Debug;->getPss(I[J[J)J
+Landroid/os/Debug;->getUnreachableMemory(IZ)Ljava/lang/String;
+Landroid/os/Debug;->getVmFeatureList()[Ljava/lang/String;
+Landroid/os/Debug;->MEMINFO_BUFFERS:I
+Landroid/os/Debug;->MEMINFO_CACHED:I
+Landroid/os/Debug;->MEMINFO_COUNT:I
+Landroid/os/Debug;->MEMINFO_FREE:I
+Landroid/os/Debug;->MEMINFO_KERNEL_STACK:I
+Landroid/os/Debug;->MEMINFO_MAPPED:I
+Landroid/os/Debug;->MEMINFO_PAGE_TABLES:I
+Landroid/os/Debug;->MEMINFO_SHMEM:I
+Landroid/os/Debug;->MEMINFO_SLAB:I
+Landroid/os/Debug;->MEMINFO_SLAB_RECLAIMABLE:I
+Landroid/os/Debug;->MEMINFO_SLAB_UNRECLAIMABLE:I
+Landroid/os/Debug;->MEMINFO_SWAP_FREE:I
+Landroid/os/Debug;->MEMINFO_SWAP_TOTAL:I
+Landroid/os/Debug;->MEMINFO_TOTAL:I
+Landroid/os/Debug;->MEMINFO_VM_ALLOC_USED:I
+Landroid/os/Debug;->MEMINFO_ZRAM_TOTAL:I
+Landroid/os/Debug;->MIN_DEBUGGER_IDLE:I
+Landroid/os/Debug;->modifyFieldIfSet(Ljava/lang/reflect/Field;Lcom/android/internal/util/TypedProperties;Ljava/lang/String;)V
+Landroid/os/Debug;->mWaiting:Z
+Landroid/os/Debug;->setFieldsOn(Ljava/lang/Class;)V
+Landroid/os/Debug;->setFieldsOn(Ljava/lang/Class;Z)V
+Landroid/os/Debug;->SPIN_DELAY:I
+Landroid/os/Debug;->startMethodTracing(Ljava/lang/String;Ljava/io/FileDescriptor;IIZ)V
+Landroid/os/Debug;->startMethodTracingDdms(IIZI)V
+Landroid/os/Debug;->SYSFS_QEMU_TRACE_STATE:Ljava/lang/String;
+Landroid/os/Debug;->TAG:Ljava/lang/String;
+Landroid/os/DeviceIdleManager;-><init>(Landroid/content/Context;Landroid/os/IDeviceIdleController;)V
+Landroid/os/DeviceIdleManager;->mContext:Landroid/content/Context;
+Landroid/os/DeviceIdleManager;->mService:Landroid/os/IDeviceIdleController;
+Landroid/os/DropBoxManager$Entry;->mData:[B
+Landroid/os/DropBoxManager$Entry;->mFileDescriptor:Landroid/os/ParcelFileDescriptor;
+Landroid/os/DropBoxManager$Entry;->mFlags:I
+Landroid/os/DropBoxManager$Entry;->mTag:Ljava/lang/String;
+Landroid/os/DropBoxManager$Entry;->mTimeMillis:J
+Landroid/os/DropBoxManager;-><init>(Landroid/content/Context;Lcom/android/internal/os/IDropBoxManagerService;)V
+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;
+Landroid/os/Environment$UserEnvironment;->buildExternalStorageAppDataDirs(Ljava/lang/String;)[Ljava/io/File;
+Landroid/os/Environment$UserEnvironment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
+Landroid/os/Environment$UserEnvironment;->buildExternalStorageAppMediaDirs(Ljava/lang/String;)[Ljava/io/File;
+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;
+Landroid/os/Environment;->DIR_ANDROID_DATA:Ljava/io/File;
+Landroid/os/Environment;->DIR_ANDROID_EXPAND:Ljava/io/File;
+Landroid/os/Environment;->DIR_ANDROID_ROOT:Ljava/io/File;
+Landroid/os/Environment;->DIR_ANDROID_STORAGE:Ljava/io/File;
+Landroid/os/Environment;->DIR_CACHE:Ljava/lang/String;
+Landroid/os/Environment;->DIR_DATA:Ljava/lang/String;
+Landroid/os/Environment;->DIR_DOWNLOAD_CACHE:Ljava/io/File;
+Landroid/os/Environment;->DIR_FILES:Ljava/lang/String;
+Landroid/os/Environment;->DIR_MEDIA:Ljava/lang/String;
+Landroid/os/Environment;->DIR_OBB:Ljava/lang/String;
+Landroid/os/Environment;->DIR_ODM_ROOT:Ljava/io/File;
+Landroid/os/Environment;->DIR_OEM_ROOT:Ljava/io/File;
+Landroid/os/Environment;->DIR_PRODUCT_ROOT:Ljava/io/File;
+Landroid/os/Environment;->DIR_VENDOR_ROOT:Ljava/io/File;
+Landroid/os/Environment;->ENV_ANDROID_DATA:Ljava/lang/String;
+Landroid/os/Environment;->ENV_ANDROID_EXPAND:Ljava/lang/String;
+Landroid/os/Environment;->ENV_ANDROID_ROOT:Ljava/lang/String;
+Landroid/os/Environment;->ENV_ANDROID_STORAGE:Ljava/lang/String;
+Landroid/os/Environment;->ENV_DOWNLOAD_CACHE:Ljava/lang/String;
+Landroid/os/Environment;->ENV_EXTERNAL_STORAGE:Ljava/lang/String;
+Landroid/os/Environment;->ENV_ODM_ROOT:Ljava/lang/String;
+Landroid/os/Environment;->ENV_OEM_ROOT:Ljava/lang/String;
+Landroid/os/Environment;->ENV_PRODUCT_ROOT:Ljava/lang/String;
+Landroid/os/Environment;->ENV_VENDOR_ROOT:Ljava/lang/String;
+Landroid/os/Environment;->getDataAppDirectory(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataDirectory(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataMiscCeDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataMiscCeDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->getDataMiscDeDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->getDataMiscDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataPreloadsAppsDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataPreloadsDemoDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataPreloadsDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataPreloadsFileCacheDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataPreloadsFileCacheDirectory(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataPreloadsMediaDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataProfilesDeDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->getDataProfilesDePackageDirectory(ILjava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataRefProfilesDePackageDirectory(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataSystemCeDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataSystemCeDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->getDataSystemDeDirectory()Ljava/io/File;
+Landroid/os/Environment;->getDataSystemDeDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->getDataUserCeDirectory(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataUserCeDirectory(Ljava/lang/String;I)Ljava/io/File;
+Landroid/os/Environment;->getDataUserCePackageDirectory(Ljava/lang/String;ILjava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataUserDeDirectory(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataUserDeDirectory(Ljava/lang/String;I)Ljava/io/File;
+Landroid/os/Environment;->getDataUserDePackageDirectory(Ljava/lang/String;ILjava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getDataVendorCeDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->getDataVendorDeDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->getDirectory(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
+Landroid/os/Environment;->getExpandDirectory()Ljava/io/File;
+Landroid/os/Environment;->getOdmDirectory()Ljava/io/File;
+Landroid/os/Environment;->getProductDirectory()Ljava/io/File;
+Landroid/os/Environment;->getUserConfigDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->getUserSystemDirectory(I)Ljava/io/File;
+Landroid/os/Environment;->hasInterestingFiles(Ljava/io/File;)Z
+Landroid/os/Environment;->HAS_ALARMS:I
+Landroid/os/Environment;->HAS_ANDROID:I
+Landroid/os/Environment;->HAS_DCIM:I
+Landroid/os/Environment;->HAS_DOCUMENTS:I
+Landroid/os/Environment;->HAS_DOWNLOADS:I
+Landroid/os/Environment;->HAS_MOVIES:I
+Landroid/os/Environment;->HAS_MUSIC:I
+Landroid/os/Environment;->HAS_NOTIFICATIONS:I
+Landroid/os/Environment;->HAS_OTHER:I
+Landroid/os/Environment;->HAS_PICTURES:I
+Landroid/os/Environment;->HAS_PODCASTS:I
+Landroid/os/Environment;->HAS_RINGTONES:I
+Landroid/os/Environment;->isInterestingFile(Ljava/io/File;)Z
+Landroid/os/Environment;->isStandardDirectory(Ljava/lang/String;)Z
+Landroid/os/Environment;->setUserRequired(Z)V
+Landroid/os/Environment;->STANDARD_DIRECTORIES:[Ljava/lang/String;
+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
+Landroid/os/FileBridge$FileBridgeOutputStream;->mClient:Ljava/io/FileDescriptor;
+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
+Landroid/os/FileBridge;->CMD_WRITE:I
+Landroid/os/FileBridge;->forceClose()V
+Landroid/os/FileBridge;->getClientSocket()Ljava/io/FileDescriptor;
+Landroid/os/FileBridge;->isClosed()Z
+Landroid/os/FileBridge;->mClient:Ljava/io/FileDescriptor;
+Landroid/os/FileBridge;->mClosed:Z
+Landroid/os/FileBridge;->mServer:Ljava/io/FileDescriptor;
+Landroid/os/FileBridge;->MSG_LENGTH:I
+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
+Landroid/os/FileObserver$ObserverThread;->m_observers:Ljava/util/HashMap;
+Landroid/os/FileObserver$ObserverThread;->observe(I)V
+Landroid/os/FileObserver$ObserverThread;->startWatching(ILjava/lang/String;I)I
+Landroid/os/FileObserver$ObserverThread;->startWatching(Ljava/lang/String;ILandroid/os/FileObserver;)I
+Landroid/os/FileObserver$ObserverThread;->stopWatching(I)V
+Landroid/os/FileObserver$ObserverThread;->stopWatching(II)V
+Landroid/os/FileObserver;->LOG_TAG:Ljava/lang/String;
+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;
+Landroid/os/FileUtils$MemoryPipe;->data:[B
+Landroid/os/FileUtils$MemoryPipe;->getFD()Ljava/io/FileDescriptor;
+Landroid/os/FileUtils$MemoryPipe;->getInternalFD()Ljava/io/FileDescriptor;
+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;
+Landroid/os/FileUtils;->buildUniqueFileWithExtension(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
+Landroid/os/FileUtils;->buildValidExtFilename(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/FileUtils;->buildValidFatFilename(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/FileUtils;->bytesToFile(Ljava/lang/String;[B)V
+Landroid/os/FileUtils;->contains(Ljava/io/File;Ljava/io/File;)Z
+Landroid/os/FileUtils;->contains(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/FileUtils;->contains([Ljava/io/File;Ljava/io/File;)Z
+Landroid/os/FileUtils;->copy(Ljava/io/File;Ljava/io/File;)J
+Landroid/os/FileUtils;->copy(Ljava/io/File;Ljava/io/File;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
+Landroid/os/FileUtils;->copy(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)J
+Landroid/os/FileUtils;->copy(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
+Landroid/os/FileUtils;->copy(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
+Landroid/os/FileUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)J
+Landroid/os/FileUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
+Landroid/os/FileUtils;->copyFileOrThrow(Ljava/io/File;Ljava/io/File;)V
+Landroid/os/FileUtils;->copyInternalSendfile(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
+Landroid/os/FileUtils;->copyInternalSplice(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
+Landroid/os/FileUtils;->copyInternalUserspace(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
+Landroid/os/FileUtils;->copyInternalUserspace(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
+Landroid/os/FileUtils;->copyPermissions(Ljava/io/File;Ljava/io/File;)V
+Landroid/os/FileUtils;->copyToFileOrThrow(Ljava/io/InputStream;Ljava/io/File;)V
+Landroid/os/FileUtils;->COPY_CHECKPOINT_BYTES:J
+Landroid/os/FileUtils;->createDir(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+Landroid/os/FileUtils;->deleteContentsAndDir(Ljava/io/File;)Z
+Landroid/os/FileUtils;->EMPTY:[Ljava/io/File;
+Landroid/os/FileUtils;->ENABLE_COPY_OPTIMIZATIONS:Z
+Landroid/os/FileUtils;->getUid(Ljava/lang/String;)I
+Landroid/os/FileUtils;->isValidExtFilename(Ljava/lang/String;)Z
+Landroid/os/FileUtils;->isValidExtFilenameChar(C)Z
+Landroid/os/FileUtils;->isValidFatFilename(Ljava/lang/String;)Z
+Landroid/os/FileUtils;->isValidFatFilenameChar(C)Z
+Landroid/os/FileUtils;->listFilesOrEmpty(Ljava/io/File;)[Ljava/io/File;
+Landroid/os/FileUtils;->listFilesOrEmpty(Ljava/io/File;Ljava/io/FilenameFilter;)[Ljava/io/File;
+Landroid/os/FileUtils;->listOrEmpty(Ljava/io/File;)[Ljava/lang/String;
+Landroid/os/FileUtils;->newFileOrNull(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/FileUtils;->rewriteAfterRename(Ljava/io/File;Ljava/io/File;Ljava/io/File;)Ljava/io/File;
+Landroid/os/FileUtils;->rewriteAfterRename(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/FileUtils;->rewriteAfterRename(Ljava/io/File;Ljava/io/File;[Ljava/lang/String;)[Ljava/lang/String;
+Landroid/os/FileUtils;->roundStorageSize(J)J
+Landroid/os/FileUtils;->splitFileName(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Landroid/os/FileUtils;->S_IRGRP:I
+Landroid/os/FileUtils;->S_IROTH:I
+Landroid/os/FileUtils;->S_IRUSR:I
+Landroid/os/FileUtils;->S_IRWXG:I
+Landroid/os/FileUtils;->S_IRWXO:I
+Landroid/os/FileUtils;->S_IRWXU:I
+Landroid/os/FileUtils;->S_IWGRP:I
+Landroid/os/FileUtils;->S_IWOTH:I
+Landroid/os/FileUtils;->S_IWUSR:I
+Landroid/os/FileUtils;->S_IXGRP:I
+Landroid/os/FileUtils;->S_IXOTH:I
+Landroid/os/FileUtils;->S_IXUSR:I
+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
+Landroid/os/GraphicsEnvironment;->DEBUG:Z
+Landroid/os/GraphicsEnvironment;->earlyInitEGL()V
+Landroid/os/GraphicsEnvironment;->getInstance()Landroid/os/GraphicsEnvironment;
+Landroid/os/GraphicsEnvironment;->isDebuggable(Landroid/content/Context;)Z
+Landroid/os/GraphicsEnvironment;->mClassLoader:Ljava/lang/ClassLoader;
+Landroid/os/GraphicsEnvironment;->mDebugLayerPath:Ljava/lang/String;
+Landroid/os/GraphicsEnvironment;->mLayerPath:Ljava/lang/String;
+Landroid/os/GraphicsEnvironment;->PROPERTY_GFX_DRIVER:Ljava/lang/String;
+Landroid/os/GraphicsEnvironment;->setDebugLayers(Ljava/lang/String;)V
+Landroid/os/GraphicsEnvironment;->setDriverPath(Ljava/lang/String;)V
+Landroid/os/GraphicsEnvironment;->setLayerPaths(Ljava/lang/ClassLoader;Ljava/lang/String;)V
+Landroid/os/GraphicsEnvironment;->setLayerPaths(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/GraphicsEnvironment;->setup(Landroid/content/Context;)V
+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
+Landroid/os/Handler;->enqueueMessage(Landroid/os/MessageQueue;Landroid/os/Message;J)Z
+Landroid/os/Handler;->executeOrSendMessage(Landroid/os/Message;)Z
+Landroid/os/Handler;->FIND_POTENTIAL_LEAKS:Z
+Landroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;)Landroid/os/Message;
+Landroid/os/Handler;->getTraceName(Landroid/os/Message;)Ljava/lang/String;
+Landroid/os/Handler;->handleCallback(Landroid/os/Message;)V
+Landroid/os/Handler;->hasMessagesOrCallbacks()Z
+Landroid/os/Handler;->mainIfNull(Landroid/os/Handler;)Landroid/os/Handler;
+Landroid/os/Handler;->MAIN_THREAD_HANDLER:Landroid/os/Handler;
+Landroid/os/Handler;->mAsynchronous:Z
+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;
+Landroid/os/HandlerThread;->mHandler:Landroid/os/Handler;
+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
+Landroid/os/health/HealthKeys;->BASE_PROCESS:I
+Landroid/os/health/HealthKeys;->BASE_SERVICE:I
+Landroid/os/health/HealthKeys;->BASE_UID:I
+Landroid/os/health/HealthKeys;->TYPE_COUNT:I
+Landroid/os/health/HealthKeys;->TYPE_MEASUREMENT:I
+Landroid/os/health/HealthKeys;->TYPE_MEASUREMENTS:I
+Landroid/os/health/HealthKeys;->TYPE_STATS:I
+Landroid/os/health/HealthKeys;->TYPE_TIMER:I
+Landroid/os/health/HealthKeys;->TYPE_TIMERS:I
+Landroid/os/health/HealthKeys;->UNKNOWN_KEY:I
+Landroid/os/health/HealthStats;-><init>()V
+Landroid/os/health/HealthStats;->createHealthStatsMap(Landroid/os/Parcel;)Landroid/util/ArrayMap;
+Landroid/os/health/HealthStats;->createLongsMap(Landroid/os/Parcel;)Landroid/util/ArrayMap;
+Landroid/os/health/HealthStats;->createParcelableMap(Landroid/os/Parcel;Landroid/os/Parcelable$Creator;)Landroid/util/ArrayMap;
+Landroid/os/health/HealthStats;->getIndex([II)I
+Landroid/os/health/HealthStats;->mDataType:Ljava/lang/String;
+Landroid/os/health/HealthStats;->mMeasurementKeys:[I
+Landroid/os/health/HealthStats;->mMeasurementsKeys:[I
+Landroid/os/health/HealthStats;->mMeasurementsValues:[Landroid/util/ArrayMap;
+Landroid/os/health/HealthStats;->mMeasurementValues:[J
+Landroid/os/health/HealthStats;->mStatsKeys:[I
+Landroid/os/health/HealthStats;->mStatsValues:[Landroid/util/ArrayMap;
+Landroid/os/health/HealthStats;->mTimerCounts:[I
+Landroid/os/health/HealthStats;->mTimerKeys:[I
+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;
+Landroid/os/health/HealthStatsWriter;->mMeasurementFields:[Z
+Landroid/os/health/HealthStatsWriter;->mMeasurementsValues:[Landroid/util/ArrayMap;
+Landroid/os/health/HealthStatsWriter;->mMeasurementValues:[J
+Landroid/os/health/HealthStatsWriter;->mStatsValues:[Landroid/util/ArrayMap;
+Landroid/os/health/HealthStatsWriter;->mTimerCounts:[I
+Landroid/os/health/HealthStatsWriter;->mTimerFields:[Z
+Landroid/os/health/HealthStatsWriter;->mTimersValues:[Landroid/util/ArrayMap;
+Landroid/os/health/HealthStatsWriter;->mTimerTimes:[J
+Landroid/os/health/HealthStatsWriter;->writeHealthStatsWriterMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+Landroid/os/health/HealthStatsWriter;->writeLongsMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+Landroid/os/health/HealthStatsWriter;->writeParcelableMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+Landroid/os/health/PackageHealthStats;-><init>()V
+Landroid/os/health/PackageHealthStats;->CONSTANTS:Landroid/os/health/HealthKeys$Constants;
+Landroid/os/health/PidHealthStats;-><init>()V
+Landroid/os/health/PidHealthStats;->CONSTANTS:Landroid/os/health/HealthKeys$Constants;
+Landroid/os/health/ProcessHealthStats;-><init>()V
+Landroid/os/health/ProcessHealthStats;->CONSTANTS:Landroid/os/health/HealthKeys$Constants;
+Landroid/os/health/ServiceHealthStats;-><init>()V
+Landroid/os/health/ServiceHealthStats;->CONSTANTS:Landroid/os/health/HealthKeys$Constants;
+Landroid/os/health/SystemHealthManager;-><init>(Lcom/android/internal/app/IBatteryStats;)V
+Landroid/os/health/SystemHealthManager;->mBatteryStats:Lcom/android/internal/app/IBatteryStats;
+Landroid/os/health/TimerStat;->mCount:I
+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;
+Landroid/os/HidlSupport;-><init>()V
+Landroid/os/HidlSupport;->primitiveArrayHashCode(Ljava/lang/Object;)I
+Landroid/os/HidlSupport;->throwErrorIfUnsupportedType(Ljava/lang/Object;)V
+Landroid/os/HwBinder;->mNativeContext:J
+Landroid/os/HwBinder;->native_init()J
+Landroid/os/HwBinder;->native_report_sysprop_change()V
+Landroid/os/HwBinder;->native_setup()V
+Landroid/os/HwBinder;->sNativeRegistry:Llibcore/util/NativeAllocationRegistry;
+Landroid/os/HwBinder;->TAG:Ljava/lang/String;
+Landroid/os/HwBlob;->mNativeContext:J
+Landroid/os/HwBlob;->native_init()J
+Landroid/os/HwBlob;->native_setup(I)V
+Landroid/os/HwBlob;->sNativeRegistry:Llibcore/util/NativeAllocationRegistry;
+Landroid/os/HwBlob;->TAG:Ljava/lang/String;
+Landroid/os/HwParcel;->mNativeContext:J
+Landroid/os/HwParcel;->native_init()J
+Landroid/os/HwParcel;->native_setup(Z)V
+Landroid/os/HwParcel;->readBoolVectorAsArray()[Z
+Landroid/os/HwParcel;->readDoubleVectorAsArray()[D
+Landroid/os/HwParcel;->readFloatVectorAsArray()[F
+Landroid/os/HwParcel;->readInt16VectorAsArray()[S
+Landroid/os/HwParcel;->readInt32VectorAsArray()[I
+Landroid/os/HwParcel;->readInt64VectorAsArray()[J
+Landroid/os/HwParcel;->readInt8VectorAsArray()[B
+Landroid/os/HwParcel;->readStringVectorAsArray()[Ljava/lang/String;
+Landroid/os/HwParcel;->sNativeRegistry:Llibcore/util/NativeAllocationRegistry;
+Landroid/os/HwParcel;->TAG:Ljava/lang/String;
+Landroid/os/HwParcel;->writeBoolVector([Z)V
+Landroid/os/HwParcel;->writeDoubleVector([D)V
+Landroid/os/HwParcel;->writeFloatVector([F)V
+Landroid/os/HwParcel;->writeInt16Vector([S)V
+Landroid/os/HwParcel;->writeInt32Vector([I)V
+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;
+Landroid/os/IBatteryPropertiesRegistrar$Stub;->TRANSACTION_getProperty:I
+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
+Landroid/os/IBatteryPropertiesRegistrar;->unregisterListener(Landroid/os/IBatteryPropertiesListener;)V
+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
+Landroid/os/IDeviceIdleController$Stub$Proxy;->addPowerSaveTempWhitelistAppForSms(Ljava/lang/String;ILjava/lang/String;)J
+Landroid/os/IDeviceIdleController$Stub$Proxy;->addPowerSaveWhitelistApp(Ljava/lang/String;)V
+Landroid/os/IDeviceIdleController$Stub$Proxy;->exitIdle(Ljava/lang/String;)V
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getAppIdTempWhitelist()[I
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getAppIdUserWhitelist()[I
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getAppIdWhitelist()[I
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getAppIdWhitelistExceptIdle()[I
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getFullPowerWhitelist()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getFullPowerWhitelistExceptIdle()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getRemovedSystemPowerWhitelistApps()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getSystemPowerWhitelist()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getSystemPowerWhitelistExceptIdle()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController$Stub$Proxy;->getUserPowerWhitelist()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController$Stub$Proxy;->isPowerSaveWhitelistApp(Ljava/lang/String;)Z
+Landroid/os/IDeviceIdleController$Stub$Proxy;->isPowerSaveWhitelistExceptIdleApp(Ljava/lang/String;)Z
+Landroid/os/IDeviceIdleController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/IDeviceIdleController$Stub$Proxy;->registerMaintenanceActivityListener(Landroid/os/IMaintenanceActivityListener;)Z
+Landroid/os/IDeviceIdleController$Stub$Proxy;->removePowerSaveWhitelistApp(Ljava/lang/String;)V
+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
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_addPowerSaveTempWhitelistAppForMms:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_addPowerSaveTempWhitelistAppForSms:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_addPowerSaveWhitelistApp:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_exitIdle:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getAppIdTempWhitelist:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getAppIdUserWhitelist:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getAppIdWhitelist:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getAppIdWhitelistExceptIdle:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getFullPowerWhitelist:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getFullPowerWhitelistExceptIdle:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getRemovedSystemPowerWhitelistApps:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getSystemPowerWhitelist:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getSystemPowerWhitelistExceptIdle:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_getUserPowerWhitelist:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_isPowerSaveWhitelistApp:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_isPowerSaveWhitelistExceptIdleApp:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_registerMaintenanceActivityListener:I
+Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_removePowerSaveWhitelistApp:I
+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
+Landroid/os/IDeviceIdleController;->exitIdle(Ljava/lang/String;)V
+Landroid/os/IDeviceIdleController;->getAppIdUserWhitelist()[I
+Landroid/os/IDeviceIdleController;->getAppIdWhitelist()[I
+Landroid/os/IDeviceIdleController;->getAppIdWhitelistExceptIdle()[I
+Landroid/os/IDeviceIdleController;->getFullPowerWhitelist()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController;->getRemovedSystemPowerWhitelistApps()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController;->getSystemPowerWhitelist()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController;->getSystemPowerWhitelistExceptIdle()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController;->getUserPowerWhitelist()[Ljava/lang/String;
+Landroid/os/IDeviceIdleController;->isPowerSaveWhitelistApp(Ljava/lang/String;)Z
+Landroid/os/IDeviceIdleController;->isPowerSaveWhitelistExceptIdleApp(Ljava/lang/String;)Z
+Landroid/os/IDeviceIdleController;->registerMaintenanceActivityListener(Landroid/os/IMaintenanceActivityListener;)Z
+Landroid/os/IDeviceIdleController;->removePowerSaveWhitelistApp(Ljava/lang/String;)V
+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;
+Landroid/os/IIncidentReportStatusListener$Stub$Proxy;->onReportFailed()V
+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;
+Landroid/os/IIncidentReportStatusListener$Stub;->TRANSACTION_onReportFailed:I
+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
+Landroid/os/IInstalld$Stub$Proxy;->clearAppProfiles(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->copySystemProfile(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld$Stub$Proxy;->createAppData(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;I)J
+Landroid/os/IInstalld$Stub$Proxy;->createOatDir(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->createProfileSnapshot(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld$Stub$Proxy;->createUserData(Ljava/lang/String;III)V
+Landroid/os/IInstalld$Stub$Proxy;->deleteOdex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->destroyAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
+Landroid/os/IInstalld$Stub$Proxy;->destroyAppProfiles(Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->destroyUserData(Ljava/lang/String;II)V
+Landroid/os/IInstalld$Stub$Proxy;->dexopt(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->dumpProfiles(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld$Stub$Proxy;->fixupAppData(Ljava/lang/String;I)V
+Landroid/os/IInstalld$Stub$Proxy;->freeCache(Ljava/lang/String;JJI)V
+Landroid/os/IInstalld$Stub$Proxy;->getAppSize(Ljava/lang/String;[Ljava/lang/String;III[J[Ljava/lang/String;)[J
+Landroid/os/IInstalld$Stub$Proxy;->getExternalSize(Ljava/lang/String;II[I)[J
+Landroid/os/IInstalld$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/IInstalld$Stub$Proxy;->getUserSize(Ljava/lang/String;II[I)[J
+Landroid/os/IInstalld$Stub$Proxy;->hashSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)[B
+Landroid/os/IInstalld$Stub$Proxy;->idmap(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/os/IInstalld$Stub$Proxy;->installApkVerity(Ljava/lang/String;Ljava/io/FileDescriptor;I)V
+Landroid/os/IInstalld$Stub$Proxy;->invalidateMounts()V
+Landroid/os/IInstalld$Stub$Proxy;->isQuotaSupported(Ljava/lang/String;)Z
+Landroid/os/IInstalld$Stub$Proxy;->linkFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->linkNativeLibraryDirectory(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/os/IInstalld$Stub$Proxy;->markBootComplete(Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->mergeProfiles(ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld$Stub$Proxy;->migrateAppData(Ljava/lang/String;Ljava/lang/String;II)V
+Landroid/os/IInstalld$Stub$Proxy;->moveAb(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->moveCompleteApp(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)V
+Landroid/os/IInstalld$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/IInstalld$Stub$Proxy;->prepareAppProfile(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld$Stub$Proxy;->reconcileSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;I[Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/os/IInstalld$Stub$Proxy;->removeIdmap(Ljava/lang/String;)V
+Landroid/os/IInstalld$Stub$Proxy;->restoreconAppData(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V
+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;
+Landroid/os/IInstalld$Stub;->TRANSACTION_assertFsverityRootHashMatches:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_clearAppData:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_clearAppProfiles:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_copySystemProfile:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_createAppData:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_createOatDir:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_createProfileSnapshot:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_createUserData:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_deleteOdex:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_destroyAppData:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_destroyAppProfiles:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_destroyProfileSnapshot:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_destroyUserData:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_dexopt:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_dumpProfiles:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_fixupAppData:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_freeCache:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_getAppSize:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_getExternalSize:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_getUserSize:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_hashSecondaryDexFile:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_idmap:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_installApkVerity:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_invalidateMounts:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_isQuotaSupported:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_linkFile:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_linkNativeLibraryDirectory:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_markBootComplete:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_mergeProfiles:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_migrateAppData:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_moveAb:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_moveCompleteApp:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_prepareAppProfile:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_reconcileSecondaryDexFile:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_removeIdmap:I
+Landroid/os/IInstalld$Stub;->TRANSACTION_restoreconAppData:I
+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
+Landroid/os/IInstalld;->copySystemProfile(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld;->createAppData(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;I)J
+Landroid/os/IInstalld;->createOatDir(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld;->createProfileSnapshot(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld;->createUserData(Ljava/lang/String;III)V
+Landroid/os/IInstalld;->deleteOdex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld;->destroyAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
+Landroid/os/IInstalld;->destroyAppProfiles(Ljava/lang/String;)V
+Landroid/os/IInstalld;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld;->destroyUserData(Ljava/lang/String;II)V
+Landroid/os/IInstalld;->dexopt(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld;->dumpProfiles(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld;->fixupAppData(Ljava/lang/String;I)V
+Landroid/os/IInstalld;->freeCache(Ljava/lang/String;JJI)V
+Landroid/os/IInstalld;->getAppSize(Ljava/lang/String;[Ljava/lang/String;III[J[Ljava/lang/String;)[J
+Landroid/os/IInstalld;->getExternalSize(Ljava/lang/String;II[I)[J
+Landroid/os/IInstalld;->getUserSize(Ljava/lang/String;II[I)[J
+Landroid/os/IInstalld;->hashSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)[B
+Landroid/os/IInstalld;->idmap(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/os/IInstalld;->installApkVerity(Ljava/lang/String;Ljava/io/FileDescriptor;I)V
+Landroid/os/IInstalld;->invalidateMounts()V
+Landroid/os/IInstalld;->isQuotaSupported(Ljava/lang/String;)Z
+Landroid/os/IInstalld;->linkFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld;->linkNativeLibraryDirectory(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/os/IInstalld;->markBootComplete(Ljava/lang/String;)V
+Landroid/os/IInstalld;->mergeProfiles(ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld;->migrateAppData(Ljava/lang/String;Ljava/lang/String;II)V
+Landroid/os/IInstalld;->moveAb(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IInstalld;->moveCompleteApp(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)V
+Landroid/os/IInstalld;->prepareAppProfile(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/IInstalld;->reconcileSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;I[Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/os/IInstalld;->removeIdmap(Ljava/lang/String;)V
+Landroid/os/IInstalld;->restoreconAppData(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V
+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
+Landroid/os/IncidentMetadata$SectionStats;->ID:J
+Landroid/os/IncidentMetadata$SectionStats;->IS_TRUNCATED:J
+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
+Landroid/os/IncidentMetadata;->EXPLICIT:I
+Landroid/os/IncidentMetadata;->LOCAL:I
+Landroid/os/IncidentMetadata;->REPORT_ID:J
+Landroid/os/IncidentMetadata;->REQUEST_SIZE:J
+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
+Landroid/os/IncidentProto;->AMPROCESSES:J
+Landroid/os/IncidentProto;->AMSERVICES:J
+Landroid/os/IncidentProto;->APPWIDGET:J
+Landroid/os/IncidentProto;->BATTERY:J
+Landroid/os/IncidentProto;->BATTERYSTATS:J
+Landroid/os/IncidentProto;->BATTERY_HISTORY:J
+Landroid/os/IncidentProto;->BATTERY_TYPE:J
+Landroid/os/IncidentProto;->BROADCASTS:J
+Landroid/os/IncidentProto;->CPU_FREQ:J
+Landroid/os/IncidentProto;->CPU_INFO:J
+Landroid/os/IncidentProto;->CRASH_LOGS:J
+Landroid/os/IncidentProto;->DISKSTATS:J
+Landroid/os/IncidentProto;->EVENTS_LOGS:J
+Landroid/os/IncidentProto;->EVENT_LOG_TAG_MAP:J
+Landroid/os/IncidentProto;->FINGERPRINT:J
+Landroid/os/IncidentProto;->GRAPHICSSTATS:J
+Landroid/os/IncidentProto;->HAL_TRACES:J
+Landroid/os/IncidentProto;->HEADER:J
+Landroid/os/IncidentProto;->JAVA_TRACES:J
+Landroid/os/IncidentProto;->JOBSCHEDULER:J
+Landroid/os/IncidentProto;->KERNEL_LOGS:J
+Landroid/os/IncidentProto;->KERNEL_WAKE_SOURCES:J
+Landroid/os/IncidentProto;->LAST_KMSG:J
+Landroid/os/IncidentProto;->MAIN_LOGS:J
+Landroid/os/IncidentProto;->MEMINFO:J
+Landroid/os/IncidentProto;->METADATA:J
+Landroid/os/IncidentProto;->NATIVE_TRACES:J
+Landroid/os/IncidentProto;->NETSTATS:J
+Landroid/os/IncidentProto;->NOTIFICATION:J
+Landroid/os/IncidentProto;->PACKAGE:J
+Landroid/os/IncidentProto;->PAGE_TYPE_INFO:J
+Landroid/os/IncidentProto;->POWER:J
+Landroid/os/IncidentProto;->PRINT:J
+Landroid/os/IncidentProto;->PROCESSES_AND_THREADS:J
+Landroid/os/IncidentProto;->PROCRANK:J
+Landroid/os/IncidentProto;->PROCSTATS:J
+Landroid/os/IncidentProto;->RADIO_LOGS:J
+Landroid/os/IncidentProto;->SECURITY_LOGS:J
+Landroid/os/IncidentProto;->SETTINGS:J
+Landroid/os/IncidentProto;->STATS_LOGS:J
+Landroid/os/IncidentProto;->SYSTEM_LOGS:J
+Landroid/os/IncidentProto;->SYSTEM_PROPERTIES:J
+Landroid/os/IncidentProto;->USB:J
+Landroid/os/IncidentProto;->WINDOW:J
+Landroid/os/IncidentReportArgs;->DEST_AUTO:I
+Landroid/os/IncidentReportArgs;->DEST_EXPLICIT:I
+Landroid/os/IncidentReportArgs;->mAll:Z
+Landroid/os/IncidentReportArgs;->mDest:I
+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
+Landroid/os/INetworkManagementService$Stub$Proxy;->addLegacyRouteForNetId(ILandroid/net/RouteInfo;I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->addRoute(ILandroid/net/RouteInfo;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->addVpnUidRanges(I[Landroid/net/UidRange;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->allowProtect(I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->attachPppd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->clearDefaultNetId()V
+Landroid/os/INetworkManagementService$Stub$Proxy;->clearInterfaceAddresses(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->clearPermission([I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->createPhysicalNetwork(ILjava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->createVirtualNetwork(IZZ)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->denyProtect(I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->detachPppd(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->disableIpv6(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->disableNat(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->enableIpv6(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->enableNat(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->getDnsForwarders()[Ljava/lang/String;
+Landroid/os/INetworkManagementService$Stub$Proxy;->getInterfaceConfig(Ljava/lang/String;)Landroid/net/InterfaceConfiguration;
+Landroid/os/INetworkManagementService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/INetworkManagementService$Stub$Proxy;->getIpForwardingEnabled()Z
+Landroid/os/INetworkManagementService$Stub$Proxy;->getNetdService()Landroid/net/INetd;
+Landroid/os/INetworkManagementService$Stub$Proxy;->getNetworkStatsDetail()Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService$Stub$Proxy;->getNetworkStatsSummaryDev()Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService$Stub$Proxy;->getNetworkStatsSummaryXt()Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService$Stub$Proxy;->getNetworkStatsTethering(I)Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService$Stub$Proxy;->getNetworkStatsUidDetail(I[Ljava/lang/String;)Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService$Stub$Proxy;->isBandwidthControlEnabled()Z
+Landroid/os/INetworkManagementService$Stub$Proxy;->isClatdStarted(Ljava/lang/String;)Z
+Landroid/os/INetworkManagementService$Stub$Proxy;->isFirewallEnabled()Z
+Landroid/os/INetworkManagementService$Stub$Proxy;->isNetworkActive()Z
+Landroid/os/INetworkManagementService$Stub$Proxy;->isNetworkRestricted(I)Z
+Landroid/os/INetworkManagementService$Stub$Proxy;->isTetheringStarted()Z
+Landroid/os/INetworkManagementService$Stub$Proxy;->listInterfaces()[Ljava/lang/String;
+Landroid/os/INetworkManagementService$Stub$Proxy;->listTetheredInterfaces()[Ljava/lang/String;
+Landroid/os/INetworkManagementService$Stub$Proxy;->listTtys()[Ljava/lang/String;
+Landroid/os/INetworkManagementService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/INetworkManagementService$Stub$Proxy;->registerNetworkActivityListener(Landroid/os/INetworkActivityListener;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->registerObserver(Landroid/net/INetworkManagementEventObserver;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->registerTetheringStatsProvider(Landroid/net/ITetheringStatsProvider;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeIdleTimer(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeInterfaceAlert(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeInterfaceFromLocalNetwork(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeInterfaceFromNetwork(Ljava/lang/String;I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeInterfaceQuota(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeNetwork(I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeRoute(ILandroid/net/RouteInfo;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeRoutesFromLocalNetwork(Ljava/util/List;)I
+Landroid/os/INetworkManagementService$Stub$Proxy;->removeVpnUidRanges(I[Landroid/net/UidRange;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setAllowOnlyVpnForUids(Z[Landroid/net/UidRange;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setDataSaverModeEnabled(Z)Z
+Landroid/os/INetworkManagementService$Stub$Proxy;->setDefaultNetId(I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setDnsConfigurationForNetwork(I[Ljava/lang/String;[Ljava/lang/String;[ILjava/lang/String;[Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setDnsForwarders(Landroid/net/Network;[Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setFirewallChainEnabled(IZ)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setFirewallEnabled(Z)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setFirewallInterfaceRule(Ljava/lang/String;Z)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setFirewallUidRule(III)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setFirewallUidRules(I[I[I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setGlobalAlert(J)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setInterfaceAlert(Ljava/lang/String;J)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setInterfaceConfig(Ljava/lang/String;Landroid/net/InterfaceConfiguration;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setInterfaceDown(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setInterfaceIpv6PrivacyExtensions(Ljava/lang/String;Z)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setInterfaceQuota(Ljava/lang/String;J)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setInterfaceUp(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setIpForwardingEnabled(Z)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setIPv6AddrGenMode(Ljava/lang/String;I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setMtu(Ljava/lang/String;I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setNetworkPermission(ILjava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setPermission(Ljava/lang/String;[I)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setUidCleartextNetworkPolicy(II)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setUidMeteredNetworkBlacklist(IZ)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->setUidMeteredNetworkWhitelist(IZ)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->shutdown()V
+Landroid/os/INetworkManagementService$Stub$Proxy;->startClatd(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->startInterfaceForwarding(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->startTethering([Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->stopClatd(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->stopInterfaceForwarding(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->stopTethering()V
+Landroid/os/INetworkManagementService$Stub$Proxy;->tetherInterface(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->tetherLimitReached(Landroid/net/ITetheringStatsProvider;)V
+Landroid/os/INetworkManagementService$Stub$Proxy;->unregisterNetworkActivityListener(Landroid/os/INetworkActivityListener;)V
+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
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_addInterfaceToLocalNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_addInterfaceToNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_addLegacyRouteForNetId:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_addRoute:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_addVpnUidRanges:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_allowProtect:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_attachPppd:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_clearDefaultNetId:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_clearInterfaceAddresses:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_clearPermission:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_createPhysicalNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_createVirtualNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_denyProtect:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_detachPppd:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_disableIpv6:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_disableNat:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_enableIpv6:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_enableNat:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getDnsForwarders:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getInterfaceConfig:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getIpForwardingEnabled:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getNetdService:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getNetworkStatsDetail:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getNetworkStatsSummaryDev:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getNetworkStatsSummaryXt:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getNetworkStatsTethering:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_getNetworkStatsUidDetail:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_isBandwidthControlEnabled:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_isClatdStarted:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_isFirewallEnabled:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_isNetworkActive:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_isNetworkRestricted:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_isTetheringStarted:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_listInterfaces:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_listTetheredInterfaces:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_listTtys:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_registerNetworkActivityListener:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_registerObserver:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_registerTetheringStatsProvider:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeIdleTimer:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeInterfaceAlert:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeInterfaceFromLocalNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeInterfaceFromNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeInterfaceQuota:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeRoute:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeRoutesFromLocalNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_removeVpnUidRanges:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setAllowOnlyVpnForUids:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setDataSaverModeEnabled:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setDefaultNetId:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setDnsConfigurationForNetwork:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setDnsForwarders:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setFirewallChainEnabled:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setFirewallEnabled:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setFirewallInterfaceRule:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setFirewallUidRule:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setFirewallUidRules:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setGlobalAlert:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setInterfaceAlert:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setInterfaceConfig:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setInterfaceDown:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setInterfaceIpv6PrivacyExtensions:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setInterfaceQuota:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setInterfaceUp:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setIpForwardingEnabled:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setIPv6AddrGenMode:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setMtu:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setNetworkPermission:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setPermission:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setUidCleartextNetworkPolicy:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setUidMeteredNetworkBlacklist:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_setUidMeteredNetworkWhitelist:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_shutdown:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_startClatd:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_startInterfaceForwarding:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_startTethering:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_stopClatd:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_stopInterfaceForwarding:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_stopTethering:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_tetherInterface:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_tetherLimitReached:I
+Landroid/os/INetworkManagementService$Stub;->TRANSACTION_unregisterNetworkActivityListener:I
+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
+Landroid/os/INetworkManagementService;->addLegacyRouteForNetId(ILandroid/net/RouteInfo;I)V
+Landroid/os/INetworkManagementService;->addRoute(ILandroid/net/RouteInfo;)V
+Landroid/os/INetworkManagementService;->addVpnUidRanges(I[Landroid/net/UidRange;)V
+Landroid/os/INetworkManagementService;->allowProtect(I)V
+Landroid/os/INetworkManagementService;->attachPppd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->clearDefaultNetId()V
+Landroid/os/INetworkManagementService;->clearPermission([I)V
+Landroid/os/INetworkManagementService;->createPhysicalNetwork(ILjava/lang/String;)V
+Landroid/os/INetworkManagementService;->createVirtualNetwork(IZZ)V
+Landroid/os/INetworkManagementService;->denyProtect(I)V
+Landroid/os/INetworkManagementService;->detachPppd(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->getDnsForwarders()[Ljava/lang/String;
+Landroid/os/INetworkManagementService;->getNetdService()Landroid/net/INetd;
+Landroid/os/INetworkManagementService;->getNetworkStatsDetail()Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService;->getNetworkStatsSummaryDev()Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService;->getNetworkStatsSummaryXt()Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService;->getNetworkStatsTethering(I)Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService;->getNetworkStatsUidDetail(I[Ljava/lang/String;)Landroid/net/NetworkStats;
+Landroid/os/INetworkManagementService;->isClatdStarted(Ljava/lang/String;)Z
+Landroid/os/INetworkManagementService;->isFirewallEnabled()Z
+Landroid/os/INetworkManagementService;->isNetworkActive()Z
+Landroid/os/INetworkManagementService;->isNetworkRestricted(I)Z
+Landroid/os/INetworkManagementService;->listInterfaces()[Ljava/lang/String;
+Landroid/os/INetworkManagementService;->listTtys()[Ljava/lang/String;
+Landroid/os/INetworkManagementService;->registerNetworkActivityListener(Landroid/os/INetworkActivityListener;)V
+Landroid/os/INetworkManagementService;->registerTetheringStatsProvider(Landroid/net/ITetheringStatsProvider;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->removeIdleTimer(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->removeInterfaceAlert(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->removeInterfaceFromLocalNetwork(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->removeInterfaceFromNetwork(Ljava/lang/String;I)V
+Landroid/os/INetworkManagementService;->removeInterfaceQuota(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->removeNetwork(I)V
+Landroid/os/INetworkManagementService;->removeRoute(ILandroid/net/RouteInfo;)V
+Landroid/os/INetworkManagementService;->removeRoutesFromLocalNetwork(Ljava/util/List;)I
+Landroid/os/INetworkManagementService;->removeVpnUidRanges(I[Landroid/net/UidRange;)V
+Landroid/os/INetworkManagementService;->setAllowOnlyVpnForUids(Z[Landroid/net/UidRange;)V
+Landroid/os/INetworkManagementService;->setDataSaverModeEnabled(Z)Z
+Landroid/os/INetworkManagementService;->setDefaultNetId(I)V
+Landroid/os/INetworkManagementService;->setDnsConfigurationForNetwork(I[Ljava/lang/String;[Ljava/lang/String;[ILjava/lang/String;[Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->setDnsForwarders(Landroid/net/Network;[Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->setFirewallChainEnabled(IZ)V
+Landroid/os/INetworkManagementService;->setFirewallEnabled(Z)V
+Landroid/os/INetworkManagementService;->setFirewallInterfaceRule(Ljava/lang/String;Z)V
+Landroid/os/INetworkManagementService;->setFirewallUidRule(III)V
+Landroid/os/INetworkManagementService;->setFirewallUidRules(I[I[I)V
+Landroid/os/INetworkManagementService;->setGlobalAlert(J)V
+Landroid/os/INetworkManagementService;->setInterfaceAlert(Ljava/lang/String;J)V
+Landroid/os/INetworkManagementService;->setInterfaceDown(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->setInterfaceQuota(Ljava/lang/String;J)V
+Landroid/os/INetworkManagementService;->setInterfaceUp(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->setMtu(Ljava/lang/String;I)V
+Landroid/os/INetworkManagementService;->setNetworkPermission(ILjava/lang/String;)V
+Landroid/os/INetworkManagementService;->setPermission(Ljava/lang/String;[I)V
+Landroid/os/INetworkManagementService;->setUidCleartextNetworkPolicy(II)V
+Landroid/os/INetworkManagementService;->setUidMeteredNetworkBlacklist(IZ)V
+Landroid/os/INetworkManagementService;->setUidMeteredNetworkWhitelist(IZ)V
+Landroid/os/INetworkManagementService;->shutdown()V
+Landroid/os/INetworkManagementService;->startClatd(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->startInterfaceForwarding(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->stopClatd(Ljava/lang/String;)V
+Landroid/os/INetworkManagementService;->stopInterfaceForwarding(Ljava/lang/String;Ljava/lang/String;)V
+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;
+Landroid/os/IPermissionController$Stub$Proxy;->getPackageUid(Ljava/lang/String;I)I
+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
+Landroid/os/IPowerManager$Stub$Proxy;->crash(Ljava/lang/String;)V
+Landroid/os/IPowerManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/IPowerManager$Stub$Proxy;->getLastShutdownReason()I
+Landroid/os/IPowerManager$Stub$Proxy;->getPowerSaveState(I)Landroid/os/PowerSaveState;
+Landroid/os/IPowerManager$Stub$Proxy;->goToSleep(JII)V
+Landroid/os/IPowerManager$Stub$Proxy;->isDeviceIdleMode()Z
+Landroid/os/IPowerManager$Stub$Proxy;->isInteractive()Z
+Landroid/os/IPowerManager$Stub$Proxy;->isPowerSaveMode()Z
+Landroid/os/IPowerManager$Stub$Proxy;->isScreenBrightnessBoosted()Z
+Landroid/os/IPowerManager$Stub$Proxy;->isWakeLockLevelSupported(I)Z
+Landroid/os/IPowerManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/IPowerManager$Stub$Proxy;->nap(J)V
+Landroid/os/IPowerManager$Stub$Proxy;->powerHint(II)V
+Landroid/os/IPowerManager$Stub$Proxy;->reboot(ZLjava/lang/String;Z)V
+Landroid/os/IPowerManager$Stub$Proxy;->rebootSafeMode(ZZ)V
+Landroid/os/IPowerManager$Stub$Proxy;->releaseWakeLock(Landroid/os/IBinder;I)V
+Landroid/os/IPowerManager$Stub$Proxy;->setAttentionLight(ZI)V
+Landroid/os/IPowerManager$Stub$Proxy;->setDozeAfterScreenOff(Z)V
+Landroid/os/IPowerManager$Stub$Proxy;->setPowerSaveMode(Z)Z
+Landroid/os/IPowerManager$Stub$Proxy;->setStayOnSetting(I)V
+Landroid/os/IPowerManager$Stub$Proxy;->shutdown(ZLjava/lang/String;Z)V
+Landroid/os/IPowerManager$Stub$Proxy;->updateWakeLockUids(Landroid/os/IBinder;[I)V
+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
+Landroid/os/IPowerManager$Stub;->TRANSACTION_crash:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_getLastShutdownReason:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_getPowerSaveState:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_isDeviceIdleMode:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_isInteractive:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_isLightDeviceIdleMode:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_isPowerSaveMode:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_isScreenBrightnessBoosted:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_isWakeLockLevelSupported:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_nap:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_powerHint:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_reboot:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_rebootSafeMode:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_releaseWakeLock:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_setAttentionLight:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_setDozeAfterScreenOff:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_setPowerSaveMode:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_setStayOnSetting:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_shutdown:I
+Landroid/os/IPowerManager$Stub;->TRANSACTION_updateWakeLockUids:I
+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
+Landroid/os/IPowerManager;->crash(Ljava/lang/String;)V
+Landroid/os/IPowerManager;->getLastShutdownReason()I
+Landroid/os/IPowerManager;->getPowerSaveState(I)Landroid/os/PowerSaveState;
+Landroid/os/IPowerManager;->isDeviceIdleMode()Z
+Landroid/os/IPowerManager;->isLightDeviceIdleMode()Z
+Landroid/os/IPowerManager;->isPowerSaveMode()Z
+Landroid/os/IPowerManager;->isScreenBrightnessBoosted()Z
+Landroid/os/IPowerManager;->isWakeLockLevelSupported(I)Z
+Landroid/os/IPowerManager;->powerHint(II)V
+Landroid/os/IPowerManager;->rebootSafeMode(ZZ)V
+Landroid/os/IPowerManager;->setAttentionLight(ZI)V
+Landroid/os/IPowerManager;->setDozeAfterScreenOff(Z)V
+Landroid/os/IPowerManager;->setPowerSaveMode(Z)Z
+Landroid/os/IPowerManager;->setStayOnSetting(I)V
+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;
+Landroid/os/IRecoverySystem$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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
+Landroid/os/IServiceManager;->CHECK_SERVICE_TRANSACTION:I
+Landroid/os/IServiceManager;->descriptor:Ljava/lang/String;
+Landroid/os/IServiceManager;->DUMP_FLAG_PRIORITY_ALL:I
+Landroid/os/IServiceManager;->DUMP_FLAG_PRIORITY_CRITICAL:I
+Landroid/os/IServiceManager;->DUMP_FLAG_PRIORITY_DEFAULT:I
+Landroid/os/IServiceManager;->DUMP_FLAG_PRIORITY_HIGH:I
+Landroid/os/IServiceManager;->DUMP_FLAG_PRIORITY_NORMAL:I
+Landroid/os/IServiceManager;->DUMP_FLAG_PROTO:I
+Landroid/os/IServiceManager;->GET_SERVICE_TRANSACTION:I
+Landroid/os/IServiceManager;->listServices(I)[Ljava/lang/String;
+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
+Landroid/os/IStatsCompanionService$Stub$Proxy;->cancelPullingAlarm()V
+Landroid/os/IStatsCompanionService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/IStatsCompanionService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/IStatsCompanionService$Stub$Proxy;->pullData(I)[Landroid/os/StatsLogEventWrapper;
+Landroid/os/IStatsCompanionService$Stub$Proxy;->sendDataBroadcast(Landroid/os/IBinder;J)V
+Landroid/os/IStatsCompanionService$Stub$Proxy;->sendSubscriberBroadcast(Landroid/os/IBinder;JJJJ[Ljava/lang/String;Landroid/os/StatsDimensionsValue;)V
+Landroid/os/IStatsCompanionService$Stub$Proxy;->setAlarmForSubscriberTriggering(J)V
+Landroid/os/IStatsCompanionService$Stub$Proxy;->setAnomalyAlarm(J)V
+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;
+Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_cancelAlarmForSubscriberTriggering:I
+Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_cancelAnomalyAlarm:I
+Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_cancelPullingAlarm:I
+Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_pullData:I
+Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_sendDataBroadcast:I
+Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_sendSubscriberBroadcast:I
+Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_setAlarmForSubscriberTriggering:I
+Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_setAnomalyAlarm:I
+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
+Landroid/os/IStatsCompanionService;->pullData(I)[Landroid/os/StatsLogEventWrapper;
+Landroid/os/IStatsCompanionService;->sendDataBroadcast(Landroid/os/IBinder;J)V
+Landroid/os/IStatsCompanionService;->sendSubscriberBroadcast(Landroid/os/IBinder;JJJJ[Ljava/lang/String;Landroid/os/StatsDimensionsValue;)V
+Landroid/os/IStatsCompanionService;->setAlarmForSubscriberTriggering(J)V
+Landroid/os/IStatsCompanionService;->setAnomalyAlarm(J)V
+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
+Landroid/os/IStatsManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/IStatsManager$Stub$Proxy;->getMetadata(Ljava/lang/String;)[B
+Landroid/os/IStatsManager$Stub$Proxy;->informAlarmForSubscriberTriggeringFired()V
+Landroid/os/IStatsManager$Stub$Proxy;->informAllUidData([I[J[Ljava/lang/String;)V
+Landroid/os/IStatsManager$Stub$Proxy;->informAnomalyAlarmFired()V
+Landroid/os/IStatsManager$Stub$Proxy;->informDeviceShutdown()V
+Landroid/os/IStatsManager$Stub$Proxy;->informOnePackage(Ljava/lang/String;IJ)V
+Landroid/os/IStatsManager$Stub$Proxy;->informOnePackageRemoved(Ljava/lang/String;I)V
+Landroid/os/IStatsManager$Stub$Proxy;->informPollAlarmFired()V
+Landroid/os/IStatsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/IStatsManager$Stub$Proxy;->removeConfiguration(JLjava/lang/String;)V
+Landroid/os/IStatsManager$Stub$Proxy;->removeDataFetchOperation(JLjava/lang/String;)V
+Landroid/os/IStatsManager$Stub$Proxy;->sendAppBreadcrumbAtom(II)V
+Landroid/os/IStatsManager$Stub$Proxy;->setBroadcastSubscriber(JJLandroid/os/IBinder;Ljava/lang/String;)V
+Landroid/os/IStatsManager$Stub$Proxy;->setDataFetchOperation(JLandroid/os/IBinder;Ljava/lang/String;)V
+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;
+Landroid/os/IStatsManager$Stub;->TRANSACTION_addConfiguration:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_getData:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_getMetadata:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_informAlarmForSubscriberTriggeringFired:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_informAllUidData:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_informAnomalyAlarmFired:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_informDeviceShutdown:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_informOnePackage:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_informOnePackageRemoved:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_informPollAlarmFired:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_removeConfiguration:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_removeDataFetchOperation:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_sendAppBreadcrumbAtom:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_setBroadcastSubscriber:I
+Landroid/os/IStatsManager$Stub;->TRANSACTION_setDataFetchOperation:I
+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
+Landroid/os/IStatsManager;->informAlarmForSubscriberTriggeringFired()V
+Landroid/os/IStatsManager;->informAllUidData([I[J[Ljava/lang/String;)V
+Landroid/os/IStatsManager;->informAnomalyAlarmFired()V
+Landroid/os/IStatsManager;->informDeviceShutdown()V
+Landroid/os/IStatsManager;->informOnePackage(Ljava/lang/String;IJ)V
+Landroid/os/IStatsManager;->informOnePackageRemoved(Ljava/lang/String;I)V
+Landroid/os/IStatsManager;->informPollAlarmFired()V
+Landroid/os/IStatsManager;->removeConfiguration(JLjava/lang/String;)V
+Landroid/os/IStatsManager;->removeDataFetchOperation(JLjava/lang/String;)V
+Landroid/os/IStatsManager;->sendAppBreadcrumbAtom(II)V
+Landroid/os/IStatsManager;->setBroadcastSubscriber(JJLandroid/os/IBinder;Ljava/lang/String;)V
+Landroid/os/IStatsManager;->setDataFetchOperation(JLandroid/os/IBinder;Ljava/lang/String;)V
+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
+Landroid/os/IThermalService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/os/IThermalService$Stub;->TRANSACTION_isThrottling:I
+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
+Landroid/os/IUpdateEngine$Stub$Proxy;->cancel()V
+Landroid/os/IUpdateEngine$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/IUpdateEngine$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/IUpdateEngine$Stub$Proxy;->resetStatus()V
+Landroid/os/IUpdateEngine$Stub$Proxy;->resume()V
+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
+Landroid/os/IUpdateEngine$Stub;->TRANSACTION_bind:I
+Landroid/os/IUpdateEngine$Stub;->TRANSACTION_cancel:I
+Landroid/os/IUpdateEngine$Stub;->TRANSACTION_resetStatus:I
+Landroid/os/IUpdateEngine$Stub;->TRANSACTION_resume:I
+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
+Landroid/os/IUpdateEngine;->resetStatus()V
+Landroid/os/IUpdateEngine;->resume()V
+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
+Landroid/os/IUserManager$Stub$Proxy;->createProfileForUser(Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager$Stub$Proxy;->createProfileForUserEvenWhenDisallowed(Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager$Stub$Proxy;->createRestrictedProfile(Ljava/lang/String;I)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager$Stub$Proxy;->createUser(Ljava/lang/String;I)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager$Stub$Proxy;->evictCredentialEncryptionKey(I)V
+Landroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictionsForUser(Ljava/lang/String;I)Landroid/os/Bundle;
+Landroid/os/IUserManager$Stub$Proxy;->getCredentialOwnerProfile(I)I
+Landroid/os/IUserManager$Stub$Proxy;->getDefaultGuestRestrictions()Landroid/os/Bundle;
+Landroid/os/IUserManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/IUserManager$Stub$Proxy;->getManagedProfileBadge(I)I
+Landroid/os/IUserManager$Stub$Proxy;->getPrimaryUser()Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager$Stub$Proxy;->getProfileIds(IZ)[I
+Landroid/os/IUserManager$Stub$Proxy;->getProfileParent(I)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager$Stub$Proxy;->getProfileParentId(I)I
+Landroid/os/IUserManager$Stub$Proxy;->getProfiles(IZ)Ljava/util/List;
+Landroid/os/IUserManager$Stub$Proxy;->getSeedAccountName()Ljava/lang/String;
+Landroid/os/IUserManager$Stub$Proxy;->getSeedAccountOptions()Landroid/os/PersistableBundle;
+Landroid/os/IUserManager$Stub$Proxy;->getSeedAccountType()Ljava/lang/String;
+Landroid/os/IUserManager$Stub$Proxy;->getUserAccount(I)Ljava/lang/String;
+Landroid/os/IUserManager$Stub$Proxy;->getUserCreationTime(I)J
+Landroid/os/IUserManager$Stub$Proxy;->getUserHandle(I)I
+Landroid/os/IUserManager$Stub$Proxy;->getUserIcon(I)Landroid/os/ParcelFileDescriptor;
+Landroid/os/IUserManager$Stub$Proxy;->getUserInfo(I)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager$Stub$Proxy;->getUserRestrictions(I)Landroid/os/Bundle;
+Landroid/os/IUserManager$Stub$Proxy;->getUserRestrictionSource(Ljava/lang/String;I)I
+Landroid/os/IUserManager$Stub$Proxy;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List;
+Landroid/os/IUserManager$Stub$Proxy;->getUsers(Z)Ljava/util/List;
+Landroid/os/IUserManager$Stub$Proxy;->getUserSerialNumber(I)I
+Landroid/os/IUserManager$Stub$Proxy;->getUserStartRealtime()J
+Landroid/os/IUserManager$Stub$Proxy;->getUserUnlockRealtime()J
+Landroid/os/IUserManager$Stub$Proxy;->hasBaseUserRestriction(Ljava/lang/String;I)Z
+Landroid/os/IUserManager$Stub$Proxy;->hasRestrictedProfiles()Z
+Landroid/os/IUserManager$Stub$Proxy;->hasUserRestriction(Ljava/lang/String;I)Z
+Landroid/os/IUserManager$Stub$Proxy;->hasUserRestrictionOnAnyUser(Ljava/lang/String;)Z
+Landroid/os/IUserManager$Stub$Proxy;->isDemoUser(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->isManagedProfile(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->isQuietModeEnabled(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->isRestricted()Z
+Landroid/os/IUserManager$Stub$Proxy;->isSameProfileGroup(II)Z
+Landroid/os/IUserManager$Stub$Proxy;->isUserNameSet(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->isUserRunning(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->isUserUnlocked(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->isUserUnlockingOrUnlocked(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->markGuestForDeletion(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/IUserManager$Stub$Proxy;->removeUser(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->removeUserEvenWhenDisallowed(I)Z
+Landroid/os/IUserManager$Stub$Proxy;->requestQuietModeEnabled(Ljava/lang/String;ZILandroid/content/IntentSender;)Z
+Landroid/os/IUserManager$Stub$Proxy;->setApplicationRestrictions(Ljava/lang/String;Landroid/os/Bundle;I)V
+Landroid/os/IUserManager$Stub$Proxy;->setDefaultGuestRestrictions(Landroid/os/Bundle;)V
+Landroid/os/IUserManager$Stub$Proxy;->setSeedAccountData(ILjava/lang/String;Ljava/lang/String;Landroid/os/PersistableBundle;Z)V
+Landroid/os/IUserManager$Stub$Proxy;->setUserAccount(ILjava/lang/String;)V
+Landroid/os/IUserManager$Stub$Proxy;->setUserAdmin(I)V
+Landroid/os/IUserManager$Stub$Proxy;->setUserEnabled(I)V
+Landroid/os/IUserManager$Stub$Proxy;->setUserIcon(ILandroid/graphics/Bitmap;)V
+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
+Landroid/os/IUserManager$Stub;->TRANSACTION_canHaveRestrictedProfile:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_clearSeedAccountData:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_createProfileForUser:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_createProfileForUserEvenWhenDisallowed:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_createRestrictedProfile:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_createUser:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_evictCredentialEncryptionKey:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getApplicationRestrictions:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getApplicationRestrictionsForUser:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getCredentialOwnerProfile:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getDefaultGuestRestrictions:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getManagedProfileBadge:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getPrimaryUser:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getProfileIds:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getProfileParent:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getProfileParentId:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getProfiles:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getSeedAccountName:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getSeedAccountOptions:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getSeedAccountType:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserAccount:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserCreationTime:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserHandle:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserIcon:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserInfo:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserRestrictions:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserRestrictionSource:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserRestrictionSources:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUsers:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserSerialNumber:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserStartRealtime:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_getUserUnlockRealtime:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_hasBaseUserRestriction:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_hasRestrictedProfiles:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_hasUserRestriction:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_hasUserRestrictionOnAnyUser:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isDemoUser:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isManagedProfile:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isQuietModeEnabled:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isRestricted:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isSameProfileGroup:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isUserNameSet:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isUserRunning:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isUserUnlocked:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_isUserUnlockingOrUnlocked:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_markGuestForDeletion:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_removeUser:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_removeUserEvenWhenDisallowed:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_requestQuietModeEnabled:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_setApplicationRestrictions:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_setDefaultGuestRestrictions:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_setSeedAccountData:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_setUserAccount:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_setUserAdmin:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_setUserEnabled:I
+Landroid/os/IUserManager$Stub;->TRANSACTION_setUserIcon:I
+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
+Landroid/os/IUserManager;->createProfileForUser(Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager;->createProfileForUserEvenWhenDisallowed(Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager;->createRestrictedProfile(Ljava/lang/String;I)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager;->createUser(Ljava/lang/String;I)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager;->evictCredentialEncryptionKey(I)V
+Landroid/os/IUserManager;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/os/IUserManager;->getApplicationRestrictionsForUser(Ljava/lang/String;I)Landroid/os/Bundle;
+Landroid/os/IUserManager;->getCredentialOwnerProfile(I)I
+Landroid/os/IUserManager;->getDefaultGuestRestrictions()Landroid/os/Bundle;
+Landroid/os/IUserManager;->getManagedProfileBadge(I)I
+Landroid/os/IUserManager;->getPrimaryUser()Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager;->getProfileIds(IZ)[I
+Landroid/os/IUserManager;->getProfileParent(I)Landroid/content/pm/UserInfo;
+Landroid/os/IUserManager;->getProfileParentId(I)I
+Landroid/os/IUserManager;->getProfiles(IZ)Ljava/util/List;
+Landroid/os/IUserManager;->getSeedAccountName()Ljava/lang/String;
+Landroid/os/IUserManager;->getSeedAccountOptions()Landroid/os/PersistableBundle;
+Landroid/os/IUserManager;->getSeedAccountType()Ljava/lang/String;
+Landroid/os/IUserManager;->getUserAccount(I)Ljava/lang/String;
+Landroid/os/IUserManager;->getUserCreationTime(I)J
+Landroid/os/IUserManager;->getUserHandle(I)I
+Landroid/os/IUserManager;->getUserIcon(I)Landroid/os/ParcelFileDescriptor;
+Landroid/os/IUserManager;->getUserRestrictions(I)Landroid/os/Bundle;
+Landroid/os/IUserManager;->getUserRestrictionSource(Ljava/lang/String;I)I
+Landroid/os/IUserManager;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List;
+Landroid/os/IUserManager;->getUsers(Z)Ljava/util/List;
+Landroid/os/IUserManager;->getUserSerialNumber(I)I
+Landroid/os/IUserManager;->getUserStartRealtime()J
+Landroid/os/IUserManager;->getUserUnlockRealtime()J
+Landroid/os/IUserManager;->hasBaseUserRestriction(Ljava/lang/String;I)Z
+Landroid/os/IUserManager;->hasRestrictedProfiles()Z
+Landroid/os/IUserManager;->hasUserRestriction(Ljava/lang/String;I)Z
+Landroid/os/IUserManager;->hasUserRestrictionOnAnyUser(Ljava/lang/String;)Z
+Landroid/os/IUserManager;->isDemoUser(I)Z
+Landroid/os/IUserManager;->isManagedProfile(I)Z
+Landroid/os/IUserManager;->isQuietModeEnabled(I)Z
+Landroid/os/IUserManager;->isRestricted()Z
+Landroid/os/IUserManager;->isSameProfileGroup(II)Z
+Landroid/os/IUserManager;->isUserNameSet(I)Z
+Landroid/os/IUserManager;->isUserRunning(I)Z
+Landroid/os/IUserManager;->isUserUnlocked(I)Z
+Landroid/os/IUserManager;->isUserUnlockingOrUnlocked(I)Z
+Landroid/os/IUserManager;->markGuestForDeletion(I)Z
+Landroid/os/IUserManager;->removeUser(I)Z
+Landroid/os/IUserManager;->removeUserEvenWhenDisallowed(I)Z
+Landroid/os/IUserManager;->requestQuietModeEnabled(Ljava/lang/String;ZILandroid/content/IntentSender;)Z
+Landroid/os/IUserManager;->setApplicationRestrictions(Ljava/lang/String;Landroid/os/Bundle;I)V
+Landroid/os/IUserManager;->setDefaultGuestRestrictions(Landroid/os/Bundle;)V
+Landroid/os/IUserManager;->setSeedAccountData(ILjava/lang/String;Ljava/lang/String;Landroid/os/PersistableBundle;Z)V
+Landroid/os/IUserManager;->setUserAccount(ILjava/lang/String;)V
+Landroid/os/IUserManager;->setUserAdmin(I)V
+Landroid/os/IUserManager;->setUserEnabled(I)V
+Landroid/os/IUserManager;->setUserIcon(ILandroid/graphics/Bitmap;)V
+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;
+Landroid/os/IVibratorService$Stub$Proxy;->hasAmplitudeControl()Z
+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
+Landroid/os/IVold$Stub$Proxy;->benchmark(Ljava/lang/String;Landroid/os/IVoldTaskListener;)V
+Landroid/os/IVold$Stub$Proxy;->checkEncryption(Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->createObb(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/os/IVold$Stub$Proxy;->createUserKey(IIZ)V
+Landroid/os/IVold$Stub$Proxy;->destroyObb(Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->destroyUserKey(I)V
+Landroid/os/IVold$Stub$Proxy;->destroyUserStorage(Ljava/lang/String;II)V
+Landroid/os/IVold$Stub$Proxy;->encryptFstab(Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->fbeEnable()V
+Landroid/os/IVold$Stub$Proxy;->fdeChangePassword(ILjava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->fdeCheckPassword(Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->fdeClearPassword()V
+Landroid/os/IVold$Stub$Proxy;->fdeComplete()I
+Landroid/os/IVold$Stub$Proxy;->fdeEnable(ILjava/lang/String;I)V
+Landroid/os/IVold$Stub$Proxy;->fdeGetField(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/IVold$Stub$Proxy;->fdeGetPassword()Ljava/lang/String;
+Landroid/os/IVold$Stub$Proxy;->fdeGetPasswordType()I
+Landroid/os/IVold$Stub$Proxy;->fdeRestart()V
+Landroid/os/IVold$Stub$Proxy;->fdeSetField(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->fdeVerifyPassword(Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->fixateNewestUserKeyAuth(I)V
+Landroid/os/IVold$Stub$Proxy;->forgetPartition(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->format(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->fstrim(ILandroid/os/IVoldTaskListener;)V
+Landroid/os/IVold$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/IVold$Stub$Proxy;->initUser0()V
+Landroid/os/IVold$Stub$Proxy;->isConvertibleToFbe()Z
+Landroid/os/IVold$Stub$Proxy;->lockUserKey(I)V
+Landroid/os/IVold$Stub$Proxy;->mkdirs(Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->monitor()V
+Landroid/os/IVold$Stub$Proxy;->mount(Ljava/lang/String;II)V
+Landroid/os/IVold$Stub$Proxy;->mountAppFuse(III)Ljava/io/FileDescriptor;
+Landroid/os/IVold$Stub$Proxy;->mountDefaultEncrypted()V
+Landroid/os/IVold$Stub$Proxy;->mountFstab(Ljava/lang/String;)V
+Landroid/os/IVold$Stub$Proxy;->moveStorage(Ljava/lang/String;Ljava/lang/String;Landroid/os/IVoldTaskListener;)V
+Landroid/os/IVold$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/IVold$Stub$Proxy;->onSecureKeyguardStateChanged(Z)V
+Landroid/os/IVold$Stub$Proxy;->onUserAdded(II)V
+Landroid/os/IVold$Stub$Proxy;->onUserRemoved(I)V
+Landroid/os/IVold$Stub$Proxy;->onUserStarted(I)V
+Landroid/os/IVold$Stub$Proxy;->onUserStopped(I)V
+Landroid/os/IVold$Stub$Proxy;->partition(Ljava/lang/String;II)V
+Landroid/os/IVold$Stub$Proxy;->prepareUserStorage(Ljava/lang/String;III)V
+Landroid/os/IVold$Stub$Proxy;->remountUid(II)V
+Landroid/os/IVold$Stub$Proxy;->reset()V
+Landroid/os/IVold$Stub$Proxy;->runIdleMaint(Landroid/os/IVoldTaskListener;)V
+Landroid/os/IVold$Stub$Proxy;->setListener(Landroid/os/IVoldListener;)V
+Landroid/os/IVold$Stub$Proxy;->shutdown()V
+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;
+Landroid/os/IVold$Stub;->TRANSACTION_abortIdleMaint:I
+Landroid/os/IVold$Stub;->TRANSACTION_addUserKeyAuth:I
+Landroid/os/IVold$Stub;->TRANSACTION_benchmark:I
+Landroid/os/IVold$Stub;->TRANSACTION_checkEncryption:I
+Landroid/os/IVold$Stub;->TRANSACTION_createObb:I
+Landroid/os/IVold$Stub;->TRANSACTION_createUserKey:I
+Landroid/os/IVold$Stub;->TRANSACTION_destroyObb:I
+Landroid/os/IVold$Stub;->TRANSACTION_destroyUserKey:I
+Landroid/os/IVold$Stub;->TRANSACTION_destroyUserStorage:I
+Landroid/os/IVold$Stub;->TRANSACTION_encryptFstab:I
+Landroid/os/IVold$Stub;->TRANSACTION_fbeEnable:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeChangePassword:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeCheckPassword:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeClearPassword:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeComplete:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeEnable:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeGetField:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeGetPassword:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeGetPasswordType:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeRestart:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeSetField:I
+Landroid/os/IVold$Stub;->TRANSACTION_fdeVerifyPassword:I
+Landroid/os/IVold$Stub;->TRANSACTION_fixateNewestUserKeyAuth:I
+Landroid/os/IVold$Stub;->TRANSACTION_forgetPartition:I
+Landroid/os/IVold$Stub;->TRANSACTION_format:I
+Landroid/os/IVold$Stub;->TRANSACTION_fstrim:I
+Landroid/os/IVold$Stub;->TRANSACTION_initUser0:I
+Landroid/os/IVold$Stub;->TRANSACTION_isConvertibleToFbe:I
+Landroid/os/IVold$Stub;->TRANSACTION_lockUserKey:I
+Landroid/os/IVold$Stub;->TRANSACTION_mkdirs:I
+Landroid/os/IVold$Stub;->TRANSACTION_monitor:I
+Landroid/os/IVold$Stub;->TRANSACTION_mount:I
+Landroid/os/IVold$Stub;->TRANSACTION_mountAppFuse:I
+Landroid/os/IVold$Stub;->TRANSACTION_mountDefaultEncrypted:I
+Landroid/os/IVold$Stub;->TRANSACTION_mountFstab:I
+Landroid/os/IVold$Stub;->TRANSACTION_moveStorage:I
+Landroid/os/IVold$Stub;->TRANSACTION_onSecureKeyguardStateChanged:I
+Landroid/os/IVold$Stub;->TRANSACTION_onUserAdded:I
+Landroid/os/IVold$Stub;->TRANSACTION_onUserRemoved:I
+Landroid/os/IVold$Stub;->TRANSACTION_onUserStarted:I
+Landroid/os/IVold$Stub;->TRANSACTION_onUserStopped:I
+Landroid/os/IVold$Stub;->TRANSACTION_partition:I
+Landroid/os/IVold$Stub;->TRANSACTION_prepareUserStorage:I
+Landroid/os/IVold$Stub;->TRANSACTION_remountUid:I
+Landroid/os/IVold$Stub;->TRANSACTION_reset:I
+Landroid/os/IVold$Stub;->TRANSACTION_runIdleMaint:I
+Landroid/os/IVold$Stub;->TRANSACTION_setListener:I
+Landroid/os/IVold$Stub;->TRANSACTION_shutdown:I
+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
+Landroid/os/IVold;->checkEncryption(Ljava/lang/String;)V
+Landroid/os/IVold;->createObb(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/os/IVold;->createUserKey(IIZ)V
+Landroid/os/IVold;->destroyObb(Ljava/lang/String;)V
+Landroid/os/IVold;->destroyUserKey(I)V
+Landroid/os/IVold;->destroyUserStorage(Ljava/lang/String;II)V
+Landroid/os/IVold;->encryptFstab(Ljava/lang/String;)V
+Landroid/os/IVold;->ENCRYPTION_FLAG_NO_UI:I
+Landroid/os/IVold;->ENCRYPTION_STATE_ERROR_CORRUPT:I
+Landroid/os/IVold;->ENCRYPTION_STATE_ERROR_INCOMPLETE:I
+Landroid/os/IVold;->ENCRYPTION_STATE_ERROR_INCONSISTENT:I
+Landroid/os/IVold;->ENCRYPTION_STATE_ERROR_UNKNOWN:I
+Landroid/os/IVold;->ENCRYPTION_STATE_NONE:I
+Landroid/os/IVold;->ENCRYPTION_STATE_OK:I
+Landroid/os/IVold;->fbeEnable()V
+Landroid/os/IVold;->fdeChangePassword(ILjava/lang/String;)V
+Landroid/os/IVold;->fdeCheckPassword(Ljava/lang/String;)V
+Landroid/os/IVold;->fdeClearPassword()V
+Landroid/os/IVold;->fdeComplete()I
+Landroid/os/IVold;->fdeEnable(ILjava/lang/String;I)V
+Landroid/os/IVold;->fdeGetField(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/IVold;->fdeGetPassword()Ljava/lang/String;
+Landroid/os/IVold;->fdeGetPasswordType()I
+Landroid/os/IVold;->fdeRestart()V
+Landroid/os/IVold;->fdeSetField(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVold;->fdeVerifyPassword(Ljava/lang/String;)V
+Landroid/os/IVold;->fixateNewestUserKeyAuth(I)V
+Landroid/os/IVold;->forgetPartition(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVold;->format(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVold;->fstrim(ILandroid/os/IVoldTaskListener;)V
+Landroid/os/IVold;->FSTRIM_FLAG_DEEP_TRIM:I
+Landroid/os/IVold;->initUser0()V
+Landroid/os/IVold;->isConvertibleToFbe()Z
+Landroid/os/IVold;->lockUserKey(I)V
+Landroid/os/IVold;->mkdirs(Ljava/lang/String;)V
+Landroid/os/IVold;->monitor()V
+Landroid/os/IVold;->mount(Ljava/lang/String;II)V
+Landroid/os/IVold;->mountAppFuse(III)Ljava/io/FileDescriptor;
+Landroid/os/IVold;->mountDefaultEncrypted()V
+Landroid/os/IVold;->mountFstab(Ljava/lang/String;)V
+Landroid/os/IVold;->MOUNT_FLAG_PRIMARY:I
+Landroid/os/IVold;->MOUNT_FLAG_VISIBLE:I
+Landroid/os/IVold;->moveStorage(Ljava/lang/String;Ljava/lang/String;Landroid/os/IVoldTaskListener;)V
+Landroid/os/IVold;->onSecureKeyguardStateChanged(Z)V
+Landroid/os/IVold;->onUserAdded(II)V
+Landroid/os/IVold;->onUserRemoved(I)V
+Landroid/os/IVold;->onUserStarted(I)V
+Landroid/os/IVold;->onUserStopped(I)V
+Landroid/os/IVold;->partition(Ljava/lang/String;II)V
+Landroid/os/IVold;->PARTITION_TYPE_MIXED:I
+Landroid/os/IVold;->PARTITION_TYPE_PRIVATE:I
+Landroid/os/IVold;->PARTITION_TYPE_PUBLIC:I
+Landroid/os/IVold;->PASSWORD_TYPE_DEFAULT:I
+Landroid/os/IVold;->PASSWORD_TYPE_PASSWORD:I
+Landroid/os/IVold;->PASSWORD_TYPE_PATTERN:I
+Landroid/os/IVold;->PASSWORD_TYPE_PIN:I
+Landroid/os/IVold;->prepareUserStorage(Ljava/lang/String;III)V
+Landroid/os/IVold;->remountUid(II)V
+Landroid/os/IVold;->REMOUNT_MODE_DEFAULT:I
+Landroid/os/IVold;->REMOUNT_MODE_NONE:I
+Landroid/os/IVold;->REMOUNT_MODE_READ:I
+Landroid/os/IVold;->REMOUNT_MODE_WRITE:I
+Landroid/os/IVold;->reset()V
+Landroid/os/IVold;->runIdleMaint(Landroid/os/IVoldTaskListener;)V
+Landroid/os/IVold;->setListener(Landroid/os/IVoldListener;)V
+Landroid/os/IVold;->shutdown()V
+Landroid/os/IVold;->STORAGE_FLAG_CE:I
+Landroid/os/IVold;->STORAGE_FLAG_DE:I
+Landroid/os/IVold;->unlockUserKey(IILjava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVold;->unmount(Ljava/lang/String;)V
+Landroid/os/IVold;->unmountAppFuse(III)V
+Landroid/os/IVold;->VOLUME_STATE_BAD_REMOVAL:I
+Landroid/os/IVold;->VOLUME_STATE_CHECKING:I
+Landroid/os/IVold;->VOLUME_STATE_EJECTING:I
+Landroid/os/IVold;->VOLUME_STATE_FORMATTING:I
+Landroid/os/IVold;->VOLUME_STATE_MOUNTED:I
+Landroid/os/IVold;->VOLUME_STATE_MOUNTED_READ_ONLY:I
+Landroid/os/IVold;->VOLUME_STATE_REMOVED:I
+Landroid/os/IVold;->VOLUME_STATE_UNMOUNTABLE:I
+Landroid/os/IVold;->VOLUME_STATE_UNMOUNTED:I
+Landroid/os/IVold;->VOLUME_TYPE_ASEC:I
+Landroid/os/IVold;->VOLUME_TYPE_EMULATED:I
+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;
+Landroid/os/IVoldListener$Stub$Proxy;->onDiskCreated(Ljava/lang/String;I)V
+Landroid/os/IVoldListener$Stub$Proxy;->onDiskDestroyed(Ljava/lang/String;)V
+Landroid/os/IVoldListener$Stub$Proxy;->onDiskMetadataChanged(Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVoldListener$Stub$Proxy;->onDiskScanned(Ljava/lang/String;)V
+Landroid/os/IVoldListener$Stub$Proxy;->onVolumeCreated(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVoldListener$Stub$Proxy;->onVolumeDestroyed(Ljava/lang/String;)V
+Landroid/os/IVoldListener$Stub$Proxy;->onVolumeInternalPathChanged(Ljava/lang/String;Ljava/lang/String;)V
+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;
+Landroid/os/IVoldListener$Stub;->TRANSACTION_onDiskCreated:I
+Landroid/os/IVoldListener$Stub;->TRANSACTION_onDiskDestroyed:I
+Landroid/os/IVoldListener$Stub;->TRANSACTION_onDiskMetadataChanged:I
+Landroid/os/IVoldListener$Stub;->TRANSACTION_onDiskScanned:I
+Landroid/os/IVoldListener$Stub;->TRANSACTION_onVolumeCreated:I
+Landroid/os/IVoldListener$Stub;->TRANSACTION_onVolumeDestroyed:I
+Landroid/os/IVoldListener$Stub;->TRANSACTION_onVolumeInternalPathChanged:I
+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
+Landroid/os/IVoldListener;->onDiskScanned(Ljava/lang/String;)V
+Landroid/os/IVoldListener;->onVolumeCreated(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+Landroid/os/IVoldListener;->onVolumeDestroyed(Ljava/lang/String;)V
+Landroid/os/IVoldListener;->onVolumeInternalPathChanged(Ljava/lang/String;Ljava/lang/String;)V
+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
+Landroid/os/KernelWakeSourcesProto$WakeupSource;->EXPIRE_COUNT:J
+Landroid/os/KernelWakeSourcesProto$WakeupSource;->LAST_CHANGE:J
+Landroid/os/KernelWakeSourcesProto$WakeupSource;->MAX_TIME:J
+Landroid/os/KernelWakeSourcesProto$WakeupSource;->NAME:J
+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
+Landroid/os/LocaleList;->computeFirstMatch(Ljava/util/Collection;Z)Ljava/util/Locale;
+Landroid/os/LocaleList;->computeFirstMatchIndex(Ljava/util/Collection;Z)I
+Landroid/os/LocaleList;->EN_LATN:Ljava/util/Locale;
+Landroid/os/LocaleList;->findFirstMatchIndex(Ljava/util/Locale;)I
+Landroid/os/LocaleList;->getFirstMatchIndex([Ljava/lang/String;)I
+Landroid/os/LocaleList;->getFirstMatchIndexWithEnglishSupported(Ljava/util/Collection;)I
+Landroid/os/LocaleList;->getFirstMatchIndexWithEnglishSupported([Ljava/lang/String;)I
+Landroid/os/LocaleList;->getFirstMatchWithEnglishSupported([Ljava/lang/String;)Ljava/util/Locale;
+Landroid/os/LocaleList;->getLikelyScript(Ljava/util/Locale;)Ljava/lang/String;
+Landroid/os/LocaleList;->isPseudoLocale(Ljava/lang/String;)Z
+Landroid/os/LocaleList;->isPseudoLocale(Ljava/util/Locale;)Z
+Landroid/os/LocaleList;->isPseudoLocalesOnly([Ljava/lang/String;)Z
+Landroid/os/LocaleList;->LOCALE_AR_XB:Ljava/util/Locale;
+Landroid/os/LocaleList;->LOCALE_EN_XA:Ljava/util/Locale;
+Landroid/os/LocaleList;->matchScore(Ljava/util/Locale;Ljava/util/Locale;)I
+Landroid/os/LocaleList;->mList:[Ljava/util/Locale;
+Landroid/os/LocaleList;->mStringRepresentation:Ljava/lang/String;
+Landroid/os/LocaleList;->NUM_PSEUDO_LOCALES:I
+Landroid/os/LocaleList;->sDefaultAdjustedLocaleList:Landroid/os/LocaleList;
+Landroid/os/LocaleList;->sDefaultLocaleList:Landroid/os/LocaleList;
+Landroid/os/LocaleList;->sEmptyList:[Ljava/util/Locale;
+Landroid/os/LocaleList;->sEmptyLocaleList:Landroid/os/LocaleList;
+Landroid/os/LocaleList;->sLastDefaultLocale:Ljava/util/Locale;
+Landroid/os/LocaleList;->sLastExplicitlySetLocaleList:Landroid/os/LocaleList;
+Landroid/os/LocaleList;->sLock:Ljava/lang/Object;
+Landroid/os/LocaleList;->STRING_AR_XB:Ljava/lang/String;
+Landroid/os/LocaleList;->STRING_EN_XA:Ljava/lang/String;
+Landroid/os/LocaleList;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+Landroid/os/Looper;-><init>(Z)V
+Landroid/os/Looper;->dump(Landroid/util/Printer;Ljava/lang/String;Landroid/os/Handler;)V
+Landroid/os/Looper;->mSlowDeliveryThresholdMs:J
+Landroid/os/Looper;->mSlowDispatchThresholdMs:J
+Landroid/os/Looper;->mThread:Ljava/lang/Thread;
+Landroid/os/Looper;->mTraceTag:J
+Landroid/os/Looper;->prepare(Z)V
+Landroid/os/Looper;->setSlowLogThresholdMs(JJ)V
+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
+Landroid/os/MemoryFile;->checkActive()V
+Landroid/os/MemoryFile;->endAccess()V
+Landroid/os/MemoryFile;->mAllowPurging:Z
+Landroid/os/MemoryFile;->mMapping:Ljava/nio/ByteBuffer;
+Landroid/os/MemoryFile;->mSharedMemory:Landroid/os/SharedMemory;
+Landroid/os/MemoryFile;->TAG:Ljava/lang/String;
+Landroid/os/Message;->data:Landroid/os/Bundle;
+Landroid/os/Message;->FLAGS_TO_CLEAR_ON_COPY_FROM:I
+Landroid/os/Message;->FLAG_ASYNCHRONOUS:I
+Landroid/os/Message;->FLAG_IN_USE:I
+Landroid/os/Message;->gCheckRecycle:Z
+Landroid/os/Message;->isInUse()Z
+Landroid/os/Message;->MAX_POOL_SIZE:I
+Landroid/os/Message;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/os/Message;->setWhat(I)Landroid/os/Message;
+Landroid/os/Message;->sPool:Landroid/os/Message;
+Landroid/os/Message;->sPoolSize:I
+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
+Landroid/os/MessageProto;->BARRIER:J
+Landroid/os/MessageProto;->CALLBACK:J
+Landroid/os/MessageProto;->OBJ:J
+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
+Landroid/os/MessageQueue;->dump(Landroid/util/Printer;Ljava/lang/String;Landroid/os/Handler;)V
+Landroid/os/MessageQueue;->enqueueMessage(Landroid/os/Message;J)Z
+Landroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;)Z
+Landroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;ILjava/lang/Object;)Z
+Landroid/os/MessageQueue;->isPolling()Z
+Landroid/os/MessageQueue;->isPollingLocked()Z
+Landroid/os/MessageQueue;->mBlocked:Z
+Landroid/os/MessageQueue;->mFileDescriptorRecords:Landroid/util/SparseArray;
+Landroid/os/MessageQueue;->mPendingIdleHandlers:[Landroid/os/MessageQueue$IdleHandler;
+Landroid/os/MessageQueue;->mQuitting:Z
+Landroid/os/MessageQueue;->nativeDestroy(J)V
+Landroid/os/MessageQueue;->nativeInit()J
+Landroid/os/MessageQueue;->nativeIsPolling(J)Z
+Landroid/os/MessageQueue;->nativeSetFileDescriptorEvents(JII)V
+Landroid/os/MessageQueue;->nativeWake(J)V
+Landroid/os/MessageQueue;->postSyncBarrier(J)I
+Landroid/os/MessageQueue;->quit(Z)V
+Landroid/os/MessageQueue;->removeAllFutureMessagesLocked()V
+Landroid/os/MessageQueue;->removeAllMessagesLocked()V
+Landroid/os/MessageQueue;->removeCallbacksAndMessages(Landroid/os/Handler;Ljava/lang/Object;)V
+Landroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;ILjava/lang/Object;)V
+Landroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)V
+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
+Landroid/os/OsProtoEnums;->BATTERY_HEALTH_GOOD:I
+Landroid/os/OsProtoEnums;->BATTERY_HEALTH_INVALID:I
+Landroid/os/OsProtoEnums;->BATTERY_HEALTH_OVERHEAT:I
+Landroid/os/OsProtoEnums;->BATTERY_HEALTH_OVER_VOLTAGE:I
+Landroid/os/OsProtoEnums;->BATTERY_HEALTH_UNKNOWN:I
+Landroid/os/OsProtoEnums;->BATTERY_HEALTH_UNSPECIFIED_FAILURE:I
+Landroid/os/OsProtoEnums;->BATTERY_PLUGGED_AC:I
+Landroid/os/OsProtoEnums;->BATTERY_PLUGGED_NONE:I
+Landroid/os/OsProtoEnums;->BATTERY_PLUGGED_USB:I
+Landroid/os/OsProtoEnums;->BATTERY_PLUGGED_WIRELESS:I
+Landroid/os/OsProtoEnums;->BATTERY_STATUS_CHARGING:I
+Landroid/os/OsProtoEnums;->BATTERY_STATUS_DISCHARGING:I
+Landroid/os/OsProtoEnums;->BATTERY_STATUS_FULL:I
+Landroid/os/OsProtoEnums;->BATTERY_STATUS_INVALID:I
+Landroid/os/OsProtoEnums;->BATTERY_STATUS_NOT_CHARGING:I
+Landroid/os/OsProtoEnums;->BATTERY_STATUS_UNKNOWN:I
+Landroid/os/OsProtoEnums;->DOZE_WAKE_LOCK:I
+Landroid/os/OsProtoEnums;->DRAW_WAKE_LOCK:I
+Landroid/os/OsProtoEnums;->FULL_WAKE_LOCK:I
+Landroid/os/OsProtoEnums;->PARTIAL_WAKE_LOCK:I
+Landroid/os/OsProtoEnums;->PROXIMITY_SCREEN_OFF_WAKE_LOCK:I
+Landroid/os/OsProtoEnums;->SCREEN_BRIGHT_WAKE_LOCK:I
+Landroid/os/OsProtoEnums;->SCREEN_DIM_WAKE_LOCK:I
+Landroid/os/OsProtoEnums;->TEMPERATURE_TYPE_BATTERY:I
+Landroid/os/OsProtoEnums;->TEMPERATURE_TYPE_CPU:I
+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
+Landroid/os/PageTypeInfoProto$Block;->MOVABLE:J
+Landroid/os/PageTypeInfoProto$Block;->NODE:J
+Landroid/os/PageTypeInfoProto$Block;->RECLAIMABLE:J
+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
+Landroid/os/Parcel;-><init>(J)V
+Landroid/os/Parcel;->adoptClassCookies(Landroid/os/Parcel;)V
+Landroid/os/Parcel;->closeFileDescriptor(Ljava/io/FileDescriptor;)V
+Landroid/os/Parcel;->compareData(Landroid/os/Parcel;)I
+Landroid/os/Parcel;->copyClassCookies()Ljava/util/Map;
+Landroid/os/Parcel;->createException(ILjava/lang/String;)Ljava/lang/Exception;
+Landroid/os/Parcel;->createRawFileDescriptorArray()[Ljava/io/FileDescriptor;
+Landroid/os/Parcel;->DEBUG_ARRAY_MAP:Z
+Landroid/os/Parcel;->DEBUG_RECYCLE:Z
+Landroid/os/Parcel;->destroy()V
+Landroid/os/Parcel;->dupFileDescriptor(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;
+Landroid/os/Parcel;->EX_BAD_PARCELABLE:I
+Landroid/os/Parcel;->EX_HAS_REPLY_HEADER:I
+Landroid/os/Parcel;->EX_ILLEGAL_ARGUMENT:I
+Landroid/os/Parcel;->EX_ILLEGAL_STATE:I
+Landroid/os/Parcel;->EX_NETWORK_MAIN_THREAD:I
+Landroid/os/Parcel;->EX_NULL_POINTER:I
+Landroid/os/Parcel;->EX_PARCELABLE:I
+Landroid/os/Parcel;->EX_SECURITY:I
+Landroid/os/Parcel;->EX_SERVICE_SPECIFIC:I
+Landroid/os/Parcel;->EX_TRANSACTION_FAILED:I
+Landroid/os/Parcel;->EX_UNSUPPORTED_OPERATION:I
+Landroid/os/Parcel;->freeBuffer()V
+Landroid/os/Parcel;->getBlobAshmemSize()J
+Landroid/os/Parcel;->getClassCookie(Ljava/lang/Class;)Ljava/lang/Object;
+Landroid/os/Parcel;->hasReadWriteHelper()Z
+Landroid/os/Parcel;->init(J)V
+Landroid/os/Parcel;->mClassCookies:Landroid/util/ArrayMap;
+Landroid/os/Parcel;->mNativeSize:J
+Landroid/os/Parcel;->mOwnsNativeParcelObject:Z
+Landroid/os/Parcel;->mReadWriteHelper:Landroid/os/Parcel$ReadWriteHelper;
+Landroid/os/Parcel;->mStack:Ljava/lang/RuntimeException;
+Landroid/os/Parcel;->nativeAppendFrom(JJII)J
+Landroid/os/Parcel;->nativeCompareData(JJ)I
+Landroid/os/Parcel;->nativeCreate()J
+Landroid/os/Parcel;->nativeCreateByteArray(J)[B
+Landroid/os/Parcel;->nativeDataAvail(J)I
+Landroid/os/Parcel;->nativeDataCapacity(J)I
+Landroid/os/Parcel;->nativeDataPosition(J)I
+Landroid/os/Parcel;->nativeDataSize(J)I
+Landroid/os/Parcel;->nativeDestroy(J)V
+Landroid/os/Parcel;->nativeEnforceInterface(JLjava/lang/String;)V
+Landroid/os/Parcel;->nativeFreeBuffer(J)J
+Landroid/os/Parcel;->nativeGetBlobAshmemSize(J)J
+Landroid/os/Parcel;->nativeHasFileDescriptors(J)Z
+Landroid/os/Parcel;->nativeMarshall(J)[B
+Landroid/os/Parcel;->nativePushAllowFds(JZ)Z
+Landroid/os/Parcel;->nativeReadBlob(J)[B
+Landroid/os/Parcel;->nativeReadByteArray(J[BI)Z
+Landroid/os/Parcel;->nativeReadDouble(J)D
+Landroid/os/Parcel;->nativeReadFileDescriptor(J)Ljava/io/FileDescriptor;
+Landroid/os/Parcel;->nativeReadFloat(J)F
+Landroid/os/Parcel;->nativeReadInt(J)I
+Landroid/os/Parcel;->nativeReadLong(J)J
+Landroid/os/Parcel;->nativeReadString(J)Ljava/lang/String;
+Landroid/os/Parcel;->nativeReadStrongBinder(J)Landroid/os/IBinder;
+Landroid/os/Parcel;->nativeRestoreAllowFds(JZ)V
+Landroid/os/Parcel;->nativeSetDataCapacity(JI)V
+Landroid/os/Parcel;->nativeSetDataPosition(JI)V
+Landroid/os/Parcel;->nativeSetDataSize(JI)J
+Landroid/os/Parcel;->nativeUnmarshall(J[BII)J
+Landroid/os/Parcel;->nativeWriteBlob(J[BII)V
+Landroid/os/Parcel;->nativeWriteByteArray(J[BII)V
+Landroid/os/Parcel;->nativeWriteDouble(JD)V
+Landroid/os/Parcel;->nativeWriteFileDescriptor(JLjava/io/FileDescriptor;)J
+Landroid/os/Parcel;->nativeWriteFloat(JF)V
+Landroid/os/Parcel;->nativeWriteInt(JI)V
+Landroid/os/Parcel;->nativeWriteInterfaceToken(JLjava/lang/String;)V
+Landroid/os/Parcel;->nativeWriteLong(JJ)V
+Landroid/os/Parcel;->nativeWriteString(JLjava/lang/String;)V
+Landroid/os/Parcel;->nativeWriteStrongBinder(JLandroid/os/IBinder;)V
+Landroid/os/Parcel;->obtain(I)Landroid/os/Parcel;
+Landroid/os/Parcel;->obtain(J)Landroid/os/Parcel;
+Landroid/os/Parcel;->openFileDescriptor(Ljava/lang/String;I)Ljava/io/FileDescriptor;
+Landroid/os/Parcel;->POOL_SIZE:I
+Landroid/os/Parcel;->pushAllowFds(Z)Z
+Landroid/os/Parcel;->putClassCookies(Ljava/util/Map;)V
+Landroid/os/Parcel;->readArrayInternal([Ljava/lang/Object;ILjava/lang/ClassLoader;)V
+Landroid/os/Parcel;->readArrayMapInternal(Landroid/util/ArrayMap;ILjava/lang/ClassLoader;)V
+Landroid/os/Parcel;->readArrayMapSafelyInternal(Landroid/util/ArrayMap;ILjava/lang/ClassLoader;)V
+Landroid/os/Parcel;->readBoolean()Z
+Landroid/os/Parcel;->readCharSequenceArray()[Ljava/lang/CharSequence;
+Landroid/os/Parcel;->readCharSequenceList()Ljava/util/ArrayList;
+Landroid/os/Parcel;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;)V
+Landroid/os/Parcel;->readMapInternal(Ljava/util/Map;ILjava/lang/ClassLoader;)V
+Landroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Landroid/os/Parcelable;
+Landroid/os/Parcel;->readRawFileDescriptorArray([Ljava/io/FileDescriptor;)V
+Landroid/os/Parcel;->readSerializable(Ljava/lang/ClassLoader;)Ljava/io/Serializable;
+Landroid/os/Parcel;->readSparseArrayInternal(Landroid/util/SparseArray;ILjava/lang/ClassLoader;)V
+Landroid/os/Parcel;->readSparseBooleanArrayInternal(Landroid/util/SparseBooleanArray;I)V
+Landroid/os/Parcel;->readSparseIntArray()Landroid/util/SparseIntArray;
+Landroid/os/Parcel;->readSparseIntArrayInternal(Landroid/util/SparseIntArray;I)V
+Landroid/os/Parcel;->readStringNoHelper()Ljava/lang/String;
+Landroid/os/Parcel;->readTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object;
+Landroid/os/Parcel;->restoreAllowFds(Z)V
+Landroid/os/Parcel;->setClassCookie(Ljava/lang/Class;Ljava/lang/Object;)V
+Landroid/os/Parcel;->setReadWriteHelper(Landroid/os/Parcel$ReadWriteHelper;)V
+Landroid/os/Parcel;->setStackTraceParceling(Z)V
+Landroid/os/Parcel;->sHolderPool:[Landroid/os/Parcel;
+Landroid/os/Parcel;->sLastWriteExceptionStackTrace:J
+Landroid/os/Parcel;->sOwnedPool:[Landroid/os/Parcel;
+Landroid/os/Parcel;->sParcelExceptionStackTrace:Z
+Landroid/os/Parcel;->TAG:Ljava/lang/String;
+Landroid/os/Parcel;->updateNativeSize(J)V
+Landroid/os/Parcel;->VAL_BOOLEAN:I
+Landroid/os/Parcel;->VAL_BOOLEANARRAY:I
+Landroid/os/Parcel;->VAL_BUNDLE:I
+Landroid/os/Parcel;->VAL_BYTE:I
+Landroid/os/Parcel;->VAL_BYTEARRAY:I
+Landroid/os/Parcel;->VAL_CHARSEQUENCE:I
+Landroid/os/Parcel;->VAL_CHARSEQUENCEARRAY:I
+Landroid/os/Parcel;->VAL_DOUBLE:I
+Landroid/os/Parcel;->VAL_DOUBLEARRAY:I
+Landroid/os/Parcel;->VAL_FLOAT:I
+Landroid/os/Parcel;->VAL_IBINDER:I
+Landroid/os/Parcel;->VAL_INTARRAY:I
+Landroid/os/Parcel;->VAL_INTEGER:I
+Landroid/os/Parcel;->VAL_LIST:I
+Landroid/os/Parcel;->VAL_LONG:I
+Landroid/os/Parcel;->VAL_LONGARRAY:I
+Landroid/os/Parcel;->VAL_MAP:I
+Landroid/os/Parcel;->VAL_NULL:I
+Landroid/os/Parcel;->VAL_OBJECTARRAY:I
+Landroid/os/Parcel;->VAL_PARCELABLE:I
+Landroid/os/Parcel;->VAL_PARCELABLEARRAY:I
+Landroid/os/Parcel;->VAL_PERSISTABLEBUNDLE:I
+Landroid/os/Parcel;->VAL_SERIALIZABLE:I
+Landroid/os/Parcel;->VAL_SHORT:I
+Landroid/os/Parcel;->VAL_SIZE:I
+Landroid/os/Parcel;->VAL_SIZEF:I
+Landroid/os/Parcel;->VAL_SPARSEARRAY:I
+Landroid/os/Parcel;->VAL_SPARSEBOOLEANARRAY:I
+Landroid/os/Parcel;->VAL_STRING:I
+Landroid/os/Parcel;->VAL_STRINGARRAY:I
+Landroid/os/Parcel;->writeArrayMapInternal(Landroid/util/ArrayMap;)V
+Landroid/os/Parcel;->writeBlob([BII)V
+Landroid/os/Parcel;->writeBoolean(Z)V
+Landroid/os/Parcel;->writeCharSequenceArray([Ljava/lang/CharSequence;)V
+Landroid/os/Parcel;->writeCharSequenceList(Ljava/util/ArrayList;)V
+Landroid/os/Parcel;->writeMapInternal(Ljava/util/Map;)V
+Landroid/os/Parcel;->writeRawFileDescriptor(Ljava/io/FileDescriptor;)V
+Landroid/os/Parcel;->writeRawFileDescriptorArray([Ljava/io/FileDescriptor;)V
+Landroid/os/Parcel;->writeSparseIntArray(Landroid/util/SparseIntArray;)V
+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;
+Landroid/os/ParcelFileDescriptor$Status;->DEAD:I
+Landroid/os/ParcelFileDescriptor$Status;->DETACHED:I
+Landroid/os/ParcelFileDescriptor$Status;->ERROR:I
+Landroid/os/ParcelFileDescriptor$Status;->LEAKED:I
+Landroid/os/ParcelFileDescriptor$Status;->msg:Ljava/lang/String;
+Landroid/os/ParcelFileDescriptor$Status;->OK:I
+Landroid/os/ParcelFileDescriptor$Status;->SILENCE:I
+Landroid/os/ParcelFileDescriptor$Status;->status:I
+Landroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
+Landroid/os/ParcelFileDescriptor;->closeWithStatus(ILjava/lang/String;)V
+Landroid/os/ParcelFileDescriptor;->createCommSocketPair()[Ljava/io/FileDescriptor;
+Landroid/os/ParcelFileDescriptor;->createReliableSocketPair(I)[Landroid/os/ParcelFileDescriptor;
+Landroid/os/ParcelFileDescriptor;->createSocketPair(I)[Landroid/os/ParcelFileDescriptor;
+Landroid/os/ParcelFileDescriptor;->fromFd(Ljava/io/FileDescriptor;Landroid/os/Handler;Landroid/os/ParcelFileDescriptor$OnCloseListener;)Landroid/os/ParcelFileDescriptor;
+Landroid/os/ParcelFileDescriptor;->getOrCreateStatusBuffer()[B
+Landroid/os/ParcelFileDescriptor;->MAX_STATUS:I
+Landroid/os/ParcelFileDescriptor;->mClosed:Z
+Landroid/os/ParcelFileDescriptor;->mCommFd:Ljava/io/FileDescriptor;
+Landroid/os/ParcelFileDescriptor;->mFd:Ljava/io/FileDescriptor;
+Landroid/os/ParcelFileDescriptor;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/os/ParcelFileDescriptor;->mStatus:Landroid/os/ParcelFileDescriptor$Status;
+Landroid/os/ParcelFileDescriptor;->mStatusBuf:[B
+Landroid/os/ParcelFileDescriptor;->mWrapped:Landroid/os/ParcelFileDescriptor;
+Landroid/os/ParcelFileDescriptor;->openInternal(Ljava/io/File;I)Ljava/io/FileDescriptor;
+Landroid/os/ParcelFileDescriptor;->readCommStatus(Ljava/io/FileDescriptor;[B)Landroid/os/ParcelFileDescriptor$Status;
+Landroid/os/ParcelFileDescriptor;->releaseResources()V
+Landroid/os/ParcelFileDescriptor;->TAG:Ljava/lang/String;
+Landroid/os/ParcelFileDescriptor;->writeCommStatusAndClose(ILjava/lang/String;)V
+Landroid/os/ParcelUuid;->mUuid:Ljava/util/UUID;
+Landroid/os/PatternMatcher;->isParsedModifier(I)Z
+Landroid/os/PatternMatcher;->matchAdvancedPattern([ILjava/lang/String;)Z
+Landroid/os/PatternMatcher;->matchChar(Ljava/lang/String;III[III)Z
+Landroid/os/PatternMatcher;->matchChars(Ljava/lang/String;IIIII[III)I
+Landroid/os/PatternMatcher;->matchGlobPattern(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/PatternMatcher;->matchPattern(Ljava/lang/String;Ljava/lang/String;[II)Z
+Landroid/os/PatternMatcher;->MAX_PATTERN_STORAGE:I
+Landroid/os/PatternMatcher;->mParsedPattern:[I
+Landroid/os/PatternMatcher;->mPattern:Ljava/lang/String;
+Landroid/os/PatternMatcher;->mType:I
+Landroid/os/PatternMatcher;->NO_MATCH:I
+Landroid/os/PatternMatcher;->parseAndVerifyAdvancedPattern(Ljava/lang/String;)[I
+Landroid/os/PatternMatcher;->PARSED_MODIFIER_ONE_OR_MORE:I
+Landroid/os/PatternMatcher;->PARSED_MODIFIER_RANGE_START:I
+Landroid/os/PatternMatcher;->PARSED_MODIFIER_RANGE_STOP:I
+Landroid/os/PatternMatcher;->PARSED_MODIFIER_ZERO_OR_MORE:I
+Landroid/os/PatternMatcher;->PARSED_TOKEN_CHAR_ANY:I
+Landroid/os/PatternMatcher;->PARSED_TOKEN_CHAR_SET_INVERSE_START:I
+Landroid/os/PatternMatcher;->PARSED_TOKEN_CHAR_SET_START:I
+Landroid/os/PatternMatcher;->PARSED_TOKEN_CHAR_SET_STOP:I
+Landroid/os/PatternMatcher;->sParsedPatternScratch:[I
+Landroid/os/PatternMatcher;->TAG:Ljava/lang/String;
+Landroid/os/PatternMatcher;->TOKEN_TYPE_ANY:I
+Landroid/os/PatternMatcher;->TOKEN_TYPE_INVERSE_SET:I
+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
+Landroid/os/PatternMatcherProto;->TYPE_ADVANCED_GLOB:I
+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
+Landroid/os/PerformanceCollector$PerformanceResultsWriter;->writeMeasurement(Ljava/lang/String;J)V
+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
+Landroid/os/PerformanceCollector;->addMeasurement(Ljava/lang/String;J)V
+Landroid/os/PerformanceCollector;->addMeasurement(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/PerformanceCollector;->endPerformanceSnapshot()V
+Landroid/os/PerformanceCollector;->getAllocCounts()Landroid/os/Bundle;
+Landroid/os/PerformanceCollector;->getBinderCounts()Landroid/os/Bundle;
+Landroid/os/PerformanceCollector;->mCpuTime:J
+Landroid/os/PerformanceCollector;->METRIC_KEY_CPU_TIME:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_EXECUTION_TIME:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_GC_INVOCATION_COUNT:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_GLOBAL_ALLOC_COUNT:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_GLOBAL_ALLOC_SIZE:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_GLOBAL_FREED_COUNT:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_GLOBAL_FREED_SIZE:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_ITERATIONS:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_JAVA_ALLOCATED:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_JAVA_FREE:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_JAVA_PRIVATE_DIRTY:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_JAVA_PSS:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_JAVA_SHARED_DIRTY:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_JAVA_SIZE:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_LABEL:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_NATIVE_ALLOCATED:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_NATIVE_FREE:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_NATIVE_PRIVATE_DIRTY:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_NATIVE_PSS:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_NATIVE_SHARED_DIRTY:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_NATIVE_SIZE:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_OTHER_PRIVATE_DIRTY:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_OTHER_PSS:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_OTHER_SHARED_DIRTY:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_PRE_RECEIVED_TRANSACTIONS:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_PRE_SENT_TRANSACTIONS:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_RECEIVED_TRANSACTIONS:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->METRIC_KEY_SENT_TRANSACTIONS:Ljava/lang/String;
+Landroid/os/PerformanceCollector;->mExecTime:J
+Landroid/os/PerformanceCollector;->mPerfMeasurement:Landroid/os/Bundle;
+Landroid/os/PerformanceCollector;->mPerfSnapshot:Landroid/os/Bundle;
+Landroid/os/PerformanceCollector;->mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
+Landroid/os/PerformanceCollector;->mSnapshotCpuTime:J
+Landroid/os/PerformanceCollector;->mSnapshotExecTime:J
+Landroid/os/PerformanceCollector;->setPerformanceResultsWriter(Landroid/os/PerformanceCollector$PerformanceResultsWriter;)V
+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
+Landroid/os/PersistableBundle;-><init>(Landroid/os/Parcel;I)V
+Landroid/os/PersistableBundle;-><init>(Landroid/util/ArrayMap;)V
+Landroid/os/PersistableBundle;-><init>(Z)V
+Landroid/os/PersistableBundle;->forPair(Ljava/lang/String;Ljava/lang/String;)Landroid/os/PersistableBundle;
+Landroid/os/PersistableBundle;->isValidType(Ljava/lang/Object;)Z
+Landroid/os/PersistableBundle;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/os/PersistableBundle;
+Landroid/os/PersistableBundle;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+Landroid/os/PersistableBundle;->TAG_PERSISTABLEMAP:Ljava/lang/String;
+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
+Landroid/os/PooledStringWriter;->mNext:I
+Landroid/os/PooledStringWriter;->mOut:Landroid/os/Parcel;
+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
+Landroid/os/PowerManager$ServiceType;->DATA_SAVER:I
+Landroid/os/PowerManager$ServiceType;->FORCE_ALL_APPS_STANDBY:I
+Landroid/os/PowerManager$ServiceType;->FORCE_BACKGROUND_CHECK:I
+Landroid/os/PowerManager$ServiceType;->FULL_BACKUP:I
+Landroid/os/PowerManager$ServiceType;->GPS:I
+Landroid/os/PowerManager$ServiceType;->KEYVALUE_BACKUP:I
+Landroid/os/PowerManager$ServiceType;->NETWORK_FIREWALL:I
+Landroid/os/PowerManager$ServiceType;->NULL:I
+Landroid/os/PowerManager$ServiceType;->OPTIONAL_SENSORS:I
+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
+Landroid/os/PowerManager$WakeLock;->mHeld:Z
+Landroid/os/PowerManager$WakeLock;->mHistoryTag:Ljava/lang/String;
+Landroid/os/PowerManager$WakeLock;->mInternalCount:I
+Landroid/os/PowerManager$WakeLock;->mPackageName:Ljava/lang/String;
+Landroid/os/PowerManager$WakeLock;->mRefCounted:Z
+Landroid/os/PowerManager$WakeLock;->mReleaser:Ljava/lang/Runnable;
+Landroid/os/PowerManager$WakeLock;->mToken:Landroid/os/IBinder;
+Landroid/os/PowerManager$WakeLock;->mTraceName:Ljava/lang/String;
+Landroid/os/PowerManager$WakeLock;->mWorkSource:Landroid/os/WorkSource;
+Landroid/os/PowerManager$WakeLock;->setHistoryTag(Ljava/lang/String;)V
+Landroid/os/PowerManager$WakeLock;->setTag(Ljava/lang/String;)V
+Landroid/os/PowerManager$WakeLock;->setUnimportantForLogging(Z)V
+Landroid/os/PowerManager$WakeLock;->wrap(Ljava/lang/Runnable;)Ljava/lang/Runnable;
+Landroid/os/PowerManager$WakeLock;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+Landroid/os/PowerManager;-><init>(Landroid/content/Context;Landroid/os/IPowerManager;Landroid/os/Handler;)V
+Landroid/os/PowerManager;->ACTION_POWER_SAVE_MODE_CHANGED_INTERNAL:Ljava/lang/String;
+Landroid/os/PowerManager;->ACTION_POWER_SAVE_TEMP_WHITELIST_CHANGED:Ljava/lang/String;
+Landroid/os/PowerManager;->ACTION_POWER_SAVE_WHITELIST_CHANGED:Ljava/lang/String;
+Landroid/os/PowerManager;->boostScreenBrightness(J)V
+Landroid/os/PowerManager;->BRIGHTNESS_DEFAULT:I
+Landroid/os/PowerManager;->BRIGHTNESS_OFF:I
+Landroid/os/PowerManager;->DOZE_WAKE_LOCK:I
+Landroid/os/PowerManager;->DRAW_WAKE_LOCK:I
+Landroid/os/PowerManager;->getDefaultScreenBrightnessForVrSetting()I
+Landroid/os/PowerManager;->getLastShutdownReason()I
+Landroid/os/PowerManager;->getMaximumScreenBrightnessForVrSetting()I
+Landroid/os/PowerManager;->getMinimumScreenBrightnessForVrSetting()I
+Landroid/os/PowerManager;->getPowerSaveState(I)Landroid/os/PowerSaveState;
+Landroid/os/PowerManager;->GO_TO_SLEEP_FLAG_NO_DOZE:I
+Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_ACCESSIBILITY:I
+Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_APPLICATION:I
+Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_DEVICE_ADMIN:I
+Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_HDMI:I
+Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_LID_SWITCH:I
+Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_POWER_BUTTON:I
+Landroid/os/PowerManager;->GO_TO_SLEEP_REASON_SLEEP_BUTTON:I
+Landroid/os/PowerManager;->mContext:Landroid/content/Context;
+Landroid/os/PowerManager;->mIDeviceIdleController:Landroid/os/IDeviceIdleController;
+Landroid/os/PowerManager;->rebootSafeMode()V
+Landroid/os/PowerManager;->REBOOT_QUIESCENT:Ljava/lang/String;
+Landroid/os/PowerManager;->REBOOT_RECOVERY:Ljava/lang/String;
+Landroid/os/PowerManager;->REBOOT_RECOVERY_UPDATE:Ljava/lang/String;
+Landroid/os/PowerManager;->REBOOT_REQUESTED_BY_DEVICE_OWNER:Ljava/lang/String;
+Landroid/os/PowerManager;->REBOOT_SAFE_MODE:Ljava/lang/String;
+Landroid/os/PowerManager;->RELEASE_FLAG_TIMEOUT:I
+Landroid/os/PowerManager;->setDozeAfterScreenOff(Z)V
+Landroid/os/PowerManager;->shutdown(ZLjava/lang/String;Z)V
+Landroid/os/PowerManager;->SHUTDOWN_BATTERY_THERMAL_STATE:Ljava/lang/String;
+Landroid/os/PowerManager;->SHUTDOWN_LOW_BATTERY:Ljava/lang/String;
+Landroid/os/PowerManager;->SHUTDOWN_REASON_BATTERY_THERMAL:I
+Landroid/os/PowerManager;->SHUTDOWN_REASON_LOW_BATTERY:I
+Landroid/os/PowerManager;->SHUTDOWN_REASON_REBOOT:I
+Landroid/os/PowerManager;->SHUTDOWN_REASON_SHUTDOWN:I
+Landroid/os/PowerManager;->SHUTDOWN_REASON_THERMAL_SHUTDOWN:I
+Landroid/os/PowerManager;->SHUTDOWN_REASON_UNKNOWN:I
+Landroid/os/PowerManager;->SHUTDOWN_REASON_USER_REQUESTED:I
+Landroid/os/PowerManager;->SHUTDOWN_USER_REQUESTED:Ljava/lang/String;
+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;
+Landroid/os/PowerManagerInternal;->isInteractive(I)Z
+Landroid/os/PowerManagerInternal;->powerHint(II)V
+Landroid/os/PowerManagerInternal;->registerLowPowerModeObserver(ILjava/util/function/Consumer;)V
+Landroid/os/PowerManagerInternal;->registerLowPowerModeObserver(Landroid/os/PowerManagerInternal$LowPowerModeListener;)V
+Landroid/os/PowerManagerInternal;->setDeviceIdleMode(Z)Z
+Landroid/os/PowerManagerInternal;->setDeviceIdleTempWhitelist([I)V
+Landroid/os/PowerManagerInternal;->setDeviceIdleWhitelist([I)V
+Landroid/os/PowerManagerInternal;->setDozeOverrideFromDreamManager(II)V
+Landroid/os/PowerManagerInternal;->setDrawWakeLockOverrideFromSidekick(Z)V
+Landroid/os/PowerManagerInternal;->setLightDeviceIdleMode(Z)Z
+Landroid/os/PowerManagerInternal;->setMaximumScreenOffTimeoutFromDeviceAdmin(IJ)V
+Landroid/os/PowerManagerInternal;->setScreenBrightnessOverrideFromWindowManager(I)V
+Landroid/os/PowerManagerInternal;->setUserActivityTimeoutOverrideFromWindowManager(J)V
+Landroid/os/PowerManagerInternal;->setUserInactiveOverrideFromWindowManager()V
+Landroid/os/PowerManagerInternal;->startUidChanges()V
+Landroid/os/PowerManagerInternal;->uidActive(I)V
+Landroid/os/PowerManagerInternal;->uidGone(I)V
+Landroid/os/PowerManagerInternal;->uidIdle(I)V
+Landroid/os/PowerManagerInternal;->updateUidProcState(II)V
+Landroid/os/PowerManagerInternal;->wakefulnessToProtoEnum(I)I
+Landroid/os/PowerManagerInternal;->wakefulnessToString(I)Ljava/lang/String;
+Landroid/os/PowerManagerInternal;->WAKEFULNESS_ASLEEP:I
+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
+Landroid/os/PowerSaveState$Builder;->mBrightnessFactor:F
+Landroid/os/PowerSaveState$Builder;->mGlobalBatterySaverEnabled:Z
+Landroid/os/PowerSaveState$Builder;->mGpsMode:I
+Landroid/os/PowerSaveState$Builder;->setBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder;
+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
+Landroid/os/PowerSaveState;->brightnessFactor:F
+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
+Landroid/os/Process;->AUDIOSERVER_UID:I
+Landroid/os/Process;->CAMERASERVER_UID:I
+Landroid/os/Process;->FIRST_APPLICATION_CACHE_GID:I
+Landroid/os/Process;->FIRST_ISOLATED_UID:I
+Landroid/os/Process;->FIRST_SHARED_APPLICATION_GID:I
+Landroid/os/Process;->getProcessGroup(I)I
+Landroid/os/Process;->getThreadGroupLeader(I)I
+Landroid/os/Process;->INCIDENTD_UID:I
+Landroid/os/Process;->isCoreUid(I)Z
+Landroid/os/Process;->isThreadInProcess(II)Z
+Landroid/os/Process;->KEYSTORE_UID:I
+Landroid/os/Process;->killProcessGroup(II)I
+Landroid/os/Process;->killProcessQuiet(I)V
+Landroid/os/Process;->LAST_APPLICATION_CACHE_GID:I
+Landroid/os/Process;->LAST_ISOLATED_UID:I
+Landroid/os/Process;->LAST_SHARED_APPLICATION_GID:I
+Landroid/os/Process;->LOG_TAG:Ljava/lang/String;
+Landroid/os/Process;->MEDIA_RW_GID:I
+Landroid/os/Process;->NOBODY_UID:I
+Landroid/os/Process;->OTA_UPDATE_UID:I
+Landroid/os/Process;->PACKAGE_INFO_GID:I
+Landroid/os/Process;->PROC_CHAR:I
+Landroid/os/Process;->removeAllProcessGroups()V
+Landroid/os/Process;->SCHED_BATCH:I
+Landroid/os/Process;->SCHED_FIFO:I
+Landroid/os/Process;->SCHED_IDLE:I
+Landroid/os/Process;->SCHED_OTHER:I
+Landroid/os/Process;->SCHED_RESET_ON_FORK:I
+Landroid/os/Process;->SCHED_RR:I
+Landroid/os/Process;->SECONDARY_ZYGOTE_SOCKET:Ljava/lang/String;
+Landroid/os/Process;->setCanSelfBackground(Z)V
+Landroid/os/Process;->setGid(I)I
+Landroid/os/Process;->setStartTimes(JJ)V
+Landroid/os/Process;->setSwappiness(IZ)Z
+Landroid/os/Process;->setThreadGroup(II)V
+Landroid/os/Process;->setThreadGroupAndCpuset(II)V
+Landroid/os/Process;->setThreadScheduler(III)V
+Landroid/os/Process;->setUid(I)I
+Landroid/os/Process;->SE_UID:I
+Landroid/os/Process;->SHARED_RELRO_UID:I
+Landroid/os/Process;->SHARED_USER_GID:I
+Landroid/os/Process;->sStartElapsedRealtime:J
+Landroid/os/Process;->sStartUptimeMillis:J
+Landroid/os/Process;->start(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+Landroid/os/Process;->startWebView(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+Landroid/os/Process;->THREAD_GROUP_AUDIO_APP:I
+Landroid/os/Process;->THREAD_GROUP_AUDIO_SYS:I
+Landroid/os/Process;->THREAD_GROUP_BG_NONINTERACTIVE:I
+Landroid/os/Process;->THREAD_GROUP_DEFAULT:I
+Landroid/os/Process;->THREAD_GROUP_FOREGROUND:I
+Landroid/os/Process;->THREAD_GROUP_RESTRICTED:I
+Landroid/os/Process;->THREAD_GROUP_RT_APP:I
+Landroid/os/Process;->THREAD_GROUP_SYSTEM:I
+Landroid/os/Process;->THREAD_GROUP_TOP_APP:I
+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
+Landroid/os/ProcrankProto$Process;->PSWAP:J
+Landroid/os/ProcrankProto$Process;->RSS:J
+Landroid/os/ProcrankProto$Process;->SWAP:J
+Landroid/os/ProcrankProto$Process;->USS:J
+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
+Landroid/os/PsProto$Process;->NI:J
+Landroid/os/PsProto$Process;->PCY:J
+Landroid/os/PsProto$Process;->PID:J
+Landroid/os/PsProto$Process;->POLICY_BG:I
+Landroid/os/PsProto$Process;->POLICY_FG:I
+Landroid/os/PsProto$Process;->POLICY_TA:I
+Landroid/os/PsProto$Process;->POLICY_UNKNOWN:I
+Landroid/os/PsProto$Process;->PPID:J
+Landroid/os/PsProto$Process;->PRI:J
+Landroid/os/PsProto$Process;->RSS:J
+Landroid/os/PsProto$Process;->RTPRIO:J
+Landroid/os/PsProto$Process;->S:J
+Landroid/os/PsProto$Process;->SCH:J
+Landroid/os/PsProto$Process;->SCH_BATCH:I
+Landroid/os/PsProto$Process;->SCH_FIFO:I
+Landroid/os/PsProto$Process;->SCH_IDLE:I
+Landroid/os/PsProto$Process;->SCH_ISO:I
+Landroid/os/PsProto$Process;->SCH_NORMAL:I
+Landroid/os/PsProto$Process;->SCH_OTHER:I
+Landroid/os/PsProto$Process;->SCH_RR:I
+Landroid/os/PsProto$Process;->STATE_D:I
+Landroid/os/PsProto$Process;->STATE_R:I
+Landroid/os/PsProto$Process;->STATE_S:I
+Landroid/os/PsProto$Process;->STATE_T:I
+Landroid/os/PsProto$Process;->STATE_TRACING:I
+Landroid/os/PsProto$Process;->STATE_UNKNOWN:I
+Landroid/os/PsProto$Process;->STATE_X:I
+Landroid/os/PsProto$Process;->STATE_Z:I
+Landroid/os/PsProto$Process;->TID:J
+Landroid/os/PsProto$Process;->TIME:J
+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;
+Landroid/os/RecoverySystem;->getTrustedCerts(Ljava/io/File;)Ljava/util/HashSet;
+Landroid/os/RecoverySystem;->handleAftermath(Landroid/content/Context;)Ljava/lang/String;
+Landroid/os/RecoverySystem;->LAST_INSTALL_FILE:Ljava/io/File;
+Landroid/os/RecoverySystem;->LAST_PREFIX:Ljava/lang/String;
+Landroid/os/RecoverySystem;->LOG_FILE:Ljava/io/File;
+Landroid/os/RecoverySystem;->LOG_FILE_MAX_LENGTH:I
+Landroid/os/RecoverySystem;->MAX_EUICC_FACTORY_RESET_TIMEOUT_MILLIS:J
+Landroid/os/RecoverySystem;->MIN_EUICC_FACTORY_RESET_TIMEOUT_MILLIS:J
+Landroid/os/RecoverySystem;->mService:Landroid/os/IRecoverySystem;
+Landroid/os/RecoverySystem;->PACKAGE_NAME_WIPING_EUICC_DATA_CALLBACK:Ljava/lang/String;
+Landroid/os/RecoverySystem;->parseLastInstallLog(Landroid/content/Context;)V
+Landroid/os/RecoverySystem;->PUBLISH_PROGRESS_INTERVAL_MS:J
+Landroid/os/RecoverySystem;->readAndVerifyPackageCompatibilityEntry(Ljava/io/File;)Z
+Landroid/os/RecoverySystem;->rebootPromptAndWipeUserData(Landroid/content/Context;Ljava/lang/String;)V
+Landroid/os/RecoverySystem;->rebootRecoveryWithCommand(Ljava/lang/String;)V
+Landroid/os/RecoverySystem;->rebootWipeCache(Landroid/content/Context;Ljava/lang/String;)V
+Landroid/os/RecoverySystem;->rebootWipeUserData(Landroid/content/Context;Ljava/lang/String;)V
+Landroid/os/RecoverySystem;->rebootWipeUserData(Landroid/content/Context;Z)V
+Landroid/os/RecoverySystem;->rebootWipeUserData(Landroid/content/Context;ZLjava/lang/String;Z)V
+Landroid/os/RecoverySystem;->rebootWipeUserData(Landroid/content/Context;ZLjava/lang/String;ZZ)V
+Landroid/os/RecoverySystem;->RECOVERY_DIR:Ljava/io/File;
+Landroid/os/RecoverySystem;->recursiveDelete(Ljava/io/File;)V
+Landroid/os/RecoverySystem;->sanitizeArg(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/RecoverySystem;->setupBcb(Ljava/lang/String;)Z
+Landroid/os/RecoverySystem;->sRequestLock:Ljava/lang/Object;
+Landroid/os/RecoverySystem;->TAG:Ljava/lang/String;
+Landroid/os/RecoverySystem;->uncrypt(Ljava/lang/String;Landroid/os/IRecoverySystemProgressListener;)Z
+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
+Landroid/os/RemoteCallbackList;->broadcastForEachCookie(Ljava/util/function/Consumer;)V
+Landroid/os/RemoteCallbackList;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+Landroid/os/RemoteCallbackList;->logExcessiveCallbacks()V
+Landroid/os/RemoteCallbackList;->mActiveBroadcast:[Ljava/lang/Object;
+Landroid/os/RemoteCallbackList;->mBroadcastCount:I
+Landroid/os/RemoteCallbackList;->mKilled:Z
+Landroid/os/RemoteCallbackList;->mRecentCallers:Ljava/lang/StringBuilder;
+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
+Landroid/os/RevocableFileDescriptor;->DEBUG:Z
+Landroid/os/RevocableFileDescriptor;->getRevocableFileDescriptor()Landroid/os/ParcelFileDescriptor;
+Landroid/os/RevocableFileDescriptor;->init(Landroid/content/Context;Ljava/io/FileDescriptor;)V
+Landroid/os/RevocableFileDescriptor;->isRevoked()Z
+Landroid/os/RevocableFileDescriptor;->mCallback:Landroid/os/ProxyFileDescriptorCallback;
+Landroid/os/RevocableFileDescriptor;->mInner:Ljava/io/FileDescriptor;
+Landroid/os/RevocableFileDescriptor;->mOuter:Landroid/os/ParcelFileDescriptor;
+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
+Landroid/os/SELinux;->restorecon(Ljava/io/File;)Z
+Landroid/os/SELinux;->restorecon(Ljava/lang/String;)Z
+Landroid/os/SELinux;->SELINUX_ANDROID_RESTORECON_DATADATA:I
+Landroid/os/SELinux;->SELINUX_ANDROID_RESTORECON_FORCE:I
+Landroid/os/SELinux;->SELINUX_ANDROID_RESTORECON_NOCHANGE:I
+Landroid/os/SELinux;->SELINUX_ANDROID_RESTORECON_RECURSE:I
+Landroid/os/SELinux;->SELINUX_ANDROID_RESTORECON_VERBOSE:I
+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
+Landroid/os/ServiceManager;->GET_SERVICE_SLOW_THRESHOLD_US_CORE:J
+Landroid/os/ServiceManager;->GET_SERVICE_SLOW_THRESHOLD_US_NON_CORE:J
+Landroid/os/ServiceManager;->initServiceCache(Ljava/util/Map;)V
+Landroid/os/ServiceManager;->rawGetService(Ljava/lang/String;)Landroid/os/IBinder;
+Landroid/os/ServiceManager;->sGetServiceAccumulatedCallCount:I
+Landroid/os/ServiceManager;->sGetServiceAccumulatedUs:I
+Landroid/os/ServiceManager;->sLastSlowLogActualTime:J
+Landroid/os/ServiceManager;->sLastSlowLogUptime:J
+Landroid/os/ServiceManager;->sLastStatsLogUptime:J
+Landroid/os/ServiceManager;->sLock:Ljava/lang/Object;
+Landroid/os/ServiceManager;->SLOW_LOG_INTERVAL_MS:I
+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;
+Landroid/os/SharedMemory$Unmapper;->mSize:I
+Landroid/os/SharedMemory;-><init>(Ljava/io/FileDescriptor;)V
+Landroid/os/SharedMemory;->checkOpen()V
+Landroid/os/SharedMemory;->getFileDescriptor()Ljava/io/FileDescriptor;
+Landroid/os/SharedMemory;->mCleaner:Lsun/misc/Cleaner;
+Landroid/os/SharedMemory;->mFileDescriptor:Ljava/io/FileDescriptor;
+Landroid/os/SharedMemory;->mMemoryRegistration:Landroid/os/SharedMemory$MemoryRegistration;
+Landroid/os/SharedMemory;->mSize:I
+Landroid/os/SharedMemory;->nCreate(Ljava/lang/String;I)Ljava/io/FileDescriptor;
+Landroid/os/SharedMemory;->nGetSize(Ljava/io/FileDescriptor;)I
+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;
+Landroid/os/ShellCallback;->DEBUG:Z
+Landroid/os/ShellCallback;->mLocal:Z
+Landroid/os/ShellCallback;->mShellCallback:Lcom/android/internal/os/IShellCallback;
+Landroid/os/ShellCallback;->onOpenFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
+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
+Landroid/os/ShellCommand;->exec(Landroid/os/Binder;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)I
+Landroid/os/ShellCommand;->getBufferedInputStream()Ljava/io/InputStream;
+Landroid/os/ShellCommand;->getErrFileDescriptor()Ljava/io/FileDescriptor;
+Landroid/os/ShellCommand;->getErrPrintWriter()Ljava/io/PrintWriter;
+Landroid/os/ShellCommand;->getInFileDescriptor()Ljava/io/FileDescriptor;
+Landroid/os/ShellCommand;->getNextArg()Ljava/lang/String;
+Landroid/os/ShellCommand;->getNextArgRequired()Ljava/lang/String;
+Landroid/os/ShellCommand;->getNextOption()Ljava/lang/String;
+Landroid/os/ShellCommand;->getOutFileDescriptor()Ljava/io/FileDescriptor;
+Landroid/os/ShellCommand;->getOutPrintWriter()Ljava/io/PrintWriter;
+Landroid/os/ShellCommand;->getRawErrorStream()Ljava/io/OutputStream;
+Landroid/os/ShellCommand;->getRawInputStream()Ljava/io/InputStream;
+Landroid/os/ShellCommand;->getRawOutputStream()Ljava/io/OutputStream;
+Landroid/os/ShellCommand;->getShellCallback()Landroid/os/ShellCallback;
+Landroid/os/ShellCommand;->handleDefaultCommands(Ljava/lang/String;)I
+Landroid/os/ShellCommand;->init(Landroid/os/Binder;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;I)V
+Landroid/os/ShellCommand;->mArgPos:I
+Landroid/os/ShellCommand;->mArgs:[Ljava/lang/String;
+Landroid/os/ShellCommand;->mCmd:Ljava/lang/String;
+Landroid/os/ShellCommand;->mCurArgData:Ljava/lang/String;
+Landroid/os/ShellCommand;->mErr:Ljava/io/FileDescriptor;
+Landroid/os/ShellCommand;->mErrPrintWriter:Lcom/android/internal/util/FastPrintWriter;
+Landroid/os/ShellCommand;->mFileErr:Ljava/io/FileOutputStream;
+Landroid/os/ShellCommand;->mFileIn:Ljava/io/FileInputStream;
+Landroid/os/ShellCommand;->mFileOut:Ljava/io/FileOutputStream;
+Landroid/os/ShellCommand;->mIn:Ljava/io/FileDescriptor;
+Landroid/os/ShellCommand;->mInputStream:Ljava/io/InputStream;
+Landroid/os/ShellCommand;->mOut:Ljava/io/FileDescriptor;
+Landroid/os/ShellCommand;->mOutPrintWriter:Lcom/android/internal/util/FastPrintWriter;
+Landroid/os/ShellCommand;->mResultReceiver:Landroid/os/ResultReceiver;
+Landroid/os/ShellCommand;->mShellCallback:Landroid/os/ShellCallback;
+Landroid/os/ShellCommand;->mTarget:Landroid/os/Binder;
+Landroid/os/ShellCommand;->onCommand(Ljava/lang/String;)I
+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;
+Landroid/os/StatsDimensionsValue;-><init>(Landroid/os/Parcel;)V
+Landroid/os/StatsDimensionsValue;->mField:I
+Landroid/os/StatsDimensionsValue;->mValue:Ljava/lang/Object;
+Landroid/os/StatsDimensionsValue;->mValueType:I
+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;
+Landroid/os/StatsLogEventWrapper;->EVENT_TYPE_FLOAT:I
+Landroid/os/StatsLogEventWrapper;->EVENT_TYPE_INT:I
+Landroid/os/StatsLogEventWrapper;->EVENT_TYPE_LIST:I
+Landroid/os/StatsLogEventWrapper;->EVENT_TYPE_LONG:I
+Landroid/os/StatsLogEventWrapper;->EVENT_TYPE_STRING:I
+Landroid/os/StatsLogEventWrapper;->mStorage:Ljava/io/ByteArrayOutputStream;
+Landroid/os/StatsLogEventWrapper;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/os/StatsLogEventWrapper;->STATS_BUFFER_TAG_ID:I
+Landroid/os/StatsLogEventWrapper;->write4Bytes(I)V
+Landroid/os/StatsLogEventWrapper;->write8Bytes(J)V
+Landroid/os/StatsLogEventWrapper;->writeFloat(F)V
+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
+Landroid/os/storage/DiskInfo;->EXTRA_DISK_ID:Ljava/lang/String;
+Landroid/os/storage/DiskInfo;->EXTRA_VOLUME_COUNT:Ljava/lang/String;
+Landroid/os/storage/DiskInfo;->FLAG_ADOPTABLE:I
+Landroid/os/storage/DiskInfo;->FLAG_DEFAULT_PRIMARY:I
+Landroid/os/storage/DiskInfo;->FLAG_SD:I
+Landroid/os/storage/DiskInfo;->FLAG_USB:I
+Landroid/os/storage/DiskInfo;->getShortDescription()Ljava/lang/String;
+Landroid/os/storage/DiskInfo;->id:Ljava/lang/String;
+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;
+Landroid/os/storage/IStorageEventListener$Stub$Proxy;->onDiskDestroyed(Landroid/os/storage/DiskInfo;)V
+Landroid/os/storage/IStorageEventListener$Stub$Proxy;->onDiskScanned(Landroid/os/storage/DiskInfo;I)V
+Landroid/os/storage/IStorageEventListener$Stub$Proxy;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/IStorageEventListener$Stub$Proxy;->onUsbMassStorageConnectionChanged(Z)V
+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;
+Landroid/os/storage/IStorageEventListener$Stub;->TRANSACTION_onDiskDestroyed:I
+Landroid/os/storage/IStorageEventListener$Stub;->TRANSACTION_onDiskScanned:I
+Landroid/os/storage/IStorageEventListener$Stub;->TRANSACTION_onStorageStateChanged:I
+Landroid/os/storage/IStorageEventListener$Stub;->TRANSACTION_onUsbMassStorageConnectionChanged:I
+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
+Landroid/os/storage/IStorageEventListener;->onUsbMassStorageConnectionChanged(Z)V
+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
+Landroid/os/storage/IStorageManager$Stub$Proxy;->benchmark(Ljava/lang/String;Landroid/os/IVoldTaskListener;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->changeEncryptionPassword(ILjava/lang/String;)I
+Landroid/os/storage/IStorageManager$Stub$Proxy;->clearPassword()V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->createUserKey(IIZ)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->decryptStorage(Ljava/lang/String;)I
+Landroid/os/storage/IStorageManager$Stub$Proxy;->destroyUserKey(I)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->destroyUserStorage(Ljava/lang/String;II)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->encryptStorage(ILjava/lang/String;)I
+Landroid/os/storage/IStorageManager$Stub$Proxy;->fixateNewestUserKeyAuth(I)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->forgetAllVolumes()V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->forgetVolume(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->format(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->fstrim(ILandroid/os/IVoldTaskListener;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getCacheQuotaBytes(Ljava/lang/String;I)J
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getCacheSizeBytes(Ljava/lang/String;I)J
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getDisks()[Landroid/os/storage/DiskInfo;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getEncryptionState()I
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getField(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getMountedObbPath(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getPassword()Ljava/lang/String;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getPasswordType()I
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getPrimaryStorageUuid()Ljava/lang/String;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeRecords(I)[Landroid/os/storage/VolumeRecord;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->getVolumes(I)[Landroid/os/storage/VolumeInfo;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->isConvertibleToFBE()Z
+Landroid/os/storage/IStorageManager$Stub$Proxy;->isObbMounted(Ljava/lang/String;)Z
+Landroid/os/storage/IStorageManager$Stub$Proxy;->isUserKeyUnlocked(I)Z
+Landroid/os/storage/IStorageManager$Stub$Proxy;->lastMaintenance()J
+Landroid/os/storage/IStorageManager$Stub$Proxy;->lockUserKey(I)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->mkdirs(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->mount(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->mountObb(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/storage/IObbActionListener;I)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->mountProxyFileDescriptorBridge()Lcom/android/internal/os/AppFuseMount;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->openProxyFileDescriptor(III)Landroid/os/ParcelFileDescriptor;
+Landroid/os/storage/IStorageManager$Stub$Proxy;->partitionMixed(Ljava/lang/String;I)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->partitionPrivate(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->partitionPublic(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->prepareUserStorage(Ljava/lang/String;III)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->registerListener(Landroid/os/storage/IStorageEventListener;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->runIdleMaintenance()V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->runMaintenance()V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->setDebugFlags(II)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->setField(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->setPrimaryStorageUuid(Ljava/lang/String;Landroid/content/pm/IPackageMoveObserver;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->setVolumeNickname(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->setVolumeUserFlags(Ljava/lang/String;II)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->shutdown(Landroid/os/storage/IStorageShutdownObserver;)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->unlockUserKey(II[B[B)V
+Landroid/os/storage/IStorageManager$Stub$Proxy;->unmount(Ljava/lang/String;)V
+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
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_addUserKeyAuth:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_allocateBytes:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_benchmark:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_changeEncryptionPassword:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_clearPassword:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_createUserKey:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_decryptStorage:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_destroyUserKey:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_destroyUserStorage:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_encryptStorage:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_fixateNewestUserKeyAuth:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_forgetAllVolumes:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_forgetVolume:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_format:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_fstrim:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getAllocatableBytes:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getCacheQuotaBytes:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getCacheSizeBytes:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getDisks:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getEncryptionState:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getField:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getMountedObbPath:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getPassword:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getPasswordType:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getPrimaryStorageUuid:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getVolumeList:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getVolumeRecords:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_getVolumes:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_isConvertibleToFBE:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_isObbMounted:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_isUserKeyUnlocked:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_lastMaintenance:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_lockUserKey:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_mkdirs:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_mount:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_mountObb:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_mountProxyFileDescriptorBridge:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_openProxyFileDescriptor:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_partitionMixed:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_partitionPrivate:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_partitionPublic:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_prepareUserStorage:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_registerListener:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_runIdleMaintenance:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_runMaintenance:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_setDebugFlags:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_setField:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_setPrimaryStorageUuid:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_setVolumeNickname:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_setVolumeUserFlags:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_shutdown:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_unlockUserKey:I
+Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_unmount:I
+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
+Landroid/os/storage/IStorageManager;->benchmark(Ljava/lang/String;Landroid/os/IVoldTaskListener;)V
+Landroid/os/storage/IStorageManager;->changeEncryptionPassword(ILjava/lang/String;)I
+Landroid/os/storage/IStorageManager;->clearPassword()V
+Landroid/os/storage/IStorageManager;->createUserKey(IIZ)V
+Landroid/os/storage/IStorageManager;->decryptStorage(Ljava/lang/String;)I
+Landroid/os/storage/IStorageManager;->destroyUserKey(I)V
+Landroid/os/storage/IStorageManager;->destroyUserStorage(Ljava/lang/String;II)V
+Landroid/os/storage/IStorageManager;->encryptStorage(ILjava/lang/String;)I
+Landroid/os/storage/IStorageManager;->fixateNewestUserKeyAuth(I)V
+Landroid/os/storage/IStorageManager;->forgetAllVolumes()V
+Landroid/os/storage/IStorageManager;->forgetVolume(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager;->format(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager;->fstrim(ILandroid/os/IVoldTaskListener;)V
+Landroid/os/storage/IStorageManager;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J
+Landroid/os/storage/IStorageManager;->getCacheQuotaBytes(Ljava/lang/String;I)J
+Landroid/os/storage/IStorageManager;->getCacheSizeBytes(Ljava/lang/String;I)J
+Landroid/os/storage/IStorageManager;->getDisks()[Landroid/os/storage/DiskInfo;
+Landroid/os/storage/IStorageManager;->getEncryptionState()I
+Landroid/os/storage/IStorageManager;->getField(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/storage/IStorageManager;->getMountedObbPath(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/storage/IStorageManager;->getPassword()Ljava/lang/String;
+Landroid/os/storage/IStorageManager;->getPasswordType()I
+Landroid/os/storage/IStorageManager;->getPrimaryStorageUuid()Ljava/lang/String;
+Landroid/os/storage/IStorageManager;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
+Landroid/os/storage/IStorageManager;->getVolumeRecords(I)[Landroid/os/storage/VolumeRecord;
+Landroid/os/storage/IStorageManager;->getVolumes(I)[Landroid/os/storage/VolumeInfo;
+Landroid/os/storage/IStorageManager;->isConvertibleToFBE()Z
+Landroid/os/storage/IStorageManager;->isObbMounted(Ljava/lang/String;)Z
+Landroid/os/storage/IStorageManager;->isUserKeyUnlocked(I)Z
+Landroid/os/storage/IStorageManager;->lastMaintenance()J
+Landroid/os/storage/IStorageManager;->lockUserKey(I)V
+Landroid/os/storage/IStorageManager;->mkdirs(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager;->mount(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager;->mountObb(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/storage/IObbActionListener;I)V
+Landroid/os/storage/IStorageManager;->mountProxyFileDescriptorBridge()Lcom/android/internal/os/AppFuseMount;
+Landroid/os/storage/IStorageManager;->openProxyFileDescriptor(III)Landroid/os/ParcelFileDescriptor;
+Landroid/os/storage/IStorageManager;->partitionMixed(Ljava/lang/String;I)V
+Landroid/os/storage/IStorageManager;->partitionPrivate(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager;->partitionPublic(Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager;->prepareUserStorage(Ljava/lang/String;III)V
+Landroid/os/storage/IStorageManager;->registerListener(Landroid/os/storage/IStorageEventListener;)V
+Landroid/os/storage/IStorageManager;->runIdleMaintenance()V
+Landroid/os/storage/IStorageManager;->runMaintenance()V
+Landroid/os/storage/IStorageManager;->setDebugFlags(II)V
+Landroid/os/storage/IStorageManager;->setField(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager;->setPrimaryStorageUuid(Ljava/lang/String;Landroid/content/pm/IPackageMoveObserver;)V
+Landroid/os/storage/IStorageManager;->setVolumeNickname(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/IStorageManager;->setVolumeUserFlags(Ljava/lang/String;II)V
+Landroid/os/storage/IStorageManager;->shutdown(Landroid/os/storage/IStorageShutdownObserver;)V
+Landroid/os/storage/IStorageManager;->unlockUserKey(II[B[B)V
+Landroid/os/storage/IStorageManager;->unmount(Ljava/lang/String;)V
+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;
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->MSG_DISK_DESTROYED:I
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->MSG_DISK_SCANNED:I
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->MSG_STORAGE_STATE_CHANGED:I
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->MSG_VOLUME_FORGOTTEN:I
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->MSG_VOLUME_RECORD_CHANGED:I
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->MSG_VOLUME_STATE_CHANGED:I
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->onDiskDestroyed(Landroid/os/storage/DiskInfo;)V
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->onDiskScanned(Landroid/os/storage/DiskInfo;I)V
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->onUsbMassStorageConnectionChanged(Z)V
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->onVolumeForgotten(Ljava/lang/String;)V
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->onVolumeRecordChanged(Landroid/os/storage/VolumeRecord;)V
+Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
+Landroid/os/storage/StorageManager;->benchmark(Ljava/lang/String;)J
+Landroid/os/storage/StorageManager;->benchmark(Ljava/lang/String;Landroid/os/IVoldTaskListener;)V
+Landroid/os/storage/StorageManager;->convert(Ljava/lang/String;)Ljava/util/UUID;
+Landroid/os/storage/StorageManager;->convert(Ljava/util/UUID;)Ljava/lang/String;
+Landroid/os/storage/StorageManager;->createUserKey(IIZ)V
+Landroid/os/storage/StorageManager;->CRYPT_TYPE_PATTERN:I
+Landroid/os/storage/StorageManager;->CRYPT_TYPE_PIN:I
+Landroid/os/storage/StorageManager;->DEBUG_ADOPTABLE_FORCE_OFF:I
+Landroid/os/storage/StorageManager;->DEBUG_ADOPTABLE_FORCE_ON:I
+Landroid/os/storage/StorageManager;->DEBUG_EMULATE_FBE:I
+Landroid/os/storage/StorageManager;->DEBUG_SDCARDFS_FORCE_OFF:I
+Landroid/os/storage/StorageManager;->DEBUG_SDCARDFS_FORCE_ON:I
+Landroid/os/storage/StorageManager;->DEBUG_VIRTUAL_DISK:I
+Landroid/os/storage/StorageManager;->DEFAULT_CACHE_MAX_BYTES:J
+Landroid/os/storage/StorageManager;->DEFAULT_CACHE_PERCENTAGE:I
+Landroid/os/storage/StorageManager;->DEFAULT_FULL_THRESHOLD_BYTES:J
+Landroid/os/storage/StorageManager;->DEFAULT_THRESHOLD_MAX_BYTES:J
+Landroid/os/storage/StorageManager;->DEFAULT_THRESHOLD_PERCENTAGE:I
+Landroid/os/storage/StorageManager;->destroyUserKey(I)V
+Landroid/os/storage/StorageManager;->destroyUserStorage(Ljava/lang/String;II)V
+Landroid/os/storage/StorageManager;->ENCRYPTION_STATE_ERROR_CORRUPT:I
+Landroid/os/storage/StorageManager;->ENCRYPTION_STATE_ERROR_INCOMPLETE:I
+Landroid/os/storage/StorageManager;->ENCRYPTION_STATE_ERROR_INCONSISTENT:I
+Landroid/os/storage/StorageManager;->ENCRYPTION_STATE_ERROR_UNKNOWN:I
+Landroid/os/storage/StorageManager;->ENCRYPTION_STATE_OK:I
+Landroid/os/storage/StorageManager;->findPathForUuid(Ljava/lang/String;)Ljava/io/File;
+Landroid/os/storage/StorageManager;->findPrivateForEmulated(Landroid/os/storage/VolumeInfo;)Landroid/os/storage/VolumeInfo;
+Landroid/os/storage/StorageManager;->findRecordByUuid(Ljava/lang/String;)Landroid/os/storage/VolumeRecord;
+Landroid/os/storage/StorageManager;->findVolumeByQualifiedUuid(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
+Landroid/os/storage/StorageManager;->FLAG_ALLOCATE_DEFY_ALL_RESERVED:I
+Landroid/os/storage/StorageManager;->FLAG_ALLOCATE_DEFY_HALF_RESERVED:I
+Landroid/os/storage/StorageManager;->FLAG_FOR_WRITE:I
+Landroid/os/storage/StorageManager;->FLAG_INCLUDE_INVISIBLE:I
+Landroid/os/storage/StorageManager;->FLAG_REAL_STATE:I
+Landroid/os/storage/StorageManager;->FLAG_STORAGE_CE:I
+Landroid/os/storage/StorageManager;->FLAG_STORAGE_DE:I
+Landroid/os/storage/StorageManager;->forgetVolume(Ljava/lang/String;)V
+Landroid/os/storage/StorageManager;->FSTRIM_FLAG_DEEP:I
+Landroid/os/storage/StorageManager;->getNextNonce()I
+Landroid/os/storage/StorageManager;->getPrimaryStoragePathAndSize()Landroid/util/Pair;
+Landroid/os/storage/StorageManager;->getPrimaryStorageSize()J
+Landroid/os/storage/StorageManager;->getPrimaryStorageUuid()Ljava/lang/String;
+Landroid/os/storage/StorageManager;->getPrimaryVolume([Landroid/os/storage/StorageVolume;)Landroid/os/storage/StorageVolume;
+Landroid/os/storage/StorageManager;->getProxyFileDescriptorMountPointId()I
+Landroid/os/storage/StorageManager;->getStorageCacheBytes(Ljava/io/File;I)J
+Landroid/os/storage/StorageManager;->getStorageVolume(Ljava/io/File;I)Landroid/os/storage/StorageVolume;
+Landroid/os/storage/StorageManager;->getVolumeRecords()Ljava/util/List;
+Landroid/os/storage/StorageManager;->getWritablePrivateVolumes()Ljava/util/List;
+Landroid/os/storage/StorageManager;->hasAdoptable()Z
+Landroid/os/storage/StorageManager;->inCryptKeeperBounce()Z
+Landroid/os/storage/StorageManager;->isBlockEncrypted()Z
+Landroid/os/storage/StorageManager;->isBlockEncrypting()Z
+Landroid/os/storage/StorageManager;->isCacheBehavior(Ljava/io/File;Ljava/lang/String;)Z
+Landroid/os/storage/StorageManager;->isEncryptable()Z
+Landroid/os/storage/StorageManager;->isEncrypted()Z
+Landroid/os/storage/StorageManager;->isFileEncryptedEmulatedOnly()Z
+Landroid/os/storage/StorageManager;->isFileEncryptedNativeOrEmulated()Z
+Landroid/os/storage/StorageManager;->isNonDefaultBlockEncrypted()Z
+Landroid/os/storage/StorageManager;->isUserKeyUnlocked(I)Z
+Landroid/os/storage/StorageManager;->lockUserKey(I)V
+Landroid/os/storage/StorageManager;->maybeTranslateEmulatedPathToInternal(Ljava/io/File;)Ljava/io/File;
+Landroid/os/storage/StorageManager;->mContext:Landroid/content/Context;
+Landroid/os/storage/StorageManager;->mDelegates:Ljava/util/ArrayList;
+Landroid/os/storage/StorageManager;->mFuseAppLoop:Lcom/android/internal/os/FuseAppLoop;
+Landroid/os/storage/StorageManager;->mFuseAppLoopLock:Ljava/lang/Object;
+Landroid/os/storage/StorageManager;->mkdirs(Ljava/io/File;)V
+Landroid/os/storage/StorageManager;->mLooper:Landroid/os/Looper;
+Landroid/os/storage/StorageManager;->mNextNonce:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/os/storage/StorageManager;->mObbActionListener:Landroid/os/storage/StorageManager$ObbActionListener;
+Landroid/os/storage/StorageManager;->mount(Ljava/lang/String;)V
+Landroid/os/storage/StorageManager;->mResolver:Landroid/content/ContentResolver;
+Landroid/os/storage/StorageManager;->mStorageManager:Landroid/os/storage/IStorageManager;
+Landroid/os/storage/StorageManager;->openProxyFileDescriptor(ILandroid/os/ProxyFileDescriptorCallback;)Landroid/os/ParcelFileDescriptor;
+Landroid/os/storage/StorageManager;->openProxyFileDescriptor(ILandroid/os/ProxyFileDescriptorCallback;Landroid/os/Handler;Ljava/util/concurrent/ThreadFactory;)Landroid/os/ParcelFileDescriptor;
+Landroid/os/storage/StorageManager;->OWNER_INFO_KEY:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->partitionMixed(Ljava/lang/String;I)V
+Landroid/os/storage/StorageManager;->partitionPrivate(Ljava/lang/String;)V
+Landroid/os/storage/StorageManager;->PASSWORD_VISIBLE_KEY:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->PATTERN_VISIBLE_KEY:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->prepareUserStorage(Ljava/lang/String;III)V
+Landroid/os/storage/StorageManager;->PROP_ADOPTABLE:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->PROP_EMULATE_FBE:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->PROP_HAS_ADOPTABLE:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->PROP_HAS_RESERVED:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->PROP_PRIMARY_PHYSICAL:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->PROP_SDCARDFS:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->PROP_VIRTUAL_DISK:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->setCacheBehavior(Ljava/io/File;Ljava/lang/String;Z)V
+Landroid/os/storage/StorageManager;->setPrimaryStorageUuid(Ljava/lang/String;Landroid/content/pm/IPackageMoveObserver;)V
+Landroid/os/storage/StorageManager;->setVolumeInited(Ljava/lang/String;Z)V
+Landroid/os/storage/StorageManager;->setVolumeNickname(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/StorageManager;->setVolumeSnoozed(Ljava/lang/String;Z)V
+Landroid/os/storage/StorageManager;->sStorageManager:Landroid/os/storage/IStorageManager;
+Landroid/os/storage/StorageManager;->SYSTEM_LOCALE_KEY:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->TAG:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->unlockUserKey(II[B[B)V
+Landroid/os/storage/StorageManager;->UUID_PRIMARY_PHYSICAL:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->UUID_PRIMARY_PHYSICAL_:Ljava/util/UUID;
+Landroid/os/storage/StorageManager;->UUID_PRIVATE_INTERNAL:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->UUID_SYSTEM:Ljava/lang/String;
+Landroid/os/storage/StorageManager;->UUID_SYSTEM_:Ljava/util/UUID;
+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;
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->COL_GRANTED:Ljava/lang/String;
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->COL_PACKAGE:Ljava/lang/String;
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->COL_VOLUME_UUID:Ljava/lang/String;
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PACKAGES:Ljava/lang/String;
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PACKAGES_COLUMNS:[Ljava/lang/String;
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PACKAGES_COL_PACKAGE:I
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PERMISSIONS:Ljava/lang/String;
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PERMISSIONS_COLUMNS:[Ljava/lang/String;
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PERMISSIONS_COL_DIRECTORY:I
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PERMISSIONS_COL_GRANTED:I
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PERMISSIONS_COL_PACKAGE:I
+Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->TABLE_PERMISSIONS_COL_VOLUME_UUID:I
+Landroid/os/storage/StorageVolume;-><init>(Landroid/os/Parcel;)V
+Landroid/os/storage/StorageVolume;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;ZZZZJLandroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/os/storage/StorageVolume;->ACTION_OPEN_EXTERNAL_DIRECTORY:Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->dump()Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+Landroid/os/storage/StorageVolume;->EXTRA_DIRECTORY_NAME:Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->getInternalPath()Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->mAllowMassStorage:Z
+Landroid/os/storage/StorageVolume;->mEmulated:Z
+Landroid/os/storage/StorageVolume;->mFsUuid:Ljava/lang/String;
+Landroid/os/storage/StorageVolume;->mInternalPath:Ljava/io/File;
+Landroid/os/storage/StorageVolume;->mMaxFileSize:J
+Landroid/os/storage/StorageVolume;->mOwner:Landroid/os/UserHandle;
+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;
+Landroid/os/storage/VolumeInfo;->DOCUMENT_AUTHORITY:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->DOCUMENT_ROOT_PRIMARY_EMULATED:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+Landroid/os/storage/VolumeInfo;->EXTRA_VOLUME_ID:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->EXTRA_VOLUME_STATE:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->fsType:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getBroadcastForEnvironment(Ljava/lang/String;)Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getBroadcastForState(I)Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->getDescriptionComparator()Ljava/util/Comparator;
+Landroid/os/storage/VolumeInfo;->getStateDescription()I
+Landroid/os/storage/VolumeInfo;->id:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->ID_EMULATED_INTERNAL:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->ID_PRIVATE_INTERNAL:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->isVisibleForRead(I)Z
+Landroid/os/storage/VolumeInfo;->isVisibleForUser(I)Z
+Landroid/os/storage/VolumeInfo;->mountFlags:I
+Landroid/os/storage/VolumeInfo;->mountUserId:I
+Landroid/os/storage/VolumeInfo;->MOUNT_FLAG_PRIMARY:I
+Landroid/os/storage/VolumeInfo;->MOUNT_FLAG_VISIBLE:I
+Landroid/os/storage/VolumeInfo;->partGuid:Ljava/lang/String;
+Landroid/os/storage/VolumeInfo;->sDescriptionComparator:Ljava/util/Comparator;
+Landroid/os/storage/VolumeInfo;->sEnvironmentToBroadcast:Landroid/util/ArrayMap;
+Landroid/os/storage/VolumeInfo;->sStateToDescrip:Landroid/util/SparseIntArray;
+Landroid/os/storage/VolumeInfo;->sStateToEnvironment:Landroid/util/SparseArray;
+Landroid/os/storage/VolumeInfo;->STATE_BAD_REMOVAL:I
+Landroid/os/storage/VolumeInfo;->STATE_CHECKING:I
+Landroid/os/storage/VolumeInfo;->STATE_EJECTING:I
+Landroid/os/storage/VolumeInfo;->STATE_FORMATTING:I
+Landroid/os/storage/VolumeInfo;->STATE_MOUNTED:I
+Landroid/os/storage/VolumeInfo;->STATE_MOUNTED_READ_ONLY:I
+Landroid/os/storage/VolumeInfo;->STATE_REMOVED:I
+Landroid/os/storage/VolumeInfo;->STATE_UNMOUNTABLE:I
+Landroid/os/storage/VolumeInfo;->STATE_UNMOUNTED:I
+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
+Landroid/os/storage/VolumeRecord;->EXTRA_FS_UUID:Ljava/lang/String;
+Landroid/os/storage/VolumeRecord;->fsUuid:Ljava/lang/String;
+Landroid/os/storage/VolumeRecord;->getFsUuid()Ljava/lang/String;
+Landroid/os/storage/VolumeRecord;->getNickname()Ljava/lang/String;
+Landroid/os/storage/VolumeRecord;->getType()I
+Landroid/os/storage/VolumeRecord;->isInited()Z
+Landroid/os/storage/VolumeRecord;->isSnoozed()Z
+Landroid/os/storage/VolumeRecord;->lastBenchMillis:J
+Landroid/os/storage/VolumeRecord;->lastTrimMillis:J
+Landroid/os/storage/VolumeRecord;->nickname:Ljava/lang/String;
+Landroid/os/storage/VolumeRecord;->partGuid:Ljava/lang/String;
+Landroid/os/storage/VolumeRecord;->type:I
+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
+Landroid/os/StrictMode$AndroidBlockGuardPolicy;->mLastViolationTime:Landroid/util/ArrayMap;
+Landroid/os/StrictMode$AndroidBlockGuardPolicy;->mPolicyMask:I
+Landroid/os/StrictMode$AndroidBlockGuardPolicy;->onCustomSlowCall(Ljava/lang/String;)V
+Landroid/os/StrictMode$AndroidBlockGuardPolicy;->onNetwork()V
+Landroid/os/StrictMode$AndroidBlockGuardPolicy;->onReadFromDisk()V
+Landroid/os/StrictMode$AndroidBlockGuardPolicy;->onResourceMismatch(Ljava/lang/Object;)V
+Landroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V
+Landroid/os/StrictMode$AndroidBlockGuardPolicy;->onUnbufferedIO()V
+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;
+Landroid/os/StrictMode$Span;->mCreateMillis:J
+Landroid/os/StrictMode$Span;->mName:Ljava/lang/String;
+Landroid/os/StrictMode$Span;->mNext:Landroid/os/StrictMode$Span;
+Landroid/os/StrictMode$Span;->mPrev:Landroid/os/StrictMode$Span;
+Landroid/os/StrictMode$ThreadPolicy$Builder;->disable(I)Landroid/os/StrictMode$ThreadPolicy$Builder;
+Landroid/os/StrictMode$ThreadPolicy$Builder;->enable(I)Landroid/os/StrictMode$ThreadPolicy$Builder;
+Landroid/os/StrictMode$ThreadPolicy$Builder;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/os/StrictMode$ThreadPolicy$Builder;->mListener:Landroid/os/StrictMode$OnThreadViolationListener;
+Landroid/os/StrictMode$ThreadPolicy$Builder;->mMask:I
+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
+Landroid/os/StrictMode$ThreadSpanState;->mFreeListHead:Landroid/os/StrictMode$Span;
+Landroid/os/StrictMode$ThreadSpanState;->mFreeListSize:I
+Landroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/strictmode/Violation;I)V
+Landroid/os/StrictMode$ViolationInfo;->addLocalStack(Ljava/lang/Throwable;)V
+Landroid/os/StrictMode$ViolationInfo;->mBinderStack:Ljava/util/Deque;
+Landroid/os/StrictMode$ViolationInfo;->mPolicy:I
+Landroid/os/StrictMode$ViolationInfo;->mStackTrace:Ljava/lang/String;
+Landroid/os/StrictMode$ViolationInfo;->mViolation:Landroid/os/strictmode/Violation;
+Landroid/os/StrictMode$ViolationInfo;->penaltyEnabled(I)Z
+Landroid/os/StrictMode$VmPolicy$Builder;->disable(I)Landroid/os/StrictMode$VmPolicy$Builder;
+Landroid/os/StrictMode$VmPolicy$Builder;->enable(I)Landroid/os/StrictMode$VmPolicy$Builder;
+Landroid/os/StrictMode$VmPolicy$Builder;->mClassInstanceLimit:Ljava/util/HashMap;
+Landroid/os/StrictMode$VmPolicy$Builder;->mClassInstanceLimitNeedCow:Z
+Landroid/os/StrictMode$VmPolicy$Builder;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/os/StrictMode$VmPolicy$Builder;->mListener:Landroid/os/StrictMode$OnVmViolationListener;
+Landroid/os/StrictMode$VmPolicy$Builder;->permitActivityLeaks()Landroid/os/StrictMode$VmPolicy$Builder;
+Landroid/os/StrictMode$VmPolicy$Builder;->permitUntaggedSockets()Landroid/os/StrictMode$VmPolicy$Builder;
+Landroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;)V
+Landroid/os/StrictMode$VmPolicy;->classInstanceLimit:Ljava/util/HashMap;
+Landroid/os/StrictMode$VmPolicy;->mCallbackExecutor:Ljava/util/concurrent/Executor;
+Landroid/os/StrictMode$VmPolicy;->mListener:Landroid/os/StrictMode$OnVmViolationListener;
+Landroid/os/strictmode/CleartextNetworkViolation;-><init>(Ljava/lang/String;)V
+Landroid/os/strictmode/ContentUriWithoutPermissionViolation;-><init>(Landroid/net/Uri;Ljava/lang/String;)V
+Landroid/os/strictmode/CustomViolation;-><init>(Ljava/lang/String;)V
+Landroid/os/strictmode/DiskReadViolation;-><init>()V
+Landroid/os/strictmode/DiskWriteViolation;-><init>()V
+Landroid/os/strictmode/FileUriExposedViolation;-><init>(Ljava/lang/String;)V
+Landroid/os/strictmode/InstanceCountViolation;-><init>(Ljava/lang/Class;JI)V
+Landroid/os/strictmode/InstanceCountViolation;->FAKE_STACK:[Ljava/lang/StackTraceElement;
+Landroid/os/strictmode/InstanceCountViolation;->mInstances:J
+Landroid/os/strictmode/IntentReceiverLeakedViolation;-><init>(Ljava/lang/Throwable;)V
+Landroid/os/strictmode/LeakedClosableViolation;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+Landroid/os/strictmode/NetworkViolation;-><init>()V
+Landroid/os/strictmode/NonSdkApiUsedViolation;-><init>(Ljava/lang/String;)V
+Landroid/os/strictmode/ResourceMismatchViolation;-><init>(Ljava/lang/Object;)V
+Landroid/os/strictmode/ServiceConnectionLeakedViolation;-><init>(Ljava/lang/Throwable;)V
+Landroid/os/strictmode/SqliteObjectLeakedViolation;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+Landroid/os/strictmode/UnbufferedIoViolation;-><init>()V
+Landroid/os/strictmode/UntaggedSocketViolation;-><init>()V
+Landroid/os/strictmode/UntaggedSocketViolation;->MESSAGE:Ljava/lang/String;
+Landroid/os/strictmode/Violation;-><init>(Ljava/lang/String;)V
+Landroid/os/strictmode/WebViewMethodCalledOnWrongThreadViolation;-><init>(Ljava/lang/Throwable;)V
+Landroid/os/StrictMode;-><init>()V
+Landroid/os/StrictMode;->allowThreadDiskReadsMask()I
+Landroid/os/StrictMode;->allowThreadDiskWritesMask()I
+Landroid/os/StrictMode;->allowThreadViolations()Landroid/os/StrictMode$ThreadPolicy;
+Landroid/os/StrictMode;->allowVmViolations()Landroid/os/StrictMode$VmPolicy;
+Landroid/os/StrictMode;->ALL_THREAD_DETECT_BITS:I
+Landroid/os/StrictMode;->ALL_VM_DETECT_BITS:I
+Landroid/os/StrictMode;->clearGatheredViolations()V
+Landroid/os/StrictMode;->CLEARTEXT_DETECTED_MSG:Ljava/lang/String;
+Landroid/os/StrictMode;->CLEARTEXT_PROPERTY:Ljava/lang/String;
+Landroid/os/StrictMode;->decrementExpectedActivityCount(Ljava/lang/Class;)V
+Landroid/os/StrictMode;->DISABLE:Z
+Landroid/os/StrictMode;->DISABLE_PROPERTY:Ljava/lang/String;
+Landroid/os/StrictMode;->dropboxViolationAsync(ILandroid/os/StrictMode$ViolationInfo;)V
+Landroid/os/StrictMode;->EMPTY_CLASS_LIMIT_MAP:Ljava/util/HashMap;
+Landroid/os/StrictMode;->gatheredViolations:Ljava/lang/ThreadLocal;
+Landroid/os/StrictMode;->handleApplicationStrictModeViolation(ILandroid/os/StrictMode$ViolationInfo;)V
+Landroid/os/StrictMode;->hasGatheredViolations()Z
+Landroid/os/StrictMode;->initThreadDefaults(Landroid/content/pm/ApplicationInfo;)V
+Landroid/os/StrictMode;->initVmDefaults(Landroid/content/pm/ApplicationInfo;)V
+Landroid/os/StrictMode;->isBundledSystemApp(Landroid/content/pm/ApplicationInfo;)Z
+Landroid/os/StrictMode;->LOGCAT_LOGGER:Landroid/os/StrictMode$ViolationLogger;
+Landroid/os/StrictMode;->LOG_V:Z
+Landroid/os/StrictMode;->MAX_OFFENSES_PER_LOOP:I
+Landroid/os/StrictMode;->MAX_SPAN_TAGS:I
+Landroid/os/StrictMode;->MIN_DIALOG_INTERVAL_MS:J
+Landroid/os/StrictMode;->MIN_LOG_INTERVAL_MS:J
+Landroid/os/StrictMode;->MIN_VM_INTERVAL_MS:J
+Landroid/os/StrictMode;->NETWORK_POLICY_ACCEPT:I
+Landroid/os/StrictMode;->NETWORK_POLICY_LOG:I
+Landroid/os/StrictMode;->NETWORK_POLICY_REJECT:I
+Landroid/os/StrictMode;->noteDiskRead()V
+Landroid/os/StrictMode;->noteDiskWrite()V
+Landroid/os/StrictMode;->noteResourceMismatch(Ljava/lang/Object;)V
+Landroid/os/StrictMode;->noteUnbufferedIO()V
+Landroid/os/StrictMode;->NO_OP_SPAN:Landroid/os/StrictMode$Span;
+Landroid/os/StrictMode;->onCleartextNetworkDetected([B)V
+Landroid/os/StrictMode;->onContentUriWithoutPermission(Landroid/net/Uri;Ljava/lang/String;)V
+Landroid/os/StrictMode;->onFileUriExposed(Landroid/net/Uri;Ljava/lang/String;)V
+Landroid/os/StrictMode;->onIntentReceiverLeaked(Ljava/lang/Throwable;)V
+Landroid/os/StrictMode;->onServiceConnectionLeaked(Ljava/lang/Throwable;)V
+Landroid/os/StrictMode;->onSqliteObjectLeaked(Ljava/lang/String;Ljava/lang/Throwable;)V
+Landroid/os/StrictMode;->onUntaggedSocket()V
+Landroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;)V
+Landroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;Z)V
+Landroid/os/StrictMode;->parsePolicyFromMessage(Ljava/lang/String;)I
+Landroid/os/StrictMode;->PENALTY_DEATH:I
+Landroid/os/StrictMode;->PENALTY_DEATH_ON_CLEARTEXT_NETWORK:I
+Landroid/os/StrictMode;->PENALTY_DEATH_ON_FILE_URI_EXPOSURE:I
+Landroid/os/StrictMode;->PENALTY_DEATH_ON_NETWORK:I
+Landroid/os/StrictMode;->PENALTY_DIALOG:I
+Landroid/os/StrictMode;->PENALTY_DROPBOX:I
+Landroid/os/StrictMode;->PENALTY_FLASH:I
+Landroid/os/StrictMode;->PENALTY_GATHER:I
+Landroid/os/StrictMode;->PENALTY_LOG:I
+Landroid/os/StrictMode;->readAndHandleBinderCallViolations(Landroid/os/Parcel;)V
+Landroid/os/StrictMode;->sDropboxCallsInFlight:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/os/StrictMode;->setBlockGuardPolicy(I)V
+Landroid/os/StrictMode;->setCloseGuardEnabled(Z)V
+Landroid/os/StrictMode;->setThreadPolicyMask(I)V
+Landroid/os/StrictMode;->sExpectedActivityInstanceCount:Ljava/util/HashMap;
+Landroid/os/StrictMode;->sIsIdlerRegistered:Z
+Landroid/os/StrictMode;->sLastInstanceCountCheckMillis:J
+Landroid/os/StrictMode;->sLogger:Landroid/os/StrictMode$ViolationLogger;
+Landroid/os/StrictMode;->sNonSdkApiUsageConsumer:Ljava/util/function/Consumer;
+Landroid/os/StrictMode;->sProcessIdleHandler:Landroid/os/MessageQueue$IdleHandler;
+Landroid/os/StrictMode;->sThisThreadSpanState:Ljava/lang/ThreadLocal;
+Landroid/os/StrictMode;->sThreadViolationExecutor:Ljava/lang/ThreadLocal;
+Landroid/os/StrictMode;->sThreadViolationListener:Ljava/lang/ThreadLocal;
+Landroid/os/StrictMode;->sVmPolicy:Landroid/os/StrictMode$VmPolicy;
+Landroid/os/StrictMode;->TAG:Ljava/lang/String;
+Landroid/os/StrictMode;->THREAD_ANDROID_POLICY:Ljava/lang/ThreadLocal;
+Landroid/os/StrictMode;->THREAD_HANDLER:Ljava/lang/ThreadLocal;
+Landroid/os/StrictMode;->THREAD_PENALTY_MASK:I
+Landroid/os/StrictMode;->tooManyViolationsThisLoop()Z
+Landroid/os/StrictMode;->trackActivity(Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/os/StrictMode;->VISUAL_PROPERTY:Ljava/lang/String;
+Landroid/os/StrictMode;->vmCleartextNetworkEnabled()Z
+Landroid/os/StrictMode;->vmClosableObjectLeaksEnabled()Z
+Landroid/os/StrictMode;->vmContentUriWithoutPermissionEnabled()Z
+Landroid/os/StrictMode;->vmFileUriExposureEnabled()Z
+Landroid/os/StrictMode;->vmRegistrationLeaksEnabled()Z
+Landroid/os/StrictMode;->vmSqliteObjectLeaksEnabled()Z
+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;
+Landroid/os/SynchronousResultReceiver;->getName()Ljava/lang/String;
+Landroid/os/SynchronousResultReceiver;->mFuture:Ljava/util/concurrent/CompletableFuture;
+Landroid/os/SynchronousResultReceiver;->mName:Ljava/lang/String;
+Landroid/os/SystemClock;->currentNetworkTimeClock()Ljava/time/Clock;
+Landroid/os/SystemClock;->currentNetworkTimeMillis()J
+Landroid/os/SystemClock;->TAG:Ljava/lang/String;
+Landroid/os/SystemProperties;->callChangeCallbacks()V
+Landroid/os/SystemProperties;->native_report_sysprop_change()V
+Landroid/os/SystemProperties;->onKeyAccess(Ljava/lang/String;)V
+Landroid/os/SystemProperties;->PROP_VALUE_MAX:I
+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
+Landroid/os/SystemPropertiesProto$DalvikVm;->DEX2OAT_FILTER:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->DEX2OAT_FLAGS:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->DEX2OAT_THREADS:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->DEX2OAT_XMS:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->DEX2OAT_XMX:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->DEXOPT_SECONDARY:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->EXECUTION_MODE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->EXTRA_OPTS:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->GCTYPE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->HEAPGROWTHLIMIT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->HEAPMAXFREE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->HEAPMINFREE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->HEAPSIZE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->HEAPSTARTSIZE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->HEAPTARGETUTILIZATION:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->HOT_STARTUP_METHOD_SAMPLES:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->IMAGE_DEX2OAT_FILTER:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->IMAGE_DEX2OAT_FLAGS:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->IMAGE_DEX2OAT_THREADS:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->IMAGE_DEX2OAT_XMS:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->IMAGE_DEX2OAT_XMX:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_ARM64_FEATURES:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_ARM64_VARIANT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_ARM_FEATURES:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_ARM_VARIANT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_MIPS64_FEATURES:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_MIPS64_VARIANT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_MIPS_FEATURES:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_MIPS_VARIANT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_UNKNOWN_FEATURES:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_UNKNOWN_VARIANT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_X86_64_FEATURES:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_X86_64_VARIANT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_X86_FEATURES:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->ISA_X86_VARIANT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->JITINITIALSIZE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->JITMAXSIZE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->JITPRITHREADWEIGHT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->JITTHRESHOLD:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->JITTRANSITIONWEIGHT:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->JNIOPTS:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->LOCKPROF_THRESHOLD:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->METHOD_TRACE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->METHOD_TRACE_FILE:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->METHOD_TRACE_FILE_SIZ:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->METHOD_TRACE_STREAM:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->PROFILESYSTEMSERVER:J
+Landroid/os/SystemPropertiesProto$DalvikVm;->STACK_TRACE_DIR:J
+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
+Landroid/os/SystemPropertiesProto$InitSvc;->BUFFERHUBD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->CAMERASERVER:J
+Landroid/os/SystemPropertiesProto$InitSvc;->CLEAR_BCB:J
+Landroid/os/SystemPropertiesProto$InitSvc;->DRM:J
+Landroid/os/SystemPropertiesProto$InitSvc;->GATEKEEPERD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->HEALTHD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->HIDL_MEMORY:J
+Landroid/os/SystemPropertiesProto$InitSvc;->HOSTAPD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->HWSERVICEMANAGER:J
+Landroid/os/SystemPropertiesProto$InitSvc;->INSTALLD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->KEYSTORE:J
+Landroid/os/SystemPropertiesProto$InitSvc;->LMKD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->LOGD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->LOGD_REINIT:J
+Landroid/os/SystemPropertiesProto$InitSvc;->MEDIA:J
+Landroid/os/SystemPropertiesProto$InitSvc;->MEDIADRM:J
+Landroid/os/SystemPropertiesProto$InitSvc;->MEDIAEXTRACTOR:J
+Landroid/os/SystemPropertiesProto$InitSvc;->MEDIAMETRICS:J
+Landroid/os/SystemPropertiesProto$InitSvc;->NETD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->PERFORMANCED:J
+Landroid/os/SystemPropertiesProto$InitSvc;->RIL_DAEMON:J
+Landroid/os/SystemPropertiesProto$InitSvc;->SERVICEMANAGER:J
+Landroid/os/SystemPropertiesProto$InitSvc;->STATUS_RUNNING:I
+Landroid/os/SystemPropertiesProto$InitSvc;->STATUS_STOPPED:I
+Landroid/os/SystemPropertiesProto$InitSvc;->STATUS_UNKNOWN:I
+Landroid/os/SystemPropertiesProto$InitSvc;->STORAGED:J
+Landroid/os/SystemPropertiesProto$InitSvc;->SURFACEFLINGER:J
+Landroid/os/SystemPropertiesProto$InitSvc;->THERMALSERVICE:J
+Landroid/os/SystemPropertiesProto$InitSvc;->TOMBSTONED:J
+Landroid/os/SystemPropertiesProto$InitSvc;->UEVENTD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->UPDATE_ENGINE:J
+Landroid/os/SystemPropertiesProto$InitSvc;->UPDATE_VERIFIER_NONENCRYPTED:J
+Landroid/os/SystemPropertiesProto$InitSvc;->VIRTUAL_TOUCHPAD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->VNDSERVICEMANAGER:J
+Landroid/os/SystemPropertiesProto$InitSvc;->VOLD:J
+Landroid/os/SystemPropertiesProto$InitSvc;->VR_HWC:J
+Landroid/os/SystemPropertiesProto$InitSvc;->WEBVIEW_ZYGOTE32:J
+Landroid/os/SystemPropertiesProto$InitSvc;->WIFICOND:J
+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
+Landroid/os/SystemPropertiesProto$Persist;->DBG_WFC_AVAIL_OVR:J
+Landroid/os/SystemPropertiesProto$Persist;->RADIO_AIRPLANE_MODE_ON:J
+Landroid/os/SystemPropertiesProto$Persist;->RADIO_MULTISIM_CONFIG:J
+Landroid/os/SystemPropertiesProto$Persist;->RCS_SUPPORTED:J
+Landroid/os/SystemPropertiesProto$Persist;->SYS_CRASH_RCU:J
+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
+Landroid/os/SystemPropertiesProto$Ro$Boot;->BOOTLOADER:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->BOOTTIME:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->CONSOLE:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->FAKE_BATTERY:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->HARDWARE:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->HARDWARE_COLOR:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->HARDWARE_REVISION:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->HARDWARE_SKU:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->KEYMASTER:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->MODE:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->REVISION:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->SLOT_SUFFIX:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->VBMETA_AVB_VERSION:J
+Landroid/os/SystemPropertiesProto$Ro$Boot;->VENDOR_OVERLAY_THEME:J
+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
+Landroid/os/SystemPropertiesProto$Ro$Build$Version;->PREVIEW_SDK:J
+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
+Landroid/os/SystemPropertiesProto$Ro$Build;->DISPLAY_ID:J
+Landroid/os/SystemPropertiesProto$Ro$Build;->HOST:J
+Landroid/os/SystemPropertiesProto$Ro$Build;->ID:J
+Landroid/os/SystemPropertiesProto$Ro$Build;->PRODUCT:J
+Landroid/os/SystemPropertiesProto$Ro$Build;->SYSTEM_ROOT_IMAGE:J
+Landroid/os/SystemPropertiesProto$Ro$Build;->TAGS:J
+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
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->AUDIO_POLICY:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->AUDIO_PRIMARY:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->AUDIO_USB:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->BOOTCTRL:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->CAMERA:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->CONSUMERIR:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->CONTEXT_HUB:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->EGL:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->FINGERPRINT:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->FLP:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->GATEKEEPER:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->GPS:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->GRALLOC:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->HDMI_CEC:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->HWCOMPOSER:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->INPUT:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->KEYSTORE:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->LIGHTS:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->LOCAL_TIME:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->MEMTRACK:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->NFC:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->NFC_NCI:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->NFC_TAG:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->NVRAM:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->POWER:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->RADIO:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->SENSORS:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->SOUND_TRIGGER:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->THERMAL:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->TV_INPUT:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->TYPE:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->VALUE:J
+Landroid/os/SystemPropertiesProto$Ro$Hardware;->VEHICLE:J
+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
+Landroid/os/SystemPropertiesProto$Ro$Product;->CPU_ABILIST32:J
+Landroid/os/SystemPropertiesProto$Ro$Product;->CPU_ABILIST64:J
+Landroid/os/SystemPropertiesProto$Ro$Product;->CPU_ABILIST:J
+Landroid/os/SystemPropertiesProto$Ro$Product;->DEVICE:J
+Landroid/os/SystemPropertiesProto$Ro$Product;->FIRST_API_LEVEL:J
+Landroid/os/SystemPropertiesProto$Ro$Product;->MANUFACTURER:J
+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
+Landroid/os/SystemPropertiesProto$Ro;->AUDIO_MONITOR_ROTATION:J
+Landroid/os/SystemPropertiesProto$Ro;->BASEBAND:J
+Landroid/os/SystemPropertiesProto$Ro;->BOARD_PLATFORM:J
+Landroid/os/SystemPropertiesProto$Ro;->BOOT:J
+Landroid/os/SystemPropertiesProto$Ro;->BOOTIMAGE:J
+Landroid/os/SystemPropertiesProto$Ro;->BOOTLOADER:J
+Landroid/os/SystemPropertiesProto$Ro;->BOOTMODE:J
+Landroid/os/SystemPropertiesProto$Ro;->BUILD:J
+Landroid/os/SystemPropertiesProto$Ro;->CAMERA_NOTIFY_NFC:J
+Landroid/os/SystemPropertiesProto$Ro;->CARRIER:J
+Landroid/os/SystemPropertiesProto$Ro;->COM_ANDROID_DATAROAMING:J
+Landroid/os/SystemPropertiesProto$Ro;->COM_ANDROID_PROV_MOBILEDATA:J
+Landroid/os/SystemPropertiesProto$Ro;->COM_GOOGLE_CLIENTIDBASE:J
+Landroid/os/SystemPropertiesProto$Ro;->CONFIG:J
+Landroid/os/SystemPropertiesProto$Ro;->CONTROL_PRIVAPP_PERMISSIONS:J
+Landroid/os/SystemPropertiesProto$Ro;->CP_SYSTEM_OTHER_ODEX:J
+Landroid/os/SystemPropertiesProto$Ro;->CRYPTO_SCRYPT_PARAMS:J
+Landroid/os/SystemPropertiesProto$Ro;->CRYPTO_STATE:J
+Landroid/os/SystemPropertiesProto$Ro;->CRYPTO_TYPE:J
+Landroid/os/SystemPropertiesProto$Ro;->DALVIK_VM_NATIVE_BRIDGE:J
+Landroid/os/SystemPropertiesProto$Ro;->DEBUGGABLE:J
+Landroid/os/SystemPropertiesProto$Ro;->FRP_PST:J
+Landroid/os/SystemPropertiesProto$Ro;->GFX_DRIVER_0:J
+Landroid/os/SystemPropertiesProto$Ro;->HARDWARE:J
+Landroid/os/SystemPropertiesProto$Ro;->KERNEL_QEMU:J
+Landroid/os/SystemPropertiesProto$Ro;->KERNEL_QEMU_GLES:J
+Landroid/os/SystemPropertiesProto$Ro;->OEM_UNLOCK_SUPPORTED:J
+Landroid/os/SystemPropertiesProto$Ro;->OPENGLES_VERSION:J
+Landroid/os/SystemPropertiesProto$Ro;->PRODUCT:J
+Landroid/os/SystemPropertiesProto$Ro;->PROPERTY_SERVICE_VERSION:J
+Landroid/os/SystemPropertiesProto$Ro;->RETAILDEMO_VIDEO_PATH:J
+Landroid/os/SystemPropertiesProto$Ro;->REVISION:J
+Landroid/os/SystemPropertiesProto$Ro;->SF_LCD_DENSITY:J
+Landroid/os/SystemPropertiesProto$Ro;->STORAGE_MANAGER_ENABLED:J
+Landroid/os/SystemPropertiesProto$Ro;->TELEPHONY:J
+Landroid/os/SystemPropertiesProto$Ro;->URL_LEGAL:J
+Landroid/os/SystemPropertiesProto$Ro;->URL_LEGAL_ANDROID_PRIVACY:J
+Landroid/os/SystemPropertiesProto$Ro;->VENDOR:J
+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
+Landroid/os/SystemPropertiesProto$Sys$Usb;->FFS_MAX_READ:J
+Landroid/os/SystemPropertiesProto$Sys$Usb;->FFS_MAX_WRITE:J
+Landroid/os/SystemPropertiesProto$Sys$Usb;->FFS_MTP_READY:J
+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
+Landroid/os/SystemPropertiesProto;->AF_FAST_TRACK_MULTIPLIER:J
+Landroid/os/SystemPropertiesProto;->CAMERA:J
+Landroid/os/SystemPropertiesProto;->DALVIK_VM:J
+Landroid/os/SystemPropertiesProto;->DRM_64BIT_ENABLED:J
+Landroid/os/SystemPropertiesProto;->DRM_SERVICE_ENABLED:J
+Landroid/os/SystemPropertiesProto;->DUMPSTATE_DRY_RUN:J
+Landroid/os/SystemPropertiesProto;->EXTRA_PROPERTIES:J
+Landroid/os/SystemPropertiesProto;->GSM_SIM_OPERATOR_NUMERIC:J
+Landroid/os/SystemPropertiesProto;->HAL_INSTRUMENTATION_ENABLE:J
+Landroid/os/SystemPropertiesProto;->INIT_SVC:J
+Landroid/os/SystemPropertiesProto;->KEYGUARD_NO_REQUIRE_SIM:J
+Landroid/os/SystemPropertiesProto;->LIBC_DEBUG_MALLOC_OPTIONS:J
+Landroid/os/SystemPropertiesProto;->LIBC_DEBUG_MALLOC_PROGRAM:J
+Landroid/os/SystemPropertiesProto;->LOG:J
+Landroid/os/SystemPropertiesProto;->MEDIA_MEDIADRMSERVICE_ENABLE:J
+Landroid/os/SystemPropertiesProto;->MEDIA_RECORDER_SHOW_MANUFACTURER_AND_MODEL:J
+Landroid/os/SystemPropertiesProto;->PERSIST:J
+Landroid/os/SystemPropertiesProto;->PM_DEXOPT:J
+Landroid/os/SystemPropertiesProto;->RO:J
+Landroid/os/SystemPropertiesProto;->SENDBUG_PREFERRED_DOMAIN:J
+Landroid/os/SystemPropertiesProto;->SERVICE_BOOTANIM_EXIT:J
+Landroid/os/SystemPropertiesProto;->SYS:J
+Landroid/os/SystemPropertiesProto;->TELEPHONY_LTE_ON_CDMA_DEVICE:J
+Landroid/os/SystemPropertiesProto;->TOMBSTONED_MAX_TOMBSTONE_COUNT:J
+Landroid/os/SystemPropertiesProto;->VOLD_DECRYPT:J
+Landroid/os/SystemPropertiesProto;->VOLD_POST_FS_DATA_DONE:J
+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
+Landroid/os/SystemProto$Battery;->MAX_LEARNED_BATTERY_CAPACITY_UAH:J
+Landroid/os/SystemProto$Battery;->MIN_LEARNED_BATTERY_CAPACITY_UAH:J
+Landroid/os/SystemProto$Battery;->SCREEN_DOZE_DURATION_MS:J
+Landroid/os/SystemProto$Battery;->SCREEN_OFF_REALTIME_MS:J
+Landroid/os/SystemProto$Battery;->SCREEN_OFF_UPTIME_MS:J
+Landroid/os/SystemProto$Battery;->START_CLOCK_TIME_MS:J
+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
+Landroid/os/SystemProto$BatteryDischarge;->SCREEN_ON_SINCE_CHARGE:J
+Landroid/os/SystemProto$BatteryDischarge;->TOTAL_MAH:J
+Landroid/os/SystemProto$BatteryDischarge;->TOTAL_MAH_DEEP_DOZE:J
+Landroid/os/SystemProto$BatteryDischarge;->TOTAL_MAH_LIGHT_DOZE:J
+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
+Landroid/os/SystemProto$BatteryLevelStep;->DS_ERROR:I
+Landroid/os/SystemProto$BatteryLevelStep;->DS_MIXED:I
+Landroid/os/SystemProto$BatteryLevelStep;->DS_OFF:I
+Landroid/os/SystemProto$BatteryLevelStep;->DS_ON:I
+Landroid/os/SystemProto$BatteryLevelStep;->DURATION_MS:J
+Landroid/os/SystemProto$BatteryLevelStep;->IDLE_MODE:J
+Landroid/os/SystemProto$BatteryLevelStep;->IM_MIXED:I
+Landroid/os/SystemProto$BatteryLevelStep;->IM_OFF:I
+Landroid/os/SystemProto$BatteryLevelStep;->IM_ON:I
+Landroid/os/SystemProto$BatteryLevelStep;->LEVEL:J
+Landroid/os/SystemProto$BatteryLevelStep;->POWER_SAVE_MODE:J
+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
+Landroid/os/SystemProto$GlobalNetwork;->MOBILE_BYTES_TX:J
+Landroid/os/SystemProto$GlobalNetwork;->MOBILE_PACKETS_RX:J
+Landroid/os/SystemProto$GlobalNetwork;->MOBILE_PACKETS_TX:J
+Landroid/os/SystemProto$GlobalNetwork;->WIFI_BYTES_RX:J
+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
+Landroid/os/SystemProto$Misc;->DEEP_DOZE_IDLING_COUNT:J
+Landroid/os/SystemProto$Misc;->DEEP_DOZE_IDLING_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->FULL_WAKELOCK_TOTAL_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->INTERACTIVE_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->LIGHT_DOZE_COUNT:J
+Landroid/os/SystemProto$Misc;->LIGHT_DOZE_ENABLED_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->LIGHT_DOZE_IDLING_COUNT:J
+Landroid/os/SystemProto$Misc;->LIGHT_DOZE_IDLING_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->LONGEST_DEEP_DOZE_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->LONGEST_LIGHT_DOZE_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->MOBILE_RADIO_ACTIVE_ADJUSTED_TIME_MS:J
+Landroid/os/SystemProto$Misc;->MOBILE_RADIO_ACTIVE_COUNT:J
+Landroid/os/SystemProto$Misc;->MOBILE_RADIO_ACTIVE_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->MOBILE_RADIO_ACTIVE_UNKNOWN_DURATION_MS:J
+Landroid/os/SystemProto$Misc;->NUM_CONNECTIVITY_CHANGES:J
+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
+Landroid/os/SystemProto$PowerUseItem;->CELL:I
+Landroid/os/SystemProto$PowerUseItem;->COMPUTED_POWER_MAH:J
+Landroid/os/SystemProto$PowerUseItem;->FLASHLIGHT:I
+Landroid/os/SystemProto$PowerUseItem;->IDLE:I
+Landroid/os/SystemProto$PowerUseItem;->MEMORY:I
+Landroid/os/SystemProto$PowerUseItem;->NAME:J
+Landroid/os/SystemProto$PowerUseItem;->OVERCOUNTED:I
+Landroid/os/SystemProto$PowerUseItem;->PHONE:I
+Landroid/os/SystemProto$PowerUseItem;->PROPORTIONAL_SMEAR_MAH:J
+Landroid/os/SystemProto$PowerUseItem;->SCREEN:I
+Landroid/os/SystemProto$PowerUseItem;->SCREEN_POWER_MAH:J
+Landroid/os/SystemProto$PowerUseItem;->SHOULD_HIDE:J
+Landroid/os/SystemProto$PowerUseItem;->UID:J
+Landroid/os/SystemProto$PowerUseItem;->UNACCOUNTED:I
+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
+Landroid/os/SystemProto$ScreenBrightness;->LIGHT:I
+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
+Landroid/os/SystemProto$WifiSignalStrength;->NAME:J
+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
+Landroid/os/SystemProto$WifiState;->ON_CONNECTED_P2P:I
+Landroid/os/SystemProto$WifiState;->ON_CONNECTED_STA:I
+Landroid/os/SystemProto$WifiState;->ON_CONNECTED_STA_P2P:I
+Landroid/os/SystemProto$WifiState;->ON_DISCONNECTED:I
+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
+Landroid/os/SystemProto$WifiSupplicantState;->COMPLETED:I
+Landroid/os/SystemProto$WifiSupplicantState;->DISCONNECTED:I
+Landroid/os/SystemProto$WifiSupplicantState;->DORMANT:I
+Landroid/os/SystemProto$WifiSupplicantState;->FOUR_WAY_HANDSHAKE:I
+Landroid/os/SystemProto$WifiSupplicantState;->GROUP_HANDSHAKE:I
+Landroid/os/SystemProto$WifiSupplicantState;->INACTIVE:I
+Landroid/os/SystemProto$WifiSupplicantState;->INTERFACE_DISABLED:I
+Landroid/os/SystemProto$WifiSupplicantState;->INVALID:I
+Landroid/os/SystemProto$WifiSupplicantState;->NAME:J
+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
+Landroid/os/SystemProto;->CHARGE_STEP:J
+Landroid/os/SystemProto;->CHARGE_TIME_REMAINING_MS:J
+Landroid/os/SystemProto;->CPU_FREQUENCY:J
+Landroid/os/SystemProto;->DATA_CONNECTION:J
+Landroid/os/SystemProto;->DISCHARGE_STEP:J
+Landroid/os/SystemProto;->DISCHARGE_TIME_REMAINING_MS:J
+Landroid/os/SystemProto;->GLOBAL_BLUETOOTH_CONTROLLER:J
+Landroid/os/SystemProto;->GLOBAL_MODEM_CONTROLLER:J
+Landroid/os/SystemProto;->GLOBAL_NETWORK:J
+Landroid/os/SystemProto;->GLOBAL_WIFI:J
+Landroid/os/SystemProto;->GLOBAL_WIFI_CONTROLLER:J
+Landroid/os/SystemProto;->KERNEL_WAKELOCK:J
+Landroid/os/SystemProto;->MISC:J
+Landroid/os/SystemProto;->PHONE_SIGNAL_STRENGTH:J
+Landroid/os/SystemProto;->POWER_USE_ITEM:J
+Landroid/os/SystemProto;->POWER_USE_SUMMARY:J
+Landroid/os/SystemProto;->RESOURCE_POWER_MANAGER:J
+Landroid/os/SystemProto;->SCREEN_BRIGHTNESS:J
+Landroid/os/SystemProto;->SIGNAL_SCANNING:J
+Landroid/os/SystemProto;->WAKEUP_REASON:J
+Landroid/os/SystemProto;->WIFI_MULTICAST_WAKELOCK_TOTAL:J
+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
+Landroid/os/SystemService;->isStopped(Ljava/lang/String;)Z
+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
+Landroid/os/Temperature;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/os/Temperature;->getType()I
+Landroid/os/Temperature;->getValue()F
+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;
+Landroid/os/TestLooperManager;-><init>(Landroid/os/Looper;)V
+Landroid/os/TestLooperManager;->checkReleased()V
+Landroid/os/TestLooperManager;->mExecuteQueue:Ljava/util/concurrent/LinkedBlockingQueue;
+Landroid/os/TestLooperManager;->mLooper:Landroid/os/Looper;
+Landroid/os/TestLooperManager;->mLooperBlocked:Z
+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;
+Landroid/os/TokenWatcher;->mAcquired:Z
+Landroid/os/TokenWatcher;->mHandler:Landroid/os/Handler;
+Landroid/os/TokenWatcher;->mNotificationQueue:I
+Landroid/os/TokenWatcher;->mNotificationTask:Ljava/lang/Runnable;
+Landroid/os/TokenWatcher;->mTag:Ljava/lang/String;
+Landroid/os/TokenWatcher;->mTokens:Ljava/util/WeakHashMap;
+Landroid/os/TokenWatcher;->sendNotificationLocked(Z)V
+Landroid/os/Trace;-><init>()V
+Landroid/os/Trace;->cacheEnabledTags()J
+Landroid/os/Trace;->MAX_SECTION_NAME_LEN:I
+Landroid/os/Trace;->nativeAsyncTraceBegin(JLjava/lang/String;I)V
+Landroid/os/Trace;->nativeAsyncTraceEnd(JLjava/lang/String;I)V
+Landroid/os/Trace;->nativeSetAppTracingAllowed(Z)V
+Landroid/os/Trace;->nativeSetTracingEnabled(Z)V
+Landroid/os/Trace;->nativeTraceBegin(JLjava/lang/String;)V
+Landroid/os/Trace;->nativeTraceCounter(JLjava/lang/String;I)V
+Landroid/os/Trace;->nativeTraceEnd(J)V
+Landroid/os/Trace;->setTracingEnabled(ZI)V
+Landroid/os/Trace;->sZygoteDebugFlags:I
+Landroid/os/Trace;->TAG:Ljava/lang/String;
+Landroid/os/Trace;->TRACE_TAG_ACTIVITY_MANAGER:J
+Landroid/os/Trace;->TRACE_TAG_ADB:J
+Landroid/os/Trace;->TRACE_TAG_AIDL:J
+Landroid/os/Trace;->TRACE_TAG_ALWAYS:J
+Landroid/os/Trace;->TRACE_TAG_AUDIO:J
+Landroid/os/Trace;->TRACE_TAG_BIONIC:J
+Landroid/os/Trace;->TRACE_TAG_CAMERA:J
+Landroid/os/Trace;->TRACE_TAG_DALVIK:J
+Landroid/os/Trace;->TRACE_TAG_DATABASE:J
+Landroid/os/Trace;->TRACE_TAG_GRAPHICS:J
+Landroid/os/Trace;->TRACE_TAG_HAL:J
+Landroid/os/Trace;->TRACE_TAG_INPUT:J
+Landroid/os/Trace;->TRACE_TAG_NETWORK:J
+Landroid/os/Trace;->TRACE_TAG_NEVER:J
+Landroid/os/Trace;->TRACE_TAG_NOT_READY:J
+Landroid/os/Trace;->TRACE_TAG_PACKAGE_MANAGER:J
+Landroid/os/Trace;->TRACE_TAG_POWER:J
+Landroid/os/Trace;->TRACE_TAG_RESOURCES:J
+Landroid/os/Trace;->TRACE_TAG_RS:J
+Landroid/os/Trace;->TRACE_TAG_SYNC_MANAGER:J
+Landroid/os/Trace;->TRACE_TAG_SYSTEM_SERVER:J
+Landroid/os/Trace;->TRACE_TAG_VIBRATOR:J
+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
+Landroid/os/UEventObserver;->nativeRemoveMatch(Ljava/lang/String;)V
+Landroid/os/UEventObserver;->nativeSetup()V
+Landroid/os/UEventObserver;->nativeWaitForNextEvent()Ljava/lang/String;
+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
+Landroid/os/UidProto$Cpu;->CACHED:I
+Landroid/os/UidProto$Cpu;->FOREGROUND:I
+Landroid/os/UidProto$Cpu;->FOREGROUND_SERVICE:I
+Landroid/os/UidProto$Cpu;->HEAVY_WEIGHT:I
+Landroid/os/UidProto$Cpu;->SYSTEM_DURATION_MS:J
+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
+Landroid/os/UidProto$Network;->MOBILE_ACTIVE_DURATION_MS:J
+Landroid/os/UidProto$Network;->MOBILE_BYTES_BG_RX:J
+Landroid/os/UidProto$Network;->MOBILE_BYTES_BG_TX:J
+Landroid/os/UidProto$Network;->MOBILE_BYTES_RX:J
+Landroid/os/UidProto$Network;->MOBILE_BYTES_TX:J
+Landroid/os/UidProto$Network;->MOBILE_PACKETS_BG_RX:J
+Landroid/os/UidProto$Network;->MOBILE_PACKETS_BG_TX:J
+Landroid/os/UidProto$Network;->MOBILE_PACKETS_RX:J
+Landroid/os/UidProto$Network;->MOBILE_PACKETS_TX:J
+Landroid/os/UidProto$Network;->MOBILE_WAKEUP_COUNT:J
+Landroid/os/UidProto$Network;->WIFI_BYTES_BG_RX:J
+Landroid/os/UidProto$Network;->WIFI_BYTES_BG_TX:J
+Landroid/os/UidProto$Network;->WIFI_BYTES_RX:J
+Landroid/os/UidProto$Network;->WIFI_BYTES_TX:J
+Landroid/os/UidProto$Network;->WIFI_PACKETS_BG_RX:J
+Landroid/os/UidProto$Network;->WIFI_PACKETS_BG_TX:J
+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
+Landroid/os/UidProto$Process;->NAME:J
+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
+Landroid/os/UidProto$StateTime;->PROCESS_STATE_FOREGROUND:I
+Landroid/os/UidProto$StateTime;->PROCESS_STATE_FOREGROUND_SERVICE:I
+Landroid/os/UidProto$StateTime;->PROCESS_STATE_HEAVY_WEIGHT:I
+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
+Landroid/os/UidProto;->BLUETOOTH_CONTROLLER:J
+Landroid/os/UidProto;->BLUETOOTH_MISC:J
+Landroid/os/UidProto;->CAMERA:J
+Landroid/os/UidProto;->CPU:J
+Landroid/os/UidProto;->FLASHLIGHT:J
+Landroid/os/UidProto;->FOREGROUND_ACTIVITY:J
+Landroid/os/UidProto;->FOREGROUND_SERVICE:J
+Landroid/os/UidProto;->JOBS:J
+Landroid/os/UidProto;->JOB_COMPLETION:J
+Landroid/os/UidProto;->MODEM_CONTROLLER:J
+Landroid/os/UidProto;->NETWORK:J
+Landroid/os/UidProto;->PACKAGES:J
+Landroid/os/UidProto;->POWER_USE_ITEM:J
+Landroid/os/UidProto;->PROCESS:J
+Landroid/os/UidProto;->SENSORS:J
+Landroid/os/UidProto;->STATES:J
+Landroid/os/UidProto;->SYNCS:J
+Landroid/os/UidProto;->UID:J
+Landroid/os/UidProto;->USER_ACTIVITY:J
+Landroid/os/UidProto;->VIBRATOR:J
+Landroid/os/UidProto;->VIDEO:J
+Landroid/os/UidProto;->WAKELOCKS:J
+Landroid/os/UidProto;->WAKEUP_ALARM:J
+Landroid/os/UidProto;->WIFI:J
+Landroid/os/UidProto;->WIFI_CONTROLLER:J
+Landroid/os/UidProto;->WIFI_MULTICAST_WAKELOCK:J
+Landroid/os/UpdateEngine;->mUpdateEngine:Landroid/os/IUpdateEngine;
+Landroid/os/UpdateEngine;->mUpdateEngineCallback:Landroid/os/IUpdateEngineCallback;
+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
+Landroid/os/UpdateLock;->DEBUG:Z
+Landroid/os/UpdateLock;->mCount:I
+Landroid/os/UpdateLock;->mHeld:Z
+Landroid/os/UpdateLock;->mRefCounted:Z
+Landroid/os/UpdateLock;->mTag:Ljava/lang/String;
+Landroid/os/UpdateLock;->mToken:Landroid/os/IBinder;
+Landroid/os/UpdateLock;->releaseLocked()V
+Landroid/os/UpdateLock;->setReferenceCounted(Z)V
+Landroid/os/UpdateLock;->sService:Landroid/os/IUpdateLock;
+Landroid/os/UpdateLock;->TAG:Ljava/lang/String;
+Landroid/os/UserHandle;->formatUid(I)Ljava/lang/String;
+Landroid/os/UserHandle;->formatUid(Ljava/lang/StringBuilder;I)V
+Landroid/os/UserHandle;->getCacheAppGid(I)I
+Landroid/os/UserHandle;->getCacheAppGid(II)I
+Landroid/os/UserHandle;->getCallingAppId()I
+Landroid/os/UserHandle;->getSharedAppGid(I)I
+Landroid/os/UserHandle;->getSharedAppGid(II)I
+Landroid/os/UserHandle;->getUserGid(I)I
+Landroid/os/UserHandle;->isCore(I)Z
+Landroid/os/UserHandle;->isSameUser(II)Z
+Landroid/os/UserHandle;->parseUserArg(Ljava/lang/String;)I
+Landroid/os/UserManager$EnforcingUser;-><init>(II)V
+Landroid/os/UserManager$EnforcingUser;-><init>(Landroid/os/Parcel;)V
+Landroid/os/UserManager$EnforcingUser;->userId:I
+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
+Landroid/os/UserManager;->canAddMoreUsers()Z
+Landroid/os/UserManager;->canHaveRestrictedProfile(I)Z
+Landroid/os/UserManager;->canSwitchUsers()Z
+Landroid/os/UserManager;->createGuest(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/UserManager;->createProfileForUser(Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/UserManager;->createProfileForUserEvenWhenDisallowed(Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/UserManager;->createRestrictedProfile(Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/UserManager;->DISALLOW_CAMERA:Ljava/lang/String;
+Landroid/os/UserManager;->DISALLOW_UNMUTE_DEVICE:Ljava/lang/String;
+Landroid/os/UserManager;->DISALLOW_WALLPAPER:Ljava/lang/String;
+Landroid/os/UserManager;->evictCredentialEncryptionKey(I)V
+Landroid/os/UserManager;->EXTRA_USER_ACCOUNT_NAME:Ljava/lang/String;
+Landroid/os/UserManager;->EXTRA_USER_ACCOUNT_OPTIONS:Ljava/lang/String;
+Landroid/os/UserManager;->EXTRA_USER_ACCOUNT_TYPE:Ljava/lang/String;
+Landroid/os/UserManager;->EXTRA_USER_NAME:Ljava/lang/String;
+Landroid/os/UserManager;->getApplicationRestrictions(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
+Landroid/os/UserManager;->getCredentialOwnerProfile(I)I
+Landroid/os/UserManager;->getDefaultGuestRestrictions()Landroid/os/Bundle;
+Landroid/os/UserManager;->getEnabledProfileIds(I)[I
+Landroid/os/UserManager;->getManagedProfileBadge(I)I
+Landroid/os/UserManager;->getPrimaryUser()Landroid/content/pm/UserInfo;
+Landroid/os/UserManager;->getProfileIds(IZ)[I
+Landroid/os/UserManager;->getUserAccount(I)Ljava/lang/String;
+Landroid/os/UserManager;->hasUserRestrictionOnAnyUser(Ljava/lang/String;)Z
+Landroid/os/UserManager;->isEphemeralUser()Z
+Landroid/os/UserManager;->isGuestUser()Z
+Landroid/os/UserManager;->isGuestUserEphemeral()Z
+Landroid/os/UserManager;->isPrimaryUser()Z
+Landroid/os/UserManager;->isSameProfileGroup(II)Z
+Landroid/os/UserManager;->isUserEphemeral(I)Z
+Landroid/os/UserManager;->isUserNameSet()Z
+Landroid/os/UserManager;->isUserRunning(I)Z
+Landroid/os/UserManager;->isUserSwitcherEnabled()Z
+Landroid/os/UserManager;->isUserUnlockingOrUnlocked(I)Z
+Landroid/os/UserManager;->isUserUnlockingOrUnlocked(Landroid/os/UserHandle;)Z
+Landroid/os/UserManager;->markGuestForDeletion(I)Z
+Landroid/os/UserManager;->mContext:Landroid/content/Context;
+Landroid/os/UserManager;->mIsManagedProfileCached:Ljava/lang/Boolean;
+Landroid/os/UserManager;->PIN_VERIFICATION_FAILED_INCORRECT:I
+Landroid/os/UserManager;->PIN_VERIFICATION_FAILED_NOT_SET:I
+Landroid/os/UserManager;->PIN_VERIFICATION_SUCCESS:I
+Landroid/os/UserManager;->removeUserEvenWhenDisallowed(I)Z
+Landroid/os/UserManager;->requestQuietModeEnabled(ZLandroid/os/UserHandle;Landroid/content/IntentSender;)Z
+Landroid/os/UserManager;->setApplicationRestrictions(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+Landroid/os/UserManager;->setDefaultGuestRestrictions(Landroid/os/Bundle;)V
+Landroid/os/UserManager;->setSeedAccountData(ILjava/lang/String;Ljava/lang/String;Landroid/os/PersistableBundle;)V
+Landroid/os/UserManager;->setUserAccount(ILjava/lang/String;)V
+Landroid/os/UserManager;->setUserAdmin(I)V
+Landroid/os/UserManager;->setUserEnabled(I)V
+Landroid/os/UserManager;->setUserIcon(ILandroid/graphics/Bitmap;)V
+Landroid/os/UserManager;->setUserName(ILjava/lang/String;)V
+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
+Landroid/os/UserManagerInternal;->CAMERA_DISABLED_LOCALLY:I
+Landroid/os/UserManagerInternal;->CAMERA_NOT_DISABLED:I
+Landroid/os/UserManagerInternal;->createUserEvenWhenDisallowed(Ljava/lang/String;I[Ljava/lang/String;)Landroid/content/pm/UserInfo;
+Landroid/os/UserManagerInternal;->exists(I)Z
+Landroid/os/UserManagerInternal;->getBaseUserRestrictions(I)Landroid/os/Bundle;
+Landroid/os/UserManagerInternal;->getProfileParentId(I)I
+Landroid/os/UserManagerInternal;->getUserIds()[I
+Landroid/os/UserManagerInternal;->getUserRestriction(ILjava/lang/String;)Z
+Landroid/os/UserManagerInternal;->isProfileAccessible(IILjava/lang/String;Z)Z
+Landroid/os/UserManagerInternal;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z
+Landroid/os/UserManagerInternal;->isUserInitialized(I)Z
+Landroid/os/UserManagerInternal;->isUserRunning(I)Z
+Landroid/os/UserManagerInternal;->isUserUnlocked(I)Z
+Landroid/os/UserManagerInternal;->isUserUnlockingOrUnlocked(I)Z
+Landroid/os/UserManagerInternal;->onEphemeralUserStop(I)V
+Landroid/os/UserManagerInternal;->removeAllUsers()V
+Landroid/os/UserManagerInternal;->removeUserEvenWhenDisallowed(I)Z
+Landroid/os/UserManagerInternal;->removeUserRestrictionsListener(Landroid/os/UserManagerInternal$UserRestrictionsListener;)V
+Landroid/os/UserManagerInternal;->removeUserState(I)V
+Landroid/os/UserManagerInternal;->setBaseUserRestrictionsByDpmsForMigration(ILandroid/os/Bundle;)V
+Landroid/os/UserManagerInternal;->setDeviceManaged(Z)V
+Landroid/os/UserManagerInternal;->setDevicePolicyUserRestrictions(ILandroid/os/Bundle;ZI)V
+Landroid/os/UserManagerInternal;->setForceEphemeralUsers(Z)V
+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;
+Landroid/os/VibrationEffect$OneShot;->getAmplitude()I
+Landroid/os/VibrationEffect$OneShot;->getDuration()J
+Landroid/os/VibrationEffect$OneShot;->mAmplitude:I
+Landroid/os/VibrationEffect$OneShot;->mDuration:J
+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;
+Landroid/os/VibrationEffect$Prebaked;->getDuration()J
+Landroid/os/VibrationEffect$Prebaked;->getEffectStrength()I
+Landroid/os/VibrationEffect$Prebaked;->getId()I
+Landroid/os/VibrationEffect$Prebaked;->isValidEffectStrength(I)Z
+Landroid/os/VibrationEffect$Prebaked;->mEffectId:I
+Landroid/os/VibrationEffect$Prebaked;->mEffectStrength:I
+Landroid/os/VibrationEffect$Prebaked;->mFallback:Z
+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;
+Landroid/os/VibrationEffect$Waveform;->getAmplitudes()[I
+Landroid/os/VibrationEffect$Waveform;->getDuration()J
+Landroid/os/VibrationEffect$Waveform;->getRepeatIndex()I
+Landroid/os/VibrationEffect$Waveform;->getTimings()[J
+Landroid/os/VibrationEffect$Waveform;->hasNonZeroEntry([J)Z
+Landroid/os/VibrationEffect$Waveform;->mAmplitudes:[I
+Landroid/os/VibrationEffect$Waveform;->mRepeat:I
+Landroid/os/VibrationEffect$Waveform;->mTimings:[J
+Landroid/os/VibrationEffect$Waveform;->resolve(I)Landroid/os/VibrationEffect$Waveform;
+Landroid/os/VibrationEffect$Waveform;->scale(FI)Landroid/os/VibrationEffect;
+Landroid/os/VibrationEffect$Waveform;->validate()V
+Landroid/os/VibrationEffect;-><init>()V
+Landroid/os/VibrationEffect;->EFFECT_CLICK:I
+Landroid/os/VibrationEffect;->EFFECT_DOUBLE_CLICK:I
+Landroid/os/VibrationEffect;->EFFECT_HEAVY_CLICK:I
+Landroid/os/VibrationEffect;->EFFECT_POP:I
+Landroid/os/VibrationEffect;->EFFECT_THUD:I
+Landroid/os/VibrationEffect;->EFFECT_TICK:I
+Landroid/os/VibrationEffect;->get(I)Landroid/os/VibrationEffect;
+Landroid/os/VibrationEffect;->get(IZ)Landroid/os/VibrationEffect;
+Landroid/os/VibrationEffect;->get(Landroid/net/Uri;Landroid/content/Context;)Landroid/os/VibrationEffect;
+Landroid/os/VibrationEffect;->getDuration()J
+Landroid/os/VibrationEffect;->MAX_AMPLITUDE:I
+Landroid/os/VibrationEffect;->PARCEL_TOKEN_EFFECT:I
+Landroid/os/VibrationEffect;->PARCEL_TOKEN_ONE_SHOT:I
+Landroid/os/VibrationEffect;->PARCEL_TOKEN_WAVEFORM:I
+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
+Landroid/os/Vibrator;->loadDefaultIntensity(Landroid/content/Context;I)I
+Landroid/os/Vibrator;->mDefaultHapticFeedbackIntensity:I
+Landroid/os/Vibrator;->mDefaultNotificationVibrationIntensity:I
+Landroid/os/Vibrator;->mPackageName:Ljava/lang/String;
+Landroid/os/Vibrator;->TAG:Ljava/lang/String;
+Landroid/os/Vibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V
+Landroid/os/Vibrator;->VIBRATION_INTENSITY_HIGH:I
+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;
+Landroid/os/VintfRuntimeInfo;->getKernelSepolicyVersion()J
+Landroid/os/WorkSource$WorkChain;-><init>(Landroid/os/Parcel;)V
+Landroid/os/WorkSource$WorkChain;-><init>(Landroid/os/WorkSource$WorkChain;)V
+Landroid/os/WorkSource$WorkChain;->getSize()I
+Landroid/os/WorkSource$WorkChain;->getTags()[Ljava/lang/String;
+Landroid/os/WorkSource$WorkChain;->getUids()[I
+Landroid/os/WorkSource$WorkChain;->mSize:I
+Landroid/os/WorkSource$WorkChain;->mTags:[Ljava/lang/String;
+Landroid/os/WorkSource$WorkChain;->mUids:[I
+Landroid/os/WorkSource$WorkChain;->resizeArrays()V
+Landroid/os/WorkSource;-><init>(ILjava/lang/String;)V
+Landroid/os/WorkSource;->addWork(Landroid/os/WorkSource;I)Landroid/os/WorkSource;
+Landroid/os/WorkSource;->addWork(Landroid/os/WorkSource;ILjava/lang/String;)Landroid/os/WorkSource;
+Landroid/os/WorkSource;->clearNames()V
+Landroid/os/WorkSource;->compare(Landroid/os/WorkSource;II)I
+Landroid/os/WorkSource;->DEBUG:Z
+Landroid/os/WorkSource;->diffChains(Landroid/os/WorkSource;Landroid/os/WorkSource;)[Ljava/util/ArrayList;
+Landroid/os/WorkSource;->getWorkChains()Ljava/util/ArrayList;
+Landroid/os/WorkSource;->insert(II)V
+Landroid/os/WorkSource;->insert(IILjava/lang/String;)V
+Landroid/os/WorkSource;->isChainedBatteryAttributionEnabled(Landroid/content/Context;)Z
+Landroid/os/WorkSource;->isEmpty()Z
+Landroid/os/WorkSource;->mChains:Ljava/util/ArrayList;
+Landroid/os/WorkSource;->removeUids(Landroid/os/WorkSource;)Z
+Landroid/os/WorkSource;->removeUidsAndNames(Landroid/os/WorkSource;)Z
+Landroid/os/WorkSource;->set(I)V
+Landroid/os/WorkSource;->set(ILjava/lang/String;)V
+Landroid/os/WorkSource;->TAG:Ljava/lang/String;
+Landroid/os/WorkSource;->transferWorkChains(Landroid/os/WorkSource;)V
+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
+Landroid/os/ZygoteProcess$ZygoteState;->connect(Landroid/net/LocalSocketAddress;)Landroid/os/ZygoteProcess$ZygoteState;
+Landroid/os/ZygoteProcess$ZygoteState;->inputStream:Ljava/io/DataInputStream;
+Landroid/os/ZygoteProcess$ZygoteState;->isClosed()Z
+Landroid/os/ZygoteProcess$ZygoteState;->matches(Ljava/lang/String;)Z
+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
+Landroid/os/ZygoteProcess;->establishZygoteConnectionForAbi(Ljava/lang/String;)V
+Landroid/os/ZygoteProcess;->getAbiList(Ljava/io/BufferedWriter;Ljava/io/DataInputStream;)Ljava/lang/String;
+Landroid/os/ZygoteProcess;->getPrimarySocketAddress()Landroid/net/LocalSocketAddress;
+Landroid/os/ZygoteProcess;->LOG_TAG:Ljava/lang/String;
+Landroid/os/ZygoteProcess;->mApiBlacklistExemptions:Ljava/util/List;
+Landroid/os/ZygoteProcess;->maybeSetApiBlacklistExemptions(Landroid/os/ZygoteProcess$ZygoteState;Z)Z
+Landroid/os/ZygoteProcess;->maybeSetHiddenApiAccessLogSampleRate(Landroid/os/ZygoteProcess$ZygoteState;)V
+Landroid/os/ZygoteProcess;->mHiddenApiAccessLogSampleRate:I
+Landroid/os/ZygoteProcess;->mLock:Ljava/lang/Object;
+Landroid/os/ZygoteProcess;->mSecondarySocket:Landroid/net/LocalSocketAddress;
+Landroid/os/ZygoteProcess;->mSocket:Landroid/net/LocalSocketAddress;
+Landroid/os/ZygoteProcess;->openZygoteSocketIfNeeded(Ljava/lang/String;)Landroid/os/ZygoteProcess$ZygoteState;
+Landroid/os/ZygoteProcess;->preloadDefault(Ljava/lang/String;)Z
+Landroid/os/ZygoteProcess;->preloadPackageForAbi(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/os/ZygoteProcess;->primaryZygoteState:Landroid/os/ZygoteProcess$ZygoteState;
+Landroid/os/ZygoteProcess;->secondaryZygoteState:Landroid/os/ZygoteProcess$ZygoteState;
+Landroid/os/ZygoteProcess;->setApiBlacklistExemptions(Ljava/util/List;)Z
+Landroid/os/ZygoteProcess;->setHiddenApiAccessLogSampleRate(I)V
+Landroid/os/ZygoteProcess;->start(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+Landroid/os/ZygoteProcess;->startChildZygote(Ljava/lang/String;Ljava/lang/String;II[IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/ChildZygoteProcess;
+Landroid/os/ZygoteProcess;->startViaZygote(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+Landroid/os/ZygoteProcess;->waitForConnectionToZygote(Landroid/net/LocalSocketAddress;)V
+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;
+Landroid/preference/DialogPreference$SavedState;->dialogBundle:Landroid/os/Bundle;
+Landroid/preference/DialogPreference$SavedState;->isDialogShowing:Z
+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;
+Landroid/preference/EditTextPreference$SavedState;->text:Ljava/lang/String;
+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;
+Landroid/preference/GenericInflater;->createItem(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Ljava/lang/Object;
+Landroid/preference/GenericInflater;->createItemFromTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Landroid/util/AttributeSet;)Ljava/lang/Object;
+Landroid/preference/GenericInflater;->DEBUG:Z
+Landroid/preference/GenericInflater;->getContext()Landroid/content/Context;
+Landroid/preference/GenericInflater;->getDefaultPackage()Ljava/lang/String;
+Landroid/preference/GenericInflater;->getFactory()Landroid/preference/GenericInflater$Factory;
+Landroid/preference/GenericInflater;->inflate(ILandroid/preference/GenericInflater$Parent;)Ljava/lang/Object;
+Landroid/preference/GenericInflater;->inflate(ILandroid/preference/GenericInflater$Parent;Z)Ljava/lang/Object;
+Landroid/preference/GenericInflater;->inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/preference/GenericInflater$Parent;)Ljava/lang/Object;
+Landroid/preference/GenericInflater;->inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/preference/GenericInflater$Parent;Z)Ljava/lang/Object;
+Landroid/preference/GenericInflater;->mConstructorArgs:[Ljava/lang/Object;
+Landroid/preference/GenericInflater;->mConstructorSignature:[Ljava/lang/Class;
+Landroid/preference/GenericInflater;->mContext:Landroid/content/Context;
+Landroid/preference/GenericInflater;->mDefaultPackage:Ljava/lang/String;
+Landroid/preference/GenericInflater;->mFactory:Landroid/preference/GenericInflater$Factory;
+Landroid/preference/GenericInflater;->mFactorySet:Z
+Landroid/preference/GenericInflater;->onCreateCustomFromTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/Object;Landroid/util/AttributeSet;)Z
+Landroid/preference/GenericInflater;->onCreateItem(Ljava/lang/String;Landroid/util/AttributeSet;)Ljava/lang/Object;
+Landroid/preference/GenericInflater;->onMergeRoots(Landroid/preference/GenericInflater$Parent;ZLandroid/preference/GenericInflater$Parent;)Landroid/preference/GenericInflater$Parent;
+Landroid/preference/GenericInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/Object;Landroid/util/AttributeSet;)V
+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;
+Landroid/preference/ListPreference$SavedState;->value:Ljava/lang/String;
+Landroid/preference/ListPreference;->getValueIndex()I
+Landroid/preference/ListPreference;->mEntries:[Ljava/lang/CharSequence;
+Landroid/preference/ListPreference;->mEntryValues:[Ljava/lang/CharSequence;
+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
+Landroid/preference/MultiCheckPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/preference/MultiCheckPreference;->findIndexOfValue(Ljava/lang/String;)I
+Landroid/preference/MultiCheckPreference;->getEntries()[Ljava/lang/CharSequence;
+Landroid/preference/MultiCheckPreference;->getEntryValues()[Ljava/lang/String;
+Landroid/preference/MultiCheckPreference;->getValue(I)Z
+Landroid/preference/MultiCheckPreference;->getValues()[Z
+Landroid/preference/MultiCheckPreference;->mEntries:[Ljava/lang/CharSequence;
+Landroid/preference/MultiCheckPreference;->mEntryValues:[Ljava/lang/String;
+Landroid/preference/MultiCheckPreference;->mOrigValues:[Z
+Landroid/preference/MultiCheckPreference;->mSetValues:[Z
+Landroid/preference/MultiCheckPreference;->mSummary:Ljava/lang/String;
+Landroid/preference/MultiCheckPreference;->setEntries(I)V
+Landroid/preference/MultiCheckPreference;->setEntries([Ljava/lang/CharSequence;)V
+Landroid/preference/MultiCheckPreference;->setEntryValues(I)V
+Landroid/preference/MultiCheckPreference;->setEntryValues([Ljava/lang/String;)V
+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;
+Landroid/preference/MultiSelectListPreference$SavedState;->values:Ljava/util/Set;
+Landroid/preference/MultiSelectListPreference;->getSelectedItems()[Z
+Landroid/preference/MultiSelectListPreference;->mEntries:[Ljava/lang/CharSequence;
+Landroid/preference/MultiSelectListPreference;->mEntryValues:[Ljava/lang/CharSequence;
+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
+Landroid/preference/Preference;->dispatchRestoreInstanceState(Landroid/os/Bundle;)V
+Landroid/preference/Preference;->dispatchSaveInstanceState(Landroid/os/Bundle;)V
+Landroid/preference/Preference;->dispatchSetInitialValue()V
+Landroid/preference/Preference;->getFilterableStringBuilder()Ljava/lang/StringBuilder;
+Landroid/preference/Preference;->mBaseMethodCalled:Z
+Landroid/preference/Preference;->mContext:Landroid/content/Context;
+Landroid/preference/Preference;->mDefaultValue:Ljava/lang/Object;
+Landroid/preference/Preference;->mDependencyKey:Ljava/lang/String;
+Landroid/preference/Preference;->mDependencyMet:Z
+Landroid/preference/Preference;->mDependents:Ljava/util/List;
+Landroid/preference/Preference;->mEnabled:Z
+Landroid/preference/Preference;->mExtras:Landroid/os/Bundle;
+Landroid/preference/Preference;->mFragment:Ljava/lang/String;
+Landroid/preference/Preference;->mHasSingleLineTitleAttr:Z
+Landroid/preference/Preference;->mIcon:Landroid/graphics/drawable/Drawable;
+Landroid/preference/Preference;->mIconResId:I
+Landroid/preference/Preference;->mIconSpaceReserved:Z
+Landroid/preference/Preference;->mId:J
+Landroid/preference/Preference;->mIntent:Landroid/content/Intent;
+Landroid/preference/Preference;->mKey:Ljava/lang/String;
+Landroid/preference/Preference;->mListener:Landroid/preference/Preference$OnPreferenceChangeInternalListener;
+Landroid/preference/Preference;->mOnChangeListener:Landroid/preference/Preference$OnPreferenceChangeListener;
+Landroid/preference/Preference;->mOnClickListener:Landroid/preference/Preference$OnPreferenceClickListener;
+Landroid/preference/Preference;->mOrder:I
+Landroid/preference/Preference;->mParentDependencyMet:Z
+Landroid/preference/Preference;->mParentGroup:Landroid/preference/PreferenceGroup;
+Landroid/preference/Preference;->mPersistent:Z
+Landroid/preference/Preference;->mPreferenceDataStore:Landroid/preference/PreferenceDataStore;
+Landroid/preference/Preference;->mPreferenceManager:Landroid/preference/PreferenceManager;
+Landroid/preference/Preference;->mRecycleEnabled:Z
+Landroid/preference/Preference;->mRequiresKey:Z
+Landroid/preference/Preference;->mSelectable:Z
+Landroid/preference/Preference;->mShouldDisableView:Z
+Landroid/preference/Preference;->mSingleLineTitle:Z
+Landroid/preference/Preference;->mTitle:Ljava/lang/CharSequence;
+Landroid/preference/Preference;->mTitleRes:I
+Landroid/preference/Preference;->registerDependency()V
+Landroid/preference/Preference;->requireKey()V
+Landroid/preference/Preference;->setEnabledStateOnViews(Landroid/view/View;Z)V
+Landroid/preference/Preference;->tryCommit(Landroid/content/SharedPreferences$Editor;)V
+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
+Landroid/preference/PreferenceActivity$HeaderAdapter;->mRemoveIconIfEmpty:Z
+Landroid/preference/PreferenceActivity;->BACK_STACK_PREFS:Ljava/lang/String;
+Landroid/preference/PreferenceActivity;->bindPreferences()V
+Landroid/preference/PreferenceActivity;->CUR_HEADER_TAG:Ljava/lang/String;
+Landroid/preference/PreferenceActivity;->EXTRA_PREFS_SET_BACK_TEXT:Ljava/lang/String;
+Landroid/preference/PreferenceActivity;->EXTRA_PREFS_SET_NEXT_TEXT:Ljava/lang/String;
+Landroid/preference/PreferenceActivity;->EXTRA_PREFS_SHOW_BUTTON_BAR:Ljava/lang/String;
+Landroid/preference/PreferenceActivity;->EXTRA_PREFS_SHOW_SKIP:Ljava/lang/String;
+Landroid/preference/PreferenceActivity;->findBestMatchingHeader(Landroid/preference/PreferenceActivity$Header;Ljava/util/ArrayList;)Landroid/preference/PreferenceActivity$Header;
+Landroid/preference/PreferenceActivity;->FIRST_REQUEST_CODE:I
+Landroid/preference/PreferenceActivity;->getNextButton()Landroid/widget/Button;
+Landroid/preference/PreferenceActivity;->hasNextButton()Z
+Landroid/preference/PreferenceActivity;->HEADERS_TAG:Ljava/lang/String;
+Landroid/preference/PreferenceActivity;->mActivityTitle:Ljava/lang/CharSequence;
+Landroid/preference/PreferenceActivity;->mCurHeader:Landroid/preference/PreferenceActivity$Header;
+Landroid/preference/PreferenceActivity;->mFragmentBreadCrumbs:Landroid/app/FragmentBreadCrumbs;
+Landroid/preference/PreferenceActivity;->mHandler:Landroid/os/Handler;
+Landroid/preference/PreferenceActivity;->mHeaders:Ljava/util/ArrayList;
+Landroid/preference/PreferenceActivity;->mHeadersContainer:Landroid/view/ViewGroup;
+Landroid/preference/PreferenceActivity;->mListFooter:Landroid/widget/FrameLayout;
+Landroid/preference/PreferenceActivity;->mNextButton:Landroid/widget/Button;
+Landroid/preference/PreferenceActivity;->mPreferenceHeaderItemResId:I
+Landroid/preference/PreferenceActivity;->mPreferenceHeaderRemoveEmptyIcon:Z
+Landroid/preference/PreferenceActivity;->mSavedInstanceState:Landroid/os/Bundle;
+Landroid/preference/PreferenceActivity;->MSG_BIND_PREFERENCES:I
+Landroid/preference/PreferenceActivity;->MSG_BUILD_HEADERS:I
+Landroid/preference/PreferenceActivity;->mSinglePane:Z
+Landroid/preference/PreferenceActivity;->PREFERENCES_TAG:Ljava/lang/String;
+Landroid/preference/PreferenceActivity;->setSelectedHeader(Landroid/preference/PreferenceActivity$Header;)V
+Landroid/preference/PreferenceActivity;->showBreadCrumbs(Landroid/preference/PreferenceActivity$Header;)V
+Landroid/preference/PreferenceActivity;->switchToHeaderInner(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/preference/PreferenceActivity;->TAG:Ljava/lang/String;
+Landroid/preference/PreferenceCategory;->TAG:Ljava/lang/String;
+Landroid/preference/PreferenceFragment;->bindPreferences()V
+Landroid/preference/PreferenceFragment;->ensureList()V
+Landroid/preference/PreferenceFragment;->FIRST_REQUEST_CODE:I
+Landroid/preference/PreferenceFragment;->hasListView()Z
+Landroid/preference/PreferenceFragment;->mHandler:Landroid/os/Handler;
+Landroid/preference/PreferenceFragment;->mHavePrefs:Z
+Landroid/preference/PreferenceFragment;->mInitDone:Z
+Landroid/preference/PreferenceFragment;->mLayoutResId:I
+Landroid/preference/PreferenceFragment;->mList:Landroid/widget/ListView;
+Landroid/preference/PreferenceFragment;->mListOnKeyListener:Landroid/view/View$OnKeyListener;
+Landroid/preference/PreferenceFragment;->mRequestFocus:Ljava/lang/Runnable;
+Landroid/preference/PreferenceFragment;->MSG_BIND_PREFERENCES:I
+Landroid/preference/PreferenceFragment;->onBindPreferences()V
+Landroid/preference/PreferenceFragment;->onUnbindPreferences()V
+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
+Landroid/preference/PreferenceFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/preference/PreferenceFrameLayout;->DEFAULT_BORDER_BOTTOM:I
+Landroid/preference/PreferenceFrameLayout;->DEFAULT_BORDER_LEFT:I
+Landroid/preference/PreferenceFrameLayout;->DEFAULT_BORDER_RIGHT:I
+Landroid/preference/PreferenceFrameLayout;->DEFAULT_BORDER_TOP:I
+Landroid/preference/PreferenceFrameLayout;->mBorderBottom:I
+Landroid/preference/PreferenceFrameLayout;->mBorderLeft:I
+Landroid/preference/PreferenceFrameLayout;->mBorderRight:I
+Landroid/preference/PreferenceFrameLayout;->mBorderTop:I
+Landroid/preference/PreferenceFrameLayout;->mPaddingApplied:Z
+Landroid/preference/PreferenceGroup;->mAttachedToActivity:Z
+Landroid/preference/PreferenceGroup;->mCurrentPreferenceOrder:I
+Landroid/preference/PreferenceGroup;->mOrderingAsAdded:Z
+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;
+Landroid/preference/PreferenceGroupAdapter;->flattenPreferenceGroup(Ljava/util/List;Landroid/preference/PreferenceGroup;)V
+Landroid/preference/PreferenceGroupAdapter;->getHighlightItemViewType()I
+Landroid/preference/PreferenceGroupAdapter;->mHandler:Landroid/os/Handler;
+Landroid/preference/PreferenceGroupAdapter;->mHasReturnedViewTypeCount:Z
+Landroid/preference/PreferenceGroupAdapter;->mHighlightedDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/preference/PreferenceGroupAdapter;->mHighlightedPosition:I
+Landroid/preference/PreferenceGroupAdapter;->mIsSyncing:Z
+Landroid/preference/PreferenceGroupAdapter;->mPreferenceGroup:Landroid/preference/PreferenceGroup;
+Landroid/preference/PreferenceGroupAdapter;->mPreferenceLayouts:Ljava/util/ArrayList;
+Landroid/preference/PreferenceGroupAdapter;->mPreferenceList:Ljava/util/List;
+Landroid/preference/PreferenceGroupAdapter;->mSyncRunnable:Ljava/lang/Runnable;
+Landroid/preference/PreferenceGroupAdapter;->mTempPreferenceLayout:Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;
+Landroid/preference/PreferenceGroupAdapter;->onPreferenceChange(Landroid/preference/Preference;)V
+Landroid/preference/PreferenceGroupAdapter;->onPreferenceHierarchyChange(Landroid/preference/Preference;)V
+Landroid/preference/PreferenceGroupAdapter;->setHighlighted(I)V
+Landroid/preference/PreferenceGroupAdapter;->setHighlightedDrawable(Landroid/graphics/drawable/Drawable;)V
+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
+Landroid/preference/PreferenceManager;->dispatchNewIntent(Landroid/content/Intent;)V
+Landroid/preference/PreferenceManager;->getContext()Landroid/content/Context;
+Landroid/preference/PreferenceManager;->getDefaultSharedPreferencesMode()I
+Landroid/preference/PreferenceManager;->getNextId()J
+Landroid/preference/PreferenceManager;->getOnPreferenceTreeClickListener()Landroid/preference/PreferenceManager$OnPreferenceTreeClickListener;
+Landroid/preference/PreferenceManager;->init(Landroid/content/Context;)V
+Landroid/preference/PreferenceManager;->mActivity:Landroid/app/Activity;
+Landroid/preference/PreferenceManager;->mActivityResultListeners:Ljava/util/List;
+Landroid/preference/PreferenceManager;->mActivityStopListeners:Ljava/util/List;
+Landroid/preference/PreferenceManager;->mContext:Landroid/content/Context;
+Landroid/preference/PreferenceManager;->mEditor:Landroid/content/SharedPreferences$Editor;
+Landroid/preference/PreferenceManager;->mNextId:J
+Landroid/preference/PreferenceManager;->mNextRequestCode:I
+Landroid/preference/PreferenceManager;->mNoCommit:Z
+Landroid/preference/PreferenceManager;->mPreferenceDataStore:Landroid/preference/PreferenceDataStore;
+Landroid/preference/PreferenceManager;->mPreferenceScreen:Landroid/preference/PreferenceScreen;
+Landroid/preference/PreferenceManager;->mPreferencesScreens:Ljava/util/List;
+Landroid/preference/PreferenceManager;->mSharedPreferencesMode:I
+Landroid/preference/PreferenceManager;->mSharedPreferencesName:Ljava/lang/String;
+Landroid/preference/PreferenceManager;->mStorage:I
+Landroid/preference/PreferenceManager;->queryIntentActivities(Landroid/content/Intent;)Ljava/util/List;
+Landroid/preference/PreferenceManager;->removePreferencesScreen(Landroid/content/DialogInterface;)V
+Landroid/preference/PreferenceManager;->setOnPreferenceTreeClickListener(Landroid/preference/PreferenceManager$OnPreferenceTreeClickListener;)V
+Landroid/preference/PreferenceManager;->STORAGE_CREDENTIAL_PROTECTED:I
+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;
+Landroid/preference/PreferenceScreen$SavedState;->dialogBundle:Landroid/os/Bundle;
+Landroid/preference/PreferenceScreen$SavedState;->isDialogShowing:Z
+Landroid/preference/PreferenceScreen;->mDialog:Landroid/app/Dialog;
+Landroid/preference/PreferenceScreen;->mDividerDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/preference/PreferenceScreen;->mDividerSpecified:Z
+Landroid/preference/PreferenceScreen;->mLayoutResId:I
+Landroid/preference/PreferenceScreen;->showDialog(Landroid/os/Bundle;)V
+Landroid/preference/RingtonePreference;->mRingtoneType:I
+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
+Landroid/preference/SeekBarPreference;->mProgress:I
+Landroid/preference/SeekBarPreference;->mTrackingTouch:Z
+Landroid/preference/SeekBarPreference;->onKey(Landroid/view/View;ILandroid/view/KeyEvent;)Z
+Landroid/preference/SeekBarPreference;->setMax(I)V
+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;
+Landroid/preference/SeekBarVolumizer;->isAlarmsStream(I)Z
+Landroid/preference/SeekBarVolumizer;->isMediaStream(I)Z
+Landroid/preference/SeekBarVolumizer;->isNotificationOrRing(I)Z
+Landroid/preference/SeekBarVolumizer;->isSamplePlaying()Z
+Landroid/preference/SeekBarVolumizer;->isZenMuted()Z
+Landroid/preference/SeekBarVolumizer;->mAffectedByRingerMode:Z
+Landroid/preference/SeekBarVolumizer;->mAllowAlarms:Z
+Landroid/preference/SeekBarVolumizer;->mAllowMedia:Z
+Landroid/preference/SeekBarVolumizer;->mAllowRinger:Z
+Landroid/preference/SeekBarVolumizer;->mCallback:Landroid/preference/SeekBarVolumizer$Callback;
+Landroid/preference/SeekBarVolumizer;->mDefaultUri:Landroid/net/Uri;
+Landroid/preference/SeekBarVolumizer;->mHandler:Landroid/os/Handler;
+Landroid/preference/SeekBarVolumizer;->mLastAudibleStreamVolume:I
+Landroid/preference/SeekBarVolumizer;->mMaxStreamVolume:I
+Landroid/preference/SeekBarVolumizer;->mMuted:Z
+Landroid/preference/SeekBarVolumizer;->mNotificationManager:Landroid/app/NotificationManager;
+Landroid/preference/SeekBarVolumizer;->mNotificationOrRing:Z
+Landroid/preference/SeekBarVolumizer;->mNotificationPolicy:Landroid/app/NotificationManager$Policy;
+Landroid/preference/SeekBarVolumizer;->mReceiver:Landroid/preference/SeekBarVolumizer$Receiver;
+Landroid/preference/SeekBarVolumizer;->mRingerMode:I
+Landroid/preference/SeekBarVolumizer;->MSG_INIT_SAMPLE:I
+Landroid/preference/SeekBarVolumizer;->MSG_SET_STREAM_VOLUME:I
+Landroid/preference/SeekBarVolumizer;->MSG_START_SAMPLE:I
+Landroid/preference/SeekBarVolumizer;->MSG_STOP_SAMPLE:I
+Landroid/preference/SeekBarVolumizer;->mUiHandler:Landroid/preference/SeekBarVolumizer$H;
+Landroid/preference/SeekBarVolumizer;->muteVolume()V
+Landroid/preference/SeekBarVolumizer;->mVolumeBeforeMute:I
+Landroid/preference/SeekBarVolumizer;->mVolumeObserver:Landroid/preference/SeekBarVolumizer$Observer;
+Landroid/preference/SeekBarVolumizer;->mZenMode:I
+Landroid/preference/SeekBarVolumizer;->onInitSample()V
+Landroid/preference/SeekBarVolumizer;->onRestoreInstanceState(Landroid/preference/VolumePreference$VolumeStore;)V
+Landroid/preference/SeekBarVolumizer;->onSaveInstanceState(Landroid/preference/VolumePreference$VolumeStore;)V
+Landroid/preference/SeekBarVolumizer;->onStartSample()V
+Landroid/preference/SeekBarVolumizer;->onStopSample()V
+Landroid/preference/SeekBarVolumizer;->postSetVolume(I)V
+Landroid/preference/SeekBarVolumizer;->postStartSample()V
+Landroid/preference/SeekBarVolumizer;->postStopSample()V
+Landroid/preference/SeekBarVolumizer;->revertVolume()V
+Landroid/preference/SeekBarVolumizer;->setSeekBar(Landroid/widget/SeekBar;)V
+Landroid/preference/SeekBarVolumizer;->start()V
+Landroid/preference/SeekBarVolumizer;->startSample()V
+Landroid/preference/SeekBarVolumizer;->stopSample()V
+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
+Landroid/preference/TwoStatePreference$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/preference/TwoStatePreference;->mChecked:Z
+Landroid/preference/TwoStatePreference;->mCheckedSet:Z
+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
+Landroid/preference/VolumePreference;->cleanup()V
+Landroid/preference/VolumePreference;->mSeekBarVolumizer:Landroid/preference/SeekBarVolumizer;
+Landroid/preference/VolumePreference;->onMuted(ZZ)V
+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;
+Landroid/print/ILayoutResultCallback$Stub$Proxy;->onLayoutCanceled(I)V
+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;
+Landroid/print/ILayoutResultCallback$Stub;->TRANSACTION_onLayoutCanceled:I
+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;
+Landroid/print/IPrintDocumentAdapter$Stub$Proxy;->kill(Ljava/lang/String;)V
+Landroid/print/IPrintDocumentAdapter$Stub$Proxy;->layout(Landroid/print/PrintAttributes;Landroid/print/PrintAttributes;Landroid/print/ILayoutResultCallback;Landroid/os/Bundle;I)V
+Landroid/print/IPrintDocumentAdapter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/print/IPrintDocumentAdapter$Stub;->TRANSACTION_finish:I
+Landroid/print/IPrintDocumentAdapter$Stub;->TRANSACTION_kill:I
+Landroid/print/IPrintDocumentAdapter$Stub;->TRANSACTION_layout:I
+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
+Landroid/print/IPrintManager$Stub$Proxy;->addPrintServicesChangeListener(Landroid/print/IPrintServicesChangeListener;I)V
+Landroid/print/IPrintManager$Stub$Proxy;->cancelPrintJob(Landroid/print/PrintJobId;II)V
+Landroid/print/IPrintManager$Stub$Proxy;->createPrinterDiscoverySession(Landroid/print/IPrinterDiscoveryObserver;I)V
+Landroid/print/IPrintManager$Stub$Proxy;->destroyPrinterDiscoverySession(Landroid/print/IPrinterDiscoveryObserver;I)V
+Landroid/print/IPrintManager$Stub$Proxy;->getBindInstantServiceAllowed(I)Z
+Landroid/print/IPrintManager$Stub$Proxy;->getCustomPrinterIcon(Landroid/print/PrinterId;I)Landroid/graphics/drawable/Icon;
+Landroid/print/IPrintManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/print/IPrintManager$Stub$Proxy;->getPrintJobInfo(Landroid/print/PrintJobId;II)Landroid/print/PrintJobInfo;
+Landroid/print/IPrintManager$Stub$Proxy;->getPrintJobInfos(II)Ljava/util/List;
+Landroid/print/IPrintManager$Stub$Proxy;->getPrintServiceRecommendations(I)Ljava/util/List;
+Landroid/print/IPrintManager$Stub$Proxy;->getPrintServices(II)Ljava/util/List;
+Landroid/print/IPrintManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/print/IPrintManager$Stub$Proxy;->print(Ljava/lang/String;Landroid/print/IPrintDocumentAdapter;Landroid/print/PrintAttributes;Ljava/lang/String;II)Landroid/os/Bundle;
+Landroid/print/IPrintManager$Stub$Proxy;->removePrintJobStateChangeListener(Landroid/print/IPrintJobStateChangeListener;I)V
+Landroid/print/IPrintManager$Stub$Proxy;->removePrintServiceRecommendationsChangeListener(Landroid/printservice/recommendation/IRecommendationsChangeListener;I)V
+Landroid/print/IPrintManager$Stub$Proxy;->removePrintServicesChangeListener(Landroid/print/IPrintServicesChangeListener;I)V
+Landroid/print/IPrintManager$Stub$Proxy;->restartPrintJob(Landroid/print/PrintJobId;II)V
+Landroid/print/IPrintManager$Stub$Proxy;->setBindInstantServiceAllowed(IZ)V
+Landroid/print/IPrintManager$Stub$Proxy;->setPrintServiceEnabled(Landroid/content/ComponentName;ZI)V
+Landroid/print/IPrintManager$Stub$Proxy;->startPrinterDiscovery(Landroid/print/IPrinterDiscoveryObserver;Ljava/util/List;I)V
+Landroid/print/IPrintManager$Stub$Proxy;->startPrinterStateTracking(Landroid/print/PrinterId;I)V
+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;
+Landroid/print/IPrintManager$Stub;->TRANSACTION_addPrintJobStateChangeListener:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_addPrintServiceRecommendationsChangeListener:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_addPrintServicesChangeListener:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_cancelPrintJob:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_createPrinterDiscoverySession:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_destroyPrinterDiscoverySession:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_getBindInstantServiceAllowed:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_getCustomPrinterIcon:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_getPrintJobInfo:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_getPrintJobInfos:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_getPrintServiceRecommendations:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_getPrintServices:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_print:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_removePrintJobStateChangeListener:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_removePrintServiceRecommendationsChangeListener:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_removePrintServicesChangeListener:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_restartPrintJob:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_setBindInstantServiceAllowed:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_setPrintServiceEnabled:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_startPrinterDiscovery:I
+Landroid/print/IPrintManager$Stub;->TRANSACTION_startPrinterStateTracking:I
+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
+Landroid/print/IPrintManager;->cancelPrintJob(Landroid/print/PrintJobId;II)V
+Landroid/print/IPrintManager;->createPrinterDiscoverySession(Landroid/print/IPrinterDiscoveryObserver;I)V
+Landroid/print/IPrintManager;->destroyPrinterDiscoverySession(Landroid/print/IPrinterDiscoveryObserver;I)V
+Landroid/print/IPrintManager;->getBindInstantServiceAllowed(I)Z
+Landroid/print/IPrintManager;->getCustomPrinterIcon(Landroid/print/PrinterId;I)Landroid/graphics/drawable/Icon;
+Landroid/print/IPrintManager;->getPrintJobInfo(Landroid/print/PrintJobId;II)Landroid/print/PrintJobInfo;
+Landroid/print/IPrintManager;->getPrintJobInfos(II)Ljava/util/List;
+Landroid/print/IPrintManager;->getPrintServiceRecommendations(I)Ljava/util/List;
+Landroid/print/IPrintManager;->getPrintServices(II)Ljava/util/List;
+Landroid/print/IPrintManager;->print(Ljava/lang/String;Landroid/print/IPrintDocumentAdapter;Landroid/print/PrintAttributes;Ljava/lang/String;II)Landroid/os/Bundle;
+Landroid/print/IPrintManager;->removePrintJobStateChangeListener(Landroid/print/IPrintJobStateChangeListener;I)V
+Landroid/print/IPrintManager;->removePrintServiceRecommendationsChangeListener(Landroid/printservice/recommendation/IRecommendationsChangeListener;I)V
+Landroid/print/IPrintManager;->removePrintServicesChangeListener(Landroid/print/IPrintServicesChangeListener;I)V
+Landroid/print/IPrintManager;->restartPrintJob(Landroid/print/PrintJobId;II)V
+Landroid/print/IPrintManager;->setBindInstantServiceAllowed(IZ)V
+Landroid/print/IPrintManager;->setPrintServiceEnabled(Landroid/content/ComponentName;ZI)V
+Landroid/print/IPrintManager;->startPrinterDiscovery(Landroid/print/IPrinterDiscoveryObserver;Ljava/util/List;I)V
+Landroid/print/IPrintManager;->startPrinterStateTracking(Landroid/print/PrinterId;I)V
+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
+Landroid/print/IPrintSpooler$Stub$Proxy;->getCustomPrinterIcon(Landroid/print/PrinterId;Landroid/print/IPrintSpoolerCallbacks;I)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/print/IPrintSpooler$Stub$Proxy;->getPrintJobInfo(Landroid/print/PrintJobId;Landroid/print/IPrintSpoolerCallbacks;II)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->getPrintJobInfos(Landroid/print/IPrintSpoolerCallbacks;Landroid/content/ComponentName;III)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/print/IPrintSpooler$Stub$Proxy;->onCustomPrinterIconLoaded(Landroid/print/PrinterId;Landroid/graphics/drawable/Icon;Landroid/print/IPrintSpoolerCallbacks;I)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->pruneApprovedPrintServices(Ljava/util/List;)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->removeObsoletePrintJobs()V
+Landroid/print/IPrintSpooler$Stub$Proxy;->setClient(Landroid/print/IPrintSpoolerClient;)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->setPrintJobCancelling(Landroid/print/PrintJobId;Z)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->setPrintJobState(Landroid/print/PrintJobId;ILjava/lang/String;Landroid/print/IPrintSpoolerCallbacks;I)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->setPrintJobTag(Landroid/print/PrintJobId;Ljava/lang/String;Landroid/print/IPrintSpoolerCallbacks;I)V
+Landroid/print/IPrintSpooler$Stub$Proxy;->setProgress(Landroid/print/PrintJobId;F)V
+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;
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_clearCustomPrinterIconCache:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_createPrintJob:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_getCustomPrinterIcon:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_getPrintJobInfo:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_getPrintJobInfos:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_onCustomPrinterIconLoaded:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_pruneApprovedPrintServices:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_removeObsoletePrintJobs:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_setClient:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_setPrintJobCancelling:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_setPrintJobState:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_setPrintJobTag:I
+Landroid/print/IPrintSpooler$Stub;->TRANSACTION_setProgress:I
+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
+Landroid/print/IPrintSpooler;->getPrintJobInfo(Landroid/print/PrintJobId;Landroid/print/IPrintSpoolerCallbacks;II)V
+Landroid/print/IPrintSpooler;->getPrintJobInfos(Landroid/print/IPrintSpoolerCallbacks;Landroid/content/ComponentName;III)V
+Landroid/print/IPrintSpooler;->onCustomPrinterIconLoaded(Landroid/print/PrinterId;Landroid/graphics/drawable/Icon;Landroid/print/IPrintSpoolerCallbacks;I)V
+Landroid/print/IPrintSpooler;->pruneApprovedPrintServices(Ljava/util/List;)V
+Landroid/print/IPrintSpooler;->removeObsoletePrintJobs()V
+Landroid/print/IPrintSpooler;->setClient(Landroid/print/IPrintSpoolerClient;)V
+Landroid/print/IPrintSpooler;->setPrintJobCancelling(Landroid/print/PrintJobId;Z)V
+Landroid/print/IPrintSpooler;->setPrintJobState(Landroid/print/PrintJobId;ILjava/lang/String;Landroid/print/IPrintSpoolerCallbacks;I)V
+Landroid/print/IPrintSpooler;->setPrintJobTag(Landroid/print/PrintJobId;Ljava/lang/String;Landroid/print/IPrintSpoolerCallbacks;I)V
+Landroid/print/IPrintSpooler;->setProgress(Landroid/print/PrintJobId;F)V
+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;
+Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->onCancelPrintJobResult(ZI)V
+Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->onCustomPrinterIconCached(I)V
+Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->onGetCustomPrinterIconResult(Landroid/graphics/drawable/Icon;I)V
+Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->onGetPrintJobInfoResult(Landroid/print/PrintJobInfo;I)V
+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;
+Landroid/print/IPrintSpoolerCallbacks$Stub;->TRANSACTION_customPrinterIconCacheCleared:I
+Landroid/print/IPrintSpoolerCallbacks$Stub;->TRANSACTION_onCancelPrintJobResult:I
+Landroid/print/IPrintSpoolerCallbacks$Stub;->TRANSACTION_onCustomPrinterIconCached:I
+Landroid/print/IPrintSpoolerCallbacks$Stub;->TRANSACTION_onGetCustomPrinterIconResult:I
+Landroid/print/IPrintSpoolerCallbacks$Stub;->TRANSACTION_onGetPrintJobInfoResult:I
+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
+Landroid/print/IPrintSpoolerCallbacks;->onGetCustomPrinterIconResult(Landroid/graphics/drawable/Icon;I)V
+Landroid/print/IPrintSpoolerCallbacks;->onGetPrintJobInfoResult(Landroid/print/PrintJobInfo;I)V
+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;
+Landroid/print/IPrintSpoolerClient$Stub$Proxy;->onAllPrintJobsForServiceHandled(Landroid/content/ComponentName;)V
+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;
+Landroid/print/IPrintSpoolerClient$Stub;->TRANSACTION_onAllPrintJobsForServiceHandled:I
+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;
+Landroid/print/IWriteResultCallback$Stub$Proxy;->onWriteCanceled(I)V
+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;
+Landroid/print/IWriteResultCallback$Stub;->TRANSACTION_onWriteCanceled:I
+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
+Landroid/print/IWriteResultCallback;->onWriteStarted(Landroid/os/ICancellationSignal;I)V
+Landroid/print/PageRange;-><init>(Landroid/os/Parcel;)V
+Landroid/print/PageRange;->ALL_PAGES_ARRAY:[Landroid/print/PageRange;
+Landroid/print/PageRange;->contains(I)Z
+Landroid/print/PageRange;->getSize()I
+Landroid/print/PageRange;->mEnd:I
+Landroid/print/PageRange;->mStart:I
+Landroid/print/pdf/PrintedPdfDocument;->mContentRect:Landroid/graphics/Rect;
+Landroid/print/pdf/PrintedPdfDocument;->MILS_PER_INCH:I
+Landroid/print/pdf/PrintedPdfDocument;->mPageHeight:I
+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
+Landroid/print/PrintAttributes$Margins;->mRightMils:I
+Landroid/print/PrintAttributes$Margins;->mTopMils:I
+Landroid/print/PrintAttributes$Margins;->writeToParcel(Landroid/os/Parcel;)V
+Landroid/print/PrintAttributes$MediaSize;-><init>(Ljava/lang/String;Ljava/lang/String;III)V
+Landroid/print/PrintAttributes$MediaSize;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;III)V
+Landroid/print/PrintAttributes$MediaSize;->createFromParcel(Landroid/os/Parcel;)Landroid/print/PrintAttributes$MediaSize;
+Landroid/print/PrintAttributes$MediaSize;->getAllPredefinedSizes()Landroid/util/ArraySet;
+Landroid/print/PrintAttributes$MediaSize;->getStandardMediaSizeById(Ljava/lang/String;)Landroid/print/PrintAttributes$MediaSize;
+Landroid/print/PrintAttributes$MediaSize;->LOG_TAG:Ljava/lang/String;
+Landroid/print/PrintAttributes$MediaSize;->mHeightMils:I
+Landroid/print/PrintAttributes$MediaSize;->mId:Ljava/lang/String;
+Landroid/print/PrintAttributes$MediaSize;->mLabel:Ljava/lang/String;
+Landroid/print/PrintAttributes$MediaSize;->mLabelResId:I
+Landroid/print/PrintAttributes$MediaSize;->mPackageName:Ljava/lang/String;
+Landroid/print/PrintAttributes$MediaSize;->mWidthMils:I
+Landroid/print/PrintAttributes$MediaSize;->sIdToMediaSizeMap:Ljava/util/Map;
+Landroid/print/PrintAttributes$MediaSize;->writeToParcel(Landroid/os/Parcel;)V
+Landroid/print/PrintAttributes$Resolution;->createFromParcel(Landroid/os/Parcel;)Landroid/print/PrintAttributes$Resolution;
+Landroid/print/PrintAttributes$Resolution;->mHorizontalDpi:I
+Landroid/print/PrintAttributes$Resolution;->mId:Ljava/lang/String;
+Landroid/print/PrintAttributes$Resolution;->mLabel:Ljava/lang/String;
+Landroid/print/PrintAttributes$Resolution;->mVerticalDpi:I
+Landroid/print/PrintAttributes$Resolution;->writeToParcel(Landroid/os/Parcel;)V
+Landroid/print/PrintAttributes;-><init>()V
+Landroid/print/PrintAttributes;-><init>(Landroid/os/Parcel;)V
+Landroid/print/PrintAttributes;->asLandscape()Landroid/print/PrintAttributes;
+Landroid/print/PrintAttributes;->asPortrait()Landroid/print/PrintAttributes;
+Landroid/print/PrintAttributes;->clear()V
+Landroid/print/PrintAttributes;->colorModeToString(I)Ljava/lang/String;
+Landroid/print/PrintAttributes;->copyFrom(Landroid/print/PrintAttributes;)V
+Landroid/print/PrintAttributes;->duplexModeToString(I)Ljava/lang/String;
+Landroid/print/PrintAttributes;->enforceValidColorMode(I)V
+Landroid/print/PrintAttributes;->enforceValidDuplexMode(I)V
+Landroid/print/PrintAttributes;->isPortrait()Z
+Landroid/print/PrintAttributes;->mColorMode:I
+Landroid/print/PrintAttributes;->mDuplexMode:I
+Landroid/print/PrintAttributes;->mMediaSize:Landroid/print/PrintAttributes$MediaSize;
+Landroid/print/PrintAttributes;->mMinMargins:Landroid/print/PrintAttributes$Margins;
+Landroid/print/PrintAttributes;->mResolution:Landroid/print/PrintAttributes$Resolution;
+Landroid/print/PrintAttributes;->setColorMode(I)V
+Landroid/print/PrintAttributes;->setDuplexMode(I)V
+Landroid/print/PrintAttributes;->setMediaSize(Landroid/print/PrintAttributes$MediaSize;)V
+Landroid/print/PrintAttributes;->setMinMargins(Landroid/print/PrintAttributes$Margins;)V
+Landroid/print/PrintAttributes;->setResolution(Landroid/print/PrintAttributes$Resolution;)V
+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
+Landroid/print/PrintDocumentInfo;->contentTypeToString(I)Ljava/lang/String;
+Landroid/print/PrintDocumentInfo;->mContentType:I
+Landroid/print/PrintDocumentInfo;->mDataSize:J
+Landroid/print/PrintDocumentInfo;->mName:Ljava/lang/String;
+Landroid/print/PrintDocumentInfo;->mPageCount:I
+Landroid/print/PrintDocumentInfo;->setDataSize(J)V
+Landroid/print/PrinterCapabilitiesInfo$Builder;->mPrototype:Landroid/print/PrinterCapabilitiesInfo;
+Landroid/print/PrinterCapabilitiesInfo$Builder;->throwIfDefaultAlreadySpecified(I)V
+Landroid/print/PrinterCapabilitiesInfo;-><init>()V
+Landroid/print/PrinterCapabilitiesInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/print/PrinterCapabilitiesInfo;-><init>(Landroid/print/PrinterCapabilitiesInfo;)V
+Landroid/print/PrinterCapabilitiesInfo;->colorModesToString()Ljava/lang/String;
+Landroid/print/PrinterCapabilitiesInfo;->copyFrom(Landroid/print/PrinterCapabilitiesInfo;)V
+Landroid/print/PrinterCapabilitiesInfo;->DEFAULT_MARGINS:Landroid/print/PrintAttributes$Margins;
+Landroid/print/PrinterCapabilitiesInfo;->DEFAULT_UNDEFINED:I
+Landroid/print/PrinterCapabilitiesInfo;->duplexModesToString()Ljava/lang/String;
+Landroid/print/PrinterCapabilitiesInfo;->enforceValidMask(ILjava/util/function/IntConsumer;)V
+Landroid/print/PrinterCapabilitiesInfo;->mColorModes:I
+Landroid/print/PrinterCapabilitiesInfo;->mDefaults:[I
+Landroid/print/PrinterCapabilitiesInfo;->mDuplexModes:I
+Landroid/print/PrinterCapabilitiesInfo;->mMediaSizes:Ljava/util/List;
+Landroid/print/PrinterCapabilitiesInfo;->mMinMargins:Landroid/print/PrintAttributes$Margins;
+Landroid/print/PrinterCapabilitiesInfo;->mResolutions:Ljava/util/List;
+Landroid/print/PrinterCapabilitiesInfo;->PROPERTY_COLOR_MODE:I
+Landroid/print/PrinterCapabilitiesInfo;->PROPERTY_COUNT:I
+Landroid/print/PrinterCapabilitiesInfo;->PROPERTY_DUPLEX_MODE:I
+Landroid/print/PrinterCapabilitiesInfo;->PROPERTY_MEDIA_SIZE:I
+Landroid/print/PrinterCapabilitiesInfo;->PROPERTY_RESOLUTION:I
+Landroid/print/PrinterCapabilitiesInfo;->readDefaults(Landroid/os/Parcel;)V
+Landroid/print/PrinterCapabilitiesInfo;->readMargins(Landroid/os/Parcel;)Landroid/print/PrintAttributes$Margins;
+Landroid/print/PrinterCapabilitiesInfo;->readMediaSizes(Landroid/os/Parcel;)V
+Landroid/print/PrinterCapabilitiesInfo;->readResolutions(Landroid/os/Parcel;)V
+Landroid/print/PrinterCapabilitiesInfo;->writeDefaults(Landroid/os/Parcel;)V
+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
+Landroid/print/PrinterDiscoverySession;->getPrinters()Ljava/util/List;
+Landroid/print/PrinterDiscoverySession;->handlePrintersAdded(Ljava/util/List;)V
+Landroid/print/PrinterDiscoverySession;->handlePrintersRemoved(Ljava/util/List;)V
+Landroid/print/PrinterDiscoverySession;->isDestroyed()Z
+Landroid/print/PrinterDiscoverySession;->isDestroyedNoCheck()Z
+Landroid/print/PrinterDiscoverySession;->isPrinterDiscoveryStarted()Z
+Landroid/print/PrinterDiscoverySession;->LOG_TAG:Ljava/lang/String;
+Landroid/print/PrinterDiscoverySession;->mHandler:Landroid/os/Handler;
+Landroid/print/PrinterDiscoverySession;->mIsPrinterDiscoveryStarted:Z
+Landroid/print/PrinterDiscoverySession;->mListener:Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;
+Landroid/print/PrinterDiscoverySession;->mObserver:Landroid/print/IPrinterDiscoveryObserver;
+Landroid/print/PrinterDiscoverySession;->mPrinters:Ljava/util/LinkedHashMap;
+Landroid/print/PrinterDiscoverySession;->mPrintManager:Landroid/print/IPrintManager;
+Landroid/print/PrinterDiscoverySession;->MSG_PRINTERS_ADDED:I
+Landroid/print/PrinterDiscoverySession;->MSG_PRINTERS_REMOVED:I
+Landroid/print/PrinterDiscoverySession;->mUserId:I
+Landroid/print/PrinterDiscoverySession;->notifyOnPrintersChanged()V
+Landroid/print/PrinterDiscoverySession;->setOnPrintersChangeListener(Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;)V
+Landroid/print/PrinterDiscoverySession;->startPrinterDiscovery(Ljava/util/List;)V
+Landroid/print/PrinterDiscoverySession;->startPrinterStateTracking(Landroid/print/PrinterId;)V
+Landroid/print/PrinterDiscoverySession;->stopPrinterDiscovery()V
+Landroid/print/PrinterDiscoverySession;->stopPrinterStateTracking(Landroid/print/PrinterId;)V
+Landroid/print/PrinterDiscoverySession;->throwIfNotCalledOnMainThread()V
+Landroid/print/PrinterDiscoverySession;->validatePrinters(Ljava/util/List;)V
+Landroid/print/PrinterId;-><init>(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/print/PrinterId;-><init>(Landroid/os/Parcel;)V
+Landroid/print/PrinterId;->mLocalId:Ljava/lang/String;
+Landroid/print/PrinterId;->mServiceName:Landroid/content/ComponentName;
+Landroid/print/PrinterInfo$Builder;->incCustomPrinterIconGen()Landroid/print/PrinterInfo$Builder;
+Landroid/print/PrinterInfo$Builder;->mCapabilities:Landroid/print/PrinterCapabilitiesInfo;
+Landroid/print/PrinterInfo$Builder;->mCustomPrinterIconGen:I
+Landroid/print/PrinterInfo$Builder;->mDescription:Ljava/lang/String;
+Landroid/print/PrinterInfo$Builder;->mHasCustomPrinterIcon:Z
+Landroid/print/PrinterInfo$Builder;->mIconResourceId:I
+Landroid/print/PrinterInfo$Builder;->mInfoIntent:Landroid/app/PendingIntent;
+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;
+Landroid/print/PrinterInfo;->checkPrinterId(Landroid/print/PrinterId;)Landroid/print/PrinterId;
+Landroid/print/PrinterInfo;->checkStatus(I)I
+Landroid/print/PrinterInfo;->equalsIgnoringStatus(Landroid/print/PrinterInfo;)Z
+Landroid/print/PrinterInfo;->getHasCustomPrinterIcon()Z
+Landroid/print/PrinterInfo;->getInfoIntent()Landroid/app/PendingIntent;
+Landroid/print/PrinterInfo;->mCapabilities:Landroid/print/PrinterCapabilitiesInfo;
+Landroid/print/PrinterInfo;->mCustomPrinterIconGen:I
+Landroid/print/PrinterInfo;->mDescription:Ljava/lang/String;
+Landroid/print/PrinterInfo;->mHasCustomPrinterIcon:Z
+Landroid/print/PrinterInfo;->mIconResourceId:I
+Landroid/print/PrinterInfo;->mId:Landroid/print/PrinterId;
+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;
+Landroid/print/PrintFileDocumentAdapter;->mDocumentInfo:Landroid/print/PrintDocumentInfo;
+Landroid/print/PrintFileDocumentAdapter;->mFile:Ljava/io/File;
+Landroid/print/PrintFileDocumentAdapter;->mWriteFileAsyncTask:Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;
+Landroid/print/PrintJob;-><init>(Landroid/print/PrintJobInfo;Landroid/print/PrintManager;)V
+Landroid/print/PrintJob;->isInImmutableState()Z
+Landroid/print/PrintJob;->mCachedInfo:Landroid/print/PrintJobInfo;
+Landroid/print/PrintJob;->mPrintManager:Landroid/print/PrintManager;
+Landroid/print/PrintJobId;-><init>()V
+Landroid/print/PrintJobId;-><init>(Ljava/lang/String;)V
+Landroid/print/PrintJobId;->flattenToString()Ljava/lang/String;
+Landroid/print/PrintJobId;->mValue:Ljava/lang/String;
+Landroid/print/PrintJobId;->unflattenFromString(Ljava/lang/String;)Landroid/print/PrintJobId;
+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
+Landroid/print/PrintJobInfo;->getAppId()I
+Landroid/print/PrintJobInfo;->getPrinterName()Ljava/lang/String;
+Landroid/print/PrintJobInfo;->getTag()Ljava/lang/String;
+Landroid/print/PrintJobInfo;->isCancelling()Z
+Landroid/print/PrintJobInfo;->mAdvancedOptions:Landroid/os/Bundle;
+Landroid/print/PrintJobInfo;->mAppId:I
+Landroid/print/PrintJobInfo;->mAttributes:Landroid/print/PrintAttributes;
+Landroid/print/PrintJobInfo;->mCanceling:Z
+Landroid/print/PrintJobInfo;->mCopies:I
+Landroid/print/PrintJobInfo;->mCreationTime:J
+Landroid/print/PrintJobInfo;->mDocumentInfo:Landroid/print/PrintDocumentInfo;
+Landroid/print/PrintJobInfo;->mId:Landroid/print/PrintJobId;
+Landroid/print/PrintJobInfo;->mLabel:Ljava/lang/String;
+Landroid/print/PrintJobInfo;->mPageRanges:[Landroid/print/PageRange;
+Landroid/print/PrintJobInfo;->mPrinterId:Landroid/print/PrinterId;
+Landroid/print/PrintJobInfo;->mPrinterName:Ljava/lang/String;
+Landroid/print/PrintJobInfo;->mProgress:F
+Landroid/print/PrintJobInfo;->mState:I
+Landroid/print/PrintJobInfo;->mStatus:Ljava/lang/CharSequence;
+Landroid/print/PrintJobInfo;->mStatusRes:I
+Landroid/print/PrintJobInfo;->mStatusResAppPackageName:Ljava/lang/CharSequence;
+Landroid/print/PrintJobInfo;->mTag:Ljava/lang/String;
+Landroid/print/PrintJobInfo;->setAdvancedOptions(Landroid/os/Bundle;)V
+Landroid/print/PrintJobInfo;->setAppId(I)V
+Landroid/print/PrintJobInfo;->setAttributes(Landroid/print/PrintAttributes;)V
+Landroid/print/PrintJobInfo;->setCancelling(Z)V
+Landroid/print/PrintJobInfo;->setCopies(I)V
+Landroid/print/PrintJobInfo;->setCreationTime(J)V
+Landroid/print/PrintJobInfo;->setDocumentInfo(Landroid/print/PrintDocumentInfo;)V
+Landroid/print/PrintJobInfo;->setId(Landroid/print/PrintJobId;)V
+Landroid/print/PrintJobInfo;->setLabel(Ljava/lang/String;)V
+Landroid/print/PrintJobInfo;->setPages([Landroid/print/PageRange;)V
+Landroid/print/PrintJobInfo;->setPrinterId(Landroid/print/PrinterId;)V
+Landroid/print/PrintJobInfo;->setPrinterName(Ljava/lang/String;)V
+Landroid/print/PrintJobInfo;->setProgress(F)V
+Landroid/print/PrintJobInfo;->setState(I)V
+Landroid/print/PrintJobInfo;->setStatus(ILjava/lang/CharSequence;)V
+Landroid/print/PrintJobInfo;->setStatus(Ljava/lang/CharSequence;)V
+Landroid/print/PrintJobInfo;->setTag(Ljava/lang/String;)V
+Landroid/print/PrintJobInfo;->stateToString(I)Ljava/lang/String;
+Landroid/print/PrintJobInfo;->STATE_ANY:I
+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
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->isDestroyedLocked()Z
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->kill(Ljava/lang/String;)V
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->layout(Landroid/print/PrintAttributes;Landroid/print/PrintAttributes;Landroid/print/ILayoutResultCallback;Landroid/os/Bundle;I)V
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->mActivity:Landroid/app/Activity;
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->mDocumentAdapter:Landroid/print/PrintDocumentAdapter;
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->mHandler:Landroid/os/Handler;
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->mLock:Ljava/lang/Object;
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->mObserver:Landroid/print/IPrintDocumentAdapterObserver;
+Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->mPendingCallback:Landroid/print/PrintManager$PrintDocumentAdapterDelegate$DestroyableCallback;
+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;
+Landroid/print/PrintManager$PrintServicesChangeListenerWrapper;->mWeakListener:Ljava/lang/ref/WeakReference;
+Landroid/print/PrintManager$PrintServicesChangeListenerWrapper;->onPrintServicesChanged()V
+Landroid/print/PrintManager;-><init>(Landroid/content/Context;Landroid/print/IPrintManager;II)V
+Landroid/print/PrintManager;->ACTION_PRINT_DIALOG:Ljava/lang/String;
+Landroid/print/PrintManager;->ALL_SERVICES:I
+Landroid/print/PrintManager;->APP_ID_ANY:I
+Landroid/print/PrintManager;->cancelPrintJob(Landroid/print/PrintJobId;)V
+Landroid/print/PrintManager;->createPrinterDiscoverySession()Landroid/print/PrinterDiscoverySession;
+Landroid/print/PrintManager;->DEBUG:Z
+Landroid/print/PrintManager;->DISABLED_SERVICES:I
+Landroid/print/PrintManager;->EXTRA_PRINT_DIALOG_INTENT:Ljava/lang/String;
+Landroid/print/PrintManager;->EXTRA_PRINT_DOCUMENT_ADAPTER:Ljava/lang/String;
+Landroid/print/PrintManager;->EXTRA_PRINT_JOB:Ljava/lang/String;
+Landroid/print/PrintManager;->getCustomPrinterIcon(Landroid/print/PrinterId;)Landroid/graphics/drawable/Icon;
+Landroid/print/PrintManager;->getGlobalPrintManagerForUser(I)Landroid/print/PrintManager;
+Landroid/print/PrintManager;->getPrintJob(Landroid/print/PrintJobId;)Landroid/print/PrintJob;
+Landroid/print/PrintManager;->getPrintJobInfo(Landroid/print/PrintJobId;)Landroid/print/PrintJobInfo;
+Landroid/print/PrintManager;->LOG_TAG:Ljava/lang/String;
+Landroid/print/PrintManager;->mAppId:I
+Landroid/print/PrintManager;->mContext:Landroid/content/Context;
+Landroid/print/PrintManager;->mHandler:Landroid/os/Handler;
+Landroid/print/PrintManager;->mPrintJobStateChangeListeners:Ljava/util/Map;
+Landroid/print/PrintManager;->mPrintServiceRecommendationsChangeListeners:Ljava/util/Map;
+Landroid/print/PrintManager;->mPrintServicesChangeListeners:Ljava/util/Map;
+Landroid/print/PrintManager;->mService:Landroid/print/IPrintManager;
+Landroid/print/PrintManager;->MSG_NOTIFY_PRINT_JOB_STATE_CHANGED:I
+Landroid/print/PrintManager;->mUserId:I
+Landroid/print/PrintManager;->PRINT_SPOOLER_PACKAGE_NAME:Ljava/lang/String;
+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;
+Landroid/print/PrintServicesLoader;->mPrintManager:Landroid/print/PrintManager;
+Landroid/print/PrintServicesLoader;->mSelectionFlags:I
+Landroid/print/PrintServicesLoader;->queueNewResult()V
+Landroid/printservice/CustomPrinterIconCallback;-><init>(Landroid/print/PrinterId;Landroid/printservice/IPrintServiceClient;)V
+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
+Landroid/printservice/IPrintService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/printservice/IPrintService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/printservice/IPrintService$Stub$Proxy;->onPrintJobQueued(Landroid/print/PrintJobInfo;)V
+Landroid/printservice/IPrintService$Stub$Proxy;->requestCancelPrintJob(Landroid/print/PrintJobInfo;)V
+Landroid/printservice/IPrintService$Stub$Proxy;->requestCustomPrinterIcon(Landroid/print/PrinterId;)V
+Landroid/printservice/IPrintService$Stub$Proxy;->setClient(Landroid/printservice/IPrintServiceClient;)V
+Landroid/printservice/IPrintService$Stub$Proxy;->startPrinterDiscovery(Ljava/util/List;)V
+Landroid/printservice/IPrintService$Stub$Proxy;->startPrinterStateTracking(Landroid/print/PrinterId;)V
+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;
+Landroid/printservice/IPrintService$Stub;->TRANSACTION_createPrinterDiscoverySession:I
+Landroid/printservice/IPrintService$Stub;->TRANSACTION_destroyPrinterDiscoverySession:I
+Landroid/printservice/IPrintService$Stub;->TRANSACTION_onPrintJobQueued:I
+Landroid/printservice/IPrintService$Stub;->TRANSACTION_requestCancelPrintJob:I
+Landroid/printservice/IPrintService$Stub;->TRANSACTION_requestCustomPrinterIcon:I
+Landroid/printservice/IPrintService$Stub;->TRANSACTION_setClient:I
+Landroid/printservice/IPrintService$Stub;->TRANSACTION_startPrinterDiscovery:I
+Landroid/printservice/IPrintService$Stub;->TRANSACTION_startPrinterStateTracking:I
+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
+Landroid/printservice/IPrintService;->requestCancelPrintJob(Landroid/print/PrintJobInfo;)V
+Landroid/printservice/IPrintService;->requestCustomPrinterIcon(Landroid/print/PrinterId;)V
+Landroid/printservice/IPrintService;->setClient(Landroid/printservice/IPrintServiceClient;)V
+Landroid/printservice/IPrintService;->startPrinterDiscovery(Ljava/util/List;)V
+Landroid/printservice/IPrintService;->startPrinterStateTracking(Landroid/print/PrinterId;)V
+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;
+Landroid/printservice/IPrintServiceClient$Stub$Proxy;->getPrintJobInfos()Ljava/util/List;
+Landroid/printservice/IPrintServiceClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/printservice/IPrintServiceClient$Stub$Proxy;->onCustomPrinterIconLoaded(Landroid/print/PrinterId;Landroid/graphics/drawable/Icon;)V
+Landroid/printservice/IPrintServiceClient$Stub$Proxy;->onPrintersAdded(Landroid/content/pm/ParceledListSlice;)V
+Landroid/printservice/IPrintServiceClient$Stub$Proxy;->onPrintersRemoved(Landroid/content/pm/ParceledListSlice;)V
+Landroid/printservice/IPrintServiceClient$Stub$Proxy;->setPrintJobState(Landroid/print/PrintJobId;ILjava/lang/String;)Z
+Landroid/printservice/IPrintServiceClient$Stub$Proxy;->setPrintJobTag(Landroid/print/PrintJobId;Ljava/lang/String;)Z
+Landroid/printservice/IPrintServiceClient$Stub$Proxy;->setProgress(Landroid/print/PrintJobId;F)V
+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;
+Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_getPrintJobInfo:I
+Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_getPrintJobInfos:I
+Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_onCustomPrinterIconLoaded:I
+Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_onPrintersAdded:I
+Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_onPrintersRemoved:I
+Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_setPrintJobState:I
+Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_setPrintJobTag:I
+Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_setProgress:I
+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
+Landroid/printservice/IPrintServiceClient;->onPrintersAdded(Landroid/content/pm/ParceledListSlice;)V
+Landroid/printservice/IPrintServiceClient;->onPrintersRemoved(Landroid/content/pm/ParceledListSlice;)V
+Landroid/printservice/IPrintServiceClient;->setPrintJobState(Landroid/print/PrintJobId;ILjava/lang/String;)Z
+Landroid/printservice/IPrintServiceClient;->setPrintJobTag(Landroid/print/PrintJobId;Ljava/lang/String;)Z
+Landroid/printservice/IPrintServiceClient;->setProgress(Landroid/print/PrintJobId;F)V
+Landroid/printservice/IPrintServiceClient;->setStatus(Landroid/print/PrintJobId;Ljava/lang/CharSequence;)V
+Landroid/printservice/IPrintServiceClient;->setStatusRes(Landroid/print/PrintJobId;ILjava/lang/CharSequence;)V
+Landroid/printservice/IPrintServiceClient;->writePrintJobData(Landroid/os/ParcelFileDescriptor;Landroid/print/PrintJobId;)V
+Landroid/printservice/PrintDocument;-><init>(Landroid/print/PrintJobId;Landroid/printservice/IPrintServiceClient;Landroid/print/PrintDocumentInfo;)V
+Landroid/printservice/PrintDocument;->LOG_TAG:Ljava/lang/String;
+Landroid/printservice/PrintDocument;->mInfo:Landroid/print/PrintDocumentInfo;
+Landroid/printservice/PrintDocument;->mPrintJobId:Landroid/print/PrintJobId;
+Landroid/printservice/PrintDocument;->mPrintServiceClient:Landroid/printservice/IPrintServiceClient;
+Landroid/printservice/PrinterDiscoverySession;->destroy()V
+Landroid/printservice/PrinterDiscoverySession;->getId()I
+Landroid/printservice/PrinterDiscoverySession;->LOG_TAG:Ljava/lang/String;
+Landroid/printservice/PrinterDiscoverySession;->mId:I
+Landroid/printservice/PrinterDiscoverySession;->mIsDestroyed:Z
+Landroid/printservice/PrinterDiscoverySession;->mIsDiscoveryStarted:Z
+Landroid/printservice/PrinterDiscoverySession;->mLastSentPrinters:Landroid/util/ArrayMap;
+Landroid/printservice/PrinterDiscoverySession;->mObserver:Landroid/printservice/IPrintServiceClient;
+Landroid/printservice/PrinterDiscoverySession;->mPrinters:Landroid/util/ArrayMap;
+Landroid/printservice/PrinterDiscoverySession;->mTrackedPrinters:Ljava/util/List;
+Landroid/printservice/PrinterDiscoverySession;->requestCustomPrinterIcon(Landroid/print/PrinterId;)V
+Landroid/printservice/PrinterDiscoverySession;->sendOutOfDiscoveryPeriodPrinterChanges()V
+Landroid/printservice/PrinterDiscoverySession;->setObserver(Landroid/printservice/IPrintServiceClient;)V
+Landroid/printservice/PrinterDiscoverySession;->sIdCounter:I
+Landroid/printservice/PrinterDiscoverySession;->startPrinterDiscovery(Ljava/util/List;)V
+Landroid/printservice/PrinterDiscoverySession;->startPrinterStateTracking(Landroid/print/PrinterId;)V
+Landroid/printservice/PrinterDiscoverySession;->stopPrinterDiscovery()V
+Landroid/printservice/PrinterDiscoverySession;->stopPrinterStateTracking(Landroid/print/PrinterId;)V
+Landroid/printservice/PrinterDiscoverySession;->validatePrinters(Ljava/util/List;)V
+Landroid/printservice/PrintJob;-><init>(Landroid/content/Context;Landroid/print/PrintJobInfo;Landroid/printservice/IPrintServiceClient;)V
+Landroid/printservice/PrintJob;->isInImmutableState()Z
+Landroid/printservice/PrintJob;->LOG_TAG:Ljava/lang/String;
+Landroid/printservice/PrintJob;->mCachedInfo:Landroid/print/PrintJobInfo;
+Landroid/printservice/PrintJob;->mContext:Landroid/content/Context;
+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
+Landroid/printservice/PrintService$ServiceHandler;->MSG_ON_REQUEST_CANCEL_PRINTJOB:I
+Landroid/printservice/PrintService$ServiceHandler;->MSG_REQUEST_CUSTOM_PRINTER_ICON:I
+Landroid/printservice/PrintService$ServiceHandler;->MSG_SET_CLIENT:I
+Landroid/printservice/PrintService$ServiceHandler;->MSG_START_PRINTER_DISCOVERY:I
+Landroid/printservice/PrintService$ServiceHandler;->MSG_START_PRINTER_STATE_TRACKING:I
+Landroid/printservice/PrintService$ServiceHandler;->MSG_STOP_PRINTER_DISCOVERY:I
+Landroid/printservice/PrintService$ServiceHandler;->MSG_STOP_PRINTER_STATE_TRACKING:I
+Landroid/printservice/PrintService$ServiceHandler;->MSG_VALIDATE_PRINTERS:I
+Landroid/printservice/PrintService;->DEBUG:Z
+Landroid/printservice/PrintService;->LOG_TAG:Ljava/lang/String;
+Landroid/printservice/PrintService;->mClient:Landroid/printservice/IPrintServiceClient;
+Landroid/printservice/PrintService;->mDiscoverySession:Landroid/printservice/PrinterDiscoverySession;
+Landroid/printservice/PrintService;->mHandler:Landroid/os/Handler;
+Landroid/printservice/PrintService;->mLastSessionId:I
+Landroid/printservice/PrintService;->throwIfNotCalledOnMainThread()V
+Landroid/printservice/PrintServiceInfo;-><init>(Landroid/content/pm/ResolveInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/printservice/PrintServiceInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/printservice/PrintServiceInfo;->create(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)Landroid/printservice/PrintServiceInfo;
+Landroid/printservice/PrintServiceInfo;->getAddPrintersActivityName()Ljava/lang/String;
+Landroid/printservice/PrintServiceInfo;->getAdvancedOptionsActivityName()Ljava/lang/String;
+Landroid/printservice/PrintServiceInfo;->getId()Ljava/lang/String;
+Landroid/printservice/PrintServiceInfo;->getResolveInfo()Landroid/content/pm/ResolveInfo;
+Landroid/printservice/PrintServiceInfo;->getSettingsActivityName()Ljava/lang/String;
+Landroid/printservice/PrintServiceInfo;->isEnabled()Z
+Landroid/printservice/PrintServiceInfo;->LOG_TAG:Ljava/lang/String;
+Landroid/printservice/PrintServiceInfo;->mAddPrintersActivityName:Ljava/lang/String;
+Landroid/printservice/PrintServiceInfo;->mAdvancedPrintOptionsActivityName:Ljava/lang/String;
+Landroid/printservice/PrintServiceInfo;->mId:Ljava/lang/String;
+Landroid/printservice/PrintServiceInfo;->mIsEnabled:Z
+Landroid/printservice/PrintServiceInfo;->mResolveInfo:Landroid/content/pm/ResolveInfo;
+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;
+Landroid/printservice/recommendation/RecommendationInfo;->mName:Ljava/lang/CharSequence;
+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
+Landroid/printservice/recommendation/RecommendationService;->LOG_TAG:Ljava/lang/String;
+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
+Landroid/provider/BlockedNumberContract$SystemContract;->ENHANCED_SETTING_KEY_BLOCK_PAYPHONE:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->ENHANCED_SETTING_KEY_BLOCK_PRIVATE:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->ENHANCED_SETTING_KEY_BLOCK_UNKNOWN:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->ENHANCED_SETTING_KEY_BLOCK_UNREGISTERED:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->ENHANCED_SETTING_KEY_SHOW_EMERGENCY_CALL_NOTIFICATION:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->getBlockSuppressionStatus(Landroid/content/Context;)Landroid/provider/BlockedNumberContract$SystemContract$BlockSuppressionStatus;
+Landroid/provider/BlockedNumberContract$SystemContract;->getEnhancedBlockSetting(Landroid/content/Context;Ljava/lang/String;)Z
+Landroid/provider/BlockedNumberContract$SystemContract;->METHOD_END_BLOCK_SUPPRESSION:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->METHOD_GET_BLOCK_SUPPRESSION_STATUS:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->METHOD_GET_ENHANCED_BLOCK_SETTING:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->METHOD_NOTIFY_EMERGENCY_CONTACT:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->METHOD_SET_ENHANCED_BLOCK_SETTING:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->METHOD_SHOULD_SHOW_EMERGENCY_CALL_NOTIFICATION:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->METHOD_SHOULD_SYSTEM_BLOCK_NUMBER:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->notifyEmergencyContact(Landroid/content/Context;)V
+Landroid/provider/BlockedNumberContract$SystemContract;->RES_BLOCKING_SUPPRESSED_UNTIL_TIMESTAMP:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->RES_IS_BLOCKING_SUPPRESSED:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract$SystemContract;->setEnhancedBlockSetting(Landroid/content/Context;Ljava/lang/String;Z)V
+Landroid/provider/BlockedNumberContract$SystemContract;->shouldShowEmergencyCallNotification(Landroid/content/Context;)Z
+Landroid/provider/BlockedNumberContract$SystemContract;->shouldSystemBlockNumber(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Z
+Landroid/provider/BlockedNumberContract;-><init>()V
+Landroid/provider/BlockedNumberContract;->EXTRA_CALL_PRESENTATION:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->EXTRA_CONTACT_EXIST:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->EXTRA_ENHANCED_SETTING_KEY:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->EXTRA_ENHANCED_SETTING_VALUE:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->METHOD_CAN_CURRENT_USER_BLOCK_NUMBERS:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->METHOD_IS_BLOCKED:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->METHOD_UNBLOCK:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->RES_CAN_BLOCK_NUMBERS:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->RES_ENHANCED_SETTING_IS_ENABLED:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->RES_NUMBER_IS_BLOCKED:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->RES_NUM_ROWS_DELETED:Ljava/lang/String;
+Landroid/provider/BlockedNumberContract;->RES_SHOW_EMERGENCY_CALL_NOTIFICATION:Ljava/lang/String;
+Landroid/provider/Browser$BookmarkColumns;->THUMBNAIL:Ljava/lang/String;
+Landroid/provider/Browser$BookmarkColumns;->TOUCH_ICON:Ljava/lang/String;
+Landroid/provider/Browser$BookmarkColumns;->USER_ENTERED:Ljava/lang/String;
+Landroid/provider/Browser;->addOrUrlEquals(Ljava/lang/StringBuilder;)V
+Landroid/provider/Browser;->EXTRA_SHARE_FAVICON:Ljava/lang/String;
+Landroid/provider/Browser;->EXTRA_SHARE_SCREENSHOT:Ljava/lang/String;
+Landroid/provider/Browser;->getVisitedLike(Landroid/content/ContentResolver;Ljava/lang/String;)Landroid/database/Cursor;
+Landroid/provider/Browser;->HISTORY_PROJECTION_THUMBNAIL_INDEX:I
+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
+Landroid/provider/BrowserContract$Bookmarks;->BOOKMARK_TYPE_FOLDER:I
+Landroid/provider/BrowserContract$Bookmarks;->BOOKMARK_TYPE_MOBILE_FOLDER:I
+Landroid/provider/BrowserContract$Bookmarks;->BOOKMARK_TYPE_OTHER_FOLDER:I
+Landroid/provider/BrowserContract$Bookmarks;->CONTENT_ITEM_TYPE:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->CONTENT_TYPE:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->INSERT_AFTER:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->INSERT_AFTER_SOURCE_ID:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->IS_DELETED:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->IS_FOLDER:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->PARAM_ACCOUNT_NAME:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->PARAM_ACCOUNT_TYPE:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->PARENT:Ljava/lang/String;
+Landroid/provider/BrowserContract$Bookmarks;->PARENT_SOURCE_ID:Ljava/lang/String;
+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;
+Landroid/provider/BrowserContract$ChromeSyncColumns;->FOLDER_NAME_BOOKMARKS_BAR:Ljava/lang/String;
+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;
+Landroid/provider/BrowserContract$Images;->DATA:Ljava/lang/String;
+Landroid/provider/BrowserContract$Images;->IMAGE_TYPE_FAVICON:I
+Landroid/provider/BrowserContract$Images;->IMAGE_TYPE_PRECOMPOSED_TOUCH_ICON:I
+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;
+Landroid/provider/BrowserContract$Searches;->CONTENT_URI:Landroid/net/Uri;
+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
+Landroid/provider/BrowserContract$Settings;->KEY:Ljava/lang/String;
+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;
+Landroid/provider/BrowserContract$SyncState;->get(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)[B
+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;
+Landroid/provider/BrowserContract;->PARAM_LIMIT:Ljava/lang/String;
+Landroid/provider/CalendarContract$Attendees;-><init>()V
+Landroid/provider/CalendarContract$Attendees;->ATTENDEES_WHERE:Ljava/lang/String;
+Landroid/provider/CalendarContract$CalendarAlerts;-><init>()V
+Landroid/provider/CalendarContract$CalendarAlerts;->alarmExists(Landroid/content/ContentResolver;JJJ)Z
+Landroid/provider/CalendarContract$CalendarAlerts;->DEBUG:Z
+Landroid/provider/CalendarContract$CalendarAlerts;->insert(Landroid/content/ContentResolver;JJJJI)Landroid/net/Uri;
+Landroid/provider/CalendarContract$CalendarAlerts;->SORT_ORDER_ALARMTIME_ASC:Ljava/lang/String;
+Landroid/provider/CalendarContract$CalendarAlerts;->TABLE_NAME:Ljava/lang/String;
+Landroid/provider/CalendarContract$CalendarAlerts;->WHERE_ALARM_EXISTS:Ljava/lang/String;
+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;
+Landroid/provider/CalendarContract$CalendarMetaDataColumns;->MIN_EVENTDAYS:Ljava/lang/String;
+Landroid/provider/CalendarContract$CalendarMetaDataColumns;->MIN_INSTANCE:Ljava/lang/String;
+Landroid/provider/CalendarContract$Calendars;-><init>()V
+Landroid/provider/CalendarContract$Calendars;->SYNC_WRITABLE_COLUMNS:[Ljava/lang/String;
+Landroid/provider/CalendarContract$Colors;-><init>()V
+Landroid/provider/CalendarContract$Colors;->TABLE_NAME:Ljava/lang/String;
+Landroid/provider/CalendarContract$EventDays;-><init>()V
+Landroid/provider/CalendarContract$EventDays;->SELECTION:Ljava/lang/String;
+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;
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_ATTENDEE_EMAIL:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_ATTENDEE_IDENTITY:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_ATTENDEE_ID_NAMESPACE:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_ATTENDEE_NAME:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_ATTENDEE_RELATIONSHIP:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_ATTENDEE_STATUS:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_ATTENDEE_TYPE:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_ID:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_METHOD:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_MINUTES:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_NAME:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->COLUMN_VALUE:I
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->EXTENDED_PROJECTION:[Ljava/lang/String;
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->getEntityAndIncrementCursor(Landroid/database/Cursor;)Landroid/content/Entity;
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->mProvider:Landroid/content/ContentProviderClient;
+Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->mResolver:Landroid/content/ContentResolver;
+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;
+Landroid/provider/CalendarContract$EventsRawTimesColumns;->LAST_DATE_2445:Ljava/lang/String;
+Landroid/provider/CalendarContract$EventsRawTimesColumns;->ORIGINAL_INSTANCE_TIME_2445:Ljava/lang/String;
+Landroid/provider/CalendarContract$ExtendedProperties;-><init>()V
+Landroid/provider/CalendarContract$Instances;-><init>()V
+Landroid/provider/CalendarContract$Instances;->DEFAULT_SORT_ORDER:Ljava/lang/String;
+Landroid/provider/CalendarContract$Instances;->WHERE_CALENDARS_ARGS:[Ljava/lang/String;
+Landroid/provider/CalendarContract$Instances;->WHERE_CALENDARS_SELECTED:Ljava/lang/String;
+Landroid/provider/CalendarContract$Reminders;-><init>()V
+Landroid/provider/CalendarContract$Reminders;->REMINDERS_WHERE:Ljava/lang/String;
+Landroid/provider/CalendarContract$SyncState;-><init>()V
+Landroid/provider/CalendarContract$SyncState;->CONTENT_DIRECTORY:Ljava/lang/String;
+Landroid/provider/CalendarContract;-><init>()V
+Landroid/provider/CalendarContract;->TAG:Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->addCall(Lcom/android/internal/telephony/CallerInfo;Landroid/content/Context;Ljava/lang/String;IIILandroid/telecom/PhoneAccountHandle;JILjava/lang/Long;)Landroid/net/Uri;
+Landroid/provider/CallLog$Calls;->addCall(Lcom/android/internal/telephony/CallerInfo;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILandroid/telecom/PhoneAccountHandle;JILjava/lang/Long;ZLandroid/os/UserHandle;)Landroid/net/Uri;
+Landroid/provider/CallLog$Calls;->addEntryAndRemoveExpiredEntries(Landroid/content/Context;Landroid/os/UserManager;Landroid/os/UserHandle;Landroid/content/ContentValues;)Landroid/net/Uri;
+Landroid/provider/CallLog$Calls;->ADD_FOR_ALL_USERS:Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->ALLOW_VOICEMAILS_PARAM_KEY:Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->FEATURES_ASSISTED_DIALING_USED:I
+Landroid/provider/CallLog$Calls;->getCurrentCountryIso(Landroid/content/Context;)Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->MIN_DURATION_FOR_NORMALIZED_NUMBER_UPDATE_MS:I
+Landroid/provider/CallLog$Calls;->PHONE_ACCOUNT_ADDRESS:Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->PHONE_ACCOUNT_HIDDEN:Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->SHADOW_CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/CallLog$Calls;->shouldHaveSharedCallLogEntries(Landroid/content/Context;Landroid/os/UserManager;I)Z
+Landroid/provider/CallLog$Calls;->SUB_ID:Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->TRANSCRIPTION_STATE:Ljava/lang/String;
+Landroid/provider/CallLog$Calls;->updateDataUsageStatForData(Landroid/content/ContentResolver;Ljava/lang/String;)V
+Landroid/provider/CallLog$Calls;->updateNormalizedNumber(Landroid/content/Context;Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)V
+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;
+Landroid/provider/Contacts$ContactMethods$ProviderNames;->JABBER:Ljava/lang/String;
+Landroid/provider/Contacts$ContactMethods$ProviderNames;->MSN:Ljava/lang/String;
+Landroid/provider/Contacts$ContactMethods$ProviderNames;->QQ:Ljava/lang/String;
+Landroid/provider/Contacts$ContactMethods$ProviderNames;->SKYPE:Ljava/lang/String;
+Landroid/provider/Contacts$ContactMethods$ProviderNames;->XMPP:Ljava/lang/String;
+Landroid/provider/Contacts$ContactMethods$ProviderNames;->YAHOO:Ljava/lang/String;
+Landroid/provider/Contacts$ContactMethods;-><init>()V
+Landroid/provider/Contacts$ContactMethods;->lookupProviderNameFromId(I)Ljava/lang/String;
+Landroid/provider/Contacts$ContactMethodsColumns;->MOBILE_EMAIL_TYPE_INDEX:I
+Landroid/provider/Contacts$ContactMethodsColumns;->MOBILE_EMAIL_TYPE_NAME:Ljava/lang/String;
+Landroid/provider/Contacts$Extensions;-><init>()V
+Landroid/provider/Contacts$GroupMembership;-><init>()V
+Landroid/provider/Contacts$Groups;-><init>()V
+Landroid/provider/Contacts$Intents;->EXTRA_TARGET_RECT:Ljava/lang/String;
+Landroid/provider/Contacts$Organizations;-><init>()V
+Landroid/provider/Contacts$People$ContactMethods;-><init>()V
+Landroid/provider/Contacts$People$Extensions;-><init>()V
+Landroid/provider/Contacts$People$Phones;-><init>()V
+Landroid/provider/Contacts$People;-><init>()V
+Landroid/provider/Contacts$People;->GROUPS_PROJECTION:[Ljava/lang/String;
+Landroid/provider/Contacts$People;->loadPlaceholderPhoto(ILandroid/content/Context;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+Landroid/provider/Contacts$People;->tryGetMyContactsGroupId(Landroid/content/ContentResolver;)J
+Landroid/provider/Contacts$People;->WITH_EMAIL_OR_IM_FILTER_URI:Landroid/net/Uri;
+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
+Landroid/provider/Contacts$Presence;->PERSON_ID:Ljava/lang/String;
+Landroid/provider/Contacts$Presence;->setPresenceIcon(Landroid/widget/ImageView;I)V
+Landroid/provider/Contacts$Settings;-><init>()V
+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;
+Landroid/provider/ContactsContract$Authorization;->KEY_URI_TO_AUTHORIZE:Ljava/lang/String;
+Landroid/provider/ContactsContract$CommonDataKinds$Email;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Event;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$GroupMembership;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Identity;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Im;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Nickname;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Note;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Organization;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Phone;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Phone;->ENTERPRISE_CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/ContactsContract$CommonDataKinds$Phone;->getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/provider/ContactsContract$CommonDataKinds$Photo;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$Relation;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$SipAddress;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$StructuredName;-><init>()V
+Landroid/provider/ContactsContract$CommonDataKinds$StructuredPostal;-><init>()V
+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;
+Landroid/provider/ContactsContract$ContactOptionsColumns;->RAW_TIMES_CONTACTED:Ljava/lang/String;
+Landroid/provider/ContactsContract$Contacts$AggregationSuggestions$Builder;->mContactId:J
+Landroid/provider/ContactsContract$Contacts$AggregationSuggestions$Builder;->mLimit:I
+Landroid/provider/ContactsContract$Contacts$AggregationSuggestions$Builder;->mValues:Ljava/util/ArrayList;
+Landroid/provider/ContactsContract$Contacts$AggregationSuggestions;-><init>()V
+Landroid/provider/ContactsContract$Contacts$AggregationSuggestions;->PARAMETER_MATCH_NAME:Ljava/lang/String;
+Landroid/provider/ContactsContract$Contacts$Data;-><init>()V
+Landroid/provider/ContactsContract$Contacts$Entity;-><init>()V
+Landroid/provider/ContactsContract$Contacts$Photo;-><init>()V
+Landroid/provider/ContactsContract$Contacts$StreamItems;-><init>()V
+Landroid/provider/ContactsContract$Contacts;-><init>()V
+Landroid/provider/ContactsContract$Contacts;->ENTERPRISE_CONTACT_ID_BASE:J
+Landroid/provider/ContactsContract$Contacts;->ENTERPRISE_CONTACT_LOOKUP_PREFIX:Ljava/lang/String;
+Landroid/provider/ContactsContract$Data;-><init>()V
+Landroid/provider/ContactsContract$Data;->ENTERPRISE_CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/ContactsContract$DataColumns;->HASH_ID:Ljava/lang/String;
+Landroid/provider/ContactsContract$DataUsageStatColumns;->LR_LAST_TIME_USED:Ljava/lang/String;
+Landroid/provider/ContactsContract$DataUsageStatColumns;->LR_TIMES_USED:Ljava/lang/String;
+Landroid/provider/ContactsContract$DataUsageStatColumns;->RAW_LAST_TIME_USED:Ljava/lang/String;
+Landroid/provider/ContactsContract$DataUsageStatColumns;->RAW_TIMES_USED:Ljava/lang/String;
+Landroid/provider/ContactsContract$DeletedContacts;-><init>()V
+Landroid/provider/ContactsContract$DeletedContacts;->DAYS_KEPT:I
+Landroid/provider/ContactsContract$Directory;-><init>()V
+Landroid/provider/ContactsContract$Directory;->ENTERPRISE_DIRECTORY_ID_BASE:J
+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
+Landroid/provider/ContactsContract$GroupsColumns;->ACCOUNT_TYPE_AND_DATA_SET:Ljava/lang/String;
+Landroid/provider/ContactsContract$GroupsColumns;->PARAM_RETURN_GROUP_COUNT_PER_ACCOUNT:Ljava/lang/String;
+Landroid/provider/ContactsContract$GroupsColumns;->SUMMARY_GROUP_COUNT_PER_ACCOUNT:Ljava/lang/String;
+Landroid/provider/ContactsContract$Intents;->ACTION_GET_MULTIPLE_PHONES:Ljava/lang/String;
+Landroid/provider/ContactsContract$Intents;->ACTION_PROFILE_CHANGED:Ljava/lang/String;
+Landroid/provider/ContactsContract$Intents;->EXTRA_EXCLUDE_MIMES:Ljava/lang/String;
+Landroid/provider/ContactsContract$Intents;->EXTRA_MODE:Ljava/lang/String;
+Landroid/provider/ContactsContract$Intents;->EXTRA_PHONE_URIS:Ljava/lang/String;
+Landroid/provider/ContactsContract$Intents;->EXTRA_TARGET_RECT:Ljava/lang/String;
+Landroid/provider/ContactsContract$Intents;->MODE_LARGE:I
+Landroid/provider/ContactsContract$Intents;->MODE_MEDIUM:I
+Landroid/provider/ContactsContract$Intents;->MODE_SMALL:I
+Landroid/provider/ContactsContract$MetadataSync;-><init>()V
+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;
+Landroid/provider/ContactsContract$PinnedPositions;->UNDEMOTE_METHOD:Ljava/lang/String;
+Landroid/provider/ContactsContract$Profile;-><init>()V
+Landroid/provider/ContactsContract$ProfileSyncState;-><init>()V
+Landroid/provider/ContactsContract$ProviderStatus;-><init>()V
+Landroid/provider/ContactsContract$QuickContact;->composeQuickContactsIntent(Landroid/content/Context;Landroid/view/View;Landroid/net/Uri;I[Ljava/lang/String;)Landroid/content/Intent;
+Landroid/provider/ContactsContract$QuickContact;->EXTRA_TARGET_RECT:Ljava/lang/String;
+Landroid/provider/ContactsContract$QuickContact;->MODE_DEFAULT:I
+Landroid/provider/ContactsContract$QuickContact;->rebuildManagedQuickContactsIntent(Ljava/lang/String;JZJLandroid/content/Intent;)Landroid/content/Intent;
+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;
+Landroid/provider/ContactsContract$RawContacts$StreamItems;-><init>()V
+Landroid/provider/ContactsContract$RawContacts;-><init>()V
+Landroid/provider/ContactsContract$RawContactsEntity;-><init>()V
+Landroid/provider/ContactsContract$RawContactsEntity;->CORP_CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/ContactsContract$RawContactsEntity;->FOR_EXPORT_ONLY:Ljava/lang/String;
+Landroid/provider/ContactsContract$SearchSnippets;->SNIPPET_ARGS_PARAM_KEY:Ljava/lang/String;
+Landroid/provider/ContactsContract$Settings;-><init>()V
+Landroid/provider/ContactsContract$StatusUpdates;-><init>()V
+Landroid/provider/ContactsContract$StreamItemPhotos;-><init>()V
+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
+Landroid/provider/ContactsInternal;->maybeStartManagedQuickContact(Landroid/content/Context;Landroid/content/Intent;)Z
+Landroid/provider/ContactsInternal;->sContactsUriMatcher:Landroid/content/UriMatcher;
+Landroid/provider/ContactsInternal;->startQuickContactWithErrorToastForUser(Landroid/content/Context;Landroid/content/Intent;Landroid/os/UserHandle;)V
+Landroid/provider/DocumentsContract$Document;-><init>()V
+Landroid/provider/DocumentsContract$Document;->FLAG_PARTIAL:I
+Landroid/provider/DocumentsContract$Document;->FLAG_SUPPORTS_METADATA:I
+Landroid/provider/DocumentsContract$Path;->mPath:Ljava/util/List;
+Landroid/provider/DocumentsContract$Path;->mRootId:Ljava/lang/String;
+Landroid/provider/DocumentsContract$Root;-><init>()V
+Landroid/provider/DocumentsContract$Root;->FLAG_EMPTY:I
+Landroid/provider/DocumentsContract$Root;->FLAG_HAS_SETTINGS:I
+Landroid/provider/DocumentsContract$Root;->FLAG_REMOVABLE_SD:I
+Landroid/provider/DocumentsContract$Root;->FLAG_REMOVABLE_USB:I
+Landroid/provider/DocumentsContract;-><init>()V
+Landroid/provider/DocumentsContract;->ACTION_DOCUMENT_ROOT_SETTINGS:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->ACTION_MANAGE_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->buildDocumentUriMaybeUsingTree(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/provider/DocumentsContract;->buildHomeUri()Landroid/net/Uri;
+Landroid/provider/DocumentsContract;->copyDocument(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/provider/DocumentsContract;->createDocument(Landroid/content/ContentProviderClient;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/provider/DocumentsContract;->createWebLinkIntent(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/os/Bundle;)Landroid/content/IntentSender;
+Landroid/provider/DocumentsContract;->deleteDocument(Landroid/content/ContentProviderClient;Landroid/net/Uri;)V
+Landroid/provider/DocumentsContract;->ejectRoot(Landroid/content/ContentProviderClient;Landroid/net/Uri;)V
+Landroid/provider/DocumentsContract;->EXTERNAL_STORAGE_PROVIDER_AUTHORITY:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->EXTRA_OPTIONS:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->EXTRA_PACKAGE_NAME:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->EXTRA_PARENT_URI:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->EXTRA_RESULT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->EXTRA_SHOW_ADVANCED:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->EXTRA_TARGET_URI:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->EXTRA_URI:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->findDocumentPath(Landroid/content/ContentProviderClient;Landroid/net/Uri;)Landroid/provider/DocumentsContract$Path;
+Landroid/provider/DocumentsContract;->getDocumentMetadata(Landroid/content/ContentProviderClient;Landroid/net/Uri;)Landroid/os/Bundle;
+Landroid/provider/DocumentsContract;->getDocumentMetadata(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/os/Bundle;
+Landroid/provider/DocumentsContract;->isChildDocument(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/net/Uri;)Z
+Landroid/provider/DocumentsContract;->isContentUri(Landroid/net/Uri;)Z
+Landroid/provider/DocumentsContract;->isDocumentsProvider(Landroid/content/Context;Ljava/lang/String;)Z
+Landroid/provider/DocumentsContract;->isManageMode(Landroid/net/Uri;)Z
+Landroid/provider/DocumentsContract;->isRootUri(Landroid/content/Context;Landroid/net/Uri;)Z
+Landroid/provider/DocumentsContract;->METADATA_EXIF:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METADATA_TYPES:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_COPY_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_CREATE_WEB_LINK_INTENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_DELETE_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_EJECT_ROOT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_FIND_DOCUMENT_PATH:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_GET_DOCUMENT_METADATA:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_IS_CHILD_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_MOVE_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_REMOVE_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->METHOD_RENAME_DOCUMENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->openImageThumbnail(Ljava/io/File;)Landroid/content/res/AssetFileDescriptor;
+Landroid/provider/DocumentsContract;->PACKAGE_DOCUMENTS_UI:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->PARAM_MANAGE:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->PARAM_QUERY:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->PATH_CHILDREN:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->PATH_RECENT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->PATH_ROOT:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->PATH_SEARCH:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->removeDocument(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/net/Uri;)V
+Landroid/provider/DocumentsContract;->renameDocument(Landroid/content/ContentProviderClient;Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/provider/DocumentsContract;->rethrowIfNecessary(Landroid/content/ContentResolver;Ljava/lang/Exception;)V
+Landroid/provider/DocumentsContract;->TAG:Ljava/lang/String;
+Landroid/provider/DocumentsContract;->THUMBNAIL_BUFFER_SIZE:I
+Landroid/provider/DocumentsProvider;->attachInfoForTesting(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
+Landroid/provider/DocumentsProvider;->callUnchecked(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+Landroid/provider/DocumentsProvider;->enforceTree(Landroid/net/Uri;)V
+Landroid/provider/DocumentsProvider;->getCallingOrSelfUriPermissionModeFlags(Landroid/content/Context;Landroid/net/Uri;)I
+Landroid/provider/DocumentsProvider;->getDocumentMetadata(Ljava/lang/String;)Landroid/os/Bundle;
+Landroid/provider/DocumentsProvider;->getSortClause(Landroid/os/Bundle;)Ljava/lang/String;
+Landroid/provider/DocumentsProvider;->MATCH_CHILDREN:I
+Landroid/provider/DocumentsProvider;->MATCH_CHILDREN_TREE:I
+Landroid/provider/DocumentsProvider;->MATCH_DOCUMENT:I
+Landroid/provider/DocumentsProvider;->MATCH_DOCUMENT_TREE:I
+Landroid/provider/DocumentsProvider;->MATCH_RECENT:I
+Landroid/provider/DocumentsProvider;->MATCH_ROOT:I
+Landroid/provider/DocumentsProvider;->MATCH_ROOTS:I
+Landroid/provider/DocumentsProvider;->MATCH_SEARCH:I
+Landroid/provider/DocumentsProvider;->mAuthority:Ljava/lang/String;
+Landroid/provider/DocumentsProvider;->mimeTypeMatches(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/provider/DocumentsProvider;->mMatcher:Landroid/content/UriMatcher;
+Landroid/provider/DocumentsProvider;->openTypedAssetFileImpl(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
+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;
+Landroid/provider/Downloads$Impl;->AUTHORITY:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_ALLOW_METERED:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_ALLOW_WRITE:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_APP_DATA:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_BYPASS_RECOMMENDED_SIZE_LIMIT:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_CONTROL:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_CURRENT_BYTES:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_ERROR_MSG:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_FAILED_CONNECTIONS:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_FLAGS:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_LAST_MODIFICATION:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_LAST_UPDATESRC:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_MEDIAPROVIDER_URI:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_NO_INTEGRITY:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_OTHER_UID:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_STATUS:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_TOTAL_BYTES:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->COLUMN_USER_AGENT:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->CONTROL_PAUSED:I
+Landroid/provider/Downloads$Impl;->CONTROL_RUN:I
+Landroid/provider/Downloads$Impl;->DESTINATION_CACHE_PARTITION:I
+Landroid/provider/Downloads$Impl;->DESTINATION_CACHE_PARTITION_NOROAMING:I
+Landroid/provider/Downloads$Impl;->DESTINATION_EXTERNAL:I
+Landroid/provider/Downloads$Impl;->DESTINATION_NON_DOWNLOADMANAGER_DOWNLOAD:I
+Landroid/provider/Downloads$Impl;->DESTINATION_SYSTEMCACHE_PARTITION:I
+Landroid/provider/Downloads$Impl;->FLAG_REQUIRES_CHARGING:I
+Landroid/provider/Downloads$Impl;->FLAG_REQUIRES_DEVICE_IDLE:I
+Landroid/provider/Downloads$Impl;->isStatusClientError(I)Z
+Landroid/provider/Downloads$Impl;->isStatusInformational(I)Z
+Landroid/provider/Downloads$Impl;->isStatusServerError(I)Z
+Landroid/provider/Downloads$Impl;->LAST_UPDATESRC_DONT_NOTIFY_DOWNLOADSVC:I
+Landroid/provider/Downloads$Impl;->LAST_UPDATESRC_NOT_RELEVANT:I
+Landroid/provider/Downloads$Impl;->MIN_ARTIFICIAL_ERROR_STATUS:I
+Landroid/provider/Downloads$Impl;->PERMISSION_ACCESS:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->PERMISSION_ACCESS_ADVANCED:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->PERMISSION_ACCESS_ALL:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->PERMISSION_CACHE:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->PERMISSION_CACHE_NON_PURGEABLE:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->PERMISSION_NO_NOTIFICATION:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->PERMISSION_SEND_INTENTS:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->PUBLICLY_ACCESSIBLE_DOWNLOADS_URI_SEGMENT:Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->statusToString(I)Ljava/lang/String;
+Landroid/provider/Downloads$Impl;->STATUS_BAD_REQUEST:I
+Landroid/provider/Downloads$Impl;->STATUS_BLOCKED:I
+Landroid/provider/Downloads$Impl;->STATUS_CANCELED:I
+Landroid/provider/Downloads$Impl;->STATUS_CANNOT_RESUME:I
+Landroid/provider/Downloads$Impl;->STATUS_DEVICE_NOT_FOUND_ERROR:I
+Landroid/provider/Downloads$Impl;->STATUS_FILE_ALREADY_EXISTS_ERROR:I
+Landroid/provider/Downloads$Impl;->STATUS_FILE_ERROR:I
+Landroid/provider/Downloads$Impl;->STATUS_HTTP_DATA_ERROR:I
+Landroid/provider/Downloads$Impl;->STATUS_HTTP_EXCEPTION:I
+Landroid/provider/Downloads$Impl;->STATUS_INSUFFICIENT_SPACE_ERROR:I
+Landroid/provider/Downloads$Impl;->STATUS_LENGTH_REQUIRED:I
+Landroid/provider/Downloads$Impl;->STATUS_NOT_ACCEPTABLE:I
+Landroid/provider/Downloads$Impl;->STATUS_PAUSED_BY_APP:I
+Landroid/provider/Downloads$Impl;->STATUS_PENDING:I
+Landroid/provider/Downloads$Impl;->STATUS_PRECONDITION_FAILED:I
+Landroid/provider/Downloads$Impl;->STATUS_QUEUED_FOR_WIFI:I
+Landroid/provider/Downloads$Impl;->STATUS_RUNNING:I
+Landroid/provider/Downloads$Impl;->STATUS_SUCCESS:I
+Landroid/provider/Downloads$Impl;->STATUS_TOO_MANY_REDIRECTS:I
+Landroid/provider/Downloads$Impl;->STATUS_UNHANDLED_HTTP_CODE:I
+Landroid/provider/Downloads$Impl;->STATUS_UNHANDLED_REDIRECT:I
+Landroid/provider/Downloads$Impl;->STATUS_UNKNOWN_ERROR:I
+Landroid/provider/Downloads$Impl;->STATUS_WAITING_FOR_NETWORK:I
+Landroid/provider/Downloads$Impl;->STATUS_WAITING_TO_RETRY:I
+Landroid/provider/Downloads$Impl;->VISIBILITY_HIDDEN:I
+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
+Landroid/provider/FontRequest;->getIdentifier()Ljava/lang/String;
+Landroid/provider/FontRequest;->mCertificates:Ljava/util/List;
+Landroid/provider/FontRequest;->mIdentifier:Ljava/lang/String;
+Landroid/provider/FontRequest;->mProviderAuthority:Ljava/lang/String;
+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
+Landroid/provider/FontsContract$FontInfo;-><init>(Landroid/net/Uri;I[Landroid/graphics/fonts/FontVariationAxis;IZI)V
+Landroid/provider/FontsContract$FontInfo;->mAxes:[Landroid/graphics/fonts/FontVariationAxis;
+Landroid/provider/FontsContract$FontInfo;->mItalic:Z
+Landroid/provider/FontsContract$FontInfo;->mResultCode:I
+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
+Landroid/provider/FontsContract;->getFontFromProvider(Landroid/content/Context;Landroid/provider/FontRequest;Ljava/lang/String;Landroid/os/CancellationSignal;)[Landroid/provider/FontsContract$FontInfo;
+Landroid/provider/FontsContract;->getFontSync(Landroid/provider/FontRequest;)Landroid/graphics/Typeface;
+Landroid/provider/FontsContract;->getProvider(Landroid/content/pm/PackageManager;Landroid/provider/FontRequest;)Landroid/content/pm/ProviderInfo;
+Landroid/provider/FontsContract;->prepareFontData(Landroid/content/Context;[Landroid/provider/FontsContract$FontInfo;Landroid/os/CancellationSignal;)Ljava/util/Map;
+Landroid/provider/FontsContract;->sByteArrayComparator:Ljava/util/Comparator;
+Landroid/provider/FontsContract;->sContext:Landroid/content/Context;
+Landroid/provider/FontsContract;->setApplicationContextForResources(Landroid/content/Context;)V
+Landroid/provider/FontsContract;->sHandler:Landroid/os/Handler;
+Landroid/provider/FontsContract;->sInQueueSet:Ljava/util/Set;
+Landroid/provider/FontsContract;->sLock:Ljava/lang/Object;
+Landroid/provider/FontsContract;->sReplaceDispatcherThreadRunnable:Ljava/lang/Runnable;
+Landroid/provider/FontsContract;->sThread:Landroid/os/HandlerThread;
+Landroid/provider/FontsContract;->sTypefaceCache:Landroid/util/LruCache;
+Landroid/provider/FontsContract;->SYNC_FONT_FETCH_TIMEOUT_MS:J
+Landroid/provider/FontsContract;->TAG:Ljava/lang/String;
+Landroid/provider/FontsContract;->THREAD_RENEWAL_THRESHOLD_MS:I
+Landroid/provider/LiveFolders;-><init>()V
+Landroid/provider/MediaStore$Audio$AudioColumns;->ALBUM_ARTIST:Ljava/lang/String;
+Landroid/provider/MediaStore$Audio$AudioColumns;->COMPILATION:Ljava/lang/String;
+Landroid/provider/MediaStore$Audio$AudioColumns;->GENRE:Ljava/lang/String;
+Landroid/provider/MediaStore$Audio$AudioColumns;->TITLE_RESOURCE_URI:Ljava/lang/String;
+Landroid/provider/MediaStore$Audio$Media;->EXTERNAL_PATHS:[Ljava/lang/String;
+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
+Landroid/provider/MediaStore$InternalThumbnails;->FULL_SCREEN_KIND:I
+Landroid/provider/MediaStore$InternalThumbnails;->getMiniThumbFromFile(Landroid/database/Cursor;Landroid/net/Uri;Landroid/content/ContentResolver;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+Landroid/provider/MediaStore$InternalThumbnails;->getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;Landroid/net/Uri;Z)Landroid/graphics/Bitmap;
+Landroid/provider/MediaStore$InternalThumbnails;->MICRO_KIND:I
+Landroid/provider/MediaStore$InternalThumbnails;->MINI_KIND:I
+Landroid/provider/MediaStore$InternalThumbnails;->PROJECTION:[Ljava/lang/String;
+Landroid/provider/MediaStore$InternalThumbnails;->sThumbBuf:[B
+Landroid/provider/MediaStore$InternalThumbnails;->sThumbBufLock:Ljava/lang/Object;
+Landroid/provider/MediaStore$MediaColumns;->MEDIA_SCANNER_NEW_OBJECT_ID:Ljava/lang/String;
+Landroid/provider/MediaStore;->CONTENT_AUTHORITY_SLASH:Ljava/lang/String;
+Landroid/provider/MediaStore;->getDocumentUri(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Landroid/net/Uri;
+Landroid/provider/MediaStore;->getFilePath(Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/lang/String;
+Landroid/provider/MediaStore;->PARAM_DELETE_DATA:Ljava/lang/String;
+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;
+Landroid/provider/MetadataReader;->getMetadata(Landroid/os/Bundle;Ljava/io/InputStream;Ljava/lang/String;[Ljava/lang/String;)V
+Landroid/provider/MetadataReader;->isSupportedMimeType(Ljava/lang/String;)Z
+Landroid/provider/MetadataReader;->JPEG_MIME_TYPE:Ljava/lang/String;
+Landroid/provider/MetadataReader;->JPG_MIME_TYPE:Ljava/lang/String;
+Landroid/provider/MetadataReader;->TYPE_DOUBLE:I
+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
+Landroid/provider/OneTimeUseBuilder;->markUsed()V
+Landroid/provider/OneTimeUseBuilder;->used:Z
+Landroid/provider/SearchIndexablesContract$BaseColumns;-><init>()V
+Landroid/provider/SearchIndexablesContract$NonIndexableKey;-><init>()V
+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;
+Landroid/provider/SearchIndexablesContract$SiteMapColumns;->PARENT_CLASS:Ljava/lang/String;
+Landroid/provider/SearchIndexablesContract$SiteMapColumns;->PARENT_TITLE:Ljava/lang/String;
+Landroid/provider/SearchIndexablesContract$XmlResource;-><init>()V
+Landroid/provider/SearchIndexablesContract;->COLUMN_INDEX_RAW_PAYLOAD:I
+Landroid/provider/SearchIndexablesContract;->COLUMN_INDEX_RAW_PAYLOAD_TYPE:I
+Landroid/provider/SearchIndexablesContract;->SETTINGS:Ljava/lang/String;
+Landroid/provider/SearchIndexablesContract;->SITE_MAP_COLUMNS:[Ljava/lang/String;
+Landroid/provider/SearchIndexablesContract;->SITE_MAP_PAIRS_KEYS:Ljava/lang/String;
+Landroid/provider/SearchIndexablesContract;->SITE_MAP_PAIRS_PATH:Ljava/lang/String;
+Landroid/provider/SearchIndexablesProvider;->MATCH_NON_INDEXABLE_KEYS_CODE:I
+Landroid/provider/SearchIndexablesProvider;->MATCH_RAW_CODE:I
+Landroid/provider/SearchIndexablesProvider;->MATCH_RES_CODE:I
+Landroid/provider/SearchIndexablesProvider;->MATCH_SITE_MAP_PAIRS_CODE:I
+Landroid/provider/SearchIndexablesProvider;->mAuthority:Ljava/lang/String;
+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;
+Landroid/provider/SearchRecentSuggestions$SuggestionColumns;->DISPLAY2:Ljava/lang/String;
+Landroid/provider/SearchRecentSuggestions$SuggestionColumns;->QUERY:Ljava/lang/String;
+Landroid/provider/SearchRecentSuggestions;->LOG_TAG:Ljava/lang/String;
+Landroid/provider/SearchRecentSuggestions;->mAuthority:Ljava/lang/String;
+Landroid/provider/SearchRecentSuggestions;->MAX_HISTORY_COUNT:I
+Landroid/provider/SearchRecentSuggestions;->mContext:Landroid/content/Context;
+Landroid/provider/SearchRecentSuggestions;->mSuggestionsUri:Landroid/net/Uri;
+Landroid/provider/SearchRecentSuggestions;->mTwoLineDisplay:Z
+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;
+Landroid/provider/Settings$Bookmarks;->getLabelForFolder(Landroid/content/res/Resources;Ljava/lang/String;)Ljava/lang/CharSequence;
+Landroid/provider/Settings$Bookmarks;->getTitle(Landroid/content/Context;Landroid/database/Cursor;)Ljava/lang/CharSequence;
+Landroid/provider/Settings$Bookmarks;->ID:Ljava/lang/String;
+Landroid/provider/Settings$Bookmarks;->INTENT:Ljava/lang/String;
+Landroid/provider/Settings$Bookmarks;->ORDERING:Ljava/lang/String;
+Landroid/provider/Settings$Bookmarks;->SHORTCUT:Ljava/lang/String;
+Landroid/provider/Settings$Bookmarks;->sIntentProjection:[Ljava/lang/String;
+Landroid/provider/Settings$Bookmarks;->sShortcutProjection:[Ljava/lang/String;
+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
+Landroid/provider/Settings$GenerationTracker;->isGenerationChanged()Z
+Landroid/provider/Settings$GenerationTracker;->mArray:Landroid/util/MemoryIntArray;
+Landroid/provider/Settings$GenerationTracker;->mCurrentGeneration:I
+Landroid/provider/Settings$GenerationTracker;->mErrorHandler:Ljava/lang/Runnable;
+Landroid/provider/Settings$GenerationTracker;->mIndex:I
+Landroid/provider/Settings$GenerationTracker;->readCurrentGeneration()I
+Landroid/provider/Settings$Global;->ACTIVITY_MANAGER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ADAPTIVE_BATTERY_MANAGEMENT_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ADD_USERS_WHEN_LOCKED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->AIRPLANE_MODE_TOGGLEABLE_RADIOS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ALARM_MANAGER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ALLOW_USER_SWITCHING_WHEN_SYSTEM_USER_LOCKED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ALWAYS_ON_DISPLAY_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ANOMALY_CONFIG:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ANOMALY_CONFIG_VERSION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ANOMALY_DETECTION_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->APN_DB_UPDATE_CONTENT_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->APN_DB_UPDATE_METADATA_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->APP_AUTO_RESTRICTION_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->APP_AUTO_RESTRICTION_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->APP_IDLE_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->APP_OPS_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->APP_STANDBY_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ASSISTED_GPS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->AUDIO_SAFE_VOLUME_STATE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->AUTO_TIME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->AUTO_TIME_ZONE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->BACKUP_AGENT_TIMEOUT_PARAMETERS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BATTERY_DISCHARGE_DURATION_THRESHOLD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BATTERY_DISCHARGE_THRESHOLD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BATTERY_SAVER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BATTERY_SAVER_DEVICE_SPECIFIC_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BATTERY_STATS_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BATTERY_TIP_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLE_SCAN_ALWAYS_AVAILABLE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLE_SCAN_BACKGROUND_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLE_SCAN_BALANCED_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLE_SCAN_BALANCED_WINDOW_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLE_SCAN_LOW_LATENCY_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLE_SCAN_LOW_LATENCY_WINDOW_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLE_SCAN_LOW_POWER_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLE_SCAN_LOW_POWER_WINDOW_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLOCKED_SLICES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLOCKING_HELPER_DISMISS_TO_VIEW_RATIO_LIMIT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLOCKING_HELPER_STREAK_LIMIT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_A2DP_OPTIONAL_CODECS_ENABLED_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_A2DP_SINK_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_A2DP_SRC_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_A2DP_SUPPORTS_OPTIONAL_CODECS_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_CLASS_OF_DEVICE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_DISABLED_PROFILES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_HEADSET_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_HEARING_AID_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_INPUT_DEVICE_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_INTEROPERABILITY_LIST:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_MAP_CLIENT_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_MAP_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_ON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->BLUETOOTH_PAN_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_PBAP_CLIENT_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BLUETOOTH_SAP_PRIORITY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BUGREPORT_IN_POWER_MENU:Ljava/lang/String;
+Landroid/provider/Settings$Global;->BUGREPORT_IN_POWER_MENU_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->CALL_AUTO_RETRY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CALL_AUTO_RETRY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_DETECTION_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_FALLBACK_PROBE_SPECS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_FALLBACK_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_HTTPS_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_HTTP_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_MODE_AVOID:I
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_MODE_IGNORE:I
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_MODE_PROMPT:I
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_OTHER_FALLBACK_URLS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_SERVER:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_USER_AGENT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAPTIVE_PORTAL_USE_HTTPS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAR_DOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CAR_UNDOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CDMA_CELL_BROADCAST_SMS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CDMA_ROAMING_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CDMA_SUBSCRIPTION_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CELL_ON:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CERT_PIN_UPDATE_CONTENT_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CERT_PIN_UPDATE_METADATA_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CHAINED_BATTERY_ATTRIBUTION_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CHARGING_SOUNDS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CHARGING_SOUNDS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->CHARGING_STARTED_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CHARGING_VIBRATION_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CHARGING_VIBRATION_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->clearProviderForTest()V
+Landroid/provider/Settings$Global;->COMPATIBILITY_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CONNECTIVITY_CHANGE_DELAY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CONNECTIVITY_METRICS_BUFFER_SIZE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CONNECTIVITY_SAMPLING_INTERVAL_IN_SECONDS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CONTACTS_DATABASE_WAL_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->CPU_SCALING_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DATABASE_CREATION_BUILDID:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DATABASE_DOWNGRADE_REASON:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DATA_ACTIVITY_TIMEOUT_MOBILE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DATA_ACTIVITY_TIMEOUT_WIFI:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEBUG_VIEW_ATTRIBUTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEFAULT_DNS_SERVER:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEFAULT_INSTALL_LOCATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEFAULT_RESTRICT_BACKGROUND_DATA:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DESK_DOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DESK_UNDOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEVELOPMENT_FORCE_RESIZABLE_ACTIVITIES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEVELOPMENT_FORCE_RTL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEVICE_DEMO_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEVICE_IDLE_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEVICE_POLICY_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DEVICE_PROVISIONING_MOBILE_DATA_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DISK_FREE_CHANGE_REPORTING_THRESHOLD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DISPLAY_PANEL_LPM:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DISPLAY_SCALING_FORCE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DISPLAY_SIZE_FORCED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DNS_RESOLVER_MAX_SAMPLES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DNS_RESOLVER_MIN_SAMPLES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DNS_RESOLVER_SAMPLE_VALIDITY_SECONDS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DNS_RESOLVER_SUCCESS_THRESHOLD_PERCENT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DOCK_AUDIO_MEDIA_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DOCK_AUDIO_MEDIA_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->DOCK_SOUNDS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DOCK_SOUNDS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->DOCK_SOUNDS_ENABLED_WHEN_ACCESSIBILITY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DOWNLOAD_MAX_BYTES_OVER_MOBILE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DROPBOX_AGE_SECONDS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DROPBOX_MAX_FILES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DROPBOX_QUOTA_KB:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DROPBOX_QUOTA_PERCENT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DROPBOX_RESERVE_PERCENT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->DROPBOX_TAG_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->EMERGENCY_AFFORDANCE_NEEDED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->EMERGENCY_TONE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->EMERGENCY_TONE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->EMULATE_DISPLAY_CUTOUT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->EMULATE_DISPLAY_CUTOUT_OFF:I
+Landroid/provider/Settings$Global;->EMULATE_DISPLAY_CUTOUT_ON:I
+Landroid/provider/Settings$Global;->ENABLE_CACHE_QUOTA_CALCULATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENABLE_CELLULAR_ON_BOOT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENABLE_DELETION_HELPER_NO_THRESHOLD_TOGGLE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENABLE_DISKSTATS_LOGGING:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENABLE_EPHEMERAL_FEATURE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENABLE_GNSS_RAW_MEAS_FULL_TRACKING:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENABLE_GPU_DEBUG_LAYERS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENCODED_SURROUND_OUTPUT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENCODED_SURROUND_OUTPUT_ALWAYS:I
+Landroid/provider/Settings$Global;->ENCODED_SURROUND_OUTPUT_AUTO:I
+Landroid/provider/Settings$Global;->ENCODED_SURROUND_OUTPUT_ENABLED_FORMATS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ENCODED_SURROUND_OUTPUT_ENABLED_FORMATS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->ENCODED_SURROUND_OUTPUT_MANUAL:I
+Landroid/provider/Settings$Global;->ENCODED_SURROUND_OUTPUT_NEVER:I
+Landroid/provider/Settings$Global;->ENCODED_SURROUND_OUTPUT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->ENHANCED_4G_MODE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->EPHEMERAL_COOKIE_MAX_SIZE_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ERROR_LOGCAT_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->EUICC_FACTORY_RESET_TIMEOUT_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->EUICC_SUPPORTED_COUNTRIES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->FANCY_IME_ANIMATIONS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->FORCED_APP_STANDBY_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->FORCE_ALLOW_ON_EXTERNAL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->FPS_DEVISOR:Ljava/lang/String;
+Landroid/provider/Settings$Global;->FSTRIM_MANDATORY_INTERVAL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothA2dpOptionalCodecsEnabledKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothA2dpSinkPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothA2dpSrcPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothA2dpSupportsOptionalCodecsKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothHeadsetPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothHearingAidPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothHidHostPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothMapClientPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothMapPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothPanPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothPbapClientPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getBluetoothSapPriorityKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/provider/Settings$Global;->getMovedToSecureSettings(Ljava/util/Set;)V
+Landroid/provider/Settings$Global;->GLOBAL_HTTP_PROXY_EXCLUSION_LIST:Ljava/lang/String;
+Landroid/provider/Settings$Global;->GLOBAL_HTTP_PROXY_HOST:Ljava/lang/String;
+Landroid/provider/Settings$Global;->GLOBAL_HTTP_PROXY_PAC:Ljava/lang/String;
+Landroid/provider/Settings$Global;->GLOBAL_HTTP_PROXY_PORT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->GNSS_HAL_LOCATION_REQUEST_DURATION_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->GNSS_SATELLITE_BLACKLIST:Ljava/lang/String;
+Landroid/provider/Settings$Global;->GPRS_REGISTER_CHECK_PERIOD_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->GPU_DEBUG_APP:Ljava/lang/String;
+Landroid/provider/Settings$Global;->GPU_DEBUG_LAYERS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HDMI_CONTROL_AUTO_WAKEUP_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HDMI_CONTROL_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HDMI_SYSTEM_AUDIO_CONTROL_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HIDDEN_API_ACCESS_LOG_SAMPLING_RATE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HIDDEN_API_POLICY_PRE_P_APPS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HIDDEN_API_POLICY_P_APPS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->HIDE_ERROR_DIALOGS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->INET_CONDITION_DEBOUNCE_DOWN_DELAY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->INET_CONDITION_DEBOUNCE_UP_DELAY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->INSTALLED_INSTANT_APP_MAX_CACHE_PERIOD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->INSTALLED_INSTANT_APP_MIN_CACHE_PERIOD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->INSTANT_APP_DEXOPT_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->INSTANT_APP_SETTINGS:Ljava/util/Set;
+Landroid/provider/Settings$Global;->INTENT_FIREWALL_UPDATE_CONTENT_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->INTENT_FIREWALL_UPDATE_METADATA_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->isValidZenMode(I)Z
+Landroid/provider/Settings$Global;->JOB_SCHEDULER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->KEEP_PROFILE_IN_BACKGROUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LANG_ID_UPDATE_CONTENT_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LANG_ID_UPDATE_METADATA_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LEGACY_RESTORE_SETTINGS:[Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOCATION_BACKGROUND_THROTTLE_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOCATION_BACKGROUND_THROTTLE_PACKAGE_WHITELIST:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOCATION_BACKGROUND_THROTTLE_PROXIMITY_ALERT_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOW_BATTERY_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOW_BATTERY_SOUND_TIMEOUT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOW_POWER_MODE_SUGGESTION_PARAMS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOW_POWER_MODE_TRIGGER_LEVEL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOW_POWER_MODE_TRIGGER_LEVEL_MAX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->LOW_POWER_MODE_TRIGGER_LEVEL_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->LTE_SERVICE_FORCED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MAX_NOTIFICATION_ENQUEUE_RATE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MAX_SOUND_TRIGGER_DETECTION_SERVICE_OPS_PER_DAY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MDC_INITIAL_MAX_RETRY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MHL_INPUT_SWITCHING_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MHL_POWER_CHARGE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MOBILE_DATA_ALWAYS_ON:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MULTI_SIM_DATA_CALL_SUBSCRIPTION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MULTI_SIM_SMS_PROMPT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MULTI_SIM_SMS_SUBSCRIPTION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->MULTI_SIM_VOICE_CALL_SUBSCRIPTION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETPOLICY_OVERRIDE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETPOLICY_QUOTA_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETPOLICY_QUOTA_FRAC_JOBS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETPOLICY_QUOTA_FRAC_MULTIPATH:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETPOLICY_QUOTA_LIMITED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETPOLICY_QUOTA_UNLIMITED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_AUGMENT_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_DEV_BUCKET_DURATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_DEV_DELETE_AGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_DEV_PERSIST_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_DEV_ROTATE_AGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_GLOBAL_ALERT_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_POLL_INTERVAL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_SAMPLE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_TIME_CACHE_MAX_AGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_UID_BUCKET_DURATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_UID_DELETE_AGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_UID_PERSIST_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_UID_ROTATE_AGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_UID_TAG_BUCKET_DURATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_UID_TAG_DELETE_AGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_UID_TAG_PERSIST_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETSTATS_UID_TAG_ROTATE_AGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_ACCESS_TIMEOUT_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_AVOID_BAD_WIFI:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_DEFAULT_DAILY_MULTIPATH_QUOTA_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_METERED_MULTIPATH_PREFERENCE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_RECOMMENDATIONS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_RECOMMENDATIONS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->NETWORK_RECOMMENDATIONS_PACKAGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_RECOMMENDATION_REQUEST_TIMEOUT_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_SCORING_PROVISIONED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_SCORING_UI_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_SWITCH_NOTIFICATION_DAILY_LIMIT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_SWITCH_NOTIFICATION_RATE_LIMIT_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_WATCHLIST_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NETWORK_WATCHLIST_LAST_REPORT_TIME:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NEW_CONTACT_AGGREGATOR:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NIGHT_DISPLAY_FORCED_AUTO_MODE_AVAILABLE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NITZ_UPDATE_DIFF:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NITZ_UPDATE_SPACING:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NOTIFICATION_SNOOZE_OPTIONS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NSD_ON:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NTP_SERVER:Ljava/lang/String;
+Landroid/provider/Settings$Global;->NTP_TIMEOUT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->OVERLAY_DISPLAY_DEVICES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PACKAGE_VERIFIER_DEFAULT_RESPONSE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PACKAGE_VERIFIER_INCLUDE_ADB:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PACKAGE_VERIFIER_SETTING_VISIBLE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PACKAGE_VERIFIER_TIMEOUT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PAC_CHANGE_DELAY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PDP_WATCHDOG_ERROR_POLL_COUNT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PDP_WATCHDOG_ERROR_POLL_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PDP_WATCHDOG_LONG_POLL_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PDP_WATCHDOG_MAX_PDP_RESET_FAIL_COUNT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PDP_WATCHDOG_POLL_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PDP_WATCHDOG_TRIGGER_PACKET_COUNT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->POLICY_CONTROL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->POWER_MANAGER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->POWER_SOUNDS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->POWER_SOUNDS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->PRIVATE_DNS_DEFAULT_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PRIVATE_DNS_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PRIVATE_DNS_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->PRIVATE_DNS_SPECIFIER:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PRIVATE_DNS_SPECIFIER_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->PRIV_APP_OOB_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PRIV_APP_OOB_LIST:Ljava/lang/String;
+Landroid/provider/Settings$Global;->PROVISIONING_APN_ALARM_DELAY_IN_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Z
+Landroid/provider/Settings$Global;->RADIO_WIMAX:Ljava/lang/String;
+Landroid/provider/Settings$Global;->READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->RECOMMENDED_NETWORK_EVALUATOR_CACHE_EXPIRY_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->resetToDefaultsAsUser(Landroid/content/ContentResolver;Ljava/lang/String;II)V
+Landroid/provider/Settings$Global;->SAFE_BOOT_DISALLOWED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SELINUX_STATUS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SELINUX_UPDATE_CONTENT_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SELINUX_UPDATE_METADATA_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SEND_ACTION_APP_ERROR:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SETTINGS_TO_BACKUP:[Ljava/lang/String;
+Landroid/provider/Settings$Global;->SETUP_PREPAID_DATA_SERVICE_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SETUP_PREPAID_DETECTION_REDIR_HOST:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SETUP_PREPAID_DETECTION_TARGET_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SET_GLOBAL_HTTP_PROXY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SET_INSTALL_LOCATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SHORTCUT_MANAGER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SHOW_FIRST_CRASH_DIALOG:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SHOW_MUTE_IN_CRASH_DIALOG:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SHOW_NOTIFICATION_CHANNEL_WARNINGS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SHOW_RESTART_IN_CRASH_DIALOG:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SHOW_TEMPERATURE_WARNING:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SHOW_ZEN_SETTINGS_SUGGESTION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SHOW_ZEN_UPGRADE_NOTIFICATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMART_REPLIES_IN_NOTIFICATIONS_FLAGS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMART_SELECTION_UPDATE_CONTENT_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMART_SELECTION_UPDATE_METADATA_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMS_OUTGOING_CHECK_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMS_OUTGOING_CHECK_MAX_COUNT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMS_SHORT_CODES_UPDATE_CONTENT_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMS_SHORT_CODES_UPDATE_METADATA_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMS_SHORT_CODE_CONFIRMATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SMS_SHORT_CODE_RULE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SOFT_AP_TIMEOUT_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SOFT_AP_TIMEOUT_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->SOUND_TRIGGER_DETECTION_SERVICE_OP_TIMEOUT:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SQLITE_COMPATIBILITY_WAL_FLAGS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->STAY_ON_WHILE_PLUGGED_IN_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->STORAGE_BENCHMARK_INTERVAL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->STORAGE_SETTINGS_CLOBBER_THRESHOLD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SWAP_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYNC_MANAGER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYNC_MAX_RETRY_DELAY_IN_SECONDS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_FREE_STORAGE_LOG_INTERVAL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_STORAGE_CACHE_MAX_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_STORAGE_CACHE_PERCENTAGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_STORAGE_FULL_THRESHOLD_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_STORAGE_THRESHOLD_MAX_BYTES:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_STORAGE_THRESHOLD_PERCENTAGE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_TRACED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_UIDCPUPOWER:Ljava/lang/String;
+Landroid/provider/Settings$Global;->SYS_VDSO:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TCP_DEFAULT_INIT_RWND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TETHER_DUN_APN:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TETHER_DUN_REQUIRED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TETHER_OFFLOAD_DISABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TETHER_SUPPORTED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TEXT_CLASSIFIER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TIME_ONLY_MODE_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TRANSIENT_SETTINGS:[Ljava/lang/String;
+Landroid/provider/Settings$Global;->TRUSTED_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TZINFO_UPDATE_CONTENT_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->TZINFO_UPDATE_METADATA_URL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->UNGAZE_SLEEP_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->UNINSTALLED_INSTANT_APP_MAX_CACHE_PERIOD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->UNINSTALLED_INSTANT_APP_MIN_CACHE_PERIOD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->UNLOCK_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->UNUSED_STATIC_SHARED_LIB_MIN_CACHE_PERIOD:Ljava/lang/String;
+Landroid/provider/Settings$Global;->USB_MASS_STORAGE_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->USER_ABSENT_RADIOS_OFF_FOR_SMALL_BATTERY_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->USE_OPEN_WIFI_PACKAGE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->VALIDATORS:Ljava/util/Map;
+Landroid/provider/Settings$Global;->VT_IMS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WARNING_TEMPERATURE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WEBVIEW_DATA_REDUCTION_PROXY_KEY:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WEBVIEW_FALLBACK_LOGIC_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WFC_IMS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WFC_IMS_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WFC_IMS_ROAMING_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WFC_IMS_ROAMING_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_BOUNCE_DELAY_OVERRIDE_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_CARRIER_NETWORKS_AVAILABLE_NOTIFICATION_ON:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_CARRIER_NETWORKS_AVAILABLE_NOTIFICATION_ON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_COUNTRY_CODE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_DISPLAY_CERTIFICATION_ON:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_DISPLAY_ON:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_DISPLAY_WPS_CONFIG:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_ENHANCED_AUTO_JOIN:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_EPHEMERAL_OUT_OF_RANGE_TIMEOUT_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_FRAMEWORK_SCAN_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_FREQUENCY_BAND:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_IDLE_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->WIFI_NETWORK_SHOW_RSSI:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_NUM_OPEN_NETWORKS_KEPT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->WIFI_ON_WHEN_PROXY_DISCONNECTED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_P2P_DEVICE_NAME:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_REENABLE_DELAY_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_RTT_BACKGROUND_EXEC_GAP_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_SCAN_ALWAYS_AVAILABLE:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_SCAN_INTERVAL_WHEN_P2P_CONNECTED_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_SCORE_PARAMS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_SUPPLICANT_SCAN_INTERVAL_MS:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_SUSPEND_OPTIMIZATIONS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_VERBOSE_LOGGING_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WIFI_WAKEUP_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON:Ljava/lang/String;
+Landroid/provider/Settings$Global;->WTF_IS_FATAL:Ljava/lang/String;
+Landroid/provider/Settings$Global;->zenModeToString(I)Ljava/lang/String;
+Landroid/provider/Settings$Global;->ZEN_DURATION:Ljava/lang/String;
+Landroid/provider/Settings$Global;->ZEN_DURATION_FOREVER:I
+Landroid/provider/Settings$Global;->ZEN_DURATION_PROMPT:I
+Landroid/provider/Settings$Global;->ZEN_DURATION_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Global;->ZEN_MODE_RINGER_LEVEL:Ljava/lang/String;
+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
+Landroid/provider/Settings$NameValueCache;->mCallGetCommand:Ljava/lang/String;
+Landroid/provider/Settings$NameValueCache;->mCallSetCommand:Ljava/lang/String;
+Landroid/provider/Settings$NameValueCache;->mGenerationTracker:Landroid/provider/Settings$GenerationTracker;
+Landroid/provider/Settings$NameValueCache;->mUri:Landroid/net/Uri;
+Landroid/provider/Settings$NameValueCache;->mValues:Ljava/util/HashMap;
+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;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_BUTTON_TARGET_COMPONENT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_BUTTON_TARGET_COMPONENT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_BACKGROUND_COLOR:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_BACKGROUND_COLOR_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_EDGE_COLOR:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_EDGE_COLOR_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_EDGE_TYPE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_EDGE_TYPE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_FONT_SCALE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_FONT_SCALE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_FOREGROUND_COLOR:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_FOREGROUND_COLOR_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_LOCALE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_LOCALE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_PRESET:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_PRESET_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_TYPEFACE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_WINDOW_COLOR:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_CAPTIONING_WINDOW_COLOR_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_DALTONIZER_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_INVERSION_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_MAGNIFICATION_AUTO_UPDATE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_LARGE_POINTER_ICON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SHORTCUT_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SHORTCUT_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SHORTCUT_TARGET_SERVICE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SHORTCUT_TARGET_SERVICE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SOFT_KEYBOARD_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ACCESSIBILITY_SPEAK_PASSWORD_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ALLOW_MOCK_LOCATION_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ALWAYS_ON_VPN_APP:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ALWAYS_ON_VPN_LOCKDOWN:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSIST_DISCLOSURE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_SENSITIVITY:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_SENSITIVITY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_SETUP_COMPLETE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_SETUP_COMPLETE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_SILENCE_ALERTS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_SILENCE_ALERTS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_WAKE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSIST_GESTURE_WAKE_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ASSIST_SCREENSHOT_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ASSIST_STRUCTURE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->AUTOFILL_SERVICE_SEARCH_URI:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->AUTOFILL_SERVICE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->AUTOMATIC_STORAGE_MANAGER_BYTES_CLEARED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->AUTOMATIC_STORAGE_MANAGER_DAYS_TO_RETAIN:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->AUTOMATIC_STORAGE_MANAGER_DAYS_TO_RETAIN_DEFAULT:I
+Landroid/provider/Settings$Secure;->AUTOMATIC_STORAGE_MANAGER_DAYS_TO_RETAIN_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->AUTOMATIC_STORAGE_MANAGER_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->AUTOMATIC_STORAGE_MANAGER_LAST_RUN:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->AUTOMATIC_STORAGE_MANAGER_TURNED_OFF_BY_POLICY:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BACKUP_LOCAL_TRANSPORT_PARAMETERS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BACKUP_MANAGER_CONSTANTS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BLUETOOTH_ON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->BLUETOOTH_ON_WHILE_DRIVING:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BUGREPORT_IN_POWER_MENU:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->BUGREPORT_IN_POWER_MENU_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->CAMERA_GESTURE_DISABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->CAMERA_GESTURE_DISABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->CAMERA_LIFT_TRIGGER_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->CAMERA_LIFT_TRIGGER_ENABLED_DEFAULT:I
+Landroid/provider/Settings$Secure;->CARRIER_APPS_HANDLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->clearProviderForTest()V
+Landroid/provider/Settings$Secure;->CLONE_TO_MANAGED_PROFILE:Ljava/util/Set;
+Landroid/provider/Settings$Secure;->CMAS_ADDITIONAL_BROADCAST_PKG:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->COMPLETED_CATEGORY_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->CONNECTIVITY_RELEASE_PENDING_INTENT_DELAY_MS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DEVICE_PAIRED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DISABLED_SYSTEM_INPUT_METHODS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DISPLAY_DENSITY_FORCED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DOUBLE_TAP_TO_WAKE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DOUBLE_TAP_TO_WAKE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->DOZE_ALWAYS_ON:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DOZE_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->DOZE_PULSE_ON_DOUBLE_TAP:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DOZE_PULSE_ON_DOUBLE_TAP_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->DOZE_PULSE_ON_LONG_PRESS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DOZE_PULSE_ON_PICK_UP:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->DOZE_PULSE_ON_PICK_UP_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->EMERGENCY_ASSISTANCE_APPLICATION:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ENABLED_ACCESSIBILITY_SERVICES_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ENABLED_NOTIFICATION_ASSISTANT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ENABLED_NOTIFICATION_ASSISTANT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ENABLED_NOTIFICATION_LISTENERS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ENABLED_VR_LISTENERS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ENABLED_VR_LISTENERS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->ENHANCED_VOICE_PRIVACY_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->ENHANCED_VOICE_PRIVACY_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->getCloneToManagedProfileSettings(Ljava/util/Set;)V
+Landroid/provider/Settings$Secure;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F
+Landroid/provider/Settings$Secure;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)F
+Landroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I
+Landroid/provider/Settings$Secure;->getLocationModeForUser(Landroid/content/ContentResolver;I)I
+Landroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)J
+Landroid/provider/Settings$Secure;->getMovedToGlobalSettings(Ljava/util/Set;)V
+Landroid/provider/Settings$Secure;->HUSH_GESTURE_USED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->HUSH_GESTURE_USED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->INCALL_BACK_BUTTON_BEHAVIOR:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->INCALL_BACK_BUTTON_BEHAVIOR_DEFAULT:I
+Landroid/provider/Settings$Secure;->INCALL_BACK_BUTTON_BEHAVIOR_HANGUP:I
+Landroid/provider/Settings$Secure;->INCALL_BACK_BUTTON_BEHAVIOR_NONE:I
+Landroid/provider/Settings$Secure;->INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT:I
+Landroid/provider/Settings$Secure;->INCALL_POWER_BUTTON_BEHAVIOR_HANGUP:I
+Landroid/provider/Settings$Secure;->INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF:I
+Landroid/provider/Settings$Secure;->INCALL_POWER_BUTTON_BEHAVIOR_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->INPUT_METHODS_SUBTYPE_HISTORY:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->INSTANT_APP_SETTINGS:Ljava/util/Set;
+Landroid/provider/Settings$Secure;->isLocationProviderEnabledForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
+Landroid/provider/Settings$Secure;->KEYGUARD_SLICE_URI:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LAST_SETUP_SHOWN:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LEGACY_RESTORE_SETTINGS:[Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCATION_CHANGER:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCATION_CHANGER_QUICK_SETTINGS:I
+Landroid/provider/Settings$Secure;->LOCATION_CHANGER_SYSTEM_SETTINGS:I
+Landroid/provider/Settings$Secure;->LOCATION_CHANGER_UNKNOWN:I
+Landroid/provider/Settings$Secure;->LOCKDOWN_IN_POWER_MENU:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCKDOWN_IN_POWER_MENU_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->LOCK_BIOMETRIC_WEAK_FLAGS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_ALLOW_REMOTE_INPUT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_APPWIDGET_IDS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_FALLBACK_APPWIDGET_ID:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_OWNER_INFO:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_SCREEN_STICKY_APPWIDGET:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOCK_TO_APP_EXIT_LOCKED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LONG_PRESS_TIMEOUT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->LOW_POWER_MANUAL_ACTIVATION_COUNT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->LOW_POWER_WARNING_ACKNOWLEDGED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->MANAGED_PROFILE_CONTACT_REMOTE_SEARCH:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->MANUAL_RINGER_TOGGLE_COUNT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->MANUAL_RINGER_TOGGLE_COUNT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->MOUNT_PLAY_NOTIFICATION_SND:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->MOUNT_PLAY_NOTIFICATION_SND_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->MOUNT_UMS_AUTOSTART:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->MOUNT_UMS_AUTOSTART_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->MOUNT_UMS_NOTIFY_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->MOUNT_UMS_NOTIFY_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->MOUNT_UMS_PROMPT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->MOUNT_UMS_PROMPT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->MULTI_PRESS_TIMEOUT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NFC_PAYMENT_DEFAULT_COMPONENT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->NFC_PAYMENT_FOREGROUND:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_ACTIVATED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_AUTO_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_AUTO_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_COLOR_TEMPERATURE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_COLOR_TEMPERATURE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_CUSTOM_END_TIME:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_CUSTOM_END_TIME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_CUSTOM_START_TIME:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_CUSTOM_START_TIME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->NIGHT_DISPLAY_LAST_ACTIVATED_TIME:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NOTIFICATION_BADGING:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->NOTIFICATION_BADGING_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->NUM_ROTATION_SUGGESTIONS_ACCEPTED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->PACKAGES_TO_CLEAR_DATA_BEFORE_FULL_RESTORE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->PACKAGE_VERIFIER_STATE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->PAYMENT_SERVICE_SEARCH_URI:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->PREFERRED_TTY_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->PREFERRED_TTY_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->PRINT_SERVICE_SEARCH_URI:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->putFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)Z
+Landroid/provider/Settings$Secure;->QS_AUTO_ADDED_TILES:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->QS_AUTO_ADDED_TILES_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->QS_TILES:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->QS_TILES_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->resetToDefaultsAsUser(Landroid/content/ContentResolver;Ljava/lang/String;II)V
+Landroid/provider/Settings$Secure;->RTT_CALLING_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SCREENSAVER_ACTIVATE_ON_DOCK:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SCREENSAVER_ACTIVATE_ON_DOCK_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SCREENSAVER_ACTIVATE_ON_SLEEP:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SCREENSAVER_ACTIVATE_ON_SLEEP_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SCREENSAVER_COMPONENTS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SCREENSAVER_COMPONENTS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SCREENSAVER_DEFAULT_COMPONENT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SCREENSAVER_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SCREENSAVER_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SEARCH_GLOBAL_SEARCH_ACTIVITY:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_MAX_RESULTS_PER_SOURCE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_MAX_RESULTS_TO_DISPLAY:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_MAX_SHORTCUTS_RETURNED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_MAX_SOURCE_EVENT_AGE_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_MAX_STAT_AGE_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_MIN_CLICKS_FOR_SOURCE_RANKING:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_MIN_IMPRESSIONS_FOR_SOURCE_RANKING:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_NUM_PROMOTED_SOURCES:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_PER_SOURCE_CONCURRENT_QUERY_LIMIT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_PREFILL_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_PROMOTED_SOURCE_DEADLINE_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_QUERY_THREAD_CORE_POOL_SIZE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_QUERY_THREAD_MAX_POOL_SIZE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_SHORTCUT_REFRESH_CORE_POOL_SIZE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_SHORTCUT_REFRESH_MAX_POOL_SIZE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_SOURCE_TIMEOUT_MILLIS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_THREAD_KEEPALIVE_SECONDS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SEARCH_WEB_RESULTS_OVERRIDE_LIMIT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SELECTED_SPELL_CHECKER_SUBTYPE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SELECTED_SPELL_CHECKER_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->setLocationModeForUser(Landroid/content/ContentResolver;II)Z
+Landroid/provider/Settings$Secure;->setLocationProviderEnabledForUser(Landroid/content/ContentResolver;Ljava/lang/String;ZI)Z
+Landroid/provider/Settings$Secure;->SHOW_FIRST_CRASH_DIALOG_DEV_OPTION:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SHOW_FIRST_CRASH_DIALOG_DEV_OPTION_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SHOW_IME_WITH_HARD_KEYBOARD:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SHOW_IME_WITH_HARD_KEYBOARD_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SHOW_MODE_AUTO:I
+Landroid/provider/Settings$Secure;->SHOW_MODE_HIDDEN:I
+Landroid/provider/Settings$Secure;->SHOW_NOTE_ABOUT_NOTIFICATION_HIDING:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SHOW_ROTATION_SUGGESTIONS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SHOW_ROTATION_SUGGESTIONS_DEFAULT:I
+Landroid/provider/Settings$Secure;->SHOW_ROTATION_SUGGESTIONS_DISABLED:I
+Landroid/provider/Settings$Secure;->SHOW_ROTATION_SUGGESTIONS_ENABLED:I
+Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
+Landroid/provider/Settings$Secure;->SLEEP_TIMEOUT:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SLEEP_TIMEOUT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
+Landroid/provider/Settings$Secure;->SPELL_CHECKER_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SPELL_CHECKER_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SUPPRESS_AUTO_BATTERY_SAVER_SUGGESTION:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SWIPE_UP_TO_SWITCH_APPS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SWIPE_UP_TO_SWITCH_APPS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SYNC_PARENT_SOUNDS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->SYSTEM_NAVIGATION_KEYS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->SYSTEM_NAVIGATION_KEYS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->THEME_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->THEME_MODE_DARK:I
+Landroid/provider/Settings$Secure;->THEME_MODE_LIGHT:I
+Landroid/provider/Settings$Secure;->THEME_MODE_WALLPAPER:I
+Landroid/provider/Settings$Secure;->TOUCH_EXPLORATION_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->TRUST_AGENTS_INITIALIZED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->TTS_DEFAULT_LOCALE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->TTS_DEFAULT_LOCALE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->TTS_DEFAULT_PITCH_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->TTS_DEFAULT_RATE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->TTS_DEFAULT_SYNTH_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->TTS_ENABLED_PLUGINS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->TTY_MODE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->TTY_MODE_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->TV_INPUT_CUSTOM_LABELS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->TV_INPUT_HIDDEN_INPUTS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->TV_USER_SETUP_COMPLETE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->UI_NIGHT_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->UNKNOWN_SOURCES_DEFAULT_REVERSED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->UNSAFE_VOLUME_MUSIC_ACTIVE_MS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->USB_AUDIO_AUTOMATIC_ROUTING_DISABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->USB_MASS_STORAGE_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->USER_SETUP_PERSONALIZATION_STATE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->VALIDATORS:Ljava/util/Map;
+Landroid/provider/Settings$Secure;->VOLUME_HUSH_GESTURE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->VOLUME_HUSH_GESTURE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->VOLUME_HUSH_MUTE:I
+Landroid/provider/Settings$Secure;->VOLUME_HUSH_OFF:I
+Landroid/provider/Settings$Secure;->VOLUME_HUSH_VIBRATE:I
+Landroid/provider/Settings$Secure;->VR_DISPLAY_MODE:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->VR_DISPLAY_MODE_LOW_PERSISTENCE:I
+Landroid/provider/Settings$Secure;->VR_DISPLAY_MODE_OFF:I
+Landroid/provider/Settings$Secure;->VR_DISPLAY_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->WAKE_GESTURE_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->WAKE_GESTURE_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->WIFI_IDLE_MS:Ljava/lang/String;
+Landroid/provider/Settings$Secure;->WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$Secure;->WIFI_NUM_OPEN_NETWORKS_KEPT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->ACCELEROMETER_ROTATION_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->adjustConfigurationForUser(Landroid/content/ContentResolver;Landroid/content/res/Configuration;IZ)V
+Landroid/provider/Settings$System;->ADVANCED_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings$System;->ADVANCED_SETTINGS_DEFAULT:I
+Landroid/provider/Settings$System;->ADVANCED_SETTINGS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->ALARM_ALERT_CACHE:Ljava/lang/String;
+Landroid/provider/Settings$System;->ALARM_ALERT_CACHE_URI:Landroid/net/Uri;
+Landroid/provider/Settings$System;->ALARM_ALERT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->AUTO_TIME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->AUTO_TIME_ZONE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->BLUETOOTH_DISCOVERABILITY_TIMEOUT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->BLUETOOTH_DISCOVERABILITY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->BLUETOOTH_ON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->clearConfiguration(Landroid/content/res/Configuration;)V
+Landroid/provider/Settings$System;->clearProviderForTest()V
+Landroid/provider/Settings$System;->CLONE_FROM_PARENT_ON_VALUE:Ljava/util/Map;
+Landroid/provider/Settings$System;->DATE_FORMAT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->DEFAULT_FONT_SCALE:F
+Landroid/provider/Settings$System;->DIM_SCREEN_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->DISPLAY_COLOR_MODE:Ljava/lang/String;
+Landroid/provider/Settings$System;->DISPLAY_COLOR_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->DOCK_SOUNDS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->DTMF_TONE_TYPE_WHEN_DIALING_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->DTMF_TONE_WHEN_DIALING_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->EGG_MODE:Ljava/lang/String;
+Landroid/provider/Settings$System;->EGG_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->END_BUTTON_BEHAVIOR_DEFAULT:I
+Landroid/provider/Settings$System;->END_BUTTON_BEHAVIOR_HOME:I
+Landroid/provider/Settings$System;->END_BUTTON_BEHAVIOR_SLEEP:I
+Landroid/provider/Settings$System;->END_BUTTON_BEHAVIOR_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->FONT_SCALE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->getCloneFromParentOnValueSettings(Ljava/util/Map;)V
+Landroid/provider/Settings$System;->getCloneToManagedProfileSettings(Ljava/util/Set;)V
+Landroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F
+Landroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)F
+Landroid/provider/Settings$System;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)J
+Landroid/provider/Settings$System;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)J
+Landroid/provider/Settings$System;->getMovedToGlobalSettings(Ljava/util/Set;)V
+Landroid/provider/Settings$System;->getMovedToSecureSettings(Ljava/util/Set;)V
+Landroid/provider/Settings$System;->getNonLegacyMovedKeys(Ljava/util/HashSet;)V
+Landroid/provider/Settings$System;->getShowGTalkServiceStatusForUser(Landroid/content/ContentResolver;I)Z
+Landroid/provider/Settings$System;->HAPTIC_FEEDBACK_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->HAPTIC_FEEDBACK_INTENSITY:Ljava/lang/String;
+Landroid/provider/Settings$System;->hasInterestingConfigurationChanges(I)Z
+Landroid/provider/Settings$System;->HEARING_AID_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->INSTANT_APP_SETTINGS:Ljava/util/Set;
+Landroid/provider/Settings$System;->LEGACY_RESTORE_SETTINGS:[Ljava/lang/String;
+Landroid/provider/Settings$System;->LOCKSCREEN_DISABLED:Ljava/lang/String;
+Landroid/provider/Settings$System;->LOCKSCREEN_DISABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->LOCKSCREEN_SOUNDS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->LOCK_TO_APP_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$System;->LOCK_TO_APP_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->LOW_BATTERY_SOUND:Ljava/lang/String;
+Landroid/provider/Settings$System;->MASTER_MONO_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->MEDIA_BUTTON_RECEIVER:Ljava/lang/String;
+Landroid/provider/Settings$System;->MEDIA_BUTTON_RECEIVER_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->MODE_RINGER_STREAMS_AFFECTED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->MUTE_STREAMS_AFFECTED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->NEXT_ALARM_FORMATTED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->NOTIFICATIONS_USE_RING_VOLUME:Ljava/lang/String;
+Landroid/provider/Settings$System;->NOTIFICATIONS_USE_RING_VOLUME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->NOTIFICATION_LIGHT_PULSE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->NOTIFICATION_SOUND_CACHE:Ljava/lang/String;
+Landroid/provider/Settings$System;->NOTIFICATION_SOUND_CACHE_URI:Landroid/net/Uri;
+Landroid/provider/Settings$System;->NOTIFICATION_SOUND_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->NOTIFICATION_VIBRATION_INTENSITY:Ljava/lang/String;
+Landroid/provider/Settings$System;->POINTER_LOCATION_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->POINTER_SPEED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->POWER_SOUNDS_ENABLED:Ljava/lang/String;
+Landroid/provider/Settings$System;->POWER_SOUNDS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->putConfigurationForUser(Landroid/content/ContentResolver;Landroid/content/res/Configuration;I)Z
+Landroid/provider/Settings$System;->putFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)Z
+Landroid/provider/Settings$System;->putLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)Z
+Landroid/provider/Settings$System;->RADIO_WIMAX:Ljava/lang/String;
+Landroid/provider/Settings$System;->RINGTONE_CACHE:Ljava/lang/String;
+Landroid/provider/Settings$System;->RINGTONE_CACHE_URI:Landroid/net/Uri;
+Landroid/provider/Settings$System;->RINGTONE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SCREEN_AUTO_BRIGHTNESS_ADJ_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SCREEN_BRIGHTNESS_FOR_VR:Ljava/lang/String;
+Landroid/provider/Settings$System;->SCREEN_BRIGHTNESS_FOR_VR_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SCREEN_BRIGHTNESS_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SCREEN_OFF_TIMEOUT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->setShowGTalkServiceStatusForUser(Landroid/content/ContentResolver;ZI)V
+Landroid/provider/Settings$System;->SETUP_WIZARD_HAS_RUN_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SHOW_BATTERY_PERCENT:Ljava/lang/String;
+Landroid/provider/Settings$System;->SHOW_BATTERY_PERCENT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SHOW_GTALK_SERVICE_STATUS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SHOW_TOUCHES_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SHOW_WEB_SUGGESTIONS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SIP_ADDRESS_ONLY:Ljava/lang/String;
+Landroid/provider/Settings$System;->SIP_ADDRESS_ONLY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SIP_ALWAYS:Ljava/lang/String;
+Landroid/provider/Settings$System;->SIP_ALWAYS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SIP_ASK_ME_EACH_TIME:Ljava/lang/String;
+Landroid/provider/Settings$System;->SIP_ASK_ME_EACH_TIME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SIP_CALL_OPTIONS:Ljava/lang/String;
+Landroid/provider/Settings$System;->SIP_CALL_OPTIONS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SIP_RECEIVE_CALLS:Ljava/lang/String;
+Landroid/provider/Settings$System;->SIP_RECEIVE_CALLS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SOUND_EFFECTS_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->STAY_ON_WHILE_PLUGGED_IN_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->SYSTEM_LOCALES:Ljava/lang/String;
+Landroid/provider/Settings$System;->TEXT_AUTO_CAPS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->TEXT_AUTO_PUNCTUATE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->TEXT_AUTO_REPLACE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->TEXT_SHOW_PASSWORD_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->TIME_12_24_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->TTY_MODE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->USB_MASS_STORAGE_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->USER_ROTATION_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->VIBRATE_INPUT_DEVICES:Ljava/lang/String;
+Landroid/provider/Settings$System;->VIBRATE_INPUT_DEVICES_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->VIBRATE_IN_SILENT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->VIBRATE_ON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->VIBRATE_WHEN_RINGING_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->VIBRATION_INTENSITY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->VOLUME_ACCESSIBILITY:Ljava/lang/String;
+Landroid/provider/Settings$System;->VOLUME_MASTER:Ljava/lang/String;
+Landroid/provider/Settings$System;->VOLUME_SETTINGS_INT:[Ljava/lang/String;
+Landroid/provider/Settings$System;->WALLPAPER_ACTIVITY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->WHEN_TO_MAKE_WIFI_CALLS:Ljava/lang/String;
+Landroid/provider/Settings$System;->WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->WIFI_NUM_OPEN_NETWORKS_KEPT_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->WIFI_STATIC_DNS1_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->WIFI_STATIC_DNS2_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->WIFI_STATIC_GATEWAY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->WIFI_STATIC_IP_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/Settings$System;->WIFI_STATIC_NETMASK_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+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;
+Landroid/provider/Settings;->ACTION_APP_OPS_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_ASSIST_GESTURE_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_CONDITION_PROVIDER_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_FOREGROUND_SERVICES_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_LOCATION_SCANNING_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_MANAGED_PROFILE_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_MOBILE_DATA_USAGE:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_MONITORING_CERT_INFO:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_NOTIFICATION_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_PAIRING_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_PICTURE_IN_PICTURE_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_SHOW_ADMIN_SUPPORT_DETAILS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_SHOW_REMOTE_BUGREPORT_DIALOG:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_STORAGE_MANAGER_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_SYSTEM_UPDATE_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_TETHER_PROVISIONING:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_USER_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_ZEN_MODE_AUTOMATION_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_ZEN_MODE_EVENT_RULE_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_ZEN_MODE_EXTERNAL_RULE_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_ZEN_MODE_SCHEDULE_RULE_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->ACTION_ZEN_MODE_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_GENERATION_INDEX_KEY:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_GENERATION_KEY:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_GET_GLOBAL:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_GET_SECURE:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_GET_SYSTEM:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_MAKE_DEFAULT_KEY:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_PUT_GLOBAL:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_PUT_SECURE:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_PUT_SYSTEM:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_RESET_GLOBAL:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_RESET_MODE_KEY:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_RESET_SECURE:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_TAG_KEY:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_TRACK_GENERATION_KEY:Ljava/lang/String;
+Landroid/provider/Settings;->CALL_METHOD_USER_KEY:Ljava/lang/String;
+Landroid/provider/Settings;->checkAndNoteChangeNetworkStateOperation(Landroid/content/Context;ILjava/lang/String;Z)Z
+Landroid/provider/Settings;->checkAndNoteDrawOverlaysOperation(Landroid/content/Context;ILjava/lang/String;Z)Z
+Landroid/provider/Settings;->checkAndNoteWriteSettingsOperation(Landroid/content/Context;ILjava/lang/String;Z)Z
+Landroid/provider/Settings;->DEVICE_NAME_SETTINGS:Ljava/lang/String;
+Landroid/provider/Settings;->EXTRA_INPUT_DEVICE_IDENTIFIER:Ljava/lang/String;
+Landroid/provider/Settings;->EXTRA_NETWORK_TEMPLATE:Ljava/lang/String;
+Landroid/provider/Settings;->EXTRA_NUMBER_OF_CERTIFICATES:Ljava/lang/String;
+Landroid/provider/Settings;->getGTalkDeviceId(J)Ljava/lang/String;
+Landroid/provider/Settings;->getPackageNameForUid(Landroid/content/Context;I)Ljava/lang/String;
+Landroid/provider/Settings;->isInSystemServer()Z
+Landroid/provider/Settings;->JID_RESOURCE_PREFIX:Ljava/lang/String;
+Landroid/provider/Settings;->LOCAL_LOGV:Z
+Landroid/provider/Settings;->mLocationSettingsLock:Ljava/lang/Object;
+Landroid/provider/Settings;->PM_CHANGE_NETWORK_STATE:[Ljava/lang/String;
+Landroid/provider/Settings;->PM_SYSTEM_ALERT_WINDOW:[Ljava/lang/String;
+Landroid/provider/Settings;->PM_WRITE_SETTINGS:[Ljava/lang/String;
+Landroid/provider/Settings;->RESET_MODE_PACKAGE_DEFAULTS:I
+Landroid/provider/Settings;->RESET_MODE_TRUSTED_DEFAULTS:I
+Landroid/provider/Settings;->RESET_MODE_UNTRUSTED_CHANGES:I
+Landroid/provider/Settings;->RESET_MODE_UNTRUSTED_DEFAULTS:I
+Landroid/provider/Settings;->setInSystemServer()V
+Landroid/provider/Settings;->sInSystemServer:Z
+Landroid/provider/Settings;->sInSystemServerLock:Ljava/lang/Object;
+Landroid/provider/Settings;->TAG:Ljava/lang/String;
+Landroid/provider/Settings;->USER_SETUP_PERSONALIZATION_COMPLETE:I
+Landroid/provider/Settings;->USER_SETUP_PERSONALIZATION_NOT_STARTED:I
+Landroid/provider/Settings;->USER_SETUP_PERSONALIZATION_PAUSED:I
+Landroid/provider/Settings;->USER_SETUP_PERSONALIZATION_STARTED:I
+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
+Landroid/provider/SettingsStringUtil$SettingStringHelper;->mSettingName:Ljava/lang/String;
+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;
+Landroid/provider/SettingsValidators;->BOOLEAN_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/SettingsValidators;->COMPONENT_NAME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/SettingsValidators;->LENIENT_IP_ADDRESS_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/SettingsValidators;->LOCALE_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+Landroid/provider/SettingsValidators;->NON_NEGATIVE_INTEGER_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
+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;
+Landroid/provider/SyncConstValue;->_SYNC_ACCOUNT_TYPE:Ljava/lang/String;
+Landroid/provider/SyncConstValue;->_SYNC_DIRTY:Ljava/lang/String;
+Landroid/provider/SyncConstValue;->_SYNC_ID:Ljava/lang/String;
+Landroid/provider/SyncConstValue;->_SYNC_LOCAL_ID:Ljava/lang/String;
+Landroid/provider/SyncConstValue;->_SYNC_MARK:Ljava/lang/String;
+Landroid/provider/SyncConstValue;->_SYNC_TIME:Ljava/lang/String;
+Landroid/provider/SyncConstValue;->_SYNC_VERSION:Ljava/lang/String;
+Landroid/provider/SyncStateContract$Helpers;->DATA_PROJECTION:[Ljava/lang/String;
+Landroid/provider/SyncStateContract$Helpers;->SELECT_BY_ACCOUNT:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->ADAPTATION_ALLOWED:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->APPLIC_ID:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->AUX_APPLIC_ID:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->CANCEL_ID:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->CANCEL_STATUS:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->DELIVERY_TIME_TOKEN:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->DISTRIBUTION_INDICATOR:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->DRM_CONTENT:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->ELEMENT_DESCRIPTOR:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->LIMIT:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->MBOX_QUOTAS:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->MBOX_QUOTAS_TOKEN:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->MBOX_TOTALS:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->MBOX_TOTALS_TOKEN:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->MESSAGE_COUNT:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->MM_FLAGS:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->MM_FLAGS_TOKEN:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->MM_STATE:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->PREVIOUSLY_SENT_BY:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->PREVIOUSLY_SENT_DATE:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->QUOTAS:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->RECOMMENDED_RETRIEVAL_MODE:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->RECOMMENDED_RETRIEVAL_MODE_TEXT:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->REPLACE_ID:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->REPLY_APPLIC_ID:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->REPLY_CHARGING:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->REPLY_CHARGING_DEADLINE:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->REPLY_CHARGING_DEADLINE_TOKEN:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->REPLY_CHARGING_ID:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->REPLY_CHARGING_SIZE:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->SENDER_VISIBILITY:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->START:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->STATUS_TEXT:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->STORE:Ljava/lang/String;
+Landroid/provider/Telephony$BaseMmsColumns;->STORED:Ljava/lang/String;
+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;
+Landroid/provider/Telephony$CarrierColumns;->KEY_TYPE:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierColumns;->LAST_MODIFIED:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierColumns;->MCC:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierColumns;->MNC:Ljava/lang/String;
+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;
+Landroid/provider/Telephony$CarrierId$All;->GID1:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierId$All;->GID2:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierId$All;->ICCID_PREFIX:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierId$All;->IMSI_PREFIX_XPATTERN:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierId$All;->MCCMNC:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierId$All;->PLMN:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierId$All;->SPN:Ljava/lang/String;
+Landroid/provider/Telephony$CarrierId;-><init>()V
+Landroid/provider/Telephony$CarrierId;->AUTHORITY:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;-><init>()V
+Landroid/provider/Telephony$Carriers;->APN_SET_ID:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->BEARER_BITMASK:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->CARRIER_DELETED:I
+Landroid/provider/Telephony$Carriers;->CARRIER_DELETED_BUT_PRESENT_IN_XML:I
+Landroid/provider/Telephony$Carriers;->CARRIER_EDITED:I
+Landroid/provider/Telephony$Carriers;->DPC_URI:Landroid/net/Uri;
+Landroid/provider/Telephony$Carriers;->EDITED:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->ENFORCE_KEY:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->ENFORCE_MANAGED_URI:Landroid/net/Uri;
+Landroid/provider/Telephony$Carriers;->FILTERED_URI:Landroid/net/Uri;
+Landroid/provider/Telephony$Carriers;->MAX_CONNS:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->MAX_CONNS_TIME:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->MODEM_COGNITIVE:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->MTU:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->NO_SET_SET:I
+Landroid/provider/Telephony$Carriers;->OWNED_BY:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->OWNED_BY_DPC:I
+Landroid/provider/Telephony$Carriers;->OWNED_BY_OTHERS:I
+Landroid/provider/Telephony$Carriers;->PROFILE_ID:Ljava/lang/String;
+Landroid/provider/Telephony$Carriers;->UNEDITED:I
+Landroid/provider/Telephony$Carriers;->USER_DELETED:I
+Landroid/provider/Telephony$Carriers;->USER_DELETED_BUT_PRESENT_IN_XML:I
+Landroid/provider/Telephony$Carriers;->USER_EDITABLE:Ljava/lang/String;
+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;
+Landroid/provider/Telephony$CellBroadcasts;->CMAS_CERTAINTY:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->CMAS_MESSAGE_CLASS:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->CMAS_RESPONSE_TYPE:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->CMAS_SEVERITY:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->CMAS_URGENCY:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->CONTENT_URI:Landroid/net/Uri;
+Landroid/provider/Telephony$CellBroadcasts;->DEFAULT_SORT_ORDER:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->DELIVERY_TIME:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->ETWS_WARNING_TYPE:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->GEOGRAPHICAL_SCOPE:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->LAC:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->LANGUAGE_CODE:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->MESSAGE_BODY:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->MESSAGE_FORMAT:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->MESSAGE_PRIORITY:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->MESSAGE_READ:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->PLMN:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->QUERY_COLUMNS:[Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->SERIAL_NUMBER:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->SERVICE_CATEGORY:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->V1_MESSAGE_CODE:Ljava/lang/String;
+Landroid/provider/Telephony$CellBroadcasts;->V1_MESSAGE_IDENTIFIER:Ljava/lang/String;
+Landroid/provider/Telephony$Mms$Addr;-><init>()V
+Landroid/provider/Telephony$Mms$Draft;-><init>()V
+Landroid/provider/Telephony$Mms$Inbox;-><init>()V
+Landroid/provider/Telephony$Mms$Intents;-><init>()V
+Landroid/provider/Telephony$Mms$Outbox;-><init>()V
+Landroid/provider/Telephony$Mms$Part;-><init>()V
+Landroid/provider/Telephony$Mms$Rate;-><init>()V
+Landroid/provider/Telephony$Mms$Sent;-><init>()V
+Landroid/provider/Telephony$Mms;-><init>()V
+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;
+Landroid/provider/Telephony$MmsSms$WordsTable;->SOURCE_ROW_ID:Ljava/lang/String;
+Landroid/provider/Telephony$MmsSms$WordsTable;->TABLE_ID:Ljava/lang/String;
+Landroid/provider/Telephony$MmsSms;-><init>()V
+Landroid/provider/Telephony$ServiceStateTable;-><init>()V
+Landroid/provider/Telephony$ServiceStateTable;->CDMA_DEFAULT_ROAMING_INDICATOR:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->CDMA_ERI_ICON_INDEX:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->CDMA_ERI_ICON_MODE:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->CDMA_ROAMING_INDICATOR:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->CSS_INDICATOR:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->DATA_OPERATOR_ALPHA_LONG:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->DATA_OPERATOR_ALPHA_SHORT:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->DATA_OPERATOR_NUMERIC:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->DATA_REG_STATE:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->DATA_ROAMING_TYPE:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->getContentValuesForServiceState(Landroid/telephony/ServiceState;)Landroid/content/ContentValues;
+Landroid/provider/Telephony$ServiceStateTable;->IS_DATA_ROAMING_FROM_REGISTRATION:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->IS_EMERGENCY_ONLY:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->IS_USING_CARRIER_AGGREGATION:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->NETWORK_ID:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->RIL_DATA_RADIO_TECHNOLOGY:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->RIL_VOICE_RADIO_TECHNOLOGY:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->SYSTEM_ID:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->VOICE_OPERATOR_ALPHA_LONG:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->VOICE_OPERATOR_ALPHA_SHORT:Ljava/lang/String;
+Landroid/provider/Telephony$ServiceStateTable;->VOICE_ROAMING_TYPE:Ljava/lang/String;
+Landroid/provider/Telephony$Sms$Conversations;-><init>()V
+Landroid/provider/Telephony$Sms$Draft;-><init>()V
+Landroid/provider/Telephony$Sms$Inbox;-><init>()V
+Landroid/provider/Telephony$Sms$Intents;-><init>()V
+Landroid/provider/Telephony$Sms$Intents;->MMS_DOWNLOADED_ACTION:Ljava/lang/String;
+Landroid/provider/Telephony$Sms$Outbox;-><init>()V
+Landroid/provider/Telephony$Sms$Outbox;->addMessage(ILandroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZJ)Landroid/net/Uri;
+Landroid/provider/Telephony$Sms$Sent;-><init>()V
+Landroid/provider/Telephony$Sms;-><init>()V
+Landroid/provider/Telephony$Sms;->query(Landroid/content/ContentResolver;[Ljava/lang/String;)Landroid/database/Cursor;
+Landroid/provider/Telephony$TextBasedSmsColumns;->MTU:Ljava/lang/String;
+Landroid/provider/Telephony$Threads;-><init>()V
+Landroid/provider/Telephony;-><init>()V
+Landroid/provider/Telephony;->TAG:Ljava/lang/String;
+Landroid/provider/TimeZoneRulesDataContract$Operation;-><init>()V
+Landroid/provider/TimeZoneRulesDataContract;-><init>()V
+Landroid/provider/TimeZoneRulesDataContract;->AUTHORITY_URI:Landroid/net/Uri;
+Landroid/provider/UserDictionary;->FREQUENCY_MAX:I
+Landroid/provider/UserDictionary;->FREQUENCY_MIN:I
+Landroid/provider/VoicemailContract$Status;-><init>()V
+Landroid/provider/VoicemailContract$Voicemails;-><init>()V
+Landroid/provider/VoicemailContract$Voicemails;->deleteAll(Landroid/content/Context;)I
+Landroid/provider/VoicemailContract$Voicemails;->getContentValues(Landroid/telecom/Voicemail;)Landroid/content/ContentValues;
+Landroid/provider/VoicemailContract$Voicemails;->insert(Landroid/content/Context;Landroid/telecom/Voicemail;)Landroid/net/Uri;
+Landroid/provider/VoicemailContract$Voicemails;->insert(Landroid/content/Context;Ljava/util/List;)I
+Landroid/provider/VoicemailContract$Voicemails;->STATE:Ljava/lang/String;
+Landroid/provider/VoicemailContract$Voicemails;->STATE_DELETED:I
+Landroid/provider/VoicemailContract$Voicemails;->STATE_INBOX:I
+Landroid/provider/VoicemailContract$Voicemails;->STATE_UNDELETED:I
+Landroid/provider/VoicemailContract$Voicemails;->TRANSCRIPTION_AVAILABLE:I
+Landroid/provider/VoicemailContract$Voicemails;->TRANSCRIPTION_FAILED:I
+Landroid/provider/VoicemailContract$Voicemails;->TRANSCRIPTION_IN_PROGRESS:I
+Landroid/provider/VoicemailContract$Voicemails;->TRANSCRIPTION_NOT_STARTED:I
+Landroid/provider/VoicemailContract$Voicemails;->TRANSCRIPTION_STATE:Ljava/lang/String;
+Landroid/provider/VoicemailContract$Voicemails;->_DATA:Ljava/lang/String;
+Landroid/provider/VoicemailContract;-><init>()V
+Landroid/provider/VoicemailContract;->ACTION_VOICEMAIL_SMS_RECEIVED:Ljava/lang/String;
+Landroid/provider/VoicemailContract;->EXTRA_TARGET_PACKAGE:Ljava/lang/String;
+Landroid/provider/VoicemailContract;->EXTRA_VOICEMAIL_SMS:Ljava/lang/String;
+Landroid/provider/VoicemailContract;->SOURCE_PACKAGE_FIELD:Ljava/lang/String;
+Landroid/R$attr;->compileSdkVersion:I
+Landroid/R$attr;->compileSdkVersionCodename:I
+Landroid/R$attr;->hash:I
+Landroid/R$attr;->searchKeyphrase:I
+Landroid/R$attr;->searchKeyphraseId:I
+Landroid/R$attr;->searchKeyphraseRecognitionFlags:I
+Landroid/R$attr;->searchKeyphraseSupportedLocales:I
+Landroid/R$attr;->solidColor:I
+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
+Landroid/R$styleable;->AbsListView_choiceMode:I
+Landroid/R$styleable;->AbsListView_drawSelectorOnTop:I
+Landroid/R$styleable;->AbsListView_fastScrollAlwaysVisible:I
+Landroid/R$styleable;->AbsListView_fastScrollEnabled:I
+Landroid/R$styleable;->AbsListView_fastScrollStyle:I
+Landroid/R$styleable;->AbsListView_listSelector:I
+Landroid/R$styleable;->AbsListView_scrollingCache:I
+Landroid/R$styleable;->AbsListView_smoothScrollbar:I
+Landroid/R$styleable;->AbsListView_stackFromBottom:I
+Landroid/R$styleable;->AbsListView_textFilterEnabled:I
+Landroid/R$styleable;->AbsListView_transcriptMode:I
+Landroid/R$styleable;->AbsoluteLayout_Layout:[I
+Landroid/R$styleable;->AbsoluteLayout_Layout_layout_x:I
+Landroid/R$styleable;->AbsoluteLayout_Layout_layout_y:I
+Landroid/R$styleable;->AbsSpinner:[I
+Landroid/R$styleable;->AbsSpinner_entries:I
+Landroid/R$styleable;->AccelerateInterpolator:[I
+Landroid/R$styleable;->AccelerateInterpolator_factor:I
+Landroid/R$styleable;->AccessibilityService:[I
+Landroid/R$styleable;->AccessibilityService_accessibilityEventTypes:I
+Landroid/R$styleable;->AccessibilityService_accessibilityFeedbackType:I
+Landroid/R$styleable;->AccessibilityService_accessibilityFlags:I
+Landroid/R$styleable;->AccessibilityService_canControlMagnification:I
+Landroid/R$styleable;->AccessibilityService_canPerformGestures:I
+Landroid/R$styleable;->AccessibilityService_canRequestEnhancedWebAccessibility:I
+Landroid/R$styleable;->AccessibilityService_canRequestFilterKeyEvents:I
+Landroid/R$styleable;->AccessibilityService_canRequestFingerprintGestures:I
+Landroid/R$styleable;->AccessibilityService_canRequestTouchExplorationMode:I
+Landroid/R$styleable;->AccessibilityService_canRetrieveWindowContent:I
+Landroid/R$styleable;->AccessibilityService_description:I
+Landroid/R$styleable;->AccessibilityService_notificationTimeout:I
+Landroid/R$styleable;->AccessibilityService_packageNames:I
+Landroid/R$styleable;->AccessibilityService_settingsActivity:I
+Landroid/R$styleable;->AccessibilityService_summary:I
+Landroid/R$styleable;->AccountAuthenticator:[I
+Landroid/R$styleable;->AccountAuthenticator_accountPreferences:I
+Landroid/R$styleable;->AccountAuthenticator_accountType:I
+Landroid/R$styleable;->AccountAuthenticator_customTokens:I
+Landroid/R$styleable;->AccountAuthenticator_icon:I
+Landroid/R$styleable;->AccountAuthenticator_label:I
+Landroid/R$styleable;->AccountAuthenticator_smallIcon:I
+Landroid/R$styleable;->ActionBar_contentInsetEnd:I
+Landroid/R$styleable;->ActionBar_contentInsetEndWithActions:I
+Landroid/R$styleable;->ActionBar_contentInsetLeft:I
+Landroid/R$styleable;->ActionBar_contentInsetRight:I
+Landroid/R$styleable;->ActionBar_contentInsetStart:I
+Landroid/R$styleable;->ActionBar_contentInsetStartWithNavigation:I
+Landroid/R$styleable;->ActionBar_customNavigationLayout:I
+Landroid/R$styleable;->ActionBar_displayOptions:I
+Landroid/R$styleable;->ActionBar_elevation:I
+Landroid/R$styleable;->ActionBar_height:I
+Landroid/R$styleable;->ActionBar_hideOnContentScroll:I
+Landroid/R$styleable;->ActionBar_homeAsUpIndicator:I
+Landroid/R$styleable;->ActionBar_homeLayout:I
+Landroid/R$styleable;->ActionBar_icon:I
+Landroid/R$styleable;->ActionBar_indeterminateProgressStyle:I
+Landroid/R$styleable;->ActionBar_LayoutParams:[I
+Landroid/R$styleable;->ActionBar_LayoutParams_layout_gravity:I
+Landroid/R$styleable;->ActionBar_logo:I
+Landroid/R$styleable;->ActionBar_navigationMode:I
+Landroid/R$styleable;->ActionBar_popupTheme:I
+Landroid/R$styleable;->ActionBar_progressBarPadding:I
+Landroid/R$styleable;->ActionBar_progressBarStyle:I
+Landroid/R$styleable;->ActionBar_subtitle:I
+Landroid/R$styleable;->ActionBar_subtitleTextStyle:I
+Landroid/R$styleable;->ActionBar_title:I
+Landroid/R$styleable;->ActionBar_titleTextStyle:I
+Landroid/R$styleable;->ActionMenuItemView:[I
+Landroid/R$styleable;->ActionMenuItemView_minWidth:I
+Landroid/R$styleable;->ActionMode:[I
+Landroid/R$styleable;->ActionMode_background:I
+Landroid/R$styleable;->ActionMode_backgroundSplit:I
+Landroid/R$styleable;->ActionMode_height:I
+Landroid/R$styleable;->ActionMode_subtitleTextStyle:I
+Landroid/R$styleable;->ActionMode_titleTextStyle:I
+Landroid/R$styleable;->ActivityChooserView:[I
+Landroid/R$styleable;->ActivityTaskDescription:[I
+Landroid/R$styleable;->ActivityTaskDescription_colorBackground:I
+Landroid/R$styleable;->ActivityTaskDescription_colorPrimary:I
+Landroid/R$styleable;->ActivityTaskDescription_navigationBarColor:I
+Landroid/R$styleable;->ActivityTaskDescription_statusBarColor:I
+Landroid/R$styleable;->AdapterViewAnimator:[I
+Landroid/R$styleable;->AdapterViewAnimator_animateFirstView:I
+Landroid/R$styleable;->AdapterViewAnimator_inAnimation:I
+Landroid/R$styleable;->AdapterViewAnimator_loopViews:I
+Landroid/R$styleable;->AdapterViewAnimator_outAnimation:I
+Landroid/R$styleable;->AdapterViewFlipper:[I
+Landroid/R$styleable;->AdapterViewFlipper_autoStart:I
+Landroid/R$styleable;->AdapterViewFlipper_flipInterval:I
+Landroid/R$styleable;->AdaptiveIconDrawableLayer:[I
+Landroid/R$styleable;->AdaptiveIconDrawableLayer_drawable:I
+Landroid/R$styleable;->AidFilter:[I
+Landroid/R$styleable;->AidFilter_name:I
+Landroid/R$styleable;->AidGroup:[I
+Landroid/R$styleable;->AidGroup_category:I
+Landroid/R$styleable;->AidGroup_description:I
+Landroid/R$styleable;->AidPrefixFilter:[I
+Landroid/R$styleable;->AidPrefixFilter_name:I
+Landroid/R$styleable;->AlertDialog:[I
+Landroid/R$styleable;->AlertDialog_bottomBright:I
+Landroid/R$styleable;->AlertDialog_bottomDark:I
+Landroid/R$styleable;->AlertDialog_bottomMedium:I
+Landroid/R$styleable;->AlertDialog_centerBright:I
+Landroid/R$styleable;->AlertDialog_centerDark:I
+Landroid/R$styleable;->AlertDialog_centerMedium:I
+Landroid/R$styleable;->AlertDialog_fullBright:I
+Landroid/R$styleable;->AlertDialog_fullDark:I
+Landroid/R$styleable;->AlertDialog_layout:I
+Landroid/R$styleable;->AlertDialog_topBright:I
+Landroid/R$styleable;->AlertDialog_topDark:I
+Landroid/R$styleable;->AlphaAnimation:[I
+Landroid/R$styleable;->AlphaAnimation_fromAlpha:I
+Landroid/R$styleable;->AlphaAnimation_toAlpha:I
+Landroid/R$styleable;->AnalogClock:[I
+Landroid/R$styleable;->AnalogClock_dial:I
+Landroid/R$styleable;->AnalogClock_hand_hour:I
+Landroid/R$styleable;->AnalogClock_hand_minute:I
+Landroid/R$styleable;->AndroidManifest:[I
+Landroid/R$styleable;->AndroidManifestAction:[I
+Landroid/R$styleable;->AndroidManifestAction_name:I
+Landroid/R$styleable;->AndroidManifestActivity:[I
+Landroid/R$styleable;->AndroidManifestActivityAlias:[I
+Landroid/R$styleable;->AndroidManifestActivityAlias_banner:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_description:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_enabled:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_exported:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_icon:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_label:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_logo:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_name:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_parentActivityName:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_permission:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_roundIcon:I
+Landroid/R$styleable;->AndroidManifestActivityAlias_targetActivity:I
+Landroid/R$styleable;->AndroidManifestActivity_allowEmbedded:I
+Landroid/R$styleable;->AndroidManifestActivity_allowTaskReparenting:I
+Landroid/R$styleable;->AndroidManifestActivity_alwaysRetainTaskState:I
+Landroid/R$styleable;->AndroidManifestActivity_autoRemoveFromRecents:I
+Landroid/R$styleable;->AndroidManifestActivity_banner:I
+Landroid/R$styleable;->AndroidManifestActivity_clearTaskOnLaunch:I
+Landroid/R$styleable;->AndroidManifestActivity_colorMode:I
+Landroid/R$styleable;->AndroidManifestActivity_configChanges:I
+Landroid/R$styleable;->AndroidManifestActivity_description:I
+Landroid/R$styleable;->AndroidManifestActivity_directBootAware:I
+Landroid/R$styleable;->AndroidManifestActivity_documentLaunchMode:I
+Landroid/R$styleable;->AndroidManifestActivity_enabled:I
+Landroid/R$styleable;->AndroidManifestActivity_enableVrMode:I
+Landroid/R$styleable;->AndroidManifestActivity_excludeFromRecents:I
+Landroid/R$styleable;->AndroidManifestActivity_exported:I
+Landroid/R$styleable;->AndroidManifestActivity_finishOnCloseSystemDialogs:I
+Landroid/R$styleable;->AndroidManifestActivity_finishOnTaskLaunch:I
+Landroid/R$styleable;->AndroidManifestActivity_hardwareAccelerated:I
+Landroid/R$styleable;->AndroidManifestActivity_icon:I
+Landroid/R$styleable;->AndroidManifestActivity_immersive:I
+Landroid/R$styleable;->AndroidManifestActivity_label:I
+Landroid/R$styleable;->AndroidManifestActivity_launchMode:I
+Landroid/R$styleable;->AndroidManifestActivity_lockTaskMode:I
+Landroid/R$styleable;->AndroidManifestActivity_logo:I
+Landroid/R$styleable;->AndroidManifestActivity_maxAspectRatio:I
+Landroid/R$styleable;->AndroidManifestActivity_maxRecents:I
+Landroid/R$styleable;->AndroidManifestActivity_multiprocess:I
+Landroid/R$styleable;->AndroidManifestActivity_name:I
+Landroid/R$styleable;->AndroidManifestActivity_noHistory:I
+Landroid/R$styleable;->AndroidManifestActivity_parentActivityName:I
+Landroid/R$styleable;->AndroidManifestActivity_permission:I
+Landroid/R$styleable;->AndroidManifestActivity_persistableMode:I
+Landroid/R$styleable;->AndroidManifestActivity_process:I
+Landroid/R$styleable;->AndroidManifestActivity_recreateOnConfigChanges:I
+Landroid/R$styleable;->AndroidManifestActivity_relinquishTaskIdentity:I
+Landroid/R$styleable;->AndroidManifestActivity_resizeableActivity:I
+Landroid/R$styleable;->AndroidManifestActivity_resumeWhilePausing:I
+Landroid/R$styleable;->AndroidManifestActivity_rotationAnimation:I
+Landroid/R$styleable;->AndroidManifestActivity_roundIcon:I
+Landroid/R$styleable;->AndroidManifestActivity_screenOrientation:I
+Landroid/R$styleable;->AndroidManifestActivity_showForAllUsers:I
+Landroid/R$styleable;->AndroidManifestActivity_showOnLockScreen:I
+Landroid/R$styleable;->AndroidManifestActivity_showWhenLocked:I
+Landroid/R$styleable;->AndroidManifestActivity_singleUser:I
+Landroid/R$styleable;->AndroidManifestActivity_splitName:I
+Landroid/R$styleable;->AndroidManifestActivity_stateNotNeeded:I
+Landroid/R$styleable;->AndroidManifestActivity_supportsPictureInPicture:I
+Landroid/R$styleable;->AndroidManifestActivity_taskAffinity:I
+Landroid/R$styleable;->AndroidManifestActivity_theme:I
+Landroid/R$styleable;->AndroidManifestActivity_turnScreenOn:I
+Landroid/R$styleable;->AndroidManifestActivity_uiOptions:I
+Landroid/R$styleable;->AndroidManifestActivity_visibleToInstantApps:I
+Landroid/R$styleable;->AndroidManifestActivity_windowSoftInputMode:I
+Landroid/R$styleable;->AndroidManifestAdditionalCertificate:[I
+Landroid/R$styleable;->AndroidManifestAdditionalCertificate_certDigest:I
+Landroid/R$styleable;->AndroidManifestApplication:[I
+Landroid/R$styleable;->AndroidManifestApplication_allowBackup:I
+Landroid/R$styleable;->AndroidManifestApplication_allowClearUserData:I
+Landroid/R$styleable;->AndroidManifestApplication_allowTaskReparenting:I
+Landroid/R$styleable;->AndroidManifestApplication_appCategory:I
+Landroid/R$styleable;->AndroidManifestApplication_appComponentFactory:I
+Landroid/R$styleable;->AndroidManifestApplication_backupAgent:I
+Landroid/R$styleable;->AndroidManifestApplication_backupInForeground:I
+Landroid/R$styleable;->AndroidManifestApplication_banner:I
+Landroid/R$styleable;->AndroidManifestApplication_cantSaveState:I
+Landroid/R$styleable;->AndroidManifestApplication_classLoader:I
+Landroid/R$styleable;->AndroidManifestApplication_debuggable:I
+Landroid/R$styleable;->AndroidManifestApplication_defaultToDeviceProtectedStorage:I
+Landroid/R$styleable;->AndroidManifestApplication_description:I
+Landroid/R$styleable;->AndroidManifestApplication_directBootAware:I
+Landroid/R$styleable;->AndroidManifestApplication_enabled:I
+Landroid/R$styleable;->AndroidManifestApplication_extractNativeLibs:I
+Landroid/R$styleable;->AndroidManifestApplication_fullBackupContent:I
+Landroid/R$styleable;->AndroidManifestApplication_fullBackupOnly:I
+Landroid/R$styleable;->AndroidManifestApplication_hardwareAccelerated:I
+Landroid/R$styleable;->AndroidManifestApplication_hasCode:I
+Landroid/R$styleable;->AndroidManifestApplication_icon:I
+Landroid/R$styleable;->AndroidManifestApplication_isGame:I
+Landroid/R$styleable;->AndroidManifestApplication_killAfterRestore:I
+Landroid/R$styleable;->AndroidManifestApplication_label:I
+Landroid/R$styleable;->AndroidManifestApplication_largeHeap:I
+Landroid/R$styleable;->AndroidManifestApplication_logo:I
+Landroid/R$styleable;->AndroidManifestApplication_manageSpaceActivity:I
+Landroid/R$styleable;->AndroidManifestApplication_maxAspectRatio:I
+Landroid/R$styleable;->AndroidManifestApplication_multiArch:I
+Landroid/R$styleable;->AndroidManifestApplication_name:I
+Landroid/R$styleable;->AndroidManifestApplication_networkSecurityConfig:I
+Landroid/R$styleable;->AndroidManifestApplication_permission:I
+Landroid/R$styleable;->AndroidManifestApplication_persistent:I
+Landroid/R$styleable;->AndroidManifestApplication_persistentWhenFeatureAvailable:I
+Landroid/R$styleable;->AndroidManifestApplication_process:I
+Landroid/R$styleable;->AndroidManifestApplication_requiredAccountType:I
+Landroid/R$styleable;->AndroidManifestApplication_requiredForAllUsers:I
+Landroid/R$styleable;->AndroidManifestApplication_resizeableActivity:I
+Landroid/R$styleable;->AndroidManifestApplication_restoreAnyVersion:I
+Landroid/R$styleable;->AndroidManifestApplication_restoreNeedsApplication:I
+Landroid/R$styleable;->AndroidManifestApplication_restrictedAccountType:I
+Landroid/R$styleable;->AndroidManifestApplication_roundIcon:I
+Landroid/R$styleable;->AndroidManifestApplication_supportsRtl:I
+Landroid/R$styleable;->AndroidManifestApplication_taskAffinity:I
+Landroid/R$styleable;->AndroidManifestApplication_testOnly:I
+Landroid/R$styleable;->AndroidManifestApplication_theme:I
+Landroid/R$styleable;->AndroidManifestApplication_uiOptions:I
+Landroid/R$styleable;->AndroidManifestApplication_usesCleartextTraffic:I
+Landroid/R$styleable;->AndroidManifestApplication_vmSafeMode:I
+Landroid/R$styleable;->AndroidManifestCategory:[I
+Landroid/R$styleable;->AndroidManifestCategory_name:I
+Landroid/R$styleable;->AndroidManifestCompatibleScreensScreen:[I
+Landroid/R$styleable;->AndroidManifestCompatibleScreensScreen_screenDensity:I
+Landroid/R$styleable;->AndroidManifestCompatibleScreensScreen_screenSize:I
+Landroid/R$styleable;->AndroidManifestData:[I
+Landroid/R$styleable;->AndroidManifestData_host:I
+Landroid/R$styleable;->AndroidManifestData_mimeType:I
+Landroid/R$styleable;->AndroidManifestData_path:I
+Landroid/R$styleable;->AndroidManifestData_pathPattern:I
+Landroid/R$styleable;->AndroidManifestData_pathPrefix:I
+Landroid/R$styleable;->AndroidManifestData_port:I
+Landroid/R$styleable;->AndroidManifestData_scheme:I
+Landroid/R$styleable;->AndroidManifestData_ssp:I
+Landroid/R$styleable;->AndroidManifestData_sspPattern:I
+Landroid/R$styleable;->AndroidManifestData_sspPrefix:I
+Landroid/R$styleable;->AndroidManifestFeatureGroup:[I
+Landroid/R$styleable;->AndroidManifestFeatureGroup_label:I
+Landroid/R$styleable;->AndroidManifestGrantUriPermission:[I
+Landroid/R$styleable;->AndroidManifestGrantUriPermission_path:I
+Landroid/R$styleable;->AndroidManifestGrantUriPermission_pathPattern:I
+Landroid/R$styleable;->AndroidManifestGrantUriPermission_pathPrefix:I
+Landroid/R$styleable;->AndroidManifestInstrumentation:[I
+Landroid/R$styleable;->AndroidManifestInstrumentation_banner:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_functionalTest:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_handleProfiling:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_icon:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_label:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_logo:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_name:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_roundIcon:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_targetPackage:I
+Landroid/R$styleable;->AndroidManifestInstrumentation_targetProcesses:I
+Landroid/R$styleable;->AndroidManifestIntentFilter:[I
+Landroid/R$styleable;->AndroidManifestIntentFilter_autoVerify:I
+Landroid/R$styleable;->AndroidManifestIntentFilter_banner:I
+Landroid/R$styleable;->AndroidManifestIntentFilter_icon:I
+Landroid/R$styleable;->AndroidManifestIntentFilter_label:I
+Landroid/R$styleable;->AndroidManifestIntentFilter_logo:I
+Landroid/R$styleable;->AndroidManifestIntentFilter_order:I
+Landroid/R$styleable;->AndroidManifestIntentFilter_priority:I
+Landroid/R$styleable;->AndroidManifestIntentFilter_roundIcon:I
+Landroid/R$styleable;->AndroidManifestKeySet:[I
+Landroid/R$styleable;->AndroidManifestKeySet_name:I
+Landroid/R$styleable;->AndroidManifestLayout:[I
+Landroid/R$styleable;->AndroidManifestLayout_defaultHeight:I
+Landroid/R$styleable;->AndroidManifestLayout_defaultWidth:I
+Landroid/R$styleable;->AndroidManifestLayout_gravity:I
+Landroid/R$styleable;->AndroidManifestLayout_minHeight:I
+Landroid/R$styleable;->AndroidManifestLayout_minWidth:I
+Landroid/R$styleable;->AndroidManifestLibrary:[I
+Landroid/R$styleable;->AndroidManifestLibrary_name:I
+Landroid/R$styleable;->AndroidManifestMetaData:[I
+Landroid/R$styleable;->AndroidManifestMetaData_name:I
+Landroid/R$styleable;->AndroidManifestMetaData_resource:I
+Landroid/R$styleable;->AndroidManifestMetaData_value:I
+Landroid/R$styleable;->AndroidManifestOriginalPackage:[I
+Landroid/R$styleable;->AndroidManifestOriginalPackage_name:I
+Landroid/R$styleable;->AndroidManifestPackageVerifier:[I
+Landroid/R$styleable;->AndroidManifestPackageVerifier_name:I
+Landroid/R$styleable;->AndroidManifestPackageVerifier_publicKey:I
+Landroid/R$styleable;->AndroidManifestPathPermission:[I
+Landroid/R$styleable;->AndroidManifestPathPermission_path:I
+Landroid/R$styleable;->AndroidManifestPathPermission_pathPattern:I
+Landroid/R$styleable;->AndroidManifestPathPermission_pathPrefix:I
+Landroid/R$styleable;->AndroidManifestPathPermission_permission:I
+Landroid/R$styleable;->AndroidManifestPathPermission_readPermission:I
+Landroid/R$styleable;->AndroidManifestPathPermission_writePermission:I
+Landroid/R$styleable;->AndroidManifestPermission:[I
+Landroid/R$styleable;->AndroidManifestPermissionGroup:[I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_banner:I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_description:I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_icon:I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_label:I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_logo:I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_name:I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_permissionGroupFlags:I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_priority:I
+Landroid/R$styleable;->AndroidManifestPermissionGroup_roundIcon:I
+Landroid/R$styleable;->AndroidManifestPermissionTree:[I
+Landroid/R$styleable;->AndroidManifestPermissionTree_banner:I
+Landroid/R$styleable;->AndroidManifestPermissionTree_icon:I
+Landroid/R$styleable;->AndroidManifestPermissionTree_label:I
+Landroid/R$styleable;->AndroidManifestPermissionTree_logo:I
+Landroid/R$styleable;->AndroidManifestPermissionTree_name:I
+Landroid/R$styleable;->AndroidManifestPermissionTree_roundIcon:I
+Landroid/R$styleable;->AndroidManifestPermission_banner:I
+Landroid/R$styleable;->AndroidManifestPermission_description:I
+Landroid/R$styleable;->AndroidManifestPermission_icon:I
+Landroid/R$styleable;->AndroidManifestPermission_label:I
+Landroid/R$styleable;->AndroidManifestPermission_logo:I
+Landroid/R$styleable;->AndroidManifestPermission_name:I
+Landroid/R$styleable;->AndroidManifestPermission_permissionFlags:I
+Landroid/R$styleable;->AndroidManifestPermission_permissionGroup:I
+Landroid/R$styleable;->AndroidManifestPermission_protectionLevel:I
+Landroid/R$styleable;->AndroidManifestPermission_roundIcon:I
+Landroid/R$styleable;->AndroidManifestProtectedBroadcast:[I
+Landroid/R$styleable;->AndroidManifestProtectedBroadcast_name:I
+Landroid/R$styleable;->AndroidManifestProvider:[I
+Landroid/R$styleable;->AndroidManifestProvider_authorities:I
+Landroid/R$styleable;->AndroidManifestProvider_banner:I
+Landroid/R$styleable;->AndroidManifestProvider_description:I
+Landroid/R$styleable;->AndroidManifestProvider_directBootAware:I
+Landroid/R$styleable;->AndroidManifestProvider_enabled:I
+Landroid/R$styleable;->AndroidManifestProvider_exported:I
+Landroid/R$styleable;->AndroidManifestProvider_grantUriPermissions:I
+Landroid/R$styleable;->AndroidManifestProvider_icon:I
+Landroid/R$styleable;->AndroidManifestProvider_initOrder:I
+Landroid/R$styleable;->AndroidManifestProvider_label:I
+Landroid/R$styleable;->AndroidManifestProvider_logo:I
+Landroid/R$styleable;->AndroidManifestProvider_multiprocess:I
+Landroid/R$styleable;->AndroidManifestProvider_name:I
+Landroid/R$styleable;->AndroidManifestProvider_permission:I
+Landroid/R$styleable;->AndroidManifestProvider_process:I
+Landroid/R$styleable;->AndroidManifestProvider_readPermission:I
+Landroid/R$styleable;->AndroidManifestProvider_roundIcon:I
+Landroid/R$styleable;->AndroidManifestProvider_singleUser:I
+Landroid/R$styleable;->AndroidManifestProvider_splitName:I
+Landroid/R$styleable;->AndroidManifestProvider_syncable:I
+Landroid/R$styleable;->AndroidManifestProvider_visibleToInstantApps:I
+Landroid/R$styleable;->AndroidManifestProvider_writePermission:I
+Landroid/R$styleable;->AndroidManifestPublicKey:[I
+Landroid/R$styleable;->AndroidManifestPublicKey_name:I
+Landroid/R$styleable;->AndroidManifestPublicKey_value:I
+Landroid/R$styleable;->AndroidManifestReceiver:[I
+Landroid/R$styleable;->AndroidManifestReceiver_banner:I
+Landroid/R$styleable;->AndroidManifestReceiver_description:I
+Landroid/R$styleable;->AndroidManifestReceiver_directBootAware:I
+Landroid/R$styleable;->AndroidManifestReceiver_enabled:I
+Landroid/R$styleable;->AndroidManifestReceiver_exported:I
+Landroid/R$styleable;->AndroidManifestReceiver_icon:I
+Landroid/R$styleable;->AndroidManifestReceiver_label:I
+Landroid/R$styleable;->AndroidManifestReceiver_logo:I
+Landroid/R$styleable;->AndroidManifestReceiver_name:I
+Landroid/R$styleable;->AndroidManifestReceiver_permission:I
+Landroid/R$styleable;->AndroidManifestReceiver_process:I
+Landroid/R$styleable;->AndroidManifestReceiver_roundIcon:I
+Landroid/R$styleable;->AndroidManifestReceiver_singleUser:I
+Landroid/R$styleable;->AndroidManifestResourceOverlay:[I
+Landroid/R$styleable;->AndroidManifestResourceOverlay_category:I
+Landroid/R$styleable;->AndroidManifestResourceOverlay_isStatic:I
+Landroid/R$styleable;->AndroidManifestResourceOverlay_priority:I
+Landroid/R$styleable;->AndroidManifestResourceOverlay_requiredSystemPropertyName:I
+Landroid/R$styleable;->AndroidManifestResourceOverlay_requiredSystemPropertyValue:I
+Landroid/R$styleable;->AndroidManifestResourceOverlay_targetPackage:I
+Landroid/R$styleable;->AndroidManifestRestrictUpdate:[I
+Landroid/R$styleable;->AndroidManifestRestrictUpdate_hash:I
+Landroid/R$styleable;->AndroidManifestService:[I
+Landroid/R$styleable;->AndroidManifestService_banner:I
+Landroid/R$styleable;->AndroidManifestService_description:I
+Landroid/R$styleable;->AndroidManifestService_directBootAware:I
+Landroid/R$styleable;->AndroidManifestService_enabled:I
+Landroid/R$styleable;->AndroidManifestService_exported:I
+Landroid/R$styleable;->AndroidManifestService_externalService:I
+Landroid/R$styleable;->AndroidManifestService_icon:I
+Landroid/R$styleable;->AndroidManifestService_isolatedProcess:I
+Landroid/R$styleable;->AndroidManifestService_label:I
+Landroid/R$styleable;->AndroidManifestService_logo:I
+Landroid/R$styleable;->AndroidManifestService_name:I
+Landroid/R$styleable;->AndroidManifestService_permission:I
+Landroid/R$styleable;->AndroidManifestService_process:I
+Landroid/R$styleable;->AndroidManifestService_roundIcon:I
+Landroid/R$styleable;->AndroidManifestService_singleUser:I
+Landroid/R$styleable;->AndroidManifestService_splitName:I
+Landroid/R$styleable;->AndroidManifestService_stopWithTask:I
+Landroid/R$styleable;->AndroidManifestService_visibleToInstantApps:I
+Landroid/R$styleable;->AndroidManifestStaticLibrary:[I
+Landroid/R$styleable;->AndroidManifestStaticLibrary_name:I
+Landroid/R$styleable;->AndroidManifestStaticLibrary_version:I
+Landroid/R$styleable;->AndroidManifestStaticLibrary_versionMajor:I
+Landroid/R$styleable;->AndroidManifestSupportsInputInputType:[I
+Landroid/R$styleable;->AndroidManifestSupportsInputInputType_name:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens:[I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_anyDensity:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_compatibleWidthLimitDp:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_largeScreens:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_largestWidthLimitDp:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_normalScreens:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_requiresSmallestWidthDp:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_resizeable:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_smallScreens:I
+Landroid/R$styleable;->AndroidManifestSupportsScreens_xlargeScreens:I
+Landroid/R$styleable;->AndroidManifestUpgradeKeySet:[I
+Landroid/R$styleable;->AndroidManifestUpgradeKeySet_name:I
+Landroid/R$styleable;->AndroidManifestUsesConfiguration:[I
+Landroid/R$styleable;->AndroidManifestUsesConfiguration_reqFiveWayNav:I
+Landroid/R$styleable;->AndroidManifestUsesConfiguration_reqHardKeyboard:I
+Landroid/R$styleable;->AndroidManifestUsesConfiguration_reqKeyboardType:I
+Landroid/R$styleable;->AndroidManifestUsesConfiguration_reqNavigation:I
+Landroid/R$styleable;->AndroidManifestUsesConfiguration_reqTouchScreen:I
+Landroid/R$styleable;->AndroidManifestUsesFeature:[I
+Landroid/R$styleable;->AndroidManifestUsesFeature_glEsVersion:I
+Landroid/R$styleable;->AndroidManifestUsesFeature_name:I
+Landroid/R$styleable;->AndroidManifestUsesFeature_required:I
+Landroid/R$styleable;->AndroidManifestUsesFeature_version:I
+Landroid/R$styleable;->AndroidManifestUsesLibrary:[I
+Landroid/R$styleable;->AndroidManifestUsesLibrary_name:I
+Landroid/R$styleable;->AndroidManifestUsesLibrary_required:I
+Landroid/R$styleable;->AndroidManifestUsesPermission:[I
+Landroid/R$styleable;->AndroidManifestUsesPermission_maxSdkVersion:I
+Landroid/R$styleable;->AndroidManifestUsesPermission_name:I
+Landroid/R$styleable;->AndroidManifestUsesPermission_requiredFeature:I
+Landroid/R$styleable;->AndroidManifestUsesPermission_requiredNotFeature:I
+Landroid/R$styleable;->AndroidManifestUsesSdk:[I
+Landroid/R$styleable;->AndroidManifestUsesSdk_maxSdkVersion:I
+Landroid/R$styleable;->AndroidManifestUsesSdk_minSdkVersion:I
+Landroid/R$styleable;->AndroidManifestUsesSdk_targetSdkVersion:I
+Landroid/R$styleable;->AndroidManifestUsesSplit:[I
+Landroid/R$styleable;->AndroidManifestUsesSplit_name:I
+Landroid/R$styleable;->AndroidManifestUsesStaticLibrary:[I
+Landroid/R$styleable;->AndroidManifestUsesStaticLibrary_certDigest:I
+Landroid/R$styleable;->AndroidManifestUsesStaticLibrary_name:I
+Landroid/R$styleable;->AndroidManifestUsesStaticLibrary_version:I
+Landroid/R$styleable;->AndroidManifest_compileSdkVersion:I
+Landroid/R$styleable;->AndroidManifest_compileSdkVersionCodename:I
+Landroid/R$styleable;->AndroidManifest_installLocation:I
+Landroid/R$styleable;->AndroidManifest_isFeatureSplit:I
+Landroid/R$styleable;->AndroidManifest_isolatedSplits:I
+Landroid/R$styleable;->AndroidManifest_revisionCode:I
+Landroid/R$styleable;->AndroidManifest_sharedUserId:I
+Landroid/R$styleable;->AndroidManifest_sharedUserLabel:I
+Landroid/R$styleable;->AndroidManifest_targetSandboxVersion:I
+Landroid/R$styleable;->AndroidManifest_versionCode:I
+Landroid/R$styleable;->AndroidManifest_versionCodeMajor:I
+Landroid/R$styleable;->AndroidManifest_versionName:I
+Landroid/R$styleable;->AnimatedImageDrawable:[I
+Landroid/R$styleable;->AnimatedImageDrawable_autoMirrored:I
+Landroid/R$styleable;->AnimatedImageDrawable_autoStart:I
+Landroid/R$styleable;->AnimatedImageDrawable_repeatCount:I
+Landroid/R$styleable;->AnimatedImageDrawable_src:I
+Landroid/R$styleable;->AnimatedRotateDrawable:[I
+Landroid/R$styleable;->AnimatedRotateDrawable_drawable:I
+Landroid/R$styleable;->AnimatedRotateDrawable_pivotX:I
+Landroid/R$styleable;->AnimatedRotateDrawable_pivotY:I
+Landroid/R$styleable;->AnimatedRotateDrawable_visible:I
+Landroid/R$styleable;->AnimatedStateListDrawable:[I
+Landroid/R$styleable;->AnimatedStateListDrawableItem:[I
+Landroid/R$styleable;->AnimatedStateListDrawableItem_drawable:I
+Landroid/R$styleable;->AnimatedStateListDrawableItem_id:I
+Landroid/R$styleable;->AnimatedStateListDrawableTransition:[I
+Landroid/R$styleable;->AnimatedStateListDrawableTransition_drawable:I
+Landroid/R$styleable;->AnimatedStateListDrawableTransition_fromId:I
+Landroid/R$styleable;->AnimatedStateListDrawableTransition_reversible:I
+Landroid/R$styleable;->AnimatedStateListDrawableTransition_toId:I
+Landroid/R$styleable;->AnimatedStateListDrawable_autoMirrored:I
+Landroid/R$styleable;->AnimatedStateListDrawable_constantSize:I
+Landroid/R$styleable;->AnimatedStateListDrawable_dither:I
+Landroid/R$styleable;->AnimatedStateListDrawable_enterFadeDuration:I
+Landroid/R$styleable;->AnimatedStateListDrawable_exitFadeDuration:I
+Landroid/R$styleable;->AnimatedStateListDrawable_variablePadding:I
+Landroid/R$styleable;->AnimatedStateListDrawable_visible:I
+Landroid/R$styleable;->AnimatedVectorDrawable:[I
+Landroid/R$styleable;->AnimatedVectorDrawableTarget:[I
+Landroid/R$styleable;->AnimatedVectorDrawableTarget_animation:I
+Landroid/R$styleable;->AnimatedVectorDrawableTarget_name:I
+Landroid/R$styleable;->AnimatedVectorDrawable_drawable:I
+Landroid/R$styleable;->Animation:[I
+Landroid/R$styleable;->AnimationDrawable:[I
+Landroid/R$styleable;->AnimationDrawableItem:[I
+Landroid/R$styleable;->AnimationDrawableItem_drawable:I
+Landroid/R$styleable;->AnimationDrawableItem_duration:I
+Landroid/R$styleable;->AnimationDrawable_oneshot:I
+Landroid/R$styleable;->AnimationDrawable_variablePadding:I
+Landroid/R$styleable;->AnimationDrawable_visible:I
+Landroid/R$styleable;->AnimationScaleListDrawable:[I
+Landroid/R$styleable;->AnimationScaleListDrawableItem:[I
+Landroid/R$styleable;->AnimationScaleListDrawableItem_drawable:I
+Landroid/R$styleable;->AnimationSet:[I
+Landroid/R$styleable;->AnimationSet_duration:I
+Landroid/R$styleable;->AnimationSet_fillAfter:I
+Landroid/R$styleable;->AnimationSet_fillBefore:I
+Landroid/R$styleable;->AnimationSet_repeatMode:I
+Landroid/R$styleable;->AnimationSet_shareInterpolator:I
+Landroid/R$styleable;->AnimationSet_startOffset:I
+Landroid/R$styleable;->Animation_background:I
+Landroid/R$styleable;->Animation_detachWallpaper:I
+Landroid/R$styleable;->Animation_duration:I
+Landroid/R$styleable;->Animation_fillAfter:I
+Landroid/R$styleable;->Animation_fillBefore:I
+Landroid/R$styleable;->Animation_fillEnabled:I
+Landroid/R$styleable;->Animation_interpolator:I
+Landroid/R$styleable;->Animation_repeatCount:I
+Landroid/R$styleable;->Animation_repeatMode:I
+Landroid/R$styleable;->Animation_startOffset:I
+Landroid/R$styleable;->Animation_zAdjustment:I
+Landroid/R$styleable;->Animator:[I
+Landroid/R$styleable;->AnimatorSet:[I
+Landroid/R$styleable;->AnimatorSet_ordering:I
+Landroid/R$styleable;->Animator_duration:I
+Landroid/R$styleable;->Animator_interpolator:I
+Landroid/R$styleable;->Animator_repeatCount:I
+Landroid/R$styleable;->Animator_repeatMode:I
+Landroid/R$styleable;->Animator_startOffset:I
+Landroid/R$styleable;->Animator_valueFrom:I
+Landroid/R$styleable;->Animator_valueTo:I
+Landroid/R$styleable;->Animator_valueType:I
+Landroid/R$styleable;->AnticipateInterpolator:[I
+Landroid/R$styleable;->AnticipateInterpolator_tension:I
+Landroid/R$styleable;->AnticipateOvershootInterpolator:[I
+Landroid/R$styleable;->AnticipateOvershootInterpolator_extraTension:I
+Landroid/R$styleable;->AnticipateOvershootInterpolator_tension:I
+Landroid/R$styleable;->AppWidgetProviderInfo:[I
+Landroid/R$styleable;->AppWidgetProviderInfo_autoAdvanceViewId:I
+Landroid/R$styleable;->AppWidgetProviderInfo_configure:I
+Landroid/R$styleable;->AppWidgetProviderInfo_initialKeyguardLayout:I
+Landroid/R$styleable;->AppWidgetProviderInfo_initialLayout:I
+Landroid/R$styleable;->AppWidgetProviderInfo_minHeight:I
+Landroid/R$styleable;->AppWidgetProviderInfo_minResizeHeight:I
+Landroid/R$styleable;->AppWidgetProviderInfo_minResizeWidth:I
+Landroid/R$styleable;->AppWidgetProviderInfo_minWidth:I
+Landroid/R$styleable;->AppWidgetProviderInfo_previewImage:I
+Landroid/R$styleable;->AppWidgetProviderInfo_resizeMode:I
+Landroid/R$styleable;->AppWidgetProviderInfo_updatePeriodMillis:I
+Landroid/R$styleable;->AppWidgetProviderInfo_widgetCategory:I
+Landroid/R$styleable;->AppWidgetProviderInfo_widgetFeatures:I
+Landroid/R$styleable;->ArcMotion:[I
+Landroid/R$styleable;->ArcMotion_maximumAngle:I
+Landroid/R$styleable;->ArcMotion_minimumHorizontalAngle:I
+Landroid/R$styleable;->ArcMotion_minimumVerticalAngle:I
+Landroid/R$styleable;->AutoCompleteTextView:[I
+Landroid/R$styleable;->AutoCompleteTextView_completionHint:I
+Landroid/R$styleable;->AutoCompleteTextView_completionHintView:I
+Landroid/R$styleable;->AutoCompleteTextView_completionThreshold:I
+Landroid/R$styleable;->AutoCompleteTextView_dropDownAnchor:I
+Landroid/R$styleable;->AutoCompleteTextView_dropDownHeight:I
+Landroid/R$styleable;->AutoCompleteTextView_dropDownSelector:I
+Landroid/R$styleable;->AutoCompleteTextView_dropDownWidth:I
+Landroid/R$styleable;->AutoCompleteTextView_inputType:I
+Landroid/R$styleable;->AutoCompleteTextView_popupTheme:I
+Landroid/R$styleable;->AutofillService:[I
+Landroid/R$styleable;->AutofillService_CompatibilityPackage:[I
+Landroid/R$styleable;->AutofillService_CompatibilityPackage_maxLongVersionCode:I
+Landroid/R$styleable;->AutofillService_CompatibilityPackage_name:I
+Landroid/R$styleable;->AutofillService_settingsActivity:I
+Landroid/R$styleable;->BitmapDrawable:[I
+Landroid/R$styleable;->BitmapDrawable_alpha:I
+Landroid/R$styleable;->BitmapDrawable_antialias:I
+Landroid/R$styleable;->BitmapDrawable_autoMirrored:I
+Landroid/R$styleable;->BitmapDrawable_dither:I
+Landroid/R$styleable;->BitmapDrawable_filter:I
+Landroid/R$styleable;->BitmapDrawable_gravity:I
+Landroid/R$styleable;->BitmapDrawable_mipMap:I
+Landroid/R$styleable;->BitmapDrawable_src:I
+Landroid/R$styleable;->BitmapDrawable_tileMode:I
+Landroid/R$styleable;->BitmapDrawable_tileModeX:I
+Landroid/R$styleable;->BitmapDrawable_tileModeY:I
+Landroid/R$styleable;->BitmapDrawable_tint:I
+Landroid/R$styleable;->BitmapDrawable_tintMode:I
+Landroid/R$styleable;->Button:[I
+Landroid/R$styleable;->ButtonBarLayout:[I
+Landroid/R$styleable;->CalendarView_maxDate:I
+Landroid/R$styleable;->CalendarView_minDate:I
+Landroid/R$styleable;->ChangeBounds:[I
+Landroid/R$styleable;->ChangeBounds_resizeClip:I
+Landroid/R$styleable;->ChangeTransform:[I
+Landroid/R$styleable;->ChangeTransform_reparent:I
+Landroid/R$styleable;->ChangeTransform_reparentWithOverlay:I
+Landroid/R$styleable;->CheckBoxPreference_disableDependentsState:I
+Landroid/R$styleable;->CheckBoxPreference_summaryOff:I
+Landroid/R$styleable;->CheckBoxPreference_summaryOn:I
+Landroid/R$styleable;->CheckedTextView_checked:I
+Landroid/R$styleable;->CheckedTextView_checkMarkTint:I
+Landroid/R$styleable;->CheckedTextView_checkMarkTintMode:I
+Landroid/R$styleable;->Chronometer:[I
+Landroid/R$styleable;->Chronometer_countDown:I
+Landroid/R$styleable;->Chronometer_format:I
+Landroid/R$styleable;->ClipDrawable:[I
+Landroid/R$styleable;->ClipDrawable_clipOrientation:I
+Landroid/R$styleable;->ClipDrawable_drawable:I
+Landroid/R$styleable;->ClipDrawable_gravity:I
+Landroid/R$styleable;->ClipRectAnimation:[I
+Landroid/R$styleable;->ColorDrawable:[I
+Landroid/R$styleable;->ColorDrawable_color:I
+Landroid/R$styleable;->ColorStateListItem:[I
+Landroid/R$styleable;->ColorStateListItem_alpha:I
+Landroid/R$styleable;->ColorStateListItem_color:I
+Landroid/R$styleable;->CompoundButton_buttonTint:I
+Landroid/R$styleable;->CompoundButton_buttonTintMode:I
+Landroid/R$styleable;->CompoundButton_checked:I
+Landroid/R$styleable;->ContactsDataKind_allContactsName:I
+Landroid/R$styleable;->ContactsDataKind_detailColumn:I
+Landroid/R$styleable;->ContactsDataKind_detailSocialSummary:I
+Landroid/R$styleable;->ContactsDataKind_icon:I
+Landroid/R$styleable;->ContactsDataKind_mimeType:I
+Landroid/R$styleable;->ContactsDataKind_summaryColumn:I
+Landroid/R$styleable;->CycleInterpolator:[I
+Landroid/R$styleable;->CycleInterpolator_cycles:I
+Landroid/R$styleable;->DatePicker_calendarTextColor:I
+Landroid/R$styleable;->DatePicker_calendarViewShown:I
+Landroid/R$styleable;->DatePicker_datePickerMode:I
+Landroid/R$styleable;->DatePicker_dayOfWeekBackground:I
+Landroid/R$styleable;->DatePicker_dayOfWeekTextAppearance:I
+Landroid/R$styleable;->DatePicker_endYear:I
+Landroid/R$styleable;->DatePicker_firstDayOfWeek:I
+Landroid/R$styleable;->DatePicker_headerBackground:I
+Landroid/R$styleable;->DatePicker_headerDayOfMonthTextAppearance:I
+Landroid/R$styleable;->DatePicker_headerMonthTextAppearance:I
+Landroid/R$styleable;->DatePicker_headerYearTextAppearance:I
+Landroid/R$styleable;->DatePicker_maxDate:I
+Landroid/R$styleable;->DatePicker_minDate:I
+Landroid/R$styleable;->DatePicker_spinnersShown:I
+Landroid/R$styleable;->DatePicker_startYear:I
+Landroid/R$styleable;->DatePicker_yearListItemTextAppearance:I
+Landroid/R$styleable;->DatePicker_yearListSelectorColor:I
+Landroid/R$styleable;->DateTimeView:[I
+Landroid/R$styleable;->DecelerateInterpolator:[I
+Landroid/R$styleable;->DecelerateInterpolator_factor:I
+Landroid/R$styleable;->DeviceAdmin:[I
+Landroid/R$styleable;->DeviceAdmin_visible:I
+Landroid/R$styleable;->DialogPreference_dialogIcon:I
+Landroid/R$styleable;->DialogPreference_dialogLayout:I
+Landroid/R$styleable;->DialogPreference_dialogMessage:I
+Landroid/R$styleable;->DialogPreference_dialogTitle:I
+Landroid/R$styleable;->DialogPreference_negativeButtonText:I
+Landroid/R$styleable;->DialogPreference_positiveButtonText:I
+Landroid/R$styleable;->Drawable:[I
+Landroid/R$styleable;->DrawableCorners:[I
+Landroid/R$styleable;->DrawableCorners_bottomLeftRadius:I
+Landroid/R$styleable;->DrawableCorners_bottomRightRadius:I
+Landroid/R$styleable;->DrawableCorners_radius:I
+Landroid/R$styleable;->DrawableCorners_topLeftRadius:I
+Landroid/R$styleable;->DrawableCorners_topRightRadius:I
+Landroid/R$styleable;->DrawableStates_state_accelerated:I
+Landroid/R$styleable;->DrawableStates_state_activated:I
+Landroid/R$styleable;->DrawableStates_state_active:I
+Landroid/R$styleable;->DrawableStates_state_checkable:I
+Landroid/R$styleable;->DrawableStates_state_checked:I
+Landroid/R$styleable;->DrawableStates_state_drag_can_accept:I
+Landroid/R$styleable;->DrawableStates_state_drag_hovered:I
+Landroid/R$styleable;->DrawableStates_state_enabled:I
+Landroid/R$styleable;->DrawableStates_state_first:I
+Landroid/R$styleable;->DrawableStates_state_focused:I
+Landroid/R$styleable;->DrawableStates_state_hovered:I
+Landroid/R$styleable;->DrawableStates_state_last:I
+Landroid/R$styleable;->DrawableStates_state_middle:I
+Landroid/R$styleable;->DrawableStates_state_pressed:I
+Landroid/R$styleable;->DrawableStates_state_selected:I
+Landroid/R$styleable;->DrawableStates_state_single:I
+Landroid/R$styleable;->DrawableStates_state_window_focused:I
+Landroid/R$styleable;->DrawableWrapper:[I
+Landroid/R$styleable;->DrawableWrapper_drawable:I
+Landroid/R$styleable;->Drawable_autoMirrored:I
+Landroid/R$styleable;->Drawable_visible:I
+Landroid/R$styleable;->Dream:[I
+Landroid/R$styleable;->Dream_settingsActivity:I
+Landroid/R$styleable;->EdgeEffect:[I
+Landroid/R$styleable;->EdgeEffect_colorEdgeEffect:I
+Landroid/R$styleable;->EditText:[I
+Landroid/R$styleable;->EpicenterTranslateClipReveal:[I
+Landroid/R$styleable;->ExpandableListChildIndicatorState:[I
+Landroid/R$styleable;->ExpandableListChildIndicatorState_state_last:I
+Landroid/R$styleable;->ExpandableListGroupIndicatorState:[I
+Landroid/R$styleable;->ExpandableListGroupIndicatorState_state_empty:I
+Landroid/R$styleable;->ExpandableListGroupIndicatorState_state_expanded:I
+Landroid/R$styleable;->ExpandableListView_childDivider:I
+Landroid/R$styleable;->ExpandableListView_childIndicator:I
+Landroid/R$styleable;->ExpandableListView_childIndicatorEnd:I
+Landroid/R$styleable;->ExpandableListView_childIndicatorLeft:I
+Landroid/R$styleable;->ExpandableListView_childIndicatorRight:I
+Landroid/R$styleable;->ExpandableListView_childIndicatorStart:I
+Landroid/R$styleable;->ExpandableListView_groupIndicator:I
+Landroid/R$styleable;->ExpandableListView_indicatorEnd:I
+Landroid/R$styleable;->ExpandableListView_indicatorLeft:I
+Landroid/R$styleable;->ExpandableListView_indicatorRight:I
+Landroid/R$styleable;->ExpandableListView_indicatorStart:I
+Landroid/R$styleable;->Extra:[I
+Landroid/R$styleable;->Extra_name:I
+Landroid/R$styleable;->Extra_value:I
+Landroid/R$styleable;->Fade:[I
+Landroid/R$styleable;->Fade_fadingMode:I
+Landroid/R$styleable;->FastScroll:[I
+Landroid/R$styleable;->FastScroll_minHeight:I
+Landroid/R$styleable;->FastScroll_minWidth:I
+Landroid/R$styleable;->FastScroll_padding:I
+Landroid/R$styleable;->FastScroll_textAppearance:I
+Landroid/R$styleable;->FastScroll_textColor:I
+Landroid/R$styleable;->FastScroll_textSize:I
+Landroid/R$styleable;->FastScroll_thumbPosition:I
+Landroid/R$styleable;->FontFamily:[I
+Landroid/R$styleable;->FontFamilyFont:[I
+Landroid/R$styleable;->FontFamilyFont_font:I
+Landroid/R$styleable;->FontFamilyFont_fontStyle:I
+Landroid/R$styleable;->FontFamilyFont_fontVariationSettings:I
+Landroid/R$styleable;->FontFamilyFont_fontWeight:I
+Landroid/R$styleable;->FontFamilyFont_ttcIndex:I
+Landroid/R$styleable;->FontFamily_fontProviderAuthority:I
+Landroid/R$styleable;->FontFamily_fontProviderCerts:I
+Landroid/R$styleable;->FontFamily_fontProviderPackage:I
+Landroid/R$styleable;->FontFamily_fontProviderQuery:I
+Landroid/R$styleable;->Fragment:[I
+Landroid/R$styleable;->FragmentAnimation:[I
+Landroid/R$styleable;->FragmentAnimation_fragmentCloseEnterAnimation:I
+Landroid/R$styleable;->FragmentAnimation_fragmentCloseExitAnimation:I
+Landroid/R$styleable;->FragmentAnimation_fragmentFadeEnterAnimation:I
+Landroid/R$styleable;->FragmentAnimation_fragmentFadeExitAnimation:I
+Landroid/R$styleable;->FragmentAnimation_fragmentOpenEnterAnimation:I
+Landroid/R$styleable;->FragmentAnimation_fragmentOpenExitAnimation:I
+Landroid/R$styleable;->FragmentBreadCrumbs:[I
+Landroid/R$styleable;->FragmentBreadCrumbs_gravity:I
+Landroid/R$styleable;->Fragment_fragmentAllowEnterTransitionOverlap:I
+Landroid/R$styleable;->Fragment_fragmentAllowReturnTransitionOverlap:I
+Landroid/R$styleable;->Fragment_fragmentEnterTransition:I
+Landroid/R$styleable;->Fragment_fragmentExitTransition:I
+Landroid/R$styleable;->Fragment_fragmentReenterTransition:I
+Landroid/R$styleable;->Fragment_fragmentReturnTransition:I
+Landroid/R$styleable;->Fragment_fragmentSharedElementEnterTransition:I
+Landroid/R$styleable;->Fragment_fragmentSharedElementReturnTransition:I
+Landroid/R$styleable;->Fragment_id:I
+Landroid/R$styleable;->Fragment_name:I
+Landroid/R$styleable;->Fragment_tag:I
+Landroid/R$styleable;->FrameLayout:[I
+Landroid/R$styleable;->FrameLayout_Layout_layout_gravity:I
+Landroid/R$styleable;->FrameLayout_measureAllChildren:I
+Landroid/R$styleable;->Gallery:[I
+Landroid/R$styleable;->Gallery_animationDuration:I
+Landroid/R$styleable;->Gallery_gravity:I
+Landroid/R$styleable;->Gallery_spacing:I
+Landroid/R$styleable;->Gallery_unselectedAlpha:I
+Landroid/R$styleable;->GestureOverlayView:[I
+Landroid/R$styleable;->GestureOverlayView_eventsInterceptionEnabled:I
+Landroid/R$styleable;->GestureOverlayView_fadeDuration:I
+Landroid/R$styleable;->GestureOverlayView_fadeEnabled:I
+Landroid/R$styleable;->GestureOverlayView_fadeOffset:I
+Landroid/R$styleable;->GestureOverlayView_gestureColor:I
+Landroid/R$styleable;->GestureOverlayView_gestureStrokeAngleThreshold:I
+Landroid/R$styleable;->GestureOverlayView_gestureStrokeLengthThreshold:I
+Landroid/R$styleable;->GestureOverlayView_gestureStrokeSquarenessThreshold:I
+Landroid/R$styleable;->GestureOverlayView_gestureStrokeType:I
+Landroid/R$styleable;->GestureOverlayView_gestureStrokeWidth:I
+Landroid/R$styleable;->GestureOverlayView_orientation:I
+Landroid/R$styleable;->GestureOverlayView_uncertainGestureColor:I
+Landroid/R$styleable;->GlowPadView:[I
+Landroid/R$styleable;->GlowPadView_directionDescriptions:I
+Landroid/R$styleable;->GlowPadView_targetDescriptions:I
+Landroid/R$styleable;->GradientColor:[I
+Landroid/R$styleable;->GradientColorItem:[I
+Landroid/R$styleable;->GradientColorItem_color:I
+Landroid/R$styleable;->GradientColorItem_offset:I
+Landroid/R$styleable;->GradientColor_centerColor:I
+Landroid/R$styleable;->GradientColor_centerX:I
+Landroid/R$styleable;->GradientColor_centerY:I
+Landroid/R$styleable;->GradientColor_endColor:I
+Landroid/R$styleable;->GradientColor_endX:I
+Landroid/R$styleable;->GradientColor_endY:I
+Landroid/R$styleable;->GradientColor_gradientRadius:I
+Landroid/R$styleable;->GradientColor_startColor:I
+Landroid/R$styleable;->GradientColor_startX:I
+Landroid/R$styleable;->GradientColor_startY:I
+Landroid/R$styleable;->GradientColor_tileMode:I
+Landroid/R$styleable;->GradientColor_type:I
+Landroid/R$styleable;->GradientDrawable:[I
+Landroid/R$styleable;->GradientDrawableGradient:[I
+Landroid/R$styleable;->GradientDrawableGradient_angle:I
+Landroid/R$styleable;->GradientDrawableGradient_centerColor:I
+Landroid/R$styleable;->GradientDrawableGradient_centerX:I
+Landroid/R$styleable;->GradientDrawableGradient_centerY:I
+Landroid/R$styleable;->GradientDrawableGradient_endColor:I
+Landroid/R$styleable;->GradientDrawableGradient_gradientRadius:I
+Landroid/R$styleable;->GradientDrawableGradient_startColor:I
+Landroid/R$styleable;->GradientDrawableGradient_type:I
+Landroid/R$styleable;->GradientDrawableGradient_useLevel:I
+Landroid/R$styleable;->GradientDrawablePadding:[I
+Landroid/R$styleable;->GradientDrawablePadding_bottom:I
+Landroid/R$styleable;->GradientDrawablePadding_left:I
+Landroid/R$styleable;->GradientDrawablePadding_right:I
+Landroid/R$styleable;->GradientDrawablePadding_top:I
+Landroid/R$styleable;->GradientDrawableSize:[I
+Landroid/R$styleable;->GradientDrawableSize_height:I
+Landroid/R$styleable;->GradientDrawableSize_width:I
+Landroid/R$styleable;->GradientDrawableSolid:[I
+Landroid/R$styleable;->GradientDrawableSolid_color:I
+Landroid/R$styleable;->GradientDrawableStroke:[I
+Landroid/R$styleable;->GradientDrawableStroke_color:I
+Landroid/R$styleable;->GradientDrawableStroke_dashGap:I
+Landroid/R$styleable;->GradientDrawableStroke_dashWidth:I
+Landroid/R$styleable;->GradientDrawableStroke_width:I
+Landroid/R$styleable;->GradientDrawable_dither:I
+Landroid/R$styleable;->GradientDrawable_innerRadius:I
+Landroid/R$styleable;->GradientDrawable_innerRadiusRatio:I
+Landroid/R$styleable;->GradientDrawable_shape:I
+Landroid/R$styleable;->GradientDrawable_thickness:I
+Landroid/R$styleable;->GradientDrawable_thicknessRatio:I
+Landroid/R$styleable;->GradientDrawable_tint:I
+Landroid/R$styleable;->GradientDrawable_tintMode:I
+Landroid/R$styleable;->GradientDrawable_useLevel:I
+Landroid/R$styleable;->GradientDrawable_visible:I
+Landroid/R$styleable;->GridLayout:[I
+Landroid/R$styleable;->GridLayoutAnimation:[I
+Landroid/R$styleable;->GridLayoutAnimation_columnDelay:I
+Landroid/R$styleable;->GridLayoutAnimation_direction:I
+Landroid/R$styleable;->GridLayoutAnimation_directionPriority:I
+Landroid/R$styleable;->GridLayoutAnimation_rowDelay:I
+Landroid/R$styleable;->GridLayout_alignmentMode:I
+Landroid/R$styleable;->GridLayout_columnCount:I
+Landroid/R$styleable;->GridLayout_columnOrderPreserved:I
+Landroid/R$styleable;->GridLayout_Layout:[I
+Landroid/R$styleable;->GridLayout_Layout_layout_column:I
+Landroid/R$styleable;->GridLayout_Layout_layout_columnSpan:I
+Landroid/R$styleable;->GridLayout_Layout_layout_columnWeight:I
+Landroid/R$styleable;->GridLayout_Layout_layout_gravity:I
+Landroid/R$styleable;->GridLayout_Layout_layout_row:I
+Landroid/R$styleable;->GridLayout_Layout_layout_rowSpan:I
+Landroid/R$styleable;->GridLayout_Layout_layout_rowWeight:I
+Landroid/R$styleable;->GridLayout_orientation:I
+Landroid/R$styleable;->GridLayout_rowCount:I
+Landroid/R$styleable;->GridLayout_rowOrderPreserved:I
+Landroid/R$styleable;->GridLayout_useDefaultMargins:I
+Landroid/R$styleable;->GridView:[I
+Landroid/R$styleable;->GridView_columnWidth:I
+Landroid/R$styleable;->GridView_gravity:I
+Landroid/R$styleable;->GridView_horizontalSpacing:I
+Landroid/R$styleable;->GridView_numColumns:I
+Landroid/R$styleable;->GridView_stretchMode:I
+Landroid/R$styleable;->GridView_verticalSpacing:I
+Landroid/R$styleable;->HorizontalScrollView_fillViewport:I
+Landroid/R$styleable;->HostApduService:[I
+Landroid/R$styleable;->HostApduService_apduServiceBanner:I
+Landroid/R$styleable;->HostApduService_description:I
+Landroid/R$styleable;->HostApduService_requireDeviceUnlock:I
+Landroid/R$styleable;->HostApduService_settingsActivity:I
+Landroid/R$styleable;->HostNfcFService:[I
+Landroid/R$styleable;->HostNfcFService_description:I
+Landroid/R$styleable;->Icon:[I
+Landroid/R$styleable;->IconDefault:[I
+Landroid/R$styleable;->IconDefault_icon:I
+Landroid/R$styleable;->IconMenuView:[I
+Landroid/R$styleable;->IconMenuView_maxItemsPerRow:I
+Landroid/R$styleable;->IconMenuView_maxRows:I
+Landroid/R$styleable;->IconMenuView_moreIcon:I
+Landroid/R$styleable;->IconMenuView_rowHeight:I
+Landroid/R$styleable;->Icon_icon:I
+Landroid/R$styleable;->Icon_mimeType:I
+Landroid/R$styleable;->ImageSwitcher:[I
+Landroid/R$styleable;->ImageView_baseline:I
+Landroid/R$styleable;->ImageView_tintMode:I
+Landroid/R$styleable;->Include:[I
+Landroid/R$styleable;->Include_id:I
+Landroid/R$styleable;->Include_visibility:I
+Landroid/R$styleable;->InputExtras:[I
+Landroid/R$styleable;->InputMethod:[I
+Landroid/R$styleable;->InputMethodService:[I
+Landroid/R$styleable;->InputMethodService_imeExtractEnterAnimation:I
+Landroid/R$styleable;->InputMethodService_imeExtractExitAnimation:I
+Landroid/R$styleable;->InputMethodService_imeFullscreenBackground:I
+Landroid/R$styleable;->InputMethod_isDefault:I
+Landroid/R$styleable;->InputMethod_isVrOnly:I
+Landroid/R$styleable;->InputMethod_settingsActivity:I
+Landroid/R$styleable;->InputMethod_Subtype:[I
+Landroid/R$styleable;->InputMethod_Subtype_icon:I
+Landroid/R$styleable;->InputMethod_Subtype_imeSubtypeExtraValue:I
+Landroid/R$styleable;->InputMethod_Subtype_imeSubtypeLocale:I
+Landroid/R$styleable;->InputMethod_Subtype_imeSubtypeMode:I
+Landroid/R$styleable;->InputMethod_Subtype_isAsciiCapable:I
+Landroid/R$styleable;->InputMethod_Subtype_isAuxiliary:I
+Landroid/R$styleable;->InputMethod_Subtype_label:I
+Landroid/R$styleable;->InputMethod_Subtype_languageTag:I
+Landroid/R$styleable;->InputMethod_Subtype_overridesImplicitlyEnabledSubtype:I
+Landroid/R$styleable;->InputMethod_Subtype_subtypeId:I
+Landroid/R$styleable;->InputMethod_supportsSwitchingToNextInputMethod:I
+Landroid/R$styleable;->InsetDrawable:[I
+Landroid/R$styleable;->InsetDrawable_drawable:I
+Landroid/R$styleable;->InsetDrawable_inset:I
+Landroid/R$styleable;->InsetDrawable_insetBottom:I
+Landroid/R$styleable;->InsetDrawable_insetLeft:I
+Landroid/R$styleable;->InsetDrawable_insetRight:I
+Landroid/R$styleable;->InsetDrawable_insetTop:I
+Landroid/R$styleable;->InsetDrawable_visible:I
+Landroid/R$styleable;->Intent:[I
+Landroid/R$styleable;->IntentCategory:[I
+Landroid/R$styleable;->IntentCategory_name:I
+Landroid/R$styleable;->Intent_action:I
+Landroid/R$styleable;->Intent_data:I
+Landroid/R$styleable;->Intent_mimeType:I
+Landroid/R$styleable;->Intent_targetClass:I
+Landroid/R$styleable;->Intent_targetPackage:I
+Landroid/R$styleable;->KeyboardLayout:[I
+Landroid/R$styleable;->KeyboardLayout_keyboardLayout:I
+Landroid/R$styleable;->KeyboardLayout_label:I
+Landroid/R$styleable;->KeyboardLayout_name:I
+Landroid/R$styleable;->KeyboardView:[I
+Landroid/R$styleable;->KeyboardViewPreviewState:[I
+Landroid/R$styleable;->KeyboardViewPreviewState_state_long_pressable:I
+Landroid/R$styleable;->KeyboardView_keyBackground:I
+Landroid/R$styleable;->KeyboardView_keyPreviewHeight:I
+Landroid/R$styleable;->KeyboardView_keyPreviewLayout:I
+Landroid/R$styleable;->KeyboardView_keyPreviewOffset:I
+Landroid/R$styleable;->KeyboardView_keyTextColor:I
+Landroid/R$styleable;->KeyboardView_keyTextSize:I
+Landroid/R$styleable;->KeyboardView_labelTextSize:I
+Landroid/R$styleable;->KeyboardView_popupLayout:I
+Landroid/R$styleable;->KeyboardView_shadowColor:I
+Landroid/R$styleable;->KeyboardView_shadowRadius:I
+Landroid/R$styleable;->KeyboardView_verticalCorrection:I
+Landroid/R$styleable;->Keyboard_Key_keyboardMode:I
+Landroid/R$styleable;->Keyframe:[I
+Landroid/R$styleable;->Keyframe_fraction:I
+Landroid/R$styleable;->Keyframe_interpolator:I
+Landroid/R$styleable;->Keyframe_value:I
+Landroid/R$styleable;->Keyframe_valueType:I
+Landroid/R$styleable;->KeyguardGlowStripView:[I
+Landroid/R$styleable;->LayerDrawable:[I
+Landroid/R$styleable;->LayerDrawableItem:[I
+Landroid/R$styleable;->LayerDrawableItem_bottom:I
+Landroid/R$styleable;->LayerDrawableItem_drawable:I
+Landroid/R$styleable;->LayerDrawableItem_end:I
+Landroid/R$styleable;->LayerDrawableItem_gravity:I
+Landroid/R$styleable;->LayerDrawableItem_height:I
+Landroid/R$styleable;->LayerDrawableItem_id:I
+Landroid/R$styleable;->LayerDrawableItem_left:I
+Landroid/R$styleable;->LayerDrawableItem_right:I
+Landroid/R$styleable;->LayerDrawableItem_start:I
+Landroid/R$styleable;->LayerDrawableItem_top:I
+Landroid/R$styleable;->LayerDrawableItem_width:I
+Landroid/R$styleable;->LayerDrawable_autoMirrored:I
+Landroid/R$styleable;->LayerDrawable_opacity:I
+Landroid/R$styleable;->LayerDrawable_paddingBottom:I
+Landroid/R$styleable;->LayerDrawable_paddingEnd:I
+Landroid/R$styleable;->LayerDrawable_paddingLeft:I
+Landroid/R$styleable;->LayerDrawable_paddingMode:I
+Landroid/R$styleable;->LayerDrawable_paddingRight:I
+Landroid/R$styleable;->LayerDrawable_paddingStart:I
+Landroid/R$styleable;->LayerDrawable_paddingTop:I
+Landroid/R$styleable;->LayoutAnimation:[I
+Landroid/R$styleable;->LayoutAnimation_animation:I
+Landroid/R$styleable;->LayoutAnimation_animationOrder:I
+Landroid/R$styleable;->LayoutAnimation_delay:I
+Landroid/R$styleable;->LayoutAnimation_interpolator:I
+Landroid/R$styleable;->LevelListDrawableItem:[I
+Landroid/R$styleable;->LevelListDrawableItem_drawable:I
+Landroid/R$styleable;->LevelListDrawableItem_maxLevel:I
+Landroid/R$styleable;->LevelListDrawableItem_minLevel:I
+Landroid/R$styleable;->Lighting:[I
+Landroid/R$styleable;->Lighting_ambientShadowAlpha:I
+Landroid/R$styleable;->Lighting_spotShadowAlpha:I
+Landroid/R$styleable;->LinearLayout_weightSum:I
+Landroid/R$styleable;->ListPopupWindow:[I
+Landroid/R$styleable;->ListPopupWindow_dropDownHorizontalOffset:I
+Landroid/R$styleable;->ListPopupWindow_dropDownVerticalOffset:I
+Landroid/R$styleable;->ListPreference:[I
+Landroid/R$styleable;->ListPreference_entries:I
+Landroid/R$styleable;->ListPreference_entryValues:I
+Landroid/R$styleable;->ListView_entries:I
+Landroid/R$styleable;->ListView_footerDividersEnabled:I
+Landroid/R$styleable;->ListView_headerDividersEnabled:I
+Landroid/R$styleable;->ListView_overScrollFooter:I
+Landroid/R$styleable;->ListView_overScrollHeader:I
+Landroid/R$styleable;->MapView:[I
+Landroid/R$styleable;->MapView_apiKey:I
+Landroid/R$styleable;->MaterialProgressDrawable:[I
+Landroid/R$styleable;->MaterialProgressDrawable_color:I
+Landroid/R$styleable;->MaterialProgressDrawable_height:I
+Landroid/R$styleable;->MaterialProgressDrawable_innerRadius:I
+Landroid/R$styleable;->MaterialProgressDrawable_thickness:I
+Landroid/R$styleable;->MaterialProgressDrawable_visible:I
+Landroid/R$styleable;->MaterialProgressDrawable_width:I
+Landroid/R$styleable;->MediaRouteButton:[I
+Landroid/R$styleable;->MediaRouteButton_mediaRouteTypes:I
+Landroid/R$styleable;->MediaRouteButton_minHeight:I
+Landroid/R$styleable;->MediaRouteButton_minWidth:I
+Landroid/R$styleable;->Menu:[I
+Landroid/R$styleable;->MenuGroup:[I
+Landroid/R$styleable;->MenuGroup_checkableBehavior:I
+Landroid/R$styleable;->MenuGroup_enabled:I
+Landroid/R$styleable;->MenuGroup_id:I
+Landroid/R$styleable;->MenuGroup_menuCategory:I
+Landroid/R$styleable;->MenuGroup_orderInCategory:I
+Landroid/R$styleable;->MenuGroup_visible:I
+Landroid/R$styleable;->MenuItem:[I
+Landroid/R$styleable;->MenuItemCheckedFocusedState:[I
+Landroid/R$styleable;->MenuItemCheckedFocusedState_state_checkable:I
+Landroid/R$styleable;->MenuItemCheckedFocusedState_state_checked:I
+Landroid/R$styleable;->MenuItemCheckedFocusedState_state_focused:I
+Landroid/R$styleable;->MenuItemCheckedState:[I
+Landroid/R$styleable;->MenuItemCheckedState_state_checkable:I
+Landroid/R$styleable;->MenuItemCheckedState_state_checked:I
+Landroid/R$styleable;->MenuItemUncheckedFocusedState:[I
+Landroid/R$styleable;->MenuItemUncheckedFocusedState_state_checkable:I
+Landroid/R$styleable;->MenuItemUncheckedFocusedState_state_focused:I
+Landroid/R$styleable;->MenuItemUncheckedState:[I
+Landroid/R$styleable;->MenuItemUncheckedState_state_checkable:I
+Landroid/R$styleable;->MenuItem_actionLayout:I
+Landroid/R$styleable;->MenuItem_actionProviderClass:I
+Landroid/R$styleable;->MenuItem_actionViewClass:I
+Landroid/R$styleable;->MenuItem_alphabeticModifiers:I
+Landroid/R$styleable;->MenuItem_alphabeticShortcut:I
+Landroid/R$styleable;->MenuItem_checkable:I
+Landroid/R$styleable;->MenuItem_checked:I
+Landroid/R$styleable;->MenuItem_contentDescription:I
+Landroid/R$styleable;->MenuItem_enabled:I
+Landroid/R$styleable;->MenuItem_icon:I
+Landroid/R$styleable;->MenuItem_iconTint:I
+Landroid/R$styleable;->MenuItem_iconTintMode:I
+Landroid/R$styleable;->MenuItem_id:I
+Landroid/R$styleable;->MenuItem_menuCategory:I
+Landroid/R$styleable;->MenuItem_numericModifiers:I
+Landroid/R$styleable;->MenuItem_numericShortcut:I
+Landroid/R$styleable;->MenuItem_onClick:I
+Landroid/R$styleable;->MenuItem_orderInCategory:I
+Landroid/R$styleable;->MenuItem_showAsAction:I
+Landroid/R$styleable;->MenuItem_title:I
+Landroid/R$styleable;->MenuItem_titleCondensed:I
+Landroid/R$styleable;->MenuItem_tooltipText:I
+Landroid/R$styleable;->MenuItem_visible:I
+Landroid/R$styleable;->MenuView:[I
+Landroid/R$styleable;->MenuView_headerBackground:I
+Landroid/R$styleable;->MenuView_horizontalDivider:I
+Landroid/R$styleable;->MenuView_itemBackground:I
+Landroid/R$styleable;->MenuView_itemIconDisabledAlpha:I
+Landroid/R$styleable;->MenuView_itemTextAppearance:I
+Landroid/R$styleable;->MenuView_subMenuArrow:I
+Landroid/R$styleable;->MenuView_verticalDivider:I
+Landroid/R$styleable;->MenuView_windowAnimationStyle:I
+Landroid/R$styleable;->MessagingLinearLayout:[I
+Landroid/R$styleable;->MessagingLinearLayout_spacing:I
+Landroid/R$styleable;->MultiSelectListPreference:[I
+Landroid/R$styleable;->MultiSelectListPreference_entries:I
+Landroid/R$styleable;->MultiSelectListPreference_entryValues:I
+Landroid/R$styleable;->Nfcid2Filter:[I
+Landroid/R$styleable;->Nfcid2Filter_name:I
+Landroid/R$styleable;->NinePatchDrawable:[I
+Landroid/R$styleable;->NinePatchDrawable_alpha:I
+Landroid/R$styleable;->NinePatchDrawable_autoMirrored:I
+Landroid/R$styleable;->NinePatchDrawable_dither:I
+Landroid/R$styleable;->NinePatchDrawable_src:I
+Landroid/R$styleable;->NinePatchDrawable_tint:I
+Landroid/R$styleable;->NinePatchDrawable_tintMode:I
+Landroid/R$styleable;->NotificationTheme:[I
+Landroid/R$styleable;->OffHostApduService:[I
+Landroid/R$styleable;->OffHostApduService_apduServiceBanner:I
+Landroid/R$styleable;->OffHostApduService_description:I
+Landroid/R$styleable;->OffHostApduService_settingsActivity:I
+Landroid/R$styleable;->OvershootInterpolator:[I
+Landroid/R$styleable;->OvershootInterpolator_tension:I
+Landroid/R$styleable;->PagedView:[I
+Landroid/R$styleable;->PathInterpolator:[I
+Landroid/R$styleable;->PathInterpolator_controlX1:I
+Landroid/R$styleable;->PathInterpolator_controlX2:I
+Landroid/R$styleable;->PathInterpolator_controlY1:I
+Landroid/R$styleable;->PathInterpolator_controlY2:I
+Landroid/R$styleable;->PathInterpolator_pathData:I
+Landroid/R$styleable;->PatternPathMotion:[I
+Landroid/R$styleable;->PatternPathMotion_patternPathData:I
+Landroid/R$styleable;->Pointer:[I
+Landroid/R$styleable;->PointerIcon:[I
+Landroid/R$styleable;->PointerIcon_bitmap:I
+Landroid/R$styleable;->PointerIcon_hotSpotX:I
+Landroid/R$styleable;->PointerIcon_hotSpotY:I
+Landroid/R$styleable;->PopupWindowBackgroundState:[I
+Landroid/R$styleable;->PopupWindowBackgroundState_state_above_anchor:I
+Landroid/R$styleable;->PopupWindow_overlapAnchor:I
+Landroid/R$styleable;->PopupWindow_popupAnimationStyle:I
+Landroid/R$styleable;->PopupWindow_popupBackground:I
+Landroid/R$styleable;->PopupWindow_popupElevation:I
+Landroid/R$styleable;->PopupWindow_popupEnterTransition:I
+Landroid/R$styleable;->PopupWindow_popupExitTransition:I
+Landroid/R$styleable;->Preference:[I
+Landroid/R$styleable;->PreferenceActivity:[I
+Landroid/R$styleable;->PreferenceActivity_layout:I
+Landroid/R$styleable;->PreferenceFragment:[I
+Landroid/R$styleable;->PreferenceFragment_divider:I
+Landroid/R$styleable;->PreferenceFragment_layout:I
+Landroid/R$styleable;->PreferenceFrameLayout:[I
+Landroid/R$styleable;->PreferenceFrameLayout_Layout:[I
+Landroid/R$styleable;->PreferenceGroup:[I
+Landroid/R$styleable;->PreferenceGroup_orderingFromXml:I
+Landroid/R$styleable;->PreferenceHeader:[I
+Landroid/R$styleable;->PreferenceHeader_breadCrumbShortTitle:I
+Landroid/R$styleable;->PreferenceHeader_breadCrumbTitle:I
+Landroid/R$styleable;->PreferenceHeader_fragment:I
+Landroid/R$styleable;->PreferenceHeader_icon:I
+Landroid/R$styleable;->PreferenceHeader_id:I
+Landroid/R$styleable;->PreferenceHeader_summary:I
+Landroid/R$styleable;->PreferenceHeader_title:I
+Landroid/R$styleable;->PreferenceScreen:[I
+Landroid/R$styleable;->PreferenceScreen_divider:I
+Landroid/R$styleable;->Preference_defaultValue:I
+Landroid/R$styleable;->Preference_dependency:I
+Landroid/R$styleable;->Preference_enabled:I
+Landroid/R$styleable;->Preference_fragment:I
+Landroid/R$styleable;->Preference_icon:I
+Landroid/R$styleable;->Preference_iconSpaceReserved:I
+Landroid/R$styleable;->Preference_key:I
+Landroid/R$styleable;->Preference_layout:I
+Landroid/R$styleable;->Preference_order:I
+Landroid/R$styleable;->Preference_persistent:I
+Landroid/R$styleable;->Preference_recycleEnabled:I
+Landroid/R$styleable;->Preference_selectable:I
+Landroid/R$styleable;->Preference_shouldDisableView:I
+Landroid/R$styleable;->Preference_singleLineTitle:I
+Landroid/R$styleable;->Preference_summary:I
+Landroid/R$styleable;->Preference_title:I
+Landroid/R$styleable;->Preference_widgetLayout:I
+Landroid/R$styleable;->PrintService:[I
+Landroid/R$styleable;->PrintService_addPrintersActivity:I
+Landroid/R$styleable;->PrintService_advancedPrintOptionsActivity:I
+Landroid/R$styleable;->PrintService_settingsActivity:I
+Landroid/R$styleable;->PrintService_vendor:I
+Landroid/R$styleable;->ProgressBar_animationResolution:I
+Landroid/R$styleable;->ProgressBar_backgroundTint:I
+Landroid/R$styleable;->ProgressBar_backgroundTintMode:I
+Landroid/R$styleable;->ProgressBar_indeterminate:I
+Landroid/R$styleable;->ProgressBar_indeterminateBehavior:I
+Landroid/R$styleable;->ProgressBar_indeterminateOnly:I
+Landroid/R$styleable;->ProgressBar_indeterminateTint:I
+Landroid/R$styleable;->ProgressBar_indeterminateTintMode:I
+Landroid/R$styleable;->ProgressBar_interpolator:I
+Landroid/R$styleable;->ProgressBar_max:I
+Landroid/R$styleable;->ProgressBar_min:I
+Landroid/R$styleable;->ProgressBar_mirrorForRtl:I
+Landroid/R$styleable;->ProgressBar_progress:I
+Landroid/R$styleable;->ProgressBar_progressBackgroundTint:I
+Landroid/R$styleable;->ProgressBar_progressBackgroundTintMode:I
+Landroid/R$styleable;->ProgressBar_progressTint:I
+Landroid/R$styleable;->ProgressBar_progressTintMode:I
+Landroid/R$styleable;->ProgressBar_secondaryProgress:I
+Landroid/R$styleable;->ProgressBar_secondaryProgressTint:I
+Landroid/R$styleable;->ProgressBar_secondaryProgressTintMode:I
+Landroid/R$styleable;->PropertyAnimator:[I
+Landroid/R$styleable;->PropertyAnimator_pathData:I
+Landroid/R$styleable;->PropertyAnimator_propertyName:I
+Landroid/R$styleable;->PropertyAnimator_propertyXName:I
+Landroid/R$styleable;->PropertyAnimator_propertyYName:I
+Landroid/R$styleable;->PropertyValuesHolder:[I
+Landroid/R$styleable;->PropertyValuesHolder_propertyName:I
+Landroid/R$styleable;->PropertyValuesHolder_valueFrom:I
+Landroid/R$styleable;->PropertyValuesHolder_valueTo:I
+Landroid/R$styleable;->PropertyValuesHolder_valueType:I
+Landroid/R$styleable;->QuickContactBadge:[I
+Landroid/R$styleable;->RadioGroup:[I
+Landroid/R$styleable;->RadioGroup_checkedButton:I
+Landroid/R$styleable;->RadioGroup_orientation:I
+Landroid/R$styleable;->RatingBar:[I
+Landroid/R$styleable;->RatingBar_isIndicator:I
+Landroid/R$styleable;->RatingBar_numStars:I
+Landroid/R$styleable;->RatingBar_rating:I
+Landroid/R$styleable;->RatingBar_stepSize:I
+Landroid/R$styleable;->RatingDefinition:[I
+Landroid/R$styleable;->RatingDefinition_contentAgeHint:I
+Landroid/R$styleable;->RatingDefinition_description:I
+Landroid/R$styleable;->RatingDefinition_name:I
+Landroid/R$styleable;->RatingDefinition_title:I
+Landroid/R$styleable;->RatingSystemDefinition:[I
+Landroid/R$styleable;->RatingSystemDefinition_country:I
+Landroid/R$styleable;->RatingSystemDefinition_description:I
+Landroid/R$styleable;->RatingSystemDefinition_name:I
+Landroid/R$styleable;->RatingSystemDefinition_title:I
+Landroid/R$styleable;->RecognitionService:[I
+Landroid/R$styleable;->RecognitionService_settingsActivity:I
+Landroid/R$styleable;->RecycleListView:[I
+Landroid/R$styleable;->RecyclerView:[I
+Landroid/R$styleable;->RecyclerView_descendantFocusability:I
+Landroid/R$styleable;->RecyclerView_orientation:I
+Landroid/R$styleable;->RelativeLayout:[I
+Landroid/R$styleable;->RelativeLayout_gravity:I
+Landroid/R$styleable;->RelativeLayout_ignoreGravity:I
+Landroid/R$styleable;->RelativeLayout_Layout:[I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_above:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignBaseline:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignBottom:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignEnd:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignLeft:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignParentBottom:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignParentEnd:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignParentLeft:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignParentRight:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignParentStart:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignParentTop:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignRight:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignStart:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignTop:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_alignWithParentIfMissing:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_below:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_centerHorizontal:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_centerInParent:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_centerVertical:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_toEndOf:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_toLeftOf:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_toRightOf:I
+Landroid/R$styleable;->RelativeLayout_Layout_layout_toStartOf:I
+Landroid/R$styleable;->ResolverDrawerLayout:[I
+Landroid/R$styleable;->ResolverDrawerLayout_LayoutParams:[I
+Landroid/R$styleable;->ResolverDrawerLayout_LayoutParams_layout_gravity:I
+Landroid/R$styleable;->ResolverDrawerLayout_maxWidth:I
+Landroid/R$styleable;->RestrictionEntry:[I
+Landroid/R$styleable;->RestrictionEntry_defaultValue:I
+Landroid/R$styleable;->RestrictionEntry_description:I
+Landroid/R$styleable;->RestrictionEntry_entries:I
+Landroid/R$styleable;->RestrictionEntry_entryValues:I
+Landroid/R$styleable;->RestrictionEntry_key:I
+Landroid/R$styleable;->RestrictionEntry_restrictionType:I
+Landroid/R$styleable;->RestrictionEntry_title:I
+Landroid/R$styleable;->RingtonePreference_ringtoneType:I
+Landroid/R$styleable;->RingtonePreference_showDefault:I
+Landroid/R$styleable;->RingtonePreference_showSilent:I
+Landroid/R$styleable;->RippleDrawable:[I
+Landroid/R$styleable;->RippleDrawable_color:I
+Landroid/R$styleable;->RippleDrawable_radius:I
+Landroid/R$styleable;->RotateAnimation:[I
+Landroid/R$styleable;->RotateAnimation_fromDegrees:I
+Landroid/R$styleable;->RotateAnimation_pivotX:I
+Landroid/R$styleable;->RotateAnimation_pivotY:I
+Landroid/R$styleable;->RotateAnimation_toDegrees:I
+Landroid/R$styleable;->RotateDrawable:[I
+Landroid/R$styleable;->RotateDrawable_drawable:I
+Landroid/R$styleable;->RotateDrawable_fromDegrees:I
+Landroid/R$styleable;->RotateDrawable_pivotX:I
+Landroid/R$styleable;->RotateDrawable_pivotY:I
+Landroid/R$styleable;->RotateDrawable_toDegrees:I
+Landroid/R$styleable;->RotateDrawable_visible:I
+Landroid/R$styleable;->ScaleAnimation:[I
+Landroid/R$styleable;->ScaleAnimation_fromXScale:I
+Landroid/R$styleable;->ScaleAnimation_fromYScale:I
+Landroid/R$styleable;->ScaleAnimation_pivotX:I
+Landroid/R$styleable;->ScaleAnimation_pivotY:I
+Landroid/R$styleable;->ScaleAnimation_toXScale:I
+Landroid/R$styleable;->ScaleAnimation_toYScale:I
+Landroid/R$styleable;->ScaleDrawable:[I
+Landroid/R$styleable;->ScaleDrawable_drawable:I
+Landroid/R$styleable;->ScaleDrawable_level:I
+Landroid/R$styleable;->ScaleDrawable_scaleGravity:I
+Landroid/R$styleable;->ScaleDrawable_scaleHeight:I
+Landroid/R$styleable;->ScaleDrawable_scaleWidth:I
+Landroid/R$styleable;->ScaleDrawable_useIntrinsicSizeAsMinimum:I
+Landroid/R$styleable;->ScrollView_fillViewport:I
+Landroid/R$styleable;->Searchable:[I
+Landroid/R$styleable;->SearchableActionKey:[I
+Landroid/R$styleable;->SearchableActionKey_keycode:I
+Landroid/R$styleable;->SearchableActionKey_queryActionMsg:I
+Landroid/R$styleable;->SearchableActionKey_suggestActionMsg:I
+Landroid/R$styleable;->SearchableActionKey_suggestActionMsgColumn:I
+Landroid/R$styleable;->Searchable_autoUrlDetect:I
+Landroid/R$styleable;->Searchable_hint:I
+Landroid/R$styleable;->Searchable_icon:I
+Landroid/R$styleable;->Searchable_imeOptions:I
+Landroid/R$styleable;->Searchable_includeInGlobalSearch:I
+Landroid/R$styleable;->Searchable_inputType:I
+Landroid/R$styleable;->Searchable_label:I
+Landroid/R$styleable;->Searchable_queryAfterZeroResults:I
+Landroid/R$styleable;->Searchable_searchButtonText:I
+Landroid/R$styleable;->Searchable_searchMode:I
+Landroid/R$styleable;->Searchable_searchSettingsDescription:I
+Landroid/R$styleable;->Searchable_searchSuggestAuthority:I
+Landroid/R$styleable;->Searchable_searchSuggestIntentAction:I
+Landroid/R$styleable;->Searchable_searchSuggestIntentData:I
+Landroid/R$styleable;->Searchable_searchSuggestPath:I
+Landroid/R$styleable;->Searchable_searchSuggestSelection:I
+Landroid/R$styleable;->Searchable_searchSuggestThreshold:I
+Landroid/R$styleable;->Searchable_voiceLanguage:I
+Landroid/R$styleable;->Searchable_voiceLanguageModel:I
+Landroid/R$styleable;->Searchable_voiceMaxResults:I
+Landroid/R$styleable;->Searchable_voicePromptText:I
+Landroid/R$styleable;->Searchable_voiceSearchMode:I
+Landroid/R$styleable;->SearchView_closeIcon:I
+Landroid/R$styleable;->SearchView_commitIcon:I
+Landroid/R$styleable;->SearchView_goIcon:I
+Landroid/R$styleable;->SearchView_iconifiedByDefault:I
+Landroid/R$styleable;->SearchView_imeOptions:I
+Landroid/R$styleable;->SearchView_inputType:I
+Landroid/R$styleable;->SearchView_layout:I
+Landroid/R$styleable;->SearchView_maxWidth:I
+Landroid/R$styleable;->SearchView_queryBackground:I
+Landroid/R$styleable;->SearchView_queryHint:I
+Landroid/R$styleable;->SearchView_searchHintIcon:I
+Landroid/R$styleable;->SearchView_searchIcon:I
+Landroid/R$styleable;->SearchView_submitBackground:I
+Landroid/R$styleable;->SearchView_suggestionRowLayout:I
+Landroid/R$styleable;->SearchView_voiceIcon:I
+Landroid/R$styleable;->SeekBarPreference:[I
+Landroid/R$styleable;->SeekBarPreference_layout:I
+Landroid/R$styleable;->SeekBar_splitTrack:I
+Landroid/R$styleable;->SeekBar_thumbTint:I
+Landroid/R$styleable;->SeekBar_thumbTintMode:I
+Landroid/R$styleable;->SeekBar_tickMark:I
+Landroid/R$styleable;->SeekBar_tickMarkTint:I
+Landroid/R$styleable;->SeekBar_tickMarkTintMode:I
+Landroid/R$styleable;->SelectionModeDrawables:[I
+Landroid/R$styleable;->SelectionModeDrawables_actionModeCopyDrawable:I
+Landroid/R$styleable;->SelectionModeDrawables_actionModeCutDrawable:I
+Landroid/R$styleable;->SelectionModeDrawables_actionModePasteDrawable:I
+Landroid/R$styleable;->SelectionModeDrawables_actionModeSelectAllDrawable:I
+Landroid/R$styleable;->SettingInjectorService:[I
+Landroid/R$styleable;->SettingInjectorService_icon:I
+Landroid/R$styleable;->SettingInjectorService_settingsActivity:I
+Landroid/R$styleable;->SettingInjectorService_title:I
+Landroid/R$styleable;->SettingInjectorService_userRestriction:I
+Landroid/R$styleable;->ShapeDrawable:[I
+Landroid/R$styleable;->ShapeDrawablePadding:[I
+Landroid/R$styleable;->ShapeDrawablePadding_bottom:I
+Landroid/R$styleable;->ShapeDrawablePadding_left:I
+Landroid/R$styleable;->ShapeDrawablePadding_right:I
+Landroid/R$styleable;->ShapeDrawablePadding_top:I
+Landroid/R$styleable;->ShapeDrawable_color:I
+Landroid/R$styleable;->ShapeDrawable_dither:I
+Landroid/R$styleable;->ShapeDrawable_height:I
+Landroid/R$styleable;->ShapeDrawable_tint:I
+Landroid/R$styleable;->ShapeDrawable_tintMode:I
+Landroid/R$styleable;->ShapeDrawable_width:I
+Landroid/R$styleable;->Shortcut:[I
+Landroid/R$styleable;->ShortcutCategories:[I
+Landroid/R$styleable;->ShortcutCategories_name:I
+Landroid/R$styleable;->Shortcut_enabled:I
+Landroid/R$styleable;->Shortcut_icon:I
+Landroid/R$styleable;->Shortcut_shortcutDisabledMessage:I
+Landroid/R$styleable;->Shortcut_shortcutId:I
+Landroid/R$styleable;->Shortcut_shortcutLongLabel:I
+Landroid/R$styleable;->Shortcut_shortcutShortLabel:I
+Landroid/R$styleable;->Slide:[I
+Landroid/R$styleable;->Slide_slideEdge:I
+Landroid/R$styleable;->SlidingTab:[I
+Landroid/R$styleable;->SlidingTab_orientation:I
+Landroid/R$styleable;->SpellChecker:[I
+Landroid/R$styleable;->SpellChecker_label:I
+Landroid/R$styleable;->SpellChecker_settingsActivity:I
+Landroid/R$styleable;->SpellChecker_Subtype:[I
+Landroid/R$styleable;->SpellChecker_Subtype_label:I
+Landroid/R$styleable;->SpellChecker_Subtype_languageTag:I
+Landroid/R$styleable;->SpellChecker_Subtype_subtypeExtraValue:I
+Landroid/R$styleable;->SpellChecker_Subtype_subtypeId:I
+Landroid/R$styleable;->SpellChecker_Subtype_subtypeLocale:I
+Landroid/R$styleable;->Spinner:[I
+Landroid/R$styleable;->Spinner_dropDownSelector:I
+Landroid/R$styleable;->Spinner_dropDownWidth:I
+Landroid/R$styleable;->Spinner_gravity:I
+Landroid/R$styleable;->Spinner_popupBackground:I
+Landroid/R$styleable;->Spinner_popupElevation:I
+Landroid/R$styleable;->Spinner_popupTheme:I
+Landroid/R$styleable;->Spinner_prompt:I
+Landroid/R$styleable;->Spinner_spinnerMode:I
+Landroid/R$styleable;->StackView:[I
+Landroid/R$styleable;->StateListAnimatorItem:[I
+Landroid/R$styleable;->StateListAnimatorItem_animation:I
+Landroid/R$styleable;->StateListDrawable:[I
+Landroid/R$styleable;->StateListDrawableItem:[I
+Landroid/R$styleable;->StateListDrawableItem_drawable:I
+Landroid/R$styleable;->StateListDrawable_autoMirrored:I
+Landroid/R$styleable;->StateListDrawable_constantSize:I
+Landroid/R$styleable;->StateListDrawable_dither:I
+Landroid/R$styleable;->StateListDrawable_enterFadeDuration:I
+Landroid/R$styleable;->StateListDrawable_exitFadeDuration:I
+Landroid/R$styleable;->StateListDrawable_variablePadding:I
+Landroid/R$styleable;->StateListDrawable_visible:I
+Landroid/R$styleable;->Storage:[I
+Landroid/R$styleable;->SuggestionSpan:[I
+Landroid/R$styleable;->SwitchPreference:[I
+Landroid/R$styleable;->SwitchPreference_disableDependentsState:I
+Landroid/R$styleable;->SwitchPreference_summaryOff:I
+Landroid/R$styleable;->SwitchPreference_summaryOn:I
+Landroid/R$styleable;->SwitchPreference_switchTextOff:I
+Landroid/R$styleable;->SwitchPreference_switchTextOn:I
+Landroid/R$styleable;->Switch_thumbTint:I
+Landroid/R$styleable;->Switch_thumbTintMode:I
+Landroid/R$styleable;->Switch_trackTint:I
+Landroid/R$styleable;->Switch_trackTintMode:I
+Landroid/R$styleable;->SyncAdapter:[I
+Landroid/R$styleable;->SyncAdapter_accountType:I
+Landroid/R$styleable;->SyncAdapter_allowParallelSyncs:I
+Landroid/R$styleable;->SyncAdapter_contentAuthority:I
+Landroid/R$styleable;->SyncAdapter_isAlwaysSyncable:I
+Landroid/R$styleable;->SyncAdapter_settingsActivity:I
+Landroid/R$styleable;->SyncAdapter_supportsUploading:I
+Landroid/R$styleable;->SyncAdapter_userVisible:I
+Landroid/R$styleable;->SystemCodeFilter:[I
+Landroid/R$styleable;->SystemCodeFilter_name:I
+Landroid/R$styleable;->T3tPmmFilter:[I
+Landroid/R$styleable;->T3tPmmFilter_name:I
+Landroid/R$styleable;->TableLayout:[I
+Landroid/R$styleable;->TableLayout_collapseColumns:I
+Landroid/R$styleable;->TableLayout_shrinkColumns:I
+Landroid/R$styleable;->TableLayout_stretchColumns:I
+Landroid/R$styleable;->TableRow:[I
+Landroid/R$styleable;->TableRow_Cell:[I
+Landroid/R$styleable;->TableRow_Cell_layout_column:I
+Landroid/R$styleable;->TableRow_Cell_layout_span:I
+Landroid/R$styleable;->TabWidget:[I
+Landroid/R$styleable;->TabWidget_divider:I
+Landroid/R$styleable;->TabWidget_tabStripEnabled:I
+Landroid/R$styleable;->TabWidget_tabStripLeft:I
+Landroid/R$styleable;->TabWidget_tabStripRight:I
+Landroid/R$styleable;->TextAppearance_elegantTextHeight:I
+Landroid/R$styleable;->TextAppearance_fallbackLineSpacing:I
+Landroid/R$styleable;->TextAppearance_fontFamily:I
+Landroid/R$styleable;->TextAppearance_fontFeatureSettings:I
+Landroid/R$styleable;->TextAppearance_letterSpacing:I
+Landroid/R$styleable;->TextAppearance_shadowColor:I
+Landroid/R$styleable;->TextAppearance_shadowDx:I
+Landroid/R$styleable;->TextAppearance_shadowDy:I
+Landroid/R$styleable;->TextAppearance_shadowRadius:I
+Landroid/R$styleable;->TextAppearance_textFontWeight:I
+Landroid/R$styleable;->TextClock:[I
+Landroid/R$styleable;->TextClock_format12Hour:I
+Landroid/R$styleable;->TextClock_format24Hour:I
+Landroid/R$styleable;->TextClock_timeZone:I
+Landroid/R$styleable;->TextSwitcher:[I
+Landroid/R$styleable;->TextToSpeechEngine:[I
+Landroid/R$styleable;->TextToSpeechEngine_settingsActivity:I
+Landroid/R$styleable;->TextViewAppearance:[I
+Landroid/R$styleable;->TextViewAppearance_textAppearance:I
+Landroid/R$styleable;->TextViewMultiLineBackgroundState:[I
+Landroid/R$styleable;->TextViewMultiLineBackgroundState_state_multiline:I
+Landroid/R$styleable;->TextView_allowUndo:I
+Landroid/R$styleable;->TextView_autoSizeMaxTextSize:I
+Landroid/R$styleable;->TextView_autoSizeMinTextSize:I
+Landroid/R$styleable;->TextView_autoSizePresetSizes:I
+Landroid/R$styleable;->TextView_autoSizeStepGranularity:I
+Landroid/R$styleable;->TextView_autoSizeTextType:I
+Landroid/R$styleable;->TextView_breakStrategy:I
+Landroid/R$styleable;->TextView_drawableTint:I
+Landroid/R$styleable;->TextView_drawableTintMode:I
+Landroid/R$styleable;->TextView_editorExtras:I
+Landroid/R$styleable;->TextView_elegantTextHeight:I
+Landroid/R$styleable;->TextView_fallbackLineSpacing:I
+Landroid/R$styleable;->TextView_firstBaselineToTopHeight:I
+Landroid/R$styleable;->TextView_fontFamily:I
+Landroid/R$styleable;->TextView_fontFeatureSettings:I
+Landroid/R$styleable;->TextView_hyphenationFrequency:I
+Landroid/R$styleable;->TextView_justificationMode:I
+Landroid/R$styleable;->TextView_lastBaselineToBottomHeight:I
+Landroid/R$styleable;->TextView_letterSpacing:I
+Landroid/R$styleable;->TextView_lineHeight:I
+Landroid/R$styleable;->TextView_textEditNoPasteWindowLayout:I
+Landroid/R$styleable;->TextView_textEditPasteWindowLayout:I
+Landroid/R$styleable;->TextView_textEditSideNoPasteWindowLayout:I
+Landroid/R$styleable;->TextView_textEditSidePasteWindowLayout:I
+Landroid/R$styleable;->TextView_textEditSuggestionItemLayout:I
+Landroid/R$styleable;->TextView_textFontWeight:I
+Landroid/R$styleable;->Theme_absListViewStyle:I
+Landroid/R$styleable;->Theme_actionBarDivider:I
+Landroid/R$styleable;->Theme_actionBarItemBackground:I
+Landroid/R$styleable;->Theme_actionBarPopupTheme:I
+Landroid/R$styleable;->Theme_actionBarSize:I
+Landroid/R$styleable;->Theme_actionBarSplitStyle:I
+Landroid/R$styleable;->Theme_actionBarStyle:I
+Landroid/R$styleable;->Theme_actionBarTabBarStyle:I
+Landroid/R$styleable;->Theme_actionBarTabStyle:I
+Landroid/R$styleable;->Theme_actionBarTabTextStyle:I
+Landroid/R$styleable;->Theme_actionBarTheme:I
+Landroid/R$styleable;->Theme_actionBarWidgetTheme:I
+Landroid/R$styleable;->Theme_actionButtonStyle:I
+Landroid/R$styleable;->Theme_actionDropDownStyle:I
+Landroid/R$styleable;->Theme_actionMenuTextAppearance:I
+Landroid/R$styleable;->Theme_actionMenuTextColor:I
+Landroid/R$styleable;->Theme_actionModeBackground:I
+Landroid/R$styleable;->Theme_actionModeCloseButtonStyle:I
+Landroid/R$styleable;->Theme_actionModeCloseDrawable:I
+Landroid/R$styleable;->Theme_actionModeCopyDrawable:I
+Landroid/R$styleable;->Theme_actionModeCutDrawable:I
+Landroid/R$styleable;->Theme_actionModeFindDrawable:I
+Landroid/R$styleable;->Theme_actionModePasteDrawable:I
+Landroid/R$styleable;->Theme_actionModeSelectAllDrawable:I
+Landroid/R$styleable;->Theme_actionModeShareDrawable:I
+Landroid/R$styleable;->Theme_actionModeSplitBackground:I
+Landroid/R$styleable;->Theme_actionModeStyle:I
+Landroid/R$styleable;->Theme_actionModeWebSearchDrawable:I
+Landroid/R$styleable;->Theme_actionOverflowButtonStyle:I
+Landroid/R$styleable;->Theme_actionOverflowMenuStyle:I
+Landroid/R$styleable;->Theme_activatedBackgroundIndicator:I
+Landroid/R$styleable;->Theme_alertDialogIcon:I
+Landroid/R$styleable;->Theme_alertDialogStyle:I
+Landroid/R$styleable;->Theme_alertDialogTheme:I
+Landroid/R$styleable;->Theme_ambientShadowAlpha:I
+Landroid/R$styleable;->Theme_autoCompleteTextViewStyle:I
+Landroid/R$styleable;->Theme_autofilledHighlight:I
+Landroid/R$styleable;->Theme_backgroundDimAmount:I
+Landroid/R$styleable;->Theme_backgroundDimEnabled:I
+Landroid/R$styleable;->Theme_borderlessButtonStyle:I
+Landroid/R$styleable;->Theme_buttonBarButtonStyle:I
+Landroid/R$styleable;->Theme_buttonBarNegativeButtonStyle:I
+Landroid/R$styleable;->Theme_buttonBarNeutralButtonStyle:I
+Landroid/R$styleable;->Theme_buttonBarPositiveButtonStyle:I
+Landroid/R$styleable;->Theme_buttonBarStyle:I
+Landroid/R$styleable;->Theme_buttonCornerRadius:I
+Landroid/R$styleable;->Theme_buttonStyle:I
+Landroid/R$styleable;->Theme_buttonStyleInset:I
+Landroid/R$styleable;->Theme_buttonStyleSmall:I
+Landroid/R$styleable;->Theme_buttonStyleToggle:I
+Landroid/R$styleable;->Theme_calendarViewStyle:I
+Landroid/R$styleable;->Theme_candidatesTextStyleSpans:I
+Landroid/R$styleable;->Theme_checkBoxPreferenceStyle:I
+Landroid/R$styleable;->Theme_checkboxStyle:I
+Landroid/R$styleable;->Theme_checkedTextViewStyle:I
+Landroid/R$styleable;->Theme_colorAccent:I
+Landroid/R$styleable;->Theme_colorActivatedHighlight:I
+Landroid/R$styleable;->Theme_colorBackground:I
+Landroid/R$styleable;->Theme_colorBackgroundCacheHint:I
+Landroid/R$styleable;->Theme_colorBackgroundFloating:I
+Landroid/R$styleable;->Theme_colorButtonNormal:I
+Landroid/R$styleable;->Theme_colorControlActivated:I
+Landroid/R$styleable;->Theme_colorControlHighlight:I
+Landroid/R$styleable;->Theme_colorControlNormal:I
+Landroid/R$styleable;->Theme_colorEdgeEffect:I
+Landroid/R$styleable;->Theme_colorError:I
+Landroid/R$styleable;->Theme_colorFocusedHighlight:I
+Landroid/R$styleable;->Theme_colorForeground:I
+Landroid/R$styleable;->Theme_colorForegroundInverse:I
+Landroid/R$styleable;->Theme_colorLongPressedHighlight:I
+Landroid/R$styleable;->Theme_colorMultiSelectHighlight:I
+Landroid/R$styleable;->Theme_colorPressedHighlight:I
+Landroid/R$styleable;->Theme_colorPrimary:I
+Landroid/R$styleable;->Theme_colorPrimaryDark:I
+Landroid/R$styleable;->Theme_colorSecondary:I
+Landroid/R$styleable;->Theme_contextPopupMenuStyle:I
+Landroid/R$styleable;->Theme_datePickerDialogTheme:I
+Landroid/R$styleable;->Theme_datePickerStyle:I
+Landroid/R$styleable;->Theme_detailsElementBackground:I
+Landroid/R$styleable;->Theme_dialogCornerRadius:I
+Landroid/R$styleable;->Theme_dialogPreferenceStyle:I
+Landroid/R$styleable;->Theme_dialogPreferredPadding:I
+Landroid/R$styleable;->Theme_dialogTheme:I
+Landroid/R$styleable;->Theme_disabledAlpha:I
+Landroid/R$styleable;->Theme_dividerHorizontal:I
+Landroid/R$styleable;->Theme_dividerVertical:I
+Landroid/R$styleable;->Theme_dropDownHintAppearance:I
+Landroid/R$styleable;->Theme_dropDownItemStyle:I
+Landroid/R$styleable;->Theme_dropDownListViewStyle:I
+Landroid/R$styleable;->Theme_dropDownSpinnerStyle:I
+Landroid/R$styleable;->Theme_editTextBackground:I
+Landroid/R$styleable;->Theme_editTextColor:I
+Landroid/R$styleable;->Theme_editTextPreferenceStyle:I
+Landroid/R$styleable;->Theme_editTextStyle:I
+Landroid/R$styleable;->Theme_expandableListPreferredChildIndicatorLeft:I
+Landroid/R$styleable;->Theme_expandableListPreferredChildIndicatorRight:I
+Landroid/R$styleable;->Theme_expandableListPreferredChildPaddingLeft:I
+Landroid/R$styleable;->Theme_expandableListPreferredItemIndicatorLeft:I
+Landroid/R$styleable;->Theme_expandableListPreferredItemIndicatorRight:I
+Landroid/R$styleable;->Theme_expandableListPreferredItemPaddingLeft:I
+Landroid/R$styleable;->Theme_expandableListViewStyle:I
+Landroid/R$styleable;->Theme_expandableListViewWhiteStyle:I
+Landroid/R$styleable;->Theme_fastScrollOverlayPosition:I
+Landroid/R$styleable;->Theme_fastScrollPreviewBackgroundLeft:I
+Landroid/R$styleable;->Theme_fastScrollPreviewBackgroundRight:I
+Landroid/R$styleable;->Theme_fastScrollTextColor:I
+Landroid/R$styleable;->Theme_fastScrollThumbDrawable:I
+Landroid/R$styleable;->Theme_fastScrollTrackDrawable:I
+Landroid/R$styleable;->Theme_fingerprintAuthDrawable:I
+Landroid/R$styleable;->Theme_galleryItemBackground:I
+Landroid/R$styleable;->Theme_galleryStyle:I
+Landroid/R$styleable;->Theme_gridViewStyle:I
+Landroid/R$styleable;->Theme_homeAsUpIndicator:I
+Landroid/R$styleable;->Theme_horizontalScrollViewStyle:I
+Landroid/R$styleable;->Theme_imageButtonStyle:I
+Landroid/R$styleable;->Theme_imageWellStyle:I
+Landroid/R$styleable;->Theme_listChoiceBackgroundIndicator:I
+Landroid/R$styleable;->Theme_listChoiceIndicatorMultiple:I
+Landroid/R$styleable;->Theme_listChoiceIndicatorSingle:I
+Landroid/R$styleable;->Theme_listDivider:I
+Landroid/R$styleable;->Theme_listDividerAlertDialog:I
+Landroid/R$styleable;->Theme_listMenuViewStyle:I
+Landroid/R$styleable;->Theme_listPopupWindowStyle:I
+Landroid/R$styleable;->Theme_listPreferredItemHeight:I
+Landroid/R$styleable;->Theme_listPreferredItemHeightLarge:I
+Landroid/R$styleable;->Theme_listPreferredItemHeightSmall:I
+Landroid/R$styleable;->Theme_listPreferredItemPaddingEnd:I
+Landroid/R$styleable;->Theme_listPreferredItemPaddingLeft:I
+Landroid/R$styleable;->Theme_listPreferredItemPaddingRight:I
+Landroid/R$styleable;->Theme_listPreferredItemPaddingStart:I
+Landroid/R$styleable;->Theme_listSeparatorTextViewStyle:I
+Landroid/R$styleable;->Theme_listViewStyle:I
+Landroid/R$styleable;->Theme_listViewWhiteStyle:I
+Landroid/R$styleable;->Theme_mapViewStyle:I
+Landroid/R$styleable;->Theme_mediaRouteButtonStyle:I
+Landroid/R$styleable;->Theme_numberPickerStyle:I
+Landroid/R$styleable;->Theme_panelBackground:I
+Landroid/R$styleable;->Theme_panelColorBackground:I
+Landroid/R$styleable;->Theme_panelColorForeground:I
+Landroid/R$styleable;->Theme_panelFullBackground:I
+Landroid/R$styleable;->Theme_panelTextAppearance:I
+Landroid/R$styleable;->Theme_popupMenuStyle:I
+Landroid/R$styleable;->Theme_popupWindowStyle:I
+Landroid/R$styleable;->Theme_preferenceCategoryStyle:I
+Landroid/R$styleable;->Theme_preferenceFragmentStyle:I
+Landroid/R$styleable;->Theme_preferenceInformationStyle:I
+Landroid/R$styleable;->Theme_preferenceLayoutChild:I
+Landroid/R$styleable;->Theme_preferenceScreenStyle:I
+Landroid/R$styleable;->Theme_preferenceStyle:I
+Landroid/R$styleable;->Theme_presentationTheme:I
+Landroid/R$styleable;->Theme_primaryContentAlpha:I
+Landroid/R$styleable;->Theme_progressBarStyle:I
+Landroid/R$styleable;->Theme_progressBarStyleHorizontal:I
+Landroid/R$styleable;->Theme_progressBarStyleInverse:I
+Landroid/R$styleable;->Theme_progressBarStyleLarge:I
+Landroid/R$styleable;->Theme_progressBarStyleLargeInverse:I
+Landroid/R$styleable;->Theme_progressBarStyleSmall:I
+Landroid/R$styleable;->Theme_progressBarStyleSmallInverse:I
+Landroid/R$styleable;->Theme_progressBarStyleSmallTitle:I
+Landroid/R$styleable;->Theme_quickContactBadgeStyleSmallWindowLarge:I
+Landroid/R$styleable;->Theme_quickContactBadgeStyleSmallWindowMedium:I
+Landroid/R$styleable;->Theme_quickContactBadgeStyleSmallWindowSmall:I
+Landroid/R$styleable;->Theme_quickContactBadgeStyleWindowLarge:I
+Landroid/R$styleable;->Theme_quickContactBadgeStyleWindowMedium:I
+Landroid/R$styleable;->Theme_quickContactBadgeStyleWindowSmall:I
+Landroid/R$styleable;->Theme_radioButtonStyle:I
+Landroid/R$styleable;->Theme_ratingBarStyle:I
+Landroid/R$styleable;->Theme_ratingBarStyleIndicator:I
+Landroid/R$styleable;->Theme_ratingBarStyleSmall:I
+Landroid/R$styleable;->Theme_ringtonePreferenceStyle:I
+Landroid/R$styleable;->Theme_scrollViewStyle:I
+Landroid/R$styleable;->Theme_searchViewStyle:I
+Landroid/R$styleable;->Theme_secondaryContentAlpha:I
+Landroid/R$styleable;->Theme_seekBarStyle:I
+Landroid/R$styleable;->Theme_segmentedButtonStyle:I
+Landroid/R$styleable;->Theme_selectableItemBackground:I
+Landroid/R$styleable;->Theme_selectableItemBackgroundBorderless:I
+Landroid/R$styleable;->Theme_spinnerDropDownItemStyle:I
+Landroid/R$styleable;->Theme_spinnerItemStyle:I
+Landroid/R$styleable;->Theme_spinnerStyle:I
+Landroid/R$styleable;->Theme_spotShadowAlpha:I
+Landroid/R$styleable;->Theme_stackViewStyle:I
+Landroid/R$styleable;->Theme_starStyle:I
+Landroid/R$styleable;->Theme_switchPreferenceStyle:I
+Landroid/R$styleable;->Theme_switchStyle:I
+Landroid/R$styleable;->Theme_tabWidgetStyle:I
+Landroid/R$styleable;->Theme_textAppearance:I
+Landroid/R$styleable;->Theme_textAppearanceButton:I
+Landroid/R$styleable;->Theme_textAppearanceInverse:I
+Landroid/R$styleable;->Theme_textAppearanceLarge:I
+Landroid/R$styleable;->Theme_textAppearanceLargeInverse:I
+Landroid/R$styleable;->Theme_textAppearanceLargePopupMenu:I
+Landroid/R$styleable;->Theme_textAppearanceListItem:I
+Landroid/R$styleable;->Theme_textAppearanceListItemSecondary:I
+Landroid/R$styleable;->Theme_textAppearanceListItemSmall:I
+Landroid/R$styleable;->Theme_textAppearanceMedium:I
+Landroid/R$styleable;->Theme_textAppearanceMediumInverse:I
+Landroid/R$styleable;->Theme_textAppearancePopupMenuHeader:I
+Landroid/R$styleable;->Theme_textAppearanceSearchResultSubtitle:I
+Landroid/R$styleable;->Theme_textAppearanceSearchResultTitle:I
+Landroid/R$styleable;->Theme_textAppearanceSmall:I
+Landroid/R$styleable;->Theme_textAppearanceSmallInverse:I
+Landroid/R$styleable;->Theme_textAppearanceSmallPopupMenu:I
+Landroid/R$styleable;->Theme_textCheckMark:I
+Landroid/R$styleable;->Theme_textCheckMarkInverse:I
+Landroid/R$styleable;->Theme_textColorAlertDialogListItem:I
+Landroid/R$styleable;->Theme_textColorHighlightInverse:I
+Landroid/R$styleable;->Theme_textColorHintInverse:I
+Landroid/R$styleable;->Theme_textColorLinkInverse:I
+Landroid/R$styleable;->Theme_textColorPrimary:I
+Landroid/R$styleable;->Theme_textColorPrimaryDisableOnly:I
+Landroid/R$styleable;->Theme_textColorPrimaryInverse:I
+Landroid/R$styleable;->Theme_textColorPrimaryInverseDisableOnly:I
+Landroid/R$styleable;->Theme_textColorPrimaryInverseNoDisable:I
+Landroid/R$styleable;->Theme_textColorPrimaryNoDisable:I
+Landroid/R$styleable;->Theme_textColorSecondary:I
+Landroid/R$styleable;->Theme_textColorSecondaryInverse:I
+Landroid/R$styleable;->Theme_textColorSecondaryInverseNoDisable:I
+Landroid/R$styleable;->Theme_textColorSecondaryNoDisable:I
+Landroid/R$styleable;->Theme_textColorTertiary:I
+Landroid/R$styleable;->Theme_textColorTertiaryInverse:I
+Landroid/R$styleable;->Theme_textEditNoPasteWindowLayout:I
+Landroid/R$styleable;->Theme_textEditPasteWindowLayout:I
+Landroid/R$styleable;->Theme_textEditSideNoPasteWindowLayout:I
+Landroid/R$styleable;->Theme_textEditSidePasteWindowLayout:I
+Landroid/R$styleable;->Theme_textEditSuggestionItemLayout:I
+Landroid/R$styleable;->Theme_textSelectHandle:I
+Landroid/R$styleable;->Theme_textSelectHandleLeft:I
+Landroid/R$styleable;->Theme_textSelectHandleRight:I
+Landroid/R$styleable;->Theme_textSelectHandleWindowStyle:I
+Landroid/R$styleable;->Theme_textSuggestionsWindowStyle:I
+Landroid/R$styleable;->Theme_textViewStyle:I
+Landroid/R$styleable;->Theme_timePickerDialogTheme:I
+Landroid/R$styleable;->Theme_timePickerStyle:I
+Landroid/R$styleable;->Theme_toolbarStyle:I
+Landroid/R$styleable;->Theme_webTextViewStyle:I
+Landroid/R$styleable;->Theme_webViewStyle:I
+Landroid/R$styleable;->Theme_windowActionBar:I
+Landroid/R$styleable;->Theme_windowActionBarOverlay:I
+Landroid/R$styleable;->Theme_windowActionModeOverlay:I
+Landroid/R$styleable;->Theme_windowActivityTransitions:I
+Landroid/R$styleable;->Theme_windowAllowEnterTransitionOverlap:I
+Landroid/R$styleable;->Theme_windowAllowReturnTransitionOverlap:I
+Landroid/R$styleable;->Theme_windowAnimationStyle:I
+Landroid/R$styleable;->Theme_windowBackground:I
+Landroid/R$styleable;->Theme_windowBackgroundFallback:I
+Landroid/R$styleable;->Theme_windowCloseOnTouchOutside:I
+Landroid/R$styleable;->Theme_windowContentOverlay:I
+Landroid/R$styleable;->Theme_windowContentTransitionManager:I
+Landroid/R$styleable;->Theme_windowContentTransitions:I
+Landroid/R$styleable;->Theme_windowDisablePreview:I
+Landroid/R$styleable;->Theme_windowEnableSplitTouch:I
+Landroid/R$styleable;->Theme_windowEnterTransition:I
+Landroid/R$styleable;->Theme_windowExitTransition:I
+Landroid/R$styleable;->Theme_windowFrame:I
+Landroid/R$styleable;->Theme_windowFullscreen:I
+Landroid/R$styleable;->Theme_windowIsFloating:I
+Landroid/R$styleable;->Theme_windowIsTranslucent:I
+Landroid/R$styleable;->Theme_windowNoDisplay:I
+Landroid/R$styleable;->Theme_windowNoTitle:I
+Landroid/R$styleable;->Theme_windowOverscan:I
+Landroid/R$styleable;->Theme_windowReenterTransition:I
+Landroid/R$styleable;->Theme_windowReturnTransition:I
+Landroid/R$styleable;->Theme_windowSharedElementEnterTransition:I
+Landroid/R$styleable;->Theme_windowSharedElementExitTransition:I
+Landroid/R$styleable;->Theme_windowSharedElementReenterTransition:I
+Landroid/R$styleable;->Theme_windowSharedElementReturnTransition:I
+Landroid/R$styleable;->Theme_windowSharedElementsUseOverlay:I
+Landroid/R$styleable;->Theme_windowShowWallpaper:I
+Landroid/R$styleable;->Theme_windowSoftInputMode:I
+Landroid/R$styleable;->Theme_windowSwipeToDismiss:I
+Landroid/R$styleable;->Theme_windowTitleBackgroundStyle:I
+Landroid/R$styleable;->Theme_windowTitleSize:I
+Landroid/R$styleable;->Theme_windowTitleStyle:I
+Landroid/R$styleable;->Theme_windowTransitionBackgroundFadeDuration:I
+Landroid/R$styleable;->Theme_windowTranslucentNavigation:I
+Landroid/R$styleable;->Theme_windowTranslucentStatus:I
+Landroid/R$styleable;->Theme_yesNoPreferenceStyle:I
+Landroid/R$styleable;->TimePicker:[I
+Landroid/R$styleable;->TimePicker_amPmBackgroundColor:I
+Landroid/R$styleable;->TimePicker_amPmTextColor:I
+Landroid/R$styleable;->TimePicker_headerAmPmTextAppearance:I
+Landroid/R$styleable;->TimePicker_headerBackground:I
+Landroid/R$styleable;->TimePicker_headerTimeTextAppearance:I
+Landroid/R$styleable;->TimePicker_numbersBackgroundColor:I
+Landroid/R$styleable;->TimePicker_numbersInnerTextColor:I
+Landroid/R$styleable;->TimePicker_numbersSelectorColor:I
+Landroid/R$styleable;->TimePicker_numbersTextColor:I
+Landroid/R$styleable;->TimePicker_timePickerMode:I
+Landroid/R$styleable;->ToggleButton:[I
+Landroid/R$styleable;->ToggleButton_disabledAlpha:I
+Landroid/R$styleable;->ToggleButton_textOff:I
+Landroid/R$styleable;->ToggleButton_textOn:I
+Landroid/R$styleable;->Toolbar:[I
+Landroid/R$styleable;->Toolbar_buttonGravity:I
+Landroid/R$styleable;->Toolbar_collapseContentDescription:I
+Landroid/R$styleable;->Toolbar_collapseIcon:I
+Landroid/R$styleable;->Toolbar_contentInsetEnd:I
+Landroid/R$styleable;->Toolbar_contentInsetEndWithActions:I
+Landroid/R$styleable;->Toolbar_contentInsetLeft:I
+Landroid/R$styleable;->Toolbar_contentInsetRight:I
+Landroid/R$styleable;->Toolbar_contentInsetStart:I
+Landroid/R$styleable;->Toolbar_contentInsetStartWithNavigation:I
+Landroid/R$styleable;->Toolbar_gravity:I
+Landroid/R$styleable;->Toolbar_LayoutParams:[I
+Landroid/R$styleable;->Toolbar_LayoutParams_layout_gravity:I
+Landroid/R$styleable;->Toolbar_logo:I
+Landroid/R$styleable;->Toolbar_logoDescription:I
+Landroid/R$styleable;->Toolbar_maxButtonHeight:I
+Landroid/R$styleable;->Toolbar_navigationContentDescription:I
+Landroid/R$styleable;->Toolbar_navigationIcon:I
+Landroid/R$styleable;->Toolbar_popupTheme:I
+Landroid/R$styleable;->Toolbar_subtitle:I
+Landroid/R$styleable;->Toolbar_subtitleTextAppearance:I
+Landroid/R$styleable;->Toolbar_subtitleTextColor:I
+Landroid/R$styleable;->Toolbar_title:I
+Landroid/R$styleable;->Toolbar_titleMargin:I
+Landroid/R$styleable;->Toolbar_titleMarginBottom:I
+Landroid/R$styleable;->Toolbar_titleMarginEnd:I
+Landroid/R$styleable;->Toolbar_titleMarginStart:I
+Landroid/R$styleable;->Toolbar_titleMarginTop:I
+Landroid/R$styleable;->Toolbar_titleTextAppearance:I
+Landroid/R$styleable;->Toolbar_titleTextColor:I
+Landroid/R$styleable;->Transition:[I
+Landroid/R$styleable;->TransitionManager:[I
+Landroid/R$styleable;->TransitionManager_fromScene:I
+Landroid/R$styleable;->TransitionManager_toScene:I
+Landroid/R$styleable;->TransitionManager_transition:I
+Landroid/R$styleable;->TransitionSet:[I
+Landroid/R$styleable;->TransitionSet_transitionOrdering:I
+Landroid/R$styleable;->TransitionTarget:[I
+Landroid/R$styleable;->TransitionTarget_excludeClass:I
+Landroid/R$styleable;->TransitionTarget_excludeId:I
+Landroid/R$styleable;->TransitionTarget_excludeName:I
+Landroid/R$styleable;->TransitionTarget_targetClass:I
+Landroid/R$styleable;->TransitionTarget_targetId:I
+Landroid/R$styleable;->TransitionTarget_targetName:I
+Landroid/R$styleable;->Transition_duration:I
+Landroid/R$styleable;->Transition_interpolator:I
+Landroid/R$styleable;->Transition_matchOrder:I
+Landroid/R$styleable;->Transition_startDelay:I
+Landroid/R$styleable;->TranslateAnimation:[I
+Landroid/R$styleable;->TranslateAnimation_fromXDelta:I
+Landroid/R$styleable;->TranslateAnimation_fromYDelta:I
+Landroid/R$styleable;->TranslateAnimation_toXDelta:I
+Landroid/R$styleable;->TranslateAnimation_toYDelta:I
+Landroid/R$styleable;->TrustAgent:[I
+Landroid/R$styleable;->TrustAgent_settingsActivity:I
+Landroid/R$styleable;->TrustAgent_summary:I
+Landroid/R$styleable;->TrustAgent_title:I
+Landroid/R$styleable;->TvInputService:[I
+Landroid/R$styleable;->TvInputService_canRecord:I
+Landroid/R$styleable;->TvInputService_settingsActivity:I
+Landroid/R$styleable;->TvInputService_setupActivity:I
+Landroid/R$styleable;->TvInputService_tunerCount:I
+Landroid/R$styleable;->TwoLineListItem:[I
+Landroid/R$styleable;->TwoLineListItem_mode:I
+Landroid/R$styleable;->VectorDrawable:[I
+Landroid/R$styleable;->VectorDrawableClipPath:[I
+Landroid/R$styleable;->VectorDrawableClipPath_name:I
+Landroid/R$styleable;->VectorDrawableClipPath_pathData:I
+Landroid/R$styleable;->VectorDrawableGroup:[I
+Landroid/R$styleable;->VectorDrawableGroup_name:I
+Landroid/R$styleable;->VectorDrawableGroup_pivotX:I
+Landroid/R$styleable;->VectorDrawableGroup_pivotY:I
+Landroid/R$styleable;->VectorDrawableGroup_rotation:I
+Landroid/R$styleable;->VectorDrawableGroup_scaleX:I
+Landroid/R$styleable;->VectorDrawableGroup_scaleY:I
+Landroid/R$styleable;->VectorDrawableGroup_translateX:I
+Landroid/R$styleable;->VectorDrawableGroup_translateY:I
+Landroid/R$styleable;->VectorDrawablePath:[I
+Landroid/R$styleable;->VectorDrawablePath_fillAlpha:I
+Landroid/R$styleable;->VectorDrawablePath_fillColor:I
+Landroid/R$styleable;->VectorDrawablePath_fillType:I
+Landroid/R$styleable;->VectorDrawablePath_name:I
+Landroid/R$styleable;->VectorDrawablePath_pathData:I
+Landroid/R$styleable;->VectorDrawablePath_strokeAlpha:I
+Landroid/R$styleable;->VectorDrawablePath_strokeColor:I
+Landroid/R$styleable;->VectorDrawablePath_strokeLineCap:I
+Landroid/R$styleable;->VectorDrawablePath_strokeLineJoin:I
+Landroid/R$styleable;->VectorDrawablePath_strokeMiterLimit:I
+Landroid/R$styleable;->VectorDrawablePath_strokeWidth:I
+Landroid/R$styleable;->VectorDrawablePath_trimPathEnd:I
+Landroid/R$styleable;->VectorDrawablePath_trimPathOffset:I
+Landroid/R$styleable;->VectorDrawablePath_trimPathStart:I
+Landroid/R$styleable;->VectorDrawable_alpha:I
+Landroid/R$styleable;->VectorDrawable_autoMirrored:I
+Landroid/R$styleable;->VectorDrawable_height:I
+Landroid/R$styleable;->VectorDrawable_name:I
+Landroid/R$styleable;->VectorDrawable_tint:I
+Landroid/R$styleable;->VectorDrawable_tintMode:I
+Landroid/R$styleable;->VectorDrawable_viewportHeight:I
+Landroid/R$styleable;->VectorDrawable_viewportWidth:I
+Landroid/R$styleable;->VectorDrawable_width:I
+Landroid/R$styleable;->VerticalSlider_Layout:[I
+Landroid/R$styleable;->VerticalSlider_Layout_layout_scale:I
+Landroid/R$styleable;->VideoView2:[I
+Landroid/R$styleable;->ViewAnimator:[I
+Landroid/R$styleable;->ViewAnimator_animateFirstView:I
+Landroid/R$styleable;->ViewAnimator_inAnimation:I
+Landroid/R$styleable;->ViewAnimator_outAnimation:I
+Landroid/R$styleable;->ViewDrawableStates_state_accelerated:I
+Landroid/R$styleable;->ViewDrawableStates_state_activated:I
+Landroid/R$styleable;->ViewDrawableStates_state_drag_can_accept:I
+Landroid/R$styleable;->ViewDrawableStates_state_drag_hovered:I
+Landroid/R$styleable;->ViewDrawableStates_state_enabled:I
+Landroid/R$styleable;->ViewDrawableStates_state_focused:I
+Landroid/R$styleable;->ViewDrawableStates_state_hovered:I
+Landroid/R$styleable;->ViewDrawableStates_state_pressed:I
+Landroid/R$styleable;->ViewDrawableStates_state_selected:I
+Landroid/R$styleable;->ViewDrawableStates_state_window_focused:I
+Landroid/R$styleable;->ViewFlipper:[I
+Landroid/R$styleable;->ViewFlipper_autoStart:I
+Landroid/R$styleable;->ViewFlipper_flipInterval:I
+Landroid/R$styleable;->ViewGroup:[I
+Landroid/R$styleable;->ViewGroup_addStatesFromChildren:I
+Landroid/R$styleable;->ViewGroup_alwaysDrawnWithCache:I
+Landroid/R$styleable;->ViewGroup_animateLayoutChanges:I
+Landroid/R$styleable;->ViewGroup_animationCache:I
+Landroid/R$styleable;->ViewGroup_clipChildren:I
+Landroid/R$styleable;->ViewGroup_clipToPadding:I
+Landroid/R$styleable;->ViewGroup_descendantFocusability:I
+Landroid/R$styleable;->ViewGroup_layoutAnimation:I
+Landroid/R$styleable;->ViewGroup_layoutMode:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginEnd:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginHorizontal:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginStart:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginVertical:I
+Landroid/R$styleable;->ViewGroup_persistentDrawingCache:I
+Landroid/R$styleable;->ViewGroup_splitMotionEvents:I
+Landroid/R$styleable;->ViewGroup_touchscreenBlocksFocus:I
+Landroid/R$styleable;->ViewGroup_transitionGroup:I
+Landroid/R$styleable;->ViewStub:[I
+Landroid/R$styleable;->ViewStub_id:I
+Landroid/R$styleable;->ViewStub_inflatedId:I
+Landroid/R$styleable;->ViewStub_layout:I
+Landroid/R$styleable;->ViewSwitcher:[I
+Landroid/R$styleable;->ViewTag:[I
+Landroid/R$styleable;->ViewTag_id:I
+Landroid/R$styleable;->ViewTag_value:I
+Landroid/R$styleable;->View_accessibilityHeading:I
+Landroid/R$styleable;->View_accessibilityLiveRegion:I
+Landroid/R$styleable;->View_accessibilityPaneTitle:I
+Landroid/R$styleable;->View_accessibilityTraversalAfter:I
+Landroid/R$styleable;->View_accessibilityTraversalBefore:I
+Landroid/R$styleable;->View_autofillHints:I
+Landroid/R$styleable;->View_backgroundTint:I
+Landroid/R$styleable;->View_backgroundTintMode:I
+Landroid/R$styleable;->View_contextClickable:I
+Landroid/R$styleable;->View_defaultFocusHighlightEnabled:I
+Landroid/R$styleable;->View_elevation:I
+Landroid/R$styleable;->View_fadeScrollbars:I
+Landroid/R$styleable;->View_fadingEdgeLength:I
+Landroid/R$styleable;->View_focusedByDefault:I
+Landroid/R$styleable;->View_forceHasOverlappingRendering:I
+Landroid/R$styleable;->View_foreground:I
+Landroid/R$styleable;->View_foregroundGravity:I
+Landroid/R$styleable;->View_foregroundTint:I
+Landroid/R$styleable;->View_foregroundTintMode:I
+Landroid/R$styleable;->View_importantForAccessibility:I
+Landroid/R$styleable;->View_importantForAutofill:I
+Landroid/R$styleable;->View_keyboardNavigationCluster:I
+Landroid/R$styleable;->View_labelFor:I
+Landroid/R$styleable;->View_layerType:I
+Landroid/R$styleable;->View_layoutDirection:I
+Landroid/R$styleable;->View_nestedScrollingEnabled:I
+Landroid/R$styleable;->View_nextClusterForward:I
+Landroid/R$styleable;->View_nextFocusForward:I
+Landroid/R$styleable;->View_outlineAmbientShadowColor:I
+Landroid/R$styleable;->View_outlineProvider:I
+Landroid/R$styleable;->View_outlineSpotShadowColor:I
+Landroid/R$styleable;->View_paddingHorizontal:I
+Landroid/R$styleable;->View_paddingVertical:I
+Landroid/R$styleable;->View_pointerIcon:I
+Landroid/R$styleable;->View_requiresFadingEdge:I
+Landroid/R$styleable;->View_screenReaderFocusable:I
+Landroid/R$styleable;->View_scrollbarAlwaysDrawHorizontalTrack:I
+Landroid/R$styleable;->View_scrollbarAlwaysDrawVerticalTrack:I
+Landroid/R$styleable;->View_scrollIndicators:I
+Landroid/R$styleable;->View_stateListAnimator:I
+Landroid/R$styleable;->View_textAlignment:I
+Landroid/R$styleable;->View_textDirection:I
+Landroid/R$styleable;->View_theme:I
+Landroid/R$styleable;->View_tooltipText:I
+Landroid/R$styleable;->View_transitionName:I
+Landroid/R$styleable;->View_translationZ:I
+Landroid/R$styleable;->View_verticalScrollbarPosition:I
+Landroid/R$styleable;->VisibilityTransition:[I
+Landroid/R$styleable;->VisibilityTransition_transitionVisibilityMode:I
+Landroid/R$styleable;->VoiceEnrollmentApplication:[I
+Landroid/R$styleable;->VoiceEnrollmentApplication_searchKeyphrase:I
+Landroid/R$styleable;->VoiceEnrollmentApplication_searchKeyphraseId:I
+Landroid/R$styleable;->VoiceEnrollmentApplication_searchKeyphraseRecognitionFlags:I
+Landroid/R$styleable;->VoiceEnrollmentApplication_searchKeyphraseSupportedLocales:I
+Landroid/R$styleable;->VoiceInteractionService:[I
+Landroid/R$styleable;->VoiceInteractionService_recognitionService:I
+Landroid/R$styleable;->VoiceInteractionService_sessionService:I
+Landroid/R$styleable;->VoiceInteractionService_settingsActivity:I
+Landroid/R$styleable;->VoiceInteractionService_supportsAssist:I
+Landroid/R$styleable;->VoiceInteractionService_supportsLaunchVoiceAssistFromKeyguard:I
+Landroid/R$styleable;->VoiceInteractionService_supportsLocalInteraction:I
+Landroid/R$styleable;->VoiceInteractionSession:[I
+Landroid/R$styleable;->VolumePreference:[I
+Landroid/R$styleable;->VolumePreference_streamType:I
+Landroid/R$styleable;->Wallpaper:[I
+Landroid/R$styleable;->WallpaperPreviewInfo:[I
+Landroid/R$styleable;->WallpaperPreviewInfo_staticWallpaperPreview:I
+Landroid/R$styleable;->Wallpaper_author:I
+Landroid/R$styleable;->Wallpaper_contextDescription:I
+Landroid/R$styleable;->Wallpaper_contextUri:I
+Landroid/R$styleable;->Wallpaper_description:I
+Landroid/R$styleable;->Wallpaper_settingsActivity:I
+Landroid/R$styleable;->Wallpaper_showMetadataInPreview:I
+Landroid/R$styleable;->Wallpaper_thumbnail:I
+Landroid/R$styleable;->WeightedLinearLayout:[I
+Landroid/R$styleable;->WindowAnimation:[I
+Landroid/R$styleable;->WindowAnimation_activityCloseEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_activityCloseExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_activityOpenEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_activityOpenExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_launchTaskBehindSourceAnimation:I
+Landroid/R$styleable;->WindowAnimation_launchTaskBehindTargetAnimation:I
+Landroid/R$styleable;->WindowAnimation_taskCloseEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_taskCloseExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_taskOpenEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_taskOpenExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_taskToBackEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_taskToBackExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_taskToFrontEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_taskToFrontExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_wallpaperCloseEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_wallpaperCloseExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_wallpaperIntraCloseEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_wallpaperIntraCloseExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_wallpaperIntraOpenEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_wallpaperIntraOpenExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_wallpaperOpenEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_wallpaperOpenExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_windowEnterAnimation:I
+Landroid/R$styleable;->WindowAnimation_windowExitAnimation:I
+Landroid/R$styleable;->WindowAnimation_windowHideAnimation:I
+Landroid/R$styleable;->WindowAnimation_windowShowAnimation:I
+Landroid/R$styleable;->Window_backgroundDimAmount:I
+Landroid/R$styleable;->Window_backgroundDimEnabled:I
+Landroid/R$styleable;->Window_navigationBarColor:I
+Landroid/R$styleable;->Window_navigationBarDividerColor:I
+Landroid/R$styleable;->Window_statusBarColor:I
+Landroid/R$styleable;->Window_textColor:I
+Landroid/R$styleable;->Window_windowActionBar:I
+Landroid/R$styleable;->Window_windowActionBarOverlay:I
+Landroid/R$styleable;->Window_windowActionModeOverlay:I
+Landroid/R$styleable;->Window_windowActivityTransitions:I
+Landroid/R$styleable;->Window_windowAllowEnterTransitionOverlap:I
+Landroid/R$styleable;->Window_windowAllowReturnTransitionOverlap:I
+Landroid/R$styleable;->Window_windowAnimationStyle:I
+Landroid/R$styleable;->Window_windowBackgroundFallback:I
+Landroid/R$styleable;->Window_windowClipToOutline:I
+Landroid/R$styleable;->Window_windowCloseOnTouchOutside:I
+Landroid/R$styleable;->Window_windowContentOverlay:I
+Landroid/R$styleable;->Window_windowContentTransitionManager:I
+Landroid/R$styleable;->Window_windowContentTransitions:I
+Landroid/R$styleable;->Window_windowDisablePreview:I
+Landroid/R$styleable;->Window_windowDrawsSystemBarBackgrounds:I
+Landroid/R$styleable;->Window_windowElevation:I
+Landroid/R$styleable;->Window_windowEnableSplitTouch:I
+Landroid/R$styleable;->Window_windowEnterTransition:I
+Landroid/R$styleable;->Window_windowExitTransition:I
+Landroid/R$styleable;->Window_windowFullscreen:I
+Landroid/R$styleable;->Window_windowIsFloating:I
+Landroid/R$styleable;->Window_windowIsTranslucent:I
+Landroid/R$styleable;->Window_windowLayoutInDisplayCutoutMode:I
+Landroid/R$styleable;->Window_windowLightNavigationBar:I
+Landroid/R$styleable;->Window_windowLightStatusBar:I
+Landroid/R$styleable;->Window_windowMinWidthMajor:I
+Landroid/R$styleable;->Window_windowMinWidthMinor:I
+Landroid/R$styleable;->Window_windowNoDisplay:I
+Landroid/R$styleable;->Window_windowNoTitle:I
+Landroid/R$styleable;->Window_windowOverscan:I
+Landroid/R$styleable;->Window_windowReenterTransition:I
+Landroid/R$styleable;->Window_windowReturnTransition:I
+Landroid/R$styleable;->Window_windowSharedElementEnterTransition:I
+Landroid/R$styleable;->Window_windowSharedElementExitTransition:I
+Landroid/R$styleable;->Window_windowSharedElementReenterTransition:I
+Landroid/R$styleable;->Window_windowSharedElementReturnTransition:I
+Landroid/R$styleable;->Window_windowSharedElementsUseOverlay:I
+Landroid/R$styleable;->Window_windowShowWallpaper:I
+Landroid/R$styleable;->Window_windowSoftInputMode:I
+Landroid/R$styleable;->Window_windowSplashscreenContent:I
+Landroid/R$styleable;->Window_windowSwipeToDismiss:I
+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
+Landroid/renderscript/Allocation;->copy1DRangeFromUnchecked(IILjava/lang/Object;Landroid/renderscript/Element$DataType;I)V
+Landroid/renderscript/Allocation;->copy1DRangeToUnchecked(IILjava/lang/Object;Landroid/renderscript/Element$DataType;I)V
+Landroid/renderscript/Allocation;->copy2DRangeFromUnchecked(IIIILjava/lang/Object;Landroid/renderscript/Element$DataType;I)V
+Landroid/renderscript/Allocation;->copy2DRangeToUnchecked(IIIILjava/lang/Object;Landroid/renderscript/Element$DataType;I)V
+Landroid/renderscript/Allocation;->copy3DRangeFromUnchecked(IIIIIILjava/lang/Object;Landroid/renderscript/Element$DataType;I)V
+Landroid/renderscript/Allocation;->copy3DRangeToUnchecked(IIIIIILjava/lang/Object;Landroid/renderscript/Element$DataType;I)V
+Landroid/renderscript/Allocation;->copyFromUnchecked(Ljava/lang/Object;Landroid/renderscript/Element$DataType;I)V
+Landroid/renderscript/Allocation;->copyTo(Ljava/lang/Object;Landroid/renderscript/Element$DataType;I)V
+Landroid/renderscript/Allocation;->copyToFieldPacker(IIIILandroid/renderscript/FieldPacker;)V
+Landroid/renderscript/Allocation;->createFromAllocation(Landroid/renderscript/RenderScript;Landroid/renderscript/Allocation;)Landroid/renderscript/Allocation;
+Landroid/renderscript/Allocation;->data1DChecks(IIIIZ)V
+Landroid/renderscript/Allocation;->elementFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;)Landroid/renderscript/Element;
+Landroid/renderscript/Allocation;->getIDSafe()J
+Landroid/renderscript/Allocation;->getMipmap()Landroid/renderscript/Allocation$MipmapControl;
+Landroid/renderscript/Allocation;->mAdaptedAllocation:Landroid/renderscript/Allocation;
+Landroid/renderscript/Allocation;->mAllocationMap:Ljava/util/HashMap;
+Landroid/renderscript/Allocation;->mAutoPadding:Z
+Landroid/renderscript/Allocation;->MAX_NUMBER_IO_INPUT_ALLOC:I
+Landroid/renderscript/Allocation;->mBitmap:Landroid/graphics/Bitmap;
+Landroid/renderscript/Allocation;->mBitmapOptions:Landroid/graphics/BitmapFactory$Options;
+Landroid/renderscript/Allocation;->mBufferNotifier:Landroid/renderscript/Allocation$OnBufferAvailableListener;
+Landroid/renderscript/Allocation;->mByteBuffer:Ljava/nio/ByteBuffer;
+Landroid/renderscript/Allocation;->mByteBufferStride:J
+Landroid/renderscript/Allocation;->mCurrentCount:I
+Landroid/renderscript/Allocation;->mCurrentDimX:I
+Landroid/renderscript/Allocation;->mCurrentDimY:I
+Landroid/renderscript/Allocation;->mCurrentDimZ:I
+Landroid/renderscript/Allocation;->mGetSurfaceSurface:Landroid/view/Surface;
+Landroid/renderscript/Allocation;->mMipmapControl:Landroid/renderscript/Allocation$MipmapControl;
+Landroid/renderscript/Allocation;->mOwningType:Z
+Landroid/renderscript/Allocation;->mReadAllowed:Z
+Landroid/renderscript/Allocation;->mSelectedArray:[I
+Landroid/renderscript/Allocation;->mSelectedFace:Landroid/renderscript/Type$CubemapFace;
+Landroid/renderscript/Allocation;->mSelectedLOD:I
+Landroid/renderscript/Allocation;->mSelectedX:I
+Landroid/renderscript/Allocation;->mSelectedY:I
+Landroid/renderscript/Allocation;->mSelectedZ:I
+Landroid/renderscript/Allocation;->mSize:I
+Landroid/renderscript/Allocation;->mTimeStamp:J
+Landroid/renderscript/Allocation;->mType:Landroid/renderscript/Type;
+Landroid/renderscript/Allocation;->mUsage:I
+Landroid/renderscript/Allocation;->mWriteAllowed:Z
+Landroid/renderscript/Allocation;->sendBufferNotification(J)V
+Landroid/renderscript/Allocation;->setBitmap(Landroid/graphics/Bitmap;)V
+Landroid/renderscript/Allocation;->setupBufferQueue(I)V
+Landroid/renderscript/Allocation;->shareBufferQueue(Landroid/renderscript/Allocation;)V
+Landroid/renderscript/Allocation;->typeFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;)Landroid/renderscript/Type;
+Landroid/renderscript/Allocation;->updateCacheInfo(Landroid/renderscript/Type;)V
+Landroid/renderscript/Allocation;->updateFromNative()V
+Landroid/renderscript/Allocation;->validate2DRange(IIII)V
+Landroid/renderscript/Allocation;->validate3DRange(IIIIII)V
+Landroid/renderscript/Allocation;->validateBitmapFormat(Landroid/graphics/Bitmap;)V
+Landroid/renderscript/Allocation;->validateBitmapSize(Landroid/graphics/Bitmap;)V
+Landroid/renderscript/Allocation;->validateIsFloat32()V
+Landroid/renderscript/Allocation;->validateIsFloat64()V
+Landroid/renderscript/Allocation;->validateIsInt16OrFloat16()V
+Landroid/renderscript/Allocation;->validateIsInt32()V
+Landroid/renderscript/Allocation;->validateIsInt64()V
+Landroid/renderscript/Allocation;->validateIsInt8()V
+Landroid/renderscript/Allocation;->validateIsObject()V
+Landroid/renderscript/Allocation;->validateObjectIsPrimitiveArray(Ljava/lang/Object;Z)Landroid/renderscript/Element$DataType;
+Landroid/renderscript/AllocationAdapter;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Allocation;Landroid/renderscript/Type;)V
+Landroid/renderscript/AllocationAdapter;->initLOD(I)V
+Landroid/renderscript/AllocationAdapter;->mWindow:Landroid/renderscript/Type;
+Landroid/renderscript/AllocationAdapter;->setArray(II)V
+Landroid/renderscript/AllocationAdapter;->updateOffsets()V
+Landroid/renderscript/BaseObj;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/BaseObj;->checkValid()V
+Landroid/renderscript/BaseObj;->getID(Landroid/renderscript/RenderScript;)J
+Landroid/renderscript/BaseObj;->guard:Ldalvik/system/CloseGuard;
+Landroid/renderscript/BaseObj;->helpDestroy()V
+Landroid/renderscript/BaseObj;->mDestroyed:Z
+Landroid/renderscript/BaseObj;->mID:J
+Landroid/renderscript/BaseObj;->mName:Ljava/lang/String;
+Landroid/renderscript/BaseObj;->setID(J)V
+Landroid/renderscript/BaseObj;->updateFromNative()V
+Landroid/renderscript/Byte2;-><init>(Landroid/renderscript/Byte2;)V
+Landroid/renderscript/Byte2;->add(B)V
+Landroid/renderscript/Byte2;->add(Landroid/renderscript/Byte2;)V
+Landroid/renderscript/Byte2;->add(Landroid/renderscript/Byte2;B)Landroid/renderscript/Byte2;
+Landroid/renderscript/Byte2;->add(Landroid/renderscript/Byte2;Landroid/renderscript/Byte2;)Landroid/renderscript/Byte2;
+Landroid/renderscript/Byte2;->addAt(IB)V
+Landroid/renderscript/Byte2;->addMultiple(Landroid/renderscript/Byte2;B)V
+Landroid/renderscript/Byte2;->copyTo([BI)V
+Landroid/renderscript/Byte2;->div(B)V
+Landroid/renderscript/Byte2;->div(Landroid/renderscript/Byte2;)V
+Landroid/renderscript/Byte2;->div(Landroid/renderscript/Byte2;B)Landroid/renderscript/Byte2;
+Landroid/renderscript/Byte2;->div(Landroid/renderscript/Byte2;Landroid/renderscript/Byte2;)Landroid/renderscript/Byte2;
+Landroid/renderscript/Byte2;->dotProduct(Landroid/renderscript/Byte2;)B
+Landroid/renderscript/Byte2;->dotProduct(Landroid/renderscript/Byte2;Landroid/renderscript/Byte2;)B
+Landroid/renderscript/Byte2;->elementSum()B
+Landroid/renderscript/Byte2;->get(I)B
+Landroid/renderscript/Byte2;->length()B
+Landroid/renderscript/Byte2;->mul(B)V
+Landroid/renderscript/Byte2;->mul(Landroid/renderscript/Byte2;)V
+Landroid/renderscript/Byte2;->mul(Landroid/renderscript/Byte2;B)Landroid/renderscript/Byte2;
+Landroid/renderscript/Byte2;->mul(Landroid/renderscript/Byte2;Landroid/renderscript/Byte2;)Landroid/renderscript/Byte2;
+Landroid/renderscript/Byte2;->negate()V
+Landroid/renderscript/Byte2;->set(Landroid/renderscript/Byte2;)V
+Landroid/renderscript/Byte2;->setAt(IB)V
+Landroid/renderscript/Byte2;->setValues(BB)V
+Landroid/renderscript/Byte2;->sub(B)V
+Landroid/renderscript/Byte2;->sub(Landroid/renderscript/Byte2;)V
+Landroid/renderscript/Byte2;->sub(Landroid/renderscript/Byte2;B)Landroid/renderscript/Byte2;
+Landroid/renderscript/Byte2;->sub(Landroid/renderscript/Byte2;Landroid/renderscript/Byte2;)Landroid/renderscript/Byte2;
+Landroid/renderscript/Byte3;-><init>(Landroid/renderscript/Byte3;)V
+Landroid/renderscript/Byte3;->add(B)V
+Landroid/renderscript/Byte3;->add(Landroid/renderscript/Byte3;)V
+Landroid/renderscript/Byte3;->add(Landroid/renderscript/Byte3;B)Landroid/renderscript/Byte3;
+Landroid/renderscript/Byte3;->add(Landroid/renderscript/Byte3;Landroid/renderscript/Byte3;)Landroid/renderscript/Byte3;
+Landroid/renderscript/Byte3;->addAt(IB)V
+Landroid/renderscript/Byte3;->addMultiple(Landroid/renderscript/Byte3;B)V
+Landroid/renderscript/Byte3;->copyTo([BI)V
+Landroid/renderscript/Byte3;->div(B)V
+Landroid/renderscript/Byte3;->div(Landroid/renderscript/Byte3;)V
+Landroid/renderscript/Byte3;->div(Landroid/renderscript/Byte3;B)Landroid/renderscript/Byte3;
+Landroid/renderscript/Byte3;->div(Landroid/renderscript/Byte3;Landroid/renderscript/Byte3;)Landroid/renderscript/Byte3;
+Landroid/renderscript/Byte3;->dotProduct(Landroid/renderscript/Byte3;)B
+Landroid/renderscript/Byte3;->dotProduct(Landroid/renderscript/Byte3;Landroid/renderscript/Byte3;)B
+Landroid/renderscript/Byte3;->elementSum()B
+Landroid/renderscript/Byte3;->get(I)B
+Landroid/renderscript/Byte3;->length()B
+Landroid/renderscript/Byte3;->mul(B)V
+Landroid/renderscript/Byte3;->mul(Landroid/renderscript/Byte3;)V
+Landroid/renderscript/Byte3;->mul(Landroid/renderscript/Byte3;B)Landroid/renderscript/Byte3;
+Landroid/renderscript/Byte3;->mul(Landroid/renderscript/Byte3;Landroid/renderscript/Byte3;)Landroid/renderscript/Byte3;
+Landroid/renderscript/Byte3;->negate()V
+Landroid/renderscript/Byte3;->set(Landroid/renderscript/Byte3;)V
+Landroid/renderscript/Byte3;->setAt(IB)V
+Landroid/renderscript/Byte3;->setValues(BBB)V
+Landroid/renderscript/Byte3;->sub(B)V
+Landroid/renderscript/Byte3;->sub(Landroid/renderscript/Byte3;)V
+Landroid/renderscript/Byte3;->sub(Landroid/renderscript/Byte3;B)Landroid/renderscript/Byte3;
+Landroid/renderscript/Byte3;->sub(Landroid/renderscript/Byte3;Landroid/renderscript/Byte3;)Landroid/renderscript/Byte3;
+Landroid/renderscript/Byte4;-><init>(Landroid/renderscript/Byte4;)V
+Landroid/renderscript/Byte4;->add(B)V
+Landroid/renderscript/Byte4;->add(Landroid/renderscript/Byte4;)V
+Landroid/renderscript/Byte4;->add(Landroid/renderscript/Byte4;B)Landroid/renderscript/Byte4;
+Landroid/renderscript/Byte4;->add(Landroid/renderscript/Byte4;Landroid/renderscript/Byte4;)Landroid/renderscript/Byte4;
+Landroid/renderscript/Byte4;->addAt(IB)V
+Landroid/renderscript/Byte4;->addMultiple(Landroid/renderscript/Byte4;B)V
+Landroid/renderscript/Byte4;->copyTo([BI)V
+Landroid/renderscript/Byte4;->div(B)V
+Landroid/renderscript/Byte4;->div(Landroid/renderscript/Byte4;)V
+Landroid/renderscript/Byte4;->div(Landroid/renderscript/Byte4;B)Landroid/renderscript/Byte4;
+Landroid/renderscript/Byte4;->div(Landroid/renderscript/Byte4;Landroid/renderscript/Byte4;)Landroid/renderscript/Byte4;
+Landroid/renderscript/Byte4;->dotProduct(Landroid/renderscript/Byte4;)B
+Landroid/renderscript/Byte4;->dotProduct(Landroid/renderscript/Byte4;Landroid/renderscript/Byte4;)B
+Landroid/renderscript/Byte4;->elementSum()B
+Landroid/renderscript/Byte4;->get(I)B
+Landroid/renderscript/Byte4;->length()B
+Landroid/renderscript/Byte4;->mul(B)V
+Landroid/renderscript/Byte4;->mul(Landroid/renderscript/Byte4;)V
+Landroid/renderscript/Byte4;->mul(Landroid/renderscript/Byte4;B)Landroid/renderscript/Byte4;
+Landroid/renderscript/Byte4;->mul(Landroid/renderscript/Byte4;Landroid/renderscript/Byte4;)Landroid/renderscript/Byte4;
+Landroid/renderscript/Byte4;->negate()V
+Landroid/renderscript/Byte4;->set(Landroid/renderscript/Byte4;)V
+Landroid/renderscript/Byte4;->setAt(IB)V
+Landroid/renderscript/Byte4;->setValues(BBBB)V
+Landroid/renderscript/Byte4;->sub(B)V
+Landroid/renderscript/Byte4;->sub(Landroid/renderscript/Byte4;)V
+Landroid/renderscript/Byte4;->sub(Landroid/renderscript/Byte4;B)Landroid/renderscript/Byte4;
+Landroid/renderscript/Byte4;->sub(Landroid/renderscript/Byte4;Landroid/renderscript/Byte4;)Landroid/renderscript/Byte4;
+Landroid/renderscript/Double2;-><init>(Landroid/renderscript/Double2;)V
+Landroid/renderscript/Double2;->add(D)V
+Landroid/renderscript/Double2;->add(Landroid/renderscript/Double2;)V
+Landroid/renderscript/Double2;->add(Landroid/renderscript/Double2;D)Landroid/renderscript/Double2;
+Landroid/renderscript/Double2;->add(Landroid/renderscript/Double2;Landroid/renderscript/Double2;)Landroid/renderscript/Double2;
+Landroid/renderscript/Double2;->addAt(ID)V
+Landroid/renderscript/Double2;->addMultiple(Landroid/renderscript/Double2;D)V
+Landroid/renderscript/Double2;->copyTo([DI)V
+Landroid/renderscript/Double2;->div(D)V
+Landroid/renderscript/Double2;->div(Landroid/renderscript/Double2;)V
+Landroid/renderscript/Double2;->div(Landroid/renderscript/Double2;D)Landroid/renderscript/Double2;
+Landroid/renderscript/Double2;->div(Landroid/renderscript/Double2;Landroid/renderscript/Double2;)Landroid/renderscript/Double2;
+Landroid/renderscript/Double2;->dotProduct(Landroid/renderscript/Double2;)D
+Landroid/renderscript/Double2;->dotProduct(Landroid/renderscript/Double2;Landroid/renderscript/Double2;)Ljava/lang/Double;
+Landroid/renderscript/Double2;->elementSum()D
+Landroid/renderscript/Double2;->get(I)D
+Landroid/renderscript/Double2;->length()I
+Landroid/renderscript/Double2;->mul(D)V
+Landroid/renderscript/Double2;->mul(Landroid/renderscript/Double2;)V
+Landroid/renderscript/Double2;->mul(Landroid/renderscript/Double2;D)Landroid/renderscript/Double2;
+Landroid/renderscript/Double2;->mul(Landroid/renderscript/Double2;Landroid/renderscript/Double2;)Landroid/renderscript/Double2;
+Landroid/renderscript/Double2;->negate()V
+Landroid/renderscript/Double2;->set(Landroid/renderscript/Double2;)V
+Landroid/renderscript/Double2;->setAt(ID)V
+Landroid/renderscript/Double2;->setValues(DD)V
+Landroid/renderscript/Double2;->sub(D)V
+Landroid/renderscript/Double2;->sub(Landroid/renderscript/Double2;)V
+Landroid/renderscript/Double2;->sub(Landroid/renderscript/Double2;D)Landroid/renderscript/Double2;
+Landroid/renderscript/Double2;->sub(Landroid/renderscript/Double2;Landroid/renderscript/Double2;)Landroid/renderscript/Double2;
+Landroid/renderscript/Double3;-><init>(Landroid/renderscript/Double3;)V
+Landroid/renderscript/Double3;->add(D)V
+Landroid/renderscript/Double3;->add(Landroid/renderscript/Double3;)V
+Landroid/renderscript/Double3;->add(Landroid/renderscript/Double3;D)Landroid/renderscript/Double3;
+Landroid/renderscript/Double3;->add(Landroid/renderscript/Double3;Landroid/renderscript/Double3;)Landroid/renderscript/Double3;
+Landroid/renderscript/Double3;->addAt(ID)V
+Landroid/renderscript/Double3;->addMultiple(Landroid/renderscript/Double3;D)V
+Landroid/renderscript/Double3;->copyTo([DI)V
+Landroid/renderscript/Double3;->div(D)V
+Landroid/renderscript/Double3;->div(Landroid/renderscript/Double3;)V
+Landroid/renderscript/Double3;->div(Landroid/renderscript/Double3;D)Landroid/renderscript/Double3;
+Landroid/renderscript/Double3;->div(Landroid/renderscript/Double3;Landroid/renderscript/Double3;)Landroid/renderscript/Double3;
+Landroid/renderscript/Double3;->dotProduct(Landroid/renderscript/Double3;)D
+Landroid/renderscript/Double3;->dotProduct(Landroid/renderscript/Double3;Landroid/renderscript/Double3;)D
+Landroid/renderscript/Double3;->elementSum()D
+Landroid/renderscript/Double3;->get(I)D
+Landroid/renderscript/Double3;->length()I
+Landroid/renderscript/Double3;->mul(D)V
+Landroid/renderscript/Double3;->mul(Landroid/renderscript/Double3;)V
+Landroid/renderscript/Double3;->mul(Landroid/renderscript/Double3;D)Landroid/renderscript/Double3;
+Landroid/renderscript/Double3;->mul(Landroid/renderscript/Double3;Landroid/renderscript/Double3;)Landroid/renderscript/Double3;
+Landroid/renderscript/Double3;->negate()V
+Landroid/renderscript/Double3;->set(Landroid/renderscript/Double3;)V
+Landroid/renderscript/Double3;->setAt(ID)V
+Landroid/renderscript/Double3;->setValues(DDD)V
+Landroid/renderscript/Double3;->sub(D)V
+Landroid/renderscript/Double3;->sub(Landroid/renderscript/Double3;)V
+Landroid/renderscript/Double3;->sub(Landroid/renderscript/Double3;D)Landroid/renderscript/Double3;
+Landroid/renderscript/Double3;->sub(Landroid/renderscript/Double3;Landroid/renderscript/Double3;)Landroid/renderscript/Double3;
+Landroid/renderscript/Double4;-><init>(Landroid/renderscript/Double4;)V
+Landroid/renderscript/Double4;->add(D)V
+Landroid/renderscript/Double4;->add(Landroid/renderscript/Double4;)V
+Landroid/renderscript/Double4;->add(Landroid/renderscript/Double4;D)Landroid/renderscript/Double4;
+Landroid/renderscript/Double4;->add(Landroid/renderscript/Double4;Landroid/renderscript/Double4;)Landroid/renderscript/Double4;
+Landroid/renderscript/Double4;->addAt(ID)V
+Landroid/renderscript/Double4;->addMultiple(Landroid/renderscript/Double4;D)V
+Landroid/renderscript/Double4;->copyTo([DI)V
+Landroid/renderscript/Double4;->div(D)V
+Landroid/renderscript/Double4;->div(Landroid/renderscript/Double4;)V
+Landroid/renderscript/Double4;->div(Landroid/renderscript/Double4;D)Landroid/renderscript/Double4;
+Landroid/renderscript/Double4;->div(Landroid/renderscript/Double4;Landroid/renderscript/Double4;)Landroid/renderscript/Double4;
+Landroid/renderscript/Double4;->dotProduct(Landroid/renderscript/Double4;)D
+Landroid/renderscript/Double4;->dotProduct(Landroid/renderscript/Double4;Landroid/renderscript/Double4;)D
+Landroid/renderscript/Double4;->elementSum()D
+Landroid/renderscript/Double4;->get(I)D
+Landroid/renderscript/Double4;->length()I
+Landroid/renderscript/Double4;->mul(D)V
+Landroid/renderscript/Double4;->mul(Landroid/renderscript/Double4;)V
+Landroid/renderscript/Double4;->mul(Landroid/renderscript/Double4;D)Landroid/renderscript/Double4;
+Landroid/renderscript/Double4;->mul(Landroid/renderscript/Double4;Landroid/renderscript/Double4;)Landroid/renderscript/Double4;
+Landroid/renderscript/Double4;->negate()V
+Landroid/renderscript/Double4;->set(Landroid/renderscript/Double4;)V
+Landroid/renderscript/Double4;->setAt(ID)V
+Landroid/renderscript/Double4;->setValues(DDDD)V
+Landroid/renderscript/Double4;->sub(D)V
+Landroid/renderscript/Double4;->sub(Landroid/renderscript/Double4;)V
+Landroid/renderscript/Double4;->sub(Landroid/renderscript/Double4;D)Landroid/renderscript/Double4;
+Landroid/renderscript/Double4;->sub(Landroid/renderscript/Double4;Landroid/renderscript/Double4;)Landroid/renderscript/Double4;
+Landroid/renderscript/Element$Builder;->mArraySizes:[I
+Landroid/renderscript/Element$Builder;->mCount:I
+Landroid/renderscript/Element$Builder;->mElementNames:[Ljava/lang/String;
+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
+Landroid/renderscript/Element;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;Landroid/renderscript/Element$DataKind;ZI)V
+Landroid/renderscript/Element;-><init>(JLandroid/renderscript/RenderScript;[Landroid/renderscript/Element;[Ljava/lang/String;[I)V
+Landroid/renderscript/Element;->mArraySizes:[I
+Landroid/renderscript/Element;->mElementNames:[Ljava/lang/String;
+Landroid/renderscript/Element;->mElements:[Landroid/renderscript/Element;
+Landroid/renderscript/Element;->mKind:Landroid/renderscript/Element$DataKind;
+Landroid/renderscript/Element;->mNormalized:Z
+Landroid/renderscript/Element;->mOffsetInBytes:[I
+Landroid/renderscript/Element;->mSize:I
+Landroid/renderscript/Element;->mType:Landroid/renderscript/Element$DataType;
+Landroid/renderscript/Element;->mVectorSize:I
+Landroid/renderscript/Element;->mVisibleElementMap:[I
+Landroid/renderscript/Element;->updateFromNative()V
+Landroid/renderscript/Element;->updateVisibleSubElements()V
+Landroid/renderscript/FieldPacker;->add(Ljava/lang/Object;)V
+Landroid/renderscript/FieldPacker;->addSafely(Ljava/lang/Object;)V
+Landroid/renderscript/FieldPacker;->createFromArray([Ljava/lang/Object;)Landroid/renderscript/FieldPacker;
+Landroid/renderscript/FieldPacker;->getPos()I
+Landroid/renderscript/FieldPacker;->mAlignment:Ljava/util/BitSet;
+Landroid/renderscript/FieldPacker;->mData:[B
+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;
+Landroid/renderscript/FileA3D$IndexEntry;->internalCreate(Landroid/renderscript/RenderScript;Landroid/renderscript/FileA3D$IndexEntry;)Landroid/renderscript/BaseObj;
+Landroid/renderscript/FileA3D$IndexEntry;->mEntryType:Landroid/renderscript/FileA3D$EntryType;
+Landroid/renderscript/FileA3D$IndexEntry;->mID:J
+Landroid/renderscript/FileA3D$IndexEntry;->mIndex:I
+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;
+Landroid/renderscript/FileA3D;->createFromFile(Landroid/renderscript/RenderScript;Ljava/lang/String;)Landroid/renderscript/FileA3D;
+Landroid/renderscript/FileA3D;->getIndexEntryCount()I
+Landroid/renderscript/FileA3D;->initEntries()V
+Landroid/renderscript/FileA3D;->mFileEntries:[Landroid/renderscript/FileA3D$IndexEntry;
+Landroid/renderscript/FileA3D;->mInputStream:Ljava/io/InputStream;
+Landroid/renderscript/Float2;-><init>(Landroid/renderscript/Float2;)V
+Landroid/renderscript/Float2;->add(F)V
+Landroid/renderscript/Float2;->add(Landroid/renderscript/Float2;)V
+Landroid/renderscript/Float2;->add(Landroid/renderscript/Float2;F)Landroid/renderscript/Float2;
+Landroid/renderscript/Float2;->add(Landroid/renderscript/Float2;Landroid/renderscript/Float2;)Landroid/renderscript/Float2;
+Landroid/renderscript/Float2;->addAt(IF)V
+Landroid/renderscript/Float2;->addMultiple(Landroid/renderscript/Float2;F)V
+Landroid/renderscript/Float2;->copyTo([FI)V
+Landroid/renderscript/Float2;->div(F)V
+Landroid/renderscript/Float2;->div(Landroid/renderscript/Float2;)V
+Landroid/renderscript/Float2;->div(Landroid/renderscript/Float2;F)Landroid/renderscript/Float2;
+Landroid/renderscript/Float2;->div(Landroid/renderscript/Float2;Landroid/renderscript/Float2;)Landroid/renderscript/Float2;
+Landroid/renderscript/Float2;->dotProduct(Landroid/renderscript/Float2;)F
+Landroid/renderscript/Float2;->dotProduct(Landroid/renderscript/Float2;Landroid/renderscript/Float2;)F
+Landroid/renderscript/Float2;->elementSum()F
+Landroid/renderscript/Float2;->get(I)F
+Landroid/renderscript/Float2;->length()I
+Landroid/renderscript/Float2;->mul(F)V
+Landroid/renderscript/Float2;->mul(Landroid/renderscript/Float2;)V
+Landroid/renderscript/Float2;->mul(Landroid/renderscript/Float2;F)Landroid/renderscript/Float2;
+Landroid/renderscript/Float2;->mul(Landroid/renderscript/Float2;Landroid/renderscript/Float2;)Landroid/renderscript/Float2;
+Landroid/renderscript/Float2;->negate()V
+Landroid/renderscript/Float2;->set(Landroid/renderscript/Float2;)V
+Landroid/renderscript/Float2;->setAt(IF)V
+Landroid/renderscript/Float2;->setValues(FF)V
+Landroid/renderscript/Float2;->sub(F)V
+Landroid/renderscript/Float2;->sub(Landroid/renderscript/Float2;)V
+Landroid/renderscript/Float2;->sub(Landroid/renderscript/Float2;F)Landroid/renderscript/Float2;
+Landroid/renderscript/Float2;->sub(Landroid/renderscript/Float2;Landroid/renderscript/Float2;)Landroid/renderscript/Float2;
+Landroid/renderscript/Float3;-><init>(Landroid/renderscript/Float3;)V
+Landroid/renderscript/Float3;->add(F)V
+Landroid/renderscript/Float3;->add(Landroid/renderscript/Float3;)V
+Landroid/renderscript/Float3;->add(Landroid/renderscript/Float3;F)Landroid/renderscript/Float3;
+Landroid/renderscript/Float3;->add(Landroid/renderscript/Float3;Landroid/renderscript/Float3;)Landroid/renderscript/Float3;
+Landroid/renderscript/Float3;->addAt(IF)V
+Landroid/renderscript/Float3;->addMultiple(Landroid/renderscript/Float3;F)V
+Landroid/renderscript/Float3;->copyTo([FI)V
+Landroid/renderscript/Float3;->div(F)V
+Landroid/renderscript/Float3;->div(Landroid/renderscript/Float3;)V
+Landroid/renderscript/Float3;->div(Landroid/renderscript/Float3;F)Landroid/renderscript/Float3;
+Landroid/renderscript/Float3;->div(Landroid/renderscript/Float3;Landroid/renderscript/Float3;)Landroid/renderscript/Float3;
+Landroid/renderscript/Float3;->dotProduct(Landroid/renderscript/Float3;)Ljava/lang/Float;
+Landroid/renderscript/Float3;->dotProduct(Landroid/renderscript/Float3;Landroid/renderscript/Float3;)Ljava/lang/Float;
+Landroid/renderscript/Float3;->elementSum()Ljava/lang/Float;
+Landroid/renderscript/Float3;->get(I)F
+Landroid/renderscript/Float3;->length()I
+Landroid/renderscript/Float3;->mul(F)V
+Landroid/renderscript/Float3;->mul(Landroid/renderscript/Float3;)V
+Landroid/renderscript/Float3;->mul(Landroid/renderscript/Float3;F)Landroid/renderscript/Float3;
+Landroid/renderscript/Float3;->mul(Landroid/renderscript/Float3;Landroid/renderscript/Float3;)Landroid/renderscript/Float3;
+Landroid/renderscript/Float3;->negate()V
+Landroid/renderscript/Float3;->set(Landroid/renderscript/Float3;)V
+Landroid/renderscript/Float3;->setAt(IF)V
+Landroid/renderscript/Float3;->setValues(FFF)V
+Landroid/renderscript/Float3;->sub(F)V
+Landroid/renderscript/Float3;->sub(Landroid/renderscript/Float3;)V
+Landroid/renderscript/Float3;->sub(Landroid/renderscript/Float3;F)Landroid/renderscript/Float3;
+Landroid/renderscript/Float3;->sub(Landroid/renderscript/Float3;Landroid/renderscript/Float3;)Landroid/renderscript/Float3;
+Landroid/renderscript/Float4;-><init>(Landroid/renderscript/Float4;)V
+Landroid/renderscript/Float4;->add(F)V
+Landroid/renderscript/Float4;->add(Landroid/renderscript/Float4;)V
+Landroid/renderscript/Float4;->add(Landroid/renderscript/Float4;F)Landroid/renderscript/Float4;
+Landroid/renderscript/Float4;->add(Landroid/renderscript/Float4;Landroid/renderscript/Float4;)Landroid/renderscript/Float4;
+Landroid/renderscript/Float4;->addAt(IF)V
+Landroid/renderscript/Float4;->addMultiple(Landroid/renderscript/Float4;F)V
+Landroid/renderscript/Float4;->copyTo([FI)V
+Landroid/renderscript/Float4;->div(F)V
+Landroid/renderscript/Float4;->div(Landroid/renderscript/Float4;)V
+Landroid/renderscript/Float4;->div(Landroid/renderscript/Float4;F)Landroid/renderscript/Float4;
+Landroid/renderscript/Float4;->div(Landroid/renderscript/Float4;Landroid/renderscript/Float4;)Landroid/renderscript/Float4;
+Landroid/renderscript/Float4;->dotProduct(Landroid/renderscript/Float4;)F
+Landroid/renderscript/Float4;->dotProduct(Landroid/renderscript/Float4;Landroid/renderscript/Float4;)F
+Landroid/renderscript/Float4;->elementSum()F
+Landroid/renderscript/Float4;->get(I)F
+Landroid/renderscript/Float4;->length()I
+Landroid/renderscript/Float4;->mul(F)V
+Landroid/renderscript/Float4;->mul(Landroid/renderscript/Float4;)V
+Landroid/renderscript/Float4;->mul(Landroid/renderscript/Float4;F)Landroid/renderscript/Float4;
+Landroid/renderscript/Float4;->mul(Landroid/renderscript/Float4;Landroid/renderscript/Float4;)Landroid/renderscript/Float4;
+Landroid/renderscript/Float4;->negate()V
+Landroid/renderscript/Float4;->set(Landroid/renderscript/Float4;)V
+Landroid/renderscript/Float4;->setAt(IF)V
+Landroid/renderscript/Float4;->setValues(FFFF)V
+Landroid/renderscript/Float4;->sub(F)V
+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;
+Landroid/renderscript/Font;->createFromFile(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/io/File;F)Landroid/renderscript/Font;
+Landroid/renderscript/Font;->createFromFile(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;F)Landroid/renderscript/Font;
+Landroid/renderscript/Font;->createFromResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;IF)Landroid/renderscript/Font;
+Landroid/renderscript/Font;->getFontFileName(Ljava/lang/String;Landroid/renderscript/Font$Style;)Ljava/lang/String;
+Landroid/renderscript/Font;->initFontFamilyMap()V
+Landroid/renderscript/Font;->sFontFamilyMap:Ljava/util/Map;
+Landroid/renderscript/Font;->sMonoNames:[Ljava/lang/String;
+Landroid/renderscript/Font;->sSansNames:[Ljava/lang/String;
+Landroid/renderscript/Font;->sSerifNames:[Ljava/lang/String;
+Landroid/renderscript/Int2;-><init>(I)V
+Landroid/renderscript/Int2;-><init>(Landroid/renderscript/Int2;)V
+Landroid/renderscript/Int2;->add(I)V
+Landroid/renderscript/Int2;->add(Landroid/renderscript/Int2;)V
+Landroid/renderscript/Int2;->add(Landroid/renderscript/Int2;I)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->add(Landroid/renderscript/Int2;Landroid/renderscript/Int2;)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->addAt(II)V
+Landroid/renderscript/Int2;->addMultiple(Landroid/renderscript/Int2;I)V
+Landroid/renderscript/Int2;->copyTo([II)V
+Landroid/renderscript/Int2;->div(I)V
+Landroid/renderscript/Int2;->div(Landroid/renderscript/Int2;)V
+Landroid/renderscript/Int2;->div(Landroid/renderscript/Int2;I)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->div(Landroid/renderscript/Int2;Landroid/renderscript/Int2;)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->dotProduct(Landroid/renderscript/Int2;)I
+Landroid/renderscript/Int2;->dotProduct(Landroid/renderscript/Int2;Landroid/renderscript/Int2;)I
+Landroid/renderscript/Int2;->elementSum()I
+Landroid/renderscript/Int2;->get(I)I
+Landroid/renderscript/Int2;->length()I
+Landroid/renderscript/Int2;->mod(I)V
+Landroid/renderscript/Int2;->mod(Landroid/renderscript/Int2;)V
+Landroid/renderscript/Int2;->mod(Landroid/renderscript/Int2;I)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->mod(Landroid/renderscript/Int2;Landroid/renderscript/Int2;)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->mul(I)V
+Landroid/renderscript/Int2;->mul(Landroid/renderscript/Int2;)V
+Landroid/renderscript/Int2;->mul(Landroid/renderscript/Int2;I)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->mul(Landroid/renderscript/Int2;Landroid/renderscript/Int2;)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->negate()V
+Landroid/renderscript/Int2;->set(Landroid/renderscript/Int2;)V
+Landroid/renderscript/Int2;->setAt(II)V
+Landroid/renderscript/Int2;->setValues(II)V
+Landroid/renderscript/Int2;->sub(I)V
+Landroid/renderscript/Int2;->sub(Landroid/renderscript/Int2;)V
+Landroid/renderscript/Int2;->sub(Landroid/renderscript/Int2;I)Landroid/renderscript/Int2;
+Landroid/renderscript/Int2;->sub(Landroid/renderscript/Int2;Landroid/renderscript/Int2;)Landroid/renderscript/Int2;
+Landroid/renderscript/Int3;-><init>(I)V
+Landroid/renderscript/Int3;-><init>(Landroid/renderscript/Int3;)V
+Landroid/renderscript/Int3;->add(I)V
+Landroid/renderscript/Int3;->add(Landroid/renderscript/Int3;)V
+Landroid/renderscript/Int3;->add(Landroid/renderscript/Int3;I)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->add(Landroid/renderscript/Int3;Landroid/renderscript/Int3;)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->addAt(II)V
+Landroid/renderscript/Int3;->addMultiple(Landroid/renderscript/Int3;I)V
+Landroid/renderscript/Int3;->copyTo([II)V
+Landroid/renderscript/Int3;->div(I)V
+Landroid/renderscript/Int3;->div(Landroid/renderscript/Int3;)V
+Landroid/renderscript/Int3;->div(Landroid/renderscript/Int3;I)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->div(Landroid/renderscript/Int3;Landroid/renderscript/Int3;)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->dotProduct(Landroid/renderscript/Int3;)I
+Landroid/renderscript/Int3;->dotProduct(Landroid/renderscript/Int3;Landroid/renderscript/Int3;)I
+Landroid/renderscript/Int3;->elementSum()I
+Landroid/renderscript/Int3;->get(I)I
+Landroid/renderscript/Int3;->length()I
+Landroid/renderscript/Int3;->mod(I)V
+Landroid/renderscript/Int3;->mod(Landroid/renderscript/Int3;)V
+Landroid/renderscript/Int3;->mod(Landroid/renderscript/Int3;I)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->mod(Landroid/renderscript/Int3;Landroid/renderscript/Int3;)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->mul(I)V
+Landroid/renderscript/Int3;->mul(Landroid/renderscript/Int3;)V
+Landroid/renderscript/Int3;->mul(Landroid/renderscript/Int3;I)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->mul(Landroid/renderscript/Int3;Landroid/renderscript/Int3;)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->negate()V
+Landroid/renderscript/Int3;->set(Landroid/renderscript/Int3;)V
+Landroid/renderscript/Int3;->setAt(II)V
+Landroid/renderscript/Int3;->setValues(III)V
+Landroid/renderscript/Int3;->sub(I)V
+Landroid/renderscript/Int3;->sub(Landroid/renderscript/Int3;)V
+Landroid/renderscript/Int3;->sub(Landroid/renderscript/Int3;I)Landroid/renderscript/Int3;
+Landroid/renderscript/Int3;->sub(Landroid/renderscript/Int3;Landroid/renderscript/Int3;)Landroid/renderscript/Int3;
+Landroid/renderscript/Int4;-><init>(I)V
+Landroid/renderscript/Int4;-><init>(Landroid/renderscript/Int4;)V
+Landroid/renderscript/Int4;->add(I)V
+Landroid/renderscript/Int4;->add(Landroid/renderscript/Int4;)V
+Landroid/renderscript/Int4;->add(Landroid/renderscript/Int4;I)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->add(Landroid/renderscript/Int4;Landroid/renderscript/Int4;)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->addAt(II)V
+Landroid/renderscript/Int4;->addMultiple(Landroid/renderscript/Int4;I)V
+Landroid/renderscript/Int4;->copyTo([II)V
+Landroid/renderscript/Int4;->div(I)V
+Landroid/renderscript/Int4;->div(Landroid/renderscript/Int4;)V
+Landroid/renderscript/Int4;->div(Landroid/renderscript/Int4;I)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->div(Landroid/renderscript/Int4;Landroid/renderscript/Int4;)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->dotProduct(Landroid/renderscript/Int4;)I
+Landroid/renderscript/Int4;->dotProduct(Landroid/renderscript/Int4;Landroid/renderscript/Int4;)I
+Landroid/renderscript/Int4;->elementSum()I
+Landroid/renderscript/Int4;->get(I)I
+Landroid/renderscript/Int4;->length()I
+Landroid/renderscript/Int4;->mod(I)V
+Landroid/renderscript/Int4;->mod(Landroid/renderscript/Int4;)V
+Landroid/renderscript/Int4;->mod(Landroid/renderscript/Int4;I)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->mod(Landroid/renderscript/Int4;Landroid/renderscript/Int4;)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->mul(I)V
+Landroid/renderscript/Int4;->mul(Landroid/renderscript/Int4;)V
+Landroid/renderscript/Int4;->mul(Landroid/renderscript/Int4;I)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->mul(Landroid/renderscript/Int4;Landroid/renderscript/Int4;)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->negate()V
+Landroid/renderscript/Int4;->set(Landroid/renderscript/Int4;)V
+Landroid/renderscript/Int4;->setAt(II)V
+Landroid/renderscript/Int4;->setValues(IIII)V
+Landroid/renderscript/Int4;->sub(I)V
+Landroid/renderscript/Int4;->sub(Landroid/renderscript/Int4;)V
+Landroid/renderscript/Int4;->sub(Landroid/renderscript/Int4;I)Landroid/renderscript/Int4;
+Landroid/renderscript/Int4;->sub(Landroid/renderscript/Int4;Landroid/renderscript/Int4;)Landroid/renderscript/Int4;
+Landroid/renderscript/Long2;-><init>(J)V
+Landroid/renderscript/Long2;-><init>(Landroid/renderscript/Long2;)V
+Landroid/renderscript/Long2;->add(J)V
+Landroid/renderscript/Long2;->add(Landroid/renderscript/Long2;)V
+Landroid/renderscript/Long2;->add(Landroid/renderscript/Long2;J)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->add(Landroid/renderscript/Long2;Landroid/renderscript/Long2;)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->addAt(IJ)V
+Landroid/renderscript/Long2;->addMultiple(Landroid/renderscript/Long2;J)V
+Landroid/renderscript/Long2;->copyTo([JI)V
+Landroid/renderscript/Long2;->div(J)V
+Landroid/renderscript/Long2;->div(Landroid/renderscript/Long2;)V
+Landroid/renderscript/Long2;->div(Landroid/renderscript/Long2;J)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->div(Landroid/renderscript/Long2;Landroid/renderscript/Long2;)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->dotProduct(Landroid/renderscript/Long2;)J
+Landroid/renderscript/Long2;->dotProduct(Landroid/renderscript/Long2;Landroid/renderscript/Long2;)J
+Landroid/renderscript/Long2;->elementSum()J
+Landroid/renderscript/Long2;->get(I)J
+Landroid/renderscript/Long2;->length()J
+Landroid/renderscript/Long2;->mod(J)V
+Landroid/renderscript/Long2;->mod(Landroid/renderscript/Long2;)V
+Landroid/renderscript/Long2;->mod(Landroid/renderscript/Long2;J)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->mod(Landroid/renderscript/Long2;Landroid/renderscript/Long2;)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->mul(J)V
+Landroid/renderscript/Long2;->mul(Landroid/renderscript/Long2;)V
+Landroid/renderscript/Long2;->mul(Landroid/renderscript/Long2;J)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->mul(Landroid/renderscript/Long2;Landroid/renderscript/Long2;)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->negate()V
+Landroid/renderscript/Long2;->set(Landroid/renderscript/Long2;)V
+Landroid/renderscript/Long2;->setAt(IJ)V
+Landroid/renderscript/Long2;->setValues(JJ)V
+Landroid/renderscript/Long2;->sub(J)V
+Landroid/renderscript/Long2;->sub(Landroid/renderscript/Long2;)V
+Landroid/renderscript/Long2;->sub(Landroid/renderscript/Long2;J)Landroid/renderscript/Long2;
+Landroid/renderscript/Long2;->sub(Landroid/renderscript/Long2;Landroid/renderscript/Long2;)Landroid/renderscript/Long2;
+Landroid/renderscript/Long3;-><init>(J)V
+Landroid/renderscript/Long3;-><init>(Landroid/renderscript/Long3;)V
+Landroid/renderscript/Long3;->add(J)V
+Landroid/renderscript/Long3;->add(Landroid/renderscript/Long3;)V
+Landroid/renderscript/Long3;->add(Landroid/renderscript/Long3;J)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->add(Landroid/renderscript/Long3;Landroid/renderscript/Long3;)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->addAt(IJ)V
+Landroid/renderscript/Long3;->addMultiple(Landroid/renderscript/Long3;J)V
+Landroid/renderscript/Long3;->copyTo([JI)V
+Landroid/renderscript/Long3;->div(J)V
+Landroid/renderscript/Long3;->div(Landroid/renderscript/Long3;)V
+Landroid/renderscript/Long3;->div(Landroid/renderscript/Long3;J)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->div(Landroid/renderscript/Long3;Landroid/renderscript/Long3;)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->dotProduct(Landroid/renderscript/Long3;)J
+Landroid/renderscript/Long3;->dotProduct(Landroid/renderscript/Long3;Landroid/renderscript/Long3;)J
+Landroid/renderscript/Long3;->elementSum()J
+Landroid/renderscript/Long3;->get(I)J
+Landroid/renderscript/Long3;->length()J
+Landroid/renderscript/Long3;->mod(J)V
+Landroid/renderscript/Long3;->mod(Landroid/renderscript/Long3;)V
+Landroid/renderscript/Long3;->mod(Landroid/renderscript/Long3;J)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->mod(Landroid/renderscript/Long3;Landroid/renderscript/Long3;)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->mul(J)V
+Landroid/renderscript/Long3;->mul(Landroid/renderscript/Long3;)V
+Landroid/renderscript/Long3;->mul(Landroid/renderscript/Long3;J)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->mul(Landroid/renderscript/Long3;Landroid/renderscript/Long3;)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->negate()V
+Landroid/renderscript/Long3;->set(Landroid/renderscript/Long3;)V
+Landroid/renderscript/Long3;->setAt(IJ)V
+Landroid/renderscript/Long3;->setValues(JJJ)V
+Landroid/renderscript/Long3;->sub(J)V
+Landroid/renderscript/Long3;->sub(Landroid/renderscript/Long3;)V
+Landroid/renderscript/Long3;->sub(Landroid/renderscript/Long3;J)Landroid/renderscript/Long3;
+Landroid/renderscript/Long3;->sub(Landroid/renderscript/Long3;Landroid/renderscript/Long3;)Landroid/renderscript/Long3;
+Landroid/renderscript/Long4;-><init>(J)V
+Landroid/renderscript/Long4;-><init>(Landroid/renderscript/Long4;)V
+Landroid/renderscript/Long4;->add(J)V
+Landroid/renderscript/Long4;->add(Landroid/renderscript/Long4;)V
+Landroid/renderscript/Long4;->add(Landroid/renderscript/Long4;J)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->add(Landroid/renderscript/Long4;Landroid/renderscript/Long4;)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->addAt(IJ)V
+Landroid/renderscript/Long4;->addMultiple(Landroid/renderscript/Long4;J)V
+Landroid/renderscript/Long4;->copyTo([JI)V
+Landroid/renderscript/Long4;->div(J)V
+Landroid/renderscript/Long4;->div(Landroid/renderscript/Long4;)V
+Landroid/renderscript/Long4;->div(Landroid/renderscript/Long4;J)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->div(Landroid/renderscript/Long4;Landroid/renderscript/Long4;)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->dotProduct(Landroid/renderscript/Long4;)J
+Landroid/renderscript/Long4;->dotProduct(Landroid/renderscript/Long4;Landroid/renderscript/Long4;)J
+Landroid/renderscript/Long4;->elementSum()J
+Landroid/renderscript/Long4;->get(I)J
+Landroid/renderscript/Long4;->length()J
+Landroid/renderscript/Long4;->mod(J)V
+Landroid/renderscript/Long4;->mod(Landroid/renderscript/Long4;)V
+Landroid/renderscript/Long4;->mod(Landroid/renderscript/Long4;J)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->mod(Landroid/renderscript/Long4;Landroid/renderscript/Long4;)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->mul(J)V
+Landroid/renderscript/Long4;->mul(Landroid/renderscript/Long4;)V
+Landroid/renderscript/Long4;->mul(Landroid/renderscript/Long4;J)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->mul(Landroid/renderscript/Long4;Landroid/renderscript/Long4;)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->negate()V
+Landroid/renderscript/Long4;->set(Landroid/renderscript/Long4;)V
+Landroid/renderscript/Long4;->setAt(IJ)V
+Landroid/renderscript/Long4;->setValues(JJJJ)V
+Landroid/renderscript/Long4;->sub(J)V
+Landroid/renderscript/Long4;->sub(Landroid/renderscript/Long4;)V
+Landroid/renderscript/Long4;->sub(Landroid/renderscript/Long4;J)Landroid/renderscript/Long4;
+Landroid/renderscript/Long4;->sub(Landroid/renderscript/Long4;Landroid/renderscript/Long4;)Landroid/renderscript/Long4;
+Landroid/renderscript/Matrix2f;->mMat:[F
+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;
+Landroid/renderscript/Mesh$Builder;->addIndexSetType(Landroid/renderscript/Type;Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;
+Landroid/renderscript/Mesh$Builder;->addVertexType(Landroid/renderscript/Element;I)Landroid/renderscript/Mesh$Builder;
+Landroid/renderscript/Mesh$Builder;->addVertexType(Landroid/renderscript/Type;)Landroid/renderscript/Mesh$Builder;
+Landroid/renderscript/Mesh$Builder;->create()Landroid/renderscript/Mesh;
+Landroid/renderscript/Mesh$Builder;->getCurrentIndexSetIndex()I
+Landroid/renderscript/Mesh$Builder;->getCurrentVertexTypeIndex()I
+Landroid/renderscript/Mesh$Builder;->mIndexTypes:Ljava/util/Vector;
+Landroid/renderscript/Mesh$Builder;->mRS:Landroid/renderscript/RenderScript;
+Landroid/renderscript/Mesh$Builder;->mUsage:I
+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
+Landroid/renderscript/Mesh$Primitive;->TRIANGLE_FAN:Landroid/renderscript/Mesh$Primitive;
+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
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mA:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->makeSpace(I)V
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mB:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mElement:Landroid/renderscript/Element;
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mFlags:I
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mG:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mIndexCount:I
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mIndexData:[S
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mMaxIndex:I
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mNX:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mNY:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mNZ:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mR:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mRS:Landroid/renderscript/RenderScript;
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mS0:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mT0:F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mVtxCount:I
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mVtxData:[F
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->mVtxSize:I
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->NORMAL:I
+Landroid/renderscript/Mesh$TriangleMeshBuilder;->setColor(FFFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;
+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;
+Landroid/renderscript/Mesh;->getPrimitiveCount()I
+Landroid/renderscript/Mesh;->getVertexAllocationCount()I
+Landroid/renderscript/Mesh;->mIndexBuffers:[Landroid/renderscript/Allocation;
+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;
+Landroid/renderscript/Program$BaseProgramBuilder;->getCurrentConstantIndex()I
+Landroid/renderscript/Program$BaseProgramBuilder;->getCurrentTextureIndex()I
+Landroid/renderscript/Program$BaseProgramBuilder;->initProgram(Landroid/renderscript/Program;)V
+Landroid/renderscript/Program$BaseProgramBuilder;->mTextureNames:[Ljava/lang/String;
+Landroid/renderscript/Program$BaseProgramBuilder;->mTextures:[Landroid/renderscript/Type;
+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
+Landroid/renderscript/Program$ProgramParam;->OUTPUT:Landroid/renderscript/Program$ProgramParam;
+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
+Landroid/renderscript/Program;->bindTexture(Landroid/renderscript/Allocation;I)V
+Landroid/renderscript/Program;->getConstant(I)Landroid/renderscript/Type;
+Landroid/renderscript/Program;->getConstantCount()I
+Landroid/renderscript/Program;->getTextureCount()I
+Landroid/renderscript/Program;->getTextureName(I)Ljava/lang/String;
+Landroid/renderscript/Program;->getTextureType(I)Landroid/renderscript/Program$TextureType;
+Landroid/renderscript/Program;->MAX_CONSTANT:I
+Landroid/renderscript/Program;->MAX_INPUT:I
+Landroid/renderscript/Program;->MAX_OUTPUT:I
+Landroid/renderscript/Program;->MAX_TEXTURE:I
+Landroid/renderscript/Program;->mConstants:[Landroid/renderscript/Type;
+Landroid/renderscript/Program;->mInputs:[Landroid/renderscript/Element;
+Landroid/renderscript/Program;->mOutputs:[Landroid/renderscript/Element;
+Landroid/renderscript/Program;->mShader:Ljava/lang/String;
+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
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->mPointSpriteEnable:Z
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->mRS:Landroid/renderscript/RenderScript;
+Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->mShader:Ljava/lang/String;
+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;
+Landroid/renderscript/ProgramRaster;->CULL_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;
+Landroid/renderscript/ProgramRaster;->getCullMode()Landroid/renderscript/ProgramRaster$CullMode;
+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;
+Landroid/renderscript/ProgramStore$BlendDstFunc;->ONE_MINUS_SRC_COLOR:Landroid/renderscript/ProgramStore$BlendDstFunc;
+Landroid/renderscript/ProgramStore$BlendDstFunc;->SRC_ALPHA:Landroid/renderscript/ProgramStore$BlendDstFunc;
+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
+Landroid/renderscript/ProgramStore$BlendSrcFunc;->ONE_MINUS_DST_ALPHA:Landroid/renderscript/ProgramStore$BlendSrcFunc;
+Landroid/renderscript/ProgramStore$BlendSrcFunc;->ONE_MINUS_DST_COLOR:Landroid/renderscript/ProgramStore$BlendSrcFunc;
+Landroid/renderscript/ProgramStore$BlendSrcFunc;->ONE_MINUS_SRC_ALPHA:Landroid/renderscript/ProgramStore$BlendSrcFunc;
+Landroid/renderscript/ProgramStore$BlendSrcFunc;->SRC_ALPHA_SATURATE:Landroid/renderscript/ProgramStore$BlendSrcFunc;
+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
+Landroid/renderscript/ProgramStore$Builder;->mColorMaskB:Z
+Landroid/renderscript/ProgramStore$Builder;->mColorMaskG:Z
+Landroid/renderscript/ProgramStore$Builder;->mColorMaskR:Z
+Landroid/renderscript/ProgramStore$Builder;->mDepthFunc:Landroid/renderscript/ProgramStore$DepthFunc;
+Landroid/renderscript/ProgramStore$Builder;->mDepthMask:Z
+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;
+Landroid/renderscript/ProgramStore$DepthFunc;->LESS_OR_EQUAL:Landroid/renderscript/ProgramStore$DepthFunc;
+Landroid/renderscript/ProgramStore$DepthFunc;->mID:I
+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;
+Landroid/renderscript/ProgramStore;->BLEND_NONE_DEPTH_TEST(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;
+Landroid/renderscript/ProgramStore;->getBlendDstFunc()Landroid/renderscript/ProgramStore$BlendDstFunc;
+Landroid/renderscript/ProgramStore;->getBlendSrcFunc()Landroid/renderscript/ProgramStore$BlendSrcFunc;
+Landroid/renderscript/ProgramStore;->getDepthFunc()Landroid/renderscript/ProgramStore$DepthFunc;
+Landroid/renderscript/ProgramStore;->isColorMaskAlphaEnabled()Z
+Landroid/renderscript/ProgramStore;->isColorMaskBlueEnabled()Z
+Landroid/renderscript/ProgramStore;->isColorMaskGreenEnabled()Z
+Landroid/renderscript/ProgramStore;->isColorMaskRedEnabled()Z
+Landroid/renderscript/ProgramStore;->isDepthMaskEnabled()Z
+Landroid/renderscript/ProgramStore;->isDitherEnabled()Z
+Landroid/renderscript/ProgramStore;->mBlendDst:Landroid/renderscript/ProgramStore$BlendDstFunc;
+Landroid/renderscript/ProgramStore;->mBlendSrc:Landroid/renderscript/ProgramStore$BlendSrcFunc;
+Landroid/renderscript/ProgramStore;->mColorMaskA:Z
+Landroid/renderscript/ProgramStore;->mColorMaskB:Z
+Landroid/renderscript/ProgramStore;->mColorMaskG:Z
+Landroid/renderscript/ProgramStore;->mColorMaskR:Z
+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;
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;->mAlloc:Landroid/renderscript/Allocation;
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;->mIOBuffer:Landroid/renderscript/FieldPacker;
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;->mModel:Landroid/renderscript/Matrix4f;
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;->MODELVIEW_OFFSET:I
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;->mProjection:Landroid/renderscript/Matrix4f;
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;->mTexture:Landroid/renderscript/Matrix4f;
+Landroid/renderscript/ProgramVertexFixedFunction$Constants;->PROJECTION_OFFSET:I
+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;
+Landroid/renderscript/RenderScript$MessageThread;->mRun:Z
+Landroid/renderscript/RenderScript$MessageThread;->RS_ERROR_FATAL_DEBUG:I
+Landroid/renderscript/RenderScript$MessageThread;->RS_ERROR_FATAL_UNKNOWN:I
+Landroid/renderscript/RenderScript$MessageThread;->RS_MESSAGE_TO_CLIENT_ERROR:I
+Landroid/renderscript/RenderScript$MessageThread;->RS_MESSAGE_TO_CLIENT_EXCEPTION:I
+Landroid/renderscript/RenderScript$MessageThread;->RS_MESSAGE_TO_CLIENT_NEW_BUFFER:I
+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
+Landroid/renderscript/RenderScript;->DEBUG:Z
+Landroid/renderscript/RenderScript;->getCachePath()Ljava/lang/String;
+Landroid/renderscript/RenderScript;->helpDestroy()V
+Landroid/renderscript/RenderScript;->internalCreate(Landroid/content/Context;ILandroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;
+Landroid/renderscript/RenderScript;->isAlive()Z
+Landroid/renderscript/RenderScript;->LOG_ENABLED:Z
+Landroid/renderscript/RenderScript;->LOG_TAG:Ljava/lang/String;
+Landroid/renderscript/RenderScript;->mApplicationContext:Landroid/content/Context;
+Landroid/renderscript/RenderScript;->mCachePath:Ljava/lang/String;
+Landroid/renderscript/RenderScript;->mContext:J
+Landroid/renderscript/RenderScript;->mContextFlags:I
+Landroid/renderscript/RenderScript;->mContextSdkVersion:I
+Landroid/renderscript/RenderScript;->mContextType:Landroid/renderscript/RenderScript$ContextType;
+Landroid/renderscript/RenderScript;->mDestroyed:Z
+Landroid/renderscript/RenderScript;->mElement_ALLOCATION:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_A_8:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_BOOLEAN:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_CHAR_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_CHAR_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_CHAR_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_DOUBLE_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_DOUBLE_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_DOUBLE_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_ELEMENT:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_F16:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_F32:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_F64:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_FLOAT_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_FLOAT_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_FLOAT_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_FONT:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_HALF_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_HALF_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_HALF_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_I16:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_I32:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_I64:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_I8:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_INT_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_INT_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_INT_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_LONG_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_LONG_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_LONG_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_MATRIX_2X2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_MATRIX_3X3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_MATRIX_4X4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_MESH:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_PROGRAM_FRAGMENT:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_PROGRAM_RASTER:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_PROGRAM_STORE:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_PROGRAM_VERTEX:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_RGBA_4444:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_RGBA_5551:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_RGBA_8888:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_RGB_565:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_RGB_888:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_SAMPLER:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_SCRIPT:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_SHORT_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_SHORT_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_SHORT_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_TYPE:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_U16:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_U32:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_U64:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_U8:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_UCHAR_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_UCHAR_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_UCHAR_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_UINT_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_UINT_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_UINT_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_ULONG_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_ULONG_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_ULONG_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_USHORT_2:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_USHORT_3:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_USHORT_4:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mElement_YUV:Landroid/renderscript/Element;
+Landroid/renderscript/RenderScript;->mErrorCallback:Landroid/renderscript/RenderScript$RSErrorHandler;
+Landroid/renderscript/RenderScript;->mIsProcessContext:Z
+Landroid/renderscript/RenderScript;->mMessageThread:Landroid/renderscript/RenderScript$MessageThread;
+Landroid/renderscript/RenderScript;->mProcessContextList:Ljava/util/ArrayList;
+Landroid/renderscript/RenderScript;->mProgramRaster_CULL_BACK:Landroid/renderscript/ProgramRaster;
+Landroid/renderscript/RenderScript;->mProgramRaster_CULL_FRONT:Landroid/renderscript/ProgramRaster;
+Landroid/renderscript/RenderScript;->mProgramRaster_CULL_NONE:Landroid/renderscript/ProgramRaster;
+Landroid/renderscript/RenderScript;->mProgramStore_BLEND_ALPHA_DEPTH_NO_DEPTH:Landroid/renderscript/ProgramStore;
+Landroid/renderscript/RenderScript;->mProgramStore_BLEND_ALPHA_DEPTH_TEST:Landroid/renderscript/ProgramStore;
+Landroid/renderscript/RenderScript;->mProgramStore_BLEND_NONE_DEPTH_NO_DEPTH:Landroid/renderscript/ProgramStore;
+Landroid/renderscript/RenderScript;->mProgramStore_BLEND_NONE_DEPTH_TEST:Landroid/renderscript/ProgramStore;
+Landroid/renderscript/RenderScript;->mRWLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
+Landroid/renderscript/RenderScript;->mSampler_CLAMP_LINEAR:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->mSampler_CLAMP_LINEAR_MIP_LINEAR:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->mSampler_CLAMP_NEAREST:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->mSampler_MIRRORED_REPEAT_LINEAR:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->mSampler_MIRRORED_REPEAT_LINEAR_MIP_LINEAR:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->mSampler_MIRRORED_REPEAT_NEAREST:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->mSampler_WRAP_LINEAR:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->mSampler_WRAP_LINEAR_MIP_LINEAR:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->mSampler_WRAP_NEAREST:Landroid/renderscript/Sampler;
+Landroid/renderscript/RenderScript;->nAllocationAdapterCreate(JJ)J
+Landroid/renderscript/RenderScript;->nAllocationAdapterOffset(JIIIIIIIII)V
+Landroid/renderscript/RenderScript;->nAllocationCopyFromBitmap(JLandroid/graphics/Bitmap;)V
+Landroid/renderscript/RenderScript;->nAllocationCopyToBitmap(JLandroid/graphics/Bitmap;)V
+Landroid/renderscript/RenderScript;->nAllocationCreateBitmapBackedAllocation(JILandroid/graphics/Bitmap;I)J
+Landroid/renderscript/RenderScript;->nAllocationCreateBitmapRef(JLandroid/graphics/Bitmap;)J
+Landroid/renderscript/RenderScript;->nAllocationCreateFromAssetStream(III)J
+Landroid/renderscript/RenderScript;->nAllocationCreateFromBitmap(JILandroid/graphics/Bitmap;I)J
+Landroid/renderscript/RenderScript;->nAllocationCreateTyped(JIIJ)J
+Landroid/renderscript/RenderScript;->nAllocationCubeCreateFromBitmap(JILandroid/graphics/Bitmap;I)J
+Landroid/renderscript/RenderScript;->nAllocationData1D(JIIILjava/lang/Object;ILandroid/renderscript/Element$DataType;IZ)V
+Landroid/renderscript/RenderScript;->nAllocationData2D(JIIIIIIJIIII)V
+Landroid/renderscript/RenderScript;->nAllocationData2D(JIIIIIILjava/lang/Object;ILandroid/renderscript/Element$DataType;IZ)V
+Landroid/renderscript/RenderScript;->nAllocationData2D(JIIIILandroid/graphics/Bitmap;)V
+Landroid/renderscript/RenderScript;->nAllocationData3D(JIIIIIIIJIIII)V
+Landroid/renderscript/RenderScript;->nAllocationData3D(JIIIIIIILjava/lang/Object;ILandroid/renderscript/Element$DataType;IZ)V
+Landroid/renderscript/RenderScript;->nAllocationElementData(JIIIII[BI)V
+Landroid/renderscript/RenderScript;->nAllocationElementRead(JIIIII[BI)V
+Landroid/renderscript/RenderScript;->nAllocationGenerateMipmaps(J)V
+Landroid/renderscript/RenderScript;->nAllocationGetByteBuffer(J[JIII)Ljava/nio/ByteBuffer;
+Landroid/renderscript/RenderScript;->nAllocationGetSurface(J)Landroid/view/Surface;
+Landroid/renderscript/RenderScript;->nAllocationGetType(J)J
+Landroid/renderscript/RenderScript;->nAllocationIoReceive(J)J
+Landroid/renderscript/RenderScript;->nAllocationIoSend(J)V
+Landroid/renderscript/RenderScript;->nAllocationRead(JLjava/lang/Object;Landroid/renderscript/Element$DataType;IZ)V
+Landroid/renderscript/RenderScript;->nAllocationRead1D(JIIILjava/lang/Object;ILandroid/renderscript/Element$DataType;IZ)V
+Landroid/renderscript/RenderScript;->nAllocationRead2D(JIIIIIILjava/lang/Object;ILandroid/renderscript/Element$DataType;IZ)V
+Landroid/renderscript/RenderScript;->nAllocationRead3D(JIIIIIIILjava/lang/Object;ILandroid/renderscript/Element$DataType;IZ)V
+Landroid/renderscript/RenderScript;->nAllocationResize1D(JI)V
+Landroid/renderscript/RenderScript;->nAllocationSetSurface(JLandroid/view/Surface;)V
+Landroid/renderscript/RenderScript;->nAllocationSetupBufferQueue(JI)V
+Landroid/renderscript/RenderScript;->nAllocationShareBufferQueue(JJ)V
+Landroid/renderscript/RenderScript;->nAllocationSyncAll(JI)V
+Landroid/renderscript/RenderScript;->nAssignName(J[B)V
+Landroid/renderscript/RenderScript;->nClosureCreate(JJ[J[J[I[J[J)J
+Landroid/renderscript/RenderScript;->nClosureSetArg(JIJI)V
+Landroid/renderscript/RenderScript;->nClosureSetGlobal(JJJI)V
+Landroid/renderscript/RenderScript;->nContextBindProgramFragment(J)V
+Landroid/renderscript/RenderScript;->nContextBindProgramRaster(J)V
+Landroid/renderscript/RenderScript;->nContextBindProgramStore(J)V
+Landroid/renderscript/RenderScript;->nContextBindProgramVertex(J)V
+Landroid/renderscript/RenderScript;->nContextBindRootScript(J)V
+Landroid/renderscript/RenderScript;->nContextBindSampler(II)V
+Landroid/renderscript/RenderScript;->nContextCreate(JIII)J
+Landroid/renderscript/RenderScript;->nContextCreateGL(JIIIIIIIIIIIIFI)J
+Landroid/renderscript/RenderScript;->nContextDeinitToClient(J)V
+Landroid/renderscript/RenderScript;->nContextDestroy()V
+Landroid/renderscript/RenderScript;->nContextDump(I)V
+Landroid/renderscript/RenderScript;->nContextFinish()V
+Landroid/renderscript/RenderScript;->nContextGetErrorMessage(J)Ljava/lang/String;
+Landroid/renderscript/RenderScript;->nContextGetUserMessage(J[I)I
+Landroid/renderscript/RenderScript;->nContextInitToClient(J)V
+Landroid/renderscript/RenderScript;->nContextPause()V
+Landroid/renderscript/RenderScript;->nContextPeekMessage(J[I)I
+Landroid/renderscript/RenderScript;->nContextResume()V
+Landroid/renderscript/RenderScript;->nContextSendMessage(I[I)V
+Landroid/renderscript/RenderScript;->nContextSetCacheDir(Ljava/lang/String;)V
+Landroid/renderscript/RenderScript;->nContextSetPriority(I)V
+Landroid/renderscript/RenderScript;->nContextSetSurface(IILandroid/view/Surface;)V
+Landroid/renderscript/RenderScript;->nContextSetSurfaceTexture(IILandroid/graphics/SurfaceTexture;)V
+Landroid/renderscript/RenderScript;->nDeviceCreate()J
+Landroid/renderscript/RenderScript;->nDeviceDestroy(J)V
+Landroid/renderscript/RenderScript;->nDeviceSetConfig(JII)V
+Landroid/renderscript/RenderScript;->nElementCreate(JIZI)J
+Landroid/renderscript/RenderScript;->nElementCreate2([J[Ljava/lang/String;[I)J
+Landroid/renderscript/RenderScript;->nElementGetNativeData(J[I)V
+Landroid/renderscript/RenderScript;->nElementGetSubElements(J[J[Ljava/lang/String;[I)V
+Landroid/renderscript/RenderScript;->nFileA3DCreateFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)J
+Landroid/renderscript/RenderScript;->nFileA3DCreateFromAssetStream(J)J
+Landroid/renderscript/RenderScript;->nFileA3DCreateFromFile(Ljava/lang/String;)J
+Landroid/renderscript/RenderScript;->nFileA3DGetEntryByIndex(JI)J
+Landroid/renderscript/RenderScript;->nFileA3DGetIndexEntries(JI[I[Ljava/lang/String;)V
+Landroid/renderscript/RenderScript;->nFileA3DGetNumIndexEntries(J)I
+Landroid/renderscript/RenderScript;->nFontCreateFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;FI)J
+Landroid/renderscript/RenderScript;->nFontCreateFromAssetStream(Ljava/lang/String;FIJ)J
+Landroid/renderscript/RenderScript;->nFontCreateFromFile(Ljava/lang/String;FI)J
+Landroid/renderscript/RenderScript;->nGetName(J)Ljava/lang/String;
+Landroid/renderscript/RenderScript;->nInvokeClosureCreate(J[B[J[J[I)J
+Landroid/renderscript/RenderScript;->nMeshCreate([J[J[I)J
+Landroid/renderscript/RenderScript;->nMeshGetIndexCount(J)I
+Landroid/renderscript/RenderScript;->nMeshGetIndices(J[J[II)V
+Landroid/renderscript/RenderScript;->nMeshGetVertexBufferCount(J)I
+Landroid/renderscript/RenderScript;->nMeshGetVertices(J[JI)V
+Landroid/renderscript/RenderScript;->nObjDestroy(J)V
+Landroid/renderscript/RenderScript;->nProgramBindConstants(JIJ)V
+Landroid/renderscript/RenderScript;->nProgramBindSampler(JIJ)V
+Landroid/renderscript/RenderScript;->nProgramBindTexture(JIJ)V
+Landroid/renderscript/RenderScript;->nProgramFragmentCreate(Ljava/lang/String;[Ljava/lang/String;[J)J
+Landroid/renderscript/RenderScript;->nProgramRasterCreate(ZI)J
+Landroid/renderscript/RenderScript;->nProgramStoreCreate(ZZZZZZIII)J
+Landroid/renderscript/RenderScript;->nProgramVertexCreate(Ljava/lang/String;[Ljava/lang/String;[J)J
+Landroid/renderscript/RenderScript;->nSamplerCreate(IIIIIF)J
+Landroid/renderscript/RenderScript;->nScriptBindAllocation(JJI)V
+Landroid/renderscript/RenderScript;->nScriptFieldIDCreate(JI)J
+Landroid/renderscript/RenderScript;->nScriptForEach(JI[JJ[B[I)V
+Landroid/renderscript/RenderScript;->nScriptGetVarD(JI)D
+Landroid/renderscript/RenderScript;->nScriptGetVarF(JI)F
+Landroid/renderscript/RenderScript;->nScriptGetVarI(JI)I
+Landroid/renderscript/RenderScript;->nScriptGetVarJ(JI)J
+Landroid/renderscript/RenderScript;->nScriptGetVarV(JI[B)V
+Landroid/renderscript/RenderScript;->nScriptGroup2Create(Ljava/lang/String;Ljava/lang/String;[J)J
+Landroid/renderscript/RenderScript;->nScriptGroup2Execute(J)V
+Landroid/renderscript/RenderScript;->nScriptGroupCreate([J[J[J[J[J)J
+Landroid/renderscript/RenderScript;->nScriptGroupExecute(J)V
+Landroid/renderscript/RenderScript;->nScriptGroupSetInput(JJJ)V
+Landroid/renderscript/RenderScript;->nScriptGroupSetOutput(JJJ)V
+Landroid/renderscript/RenderScript;->nScriptIntrinsicBLAS_BNNM(JIIIJIJIJII)V
+Landroid/renderscript/RenderScript;->nScriptIntrinsicBLAS_Complex(JIIIIIIIIIFFJJFFJIIII)V
+Landroid/renderscript/RenderScript;->nScriptIntrinsicBLAS_Double(JIIIIIIIIIDJJDJIIII)V
+Landroid/renderscript/RenderScript;->nScriptIntrinsicBLAS_Single(JIIIIIIIIIFJJFJIIII)V
+Landroid/renderscript/RenderScript;->nScriptIntrinsicBLAS_Z(JIIIIIIIIIDDJJDDJIIII)V
+Landroid/renderscript/RenderScript;->nScriptIntrinsicCreate(IJ)J
+Landroid/renderscript/RenderScript;->nScriptInvoke(JI)V
+Landroid/renderscript/RenderScript;->nScriptInvokeIDCreate(JI)J
+Landroid/renderscript/RenderScript;->nScriptInvokeV(JI[B)V
+Landroid/renderscript/RenderScript;->nScriptKernelIDCreate(JII)J
+Landroid/renderscript/RenderScript;->nScriptReduce(JI[JJ[I)V
+Landroid/renderscript/RenderScript;->nScriptSetTimeZone(J[B)V
+Landroid/renderscript/RenderScript;->nScriptSetVarD(JID)V
+Landroid/renderscript/RenderScript;->nScriptSetVarF(JIF)V
+Landroid/renderscript/RenderScript;->nScriptSetVarI(JII)V
+Landroid/renderscript/RenderScript;->nScriptSetVarJ(JIJ)V
+Landroid/renderscript/RenderScript;->nScriptSetVarObj(JIJ)V
+Landroid/renderscript/RenderScript;->nScriptSetVarV(JI[B)V
+Landroid/renderscript/RenderScript;->nScriptSetVarVE(JI[BJ[I)V
+Landroid/renderscript/RenderScript;->nTypeCreate(JIIIZZI)J
+Landroid/renderscript/RenderScript;->nTypeGetNativeData(J[J)V
+Landroid/renderscript/RenderScript;->registerNativeAllocation:Ljava/lang/reflect/Method;
+Landroid/renderscript/RenderScript;->registerNativeFree:Ljava/lang/reflect/Method;
+Landroid/renderscript/RenderScript;->rsnAllocationAdapterCreate(JJJ)J
+Landroid/renderscript/RenderScript;->rsnAllocationAdapterOffset(JJIIIIIIIII)V
+Landroid/renderscript/RenderScript;->rsnAllocationCopyFromBitmap(JJLandroid/graphics/Bitmap;)V
+Landroid/renderscript/RenderScript;->rsnAllocationCopyToBitmap(JJLandroid/graphics/Bitmap;)V
+Landroid/renderscript/RenderScript;->rsnAllocationCreateBitmapBackedAllocation(JJILandroid/graphics/Bitmap;I)J
+Landroid/renderscript/RenderScript;->rsnAllocationCreateBitmapRef(JJLandroid/graphics/Bitmap;)J
+Landroid/renderscript/RenderScript;->rsnAllocationCreateFromAssetStream(JIII)J
+Landroid/renderscript/RenderScript;->rsnAllocationCreateFromBitmap(JJILandroid/graphics/Bitmap;I)J
+Landroid/renderscript/RenderScript;->rsnAllocationCreateTyped(JJIIJ)J
+Landroid/renderscript/RenderScript;->rsnAllocationCubeCreateFromBitmap(JJILandroid/graphics/Bitmap;I)J
+Landroid/renderscript/RenderScript;->rsnAllocationData1D(JJIIILjava/lang/Object;IIIZ)V
+Landroid/renderscript/RenderScript;->rsnAllocationData2D(JJIIIIIIJIIII)V
+Landroid/renderscript/RenderScript;->rsnAllocationData2D(JJIIIIIILjava/lang/Object;IIIZ)V
+Landroid/renderscript/RenderScript;->rsnAllocationData2D(JJIIIILandroid/graphics/Bitmap;)V
+Landroid/renderscript/RenderScript;->rsnAllocationData3D(JJIIIIIIIJIIII)V
+Landroid/renderscript/RenderScript;->rsnAllocationData3D(JJIIIIIIILjava/lang/Object;IIIZ)V
+Landroid/renderscript/RenderScript;->rsnAllocationElementData(JJIIIII[BI)V
+Landroid/renderscript/RenderScript;->rsnAllocationElementRead(JJIIIII[BI)V
+Landroid/renderscript/RenderScript;->rsnAllocationGenerateMipmaps(JJ)V
+Landroid/renderscript/RenderScript;->rsnAllocationGetByteBuffer(JJ[JIII)Ljava/nio/ByteBuffer;
+Landroid/renderscript/RenderScript;->rsnAllocationGetSurface(JJ)Landroid/view/Surface;
+Landroid/renderscript/RenderScript;->rsnAllocationGetType(JJ)J
+Landroid/renderscript/RenderScript;->rsnAllocationIoReceive(JJ)J
+Landroid/renderscript/RenderScript;->rsnAllocationIoSend(JJ)V
+Landroid/renderscript/RenderScript;->rsnAllocationRead(JJLjava/lang/Object;IIZ)V
+Landroid/renderscript/RenderScript;->rsnAllocationRead1D(JJIIILjava/lang/Object;IIIZ)V
+Landroid/renderscript/RenderScript;->rsnAllocationRead2D(JJIIIIIILjava/lang/Object;IIIZ)V
+Landroid/renderscript/RenderScript;->rsnAllocationRead3D(JJIIIIIIILjava/lang/Object;IIIZ)V
+Landroid/renderscript/RenderScript;->rsnAllocationResize1D(JJI)V
+Landroid/renderscript/RenderScript;->rsnAllocationSetSurface(JJLandroid/view/Surface;)V
+Landroid/renderscript/RenderScript;->rsnAllocationSetupBufferQueue(JJI)V
+Landroid/renderscript/RenderScript;->rsnAllocationShareBufferQueue(JJJ)V
+Landroid/renderscript/RenderScript;->rsnAllocationSyncAll(JJI)V
+Landroid/renderscript/RenderScript;->rsnAssignName(JJ[B)V
+Landroid/renderscript/RenderScript;->rsnClosureCreate(JJJ[J[J[I[J[J)J
+Landroid/renderscript/RenderScript;->rsnClosureSetArg(JJIJI)V
+Landroid/renderscript/RenderScript;->rsnClosureSetGlobal(JJJJI)V
+Landroid/renderscript/RenderScript;->rsnContextBindProgramFragment(JJ)V
+Landroid/renderscript/RenderScript;->rsnContextBindProgramRaster(JJ)V
+Landroid/renderscript/RenderScript;->rsnContextBindProgramStore(JJ)V
+Landroid/renderscript/RenderScript;->rsnContextBindProgramVertex(JJ)V
+Landroid/renderscript/RenderScript;->rsnContextBindRootScript(JJ)V
+Landroid/renderscript/RenderScript;->rsnContextBindSampler(JII)V
+Landroid/renderscript/RenderScript;->rsnContextCreate(JIII)J
+Landroid/renderscript/RenderScript;->rsnContextCreateGL(JIIIIIIIIIIIIFI)J
+Landroid/renderscript/RenderScript;->rsnContextDestroy(J)V
+Landroid/renderscript/RenderScript;->rsnContextDump(JI)V
+Landroid/renderscript/RenderScript;->rsnContextFinish(J)V
+Landroid/renderscript/RenderScript;->rsnContextPause(J)V
+Landroid/renderscript/RenderScript;->rsnContextResume(J)V
+Landroid/renderscript/RenderScript;->rsnContextSendMessage(JI[I)V
+Landroid/renderscript/RenderScript;->rsnContextSetCacheDir(JLjava/lang/String;)V
+Landroid/renderscript/RenderScript;->rsnContextSetPriority(JI)V
+Landroid/renderscript/RenderScript;->rsnContextSetSurface(JIILandroid/view/Surface;)V
+Landroid/renderscript/RenderScript;->rsnContextSetSurfaceTexture(JIILandroid/graphics/SurfaceTexture;)V
+Landroid/renderscript/RenderScript;->rsnElementCreate(JJIZI)J
+Landroid/renderscript/RenderScript;->rsnElementCreate2(J[J[Ljava/lang/String;[I)J
+Landroid/renderscript/RenderScript;->rsnElementGetNativeData(JJ[I)V
+Landroid/renderscript/RenderScript;->rsnElementGetSubElements(JJ[J[Ljava/lang/String;[I)V
+Landroid/renderscript/RenderScript;->rsnFileA3DCreateFromAsset(JLandroid/content/res/AssetManager;Ljava/lang/String;)J
+Landroid/renderscript/RenderScript;->rsnFileA3DCreateFromAssetStream(JJ)J
+Landroid/renderscript/RenderScript;->rsnFileA3DCreateFromFile(JLjava/lang/String;)J
+Landroid/renderscript/RenderScript;->rsnFileA3DGetEntryByIndex(JJI)J
+Landroid/renderscript/RenderScript;->rsnFileA3DGetIndexEntries(JJI[I[Ljava/lang/String;)V
+Landroid/renderscript/RenderScript;->rsnFileA3DGetNumIndexEntries(JJ)I
+Landroid/renderscript/RenderScript;->rsnFontCreateFromAsset(JLandroid/content/res/AssetManager;Ljava/lang/String;FI)J
+Landroid/renderscript/RenderScript;->rsnFontCreateFromAssetStream(JLjava/lang/String;FIJ)J
+Landroid/renderscript/RenderScript;->rsnFontCreateFromFile(JLjava/lang/String;FI)J
+Landroid/renderscript/RenderScript;->rsnGetName(JJ)Ljava/lang/String;
+Landroid/renderscript/RenderScript;->rsnInvokeClosureCreate(JJ[B[J[J[I)J
+Landroid/renderscript/RenderScript;->rsnMeshCreate(J[J[J[I)J
+Landroid/renderscript/RenderScript;->rsnMeshGetIndexCount(JJ)I
+Landroid/renderscript/RenderScript;->rsnMeshGetIndices(JJ[J[II)V
+Landroid/renderscript/RenderScript;->rsnMeshGetVertexBufferCount(JJ)I
+Landroid/renderscript/RenderScript;->rsnMeshGetVertices(JJ[JI)V
+Landroid/renderscript/RenderScript;->rsnObjDestroy(JJ)V
+Landroid/renderscript/RenderScript;->rsnProgramBindConstants(JJIJ)V
+Landroid/renderscript/RenderScript;->rsnProgramBindSampler(JJIJ)V
+Landroid/renderscript/RenderScript;->rsnProgramBindTexture(JJIJ)V
+Landroid/renderscript/RenderScript;->rsnProgramFragmentCreate(JLjava/lang/String;[Ljava/lang/String;[J)J
+Landroid/renderscript/RenderScript;->rsnProgramRasterCreate(JZI)J
+Landroid/renderscript/RenderScript;->rsnProgramStoreCreate(JZZZZZZIII)J
+Landroid/renderscript/RenderScript;->rsnProgramVertexCreate(JLjava/lang/String;[Ljava/lang/String;[J)J
+Landroid/renderscript/RenderScript;->rsnSamplerCreate(JIIIIIF)J
+Landroid/renderscript/RenderScript;->rsnScriptBindAllocation(JJJI)V
+Landroid/renderscript/RenderScript;->rsnScriptCCreate(JLjava/lang/String;Ljava/lang/String;[BI)J
+Landroid/renderscript/RenderScript;->rsnScriptFieldIDCreate(JJI)J
+Landroid/renderscript/RenderScript;->rsnScriptForEach(JJI[JJ[B[I)V
+Landroid/renderscript/RenderScript;->rsnScriptGetVarD(JJI)D
+Landroid/renderscript/RenderScript;->rsnScriptGetVarF(JJI)F
+Landroid/renderscript/RenderScript;->rsnScriptGetVarI(JJI)I
+Landroid/renderscript/RenderScript;->rsnScriptGetVarJ(JJI)J
+Landroid/renderscript/RenderScript;->rsnScriptGetVarV(JJI[B)V
+Landroid/renderscript/RenderScript;->rsnScriptGroup2Create(JLjava/lang/String;Ljava/lang/String;[J)J
+Landroid/renderscript/RenderScript;->rsnScriptGroup2Execute(JJ)V
+Landroid/renderscript/RenderScript;->rsnScriptGroupCreate(J[J[J[J[J[J)J
+Landroid/renderscript/RenderScript;->rsnScriptGroupExecute(JJ)V
+Landroid/renderscript/RenderScript;->rsnScriptGroupSetInput(JJJJ)V
+Landroid/renderscript/RenderScript;->rsnScriptGroupSetOutput(JJJJ)V
+Landroid/renderscript/RenderScript;->rsnScriptIntrinsicBLAS_BNNM(JJIIIJIJIJII)V
+Landroid/renderscript/RenderScript;->rsnScriptIntrinsicBLAS_Complex(JJIIIIIIIIIFFJJFFJIIII)V
+Landroid/renderscript/RenderScript;->rsnScriptIntrinsicBLAS_Double(JJIIIIIIIIIDJJDJIIII)V
+Landroid/renderscript/RenderScript;->rsnScriptIntrinsicBLAS_Single(JJIIIIIIIIIFJJFJIIII)V
+Landroid/renderscript/RenderScript;->rsnScriptIntrinsicBLAS_Z(JJIIIIIIIIIDDJJDDJIIII)V
+Landroid/renderscript/RenderScript;->rsnScriptIntrinsicCreate(JIJ)J
+Landroid/renderscript/RenderScript;->rsnScriptInvoke(JJI)V
+Landroid/renderscript/RenderScript;->rsnScriptInvokeIDCreate(JJI)J
+Landroid/renderscript/RenderScript;->rsnScriptInvokeV(JJI[B)V
+Landroid/renderscript/RenderScript;->rsnScriptKernelIDCreate(JJII)J
+Landroid/renderscript/RenderScript;->rsnScriptReduce(JJI[JJ[I)V
+Landroid/renderscript/RenderScript;->rsnScriptSetTimeZone(JJ[B)V
+Landroid/renderscript/RenderScript;->rsnScriptSetVarD(JJID)V
+Landroid/renderscript/RenderScript;->rsnScriptSetVarF(JJIF)V
+Landroid/renderscript/RenderScript;->rsnScriptSetVarI(JJII)V
+Landroid/renderscript/RenderScript;->rsnScriptSetVarJ(JJIJ)V
+Landroid/renderscript/RenderScript;->rsnScriptSetVarObj(JJIJ)V
+Landroid/renderscript/RenderScript;->rsnScriptSetVarV(JJI[B)V
+Landroid/renderscript/RenderScript;->rsnScriptSetVarVE(JJI[BJ[I)V
+Landroid/renderscript/RenderScript;->rsnSystemGetPointerSize()I
+Landroid/renderscript/RenderScript;->rsnTypeCreate(JJIIIZZI)J
+Landroid/renderscript/RenderScript;->rsnTypeGetNativeData(JJ[J)V
+Landroid/renderscript/RenderScript;->safeID(Landroid/renderscript/BaseObj;)J
+Landroid/renderscript/RenderScript;->sInitialized:Z
+Landroid/renderscript/RenderScript;->sMinorVersion:J
+Landroid/renderscript/RenderScript;->sRuntime:Ljava/lang/Object;
+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
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mColorMin:I
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mColorPref:I
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mDepthMin:I
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mDepthPref:I
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mSamplesMin:I
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mSamplesPref:I
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mSamplesQ:F
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mStencilMin:I
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mStencilPref:I
+Landroid/renderscript/RenderScriptGL$SurfaceConfig;->setAlpha(II)V
+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
+Landroid/renderscript/RenderScriptGL;->mHeight:I
+Landroid/renderscript/RenderScriptGL;->mSurfaceConfig:Landroid/renderscript/RenderScriptGL$SurfaceConfig;
+Landroid/renderscript/RenderScriptGL;->mWidth:I
+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;
+Landroid/renderscript/RSSurfaceView;->init()V
+Landroid/renderscript/RSSurfaceView;->mRS:Landroid/renderscript/RenderScriptGL;
+Landroid/renderscript/RSSurfaceView;->mSurfaceHolder:Landroid/view/SurfaceHolder;
+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;
+Landroid/renderscript/RSTextureView;->destroyRenderScriptGL()V
+Landroid/renderscript/RSTextureView;->getRenderScriptGL()Landroid/renderscript/RenderScriptGL;
+Landroid/renderscript/RSTextureView;->init()V
+Landroid/renderscript/RSTextureView;->mRS:Landroid/renderscript/RenderScriptGL;
+Landroid/renderscript/RSTextureView;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
+Landroid/renderscript/RSTextureView;->pause()V
+Landroid/renderscript/RSTextureView;->resume()V
+Landroid/renderscript/RSTextureView;->setRenderScriptGL(Landroid/renderscript/RenderScriptGL;)V
+Landroid/renderscript/Sampler$Builder;->mAniso:F
+Landroid/renderscript/Sampler$Builder;->mMag:Landroid/renderscript/Sampler$Value;
+Landroid/renderscript/Sampler$Builder;->mMin:Landroid/renderscript/Sampler$Value;
+Landroid/renderscript/Sampler$Builder;->mRS:Landroid/renderscript/RenderScript;
+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
+Landroid/renderscript/Sampler;->mMag:Landroid/renderscript/Sampler$Value;
+Landroid/renderscript/Sampler;->mMin:Landroid/renderscript/Sampler$Value;
+Landroid/renderscript/Sampler;->mWrapR:Landroid/renderscript/Sampler$Value;
+Landroid/renderscript/Sampler;->mWrapS:Landroid/renderscript/Sampler$Value;
+Landroid/renderscript/Sampler;->mWrapT:Landroid/renderscript/Sampler$Value;
+Landroid/renderscript/Script$FieldID;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Script;I)V
+Landroid/renderscript/Script$FieldID;->mScript:Landroid/renderscript/Script;
+Landroid/renderscript/Script$FieldID;->mSlot:I
+Landroid/renderscript/Script$InvokeID;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Script;I)V
+Landroid/renderscript/Script$InvokeID;->mScript:Landroid/renderscript/Script;
+Landroid/renderscript/Script$InvokeID;->mSlot:I
+Landroid/renderscript/Script$KernelID;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Script;II)V
+Landroid/renderscript/Script$KernelID;->mScript:Landroid/renderscript/Script;
+Landroid/renderscript/Script$KernelID;->mSig:I
+Landroid/renderscript/Script$KernelID;->mSlot:I
+Landroid/renderscript/Script$LaunchOptions;->strategy:I
+Landroid/renderscript/Script$LaunchOptions;->xend:I
+Landroid/renderscript/Script$LaunchOptions;->xstart:I
+Landroid/renderscript/Script$LaunchOptions;->yend:I
+Landroid/renderscript/Script$LaunchOptions;->ystart:I
+Landroid/renderscript/Script$LaunchOptions;->zend:I
+Landroid/renderscript/Script$LaunchOptions;->zstart:I
+Landroid/renderscript/Script;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/Script;->mFIDs:Landroid/util/SparseArray;
+Landroid/renderscript/Script;->mIIDs:Landroid/util/SparseArray;
+Landroid/renderscript/Script;->mInIdsBuffer:[J
+Landroid/renderscript/Script;->mKIDs:Landroid/util/SparseArray;
+Landroid/renderscript/ScriptC;->internalCreate(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;I)J
+Landroid/renderscript/ScriptC;->internalStringCreate(Landroid/renderscript/RenderScript;Ljava/lang/String;[B)J
+Landroid/renderscript/ScriptC;->TAG:Ljava/lang/String;
+Landroid/renderscript/ScriptGroup$Binding;->getField()Landroid/renderscript/Script$FieldID;
+Landroid/renderscript/ScriptGroup$Binding;->getValue()Ljava/lang/Object;
+Landroid/renderscript/ScriptGroup$Binding;->mField:Landroid/renderscript/Script$FieldID;
+Landroid/renderscript/ScriptGroup$Binding;->mValue:Ljava/lang/Object;
+Landroid/renderscript/ScriptGroup$Builder2;->addInvokeInternal(Landroid/renderscript/Script$InvokeID;[Ljava/lang/Object;Ljava/util/Map;)Landroid/renderscript/ScriptGroup$Closure;
+Landroid/renderscript/ScriptGroup$Builder2;->addKernelInternal(Landroid/renderscript/Script$KernelID;Landroid/renderscript/Type;[Ljava/lang/Object;Ljava/util/Map;)Landroid/renderscript/ScriptGroup$Closure;
+Landroid/renderscript/ScriptGroup$Builder2;->mClosures:Ljava/util/List;
+Landroid/renderscript/ScriptGroup$Builder2;->mInputs:Ljava/util/List;
+Landroid/renderscript/ScriptGroup$Builder2;->mRS:Landroid/renderscript/RenderScript;
+Landroid/renderscript/ScriptGroup$Builder2;->seperateArgsAndBindings([Ljava/lang/Object;Ljava/util/ArrayList;Ljava/util/Map;)Z
+Landroid/renderscript/ScriptGroup$Builder2;->TAG:Ljava/lang/String;
+Landroid/renderscript/ScriptGroup$Builder;->findNode(Landroid/renderscript/Script$KernelID;)Landroid/renderscript/ScriptGroup$Node;
+Landroid/renderscript/ScriptGroup$Builder;->findNode(Landroid/renderscript/Script;)Landroid/renderscript/ScriptGroup$Node;
+Landroid/renderscript/ScriptGroup$Builder;->mergeDAGs(II)V
+Landroid/renderscript/ScriptGroup$Builder;->mKernelCount:I
+Landroid/renderscript/ScriptGroup$Builder;->mLines:Ljava/util/ArrayList;
+Landroid/renderscript/ScriptGroup$Builder;->mNodes:Ljava/util/ArrayList;
+Landroid/renderscript/ScriptGroup$Builder;->mRS:Landroid/renderscript/RenderScript;
+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
+Landroid/renderscript/ScriptGroup$Closure;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptGroup$Closure;-><init>(Landroid/renderscript/RenderScript;Landroid/renderscript/Script$InvokeID;[Ljava/lang/Object;Ljava/util/Map;)V
+Landroid/renderscript/ScriptGroup$Closure;-><init>(Landroid/renderscript/RenderScript;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Type;[Ljava/lang/Object;Ljava/util/Map;)V
+Landroid/renderscript/ScriptGroup$Closure;->mArgs:[Ljava/lang/Object;
+Landroid/renderscript/ScriptGroup$Closure;->mBindings:Ljava/util/Map;
+Landroid/renderscript/ScriptGroup$Closure;->mFP:Landroid/renderscript/FieldPacker;
+Landroid/renderscript/ScriptGroup$Closure;->mGlobalFuture:Ljava/util/Map;
+Landroid/renderscript/ScriptGroup$Closure;->mReturnFuture:Landroid/renderscript/ScriptGroup$Future;
+Landroid/renderscript/ScriptGroup$Closure;->mReturnValue:Landroid/renderscript/Allocation;
+Landroid/renderscript/ScriptGroup$Closure;->retrieveValueAndDependenceInfo(Landroid/renderscript/RenderScript;ILandroid/renderscript/Script$FieldID;Ljava/lang/Object;[J[I[J[J)V
+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;
+Landroid/renderscript/ScriptGroup$ConnectLine;->mFrom:Landroid/renderscript/Script$KernelID;
+Landroid/renderscript/ScriptGroup$ConnectLine;->mToF:Landroid/renderscript/Script$FieldID;
+Landroid/renderscript/ScriptGroup$ConnectLine;->mToK:Landroid/renderscript/Script$KernelID;
+Landroid/renderscript/ScriptGroup$Future;-><init>(Landroid/renderscript/ScriptGroup$Closure;Landroid/renderscript/Script$FieldID;Ljava/lang/Object;)V
+Landroid/renderscript/ScriptGroup$Future;->getClosure()Landroid/renderscript/ScriptGroup$Closure;
+Landroid/renderscript/ScriptGroup$Future;->getFieldID()Landroid/renderscript/Script$FieldID;
+Landroid/renderscript/ScriptGroup$Future;->getValue()Ljava/lang/Object;
+Landroid/renderscript/ScriptGroup$Future;->mClosure:Landroid/renderscript/ScriptGroup$Closure;
+Landroid/renderscript/ScriptGroup$Future;->mFieldID:Landroid/renderscript/Script$FieldID;
+Landroid/renderscript/ScriptGroup$Future;->mValue:Ljava/lang/Object;
+Landroid/renderscript/ScriptGroup$Input;-><init>()V
+Landroid/renderscript/ScriptGroup$Input;->addReference(Landroid/renderscript/ScriptGroup$Closure;I)V
+Landroid/renderscript/ScriptGroup$Input;->addReference(Landroid/renderscript/ScriptGroup$Closure;Landroid/renderscript/Script$FieldID;)V
+Landroid/renderscript/ScriptGroup$Input;->get()Ljava/lang/Object;
+Landroid/renderscript/ScriptGroup$Input;->mArgIndex:Ljava/util/List;
+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;
+Landroid/renderscript/ScriptGroup$Node;->mKernels:Ljava/util/ArrayList;
+Landroid/renderscript/ScriptGroup$Node;->mNext:Landroid/renderscript/ScriptGroup$Node;
+Landroid/renderscript/ScriptGroup$Node;->mOutputs:Ljava/util/ArrayList;
+Landroid/renderscript/ScriptGroup$Node;->mScript:Landroid/renderscript/Script;
+Landroid/renderscript/ScriptGroup;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptGroup;-><init>(Landroid/renderscript/RenderScript;Ljava/lang/String;Ljava/util/List;Ljava/util/List;[Landroid/renderscript/ScriptGroup$Future;)V
+Landroid/renderscript/ScriptGroup;->mClosures:Ljava/util/List;
+Landroid/renderscript/ScriptGroup;->mInputs2:Ljava/util/List;
+Landroid/renderscript/ScriptGroup;->mInputs:[Landroid/renderscript/ScriptGroup$IO;
+Landroid/renderscript/ScriptGroup;->mName:Ljava/lang/String;
+Landroid/renderscript/ScriptGroup;->mOutputs2:[Landroid/renderscript/ScriptGroup$Future;
+Landroid/renderscript/ScriptGroup;->mOutputs:[Landroid/renderscript/ScriptGroup$IO;
+Landroid/renderscript/ScriptGroup;->TAG:Ljava/lang/String;
+Landroid/renderscript/ScriptIntrinsic3DLUT;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Element;)V
+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
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_caxpy:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ccopy:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cdotc_sub:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cdotu_sub:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cgbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cgemm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cgemv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cgerc:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cgeru:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_chbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_chemm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_chemv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cher2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cher2k:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cher:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cherk:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_chpmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_chpr2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_chpr:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cscal:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_csscal:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_cswap:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_csymm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_csyr2k:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_csyrk:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ctbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ctbsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ctpmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ctpsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ctrmm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ctrmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ctrsm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ctrsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dasum:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_daxpy:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dcopy:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ddot:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dgbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dgemm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dgemv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dger:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dnrm2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_drot:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_drotg:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_drotm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_drotmg:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dsbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dscal:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dsdot:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dspmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dspr2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dspr:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dswap:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dsymm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dsymv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dsyr2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dsyr2k:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dsyr:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dsyrk:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dtbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dtbsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dtpmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dtpsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dtrmm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dtrmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dtrsm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dtrsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dzasum:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_dznrm2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_icamax:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_idamax:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_isamax:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_izamax:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sasum:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_saxpy:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_scasum:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_scnrm2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_scopy:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sdot:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sdsdot:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sgbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sgemm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sgemv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sger:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_snrm2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_srot:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_srotg:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_srotm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_srotmg:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ssbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sscal:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sspmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sspr2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sspr:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_sswap:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ssymm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ssymv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ssyr2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ssyr2k:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ssyr:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ssyrk:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_stbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_stbsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_stpmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_stpsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_strmm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_strmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_strsm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_strsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zaxpy:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zcopy:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zdotc_sub:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zdotu_sub:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zdscal:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zgbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zgemm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zgemv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zgerc:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zgeru:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zhbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zhemm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zhemv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zher2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zher2k:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zher:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zherk:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zhpmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zhpr2:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zhpr:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zscal:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zswap:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zsymm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zsyr2k:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_zsyrk:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ztbmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ztbsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ztpmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ztpsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ztrmm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ztrmv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ztrsm:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_ztrsv:I
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateConjTranspose(I)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateDiag(I)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateGEMV(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;ILandroid/renderscript/Allocation;I)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateGER(Landroid/renderscript/Element;Landroid/renderscript/Allocation;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateGERU(Landroid/renderscript/Element;Landroid/renderscript/Allocation;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateHEMM(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateHER2K(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateHERK(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateL3(Landroid/renderscript/Element;IIILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateSide(I)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateSPMV(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;ILandroid/renderscript/Allocation;I)I
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateSPR(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;)I
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateSPR2(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;)I
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateSYMV(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;II)I
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateSYR(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;)I
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateSYR2(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;ILandroid/renderscript/Allocation;)I
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateSYR2K(Landroid/renderscript/Element;ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateTPMV(Landroid/renderscript/Element;IIILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;I)I
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateTranspose(I)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateTRMM(Landroid/renderscript/Element;IILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateTRMV(Landroid/renderscript/Element;IIILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;I)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateTRSM(Landroid/renderscript/Element;IILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;)V
+Landroid/renderscript/ScriptIntrinsicBLAS;->validateUplo(I)V
+Landroid/renderscript/ScriptIntrinsicBlend;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicBlend;->blend(ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V
+Landroid/renderscript/ScriptIntrinsicBlur;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicBlur;->mInput:Landroid/renderscript/Allocation;
+Landroid/renderscript/ScriptIntrinsicBlur;->mValues:[F
+Landroid/renderscript/ScriptIntrinsicColorMatrix;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicColorMatrix;->mAdd:Landroid/renderscript/Float4;
+Landroid/renderscript/ScriptIntrinsicColorMatrix;->mMatrix:Landroid/renderscript/Matrix4f;
+Landroid/renderscript/ScriptIntrinsicColorMatrix;->setMatrix()V
+Landroid/renderscript/ScriptIntrinsicConvolve3x3;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicConvolve3x3;->mInput:Landroid/renderscript/Allocation;
+Landroid/renderscript/ScriptIntrinsicConvolve3x3;->mValues:[F
+Landroid/renderscript/ScriptIntrinsicConvolve5x5;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicConvolve5x5;->mInput:Landroid/renderscript/Allocation;
+Landroid/renderscript/ScriptIntrinsicConvolve5x5;->mValues:[F
+Landroid/renderscript/ScriptIntrinsicHistogram;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicHistogram;->mOut:Landroid/renderscript/Allocation;
+Landroid/renderscript/ScriptIntrinsicLUT;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicLUT;->mCache:[B
+Landroid/renderscript/ScriptIntrinsicLUT;->mDirty:Z
+Landroid/renderscript/ScriptIntrinsicLUT;->mMatrix:Landroid/renderscript/Matrix4f;
+Landroid/renderscript/ScriptIntrinsicLUT;->mTables:Landroid/renderscript/Allocation;
+Landroid/renderscript/ScriptIntrinsicLUT;->validate(II)V
+Landroid/renderscript/ScriptIntrinsicResize;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicResize;->mInput:Landroid/renderscript/Allocation;
+Landroid/renderscript/ScriptIntrinsicYuvToRGB;-><init>(JLandroid/renderscript/RenderScript;)V
+Landroid/renderscript/ScriptIntrinsicYuvToRGB;->mInput:Landroid/renderscript/Allocation;
+Landroid/renderscript/Short2;-><init>(Landroid/renderscript/Short2;)V
+Landroid/renderscript/Short2;-><init>(S)V
+Landroid/renderscript/Short2;->add(Landroid/renderscript/Short2;)V
+Landroid/renderscript/Short2;->add(Landroid/renderscript/Short2;Landroid/renderscript/Short2;)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->add(Landroid/renderscript/Short2;S)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->add(S)V
+Landroid/renderscript/Short2;->addAt(IS)V
+Landroid/renderscript/Short2;->addMultiple(Landroid/renderscript/Short2;S)V
+Landroid/renderscript/Short2;->copyTo([SI)V
+Landroid/renderscript/Short2;->div(Landroid/renderscript/Short2;)V
+Landroid/renderscript/Short2;->div(Landroid/renderscript/Short2;Landroid/renderscript/Short2;)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->div(Landroid/renderscript/Short2;S)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->div(S)V
+Landroid/renderscript/Short2;->dotProduct(Landroid/renderscript/Short2;)S
+Landroid/renderscript/Short2;->dotProduct(Landroid/renderscript/Short2;Landroid/renderscript/Short2;)S
+Landroid/renderscript/Short2;->elementSum()S
+Landroid/renderscript/Short2;->get(I)S
+Landroid/renderscript/Short2;->length()S
+Landroid/renderscript/Short2;->mod(Landroid/renderscript/Short2;)V
+Landroid/renderscript/Short2;->mod(Landroid/renderscript/Short2;Landroid/renderscript/Short2;)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->mod(Landroid/renderscript/Short2;S)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->mod(S)V
+Landroid/renderscript/Short2;->mul(Landroid/renderscript/Short2;)V
+Landroid/renderscript/Short2;->mul(Landroid/renderscript/Short2;Landroid/renderscript/Short2;)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->mul(Landroid/renderscript/Short2;S)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->mul(S)V
+Landroid/renderscript/Short2;->negate()V
+Landroid/renderscript/Short2;->set(Landroid/renderscript/Short2;)V
+Landroid/renderscript/Short2;->setAt(IS)V
+Landroid/renderscript/Short2;->setValues(SS)V
+Landroid/renderscript/Short2;->sub(Landroid/renderscript/Short2;)V
+Landroid/renderscript/Short2;->sub(Landroid/renderscript/Short2;Landroid/renderscript/Short2;)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->sub(Landroid/renderscript/Short2;S)Landroid/renderscript/Short2;
+Landroid/renderscript/Short2;->sub(S)V
+Landroid/renderscript/Short3;-><init>(Landroid/renderscript/Short3;)V
+Landroid/renderscript/Short3;-><init>(S)V
+Landroid/renderscript/Short3;->add(Landroid/renderscript/Short3;)V
+Landroid/renderscript/Short3;->add(Landroid/renderscript/Short3;Landroid/renderscript/Short3;)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->add(Landroid/renderscript/Short3;S)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->add(S)V
+Landroid/renderscript/Short3;->addAt(IS)V
+Landroid/renderscript/Short3;->addMultiple(Landroid/renderscript/Short3;S)V
+Landroid/renderscript/Short3;->copyTo([SI)V
+Landroid/renderscript/Short3;->div(Landroid/renderscript/Short3;)V
+Landroid/renderscript/Short3;->div(Landroid/renderscript/Short3;Landroid/renderscript/Short3;)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->div(Landroid/renderscript/Short3;S)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->div(S)V
+Landroid/renderscript/Short3;->dotProduct(Landroid/renderscript/Short3;)S
+Landroid/renderscript/Short3;->dotProduct(Landroid/renderscript/Short3;Landroid/renderscript/Short3;)S
+Landroid/renderscript/Short3;->elementSum()S
+Landroid/renderscript/Short3;->get(I)S
+Landroid/renderscript/Short3;->length()S
+Landroid/renderscript/Short3;->mod(Landroid/renderscript/Short3;)V
+Landroid/renderscript/Short3;->mod(Landroid/renderscript/Short3;Landroid/renderscript/Short3;)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->mod(Landroid/renderscript/Short3;S)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->mod(S)V
+Landroid/renderscript/Short3;->mul(Landroid/renderscript/Short3;)V
+Landroid/renderscript/Short3;->mul(Landroid/renderscript/Short3;Landroid/renderscript/Short3;)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->mul(Landroid/renderscript/Short3;S)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->mul(S)V
+Landroid/renderscript/Short3;->negate()V
+Landroid/renderscript/Short3;->set(Landroid/renderscript/Short3;)V
+Landroid/renderscript/Short3;->setAt(IS)V
+Landroid/renderscript/Short3;->setValues(SSS)V
+Landroid/renderscript/Short3;->sub(Landroid/renderscript/Short3;)V
+Landroid/renderscript/Short3;->sub(Landroid/renderscript/Short3;Landroid/renderscript/Short3;)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->sub(Landroid/renderscript/Short3;S)Landroid/renderscript/Short3;
+Landroid/renderscript/Short3;->sub(S)V
+Landroid/renderscript/Short4;-><init>(Landroid/renderscript/Short4;)V
+Landroid/renderscript/Short4;-><init>(S)V
+Landroid/renderscript/Short4;->add(Landroid/renderscript/Short4;)V
+Landroid/renderscript/Short4;->add(Landroid/renderscript/Short4;Landroid/renderscript/Short4;)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->add(Landroid/renderscript/Short4;S)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->add(S)V
+Landroid/renderscript/Short4;->addAt(IS)V
+Landroid/renderscript/Short4;->addMultiple(Landroid/renderscript/Short4;S)V
+Landroid/renderscript/Short4;->copyTo([SI)V
+Landroid/renderscript/Short4;->div(Landroid/renderscript/Short4;)V
+Landroid/renderscript/Short4;->div(Landroid/renderscript/Short4;Landroid/renderscript/Short4;)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->div(Landroid/renderscript/Short4;S)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->div(S)V
+Landroid/renderscript/Short4;->dotProduct(Landroid/renderscript/Short4;)S
+Landroid/renderscript/Short4;->dotProduct(Landroid/renderscript/Short4;Landroid/renderscript/Short4;)S
+Landroid/renderscript/Short4;->elementSum()S
+Landroid/renderscript/Short4;->get(I)S
+Landroid/renderscript/Short4;->length()S
+Landroid/renderscript/Short4;->mod(Landroid/renderscript/Short4;)V
+Landroid/renderscript/Short4;->mod(Landroid/renderscript/Short4;Landroid/renderscript/Short4;)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->mod(Landroid/renderscript/Short4;S)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->mod(S)V
+Landroid/renderscript/Short4;->mul(Landroid/renderscript/Short4;)V
+Landroid/renderscript/Short4;->mul(Landroid/renderscript/Short4;Landroid/renderscript/Short4;)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->mul(Landroid/renderscript/Short4;S)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->mul(S)V
+Landroid/renderscript/Short4;->negate()V
+Landroid/renderscript/Short4;->set(Landroid/renderscript/Short4;)V
+Landroid/renderscript/Short4;->setAt(IS)V
+Landroid/renderscript/Short4;->setValues(SSSS)V
+Landroid/renderscript/Short4;->sub(Landroid/renderscript/Short4;)V
+Landroid/renderscript/Short4;->sub(Landroid/renderscript/Short4;Landroid/renderscript/Short4;)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->sub(Landroid/renderscript/Short4;S)Landroid/renderscript/Short4;
+Landroid/renderscript/Short4;->sub(S)V
+Landroid/renderscript/Type$Builder;->mArray:[I
+Landroid/renderscript/Type$Builder;->mDimFaces:Z
+Landroid/renderscript/Type$Builder;->mDimMipmaps:Z
+Landroid/renderscript/Type$Builder;->mDimX:I
+Landroid/renderscript/Type$Builder;->mDimY:I
+Landroid/renderscript/Type$Builder;->mDimZ:I
+Landroid/renderscript/Type$Builder;->mElement:Landroid/renderscript/Element;
+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
+Landroid/renderscript/Type;->getArray(I)I
+Landroid/renderscript/Type;->getArrayCount()I
+Landroid/renderscript/Type;->mArrays:[I
+Landroid/renderscript/Type;->mDimFaces:Z
+Landroid/renderscript/Type;->mDimMipmaps:Z
+Landroid/renderscript/Type;->mDimX:I
+Landroid/renderscript/Type;->mDimY:I
+Landroid/renderscript/Type;->mDimYuv:I
+Landroid/renderscript/Type;->mDimZ:I
+Landroid/renderscript/Type;->mElement:Landroid/renderscript/Element;
+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;
+Landroid/sax/Children;->getOrCreate(Landroid/sax/Element;Ljava/lang/String;Ljava/lang/String;)Landroid/sax/Element;
+Landroid/sax/Element;-><init>(Landroid/sax/Element;Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/sax/Element;->checkRequiredChildren(Lorg/xml/sax/Locator;)V
+Landroid/sax/Element;->children:Landroid/sax/Children;
+Landroid/sax/Element;->depth:I
+Landroid/sax/Element;->endElementListener:Landroid/sax/EndElementListener;
+Landroid/sax/Element;->endTextElementListener:Landroid/sax/EndTextElementListener;
+Landroid/sax/Element;->localName:Ljava/lang/String;
+Landroid/sax/Element;->parent:Landroid/sax/Element;
+Landroid/sax/Element;->requiredChilden:Ljava/util/ArrayList;
+Landroid/sax/Element;->resetRequiredChildren()V
+Landroid/sax/Element;->startElementListener:Landroid/sax/StartElementListener;
+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
+Landroid/sax/RootElement$Handler;->locator:Lorg/xml/sax/Locator;
+Landroid/sax/RootElement$Handler;->start(Landroid/sax/Element;Lorg/xml/sax/Attributes;)V
+Landroid/sax/RootElement$Handler;->startRoot(Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V
+Landroid/sax/RootElement;->handler:Landroid/sax/RootElement$Handler;
+Landroid/se/omapi/Channel;-><init>(Landroid/se/omapi/SEService;Landroid/se/omapi/Session;Landroid/se/omapi/ISecureElementChannel;)V
+Landroid/se/omapi/Channel;->mChannel:Landroid/se/omapi/ISecureElementChannel;
+Landroid/se/omapi/Channel;->mLock:Ljava/lang/Object;
+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;
+Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;->getSelectResponse()[B
+Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;->isBasicChannel()Z
+Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;->isClosed()Z
+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;
+Landroid/se/omapi/ISecureElementChannel$Stub;->TRANSACTION_close:I
+Landroid/se/omapi/ISecureElementChannel$Stub;->TRANSACTION_getSelectResponse:I
+Landroid/se/omapi/ISecureElementChannel$Stub;->TRANSACTION_isBasicChannel:I
+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
+Landroid/se/omapi/ISecureElementSession$Stub$Proxy;->getAtr()[B
+Landroid/se/omapi/ISecureElementSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/se/omapi/ISecureElementSession$Stub$Proxy;->isClosed()Z
+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;
+Landroid/se/omapi/ISecureElementSession$Stub;->TRANSACTION_close:I
+Landroid/se/omapi/ISecureElementSession$Stub;->TRANSACTION_closeChannels:I
+Landroid/se/omapi/ISecureElementSession$Stub;->TRANSACTION_getAtr:I
+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
+Landroid/se/omapi/ISecureElementSession;->isClosed()Z
+Landroid/se/omapi/ISecureElementSession;->openBasicChannel([BBLandroid/se/omapi/ISecureElementListener;)Landroid/se/omapi/ISecureElementChannel;
+Landroid/se/omapi/ISecureElementSession;->openLogicalChannel([BBLandroid/se/omapi/ISecureElementListener;)Landroid/se/omapi/ISecureElementChannel;
+Landroid/se/omapi/Reader;-><init>(Landroid/se/omapi/SEService;Ljava/lang/String;Landroid/se/omapi/ISecureElementReader;)V
+Landroid/se/omapi/Reader;->mLock:Ljava/lang/Object;
+Landroid/se/omapi/Reader;->mName:Ljava/lang/String;
+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
+Landroid/se/omapi/SEService;->getListener()Landroid/se/omapi/ISecureElementListener;
+Landroid/se/omapi/SEService;->getReader(Ljava/lang/String;)Landroid/se/omapi/ISecureElementReader;
+Landroid/se/omapi/SEService;->IO_ERROR:I
+Landroid/se/omapi/SEService;->mConnection:Landroid/content/ServiceConnection;
+Landroid/se/omapi/SEService;->mContext:Landroid/content/Context;
+Landroid/se/omapi/SEService;->mLock:Ljava/lang/Object;
+Landroid/se/omapi/SEService;->mReaders:Ljava/util/HashMap;
+Landroid/se/omapi/SEService;->mSecureElementService:Landroid/se/omapi/ISecureElementService;
+Landroid/se/omapi/SEService;->mSEListener:Landroid/se/omapi/SEService$SEListener;
+Landroid/se/omapi/SEService;->NO_SUCH_ELEMENT_ERROR:I
+Landroid/se/omapi/SEService;->TAG:Ljava/lang/String;
+Landroid/se/omapi/Session;-><init>(Landroid/se/omapi/SEService;Landroid/se/omapi/ISecureElementSession;Landroid/se/omapi/Reader;)V
+Landroid/se/omapi/Session;->mLock:Ljava/lang/Object;
+Landroid/se/omapi/Session;->mReader:Landroid/se/omapi/Reader;
+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
+Landroid/Section;->SECTION_FILE:I
+Landroid/Section;->SECTION_GZIP:I
+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
+Landroid/SectionFlags;->TYPE:J
+Landroid/SectionFlags;->USERDEBUG_AND_ENG_ONLY:J
+Landroid/security/AttestedKeyPair;-><init>(Ljava/security/KeyPair;[Ljava/security/cert/Certificate;)V
+Landroid/security/AttestedKeyPair;->mAttestationRecord:[Ljava/security/cert/Certificate;
+Landroid/security/AttestedKeyPair;->mKeyPair:Ljava/security/KeyPair;
+Landroid/security/ConfirmationPrompt$Builder;->mContext:Landroid/content/Context;
+Landroid/security/ConfirmationPrompt$Builder;->mExtraData:[B
+Landroid/security/ConfirmationPrompt$Builder;->mPromptText:Ljava/lang/CharSequence;
+Landroid/security/ConfirmationPrompt;-><init>(Landroid/content/Context;Ljava/lang/CharSequence;[B)V
+Landroid/security/ConfirmationPrompt;->doCallback(I[BLandroid/security/ConfirmationCallback;)V
+Landroid/security/ConfirmationPrompt;->getUiOptionsAsFlags()I
+Landroid/security/ConfirmationPrompt;->isAccessibilityServiceRunning(Landroid/content/Context;)Z
+Landroid/security/ConfirmationPrompt;->mCallback:Landroid/security/ConfirmationCallback;
+Landroid/security/ConfirmationPrompt;->mCallbackBinder:Landroid/os/IBinder;
+Landroid/security/ConfirmationPrompt;->mContext:Landroid/content/Context;
+Landroid/security/ConfirmationPrompt;->mExecutor:Ljava/util/concurrent/Executor;
+Landroid/security/ConfirmationPrompt;->mExtraData:[B
+Landroid/security/ConfirmationPrompt;->mKeyStore:Landroid/security/KeyStore;
+Landroid/security/ConfirmationPrompt;->mPromptText:Ljava/lang/CharSequence;
+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;
+Landroid/security/Credentials;->deleteAllTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;)Z
+Landroid/security/Credentials;->deleteAllTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
+Landroid/security/Credentials;->deleteCertificateTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;)Z
+Landroid/security/Credentials;->deleteCertificateTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
+Landroid/security/Credentials;->deleteLegacyKeyForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
+Landroid/security/Credentials;->deleteUserKeyTypeForAlias(Landroid/security/KeyStore;Ljava/lang/String;)Z
+Landroid/security/Credentials;->deleteUserKeyTypeForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
+Landroid/security/Credentials;->EXTENSION_CER:Ljava/lang/String;
+Landroid/security/Credentials;->EXTENSION_CRT:Ljava/lang/String;
+Landroid/security/Credentials;->EXTENSION_P12:Ljava/lang/String;
+Landroid/security/Credentials;->EXTENSION_PFX:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_CA_CERTIFICATES_DATA:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_CA_CERTIFICATES_NAME:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_INSTALL_AS_UID:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_PRIVATE_KEY:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_PUBLIC_KEY:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_USER_CERTIFICATE_DATA:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_USER_CERTIFICATE_NAME:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_USER_PRIVATE_KEY_DATA:Ljava/lang/String;
+Landroid/security/Credentials;->EXTRA_USER_PRIVATE_KEY_NAME:Ljava/lang/String;
+Landroid/security/Credentials;->install(Landroid/content/Context;)V
+Landroid/security/Credentials;->INSTALL_ACTION:Ljava/lang/String;
+Landroid/security/Credentials;->INSTALL_AS_USER_ACTION:Ljava/lang/String;
+Landroid/security/Credentials;->LOCKDOWN_VPN:Ljava/lang/String;
+Landroid/security/Credentials;->LOGTAG:Ljava/lang/String;
+Landroid/security/Credentials;->singleton:Landroid/security/Credentials;
+Landroid/security/Credentials;->UNLOCK_ACTION:Ljava/lang/String;
+Landroid/security/Credentials;->USER_CERTIFICATE:Ljava/lang/String;
+Landroid/security/Credentials;->USER_PRIVATE_KEY:Ljava/lang/String;
+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
+Landroid/security/IKeyChainService$Stub$Proxy;->deleteCaCertificate(Ljava/lang/String;)Z
+Landroid/security/IKeyChainService$Stub$Proxy;->generateKeyPair(Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;)I
+Landroid/security/IKeyChainService$Stub$Proxy;->getCaCertificateChainAliases(Ljava/lang/String;Z)Ljava/util/List;
+Landroid/security/IKeyChainService$Stub$Proxy;->getCaCertificates(Ljava/lang/String;)[B
+Landroid/security/IKeyChainService$Stub$Proxy;->getCertificate(Ljava/lang/String;)[B
+Landroid/security/IKeyChainService$Stub$Proxy;->getEncodedCaCertificate(Ljava/lang/String;Z)[B
+Landroid/security/IKeyChainService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/security/IKeyChainService$Stub$Proxy;->getSystemCaAliases()Landroid/content/pm/StringParceledListSlice;
+Landroid/security/IKeyChainService$Stub$Proxy;->getUserCaAliases()Landroid/content/pm/StringParceledListSlice;
+Landroid/security/IKeyChainService$Stub$Proxy;->hasGrant(ILjava/lang/String;)Z
+Landroid/security/IKeyChainService$Stub$Proxy;->installCaCertificate([B)Ljava/lang/String;
+Landroid/security/IKeyChainService$Stub$Proxy;->installKeyPair([B[B[BLjava/lang/String;)Z
+Landroid/security/IKeyChainService$Stub$Proxy;->isUserSelectable(Ljava/lang/String;)Z
+Landroid/security/IKeyChainService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/security/IKeyChainService$Stub$Proxy;->removeKeyPair(Ljava/lang/String;)Z
+Landroid/security/IKeyChainService$Stub$Proxy;->requestPrivateKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/security/IKeyChainService$Stub$Proxy;->reset()Z
+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
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_containsCaAlias:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_deleteCaCertificate:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_generateKeyPair:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_getCaCertificateChainAliases:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_getCaCertificates:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_getCertificate:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_getEncodedCaCertificate:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_getSystemCaAliases:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_getUserCaAliases:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_hasGrant:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_installCaCertificate:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_installKeyPair:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_isUserSelectable:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_removeKeyPair:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_requestPrivateKey:I
+Landroid/security/IKeyChainService$Stub;->TRANSACTION_reset:I
+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
+Landroid/security/IKeyChainService;->generateKeyPair(Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;)I
+Landroid/security/IKeyChainService;->getCaCertificateChainAliases(Ljava/lang/String;Z)Ljava/util/List;
+Landroid/security/IKeyChainService;->getCaCertificates(Ljava/lang/String;)[B
+Landroid/security/IKeyChainService;->getCertificate(Ljava/lang/String;)[B
+Landroid/security/IKeyChainService;->getEncodedCaCertificate(Ljava/lang/String;Z)[B
+Landroid/security/IKeyChainService;->getSystemCaAliases()Landroid/content/pm/StringParceledListSlice;
+Landroid/security/IKeyChainService;->getUserCaAliases()Landroid/content/pm/StringParceledListSlice;
+Landroid/security/IKeyChainService;->hasGrant(ILjava/lang/String;)Z
+Landroid/security/IKeyChainService;->installCaCertificate([B)Ljava/lang/String;
+Landroid/security/IKeyChainService;->installKeyPair([B[B[BLjava/lang/String;)Z
+Landroid/security/IKeyChainService;->isUserSelectable(Ljava/lang/String;)Z
+Landroid/security/IKeyChainService;->removeKeyPair(Ljava/lang/String;)Z
+Landroid/security/IKeyChainService;->reset()Z
+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
+Landroid/security/IKeystoreService$Stub$Proxy;->addRngEntropy([BI)I
+Landroid/security/IKeystoreService$Stub$Proxy;->attestDeviceIds(Landroid/security/keymaster/KeymasterArguments;Landroid/security/keymaster/KeymasterCertificateChain;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->attestKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;Landroid/security/keymaster/KeymasterCertificateChain;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->begin(Landroid/os/IBinder;Ljava/lang/String;IZLandroid/security/keymaster/KeymasterArguments;[BI)Landroid/security/keymaster/OperationResult;
+Landroid/security/IKeystoreService$Stub$Proxy;->cancelConfirmationPrompt(Landroid/os/IBinder;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->clear_uid(J)I
+Landroid/security/IKeystoreService$Stub$Proxy;->del(Ljava/lang/String;I)I
+Landroid/security/IKeystoreService$Stub$Proxy;->exist(Ljava/lang/String;I)I
+Landroid/security/IKeystoreService$Stub$Proxy;->exportKey(Ljava/lang/String;ILandroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)Landroid/security/keymaster/ExportResult;
+Landroid/security/IKeystoreService$Stub$Proxy;->finish(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B[B)Landroid/security/keymaster/OperationResult;
+Landroid/security/IKeystoreService$Stub$Proxy;->generate(Ljava/lang/String;IIIILandroid/security/KeystoreArguments;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->generateKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BIILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->get(Ljava/lang/String;I)[B
+Landroid/security/IKeystoreService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/security/IKeystoreService$Stub$Proxy;->getKeyCharacteristics(Ljava/lang/String;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;ILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->getmtime(Ljava/lang/String;I)J
+Landroid/security/IKeystoreService$Stub$Proxy;->getState(I)I
+Landroid/security/IKeystoreService$Stub$Proxy;->get_pubkey(Ljava/lang/String;)[B
+Landroid/security/IKeystoreService$Stub$Proxy;->grant(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/security/IKeystoreService$Stub$Proxy;->importKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;I[BIILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->importWrappedKey(Ljava/lang/String;[BLjava/lang/String;[BLandroid/security/keymaster/KeymasterArguments;JJLandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->import_key(Ljava/lang/String;[BII)I
+Landroid/security/IKeystoreService$Stub$Proxy;->insert(Ljava/lang/String;[BII)I
+Landroid/security/IKeystoreService$Stub$Proxy;->isConfirmationPromptSupported()Z
+Landroid/security/IKeystoreService$Stub$Proxy;->isEmpty(I)I
+Landroid/security/IKeystoreService$Stub$Proxy;->isOperationAuthorized(Landroid/os/IBinder;)Z
+Landroid/security/IKeystoreService$Stub$Proxy;->is_hardware_backed(Ljava/lang/String;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->list(Ljava/lang/String;I)[Ljava/lang/String;
+Landroid/security/IKeystoreService$Stub$Proxy;->lock(I)I
+Landroid/security/IKeystoreService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/security/IKeystoreService$Stub$Proxy;->onDeviceOffBody()I
+Landroid/security/IKeystoreService$Stub$Proxy;->onKeyguardVisibilityChanged(ZI)I
+Landroid/security/IKeystoreService$Stub$Proxy;->onUserAdded(II)I
+Landroid/security/IKeystoreService$Stub$Proxy;->onUserPasswordChanged(ILjava/lang/String;)I
+Landroid/security/IKeystoreService$Stub$Proxy;->onUserRemoved(I)I
+Landroid/security/IKeystoreService$Stub$Proxy;->presentConfirmationPrompt(Landroid/os/IBinder;Ljava/lang/String;[BLjava/lang/String;I)I
+Landroid/security/IKeystoreService$Stub$Proxy;->reset()I
+Landroid/security/IKeystoreService$Stub$Proxy;->sign(Ljava/lang/String;[B)[B
+Landroid/security/IKeystoreService$Stub$Proxy;->ungrant(Ljava/lang/String;I)I
+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
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_addAuthToken:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_addRngEntropy:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_attestDeviceIds:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_attestKey:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_begin:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_cancelConfirmationPrompt:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_clear_uid:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_del:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_exist:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_exportKey:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_finish:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_generate:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_generateKey:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_get:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_getKeyCharacteristics:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_getmtime:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_getState:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_get_pubkey:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_grant:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_importKey:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_importWrappedKey:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_import_key:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_insert:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_isConfirmationPromptSupported:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_isEmpty:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_isOperationAuthorized:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_is_hardware_backed:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_list:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_lock:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_onDeviceOffBody:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_onKeyguardVisibilityChanged:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_onUserAdded:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_onUserPasswordChanged:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_onUserRemoved:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_presentConfirmationPrompt:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_reset:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_sign:I
+Landroid/security/IKeystoreService$Stub;->TRANSACTION_ungrant:I
+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
+Landroid/security/IKeystoreService;->attestDeviceIds(Landroid/security/keymaster/KeymasterArguments;Landroid/security/keymaster/KeymasterCertificateChain;)I
+Landroid/security/IKeystoreService;->attestKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;Landroid/security/keymaster/KeymasterCertificateChain;)I
+Landroid/security/IKeystoreService;->begin(Landroid/os/IBinder;Ljava/lang/String;IZLandroid/security/keymaster/KeymasterArguments;[BI)Landroid/security/keymaster/OperationResult;
+Landroid/security/IKeystoreService;->cancelConfirmationPrompt(Landroid/os/IBinder;)I
+Landroid/security/IKeystoreService;->exportKey(Ljava/lang/String;ILandroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)Landroid/security/keymaster/ExportResult;
+Landroid/security/IKeystoreService;->finish(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B[B)Landroid/security/keymaster/OperationResult;
+Landroid/security/IKeystoreService;->generate(Ljava/lang/String;IIIILandroid/security/KeystoreArguments;)I
+Landroid/security/IKeystoreService;->getKeyCharacteristics(Ljava/lang/String;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;ILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/IKeystoreService;->getmtime(Ljava/lang/String;I)J
+Landroid/security/IKeystoreService;->grant(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/security/IKeystoreService;->importKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;I[BIILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/IKeystoreService;->importWrappedKey(Ljava/lang/String;[BLjava/lang/String;[BLandroid/security/keymaster/KeymasterArguments;JJLandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/IKeystoreService;->isConfirmationPromptSupported()Z
+Landroid/security/IKeystoreService;->isEmpty(I)I
+Landroid/security/IKeystoreService;->isOperationAuthorized(Landroid/os/IBinder;)Z
+Landroid/security/IKeystoreService;->lock(I)I
+Landroid/security/IKeystoreService;->onDeviceOffBody()I
+Landroid/security/IKeystoreService;->onKeyguardVisibilityChanged(ZI)I
+Landroid/security/IKeystoreService;->onUserAdded(II)I
+Landroid/security/IKeystoreService;->onUserPasswordChanged(ILjava/lang/String;)I
+Landroid/security/IKeystoreService;->onUserRemoved(I)I
+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;
+Landroid/security/KeyChain$KeyChainConnection;->service:Landroid/security/IKeyChainService;
+Landroid/security/KeyChain$KeyChainConnection;->serviceConnection:Landroid/content/ServiceConnection;
+Landroid/security/KeyChain;->ACCOUNT_TYPE:Ljava/lang/String;
+Landroid/security/KeyChain;->ACTION_CHOOSER:Ljava/lang/String;
+Landroid/security/KeyChain;->ACTION_INSTALL:Ljava/lang/String;
+Landroid/security/KeyChain;->bind(Landroid/content/Context;)Landroid/security/KeyChain$KeyChainConnection;
+Landroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
+Landroid/security/KeyChain;->CERT_INSTALLER_PACKAGE:Ljava/lang/String;
+Landroid/security/KeyChain;->ensureNotOnMainThread(Landroid/content/Context;)V
+Landroid/security/KeyChain;->EXTRA_ALIAS:Ljava/lang/String;
+Landroid/security/KeyChain;->EXTRA_RESPONSE:Ljava/lang/String;
+Landroid/security/KeyChain;->EXTRA_SENDER:Ljava/lang/String;
+Landroid/security/KeyChain;->EXTRA_URI:Ljava/lang/String;
+Landroid/security/KeyChain;->getKeyPair(Landroid/content/Context;Ljava/lang/String;)Ljava/security/KeyPair;
+Landroid/security/KeyChain;->KEYCHAIN_PACKAGE:Ljava/lang/String;
+Landroid/security/KeyChain;->KEY_ATTESTATION_CANNOT_ATTEST_IDS:I
+Landroid/security/KeyChain;->KEY_ATTESTATION_CANNOT_COLLECT_DATA:I
+Landroid/security/KeyChain;->KEY_ATTESTATION_FAILURE:I
+Landroid/security/KeyChain;->KEY_ATTESTATION_MISSING_CHALLENGE:I
+Landroid/security/KeyChain;->KEY_ATTESTATION_SUCCESS:I
+Landroid/security/KeyChain;->KEY_GEN_FAILURE:I
+Landroid/security/KeyChain;->KEY_GEN_INVALID_ALGORITHM_PARAMETERS:I
+Landroid/security/KeyChain;->KEY_GEN_MISSING_ALIAS:I
+Landroid/security/KeyChain;->KEY_GEN_NO_KEYSTORE_PROVIDER:I
+Landroid/security/KeyChain;->KEY_GEN_NO_SUCH_ALGORITHM:I
+Landroid/security/KeyChain;->KEY_GEN_SUCCESS:I
+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;
+Landroid/security/keymaster/KeyAttestationPackageInfo;->getPackageName()Ljava/lang/String;
+Landroid/security/keymaster/KeyAttestationPackageInfo;->getPackageSignatures()[Landroid/content/pm/Signature;
+Landroid/security/keymaster/KeyAttestationPackageInfo;->getPackageVersionCode()J
+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
+Landroid/security/keymaster/KeyCharacteristics;->getDate(I)Ljava/util/Date;
+Landroid/security/keymaster/KeyCharacteristics;->getEnum(I)Ljava/lang/Integer;
+Landroid/security/keymaster/KeyCharacteristics;->getEnums(I)Ljava/util/List;
+Landroid/security/keymaster/KeyCharacteristics;->getUnsignedInt(IJ)J
+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
+Landroid/security/keymaster/KeymasterArguments;->getArgumentByTag(I)Landroid/security/keymaster/KeymasterArgument;
+Landroid/security/keymaster/KeymasterArguments;->getBoolean(I)Z
+Landroid/security/keymaster/KeymasterArguments;->getBytes(I[B)[B
+Landroid/security/keymaster/KeymasterArguments;->getDate(ILjava/util/Date;)Ljava/util/Date;
+Landroid/security/keymaster/KeymasterArguments;->getEnum(II)I
+Landroid/security/keymaster/KeymasterArguments;->getEnums(I)Ljava/util/List;
+Landroid/security/keymaster/KeymasterArguments;->getEnumTagValue(Landroid/security/keymaster/KeymasterArgument;)I
+Landroid/security/keymaster/KeymasterArguments;->getLongTagValue(Landroid/security/keymaster/KeymasterArgument;)Ljava/math/BigInteger;
+Landroid/security/keymaster/KeymasterArguments;->getUnsignedInt(IJ)J
+Landroid/security/keymaster/KeymasterArguments;->getUnsignedLongs(I)Ljava/util/List;
+Landroid/security/keymaster/KeymasterArguments;->mArguments:Ljava/util/List;
+Landroid/security/keymaster/KeymasterArguments;->size()I
+Landroid/security/keymaster/KeymasterArguments;->toUint64(J)Ljava/math/BigInteger;
+Landroid/security/keymaster/KeymasterArguments;->UINT32_MAX_VALUE:J
+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
+Landroid/security/keymaster/KeymasterCertificateChain;->CREATOR:Landroid/os/Parcelable$Creator;
+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
+Landroid/security/keymaster/KeymasterDefs;->HW_AUTH_FINGERPRINT:I
+Landroid/security/keymaster/KeymasterDefs;->HW_AUTH_PASSWORD:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ALGORITHM_3DES:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ALGORITHM_AES:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ALGORITHM_EC:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ALGORITHM_HMAC:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ALGORITHM_RSA:I
+Landroid/security/keymaster/KeymasterDefs;->KM_BIGNUM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_BLOB_REQUIRES_FILE_SYSTEM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_BLOB_STANDALONE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_BOOL:I
+Landroid/security/keymaster/KeymasterDefs;->KM_BYTES:I
+Landroid/security/keymaster/KeymasterDefs;->KM_DATE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_DIGEST_MD5:I
+Landroid/security/keymaster/KeymasterDefs;->KM_DIGEST_NONE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_DIGEST_SHA1:I
+Landroid/security/keymaster/KeymasterDefs;->KM_DIGEST_SHA_2_224:I
+Landroid/security/keymaster/KeymasterDefs;->KM_DIGEST_SHA_2_256:I
+Landroid/security/keymaster/KeymasterDefs;->KM_DIGEST_SHA_2_384:I
+Landroid/security/keymaster/KeymasterDefs;->KM_DIGEST_SHA_2_512:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ENUM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ENUM_REP:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_CALLER_NONCE_PROHIBITED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_CANNOT_ATTEST_IDS:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_CONCURRENT_ACCESS_CONFLICT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_DELEGATION_NOT_ALLOWED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_DEVICE_LOCKED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_IMPORTED_KEY_DECRYPTION_FAILED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_IMPORTED_KEY_NOT_ENCRYPTED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_IMPORTED_KEY_NOT_SIGNED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_IMPORTED_KEY_VERIFICATION_FAILED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_IMPORT_PARAMETER_MISMATCH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INCOMPATIBLE_ALGORITHM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INCOMPATIBLE_BLOCK_MODE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INCOMPATIBLE_DIGEST:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INCOMPATIBLE_KEY_FORMAT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INCOMPATIBLE_PADDING_MODE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INCOMPATIBLE_PURPOSE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INSUFFICIENT_BUFFER_SPACE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_ARGUMENT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_AUTHORIZATION_TIMEOUT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_EXPIRATION_TIME:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_INPUT_LENGTH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_KEY_BLOB:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_MAC_LENGTH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_NONCE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_OPERATION_HANDLE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_RESCOPING:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_TAG:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_INVALID_USER_ID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_KEY_EXPIRED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_KEY_EXPORT_OPTIONS_INVALID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_KEY_MAX_OPS_EXCEEDED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_KEY_NOT_YET_VALID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_KEY_RATE_LIMIT_EXCEEDED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_KEY_USER_NOT_AUTHENTICATED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_MEMORY_ALLOCATION_FAILED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_MISSING_MAC_LENGTH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_MISSING_MIN_MAC_LENGTH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_MISSING_NONCE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_OK:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_OPERATION_CANCELLED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_OUTPUT_PARAMETER_NULL:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_ROOT_OF_TRUST_ALREADY_SET:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_SECURE_HW_ACCESS_DENIED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_SECURE_HW_BUSY:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_SECURE_HW_COMMUNICATION_FAILED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_TOO_MANY_OPERATIONS:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNEXPECTED_NULL_POINTER:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNIMPLEMENTED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNKNOWN_ERROR:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_ALGORITHM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_BLOCK_MODE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_DIGEST:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_EC_FIELD:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_KEY_FORMAT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_KEY_SIZE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_KEY_VERIFICATION_ALGORITHM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_MAC_LENGTH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_MIN_MAC_LENGTH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_PADDING_MODE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_PURPOSE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_UNSUPPORTED_TAG:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_VERIFICATION_FAILED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ERROR_VERSION_MISMATCH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_INVALID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_KEY_FORMAT_PKCS8:I
+Landroid/security/keymaster/KeymasterDefs;->KM_KEY_FORMAT_RAW:I
+Landroid/security/keymaster/KeymasterDefs;->KM_KEY_FORMAT_X509:I
+Landroid/security/keymaster/KeymasterDefs;->KM_MODE_CBC:I
+Landroid/security/keymaster/KeymasterDefs;->KM_MODE_CTR:I
+Landroid/security/keymaster/KeymasterDefs;->KM_MODE_ECB:I
+Landroid/security/keymaster/KeymasterDefs;->KM_MODE_GCM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ORIGIN_GENERATED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ORIGIN_IMPORTED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ORIGIN_SECURELY_IMPORTED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_ORIGIN_UNKNOWN:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PAD_NONE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PAD_PKCS7:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PAD_RSA_OAEP:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PAD_RSA_PKCS1_1_5_ENCRYPT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PAD_RSA_PKCS1_1_5_SIGN:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PAD_RSA_PSS:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PURPOSE_DECRYPT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PURPOSE_ENCRYPT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PURPOSE_SIGN:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PURPOSE_VERIFY:I
+Landroid/security/keymaster/KeymasterDefs;->KM_PURPOSE_WRAP:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ACTIVE_DATETIME:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ALGORITHM:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ALLOW_WHILE_ON_BODY:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ALL_APPLICATIONS:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ALL_USERS:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_APPLICATION_ID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ASSOCIATED_DATA:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_CHALLENGE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_ID_BRAND:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_ID_DEVICE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_ID_IMEI:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_ID_MANUFACTURER:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_ID_MEID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_ID_MODEL:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_ID_PRODUCT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ATTESTATION_ID_SERIAL:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_AUTH_TIMEOUT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_AUTH_TOKEN:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_BLOB_USAGE_REQUIREMENTS:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_BLOCK_MODE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_CALLER_NONCE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_CREATION_DATETIME:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_DIGEST:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_INCLUDE_UNIQUE_ID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_INVALID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_KEY_SIZE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_MAC_LENGTH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_MAX_USES_PER_BOOT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_MIN_MAC_LENGTH:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_MIN_SECONDS_BETWEEN_OPS:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_NONCE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_NO_AUTH_REQUIRED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ORIGIN:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ORIGINATION_EXPIRE_DATETIME:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_PADDING:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_PURPOSE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_RESCOPING_ADD:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_RESCOPING_DEL:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ROLLBACK_RESISTANT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_ROOT_OF_TRUST:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_RSA_PUBLIC_EXPONENT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_TRUSTED_CONFIRMATION_REQUIRED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_TRUSTED_USER_PRESENCE_REQUIRED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_UNIQUE_ID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_UNLOCKED_DEVICE_REQUIRED:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_USAGE_EXPIRE_DATETIME:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_USER_AUTH_TYPE:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_USER_ID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_TAG_USER_SECURE_ID:I
+Landroid/security/keymaster/KeymasterDefs;->KM_UINT:I
+Landroid/security/keymaster/KeymasterDefs;->KM_UINT_REP:I
+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
+Landroid/security/keymaster/OperationResult;->operationHandle:J
+Landroid/security/keymaster/OperationResult;->outParams:Landroid/security/keymaster/KeymasterArguments;
+Landroid/security/keymaster/OperationResult;->output:[B
+Landroid/security/keymaster/OperationResult;->resultCode:I
+Landroid/security/keymaster/OperationResult;->token:Landroid/os/IBinder;
+Landroid/security/KeyPairGeneratorSpec$Builder;->mContext:Landroid/content/Context;
+Landroid/security/KeyPairGeneratorSpec$Builder;->mEndDate:Ljava/util/Date;
+Landroid/security/KeyPairGeneratorSpec$Builder;->mFlags:I
+Landroid/security/KeyPairGeneratorSpec$Builder;->mKeySize:I
+Landroid/security/KeyPairGeneratorSpec$Builder;->mKeystoreAlias:Ljava/lang/String;
+Landroid/security/KeyPairGeneratorSpec$Builder;->mKeyType:Ljava/lang/String;
+Landroid/security/KeyPairGeneratorSpec$Builder;->mSerialNumber:Ljava/math/BigInteger;
+Landroid/security/KeyPairGeneratorSpec$Builder;->mSpec:Ljava/security/spec/AlgorithmParameterSpec;
+Landroid/security/KeyPairGeneratorSpec$Builder;->mStartDate:Ljava/util/Date;
+Landroid/security/KeyPairGeneratorSpec$Builder;->mSubjectDN:Ljavax/security/auth/x500/X500Principal;
+Landroid/security/KeyPairGeneratorSpec;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;ILjava/security/spec/AlgorithmParameterSpec;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;I)V
+Landroid/security/KeyPairGeneratorSpec;->getFlags()I
+Landroid/security/KeyPairGeneratorSpec;->mContext:Landroid/content/Context;
+Landroid/security/KeyPairGeneratorSpec;->mEndDate:Ljava/util/Date;
+Landroid/security/KeyPairGeneratorSpec;->mFlags:I
+Landroid/security/KeyPairGeneratorSpec;->mKeySize:I
+Landroid/security/KeyPairGeneratorSpec;->mKeystoreAlias:Ljava/lang/String;
+Landroid/security/KeyPairGeneratorSpec;->mKeyType:Ljava/lang/String;
+Landroid/security/KeyPairGeneratorSpec;->mSerialNumber:Ljava/math/BigInteger;
+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
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->getAdditionalEntropyAmountForBegin()I
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->getAdditionalEntropyAmountForFinish()I
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->initAlgorithmSpecificParameters()V
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->initAlgorithmSpecificParameters(Ljava/security/AlgorithmParameters;)V
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->initAlgorithmSpecificParameters(Ljava/security/spec/AlgorithmParameterSpec;)V
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->initKey(ILjava/security/Key;)V
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->loadAlgorithmSpecificParametersFromBeginResult(Landroid/security/keymaster/KeymasterArguments;)V
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->mIv:[B
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->mIvHasBeenUsed:Z
+Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->mIvRequired:Z
+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;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->createMainDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->ensureKeystoreOperationInitialized()V
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->flushAAD()V
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->getAdditionalEntropyAmountForBegin()I
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->getAdditionalEntropyAmountForFinish()I
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->getConsumedInputSizeBytes()J
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->getKeymasterPurposeOverride()I
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->getKeyStore()Landroid/security/KeyStore;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->getOperationHandle()J
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->getProducedOutputSizeBytes()J
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->initAlgorithmSpecificParameters()V
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->initAlgorithmSpecificParameters(Ljava/security/AlgorithmParameters;)V
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->initAlgorithmSpecificParameters(Ljava/security/spec/AlgorithmParameterSpec;)V
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->initKey(ILjava/security/Key;)V
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->isEncrypting()Z
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->loadAlgorithmSpecificParametersFromBeginResult(Landroid/security/keymaster/KeymasterArguments;)V
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mAdditionalAuthenticationDataStreamer:Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mAdditionalAuthenticationDataStreamerClosed:Z
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mCachedException:Ljava/lang/Exception;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mEncrypting:Z
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mKey:Landroid/security/keystore/AndroidKeyStoreKey;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mKeymasterPurposeOverride:I
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mKeyStore:Landroid/security/KeyStore;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mMainDataStreamer:Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mOperationHandle:J
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mOperationToken:Landroid/os/IBinder;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->mRng:Ljava/security/SecureRandom;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->opmodeToString(I)Ljava/lang/String;
+Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->resetAll()V
+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
+Landroid/security/keystore/AndroidKeyStoreHmacSpi;->init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
+Landroid/security/keystore/AndroidKeyStoreHmacSpi;->mChunkedStreamer:Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;
+Landroid/security/keystore/AndroidKeyStoreHmacSpi;->mKey:Landroid/security/keystore/AndroidKeyStoreSecretKey;
+Landroid/security/keystore/AndroidKeyStoreHmacSpi;->mKeymasterDigest:I
+Landroid/security/keystore/AndroidKeyStoreHmacSpi;->mKeyStore:Landroid/security/KeyStore;
+Landroid/security/keystore/AndroidKeyStoreHmacSpi;->mMacSizeBits:I
+Landroid/security/keystore/AndroidKeyStoreHmacSpi;->mOperationHandle:J
+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
+Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mKeymasterAlgorithm:I
+Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mKeymasterBlockModes:[I
+Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mKeymasterDigest:I
+Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mKeymasterDigests:[I
+Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mKeymasterPaddings:[I
+Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mKeymasterPurposes:[I
+Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mKeySizeBits:I
+Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mKeyStore:Landroid/security/KeyStore;
+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
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->constructKeyGenerationArguments()Landroid/security/keymaster/KeymasterArguments;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->createCertificateChain(Ljava/lang/String;Ljava/security/KeyPair;)Ljava/lang/Iterable;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->EC_DEFAULT_KEY_SIZE:I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateKeystoreKeyPair(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BI)V
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificate(Ljava/security/PrivateKey;Ljava/security/PublicKey;)Ljava/security/cert/X509Certificate;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateBytes(Ljava/security/KeyPair;)[B
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateWithFakeSignature(Ljava/security/PublicKey;)Ljava/security/cert/X509Certificate;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateWithValidSignature(Ljava/security/PrivateKey;Ljava/security/PublicKey;Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getAttestationChain(Ljava/lang/String;Ljava/security/KeyPair;Landroid/security/keymaster/KeymasterArguments;)Ljava/lang/Iterable;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getAvailableKeymasterSignatureDigests([Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getCertificateSignatureAlgorithm(IILandroid/security/keystore/KeyGenParameterSpec;)Ljava/lang/String;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getDefaultKeySize(I)I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->initAlgorithmSpecificParameters()V
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->loadKeystoreKeyPair(Ljava/lang/String;)Ljava/security/KeyPair;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mEncryptionAtRestRequired:Z
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mEntryAlias:Ljava/lang/String;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mEntryUid:I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mJcaKeyAlgorithm:Ljava/lang/String;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mKeymasterAlgorithm:I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mKeymasterBlockModes:[I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mKeymasterDigests:[I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mKeymasterEncryptionPaddings:[I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mKeymasterPurposes:[I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mKeymasterSignaturePaddings:[I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mKeySizeBits:I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mKeyStore:Landroid/security/KeyStore;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mOriginalKeymasterAlgorithm:I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mRng:Ljava/security/SecureRandom;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mRSAPublicExponent:Ljava/math/BigInteger;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->mSpec:Landroid/security/keystore/KeyGenParameterSpec;
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->resetAll()V
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->RSA_DEFAULT_KEY_SIZE:I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->RSA_MAX_KEY_SIZE:I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->RSA_MIN_KEY_SIZE:I
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->storeCertificate(Ljava/lang/String;[BILjava/lang/String;)V
+Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->storeCertificateChain(ILjava/lang/Iterable;)V
+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;
+Landroid/security/keystore/AndroidKeyStoreProvider;->getAndroidKeyStorePublicKey(Ljava/lang/String;ILjava/lang/String;[B)Landroid/security/keystore/AndroidKeyStorePublicKey;
+Landroid/security/keystore/AndroidKeyStoreProvider;->getKeyCharacteristics(Landroid/security/KeyStore;Ljava/lang/String;I)Landroid/security/keymaster/KeyCharacteristics;
+Landroid/security/keystore/AndroidKeyStoreProvider;->getKeyStoreForUid(I)Ljava/security/KeyStore;
+Landroid/security/keystore/AndroidKeyStoreProvider;->install()V
+Landroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;I)Landroid/security/keystore/AndroidKeyStoreKey;
+Landroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyPairFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;I)Ljava/security/KeyPair;
+Landroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyPairFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Ljava/security/KeyPair;
+Landroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStorePrivateKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;I)Landroid/security/keystore/AndroidKeyStorePrivateKey;
+Landroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStorePrivateKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Landroid/security/keystore/AndroidKeyStorePrivateKey;
+Landroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStorePublicKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;I)Landroid/security/keystore/AndroidKeyStorePublicKey;
+Landroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStorePublicKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Landroid/security/keystore/AndroidKeyStorePublicKey;
+Landroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreSecretKeyFromKeystore(Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Landroid/security/keystore/AndroidKeyStoreSecretKey;
+Landroid/security/keystore/AndroidKeyStoreProvider;->PACKAGE_NAME:Ljava/lang/String;
+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;
+Landroid/security/keystore/AndroidKeyStoreSpi;->getLegacyKeyProtectionParameter(Ljava/security/PrivateKey;)Landroid/security/keystore/KeyProtection;
+Landroid/security/keystore/AndroidKeyStoreSpi;->getModificationDate(Ljava/lang/String;)Ljava/util/Date;
+Landroid/security/keystore/AndroidKeyStoreSpi;->getUniqueAliases()Ljava/util/Set;
+Landroid/security/keystore/AndroidKeyStoreSpi;->isCertificateEntry(Ljava/lang/String;)Z
+Landroid/security/keystore/AndroidKeyStoreSpi;->isKeyEntry(Ljava/lang/String;)Z
+Landroid/security/keystore/AndroidKeyStoreSpi;->mKeyStore:Landroid/security/KeyStore;
+Landroid/security/keystore/AndroidKeyStoreSpi;->mUid:I
+Landroid/security/keystore/AndroidKeyStoreSpi;->NAME:Ljava/lang/String;
+Landroid/security/keystore/AndroidKeyStoreSpi;->setPrivateKeyEntry(Ljava/lang/String;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/security/KeyStore$ProtectionParameter;)V
+Landroid/security/keystore/AndroidKeyStoreSpi;->setSecretKeyEntry(Ljava/lang/String;Ljavax/crypto/SecretKey;Ljava/security/KeyStore$ProtectionParameter;)V
+Landroid/security/keystore/AndroidKeyStoreSpi;->setWrappedKeyEntry(Ljava/lang/String;Landroid/security/keystore/WrappedKeyEntry;Ljava/security/KeyStore$ProtectionParameter;)V
+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;
+Landroid/security/keystore/ArrayUtils;->concat([BII[BII)[B
+Landroid/security/keystore/ArrayUtils;->concat([B[B)[B
+Landroid/security/keystore/ArrayUtils;->concat([I[I)[I
+Landroid/security/keystore/ArrayUtils;->nullToEmpty([Ljava/lang/String;)[Ljava/lang/String;
+Landroid/security/keystore/ArrayUtils;->subarray([BII)[B
+Landroid/security/keystore/AttestationUtils;-><init>()V
+Landroid/security/keystore/AttestationUtils;->isChainValid(Landroid/security/keymaster/KeymasterCertificateChain;)Z
+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
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mAttestationChallenge:[B
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mBlockModes:[Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mCertificateNotAfter:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mCertificateNotBefore:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mCertificateSerialNumber:Ljava/math/BigInteger;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mCertificateSubject:Ljavax/security/auth/x500/X500Principal;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mDigests:[Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mEncryptionPaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mInvalidatedByBiometricEnrollment:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mIsStrongBoxBacked:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mKeySize:I
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mKeystoreAlias:Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mKeyValidityForConsumptionEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mKeyValidityForOriginationEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mKeyValidityStart:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mPurposes:I
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mRandomizedEncryptionRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mSignaturePaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mSpec:Ljava/security/spec/AlgorithmParameterSpec;
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mUid:I
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mUniqueIdIncluded:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mUnlockedDeviceRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mUserAuthenticationRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mUserAuthenticationValidityDurationSeconds:I
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mUserAuthenticationValidWhileOnBody:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mUserConfirmationRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->mUserPresenceRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec$Builder;->setUid(I)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+Landroid/security/keystore/KeyGenParameterSpec;-><init>(Ljava/lang/String;IILjava/security/spec/AlgorithmParameterSpec;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZ[BZZZZZZ)V
+Landroid/security/keystore/KeyGenParameterSpec;->DEFAULT_CERT_NOT_AFTER:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec;->DEFAULT_CERT_NOT_BEFORE:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec;->DEFAULT_CERT_SERIAL_NUMBER:Ljava/math/BigInteger;
+Landroid/security/keystore/KeyGenParameterSpec;->DEFAULT_CERT_SUBJECT:Ljavax/security/auth/x500/X500Principal;
+Landroid/security/keystore/KeyGenParameterSpec;->getBoundToSpecificSecureUserId()J
+Landroid/security/keystore/KeyGenParameterSpec;->mAttestationChallenge:[B
+Landroid/security/keystore/KeyGenParameterSpec;->mBlockModes:[Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec;->mCertificateNotAfter:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec;->mCertificateNotBefore:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec;->mCertificateSerialNumber:Ljava/math/BigInteger;
+Landroid/security/keystore/KeyGenParameterSpec;->mCertificateSubject:Ljavax/security/auth/x500/X500Principal;
+Landroid/security/keystore/KeyGenParameterSpec;->mDigests:[Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec;->mEncryptionPaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec;->mInvalidatedByBiometricEnrollment:Z
+Landroid/security/keystore/KeyGenParameterSpec;->mIsStrongBoxBacked:Z
+Landroid/security/keystore/KeyGenParameterSpec;->mKeySize:I
+Landroid/security/keystore/KeyGenParameterSpec;->mKeystoreAlias:Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec;->mKeyValidityForConsumptionEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec;->mKeyValidityForOriginationEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec;->mKeyValidityStart:Ljava/util/Date;
+Landroid/security/keystore/KeyGenParameterSpec;->mPurposes:I
+Landroid/security/keystore/KeyGenParameterSpec;->mRandomizedEncryptionRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec;->mSignaturePaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyGenParameterSpec;->mSpec:Ljava/security/spec/AlgorithmParameterSpec;
+Landroid/security/keystore/KeyGenParameterSpec;->mUid:I
+Landroid/security/keystore/KeyGenParameterSpec;->mUniqueIdIncluded:Z
+Landroid/security/keystore/KeyGenParameterSpec;->mUnlockedDeviceRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec;->mUserAuthenticationRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec;->mUserAuthenticationValidityDurationSeconds:I
+Landroid/security/keystore/KeyGenParameterSpec;->mUserAuthenticationValidWhileOnBody:Z
+Landroid/security/keystore/KeyGenParameterSpec;->mUserConfirmationRequired:Z
+Landroid/security/keystore/KeyGenParameterSpec;->mUserPresenceRequired:Z
+Landroid/security/keystore/KeyInfo;-><init>(Ljava/lang/String;ZIILjava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZIZZZZZ)V
+Landroid/security/keystore/KeyInfo;->mBlockModes:[Ljava/lang/String;
+Landroid/security/keystore/KeyInfo;->mDigests:[Ljava/lang/String;
+Landroid/security/keystore/KeyInfo;->mEncryptionPaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyInfo;->mInsideSecureHardware:Z
+Landroid/security/keystore/KeyInfo;->mInvalidatedByBiometricEnrollment:Z
+Landroid/security/keystore/KeyInfo;->mKeySize:I
+Landroid/security/keystore/KeyInfo;->mKeystoreAlias:Ljava/lang/String;
+Landroid/security/keystore/KeyInfo;->mKeyValidityForConsumptionEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyInfo;->mKeyValidityForOriginationEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyInfo;->mKeyValidityStart:Ljava/util/Date;
+Landroid/security/keystore/KeyInfo;->mOrigin:I
+Landroid/security/keystore/KeyInfo;->mPurposes:I
+Landroid/security/keystore/KeyInfo;->mSignaturePaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyInfo;->mTrustedUserPresenceRequired:Z
+Landroid/security/keystore/KeyInfo;->mUserAuthenticationRequired:Z
+Landroid/security/keystore/KeyInfo;->mUserAuthenticationRequirementEnforcedBySecureHardware:Z
+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
+Landroid/security/keystore/KeymasterUtils;->getDigestOutputSizeBits(I)I
+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
+Landroid/security/keystore/KeyProtection$Builder;->mBlockModes:[Ljava/lang/String;
+Landroid/security/keystore/KeyProtection$Builder;->mBoundToSecureUserId:J
+Landroid/security/keystore/KeyProtection$Builder;->mCriticalToDeviceEncryption:Z
+Landroid/security/keystore/KeyProtection$Builder;->mDigests:[Ljava/lang/String;
+Landroid/security/keystore/KeyProtection$Builder;->mEncryptionPaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyProtection$Builder;->mInvalidatedByBiometricEnrollment:Z
+Landroid/security/keystore/KeyProtection$Builder;->mIsStrongBoxBacked:Z
+Landroid/security/keystore/KeyProtection$Builder;->mKeyValidityForConsumptionEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyProtection$Builder;->mKeyValidityForOriginationEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyProtection$Builder;->mKeyValidityStart:Ljava/util/Date;
+Landroid/security/keystore/KeyProtection$Builder;->mPurposes:I
+Landroid/security/keystore/KeyProtection$Builder;->mRandomizedEncryptionRequired:Z
+Landroid/security/keystore/KeyProtection$Builder;->mSignaturePaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyProtection$Builder;->mUnlockedDeviceRequired:Z
+Landroid/security/keystore/KeyProtection$Builder;->mUserAuthenticationRequired:Z
+Landroid/security/keystore/KeyProtection$Builder;->mUserAuthenticationValidityDurationSeconds:I
+Landroid/security/keystore/KeyProtection$Builder;->mUserAuthenticationValidWhileOnBody:Z
+Landroid/security/keystore/KeyProtection$Builder;->mUserConfirmationRequired:Z
+Landroid/security/keystore/KeyProtection$Builder;->mUserPresenceRequired:Z
+Landroid/security/keystore/KeyProtection$Builder;->setCriticalToDeviceEncryption(Z)Landroid/security/keystore/KeyProtection$Builder;
+Landroid/security/keystore/KeyProtection$Builder;->setIsStrongBoxBacked(Z)Landroid/security/keystore/KeyProtection$Builder;
+Landroid/security/keystore/KeyProtection;-><init>(Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZZZJZZZZ)V
+Landroid/security/keystore/KeyProtection;->isCriticalToDeviceEncryption()Z
+Landroid/security/keystore/KeyProtection;->isStrongBoxBacked()Z
+Landroid/security/keystore/KeyProtection;->mBlockModes:[Ljava/lang/String;
+Landroid/security/keystore/KeyProtection;->mBoundToSecureUserId:J
+Landroid/security/keystore/KeyProtection;->mCriticalToDeviceEncryption:Z
+Landroid/security/keystore/KeyProtection;->mDigests:[Ljava/lang/String;
+Landroid/security/keystore/KeyProtection;->mEncryptionPaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyProtection;->mInvalidatedByBiometricEnrollment:Z
+Landroid/security/keystore/KeyProtection;->mIsStrongBoxBacked:Z
+Landroid/security/keystore/KeyProtection;->mKeyValidityForConsumptionEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyProtection;->mKeyValidityForOriginationEnd:Ljava/util/Date;
+Landroid/security/keystore/KeyProtection;->mKeyValidityStart:Ljava/util/Date;
+Landroid/security/keystore/KeyProtection;->mPurposes:I
+Landroid/security/keystore/KeyProtection;->mRandomizedEncryptionRequired:Z
+Landroid/security/keystore/KeyProtection;->mSignaturePaddings:[Ljava/lang/String;
+Landroid/security/keystore/KeyProtection;->mUnlockedDeviceRequired:Z
+Landroid/security/keystore/KeyProtection;->mUserAuthenticationRequired:Z
+Landroid/security/keystore/KeyProtection;->mUserAuthenticationValidityDurationSeconds:I
+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
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->doFinal([BII[B[B)[B
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->flush()[B
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->getConsumedInputSizeBytes()J
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->getProducedOutputSizeBytes()J
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->mBuffered:[B
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->mBufferedLength:I
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->mBufferedOffset:I
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->mConsumedInputSizeBytes:J
+Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->mKeyStoreStream:Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;
+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
+Landroid/security/keystore/ParcelableKeyGenParameterSpec;->ALGORITHM_PARAMETER_SPEC_NONE:I
+Landroid/security/keystore/ParcelableKeyGenParameterSpec;->ALGORITHM_PARAMETER_SPEC_RSA:I
+Landroid/security/keystore/ParcelableKeyGenParameterSpec;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/security/keystore/ParcelableKeyGenParameterSpec;->getSpec()Landroid/security/keystore/KeyGenParameterSpec;
+Landroid/security/keystore/ParcelableKeyGenParameterSpec;->mSpec:Landroid/security/keystore/KeyGenParameterSpec;
+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;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setCounterId(J)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setEncryptedRecoveryKeyBlob([B)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setKeyChainProtectionParams(Ljava/util/List;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setMaxAttempts(I)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setServerParams([B)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setSnapshotVersion(I)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setTrustedHardwareCertPath(Ljava/security/cert/CertPath;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setTrustedHardwarePublicKey([B)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setWrappedApplicationKeys(Ljava/util/List;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+Landroid/security/keystore/recovery/KeyChainSnapshot;-><init>()V
+Landroid/security/keystore/recovery/KeyChainSnapshot;-><init>(Landroid/os/Parcel;)V
+Landroid/security/keystore/recovery/KeyChainSnapshot;->DEFAULT_COUNTER_ID:J
+Landroid/security/keystore/recovery/KeyChainSnapshot;->DEFAULT_MAX_ATTEMPTS:I
+Landroid/security/keystore/recovery/KeyChainSnapshot;->mCertPath:Landroid/security/keystore/recovery/RecoveryCertPath;
+Landroid/security/keystore/recovery/KeyChainSnapshot;->mCounterId:J
+Landroid/security/keystore/recovery/KeyChainSnapshot;->mEncryptedRecoveryKeyBlob:[B
+Landroid/security/keystore/recovery/KeyChainSnapshot;->mEntryRecoveryData:Ljava/util/List;
+Landroid/security/keystore/recovery/KeyChainSnapshot;->mKeyChainProtectionParams:Ljava/util/List;
+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;
+Landroid/security/keystore/recovery/RecoveryCertPath;->createRecoveryCertPath(Ljava/security/cert/CertPath;)Landroid/security/keystore/recovery/RecoveryCertPath;
+Landroid/security/keystore/recovery/RecoveryCertPath;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/security/keystore/recovery/RecoveryCertPath;->decodeCertPath([B)Ljava/security/cert/CertPath;
+Landroid/security/keystore/recovery/RecoveryCertPath;->encodeCertPath(Ljava/security/cert/CertPath;)[B
+Landroid/security/keystore/recovery/RecoveryCertPath;->getCertPath()Ljava/security/cert/CertPath;
+Landroid/security/keystore/recovery/RecoveryCertPath;->mEncodedCertPath:[B
+Landroid/security/keystore/recovery/RecoveryController;-><init>(Lcom/android/internal/widget/ILockSettings;Landroid/security/KeyStore;)V
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_BAD_CERTIFICATE_FORMAT:I
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_DECRYPTION_FAILED:I
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_DOWNGRADE_CERTIFICATE:I
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_INSECURE_USER:I
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_INVALID_CERTIFICATE:I
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_INVALID_KEY_FORMAT:I
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_NO_SNAPSHOT_PENDING:I
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_SERVICE_INTERNAL_ERROR:I
+Landroid/security/keystore/recovery/RecoveryController;->ERROR_SESSION_EXPIRED:I
+Landroid/security/keystore/recovery/RecoveryController;->getBinder()Lcom/android/internal/widget/ILockSettings;
+Landroid/security/keystore/recovery/RecoveryController;->getKeyFromGrant(Ljava/lang/String;)Ljava/security/Key;
+Landroid/security/keystore/recovery/RecoveryController;->mBinder:Lcom/android/internal/widget/ILockSettings;
+Landroid/security/keystore/recovery/RecoveryController;->mKeyStore:Landroid/security/KeyStore;
+Landroid/security/keystore/recovery/RecoveryController;->TAG:Ljava/lang/String;
+Landroid/security/keystore/recovery/RecoveryController;->wrapUnexpectedServiceSpecificException(Landroid/os/ServiceSpecificException;)Landroid/security/keystore/recovery/InternalRecoveryServiceException;
+Landroid/security/keystore/recovery/RecoverySession;-><init>(Landroid/security/keystore/recovery/RecoveryController;Ljava/lang/String;)V
+Landroid/security/keystore/recovery/RecoverySession;->getKeysFromGrants(Ljava/util/Map;)Ljava/util/Map;
+Landroid/security/keystore/recovery/RecoverySession;->getSessionId()Ljava/lang/String;
+Landroid/security/keystore/recovery/RecoverySession;->mRecoveryController:Landroid/security/keystore/recovery/RecoveryController;
+Landroid/security/keystore/recovery/RecoverySession;->mSessionId:Ljava/lang/String;
+Landroid/security/keystore/recovery/RecoverySession;->newInstance(Landroid/security/keystore/recovery/RecoveryController;)Landroid/security/keystore/recovery/RecoverySession;
+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;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->getRootCertificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->getRootCertificates()Ljava/util/Map;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->getTestOnlyInsecureCertificate()Ljava/security/cert/X509Certificate;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->GOOGLE_CLOUD_KEY_VAULT_SERVICE_V1_ALIAS:Ljava/lang/String;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->GOOGLE_CLOUD_KEY_VAULT_SERVICE_V1_BASE64:Ljava/lang/String;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->GOOGLE_CLOUD_KEY_VAULT_SERVICE_V1_CERTIFICATE:Ljava/security/cert/X509Certificate;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->INSECURE_KEY_ALIAS_PREFIX:Ljava/lang/String;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->INSECURE_PASSWORD_PREFIX:Ljava/lang/String;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->NUMBER_OF_ROOT_CERTIFICATES:I
+Landroid/security/keystore/recovery/TrustedRootCertificates;->parseBase64Certificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->TEST_ONLY_INSECURE_CERTIFICATE_ALIAS:Ljava/lang/String;
+Landroid/security/keystore/recovery/TrustedRootCertificates;->TEST_ONLY_INSECURE_CERTIFICATE_BASE64:Ljava/lang/String;
+Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;->mInstance:Landroid/security/keystore/recovery/WrappedApplicationKey;
+Landroid/security/keystore/recovery/WrappedApplicationKey;-><init>()V
+Landroid/security/keystore/recovery/WrappedApplicationKey;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/security/keystore/UserAuthArgs;->isUnlockedDeviceRequired()Z
+Landroid/security/keystore/UserAuthArgs;->isUserAuthenticationRequired()Z
+Landroid/security/keystore/UserAuthArgs;->isUserAuthenticationValidWhileOnBody()Z
+Landroid/security/keystore/UserAuthArgs;->isUserConfirmationRequired()Z
+Landroid/security/keystore/UserAuthArgs;->isUserPresenceRequired()Z
+Landroid/security/keystore/WrappedKeyEntry;->mAlgorithmParameterSpec:Ljava/security/spec/AlgorithmParameterSpec;
+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
+Landroid/security/KeyStore;->addRngEntropy([BI)Z
+Landroid/security/KeyStore;->attestDeviceIds(Landroid/security/keymaster/KeymasterArguments;Landroid/security/keymaster/KeymasterCertificateChain;)I
+Landroid/security/KeyStore;->attestKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;Landroid/security/keymaster/KeymasterCertificateChain;)I
+Landroid/security/KeyStore;->begin(Ljava/lang/String;IZLandroid/security/keymaster/KeymasterArguments;[B)Landroid/security/keymaster/OperationResult;
+Landroid/security/KeyStore;->begin(Ljava/lang/String;IZLandroid/security/keymaster/KeymasterArguments;[BI)Landroid/security/keymaster/OperationResult;
+Landroid/security/KeyStore;->cancelConfirmationPrompt(Landroid/os/IBinder;)I
+Landroid/security/KeyStore;->CANNOT_ATTEST_IDS:I
+Landroid/security/KeyStore;->clearUid(I)Z
+Landroid/security/KeyStore;->CONFIRMATIONUI_ABORTED:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_CANCELED:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_IGNORED:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_OK:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_OPERATION_PENDING:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_SYSTEM_ERROR:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_UIERROR:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_UIERROR_MALFORMED_UTF8_ENCODING:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_UIERROR_MESSAGE_TOO_LONG:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_UIERROR_MISSING_GLYPH:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_UNEXPECTED:I
+Landroid/security/KeyStore;->CONFIRMATIONUI_UNIMPLEMENTED:I
+Landroid/security/KeyStore;->contains(Ljava/lang/String;)Z
+Landroid/security/KeyStore;->contains(Ljava/lang/String;I)Z
+Landroid/security/KeyStore;->delete(Ljava/lang/String;I)Z
+Landroid/security/KeyStore;->exportKey(Ljava/lang/String;ILandroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;)Landroid/security/keymaster/ExportResult;
+Landroid/security/KeyStore;->exportKey(Ljava/lang/String;ILandroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)Landroid/security/keymaster/ExportResult;
+Landroid/security/KeyStore;->finish(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B)Landroid/security/keymaster/OperationResult;
+Landroid/security/KeyStore;->finish(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B[B)Landroid/security/keymaster/OperationResult;
+Landroid/security/KeyStore;->FLAG_CRITICAL_TO_DEVICE_ENCRYPTION:I
+Landroid/security/KeyStore;->FLAG_ENCRYPTED:I
+Landroid/security/KeyStore;->FLAG_NONE:I
+Landroid/security/KeyStore;->FLAG_SOFTWARE:I
+Landroid/security/KeyStore;->FLAG_STRONGBOX:I
+Landroid/security/KeyStore;->generate(Ljava/lang/String;IIII[[B)Z
+Landroid/security/KeyStore;->generateKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BIILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/KeyStore;->generateKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/KeyStore;->get(Ljava/lang/String;I)[B
+Landroid/security/KeyStore;->getFingerprintOnlySid()J
+Landroid/security/KeyStore;->getInvalidKeyException(Ljava/lang/String;II)Ljava/security/InvalidKeyException;
+Landroid/security/KeyStore;->getInvalidKeyException(Ljava/lang/String;ILandroid/security/KeyStoreException;)Ljava/security/InvalidKeyException;
+Landroid/security/KeyStore;->getKeyCharacteristics(Ljava/lang/String;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;ILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/KeyStore;->getKeyCharacteristics(Ljava/lang/String;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/KeyStore;->getLastError()I
+Landroid/security/KeyStore;->getmtime(Ljava/lang/String;)J
+Landroid/security/KeyStore;->getmtime(Ljava/lang/String;I)J
+Landroid/security/KeyStore;->getToken()Landroid/os/IBinder;
+Landroid/security/KeyStore;->grant(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/security/KeyStore;->HARDWARE_TYPE_UNAVAILABLE:I
+Landroid/security/KeyStore;->importKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;I[BIILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/KeyStore;->importKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;I[BILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/KeyStore;->importKey(Ljava/lang/String;[BII)Z
+Landroid/security/KeyStore;->importWrappedKey(Ljava/lang/String;[BLjava/lang/String;[BLandroid/security/keymaster/KeymasterArguments;JJILandroid/security/keymaster/KeyCharacteristics;)I
+Landroid/security/KeyStore;->insert(Ljava/lang/String;[BII)I
+Landroid/security/KeyStore;->isConfirmationPromptSupported()Z
+Landroid/security/KeyStore;->isEmpty(I)Z
+Landroid/security/KeyStore;->isHardwareBacked()Z
+Landroid/security/KeyStore;->isHardwareBacked(Ljava/lang/String;)Z
+Landroid/security/KeyStore;->isOperationAuthorized(Landroid/os/IBinder;)Z
+Landroid/security/KeyStore;->isUnlocked()Z
+Landroid/security/KeyStore;->KEY_NOT_FOUND:I
+Landroid/security/KeyStore;->list(Ljava/lang/String;)[Ljava/lang/String;
+Landroid/security/KeyStore;->list(Ljava/lang/String;I)[Ljava/lang/String;
+Landroid/security/KeyStore;->lock()Z
+Landroid/security/KeyStore;->lock(I)Z
+Landroid/security/KeyStore;->LOCKED:I
+Landroid/security/KeyStore;->mBinder:Landroid/security/IKeystoreService;
+Landroid/security/KeyStore;->mContext:Landroid/content/Context;
+Landroid/security/KeyStore;->mError:I
+Landroid/security/KeyStore;->mToken:Landroid/os/IBinder;
+Landroid/security/KeyStore;->onDeviceOffBody()V
+Landroid/security/KeyStore;->onUserAdded(I)V
+Landroid/security/KeyStore;->onUserAdded(II)V
+Landroid/security/KeyStore;->onUserPasswordChanged(ILjava/lang/String;)Z
+Landroid/security/KeyStore;->onUserPasswordChanged(Ljava/lang/String;)Z
+Landroid/security/KeyStore;->onUserRemoved(I)V
+Landroid/security/KeyStore;->OP_AUTH_NEEDED:I
+Landroid/security/KeyStore;->PERMISSION_DENIED:I
+Landroid/security/KeyStore;->presentConfirmationPrompt(Landroid/os/IBinder;Ljava/lang/String;[BLjava/lang/String;I)I
+Landroid/security/KeyStore;->PROTOCOL_ERROR:I
+Landroid/security/KeyStore;->put(Ljava/lang/String;[BII)Z
+Landroid/security/KeyStore;->sign(Ljava/lang/String;[B)[B
+Landroid/security/KeyStore;->SYSTEM_ERROR:I
+Landroid/security/KeyStore;->TAG:Ljava/lang/String;
+Landroid/security/KeyStore;->UID_SELF:I
+Landroid/security/KeyStore;->UNDEFINED_ACTION:I
+Landroid/security/KeyStore;->ungrant(Ljava/lang/String;I)Z
+Landroid/security/KeyStore;->UNINITIALIZED:I
+Landroid/security/KeyStore;->unlock(ILjava/lang/String;)Z
+Landroid/security/KeyStore;->update(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B)Landroid/security/keymaster/OperationResult;
+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
+Landroid/security/KeystoreArguments;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/security/KeyStoreException;->mErrorCode:I
+Landroid/security/KeyStoreParameter$Builder;->mFlags:I
+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;
+Landroid/security/net/config/ApplicationConfig;->getDefaultInstance()Landroid/security/net/config/ApplicationConfig;
+Landroid/security/net/config/ApplicationConfig;->getTrustManager()Ljavax/net/ssl/X509TrustManager;
+Landroid/security/net/config/ApplicationConfig;->handleTrustStorageUpdate()V
+Landroid/security/net/config/ApplicationConfig;->hasPerDomainConfigs()Z
+Landroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted()Z
+Landroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
+Landroid/security/net/config/ApplicationConfig;->mConfigs:Ljava/util/Set;
+Landroid/security/net/config/ApplicationConfig;->mConfigSource:Landroid/security/net/config/ConfigSource;
+Landroid/security/net/config/ApplicationConfig;->mDefaultConfig:Landroid/security/net/config/NetworkSecurityConfig;
+Landroid/security/net/config/ApplicationConfig;->mInitialized:Z
+Landroid/security/net/config/ApplicationConfig;->mLock:Ljava/lang/Object;
+Landroid/security/net/config/ApplicationConfig;->mTrustManager:Ljavax/net/ssl/X509TrustManager;
+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;
+Landroid/security/net/config/CertificatesEntryRef;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
+Landroid/security/net/config/CertificatesEntryRef;->getTrustAnchors()Ljava/util/Set;
+Landroid/security/net/config/CertificatesEntryRef;->handleTrustStorageUpdate()V
+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;
+Landroid/security/net/config/DirectoryCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+Landroid/security/net/config/DirectoryCertificateSource;->findCert(Ljavax/security/auth/x500/X500Principal;Landroid/security/net/config/DirectoryCertificateSource$CertSelector;)Ljava/security/cert/X509Certificate;
+Landroid/security/net/config/DirectoryCertificateSource;->findCerts(Ljavax/security/auth/x500/X500Principal;Landroid/security/net/config/DirectoryCertificateSource$CertSelector;)Ljava/util/Set;
+Landroid/security/net/config/DirectoryCertificateSource;->getCertificates()Ljava/util/Set;
+Landroid/security/net/config/DirectoryCertificateSource;->getHash(Ljavax/security/auth/x500/X500Principal;)Ljava/lang/String;
+Landroid/security/net/config/DirectoryCertificateSource;->handleTrustStorageUpdate()V
+Landroid/security/net/config/DirectoryCertificateSource;->isCertMarkedAsRemoved(Ljava/lang/String;)Z
+Landroid/security/net/config/DirectoryCertificateSource;->LOG_TAG:Ljava/lang/String;
+Landroid/security/net/config/DirectoryCertificateSource;->mCertFactory:Ljava/security/cert/CertificateFactory;
+Landroid/security/net/config/DirectoryCertificateSource;->mCertificates:Ljava/util/Set;
+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;
+Landroid/security/net/config/ManifestConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
+Landroid/security/net/config/ManifestConfigSource;->getPerDomainConfigs()Ljava/util/Set;
+Landroid/security/net/config/ManifestConfigSource;->LOG_TAG:Ljava/lang/String;
+Landroid/security/net/config/ManifestConfigSource;->mApplicationInfo:Landroid/content/pm/ApplicationInfo;
+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;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->build()Landroid/security/net/config/NetworkSecurityConfig;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->getCertificatesEntryRefs()Ljava/util/List;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveCertificatesEntryRefs()Ljava/util/List;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveCleartextTrafficPermitted()Z
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveHstsEnforced()Z
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectivePinSet()Landroid/security/net/config/PinSet;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->getParent()Landroid/security/net/config/NetworkSecurityConfig$Builder;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->hasCertificatesEntryRefs()Z
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->mCertificatesEntryRefs:Ljava/util/List;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->mCleartextTrafficPermitted:Z
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->mCleartextTrafficPermittedSet:Z
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->mHstsEnforced:Z
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->mHstsEnforcedSet:Z
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->mParentBuilder:Landroid/security/net/config/NetworkSecurityConfig$Builder;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->mPinSet:Landroid/security/net/config/PinSet;
+Landroid/security/net/config/NetworkSecurityConfig$Builder;->setCleartextTrafficPermitted(Z)Landroid/security/net/config/NetworkSecurityConfig$Builder;
+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
+Landroid/security/net/config/NetworkSecurityConfig;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+Landroid/security/net/config/NetworkSecurityConfig;->findTrustAnchorByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
+Landroid/security/net/config/NetworkSecurityConfig;->findTrustAnchorBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
+Landroid/security/net/config/NetworkSecurityConfig;->getDefaultBuilder(Landroid/content/pm/ApplicationInfo;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
+Landroid/security/net/config/NetworkSecurityConfig;->getPins()Landroid/security/net/config/PinSet;
+Landroid/security/net/config/NetworkSecurityConfig;->getTrustAnchors()Ljava/util/Set;
+Landroid/security/net/config/NetworkSecurityConfig;->getTrustManager()Landroid/security/net/config/NetworkSecurityTrustManager;
+Landroid/security/net/config/NetworkSecurityConfig;->handleTrustStorageUpdate()V
+Landroid/security/net/config/NetworkSecurityConfig;->isCleartextTrafficPermitted()Z
+Landroid/security/net/config/NetworkSecurityConfig;->isHstsEnforced()Z
+Landroid/security/net/config/NetworkSecurityConfig;->mAnchors:Ljava/util/Set;
+Landroid/security/net/config/NetworkSecurityConfig;->mAnchorsLock:Ljava/lang/Object;
+Landroid/security/net/config/NetworkSecurityConfig;->mCertificatesEntryRefs:Ljava/util/List;
+Landroid/security/net/config/NetworkSecurityConfig;->mCleartextTrafficPermitted:Z
+Landroid/security/net/config/NetworkSecurityConfig;->mHstsEnforced:Z
+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;
+Landroid/security/net/config/NetworkSecurityTrustManager;->handleTrustStorageUpdate()V
+Landroid/security/net/config/NetworkSecurityTrustManager;->isPinningEnforced(Ljava/util/List;)Z
+Landroid/security/net/config/NetworkSecurityTrustManager;->mDelegate:Lcom/android/org/conscrypt/TrustManagerImpl;
+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;
+Landroid/security/net/config/ResourceCertificateSource;->findByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+Landroid/security/net/config/ResourceCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+Landroid/security/net/config/ResourceCertificateSource;->getCertificates()Ljava/util/Set;
+Landroid/security/net/config/ResourceCertificateSource;->handleTrustStorageUpdate()V
+Landroid/security/net/config/ResourceCertificateSource;->mCertificates:Ljava/util/Set;
+Landroid/security/net/config/ResourceCertificateSource;->mContext:Landroid/content/Context;
+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;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->containsAlias(Ljava/lang/String;)Z
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->findAllIssuers(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->findIssuer(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->getCertificate(Ljava/lang/String;Z)Ljava/security/cert/Certificate;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->getCertificateAlias(Ljava/security/cert/Certificate;)Ljava/lang/String;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->getCertificateAlias(Ljava/security/cert/Certificate;Z)Ljava/lang/String;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->getCertificateFile(Ljava/io/File;Ljava/security/cert/X509Certificate;)Ljava/io/File;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->getCreationDate(Ljava/lang/String;)Ljava/util/Date;
+Landroid/security/net/config/TrustedCertificateStoreAdapter;->getTrustAnchor(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+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
+Landroid/security/net/config/XmlConfigSource;->CONFIG_DEBUG:I
+Landroid/security/net/config/XmlConfigSource;->CONFIG_DOMAIN:I
+Landroid/security/net/config/XmlConfigSource;->ensureInitialized()V
+Landroid/security/net/config/XmlConfigSource;->getConfigString(I)Ljava/lang/String;
+Landroid/security/net/config/XmlConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
+Landroid/security/net/config/XmlConfigSource;->getPerDomainConfigs()Ljava/util/Set;
+Landroid/security/net/config/XmlConfigSource;->mApplicationInfo:Landroid/content/pm/ApplicationInfo;
+Landroid/security/net/config/XmlConfigSource;->mContext:Landroid/content/Context;
+Landroid/security/net/config/XmlConfigSource;->mDebugBuild:Z
+Landroid/security/net/config/XmlConfigSource;->mDefaultConfig:Landroid/security/net/config/NetworkSecurityConfig;
+Landroid/security/net/config/XmlConfigSource;->mDomainMap:Ljava/util/Set;
+Landroid/security/net/config/XmlConfigSource;->mInitialized:Z
+Landroid/security/net/config/XmlConfigSource;->mLock:Ljava/lang/Object;
+Landroid/security/net/config/XmlConfigSource;->mResourceId:I
+Landroid/security/net/config/XmlConfigSource;->parseCertificatesEntry(Landroid/content/res/XmlResourceParser;Z)Landroid/security/net/config/CertificatesEntryRef;
+Landroid/security/net/config/XmlConfigSource;->parseConfigEntry(Landroid/content/res/XmlResourceParser;Ljava/util/Set;Landroid/security/net/config/NetworkSecurityConfig$Builder;I)Ljava/util/List;
+Landroid/security/net/config/XmlConfigSource;->parseDebugOverridesResource()Landroid/security/net/config/NetworkSecurityConfig$Builder;
+Landroid/security/net/config/XmlConfigSource;->parseDomain(Landroid/content/res/XmlResourceParser;Ljava/util/Set;)Landroid/security/net/config/Domain;
+Landroid/security/net/config/XmlConfigSource;->parseNetworkSecurityConfig(Landroid/content/res/XmlResourceParser;)V
+Landroid/security/net/config/XmlConfigSource;->parsePin(Landroid/content/res/XmlResourceParser;)Landroid/security/net/config/Pin;
+Landroid/security/net/config/XmlConfigSource;->parsePinSet(Landroid/content/res/XmlResourceParser;)Landroid/security/net/config/PinSet;
+Landroid/security/net/config/XmlConfigSource;->parseTrustAnchors(Landroid/content/res/XmlResourceParser;Z)Ljava/util/Collection;
+Landroid/security/NetworkSecurityPolicy;-><init>()V
+Landroid/security/NetworkSecurityPolicy;->getApplicationConfigForPackage(Landroid/content/Context;Ljava/lang/String;)Landroid/security/net/config/ApplicationConfig;
+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
+Landroid/security/SystemKeyStore;->generateNewKeyHexString(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/security/SystemKeyStore;->getInstance()Landroid/security/SystemKeyStore;
+Landroid/security/SystemKeyStore;->getKeyFile(Ljava/lang/String;)Ljava/io/File;
+Landroid/security/SystemKeyStore;->KEY_FILE_EXTENSION:Ljava/lang/String;
+Landroid/security/SystemKeyStore;->mInstance:Landroid/security/SystemKeyStore;
+Landroid/security/SystemKeyStore;->retrieveKey(Ljava/lang/String;)[B
+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;
+Landroid/service/autofill/AutofillFieldClassificationService$Scores;->scores:[[F
+Landroid/service/autofill/AutofillFieldClassificationService;-><init>()V
+Landroid/service/autofill/AutofillFieldClassificationService;->EXTRA_SCORES:Ljava/lang/String;
+Landroid/service/autofill/AutofillFieldClassificationService;->getScores(Landroid/os/RemoteCallback;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/List;[Ljava/lang/String;)V
+Landroid/service/autofill/AutofillFieldClassificationService;->mHandler:Landroid/os/Handler;
+Landroid/service/autofill/AutofillFieldClassificationService;->mWrapper:Landroid/service/autofill/AutofillFieldClassificationService$AutofillFieldClassificationServiceWrapper;
+Landroid/service/autofill/AutofillFieldClassificationService;->TAG:Ljava/lang/String;
+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
+Landroid/service/autofill/AutofillServiceInfo;->getCompatibilityPackages()Landroid/util/ArrayMap;
+Landroid/service/autofill/AutofillServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+Landroid/service/autofill/AutofillServiceInfo;->getServiceInfoOrThrow(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
+Landroid/service/autofill/AutofillServiceInfo;->getSettingsActivity()Ljava/lang/String;
+Landroid/service/autofill/AutofillServiceInfo;->mCompatibilityPackages:Landroid/util/ArrayMap;
+Landroid/service/autofill/AutofillServiceInfo;->mServiceInfo:Landroid/content/pm/ServiceInfo;
+Landroid/service/autofill/AutofillServiceInfo;->mSettingsActivity:Ljava/lang/String;
+Landroid/service/autofill/AutofillServiceInfo;->parseCompatibilityPackages(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/util/ArrayMap;
+Landroid/service/autofill/AutofillServiceInfo;->TAG:Ljava/lang/String;
+Landroid/service/autofill/AutofillServiceInfo;->TAG_AUTOFILL_SERVICE:Ljava/lang/String;
+Landroid/service/autofill/AutofillServiceInfo;->TAG_COMPATIBILITY_PACKAGE:Ljava/lang/String;
+Landroid/service/autofill/BatchUpdates$Builder;->mDestroyed:Z
+Landroid/service/autofill/BatchUpdates$Builder;->mTransformations:Ljava/util/ArrayList;
+Landroid/service/autofill/BatchUpdates$Builder;->mUpdates:Landroid/widget/RemoteViews;
+Landroid/service/autofill/BatchUpdates$Builder;->throwIfDestroyed()V
+Landroid/service/autofill/BatchUpdates;-><init>(Landroid/service/autofill/BatchUpdates$Builder;)V
+Landroid/service/autofill/BatchUpdates;->getTransformations()Ljava/util/ArrayList;
+Landroid/service/autofill/BatchUpdates;->getUpdates()Landroid/widget/RemoteViews;
+Landroid/service/autofill/BatchUpdates;->mTransformations:Ljava/util/ArrayList;
+Landroid/service/autofill/BatchUpdates;->mUpdates:Landroid/widget/RemoteViews;
+Landroid/service/autofill/CharSequenceTransformation$Builder;->mDestroyed:Z
+Landroid/service/autofill/CharSequenceTransformation$Builder;->mFields:Ljava/util/LinkedHashMap;
+Landroid/service/autofill/CharSequenceTransformation$Builder;->throwIfDestroyed()V
+Landroid/service/autofill/CharSequenceTransformation;-><init>(Landroid/service/autofill/CharSequenceTransformation$Builder;)V
+Landroid/service/autofill/CharSequenceTransformation;->mFields:Ljava/util/LinkedHashMap;
+Landroid/service/autofill/CharSequenceTransformation;->TAG:Ljava/lang/String;
+Landroid/service/autofill/CustomDescription$Builder;->mDestroyed:Z
+Landroid/service/autofill/CustomDescription$Builder;->mPresentation:Landroid/widget/RemoteViews;
+Landroid/service/autofill/CustomDescription$Builder;->mTransformations:Ljava/util/ArrayList;
+Landroid/service/autofill/CustomDescription$Builder;->mUpdates:Ljava/util/ArrayList;
+Landroid/service/autofill/CustomDescription$Builder;->throwIfDestroyed()V
+Landroid/service/autofill/CustomDescription;-><init>(Landroid/service/autofill/CustomDescription$Builder;)V
+Landroid/service/autofill/CustomDescription;->getPresentation()Landroid/widget/RemoteViews;
+Landroid/service/autofill/CustomDescription;->getTransformations()Ljava/util/ArrayList;
+Landroid/service/autofill/CustomDescription;->getUpdates()Ljava/util/ArrayList;
+Landroid/service/autofill/CustomDescription;->mPresentation:Landroid/widget/RemoteViews;
+Landroid/service/autofill/CustomDescription;->mTransformations:Ljava/util/ArrayList;
+Landroid/service/autofill/CustomDescription;->mUpdates:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset$Builder;->mAuthentication:Landroid/content/IntentSender;
+Landroid/service/autofill/Dataset$Builder;->mDestroyed:Z
+Landroid/service/autofill/Dataset$Builder;->mFieldFilters:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset$Builder;->mFieldIds:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset$Builder;->mFieldPresentations:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset$Builder;->mFieldValues:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset$Builder;->mId:Ljava/lang/String;
+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;
+Landroid/service/autofill/Dataset;-><init>(Landroid/service/autofill/Dataset$Builder;)V
+Landroid/service/autofill/Dataset;->getAuthentication()Landroid/content/IntentSender;
+Landroid/service/autofill/Dataset;->getFieldIds()Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset;->getFieldPresentation(I)Landroid/widget/RemoteViews;
+Landroid/service/autofill/Dataset;->getFieldValues()Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset;->getFilter(I)Landroid/service/autofill/Dataset$DatasetFieldFilter;
+Landroid/service/autofill/Dataset;->getId()Ljava/lang/String;
+Landroid/service/autofill/Dataset;->isEmpty()Z
+Landroid/service/autofill/Dataset;->mAuthentication:Landroid/content/IntentSender;
+Landroid/service/autofill/Dataset;->mFieldFilters:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset;->mFieldIds:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset;->mFieldPresentations:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset;->mFieldValues:Ljava/util/ArrayList;
+Landroid/service/autofill/Dataset;->mId:Ljava/lang/String;
+Landroid/service/autofill/Dataset;->mPresentation:Landroid/widget/RemoteViews;
+Landroid/service/autofill/DateTransformation;->mDateFormat:Landroid/icu/text/DateFormat;
+Landroid/service/autofill/DateTransformation;->mFieldId:Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/DateTransformation;->TAG:Ljava/lang/String;
+Landroid/service/autofill/DateValueSanitizer;->mDateFormat:Landroid/icu/text/DateFormat;
+Landroid/service/autofill/DateValueSanitizer;->TAG:Ljava/lang/String;
+Landroid/service/autofill/FieldClassification$Match;-><init>(Ljava/lang/String;F)V
+Landroid/service/autofill/FieldClassification$Match;->mCategoryId:Ljava/lang/String;
+Landroid/service/autofill/FieldClassification$Match;->mScore:F
+Landroid/service/autofill/FieldClassification$Match;->readFromParcel(Landroid/os/Parcel;)Landroid/service/autofill/FieldClassification$Match;
+Landroid/service/autofill/FieldClassification$Match;->writeToParcel(Landroid/os/Parcel;)V
+Landroid/service/autofill/FieldClassification;-><init>(Ljava/util/ArrayList;)V
+Landroid/service/autofill/FieldClassification;->mMatches:Ljava/util/ArrayList;
+Landroid/service/autofill/FieldClassification;->readArrayFromParcel(Landroid/os/Parcel;)[Landroid/service/autofill/FieldClassification;
+Landroid/service/autofill/FieldClassification;->readFromParcel(Landroid/os/Parcel;)Landroid/service/autofill/FieldClassification;
+Landroid/service/autofill/FieldClassification;->writeArrayToParcel(Landroid/os/Parcel;[Landroid/service/autofill/FieldClassification;)V
+Landroid/service/autofill/FieldClassification;->writeToParcel(Landroid/os/Parcel;)V
+Landroid/service/autofill/FillCallback;-><init>(Landroid/service/autofill/IFillCallback;I)V
+Landroid/service/autofill/FillCallback;->assertNotCalled()V
+Landroid/service/autofill/FillCallback;->mCallback:Landroid/service/autofill/IFillCallback;
+Landroid/service/autofill/FillCallback;->mCalled:Z
+Landroid/service/autofill/FillCallback;->mRequestId:I
+Landroid/service/autofill/FillContext;-><init>(ILandroid/app/assist/AssistStructure;)V
+Landroid/service/autofill/FillContext;-><init>(Landroid/os/Parcel;)V
+Landroid/service/autofill/FillContext;->findViewNodesByAutofillIds([Landroid/view/autofill/AutofillId;)[Landroid/app/assist/AssistStructure$ViewNode;
+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;
+Landroid/service/autofill/FillEventHistory$Event;->mClientState:Landroid/os/Bundle;
+Landroid/service/autofill/FillEventHistory$Event;->mDatasetId:Ljava/lang/String;
+Landroid/service/autofill/FillEventHistory$Event;->mDetectedFieldClassifications:[Landroid/service/autofill/FieldClassification;
+Landroid/service/autofill/FillEventHistory$Event;->mDetectedFieldIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillEventHistory$Event;->mEventType:I
+Landroid/service/autofill/FillEventHistory$Event;->mIgnoredDatasetIds:Landroid/util/ArraySet;
+Landroid/service/autofill/FillEventHistory$Event;->mManuallyFilledDatasetIds:Ljava/util/ArrayList;
+Landroid/service/autofill/FillEventHistory$Event;->mManuallyFilledFieldIds:Ljava/util/ArrayList;
+Landroid/service/autofill/FillEventHistory$Event;->mSelectedDatasetIds:Ljava/util/List;
+Landroid/service/autofill/FillEventHistory;-><init>(ILandroid/os/Bundle;)V
+Landroid/service/autofill/FillEventHistory;->addEvent(Landroid/service/autofill/FillEventHistory$Event;)V
+Landroid/service/autofill/FillEventHistory;->getSessionId()I
+Landroid/service/autofill/FillEventHistory;->mClientState:Landroid/os/Bundle;
+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
+Landroid/service/autofill/FillRequest;->mClientState:Landroid/os/Bundle;
+Landroid/service/autofill/FillRequest;->mContexts:Ljava/util/ArrayList;
+Landroid/service/autofill/FillRequest;->mFlags:I
+Landroid/service/autofill/FillRequest;->mId:I
+Landroid/service/autofill/FillResponse$Builder;->mAuthentication:Landroid/content/IntentSender;
+Landroid/service/autofill/FillResponse$Builder;->mAuthenticationIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillResponse$Builder;->mClientState:Landroid/os/Bundle;
+Landroid/service/autofill/FillResponse$Builder;->mDatasets:Ljava/util/ArrayList;
+Landroid/service/autofill/FillResponse$Builder;->mDestroyed:Z
+Landroid/service/autofill/FillResponse$Builder;->mDisableDuration:J
+Landroid/service/autofill/FillResponse$Builder;->mFieldClassificationIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillResponse$Builder;->mFlags:I
+Landroid/service/autofill/FillResponse$Builder;->mFooter:Landroid/widget/RemoteViews;
+Landroid/service/autofill/FillResponse$Builder;->mHeader:Landroid/widget/RemoteViews;
+Landroid/service/autofill/FillResponse$Builder;->mIgnoredIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillResponse$Builder;->mPresentation:Landroid/widget/RemoteViews;
+Landroid/service/autofill/FillResponse$Builder;->mSaveInfo:Landroid/service/autofill/SaveInfo;
+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;
+Landroid/service/autofill/FillResponse;->getClientState()Landroid/os/Bundle;
+Landroid/service/autofill/FillResponse;->getDatasets()Ljava/util/List;
+Landroid/service/autofill/FillResponse;->getDisableDuration()J
+Landroid/service/autofill/FillResponse;->getFieldClassificationIds()[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillResponse;->getFooter()Landroid/widget/RemoteViews;
+Landroid/service/autofill/FillResponse;->getHeader()Landroid/widget/RemoteViews;
+Landroid/service/autofill/FillResponse;->getIgnoredIds()[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillResponse;->getPresentation()Landroid/widget/RemoteViews;
+Landroid/service/autofill/FillResponse;->getRequestId()I
+Landroid/service/autofill/FillResponse;->getSaveInfo()Landroid/service/autofill/SaveInfo;
+Landroid/service/autofill/FillResponse;->mAuthentication:Landroid/content/IntentSender;
+Landroid/service/autofill/FillResponse;->mAuthenticationIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillResponse;->mClientState:Landroid/os/Bundle;
+Landroid/service/autofill/FillResponse;->mDatasets:Landroid/content/pm/ParceledListSlice;
+Landroid/service/autofill/FillResponse;->mDisableDuration:J
+Landroid/service/autofill/FillResponse;->mFieldClassificationIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillResponse;->mFlags:I
+Landroid/service/autofill/FillResponse;->mFooter:Landroid/widget/RemoteViews;
+Landroid/service/autofill/FillResponse;->mHeader:Landroid/widget/RemoteViews;
+Landroid/service/autofill/FillResponse;->mIgnoredIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/FillResponse;->mPresentation:Landroid/widget/RemoteViews;
+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
+Landroid/service/autofill/ImageTransformation$Builder;->addOptionInternal(Ljava/util/regex/Pattern;ILjava/lang/CharSequence;)V
+Landroid/service/autofill/ImageTransformation$Builder;->mDestroyed:Z
+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;
+Landroid/service/autofill/ImageTransformation$Option;->resId:I
+Landroid/service/autofill/ImageTransformation;-><init>(Landroid/service/autofill/ImageTransformation$Builder;)V
+Landroid/service/autofill/ImageTransformation;->mId:Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/ImageTransformation;->mOptions:Ljava/util/ArrayList;
+Landroid/service/autofill/ImageTransformation;->TAG:Ljava/lang/String;
+Landroid/service/autofill/InternalSanitizer;->sanitize(Landroid/view/autofill/AutofillValue;)Landroid/view/autofill/AutofillValue;
+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
+Landroid/service/autofill/LuhnChecksumValidator;->mIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/LuhnChecksumValidator;->TAG:Ljava/lang/String;
+Landroid/service/autofill/RegexValidator;->mId:Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/RegexValidator;->mRegex:Ljava/util/regex/Pattern;
+Landroid/service/autofill/RegexValidator;->TAG:Ljava/lang/String;
+Landroid/service/autofill/SaveCallback;-><init>(Landroid/service/autofill/ISaveCallback;)V
+Landroid/service/autofill/SaveCallback;->assertNotCalled()V
+Landroid/service/autofill/SaveCallback;->mCallback:Landroid/service/autofill/ISaveCallback;
+Landroid/service/autofill/SaveCallback;->mCalled:Z
+Landroid/service/autofill/SaveCallback;->onSuccessInternal(Landroid/content/IntentSender;)V
+Landroid/service/autofill/SaveInfo$Builder;->mCustomDescription:Landroid/service/autofill/CustomDescription;
+Landroid/service/autofill/SaveInfo$Builder;->mDescription:Ljava/lang/CharSequence;
+Landroid/service/autofill/SaveInfo$Builder;->mDestroyed:Z
+Landroid/service/autofill/SaveInfo$Builder;->mFlags:I
+Landroid/service/autofill/SaveInfo$Builder;->mNegativeActionListener:Landroid/content/IntentSender;
+Landroid/service/autofill/SaveInfo$Builder;->mNegativeButtonStyle:I
+Landroid/service/autofill/SaveInfo$Builder;->mOptionalIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo$Builder;->mRequiredIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo$Builder;->mSanitizerIds:Landroid/util/ArraySet;
+Landroid/service/autofill/SaveInfo$Builder;->mSanitizers:Landroid/util/ArrayMap;
+Landroid/service/autofill/SaveInfo$Builder;->mTriggerId:Landroid/view/autofill/AutofillId;
+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;
+Landroid/service/autofill/SaveInfo;->getFlags()I
+Landroid/service/autofill/SaveInfo;->getNegativeActionListener()Landroid/content/IntentSender;
+Landroid/service/autofill/SaveInfo;->getNegativeActionStyle()I
+Landroid/service/autofill/SaveInfo;->getOptionalIds()[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo;->getRequiredIds()[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo;->getSanitizerKeys()[Landroid/service/autofill/InternalSanitizer;
+Landroid/service/autofill/SaveInfo;->getSanitizerValues()[[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo;->getTriggerId()Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo;->getType()I
+Landroid/service/autofill/SaveInfo;->getValidator()Landroid/service/autofill/InternalValidator;
+Landroid/service/autofill/SaveInfo;->mCustomDescription:Landroid/service/autofill/CustomDescription;
+Landroid/service/autofill/SaveInfo;->mDescription:Ljava/lang/CharSequence;
+Landroid/service/autofill/SaveInfo;->mFlags:I
+Landroid/service/autofill/SaveInfo;->mNegativeActionListener:Landroid/content/IntentSender;
+Landroid/service/autofill/SaveInfo;->mNegativeButtonStyle:I
+Landroid/service/autofill/SaveInfo;->mOptionalIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo;->mRequiredIds:[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo;->mSanitizerKeys:[Landroid/service/autofill/InternalSanitizer;
+Landroid/service/autofill/SaveInfo;->mSanitizerValues:[[Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo;->mTriggerId:Landroid/view/autofill/AutofillId;
+Landroid/service/autofill/SaveInfo;->mType:I
+Landroid/service/autofill/SaveInfo;->mValidator:Landroid/service/autofill/InternalValidator;
+Landroid/service/autofill/SaveRequest;-><init>(Landroid/os/Parcel;)V
+Landroid/service/autofill/SaveRequest;-><init>(Ljava/util/ArrayList;Landroid/os/Bundle;Ljava/util/ArrayList;)V
+Landroid/service/autofill/SaveRequest;->mClientState:Landroid/os/Bundle;
+Landroid/service/autofill/SaveRequest;->mDatasetIds:Ljava/util/ArrayList;
+Landroid/service/autofill/SaveRequest;->mFillContexts:Ljava/util/ArrayList;
+Landroid/service/autofill/TextValueSanitizer;->mRegex:Ljava/util/regex/Pattern;
+Landroid/service/autofill/TextValueSanitizer;->mSubst:Ljava/lang/String;
+Landroid/service/autofill/TextValueSanitizer;->TAG:Ljava/lang/String;
+Landroid/service/autofill/UserData$Builder;->addMapping(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/service/autofill/UserData$Builder;->checkNotEmpty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/service/autofill/UserData$Builder;->checkValidValue(Ljava/lang/String;)V
+Landroid/service/autofill/UserData$Builder;->mAlgorithm:Ljava/lang/String;
+Landroid/service/autofill/UserData$Builder;->mAlgorithmArgs:Landroid/os/Bundle;
+Landroid/service/autofill/UserData$Builder;->mCategoryIds:Ljava/util/ArrayList;
+Landroid/service/autofill/UserData$Builder;->mDestroyed:Z
+Landroid/service/autofill/UserData$Builder;->mId:Ljava/lang/String;
+Landroid/service/autofill/UserData$Builder;->mUniqueCategoryIds:Landroid/util/ArraySet;
+Landroid/service/autofill/UserData$Builder;->mValues:Ljava/util/ArrayList;
+Landroid/service/autofill/UserData$Builder;->throwIfDestroyed()V
+Landroid/service/autofill/UserData;-><init>(Landroid/service/autofill/UserData$Builder;)V
+Landroid/service/autofill/UserData;->DEFAULT_MAX_CATEGORY_COUNT:I
+Landroid/service/autofill/UserData;->DEFAULT_MAX_FIELD_CLASSIFICATION_IDS_SIZE:I
+Landroid/service/autofill/UserData;->DEFAULT_MAX_USER_DATA_SIZE:I
+Landroid/service/autofill/UserData;->DEFAULT_MAX_VALUE_LENGTH:I
+Landroid/service/autofill/UserData;->DEFAULT_MIN_VALUE_LENGTH:I
+Landroid/service/autofill/UserData;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+Landroid/service/autofill/UserData;->dumpConstraints(Ljava/lang/String;Ljava/io/PrintWriter;)V
+Landroid/service/autofill/UserData;->getAlgorithmArgs()Landroid/os/Bundle;
+Landroid/service/autofill/UserData;->getCategoryIds()[Ljava/lang/String;
+Landroid/service/autofill/UserData;->getInt(Ljava/lang/String;I)I
+Landroid/service/autofill/UserData;->getValues()[Ljava/lang/String;
+Landroid/service/autofill/UserData;->mAlgorithm:Ljava/lang/String;
+Landroid/service/autofill/UserData;->mAlgorithmArgs:Landroid/os/Bundle;
+Landroid/service/autofill/UserData;->mCategoryIds:[Ljava/lang/String;
+Landroid/service/autofill/UserData;->mId:Ljava/lang/String;
+Landroid/service/autofill/UserData;->mValues:[Ljava/lang/String;
+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
+Landroid/service/carrier/CarrierIdentifier$MatchType;->IMSI_PREFIX:I
+Landroid/service/carrier/CarrierIdentifier$MatchType;->SPN:I
+Landroid/service/carrier/CarrierIdentifier;-><init>(Landroid/os/Parcel;)V
+Landroid/service/carrier/CarrierIdentifier;->mGid1:Ljava/lang/String;
+Landroid/service/carrier/CarrierIdentifier;->mGid2:Ljava/lang/String;
+Landroid/service/carrier/CarrierIdentifier;->mImsi:Ljava/lang/String;
+Landroid/service/carrier/CarrierIdentifier;->mMcc:Ljava/lang/String;
+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
+Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;->sendMms(Landroid/net/Uri;ILandroid/net/Uri;Landroid/service/carrier/ICarrierMessagingCallback;)V
+Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;->sendMultipartTextSms(Ljava/util/List;ILjava/lang/String;ILandroid/service/carrier/ICarrierMessagingCallback;)V
+Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;->sendTextSms(Ljava/lang/String;ILjava/lang/String;ILandroid/service/carrier/ICarrierMessagingCallback;)V
+Landroid/service/carrier/CarrierMessagingService$SendMmsResult;->mSendConfPdu:[B
+Landroid/service/carrier/CarrierMessagingService$SendMmsResult;->mSendStatus:I
+Landroid/service/carrier/CarrierMessagingService$SendMultipartSmsResult;->mMessageRefs:[I
+Landroid/service/carrier/CarrierMessagingService$SendMultipartSmsResult;->mSendStatus:I
+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
+Landroid/service/carrier/CarrierService$ICarrierServiceWrapper;->RESULT_OK:I
+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;
+Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;->onDownloadMmsComplete(I)V
+Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;->onFilterComplete(I)V
+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
+Landroid/service/carrier/ICarrierMessagingCallback$Stub;->TRANSACTION_onFilterComplete:I
+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
+Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;->sendDataSms([BILjava/lang/String;IILandroid/service/carrier/ICarrierMessagingCallback;)V
+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;
+Landroid/service/carrier/ICarrierMessagingService$Stub;->TRANSACTION_downloadMms:I
+Landroid/service/carrier/ICarrierMessagingService$Stub;->TRANSACTION_filterSms:I
+Landroid/service/carrier/ICarrierMessagingService$Stub;->TRANSACTION_sendDataSms:I
+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
+Landroid/service/chooser/ChooserTarget;-><init>(Landroid/os/Parcel;)V
+Landroid/service/chooser/ChooserTarget;->mComponentName:Landroid/content/ComponentName;
+Landroid/service/chooser/ChooserTarget;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/service/chooser/ChooserTarget;->mIntentExtras:Landroid/os/Bundle;
+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
+Landroid/service/dreams/DreamService;->applyFlags(III)I
+Landroid/service/dreams/DreamService;->applySystemUiVisibilityFlags(II)V
+Landroid/service/dreams/DreamService;->applyWindowFlags(II)V
+Landroid/service/dreams/DreamService;->attach(Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
+Landroid/service/dreams/DreamService;->clampAbsoluteBrightness(I)I
+Landroid/service/dreams/DreamService;->detach()V
+Landroid/service/dreams/DreamService;->DREAM_SERVICE:Ljava/lang/String;
+Landroid/service/dreams/DreamService;->dumpOnHandler(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/service/dreams/DreamService;->getDozeScreenState()I
+Landroid/service/dreams/DreamService;->getSystemUiVisibilityFlagValue(IZ)Z
+Landroid/service/dreams/DreamService;->getWindowFlagValue(IZ)Z
+Landroid/service/dreams/DreamService;->isLowProfile()Z
+Landroid/service/dreams/DreamService;->isWindowless()Z
+Landroid/service/dreams/DreamService;->mCanDoze:Z
+Landroid/service/dreams/DreamService;->mDebug:Z
+Landroid/service/dreams/DreamService;->mDozeScreenBrightness:I
+Landroid/service/dreams/DreamService;->mDozeScreenState:I
+Landroid/service/dreams/DreamService;->mDozing:Z
+Landroid/service/dreams/DreamService;->mFinished:Z
+Landroid/service/dreams/DreamService;->mFullscreen:Z
+Landroid/service/dreams/DreamService;->mHandler:Landroid/os/Handler;
+Landroid/service/dreams/DreamService;->mInteractive:Z
+Landroid/service/dreams/DreamService;->mLowProfile:Z
+Landroid/service/dreams/DreamService;->mSandman:Landroid/service/dreams/IDreamManager;
+Landroid/service/dreams/DreamService;->mScreenBright:Z
+Landroid/service/dreams/DreamService;->mStarted:Z
+Landroid/service/dreams/DreamService;->mWaking:Z
+Landroid/service/dreams/DreamService;->mWindow:Landroid/view/Window;
+Landroid/service/dreams/DreamService;->mWindowless:Z
+Landroid/service/dreams/DreamService;->mWindowToken:Landroid/os/IBinder;
+Landroid/service/dreams/DreamService;->setDebug(Z)V
+Landroid/service/dreams/DreamService;->setLowProfile(Z)V
+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
+Landroid/service/dreams/IDreamManager$Stub$Proxy;->finishSelf(Landroid/os/IBinder;Z)V
+Landroid/service/dreams/IDreamManager$Stub$Proxy;->getDefaultDreamComponent()Landroid/content/ComponentName;
+Landroid/service/dreams/IDreamManager$Stub$Proxy;->getDreamComponents()[Landroid/content/ComponentName;
+Landroid/service/dreams/IDreamManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/service/dreams/IDreamManager$Stub$Proxy;->isDreaming()Z
+Landroid/service/dreams/IDreamManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/dreams/IDreamManager$Stub$Proxy;->setDreamComponents([Landroid/content/ComponentName;)V
+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
+Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_dream:I
+Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_finishSelf:I
+Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_getDefaultDreamComponent:I
+Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_getDreamComponents:I
+Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_isDreaming:I
+Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_setDreamComponents:I
+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
+Landroid/service/dreams/Sandman;->shouldStartDockApp(Landroid/content/Context;Landroid/content/Intent;)Z
+Landroid/service/dreams/Sandman;->SOMNAMBULATOR_COMPONENT:Landroid/content/ComponentName;
+Landroid/service/dreams/Sandman;->startDream(Landroid/content/Context;Z)V
+Landroid/service/dreams/Sandman;->startDreamByUserRequest(Landroid/content/Context;)V
+Landroid/service/dreams/Sandman;->startDreamWhenDockedIfAppropriate(Landroid/content/Context;)V
+Landroid/service/dreams/Sandman;->TAG:Ljava/lang/String;
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mAccessRules:Ljava/util/List;
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mCarrierIdentifier:Landroid/service/carrier/CarrierIdentifier;
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mIccid:Ljava/lang/String;
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mNickname:Ljava/lang/String;
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mPolicyRules:I
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mProfileClass:I
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mProfileName:Ljava/lang/String;
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mServiceProviderName:Ljava/lang/String;
+Landroid/service/euicc/EuiccProfileInfo$Builder;->mState:I
+Landroid/service/euicc/EuiccProfileInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/service/euicc/EuiccProfileInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILandroid/service/carrier/CarrierIdentifier;ILjava/util/List;)V
+Landroid/service/euicc/EuiccProfileInfo;->mAccessRules:[Landroid/telephony/UiccAccessRule;
+Landroid/service/euicc/EuiccProfileInfo;->mCarrierIdentifier:Landroid/service/carrier/CarrierIdentifier;
+Landroid/service/euicc/EuiccProfileInfo;->mIccid:Ljava/lang/String;
+Landroid/service/euicc/EuiccProfileInfo;->mNickname:Ljava/lang/String;
+Landroid/service/euicc/EuiccProfileInfo;->mPolicyRules:I
+Landroid/service/euicc/EuiccProfileInfo;->mProfileClass:I
+Landroid/service/euicc/EuiccProfileInfo;->mProfileName:Ljava/lang/String;
+Landroid/service/euicc/EuiccProfileInfo;->mServiceProviderName:Ljava/lang/String;
+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
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->getDefaultDownloadableSubscriptionList(IZLandroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->getDownloadableSubscriptionMetadata(ILandroid/telephony/euicc/DownloadableSubscription;ZLandroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->getEid(ILandroid/service/euicc/IGetEidCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->getEuiccInfo(ILandroid/service/euicc/IGetEuiccInfoCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->getEuiccProfileInfoList(ILandroid/service/euicc/IGetEuiccProfileInfoListCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->getOtaStatus(ILandroid/service/euicc/IGetOtaStatusCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->retainSubscriptionsForFactoryReset(ILandroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->startOtaIfNecessary(ILandroid/service/euicc/IOtaStatusChangedCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->switchToSubscription(ILjava/lang/String;ZLandroid/service/euicc/ISwitchToSubscriptionCallback;)V
+Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->updateSubscriptionNickname(ILjava/lang/String;Ljava/lang/String;Landroid/service/euicc/IUpdateSubscriptionNicknameCallback;)V
+Landroid/service/euicc/EuiccService;->mExecutor:Ljava/util/concurrent/ThreadPoolExecutor;
+Landroid/service/euicc/EuiccService;->mStubWrapper:Landroid/service/euicc/IEuiccService$Stub;
+Landroid/service/euicc/EuiccService;->RESOLUTION_ACTIONS:Landroid/util/ArraySet;
+Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult;-><init>(Landroid/os/Parcel;)V
+Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult;->mSubscriptions:[Landroid/telephony/euicc/DownloadableSubscription;
+Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult;-><init>(Landroid/os/Parcel;)V
+Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult;->mSubscription:Landroid/telephony/euicc/DownloadableSubscription;
+Landroid/service/euicc/GetEuiccProfileInfoListResult;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->eraseSubscriptions(ILandroid/service/euicc/IEraseSubscriptionsCallback;)V
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->getDefaultDownloadableSubscriptionList(IZLandroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback;)V
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->getDownloadableSubscriptionMetadata(ILandroid/telephony/euicc/DownloadableSubscription;ZLandroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback;)V
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->getEid(ILandroid/service/euicc/IGetEidCallback;)V
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->getEuiccInfo(ILandroid/service/euicc/IGetEuiccInfoCallback;)V
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->getEuiccProfileInfoList(ILandroid/service/euicc/IGetEuiccProfileInfoListCallback;)V
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->getOtaStatus(ILandroid/service/euicc/IGetOtaStatusCallback;)V
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/euicc/IEuiccService$Stub$Proxy;->retainSubscriptionsForFactoryReset(ILandroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;)V
+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
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_downloadSubscription:I
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_eraseSubscriptions:I
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_getDefaultDownloadableSubscriptionList:I
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_getDownloadableSubscriptionMetadata:I
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_getEid:I
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_getEuiccInfo:I
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_getEuiccProfileInfoList:I
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_getOtaStatus:I
+Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_retainSubscriptionsForFactoryReset:I
+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
+Landroid/service/euicc/IEuiccService;->getDefaultDownloadableSubscriptionList(IZLandroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback;)V
+Landroid/service/euicc/IEuiccService;->getDownloadableSubscriptionMetadata(ILandroid/telephony/euicc/DownloadableSubscription;ZLandroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback;)V
+Landroid/service/euicc/IEuiccService;->getEid(ILandroid/service/euicc/IGetEidCallback;)V
+Landroid/service/euicc/IEuiccService;->getEuiccInfo(ILandroid/service/euicc/IGetEuiccInfoCallback;)V
+Landroid/service/euicc/IEuiccService;->getEuiccProfileInfoList(ILandroid/service/euicc/IGetEuiccProfileInfoListCallback;)V
+Landroid/service/euicc/IEuiccService;->getOtaStatus(ILandroid/service/euicc/IGetOtaStatusCallback;)V
+Landroid/service/euicc/IEuiccService;->retainSubscriptionsForFactoryReset(ILandroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;)V
+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
+Landroid/service/media/IMediaBrowserService$Stub$Proxy;->connect(Ljava/lang/String;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+Landroid/service/media/IMediaBrowserService$Stub$Proxy;->disconnect(Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+Landroid/service/media/IMediaBrowserService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/service/media/IMediaBrowserService$Stub$Proxy;->getMediaItem(Ljava/lang/String;Landroid/os/ResultReceiver;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+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;
+Landroid/service/media/IMediaBrowserService$Stub;->TRANSACTION_addSubscription:I
+Landroid/service/media/IMediaBrowserService$Stub;->TRANSACTION_addSubscriptionDeprecated:I
+Landroid/service/media/IMediaBrowserService$Stub;->TRANSACTION_connect:I
+Landroid/service/media/IMediaBrowserService$Stub;->TRANSACTION_disconnect:I
+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
+Landroid/service/media/IMediaBrowserService;->disconnect(Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+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;
+Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->onConnect(Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/os/Bundle;)V
+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;
+Landroid/service/media/MediaBrowserService$ConnectionRecord;->root:Landroid/service/media/MediaBrowserService$BrowserRoot;
+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
+Landroid/service/media/MediaBrowserService$ServiceBinder;->disconnect(Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+Landroid/service/media/MediaBrowserService$ServiceBinder;->getMediaItem(Ljava/lang/String;Landroid/os/ResultReceiver;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+Landroid/service/media/MediaBrowserService$ServiceBinder;->removeSubscription(Ljava/lang/String;Landroid/os/IBinder;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+Landroid/service/media/MediaBrowserService$ServiceBinder;->removeSubscriptionDeprecated(Ljava/lang/String;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+Landroid/service/media/MediaBrowserService;->addSubscription(Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/IBinder;Landroid/os/Bundle;)V
+Landroid/service/media/MediaBrowserService;->applyOptions(Ljava/util/List;Landroid/os/Bundle;)Ljava/util/List;
+Landroid/service/media/MediaBrowserService;->DBG:Z
+Landroid/service/media/MediaBrowserService;->isValidPackage(Ljava/lang/String;I)Z
+Landroid/service/media/MediaBrowserService;->mBinder:Landroid/service/media/MediaBrowserService$ServiceBinder;
+Landroid/service/media/MediaBrowserService;->mConnections:Landroid/util/ArrayMap;
+Landroid/service/media/MediaBrowserService;->mCurConnection:Landroid/service/media/MediaBrowserService$ConnectionRecord;
+Landroid/service/media/MediaBrowserService;->mHandler:Landroid/os/Handler;
+Landroid/service/media/MediaBrowserService;->mSession:Landroid/media/session/MediaSession$Token;
+Landroid/service/media/MediaBrowserService;->notifyChildrenChangedInternal(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/service/media/MediaBrowserService;->performLoadChildren(Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/Bundle;)V
+Landroid/service/media/MediaBrowserService;->performLoadItem(Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/ResultReceiver;)V
+Landroid/service/media/MediaBrowserService;->removeSubscription(Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/IBinder;)Z
+Landroid/service/media/MediaBrowserService;->RESULT_ERROR:I
+Landroid/service/media/MediaBrowserService;->RESULT_FLAG_ON_LOAD_ITEM_NOT_IMPLEMENTED:I
+Landroid/service/media/MediaBrowserService;->RESULT_FLAG_OPTION_NOT_HANDLED:I
+Landroid/service/media/MediaBrowserService;->RESULT_OK:I
+Landroid/service/media/MediaBrowserService;->TAG:Ljava/lang/String;
+Landroid/service/notification/Adjustment;->KEY_GROUP_KEY:Ljava/lang/String;
+Landroid/service/notification/Adjustment;->mExplanation:Ljava/lang/CharSequence;
+Landroid/service/notification/Adjustment;->mKey:Ljava/lang/String;
+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
+Landroid/service/notification/ConditionProto;->ID:J
+Landroid/service/notification/ConditionProto;->LINE_1:J
+Landroid/service/notification/ConditionProto;->LINE_2:J
+Landroid/service/notification/ConditionProto;->STATE:J
+Landroid/service/notification/ConditionProto;->STATE_ERROR:I
+Landroid/service/notification/ConditionProto;->STATE_FALSE:I
+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
+Landroid/service/notification/ConditionProviderService;->getNotificationInterface()Landroid/app/INotificationManager;
+Landroid/service/notification/ConditionProviderService;->mHandler:Landroid/service/notification/ConditionProviderService$H;
+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;
+Landroid/service/notification/INotificationListener$Stub$Proxy;->onInterruptionFilterChanged(I)V
+Landroid/service/notification/INotificationListener$Stub$Proxy;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V
+Landroid/service/notification/INotificationListener$Stub$Proxy;->onListenerHintsChanged(I)V
+Landroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationChannelGroupModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
+Landroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationChannelModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+Landroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationEnqueued(Landroid/service/notification/IStatusBarNotificationHolder;)V
+Landroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V
+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
+Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onListenerConnected:I
+Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onListenerHintsChanged:I
+Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onNotificationChannelGroupModification:I
+Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onNotificationChannelModification:I
+Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onNotificationEnqueued:I
+Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onNotificationPosted:I
+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
+Landroid/service/notification/INotificationListener;->onNotificationChannelGroupModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
+Landroid/service/notification/INotificationListener;->onNotificationChannelModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+Landroid/service/notification/INotificationListener;->onNotificationEnqueued(Landroid/service/notification/IStatusBarNotificationHolder;)V
+Landroid/service/notification/INotificationListener;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V
+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
+Landroid/service/notification/NotificationListenerService$MyHandler;->MSG_ON_NOTIFICATION_CHANNEL_GROUP_MODIFIED:I
+Landroid/service/notification/NotificationListenerService$MyHandler;->MSG_ON_NOTIFICATION_CHANNEL_MODIFIED:I
+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
+Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationChannelGroupModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
+Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationChannelModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationEnqueued(Landroid/service/notification/IStatusBarNotificationHolder;)V
+Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V
+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
+Landroid/service/notification/NotificationListenerService$Ranking;->mImportance:I
+Landroid/service/notification/NotificationListenerService$Ranking;->mImportanceExplanation:Ljava/lang/CharSequence;
+Landroid/service/notification/NotificationListenerService$Ranking;->mIsAmbient:Z
+Landroid/service/notification/NotificationListenerService$Ranking;->mKey:Ljava/lang/String;
+Landroid/service/notification/NotificationListenerService$Ranking;->mMatchesInterruptionFilter:Z
+Landroid/service/notification/NotificationListenerService$Ranking;->mOverrideGroupKey:Ljava/lang/String;
+Landroid/service/notification/NotificationListenerService$Ranking;->mOverridePeople:Ljava/util/ArrayList;
+Landroid/service/notification/NotificationListenerService$Ranking;->mRank:I
+Landroid/service/notification/NotificationListenerService$Ranking;->mShowBadge:Z
+Landroid/service/notification/NotificationListenerService$Ranking;->mSnoozeCriteria:Ljava/util/ArrayList;
+Landroid/service/notification/NotificationListenerService$Ranking;->mSuppressedVisualEffects:I
+Landroid/service/notification/NotificationListenerService$Ranking;->mUserSentiment:I
+Landroid/service/notification/NotificationListenerService$Ranking;->mVisibilityOverride:I
+Landroid/service/notification/NotificationListenerService$Ranking;->populate(Ljava/lang/String;IZIIILjava/lang/CharSequence;Ljava/lang/String;Landroid/app/NotificationChannel;Ljava/util/ArrayList;Ljava/util/ArrayList;ZIZ)V
+Landroid/service/notification/NotificationListenerService$Ranking;->VISIBILITY_NO_OVERRIDE:I
+Landroid/service/notification/NotificationListenerService$RankingMap;-><init>(Landroid/service/notification/NotificationRankingUpdate;)V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildChannelsLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildHiddenLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildImportanceExplanationLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildImportanceLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildInterceptedSetLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildOverrideGroupKeys()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildOverridePeopleLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildRanksLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildShowBadgeLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildSnoozeCriteriaLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildSuppressedVisualEffectsLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildUserSentimentLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->buildVisibilityOverridesLocked()V
+Landroid/service/notification/NotificationListenerService$RankingMap;->getChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;
+Landroid/service/notification/NotificationListenerService$RankingMap;->getHidden(Ljava/lang/String;)Z
+Landroid/service/notification/NotificationListenerService$RankingMap;->getImportance(Ljava/lang/String;)I
+Landroid/service/notification/NotificationListenerService$RankingMap;->getImportanceExplanation(Ljava/lang/String;)Ljava/lang/String;
+Landroid/service/notification/NotificationListenerService$RankingMap;->getOverrideGroupKey(Ljava/lang/String;)Ljava/lang/String;
+Landroid/service/notification/NotificationListenerService$RankingMap;->getOverridePeople(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/service/notification/NotificationListenerService$RankingMap;->getRank(Ljava/lang/String;)I
+Landroid/service/notification/NotificationListenerService$RankingMap;->getShowBadge(Ljava/lang/String;)Z
+Landroid/service/notification/NotificationListenerService$RankingMap;->getSnoozeCriteria(Ljava/lang/String;)Ljava/util/ArrayList;
+Landroid/service/notification/NotificationListenerService$RankingMap;->getSuppressedVisualEffects(Ljava/lang/String;)I
+Landroid/service/notification/NotificationListenerService$RankingMap;->getUserSentiment(Ljava/lang/String;)I
+Landroid/service/notification/NotificationListenerService$RankingMap;->getVisibilityOverride(Ljava/lang/String;)I
+Landroid/service/notification/NotificationListenerService$RankingMap;->isIntercepted(Ljava/lang/String;)Z
+Landroid/service/notification/NotificationListenerService$RankingMap;->mChannels:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mHidden:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mImportance:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mImportanceExplanation:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mIntercepted:Landroid/util/ArraySet;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mOverrideGroupKeys:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mOverridePeople:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mRankingUpdate:Landroid/service/notification/NotificationRankingUpdate;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mRanks:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mShowBadge:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mSnoozeCriteria:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mSuppressedVisualEffects:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mUserSentiment:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService$RankingMap;->mVisibilityOverrides:Landroid/util/ArrayMap;
+Landroid/service/notification/NotificationListenerService;->applyUpdateLocked(Landroid/service/notification/NotificationRankingUpdate;)V
+Landroid/service/notification/NotificationListenerService;->cleanUpNotificationList(Landroid/content/pm/ParceledListSlice;)[Landroid/service/notification/StatusBarNotification;
+Landroid/service/notification/NotificationListenerService;->createLegacyIconExtras(Landroid/app/Notification;)V
+Landroid/service/notification/NotificationListenerService;->getContext()Landroid/content/Context;
+Landroid/service/notification/NotificationListenerService;->isConnected:Z
+Landroid/service/notification/NotificationListenerService;->maybePopulatePeople(Landroid/app/Notification;)V
+Landroid/service/notification/NotificationListenerService;->maybePopulateRemoteViews(Landroid/app/Notification;)V
+Landroid/service/notification/NotificationListenerService;->mCurrentUser:I
+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;
+Landroid/service/notification/NotificationRankingUpdate;->getChannels()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getHidden()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getImportance()[I
+Landroid/service/notification/NotificationRankingUpdate;->getImportanceExplanation()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getInterceptedKeys()[Ljava/lang/String;
+Landroid/service/notification/NotificationRankingUpdate;->getOrderedKeys()[Ljava/lang/String;
+Landroid/service/notification/NotificationRankingUpdate;->getOverrideGroupKeys()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getOverridePeople()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getShowBadge()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getSnoozeCriteria()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getSuppressedVisualEffects()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getUserSentiment()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->getVisibilityOverrides()Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->mChannels:Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->mHidden:Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->mImportance:[I
+Landroid/service/notification/NotificationRankingUpdate;->mImportanceExplanation:Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->mInterceptedKeys:[Ljava/lang/String;
+Landroid/service/notification/NotificationRankingUpdate;->mKeys:[Ljava/lang/String;
+Landroid/service/notification/NotificationRankingUpdate;->mOverrideGroupKeys:Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->mOverridePeople:Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->mShowBadge:Landroid/os/Bundle;
+Landroid/service/notification/NotificationRankingUpdate;->mSnoozeCriteria:Landroid/os/Bundle;
+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
+Landroid/service/notification/NotificationRecordProto;->CAN_VIBRATE:J
+Landroid/service/notification/NotificationRecordProto;->CHANNEL_ID:J
+Landroid/service/notification/NotificationRecordProto;->ENQUEUED:I
+Landroid/service/notification/NotificationRecordProto;->FLAGS:J
+Landroid/service/notification/NotificationRecordProto;->GROUP_KEY:J
+Landroid/service/notification/NotificationRecordProto;->IMPORTANCE:J
+Landroid/service/notification/NotificationRecordProto;->KEY:J
+Landroid/service/notification/NotificationRecordProto;->POSTED:I
+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
+Landroid/service/notification/NotificationServiceDumpProto;->LISTENER_HINTS:J
+Landroid/service/notification/NotificationServiceDumpProto;->NOTIFICATION_ASSISTANTS:J
+Landroid/service/notification/NotificationServiceDumpProto;->NOTIFICATION_LISTENERS:J
+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
+Landroid/service/notification/NotificationStats;->mInteracted:Z
+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
+Landroid/service/notification/NotifyingApp;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/service/notification/NotifyingApp;->getLastNotified()J
+Landroid/service/notification/NotifyingApp;->getPackage()Ljava/lang/String;
+Landroid/service/notification/NotifyingApp;->getUid()I
+Landroid/service/notification/NotifyingApp;->mLastNotified:J
+Landroid/service/notification/NotifyingApp;->mPkg:Ljava/lang/String;
+Landroid/service/notification/NotifyingApp;->mUid:I
+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
+Landroid/service/notification/RankingHelperProto$RecordProto;->PACKAGE:J
+Landroid/service/notification/RankingHelperProto$RecordProto;->PRIORITY:J
+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
+Landroid/service/notification/ScheduleCalendar;->exitAtAlarm()Z
+Landroid/service/notification/ScheduleCalendar;->getDayOfWeek(J)I
+Landroid/service/notification/ScheduleCalendar;->getNextChangeTime(J)J
+Landroid/service/notification/ScheduleCalendar;->getNextTime(JII)J
+Landroid/service/notification/ScheduleCalendar;->getTime(JII)J
+Landroid/service/notification/ScheduleCalendar;->isAlarmInSchedule(JJ)Z
+Landroid/service/notification/ScheduleCalendar;->isInSchedule(IJJJ)Z
+Landroid/service/notification/ScheduleCalendar;->isInSchedule(J)Z
+Landroid/service/notification/ScheduleCalendar;->maybeSetNextAlarm(JJ)V
+Landroid/service/notification/ScheduleCalendar;->mCalendar:Ljava/util/Calendar;
+Landroid/service/notification/ScheduleCalendar;->mDays:Landroid/util/ArraySet;
+Landroid/service/notification/ScheduleCalendar;->mSchedule:Landroid/service/notification/ZenModeConfig$ScheduleInfo;
+Landroid/service/notification/ScheduleCalendar;->setSchedule(Landroid/service/notification/ZenModeConfig$ScheduleInfo;)V
+Landroid/service/notification/ScheduleCalendar;->setTimeZone(Ljava/util/TimeZone;)V
+Landroid/service/notification/ScheduleCalendar;->shouldExitForAlarm(J)Z
+Landroid/service/notification/ScheduleCalendar;->TAG:Ljava/lang/String;
+Landroid/service/notification/ScheduleCalendar;->updateDays()V
+Landroid/service/notification/SnoozeCriterion;->mConfirmation:Ljava/lang/CharSequence;
+Landroid/service/notification/SnoozeCriterion;->mExplanation:Ljava/lang/CharSequence;
+Landroid/service/notification/SnoozeCriterion;->mId:Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IILandroid/app/Notification;Landroid/os/UserHandle;Ljava/lang/String;J)V
+Landroid/service/notification/StatusBarNotification;->cloneLight()Landroid/service/notification/StatusBarNotification;
+Landroid/service/notification/StatusBarNotification;->getGroup()Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;->groupKey()Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;->groupKey:Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;->isAppGroup()Z
+Landroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;
+Landroid/service/notification/StatusBarNotification;->key:Ljava/lang/String;
+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;
+Landroid/service/notification/ZenModeConfig$EventInfo;->reply:I
+Landroid/service/notification/ZenModeConfig$EventInfo;->REPLY_ANY_EXCEPT_NO:I
+Landroid/service/notification/ZenModeConfig$EventInfo;->REPLY_YES:I
+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
+Landroid/service/notification/ZenModeConfig$ZenRule;->appendDiff(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/service/notification/ZenModeConfig$ZenRule;)V
+Landroid/service/notification/ZenModeConfig$ZenRule;->component:Landroid/content/ComponentName;
+Landroid/service/notification/ZenModeConfig$ZenRule;->condition:Landroid/service/notification/Condition;
+Landroid/service/notification/ZenModeConfig$ZenRule;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/service/notification/ZenModeConfig$ZenRule;->enabler:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig$ZenRule;->id:Ljava/lang/String;
+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
+Landroid/service/notification/ZenModeConfig;->allowCallsFrom:I
+Landroid/service/notification/ZenModeConfig;->allowEvents:Z
+Landroid/service/notification/ZenModeConfig;->allowMedia:Z
+Landroid/service/notification/ZenModeConfig;->allowMessages:Z
+Landroid/service/notification/ZenModeConfig;->allowMessagesFrom:I
+Landroid/service/notification/ZenModeConfig;->allowReminders:Z
+Landroid/service/notification/ZenModeConfig;->allowRepeatCallers:Z
+Landroid/service/notification/ZenModeConfig;->allowSystem:Z
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_ALARMS:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_CALLS:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_CALLS_FROM:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_EVENTS:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_FROM:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_MEDIA:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_MESSAGES:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_MESSAGES_FROM:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_REMINDERS:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_REPEAT_CALLERS:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_SCREEN_OFF:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_SCREEN_ON:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_ATT_SYSTEM:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALLOW_TAG:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->ALL_DAYS:[I
+Landroid/service/notification/ZenModeConfig;->applyNotificationPolicy(Landroid/app/NotificationManager$Policy;)V
+Landroid/service/notification/ZenModeConfig;->areAllPriorityOnlyNotificationZenSoundsMuted(Landroid/app/NotificationManager$Policy;)Z
+Landroid/service/notification/ZenModeConfig;->areAllPriorityOnlyNotificationZenSoundsMuted(Landroid/service/notification/ZenModeConfig;)Z
+Landroid/service/notification/ZenModeConfig;->areAllZenBehaviorSoundsMuted(Landroid/service/notification/ZenModeConfig;)Z
+Landroid/service/notification/ZenModeConfig;->areChannelsBypassingDnd:Z
+Landroid/service/notification/ZenModeConfig;->AUTOMATIC_TAG:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->CONDITION_ATT_FLAGS:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->CONDITION_ATT_ICON:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->CONDITION_ATT_ID:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->CONDITION_ATT_LINE1:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->CONDITION_ATT_LINE2:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->CONDITION_ATT_STATE:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->CONDITION_ATT_SUMMARY:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->copy()Landroid/service/notification/ZenModeConfig;
+Landroid/service/notification/ZenModeConfig;->COUNTDOWN_PATH:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/service/notification/ZenModeConfig;->DAY_MINUTES:I
+Landroid/service/notification/ZenModeConfig;->DEFAULT_ALLOW_ALARMS:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_ALLOW_CALLS:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_ALLOW_EVENTS:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_ALLOW_MEDIA:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_ALLOW_MESSAGES:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_ALLOW_REMINDERS:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_ALLOW_REPEAT_CALLERS:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_ALLOW_SYSTEM:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_CALLS_SOURCE:I
+Landroid/service/notification/ZenModeConfig;->DEFAULT_CHANNELS_BYPASSING_DND:Z
+Landroid/service/notification/ZenModeConfig;->DEFAULT_RULE_IDS:Ljava/util/List;
+Landroid/service/notification/ZenModeConfig;->DEFAULT_SOURCE:I
+Landroid/service/notification/ZenModeConfig;->DEFAULT_SUPPRESSED_VISUAL_EFFECTS:I
+Landroid/service/notification/ZenModeConfig;->diff(Landroid/service/notification/ZenModeConfig;)Landroid/service/notification/ZenModeConfig$Diff;
+Landroid/service/notification/ZenModeConfig;->diff(Landroid/service/notification/ZenModeConfig;Landroid/service/notification/ZenModeConfig;)Landroid/service/notification/ZenModeConfig$Diff;
+Landroid/service/notification/ZenModeConfig;->DISALLOW_ATT_VISUAL_EFFECTS:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->DISALLOW_TAG:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->EVENTS_DEFAULT_RULE_ID:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->EVENT_PATH:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->EVERY_NIGHT_DEFAULT_RULE_ID:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->generateMinuteBuckets()[I
+Landroid/service/notification/ZenModeConfig;->getConditionLine(Landroid/content/Context;Landroid/service/notification/ZenModeConfig;IZZ)Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->getConditionSummary(Landroid/content/Context;Landroid/service/notification/ZenModeConfig;IZ)Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->getDescription(Landroid/content/Context;ZLandroid/service/notification/ZenModeConfig;Z)Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->getEventConditionProvider()Landroid/content/ComponentName;
+Landroid/service/notification/ZenModeConfig;->getFormattedTime(Landroid/content/Context;JZI)Ljava/lang/CharSequence;
+Landroid/service/notification/ZenModeConfig;->getNextAlarm(Landroid/content/Context;)J
+Landroid/service/notification/ZenModeConfig;->getOwnerCaption(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->getScheduleConditionProvider()Landroid/content/ComponentName;
+Landroid/service/notification/ZenModeConfig;->isToday(J)Z
+Landroid/service/notification/ZenModeConfig;->isValid()Z
+Landroid/service/notification/ZenModeConfig;->isValidAutomaticRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+Landroid/service/notification/ZenModeConfig;->isValidCountdownConditionId(Landroid/net/Uri;)Z
+Landroid/service/notification/ZenModeConfig;->isValidCountdownToAlarmConditionId(Landroid/net/Uri;)Z
+Landroid/service/notification/ZenModeConfig;->isValidEventConditionId(Landroid/net/Uri;)Z
+Landroid/service/notification/ZenModeConfig;->isValidHour(I)Z
+Landroid/service/notification/ZenModeConfig;->isValidManualRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+Landroid/service/notification/ZenModeConfig;->isValidMinute(I)Z
+Landroid/service/notification/ZenModeConfig;->isValidScheduleConditionId(Landroid/net/Uri;)Z
+Landroid/service/notification/ZenModeConfig;->isValidSource(I)Z
+Landroid/service/notification/ZenModeConfig;->isZenOverridingRinger(ILandroid/service/notification/ZenModeConfig;)Z
+Landroid/service/notification/ZenModeConfig;->IS_ALARM_PATH:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->manualRule:Landroid/service/notification/ZenModeConfig$ZenRule;
+Landroid/service/notification/ZenModeConfig;->MANUAL_TAG:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->MAX_SOURCE:I
+Landroid/service/notification/ZenModeConfig;->MINUTES_MS:I
+Landroid/service/notification/ZenModeConfig;->MINUTE_BUCKETS:[I
+Landroid/service/notification/ZenModeConfig;->newRuleId()Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->parseAutomaticRuleEndTime(Landroid/content/Context;Landroid/net/Uri;)J
+Landroid/service/notification/ZenModeConfig;->prioritySendersToSource(II)I
+Landroid/service/notification/ZenModeConfig;->readConditionXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/Condition;
+Landroid/service/notification/ZenModeConfig;->readRuleXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/ZenModeConfig$ZenRule;
+Landroid/service/notification/ZenModeConfig;->readXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/ZenModeConfig;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_COMPONENT:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_CONDITION_ID:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_CREATION_TIME:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_ENABLED:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_ENABLER:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_ID:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_NAME:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_SNOOZING:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->RULE_ATT_ZEN:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->safeBoolean(Ljava/lang/String;Z)Z
+Landroid/service/notification/ZenModeConfig;->safeBoolean(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+Landroid/service/notification/ZenModeConfig;->safeComponentName(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/content/ComponentName;
+Landroid/service/notification/ZenModeConfig;->safeInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+Landroid/service/notification/ZenModeConfig;->safeLong(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
+Landroid/service/notification/ZenModeConfig;->safeUri(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/service/notification/ZenModeConfig;->sameCondition(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+Landroid/service/notification/ZenModeConfig;->SCHEDULE_PATH:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->SECONDS_MS:I
+Landroid/service/notification/ZenModeConfig;->sourceToPrioritySenders(II)I
+Landroid/service/notification/ZenModeConfig;->sourceToString(I)Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->SOURCE_ANYONE:I
+Landroid/service/notification/ZenModeConfig;->SOURCE_CONTACT:I
+Landroid/service/notification/ZenModeConfig;->SOURCE_STAR:I
+Landroid/service/notification/ZenModeConfig;->STATE_ATT_CHANNELS_BYPASSING_DND:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->STATE_TAG:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->suppressedVisualEffects:I
+Landroid/service/notification/ZenModeConfig;->SYSTEM_AUTHORITY:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->TAG:Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->toCountdownConditionId(JZ)Landroid/net/Uri;
+Landroid/service/notification/ZenModeConfig;->toDayList([I)Ljava/lang/String;
+Landroid/service/notification/ZenModeConfig;->toEventConditionId(Landroid/service/notification/ZenModeConfig$EventInfo;)Landroid/net/Uri;
+Landroid/service/notification/ZenModeConfig;->toNextAlarmCondition(Landroid/content/Context;JI)Landroid/service/notification/Condition;
+Landroid/service/notification/ZenModeConfig;->toNotificationPolicy()Landroid/app/NotificationManager$Policy;
+Landroid/service/notification/ZenModeConfig;->toScheduleCalendar(Landroid/net/Uri;)Landroid/service/notification/ScheduleCalendar;
+Landroid/service/notification/ZenModeConfig;->toScheduleConditionId(Landroid/service/notification/ZenModeConfig$ScheduleInfo;)Landroid/net/Uri;
+Landroid/service/notification/ZenModeConfig;->toTimeCondition(Landroid/content/Context;II)Landroid/service/notification/Condition;
+Landroid/service/notification/ZenModeConfig;->toTimeCondition(Landroid/content/Context;IIZ)Landroid/service/notification/Condition;
+Landroid/service/notification/ZenModeConfig;->toTimeCondition(Landroid/content/Context;JIIZ)Landroid/service/notification/Condition;
+Landroid/service/notification/ZenModeConfig;->tryParseCountdownConditionId(Landroid/net/Uri;)J
+Landroid/service/notification/ZenModeConfig;->tryParseDayList(Ljava/lang/String;Ljava/lang/String;)[I
+Landroid/service/notification/ZenModeConfig;->tryParseEventConditionId(Landroid/net/Uri;)Landroid/service/notification/ZenModeConfig$EventInfo;
+Landroid/service/notification/ZenModeConfig;->tryParseHourAndMinute(Ljava/lang/String;)[I
+Landroid/service/notification/ZenModeConfig;->tryParseInt(Ljava/lang/String;I)I
+Landroid/service/notification/ZenModeConfig;->tryParseLong(Ljava/lang/String;J)J
+Landroid/service/notification/ZenModeConfig;->tryParseZenMode(Ljava/lang/String;I)I
+Landroid/service/notification/ZenModeConfig;->unsafeBoolean(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Boolean;
+Landroid/service/notification/ZenModeConfig;->user:I
+Landroid/service/notification/ZenModeConfig;->version:I
+Landroid/service/notification/ZenModeConfig;->writeConditionXml(Landroid/service/notification/Condition;Lorg/xmlpull/v1/XmlSerializer;)V
+Landroid/service/notification/ZenModeConfig;->writeRuleXml(Landroid/service/notification/ZenModeConfig$ZenRule;Lorg/xmlpull/v1/XmlSerializer;)V
+Landroid/service/notification/ZenModeConfig;->writeXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/Integer;)V
+Landroid/service/notification/ZenModeConfig;->XML_VERSION:I
+Landroid/service/notification/ZenModeConfig;->ZEN_ATT_USER:Ljava/lang/String;
+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
+Landroid/service/notification/ZenRuleProto;->CONDITION_ID:J
+Landroid/service/notification/ZenRuleProto;->CREATION_TIME_MS:J
+Landroid/service/notification/ZenRuleProto;->ENABLED:J
+Landroid/service/notification/ZenRuleProto;->ENABLER:J
+Landroid/service/notification/ZenRuleProto;->ID:J
+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
+Landroid/service/oemlock/IOemLockService$Stub$Proxy;->isOemUnlockAllowed()Z
+Landroid/service/oemlock/IOemLockService$Stub$Proxy;->isOemUnlockAllowedByCarrier()Z
+Landroid/service/oemlock/IOemLockService$Stub$Proxy;->isOemUnlockAllowedByUser()Z
+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;
+Landroid/service/oemlock/IOemLockService$Stub;->TRANSACTION_isDeviceOemUnlocked:I
+Landroid/service/oemlock/IOemLockService$Stub;->TRANSACTION_isOemUnlockAllowed:I
+Landroid/service/oemlock/IOemLockService$Stub;->TRANSACTION_isOemUnlockAllowedByCarrier:I
+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
+Landroid/service/oemlock/IOemLockService;->isOemUnlockAllowedByUser()Z
+Landroid/service/oemlock/IOemLockService;->setOemUnlockAllowedByCarrier(Z[B)V
+Landroid/service/oemlock/IOemLockService;->setOemUnlockAllowedByUser(Z)V
+Landroid/service/oemlock/OemLockManager;-><init>(Landroid/service/oemlock/IOemLockService;)V
+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
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getMaximumDataBlockSize()J
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getOemUnlockEnabled()Z
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->hasFrpCredentialHandle()Z
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->read()[B
+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
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_getFlashLockState:I
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_getMaximumDataBlockSize:I
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_getOemUnlockEnabled:I
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_hasFrpCredentialHandle:I
+Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_read:I
+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
+Landroid/service/persistentdata/IPersistentDataBlockService;->getOemUnlockEnabled()Z
+Landroid/service/persistentdata/IPersistentDataBlockService;->hasFrpCredentialHandle()Z
+Landroid/service/persistentdata/IPersistentDataBlockService;->read()[B
+Landroid/service/persistentdata/IPersistentDataBlockService;->setOemUnlockEnabled(Z)V
+Landroid/service/persistentdata/IPersistentDataBlockService;->wipe()V
+Landroid/service/persistentdata/IPersistentDataBlockService;->write([B)I
+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;
+Landroid/service/quicksettings/IQSService$Stub$Proxy;->isLocked()Z
+Landroid/service/quicksettings/IQSService$Stub$Proxy;->isSecure()Z
+Landroid/service/quicksettings/IQSService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/quicksettings/IQSService$Stub$Proxy;->onDialogHidden(Landroid/os/IBinder;)V
+Landroid/service/quicksettings/IQSService$Stub$Proxy;->onShowDialog(Landroid/os/IBinder;)V
+Landroid/service/quicksettings/IQSService$Stub$Proxy;->onStartActivity(Landroid/os/IBinder;)V
+Landroid/service/quicksettings/IQSService$Stub$Proxy;->onStartSuccessful(Landroid/os/IBinder;)V
+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;
+Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_getTile:I
+Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_isLocked:I
+Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_isSecure:I
+Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_onDialogHidden:I
+Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_onShowDialog:I
+Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_onStartActivity:I
+Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_onStartSuccessful:I
+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
+Landroid/service/quicksettings/IQSService;->onDialogHidden(Landroid/os/IBinder;)V
+Landroid/service/quicksettings/IQSService;->onShowDialog(Landroid/os/IBinder;)V
+Landroid/service/quicksettings/IQSService;->onStartActivity(Landroid/os/IBinder;)V
+Landroid/service/quicksettings/IQSService;->onStartSuccessful(Landroid/os/IBinder;)V
+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;
+Landroid/service/quicksettings/IQSTileService$Stub$Proxy;->onClick(Landroid/os/IBinder;)V
+Landroid/service/quicksettings/IQSTileService$Stub$Proxy;->onStartListening()V
+Landroid/service/quicksettings/IQSTileService$Stub$Proxy;->onStopListening()V
+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;
+Landroid/service/quicksettings/IQSTileService$Stub;->TRANSACTION_onClick:I
+Landroid/service/quicksettings/IQSTileService$Stub;->TRANSACTION_onStartListening:I
+Landroid/service/quicksettings/IQSTileService$Stub;->TRANSACTION_onStopListening:I
+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
+Landroid/service/quicksettings/IQSTileService;->onTileAdded()V
+Landroid/service/quicksettings/IQSTileService;->onTileRemoved()V
+Landroid/service/quicksettings/IQSTileService;->onUnlockComplete()V
+Landroid/service/quicksettings/Tile;-><init>()V
+Landroid/service/quicksettings/Tile;-><init>(Landroid/os/Parcel;)V
+Landroid/service/quicksettings/Tile;->mContentDescription:Ljava/lang/CharSequence;
+Landroid/service/quicksettings/Tile;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/service/quicksettings/Tile;->mLabel:Ljava/lang/CharSequence;
+Landroid/service/quicksettings/Tile;->mService:Landroid/service/quicksettings/IQSService;
+Landroid/service/quicksettings/Tile;->mState:I
+Landroid/service/quicksettings/Tile;->mToken:Landroid/os/IBinder;
+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
+Landroid/service/quicksettings/TileService$H;->MSG_TILE_ADDED:I
+Landroid/service/quicksettings/TileService$H;->MSG_TILE_CLICKED:I
+Landroid/service/quicksettings/TileService$H;->MSG_TILE_REMOVED:I
+Landroid/service/quicksettings/TileService$H;->MSG_UNLOCK_COMPLETE:I
+Landroid/service/quicksettings/TileService;->ACTION_REQUEST_LISTENING:Ljava/lang/String;
+Landroid/service/quicksettings/TileService;->EXTRA_SERVICE:Ljava/lang/String;
+Landroid/service/quicksettings/TileService;->EXTRA_STATE:Ljava/lang/String;
+Landroid/service/quicksettings/TileService;->EXTRA_TOKEN:Ljava/lang/String;
+Landroid/service/quicksettings/TileService;->mHandler:Landroid/service/quicksettings/TileService$H;
+Landroid/service/quicksettings/TileService;->mListening:Z
+Landroid/service/quicksettings/TileService;->mService:Landroid/service/quicksettings/IQSService;
+Landroid/service/quicksettings/TileService;->mTile:Landroid/service/quicksettings/Tile;
+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
+Landroid/service/resolver/ResolverRankerService;->HANDLER_THREAD_NAME:Ljava/lang/String;
+Landroid/service/resolver/ResolverRankerService;->mHandler:Landroid/os/Handler;
+Landroid/service/resolver/ResolverRankerService;->mHandlerThread:Landroid/os/HandlerThread;
+Landroid/service/resolver/ResolverRankerService;->mWrapper:Landroid/service/resolver/ResolverRankerService$ResolverRankerServiceWrapper;
+Landroid/service/resolver/ResolverRankerService;->sendResult(Ljava/util/List;Landroid/service/resolver/IResolverRankerResult;)V
+Landroid/service/resolver/ResolverRankerService;->TAG:Ljava/lang/String;
+Landroid/service/resolver/ResolverTarget;-><init>(Landroid/os/Parcel;)V
+Landroid/service/resolver/ResolverTarget;->mChooserScore:F
+Landroid/service/resolver/ResolverTarget;->mLaunchScore:F
+Landroid/service/resolver/ResolverTarget;->mRecencyScore:F
+Landroid/service/resolver/ResolverTarget;->mSelectProbability:F
+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
+Landroid/service/settings/suggestions/Suggestion$Builder;->mFlags:I
+Landroid/service/settings/suggestions/Suggestion$Builder;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/service/settings/suggestions/Suggestion$Builder;->mId:Ljava/lang/String;
+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
+Landroid/service/settings/suggestions/Suggestion;->mFlags:I
+Landroid/service/settings/suggestions/Suggestion;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/service/settings/suggestions/Suggestion;->mId:Ljava/lang/String;
+Landroid/service/settings/suggestions/Suggestion;->mPendingIntent:Landroid/app/PendingIntent;
+Landroid/service/settings/suggestions/Suggestion;->mSummary:Ljava/lang/CharSequence;
+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;
+Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onClassifyText(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassificationCallback;)V
+Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onCreateTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
+Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onDestroyTextClassificationSession(Landroid/view/textclassifier/TextClassificationSessionId;)V
+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;
+Landroid/service/textclassifier/ITextClassifierService$Stub;->TRANSACTION_onClassifyText:I
+Landroid/service/textclassifier/ITextClassifierService$Stub;->TRANSACTION_onCreateTextClassificationSession:I
+Landroid/service/textclassifier/ITextClassifierService$Stub;->TRANSACTION_onDestroyTextClassificationSession:I
+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;
+Landroid/service/textclassifier/TextClassifierService;->LOG_TAG:Ljava/lang/String;
+Landroid/service/textclassifier/TextClassifierService;->mBinder:Landroid/service/textclassifier/ITextClassifierService$Stub;
+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;
+Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->mBundle:Landroid/os/Bundle;
+Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->mListener:Lcom/android/internal/textservice/ISpellCheckerSessionListener;
+Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->mLocale:Ljava/lang/String;
+Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->mSession:Landroid/service/textservice/SpellCheckerService$Session;
+Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->onCancel()V
+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;
+Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter;->getSplitWords(Landroid/view/textservice/TextInfo;)Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceTextInfoParams;
+Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter;->mWordIterator:Landroid/text/method/WordIterator;
+Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter;->reconstructSuggestions(Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceTextInfoParams;[Landroid/view/textservice/SuggestionsInfo;)Landroid/view/textservice/SentenceSuggestionsInfo;
+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;
+Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onConfigure(Ljava/util/List;Landroid/os/IBinder;)V
+Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onDeviceLocked()V
+Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onDeviceUnlocked()V
+Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onEscrowTokenAdded([BJLandroid/os/UserHandle;)V
+Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onEscrowTokenRemoved(JZ)V
+Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onTokenStateReceived(JI)V
+Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onTrustTimeout()V
+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;
+Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onConfigure:I
+Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onDeviceLocked:I
+Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onDeviceUnlocked:I
+Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onEscrowTokenAdded:I
+Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onEscrowTokenRemoved:I
+Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onTokenStateReceived:I
+Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onTrustTimeout:I
+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
+Landroid/service/trust/ITrustAgentService;->onEscrowTokenAdded([BJLandroid/os/UserHandle;)V
+Landroid/service/trust/ITrustAgentService;->onEscrowTokenRemoved(JZ)V
+Landroid/service/trust/ITrustAgentService;->onTokenStateReceived(JI)V
+Landroid/service/trust/ITrustAgentService;->onTrustTimeout()V
+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;
+Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->grantTrust(Ljava/lang/CharSequence;JI)V
+Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->isEscrowTokenActive(JI)V
+Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->onConfigureCompleted(ZLandroid/os/IBinder;)V
+Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->removeEscrowToken(JI)V
+Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->revokeTrust()V
+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;
+Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_addEscrowToken:I
+Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_grantTrust:I
+Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_isEscrowTokenActive:I
+Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_onConfigureCompleted:I
+Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_removeEscrowToken:I
+Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_revokeTrust:I
+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
+Landroid/service/trust/ITrustAgentServiceCallback;->onConfigureCompleted(ZLandroid/os/IBinder;)V
+Landroid/service/trust/ITrustAgentServiceCallback;->removeEscrowToken(JI)V
+Landroid/service/trust/ITrustAgentServiceCallback;->revokeTrust()V
+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
+Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onEscrowTokenAdded([BJLandroid/os/UserHandle;)V
+Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onEscrowTokenRemoved(JZ)V
+Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onTokenStateReceived(JI)V
+Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onTrustTimeout()V
+Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onUnlockAttempt(Z)V
+Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onUnlockLockout(I)V
+Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->setCallback(Landroid/service/trust/ITrustAgentServiceCallback;)V
+Landroid/service/trust/TrustAgentService;->DEBUG:Z
+Landroid/service/trust/TrustAgentService;->EXTRA_TOKEN:Ljava/lang/String;
+Landroid/service/trust/TrustAgentService;->EXTRA_TOKEN_HANDLE:Ljava/lang/String;
+Landroid/service/trust/TrustAgentService;->EXTRA_TOKEN_REMOVED_RESULT:Ljava/lang/String;
+Landroid/service/trust/TrustAgentService;->EXTRA_TOKEN_STATE:Ljava/lang/String;
+Landroid/service/trust/TrustAgentService;->EXTRA_USER_HANDLE:Ljava/lang/String;
+Landroid/service/trust/TrustAgentService;->mCallback:Landroid/service/trust/ITrustAgentServiceCallback;
+Landroid/service/trust/TrustAgentService;->mHandler:Landroid/os/Handler;
+Landroid/service/trust/TrustAgentService;->mLock:Ljava/lang/Object;
+Landroid/service/trust/TrustAgentService;->mManagingTrust:Z
+Landroid/service/trust/TrustAgentService;->mPendingGrantTrustTask:Ljava/lang/Runnable;
+Landroid/service/trust/TrustAgentService;->MSG_CONFIGURE:I
+Landroid/service/trust/TrustAgentService;->MSG_DEVICE_LOCKED:I
+Landroid/service/trust/TrustAgentService;->MSG_DEVICE_UNLOCKED:I
+Landroid/service/trust/TrustAgentService;->MSG_ESCROW_TOKEN_ADDED:I
+Landroid/service/trust/TrustAgentService;->MSG_ESCROW_TOKEN_REMOVED:I
+Landroid/service/trust/TrustAgentService;->MSG_ESCROW_TOKEN_STATE_RECEIVED:I
+Landroid/service/trust/TrustAgentService;->MSG_TRUST_TIMEOUT:I
+Landroid/service/trust/TrustAgentService;->MSG_UNLOCK_ATTEMPT:I
+Landroid/service/trust/TrustAgentService;->MSG_UNLOCK_LOCKOUT:I
+Landroid/service/trust/TrustAgentService;->onError(Ljava/lang/String;)V
+Landroid/service/trust/TrustAgentService;->TAG:Ljava/lang/String;
+Landroid/service/voice/AlwaysOnHotwordDetector$EventPayload;-><init>(ZZLandroid/media/AudioFormat;I[B)V
+Landroid/service/voice/AlwaysOnHotwordDetector$EventPayload;->mAudioFormat:Landroid/media/AudioFormat;
+Landroid/service/voice/AlwaysOnHotwordDetector$EventPayload;->mCaptureAvailable:Z
+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
+Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;->onGenericSoundTriggerDetected(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
+Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;->onKeyphraseDetected(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
+Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;->onRecognitionPaused()V
+Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;->onRecognitionResumed()V
+Landroid/service/voice/AlwaysOnHotwordDetector;-><init>(Ljava/lang/String;Ljava/util/Locale;Landroid/service/voice/AlwaysOnHotwordDetector$Callback;Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;Landroid/service/voice/IVoiceInteractionService;Lcom/android/internal/app/IVoiceInteractionManagerService;)V
+Landroid/service/voice/AlwaysOnHotwordDetector;->DBG:Z
+Landroid/service/voice/AlwaysOnHotwordDetector;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+Landroid/service/voice/AlwaysOnHotwordDetector;->getManageIntentLocked(I)Landroid/content/Intent;
+Landroid/service/voice/AlwaysOnHotwordDetector;->getSupportedRecognitionModesLocked()I
+Landroid/service/voice/AlwaysOnHotwordDetector;->invalidate()V
+Landroid/service/voice/AlwaysOnHotwordDetector;->MANAGE_ACTION_ENROLL:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->MANAGE_ACTION_RE_ENROLL:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->MANAGE_ACTION_UN_ENROLL:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->mAvailability:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->mExternalCallback:Landroid/service/voice/AlwaysOnHotwordDetector$Callback;
+Landroid/service/voice/AlwaysOnHotwordDetector;->mHandler:Landroid/os/Handler;
+Landroid/service/voice/AlwaysOnHotwordDetector;->mInternalCallback:Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;
+Landroid/service/voice/AlwaysOnHotwordDetector;->mKeyphraseEnrollmentInfo:Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
+Landroid/service/voice/AlwaysOnHotwordDetector;->mKeyphraseMetadata:Landroid/hardware/soundtrigger/KeyphraseMetadata;
+Landroid/service/voice/AlwaysOnHotwordDetector;->mLocale:Ljava/util/Locale;
+Landroid/service/voice/AlwaysOnHotwordDetector;->mLock:Ljava/lang/Object;
+Landroid/service/voice/AlwaysOnHotwordDetector;->mModelManagementService:Lcom/android/internal/app/IVoiceInteractionManagerService;
+Landroid/service/voice/AlwaysOnHotwordDetector;->MSG_AVAILABILITY_CHANGED:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->MSG_DETECTION_ERROR:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->MSG_DETECTION_PAUSE:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->MSG_DETECTION_RESUME:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->MSG_HOTWORD_DETECTED:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->mText:Ljava/lang/String;
+Landroid/service/voice/AlwaysOnHotwordDetector;->mVoiceInteractionService:Landroid/service/voice/IVoiceInteractionService;
+Landroid/service/voice/AlwaysOnHotwordDetector;->notifyStateChangedLocked()V
+Landroid/service/voice/AlwaysOnHotwordDetector;->onSoundModelsChanged()V
+Landroid/service/voice/AlwaysOnHotwordDetector;->RECOGNITION_FLAG_NONE:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->startRecognitionLocked(I)I
+Landroid/service/voice/AlwaysOnHotwordDetector;->STATE_INVALID:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->STATE_NOT_READY:I
+Landroid/service/voice/AlwaysOnHotwordDetector;->STATUS_ERROR:I
+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
+Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/service/voice/IVoiceInteractionService$Stub;->TRANSACTION_launchVoiceAssistFromKeyguard:I
+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
+Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->handleAssist(Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;II)V
+Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->handleScreenshot(Landroid/graphics/Bitmap;)V
+Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->hide()V
+Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->onLockscreenShown()V
+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;
+Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_closeSystemDialogs:I
+Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_destroy:I
+Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_handleAssist:I
+Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_handleScreenshot:I
+Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_hide:I
+Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_onLockscreenShown:I
+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
+Landroid/service/voice/IVoiceInteractionSession;->handleScreenshot(Landroid/graphics/Bitmap;)V
+Landroid/service/voice/IVoiceInteractionSession;->hide()V
+Landroid/service/voice/IVoiceInteractionSession;->onLockscreenShown()V
+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;
+Landroid/service/voice/VoiceInteractionService;->mInterface:Landroid/service/voice/IVoiceInteractionService;
+Landroid/service/voice/VoiceInteractionService;->mKeyphraseEnrollmentInfo:Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
+Landroid/service/voice/VoiceInteractionService;->mLock:Ljava/lang/Object;
+Landroid/service/voice/VoiceInteractionService;->MSG_LAUNCH_VOICE_ASSIST_FROM_KEYGUARD:I
+Landroid/service/voice/VoiceInteractionService;->MSG_READY:I
+Landroid/service/voice/VoiceInteractionService;->MSG_SHUTDOWN:I
+Landroid/service/voice/VoiceInteractionService;->MSG_SOUND_MODELS_CHANGED:I
+Landroid/service/voice/VoiceInteractionService;->mSystemService:Lcom/android/internal/app/IVoiceInteractionManagerService;
+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
+Landroid/service/voice/VoiceInteractionServiceInfo;->getParseError()Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionServiceInfo;->getRecognitionService()Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+Landroid/service/voice/VoiceInteractionServiceInfo;->getServiceInfoOrThrow(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
+Landroid/service/voice/VoiceInteractionServiceInfo;->getSessionService()Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionServiceInfo;->getSettingsActivity()Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionServiceInfo;->getSupportsAssist()Z
+Landroid/service/voice/VoiceInteractionServiceInfo;->getSupportsLaunchFromKeyguard()Z
+Landroid/service/voice/VoiceInteractionServiceInfo;->getSupportsLocalInteraction()Z
+Landroid/service/voice/VoiceInteractionServiceInfo;->mParseError:Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionServiceInfo;->mRecognitionService:Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionServiceInfo;->mServiceInfo:Landroid/content/pm/ServiceInfo;
+Landroid/service/voice/VoiceInteractionServiceInfo;->mSessionService:Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionServiceInfo;->mSettingsActivity:Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionServiceInfo;->mSupportsAssist:Z
+Landroid/service/voice/VoiceInteractionServiceInfo;->mSupportsLaunchFromKeyguard:Z
+Landroid/service/voice/VoiceInteractionServiceInfo;->mSupportsLocalInteraction:Z
+Landroid/service/voice/VoiceInteractionServiceInfo;->TAG:Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionSession$AbortVoiceRequest;-><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$AbortVoiceRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/service/voice/VoiceInteractionSession$AbortVoiceRequest;->mPrompt:Landroid/app/VoiceInteractor$Prompt;
+Landroid/service/voice/VoiceInteractionSession$CommandRequest;-><init>(Ljava/lang/String;ILcom/android/internal/app/IVoiceInteractorCallback;Landroid/service/voice/VoiceInteractionSession;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/service/voice/VoiceInteractionSession$CommandRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/service/voice/VoiceInteractionSession$CommandRequest;->mCommand:Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionSession$CommandRequest;->sendCommandResult(ZLandroid/os/Bundle;)V
+Landroid/service/voice/VoiceInteractionSession$CompleteVoiceRequest;-><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$CompleteVoiceRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/service/voice/VoiceInteractionSession$CompleteVoiceRequest;->mPrompt:Landroid/app/VoiceInteractor$Prompt;
+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
+Landroid/service/voice/VoiceInteractionSession$PickOptionRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/service/voice/VoiceInteractionSession$PickOptionRequest;->mOptions:[Landroid/app/VoiceInteractor$PickOptionRequest$Option;
+Landroid/service/voice/VoiceInteractionSession$PickOptionRequest;->mPrompt:Landroid/app/VoiceInteractor$Prompt;
+Landroid/service/voice/VoiceInteractionSession$PickOptionRequest;->sendPickOptionResult(Z[Landroid/app/VoiceInteractor$PickOptionRequest$Option;Landroid/os/Bundle;)V
+Landroid/service/voice/VoiceInteractionSession$Request;-><init>(Ljava/lang/String;ILcom/android/internal/app/IVoiceInteractorCallback;Landroid/service/voice/VoiceInteractionSession;Landroid/os/Bundle;)V
+Landroid/service/voice/VoiceInteractionSession$Request;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/service/voice/VoiceInteractionSession$Request;->finishRequest()V
+Landroid/service/voice/VoiceInteractionSession$Request;->mCallback:Lcom/android/internal/app/IVoiceInteractorCallback;
+Landroid/service/voice/VoiceInteractionSession$Request;->mCallingPackage:Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionSession$Request;->mCallingUid:I
+Landroid/service/voice/VoiceInteractionSession$Request;->mExtras:Landroid/os/Bundle;
+Landroid/service/voice/VoiceInteractionSession$Request;->mInterface:Lcom/android/internal/app/IVoiceInteractorRequest;
+Landroid/service/voice/VoiceInteractionSession$Request;->mSession:Ljava/lang/ref/WeakReference;
+Landroid/service/voice/VoiceInteractionSession;->addRequest(Landroid/service/voice/VoiceInteractionSession$Request;)V
+Landroid/service/voice/VoiceInteractionSession;->DEBUG:Z
+Landroid/service/voice/VoiceInteractionSession;->doCreate(Lcom/android/internal/app/IVoiceInteractionManagerService;Landroid/os/IBinder;)V
+Landroid/service/voice/VoiceInteractionSession;->doDestroy()V
+Landroid/service/voice/VoiceInteractionSession;->doHide()V
+Landroid/service/voice/VoiceInteractionSession;->doOnCreate()V
+Landroid/service/voice/VoiceInteractionSession;->doOnHandleAssist(Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Ljava/lang/Throwable;Landroid/app/assist/AssistContent;)V
+Landroid/service/voice/VoiceInteractionSession;->doOnHandleAssistSecondary(Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Ljava/lang/Throwable;Landroid/app/assist/AssistContent;II)V
+Landroid/service/voice/VoiceInteractionSession;->doShow(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;)V
+Landroid/service/voice/VoiceInteractionSession;->ensureWindowAdded()V
+Landroid/service/voice/VoiceInteractionSession;->ensureWindowCreated()V
+Landroid/service/voice/VoiceInteractionSession;->ensureWindowHidden()V
+Landroid/service/voice/VoiceInteractionSession;->isRequestActive(Landroid/os/IBinder;)Z
+Landroid/service/voice/VoiceInteractionSession;->mActiveRequests:Landroid/util/ArrayMap;
+Landroid/service/voice/VoiceInteractionSession;->mCallbacks:Landroid/service/voice/VoiceInteractionSession$MyCallbacks;
+Landroid/service/voice/VoiceInteractionSession;->mContentFrame:Landroid/widget/FrameLayout;
+Landroid/service/voice/VoiceInteractionSession;->mContext:Landroid/content/Context;
+Landroid/service/voice/VoiceInteractionSession;->mDispatcherState:Landroid/view/KeyEvent$DispatcherState;
+Landroid/service/voice/VoiceInteractionSession;->mHandlerCaller:Lcom/android/internal/os/HandlerCaller;
+Landroid/service/voice/VoiceInteractionSession;->mInflater:Landroid/view/LayoutInflater;
+Landroid/service/voice/VoiceInteractionSession;->mInitialized:Z
+Landroid/service/voice/VoiceInteractionSession;->mInsetsComputer:Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;
+Landroid/service/voice/VoiceInteractionSession;->mInShowWindow:Z
+Landroid/service/voice/VoiceInteractionSession;->mInteractor:Lcom/android/internal/app/IVoiceInteractor;
+Landroid/service/voice/VoiceInteractionSession;->mRootView:Landroid/view/View;
+Landroid/service/voice/VoiceInteractionSession;->mSession:Landroid/service/voice/IVoiceInteractionSession;
+Landroid/service/voice/VoiceInteractionSession;->MSG_CANCEL:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_CLOSE_SYSTEM_DIALOGS:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_DESTROY:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_HANDLE_ASSIST:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_HANDLE_SCREENSHOT:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_HIDE:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_ON_LOCKSCREEN_SHOWN:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_SHOW:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_START_ABORT_VOICE:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_START_COMMAND:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_START_COMPLETE_VOICE:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_START_CONFIRMATION:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_START_PICK_OPTION:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_SUPPORTS_COMMANDS:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_TASK_FINISHED:I
+Landroid/service/voice/VoiceInteractionSession;->MSG_TASK_STARTED:I
+Landroid/service/voice/VoiceInteractionSession;->mSystemService:Lcom/android/internal/app/IVoiceInteractionManagerService;
+Landroid/service/voice/VoiceInteractionSession;->mTheme:I
+Landroid/service/voice/VoiceInteractionSession;->mThemeAttrs:Landroid/content/res/TypedArray;
+Landroid/service/voice/VoiceInteractionSession;->mTmpInsets:Landroid/service/voice/VoiceInteractionSession$Insets;
+Landroid/service/voice/VoiceInteractionSession;->mToken:Landroid/os/IBinder;
+Landroid/service/voice/VoiceInteractionSession;->mUiEnabled:Z
+Landroid/service/voice/VoiceInteractionSession;->mWeakRef:Ljava/lang/ref/WeakReference;
+Landroid/service/voice/VoiceInteractionSession;->mWindow:Landroid/inputmethodservice/SoftInputWindow;
+Landroid/service/voice/VoiceInteractionSession;->mWindowAdded:Z
+Landroid/service/voice/VoiceInteractionSession;->mWindowVisible:Z
+Landroid/service/voice/VoiceInteractionSession;->mWindowWasVisible:Z
+Landroid/service/voice/VoiceInteractionSession;->removeRequest(Landroid/os/IBinder;)Landroid/service/voice/VoiceInteractionSession$Request;
+Landroid/service/voice/VoiceInteractionSession;->TAG:Ljava/lang/String;
+Landroid/service/voice/VoiceInteractionSessionService;->doNewSession(Landroid/os/IBinder;Landroid/os/Bundle;I)V
+Landroid/service/voice/VoiceInteractionSessionService;->mHandlerCaller:Lcom/android/internal/os/HandlerCaller;
+Landroid/service/voice/VoiceInteractionSessionService;->mHandlerCallerCallback:Lcom/android/internal/os/HandlerCaller$Callback;
+Landroid/service/voice/VoiceInteractionSessionService;->mInterface:Landroid/service/voice/IVoiceInteractionSessionService;
+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
+Landroid/service/vr/IVrManager$Stub$Proxy;->getVr2dDisplayId()I
+Landroid/service/vr/IVrManager$Stub$Proxy;->getVrModeState()Z
+Landroid/service/vr/IVrManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/vr/IVrManager$Stub$Proxy;->registerListener(Landroid/service/vr/IVrStateCallbacks;)V
+Landroid/service/vr/IVrManager$Stub$Proxy;->registerPersistentVrStateListener(Landroid/service/vr/IPersistentVrStateCallbacks;)V
+Landroid/service/vr/IVrManager$Stub$Proxy;->setAndBindCompositor(Ljava/lang/String;)V
+Landroid/service/vr/IVrManager$Stub$Proxy;->setPersistentVrModeEnabled(Z)V
+Landroid/service/vr/IVrManager$Stub$Proxy;->setStandbyEnabled(Z)V
+Landroid/service/vr/IVrManager$Stub$Proxy;->setVr2dDisplayProperties(Landroid/app/Vr2dDisplayProperties;)V
+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
+Landroid/service/vr/IVrManager$Stub;->TRANSACTION_getVr2dDisplayId:I
+Landroid/service/vr/IVrManager$Stub;->TRANSACTION_getVrModeState:I
+Landroid/service/vr/IVrManager$Stub;->TRANSACTION_registerListener:I
+Landroid/service/vr/IVrManager$Stub;->TRANSACTION_registerPersistentVrStateListener:I
+Landroid/service/vr/IVrManager$Stub;->TRANSACTION_setAndBindCompositor:I
+Landroid/service/vr/IVrManager$Stub;->TRANSACTION_setPersistentVrModeEnabled:I
+Landroid/service/vr/IVrManager$Stub;->TRANSACTION_setStandbyEnabled:I
+Landroid/service/vr/IVrManager$Stub;->TRANSACTION_setVr2dDisplayProperties:I
+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
+Landroid/service/vr/IVrManager;->setAndBindCompositor(Ljava/lang/String;)V
+Landroid/service/vr/IVrManager;->setPersistentVrModeEnabled(Z)V
+Landroid/service/vr/IVrManager;->setStandbyEnabled(Z)V
+Landroid/service/vr/IVrManager;->setVr2dDisplayProperties(Landroid/app/Vr2dDisplayProperties;)V
+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
+Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+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
+Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->dispatchWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;)V
+Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->requestWallpaperColors()V
+Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->setDesiredSize(II)V
+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;
+Landroid/service/wallpaper/IWallpaperEngine$Stub;->TRANSACTION_destroy:I
+Landroid/service/wallpaper/IWallpaperEngine$Stub;->TRANSACTION_dispatchPointer:I
+Landroid/service/wallpaper/IWallpaperEngine$Stub;->TRANSACTION_dispatchWallpaperCommand:I
+Landroid/service/wallpaper/IWallpaperEngine$Stub;->TRANSACTION_requestWallpaperColors:I
+Landroid/service/wallpaper/IWallpaperEngine$Stub;->TRANSACTION_setDesiredSize:I
+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
+Landroid/service/wallpaper/WallpaperService$Engine;->doAmbientModeChanged(ZZ)V
+Landroid/service/wallpaper/WallpaperService$Engine;->doCommand(Landroid/service/wallpaper/WallpaperService$WallpaperCommand;)V
+Landroid/service/wallpaper/WallpaperService$Engine;->doDesiredSizeChanged(II)V
+Landroid/service/wallpaper/WallpaperService$Engine;->doDisplayPaddingChanged(Landroid/graphics/Rect;)V
+Landroid/service/wallpaper/WallpaperService$Engine;->doOffsetsChanged(Z)V
+Landroid/service/wallpaper/WallpaperService$Engine;->doVisibilityChanged(Z)V
+Landroid/service/wallpaper/WallpaperService$Engine;->isInAmbientMode()Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mBackdropFrame:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mCaller:Lcom/android/internal/os/HandlerCaller;
+Landroid/service/wallpaper/WallpaperService$Engine;->mClockFunction:Ljava/util/function/Supplier;
+Landroid/service/wallpaper/WallpaperService$Engine;->mConnection:Landroid/service/wallpaper/IWallpaperConnection;
+Landroid/service/wallpaper/WallpaperService$Engine;->mContentInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mCreated:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mCurHeight:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mCurWidth:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mCurWindowFlags:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mCurWindowPrivateFlags:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mDestroyed:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mDispatchedContentInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDispatchedDisplayCutout:Landroid/view/DisplayCutout;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDispatchedOutsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDispatchedOverscanInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDispatchedStableInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDisplay:Landroid/view/Display;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDisplayCutout:Landroid/view/DisplayCutout$ParcelableWrapper;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDisplayListener:Landroid/hardware/display/DisplayManager$DisplayListener;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDisplayManager:Landroid/hardware/display/DisplayManager;
+Landroid/service/wallpaper/WallpaperService$Engine;->mDisplayState:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mDrawingAllowed:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mFinalStableInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mFinalSystemInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mFixedSizeAllowed:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mFormat:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mHandler:Landroid/os/Handler;
+Landroid/service/wallpaper/WallpaperService$Engine;->mHeight:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mInitializing:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mInputChannel:Landroid/view/InputChannel;
+Landroid/service/wallpaper/WallpaperService$Engine;->mInputEventReceiver:Landroid/service/wallpaper/WallpaperService$Engine$WallpaperInputEventReceiver;
+Landroid/service/wallpaper/WallpaperService$Engine;->mIsCreating:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mIsInAmbientMode:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mIWallpaperEngine:Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;
+Landroid/service/wallpaper/WallpaperService$Engine;->mLastColorInvalidation:J
+Landroid/service/wallpaper/WallpaperService$Engine;->mLayout:Landroid/view/WindowManager$LayoutParams;
+Landroid/service/wallpaper/WallpaperService$Engine;->mLock:Ljava/lang/Object;
+Landroid/service/wallpaper/WallpaperService$Engine;->mMergedConfiguration:Landroid/util/MergedConfiguration;
+Landroid/service/wallpaper/WallpaperService$Engine;->mNotifyColorsChanged:Ljava/lang/Runnable;
+Landroid/service/wallpaper/WallpaperService$Engine;->mOffsetMessageEnqueued:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mOffsetsChanged:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mOutsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mOverscanInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mPendingMove:Landroid/view/MotionEvent;
+Landroid/service/wallpaper/WallpaperService$Engine;->mPendingSync:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mPendingXOffsetStep:F
+Landroid/service/wallpaper/WallpaperService$Engine;->mPendingYOffset:F
+Landroid/service/wallpaper/WallpaperService$Engine;->mPendingYOffsetStep:F
+Landroid/service/wallpaper/WallpaperService$Engine;->mReportedVisible:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mSession:Landroid/view/IWindowSession;
+Landroid/service/wallpaper/WallpaperService$Engine;->mStableInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mSurfaceCreated:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mSurfaceHolder:Lcom/android/internal/view/BaseSurfaceHolder;
+Landroid/service/wallpaper/WallpaperService$Engine;->mType:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mVisible:Z
+Landroid/service/wallpaper/WallpaperService$Engine;->mVisibleInsets:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->mWidth:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mWindow:Lcom/android/internal/view/BaseIWindow;
+Landroid/service/wallpaper/WallpaperService$Engine;->mWindowFlags:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mWindowPrivateFlags:I
+Landroid/service/wallpaper/WallpaperService$Engine;->mWindowToken:Landroid/os/IBinder;
+Landroid/service/wallpaper/WallpaperService$Engine;->mWinFrame:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$Engine;->onAmbientModeChanged(ZZ)V
+Landroid/service/wallpaper/WallpaperService$Engine;->reportSurfaceDestroyed()V
+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
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->executeMessage(Landroid/os/Message;)V
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mCaller:Lcom/android/internal/os/HandlerCaller;
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mConnection:Landroid/service/wallpaper/IWallpaperConnection;
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mDisplayPadding:Landroid/graphics/Rect;
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mEngine:Landroid/service/wallpaper/WallpaperService$Engine;
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mIsPreview:Z
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mReqHeight:I
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mReqWidth:I
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mShownReported:Z
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mWindowToken:Landroid/os/IBinder;
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->mWindowType:I
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->reportShown()V
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->requestWallpaperColors()V
+Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->setDesiredSize(II)V
+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;
+Landroid/service/wallpaper/WallpaperService$WallpaperCommand;->sync:Z
+Landroid/service/wallpaper/WallpaperService$WallpaperCommand;->x:I
+Landroid/service/wallpaper/WallpaperService$WallpaperCommand;->y:I
+Landroid/service/wallpaper/WallpaperService$WallpaperCommand;->z:I
+Landroid/service/wallpaper/WallpaperService;->DEBUG:Z
+Landroid/service/wallpaper/WallpaperService;->DO_ATTACH:I
+Landroid/service/wallpaper/WallpaperService;->DO_DETACH:I
+Landroid/service/wallpaper/WallpaperService;->DO_IN_AMBIENT_MODE:I
+Landroid/service/wallpaper/WallpaperService;->DO_SET_DESIRED_SIZE:I
+Landroid/service/wallpaper/WallpaperService;->DO_SET_DISPLAY_PADDING:I
+Landroid/service/wallpaper/WallpaperService;->mActiveEngines:Ljava/util/ArrayList;
+Landroid/service/wallpaper/WallpaperService;->MSG_REQUEST_WALLPAPER_COLORS:I
+Landroid/service/wallpaper/WallpaperService;->MSG_TOUCH_EVENT:I
+Landroid/service/wallpaper/WallpaperService;->MSG_UPDATE_SURFACE:I
+Landroid/service/wallpaper/WallpaperService;->MSG_VISIBILITY_CHANGED:I
+Landroid/service/wallpaper/WallpaperService;->MSG_WALLPAPER_COMMAND:I
+Landroid/service/wallpaper/WallpaperService;->MSG_WALLPAPER_OFFSETS:I
+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;
+Landroid/speech/IRecognitionListener$Stub$Proxy;->onBeginningOfSpeech()V
+Landroid/speech/IRecognitionListener$Stub$Proxy;->onBufferReceived([B)V
+Landroid/speech/IRecognitionListener$Stub$Proxy;->onEndOfSpeech()V
+Landroid/speech/IRecognitionListener$Stub$Proxy;->onError(I)V
+Landroid/speech/IRecognitionListener$Stub$Proxy;->onEvent(ILandroid/os/Bundle;)V
+Landroid/speech/IRecognitionListener$Stub$Proxy;->onPartialResults(Landroid/os/Bundle;)V
+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;
+Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onBeginningOfSpeech:I
+Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onBufferReceived:I
+Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onEndOfSpeech:I
+Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onError:I
+Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onEvent:I
+Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onPartialResults:I
+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
+Landroid/speech/IRecognitionListener;->onError(I)V
+Landroid/speech/IRecognitionListener;->onPartialResults(Landroid/os/Bundle;)V
+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;
+Landroid/speech/RecognitionService;->checkPermissions(Landroid/speech/IRecognitionListener;)Z
+Landroid/speech/RecognitionService;->DBG:Z
+Landroid/speech/RecognitionService;->dispatchCancel(Landroid/speech/IRecognitionListener;)V
+Landroid/speech/RecognitionService;->dispatchClearCallback()V
+Landroid/speech/RecognitionService;->dispatchStartListening(Landroid/content/Intent;Landroid/speech/IRecognitionListener;I)V
+Landroid/speech/RecognitionService;->dispatchStopListening(Landroid/speech/IRecognitionListener;)V
+Landroid/speech/RecognitionService;->mBinder:Landroid/speech/RecognitionService$RecognitionServiceBinder;
+Landroid/speech/RecognitionService;->mCurrentCallback:Landroid/speech/RecognitionService$Callback;
+Landroid/speech/RecognitionService;->mHandler:Landroid/os/Handler;
+Landroid/speech/RecognitionService;->MSG_CANCEL:I
+Landroid/speech/RecognitionService;->MSG_RESET:I
+Landroid/speech/RecognitionService;->MSG_START_LISTENING:I
+Landroid/speech/RecognitionService;->MSG_STOP_LISTENING:I
+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;
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_BEGINNING_OF_SPEECH:I
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_BUFFER_RECEIVED:I
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_END_OF_SPEECH:I
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_ERROR:I
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_ON_EVENT:I
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_PARTIAL_RESULTS:I
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_READY_FOR_SPEECH:I
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_RESULTS:I
+Landroid/speech/SpeechRecognizer$InternalListener;->MSG_RMS_CHANGED:I
+Landroid/speech/SpeechRecognizer$InternalListener;->onBeginningOfSpeech()V
+Landroid/speech/SpeechRecognizer$InternalListener;->onBufferReceived([B)V
+Landroid/speech/SpeechRecognizer$InternalListener;->onEndOfSpeech()V
+Landroid/speech/SpeechRecognizer$InternalListener;->onError(I)V
+Landroid/speech/SpeechRecognizer$InternalListener;->onEvent(ILandroid/os/Bundle;)V
+Landroid/speech/SpeechRecognizer$InternalListener;->onPartialResults(Landroid/os/Bundle;)V
+Landroid/speech/SpeechRecognizer$InternalListener;->onReadyForSpeech(Landroid/os/Bundle;)V
+Landroid/speech/SpeechRecognizer$InternalListener;->onResults(Landroid/os/Bundle;)V
+Landroid/speech/SpeechRecognizer$InternalListener;->onRmsChanged(F)V
+Landroid/speech/SpeechRecognizer;-><init>(Landroid/content/Context;Landroid/content/ComponentName;)V
+Landroid/speech/SpeechRecognizer;->checkIsCalledFromMainThread()V
+Landroid/speech/SpeechRecognizer;->checkOpenConnection()Z
+Landroid/speech/SpeechRecognizer;->DBG:Z
+Landroid/speech/SpeechRecognizer;->handleCancelMessage()V
+Landroid/speech/SpeechRecognizer;->handleChangeListener(Landroid/speech/RecognitionListener;)V
+Landroid/speech/SpeechRecognizer;->handleStartListening(Landroid/content/Intent;)V
+Landroid/speech/SpeechRecognizer;->handleStopMessage()V
+Landroid/speech/SpeechRecognizer;->mConnection:Landroid/speech/SpeechRecognizer$Connection;
+Landroid/speech/SpeechRecognizer;->mContext:Landroid/content/Context;
+Landroid/speech/SpeechRecognizer;->mHandler:Landroid/os/Handler;
+Landroid/speech/SpeechRecognizer;->mListener:Landroid/speech/SpeechRecognizer$InternalListener;
+Landroid/speech/SpeechRecognizer;->mPendingTasks:Ljava/util/Queue;
+Landroid/speech/SpeechRecognizer;->mService:Landroid/speech/IRecognitionService;
+Landroid/speech/SpeechRecognizer;->mServiceComponent:Landroid/content/ComponentName;
+Landroid/speech/SpeechRecognizer;->MSG_CANCEL:I
+Landroid/speech/SpeechRecognizer;->MSG_CHANGE_LISTENER:I
+Landroid/speech/SpeechRecognizer;->MSG_START:I
+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
+Landroid/speech/tts/AbstractEventLogger;->mCallerPid:I
+Landroid/speech/tts/AbstractEventLogger;->mCallerUid:I
+Landroid/speech/tts/AbstractEventLogger;->mEngineCompleteTime:J
+Landroid/speech/tts/AbstractEventLogger;->mEngineStartTime:J
+Landroid/speech/tts/AbstractEventLogger;->mLogWritten:Z
+Landroid/speech/tts/AbstractEventLogger;->mPlaybackStartTime:J
+Landroid/speech/tts/AbstractEventLogger;->mReceivedTime:J
+Landroid/speech/tts/AbstractEventLogger;->mRequestProcessingStartTime:J
+Landroid/speech/tts/AbstractEventLogger;->mServiceApp:Ljava/lang/String;
+Landroid/speech/tts/AbstractEventLogger;->onAudioDataWritten()V
+Landroid/speech/tts/AbstractEventLogger;->onCompleted(I)V
+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
+Landroid/speech/tts/AudioPlaybackHandler;->isSpeaking()Z
+Landroid/speech/tts/AudioPlaybackHandler;->mCurrentWorkItem:Landroid/speech/tts/PlaybackQueueItem;
+Landroid/speech/tts/AudioPlaybackHandler;->mHandlerThread:Ljava/lang/Thread;
+Landroid/speech/tts/AudioPlaybackHandler;->mQueue:Ljava/util/concurrent/LinkedBlockingQueue;
+Landroid/speech/tts/AudioPlaybackHandler;->quit()V
+Landroid/speech/tts/AudioPlaybackHandler;->removeAllMessages()V
+Landroid/speech/tts/AudioPlaybackHandler;->removeWorkItemsFor(Ljava/lang/Object;)V
+Landroid/speech/tts/AudioPlaybackHandler;->start()V
+Landroid/speech/tts/AudioPlaybackHandler;->stop()V
+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
+Landroid/speech/tts/AudioPlaybackQueueItem;->mAudioParams:Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
+Landroid/speech/tts/AudioPlaybackQueueItem;->mContext:Landroid/content/Context;
+Landroid/speech/tts/AudioPlaybackQueueItem;->mDone:Landroid/os/ConditionVariable;
+Landroid/speech/tts/AudioPlaybackQueueItem;->mFinished:Z
+Landroid/speech/tts/AudioPlaybackQueueItem;->mPlayer:Landroid/media/MediaPlayer;
+Landroid/speech/tts/AudioPlaybackQueueItem;->mUri:Landroid/net/Uri;
+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
+Landroid/speech/tts/EventLogTags;->TTS_V2_SPEAK_FAILURE:I
+Landroid/speech/tts/EventLogTags;->TTS_V2_SPEAK_SUCCESS:I
+Landroid/speech/tts/EventLogTags;->writeTtsSpeakFailure(Ljava/lang/String;IIILjava/lang/String;II)V
+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;
+Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->onAudioAvailable(Ljava/lang/String;[B)V
+Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->onBeginSynthesis(Ljava/lang/String;III)V
+Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->onError(Ljava/lang/String;I)V
+Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->onRangeStart(Ljava/lang/String;III)V
+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;
+Landroid/speech/tts/ITextToSpeechCallback$Stub;->TRANSACTION_onAudioAvailable:I
+Landroid/speech/tts/ITextToSpeechCallback$Stub;->TRANSACTION_onBeginSynthesis:I
+Landroid/speech/tts/ITextToSpeechCallback$Stub;->TRANSACTION_onError:I
+Landroid/speech/tts/ITextToSpeechCallback$Stub;->TRANSACTION_onRangeStart:I
+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
+Landroid/speech/tts/ITextToSpeechCallback;->onRangeStart(Ljava/lang/String;III)V
+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;
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getFeaturesForLanguage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getLanguage()[Ljava/lang/String;
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getVoices()Ljava/util/List;
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->isLanguageAvailable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->isSpeaking()Z
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->loadLanguage(Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->loadVoice(Landroid/os/IBinder;Ljava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->playAudio(Landroid/os/IBinder;Landroid/net/Uri;ILandroid/os/Bundle;Ljava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->playSilence(Landroid/os/IBinder;JILjava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->setCallback(Landroid/os/IBinder;Landroid/speech/tts/ITextToSpeechCallback;)V
+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;
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_getClientDefaultLanguage:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_getDefaultVoiceNameFor:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_getFeaturesForLanguage:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_getLanguage:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_getVoices:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_isLanguageAvailable:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_isSpeaking:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_loadLanguage:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_loadVoice:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_playAudio:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_playSilence:I
+Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_setCallback:I
+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;
+Landroid/speech/tts/ITextToSpeechService;->getLanguage()[Ljava/lang/String;
+Landroid/speech/tts/ITextToSpeechService;->getVoices()Ljava/util/List;
+Landroid/speech/tts/ITextToSpeechService;->isLanguageAvailable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService;->isSpeaking()Z
+Landroid/speech/tts/ITextToSpeechService;->loadLanguage(Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService;->loadVoice(Landroid/os/IBinder;Ljava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService;->playAudio(Landroid/os/IBinder;Landroid/net/Uri;ILandroid/os/Bundle;Ljava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService;->playSilence(Landroid/os/IBinder;JILjava/lang/String;)I
+Landroid/speech/tts/ITextToSpeechService;->setCallback(Landroid/os/IBinder;Landroid/speech/tts/ITextToSpeechCallback;)V
+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;
+Landroid/speech/tts/SynthesisRequest;->mParams:Landroid/os/Bundle;
+Landroid/speech/tts/SynthesisRequest;->mPitch:I
+Landroid/speech/tts/SynthesisRequest;->mSpeechRate:I
+Landroid/speech/tts/SynthesisRequest;->mText:Ljava/lang/CharSequence;
+Landroid/speech/tts/SynthesisRequest;->mVariant:Ljava/lang/String;
+Landroid/speech/tts/SynthesisRequest;->mVoiceName:Ljava/lang/String;
+Landroid/speech/tts/SynthesisRequest;->setCallerUid(I)V
+Landroid/speech/tts/SynthesisRequest;->setLanguage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+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;
+Landroid/speech/tts/TextToSpeech$Connection;->isEstablished()Z
+Landroid/speech/tts/TextToSpeech$Connection;->mCallback:Landroid/speech/tts/ITextToSpeechCallback$Stub;
+Landroid/speech/tts/TextToSpeech$Connection;->mEstablished:Z
+Landroid/speech/tts/TextToSpeech$Connection;->mOnSetupConnectionAsyncTask:Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;
+Landroid/speech/tts/TextToSpeech$Connection;->mService:Landroid/speech/tts/ITextToSpeechService;
+Landroid/speech/tts/TextToSpeech$Connection;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object;
+Landroid/speech/tts/TextToSpeech$Engine;->DEFAULT_ENGINE:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech$Engine;->DEFAULT_PAN:F
+Landroid/speech/tts/TextToSpeech$Engine;->DEFAULT_PITCH:I
+Landroid/speech/tts/TextToSpeech$Engine;->DEFAULT_RATE:I
+Landroid/speech/tts/TextToSpeech$Engine;->DEFAULT_VOLUME:F
+Landroid/speech/tts/TextToSpeech$Engine;->KEY_PARAM_AUDIO_ATTRIBUTES:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech$Engine;->KEY_PARAM_COUNTRY:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech$Engine;->KEY_PARAM_ENGINE:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech$Engine;->KEY_PARAM_LANGUAGE:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech$Engine;->KEY_PARAM_PITCH:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech$Engine;->KEY_PARAM_RATE:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech$Engine;->KEY_PARAM_VARIANT:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech$Engine;->KEY_PARAM_VOICE_NAME:Ljava/lang/String;
+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;
+Landroid/speech/tts/TextToSpeech;->copyFloatParam(Landroid/os/Bundle;Ljava/util/HashMap;Ljava/lang/String;)V
+Landroid/speech/tts/TextToSpeech;->copyIntParam(Landroid/os/Bundle;Ljava/util/HashMap;Ljava/lang/String;)V
+Landroid/speech/tts/TextToSpeech;->copyStringParam(Landroid/os/Bundle;Ljava/util/HashMap;Ljava/lang/String;)V
+Landroid/speech/tts/TextToSpeech;->dispatchOnInit(I)V
+Landroid/speech/tts/TextToSpeech;->getCallerIdentity()Landroid/os/IBinder;
+Landroid/speech/tts/TextToSpeech;->getParams(Landroid/os/Bundle;)Landroid/os/Bundle;
+Landroid/speech/tts/TextToSpeech;->getVoice(Landroid/speech/tts/ITextToSpeechService;Ljava/lang/String;)Landroid/speech/tts/Voice;
+Landroid/speech/tts/TextToSpeech;->initTts()I
+Landroid/speech/tts/TextToSpeech;->makeResourceUri(Ljava/lang/String;I)Landroid/net/Uri;
+Landroid/speech/tts/TextToSpeech;->mContext:Landroid/content/Context;
+Landroid/speech/tts/TextToSpeech;->mEarcons:Ljava/util/Map;
+Landroid/speech/tts/TextToSpeech;->mEnginesHelper:Landroid/speech/tts/TtsEngines;
+Landroid/speech/tts/TextToSpeech;->mParams:Landroid/os/Bundle;
+Landroid/speech/tts/TextToSpeech;->mRequestedEngine:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech;->mServiceConnection:Landroid/speech/tts/TextToSpeech$Connection;
+Landroid/speech/tts/TextToSpeech;->mStartLock:Ljava/lang/Object;
+Landroid/speech/tts/TextToSpeech;->mUseFallback:Z
+Landroid/speech/tts/TextToSpeech;->mUtteranceProgressListener:Landroid/speech/tts/UtteranceProgressListener;
+Landroid/speech/tts/TextToSpeech;->mUtterances:Ljava/util/Map;
+Landroid/speech/tts/TextToSpeech;->QUEUE_DESTROY:I
+Landroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
+Landroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object;
+Landroid/speech/tts/TextToSpeech;->runActionNoReconnect(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/Object;
+Landroid/speech/tts/TextToSpeech;->TAG:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeech;->verifyBooleanBundleParam(Landroid/os/Bundle;Ljava/lang/String;)Z
+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;
+Landroid/speech/tts/TextToSpeechService$AudioOutputParams;->mAudioAttributes:Landroid/media/AudioAttributes;
+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
+Landroid/speech/tts/TextToSpeechService$CallbackMap;->dispatchOnRangeStart(Ljava/lang/Object;Ljava/lang/String;III)V
+Landroid/speech/tts/TextToSpeechService$CallbackMap;->dispatchOnStart(Ljava/lang/Object;Ljava/lang/String;)V
+Landroid/speech/tts/TextToSpeechService$CallbackMap;->dispatchOnStop(Ljava/lang/Object;Ljava/lang/String;Z)V
+Landroid/speech/tts/TextToSpeechService$CallbackMap;->dispatchOnSuccess(Ljava/lang/Object;Ljava/lang/String;)V
+Landroid/speech/tts/TextToSpeechService$CallbackMap;->getCallbackFor(Ljava/lang/Object;)Landroid/speech/tts/ITextToSpeechCallback;
+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
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->isStarted()Z
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->isStopped()Z
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->isValid()Z
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->mCallerIdentity:Ljava/lang/Object;
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->mCallerPid:I
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->mCallerUid:I
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->mStarted:Z
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->mStopped:Z
+Landroid/speech/tts/TextToSpeechService$SpeechItem;->play()V
+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;
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->getText()Ljava/lang/CharSequence;
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->getVariant()Ljava/lang/String;
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->getVoiceName()Ljava/lang/String;
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->isValid()Z
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->mCallerUid:I
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->mDefaultLocale:[Ljava/lang/String;
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->mEventLogger:Landroid/speech/tts/EventLogger;
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->mSynthesisCallback:Landroid/speech/tts/AbstractSynthesisCallback;
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->mSynthesisRequest:Landroid/speech/tts/SynthesisRequest;
+Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->mText:Ljava/lang/CharSequence;
+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;
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->isFlushed(Landroid/speech/tts/TextToSpeechService$SpeechItem;)Z
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->isSpeaking()Z
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->maybeRemoveCurrentSpeechItem(Ljava/lang/Object;)Landroid/speech/tts/TextToSpeechService$SpeechItem;
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->mCurrentSpeechItem:Landroid/speech/tts/TextToSpeechService$SpeechItem;
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->mFlushAll:I
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->mFlushedObjects:Ljava/util/List;
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->quit()V
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->removeCurrentSpeechItem()Landroid/speech/tts/TextToSpeechService$SpeechItem;
+Landroid/speech/tts/TextToSpeechService$SynthHandler;->setCurrentSpeechItem(Landroid/speech/tts/TextToSpeechService$SpeechItem;)Z
+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
+Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;->dispatchOnRangeStart(III)V
+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
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->dispatchOnRangeStart(III)V
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->dispatchOnStart()V
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->dispatchOnStop()V
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->dispatchOnSuccess()V
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->getFloatParam(Landroid/os/Bundle;Ljava/lang/String;F)F
+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
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;->getUtteranceId()Ljava/lang/String;
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;->hasLanguage()Z
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;->mParams:Landroid/os/Bundle;
+Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;->mUtteranceId:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeechService;->DBG:Z
+Landroid/speech/tts/TextToSpeechService;->getDefaultPitch()I
+Landroid/speech/tts/TextToSpeechService;->getDefaultSpeechRate()I
+Landroid/speech/tts/TextToSpeechService;->getExpectedLanguageAvailableStatus(Ljava/util/Locale;)I
+Landroid/speech/tts/TextToSpeechService;->getSecureSettingInt(Ljava/lang/String;I)I
+Landroid/speech/tts/TextToSpeechService;->getSettingsLocale()[Ljava/lang/String;
+Landroid/speech/tts/TextToSpeechService;->mAudioPlaybackHandler:Landroid/speech/tts/AudioPlaybackHandler;
+Landroid/speech/tts/TextToSpeechService;->mBinder:Landroid/speech/tts/ITextToSpeechService$Stub;
+Landroid/speech/tts/TextToSpeechService;->mCallbacks:Landroid/speech/tts/TextToSpeechService$CallbackMap;
+Landroid/speech/tts/TextToSpeechService;->mEngineHelper:Landroid/speech/tts/TtsEngines;
+Landroid/speech/tts/TextToSpeechService;->mPackageName:Ljava/lang/String;
+Landroid/speech/tts/TextToSpeechService;->mSynthHandler:Landroid/speech/tts/TextToSpeechService$SynthHandler;
+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;
+Landroid/speech/tts/TtsEngines;->getEngineInfo(Ljava/lang/String;)Landroid/speech/tts/TextToSpeech$EngineInfo;
+Landroid/speech/tts/TtsEngines;->getHighestRankedEngineName()Ljava/lang/String;
+Landroid/speech/tts/TtsEngines;->getLocalePrefForEngine(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Locale;
+Landroid/speech/tts/TtsEngines;->isEngineInstalled(Ljava/lang/String;)Z
+Landroid/speech/tts/TtsEngines;->isLocaleSetToDefaultForEngine(Ljava/lang/String;)Z
+Landroid/speech/tts/TtsEngines;->isSystemEngine(Landroid/content/pm/ServiceInfo;)Z
+Landroid/speech/tts/TtsEngines;->LOCALE_DELIMITER_NEW:Ljava/lang/String;
+Landroid/speech/tts/TtsEngines;->LOCALE_DELIMITER_OLD:Ljava/lang/String;
+Landroid/speech/tts/TtsEngines;->mContext:Landroid/content/Context;
+Landroid/speech/tts/TtsEngines;->parseEnginePrefFromList(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/speech/tts/TtsEngines;->settingsActivityFromServiceInfo(Landroid/content/pm/ServiceInfo;Landroid/content/pm/PackageManager;)Ljava/lang/String;
+Landroid/speech/tts/TtsEngines;->sNormalizeCountry:Ljava/util/Map;
+Landroid/speech/tts/TtsEngines;->sNormalizeLanguage:Ljava/util/Map;
+Landroid/speech/tts/TtsEngines;->TAG:Ljava/lang/String;
+Landroid/speech/tts/TtsEngines;->toOldLocaleStringFormat(Ljava/util/Locale;)[Ljava/lang/String;
+Landroid/speech/tts/TtsEngines;->updateValueInCommaSeparatedList(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/speech/tts/TtsEngines;->XML_TAG_NAME:Ljava/lang/String;
+Landroid/speech/tts/UtteranceProgressListener;->from(Landroid/speech/tts/TextToSpeech$OnUtteranceCompletedListener;)Landroid/speech/tts/UtteranceProgressListener;
+Landroid/speech/tts/Voice;-><init>(Landroid/os/Parcel;)V
+Landroid/speech/tts/Voice;->mFeatures:Ljava/util/Set;
+Landroid/speech/tts/Voice;->mLatency:I
+Landroid/speech/tts/Voice;->mLocale:Ljava/util/Locale;
+Landroid/speech/tts/Voice;->mName:Ljava/lang/String;
+Landroid/speech/tts/Voice;->mQuality:I
+Landroid/speech/tts/Voice;->mRequiresNetworkConnection:Z
+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
+Landroid/system/NetlinkSocketAddress;->getPortId()I
+Landroid/system/NetlinkSocketAddress;->nlGroupsMask:I
+Landroid/system/NetlinkSocketAddress;->nlPortId:I
+Landroid/system/Os;-><init>()V
+Landroid/system/Os;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor;
+Landroid/system/Os;->android_getaddrinfo(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress;
+Landroid/system/Os;->capget(Landroid/system/StructCapUserHeader;)[Landroid/system/StructCapUserData;
+Landroid/system/Os;->capset(Landroid/system/StructCapUserHeader;[Landroid/system/StructCapUserData;)V
+Landroid/system/Os;->fcntlFlock(Ljava/io/FileDescriptor;ILandroid/system/StructFlock;)I
+Landroid/system/Os;->fcntlInt(Ljava/io/FileDescriptor;II)I
+Landroid/system/Os;->fcntlVoid(Ljava/io/FileDescriptor;I)I
+Landroid/system/Os;->getifaddrs()[Landroid/system/StructIfaddrs;
+Landroid/system/Os;->getnameinfo(Ljava/net/InetAddress;I)Ljava/lang/String;
+Landroid/system/Os;->getpgid(I)I
+Landroid/system/Os;->getpwnam(Ljava/lang/String;)Landroid/system/StructPasswd;
+Landroid/system/Os;->getpwuid(I)Landroid/system/StructPasswd;
+Landroid/system/Os;->getrlimit(I)Landroid/system/StructRlimit;
+Landroid/system/Os;->getsockoptByte(Ljava/io/FileDescriptor;II)I
+Landroid/system/Os;->getsockoptInAddr(Ljava/io/FileDescriptor;II)Ljava/net/InetAddress;
+Landroid/system/Os;->getsockoptInt(Ljava/io/FileDescriptor;II)I
+Landroid/system/Os;->getsockoptLinger(Ljava/io/FileDescriptor;II)Landroid/system/StructLinger;
+Landroid/system/Os;->getsockoptTimeval(Ljava/io/FileDescriptor;II)Landroid/system/StructTimeval;
+Landroid/system/Os;->getsockoptUcred(Ljava/io/FileDescriptor;II)Landroid/system/StructUcred;
+Landroid/system/Os;->ioctlInetAddress(Ljava/io/FileDescriptor;ILjava/lang/String;)Ljava/net/InetAddress;
+Landroid/system/Os;->ioctlInt(Ljava/io/FileDescriptor;ILandroid/system/Int32Ref;)I
+Landroid/system/Os;->pipe2(I)[Ljava/io/FileDescriptor;
+Landroid/system/Os;->realpath(Ljava/lang/String;)Ljava/lang/String;
+Landroid/system/Os;->setpgid(II)V
+Landroid/system/Os;->setregid(II)V
+Landroid/system/Os;->setreuid(II)V
+Landroid/system/Os;->setsockoptByte(Ljava/io/FileDescriptor;III)V
+Landroid/system/Os;->setsockoptGroupReq(Ljava/io/FileDescriptor;IILandroid/system/StructGroupReq;)V
+Landroid/system/Os;->setsockoptIpMreqn(Ljava/io/FileDescriptor;III)V
+Landroid/system/Os;->setsockoptLinger(Ljava/io/FileDescriptor;IILandroid/system/StructLinger;)V
+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
+Landroid/system/StructAddrinfo;->ai_flags:I
+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;
+Landroid/system/StructIfaddrs;->ifa_broadaddr:Ljava/net/InetAddress;
+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
+Landroid/telecom/Call$Details;->CAPABILITY_UNUSED_1:I
+Landroid/telecom/Call$Details;->createFromParcelableCall(Landroid/telecom/ParcelableCall;)Landroid/telecom/Call$Details;
+Landroid/telecom/Call$Details;->getSupportedAudioRoutes()I
+Landroid/telecom/Call$Details;->getTelecomCallId()Ljava/lang/String;
+Landroid/telecom/Call$Details;->mAccountHandle:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/Call$Details;->mCallCapabilities:I
+Landroid/telecom/Call$Details;->mCallerDisplayName:Ljava/lang/String;
+Landroid/telecom/Call$Details;->mCallerDisplayNamePresentation:I
+Landroid/telecom/Call$Details;->mCallProperties:I
+Landroid/telecom/Call$Details;->mConnectTimeMillis:J
+Landroid/telecom/Call$Details;->mCreationTimeMillis:J
+Landroid/telecom/Call$Details;->mDisconnectCause:Landroid/telecom/DisconnectCause;
+Landroid/telecom/Call$Details;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/Call$Details;->mGatewayInfo:Landroid/telecom/GatewayInfo;
+Landroid/telecom/Call$Details;->mHandle:Landroid/net/Uri;
+Landroid/telecom/Call$Details;->mHandlePresentation:I
+Landroid/telecom/Call$Details;->mIntentExtras:Landroid/os/Bundle;
+Landroid/telecom/Call$Details;->mStatusHints:Landroid/telecom/StatusHints;
+Landroid/telecom/Call$Details;->mSupportedAudioRoutes:I
+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;
+Landroid/telecom/Call$RttCall;->mReadBuffer:[C
+Landroid/telecom/Call$RttCall;->mReceiveStream:Ljava/io/InputStreamReader;
+Landroid/telecom/Call$RttCall;->mRttMode:I
+Landroid/telecom/Call$RttCall;->mTelecomCallId:Ljava/lang/String;
+Landroid/telecom/Call$RttCall;->mTransmitStream:Ljava/io/OutputStreamWriter;
+Landroid/telecom/Call$RttCall;->READ_BUFFER_SIZE:I
+Landroid/telecom/Call$RttCall;->RTT_MODE_INVALID:I
+Landroid/telecom/Call;-><init>(Landroid/telecom/Phone;Ljava/lang/String;Landroid/telecom/InCallAdapter;ILjava/lang/String;I)V
+Landroid/telecom/Call;-><init>(Landroid/telecom/Phone;Ljava/lang/String;Landroid/telecom/InCallAdapter;Ljava/lang/String;I)V
+Landroid/telecom/Call;->areBundlesEqual(Landroid/os/Bundle;Landroid/os/Bundle;)Z
+Landroid/telecom/Call;->EVENT_HANDOVER_COMPLETE:Ljava/lang/String;
+Landroid/telecom/Call;->EVENT_HANDOVER_FAILED:Ljava/lang/String;
+Landroid/telecom/Call;->EVENT_HANDOVER_SOURCE_DISCONNECTED:Ljava/lang/String;
+Landroid/telecom/Call;->EVENT_REQUEST_HANDOVER:Ljava/lang/String;
+Landroid/telecom/Call;->EXTRA_HANDOVER_EXTRAS:Ljava/lang/String;
+Landroid/telecom/Call;->EXTRA_HANDOVER_PHONE_ACCOUNT_HANDLE:Ljava/lang/String;
+Landroid/telecom/Call;->EXTRA_HANDOVER_VIDEO_STATE:Ljava/lang/String;
+Landroid/telecom/Call;->fireCallDestroyed()V
+Landroid/telecom/Call;->fireCannedTextResponsesLoaded(Ljava/util/List;)V
+Landroid/telecom/Call;->fireChildrenChanged(Ljava/util/List;)V
+Landroid/telecom/Call;->fireConferenceableCallsChanged()V
+Landroid/telecom/Call;->fireDetailsChanged(Landroid/telecom/Call$Details;)V
+Landroid/telecom/Call;->fireOnConnectionEvent(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/Call;->fireOnIsRttChanged(ZLandroid/telecom/Call$RttCall;)V
+Landroid/telecom/Call;->fireOnRttModeChanged(I)V
+Landroid/telecom/Call;->fireParentChanged(Landroid/telecom/Call;)V
+Landroid/telecom/Call;->firePostDialWait(Ljava/lang/String;)V
+Landroid/telecom/Call;->fireStateChanged(I)V
+Landroid/telecom/Call;->fireVideoCallChanged(Landroid/telecom/InCallService$VideoCall;)V
+Landroid/telecom/Call;->internalGetCallId()Ljava/lang/String;
+Landroid/telecom/Call;->internalOnConnectionEvent(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/Call;->internalOnHandoverComplete()V
+Landroid/telecom/Call;->internalOnHandoverFailed(I)V
+Landroid/telecom/Call;->internalOnRttInitiationFailure(I)V
+Landroid/telecom/Call;->internalOnRttUpgradeRequest(I)V
+Landroid/telecom/Call;->internalSetDisconnected()V
+Landroid/telecom/Call;->internalSetPostDialWait(Ljava/lang/String;)V
+Landroid/telecom/Call;->internalUpdate(Landroid/telecom/ParcelableCall;Ljava/util/Map;)V
+Landroid/telecom/Call;->mCallbackRecords:Ljava/util/List;
+Landroid/telecom/Call;->mCallingPackage:Ljava/lang/String;
+Landroid/telecom/Call;->mCannedTextResponses:Ljava/util/List;
+Landroid/telecom/Call;->mChildren:Ljava/util/List;
+Landroid/telecom/Call;->mChildrenCached:Z
+Landroid/telecom/Call;->mChildrenIds:Ljava/util/List;
+Landroid/telecom/Call;->mConferenceableCalls:Ljava/util/List;
+Landroid/telecom/Call;->mDetails:Landroid/telecom/Call$Details;
+Landroid/telecom/Call;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/Call;->mInCallAdapter:Landroid/telecom/InCallAdapter;
+Landroid/telecom/Call;->mParentId:Ljava/lang/String;
+Landroid/telecom/Call;->mPhone:Landroid/telecom/Phone;
+Landroid/telecom/Call;->mRemainingPostDialSequence:Ljava/lang/String;
+Landroid/telecom/Call;->mRttCall:Landroid/telecom/Call$RttCall;
+Landroid/telecom/Call;->mState:I
+Landroid/telecom/Call;->mTargetSdkVersion:I
+Landroid/telecom/Call;->mTelecomCallId:Ljava/lang/String;
+Landroid/telecom/Call;->mUnmodifiableChildren:Ljava/util/List;
+Landroid/telecom/Call;->mUnmodifiableConferenceableCalls:Ljava/util/List;
+Landroid/telecom/Call;->mVideoCallImpl:Landroid/telecom/VideoCallImpl;
+Landroid/telecom/Call;->putExtra(Ljava/lang/String;I)V
+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;
+Landroid/telecom/CallAudioState;->isMuted:Z
+Landroid/telecom/CallAudioState;->listAppend(Ljava/lang/StringBuffer;Ljava/lang/String;)V
+Landroid/telecom/CallAudioState;->route:I
+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;
+Landroid/telecom/CallbackRecord;->mCallback:Ljava/lang/Object;
+Landroid/telecom/CallbackRecord;->mHandler:Landroid/os/Handler;
+Landroid/telecom/CallScreeningService$CallResponse$Builder;->mShouldDisallowCall:Z
+Landroid/telecom/CallScreeningService$CallResponse$Builder;->mShouldRejectCall:Z
+Landroid/telecom/CallScreeningService$CallResponse$Builder;->mShouldSkipCallLog:Z
+Landroid/telecom/CallScreeningService$CallResponse$Builder;->mShouldSkipNotification:Z
+Landroid/telecom/CallScreeningService$CallResponse;-><init>(ZZZZ)V
+Landroid/telecom/CallScreeningService$CallResponse;->mShouldDisallowCall:Z
+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
+Landroid/telecom/Conference$Listener;->onConnectionCapabilitiesChanged(Landroid/telecom/Conference;I)V
+Landroid/telecom/Conference$Listener;->onConnectionPropertiesChanged(Landroid/telecom/Conference;I)V
+Landroid/telecom/Conference$Listener;->onConnectionRemoved(Landroid/telecom/Conference;Landroid/telecom/Connection;)V
+Landroid/telecom/Conference$Listener;->onDestroyed(Landroid/telecom/Conference;)V
+Landroid/telecom/Conference$Listener;->onDisconnected(Landroid/telecom/Conference;Landroid/telecom/DisconnectCause;)V
+Landroid/telecom/Conference$Listener;->onExtrasChanged(Landroid/telecom/Conference;Landroid/os/Bundle;)V
+Landroid/telecom/Conference$Listener;->onExtrasRemoved(Landroid/telecom/Conference;Ljava/util/List;)V
+Landroid/telecom/Conference$Listener;->onStateChanged(Landroid/telecom/Conference;II)V
+Landroid/telecom/Conference$Listener;->onStatusHintsChanged(Landroid/telecom/Conference;Landroid/telecom/StatusHints;)V
+Landroid/telecom/Conference$Listener;->onVideoProviderChanged(Landroid/telecom/Conference;Landroid/telecom/Connection$VideoProvider;)V
+Landroid/telecom/Conference$Listener;->onVideoStateChanged(Landroid/telecom/Conference;I)V
+Landroid/telecom/Conference;->addCapability(I)V
+Landroid/telecom/Conference;->addListener(Landroid/telecom/Conference$Listener;)Landroid/telecom/Conference;
+Landroid/telecom/Conference;->can(I)Z
+Landroid/telecom/Conference;->can(II)Z
+Landroid/telecom/Conference;->clearConferenceableList()V
+Landroid/telecom/Conference;->fireOnConferenceableConnectionsChanged()V
+Landroid/telecom/Conference;->getConnectionStartElapsedRealTime()J
+Landroid/telecom/Conference;->getTelecomCallId()Ljava/lang/String;
+Landroid/telecom/Conference;->handleExtrasChanged(Landroid/os/Bundle;)V
+Landroid/telecom/Conference;->mCallAudioState:Landroid/telecom/CallAudioState;
+Landroid/telecom/Conference;->mChildConnections:Ljava/util/List;
+Landroid/telecom/Conference;->mConferenceableConnections:Ljava/util/List;
+Landroid/telecom/Conference;->mConnectionCapabilities:I
+Landroid/telecom/Conference;->mConnectionDeathListener:Landroid/telecom/Connection$Listener;
+Landroid/telecom/Conference;->mConnectionProperties:I
+Landroid/telecom/Conference;->mConnectionStartElapsedRealTime:J
+Landroid/telecom/Conference;->mConnectTimeMillis:J
+Landroid/telecom/Conference;->mDisconnectCause:Landroid/telecom/DisconnectCause;
+Landroid/telecom/Conference;->mDisconnectMessage:Ljava/lang/String;
+Landroid/telecom/Conference;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/Conference;->mExtrasLock:Ljava/lang/Object;
+Landroid/telecom/Conference;->mListeners:Ljava/util/Set;
+Landroid/telecom/Conference;->mPhoneAccount:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/Conference;->mPreviousExtraKeys:Ljava/util/Set;
+Landroid/telecom/Conference;->mState:I
+Landroid/telecom/Conference;->mStatusHints:Landroid/telecom/StatusHints;
+Landroid/telecom/Conference;->mTelecomCallId:Ljava/lang/String;
+Landroid/telecom/Conference;->mUnmodifiableChildConnections:Ljava/util/List;
+Landroid/telecom/Conference;->mUnmodifiableConferenceableConnections:Ljava/util/List;
+Landroid/telecom/Conference;->putExtra(Ljava/lang/String;I)V
+Landroid/telecom/Conference;->putExtra(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/Conference;->putExtra(Ljava/lang/String;Z)V
+Landroid/telecom/Conference;->removeCapability(I)V
+Landroid/telecom/Conference;->removeListener(Landroid/telecom/Conference$Listener;)Landroid/telecom/Conference;
+Landroid/telecom/Conference;->setCallAudioState(Landroid/telecom/CallAudioState;)V
+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;
+Landroid/telecom/ConferenceParticipant;->getEndpoint()Landroid/net/Uri;
+Landroid/telecom/ConferenceParticipant;->getHandle()Landroid/net/Uri;
+Landroid/telecom/ConferenceParticipant;->getState()I
+Landroid/telecom/ConferenceParticipant;->mDisplayName:Ljava/lang/String;
+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
+Landroid/telecom/Connection$Listener;->onAudioRouteChanged(Landroid/telecom/Connection;ILjava/lang/String;)V
+Landroid/telecom/Connection$Listener;->onCallerDisplayNameChanged(Landroid/telecom/Connection;Ljava/lang/String;I)V
+Landroid/telecom/Connection$Listener;->onConferenceablesChanged(Landroid/telecom/Connection;Ljava/util/List;)V
+Landroid/telecom/Connection$Listener;->onConferenceChanged(Landroid/telecom/Connection;Landroid/telecom/Conference;)V
+Landroid/telecom/Connection$Listener;->onConferenceMergeFailed(Landroid/telecom/Connection;)V
+Landroid/telecom/Connection$Listener;->onConferenceParticipantsChanged(Landroid/telecom/Connection;Ljava/util/List;)V
+Landroid/telecom/Connection$Listener;->onConferenceStarted()V
+Landroid/telecom/Connection$Listener;->onConferenceSupportedChanged(Landroid/telecom/Connection;Z)V
+Landroid/telecom/Connection$Listener;->onConnectionCapabilitiesChanged(Landroid/telecom/Connection;I)V
+Landroid/telecom/Connection$Listener;->onConnectionEvent(Landroid/telecom/Connection;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/Connection$Listener;->onConnectionPropertiesChanged(Landroid/telecom/Connection;I)V
+Landroid/telecom/Connection$Listener;->onDestroyed(Landroid/telecom/Connection;)V
+Landroid/telecom/Connection$Listener;->onDisconnected(Landroid/telecom/Connection;Landroid/telecom/DisconnectCause;)V
+Landroid/telecom/Connection$Listener;->onExtrasChanged(Landroid/telecom/Connection;Landroid/os/Bundle;)V
+Landroid/telecom/Connection$Listener;->onExtrasRemoved(Landroid/telecom/Connection;Ljava/util/List;)V
+Landroid/telecom/Connection$Listener;->onPhoneAccountChanged(Landroid/telecom/Connection;Landroid/telecom/PhoneAccountHandle;)V
+Landroid/telecom/Connection$Listener;->onPostDialChar(Landroid/telecom/Connection;C)V
+Landroid/telecom/Connection$Listener;->onPostDialWait(Landroid/telecom/Connection;Ljava/lang/String;)V
+Landroid/telecom/Connection$Listener;->onRemoteRttRequest(Landroid/telecom/Connection;)V
+Landroid/telecom/Connection$Listener;->onRingbackRequested(Landroid/telecom/Connection;Z)V
+Landroid/telecom/Connection$Listener;->onRttInitiationFailure(Landroid/telecom/Connection;I)V
+Landroid/telecom/Connection$Listener;->onRttInitiationSuccess(Landroid/telecom/Connection;)V
+Landroid/telecom/Connection$Listener;->onRttSessionRemotelyTerminated(Landroid/telecom/Connection;)V
+Landroid/telecom/Connection$Listener;->onStateChanged(Landroid/telecom/Connection;I)V
+Landroid/telecom/Connection$Listener;->onStatusHintsChanged(Landroid/telecom/Connection;Landroid/telecom/StatusHints;)V
+Landroid/telecom/Connection$Listener;->onSupportedAudioRoutesChanged(Landroid/telecom/Connection;I)V
+Landroid/telecom/Connection$Listener;->onVideoProviderChanged(Landroid/telecom/Connection;Landroid/telecom/Connection$VideoProvider;)V
+Landroid/telecom/Connection$Listener;->onVideoStateChanged(Landroid/telecom/Connection;I)V
+Landroid/telecom/Connection$RttModifyStatus;-><init>()V
+Landroid/telecom/Connection$RttTextStream;-><init>(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;)V
+Landroid/telecom/Connection$RttTextStream;->getFdFromInCall()Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/Connection$RttTextStream;->getFdToInCall()Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/Connection$RttTextStream;->mFdFromInCall:Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/Connection$RttTextStream;->mFdToInCall:Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/Connection$RttTextStream;->mPipeFromInCall:Ljava/io/InputStreamReader;
+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
+Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->requestCameraCapabilities()V
+Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->sendSessionModifyRequest(Landroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
+Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->sendSessionModifyResponse(Landroid/telecom/VideoProfile;)V
+Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->setCamera(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->setDeviceOrientation(I)V
+Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->setDisplaySurface(Landroid/view/Surface;)V
+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;
+Landroid/telecom/Connection$VideoProvider;->mMessageHandler:Landroid/telecom/Connection$VideoProvider$VideoProviderHandler;
+Landroid/telecom/Connection$VideoProvider;->MSG_ADD_VIDEO_CALLBACK:I
+Landroid/telecom/Connection$VideoProvider;->MSG_REMOVE_VIDEO_CALLBACK:I
+Landroid/telecom/Connection$VideoProvider;->MSG_REQUEST_CAMERA_CAPABILITIES:I
+Landroid/telecom/Connection$VideoProvider;->MSG_REQUEST_CONNECTION_DATA_USAGE:I
+Landroid/telecom/Connection$VideoProvider;->MSG_SEND_SESSION_MODIFY_REQUEST:I
+Landroid/telecom/Connection$VideoProvider;->MSG_SEND_SESSION_MODIFY_RESPONSE:I
+Landroid/telecom/Connection$VideoProvider;->MSG_SET_CAMERA:I
+Landroid/telecom/Connection$VideoProvider;->MSG_SET_DEVICE_ORIENTATION:I
+Landroid/telecom/Connection$VideoProvider;->MSG_SET_DISPLAY_SURFACE:I
+Landroid/telecom/Connection$VideoProvider;->MSG_SET_PAUSE_IMAGE:I
+Landroid/telecom/Connection$VideoProvider;->MSG_SET_PREVIEW_SURFACE:I
+Landroid/telecom/Connection$VideoProvider;->MSG_SET_ZOOM:I
+Landroid/telecom/Connection$VideoProvider;->mVideoCallbacks:Ljava/util/concurrent/ConcurrentHashMap;
+Landroid/telecom/Connection$VideoProvider;->onSetCamera(Ljava/lang/String;Ljava/lang/String;III)V
+Landroid/telecom/Connection$VideoProvider;->sessionEventToString(I)Ljava/lang/String;
+Landroid/telecom/Connection$VideoProvider;->SESSION_EVENT_CAMERA_FAILURE_STR:Ljava/lang/String;
+Landroid/telecom/Connection$VideoProvider;->SESSION_EVENT_CAMERA_PERMISSION_ERROR_STR:Ljava/lang/String;
+Landroid/telecom/Connection$VideoProvider;->SESSION_EVENT_CAMERA_READY_STR:Ljava/lang/String;
+Landroid/telecom/Connection$VideoProvider;->SESSION_EVENT_RX_PAUSE_STR:Ljava/lang/String;
+Landroid/telecom/Connection$VideoProvider;->SESSION_EVENT_RX_RESUME_STR:Ljava/lang/String;
+Landroid/telecom/Connection$VideoProvider;->SESSION_EVENT_TX_START_STR:Ljava/lang/String;
+Landroid/telecom/Connection$VideoProvider;->SESSION_EVENT_TX_STOP_STR:Ljava/lang/String;
+Landroid/telecom/Connection$VideoProvider;->SESSION_EVENT_UNKNOWN_STR:Ljava/lang/String;
+Landroid/telecom/Connection;->addCapability(I)V
+Landroid/telecom/Connection;->addConnectionListener(Landroid/telecom/Connection$Listener;)Landroid/telecom/Connection;
+Landroid/telecom/Connection;->can(I)Z
+Landroid/telecom/Connection;->can(II)Z
+Landroid/telecom/Connection;->capabilitiesToStringInternal(IZ)Ljava/lang/String;
+Landroid/telecom/Connection;->capabilitiesToStringShort(I)Ljava/lang/String;
+Landroid/telecom/Connection;->CAPABILITY_CONFERENCE_HAS_NO_CHILDREN:I
+Landroid/telecom/Connection;->CAPABILITY_SPEED_UP_MT_AUDIO:I
+Landroid/telecom/Connection;->CAPABILITY_UNUSED:I
+Landroid/telecom/Connection;->CAPABILITY_UNUSED_2:I
+Landroid/telecom/Connection;->CAPABILITY_UNUSED_3:I
+Landroid/telecom/Connection;->CAPABILITY_UNUSED_4:I
+Landroid/telecom/Connection;->CAPABILITY_UNUSED_5:I
+Landroid/telecom/Connection;->checkImmutable()V
+Landroid/telecom/Connection;->clearConferenceableList()V
+Landroid/telecom/Connection;->EVENT_CALL_REMOTELY_HELD:Ljava/lang/String;
+Landroid/telecom/Connection;->EVENT_CALL_REMOTELY_UNHELD:Ljava/lang/String;
+Landroid/telecom/Connection;->EVENT_HANDOVER_COMPLETE:Ljava/lang/String;
+Landroid/telecom/Connection;->EVENT_HANDOVER_FAILED:Ljava/lang/String;
+Landroid/telecom/Connection;->EVENT_MERGE_COMPLETE:Ljava/lang/String;
+Landroid/telecom/Connection;->EVENT_MERGE_START:Ljava/lang/String;
+Landroid/telecom/Connection;->EVENT_ON_HOLD_TONE_END:Ljava/lang/String;
+Landroid/telecom/Connection;->EVENT_ON_HOLD_TONE_START:Ljava/lang/String;
+Landroid/telecom/Connection;->EXTRA_DISABLE_ADD_CALL:Ljava/lang/String;
+Landroid/telecom/Connection;->EXTRA_ORIGINAL_CONNECTION_ID:Ljava/lang/String;
+Landroid/telecom/Connection;->fireConferenceChanged()V
+Landroid/telecom/Connection;->fireOnConferenceableConnectionsChanged()V
+Landroid/telecom/Connection;->getConnectElapsedTimeMillis()J
+Landroid/telecom/Connection;->getConnectionService()Landroid/telecom/ConnectionService;
+Landroid/telecom/Connection;->getConnectTimeMillis()J
+Landroid/telecom/Connection;->getPhoneAccountHandle()Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/Connection;->getSupportedAudioRoutes()I
+Landroid/telecom/Connection;->getTelecomCallId()Ljava/lang/String;
+Landroid/telecom/Connection;->getVideoState()I
+Landroid/telecom/Connection;->handleExtrasChanged(Landroid/os/Bundle;)V
+Landroid/telecom/Connection;->mAddress:Landroid/net/Uri;
+Landroid/telecom/Connection;->mAddressPresentation:I
+Landroid/telecom/Connection;->mAudioModeIsVoip:Z
+Landroid/telecom/Connection;->mCallAudioState:Landroid/telecom/CallAudioState;
+Landroid/telecom/Connection;->mCallerDisplayName:Ljava/lang/String;
+Landroid/telecom/Connection;->mCallerDisplayNamePresentation:I
+Landroid/telecom/Connection;->mConference:Landroid/telecom/Conference;
+Landroid/telecom/Connection;->mConferenceables:Ljava/util/List;
+Landroid/telecom/Connection;->mConferenceDeathListener:Landroid/telecom/Conference$Listener;
+Landroid/telecom/Connection;->mConnectElapsedTimeMillis:J
+Landroid/telecom/Connection;->mConnectionCapabilities:I
+Landroid/telecom/Connection;->mConnectionDeathListener:Landroid/telecom/Connection$Listener;
+Landroid/telecom/Connection;->mConnectionProperties:I
+Landroid/telecom/Connection;->mConnectionService:Landroid/telecom/ConnectionService;
+Landroid/telecom/Connection;->mConnectTimeMillis:J
+Landroid/telecom/Connection;->mDisconnectCause:Landroid/telecom/DisconnectCause;
+Landroid/telecom/Connection;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/Connection;->mExtrasLock:Ljava/lang/Object;
+Landroid/telecom/Connection;->mListeners:Ljava/util/Set;
+Landroid/telecom/Connection;->mPhoneAccountHandle:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/Connection;->mPreviousExtraKeys:Ljava/util/Set;
+Landroid/telecom/Connection;->mRingbackRequested:Z
+Landroid/telecom/Connection;->mState:I
+Landroid/telecom/Connection;->mStatusHints:Landroid/telecom/StatusHints;
+Landroid/telecom/Connection;->mSupportedAudioRoutes:I
+Landroid/telecom/Connection;->mTelecomCallId:Ljava/lang/String;
+Landroid/telecom/Connection;->mUnmodifiableConferenceables:Ljava/util/List;
+Landroid/telecom/Connection;->mVideoProvider:Landroid/telecom/Connection$VideoProvider;
+Landroid/telecom/Connection;->mVideoState:I
+Landroid/telecom/Connection;->notifyConferenceMergeFailed()V
+Landroid/telecom/Connection;->notifyConferenceStarted()V
+Landroid/telecom/Connection;->notifyConferenceSupportedChanged(Z)V
+Landroid/telecom/Connection;->notifyPhoneAccountChanged(Landroid/telecom/PhoneAccountHandle;)V
+Landroid/telecom/Connection;->onDisconnectConferenceParticipant(Landroid/net/Uri;)V
+Landroid/telecom/Connection;->onSilence()V
+Landroid/telecom/Connection;->PII_DEBUG:Z
+Landroid/telecom/Connection;->propertiesToStringInternal(IZ)Ljava/lang/String;
+Landroid/telecom/Connection;->propertiesToStringShort(I)Ljava/lang/String;
+Landroid/telecom/Connection;->PROPERTY_ASSISTED_DIALING_USED:I
+Landroid/telecom/Connection;->PROPERTY_EMERGENCY_CALLBACK_MODE:I
+Landroid/telecom/Connection;->PROPERTY_GENERIC_CONFERENCE:I
+Landroid/telecom/Connection;->PROPERTY_HIGH_DEF_AUDIO:I
+Landroid/telecom/Connection;->PROPERTY_IS_DOWNGRADED_CONFERENCE:I
+Landroid/telecom/Connection;->PROPERTY_WIFI:I
+Landroid/telecom/Connection;->putExtra(Ljava/lang/String;I)V
+Landroid/telecom/Connection;->putExtra(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/Connection;->putExtra(Ljava/lang/String;Z)V
+Landroid/telecom/Connection;->removeCapability(I)V
+Landroid/telecom/Connection;->removeConnectionListener(Landroid/telecom/Connection$Listener;)Landroid/telecom/Connection;
+Landroid/telecom/Connection;->resetConference()V
+Landroid/telecom/Connection;->setCallAudioState(Landroid/telecom/CallAudioState;)V
+Landroid/telecom/Connection;->setConference(Landroid/telecom/Conference;)Z
+Landroid/telecom/Connection;->setConnectionService(Landroid/telecom/ConnectionService;)V
+Landroid/telecom/Connection;->setConnectionStartElapsedRealTime(J)V
+Landroid/telecom/Connection;->setConnectTimeMillis(J)V
+Landroid/telecom/Connection;->setPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)V
+Landroid/telecom/Connection;->setState(I)V
+Landroid/telecom/Connection;->setSupportedAudioRoutes(I)V
+Landroid/telecom/Connection;->setTelecomCallId(Ljava/lang/String;)V
+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;
+Landroid/telecom/ConnectionRequest$Builder;->mAddress:Landroid/net/Uri;
+Landroid/telecom/ConnectionRequest$Builder;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/ConnectionRequest$Builder;->mRttPipeFromInCall:Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ConnectionRequest$Builder;->mRttPipeToInCall:Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ConnectionRequest$Builder;->mShouldShowIncomingCallUi:Z
+Landroid/telecom/ConnectionRequest$Builder;->mTelecomCallId:Ljava/lang/String;
+Landroid/telecom/ConnectionRequest$Builder;->mVideoState:I
+Landroid/telecom/ConnectionRequest$Builder;->setAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/ConnectionRequest$Builder;
+Landroid/telecom/ConnectionRequest$Builder;->setAddress(Landroid/net/Uri;)Landroid/telecom/ConnectionRequest$Builder;
+Landroid/telecom/ConnectionRequest$Builder;->setExtras(Landroid/os/Bundle;)Landroid/telecom/ConnectionRequest$Builder;
+Landroid/telecom/ConnectionRequest$Builder;->setRttPipeFromInCall(Landroid/os/ParcelFileDescriptor;)Landroid/telecom/ConnectionRequest$Builder;
+Landroid/telecom/ConnectionRequest$Builder;->setRttPipeToInCall(Landroid/os/ParcelFileDescriptor;)Landroid/telecom/ConnectionRequest$Builder;
+Landroid/telecom/ConnectionRequest$Builder;->setShouldShowIncomingCallUi(Z)Landroid/telecom/ConnectionRequest$Builder;
+Landroid/telecom/ConnectionRequest$Builder;->setTelecomCallId(Ljava/lang/String;)Landroid/telecom/ConnectionRequest$Builder;
+Landroid/telecom/ConnectionRequest$Builder;->setVideoState(I)Landroid/telecom/ConnectionRequest$Builder;
+Landroid/telecom/ConnectionRequest;-><init>(Landroid/os/Parcel;)V
+Landroid/telecom/ConnectionRequest;-><init>(Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;Landroid/os/Bundle;ILjava/lang/String;Z)V
+Landroid/telecom/ConnectionRequest;-><init>(Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;Landroid/os/Bundle;ILjava/lang/String;ZLandroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;)V
+Landroid/telecom/ConnectionRequest;->getRttPipeFromInCall()Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ConnectionRequest;->getRttPipeToInCall()Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ConnectionRequest;->getTelecomCallId()Ljava/lang/String;
+Landroid/telecom/ConnectionRequest;->mAccountHandle:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/ConnectionRequest;->mAddress:Landroid/net/Uri;
+Landroid/telecom/ConnectionRequest;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/ConnectionRequest;->mRttPipeFromInCall:Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ConnectionRequest;->mRttPipeToInCall:Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ConnectionRequest;->mRttTextStream:Landroid/telecom/Connection$RttTextStream;
+Landroid/telecom/ConnectionRequest;->mShouldShowIncomingCallUi:Z
+Landroid/telecom/ConnectionRequest;->mTelecomCallId:Ljava/lang/String;
+Landroid/telecom/ConnectionRequest;->mVideoState:I
+Landroid/telecom/ConnectionRequest;->shouldShowIncomingCallUi()Z
+Landroid/telecom/ConnectionService;->abort(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->addConferenceInternal(Landroid/telecom/Conference;)Ljava/lang/String;
+Landroid/telecom/ConnectionService;->addConnection(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Landroid/telecom/Connection;)V
+Landroid/telecom/ConnectionService;->addExistingConnection(Landroid/telecom/PhoneAccountHandle;Landroid/telecom/Connection;Landroid/telecom/Conference;)V
+Landroid/telecom/ConnectionService;->addExistingConnectionInternal(Landroid/telecom/PhoneAccountHandle;Landroid/telecom/Connection;)Ljava/lang/String;
+Landroid/telecom/ConnectionService;->addRemoteConference(Landroid/telecom/RemoteConference;)V
+Landroid/telecom/ConnectionService;->addRemoteExistingConnection(Landroid/telecom/RemoteConnection;)V
+Landroid/telecom/ConnectionService;->answer(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->answerVideo(Ljava/lang/String;I)V
+Landroid/telecom/ConnectionService;->conference(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->containsConference(Landroid/telecom/Conference;)Z
+Landroid/telecom/ConnectionService;->createConnection(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Landroid/telecom/ConnectionRequest;ZZ)V
+Landroid/telecom/ConnectionService;->createConnectionFailed(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Landroid/telecom/ConnectionRequest;Z)V
+Landroid/telecom/ConnectionService;->createConnectionIdList(Ljava/util/List;)Ljava/util/List;
+Landroid/telecom/ConnectionService;->createIdList(Ljava/util/List;)Ljava/util/List;
+Landroid/telecom/ConnectionService;->deflect(Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/telecom/ConnectionService;->disconnect(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->endAllConnections()V
+Landroid/telecom/ConnectionService;->EXTRA_IS_HANDOVER:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->findConferenceForAction(Ljava/lang/String;Ljava/lang/String;)Landroid/telecom/Conference;
+Landroid/telecom/ConnectionService;->findConnectionForAction(Ljava/lang/String;Ljava/lang/String;)Landroid/telecom/Connection;
+Landroid/telecom/ConnectionService;->getNextCallId()I
+Landroid/telecom/ConnectionService;->getNullConference()Landroid/telecom/Conference;
+Landroid/telecom/ConnectionService;->getNullConnection()Landroid/telecom/Connection;
+Landroid/telecom/ConnectionService;->handleExtrasChanged(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/ConnectionService;->handleRttUpgradeResponse(Ljava/lang/String;Landroid/telecom/Connection$RttTextStream;)V
+Landroid/telecom/ConnectionService;->handoverFailed(Ljava/lang/String;Landroid/telecom/ConnectionRequest;I)V
+Landroid/telecom/ConnectionService;->hold(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->mAdapter:Landroid/telecom/ConnectionServiceAdapter;
+Landroid/telecom/ConnectionService;->mAreAccountsInitialized:Z
+Landroid/telecom/ConnectionService;->mBinder:Landroid/os/IBinder;
+Landroid/telecom/ConnectionService;->mConferenceById:Ljava/util/Map;
+Landroid/telecom/ConnectionService;->mConferenceListener:Landroid/telecom/Conference$Listener;
+Landroid/telecom/ConnectionService;->mConnectionById:Ljava/util/Map;
+Landroid/telecom/ConnectionService;->mConnectionListener:Landroid/telecom/Connection$Listener;
+Landroid/telecom/ConnectionService;->mergeConference(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->mHandler:Landroid/os/Handler;
+Landroid/telecom/ConnectionService;->mId:I
+Landroid/telecom/ConnectionService;->mIdByConference:Ljava/util/Map;
+Landroid/telecom/ConnectionService;->mIdByConnection:Ljava/util/Map;
+Landroid/telecom/ConnectionService;->mIdSyncRoot:Ljava/lang/Object;
+Landroid/telecom/ConnectionService;->mPreInitializationConnectionRequests:Ljava/util/List;
+Landroid/telecom/ConnectionService;->mRemoteConnectionManager:Landroid/telecom/RemoteConnectionManager;
+Landroid/telecom/ConnectionService;->MSG_ABORT:I
+Landroid/telecom/ConnectionService;->MSG_ADD_CONNECTION_SERVICE_ADAPTER:I
+Landroid/telecom/ConnectionService;->MSG_ANSWER:I
+Landroid/telecom/ConnectionService;->MSG_ANSWER_VIDEO:I
+Landroid/telecom/ConnectionService;->MSG_CONFERENCE:I
+Landroid/telecom/ConnectionService;->MSG_CONNECTION_SERVICE_FOCUS_GAINED:I
+Landroid/telecom/ConnectionService;->MSG_CONNECTION_SERVICE_FOCUS_LOST:I
+Landroid/telecom/ConnectionService;->MSG_CREATE_CONNECTION:I
+Landroid/telecom/ConnectionService;->MSG_CREATE_CONNECTION_COMPLETE:I
+Landroid/telecom/ConnectionService;->MSG_CREATE_CONNECTION_FAILED:I
+Landroid/telecom/ConnectionService;->MSG_DEFLECT:I
+Landroid/telecom/ConnectionService;->MSG_DISCONNECT:I
+Landroid/telecom/ConnectionService;->MSG_HANDOVER_COMPLETE:I
+Landroid/telecom/ConnectionService;->MSG_HANDOVER_FAILED:I
+Landroid/telecom/ConnectionService;->MSG_HOLD:I
+Landroid/telecom/ConnectionService;->MSG_MERGE_CONFERENCE:I
+Landroid/telecom/ConnectionService;->MSG_ON_CALL_AUDIO_STATE_CHANGED:I
+Landroid/telecom/ConnectionService;->MSG_ON_EXTRAS_CHANGED:I
+Landroid/telecom/ConnectionService;->MSG_ON_POST_DIAL_CONTINUE:I
+Landroid/telecom/ConnectionService;->MSG_ON_START_RTT:I
+Landroid/telecom/ConnectionService;->MSG_ON_STOP_RTT:I
+Landroid/telecom/ConnectionService;->MSG_PLAY_DTMF_TONE:I
+Landroid/telecom/ConnectionService;->MSG_PULL_EXTERNAL_CALL:I
+Landroid/telecom/ConnectionService;->MSG_REJECT:I
+Landroid/telecom/ConnectionService;->MSG_REJECT_WITH_MESSAGE:I
+Landroid/telecom/ConnectionService;->MSG_REMOVE_CONNECTION_SERVICE_ADAPTER:I
+Landroid/telecom/ConnectionService;->MSG_RTT_UPGRADE_RESPONSE:I
+Landroid/telecom/ConnectionService;->MSG_SEND_CALL_EVENT:I
+Landroid/telecom/ConnectionService;->MSG_SILENCE:I
+Landroid/telecom/ConnectionService;->MSG_SPLIT_FROM_CONFERENCE:I
+Landroid/telecom/ConnectionService;->MSG_STOP_DTMF_TONE:I
+Landroid/telecom/ConnectionService;->MSG_SWAP_CONFERENCE:I
+Landroid/telecom/ConnectionService;->MSG_UNHOLD:I
+Landroid/telecom/ConnectionService;->notifyCreateConnectionComplete(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->notifyHandoverComplete(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->onAccountsInitialized()V
+Landroid/telecom/ConnectionService;->onAdapterAttached()V
+Landroid/telecom/ConnectionService;->onCallAudioStateChanged(Ljava/lang/String;Landroid/telecom/CallAudioState;)V
+Landroid/telecom/ConnectionService;->onConferenceAdded(Landroid/telecom/Conference;)V
+Landroid/telecom/ConnectionService;->onConferenceRemoved(Landroid/telecom/Conference;)V
+Landroid/telecom/ConnectionService;->onConnectionAdded(Landroid/telecom/Connection;)V
+Landroid/telecom/ConnectionService;->onConnectionRemoved(Landroid/telecom/Connection;)V
+Landroid/telecom/ConnectionService;->onCreateConnectionComplete(Landroid/telecom/Connection;)V
+Landroid/telecom/ConnectionService;->onCreateUnknownConnection(Landroid/telecom/PhoneAccountHandle;Landroid/telecom/ConnectionRequest;)Landroid/telecom/Connection;
+Landroid/telecom/ConnectionService;->onPostDialContinue(Ljava/lang/String;Z)V
+Landroid/telecom/ConnectionService;->PII_DEBUG:Z
+Landroid/telecom/ConnectionService;->playDtmfTone(Ljava/lang/String;C)V
+Landroid/telecom/ConnectionService;->pullExternalCall(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->reject(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->reject(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->removeConference(Landroid/telecom/Conference;)V
+Landroid/telecom/ConnectionService;->removeConnection(Landroid/telecom/Connection;)V
+Landroid/telecom/ConnectionService;->sendCallEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/ConnectionService;->SESSION_ABORT:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_ADD_CS_ADAPTER:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_ANSWER:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_ANSWER_VIDEO:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_CALL_AUDIO_SC:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_CONFERENCE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_CONNECTION_SERVICE_FOCUS_GAINED:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_CONNECTION_SERVICE_FOCUS_LOST:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_CREATE_CONN:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_CREATE_CONN_COMPLETE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_CREATE_CONN_FAILED:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_DEFLECT:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_DISCONNECT:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_EXTRAS_CHANGED:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_HANDLER:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_HANDOVER_COMPLETE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_HANDOVER_FAILED:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_HOLD:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_MERGE_CONFERENCE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_PLAY_DTMF:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_POST_DIAL_CONT:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_PULL_EXTERNAL_CALL:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_REJECT:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_REJECT_MESSAGE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_REMOVE_CS_ADAPTER:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_RTT_UPGRADE_RESPONSE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_SEND_CALL_EVENT:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_SILENCE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_SPLIT_CONFERENCE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_START_RTT:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_STOP_DTMF:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_STOP_RTT:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_SWAP_CONFERENCE:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_UNHOLD:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->SESSION_UPDATE_RTT_PIPES:Ljava/lang/String;
+Landroid/telecom/ConnectionService;->silence(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->sNullConference:Landroid/telecom/Conference;
+Landroid/telecom/ConnectionService;->sNullConnection:Landroid/telecom/Connection;
+Landroid/telecom/ConnectionService;->splitFromConference(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->startRtt(Ljava/lang/String;Landroid/telecom/Connection$RttTextStream;)V
+Landroid/telecom/ConnectionService;->stopDtmfTone(Ljava/lang/String;)V
+Landroid/telecom/ConnectionService;->stopRtt(Ljava/lang/String;)V
+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
+Landroid/telecom/ConnectionServiceAdapter;->addExistingConnection(Ljava/lang/String;Landroid/telecom/ParcelableConnection;)V
+Landroid/telecom/ConnectionServiceAdapter;->handleCreateConnectionComplete(Ljava/lang/String;Landroid/telecom/ConnectionRequest;Landroid/telecom/ParcelableConnection;)V
+Landroid/telecom/ConnectionServiceAdapter;->mAdapters:Ljava/util/Set;
+Landroid/telecom/ConnectionServiceAdapter;->onConferenceMergeFailed(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->onConnectionEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/ConnectionServiceAdapter;->onConnectionServiceFocusReleased()V
+Landroid/telecom/ConnectionServiceAdapter;->onPhoneAccountChanged(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;)V
+Landroid/telecom/ConnectionServiceAdapter;->onPostDialChar(Ljava/lang/String;C)V
+Landroid/telecom/ConnectionServiceAdapter;->onPostDialWait(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->onRemoteRttRequest(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->onRttInitiationFailure(Ljava/lang/String;I)V
+Landroid/telecom/ConnectionServiceAdapter;->onRttInitiationSuccess(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->onRttSessionRemotelyTerminated(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->putExtra(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/telecom/ConnectionServiceAdapter;->putExtra(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->putExtra(Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/telecom/ConnectionServiceAdapter;->putExtras(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/ConnectionServiceAdapter;->queryRemoteConnectionServices(Lcom/android/internal/telecom/RemoteServiceCallback;)V
+Landroid/telecom/ConnectionServiceAdapter;->removeAdapter(Lcom/android/internal/telecom/IConnectionServiceAdapter;)V
+Landroid/telecom/ConnectionServiceAdapter;->removeCall(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->removeExtras(Ljava/lang/String;Ljava/util/List;)V
+Landroid/telecom/ConnectionServiceAdapter;->setActive(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->setAddress(Ljava/lang/String;Landroid/net/Uri;I)V
+Landroid/telecom/ConnectionServiceAdapter;->setAudioRoute(Ljava/lang/String;ILjava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->setCallerDisplayName(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/telecom/ConnectionServiceAdapter;->setConferenceableConnections(Ljava/lang/String;Ljava/util/List;)V
+Landroid/telecom/ConnectionServiceAdapter;->setConnectionCapabilities(Ljava/lang/String;I)V
+Landroid/telecom/ConnectionServiceAdapter;->setConnectionProperties(Ljava/lang/String;I)V
+Landroid/telecom/ConnectionServiceAdapter;->setDialing(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->setDisconnected(Ljava/lang/String;Landroid/telecom/DisconnectCause;)V
+Landroid/telecom/ConnectionServiceAdapter;->setIsConferenced(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->setIsVoipAudioMode(Ljava/lang/String;Z)V
+Landroid/telecom/ConnectionServiceAdapter;->setOnHold(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->setPulling(Ljava/lang/String;)V
+Landroid/telecom/ConnectionServiceAdapter;->setRingbackRequested(Ljava/lang/String;Z)V
+Landroid/telecom/ConnectionServiceAdapter;->setRinging(Ljava/lang/String;)V
+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;
+Landroid/telecom/ConnectionServiceAdapterServant;->mHandler:Landroid/os/Handler;
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ADD_CONFERENCE_CALL:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ADD_EXISTING_CONNECTION:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_CONNECTION_SERVICE_FOCUS_RELEASED:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_HANDLE_CREATE_CONNECTION_COMPLETE:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ON_CONNECTION_EVENT:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ON_POST_DIAL_CHAR:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ON_POST_DIAL_WAIT:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ON_RTT_INITIATION_FAILURE:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ON_RTT_INITIATION_SUCCESS:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ON_RTT_REMOTELY_TERMINATED:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_ON_RTT_UPGRADE_REQUEST:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_PUT_EXTRAS:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_QUERY_REMOTE_CALL_SERVICES:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_REMOVE_CALL:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_REMOVE_EXTRAS:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_ACTIVE:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_ADDRESS:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_AUDIO_ROUTE:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_CALLER_DISPLAY_NAME:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_CONFERENCEABLE_CONNECTIONS:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_CONFERENCE_MERGE_FAILED:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_CONNECTION_CAPABILITIES:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_CONNECTION_PROPERTIES:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_DIALING:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_DISCONNECTED:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_IS_CONFERENCED:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_IS_VOIP_AUDIO_MODE:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_ON_HOLD:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_PHONE_ACCOUNT_CHANGED:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_PULLING:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_RINGBACK_REQUESTED:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_RINGING:I
+Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_STATUS_HINTS:I
+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;
+Landroid/telecom/DefaultDialerManager;->getDefaultDialerApplication(Landroid/content/Context;I)Ljava/lang/String;
+Landroid/telecom/DefaultDialerManager;->getInstalledDialerApplications(Landroid/content/Context;)Ljava/util/List;
+Landroid/telecom/DefaultDialerManager;->getInstalledDialerApplications(Landroid/content/Context;I)Ljava/util/List;
+Landroid/telecom/DefaultDialerManager;->getTelecomManager(Landroid/content/Context;)Landroid/telecom/TelecomManager;
+Landroid/telecom/DefaultDialerManager;->isDefaultOrSystemDialer(Landroid/content/Context;Ljava/lang/String;)Z
+Landroid/telecom/DefaultDialerManager;->setDefaultDialerApplication(Landroid/content/Context;Ljava/lang/String;)Z
+Landroid/telecom/DefaultDialerManager;->setDefaultDialerApplication(Landroid/content/Context;Ljava/lang/String;I)Z
+Landroid/telecom/DefaultDialerManager;->TAG:Ljava/lang/String;
+Landroid/telecom/DisconnectCause;->mDisconnectCode:I
+Landroid/telecom/DisconnectCause;->mDisconnectDescription:Ljava/lang/CharSequence;
+Landroid/telecom/DisconnectCause;->mDisconnectLabel:Ljava/lang/CharSequence;
+Landroid/telecom/DisconnectCause;->mDisconnectReason:Ljava/lang/String;
+Landroid/telecom/DisconnectCause;->mToneToPlay:I
+Landroid/telecom/DisconnectCause;->REASON_IMS_ACCESS_BLOCKED:Ljava/lang/String;
+Landroid/telecom/DisconnectCause;->REASON_WIFI_ON_BUT_WFC_OFF:Ljava/lang/String;
+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
+Landroid/telecom/InCallAdapter;->deflectCall(Ljava/lang/String;Landroid/net/Uri;)V
+Landroid/telecom/InCallAdapter;->disconnectCall(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->handoverTo(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;ILandroid/os/Bundle;)V
+Landroid/telecom/InCallAdapter;->holdCall(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->mAdapter:Lcom/android/internal/telecom/IInCallAdapter;
+Landroid/telecom/InCallAdapter;->mergeConference(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->mute(Z)V
+Landroid/telecom/InCallAdapter;->phoneAccountSelected(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Z)V
+Landroid/telecom/InCallAdapter;->playDtmfTone(Ljava/lang/String;C)V
+Landroid/telecom/InCallAdapter;->postDialContinue(Ljava/lang/String;Z)V
+Landroid/telecom/InCallAdapter;->pullExternalCall(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->putExtra(Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/telecom/InCallAdapter;->putExtra(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->putExtra(Ljava/lang/String;Ljava/lang/String;Z)V
+Landroid/telecom/InCallAdapter;->putExtras(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/InCallAdapter;->rejectCall(Ljava/lang/String;ZLjava/lang/String;)V
+Landroid/telecom/InCallAdapter;->removeExtras(Ljava/lang/String;Ljava/util/List;)V
+Landroid/telecom/InCallAdapter;->requestBluetoothAudio(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->respondToRttRequest(Ljava/lang/String;IZ)V
+Landroid/telecom/InCallAdapter;->sendCallEvent(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;)V
+Landroid/telecom/InCallAdapter;->sendRttRequest(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->setAudioRoute(I)V
+Landroid/telecom/InCallAdapter;->setRttMode(Ljava/lang/String;I)V
+Landroid/telecom/InCallAdapter;->splitFromConference(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->stopDtmfTone(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->stopRtt(Ljava/lang/String;)V
+Landroid/telecom/InCallAdapter;->swapConference(Ljava/lang/String;)V
+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
+Landroid/telecom/InCallService$InCallServiceBinder;->onCanAddCallChanged(Z)V
+Landroid/telecom/InCallService$InCallServiceBinder;->onConnectionEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/InCallService$InCallServiceBinder;->onHandoverComplete(Ljava/lang/String;)V
+Landroid/telecom/InCallService$InCallServiceBinder;->onHandoverFailed(Ljava/lang/String;I)V
+Landroid/telecom/InCallService$InCallServiceBinder;->onRttInitiationFailure(Ljava/lang/String;I)V
+Landroid/telecom/InCallService$InCallServiceBinder;->onRttUpgradeRequest(Ljava/lang/String;I)V
+Landroid/telecom/InCallService$InCallServiceBinder;->setInCallAdapter(Lcom/android/internal/telecom/IInCallAdapter;)V
+Landroid/telecom/InCallService$InCallServiceBinder;->setPostDial(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/InCallService$InCallServiceBinder;->setPostDialWait(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/InCallService$InCallServiceBinder;->silenceRinger()V
+Landroid/telecom/InCallService$InCallServiceBinder;->updateCall(Landroid/telecom/ParcelableCall;)V
+Landroid/telecom/InCallService$VideoCall;->destroy()V
+Landroid/telecom/InCallService;->getAudioState()Landroid/telecom/AudioState;
+Landroid/telecom/InCallService;->mHandler:Landroid/os/Handler;
+Landroid/telecom/InCallService;->mPhone:Landroid/telecom/Phone;
+Landroid/telecom/InCallService;->mPhoneListener:Landroid/telecom/Phone$Listener;
+Landroid/telecom/InCallService;->MSG_ADD_CALL:I
+Landroid/telecom/InCallService;->MSG_BRING_TO_FOREGROUND:I
+Landroid/telecom/InCallService;->MSG_ON_CALL_AUDIO_STATE_CHANGED:I
+Landroid/telecom/InCallService;->MSG_ON_CAN_ADD_CALL_CHANGED:I
+Landroid/telecom/InCallService;->MSG_ON_CONNECTION_EVENT:I
+Landroid/telecom/InCallService;->MSG_ON_HANDOVER_COMPLETE:I
+Landroid/telecom/InCallService;->MSG_ON_HANDOVER_FAILED:I
+Landroid/telecom/InCallService;->MSG_ON_RTT_INITIATION_FAILURE:I
+Landroid/telecom/InCallService;->MSG_ON_RTT_UPGRADE_REQUEST:I
+Landroid/telecom/InCallService;->MSG_SET_IN_CALL_ADAPTER:I
+Landroid/telecom/InCallService;->MSG_SET_POST_DIAL_WAIT:I
+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
+Landroid/telecom/Log;->EVENTS_TO_CACHE_DEBUG:I
+Landroid/telecom/Log;->EXTENDED_LOGGING_DURATION_MILLIS:J
+Landroid/telecom/Log;->FORCE_LOGGING:Z
+Landroid/telecom/Log;->getEventManager()Landroid/telecom/Logging/EventManager;
+Landroid/telecom/Log;->getExternalSession()Landroid/telecom/Logging/Session$Info;
+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
+Landroid/telecom/Log;->pii(Ljava/lang/Object;)Ljava/lang/String;
+Landroid/telecom/Log;->piiHandle(Ljava/lang/Object;)Ljava/lang/String;
+Landroid/telecom/Log;->registerEventListener(Landroid/telecom/Logging/EventManager$EventListener;)V
+Landroid/telecom/Log;->registerSessionListener(Landroid/telecom/Logging/SessionManager$ISessionListener;)V
+Landroid/telecom/Log;->setIsExtendedLoggingEnabled(Z)V
+Landroid/telecom/Log;->setSessionContext(Landroid/content/Context;)V
+Landroid/telecom/Log;->setTag(Ljava/lang/String;)V
+Landroid/telecom/Log;->sEventManager:Landroid/telecom/Logging/EventManager;
+Landroid/telecom/Log;->sIsUserExtendedLoggingEnabled:Z
+Landroid/telecom/Log;->sSessionManager:Landroid/telecom/Logging/SessionManager;
+Landroid/telecom/Log;->sSingletonSync:Ljava/lang/Object;
+Landroid/telecom/Log;->startSession(Landroid/telecom/Logging/Session$Info;Ljava/lang/String;)V
+Landroid/telecom/Log;->startSession(Landroid/telecom/Logging/Session$Info;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/Log;->startSession(Ljava/lang/String;)V
+Landroid/telecom/Log;->startSession(Ljava/lang/String;Ljava/lang/String;)V
+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;
+Landroid/telecom/ParcelableCall;->getCallerDisplayNamePresentation()I
+Landroid/telecom/ParcelableCall;->getCannedSmsResponses()Ljava/util/List;
+Landroid/telecom/ParcelableCall;->getCapabilities()I
+Landroid/telecom/ParcelableCall;->getChildCallIds()Ljava/util/List;
+Landroid/telecom/ParcelableCall;->getConferenceableCallIds()Ljava/util/List;
+Landroid/telecom/ParcelableCall;->getCreationTimeMillis()J
+Landroid/telecom/ParcelableCall;->getExtras()Landroid/os/Bundle;
+Landroid/telecom/ParcelableCall;->getGatewayInfo()Landroid/telecom/GatewayInfo;
+Landroid/telecom/ParcelableCall;->getHandlePresentation()I
+Landroid/telecom/ParcelableCall;->getIntentExtras()Landroid/os/Bundle;
+Landroid/telecom/ParcelableCall;->getIsRttCallChanged()Z
+Landroid/telecom/ParcelableCall;->getParcelableRttCall()Landroid/telecom/ParcelableRttCall;
+Landroid/telecom/ParcelableCall;->getParentCallId()Ljava/lang/String;
+Landroid/telecom/ParcelableCall;->getProperties()I
+Landroid/telecom/ParcelableCall;->getState()I
+Landroid/telecom/ParcelableCall;->getStatusHints()Landroid/telecom/StatusHints;
+Landroid/telecom/ParcelableCall;->getSupportedAudioRoutes()I
+Landroid/telecom/ParcelableCall;->getVideoCallImpl(Ljava/lang/String;I)Landroid/telecom/VideoCallImpl;
+Landroid/telecom/ParcelableCall;->getVideoState()I
+Landroid/telecom/ParcelableCall;->isVideoCallProviderChanged()Z
+Landroid/telecom/ParcelableCall;->mAccountHandle:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/ParcelableCall;->mCallerDisplayName:Ljava/lang/String;
+Landroid/telecom/ParcelableCall;->mCallerDisplayNamePresentation:I
+Landroid/telecom/ParcelableCall;->mCannedSmsResponses:Ljava/util/List;
+Landroid/telecom/ParcelableCall;->mCapabilities:I
+Landroid/telecom/ParcelableCall;->mChildCallIds:Ljava/util/List;
+Landroid/telecom/ParcelableCall;->mConferenceableCallIds:Ljava/util/List;
+Landroid/telecom/ParcelableCall;->mConnectTimeMillis:J
+Landroid/telecom/ParcelableCall;->mCreationTimeMillis:J
+Landroid/telecom/ParcelableCall;->mDisconnectCause:Landroid/telecom/DisconnectCause;
+Landroid/telecom/ParcelableCall;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/ParcelableCall;->mGatewayInfo:Landroid/telecom/GatewayInfo;
+Landroid/telecom/ParcelableCall;->mHandle:Landroid/net/Uri;
+Landroid/telecom/ParcelableCall;->mHandlePresentation:I
+Landroid/telecom/ParcelableCall;->mId:Ljava/lang/String;
+Landroid/telecom/ParcelableCall;->mIntentExtras:Landroid/os/Bundle;
+Landroid/telecom/ParcelableCall;->mIsRttCallChanged:Z
+Landroid/telecom/ParcelableCall;->mIsVideoCallProviderChanged:Z
+Landroid/telecom/ParcelableCall;->mParentCallId:Ljava/lang/String;
+Landroid/telecom/ParcelableCall;->mProperties:I
+Landroid/telecom/ParcelableCall;->mRttCall:Landroid/telecom/ParcelableRttCall;
+Landroid/telecom/ParcelableCall;->mState:I
+Landroid/telecom/ParcelableCall;->mStatusHints:Landroid/telecom/StatusHints;
+Landroid/telecom/ParcelableCall;->mSupportedAudioRoutes:I
+Landroid/telecom/ParcelableCall;->mVideoCall:Landroid/telecom/VideoCallImpl;
+Landroid/telecom/ParcelableCall;->mVideoCallProvider:Lcom/android/internal/telecom/IVideoProvider;
+Landroid/telecom/ParcelableCall;->mVideoState:I
+Landroid/telecom/ParcelableCallAnalytics$AnalyticsEvent;-><init>(Landroid/os/Parcel;)V
+Landroid/telecom/ParcelableCallAnalytics$AnalyticsEvent;->mEventName:I
+Landroid/telecom/ParcelableCallAnalytics$AnalyticsEvent;->mTimeSinceLastEvent:J
+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;
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->getEventName()I
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->getTimeSinceLastEvent()J
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->getVideoState()I
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->mEventName:I
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->mTimeSinceLastEvent:J
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->mVideoState:I
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->RECEIVE_REMOTE_SESSION_MODIFY_REQUEST:I
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->RECEIVE_REMOTE_SESSION_MODIFY_RESPONSE:I
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->SEND_LOCAL_SESSION_MODIFY_REQUEST:I
+Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->SEND_LOCAL_SESSION_MODIFY_RESPONSE:I
+Landroid/telecom/ParcelableCallAnalytics;->analyticsEvents:Ljava/util/List;
+Landroid/telecom/ParcelableCallAnalytics;->callDurationMillis:J
+Landroid/telecom/ParcelableCallAnalytics;->callTechnologies:I
+Landroid/telecom/ParcelableCallAnalytics;->callTerminationCode:I
+Landroid/telecom/ParcelableCallAnalytics;->callType:I
+Landroid/telecom/ParcelableCallAnalytics;->connectionService:Ljava/lang/String;
+Landroid/telecom/ParcelableCallAnalytics;->eventTimings:Ljava/util/List;
+Landroid/telecom/ParcelableCallAnalytics;->getVideoEvents()Ljava/util/List;
+Landroid/telecom/ParcelableCallAnalytics;->isAdditionalCall:Z
+Landroid/telecom/ParcelableCallAnalytics;->isCreatedFromExistingConnection:Z
+Landroid/telecom/ParcelableCallAnalytics;->isEmergencyCall:Z
+Landroid/telecom/ParcelableCallAnalytics;->isInterrupted:Z
+Landroid/telecom/ParcelableCallAnalytics;->isVideoCall()Z
+Landroid/telecom/ParcelableCallAnalytics;->isVideoCall:Z
+Landroid/telecom/ParcelableCallAnalytics;->readByteAsBoolean(Landroid/os/Parcel;)Z
+Landroid/telecom/ParcelableCallAnalytics;->setIsVideoCall(Z)V
+Landroid/telecom/ParcelableCallAnalytics;->setVideoEvents(Ljava/util/List;)V
+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
+Landroid/telecom/ParcelableConference;->getConnectionCapabilities()I
+Landroid/telecom/ParcelableConference;->getConnectionIds()Ljava/util/List;
+Landroid/telecom/ParcelableConference;->getConnectionProperties()I
+Landroid/telecom/ParcelableConference;->getConnectTimeMillis()J
+Landroid/telecom/ParcelableConference;->getExtras()Landroid/os/Bundle;
+Landroid/telecom/ParcelableConference;->getPhoneAccount()Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/ParcelableConference;->getState()I
+Landroid/telecom/ParcelableConference;->getStatusHints()Landroid/telecom/StatusHints;
+Landroid/telecom/ParcelableConference;->getVideoProvider()Lcom/android/internal/telecom/IVideoProvider;
+Landroid/telecom/ParcelableConference;->getVideoState()I
+Landroid/telecom/ParcelableConference;->mConnectElapsedTimeMillis:J
+Landroid/telecom/ParcelableConference;->mConnectionCapabilities:I
+Landroid/telecom/ParcelableConference;->mConnectionIds:Ljava/util/List;
+Landroid/telecom/ParcelableConference;->mConnectionProperties:I
+Landroid/telecom/ParcelableConference;->mConnectTimeMillis:J
+Landroid/telecom/ParcelableConference;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/ParcelableConference;->mPhoneAccount:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/ParcelableConference;->mState:I
+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;
+Landroid/telecom/ParcelableConnection;->getCallerDisplayName()Ljava/lang/String;
+Landroid/telecom/ParcelableConnection;->getCallerDisplayNamePresentation()I
+Landroid/telecom/ParcelableConnection;->getConferenceableConnectionIds()Ljava/util/List;
+Landroid/telecom/ParcelableConnection;->getConnectElapsedTimeMillis()J
+Landroid/telecom/ParcelableConnection;->getConnectionCapabilities()I
+Landroid/telecom/ParcelableConnection;->getConnectionProperties()I
+Landroid/telecom/ParcelableConnection;->getConnectTimeMillis()J
+Landroid/telecom/ParcelableConnection;->getDisconnectCause()Landroid/telecom/DisconnectCause;
+Landroid/telecom/ParcelableConnection;->getExtras()Landroid/os/Bundle;
+Landroid/telecom/ParcelableConnection;->getHandle()Landroid/net/Uri;
+Landroid/telecom/ParcelableConnection;->getHandlePresentation()I
+Landroid/telecom/ParcelableConnection;->getIsVoipAudioMode()Z
+Landroid/telecom/ParcelableConnection;->getParentCallId()Ljava/lang/String;
+Landroid/telecom/ParcelableConnection;->getPhoneAccount()Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/ParcelableConnection;->getState()I
+Landroid/telecom/ParcelableConnection;->getStatusHints()Landroid/telecom/StatusHints;
+Landroid/telecom/ParcelableConnection;->getSupportedAudioRoutes()I
+Landroid/telecom/ParcelableConnection;->getVideoProvider()Lcom/android/internal/telecom/IVideoProvider;
+Landroid/telecom/ParcelableConnection;->getVideoState()I
+Landroid/telecom/ParcelableConnection;->isRingbackRequested()Z
+Landroid/telecom/ParcelableConnection;->mAddress:Landroid/net/Uri;
+Landroid/telecom/ParcelableConnection;->mAddressPresentation:I
+Landroid/telecom/ParcelableConnection;->mCallerDisplayName:Ljava/lang/String;
+Landroid/telecom/ParcelableConnection;->mCallerDisplayNamePresentation:I
+Landroid/telecom/ParcelableConnection;->mConferenceableConnectionIds:Ljava/util/List;
+Landroid/telecom/ParcelableConnection;->mConnectElapsedTimeMillis:J
+Landroid/telecom/ParcelableConnection;->mConnectionCapabilities:I
+Landroid/telecom/ParcelableConnection;->mConnectionProperties:I
+Landroid/telecom/ParcelableConnection;->mConnectTimeMillis:J
+Landroid/telecom/ParcelableConnection;->mDisconnectCause:Landroid/telecom/DisconnectCause;
+Landroid/telecom/ParcelableConnection;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/ParcelableConnection;->mIsVoipAudioMode:Z
+Landroid/telecom/ParcelableConnection;->mParentCallId:Ljava/lang/String;
+Landroid/telecom/ParcelableConnection;->mPhoneAccount:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/ParcelableConnection;->mRingbackRequested:Z
+Landroid/telecom/ParcelableConnection;->mState:I
+Landroid/telecom/ParcelableConnection;->mStatusHints:Landroid/telecom/StatusHints;
+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;
+Landroid/telecom/ParcelableRttCall;->getReceiveStream()Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ParcelableRttCall;->getRttMode()I
+Landroid/telecom/ParcelableRttCall;->getTransmitStream()Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ParcelableRttCall;->mReceiveStream:Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/ParcelableRttCall;->mRttMode:I
+Landroid/telecom/ParcelableRttCall;->mTransmitStream:Landroid/os/ParcelFileDescriptor;
+Landroid/telecom/Phone;-><init>(Landroid/telecom/InCallAdapter;Ljava/lang/String;I)V
+Landroid/telecom/Phone;->checkCallTree(Landroid/telecom/ParcelableCall;)V
+Landroid/telecom/Phone;->destroy()V
+Landroid/telecom/Phone;->fireBringToForeground(Z)V
+Landroid/telecom/Phone;->fireCallAdded(Landroid/telecom/Call;)V
+Landroid/telecom/Phone;->fireCallAudioStateChanged(Landroid/telecom/CallAudioState;)V
+Landroid/telecom/Phone;->fireCallRemoved(Landroid/telecom/Call;)V
+Landroid/telecom/Phone;->fireCanAddCallChanged(Z)V
+Landroid/telecom/Phone;->fireSilenceRinger()V
+Landroid/telecom/Phone;->internalAddCall(Landroid/telecom/ParcelableCall;)V
+Landroid/telecom/Phone;->internalBringToForeground(Z)V
+Landroid/telecom/Phone;->internalCallAudioStateChanged(Landroid/telecom/CallAudioState;)V
+Landroid/telecom/Phone;->internalGetCallByTelecomId(Ljava/lang/String;)Landroid/telecom/Call;
+Landroid/telecom/Phone;->internalOnConnectionEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/Phone;->internalOnHandoverComplete(Ljava/lang/String;)V
+Landroid/telecom/Phone;->internalOnHandoverFailed(Ljava/lang/String;I)V
+Landroid/telecom/Phone;->internalOnRttInitiationFailure(Ljava/lang/String;I)V
+Landroid/telecom/Phone;->internalOnRttUpgradeRequest(Ljava/lang/String;I)V
+Landroid/telecom/Phone;->internalRemoveCall(Landroid/telecom/Call;)V
+Landroid/telecom/Phone;->internalSetCanAddCall(Z)V
+Landroid/telecom/Phone;->internalSetPostDialWait(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telecom/Phone;->internalSilenceRinger()V
+Landroid/telecom/Phone;->internalUpdateCall(Landroid/telecom/ParcelableCall;)V
+Landroid/telecom/Phone;->mCallAudioState:Landroid/telecom/CallAudioState;
+Landroid/telecom/Phone;->mCallByTelecomCallId:Ljava/util/Map;
+Landroid/telecom/Phone;->mCallingPackage:Ljava/lang/String;
+Landroid/telecom/Phone;->mCalls:Ljava/util/List;
+Landroid/telecom/Phone;->mCanAddCall:Z
+Landroid/telecom/Phone;->mInCallAdapter:Landroid/telecom/InCallAdapter;
+Landroid/telecom/Phone;->mListeners:Ljava/util/List;
+Landroid/telecom/Phone;->mTargetSdkVersion:I
+Landroid/telecom/Phone;->mUnmodifiableCalls:Ljava/util/List;
+Landroid/telecom/PhoneAccount$Builder;->mAccountHandle:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/PhoneAccount$Builder;->mAddress:Landroid/net/Uri;
+Landroid/telecom/PhoneAccount$Builder;->mCapabilities:I
+Landroid/telecom/PhoneAccount$Builder;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/PhoneAccount$Builder;->mGroupId:Ljava/lang/String;
+Landroid/telecom/PhoneAccount$Builder;->mHighlightColor:I
+Landroid/telecom/PhoneAccount$Builder;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/telecom/PhoneAccount$Builder;->mIsEnabled:Z
+Landroid/telecom/PhoneAccount$Builder;->mLabel:Ljava/lang/CharSequence;
+Landroid/telecom/PhoneAccount$Builder;->mShortDescription:Ljava/lang/CharSequence;
+Landroid/telecom/PhoneAccount$Builder;->mSubscriptionAddress:Landroid/net/Uri;
+Landroid/telecom/PhoneAccount$Builder;->mSupportedAudioRoutes:I
+Landroid/telecom/PhoneAccount$Builder;->mSupportedUriSchemes:Ljava/util/List;
+Landroid/telecom/PhoneAccount$Builder;->setGroupId(Ljava/lang/String;)Landroid/telecom/PhoneAccount$Builder;
+Landroid/telecom/PhoneAccount$Builder;->setIsEnabled(Z)Landroid/telecom/PhoneAccount$Builder;
+Landroid/telecom/PhoneAccount$Builder;->setLabel(Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder;
+Landroid/telecom/PhoneAccount$Builder;->setSupportedAudioRoutes(I)Landroid/telecom/PhoneAccount$Builder;
+Landroid/telecom/PhoneAccount;-><init>(Landroid/os/Parcel;)V
+Landroid/telecom/PhoneAccount;-><init>(Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;Landroid/net/Uri;ILandroid/graphics/drawable/Icon;ILjava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/util/List;Landroid/os/Bundle;IZLjava/lang/String;)V
+Landroid/telecom/PhoneAccount;->audioRoutesToString()Ljava/lang/String;
+Landroid/telecom/PhoneAccount;->capabilitiesToString()Ljava/lang/String;
+Landroid/telecom/PhoneAccount;->CAPABILITY_EMERGENCY_CALLS_ONLY:I
+Landroid/telecom/PhoneAccount;->CAPABILITY_EMERGENCY_VIDEO_CALLING:I
+Landroid/telecom/PhoneAccount;->EXTRA_ALWAYS_USE_VOIP_AUDIO_MODE:Ljava/lang/String;
+Landroid/telecom/PhoneAccount;->EXTRA_PLAY_CALL_RECORDING_TONE:Ljava/lang/String;
+Landroid/telecom/PhoneAccount;->EXTRA_SORT_ORDER:Ljava/lang/String;
+Landroid/telecom/PhoneAccount;->EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK:Ljava/lang/String;
+Landroid/telecom/PhoneAccount;->getGroupId()Ljava/lang/String;
+Landroid/telecom/PhoneAccount;->getSupportedAudioRoutes()I
+Landroid/telecom/PhoneAccount;->hasAudioRoutes(I)Z
+Landroid/telecom/PhoneAccount;->isSelfManaged()Z
+Landroid/telecom/PhoneAccount;->mAccountHandle:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/PhoneAccount;->mAddress:Landroid/net/Uri;
+Landroid/telecom/PhoneAccount;->mCapabilities:I
+Landroid/telecom/PhoneAccount;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/PhoneAccount;->mGroupId:Ljava/lang/String;
+Landroid/telecom/PhoneAccount;->mHighlightColor:I
+Landroid/telecom/PhoneAccount;->mIcon:Landroid/graphics/drawable/Icon;
+Landroid/telecom/PhoneAccount;->mIsEnabled:Z
+Landroid/telecom/PhoneAccount;->mLabel:Ljava/lang/CharSequence;
+Landroid/telecom/PhoneAccount;->mShortDescription:Ljava/lang/CharSequence;
+Landroid/telecom/PhoneAccount;->mSubscriptionAddress:Landroid/net/Uri;
+Landroid/telecom/PhoneAccount;->mSupportedAudioRoutes:I
+Landroid/telecom/PhoneAccount;->mSupportedUriSchemes:Ljava/util/List;
+Landroid/telecom/PhoneAccount;->NO_ICON_TINT:I
+Landroid/telecom/PhoneAccount;->setIsEnabled(Z)V
+Landroid/telecom/PhoneAccountHandle;->checkParameters(Landroid/content/ComponentName;Landroid/os/UserHandle;)V
+Landroid/telecom/PhoneAccountHandle;->mUserHandle:Landroid/os/UserHandle;
+Landroid/telecom/RemoteConference;-><init>(Ljava/lang/String;Lcom/android/internal/telecom/IConnectionService;)V
+Landroid/telecom/RemoteConference;->addConnection(Landroid/telecom/RemoteConnection;)V
+Landroid/telecom/RemoteConference;->getId()Ljava/lang/String;
+Landroid/telecom/RemoteConference;->mCallbackRecords:Ljava/util/Set;
+Landroid/telecom/RemoteConference;->mChildConnections:Ljava/util/List;
+Landroid/telecom/RemoteConference;->mConferenceableConnections:Ljava/util/List;
+Landroid/telecom/RemoteConference;->mConnectionCapabilities:I
+Landroid/telecom/RemoteConference;->mConnectionProperties:I
+Landroid/telecom/RemoteConference;->mConnectionService:Lcom/android/internal/telecom/IConnectionService;
+Landroid/telecom/RemoteConference;->mDisconnectCause:Landroid/telecom/DisconnectCause;
+Landroid/telecom/RemoteConference;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/RemoteConference;->mId:Ljava/lang/String;
+Landroid/telecom/RemoteConference;->mState:I
+Landroid/telecom/RemoteConference;->mUnmodifiableChildConnections:Ljava/util/List;
+Landroid/telecom/RemoteConference;->mUnmodifiableConferenceableConnections:Ljava/util/List;
+Landroid/telecom/RemoteConference;->notifyExtrasChanged()V
+Landroid/telecom/RemoteConference;->putExtras(Landroid/os/Bundle;)V
+Landroid/telecom/RemoteConference;->removeConnection(Landroid/telecom/RemoteConnection;)V
+Landroid/telecom/RemoteConference;->removeExtras(Ljava/util/List;)V
+Landroid/telecom/RemoteConference;->setConferenceableConnections(Ljava/util/List;)V
+Landroid/telecom/RemoteConference;->setConnectionCapabilities(I)V
+Landroid/telecom/RemoteConference;->setConnectionProperties(I)V
+Landroid/telecom/RemoteConference;->setDestroyed()V
+Landroid/telecom/RemoteConference;->setDisconnected(Landroid/telecom/DisconnectCause;)V
+Landroid/telecom/RemoteConference;->setState(I)V
+Landroid/telecom/RemoteConnection$Callback;->onRemoteRttRequest(Landroid/telecom/RemoteConnection;)V
+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;
+Landroid/telecom/RemoteConnection$CallbackRecord;->mCallback:Landroid/telecom/RemoteConnection$Callback;
+Landroid/telecom/RemoteConnection$CallbackRecord;->mHandler:Landroid/os/Handler;
+Landroid/telecom/RemoteConnection$VideoProvider;-><init>(Lcom/android/internal/telecom/IVideoProvider;Ljava/lang/String;I)V
+Landroid/telecom/RemoteConnection$VideoProvider;->mCallbacks:Ljava/util/Set;
+Landroid/telecom/RemoteConnection$VideoProvider;->mCallingPackage:Ljava/lang/String;
+Landroid/telecom/RemoteConnection$VideoProvider;->mTargetSdkVersion:I
+Landroid/telecom/RemoteConnection$VideoProvider;->mVideoCallbackDelegate:Lcom/android/internal/telecom/IVideoCallback;
+Landroid/telecom/RemoteConnection$VideoProvider;->mVideoCallbackServant:Landroid/telecom/VideoCallbackServant;
+Landroid/telecom/RemoteConnection$VideoProvider;->mVideoProviderBinder:Lcom/android/internal/telecom/IVideoProvider;
+Landroid/telecom/RemoteConnection;-><init>(Landroid/telecom/DisconnectCause;)V
+Landroid/telecom/RemoteConnection;-><init>(Ljava/lang/String;Lcom/android/internal/telecom/IConnectionService;Landroid/telecom/ConnectionRequest;)V
+Landroid/telecom/RemoteConnection;-><init>(Ljava/lang/String;Lcom/android/internal/telecom/IConnectionService;Landroid/telecom/ParcelableConnection;Ljava/lang/String;I)V
+Landroid/telecom/RemoteConnection;->answer(I)V
+Landroid/telecom/RemoteConnection;->failure(Landroid/telecom/DisconnectCause;)Landroid/telecom/RemoteConnection;
+Landroid/telecom/RemoteConnection;->getConnectionService()Lcom/android/internal/telecom/IConnectionService;
+Landroid/telecom/RemoteConnection;->getId()Ljava/lang/String;
+Landroid/telecom/RemoteConnection;->mAddress:Landroid/net/Uri;
+Landroid/telecom/RemoteConnection;->mAddressPresentation:I
+Landroid/telecom/RemoteConnection;->mCallbackRecords:Ljava/util/Set;
+Landroid/telecom/RemoteConnection;->mCallerDisplayName:Ljava/lang/String;
+Landroid/telecom/RemoteConnection;->mCallerDisplayNamePresentation:I
+Landroid/telecom/RemoteConnection;->mConference:Landroid/telecom/RemoteConference;
+Landroid/telecom/RemoteConnection;->mConferenceableConnections:Ljava/util/List;
+Landroid/telecom/RemoteConnection;->mConnected:Z
+Landroid/telecom/RemoteConnection;->mConnectionCapabilities:I
+Landroid/telecom/RemoteConnection;->mConnectionId:Ljava/lang/String;
+Landroid/telecom/RemoteConnection;->mConnectionProperties:I
+Landroid/telecom/RemoteConnection;->mConnectionService:Lcom/android/internal/telecom/IConnectionService;
+Landroid/telecom/RemoteConnection;->mDisconnectCause:Landroid/telecom/DisconnectCause;
+Landroid/telecom/RemoteConnection;->mExtras:Landroid/os/Bundle;
+Landroid/telecom/RemoteConnection;->mIsVoipAudioMode:Z
+Landroid/telecom/RemoteConnection;->mRingbackRequested:Z
+Landroid/telecom/RemoteConnection;->mState:I
+Landroid/telecom/RemoteConnection;->mStatusHints:Landroid/telecom/StatusHints;
+Landroid/telecom/RemoteConnection;->mUnmodifiableconferenceableConnections:Ljava/util/List;
+Landroid/telecom/RemoteConnection;->mVideoProvider:Landroid/telecom/RemoteConnection$VideoProvider;
+Landroid/telecom/RemoteConnection;->mVideoState:I
+Landroid/telecom/RemoteConnection;->notifyExtrasChanged()V
+Landroid/telecom/RemoteConnection;->onConnectionEvent(Ljava/lang/String;Landroid/os/Bundle;)V
+Landroid/telecom/RemoteConnection;->onPostDialChar(C)V
+Landroid/telecom/RemoteConnection;->onRemoteRttRequest()V
+Landroid/telecom/RemoteConnection;->onRttInitiationFailure(I)V
+Landroid/telecom/RemoteConnection;->onRttInitiationSuccess()V
+Landroid/telecom/RemoteConnection;->onRttSessionRemotelyTerminated()V
+Landroid/telecom/RemoteConnection;->putExtras(Landroid/os/Bundle;)V
+Landroid/telecom/RemoteConnection;->removeExtras(Ljava/util/List;)V
+Landroid/telecom/RemoteConnection;->sendRttUpgradeResponse(Landroid/telecom/Connection$RttTextStream;)V
+Landroid/telecom/RemoteConnection;->setAddress(Landroid/net/Uri;I)V
+Landroid/telecom/RemoteConnection;->setCallerDisplayName(Ljava/lang/String;I)V
+Landroid/telecom/RemoteConnection;->setConference(Landroid/telecom/RemoteConference;)V
+Landroid/telecom/RemoteConnection;->setConferenceableConnections(Ljava/util/List;)V
+Landroid/telecom/RemoteConnection;->setConnectionCapabilities(I)V
+Landroid/telecom/RemoteConnection;->setConnectionProperties(I)V
+Landroid/telecom/RemoteConnection;->setDestroyed()V
+Landroid/telecom/RemoteConnection;->setDisconnected(Landroid/telecom/DisconnectCause;)V
+Landroid/telecom/RemoteConnection;->setIsVoipAudioMode(Z)V
+Landroid/telecom/RemoteConnection;->setPostDialWait(Ljava/lang/String;)V
+Landroid/telecom/RemoteConnection;->setRingbackRequested(Z)V
+Landroid/telecom/RemoteConnection;->setState(I)V
+Landroid/telecom/RemoteConnection;->setStatusHints(Landroid/telecom/StatusHints;)V
+Landroid/telecom/RemoteConnection;->setVideoProvider(Landroid/telecom/RemoteConnection$VideoProvider;)V
+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;
+Landroid/telecom/RemoteConnectionService;->findConnectionForAction(Ljava/lang/String;Ljava/lang/String;)Landroid/telecom/RemoteConnection;
+Landroid/telecom/RemoteConnectionService;->hasConnection(Ljava/lang/String;)Z
+Landroid/telecom/RemoteConnectionService;->maybeDisconnectAdapter()V
+Landroid/telecom/RemoteConnectionService;->mConferenceById:Ljava/util/Map;
+Landroid/telecom/RemoteConnectionService;->mConnectionById:Ljava/util/Map;
+Landroid/telecom/RemoteConnectionService;->mDeathRecipient:Landroid/os/IBinder$DeathRecipient;
+Landroid/telecom/RemoteConnectionService;->mOurConnectionServiceImpl:Landroid/telecom/ConnectionService;
+Landroid/telecom/RemoteConnectionService;->mOutgoingConnectionServiceRpc:Lcom/android/internal/telecom/IConnectionService;
+Landroid/telecom/RemoteConnectionService;->mPendingConnections:Ljava/util/Set;
+Landroid/telecom/RemoteConnectionService;->mServant:Landroid/telecom/ConnectionServiceAdapterServant;
+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;
+Landroid/telecom/StatusHints;->mLabel:Ljava/lang/CharSequence;
+Landroid/telecom/TelecomAnalytics$SessionTiming;-><init>(Landroid/os/Parcel;)V
+Landroid/telecom/TelecomAnalytics$SessionTiming;->mId:I
+Landroid/telecom/TelecomAnalytics$SessionTiming;->mTime:J
+Landroid/telecom/TelecomAnalytics;-><init>(Landroid/os/Parcel;)V
+Landroid/telecom/TelecomAnalytics;->mCallAnalytics:Ljava/util/List;
+Landroid/telecom/TelecomAnalytics;->mSessionTimings:Ljava/util/List;
+Landroid/telecom/TelecomManager;-><init>(Landroid/content/Context;)V
+Landroid/telecom/TelecomManager;-><init>(Landroid/content/Context;Lcom/android/internal/telecom/ITelecomService;)V
+Landroid/telecom/TelecomManager;->ACTION_CURRENT_TTY_MODE_CHANGED:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->ACTION_NEW_UNKNOWN_CALL:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->ACTION_TTY_PREFERRED_MODE_CHANGED:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->clearAccountsForPackage(Ljava/lang/String;)V
+Landroid/telecom/TelecomManager;->EMERGENCY_DIALER_COMPONENT:Landroid/content/ComponentName;
+Landroid/telecom/TelecomManager;->EXTRA_CALL_AUDIO_STATE:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_CALL_CREATED_TIME_MILLIS:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_CALL_EXTERNAL_RINGER:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_CALL_TECHNOLOGY_TYPE:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_CALL_TELECOM_ROUTING_END_TIME_MILLIS:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_CALL_TELECOM_ROUTING_START_TIME_MILLIS:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_CURRENT_TTY_MODE:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_HANDOVER_FROM_PHONE_ACCOUNT:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_IS_HANDOVER_CONNECTION:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_NEW_OUTGOING_CALL_CANCEL_TIMEOUT:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_TTY_PREFERRED_MODE:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_UNKNOWN_CALL_HANDLE:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->EXTRA_USE_ASSISTED_DIALING:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->getTelecomService()Lcom/android/internal/telecom/ITelecomService;
+Landroid/telecom/TelecomManager;->isServiceConnected()Z
+Landroid/telecom/TelecomManager;->mContext:Landroid/content/Context;
+Landroid/telecom/TelecomManager;->METADATA_IN_CALL_SERVICE_CAR_MODE_UI:Ljava/lang/String;
+Landroid/telecom/TelecomManager;->mTelecomServiceOverride:Lcom/android/internal/telecom/ITelecomService;
+Landroid/telecom/TelecomManager;->TAG:Ljava/lang/String;
+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
+Landroid/telecom/TelecomProtoEnums;->ANSWERED_ELSEWHERE:I
+Landroid/telecom/TelecomProtoEnums;->BUSY:I
+Landroid/telecom/TelecomProtoEnums;->CALL_PULLED:I
+Landroid/telecom/TelecomProtoEnums;->CANCELED:I
+Landroid/telecom/TelecomProtoEnums;->CONNECTING:I
+Landroid/telecom/TelecomProtoEnums;->CONNECTION_MANAGER_NOT_SUPPORTED:I
+Landroid/telecom/TelecomProtoEnums;->DIALING:I
+Landroid/telecom/TelecomProtoEnums;->DISCONNECTED:I
+Landroid/telecom/TelecomProtoEnums;->DISCONNECTING:I
+Landroid/telecom/TelecomProtoEnums;->ERROR:I
+Landroid/telecom/TelecomProtoEnums;->LOCAL:I
+Landroid/telecom/TelecomProtoEnums;->MISSED:I
+Landroid/telecom/TelecomProtoEnums;->NEW:I
+Landroid/telecom/TelecomProtoEnums;->ON_HOLD:I
+Landroid/telecom/TelecomProtoEnums;->OTHER:I
+Landroid/telecom/TelecomProtoEnums;->PULLING:I
+Landroid/telecom/TelecomProtoEnums;->REJECTED:I
+Landroid/telecom/TelecomProtoEnums;->REMOTE:I
+Landroid/telecom/TelecomProtoEnums;->RESTRICTED:I
+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;
+Landroid/telecom/VideoCallbackServant;->mHandler:Landroid/os/Handler;
+Landroid/telecom/VideoCallbackServant;->MSG_CHANGE_CALL_DATA_USAGE:I
+Landroid/telecom/VideoCallbackServant;->MSG_CHANGE_CAMERA_CAPABILITIES:I
+Landroid/telecom/VideoCallbackServant;->MSG_CHANGE_PEER_DIMENSIONS:I
+Landroid/telecom/VideoCallbackServant;->MSG_CHANGE_VIDEO_QUALITY:I
+Landroid/telecom/VideoCallbackServant;->MSG_HANDLE_CALL_SESSION_EVENT:I
+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
+Landroid/telecom/VideoCallImpl$MessageHandler;->MSG_CHANGE_VIDEO_QUALITY:I
+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
+Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;->changeVideoQuality(I)V
+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;
+Landroid/telecom/VideoCallImpl;->mCallingPackageName:Ljava/lang/String;
+Landroid/telecom/VideoCallImpl;->mDeathRecipient:Landroid/os/IBinder$DeathRecipient;
+Landroid/telecom/VideoCallImpl;->mHandler:Landroid/os/Handler;
+Landroid/telecom/VideoCallImpl;->mTargetSdkVersion:I
+Landroid/telecom/VideoCallImpl;->mVideoProvider:Lcom/android/internal/telecom/IVideoProvider;
+Landroid/telecom/VideoCallImpl;->mVideoQuality:I
+Landroid/telecom/VideoCallImpl;->mVideoState:I
+Landroid/telecom/VideoCallImpl;->setTargetSdkVersion(I)V
+Landroid/telecom/VideoCallImpl;->setVideoState(I)V
+Landroid/telecom/VideoProfile$CameraCapabilities;->getMaxZoom()F
+Landroid/telecom/VideoProfile$CameraCapabilities;->isZoomSupported()Z
+Landroid/telecom/VideoProfile$CameraCapabilities;->mHeight:I
+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;
+Landroid/telecom/Voicemail$Builder;->mBuilderHasContent:Z
+Landroid/telecom/Voicemail$Builder;->mBuilderId:Ljava/lang/Long;
+Landroid/telecom/Voicemail$Builder;->mBuilderIsRead:Ljava/lang/Boolean;
+Landroid/telecom/Voicemail$Builder;->mBuilderNumber:Ljava/lang/String;
+Landroid/telecom/Voicemail$Builder;->mBuilderPhoneAccount:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/Voicemail$Builder;->mBuilderSourceData:Ljava/lang/String;
+Landroid/telecom/Voicemail$Builder;->mBuilderSourcePackage:Ljava/lang/String;
+Landroid/telecom/Voicemail$Builder;->mBuilderTimestamp:Ljava/lang/Long;
+Landroid/telecom/Voicemail$Builder;->mBuilderTranscription:Ljava/lang/String;
+Landroid/telecom/Voicemail$Builder;->mBuilderUri:Landroid/net/Uri;
+Landroid/telecom/Voicemail$Builder;->setDuration(J)Landroid/telecom/Voicemail$Builder;
+Landroid/telecom/Voicemail$Builder;->setHasContent(Z)Landroid/telecom/Voicemail$Builder;
+Landroid/telecom/Voicemail$Builder;->setId(J)Landroid/telecom/Voicemail$Builder;
+Landroid/telecom/Voicemail$Builder;->setIsRead(Z)Landroid/telecom/Voicemail$Builder;
+Landroid/telecom/Voicemail$Builder;->setNumber(Ljava/lang/String;)Landroid/telecom/Voicemail$Builder;
+Landroid/telecom/Voicemail$Builder;->setPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/Voicemail$Builder;
+Landroid/telecom/Voicemail$Builder;->setSourceData(Ljava/lang/String;)Landroid/telecom/Voicemail$Builder;
+Landroid/telecom/Voicemail$Builder;->setSourcePackage(Ljava/lang/String;)Landroid/telecom/Voicemail$Builder;
+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;
+Landroid/telecom/Voicemail;->createForUpdate(JLjava/lang/String;)Landroid/telecom/Voicemail$Builder;
+Landroid/telecom/Voicemail;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telecom/Voicemail;->getDuration()J
+Landroid/telecom/Voicemail;->getId()J
+Landroid/telecom/Voicemail;->getNumber()Ljava/lang/String;
+Landroid/telecom/Voicemail;->getPhoneAccount()Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/Voicemail;->getSourceData()Ljava/lang/String;
+Landroid/telecom/Voicemail;->getSourcePackage()Ljava/lang/String;
+Landroid/telecom/Voicemail;->getTimestampMillis()J
+Landroid/telecom/Voicemail;->getTranscription()Ljava/lang/String;
+Landroid/telecom/Voicemail;->getUri()Landroid/net/Uri;
+Landroid/telecom/Voicemail;->hasContent()Z
+Landroid/telecom/Voicemail;->isRead()Z
+Landroid/telecom/Voicemail;->mDuration:Ljava/lang/Long;
+Landroid/telecom/Voicemail;->mHasContent:Ljava/lang/Boolean;
+Landroid/telecom/Voicemail;->mId:Ljava/lang/Long;
+Landroid/telecom/Voicemail;->mIsRead:Ljava/lang/Boolean;
+Landroid/telecom/Voicemail;->mNumber:Ljava/lang/String;
+Landroid/telecom/Voicemail;->mPhoneAccount:Landroid/telecom/PhoneAccountHandle;
+Landroid/telecom/Voicemail;->mProviderData:Ljava/lang/String;
+Landroid/telecom/Voicemail;->mSource:Ljava/lang/String;
+Landroid/telecom/Voicemail;->mTimestamp:Ljava/lang/Long;
+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
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_11:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_12:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_13:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_14:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_15:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_16:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_17:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_18:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_19:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_1:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_20:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_21:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_2:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_3:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_4:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_5:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_6:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_7:I
+Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_8:I
+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
+Landroid/telephony/AccessNetworkUtils;->INVALID_BAND:I
+Landroid/telephony/CarrierConfigManager;-><init>()V
+Landroid/telephony/CarrierConfigManager;->DATA_CYCLE_USE_PLATFORM_DEFAULT:I
+Landroid/telephony/CarrierConfigManager;->getDefaultCarrierServicePackageName()Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->getICarrierConfigLoader()Lcom/android/internal/telephony/ICarrierConfigLoader;
+Landroid/telephony/CarrierConfigManager;->IMSI_KEY_AVAILABILITY_INT:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->IMSI_KEY_DOWNLOAD_URL_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ALLOW_USSD_REQUESTS_VIA_TELEPHONY_MANAGER_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ALLOW_VIDEO_CALLING_FALLBACK_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ALWAYS_PLAY_REMOTE_HOLD_TONE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_BOOSTED_LTE_EARFCNS_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CALL_BARRING_VISIBILITY_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_ALLOW_DEFLECT_IMS_CALL_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_APP_NO_WAKE_SIGNAL_CONFIG_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_APP_WAKE_SIGNAL_CONFIG_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_CONFIG_APPLIED_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DATA_CALL_APN_DELAY_DEFAULT_LONG:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DATA_CALL_APN_DELAY_FASTER_LONG:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DATA_CALL_APN_RETRY_AFTER_DISCONNECT_LONG:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DATA_CALL_RETRY_CONFIG_STRINGS:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DATA_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DATA_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_ACTIONS_ON_DEFAULT_NETWORK_AVAILABLE:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_ACTIONS_ON_RESET:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_DATA_ROAMING_ENABLED_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_REDIRECTION_URL_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_ERI_FILE_NAME_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_METERED_APN_TYPES_STRINGS:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_METERED_IWLAN_APN_TYPES_STRINGS:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_METERED_ROAMING_APN_TYPES_STRINGS:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_NETWORK_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_NETWORK_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_SETUP_APP_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_VOLTE_OVERRIDE_WFC_PROVISIONING_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CARRIER_WIFI_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CHECK_PRICING_WITH_CARRIER_FOR_DATA_ROAMING_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CONFIG_WIFI_DISABLE_IN_ECBM:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_CONVERT_CDMA_CALLER_ID_MMI_CODES_WHILE_ROAMING_ON_3GPP_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DATA_LIMIT_NOTIFICATION_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DATA_RAPID_NOTIFICATION_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DATA_WARNING_NOTIFICATION_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DEFAULT_VM_NUMBER_ROAMING_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DISABLE_CHARGE_INDICATION_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DISABLE_SEVERE_WHEN_EXTREME_DISABLED_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_DISPLAY_VOICEMAIL_NUMBER_AS_DEFAULT_CALL_FORWARDING_NUMBER_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_EDITABLE_WFC_MODE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_EDITABLE_WFC_ROAMING_MODE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_EMERGENCY_NOTIFICATION_DELAY_INT:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ENABLE_APPS_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_FEATURE_ACCESS_CODES_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_FILTERED_CNAP_NAMES_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_FORCE_IMEI_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_GSM_CDMA_CALLS_CAN_BE_HD_AUDIO:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_IDENTIFY_HIGH_DEFINITION_CALLS_IN_CALL_LOG_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_IMS_REASONINFO_MAPPING_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_LTE_EARFCNS_RSRP_BOOST_INT:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_MESSAGE_EXPIRATION_TIME_LONG:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_MMS_CLOSE_CONNECTION_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_NON_ROAMING_OPERATOR_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_NOTIFY_HANDOVER_VIDEO_FROM_LTE_TO_WIFI_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_NOTIFY_HANDOVER_VIDEO_FROM_WIFI_TO_LTE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_NOTIFY_INTERNATIONAL_CALL_ON_WFC_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_NOTIFY_VT_HANDOVER_TO_WIFI_FAILURE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_PERSIST_LPP_MODE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_PLAY_CALL_RECORDING_TONE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_PREF_NETWORK_NOTIFICATION_DELAY_INT:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_RATCHET_RAT_FAMILIES:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_READ_ONLY_APN_TYPES_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_ROAMING_OPERATOR_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SHOW_PRECISE_FAILED_CAUSE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SHOW_VIDEO_CALL_CHARGES_ALERT_DIALOG_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SKIP_CF_FAIL_TO_DISABLE_DIALOG_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SPN_DISPLAY_RULE_USE_ROAMING_FROM_SERVICE_STATE_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_STK_DISABLE_LAUNCH_BROWSER_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SUPPORT_DIRECT_FDN_DIALING_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SUPPORT_DOWNGRADE_VT_TO_AUDIO_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SUPPORT_ENHANCED_CALL_BLOCKING_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SUPPORT_IMS_CONFERENCE_CALL_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SUPPORT_MANAGE_IMS_CONFERENCE_CALL_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_SUPPORT_VIDEO_CONFERENCE_CALL_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_UNDELIVERED_SMS_MESSAGE_EXPIRATION_TIME:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_USE_ONLY_RSRP_FOR_LTE_SIGNAL_BAR_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_VIDEO_CALLS_CAN_BE_HD_AUDIO:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_VILTE_DATA_IS_METERED_BOOL:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_WCDMA_DEFAULT_SIGNAL_STRENGTH_MEASUREMENT_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_WFC_DATA_SPN_FORMAT_IDX_INT:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_WFC_OPERATOR_ERROR_CODES_STRING_ARRAY:Ljava/lang/String;
+Landroid/telephony/CarrierConfigManager;->KEY_WFC_SPN_FORMAT_IDX_INT:Ljava/lang/String;
+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
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_HIGH_PRIORITY_ONCE:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_HIGH_PRIORITY_REPEAT:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_LOW_PRIORITY_ONCE:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_LOW_PRIORITY_REPEAT:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_MED_PRIORITY_ONCE:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_MED_PRIORITY_REPEAT:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_NO_ALERT:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_VIBRATE_ONCE:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_VIBRATE_REPEAT:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_VISUAL_ONCE:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_VISUAL_REPEAT:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->getAlertOption()I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->getCategory()I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->getCategoryName()Ljava/lang/String;
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->getLanguage()I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->getMaxMessages()I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->getOperation()I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->mAlertOption:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->mCategory:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->mCategoryName:Ljava/lang/String;
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->mLanguage:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->mMaxMessages:I
+Landroid/telephony/cdma/CdmaSmsCbProgramData;->mOperation:I
+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;
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->getCategory()I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->getCategoryResult()I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->getLanguage()I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->mCategory:I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->mCategoryResult:I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->mLanguage:I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_CATEGORY_ALREADY_ADDED:I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_CATEGORY_ALREADY_DELETED:I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_CATEGORY_LIMIT_EXCEEDED:I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_INVALID_ALERT_OPTION:I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_INVALID_CATEGORY_NAME:I
+Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_INVALID_MAX_MESSAGES:I
+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;
+Landroid/telephony/CellBroadcastMessage;->getCmasMessageClass()I
+Landroid/telephony/CellBroadcastMessage;->getCmasWarningInfo()Landroid/telephony/SmsCbCmasInfo;
+Landroid/telephony/CellBroadcastMessage;->getDateString(Landroid/content/Context;)Ljava/lang/String;
+Landroid/telephony/CellBroadcastMessage;->getSubId()I
+Landroid/telephony/CellBroadcastMessage;->isEtwsEmergencyUserAlert()Z
+Landroid/telephony/CellBroadcastMessage;->isEtwsPopupAlert()Z
+Landroid/telephony/CellBroadcastMessage;->isEtwsTestMessage()Z
+Landroid/telephony/CellBroadcastMessage;->isPublicAlertMessage()Z
+Landroid/telephony/CellBroadcastMessage;->mDeliveryTime:J
+Landroid/telephony/CellBroadcastMessage;->mIsRead:Z
+Landroid/telephony/CellBroadcastMessage;->mSmsCbMessage:Landroid/telephony/SmsCbMessage;
+Landroid/telephony/CellBroadcastMessage;->mSubId:I
+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
+Landroid/telephony/CellIdentity;->getType()I
+Landroid/telephony/CellIdentity;->INVALID_CHANNEL_NUMBER:I
+Landroid/telephony/CellIdentity;->log(Ljava/lang/String;)V
+Landroid/telephony/CellIdentity;->mAlphaLong:Ljava/lang/String;
+Landroid/telephony/CellIdentity;->mAlphaShort:Ljava/lang/String;
+Landroid/telephony/CellIdentity;->mMccStr:Ljava/lang/String;
+Landroid/telephony/CellIdentity;->mMncStr:Ljava/lang/String;
+Landroid/telephony/CellIdentity;->mTag:Ljava/lang/String;
+Landroid/telephony/CellIdentity;->mType:I
+Landroid/telephony/CellIdentity;->TYPE_CDMA:I
+Landroid/telephony/CellIdentity;->TYPE_GSM:I
+Landroid/telephony/CellIdentity;->TYPE_LTE:I
+Landroid/telephony/CellIdentity;->TYPE_TDSCDMA:I
+Landroid/telephony/CellIdentity;->TYPE_UNKNOWN:I
+Landroid/telephony/CellIdentity;->TYPE_WCDMA:I
+Landroid/telephony/CellIdentityCdma;-><init>()V
+Landroid/telephony/CellIdentityCdma;-><init>(IIIIILjava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/CellIdentityCdma;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellIdentityCdma;-><init>(Landroid/telephony/CellIdentityCdma;)V
+Landroid/telephony/CellIdentityCdma;->copy()Landroid/telephony/CellIdentityCdma;
+Landroid/telephony/CellIdentityCdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityCdma;
+Landroid/telephony/CellIdentityCdma;->DBG:Z
+Landroid/telephony/CellIdentityCdma;->isNullIsland(II)Z
+Landroid/telephony/CellIdentityCdma;->mBasestationId:I
+Landroid/telephony/CellIdentityCdma;->mLatitude:I
+Landroid/telephony/CellIdentityCdma;->mLongitude:I
+Landroid/telephony/CellIdentityCdma;->mNetworkId:I
+Landroid/telephony/CellIdentityCdma;->mSystemId:I
+Landroid/telephony/CellIdentityCdma;->TAG:Ljava/lang/String;
+Landroid/telephony/CellIdentityGsm;-><init>(IIII)V
+Landroid/telephony/CellIdentityGsm;-><init>(IIIIII)V
+Landroid/telephony/CellIdentityGsm;-><init>(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/CellIdentityGsm;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellIdentityGsm;-><init>(Landroid/telephony/CellIdentityGsm;)V
+Landroid/telephony/CellIdentityGsm;->copy()Landroid/telephony/CellIdentityGsm;
+Landroid/telephony/CellIdentityGsm;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityGsm;
+Landroid/telephony/CellIdentityGsm;->DBG:Z
+Landroid/telephony/CellIdentityGsm;->getChannelNumber()I
+Landroid/telephony/CellIdentityGsm;->mCid:I
+Landroid/telephony/CellIdentityGsm;->mLac:I
+Landroid/telephony/CellIdentityGsm;->TAG:Ljava/lang/String;
+Landroid/telephony/CellIdentityLte;-><init>(IIIIII)V
+Landroid/telephony/CellIdentityLte;-><init>(IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/CellIdentityLte;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellIdentityLte;-><init>(Landroid/telephony/CellIdentityLte;)V
+Landroid/telephony/CellIdentityLte;->copy()Landroid/telephony/CellIdentityLte;
+Landroid/telephony/CellIdentityLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte;
+Landroid/telephony/CellIdentityLte;->DBG:Z
+Landroid/telephony/CellIdentityLte;->getChannelNumber()I
+Landroid/telephony/CellIdentityLte;->mBandwidth:I
+Landroid/telephony/CellIdentityLte;->mCi:I
+Landroid/telephony/CellIdentityLte;->mPci:I
+Landroid/telephony/CellIdentityLte;->mTac:I
+Landroid/telephony/CellIdentityLte;->TAG:Ljava/lang/String;
+Landroid/telephony/CellIdentityTdscdma;-><init>()V
+Landroid/telephony/CellIdentityTdscdma;-><init>(IIIII)V
+Landroid/telephony/CellIdentityTdscdma;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellIdentityTdscdma;-><init>(Landroid/telephony/CellIdentityTdscdma;)V
+Landroid/telephony/CellIdentityTdscdma;-><init>(Ljava/lang/String;Ljava/lang/String;III)V
+Landroid/telephony/CellIdentityTdscdma;-><init>(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/CellIdentityTdscdma;->copy()Landroid/telephony/CellIdentityTdscdma;
+Landroid/telephony/CellIdentityTdscdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityTdscdma;
+Landroid/telephony/CellIdentityTdscdma;->DBG:Z
+Landroid/telephony/CellIdentityTdscdma;->mCid:I
+Landroid/telephony/CellIdentityTdscdma;->mCpid:I
+Landroid/telephony/CellIdentityTdscdma;->mLac:I
+Landroid/telephony/CellIdentityTdscdma;->TAG:Ljava/lang/String;
+Landroid/telephony/CellIdentityWcdma;-><init>()V
+Landroid/telephony/CellIdentityWcdma;-><init>(IIIII)V
+Landroid/telephony/CellIdentityWcdma;-><init>(IIIIII)V
+Landroid/telephony/CellIdentityWcdma;-><init>(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/CellIdentityWcdma;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellIdentityWcdma;-><init>(Landroid/telephony/CellIdentityWcdma;)V
+Landroid/telephony/CellIdentityWcdma;->copy()Landroid/telephony/CellIdentityWcdma;
+Landroid/telephony/CellIdentityWcdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma;
+Landroid/telephony/CellIdentityWcdma;->DBG:Z
+Landroid/telephony/CellIdentityWcdma;->getChannelNumber()I
+Landroid/telephony/CellIdentityWcdma;->mCid:I
+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
+Landroid/telephony/CellInfo;->mCellConnectionStatus:I
+Landroid/telephony/CellInfo;->mRegistered:Z
+Landroid/telephony/CellInfo;->mTimeStamp:J
+Landroid/telephony/CellInfo;->mTimeStampType:I
+Landroid/telephony/CellInfo;->setCellConnectionStatus(I)V
+Landroid/telephony/CellInfo;->setRegistered(Z)V
+Landroid/telephony/CellInfo;->setTimeStamp(J)V
+Landroid/telephony/CellInfo;->setTimeStampType(I)V
+Landroid/telephony/CellInfo;->TYPE_CDMA:I
+Landroid/telephony/CellInfo;->TYPE_GSM:I
+Landroid/telephony/CellInfo;->TYPE_LTE:I
+Landroid/telephony/CellInfo;->TYPE_WCDMA:I
+Landroid/telephony/CellInfo;->writeToParcel(Landroid/os/Parcel;II)V
+Landroid/telephony/CellInfoCdma;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellInfoCdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellInfoCdma;
+Landroid/telephony/CellInfoCdma;->DBG:Z
+Landroid/telephony/CellInfoCdma;->log(Ljava/lang/String;)V
+Landroid/telephony/CellInfoCdma;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/CellInfoCdma;->mCellIdentityCdma:Landroid/telephony/CellIdentityCdma;
+Landroid/telephony/CellInfoCdma;->mCellSignalStrengthCdma:Landroid/telephony/CellSignalStrengthCdma;
+Landroid/telephony/CellInfoCdma;->setCellSignalStrength(Landroid/telephony/CellSignalStrengthCdma;)V
+Landroid/telephony/CellInfoGsm;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellInfoGsm;-><init>(Landroid/telephony/CellInfoGsm;)V
+Landroid/telephony/CellInfoGsm;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellInfoGsm;
+Landroid/telephony/CellInfoGsm;->DBG:Z
+Landroid/telephony/CellInfoGsm;->log(Ljava/lang/String;)V
+Landroid/telephony/CellInfoGsm;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/CellInfoGsm;->mCellIdentityGsm:Landroid/telephony/CellIdentityGsm;
+Landroid/telephony/CellInfoGsm;->mCellSignalStrengthGsm:Landroid/telephony/CellSignalStrengthGsm;
+Landroid/telephony/CellInfoGsm;->setCellIdentity(Landroid/telephony/CellIdentityGsm;)V
+Landroid/telephony/CellInfoGsm;->setCellSignalStrength(Landroid/telephony/CellSignalStrengthGsm;)V
+Landroid/telephony/CellInfoLte;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellInfoLte;-><init>(Landroid/telephony/CellInfoLte;)V
+Landroid/telephony/CellInfoLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellInfoLte;
+Landroid/telephony/CellInfoLte;->DBG:Z
+Landroid/telephony/CellInfoLte;->log(Ljava/lang/String;)V
+Landroid/telephony/CellInfoLte;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/CellInfoLte;->mCellIdentityLte:Landroid/telephony/CellIdentityLte;
+Landroid/telephony/CellInfoLte;->mCellSignalStrengthLte:Landroid/telephony/CellSignalStrengthLte;
+Landroid/telephony/CellInfoWcdma;-><init>()V
+Landroid/telephony/CellInfoWcdma;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellInfoWcdma;-><init>(Landroid/telephony/CellInfoWcdma;)V
+Landroid/telephony/CellInfoWcdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellInfoWcdma;
+Landroid/telephony/CellInfoWcdma;->DBG:Z
+Landroid/telephony/CellInfoWcdma;->log(Ljava/lang/String;)V
+Landroid/telephony/CellInfoWcdma;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/CellInfoWcdma;->mCellIdentityWcdma:Landroid/telephony/CellIdentityWcdma;
+Landroid/telephony/CellInfoWcdma;->mCellSignalStrengthWcdma:Landroid/telephony/CellSignalStrengthWcdma;
+Landroid/telephony/CellInfoWcdma;->setCellIdentity(Landroid/telephony/CellIdentityWcdma;)V
+Landroid/telephony/CellInfoWcdma;->setCellSignalStrength(Landroid/telephony/CellSignalStrengthWcdma;)V
+Landroid/telephony/CellLocation;->setStateInvalid()V
+Landroid/telephony/CellSignalStrength;-><init>()V
+Landroid/telephony/CellSignalStrength;->copy()Landroid/telephony/CellSignalStrength;
+Landroid/telephony/CellSignalStrength;->NUM_SIGNAL_STRENGTH_BINS:I
+Landroid/telephony/CellSignalStrength;->setDefaultValues()V
+Landroid/telephony/CellSignalStrength;->SIGNAL_STRENGTH_NAMES:[Ljava/lang/String;
+Landroid/telephony/CellSignalStrengthCdma;-><init>()V
+Landroid/telephony/CellSignalStrengthCdma;-><init>(IIIII)V
+Landroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/telephony/CellSignalStrengthCdma;)V
+Landroid/telephony/CellSignalStrengthCdma;->copy()Landroid/telephony/CellSignalStrengthCdma;
+Landroid/telephony/CellSignalStrengthCdma;->copyFrom(Landroid/telephony/CellSignalStrengthCdma;)V
+Landroid/telephony/CellSignalStrengthCdma;->DBG:Z
+Landroid/telephony/CellSignalStrengthCdma;->log(Ljava/lang/String;)V
+Landroid/telephony/CellSignalStrengthCdma;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/CellSignalStrengthCdma;->mCdmaDbm:I
+Landroid/telephony/CellSignalStrengthCdma;->mCdmaEcio:I
+Landroid/telephony/CellSignalStrengthCdma;->mEvdoDbm:I
+Landroid/telephony/CellSignalStrengthCdma;->mEvdoEcio:I
+Landroid/telephony/CellSignalStrengthCdma;->mEvdoSnr:I
+Landroid/telephony/CellSignalStrengthCdma;->setCdmaDbm(I)V
+Landroid/telephony/CellSignalStrengthCdma;->setCdmaEcio(I)V
+Landroid/telephony/CellSignalStrengthCdma;->setDefaultValues()V
+Landroid/telephony/CellSignalStrengthCdma;->setEvdoDbm(I)V
+Landroid/telephony/CellSignalStrengthCdma;->setEvdoEcio(I)V
+Landroid/telephony/CellSignalStrengthCdma;->setEvdoSnr(I)V
+Landroid/telephony/CellSignalStrengthGsm;-><init>(II)V
+Landroid/telephony/CellSignalStrengthGsm;-><init>(III)V
+Landroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/telephony/CellSignalStrengthGsm;)V
+Landroid/telephony/CellSignalStrengthGsm;->copy()Landroid/telephony/CellSignalStrengthGsm;
+Landroid/telephony/CellSignalStrengthGsm;->copyFrom(Landroid/telephony/CellSignalStrengthGsm;)V
+Landroid/telephony/CellSignalStrengthGsm;->DBG:Z
+Landroid/telephony/CellSignalStrengthGsm;->GSM_SIGNAL_STRENGTH_GOOD:I
+Landroid/telephony/CellSignalStrengthGsm;->GSM_SIGNAL_STRENGTH_GREAT:I
+Landroid/telephony/CellSignalStrengthGsm;->GSM_SIGNAL_STRENGTH_MODERATE:I
+Landroid/telephony/CellSignalStrengthGsm;->log(Ljava/lang/String;)V
+Landroid/telephony/CellSignalStrengthGsm;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/CellSignalStrengthGsm;->setDefaultValues()V
+Landroid/telephony/CellSignalStrengthLte;-><init>(IIIIII)V
+Landroid/telephony/CellSignalStrengthLte;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellSignalStrengthLte;-><init>(Landroid/telephony/CellSignalStrengthLte;)V
+Landroid/telephony/CellSignalStrengthLte;->copy()Landroid/telephony/CellSignalStrengthLte;
+Landroid/telephony/CellSignalStrengthLte;->copyFrom(Landroid/telephony/CellSignalStrengthLte;)V
+Landroid/telephony/CellSignalStrengthLte;->DBG:Z
+Landroid/telephony/CellSignalStrengthLte;->log(Ljava/lang/String;)V
+Landroid/telephony/CellSignalStrengthLte;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/CellSignalStrengthLte;->setDefaultValues()V
+Landroid/telephony/CellSignalStrengthWcdma;-><init>()V
+Landroid/telephony/CellSignalStrengthWcdma;-><init>(II)V
+Landroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/telephony/CellSignalStrengthWcdma;)V
+Landroid/telephony/CellSignalStrengthWcdma;->copy()Landroid/telephony/CellSignalStrengthWcdma;
+Landroid/telephony/CellSignalStrengthWcdma;->copyFrom(Landroid/telephony/CellSignalStrengthWcdma;)V
+Landroid/telephony/CellSignalStrengthWcdma;->DBG:Z
+Landroid/telephony/CellSignalStrengthWcdma;->log(Ljava/lang/String;)V
+Landroid/telephony/CellSignalStrengthWcdma;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/CellSignalStrengthWcdma;->setDefaultValues()V
+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
+Landroid/telephony/ClientRequestStats;->addCompletedWakelockTime(J)V
+Landroid/telephony/ClientRequestStats;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/ClientRequestStats;->getCallingPackage()Ljava/lang/String;
+Landroid/telephony/ClientRequestStats;->getCompletedRequestsCount()J
+Landroid/telephony/ClientRequestStats;->getCompletedRequestsWakelockTime()J
+Landroid/telephony/ClientRequestStats;->getPendingRequestsCount()J
+Landroid/telephony/ClientRequestStats;->getPendingRequestsWakelockTime()J
+Landroid/telephony/ClientRequestStats;->getRequestHistograms()Ljava/util/List;
+Landroid/telephony/ClientRequestStats;->incrementCompletedRequestsCount()V
+Landroid/telephony/ClientRequestStats;->mCallingPackage:Ljava/lang/String;
+Landroid/telephony/ClientRequestStats;->mCompletedRequestsCount:J
+Landroid/telephony/ClientRequestStats;->mCompletedRequestsWakelockTime:J
+Landroid/telephony/ClientRequestStats;->mPendingRequestsCount:J
+Landroid/telephony/ClientRequestStats;->mPendingRequestsWakelockTime:J
+Landroid/telephony/ClientRequestStats;->mRequestHistograms:Landroid/util/SparseArray;
+Landroid/telephony/ClientRequestStats;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/telephony/ClientRequestStats;->REQUEST_HISTOGRAM_BUCKET_COUNT:I
+Landroid/telephony/ClientRequestStats;->setCallingPackage(Ljava/lang/String;)V
+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
+Landroid/telephony/data/ApnSetting$Builder;->mCarrierEnabled:Z
+Landroid/telephony/data/ApnSetting$Builder;->mEntryName:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting$Builder;->mId:I
+Landroid/telephony/data/ApnSetting$Builder;->mMaxConns:I
+Landroid/telephony/data/ApnSetting$Builder;->mMaxConnsTime:I
+Landroid/telephony/data/ApnSetting$Builder;->mMmsc:Landroid/net/Uri;
+Landroid/telephony/data/ApnSetting$Builder;->mMmsProxyAddress:Ljava/net/InetAddress;
+Landroid/telephony/data/ApnSetting$Builder;->mMmsProxyPort:I
+Landroid/telephony/data/ApnSetting$Builder;->mModemCognitive:Z
+Landroid/telephony/data/ApnSetting$Builder;->mMtu:I
+Landroid/telephony/data/ApnSetting$Builder;->mMvnoMatchData:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting$Builder;->mMvnoType:I
+Landroid/telephony/data/ApnSetting$Builder;->mNetworkTypeBitmask:I
+Landroid/telephony/data/ApnSetting$Builder;->mOperatorNumeric:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting$Builder;->mPassword:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting$Builder;->mProfileId:I
+Landroid/telephony/data/ApnSetting$Builder;->mProtocol:I
+Landroid/telephony/data/ApnSetting$Builder;->mProxyAddress:Ljava/net/InetAddress;
+Landroid/telephony/data/ApnSetting$Builder;->mProxyPort:I
+Landroid/telephony/data/ApnSetting$Builder;->mRoamingProtocol:I
+Landroid/telephony/data/ApnSetting$Builder;->mUser:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting$Builder;->mWaitTime:I
+Landroid/telephony/data/ApnSetting$Builder;->setId(I)Landroid/telephony/data/ApnSetting$Builder;
+Landroid/telephony/data/ApnSetting$Builder;->setMaxConns(I)Landroid/telephony/data/ApnSetting$Builder;
+Landroid/telephony/data/ApnSetting$Builder;->setMaxConnsTime(I)Landroid/telephony/data/ApnSetting$Builder;
+Landroid/telephony/data/ApnSetting$Builder;->setModemCognitive(Z)Landroid/telephony/data/ApnSetting$Builder;
+Landroid/telephony/data/ApnSetting$Builder;->setMtu(I)Landroid/telephony/data/ApnSetting$Builder;
+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;
+Landroid/telephony/data/ApnSetting;->canHandleType(I)Z
+Landroid/telephony/data/ApnSetting;->deParseTypes(I)Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->equals(Ljava/lang/Object;Z)Z
+Landroid/telephony/data/ApnSetting;->getMaxConns()I
+Landroid/telephony/data/ApnSetting;->getMaxConnsTime()I
+Landroid/telephony/data/ApnSetting;->getModemCognitive()Z
+Landroid/telephony/data/ApnSetting;->getMtu()I
+Landroid/telephony/data/ApnSetting;->getMvnoMatchData()Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->getPermanentFailed()Z
+Landroid/telephony/data/ApnSetting;->getProfileId()I
+Landroid/telephony/data/ApnSetting;->getWaitTime()I
+Landroid/telephony/data/ApnSetting;->hasMvnoParams()Z
+Landroid/telephony/data/ApnSetting;->inetAddressFromString(Ljava/lang/String;)Ljava/net/InetAddress;
+Landroid/telephony/data/ApnSetting;->inetAddressToString(Ljava/net/InetAddress;)Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->makeApnSetting(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/InetAddress;ILandroid/net/Uri;Ljava/net/InetAddress;ILjava/lang/String;Ljava/lang/String;IIIIZIIZIIIIILjava/lang/String;)Landroid/telephony/data/ApnSetting;
+Landroid/telephony/data/ApnSetting;->makeApnSetting(Landroid/database/Cursor;)Landroid/telephony/data/ApnSetting;
+Landroid/telephony/data/ApnSetting;->makeApnSetting(Landroid/telephony/data/ApnSetting;)Landroid/telephony/data/ApnSetting;
+Landroid/telephony/data/ApnSetting;->mApnName:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->mApnTypeBitmask:I
+Landroid/telephony/data/ApnSetting;->mAuthType:I
+Landroid/telephony/data/ApnSetting;->mCarrierEnabled:Z
+Landroid/telephony/data/ApnSetting;->mEntryName:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->mId:I
+Landroid/telephony/data/ApnSetting;->mMaxConns:I
+Landroid/telephony/data/ApnSetting;->mMaxConnsTime:I
+Landroid/telephony/data/ApnSetting;->mMmsc:Landroid/net/Uri;
+Landroid/telephony/data/ApnSetting;->mMmsProxyAddress:Ljava/net/InetAddress;
+Landroid/telephony/data/ApnSetting;->mMmsProxyPort:I
+Landroid/telephony/data/ApnSetting;->mModemCognitive:Z
+Landroid/telephony/data/ApnSetting;->mMtu:I
+Landroid/telephony/data/ApnSetting;->mMvnoMatchData:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->mMvnoType:I
+Landroid/telephony/data/ApnSetting;->mNetworkTypeBitmask:I
+Landroid/telephony/data/ApnSetting;->mOperatorNumeric:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->mPassword:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->mPermanentFailed:Z
+Landroid/telephony/data/ApnSetting;->mProfileId:I
+Landroid/telephony/data/ApnSetting;->mProtocol:I
+Landroid/telephony/data/ApnSetting;->mProxyAddress:Ljava/net/InetAddress;
+Landroid/telephony/data/ApnSetting;->mProxyPort:I
+Landroid/telephony/data/ApnSetting;->mRoamingProtocol:I
+Landroid/telephony/data/ApnSetting;->mUser:Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->MVNO_TYPE_INT_MAP:Ljava/util/Map;
+Landroid/telephony/data/ApnSetting;->MVNO_TYPE_STRING_MAP:Ljava/util/Map;
+Landroid/telephony/data/ApnSetting;->mWaitTime:I
+Landroid/telephony/data/ApnSetting;->NOT_IN_MAP_INT:I
+Landroid/telephony/data/ApnSetting;->NO_PORT_SPECIFIED:I
+Landroid/telephony/data/ApnSetting;->nullToEmpty(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->nullToNotInMapInt(Ljava/lang/Integer;)I
+Landroid/telephony/data/ApnSetting;->parseTypes(Ljava/lang/String;)I
+Landroid/telephony/data/ApnSetting;->portFromString(Ljava/lang/String;)I
+Landroid/telephony/data/ApnSetting;->portToString(I)Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->PROTOCOL_INT_MAP:Ljava/util/Map;
+Landroid/telephony/data/ApnSetting;->PROTOCOL_STRING_MAP:Ljava/util/Map;
+Landroid/telephony/data/ApnSetting;->readFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting;
+Landroid/telephony/data/ApnSetting;->setPermanentFailed(Z)V
+Landroid/telephony/data/ApnSetting;->similar(Landroid/telephony/data/ApnSetting;)Z
+Landroid/telephony/data/ApnSetting;->toContentValues()Landroid/content/ContentValues;
+Landroid/telephony/data/ApnSetting;->typeSameAny(Landroid/telephony/data/ApnSetting;Landroid/telephony/data/ApnSetting;)Z
+Landroid/telephony/data/ApnSetting;->TYPE_ALL_BUT_IA:I
+Landroid/telephony/data/ApnSetting;->UriFromString(Ljava/lang/String;)Landroid/net/Uri;
+Landroid/telephony/data/ApnSetting;->UriToString(Landroid/net/Uri;)Ljava/lang/String;
+Landroid/telephony/data/ApnSetting;->VDBG:Z
+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;
+Landroid/telephony/data/DataCallResponse;->getActive()I
+Landroid/telephony/data/DataCallResponse;->getAddresses()Ljava/util/List;
+Landroid/telephony/data/DataCallResponse;->getCallId()I
+Landroid/telephony/data/DataCallResponse;->getDnses()Ljava/util/List;
+Landroid/telephony/data/DataCallResponse;->getGateways()Ljava/util/List;
+Landroid/telephony/data/DataCallResponse;->getIfname()Ljava/lang/String;
+Landroid/telephony/data/DataCallResponse;->getMtu()I
+Landroid/telephony/data/DataCallResponse;->getPcscfs()Ljava/util/List;
+Landroid/telephony/data/DataCallResponse;->getStatus()I
+Landroid/telephony/data/DataCallResponse;->getSuggestedRetryTime()I
+Landroid/telephony/data/DataCallResponse;->getType()Ljava/lang/String;
+Landroid/telephony/data/DataCallResponse;->mActive:I
+Landroid/telephony/data/DataCallResponse;->mAddresses:Ljava/util/List;
+Landroid/telephony/data/DataCallResponse;->mCid:I
+Landroid/telephony/data/DataCallResponse;->mDnses:Ljava/util/List;
+Landroid/telephony/data/DataCallResponse;->mGateways:Ljava/util/List;
+Landroid/telephony/data/DataCallResponse;->mIfname:Ljava/lang/String;
+Landroid/telephony/data/DataCallResponse;->mMtu:I
+Landroid/telephony/data/DataCallResponse;->mPcscfs:Ljava/util/List;
+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;
+Landroid/telephony/data/DataProfile;->getApn()Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->getAuthType()I
+Landroid/telephony/data/DataProfile;->getBearerBitmap()I
+Landroid/telephony/data/DataProfile;->getMaxConns()I
+Landroid/telephony/data/DataProfile;->getMaxConnsTime()I
+Landroid/telephony/data/DataProfile;->getMtu()I
+Landroid/telephony/data/DataProfile;->getMvnoMatchData()Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->getMvnoType()Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->getPassword()Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->getProfileId()I
+Landroid/telephony/data/DataProfile;->getProtocol()Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->getRoamingProtocol()Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->getSupportedApnTypesBitmap()I
+Landroid/telephony/data/DataProfile;->getType()I
+Landroid/telephony/data/DataProfile;->getUserName()Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->getWaitTime()I
+Landroid/telephony/data/DataProfile;->isEnabled()Z
+Landroid/telephony/data/DataProfile;->isModemCognitive()Z
+Landroid/telephony/data/DataProfile;->mApn:Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->mAuthType:I
+Landroid/telephony/data/DataProfile;->mBearerBitmap:I
+Landroid/telephony/data/DataProfile;->mEnabled:Z
+Landroid/telephony/data/DataProfile;->mMaxConns:I
+Landroid/telephony/data/DataProfile;->mMaxConnsTime:I
+Landroid/telephony/data/DataProfile;->mModemCognitive:Z
+Landroid/telephony/data/DataProfile;->mMtu:I
+Landroid/telephony/data/DataProfile;->mMvnoMatchData:Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->mMvnoType:Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->mPassword:Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->mProfileId:I
+Landroid/telephony/data/DataProfile;->mProtocol:Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->mRoamingProtocol:Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->mSupportedApnTypesBitmap:I
+Landroid/telephony/data/DataProfile;->mType:I
+Landroid/telephony/data/DataProfile;->mUserName:Ljava/lang/String;
+Landroid/telephony/data/DataProfile;->mWaitTime:I
+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
+Landroid/telephony/data/DataService$DataServiceProvider;->mDataCallListChangedCallbacks:Ljava/util/List;
+Landroid/telephony/data/DataService$DataServiceProvider;->mSlotId:I
+Landroid/telephony/data/DataService$DataServiceProvider;->notifyDataCallListChanged(Ljava/util/List;)V
+Landroid/telephony/data/DataService$DataServiceProvider;->onDestroy()V
+Landroid/telephony/data/DataService$DataServiceProvider;->registerForDataCallListChanged(Landroid/telephony/data/IDataServiceCallback;)V
+Landroid/telephony/data/DataService$DataServiceProvider;->setDataProfile(Ljava/util/List;ZLandroid/telephony/data/DataServiceCallback;)V
+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
+Landroid/telephony/data/DataService$IDataServiceWrapper;->registerForDataCallListChanged(ILandroid/telephony/data/IDataServiceCallback;)V
+Landroid/telephony/data/DataService$IDataServiceWrapper;->removeDataServiceProvider(I)V
+Landroid/telephony/data/DataService$IDataServiceWrapper;->setDataProfile(ILjava/util/List;ZLandroid/telephony/data/IDataServiceCallback;)V
+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
+Landroid/telephony/data/DataService$SetupDataCallRequest;->callback:Landroid/telephony/data/IDataServiceCallback;
+Landroid/telephony/data/DataService$SetupDataCallRequest;->dataProfile:Landroid/telephony/data/DataProfile;
+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
+Landroid/telephony/data/DataService;->DATA_SERVICE_EXTRA_SLOT_ID:Ljava/lang/String;
+Landroid/telephony/data/DataService;->DATA_SERVICE_INDICATION_DATA_CALL_LIST_CHANGED:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_INTERFACE:Ljava/lang/String;
+Landroid/telephony/data/DataService;->DATA_SERVICE_REMOVE_ALL_DATA_SERVICE_PROVIDERS:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_REMOVE_DATA_SERVICE_PROVIDER:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_REQUEST_DEACTIVATE_DATA_CALL:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_REQUEST_GET_DATA_CALL_LIST:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_REQUEST_REGISTER_DATA_CALL_LIST_CHANGED:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_REQUEST_SETUP_DATA_CALL:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_REQUEST_SET_DATA_PROFILE:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_REQUEST_SET_INITIAL_ATTACH_APN:I
+Landroid/telephony/data/DataService;->DATA_SERVICE_REQUEST_UNREGISTER_DATA_CALL_LIST_CHANGED:I
+Landroid/telephony/data/DataService;->log(Ljava/lang/String;)V
+Landroid/telephony/data/DataService;->loge(Ljava/lang/String;)V
+Landroid/telephony/data/DataService;->mBinder:Landroid/telephony/data/DataService$IDataServiceWrapper;
+Landroid/telephony/data/DataService;->mHandler:Landroid/telephony/data/DataService$DataServiceHandler;
+Landroid/telephony/data/DataService;->mHandlerThread:Landroid/os/HandlerThread;
+Landroid/telephony/data/DataService;->mServiceMap:Landroid/util/SparseArray;
+Landroid/telephony/data/DataService;->REQUEST_REASON_HANDOVER:I
+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
+Landroid/telephony/data/DataServiceCallback;->onDeactivateDataCallComplete(I)V
+Landroid/telephony/data/DataServiceCallback;->onGetDataCallListComplete(ILjava/util/List;)V
+Landroid/telephony/data/DataServiceCallback;->onSetDataProfileComplete(I)V
+Landroid/telephony/data/DataServiceCallback;->onSetInitialAttachApnComplete(I)V
+Landroid/telephony/data/DataServiceCallback;->onSetupDataCallComplete(ILandroid/telephony/data/DataCallResponse;)V
+Landroid/telephony/data/DataServiceCallback;->RESULT_ERROR_BUSY:I
+Landroid/telephony/data/DataServiceCallback;->RESULT_ERROR_ILLEGAL_STATE:I
+Landroid/telephony/data/DataServiceCallback;->RESULT_ERROR_INVALID_ARG:I
+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
+Landroid/telephony/data/IDataService$Stub$Proxy;->getDataCallList(ILandroid/telephony/data/IDataServiceCallback;)V
+Landroid/telephony/data/IDataService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/telephony/data/IDataService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/telephony/data/IDataService$Stub$Proxy;->registerForDataCallListChanged(ILandroid/telephony/data/IDataServiceCallback;)V
+Landroid/telephony/data/IDataService$Stub$Proxy;->removeDataServiceProvider(I)V
+Landroid/telephony/data/IDataService$Stub$Proxy;->setDataProfile(ILjava/util/List;ZLandroid/telephony/data/IDataServiceCallback;)V
+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;
+Landroid/telephony/data/IDataService$Stub;->TRANSACTION_createDataServiceProvider:I
+Landroid/telephony/data/IDataService$Stub;->TRANSACTION_deactivateDataCall:I
+Landroid/telephony/data/IDataService$Stub;->TRANSACTION_getDataCallList:I
+Landroid/telephony/data/IDataService$Stub;->TRANSACTION_registerForDataCallListChanged:I
+Landroid/telephony/data/IDataService$Stub;->TRANSACTION_removeDataServiceProvider:I
+Landroid/telephony/data/IDataService$Stub;->TRANSACTION_setDataProfile:I
+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
+Landroid/telephony/data/IDataService;->registerForDataCallListChanged(ILandroid/telephony/data/IDataServiceCallback;)V
+Landroid/telephony/data/IDataService;->removeDataServiceProvider(I)V
+Landroid/telephony/data/IDataService;->setDataProfile(ILjava/util/List;ZLandroid/telephony/data/IDataServiceCallback;)V
+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;
+Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;->onDataCallListChanged(Ljava/util/List;)V
+Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;->onDeactivateDataCallComplete(I)V
+Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;->onGetDataCallListComplete(ILjava/util/List;)V
+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;
+Landroid/telephony/data/IDataServiceCallback$Stub;->TRANSACTION_onDataCallListChanged:I
+Landroid/telephony/data/IDataServiceCallback$Stub;->TRANSACTION_onDeactivateDataCallComplete:I
+Landroid/telephony/data/IDataServiceCallback$Stub;->TRANSACTION_onGetDataCallListComplete:I
+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
+Landroid/telephony/DataConnectionRealTimeInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/DataConnectionRealTimeInfo;->DC_POWER_STATE_HIGH:I
+Landroid/telephony/DataConnectionRealTimeInfo;->DC_POWER_STATE_LOW:I
+Landroid/telephony/DataConnectionRealTimeInfo;->DC_POWER_STATE_MEDIUM:I
+Landroid/telephony/DataConnectionRealTimeInfo;->DC_POWER_STATE_UNKNOWN:I
+Landroid/telephony/DataConnectionRealTimeInfo;->getDcPowerState()I
+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
+Landroid/telephony/DisconnectCause;->CALL_BARRED:I
+Landroid/telephony/DisconnectCause;->CALL_PULLED:I
+Landroid/telephony/DisconnectCause;->CDMA_ACCESS_BLOCKED:I
+Landroid/telephony/DisconnectCause;->CDMA_ACCESS_FAILURE:I
+Landroid/telephony/DisconnectCause;->CDMA_ALREADY_ACTIVATED:I
+Landroid/telephony/DisconnectCause;->CDMA_CALL_LOST:I
+Landroid/telephony/DisconnectCause;->CDMA_DROP:I
+Landroid/telephony/DisconnectCause;->CDMA_INTERCEPT:I
+Landroid/telephony/DisconnectCause;->CDMA_LOCKED_UNTIL_POWER_CYCLE:I
+Landroid/telephony/DisconnectCause;->CDMA_NOT_EMERGENCY:I
+Landroid/telephony/DisconnectCause;->CDMA_PREEMPTED:I
+Landroid/telephony/DisconnectCause;->CDMA_REORDER:I
+Landroid/telephony/DisconnectCause;->CDMA_RETRY_ORDER:I
+Landroid/telephony/DisconnectCause;->CDMA_SO_REJECT:I
+Landroid/telephony/DisconnectCause;->CONGESTION:I
+Landroid/telephony/DisconnectCause;->CS_RESTRICTED:I
+Landroid/telephony/DisconnectCause;->CS_RESTRICTED_EMERGENCY:I
+Landroid/telephony/DisconnectCause;->CS_RESTRICTED_NORMAL:I
+Landroid/telephony/DisconnectCause;->DATA_DISABLED:I
+Landroid/telephony/DisconnectCause;->DATA_LIMIT_REACHED:I
+Landroid/telephony/DisconnectCause;->DIALED_CALL_FORWARDING_WHILE_ROAMING:I
+Landroid/telephony/DisconnectCause;->DIALED_MMI:I
+Landroid/telephony/DisconnectCause;->DIAL_LOW_BATTERY:I
+Landroid/telephony/DisconnectCause;->DIAL_MODIFIED_TO_DIAL:I
+Landroid/telephony/DisconnectCause;->DIAL_MODIFIED_TO_DIAL_VIDEO:I
+Landroid/telephony/DisconnectCause;->DIAL_MODIFIED_TO_SS:I
+Landroid/telephony/DisconnectCause;->DIAL_MODIFIED_TO_USSD:I
+Landroid/telephony/DisconnectCause;->DIAL_VIDEO_MODIFIED_TO_DIAL:I
+Landroid/telephony/DisconnectCause;->DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO:I
+Landroid/telephony/DisconnectCause;->DIAL_VIDEO_MODIFIED_TO_SS:I
+Landroid/telephony/DisconnectCause;->DIAL_VIDEO_MODIFIED_TO_USSD:I
+Landroid/telephony/DisconnectCause;->EMERGENCY_ONLY:I
+Landroid/telephony/DisconnectCause;->EMERGENCY_PERM_FAILURE:I
+Landroid/telephony/DisconnectCause;->EMERGENCY_TEMP_FAILURE:I
+Landroid/telephony/DisconnectCause;->ERROR_UNSPECIFIED:I
+Landroid/telephony/DisconnectCause;->EXITED_ECM:I
+Landroid/telephony/DisconnectCause;->FDN_BLOCKED:I
+Landroid/telephony/DisconnectCause;->ICC_ERROR:I
+Landroid/telephony/DisconnectCause;->IMEI_NOT_ACCEPTED:I
+Landroid/telephony/DisconnectCause;->IMS_ACCESS_BLOCKED:I
+Landroid/telephony/DisconnectCause;->IMS_MERGED_SUCCESSFULLY:I
+Landroid/telephony/DisconnectCause;->IMS_SIP_ALTERNATE_EMERGENCY_CALL:I
+Landroid/telephony/DisconnectCause;->INCOMING_MISSED:I
+Landroid/telephony/DisconnectCause;->INCOMING_REJECTED:I
+Landroid/telephony/DisconnectCause;->INVALID_CREDENTIALS:I
+Landroid/telephony/DisconnectCause;->INVALID_NUMBER:I
+Landroid/telephony/DisconnectCause;->LIMIT_EXCEEDED:I
+Landroid/telephony/DisconnectCause;->LOCAL:I
+Landroid/telephony/DisconnectCause;->LOST_SIGNAL:I
+Landroid/telephony/DisconnectCause;->LOW_BATTERY:I
+Landroid/telephony/DisconnectCause;->MAXIMUM_NUMBER_OF_CALLS_REACHED:I
+Landroid/telephony/DisconnectCause;->MMI:I
+Landroid/telephony/DisconnectCause;->NORMAL:I
+Landroid/telephony/DisconnectCause;->NORMAL_UNSPECIFIED:I
+Landroid/telephony/DisconnectCause;->NOT_DISCONNECTED:I
+Landroid/telephony/DisconnectCause;->NOT_VALID:I
+Landroid/telephony/DisconnectCause;->NO_PHONE_NUMBER_SUPPLIED:I
+Landroid/telephony/DisconnectCause;->NUMBER_UNREACHABLE:I
+Landroid/telephony/DisconnectCause;->OUTGOING_CANCELED:I
+Landroid/telephony/DisconnectCause;->OUTGOING_FAILURE:I
+Landroid/telephony/DisconnectCause;->OUT_OF_NETWORK:I
+Landroid/telephony/DisconnectCause;->OUT_OF_SERVICE:I
+Landroid/telephony/DisconnectCause;->POWER_OFF:I
+Landroid/telephony/DisconnectCause;->SERVER_ERROR:I
+Landroid/telephony/DisconnectCause;->SERVER_UNREACHABLE:I
+Landroid/telephony/DisconnectCause;->TIMED_OUT:I
+Landroid/telephony/DisconnectCause;->UNOBTAINABLE_NUMBER:I
+Landroid/telephony/DisconnectCause;->VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED:I
+Landroid/telephony/DisconnectCause;->VOICEMAIL_NUMBER_MISSING:I
+Landroid/telephony/DisconnectCause;->WIFI_LOST:I
+Landroid/telephony/euicc/DownloadableSubscription$Builder;->accessRules:Ljava/util/List;
+Landroid/telephony/euicc/DownloadableSubscription$Builder;->carrierName:Ljava/lang/String;
+Landroid/telephony/euicc/DownloadableSubscription$Builder;->confirmationCode:Ljava/lang/String;
+Landroid/telephony/euicc/DownloadableSubscription$Builder;->encodedActivationCode:Ljava/lang/String;
+Landroid/telephony/euicc/DownloadableSubscription;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/euicc/DownloadableSubscription;-><init>(Ljava/lang/String;)V
+Landroid/telephony/euicc/DownloadableSubscription;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
+Landroid/telephony/euicc/DownloadableSubscription;->accessRules:Ljava/util/List;
+Landroid/telephony/euicc/DownloadableSubscription;->carrierName:Ljava/lang/String;
+Landroid/telephony/euicc/DownloadableSubscription;->confirmationCode:Ljava/lang/String;
+Landroid/telephony/euicc/DownloadableSubscription;->setAccessRules(Ljava/util/List;)V
+Landroid/telephony/euicc/DownloadableSubscription;->setConfirmationCode(Ljava/lang/String;)V
+Landroid/telephony/euicc/EuiccCardManager;-><init>(Landroid/content/Context;)V
+Landroid/telephony/euicc/EuiccCardManager;->getIEuiccCardController()Lcom/android/internal/telephony/euicc/IEuiccCardController;
+Landroid/telephony/euicc/EuiccCardManager;->mContext:Landroid/content/Context;
+Landroid/telephony/euicc/EuiccCardManager;->TAG:Ljava/lang/String;
+Landroid/telephony/euicc/EuiccInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/euicc/EuiccManager;-><init>(Landroid/content/Context;)V
+Landroid/telephony/euicc/EuiccManager;->ACTION_RESOLVE_ERROR:Ljava/lang/String;
+Landroid/telephony/euicc/EuiccManager;->EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_ACTION:Ljava/lang/String;
+Landroid/telephony/euicc/EuiccManager;->EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_CALLBACK_INTENT:Ljava/lang/String;
+Landroid/telephony/euicc/EuiccManager;->EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_INTENT:Ljava/lang/String;
+Landroid/telephony/euicc/EuiccManager;->EXTRA_FORCE_PROVISION:Ljava/lang/String;
+Landroid/telephony/euicc/EuiccManager;->getIEuiccController()Lcom/android/internal/telephony/euicc/IEuiccController;
+Landroid/telephony/euicc/EuiccManager;->mContext:Landroid/content/Context;
+Landroid/telephony/euicc/EuiccManager;->retainSubscriptionsForFactoryReset(Landroid/app/PendingIntent;)V
+Landroid/telephony/euicc/EuiccManager;->sendUnavailableError(Landroid/app/PendingIntent;)V
+Landroid/telephony/euicc/EuiccManager;->updateSubscriptionNickname(ILjava/lang/String;Landroid/app/PendingIntent;)V
+Landroid/telephony/euicc/EuiccNotification;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/euicc/EuiccNotification;->mData:[B
+Landroid/telephony/euicc/EuiccNotification;->mEvent:I
+Landroid/telephony/euicc/EuiccNotification;->mSeq:I
+Landroid/telephony/euicc/EuiccNotification;->mTargetAddr:Ljava/lang/String;
+Landroid/telephony/euicc/EuiccRulesAuthTable$Builder;->mCarrierIds:[[Landroid/service/carrier/CarrierIdentifier;
+Landroid/telephony/euicc/EuiccRulesAuthTable$Builder;->mPolicyRuleFlags:[I
+Landroid/telephony/euicc/EuiccRulesAuthTable$Builder;->mPolicyRules:[I
+Landroid/telephony/euicc/EuiccRulesAuthTable$Builder;->mPosition:I
+Landroid/telephony/euicc/EuiccRulesAuthTable;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/euicc/EuiccRulesAuthTable;-><init>([I[[Landroid/service/carrier/CarrierIdentifier;[I)V
+Landroid/telephony/euicc/EuiccRulesAuthTable;->match(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/euicc/EuiccRulesAuthTable;->mCarrierIds:[[Landroid/service/carrier/CarrierIdentifier;
+Landroid/telephony/euicc/EuiccRulesAuthTable;->mPolicyRuleFlags:[I
+Landroid/telephony/euicc/EuiccRulesAuthTable;->mPolicyRules:[I
+Landroid/telephony/gsm/GsmCellLocation;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z
+Landroid/telephony/gsm/GsmCellLocation;->isEmpty()Z
+Landroid/telephony/gsm/GsmCellLocation;->mCid:I
+Landroid/telephony/gsm/GsmCellLocation;->mLac:I
+Landroid/telephony/gsm/GsmCellLocation;->mPsc:I
+Landroid/telephony/gsm/SmsManager;-><init>()V
+Landroid/telephony/gsm/SmsManager;->copyMessageToSim([B[BI)Z
+Landroid/telephony/gsm/SmsManager;->deleteMessageFromSim(I)Z
+Landroid/telephony/gsm/SmsManager;->getAllMessagesFromSim()Ljava/util/ArrayList;
+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
+Landroid/telephony/gsm/SmsMessage;->getSmsFacility()Lcom/android/internal/telephony/SmsMessageBase;
+Landroid/telephony/gsm/SmsMessage;->getStatusOnIcc()I
+Landroid/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[B)Landroid/telephony/gsm/SmsMessage$SubmitPdu;
+Landroid/telephony/gsm/SmsMessage;->MAX_USER_DATA_BYTES_WITH_HEADER:I
+Landroid/telephony/gsm/SmsMessage;->mWrappedSmsMessage:Lcom/android/internal/telephony/SmsMessageBase;
+Landroid/telephony/IccOpenLogicalChannelResponse;-><init>(II[B)V
+Landroid/telephony/IccOpenLogicalChannelResponse;-><init>(Landroid/os/Parcel;)V
+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;
+Landroid/telephony/ims/compat/feature/ImsFeature;->addImsFeatureStatusCallback(Lcom/android/ims/internal/IImsFeatureStatusCallback;)V
+Landroid/telephony/ims/compat/feature/ImsFeature;->EMERGENCY_MMTEL:I
+Landroid/telephony/ims/compat/feature/ImsFeature;->EXTRA_PHONE_ID:Ljava/lang/String;
+Landroid/telephony/ims/compat/feature/ImsFeature;->getBinder()Landroid/os/IInterface;
+Landroid/telephony/ims/compat/feature/ImsFeature;->INVALID:I
+Landroid/telephony/ims/compat/feature/ImsFeature;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/ims/compat/feature/ImsFeature;->MAX:I
+Landroid/telephony/ims/compat/feature/ImsFeature;->mContext:Landroid/content/Context;
+Landroid/telephony/ims/compat/feature/ImsFeature;->MMTEL:I
+Landroid/telephony/ims/compat/feature/ImsFeature;->mSlotId:I
+Landroid/telephony/ims/compat/feature/ImsFeature;->mState:I
+Landroid/telephony/ims/compat/feature/ImsFeature;->mStatusCallbacks:Ljava/util/Set;
+Landroid/telephony/ims/compat/feature/ImsFeature;->notifyFeatureState(I)V
+Landroid/telephony/ims/compat/feature/ImsFeature;->onFeatureReady()V
+Landroid/telephony/ims/compat/feature/ImsFeature;->onFeatureRemoved()V
+Landroid/telephony/ims/compat/feature/ImsFeature;->RCS:I
+Landroid/telephony/ims/compat/feature/ImsFeature;->removeImsFeatureStatusCallback(Lcom/android/ims/internal/IImsFeatureStatusCallback;)V
+Landroid/telephony/ims/compat/feature/ImsFeature;->sendImsServiceIntent(I)V
+Landroid/telephony/ims/compat/feature/ImsFeature;->setContext(Landroid/content/Context;)V
+Landroid/telephony/ims/compat/feature/ImsFeature;->setSlotId(I)V
+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;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->endSession(I)V
+Landroid/telephony/ims/compat/feature/MMTelFeature;->getBinder()Lcom/android/ims/internal/IImsMMTelFeature;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->getConfigInterface()Lcom/android/ims/internal/IImsConfig;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->getEcbmInterface()Landroid/telephony/ims/stub/ImsEcbmImplBase;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->getMultiEndpointInterface()Landroid/telephony/ims/stub/ImsMultiEndpointImplBase;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->getPendingCallSession(ILjava/lang/String;)Lcom/android/ims/internal/IImsCallSession;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->getUtInterface()Landroid/telephony/ims/stub/ImsUtImplBase;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->isConnected(II)Z
+Landroid/telephony/ims/compat/feature/MMTelFeature;->isOpened()Z
+Landroid/telephony/ims/compat/feature/MMTelFeature;->mImsMMTelBinder:Lcom/android/ims/internal/IImsMMTelFeature;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->mLock:Ljava/lang/Object;
+Landroid/telephony/ims/compat/feature/MMTelFeature;->onFeatureReady()V
+Landroid/telephony/ims/compat/feature/MMTelFeature;->onFeatureRemoved()V
+Landroid/telephony/ims/compat/feature/MMTelFeature;->removeRegistrationListener(Lcom/android/ims/internal/IImsRegistrationListener;)V
+Landroid/telephony/ims/compat/feature/MMTelFeature;->setUiTTYMode(ILandroid/os/Message;)V
+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;
+Landroid/telephony/ims/compat/ImsService;->createRcsFeatureInternal(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsRcsFeature;
+Landroid/telephony/ims/compat/ImsService;->getFeatures(I)Landroid/util/SparseArray;
+Landroid/telephony/ims/compat/ImsService;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/ims/compat/ImsService;->mFeaturesBySlot:Landroid/util/SparseArray;
+Landroid/telephony/ims/compat/ImsService;->onCreateEmergencyMMTelImsFeature(I)Landroid/telephony/ims/compat/feature/MMTelFeature;
+Landroid/telephony/ims/compat/ImsService;->onCreateMMTelImsFeature(I)Landroid/telephony/ims/compat/feature/MMTelFeature;
+Landroid/telephony/ims/compat/ImsService;->onCreateRcsFeature(I)Landroid/telephony/ims/compat/feature/RcsFeature;
+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
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionConferenceStateUpdated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsConferenceState;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionHandover(Lcom/android/ims/internal/IImsCallSession;IILandroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionHandoverFailed(Lcom/android/ims/internal/IImsCallSession;IILandroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionHeld(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionHoldFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionHoldReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionInviteParticipantsRequestDelivered(Lcom/android/ims/internal/IImsCallSession;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionInviteParticipantsRequestFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionMayHandover(Lcom/android/ims/internal/IImsCallSession;II)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionMergeComplete(Lcom/android/ims/internal/IImsCallSession;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionMergeFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionMergeStarted(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionMultipartyStateChanged(Lcom/android/ims/internal/IImsCallSession;Z)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionProgressing(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionRemoveParticipantsRequestDelivered(Lcom/android/ims/internal/IImsCallSession;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionRemoveParticipantsRequestFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionResumed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionResumeFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionResumeReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionRttMessageReceived(Ljava/lang/String;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionRttModifyRequestReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionRttModifyResponseReceived(I)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionStarted(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionStartFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionSuppServiceReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsSuppServiceNotification;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionTerminated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionTtyModeReceived(Lcom/android/ims/internal/IImsCallSession;I)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionUpdated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionUpdateFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+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
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->extendToConference([Ljava/lang/String;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->getCallId()Ljava/lang/String;
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->getCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->getLocalCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->getRemoteCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->getState()I
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->getVideoCallProvider()Lcom/android/ims/internal/IImsVideoCallProvider;
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->hold(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->inviteParticipants([Ljava/lang/String;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->isInCall()Z
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->isMultiparty()Z
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->merge()V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->reject(I)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->removeParticipants([Ljava/lang/String;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->resume(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->sendDtmf(CLandroid/os/Message;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->sendRttMessage(Ljava/lang/String;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->sendRttModifyRequest(Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->sendRttModifyResponse(Z)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->sendUssd(Ljava/lang/String;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->setListener(Landroid/telephony/ims/aidl/IImsCallSessionListener;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->setListener(Lcom/android/ims/internal/IImsCallSessionListener;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->setMute(Z)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->start(Ljava/lang/String;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->startConference([Ljava/lang/String;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->startDtmf(C)V
+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;
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->getProvisionedStringValue(I)Ljava/lang/String;
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->getProvisionedValue(I)I
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->getVideoQuality(Lcom/android/ims/ImsConfigListener;)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->getVolteProvisioned()Z
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->mContext:Landroid/content/Context;
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->mImsConfigImplBaseWeakReference:Ljava/lang/ref/WeakReference;
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->mProvisionedIntValue:Ljava/util/HashMap;
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->mProvisionedStringValue:Ljava/util/HashMap;
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->sendImsConfigChangedIntent(II)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->sendImsConfigChangedIntent(ILjava/lang/String;)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->setFeatureValue(IIILcom/android/ims/ImsConfigListener;)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->setProvisionedStringValue(ILjava/lang/String;)I
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->setProvisionedValue(II)I
+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
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->getVideoQuality(Lcom/android/ims/ImsConfigListener;)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->getVolteProvisioned()Z
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->mImsConfigStub:Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->notifyProvisionedValueChanged(II)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->notifyProvisionedValueChanged(ILjava/lang/String;)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->setFeatureValue(IIILcom/android/ims/ImsConfigListener;)V
+Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->setProvisionedStringValue(ILjava/lang/String;)I
+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
+Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;->utConfigurationCallWaitingQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsSsInfo;)V
+Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;->utConfigurationQueried(Lcom/android/ims/internal/IImsUt;ILandroid/os/Bundle;)V
+Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;->utConfigurationQueryFailed(Lcom/android/ims/internal/IImsUt;ILandroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;->utConfigurationUpdated(Lcom/android/ims/internal/IImsUt;I)V
+Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;->utConfigurationUpdateFailed(Lcom/android/ims/internal/IImsUt;ILandroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair;->mCapability:I
+Landroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair;->radioTech:I
+Landroid/telephony/ims/feature/CapabilityChangeRequest;-><init>()V
+Landroid/telephony/ims/feature/CapabilityChangeRequest;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/telephony/ims/feature/ImsFeature$Capabilities;->copy()Landroid/telephony/ims/feature/ImsFeature$Capabilities;
+Landroid/telephony/ims/feature/ImsFeature$Capabilities;->getMask()I
+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
+Landroid/telephony/ims/feature/ImsFeature$CapabilityCallback;->onChangeCapabilityConfigurationError(III)V
+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
+Landroid/telephony/ims/feature/ImsFeature;->addImsFeatureStatusCallback(Lcom/android/ims/internal/IImsFeatureStatusCallback;)V
+Landroid/telephony/ims/feature/ImsFeature;->EXTRA_PHONE_ID:Ljava/lang/String;
+Landroid/telephony/ims/feature/ImsFeature;->FEATURE_INVALID:I
+Landroid/telephony/ims/feature/ImsFeature;->FEATURE_MAX:I
+Landroid/telephony/ims/feature/ImsFeature;->getBinder()Landroid/os/IInterface;
+Landroid/telephony/ims/feature/ImsFeature;->getFeatureState()I
+Landroid/telephony/ims/feature/ImsFeature;->initialize(Landroid/content/Context;I)V
+Landroid/telephony/ims/feature/ImsFeature;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/ims/feature/ImsFeature;->mCapabilityCallbacks:Landroid/os/RemoteCallbackList;
+Landroid/telephony/ims/feature/ImsFeature;->mCapabilityStatus:Landroid/telephony/ims/feature/ImsFeature$Capabilities;
+Landroid/telephony/ims/feature/ImsFeature;->mContext:Landroid/content/Context;
+Landroid/telephony/ims/feature/ImsFeature;->mLock:Ljava/lang/Object;
+Landroid/telephony/ims/feature/ImsFeature;->mSlotId:I
+Landroid/telephony/ims/feature/ImsFeature;->mState:I
+Landroid/telephony/ims/feature/ImsFeature;->mStatusCallbacks:Ljava/util/Set;
+Landroid/telephony/ims/feature/ImsFeature;->notifyCapabilitiesStatusChanged(Landroid/telephony/ims/feature/ImsFeature$Capabilities;)V
+Landroid/telephony/ims/feature/ImsFeature;->notifyFeatureState(I)V
+Landroid/telephony/ims/feature/ImsFeature;->queryCapabilityStatus()Landroid/telephony/ims/feature/ImsFeature$Capabilities;
+Landroid/telephony/ims/feature/ImsFeature;->removeCapabilityCallback(Landroid/telephony/ims/aidl/IImsCapabilityCallback;)V
+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
+Landroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;-><init>()V
+Landroid/telephony/ims/feature/MmTelFeature;->acknowledgeSms(III)V
+Landroid/telephony/ims/feature/MmTelFeature;->acknowledgeSmsReport(III)V
+Landroid/telephony/ims/feature/MmTelFeature;->createCallSessionInterface(Landroid/telephony/ims/ImsCallProfile;)Lcom/android/ims/internal/IImsCallSession;
+Landroid/telephony/ims/feature/MmTelFeature;->getBinder()Landroid/telephony/ims/aidl/IImsMmTelFeature;
+Landroid/telephony/ims/feature/MmTelFeature;->getEcbmInterface()Lcom/android/ims/internal/IImsEcbm;
+Landroid/telephony/ims/feature/MmTelFeature;->getMultiEndpointInterface()Lcom/android/ims/internal/IImsMultiEndpoint;
+Landroid/telephony/ims/feature/MmTelFeature;->getSmsFormat()Ljava/lang/String;
+Landroid/telephony/ims/feature/MmTelFeature;->getUtInterface()Lcom/android/ims/internal/IImsUt;
+Landroid/telephony/ims/feature/MmTelFeature;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/ims/feature/MmTelFeature;->mImsMMTelBinder:Landroid/telephony/ims/aidl/IImsMmTelFeature;
+Landroid/telephony/ims/feature/MmTelFeature;->mListener:Landroid/telephony/ims/aidl/IImsMmTelListener;
+Landroid/telephony/ims/feature/MmTelFeature;->mLock:Ljava/lang/Object;
+Landroid/telephony/ims/feature/MmTelFeature;->notifyIncomingCallSession(Lcom/android/ims/internal/IImsCallSession;Landroid/os/Bundle;)V
+Landroid/telephony/ims/feature/MmTelFeature;->onSmsReady()V
+Landroid/telephony/ims/feature/MmTelFeature;->queryCapabilityConfigurationInternal(IILandroid/telephony/ims/aidl/IImsCapabilityCallback;)V
+Landroid/telephony/ims/feature/MmTelFeature;->sendSms(IILjava/lang/String;Ljava/lang/String;Z[B)V
+Landroid/telephony/ims/feature/MmTelFeature;->setListener(Landroid/telephony/ims/aidl/IImsMmTelListener;)V
+Landroid/telephony/ims/feature/MmTelFeature;->setSmsListener(Landroid/telephony/ims/aidl/IImsSmsListener;)V
+Landroid/telephony/ims/feature/RcsFeature;->getBinder()Landroid/telephony/ims/aidl/IImsRcsFeature;
+Landroid/telephony/ims/feature/RcsFeature;->mImsRcsBinder:Landroid/telephony/ims/aidl/IImsRcsFeature;
+Landroid/telephony/ims/ImsCallForwardInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsCallForwardInfo;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsCallProfile;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsCallProfile;->EXTRA_CALL_MODE_CHANGEABLE:Ljava/lang/String;
+Landroid/telephony/ims/ImsCallProfile;->EXTRA_CALL_RAT_TYPE_ALT:Ljava/lang/String;
+Landroid/telephony/ims/ImsCallProfile;->EXTRA_CONFERENCE:Ljava/lang/String;
+Landroid/telephony/ims/ImsCallProfile;->EXTRA_CONFERENCE_AVAIL:Ljava/lang/String;
+Landroid/telephony/ims/ImsCallProfile;->EXTRA_E_CALL:Ljava/lang/String;
+Landroid/telephony/ims/ImsCallProfile;->EXTRA_OEM_EXTRAS:Ljava/lang/String;
+Landroid/telephony/ims/ImsCallProfile;->EXTRA_VMS:Ljava/lang/String;
+Landroid/telephony/ims/ImsCallProfile;->isVideoStateSet(II)Z
+Landroid/telephony/ims/ImsCallProfile;->maybeCleanseExtras(Landroid/os/Bundle;)Landroid/os/Bundle;
+Landroid/telephony/ims/ImsCallProfile;->mServiceType:I
+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
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionConferenceStateUpdated(Landroid/telephony/ims/ImsConferenceState;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionHandover(IILandroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionHandoverFailed(IILandroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionHeld(Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionHoldFailed(Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionHoldReceived(Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionInitiated(Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionInitiatedFailed(Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionInviteParticipantsRequestDelivered()V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionInviteParticipantsRequestFailed(Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionMayHandover(II)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionMergeComplete(Lcom/android/ims/internal/IImsCallSession;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionMergeFailed(Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionMergeStarted(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionMultipartyStateChanged(Z)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionProgressing(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionRemoveParticipantsRequestDelivered()V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionRemoveParticipantsRequestFailed(Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionResumed(Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionResumeFailed(Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionResumeReceived(Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionRttMessageReceived(Ljava/lang/String;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionRttModifyRequestReceived(Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionRttModifyResponseReceived(I)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionSuppServiceReceived(Landroid/telephony/ims/ImsSuppServiceNotification;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionTerminated(Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionTtyModeReceived(I)V
+Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionUpdated(Landroid/telephony/ims/ImsCallProfile;)V
+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
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionConferenceExtendReceived(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionConferenceStateUpdated(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsConferenceState;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionHandover(Landroid/telephony/ims/ImsCallSession;IILandroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionHandoverFailed(Landroid/telephony/ims/ImsCallSession;IILandroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionHeld(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionHoldFailed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionHoldReceived(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionInviteParticipantsRequestDelivered(Landroid/telephony/ims/ImsCallSession;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionInviteParticipantsRequestFailed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionMayHandover(Landroid/telephony/ims/ImsCallSession;II)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionMergeComplete(Landroid/telephony/ims/ImsCallSession;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionMergeFailed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionMergeStarted(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionMultipartyStateChanged(Landroid/telephony/ims/ImsCallSession;Z)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionProgressing(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionRemoveParticipantsRequestDelivered(Landroid/telephony/ims/ImsCallSession;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionRemoveParticipantsRequestFailed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionResumed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionResumeFailed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionResumeReceived(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionRttMessageReceived(Ljava/lang/String;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionRttModifyRequestReceived(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionRttModifyResponseReceived(I)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionStarted(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionStartFailed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionSuppServiceReceived(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsSuppServiceNotification;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionTerminated(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionTtyModeReceived(Landroid/telephony/ims/ImsCallSession;I)V
+Landroid/telephony/ims/ImsCallSession$Listener;->callSessionUpdated(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+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
+Landroid/telephony/ims/ImsCallSession$State;->IDLE:I
+Landroid/telephony/ims/ImsCallSession$State;->INITIATED:I
+Landroid/telephony/ims/ImsCallSession$State;->INVALID:I
+Landroid/telephony/ims/ImsCallSession$State;->NEGOTIATING:I
+Landroid/telephony/ims/ImsCallSession$State;->REESTABLISHING:I
+Landroid/telephony/ims/ImsCallSession$State;->RENEGOTIATING:I
+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
+Landroid/telephony/ims/ImsCallSession;->close()V
+Landroid/telephony/ims/ImsCallSession;->deflect(Ljava/lang/String;)V
+Landroid/telephony/ims/ImsCallSession;->extendToConference([Ljava/lang/String;)V
+Landroid/telephony/ims/ImsCallSession;->getCallId()Ljava/lang/String;
+Landroid/telephony/ims/ImsCallSession;->getCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Landroid/telephony/ims/ImsCallSession;->getLocalCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Landroid/telephony/ims/ImsCallSession;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/ims/ImsCallSession;->getRemoteCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Landroid/telephony/ims/ImsCallSession;->getSession()Lcom/android/ims/internal/IImsCallSession;
+Landroid/telephony/ims/ImsCallSession;->getState()I
+Landroid/telephony/ims/ImsCallSession;->getVideoCallProvider()Lcom/android/ims/internal/IImsVideoCallProvider;
+Landroid/telephony/ims/ImsCallSession;->hold(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Landroid/telephony/ims/ImsCallSession;->inviteParticipants([Ljava/lang/String;)V
+Landroid/telephony/ims/ImsCallSession;->isAlive()Z
+Landroid/telephony/ims/ImsCallSession;->isInCall()Z
+Landroid/telephony/ims/ImsCallSession;->isMultiparty()Z
+Landroid/telephony/ims/ImsCallSession;->mClosed:Z
+Landroid/telephony/ims/ImsCallSession;->merge()V
+Landroid/telephony/ims/ImsCallSession;->miSession:Lcom/android/ims/internal/IImsCallSession;
+Landroid/telephony/ims/ImsCallSession;->mListener:Landroid/telephony/ims/ImsCallSession$Listener;
+Landroid/telephony/ims/ImsCallSession;->reject(I)V
+Landroid/telephony/ims/ImsCallSession;->removeParticipants([Ljava/lang/String;)V
+Landroid/telephony/ims/ImsCallSession;->resume(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Landroid/telephony/ims/ImsCallSession;->sendDtmf(CLandroid/os/Message;)V
+Landroid/telephony/ims/ImsCallSession;->sendRttMessage(Ljava/lang/String;)V
+Landroid/telephony/ims/ImsCallSession;->sendRttModifyRequest(Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession;->sendRttModifyResponse(Z)V
+Landroid/telephony/ims/ImsCallSession;->sendUssd(Ljava/lang/String;)V
+Landroid/telephony/ims/ImsCallSession;->setListener(Landroid/telephony/ims/ImsCallSession$Listener;)V
+Landroid/telephony/ims/ImsCallSession;->setMute(Z)V
+Landroid/telephony/ims/ImsCallSession;->start(Ljava/lang/String;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession;->start([Ljava/lang/String;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSession;->startDtmf(C)V
+Landroid/telephony/ims/ImsCallSession;->stopDtmf()V
+Landroid/telephony/ims/ImsCallSession;->TAG:Ljava/lang/String;
+Landroid/telephony/ims/ImsCallSession;->terminate(I)V
+Landroid/telephony/ims/ImsCallSession;->update(ILandroid/telephony/ims/ImsStreamMediaProfile;)V
+Landroid/telephony/ims/ImsCallSessionListener;-><init>(Landroid/telephony/ims/aidl/IImsCallSessionListener;)V
+Landroid/telephony/ims/ImsCallSessionListener;->callSessionConferenceExtended(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSessionListener;->callSessionConferenceExtendReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSessionListener;->callSessionMergeComplete(Lcom/android/ims/internal/IImsCallSession;)V
+Landroid/telephony/ims/ImsCallSessionListener;->callSessionMergeStarted(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Landroid/telephony/ims/ImsCallSessionListener;->mListener:Landroid/telephony/ims/aidl/IImsCallSessionListener;
+Landroid/telephony/ims/ImsConferenceState;-><init>()V
+Landroid/telephony/ims/ImsConferenceState;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsConferenceState;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsExternalCallState;-><init>()V
+Landroid/telephony/ims/ImsExternalCallState;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsExternalCallState;->mAddress:Landroid/net/Uri;
+Landroid/telephony/ims/ImsExternalCallState;->mCallId:I
+Landroid/telephony/ims/ImsExternalCallState;->mCallState:I
+Landroid/telephony/ims/ImsExternalCallState;->mCallType:I
+Landroid/telephony/ims/ImsExternalCallState;->mIsHeld:Z
+Landroid/telephony/ims/ImsExternalCallState;->mIsPullable:Z
+Landroid/telephony/ims/ImsExternalCallState;->TAG:Ljava/lang/String;
+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
+Landroid/telephony/ims/ImsService;->createMmTelFeatureInternal(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+Landroid/telephony/ims/ImsService;->createRcsFeatureInternal(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Landroid/telephony/ims/aidl/IImsRcsFeature;
+Landroid/telephony/ims/ImsService;->getFeatures(I)Landroid/util/SparseArray;
+Landroid/telephony/ims/ImsService;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/ims/ImsService;->mFeaturesBySlot:Landroid/util/SparseArray;
+Landroid/telephony/ims/ImsService;->mImsServiceController:Landroid/os/IBinder;
+Landroid/telephony/ims/ImsService;->mListener:Landroid/telephony/ims/aidl/IImsServiceControllerListener;
+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;
+Landroid/telephony/ims/ImsSsData;->getSuppServiceInfo()[I
+Landroid/telephony/ims/ImsSsData;->isTypeCF()Z
+Landroid/telephony/ims/ImsSsData;->isTypeCW()Z
+Landroid/telephony/ims/ImsSsData;->mCfInfo:[Landroid/telephony/ims/ImsCallForwardInfo;
+Landroid/telephony/ims/ImsSsData;->mImsSsInfo:[Landroid/telephony/ims/ImsSsInfo;
+Landroid/telephony/ims/ImsSsData;->mSsInfo:[I
+Landroid/telephony/ims/ImsSsData;->requestType:I
+Landroid/telephony/ims/ImsSsData;->result:I
+Landroid/telephony/ims/ImsSsData;->RESULT_SUCCESS:I
+Landroid/telephony/ims/ImsSsData;->serviceClass:I
+Landroid/telephony/ims/ImsSsData;->serviceType:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_DATA:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_DATA_ASYNC:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_DATA_SYNC:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_FAX:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_NONE:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_PACKET:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_PAD:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_SMS:I
+Landroid/telephony/ims/ImsSsData;->SERVICE_CLASS_VOICE:I
+Landroid/telephony/ims/ImsSsData;->setCallForwardingInfo([Landroid/telephony/ims/ImsCallForwardInfo;)V
+Landroid/telephony/ims/ImsSsData;->setImsSpecificSuppServiceInfo([Landroid/telephony/ims/ImsSsInfo;)V
+Landroid/telephony/ims/ImsSsData;->setSuppServiceInfo([I)V
+Landroid/telephony/ims/ImsSsData;->teleserviceType:I
+Landroid/telephony/ims/ImsSsInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsSsInfo;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsStreamMediaProfile;-><init>(I)V
+Landroid/telephony/ims/ImsStreamMediaProfile;-><init>(IIII)V
+Landroid/telephony/ims/ImsStreamMediaProfile;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsStreamMediaProfile;->mRttMode:I
+Landroid/telephony/ims/ImsStreamMediaProfile;->mVideoQuality:I
+Landroid/telephony/ims/ImsStreamMediaProfile;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsStreamMediaProfile;->TAG:Ljava/lang/String;
+Landroid/telephony/ims/ImsSuppServiceNotification;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/ims/ImsSuppServiceNotification;->TAG:Ljava/lang/String;
+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
+Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->sendSessionModifyResponse(Landroid/telecom/VideoProfile;)V
+Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->setCallback(Lcom/android/ims/internal/IImsVideoCallCallback;)V
+Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->setCamera(Ljava/lang/String;I)V
+Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->setDeviceOrientation(I)V
+Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->setDisplaySurface(Landroid/view/Surface;)V
+Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->setPauseImage(Landroid/net/Uri;)V
+Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->setPreviewSurface(Landroid/view/Surface;)V
+Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->setZoom(F)V
+Landroid/telephony/ims/ImsVideoCallProvider;->mBinder:Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;
+Landroid/telephony/ims/ImsVideoCallProvider;->mCallback:Lcom/android/ims/internal/IImsVideoCallCallback;
+Landroid/telephony/ims/ImsVideoCallProvider;->mProviderHandler:Landroid/os/Handler;
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_REQUEST_CALL_DATA_USAGE:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_REQUEST_CAMERA_CAPABILITIES:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SEND_SESSION_MODIFY_REQUEST:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SEND_SESSION_MODIFY_RESPONSE:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SET_CALLBACK:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SET_CAMERA:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SET_DEVICE_ORIENTATION:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SET_DISPLAY_SURFACE:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SET_PAUSE_IMAGE:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SET_PREVIEW_SURFACE:I
+Landroid/telephony/ims/ImsVideoCallProvider;->MSG_SET_ZOOM:I
+Landroid/telephony/ims/stub/ImsCallSessionImplBase$State;-><init>()V
+Landroid/telephony/ims/stub/ImsCallSessionImplBase;->getServiceImpl()Lcom/android/ims/internal/IImsCallSession;
+Landroid/telephony/ims/stub/ImsCallSessionImplBase;->getVideoCallProvider()Lcom/android/ims/internal/IImsVideoCallProvider;
+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
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->getConfigString(I)Ljava/lang/String;
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->getImsConfigImpl()Landroid/telephony/ims/stub/ImsConfigImplBase;
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->mImsConfigImplBaseWeakReference:Ljava/lang/ref/WeakReference;
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->mProvisionedIntValue:Ljava/util/HashMap;
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->mProvisionedStringValue:Ljava/util/HashMap;
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->notifyImsConfigChanged(II)V
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->notifyImsConfigChanged(ILjava/lang/String;)V
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->removeImsConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->setConfigInt(II)I
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->setConfigString(ILjava/lang/String;)I
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->updateCachedValue(IIZ)V
+Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->updateCachedValue(ILjava/lang/String;Z)V
+Landroid/telephony/ims/stub/ImsConfigImplBase;-><init>(Landroid/content/Context;)V
+Landroid/telephony/ims/stub/ImsConfigImplBase;->addImsConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+Landroid/telephony/ims/stub/ImsConfigImplBase;->getIImsConfig()Landroid/telephony/ims/aidl/IImsConfig;
+Landroid/telephony/ims/stub/ImsConfigImplBase;->mCallbacks:Landroid/os/RemoteCallbackList;
+Landroid/telephony/ims/stub/ImsConfigImplBase;->mImsConfigStub:Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;
+Landroid/telephony/ims/stub/ImsConfigImplBase;->notifyConfigChanged(II)V
+Landroid/telephony/ims/stub/ImsConfigImplBase;->notifyConfigChanged(ILjava/lang/String;)V
+Landroid/telephony/ims/stub/ImsConfigImplBase;->removeImsConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+Landroid/telephony/ims/stub/ImsConfigImplBase;->TAG:Ljava/lang/String;
+Landroid/telephony/ims/stub/ImsEcbmImplBase;->getImsEcbm()Lcom/android/ims/internal/IImsEcbm;
+Landroid/telephony/ims/stub/ImsEcbmImplBase;->mImsEcbm:Lcom/android/ims/internal/IImsEcbm;
+Landroid/telephony/ims/stub/ImsEcbmImplBase;->mListener:Lcom/android/ims/internal/IImsEcbmListener;
+Landroid/telephony/ims/stub/ImsEcbmImplBase;->TAG:Ljava/lang/String;
+Landroid/telephony/ims/stub/ImsFeatureConfiguration$Builder;->mConfig:Landroid/telephony/ims/stub/ImsFeatureConfiguration;
+Landroid/telephony/ims/stub/ImsFeatureConfiguration;-><init>()V
+Landroid/telephony/ims/stub/ImsFeatureConfiguration;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/ims/stub/ImsFeatureConfiguration;-><init>(Ljava/util/Set;)V
+Landroid/telephony/ims/stub/ImsFeatureConfiguration;->addFeature(II)V
+Landroid/telephony/ims/stub/ImsFeatureConfiguration;->mFeatures:Ljava/util/Set;
+Landroid/telephony/ims/stub/ImsMultiEndpointImplBase;->getIImsMultiEndpoint()Lcom/android/ims/internal/IImsMultiEndpoint;
+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
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->mBinder:Landroid/telephony/ims/aidl/IImsRegistration;
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->mCallbacks:Landroid/os/RemoteCallbackList;
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->mConnectionType:I
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->mLastDisconnectCause:Landroid/telephony/ims/ImsReasonInfo;
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->mLock:Ljava/lang/Object;
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->mRegistrationState:I
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->REGISTRATION_STATE_NOT_REGISTERED:I
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->REGISTRATION_STATE_REGISTERED:I
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->REGISTRATION_STATE_REGISTERING:I
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->REGISTRATION_STATE_UNKNOWN:I
+Landroid/telephony/ims/stub/ImsRegistrationImplBase;->removeRegistrationCallback(Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+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;
+Landroid/telephony/ims/stub/ImsUtImplBase;->mServiceImpl:Lcom/android/ims/internal/IImsUt$Stub;
+Landroid/telephony/ims/stub/ImsUtImplBase;->queryCLIP()I
+Landroid/telephony/ims/stub/ImsUtImplBase;->queryCLIR()I
+Landroid/telephony/ims/stub/ImsUtImplBase;->queryCOLP()I
+Landroid/telephony/ims/stub/ImsUtImplBase;->queryCOLR()I
+Landroid/telephony/ims/stub/ImsUtImplBase;->updateCLIP(Z)I
+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
+Landroid/telephony/ImsiEncryptionInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/ImsiEncryptionInfo;->expirationTime:Ljava/util/Date;
+Landroid/telephony/ImsiEncryptionInfo;->getExpirationTime()Ljava/util/Date;
+Landroid/telephony/ImsiEncryptionInfo;->getKeyIdentifier()Ljava/lang/String;
+Landroid/telephony/ImsiEncryptionInfo;->getKeyType()I
+Landroid/telephony/ImsiEncryptionInfo;->getMcc()Ljava/lang/String;
+Landroid/telephony/ImsiEncryptionInfo;->getMnc()Ljava/lang/String;
+Landroid/telephony/ImsiEncryptionInfo;->getPublicKey()Ljava/security/PublicKey;
+Landroid/telephony/ImsiEncryptionInfo;->keyIdentifier:Ljava/lang/String;
+Landroid/telephony/ImsiEncryptionInfo;->keyType:I
+Landroid/telephony/ImsiEncryptionInfo;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/ImsiEncryptionInfo;->makeKeyObject([B)Ljava/security/PublicKey;
+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;
+Landroid/telephony/INetworkService$Stub$Proxy;->getNetworkRegistrationState(IILandroid/telephony/INetworkServiceCallback;)V
+Landroid/telephony/INetworkService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Landroid/telephony/INetworkService$Stub;->TRANSACTION_createNetworkServiceProvider:I
+Landroid/telephony/INetworkService$Stub;->TRANSACTION_getNetworkRegistrationState:I
+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
+Landroid/telephony/LocationAccessPolicy;->isCurrentProfile(Landroid/content/Context;I)Z
+Landroid/telephony/LocationAccessPolicy;->isLocationModeEnabled(Landroid/content/Context;I)Z
+Landroid/telephony/LocationAccessPolicy;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/mbms/DownloadRequest$Builder;->appIntent:Ljava/lang/String;
+Landroid/telephony/mbms/DownloadRequest$Builder;->destination:Landroid/net/Uri;
+Landroid/telephony/mbms/DownloadRequest$Builder;->fileServiceId:Ljava/lang/String;
+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;
+Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;->destination:Landroid/net/Uri;
+Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;->fileServiceId:Ljava/lang/String;
+Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;->source:Landroid/net/Uri;
+Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;->subscriptionId:I
+Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;->version:I
+Landroid/telephony/mbms/DownloadRequest;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/mbms/DownloadRequest;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/net/Uri;ILjava/lang/String;I)V
+Landroid/telephony/mbms/DownloadRequest;->CURRENT_VERSION:I
+Landroid/telephony/mbms/DownloadRequest;->destinationUri:Landroid/net/Uri;
+Landroid/telephony/mbms/DownloadRequest;->fileServiceId:Ljava/lang/String;
+Landroid/telephony/mbms/DownloadRequest;->getHash()Ljava/lang/String;
+Landroid/telephony/mbms/DownloadRequest;->getIntentForApp()Landroid/content/Intent;
+Landroid/telephony/mbms/DownloadRequest;->getVersion()I
+Landroid/telephony/mbms/DownloadRequest;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/mbms/DownloadRequest;->MAX_APP_INTENT_SIZE:I
+Landroid/telephony/mbms/DownloadRequest;->MAX_DESTINATION_URI_SIZE:I
+Landroid/telephony/mbms/DownloadRequest;->serializedResultIntentForApp:Ljava/lang/String;
+Landroid/telephony/mbms/DownloadRequest;->sourceUri:Landroid/net/Uri;
+Landroid/telephony/mbms/DownloadRequest;->subscriptionId:I
+Landroid/telephony/mbms/DownloadRequest;->version:I
+Landroid/telephony/mbms/FileInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/mbms/FileInfo;->mimeType:Ljava/lang/String;
+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;
+Landroid/telephony/mbms/InternalDownloadSessionCallback;->mIsStopped:Z
+Landroid/telephony/mbms/InternalDownloadSessionCallback;->onError(ILjava/lang/String;)V
+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;
+Landroid/telephony/mbms/InternalStreamingServiceCallback;->mIsStopped:Z
+Landroid/telephony/mbms/InternalStreamingServiceCallback;->onBroadcastSignalStrengthUpdated(I)V
+Landroid/telephony/mbms/InternalStreamingServiceCallback;->onError(ILjava/lang/String;)V
+Landroid/telephony/mbms/InternalStreamingServiceCallback;->onMediaDescriptionUpdated()V
+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;
+Landroid/telephony/mbms/InternalStreamingSessionCallback;->mIsStopped:Z
+Landroid/telephony/mbms/InternalStreamingSessionCallback;->onError(ILjava/lang/String;)V
+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;
+Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;->onBroadcastSignalStrengthUpdated(I)V
+Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;->onError(ILjava/lang/String;)V
+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
+Landroid/telephony/mbms/IStreamingServiceCallback$Stub;->TRANSACTION_onError:I
+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
+Landroid/telephony/mbms/IStreamingServiceCallback;->onStreamMethodUpdated(I)V
+Landroid/telephony/mbms/IStreamingServiceCallback;->onStreamStateUpdated(II)V
+Landroid/telephony/mbms/MbmsDownloadReceiver;->cleanupPostMove(Landroid/content/Context;Landroid/content/Intent;)V
+Landroid/telephony/mbms/MbmsDownloadReceiver;->cleanupTempFiles(Landroid/content/Context;Landroid/content/Intent;)V
+Landroid/telephony/mbms/MbmsDownloadReceiver;->DOWNLOAD_TOKEN_SUFFIX:Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->EMBMS_INTENT_PERMISSION:Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->generateFreshTempFiles(Landroid/content/Context;Ljava/lang/String;I)Ljava/util/ArrayList;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->generateSingleTempFile(Ljava/io/File;)Ljava/io/File;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->generateTempFiles(Landroid/content/Context;Landroid/content/Intent;)V
+Landroid/telephony/mbms/MbmsDownloadReceiver;->generateUrisForPausedFiles(Landroid/content/Context;Ljava/lang/String;Ljava/util/List;)Ljava/util/ArrayList;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->getFileProviderAuthority(Landroid/content/Context;)Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->getFileProviderAuthorityCached(Landroid/content/Context;)Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->getFileRelativePath(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->getMiddlewarePackageCached(Landroid/content/Context;)Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->MAX_TEMP_FILE_RETRIES:I
+Landroid/telephony/mbms/MbmsDownloadReceiver;->MBMS_FILE_PROVIDER_META_DATA_KEY:Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->mFileProviderAuthorityCache:Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->mMiddlewarePackageNameCache:Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->moveDownloadedFile(Landroid/content/Context;Landroid/content/Intent;)V
+Landroid/telephony/mbms/MbmsDownloadReceiver;->moveToFinalLocation(Landroid/net/Uri;Ljava/nio/file/Path;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->TEMP_FILE_STAGING_LOCATION:Ljava/lang/String;
+Landroid/telephony/mbms/MbmsDownloadReceiver;->TEMP_FILE_SUFFIX:Ljava/lang/String;
+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;
+Landroid/telephony/mbms/MbmsTempFileProvider;->getUriForFile(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)Landroid/net/Uri;
+Landroid/telephony/mbms/MbmsTempFileProvider;->mAuthority:Ljava/lang/String;
+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;
+Landroid/telephony/mbms/MbmsUtils;->getOverrideServiceName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/ComponentName;
+Landroid/telephony/mbms/MbmsUtils;->isContainedIn(Ljava/io/File;Ljava/io/File;)Z
+Landroid/telephony/mbms/MbmsUtils;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/mbms/MbmsUtils;->startBinding(Landroid/content/Context;Ljava/lang/String;Landroid/content/ServiceConnection;)I
+Landroid/telephony/mbms/MbmsUtils;->toComponentName(Landroid/content/pm/ComponentInfo;)Landroid/content/ComponentName;
+Landroid/telephony/mbms/ServiceInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/mbms/ServiceInfo;-><init>(Ljava/util/Map;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;)V
+Landroid/telephony/mbms/ServiceInfo;->className:Ljava/lang/String;
+Landroid/telephony/mbms/ServiceInfo;->locales:Ljava/util/List;
+Landroid/telephony/mbms/ServiceInfo;->MAP_LIMIT:I
+Landroid/telephony/mbms/ServiceInfo;->names:Ljava/util/Map;
+Landroid/telephony/mbms/ServiceInfo;->serviceId:Ljava/lang/String;
+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;
+Landroid/telephony/mbms/StreamingService;->mCallback:Landroid/telephony/mbms/InternalStreamingServiceCallback;
+Landroid/telephony/mbms/StreamingService;->mParentSession:Landroid/telephony/MbmsStreamingSession;
+Landroid/telephony/mbms/StreamingService;->mService:Landroid/telephony/mbms/vendor/IMbmsStreamingService;
+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
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->cancelDownload(Landroid/telephony/mbms/DownloadRequest;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->dispose(I)V
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->download(Landroid/telephony/mbms/DownloadRequest;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->initialize(ILandroid/telephony/mbms/IMbmsDownloadSessionCallback;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->listPendingDownloads(I)Ljava/util/List;
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->removeProgressListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadProgressListener;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->removeStatusListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadStatusListener;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->requestDownloadState(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/FileInfo;)I
+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;
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_addProgressListener:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_addStatusListener:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_cancelDownload:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_dispose:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_download:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_initialize:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_listPendingDownloads:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_removeProgressListener:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_removeStatusListener:I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_requestDownloadState:I
+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
+Landroid/telephony/mbms/vendor/IMbmsDownloadService;->dispose(I)V
+Landroid/telephony/mbms/vendor/IMbmsDownloadService;->download(Landroid/telephony/mbms/DownloadRequest;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService;->initialize(ILandroid/telephony/mbms/IMbmsDownloadSessionCallback;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService;->listPendingDownloads(I)Ljava/util/List;
+Landroid/telephony/mbms/vendor/IMbmsDownloadService;->removeProgressListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadProgressListener;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService;->removeStatusListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadStatusListener;)I
+Landroid/telephony/mbms/vendor/IMbmsDownloadService;->requestDownloadState(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/FileInfo;)I
+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;
+Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;->getPlaybackUri(ILjava/lang/String;)Landroid/net/Uri;
+Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;->initialize(Landroid/telephony/mbms/IMbmsStreamingSessionCallback;I)I
+Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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
+Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->TRANSACTION_getPlaybackUri:I
+Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->TRANSACTION_initialize:I
+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
+Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase;->addProgressListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadProgressListener;)I
+Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase;->addStatusListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadStatusListener;)I
+Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase;->initialize(ILandroid/telephony/mbms/IMbmsDownloadSessionCallback;)I
+Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase;->mDownloadCallbackDeathRecipients:Ljava/util/Map;
+Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase;->mDownloadProgressListenerBinderMap:Ljava/util/Map;
+Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase;->mDownloadStatusListenerBinderMap:Ljava/util/Map;
+Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase;->removeProgressListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadProgressListener;)I
+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
+Landroid/telephony/MbmsDownloadSession;->deleteDownloadRequestToken(Landroid/telephony/mbms/DownloadRequest;)V
+Landroid/telephony/MbmsDownloadSession;->DESTINATION_SANITY_CHECK_FILE_NAME:Ljava/lang/String;
+Landroid/telephony/MbmsDownloadSession;->getDownloadRequestTokenPath(Landroid/telephony/mbms/DownloadRequest;)Ljava/io/File;
+Landroid/telephony/MbmsDownloadSession;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/MbmsDownloadSession;->mContext:Landroid/content/Context;
+Landroid/telephony/MbmsDownloadSession;->mDeathRecipient:Landroid/os/IBinder$DeathRecipient;
+Landroid/telephony/MbmsDownloadSession;->mInternalCallback:Landroid/telephony/mbms/InternalDownloadSessionCallback;
+Landroid/telephony/MbmsDownloadSession;->mInternalDownloadProgressListeners:Ljava/util/Map;
+Landroid/telephony/MbmsDownloadSession;->mInternalDownloadStatusListeners:Ljava/util/Map;
+Landroid/telephony/MbmsDownloadSession;->mService:Ljava/util/concurrent/atomic/AtomicReference;
+Landroid/telephony/MbmsDownloadSession;->mSubscriptionId:I
+Landroid/telephony/MbmsDownloadSession;->sendErrorToApp(ILjava/lang/String;)V
+Landroid/telephony/MbmsDownloadSession;->sIsInitialized:Ljava/util/concurrent/atomic/AtomicBoolean;
+Landroid/telephony/MbmsDownloadSession;->validateTempFileRootSanity(Ljava/io/File;)V
+Landroid/telephony/MbmsDownloadSession;->writeDownloadRequestToken(Landroid/telephony/mbms/DownloadRequest;)V
+Landroid/telephony/MbmsStreamingSession;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;ILandroid/telephony/mbms/MbmsStreamingSessionCallback;)V
+Landroid/telephony/MbmsStreamingSession;->bindAndInitialize()I
+Landroid/telephony/MbmsStreamingSession;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/MbmsStreamingSession;->mContext:Landroid/content/Context;
+Landroid/telephony/MbmsStreamingSession;->mDeathRecipient:Landroid/os/IBinder$DeathRecipient;
+Landroid/telephony/MbmsStreamingSession;->mInternalCallback:Landroid/telephony/mbms/InternalStreamingSessionCallback;
+Landroid/telephony/MbmsStreamingSession;->mKnownActiveStreamingServices:Ljava/util/Set;
+Landroid/telephony/MbmsStreamingSession;->mService:Ljava/util/concurrent/atomic/AtomicReference;
+Landroid/telephony/MbmsStreamingSession;->mSubscriptionId:I
+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
+Landroid/telephony/ModemActivityInfo;->getIdleTimeMillis()I
+Landroid/telephony/ModemActivityInfo;->getRxTimeMillis()I
+Landroid/telephony/ModemActivityInfo;->getSleepTimeMillis()I
+Landroid/telephony/ModemActivityInfo;->getTimestamp()J
+Landroid/telephony/ModemActivityInfo;->getTxTimeMillis()[I
+Landroid/telephony/ModemActivityInfo;->isEmpty()Z
+Landroid/telephony/ModemActivityInfo;->isValid()Z
+Landroid/telephony/ModemActivityInfo;->mEnergyUsed:I
+Landroid/telephony/ModemActivityInfo;->mIdleTimeMs:I
+Landroid/telephony/ModemActivityInfo;->mRxTimeMs:I
+Landroid/telephony/ModemActivityInfo;->mSleepTimeMs:I
+Landroid/telephony/ModemActivityInfo;->mTimestamp:J
+Landroid/telephony/ModemActivityInfo;->mTxTimeMs:[I
+Landroid/telephony/ModemActivityInfo;->setEnergyUsed(I)V
+Landroid/telephony/ModemActivityInfo;->setIdleTimeMillis(I)V
+Landroid/telephony/ModemActivityInfo;->setRxTimeMillis(I)V
+Landroid/telephony/ModemActivityInfo;->setSleepTimeMillis(I)V
+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
+Landroid/telephony/NetworkRegistrationState;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/NetworkRegistrationState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/NetworkRegistrationState;->DOMAIN_CS:I
+Landroid/telephony/NetworkRegistrationState;->DOMAIN_PS:I
+Landroid/telephony/NetworkRegistrationState;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
+Landroid/telephony/NetworkRegistrationState;->getAccessNetworkTechnology()I
+Landroid/telephony/NetworkRegistrationState;->getAvailableServices()[I
+Landroid/telephony/NetworkRegistrationState;->getCellIdentity()Landroid/telephony/CellIdentity;
+Landroid/telephony/NetworkRegistrationState;->getDataSpecificStates()Landroid/telephony/DataSpecificRegistrationStates;
+Landroid/telephony/NetworkRegistrationState;->getDomain()I
+Landroid/telephony/NetworkRegistrationState;->getReasonForDenial()I
+Landroid/telephony/NetworkRegistrationState;->getRegState()I
+Landroid/telephony/NetworkRegistrationState;->getTransportType()I
+Landroid/telephony/NetworkRegistrationState;->getVoiceSpecificStates()Landroid/telephony/VoiceSpecificRegistrationStates;
+Landroid/telephony/NetworkRegistrationState;->isEmergencyEnabled()Z
+Landroid/telephony/NetworkRegistrationState;->mAccessNetworkTechnology:I
+Landroid/telephony/NetworkRegistrationState;->mAvailableServices:[I
+Landroid/telephony/NetworkRegistrationState;->mCellIdentity:Landroid/telephony/CellIdentity;
+Landroid/telephony/NetworkRegistrationState;->mDataSpecificStates:Landroid/telephony/DataSpecificRegistrationStates;
+Landroid/telephony/NetworkRegistrationState;->mDomain:I
+Landroid/telephony/NetworkRegistrationState;->mEmergencyOnly:Z
+Landroid/telephony/NetworkRegistrationState;->mReasonForDenial:I
+Landroid/telephony/NetworkRegistrationState;->mRegState:I
+Landroid/telephony/NetworkRegistrationState;->mTransportType:I
+Landroid/telephony/NetworkRegistrationState;->mVoiceSpecificStates:Landroid/telephony/VoiceSpecificRegistrationStates;
+Landroid/telephony/NetworkRegistrationState;->regStateToString(I)Ljava/lang/String;
+Landroid/telephony/NetworkRegistrationState;->REG_STATE_DENIED:I
+Landroid/telephony/NetworkRegistrationState;->REG_STATE_HOME:I
+Landroid/telephony/NetworkRegistrationState;->REG_STATE_NOT_REG_NOT_SEARCHING:I
+Landroid/telephony/NetworkRegistrationState;->REG_STATE_NOT_REG_SEARCHING:I
+Landroid/telephony/NetworkRegistrationState;->REG_STATE_ROAMING:I
+Landroid/telephony/NetworkRegistrationState;->REG_STATE_UNKNOWN:I
+Landroid/telephony/NetworkRegistrationState;->SERVICE_TYPE_DATA:I
+Landroid/telephony/NetworkRegistrationState;->SERVICE_TYPE_EMERGENCY:I
+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
+Landroid/telephony/NetworkScanRequest;->MAX_INCREMENTAL_PERIODICITY_SEC:I
+Landroid/telephony/NetworkScanRequest;->MAX_MCC_MNC_LIST_SIZE:I
+Landroid/telephony/NetworkScanRequest;->MAX_RADIO_ACCESS_NETWORKS:I
+Landroid/telephony/NetworkScanRequest;->MAX_SEARCH_MAX_SEC:I
+Landroid/telephony/NetworkScanRequest;->MAX_SEARCH_PERIODICITY_SEC:I
+Landroid/telephony/NetworkScanRequest;->mIncrementalResults:Z
+Landroid/telephony/NetworkScanRequest;->mIncrementalResultsPeriodicity:I
+Landroid/telephony/NetworkScanRequest;->MIN_INCREMENTAL_PERIODICITY_SEC:I
+Landroid/telephony/NetworkScanRequest;->MIN_SEARCH_MAX_SEC:I
+Landroid/telephony/NetworkScanRequest;->MIN_SEARCH_PERIODICITY_SEC:I
+Landroid/telephony/NetworkScanRequest;->mMaxSearchTime:I
+Landroid/telephony/NetworkScanRequest;->mMccMncs:Ljava/util/ArrayList;
+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;
+Landroid/telephony/NetworkService$NetworkServiceProvider;->mSlotId:I
+Landroid/telephony/NetworkService$NetworkServiceProvider;->notifyNetworkRegistrationStateChanged()V
+Landroid/telephony/NetworkService$NetworkServiceProvider;->notifyStateChangedToCallbacks()V
+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
+Landroid/telephony/NetworkService;->loge(Ljava/lang/String;)V
+Landroid/telephony/NetworkService;->mBinder:Landroid/telephony/NetworkService$INetworkServiceWrapper;
+Landroid/telephony/NetworkService;->mHandler:Landroid/telephony/NetworkService$NetworkServiceHandler;
+Landroid/telephony/NetworkService;->mHandlerThread:Landroid/os/HandlerThread;
+Landroid/telephony/NetworkService;->mServiceMap:Landroid/util/SparseArray;
+Landroid/telephony/NetworkService;->NETWORK_SERVICE_CREATE_NETWORK_SERVICE_PROVIDER:I
+Landroid/telephony/NetworkService;->NETWORK_SERVICE_EXTRA_SLOT_ID:Ljava/lang/String;
+Landroid/telephony/NetworkService;->NETWORK_SERVICE_GET_REGISTRATION_STATE:I
+Landroid/telephony/NetworkService;->NETWORK_SERVICE_INDICATION_NETWORK_STATE_CHANGED:I
+Landroid/telephony/NetworkService;->NETWORK_SERVICE_INTERFACE:Ljava/lang/String;
+Landroid/telephony/NetworkService;->NETWORK_SERVICE_REGISTER_FOR_STATE_CHANGE:I
+Landroid/telephony/NetworkService;->NETWORK_SERVICE_REMOVE_ALL_NETWORK_SERVICE_PROVIDERS:I
+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;
+Landroid/telephony/NetworkServiceCallback;->onGetNetworkRegistrationStateComplete(ILandroid/telephony/NetworkRegistrationState;)V
+Landroid/telephony/NetworkServiceCallback;->RESULT_ERROR_BUSY:I
+Landroid/telephony/NetworkServiceCallback;->RESULT_ERROR_FAILED:I
+Landroid/telephony/NetworkServiceCallback;->RESULT_ERROR_ILLEGAL_STATE:I
+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;
+Landroid/telephony/PcoData;->cid:I
+Landroid/telephony/PcoData;->contents:[B
+Landroid/telephony/PcoData;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/PcoData;->pcoId:I
+Landroid/telephony/PhoneNumberFormattingTextWatcher;->getFormattedNumber(CZ)Ljava/lang/String;
+Landroid/telephony/PhoneNumberFormattingTextWatcher;->hasSeparator(Ljava/lang/CharSequence;II)Z
+Landroid/telephony/PhoneNumberFormattingTextWatcher;->mSelfChange:Z
+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
+Landroid/telephony/PhoneNumberUtils;->appendPwCharBackToOrigDialStr(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->bcdToChar(BI)C
+Landroid/telephony/PhoneNumberUtils;->BCD_CALLED_PARTY_EXTENDED:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->BCD_EF_ADN_EXTENDED:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->CCC_LENGTH:I
+Landroid/telephony/PhoneNumberUtils;->cdmaCheckAndProcessPlusCodeByNumberFormat(Ljava/lang/String;II)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->cdmaCheckAndProcessPlusCodeForSms(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->charToBCD(CI)I
+Landroid/telephony/PhoneNumberUtils;->checkPrefixIsIgnorable(Ljava/lang/String;II)Z
+Landroid/telephony/PhoneNumberUtils;->CLIR_OFF:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->CLIR_ON:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->convertAndStrip(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->convertSipUriToTelUri(Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/telephony/PhoneNumberUtils;->convertToEmergencyNumber(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->COUNTRY_CALLING_CALL:[Z
+Landroid/telephony/PhoneNumberUtils;->DBG:Z
+Landroid/telephony/PhoneNumberUtils;->findDialableIndexFromPostDialStr(Ljava/lang/String;)I
+Landroid/telephony/PhoneNumberUtils;->formatNumberInternal(Ljava/lang/String;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->getCurrentIdp(Z)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->getDefaultVoiceSubId()I
+Landroid/telephony/PhoneNumberUtils;->getFormatTypeFromCountryCode(Ljava/lang/String;)I
+Landroid/telephony/PhoneNumberUtils;->GLOBAL_PHONE_NUMBER_PATTERN:Ljava/util/regex/Pattern;
+Landroid/telephony/PhoneNumberUtils;->indexOfLastNetworkChar(Ljava/lang/String;)I
+Landroid/telephony/PhoneNumberUtils;->internalCalledPartyBCDFragmentToString(Ljava/lang/StringBuilder;[BIII)V
+Landroid/telephony/PhoneNumberUtils;->internalGetStrippedReversed(Ljava/lang/String;I)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->isCountryCallingCode(I)Z
+Landroid/telephony/PhoneNumberUtils;->isDialable(Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isEmergencyNumber(ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isEmergencyNumberInternal(ILjava/lang/String;Ljava/lang/String;Z)Z
+Landroid/telephony/PhoneNumberUtils;->isEmergencyNumberInternal(ILjava/lang/String;Z)Z
+Landroid/telephony/PhoneNumberUtils;->isEmergencyNumberInternal(Ljava/lang/String;Ljava/lang/String;Z)Z
+Landroid/telephony/PhoneNumberUtils;->isEmergencyNumberInternal(Ljava/lang/String;Z)Z
+Landroid/telephony/PhoneNumberUtils;->isInternationalNumber(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumberInternal(ILjava/lang/String;Landroid/content/Context;Z)Z
+Landroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumberInternal(Ljava/lang/String;Landroid/content/Context;Z)Z
+Landroid/telephony/PhoneNumberUtils;->isNonSeparator(Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isOneNanp(Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isPause(C)Z
+Landroid/telephony/PhoneNumberUtils;->isPotentialEmergencyNumber(ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isPotentialEmergencyNumber(Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isPotentialEmergencyNumber(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->isSeparator(C)Z
+Landroid/telephony/PhoneNumberUtils;->isToneWait(C)Z
+Landroid/telephony/PhoneNumberUtils;->isTwoToNine(C)Z
+Landroid/telephony/PhoneNumberUtils;->isVoiceMailNumber(ILjava/lang/String;)Z
+Landroid/telephony/PhoneNumberUtils;->JAPAN_ISO_COUNTRY_CODE:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->KEYPAD_MAP:Landroid/util/SparseIntArray;
+Landroid/telephony/PhoneNumberUtils;->KOREA_ISO_COUNTRY_CODE:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->log(Ljava/lang/String;)V
+Landroid/telephony/PhoneNumberUtils;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->matchIntlPrefix(Ljava/lang/String;I)Z
+Landroid/telephony/PhoneNumberUtils;->matchIntlPrefixAndCC(Ljava/lang/String;I)Z
+Landroid/telephony/PhoneNumberUtils;->matchTrunkPrefix(Ljava/lang/String;I)Z
+Landroid/telephony/PhoneNumberUtils;->minPositive(II)I
+Landroid/telephony/PhoneNumberUtils;->NANP_COUNTRIES:[Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->NANP_IDP_STRING:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->NANP_LENGTH:I
+Landroid/telephony/PhoneNumberUtils;->NANP_STATE_DASH:I
+Landroid/telephony/PhoneNumberUtils;->NANP_STATE_DIGIT:I
+Landroid/telephony/PhoneNumberUtils;->NANP_STATE_ONE:I
+Landroid/telephony/PhoneNumberUtils;->NANP_STATE_PLUS:I
+Landroid/telephony/PhoneNumberUtils;->numberToCalledPartyBCDHelper(Ljava/lang/String;ZI)[B
+Landroid/telephony/PhoneNumberUtils;->PLUS_SIGN_CHAR:C
+Landroid/telephony/PhoneNumberUtils;->PLUS_SIGN_STRING:Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->processPlusCode(Ljava/lang/String;Z)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->removeDashes(Landroid/text/Editable;)V
+Landroid/telephony/PhoneNumberUtils;->sConvertToEmergencyMap:[Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->splitAtNonNumerics(Ljava/lang/CharSequence;)Ljava/lang/String;
+Landroid/telephony/PhoneNumberUtils;->tryGetCountryCallingCodeAndNewIndex(Ljava/lang/String;Z)Landroid/telephony/PhoneNumberUtils$CountryCallingCodeAndNewIndex;
+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
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCallStateChanged(ILjava/lang/String;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCarrierNetworkChange(Z)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCellInfoChanged(Ljava/util/List;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCellLocationChanged(Landroid/os/Bundle;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataActivationStateChanged(I)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataActivity(I)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataConnectionRealTimeInfoChanged(Landroid/telephony/DataConnectionRealTimeInfo;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataConnectionStateChanged(II)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onMessageWaitingIndicatorChanged(Z)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onOemHookRawEvent([B)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onOtaspChanged(I)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onPhysicalChannelConfigurationChanged(Ljava/util/List;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onPreciseCallStateChanged(Landroid/telephony/PreciseCallState;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onPreciseDataConnectionStateChanged(Landroid/telephony/PreciseDataConnectionState;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onServiceStateChanged(Landroid/telephony/ServiceState;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onSignalStrengthChanged(I)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onUserMobileDataStateChanged(Z)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onVoiceActivationStateChanged(I)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onVoLteServiceStateChanged(Landroid/telephony/VoLteServiceState;)V
+Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->send(IIILjava/lang/Object;)V
+Landroid/telephony/PhoneStateListener;->DBG:Z
+Landroid/telephony/PhoneStateListener;->LISTEN_CARRIER_NETWORK_CHANGE:I
+Landroid/telephony/PhoneStateListener;->LISTEN_DATA_ACTIVATION_STATE:I
+Landroid/telephony/PhoneStateListener;->LISTEN_DATA_CONNECTION_REAL_TIME_INFO:I
+Landroid/telephony/PhoneStateListener;->LISTEN_OEM_HOOK_RAW_EVENT:I
+Landroid/telephony/PhoneStateListener;->LISTEN_OTASP_CHANGED:I
+Landroid/telephony/PhoneStateListener;->LISTEN_PHYSICAL_CHANNEL_CONFIGURATION:I
+Landroid/telephony/PhoneStateListener;->LISTEN_PRECISE_DATA_CONNECTION_STATE:I
+Landroid/telephony/PhoneStateListener;->LISTEN_VOICE_ACTIVATION_STATE:I
+Landroid/telephony/PhoneStateListener;->LISTEN_VOLTE_STATE:I
+Landroid/telephony/PhoneStateListener;->log(Ljava/lang/String;)V
+Landroid/telephony/PhoneStateListener;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
+Landroid/telephony/PhoneStateListener;->onCarrierNetworkChange(Z)V
+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
+Landroid/telephony/PhysicalChannelConfig;->CONNECTION_SECONDARY_SERVING:I
+Landroid/telephony/PhysicalChannelConfig;->CONNECTION_UNKNOWN:I
+Landroid/telephony/PhysicalChannelConfig;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/PhysicalChannelConfig;->getCellBandwidthDownlink()I
+Landroid/telephony/PhysicalChannelConfig;->getConnectionStatus()I
+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;
+Landroid/telephony/PreciseCallState;->mBackgroundCallState:I
+Landroid/telephony/PreciseCallState;->mDisconnectCause:I
+Landroid/telephony/PreciseCallState;->mForegroundCallState:I
+Landroid/telephony/PreciseCallState;->mPreciseDisconnectCause:I
+Landroid/telephony/PreciseCallState;->mRingingCallState:I
+Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_ACTIVE:I
+Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_ALERTING:I
+Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_DIALING:I
+Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_DISCONNECTED:I
+Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_DISCONNECTING:I
+Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_HOLDING:I
+Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_IDLE:I
+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;
+Landroid/telephony/PreciseDataConnectionState;->mAPN:Ljava/lang/String;
+Landroid/telephony/PreciseDataConnectionState;->mAPNType:Ljava/lang/String;
+Landroid/telephony/PreciseDataConnectionState;->mFailCause:Ljava/lang/String;
+Landroid/telephony/PreciseDataConnectionState;->mLinkProperties:Landroid/net/LinkProperties;
+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
+Landroid/telephony/PreciseDisconnectCause;->ACM_LIMIT_EXCEEDED:I
+Landroid/telephony/PreciseDisconnectCause;->ANSWERED_ELSEWHERE:I
+Landroid/telephony/PreciseDisconnectCause;->BEARER_CAPABILITY_NOT_AUTHORIZED:I
+Landroid/telephony/PreciseDisconnectCause;->BEARER_NOT_AVAIL:I
+Landroid/telephony/PreciseDisconnectCause;->BEARER_SERVICE_NOT_IMPLEMENTED:I
+Landroid/telephony/PreciseDisconnectCause;->BLACKLISTED_CALL_ID:I
+Landroid/telephony/PreciseDisconnectCause;->BUSY:I
+Landroid/telephony/PreciseDisconnectCause;->CALL_BARRED:I
+Landroid/telephony/PreciseDisconnectCause;->CALL_DROP_IWLAN_TO_LTE_UNAVAILABLE:I
+Landroid/telephony/PreciseDisconnectCause;->CALL_PULLED:I
+Landroid/telephony/PreciseDisconnectCause;->CALL_PULL_OUT_OF_SYNC:I
+Landroid/telephony/PreciseDisconnectCause;->CALL_REJECTED:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_ACCESS_BLOCKED:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_ACCESS_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_DROP:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_INTERCEPT:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_LOCKED_UNTIL_POWER_CYCLE:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_NOT_EMERGENCY:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_PREEMPTED:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_REORDER:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_RETRY_ORDER:I
+Landroid/telephony/PreciseDisconnectCause;->CDMA_SO_REJECT:I
+Landroid/telephony/PreciseDisconnectCause;->CHANNEL_NOT_AVAIL:I
+Landroid/telephony/PreciseDisconnectCause;->CHANNEL_UNACCEPTABLE:I
+Landroid/telephony/PreciseDisconnectCause;->CONDITIONAL_IE_ERROR:I
+Landroid/telephony/PreciseDisconnectCause;->DATA_DISABLED:I
+Landroid/telephony/PreciseDisconnectCause;->DATA_LIMIT_REACHED:I
+Landroid/telephony/PreciseDisconnectCause;->DESTINATION_OUT_OF_ORDER:I
+Landroid/telephony/PreciseDisconnectCause;->ECBM_NOT_SUPPORTED:I
+Landroid/telephony/PreciseDisconnectCause;->EMERGENCY_PERM_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->EMERGENCY_TEMP_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->EPDG_TUNNEL_ESTABLISH_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->EPDG_TUNNEL_LOST_CONNECTION:I
+Landroid/telephony/PreciseDisconnectCause;->EPDG_TUNNEL_REKEY_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->ERROR_UNSPECIFIED:I
+Landroid/telephony/PreciseDisconnectCause;->FACILITY_REJECTED:I
+Landroid/telephony/PreciseDisconnectCause;->FDN_BLOCKED:I
+Landroid/telephony/PreciseDisconnectCause;->IMEI_NOT_ACCEPTED:I
+Landroid/telephony/PreciseDisconnectCause;->IMSI_UNKNOWN_IN_VLR:I
+Landroid/telephony/PreciseDisconnectCause;->INCOMING_CALLS_BARRED_WITHIN_CUG:I
+Landroid/telephony/PreciseDisconnectCause;->INCOMPATIBLE_DESTINATION:I
+Landroid/telephony/PreciseDisconnectCause;->INFORMATION_ELEMENT_NON_EXISTENT:I
+Landroid/telephony/PreciseDisconnectCause;->INTERWORKING_UNSPECIFIED:I
+Landroid/telephony/PreciseDisconnectCause;->INVALID_MANDATORY_INFORMATION:I
+Landroid/telephony/PreciseDisconnectCause;->INVALID_NUMBER_FORMAT:I
+Landroid/telephony/PreciseDisconnectCause;->INVALID_TRANSACTION_IDENTIFIER:I
+Landroid/telephony/PreciseDisconnectCause;->IWLAN_DPD_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_CALL_CS_RETRY_REQUIRED:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_CALL_DECLINE:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_CALL_RESOURCE_RESERVATION_FAILED:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_CALL_TERMINATED:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_CALL_VCC_ON_PROGRESSING:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_CALL_VOLTE_RETRY_REQUIRED:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_HO_NOT_FEASIBLE:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_ILLEGAL_ARGUMENT:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_ILLEGAL_STATE:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_IMS_SERVICE_DOWN:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_INTERNAL_ERROR:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_LOW_BATTERY:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_MAX_CALL_EXCEEDED:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_NETWORK_IP_CHANGED:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_NETWORK_NO_LTE_COVERAGE:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_NETWORK_NO_SERVICE:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_NETWORK_ROAMING:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_NOT_REGISTERED:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_NO_PENDING_CALL:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_POWER_OFF:I
+Landroid/telephony/PreciseDisconnectCause;->LOCAL_SERVICE_UNAVAILABLE:I
+Landroid/telephony/PreciseDisconnectCause;->LOW_BATTERY:I
+Landroid/telephony/PreciseDisconnectCause;->MAXIMUM_NUMBER_OF_CALLS_REACHED:I
+Landroid/telephony/PreciseDisconnectCause;->MEDIA_INIT_FAILED:I
+Landroid/telephony/PreciseDisconnectCause;->MEDIA_NOT_ACCEPTABLE:I
+Landroid/telephony/PreciseDisconnectCause;->MEDIA_NO_DATA:I
+Landroid/telephony/PreciseDisconnectCause;->MEDIA_UNSPECIFIED:I
+Landroid/telephony/PreciseDisconnectCause;->MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE:I
+Landroid/telephony/PreciseDisconnectCause;->MESSAGE_TYPE_NON_IMPLEMENTED:I
+Landroid/telephony/PreciseDisconnectCause;->MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE:I
+Landroid/telephony/PreciseDisconnectCause;->MULTIENDPOINT_NOT_SUPPORTED:I
+Landroid/telephony/PreciseDisconnectCause;->NETWORK_DETACH:I
+Landroid/telephony/PreciseDisconnectCause;->NETWORK_OUT_OF_ORDER:I
+Landroid/telephony/PreciseDisconnectCause;->NETWORK_REJECT:I
+Landroid/telephony/PreciseDisconnectCause;->NETWORK_RESP_TIMEOUT:I
+Landroid/telephony/PreciseDisconnectCause;->NORMAL:I
+Landroid/telephony/PreciseDisconnectCause;->NORMAL_UNSPECIFIED:I
+Landroid/telephony/PreciseDisconnectCause;->NOT_VALID:I
+Landroid/telephony/PreciseDisconnectCause;->NO_ANSWER_FROM_USER:I
+Landroid/telephony/PreciseDisconnectCause;->NO_CIRCUIT_AVAIL:I
+Landroid/telephony/PreciseDisconnectCause;->NO_DISCONNECT_CAUSE_AVAILABLE:I
+Landroid/telephony/PreciseDisconnectCause;->NO_ROUTE_TO_DESTINATION:I
+Landroid/telephony/PreciseDisconnectCause;->NO_USER_RESPONDING:I
+Landroid/telephony/PreciseDisconnectCause;->NO_VALID_SIM:I
+Landroid/telephony/PreciseDisconnectCause;->NUMBER_CHANGED:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_10:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_11:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_12:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_13:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_14:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_15:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_1:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_2:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_3:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_4:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_5:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_6:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_7:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_8:I
+Landroid/telephony/PreciseDisconnectCause;->OEM_CAUSE_9:I
+Landroid/telephony/PreciseDisconnectCause;->ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE:I
+Landroid/telephony/PreciseDisconnectCause;->OPERATOR_DETERMINED_BARRING:I
+Landroid/telephony/PreciseDisconnectCause;->OUT_OF_SRV:I
+Landroid/telephony/PreciseDisconnectCause;->PREEMPTION:I
+Landroid/telephony/PreciseDisconnectCause;->PROTOCOL_ERROR_UNSPECIFIED:I
+Landroid/telephony/PreciseDisconnectCause;->QOS_NOT_AVAIL:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_ACCESS_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_INTERNAL_ERROR:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_LINK_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_LINK_LOST:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_OFF:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_RELEASE_ABNORMAL:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_RELEASE_NORMAL:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_SETUP_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->RADIO_UPLINK_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->RECOVERY_ON_TIMER_EXPIRED:I
+Landroid/telephony/PreciseDisconnectCause;->REMOTE_CALL_DECLINE:I
+Landroid/telephony/PreciseDisconnectCause;->REQUESTED_FACILITY_NOT_IMPLEMENTED:I
+Landroid/telephony/PreciseDisconnectCause;->REQUESTED_FACILITY_NOT_SUBSCRIBED:I
+Landroid/telephony/PreciseDisconnectCause;->RESOURCES_UNAVAILABLE_OR_UNSPECIFIED:I
+Landroid/telephony/PreciseDisconnectCause;->SEMANTICALLY_INCORRECT_MESSAGE:I
+Landroid/telephony/PreciseDisconnectCause;->SERVICE_OPTION_NOT_AVAILABLE:I
+Landroid/telephony/PreciseDisconnectCause;->SERVICE_OR_OPTION_NOT_IMPLEMENTED:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_BAD_ADDRESS:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_BAD_REQUEST:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_BUSY:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_CLIENT_ERROR:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_FORBIDDEN:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_GLOBAL_ERROR:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_NOT_ACCEPTABLE:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_NOT_FOUND:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_NOT_REACHABLE:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_NOT_SUPPORTED:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_REDIRECTED:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_REQUEST_CANCELLED:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_REQUEST_TIMEOUT:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_SERVER_ERROR:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_SERVER_INTERNAL_ERROR:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_SERVER_TIMEOUT:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_SERVICE_UNAVAILABLE:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_TEMPRARILY_UNAVAILABLE:I
+Landroid/telephony/PreciseDisconnectCause;->SIP_USER_REJECTED:I
+Landroid/telephony/PreciseDisconnectCause;->STATUS_ENQUIRY:I
+Landroid/telephony/PreciseDisconnectCause;->SUPP_SVC_CANCELLED:I
+Landroid/telephony/PreciseDisconnectCause;->SUPP_SVC_FAILED:I
+Landroid/telephony/PreciseDisconnectCause;->SUPP_SVC_REINVITE_COLLISION:I
+Landroid/telephony/PreciseDisconnectCause;->SWITCHING_CONGESTION:I
+Landroid/telephony/PreciseDisconnectCause;->TEMPORARY_FAILURE:I
+Landroid/telephony/PreciseDisconnectCause;->TIMEOUT_1XX_WAITING:I
+Landroid/telephony/PreciseDisconnectCause;->TIMEOUT_NO_ANSWER:I
+Landroid/telephony/PreciseDisconnectCause;->TIMEOUT_NO_ANSWER_CALL_UPDATE:I
+Landroid/telephony/PreciseDisconnectCause;->UNOBTAINABLE_NUMBER:I
+Landroid/telephony/PreciseDisconnectCause;->USER_DECLINE:I
+Landroid/telephony/PreciseDisconnectCause;->USER_IGNORE:I
+Landroid/telephony/PreciseDisconnectCause;->USER_NOANSWER:I
+Landroid/telephony/PreciseDisconnectCause;->USER_NOT_MEMBER_OF_CUG:I
+Landroid/telephony/PreciseDisconnectCause;->USER_TERMINATED:I
+Landroid/telephony/PreciseDisconnectCause;->USER_TERMINATED_BY_REMOTE:I
+Landroid/telephony/PreciseDisconnectCause;->UT_CB_PASSWORD_MISMATCH:I
+Landroid/telephony/PreciseDisconnectCause;->UT_NETWORK_ERROR:I
+Landroid/telephony/PreciseDisconnectCause;->UT_NOT_SUPPORTED:I
+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
+Landroid/telephony/RadioAccessFamily;->getAdjustedRaf(I)I
+Landroid/telephony/RadioAccessFamily;->getHighestRafCapability(I)I
+Landroid/telephony/RadioAccessFamily;->GSM:I
+Landroid/telephony/RadioAccessFamily;->HS:I
+Landroid/telephony/RadioAccessFamily;->LTE:I
+Landroid/telephony/RadioAccessFamily;->mPhoneId:I
+Landroid/telephony/RadioAccessFamily;->mRadioAccessFamily:I
+Landroid/telephony/RadioAccessFamily;->rafTypeFromString(Ljava/lang/String;)I
+Landroid/telephony/RadioAccessFamily;->RAF_1xRTT:I
+Landroid/telephony/RadioAccessFamily;->RAF_EDGE:I
+Landroid/telephony/RadioAccessFamily;->RAF_EHRPD:I
+Landroid/telephony/RadioAccessFamily;->RAF_EVDO_0:I
+Landroid/telephony/RadioAccessFamily;->RAF_EVDO_A:I
+Landroid/telephony/RadioAccessFamily;->RAF_EVDO_B:I
+Landroid/telephony/RadioAccessFamily;->RAF_GPRS:I
+Landroid/telephony/RadioAccessFamily;->RAF_GSM:I
+Landroid/telephony/RadioAccessFamily;->RAF_HSDPA:I
+Landroid/telephony/RadioAccessFamily;->RAF_HSPA:I
+Landroid/telephony/RadioAccessFamily;->RAF_HSPAP:I
+Landroid/telephony/RadioAccessFamily;->RAF_HSUPA:I
+Landroid/telephony/RadioAccessFamily;->RAF_IS95A:I
+Landroid/telephony/RadioAccessFamily;->RAF_IS95B:I
+Landroid/telephony/RadioAccessFamily;->RAF_LTE:I
+Landroid/telephony/RadioAccessFamily;->RAF_LTE_CA:I
+Landroid/telephony/RadioAccessFamily;->RAF_TD_SCDMA:I
+Landroid/telephony/RadioAccessFamily;->RAF_UMTS:I
+Landroid/telephony/RadioAccessFamily;->RAF_UNKNOWN:I
+Landroid/telephony/RadioAccessFamily;->singleRafTypeFromString(Ljava/lang/String;)I
+Landroid/telephony/RadioAccessFamily;->WCDMA:I
+Landroid/telephony/RadioAccessSpecifier;-><init>(Landroid/os/Parcel;)V
+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;
+Landroid/telephony/Rlog;->pii(ZLjava/lang/Object;)Ljava/lang/String;
+Landroid/telephony/Rlog;->println(ILjava/lang/String;Ljava/lang/String;)I
+Landroid/telephony/Rlog;->secureHash([B)Ljava/lang/String;
+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
+Landroid/telephony/ServiceState;->DBG:Z
+Landroid/telephony/ServiceState;->getBitmaskForTech(I)I
+Landroid/telephony/ServiceState;->getBitmaskFromString(Ljava/lang/String;)I
+Landroid/telephony/ServiceState;->getDataOperatorAlphaLong()Ljava/lang/String;
+Landroid/telephony/ServiceState;->getDataRoamingFromRegistration()Z
+Landroid/telephony/ServiceState;->getLteEarfcnRsrpBoost()I
+Landroid/telephony/ServiceState;->getNetworkRegistrationStates()Ljava/util/List;
+Landroid/telephony/ServiceState;->getNetworkRegistrationStates(I)Ljava/util/List;
+Landroid/telephony/ServiceState;->getNetworkRegistrationStates(II)Landroid/telephony/NetworkRegistrationState;
+Landroid/telephony/ServiceState;->getOperatorAlpha()Ljava/lang/String;
+Landroid/telephony/ServiceState;->getRoamingLogString(I)Ljava/lang/String;
+Landroid/telephony/ServiceState;->isLte(I)Z
+Landroid/telephony/ServiceState;->isUsingCarrierAggregation()Z
+Landroid/telephony/ServiceState;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/ServiceState;->mCellBandwidths:[I
+Landroid/telephony/ServiceState;->mChannelNumber:I
+Landroid/telephony/ServiceState;->mDataOperatorAlphaLong:Ljava/lang/String;
+Landroid/telephony/ServiceState;->mDataOperatorAlphaShort:Ljava/lang/String;
+Landroid/telephony/ServiceState;->mDataOperatorNumeric:Ljava/lang/String;
+Landroid/telephony/ServiceState;->mDataRegState:I
+Landroid/telephony/ServiceState;->mDataRoamingType:I
+Landroid/telephony/ServiceState;->mIsDataRoamingFromRegistration:Z
+Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
+Landroid/telephony/ServiceState;->mLteEarfcnRsrpBoost:I
+Landroid/telephony/ServiceState;->mNetworkRegistrationStates:Ljava/util/List;
+Landroid/telephony/ServiceState;->mRilDataRadioTechnology:I
+Landroid/telephony/ServiceState;->mRilVoiceRadioTechnology:I
+Landroid/telephony/ServiceState;->mVoiceOperatorAlphaLong:Ljava/lang/String;
+Landroid/telephony/ServiceState;->mVoiceOperatorAlphaShort:Ljava/lang/String;
+Landroid/telephony/ServiceState;->mVoiceOperatorNumeric:Ljava/lang/String;
+Landroid/telephony/ServiceState;->mVoiceRegState:I
+Landroid/telephony/ServiceState;->mVoiceRoamingType:I
+Landroid/telephony/ServiceState;->networkTypeToRilRadioTechnology(I)I
+Landroid/telephony/ServiceState;->NEXT_RIL_RADIO_TECHNOLOGY:I
+Landroid/telephony/ServiceState;->rilRadioTechnologyToAccessNetworkType(I)I
+Landroid/telephony/ServiceState;->rilRadioTechnologyToNetworkType(I)I
+Landroid/telephony/ServiceState;->rilServiceStateToString(I)Ljava/lang/String;
+Landroid/telephony/ServiceState;->RIL_RADIO_CDMA_TECHNOLOGY_BITMASK:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_1xRTT:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_EDGE:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_EHRPD:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_EVDO_0:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_EVDO_A:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_EVDO_B:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_GPRS:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_GSM:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_HSDPA:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_HSPA:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_HSPAP:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_HSUPA:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_IS95A:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_IS95B:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_LTE:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_LTE_CA:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_TD_SCDMA:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_UMTS:I
+Landroid/telephony/ServiceState;->RIL_RADIO_TECHNOLOGY_UNKNOWN:I
+Landroid/telephony/ServiceState;->ROAMING_TYPE_DOMESTIC:I
+Landroid/telephony/ServiceState;->ROAMING_TYPE_INTERNATIONAL:I
+Landroid/telephony/ServiceState;->ROAMING_TYPE_NOT_ROAMING:I
+Landroid/telephony/ServiceState;->ROAMING_TYPE_UNKNOWN:I
+Landroid/telephony/ServiceState;->setDataOperatorAlphaLong(Ljava/lang/String;)V
+Landroid/telephony/ServiceState;->setDataOperatorName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/ServiceState;->setIsUsingCarrierAggregation(Z)V
+Landroid/telephony/ServiceState;->setLteEarfcnRsrpBoost(I)V
+Landroid/telephony/ServiceState;->setNullState(I)V
+Landroid/telephony/ServiceState;->setVoiceOperatorAlphaLong(Ljava/lang/String;)V
+Landroid/telephony/ServiceState;->setVoiceOperatorName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/ServiceState;->VDBG:Z
+Landroid/telephony/SignalStrength;-><init>(IIIIIIIIIIIII)V
+Landroid/telephony/SignalStrength;-><init>(IIIIIIIIIIIIIII)V
+Landroid/telephony/SignalStrength;-><init>(IIIIIIIIIIIIIIIIZZLjava/lang/String;)V
+Landroid/telephony/SignalStrength;->DBG:Z
+Landroid/telephony/SignalStrength;->fixType()V
+Landroid/telephony/SignalStrength;->getCdmaRelatedSignalStrength()I
+Landroid/telephony/SignalStrength;->getDefaultLteRsrpThresholds()[I
+Landroid/telephony/SignalStrength;->getDefaultWcdmaRscpThresholds()[I
+Landroid/telephony/SignalStrength;->getGsmRelatedSignalStrength()I
+Landroid/telephony/SignalStrength;->getLteRsrpBoost()I
+Landroid/telephony/SignalStrength;->getWcdmaAsuLevel()I
+Landroid/telephony/SignalStrength;->getWcdmaDbm()I
+Landroid/telephony/SignalStrength;->getWcdmaLevel()I
+Landroid/telephony/SignalStrength;->getWcdmaRscp()I
+Landroid/telephony/SignalStrength;->INVALID:I
+Landroid/telephony/SignalStrength;->log(Ljava/lang/String;)V
+Landroid/telephony/SignalStrength;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/SignalStrength;->LTE_RSRP_THRESHOLDS_NUM:I
+Landroid/telephony/SignalStrength;->MAX_LTE_RSRP:I
+Landroid/telephony/SignalStrength;->MAX_WCDMA_RSCP:I
+Landroid/telephony/SignalStrength;->MEASUMENT_TYPE_RSCP:Ljava/lang/String;
+Landroid/telephony/SignalStrength;->MIN_LTE_RSRP:I
+Landroid/telephony/SignalStrength;->MIN_WCDMA_RSCP:I
+Landroid/telephony/SignalStrength;->mIsGsm:Z
+Landroid/telephony/SignalStrength;->mLteRsrpThresholds:[I
+Landroid/telephony/SignalStrength;->mUseOnlyRsrpForLteLevel:Z
+Landroid/telephony/SignalStrength;->mWcdmaDefaultSignalMeasurement:Ljava/lang/String;
+Landroid/telephony/SignalStrength;->mWcdmaRscpAsu:I
+Landroid/telephony/SignalStrength;->mWcdmaRscpThresholds:[I
+Landroid/telephony/SignalStrength;->mWcdmaSignalStrength:I
+Landroid/telephony/SignalStrength;->setGsm(Z)V
+Landroid/telephony/SignalStrength;->setLteRsrpBoost(I)V
+Landroid/telephony/SignalStrength;->setLteRsrpThresholds([I)V
+Landroid/telephony/SignalStrength;->setUseOnlyRsrpForLteLevel(Z)V
+Landroid/telephony/SignalStrength;->setWcdmaDefaultSignalMeasurement(Ljava/lang/String;)V
+Landroid/telephony/SignalStrength;->setWcdmaRscpThresholds([I)V
+Landroid/telephony/SignalStrength;->SIGNAL_STRENGTH_NAMES:[Ljava/lang/String;
+Landroid/telephony/SignalStrength;->useOnlyRsrpForLteLevel()Z
+Landroid/telephony/SignalStrength;->WCDMA_RSCP_THRESHOLDS_NUM:I
+Landroid/telephony/SmsCbCmasInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/SmsCbCmasInfo;->mCategory:I
+Landroid/telephony/SmsCbCmasInfo;->mCertainty:I
+Landroid/telephony/SmsCbCmasInfo;->mMessageClass:I
+Landroid/telephony/SmsCbCmasInfo;->mResponseType:I
+Landroid/telephony/SmsCbCmasInfo;->mSeverity:I
+Landroid/telephony/SmsCbCmasInfo;->mUrgency:I
+Landroid/telephony/SmsCbEtwsInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/SmsCbEtwsInfo;->mActivatePopup:Z
+Landroid/telephony/SmsCbEtwsInfo;->mEmergencyUserAlert:Z
+Landroid/telephony/SmsCbEtwsInfo;->mPrimary:Z
+Landroid/telephony/SmsCbEtwsInfo;->mWarningSecurityInformation:[B
+Landroid/telephony/SmsCbEtwsInfo;->mWarningType:I
+Landroid/telephony/SmsCbLocation;->mCid:I
+Landroid/telephony/SmsCbLocation;->mLac:I
+Landroid/telephony/SmsCbLocation;->mPlmn:Ljava/lang/String;
+Landroid/telephony/SmsCbMessage;->mBody:Ljava/lang/String;
+Landroid/telephony/SmsCbMessage;->mCmasWarningInfo:Landroid/telephony/SmsCbCmasInfo;
+Landroid/telephony/SmsCbMessage;->mEtwsWarningInfo:Landroid/telephony/SmsCbEtwsInfo;
+Landroid/telephony/SmsCbMessage;->mGeographicalScope:I
+Landroid/telephony/SmsCbMessage;->mLanguage:Ljava/lang/String;
+Landroid/telephony/SmsCbMessage;->mLocation:Landroid/telephony/SmsCbLocation;
+Landroid/telephony/SmsCbMessage;->mMessageFormat:I
+Landroid/telephony/SmsCbMessage;->mPriority:I
+Landroid/telephony/SmsCbMessage;->mSerialNumber:I
+Landroid/telephony/SmsCbMessage;->mServiceCategory:I
+Landroid/telephony/SmsManager;-><init>(I)V
+Landroid/telephony/SmsManager;->addMultimediaMessageDraft(Landroid/net/Uri;)Landroid/net/Uri;
+Landroid/telephony/SmsManager;->addTextMessageDraft(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;
+Landroid/telephony/SmsManager;->archiveStoredConversation(JZ)Z
+Landroid/telephony/SmsManager;->CDMA_SMS_RECORD_LENGTH:I
+Landroid/telephony/SmsManager;->CELL_BROADCAST_RAN_TYPE_CDMA:I
+Landroid/telephony/SmsManager;->CELL_BROADCAST_RAN_TYPE_GSM:I
+Landroid/telephony/SmsManager;->createMessageListFromRawRecords(Ljava/util/List;)Ljava/util/ArrayList;
+Landroid/telephony/SmsManager;->DEFAULT_SUBSCRIPTION_ID:I
+Landroid/telephony/SmsManager;->deleteStoredConversation(J)Z
+Landroid/telephony/SmsManager;->deleteStoredMessage(Landroid/net/Uri;)Z
+Landroid/telephony/SmsManager;->DIALOG_TYPE_KEY:Ljava/lang/String;
+Landroid/telephony/SmsManager;->disableCellBroadcast(II)Z
+Landroid/telephony/SmsManager;->enableCellBroadcast(II)Z
+Landroid/telephony/SmsManager;->getAutoPersisting()Z
+Landroid/telephony/SmsManager;->getImsSmsFormat()Ljava/lang/String;
+Landroid/telephony/SmsManager;->getISmsService()Lcom/android/internal/telephony/ISms;
+Landroid/telephony/SmsManager;->getISmsServiceOrThrow()Lcom/android/internal/telephony/ISms;
+Landroid/telephony/SmsManager;->getMmsConfig(Landroid/os/BaseBundle;)Landroid/os/Bundle;
+Landroid/telephony/SmsManager;->importMultimediaMessage(Landroid/net/Uri;Ljava/lang/String;JZZ)Landroid/net/Uri;
+Landroid/telephony/SmsManager;->importTextMessage(Ljava/lang/String;ILjava/lang/String;JZZ)Landroid/net/Uri;
+Landroid/telephony/SmsManager;->isImsSmsSupported()Z
+Landroid/telephony/SmsManager;->MESSAGE_STATUS_READ:Ljava/lang/String;
+Landroid/telephony/SmsManager;->MESSAGE_STATUS_SEEN:Ljava/lang/String;
+Landroid/telephony/SmsManager;->MMS_CONFIG_CLOSE_CONNECTION:Ljava/lang/String;
+Landroid/telephony/SmsManager;->PHONE_PACKAGE_NAME:Ljava/lang/String;
+Landroid/telephony/SmsManager;->sendDataMessageWithSelfPermissions(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V
+Landroid/telephony/SmsManager;->sendMultipartTextMessageInternal(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Z)V
+Landroid/telephony/SmsManager;->sendMultipartTextMessageInternal(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZIZI)V
+Landroid/telephony/SmsManager;->sendMultipartTextMessageWithoutPersisting(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;IZI)V
+Landroid/telephony/SmsManager;->sendStoredMultimediaMessage(Landroid/net/Uri;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
+Landroid/telephony/SmsManager;->sendStoredMultipartTextMessage(Landroid/net/Uri;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+Landroid/telephony/SmsManager;->sendStoredTextMessage(Landroid/net/Uri;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V
+Landroid/telephony/SmsManager;->sendTextMessageInternal(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;Z)V
+Landroid/telephony/SmsManager;->sendTextMessageInternal(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;ZIZI)V
+Landroid/telephony/SmsManager;->sendTextMessageWithSelfPermissions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;Z)V
+Landroid/telephony/SmsManager;->setAutoPersisting(Z)V
+Landroid/telephony/SmsManager;->sInstance:Landroid/telephony/SmsManager;
+Landroid/telephony/SmsManager;->sLockObject:Ljava/lang/Object;
+Landroid/telephony/SmsManager;->SMS_PICK:I
+Landroid/telephony/SmsManager;->SMS_RECORD_LENGTH:I
+Landroid/telephony/SmsManager;->SMS_TYPE_INCOMING:I
+Landroid/telephony/SmsManager;->SMS_TYPE_OUTGOING:I
+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
+Landroid/telephony/SmsMessage$NoEmsSupportConfig;->mOperatorNumber:Ljava/lang/String;
+Landroid/telephony/SmsMessage$SubmitPdu;-><init>(Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;)V
+Landroid/telephony/SmsMessage;-><init>(Lcom/android/internal/telephony/SmsMessageBase;)V
+Landroid/telephony/SmsMessage;->createFromEfRecord(I[B)Landroid/telephony/SmsMessage;
+Landroid/telephony/SmsMessage;->createFromEfRecord(I[BI)Landroid/telephony/SmsMessage;
+Landroid/telephony/SmsMessage;->ENCODING_KSC5601:I
+Landroid/telephony/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Landroid/telephony/SmsMessage$SubmitPdu;
+Landroid/telephony/SmsMessage;->hasEmsSupport()Z
+Landroid/telephony/SmsMessage;->isCdmaVoice()Z
+Landroid/telephony/SmsMessage;->isCdmaVoice(I)Z
+Landroid/telephony/SmsMessage;->isNoEmsSupportConfigListExisted()Z
+Landroid/telephony/SmsMessage;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/SmsMessage;->mIsNoEmsSupportConfigListLoaded:Z
+Landroid/telephony/SmsMessage;->mNoEmsSupportConfigList:[Landroid/telephony/SmsMessage$NoEmsSupportConfig;
+Landroid/telephony/SmsMessage;->newFromCMT([B)Landroid/telephony/SmsMessage;
+Landroid/telephony/SmsMessage;->shouldAppendPageNumberAsPrefix()Z
+Landroid/telephony/SubscriptionInfo;-><init>(ILjava/lang/String;ILjava/lang/CharSequence;Ljava/lang/CharSequence;IILjava/lang/String;ILandroid/graphics/Bitmap;IILjava/lang/String;)V
+Landroid/telephony/SubscriptionInfo;-><init>(ILjava/lang/String;ILjava/lang/CharSequence;Ljava/lang/CharSequence;IILjava/lang/String;ILandroid/graphics/Bitmap;IILjava/lang/String;Z[Landroid/telephony/UiccAccessRule;)V
+Landroid/telephony/SubscriptionInfo;-><init>(ILjava/lang/String;ILjava/lang/CharSequence;Ljava/lang/CharSequence;IILjava/lang/String;ILandroid/graphics/Bitmap;IILjava/lang/String;Z[Landroid/telephony/UiccAccessRule;Ljava/lang/String;)V
+Landroid/telephony/SubscriptionInfo;->canManageSubscription(Landroid/content/Context;)Z
+Landroid/telephony/SubscriptionInfo;->canManageSubscription(Landroid/content/Context;Ljava/lang/String;)Z
+Landroid/telephony/SubscriptionInfo;->getCardId()Ljava/lang/String;
+Landroid/telephony/SubscriptionInfo;->givePrintableIccid(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/SubscriptionInfo;->mAccessRules:[Landroid/telephony/UiccAccessRule;
+Landroid/telephony/SubscriptionInfo;->mCardId:Ljava/lang/String;
+Landroid/telephony/SubscriptionInfo;->mCarrierName:Ljava/lang/CharSequence;
+Landroid/telephony/SubscriptionInfo;->mCountryIso:Ljava/lang/String;
+Landroid/telephony/SubscriptionInfo;->mDataRoaming:I
+Landroid/telephony/SubscriptionInfo;->mDisplayName:Ljava/lang/CharSequence;
+Landroid/telephony/SubscriptionInfo;->mIccId:Ljava/lang/String;
+Landroid/telephony/SubscriptionInfo;->mIconBitmap:Landroid/graphics/Bitmap;
+Landroid/telephony/SubscriptionInfo;->mIconTint:I
+Landroid/telephony/SubscriptionInfo;->mId:I
+Landroid/telephony/SubscriptionInfo;->mIsEmbedded:Z
+Landroid/telephony/SubscriptionInfo;->mMcc:I
+Landroid/telephony/SubscriptionInfo;->mMnc:I
+Landroid/telephony/SubscriptionInfo;->mNameSource:I
+Landroid/telephony/SubscriptionInfo;->mNumber:Ljava/lang/String;
+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
+Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;->mHandler:Landroid/os/Handler;
+Landroid/telephony/SubscriptionManager;->ACCESS_RULES:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->ACTION_SUBSCRIPTION_PLANS_CHANGED:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->addSubscriptionInfoRecord(Ljava/lang/String;I)Landroid/net/Uri;
+Landroid/telephony/SubscriptionManager;->allDefaultsSelected()Z
+Landroid/telephony/SubscriptionManager;->canManageSubscription(Landroid/telephony/SubscriptionInfo;Ljava/lang/String;)Z
+Landroid/telephony/SubscriptionManager;->CARD_ID:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CARRIER_NAME:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_ALERT_REMINDER_INTERVAL:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_ALERT_SOUND_DURATION:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_ALERT_SPEECH:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_ALERT_VIBRATE:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_AMBER_ALERT:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_CHANNEL_50_ALERT:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_CMAS_TEST_ALERT:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_EMERGENCY_ALERT:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_ETWS_TEST_ALERT:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_EXTREME_THREAT_ALERT:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_OPT_OUT_DIALOG:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->CB_SEVERE_THREAT_ALERT:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->clearSubscriptionInfo()V
+Landroid/telephony/SubscriptionManager;->COLOR:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->COLOR_1:I
+Landroid/telephony/SubscriptionManager;->COLOR_2:I
+Landroid/telephony/SubscriptionManager;->COLOR_3:I
+Landroid/telephony/SubscriptionManager;->COLOR_4:I
+Landroid/telephony/SubscriptionManager;->COLOR_DEFAULT:I
+Landroid/telephony/SubscriptionManager;->createManageSubscriptionIntent(I)Landroid/content/Intent;
+Landroid/telephony/SubscriptionManager;->createRefreshSubscriptionIntent(I)Landroid/content/Intent;
+Landroid/telephony/SubscriptionManager;->DATA_ROAMING:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->DATA_ROAMING_DEFAULT:I
+Landroid/telephony/SubscriptionManager;->DBG:Z
+Landroid/telephony/SubscriptionManager;->DEFAULT_NAME_RES:I
+Landroid/telephony/SubscriptionManager;->DEFAULT_PHONE_INDEX:I
+Landroid/telephony/SubscriptionManager;->DEFAULT_SIM_SLOT_INDEX:I
+Landroid/telephony/SubscriptionManager;->DISPLAY_NAME:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->DISPLAY_NUMBER_DEFAULT:I
+Landroid/telephony/SubscriptionManager;->DISPLAY_NUMBER_FIRST:I
+Landroid/telephony/SubscriptionManager;->DISPLAY_NUMBER_FORMAT:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->DISPLAY_NUMBER_LAST:I
+Landroid/telephony/SubscriptionManager;->DISPLAY_NUMBER_NONE:I
+Landroid/telephony/SubscriptionManager;->DUMMY_SUBSCRIPTION_ID_BASE:I
+Landroid/telephony/SubscriptionManager;->ENHANCED_4G_MODE_ENABLED:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoForIccIndex(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo;
+Landroid/telephony/SubscriptionManager;->getBooleanSubscriptionProperty(ILjava/lang/String;ZLandroid/content/Context;)Z
+Landroid/telephony/SubscriptionManager;->getDefaultSmsSubscriptionInfo()Landroid/telephony/SubscriptionInfo;
+Landroid/telephony/SubscriptionManager;->getIntegerSubscriptionProperty(ILjava/lang/String;ILandroid/content/Context;)I
+Landroid/telephony/SubscriptionManager;->getNetworkPolicy()Landroid/net/INetworkPolicyManager;
+Landroid/telephony/SubscriptionManager;->getSimStateForSlotIndex(I)I
+Landroid/telephony/SubscriptionManager;->getSubscriptionPlansOwner(I)Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->getSubscriptionProperty(ILjava/lang/String;Landroid/content/Context;)Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->ICC_ID:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->INVALID_PHONE_INDEX:I
+Landroid/telephony/SubscriptionManager;->INVALID_SIM_SLOT_INDEX:I
+Landroid/telephony/SubscriptionManager;->isSubscriptionPlansRefreshSupported(I)Z
+Landroid/telephony/SubscriptionManager;->IS_EMBEDDED:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->IS_REMOVABLE:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->logd(Ljava/lang/String;)V
+Landroid/telephony/SubscriptionManager;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->MAX_SUBSCRIPTION_ID_VALUE:I
+Landroid/telephony/SubscriptionManager;->MCC:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->mContext:Landroid/content/Context;
+Landroid/telephony/SubscriptionManager;->MIN_SUBSCRIPTION_ID_VALUE:I
+Landroid/telephony/SubscriptionManager;->MNC:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->mNetworkPolicy:Landroid/net/INetworkPolicyManager;
+Landroid/telephony/SubscriptionManager;->NAME_SOURCE:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->NAME_SOURCE_DEFAULT_SOURCE:I
+Landroid/telephony/SubscriptionManager;->NAME_SOURCE_SIM_SOURCE:I
+Landroid/telephony/SubscriptionManager;->NAME_SOURCE_UNDEFINDED:I
+Landroid/telephony/SubscriptionManager;->NUMBER:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->requestSubscriptionPlansRefresh(I)V
+Landroid/telephony/SubscriptionManager;->setDefaultVoiceSubId(I)V
+Landroid/telephony/SubscriptionManager;->setDisplayName(Ljava/lang/String;I)I
+Landroid/telephony/SubscriptionManager;->setSubscriptionProperty(ILjava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/SubscriptionManager;->SIM_NOT_INSERTED:I
+Landroid/telephony/SubscriptionManager;->SIM_PROVISIONED:I
+Landroid/telephony/SubscriptionManager;->SIM_PROVISIONING_STATUS:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->SIM_SLOT_INDEX:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->SUB_DEFAULT_CHANGED_ACTION:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->UNIQUE_KEY_SUBSCRIPTION_ID:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->VDBG:Z
+Landroid/telephony/SubscriptionManager;->VT_IMS_ENABLED:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->WFC_IMS_ENABLED:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->WFC_IMS_MODE:Ljava/lang/String;
+Landroid/telephony/SubscriptionManager;->WFC_IMS_ROAMING_ENABLED:Ljava/lang/String;
+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;
+Landroid/telephony/SubscriptionPlan;->dataLimitBehavior:I
+Landroid/telephony/SubscriptionPlan;->dataLimitBytes:J
+Landroid/telephony/SubscriptionPlan;->dataUsageBytes:J
+Landroid/telephony/SubscriptionPlan;->dataUsageTime:J
+Landroid/telephony/SubscriptionPlan;->getCycleRule()Landroid/util/RecurrenceRule;
+Landroid/telephony/SubscriptionPlan;->summary:Ljava/lang/CharSequence;
+Landroid/telephony/SubscriptionPlan;->title:Ljava/lang/CharSequence;
+Landroid/telephony/TelephonyHistogram;->ABSENT:I
+Landroid/telephony/TelephonyHistogram;->addToBucketCounter([I[II)V
+Landroid/telephony/TelephonyHistogram;->calculateBucketEndPoints([I)V
+Landroid/telephony/TelephonyHistogram;->getDeepCopyOfArray([I)[I
+Landroid/telephony/TelephonyHistogram;->getInitialTimings()[I
+Landroid/telephony/TelephonyHistogram;->mAverageTimeMs:I
+Landroid/telephony/TelephonyHistogram;->mBucketCount:I
+Landroid/telephony/TelephonyHistogram;->mBucketCounters:[I
+Landroid/telephony/TelephonyHistogram;->mBucketEndPoints:[I
+Landroid/telephony/TelephonyHistogram;->mCategory:I
+Landroid/telephony/TelephonyHistogram;->mId:I
+Landroid/telephony/TelephonyHistogram;->mInitialTimings:[I
+Landroid/telephony/TelephonyHistogram;->mMaxTimeMs:I
+Landroid/telephony/TelephonyHistogram;->mMinTimeMs:I
+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
+Landroid/telephony/TelephonyManager;->ACTION_DATA_STALL_DETECTED:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->ACTION_EMERGENCY_ASSISTANCE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->ACTION_PRECISE_CALL_STATE_CHANGED:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->CARD_POWER_DOWN:I
+Landroid/telephony/TelephonyManager;->CARD_POWER_UP:I
+Landroid/telephony/TelephonyManager;->CARD_POWER_UP_PASS_THROUGH:I
+Landroid/telephony/TelephonyManager;->carrierActionReportDefaultNetworkStatus(IZ)V
+Landroid/telephony/TelephonyManager;->carrierActionSetMeteredApnsEnabled(IZ)V
+Landroid/telephony/TelephonyManager;->carrierActionSetRadioEnabled(IZ)V
+Landroid/telephony/TelephonyManager;->DATA_UNKNOWN:I
+Landroid/telephony/TelephonyManager;->disableIms(I)V
+Landroid/telephony/TelephonyManager;->disableLocationUpdates()V
+Landroid/telephony/TelephonyManager;->disableLocationUpdates(I)V
+Landroid/telephony/TelephonyManager;->disableVisualVoicemailSmsFilter(I)V
+Landroid/telephony/TelephonyManager;->EMERGENCY_ASSISTANCE_ENABLED:Z
+Landroid/telephony/TelephonyManager;->enableIms(I)V
+Landroid/telephony/TelephonyManager;->enableLocationUpdates()V
+Landroid/telephony/TelephonyManager;->enableLocationUpdates(I)V
+Landroid/telephony/TelephonyManager;->enableVisualVoicemailSmsFilter(ILandroid/telephony/VisualVoicemailSmsFilterSettings;)V
+Landroid/telephony/TelephonyManager;->EVENT_CALL_FORWARDED:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EVENT_DOWNGRADE_DATA_DISABLED:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EVENT_DOWNGRADE_DATA_LIMIT_REACHED:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EVENT_HANDOVER_TO_WIFI_FAILED:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EVENT_HANDOVER_VIDEO_FROM_LTE_TO_WIFI:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EVENT_HANDOVER_VIDEO_FROM_WIFI_TO_LTE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EVENT_SUPPLEMENTARY_SERVICE_NOTIFICATION:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_BACKGROUND_CALL_STATE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_DATA_APN:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_DATA_APN_TYPE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_DATA_CHANGE_REASON:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_DATA_FAILURE_CAUSE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_DATA_LINK_PROPERTIES_KEY:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_DATA_NETWORK_TYPE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_DATA_STATE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_DISCONNECT_CAUSE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_FOREGROUND_CALL_STATE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_NOTIFICATION_CODE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_NOTIFICATION_MESSAGE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_NOTIFICATION_TYPE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_PRECISE_DISCONNECT_CAUSE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_RECOVERY_ACTION:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->EXTRA_RINGING_CALL_STATE:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->factoryReset(I)V
+Landroid/telephony/TelephonyManager;->getActiveVisualVoicemailSmsFilterSettings(I)Landroid/telephony/VisualVoicemailSmsFilterSettings;
+Landroid/telephony/TelephonyManager;->getAidForAppType(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getAidForAppType(II)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getBasebandVersion()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getBasebandVersionForPhone(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getBasebandVersionLegacy(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getCallStateForSlot(I)I
+Landroid/telephony/TelephonyManager;->getCarrierInfoForImsiEncryption(I)Landroid/telephony/ImsiEncryptionInfo;
+Landroid/telephony/TelephonyManager;->getCdmaEriIconIndex()I
+Landroid/telephony/TelephonyManager;->getCdmaEriIconMode()I
+Landroid/telephony/TelephonyManager;->getCdmaEriText()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getCdmaPrlVersion(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getCellNetworkScanResults(I)Lcom/android/internal/telephony/CellNetworkScanResult;
+Landroid/telephony/TelephonyManager;->getClientRequestStats(I)Ljava/util/List;
+Landroid/telephony/TelephonyManager;->getCurrentPhoneTypeForSlot(I)I
+Landroid/telephony/TelephonyManager;->getDataActivationState(I)I
+Landroid/telephony/TelephonyManager;->getEmergencyCallbackMode(I)Z
+Landroid/telephony/TelephonyManager;->getEsn()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getEsn(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getForbiddenPlmns(II)[Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getImsMmTelFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+Landroid/telephony/TelephonyManager;->getImsRcsFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsRcsFeature;
+Landroid/telephony/TelephonyManager;->getImsRegTechnologyForMmTel()I
+Landroid/telephony/TelephonyManager;->getIsimIst()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getLine1AlphaTag()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getLocaleFromDefaultSim()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getNaiBySubscriberId(I)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getOpPackageName()Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getOtaSpNumberSchema(Ljava/lang/String;)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getPackagesWithCarrierPrivileges()Ljava/util/List;
+Landroid/telephony/TelephonyManager;->getPcscfAddress(Ljava/lang/String;)[Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->getPhoneId()I
+Landroid/telephony/TelephonyManager;->getPhoneTypeFromNetworkType()I
+Landroid/telephony/TelephonyManager;->getPhoneTypeFromNetworkType(I)I
+Landroid/telephony/TelephonyManager;->getPhoneTypeFromProperty()I
+Landroid/telephony/TelephonyManager;->getSimStateIncludingLoaded()I
+Landroid/telephony/TelephonyManager;->getSmsReceiveCapable(Z)Z
+Landroid/telephony/TelephonyManager;->getSmsReceiveCapableForPhone(IZ)Z
+Landroid/telephony/TelephonyManager;->getSmsSendCapable(Z)Z
+Landroid/telephony/TelephonyManager;->getSmsSendCapableForPhone(IZ)Z
+Landroid/telephony/TelephonyManager;->getSubId()I
+Landroid/telephony/TelephonyManager;->getSubIdForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)I
+Landroid/telephony/TelephonyManager;->getTelecomService()Lcom/android/internal/telecom/ITelecomService;
+Landroid/telephony/TelephonyManager;->getTelephonyRegistry()Lcom/android/internal/telephony/ITelephonyRegistry;
+Landroid/telephony/TelephonyManager;->getTetherApnRequired()I
+Landroid/telephony/TelephonyManager;->getVisualVoicemailSmsFilterSettings(I)Landroid/telephony/VisualVoicemailSmsFilterSettings;
+Landroid/telephony/TelephonyManager;->getVoiceActivationState(I)I
+Landroid/telephony/TelephonyManager;->getVtDataUsage(I)Landroid/net/NetworkStats;
+Landroid/telephony/TelephonyManager;->hasCarrierPrivileges(I)Z
+Landroid/telephony/TelephonyManager;->iccCloseLogicalChannel(II)Z
+Landroid/telephony/TelephonyManager;->iccExchangeSimIO(IIIIIILjava/lang/String;)[B
+Landroid/telephony/TelephonyManager;->iccOpenLogicalChannel(ILjava/lang/String;I)Landroid/telephony/IccOpenLogicalChannelResponse;
+Landroid/telephony/TelephonyManager;->iccTransmitApduBasicChannel(IIIIIILjava/lang/String;)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->iccTransmitApduLogicalChannel(IIIIIIILjava/lang/String;)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->INDICATION_FILTER_DATA_CALL_DORMANCY_CHANGED:I
+Landroid/telephony/TelephonyManager;->INDICATION_FILTER_FULL_NETWORK_STATE:I
+Landroid/telephony/TelephonyManager;->INDICATION_FILTER_LINK_CAPACITY_ESTIMATE:I
+Landroid/telephony/TelephonyManager;->INDICATION_FILTER_PHYSICAL_CHANNEL_CONFIG:I
+Landroid/telephony/TelephonyManager;->INDICATION_FILTER_SIGNAL_STRENGTH:I
+Landroid/telephony/TelephonyManager;->INDICATION_UPDATE_MODE_IGNORE_SCREEN_OFF:I
+Landroid/telephony/TelephonyManager;->INDICATION_UPDATE_MODE_NORMAL:I
+Landroid/telephony/TelephonyManager;->invokeOemRilRequestRaw([B[B)I
+Landroid/telephony/TelephonyManager;->isDataCapable()Z
+Landroid/telephony/TelephonyManager;->isImsiEncryptionRequired(II)Z
+Landroid/telephony/TelephonyManager;->isImsRegistered(I)Z
+Landroid/telephony/TelephonyManager;->isKeyEnabled(II)Z
+Landroid/telephony/TelephonyManager;->isResolvingImsBinding()Z
+Landroid/telephony/TelephonyManager;->isSystemProcess()Z
+Landroid/telephony/TelephonyManager;->KEY_TYPE_EPDG:I
+Landroid/telephony/TelephonyManager;->KEY_TYPE_WLAN:I
+Landroid/telephony/TelephonyManager;->MAX_NETWORK_TYPE:I
+Landroid/telephony/TelephonyManager;->mContext:Landroid/content/Context;
+Landroid/telephony/TelephonyManager;->MODEM_ACTIVITY_RESULT_KEY:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->mSubId:I
+Landroid/telephony/TelephonyManager;->mTelephonyScanManager:Landroid/telephony/TelephonyScanManager;
+Landroid/telephony/TelephonyManager;->multiSimConfig:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->NETWORK_CLASS_UNKNOWN:I
+Landroid/telephony/TelephonyManager;->nvWriteCdmaPrl([B)Z
+Landroid/telephony/TelephonyManager;->nvWriteItem(ILjava/lang/String;)Z
+Landroid/telephony/TelephonyManager;->OTASP_NEEDED:I
+Landroid/telephony/TelephonyManager;->OTASP_NOT_NEEDED:I
+Landroid/telephony/TelephonyManager;->OTASP_SIM_UNPROVISIONED:I
+Landroid/telephony/TelephonyManager;->OTASP_UNINITIALIZED:I
+Landroid/telephony/TelephonyManager;->OTASP_UNKNOWN:I
+Landroid/telephony/TelephonyManager;->PHONE_PROCESS_NAME:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->requestModemActivityInfo(Landroid/os/ResultReceiver;)V
+Landroid/telephony/TelephonyManager;->resetCarrierKeysForImsiEncryption()V
+Landroid/telephony/TelephonyManager;->sendEnvelopeWithStatus(ILjava/lang/String;)Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->sendVisualVoicemailSmsForSubscriber(ILjava/lang/String;ILjava/lang/String;Landroid/app/PendingIntent;)V
+Landroid/telephony/TelephonyManager;->setBasebandVersion(Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setCarrierInfoForImsiEncryption(Landroid/telephony/ImsiEncryptionInfo;)V
+Landroid/telephony/TelephonyManager;->setCellInfoListRate(I)V
+Landroid/telephony/TelephonyManager;->setDataActivationState(II)V
+Landroid/telephony/TelephonyManager;->setDataNetworkType(I)V
+Landroid/telephony/TelephonyManager;->setLine1NumberForDisplay(ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/TelephonyManager;->setNetworkOperatorName(Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setNetworkOperatorNumeric(Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setNetworkRoaming(Z)V
+Landroid/telephony/TelephonyManager;->setOperatorBrandOverride(ILjava/lang/String;)Z
+Landroid/telephony/TelephonyManager;->setPhoneType(I)V
+Landroid/telephony/TelephonyManager;->setPolicyDataEnabled(ZI)V
+Landroid/telephony/TelephonyManager;->setPreferredNetworkTypeToGlobal(I)Z
+Landroid/telephony/TelephonyManager;->setRadioIndicationUpdateMode(II)V
+Landroid/telephony/TelephonyManager;->setRoamingOverride(ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
+Landroid/telephony/TelephonyManager;->setSimCountryIso(Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setSimOperatorName(Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setSimOperatorNumeric(Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setSimState(Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setTelephonyProperty(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/telephony/TelephonyManager;->setVoiceActivationState(II)V
+Landroid/telephony/TelephonyManager;->setVoiceMailNumber(ILjava/lang/String;Ljava/lang/String;)Z
+Landroid/telephony/TelephonyManager;->sInstance:Landroid/telephony/TelephonyManager;
+Landroid/telephony/TelephonyManager;->sKernelCmdLine:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->sLteOnCdmaProductType:Ljava/lang/String;
+Landroid/telephony/TelephonyManager;->sProductTypePattern:Ljava/util/regex/Pattern;
+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
+Landroid/telephony/TelephonyProtoEnums;->DATA_CONNECTION_POWER_STATE_MEDIUM:I
+Landroid/telephony/TelephonyProtoEnums;->DATA_CONNECTION_POWER_STATE_UNKNOWN:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_1XRTT:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_CDMA:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_EDGE:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_EHRPD:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_EVDO_0:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_EVDO_A:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_EVDO_B:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_GPRS:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_GSM:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_HSDPA:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_HSPA:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_HSPAP:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_HSUPA:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_IDEN:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_IWLAN:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_LTE:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_LTE_CA:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_TD_SCDMA:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_UMTS:I
+Landroid/telephony/TelephonyProtoEnums;->NETWORK_TYPE_UNKNOWN:I
+Landroid/telephony/TelephonyProtoEnums;->SIGNAL_STRENGTH_GOOD:I
+Landroid/telephony/TelephonyProtoEnums;->SIGNAL_STRENGTH_GREAT:I
+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;
+Landroid/telephony/TelephonyScanManager$NetworkScanInfo;->mRequest:Landroid/telephony/NetworkScanRequest;
+Landroid/telephony/TelephonyScanManager;->CALLBACK_SCAN_COMPLETE:I
+Landroid/telephony/TelephonyScanManager;->CALLBACK_SCAN_ERROR:I
+Landroid/telephony/TelephonyScanManager;->CALLBACK_SCAN_RESULTS:I
+Landroid/telephony/TelephonyScanManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
+Landroid/telephony/TelephonyScanManager;->mLooper:Landroid/os/Looper;
+Landroid/telephony/TelephonyScanManager;->mMessenger:Landroid/os/Messenger;
+Landroid/telephony/TelephonyScanManager;->mScanInfo:Landroid/util/SparseArray;
+Landroid/telephony/TelephonyScanManager;->requestNetworkScan(ILandroid/telephony/NetworkScanRequest;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyScanManager$NetworkScanCallback;)Landroid/telephony/NetworkScan;
+Landroid/telephony/TelephonyScanManager;->saveScanInfo(ILandroid/telephony/NetworkScanRequest;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyScanManager$NetworkScanCallback;)V
+Landroid/telephony/TelephonyScanManager;->SCAN_RESULT_KEY:Ljava/lang/String;
+Landroid/telephony/TelephonyScanManager;->TAG:Ljava/lang/String;
+Landroid/telephony/UiccAccessRule;-><init>(Landroid/os/Parcel;)V
+Landroid/telephony/UiccAccessRule;->decodeRules([B)[Landroid/telephony/UiccAccessRule;
+Landroid/telephony/UiccAccessRule;->encodeRules([Landroid/telephony/UiccAccessRule;)[B
+Landroid/telephony/UiccAccessRule;->ENCODING_VERSION:I
+Landroid/telephony/UiccAccessRule;->getCertHash(Landroid/content/pm/Signature;Ljava/lang/String;)[B
+Landroid/telephony/UiccAccessRule;->mAccessType:J
+Landroid/telephony/UiccAccessRule;->matches([BLjava/lang/String;)Z
+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
+Landroid/telephony/UiccSlotInfo;->mIsActive:Z
+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;
+Landroid/telephony/UssdResponse;->getUssdRequest()Ljava/lang/String;
+Landroid/telephony/UssdResponse;->mReturnMessage:Ljava/lang/CharSequence;
+Landroid/telephony/UssdResponse;->mUssdRequest:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailService$VisualVoicemailTask;-><init>(Landroid/os/Messenger;I)V
+Landroid/telephony/VisualVoicemailService$VisualVoicemailTask;->mReplyTo:Landroid/os/Messenger;
+Landroid/telephony/VisualVoicemailService$VisualVoicemailTask;->mTaskId:I
+Landroid/telephony/VisualVoicemailService;->DATA_PHONE_ACCOUNT_HANDLE:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailService;->DATA_SMS:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailService;->getSubId(Landroid/content/Context;Landroid/telecom/PhoneAccountHandle;)I
+Landroid/telephony/VisualVoicemailService;->mMessenger:Landroid/os/Messenger;
+Landroid/telephony/VisualVoicemailService;->MSG_ON_CELL_SERVICE_CONNECTED:I
+Landroid/telephony/VisualVoicemailService;->MSG_ON_SIM_REMOVED:I
+Landroid/telephony/VisualVoicemailService;->MSG_ON_SMS_RECEIVED:I
+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;
+Landroid/telephony/VisualVoicemailSms$Builder;->mMessageBody:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailSms$Builder;->mPhoneAccountHandle:Landroid/telecom/PhoneAccountHandle;
+Landroid/telephony/VisualVoicemailSms$Builder;->mPrefix:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailSms$Builder;->setFields(Landroid/os/Bundle;)Landroid/telephony/VisualVoicemailSms$Builder;
+Landroid/telephony/VisualVoicemailSms$Builder;->setMessageBody(Ljava/lang/String;)Landroid/telephony/VisualVoicemailSms$Builder;
+Landroid/telephony/VisualVoicemailSms$Builder;->setPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telephony/VisualVoicemailSms$Builder;
+Landroid/telephony/VisualVoicemailSms$Builder;->setPrefix(Ljava/lang/String;)Landroid/telephony/VisualVoicemailSms$Builder;
+Landroid/telephony/VisualVoicemailSms;-><init>(Landroid/telephony/VisualVoicemailSms$Builder;)V
+Landroid/telephony/VisualVoicemailSms;->mFields:Landroid/os/Bundle;
+Landroid/telephony/VisualVoicemailSms;->mMessageBody:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailSms;->mPhoneAccountHandle:Landroid/telecom/PhoneAccountHandle;
+Landroid/telephony/VisualVoicemailSms;->mPrefix:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;->mClientPrefix:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;->mDestinationPort:I
+Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;->mOriginatingNumbers:Ljava/util/List;
+Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;->mPackageName:Ljava/lang/String;
+Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;->setPackageName(Ljava/lang/String;)Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;
+Landroid/telephony/VisualVoicemailSmsFilterSettings;-><init>(Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;)V
+Landroid/telephony/VisualVoicemailSmsFilterSettings;->DEFAULT_CLIENT_PREFIX:Ljava/lang/String;
+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;
+Landroid/telephony/VoiceSpecificRegistrationStates;->cssSupported:Z
+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
+Landroid/telephony/VoLteServiceState;->copyFrom(Landroid/telephony/VoLteServiceState;)V
+Landroid/telephony/VoLteServiceState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/telephony/VoLteServiceState;->DBG:Z
+Landroid/telephony/VoLteServiceState;->fillInNotifierBundle(Landroid/os/Bundle;)V
+Landroid/telephony/VoLteServiceState;->getSrvccState()I
+Landroid/telephony/VoLteServiceState;->HANDOVER_CANCELED:I
+Landroid/telephony/VoLteServiceState;->HANDOVER_COMPLETED:I
+Landroid/telephony/VoLteServiceState;->HANDOVER_FAILED:I
+Landroid/telephony/VoLteServiceState;->HANDOVER_STARTED:I
+Landroid/telephony/VoLteServiceState;->initialize()V
+Landroid/telephony/VoLteServiceState;->INVALID:I
+Landroid/telephony/VoLteServiceState;->log(Ljava/lang/String;)V
+Landroid/telephony/VoLteServiceState;->LOG_TAG:Ljava/lang/String;
+Landroid/telephony/VoLteServiceState;->mSrvccState:I
+Landroid/telephony/VoLteServiceState;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/VoLteServiceState;
+Landroid/telephony/VoLteServiceState;->NOT_SUPPORTED:I
+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
+Landroid/text/AlteredCharSequence;->mChars:[C
+Landroid/text/AlteredCharSequence;->mEnd:I
+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;
+Landroid/text/Annotation;->getSpanTypeIdInternal()I
+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
+Landroid/text/AutoGrowArray$ByteArray;->clear()V
+Landroid/text/AutoGrowArray$ByteArray;->clearWithReleasingLargeArray()V
+Landroid/text/AutoGrowArray$ByteArray;->ensureCapacity(I)V
+Landroid/text/AutoGrowArray$ByteArray;->get(I)B
+Landroid/text/AutoGrowArray$ByteArray;->getRawArray()[B
+Landroid/text/AutoGrowArray$ByteArray;->mSize:I
+Landroid/text/AutoGrowArray$ByteArray;->mValues:[B
+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
+Landroid/text/AutoGrowArray$FloatArray;->clear()V
+Landroid/text/AutoGrowArray$FloatArray;->clearWithReleasingLargeArray()V
+Landroid/text/AutoGrowArray$FloatArray;->ensureCapacity(I)V
+Landroid/text/AutoGrowArray$FloatArray;->get(I)F
+Landroid/text/AutoGrowArray$FloatArray;->getRawArray()[F
+Landroid/text/AutoGrowArray$FloatArray;->mSize:I
+Landroid/text/AutoGrowArray$FloatArray;->mValues:[F
+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
+Landroid/text/AutoGrowArray$IntArray;->clear()V
+Landroid/text/AutoGrowArray$IntArray;->clearWithReleasingLargeArray()V
+Landroid/text/AutoGrowArray$IntArray;->ensureCapacity(I)V
+Landroid/text/AutoGrowArray$IntArray;->get(I)I
+Landroid/text/AutoGrowArray$IntArray;->getRawArray()[I
+Landroid/text/AutoGrowArray$IntArray;->mSize:I
+Landroid/text/AutoGrowArray$IntArray;->mValues:[I
+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
+Landroid/text/AutoGrowArray;->MIN_CAPACITY_INCREMENT:I
+Landroid/text/AutoText;-><init>(Landroid/content/res/Resources;)V
+Landroid/text/AutoText;->add(Ljava/lang/String;C)V
+Landroid/text/AutoText;->DEFAULT:I
+Landroid/text/AutoText;->getInstance(Landroid/view/View;)Landroid/text/AutoText;
+Landroid/text/AutoText;->getSize()I
+Landroid/text/AutoText;->INCREMENT:I
+Landroid/text/AutoText;->init(Landroid/content/res/Resources;)V
+Landroid/text/AutoText;->lookup(Ljava/lang/CharSequence;II)Ljava/lang/String;
+Landroid/text/AutoText;->mLocale:Ljava/util/Locale;
+Landroid/text/AutoText;->mSize:I
+Landroid/text/AutoText;->mText:Ljava/lang/String;
+Landroid/text/AutoText;->mTrie:[C
+Landroid/text/AutoText;->mTrieUsed:C
+Landroid/text/AutoText;->newTrieNode()C
+Landroid/text/AutoText;->RIGHT:I
+Landroid/text/AutoText;->sInstance:Landroid/text/AutoText;
+Landroid/text/AutoText;->sLock:Ljava/lang/Object;
+Landroid/text/AutoText;->TRIE_C:I
+Landroid/text/AutoText;->TRIE_CHILD:I
+Landroid/text/AutoText;->TRIE_NEXT:I
+Landroid/text/AutoText;->TRIE_NULL:C
+Landroid/text/AutoText;->TRIE_OFF:I
+Landroid/text/AutoText;->TRIE_ROOT:I
+Landroid/text/AutoText;->TRIE_SIZEOF:I
+Landroid/text/BidiFormatter$Builder;->initialize(Z)V
+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
+Landroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeForward()B
+Landroid/text/BidiFormatter$DirectionalityEstimator;->DIR_TYPE_CACHE:[B
+Landroid/text/BidiFormatter$DirectionalityEstimator;->DIR_TYPE_CACHE_SIZE:I
+Landroid/text/BidiFormatter$DirectionalityEstimator;->getCachedDirectionality(C)B
+Landroid/text/BidiFormatter$DirectionalityEstimator;->getDirectionality(I)B
+Landroid/text/BidiFormatter$DirectionalityEstimator;->getEntryDir()I
+Landroid/text/BidiFormatter$DirectionalityEstimator;->getExitDir()I
+Landroid/text/BidiFormatter$DirectionalityEstimator;->isHtml:Z
+Landroid/text/BidiFormatter$DirectionalityEstimator;->lastChar:C
+Landroid/text/BidiFormatter$DirectionalityEstimator;->length:I
+Landroid/text/BidiFormatter$DirectionalityEstimator;->skipEntityBackward()B
+Landroid/text/BidiFormatter$DirectionalityEstimator;->skipEntityForward()B
+Landroid/text/BidiFormatter$DirectionalityEstimator;->skipTagBackward()B
+Landroid/text/BidiFormatter$DirectionalityEstimator;->skipTagForward()B
+Landroid/text/BidiFormatter$DirectionalityEstimator;->text:Ljava/lang/CharSequence;
+Landroid/text/BidiFormatter;-><init>(ZILandroid/text/TextDirectionHeuristic;)V
+Landroid/text/BidiFormatter;->DEFAULT_FLAGS:I
+Landroid/text/BidiFormatter;->DEFAULT_LTR_INSTANCE:Landroid/text/BidiFormatter;
+Landroid/text/BidiFormatter;->DEFAULT_RTL_INSTANCE:Landroid/text/BidiFormatter;
+Landroid/text/BidiFormatter;->DEFAULT_TEXT_DIRECTION_HEURISTIC:Landroid/text/TextDirectionHeuristic;
+Landroid/text/BidiFormatter;->DIR_LTR:I
+Landroid/text/BidiFormatter;->DIR_RTL:I
+Landroid/text/BidiFormatter;->DIR_UNKNOWN:I
+Landroid/text/BidiFormatter;->EMPTY_STRING:Ljava/lang/String;
+Landroid/text/BidiFormatter;->FLAG_STEREO_RESET:I
+Landroid/text/BidiFormatter;->getDefaultInstanceFromContext(Z)Landroid/text/BidiFormatter;
+Landroid/text/BidiFormatter;->getEntryDir(Ljava/lang/CharSequence;)I
+Landroid/text/BidiFormatter;->getExitDir(Ljava/lang/CharSequence;)I
+Landroid/text/BidiFormatter;->isRtlLocale(Ljava/util/Locale;)Z
+Landroid/text/BidiFormatter;->LRE:C
+Landroid/text/BidiFormatter;->LRM:C
+Landroid/text/BidiFormatter;->LRM_STRING:Ljava/lang/String;
+Landroid/text/BidiFormatter;->markAfter(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
+Landroid/text/BidiFormatter;->markBefore(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
+Landroid/text/BidiFormatter;->mDefaultTextDirectionHeuristic:Landroid/text/TextDirectionHeuristic;
+Landroid/text/BidiFormatter;->mFlags:I
+Landroid/text/BidiFormatter;->mIsRtlContext:Z
+Landroid/text/BidiFormatter;->PDF:C
+Landroid/text/BidiFormatter;->RLE:C
+Landroid/text/BidiFormatter;->RLM:C
+Landroid/text/BidiFormatter;->RLM_STRING:Ljava/lang/String;
+Landroid/text/BoringLayout$Metrics;->reset()V
+Landroid/text/BoringLayout;->hasAnyInterestingChars(Ljava/lang/CharSequence;I)Z
+Landroid/text/BoringLayout;->init(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/Layout$Alignment;Landroid/text/BoringLayout$Metrics;ZZ)V
+Landroid/text/BoringLayout;->mBottom:I
+Landroid/text/BoringLayout;->mBottomPadding:I
+Landroid/text/BoringLayout;->mDesc:I
+Landroid/text/BoringLayout;->mDirect:Ljava/lang/String;
+Landroid/text/BoringLayout;->mEllipsizedCount:I
+Landroid/text/BoringLayout;->mEllipsizedStart:I
+Landroid/text/BoringLayout;->mEllipsizedWidth:I
+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;
+Landroid/text/CharSequenceCharacterIterator;->mEndIndex:I
+Landroid/text/CharSequenceCharacterIterator;->mIndex:I
+Landroid/text/DynamicLayout$Builder;-><init>()V
+Landroid/text/DynamicLayout$Builder;->mAlignment:Landroid/text/Layout$Alignment;
+Landroid/text/DynamicLayout$Builder;->mBase:Ljava/lang/CharSequence;
+Landroid/text/DynamicLayout$Builder;->mBreakStrategy:I
+Landroid/text/DynamicLayout$Builder;->mDisplay:Ljava/lang/CharSequence;
+Landroid/text/DynamicLayout$Builder;->mEllipsize:Landroid/text/TextUtils$TruncateAt;
+Landroid/text/DynamicLayout$Builder;->mEllipsizedWidth:I
+Landroid/text/DynamicLayout$Builder;->mFallbackLineSpacing:Z
+Landroid/text/DynamicLayout$Builder;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;
+Landroid/text/DynamicLayout$Builder;->mHyphenationFrequency:I
+Landroid/text/DynamicLayout$Builder;->mIncludePad:Z
+Landroid/text/DynamicLayout$Builder;->mJustificationMode:I
+Landroid/text/DynamicLayout$Builder;->mPaint:Landroid/text/TextPaint;
+Landroid/text/DynamicLayout$Builder;->mSpacingAdd:F
+Landroid/text/DynamicLayout$Builder;->mSpacingMult:F
+Landroid/text/DynamicLayout$Builder;->mTextDir:Landroid/text/TextDirectionHeuristic;
+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
+Landroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;)V
+Landroid/text/DynamicLayout;->addBlockAtOffset(I)V
+Landroid/text/DynamicLayout;->BLOCK_MINIMUM_CHARACTER_LENGTH:I
+Landroid/text/DynamicLayout;->COLUMNS_ELLIPSIZE:I
+Landroid/text/DynamicLayout;->COLUMNS_NORMAL:I
+Landroid/text/DynamicLayout;->contentMayProtrudeFromLineTopOrBottom(Ljava/lang/CharSequence;II)Z
+Landroid/text/DynamicLayout;->createBlocks()V
+Landroid/text/DynamicLayout;->createEllipsizer(Landroid/text/TextUtils$TruncateAt;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/text/DynamicLayout;->DESCENT:I
+Landroid/text/DynamicLayout;->DIR:I
+Landroid/text/DynamicLayout;->DIR_SHIFT:I
+Landroid/text/DynamicLayout;->ELLIPSIS_COUNT:I
+Landroid/text/DynamicLayout;->ELLIPSIS_START:I
+Landroid/text/DynamicLayout;->ELLIPSIS_UNDEFINED:I
+Landroid/text/DynamicLayout;->EXTRA:I
+Landroid/text/DynamicLayout;->generate(Landroid/text/DynamicLayout$Builder;)V
+Landroid/text/DynamicLayout;->getBlockIndex(I)I
+Landroid/text/DynamicLayout;->getBlocksAlwaysNeedToBeRedrawn()Landroid/util/ArraySet;
+Landroid/text/DynamicLayout;->getContentMayProtrudeFromTopOrBottom(I)Z
+Landroid/text/DynamicLayout;->getHyphen(I)I
+Landroid/text/DynamicLayout;->getLineExtra(I)I
+Landroid/text/DynamicLayout;->HYPHEN:I
+Landroid/text/DynamicLayout;->HYPHEN_MASK:I
+Landroid/text/DynamicLayout;->INVALID_BLOCK_INDEX:I
+Landroid/text/DynamicLayout;->MAY_PROTRUDE_FROM_TOP_OR_BOTTOM:I
+Landroid/text/DynamicLayout;->MAY_PROTRUDE_FROM_TOP_OR_BOTTOM_MASK:I
+Landroid/text/DynamicLayout;->mBase:Ljava/lang/CharSequence;
+Landroid/text/DynamicLayout;->mBlockEndLines:[I
+Landroid/text/DynamicLayout;->mBlockIndices:[I
+Landroid/text/DynamicLayout;->mBlocksAlwaysNeedToBeRedrawn:Landroid/util/ArraySet;
+Landroid/text/DynamicLayout;->mBottomPadding:I
+Landroid/text/DynamicLayout;->mBreakStrategy:I
+Landroid/text/DynamicLayout;->mDisplay:Ljava/lang/CharSequence;
+Landroid/text/DynamicLayout;->mEllipsize:Z
+Landroid/text/DynamicLayout;->mEllipsizeAt:Landroid/text/TextUtils$TruncateAt;
+Landroid/text/DynamicLayout;->mEllipsizedWidth:I
+Landroid/text/DynamicLayout;->mFallbackLineSpacing:Z
+Landroid/text/DynamicLayout;->mHyphenationFrequency:I
+Landroid/text/DynamicLayout;->mIncludePad:Z
+Landroid/text/DynamicLayout;->mIndexFirstChangedBlock:I
+Landroid/text/DynamicLayout;->mInts:Landroid/text/PackedIntVector;
+Landroid/text/DynamicLayout;->mJustificationMode:I
+Landroid/text/DynamicLayout;->mNumberOfBlocks:I
+Landroid/text/DynamicLayout;->mObjects:Landroid/text/PackedObjectVector;
+Landroid/text/DynamicLayout;->mTempRect:Landroid/graphics/Rect;
+Landroid/text/DynamicLayout;->mTopPadding:I
+Landroid/text/DynamicLayout;->mWatcher:Landroid/text/DynamicLayout$ChangeWatcher;
+Landroid/text/DynamicLayout;->PRIORITY:I
+Landroid/text/DynamicLayout;->reflow(Ljava/lang/CharSequence;III)V
+Landroid/text/DynamicLayout;->sBuilder:Landroid/text/StaticLayout$Builder;
+Landroid/text/DynamicLayout;->setBlockIndex(II)V
+Landroid/text/DynamicLayout;->setBlocksDataForTest([I[III)V
+Landroid/text/DynamicLayout;->sLock:[Ljava/lang/Object;
+Landroid/text/DynamicLayout;->START:I
+Landroid/text/DynamicLayout;->START_MASK:I
+Landroid/text/DynamicLayout;->TAB:I
+Landroid/text/DynamicLayout;->TAB_MASK:I
+Landroid/text/DynamicLayout;->TOP:I
+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
+Landroid/text/Emoji;->isEmoji(I)Z
+Landroid/text/Emoji;->isEmojiModifier(I)Z
+Landroid/text/Emoji;->isEmojiModifierBase(I)Z
+Landroid/text/Emoji;->isKeycapBase(I)Z
+Landroid/text/Emoji;->isNewEmoji(I)Z
+Landroid/text/Emoji;->isRegionalIndicatorSymbol(I)Z
+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;
+Landroid/text/FontConfig$Alias;->getWeight()I
+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;
+Landroid/text/FontConfig$Family;->mLanguages:[Ljava/lang/String;
+Landroid/text/FontConfig$Family;->mName:Ljava/lang/String;
+Landroid/text/FontConfig$Family;->mVariant:I
+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;
+Landroid/text/FontConfig$Font;->getUri()Landroid/net/Uri;
+Landroid/text/FontConfig$Font;->mAxes:[Landroid/graphics/fonts/FontVariationAxis;
+Landroid/text/FontConfig$Font;->mFallbackFor:Ljava/lang/String;
+Landroid/text/FontConfig$Font;->mFontName:Ljava/lang/String;
+Landroid/text/FontConfig$Font;->mIsItalic:Z
+Landroid/text/FontConfig$Font;->mTtcIndex:I
+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;
+Landroid/text/FontConfig;->mFamilies:[Landroid/text/FontConfig$Family;
+Landroid/text/format/DateFormat;->appendQuotedText(Landroid/text/SpannableStringBuilder;I)I
+Landroid/text/format/DateFormat;->formatZoneOffset(II)Ljava/lang/String;
+Landroid/text/format/DateFormat;->getDateFormatString(Landroid/content/Context;)Ljava/lang/String;
+Landroid/text/format/DateFormat;->getDayOfWeekString(Llibcore/icu/LocaleData;III)Ljava/lang/String;
+Landroid/text/format/DateFormat;->getMonthString(Llibcore/icu/LocaleData;III)Ljava/lang/String;
+Landroid/text/format/DateFormat;->getTimeZoneString(Ljava/util/Calendar;I)Ljava/lang/String;
+Landroid/text/format/DateFormat;->getYearString(II)Ljava/lang/String;
+Landroid/text/format/DateFormat;->is24HourLocale(Ljava/util/Locale;)Z
+Landroid/text/format/DateFormat;->sIs24Hour:Z
+Landroid/text/format/DateFormat;->sIs24HourLocale:Ljava/util/Locale;
+Landroid/text/format/DateFormat;->sLocaleLock:Ljava/lang/Object;
+Landroid/text/format/DateFormat;->zeroPad(II)Ljava/lang/String;
+Landroid/text/format/DateUtils;->initFormatStrings()V
+Landroid/text/format/DateUtils;->initFormatStringsLocked()V
+Landroid/text/format/DateUtils;->sElapsedFormatHMMSS:Ljava/lang/String;
+Landroid/text/format/DateUtils;->sElapsedFormatMMSS:Ljava/lang/String;
+Landroid/text/format/DateUtils;->sLastConfig:Landroid/content/res/Configuration;
+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;
+Landroid/text/format/Formatter$BytesResult;->value:Ljava/lang/String;
+Landroid/text/format/Formatter;->bidiWrap(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
+Landroid/text/format/Formatter;->FLAG_CALCULATE_ROUNDED:I
+Landroid/text/format/Formatter;->FLAG_IEC_UNITS:I
+Landroid/text/format/Formatter;->FLAG_SHORTER:I
+Landroid/text/format/Formatter;->FLAG_SI_UNITS:I
+Landroid/text/format/Formatter;->localeFromContext(Landroid/content/Context;)Ljava/util/Locale;
+Landroid/text/format/Formatter;->MILLIS_PER_MINUTE:I
+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
+Landroid/text/format/Time$TimeCalculator;->copyFieldsToTime(Landroid/text/format/Time;)V
+Landroid/text/format/Time$TimeCalculator;->format(Ljava/lang/String;)Ljava/lang/String;
+Landroid/text/format/Time$TimeCalculator;->format2445(Z)Ljava/lang/String;
+Landroid/text/format/Time$TimeCalculator;->lookupZoneInfo(Ljava/lang/String;)Llibcore/util/ZoneInfo;
+Landroid/text/format/Time$TimeCalculator;->setTimeInMillis(J)V
+Landroid/text/format/Time$TimeCalculator;->switchTimeZone(Ljava/lang/String;)V
+Landroid/text/format/Time$TimeCalculator;->timezone:Ljava/lang/String;
+Landroid/text/format/Time$TimeCalculator;->toChar(I)C
+Landroid/text/format/Time$TimeCalculator;->toMillis(Z)J
+Landroid/text/format/Time$TimeCalculator;->toStringInternal()Ljava/lang/String;
+Landroid/text/format/Time$TimeCalculator;->updateZoneInfoFromTimeZone()V
+Landroid/text/format/Time$TimeCalculator;->wallTime:Llibcore/util/ZoneInfo$WallTime;
+Landroid/text/format/Time$TimeCalculator;->zoneInfo:Llibcore/util/ZoneInfo;
+Landroid/text/format/Time;->calculator:Landroid/text/format/Time$TimeCalculator;
+Landroid/text/format/Time;->checkChar(Ljava/lang/String;IC)V
+Landroid/text/format/Time;->DAYS_PER_MONTH:[I
+Landroid/text/format/Time;->getChar(Ljava/lang/String;II)I
+Landroid/text/format/Time;->initialize(Ljava/lang/String;)V
+Landroid/text/format/Time;->parse3339Internal(Ljava/lang/String;)Z
+Landroid/text/format/Time;->parseInternal(Ljava/lang/String;)Z
+Landroid/text/format/Time;->sThursdayOffset:[I
+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
+Landroid/text/Html;->encodeTextAlignmentByDiv(Ljava/lang/StringBuilder;Landroid/text/Spanned;I)V
+Landroid/text/Html;->getTextDirection(Landroid/text/Spanned;II)Ljava/lang/String;
+Landroid/text/Html;->getTextStyles(Landroid/text/Spanned;IIZZ)Ljava/lang/String;
+Landroid/text/Html;->TO_HTML_PARAGRAPH_FLAG:I
+Landroid/text/Html;->withinBlockquote(Ljava/lang/StringBuilder;Landroid/text/Spanned;III)V
+Landroid/text/Html;->withinBlockquoteConsecutive(Ljava/lang/StringBuilder;Landroid/text/Spanned;II)V
+Landroid/text/Html;->withinBlockquoteIndividual(Ljava/lang/StringBuilder;Landroid/text/Spanned;II)V
+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
+Landroid/text/Layout$TabStops;->mStops:[I
+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
+Landroid/text/Layout;->DIR_REQUEST_LTR:I
+Landroid/text/Layout;->DIR_REQUEST_RTL:I
+Landroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V
+Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;)F
+Landroid/text/Layout;->getDesiredWidthWithLimit(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;F)F
+Landroid/text/Layout;->getHeight(Z)I
+Landroid/text/Layout;->getHorizontal(IZ)F
+Landroid/text/Layout;->getHorizontal(IZIZ)F
+Landroid/text/Layout;->getHorizontal(IZZ)F
+Landroid/text/Layout;->getHyphen(I)I
+Landroid/text/Layout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I
+Landroid/text/Layout;->getJustifyWidth(I)F
+Landroid/text/Layout;->getLineBottomWithoutSpacing(I)I
+Landroid/text/Layout;->getLineExtent(ILandroid/text/Layout$TabStops;Z)F
+Landroid/text/Layout;->getLineExtent(IZ)F
+Landroid/text/Layout;->getLineExtra(I)I
+Landroid/text/Layout;->getLineHorizontals(IZZ)[F
+Landroid/text/Layout;->getLineStartPos(III)I
+Landroid/text/Layout;->getLineVisibleEnd(III)I
+Landroid/text/Layout;->getOffsetAtStartOf(I)I
+Landroid/text/Layout;->getOffsetForHorizontal(IFZ)I
+Landroid/text/Layout;->getOffsetToLeftRightOf(IZ)I
+Landroid/text/Layout;->getParagraphLeadingMargin(I)I
+Landroid/text/Layout;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
+Landroid/text/Layout;->getRunRange(I)J
+Landroid/text/Layout;->getSelection(IILandroid/text/Layout$SelectionRectangleConsumer;)V
+Landroid/text/Layout;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
+Landroid/text/Layout;->isJustificationRequired(I)Z
+Landroid/text/Layout;->mAlignment:Landroid/text/Layout$Alignment;
+Landroid/text/Layout;->measurePara(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)F
+Landroid/text/Layout;->mJustificationMode:I
+Landroid/text/Layout;->mLineBackgroundSpans:Landroid/text/SpanSet;
+Landroid/text/Layout;->mSpacingAdd:F
+Landroid/text/Layout;->mSpacingMult:F
+Landroid/text/Layout;->mSpannedText:Z
+Landroid/text/Layout;->mText:Ljava/lang/CharSequence;
+Landroid/text/Layout;->mTextDir:Landroid/text/TextDirectionHeuristic;
+Landroid/text/Layout;->mWidth:I
+Landroid/text/Layout;->mWorkPaint:Landroid/text/TextPaint;
+Landroid/text/Layout;->nextTab(Ljava/lang/CharSequence;IIF[Ljava/lang/Object;)F
+Landroid/text/Layout;->NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;
+Landroid/text/Layout;->primaryIsTrailingPrevious(I)Z
+Landroid/text/Layout;->primaryIsTrailingPreviousAllLineOffsets(I)[Z
+Landroid/text/Layout;->replaceWith(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
+Landroid/text/Layout;->RUN_LENGTH_MASK:I
+Landroid/text/Layout;->RUN_LEVEL_MASK:I
+Landroid/text/Layout;->RUN_LEVEL_SHIFT:I
+Landroid/text/Layout;->RUN_RTL_FLAG:I
+Landroid/text/Layout;->setJustificationMode(I)V
+Landroid/text/Layout;->sTempRect:Landroid/graphics/Rect;
+Landroid/text/Layout;->TAB_INCREMENT:I
+Landroid/text/Layout;->TEXT_SELECTION_LAYOUT_LEFT_TO_RIGHT:I
+Landroid/text/Layout;->TEXT_SELECTION_LAYOUT_RIGHT_TO_LEFT:I
+Landroid/text/LoginFilter$UsernameFilterGeneric;->mAllowed:Ljava/lang/String;
+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
+Landroid/text/MeasuredParagraph;->applyStyleRun(IIJ)V
+Landroid/text/MeasuredParagraph;->bindNativeObject(J)V
+Landroid/text/MeasuredParagraph;->breakText(IZF)I
+Landroid/text/MeasuredParagraph;->buildForBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
+Landroid/text/MeasuredParagraph;->buildForMeasurement(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
+Landroid/text/MeasuredParagraph;->buildForStaticLayout(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;ZZLandroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
+Landroid/text/MeasuredParagraph;->getBounds(IILandroid/graphics/Rect;)V
+Landroid/text/MeasuredParagraph;->getChars()[C
+Landroid/text/MeasuredParagraph;->getDirections(II)Landroid/text/Layout$Directions;
+Landroid/text/MeasuredParagraph;->getFontMetrics()Landroid/text/AutoGrowArray$IntArray;
+Landroid/text/MeasuredParagraph;->getMemoryUsage()I
+Landroid/text/MeasuredParagraph;->getNativePtr()J
+Landroid/text/MeasuredParagraph;->getParagraphDir()I
+Landroid/text/MeasuredParagraph;->getSpanEndCache()Landroid/text/AutoGrowArray$IntArray;
+Landroid/text/MeasuredParagraph;->getTextLength()I
+Landroid/text/MeasuredParagraph;->getWholeWidth()F
+Landroid/text/MeasuredParagraph;->getWidth(II)F
+Landroid/text/MeasuredParagraph;->getWidths()Landroid/text/AutoGrowArray$FloatArray;
+Landroid/text/MeasuredParagraph;->mCachedFm:Landroid/graphics/Paint$FontMetricsInt;
+Landroid/text/MeasuredParagraph;->mCachedPaint:Landroid/text/TextPaint;
+Landroid/text/MeasuredParagraph;->mCopiedBuffer:[C
+Landroid/text/MeasuredParagraph;->measure(II)F
+Landroid/text/MeasuredParagraph;->mFontMetrics:Landroid/text/AutoGrowArray$IntArray;
+Landroid/text/MeasuredParagraph;->mLevels:Landroid/text/AutoGrowArray$ByteArray;
+Landroid/text/MeasuredParagraph;->mLtrWithoutBidi:Z
+Landroid/text/MeasuredParagraph;->mNativeObjectCleaner:Ljava/lang/Runnable;
+Landroid/text/MeasuredParagraph;->mNativePtr:J
+Landroid/text/MeasuredParagraph;->mParaDir:I
+Landroid/text/MeasuredParagraph;->mSpanEndCache:Landroid/text/AutoGrowArray$IntArray;
+Landroid/text/MeasuredParagraph;->mSpanned:Landroid/text/Spanned;
+Landroid/text/MeasuredParagraph;->mTextLength:I
+Landroid/text/MeasuredParagraph;->mTextStart:I
+Landroid/text/MeasuredParagraph;->mWholeWidth:F
+Landroid/text/MeasuredParagraph;->mWidths:Landroid/text/AutoGrowArray$FloatArray;
+Landroid/text/MeasuredParagraph;->nAddReplacementRun(JJIIF)V
+Landroid/text/MeasuredParagraph;->nAddStyleRun(JJIIZ)V
+Landroid/text/MeasuredParagraph;->nBuildNativeMeasuredParagraph(J[CZZ)J
+Landroid/text/MeasuredParagraph;->nFreeBuilder(J)V
+Landroid/text/MeasuredParagraph;->nGetBounds(J[CIILandroid/graphics/Rect;)V
+Landroid/text/MeasuredParagraph;->nGetMemoryUsage(J)I
+Landroid/text/MeasuredParagraph;->nGetReleaseFunc()J
+Landroid/text/MeasuredParagraph;->nGetWidth(JII)F
+Landroid/text/MeasuredParagraph;->nInitBuilder()J
+Landroid/text/MeasuredParagraph;->OBJECT_REPLACEMENT_CHARACTER:C
+Landroid/text/MeasuredParagraph;->obtain()Landroid/text/MeasuredParagraph;
+Landroid/text/MeasuredParagraph;->recycle()V
+Landroid/text/MeasuredParagraph;->release()V
+Landroid/text/MeasuredParagraph;->reset()V
+Landroid/text/MeasuredParagraph;->resetAndAnalyzeBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)V
+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
+Landroid/text/method/AllCapsTransformationMethod;->TAG:Ljava/lang/String;
+Landroid/text/method/ArrowKeyMovementMethod;->getCurrentLineTop(Landroid/text/Spannable;Landroid/text/Layout;)I
+Landroid/text/method/ArrowKeyMovementMethod;->getPageHeight(Landroid/widget/TextView;)I
+Landroid/text/method/ArrowKeyMovementMethod;->isSelecting(Landroid/text/Spannable;)Z
+Landroid/text/method/ArrowKeyMovementMethod;->LAST_TAP_DOWN:Ljava/lang/Object;
+Landroid/text/method/ArrowKeyMovementMethod;->leftWord(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/ArrowKeyMovementMethod;->rightWord(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/ArrowKeyMovementMethod;->sInstance:Landroid/text/method/ArrowKeyMovementMethod;
+Landroid/text/method/BaseKeyListener;->adjustReplacementSpan(Ljava/lang/CharSequence;IZ)I
+Landroid/text/method/BaseKeyListener;->backspaceOrForwardDelete(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;Z)Z
+Landroid/text/method/BaseKeyListener;->CARRIAGE_RETURN:I
+Landroid/text/method/BaseKeyListener;->deleteLine(Landroid/view/View;Landroid/text/Editable;)Z
+Landroid/text/method/BaseKeyListener;->deleteSelection(Landroid/view/View;Landroid/text/Editable;)Z
+Landroid/text/method/BaseKeyListener;->deleteUntilWordBoundary(Landroid/view/View;Landroid/text/Editable;Z)Z
+Landroid/text/method/BaseKeyListener;->getOffsetForBackspaceKey(Ljava/lang/CharSequence;I)I
+Landroid/text/method/BaseKeyListener;->getOffsetForForwardDeleteKey(Ljava/lang/CharSequence;ILandroid/graphics/Paint;)I
+Landroid/text/method/BaseKeyListener;->isVariationSelector(I)Z
+Landroid/text/method/BaseKeyListener;->LINE_FEED:I
+Landroid/text/method/BaseKeyListener;->makeTextContentType(Landroid/text/method/TextKeyListener$Capitalize;Z)I
+Landroid/text/method/BaseKeyListener;->mLock:Ljava/lang/Object;
+Landroid/text/method/BaseKeyListener;->OLD_SEL_START:Ljava/lang/Object;
+Landroid/text/method/BaseKeyListener;->sCachedPaint:Landroid/graphics/Paint;
+Landroid/text/method/BaseMovementMethod;->getBottomLine(Landroid/widget/TextView;)I
+Landroid/text/method/BaseMovementMethod;->getCharacterWidth(Landroid/widget/TextView;)I
+Landroid/text/method/BaseMovementMethod;->getInnerHeight(Landroid/widget/TextView;)I
+Landroid/text/method/BaseMovementMethod;->getInnerWidth(Landroid/widget/TextView;)I
+Landroid/text/method/BaseMovementMethod;->getScrollBoundsLeft(Landroid/widget/TextView;)I
+Landroid/text/method/BaseMovementMethod;->getScrollBoundsRight(Landroid/widget/TextView;)I
+Landroid/text/method/BaseMovementMethod;->getTopLine(Landroid/widget/TextView;)I
+Landroid/text/method/BaseMovementMethod;->leftWord(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/BaseMovementMethod;->rightWord(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/BaseMovementMethod;->scrollBottom(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/BaseMovementMethod;->scrollDown(Landroid/widget/TextView;Landroid/text/Spannable;I)Z
+Landroid/text/method/BaseMovementMethod;->scrollLeft(Landroid/widget/TextView;Landroid/text/Spannable;I)Z
+Landroid/text/method/BaseMovementMethod;->scrollLineEnd(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/BaseMovementMethod;->scrollLineStart(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/BaseMovementMethod;->scrollPageDown(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/BaseMovementMethod;->scrollPageUp(Landroid/widget/TextView;Landroid/text/Spannable;)Z
+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
+Landroid/text/method/CharacterPickerDialog;->mOptions:Ljava/lang/String;
+Landroid/text/method/CharacterPickerDialog;->mText:Landroid/text/Editable;
+Landroid/text/method/CharacterPickerDialog;->mView:Landroid/view/View;
+Landroid/text/method/CharacterPickerDialog;->replaceCharacterAndClose(Ljava/lang/CharSequence;)V
+Landroid/text/method/DateKeyListener;->mCharacters:[C
+Landroid/text/method/DateKeyListener;->mNeedsAdvancedInput:Z
+Landroid/text/method/DateKeyListener;->sInstanceCache:Ljava/util/HashMap;
+Landroid/text/method/DateKeyListener;->SKELETONS:[Ljava/lang/String;
+Landroid/text/method/DateKeyListener;->sLock:Ljava/lang/Object;
+Landroid/text/method/DateKeyListener;->SYMBOLS_TO_IGNORE:Ljava/lang/String;
+Landroid/text/method/DateTimeKeyListener;->mCharacters:[C
+Landroid/text/method/DateTimeKeyListener;->mNeedsAdvancedInput:Z
+Landroid/text/method/DateTimeKeyListener;->sInstanceCache:Ljava/util/HashMap;
+Landroid/text/method/DateTimeKeyListener;->SKELETON_12HOUR:Ljava/lang/String;
+Landroid/text/method/DateTimeKeyListener;->SKELETON_24HOUR:Ljava/lang/String;
+Landroid/text/method/DateTimeKeyListener;->sLock:Ljava/lang/Object;
+Landroid/text/method/DateTimeKeyListener;->SYMBOLS_TO_IGNORE:Ljava/lang/String;
+Landroid/text/method/DialerKeyListener;->sInstance:Landroid/text/method/DialerKeyListener;
+Landroid/text/method/DigitsKeyListener;-><init>(Ljava/lang/String;)V
+Landroid/text/method/DigitsKeyListener;->calculateNeedForAdvancedInput()V
+Landroid/text/method/DigitsKeyListener;->COMPATIBILITY_CHARACTERS:[[C
+Landroid/text/method/DigitsKeyListener;->DECIMAL:I
+Landroid/text/method/DigitsKeyListener;->DEFAULT_DECIMAL_POINT_CHARS:Ljava/lang/String;
+Landroid/text/method/DigitsKeyListener;->DEFAULT_SIGN_CHARS:Ljava/lang/String;
+Landroid/text/method/DigitsKeyListener;->EN_DASH:C
+Landroid/text/method/DigitsKeyListener;->getInstance(Ljava/util/Locale;Landroid/text/method/DigitsKeyListener;)Landroid/text/method/DigitsKeyListener;
+Landroid/text/method/DigitsKeyListener;->HYPHEN_MINUS:C
+Landroid/text/method/DigitsKeyListener;->isDecimalPointChar(C)Z
+Landroid/text/method/DigitsKeyListener;->isSignChar(C)Z
+Landroid/text/method/DigitsKeyListener;->mAccepted:[C
+Landroid/text/method/DigitsKeyListener;->mDecimal:Z
+Landroid/text/method/DigitsKeyListener;->mDecimalPointChars:Ljava/lang/String;
+Landroid/text/method/DigitsKeyListener;->MINUS_SIGN:C
+Landroid/text/method/DigitsKeyListener;->mLocale:Ljava/util/Locale;
+Landroid/text/method/DigitsKeyListener;->mNeedsAdvancedInput:Z
+Landroid/text/method/DigitsKeyListener;->mSign:Z
+Landroid/text/method/DigitsKeyListener;->mSignChars:Ljava/lang/String;
+Landroid/text/method/DigitsKeyListener;->mStringMode:Z
+Landroid/text/method/DigitsKeyListener;->setToCompat()V
+Landroid/text/method/DigitsKeyListener;->SIGN:I
+Landroid/text/method/DigitsKeyListener;->sLocaleCacheLock:Ljava/lang/Object;
+Landroid/text/method/DigitsKeyListener;->sLocaleInstanceCache:Ljava/util/HashMap;
+Landroid/text/method/DigitsKeyListener;->sStringCacheLock:Ljava/lang/Object;
+Landroid/text/method/DigitsKeyListener;->sStringInstanceCache:Ljava/util/HashMap;
+Landroid/text/method/DigitsKeyListener;->stripBidiControls(Ljava/lang/String;)Ljava/lang/String;
+Landroid/text/method/HideReturnsTransformationMethod;->ORIGINAL:[C
+Landroid/text/method/HideReturnsTransformationMethod;->REPLACEMENT:[C
+Landroid/text/method/LinkMovementMethod;->action(ILandroid/widget/TextView;Landroid/text/Spannable;)Z
+Landroid/text/method/LinkMovementMethod;->CLICK:I
+Landroid/text/method/LinkMovementMethod;->DOWN:I
+Landroid/text/method/LinkMovementMethod;->FROM_BELOW:Ljava/lang/Object;
+Landroid/text/method/LinkMovementMethod;->HIDE_FLOATING_TOOLBAR_DELAY_MS:I
+Landroid/text/method/LinkMovementMethod;->UP:I
+Landroid/text/method/MetaKeyKeyListener;->adjust(Landroid/text/Spannable;Ljava/lang/Object;)V
+Landroid/text/method/MetaKeyKeyListener;->ALT:Ljava/lang/Object;
+Landroid/text/method/MetaKeyKeyListener;->CAP:Ljava/lang/Object;
+Landroid/text/method/MetaKeyKeyListener;->getActive(Ljava/lang/CharSequence;Ljava/lang/Object;II)I
+Landroid/text/method/MetaKeyKeyListener;->LOCKED:I
+Landroid/text/method/MetaKeyKeyListener;->LOCKED_RETURN_VALUE:I
+Landroid/text/method/MetaKeyKeyListener;->META_ALT_MASK:J
+Landroid/text/method/MetaKeyKeyListener;->META_ALT_PRESSED:J
+Landroid/text/method/MetaKeyKeyListener;->META_ALT_RELEASED:J
+Landroid/text/method/MetaKeyKeyListener;->META_ALT_USED:J
+Landroid/text/method/MetaKeyKeyListener;->META_CAP_PRESSED:J
+Landroid/text/method/MetaKeyKeyListener;->META_CAP_RELEASED:J
+Landroid/text/method/MetaKeyKeyListener;->META_CAP_USED:J
+Landroid/text/method/MetaKeyKeyListener;->META_SELECTING:I
+Landroid/text/method/MetaKeyKeyListener;->META_SHIFT_MASK:J
+Landroid/text/method/MetaKeyKeyListener;->META_SYM_MASK:J
+Landroid/text/method/MetaKeyKeyListener;->META_SYM_PRESSED:J
+Landroid/text/method/MetaKeyKeyListener;->META_SYM_RELEASED:J
+Landroid/text/method/MetaKeyKeyListener;->META_SYM_USED:J
+Landroid/text/method/MetaKeyKeyListener;->press(JIJJJJJ)J
+Landroid/text/method/MetaKeyKeyListener;->press(Landroid/text/Editable;Ljava/lang/Object;)V
+Landroid/text/method/MetaKeyKeyListener;->PRESSED:I
+Landroid/text/method/MetaKeyKeyListener;->PRESSED_RETURN_VALUE:I
+Landroid/text/method/MetaKeyKeyListener;->release(JIJJJJLandroid/view/KeyEvent;)J
+Landroid/text/method/MetaKeyKeyListener;->release(Landroid/text/Editable;Ljava/lang/Object;Landroid/view/KeyEvent;)V
+Landroid/text/method/MetaKeyKeyListener;->RELEASED:I
+Landroid/text/method/MetaKeyKeyListener;->resetLock(Landroid/text/Spannable;Ljava/lang/Object;)V
+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;
+Landroid/text/method/MultiTapKeyListener;->removeTimeouts(Landroid/text/Spannable;)V
+Landroid/text/method/MultiTapKeyListener;->sInstance:[Landroid/text/method/MultiTapKeyListener;
+Landroid/text/method/MultiTapKeyListener;->sRecs:Landroid/util/SparseArray;
+Landroid/text/method/NumberKeyListener;->addAmPmChars(Ljava/util/Collection;Ljava/util/Locale;)Z
+Landroid/text/method/NumberKeyListener;->addDigits(Ljava/util/Collection;Ljava/util/Locale;)Z
+Landroid/text/method/NumberKeyListener;->addFormatCharsFromSkeleton(Ljava/util/Collection;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/text/method/NumberKeyListener;->addFormatCharsFromSkeletons(Ljava/util/Collection;Ljava/util/Locale;[Ljava/lang/String;Ljava/lang/String;)Z
+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
+Landroid/text/method/QwertyKeyListener;->getReplacement(Ljava/lang/CharSequence;IILandroid/view/View;)Ljava/lang/String;
+Landroid/text/method/QwertyKeyListener;->mAutoCap:Landroid/text/method/TextKeyListener$Capitalize;
+Landroid/text/method/QwertyKeyListener;->mAutoText:Z
+Landroid/text/method/QwertyKeyListener;->mFullKeyboard:Z
+Landroid/text/method/QwertyKeyListener;->PICKER_SETS:Landroid/util/SparseArray;
+Landroid/text/method/QwertyKeyListener;->sFullKeyboardInstance:Landroid/text/method/QwertyKeyListener;
+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
+Landroid/text/method/TextKeyListener;->AUTO_TEXT:I
+Landroid/text/method/TextKeyListener;->CAPPED:Ljava/lang/Object;
+Landroid/text/method/TextKeyListener;->getKeyListener(Landroid/view/KeyEvent;)Landroid/text/method/KeyListener;
+Landroid/text/method/TextKeyListener;->getPrefs(Landroid/content/Context;)I
+Landroid/text/method/TextKeyListener;->INHIBIT_REPLACEMENT:Ljava/lang/Object;
+Landroid/text/method/TextKeyListener;->initPrefs(Landroid/content/Context;)V
+Landroid/text/method/TextKeyListener;->LAST_TYPED:Ljava/lang/Object;
+Landroid/text/method/TextKeyListener;->mAutoCap:Landroid/text/method/TextKeyListener$Capitalize;
+Landroid/text/method/TextKeyListener;->mAutoText:Z
+Landroid/text/method/TextKeyListener;->mObserver:Landroid/text/method/TextKeyListener$SettingsObserver;
+Landroid/text/method/TextKeyListener;->mPrefs:I
+Landroid/text/method/TextKeyListener;->mPrefsInited:Z
+Landroid/text/method/TextKeyListener;->mResolver:Ljava/lang/ref/WeakReference;
+Landroid/text/method/TextKeyListener;->SHOW_PASSWORD:I
+Landroid/text/method/TextKeyListener;->sInstance:[Landroid/text/method/TextKeyListener;
+Landroid/text/method/TextKeyListener;->updatePrefs(Landroid/content/ContentResolver;)V
+Landroid/text/method/TimeKeyListener;->mCharacters:[C
+Landroid/text/method/TimeKeyListener;->mNeedsAdvancedInput:Z
+Landroid/text/method/TimeKeyListener;->sInstanceCache:Ljava/util/HashMap;
+Landroid/text/method/TimeKeyListener;->SKELETON_12HOUR:Ljava/lang/String;
+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
+Landroid/text/method/Touch$DragState;->mScrollY:I
+Landroid/text/method/Touch$DragState;->mUsed:Z
+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
+Landroid/text/method/WordIterator;->getEnd(IZ)I
+Landroid/text/method/WordIterator;->isAfterLetterOrDigit(I)Z
+Landroid/text/method/WordIterator;->isMidWordPunctuation(Ljava/util/Locale;I)Z
+Landroid/text/method/WordIterator;->isOnLetterOrDigit(I)Z
+Landroid/text/method/WordIterator;->isPunctuation(I)Z
+Landroid/text/method/WordIterator;->isPunctuationEndBoundary(I)Z
+Landroid/text/method/WordIterator;->isPunctuationStartBoundary(I)Z
+Landroid/text/method/WordIterator;->mCharSeq:Ljava/lang/CharSequence;
+Landroid/text/method/WordIterator;->mEnd:I
+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
+Landroid/text/PackedIntVector;->getValue(II)I
+Landroid/text/PackedIntVector;->growBuffer()V
+Landroid/text/PackedIntVector;->insertAt(I[I)V
+Landroid/text/PackedIntVector;->mColumns:I
+Landroid/text/PackedIntVector;->moveRowGapTo(I)V
+Landroid/text/PackedIntVector;->moveValueGapTo(II)V
+Landroid/text/PackedIntVector;->mRowGapLength:I
+Landroid/text/PackedIntVector;->mRowGapStart:I
+Landroid/text/PackedIntVector;->mRows:I
+Landroid/text/PackedIntVector;->mValueGap:[I
+Landroid/text/PackedIntVector;->mValues:[I
+Landroid/text/PackedIntVector;->setValue(III)V
+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
+Landroid/text/PackedObjectVector;->getValue(II)Ljava/lang/Object;
+Landroid/text/PackedObjectVector;->growBuffer()V
+Landroid/text/PackedObjectVector;->insertAt(I[Ljava/lang/Object;)V
+Landroid/text/PackedObjectVector;->mColumns:I
+Landroid/text/PackedObjectVector;->moveRowGapTo(I)V
+Landroid/text/PackedObjectVector;->mRowGapLength:I
+Landroid/text/PackedObjectVector;->mRowGapStart:I
+Landroid/text/PackedObjectVector;->mRows:I
+Landroid/text/PackedObjectVector;->mValues:[Ljava/lang/Object;
+Landroid/text/PackedObjectVector;->setValue(IILjava/lang/Object;)V
+Landroid/text/PackedObjectVector;->size()I
+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
+Landroid/text/PrecomputedText$Params$Builder;->mBreakStrategy:I
+Landroid/text/PrecomputedText$Params$Builder;->mHyphenationFrequency:I
+Landroid/text/PrecomputedText$Params$Builder;->mPaint:Landroid/text/TextPaint;
+Landroid/text/PrecomputedText$Params$Builder;->mTextDir:Landroid/text/TextDirectionHeuristic;
+Landroid/text/PrecomputedText$Params;-><init>(Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;II)V
+Landroid/text/PrecomputedText$Params;->isSameTextMetricsInternal(Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;II)Z
+Landroid/text/PrecomputedText$Params;->mBreakStrategy:I
+Landroid/text/PrecomputedText$Params;->mHyphenationFrequency:I
+Landroid/text/PrecomputedText$Params;->mPaint:Landroid/text/TextPaint;
+Landroid/text/PrecomputedText$Params;->mTextDir:Landroid/text/TextDirectionHeuristic;
+Landroid/text/PrecomputedText;-><init>(Ljava/lang/CharSequence;IILandroid/text/PrecomputedText$Params;[Landroid/text/PrecomputedText$ParagraphInfo;)V
+Landroid/text/PrecomputedText;->canUseMeasuredResult(IILandroid/text/TextDirectionHeuristic;Landroid/text/TextPaint;II)Z
+Landroid/text/PrecomputedText;->createMeasuredParagraphs(Ljava/lang/CharSequence;Landroid/text/PrecomputedText$Params;IIZ)[Landroid/text/PrecomputedText$ParagraphInfo;
+Landroid/text/PrecomputedText;->findParaIndex(I)I
+Landroid/text/PrecomputedText;->getEnd()I
+Landroid/text/PrecomputedText;->getMeasuredParagraph(I)Landroid/text/MeasuredParagraph;
+Landroid/text/PrecomputedText;->getMemoryUsage()I
+Landroid/text/PrecomputedText;->getParagraphInfo()[Landroid/text/PrecomputedText$ParagraphInfo;
+Landroid/text/PrecomputedText;->getStart()I
+Landroid/text/PrecomputedText;->getText()Ljava/lang/CharSequence;
+Landroid/text/PrecomputedText;->LINE_FEED:C
+Landroid/text/PrecomputedText;->mEnd:I
+Landroid/text/PrecomputedText;->mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
+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
+Landroid/text/Selection;->extendSelection(Landroid/text/Spannable;II)V
+Landroid/text/Selection;->findEdge(Landroid/text/Spannable;Landroid/text/Layout;I)I
+Landroid/text/Selection;->getSelectionMemory(Ljava/lang/CharSequence;)I
+Landroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V
+Landroid/text/Selection;->SELECTION_MEMORY:Ljava/lang/Object;
+Landroid/text/Selection;->setSelection(Landroid/text/Spannable;III)V
+Landroid/text/Selection;->setSelectionAndMemory(Landroid/text/Spannable;Landroid/text/Layout;IIIZ)V
+Landroid/text/Selection;->updateMemory(Landroid/text/Spannable;I)V
+Landroid/text/Spannable$Factory;->sInstance:Landroid/text/Spannable$Factory;
+Landroid/text/Spannable;->removeSpan(Ljava/lang/Object;I)V
+Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;II)V
+Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;Z)V
+Landroid/text/SpannableStringBuilder;->calcMax(I)I
+Landroid/text/SpannableStringBuilder;->change(IILjava/lang/CharSequence;II)V
+Landroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V
+Landroid/text/SpannableStringBuilder;->checkSortBuffer([II)[I
+Landroid/text/SpannableStringBuilder;->compareSpans(II[I[I)I
+Landroid/text/SpannableStringBuilder;->countSpans(IILjava/lang/Class;I)I
+Landroid/text/SpannableStringBuilder;->drawText(Landroid/graphics/BaseCanvas;IIFFLandroid/graphics/Paint;)V
+Landroid/text/SpannableStringBuilder;->drawTextRun(Landroid/graphics/BaseCanvas;IIIIFFZLandroid/graphics/Paint;)V
+Landroid/text/SpannableStringBuilder;->END_MASK:I
+Landroid/text/SpannableStringBuilder;->getSpansRec(IILjava/lang/Class;I[Ljava/lang/Object;[I[IIZ)I
+Landroid/text/SpannableStringBuilder;->getTextRunAdvances(IIIIZ[FILandroid/graphics/Paint;)F
+Landroid/text/SpannableStringBuilder;->getTextWidths(II[FLandroid/graphics/Paint;)I
+Landroid/text/SpannableStringBuilder;->hasNonExclusiveExclusiveSpanAt(Ljava/lang/CharSequence;I)Z
+Landroid/text/SpannableStringBuilder;->invalidateIndex(I)V
+Landroid/text/SpannableStringBuilder;->isInvalidParagraph(II)Z
+Landroid/text/SpannableStringBuilder;->leftChild(I)I
+Landroid/text/SpannableStringBuilder;->MARK:I
+Landroid/text/SpannableStringBuilder;->measureText(IILandroid/graphics/Paint;)F
+Landroid/text/SpannableStringBuilder;->mFilters:[Landroid/text/InputFilter;
+Landroid/text/SpannableStringBuilder;->mIndexOfSpan:Ljava/util/IdentityHashMap;
+Landroid/text/SpannableStringBuilder;->mLowWaterMark:I
+Landroid/text/SpannableStringBuilder;->moveGapTo(I)V
+Landroid/text/SpannableStringBuilder;->mSpanInsertCount:I
+Landroid/text/SpannableStringBuilder;->mSpanMax:[I
+Landroid/text/SpannableStringBuilder;->mSpanOrder:[I
+Landroid/text/SpannableStringBuilder;->mTextWatcherDepth:I
+Landroid/text/SpannableStringBuilder;->nextSpanTransitionRec(IILjava/lang/Class;I)I
+Landroid/text/SpannableStringBuilder;->NO_FILTERS:[Landroid/text/InputFilter;
+Landroid/text/SpannableStringBuilder;->obtain(I)[I
+Landroid/text/SpannableStringBuilder;->PARAGRAPH:I
+Landroid/text/SpannableStringBuilder;->POINT:I
+Landroid/text/SpannableStringBuilder;->recycle([I)V
+Landroid/text/SpannableStringBuilder;->region(II)Ljava/lang/String;
+Landroid/text/SpannableStringBuilder;->removeSpan(II)V
+Landroid/text/SpannableStringBuilder;->removeSpan(Ljava/lang/Object;I)V
+Landroid/text/SpannableStringBuilder;->removeSpansForChange(IIZI)Z
+Landroid/text/SpannableStringBuilder;->resizeFor(I)V
+Landroid/text/SpannableStringBuilder;->resolveGap(I)I
+Landroid/text/SpannableStringBuilder;->restoreInvariants()V
+Landroid/text/SpannableStringBuilder;->rightChild(I)I
+Landroid/text/SpannableStringBuilder;->sCachedIntBuffer:[[I
+Landroid/text/SpannableStringBuilder;->sendAfterTextChanged([Landroid/text/TextWatcher;)V
+Landroid/text/SpannableStringBuilder;->sendBeforeTextChanged([Landroid/text/TextWatcher;III)V
+Landroid/text/SpannableStringBuilder;->sendSpanAdded(Ljava/lang/Object;II)V
+Landroid/text/SpannableStringBuilder;->sendSpanChanged(Ljava/lang/Object;IIII)V
+Landroid/text/SpannableStringBuilder;->sendSpanRemoved(Ljava/lang/Object;II)V
+Landroid/text/SpannableStringBuilder;->sendTextChanged([Landroid/text/TextWatcher;III)V
+Landroid/text/SpannableStringBuilder;->setSpan(ZLjava/lang/Object;IIIZ)V
+Landroid/text/SpannableStringBuilder;->siftDown(I[Ljava/lang/Object;I[I[I)V
+Landroid/text/SpannableStringBuilder;->sort([Ljava/lang/Object;[I[I)V
+Landroid/text/SpannableStringBuilder;->SPAN_ADDED:I
+Landroid/text/SpannableStringBuilder;->SPAN_END_AT_END:I
+Landroid/text/SpannableStringBuilder;->SPAN_END_AT_START:I
+Landroid/text/SpannableStringBuilder;->SPAN_START_AT_END:I
+Landroid/text/SpannableStringBuilder;->SPAN_START_AT_START:I
+Landroid/text/SpannableStringBuilder;->SPAN_START_END_MASK:I
+Landroid/text/SpannableStringBuilder;->START_MASK:I
+Landroid/text/SpannableStringBuilder;->START_SHIFT:I
+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
+Landroid/text/SpanSet;->hasSpansIntersecting(II)Z
+Landroid/text/SpanSet;->init(Landroid/text/Spanned;II)V
+Landroid/text/SpanSet;->numberOfSpans:I
+Landroid/text/SpanSet;->recycle()V
+Landroid/text/SpanSet;->spanEnds:[I
+Landroid/text/SpanSet;->spanFlags:[I
+Landroid/text/SpanSet;->spanStarts:[I
+Landroid/text/StaticLayout$Builder;-><init>()V
+Landroid/text/StaticLayout$Builder;->finish()V
+Landroid/text/StaticLayout$Builder;->mAddLastLineLineSpacing:Z
+Landroid/text/StaticLayout$Builder;->mAlignment:Landroid/text/Layout$Alignment;
+Landroid/text/StaticLayout$Builder;->mBreakStrategy:I
+Landroid/text/StaticLayout$Builder;->mEllipsize:Landroid/text/TextUtils$TruncateAt;
+Landroid/text/StaticLayout$Builder;->mEllipsizedWidth:I
+Landroid/text/StaticLayout$Builder;->mEnd:I
+Landroid/text/StaticLayout$Builder;->mFallbackLineSpacing:Z
+Landroid/text/StaticLayout$Builder;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;
+Landroid/text/StaticLayout$Builder;->mHyphenationFrequency:I
+Landroid/text/StaticLayout$Builder;->mIncludePad:Z
+Landroid/text/StaticLayout$Builder;->mJustificationMode:I
+Landroid/text/StaticLayout$Builder;->mLeftIndents:[I
+Landroid/text/StaticLayout$Builder;->mLeftPaddings:[I
+Landroid/text/StaticLayout$Builder;->mMaxLines:I
+Landroid/text/StaticLayout$Builder;->mPaint:Landroid/text/TextPaint;
+Landroid/text/StaticLayout$Builder;->mRightIndents:[I
+Landroid/text/StaticLayout$Builder;->mRightPaddings:[I
+Landroid/text/StaticLayout$Builder;->mSpacingAdd:F
+Landroid/text/StaticLayout$Builder;->mSpacingMult:F
+Landroid/text/StaticLayout$Builder;->mStart:I
+Landroid/text/StaticLayout$Builder;->mText:Ljava/lang/CharSequence;
+Landroid/text/StaticLayout$Builder;->mTextDir:Landroid/text/TextDirectionHeuristic;
+Landroid/text/StaticLayout$Builder;->mWidth:I
+Landroid/text/StaticLayout$Builder;->recycle(Landroid/text/StaticLayout$Builder;)V
+Landroid/text/StaticLayout$Builder;->setAddLastLineLineSpacing(Z)Landroid/text/StaticLayout$Builder;
+Landroid/text/StaticLayout$Builder;->setAvailablePaddings([I[I)Landroid/text/StaticLayout$Builder;
+Landroid/text/StaticLayout$Builder;->setPaint(Landroid/text/TextPaint;)Landroid/text/StaticLayout$Builder;
+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
+Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;)V
+Landroid/text/StaticLayout;->calculateEllipsis(II[FIFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;Z)V
+Landroid/text/StaticLayout;->CHAR_NEW_LINE:C
+Landroid/text/StaticLayout;->COLUMNS_ELLIPSIZE:I
+Landroid/text/StaticLayout;->COLUMNS_NORMAL:I
+Landroid/text/StaticLayout;->DEFAULT_MAX_LINE_HEIGHT:I
+Landroid/text/StaticLayout;->DESCENT:I
+Landroid/text/StaticLayout;->DIR:I
+Landroid/text/StaticLayout;->DIR_SHIFT:I
+Landroid/text/StaticLayout;->ELLIPSIS_COUNT:I
+Landroid/text/StaticLayout;->EXTRA:I
+Landroid/text/StaticLayout;->EXTRA_ROUNDING:D
+Landroid/text/StaticLayout;->generate(Landroid/text/StaticLayout$Builder;ZZ)V
+Landroid/text/StaticLayout;->getHyphen(I)I
+Landroid/text/StaticLayout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I
+Landroid/text/StaticLayout;->getLineExtra(I)I
+Landroid/text/StaticLayout;->getTotalInsets(I)F
+Landroid/text/StaticLayout;->HYPHEN:I
+Landroid/text/StaticLayout;->HYPHEN_MASK:I
+Landroid/text/StaticLayout;->mBottomPadding:I
+Landroid/text/StaticLayout;->mEllipsized:Z
+Landroid/text/StaticLayout;->mEllipsizedWidth:I
+Landroid/text/StaticLayout;->mLeftIndents:[I
+Landroid/text/StaticLayout;->mLeftPaddings:[I
+Landroid/text/StaticLayout;->mMaxLineHeight:I
+Landroid/text/StaticLayout;->mRightIndents:[I
+Landroid/text/StaticLayout;->mRightPaddings:[I
+Landroid/text/StaticLayout;->mTopPadding:I
+Landroid/text/StaticLayout;->nComputeLineBreaks(J[CJIFIF[IIILandroid/text/StaticLayout$LineBreaks;I[I[F[F[F[I[F)I
+Landroid/text/StaticLayout;->nFinish(J)V
+Landroid/text/StaticLayout;->nInit(IIZ[I[I[I)J
+Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;IZLandroid/text/MeasuredParagraph;IZZZ[C[FILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;Z)I
+Landroid/text/StaticLayout;->START:I
+Landroid/text/StaticLayout;->START_MASK:I
+Landroid/text/StaticLayout;->TAB:I
+Landroid/text/StaticLayout;->TAB_INCREMENT:I
+Landroid/text/StaticLayout;->TAB_MASK:I
+Landroid/text/StaticLayout;->TAG:Ljava/lang/String;
+Landroid/text/StaticLayout;->TOP:I
+Landroid/text/style/AbsoluteSizeSpan;->getSpanTypeIdInternal()I
+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
+Landroid/text/style/AccessibilityClickableSpan;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/text/style/AccessibilityClickableSpan;->findClickableSpan(Ljava/lang/CharSequence;)Landroid/text/style/ClickableSpan;
+Landroid/text/style/AccessibilityClickableSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/AccessibilityClickableSpan;->mConnectionId:I
+Landroid/text/style/AccessibilityClickableSpan;->mOriginalClickableSpanId:I
+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
+Landroid/text/style/AccessibilityURLSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/AccessibilityURLSpan;->mAccessibilityClickableSpan:Landroid/text/style/AccessibilityClickableSpan;
+Landroid/text/style/AccessibilityURLSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/AlignmentSpan$Standard;->getSpanTypeIdInternal()I
+Landroid/text/style/AlignmentSpan$Standard;->mAlignment:Landroid/text/Layout$Alignment;
+Landroid/text/style/AlignmentSpan$Standard;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/BackgroundColorSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/BackgroundColorSpan;->mColor:I
+Landroid/text/style/BackgroundColorSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/BulletSpan;-><init>(IIZI)V
+Landroid/text/style/BulletSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/BulletSpan;->mBulletPath:Landroid/graphics/Path;
+Landroid/text/style/BulletSpan;->mBulletRadius:I
+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
+Landroid/text/style/ClickableSpan;->mId:I
+Landroid/text/style/ClickableSpan;->sIdCounter:I
+Landroid/text/style/DrawableMarginSpan;->mDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/text/style/DrawableMarginSpan;->mPad:I
+Landroid/text/style/DrawableMarginSpan;->STANDARD_PAD_WIDTH:I
+Landroid/text/style/DynamicDrawableSpan;->getCachedDrawable()Landroid/graphics/drawable/Drawable;
+Landroid/text/style/EasyEditSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/EasyEditSpan;->mDeleteEnabled:Z
+Landroid/text/style/EasyEditSpan;->mPendingIntent:Landroid/app/PendingIntent;
+Landroid/text/style/EasyEditSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/ForegroundColorSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/ForegroundColorSpan;->mColor:I
+Landroid/text/style/ForegroundColorSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/IconMarginSpan;->mBitmap:Landroid/graphics/Bitmap;
+Landroid/text/style/IconMarginSpan;->mPad:I
+Landroid/text/style/ImageSpan;->mContentUri:Landroid/net/Uri;
+Landroid/text/style/ImageSpan;->mContext:Landroid/content/Context;
+Landroid/text/style/ImageSpan;->mResourceId:I
+Landroid/text/style/ImageSpan;->mSource:Ljava/lang/String;
+Landroid/text/style/LeadingMarginSpan$Standard;->getSpanTypeIdInternal()I
+Landroid/text/style/LeadingMarginSpan$Standard;->mFirst:I
+Landroid/text/style/LeadingMarginSpan$Standard;->mRest:I
+Landroid/text/style/LeadingMarginSpan$Standard;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/LocaleSpan;->apply(Landroid/graphics/Paint;Landroid/os/LocaleList;)V
+Landroid/text/style/LocaleSpan;->getSpanTypeIdInternal()I
+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
+Landroid/text/style/QuoteSpan;->mColor:I
+Landroid/text/style/QuoteSpan;->mGapWidth:I
+Landroid/text/style/QuoteSpan;->mStripeWidth:I
+Landroid/text/style/QuoteSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/RasterizerSpan;->mRasterizer:Landroid/graphics/Rasterizer;
+Landroid/text/style/RelativeSizeSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/RelativeSizeSpan;->mProportion:F
+Landroid/text/style/RelativeSizeSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+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
+Landroid/text/style/StrikethroughSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/StrikethroughSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/StyleSpan;->apply(Landroid/graphics/Paint;I)V
+Landroid/text/style/StyleSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/StyleSpan;->mStyle:I
+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
+Landroid/text/style/SuggestionSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/SuggestionSpan;->hashCodeInternal([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+Landroid/text/style/SuggestionSpan;->initStyle(Landroid/content/Context;)V
+Landroid/text/style/SuggestionSpan;->mAutoCorrectionUnderlineColor:I
+Landroid/text/style/SuggestionSpan;->mAutoCorrectionUnderlineThickness:F
+Landroid/text/style/SuggestionSpan;->mFlags:I
+Landroid/text/style/SuggestionSpan;->mHashCode:I
+Landroid/text/style/SuggestionSpan;->mLanguageTag:Ljava/lang/String;
+Landroid/text/style/SuggestionSpan;->mLocaleStringForCompatibility:Ljava/lang/String;
+Landroid/text/style/SuggestionSpan;->mMisspelledUnderlineColor:I
+Landroid/text/style/SuggestionSpan;->mMisspelledUnderlineThickness:F
+Landroid/text/style/SuggestionSpan;->mNotificationTargetClassName:Ljava/lang/String;
+Landroid/text/style/SuggestionSpan;->mNotificationTargetPackageName:Ljava/lang/String;
+Landroid/text/style/SuggestionSpan;->mSuggestions:[Ljava/lang/String;
+Landroid/text/style/SuggestionSpan;->TAG:Ljava/lang/String;
+Landroid/text/style/SuggestionSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/SuperscriptSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/SuperscriptSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/TabStopSpan$Standard;->mTabOffset:I
+Landroid/text/style/TextAppearanceSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/TextAppearanceSpan;->mFamilyName:Ljava/lang/String;
+Landroid/text/style/TextAppearanceSpan;->mStyle:I
+Landroid/text/style/TextAppearanceSpan;->mTextColor:Landroid/content/res/ColorStateList;
+Landroid/text/style/TextAppearanceSpan;->mTextColorLink:Landroid/content/res/ColorStateList;
+Landroid/text/style/TextAppearanceSpan;->mTextSize:I
+Landroid/text/style/TextAppearanceSpan;->mTypeface:Landroid/graphics/Typeface;
+Landroid/text/style/TextAppearanceSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/TtsSpan$Builder;->mArgs:Landroid/os/PersistableBundle;
+Landroid/text/style/TtsSpan$Builder;->mType:Ljava/lang/String;
+Landroid/text/style/TtsSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/TtsSpan;->mArgs:Landroid/os/PersistableBundle;
+Landroid/text/style/TtsSpan;->mType:Ljava/lang/String;
+Landroid/text/style/TtsSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;Landroid/graphics/Typeface;)V
+Landroid/text/style/TypefaceSpan;->applyFontFamily(Landroid/graphics/Paint;Ljava/lang/String;)V
+Landroid/text/style/TypefaceSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/TypefaceSpan;->mFamily:Ljava/lang/String;
+Landroid/text/style/TypefaceSpan;->mTypeface:Landroid/graphics/Typeface;
+Landroid/text/style/TypefaceSpan;->updateTypeface(Landroid/graphics/Paint;)V
+Landroid/text/style/TypefaceSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+Landroid/text/style/UnderlineSpan;->getSpanTypeIdInternal()I
+Landroid/text/style/UnderlineSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+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;
+Landroid/text/TextDirectionHeuristics;->isRtlCodePoint(I)I
+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
+Landroid/text/TextLine$DecorationInfo;->hasDecoration()Z
+Landroid/text/TextLine$DecorationInfo;->isStrikeThruText:Z
+Landroid/text/TextLine$DecorationInfo;->isUnderlineText:Z
+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
+Landroid/text/TextLine;->DEBUG:Z
+Landroid/text/TextLine;->draw(Landroid/graphics/Canvas;FIII)V
+Landroid/text/TextLine;->drawRun(Landroid/graphics/Canvas;IIZFIIIZ)F
+Landroid/text/TextLine;->drawStroke(Landroid/text/TextPaint;Landroid/graphics/Canvas;IFFFFF)V
+Landroid/text/TextLine;->drawTextRun(Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V
+Landroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V
+Landroid/text/TextLine;->extractDecorationInfo(Landroid/text/TextPaint;Landroid/text/TextLine$DecorationInfo;)V
+Landroid/text/TextLine;->getOffsetBeforeAfter(IIIZIZ)I
+Landroid/text/TextLine;->getOffsetToLeftRightOf(IZ)I
+Landroid/text/TextLine;->getRunAdvance(Landroid/text/TextPaint;IIIIZI)F
+Landroid/text/TextLine;->handleReplacement(Landroid/text/style/ReplacementSpan;Landroid/text/TextPaint;IIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F
+Landroid/text/TextLine;->handleRun(IIIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F
+Landroid/text/TextLine;->handleText(Landroid/text/TextPaint;IIIIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;ZILjava/util/ArrayList;)F
+Landroid/text/TextLine;->isLineEndSpace(C)Z
+Landroid/text/TextLine;->isStretchableWhitespace(I)Z
+Landroid/text/TextLine;->justify(F)V
+Landroid/text/TextLine;->mActivePaint:Landroid/text/TextPaint;
+Landroid/text/TextLine;->mAddedWidth:F
+Landroid/text/TextLine;->mChars:[C
+Landroid/text/TextLine;->mCharsValid:Z
+Landroid/text/TextLine;->mComputed:Landroid/text/PrecomputedText;
+Landroid/text/TextLine;->mDecorationInfo:Landroid/text/TextLine$DecorationInfo;
+Landroid/text/TextLine;->mDecorations:Ljava/util/ArrayList;
+Landroid/text/TextLine;->mDir:I
+Landroid/text/TextLine;->mDirections:Landroid/text/Layout$Directions;
+Landroid/text/TextLine;->measure(IZLandroid/graphics/Paint$FontMetricsInt;)F
+Landroid/text/TextLine;->measureAllOffsets([ZLandroid/graphics/Paint$FontMetricsInt;)[F
+Landroid/text/TextLine;->measureRun(IIIZLandroid/graphics/Paint$FontMetricsInt;)F
+Landroid/text/TextLine;->metrics(Landroid/graphics/Paint$FontMetricsInt;)F
+Landroid/text/TextLine;->mHasTabs:Z
+Landroid/text/TextLine;->mLen:I
+Landroid/text/TextLine;->mPaint:Landroid/text/TextPaint;
+Landroid/text/TextLine;->mStart:I
+Landroid/text/TextLine;->mTabs:Landroid/text/Layout$TabStops;
+Landroid/text/TextLine;->mWorkPaint:Landroid/text/TextPaint;
+Landroid/text/TextLine;->nextTab(F)F
+Landroid/text/TextLine;->recycle(Landroid/text/TextLine;)Landroid/text/TextLine;
+Landroid/text/TextLine;->set(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
+Landroid/text/TextLine;->TAB_INCREMENT:I
+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;
+Landroid/text/TextUtils$Reverser;->mStart:I
+Landroid/text/TextUtils$SimpleStringSplitter;->mDelimiter:C
+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
+Landroid/text/TextUtils;->ACCESSIBILITY_URL_SPAN:I
+Landroid/text/TextUtils;->ALIGNMENT_SPAN:I
+Landroid/text/TextUtils;->ANNOTATION:I
+Landroid/text/TextUtils;->BACKGROUND_COLOR_SPAN:I
+Landroid/text/TextUtils;->BULLET_SPAN:I
+Landroid/text/TextUtils;->commaEllipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLjava/lang/String;Ljava/lang/String;Landroid/text/TextDirectionHeuristic;)Ljava/lang/CharSequence;
+Landroid/text/TextUtils;->couldAffectRtl(C)Z
+Landroid/text/TextUtils;->delimitedStringContains(Ljava/lang/String;CLjava/lang/String;)Z
+Landroid/text/TextUtils;->doesNotNeedBidi([CII)Z
+Landroid/text/TextUtils;->EASY_EDIT_SPAN:I
+Landroid/text/TextUtils;->ELLIPSIS_FILLER:C
+Landroid/text/TextUtils;->ELLIPSIS_NORMAL:Ljava/lang/String;
+Landroid/text/TextUtils;->ELLIPSIS_TWO_DOTS:Ljava/lang/String;
+Landroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;Landroid/text/TextDirectionHeuristic;Ljava/lang/String;)Ljava/lang/CharSequence;
+Landroid/text/TextUtils;->emptyIfNull(Ljava/lang/String;)Ljava/lang/String;
+Landroid/text/TextUtils;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
+Landroid/text/TextUtils;->firstNotEmpty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/text/TextUtils;->FIRST_SPAN:I
+Landroid/text/TextUtils;->FOREGROUND_COLOR_SPAN:I
+Landroid/text/TextUtils;->formatSelectedCount(I)Ljava/lang/CharSequence;
+Landroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String;
+Landroid/text/TextUtils;->hasStyleSpan(Landroid/text/Spanned;)Z
+Landroid/text/TextUtils;->isPrintableAscii(C)Z
+Landroid/text/TextUtils;->LAST_SPAN:I
+Landroid/text/TextUtils;->LEADING_MARGIN_SPAN:I
+Landroid/text/TextUtils;->length(Ljava/lang/String;)I
+Landroid/text/TextUtils;->LOCALE_SPAN:I
+Landroid/text/TextUtils;->nullIfEmpty(Ljava/lang/String;)Ljava/lang/String;
+Landroid/text/TextUtils;->obtain(I)[C
+Landroid/text/TextUtils;->PARCEL_SAFE_TEXT_LENGTH:I
+Landroid/text/TextUtils;->QUOTE_SPAN:I
+Landroid/text/TextUtils;->readSpan(Landroid/os/Parcel;Landroid/text/Spannable;Ljava/lang/Object;)V
+Landroid/text/TextUtils;->recycle([C)V
+Landroid/text/TextUtils;->RELATIVE_SIZE_SPAN:I
+Landroid/text/TextUtils;->removeEmptySpans([Ljava/lang/Object;Landroid/text/Spanned;Ljava/lang/Class;)[Ljava/lang/Object;
+Landroid/text/TextUtils;->safeIntern(Ljava/lang/String;)Ljava/lang/String;
+Landroid/text/TextUtils;->SCALE_X_SPAN:I
+Landroid/text/TextUtils;->sLock:Ljava/lang/Object;
+Landroid/text/TextUtils;->SPELL_CHECK_SPAN:I
+Landroid/text/TextUtils;->sTemp:[C
+Landroid/text/TextUtils;->STRIKETHROUGH_SPAN:I
+Landroid/text/TextUtils;->STYLE_SPAN:I
+Landroid/text/TextUtils;->SUBSCRIPT_SPAN:I
+Landroid/text/TextUtils;->SUGGESTION_RANGE_SPAN:I
+Landroid/text/TextUtils;->SUGGESTION_SPAN:I
+Landroid/text/TextUtils;->SUPERSCRIPT_SPAN:I
+Landroid/text/TextUtils;->TAG:Ljava/lang/String;
+Landroid/text/TextUtils;->TEXT_APPEARANCE_SPAN:I
+Landroid/text/TextUtils;->toUpperCase(Ljava/util/Locale;Ljava/lang/CharSequence;Z)Ljava/lang/CharSequence;
+Landroid/text/TextUtils;->toUpperMapToDest(Landroid/icu/text/Edits$Iterator;I)I
+Landroid/text/TextUtils;->trimNoCopySpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/text/TextUtils;->trimToParcelableSize(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/text/TextUtils;->trimToSize(Ljava/lang/CharSequence;I)Ljava/lang/CharSequence;
+Landroid/text/TextUtils;->TTS_SPAN:I
+Landroid/text/TextUtils;->TYPEFACE_SPAN:I
+Landroid/text/TextUtils;->UNDERLINE_SPAN:I
+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;
+Landroid/text/util/Linkify;->addLinksAsync(Landroid/text/Spannable;Landroid/view/textclassifier/TextClassifier;Landroid/view/textclassifier/TextLinksParams;)Ljava/util/concurrent/Future;
+Landroid/text/util/Linkify;->addLinksAsync(Landroid/text/Spannable;Landroid/view/textclassifier/TextClassifier;Landroid/view/textclassifier/TextLinksParams;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)Ljava/util/concurrent/Future;
+Landroid/text/util/Linkify;->addLinksAsync(Landroid/text/Spannable;Landroid/view/textclassifier/TextClassifier;Landroid/view/textclassifier/TextLinksParams;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
+Landroid/text/util/Linkify;->addLinksAsync(Landroid/widget/TextView;I)Ljava/util/concurrent/Future;
+Landroid/text/util/Linkify;->addLinksAsync(Landroid/widget/TextView;Landroid/view/textclassifier/TextLinksParams;)Ljava/util/concurrent/Future;
+Landroid/text/util/Linkify;->addLinksAsync(Landroid/widget/TextView;Landroid/view/textclassifier/TextLinksParams;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)Ljava/util/concurrent/Future;
+Landroid/text/util/Linkify;->applyLink(Ljava/lang/String;IILandroid/text/Spannable;)V
+Landroid/text/util/Linkify;->gatherLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Ljava/util/regex/Pattern;[Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V
+Landroid/text/util/Linkify;->gatherMapLinks(Ljava/util/ArrayList;Landroid/text/Spannable;)V
+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
+Landroid/text/util/LinkSpec;->url:Ljava/lang/String;
+Landroid/text/util/Rfc822Token;->mAddress:Ljava/lang/String;
+Landroid/text/util/Rfc822Token;->mComment:Ljava/lang/String;
+Landroid/text/util/Rfc822Token;->mName:Ljava/lang/String;
+Landroid/text/util/Rfc822Token;->stringEquals(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/text/util/Rfc822Tokenizer;->crunch(Ljava/lang/StringBuilder;)V
+Landroid/transition/ArcMotion;->DEFAULT_MAX_ANGLE_DEGREES:F
+Landroid/transition/ArcMotion;->DEFAULT_MAX_TANGENT:F
+Landroid/transition/ArcMotion;->DEFAULT_MIN_ANGLE_DEGREES:F
+Landroid/transition/ArcMotion;->mMaximumAngle:F
+Landroid/transition/ArcMotion;->mMaximumTangent:F
+Landroid/transition/ArcMotion;->mMinimumHorizontalAngle:F
+Landroid/transition/ArcMotion;->mMinimumHorizontalTangent:F
+Landroid/transition/ArcMotion;->mMinimumVerticalAngle:F
+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
+Landroid/transition/ChangeBounds$ViewBounds;->mLeft:I
+Landroid/transition/ChangeBounds$ViewBounds;->mRight:I
+Landroid/transition/ChangeBounds$ViewBounds;->mTop:I
+Landroid/transition/ChangeBounds$ViewBounds;->mTopLeftCalls:I
+Landroid/transition/ChangeBounds$ViewBounds;->mView:Landroid/view/View;
+Landroid/transition/ChangeBounds$ViewBounds;->setBottomRight(Landroid/graphics/PointF;)V
+Landroid/transition/ChangeBounds$ViewBounds;->setLeftTopRightBottom()V
+Landroid/transition/ChangeBounds$ViewBounds;->setTopLeft(Landroid/graphics/PointF;)V
+Landroid/transition/ChangeBounds;->BOTTOM_RIGHT_PROPERTY:Landroid/util/Property;
+Landroid/transition/ChangeBounds;->captureValues(Landroid/transition/TransitionValues;)V
+Landroid/transition/ChangeBounds;->DRAWABLE_ORIGIN_PROPERTY:Landroid/util/Property;
+Landroid/transition/ChangeBounds;->LOG_TAG:Ljava/lang/String;
+Landroid/transition/ChangeBounds;->mReparent:Z
+Landroid/transition/ChangeBounds;->mResizeClip:Z
+Landroid/transition/ChangeBounds;->parentMatches(Landroid/view/View;Landroid/view/View;)Z
+Landroid/transition/ChangeBounds;->PROPNAME_BOUNDS:Ljava/lang/String;
+Landroid/transition/ChangeBounds;->PROPNAME_CLIP:Ljava/lang/String;
+Landroid/transition/ChangeBounds;->PROPNAME_PARENT:Ljava/lang/String;
+Landroid/transition/ChangeBounds;->PROPNAME_WINDOW_X:Ljava/lang/String;
+Landroid/transition/ChangeBounds;->PROPNAME_WINDOW_Y:Ljava/lang/String;
+Landroid/transition/ChangeBounds;->sRectEvaluator:Landroid/animation/RectEvaluator;
+Landroid/transition/ChangeBounds;->sTransitionProperties:[Ljava/lang/String;
+Landroid/transition/ChangeBounds;->tempLocation:[I
+Landroid/transition/ChangeBounds;->TOP_LEFT_ONLY_PROPERTY:Landroid/util/Property;
+Landroid/transition/ChangeBounds;->TOP_LEFT_PROPERTY:Landroid/util/Property;
+Landroid/transition/ChangeClipBounds;->captureValues(Landroid/transition/TransitionValues;)V
+Landroid/transition/ChangeClipBounds;->PROPNAME_BOUNDS:Ljava/lang/String;
+Landroid/transition/ChangeClipBounds;->PROPNAME_CLIP:Ljava/lang/String;
+Landroid/transition/ChangeClipBounds;->sTransitionProperties:[Ljava/lang/String;
+Landroid/transition/ChangeClipBounds;->TAG:Ljava/lang/String;
+Landroid/transition/ChangeImageTransform;->ANIMATED_TRANSFORM_PROPERTY:Landroid/util/Property;
+Landroid/transition/ChangeImageTransform;->captureValues(Landroid/transition/TransitionValues;)V
+Landroid/transition/ChangeImageTransform;->createMatrixAnimator(Landroid/widget/ImageView;Landroid/graphics/Matrix;Landroid/graphics/Matrix;)Landroid/animation/ObjectAnimator;
+Landroid/transition/ChangeImageTransform;->createNullAnimator(Landroid/widget/ImageView;)Landroid/animation/ObjectAnimator;
+Landroid/transition/ChangeImageTransform;->NULL_MATRIX_EVALUATOR:Landroid/animation/TypeEvaluator;
+Landroid/transition/ChangeImageTransform;->PROPNAME_BOUNDS:Ljava/lang/String;
+Landroid/transition/ChangeImageTransform;->PROPNAME_MATRIX:Ljava/lang/String;
+Landroid/transition/ChangeImageTransform;->sTransitionProperties:[Ljava/lang/String;
+Landroid/transition/ChangeImageTransform;->TAG:Ljava/lang/String;
+Landroid/transition/ChangeScroll;->captureValues(Landroid/transition/TransitionValues;)V
+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
+Landroid/transition/ChangeText;->CHANGE_BEHAVIOR_KEEP:I
+Landroid/transition/ChangeText;->CHANGE_BEHAVIOR_OUT:I
+Landroid/transition/ChangeText;->CHANGE_BEHAVIOR_OUT_IN:I
+Landroid/transition/ChangeText;->getChangeBehavior()I
+Landroid/transition/ChangeText;->LOG_TAG:Ljava/lang/String;
+Landroid/transition/ChangeText;->mChangeBehavior:I
+Landroid/transition/ChangeText;->PROPNAME_TEXT:Ljava/lang/String;
+Landroid/transition/ChangeText;->PROPNAME_TEXT_COLOR:Ljava/lang/String;
+Landroid/transition/ChangeText;->PROPNAME_TEXT_SELECTION_END:Ljava/lang/String;
+Landroid/transition/ChangeText;->PROPNAME_TEXT_SELECTION_START:Ljava/lang/String;
+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;
+Landroid/transition/ChangeTransform$PathAnimatorMatrix;->mTranslationX:F
+Landroid/transition/ChangeTransform$PathAnimatorMatrix;->mTranslationY:F
+Landroid/transition/ChangeTransform$PathAnimatorMatrix;->mValues:[F
+Landroid/transition/ChangeTransform$PathAnimatorMatrix;->mView:Landroid/view/View;
+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
+Landroid/transition/ChangeTransform$Transforms;->rotationY:F
+Landroid/transition/ChangeTransform$Transforms;->rotationZ:F
+Landroid/transition/ChangeTransform$Transforms;->scaleX:F
+Landroid/transition/ChangeTransform$Transforms;->scaleY:F
+Landroid/transition/ChangeTransform$Transforms;->translationX:F
+Landroid/transition/ChangeTransform$Transforms;->translationY:F
+Landroid/transition/ChangeTransform$Transforms;->translationZ:F
+Landroid/transition/ChangeTransform;->captureValues(Landroid/transition/TransitionValues;)V
+Landroid/transition/ChangeTransform;->createGhostView(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)V
+Landroid/transition/ChangeTransform;->createTransformAnimator(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;Z)Landroid/animation/ObjectAnimator;
+Landroid/transition/ChangeTransform;->mReparent:Z
+Landroid/transition/ChangeTransform;->mTempMatrix:Landroid/graphics/Matrix;
+Landroid/transition/ChangeTransform;->mUseOverlay:Z
+Landroid/transition/ChangeTransform;->NON_TRANSLATIONS_PROPERTY:Landroid/util/Property;
+Landroid/transition/ChangeTransform;->parentsMatch(Landroid/view/ViewGroup;Landroid/view/ViewGroup;)Z
+Landroid/transition/ChangeTransform;->PROPNAME_INTERMEDIATE_MATRIX:Ljava/lang/String;
+Landroid/transition/ChangeTransform;->PROPNAME_INTERMEDIATE_PARENT_MATRIX:Ljava/lang/String;
+Landroid/transition/ChangeTransform;->PROPNAME_MATRIX:Ljava/lang/String;
+Landroid/transition/ChangeTransform;->PROPNAME_PARENT:Ljava/lang/String;
+Landroid/transition/ChangeTransform;->PROPNAME_PARENT_MATRIX:Ljava/lang/String;
+Landroid/transition/ChangeTransform;->PROPNAME_TRANSFORMS:Ljava/lang/String;
+Landroid/transition/ChangeTransform;->setIdentityTransforms(Landroid/view/View;)V
+Landroid/transition/ChangeTransform;->setMatricesForParent(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)V
+Landroid/transition/ChangeTransform;->setTransforms(Landroid/view/View;FFFFFFFF)V
+Landroid/transition/ChangeTransform;->sTransitionProperties:[Ljava/lang/String;
+Landroid/transition/ChangeTransform;->TAG:Ljava/lang/String;
+Landroid/transition/ChangeTransform;->TRANSLATIONS_PROPERTY:Landroid/util/Property;
+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
+Landroid/transition/Crossfade;->FADE_BEHAVIOR_OUT_IN:I
+Landroid/transition/Crossfade;->FADE_BEHAVIOR_REVEAL:I
+Landroid/transition/Crossfade;->getFadeBehavior()I
+Landroid/transition/Crossfade;->getResizeBehavior()I
+Landroid/transition/Crossfade;->LOG_TAG:Ljava/lang/String;
+Landroid/transition/Crossfade;->mFadeBehavior:I
+Landroid/transition/Crossfade;->mResizeBehavior:I
+Landroid/transition/Crossfade;->PROPNAME_BITMAP:Ljava/lang/String;
+Landroid/transition/Crossfade;->PROPNAME_BOUNDS:Ljava/lang/String;
+Landroid/transition/Crossfade;->PROPNAME_DRAWABLE:Ljava/lang/String;
+Landroid/transition/Crossfade;->RESIZE_BEHAVIOR_NONE:I
+Landroid/transition/Crossfade;->RESIZE_BEHAVIOR_SCALE:I
+Landroid/transition/Crossfade;->setFadeBehavior(I)Landroid/transition/Crossfade;
+Landroid/transition/Crossfade;->setResizeBehavior(I)Landroid/transition/Crossfade;
+Landroid/transition/Crossfade;->sRectEvaluator:Landroid/animation/RectEvaluator;
+Landroid/transition/Explode;->calculateMaxDistance(Landroid/view/View;II)D
+Landroid/transition/Explode;->calculateOut(Landroid/view/View;Landroid/graphics/Rect;[I)V
+Landroid/transition/Explode;->captureValues(Landroid/transition/TransitionValues;)V
+Landroid/transition/Explode;->mTempLoc:[I
+Landroid/transition/Explode;->PROPNAME_SCREEN_BOUNDS:Ljava/lang/String;
+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;
+Landroid/transition/Fade;->createAnimation(Landroid/view/View;FF)Landroid/animation/Animator;
+Landroid/transition/Fade;->DBG:Z
+Landroid/transition/Fade;->getStartAlpha(Landroid/transition/TransitionValues;F)F
+Landroid/transition/Fade;->LOG_TAG:Ljava/lang/String;
+Landroid/transition/Fade;->PROPNAME_TRANSITION_ALPHA:Ljava/lang/String;
+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
+Landroid/transition/Scene;->getCurrentScene(Landroid/view/View;)Landroid/transition/Scene;
+Landroid/transition/Scene;->isCreatedFromLayoutResource()Z
+Landroid/transition/Scene;->mContext:Landroid/content/Context;
+Landroid/transition/Scene;->mLayout:Landroid/view/View;
+Landroid/transition/Scene;->mLayoutId:I
+Landroid/transition/Scene;->mSceneRoot:Landroid/view/ViewGroup;
+Landroid/transition/SidePropagation;->distance(Landroid/view/View;IIIIIIII)I
+Landroid/transition/SidePropagation;->getMaxDistance(Landroid/view/ViewGroup;)I
+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
+Landroid/transition/Slide;->mSlideFraction:F
+Landroid/transition/Slide;->PROPNAME_SCREEN_POSITION:Ljava/lang/String;
+Landroid/transition/Slide;->sAccelerate:Landroid/animation/TimeInterpolator;
+Landroid/transition/Slide;->sCalculateBottom:Landroid/transition/Slide$CalculateSlide;
+Landroid/transition/Slide;->sCalculateEnd:Landroid/transition/Slide$CalculateSlide;
+Landroid/transition/Slide;->sCalculateLeft:Landroid/transition/Slide$CalculateSlide;
+Landroid/transition/Slide;->sCalculateRight:Landroid/transition/Slide$CalculateSlide;
+Landroid/transition/Slide;->sCalculateStart:Landroid/transition/Slide$CalculateSlide;
+Landroid/transition/Slide;->sCalculateTop:Landroid/transition/Slide$CalculateSlide;
+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;
+Landroid/transition/Transition;->addUnmatched(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+Landroid/transition/Transition;->addViewValues(Landroid/transition/TransitionValuesMaps;Landroid/view/View;Landroid/transition/TransitionValues;)V
+Landroid/transition/Transition;->alreadyContains([II)Z
+Landroid/transition/Transition;->animate(Landroid/animation/Animator;)V
+Landroid/transition/Transition;->captureHierarchy(Landroid/view/View;Z)V
+Landroid/transition/Transition;->capturePropagationValues(Landroid/transition/TransitionValues;)V
+Landroid/transition/Transition;->captureValues(Landroid/view/ViewGroup;Z)V
+Landroid/transition/Transition;->clearValues(Z)V
+Landroid/transition/Transition;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+Landroid/transition/Transition;->DBG:Z
+Landroid/transition/Transition;->DEFAULT_MATCH_ORDER:[I
+Landroid/transition/Transition;->excludeObject(Ljava/util/ArrayList;Ljava/lang/Object;Z)Ljava/util/ArrayList;
+Landroid/transition/Transition;->forceToEnd(Landroid/view/ViewGroup;)V
+Landroid/transition/Transition;->getMatchedTransitionValues(Landroid/view/View;Z)Landroid/transition/TransitionValues;
+Landroid/transition/Transition;->getNameOverrides()Landroid/util/ArrayMap;
+Landroid/transition/Transition;->getTargetViewNames()Ljava/util/List;
+Landroid/transition/Transition;->isValidMatch(I)Z
+Landroid/transition/Transition;->isValidTarget(Landroid/view/View;)Z
+Landroid/transition/Transition;->isValueChanged(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;Ljava/lang/String;)Z
+Landroid/transition/Transition;->LOG_TAG:Ljava/lang/String;
+Landroid/transition/Transition;->mAnimators:Ljava/util/ArrayList;
+Landroid/transition/Transition;->matchIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/SparseArray;Landroid/util/SparseArray;)V
+Landroid/transition/Transition;->matchInstances(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+Landroid/transition/Transition;->matchItemIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V
+Landroid/transition/Transition;->matchNames(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+Landroid/transition/Transition;->matchStartAndEnd(Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;)V
+Landroid/transition/Transition;->MATCH_FIRST:I
+Landroid/transition/Transition;->MATCH_ID_STR:Ljava/lang/String;
+Landroid/transition/Transition;->MATCH_INSTANCE_STR:Ljava/lang/String;
+Landroid/transition/Transition;->MATCH_ITEM_ID_STR:Ljava/lang/String;
+Landroid/transition/Transition;->MATCH_LAST:I
+Landroid/transition/Transition;->MATCH_NAME_STR:Ljava/lang/String;
+Landroid/transition/Transition;->MATCH_VIEW_NAME_STR:Ljava/lang/String;
+Landroid/transition/Transition;->mCanRemoveViews:Z
+Landroid/transition/Transition;->mCurrentAnimators:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mDuration:J
+Landroid/transition/Transition;->mEnded:Z
+Landroid/transition/Transition;->mEndValues:Landroid/transition/TransitionValuesMaps;
+Landroid/transition/Transition;->mEndValuesList:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mEpicenterCallback:Landroid/transition/Transition$EpicenterCallback;
+Landroid/transition/Transition;->mInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/transition/Transition;->mListeners:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mMatchOrder:[I
+Landroid/transition/Transition;->mName:Ljava/lang/String;
+Landroid/transition/Transition;->mNameOverrides:Landroid/util/ArrayMap;
+Landroid/transition/Transition;->mNumInstances:I
+Landroid/transition/Transition;->mParent:Landroid/transition/TransitionSet;
+Landroid/transition/Transition;->mPathMotion:Landroid/transition/PathMotion;
+Landroid/transition/Transition;->mPaused:Z
+Landroid/transition/Transition;->mPropagation:Landroid/transition/TransitionPropagation;
+Landroid/transition/Transition;->mSceneRoot:Landroid/view/ViewGroup;
+Landroid/transition/Transition;->mStartDelay:J
+Landroid/transition/Transition;->mStartValues:Landroid/transition/TransitionValuesMaps;
+Landroid/transition/Transition;->mStartValuesList:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetChildExcludes:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetExcludes:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetIdChildExcludes:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetIdExcludes:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetIds:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetNameExcludes:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetNames:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargets:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetTypeChildExcludes:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetTypeExcludes:Ljava/util/ArrayList;
+Landroid/transition/Transition;->mTargetTypes:Ljava/util/ArrayList;
+Landroid/transition/Transition;->parseMatchOrder(Ljava/lang/String;)[I
+Landroid/transition/Transition;->pause(Landroid/view/View;)V
+Landroid/transition/Transition;->playTransition(Landroid/view/ViewGroup;)V
+Landroid/transition/Transition;->resume(Landroid/view/View;)V
+Landroid/transition/Transition;->runAnimator(Landroid/animation/Animator;Landroid/util/ArrayMap;)V
+Landroid/transition/Transition;->runAnimators()V
+Landroid/transition/Transition;->setCanRemoveViews(Z)V
+Landroid/transition/Transition;->setNameOverrides(Landroid/util/ArrayMap;)V
+Landroid/transition/Transition;->setSceneRoot(Landroid/view/ViewGroup;)Landroid/transition/Transition;
+Landroid/transition/Transition;->sRunningAnimators:Ljava/lang/ThreadLocal;
+Landroid/transition/Transition;->start()V
+Landroid/transition/Transition;->STRAIGHT_PATH_MOTION:Landroid/transition/PathMotion;
+Landroid/transition/Transition;->toString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/transition/TransitionInflater;-><init>(Landroid/content/Context;)V
+Landroid/transition/TransitionInflater;->createCustom(Landroid/util/AttributeSet;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
+Landroid/transition/TransitionInflater;->createTransitionFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)Landroid/transition/Transition;
+Landroid/transition/TransitionInflater;->createTransitionManagerFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/view/ViewGroup;)Landroid/transition/TransitionManager;
+Landroid/transition/TransitionInflater;->getTargetIds(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)V
+Landroid/transition/TransitionInflater;->loadTransition(Landroid/util/AttributeSet;Landroid/view/ViewGroup;Landroid/transition/TransitionManager;)V
+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;
+Landroid/transition/TransitionManager$MultiListener;->mViewTreeObserver:Landroid/view/ViewTreeObserver;
+Landroid/transition/TransitionManager$MultiListener;->removeListeners()V
+Landroid/transition/TransitionManager;->changeScene(Landroid/transition/Scene;Landroid/transition/Transition;)V
+Landroid/transition/TransitionManager;->EMPTY_STRINGS:[Ljava/lang/String;
+Landroid/transition/TransitionManager;->getDefaultTransition()Landroid/transition/Transition;
+Landroid/transition/TransitionManager;->LOG_TAG:Ljava/lang/String;
+Landroid/transition/TransitionManager;->mScenePairTransitions:Landroid/util/ArrayMap;
+Landroid/transition/TransitionManager;->mSceneTransitions:Landroid/util/ArrayMap;
+Landroid/transition/TransitionManager;->sceneChangeRunTransition(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
+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
+Landroid/transition/TransitionSet;->capturePropagationValues(Landroid/transition/TransitionValues;)V
+Landroid/transition/TransitionSet;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+Landroid/transition/TransitionSet;->forceToEnd(Landroid/view/ViewGroup;)V
+Landroid/transition/TransitionSet;->mCurrentListeners:I
+Landroid/transition/TransitionSet;->mPlayTogether:Z
+Landroid/transition/TransitionSet;->mStarted:Z
+Landroid/transition/TransitionSet;->mTransitions:Ljava/util/ArrayList;
+Landroid/transition/TransitionSet;->pause(Landroid/view/View;)V
+Landroid/transition/TransitionSet;->resume(Landroid/view/View;)V
+Landroid/transition/TransitionSet;->runAnimators()V
+Landroid/transition/TransitionSet;->setCanRemoveViews(Z)V
+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
+Landroid/transition/Visibility$DisappearListener;->mFinalVisibility:I
+Landroid/transition/Visibility$DisappearListener;->mLayoutSuppressed:Z
+Landroid/transition/Visibility$DisappearListener;->mParent:Landroid/view/ViewGroup;
+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
+Landroid/transition/Visibility$VisibilityInfo;->fadeIn:Z
+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
+Landroid/transition/Visibility;->mSuppressLayout:Z
+Landroid/transition/Visibility;->PROPNAME_PARENT:Ljava/lang/String;
+Landroid/transition/Visibility;->PROPNAME_SCREEN_LOCATION:Ljava/lang/String;
+Landroid/transition/Visibility;->PROPNAME_VISIBILITY:Ljava/lang/String;
+Landroid/transition/Visibility;->setSuppressLayout(Z)V
+Landroid/transition/Visibility;->sTransitionProperties:[Ljava/lang/String;
+Landroid/transition/VisibilityPropagation;->getViewCoordinate(Landroid/transition/TransitionValues;I)I
+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;
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->generateApkVerity(Ljava/lang/String;Landroid/util/apk/ByteBufferFactory;)[B
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->generateFsverityRootHash(Ljava/lang/String;)[B
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->getVerityRootHash(Ljava/lang/String;)[B
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->hasSignature(Ljava/lang/String;)Z
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->isSupportedSignatureAlgorithm(I)Z
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->plsCertsNoVerifyOnlyCerts(Ljava/lang/String;)[[Ljava/security/cert/X509Certificate;
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->SF_ATTRIBUTE_ANDROID_APK_SIGNED_ID:I
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->STRIPPING_PROTECTION_ATTR_ID:I
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/io/RandomAccessFile;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
+Landroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/lang/String;)[[Ljava/security/cert/X509Certificate;
+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;
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->generateApkVerity(Ljava/lang/String;Landroid/util/apk/ByteBufferFactory;)[B
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->generateFsverityRootHash(Ljava/lang/String;)[B
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->getVerityRootHash(Ljava/lang/String;)[B
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->hasSignature(Ljava/lang/String;)Z
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->isSupportedSignatureAlgorithm(I)Z
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->plsCertsNoVerifyOnlyCerts(Ljava/lang/String;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->PROOF_OF_ROTATION_ATTR_ID:I
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->SF_ATTRIBUTE_ANDROID_APK_SIGNED_ID:I
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/io/RandomAccessFile;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/lang/String;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+Landroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/lang/String;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+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;
+Landroid/util/apk/ApkSignatureVerifier;->generateApkVerity(Ljava/lang/String;Landroid/util/apk/ByteBufferFactory;)[B
+Landroid/util/apk/ApkSignatureVerifier;->generateFsverityRootHash(Ljava/lang/String;)[B
+Landroid/util/apk/ApkSignatureVerifier;->getVerityRootHash(Ljava/lang/String;)[B
+Landroid/util/apk/ApkSignatureVerifier;->loadCertificates(Landroid/util/jar/StrictJarFile;Ljava/util/zip/ZipEntry;)[[Ljava/security/cert/Certificate;
+Landroid/util/apk/ApkSignatureVerifier;->plsCertsNoVerifyOnlyCerts(Ljava/lang/String;I)Landroid/content/pm/PackageParser$SigningDetails;
+Landroid/util/apk/ApkSignatureVerifier;->readFullyIgnoringContents(Ljava/io/InputStream;)V
+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
+Landroid/util/ArrayMap;->BASE_SIZE:I
+Landroid/util/ArrayMap;->binarySearchHashes([III)I
+Landroid/util/ArrayMap;->CONCURRENT_MODIFICATION_EXCEPTIONS:Z
+Landroid/util/ArrayMap;->DEBUG:Z
+Landroid/util/ArrayMap;->erase()V
+Landroid/util/ArrayMap;->getCollection()Landroid/util/MapCollections;
+Landroid/util/ArrayMap;->mCollections:Landroid/util/MapCollections;
+Landroid/util/ArrayMap;->mIdentityHashCode:Z
+Landroid/util/ArrayMap;->TAG:Ljava/lang/String;
+Landroid/util/ArrayMap;->validate()V
+Landroid/util/ArraySet;-><init>(IZ)V
+Landroid/util/ArraySet;->append(Ljava/lang/Object;)V
+Landroid/util/ArraySet;->BASE_SIZE:I
+Landroid/util/ArraySet;->CACHE_SIZE:I
+Landroid/util/ArraySet;->DEBUG:Z
+Landroid/util/ArraySet;->getCollection()Landroid/util/MapCollections;
+Landroid/util/ArraySet;->mCollections:Landroid/util/MapCollections;
+Landroid/util/ArraySet;->mIdentityHashCode:Z
+Landroid/util/ArraySet;->sBaseCache:[Ljava/lang/Object;
+Landroid/util/ArraySet;->sBaseCacheSize:I
+Landroid/util/ArraySet;->sTwiceBaseCache:[Ljava/lang/Object;
+Landroid/util/ArraySet;->sTwiceBaseCacheSize:I
+Landroid/util/ArraySet;->TAG:Ljava/lang/String;
+Landroid/util/AtomicFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
+Landroid/util/AtomicFile;->exists()Z
+Landroid/util/AtomicFile;->getLastModifiedTime()J
+Landroid/util/AtomicFile;->mBackupName:Ljava/io/File;
+Landroid/util/AtomicFile;->mBaseName:Ljava/io/File;
+Landroid/util/AtomicFile;->mCommitTag:Ljava/lang/String;
+Landroid/util/AtomicFile;->mStartTime:J
+Landroid/util/AtomicFile;->openAppend()Ljava/io/FileOutputStream;
+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
+Landroid/util/Base64$Decoder;->DECODE_WEBSAFE:[I
+Landroid/util/Base64$Decoder;->EQUALS:I
+Landroid/util/Base64$Decoder;->maxOutputSize(I)I
+Landroid/util/Base64$Decoder;->process([BIIZ)Z
+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
+Landroid/util/Base64$Encoder;->do_cr:Z
+Landroid/util/Base64$Encoder;->do_newline:Z
+Landroid/util/Base64$Encoder;->do_padding:Z
+Landroid/util/Base64$Encoder;->ENCODE:[B
+Landroid/util/Base64$Encoder;->ENCODE_WEBSAFE:[B
+Landroid/util/Base64$Encoder;->LINE_GROUPS:I
+Landroid/util/Base64$Encoder;->maxOutputSize(I)I
+Landroid/util/Base64$Encoder;->process([BIIZ)Z
+Landroid/util/Base64$Encoder;->tail:[B
+Landroid/util/Base64$Encoder;->tailLen:I
+Landroid/util/Base64InputStream;-><init>(Ljava/io/InputStream;IZ)V
+Landroid/util/Base64InputStream;->BUFFER_SIZE:I
+Landroid/util/Base64InputStream;->coder:Landroid/util/Base64$Coder;
+Landroid/util/Base64InputStream;->EMPTY:[B
+Landroid/util/Base64InputStream;->eof:Z
+Landroid/util/Base64InputStream;->inputBuffer:[B
+Landroid/util/Base64InputStream;->outputEnd:I
+Landroid/util/Base64InputStream;->outputStart:I
+Landroid/util/Base64InputStream;->refill()V
+Landroid/util/Base64OutputStream;->bpos:I
+Landroid/util/Base64OutputStream;->buffer:[B
+Landroid/util/Base64OutputStream;->coder:Landroid/util/Base64$Coder;
+Landroid/util/Base64OutputStream;->embiggen([BI)[B
+Landroid/util/Base64OutputStream;->EMPTY:[B
+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
+Landroid/util/BinaryLogEntry$Elem;->EVENT_TYPE_LIST_STOP:I
+Landroid/util/BinaryLogEntry$Elem;->EVENT_TYPE_LONG:I
+Landroid/util/BinaryLogEntry$Elem;->EVENT_TYPE_STRING:I
+Landroid/util/BinaryLogEntry$Elem;->EVENT_TYPE_UNKNOWN:I
+Landroid/util/BinaryLogEntry$Elem;->TYPE:J
+Landroid/util/BinaryLogEntry$Elem;->VAL_FLOAT:J
+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
+Landroid/util/BinaryLogEntry;->PID:J
+Landroid/util/BinaryLogEntry;->SEC:J
+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
+Landroid/util/ByteStringUtils;->HEX_LOWERCASE_ARRAY:[C
+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;
+Landroid/util/DataUnit;->KILOBYTES:Landroid/util/DataUnit;
+Landroid/util/DataUnit;->MEBIBYTES:Landroid/util/DataUnit;
+Landroid/util/DataUnit;->MEGABYTES:Landroid/util/DataUnit;
+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
+Landroid/util/DayOfMonthCursor;->getSelectedDayOfMonth()I
+Landroid/util/DayOfMonthCursor;->getSelectedMonthOffset()I
+Landroid/util/DayOfMonthCursor;->getSelectedRow()I
+Landroid/util/DayOfMonthCursor;->isSelected(II)Z
+Landroid/util/DayOfMonthCursor;->left()Z
+Landroid/util/DayOfMonthCursor;->mColumn:I
+Landroid/util/DayOfMonthCursor;->mRow:I
+Landroid/util/DayOfMonthCursor;->right()Z
+Landroid/util/DayOfMonthCursor;->setSelectedDayOfMonth(I)V
+Landroid/util/DayOfMonthCursor;->setSelectedRowColumn(II)V
+Landroid/util/DayOfMonthCursor;->up()Z
+Landroid/util/DebugUtils;-><init>()V
+Landroid/util/DebugUtils;->constNameWithoutPrefix(Ljava/lang/String;Ljava/lang/reflect/Field;)Ljava/lang/String;
+Landroid/util/DebugUtils;->flagsToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/util/DebugUtils;->printSizeValue(Ljava/io/PrintWriter;J)V
+Landroid/util/DebugUtils;->sizeValueToString(JLjava/lang/StringBuilder;)Ljava/lang/String;
+Landroid/util/DebugUtils;->valueToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/util/DisplayMetrics;->DENSITY_DEFAULT_SCALE:F
+Landroid/util/DisplayMetrics;->equalsPhysical(Landroid/util/DisplayMetrics;)Z
+Landroid/util/DisplayMetrics;->getDeviceDensity()I
+Landroid/util/DisplayMetrics;->noncompatDensity:F
+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
+Landroid/util/EventLog$Event;->clearError()V
+Landroid/util/EventLog$Event;->DATA_OFFSET:I
+Landroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object;
+Landroid/util/EventLog$Event;->FLOAT_TYPE:B
+Landroid/util/EventLog$Event;->fromBytes([B)Landroid/util/EventLog$Event;
+Landroid/util/EventLog$Event;->getBytes()[B
+Landroid/util/EventLog$Event;->getLastError()Ljava/lang/Exception;
+Landroid/util/EventLog$Event;->HEADER_SIZE_OFFSET:I
+Landroid/util/EventLog$Event;->INT_TYPE:B
+Landroid/util/EventLog$Event;->LENGTH_OFFSET:I
+Landroid/util/EventLog$Event;->LIST_TYPE:B
+Landroid/util/EventLog$Event;->LONG_TYPE:B
+Landroid/util/EventLog$Event;->mBuffer:Ljava/nio/ByteBuffer;
+Landroid/util/EventLog$Event;->mLastWtf:Ljava/lang/Exception;
+Landroid/util/EventLog$Event;->NANOSECONDS_OFFSET:I
+Landroid/util/EventLog$Event;->PROCESS_OFFSET:I
+Landroid/util/EventLog$Event;->SECONDS_OFFSET:I
+Landroid/util/EventLog$Event;->STRING_TYPE:B
+Landroid/util/EventLog$Event;->THREAD_OFFSET:I
+Landroid/util/EventLog$Event;->UID_OFFSET:I
+Landroid/util/EventLog$Event;->V1_PAYLOAD_START:I
+Landroid/util/EventLog;-><init>()V
+Landroid/util/EventLog;->COMMENT_PATTERN:Ljava/lang/String;
+Landroid/util/EventLog;->readTagsFile()V
+Landroid/util/EventLog;->sTagCodes:Ljava/util/HashMap;
+Landroid/util/EventLog;->sTagNames:Ljava/util/HashMap;
+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
+Landroid/util/EventLogTag$ValueDescriptor;->ID:I
+Landroid/util/EventLogTag$ValueDescriptor;->INT:I
+Landroid/util/EventLogTag$ValueDescriptor;->LIST:I
+Landroid/util/EventLogTag$ValueDescriptor;->LONG:I
+Landroid/util/EventLogTag$ValueDescriptor;->MILLISECONDS:I
+Landroid/util/EventLogTag$ValueDescriptor;->NAME:J
+Landroid/util/EventLogTag$ValueDescriptor;->OBJECTS:I
+Landroid/util/EventLogTag$ValueDescriptor;->PERCENT:I
+Landroid/util/EventLogTag$ValueDescriptor;->SECONDS:I
+Landroid/util/EventLogTag$ValueDescriptor;->STRING:I
+Landroid/util/EventLogTag$ValueDescriptor;->TYPE:J
+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;
+Landroid/util/ExceptionUtils;->getCompleteMessage(Ljava/lang/Throwable;)Ljava/lang/String;
+Landroid/util/ExceptionUtils;->getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
+Landroid/util/ExceptionUtils;->maybeUnwrapIOException(Ljava/lang/RuntimeException;)V
+Landroid/util/ExceptionUtils;->propagate(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
+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;
+Landroid/util/FeatureFlagUtils;->FFLAG_PREFIX:Ljava/lang/String;
+Landroid/util/FeatureFlagUtils;->getAllFeatureFlags()Ljava/util/Map;
+Landroid/util/FeatureFlagUtils;->isEnabled(Landroid/content/Context;Ljava/lang/String;)Z
+Landroid/util/FeatureFlagUtils;->setEnabled(Landroid/content/Context;Ljava/lang/String;Z)V
+Landroid/util/FloatMath;-><init>()V
+Landroid/util/Half;->FP16_COMBINED:I
+Landroid/util/Half;->FP16_EXPONENT_BIAS:I
+Landroid/util/Half;->FP16_EXPONENT_MASK:I
+Landroid/util/Half;->FP16_EXPONENT_MAX:I
+Landroid/util/Half;->FP16_EXPONENT_SHIFT:I
+Landroid/util/Half;->FP16_SIGNIFICAND_MASK:I
+Landroid/util/Half;->FP16_SIGN_MASK:I
+Landroid/util/Half;->FP16_SIGN_SHIFT:I
+Landroid/util/Half;->FP32_DENORMAL_FLOAT:F
+Landroid/util/Half;->FP32_DENORMAL_MAGIC:I
+Landroid/util/Half;->FP32_EXPONENT_BIAS:I
+Landroid/util/Half;->FP32_EXPONENT_MASK:I
+Landroid/util/Half;->FP32_EXPONENT_SHIFT:I
+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;
+Landroid/util/IconDrawableFactory;->getShadowedIcon(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+Landroid/util/IconDrawableFactory;->getUserBadgeColor(Landroid/os/UserManager;I)I
+Landroid/util/IconDrawableFactory;->mContext:Landroid/content/Context;
+Landroid/util/IconDrawableFactory;->mEmbedShadow:Z
+Landroid/util/IconDrawableFactory;->mLauncherIcons:Landroid/util/LauncherIcons;
+Landroid/util/IconDrawableFactory;->mPm:Landroid/content/pm/PackageManager;
+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
+Landroid/util/IntArray;->add(I)V
+Landroid/util/IntArray;->add(II)V
+Landroid/util/IntArray;->addAll(Landroid/util/IntArray;)V
+Landroid/util/IntArray;->binarySearch(I)I
+Landroid/util/IntArray;->checkBounds(I)V
+Landroid/util/IntArray;->clear()V
+Landroid/util/IntArray;->ensureCapacity(I)V
+Landroid/util/IntArray;->fromArray([II)Landroid/util/IntArray;
+Landroid/util/IntArray;->get(I)I
+Landroid/util/IntArray;->indexOf(I)I
+Landroid/util/IntArray;->MIN_CAPACITY_INCREMENT:I
+Landroid/util/IntArray;->mSize:I
+Landroid/util/IntArray;->mValues:[I
+Landroid/util/IntArray;->remove(I)V
+Landroid/util/IntArray;->resize(I)V
+Landroid/util/IntArray;->set(II)V
+Landroid/util/IntArray;->size()I
+Landroid/util/IntArray;->toArray()[I
+Landroid/util/IntArray;->wrap([I)Landroid/util/IntArray;
+Landroid/util/JsonReader;->advance()Landroid/util/JsonToken;
+Landroid/util/JsonReader;->buffer:[C
+Landroid/util/JsonReader;->bufferStartColumn:I
+Landroid/util/JsonReader;->bufferStartLine:I
+Landroid/util/JsonReader;->checkLenient()V
+Landroid/util/JsonReader;->decodeLiteral()Landroid/util/JsonToken;
+Landroid/util/JsonReader;->decodeNumber([CII)Landroid/util/JsonToken;
+Landroid/util/JsonReader;->expect(Landroid/util/JsonToken;)V
+Landroid/util/JsonReader;->FALSE:Ljava/lang/String;
+Landroid/util/JsonReader;->fillBuffer(I)Z
+Landroid/util/JsonReader;->getColumnNumber()I
+Landroid/util/JsonReader;->getLineNumber()I
+Landroid/util/JsonReader;->getSnippet()Ljava/lang/CharSequence;
+Landroid/util/JsonReader;->in:Ljava/io/Reader;
+Landroid/util/JsonReader;->lenient:Z
+Landroid/util/JsonReader;->limit:I
+Landroid/util/JsonReader;->name:Ljava/lang/String;
+Landroid/util/JsonReader;->nextInArray(Z)Landroid/util/JsonToken;
+Landroid/util/JsonReader;->nextInObject(Z)Landroid/util/JsonToken;
+Landroid/util/JsonReader;->nextLiteral(Z)Ljava/lang/String;
+Landroid/util/JsonReader;->nextNonWhitespace()I
+Landroid/util/JsonReader;->nextString(C)Ljava/lang/String;
+Landroid/util/JsonReader;->nextValue()Landroid/util/JsonToken;
+Landroid/util/JsonReader;->objectValue()Landroid/util/JsonToken;
+Landroid/util/JsonReader;->peekStack()Landroid/util/JsonScope;
+Landroid/util/JsonReader;->pop()Landroid/util/JsonScope;
+Landroid/util/JsonReader;->pos:I
+Landroid/util/JsonReader;->push(Landroid/util/JsonScope;)V
+Landroid/util/JsonReader;->readEscapeCharacter()C
+Landroid/util/JsonReader;->readLiteral()Landroid/util/JsonToken;
+Landroid/util/JsonReader;->replaceTop(Landroid/util/JsonScope;)V
+Landroid/util/JsonReader;->skipping:Z
+Landroid/util/JsonReader;->skipTo(Ljava/lang/String;)Z
+Landroid/util/JsonReader;->skipToEndOfLine()V
+Landroid/util/JsonReader;->stack:Ljava/util/List;
+Landroid/util/JsonReader;->stringPool:Llibcore/internal/StringPool;
+Landroid/util/JsonReader;->syntaxError(Ljava/lang/String;)Ljava/io/IOException;
+Landroid/util/JsonReader;->token:Landroid/util/JsonToken;
+Landroid/util/JsonReader;->TRUE:Ljava/lang/String;
+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;
+Landroid/util/JsonScope;->EMPTY_DOCUMENT:Landroid/util/JsonScope;
+Landroid/util/JsonScope;->EMPTY_OBJECT:Landroid/util/JsonScope;
+Landroid/util/JsonScope;->NONEMPTY_ARRAY:Landroid/util/JsonScope;
+Landroid/util/JsonScope;->NONEMPTY_DOCUMENT:Landroid/util/JsonScope;
+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;
+Landroid/util/JsonWriter;->indent:Ljava/lang/String;
+Landroid/util/JsonWriter;->lenient:Z
+Landroid/util/JsonWriter;->newline()V
+Landroid/util/JsonWriter;->open(Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter;
+Landroid/util/JsonWriter;->out:Ljava/io/Writer;
+Landroid/util/JsonWriter;->peek()Landroid/util/JsonScope;
+Landroid/util/JsonWriter;->replaceTop(Landroid/util/JsonScope;)V
+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
+Landroid/util/KeyValueListParser;->getFloat(Ljava/lang/String;F)F
+Landroid/util/KeyValueListParser;->getInt(Ljava/lang/String;I)I
+Landroid/util/KeyValueListParser;->getIntArray(Ljava/lang/String;[I)[I
+Landroid/util/KeyValueListParser;->getLong(Ljava/lang/String;J)J
+Landroid/util/KeyValueListParser;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Landroid/util/KeyValueListParser;->keyAt(I)Ljava/lang/String;
+Landroid/util/KeyValueListParser;->mSplitter:Landroid/text/TextUtils$StringSplitter;
+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;
+Landroid/util/KeyValueSettingObserver;->mParser:Landroid/util/KeyValueListParser;
+Landroid/util/KeyValueSettingObserver;->mResolver:Landroid/content/ContentResolver;
+Landroid/util/KeyValueSettingObserver;->mSettingUri:Landroid/net/Uri;
+Landroid/util/KeyValueSettingObserver;->setParserValue()V
+Landroid/util/KeyValueSettingObserver;->start()V
+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;
+Landroid/util/LauncherIcons;->getBadgeDrawable(II)Landroid/graphics/drawable/Drawable;
+Landroid/util/LauncherIcons;->getShadowBitmap(Landroid/graphics/drawable/AdaptiveIconDrawable;)Landroid/graphics/Bitmap;
+Landroid/util/LauncherIcons;->ICON_SIZE_BLUR_FACTOR:F
+Landroid/util/LauncherIcons;->ICON_SIZE_KEY_SHADOW_DELTA_FACTOR:F
+Landroid/util/LauncherIcons;->KEY_SHADOW_ALPHA:I
+Landroid/util/LauncherIcons;->mIconSize:I
+Landroid/util/LauncherIcons;->mRes:Landroid/content/res/Resources;
+Landroid/util/LauncherIcons;->mShadowCache:Landroid/util/SparseArray;
+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
+Landroid/util/Log;->LOG_ID_CRASH:I
+Landroid/util/Log;->LOG_ID_EVENTS:I
+Landroid/util/Log;->LOG_ID_MAIN:I
+Landroid/util/Log;->LOG_ID_RADIO:I
+Landroid/util/Log;->LOG_ID_SYSTEM:I
+Landroid/util/Log;->printlns(IILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/util/Log;->setWtfHandler(Landroid/util/Log$TerribleFailureHandler;)Landroid/util/Log$TerribleFailureHandler;
+Landroid/util/Log;->sWtfHandler:Landroid/util/Log$TerribleFailureHandler;
+Landroid/util/Log;->wtfQuiet(ILjava/lang/String;Ljava/lang/String;Z)V
+Landroid/util/Log;->wtfStack(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/util/LogPrinter;-><init>(ILjava/lang/String;I)V
+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
+Landroid/util/LongArray;->addAll(Landroid/util/LongArray;)V
+Landroid/util/LongArray;->checkBounds(I)V
+Landroid/util/LongArray;->clear()V
+Landroid/util/LongArray;->elementsEqual(Landroid/util/LongArray;Landroid/util/LongArray;)Z
+Landroid/util/LongArray;->ensureCapacity(I)V
+Landroid/util/LongArray;->fromArray([JI)Landroid/util/LongArray;
+Landroid/util/LongArray;->indexOf(J)I
+Landroid/util/LongArray;->MIN_CAPACITY_INCREMENT:I
+Landroid/util/LongArray;->mSize:I
+Landroid/util/LongArray;->mValues:[J
+Landroid/util/LongArray;->remove(I)V
+Landroid/util/LongArray;->resize(I)V
+Landroid/util/LongArray;->set(IJ)V
+Landroid/util/LongArray;->toArray()[J
+Landroid/util/LongArray;->wrap([J)Landroid/util/LongArray;
+Landroid/util/LongSparseArray;->DELETED:Ljava/lang/Object;
+Landroid/util/LongSparseArray;->gc()V
+Landroid/util/LongSparseArray;->indexOfValueByValue(Ljava/lang/Object;)I
+Landroid/util/LongSparseArray;->mGarbage:Z
+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
+Landroid/util/LongSparseLongArray;->clear()V
+Landroid/util/LongSparseLongArray;->delete(J)V
+Landroid/util/LongSparseLongArray;->get(J)J
+Landroid/util/LongSparseLongArray;->get(JJ)J
+Landroid/util/LongSparseLongArray;->indexOfKey(J)I
+Landroid/util/LongSparseLongArray;->indexOfValue(J)I
+Landroid/util/LongSparseLongArray;->keyAt(I)J
+Landroid/util/LongSparseLongArray;->put(JJ)V
+Landroid/util/LongSparseLongArray;->removeAt(I)V
+Landroid/util/LongSparseLongArray;->size()I
+Landroid/util/LongSparseLongArray;->valueAt(I)J
+Landroid/util/LruCache;->createCount:I
+Landroid/util/LruCache;->evictionCount:I
+Landroid/util/LruCache;->hitCount:I
+Landroid/util/LruCache;->maxSize:I
+Landroid/util/LruCache;->missCount:I
+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;
+Landroid/util/MapCollections;->colGetMap()Ljava/util/Map;
+Landroid/util/MapCollections;->colGetSize()I
+Landroid/util/MapCollections;->colIndexOfKey(Ljava/lang/Object;)I
+Landroid/util/MapCollections;->colIndexOfValue(Ljava/lang/Object;)I
+Landroid/util/MapCollections;->colPut(Ljava/lang/Object;Ljava/lang/Object;)V
+Landroid/util/MapCollections;->colRemoveAt(I)V
+Landroid/util/MapCollections;->colSetValue(ILjava/lang/Object;)Ljava/lang/Object;
+Landroid/util/MapCollections;->containsAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
+Landroid/util/MapCollections;->equalsSetHelper(Ljava/util/Set;Ljava/lang/Object;)Z
+Landroid/util/MapCollections;->getEntrySet()Ljava/util/Set;
+Landroid/util/MapCollections;->getKeySet()Ljava/util/Set;
+Landroid/util/MapCollections;->getValues()Ljava/util/Collection;
+Landroid/util/MapCollections;->mEntrySet:Landroid/util/MapCollections$EntrySet;
+Landroid/util/MapCollections;->mKeySet:Landroid/util/MapCollections$KeySet;
+Landroid/util/MapCollections;->mValues:Landroid/util/MapCollections$ValuesCollection;
+Landroid/util/MapCollections;->removeAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
+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
+Landroid/util/MathUtils;->asin(F)F
+Landroid/util/MathUtils;->atan(F)F
+Landroid/util/MathUtils;->atan2(FF)F
+Landroid/util/MathUtils;->constrain(JJJ)J
+Landroid/util/MathUtils;->cross(FFFF)F
+Landroid/util/MathUtils;->degrees(F)F
+Landroid/util/MathUtils;->DEG_TO_RAD:F
+Landroid/util/MathUtils;->dist(FFFF)F
+Landroid/util/MathUtils;->dist(FFFFFF)F
+Landroid/util/MathUtils;->dot(FFFF)F
+Landroid/util/MathUtils;->exp(F)F
+Landroid/util/MathUtils;->lerpDeg(FFF)F
+Landroid/util/MathUtils;->log(F)F
+Landroid/util/MathUtils;->mag(FF)F
+Landroid/util/MathUtils;->mag(FFF)F
+Landroid/util/MathUtils;->map(FFFFF)F
+Landroid/util/MathUtils;->max(FF)F
+Landroid/util/MathUtils;->max(FFF)F
+Landroid/util/MathUtils;->max(III)F
+Landroid/util/MathUtils;->min(FF)F
+Landroid/util/MathUtils;->min(FFF)F
+Landroid/util/MathUtils;->min(II)F
+Landroid/util/MathUtils;->min(III)F
+Landroid/util/MathUtils;->norm(FFF)F
+Landroid/util/MathUtils;->pow(FF)F
+Landroid/util/MathUtils;->radians(F)F
+Landroid/util/MathUtils;->RAD_TO_DEG:F
+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;
+Landroid/util/MemoryIntArray;->enforceNotClosed()V
+Landroid/util/MemoryIntArray;->enforceValidIndex(I)V
+Landroid/util/MemoryIntArray;->enforceWritable()V
+Landroid/util/MemoryIntArray;->get(I)I
+Landroid/util/MemoryIntArray;->getMaxSize()I
+Landroid/util/MemoryIntArray;->isClosed()Z
+Landroid/util/MemoryIntArray;->isWritable()Z
+Landroid/util/MemoryIntArray;->MAX_SIZE:I
+Landroid/util/MemoryIntArray;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/util/MemoryIntArray;->mFd:I
+Landroid/util/MemoryIntArray;->mIsOwner:Z
+Landroid/util/MemoryIntArray;->mMemoryAddr:J
+Landroid/util/MemoryIntArray;->nativeClose(IJZ)V
+Landroid/util/MemoryIntArray;->nativeCreate(Ljava/lang/String;I)I
+Landroid/util/MemoryIntArray;->nativeGet(IJI)I
+Landroid/util/MemoryIntArray;->nativeOpen(IZ)J
+Landroid/util/MemoryIntArray;->nativeSet(IJII)V
+Landroid/util/MemoryIntArray;->nativeSize(I)I
+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
+Landroid/util/MergedConfiguration;-><init>(Landroid/os/Parcel;)V
+Landroid/util/MergedConfiguration;-><init>(Landroid/util/MergedConfiguration;)V
+Landroid/util/MergedConfiguration;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/util/MergedConfiguration;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+Landroid/util/MergedConfiguration;->getGlobalConfiguration()Landroid/content/res/Configuration;
+Landroid/util/MergedConfiguration;->getMergedConfiguration()Landroid/content/res/Configuration;
+Landroid/util/MergedConfiguration;->getOverrideConfiguration()Landroid/content/res/Configuration;
+Landroid/util/MergedConfiguration;->mGlobalConfig:Landroid/content/res/Configuration;
+Landroid/util/MergedConfiguration;->mMergedConfig:Landroid/content/res/Configuration;
+Landroid/util/MergedConfiguration;->mOverrideConfig:Landroid/content/res/Configuration;
+Landroid/util/MergedConfiguration;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/util/MergedConfiguration;->setConfiguration(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
+Landroid/util/MergedConfiguration;->setGlobalConfiguration(Landroid/content/res/Configuration;)V
+Landroid/util/MergedConfiguration;->setOverrideConfiguration(Landroid/content/res/Configuration;)V
+Landroid/util/MergedConfiguration;->setTo(Landroid/util/MergedConfiguration;)V
+Landroid/util/MergedConfiguration;->unset()V
+Landroid/util/MergedConfiguration;->updateMergedConfig()V
+Landroid/util/MonthDisplayHelper;->mCalendar:Ljava/util/Calendar;
+Landroid/util/MonthDisplayHelper;->mNumDaysInMonth:I
+Landroid/util/MonthDisplayHelper;->mNumDaysInPrevMonth:I
+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
+Landroid/util/NtpTrustedTime;->getCacheCertainty()J
+Landroid/util/NtpTrustedTime;->LOGD:Z
+Landroid/util/NtpTrustedTime;->mCachedNtpCertainty:J
+Landroid/util/NtpTrustedTime;->mCachedNtpElapsedRealtime:J
+Landroid/util/NtpTrustedTime;->mCachedNtpTime:J
+Landroid/util/NtpTrustedTime;->mCM:Landroid/net/ConnectivityManager;
+Landroid/util/NtpTrustedTime;->mHasCache:Z
+Landroid/util/NtpTrustedTime;->mServer:Ljava/lang/String;
+Landroid/util/NtpTrustedTime;->mTimeout:J
+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
+Landroid/util/PathParser;->interpolatePathData(Landroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;F)Z
+Landroid/util/PathParser;->LOGTAG:Ljava/lang/String;
+Landroid/util/PathParser;->nCanMorph(JJ)Z
+Landroid/util/PathParser;->nCreateEmptyPathData()J
+Landroid/util/PathParser;->nCreatePathData(J)J
+Landroid/util/PathParser;->nCreatePathDataFromString(Ljava/lang/String;I)J
+Landroid/util/PathParser;->nCreatePathFromPathData(JJ)V
+Landroid/util/PathParser;->nFinalize(J)V
+Landroid/util/PathParser;->nInterpolatePathData(JJJF)Z
+Landroid/util/PathParser;->nParseStringForPath(JLjava/lang/String;I)V
+Landroid/util/PathParser;->nSetPathData(JJ)V
+Landroid/util/Patterns;-><init>()V
+Landroid/util/Patterns;->AUTOLINK_EMAIL_ADDRESS:Ljava/util/regex/Pattern;
+Landroid/util/Patterns;->AUTOLINK_WEB_URL:Ljava/util/regex/Pattern;
+Landroid/util/Patterns;->DOMAIN_NAME_STR:Ljava/lang/String;
+Landroid/util/Patterns;->EMAIL_ADDRESS_DOMAIN:Ljava/lang/String;
+Landroid/util/Patterns;->EMAIL_ADDRESS_LOCAL_PART:Ljava/lang/String;
+Landroid/util/Patterns;->EMAIL_CHAR:Ljava/lang/String;
+Landroid/util/Patterns;->HOST_NAME:Ljava/lang/String;
+Landroid/util/Patterns;->IANA_TOP_LEVEL_DOMAINS:Ljava/lang/String;
+Landroid/util/Patterns;->IP_ADDRESS_STRING:Ljava/lang/String;
+Landroid/util/Patterns;->IRI_LABEL:Ljava/lang/String;
+Landroid/util/Patterns;->LABEL_CHAR:Ljava/lang/String;
+Landroid/util/Patterns;->PATH_AND_QUERY:Ljava/lang/String;
+Landroid/util/Patterns;->PORT_NUMBER:Ljava/lang/String;
+Landroid/util/Patterns;->PROTOCOL:Ljava/lang/String;
+Landroid/util/Patterns;->PUNYCODE_TLD:Ljava/lang/String;
+Landroid/util/Patterns;->RELAXED_DOMAIN_NAME:Ljava/lang/String;
+Landroid/util/Patterns;->STRICT_DOMAIN_NAME:Ljava/lang/String;
+Landroid/util/Patterns;->STRICT_HOST_NAME:Ljava/lang/String;
+Landroid/util/Patterns;->STRICT_TLD:Ljava/lang/String;
+Landroid/util/Patterns;->TLD:Ljava/lang/String;
+Landroid/util/Patterns;->TLD_CHAR:Ljava/lang/String;
+Landroid/util/Patterns;->UCS_CHAR:Ljava/lang/String;
+Landroid/util/Patterns;->USER_INFO:Ljava/lang/String;
+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;
+Landroid/util/PrefixPrinter;->mPrinter:Landroid/util/Printer;
+Landroid/util/PrintStreamPrinter;->mPS:Ljava/io/PrintStream;
+Landroid/util/PrintWriterPrinter;->mPW:Ljava/io/PrintWriter;
+Landroid/util/Property;->mName:Ljava/lang/String;
+Landroid/util/Property;->mType:Ljava/lang/Class;
+Landroid/util/proto/EncodedBuffer;->dumpByteString(Ljava/lang/String;Ljava/lang/String;I[B)I
+Landroid/util/proto/EncodedBuffer;->mBufferCount:I
+Landroid/util/proto/EncodedBuffer;->mBuffers:Ljava/util/ArrayList;
+Landroid/util/proto/EncodedBuffer;->mChunkSize:I
+Landroid/util/proto/EncodedBuffer;->mReadableSize:I
+Landroid/util/proto/EncodedBuffer;->mReadBuffer:[B
+Landroid/util/proto/EncodedBuffer;->mReadBufIndex:I
+Landroid/util/proto/EncodedBuffer;->mReadIndex:I
+Landroid/util/proto/EncodedBuffer;->mReadLimit:I
+Landroid/util/proto/EncodedBuffer;->mWriteBuffer:[B
+Landroid/util/proto/EncodedBuffer;->mWriteBufIndex:I
+Landroid/util/proto/EncodedBuffer;->mWriteIndex:I
+Landroid/util/proto/EncodedBuffer;->nextWriteBuffer()V
+Landroid/util/proto/EncodedBuffer;->TAG:Ljava/lang/String;
+Landroid/util/proto/EncodedBuffer;->zigZag32(I)I
+Landroid/util/proto/EncodedBuffer;->zigZag64(J)J
+Landroid/util/proto/ProtoOutputStream;->assertNotCompacted()V
+Landroid/util/proto/ProtoOutputStream;->compactIfNecessary()V
+Landroid/util/proto/ProtoOutputStream;->compactSizes(I)V
+Landroid/util/proto/ProtoOutputStream;->editEncodedSize(I)I
+Landroid/util/proto/ProtoOutputStream;->endObjectImpl(JZ)V
+Landroid/util/proto/ProtoOutputStream;->FIELD_TYPE_NAMES:[Ljava/lang/String;
+Landroid/util/proto/ProtoOutputStream;->getFieldCountString(J)Ljava/lang/String;
+Landroid/util/proto/ProtoOutputStream;->getFieldIdString(J)Ljava/lang/String;
+Landroid/util/proto/ProtoOutputStream;->getFieldTypeString(J)Ljava/lang/String;
+Landroid/util/proto/ProtoOutputStream;->getTagSize(I)I
+Landroid/util/proto/ProtoOutputStream;->mBuffer:Landroid/util/proto/EncodedBuffer;
+Landroid/util/proto/ProtoOutputStream;->mCompacted:Z
+Landroid/util/proto/ProtoOutputStream;->mCopyBegin:I
+Landroid/util/proto/ProtoOutputStream;->mDepth:I
+Landroid/util/proto/ProtoOutputStream;->mExpectedObjectToken:J
+Landroid/util/proto/ProtoOutputStream;->mNextObjectId:I
+Landroid/util/proto/ProtoOutputStream;->mStream:Ljava/io/OutputStream;
+Landroid/util/proto/ProtoOutputStream;->readRawTag()I
+Landroid/util/proto/ProtoOutputStream;->startObjectImpl(IZ)J
+Landroid/util/proto/ProtoOutputStream;->writeBoolImpl(IZ)V
+Landroid/util/proto/ProtoOutputStream;->writeBytesImpl(I[B)V
+Landroid/util/proto/ProtoOutputStream;->writeDoubleImpl(ID)V
+Landroid/util/proto/ProtoOutputStream;->writeEnumImpl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeFixed32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeFixed64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeFloatImpl(IF)V
+Landroid/util/proto/ProtoOutputStream;->writeInt32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeInt64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeKnownLengthHeader(II)V
+Landroid/util/proto/ProtoOutputStream;->writeObjectImpl(I[B)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedBoolImpl(IZ)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedBytesImpl(I[B)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedDoubleImpl(ID)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedEnumImpl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedFixed32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedFixed64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedFloatImpl(IF)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedInt32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedInt64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedObjectImpl(I[B)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedSFixed32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedSFixed64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedSInt32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedSInt64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedStringImpl(ILjava/lang/String;)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedUInt32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeRepeatedUInt64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeSFixed32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeSFixed64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeSInt32Impl(II)V
+Landroid/util/proto/ProtoOutputStream;->writeSInt64Impl(IJ)V
+Landroid/util/proto/ProtoOutputStream;->writeStringImpl(ILjava/lang/String;)V
+Landroid/util/proto/ProtoOutputStream;->writeUInt32Impl(II)V
+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
+Landroid/util/proto/ProtoUtils;->writeBitWiseFlagsToProtoEnum(Landroid/util/proto/ProtoOutputStream;JI[I[I)V
+Landroid/util/Range;->mLower:Ljava/lang/Comparable;
+Landroid/util/Range;->mUpper:Ljava/lang/Comparable;
+Landroid/util/Rational;->equals(Landroid/util/Rational;)Z
+Landroid/util/Rational;->gcd(II)I
+Landroid/util/Rational;->invalidRational(Ljava/lang/String;)Ljava/lang/NumberFormatException;
+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
+Landroid/util/RecurrenceRule;->buildNever()Landroid/util/RecurrenceRule;
+Landroid/util/RecurrenceRule;->convertPeriod(Ljava/lang/String;)Ljava/time/Period;
+Landroid/util/RecurrenceRule;->convertPeriod(Ljava/time/Period;)Ljava/lang/String;
+Landroid/util/RecurrenceRule;->convertZonedDateTime(Ljava/lang/String;)Ljava/time/ZonedDateTime;
+Landroid/util/RecurrenceRule;->convertZonedDateTime(Ljava/time/ZonedDateTime;)Ljava/lang/String;
+Landroid/util/RecurrenceRule;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/util/RecurrenceRule;->cycleIterator()Ljava/util/Iterator;
+Landroid/util/RecurrenceRule;->end:Ljava/time/ZonedDateTime;
+Landroid/util/RecurrenceRule;->isMonthly()Z
+Landroid/util/RecurrenceRule;->isRecurring()Z
+Landroid/util/RecurrenceRule;->LOGD:Z
+Landroid/util/RecurrenceRule;->period:Ljava/time/Period;
+Landroid/util/RecurrenceRule;->sClock:Ljava/time/Clock;
+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
+Landroid/util/Size;->mWidth:I
+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
+Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/util/Slog;->wtf(Ljava/lang/String;Ljava/lang/Throwable;)I
+Landroid/util/Slog;->wtfQuiet(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/util/SparseArray;->DELETED:Ljava/lang/Object;
+Landroid/util/SparseArray;->gc()V
+Landroid/util/SparseArray;->indexOfValueByValue(Ljava/lang/Object;)I
+Landroid/util/SparseArray;->mGarbage:Z
+Landroid/util/SparseArray;->removeReturnOld(I)Ljava/lang/Object;
+Landroid/util/SparseBooleanArray;->setKeyAt(II)V
+Landroid/util/SparseBooleanArray;->setValueAt(IZ)V
+Landroid/util/SparseIntArray;->copyKeys()[I
+Landroid/util/SparseIntArray;->setValueAt(II)V
+Landroid/util/SparseLongArray;->mKeys:[I
+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
+Landroid/util/SparseSetArray;->keyAt(I)I
+Landroid/util/SparseSetArray;->mData:Landroid/util/SparseArray;
+Landroid/util/SparseSetArray;->remove(I)V
+Landroid/util/SparseSetArray;->remove(ILjava/lang/Object;)Z
+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;
+Landroid/util/Spline;->createSpline([F[F)Landroid/util/Spline;
+Landroid/util/Spline;->interpolate(F)F
+Landroid/util/Spline;->isMonotonic([F)Z
+Landroid/util/Spline;->isStrictlyIncreasing([F)Z
+Landroid/util/StateSet;-><init>()V
+Landroid/util/StateSet;->containsAttribute([[II)Z
+Landroid/util/StateSet;->get(I)[I
+Landroid/util/StateSet;->VIEW_STATE_ACCELERATED:I
+Landroid/util/StateSet;->VIEW_STATE_ACTIVATED:I
+Landroid/util/StateSet;->VIEW_STATE_DRAG_CAN_ACCEPT:I
+Landroid/util/StateSet;->VIEW_STATE_DRAG_HOVERED:I
+Landroid/util/StateSet;->VIEW_STATE_ENABLED:I
+Landroid/util/StateSet;->VIEW_STATE_FOCUSED:I
+Landroid/util/StateSet;->VIEW_STATE_HOVERED:I
+Landroid/util/StateSet;->VIEW_STATE_IDS:[I
+Landroid/util/StateSet;->VIEW_STATE_PRESSED:I
+Landroid/util/StateSet;->VIEW_STATE_SELECTED:I
+Landroid/util/StateSet;->VIEW_STATE_SETS:[[I
+Landroid/util/StateSet;->VIEW_STATE_WINDOW_FOCUSED:I
+Landroid/util/StatsLog;-><init>()V
+Landroid/util/StatsLog;->DEBUG:Z
+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
+Landroid/util/StatsLogInternal;->ACTIVITY_FOREGROUND_STATE_CHANGED__STATE__FOREGROUND:I
+Landroid/util/StatsLogInternal;->ANOMALY_DETECTED:I
+Landroid/util/StatsLogInternal;->ANROCCURRED__FOREGROUND_STATE__BACKGROUND:I
+Landroid/util/StatsLogInternal;->ANROCCURRED__FOREGROUND_STATE__FOREGROUND:I
+Landroid/util/StatsLogInternal;->ANROCCURRED__FOREGROUND_STATE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->ANROCCURRED__IS_INSTANT_APP__FALSE:I
+Landroid/util/StatsLogInternal;->ANROCCURRED__IS_INSTANT_APP__TRUE:I
+Landroid/util/StatsLogInternal;->ANROCCURRED__IS_INSTANT_APP__UNAVAILABLE:I
+Landroid/util/StatsLogInternal;->ANR_OCCURRED:I
+Landroid/util/StatsLogInternal;->APP_BREADCRUMB_REPORTED:I
+Landroid/util/StatsLogInternal;->APP_BREADCRUMB_REPORTED__STATE__START:I
+Landroid/util/StatsLogInternal;->APP_BREADCRUMB_REPORTED__STATE__STOP:I
+Landroid/util/StatsLogInternal;->APP_BREADCRUMB_REPORTED__STATE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->APP_BREADCRUMB_REPORTED__STATE__UNSPECIFIED:I
+Landroid/util/StatsLogInternal;->APP_CRASH_OCCURRED:I
+Landroid/util/StatsLogInternal;->APP_CRASH_OCCURRED__FOREGROUND_STATE__BACKGROUND:I
+Landroid/util/StatsLogInternal;->APP_CRASH_OCCURRED__FOREGROUND_STATE__FOREGROUND:I
+Landroid/util/StatsLogInternal;->APP_CRASH_OCCURRED__FOREGROUND_STATE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->APP_CRASH_OCCURRED__IS_INSTANT_APP__FALSE:I
+Landroid/util/StatsLogInternal;->APP_CRASH_OCCURRED__IS_INSTANT_APP__TRUE:I
+Landroid/util/StatsLogInternal;->APP_CRASH_OCCURRED__IS_INSTANT_APP__UNAVAILABLE:I
+Landroid/util/StatsLogInternal;->APP_DIED:I
+Landroid/util/StatsLogInternal;->APP_START_CANCELED:I
+Landroid/util/StatsLogInternal;->APP_START_CANCELED__TYPE__COLD:I
+Landroid/util/StatsLogInternal;->APP_START_CANCELED__TYPE__HOT:I
+Landroid/util/StatsLogInternal;->APP_START_CANCELED__TYPE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->APP_START_CANCELED__TYPE__WARM:I
+Landroid/util/StatsLogInternal;->APP_START_FULLY_DRAWN:I
+Landroid/util/StatsLogInternal;->APP_START_FULLY_DRAWN__TYPE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->APP_START_FULLY_DRAWN__TYPE__WITHOUT_BUNDLE:I
+Landroid/util/StatsLogInternal;->APP_START_FULLY_DRAWN__TYPE__WITH_BUNDLE:I
+Landroid/util/StatsLogInternal;->APP_START_MEMORY_STATE_CAPTURED:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__REASON__APP_TRANSITION_REASON_UNKNOWN:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__REASON__APP_TRANSITION_RECENTS_ANIM:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__REASON__APP_TRANSITION_SNAPSHOT:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__REASON__APP_TRANSITION_SPLASH_SCREEN:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__REASON__APP_TRANSITION_TIMEOUT:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__REASON__APP_TRANSITION_WINDOWS_DRAWN:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__TYPE__COLD:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__TYPE__HOT:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__TYPE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->APP_START_OCCURRED__TYPE__WARM:I
+Landroid/util/StatsLogInternal;->AUDIO_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->AUDIO_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->AUDIO_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->AUDIO_STATE_CHANGED__STATE__RESET:I
+Landroid/util/StatsLogInternal;->BATTERY_LEVEL_CHANGED:I
+Landroid/util/StatsLogInternal;->BATTERY_SAVER_MODE_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->BATTERY_SAVER_MODE_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->BATTERY_SAVER_MODE_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->BLE_SCAN_RESULT_RECEIVED:I
+Landroid/util/StatsLogInternal;->BLE_SCAN_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->BLE_SCAN_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->BLE_SCAN_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->BLE_SCAN_STATE_CHANGED__STATE__RESET:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ACTIVITY_INFO:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_BYTES_TRANSFER:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_CONNECTION_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_CONNECTION_STATE_CHANGED__STATE__CONNECTION_STATE_CONNECTED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_CONNECTION_STATE_CHANGED__STATE__CONNECTION_STATE_CONNECTING:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_CONNECTION_STATE_CHANGED__STATE__CONNECTION_STATE_DISCONNECTED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_CONNECTION_STATE_CHANGED__STATE__CONNECTION_STATE_DISCONNECTING:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_AIRPLANE_MODE:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_APPLICATION_REQUEST:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_CRASH:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_DISALLOWED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_RESTARTED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_RESTORE_USER_SETTING:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_START_ERROR:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_SYSTEM_BOOT:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_UNSPECIFIED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__REASON__ENABLE_DISABLE_REASON_USER_SWITCH:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__STATE__DISABLED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__STATE__ENABLED:I
+Landroid/util/StatsLogInternal;->BLUETOOTH_ENABLED_STATE_CHANGED__STATE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->BOOT_SEQUENCE_REPORTED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__ABORTED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__ACTIVE:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__CONNECTING:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__DIALING:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__DISCONNECTED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__DISCONNECTING:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__NEW:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__ON_HOLD:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__PULLING:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__RINGING:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__CALL_STATE__SELECT_PHONE_ACCOUNT:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__ANSWERED_ELSEWHERE:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__BUSY:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__CALL_PULLED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__CANCELED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__CONNECTION_MANAGER_NOT_SUPPORTED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__ERROR:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__LOCAL:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__MISSED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__OTHER:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__REJECTED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__REMOTE:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__RESTRICTED:I
+Landroid/util/StatsLogInternal;->CALL_STATE_CHANGED__DISCONNECT_CAUSE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->CAMERA_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->CAMERA_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->CAMERA_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->CAMERA_STATE_CHANGED__STATE__RESET:I
+Landroid/util/StatsLogInternal;->CHARGE_CYCLES_REPORTED:I
+Landroid/util/StatsLogInternal;->CHARGING_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->CHARGING_STATE_CHANGED__STATE__BATTERY_STATUS_CHARGING:I
+Landroid/util/StatsLogInternal;->CHARGING_STATE_CHANGED__STATE__BATTERY_STATUS_DISCHARGING:I
+Landroid/util/StatsLogInternal;->CHARGING_STATE_CHANGED__STATE__BATTERY_STATUS_FULL:I
+Landroid/util/StatsLogInternal;->CHARGING_STATE_CHANGED__STATE__BATTERY_STATUS_INVALID:I
+Landroid/util/StatsLogInternal;->CHARGING_STATE_CHANGED__STATE__BATTERY_STATUS_NOT_CHARGING:I
+Landroid/util/StatsLogInternal;->CHARGING_STATE_CHANGED__STATE__BATTERY_STATUS_UNKNOWN:I
+Landroid/util/StatsLogInternal;->CPU_ACTIVE_TIME:I
+Landroid/util/StatsLogInternal;->CPU_CLUSTER_TIME:I
+Landroid/util/StatsLogInternal;->CPU_TIME_PER_FREQ:I
+Landroid/util/StatsLogInternal;->CPU_TIME_PER_UID:I
+Landroid/util/StatsLogInternal;->CPU_TIME_PER_UID_FREQ:I
+Landroid/util/StatsLogInternal;->DAVEY_OCCURRED:I
+Landroid/util/StatsLogInternal;->DEVICE_IDLE_MODE_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->DEVICE_IDLE_MODE_STATE_CHANGED__STATE__DEVICE_IDLE_MODE_DEEP:I
+Landroid/util/StatsLogInternal;->DEVICE_IDLE_MODE_STATE_CHANGED__STATE__DEVICE_IDLE_MODE_LIGHT:I
+Landroid/util/StatsLogInternal;->DEVICE_IDLE_MODE_STATE_CHANGED__STATE__DEVICE_IDLE_MODE_OFF:I
+Landroid/util/StatsLogInternal;->DEVICE_IDLING_MODE_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->DEVICE_IDLING_MODE_STATE_CHANGED__STATE__DEVICE_IDLE_MODE_DEEP:I
+Landroid/util/StatsLogInternal;->DEVICE_IDLING_MODE_STATE_CHANGED__STATE__DEVICE_IDLE_MODE_LIGHT:I
+Landroid/util/StatsLogInternal;->DEVICE_IDLING_MODE_STATE_CHANGED__STATE__DEVICE_IDLE_MODE_OFF:I
+Landroid/util/StatsLogInternal;->DISK_SPACE:I
+Landroid/util/StatsLogInternal;->FLASHLIGHT_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->FLASHLIGHT_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->FLASHLIGHT_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->FLASHLIGHT_STATE_CHANGED__STATE__RESET:I
+Landroid/util/StatsLogInternal;->FOREGROUND_SERVICE_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->FOREGROUND_SERVICE_STATE_CHANGED__STATE__ENTER:I
+Landroid/util/StatsLogInternal;->FOREGROUND_SERVICE_STATE_CHANGED__STATE__EXIT:I
+Landroid/util/StatsLogInternal;->FULL_BATTERY_CAPACITY:I
+Landroid/util/StatsLogInternal;->GPS_SCAN_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->GPS_SCAN_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->GPS_SCAN_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->HARDWARE_FAILED:I
+Landroid/util/StatsLogInternal;->HARDWARE_FAILED__HARDWARE_TYPE__HARDWARE_FAILED_CODEC:I
+Landroid/util/StatsLogInternal;->HARDWARE_FAILED__HARDWARE_TYPE__HARDWARE_FAILED_FINGERPRINT:I
+Landroid/util/StatsLogInternal;->HARDWARE_FAILED__HARDWARE_TYPE__HARDWARE_FAILED_MICROPHONE:I
+Landroid/util/StatsLogInternal;->HARDWARE_FAILED__HARDWARE_TYPE__HARDWARE_FAILED_SPEAKER:I
+Landroid/util/StatsLogInternal;->HARDWARE_FAILED__HARDWARE_TYPE__HARDWARE_FAILED_UNKNOWN:I
+Landroid/util/StatsLogInternal;->ISOLATED_UID_CHANGED:I
+Landroid/util/StatsLogInternal;->ISOLATED_UID_CHANGED__EVENT__CREATED:I
+Landroid/util/StatsLogInternal;->ISOLATED_UID_CHANGED__EVENT__REMOVED:I
+Landroid/util/StatsLogInternal;->KERNEL_WAKELOCK:I
+Landroid/util/StatsLogInternal;->KERNEL_WAKEUP_REPORTED:I
+Landroid/util/StatsLogInternal;->KEYGUARD_BOUNCER_PASSWORD_ENTERED:I
+Landroid/util/StatsLogInternal;->KEYGUARD_BOUNCER_PASSWORD_ENTERED__RESULT__FAILURE:I
+Landroid/util/StatsLogInternal;->KEYGUARD_BOUNCER_PASSWORD_ENTERED__RESULT__SUCCESS:I
+Landroid/util/StatsLogInternal;->KEYGUARD_BOUNCER_PASSWORD_ENTERED__RESULT__UNKNOWN:I
+Landroid/util/StatsLogInternal;->KEYGUARD_BOUNCER_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->KEYGUARD_BOUNCER_STATE_CHANGED__STATE__HIDDEN:I
+Landroid/util/StatsLogInternal;->KEYGUARD_BOUNCER_STATE_CHANGED__STATE__SHOWN:I
+Landroid/util/StatsLogInternal;->KEYGUARD_BOUNCER_STATE_CHANGED__STATE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->KEYGUARD_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->KEYGUARD_STATE_CHANGED__STATE__HIDDEN:I
+Landroid/util/StatsLogInternal;->KEYGUARD_STATE_CHANGED__STATE__OCCLUDED:I
+Landroid/util/StatsLogInternal;->KEYGUARD_STATE_CHANGED__STATE__SHOWN:I
+Landroid/util/StatsLogInternal;->KEYGUARD_STATE_CHANGED__STATE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->LMK_KILL_OCCURRED:I
+Landroid/util/StatsLogInternal;->LMK_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->LMK_STATE_CHANGED__STATE__START:I
+Landroid/util/StatsLogInternal;->LMK_STATE_CHANGED__STATE__STOP:I
+Landroid/util/StatsLogInternal;->LMK_STATE_CHANGED__STATE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->LONG_PARTIAL_WAKELOCK_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->LOW_MEM_REPORTED:I
+Landroid/util/StatsLogInternal;->MEDIA_CODEC_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->MEDIA_CODEC_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->MEDIA_CODEC_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->MEDIA_CODEC_STATE_CHANGED__STATE__RESET:I
+Landroid/util/StatsLogInternal;->MOBILE_BYTES_TRANSFER:I
+Landroid/util/StatsLogInternal;->MOBILE_BYTES_TRANSFER_BY_FG_BG:I
+Landroid/util/StatsLogInternal;->MOBILE_CONNECTION_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->MOBILE_CONNECTION_STATE_CHANGED__STATE__ACTIVATING:I
+Landroid/util/StatsLogInternal;->MOBILE_CONNECTION_STATE_CHANGED__STATE__ACTIVE:I
+Landroid/util/StatsLogInternal;->MOBILE_CONNECTION_STATE_CHANGED__STATE__DISCONNECTING:I
+Landroid/util/StatsLogInternal;->MOBILE_CONNECTION_STATE_CHANGED__STATE__DISCONNECTION_ERROR_CREATING_CONNECTION:I
+Landroid/util/StatsLogInternal;->MOBILE_CONNECTION_STATE_CHANGED__STATE__INACTIVE:I
+Landroid/util/StatsLogInternal;->MOBILE_CONNECTION_STATE_CHANGED__STATE__UNKNOWN:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_POWER_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_POWER_STATE_CHANGED__STATE__DATA_CONNECTION_POWER_STATE_HIGH:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_POWER_STATE_CHANGED__STATE__DATA_CONNECTION_POWER_STATE_LOW:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_POWER_STATE_CHANGED__STATE__DATA_CONNECTION_POWER_STATE_MEDIUM:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_POWER_STATE_CHANGED__STATE__DATA_CONNECTION_POWER_STATE_UNKNOWN:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_1XRTT:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_CDMA:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_EDGE:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_EHRPD:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_EVDO_0:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_EVDO_A:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_EVDO_B:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_GPRS:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_GSM:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_HSDPA:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_HSPA:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_HSPAP:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_HSUPA:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_IDEN:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_IWLAN:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_LTE:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_LTE_CA:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_TD_SCDMA:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_UMTS:I
+Landroid/util/StatsLogInternal;->MOBILE_RADIO_TECHNOLOGY_CHANGED__STATE__NETWORK_TYPE_UNKNOWN:I
+Landroid/util/StatsLogInternal;->MODEM_ACTIVITY_INFO:I
+Landroid/util/StatsLogInternal;->OVERLAY_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->OVERLAY_STATE_CHANGED__STATE__ENTERED:I
+Landroid/util/StatsLogInternal;->OVERLAY_STATE_CHANGED__STATE__EXITED:I
+Landroid/util/StatsLogInternal;->PACKET_WAKEUP_OCCURRED:I
+Landroid/util/StatsLogInternal;->PHONE_SIGNAL_STRENGTH_CHANGED:I
+Landroid/util/StatsLogInternal;->PHONE_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_GOOD:I
+Landroid/util/StatsLogInternal;->PHONE_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_GREAT:I
+Landroid/util/StatsLogInternal;->PHONE_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_MODERATE:I
+Landroid/util/StatsLogInternal;->PHONE_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_NONE_OR_UNKNOWN:I
+Landroid/util/StatsLogInternal;->PHONE_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_POOR:I
+Landroid/util/StatsLogInternal;->PHYSICAL_DROP_DETECTED:I
+Landroid/util/StatsLogInternal;->PICTURE_IN_PICTURE_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED:I
+Landroid/util/StatsLogInternal;->PICTURE_IN_PICTURE_STATE_CHANGED__STATE__ENTERED:I
+Landroid/util/StatsLogInternal;->PICTURE_IN_PICTURE_STATE_CHANGED__STATE__EXPANDED_TO_FULL_SCREEN:I
+Landroid/util/StatsLogInternal;->PICTURE_IN_PICTURE_STATE_CHANGED__STATE__MINIMIZED:I
+Landroid/util/StatsLogInternal;->PLUGGED_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->PLUGGED_STATE_CHANGED__STATE__BATTERY_PLUGGED_AC:I
+Landroid/util/StatsLogInternal;->PLUGGED_STATE_CHANGED__STATE__BATTERY_PLUGGED_NONE:I
+Landroid/util/StatsLogInternal;->PLUGGED_STATE_CHANGED__STATE__BATTERY_PLUGGED_USB:I
+Landroid/util/StatsLogInternal;->PLUGGED_STATE_CHANGED__STATE__BATTERY_PLUGGED_WIRELESS:I
+Landroid/util/StatsLogInternal;->PROCESS_LIFE_CYCLE_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__CRASHED:I
+Landroid/util/StatsLogInternal;->PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__FINISHED:I
+Landroid/util/StatsLogInternal;->PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__STARTED:I
+Landroid/util/StatsLogInternal;->PROCESS_MEMORY_STATE:I
+Landroid/util/StatsLogInternal;->REMAINING_BATTERY_CAPACITY:I
+Landroid/util/StatsLogInternal;->RESOURCE_CONFIGURATION_CHANGED:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STATE__SCHEDULED:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STOP_REASON__STOP_REASON_CANCELLED:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STOP_REASON__STOP_REASON_CONSTRAINTS_NOT_SATISFIED:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STOP_REASON__STOP_REASON_DEVICE_IDLE:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STOP_REASON__STOP_REASON_PREEMPT:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STOP_REASON__STOP_REASON_TIMEOUT:I
+Landroid/util/StatsLogInternal;->SCHEDULED_JOB_STATE_CHANGED__STOP_REASON__STOP_REASON_UNKNOWN:I
+Landroid/util/StatsLogInternal;->SCREEN_BRIGHTNESS_CHANGED:I
+Landroid/util/StatsLogInternal;->SCREEN_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->SCREEN_STATE_CHANGED__STATE__DISPLAY_STATE_DOZE:I
+Landroid/util/StatsLogInternal;->SCREEN_STATE_CHANGED__STATE__DISPLAY_STATE_DOZE_SUSPEND:I
+Landroid/util/StatsLogInternal;->SCREEN_STATE_CHANGED__STATE__DISPLAY_STATE_OFF:I
+Landroid/util/StatsLogInternal;->SCREEN_STATE_CHANGED__STATE__DISPLAY_STATE_ON:I
+Landroid/util/StatsLogInternal;->SCREEN_STATE_CHANGED__STATE__DISPLAY_STATE_ON_SUSPEND:I
+Landroid/util/StatsLogInternal;->SCREEN_STATE_CHANGED__STATE__DISPLAY_STATE_UNKNOWN:I
+Landroid/util/StatsLogInternal;->SCREEN_STATE_CHANGED__STATE__DISPLAY_STATE_VR:I
+Landroid/util/StatsLogInternal;->SENSOR_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->SENSOR_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->SENSOR_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->SETTING_CHANGED:I
+Landroid/util/StatsLogInternal;->SETTING_CHANGED__REASON__DELETED:I
+Landroid/util/StatsLogInternal;->SETTING_CHANGED__REASON__UPDATED:I
+Landroid/util/StatsLogInternal;->SHUTDOWN_SEQUENCE_REPORTED:I
+Landroid/util/StatsLogInternal;->SPEAKER_IMPEDANCE_REPORTED:I
+Landroid/util/StatsLogInternal;->SUBSYSTEM_SLEEP_STATE:I
+Landroid/util/StatsLogInternal;->SYNC_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->SYNC_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->SYNC_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->SYSTEM_ELAPSED_REALTIME:I
+Landroid/util/StatsLogInternal;->SYSTEM_UPTIME:I
+Landroid/util/StatsLogInternal;->TEMPERATURE:I
+Landroid/util/StatsLogInternal;->TEMPERATURE__SENSOR_LOCATION__TEMPERATURE_TYPE_BATTERY:I
+Landroid/util/StatsLogInternal;->TEMPERATURE__SENSOR_LOCATION__TEMPERATURE_TYPE_CPU:I
+Landroid/util/StatsLogInternal;->TEMPERATURE__SENSOR_LOCATION__TEMPERATURE_TYPE_GPU:I
+Landroid/util/StatsLogInternal;->TEMPERATURE__SENSOR_LOCATION__TEMPERATURE_TYPE_SKIN:I
+Landroid/util/StatsLogInternal;->TEMPERATURE__SENSOR_LOCATION__TEMPERATURE_TYPE_UNKNOWN:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_BACKUP:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_BOUND_FOREGROUND_SERVICE:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_CACHED_ACTIVITY:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_CACHED_ACTIVITY_CLIENT:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_CACHED_EMPTY:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_CACHED_RECENT:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_FOREGROUND_SERVICE:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_HEAVY_WEIGHT:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_HOME:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_IMPORTANT_BACKGROUND:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_IMPORTANT_FOREGROUND:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_LAST_ACTIVITY:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_NONEXISTENT:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_PERSISTENT:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_PERSISTENT_UI:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_RECEIVER:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_SERVICE:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_TOP:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_TOP_SLEEPING:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_TRANSIENT_BACKGROUND:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_UNKNOWN:I
+Landroid/util/StatsLogInternal;->UID_PROCESS_STATE_CHANGED__STATE__PROCESS_STATE_UNKNOWN_TO_PROTO:I
+Landroid/util/StatsLogInternal;->USB_CONNECTOR_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->USB_CONNECTOR_STATE_CHANGED__STATE__CONNECTED:I
+Landroid/util/StatsLogInternal;->USB_CONNECTOR_STATE_CHANGED__STATE__DISCONNECTED:I
+Landroid/util/StatsLogInternal;->USB_DEVICE_ATTACHED:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__LEVEL__DOZE_WAKE_LOCK:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__LEVEL__DRAW_WAKE_LOCK:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__LEVEL__FULL_WAKE_LOCK:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__LEVEL__PARTIAL_WAKE_LOCK:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__LEVEL__PROXIMITY_SCREEN_OFF_WAKE_LOCK:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__LEVEL__SCREEN_BRIGHT_WAKE_LOCK:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__LEVEL__SCREEN_DIM_WAKE_LOCK:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__STATE__ACQUIRE:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__STATE__CHANGE_ACQUIRE:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__STATE__CHANGE_RELEASE:I
+Landroid/util/StatsLogInternal;->WAKELOCK_STATE_CHANGED__STATE__RELEASE:I
+Landroid/util/StatsLogInternal;->WAKEUP_ALARM_OCCURRED:I
+Landroid/util/StatsLogInternal;->WIFI_ACTIVITY_INFO:I
+Landroid/util/StatsLogInternal;->WIFI_BYTES_TRANSFER:I
+Landroid/util/StatsLogInternal;->WIFI_BYTES_TRANSFER_BY_FG_BG:I
+Landroid/util/StatsLogInternal;->WIFI_LOCK_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->WIFI_LOCK_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->WIFI_LOCK_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->WIFI_MULTICAST_LOCK_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->WIFI_MULTICAST_LOCK_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->WIFI_MULTICAST_LOCK_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->WIFI_RADIO_POWER_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->WIFI_RADIO_POWER_STATE_CHANGED__STATE__DATA_CONNECTION_POWER_STATE_HIGH:I
+Landroid/util/StatsLogInternal;->WIFI_RADIO_POWER_STATE_CHANGED__STATE__DATA_CONNECTION_POWER_STATE_LOW:I
+Landroid/util/StatsLogInternal;->WIFI_RADIO_POWER_STATE_CHANGED__STATE__DATA_CONNECTION_POWER_STATE_MEDIUM:I
+Landroid/util/StatsLogInternal;->WIFI_RADIO_POWER_STATE_CHANGED__STATE__DATA_CONNECTION_POWER_STATE_UNKNOWN:I
+Landroid/util/StatsLogInternal;->WIFI_SCAN_STATE_CHANGED:I
+Landroid/util/StatsLogInternal;->WIFI_SCAN_STATE_CHANGED__STATE__OFF:I
+Landroid/util/StatsLogInternal;->WIFI_SCAN_STATE_CHANGED__STATE__ON:I
+Landroid/util/StatsLogInternal;->WIFI_SIGNAL_STRENGTH_CHANGED:I
+Landroid/util/StatsLogInternal;->WIFI_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_GOOD:I
+Landroid/util/StatsLogInternal;->WIFI_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_GREAT:I
+Landroid/util/StatsLogInternal;->WIFI_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_MODERATE:I
+Landroid/util/StatsLogInternal;->WIFI_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_NONE_OR_UNKNOWN:I
+Landroid/util/StatsLogInternal;->WIFI_SIGNAL_STRENGTH_CHANGED__SIGNAL_STRENGTH__SIGNAL_STRENGTH_POOR:I
+Landroid/util/StatsLogInternal;->write(I)I
+Landroid/util/StatsLogInternal;->write(II)I
+Landroid/util/StatsLogInternal;->write(III)I
+Landroid/util/StatsLogInternal;->write(IIIFIIIIIIIIIIIIII)I
+Landroid/util/StatsLogInternal;->write(IIII)I
+Landroid/util/StatsLogInternal;->write(IIIIIIIII)I
+Landroid/util/StatsLogInternal;->write(IIIIJZ)I
+Landroid/util/StatsLogInternal;->write(IIIJ)I
+Landroid/util/StatsLogInternal;->write(IIIZZ)I
+Landroid/util/StatsLogInternal;->write(IIIZZZ)I
+Landroid/util/StatsLogInternal;->write(IIJ)I
+Landroid/util/StatsLogInternal;->write(IIJJ)I
+Landroid/util/StatsLogInternal;->write(IIJJJJ)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;IJJJJJ)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;ILjava/lang/String;)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;III)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;ILjava/lang/String;Ljava/lang/String;ZJIIIIILjava/lang/String;II)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;ILjava/lang/String;ZJ)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;Ljava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;II)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;Ljava/lang/String;JJJJJ)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
+Landroid/util/StatsLogInternal;->write(IILjava/lang/String;ZI)I
+Landroid/util/StatsLogInternal;->write(IIZJJJJ)I
+Landroid/util/StatsLogInternal;->write(IJ)I
+Landroid/util/StatsLogInternal;->write(IJIJJJJ)I
+Landroid/util/StatsLogInternal;->write(IJJJ)I
+Landroid/util/StatsLogInternal;->write(IJJJJJJJJJJ)I
+Landroid/util/StatsLogInternal;->write(ILjava/lang/String;IIJ)I
+Landroid/util/StatsLogInternal;->write(ILjava/lang/String;J)I
+Landroid/util/StatsLogInternal;->write(ILjava/lang/String;Ljava/lang/String;JJ)I
+Landroid/util/StatsLogInternal;->write(ILjava/lang/String;Ljava/lang/String;JJJJ)I
+Landroid/util/StatsLogInternal;->write(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZII)I
+Landroid/util/StatsLogInternal;->write(IZLjava/lang/String;JJ)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;II)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;IILjava/lang/String;)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;ILjava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;IZZZ)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;Ljava/lang/String;)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;Ljava/lang/String;II)I
+Landroid/util/StatsLogInternal;->write(I[I[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;II)I
+Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;IILjava/lang/String;)I
+Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;ILjava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;IZZZ)I
+Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;Ljava/lang/String;)I
+Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;Ljava/lang/String;I)I
+Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;Ljava/lang/String;II)I
+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
+Landroid/util/TextLogEntry;->LOG_DEFAULT:I
+Landroid/util/TextLogEntry;->LOG_ERROR:I
+Landroid/util/TextLogEntry;->LOG_FATAL:I
+Landroid/util/TextLogEntry;->LOG_INFO:I
+Landroid/util/TextLogEntry;->LOG_SILENT:I
+Landroid/util/TextLogEntry;->LOG_UNKNOWN:I
+Landroid/util/TextLogEntry;->LOG_VERBOSE:I
+Landroid/util/TextLogEntry;->LOG_WARN:I
+Landroid/util/TextLogEntry;->NANOSEC:J
+Landroid/util/TextLogEntry;->PID:J
+Landroid/util/TextLogEntry;->PRIORITY:J
+Landroid/util/TextLogEntry;->SEC:J
+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;
+Landroid/util/TimedRemoteCaller;->mAwaitedCalls:Landroid/util/SparseIntArray;
+Landroid/util/TimedRemoteCaller;->mCallTimeoutMillis:J
+Landroid/util/TimedRemoteCaller;->mLock:Ljava/lang/Object;
+Landroid/util/TimedRemoteCaller;->mReceivedCalls:Landroid/util/SparseArray;
+Landroid/util/TimedRemoteCaller;->mSequenceCounter:I
+Landroid/util/TimedRemoteCaller;->onBeforeRemoteCall()I
+Landroid/util/TimedRemoteCaller;->onRemoteMethodResult(Ljava/lang/Object;I)V
+Landroid/util/TimeFormatException;-><init>(Ljava/lang/String;)V
+Landroid/util/TimeUtils;-><init>()V
+Landroid/util/TimeUtils;->accumField(IIZI)I
+Landroid/util/TimeUtils;->formatDuration(J)Ljava/lang/String;
+Landroid/util/TimeUtils;->formatDuration(JJLjava/io/PrintWriter;)V
+Landroid/util/TimeUtils;->formatDuration(JLjava/lang/StringBuilder;)V
+Landroid/util/TimeUtils;->formatDuration(JLjava/lang/StringBuilder;I)V
+Landroid/util/TimeUtils;->formatDurationLocked(JI)I
+Landroid/util/TimeUtils;->formatForLogging(J)Ljava/lang/String;
+Landroid/util/TimeUtils;->formatUptime(J)Ljava/lang/String;
+Landroid/util/TimeUtils;->getIcuTimeZone(IZJLjava/lang/String;)Landroid/icu/util/TimeZone;
+Landroid/util/TimeUtils;->HUNDRED_DAY_FIELD_LEN:I
+Landroid/util/TimeUtils;->NANOS_PER_MS:J
+Landroid/util/TimeUtils;->printFieldLocked([CICIZI)I
+Landroid/util/TimeUtils;->SECONDS_PER_DAY:I
+Landroid/util/TimeUtils;->SECONDS_PER_HOUR:I
+Landroid/util/TimeUtils;->SECONDS_PER_MINUTE:I
+Landroid/util/TimeUtils;->sFormatStr:[C
+Landroid/util/TimeUtils;->sFormatSync:Ljava/lang/Object;
+Landroid/util/TimeUtils;->sLoggingFormat:Ljava/text/SimpleDateFormat;
+Landroid/util/TimeUtils;->sTmpFormatStr:[C
+Landroid/util/TimingLogger;->mDisabled:Z
+Landroid/util/TimingLogger;->mLabel:Ljava/lang/String;
+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
+Landroid/util/TimingsTraceLog;->logDuration(Ljava/lang/String;J)V
+Landroid/util/TimingsTraceLog;->mStartTimes:Ljava/util/Deque;
+Landroid/util/TimingsTraceLog;->mTag:Ljava/lang/String;
+Landroid/util/TimingsTraceLog;->mThreadId:J
+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
+Landroid/view/accessibility/AccessibilityCache;->CACHE_CRITICAL_EVENTS_MASK:I
+Landroid/view/accessibility/AccessibilityCache;->checkIntegrity()V
+Landroid/view/accessibility/AccessibilityCache;->CHECK_INTEGRITY:Z
+Landroid/view/accessibility/AccessibilityCache;->clear()V
+Landroid/view/accessibility/AccessibilityCache;->clearNodesForWindowLocked(I)V
+Landroid/view/accessibility/AccessibilityCache;->clearSubTreeLocked(IJ)V
+Landroid/view/accessibility/AccessibilityCache;->clearSubTreeRecursiveLocked(Landroid/util/LongSparseArray;J)V
+Landroid/view/accessibility/AccessibilityCache;->clearWindowCache()V
+Landroid/view/accessibility/AccessibilityCache;->DEBUG:Z
+Landroid/view/accessibility/AccessibilityCache;->getNode(IJ)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityCache;->getWindow(I)Landroid/view/accessibility/AccessibilityWindowInfo;
+Landroid/view/accessibility/AccessibilityCache;->getWindows()Ljava/util/List;
+Landroid/view/accessibility/AccessibilityCache;->LOG_TAG:Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityCache;->mAccessibilityFocus:J
+Landroid/view/accessibility/AccessibilityCache;->mAccessibilityNodeRefresher:Landroid/view/accessibility/AccessibilityCache$AccessibilityNodeRefresher;
+Landroid/view/accessibility/AccessibilityCache;->mInputFocus:J
+Landroid/view/accessibility/AccessibilityCache;->mIsAllWindowsCached:Z
+Landroid/view/accessibility/AccessibilityCache;->mLock:Ljava/lang/Object;
+Landroid/view/accessibility/AccessibilityCache;->mNodeCache:Landroid/util/SparseArray;
+Landroid/view/accessibility/AccessibilityCache;->mTempWindowArray:Landroid/util/SparseArray;
+Landroid/view/accessibility/AccessibilityCache;->mWindowCache:Landroid/util/SparseArray;
+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;
+Landroid/view/accessibility/AccessibilityEvent;->DEBUG:Z
+Landroid/view/accessibility/AccessibilityEvent;->DEBUG_ORIGIN:Z
+Landroid/view/accessibility/AccessibilityEvent;->init(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/view/accessibility/AccessibilityEvent;->MAX_POOL_SIZE:I
+Landroid/view/accessibility/AccessibilityEvent;->mContentChangeTypes:I
+Landroid/view/accessibility/AccessibilityEvent;->mEventTime:J
+Landroid/view/accessibility/AccessibilityEvent;->mMovementGranularity:I
+Landroid/view/accessibility/AccessibilityEvent;->mPackageName:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityEvent;->mRecords:Ljava/util/ArrayList;
+Landroid/view/accessibility/AccessibilityEvent;->mWindowChangeTypes:I
+Landroid/view/accessibility/AccessibilityEvent;->obtainWindowsChangedEvent(II)Landroid/view/accessibility/AccessibilityEvent;
+Landroid/view/accessibility/AccessibilityEvent;->originStackTrace:[Ljava/lang/StackTraceElement;
+Landroid/view/accessibility/AccessibilityEvent;->readAccessibilityRecordFromParcel(Landroid/view/accessibility/AccessibilityRecord;Landroid/os/Parcel;)V
+Landroid/view/accessibility/AccessibilityEvent;->setSealed(Z)V
+Landroid/view/accessibility/AccessibilityEvent;->setWindowChanges(I)V
+Landroid/view/accessibility/AccessibilityEvent;->singleContentChangeTypeToString(I)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityEvent;->singleEventTypeToString(I)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityEvent;->singleWindowChangeTypeToString(I)Ljava/lang/String;
+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
+Landroid/view/accessibility/AccessibilityInteractionClient;->CHECK_INTEGRITY:Z
+Landroid/view/accessibility/AccessibilityInteractionClient;->clearResultLocked()V
+Landroid/view/accessibility/AccessibilityInteractionClient;->DEBUG:Z
+Landroid/view/accessibility/AccessibilityInteractionClient;->finalizeAndCacheAccessibilityNodeInfo(Landroid/view/accessibility/AccessibilityNodeInfo;IZ[Ljava/lang/String;)V
+Landroid/view/accessibility/AccessibilityInteractionClient;->finalizeAndCacheAccessibilityNodeInfos(Ljava/util/List;IZ[Ljava/lang/String;)V
+Landroid/view/accessibility/AccessibilityInteractionClient;->findAccessibilityNodeInfoByAccessibilityId(IIJZILandroid/os/Bundle;)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityInteractionClient;->findAccessibilityNodeInfosByText(IIJLjava/lang/String;)Ljava/util/List;
+Landroid/view/accessibility/AccessibilityInteractionClient;->findAccessibilityNodeInfosByViewId(IIJLjava/lang/String;)Ljava/util/List;
+Landroid/view/accessibility/AccessibilityInteractionClient;->findFocus(IIJI)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityInteractionClient;->focusSearch(IIJI)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityInteractionClient;->getConnection(I)Landroid/accessibilityservice/IAccessibilityServiceConnection;
+Landroid/view/accessibility/AccessibilityInteractionClient;->getFindAccessibilityNodeInfoResultAndClear(I)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityInteractionClient;->getFindAccessibilityNodeInfosResultAndClear(I)Ljava/util/List;
+Landroid/view/accessibility/AccessibilityInteractionClient;->getInstanceForThread(J)Landroid/view/accessibility/AccessibilityInteractionClient;
+Landroid/view/accessibility/AccessibilityInteractionClient;->getPerformAccessibilityActionResultAndClear(I)Z
+Landroid/view/accessibility/AccessibilityInteractionClient;->getRootInActiveWindow(I)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityInteractionClient;->getSameProcessMessageAndClear()Landroid/os/Message;
+Landroid/view/accessibility/AccessibilityInteractionClient;->getWindow(II)Landroid/view/accessibility/AccessibilityWindowInfo;
+Landroid/view/accessibility/AccessibilityInteractionClient;->getWindows(I)Ljava/util/List;
+Landroid/view/accessibility/AccessibilityInteractionClient;->idToString(IJ)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityInteractionClient;->LOG_TAG:Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityInteractionClient;->mFindAccessibilityNodeInfoResult:Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityInteractionClient;->mFindAccessibilityNodeInfosResult:Ljava/util/List;
+Landroid/view/accessibility/AccessibilityInteractionClient;->mInstanceLock:Ljava/lang/Object;
+Landroid/view/accessibility/AccessibilityInteractionClient;->mInteractionId:I
+Landroid/view/accessibility/AccessibilityInteractionClient;->mInteractionIdCounter:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/view/accessibility/AccessibilityInteractionClient;->mPerformAccessibilityActionResult:Z
+Landroid/view/accessibility/AccessibilityInteractionClient;->mSameThreadMessage:Landroid/os/Message;
+Landroid/view/accessibility/AccessibilityInteractionClient;->NO_ID:I
+Landroid/view/accessibility/AccessibilityInteractionClient;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/view/accessibility/AccessibilityInteractionClient;->performAccessibilityAction(IIJILandroid/os/Bundle;)Z
+Landroid/view/accessibility/AccessibilityInteractionClient;->removeConnection(I)V
+Landroid/view/accessibility/AccessibilityInteractionClient;->sAccessibilityCache:Landroid/view/accessibility/AccessibilityCache;
+Landroid/view/accessibility/AccessibilityInteractionClient;->sClients:Landroid/util/LongSparseArray;
+Landroid/view/accessibility/AccessibilityInteractionClient;->sConnectionCache:Landroid/util/SparseArray;
+Landroid/view/accessibility/AccessibilityInteractionClient;->setCache(Landroid/view/accessibility/AccessibilityCache;)V
+Landroid/view/accessibility/AccessibilityInteractionClient;->setFindAccessibilityNodeInfoResult(Landroid/view/accessibility/AccessibilityNodeInfo;I)V
+Landroid/view/accessibility/AccessibilityInteractionClient;->setFindAccessibilityNodeInfosResult(Ljava/util/List;I)V
+Landroid/view/accessibility/AccessibilityInteractionClient;->setPerformAccessibilityActionResult(ZI)V
+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
+Landroid/view/accessibility/AccessibilityManager;->ACTION_CHOOSE_ACCESSIBILITY_BUTTON:Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityManager;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Ljava/lang/String;Landroid/view/accessibility/IAccessibilityInteractionConnection;)I
+Landroid/view/accessibility/AccessibilityManager;->addAccessibilityServicesStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;Landroid/os/Handler;)V
+Landroid/view/accessibility/AccessibilityManager;->addHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;Landroid/os/Handler;)V
+Landroid/view/accessibility/AccessibilityManager;->AUTOCLICK_DELAY_DEFAULT:I
+Landroid/view/accessibility/AccessibilityManager;->DALTONIZER_CORRECT_DEUTERANOMALY:I
+Landroid/view/accessibility/AccessibilityManager;->DALTONIZER_DISABLED:I
+Landroid/view/accessibility/AccessibilityManager;->DEBUG:Z
+Landroid/view/accessibility/AccessibilityManager;->getCallback()Landroid/os/Handler$Callback;
+Landroid/view/accessibility/AccessibilityManager;->getClient()Landroid/view/accessibility/IAccessibilityManagerClient;
+Landroid/view/accessibility/AccessibilityManager;->getInstalledServiceInfoWithComponentName(Landroid/content/ComponentName;)Landroid/accessibilityservice/AccessibilityServiceInfo;
+Landroid/view/accessibility/AccessibilityManager;->getRequestPreparersForAccessibilityId(I)Ljava/util/List;
+Landroid/view/accessibility/AccessibilityManager;->getServiceLocked()Landroid/view/accessibility/IAccessibilityManager;
+Landroid/view/accessibility/AccessibilityManager;->isAccessibilityVolumeStreamActive()Z
+Landroid/view/accessibility/AccessibilityManager;->LOG_TAG:Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityManager;->mAccessibilityPolicy:Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;
+Landroid/view/accessibility/AccessibilityManager;->mCallback:Landroid/os/Handler$Callback;
+Landroid/view/accessibility/AccessibilityManager;->mClient:Landroid/view/accessibility/IAccessibilityManagerClient$Stub;
+Landroid/view/accessibility/AccessibilityManager;->mHighTextContrastStateChangeListeners:Landroid/util/ArrayMap;
+Landroid/view/accessibility/AccessibilityManager;->mIsTouchExplorationEnabled:Z
+Landroid/view/accessibility/AccessibilityManager;->mRelevantEventTypes:I
+Landroid/view/accessibility/AccessibilityManager;->mRequestPreparerLists:Landroid/util/SparseArray;
+Landroid/view/accessibility/AccessibilityManager;->mServicesStateChangeListeners:Landroid/util/ArrayMap;
+Landroid/view/accessibility/AccessibilityManager;->mTouchExplorationStateChangeListeners:Landroid/util/ArrayMap;
+Landroid/view/accessibility/AccessibilityManager;->notifyAccessibilityButtonClicked()V
+Landroid/view/accessibility/AccessibilityManager;->notifyAccessibilityButtonVisibilityChanged(Z)V
+Landroid/view/accessibility/AccessibilityManager;->notifyAccessibilityStateChanged()V
+Landroid/view/accessibility/AccessibilityManager;->notifyHighTextContrastStateChanged()V
+Landroid/view/accessibility/AccessibilityManager;->notifyTouchExplorationStateChanged()V
+Landroid/view/accessibility/AccessibilityManager;->performAccessibilityShortcut()V
+Landroid/view/accessibility/AccessibilityManager;->removeAccessibilityInteractionConnection(Landroid/view/IWindow;)V
+Landroid/view/accessibility/AccessibilityManager;->removeAccessibilityServicesStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;)V
+Landroid/view/accessibility/AccessibilityManager;->removeHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;)V
+Landroid/view/accessibility/AccessibilityManager;->sendFingerprintGesture(I)Z
+Landroid/view/accessibility/AccessibilityManager;->setAccessibilityPolicy(Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;)V
+Landroid/view/accessibility/AccessibilityManager;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
+Landroid/view/accessibility/AccessibilityManager;->STATE_FLAG_ACCESSIBILITY_ENABLED:I
+Landroid/view/accessibility/AccessibilityManager;->STATE_FLAG_HIGH_TEXT_CONTRAST_ENABLED:I
+Landroid/view/accessibility/AccessibilityManager;->STATE_FLAG_TOUCH_EXPLORATION_ENABLED:I
+Landroid/view/accessibility/AccessibilityManager;->tryConnectToServiceLocked(Landroid/view/accessibility/IAccessibilityManager;)V
+Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;-><init>(I)V
+Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->mActionId:I
+Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->mLabel:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->mSerializationFlag:J
+Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->sStandardActions:Landroid/util/ArraySet;
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;-><init>(IIZI)V
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->clear()V
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->MAX_POOL_SIZE:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->mColumnCount:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->mHierarchical:Z
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->mRowCount:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->mSelectionMode:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->obtain(Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;)Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->recycle()V
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;-><init>(IIIIZZ)V
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->clear()V
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->MAX_POOL_SIZE:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->mColumnIndex:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->mColumnSpan:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->mHeading:Z
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->mRowIndex:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->mRowSpan:I
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->mSelected:Z
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->obtain(Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;)Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->recycle()V
+Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;-><init>(IFFF)V
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->clear()V
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->MAX_POOL_SIZE:I
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->mCurrent:F
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->mMax:F
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->mMin:F
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->mType:I
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->obtain(Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;)Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->recycle()V
+Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/view/accessibility/AccessibilityNodeInfo;-><init>()V
+Landroid/view/accessibility/AccessibilityNodeInfo;->ACTION_ARGUMENT_ACCESSIBLE_CLICKABLE_SPAN:Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityNodeInfo;->ACTION_TYPE_MASK:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->addActionUnchecked(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->addChildInternal(Landroid/view/View;IZ)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->addChildUnchecked(Landroid/view/View;)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->addStandardActions(J)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_ACCESSIBILITY_FOCUSED:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_CHECKABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_CHECKED:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_CLICKABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_CONTENT_INVALID:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_CONTEXT_CLICKABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_DISMISSABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_EDITABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_ENABLED:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_FOCUSABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_FOCUSED:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_IMPORTANCE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_IS_HEADING:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_IS_SHOWING_HINT:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_LONG_CLICKABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_MULTI_LINE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_OPENS_POPUP:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_PASSWORD:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_SCREEN_READER_FOCUSABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_SCROLLABLE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_SELECTED:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->BOOLEAN_PROPERTY_VISIBLE_TO_USER:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->canPerformRequestOverConnection(J)Z
+Landroid/view/accessibility/AccessibilityNodeInfo;->clear()V
+Landroid/view/accessibility/AccessibilityNodeInfo;->DEBUG:Z
+Landroid/view/accessibility/AccessibilityNodeInfo;->DEFAULT:Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo;->enforceNotSealed()V
+Landroid/view/accessibility/AccessibilityNodeInfo;->enforceSealed()V
+Landroid/view/accessibility/AccessibilityNodeInfo;->enforceValidFocusDirection(I)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->enforceValidFocusType(I)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->EXTRA_DATA_REQUESTED_KEY:Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityNodeInfo;->FLAG_INCLUDE_NOT_IMPORTANT_VIEWS:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->FLAG_PREFETCH_DESCENDANTS:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->FLAG_PREFETCH_PREDECESSORS:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->FLAG_PREFETCH_SIBLINGS:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->FLAG_REPORT_VIEW_IDS:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->getActionSingleton(I)Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getActionSingletonBySerializationFlag(J)Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getActionSymbolicName(I)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getBooleanProperty(I)Z
+Landroid/view/accessibility/AccessibilityNodeInfo;->getBoundsInScreen()Landroid/graphics/Rect;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getChildId(I)J
+Landroid/view/accessibility/AccessibilityNodeInfo;->getChildNodeIds()Landroid/util/LongArray;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getConnectionId()I
+Landroid/view/accessibility/AccessibilityNodeInfo;->getMovementGranularitySymbolicName(I)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getNodeForAccessibilityId(J)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getOriginalText()Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->getParentNodeId()J
+Landroid/view/accessibility/AccessibilityNodeInfo;->hasExtras()Z
+Landroid/view/accessibility/AccessibilityNodeInfo;->idItemToString(I)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityNodeInfo;->idToString(J)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityNodeInfo;->init(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->initFromParcel(Landroid/os/Parcel;)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->isDefaultStandardAction(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)Z
+Landroid/view/accessibility/AccessibilityNodeInfo;->LAST_LEGACY_STANDARD_ACTION:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mActions:Ljava/util/ArrayList;
+Landroid/view/accessibility/AccessibilityNodeInfo;->makeNodeId(II)J
+Landroid/view/accessibility/AccessibilityNodeInfo;->MAX_POOL_SIZE:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mBooleanProperties:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mBoundsInParent:Landroid/graphics/Rect;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mBoundsInScreen:Landroid/graphics/Rect;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mClassName:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mCollectionInfo:Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mCollectionItemInfo:Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mConnectionId:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mContentDescription:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mDrawingOrderInParent:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mError:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mExtraDataKeys:Ljava/util/ArrayList;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mExtras:Landroid/os/Bundle;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mHintText:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mInputType:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mLabeledById:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->mLabelForId:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->mLiveRegion:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mMaxTextLength:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mMovementGranularities:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mOriginalText:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mPackageName:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mPaneTitle:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mParentNodeId:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->mRangeInfo:Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mText:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mTextSelectionEnd:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mTextSelectionStart:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->mTooltipText:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mTraversalAfter:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->mTraversalBefore:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->mViewIdResourceName:Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityNodeInfo;->mWindowId:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->removeAllActions()V
+Landroid/view/accessibility/AccessibilityNodeInfo;->ROOT_ITEM_ID:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->ROOT_NODE_ID:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->setBooleanProperty(IZ)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->setConnectionId(I)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->setSourceNodeId(JI)V
+Landroid/view/accessibility/AccessibilityNodeInfo;->sNumInstancesInUse:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/view/accessibility/AccessibilityNodeInfo;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/view/accessibility/AccessibilityNodeInfo;->UNDEFINED_CONNECTION_ID:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->UNDEFINED_ITEM_ID:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->UNDEFINED_NODE_ID:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->UNDEFINED_SELECTION_INDEX:I
+Landroid/view/accessibility/AccessibilityNodeInfo;->VIRTUAL_DESCENDANT_ID_MASK:J
+Landroid/view/accessibility/AccessibilityNodeInfo;->VIRTUAL_DESCENDANT_ID_SHIFT:I
+Landroid/view/accessibility/AccessibilityRecord;-><init>()V
+Landroid/view/accessibility/AccessibilityRecord;->append(Ljava/lang/StringBuilder;Ljava/lang/String;I)V
+Landroid/view/accessibility/AccessibilityRecord;->append(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/view/accessibility/AccessibilityRecord;->appendPropName(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
+Landroid/view/accessibility/AccessibilityRecord;->appendTo(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
+Landroid/view/accessibility/AccessibilityRecord;->appendUnless(ZILjava/lang/StringBuilder;)V
+Landroid/view/accessibility/AccessibilityRecord;->clear()V
+Landroid/view/accessibility/AccessibilityRecord;->DEBUG_CONCISE_TOSTRING:Z
+Landroid/view/accessibility/AccessibilityRecord;->enforceNotSealed()V
+Landroid/view/accessibility/AccessibilityRecord;->enforceSealed()V
+Landroid/view/accessibility/AccessibilityRecord;->getBooleanProperty(I)Z
+Landroid/view/accessibility/AccessibilityRecord;->GET_SOURCE_PREFETCH_FLAGS:I
+Landroid/view/accessibility/AccessibilityRecord;->init(Landroid/view/accessibility/AccessibilityRecord;)V
+Landroid/view/accessibility/AccessibilityRecord;->isImportantForAccessibility()Z
+Landroid/view/accessibility/AccessibilityRecord;->isSealed()Z
+Landroid/view/accessibility/AccessibilityRecord;->mAddedCount:I
+Landroid/view/accessibility/AccessibilityRecord;->MAX_POOL_SIZE:I
+Landroid/view/accessibility/AccessibilityRecord;->mBeforeText:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityRecord;->mBooleanProperties:I
+Landroid/view/accessibility/AccessibilityRecord;->mClassName:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityRecord;->mConnectionId:I
+Landroid/view/accessibility/AccessibilityRecord;->mContentDescription:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityRecord;->mCurrentItemIndex:I
+Landroid/view/accessibility/AccessibilityRecord;->mFromIndex:I
+Landroid/view/accessibility/AccessibilityRecord;->mIsInPool:Z
+Landroid/view/accessibility/AccessibilityRecord;->mItemCount:I
+Landroid/view/accessibility/AccessibilityRecord;->mMaxScrollX:I
+Landroid/view/accessibility/AccessibilityRecord;->mMaxScrollY:I
+Landroid/view/accessibility/AccessibilityRecord;->mNext:Landroid/view/accessibility/AccessibilityRecord;
+Landroid/view/accessibility/AccessibilityRecord;->mParcelableData:Landroid/os/Parcelable;
+Landroid/view/accessibility/AccessibilityRecord;->mRemovedCount:I
+Landroid/view/accessibility/AccessibilityRecord;->mScrollDeltaX:I
+Landroid/view/accessibility/AccessibilityRecord;->mScrollDeltaY:I
+Landroid/view/accessibility/AccessibilityRecord;->mScrollX:I
+Landroid/view/accessibility/AccessibilityRecord;->mScrollY:I
+Landroid/view/accessibility/AccessibilityRecord;->mSourceWindowId:I
+Landroid/view/accessibility/AccessibilityRecord;->mText:Ljava/util/List;
+Landroid/view/accessibility/AccessibilityRecord;->mToIndex:I
+Landroid/view/accessibility/AccessibilityRecord;->PROPERTY_CHECKED:I
+Landroid/view/accessibility/AccessibilityRecord;->PROPERTY_ENABLED:I
+Landroid/view/accessibility/AccessibilityRecord;->PROPERTY_FULL_SCREEN:I
+Landroid/view/accessibility/AccessibilityRecord;->PROPERTY_IMPORTANT_FOR_ACCESSIBILITY:I
+Landroid/view/accessibility/AccessibilityRecord;->PROPERTY_PASSWORD:I
+Landroid/view/accessibility/AccessibilityRecord;->PROPERTY_SCROLLABLE:I
+Landroid/view/accessibility/AccessibilityRecord;->setBooleanProperty(IZ)V
+Landroid/view/accessibility/AccessibilityRecord;->setConnectionId(I)V
+Landroid/view/accessibility/AccessibilityRecord;->setImportantForAccessibility(Z)V
+Landroid/view/accessibility/AccessibilityRecord;->setSealed(Z)V
+Landroid/view/accessibility/AccessibilityRecord;->setSourceNodeId(J)V
+Landroid/view/accessibility/AccessibilityRecord;->setWindowId(I)V
+Landroid/view/accessibility/AccessibilityRecord;->singleBooleanPropertyToString(I)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityRecord;->sPool:Landroid/view/accessibility/AccessibilityRecord;
+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
+Landroid/view/accessibility/AccessibilityWindowInfo;->ACTIVE_WINDOW_ID:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->addChild(I)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->ANY_WINDOW_ID:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->BOOLEAN_PROPERTY_ACCESSIBILITY_FOCUSED:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->BOOLEAN_PROPERTY_ACTIVE:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->BOOLEAN_PROPERTY_FOCUSED:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->BOOLEAN_PROPERTY_PICTURE_IN_PICTURE:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->changed(Landroid/view/accessibility/AccessibilityWindowInfo;)Z
+Landroid/view/accessibility/AccessibilityWindowInfo;->clear()V
+Landroid/view/accessibility/AccessibilityWindowInfo;->DEBUG:Z
+Landroid/view/accessibility/AccessibilityWindowInfo;->differenceFrom(Landroid/view/accessibility/AccessibilityWindowInfo;)I
+Landroid/view/accessibility/AccessibilityWindowInfo;->getBooleanProperty(I)Z
+Landroid/view/accessibility/AccessibilityWindowInfo;->initFromParcel(Landroid/os/Parcel;)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->mAnchorId:J
+Landroid/view/accessibility/AccessibilityWindowInfo;->MAX_POOL_SIZE:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->mBooleanProperties:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->mBoundsInScreen:Landroid/graphics/Rect;
+Landroid/view/accessibility/AccessibilityWindowInfo;->mChildIds:Landroid/util/LongArray;
+Landroid/view/accessibility/AccessibilityWindowInfo;->mConnectionId:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->mId:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->mLayer:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->mParentId:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->mTitle:Ljava/lang/CharSequence;
+Landroid/view/accessibility/AccessibilityWindowInfo;->mType:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->PICTURE_IN_PICTURE_ACTION_REPLACER_WINDOW_ID:I
+Landroid/view/accessibility/AccessibilityWindowInfo;->setAccessibilityFocused(Z)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setActive(Z)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setAnchorId(J)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setBooleanProperty(IZ)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setBoundsInScreen(Landroid/graphics/Rect;)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setConnectionId(I)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setFocused(Z)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setId(I)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setLayer(I)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setParentId(I)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setPictureInPicture(Z)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setTitle(Ljava/lang/CharSequence;)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->setType(I)V
+Landroid/view/accessibility/AccessibilityWindowInfo;->sNumInstancesInUse:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/view/accessibility/AccessibilityWindowInfo;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/view/accessibility/AccessibilityWindowInfo;->typeToString(I)Ljava/lang/String;
+Landroid/view/accessibility/AccessibilityWindowInfo;->UNDEFINED_WINDOW_ID:I
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;-><init>(IIIIILjava/lang/String;)V
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->applyStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->BLACK_ON_WHITE:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->COLOR_NONE_OPAQUE:I
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->COLOR_UNSPECIFIED:I
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->DEFAULT:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->DEFAULT_CUSTOM:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->getCustomStyle(Landroid/content/ContentResolver;)Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->hasColor(I)Z
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->mHasBackgroundColor:Z
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->mHasEdgeColor:Z
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->mHasEdgeType:Z
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->mHasForegroundColor:Z
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->mHasWindowColor:Z
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->mParsedTypeface:Landroid/graphics/Typeface;
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->mRawTypeface:Ljava/lang/String;
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->PRESET_CUSTOM:I
+Landroid/view/accessibility/CaptioningManager$CaptionStyle;->UNSPECIFIED:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+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
+Landroid/view/accessibility/CaptioningManager;->DEFAULT_FONT_SCALE:F
+Landroid/view/accessibility/CaptioningManager;->DEFAULT_PRESET:I
+Landroid/view/accessibility/CaptioningManager;->getRawLocale()Ljava/lang/String;
+Landroid/view/accessibility/CaptioningManager;->getRawUserStyle()I
+Landroid/view/accessibility/CaptioningManager;->mContentObserver:Landroid/database/ContentObserver;
+Landroid/view/accessibility/CaptioningManager;->mContentResolver:Landroid/content/ContentResolver;
+Landroid/view/accessibility/CaptioningManager;->mListeners:Ljava/util/ArrayList;
+Landroid/view/accessibility/CaptioningManager;->mStyleChangedRunnable:Ljava/lang/Runnable;
+Landroid/view/accessibility/CaptioningManager;->notifyEnabledChanged()V
+Landroid/view/accessibility/CaptioningManager;->notifyFontScaleChanged()V
+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
+Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->findAccessibilityNodeInfosByViewId(JLjava/lang/String;Landroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->findFocus(JILandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->focusSearch(JILandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+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;
+Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->TRANSACTION_findAccessibilityNodeInfoByAccessibilityId:I
+Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->TRANSACTION_findAccessibilityNodeInfosByText:I
+Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->TRANSACTION_findAccessibilityNodeInfosByViewId:I
+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;
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getInstalledAccessibilityServiceList(I)Ljava/util/List;
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getWindowToken(II)Landroid/os/IBinder;
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->interrupt(I)V
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->notifyAccessibilityButtonClicked()V
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->notifyAccessibilityButtonVisibilityChanged(Z)V
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->performAccessibilityShortcut()V
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->registerUiTestAutomationService(Landroid/os/IBinder;Landroid/accessibilityservice/IAccessibilityServiceClient;Landroid/accessibilityservice/AccessibilityServiceInfo;I)V
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->removeAccessibilityInteractionConnection(Landroid/view/IWindow;)V
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;I)V
+Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->sendFingerprintGesture(I)Z
+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
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_getEnabledAccessibilityServiceList:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_getInstalledAccessibilityServiceList:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_getWindowToken:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_interrupt:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_notifyAccessibilityButtonClicked:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_notifyAccessibilityButtonVisibilityChanged:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_performAccessibilityShortcut:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_registerUiTestAutomationService:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_removeAccessibilityInteractionConnection:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_sendAccessibilityEvent:I
+Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_sendFingerprintGesture:I
+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;
+Landroid/view/accessibility/IAccessibilityManager;->getWindowToken(II)Landroid/os/IBinder;
+Landroid/view/accessibility/IAccessibilityManager;->interrupt(I)V
+Landroid/view/accessibility/IAccessibilityManager;->notifyAccessibilityButtonClicked()V
+Landroid/view/accessibility/IAccessibilityManager;->notifyAccessibilityButtonVisibilityChanged(Z)V
+Landroid/view/accessibility/IAccessibilityManager;->performAccessibilityShortcut()V
+Landroid/view/accessibility/IAccessibilityManager;->registerUiTestAutomationService(Landroid/os/IBinder;Landroid/accessibilityservice/IAccessibilityServiceClient;Landroid/accessibilityservice/AccessibilityServiceInfo;I)V
+Landroid/view/accessibility/IAccessibilityManager;->removeAccessibilityInteractionConnection(Landroid/view/IWindow;)V
+Landroid/view/accessibility/IAccessibilityManager;->sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;I)V
+Landroid/view/accessibility/IAccessibilityManager;->sendFingerprintGesture(I)Z
+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;
+Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->prefetchAccessibilityNodeInfos(Landroid/view/View;IILjava/util/List;Landroid/os/Bundle;)V
+Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->prefetchDescendantsOfRealNode(Landroid/view/View;Ljava/util/List;)V
+Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->prefetchDescendantsOfVirtualNode(Landroid/view/accessibility/AccessibilityNodeInfo;Landroid/view/accessibility/AccessibilityNodeProvider;Ljava/util/List;)V
+Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->prefetchPredecessorsOfRealNode(Landroid/view/View;Ljava/util/List;)V
+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
+Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_FIND_ACCESSIBILITY_NODE_INFO_BY_ACCESSIBILITY_ID:I
+Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_FIND_ACCESSIBILITY_NODE_INFO_BY_TEXT:I
+Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_FIND_FOCUS:I
+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
+Landroid/view/AccessibilityInteractionController;->applyAppScaleAndMagnificationSpecIfNeeded(Landroid/view/accessibility/AccessibilityNodeInfo;Landroid/view/MagnificationSpec;)V
+Landroid/view/AccessibilityInteractionController;->applyAppScaleAndMagnificationSpecIfNeeded(Ljava/util/List;Landroid/view/MagnificationSpec;)V
+Landroid/view/AccessibilityInteractionController;->CONSIDER_REQUEST_PREPARERS:Z
+Landroid/view/AccessibilityInteractionController;->ENFORCE_NODE_TREE_CONSISTENT:Z
+Landroid/view/AccessibilityInteractionController;->findAccessibilityNodeInfoByAccessibilityIdClientThread(JLandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;Landroid/os/Bundle;)V
+Landroid/view/AccessibilityInteractionController;->findAccessibilityNodeInfoByAccessibilityIdUiThread(Landroid/os/Message;)V
+Landroid/view/AccessibilityInteractionController;->findAccessibilityNodeInfosByTextClientThread(JLjava/lang/String;Landroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+Landroid/view/AccessibilityInteractionController;->findAccessibilityNodeInfosByTextUiThread(Landroid/os/Message;)V
+Landroid/view/AccessibilityInteractionController;->findAccessibilityNodeInfosByViewIdClientThread(JLjava/lang/String;Landroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+Landroid/view/AccessibilityInteractionController;->findAccessibilityNodeInfosByViewIdUiThread(Landroid/os/Message;)V
+Landroid/view/AccessibilityInteractionController;->findFocusClientThread(JILandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+Landroid/view/AccessibilityInteractionController;->findFocusUiThread(Landroid/os/Message;)V
+Landroid/view/AccessibilityInteractionController;->findViewByAccessibilityId(I)Landroid/view/View;
+Landroid/view/AccessibilityInteractionController;->focusSearchClientThread(JILandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+Landroid/view/AccessibilityInteractionController;->focusSearchUiThread(Landroid/os/Message;)V
+Landroid/view/AccessibilityInteractionController;->handleClickableSpanActionUiThread(Landroid/view/View;ILandroid/os/Bundle;)Z
+Landroid/view/AccessibilityInteractionController;->holdOffMessageIfNeeded(Landroid/os/Message;IJ)Z
+Landroid/view/AccessibilityInteractionController;->IGNORE_REQUEST_PREPARERS:Z
+Landroid/view/AccessibilityInteractionController;->isShown(Landroid/view/View;)Z
+Landroid/view/AccessibilityInteractionController;->LOG_TAG:Ljava/lang/String;
+Landroid/view/AccessibilityInteractionController;->mA11yManager:Landroid/view/accessibility/AccessibilityManager;
+Landroid/view/AccessibilityInteractionController;->mActiveRequestPreparerId:I
+Landroid/view/AccessibilityInteractionController;->mAddNodeInfosForViewId:Landroid/view/AccessibilityInteractionController$AddNodeInfosForViewId;
+Landroid/view/AccessibilityInteractionController;->mHandler:Landroid/os/Handler;
+Landroid/view/AccessibilityInteractionController;->mLock:Ljava/lang/Object;
+Landroid/view/AccessibilityInteractionController;->mMessagesWaitingForRequestPreparer:Ljava/util/List;
+Landroid/view/AccessibilityInteractionController;->mMyLooperThreadId:J
+Landroid/view/AccessibilityInteractionController;->mMyProcessId:I
+Landroid/view/AccessibilityInteractionController;->mNumActiveRequestPreparers:I
+Landroid/view/AccessibilityInteractionController;->mPrefetcher:Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;
+Landroid/view/AccessibilityInteractionController;->mTempAccessibilityNodeInfoList:Ljava/util/ArrayList;
+Landroid/view/AccessibilityInteractionController;->mTempArrayList:Ljava/util/ArrayList;
+Landroid/view/AccessibilityInteractionController;->mTempPoint:Landroid/graphics/Point;
+Landroid/view/AccessibilityInteractionController;->mTempRect1:Landroid/graphics/Rect;
+Landroid/view/AccessibilityInteractionController;->mTempRect2:Landroid/graphics/Rect;
+Landroid/view/AccessibilityInteractionController;->mTempRect:Landroid/graphics/Rect;
+Landroid/view/AccessibilityInteractionController;->mViewRootImpl:Landroid/view/ViewRootImpl;
+Landroid/view/AccessibilityInteractionController;->performAccessibilityActionClientThread(JILandroid/os/Bundle;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJ)V
+Landroid/view/AccessibilityInteractionController;->performAccessibilityActionUiThread(Landroid/os/Message;)V
+Landroid/view/AccessibilityInteractionController;->prepareForExtraDataRequestUiThread(Landroid/os/Message;)V
+Landroid/view/AccessibilityInteractionController;->queueMessageToHandleOncePrepared(Landroid/os/Message;IJ)V
+Landroid/view/AccessibilityInteractionController;->recycleMagnificationSpecAndRegionIfNeeded(Landroid/view/MagnificationSpec;Landroid/graphics/Region;)V
+Landroid/view/AccessibilityInteractionController;->requestPreparerDoneUiThread(Landroid/os/Message;)V
+Landroid/view/AccessibilityInteractionController;->requestPreparerTimeoutUiThread()V
+Landroid/view/AccessibilityInteractionController;->REQUEST_PREPARER_TIMEOUT_MS:J
+Landroid/view/AccessibilityInteractionController;->scheduleAllMessagesWaitingForRequestPreparerLocked()V
+Landroid/view/AccessibilityInteractionController;->scheduleMessage(Landroid/os/Message;IJZ)V
+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;
+Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->initialize(Ljava/lang/String;)V
+Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->mImpl:Ljava/text/BreakIterator;
+Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->mLocale:Ljava/util/Locale;
+Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+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;
+Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;->isEndBoundary(I)Z
+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;
+Landroid/view/AccessibilityIterators$WordTextSegmentIterator;->isEndBoundary(I)Z
+Landroid/view/AccessibilityIterators$WordTextSegmentIterator;->isLetterOrDigit(I)Z
+Landroid/view/AccessibilityIterators$WordTextSegmentIterator;->isStartBoundary(I)Z
+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;
+Landroid/view/ActionProvider;->subUiVisibilityChanged(Z)V
+Landroid/view/ActionProvider;->TAG:Ljava/lang/String;
+Landroid/view/animation/AccelerateDecelerateInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/AccelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+Landroid/view/animation/AccelerateInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/AccelerateInterpolator;->mDoubleFactor:D
+Landroid/view/animation/AccelerateInterpolator;->mFactor:F
+Landroid/view/animation/AlphaAnimation;->hasAlpha()Z
+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
+Landroid/view/animation/Animation;->fireAnimationRepeat()V
+Landroid/view/animation/Animation;->fireAnimationStart()V
+Landroid/view/animation/Animation;->getShowWallpaper()Z
+Landroid/view/animation/Animation;->guard:Ldalvik/system/CloseGuard;
+Landroid/view/animation/Animation;->hasAlpha()Z
+Landroid/view/animation/Animation;->isCanceled()Z
+Landroid/view/animation/Animation;->mBackgroundColor:I
+Landroid/view/animation/Animation;->mCycleFlip:Z
+Landroid/view/animation/Animation;->mDetachWallpaper:Z
+Landroid/view/animation/Animation;->mDuration:J
+Landroid/view/animation/Animation;->mEnded:Z
+Landroid/view/animation/Animation;->mFillAfter:Z
+Landroid/view/animation/Animation;->mFillBefore:Z
+Landroid/view/animation/Animation;->mFillEnabled:Z
+Landroid/view/animation/Animation;->mInitialized:Z
+Landroid/view/animation/Animation;->mInterpolator:Landroid/view/animation/Interpolator;
+Landroid/view/animation/Animation;->mListenerHandler:Landroid/os/Handler;
+Landroid/view/animation/Animation;->mMore:Z
+Landroid/view/animation/Animation;->mOneMoreTime:Z
+Landroid/view/animation/Animation;->mOnEnd:Ljava/lang/Runnable;
+Landroid/view/animation/Animation;->mOnRepeat:Ljava/lang/Runnable;
+Landroid/view/animation/Animation;->mOnStart:Ljava/lang/Runnable;
+Landroid/view/animation/Animation;->mRepeatCount:I
+Landroid/view/animation/Animation;->mRepeated:I
+Landroid/view/animation/Animation;->mRepeatMode:I
+Landroid/view/animation/Animation;->mScaleFactor:F
+Landroid/view/animation/Animation;->mShowWallpaper:Z
+Landroid/view/animation/Animation;->mStarted:Z
+Landroid/view/animation/Animation;->mStartOffset:J
+Landroid/view/animation/Animation;->mStartTime:J
+Landroid/view/animation/Animation;->mZAdjustment:I
+Landroid/view/animation/Animation;->setListenerHandler(Landroid/os/Handler;)V
+Landroid/view/animation/Animation;->setShowWallpaper(Z)V
+Landroid/view/animation/AnimationSet;->hasAlpha()Z
+Landroid/view/animation/AnimationSet;->init()V
+Landroid/view/animation/AnimationSet;->initializeInvalidateRegion(IIII)V
+Landroid/view/animation/AnimationSet;->mAnimations:Ljava/util/ArrayList;
+Landroid/view/animation/AnimationSet;->mDirty:Z
+Landroid/view/animation/AnimationSet;->mFlags:I
+Landroid/view/animation/AnimationSet;->mHasAlpha:Z
+Landroid/view/animation/AnimationSet;->mLastEnd:J
+Landroid/view/animation/AnimationSet;->mStoredOffsets:[J
+Landroid/view/animation/AnimationSet;->mTempTransformation:Landroid/view/animation/Transformation;
+Landroid/view/animation/AnimationSet;->PROPERTY_CHANGE_BOUNDS_MASK:I
+Landroid/view/animation/AnimationSet;->PROPERTY_DURATION_MASK:I
+Landroid/view/animation/AnimationSet;->PROPERTY_FILL_AFTER_MASK:I
+Landroid/view/animation/AnimationSet;->PROPERTY_FILL_BEFORE_MASK:I
+Landroid/view/animation/AnimationSet;->PROPERTY_MORPH_MATRIX_MASK:I
+Landroid/view/animation/AnimationSet;->PROPERTY_REPEAT_MODE_MASK:I
+Landroid/view/animation/AnimationSet;->PROPERTY_SHARE_INTERPOLATOR_MASK:I
+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
+Landroid/view/animation/AnimationUtils$AnimationState;->lastReportedTimeMillis:J
+Landroid/view/animation/AnimationUtils;->createAnimationFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/Animation;
+Landroid/view/animation/AnimationUtils;->createInterpolatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/Interpolator;
+Landroid/view/animation/AnimationUtils;->createLayoutAnimationFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/LayoutAnimationController;
+Landroid/view/animation/AnimationUtils;->createLayoutAnimationFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/view/animation/LayoutAnimationController;
+Landroid/view/animation/AnimationUtils;->loadInterpolator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/view/animation/Interpolator;
+Landroid/view/animation/AnimationUtils;->sAnimationState:Ljava/lang/ThreadLocal;
+Landroid/view/animation/AnimationUtils;->SEQUENTIALLY:I
+Landroid/view/animation/AnimationUtils;->TOGETHER:I
+Landroid/view/animation/AnticipateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+Landroid/view/animation/AnticipateInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/AnticipateInterpolator;->mTension:F
+Landroid/view/animation/AnticipateOvershootInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+Landroid/view/animation/AnticipateOvershootInterpolator;->a(FF)F
+Landroid/view/animation/AnticipateOvershootInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/AnticipateOvershootInterpolator;->mTension:F
+Landroid/view/animation/AnticipateOvershootInterpolator;->o(FF)F
+Landroid/view/animation/BaseInterpolator;->getChangingConfiguration()I
+Landroid/view/animation/BaseInterpolator;->mChangingConfiguration:I
+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
+Landroid/view/animation/ClipRectAnimation;->mFromBottomType:I
+Landroid/view/animation/ClipRectAnimation;->mFromBottomValue:F
+Landroid/view/animation/ClipRectAnimation;->mFromLeftType:I
+Landroid/view/animation/ClipRectAnimation;->mFromLeftValue:F
+Landroid/view/animation/ClipRectAnimation;->mFromRect:Landroid/graphics/Rect;
+Landroid/view/animation/ClipRectAnimation;->mFromRightType:I
+Landroid/view/animation/ClipRectAnimation;->mFromRightValue:F
+Landroid/view/animation/ClipRectAnimation;->mFromTopType:I
+Landroid/view/animation/ClipRectAnimation;->mFromTopValue:F
+Landroid/view/animation/ClipRectAnimation;->mToBottomType:I
+Landroid/view/animation/ClipRectAnimation;->mToBottomValue:F
+Landroid/view/animation/ClipRectAnimation;->mToLeftType:I
+Landroid/view/animation/ClipRectAnimation;->mToLeftValue:F
+Landroid/view/animation/ClipRectAnimation;->mToRect:Landroid/graphics/Rect;
+Landroid/view/animation/ClipRectAnimation;->mToRightType:I
+Landroid/view/animation/ClipRectAnimation;->mToRightValue:F
+Landroid/view/animation/ClipRectAnimation;->mToTopType:I
+Landroid/view/animation/ClipRectAnimation;->mToTopValue:F
+Landroid/view/animation/CycleInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+Landroid/view/animation/CycleInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/CycleInterpolator;->mCycles:F
+Landroid/view/animation/DecelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+Landroid/view/animation/DecelerateInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/DecelerateInterpolator;->mFactor:F
+Landroid/view/animation/GridLayoutAnimationController;->getTransformedColumnIndex(Landroid/view/animation/GridLayoutAnimationController$AnimationParameters;)I
+Landroid/view/animation/GridLayoutAnimationController;->getTransformedRowIndex(Landroid/view/animation/GridLayoutAnimationController$AnimationParameters;)I
+Landroid/view/animation/GridLayoutAnimationController;->mColumnDelay:F
+Landroid/view/animation/GridLayoutAnimationController;->mDirection:I
+Landroid/view/animation/GridLayoutAnimationController;->mDirectionPriority:I
+Landroid/view/animation/GridLayoutAnimationController;->mRowDelay:F
+Landroid/view/animation/LayoutAnimationController;->mDelay:F
+Landroid/view/animation/LayoutAnimationController;->mDuration:J
+Landroid/view/animation/LayoutAnimationController;->mMaxDelay:J
+Landroid/view/animation/LayoutAnimationController;->mOrder:I
+Landroid/view/animation/LinearInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/OvershootInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+Landroid/view/animation/OvershootInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/OvershootInterpolator;->mTension:F
+Landroid/view/animation/PathInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+Landroid/view/animation/PathInterpolator;->createNativeInterpolator()J
+Landroid/view/animation/PathInterpolator;->initCubic(FFFF)V
+Landroid/view/animation/PathInterpolator;->initPath(Landroid/graphics/Path;)V
+Landroid/view/animation/PathInterpolator;->initQuad(FF)V
+Landroid/view/animation/PathInterpolator;->mX:[F
+Landroid/view/animation/PathInterpolator;->mY:[F
+Landroid/view/animation/PathInterpolator;->parseInterpolatorFromTypeArray(Landroid/content/res/TypedArray;)V
+Landroid/view/animation/PathInterpolator;->PRECISION:F
+Landroid/view/animation/RotateAnimation;->initializePivotPoint()V
+Landroid/view/animation/RotateAnimation;->mFromDegrees:F
+Landroid/view/animation/RotateAnimation;->mPivotX:F
+Landroid/view/animation/RotateAnimation;->mPivotXType:I
+Landroid/view/animation/RotateAnimation;->mPivotXValue:F
+Landroid/view/animation/RotateAnimation;->mPivotY:F
+Landroid/view/animation/RotateAnimation;->mPivotYType:I
+Landroid/view/animation/RotateAnimation;->mPivotYValue:F
+Landroid/view/animation/RotateAnimation;->mToDegrees:F
+Landroid/view/animation/ScaleAnimation;->initializePivotPoint()V
+Landroid/view/animation/ScaleAnimation;->mFromX:F
+Landroid/view/animation/ScaleAnimation;->mFromXData:I
+Landroid/view/animation/ScaleAnimation;->mFromXType:I
+Landroid/view/animation/ScaleAnimation;->mFromY:F
+Landroid/view/animation/ScaleAnimation;->mFromYData:I
+Landroid/view/animation/ScaleAnimation;->mFromYType:I
+Landroid/view/animation/ScaleAnimation;->mPivotX:F
+Landroid/view/animation/ScaleAnimation;->mPivotXType:I
+Landroid/view/animation/ScaleAnimation;->mPivotXValue:F
+Landroid/view/animation/ScaleAnimation;->mPivotY:F
+Landroid/view/animation/ScaleAnimation;->mPivotYType:I
+Landroid/view/animation/ScaleAnimation;->mPivotYValue:F
+Landroid/view/animation/ScaleAnimation;->mResources:Landroid/content/res/Resources;
+Landroid/view/animation/ScaleAnimation;->mToX:F
+Landroid/view/animation/ScaleAnimation;->mToXData:I
+Landroid/view/animation/ScaleAnimation;->mToXType:I
+Landroid/view/animation/ScaleAnimation;->mToY:F
+Landroid/view/animation/ScaleAnimation;->mToYData:I
+Landroid/view/animation/ScaleAnimation;->mToYType:I
+Landroid/view/animation/ScaleAnimation;->resolveScale(FIIII)F
+Landroid/view/animation/Transformation;->getClipRect()Landroid/graphics/Rect;
+Landroid/view/animation/Transformation;->hasClipRect()Z
+Landroid/view/animation/Transformation;->mClipRect:Landroid/graphics/Rect;
+Landroid/view/animation/Transformation;->mHasClipRect:Z
+Landroid/view/animation/Transformation;->postCompose(Landroid/view/animation/Transformation;)V
+Landroid/view/animation/Transformation;->setClipRect(IIII)V
+Landroid/view/animation/Transformation;->setClipRect(Landroid/graphics/Rect;)V
+Landroid/view/animation/Transformation;->toShortString(Ljava/lang/StringBuilder;)V
+Landroid/view/animation/TranslateAnimation;->mFromXDelta:F
+Landroid/view/animation/TranslateAnimation;->mFromXType:I
+Landroid/view/animation/TranslateAnimation;->mFromYDelta:F
+Landroid/view/animation/TranslateAnimation;->mFromYType:I
+Landroid/view/animation/TranslateAnimation;->mToXDelta:F
+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;
+Landroid/view/AppTransitionAnimationSpec;->rect:Landroid/graphics/Rect;
+Landroid/view/AppTransitionAnimationSpec;->taskId:I
+Landroid/view/autofill/AutofillId;-><init>(II)V
+Landroid/view/autofill/AutofillId;-><init>(Landroid/os/Parcel;)V
+Landroid/view/autofill/AutofillId;->getViewId()I
+Landroid/view/autofill/AutofillId;->getVirtualChildId()I
+Landroid/view/autofill/AutofillId;->isVirtual()Z
+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;
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientFindViewByAutofillIdTraversal(Landroid/view/autofill/AutofillId;)Landroid/view/View;
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientFindViewsByAutofillIdTraversal([Landroid/view/autofill/AutofillId;)[Landroid/view/View;
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientGetActivityToken()Landroid/os/IBinder;
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientGetComponentName()Landroid/content/ComponentName;
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientGetNextAutofillId()Landroid/view/autofill/AutofillId;
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientGetViewVisibility([Landroid/view/autofill/AutofillId;)[Z
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientIsCompatibilityModeEnabled()Z
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientIsFillUiShowing()Z
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientIsVisibleForAutofill()Z
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientRequestHideFillUi()Z
+Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientRequestShowFillUi(Landroid/view/View;IILandroid/graphics/Rect;Landroid/view/autofill/IAutofillWindowPresenter;)Z
+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
+Landroid/view/autofill/AutofillManager$AutofillManagerClient;->dispatchUnhandledKey(ILandroid/view/autofill/AutofillId;Landroid/view/KeyEvent;)V
+Landroid/view/autofill/AutofillManager$AutofillManagerClient;->mAfm:Ljava/lang/ref/WeakReference;
+Landroid/view/autofill/AutofillManager$AutofillManagerClient;->notifyNoFillUi(ILandroid/view/autofill/AutofillId;I)V
+Landroid/view/autofill/AutofillManager$AutofillManagerClient;->requestHideFillUi(ILandroid/view/autofill/AutofillId;)V
+Landroid/view/autofill/AutofillManager$AutofillManagerClient;->requestShowFillUi(ILandroid/view/autofill/AutofillId;IILandroid/graphics/Rect;Landroid/view/autofill/IAutofillWindowPresenter;)V
+Landroid/view/autofill/AutofillManager$AutofillManagerClient;->setSaveUiState(IZ)V
+Landroid/view/autofill/AutofillManager$AutofillManagerClient;->setSessionFinished(I)V
+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;
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->getEnabledAccessibilityServiceList(ILjava/util/List;)Ljava/util/List;
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->getInstalledAccessibilityServiceList(Ljava/util/List;)Ljava/util/List;
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->getRelevantEventTypes(I)I
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->isEnabled(Z)Z
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->isVirtualNode(I)Z
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->mCompatServiceInfo:Landroid/accessibilityservice/AccessibilityServiceInfo;
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->mFocusedBounds:Landroid/graphics/Rect;
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->mFocusedNodeId:J
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->mFocusedWindowId:I
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->mTempBounds:Landroid/graphics/Rect;
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->notifyValueChanged(IJ)V
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->notifyViewClicked(IJ)V
+Landroid/view/autofill/AutofillManager$CompatibilityBridge;->notifyViewEntered(IJLandroid/graphics/Rect;)Z
+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;
+Landroid/view/autofill/AutofillManager$TrackedViews;->mVisibleTrackedIds:Landroid/util/ArraySet;
+Landroid/view/autofill/AutofillManager$TrackedViews;->notifyViewVisibilityChangedLocked(Landroid/view/autofill/AutofillId;Z)V
+Landroid/view/autofill/AutofillManager$TrackedViews;->onVisibleForAutofillChangedLocked()V
+Landroid/view/autofill/AutofillManager$TrackedViews;->removeFromSet(Landroid/util/ArraySet;Ljava/lang/Object;)Landroid/util/ArraySet;
+Landroid/view/autofill/AutofillManager;-><init>(Landroid/content/Context;Landroid/view/autofill/IAutoFillManager;)V
+Landroid/view/autofill/AutofillManager;->ACTION_START_SESSION:I
+Landroid/view/autofill/AutofillManager;->ACTION_VALUE_CHANGED:I
+Landroid/view/autofill/AutofillManager;->ACTION_VIEW_ENTERED:I
+Landroid/view/autofill/AutofillManager;->ACTION_VIEW_EXITED:I
+Landroid/view/autofill/AutofillManager;->addEnteredIdLocked(Landroid/view/autofill/AutofillId;)V
+Landroid/view/autofill/AutofillManager;->authenticate(IILandroid/content/IntentSender;Landroid/content/Intent;)V
+Landroid/view/autofill/AutofillManager;->AUTHENTICATION_ID_DATASET_ID_MASK:I
+Landroid/view/autofill/AutofillManager;->AUTHENTICATION_ID_DATASET_ID_SHIFT:I
+Landroid/view/autofill/AutofillManager;->AUTHENTICATION_ID_DATASET_ID_UNDEFINED:I
+Landroid/view/autofill/AutofillManager;->autofill(ILjava/util/List;Ljava/util/List;)V
+Landroid/view/autofill/AutofillManager;->cancelLocked()V
+Landroid/view/autofill/AutofillManager;->cancelSessionLocked()V
+Landroid/view/autofill/AutofillManager;->commitLocked()V
+Landroid/view/autofill/AutofillManager;->disableOwnedAutofillServices()V
+Landroid/view/autofill/AutofillManager;->dispatchUnhandledKey(ILandroid/view/autofill/AutofillId;Landroid/view/KeyEvent;)V
+Landroid/view/autofill/AutofillManager;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+Landroid/view/autofill/AutofillManager;->enableCompatibilityMode()V
+Landroid/view/autofill/AutofillManager;->ensureServiceClientAddedIfNeededLocked()V
+Landroid/view/autofill/AutofillManager;->EXTRA_RESTORE_SESSION_TOKEN:Ljava/lang/String;
+Landroid/view/autofill/AutofillManager;->FC_SERVICE_TIMEOUT:I
+Landroid/view/autofill/AutofillManager;->findView(Landroid/view/autofill/AutofillId;)Landroid/view/View;
+Landroid/view/autofill/AutofillManager;->finishSessionLocked()V
+Landroid/view/autofill/AutofillManager;->FLAG_ADD_CLIENT_DEBUG:I
+Landroid/view/autofill/AutofillManager;->FLAG_ADD_CLIENT_ENABLED:I
+Landroid/view/autofill/AutofillManager;->FLAG_ADD_CLIENT_VERBOSE:I
+Landroid/view/autofill/AutofillManager;->getAutofillId(Landroid/view/View;I)Landroid/view/autofill/AutofillId;
+Landroid/view/autofill/AutofillManager;->getClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+Landroid/view/autofill/AutofillManager;->getDatasetIdFromAuthenticationId(I)I
+Landroid/view/autofill/AutofillManager;->getFillEventHistory()Landroid/service/autofill/FillEventHistory;
+Landroid/view/autofill/AutofillManager;->getRequestIdFromAuthenticationId(I)I
+Landroid/view/autofill/AutofillManager;->getStateAsString(I)Ljava/lang/String;
+Landroid/view/autofill/AutofillManager;->getStateAsStringLocked()Ljava/lang/String;
+Landroid/view/autofill/AutofillManager;->hasAutofillFeature()Z
+Landroid/view/autofill/AutofillManager;->isActiveLocked()Z
+Landroid/view/autofill/AutofillManager;->isAutofillUiShowing()Z
+Landroid/view/autofill/AutofillManager;->isClientDisablingEnterExitEvent()Z
+Landroid/view/autofill/AutofillManager;->isClientVisibleForAutofillLocked()Z
+Landroid/view/autofill/AutofillManager;->isCompatibilityModeEnabledLocked()Z
+Landroid/view/autofill/AutofillManager;->isDisabledByServiceLocked()Z
+Landroid/view/autofill/AutofillManager;->isFinishedLocked()Z
+Landroid/view/autofill/AutofillManager;->LAST_AUTOFILLED_DATA_TAG:Ljava/lang/String;
+Landroid/view/autofill/AutofillManager;->makeAuthenticationId(II)I
+Landroid/view/autofill/AutofillManager;->mCallback:Landroid/view/autofill/AutofillManager$AutofillCallback;
+Landroid/view/autofill/AutofillManager;->mCompatibilityBridge:Landroid/view/autofill/AutofillManager$CompatibilityBridge;
+Landroid/view/autofill/AutofillManager;->mContext:Landroid/content/Context;
+Landroid/view/autofill/AutofillManager;->mEnabled:Z
+Landroid/view/autofill/AutofillManager;->mEnteredIds:Landroid/util/ArraySet;
+Landroid/view/autofill/AutofillManager;->mFillableIds:Landroid/util/ArraySet;
+Landroid/view/autofill/AutofillManager;->mIdShownFillUi:Landroid/view/autofill/AutofillId;
+Landroid/view/autofill/AutofillManager;->mLastAutofilledData:Landroid/view/autofill/ParcelableMap;
+Landroid/view/autofill/AutofillManager;->mLock:Ljava/lang/Object;
+Landroid/view/autofill/AutofillManager;->mMetricsLogger:Lcom/android/internal/logging/MetricsLogger;
+Landroid/view/autofill/AutofillManager;->mOnInvisibleCalled:Z
+Landroid/view/autofill/AutofillManager;->mSaveOnFinish:Z
+Landroid/view/autofill/AutofillManager;->mSaveTriggerId:Landroid/view/autofill/AutofillId;
+Landroid/view/autofill/AutofillManager;->mService:Landroid/view/autofill/IAutoFillManager;
+Landroid/view/autofill/AutofillManager;->mServiceClient:Landroid/view/autofill/IAutoFillManagerClient;
+Landroid/view/autofill/AutofillManager;->mServiceClientCleaner:Lsun/misc/Cleaner;
+Landroid/view/autofill/AutofillManager;->mSessionId:I
+Landroid/view/autofill/AutofillManager;->mState:I
+Landroid/view/autofill/AutofillManager;->mTrackedViews:Landroid/view/autofill/AutofillManager$TrackedViews;
+Landroid/view/autofill/AutofillManager;->newLog(I)Landroid/metrics/LogMaker;
+Landroid/view/autofill/AutofillManager;->notifyNoFillUi(ILandroid/view/autofill/AutofillId;I)V
+Landroid/view/autofill/AutofillManager;->notifyViewClicked(Landroid/view/autofill/AutofillId;)V
+Landroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;I)V
+Landroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;ILandroid/graphics/Rect;I)V
+Landroid/view/autofill/AutofillManager;->notifyViewEnteredLocked(Landroid/view/View;I)Landroid/view/autofill/AutofillManager$AutofillCallback;
+Landroid/view/autofill/AutofillManager;->notifyViewEnteredLocked(Landroid/view/View;ILandroid/graphics/Rect;I)Landroid/view/autofill/AutofillManager$AutofillCallback;
+Landroid/view/autofill/AutofillManager;->notifyViewExitedLocked(Landroid/view/View;)V
+Landroid/view/autofill/AutofillManager;->notifyViewExitedLocked(Landroid/view/View;I)V
+Landroid/view/autofill/AutofillManager;->notifyViewVisibilityChangedInternal(Landroid/view/View;IZZ)V
+Landroid/view/autofill/AutofillManager;->NO_SESSION:I
+Landroid/view/autofill/AutofillManager;->onActivityFinishing()V
+Landroid/view/autofill/AutofillManager;->onAuthenticationResult(ILandroid/content/Intent;Landroid/view/View;)V
+Landroid/view/autofill/AutofillManager;->onCreate(Landroid/os/Bundle;)V
+Landroid/view/autofill/AutofillManager;->onInvisibleForAutofill()V
+Landroid/view/autofill/AutofillManager;->onPendingSaveUi(ILandroid/os/IBinder;)V
+Landroid/view/autofill/AutofillManager;->onSaveInstanceState(Landroid/os/Bundle;)V
+Landroid/view/autofill/AutofillManager;->onVisibleForAutofill()V
+Landroid/view/autofill/AutofillManager;->PENDING_UI_OPERATION_CANCEL:I
+Landroid/view/autofill/AutofillManager;->PENDING_UI_OPERATION_RESTORE:I
+Landroid/view/autofill/AutofillManager;->post(Ljava/lang/Runnable;)V
+Landroid/view/autofill/AutofillManager;->requestHideFillUi()V
+Landroid/view/autofill/AutofillManager;->requestHideFillUi(Landroid/view/autofill/AutofillId;Landroid/view/View;)V
+Landroid/view/autofill/AutofillManager;->requestHideFillUi(Landroid/view/autofill/AutofillId;Z)V
+Landroid/view/autofill/AutofillManager;->requestShowFillUi(ILandroid/view/autofill/AutofillId;IILandroid/graphics/Rect;Landroid/view/autofill/IAutofillWindowPresenter;)V
+Landroid/view/autofill/AutofillManager;->resetSessionLocked(Z)V
+Landroid/view/autofill/AutofillManager;->SESSION_ID_TAG:Ljava/lang/String;
+Landroid/view/autofill/AutofillManager;->setAutofilledIfValuesIs(Landroid/view/View;Landroid/view/autofill/AutofillValue;)V
+Landroid/view/autofill/AutofillManager;->setNotifyOnClickLocked(Landroid/view/autofill/AutofillId;Z)V
+Landroid/view/autofill/AutofillManager;->setSaveUiState(IZ)V
+Landroid/view/autofill/AutofillManager;->setSessionFinished(I)V
+Landroid/view/autofill/AutofillManager;->setState(I)V
+Landroid/view/autofill/AutofillManager;->setTrackedViews(I[Landroid/view/autofill/AutofillId;ZZ[Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId;)V
+Landroid/view/autofill/AutofillManager;->SET_STATE_FLAG_DEBUG:I
+Landroid/view/autofill/AutofillManager;->SET_STATE_FLAG_ENABLED:I
+Landroid/view/autofill/AutofillManager;->SET_STATE_FLAG_RESET_CLIENT:I
+Landroid/view/autofill/AutofillManager;->SET_STATE_FLAG_RESET_SESSION:I
+Landroid/view/autofill/AutofillManager;->SET_STATE_FLAG_VERBOSE:I
+Landroid/view/autofill/AutofillManager;->shouldIgnoreViewEnteredLocked(Landroid/view/autofill/AutofillId;I)Z
+Landroid/view/autofill/AutofillManager;->startSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;I)V
+Landroid/view/autofill/AutofillManager;->STATE_ACTIVE:I
+Landroid/view/autofill/AutofillManager;->STATE_DISABLED_BY_SERVICE:I
+Landroid/view/autofill/AutofillManager;->STATE_FINISHED:I
+Landroid/view/autofill/AutofillManager;->STATE_SHOWING_SAVE_UI:I
+Landroid/view/autofill/AutofillManager;->STATE_TAG:Ljava/lang/String;
+Landroid/view/autofill/AutofillManager;->STATE_UNKNOWN:I
+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
+Landroid/view/autofill/AutofillPopupWindow;->findDropDownPosition(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z
+Landroid/view/autofill/AutofillPopupWindow;->getDecorViewLayoutParams()Landroid/view/WindowManager$LayoutParams;
+Landroid/view/autofill/AutofillPopupWindow;->hasContentView()Z
+Landroid/view/autofill/AutofillPopupWindow;->hasDecorView()Z
+Landroid/view/autofill/AutofillPopupWindow;->mFullScreen:Z
+Landroid/view/autofill/AutofillPopupWindow;->mOnAttachStateChangeListener:Landroid/view/View$OnAttachStateChangeListener;
+Landroid/view/autofill/AutofillPopupWindow;->mWindowLayoutParams:Landroid/view/WindowManager$LayoutParams;
+Landroid/view/autofill/AutofillPopupWindow;->mWindowPresenter:Landroid/view/autofill/AutofillPopupWindow$WindowPresenter;
+Landroid/view/autofill/AutofillPopupWindow;->TAG:Ljava/lang/String;
+Landroid/view/autofill/AutofillPopupWindow;->update(Landroid/view/View;IIIILandroid/graphics/Rect;)V
+Landroid/view/autofill/AutofillPopupWindow;->update(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V
+Landroid/view/autofill/AutofillValue;-><init>(ILjava/lang/Object;)V
+Landroid/view/autofill/AutofillValue;-><init>(Landroid/os/Parcel;)V
+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
+Landroid/view/autofill/Helper;->getRedacted(Ljava/lang/CharSequence;)Ljava/lang/String;
+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
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->finishSession(II)V
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->getAutofillServiceComponentName()Landroid/content/ComponentName;
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->getAvailableFieldClassificationAlgorithms()[Ljava/lang/String;
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->getDefaultFieldClassificationAlgorithm()Ljava/lang/String;
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->getFillEventHistory()Landroid/service/autofill/FillEventHistory;
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->getUserData()Landroid/service/autofill/UserData;
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->getUserDataId()Ljava/lang/String;
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->isFieldClassificationEnabled()Z
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->isServiceEnabled(ILjava/lang/String;)Z
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->isServiceSupported(I)Z
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->onPendingSaveUi(ILandroid/os/IBinder;)V
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->removeClient(Landroid/view/autofill/IAutoFillManagerClient;I)V
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->restoreSession(ILandroid/os/IBinder;Landroid/os/IBinder;)Z
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->setAuthenticationResult(Landroid/os/Bundle;III)V
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->setAutofillFailure(ILjava/util/List;I)V
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->setHasCallback(IIZ)V
+Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->setUserData(Landroid/service/autofill/UserData;)V
+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
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_cancelSession:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_disableOwnedAutofillServices:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_finishSession:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_getAutofillServiceComponentName:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_getAvailableFieldClassificationAlgorithms:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_getDefaultFieldClassificationAlgorithm:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_getFillEventHistory:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_getUserData:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_getUserDataId:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_isFieldClassificationEnabled:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_isServiceEnabled:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_isServiceSupported:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_onPendingSaveUi:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_removeClient:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_restoreSession:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_setAuthenticationResult:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_setAutofillFailure:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_setHasCallback:I
+Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_setUserData:I
+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
+Landroid/view/autofill/IAutoFillManager;->finishSession(II)V
+Landroid/view/autofill/IAutoFillManager;->getAutofillServiceComponentName()Landroid/content/ComponentName;
+Landroid/view/autofill/IAutoFillManager;->getAvailableFieldClassificationAlgorithms()[Ljava/lang/String;
+Landroid/view/autofill/IAutoFillManager;->getDefaultFieldClassificationAlgorithm()Ljava/lang/String;
+Landroid/view/autofill/IAutoFillManager;->getFillEventHistory()Landroid/service/autofill/FillEventHistory;
+Landroid/view/autofill/IAutoFillManager;->getUserData()Landroid/service/autofill/UserData;
+Landroid/view/autofill/IAutoFillManager;->getUserDataId()Ljava/lang/String;
+Landroid/view/autofill/IAutoFillManager;->isFieldClassificationEnabled()Z
+Landroid/view/autofill/IAutoFillManager;->isServiceEnabled(ILjava/lang/String;)Z
+Landroid/view/autofill/IAutoFillManager;->isServiceSupported(I)Z
+Landroid/view/autofill/IAutoFillManager;->onPendingSaveUi(ILandroid/os/IBinder;)V
+Landroid/view/autofill/IAutoFillManager;->removeClient(Landroid/view/autofill/IAutoFillManagerClient;I)V
+Landroid/view/autofill/IAutoFillManager;->restoreSession(ILandroid/os/IBinder;Landroid/os/IBinder;)Z
+Landroid/view/autofill/IAutoFillManager;->setAuthenticationResult(Landroid/os/Bundle;III)V
+Landroid/view/autofill/IAutoFillManager;->setAutofillFailure(ILjava/util/List;I)V
+Landroid/view/autofill/IAutoFillManager;->setHasCallback(IIZ)V
+Landroid/view/autofill/IAutoFillManager;->setUserData(Landroid/service/autofill/UserData;)V
+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
+Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->dispatchUnhandledKey(ILandroid/view/autofill/AutofillId;Landroid/view/KeyEvent;)V
+Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->notifyNoFillUi(ILandroid/view/autofill/AutofillId;I)V
+Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->requestHideFillUi(ILandroid/view/autofill/AutofillId;)V
+Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->requestShowFillUi(ILandroid/view/autofill/AutofillId;IILandroid/graphics/Rect;Landroid/view/autofill/IAutofillWindowPresenter;)V
+Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->setSaveUiState(IZ)V
+Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->setSessionFinished(I)V
+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;
+Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_authenticate:I
+Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_autofill:I
+Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_dispatchUnhandledKey:I
+Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_notifyNoFillUi:I
+Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_requestHideFillUi:I
+Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_requestShowFillUi:I
+Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_setSaveUiState:I
+Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_setSessionFinished:I
+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
+Landroid/view/autofill/IAutoFillManagerClient;->notifyNoFillUi(ILandroid/view/autofill/AutofillId;I)V
+Landroid/view/autofill/IAutoFillManagerClient;->requestHideFillUi(ILandroid/view/autofill/AutofillId;)V
+Landroid/view/autofill/IAutoFillManagerClient;->requestShowFillUi(ILandroid/view/autofill/AutofillId;IILandroid/graphics/Rect;Landroid/view/autofill/IAutofillWindowPresenter;)V
+Landroid/view/autofill/IAutoFillManagerClient;->setSaveUiState(IZ)V
+Landroid/view/autofill/IAutoFillManagerClient;->setSessionFinished(I)V
+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;
+Landroid/view/BatchedInputEventReceiver;->mBatchedInputScheduled:Z
+Landroid/view/BatchedInputEventReceiver;->mChoreographer:Landroid/view/Choreographer;
+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
+Landroid/view/Choreographer;->CALLBACK_LAST:I
+Landroid/view/Choreographer;->CALLBACK_TRACE_TITLES:[Ljava/lang/String;
+Landroid/view/Choreographer;->CALLBACK_TRAVERSAL:I
+Landroid/view/Choreographer;->DEBUG_FRAMES:Z
+Landroid/view/Choreographer;->DEBUG_JANK:Z
+Landroid/view/Choreographer;->DEFAULT_FRAME_DELAY:J
+Landroid/view/Choreographer;->dispose()V
+Landroid/view/Choreographer;->doCallbacks(IJ)V
+Landroid/view/Choreographer;->doScheduleCallback(I)V
+Landroid/view/Choreographer;->doScheduleVsync()V
+Landroid/view/Choreographer;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+Landroid/view/Choreographer;->FRAME_CALLBACK_TOKEN:Ljava/lang/Object;
+Landroid/view/Choreographer;->getFrameIntervalNanos()J
+Landroid/view/Choreographer;->getLastFrameTimeNanos()J
+Landroid/view/Choreographer;->getMainThreadInstance()Landroid/view/Choreographer;
+Landroid/view/Choreographer;->getRefreshRate()F
+Landroid/view/Choreographer;->isRunningOnLooperThreadLocked()Z
+Landroid/view/Choreographer;->mCallbackPool:Landroid/view/Choreographer$CallbackRecord;
+Landroid/view/Choreographer;->mCallbacksRunning:Z
+Landroid/view/Choreographer;->mDebugPrintNextFrameTimeDelta:Z
+Landroid/view/Choreographer;->mFPSDivisor:I
+Landroid/view/Choreographer;->mFrameInfo:Landroid/view/FrameInfo;
+Landroid/view/Choreographer;->mFrameScheduled:Z
+Landroid/view/Choreographer;->mHandler:Landroid/view/Choreographer$FrameHandler;
+Landroid/view/Choreographer;->mLooper:Landroid/os/Looper;
+Landroid/view/Choreographer;->mMainInstance:Landroid/view/Choreographer;
+Landroid/view/Choreographer;->MSG_DO_FRAME:I
+Landroid/view/Choreographer;->MSG_DO_SCHEDULE_CALLBACK:I
+Landroid/view/Choreographer;->MSG_DO_SCHEDULE_VSYNC:I
+Landroid/view/Choreographer;->obtainCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord;
+Landroid/view/Choreographer;->postCallbackDelayedInternal(ILjava/lang/Object;Ljava/lang/Object;J)V
+Landroid/view/Choreographer;->recycleCallbackLocked(Landroid/view/Choreographer$CallbackRecord;)V
+Landroid/view/Choreographer;->releaseInstance()V
+Landroid/view/Choreographer;->removeCallbacksInternal(ILjava/lang/Object;Ljava/lang/Object;)V
+Landroid/view/Choreographer;->scheduleFrameLocked(J)V
+Landroid/view/Choreographer;->setFPSDivisor(I)V
+Landroid/view/Choreographer;->sFrameDelay:J
+Landroid/view/Choreographer;->SKIPPED_FRAME_WARNING_LIMIT:I
+Landroid/view/Choreographer;->sSfThreadInstance:Ljava/lang/ThreadLocal;
+Landroid/view/Choreographer;->sThreadInstance:Ljava/lang/ThreadLocal;
+Landroid/view/Choreographer;->subtractFrameDelay(J)J
+Landroid/view/Choreographer;->TAG:Ljava/lang/String;
+Landroid/view/Choreographer;->USE_FRAME_TIME:Z
+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
+Landroid/view/Display$HdrCapabilities;->mMaxLuminance:F
+Landroid/view/Display$HdrCapabilities;->mMinLuminance:F
+Landroid/view/Display$HdrCapabilities;->mSupportedHdrTypes:[I
+Landroid/view/Display$HdrCapabilities;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/view/Display$Mode;-><init>(Landroid/os/Parcel;)V
+Landroid/view/Display$Mode;->EMPTY_ARRAY:[Landroid/view/Display$Mode;
+Landroid/view/Display$Mode;->matches(IIF)Z
+Landroid/view/Display$Mode;->mHeight:I
+Landroid/view/Display$Mode;->mModeId:I
+Landroid/view/Display$Mode;->mRefreshRate:F
+Landroid/view/Display$Mode;->mWidth:I
+Landroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/content/res/Resources;)V
+Landroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/view/DisplayAdjustments;)V
+Landroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/view/DisplayAdjustments;Landroid/content/res/Resources;)V
+Landroid/view/Display;->CACHED_APP_SIZE_DURATION_MILLIS:I
+Landroid/view/Display;->COLOR_MODE_ADOBE_RGB:I
+Landroid/view/Display;->COLOR_MODE_BT601_525:I
+Landroid/view/Display;->COLOR_MODE_BT601_525_UNADJUSTED:I
+Landroid/view/Display;->COLOR_MODE_BT601_625:I
+Landroid/view/Display;->COLOR_MODE_BT601_625_UNADJUSTED:I
+Landroid/view/Display;->COLOR_MODE_BT709:I
+Landroid/view/Display;->COLOR_MODE_DCI_P3:I
+Landroid/view/Display;->COLOR_MODE_DEFAULT:I
+Landroid/view/Display;->COLOR_MODE_DISPLAY_P3:I
+Landroid/view/Display;->COLOR_MODE_INVALID:I
+Landroid/view/Display;->COLOR_MODE_SRGB:I
+Landroid/view/Display;->DEBUG:Z
+Landroid/view/Display;->FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD:I
+Landroid/view/Display;->FLAG_SCALING_DISABLED:I
+Landroid/view/Display;->getColorMode()I
+Landroid/view/Display;->getLayerStack()I
+Landroid/view/Display;->getOverscanInsets(Landroid/graphics/Rect;)V
+Landroid/view/Display;->getOwnerUid()I
+Landroid/view/Display;->getRemoveMode()I
+Landroid/view/Display;->getSupportedColorModes()[I
+Landroid/view/Display;->hasAccess(I)Z
+Landroid/view/Display;->hasAccess(III)Z
+Landroid/view/Display;->isDozeState(I)Z
+Landroid/view/Display;->isPublicPresentation()Z
+Landroid/view/Display;->isSuspendedState(I)Z
+Landroid/view/Display;->mAddress:Ljava/lang/String;
+Landroid/view/Display;->mCachedAppHeightCompat:I
+Landroid/view/Display;->mCachedAppWidthCompat:I
+Landroid/view/Display;->mDisplayAdjustments:Landroid/view/DisplayAdjustments;
+Landroid/view/Display;->mDisplayId:I
+Landroid/view/Display;->mFlags:I
+Landroid/view/Display;->mGlobal:Landroid/hardware/display/DisplayManagerGlobal;
+Landroid/view/Display;->mIsValid:Z
+Landroid/view/Display;->mLastCachedAppSizeUpdate:J
+Landroid/view/Display;->mLayerStack:I
+Landroid/view/Display;->mOwnerPackageName:Ljava/lang/String;
+Landroid/view/Display;->mOwnerUid:I
+Landroid/view/Display;->mResources:Landroid/content/res/Resources;
+Landroid/view/Display;->mTempMetrics:Landroid/util/DisplayMetrics;
+Landroid/view/Display;->mType:I
+Landroid/view/Display;->REMOVE_MODE_DESTROY_CONTENT:I
+Landroid/view/Display;->REMOVE_MODE_MOVE_CONTENT_TO_PRIMARY:I
+Landroid/view/Display;->requestColorMode(I)V
+Landroid/view/Display;->stateToString(I)Ljava/lang/String;
+Landroid/view/Display;->TAG:Ljava/lang/String;
+Landroid/view/Display;->typeToString(I)Ljava/lang/String;
+Landroid/view/Display;->TYPE_BUILT_IN:I
+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;
+Landroid/view/DisplayAdjustments;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
+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;
+Landroid/view/DisplayCutout$ParcelableWrapper;->get()Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout$ParcelableWrapper;->mInner:Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout$ParcelableWrapper;->readCutoutFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout$ParcelableWrapper;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout$ParcelableWrapper;)V
+Landroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout;)V
+Landroid/view/DisplayCutout$ParcelableWrapper;->writeCutoutToParcel(Landroid/view/DisplayCutout;Landroid/os/Parcel;I)V
+Landroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Region;Z)V
+Landroid/view/DisplayCutout;->atLeastZero(I)I
+Landroid/view/DisplayCutout;->BOTTOM_MARKER:Ljava/lang/String;
+Landroid/view/DisplayCutout;->boundingRectsToRegion(Ljava/util/List;)Landroid/graphics/Region;
+Landroid/view/DisplayCutout;->CACHE_LOCK:Ljava/lang/Object;
+Landroid/view/DisplayCutout;->DP_MARKER:Ljava/lang/String;
+Landroid/view/DisplayCutout;->EMPTY_REGION:Landroid/graphics/Region;
+Landroid/view/DisplayCutout;->EMULATION_OVERLAY_CATEGORY:Ljava/lang/String;
+Landroid/view/DisplayCutout;->fromBoundingRect(IIII)Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout;->fromBounds(Landroid/graphics/Path;)Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout;->fromResources(Landroid/content/res/Resources;II)Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout;->fromSpec(Ljava/lang/String;IIF)Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout;->getBounds()Landroid/graphics/Region;
+Landroid/view/DisplayCutout;->getSafeInsets()Landroid/graphics/Rect;
+Landroid/view/DisplayCutout;->inset(IIII)Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout;->isBoundsEmpty()Z
+Landroid/view/DisplayCutout;->isEmpty()Z
+Landroid/view/DisplayCutout;->mBounds:Landroid/graphics/Region;
+Landroid/view/DisplayCutout;->mSafeInsets:Landroid/graphics/Rect;
+Landroid/view/DisplayCutout;->NO_CUTOUT:Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout;->NULL_PAIR:Landroid/util/Pair;
+Landroid/view/DisplayCutout;->pathAndDisplayCutoutFromSpec(Ljava/lang/String;IIF)Landroid/util/Pair;
+Landroid/view/DisplayCutout;->pathFromResources(Landroid/content/res/Resources;II)Landroid/graphics/Path;
+Landroid/view/DisplayCutout;->replaceSafeInsets(Landroid/graphics/Rect;)Landroid/view/DisplayCutout;
+Landroid/view/DisplayCutout;->RIGHT_MARKER:Ljava/lang/String;
+Landroid/view/DisplayCutout;->sCachedCutout:Landroid/util/Pair;
+Landroid/view/DisplayCutout;->sCachedDensity:F
+Landroid/view/DisplayCutout;->sCachedDisplayHeight:I
+Landroid/view/DisplayCutout;->sCachedDisplayWidth:I
+Landroid/view/DisplayCutout;->sCachedSpec:Ljava/lang/String;
+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
+Landroid/view/DisplayEventReceiver;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/view/DisplayEventReceiver;->mMessageQueue:Landroid/os/MessageQueue;
+Landroid/view/DisplayEventReceiver;->nativeDispose(J)V
+Landroid/view/DisplayEventReceiver;->nativeInit(Ljava/lang/ref/WeakReference;Landroid/os/MessageQueue;I)J
+Landroid/view/DisplayEventReceiver;->nativeScheduleVsync(J)V
+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;
+Landroid/view/DisplayInfo;->appHeight:I
+Landroid/view/DisplayInfo;->appVsyncOffsetNanos:J
+Landroid/view/DisplayInfo;->appWidth:I
+Landroid/view/DisplayInfo;->colorMode:I
+Landroid/view/DisplayInfo;->copyFrom(Landroid/view/DisplayInfo;)V
+Landroid/view/DisplayInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/view/DisplayInfo;->defaultModeId:I
+Landroid/view/DisplayInfo;->equals(Landroid/view/DisplayInfo;)Z
+Landroid/view/DisplayInfo;->findDefaultModeByRefreshRate(F)I
+Landroid/view/DisplayInfo;->findMode(I)Landroid/view/Display$Mode;
+Landroid/view/DisplayInfo;->flags:I
+Landroid/view/DisplayInfo;->flagsToString(I)Ljava/lang/String;
+Landroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;)V
+Landroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V
+Landroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landroid/view/DisplayAdjustments;)V
+Landroid/view/DisplayInfo;->getDefaultMode()Landroid/view/Display$Mode;
+Landroid/view/DisplayInfo;->getDefaultRefreshRates()[F
+Landroid/view/DisplayInfo;->getLogicalMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V
+Landroid/view/DisplayInfo;->getMetricsWithSize(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;II)V
+Landroid/view/DisplayInfo;->getMode()Landroid/view/Display$Mode;
+Landroid/view/DisplayInfo;->getNaturalHeight()I
+Landroid/view/DisplayInfo;->getNaturalWidth()I
+Landroid/view/DisplayInfo;->hasAccess(I)Z
+Landroid/view/DisplayInfo;->hdrCapabilities:Landroid/view/Display$HdrCapabilities;
+Landroid/view/DisplayInfo;->isHdr()Z
+Landroid/view/DisplayInfo;->isWideColorGamut()Z
+Landroid/view/DisplayInfo;->largestNominalAppHeight:I
+Landroid/view/DisplayInfo;->largestNominalAppWidth:I
+Landroid/view/DisplayInfo;->layerStack:I
+Landroid/view/DisplayInfo;->logicalDensityDpi:I
+Landroid/view/DisplayInfo;->modeId:I
+Landroid/view/DisplayInfo;->name:Ljava/lang/String;
+Landroid/view/DisplayInfo;->overscanBottom:I
+Landroid/view/DisplayInfo;->overscanLeft:I
+Landroid/view/DisplayInfo;->overscanRight:I
+Landroid/view/DisplayInfo;->overscanTop:I
+Landroid/view/DisplayInfo;->ownerPackageName:Ljava/lang/String;
+Landroid/view/DisplayInfo;->ownerUid:I
+Landroid/view/DisplayInfo;->physicalXDpi:F
+Landroid/view/DisplayInfo;->physicalYDpi:F
+Landroid/view/DisplayInfo;->presentationDeadlineNanos:J
+Landroid/view/DisplayInfo;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/view/DisplayInfo;->removeMode:I
+Landroid/view/DisplayInfo;->smallestNominalAppHeight:I
+Landroid/view/DisplayInfo;->smallestNominalAppWidth:I
+Landroid/view/DisplayInfo;->state:I
+Landroid/view/DisplayInfo;->supportedColorModes:[I
+Landroid/view/DisplayInfo;->supportedModes:[Landroid/view/Display$Mode;
+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
+Landroid/view/DisplayListCanvas;->finishRecording()J
+Landroid/view/DisplayListCanvas;->insertInorderBarrier()V
+Landroid/view/DisplayListCanvas;->insertReorderBarrier()V
+Landroid/view/DisplayListCanvas;->isRecordingFor(Ljava/lang/Object;)Z
+Landroid/view/DisplayListCanvas;->MAX_BITMAP_SIZE:I
+Landroid/view/DisplayListCanvas;->mHeight:I
+Landroid/view/DisplayListCanvas;->mNode:Landroid/view/RenderNode;
+Landroid/view/DisplayListCanvas;->mWidth:I
+Landroid/view/DisplayListCanvas;->nCallDrawGLFunction(JJLjava/lang/Runnable;)V
+Landroid/view/DisplayListCanvas;->nCreateDisplayListCanvas(JII)J
+Landroid/view/DisplayListCanvas;->nDrawCircle(JJJJJ)V
+Landroid/view/DisplayListCanvas;->nDrawRenderNode(JJ)V
+Landroid/view/DisplayListCanvas;->nDrawRoundRect(JJJJJJJJ)V
+Landroid/view/DisplayListCanvas;->nDrawTextureLayer(JJ)V
+Landroid/view/DisplayListCanvas;->nFinishRecording(J)J
+Landroid/view/DisplayListCanvas;->nGetMaximumTextureHeight()I
+Landroid/view/DisplayListCanvas;->nGetMaximumTextureWidth()I
+Landroid/view/DisplayListCanvas;->nInsertReorderBarrier(JZ)V
+Landroid/view/DisplayListCanvas;->nResetDisplayListCanvas(JJII)V
+Landroid/view/DisplayListCanvas;->obtain(Landroid/view/RenderNode;II)Landroid/view/DisplayListCanvas;
+Landroid/view/DisplayListCanvas;->POOL_LIMIT:I
+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
+Landroid/view/DisplayProto;->COLOR_MODE_BT601_525_UNADJUSTED:I
+Landroid/view/DisplayProto;->COLOR_MODE_BT601_625:I
+Landroid/view/DisplayProto;->COLOR_MODE_BT601_625_UNADJUSTED:I
+Landroid/view/DisplayProto;->COLOR_MODE_BT709:I
+Landroid/view/DisplayProto;->COLOR_MODE_DCI_P3:I
+Landroid/view/DisplayProto;->COLOR_MODE_DISPLAY_P3:I
+Landroid/view/DisplayProto;->COLOR_MODE_INVALID:I
+Landroid/view/DisplayProto;->COLOR_MODE_SRGB:I
+Landroid/view/DragAndDropPermissions;-><init>(Landroid/os/Parcel;)V
+Landroid/view/DragAndDropPermissions;-><init>(Lcom/android/internal/view/IDragAndDropPermissions;)V
+Landroid/view/DragAndDropPermissions;->mDragAndDropPermissions:Lcom/android/internal/view/IDragAndDropPermissions;
+Landroid/view/DragAndDropPermissions;->mTransientToken:Landroid/os/IBinder;
+Landroid/view/DragAndDropPermissions;->obtain(Landroid/view/DragEvent;)Landroid/view/DragAndDropPermissions;
+Landroid/view/DragAndDropPermissions;->take(Landroid/os/IBinder;)Z
+Landroid/view/DragAndDropPermissions;->takeTransient()Z
+Landroid/view/DragEvent;-><init>()V
+Landroid/view/DragEvent;->getDragAndDropPermissions()Lcom/android/internal/view/IDragAndDropPermissions;
+Landroid/view/DragEvent;->gRecyclerLock:Ljava/lang/Object;
+Landroid/view/DragEvent;->gRecyclerTop:Landroid/view/DragEvent;
+Landroid/view/DragEvent;->gRecyclerUsed:I
+Landroid/view/DragEvent;->init(IFFLandroid/content/ClipDescription;Landroid/content/ClipData;Lcom/android/internal/view/IDragAndDropPermissions;Ljava/lang/Object;Z)V
+Landroid/view/DragEvent;->mAction:I
+Landroid/view/DragEvent;->MAX_RECYCLED:I
+Landroid/view/DragEvent;->mDragAndDropPermissions:Lcom/android/internal/view/IDragAndDropPermissions;
+Landroid/view/DragEvent;->mDragResult:Z
+Landroid/view/DragEvent;->mEventHandlerWasCalled:Z
+Landroid/view/DragEvent;->mLocalState:Ljava/lang/Object;
+Landroid/view/DragEvent;->mNext:Landroid/view/DragEvent;
+Landroid/view/DragEvent;->mRecycled:Z
+Landroid/view/DragEvent;->mRecycledLocation:Ljava/lang/RuntimeException;
+Landroid/view/DragEvent;->mX:F
+Landroid/view/DragEvent;->mY:F
+Landroid/view/DragEvent;->obtain()Landroid/view/DragEvent;
+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;
+Landroid/view/FocusFinder$FocusSorter;->mRectPool:Ljava/util/ArrayList;
+Landroid/view/FocusFinder$FocusSorter;->mRtlMult:I
+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;
+Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->mIsConnectedTo:Landroid/util/ArraySet;
+Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->mNextFoci:Landroid/util/ArrayMap;
+Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->mNextFocusGetter:Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;
+Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->mOriginalOrdinal:Landroid/util/ArrayMap;
+Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->mRoot:Landroid/view/View;
+Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->recycle()V
+Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->setFocusables(Ljava/util/List;Landroid/view/View;)V
+Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->setHeadOfChain(Landroid/view/View;)V
+Landroid/view/FocusFinder;-><init>()V
+Landroid/view/FocusFinder;->beamBeats(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+Landroid/view/FocusFinder;->beamsOverlap(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z
+Landroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View;
+Landroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;ILjava/util/ArrayList;)Landroid/view/View;
+Landroid/view/FocusFinder;->findNextFocusInAbsoluteDirection(Ljava/util/ArrayList;Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View;
+Landroid/view/FocusFinder;->findNextFocusInRelativeDirection(Ljava/util/ArrayList;Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View;
+Landroid/view/FocusFinder;->findNextKeyboardNavigationCluster(Landroid/view/View;Landroid/view/View;Ljava/util/List;I)Landroid/view/View;
+Landroid/view/FocusFinder;->findNextUserSpecifiedFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;
+Landroid/view/FocusFinder;->findNextUserSpecifiedKeyboardNavigationCluster(Landroid/view/View;Landroid/view/View;I)Landroid/view/View;
+Landroid/view/FocusFinder;->getEffectiveRoot(Landroid/view/ViewGroup;Landroid/view/View;)Landroid/view/ViewGroup;
+Landroid/view/FocusFinder;->getNextFocusable(Landroid/view/View;Ljava/util/ArrayList;I)Landroid/view/View;
+Landroid/view/FocusFinder;->getNextKeyboardNavigationCluster(Landroid/view/View;Landroid/view/View;Ljava/util/List;I)Landroid/view/View;
+Landroid/view/FocusFinder;->getPreviousFocusable(Landroid/view/View;Ljava/util/ArrayList;I)Landroid/view/View;
+Landroid/view/FocusFinder;->getPreviousKeyboardNavigationCluster(Landroid/view/View;Landroid/view/View;Ljava/util/List;I)Landroid/view/View;
+Landroid/view/FocusFinder;->getWeightedDistanceFor(JJ)J
+Landroid/view/FocusFinder;->isBetterCandidate(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+Landroid/view/FocusFinder;->isCandidate(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Z
+Landroid/view/FocusFinder;->isToDirectionOf(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z
+Landroid/view/FocusFinder;->isTouchCandidate(IILandroid/graphics/Rect;I)Z
+Landroid/view/FocusFinder;->isValidId(I)Z
+Landroid/view/FocusFinder;->majorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+Landroid/view/FocusFinder;->majorAxisDistanceRaw(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+Landroid/view/FocusFinder;->majorAxisDistanceToFarEdge(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+Landroid/view/FocusFinder;->majorAxisDistanceToFarEdgeRaw(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+Landroid/view/FocusFinder;->mBestCandidateRect:Landroid/graphics/Rect;
+Landroid/view/FocusFinder;->mFocusedRect:Landroid/graphics/Rect;
+Landroid/view/FocusFinder;->mFocusSorter:Landroid/view/FocusFinder$FocusSorter;
+Landroid/view/FocusFinder;->minorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+Landroid/view/FocusFinder;->mOtherRect:Landroid/graphics/Rect;
+Landroid/view/FocusFinder;->mTempList:Ljava/util/ArrayList;
+Landroid/view/FocusFinder;->mUserSpecifiedClusterComparator:Landroid/view/FocusFinder$UserSpecifiedFocusComparator;
+Landroid/view/FocusFinder;->mUserSpecifiedFocusComparator:Landroid/view/FocusFinder$UserSpecifiedFocusComparator;
+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
+Landroid/view/FocusFinderHelper;->isBetterCandidate(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+Landroid/view/FocusFinderHelper;->isCandidate(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Z
+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
+Landroid/view/FrameInfo;->DRAW_START:I
+Landroid/view/FrameInfo;->FLAGS:I
+Landroid/view/FrameInfo;->FLAG_WINDOW_LAYOUT_CHANGED:J
+Landroid/view/FrameInfo;->HANDLE_INPUT_START:I
+Landroid/view/FrameInfo;->INTENDED_VSYNC:I
+Landroid/view/FrameInfo;->markAnimationsStart()V
+Landroid/view/FrameInfo;->markDrawStart()V
+Landroid/view/FrameInfo;->markInputHandlingStart()V
+Landroid/view/FrameInfo;->markPerformTraversalsStart()V
+Landroid/view/FrameInfo;->mFrameInfo:[J
+Landroid/view/FrameInfo;->NEWEST_INPUT_EVENT:I
+Landroid/view/FrameInfo;->OLDEST_INPUT_EVENT:I
+Landroid/view/FrameInfo;->PERFORM_TRAVERSALS_START:I
+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
+Landroid/view/FrameMetrics$Index;->FRAME_COMPLETED:I
+Landroid/view/FrameMetrics$Index;->FRAME_STATS_COUNT:I
+Landroid/view/FrameMetrics$Index;->HANDLE_INPUT_START:I
+Landroid/view/FrameMetrics$Index;->INTENDED_VSYNC:I
+Landroid/view/FrameMetrics$Index;->ISSUE_DRAW_COMMANDS_START:I
+Landroid/view/FrameMetrics$Index;->NEWEST_INPUT_EVENT:I
+Landroid/view/FrameMetrics$Index;->OLDEST_INPUT_EVENT:I
+Landroid/view/FrameMetrics$Index;->PERFORM_TRAVERSALS_START:I
+Landroid/view/FrameMetrics$Index;->SWAP_BUFFERS:I
+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
+Landroid/view/GestureDetector;->DOUBLE_TAP_MIN_TIME:I
+Landroid/view/GestureDetector;->DOUBLE_TAP_TIMEOUT:I
+Landroid/view/GestureDetector;->init(Landroid/content/Context;)V
+Landroid/view/GestureDetector;->isConsideredDoubleTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;Landroid/view/MotionEvent;)Z
+Landroid/view/GestureDetector;->LONG_PRESS:I
+Landroid/view/GestureDetector;->mAlwaysInBiggerTapRegion:Z
+Landroid/view/GestureDetector;->mContextClickListener:Landroid/view/GestureDetector$OnContextClickListener;
+Landroid/view/GestureDetector;->mCurrentDownEvent:Landroid/view/MotionEvent;
+Landroid/view/GestureDetector;->mDeferConfirmSingleTap:Z
+Landroid/view/GestureDetector;->mDoubleTapListener:Landroid/view/GestureDetector$OnDoubleTapListener;
+Landroid/view/GestureDetector;->mDoubleTapSlopSquare:I
+Landroid/view/GestureDetector;->mDoubleTapTouchSlopSquare:I
+Landroid/view/GestureDetector;->mDownFocusX:F
+Landroid/view/GestureDetector;->mDownFocusY:F
+Landroid/view/GestureDetector;->mHandler:Landroid/os/Handler;
+Landroid/view/GestureDetector;->mIgnoreNextUpEvent:Z
+Landroid/view/GestureDetector;->mInContextClick:Z
+Landroid/view/GestureDetector;->mInLongPress:Z
+Landroid/view/GestureDetector;->mInputEventConsistencyVerifier:Landroid/view/InputEventConsistencyVerifier;
+Landroid/view/GestureDetector;->mIsDoubleTapping:Z
+Landroid/view/GestureDetector;->mIsLongpressEnabled:Z
+Landroid/view/GestureDetector;->mLastFocusX:F
+Landroid/view/GestureDetector;->mLastFocusY:F
+Landroid/view/GestureDetector;->mMaximumFlingVelocity:I
+Landroid/view/GestureDetector;->mPreviousUpEvent:Landroid/view/MotionEvent;
+Landroid/view/GestureDetector;->mStillDown:Z
+Landroid/view/GestureDetector;->mVelocityTracker:Landroid/view/VelocityTracker;
+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
+Landroid/view/GhostView;->getGhost(Landroid/view/View;)Landroid/view/GhostView;
+Landroid/view/GhostView;->getInsertIndex(Landroid/view/ViewGroup;Ljava/util/ArrayList;Ljava/util/ArrayList;I)I
+Landroid/view/GhostView;->getParents(Landroid/view/View;Ljava/util/ArrayList;)V
+Landroid/view/GhostView;->insertIntoOverlay(Landroid/view/ViewGroup;Landroid/view/ViewGroup;Landroid/view/GhostView;Ljava/util/ArrayList;I)V
+Landroid/view/GhostView;->isGhostWrapper(Landroid/view/View;)Z
+Landroid/view/GhostView;->isOnTop(Landroid/view/View;Landroid/view/View;)Z
+Landroid/view/GhostView;->isOnTop(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+Landroid/view/GhostView;->mBeingMoved:Z
+Landroid/view/GhostView;->moveGhostViewsToTop(Landroid/view/ViewGroup;Ljava/util/ArrayList;)I
+Landroid/view/GhostView;->mReferences:I
+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
+Landroid/view/HandlerActionQueue;->getRunnable(I)Ljava/lang/Runnable;
+Landroid/view/HandlerActionQueue;->mActions:[Landroid/view/HandlerActionQueue$HandlerAction;
+Landroid/view/HandlerActionQueue;->mCount:I
+Landroid/view/HandlerActionQueue;->post(Ljava/lang/Runnable;)V
+Landroid/view/HandlerActionQueue;->postDelayed(Ljava/lang/Runnable;J)V
+Landroid/view/HandlerActionQueue;->removeCallbacks(Ljava/lang/Runnable;)V
+Landroid/view/HandlerActionQueue;->size()I
+Landroid/view/HapticFeedbackConstants;-><init>()V
+Landroid/view/HapticFeedbackConstants;->CALENDAR_DATE:I
+Landroid/view/HapticFeedbackConstants;->CONFIRM:I
+Landroid/view/HapticFeedbackConstants;->DRAG_CROSSING:I
+Landroid/view/HapticFeedbackConstants;->EDGE_RELEASE:I
+Landroid/view/HapticFeedbackConstants;->EDGE_SQUEEZE:I
+Landroid/view/HapticFeedbackConstants;->ENTRY_BUMP:I
+Landroid/view/HapticFeedbackConstants;->GESTURE_END:I
+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;
+Landroid/view/IDockedStackListener$Stub$Proxy;->onAdjustedForImeChanged(ZJ)V
+Landroid/view/IDockedStackListener$Stub$Proxy;->onDividerVisibilityChanged(Z)V
+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
+Landroid/view/IDockedStackListener$Stub;->TRANSACTION_onDividerVisibilityChanged:I
+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;
+Landroid/view/InputChannel;->getName()Ljava/lang/String;
+Landroid/view/InputChannel;->nativeDispose(Z)V
+Landroid/view/InputChannel;->nativeDup(Landroid/view/InputChannel;)V
+Landroid/view/InputChannel;->nativeGetName()Ljava/lang/String;
+Landroid/view/InputChannel;->nativeOpenInputChannelPair(Ljava/lang/String;)[Landroid/view/InputChannel;
+Landroid/view/InputChannel;->nativeReadFromParcel(Landroid/os/Parcel;)V
+Landroid/view/InputChannel;->nativeTransferTo(Landroid/view/InputChannel;)V
+Landroid/view/InputChannel;->nativeWriteToParcel(Landroid/os/Parcel;)V
+Landroid/view/InputChannel;->openInputChannelPair(Ljava/lang/String;)[Landroid/view/InputChannel;
+Landroid/view/InputChannel;->readFromParcel(Landroid/os/Parcel;)V
+Landroid/view/InputChannel;->TAG:Ljava/lang/String;
+Landroid/view/InputChannel;->transferTo(Landroid/view/InputChannel;)V
+Landroid/view/InputDevice$MotionRange;-><init>(IIFFFFF)V
+Landroid/view/InputDevice$MotionRange;->mAxis:I
+Landroid/view/InputDevice$MotionRange;->mFlat:F
+Landroid/view/InputDevice$MotionRange;->mFuzz:F
+Landroid/view/InputDevice$MotionRange;->mMax:F
+Landroid/view/InputDevice$MotionRange;->mMin:F
+Landroid/view/InputDevice$MotionRange;->mResolution:F
+Landroid/view/InputDevice$MotionRange;->mSource:I
+Landroid/view/InputDevice;-><init>(Landroid/os/Parcel;)V
+Landroid/view/InputDevice;->appendSourceDescriptionIfApplicable(Ljava/lang/StringBuilder;ILjava/lang/String;)V
+Landroid/view/InputDevice;->getGeneration()I
+Landroid/view/InputDevice;->getIdentifier()Landroid/hardware/input/InputDeviceIdentifier;
+Landroid/view/InputDevice;->hasButtonUnderPad()Z
+Landroid/view/InputDevice;->isFullKeyboard()Z
+Landroid/view/InputDevice;->MAX_RANGES:I
+Landroid/view/InputDevice;->mControllerNumber:I
+Landroid/view/InputDevice;->mDescriptor:Ljava/lang/String;
+Landroid/view/InputDevice;->mGeneration:I
+Landroid/view/InputDevice;->mHasButtonUnderPad:Z
+Landroid/view/InputDevice;->mHasMicrophone:Z
+Landroid/view/InputDevice;->mHasVibrator:Z
+Landroid/view/InputDevice;->mId:I
+Landroid/view/InputDevice;->mIdentifier:Landroid/hardware/input/InputDeviceIdentifier;
+Landroid/view/InputDevice;->mKeyboardType:I
+Landroid/view/InputDevice;->mKeyCharacterMap:Landroid/view/KeyCharacterMap;
+Landroid/view/InputDevice;->mMotionRanges:Ljava/util/ArrayList;
+Landroid/view/InputDevice;->mName:Ljava/lang/String;
+Landroid/view/InputDevice;->mProductId:I
+Landroid/view/InputDevice;->mSources:I
+Landroid/view/InputDevice;->mVendorId:I
+Landroid/view/InputDevice;->mVibrator:Landroid/os/Vibrator;
+Landroid/view/InputDevice;->setCustomPointerIcon(Landroid/view/PointerIcon;)V
+Landroid/view/InputDevice;->setPointerType(I)V
+Landroid/view/InputEvent;-><init>()V
+Landroid/view/InputEvent;->cancel()V
+Landroid/view/InputEvent;->copy()Landroid/view/InputEvent;
+Landroid/view/InputEvent;->getEventTimeNano()J
+Landroid/view/InputEvent;->isTainted()Z
+Landroid/view/InputEvent;->mNextSeq:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/view/InputEvent;->mRecycled:Z
+Landroid/view/InputEvent;->mRecycledLocation:Ljava/lang/RuntimeException;
+Landroid/view/InputEvent;->mSeq:I
+Landroid/view/InputEvent;->PARCEL_TOKEN_KEY_EVENT:I
+Landroid/view/InputEvent;->PARCEL_TOKEN_MOTION_EVENT:I
+Landroid/view/InputEvent;->prepareForReuse()V
+Landroid/view/InputEvent;->recycle()V
+Landroid/view/InputEvent;->recycleIfNeededAfterDispatch()V
+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
+Landroid/view/InputEventConsistencyVerifier$KeyState;->mRecycledList:Landroid/view/InputEventConsistencyVerifier$KeyState;
+Landroid/view/InputEventConsistencyVerifier$KeyState;->mRecycledListLock:Ljava/lang/Object;
+Landroid/view/InputEventConsistencyVerifier$KeyState;->next:Landroid/view/InputEventConsistencyVerifier$KeyState;
+Landroid/view/InputEventConsistencyVerifier$KeyState;->obtain(III)Landroid/view/InputEventConsistencyVerifier$KeyState;
+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
+Landroid/view/InputEventConsistencyVerifier;->ensureActionButtonIsNonZeroForThisAction(Landroid/view/MotionEvent;)V
+Landroid/view/InputEventConsistencyVerifier;->ensureHistorySizeIsZeroForThisAction(Landroid/view/MotionEvent;)V
+Landroid/view/InputEventConsistencyVerifier;->ensureMetaStateIsNormalized(I)V
+Landroid/view/InputEventConsistencyVerifier;->ensurePointerCountIsOneForThisAction(Landroid/view/MotionEvent;)V
+Landroid/view/InputEventConsistencyVerifier;->EVENT_TYPE_GENERIC_MOTION:Ljava/lang/String;
+Landroid/view/InputEventConsistencyVerifier;->EVENT_TYPE_KEY:Ljava/lang/String;
+Landroid/view/InputEventConsistencyVerifier;->EVENT_TYPE_TOUCH:Ljava/lang/String;
+Landroid/view/InputEventConsistencyVerifier;->EVENT_TYPE_TRACKBALL:Ljava/lang/String;
+Landroid/view/InputEventConsistencyVerifier;->findKeyState(IIIZ)Landroid/view/InputEventConsistencyVerifier$KeyState;
+Landroid/view/InputEventConsistencyVerifier;->finishEvent()V
+Landroid/view/InputEventConsistencyVerifier;->FLAG_RAW_DEVICE_INPUT:I
+Landroid/view/InputEventConsistencyVerifier;->IS_ENG_BUILD:Z
+Landroid/view/InputEventConsistencyVerifier;->mButtonsPressed:I
+Landroid/view/InputEventConsistencyVerifier;->mCaller:Ljava/lang/Object;
+Landroid/view/InputEventConsistencyVerifier;->mCurrentEvent:Landroid/view/InputEvent;
+Landroid/view/InputEventConsistencyVerifier;->mCurrentEventType:Ljava/lang/String;
+Landroid/view/InputEventConsistencyVerifier;->mFlags:I
+Landroid/view/InputEventConsistencyVerifier;->mHoverEntered:Z
+Landroid/view/InputEventConsistencyVerifier;->mKeyStateList:Landroid/view/InputEventConsistencyVerifier$KeyState;
+Landroid/view/InputEventConsistencyVerifier;->mLastEventSeq:I
+Landroid/view/InputEventConsistencyVerifier;->mLastEventType:Ljava/lang/String;
+Landroid/view/InputEventConsistencyVerifier;->mLastNestingLevel:I
+Landroid/view/InputEventConsistencyVerifier;->mLogTag:Ljava/lang/String;
+Landroid/view/InputEventConsistencyVerifier;->mMostRecentEventIndex:I
+Landroid/view/InputEventConsistencyVerifier;->mRecentEvents:[Landroid/view/InputEvent;
+Landroid/view/InputEventConsistencyVerifier;->mRecentEventsUnhandled:[Z
+Landroid/view/InputEventConsistencyVerifier;->mTouchEventStreamDeviceId:I
+Landroid/view/InputEventConsistencyVerifier;->mTouchEventStreamIsTainted:Z
+Landroid/view/InputEventConsistencyVerifier;->mTouchEventStreamPointers:I
+Landroid/view/InputEventConsistencyVerifier;->mTouchEventStreamSource:I
+Landroid/view/InputEventConsistencyVerifier;->mTouchEventStreamUnhandled:Z
+Landroid/view/InputEventConsistencyVerifier;->mTrackballDown:Z
+Landroid/view/InputEventConsistencyVerifier;->mTrackballUnhandled:Z
+Landroid/view/InputEventConsistencyVerifier;->mViolationMessage:Ljava/lang/StringBuilder;
+Landroid/view/InputEventConsistencyVerifier;->onGenericMotionEvent(Landroid/view/MotionEvent;I)V
+Landroid/view/InputEventConsistencyVerifier;->onInputEvent(Landroid/view/InputEvent;I)V
+Landroid/view/InputEventConsistencyVerifier;->onKeyEvent(Landroid/view/KeyEvent;I)V
+Landroid/view/InputEventConsistencyVerifier;->onTrackballEvent(Landroid/view/MotionEvent;I)V
+Landroid/view/InputEventConsistencyVerifier;->problem(Ljava/lang/String;)V
+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
+Landroid/view/InputEventReceiver;->dispose(Z)V
+Landroid/view/InputEventReceiver;->finishInputEvent(Landroid/view/InputEvent;Z)V
+Landroid/view/InputEventReceiver;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/view/InputEventReceiver;->mInputChannel:Landroid/view/InputChannel;
+Landroid/view/InputEventReceiver;->mMessageQueue:Landroid/os/MessageQueue;
+Landroid/view/InputEventReceiver;->mReceiverPtr:J
+Landroid/view/InputEventReceiver;->mSeqMap:Landroid/util/SparseIntArray;
+Landroid/view/InputEventReceiver;->nativeConsumeBatchedInputEvents(JJ)Z
+Landroid/view/InputEventReceiver;->nativeDispose(J)V
+Landroid/view/InputEventReceiver;->nativeFinishInputEvent(JIZ)V
+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
+Landroid/view/InputEventSender;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/view/InputEventSender;->mInputChannel:Landroid/view/InputChannel;
+Landroid/view/InputEventSender;->mMessageQueue:Landroid/os/MessageQueue;
+Landroid/view/InputEventSender;->mSenderPtr:J
+Landroid/view/InputEventSender;->nativeDispose(J)V
+Landroid/view/InputEventSender;->nativeInit(Ljava/lang/ref/WeakReference;Landroid/view/InputChannel;Landroid/os/MessageQueue;)J
+Landroid/view/InputEventSender;->nativeSendKeyEvent(JILandroid/view/KeyEvent;)Z
+Landroid/view/InputEventSender;->nativeSendMotionEvent(JILandroid/view/MotionEvent;)Z
+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;
+Landroid/view/InputFilter;->mHost:Landroid/view/IInputFilterHost;
+Landroid/view/InputFilter;->mInboundInputEventConsistencyVerifier:Landroid/view/InputEventConsistencyVerifier;
+Landroid/view/InputFilter;->mOutboundInputEventConsistencyVerifier:Landroid/view/InputEventConsistencyVerifier;
+Landroid/view/InputFilter;->MSG_INPUT_EVENT:I
+Landroid/view/InputFilter;->MSG_INSTALL:I
+Landroid/view/InputFilter;->MSG_UNINSTALL:I
+Landroid/view/InputFilter;->onInstalled()V
+Landroid/view/InputFilter;->onUninstalled()V
+Landroid/view/InputFilter;->sendInputEvent(Landroid/view/InputEvent;I)V
+Landroid/view/InputFilter;->uninstall()V
+Landroid/view/inputmethod/BaseInputConnection;-><init>(Landroid/view/inputmethod/InputMethodManager;Z)V
+Landroid/view/inputmethod/BaseInputConnection;->COMPOSING:Ljava/lang/Object;
+Landroid/view/inputmethod/BaseInputConnection;->DEBUG:Z
+Landroid/view/inputmethod/BaseInputConnection;->ensureDefaultComposingSpans()V
+Landroid/view/inputmethod/BaseInputConnection;->findIndexBackward(Ljava/lang/CharSequence;II)I
+Landroid/view/inputmethod/BaseInputConnection;->findIndexForward(Ljava/lang/CharSequence;II)I
+Landroid/view/inputmethod/BaseInputConnection;->INVALID_INDEX:I
+Landroid/view/inputmethod/BaseInputConnection;->mDefaultComposingSpans:[Ljava/lang/Object;
+Landroid/view/inputmethod/BaseInputConnection;->mDummyMode:Z
+Landroid/view/inputmethod/BaseInputConnection;->mEditable:Landroid/text/Editable;
+Landroid/view/inputmethod/BaseInputConnection;->mIMM:Landroid/view/inputmethod/InputMethodManager;
+Landroid/view/inputmethod/BaseInputConnection;->mKeyCharacterMap:Landroid/view/KeyCharacterMap;
+Landroid/view/inputmethod/BaseInputConnection;->mTargetView:Landroid/view/View;
+Landroid/view/inputmethod/BaseInputConnection;->replaceText(Ljava/lang/CharSequence;IZ)V
+Landroid/view/inputmethod/BaseInputConnection;->sendCurrentText()V
+Landroid/view/inputmethod/BaseInputConnection;->setComposingSpans(Landroid/text/Spannable;II)V
+Landroid/view/inputmethod/BaseInputConnection;->TAG:Ljava/lang/String;
+Landroid/view/inputmethod/CompletionInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/view/inputmethod/CompletionInfo;->mId:J
+Landroid/view/inputmethod/CompletionInfo;->mLabel:Ljava/lang/CharSequence;
+Landroid/view/inputmethod/CompletionInfo;->mPosition:I
+Landroid/view/inputmethod/CompletionInfo;->mText:Ljava/lang/CharSequence;
+Landroid/view/inputmethod/CorrectionInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/view/inputmethod/CorrectionInfo;->mNewText:Ljava/lang/CharSequence;
+Landroid/view/inputmethod/CorrectionInfo;->mOffset:I
+Landroid/view/inputmethod/CorrectionInfo;->mOldText:Ljava/lang/CharSequence;
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mCharacterBoundsArrayBuilder:Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mComposingText:Ljava/lang/CharSequence;
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mComposingTextStart:I
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mInsertionMarkerBaseline:F
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mInsertionMarkerBottom:F
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mInsertionMarkerFlags:I
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mInsertionMarkerHorizontal:F
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mInsertionMarkerTop:F
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mMatrixInitialized:Z
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mMatrixValues:[F
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mSelectionEnd:I
+Landroid/view/inputmethod/CursorAnchorInfo$Builder;->mSelectionStart:I
+Landroid/view/inputmethod/CursorAnchorInfo;-><init>(Landroid/view/inputmethod/CursorAnchorInfo$Builder;)V
+Landroid/view/inputmethod/CursorAnchorInfo;->areSameFloatImpl(FF)Z
+Landroid/view/inputmethod/CursorAnchorInfo;->mCharacterBoundsArray:Landroid/view/inputmethod/SparseRectFArray;
+Landroid/view/inputmethod/CursorAnchorInfo;->mComposingText:Ljava/lang/CharSequence;
+Landroid/view/inputmethod/CursorAnchorInfo;->mComposingTextStart:I
+Landroid/view/inputmethod/CursorAnchorInfo;->mHashCode:I
+Landroid/view/inputmethod/CursorAnchorInfo;->mInsertionMarkerBaseline:F
+Landroid/view/inputmethod/CursorAnchorInfo;->mInsertionMarkerBottom:F
+Landroid/view/inputmethod/CursorAnchorInfo;->mInsertionMarkerFlags:I
+Landroid/view/inputmethod/CursorAnchorInfo;->mInsertionMarkerHorizontal:F
+Landroid/view/inputmethod/CursorAnchorInfo;->mInsertionMarkerTop:F
+Landroid/view/inputmethod/CursorAnchorInfo;->mMatrixValues:[F
+Landroid/view/inputmethod/CursorAnchorInfo;->mSelectionEnd:I
+Landroid/view/inputmethod/CursorAnchorInfo;->mSelectionStart:I
+Landroid/view/inputmethod/InputBinding;-><init>(Landroid/os/Parcel;)V
+Landroid/view/inputmethod/InputBinding;->mConnection:Landroid/view/inputmethod/InputConnection;
+Landroid/view/inputmethod/InputBinding;->mConnectionToken:Landroid/os/IBinder;
+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
+Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;->DELETE_SURROUNDING_TEXT_IN_CODE_POINTS:I
+Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;->GET_HANDLER:I
+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;
+Landroid/view/inputmethod/InputConnectionInspector;->getMissingMethodFlagsInternal(Ljava/lang/Class;)I
+Landroid/view/inputmethod/InputConnectionInspector;->hasCloseConnection(Ljava/lang/Class;)Z
+Landroid/view/inputmethod/InputConnectionInspector;->hasCommitContent(Ljava/lang/Class;)Z
+Landroid/view/inputmethod/InputConnectionInspector;->hasCommitCorrection(Ljava/lang/Class;)Z
+Landroid/view/inputmethod/InputConnectionInspector;->hasDeleteSurroundingTextInCodePoints(Ljava/lang/Class;)Z
+Landroid/view/inputmethod/InputConnectionInspector;->hasGetHandler(Ljava/lang/Class;)Z
+Landroid/view/inputmethod/InputConnectionInspector;->hasGetSelectedText(Ljava/lang/Class;)Z
+Landroid/view/inputmethod/InputConnectionInspector;->hasRequestCursorUpdate(Ljava/lang/Class;)Z
+Landroid/view/inputmethod/InputConnectionInspector;->hasSetComposingRegion(Ljava/lang/Class;)Z
+Landroid/view/inputmethod/InputConnectionInspector;->sMissingMethodsMap:Ljava/util/Map;
+Landroid/view/inputmethod/InputConnectionWrapper;->getMissingMethodFlags()I
+Landroid/view/inputmethod/InputConnectionWrapper;->mMissingMethodFlags:I
+Landroid/view/inputmethod/InputConnectionWrapper;->mMutable:Z
+Landroid/view/inputmethod/InputConnectionWrapper;->mTarget:Landroid/view/inputmethod/InputConnection;
+Landroid/view/inputmethod/InputContentInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/view/inputmethod/InputContentInfo;->mContentUri:Landroid/net/Uri;
+Landroid/view/inputmethod/InputContentInfo;->mContentUriOwnerUserId:I
+Landroid/view/inputmethod/InputContentInfo;->mDescription:Landroid/content/ClipDescription;
+Landroid/view/inputmethod/InputContentInfo;->mLinkUri:Landroid/net/Uri;
+Landroid/view/inputmethod/InputContentInfo;->mUriToken:Lcom/android/internal/inputmethod/IInputContentUriToken;
+Landroid/view/inputmethod/InputContentInfo;->setUriToken(Lcom/android/internal/inputmethod/IInputContentUriToken;)V
+Landroid/view/inputmethod/InputContentInfo;->validate()Z
+Landroid/view/inputmethod/InputContentInfo;->validateInternal(Landroid/net/Uri;Landroid/content/ClipDescription;Landroid/net/Uri;Z)Z
+Landroid/view/inputmethod/InputMethod;->dispatchStartInputWithToken(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;ZLandroid/os/IBinder;)V
+Landroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;Ljava/util/List;)V
+Landroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/content/pm/ResolveInfo;ZLjava/lang/String;Ljava/util/List;IZ)V
+Landroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/content/pm/ResolveInfo;ZLjava/lang/String;Ljava/util/List;IZZZ)V
+Landroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/view/inputmethod/InputMethodInfo;->buildDummyResolveInfo(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/content/pm/ResolveInfo;
+Landroid/view/inputmethod/InputMethodInfo;->computeId(Landroid/content/pm/ResolveInfo;)Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodInfo;->isAuxiliaryIme()Z
+Landroid/view/inputmethod/InputMethodInfo;->isVrOnly()Z
+Landroid/view/inputmethod/InputMethodInfo;->mForceDefault:Z
+Landroid/view/inputmethod/InputMethodInfo;->mId:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodInfo;->mIsAuxIme:Z
+Landroid/view/inputmethod/InputMethodInfo;->mIsDefaultResId:I
+Landroid/view/inputmethod/InputMethodInfo;->mIsVrOnly:Z
+Landroid/view/inputmethod/InputMethodInfo;->mService:Landroid/content/pm/ResolveInfo;
+Landroid/view/inputmethod/InputMethodInfo;->mSettingsActivityName:Ljava/lang/String;
+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
+Landroid/view/inputmethod/InputMethodManager$PendingEvent;->mHandler:Landroid/os/Handler;
+Landroid/view/inputmethod/InputMethodManager$PendingEvent;->mInputMethodId:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodManager$PendingEvent;->mToken:Ljava/lang/Object;
+Landroid/view/inputmethod/InputMethodManager$PendingEvent;->recycle()V
+Landroid/view/inputmethod/InputMethodManager;-><init>(Landroid/os/Looper;)V
+Landroid/view/inputmethod/InputMethodManager;-><init>(Lcom/android/internal/view/IInputMethodManager;Landroid/os/Looper;)V
+Landroid/view/inputmethod/InputMethodManager;->canStartInput(Landroid/view/View;)Z
+Landroid/view/inputmethod/InputMethodManager;->checkFocusNoStartInput(Z)Z
+Landroid/view/inputmethod/InputMethodManager;->clearBindingLocked()V
+Landroid/view/inputmethod/InputMethodManager;->clearConnectionLocked()V
+Landroid/view/inputmethod/InputMethodManager;->clearLastInputMethodWindowForTransition(Landroid/os/IBinder;)V
+Landroid/view/inputmethod/InputMethodManager;->CONTROL_START_INITIAL:I
+Landroid/view/inputmethod/InputMethodManager;->CONTROL_WINDOW_FIRST:I
+Landroid/view/inputmethod/InputMethodManager;->CONTROL_WINDOW_IS_TEXT_EDITOR:I
+Landroid/view/inputmethod/InputMethodManager;->CONTROL_WINDOW_VIEW_HAS_FOCUS:I
+Landroid/view/inputmethod/InputMethodManager;->DEBUG:Z
+Landroid/view/inputmethod/InputMethodManager;->dispatchInputEvent(Landroid/view/InputEvent;Ljava/lang/Object;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;Landroid/os/Handler;)I
+Landroid/view/inputmethod/InputMethodManager;->DISPATCH_HANDLED:I
+Landroid/view/inputmethod/InputMethodManager;->DISPATCH_IN_PROGRESS:I
+Landroid/view/inputmethod/InputMethodManager;->DISPATCH_NOT_HANDLED:I
+Landroid/view/inputmethod/InputMethodManager;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/view/inputmethod/InputMethodManager;->dumpViewInfo(Landroid/view/View;)Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodManager;->exposeContent(Landroid/os/IBinder;Landroid/view/inputmethod/InputContentInfo;Landroid/view/inputmethod/EditorInfo;)V
+Landroid/view/inputmethod/InputMethodManager;->finishedInputEvent(IZZ)V
+Landroid/view/inputmethod/InputMethodManager;->flushPendingEventsLocked()V
+Landroid/view/inputmethod/InputMethodManager;->focusInLocked(Landroid/view/View;)V
+Landroid/view/inputmethod/InputMethodManager;->getVrInputMethodList()Ljava/util/List;
+Landroid/view/inputmethod/InputMethodManager;->hideSoftInputFromInputMethodInternal(Landroid/os/IBinder;I)V
+Landroid/view/inputmethod/InputMethodManager;->hideStatusIconInternal(Landroid/os/IBinder;)V
+Landroid/view/inputmethod/InputMethodManager;->INPUT_METHOD_NOT_RESPONDING_TIMEOUT:J
+Landroid/view/inputmethod/InputMethodManager;->invokeFinishedInputEventCallback(Landroid/view/inputmethod/InputMethodManager$PendingEvent;Z)V
+Landroid/view/inputmethod/InputMethodManager;->isAutofillUIShowing(Landroid/view/View;)Z
+Landroid/view/inputmethod/InputMethodManager;->mActive:Z
+Landroid/view/inputmethod/InputMethodManager;->mBindSequence:I
+Landroid/view/inputmethod/InputMethodManager;->mClient:Lcom/android/internal/view/IInputMethodClient$Stub;
+Landroid/view/inputmethod/InputMethodManager;->mCompletions:[Landroid/view/inputmethod/CompletionInfo;
+Landroid/view/inputmethod/InputMethodManager;->mCurChannel:Landroid/view/InputChannel;
+Landroid/view/inputmethod/InputMethodManager;->mCurrentTextBoxAttribute:Landroid/view/inputmethod/EditorInfo;
+Landroid/view/inputmethod/InputMethodManager;->mCurSender:Landroid/view/inputmethod/InputMethodManager$ImeInputEventSender;
+Landroid/view/inputmethod/InputMethodManager;->mCursorAnchorInfo:Landroid/view/inputmethod/CursorAnchorInfo;
+Landroid/view/inputmethod/InputMethodManager;->mCursorCandEnd:I
+Landroid/view/inputmethod/InputMethodManager;->mCursorCandStart:I
+Landroid/view/inputmethod/InputMethodManager;->mCursorSelEnd:I
+Landroid/view/inputmethod/InputMethodManager;->mCursorSelStart:I
+Landroid/view/inputmethod/InputMethodManager;->mDummyInputConnection:Landroid/view/inputmethod/InputConnection;
+Landroid/view/inputmethod/InputMethodManager;->mFullscreenMode:Z
+Landroid/view/inputmethod/InputMethodManager;->mIInputContext:Lcom/android/internal/view/IInputContext;
+Landroid/view/inputmethod/InputMethodManager;->mLastSentUserActionNotificationSequenceNumber:I
+Landroid/view/inputmethod/InputMethodManager;->mMainLooper:Landroid/os/Looper;
+Landroid/view/inputmethod/InputMethodManager;->mNextUserActionNotificationSequenceNumber:I
+Landroid/view/inputmethod/InputMethodManager;->mPendingEventPool:Landroid/util/Pools$Pool;
+Landroid/view/inputmethod/InputMethodManager;->mPendingEvents:Landroid/util/SparseArray;
+Landroid/view/inputmethod/InputMethodManager;->mRequestUpdateCursorAnchorInfoMonitorMode:I
+Landroid/view/inputmethod/InputMethodManager;->mRestartOnNextWindowFocus:Z
+Landroid/view/inputmethod/InputMethodManager;->mServedConnecting:Z
+Landroid/view/inputmethod/InputMethodManager;->MSG_BIND:I
+Landroid/view/inputmethod/InputMethodManager;->MSG_DUMP:I
+Landroid/view/inputmethod/InputMethodManager;->MSG_FLUSH_INPUT_EVENT:I
+Landroid/view/inputmethod/InputMethodManager;->MSG_REPORT_FULLSCREEN_MODE:I
+Landroid/view/inputmethod/InputMethodManager;->MSG_SEND_INPUT_EVENT:I
+Landroid/view/inputmethod/InputMethodManager;->MSG_SET_ACTIVE:I
+Landroid/view/inputmethod/InputMethodManager;->MSG_SET_USER_ACTION_NOTIFICATION_SEQUENCE_NUMBER:I
+Landroid/view/inputmethod/InputMethodManager;->MSG_TIMEOUT_INPUT_EVENT:I
+Landroid/view/inputmethod/InputMethodManager;->MSG_UNBIND:I
+Landroid/view/inputmethod/InputMethodManager;->NOT_AN_ACTION_NOTIFICATION_SEQUENCE_NUMBER:I
+Landroid/view/inputmethod/InputMethodManager;->obtainPendingEventLocked(Landroid/view/InputEvent;Ljava/lang/Object;Ljava/lang/String;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;Landroid/os/Handler;)Landroid/view/inputmethod/InputMethodManager$PendingEvent;
+Landroid/view/inputmethod/InputMethodManager;->onPostWindowFocus(Landroid/view/View;Landroid/view/View;IZI)V
+Landroid/view/inputmethod/InputMethodManager;->onViewDetachedFromWindow(Landroid/view/View;)V
+Landroid/view/inputmethod/InputMethodManager;->PENDING_EVENT_COUNTER:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodManager;->recyclePendingEventLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)V
+Landroid/view/inputmethod/InputMethodManager;->reportFullscreenMode(Landroid/os/IBinder;Z)V
+Landroid/view/inputmethod/InputMethodManager;->REQUEST_UPDATE_CURSOR_ANCHOR_INFO_NONE:I
+Landroid/view/inputmethod/InputMethodManager;->scheduleCheckFocusLocked(Landroid/view/View;)V
+Landroid/view/inputmethod/InputMethodManager;->sendInputEventAndReportResultOnMainLooper(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)V
+Landroid/view/inputmethod/InputMethodManager;->sendInputEventOnMainLooperLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)I
+Landroid/view/inputmethod/InputMethodManager;->setImeWindowStatus(Landroid/os/IBinder;Landroid/os/IBinder;II)V
+Landroid/view/inputmethod/InputMethodManager;->setInputChannelLocked(Landroid/view/InputChannel;)V
+Landroid/view/inputmethod/InputMethodManager;->setInputMethodAndSubtypeInternal(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
+Landroid/view/inputmethod/InputMethodManager;->setInputMethodInternal(Landroid/os/IBinder;Ljava/lang/String;)V
+Landroid/view/inputmethod/InputMethodManager;->shouldOfferSwitchingToNextInputMethodInternal(Landroid/os/IBinder;)Z
+Landroid/view/inputmethod/InputMethodManager;->showInputMethodPicker(Z)V
+Landroid/view/inputmethod/InputMethodManager;->showInputMethodPickerLocked()V
+Landroid/view/inputmethod/InputMethodManager;->showSoftInputFromInputMethodInternal(Landroid/os/IBinder;I)V
+Landroid/view/inputmethod/InputMethodManager;->showStatusIconInternal(Landroid/os/IBinder;Ljava/lang/String;I)V
+Landroid/view/inputmethod/InputMethodManager;->SHOW_IM_PICKER_MODE_AUTO:I
+Landroid/view/inputmethod/InputMethodManager;->SHOW_IM_PICKER_MODE_EXCLUDE_AUXILIARY_SUBTYPES:I
+Landroid/view/inputmethod/InputMethodManager;->SHOW_IM_PICKER_MODE_INCLUDE_AUXILIARY_SUBTYPES:I
+Landroid/view/inputmethod/InputMethodManager;->startInputInner(ILandroid/os/IBinder;III)Z
+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
+Landroid/view/inputmethod/InputMethodManagerInternal;->switchInputMethod(Z)V
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mIsAsciiCapable:Z
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mIsAuxiliary:Z
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mOverridesImplicitlyEnabledSubtype:Z
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mSubtypeExtraValue:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mSubtypeIconResId:I
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mSubtypeId:I
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mSubtypeLanguageTag:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mSubtypeLocale:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mSubtypeMode:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->mSubtypeNameResId:I
+Landroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/os/Parcel;)V
+Landroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)V
+Landroid/view/inputmethod/InputMethodSubtype;->EXTRA_KEY_UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->EXTRA_VALUE_KEY_VALUE_SEPARATOR:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->EXTRA_VALUE_PAIR_SEPARATOR:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->getBuilder(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZIZ)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+Landroid/view/inputmethod/InputMethodSubtype;->getExtraValueHashMap()Ljava/util/HashMap;
+Landroid/view/inputmethod/InputMethodSubtype;->getLocaleDisplayName(Ljava/util/Locale;Ljava/util/Locale;Landroid/icu/text/DisplayContext;)Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->getLocaleFromContext(Landroid/content/Context;)Ljava/util/Locale;
+Landroid/view/inputmethod/InputMethodSubtype;->getLocaleObject()Ljava/util/Locale;
+Landroid/view/inputmethod/InputMethodSubtype;->getSubtypeId()I
+Landroid/view/inputmethod/InputMethodSubtype;->hashCodeInternal(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)I
+Landroid/view/inputmethod/InputMethodSubtype;->hasSubtypeId()Z
+Landroid/view/inputmethod/InputMethodSubtype;->LANGUAGE_TAG_NONE:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->mCachedLocaleObj:Ljava/util/Locale;
+Landroid/view/inputmethod/InputMethodSubtype;->mExtraValueHashMapCache:Ljava/util/HashMap;
+Landroid/view/inputmethod/InputMethodSubtype;->mIsAsciiCapable:Z
+Landroid/view/inputmethod/InputMethodSubtype;->mIsAuxiliary:Z
+Landroid/view/inputmethod/InputMethodSubtype;->mLock:Ljava/lang/Object;
+Landroid/view/inputmethod/InputMethodSubtype;->mOverridesImplicitlyEnabledSubtype:Z
+Landroid/view/inputmethod/InputMethodSubtype;->mSubtypeExtraValue:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->mSubtypeHashCode:I
+Landroid/view/inputmethod/InputMethodSubtype;->mSubtypeIconResId:I
+Landroid/view/inputmethod/InputMethodSubtype;->mSubtypeId:I
+Landroid/view/inputmethod/InputMethodSubtype;->mSubtypeLanguageTag:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->mSubtypeLocale:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->mSubtypeMode:Ljava/lang/String;
+Landroid/view/inputmethod/InputMethodSubtype;->mSubtypeNameResId:I
+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
+Landroid/view/inputmethod/InputMethodSubtypeArray;->get(I)Landroid/view/inputmethod/InputMethodSubtype;
+Landroid/view/inputmethod/InputMethodSubtypeArray;->getCount()I
+Landroid/view/inputmethod/InputMethodSubtypeArray;->marshall([Landroid/view/inputmethod/InputMethodSubtype;)[B
+Landroid/view/inputmethod/InputMethodSubtypeArray;->mCompressedData:[B
+Landroid/view/inputmethod/InputMethodSubtypeArray;->mCount:I
+Landroid/view/inputmethod/InputMethodSubtypeArray;->mDecompressedSize:I
+Landroid/view/inputmethod/InputMethodSubtypeArray;->mInstance:[Landroid/view/inputmethod/InputMethodSubtype;
+Landroid/view/inputmethod/InputMethodSubtypeArray;->mLockObject:Ljava/lang/Object;
+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;
+Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->checkIndex(I)V
+Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->ensureBufferSize()V
+Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->INITIAL_SIZE:I
+Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->isEmpty()Z
+Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->mCoordinates:[F
+Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->mCount:I
+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;
+Landroid/view/inputmethod/SparseRectFArray;->get(I)Landroid/graphics/RectF;
+Landroid/view/inputmethod/SparseRectFArray;->getFlags(II)I
+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
+Landroid/view/InputQueue;->dispose(Z)V
+Landroid/view/InputQueue;->getNativePtr()J
+Landroid/view/InputQueue;->mActiveEventArray:Landroid/util/LongSparseArray;
+Landroid/view/InputQueue;->mActiveInputEventPool:Landroid/util/Pools$Pool;
+Landroid/view/InputQueue;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/view/InputQueue;->mPtr:J
+Landroid/view/InputQueue;->nativeDispose(J)V
+Landroid/view/InputQueue;->nativeInit(Ljava/lang/ref/WeakReference;Landroid/os/MessageQueue;)J
+Landroid/view/InputQueue;->nativeSendKeyEvent(JLandroid/view/KeyEvent;Z)J
+Landroid/view/InputQueue;->nativeSendMotionEvent(JLandroid/view/MotionEvent;)J
+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;
+Landroid/view/IPinnedStackListener$Stub$Proxy;->onActionsChanged(Landroid/content/pm/ParceledListSlice;)V
+Landroid/view/IPinnedStackListener$Stub$Proxy;->onImeVisibilityChanged(ZI)V
+Landroid/view/IPinnedStackListener$Stub$Proxy;->onListenerRegistered(Landroid/view/IPinnedStackController;)V
+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;
+Landroid/view/IPinnedStackListener$Stub;->TRANSACTION_onActionsChanged:I
+Landroid/view/IPinnedStackListener$Stub;->TRANSACTION_onImeVisibilityChanged:I
+Landroid/view/IPinnedStackListener$Stub;->TRANSACTION_onListenerRegistered:I
+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;
+Landroid/view/IRecentsAnimationController$Stub$Proxy;->hideCurrentInputMethod()V
+Landroid/view/IRecentsAnimationController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/view/IRecentsAnimationController$Stub$Proxy;->screenshotTask(I)Landroid/app/ActivityManager$TaskSnapshot;
+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;
+Landroid/view/IRecentsAnimationController$Stub;->TRANSACTION_finish:I
+Landroid/view/IRecentsAnimationController$Stub;->TRANSACTION_hideCurrentInputMethod:I
+Landroid/view/IRecentsAnimationController$Stub;->TRANSACTION_screenshotTask:I
+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
+Landroid/view/IWindow$Stub$Proxy;->dispatchDragEvent(Landroid/view/DragEvent;)V
+Landroid/view/IWindow$Stub$Proxy;->dispatchGetNewSurface()V
+Landroid/view/IWindow$Stub$Proxy;->dispatchPointerCaptureChanged(Z)V
+Landroid/view/IWindow$Stub$Proxy;->dispatchSystemUiVisibilityChanged(IIII)V
+Landroid/view/IWindow$Stub$Proxy;->dispatchWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)V
+Landroid/view/IWindow$Stub$Proxy;->dispatchWallpaperOffsets(FFFFZ)V
+Landroid/view/IWindow$Stub$Proxy;->dispatchWindowShown()V
+Landroid/view/IWindow$Stub$Proxy;->executeCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelFileDescriptor;)V
+Landroid/view/IWindow$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/view/IWindow$Stub$Proxy;->moved(II)V
+Landroid/view/IWindow$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/view/IWindow$Stub$Proxy;->requestAppKeyboardShortcuts(Lcom/android/internal/os/IResultReceiver;I)V
+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
+Landroid/view/IWindow$Stub;->TRANSACTION_dispatchDragEvent:I
+Landroid/view/IWindow$Stub;->TRANSACTION_dispatchGetNewSurface:I
+Landroid/view/IWindow$Stub;->TRANSACTION_dispatchPointerCaptureChanged:I
+Landroid/view/IWindow$Stub;->TRANSACTION_dispatchSystemUiVisibilityChanged:I
+Landroid/view/IWindow$Stub;->TRANSACTION_dispatchWallpaperCommand:I
+Landroid/view/IWindow$Stub;->TRANSACTION_dispatchWallpaperOffsets:I
+Landroid/view/IWindow$Stub;->TRANSACTION_dispatchWindowShown:I
+Landroid/view/IWindow$Stub;->TRANSACTION_executeCommand:I
+Landroid/view/IWindow$Stub;->TRANSACTION_moved:I
+Landroid/view/IWindow$Stub;->TRANSACTION_requestAppKeyboardShortcuts:I
+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
+Landroid/view/IWindow;->dispatchWindowShown()V
+Landroid/view/IWindow;->executeCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelFileDescriptor;)V
+Landroid/view/IWindow;->moved(II)V
+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
+Landroid/view/IWindowManager$Stub$Proxy;->clearWindowContentFrameStats(Landroid/os/IBinder;)Z
+Landroid/view/IWindowManager$Stub$Proxy;->closeSystemDialogs(Ljava/lang/String;)V
+Landroid/view/IWindowManager$Stub$Proxy;->createInputConsumer(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/InputChannel;)V
+Landroid/view/IWindowManager$Stub$Proxy;->destroyInputConsumer(Ljava/lang/String;)Z
+Landroid/view/IWindowManager$Stub$Proxy;->disableKeyguard(Landroid/os/IBinder;Ljava/lang/String;)V
+Landroid/view/IWindowManager$Stub$Proxy;->dismissKeyguard(Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
+Landroid/view/IWindowManager$Stub$Proxy;->dontOverrideDisplayInfo(I)V
+Landroid/view/IWindowManager$Stub$Proxy;->enableScreenIfNeeded()V
+Landroid/view/IWindowManager$Stub$Proxy;->endProlongedAnimations()V
+Landroid/view/IWindowManager$Stub$Proxy;->executeAppTransition()V
+Landroid/view/IWindowManager$Stub$Proxy;->exitKeyguardSecurely(Landroid/view/IOnKeyguardExitResult;)V
+Landroid/view/IWindowManager$Stub$Proxy;->freezeRotation(I)V
+Landroid/view/IWindowManager$Stub$Proxy;->getAnimationScale(I)F
+Landroid/view/IWindowManager$Stub$Proxy;->getAnimationScales()[F
+Landroid/view/IWindowManager$Stub$Proxy;->getBaseDisplaySize(ILandroid/graphics/Point;)V
+Landroid/view/IWindowManager$Stub$Proxy;->getCurrentAnimatorScale()F
+Landroid/view/IWindowManager$Stub$Proxy;->getCurrentImeTouchRegion()Landroid/graphics/Region;
+Landroid/view/IWindowManager$Stub$Proxy;->getDefaultDisplayRotation()I
+Landroid/view/IWindowManager$Stub$Proxy;->getInitialDisplaySize(ILandroid/graphics/Point;)V
+Landroid/view/IWindowManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/view/IWindowManager$Stub$Proxy;->getNavBarPosition()I
+Landroid/view/IWindowManager$Stub$Proxy;->getPendingAppTransition()I
+Landroid/view/IWindowManager$Stub$Proxy;->getPreferredOptionsPanelGravity()I
+Landroid/view/IWindowManager$Stub$Proxy;->getStableInsets(ILandroid/graphics/Rect;)V
+Landroid/view/IWindowManager$Stub$Proxy;->getWindowContentFrameStats(Landroid/os/IBinder;)Landroid/view/WindowContentFrameStats;
+Landroid/view/IWindowManager$Stub$Proxy;->inputMethodClientHasFocus(Lcom/android/internal/view/IInputMethodClient;)Z
+Landroid/view/IWindowManager$Stub$Proxy;->isKeyguardLocked()Z
+Landroid/view/IWindowManager$Stub$Proxy;->isKeyguardSecure()Z
+Landroid/view/IWindowManager$Stub$Proxy;->isRotationFrozen()Z
+Landroid/view/IWindowManager$Stub$Proxy;->isSafeModeEnabled()Z
+Landroid/view/IWindowManager$Stub$Proxy;->isViewServerRunning()Z
+Landroid/view/IWindowManager$Stub$Proxy;->isWindowTraceEnabled()Z
+Landroid/view/IWindowManager$Stub$Proxy;->lockNow(Landroid/os/Bundle;)V
+Landroid/view/IWindowManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/view/IWindowManager$Stub$Proxy;->openSession(Landroid/view/IWindowSessionCallback;Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;)Landroid/view/IWindowSession;
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransition(Ljava/lang/String;IILandroid/os/IRemoteCallback;)V
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransitionAspectScaledThumb(Landroid/graphics/GraphicBuffer;IIIILandroid/os/IRemoteCallback;Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransitionClipReveal(IIII)V
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransitionInPlace(Ljava/lang/String;I)V
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransitionMultiThumb([Landroid/view/AppTransitionAnimationSpec;Landroid/os/IRemoteCallback;Landroid/os/IRemoteCallback;Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransitionMultiThumbFuture(Landroid/view/IAppTransitionAnimationSpecsFuture;Landroid/os/IRemoteCallback;Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;)V
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransitionScaleUp(IIII)V
+Landroid/view/IWindowManager$Stub$Proxy;->overridePendingAppTransitionThumb(Landroid/graphics/GraphicBuffer;IILandroid/os/IRemoteCallback;Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->prepareAppTransition(IZ)V
+Landroid/view/IWindowManager$Stub$Proxy;->reenableKeyguard(Landroid/os/IBinder;)V
+Landroid/view/IWindowManager$Stub$Proxy;->refreshScreenCaptureDisabled(I)V
+Landroid/view/IWindowManager$Stub$Proxy;->registerDockedStackListener(Landroid/view/IDockedStackListener;)V
+Landroid/view/IWindowManager$Stub$Proxy;->registerPinnedStackListener(ILandroid/view/IPinnedStackListener;)V
+Landroid/view/IWindowManager$Stub$Proxy;->registerShortcutKey(JLcom/android/internal/policy/IShortcutService;)V
+Landroid/view/IWindowManager$Stub$Proxy;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)Z
+Landroid/view/IWindowManager$Stub$Proxy;->removeRotationWatcher(Landroid/view/IRotationWatcher;)V
+Landroid/view/IWindowManager$Stub$Proxy;->removeWindowToken(Landroid/os/IBinder;I)V
+Landroid/view/IWindowManager$Stub$Proxy;->requestAppKeyboardShortcuts(Lcom/android/internal/os/IResultReceiver;I)V
+Landroid/view/IWindowManager$Stub$Proxy;->requestAssistScreenshot(Landroid/app/IAssistDataReceiver;)Z
+Landroid/view/IWindowManager$Stub$Proxy;->requestUserActivityNotification()V
+Landroid/view/IWindowManager$Stub$Proxy;->screenshotWallpaper()Landroid/graphics/Bitmap;
+Landroid/view/IWindowManager$Stub$Proxy;->setAnimationScale(IF)V
+Landroid/view/IWindowManager$Stub$Proxy;->setAnimationScales([F)V
+Landroid/view/IWindowManager$Stub$Proxy;->setDockedStackDividerTouchRegion(Landroid/graphics/Rect;)V
+Landroid/view/IWindowManager$Stub$Proxy;->setEventDispatching(Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->setFocusedApp(Landroid/os/IBinder;Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->setForcedDisplayDensityForUser(III)V
+Landroid/view/IWindowManager$Stub$Proxy;->setForcedDisplayScalingMode(II)V
+Landroid/view/IWindowManager$Stub$Proxy;->setForcedDisplaySize(III)V
+Landroid/view/IWindowManager$Stub$Proxy;->setInTouchMode(Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->setNavBarVirtualKeyHapticFeedbackEnabled(Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->setNewDisplayOverrideConfiguration(Landroid/content/res/Configuration;I)[I
+Landroid/view/IWindowManager$Stub$Proxy;->setOverscan(IIIII)V
+Landroid/view/IWindowManager$Stub$Proxy;->setPipVisibility(Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->setRecentsVisibility(Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->setResizeDimLayer(ZIF)V
+Landroid/view/IWindowManager$Stub$Proxy;->setShelfHeight(ZI)V
+Landroid/view/IWindowManager$Stub$Proxy;->setStrictModeVisualIndicatorPreference(Ljava/lang/String;)V
+Landroid/view/IWindowManager$Stub$Proxy;->setSwitchingUser(Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->showStrictModeViolation(Z)V
+Landroid/view/IWindowManager$Stub$Proxy;->startFreezingScreen(II)V
+Landroid/view/IWindowManager$Stub$Proxy;->startViewServer(I)Z
+Landroid/view/IWindowManager$Stub$Proxy;->startWindowTrace()V
+Landroid/view/IWindowManager$Stub$Proxy;->statusBarVisibilityChanged(I)V
+Landroid/view/IWindowManager$Stub$Proxy;->stopFreezingScreen()V
+Landroid/view/IWindowManager$Stub$Proxy;->stopViewServer()Z
+Landroid/view/IWindowManager$Stub$Proxy;->stopWindowTrace()V
+Landroid/view/IWindowManager$Stub$Proxy;->thawRotation()V
+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
+Landroid/view/IWindowManager$Stub;->TRANSACTION_clearForcedDisplaySize:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_clearWindowContentFrameStats:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_closeSystemDialogs:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_createInputConsumer:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_destroyInputConsumer:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_disableKeyguard:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_dismissKeyguard:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_dontOverrideDisplayInfo:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_enableScreenIfNeeded:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_endProlongedAnimations:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_executeAppTransition:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_exitKeyguardSecurely:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_freezeRotation:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getAnimationScale:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getAnimationScales:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getBaseDisplayDensity:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getBaseDisplaySize:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getCurrentAnimatorScale:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getCurrentImeTouchRegion:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getDefaultDisplayRotation:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getDockedStackSide:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getInitialDisplayDensity:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getInitialDisplaySize:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getNavBarPosition:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getPendingAppTransition:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getPreferredOptionsPanelGravity:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getStableInsets:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_getWindowContentFrameStats:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_hasNavigationBar:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_inputMethodClientHasFocus:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_isKeyguardLocked:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_isKeyguardSecure:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_isRotationFrozen:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_isSafeModeEnabled:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_isViewServerRunning:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_isWindowTraceEnabled:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_lockNow:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_openSession:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransition:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransitionAspectScaledThumb:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransitionClipReveal:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransitionInPlace:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransitionMultiThumb:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransitionMultiThumbFuture:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransitionRemote:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransitionScaleUp:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_overridePendingAppTransitionThumb:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_prepareAppTransition:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_reenableKeyguard:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_refreshScreenCaptureDisabled:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_registerDockedStackListener:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_registerPinnedStackListener:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_registerShortcutKey:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_registerWallpaperVisibilityListener:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_removeRotationWatcher:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_removeWindowToken:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_requestAppKeyboardShortcuts:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_requestAssistScreenshot:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_requestUserActivityNotification:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_screenshotWallpaper:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setAnimationScale:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setAnimationScales:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setDockedStackDividerTouchRegion:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setEventDispatching:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setFocusedApp:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setForcedDisplayDensityForUser:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setForcedDisplayScalingMode:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setForcedDisplaySize:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setInTouchMode:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setNavBarVirtualKeyHapticFeedbackEnabled:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setNewDisplayOverrideConfiguration:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setOverscan:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setPipVisibility:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setRecentsVisibility:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setResizeDimLayer:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setShelfHeight:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setStrictModeVisualIndicatorPreference:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_setSwitchingUser:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_showStrictModeViolation:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_startFreezingScreen:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_startViewServer:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_startWindowTrace:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_statusBarVisibilityChanged:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_stopFreezingScreen:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_stopViewServer:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_stopWindowTrace:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_thawRotation:I
+Landroid/view/IWindowManager$Stub;->TRANSACTION_unregisterWallpaperVisibilityListener:I
+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
+Landroid/view/IWindowManager;->clearWindowContentFrameStats(Landroid/os/IBinder;)Z
+Landroid/view/IWindowManager;->closeSystemDialogs(Ljava/lang/String;)V
+Landroid/view/IWindowManager;->disableKeyguard(Landroid/os/IBinder;Ljava/lang/String;)V
+Landroid/view/IWindowManager;->dismissKeyguard(Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
+Landroid/view/IWindowManager;->dontOverrideDisplayInfo(I)V
+Landroid/view/IWindowManager;->enableScreenIfNeeded()V
+Landroid/view/IWindowManager;->exitKeyguardSecurely(Landroid/view/IOnKeyguardExitResult;)V
+Landroid/view/IWindowManager;->getBaseDisplayDensity(I)I
+Landroid/view/IWindowManager;->getCurrentAnimatorScale()F
+Landroid/view/IWindowManager;->getCurrentImeTouchRegion()Landroid/graphics/Region;
+Landroid/view/IWindowManager;->getDefaultDisplayRotation()I
+Landroid/view/IWindowManager;->getNavBarPosition()I
+Landroid/view/IWindowManager;->getPreferredOptionsPanelGravity()I
+Landroid/view/IWindowManager;->getWindowContentFrameStats(Landroid/os/IBinder;)Landroid/view/WindowContentFrameStats;
+Landroid/view/IWindowManager;->isRotationFrozen()Z
+Landroid/view/IWindowManager;->isViewServerRunning()Z
+Landroid/view/IWindowManager;->isWindowTraceEnabled()Z
+Landroid/view/IWindowManager;->openSession(Landroid/view/IWindowSessionCallback;Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;)Landroid/view/IWindowSession;
+Landroid/view/IWindowManager;->overridePendingAppTransition(Ljava/lang/String;IILandroid/os/IRemoteCallback;)V
+Landroid/view/IWindowManager;->overridePendingAppTransitionAspectScaledThumb(Landroid/graphics/GraphicBuffer;IIIILandroid/os/IRemoteCallback;Z)V
+Landroid/view/IWindowManager;->overridePendingAppTransitionClipReveal(IIII)V
+Landroid/view/IWindowManager;->overridePendingAppTransitionInPlace(Ljava/lang/String;I)V
+Landroid/view/IWindowManager;->overridePendingAppTransitionMultiThumb([Landroid/view/AppTransitionAnimationSpec;Landroid/os/IRemoteCallback;Landroid/os/IRemoteCallback;Z)V
+Landroid/view/IWindowManager;->overridePendingAppTransitionScaleUp(IIII)V
+Landroid/view/IWindowManager;->overridePendingAppTransitionThumb(Landroid/graphics/GraphicBuffer;IILandroid/os/IRemoteCallback;Z)V
+Landroid/view/IWindowManager;->prepareAppTransition(IZ)V
+Landroid/view/IWindowManager;->reenableKeyguard(Landroid/os/IBinder;)V
+Landroid/view/IWindowManager;->refreshScreenCaptureDisabled(I)V
+Landroid/view/IWindowManager;->registerPinnedStackListener(ILandroid/view/IPinnedStackListener;)V
+Landroid/view/IWindowManager;->registerShortcutKey(JLcom/android/internal/policy/IShortcutService;)V
+Landroid/view/IWindowManager;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)Z
+Landroid/view/IWindowManager;->removeWindowToken(Landroid/os/IBinder;I)V
+Landroid/view/IWindowManager;->requestAppKeyboardShortcuts(Lcom/android/internal/os/IResultReceiver;I)V
+Landroid/view/IWindowManager;->requestAssistScreenshot(Landroid/app/IAssistDataReceiver;)Z
+Landroid/view/IWindowManager;->requestUserActivityNotification()V
+Landroid/view/IWindowManager;->screenshotWallpaper()Landroid/graphics/Bitmap;
+Landroid/view/IWindowManager;->setDockedStackDividerTouchRegion(Landroid/graphics/Rect;)V
+Landroid/view/IWindowManager;->setEventDispatching(Z)V
+Landroid/view/IWindowManager;->setFocusedApp(Landroid/os/IBinder;Z)V
+Landroid/view/IWindowManager;->setForcedDisplayDensityForUser(III)V
+Landroid/view/IWindowManager;->setForcedDisplayScalingMode(II)V
+Landroid/view/IWindowManager;->setForcedDisplaySize(III)V
+Landroid/view/IWindowManager;->setNewDisplayOverrideConfiguration(Landroid/content/res/Configuration;I)[I
+Landroid/view/IWindowManager;->setOverscan(IIIII)V
+Landroid/view/IWindowManager;->setPipVisibility(Z)V
+Landroid/view/IWindowManager;->setRecentsVisibility(Z)V
+Landroid/view/IWindowManager;->setResizeDimLayer(ZIF)V
+Landroid/view/IWindowManager;->setSwitchingUser(Z)V
+Landroid/view/IWindowManager;->startFreezingScreen(II)V
+Landroid/view/IWindowManager;->startViewServer(I)Z
+Landroid/view/IWindowManager;->startWindowTrace()V
+Landroid/view/IWindowManager;->statusBarVisibilityChanged(I)V
+Landroid/view/IWindowManager;->stopFreezingScreen()V
+Landroid/view/IWindowManager;->stopViewServer()Z
+Landroid/view/IWindowManager;->stopWindowTrace()V
+Landroid/view/IWindowManager;->unregisterWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)V
+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
+Landroid/view/IWindowSession$Stub$Proxy;->addToDisplayWithoutInputChannel(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+Landroid/view/IWindowSession$Stub$Proxy;->addWithoutInputChannel(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+Landroid/view/IWindowSession$Stub$Proxy;->cancelDragAndDrop(Landroid/os/IBinder;)V
+Landroid/view/IWindowSession$Stub$Proxy;->dragRecipientEntered(Landroid/view/IWindow;)V
+Landroid/view/IWindowSession$Stub$Proxy;->dragRecipientExited(Landroid/view/IWindow;)V
+Landroid/view/IWindowSession$Stub$Proxy;->finishDrawing(Landroid/view/IWindow;)V
+Landroid/view/IWindowSession$Stub$Proxy;->getDisplayFrame(Landroid/view/IWindow;Landroid/graphics/Rect;)V
+Landroid/view/IWindowSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/view/IWindowSession$Stub$Proxy;->getInTouchMode()Z
+Landroid/view/IWindowSession$Stub$Proxy;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
+Landroid/view/IWindowSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Landroid/view/IWindowSession$Stub$Proxy;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
+Landroid/view/IWindowSession$Stub$Proxy;->outOfMemory(Landroid/view/IWindow;)Z
+Landroid/view/IWindowSession$Stub$Proxy;->performDrag(Landroid/view/IWindow;ILandroid/view/SurfaceControl;IFFFFLandroid/content/ClipData;)Landroid/os/IBinder;
+Landroid/view/IWindowSession$Stub$Proxy;->performHapticFeedback(Landroid/view/IWindow;IZ)Z
+Landroid/view/IWindowSession$Stub$Proxy;->pokeDrawLock(Landroid/os/IBinder;)V
+Landroid/view/IWindowSession$Stub$Proxy;->prepareToReplaceWindows(Landroid/os/IBinder;Z)V
+Landroid/view/IWindowSession$Stub$Proxy;->remove(Landroid/view/IWindow;)V
+Landroid/view/IWindowSession$Stub$Proxy;->reportDropResult(Landroid/view/IWindow;Z)V
+Landroid/view/IWindowSession$Stub$Proxy;->sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;
+Landroid/view/IWindowSession$Stub$Proxy;->setInsets(Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
+Landroid/view/IWindowSession$Stub$Proxy;->setInTouchMode(Z)V
+Landroid/view/IWindowSession$Stub$Proxy;->setTransparentRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
+Landroid/view/IWindowSession$Stub$Proxy;->setWallpaperDisplayOffset(Landroid/os/IBinder;II)V
+Landroid/view/IWindowSession$Stub$Proxy;->setWallpaperPosition(Landroid/os/IBinder;FFFF)V
+Landroid/view/IWindowSession$Stub$Proxy;->startMovingTask(Landroid/view/IWindow;FF)Z
+Landroid/view/IWindowSession$Stub$Proxy;->updatePointerIcon(Landroid/view/IWindow;)V
+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
+Landroid/view/IWindowSession$Stub;->TRANSACTION_addToDisplayWithoutInputChannel:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_addWithoutInputChannel:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_cancelDragAndDrop:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_dragRecipientEntered:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_dragRecipientExited:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_finishDrawing:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_getDisplayFrame:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_getInTouchMode:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_getWindowId:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_onRectangleOnScreenRequested:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_outOfMemory:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_performDrag:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_performHapticFeedback:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_pokeDrawLock:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_prepareToReplaceWindows:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_relayout:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_remove:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_reportDropResult:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_sendWallpaperCommand:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_setInsets:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_setInTouchMode:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_setTransparentRegion:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_setWallpaperDisplayOffset:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_setWallpaperPosition:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_startMovingTask:I
+Landroid/view/IWindowSession$Stub;->TRANSACTION_updatePointerIcon:I
+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
+Landroid/view/IWindowSession;->addWithoutInputChannel(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+Landroid/view/IWindowSession;->cancelDragAndDrop(Landroid/os/IBinder;)V
+Landroid/view/IWindowSession;->dragRecipientEntered(Landroid/view/IWindow;)V
+Landroid/view/IWindowSession;->dragRecipientExited(Landroid/view/IWindow;)V
+Landroid/view/IWindowSession;->getDisplayFrame(Landroid/view/IWindow;Landroid/graphics/Rect;)V
+Landroid/view/IWindowSession;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
+Landroid/view/IWindowSession;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
+Landroid/view/IWindowSession;->outOfMemory(Landroid/view/IWindow;)Z
+Landroid/view/IWindowSession;->pokeDrawLock(Landroid/os/IBinder;)V
+Landroid/view/IWindowSession;->prepareToReplaceWindows(Landroid/os/IBinder;Z)V
+Landroid/view/IWindowSession;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/Surface;)I
+Landroid/view/IWindowSession;->reportDropResult(Landroid/view/IWindow;Z)V
+Landroid/view/IWindowSession;->sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;
+Landroid/view/IWindowSession;->setInsets(Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
+Landroid/view/IWindowSession;->setWallpaperDisplayOffset(Landroid/os/IBinder;II)V
+Landroid/view/IWindowSession;->setWallpaperPosition(Landroid/os/IBinder;FFFF)V
+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;
+Landroid/view/KeyboardShortcutGroup;->mLabel:Ljava/lang/CharSequence;
+Landroid/view/KeyboardShortcutGroup;->mSystemGroup:Z
+Landroid/view/KeyboardShortcutInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/view/KeyboardShortcutInfo;-><init>(Ljava/lang/CharSequence;Landroid/graphics/drawable/Icon;II)V
+Landroid/view/KeyboardShortcutInfo;->getIcon()Landroid/graphics/drawable/Icon;
+Landroid/view/KeyboardShortcutInfo;->mBaseCharacter:C
+Landroid/view/KeyboardShortcutInfo;->mIcon:Landroid/graphics/drawable/Icon;
+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;
+Landroid/view/KeyCharacterMap$FallbackAction;->obtain()Landroid/view/KeyCharacterMap$FallbackAction;
+Landroid/view/KeyCharacterMap$FallbackAction;->recycle()V
+Landroid/view/KeyCharacterMap$FallbackAction;->sRecycleBin:Landroid/view/KeyCharacterMap$FallbackAction;
+Landroid/view/KeyCharacterMap$FallbackAction;->sRecycledCount:I
+Landroid/view/KeyCharacterMap$FallbackAction;->sRecycleLock:Ljava/lang/Object;
+Landroid/view/KeyCharacterMap;-><init>(Landroid/os/Parcel;)V
+Landroid/view/KeyCharacterMap;->ACCENT_ACUTE:I
+Landroid/view/KeyCharacterMap;->ACCENT_BREVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_CARON:I
+Landroid/view/KeyCharacterMap;->ACCENT_CEDILLA:I
+Landroid/view/KeyCharacterMap;->ACCENT_CIRCUMFLEX:I
+Landroid/view/KeyCharacterMap;->ACCENT_CIRCUMFLEX_LEGACY:I
+Landroid/view/KeyCharacterMap;->ACCENT_COMMA_ABOVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_COMMA_ABOVE_RIGHT:I
+Landroid/view/KeyCharacterMap;->ACCENT_DOT_ABOVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_DOT_BELOW:I
+Landroid/view/KeyCharacterMap;->ACCENT_DOUBLE_ACUTE:I
+Landroid/view/KeyCharacterMap;->ACCENT_GRAVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_GRAVE_LEGACY:I
+Landroid/view/KeyCharacterMap;->ACCENT_HOOK_ABOVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_HORN:I
+Landroid/view/KeyCharacterMap;->ACCENT_MACRON:I
+Landroid/view/KeyCharacterMap;->ACCENT_MACRON_BELOW:I
+Landroid/view/KeyCharacterMap;->ACCENT_OGONEK:I
+Landroid/view/KeyCharacterMap;->ACCENT_REVERSED_COMMA_ABOVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_RING_ABOVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_STROKE:I
+Landroid/view/KeyCharacterMap;->ACCENT_TILDE:I
+Landroid/view/KeyCharacterMap;->ACCENT_TILDE_LEGACY:I
+Landroid/view/KeyCharacterMap;->ACCENT_TURNED_COMMA_ABOVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_UMLAUT:I
+Landroid/view/KeyCharacterMap;->ACCENT_VERTICAL_LINE_ABOVE:I
+Landroid/view/KeyCharacterMap;->ACCENT_VERTICAL_LINE_BELOW:I
+Landroid/view/KeyCharacterMap;->addCombining(II)V
+Landroid/view/KeyCharacterMap;->addDeadKey(III)V
+Landroid/view/KeyCharacterMap;->CHAR_SPACE:I
+Landroid/view/KeyCharacterMap;->getFallbackAction(II)Landroid/view/KeyCharacterMap$FallbackAction;
+Landroid/view/KeyCharacterMap;->mPtr:J
+Landroid/view/KeyCharacterMap;->nativeDispose(J)V
+Landroid/view/KeyCharacterMap;->nativeGetCharacter(JII)C
+Landroid/view/KeyCharacterMap;->nativeGetDisplayLabel(JI)C
+Landroid/view/KeyCharacterMap;->nativeGetEvents(J[C)[Landroid/view/KeyEvent;
+Landroid/view/KeyCharacterMap;->nativeGetFallbackAction(JIILandroid/view/KeyCharacterMap$FallbackAction;)Z
+Landroid/view/KeyCharacterMap;->nativeGetKeyboardType(J)I
+Landroid/view/KeyCharacterMap;->nativeGetMatch(JI[CI)C
+Landroid/view/KeyCharacterMap;->nativeGetNumber(JI)C
+Landroid/view/KeyCharacterMap;->nativeReadFromParcel(Landroid/os/Parcel;)J
+Landroid/view/KeyCharacterMap;->nativeWriteToParcel(JLandroid/os/Parcel;)V
+Landroid/view/KeyCharacterMap;->sAccentToCombining:Landroid/util/SparseIntArray;
+Landroid/view/KeyCharacterMap;->sCombiningToAccent:Landroid/util/SparseIntArray;
+Landroid/view/KeyCharacterMap;->sDeadKeyBuilder:Ljava/lang/StringBuilder;
+Landroid/view/KeyCharacterMap;->sDeadKeyCache:Landroid/util/SparseIntArray;
+Landroid/view/KeyEvent$DispatcherState;->mActiveLongPresses:Landroid/util/SparseIntArray;
+Landroid/view/KeyEvent$DispatcherState;->mDownKeyCode:I
+Landroid/view/KeyEvent$DispatcherState;->mDownTarget:Ljava/lang/Object;
+Landroid/view/KeyEvent;-><init>()V
+Landroid/view/KeyEvent;-><init>(Landroid/os/Parcel;)V
+Landroid/view/KeyEvent;-><init>(Landroid/view/KeyEvent;I)V
+Landroid/view/KeyEvent;->cancel()V
+Landroid/view/KeyEvent;->copy()Landroid/view/KeyEvent;
+Landroid/view/KeyEvent;->createFromParcelBody(Landroid/os/Parcel;)Landroid/view/KeyEvent;
+Landroid/view/KeyEvent;->DEBUG:Z
+Landroid/view/KeyEvent;->FLAG_PREDISPATCH:I
+Landroid/view/KeyEvent;->FLAG_START_TRACKING:I
+Landroid/view/KeyEvent;->FLAG_TAINTED:I
+Landroid/view/KeyEvent;->getEventTimeNano()J
+Landroid/view/KeyEvent;->getKeyboardDevice()I
+Landroid/view/KeyEvent;->gRecyclerLock:Ljava/lang/Object;
+Landroid/view/KeyEvent;->gRecyclerTop:Landroid/view/KeyEvent;
+Landroid/view/KeyEvent;->gRecyclerUsed:I
+Landroid/view/KeyEvent;->isAltKey(I)Z
+Landroid/view/KeyEvent;->isMediaKey(I)Z
+Landroid/view/KeyEvent;->isMetaKey(I)Z
+Landroid/view/KeyEvent;->isSystemKey(I)Z
+Landroid/view/KeyEvent;->isTainted()Z
+Landroid/view/KeyEvent;->isWakeKey()Z
+Landroid/view/KeyEvent;->isWakeKey(I)Z
+Landroid/view/KeyEvent;->LABEL_PREFIX:Ljava/lang/String;
+Landroid/view/KeyEvent;->LAST_KEYCODE:I
+Landroid/view/KeyEvent;->MAX_RECYCLED:I
+Landroid/view/KeyEvent;->metaStateFilterDirectionalModifiers(IIIII)I
+Landroid/view/KeyEvent;->metaStateToString(I)Ljava/lang/String;
+Landroid/view/KeyEvent;->mNext:Landroid/view/KeyEvent;
+Landroid/view/KeyEvent;->nativeKeyCodeFromString(Ljava/lang/String;)I
+Landroid/view/KeyEvent;->nativeKeyCodeToString(I)Ljava/lang/String;
+Landroid/view/KeyEvent;->obtain()Landroid/view/KeyEvent;
+Landroid/view/KeyEvent;->obtain(Landroid/view/KeyEvent;)Landroid/view/KeyEvent;
+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
+Landroid/view/LayoutInflater$BlinkLayout;->mBlink:Z
+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;
+Landroid/view/LayoutInflater$FactoryMerger;->mF22:Landroid/view/LayoutInflater$Factory2;
+Landroid/view/LayoutInflater$FactoryMerger;->mF2:Landroid/view/LayoutInflater$Factory;
+Landroid/view/LayoutInflater;->ATTR_LAYOUT:Ljava/lang/String;
+Landroid/view/LayoutInflater;->BOOT_CLASS_LOADER:Ljava/lang/ClassLoader;
+Landroid/view/LayoutInflater;->consumeChildElements(Lorg/xmlpull/v1/XmlPullParser;)V
+Landroid/view/LayoutInflater;->DEBUG:Z
+Landroid/view/LayoutInflater;->EMPTY_STACK_TRACE:[Ljava/lang/StackTraceElement;
+Landroid/view/LayoutInflater;->failNotAllowed(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)V
+Landroid/view/LayoutInflater;->mFilter:Landroid/view/LayoutInflater$Filter;
+Landroid/view/LayoutInflater;->mFilterMap:Ljava/util/HashMap;
+Landroid/view/LayoutInflater;->mTempValue:Landroid/util/TypedValue;
+Landroid/view/LayoutInflater;->parseViewTag(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/util/AttributeSet;)V
+Landroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V
+Landroid/view/LayoutInflater;->rInflateChildren(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/util/AttributeSet;Z)V
+Landroid/view/LayoutInflater;->TAG:Ljava/lang/String;
+Landroid/view/LayoutInflater;->TAG_1995:Ljava/lang/String;
+Landroid/view/LayoutInflater;->TAG_INCLUDE:Ljava/lang/String;
+Landroid/view/LayoutInflater;->TAG_MERGE:Ljava/lang/String;
+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;
+Landroid/view/MagnificationSpec;->initFromParcel(Landroid/os/Parcel;)V
+Landroid/view/MagnificationSpec;->initialize(FFF)V
+Landroid/view/MagnificationSpec;->isNop()Z
+Landroid/view/MagnificationSpec;->MAX_POOL_SIZE:I
+Landroid/view/MagnificationSpec;->obtain()Landroid/view/MagnificationSpec;
+Landroid/view/MagnificationSpec;->obtain(Landroid/view/MagnificationSpec;)Landroid/view/MagnificationSpec;
+Landroid/view/MagnificationSpec;->offsetX:F
+Landroid/view/MagnificationSpec;->offsetY:F
+Landroid/view/MagnificationSpec;->recycle()V
+Landroid/view/MagnificationSpec;->scale:F
+Landroid/view/MagnificationSpec;->setTo(Landroid/view/MagnificationSpec;)V
+Landroid/view/MagnificationSpec;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/view/Menu;->CATEGORY_MASK:I
+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
+Landroid/view/MenuInflater$MenuState;->defaultItemCategory:I
+Landroid/view/MenuInflater$MenuState;->defaultItemCheckable:I
+Landroid/view/MenuInflater$MenuState;->defaultItemChecked:Z
+Landroid/view/MenuInflater$MenuState;->defaultItemEnabled:Z
+Landroid/view/MenuInflater$MenuState;->defaultItemId:I
+Landroid/view/MenuInflater$MenuState;->defaultItemOrder:I
+Landroid/view/MenuInflater$MenuState;->defaultItemVisible:Z
+Landroid/view/MenuInflater$MenuState;->getShortcut(Ljava/lang/String;)C
+Landroid/view/MenuInflater$MenuState;->groupCategory:I
+Landroid/view/MenuInflater$MenuState;->groupCheckable:I
+Landroid/view/MenuInflater$MenuState;->groupEnabled:Z
+Landroid/view/MenuInflater$MenuState;->groupId:I
+Landroid/view/MenuInflater$MenuState;->groupOrder:I
+Landroid/view/MenuInflater$MenuState;->groupVisible:Z
+Landroid/view/MenuInflater$MenuState;->hasAddedItem()Z
+Landroid/view/MenuInflater$MenuState;->itemActionProvider:Landroid/view/ActionProvider;
+Landroid/view/MenuInflater$MenuState;->itemActionProviderClassName:Ljava/lang/String;
+Landroid/view/MenuInflater$MenuState;->itemActionViewClassName:Ljava/lang/String;
+Landroid/view/MenuInflater$MenuState;->itemActionViewLayout:I
+Landroid/view/MenuInflater$MenuState;->itemAdded:Z
+Landroid/view/MenuInflater$MenuState;->itemAlphabeticModifiers:I
+Landroid/view/MenuInflater$MenuState;->itemAlphabeticShortcut:C
+Landroid/view/MenuInflater$MenuState;->itemCategoryOrder:I
+Landroid/view/MenuInflater$MenuState;->itemCheckable:I
+Landroid/view/MenuInflater$MenuState;->itemChecked:Z
+Landroid/view/MenuInflater$MenuState;->itemContentDescription:Ljava/lang/CharSequence;
+Landroid/view/MenuInflater$MenuState;->itemEnabled:Z
+Landroid/view/MenuInflater$MenuState;->itemIconResId:I
+Landroid/view/MenuInflater$MenuState;->itemIconTintList:Landroid/content/res/ColorStateList;
+Landroid/view/MenuInflater$MenuState;->itemIconTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/view/MenuInflater$MenuState;->itemId:I
+Landroid/view/MenuInflater$MenuState;->itemListenerMethodName:Ljava/lang/String;
+Landroid/view/MenuInflater$MenuState;->itemNumericModifiers:I
+Landroid/view/MenuInflater$MenuState;->itemNumericShortcut:C
+Landroid/view/MenuInflater$MenuState;->itemShowAsAction:I
+Landroid/view/MenuInflater$MenuState;->itemTitle:Ljava/lang/CharSequence;
+Landroid/view/MenuInflater$MenuState;->itemTitleCondensed:Ljava/lang/CharSequence;
+Landroid/view/MenuInflater$MenuState;->itemTooltipText:Ljava/lang/CharSequence;
+Landroid/view/MenuInflater$MenuState;->itemVisible:Z
+Landroid/view/MenuInflater$MenuState;->menu:Landroid/view/Menu;
+Landroid/view/MenuInflater$MenuState;->newInstance(Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/view/MenuInflater$MenuState;->readGroup(Landroid/util/AttributeSet;)V
+Landroid/view/MenuInflater$MenuState;->readItem(Landroid/util/AttributeSet;)V
+Landroid/view/MenuInflater$MenuState;->resetGroup()V
+Landroid/view/MenuInflater$MenuState;->setItem(Landroid/view/MenuItem;)V
+Landroid/view/MenuInflater;-><init>(Landroid/content/Context;Ljava/lang/Object;)V
+Landroid/view/MenuInflater;->ACTION_PROVIDER_CONSTRUCTOR_SIGNATURE:[Ljava/lang/Class;
+Landroid/view/MenuInflater;->ACTION_VIEW_CONSTRUCTOR_SIGNATURE:[Ljava/lang/Class;
+Landroid/view/MenuInflater;->findRealOwner(Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/view/MenuInflater;->getContext()Landroid/content/Context;
+Landroid/view/MenuInflater;->getRealOwner()Ljava/lang/Object;
+Landroid/view/MenuInflater;->LOG_TAG:Ljava/lang/String;
+Landroid/view/MenuInflater;->mActionProviderConstructorArguments:[Ljava/lang/Object;
+Landroid/view/MenuInflater;->mActionViewConstructorArguments:[Ljava/lang/Object;
+Landroid/view/MenuInflater;->mContext:Landroid/content/Context;
+Landroid/view/MenuInflater;->mRealOwner:Ljava/lang/Object;
+Landroid/view/MenuInflater;->NO_ID:I
+Landroid/view/MenuInflater;->parseMenu(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/view/Menu;)V
+Landroid/view/MenuInflater;->registerMenu(Landroid/view/MenuItem;Landroid/util/AttributeSet;)V
+Landroid/view/MenuInflater;->registerMenu(Landroid/view/SubMenu;Landroid/util/AttributeSet;)V
+Landroid/view/MenuInflater;->XML_GROUP:Ljava/lang/String;
+Landroid/view/MenuInflater;->XML_ITEM:Ljava/lang/String;
+Landroid/view/MenuInflater;->XML_MENU:Ljava/lang/String;
+Landroid/view/MenuItem;->requiresActionButton()Z
+Landroid/view/MenuItem;->requiresOverflow()Z
+Landroid/view/MotionEvent$PointerCoords;->INITIAL_PACKED_AXIS_VALUES:I
+Landroid/view/MotionEvent$PointerProperties;->equals(Landroid/view/MotionEvent$PointerProperties;)Z
+Landroid/view/MotionEvent;-><init>()V
+Landroid/view/MotionEvent;->appendUnless(Ljava/lang/Object;Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/Object;)V
+Landroid/view/MotionEvent;->AXIS_SYMBOLIC_NAMES:Landroid/util/SparseArray;
+Landroid/view/MotionEvent;->buttonStateToString(I)Ljava/lang/String;
+Landroid/view/MotionEvent;->BUTTON_SYMBOLIC_NAMES:[Ljava/lang/String;
+Landroid/view/MotionEvent;->cancel()V
+Landroid/view/MotionEvent;->clamp(FFF)F
+Landroid/view/MotionEvent;->clampNoHistory(FFFF)Landroid/view/MotionEvent;
+Landroid/view/MotionEvent;->createFromParcelBody(Landroid/os/Parcel;)Landroid/view/MotionEvent;
+Landroid/view/MotionEvent;->DEBUG_CONCISE_TOSTRING:Z
+Landroid/view/MotionEvent;->ensureSharedTempPointerCapacity(I)V
+Landroid/view/MotionEvent;->FLAG_HOVER_EXIT_PENDING:I
+Landroid/view/MotionEvent;->FLAG_IS_GENERATED_GESTURE:I
+Landroid/view/MotionEvent;->FLAG_TAINTED:I
+Landroid/view/MotionEvent;->FLAG_TARGET_ACCESSIBILITY_FOCUS:I
+Landroid/view/MotionEvent;->FLAG_WINDOW_IS_PARTIALLY_OBSCURED:I
+Landroid/view/MotionEvent;->getHistoricalEventTimeNano(I)J
+Landroid/view/MotionEvent;->gRecyclerLock:Ljava/lang/Object;
+Landroid/view/MotionEvent;->gRecyclerTop:Landroid/view/MotionEvent;
+Landroid/view/MotionEvent;->gRecyclerUsed:I
+Landroid/view/MotionEvent;->gSharedTempLock:Ljava/lang/Object;
+Landroid/view/MotionEvent;->gSharedTempPointerCoords:[Landroid/view/MotionEvent$PointerCoords;
+Landroid/view/MotionEvent;->gSharedTempPointerIndexMap:[I
+Landroid/view/MotionEvent;->gSharedTempPointerProperties:[Landroid/view/MotionEvent$PointerProperties;
+Landroid/view/MotionEvent;->isHoverExitPending()Z
+Landroid/view/MotionEvent;->isTainted()Z
+Landroid/view/MotionEvent;->isTargetAccessibilityFocus()Z
+Landroid/view/MotionEvent;->isTouchEvent()Z
+Landroid/view/MotionEvent;->isWithinBoundsNoHistory(FFFF)Z
+Landroid/view/MotionEvent;->LABEL_PREFIX:Ljava/lang/String;
+Landroid/view/MotionEvent;->MAX_RECYCLED:I
+Landroid/view/MotionEvent;->mNext:Landroid/view/MotionEvent;
+Landroid/view/MotionEvent;->nativeAddBatch(JJ[Landroid/view/MotionEvent$PointerCoords;I)V
+Landroid/view/MotionEvent;->nativeAxisFromString(Ljava/lang/String;)I
+Landroid/view/MotionEvent;->nativeAxisToString(I)Ljava/lang/String;
+Landroid/view/MotionEvent;->nativeCopy(JJZ)J
+Landroid/view/MotionEvent;->nativeDispose(J)V
+Landroid/view/MotionEvent;->nativeFindPointerIndex(JI)I
+Landroid/view/MotionEvent;->nativeGetAction(J)I
+Landroid/view/MotionEvent;->nativeGetActionButton(J)I
+Landroid/view/MotionEvent;->nativeGetAxisValue(JIII)F
+Landroid/view/MotionEvent;->nativeGetButtonState(J)I
+Landroid/view/MotionEvent;->nativeGetDeviceId(J)I
+Landroid/view/MotionEvent;->nativeGetDownTimeNanos(J)J
+Landroid/view/MotionEvent;->nativeGetEdgeFlags(J)I
+Landroid/view/MotionEvent;->nativeGetEventTimeNanos(JI)J
+Landroid/view/MotionEvent;->nativeGetFlags(J)I
+Landroid/view/MotionEvent;->nativeGetHistorySize(J)I
+Landroid/view/MotionEvent;->nativeGetMetaState(J)I
+Landroid/view/MotionEvent;->nativeGetPointerCoords(JIILandroid/view/MotionEvent$PointerCoords;)V
+Landroid/view/MotionEvent;->nativeGetPointerCount(J)I
+Landroid/view/MotionEvent;->nativeGetPointerId(JI)I
+Landroid/view/MotionEvent;->nativeGetPointerProperties(JILandroid/view/MotionEvent$PointerProperties;)V
+Landroid/view/MotionEvent;->nativeGetSource(J)I
+Landroid/view/MotionEvent;->nativeGetToolType(JI)I
+Landroid/view/MotionEvent;->nativeGetXOffset(J)F
+Landroid/view/MotionEvent;->nativeGetXPrecision(J)F
+Landroid/view/MotionEvent;->nativeGetYOffset(J)F
+Landroid/view/MotionEvent;->nativeGetYPrecision(J)F
+Landroid/view/MotionEvent;->nativeInitialize(JIIIIIIIFFFFJJI[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;)J
+Landroid/view/MotionEvent;->nativeIsTouchEvent(J)Z
+Landroid/view/MotionEvent;->nativeOffsetLocation(JFF)V
+Landroid/view/MotionEvent;->nativeReadFromParcel(JLandroid/os/Parcel;)J
+Landroid/view/MotionEvent;->nativeScale(JF)V
+Landroid/view/MotionEvent;->nativeSetAction(JI)V
+Landroid/view/MotionEvent;->nativeSetActionButton(JI)V
+Landroid/view/MotionEvent;->nativeSetButtonState(JI)V
+Landroid/view/MotionEvent;->nativeSetDownTimeNanos(JJ)V
+Landroid/view/MotionEvent;->nativeSetEdgeFlags(JI)V
+Landroid/view/MotionEvent;->nativeSetFlags(JI)V
+Landroid/view/MotionEvent;->nativeSetSource(JI)I
+Landroid/view/MotionEvent;->nativeTransform(JJ)V
+Landroid/view/MotionEvent;->nativeWriteToParcel(JLandroid/os/Parcel;)V
+Landroid/view/MotionEvent;->NS_PER_MS:J
+Landroid/view/MotionEvent;->setHoverExitPending(Z)V
+Landroid/view/MotionEvent;->setTainted(Z)V
+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
+Landroid/view/NotificationHeaderView$HeaderTouchListener;->getRectAroundView(Landroid/view/View;)Landroid/graphics/Rect;
+Landroid/view/NotificationHeaderView$HeaderTouchListener;->isInside(FF)Z
+Landroid/view/NotificationHeaderView$HeaderTouchListener;->mAppOpsRect:Landroid/graphics/Rect;
+Landroid/view/NotificationHeaderView$HeaderTouchListener;->mDownX:F
+Landroid/view/NotificationHeaderView$HeaderTouchListener;->mDownY:F
+Landroid/view/NotificationHeaderView$HeaderTouchListener;->mExpandButtonRect:Landroid/graphics/Rect;
+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
+Landroid/view/NotificationHeaderView;->getExpandButton()Landroid/widget/ImageView;
+Landroid/view/NotificationHeaderView;->getFirstChildNotGone()Landroid/view/View;
+Landroid/view/NotificationHeaderView;->getIcon()Lcom/android/internal/widget/CachingIconView;
+Landroid/view/NotificationHeaderView;->getOriginalIconColor()I
+Landroid/view/NotificationHeaderView;->getOriginalNotificationColor()I
+Landroid/view/NotificationHeaderView;->getWorkProfileIcon()Landroid/view/View;
+Landroid/view/NotificationHeaderView;->isInTouchRect(FF)Z
+Landroid/view/NotificationHeaderView;->mAcceptAllTouches:Z
+Landroid/view/NotificationHeaderView;->mAppName:Landroid/view/View;
+Landroid/view/NotificationHeaderView;->mAppOps:Landroid/view/View;
+Landroid/view/NotificationHeaderView;->mAppOpsListener:Landroid/view/View$OnClickListener;
+Landroid/view/NotificationHeaderView;->mBackground:Landroid/graphics/drawable/Drawable;
+Landroid/view/NotificationHeaderView;->mCameraIcon:Landroid/view/View;
+Landroid/view/NotificationHeaderView;->mChildMinWidth:I
+Landroid/view/NotificationHeaderView;->mContentEndMargin:I
+Landroid/view/NotificationHeaderView;->mEntireHeaderClickable:Z
+Landroid/view/NotificationHeaderView;->mExpandButton:Landroid/widget/ImageView;
+Landroid/view/NotificationHeaderView;->mExpandClickListener:Landroid/view/View$OnClickListener;
+Landroid/view/NotificationHeaderView;->mExpanded:Z
+Landroid/view/NotificationHeaderView;->mExpandOnlyOnButton:Z
+Landroid/view/NotificationHeaderView;->mGravity:I
+Landroid/view/NotificationHeaderView;->mHeaderText:Landroid/view/View;
+Landroid/view/NotificationHeaderView;->mIcon:Lcom/android/internal/widget/CachingIconView;
+Landroid/view/NotificationHeaderView;->mIconColor:I
+Landroid/view/NotificationHeaderView;->mMicIcon:Landroid/view/View;
+Landroid/view/NotificationHeaderView;->mOriginalNotificationColor:I
+Landroid/view/NotificationHeaderView;->mOverlayIcon:Landroid/view/View;
+Landroid/view/NotificationHeaderView;->mProfileBadge:Landroid/view/View;
+Landroid/view/NotificationHeaderView;->mProvider:Landroid/view/ViewOutlineProvider;
+Landroid/view/NotificationHeaderView;->mSecondaryHeaderText:Landroid/view/View;
+Landroid/view/NotificationHeaderView;->mShowExpandButtonAtEnd:Z
+Landroid/view/NotificationHeaderView;->mShowWorkBadgeAtEnd:Z
+Landroid/view/NotificationHeaderView;->mTotalWidth:I
+Landroid/view/NotificationHeaderView;->mTouchListener:Landroid/view/NotificationHeaderView$HeaderTouchListener;
+Landroid/view/NotificationHeaderView;->NO_COLOR:I
+Landroid/view/NotificationHeaderView;->setAcceptAllTouches(Z)V
+Landroid/view/NotificationHeaderView;->setAppOpsOnClickListener(Landroid/view/View$OnClickListener;)V
+Landroid/view/NotificationHeaderView;->setExpanded(Z)V
+Landroid/view/NotificationHeaderView;->setExpandOnlyOnButton(Z)V
+Landroid/view/NotificationHeaderView;->setHeaderBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+Landroid/view/NotificationHeaderView;->setOriginalIconColor(I)V
+Landroid/view/NotificationHeaderView;->setOriginalNotificationColor(I)V
+Landroid/view/NotificationHeaderView;->setShowExpandButtonAtEnd(Z)V
+Landroid/view/NotificationHeaderView;->setShowWorkBadgeAtEnd(Z)V
+Landroid/view/NotificationHeaderView;->showAppOpsIcons(Landroid/util/ArraySet;)V
+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
+Landroid/view/OrientationEventListener;->DEBUG:Z
+Landroid/view/OrientationEventListener;->localLOGV:Z
+Landroid/view/OrientationEventListener;->mEnabled:Z
+Landroid/view/OrientationEventListener;->mOldListener:Landroid/view/OrientationListener;
+Landroid/view/OrientationEventListener;->mOrientation:I
+Landroid/view/OrientationEventListener;->mRate:I
+Landroid/view/OrientationEventListener;->mSensor:Landroid/hardware/Sensor;
+Landroid/view/OrientationEventListener;->mSensorEventListener:Landroid/hardware/SensorEventListener;
+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
+Landroid/view/PointerIcon;->getBitmapFromDrawable(Landroid/graphics/drawable/BitmapDrawable;)Landroid/graphics/Bitmap;
+Landroid/view/PointerIcon;->getDefaultIcon(Landroid/content/Context;)Landroid/view/PointerIcon;
+Landroid/view/PointerIcon;->getNullIcon()Landroid/view/PointerIcon;
+Landroid/view/PointerIcon;->getSystemIconTypeIndex(I)I
+Landroid/view/PointerIcon;->getType()I
+Landroid/view/PointerIcon;->gNullIcon:Landroid/view/PointerIcon;
+Landroid/view/PointerIcon;->gSystemIcons:Landroid/util/SparseArray;
+Landroid/view/PointerIcon;->loadResource(Landroid/content/Context;Landroid/content/res/Resources;I)V
+Landroid/view/PointerIcon;->mSystemIconResourceId:I
+Landroid/view/PointerIcon;->setUseLargeIcons(Z)V
+Landroid/view/PointerIcon;->sUseLargeIcons:Z
+Landroid/view/PointerIcon;->TAG:Ljava/lang/String;
+Landroid/view/PointerIcon;->TYPE_CUSTOM:I
+Landroid/view/PointerIcon;->TYPE_NOT_SPECIFIED:I
+Landroid/view/PointerIcon;->TYPE_OEM_FIRST:I
+Landroid/view/PointerIcon;->TYPE_SPOT_ANCHOR:I
+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
+Landroid/view/RecordingCanvas;->nDrawArc(JFFFFFFZJ)V
+Landroid/view/RecordingCanvas;->nDrawBitmap(JLandroid/graphics/Bitmap;FFFFFFFFJII)V
+Landroid/view/RecordingCanvas;->nDrawBitmap(JLandroid/graphics/Bitmap;FFJIII)V
+Landroid/view/RecordingCanvas;->nDrawBitmap(J[IIIFFIIZJ)V
+Landroid/view/RecordingCanvas;->nDrawBitmapMatrix(JLandroid/graphics/Bitmap;JJ)V
+Landroid/view/RecordingCanvas;->nDrawBitmapMesh(JLandroid/graphics/Bitmap;II[FI[IIJ)V
+Landroid/view/RecordingCanvas;->nDrawCircle(JFFFJ)V
+Landroid/view/RecordingCanvas;->nDrawColor(JII)V
+Landroid/view/RecordingCanvas;->nDrawLine(JFFFFJ)V
+Landroid/view/RecordingCanvas;->nDrawLines(J[FIIJ)V
+Landroid/view/RecordingCanvas;->nDrawNinePatch(JJJFFFFJII)V
+Landroid/view/RecordingCanvas;->nDrawOval(JFFFFJ)V
+Landroid/view/RecordingCanvas;->nDrawPaint(JJ)V
+Landroid/view/RecordingCanvas;->nDrawPath(JJJ)V
+Landroid/view/RecordingCanvas;->nDrawPoint(JFFJ)V
+Landroid/view/RecordingCanvas;->nDrawPoints(J[FIIJ)V
+Landroid/view/RecordingCanvas;->nDrawRect(JFFFFJ)V
+Landroid/view/RecordingCanvas;->nDrawRegion(JJJ)V
+Landroid/view/RecordingCanvas;->nDrawRoundRect(JFFFFFFJ)V
+Landroid/view/RecordingCanvas;->nDrawText(JLjava/lang/String;IIFFIJ)V
+Landroid/view/RecordingCanvas;->nDrawText(J[CIIFFIJ)V
+Landroid/view/RecordingCanvas;->nDrawTextOnPath(JLjava/lang/String;JFFIJ)V
+Landroid/view/RecordingCanvas;->nDrawTextOnPath(J[CIIJFFIJ)V
+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
+Landroid/view/RemoteAnimationAdapter;->getDuration()J
+Landroid/view/RemoteAnimationAdapter;->getRunner()Landroid/view/IRemoteAnimationRunner;
+Landroid/view/RemoteAnimationAdapter;->getStatusBarTransitionDelay()J
+Landroid/view/RemoteAnimationAdapter;->mCallingPid:I
+Landroid/view/RemoteAnimationAdapter;->mDuration:J
+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;
+Landroid/view/RemoteAnimationTarget;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+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
+Landroid/view/RenderNode;->adopt(J)Landroid/view/RenderNode;
+Landroid/view/RenderNode;->destroy()V
+Landroid/view/RenderNode;->endAllAnimators()V
+Landroid/view/RenderNode;->getAlpha()F
+Landroid/view/RenderNode;->getAmbientShadowColor()I
+Landroid/view/RenderNode;->getCameraDistance()F
+Landroid/view/RenderNode;->getClipToOutline()Z
+Landroid/view/RenderNode;->getDebugSize()I
+Landroid/view/RenderNode;->getElevation()F
+Landroid/view/RenderNode;->getInverseMatrix(Landroid/graphics/Matrix;)V
+Landroid/view/RenderNode;->getMatrix(Landroid/graphics/Matrix;)V
+Landroid/view/RenderNode;->getNativeDisplayList()J
+Landroid/view/RenderNode;->getPivotX()F
+Landroid/view/RenderNode;->getPivotY()F
+Landroid/view/RenderNode;->getRotation()F
+Landroid/view/RenderNode;->getRotationX()F
+Landroid/view/RenderNode;->getRotationY()F
+Landroid/view/RenderNode;->getScaleX()F
+Landroid/view/RenderNode;->getScaleY()F
+Landroid/view/RenderNode;->getSpotShadowColor()I
+Landroid/view/RenderNode;->getTranslationX()F
+Landroid/view/RenderNode;->getTranslationY()F
+Landroid/view/RenderNode;->getTranslationZ()F
+Landroid/view/RenderNode;->hasIdentityMatrix()Z
+Landroid/view/RenderNode;->hasOverlappingRendering()Z
+Landroid/view/RenderNode;->hasShadow()Z
+Landroid/view/RenderNode;->isAttached()Z
+Landroid/view/RenderNode;->isPivotExplicitlySet()Z
+Landroid/view/RenderNode;->mNativeRenderNode:J
+Landroid/view/RenderNode;->mOwningView:Landroid/view/View;
+Landroid/view/RenderNode;->nAddAnimator(JJ)V
+Landroid/view/RenderNode;->nCreate(Ljava/lang/String;)J
+Landroid/view/RenderNode;->nEndAllAnimators(J)V
+Landroid/view/RenderNode;->nGetAlpha(J)F
+Landroid/view/RenderNode;->nGetAmbientShadowColor(J)I
+Landroid/view/RenderNode;->nGetCameraDistance(J)F
+Landroid/view/RenderNode;->nGetClipToOutline(J)Z
+Landroid/view/RenderNode;->nGetDebugSize(J)I
+Landroid/view/RenderNode;->nGetElevation(J)F
+Landroid/view/RenderNode;->nGetInverseTransformMatrix(JJ)V
+Landroid/view/RenderNode;->nGetNativeFinalizer()J
+Landroid/view/RenderNode;->nGetPivotX(J)F
+Landroid/view/RenderNode;->nGetPivotY(J)F
+Landroid/view/RenderNode;->nGetRotation(J)F
+Landroid/view/RenderNode;->nGetRotationX(J)F
+Landroid/view/RenderNode;->nGetRotationY(J)F
+Landroid/view/RenderNode;->nGetScaleX(J)F
+Landroid/view/RenderNode;->nGetScaleY(J)F
+Landroid/view/RenderNode;->nGetSpotShadowColor(J)I
+Landroid/view/RenderNode;->nGetTransformMatrix(JJ)V
+Landroid/view/RenderNode;->nGetTranslationX(J)F
+Landroid/view/RenderNode;->nGetTranslationY(J)F
+Landroid/view/RenderNode;->nGetTranslationZ(J)F
+Landroid/view/RenderNode;->nHasIdentityMatrix(J)Z
+Landroid/view/RenderNode;->nHasOverlappingRendering(J)Z
+Landroid/view/RenderNode;->nHasShadow(J)Z
+Landroid/view/RenderNode;->nIsPivotExplicitlySet(J)Z
+Landroid/view/RenderNode;->nIsValid(J)Z
+Landroid/view/RenderNode;->nOffsetLeftAndRight(JI)Z
+Landroid/view/RenderNode;->nOffsetTopAndBottom(JI)Z
+Landroid/view/RenderNode;->nOutput(J)V
+Landroid/view/RenderNode;->nRequestPositionUpdates(JLandroid/view/SurfaceView;)V
+Landroid/view/RenderNode;->nResetPivot(J)Z
+Landroid/view/RenderNode;->nSetAlpha(JF)Z
+Landroid/view/RenderNode;->nSetAmbientShadowColor(JI)Z
+Landroid/view/RenderNode;->nSetAnimationMatrix(JJ)Z
+Landroid/view/RenderNode;->nSetBottom(JI)Z
+Landroid/view/RenderNode;->nSetCameraDistance(JF)Z
+Landroid/view/RenderNode;->nSetClipBounds(JIIII)Z
+Landroid/view/RenderNode;->nSetClipBoundsEmpty(J)Z
+Landroid/view/RenderNode;->nSetClipToBounds(JZ)Z
+Landroid/view/RenderNode;->nSetClipToOutline(JZ)Z
+Landroid/view/RenderNode;->nSetDisplayList(JJ)V
+Landroid/view/RenderNode;->nSetElevation(JF)Z
+Landroid/view/RenderNode;->nSetHasOverlappingRendering(JZ)Z
+Landroid/view/RenderNode;->nSetLayerPaint(JJ)Z
+Landroid/view/RenderNode;->nSetLayerType(JI)Z
+Landroid/view/RenderNode;->nSetLeft(JI)Z
+Landroid/view/RenderNode;->nSetLeftTopRightBottom(JIIII)Z
+Landroid/view/RenderNode;->nSetOutlineConvexPath(JJF)Z
+Landroid/view/RenderNode;->nSetOutlineEmpty(J)Z
+Landroid/view/RenderNode;->nSetOutlineNone(J)Z
+Landroid/view/RenderNode;->nSetOutlineRoundRect(JIIIIFF)Z
+Landroid/view/RenderNode;->nSetPivotX(JF)Z
+Landroid/view/RenderNode;->nSetPivotY(JF)Z
+Landroid/view/RenderNode;->nSetProjectBackwards(JZ)Z
+Landroid/view/RenderNode;->nSetProjectionReceiver(JZ)Z
+Landroid/view/RenderNode;->nSetRevealClip(JZFFF)Z
+Landroid/view/RenderNode;->nSetRight(JI)Z
+Landroid/view/RenderNode;->nSetRotation(JF)Z
+Landroid/view/RenderNode;->nSetRotationX(JF)Z
+Landroid/view/RenderNode;->nSetRotationY(JF)Z
+Landroid/view/RenderNode;->nSetScaleX(JF)Z
+Landroid/view/RenderNode;->nSetScaleY(JF)Z
+Landroid/view/RenderNode;->nSetSpotShadowColor(JI)Z
+Landroid/view/RenderNode;->nSetStaticMatrix(JJ)Z
+Landroid/view/RenderNode;->nSetTop(JI)Z
+Landroid/view/RenderNode;->nSetTranslationX(JF)Z
+Landroid/view/RenderNode;->nSetTranslationY(JF)Z
+Landroid/view/RenderNode;->nSetTranslationZ(JF)Z
+Landroid/view/RenderNode;->offsetTopAndBottom(I)Z
+Landroid/view/RenderNode;->registerVectorDrawableAnimator(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;)V
+Landroid/view/RenderNode;->requestPositionUpdates(Landroid/view/SurfaceView;)V
+Landroid/view/RenderNode;->resetPivot()Z
+Landroid/view/RenderNode;->setAlpha(F)Z
+Landroid/view/RenderNode;->setAmbientShadowColor(I)Z
+Landroid/view/RenderNode;->setAnimationMatrix(Landroid/graphics/Matrix;)Z
+Landroid/view/RenderNode;->setBottom(I)Z
+Landroid/view/RenderNode;->setCameraDistance(F)Z
+Landroid/view/RenderNode;->setClipBounds(Landroid/graphics/Rect;)Z
+Landroid/view/RenderNode;->setClipToOutline(Z)Z
+Landroid/view/RenderNode;->setElevation(F)Z
+Landroid/view/RenderNode;->setLayerPaint(Landroid/graphics/Paint;)Z
+Landroid/view/RenderNode;->setLayerType(I)Z
+Landroid/view/RenderNode;->setLeft(I)Z
+Landroid/view/RenderNode;->setOutline(Landroid/graphics/Outline;)Z
+Landroid/view/RenderNode;->setPivotX(F)Z
+Landroid/view/RenderNode;->setPivotY(F)Z
+Landroid/view/RenderNode;->setProjectionReceiver(Z)Z
+Landroid/view/RenderNode;->setRevealClip(ZFFF)Z
+Landroid/view/RenderNode;->setRight(I)Z
+Landroid/view/RenderNode;->setRotation(F)Z
+Landroid/view/RenderNode;->setRotationX(F)Z
+Landroid/view/RenderNode;->setRotationY(F)Z
+Landroid/view/RenderNode;->setScaleX(F)Z
+Landroid/view/RenderNode;->setScaleY(F)Z
+Landroid/view/RenderNode;->setSpotShadowColor(I)Z
+Landroid/view/RenderNode;->setStaticMatrix(Landroid/graphics/Matrix;)Z
+Landroid/view/RenderNode;->setTop(I)Z
+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
+Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;->mChoreographer:Landroid/view/Choreographer;
+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
+Landroid/view/RenderNodeAnimator;->checkMutable()V
+Landroid/view/RenderNodeAnimator;->cloneListeners()Ljava/util/ArrayList;
+Landroid/view/RenderNodeAnimator;->doStart()V
+Landroid/view/RenderNodeAnimator;->getHelper()Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;
+Landroid/view/RenderNodeAnimator;->getNativeAnimator()J
+Landroid/view/RenderNodeAnimator;->init(J)V
+Landroid/view/RenderNodeAnimator;->isNativeInterpolator(Landroid/animation/TimeInterpolator;)Z
+Landroid/view/RenderNodeAnimator;->LAST_VALUE:I
+Landroid/view/RenderNodeAnimator;->mFinalValue:F
+Landroid/view/RenderNodeAnimator;->mInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/view/RenderNodeAnimator;->mNativePtr:Lcom/android/internal/util/VirtualRefBasePtr;
+Landroid/view/RenderNodeAnimator;->moveToRunningState()V
+Landroid/view/RenderNodeAnimator;->mRenderProperty:I
+Landroid/view/RenderNodeAnimator;->mStartDelay:J
+Landroid/view/RenderNodeAnimator;->mStartTime:J
+Landroid/view/RenderNodeAnimator;->mState:I
+Landroid/view/RenderNodeAnimator;->mTarget:Landroid/view/RenderNode;
+Landroid/view/RenderNodeAnimator;->mUiThreadHandlesDelay:Z
+Landroid/view/RenderNodeAnimator;->mUnscaledDuration:J
+Landroid/view/RenderNodeAnimator;->mUnscaledStartDelay:J
+Landroid/view/RenderNodeAnimator;->mViewTarget:Landroid/view/View;
+Landroid/view/RenderNodeAnimator;->nCreateAnimator(IF)J
+Landroid/view/RenderNodeAnimator;->nCreateCanvasPropertyFloatAnimator(JF)J
+Landroid/view/RenderNodeAnimator;->nCreateCanvasPropertyPaintAnimator(JIF)J
+Landroid/view/RenderNodeAnimator;->nCreateRevealAnimator(IIFF)J
+Landroid/view/RenderNodeAnimator;->nEnd(J)V
+Landroid/view/RenderNodeAnimator;->nGetDuration(J)J
+Landroid/view/RenderNodeAnimator;->notifyStartListeners()V
+Landroid/view/RenderNodeAnimator;->nSetAllowRunningAsync(JZ)V
+Landroid/view/RenderNodeAnimator;->nSetDuration(JJ)V
+Landroid/view/RenderNodeAnimator;->nSetInterpolator(JJ)V
+Landroid/view/RenderNodeAnimator;->nSetListener(JLandroid/view/RenderNodeAnimator;)V
+Landroid/view/RenderNodeAnimator;->nSetStartDelay(JJ)V
+Landroid/view/RenderNodeAnimator;->nSetStartValue(JF)V
+Landroid/view/RenderNodeAnimator;->nStart(J)V
+Landroid/view/RenderNodeAnimator;->onFinished()V
+Landroid/view/RenderNodeAnimator;->PAINT_ALPHA:I
+Landroid/view/RenderNodeAnimator;->PAINT_STROKE_WIDTH:I
+Landroid/view/RenderNodeAnimator;->processDelayed(J)Z
+Landroid/view/RenderNodeAnimator;->releaseNativePtr()V
+Landroid/view/RenderNodeAnimator;->ROTATION:I
+Landroid/view/RenderNodeAnimator;->ROTATION_X:I
+Landroid/view/RenderNodeAnimator;->ROTATION_Y:I
+Landroid/view/RenderNodeAnimator;->sAnimationHelper:Ljava/lang/ThreadLocal;
+Landroid/view/RenderNodeAnimator;->SCALE_X:I
+Landroid/view/RenderNodeAnimator;->SCALE_Y:I
+Landroid/view/RenderNodeAnimator;->setAllowRunningAsynchronously(Z)V
+Landroid/view/RenderNodeAnimator;->setTarget(Landroid/view/DisplayListCanvas;)V
+Landroid/view/RenderNodeAnimator;->setTarget(Landroid/view/RenderNode;)V
+Landroid/view/RenderNodeAnimator;->STATE_DELAYED:I
+Landroid/view/RenderNodeAnimator;->STATE_FINISHED:I
+Landroid/view/RenderNodeAnimator;->STATE_PREPARE:I
+Landroid/view/RenderNodeAnimator;->STATE_RUNNING:I
+Landroid/view/RenderNodeAnimator;->sViewPropertyAnimatorMap:Landroid/util/SparseIntArray;
+Landroid/view/RenderNodeAnimator;->TRANSLATION_X:I
+Landroid/view/RenderNodeAnimator;->TRANSLATION_Y:I
+Landroid/view/RenderNodeAnimator;->TRANSLATION_Z:I
+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
+Landroid/view/RoundScrollbarRenderer;->DEFAULT_THUMB_COLOR:I
+Landroid/view/RoundScrollbarRenderer;->DEFAULT_TRACK_COLOR:I
+Landroid/view/RoundScrollbarRenderer;->drawRoundScrollbars(Landroid/graphics/Canvas;FLandroid/graphics/Rect;)V
+Landroid/view/RoundScrollbarRenderer;->MAX_SCROLLBAR_ANGLE_SWIPE:I
+Landroid/view/RoundScrollbarRenderer;->MIN_SCROLLBAR_ANGLE_SWIPE:I
+Landroid/view/RoundScrollbarRenderer;->mParent:Landroid/view/View;
+Landroid/view/RoundScrollbarRenderer;->mRect:Landroid/graphics/RectF;
+Landroid/view/RoundScrollbarRenderer;->mThumbPaint:Landroid/graphics/Paint;
+Landroid/view/RoundScrollbarRenderer;->mTrackPaint:Landroid/graphics/Paint;
+Landroid/view/RoundScrollbarRenderer;->SCROLLBAR_ANGLE_RANGE:I
+Landroid/view/RoundScrollbarRenderer;->setThumbColor(I)V
+Landroid/view/RoundScrollbarRenderer;->setTrackColor(I)V
+Landroid/view/RoundScrollbarRenderer;->WIDTH_PERCENTAGE:F
+Landroid/view/ScaleGestureDetector;->ANCHORED_SCALE_MODE_DOUBLE_TAP:I
+Landroid/view/ScaleGestureDetector;->ANCHORED_SCALE_MODE_NONE:I
+Landroid/view/ScaleGestureDetector;->ANCHORED_SCALE_MODE_STYLUS:I
+Landroid/view/ScaleGestureDetector;->inAnchoredScaleMode()Z
+Landroid/view/ScaleGestureDetector;->mAnchoredScaleMode:I
+Landroid/view/ScaleGestureDetector;->mAnchoredScaleStartX:F
+Landroid/view/ScaleGestureDetector;->mAnchoredScaleStartY:F
+Landroid/view/ScaleGestureDetector;->mContext:Landroid/content/Context;
+Landroid/view/ScaleGestureDetector;->mCurrSpan:F
+Landroid/view/ScaleGestureDetector;->mCurrSpanX:F
+Landroid/view/ScaleGestureDetector;->mCurrSpanY:F
+Landroid/view/ScaleGestureDetector;->mCurrTime:J
+Landroid/view/ScaleGestureDetector;->mEventBeforeOrAboveStartingGestureEvent:Z
+Landroid/view/ScaleGestureDetector;->mFocusX:F
+Landroid/view/ScaleGestureDetector;->mFocusY:F
+Landroid/view/ScaleGestureDetector;->mGestureDetector:Landroid/view/GestureDetector;
+Landroid/view/ScaleGestureDetector;->mHandler:Landroid/os/Handler;
+Landroid/view/ScaleGestureDetector;->mInitialSpan:F
+Landroid/view/ScaleGestureDetector;->mInProgress:Z
+Landroid/view/ScaleGestureDetector;->mInputEventConsistencyVerifier:Landroid/view/InputEventConsistencyVerifier;
+Landroid/view/ScaleGestureDetector;->mPrevSpan:F
+Landroid/view/ScaleGestureDetector;->mPrevSpanX:F
+Landroid/view/ScaleGestureDetector;->mPrevSpanY:F
+Landroid/view/ScaleGestureDetector;->mPrevTime:J
+Landroid/view/ScaleGestureDetector;->mQuickScaleEnabled:Z
+Landroid/view/ScaleGestureDetector;->mStylusScaleEnabled:Z
+Landroid/view/ScaleGestureDetector;->SCALE_FACTOR:F
+Landroid/view/ScaleGestureDetector;->TAG:Ljava/lang/String;
+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;
+Landroid/view/Surface$HwuiContext;->mCanvas:Landroid/view/DisplayListCanvas;
+Landroid/view/Surface$HwuiContext;->mHwuiRenderer:J
+Landroid/view/Surface$HwuiContext;->mIsWideColorGamut:Z
+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
+Landroid/view/Surface;->createFrom(Landroid/view/SurfaceControl;)V
+Landroid/view/Surface;->forceScopedDisconnect()V
+Landroid/view/Surface;->getGenerationId()I
+Landroid/view/Surface;->hwuiDestroy()V
+Landroid/view/Surface;->isAutoRefreshEnabled()Z
+Landroid/view/Surface;->isConsumerRunningBehind()Z
+Landroid/view/Surface;->isSharedBufferModeEnabled()Z
+Landroid/view/Surface;->isSingleBuffered()Z
+Landroid/view/Surface;->lockHardwareWideColorGamutCanvas()Landroid/graphics/Canvas;
+Landroid/view/Surface;->mCanvas:Landroid/graphics/Canvas;
+Landroid/view/Surface;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/view/Surface;->mCompatibleMatrix:Landroid/graphics/Matrix;
+Landroid/view/Surface;->mGenerationId:I
+Landroid/view/Surface;->mHwuiContext:Landroid/view/Surface$HwuiContext;
+Landroid/view/Surface;->mIsAutoRefreshEnabled:Z
+Landroid/view/Surface;->mIsSharedBufferModeEnabled:Z
+Landroid/view/Surface;->mIsSingleBuffered:Z
+Landroid/view/Surface;->nativeAllocateBuffers(J)V
+Landroid/view/Surface;->nativeAttachAndQueueBuffer(JLandroid/graphics/GraphicBuffer;)I
+Landroid/view/Surface;->nativeCreateFromSurfaceControl(J)J
+Landroid/view/Surface;->nativeCreateFromSurfaceTexture(Landroid/graphics/SurfaceTexture;)J
+Landroid/view/Surface;->nativeForceScopedDisconnect(J)I
+Landroid/view/Surface;->nativeGetFromSurfaceControl(J)J
+Landroid/view/Surface;->nativeGetHeight(J)I
+Landroid/view/Surface;->nativeGetNextFrameNumber(J)J
+Landroid/view/Surface;->nativeGetWidth(J)I
+Landroid/view/Surface;->nativeIsConsumerRunningBehind(J)Z
+Landroid/view/Surface;->nativeIsValid(J)Z
+Landroid/view/Surface;->nativeLockCanvas(JLandroid/graphics/Canvas;Landroid/graphics/Rect;)J
+Landroid/view/Surface;->nativeReadFromParcel(JLandroid/os/Parcel;)J
+Landroid/view/Surface;->nativeSetAutoRefreshEnabled(JZ)I
+Landroid/view/Surface;->nativeSetScalingMode(JI)I
+Landroid/view/Surface;->nativeSetSharedBufferModeEnabled(JZ)I
+Landroid/view/Surface;->nativeUnlockCanvasAndPost(JLandroid/graphics/Canvas;)V
+Landroid/view/Surface;->nativeWriteToParcel(JLandroid/os/Parcel;)V
+Landroid/view/Surface;->nHwuiCreate(JJZ)J
+Landroid/view/Surface;->nHwuiDestroy(J)V
+Landroid/view/Surface;->nHwuiDraw(J)V
+Landroid/view/Surface;->nHwuiSetSurface(JJ)V
+Landroid/view/Surface;->rotationToString(I)Ljava/lang/String;
+Landroid/view/Surface;->SCALING_MODE_FREEZE:I
+Landroid/view/Surface;->SCALING_MODE_NO_SCALE_CROP:I
+Landroid/view/Surface;->SCALING_MODE_SCALE_CROP:I
+Landroid/view/Surface;->SCALING_MODE_SCALE_TO_WINDOW:I
+Landroid/view/Surface;->setAutoRefreshEnabled(Z)V
+Landroid/view/Surface;->setCompatibilityTranslator(Landroid/content/res/CompatibilityInfo$Translator;)V
+Landroid/view/Surface;->setNativeObjectLocked(J)V
+Landroid/view/Surface;->setScalingMode(I)V
+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
+Landroid/view/SurfaceControl$Builder;->mFormat:I
+Landroid/view/SurfaceControl$Builder;->mHeight:I
+Landroid/view/SurfaceControl$Builder;->mName:Ljava/lang/String;
+Landroid/view/SurfaceControl$Builder;->mOwnerUid:I
+Landroid/view/SurfaceControl$Builder;->mParent:Landroid/view/SurfaceControl;
+Landroid/view/SurfaceControl$Builder;->mSession:Landroid/view/SurfaceSession;
+Landroid/view/SurfaceControl$Builder;->mWidth:I
+Landroid/view/SurfaceControl$Builder;->mWindowType:I
+Landroid/view/SurfaceControl$Builder;->setColorLayer(Z)Landroid/view/SurfaceControl$Builder;
+Landroid/view/SurfaceControl$Builder;->setFlags(I)Landroid/view/SurfaceControl$Builder;
+Landroid/view/SurfaceControl$Builder;->setFormat(I)Landroid/view/SurfaceControl$Builder;
+Landroid/view/SurfaceControl$Builder;->setMetadata(II)Landroid/view/SurfaceControl$Builder;
+Landroid/view/SurfaceControl$Builder;->setName(Ljava/lang/String;)Landroid/view/SurfaceControl$Builder;
+Landroid/view/SurfaceControl$Builder;->setOpaque(Z)Landroid/view/SurfaceControl$Builder;
+Landroid/view/SurfaceControl$Builder;->setParent(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Builder;
+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;
+Landroid/view/SurfaceControl$Transaction;->detachChildren(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->merge(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->mFreeNativeResources:Ljava/lang/Runnable;
+Landroid/view/SurfaceControl$Transaction;->mNativeObject:J
+Landroid/view/SurfaceControl$Transaction;->mResizedSurfaces:Landroid/util/ArrayMap;
+Landroid/view/SurfaceControl$Transaction;->reparent(Landroid/view/SurfaceControl;Landroid/os/IBinder;)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->reparentChildren(Landroid/view/SurfaceControl;Landroid/os/IBinder;)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setAnimationTransaction()Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setDisplayLayerStack(Landroid/os/IBinder;I)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setDisplayProjection(Landroid/os/IBinder;ILandroid/graphics/Rect;Landroid/graphics/Rect;)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setDisplaySize(Landroid/os/IBinder;II)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setDisplaySurface(Landroid/os/IBinder;Landroid/view/Surface;)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setEarlyWakeup()Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setGeometryAppliesWithResize(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setLayerStack(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setOpaque(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setOverrideScalingMode(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl$Transaction;->setRelativeLayer(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+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
+Landroid/view/SurfaceControl;->BUILT_IN_DISPLAY_ID_HDMI:I
+Landroid/view/SurfaceControl;->BUILT_IN_DISPLAY_ID_MAIN:I
+Landroid/view/SurfaceControl;->captureLayers(Landroid/os/IBinder;Landroid/graphics/Rect;F)Landroid/graphics/GraphicBuffer;
+Landroid/view/SurfaceControl;->checkNotReleased()V
+Landroid/view/SurfaceControl;->clearAnimationFrameStats()Z
+Landroid/view/SurfaceControl;->clearContentFrameStats()Z
+Landroid/view/SurfaceControl;->closeTransaction(Z)V
+Landroid/view/SurfaceControl;->closeTransactionSync()V
+Landroid/view/SurfaceControl;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/view/SurfaceControl;->CURSOR_WINDOW:I
+Landroid/view/SurfaceControl;->deferTransactionUntil(Landroid/os/IBinder;J)V
+Landroid/view/SurfaceControl;->deferTransactionUntil(Landroid/view/Surface;J)V
+Landroid/view/SurfaceControl;->destroy()V
+Landroid/view/SurfaceControl;->detachChildren()V
+Landroid/view/SurfaceControl;->disconnect()V
+Landroid/view/SurfaceControl;->FX_SURFACE_DIM:I
+Landroid/view/SurfaceControl;->FX_SURFACE_MASK:I
+Landroid/view/SurfaceControl;->FX_SURFACE_NORMAL:I
+Landroid/view/SurfaceControl;->getActiveColorMode(Landroid/os/IBinder;)I
+Landroid/view/SurfaceControl;->getActiveConfig(Landroid/os/IBinder;)I
+Landroid/view/SurfaceControl;->getAnimationFrameStats(Landroid/view/WindowAnimationFrameStats;)Z
+Landroid/view/SurfaceControl;->getContentFrameStats(Landroid/view/WindowContentFrameStats;)Z
+Landroid/view/SurfaceControl;->getDisplayColorModes(Landroid/os/IBinder;)[I
+Landroid/view/SurfaceControl;->getHandle()Landroid/os/IBinder;
+Landroid/view/SurfaceControl;->getHdrCapabilities(Landroid/os/IBinder;)Landroid/view/Display$HdrCapabilities;
+Landroid/view/SurfaceControl;->getHeight()I
+Landroid/view/SurfaceControl;->getWidth()I
+Landroid/view/SurfaceControl;->mCloseGuard:Ldalvik/system/CloseGuard;
+Landroid/view/SurfaceControl;->mergeToGlobalTransaction(Landroid/view/SurfaceControl$Transaction;)V
+Landroid/view/SurfaceControl;->mHeight:I
+Landroid/view/SurfaceControl;->mName:Ljava/lang/String;
+Landroid/view/SurfaceControl;->mNativeObject:J
+Landroid/view/SurfaceControl;->mSizeLock:Ljava/lang/Object;
+Landroid/view/SurfaceControl;->mWidth:I
+Landroid/view/SurfaceControl;->nativeApplyTransaction(JZ)V
+Landroid/view/SurfaceControl;->nativeCaptureLayers(Landroid/os/IBinder;Landroid/graphics/Rect;F)Landroid/graphics/GraphicBuffer;
+Landroid/view/SurfaceControl;->nativeClearAnimationFrameStats()Z
+Landroid/view/SurfaceControl;->nativeClearContentFrameStats(J)Z
+Landroid/view/SurfaceControl;->nativeCreate(Landroid/view/SurfaceSession;Ljava/lang/String;IIIIJII)J
+Landroid/view/SurfaceControl;->nativeCreateDisplay(Ljava/lang/String;Z)Landroid/os/IBinder;
+Landroid/view/SurfaceControl;->nativeCreateTransaction()J
+Landroid/view/SurfaceControl;->nativeDeferTransactionUntil(JJLandroid/os/IBinder;J)V
+Landroid/view/SurfaceControl;->nativeDeferTransactionUntilSurface(JJJJ)V
+Landroid/view/SurfaceControl;->nativeDestroy(J)V
+Landroid/view/SurfaceControl;->nativeDestroy(JJ)V
+Landroid/view/SurfaceControl;->nativeDestroyDisplay(Landroid/os/IBinder;)V
+Landroid/view/SurfaceControl;->nativeDisconnect(J)V
+Landroid/view/SurfaceControl;->nativeGetActiveColorMode(Landroid/os/IBinder;)I
+Landroid/view/SurfaceControl;->nativeGetActiveConfig(Landroid/os/IBinder;)I
+Landroid/view/SurfaceControl;->nativeGetAnimationFrameStats(Landroid/view/WindowAnimationFrameStats;)Z
+Landroid/view/SurfaceControl;->nativeGetBuiltInDisplay(I)Landroid/os/IBinder;
+Landroid/view/SurfaceControl;->nativeGetContentFrameStats(JLandroid/view/WindowContentFrameStats;)Z
+Landroid/view/SurfaceControl;->nativeGetDisplayColorModes(Landroid/os/IBinder;)[I
+Landroid/view/SurfaceControl;->nativeGetDisplayConfigs(Landroid/os/IBinder;)[Landroid/view/SurfaceControl$PhysicalDisplayInfo;
+Landroid/view/SurfaceControl;->nativeGetHandle(J)Landroid/os/IBinder;
+Landroid/view/SurfaceControl;->nativeGetHdrCapabilities(Landroid/os/IBinder;)Landroid/view/Display$HdrCapabilities;
+Landroid/view/SurfaceControl;->nativeGetNativeTransactionFinalizer()J
+Landroid/view/SurfaceControl;->nativeGetTransformToDisplayInverse(J)Z
+Landroid/view/SurfaceControl;->nativeMergeTransaction(JJ)V
+Landroid/view/SurfaceControl;->nativeReadFromParcel(Landroid/os/Parcel;)J
+Landroid/view/SurfaceControl;->nativeRelease(J)V
+Landroid/view/SurfaceControl;->nativeReparent(JJLandroid/os/IBinder;)V
+Landroid/view/SurfaceControl;->nativeReparentChildren(JJLandroid/os/IBinder;)V
+Landroid/view/SurfaceControl;->nativeScreenshot(Landroid/os/IBinder;Landroid/graphics/Rect;IIIIZZI)Landroid/graphics/Bitmap;
+Landroid/view/SurfaceControl;->nativeScreenshot(Landroid/os/IBinder;Landroid/view/Surface;Landroid/graphics/Rect;IIIIZZ)V
+Landroid/view/SurfaceControl;->nativeScreenshotToBuffer(Landroid/os/IBinder;Landroid/graphics/Rect;IIIIZZI)Landroid/graphics/GraphicBuffer;
+Landroid/view/SurfaceControl;->nativeSetActiveColorMode(Landroid/os/IBinder;I)Z
+Landroid/view/SurfaceControl;->nativeSetActiveConfig(Landroid/os/IBinder;I)Z
+Landroid/view/SurfaceControl;->nativeSetAlpha(JJF)V
+Landroid/view/SurfaceControl;->nativeSetAnimationTransaction(J)V
+Landroid/view/SurfaceControl;->nativeSetColor(JJ[F)V
+Landroid/view/SurfaceControl;->nativeSetDisplayLayerStack(JLandroid/os/IBinder;I)V
+Landroid/view/SurfaceControl;->nativeSetDisplayPowerMode(Landroid/os/IBinder;I)V
+Landroid/view/SurfaceControl;->nativeSetDisplayProjection(JLandroid/os/IBinder;IIIIIIIII)V
+Landroid/view/SurfaceControl;->nativeSetDisplaySize(JLandroid/os/IBinder;II)V
+Landroid/view/SurfaceControl;->nativeSetDisplaySurface(JLandroid/os/IBinder;J)V
+Landroid/view/SurfaceControl;->nativeSetEarlyWakeup(J)V
+Landroid/view/SurfaceControl;->nativeSetFinalCrop(JJIIII)V
+Landroid/view/SurfaceControl;->nativeSetFlags(JJII)V
+Landroid/view/SurfaceControl;->nativeSetGeometryAppliesWithResize(JJ)V
+Landroid/view/SurfaceControl;->nativeSetLayer(JJI)V
+Landroid/view/SurfaceControl;->nativeSetLayerStack(JJI)V
+Landroid/view/SurfaceControl;->nativeSetMatrix(JJFFFF)V
+Landroid/view/SurfaceControl;->nativeSetOverrideScalingMode(JJI)V
+Landroid/view/SurfaceControl;->nativeSetPosition(JJFF)V
+Landroid/view/SurfaceControl;->nativeSetRelativeLayer(JJLandroid/os/IBinder;I)V
+Landroid/view/SurfaceControl;->nativeSetSize(JJII)V
+Landroid/view/SurfaceControl;->nativeSetTransparentRegionHint(JJLandroid/graphics/Region;)V
+Landroid/view/SurfaceControl;->nativeSetWindowCrop(JJIIII)V
+Landroid/view/SurfaceControl;->nativeSeverChildren(JJ)V
+Landroid/view/SurfaceControl;->nativeWriteToParcel(JLandroid/os/Parcel;)V
+Landroid/view/SurfaceControl;->NON_PREMULTIPLIED:I
+Landroid/view/SurfaceControl;->OPAQUE:I
+Landroid/view/SurfaceControl;->POWER_MODE_DOZE:I
+Landroid/view/SurfaceControl;->POWER_MODE_DOZE_SUSPEND:I
+Landroid/view/SurfaceControl;->POWER_MODE_NORMAL:I
+Landroid/view/SurfaceControl;->POWER_MODE_OFF:I
+Landroid/view/SurfaceControl;->POWER_MODE_ON_SUSPEND:I
+Landroid/view/SurfaceControl;->PROTECTED_APP:I
+Landroid/view/SurfaceControl;->release()V
+Landroid/view/SurfaceControl;->reparent(Landroid/os/IBinder;)V
+Landroid/view/SurfaceControl;->reparentChildren(Landroid/os/IBinder;)V
+Landroid/view/SurfaceControl;->rotateCropForSF(Landroid/graphics/Rect;I)V
+Landroid/view/SurfaceControl;->screenshot(Landroid/os/IBinder;Landroid/view/Surface;)V
+Landroid/view/SurfaceControl;->screenshot(Landroid/os/IBinder;Landroid/view/Surface;II)V
+Landroid/view/SurfaceControl;->screenshot(Landroid/os/IBinder;Landroid/view/Surface;IIIIZ)V
+Landroid/view/SurfaceControl;->screenshotToBuffer(Landroid/graphics/Rect;IIIIZI)Landroid/graphics/GraphicBuffer;
+Landroid/view/SurfaceControl;->SECURE:I
+Landroid/view/SurfaceControl;->setActiveColorMode(Landroid/os/IBinder;I)Z
+Landroid/view/SurfaceControl;->setActiveConfig(Landroid/os/IBinder;I)Z
+Landroid/view/SurfaceControl;->setAlpha(F)V
+Landroid/view/SurfaceControl;->setAnimationTransaction()V
+Landroid/view/SurfaceControl;->setColor([F)V
+Landroid/view/SurfaceControl;->setDisplayPowerMode(Landroid/os/IBinder;I)V
+Landroid/view/SurfaceControl;->setDisplaySize(Landroid/os/IBinder;II)V
+Landroid/view/SurfaceControl;->setFinalCrop(Landroid/graphics/Rect;)V
+Landroid/view/SurfaceControl;->setGeometryAppliesWithResize()V
+Landroid/view/SurfaceControl;->setLayerStack(I)V
+Landroid/view/SurfaceControl;->setMatrix(FFFF)V
+Landroid/view/SurfaceControl;->setMatrix(Landroid/graphics/Matrix;[F)V
+Landroid/view/SurfaceControl;->setOpaque(Z)V
+Landroid/view/SurfaceControl;->setOverrideScalingMode(I)V
+Landroid/view/SurfaceControl;->setRelativeLayer(Landroid/view/SurfaceControl;I)V
+Landroid/view/SurfaceControl;->setSecure(Z)V
+Landroid/view/SurfaceControl;->setSize(II)V
+Landroid/view/SurfaceControl;->setTransparentRegionHint(Landroid/graphics/Region;)V
+Landroid/view/SurfaceControl;->setWindowCrop(Landroid/graphics/Rect;)V
+Landroid/view/SurfaceControl;->sGlobalTransaction:Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceControl;->sTransactionNestCount:J
+Landroid/view/SurfaceControl;->SURFACE_HIDDEN:I
+Landroid/view/SurfaceControl;->SURFACE_OPAQUE:I
+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
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->hide()V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->mBackgroundControl:Landroid/view/SurfaceControl;
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->mOpaque:Z
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->mVisible:Z
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->release()V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setAlpha(F)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setBackgroundColor(I)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setFinalCrop(Landroid/graphics/Rect;)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setLayer(I)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setLayerStack(I)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setMatrix(FFFF)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setOpaque(Z)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setPosition(FF)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setSecure(Z)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setSize(II)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setTransparentRegionHint(Landroid/graphics/Region;)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->setWindowCrop(Landroid/graphics/Rect;)V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->show()V
+Landroid/view/SurfaceView$SurfaceControlWithBackground;->updateBackgroundVisibility()V
+Landroid/view/SurfaceView;->applyChildSurfaceTransaction_renderWorker(Landroid/view/SurfaceControl$Transaction;Landroid/view/Surface;J)V
+Landroid/view/SurfaceView;->applySurfaceTransforms(Landroid/view/SurfaceControl;Landroid/graphics/Rect;J)V
+Landroid/view/SurfaceView;->DEBUG:Z
+Landroid/view/SurfaceView;->getParentSurfaceInsets()Landroid/graphics/Rect;
+Landroid/view/SurfaceView;->getSurfaceCallbacks()[Landroid/view/SurfaceHolder$Callback;
+Landroid/view/SurfaceView;->isAboveParent()Z
+Landroid/view/SurfaceView;->mAttachedToWindow:Z
+Landroid/view/SurfaceView;->mConfiguration:Landroid/content/res/Configuration;
+Landroid/view/SurfaceView;->mDeferredDestroySurfaceControl:Landroid/view/SurfaceControl;
+Landroid/view/SurfaceView;->mDrawFinished:Z
+Landroid/view/SurfaceView;->mGlobalListenersAdded:Z
+Landroid/view/SurfaceView;->mLastSurfaceHeight:I
+Landroid/view/SurfaceView;->mLastSurfaceWidth:I
+Landroid/view/SurfaceView;->mLastWindowVisibility:Z
+Landroid/view/SurfaceView;->mLocation:[I
+Landroid/view/SurfaceView;->mPendingReportDraws:I
+Landroid/view/SurfaceView;->mRequestedVisible:Z
+Landroid/view/SurfaceView;->mRtHandlingPositionUpdates:Z
+Landroid/view/SurfaceView;->mRTLastReportedPosition:Landroid/graphics/Rect;
+Landroid/view/SurfaceView;->mRtTransaction:Landroid/view/SurfaceControl$Transaction;
+Landroid/view/SurfaceView;->mScreenRect:Landroid/graphics/Rect;
+Landroid/view/SurfaceView;->mScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
+Landroid/view/SurfaceView;->mSubLayer:I
+Landroid/view/SurfaceView;->mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
+Landroid/view/SurfaceView;->mSurfaceCreated:Z
+Landroid/view/SurfaceView;->mSurfaceFlags:I
+Landroid/view/SurfaceView;->mSurfaceHeight:I
+Landroid/view/SurfaceView;->mSurfaceSession:Landroid/view/SurfaceSession;
+Landroid/view/SurfaceView;->mSurfaceWidth:I
+Landroid/view/SurfaceView;->mTmpRect:Landroid/graphics/Rect;
+Landroid/view/SurfaceView;->mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
+Landroid/view/SurfaceView;->mViewVisibility:Z
+Landroid/view/SurfaceView;->mVisible:Z
+Landroid/view/SurfaceView;->mWindowSpaceLeft:I
+Landroid/view/SurfaceView;->mWindowSpaceTop:I
+Landroid/view/SurfaceView;->mWindowStopped:Z
+Landroid/view/SurfaceView;->mWindowVisibility:Z
+Landroid/view/SurfaceView;->notifyDrawFinished()V
+Landroid/view/SurfaceView;->onDrawFinished()V
+Landroid/view/SurfaceView;->performDrawFinished()V
+Landroid/view/SurfaceView;->runOnUiThread(Ljava/lang/Runnable;)V
+Landroid/view/SurfaceView;->setParentSpaceRectangle(Landroid/graphics/Rect;J)V
+Landroid/view/SurfaceView;->setResizeBackgroundColor(I)V
+Landroid/view/SurfaceView;->TAG:Ljava/lang/String;
+Landroid/view/SurfaceView;->updateOpaqueFlag()V
+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
+Landroid/view/textclassifier/EntityConfidence;-><init>(Ljava/util/Map;)V
+Landroid/view/textclassifier/EntityConfidence;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/view/textclassifier/EntityConfidence;->getConfidenceScore(Ljava/lang/String;)F
+Landroid/view/textclassifier/EntityConfidence;->getEntities()Ljava/util/List;
+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
+Landroid/view/textclassifier/GenerateLinksLogger;->DEBUG_LOG_ENABLED:Z
+Landroid/view/textclassifier/GenerateLinksLogger;->logGenerateLinks(Ljava/lang/CharSequence;Landroid/view/textclassifier/TextLinks;Ljava/lang/String;J)V
+Landroid/view/textclassifier/GenerateLinksLogger;->LOG_TAG:Ljava/lang/String;
+Landroid/view/textclassifier/GenerateLinksLogger;->mMetricsLogger:Lcom/android/internal/logging/MetricsLogger;
+Landroid/view/textclassifier/GenerateLinksLogger;->mRng:Ljava/util/Random;
+Landroid/view/textclassifier/GenerateLinksLogger;->mSampleRate:I
+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
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->DRAG:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->OTHER:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->OVERTYPE:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->PASTE:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->RESET:I
+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;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->isTerminal()Z
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->mEnd:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->mEntityType:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->mEventType:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->mStart:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->mVersionTag:Ljava/lang/String;
+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
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->EDITTEXT:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->EDIT_WEBVIEW:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->TEXTVIEW:I
+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;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->CUSTOM_TEXTVIEW:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->CUSTOM_UNSELECTABLE_TEXTVIEW:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->debugLog(Landroid/metrics/LogMaker;)V
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->DEBUG_LOG_ENABLED:Z
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->EDITTEXT:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->EDIT_WEBVIEW:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->endSession()V
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->ENTITY_TYPE:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->EVENT_END:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->EVENT_START:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->getLogType(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->getLogTypeString(I)Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->getModelName(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->getRangeDelta(I)I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->getSmartRangeDelta(I)I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->getWidgetTypeName()Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->INDEX:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->LOG_TAG:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mContext:Landroid/content/Context;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mIndex:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mLastEventTime:J
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mMetricsLogger:Lcom/android/internal/logging/MetricsLogger;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mModelName:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->MODEL_NAME:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mOrigStart:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mPrevIndices:[I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mSessionId:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mSessionStartTime:J
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mSmartIndices:[I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mSmartSelectionTriggered:Z
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mWidgetType:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->mWidgetVersion:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->PREV_EVENT_DELTA:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->SESSION_ID:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->SMART_END:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->SMART_START:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->startNewSession()Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->START_EVENT_DELTA:I
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->TEXTVIEW:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->UNKNOWN:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->UNSELECTABLE_TEXTVIEW:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->WEBVIEW:Ljava/lang/String;
+Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->WIDGET_TYPE:I
+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
+Landroid/view/textclassifier/SelectionEvent;->getAbsoluteEnd()I
+Landroid/view/textclassifier/SelectionEvent;->getAbsoluteStart()I
+Landroid/view/textclassifier/SelectionEvent;->isTerminal()Z
+Landroid/view/textclassifier/SelectionEvent;->mAbsoluteEnd:I
+Landroid/view/textclassifier/SelectionEvent;->mAbsoluteStart:I
+Landroid/view/textclassifier/SelectionEvent;->mDurationSincePreviousEvent:J
+Landroid/view/textclassifier/SelectionEvent;->mDurationSinceSessionStart:J
+Landroid/view/textclassifier/SelectionEvent;->mEnd:I
+Landroid/view/textclassifier/SelectionEvent;->mEntityType:Ljava/lang/String;
+Landroid/view/textclassifier/SelectionEvent;->mEventIndex:I
+Landroid/view/textclassifier/SelectionEvent;->mEventTime:J
+Landroid/view/textclassifier/SelectionEvent;->mEventType:I
+Landroid/view/textclassifier/SelectionEvent;->mInvocationMethod:I
+Landroid/view/textclassifier/SelectionEvent;->mPackageName:Ljava/lang/String;
+Landroid/view/textclassifier/SelectionEvent;->mResultId:Ljava/lang/String;
+Landroid/view/textclassifier/SelectionEvent;->mSessionId:Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/SelectionEvent;->mSmartEnd:I
+Landroid/view/textclassifier/SelectionEvent;->mSmartStart:I
+Landroid/view/textclassifier/SelectionEvent;->mStart:I
+Landroid/view/textclassifier/SelectionEvent;->mWidgetType:Ljava/lang/String;
+Landroid/view/textclassifier/SelectionEvent;->mWidgetVersion:Ljava/lang/String;
+Landroid/view/textclassifier/SelectionEvent;->NO_SIGNATURE:Ljava/lang/String;
+Landroid/view/textclassifier/SelectionEvent;->setDurationSincePreviousEvent(J)Landroid/view/textclassifier/SelectionEvent;
+Landroid/view/textclassifier/SelectionEvent;->setDurationSinceSessionStart(J)Landroid/view/textclassifier/SelectionEvent;
+Landroid/view/textclassifier/SelectionEvent;->setEnd(I)Landroid/view/textclassifier/SelectionEvent;
+Landroid/view/textclassifier/SelectionEvent;->setEventIndex(I)Landroid/view/textclassifier/SelectionEvent;
+Landroid/view/textclassifier/SelectionEvent;->setEventTime(J)Landroid/view/textclassifier/SelectionEvent;
+Landroid/view/textclassifier/SelectionEvent;->setEventType(I)V
+Landroid/view/textclassifier/SelectionEvent;->setInvocationMethod(I)V
+Landroid/view/textclassifier/SelectionEvent;->setResultId(Ljava/lang/String;)Landroid/view/textclassifier/SelectionEvent;
+Landroid/view/textclassifier/SelectionEvent;->setSessionId(Landroid/view/textclassifier/TextClassificationSessionId;)Landroid/view/textclassifier/SelectionEvent;
+Landroid/view/textclassifier/SelectionEvent;->setSmartEnd(I)Landroid/view/textclassifier/SelectionEvent;
+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;
+Landroid/view/textclassifier/SelectionSessionLogger;->createId(Ljava/lang/String;IILandroid/content/Context;ILjava/util/List;)Ljava/lang/String;
+Landroid/view/textclassifier/SelectionSessionLogger;->debugLog(Landroid/metrics/LogMaker;)V
+Landroid/view/textclassifier/SelectionSessionLogger;->DEBUG_LOG_ENABLED:Z
+Landroid/view/textclassifier/SelectionSessionLogger;->ENTITY_TYPE:I
+Landroid/view/textclassifier/SelectionSessionLogger;->EVENT_END:I
+Landroid/view/textclassifier/SelectionSessionLogger;->EVENT_START:I
+Landroid/view/textclassifier/SelectionSessionLogger;->getLogSubType(Landroid/view/textclassifier/SelectionEvent;)I
+Landroid/view/textclassifier/SelectionSessionLogger;->getLogSubTypeString(I)Ljava/lang/String;
+Landroid/view/textclassifier/SelectionSessionLogger;->getLogType(Landroid/view/textclassifier/SelectionEvent;)I
+Landroid/view/textclassifier/SelectionSessionLogger;->getLogTypeString(I)Ljava/lang/String;
+Landroid/view/textclassifier/SelectionSessionLogger;->getTokenIterator(Ljava/util/Locale;)Ljava/text/BreakIterator;
+Landroid/view/textclassifier/SelectionSessionLogger;->INDEX:I
+Landroid/view/textclassifier/SelectionSessionLogger;->LOG_TAG:Ljava/lang/String;
+Landroid/view/textclassifier/SelectionSessionLogger;->mMetricsLogger:Lcom/android/internal/logging/MetricsLogger;
+Landroid/view/textclassifier/SelectionSessionLogger;->MODEL_NAME:I
+Landroid/view/textclassifier/SelectionSessionLogger;->PREV_EVENT_DELTA:I
+Landroid/view/textclassifier/SelectionSessionLogger;->SESSION_ID:I
+Landroid/view/textclassifier/SelectionSessionLogger;->SMART_END:I
+Landroid/view/textclassifier/SelectionSessionLogger;->SMART_START:I
+Landroid/view/textclassifier/SelectionSessionLogger;->START_EVENT_DELTA:I
+Landroid/view/textclassifier/SelectionSessionLogger;->UNKNOWN:Ljava/lang/String;
+Landroid/view/textclassifier/SelectionSessionLogger;->WIDGET_TYPE:I
+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;
+Landroid/view/textclassifier/SystemTextClassifier;->mFallback:Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/SystemTextClassifier;->mManagerService:Landroid/service/textclassifier/ITextClassifierService;
+Landroid/view/textclassifier/SystemTextClassifier;->mPackageName:Ljava/lang/String;
+Landroid/view/textclassifier/SystemTextClassifier;->mSessionId:Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/SystemTextClassifier;->mSettings:Landroid/view/textclassifier/TextClassificationConstants;
+Landroid/view/textclassifier/TextClassification$Builder;->mActions:Ljava/util/List;
+Landroid/view/textclassifier/TextClassification$Builder;->mEntityConfidence:Ljava/util/Map;
+Landroid/view/textclassifier/TextClassification$Builder;->mId:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassification$Builder;->mLegacyIcon:Landroid/graphics/drawable/Drawable;
+Landroid/view/textclassifier/TextClassification$Builder;->mLegacyIntent:Landroid/content/Intent;
+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;
+Landroid/view/textclassifier/TextClassification$Options;->getDefaultLocales()Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextClassification$Options;->getReferenceTime()Ljava/time/ZonedDateTime;
+Landroid/view/textclassifier/TextClassification$Options;->getRequest()Landroid/view/textclassifier/TextClassification$Request;
+Landroid/view/textclassifier/TextClassification$Options;->getSessionId()Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/TextClassification$Options;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextClassification$Options;->mReferenceTime:Ljava/time/ZonedDateTime;
+Landroid/view/textclassifier/TextClassification$Options;->mRequest:Landroid/view/textclassifier/TextClassification$Request;
+Landroid/view/textclassifier/TextClassification$Options;->mSessionId:Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/TextClassification$Options;->setDefaultLocales(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextClassification$Options;
+Landroid/view/textclassifier/TextClassification$Options;->setReferenceTime(Ljava/time/ZonedDateTime;)Landroid/view/textclassifier/TextClassification$Options;
+Landroid/view/textclassifier/TextClassification$Request$Builder;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextClassification$Request$Builder;->mEndIndex:I
+Landroid/view/textclassifier/TextClassification$Request$Builder;->mReferenceTime:Ljava/time/ZonedDateTime;
+Landroid/view/textclassifier/TextClassification$Request$Builder;->mStartIndex:I
+Landroid/view/textclassifier/TextClassification$Request$Builder;->mText:Ljava/lang/CharSequence;
+Landroid/view/textclassifier/TextClassification$Request;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textclassifier/TextClassification$Request;-><init>(Ljava/lang/CharSequence;IILandroid/os/LocaleList;Ljava/time/ZonedDateTime;)V
+Landroid/view/textclassifier/TextClassification$Request;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextClassification$Request;->mEndIndex:I
+Landroid/view/textclassifier/TextClassification$Request;->mReferenceTime:Ljava/time/ZonedDateTime;
+Landroid/view/textclassifier/TextClassification$Request;->mStartIndex:I
+Landroid/view/textclassifier/TextClassification$Request;->mText:Ljava/lang/CharSequence;
+Landroid/view/textclassifier/TextClassification;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textclassifier/TextClassification;-><init>(Ljava/lang/String;Landroid/graphics/drawable/Drawable;Ljava/lang/String;Landroid/content/Intent;Landroid/view/View$OnClickListener;Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V
+Landroid/view/textclassifier/TextClassification;->createIntentOnClickListener(Landroid/app/PendingIntent;)Landroid/view/View$OnClickListener;
+Landroid/view/textclassifier/TextClassification;->createPendingIntent(Landroid/content/Context;Landroid/content/Intent;I)Landroid/app/PendingIntent;
+Landroid/view/textclassifier/TextClassification;->EMPTY:Landroid/view/textclassifier/TextClassification;
+Landroid/view/textclassifier/TextClassification;->getIntentType(Landroid/content/Intent;Landroid/content/Context;)I
+Landroid/view/textclassifier/TextClassification;->hasPermission(Landroid/content/Context;Ljava/lang/String;)Z
+Landroid/view/textclassifier/TextClassification;->LOG_TAG:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassification;->mActions:Ljava/util/List;
+Landroid/view/textclassifier/TextClassification;->MAX_LEGACY_ICON_SIZE:I
+Landroid/view/textclassifier/TextClassification;->maybeLoadDrawable(Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Drawable;
+Landroid/view/textclassifier/TextClassification;->mEntityConfidence:Landroid/view/textclassifier/EntityConfidence;
+Landroid/view/textclassifier/TextClassification;->mId:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassification;->mLegacyIcon:Landroid/graphics/drawable/Drawable;
+Landroid/view/textclassifier/TextClassification;->mLegacyIntent:Landroid/content/Intent;
+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
+Landroid/view/textclassifier/TextClassificationConstants;->ENTITY_LIST_DEFAULT:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->ENTITY_LIST_DEFAULT_VALUE:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->ENTITY_LIST_DELIMITER:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->ENTITY_LIST_EDITABLE:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->ENTITY_LIST_NOT_EDITABLE:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->GENERATE_LINKS_LOG_SAMPLE_RATE:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->GENERATE_LINKS_LOG_SAMPLE_RATE_DEFAULT:I
+Landroid/view/textclassifier/TextClassificationConstants;->GENERATE_LINKS_MAX_TEXT_LENGTH:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->GENERATE_LINKS_MAX_TEXT_LENGTH_DEFAULT:I
+Landroid/view/textclassifier/TextClassificationConstants;->getClassifyTextMaxRangeLength()I
+Landroid/view/textclassifier/TextClassificationConstants;->getEntityListDefault()Ljava/util/List;
+Landroid/view/textclassifier/TextClassificationConstants;->getEntityListEditable()Ljava/util/List;
+Landroid/view/textclassifier/TextClassificationConstants;->getEntityListNotEditable()Ljava/util/List;
+Landroid/view/textclassifier/TextClassificationConstants;->getGenerateLinksLogSampleRate()I
+Landroid/view/textclassifier/TextClassificationConstants;->getGenerateLinksMaxTextLength()I
+Landroid/view/textclassifier/TextClassificationConstants;->getSuggestSelectionMaxRangeLength()I
+Landroid/view/textclassifier/TextClassificationConstants;->isLocalTextClassifierEnabled()Z
+Landroid/view/textclassifier/TextClassificationConstants;->isModelDarkLaunchEnabled()Z
+Landroid/view/textclassifier/TextClassificationConstants;->isSmartLinkifyEnabled()Z
+Landroid/view/textclassifier/TextClassificationConstants;->isSmartSelectionAnimationEnabled()Z
+Landroid/view/textclassifier/TextClassificationConstants;->isSmartSelectionEnabled()Z
+Landroid/view/textclassifier/TextClassificationConstants;->isSmartTextShareEnabled()Z
+Landroid/view/textclassifier/TextClassificationConstants;->isSystemTextClassifierEnabled()Z
+Landroid/view/textclassifier/TextClassificationConstants;->loadFromString(Ljava/lang/String;)Landroid/view/textclassifier/TextClassificationConstants;
+Landroid/view/textclassifier/TextClassificationConstants;->LOCAL_TEXT_CLASSIFIER_ENABLED:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->LOCAL_TEXT_CLASSIFIER_ENABLED_DEFAULT:Z
+Landroid/view/textclassifier/TextClassificationConstants;->LOG_TAG:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->mClassifyTextMaxRangeLength:I
+Landroid/view/textclassifier/TextClassificationConstants;->mEntityListDefault:Ljava/util/List;
+Landroid/view/textclassifier/TextClassificationConstants;->mEntityListEditable:Ljava/util/List;
+Landroid/view/textclassifier/TextClassificationConstants;->mEntityListNotEditable:Ljava/util/List;
+Landroid/view/textclassifier/TextClassificationConstants;->mGenerateLinksLogSampleRate:I
+Landroid/view/textclassifier/TextClassificationConstants;->mGenerateLinksMaxTextLength:I
+Landroid/view/textclassifier/TextClassificationConstants;->mLocalTextClassifierEnabled:Z
+Landroid/view/textclassifier/TextClassificationConstants;->mModelDarkLaunchEnabled:Z
+Landroid/view/textclassifier/TextClassificationConstants;->MODEL_DARK_LAUNCH_ENABLED:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->MODEL_DARK_LAUNCH_ENABLED_DEFAULT:Z
+Landroid/view/textclassifier/TextClassificationConstants;->mSmartLinkifyEnabled:Z
+Landroid/view/textclassifier/TextClassificationConstants;->mSmartSelectionAnimationEnabled:Z
+Landroid/view/textclassifier/TextClassificationConstants;->mSmartSelectionEnabled:Z
+Landroid/view/textclassifier/TextClassificationConstants;->mSmartTextShareEnabled:Z
+Landroid/view/textclassifier/TextClassificationConstants;->mSuggestSelectionMaxRangeLength:I
+Landroid/view/textclassifier/TextClassificationConstants;->mSystemTextClassifierEnabled:Z
+Landroid/view/textclassifier/TextClassificationConstants;->parseEntityList(Ljava/lang/String;)Ljava/util/List;
+Landroid/view/textclassifier/TextClassificationConstants;->SMART_LINKIFY_ENABLED:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->SMART_LINKIFY_ENABLED_DEFAULT:Z
+Landroid/view/textclassifier/TextClassificationConstants;->SMART_SELECTION_ENABLED:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->SMART_SELECTION_ENABLED_DEFAULT:Z
+Landroid/view/textclassifier/TextClassificationConstants;->SMART_SELECT_ANIMATION_ENABLED:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->SMART_SELECT_ANIMATION_ENABLED_DEFAULT:Z
+Landroid/view/textclassifier/TextClassificationConstants;->SMART_TEXT_SHARE_ENABLED:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->SMART_TEXT_SHARE_ENABLED_DEFAULT:Z
+Landroid/view/textclassifier/TextClassificationConstants;->SUGGEST_SELECTION_MAX_RANGE_LENGTH:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->SUGGEST_SELECTION_MAX_RANGE_LENGTH_DEFAULT:I
+Landroid/view/textclassifier/TextClassificationConstants;->SYSTEM_TEXT_CLASSIFIER_ENABLED:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationConstants;->SYSTEM_TEXT_CLASSIFIER_ENABLED_DEFAULT:Z
+Landroid/view/textclassifier/TextClassificationContext$Builder;->mPackageName:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationContext$Builder;->mWidgetType:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationContext$Builder;->mWidgetVersion:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationContext;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textclassifier/TextClassificationContext;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+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
+Landroid/view/textclassifier/TextClassificationManager;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassifier;)Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/TextClassificationManager;->getApplicationContext()Landroid/content/Context;
+Landroid/view/textclassifier/TextClassificationManager;->getLocalTextClassifier()Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/TextClassificationManager;->getSettings()Landroid/view/textclassifier/TextClassificationConstants;
+Landroid/view/textclassifier/TextClassificationManager;->getSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants;
+Landroid/view/textclassifier/TextClassificationManager;->getSystemTextClassifier()Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/TextClassificationManager;->invalidate()V
+Landroid/view/textclassifier/TextClassificationManager;->isSystemTextClassifierEnabled()Z
+Landroid/view/textclassifier/TextClassificationManager;->LOG_TAG:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationManager;->mContext:Landroid/content/Context;
+Landroid/view/textclassifier/TextClassificationManager;->mCustomTextClassifier:Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/TextClassificationManager;->mDefaultSessionFactory:Landroid/view/textclassifier/TextClassificationSessionFactory;
+Landroid/view/textclassifier/TextClassificationManager;->mLocalTextClassifier:Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/TextClassificationManager;->mLock:Ljava/lang/Object;
+Landroid/view/textclassifier/TextClassificationManager;->mSessionFactory:Landroid/view/textclassifier/TextClassificationSessionFactory;
+Landroid/view/textclassifier/TextClassificationManager;->mSettings:Landroid/view/textclassifier/TextClassificationConstants;
+Landroid/view/textclassifier/TextClassificationManager;->mSettingsObserver:Landroid/view/textclassifier/TextClassificationManager$SettingsObserver;
+Landroid/view/textclassifier/TextClassificationManager;->mSystemTextClassifier:Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/TextClassificationSessionId;-><init>()V
+Landroid/view/textclassifier/TextClassificationSessionId;-><init>(Ljava/lang/String;)V
+Landroid/view/textclassifier/TextClassificationSessionId;->flattenToString()Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationSessionId;->mValue:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassificationSessionId;->unflattenFromString(Ljava/lang/String;)Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/TextClassifier$EntityConfig;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textclassifier/TextClassifier$EntityConfig;-><init>(ZLjava/util/Collection;Ljava/util/Collection;Ljava/util/Collection;)V
+Landroid/view/textclassifier/TextClassifier$EntityConfig;->create(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;
+Landroid/view/textclassifier/TextClassifier$EntityConfig;->createWithEntityList(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;
+Landroid/view/textclassifier/TextClassifier$EntityConfig;->mExcludedEntityTypes:Ljava/util/Collection;
+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
+Landroid/view/textclassifier/TextClassifier$Utils;->checkMainThread()V
+Landroid/view/textclassifier/TextClassifier$Utils;->checkTextLength(Ljava/lang/CharSequence;I)V
+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;
+Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->createCalendarViewIntent(Landroid/content/Context;Ljava/time/Instant;)Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;
+Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->createForAddress(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List;
+Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->createForDatetime(Landroid/content/Context;Ljava/lang/String;Ljava/time/Instant;Ljava/time/Instant;)Ljava/util/List;
+Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->createForEmail(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List;
+Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->createForFlight(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List;
+Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->createForPhone(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List;
+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
+Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->getDescription()Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->getIntent()Landroid/content/Intent;
+Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->getRequestCode()I
+Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->getTitle()Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->mDescription:Ljava/lang/String;
+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;
+Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->getPath()Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->getSupportedLocales()Ljava/util/List;
+Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->getVersion()I
+Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->isAnyLanguageSupported(Ljava/util/List;)Z
+Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->isPreferredTo(Landroid/view/textclassifier/TextClassifierImpl$ModelFile;)Z
+Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->mLanguageIndependent:Z
+Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->mName:Ljava/lang/String;
+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
+Landroid/view/textclassifier/TextClassifierImpl;->concatenateLocales(Landroid/os/LocaleList;)Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImpl;->createClassificationResult([Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;Ljava/lang/String;IILjava/time/Instant;)Landroid/view/textclassifier/TextClassification;
+Landroid/view/textclassifier/TextClassifierImpl;->createId(Ljava/lang/String;II)Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImpl;->destroyNativeIfExistsLocked()V
+Landroid/view/textclassifier/TextClassifierImpl;->findBestModelLocked(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextClassifierImpl$ModelFile;
+Landroid/view/textclassifier/TextClassifierImpl;->getEntitiesForHints(Ljava/util/Collection;)Ljava/util/Collection;
+Landroid/view/textclassifier/TextClassifierImpl;->getNative(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextClassifierImplNative;
+Landroid/view/textclassifier/TextClassifierImpl;->listAllModelsLocked()Ljava/util/List;
+Landroid/view/textclassifier/TextClassifierImpl;->LOG_TAG:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImpl;->mAllModelFiles:Ljava/util/List;
+Landroid/view/textclassifier/TextClassifierImpl;->mContext:Landroid/content/Context;
+Landroid/view/textclassifier/TextClassifierImpl;->mFallback:Landroid/view/textclassifier/TextClassifier;
+Landroid/view/textclassifier/TextClassifierImpl;->mGenerateLinksLogger:Landroid/view/textclassifier/GenerateLinksLogger;
+Landroid/view/textclassifier/TextClassifierImpl;->mLock:Ljava/lang/Object;
+Landroid/view/textclassifier/TextClassifierImpl;->mLoggerLock:Ljava/lang/Object;
+Landroid/view/textclassifier/TextClassifierImpl;->mModel:Landroid/view/textclassifier/TextClassifierImpl$ModelFile;
+Landroid/view/textclassifier/TextClassifierImpl;->mNative:Landroid/view/textclassifier/TextClassifierImplNative;
+Landroid/view/textclassifier/TextClassifierImpl;->MODEL_DIR:Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImpl;->MODEL_FILE_REGEX:Ljava/lang/String;
+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
+Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;->getStartIndex()I
+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
+Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;->getReferenceTimezone()Ljava/lang/String;
+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
+Landroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;->getReferenceTimezone()Ljava/lang/String;
+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;
+Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;->getScore()F
+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
+Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->GRANULARITY_DAY:I
+Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->GRANULARITY_HOUR:I
+Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->GRANULARITY_MINUTE:I
+Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->GRANULARITY_MONTH:I
+Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->GRANULARITY_SECOND:I
+Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->GRANULARITY_WEEK:I
+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
+Landroid/view/textclassifier/TextClassifierImplNative;->annotate(Ljava/lang/String;Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;)[Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;
+Landroid/view/textclassifier/TextClassifierImplNative;->classifyText(Ljava/lang/String;IILandroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;)[Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;
+Landroid/view/textclassifier/TextClassifierImplNative;->close()V
+Landroid/view/textclassifier/TextClassifierImplNative;->getLocales(I)Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImplNative;->getVersion(I)I
+Landroid/view/textclassifier/TextClassifierImplNative;->mModelPtr:J
+Landroid/view/textclassifier/TextClassifierImplNative;->nativeAnnotate(JLjava/lang/String;Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;)[Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;
+Landroid/view/textclassifier/TextClassifierImplNative;->nativeClassifyText(JLjava/lang/String;IILandroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;)[Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;
+Landroid/view/textclassifier/TextClassifierImplNative;->nativeClose(J)V
+Landroid/view/textclassifier/TextClassifierImplNative;->nativeGetLocales(I)Ljava/lang/String;
+Landroid/view/textclassifier/TextClassifierImplNative;->nativeGetVersion(I)I
+Landroid/view/textclassifier/TextClassifierImplNative;->nativeNew(I)J
+Landroid/view/textclassifier/TextClassifierImplNative;->nativeNewFromAssetFileDescriptor(Landroid/content/res/AssetFileDescriptor;JJ)J
+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;
+Landroid/view/textclassifier/TextLinks$Options;->fromLinkMask(I)Landroid/view/textclassifier/TextLinks$Options;
+Landroid/view/textclassifier/TextLinks$Options;->getApplyStrategy()I
+Landroid/view/textclassifier/TextLinks$Options;->getDefaultLocales()Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextLinks$Options;->getEntityConfig()Landroid/view/textclassifier/TextClassifier$EntityConfig;
+Landroid/view/textclassifier/TextLinks$Options;->getRequest()Landroid/view/textclassifier/TextLinks$Request;
+Landroid/view/textclassifier/TextLinks$Options;->getSessionId()Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/TextLinks$Options;->getSpanFactory()Ljava/util/function/Function;
+Landroid/view/textclassifier/TextLinks$Options;->mApplyStrategy:I
+Landroid/view/textclassifier/TextLinks$Options;->mCallingPackageName:Ljava/lang/String;
+Landroid/view/textclassifier/TextLinks$Options;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextLinks$Options;->mEntityConfig:Landroid/view/textclassifier/TextClassifier$EntityConfig;
+Landroid/view/textclassifier/TextLinks$Options;->mLegacyFallback:Z
+Landroid/view/textclassifier/TextLinks$Options;->mRequest:Landroid/view/textclassifier/TextLinks$Request;
+Landroid/view/textclassifier/TextLinks$Options;->mSessionId:Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/TextLinks$Options;->mSpanFactory:Ljava/util/function/Function;
+Landroid/view/textclassifier/TextLinks$Options;->setApplyStrategy(I)Landroid/view/textclassifier/TextLinks$Options;
+Landroid/view/textclassifier/TextLinks$Options;->setDefaultLocales(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextLinks$Options;
+Landroid/view/textclassifier/TextLinks$Options;->setEntityConfig(Landroid/view/textclassifier/TextClassifier$EntityConfig;)Landroid/view/textclassifier/TextLinks$Options;
+Landroid/view/textclassifier/TextLinks$Options;->setSpanFactory(Ljava/util/function/Function;)Landroid/view/textclassifier/TextLinks$Options;
+Landroid/view/textclassifier/TextLinks$Request$Builder;->mCallingPackageName:Ljava/lang/String;
+Landroid/view/textclassifier/TextLinks$Request$Builder;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextLinks$Request$Builder;->mEntityConfig:Landroid/view/textclassifier/TextClassifier$EntityConfig;
+Landroid/view/textclassifier/TextLinks$Request$Builder;->mLegacyFallback:Z
+Landroid/view/textclassifier/TextLinks$Request$Builder;->mText:Ljava/lang/CharSequence;
+Landroid/view/textclassifier/TextLinks$Request$Builder;->setCallingPackageName(Ljava/lang/String;)Landroid/view/textclassifier/TextLinks$Request$Builder;
+Landroid/view/textclassifier/TextLinks$Request$Builder;->setLegacyFallback(Z)Landroid/view/textclassifier/TextLinks$Request$Builder;
+Landroid/view/textclassifier/TextLinks$Request;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLjava/lang/String;)V
+Landroid/view/textclassifier/TextLinks$Request;->getCallingPackageName()Ljava/lang/String;
+Landroid/view/textclassifier/TextLinks$Request;->isLegacyFallback()Z
+Landroid/view/textclassifier/TextLinks$Request;->mCallingPackageName:Ljava/lang/String;
+Landroid/view/textclassifier/TextLinks$Request;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextLinks$Request;->mEntityConfig:Landroid/view/textclassifier/TextClassifier$EntityConfig;
+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
+Landroid/view/textclassifier/TextLinks$TextLinkSpan;->INVOCATION_METHOD_UNSPECIFIED:I
+Landroid/view/textclassifier/TextLinks$TextLinkSpan;->mTextLink:Landroid/view/textclassifier/TextLinks$TextLink;
+Landroid/view/textclassifier/TextLinks$TextLinkSpan;->onClick(Landroid/view/View;I)V
+Landroid/view/textclassifier/TextLinks;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textclassifier/TextLinks;-><init>(Ljava/lang/String;Ljava/util/ArrayList;)V
+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
+Landroid/view/textclassifier/TextLinksParams$Builder;->mSpanFactory:Ljava/util/function/Function;
+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
+Landroid/view/textclassifier/TextLinksParams;->DEFAULT_SPAN_FACTORY:Ljava/util/function/Function;
+Landroid/view/textclassifier/TextLinksParams;->fromLinkMask(I)Landroid/view/textclassifier/TextLinksParams;
+Landroid/view/textclassifier/TextLinksParams;->getEntityConfig()Landroid/view/textclassifier/TextClassifier$EntityConfig;
+Landroid/view/textclassifier/TextLinksParams;->mApplyStrategy:I
+Landroid/view/textclassifier/TextLinksParams;->mEntityConfig:Landroid/view/textclassifier/TextClassifier$EntityConfig;
+Landroid/view/textclassifier/TextLinksParams;->mSpanFactory:Ljava/util/function/Function;
+Landroid/view/textclassifier/TextSelection$Builder;->mEndIndex:I
+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;
+Landroid/view/textclassifier/TextSelection$Options;->getDefaultLocales()Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextSelection$Options;->getRequest()Landroid/view/textclassifier/TextSelection$Request;
+Landroid/view/textclassifier/TextSelection$Options;->getSessionId()Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/TextSelection$Options;->mDarkLaunchAllowed:Z
+Landroid/view/textclassifier/TextSelection$Options;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextSelection$Options;->mRequest:Landroid/view/textclassifier/TextSelection$Request;
+Landroid/view/textclassifier/TextSelection$Options;->mSessionId:Landroid/view/textclassifier/TextClassificationSessionId;
+Landroid/view/textclassifier/TextSelection$Options;->setDefaultLocales(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextSelection$Options;
+Landroid/view/textclassifier/TextSelection$Request$Builder;->mDarkLaunchAllowed:Z
+Landroid/view/textclassifier/TextSelection$Request$Builder;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextSelection$Request$Builder;->mEndIndex:I
+Landroid/view/textclassifier/TextSelection$Request$Builder;->mStartIndex:I
+Landroid/view/textclassifier/TextSelection$Request$Builder;->mText:Ljava/lang/CharSequence;
+Landroid/view/textclassifier/TextSelection$Request$Builder;->setDarkLaunchAllowed(Z)Landroid/view/textclassifier/TextSelection$Request$Builder;
+Landroid/view/textclassifier/TextSelection$Request;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textclassifier/TextSelection$Request;-><init>(Ljava/lang/CharSequence;IILandroid/os/LocaleList;Z)V
+Landroid/view/textclassifier/TextSelection$Request;->isDarkLaunchAllowed()Z
+Landroid/view/textclassifier/TextSelection$Request;->mDarkLaunchAllowed:Z
+Landroid/view/textclassifier/TextSelection$Request;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/view/textclassifier/TextSelection$Request;->mEndIndex:I
+Landroid/view/textclassifier/TextSelection$Request;->mStartIndex:I
+Landroid/view/textclassifier/TextSelection$Request;->mText:Ljava/lang/CharSequence;
+Landroid/view/textclassifier/TextSelection;-><init>(IILjava/util/Map;Ljava/lang/String;)V
+Landroid/view/textclassifier/TextSelection;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textclassifier/TextSelection;->mEndIndex:I
+Landroid/view/textclassifier/TextSelection;->mEntityConfidence:Landroid/view/textclassifier/EntityConfidence;
+Landroid/view/textclassifier/TextSelection;->mId:Ljava/lang/String;
+Landroid/view/textclassifier/TextSelection;->mStartIndex:I
+Landroid/view/textservice/SentenceSuggestionsInfo;->mLengths:[I
+Landroid/view/textservice/SentenceSuggestionsInfo;->mOffsets:[I
+Landroid/view/textservice/SentenceSuggestionsInfo;->mSuggestionsInfos:[Landroid/view/textservice/SuggestionsInfo;
+Landroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V
+Landroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textservice/SpellCheckerInfo;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+Landroid/view/textservice/SpellCheckerInfo;->mId:Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerInfo;->mLabel:I
+Landroid/view/textservice/SpellCheckerInfo;->mService:Landroid/content/pm/ResolveInfo;
+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
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->getSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->getSuggestionsMultiple([Landroid/view/textservice/TextInfo;IZ)V
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->isDisconnected()Z
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->mAsyncHandler:Landroid/os/Handler;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->mHandler:Landroid/os/Handler;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->mISpellCheckerSession:Lcom/android/internal/textservice/ISpellCheckerSession;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->mPendingTasks:Ljava/util/Queue;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->mState:I
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->mThread:Landroid/os/HandlerThread;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onGetSuggestions([Landroid/view/textservice/SuggestionsInfo;)V
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processCloseLocked()V
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processOrEnqueueTask(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;)V
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processTask(Lcom/android/internal/textservice/ISpellCheckerSession;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;Z)V
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->stateToString(I)Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->STATE_CLOSED_AFTER_CONNECTION:I
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->STATE_CLOSED_BEFORE_CONNECTION:I
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->STATE_CONNECTED:I
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->STATE_WAIT_CONNECTION:I
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->taskToString(I)Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->TASK_CANCEL:I
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->TASK_CLOSE:I
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->TASK_GET_SUGGESTIONS_MULTIPLE:I
+Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->TASK_GET_SUGGESTIONS_MULTIPLE_FOR_SENTENCE:I
+Landroid/view/textservice/SpellCheckerSession;-><init>(Landroid/view/textservice/SpellCheckerInfo;Lcom/android/internal/textservice/ITextServicesManager;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;)V
+Landroid/view/textservice/SpellCheckerSession;->DBG:Z
+Landroid/view/textservice/SpellCheckerSession;->getSpellCheckerSessionListener()Lcom/android/internal/textservice/ISpellCheckerSessionListener;
+Landroid/view/textservice/SpellCheckerSession;->getTextServicesSessionListener()Lcom/android/internal/textservice/ITextServicesSessionListener;
+Landroid/view/textservice/SpellCheckerSession;->handleOnGetSentenceSuggestionsMultiple([Landroid/view/textservice/SentenceSuggestionsInfo;)V
+Landroid/view/textservice/SpellCheckerSession;->handleOnGetSuggestionsMultiple([Landroid/view/textservice/SuggestionsInfo;)V
+Landroid/view/textservice/SpellCheckerSession;->mGuard:Ldalvik/system/CloseGuard;
+Landroid/view/textservice/SpellCheckerSession;->mHandler:Landroid/os/Handler;
+Landroid/view/textservice/SpellCheckerSession;->mInternalListener:Landroid/view/textservice/SpellCheckerSession$InternalListener;
+Landroid/view/textservice/SpellCheckerSession;->MSG_ON_GET_SUGGESTION_MULTIPLE:I
+Landroid/view/textservice/SpellCheckerSession;->MSG_ON_GET_SUGGESTION_MULTIPLE_FOR_SENTENCE:I
+Landroid/view/textservice/SpellCheckerSession;->mSpellCheckerInfo:Landroid/view/textservice/SpellCheckerInfo;
+Landroid/view/textservice/SpellCheckerSession;->mSpellCheckerSessionListenerImpl:Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;
+Landroid/view/textservice/SpellCheckerSession;->mTextServicesManager:Lcom/android/internal/textservice/ITextServicesManager;
+Landroid/view/textservice/SpellCheckerSession;->TAG:Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSubtype;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+Landroid/view/textservice/SpellCheckerSubtype;-><init>(Landroid/os/Parcel;)V
+Landroid/view/textservice/SpellCheckerSubtype;->EXTRA_VALUE_KEY_VALUE_SEPARATOR:Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSubtype;->EXTRA_VALUE_PAIR_SEPARATOR:Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSubtype;->getExtraValueHashMap()Ljava/util/HashMap;
+Landroid/view/textservice/SpellCheckerSubtype;->getLocaleObject()Ljava/util/Locale;
+Landroid/view/textservice/SpellCheckerSubtype;->hashCodeInternal(Ljava/lang/String;Ljava/lang/String;)I
+Landroid/view/textservice/SpellCheckerSubtype;->mExtraValueHashMapCache:Ljava/util/HashMap;
+Landroid/view/textservice/SpellCheckerSubtype;->mSubtypeExtraValue:Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSubtype;->mSubtypeHashCode:I
+Landroid/view/textservice/SpellCheckerSubtype;->mSubtypeId:I
+Landroid/view/textservice/SpellCheckerSubtype;->mSubtypeLanguageTag:Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSubtype;->mSubtypeLocale:Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSubtype;->mSubtypeNameResId:I
+Landroid/view/textservice/SpellCheckerSubtype;->sort(Landroid/content/Context;ILandroid/view/textservice/SpellCheckerInfo;Ljava/util/List;)Ljava/util/List;
+Landroid/view/textservice/SpellCheckerSubtype;->SUBTYPE_ID_NONE:I
+Landroid/view/textservice/SpellCheckerSubtype;->SUBTYPE_LANGUAGE_TAG_NONE:Ljava/lang/String;
+Landroid/view/textservice/SpellCheckerSubtype;->TAG:Ljava/lang/String;
+Landroid/view/textservice/SuggestionsInfo;->EMPTY:[Ljava/lang/String;
+Landroid/view/textservice/SuggestionsInfo;->mCookie:I
+Landroid/view/textservice/SuggestionsInfo;->mSequence:I
+Landroid/view/textservice/SuggestionsInfo;->mSuggestions:[Ljava/lang/String;
+Landroid/view/textservice/SuggestionsInfo;->mSuggestionsAttributes:I
+Landroid/view/textservice/SuggestionsInfo;->mSuggestionsAvailable:Z
+Landroid/view/textservice/TextInfo;->DEFAULT_COOKIE:I
+Landroid/view/textservice/TextInfo;->DEFAULT_SEQUENCE_NUMBER:I
+Landroid/view/textservice/TextInfo;->getStringLengthOrZero(Ljava/lang/String;)I
+Landroid/view/textservice/TextInfo;->mCharSequence:Ljava/lang/CharSequence;
+Landroid/view/textservice/TextInfo;->mCookie:I
+Landroid/view/textservice/TextInfo;->mSequenceNumber:I
+Landroid/view/textservice/TextServicesManager;-><init>()V
+Landroid/view/textservice/TextServicesManager;->DBG:Z
+Landroid/view/textservice/TextServicesManager;->DISABLE_PER_PROFILE_SPELL_CHECKER:Z
+Landroid/view/textservice/TextServicesManager;->mService:Lcom/android/internal/textservice/ITextServicesManager;
+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
+Landroid/view/TextureLayer;->destroy()V
+Landroid/view/TextureLayer;->detachSurfaceTexture()V
+Landroid/view/TextureLayer;->getDeferredLayerUpdater()J
+Landroid/view/TextureLayer;->getLayerHandle()J
+Landroid/view/TextureLayer;->isValid()Z
+Landroid/view/TextureLayer;->mFinalizer:Lcom/android/internal/util/VirtualRefBasePtr;
+Landroid/view/TextureLayer;->mRenderer:Landroid/view/ThreadedRenderer;
+Landroid/view/TextureLayer;->nPrepare(JIIZ)Z
+Landroid/view/TextureLayer;->nSetLayerPaint(JJ)V
+Landroid/view/TextureLayer;->nSetSurfaceTexture(JLandroid/graphics/SurfaceTexture;)V
+Landroid/view/TextureLayer;->nSetTransform(JJ)V
+Landroid/view/TextureLayer;->nUpdateSurfaceTexture(J)V
+Landroid/view/TextureLayer;->prepare(IIZ)Z
+Landroid/view/TextureLayer;->setLayerPaint(Landroid/graphics/Paint;)V
+Landroid/view/TextureLayer;->setSurfaceTexture(Landroid/graphics/SurfaceTexture;)V
+Landroid/view/TextureLayer;->setTransform(Landroid/graphics/Matrix;)V
+Landroid/view/TextureLayer;->updateSurfaceTexture()V
+Landroid/view/TextureView;->applyTransformMatrix()V
+Landroid/view/TextureView;->applyUpdate()V
+Landroid/view/TextureView;->getTextureLayer()Landroid/view/TextureLayer;
+Landroid/view/TextureView;->LOG_TAG:Ljava/lang/String;
+Landroid/view/TextureView;->mCanvas:Landroid/graphics/Canvas;
+Landroid/view/TextureView;->mHadSurface:Z
+Landroid/view/TextureView;->mListener:Landroid/view/TextureView$SurfaceTextureListener;
+Landroid/view/TextureView;->mLock:[Ljava/lang/Object;
+Landroid/view/TextureView;->mMatrix:Landroid/graphics/Matrix;
+Landroid/view/TextureView;->mMatrixChanged:Z
+Landroid/view/TextureView;->mNativeWindowLock:[Ljava/lang/Object;
+Landroid/view/TextureView;->mSaveCount:I
+Landroid/view/TextureView;->mUpdateLayer:Z
+Landroid/view/TextureView;->nLockCanvas(JLandroid/graphics/Canvas;Landroid/graphics/Rect;)Z
+Landroid/view/TextureView;->nUnlockCanvasAndPost(JLandroid/graphics/Canvas;)V
+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
+Landroid/view/ThreadedRenderer$ProcessInitializer;->initSched(J)V
+Landroid/view/ThreadedRenderer$ProcessInitializer;->mAppContext:Landroid/content/Context;
+Landroid/view/ThreadedRenderer$ProcessInitializer;->mGraphicsStatsCallback:Landroid/view/IGraphicsStatsCallback;
+Landroid/view/ThreadedRenderer$ProcessInitializer;->mGraphicsStatsService:Landroid/view/IGraphicsStats;
+Landroid/view/ThreadedRenderer$ProcessInitializer;->mInitialized:Z
+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
+Landroid/view/ThreadedRenderer$SimpleRenderer;->getRootNode()Landroid/view/RenderNode;
+Landroid/view/ThreadedRenderer$SimpleRenderer;->mFrameInfo:Landroid/view/FrameInfo;
+Landroid/view/ThreadedRenderer$SimpleRenderer;->mLightY:F
+Landroid/view/ThreadedRenderer$SimpleRenderer;->mLightZ:F
+Landroid/view/ThreadedRenderer$SimpleRenderer;->mNativeProxy:J
+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
+Landroid/view/ThreadedRenderer;->CACHE_PATH_SHADERS:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->CACHE_PATH_SKIASHADERS:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->copyLayerInto(Landroid/view/TextureLayer;Landroid/graphics/Bitmap;)Z
+Landroid/view/ThreadedRenderer;->copySurfaceInto(Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;)I
+Landroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/String;)Landroid/view/ThreadedRenderer;
+Landroid/view/ThreadedRenderer;->createTextureLayer()Landroid/view/TextureLayer;
+Landroid/view/ThreadedRenderer;->DEBUG_DIRTY_REGIONS_PROPERTY:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->DEBUG_FPS_DIVISOR:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->DEBUG_OVERDRAW_PROPERTY:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->DEBUG_SHOW_LAYERS_UPDATES_PROPERTY:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->destroy()V
+Landroid/view/ThreadedRenderer;->destroyHardwareResources(Landroid/view/View;)V
+Landroid/view/ThreadedRenderer;->destroyResources(Landroid/view/View;)V
+Landroid/view/ThreadedRenderer;->detachSurfaceTexture(J)V
+Landroid/view/ThreadedRenderer;->disable(Z)V
+Landroid/view/ThreadedRenderer;->disableVsync()V
+Landroid/view/ThreadedRenderer;->draw(Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;Landroid/view/ThreadedRenderer$FrameDrawingCallback;)V
+Landroid/view/ThreadedRenderer;->dumpGfxInfo(Ljava/io/PrintWriter;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
+Landroid/view/ThreadedRenderer;->EGL_CONTEXT_PRIORITY_HIGH_IMG:I
+Landroid/view/ThreadedRenderer;->EGL_CONTEXT_PRIORITY_LOW_IMG:I
+Landroid/view/ThreadedRenderer;->EGL_CONTEXT_PRIORITY_MEDIUM_IMG:I
+Landroid/view/ThreadedRenderer;->enableForegroundTrimming()V
+Landroid/view/ThreadedRenderer;->fence()V
+Landroid/view/ThreadedRenderer;->FLAG_DUMP_ALL:I
+Landroid/view/ThreadedRenderer;->FLAG_DUMP_FRAMESTATS:I
+Landroid/view/ThreadedRenderer;->FLAG_DUMP_RESET:I
+Landroid/view/ThreadedRenderer;->getHeight()I
+Landroid/view/ThreadedRenderer;->getWidth()I
+Landroid/view/ThreadedRenderer;->initialize(Landroid/view/Surface;)Z
+Landroid/view/ThreadedRenderer;->initializeIfNeeded(IILandroid/view/View$AttachInfo;Landroid/view/Surface;Landroid/graphics/Rect;)Z
+Landroid/view/ThreadedRenderer;->invalidateRoot()V
+Landroid/view/ThreadedRenderer;->invokeFunctor(JZ)V
+Landroid/view/ThreadedRenderer;->isAvailable()Z
+Landroid/view/ThreadedRenderer;->isEnabled()Z
+Landroid/view/ThreadedRenderer;->isOpaque()Z
+Landroid/view/ThreadedRenderer;->isRequested()Z
+Landroid/view/ThreadedRenderer;->loadSystemProperties()Z
+Landroid/view/ThreadedRenderer;->LOG_TAG:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->mAmbientShadowAlpha:I
+Landroid/view/ThreadedRenderer;->mEnabled:Z
+Landroid/view/ThreadedRenderer;->mHasInsets:Z
+Landroid/view/ThreadedRenderer;->mHeight:I
+Landroid/view/ThreadedRenderer;->mInitialized:Z
+Landroid/view/ThreadedRenderer;->mInsetLeft:I
+Landroid/view/ThreadedRenderer;->mInsetTop:I
+Landroid/view/ThreadedRenderer;->mIsOpaque:Z
+Landroid/view/ThreadedRenderer;->mLightRadius:F
+Landroid/view/ThreadedRenderer;->mLightY:F
+Landroid/view/ThreadedRenderer;->mLightZ:F
+Landroid/view/ThreadedRenderer;->mNativeProxy:J
+Landroid/view/ThreadedRenderer;->mRequested:Z
+Landroid/view/ThreadedRenderer;->mRootNode:Landroid/view/RenderNode;
+Landroid/view/ThreadedRenderer;->mRootNodeNeedsUpdate:Z
+Landroid/view/ThreadedRenderer;->mSpotShadowAlpha:I
+Landroid/view/ThreadedRenderer;->mSurfaceHeight:I
+Landroid/view/ThreadedRenderer;->mSurfaceWidth:I
+Landroid/view/ThreadedRenderer;->mWidth:I
+Landroid/view/ThreadedRenderer;->nAddFrameMetricsObserver(JLandroid/view/FrameMetricsObserver;)J
+Landroid/view/ThreadedRenderer;->nAddRenderNode(JJZ)V
+Landroid/view/ThreadedRenderer;->nBuildLayer(JJ)V
+Landroid/view/ThreadedRenderer;->nCancelLayerUpdate(JJ)V
+Landroid/view/ThreadedRenderer;->nCopyLayerInto(JJLandroid/graphics/Bitmap;)Z
+Landroid/view/ThreadedRenderer;->nCopySurfaceInto(Landroid/view/Surface;IIIILandroid/graphics/Bitmap;)I
+Landroid/view/ThreadedRenderer;->nCreateHardwareBitmap(JII)Landroid/graphics/Bitmap;
+Landroid/view/ThreadedRenderer;->nCreateProxy(ZJ)J
+Landroid/view/ThreadedRenderer;->nCreateRootRenderNode()J
+Landroid/view/ThreadedRenderer;->nCreateTextureLayer(J)J
+Landroid/view/ThreadedRenderer;->nDeleteProxy(J)V
+Landroid/view/ThreadedRenderer;->nDestroy(JJ)V
+Landroid/view/ThreadedRenderer;->nDestroyHardwareResources(J)V
+Landroid/view/ThreadedRenderer;->nDetachSurfaceTexture(JJ)V
+Landroid/view/ThreadedRenderer;->nDrawRenderNode(JJ)V
+Landroid/view/ThreadedRenderer;->nDumpProfileInfo(JLjava/io/FileDescriptor;I)V
+Landroid/view/ThreadedRenderer;->nFence(J)V
+Landroid/view/ThreadedRenderer;->nGetRenderThreadTid(J)I
+Landroid/view/ThreadedRenderer;->nHackySetRTAnimationsEnabled(Z)V
+Landroid/view/ThreadedRenderer;->nInitialize(JLandroid/view/Surface;)V
+Landroid/view/ThreadedRenderer;->nInvokeFunctor(JZ)V
+Landroid/view/ThreadedRenderer;->nLoadSystemProperties(J)Z
+Landroid/view/ThreadedRenderer;->nNotifyFramePending(J)V
+Landroid/view/ThreadedRenderer;->notifyFramePending()V
+Landroid/view/ThreadedRenderer;->nOverrideProperty(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/view/ThreadedRenderer;->nPauseSurface(JLandroid/view/Surface;)Z
+Landroid/view/ThreadedRenderer;->nPushLayerUpdate(JJ)V
+Landroid/view/ThreadedRenderer;->nRegisterAnimatingRenderNode(JJ)V
+Landroid/view/ThreadedRenderer;->nRegisterVectorDrawableAnimator(JJ)V
+Landroid/view/ThreadedRenderer;->nRemoveFrameMetricsObserver(JJ)V
+Landroid/view/ThreadedRenderer;->nRemoveRenderNode(JJ)V
+Landroid/view/ThreadedRenderer;->nRotateProcessStatsBuffer()V
+Landroid/view/ThreadedRenderer;->nSerializeDisplayListTree(J)V
+Landroid/view/ThreadedRenderer;->nSetContentDrawBounds(JIIII)V
+Landroid/view/ThreadedRenderer;->nSetContextPriority(I)V
+Landroid/view/ThreadedRenderer;->nSetDebuggingEnabled(Z)V
+Landroid/view/ThreadedRenderer;->nSetFrameCallback(JLandroid/view/ThreadedRenderer$FrameDrawingCallback;)V
+Landroid/view/ThreadedRenderer;->nSetFrameCompleteCallback(JLandroid/view/ThreadedRenderer$FrameCompleteCallback;)V
+Landroid/view/ThreadedRenderer;->nSetHighContrastText(Z)V
+Landroid/view/ThreadedRenderer;->nSetIsolatedProcess(Z)V
+Landroid/view/ThreadedRenderer;->nSetLightCenter(JFFF)V
+Landroid/view/ThreadedRenderer;->nSetName(JLjava/lang/String;)V
+Landroid/view/ThreadedRenderer;->nSetOpaque(JZ)V
+Landroid/view/ThreadedRenderer;->nSetProcessStatsBuffer(I)V
+Landroid/view/ThreadedRenderer;->nSetStopped(JZ)V
+Landroid/view/ThreadedRenderer;->nSetup(JFII)V
+Landroid/view/ThreadedRenderer;->nSetWideGamut(JZ)V
+Landroid/view/ThreadedRenderer;->nStopDrawing(J)V
+Landroid/view/ThreadedRenderer;->nSyncAndDrawFrame(J[JI)I
+Landroid/view/ThreadedRenderer;->nTrimMemory(I)V
+Landroid/view/ThreadedRenderer;->nUpdateSurface(JLandroid/view/Surface;)V
+Landroid/view/ThreadedRenderer;->onLayerDestroyed(Landroid/view/TextureLayer;)V
+Landroid/view/ThreadedRenderer;->OVERDRAW_PROPERTY_SHOW:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->overrideProperty(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/view/ThreadedRenderer;->pauseSurface(Landroid/view/Surface;)Z
+Landroid/view/ThreadedRenderer;->PRINT_CONFIG_PROPERTY:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->PROFILE_MAXFRAMES_PROPERTY:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->PROFILE_PROPERTY:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->PROFILE_PROPERTY_VISUALIZE_BARS:Ljava/lang/String;
+Landroid/view/ThreadedRenderer;->pushLayerUpdate(Landroid/view/TextureLayer;)V
+Landroid/view/ThreadedRenderer;->registerAnimatingRenderNode(Landroid/view/RenderNode;)V
+Landroid/view/ThreadedRenderer;->registerVectorDrawableAnimator(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;)V
+Landroid/view/ThreadedRenderer;->removeFrameMetricsObserver(Landroid/view/FrameMetricsObserver;)V
+Landroid/view/ThreadedRenderer;->serializeDisplayListTree()V
+Landroid/view/ThreadedRenderer;->setContextPriority(I)V
+Landroid/view/ThreadedRenderer;->setDebuggingEnabled(Z)V
+Landroid/view/ThreadedRenderer;->setEnabled(Z)V
+Landroid/view/ThreadedRenderer;->setFPSDivisor(I)V
+Landroid/view/ThreadedRenderer;->setFrameCompleteCallback(Landroid/view/ThreadedRenderer$FrameCompleteCallback;)V
+Landroid/view/ThreadedRenderer;->setHighContrastText(Z)V
+Landroid/view/ThreadedRenderer;->setIsolatedProcess(Z)V
+Landroid/view/ThreadedRenderer;->setLightCenter(Landroid/view/View$AttachInfo;)V
+Landroid/view/ThreadedRenderer;->setOpaque(Z)V
+Landroid/view/ThreadedRenderer;->setRequested(Z)V
+Landroid/view/ThreadedRenderer;->setStopped(Z)V
+Landroid/view/ThreadedRenderer;->setup(IILandroid/view/View$AttachInfo;Landroid/graphics/Rect;)V
+Landroid/view/ThreadedRenderer;->setupShadersDiskCache(Ljava/lang/String;Ljava/lang/String;)V
+Landroid/view/ThreadedRenderer;->setWideGamut(Z)V
+Landroid/view/ThreadedRenderer;->sRendererDisabled:Z
+Landroid/view/ThreadedRenderer;->sSupportsOpenGL:Ljava/lang/Boolean;
+Landroid/view/ThreadedRenderer;->sSystemRendererDisabled:Z
+Landroid/view/ThreadedRenderer;->stopDrawing()V
+Landroid/view/ThreadedRenderer;->sTrimForeground:Z
+Landroid/view/ThreadedRenderer;->SYNC_CONTEXT_IS_STOPPED:I
+Landroid/view/ThreadedRenderer;->SYNC_FRAME_DROPPED:I
+Landroid/view/ThreadedRenderer;->SYNC_INVALIDATE_REQUIRED:I
+Landroid/view/ThreadedRenderer;->SYNC_LOST_SURFACE_REWARD_IF_FOUND:I
+Landroid/view/ThreadedRenderer;->SYNC_OK:I
+Landroid/view/ThreadedRenderer;->trimMemory(I)V
+Landroid/view/ThreadedRenderer;->updateEnabledState(Landroid/view/Surface;)V
+Landroid/view/ThreadedRenderer;->updateRootDisplayList(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V
+Landroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V
+Landroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V
+Landroid/view/ThreadedRenderer;->VISUALIZERS:[Ljava/lang/String;
+Landroid/view/TouchDelegate;->mBounds:Landroid/graphics/Rect;
+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
+Landroid/view/VelocityTracker$Estimator;->estimateY(F)F
+Landroid/view/VelocityTracker$Estimator;->getXCoeff(I)F
+Landroid/view/VelocityTracker$Estimator;->getYCoeff(I)F
+Landroid/view/VelocityTracker$Estimator;->MAX_DEGREE:I
+Landroid/view/VelocityTracker;-><init>(Ljava/lang/String;)V
+Landroid/view/VelocityTracker;->ACTIVE_POINTER_ID:I
+Landroid/view/VelocityTracker;->getEstimator(ILandroid/view/VelocityTracker$Estimator;)Z
+Landroid/view/VelocityTracker;->mPtr:J
+Landroid/view/VelocityTracker;->mStrategy:Ljava/lang/String;
+Landroid/view/VelocityTracker;->nativeAddMovement(JLandroid/view/MotionEvent;)V
+Landroid/view/VelocityTracker;->nativeClear(J)V
+Landroid/view/VelocityTracker;->nativeComputeCurrentVelocity(JIF)V
+Landroid/view/VelocityTracker;->nativeDispose(J)V
+Landroid/view/VelocityTracker;->nativeGetEstimator(JILandroid/view/VelocityTracker$Estimator;)Z
+Landroid/view/VelocityTracker;->nativeGetXVelocity(JI)F
+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;
+Landroid/view/View$AttachInfo;->mAccessibilityWindowId:I
+Landroid/view/View$AttachInfo;->mAlwaysConsumeNavBar:Z
+Landroid/view/View$AttachInfo;->mAutofilledDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/view/View$AttachInfo;->mCanvas:Landroid/graphics/Canvas;
+Landroid/view/View$AttachInfo;->mDebugLayout:Z
+Landroid/view/View$AttachInfo;->mDisabledSystemUiVisibility:I
+Landroid/view/View$AttachInfo;->mDisplay:Landroid/view/Display;
+Landroid/view/View$AttachInfo;->mDisplayCutout:Landroid/view/DisplayCutout$ParcelableWrapper;
+Landroid/view/View$AttachInfo;->mDragSurface:Landroid/view/Surface;
+Landroid/view/View$AttachInfo;->mDragToken:Landroid/os/IBinder;
+Landroid/view/View$AttachInfo;->mEmptyPartialLayoutViews:Ljava/util/List;
+Landroid/view/View$AttachInfo;->mForceReportNewAttributes:Z
+Landroid/view/View$AttachInfo;->mGlobalSystemUiVisibility:I
+Landroid/view/View$AttachInfo;->mHandlingPointerEvent:Z
+Landroid/view/View$AttachInfo;->mHardwareAccelerated:Z
+Landroid/view/View$AttachInfo;->mHardwareAccelerationRequested:Z
+Landroid/view/View$AttachInfo;->mHasNonEmptyGivenInternalInsets:Z
+Landroid/view/View$AttachInfo;->mHasSystemUiListeners:Z
+Landroid/view/View$AttachInfo;->mIgnoreDirtyState:Z
+Landroid/view/View$AttachInfo;->mInvalidateChildLocation:[I
+Landroid/view/View$AttachInfo;->mIWindowId:Landroid/view/IWindowId;
+Landroid/view/View$AttachInfo;->mNeedsUpdateLightCenter:Z
+Landroid/view/View$AttachInfo;->mOutsets:Landroid/graphics/Rect;
+Landroid/view/View$AttachInfo;->mOverscanInsets:Landroid/graphics/Rect;
+Landroid/view/View$AttachInfo;->mOverscanRequested:Z
+Landroid/view/View$AttachInfo;->mPanelParentWindowToken:Landroid/os/IBinder;
+Landroid/view/View$AttachInfo;->mPartialLayoutViews:Ljava/util/List;
+Landroid/view/View$AttachInfo;->mPendingAnimatingRenderNodes:Ljava/util/List;
+Landroid/view/View$AttachInfo;->mPoint:Landroid/graphics/Point;
+Landroid/view/View$AttachInfo;->mRootCallbacks:Landroid/view/View$AttachInfo$Callbacks;
+Landroid/view/View$AttachInfo;->mRootView:Landroid/view/View;
+Landroid/view/View$AttachInfo;->mSetIgnoreDirtyState:Z
+Landroid/view/View$AttachInfo;->mSystemUiVisibility:I
+Landroid/view/View$AttachInfo;->mTempArrayList:Ljava/util/ArrayList;
+Landroid/view/View$AttachInfo;->mThreadedRenderer:Landroid/view/ThreadedRenderer;
+Landroid/view/View$AttachInfo;->mTmpInvalRect:Landroid/graphics/Rect;
+Landroid/view/View$AttachInfo;->mTmpLocation:[I
+Landroid/view/View$AttachInfo;->mTmpMatrix:Landroid/graphics/Matrix;
+Landroid/view/View$AttachInfo;->mTmpOutline:Landroid/graphics/Outline;
+Landroid/view/View$AttachInfo;->mTmpRectList:Ljava/util/List;
+Landroid/view/View$AttachInfo;->mTmpTransformation:Landroid/view/animation/Transformation;
+Landroid/view/View$AttachInfo;->mTmpTransformLocation:[F
+Landroid/view/View$AttachInfo;->mTmpTransformRect1:Landroid/graphics/RectF;
+Landroid/view/View$AttachInfo;->mTmpTransformRect:Landroid/graphics/RectF;
+Landroid/view/View$AttachInfo;->mTooltipHost:Landroid/view/View;
+Landroid/view/View$AttachInfo;->mTransparentLocation:[I
+Landroid/view/View$AttachInfo;->mUnbufferedDispatchRequested:Z
+Landroid/view/View$AttachInfo;->mUse32BitDrawingCache:Z
+Landroid/view/View$AttachInfo;->mViewRequestingLayout:Landroid/view/View;
+Landroid/view/View$AttachInfo;->mViewRootImpl:Landroid/view/ViewRootImpl;
+Landroid/view/View$AttachInfo;->mWindowId:Landroid/view/WindowId;
+Landroid/view/View$AttachInfo;->mWindowLeft:I
+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
+Landroid/view/View$BaseSavedState;->mIsAutofilled:Z
+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
+Landroid/view/View$CheckForLongPress;->mY:F
+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;
+Landroid/view/View$ForegroundInfo;->mGravity:I
+Landroid/view/View$ForegroundInfo;->mInsidePadding:Z
+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;
+Landroid/view/View$ListenerInfo;->mOnContextClickListener:Landroid/view/View$OnContextClickListener;
+Landroid/view/View$ListenerInfo;->mOnLayoutChangeListeners:Ljava/util/ArrayList;
+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
+Landroid/view/View$ScrollabilityCache;->fadeScrollBars:Z
+Landroid/view/View$ScrollabilityCache;->fadeStartTime:J
+Landroid/view/View$ScrollabilityCache;->FADING:I
+Landroid/view/View$ScrollabilityCache;->fadingEdgeLength:I
+Landroid/view/View$ScrollabilityCache;->interpolatorValues:[F
+Landroid/view/View$ScrollabilityCache;->matrix:Landroid/graphics/Matrix;
+Landroid/view/View$ScrollabilityCache;->mLastColor:I
+Landroid/view/View$ScrollabilityCache;->mScrollBarBounds:Landroid/graphics/Rect;
+Landroid/view/View$ScrollabilityCache;->mScrollBarDraggingPos:F
+Landroid/view/View$ScrollabilityCache;->mScrollBarDraggingState:I
+Landroid/view/View$ScrollabilityCache;->mScrollBarTouchBounds:Landroid/graphics/Rect;
+Landroid/view/View$ScrollabilityCache;->NOT_DRAGGING:I
+Landroid/view/View$ScrollabilityCache;->OFF:I
+Landroid/view/View$ScrollabilityCache;->ON:I
+Landroid/view/View$ScrollabilityCache;->OPAQUE:[F
+Landroid/view/View$ScrollabilityCache;->paint:Landroid/graphics/Paint;
+Landroid/view/View$ScrollabilityCache;->scrollBarDefaultDelayBeforeFade:I
+Landroid/view/View$ScrollabilityCache;->scrollBarFadeDuration:I
+Landroid/view/View$ScrollabilityCache;->scrollBarInterpolator:Landroid/graphics/Interpolator;
+Landroid/view/View$ScrollabilityCache;->scrollBarMinTouchTarget:I
+Landroid/view/View$ScrollabilityCache;->scrollBarSize:I
+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
+Landroid/view/View$TooltipInfo;->mAnchorY:I
+Landroid/view/View$TooltipInfo;->mHideTooltipRunnable:Ljava/lang/Runnable;
+Landroid/view/View$TooltipInfo;->mHoverSlop:I
+Landroid/view/View$TooltipInfo;->mShowTooltipRunnable:Ljava/lang/Runnable;
+Landroid/view/View$TooltipInfo;->mTooltipFromLongClick:Z
+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;
+Landroid/view/View;->ACCESSIBILITY_CURSOR_POSITION_UNDEFINED:I
+Landroid/view/View;->ACCESSIBILITY_LIVE_REGION_DEFAULT:I
+Landroid/view/View;->addFrameMetricsListener(Landroid/view/Window;Landroid/view/Window$OnFrameMetricsAvailableListener;Landroid/os/Handler;)V
+Landroid/view/View;->ALL_RTL_PROPERTIES_RESOLVED:I
+Landroid/view/View;->applyBackgroundTint()V
+Landroid/view/View;->applyForegroundTint()V
+Landroid/view/View;->applyLegacyAnimation(Landroid/view/ViewGroup;JLandroid/view/animation/Animation;Z)Z
+Landroid/view/View;->areDrawablesResolved()Z
+Landroid/view/View;->AUTOFILL_HIGHLIGHT_ATTR:[I
+Landroid/view/View;->buildDrawingCacheImpl(Z)V
+Landroid/view/View;->callDragEventHandler(Landroid/view/DragEvent;)Z
+Landroid/view/View;->canAcceptDrag()Z
+Landroid/view/View;->canHaveDisplayList()Z
+Landroid/view/View;->canNotifyAutofillEnterExitEvent()Z
+Landroid/view/View;->canTakeFocus()Z
+Landroid/view/View;->captureTransitioningViews(Ljava/util/List;)V
+Landroid/view/View;->checkForLongClick(IFF)V
+Landroid/view/View;->cleanupDraw()V
+Landroid/view/View;->clearAccessibilityFocusNoCallbacks(I)V
+Landroid/view/View;->clearFocusInternal(Landroid/view/View;ZZ)V
+Landroid/view/View;->clearParentsWantFocus()V
+Landroid/view/View;->CLICKABLE:I
+Landroid/view/View;->combineVisibility(II)I
+Landroid/view/View;->computeOpticalInsets()Landroid/graphics/Insets;
+Landroid/view/View;->CONTEXT_CLICKABLE:I
+Landroid/view/View;->createAccessibilityNodeInfoInternal()Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/View;->damageInParent()V
+Landroid/view/View;->debugDraw()Z
+Landroid/view/View;->debugDrawFocus(Landroid/graphics/Canvas;)V
+Landroid/view/View;->debugIndent(I)Ljava/lang/String;
+Landroid/view/View;->DEBUG_CORNERS_COLOR:I
+Landroid/view/View;->DEBUG_CORNERS_SIZE_DIP:I
+Landroid/view/View;->DEBUG_DRAW:Z
+Landroid/view/View;->dipsToPixels(I)I
+Landroid/view/View;->DISABLED:I
+Landroid/view/View;->dispatchActivityResult(Ljava/lang/String;IILandroid/content/Intent;)Z
+Landroid/view/View;->dispatchCancelPendingInputEvents()V
+Landroid/view/View;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V
+Landroid/view/View;->dispatchDragEnterExitInPreN(Landroid/view/DragEvent;)Z
+Landroid/view/View;->dispatchGenericMotionEventInternal(Landroid/view/MotionEvent;)Z
+Landroid/view/View;->dispatchGetDisplayList()V
+Landroid/view/View;->dispatchMovedToDisplay(Landroid/view/Display;Landroid/content/res/Configuration;)V
+Landroid/view/View;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+Landroid/view/View;->dispatchProvideStructureForAssistOrAutofill(Landroid/view/ViewStructure;ZI)V
+Landroid/view/View;->dispatchScreenStateChanged(I)V
+Landroid/view/View;->dispatchTooltipHoverEvent(Landroid/view/MotionEvent;)Z
+Landroid/view/View;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Landroid/view/View;
+Landroid/view/View;->dispatchVisibilityAggregated(Z)Z
+Landroid/view/View;->DRAG_MASK:I
+Landroid/view/View;->draw(Landroid/graphics/Canvas;Landroid/view/ViewGroup;J)Z
+Landroid/view/View;->drawAutofilledHighlight(Landroid/graphics/Canvas;)V
+Landroid/view/View;->drawDefaultFocusHighlight(Landroid/graphics/Canvas;)V
+Landroid/view/View;->DRAWING_CACHE_ENABLED:I
+Landroid/view/View;->DRAWING_CACHE_QUALITY_FLAGS:[I
+Landroid/view/View;->DRAWING_CACHE_QUALITY_MASK:I
+Landroid/view/View;->DRAW_MASK:I
+Landroid/view/View;->dumpFlag(Ljava/util/HashMap;Ljava/lang/String;I)V
+Landroid/view/View;->dumpFlags()V
+Landroid/view/View;->DUPLICATE_PARENT_STATE:I
+Landroid/view/View;->ENABLED:I
+Landroid/view/View;->ENABLED_MASK:I
+Landroid/view/View;->encode(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/view/View;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/view/View;->FADING_EDGE_HORIZONTAL:I
+Landroid/view/View;->FADING_EDGE_MASK:I
+Landroid/view/View;->FADING_EDGE_NONE:I
+Landroid/view/View;->FADING_EDGE_VERTICAL:I
+Landroid/view/View;->FILTER_TOUCHES_WHEN_OBSCURED:I
+Landroid/view/View;->findAccessibilityFocusHost(Z)Landroid/view/View;
+Landroid/view/View;->findFrameMetricsObserver(Landroid/view/Window$OnFrameMetricsAvailableListener;)Landroid/view/FrameMetricsObserver;
+Landroid/view/View;->findKeyboardNavigationCluster()Landroid/view/View;
+Landroid/view/View;->findLabelForView(Landroid/view/View;I)Landroid/view/View;
+Landroid/view/View;->findNamedViews(Ljava/util/Map;)V
+Landroid/view/View;->findUserSetNextFocus(Landroid/view/View;I)Landroid/view/View;
+Landroid/view/View;->findUserSetNextKeyboardNavigationCluster(Landroid/view/View;I)Landroid/view/View;
+Landroid/view/View;->findViewByAccessibilityIdTraversal(I)Landroid/view/View;
+Landroid/view/View;->findViewByAutofillIdTraversal(I)Landroid/view/View;
+Landroid/view/View;->findViewByPredicate(Ljava/util/function/Predicate;)Landroid/view/View;
+Landroid/view/View;->findViewByPredicateInsideOut(Landroid/view/View;Ljava/util/function/Predicate;)Landroid/view/View;
+Landroid/view/View;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
+Landroid/view/View;->findViewInsideOutShouldExist(Landroid/view/View;I)Landroid/view/View;
+Landroid/view/View;->findViewTraversal(I)Landroid/view/View;
+Landroid/view/View;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
+Landroid/view/View;->FIND_VIEWS_WITH_ACCESSIBILITY_NODE_PROVIDERS:I
+Landroid/view/View;->fitSystemWindowsInt(Landroid/graphics/Rect;)Z
+Landroid/view/View;->FITS_SYSTEM_WINDOWS:I
+Landroid/view/View;->FOCUSABLE_IN_TOUCH_MODE:I
+Landroid/view/View;->FOCUSABLE_MASK:I
+Landroid/view/View;->getAccessibilitySelectionEnd()I
+Landroid/view/View;->getAccessibilitySelectionStart()I
+Landroid/view/View;->getAccessibilityWindowId()I
+Landroid/view/View;->getAttributeMap()Landroid/util/SparseArray;
+Landroid/view/View;->getAutofilledDrawable()Landroid/graphics/drawable/Drawable;
+Landroid/view/View;->getAutofillManager()Landroid/view/autofill/AutofillManager;
+Landroid/view/View;->getAutofillViewId()I
+Landroid/view/View;->getDebugPaint()Landroid/graphics/Paint;
+Landroid/view/View;->getDefaultFocusHighlightDrawable()Landroid/graphics/drawable/Drawable;
+Landroid/view/View;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/view/RenderNode;)Landroid/view/RenderNode;
+Landroid/view/View;->getFadeHeight(Z)I
+Landroid/view/View;->getFadeTop(Z)I
+Landroid/view/View;->getFinalAlpha()F
+Landroid/view/View;->getFocusableAttribute(Landroid/content/res/TypedArray;)I
+Landroid/view/View;->getHorizontalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/view/View;->getHotspotBounds(Landroid/graphics/Rect;)V
+Landroid/view/View;->getOpticalInsets()Landroid/graphics/Insets;
+Landroid/view/View;->getOutsets(Landroid/graphics/Rect;)V
+Landroid/view/View;->getProjectionReceiver()Landroid/view/View;
+Landroid/view/View;->getRawLayoutDirection()I
+Landroid/view/View;->getRoundVerticalScrollBarBounds(Landroid/graphics/Rect;)V
+Landroid/view/View;->getRunQueue()Landroid/view/HandlerActionQueue;
+Landroid/view/View;->getScrollIndicatorBounds(Landroid/graphics/Rect;)V
+Landroid/view/View;->getSelfOrParentImportantForA11y()Landroid/view/View;
+Landroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/view/View;->getTooltip()Ljava/lang/CharSequence;
+Landroid/view/View;->getVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/view/View;->getWindow()Landroid/view/IWindow;
+Landroid/view/View;->handleFocusGainInternal(ILandroid/graphics/Rect;)V
+Landroid/view/View;->handleScrollBarDragging(Landroid/view/MotionEvent;)Z
+Landroid/view/View;->handleTooltipKey(Landroid/view/KeyEvent;)V
+Landroid/view/View;->handleTooltipUp()V
+Landroid/view/View;->hasAncestorThatBlocksDescendantFocus()Z
+Landroid/view/View;->hasDefaultFocus()Z
+Landroid/view/View;->hasFocusable(ZZ)Z
+Landroid/view/View;->hasHoveredChild()Z
+Landroid/view/View;->hasListenersForAccessibility()Z
+Landroid/view/View;->hasOpaqueScrollbars()Z
+Landroid/view/View;->hasParentWantsFocus()Z
+Landroid/view/View;->hasShadow()Z
+Landroid/view/View;->hasSize()Z
+Landroid/view/View;->hasUnhandledKeyListener()Z
+Landroid/view/View;->IMPORTANT_FOR_ACCESSIBILITY_DEFAULT:I
+Landroid/view/View;->initialAwakenScrollBars()Z
+Landroid/view/View;->initializeFadingEdgeInternal(Landroid/content/res/TypedArray;)V
+Landroid/view/View;->initializeScrollIndicatorsInternal()V
+Landroid/view/View;->initScrollCache()V
+Landroid/view/View;->invalidateInheritedLayoutMode(I)V
+Landroid/view/View;->invalidateInternal(IIIIZZ)V
+Landroid/view/View;->invalidateParentIfNeededAndWasQuickRejected()V
+Landroid/view/View;->isAccessibilityFocusedViewOrHost()Z
+Landroid/view/View;->isAccessibilityPane()Z
+Landroid/view/View;->isAccessibilitySelectionExtendable()Z
+Landroid/view/View;->isActionableForAccessibility()Z
+Landroid/view/View;->isAssistBlocked()Z
+Landroid/view/View;->isAutofillable()Z
+Landroid/view/View;->isAutofilled()Z
+Landroid/view/View;->isForegroundInsidePadding()Z
+Landroid/view/View;->isHoverable()Z
+Landroid/view/View;->isLayoutDirectionInherited()Z
+Landroid/view/View;->isLayoutModeOptical(Ljava/lang/Object;)Z
+Landroid/view/View;->isLayoutValid()Z
+Landroid/view/View;->isOnHorizontalScrollbarThumb(FF)Z
+Landroid/view/View;->isOnScrollbar(FF)Z
+Landroid/view/View;->isOnVerticalScrollbarThumb(FF)Z
+Landroid/view/View;->isProjectionReceiver()Z
+Landroid/view/View;->isRtlCompatibilityMode()Z
+Landroid/view/View;->isTextAlignmentInherited()Z
+Landroid/view/View;->isTextDirectionInherited()Z
+Landroid/view/View;->isVerticalScrollBarHidden()Z
+Landroid/view/View;->isViewIdGenerated(I)Z
+Landroid/view/View;->LAST_APP_AUTOFILL_ID:I
+Landroid/view/View;->LAYOUT_DIRECTION_DEFAULT:I
+Landroid/view/View;->LAYOUT_DIRECTION_FLAGS:[I
+Landroid/view/View;->LAYOUT_DIRECTION_RESOLVED_DEFAULT:I
+Landroid/view/View;->LAYOUT_DIRECTION_UNDEFINED:I
+Landroid/view/View;->LONG_CLICKABLE:I
+Landroid/view/View;->mAccessibilityCursorPosition:I
+Landroid/view/View;->mAccessibilityPaneTitle:Ljava/lang/CharSequence;
+Landroid/view/View;->mAccessibilityTraversalAfterId:I
+Landroid/view/View;->mAccessibilityTraversalBeforeId:I
+Landroid/view/View;->mapRectFromViewToScreenCoords(Landroid/graphics/RectF;Z)V
+Landroid/view/View;->mAttributeMap:Landroid/util/SparseArray;
+Landroid/view/View;->mAttributes:[Ljava/lang/String;
+Landroid/view/View;->mAutofillHints:[Ljava/lang/String;
+Landroid/view/View;->mAutofillId:Landroid/view/autofill/AutofillId;
+Landroid/view/View;->mAutofillViewId:I
+Landroid/view/View;->mBackgroundRenderNode:Landroid/view/RenderNode;
+Landroid/view/View;->mBackgroundSizeChanged:Z
+Landroid/view/View;->mBackgroundTint:Landroid/view/View$TintInfo;
+Landroid/view/View;->mClipBounds:Landroid/graphics/Rect;
+Landroid/view/View;->mContentDescription:Ljava/lang/CharSequence;
+Landroid/view/View;->mCurrentAnimation:Landroid/view/animation/Animation;
+Landroid/view/View;->mDebugViewAttributes:Z
+Landroid/view/View;->mDefaultFocusHighlight:Landroid/graphics/drawable/Drawable;
+Landroid/view/View;->mDefaultFocusHighlightCache:Landroid/graphics/drawable/Drawable;
+Landroid/view/View;->mDefaultFocusHighlightEnabled:Z
+Landroid/view/View;->mDefaultFocusHighlightSizeChanged:Z
+Landroid/view/View;->mDrawableState:[I
+Landroid/view/View;->mDrawingCacheBackgroundColor:I
+Landroid/view/View;->mFloatingTreeObserver:Landroid/view/ViewTreeObserver;
+Landroid/view/View;->mForegroundInfo:Landroid/view/View$ForegroundInfo;
+Landroid/view/View;->mFrameMetricsObservers:Ljava/util/ArrayList;
+Landroid/view/View;->mGhostView:Landroid/view/GhostView;
+Landroid/view/View;->mID:I
+Landroid/view/View;->mIgnoreNextUpEvent:Z
+Landroid/view/View;->mInContextButtonPress:Z
+Landroid/view/View;->mInputEventConsistencyVerifier:Landroid/view/InputEventConsistencyVerifier;
+Landroid/view/View;->mLabelForId:I
+Landroid/view/View;->mLastIsOpaque:Z
+Landroid/view/View;->mLayerPaint:Landroid/graphics/Paint;
+Landroid/view/View;->mLayerType:I
+Landroid/view/View;->mLayoutInsets:Landroid/graphics/Insets;
+Landroid/view/View;->mLeftPaddingDefined:Z
+Landroid/view/View;->mLongClickX:F
+Landroid/view/View;->mLongClickY:F
+Landroid/view/View;->mMatchIdPredicate:Landroid/view/View$MatchIdPredicate;
+Landroid/view/View;->mMatchLabelForPredicate:Landroid/view/View$MatchLabelForPredicate;
+Landroid/view/View;->mMeasureCache:Landroid/util/LongSparseLongArray;
+Landroid/view/View;->mNestedScrollingParent:Landroid/view/ViewParent;
+Landroid/view/View;->mNextClusterForwardId:I
+Landroid/view/View;->mNextFocusDownId:I
+Landroid/view/View;->mNextFocusForwardId:I
+Landroid/view/View;->mNextFocusLeftId:I
+Landroid/view/View;->mNextFocusRightId:I
+Landroid/view/View;->mNextFocusUpId:I
+Landroid/view/View;->mOldHeightMeasureSpec:I
+Landroid/view/View;->mOldWidthMeasureSpec:I
+Landroid/view/View;->mOutlineProvider:Landroid/view/ViewOutlineProvider;
+Landroid/view/View;->mOverlay:Landroid/view/ViewOverlay;
+Landroid/view/View;->mOverScrollMode:I
+Landroid/view/View;->mPendingCheckForLongPress:Landroid/view/View$CheckForLongPress;
+Landroid/view/View;->mPerformClick:Landroid/view/View$PerformClick;
+Landroid/view/View;->mPointerIcon:Landroid/view/PointerIcon;
+Landroid/view/View;->mRightPaddingDefined:Z
+Landroid/view/View;->mRoundScrollbarRenderer:Landroid/view/RoundScrollbarRenderer;
+Landroid/view/View;->mRunQueue:Landroid/view/HandlerActionQueue;
+Landroid/view/View;->mScrollIndicatorDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/view/View;->mSendingHoverAccessibilityEvents:Z
+Landroid/view/View;->mSendViewScrolledAccessibilityEvent:Landroid/view/View$SendViewScrolledAccessibilityEvent;
+Landroid/view/View;->mStateListAnimator:Landroid/animation/StateListAnimator;
+Landroid/view/View;->mSystemUiVisibility:I
+Landroid/view/View;->mTempNestedScrollConsumed:[I
+Landroid/view/View;->mTooltipInfo:Landroid/view/View$TooltipInfo;
+Landroid/view/View;->mTouchDelegate:Landroid/view/TouchDelegate;
+Landroid/view/View;->mTouchSlop:I
+Landroid/view/View;->mTransientStateCount:I
+Landroid/view/View;->mTransitionName:Ljava/lang/String;
+Landroid/view/View;->mUnsetPressedState:Landroid/view/View$UnsetPressedState;
+Landroid/view/View;->mUserPaddingBottom:I
+Landroid/view/View;->mUserPaddingEnd:I
+Landroid/view/View;->mUserPaddingLeft:I
+Landroid/view/View;->mUserPaddingLeftInitial:I
+Landroid/view/View;->mUserPaddingRight:I
+Landroid/view/View;->mUserPaddingRightInitial:I
+Landroid/view/View;->mUserPaddingStart:I
+Landroid/view/View;->mVerticalScrollFactor:F
+Landroid/view/View;->mVisibilityChangeForAutofillHandler:Landroid/os/Handler;
+Landroid/view/View;->mWindowAttachCount:I
+Landroid/view/View;->NAVIGATION_BAR_TRANSLUCENT:I
+Landroid/view/View;->NAVIGATION_BAR_TRANSPARENT:I
+Landroid/view/View;->NAVIGATION_BAR_UNHIDE:I
+Landroid/view/View;->needGlobalAttributesUpdate(Z)V
+Landroid/view/View;->needRtlPropertiesResolution()Z
+Landroid/view/View;->notifyAutofillManagerOnClick()V
+Landroid/view/View;->notifyEnterOrExitForAutoFillIfNeeded(Z)V
+Landroid/view/View;->notifyGlobalFocusCleared(Landroid/view/View;)V
+Landroid/view/View;->numViewsForAccessibility(Landroid/view/View;)I
+Landroid/view/View;->onActivityResult(IILandroid/content/Intent;)V
+Landroid/view/View;->onDrawScrollIndicators(Landroid/graphics/Canvas;)V
+Landroid/view/View;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/view/View;->onMovedToDisplay(ILandroid/content/res/Configuration;)V
+Landroid/view/View;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/view/View;->onProvideStructureForAssistOrAutofill(Landroid/view/ViewStructure;ZI)V
+Landroid/view/View;->onProvideVirtualStructureCompat(Landroid/view/ViewStructure;Z)V
+Landroid/view/View;->onResolveDrawables(I)V
+Landroid/view/View;->onUnhandledKeyEvent(Landroid/view/KeyEvent;)Z
+Landroid/view/View;->OPTIONAL_FITS_SYSTEM_WINDOWS:I
+Landroid/view/View;->outputDirtyFlags(Ljava/lang/String;ZI)V
+Landroid/view/View;->PARENT_SAVE_DISABLED:I
+Landroid/view/View;->PARENT_SAVE_DISABLED_MASK:I
+Landroid/view/View;->performButtonActionOnTouchDown(Landroid/view/MotionEvent;)Z
+Landroid/view/View;->performClickInternal()Z
+Landroid/view/View;->performCollectViewAttributes(Landroid/view/View$AttachInfo;I)V
+Landroid/view/View;->performLongClickInternal(FF)Z
+Landroid/view/View;->PFLAG2_ACCESSIBILITY_FOCUSED:I
+Landroid/view/View;->PFLAG2_ACCESSIBILITY_LIVE_REGION_MASK:I
+Landroid/view/View;->PFLAG2_ACCESSIBILITY_LIVE_REGION_SHIFT:I
+Landroid/view/View;->PFLAG2_DRAG_CAN_ACCEPT:I
+Landroid/view/View;->PFLAG2_DRAG_HOVERED:I
+Landroid/view/View;->PFLAG2_DRAWABLE_RESOLVED:I
+Landroid/view/View;->PFLAG2_HAS_TRANSIENT_STATE:I
+Landroid/view/View;->PFLAG2_IMPORTANT_FOR_ACCESSIBILITY_MASK:I
+Landroid/view/View;->PFLAG2_IMPORTANT_FOR_ACCESSIBILITY_SHIFT:I
+Landroid/view/View;->PFLAG2_LAYOUT_DIRECTION_MASK:I
+Landroid/view/View;->PFLAG2_LAYOUT_DIRECTION_MASK_SHIFT:I
+Landroid/view/View;->PFLAG2_LAYOUT_DIRECTION_RESOLVED:I
+Landroid/view/View;->PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK:I
+Landroid/view/View;->PFLAG2_LAYOUT_DIRECTION_RESOLVED_RTL:I
+Landroid/view/View;->PFLAG2_PADDING_RESOLVED:I
+Landroid/view/View;->PFLAG2_SUBTREE_ACCESSIBILITY_STATE_CHANGED:I
+Landroid/view/View;->PFLAG2_TEXT_ALIGNMENT_FLAGS:[I
+Landroid/view/View;->PFLAG2_TEXT_ALIGNMENT_MASK:I
+Landroid/view/View;->PFLAG2_TEXT_ALIGNMENT_MASK_SHIFT:I
+Landroid/view/View;->PFLAG2_TEXT_ALIGNMENT_RESOLVED:I
+Landroid/view/View;->PFLAG2_TEXT_ALIGNMENT_RESOLVED_DEFAULT:I
+Landroid/view/View;->PFLAG2_TEXT_ALIGNMENT_RESOLVED_MASK:I
+Landroid/view/View;->PFLAG2_TEXT_ALIGNMENT_RESOLVED_MASK_SHIFT:I
+Landroid/view/View;->PFLAG2_TEXT_DIRECTION_FLAGS:[I
+Landroid/view/View;->PFLAG2_TEXT_DIRECTION_MASK:I
+Landroid/view/View;->PFLAG2_TEXT_DIRECTION_MASK_SHIFT:I
+Landroid/view/View;->PFLAG2_TEXT_DIRECTION_RESOLVED:I
+Landroid/view/View;->PFLAG2_TEXT_DIRECTION_RESOLVED_DEFAULT:I
+Landroid/view/View;->PFLAG2_TEXT_DIRECTION_RESOLVED_MASK:I
+Landroid/view/View;->PFLAG2_TEXT_DIRECTION_RESOLVED_MASK_SHIFT:I
+Landroid/view/View;->PFLAG2_VIEW_QUICK_REJECTED:I
+Landroid/view/View;->PFLAG3_ACCESSIBILITY_HEADING:I
+Landroid/view/View;->PFLAG3_AGGREGATED_VISIBLE:I
+Landroid/view/View;->PFLAG3_APPLYING_INSETS:I
+Landroid/view/View;->PFLAG3_ASSIST_BLOCKED:I
+Landroid/view/View;->PFLAG3_AUTOFILLID_EXPLICITLY_SET:I
+Landroid/view/View;->PFLAG3_CALLED_SUPER:I
+Landroid/view/View;->PFLAG3_CLUSTER:I
+Landroid/view/View;->PFLAG3_FINGER_DOWN:I
+Landroid/view/View;->PFLAG3_FITTING_SYSTEM_WINDOWS:I
+Landroid/view/View;->PFLAG3_FOCUSED_BY_DEFAULT:I
+Landroid/view/View;->PFLAG3_HAS_OVERLAPPING_RENDERING_FORCED:I
+Landroid/view/View;->PFLAG3_IMPORTANT_FOR_AUTOFILL_MASK:I
+Landroid/view/View;->PFLAG3_IMPORTANT_FOR_AUTOFILL_SHIFT:I
+Landroid/view/View;->PFLAG3_IS_AUTOFILLED:I
+Landroid/view/View;->PFLAG3_IS_LAID_OUT:I
+Landroid/view/View;->PFLAG3_MEASURE_NEEDED_BEFORE_LAYOUT:I
+Landroid/view/View;->PFLAG3_NESTED_SCROLLING_ENABLED:I
+Landroid/view/View;->PFLAG3_NOTIFY_AUTOFILL_ENTER_ON_LAYOUT:I
+Landroid/view/View;->PFLAG3_NO_REVEAL_ON_FOCUS:I
+Landroid/view/View;->PFLAG3_OVERLAPPING_RENDERING_FORCED_VALUE:I
+Landroid/view/View;->PFLAG3_SCREEN_READER_FOCUSABLE:I
+Landroid/view/View;->PFLAG3_SCROLL_INDICATOR_BOTTOM:I
+Landroid/view/View;->PFLAG3_SCROLL_INDICATOR_END:I
+Landroid/view/View;->PFLAG3_SCROLL_INDICATOR_LEFT:I
+Landroid/view/View;->PFLAG3_SCROLL_INDICATOR_RIGHT:I
+Landroid/view/View;->PFLAG3_SCROLL_INDICATOR_START:I
+Landroid/view/View;->PFLAG3_SCROLL_INDICATOR_TOP:I
+Landroid/view/View;->PFLAG3_TEMPORARY_DETACH:I
+Landroid/view/View;->PFLAG3_VIEW_IS_ANIMATING_ALPHA:I
+Landroid/view/View;->PFLAG3_VIEW_IS_ANIMATING_TRANSFORM:I
+Landroid/view/View;->PFLAG_ACTIVATED:I
+Landroid/view/View;->PFLAG_ALPHA_SET:I
+Landroid/view/View;->PFLAG_ANIMATION_STARTED:I
+Landroid/view/View;->PFLAG_AWAKEN_SCROLL_BARS_ON_ATTACH:I
+Landroid/view/View;->PFLAG_CANCEL_NEXT_UP_EVENT:I
+Landroid/view/View;->PFLAG_DIRTY:I
+Landroid/view/View;->PFLAG_DIRTY_MASK:I
+Landroid/view/View;->PFLAG_DIRTY_OPAQUE:I
+Landroid/view/View;->PFLAG_DRAWABLE_STATE_DIRTY:I
+Landroid/view/View;->PFLAG_DRAWING_CACHE_VALID:I
+Landroid/view/View;->PFLAG_DRAWN:I
+Landroid/view/View;->PFLAG_DRAW_ANIMATION:I
+Landroid/view/View;->PFLAG_FOCUSED:I
+Landroid/view/View;->PFLAG_FORCE_LAYOUT:I
+Landroid/view/View;->PFLAG_HAS_BOUNDS:I
+Landroid/view/View;->PFLAG_HOVERED:I
+Landroid/view/View;->PFLAG_INVALIDATED:I
+Landroid/view/View;->PFLAG_IS_ROOT_NAMESPACE:I
+Landroid/view/View;->PFLAG_LAYOUT_REQUIRED:I
+Landroid/view/View;->PFLAG_MEASURED_DIMENSION_SET:I
+Landroid/view/View;->PFLAG_NOTIFY_AUTOFILL_MANAGER_ON_CLICK:I
+Landroid/view/View;->PFLAG_OPAQUE_BACKGROUND:I
+Landroid/view/View;->PFLAG_OPAQUE_MASK:I
+Landroid/view/View;->PFLAG_OPAQUE_SCROLLBARS:I
+Landroid/view/View;->PFLAG_PREPRESSED:I
+Landroid/view/View;->PFLAG_PRESSED:I
+Landroid/view/View;->PFLAG_REQUEST_TRANSPARENT_REGIONS:I
+Landroid/view/View;->PFLAG_SAVE_STATE_CALLED:I
+Landroid/view/View;->PFLAG_SCROLL_CONTAINER:I
+Landroid/view/View;->PFLAG_SCROLL_CONTAINER_ADDED:I
+Landroid/view/View;->PFLAG_SELECTED:I
+Landroid/view/View;->PFLAG_SKIP_DRAW:I
+Landroid/view/View;->PFLAG_WANTS_FOCUS:I
+Landroid/view/View;->pointInView(FF)Z
+Landroid/view/View;->populateAccessibilityNodeInfoDrawingOrderInParent(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/view/View;->populateVirtualStructure(Landroid/view/ViewStructure;Landroid/view/accessibility/AccessibilityNodeProvider;Landroid/view/accessibility/AccessibilityNodeInfo;Z)V
+Landroid/view/View;->POPULATING_ACCESSIBILITY_EVENT_TYPES:I
+Landroid/view/View;->postSendViewScrolledAccessibilityEventCallback(II)V
+Landroid/view/View;->printFlags(I)Ljava/lang/String;
+Landroid/view/View;->printPrivateFlags(I)Ljava/lang/String;
+Landroid/view/View;->PROVIDER_BACKGROUND:I
+Landroid/view/View;->PROVIDER_BOUNDS:I
+Landroid/view/View;->PROVIDER_NONE:I
+Landroid/view/View;->PROVIDER_PADDED_BOUNDS:I
+Landroid/view/View;->PUBLIC_STATUS_BAR_VISIBILITY_MASK:I
+Landroid/view/View;->rebuildOutline()V
+Landroid/view/View;->registerPendingFrameMetricsObservers()V
+Landroid/view/View;->removeFrameMetricsListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V
+Landroid/view/View;->removeLongPressCallback()V
+Landroid/view/View;->removeTapCallback()V
+Landroid/view/View;->removeUnsetPressCallback()V
+Landroid/view/View;->requestFocusNoSearch(ILandroid/graphics/Rect;)Z
+Landroid/view/View;->requestKeyboardShortcuts(Ljava/util/List;I)V
+Landroid/view/View;->resetPressedState()V
+Landroid/view/View;->resetResolvedDrawablesInternal()V
+Landroid/view/View;->resetResolvedPaddingInternal()V
+Landroid/view/View;->resetSubtreeAccessibilityStateChanged()V
+Landroid/view/View;->resolveDrawables()V
+Landroid/view/View;->resolveLayoutDirection()Z
+Landroid/view/View;->resolveLayoutParams()V
+Landroid/view/View;->resolveRtlPropertiesIfNeeded()Z
+Landroid/view/View;->resolveTextAlignment()Z
+Landroid/view/View;->resolveTextDirection()Z
+Landroid/view/View;->rootViewRequestFocus()Z
+Landroid/view/View;->sAcceptZeroSizeDragShadow:Z
+Landroid/view/View;->sAlwaysAssignFocus:Z
+Landroid/view/View;->sAlwaysRemeasureExactly:Z
+Landroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;)F
+Landroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;FF)F
+Landroid/view/View;->sAutoFocusableOffUIThreadWontNotifyParents:Z
+Landroid/view/View;->saveAttributeData(Landroid/util/AttributeSet;Landroid/content/res/TypedArray;)V
+Landroid/view/View;->SAVE_DISABLED:I
+Landroid/view/View;->SAVE_DISABLED_MASK:I
+Landroid/view/View;->sCanFocusZeroSized:Z
+Landroid/view/View;->sCascadedDragDrop:Z
+Landroid/view/View;->sCompatibilityDone:Z
+Landroid/view/View;->SCROLLBARS_HORIZONTAL:I
+Landroid/view/View;->SCROLLBARS_INSET_MASK:I
+Landroid/view/View;->SCROLLBARS_MASK:I
+Landroid/view/View;->SCROLLBARS_NONE:I
+Landroid/view/View;->SCROLLBARS_OUTSIDE_MASK:I
+Landroid/view/View;->SCROLLBARS_STYLE_MASK:I
+Landroid/view/View;->SCROLLBARS_VERTICAL:I
+Landroid/view/View;->SCROLL_INDICATORS_NONE:I
+Landroid/view/View;->SCROLL_INDICATORS_PFLAG3_MASK:I
+Landroid/view/View;->SCROLL_INDICATORS_TO_PFLAGS3_LSHIFT:I
+Landroid/view/View;->sDebugPaint:Landroid/graphics/Paint;
+Landroid/view/View;->sendAccessibilityEventInternal(I)V
+Landroid/view/View;->sendAccessibilityEventUncheckedInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/view/View;->sendAccessibilityHoverEvent(I)V
+Landroid/view/View;->sendViewTextTraversedAtGranularityEvent(IIII)V
+Landroid/view/View;->setAccessibilitySelection(II)V
+Landroid/view/View;->setAlphaInternal(F)V
+Landroid/view/View;->setBackgroundBounds()V
+Landroid/view/View;->setBackgroundRenderNodeProperties(Landroid/view/RenderNode;)V
+Landroid/view/View;->setDefaultFocusHighlight(Landroid/graphics/drawable/Drawable;)V
+Landroid/view/View;->setDisplayListProperties(Landroid/view/RenderNode;)V
+Landroid/view/View;->setFocusedInCluster(Landroid/view/View;)V
+Landroid/view/View;->setKeyedTag(ILjava/lang/Object;)V
+Landroid/view/View;->setMeasuredDimensionRaw(II)V
+Landroid/view/View;->setNotifyAutofillManagerOnClick(Z)V
+Landroid/view/View;->setOpticalFrame(IIII)Z
+Landroid/view/View;->setOpticalInsets(Landroid/graphics/Insets;)V
+Landroid/view/View;->setOutlineProviderFromAttribute(I)V
+Landroid/view/View;->setPressed(ZFF)V
+Landroid/view/View;->setRevealClip(ZFFF)V
+Landroid/view/View;->setTransitionVisibility(I)V
+Landroid/view/View;->sHasFocusableExcludeAutoFocusable:Z
+Landroid/view/View;->shouldDrawRoundScrollbar()Z
+Landroid/view/View;->showHoverTooltip()Z
+Landroid/view/View;->showLongClickTooltip(II)Z
+Landroid/view/View;->showTooltip(IIZ)Z
+Landroid/view/View;->sIgnoreMeasureCache:Z
+Landroid/view/View;->sizeChange(IIII)V
+Landroid/view/View;->skipInvalidate()Z
+Landroid/view/View;->sLayoutParamsAlwaysChanged:Z
+Landroid/view/View;->sNextAccessibilityViewId:I
+Landroid/view/View;->sNextGeneratedId:Ljava/util/concurrent/atomic/AtomicInteger;
+Landroid/view/View;->sPreserveMarginParamsInLayoutParamConversion:Z
+Landroid/view/View;->startMovingTask(FF)Z
+Landroid/view/View;->STATUS_BAR_DISABLE_CLOCK:I
+Landroid/view/View;->STATUS_BAR_DISABLE_NOTIFICATION_ALERTS:I
+Landroid/view/View;->STATUS_BAR_DISABLE_NOTIFICATION_ICONS:I
+Landroid/view/View;->STATUS_BAR_DISABLE_NOTIFICATION_TICKER:I
+Landroid/view/View;->STATUS_BAR_DISABLE_SEARCH:I
+Landroid/view/View;->STATUS_BAR_DISABLE_SYSTEM_INFO:I
+Landroid/view/View;->STATUS_BAR_TRANSIENT:I
+Landroid/view/View;->STATUS_BAR_TRANSLUCENT:I
+Landroid/view/View;->STATUS_BAR_TRANSPARENT:I
+Landroid/view/View;->STATUS_BAR_UNHIDE:I
+Landroid/view/View;->sTextureViewIgnoresDrawableSetters:Z
+Landroid/view/View;->sThreadLocal:Ljava/lang/ThreadLocal;
+Landroid/view/View;->sThrowOnInvalidFloatProperties:Z
+Landroid/view/View;->sUseBrokenMakeMeasureSpec:Z
+Landroid/view/View;->sUseDefaultFocusHighlight:Z
+Landroid/view/View;->sUseZeroUnspecifiedMeasureSpec:Z
+Landroid/view/View;->switchDefaultFocusHighlight()V
+Landroid/view/View;->SYSTEM_UI_CLEARABLE_FLAGS:I
+Landroid/view/View;->SYSTEM_UI_RESERVED_LEGACY1:I
+Landroid/view/View;->SYSTEM_UI_RESERVED_LEGACY2:I
+Landroid/view/View;->SYSTEM_UI_TRANSPARENT:I
+Landroid/view/View;->TEXT_ALIGNMENT_DEFAULT:I
+Landroid/view/View;->TEXT_ALIGNMENT_RESOLVED_DEFAULT:I
+Landroid/view/View;->TEXT_DIRECTION_DEFAULT:I
+Landroid/view/View;->TEXT_DIRECTION_RESOLVED_DEFAULT:I
+Landroid/view/View;->TOOLTIP:I
+Landroid/view/View;->transformFromViewToWindowSpace([I)V
+Landroid/view/View;->transformRect(Landroid/graphics/Rect;)V
+Landroid/view/View;->traverseAtGranularity(IZZ)Z
+Landroid/view/View;->UNDEFINED_PADDING:I
+Landroid/view/View;->unFocus(Landroid/view/View;)V
+Landroid/view/View;->updateFocusedInCluster(Landroid/view/View;I)V
+Landroid/view/View;->updateLocalSystemUiVisibility(II)Z
+Landroid/view/View;->updatePflags3AndNotifyA11yIfChanged(IZ)V
+Landroid/view/View;->VISIBILITY_FLAGS:[I
+Landroid/view/View;->VISIBILITY_MASK:I
+Landroid/view/View;->WILL_NOT_CACHE_DRAWING:I
+Landroid/view/View;->WILL_NOT_DRAW:I
+Landroid/view/ViewAnimationUtils;-><init>()V
+Landroid/view/ViewConfiguration;-><init>(Landroid/content/Context;)V
+Landroid/view/ViewConfiguration;->A11Y_SHORTCUT_KEY_TIMEOUT:I
+Landroid/view/ViewConfiguration;->A11Y_SHORTCUT_KEY_TIMEOUT_AFTER_CONFIRMATION:I
+Landroid/view/ViewConfiguration;->ACTION_MODE_HIDE_DURATION_DEFAULT:J
+Landroid/view/ViewConfiguration;->DEFAULT_LONG_PRESS_TIMEOUT:I
+Landroid/view/ViewConfiguration;->DEFAULT_MULTI_PRESS_TIMEOUT:I
+Landroid/view/ViewConfiguration;->DOUBLE_TAP_MIN_TIME:I
+Landroid/view/ViewConfiguration;->DOUBLE_TAP_SLOP:I
+Landroid/view/ViewConfiguration;->DOUBLE_TAP_TIMEOUT:I
+Landroid/view/ViewConfiguration;->DOUBLE_TAP_TOUCH_SLOP:I
+Landroid/view/ViewConfiguration;->EDGE_SLOP:I
+Landroid/view/ViewConfiguration;->FADING_EDGE_LENGTH:I
+Landroid/view/ViewConfiguration;->getAccessibilityShortcutKeyTimeout()J
+Landroid/view/ViewConfiguration;->getAccessibilityShortcutKeyTimeoutAfterConfirmation()J
+Landroid/view/ViewConfiguration;->getHoverTapTimeout()I
+Landroid/view/ViewConfiguration;->getMultiPressTimeout()I
+Landroid/view/ViewConfiguration;->getScaledMinScrollbarTouchTarget()I
+Landroid/view/ViewConfiguration;->getSendRecurringAccessibilityEventsInterval()J
+Landroid/view/ViewConfiguration;->GLOBAL_ACTIONS_KEY_TIMEOUT:I
+Landroid/view/ViewConfiguration;->HAS_PERMANENT_MENU_KEY_AUTODETECT:I
+Landroid/view/ViewConfiguration;->HAS_PERMANENT_MENU_KEY_FALSE:I
+Landroid/view/ViewConfiguration;->HAS_PERMANENT_MENU_KEY_TRUE:I
+Landroid/view/ViewConfiguration;->HORIZONTAL_SCROLL_FACTOR:F
+Landroid/view/ViewConfiguration;->HOVER_TAP_SLOP:I
+Landroid/view/ViewConfiguration;->HOVER_TAP_TIMEOUT:I
+Landroid/view/ViewConfiguration;->HOVER_TOOLTIP_HIDE_SHORT_TIMEOUT:I
+Landroid/view/ViewConfiguration;->HOVER_TOOLTIP_HIDE_TIMEOUT:I
+Landroid/view/ViewConfiguration;->HOVER_TOOLTIP_SHOW_TIMEOUT:I
+Landroid/view/ViewConfiguration;->JUMP_TAP_TIMEOUT:I
+Landroid/view/ViewConfiguration;->KEY_REPEAT_DELAY:I
+Landroid/view/ViewConfiguration;->LONG_PRESS_TOOLTIP_HIDE_TIMEOUT:I
+Landroid/view/ViewConfiguration;->MAXIMUM_DRAWING_CACHE_SIZE:I
+Landroid/view/ViewConfiguration;->MAXIMUM_FLING_VELOCITY:I
+Landroid/view/ViewConfiguration;->mDoubleTapSlop:I
+Landroid/view/ViewConfiguration;->mDoubleTapTouchSlop:I
+Landroid/view/ViewConfiguration;->mEdgeSlop:I
+Landroid/view/ViewConfiguration;->mFadingEdgeLength:I
+Landroid/view/ViewConfiguration;->mGlobalActionsKeyTimeout:J
+Landroid/view/ViewConfiguration;->mHorizontalScrollFactor:F
+Landroid/view/ViewConfiguration;->mHoverSlop:I
+Landroid/view/ViewConfiguration;->MINIMUM_FLING_VELOCITY:I
+Landroid/view/ViewConfiguration;->MIN_SCROLLBAR_TOUCH_TARGET:I
+Landroid/view/ViewConfiguration;->mMaximumDrawingCacheSize:I
+Landroid/view/ViewConfiguration;->mMaximumFlingVelocity:I
+Landroid/view/ViewConfiguration;->mMinimumFlingVelocity:I
+Landroid/view/ViewConfiguration;->mMinScrollbarTouchTarget:I
+Landroid/view/ViewConfiguration;->mOverflingDistance:I
+Landroid/view/ViewConfiguration;->mOverscrollDistance:I
+Landroid/view/ViewConfiguration;->mPagingTouchSlop:I
+Landroid/view/ViewConfiguration;->mScrollbarSize:I
+Landroid/view/ViewConfiguration;->mShowMenuShortcutsWhenKeyboardPresent:Z
+Landroid/view/ViewConfiguration;->mTouchSlop:I
+Landroid/view/ViewConfiguration;->mVerticalScrollFactor:F
+Landroid/view/ViewConfiguration;->mWindowTouchSlop:I
+Landroid/view/ViewConfiguration;->OVERFLING_DISTANCE:I
+Landroid/view/ViewConfiguration;->OVERSCROLL_DISTANCE:I
+Landroid/view/ViewConfiguration;->PAGING_TOUCH_SLOP:I
+Landroid/view/ViewConfiguration;->PRESSED_STATE_DURATION:I
+Landroid/view/ViewConfiguration;->SCROLL_BAR_DEFAULT_DELAY:I
+Landroid/view/ViewConfiguration;->SCROLL_BAR_FADE_DURATION:I
+Landroid/view/ViewConfiguration;->SCROLL_BAR_SIZE:I
+Landroid/view/ViewConfiguration;->SEND_RECURRING_ACCESSIBILITY_EVENTS_INTERVAL_MILLIS:J
+Landroid/view/ViewConfiguration;->TAP_TIMEOUT:I
+Landroid/view/ViewConfiguration;->TOUCH_SLOP:I
+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;
+Landroid/view/ViewDebug;->capture(Landroid/view/View;Ljava/io/OutputStream;Landroid/view/View;)V
+Landroid/view/ViewDebug;->capture(Landroid/view/View;Ljava/io/OutputStream;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->capturedViewExportFields(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
+Landroid/view/ViewDebug;->capturedViewExportMethods(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
+Landroid/view/ViewDebug;->capturedViewGetPropertyFields(Ljava/lang/Class;)[Ljava/lang/reflect/Field;
+Landroid/view/ViewDebug;->capturedViewGetPropertyMethods(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
+Landroid/view/ViewDebug;->captureLayers(Landroid/view/View;Ljava/io/DataOutputStream;)V
+Landroid/view/ViewDebug;->captureViewLayer(Landroid/view/View;Ljava/io/DataOutputStream;Z)V
+Landroid/view/ViewDebug;->CAPTURE_TIMEOUT:I
+Landroid/view/ViewDebug;->DEBUG_DRAG:Z
+Landroid/view/ViewDebug;->DEBUG_POSITIONING:Z
+Landroid/view/ViewDebug;->dumpTheme(Landroid/view/View;Ljava/io/OutputStream;)V
+Landroid/view/ViewDebug;->dumpv2(Landroid/view/View;Ljava/io/ByteArrayOutputStream;)V
+Landroid/view/ViewDebug;->dumpView(Landroid/content/Context;Landroid/view/View;Ljava/io/BufferedWriter;IZ)Z
+Landroid/view/ViewDebug;->dumpViewHierarchy(Landroid/content/Context;Landroid/view/ViewGroup;Ljava/io/BufferedWriter;IZZ)V
+Landroid/view/ViewDebug;->dumpViewProperties(Landroid/content/Context;Ljava/lang/Object;Ljava/io/BufferedWriter;)V
+Landroid/view/ViewDebug;->dumpViewProperties(Landroid/content/Context;Ljava/lang/Object;Ljava/io/BufferedWriter;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->exportFields(Landroid/content/Context;Ljava/lang/Object;Ljava/io/BufferedWriter;Ljava/lang/Class;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->exportMethods(Landroid/content/Context;Ljava/lang/Object;Ljava/io/BufferedWriter;Ljava/lang/Class;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->exportUnrolledArray(Landroid/content/Context;Ljava/io/BufferedWriter;Landroid/view/ViewDebug$ExportedProperty;[ILjava/lang/String;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->exportUnrolledFlags(Ljava/io/BufferedWriter;[Landroid/view/ViewDebug$FlagToString;ILjava/lang/String;)V
+Landroid/view/ViewDebug;->findView(Landroid/view/View;Ljava/lang/String;)Landroid/view/View;
+Landroid/view/ViewDebug;->findView(Landroid/view/ViewGroup;Ljava/lang/String;I)Landroid/view/View;
+Landroid/view/ViewDebug;->flagsToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/view/ViewDebug;->formatIntToHexString(I)Ljava/lang/String;
+Landroid/view/ViewDebug;->getExportedPropertyFields(Ljava/lang/Class;)[Ljava/lang/reflect/Field;
+Landroid/view/ViewDebug;->getExportedPropertyMethods(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
+Landroid/view/ViewDebug;->getFlagMapping(Ljava/lang/Class;Ljava/lang/String;)[Landroid/view/ViewDebug$FlagToString;
+Landroid/view/ViewDebug;->getMapping(Ljava/lang/Class;Ljava/lang/String;)[Landroid/view/ViewDebug$IntToString;
+Landroid/view/ViewDebug;->getStyleAttributesDump(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)[Ljava/lang/String;
+Landroid/view/ViewDebug;->intToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
+Landroid/view/ViewDebug;->invalidate(Landroid/view/View;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->invokeViewMethod(Landroid/view/View;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
+Landroid/view/ViewDebug;->isRequestedView(Landroid/view/View;Ljava/lang/String;I)Z
+Landroid/view/ViewDebug;->mCapturedViewFieldsForClasses:Ljava/util/HashMap;
+Landroid/view/ViewDebug;->mCapturedViewMethodsForClasses:Ljava/util/HashMap;
+Landroid/view/ViewDebug;->outputDisplayList(Landroid/view/View;Landroid/view/View;)V
+Landroid/view/ViewDebug;->outputDisplayList(Landroid/view/View;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->performViewCapture(Landroid/view/View;Z)Landroid/graphics/Bitmap;
+Landroid/view/ViewDebug;->profile(Landroid/view/View;Ljava/io/OutputStream;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->profileViewAndChildren(Landroid/view/View;Landroid/view/RenderNode;Ljava/io/BufferedWriter;Z)V
+Landroid/view/ViewDebug;->profileViewAndChildren(Landroid/view/View;Ljava/io/BufferedWriter;)V
+Landroid/view/ViewDebug;->profileViewDraw(Landroid/view/View;Landroid/view/RenderNode;)J
+Landroid/view/ViewDebug;->profileViewLayout(Landroid/view/View;)J
+Landroid/view/ViewDebug;->profileViewMeasure(Landroid/view/View;)J
+Landroid/view/ViewDebug;->profileViewOperation(Landroid/view/View;Landroid/view/ViewDebug$ViewOperation;)J
+Landroid/view/ViewDebug;->REMOTE_COMMAND_CAPTURE:Ljava/lang/String;
+Landroid/view/ViewDebug;->REMOTE_COMMAND_CAPTURE_LAYERS:Ljava/lang/String;
+Landroid/view/ViewDebug;->REMOTE_COMMAND_DUMP:Ljava/lang/String;
+Landroid/view/ViewDebug;->REMOTE_COMMAND_DUMP_THEME:Ljava/lang/String;
+Landroid/view/ViewDebug;->REMOTE_COMMAND_INVALIDATE:Ljava/lang/String;
+Landroid/view/ViewDebug;->REMOTE_COMMAND_OUTPUT_DISPLAYLIST:Ljava/lang/String;
+Landroid/view/ViewDebug;->REMOTE_COMMAND_REQUEST_LAYOUT:Ljava/lang/String;
+Landroid/view/ViewDebug;->REMOTE_PROFILE:Ljava/lang/String;
+Landroid/view/ViewDebug;->requestLayout(Landroid/view/View;Ljava/lang/String;)V
+Landroid/view/ViewDebug;->resolveId(Landroid/content/Context;I)Ljava/lang/Object;
+Landroid/view/ViewDebug;->sAnnotations:Ljava/util/HashMap;
+Landroid/view/ViewDebug;->setLayoutParameter(Landroid/view/View;Ljava/lang/String;I)V
+Landroid/view/ViewDebug;->sFieldsForClasses:Ljava/util/HashMap;
+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;
+Landroid/view/ViewGroup$ChildListForAccessibility;->getChildCount()I
+Landroid/view/ViewGroup$ChildListForAccessibility;->init(Landroid/view/ViewGroup;Z)V
+Landroid/view/ViewGroup$ChildListForAccessibility;->MAX_POOL_SIZE:I
+Landroid/view/ViewGroup$ChildListForAccessibility;->mChildren:Ljava/util/ArrayList;
+Landroid/view/ViewGroup$ChildListForAccessibility;->mHolders:Ljava/util/ArrayList;
+Landroid/view/ViewGroup$ChildListForAccessibility;->obtain(Landroid/view/ViewGroup;Z)Landroid/view/ViewGroup$ChildListForAccessibility;
+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
+Landroid/view/ViewGroup$HoverTarget;->next:Landroid/view/ViewGroup$HoverTarget;
+Landroid/view/ViewGroup$HoverTarget;->obtain(Landroid/view/View;)Landroid/view/ViewGroup$HoverTarget;
+Landroid/view/ViewGroup$HoverTarget;->recycle()V
+Landroid/view/ViewGroup$HoverTarget;->sRecycleBin:Landroid/view/ViewGroup$HoverTarget;
+Landroid/view/ViewGroup$HoverTarget;->sRecycledCount:I
+Landroid/view/ViewGroup$HoverTarget;->sRecycleLock:Ljava/lang/Object;
+Landroid/view/ViewGroup$LayoutParams;->debug(Ljava/lang/String;)Ljava/lang/String;
+Landroid/view/ViewGroup$LayoutParams;->encode(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/view/ViewGroup$LayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/view/ViewGroup$LayoutParams;->onDebugDraw(Landroid/view/View;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+Landroid/view/ViewGroup$LayoutParams;->sizeToString(I)Ljava/lang/String;
+Landroid/view/ViewGroup$MarginLayoutParams;->copyMarginsFrom(Landroid/view/ViewGroup$MarginLayoutParams;)V
+Landroid/view/ViewGroup$MarginLayoutParams;->DEFAULT_MARGIN_RELATIVE:I
+Landroid/view/ViewGroup$MarginLayoutParams;->DEFAULT_MARGIN_RESOLVED:I
+Landroid/view/ViewGroup$MarginLayoutParams;->doResolveMargins()V
+Landroid/view/ViewGroup$MarginLayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/view/ViewGroup$MarginLayoutParams;->isLayoutRtl()Z
+Landroid/view/ViewGroup$MarginLayoutParams;->LAYOUT_DIRECTION_MASK:I
+Landroid/view/ViewGroup$MarginLayoutParams;->LEFT_MARGIN_UNDEFINED_MASK:I
+Landroid/view/ViewGroup$MarginLayoutParams;->mMarginFlags:B
+Landroid/view/ViewGroup$MarginLayoutParams;->NEED_RESOLUTION_MASK:I
+Landroid/view/ViewGroup$MarginLayoutParams;->onDebugDraw(Landroid/view/View;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+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;
+Landroid/view/ViewGroup$TouchTarget;->obtain(Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget;
+Landroid/view/ViewGroup$TouchTarget;->pointerIdBits:I
+Landroid/view/ViewGroup$TouchTarget;->recycle()V
+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
+Landroid/view/ViewGroup$ViewLocationHolder;->compareTo(Landroid/view/ViewGroup$ViewLocationHolder;)I
+Landroid/view/ViewGroup$ViewLocationHolder;->COMPARISON_STRATEGY_LOCATION:I
+Landroid/view/ViewGroup$ViewLocationHolder;->COMPARISON_STRATEGY_STRIPE:I
+Landroid/view/ViewGroup$ViewLocationHolder;->init(Landroid/view/ViewGroup;Landroid/view/View;)V
+Landroid/view/ViewGroup$ViewLocationHolder;->MAX_POOL_SIZE:I
+Landroid/view/ViewGroup$ViewLocationHolder;->mLayoutDirection:I
+Landroid/view/ViewGroup$ViewLocationHolder;->mLocation:Landroid/graphics/Rect;
+Landroid/view/ViewGroup$ViewLocationHolder;->mRoot:Landroid/view/ViewGroup;
+Landroid/view/ViewGroup$ViewLocationHolder;->mView:Landroid/view/View;
+Landroid/view/ViewGroup$ViewLocationHolder;->obtain(Landroid/view/ViewGroup;Landroid/view/View;)Landroid/view/ViewGroup$ViewLocationHolder;
+Landroid/view/ViewGroup$ViewLocationHolder;->recycle()V
+Landroid/view/ViewGroup$ViewLocationHolder;->sComparisonStrategy:I
+Landroid/view/ViewGroup$ViewLocationHolder;->setComparisonStrategy(I)V
+Landroid/view/ViewGroup$ViewLocationHolder;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/view/ViewGroup;->addDisappearingView(Landroid/view/View;)V
+Landroid/view/ViewGroup;->addInArray(Landroid/view/View;I)V
+Landroid/view/ViewGroup;->addTouchTarget(Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget;
+Landroid/view/ViewGroup;->addViewInner(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)V
+Landroid/view/ViewGroup;->ARRAY_CAPACITY_INCREMENT:I
+Landroid/view/ViewGroup;->ARRAY_INITIAL_CAPACITY:I
+Landroid/view/ViewGroup;->bindLayoutAnimation(Landroid/view/View;)V
+Landroid/view/ViewGroup;->buildOrderedChildList()Ljava/util/ArrayList;
+Landroid/view/ViewGroup;->buildTouchDispatchChildList()Ljava/util/ArrayList;
+Landroid/view/ViewGroup;->cancelAndClearTouchTargets(Landroid/view/MotionEvent;)V
+Landroid/view/ViewGroup;->cancelHoverTarget(Landroid/view/View;)V
+Landroid/view/ViewGroup;->canViewReceivePointerEvents(Landroid/view/View;)Z
+Landroid/view/ViewGroup;->captureTransitioningViews(Ljava/util/List;)V
+Landroid/view/ViewGroup;->CHILD_LEFT_INDEX:I
+Landroid/view/ViewGroup;->CHILD_TOP_INDEX:I
+Landroid/view/ViewGroup;->clearCachedLayoutMode()V
+Landroid/view/ViewGroup;->clearDefaultFocus(Landroid/view/View;)V
+Landroid/view/ViewGroup;->clearFocusedInCluster()V
+Landroid/view/ViewGroup;->clearFocusedInCluster(Landroid/view/View;)V
+Landroid/view/ViewGroup;->clearTouchTargets()V
+Landroid/view/ViewGroup;->computeOpticalInsets()Landroid/graphics/Insets;
+Landroid/view/ViewGroup;->createSnapshot(Landroid/view/ViewDebug$CanvasProvider;Z)Landroid/graphics/Bitmap;
+Landroid/view/ViewGroup;->decrementChildUnhandledKeyListeners()V
+Landroid/view/ViewGroup;->DESCENDANT_FOCUSABILITY_FLAGS:[I
+Landroid/view/ViewGroup;->destroyHardwareResources()V
+Landroid/view/ViewGroup;->dispatchActivityResult(Ljava/lang/String;IILandroid/content/Intent;)Z
+Landroid/view/ViewGroup;->dispatchCancelPendingInputEvents()V
+Landroid/view/ViewGroup;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V
+Landroid/view/ViewGroup;->dispatchDragEnterExitInPreN(Landroid/view/DragEvent;)Z
+Landroid/view/ViewGroup;->dispatchMovedToDisplay(Landroid/view/Display;Landroid/content/res/Configuration;)V
+Landroid/view/ViewGroup;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+Landroid/view/ViewGroup;->dispatchResolvePointerIcon(Landroid/view/MotionEvent;ILandroid/view/View;)Landroid/view/PointerIcon;
+Landroid/view/ViewGroup;->dispatchScreenStateChanged(I)V
+Landroid/view/ViewGroup;->dispatchTooltipHoverEvent(Landroid/view/MotionEvent;)Z
+Landroid/view/ViewGroup;->dispatchTooltipHoverEvent(Landroid/view/MotionEvent;Landroid/view/View;)Z
+Landroid/view/ViewGroup;->dispatchTransformedGenericPointerEvent(Landroid/view/MotionEvent;Landroid/view/View;)Z
+Landroid/view/ViewGroup;->dispatchTransformedTouchEvent(Landroid/view/MotionEvent;ZLandroid/view/View;I)Z
+Landroid/view/ViewGroup;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Landroid/view/View;
+Landroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z
+Landroid/view/ViewGroup;->drawCorner(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIII)V
+Landroid/view/ViewGroup;->drawRect(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIII)V
+Landroid/view/ViewGroup;->drawRectCorners(Landroid/graphics/Canvas;IIIILandroid/graphics/Paint;II)V
+Landroid/view/ViewGroup;->exitHoverTargets()V
+Landroid/view/ViewGroup;->exitTooltipHoverTargets()V
+Landroid/view/ViewGroup;->fillDifference(Landroid/graphics/Canvas;IIIIIIIILandroid/graphics/Paint;)V
+Landroid/view/ViewGroup;->fillRect(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIII)V
+Landroid/view/ViewGroup;->findChildWithAccessibilityFocus()Landroid/view/View;
+Landroid/view/ViewGroup;->findFrontmostDroppableChildAt(FFLandroid/graphics/PointF;)Landroid/view/View;
+Landroid/view/ViewGroup;->findNamedViews(Ljava/util/Map;)V
+Landroid/view/ViewGroup;->findViewByAccessibilityIdTraversal(I)Landroid/view/View;
+Landroid/view/ViewGroup;->findViewByAutofillIdTraversal(I)Landroid/view/View;
+Landroid/view/ViewGroup;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
+Landroid/view/ViewGroup;->findViewTraversal(I)Landroid/view/View;
+Landroid/view/ViewGroup;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
+Landroid/view/ViewGroup;->finishAnimatingView(Landroid/view/View;Landroid/view/animation/Animation;)V
+Landroid/view/ViewGroup;->FLAG_ADD_STATES_FROM_CHILDREN:I
+Landroid/view/ViewGroup;->FLAG_ALWAYS_DRAWN_WITH_CACHE:I
+Landroid/view/ViewGroup;->FLAG_ANIMATION_CACHE:I
+Landroid/view/ViewGroup;->FLAG_ANIMATION_DONE:I
+Landroid/view/ViewGroup;->FLAG_CHILDREN_DRAWN_WITH_CACHE:I
+Landroid/view/ViewGroup;->FLAG_CLEAR_TRANSFORMATION:I
+Landroid/view/ViewGroup;->FLAG_CLIP_CHILDREN:I
+Landroid/view/ViewGroup;->FLAG_CLIP_TO_PADDING:I
+Landroid/view/ViewGroup;->FLAG_INVALIDATE_REQUIRED:I
+Landroid/view/ViewGroup;->FLAG_IS_TRANSITION_GROUP:I
+Landroid/view/ViewGroup;->FLAG_IS_TRANSITION_GROUP_SET:I
+Landroid/view/ViewGroup;->FLAG_LAYOUT_MODE_WAS_EXPLICITLY_SET:I
+Landroid/view/ViewGroup;->FLAG_MASK_FOCUSABILITY:I
+Landroid/view/ViewGroup;->FLAG_NOTIFY_ANIMATION_LISTENER:I
+Landroid/view/ViewGroup;->FLAG_NOTIFY_CHILDREN_ON_DRAWABLE_STATE_CHANGE:I
+Landroid/view/ViewGroup;->FLAG_OPTIMIZE_INVALIDATE:I
+Landroid/view/ViewGroup;->FLAG_PADDING_NOT_NULL:I
+Landroid/view/ViewGroup;->FLAG_PREVENT_DISPATCH_ATTACHED_TO_WINDOW:I
+Landroid/view/ViewGroup;->FLAG_RUN_ANIMATION:I
+Landroid/view/ViewGroup;->FLAG_SHOW_CONTEXT_MENU_WITH_COORDS:I
+Landroid/view/ViewGroup;->FLAG_SPLIT_MOTION_EVENTS:I
+Landroid/view/ViewGroup;->FLAG_START_ACTION_MODE_FOR_CHILD_IS_NOT_TYPED:I
+Landroid/view/ViewGroup;->FLAG_START_ACTION_MODE_FOR_CHILD_IS_TYPED:I
+Landroid/view/ViewGroup;->FLAG_TOUCHSCREEN_BLOCKS_FOCUS:I
+Landroid/view/ViewGroup;->getAndVerifyPreorderedIndex(IIZ)I
+Landroid/view/ViewGroup;->getAndVerifyPreorderedView(Ljava/util/ArrayList;[Landroid/view/View;I)Landroid/view/View;
+Landroid/view/ViewGroup;->getChildrenForAutofill(I)Landroid/view/ViewGroup$ChildListForAutoFill;
+Landroid/view/ViewGroup;->getChildTransformation()Landroid/view/animation/Transformation;
+Landroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;Z)Z
+Landroid/view/ViewGroup;->getDeepestFocusedChild()Landroid/view/View;
+Landroid/view/ViewGroup;->getLocalPoint()Landroid/graphics/PointF;
+Landroid/view/ViewGroup;->getNumChildrenForAccessibility()I
+Landroid/view/ViewGroup;->getScrollIndicatorBounds(Landroid/graphics/Rect;)V
+Landroid/view/ViewGroup;->getTempPoint()[F
+Landroid/view/ViewGroup;->getTouchTarget(Landroid/view/View;)Landroid/view/ViewGroup$TouchTarget;
+Landroid/view/ViewGroup;->getTransformedMotionEvent(Landroid/view/MotionEvent;Landroid/view/View;)Landroid/view/MotionEvent;
+Landroid/view/ViewGroup;->getTransientViewIndex(I)I
+Landroid/view/ViewGroup;->handleFocusGainInternal(ILandroid/graphics/Rect;)V
+Landroid/view/ViewGroup;->hasBooleanFlag(I)Z
+Landroid/view/ViewGroup;->hasChildWithZ()Z
+Landroid/view/ViewGroup;->hasDefaultFocus()Z
+Landroid/view/ViewGroup;->hasFocusable(ZZ)Z
+Landroid/view/ViewGroup;->hasFocusableChild(Z)Z
+Landroid/view/ViewGroup;->hasHoveredChild()Z
+Landroid/view/ViewGroup;->hasUnhandledKeyListener()Z
+Landroid/view/ViewGroup;->incrementChildUnhandledKeyListeners()V
+Landroid/view/ViewGroup;->initFromAttributes(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/view/ViewGroup;->initViewGroup()V
+Landroid/view/ViewGroup;->internalSetPadding(IIII)V
+Landroid/view/ViewGroup;->invalidateInheritedLayoutMode(I)V
+Landroid/view/ViewGroup;->isLayoutModeOptical()Z
+Landroid/view/ViewGroup;->isLayoutSuppressed()Z
+Landroid/view/ViewGroup;->isShowingContextMenuWithCoords()Z
+Landroid/view/ViewGroup;->isViewTransitioning(Landroid/view/View;)Z
+Landroid/view/ViewGroup;->LAYOUT_MODE_DEFAULT:I
+Landroid/view/ViewGroup;->LAYOUT_MODE_UNDEFINED:I
+Landroid/view/ViewGroup;->mAnimationListener:Landroid/view/animation/Animation$AnimationListener;
+Landroid/view/ViewGroup;->mCachePaint:Landroid/graphics/Paint;
+Landroid/view/ViewGroup;->mChildCountWithTransientState:I
+Landroid/view/ViewGroup;->mChildrenInterestedInDrag:Ljava/util/HashSet;
+Landroid/view/ViewGroup;->mChildTransformation:Landroid/view/animation/Transformation;
+Landroid/view/ViewGroup;->mChildUnhandledKeyListeners:I
+Landroid/view/ViewGroup;->mCurrentDragChild:Landroid/view/View;
+Landroid/view/ViewGroup;->mCurrentDragStartEvent:Landroid/view/DragEvent;
+Landroid/view/ViewGroup;->mDefaultFocus:Landroid/view/View;
+Landroid/view/ViewGroup;->mFirstHoverTarget:Landroid/view/ViewGroup$HoverTarget;
+Landroid/view/ViewGroup;->mFocusedInCluster:Landroid/view/View;
+Landroid/view/ViewGroup;->mHoveredSelf:Z
+Landroid/view/ViewGroup;->mInvalidateRegion:Landroid/graphics/RectF;
+Landroid/view/ViewGroup;->mInvalidationTransformation:Landroid/view/animation/Transformation;
+Landroid/view/ViewGroup;->mIsInterestedInDrag:Z
+Landroid/view/ViewGroup;->mLastTouchDownIndex:I
+Landroid/view/ViewGroup;->mLastTouchDownTime:J
+Landroid/view/ViewGroup;->mLastTouchDownX:F
+Landroid/view/ViewGroup;->mLastTouchDownY:F
+Landroid/view/ViewGroup;->mLayoutAnimationController:Landroid/view/animation/LayoutAnimationController;
+Landroid/view/ViewGroup;->mLayoutCalledWhileSuppressed:Z
+Landroid/view/ViewGroup;->mLayoutMode:I
+Landroid/view/ViewGroup;->mLayoutTransitionListener:Landroid/animation/LayoutTransition$TransitionListener;
+Landroid/view/ViewGroup;->mLocalPoint:Landroid/graphics/PointF;
+Landroid/view/ViewGroup;->mNestedScrollAxes:I
+Landroid/view/ViewGroup;->mPreSortedChildren:Ljava/util/ArrayList;
+Landroid/view/ViewGroup;->mSuppressLayout:Z
+Landroid/view/ViewGroup;->mTempPoint:[F
+Landroid/view/ViewGroup;->mTooltipHoveredSelf:Z
+Landroid/view/ViewGroup;->mTooltipHoverTarget:Landroid/view/View;
+Landroid/view/ViewGroup;->mTransientIndices:Ljava/util/List;
+Landroid/view/ViewGroup;->mTransientViews:Ljava/util/List;
+Landroid/view/ViewGroup;->mTransition:Landroid/animation/LayoutTransition;
+Landroid/view/ViewGroup;->mTransitioningViews:Ljava/util/ArrayList;
+Landroid/view/ViewGroup;->mVisibilityChangingChildren:Ljava/util/ArrayList;
+Landroid/view/ViewGroup;->notifyAnimationListener()V
+Landroid/view/ViewGroup;->notifyChildOfDragStart(Landroid/view/View;)Z
+Landroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V
+Landroid/view/ViewGroup;->obtainMotionEventNoHistoryOrSelf(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
+Landroid/view/ViewGroup;->offsetRectBetweenParentAndChild(Landroid/view/View;Landroid/graphics/Rect;ZZ)V
+Landroid/view/ViewGroup;->onDebugDraw(Landroid/graphics/Canvas;)V
+Landroid/view/ViewGroup;->onDebugDrawMargins(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+Landroid/view/ViewGroup;->onRequestSendAccessibilityEventInternal(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z
+Landroid/view/ViewGroup;->onSetLayoutParams(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+Landroid/view/ViewGroup;->populateChildrenForAutofill(Ljava/util/ArrayList;I)V
+Landroid/view/ViewGroup;->recreateChildDisplayList(Landroid/view/View;)V
+Landroid/view/ViewGroup;->removeFromArray(I)V
+Landroid/view/ViewGroup;->removeFromArray(II)V
+Landroid/view/ViewGroup;->removePointersFromTouchTargets(I)V
+Landroid/view/ViewGroup;->removeViewInternal(ILandroid/view/View;)V
+Landroid/view/ViewGroup;->removeViewInternal(Landroid/view/View;)Z
+Landroid/view/ViewGroup;->removeViewsInternal(II)V
+Landroid/view/ViewGroup;->requestTransitionStart(Landroid/animation/LayoutTransition;)V
+Landroid/view/ViewGroup;->resetCancelNextUpFlag(Landroid/view/View;)Z
+Landroid/view/ViewGroup;->resetSubtreeAccessibilityStateChanged()V
+Landroid/view/ViewGroup;->resetTouchState()V
+Landroid/view/ViewGroup;->resolveDrawables()V
+Landroid/view/ViewGroup;->resolveLayoutDirection()Z
+Landroid/view/ViewGroup;->resolveLayoutParams()V
+Landroid/view/ViewGroup;->resolveRtlPropertiesIfNeeded()Z
+Landroid/view/ViewGroup;->resolveTextAlignment()Z
+Landroid/view/ViewGroup;->resolveTextDirection()Z
+Landroid/view/ViewGroup;->restoreFocusInClusterInternal(I)Z
+Landroid/view/ViewGroup;->sDebugLines:[F
+Landroid/view/ViewGroup;->SENTINEL_ACTION_MODE:Landroid/view/ActionMode;
+Landroid/view/ViewGroup;->setBooleanFlag(IZ)V
+Landroid/view/ViewGroup;->setDefaultFocus(Landroid/view/View;)V
+Landroid/view/ViewGroup;->setLayoutMode(IZ)V
+Landroid/view/ViewGroup;->setTouchscreenBlocksFocusNoRefocus(Z)V
+Landroid/view/ViewGroup;->shouldBlockFocusForTouchscreen()Z
+Landroid/view/ViewGroup;->sign(I)I
+Landroid/view/ViewGroup;->TAG:Ljava/lang/String;
+Landroid/view/ViewGroup;->touchAccessibilityNodeProviderIfNeeded(Landroid/view/View;)V
+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
+Landroid/view/ViewHierarchyEncoder;->beginObject(Ljava/lang/Object;)V
+Landroid/view/ViewHierarchyEncoder;->createPropertyIndex(Ljava/lang/String;)S
+Landroid/view/ViewHierarchyEncoder;->endObject()V
+Landroid/view/ViewHierarchyEncoder;->endPropertyMap()V
+Landroid/view/ViewHierarchyEncoder;->endStream()V
+Landroid/view/ViewHierarchyEncoder;->mCharset:Ljava/nio/charset/Charset;
+Landroid/view/ViewHierarchyEncoder;->mPropertyId:S
+Landroid/view/ViewHierarchyEncoder;->mPropertyNames:Ljava/util/Map;
+Landroid/view/ViewHierarchyEncoder;->mStream:Ljava/io/DataOutputStream;
+Landroid/view/ViewHierarchyEncoder;->SIG_BOOLEAN:B
+Landroid/view/ViewHierarchyEncoder;->SIG_BYTE:B
+Landroid/view/ViewHierarchyEncoder;->SIG_DOUBLE:B
+Landroid/view/ViewHierarchyEncoder;->SIG_END_MAP:S
+Landroid/view/ViewHierarchyEncoder;->SIG_FLOAT:B
+Landroid/view/ViewHierarchyEncoder;->SIG_INT:B
+Landroid/view/ViewHierarchyEncoder;->SIG_LONG:B
+Landroid/view/ViewHierarchyEncoder;->SIG_MAP:B
+Landroid/view/ViewHierarchyEncoder;->SIG_SHORT:B
+Landroid/view/ViewHierarchyEncoder;->SIG_STRING:B
+Landroid/view/ViewHierarchyEncoder;->startPropertyMap()V
+Landroid/view/ViewHierarchyEncoder;->writeBoolean(Z)V
+Landroid/view/ViewHierarchyEncoder;->writeFloat(F)V
+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
+Landroid/view/ViewOverlay$OverlayViewGroup;->clear()V
+Landroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Z)V
+Landroid/view/ViewOverlay$OverlayViewGroup;->invalidateParentCaches()V
+Landroid/view/ViewOverlay$OverlayViewGroup;->invalidateParentIfNeeded()V
+Landroid/view/ViewOverlay$OverlayViewGroup;->invalidateViewProperty(ZZ)V
+Landroid/view/ViewOverlay$OverlayViewGroup;->isEmpty()Z
+Landroid/view/ViewOverlay$OverlayViewGroup;->mDrawables:Ljava/util/ArrayList;
+Landroid/view/ViewOverlay$OverlayViewGroup;->mHostView:Landroid/view/View;
+Landroid/view/ViewOverlay$OverlayViewGroup;->remove(Landroid/graphics/drawable/Drawable;)V
+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;
+Landroid/view/ViewPropertyAnimator$PropertyBundle;->mPropertyMask:I
+Landroid/view/ViewPropertyAnimator;-><init>(Landroid/view/View;)V
+Landroid/view/ViewPropertyAnimator;->ALPHA:I
+Landroid/view/ViewPropertyAnimator;->animateProperty(IF)V
+Landroid/view/ViewPropertyAnimator;->animatePropertyBy(IF)V
+Landroid/view/ViewPropertyAnimator;->animatePropertyBy(IFF)V
+Landroid/view/ViewPropertyAnimator;->getListener()Landroid/animation/Animator$AnimatorListener;
+Landroid/view/ViewPropertyAnimator;->getUpdateListener()Landroid/animation/ValueAnimator$AnimatorUpdateListener;
+Landroid/view/ViewPropertyAnimator;->getValue(I)F
+Landroid/view/ViewPropertyAnimator;->hasActions()Z
+Landroid/view/ViewPropertyAnimator;->mAnimationStarter:Ljava/lang/Runnable;
+Landroid/view/ViewPropertyAnimator;->mAnimatorCleanupMap:Ljava/util/HashMap;
+Landroid/view/ViewPropertyAnimator;->mAnimatorEventListener:Landroid/view/ViewPropertyAnimator$AnimatorEventListener;
+Landroid/view/ViewPropertyAnimator;->mAnimatorMap:Ljava/util/HashMap;
+Landroid/view/ViewPropertyAnimator;->mAnimatorOnEndMap:Ljava/util/HashMap;
+Landroid/view/ViewPropertyAnimator;->mAnimatorOnStartMap:Ljava/util/HashMap;
+Landroid/view/ViewPropertyAnimator;->mAnimatorSetupMap:Ljava/util/HashMap;
+Landroid/view/ViewPropertyAnimator;->mDuration:J
+Landroid/view/ViewPropertyAnimator;->mDurationSet:Z
+Landroid/view/ViewPropertyAnimator;->mInterpolator:Landroid/animation/TimeInterpolator;
+Landroid/view/ViewPropertyAnimator;->mInterpolatorSet:Z
+Landroid/view/ViewPropertyAnimator;->mListener:Landroid/animation/Animator$AnimatorListener;
+Landroid/view/ViewPropertyAnimator;->mPendingAnimations:Ljava/util/ArrayList;
+Landroid/view/ViewPropertyAnimator;->mPendingCleanupAction:Ljava/lang/Runnable;
+Landroid/view/ViewPropertyAnimator;->mPendingOnEndAction:Ljava/lang/Runnable;
+Landroid/view/ViewPropertyAnimator;->mPendingOnStartAction:Ljava/lang/Runnable;
+Landroid/view/ViewPropertyAnimator;->mPendingSetupAction:Ljava/lang/Runnable;
+Landroid/view/ViewPropertyAnimator;->mStartDelay:J
+Landroid/view/ViewPropertyAnimator;->mStartDelaySet:Z
+Landroid/view/ViewPropertyAnimator;->mTempValueAnimator:Landroid/animation/ValueAnimator;
+Landroid/view/ViewPropertyAnimator;->mUpdateListener:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
+Landroid/view/ViewPropertyAnimator;->mView:Landroid/view/View;
+Landroid/view/ViewPropertyAnimator;->NONE:I
+Landroid/view/ViewPropertyAnimator;->ROTATION:I
+Landroid/view/ViewPropertyAnimator;->ROTATION_X:I
+Landroid/view/ViewPropertyAnimator;->ROTATION_Y:I
+Landroid/view/ViewPropertyAnimator;->SCALE_X:I
+Landroid/view/ViewPropertyAnimator;->SCALE_Y:I
+Landroid/view/ViewPropertyAnimator;->setValue(IF)V
+Landroid/view/ViewPropertyAnimator;->startAnimation()V
+Landroid/view/ViewPropertyAnimator;->TRANSFORM_MASK:I
+Landroid/view/ViewPropertyAnimator;->TRANSLATION_X:I
+Landroid/view/ViewPropertyAnimator;->TRANSLATION_Y:I
+Landroid/view/ViewPropertyAnimator;->TRANSLATION_Z:I
+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
+Landroid/view/ViewPropertyAnimatorRT;->canHandleAnimator(Landroid/view/ViewPropertyAnimator;)Z
+Landroid/view/ViewPropertyAnimatorRT;->doStartAnimation(Landroid/view/ViewPropertyAnimator;)V
+Landroid/view/ViewPropertyAnimatorRT;->mAnimators:[Landroid/view/RenderNodeAnimator;
+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
+Landroid/view/ViewProtoEnums;->DISPLAY_STATE_OFF:I
+Landroid/view/ViewProtoEnums;->DISPLAY_STATE_ON:I
+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
+Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;->findAccessibilityNodeInfosByViewId(JLjava/lang/String;Landroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;->findFocus(JILandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
+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
+Landroid/view/ViewRootImpl$AsyncInputStage;->dequeue(Landroid/view/ViewRootImpl$QueuedInputEvent;Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+Landroid/view/ViewRootImpl$AsyncInputStage;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+Landroid/view/ViewRootImpl$AsyncInputStage;->enqueue(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+Landroid/view/ViewRootImpl$AsyncInputStage;->forward(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+Landroid/view/ViewRootImpl$AsyncInputStage;->mQueueHead:Landroid/view/ViewRootImpl$QueuedInputEvent;
+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
+Landroid/view/ViewRootImpl$InputStage;->finish(Landroid/view/ViewRootImpl$QueuedInputEvent;Z)V
+Landroid/view/ViewRootImpl$InputStage;->FINISH_HANDLED:I
+Landroid/view/ViewRootImpl$InputStage;->FINISH_NOT_HANDLED:I
+Landroid/view/ViewRootImpl$InputStage;->forward(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+Landroid/view/ViewRootImpl$InputStage;->FORWARD:I
+Landroid/view/ViewRootImpl$InputStage;->isBack(Landroid/view/InputEvent;)Z
+Landroid/view/ViewRootImpl$InputStage;->mNext:Landroid/view/ViewRootImpl$InputStage;
+Landroid/view/ViewRootImpl$InputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+Landroid/view/ViewRootImpl$InputStage;->onDetachedFromWindow()V
+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
+Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->mTempViewRects:[Landroid/view/View$AttachInfo$InvalidateInfo;
+Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->mTempViews:[Landroid/view/View;
+Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->mViewRects:Ljava/util/ArrayList;
+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
+Landroid/view/ViewRootImpl$QueuedInputEvent;->FLAG_DELIVER_POST_IME:I
+Landroid/view/ViewRootImpl$QueuedInputEvent;->FLAG_FINISHED:I
+Landroid/view/ViewRootImpl$QueuedInputEvent;->FLAG_FINISHED_HANDLED:I
+Landroid/view/ViewRootImpl$QueuedInputEvent;->FLAG_RESYNTHESIZED:I
+Landroid/view/ViewRootImpl$QueuedInputEvent;->FLAG_UNHANDLED:I
+Landroid/view/ViewRootImpl$QueuedInputEvent;->mEvent:Landroid/view/InputEvent;
+Landroid/view/ViewRootImpl$QueuedInputEvent;->mFlags:I
+Landroid/view/ViewRootImpl$QueuedInputEvent;->mNext:Landroid/view/ViewRootImpl$QueuedInputEvent;
+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;
+Landroid/view/ViewRootImpl$SyntheticInputStage;->mTrackball:Landroid/view/ViewRootImpl$SyntheticTrackballHandler;
+Landroid/view/ViewRootImpl$SyntheticInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+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
+Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->joystickAxisValueToState(F)I
+Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->mAxisStatesHat:[I
+Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->mAxisStatesStick:[I
+Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->resetState()V
+Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->STATE_DOWN_OR_RIGHT:I
+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;
+Landroid/view/ViewRootImpl$SyntheticJoystickHandler;->MSG_ENQUEUE_X_AXIS_KEY_REPEAT:I
+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
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->consumeAccumulatedMovement(JIFII)F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->DEFAULT_HEIGHT_MILLIMETERS:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->DEFAULT_WIDTH_MILLIMETERS:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->finishKeys(J)V
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->finishTracking(J)V
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->FLING_TICK_DECAY:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->LOCAL_DEBUG:Z
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->LOCAL_TAG:Ljava/lang/String;
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mAccumulatedX:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mAccumulatedY:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mActivePointerId:I
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->MAX_FLING_VELOCITY_TICKS_PER_SECOND:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mConfigMaxFlingVelocity:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mConfigMinFlingVelocity:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mConfigTickDistance:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mConsumedMovement:Z
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mCurrentDeviceId:I
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mCurrentDeviceSupported:Z
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mCurrentSource:I
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mFlinging:Z
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mFlingRunnable:Ljava/lang/Runnable;
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mFlingVelocity:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->MIN_FLING_VELOCITY_TICKS_PER_SECOND:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mLastX:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mLastY:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mPendingKeyCode:I
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mPendingKeyDownTime:J
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mPendingKeyMetaState:I
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mPendingKeyRepeatCount:I
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mStartX:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mStartY:F
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->mVelocityTracker:Landroid/view/VelocityTracker;
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->postFling(J)Z
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->process(Landroid/view/MotionEvent;)V
+Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->sendKeyDownOrRepeat(JII)V
+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
+Landroid/view/ViewRootImpl$TrackballAxis;->collect(FJLjava/lang/String;)F
+Landroid/view/ViewRootImpl$TrackballAxis;->dir:I
+Landroid/view/ViewRootImpl$TrackballAxis;->FAST_MOVE_TIME:J
+Landroid/view/ViewRootImpl$TrackballAxis;->FIRST_MOVEMENT_THRESHOLD:F
+Landroid/view/ViewRootImpl$TrackballAxis;->generate()I
+Landroid/view/ViewRootImpl$TrackballAxis;->lastMoveTime:J
+Landroid/view/ViewRootImpl$TrackballAxis;->MAX_ACCELERATION:F
+Landroid/view/ViewRootImpl$TrackballAxis;->nonAccelMovement:I
+Landroid/view/ViewRootImpl$TrackballAxis;->position:F
+Landroid/view/ViewRootImpl$TrackballAxis;->reset(I)V
+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;
+Landroid/view/ViewRootImpl$UnhandledKeyManager;->mCurrentReceiver:Ljava/lang/ref/WeakReference;
+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
+Landroid/view/ViewRootImpl$ViewPostImeInputStage;->performFocusNavigation(Landroid/view/KeyEvent;)Z
+Landroid/view/ViewRootImpl$ViewPostImeInputStage;->performKeyboardGroupNavigation(I)Z
+Landroid/view/ViewRootImpl$ViewPostImeInputStage;->processGenericMotionEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+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
+Landroid/view/ViewRootImpl$W;->dispatchAppVisibility(Z)V
+Landroid/view/ViewRootImpl$W;->dispatchDragEvent(Landroid/view/DragEvent;)V
+Landroid/view/ViewRootImpl$W;->dispatchGetNewSurface()V
+Landroid/view/ViewRootImpl$W;->dispatchPointerCaptureChanged(Z)V
+Landroid/view/ViewRootImpl$W;->dispatchSystemUiVisibilityChanged(IIII)V
+Landroid/view/ViewRootImpl$W;->dispatchWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)V
+Landroid/view/ViewRootImpl$W;->dispatchWallpaperOffsets(FFFFZ)V
+Landroid/view/ViewRootImpl$W;->dispatchWindowShown()V
+Landroid/view/ViewRootImpl$W;->executeCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelFileDescriptor;)V
+Landroid/view/ViewRootImpl$W;->moved(II)V
+Landroid/view/ViewRootImpl$W;->mViewAncestor:Ljava/lang/ref/WeakReference;
+Landroid/view/ViewRootImpl$W;->mWindowSession:Landroid/view/IWindowSession;
+Landroid/view/ViewRootImpl$W;->requestAppKeyboardShortcuts(Lcom/android/internal/os/IResultReceiver;I)V
+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
+Landroid/view/ViewRootImpl;->addWindowStoppedCallback(Landroid/view/ViewRootImpl$WindowStoppedCallback;)V
+Landroid/view/ViewRootImpl;->adjustInputEventForCompatibility(Landroid/view/InputEvent;)V
+Landroid/view/ViewRootImpl;->applyKeepScreenOnFlag(Landroid/view/WindowManager$LayoutParams;)V
+Landroid/view/ViewRootImpl;->changeCanvasOpacity(Z)V
+Landroid/view/ViewRootImpl;->checkForLeavingTouchModeAndConsume(Landroid/view/KeyEvent;)Z
+Landroid/view/ViewRootImpl;->checkThread()V
+Landroid/view/ViewRootImpl;->collectViewAttributes()Z
+Landroid/view/ViewRootImpl;->DBG:Z
+Landroid/view/ViewRootImpl;->debug()V
+Landroid/view/ViewRootImpl;->DEBUG_CONFIGURATION:Z
+Landroid/view/ViewRootImpl;->DEBUG_DIALOG:Z
+Landroid/view/ViewRootImpl;->DEBUG_DRAW:Z
+Landroid/view/ViewRootImpl;->DEBUG_FPS:Z
+Landroid/view/ViewRootImpl;->DEBUG_IMF:Z
+Landroid/view/ViewRootImpl;->DEBUG_INPUT_RESIZE:Z
+Landroid/view/ViewRootImpl;->DEBUG_INPUT_STAGES:Z
+Landroid/view/ViewRootImpl;->DEBUG_KEEP_SCREEN_ON:Z
+Landroid/view/ViewRootImpl;->DEBUG_LAYOUT:Z
+Landroid/view/ViewRootImpl;->DEBUG_ORIENTATION:Z
+Landroid/view/ViewRootImpl;->DEBUG_TRACKBALL:Z
+Landroid/view/ViewRootImpl;->deliverInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+Landroid/view/ViewRootImpl;->destroyHardwareRenderer()V
+Landroid/view/ViewRootImpl;->destroyHardwareResources()V
+Landroid/view/ViewRootImpl;->die(Z)Z
+Landroid/view/ViewRootImpl;->dipToPx(I)I
+Landroid/view/ViewRootImpl;->dispatchApplyInsets(Landroid/view/View;)V
+Landroid/view/ViewRootImpl;->dispatchAppVisibility(Z)V
+Landroid/view/ViewRootImpl;->dispatchCheckFocus()V
+Landroid/view/ViewRootImpl;->dispatchCloseSystemDialogs(Ljava/lang/String;)V
+Landroid/view/ViewRootImpl;->dispatchDetachedFromWindow()V
+Landroid/view/ViewRootImpl;->dispatchDragEvent(Landroid/view/DragEvent;)V
+Landroid/view/ViewRootImpl;->dispatchGetNewSurface()V
+Landroid/view/ViewRootImpl;->dispatchInvalidateDelayed(Landroid/view/View;J)V
+Landroid/view/ViewRootImpl;->dispatchInvalidateOnAnimation(Landroid/view/View;)V
+Landroid/view/ViewRootImpl;->dispatchInvalidateRectDelayed(Landroid/view/View$AttachInfo$InvalidateInfo;J)V
+Landroid/view/ViewRootImpl;->dispatchInvalidateRectOnAnimation(Landroid/view/View$AttachInfo$InvalidateInfo;)V
+Landroid/view/ViewRootImpl;->dispatchKeyFromAutofill(Landroid/view/KeyEvent;)V
+Landroid/view/ViewRootImpl;->dispatchMoved(II)V
+Landroid/view/ViewRootImpl;->dispatchPointerCaptureChanged(Z)V
+Landroid/view/ViewRootImpl;->dispatchRequestKeyboardShortcuts(Lcom/android/internal/os/IResultReceiver;I)V
+Landroid/view/ViewRootImpl;->dispatchSystemUiVisibilityChanged(IIII)V
+Landroid/view/ViewRootImpl;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Z
+Landroid/view/ViewRootImpl;->dispatchWindowShown()V
+Landroid/view/ViewRootImpl;->doConsumeBatchedInput(J)V
+Landroid/view/ViewRootImpl;->doDie()V
+Landroid/view/ViewRootImpl;->doProcessInputEvents()V
+Landroid/view/ViewRootImpl;->doTraversal()V
+Landroid/view/ViewRootImpl;->draw(Z)Z
+Landroid/view/ViewRootImpl;->drawAccessibilityFocusedDrawableIfNeeded(Landroid/graphics/Canvas;)V
+Landroid/view/ViewRootImpl;->drawPending()V
+Landroid/view/ViewRootImpl;->drawSoftware(Landroid/view/Surface;Landroid/view/View$AttachInfo;IIZLandroid/graphics/Rect;Landroid/graphics/Rect;)Z
+Landroid/view/ViewRootImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+Landroid/view/ViewRootImpl;->dumpGfxInfo([I)V
+Landroid/view/ViewRootImpl;->dumpViewHierarchy(Ljava/lang/String;Ljava/io/PrintWriter;Landroid/view/View;)V
+Landroid/view/ViewRootImpl;->endDragResizing()V
+Landroid/view/ViewRootImpl;->ensureInsetsNonNegative(Landroid/graphics/Rect;Ljava/lang/String;)Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->ensureTouchModeLocally(Z)Z
+Landroid/view/ViewRootImpl;->enterTouchMode()Z
+Landroid/view/ViewRootImpl;->findAncestorToTakeFocusInTouchMode(Landroid/view/View;)Landroid/view/ViewGroup;
+Landroid/view/ViewRootImpl;->findFocusedVirtualNode(Landroid/view/accessibility/AccessibilityNodeProvider;)Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/ViewRootImpl;->finishInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+Landroid/view/ViewRootImpl;->fireAccessibilityFocusEventIfHasFocusedNode()V
+Landroid/view/ViewRootImpl;->forceLayout(Landroid/view/View;)V
+Landroid/view/ViewRootImpl;->getAccessibilityFocusedDrawable()Landroid/graphics/drawable/Drawable;
+Landroid/view/ViewRootImpl;->getAccessibilityFocusedRect(Landroid/graphics/Rect;)Z
+Landroid/view/ViewRootImpl;->getAccessibilityInteractionController()Landroid/view/AccessibilityInteractionController;
+Landroid/view/ViewRootImpl;->getAudioManager()Landroid/media/AudioManager;
+Landroid/view/ViewRootImpl;->getAutofillManager()Landroid/view/autofill/AutofillManager;
+Landroid/view/ViewRootImpl;->getCommonPredecessor(Landroid/view/View;Landroid/view/View;)Landroid/view/View;
+Landroid/view/ViewRootImpl;->getDisplayId()I
+Landroid/view/ViewRootImpl;->getGfxInfo(Landroid/view/View;[I)V
+Landroid/view/ViewRootImpl;->getHeight()I
+Landroid/view/ViewRootImpl;->getHostVisibility()I
+Landroid/view/ViewRootImpl;->getImpliedSystemUiVisibility(Landroid/view/WindowManager$LayoutParams;)I
+Landroid/view/ViewRootImpl;->getLastTouchSource()I
+Landroid/view/ViewRootImpl;->getLocation()Landroid/view/WindowLeaked;
+Landroid/view/ViewRootImpl;->getRootMeasureSpec(II)I
+Landroid/view/ViewRootImpl;->getRunQueue()Landroid/view/HandlerActionQueue;
+Landroid/view/ViewRootImpl;->getTitle()Ljava/lang/CharSequence;
+Landroid/view/ViewRootImpl;->getValidLayoutRequesters(Ljava/util/ArrayList;Z)Ljava/util/ArrayList;
+Landroid/view/ViewRootImpl;->getWidth()I
+Landroid/view/ViewRootImpl;->getWindowInsets(Z)Landroid/view/WindowInsets;
+Landroid/view/ViewRootImpl;->handleAppVisibility(Z)V
+Landroid/view/ViewRootImpl;->handleDispatchSystemUiVisibilityChanged(Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;)V
+Landroid/view/ViewRootImpl;->handleDispatchWindowShown()V
+Landroid/view/ViewRootImpl;->handleDragEvent(Landroid/view/DragEvent;)V
+Landroid/view/ViewRootImpl;->handleGetNewSurface()V
+Landroid/view/ViewRootImpl;->handleOutOfResourcesException(Landroid/view/Surface$OutOfResourcesException;)V
+Landroid/view/ViewRootImpl;->handlePointerCaptureChanged(Z)V
+Landroid/view/ViewRootImpl;->handleRequestKeyboardShortcuts(Lcom/android/internal/os/IResultReceiver;I)V
+Landroid/view/ViewRootImpl;->handleWindowContentChangedEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/view/ViewRootImpl;->handleWindowFocusChanged()V
+Landroid/view/ViewRootImpl;->hasPointerCapture()Z
+Landroid/view/ViewRootImpl;->invalidateRectOnScreen(Landroid/graphics/Rect;)V
+Landroid/view/ViewRootImpl;->invalidateWorld(Landroid/view/View;)V
+Landroid/view/ViewRootImpl;->isAutofillUiShowing()Z
+Landroid/view/ViewRootImpl;->isInLayout()Z
+Landroid/view/ViewRootImpl;->isInLocalFocusMode()Z
+Landroid/view/ViewRootImpl;->isInTouchMode()Z
+Landroid/view/ViewRootImpl;->isNavigationKey(Landroid/view/KeyEvent;)Z
+Landroid/view/ViewRootImpl;->isTerminalInputEvent(Landroid/view/InputEvent;)Z
+Landroid/view/ViewRootImpl;->isTypingKey(Landroid/view/KeyEvent;)Z
+Landroid/view/ViewRootImpl;->isViewDescendantOf(Landroid/view/View;Landroid/view/View;)Z
+Landroid/view/ViewRootImpl;->leaveTouchMode()Z
+Landroid/view/ViewRootImpl;->loadSystemProperties()V
+Landroid/view/ViewRootImpl;->LOCAL_LOGV:Z
+Landroid/view/ViewRootImpl;->mAccessibilityFocusedHost:Landroid/view/View;
+Landroid/view/ViewRootImpl;->mAccessibilityFocusedVirtualView:Landroid/view/accessibility/AccessibilityNodeInfo;
+Landroid/view/ViewRootImpl;->mAccessibilityInteractionConnectionManager:Landroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;
+Landroid/view/ViewRootImpl;->mAccessibilityInteractionController:Landroid/view/AccessibilityInteractionController;
+Landroid/view/ViewRootImpl;->mAccessibilityManager:Landroid/view/accessibility/AccessibilityManager;
+Landroid/view/ViewRootImpl;->mActivityConfigCallback:Landroid/view/ViewRootImpl$ActivityConfigCallback;
+Landroid/view/ViewRootImpl;->mActivityRelaunched:Z
+Landroid/view/ViewRootImpl;->mAddedTouchMode:Z
+Landroid/view/ViewRootImpl;->mApplyInsetsRequested:Z
+Landroid/view/ViewRootImpl;->mAppVisibilityChanged:Z
+Landroid/view/ViewRootImpl;->mAppVisible:Z
+Landroid/view/ViewRootImpl;->mAudioManager:Landroid/media/AudioManager;
+Landroid/view/ViewRootImpl;->MAX_QUEUED_INPUT_EVENT_POOL_SIZE:I
+Landroid/view/ViewRootImpl;->MAX_TRACKBALL_DELAY:I
+Landroid/view/ViewRootImpl;->maybeHandleWindowMove(Landroid/graphics/Rect;)V
+Landroid/view/ViewRootImpl;->maybeUpdateTooltip(Landroid/view/MotionEvent;)V
+Landroid/view/ViewRootImpl;->mBasePackageName:Ljava/lang/String;
+Landroid/view/ViewRootImpl;->mCanvasOffsetX:I
+Landroid/view/ViewRootImpl;->mCanvasOffsetY:I
+Landroid/view/ViewRootImpl;->mChoreographer:Landroid/view/Choreographer;
+Landroid/view/ViewRootImpl;->mClientWindowLayoutFlags:I
+Landroid/view/ViewRootImpl;->mConsumeBatchedInputImmediatelyRunnable:Landroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable;
+Landroid/view/ViewRootImpl;->mConsumeBatchedInputImmediatelyScheduled:Z
+Landroid/view/ViewRootImpl;->mConsumeBatchedInputScheduled:Z
+Landroid/view/ViewRootImpl;->mConsumedBatchedInputRunnable:Landroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;
+Landroid/view/ViewRootImpl;->mCurrentDragView:Landroid/view/View;
+Landroid/view/ViewRootImpl;->mCurScrollY:I
+Landroid/view/ViewRootImpl;->mCustomPointerIcon:Landroid/view/PointerIcon;
+Landroid/view/ViewRootImpl;->mDensity:I
+Landroid/view/ViewRootImpl;->mDispatchContentInsets:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mDispatchDisplayCutout:Landroid/view/DisplayCutout;
+Landroid/view/ViewRootImpl;->mDispatchStableInsets:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mDisplay:Landroid/view/Display;
+Landroid/view/ViewRootImpl;->mDisplayListener:Landroid/hardware/display/DisplayManager$DisplayListener;
+Landroid/view/ViewRootImpl;->mDisplayManager:Landroid/hardware/display/DisplayManager;
+Landroid/view/ViewRootImpl;->mDragDescription:Landroid/content/ClipDescription;
+Landroid/view/ViewRootImpl;->mDragPoint:Landroid/graphics/PointF;
+Landroid/view/ViewRootImpl;->mDragResizing:Z
+Landroid/view/ViewRootImpl;->mDrawingAllowed:Z
+Landroid/view/ViewRootImpl;->mDrawsNeededToReport:I
+Landroid/view/ViewRootImpl;->measureHierarchy(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/content/res/Resources;II)Z
+Landroid/view/ViewRootImpl;->mFirst:Z
+Landroid/view/ViewRootImpl;->mFirstInputStage:Landroid/view/ViewRootImpl$InputStage;
+Landroid/view/ViewRootImpl;->mFirstPostImeInputStage:Landroid/view/ViewRootImpl$InputStage;
+Landroid/view/ViewRootImpl;->mForceDecorViewVisibility:Z
+Landroid/view/ViewRootImpl;->mForceNextConfigUpdate:Z
+Landroid/view/ViewRootImpl;->mForceNextWindowRelayout:Z
+Landroid/view/ViewRootImpl;->mFpsNumFrames:I
+Landroid/view/ViewRootImpl;->mFpsPrevTime:J
+Landroid/view/ViewRootImpl;->mFpsStartTime:J
+Landroid/view/ViewRootImpl;->mFullRedrawNeeded:Z
+Landroid/view/ViewRootImpl;->mHadWindowFocus:Z
+Landroid/view/ViewRootImpl;->mHandler:Landroid/view/ViewRootImpl$ViewRootHandler;
+Landroid/view/ViewRootImpl;->mHandlingLayoutInLayoutRequest:Z
+Landroid/view/ViewRootImpl;->mHardwareXOffset:I
+Landroid/view/ViewRootImpl;->mHardwareYOffset:I
+Landroid/view/ViewRootImpl;->mHasHadWindowFocus:Z
+Landroid/view/ViewRootImpl;->mHighContrastTextManager:Landroid/view/ViewRootImpl$HighContrastTextManager;
+Landroid/view/ViewRootImpl;->mInLayout:Z
+Landroid/view/ViewRootImpl;->mInputChannel:Landroid/view/InputChannel;
+Landroid/view/ViewRootImpl;->mInputEventConsistencyVerifier:Landroid/view/InputEventConsistencyVerifier;
+Landroid/view/ViewRootImpl;->mInputEventReceiver:Landroid/view/ViewRootImpl$WindowInputEventReceiver;
+Landroid/view/ViewRootImpl;->mInputQueue:Landroid/view/InputQueue;
+Landroid/view/ViewRootImpl;->mInputQueueCallback:Landroid/view/InputQueue$Callback;
+Landroid/view/ViewRootImpl;->mInvalidateOnAnimationRunnable:Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
+Landroid/view/ViewRootImpl;->mInvalidateRootRequested:Z
+Landroid/view/ViewRootImpl;->mIsAmbientMode:Z
+Landroid/view/ViewRootImpl;->mIsAnimating:Z
+Landroid/view/ViewRootImpl;->mIsCreating:Z
+Landroid/view/ViewRootImpl;->mIsDrawing:Z
+Landroid/view/ViewRootImpl;->mIsInTraversal:Z
+Landroid/view/ViewRootImpl;->mLastConfigurationFromResources:Landroid/content/res/Configuration;
+Landroid/view/ViewRootImpl;->mLastGivenInsets:Landroid/view/ViewTreeObserver$InternalInsetsInfo;
+Landroid/view/ViewRootImpl;->mLastInCompatMode:Z
+Landroid/view/ViewRootImpl;->mLastOverscanRequested:Z
+Landroid/view/ViewRootImpl;->mLastReportedMergedConfiguration:Landroid/util/MergedConfiguration;
+Landroid/view/ViewRootImpl;->mLastSystemUiVisibility:I
+Landroid/view/ViewRootImpl;->mLastTouchPoint:Landroid/graphics/PointF;
+Landroid/view/ViewRootImpl;->mLastTouchSource:I
+Landroid/view/ViewRootImpl;->mLastWasImTarget:Z
+Landroid/view/ViewRootImpl;->mLastWindowInsets:Landroid/view/WindowInsets;
+Landroid/view/ViewRootImpl;->mLayoutRequested:Z
+Landroid/view/ViewRootImpl;->mLayoutRequesters:Ljava/util/ArrayList;
+Landroid/view/ViewRootImpl;->mLocalDragState:Ljava/lang/Object;
+Landroid/view/ViewRootImpl;->mLocation:Landroid/view/WindowLeaked;
+Landroid/view/ViewRootImpl;->mLostWindowFocus:Z
+Landroid/view/ViewRootImpl;->mNeedsRendererSetup:Z
+Landroid/view/ViewRootImpl;->mNewSurfaceNeeded:Z
+Landroid/view/ViewRootImpl;->mNextRtFrameCallback:Landroid/view/ThreadedRenderer$FrameDrawingCallback;
+Landroid/view/ViewRootImpl;->mNoncompatDensity:I
+Landroid/view/ViewRootImpl;->mOrigWindowType:I
+Landroid/view/ViewRootImpl;->mPausedForTransition:Z
+Landroid/view/ViewRootImpl;->mPendingAlwaysConsumeNavBar:Z
+Landroid/view/ViewRootImpl;->mPendingBackDropFrame:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mPendingContentInsets:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mPendingDisplayCutout:Landroid/view/DisplayCutout$ParcelableWrapper;
+Landroid/view/ViewRootImpl;->mPendingInputEventCount:I
+Landroid/view/ViewRootImpl;->mPendingInputEventHead:Landroid/view/ViewRootImpl$QueuedInputEvent;
+Landroid/view/ViewRootImpl;->mPendingInputEventQueueLengthCounterName:Ljava/lang/String;
+Landroid/view/ViewRootImpl;->mPendingInputEventTail:Landroid/view/ViewRootImpl$QueuedInputEvent;
+Landroid/view/ViewRootImpl;->mPendingMergedConfiguration:Landroid/util/MergedConfiguration;
+Landroid/view/ViewRootImpl;->mPendingOutsets:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mPendingOverscanInsets:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mPendingStableInsets:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mPendingTransitions:Ljava/util/ArrayList;
+Landroid/view/ViewRootImpl;->mPendingVisibleInsets:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mPointerCapture:Z
+Landroid/view/ViewRootImpl;->mPointerIconType:I
+Landroid/view/ViewRootImpl;->mPreviousTransparentRegion:Landroid/graphics/Region;
+Landroid/view/ViewRootImpl;->mProcessInputEventsScheduled:Z
+Landroid/view/ViewRootImpl;->mProfile:Z
+Landroid/view/ViewRootImpl;->mProfileRendering:Z
+Landroid/view/ViewRootImpl;->mQueuedInputEventPool:Landroid/view/ViewRootImpl$QueuedInputEvent;
+Landroid/view/ViewRootImpl;->mQueuedInputEventPoolSize:I
+Landroid/view/ViewRootImpl;->mRemoved:Z
+Landroid/view/ViewRootImpl;->mRenderProfiler:Landroid/view/Choreographer$FrameCallback;
+Landroid/view/ViewRootImpl;->mRenderProfilingEnabled:Z
+Landroid/view/ViewRootImpl;->mReportNextDraw:Z
+Landroid/view/ViewRootImpl;->mResizeInterpolator:Landroid/view/animation/Interpolator;
+Landroid/view/ViewRootImpl;->mResizeMode:I
+Landroid/view/ViewRootImpl;->mScroller:Landroid/widget/Scroller;
+Landroid/view/ViewRootImpl;->mScrollMayChange:Z
+Landroid/view/ViewRootImpl;->mScrollY:I
+Landroid/view/ViewRootImpl;->mSendWindowContentChangedAccessibilityEvent:Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;
+Landroid/view/ViewRootImpl;->mSeq:I
+Landroid/view/ViewRootImpl;->MSG_CHECK_FOCUS:I
+Landroid/view/ViewRootImpl;->MSG_CLEAR_ACCESSIBILITY_FOCUS_HOST:I
+Landroid/view/ViewRootImpl;->MSG_CLOSE_SYSTEM_DIALOGS:I
+Landroid/view/ViewRootImpl;->MSG_DIE:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_APP_VISIBILITY:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_DRAG_EVENT:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_DRAG_LOCATION_EVENT:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_GET_NEW_SURFACE:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_INPUT_EVENT:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_KEY_FROM_AUTOFILL:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_KEY_FROM_IME:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_SYSTEM_UI_VISIBILITY:I
+Landroid/view/ViewRootImpl;->MSG_DISPATCH_WINDOW_SHOWN:I
+Landroid/view/ViewRootImpl;->MSG_DRAW_FINISHED:I
+Landroid/view/ViewRootImpl;->MSG_INVALIDATE:I
+Landroid/view/ViewRootImpl;->MSG_INVALIDATE_RECT:I
+Landroid/view/ViewRootImpl;->MSG_INVALIDATE_WORLD:I
+Landroid/view/ViewRootImpl;->MSG_POINTER_CAPTURE_CHANGED:I
+Landroid/view/ViewRootImpl;->MSG_PROCESS_INPUT_EVENTS:I
+Landroid/view/ViewRootImpl;->MSG_REQUEST_KEYBOARD_SHORTCUTS:I
+Landroid/view/ViewRootImpl;->MSG_RESIZED:I
+Landroid/view/ViewRootImpl;->MSG_RESIZED_REPORT:I
+Landroid/view/ViewRootImpl;->MSG_SYNTHESIZE_INPUT_EVENT:I
+Landroid/view/ViewRootImpl;->MSG_UPDATE_CONFIGURATION:I
+Landroid/view/ViewRootImpl;->MSG_UPDATE_POINTER_ICON:I
+Landroid/view/ViewRootImpl;->MSG_WINDOW_FOCUS_CHANGED:I
+Landroid/view/ViewRootImpl;->MSG_WINDOW_MOVED:I
+Landroid/view/ViewRootImpl;->mSoftInputMode:I
+Landroid/view/ViewRootImpl;->mSurfaceHolder:Lcom/android/internal/view/BaseSurfaceHolder;
+Landroid/view/ViewRootImpl;->mSurfaceHolderCallback:Landroid/view/SurfaceHolder$Callback2;
+Landroid/view/ViewRootImpl;->mSyntheticInputStage:Landroid/view/ViewRootImpl$InputStage;
+Landroid/view/ViewRootImpl;->mTag:Ljava/lang/String;
+Landroid/view/ViewRootImpl;->mTargetSdkVersion:I
+Landroid/view/ViewRootImpl;->mTempHashSet:Ljava/util/HashSet;
+Landroid/view/ViewRootImpl;->mTempRect:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mThread:Ljava/lang/Thread;
+Landroid/view/ViewRootImpl;->mTmpLocation:[I
+Landroid/view/ViewRootImpl;->mTmpValue:Landroid/util/TypedValue;
+Landroid/view/ViewRootImpl;->mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
+Landroid/view/ViewRootImpl;->mTransparentRegion:Landroid/graphics/Region;
+Landroid/view/ViewRootImpl;->mTraversalBarrier:I
+Landroid/view/ViewRootImpl;->mTraversalRunnable:Landroid/view/ViewRootImpl$TraversalRunnable;
+Landroid/view/ViewRootImpl;->mTraversalScheduled:Z
+Landroid/view/ViewRootImpl;->MT_RENDERER_AVAILABLE:Z
+Landroid/view/ViewRootImpl;->mUnbufferedInputDispatch:Z
+Landroid/view/ViewRootImpl;->mUnhandledKeyManager:Landroid/view/ViewRootImpl$UnhandledKeyManager;
+Landroid/view/ViewRootImpl;->mUpcomingInTouchMode:Z
+Landroid/view/ViewRootImpl;->mUpcomingWindowFocus:Z
+Landroid/view/ViewRootImpl;->mUseMTRenderer:Z
+Landroid/view/ViewRootImpl;->mViewConfiguration:Landroid/view/ViewConfiguration;
+Landroid/view/ViewRootImpl;->mViewLayoutDirectionInitial:I
+Landroid/view/ViewRootImpl;->mViewVisibility:I
+Landroid/view/ViewRootImpl;->mVisRect:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->mWillDrawSoon:Z
+Landroid/view/ViewRootImpl;->mWindow:Landroid/view/ViewRootImpl$W;
+Landroid/view/ViewRootImpl;->mWindowAttributes:Landroid/view/WindowManager$LayoutParams;
+Landroid/view/ViewRootImpl;->mWindowAttributesChanged:Z
+Landroid/view/ViewRootImpl;->mWindowAttributesChangesFlag:I
+Landroid/view/ViewRootImpl;->mWindowCallbacks:Ljava/util/ArrayList;
+Landroid/view/ViewRootImpl;->mWindowDrawCountDown:Ljava/util/concurrent/CountDownLatch;
+Landroid/view/ViewRootImpl;->mWindowFocusChanged:Z
+Landroid/view/ViewRootImpl;->mWindowStoppedCallbacks:Ljava/util/ArrayList;
+Landroid/view/ViewRootImpl;->mWinFrame:Landroid/graphics/Rect;
+Landroid/view/ViewRootImpl;->notifyChildRebuilt()V
+Landroid/view/ViewRootImpl;->notifyRendererOfFramePending()V
+Landroid/view/ViewRootImpl;->obtainQueuedInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;I)Landroid/view/ViewRootImpl$QueuedInputEvent;
+Landroid/view/ViewRootImpl;->onMovedToDisplay(ILandroid/content/res/Configuration;)V
+Landroid/view/ViewRootImpl;->onPostDraw(Landroid/view/DisplayListCanvas;)V
+Landroid/view/ViewRootImpl;->onPreDraw(Landroid/view/DisplayListCanvas;)V
+Landroid/view/ViewRootImpl;->onWindowTitleChanged()V
+Landroid/view/ViewRootImpl;->outputDisplayList(Landroid/view/View;)V
+Landroid/view/ViewRootImpl;->pendingDrawFinished()V
+Landroid/view/ViewRootImpl;->performConfigurationChange(Landroid/util/MergedConfiguration;ZI)V
+Landroid/view/ViewRootImpl;->performDraw()V
+Landroid/view/ViewRootImpl;->performHapticFeedback(IZ)Z
+Landroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V
+Landroid/view/ViewRootImpl;->performMeasure(II)V
+Landroid/view/ViewRootImpl;->performTraversals()V
+Landroid/view/ViewRootImpl;->playSoundEffect(I)V
+Landroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V
+Landroid/view/ViewRootImpl;->postDrawFinished()V
+Landroid/view/ViewRootImpl;->postSendWindowContentChangedCallback(Landroid/view/View;I)V
+Landroid/view/ViewRootImpl;->profile()V
+Landroid/view/ViewRootImpl;->profileRendering(Z)V
+Landroid/view/ViewRootImpl;->PROPERTY_EMULATOR_WIN_OUTSET_BOTTOM_PX:Ljava/lang/String;
+Landroid/view/ViewRootImpl;->PROPERTY_PROFILE_RENDERING:Ljava/lang/String;
+Landroid/view/ViewRootImpl;->recycleQueuedInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+Landroid/view/ViewRootImpl;->registerAnimatingRenderNode(Landroid/view/RenderNode;)V
+Landroid/view/ViewRootImpl;->registerRtFrameCallback(Landroid/view/ThreadedRenderer$FrameDrawingCallback;)V
+Landroid/view/ViewRootImpl;->registerVectorDrawableAnimator(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;)V
+Landroid/view/ViewRootImpl;->relayoutWindow(Landroid/view/WindowManager$LayoutParams;IZ)I
+Landroid/view/ViewRootImpl;->removeSendWindowContentChangedCallback()V
+Landroid/view/ViewRootImpl;->removeWindowCallbacks(Landroid/view/WindowCallbacks;)V
+Landroid/view/ViewRootImpl;->removeWindowStoppedCallback(Landroid/view/ViewRootImpl$WindowStoppedCallback;)V
+Landroid/view/ViewRootImpl;->reportActivityRelaunched()V
+Landroid/view/ViewRootImpl;->reportDrawFinish()V
+Landroid/view/ViewRootImpl;->reportDrawFinished()V
+Landroid/view/ViewRootImpl;->reportNextDraw()V
+Landroid/view/ViewRootImpl;->requestDrawWindow()V
+Landroid/view/ViewRootImpl;->requestInvalidateRootRenderNode()V
+Landroid/view/ViewRootImpl;->requestLayoutDuringLayout(Landroid/view/View;)Z
+Landroid/view/ViewRootImpl;->requestPointerCapture(Z)V
+Landroid/view/ViewRootImpl;->requestTransitionStart(Landroid/animation/LayoutTransition;)V
+Landroid/view/ViewRootImpl;->requestUpdateConfiguration(Landroid/content/res/Configuration;)V
+Landroid/view/ViewRootImpl;->resetPointerIcon(Landroid/view/MotionEvent;)V
+Landroid/view/ViewRootImpl;->sAlwaysAssignFocus:Z
+Landroid/view/ViewRootImpl;->scheduleConsumeBatchedInput()V
+Landroid/view/ViewRootImpl;->scheduleConsumeBatchedInputImmediately()V
+Landroid/view/ViewRootImpl;->scheduleProcessInputEvents()V
+Landroid/view/ViewRootImpl;->sCompatibilityDone:Z
+Landroid/view/ViewRootImpl;->sConfigCallbacks:Ljava/util/ArrayList;
+Landroid/view/ViewRootImpl;->scrollToRectOrFocus(Landroid/graphics/Rect;Z)Z
+Landroid/view/ViewRootImpl;->setAccessibilityFocus(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/view/ViewRootImpl;->setActivityConfigCallback(Landroid/view/ViewRootImpl$ActivityConfigCallback;)V
+Landroid/view/ViewRootImpl;->setDragFocus(Landroid/view/View;Landroid/view/DragEvent;)V
+Landroid/view/ViewRootImpl;->setIsAmbientMode(Z)V
+Landroid/view/ViewRootImpl;->setLayoutParams(Landroid/view/WindowManager$LayoutParams;Z)V
+Landroid/view/ViewRootImpl;->setPausedForTransition(Z)V
+Landroid/view/ViewRootImpl;->setReportNextDraw()V
+Landroid/view/ViewRootImpl;->setTag()V
+Landroid/view/ViewRootImpl;->setView(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/view/View;)V
+Landroid/view/ViewRootImpl;->setWindowStopped(Z)V
+Landroid/view/ViewRootImpl;->sFirstDrawComplete:Z
+Landroid/view/ViewRootImpl;->sFirstDrawHandlers:Ljava/util/ArrayList;
+Landroid/view/ViewRootImpl;->shouldUseDisplaySize(Landroid/view/WindowManager$LayoutParams;)Z
+Landroid/view/ViewRootImpl;->startDragResizing(Landroid/graphics/Rect;ZLandroid/graphics/Rect;Landroid/graphics/Rect;I)V
+Landroid/view/ViewRootImpl;->synthesizeInputEvent(Landroid/view/InputEvent;)V
+Landroid/view/ViewRootImpl;->TAG:Ljava/lang/String;
+Landroid/view/ViewRootImpl;->trackFPS()V
+Landroid/view/ViewRootImpl;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V
+Landroid/view/ViewRootImpl;->transformMatrixToLocal(Landroid/graphics/Matrix;)V
+Landroid/view/ViewRootImpl;->unscheduleConsumeBatchedInput()V
+Landroid/view/ViewRootImpl;->unscheduleTraversals()V
+Landroid/view/ViewRootImpl;->updateConfiguration(I)V
+Landroid/view/ViewRootImpl;->updateContentDrawBounds()Z
+Landroid/view/ViewRootImpl;->updatePointerIcon(FF)V
+Landroid/view/ViewRootImpl;->updatePointerIcon(Landroid/view/MotionEvent;)Z
+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
+Landroid/view/ViewStub;->mInflatedViewRef:Ljava/lang/ref/WeakReference;
+Landroid/view/ViewStub;->mInflateListener:Landroid/view/ViewStub$OnInflateListener;
+Landroid/view/ViewStub;->mInflater:Landroid/view/LayoutInflater;
+Landroid/view/ViewStub;->mLayoutResource:I
+Landroid/view/ViewStub;->replaceSelfWithView(Landroid/view/View;Landroid/view/ViewGroup;)V
+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
+Landroid/view/ViewTreeObserver$CopyOnWriteArray;->clear()V
+Landroid/view/ViewTreeObserver$CopyOnWriteArray;->end()V
+Landroid/view/ViewTreeObserver$CopyOnWriteArray;->getArray()Ljava/util/ArrayList;
+Landroid/view/ViewTreeObserver$CopyOnWriteArray;->mAccess:Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
+Landroid/view/ViewTreeObserver$CopyOnWriteArray;->mData:Ljava/util/ArrayList;
+Landroid/view/ViewTreeObserver$CopyOnWriteArray;->mDataCopy:Ljava/util/ArrayList;
+Landroid/view/ViewTreeObserver$CopyOnWriteArray;->mStart:Z
+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
+Landroid/view/ViewTreeObserver;->addOnWindowShownListener(Landroid/view/ViewTreeObserver$OnWindowShownListener;)V
+Landroid/view/ViewTreeObserver;->checkIsAlive()V
+Landroid/view/ViewTreeObserver;->dispatchOnEnterAnimationComplete()V
+Landroid/view/ViewTreeObserver;->dispatchOnWindowAttachedChange(Z)V
+Landroid/view/ViewTreeObserver;->dispatchOnWindowFocusChange(Z)V
+Landroid/view/ViewTreeObserver;->dispatchOnWindowShown()V
+Landroid/view/ViewTreeObserver;->hasOnPreDrawListeners()Z
+Landroid/view/ViewTreeObserver;->kill()V
+Landroid/view/ViewTreeObserver;->mAlive:Z
+Landroid/view/ViewTreeObserver;->merge(Landroid/view/ViewTreeObserver;)V
+Landroid/view/ViewTreeObserver;->mInDispatchOnDraw:Z
+Landroid/view/ViewTreeObserver;->mOnDrawListeners:Ljava/util/ArrayList;
+Landroid/view/ViewTreeObserver;->mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
+Landroid/view/ViewTreeObserver;->mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
+Landroid/view/ViewTreeObserver;->mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
+Landroid/view/ViewTreeObserver;->mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
+Landroid/view/ViewTreeObserver;->mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
+Landroid/view/ViewTreeObserver;->mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
+Landroid/view/ViewTreeObserver;->mWindowShown:Z
+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
+Landroid/view/Window;->adjustLayoutParamsForSubWindow(Landroid/view/WindowManager$LayoutParams;)V
+Landroid/view/Window;->clearContentView()V
+Landroid/view/Window;->destroy()V
+Landroid/view/Window;->dispatchOnWindowDismissed(ZZ)V
+Landroid/view/Window;->dispatchOnWindowSwipeDismissed()V
+Landroid/view/Window;->dispatchWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
+Landroid/view/Window;->getElevation()F
+Landroid/view/Window;->getWindowControllerCallback()Landroid/view/Window$WindowControllerCallback;
+Landroid/view/Window;->haveDimAmount()Z
+Landroid/view/Window;->isCloseOnSwipeEnabled()Z
+Landroid/view/Window;->isOutOfBounds(Landroid/content/Context;Landroid/view/MotionEvent;)Z
+Landroid/view/Window;->isOverlayWithDecorCaptionEnabled()Z
+Landroid/view/Window;->mActiveChild:Landroid/view/Window;
+Landroid/view/Window;->mCloseOnSwipeEnabled:Z
+Landroid/view/Window;->mCloseOnTouchOutside:Z
+Landroid/view/Window;->mContainer:Landroid/view/Window;
+Landroid/view/Window;->mDefaultWindowFormat:I
+Landroid/view/Window;->mForcedWindowFlags:I
+Landroid/view/Window;->mHasChildren:Z
+Landroid/view/Window;->mHasSoftInputMode:Z
+Landroid/view/Window;->mHaveDimAmount:Z
+Landroid/view/Window;->mHaveWindowFormat:Z
+Landroid/view/Window;->mIsActive:Z
+Landroid/view/Window;->mOnRestrictedCaptionAreaChangedListener:Landroid/view/Window$OnRestrictedCaptionAreaChangedListener;
+Landroid/view/Window;->mOnWindowDismissedCallback:Landroid/view/Window$OnWindowDismissedCallback;
+Landroid/view/Window;->mOnWindowSwipeDismissedCallback:Landroid/view/Window$OnWindowSwipeDismissedCallback;
+Landroid/view/Window;->mOverlayWithDecorCaptionEnabled:Z
+Landroid/view/Window;->mRestrictedCaptionAreaRect:Landroid/graphics/Rect;
+Landroid/view/Window;->mSetCloseOnTouchOutside:Z
+Landroid/view/Window;->mWindowControllerCallback:Landroid/view/Window$WindowControllerCallback;
+Landroid/view/Window;->notifyRestrictedCaptionAreaCallback(IIII)V
+Landroid/view/Window;->onMultiWindowModeChanged()V
+Landroid/view/Window;->onPictureInPictureModeChanged(Z)V
+Landroid/view/Window;->PROPERTY_HARDWARE_UI:Ljava/lang/String;
+Landroid/view/Window;->removeFeature(I)V
+Landroid/view/Window;->reportActivityRelaunched()V
+Landroid/view/Window;->setCloseOnSwipeEnabled(Z)V
+Landroid/view/Window;->setDefaultIcon(I)V
+Landroid/view/Window;->setDefaultLogo(I)V
+Landroid/view/Window;->setOnWindowDismissedCallback(Landroid/view/Window$OnWindowDismissedCallback;)V
+Landroid/view/Window;->setOnWindowSwipeDismissedCallback(Landroid/view/Window$OnWindowSwipeDismissedCallback;)V
+Landroid/view/Window;->setOverlayWithDecorCaptionEnabled(Z)V
+Landroid/view/Window;->setPrivateFlags(II)V
+Landroid/view/Window;->setTheme(I)V
+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
+Landroid/view/WindowCallbacks;->onWindowDragResizeEnd()V
+Landroid/view/WindowCallbacks;->onWindowDragResizeStart(Landroid/graphics/Rect;ZLandroid/graphics/Rect;Landroid/graphics/Rect;I)V
+Landroid/view/WindowCallbacks;->onWindowSizeIsChanging(Landroid/graphics/Rect;ZLandroid/graphics/Rect;Landroid/graphics/Rect;)V
+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;
+Landroid/view/WindowId;-><init>(Landroid/os/IBinder;)V
+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;
+Landroid/view/WindowInfo;->boundsInScreen:Landroid/graphics/Rect;
+Landroid/view/WindowInfo;->childTokens:Ljava/util/List;
+Landroid/view/WindowInfo;->clear()V
+Landroid/view/WindowInfo;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/view/WindowInfo;->focused:Z
+Landroid/view/WindowInfo;->initFromParcel(Landroid/os/Parcel;)V
+Landroid/view/WindowInfo;->inPictureInPicture:Z
+Landroid/view/WindowInfo;->layer:I
+Landroid/view/WindowInfo;->MAX_POOL_SIZE:I
+Landroid/view/WindowInfo;->obtain()Landroid/view/WindowInfo;
+Landroid/view/WindowInfo;->obtain(Landroid/view/WindowInfo;)Landroid/view/WindowInfo;
+Landroid/view/WindowInfo;->parentToken:Landroid/os/IBinder;
+Landroid/view/WindowInfo;->recycle()V
+Landroid/view/WindowInfo;->sPool:Landroid/util/Pools$SynchronizedPool;
+Landroid/view/WindowInfo;->title:Ljava/lang/CharSequence;
+Landroid/view/WindowInfo;->token:Landroid/os/IBinder;
+Landroid/view/WindowInfo;->type:I
+Landroid/view/WindowInsets;-><init>(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZLandroid/view/DisplayCutout;)V
+Landroid/view/WindowInsets;->consumeSystemWindowInsets(ZZZZ)Landroid/view/WindowInsets;
+Landroid/view/WindowInsets;->consumeWindowDecorInsets()Landroid/view/WindowInsets;
+Landroid/view/WindowInsets;->consumeWindowDecorInsets(ZZZZ)Landroid/view/WindowInsets;
+Landroid/view/WindowInsets;->EMPTY_RECT:Landroid/graphics/Rect;
+Landroid/view/WindowInsets;->getWindowDecorInsetBottom()I
+Landroid/view/WindowInsets;->getWindowDecorInsetLeft()I
+Landroid/view/WindowInsets;->getWindowDecorInsetRight()I
+Landroid/view/WindowInsets;->getWindowDecorInsetTop()I
+Landroid/view/WindowInsets;->hasWindowDecorInsets()Z
+Landroid/view/WindowInsets;->inset(Landroid/graphics/Rect;)Landroid/view/WindowInsets;
+Landroid/view/WindowInsets;->insetInsets(Landroid/graphics/Rect;IIII)Landroid/graphics/Rect;
+Landroid/view/WindowInsets;->isSystemWindowInsetsConsumed()Z
+Landroid/view/WindowInsets;->mAlwaysConsumeNavBar:Z
+Landroid/view/WindowInsets;->mDisplayCutout:Landroid/view/DisplayCutout;
+Landroid/view/WindowInsets;->mDisplayCutoutConsumed:Z
+Landroid/view/WindowInsets;->mIsRound:Z
+Landroid/view/WindowInsets;->mStableInsets:Landroid/graphics/Rect;
+Landroid/view/WindowInsets;->mStableInsetsConsumed:Z
+Landroid/view/WindowInsets;->mSystemWindowInsets:Landroid/graphics/Rect;
+Landroid/view/WindowInsets;->mSystemWindowInsetsConsumed:Z
+Landroid/view/WindowInsets;->mTempRect:Landroid/graphics/Rect;
+Landroid/view/WindowInsets;->mWindowDecorInsets:Landroid/graphics/Rect;
+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
+Landroid/view/WindowLayoutParamsProto;->COLOR_MODE:J
+Landroid/view/WindowLayoutParamsProto;->FLAGS:J
+Landroid/view/WindowLayoutParamsProto;->FORMAT:J
+Landroid/view/WindowLayoutParamsProto;->GRAVITY:J
+Landroid/view/WindowLayoutParamsProto;->HAS_SYSTEM_UI_LISTENERS:J
+Landroid/view/WindowLayoutParamsProto;->HEIGHT:J
+Landroid/view/WindowLayoutParamsProto;->HORIZONTAL_MARGIN:J
+Landroid/view/WindowLayoutParamsProto;->INPUT_FEATURE_FLAGS:J
+Landroid/view/WindowLayoutParamsProto;->NEEDS_MENU_KEY:J
+Landroid/view/WindowLayoutParamsProto;->NEEDS_MENU_SET_FALSE:I
+Landroid/view/WindowLayoutParamsProto;->NEEDS_MENU_SET_TRUE:I
+Landroid/view/WindowLayoutParamsProto;->NEEDS_MENU_UNSET:I
+Landroid/view/WindowLayoutParamsProto;->PREFERRED_DISPLAY_MODE_ID:J
+Landroid/view/WindowLayoutParamsProto;->PREFERRED_REFRESH_RATE:J
+Landroid/view/WindowLayoutParamsProto;->PRIVATE_FLAGS:J
+Landroid/view/WindowLayoutParamsProto;->ROTATION_ANIMATION:J
+Landroid/view/WindowLayoutParamsProto;->ROTATION_ANIMATION_CROSSFADE:I
+Landroid/view/WindowLayoutParamsProto;->ROTATION_ANIMATION_JUMPCUT:I
+Landroid/view/WindowLayoutParamsProto;->ROTATION_ANIMATION_SEAMLESS:I
+Landroid/view/WindowLayoutParamsProto;->ROTATION_ANIMATION_UNSPECIFIED:I
+Landroid/view/WindowLayoutParamsProto;->SCREEN_BRIGHTNESS:J
+Landroid/view/WindowLayoutParamsProto;->SOFT_INPUT_MODE:J
+Landroid/view/WindowLayoutParamsProto;->SUBTREE_SYSTEM_UI_VISIBILITY_FLAGS:J
+Landroid/view/WindowLayoutParamsProto;->SYSTEM_UI_VISIBILITY_FLAGS:J
+Landroid/view/WindowLayoutParamsProto;->TYPE:J
+Landroid/view/WindowLayoutParamsProto;->USER_ACTIVITY_TIMEOUT:J
+Landroid/view/WindowLayoutParamsProto;->VERTICAL_MARGIN:J
+Landroid/view/WindowLayoutParamsProto;->WIDTH:J
+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
+Landroid/view/WindowManager$LayoutParams;->COLOR_MODE_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->dumpDimensions(Ljava/lang/StringBuilder;)V
+Landroid/view/WindowManager$LayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/view/WindowManager$LayoutParams;->EVERYTHING_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->hasManualSurfaceInsets:Z
+Landroid/view/WindowManager$LayoutParams;->inputFeatureToString(I)Ljava/lang/String;
+Landroid/view/WindowManager$LayoutParams;->INPUT_FEATURES_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->INPUT_FEATURE_DISABLE_POINTER_GESTURES:I
+Landroid/view/WindowManager$LayoutParams;->INPUT_FEATURE_NO_INPUT_CHANNEL:I
+Landroid/view/WindowManager$LayoutParams;->INVALID_WINDOW_TYPE:I
+Landroid/view/WindowManager$LayoutParams;->isFullscreen()Z
+Landroid/view/WindowManager$LayoutParams;->isSystemAlertWindowType(I)Z
+Landroid/view/WindowManager$LayoutParams;->layoutInDisplayCutoutModeToString(I)Ljava/lang/String;
+Landroid/view/WindowManager$LayoutParams;->LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS:I
+Landroid/view/WindowManager$LayoutParams;->mColorMode:I
+Landroid/view/WindowManager$LayoutParams;->mCompatibilityParamsBackup:[I
+Landroid/view/WindowManager$LayoutParams;->mTitle:Ljava/lang/CharSequence;
+Landroid/view/WindowManager$LayoutParams;->NEEDS_MENU_KEY_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->NEEDS_MENU_UNSET:I
+Landroid/view/WindowManager$LayoutParams;->PREFERRED_DISPLAY_MODE_ID:I
+Landroid/view/WindowManager$LayoutParams;->PREFERRED_REFRESH_RATE_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->preservePreviousSurfaceInsets:Z
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAGS_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_ACQUIRES_SLEEP_TOKEN:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_COMPATIBLE_WINDOW:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_FAKE_HARDWARE_ACCELERATED:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_FORCE_DECOR_VIEW_VISIBILITY:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_FORCE_HARDWARE_ACCELERATED:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_FORCE_STATUS_BAR_VISIBLE_TRANSPARENT:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_IS_SCREEN_DECOR:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_KEYGUARD:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_PRESERVE_GEOMETRY:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_SUSTAINED_PERFORMANCE_MODE:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_SYSTEM_ERROR:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_WANTS_OFFSET_NOTIFICATIONS:I
+Landroid/view/WindowManager$LayoutParams;->PRIVATE_FLAG_WILL_NOT_REPLACE_ON_RELAUNCH:I
+Landroid/view/WindowManager$LayoutParams;->rotationAnimationToString(I)Ljava/lang/String;
+Landroid/view/WindowManager$LayoutParams;->ROTATION_ANIMATION_UNSPECIFIED:I
+Landroid/view/WindowManager$LayoutParams;->scale(F)V
+Landroid/view/WindowManager$LayoutParams;->setSurfaceInsets(Landroid/view/View;ZZ)V
+Landroid/view/WindowManager$LayoutParams;->softInputModeToString(I)Ljava/lang/String;
+Landroid/view/WindowManager$LayoutParams;->surfaceInsets:Landroid/graphics/Rect;
+Landroid/view/WindowManager$LayoutParams;->SURFACE_INSETS_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->SYSTEM_UI_LISTENER_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->SYSTEM_UI_VISIBILITY_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->toString(Ljava/lang/String;)Ljava/lang/String;
+Landroid/view/WindowManager$LayoutParams;->TRANSLUCENT_FLAGS_CHANGED:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_APPLICATION_ABOVE_SUB_PANEL:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_BOOT_PROGRESS:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_DOCK_DIVIDER:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_DRAG:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_DREAM:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_INPUT_CONSUMER:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_MAGNIFICATION_OVERLAY:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_NAVIGATION_BAR:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_NAVIGATION_BAR_PANEL:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_POINTER:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_PRESENTATION:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_QS_DIALOG:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_SCREENSHOT:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_STATUS_BAR_SUB_PANEL:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_VOICE_INTERACTION:I
+Landroid/view/WindowManager$LayoutParams;->TYPE_VOICE_INTERACTION_STARTING:I
+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
+Landroid/view/WindowManager;->DOCKED_RIGHT:I
+Landroid/view/WindowManager;->DOCKED_TOP:I
+Landroid/view/WindowManager;->INPUT_CONSUMER_NAVIGATION:Ljava/lang/String;
+Landroid/view/WindowManager;->INPUT_CONSUMER_PIP:Ljava/lang/String;
+Landroid/view/WindowManager;->INPUT_CONSUMER_RECENTS_ANIMATION:Ljava/lang/String;
+Landroid/view/WindowManager;->INPUT_CONSUMER_WALLPAPER:Ljava/lang/String;
+Landroid/view/WindowManager;->PARCEL_KEY_SHORTCUTS_ARRAY:Ljava/lang/String;
+Landroid/view/WindowManager;->requestAppKeyboardShortcuts(Landroid/view/WindowManager$KeyboardShortcutsReceiver;I)V
+Landroid/view/WindowManager;->TAKE_SCREENSHOT_FULLSCREEN:I
+Landroid/view/WindowManager;->TAKE_SCREENSHOT_SELECTED_REGION:I
+Landroid/view/WindowManager;->TRANSIT_ACTIVITY_CLOSE:I
+Landroid/view/WindowManager;->TRANSIT_ACTIVITY_OPEN:I
+Landroid/view/WindowManager;->TRANSIT_ACTIVITY_RELAUNCH:I
+Landroid/view/WindowManager;->TRANSIT_CRASHING_ACTIVITY_CLOSE:I
+Landroid/view/WindowManager;->TRANSIT_DOCK_TASK_FROM_RECENTS:I
+Landroid/view/WindowManager;->TRANSIT_FLAG_KEYGUARD_GOING_AWAY_NO_ANIMATION:I
+Landroid/view/WindowManager;->TRANSIT_FLAG_KEYGUARD_GOING_AWAY_TO_SHADE:I
+Landroid/view/WindowManager;->TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER:I
+Landroid/view/WindowManager;->TRANSIT_KEYGUARD_GOING_AWAY:I
+Landroid/view/WindowManager;->TRANSIT_KEYGUARD_GOING_AWAY_ON_WALLPAPER:I
+Landroid/view/WindowManager;->TRANSIT_KEYGUARD_OCCLUDE:I
+Landroid/view/WindowManager;->TRANSIT_KEYGUARD_UNOCCLUDE:I
+Landroid/view/WindowManager;->TRANSIT_NONE:I
+Landroid/view/WindowManager;->TRANSIT_TASK_CLOSE:I
+Landroid/view/WindowManager;->TRANSIT_TASK_IN_PLACE:I
+Landroid/view/WindowManager;->TRANSIT_TASK_OPEN:I
+Landroid/view/WindowManager;->TRANSIT_TASK_OPEN_BEHIND:I
+Landroid/view/WindowManager;->TRANSIT_TASK_TO_BACK:I
+Landroid/view/WindowManager;->TRANSIT_TASK_TO_FRONT:I
+Landroid/view/WindowManager;->TRANSIT_TRANSLUCENT_ACTIVITY_CLOSE:I
+Landroid/view/WindowManager;->TRANSIT_TRANSLUCENT_ACTIVITY_OPEN:I
+Landroid/view/WindowManager;->TRANSIT_UNSET:I
+Landroid/view/WindowManager;->TRANSIT_WALLPAPER_CLOSE:I
+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
+Landroid/view/WindowManagerGlobal;->ADD_BAD_APP_TOKEN:I
+Landroid/view/WindowManagerGlobal;->ADD_BAD_SUBWINDOW_TOKEN:I
+Landroid/view/WindowManagerGlobal;->ADD_DUPLICATE_ADD:I
+Landroid/view/WindowManagerGlobal;->ADD_FLAG_ALWAYS_CONSUME_NAV_BAR:I
+Landroid/view/WindowManagerGlobal;->ADD_FLAG_APP_VISIBLE:I
+Landroid/view/WindowManagerGlobal;->ADD_FLAG_IN_TOUCH_MODE:I
+Landroid/view/WindowManagerGlobal;->ADD_INVALID_DISPLAY:I
+Landroid/view/WindowManagerGlobal;->ADD_INVALID_TYPE:I
+Landroid/view/WindowManagerGlobal;->ADD_MULTIPLE_SINGLETON:I
+Landroid/view/WindowManagerGlobal;->ADD_NOT_APP_TOKEN:I
+Landroid/view/WindowManagerGlobal;->ADD_OKAY:I
+Landroid/view/WindowManagerGlobal;->ADD_PERMISSION_DENIED:I
+Landroid/view/WindowManagerGlobal;->ADD_STARTING_NOT_NEEDED:I
+Landroid/view/WindowManagerGlobal;->changeCanvasOpacity(Landroid/os/IBinder;Z)V
+Landroid/view/WindowManagerGlobal;->closeAll(Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/view/WindowManagerGlobal;->closeAllExceptView(Landroid/os/IBinder;Landroid/view/View;Ljava/lang/String;Ljava/lang/String;)V
+Landroid/view/WindowManagerGlobal;->doRemoveView(Landroid/view/ViewRootImpl;)V
+Landroid/view/WindowManagerGlobal;->doTrimForeground()V
+Landroid/view/WindowManagerGlobal;->dumpGfxInfo(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
+Landroid/view/WindowManagerGlobal;->findViewLocked(Landroid/view/View;Z)I
+Landroid/view/WindowManagerGlobal;->getWindowName(Landroid/view/ViewRootImpl;)Ljava/lang/String;
+Landroid/view/WindowManagerGlobal;->getWindowView(Landroid/os/IBinder;)Landroid/view/View;
+Landroid/view/WindowManagerGlobal;->mDyingViews:Landroid/util/ArraySet;
+Landroid/view/WindowManagerGlobal;->mSystemPropertyUpdater:Ljava/lang/Runnable;
+Landroid/view/WindowManagerGlobal;->RELAYOUT_DEFER_SURFACE_DESTROY:I
+Landroid/view/WindowManagerGlobal;->RELAYOUT_INSETS_PENDING:I
+Landroid/view/WindowManagerGlobal;->RELAYOUT_RES_CONSUME_ALWAYS_NAV_BAR:I
+Landroid/view/WindowManagerGlobal;->RELAYOUT_RES_DRAG_RESIZING_DOCKED:I
+Landroid/view/WindowManagerGlobal;->RELAYOUT_RES_DRAG_RESIZING_FREEFORM:I
+Landroid/view/WindowManagerGlobal;->RELAYOUT_RES_FIRST_TIME:I
+Landroid/view/WindowManagerGlobal;->RELAYOUT_RES_IN_TOUCH_MODE:I
+Landroid/view/WindowManagerGlobal;->RELAYOUT_RES_SURFACE_CHANGED:I
+Landroid/view/WindowManagerGlobal;->RELAYOUT_RES_SURFACE_RESIZED:I
+Landroid/view/WindowManagerGlobal;->removeViewLocked(IZ)V
+Landroid/view/WindowManagerGlobal;->reportNewConfiguration(Landroid/content/res/Configuration;)V
+Landroid/view/WindowManagerGlobal;->setStoppedState(Landroid/os/IBinder;Z)V
+Landroid/view/WindowManagerGlobal;->shouldDestroyEglContext(I)Z
+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
+Landroid/view/WindowManagerImpl;->createLocalWindowManager(Landroid/view/Window;)Landroid/view/WindowManagerImpl;
+Landroid/view/WindowManagerImpl;->createPresentationWindowManager(Landroid/content/Context;)Landroid/view/WindowManagerImpl;
+Landroid/view/WindowManagerImpl;->mContext:Landroid/content/Context;
+Landroid/view/WindowManagerImpl;->mDefaultToken:Landroid/os/IBinder;
+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
+Landroid/view/WindowManagerPolicyConstants;->APPLICATION_LAYER:I
+Landroid/view/WindowManagerPolicyConstants;->APPLICATION_MEDIA_OVERLAY_SUBLAYER:I
+Landroid/view/WindowManagerPolicyConstants;->APPLICATION_MEDIA_SUBLAYER:I
+Landroid/view/WindowManagerPolicyConstants;->APPLICATION_PANEL_SUBLAYER:I
+Landroid/view/WindowManagerPolicyConstants;->APPLICATION_SUB_PANEL_SUBLAYER:I
+Landroid/view/WindowManagerPolicyConstants;->EXTRA_FROM_HOME_KEY:Ljava/lang/String;
+Landroid/view/WindowManagerPolicyConstants;->EXTRA_HDMI_PLUGGED_STATE:Ljava/lang/String;
+Landroid/view/WindowManagerPolicyConstants;->FLAG_DISABLE_KEY_REPEAT:I
+Landroid/view/WindowManagerPolicyConstants;->FLAG_FILTERED:I
+Landroid/view/WindowManagerPolicyConstants;->FLAG_INJECTED:I
+Landroid/view/WindowManagerPolicyConstants;->FLAG_INTERACTIVE:I
+Landroid/view/WindowManagerPolicyConstants;->FLAG_PASS_TO_USER:I
+Landroid/view/WindowManagerPolicyConstants;->FLAG_TRUSTED:I
+Landroid/view/WindowManagerPolicyConstants;->FLAG_VIRTUAL:I
+Landroid/view/WindowManagerPolicyConstants;->FLAG_WAKE:I
+Landroid/view/WindowManagerPolicyConstants;->KEYGUARD_GOING_AWAY_FLAG_NO_WINDOW_ANIMATIONS:I
+Landroid/view/WindowManagerPolicyConstants;->KEYGUARD_GOING_AWAY_FLAG_TO_SHADE:I
+Landroid/view/WindowManagerPolicyConstants;->KEYGUARD_GOING_AWAY_FLAG_WITH_WALLPAPER:I
+Landroid/view/WindowManagerPolicyConstants;->NAV_BAR_BOTTOM:I
+Landroid/view/WindowManagerPolicyConstants;->NAV_BAR_LEFT:I
+Landroid/view/WindowManagerPolicyConstants;->NAV_BAR_RIGHT:I
+Landroid/view/WindowManagerPolicyConstants;->offReasonToString(I)Ljava/lang/String;
+Landroid/view/WindowManagerPolicyConstants;->OFF_BECAUSE_OF_ADMIN:I
+Landroid/view/WindowManagerPolicyConstants;->OFF_BECAUSE_OF_TIMEOUT:I
+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
+Landroid/webkit/CookieSyncManager;->sGetInstanceAllowed:Z
+Landroid/webkit/CookieSyncManager;->sLock:Ljava/lang/Object;
+Landroid/webkit/CookieSyncManager;->sRef:Landroid/webkit/CookieSyncManager;
+Landroid/webkit/DateSorter;->beginningOfDay(Ljava/util/Calendar;)V
+Landroid/webkit/DateSorter;->LOGTAG:Ljava/lang/String;
+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
+Landroid/webkit/EventLogTags;->BROWSER_ZOOM_LEVEL_CHANGE:I
+Landroid/webkit/EventLogTags;->EXP_DET_ATTEMPT_TO_CALL_OBJECT_GETCLASS:I
+Landroid/webkit/EventLogTags;->writeBrowserDoubleTapDuration(IJ)V
+Landroid/webkit/EventLogTags;->writeBrowserSnapCenter()V
+Landroid/webkit/EventLogTags;->writeBrowserZoomLevelChange(IIJ)V
+Landroid/webkit/EventLogTags;->writeExpDetAttemptToCallObjectGetclass(Ljava/lang/String;)V
+Landroid/webkit/FindActionModeCallback;->findNext(Z)V
+Landroid/webkit/FindActionModeCallback;->mActionMode:Landroid/view/ActionMode;
+Landroid/webkit/FindActionModeCallback;->mActiveMatchIndex:I
+Landroid/webkit/FindActionModeCallback;->mCustomView:Landroid/view/View;
+Landroid/webkit/FindActionModeCallback;->mEditText:Landroid/widget/EditText;
+Landroid/webkit/FindActionModeCallback;->mGlobalVisibleOffset:Landroid/graphics/Point;
+Landroid/webkit/FindActionModeCallback;->mGlobalVisibleRect:Landroid/graphics/Rect;
+Landroid/webkit/FindActionModeCallback;->mInput:Landroid/view/inputmethod/InputMethodManager;
+Landroid/webkit/FindActionModeCallback;->mMatches:Landroid/widget/TextView;
+Landroid/webkit/FindActionModeCallback;->mMatchesFound:Z
+Landroid/webkit/FindActionModeCallback;->mNumberOfMatches:I
+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
+Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->getAllWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
+Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
+Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackageName()Ljava/lang/String;
+Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->getValidWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
+Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->isFallbackPackage(Ljava/lang/String;)Z
+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
+Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_enableFallbackLogic:I
+Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_enableMultiProcess:I
+Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_getAllWebViewPackages:I
+Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_getCurrentWebViewPackage:I
+Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_getCurrentWebViewPackageName:I
+Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_getValidWebViewPackages:I
+Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_isFallbackPackage:I
+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
+Landroid/webkit/IWebViewUpdateService;->getAllWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
+Landroid/webkit/IWebViewUpdateService;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
+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;
+Landroid/webkit/JsDialogHelper;->mDefaultValue:Ljava/lang/String;
+Landroid/webkit/JsDialogHelper;->mMessage:Ljava/lang/String;
+Landroid/webkit/JsDialogHelper;->mResult:Landroid/webkit/JsPromptResult;
+Landroid/webkit/JsDialogHelper;->mType:I
+Landroid/webkit/JsDialogHelper;->mUrl:Ljava/lang/String;
+Landroid/webkit/JsDialogHelper;->TAG:Ljava/lang/String;
+Landroid/webkit/JsPromptResult;->mStringResult:Ljava/lang/String;
+Landroid/webkit/JsResult;->mResult:Z
+Landroid/webkit/JsResult;->wakeUp()V
+Landroid/webkit/MimeTypeMap;-><init>()V
+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;
+Landroid/webkit/Plugin;->getFileName()Ljava/lang/String;
+Landroid/webkit/Plugin;->getName()Ljava/lang/String;
+Landroid/webkit/Plugin;->getPath()Ljava/lang/String;
+Landroid/webkit/Plugin;->mDescription:Ljava/lang/String;
+Landroid/webkit/Plugin;->mFileName:Ljava/lang/String;
+Landroid/webkit/Plugin;->mHandler:Landroid/webkit/Plugin$PreferencesClickHandler;
+Landroid/webkit/Plugin;->mName:Ljava/lang/String;
+Landroid/webkit/Plugin;->mPath:Ljava/lang/String;
+Landroid/webkit/Plugin;->setClickHandler(Landroid/webkit/Plugin$PreferencesClickHandler;)V
+Landroid/webkit/Plugin;->setDescription(Ljava/lang/String;)V
+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
+Landroid/webkit/PluginList;->getList()Ljava/util/List;
+Landroid/webkit/PluginList;->mPlugins:Ljava/util/ArrayList;
+Landroid/webkit/PluginList;->pluginClicked(Landroid/content/Context;I)V
+Landroid/webkit/PluginList;->removePlugin(Landroid/webkit/Plugin;)V
+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;
+Landroid/webkit/UrlInterceptRegistry;->LOGTAG:Ljava/lang/String;
+Landroid/webkit/UrlInterceptRegistry;->mDisabled:Z
+Landroid/webkit/UrlInterceptRegistry;->mHandlerList:Ljava/util/LinkedList;
+Landroid/webkit/UrlInterceptRegistry;->urlInterceptDisabled()Z
+Landroid/webkit/URLUtil;->ASSET_BASE:Ljava/lang/String;
+Landroid/webkit/URLUtil;->CONTENT_BASE:Ljava/lang/String;
+Landroid/webkit/URLUtil;->CONTENT_DISPOSITION_PATTERN:Ljava/util/regex/Pattern;
+Landroid/webkit/URLUtil;->FILE_BASE:Ljava/lang/String;
+Landroid/webkit/URLUtil;->LOGTAG:Ljava/lang/String;
+Landroid/webkit/URLUtil;->parseHex(B)I
+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;
+Landroid/webkit/UserPackage;->getPackageInfosAllUsers(Landroid/content/Context;Ljava/lang/String;I)Ljava/util/List;
+Landroid/webkit/UserPackage;->getUserInfo()Landroid/content/pm/UserInfo;
+Landroid/webkit/UserPackage;->hasCorrectTargetSdkVersion(Landroid/content/pm/PackageInfo;)Z
+Landroid/webkit/UserPackage;->isEnabledPackage()Z
+Landroid/webkit/UserPackage;->isInstalledPackage()Z
+Landroid/webkit/UserPackage;->MINIMUM_SUPPORTED_SDK:I
+Landroid/webkit/UserPackage;->mPackageInfo:Landroid/content/pm/PackageInfo;
+Landroid/webkit/UserPackage;->mUserInfo:Landroid/content/pm/UserInfo;
+Landroid/webkit/WebChromeClient$FileChooserParams;->MODE_OPEN_FOLDER:I
+Landroid/webkit/WebMessage;->mData:Ljava/lang/String;
+Landroid/webkit/WebMessage;->mPorts:[Landroid/webkit/WebMessagePort;
+Landroid/webkit/WebResourceResponse;->checkImmutable()V
+Landroid/webkit/WebResourceResponse;->mEncoding:Ljava/lang/String;
+Landroid/webkit/WebResourceResponse;->mInputStream:Ljava/io/InputStream;
+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;
+Landroid/webkit/WebSyncManager;->onSyncInit()V
+Landroid/webkit/WebSyncManager;->resetSync()V
+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
+Landroid/webkit/WebView;->ensureProviderCreated()V
+Landroid/webkit/WebView;->findHierarchyView(Ljava/lang/String;I)Landroid/view/View;
+Landroid/webkit/WebView;->LOGTAG:Ljava/lang/String;
+Landroid/webkit/WebView;->mFindListener:Landroid/webkit/WebView$FindListenerDistributor;
+Landroid/webkit/WebView;->onActivityResult(IILandroid/content/Intent;)V
+Landroid/webkit/WebView;->onDetachedFromWindowInternal()V
+Landroid/webkit/WebView;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/webkit/WebView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/webkit/WebView;->onMovedToDisplay(ILandroid/content/res/Configuration;)V
+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;
+Landroid/webkit/WebViewFactory;->CHROMIUM_WEBVIEW_FACTORY_METHOD:Ljava/lang/String;
+Landroid/webkit/WebViewFactory;->DEBUG:Z
+Landroid/webkit/WebViewFactory;->disableWebView()V
+Landroid/webkit/WebViewFactory;->fixupStubApplicationInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/pm/PackageManager;)V
+Landroid/webkit/WebViewFactory;->getDataDirectorySuffix()Ljava/lang/String;
+Landroid/webkit/WebViewFactory;->getUpdateServiceUnchecked()Landroid/webkit/IWebViewUpdateService;
+Landroid/webkit/WebViewFactory;->getWebViewLibrary(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
+Landroid/webkit/WebViewFactory;->getWebViewPreparationErrorReason(I)Ljava/lang/String;
+Landroid/webkit/WebViewFactory;->getWebViewProviderClass(Ljava/lang/ClassLoader;)Ljava/lang/Class;
+Landroid/webkit/WebViewFactory;->isWebViewSupported()Z
+Landroid/webkit/WebViewFactory;->LOGTAG:Ljava/lang/String;
+Landroid/webkit/WebViewFactory;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)I
+Landroid/webkit/WebViewFactory;->sDataDirectorySuffix:Ljava/lang/String;
+Landroid/webkit/WebViewFactory;->setDataDirectorySuffix(Ljava/lang/String;)V
+Landroid/webkit/WebViewFactory;->signaturesEquals([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
+Landroid/webkit/WebViewFactory;->sProviderLock:Ljava/lang/Object;
+Landroid/webkit/WebViewFactory;->sWebViewDisabled:Z
+Landroid/webkit/WebViewFactory;->sWebViewSupported:Ljava/lang/Boolean;
+Landroid/webkit/WebViewFactory;->verifyPackageInfo(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;)V
+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;
+Landroid/webkit/WebViewLibraryLoader;->CHROMIUM_WEBVIEW_NATIVE_RELRO_64:Ljava/lang/String;
+Landroid/webkit/WebViewLibraryLoader;->createRelroFile(ZLandroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;)V
+Landroid/webkit/WebViewLibraryLoader;->createRelros(Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;)I
+Landroid/webkit/WebViewLibraryLoader;->DEBUG:Z
+Landroid/webkit/WebViewLibraryLoader;->findNativeLibrary(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;
+Landroid/webkit/WebViewLibraryLoader;->getLoadFromApkPath(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;
+Landroid/webkit/WebViewLibraryLoader;->getWebViewNativeLibrary(Landroid/content/pm/PackageInfo;Z)Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;
+Landroid/webkit/WebViewLibraryLoader;->getWebViewNativeLibraryDirectory(Landroid/content/pm/ApplicationInfo;Z)Ljava/lang/String;
+Landroid/webkit/WebViewLibraryLoader;->loadNativeLibrary(Ljava/lang/ClassLoader;Ljava/lang/String;)I
+Landroid/webkit/WebViewLibraryLoader;->LOGTAG:Ljava/lang/String;
+Landroid/webkit/WebViewLibraryLoader;->nativeCreateRelroFile(Ljava/lang/String;Ljava/lang/String;)Z
+Landroid/webkit/WebViewLibraryLoader;->nativeLoadWithRelroFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)I
+Landroid/webkit/WebViewLibraryLoader;->nativeReserveAddressSpace(J)Z
+Landroid/webkit/WebViewLibraryLoader;->prepareNativeLibraries(Landroid/content/pm/PackageInfo;)I
+Landroid/webkit/WebViewLibraryLoader;->reserveAddressSpaceInZygote()V
+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;
+Landroid/webkit/WebViewZygote;->getProcess()Landroid/os/ZygoteProcess;
+Landroid/webkit/WebViewZygote;->isMultiprocessEnabled()Z
+Landroid/webkit/WebViewZygote;->LOGTAG:Ljava/lang/String;
+Landroid/webkit/WebViewZygote;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;Landroid/content/pm/ApplicationInfo;)V
+Landroid/webkit/WebViewZygote;->setMultiprocessEnabled(Z)V
+Landroid/webkit/WebViewZygote;->sLock:Ljava/lang/Object;
+Landroid/webkit/WebViewZygote;->sMultiprocessEnabled:Z
+Landroid/webkit/WebViewZygote;->sPackage:Landroid/content/pm/PackageInfo;
+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
+Landroid/widget/AbsListView$FlingRunnable;->mCheckFlywheel:Ljava/lang/Runnable;
+Landroid/widget/AbsListView$FlingRunnable;->mLastFlingY:I
+Landroid/widget/AbsListView$FlingRunnable;->mSuppressIdleStateChangeCall:Z
+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;
+Landroid/widget/AbsListView$LayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/AbsListView$LayoutParams;->forceAdd:Z
+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
+Landroid/widget/AbsListView$PositionScroller;->mMode:I
+Landroid/widget/AbsListView$PositionScroller;->mOffsetFromTop:I
+Landroid/widget/AbsListView$PositionScroller;->MOVE_DOWN_BOUND:I
+Landroid/widget/AbsListView$PositionScroller;->MOVE_DOWN_POS:I
+Landroid/widget/AbsListView$PositionScroller;->MOVE_OFFSET:I
+Landroid/widget/AbsListView$PositionScroller;->MOVE_UP_BOUND:I
+Landroid/widget/AbsListView$PositionScroller;->MOVE_UP_POS:I
+Landroid/widget/AbsListView$PositionScroller;->mScrollDuration:I
+Landroid/widget/AbsListView$PositionScroller;->mTargetPos:I
+Landroid/widget/AbsListView$PositionScroller;->scrollToVisible(III)V
+Landroid/widget/AbsListView$PositionScroller;->SCROLL_DURATION:I
+Landroid/widget/AbsListView$PositionScroller;->start(I)V
+Landroid/widget/AbsListView$PositionScroller;->start(II)V
+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
+Landroid/widget/AbsListView$RecycleBin;->clearTransientStateViews()V
+Landroid/widget/AbsListView$RecycleBin;->fillActiveViews(II)V
+Landroid/widget/AbsListView$RecycleBin;->fullyDetachScrapViews()V
+Landroid/widget/AbsListView$RecycleBin;->getActiveView(I)Landroid/view/View;
+Landroid/widget/AbsListView$RecycleBin;->getScrapView(I)Landroid/view/View;
+Landroid/widget/AbsListView$RecycleBin;->getSkippedScrap()Ljava/util/ArrayList;
+Landroid/widget/AbsListView$RecycleBin;->getTransientStateView(I)Landroid/view/View;
+Landroid/widget/AbsListView$RecycleBin;->mActiveViews:[Landroid/view/View;
+Landroid/widget/AbsListView$RecycleBin;->markChildrenDirty()V
+Landroid/widget/AbsListView$RecycleBin;->mCurrentScrap:Ljava/util/ArrayList;
+Landroid/widget/AbsListView$RecycleBin;->mFirstActivePosition:I
+Landroid/widget/AbsListView$RecycleBin;->mScrapViews:[Ljava/util/ArrayList;
+Landroid/widget/AbsListView$RecycleBin;->mSkippedScrap:Ljava/util/ArrayList;
+Landroid/widget/AbsListView$RecycleBin;->mTransientStateViews:Landroid/util/SparseArray;
+Landroid/widget/AbsListView$RecycleBin;->mTransientStateViewsById:Landroid/util/LongSparseArray;
+Landroid/widget/AbsListView$RecycleBin;->mViewTypeCount:I
+Landroid/widget/AbsListView$RecycleBin;->pruneScrapViews()V
+Landroid/widget/AbsListView$RecycleBin;->reclaimScrapViews(Ljava/util/List;)V
+Landroid/widget/AbsListView$RecycleBin;->removeDetachedView(Landroid/view/View;Z)V
+Landroid/widget/AbsListView$RecycleBin;->removeSkippedScrap()V
+Landroid/widget/AbsListView$RecycleBin;->retrieveFromScrap(Ljava/util/ArrayList;I)Landroid/view/View;
+Landroid/widget/AbsListView$RecycleBin;->scrapActiveViews()V
+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
+Landroid/widget/AbsListView$SavedState;->checkIdState:Landroid/util/LongSparseArray;
+Landroid/widget/AbsListView$SavedState;->checkState:Landroid/util/SparseBooleanArray;
+Landroid/widget/AbsListView$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/widget/AbsListView$SavedState;->filter:Ljava/lang/String;
+Landroid/widget/AbsListView$SavedState;->height:I
+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
+Landroid/widget/AbsListView;->acceptFilter()Z
+Landroid/widget/AbsListView;->CHECK_POSITION_SEARCH_DISTANCE:I
+Landroid/widget/AbsListView;->clearScrollingCache()V
+Landroid/widget/AbsListView;->confirmCheckedPositionsById()V
+Landroid/widget/AbsListView;->contentFits()Z
+Landroid/widget/AbsListView;->createContextMenuInfo(Landroid/view/View;IJ)Landroid/view/ContextMenu$ContextMenuInfo;
+Landroid/widget/AbsListView;->createPositionScroller()Landroid/widget/AbsListView$AbsPositionScroller;
+Landroid/widget/AbsListView;->createScrollingCache()V
+Landroid/widget/AbsListView;->createTextFilter(Z)V
+Landroid/widget/AbsListView;->dismissPopup()V
+Landroid/widget/AbsListView;->drawSelector(Landroid/graphics/Canvas;)V
+Landroid/widget/AbsListView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/AbsListView;->fillGap(Z)V
+Landroid/widget/AbsListView;->findClosestMotionRow(I)I
+Landroid/widget/AbsListView;->findViewByAccessibilityIdTraversal(I)Landroid/view/View;
+Landroid/widget/AbsListView;->finishGlows()V
+Landroid/widget/AbsListView;->getAccessibilityFocusedChild(Landroid/view/View;)Landroid/view/View;
+Landroid/widget/AbsListView;->getDistance(Landroid/graphics/Rect;Landroid/graphics/Rect;I)I
+Landroid/widget/AbsListView;->getDrawableStateForSelector()[I
+Landroid/widget/AbsListView;->getFooterViewsCount()I
+Landroid/widget/AbsListView;->getHeaderViewsCount()I
+Landroid/widget/AbsListView;->getHeightForPosition(I)I
+Landroid/widget/AbsListView;->getSelectionModeForAccessibility()I
+Landroid/widget/AbsListView;->getTextFilterInput()Landroid/widget/EditText;
+Landroid/widget/AbsListView;->handleBoundsChange()V
+Landroid/widget/AbsListView;->handleScrollBarDragging(Landroid/view/MotionEvent;)Z
+Landroid/widget/AbsListView;->hideSelector()V
+Landroid/widget/AbsListView;->initAbsListView()V
+Landroid/widget/AbsListView;->initOrResetVelocityTracker()V
+Landroid/widget/AbsListView;->initVelocityTrackerIfNotExists()V
+Landroid/widget/AbsListView;->internalSetPadding(IIII)V
+Landroid/widget/AbsListView;->invalidateBottomGlow()V
+Landroid/widget/AbsListView;->invalidateTopGlow()V
+Landroid/widget/AbsListView;->INVALID_POINTER:I
+Landroid/widget/AbsListView;->isItemClickable(Landroid/view/View;)Z
+Landroid/widget/AbsListView;->isOwnerThread()Z
+Landroid/widget/AbsListView;->keyPressed()V
+Landroid/widget/AbsListView;->LAYOUT_FORCE_BOTTOM:I
+Landroid/widget/AbsListView;->LAYOUT_FORCE_TOP:I
+Landroid/widget/AbsListView;->LAYOUT_MOVE_SELECTION:I
+Landroid/widget/AbsListView;->LAYOUT_NORMAL:I
+Landroid/widget/AbsListView;->LAYOUT_SET_SELECTION:I
+Landroid/widget/AbsListView;->LAYOUT_SPECIFIC:I
+Landroid/widget/AbsListView;->LAYOUT_SYNC:I
+Landroid/widget/AbsListView;->mAccessibilityDelegate:Landroid/widget/AbsListView$ListItemAccessibilityDelegate;
+Landroid/widget/AbsListView;->mAdapterHasStableIds:Z
+Landroid/widget/AbsListView;->mCacheColorHint:I
+Landroid/widget/AbsListView;->mCachingActive:Z
+Landroid/widget/AbsListView;->mCachingStarted:Z
+Landroid/widget/AbsListView;->mCheckedIdStates:Landroid/util/LongSparseArray;
+Landroid/widget/AbsListView;->mCheckedItemCount:I
+Landroid/widget/AbsListView;->mCheckStates:Landroid/util/SparseBooleanArray;
+Landroid/widget/AbsListView;->mChoiceMode:I
+Landroid/widget/AbsListView;->mClearScrollingCache:Ljava/lang/Runnable;
+Landroid/widget/AbsListView;->mDeferNotifyDataSetChanged:Z
+Landroid/widget/AbsListView;->mDefInputConnection:Landroid/view/inputmethod/InputConnection;
+Landroid/widget/AbsListView;->mDensityScale:F
+Landroid/widget/AbsListView;->mDirection:I
+Landroid/widget/AbsListView;->mDrawSelectorOnTop:Z
+Landroid/widget/AbsListView;->mFastScrollAlwaysVisible:Z
+Landroid/widget/AbsListView;->mFastScrollEnabled:Z
+Landroid/widget/AbsListView;->mFastScrollStyle:I
+Landroid/widget/AbsListView;->mFiltered:Z
+Landroid/widget/AbsListView;->mFirstPositionDistanceGuess:I
+Landroid/widget/AbsListView;->mFlingProfilingStarted:Z
+Landroid/widget/AbsListView;->mFlingStrictSpan:Landroid/os/StrictMode$Span;
+Landroid/widget/AbsListView;->mForceTranscriptScroll:Z
+Landroid/widget/AbsListView;->mGlobalLayoutListenerAddedFilter:Z
+Landroid/widget/AbsListView;->mHasPerformedLongPress:Z
+Landroid/widget/AbsListView;->mIsDetaching:Z
+Landroid/widget/AbsListView;->mIsScrap:[Z
+Landroid/widget/AbsListView;->mLastAccessibilityScrollEventFromIndex:I
+Landroid/widget/AbsListView;->mLastAccessibilityScrollEventToIndex:I
+Landroid/widget/AbsListView;->mLastHandledItemCount:I
+Landroid/widget/AbsListView;->mLastPositionDistanceGuess:I
+Landroid/widget/AbsListView;->mLastScrollState:I
+Landroid/widget/AbsListView;->mLastTouchMode:I
+Landroid/widget/AbsListView;->mLastY:I
+Landroid/widget/AbsListView;->mListPadding:Landroid/graphics/Rect;
+Landroid/widget/AbsListView;->mMinimumVelocity:I
+Landroid/widget/AbsListView;->mMotionCorrection:I
+Landroid/widget/AbsListView;->mMotionViewNewTop:I
+Landroid/widget/AbsListView;->mMotionViewOriginalTop:I
+Landroid/widget/AbsListView;->mMotionX:I
+Landroid/widget/AbsListView;->mMultiChoiceModeCallback:Landroid/widget/AbsListView$MultiChoiceModeWrapper;
+Landroid/widget/AbsListView;->mNestedYOffset:I
+Landroid/widget/AbsListView;->mOverscrollMax:I
+Landroid/widget/AbsListView;->mOwnerThread:Ljava/lang/Thread;
+Landroid/widget/AbsListView;->mPendingCheckForKeyLongPress:Landroid/widget/AbsListView$CheckForKeyLongPress;
+Landroid/widget/AbsListView;->mPendingSync:Landroid/widget/AbsListView$SavedState;
+Landroid/widget/AbsListView;->mPerformClick:Landroid/widget/AbsListView$PerformClick;
+Landroid/widget/AbsListView;->mPopupHidden:Z
+Landroid/widget/AbsListView;->mPositionScrollAfterLayout:Ljava/lang/Runnable;
+Landroid/widget/AbsListView;->mPublicInputConnection:Landroid/widget/AbsListView$InputConnectionWrapper;
+Landroid/widget/AbsListView;->mRemoteAdapter:Landroid/widget/RemoteViewsAdapter;
+Landroid/widget/AbsListView;->mResurrectToPosition:I
+Landroid/widget/AbsListView;->mScrollConsumed:[I
+Landroid/widget/AbsListView;->mScrollDown:Landroid/view/View;
+Landroid/widget/AbsListView;->mScrollingCacheEnabled:Z
+Landroid/widget/AbsListView;->mScrollOffset:[I
+Landroid/widget/AbsListView;->mScrollProfilingStarted:Z
+Landroid/widget/AbsListView;->mScrollStrictSpan:Landroid/os/StrictMode$Span;
+Landroid/widget/AbsListView;->mScrollUp:Landroid/view/View;
+Landroid/widget/AbsListView;->mSelectedTop:I
+Landroid/widget/AbsListView;->mSelectionLeftPadding:I
+Landroid/widget/AbsListView;->mSelectionRightPadding:I
+Landroid/widget/AbsListView;->mSelectorState:[I
+Landroid/widget/AbsListView;->mSmoothScrollbarEnabled:Z
+Landroid/widget/AbsListView;->mStackFromBottom:Z
+Landroid/widget/AbsListView;->mTextFilter:Landroid/widget/EditText;
+Landroid/widget/AbsListView;->mTextFilterEnabled:Z
+Landroid/widget/AbsListView;->mTmpPoint:[F
+Landroid/widget/AbsListView;->mTouchFrame:Landroid/graphics/Rect;
+Landroid/widget/AbsListView;->mTouchModeReset:Ljava/lang/Runnable;
+Landroid/widget/AbsListView;->mTranscriptMode:I
+Landroid/widget/AbsListView;->mVelocityScale:F
+Landroid/widget/AbsListView;->mVerticalScrollFactor:F
+Landroid/widget/AbsListView;->mWidthMeasureSpec:I
+Landroid/widget/AbsListView;->obtainView(I[Z)Landroid/view/View;
+Landroid/widget/AbsListView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/AbsListView;->onSecondaryPointerUp(Landroid/view/MotionEvent;)V
+Landroid/widget/AbsListView;->onTouchCancel()V
+Landroid/widget/AbsListView;->onTouchDown(Landroid/view/MotionEvent;)V
+Landroid/widget/AbsListView;->onTouchMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)V
+Landroid/widget/AbsListView;->onTouchUp(Landroid/view/MotionEvent;)V
+Landroid/widget/AbsListView;->OVERSCROLL_LIMIT_DIVISOR:I
+Landroid/widget/AbsListView;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/AbsListView;->performStylusButtonPressAction(Landroid/view/MotionEvent;)Z
+Landroid/widget/AbsListView;->positionPopup()V
+Landroid/widget/AbsListView;->positionSelector(ILandroid/view/View;)V
+Landroid/widget/AbsListView;->positionSelectorLikeFocus(ILandroid/view/View;)V
+Landroid/widget/AbsListView;->positionSelectorLikeTouch(ILandroid/view/View;FF)V
+Landroid/widget/AbsListView;->PROFILE_FLINGING:Z
+Landroid/widget/AbsListView;->PROFILE_SCROLLING:Z
+Landroid/widget/AbsListView;->reconcileSelectedPosition()I
+Landroid/widget/AbsListView;->recycleVelocityTracker()V
+Landroid/widget/AbsListView;->requestLayoutIfNecessary()V
+Landroid/widget/AbsListView;->resetList()V
+Landroid/widget/AbsListView;->resurrectSelection()Z
+Landroid/widget/AbsListView;->scrollIfNeeded(IILandroid/view/MotionEvent;)V
+Landroid/widget/AbsListView;->sendToTextFilter(IILandroid/view/KeyEvent;)Z
+Landroid/widget/AbsListView;->setFastScrollerAlwaysVisibleUiThread(Z)V
+Landroid/widget/AbsListView;->setFastScrollerEnabledUiThread(Z)V
+Landroid/widget/AbsListView;->setFrame(IIII)Z
+Landroid/widget/AbsListView;->setItemViewLayoutParams(Landroid/view/View;I)V
+Landroid/widget/AbsListView;->setRemoteViewsAdapter(Landroid/content/Intent;Z)V
+Landroid/widget/AbsListView;->setRemoteViewsAdapterAsync(Landroid/content/Intent;)Ljava/lang/Runnable;
+Landroid/widget/AbsListView;->setRemoteViewsOnClickHandler(Landroid/widget/RemoteViews$OnClickHandler;)V
+Landroid/widget/AbsListView;->setSelectionInt(I)V
+Landroid/widget/AbsListView;->setVisibleRangeHint(II)V
+Landroid/widget/AbsListView;->shouldShowSelector()Z
+Landroid/widget/AbsListView;->showContextMenuForChildInternal(Landroid/view/View;FFZ)Z
+Landroid/widget/AbsListView;->showContextMenuInternal(FFZ)Z
+Landroid/widget/AbsListView;->showPopup()V
+Landroid/widget/AbsListView;->sLinearInterpolator:Landroid/view/animation/Interpolator;
+Landroid/widget/AbsListView;->smoothScrollByOffset(I)V
+Landroid/widget/AbsListView;->startScrollIfNeeded(IILandroid/view/MotionEvent;)Z
+Landroid/widget/AbsListView;->TAG:Ljava/lang/String;
+Landroid/widget/AbsListView;->touchModeDrawsInPressedState()Z
+Landroid/widget/AbsListView;->TOUCH_MODE_DONE_WAITING:I
+Landroid/widget/AbsListView;->TOUCH_MODE_DOWN:I
+Landroid/widget/AbsListView;->TOUCH_MODE_FLING:I
+Landroid/widget/AbsListView;->TOUCH_MODE_OFF:I
+Landroid/widget/AbsListView;->TOUCH_MODE_ON:I
+Landroid/widget/AbsListView;->TOUCH_MODE_OVERFLING:I
+Landroid/widget/AbsListView;->TOUCH_MODE_OVERSCROLL:I
+Landroid/widget/AbsListView;->TOUCH_MODE_REST:I
+Landroid/widget/AbsListView;->TOUCH_MODE_SCROLL:I
+Landroid/widget/AbsListView;->TOUCH_MODE_TAP:I
+Landroid/widget/AbsListView;->TOUCH_MODE_UNKNOWN:I
+Landroid/widget/AbsListView;->updateOnScreenCheckedViews()V
+Landroid/widget/AbsListView;->updateScrollIndicators()V
+Landroid/widget/AbsListView;->useDefaultSelector()V
+Landroid/widget/AbsSeekBar;->applyThumbTint()V
+Landroid/widget/AbsSeekBar;->applyTickMarkTint()V
+Landroid/widget/AbsSeekBar;->attemptClaimDrag()V
+Landroid/widget/AbsSeekBar;->canUserSetProgress()Z
+Landroid/widget/AbsSeekBar;->drawTickMarks(Landroid/graphics/Canvas;)V
+Landroid/widget/AbsSeekBar;->drawTrack(Landroid/graphics/Canvas;)V
+Landroid/widget/AbsSeekBar;->getScale()F
+Landroid/widget/AbsSeekBar;->mHasThumbTint:Z
+Landroid/widget/AbsSeekBar;->mHasThumbTintMode:Z
+Landroid/widget/AbsSeekBar;->mHasTickMarkTint:Z
+Landroid/widget/AbsSeekBar;->mHasTickMarkTintMode:Z
+Landroid/widget/AbsSeekBar;->mKeyProgressIncrement:I
+Landroid/widget/AbsSeekBar;->mScaledTouchSlop:I
+Landroid/widget/AbsSeekBar;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/AbsSeekBar;->mThumbOffset:I
+Landroid/widget/AbsSeekBar;->mThumbTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/AbsSeekBar;->mThumbTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/AbsSeekBar;->mTickMark:Landroid/graphics/drawable/Drawable;
+Landroid/widget/AbsSeekBar;->mTickMarkTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/AbsSeekBar;->mTickMarkTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/AbsSeekBar;->mTouchDownX:F
+Landroid/widget/AbsSeekBar;->NO_ALPHA:I
+Landroid/widget/AbsSeekBar;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/AbsSeekBar;->onKeyChange()V
+Landroid/widget/AbsSeekBar;->onResolveDrawables(I)V
+Landroid/widget/AbsSeekBar;->onStartTrackingTouch()V
+Landroid/widget/AbsSeekBar;->onStopTrackingTouch()V
+Landroid/widget/AbsSeekBar;->onVisualProgressChanged(IF)V
+Landroid/widget/AbsSeekBar;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/AbsSeekBar;->setHotspot(FF)V
+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;
+Landroid/widget/AbsSpinner$SavedState;->position:I
+Landroid/widget/AbsSpinner$SavedState;->selectedId:J
+Landroid/widget/AbsSpinner;->getChildHeight(Landroid/view/View;)I
+Landroid/widget/AbsSpinner;->getChildWidth(Landroid/view/View;)I
+Landroid/widget/AbsSpinner;->initAbsSpinner()V
+Landroid/widget/AbsSpinner;->layout(IZ)V
+Landroid/widget/AbsSpinner;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/AbsSpinner;->mAdapter:Landroid/widget/SpinnerAdapter;
+Landroid/widget/AbsSpinner;->mDataSetObserver:Landroid/database/DataSetObserver;
+Landroid/widget/AbsSpinner;->mHeightMeasureSpec:I
+Landroid/widget/AbsSpinner;->mRecycler:Landroid/widget/AbsSpinner$RecycleBin;
+Landroid/widget/AbsSpinner;->mSelectionBottomPadding:I
+Landroid/widget/AbsSpinner;->mSelectionLeftPadding:I
+Landroid/widget/AbsSpinner;->mSelectionRightPadding:I
+Landroid/widget/AbsSpinner;->mSelectionTopPadding:I
+Landroid/widget/AbsSpinner;->mSpinnerPadding:Landroid/graphics/Rect;
+Landroid/widget/AbsSpinner;->mTouchFrame:Landroid/graphics/Rect;
+Landroid/widget/AbsSpinner;->mWidthMeasureSpec:I
+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
+Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;->FADE_IN:I
+Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;->FADE_OUT:I
+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
+Landroid/widget/ActionMenuPresenter;->computeMenuItemAnimationInfo(Z)V
+Landroid/widget/ActionMenuPresenter;->filterLeftoverView(Landroid/view/ViewGroup;I)Z
+Landroid/widget/ActionMenuPresenter;->findViewForItem(Landroid/view/MenuItem;)Landroid/view/View;
+Landroid/widget/ActionMenuPresenter;->flagActionItems()Z
+Landroid/widget/ActionMenuPresenter;->getItemView(Lcom/android/internal/view/menu/MenuItemImpl;Landroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
+Landroid/widget/ActionMenuPresenter;->getMenuView(Landroid/view/ViewGroup;)Lcom/android/internal/view/menu/MenuView;
+Landroid/widget/ActionMenuPresenter;->getOverflowIcon()Landroid/graphics/drawable/Drawable;
+Landroid/widget/ActionMenuPresenter;->hideOverflowMenu()Z
+Landroid/widget/ActionMenuPresenter;->hideSubMenus()Z
+Landroid/widget/ActionMenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+Landroid/widget/ActionMenuPresenter;->isOverflowMenuShowPending()Z
+Landroid/widget/ActionMenuPresenter;->isOverflowReserved()Z
+Landroid/widget/ActionMenuPresenter;->ITEM_ANIMATION_DURATION:I
+Landroid/widget/ActionMenuPresenter;->mActionButtonGroups:Landroid/util/SparseBooleanArray;
+Landroid/widget/ActionMenuPresenter;->mActionButtonPopup:Landroid/widget/ActionMenuPresenter$ActionButtonSubmenu;
+Landroid/widget/ActionMenuPresenter;->mActionItemWidthLimit:I
+Landroid/widget/ActionMenuPresenter;->mAttachStateChangeListener:Landroid/view/View$OnAttachStateChangeListener;
+Landroid/widget/ActionMenuPresenter;->mExpandedActionViewsExclusive:Z
+Landroid/widget/ActionMenuPresenter;->mItemAnimationPreDrawListener:Landroid/view/ViewTreeObserver$OnPreDrawListener;
+Landroid/widget/ActionMenuPresenter;->mMaxItems:I
+Landroid/widget/ActionMenuPresenter;->mMaxItemsSet:Z
+Landroid/widget/ActionMenuPresenter;->mMinCellSize:I
+Landroid/widget/ActionMenuPresenter;->mOpenSubMenuId:I
+Landroid/widget/ActionMenuPresenter;->mOverflowButton:Landroid/widget/ActionMenuPresenter$OverflowMenuButton;
+Landroid/widget/ActionMenuPresenter;->mOverflowPopup:Landroid/widget/ActionMenuPresenter$OverflowPopup;
+Landroid/widget/ActionMenuPresenter;->mPendingOverflowIcon:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ActionMenuPresenter;->mPendingOverflowIconSet:Z
+Landroid/widget/ActionMenuPresenter;->mPopupCallback:Landroid/widget/ActionMenuPresenter$ActionMenuPopupCallback;
+Landroid/widget/ActionMenuPresenter;->mPopupPresenterCallback:Landroid/widget/ActionMenuPresenter$PopupPresenterCallback;
+Landroid/widget/ActionMenuPresenter;->mPostedOpenRunnable:Landroid/widget/ActionMenuPresenter$OpenOverflowRunnable;
+Landroid/widget/ActionMenuPresenter;->mPostLayoutItems:Landroid/util/SparseArray;
+Landroid/widget/ActionMenuPresenter;->mPreLayoutItems:Landroid/util/SparseArray;
+Landroid/widget/ActionMenuPresenter;->mReserveOverflow:Z
+Landroid/widget/ActionMenuPresenter;->mReserveOverflowSet:Z
+Landroid/widget/ActionMenuPresenter;->mRunningItemAnimations:Ljava/util/List;
+Landroid/widget/ActionMenuPresenter;->mStrictWidthLimit:Z
+Landroid/widget/ActionMenuPresenter;->mWidthLimit:I
+Landroid/widget/ActionMenuPresenter;->mWidthLimitSet:Z
+Landroid/widget/ActionMenuPresenter;->onCloseMenu(Lcom/android/internal/view/menu/MenuBuilder;Z)V
+Landroid/widget/ActionMenuPresenter;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/widget/ActionMenuPresenter;->onSubMenuSelected(Lcom/android/internal/view/menu/SubMenuBuilder;)Z
+Landroid/widget/ActionMenuPresenter;->onSubUiVisibilityChanged(Z)V
+Landroid/widget/ActionMenuPresenter;->runItemAnimations()V
+Landroid/widget/ActionMenuPresenter;->setExpandedActionViewsExclusive(Z)V
+Landroid/widget/ActionMenuPresenter;->setItemLimit(I)V
+Landroid/widget/ActionMenuPresenter;->setMenuView(Landroid/widget/ActionMenuView;)V
+Landroid/widget/ActionMenuPresenter;->setOverflowIcon(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/ActionMenuPresenter;->setReserveOverflow(Z)V
+Landroid/widget/ActionMenuPresenter;->setupItemAnimations()V
+Landroid/widget/ActionMenuPresenter;->setWidthLimit(IZ)V
+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
+Landroid/widget/ActionMenuView;->GENERATED_ITEM_PADDING:I
+Landroid/widget/ActionMenuView;->generateOverflowButtonLayoutParams()Landroid/widget/ActionMenuView$LayoutParams;
+Landroid/widget/ActionMenuView;->getWindowAnimations()I
+Landroid/widget/ActionMenuView;->initialize(Lcom/android/internal/view/menu/MenuBuilder;)V
+Landroid/widget/ActionMenuView;->invokeItem(Lcom/android/internal/view/menu/MenuItemImpl;)Z
+Landroid/widget/ActionMenuView;->mActionMenuPresenterCallback:Lcom/android/internal/view/menu/MenuPresenter$Callback;
+Landroid/widget/ActionMenuView;->measureChildForCells(Landroid/view/View;IIII)I
+Landroid/widget/ActionMenuView;->mFormatItems:Z
+Landroid/widget/ActionMenuView;->mFormatItemsWidth:I
+Landroid/widget/ActionMenuView;->mGeneratedItemPadding:I
+Landroid/widget/ActionMenuView;->MIN_CELL_SIZE:I
+Landroid/widget/ActionMenuView;->mMenu:Lcom/android/internal/view/menu/MenuBuilder;
+Landroid/widget/ActionMenuView;->mMenuBuilderCallback:Lcom/android/internal/view/menu/MenuBuilder$Callback;
+Landroid/widget/ActionMenuView;->mMinCellSize:I
+Landroid/widget/ActionMenuView;->mOnMenuItemClickListener:Landroid/widget/ActionMenuView$OnMenuItemClickListener;
+Landroid/widget/ActionMenuView;->mPopupContext:Landroid/content/Context;
+Landroid/widget/ActionMenuView;->mPopupTheme:I
+Landroid/widget/ActionMenuView;->mPresenter:Landroid/widget/ActionMenuPresenter;
+Landroid/widget/ActionMenuView;->mReserveOverflow:Z
+Landroid/widget/ActionMenuView;->onMeasureExactFormat(II)V
+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;
+Landroid/widget/ActivityChooserModel;->ATTRIBUTE_TIME:Ljava/lang/String;
+Landroid/widget/ActivityChooserModel;->ATTRIBUTE_WEIGHT:Ljava/lang/String;
+Landroid/widget/ActivityChooserModel;->DEBUG:Z
+Landroid/widget/ActivityChooserModel;->DEFAULT_ACTIVITY_INFLATION:I
+Landroid/widget/ActivityChooserModel;->DEFAULT_HISTORICAL_RECORD_WEIGHT:F
+Landroid/widget/ActivityChooserModel;->DEFAULT_HISTORY_FILE_NAME:Ljava/lang/String;
+Landroid/widget/ActivityChooserModel;->DEFAULT_HISTORY_MAX_LENGTH:I
+Landroid/widget/ActivityChooserModel;->ensureConsistentState()V
+Landroid/widget/ActivityChooserModel;->getActivityIndex(Landroid/content/pm/ResolveInfo;)I
+Landroid/widget/ActivityChooserModel;->getDefaultActivity()Landroid/content/pm/ResolveInfo;
+Landroid/widget/ActivityChooserModel;->getHistoryMaxSize()I
+Landroid/widget/ActivityChooserModel;->getHistorySize()I
+Landroid/widget/ActivityChooserModel;->getIntent()Landroid/content/Intent;
+Landroid/widget/ActivityChooserModel;->HISTORY_FILE_EXTENSION:Ljava/lang/String;
+Landroid/widget/ActivityChooserModel;->INVALID_INDEX:I
+Landroid/widget/ActivityChooserModel;->loadActivitiesIfNeeded()Z
+Landroid/widget/ActivityChooserModel;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/ActivityChooserModel;->mActivities:Ljava/util/List;
+Landroid/widget/ActivityChooserModel;->mActivityChoserModelPolicy:Landroid/widget/ActivityChooserModel$OnChooseActivityListener;
+Landroid/widget/ActivityChooserModel;->mActivitySorter:Landroid/widget/ActivityChooserModel$ActivitySorter;
+Landroid/widget/ActivityChooserModel;->mCanReadHistoricalData:Z
+Landroid/widget/ActivityChooserModel;->mContext:Landroid/content/Context;
+Landroid/widget/ActivityChooserModel;->mHistoricalRecords:Ljava/util/List;
+Landroid/widget/ActivityChooserModel;->mHistoricalRecordsChanged:Z
+Landroid/widget/ActivityChooserModel;->mHistoryFileName:Ljava/lang/String;
+Landroid/widget/ActivityChooserModel;->mHistoryMaxSize:I
+Landroid/widget/ActivityChooserModel;->mInstanceLock:Ljava/lang/Object;
+Landroid/widget/ActivityChooserModel;->mIntent:Landroid/content/Intent;
+Landroid/widget/ActivityChooserModel;->mPackageMonitor:Lcom/android/internal/content/PackageMonitor;
+Landroid/widget/ActivityChooserModel;->mReadShareHistoryCalled:Z
+Landroid/widget/ActivityChooserModel;->mReloadActivities:Z
+Landroid/widget/ActivityChooserModel;->persistHistoricalDataIfNeeded()V
+Landroid/widget/ActivityChooserModel;->pruneExcessiveHistoricalRecordsIfNeeded()V
+Landroid/widget/ActivityChooserModel;->readHistoricalDataIfNeeded()Z
+Landroid/widget/ActivityChooserModel;->readHistoricalDataImpl()V
+Landroid/widget/ActivityChooserModel;->sDataModelRegistry:Ljava/util/Map;
+Landroid/widget/ActivityChooserModel;->setActivitySorter(Landroid/widget/ActivityChooserModel$ActivitySorter;)V
+Landroid/widget/ActivityChooserModel;->setDefaultActivity(I)V
+Landroid/widget/ActivityChooserModel;->setHistoryMaxSize(I)V
+Landroid/widget/ActivityChooserModel;->sortActivitiesIfNeeded()Z
+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;
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->getHistorySize()I
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->getShowDefaultActivity()Z
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->ITEM_VIEW_TYPE_ACTIVITY:I
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->ITEM_VIEW_TYPE_COUNT:I
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->ITEM_VIEW_TYPE_FOOTER:I
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->MAX_ACTIVITY_COUNT_DEFAULT:I
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->MAX_ACTIVITY_COUNT_UNLIMITED:I
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->mDataModel:Landroid/widget/ActivityChooserModel;
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->measureContentWidth()I
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->mHighlightDefaultActivity:Z
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->mMaxActivityCount:I
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->mShowDefaultActivity:Z
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->mShowFooterView:Z
+Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->setDataModel(Landroid/widget/ActivityChooserModel;)V
+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
+Landroid/widget/ActivityChooserView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/widget/ActivityChooserView;->dismissPopup()Z
+Landroid/widget/ActivityChooserView;->getDataModel()Landroid/widget/ActivityChooserModel;
+Landroid/widget/ActivityChooserView;->getListPopupWindow()Landroid/widget/ListPopupWindow;
+Landroid/widget/ActivityChooserView;->isShowingPopup()Z
+Landroid/widget/ActivityChooserView;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/ActivityChooserView;->mActivityChooserContent:Landroid/widget/LinearLayout;
+Landroid/widget/ActivityChooserView;->mActivityChooserContentBackground:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ActivityChooserView;->mAdapter:Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;
+Landroid/widget/ActivityChooserView;->mCallbacks:Landroid/widget/ActivityChooserView$Callbacks;
+Landroid/widget/ActivityChooserView;->mDefaultActionButtonContentDescription:I
+Landroid/widget/ActivityChooserView;->mDefaultActivityButton:Landroid/widget/FrameLayout;
+Landroid/widget/ActivityChooserView;->mDefaultActivityButtonImage:Landroid/widget/ImageView;
+Landroid/widget/ActivityChooserView;->mExpandActivityOverflowButton:Landroid/widget/FrameLayout;
+Landroid/widget/ActivityChooserView;->mExpandActivityOverflowButtonImage:Landroid/widget/ImageView;
+Landroid/widget/ActivityChooserView;->mInitialActivityCount:I
+Landroid/widget/ActivityChooserView;->mIsAttachedToWindow:Z
+Landroid/widget/ActivityChooserView;->mIsSelectingDefaultActivity:Z
+Landroid/widget/ActivityChooserView;->mListPopupMaxWidth:I
+Landroid/widget/ActivityChooserView;->mListPopupWindow:Landroid/widget/ListPopupWindow;
+Landroid/widget/ActivityChooserView;->mModelDataSetOberver:Landroid/database/DataSetObserver;
+Landroid/widget/ActivityChooserView;->mOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener;
+Landroid/widget/ActivityChooserView;->mOnGlobalLayoutListener:Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;
+Landroid/widget/ActivityChooserView;->mProvider:Landroid/view/ActionProvider;
+Landroid/widget/ActivityChooserView;->setActivityChooserModel(Landroid/widget/ActivityChooserModel;)V
+Landroid/widget/ActivityChooserView;->setDefaultActionButtonContentDescription(I)V
+Landroid/widget/ActivityChooserView;->setExpandActivityOverflowButtonContentDescription(I)V
+Landroid/widget/ActivityChooserView;->setInitialActivityCount(I)V
+Landroid/widget/ActivityChooserView;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V
+Landroid/widget/ActivityChooserView;->setProvider(Landroid/view/ActionProvider;)V
+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
+Landroid/widget/AdapterView;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+Landroid/widget/AdapterView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/AdapterView;->findSyncPosition()I
+Landroid/widget/AdapterView;->fireOnSelected()V
+Landroid/widget/AdapterView;->handleDataChanged()V
+Landroid/widget/AdapterView;->isInFilterMode()Z
+Landroid/widget/AdapterView;->isScrollableForAccessibility()Z
+Landroid/widget/AdapterView;->lookForSelectablePosition(IZ)I
+Landroid/widget/AdapterView;->mBlockLayoutRequests:Z
+Landroid/widget/AdapterView;->mDesiredFocusableInTouchModeState:Z
+Landroid/widget/AdapterView;->mDesiredFocusableState:I
+Landroid/widget/AdapterView;->mEmptyView:Landroid/view/View;
+Landroid/widget/AdapterView;->mInLayout:Z
+Landroid/widget/AdapterView;->mItemCount:I
+Landroid/widget/AdapterView;->mLayoutHeight:I
+Landroid/widget/AdapterView;->mOldItemCount:I
+Landroid/widget/AdapterView;->mOldSelectedRowId:J
+Landroid/widget/AdapterView;->mOnItemLongClickListener:Landroid/widget/AdapterView$OnItemLongClickListener;
+Landroid/widget/AdapterView;->mPendingSelectionNotifier:Landroid/widget/AdapterView$SelectionNotifier;
+Landroid/widget/AdapterView;->mSelectedRowId:J
+Landroid/widget/AdapterView;->mSelectionNotifier:Landroid/widget/AdapterView$SelectionNotifier;
+Landroid/widget/AdapterView;->mSpecificTop:I
+Landroid/widget/AdapterView;->mSyncHeight:J
+Landroid/widget/AdapterView;->mSyncMode:I
+Landroid/widget/AdapterView;->mSyncRowId:J
+Landroid/widget/AdapterView;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/AdapterView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/AdapterView;->onRequestSendAccessibilityEventInternal(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z
+Landroid/widget/AdapterView;->performAccessibilityActionsOnSelected()V
+Landroid/widget/AdapterView;->rememberSyncState()V
+Landroid/widget/AdapterView;->SYNC_FIRST_POSITION:I
+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
+Landroid/widget/AdapterViewAnimator$ViewAndMetaData;->view:Landroid/view/View;
+Landroid/widget/AdapterViewAnimator;->addChild(Landroid/view/View;)V
+Landroid/widget/AdapterViewAnimator;->applyTransformForChildAtIndex(Landroid/view/View;I)V
+Landroid/widget/AdapterViewAnimator;->cancelHandleClick()V
+Landroid/widget/AdapterViewAnimator;->checkForAndHandleDataChanged()V
+Landroid/widget/AdapterViewAnimator;->configureViewAnimator(II)V
+Landroid/widget/AdapterViewAnimator;->createOrReuseLayoutParams(Landroid/view/View;)Landroid/view/ViewGroup$LayoutParams;
+Landroid/widget/AdapterViewAnimator;->DEFAULT_ANIMATION_DURATION:I
+Landroid/widget/AdapterViewAnimator;->getDefaultInAnimation()Landroid/animation/ObjectAnimator;
+Landroid/widget/AdapterViewAnimator;->getDefaultOutAnimation()Landroid/animation/ObjectAnimator;
+Landroid/widget/AdapterViewAnimator;->getFrameForChild()Landroid/widget/FrameLayout;
+Landroid/widget/AdapterViewAnimator;->getMetaDataForChild(Landroid/view/View;)Landroid/widget/AdapterViewAnimator$ViewAndMetaData;
+Landroid/widget/AdapterViewAnimator;->getNumActiveViews()I
+Landroid/widget/AdapterViewAnimator;->getViewAtRelativeIndex(I)Landroid/view/View;
+Landroid/widget/AdapterViewAnimator;->getWindowSize()I
+Landroid/widget/AdapterViewAnimator;->hideTapFeedback(Landroid/view/View;)V
+Landroid/widget/AdapterViewAnimator;->initViewAnimator()V
+Landroid/widget/AdapterViewAnimator;->mActiveOffset:I
+Landroid/widget/AdapterViewAnimator;->mAdapter:Landroid/widget/Adapter;
+Landroid/widget/AdapterViewAnimator;->mAnimateFirstTime:Z
+Landroid/widget/AdapterViewAnimator;->mCurrentWindowEnd:I
+Landroid/widget/AdapterViewAnimator;->mCurrentWindowStart:I
+Landroid/widget/AdapterViewAnimator;->mCurrentWindowStartUnbounded:I
+Landroid/widget/AdapterViewAnimator;->mDataSetObserver:Landroid/widget/AdapterView$AdapterDataSetObserver;
+Landroid/widget/AdapterViewAnimator;->mDeferNotifyDataSetChanged:Z
+Landroid/widget/AdapterViewAnimator;->measureChildren()V
+Landroid/widget/AdapterViewAnimator;->mFirstTime:Z
+Landroid/widget/AdapterViewAnimator;->mInAnimation:Landroid/animation/ObjectAnimator;
+Landroid/widget/AdapterViewAnimator;->mLoopViews:Z
+Landroid/widget/AdapterViewAnimator;->mMaxNumActiveViews:I
+Landroid/widget/AdapterViewAnimator;->modulo(II)I
+Landroid/widget/AdapterViewAnimator;->mOutAnimation:Landroid/animation/ObjectAnimator;
+Landroid/widget/AdapterViewAnimator;->mPendingCheckForTap:Ljava/lang/Runnable;
+Landroid/widget/AdapterViewAnimator;->mPreviousViews:Ljava/util/ArrayList;
+Landroid/widget/AdapterViewAnimator;->mReferenceChildHeight:I
+Landroid/widget/AdapterViewAnimator;->mReferenceChildWidth:I
+Landroid/widget/AdapterViewAnimator;->mRemoteViewsAdapter:Landroid/widget/RemoteViewsAdapter;
+Landroid/widget/AdapterViewAnimator;->mRestoreWhichChild:I
+Landroid/widget/AdapterViewAnimator;->mTouchMode:I
+Landroid/widget/AdapterViewAnimator;->mViewsMap:Ljava/util/HashMap;
+Landroid/widget/AdapterViewAnimator;->mWhichChild:I
+Landroid/widget/AdapterViewAnimator;->refreshChildren()V
+Landroid/widget/AdapterViewAnimator;->setDisplayedChild(IZ)V
+Landroid/widget/AdapterViewAnimator;->setRemoteViewsAdapter(Landroid/content/Intent;Z)V
+Landroid/widget/AdapterViewAnimator;->setRemoteViewsAdapterAsync(Landroid/content/Intent;)Ljava/lang/Runnable;
+Landroid/widget/AdapterViewAnimator;->setRemoteViewsOnClickHandler(Landroid/widget/RemoteViews$OnClickHandler;)V
+Landroid/widget/AdapterViewAnimator;->showOnly(IZ)V
+Landroid/widget/AdapterViewAnimator;->showTapFeedback(Landroid/view/View;)V
+Landroid/widget/AdapterViewAnimator;->TAG:Ljava/lang/String;
+Landroid/widget/AdapterViewAnimator;->TOUCH_MODE_DOWN_IN_CURRENT_VIEW:I
+Landroid/widget/AdapterViewAnimator;->TOUCH_MODE_HANDLED:I
+Landroid/widget/AdapterViewAnimator;->TOUCH_MODE_NONE:I
+Landroid/widget/AdapterViewAnimator;->transformViewForTransition(IILandroid/view/View;Z)V
+Landroid/widget/AdapterViewFlipper;->DEFAULT_INTERVAL:I
+Landroid/widget/AdapterViewFlipper;->LOGD:Z
+Landroid/widget/AdapterViewFlipper;->mAdvancedByHost:Z
+Landroid/widget/AdapterViewFlipper;->mAutoStart:Z
+Landroid/widget/AdapterViewFlipper;->mFlipInterval:I
+Landroid/widget/AdapterViewFlipper;->mFlipRunnable:Ljava/lang/Runnable;
+Landroid/widget/AdapterViewFlipper;->mReceiver:Landroid/content/BroadcastReceiver;
+Landroid/widget/AdapterViewFlipper;->mRunning:Z
+Landroid/widget/AdapterViewFlipper;->mStarted:Z
+Landroid/widget/AdapterViewFlipper;->mUserPresent:Z
+Landroid/widget/AdapterViewFlipper;->mVisible:Z
+Landroid/widget/AdapterViewFlipper;->TAG:Ljava/lang/String;
+Landroid/widget/AdapterViewFlipper;->updateRunning()V
+Landroid/widget/AdapterViewFlipper;->updateRunning(Z)V
+Landroid/widget/AlphabetIndexer;->mAlphabetArray:[Ljava/lang/String;
+Landroid/widget/AlphabetIndexer;->mAlphabetLength:I
+Landroid/widget/AlphabetIndexer;->mAlphaMap:Landroid/util/SparseIntArray;
+Landroid/widget/AlphabetIndexer;->mCollator:Ljava/text/Collator;
+Landroid/widget/AnalogClock;->mAttached:Z
+Landroid/widget/AnalogClock;->mCalendar:Landroid/text/format/Time;
+Landroid/widget/AnalogClock;->mChanged:Z
+Landroid/widget/AnalogClock;->mDialHeight:I
+Landroid/widget/AnalogClock;->mDialWidth:I
+Landroid/widget/AnalogClock;->mHour:F
+Landroid/widget/AnalogClock;->mIntentReceiver:Landroid/content/BroadcastReceiver;
+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;
+Landroid/widget/AppSecurityPermissions$PermissionItemView;->mGroup:Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;
+Landroid/widget/AppSecurityPermissions$PermissionItemView;->mPackageName:Ljava/lang/String;
+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
+Landroid/widget/AppSecurityPermissions;->displayPermissions(Ljava/util/List;Landroid/widget/LinearLayout;IZ)V
+Landroid/widget/AppSecurityPermissions;->extractPerms(Landroid/content/pm/PackageInfo;Ljava/util/Set;Landroid/content/pm/PackageInfo;)V
+Landroid/widget/AppSecurityPermissions;->getAllUsedPermissions(ILjava/util/Set;)V
+Landroid/widget/AppSecurityPermissions;->getPermissionCount(I)I
+Landroid/widget/AppSecurityPermissions;->getPermissionItemView(Landroid/content/Context;Landroid/view/LayoutInflater;Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;Landroid/widget/AppSecurityPermissions$MyPermissionInfo;ZLjava/lang/CharSequence;Ljava/lang/String;Z)Landroid/widget/AppSecurityPermissions$PermissionItemView;
+Landroid/widget/AppSecurityPermissions;->getPermissionItemView(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Landroid/view/View;
+Landroid/widget/AppSecurityPermissions;->getPermissionItemView(Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;Landroid/widget/AppSecurityPermissions$MyPermissionInfo;ZLjava/lang/CharSequence;Z)Landroid/widget/AppSecurityPermissions$PermissionItemView;
+Landroid/widget/AppSecurityPermissions;->getPermissionItemViewOld(Landroid/content/Context;Landroid/view/LayoutInflater;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZLandroid/graphics/drawable/Drawable;)Landroid/view/View;
+Landroid/widget/AppSecurityPermissions;->getPermissionList(Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;I)Ljava/util/List;
+Landroid/widget/AppSecurityPermissions;->getPermissionsForPackage(Ljava/lang/String;Ljava/util/Set;)V
+Landroid/widget/AppSecurityPermissions;->getPermissionsView(I)Landroid/view/View;
+Landroid/widget/AppSecurityPermissions;->getPermissionsView(IZ)Landroid/view/View;
+Landroid/widget/AppSecurityPermissions;->getPermissionsViewWithRevokeButtons()Landroid/view/View;
+Landroid/widget/AppSecurityPermissions;->isDisplayablePermission(Landroid/content/pm/PermissionInfo;II)Z
+Landroid/widget/AppSecurityPermissions;->localLOGV:Z
+Landroid/widget/AppSecurityPermissions;->mContext:Landroid/content/Context;
+Landroid/widget/AppSecurityPermissions;->mInflater:Landroid/view/LayoutInflater;
+Landroid/widget/AppSecurityPermissions;->mNewPermPrefix:Ljava/lang/CharSequence;
+Landroid/widget/AppSecurityPermissions;->mPackageName:Ljava/lang/String;
+Landroid/widget/AppSecurityPermissions;->mPermComparator:Landroid/widget/AppSecurityPermissions$PermissionInfoComparator;
+Landroid/widget/AppSecurityPermissions;->mPermGroupComparator:Landroid/widget/AppSecurityPermissions$PermissionGroupInfoComparator;
+Landroid/widget/AppSecurityPermissions;->mPermGroups:Ljava/util/Map;
+Landroid/widget/AppSecurityPermissions;->mPermGroupsList:Ljava/util/List;
+Landroid/widget/AppSecurityPermissions;->mPermsList:Ljava/util/List;
+Landroid/widget/AppSecurityPermissions;->mPm:Landroid/content/pm/PackageManager;
+Landroid/widget/AppSecurityPermissions;->setPermissions(Ljava/util/List;)V
+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;
+Landroid/widget/ArrayAdapter;->mDropDownInflater:Landroid/view/LayoutInflater;
+Landroid/widget/ArrayAdapter;->mDropDownResource:I
+Landroid/widget/ArrayAdapter;->mFieldId:I
+Landroid/widget/ArrayAdapter;->mFilter:Landroid/widget/ArrayAdapter$ArrayFilter;
+Landroid/widget/ArrayAdapter;->mInflater:Landroid/view/LayoutInflater;
+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;
+Landroid/widget/AutoCompleteTextView;->buildImeCompletions()V
+Landroid/widget/AutoCompleteTextView;->DEBUG:Z
+Landroid/widget/AutoCompleteTextView;->EXPAND_MAX:I
+Landroid/widget/AutoCompleteTextView;->getDropDownAnimationStyle()I
+Landroid/widget/AutoCompleteTextView;->isDropDownAlwaysVisible()Z
+Landroid/widget/AutoCompleteTextView;->isDropDownDismissedOnCompletion()Z
+Landroid/widget/AutoCompleteTextView;->mAdapter:Landroid/widget/ListAdapter;
+Landroid/widget/AutoCompleteTextView;->mBlockCompletion:Z
+Landroid/widget/AutoCompleteTextView;->mDropDownAnchorId:I
+Landroid/widget/AutoCompleteTextView;->mDropDownDismissedOnCompletion:Z
+Landroid/widget/AutoCompleteTextView;->mFilter:Landroid/widget/Filter;
+Landroid/widget/AutoCompleteTextView;->mHintResource:I
+Landroid/widget/AutoCompleteTextView;->mHintText:Ljava/lang/CharSequence;
+Landroid/widget/AutoCompleteTextView;->mItemClickListener:Landroid/widget/AdapterView$OnItemClickListener;
+Landroid/widget/AutoCompleteTextView;->mItemSelectedListener:Landroid/widget/AdapterView$OnItemSelectedListener;
+Landroid/widget/AutoCompleteTextView;->mLastKeyCode:I
+Landroid/widget/AutoCompleteTextView;->mOpenBefore:Z
+Landroid/widget/AutoCompleteTextView;->mPopupCanBeUpdated:Z
+Landroid/widget/AutoCompleteTextView;->mPopupContext:Landroid/content/Context;
+Landroid/widget/AutoCompleteTextView;->mThreshold:I
+Landroid/widget/AutoCompleteTextView;->mValidator:Landroid/widget/AutoCompleteTextView$Validator;
+Landroid/widget/AutoCompleteTextView;->onClickImpl()V
+Landroid/widget/AutoCompleteTextView;->performCompletion(Landroid/view/View;IJ)V
+Landroid/widget/AutoCompleteTextView;->TAG:Ljava/lang/String;
+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;
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->getFocusedMonthDateColor()I
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->getSelectedDateVerticalBar()Landroid/graphics/drawable/Drawable;
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->getSelectedWeekBackgroundColor()I
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->getShownWeekCount()I
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->getShowWeekNumber()Z
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->getUnfocusedMonthDateColor()I
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->getWeekNumberColor()I
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->getWeekSeparatorLineColor()I
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->mContext:Landroid/content/Context;
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->mCurrentLocale:Ljava/util/Locale;
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->mDelegator:Landroid/widget/CalendarView;
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setCurrentLocale(Ljava/util/Locale;)V
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setFocusedMonthDateColor(I)V
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setSelectedDateVerticalBar(I)V
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setSelectedDateVerticalBar(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setSelectedWeekBackgroundColor(I)V
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setShownWeekCount(I)V
+Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setShowWeekNumber(Z)V
+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
+Landroid/widget/CalendarView$CalendarViewDelegate;->getFirstDayOfWeek()I
+Landroid/widget/CalendarView$CalendarViewDelegate;->getFocusedMonthDateColor()I
+Landroid/widget/CalendarView$CalendarViewDelegate;->getMaxDate()J
+Landroid/widget/CalendarView$CalendarViewDelegate;->getMinDate()J
+Landroid/widget/CalendarView$CalendarViewDelegate;->getSelectedDateVerticalBar()Landroid/graphics/drawable/Drawable;
+Landroid/widget/CalendarView$CalendarViewDelegate;->getSelectedWeekBackgroundColor()I
+Landroid/widget/CalendarView$CalendarViewDelegate;->getShownWeekCount()I
+Landroid/widget/CalendarView$CalendarViewDelegate;->getShowWeekNumber()Z
+Landroid/widget/CalendarView$CalendarViewDelegate;->getUnfocusedMonthDateColor()I
+Landroid/widget/CalendarView$CalendarViewDelegate;->getWeekDayTextAppearance()I
+Landroid/widget/CalendarView$CalendarViewDelegate;->getWeekNumberColor()I
+Landroid/widget/CalendarView$CalendarViewDelegate;->getWeekSeparatorLineColor()I
+Landroid/widget/CalendarView$CalendarViewDelegate;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setDate(J)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setDate(JZZ)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setDateTextAppearance(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setFirstDayOfWeek(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setFocusedMonthDateColor(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setMaxDate(J)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setMinDate(J)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setOnDateChangeListener(Landroid/widget/CalendarView$OnDateChangeListener;)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setSelectedDateVerticalBar(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setSelectedDateVerticalBar(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setSelectedWeekBackgroundColor(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setShownWeekCount(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setShowWeekNumber(Z)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setUnfocusedMonthDateColor(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setWeekDayTextAppearance(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setWeekNumberColor(I)V
+Landroid/widget/CalendarView$CalendarViewDelegate;->setWeekSeparatorLineColor(I)V
+Landroid/widget/CalendarView;->DATE_FORMAT:Ljava/lang/String;
+Landroid/widget/CalendarView;->DATE_FORMATTER:Ljava/text/DateFormat;
+Landroid/widget/CalendarView;->LOG_TAG:Ljava/lang/String;
+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
+Landroid/widget/CheckedTextView$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/widget/CheckedTextView;->applyCheckMarkTint()V
+Landroid/widget/CheckedTextView;->CHECKED_STATE_SET:[I
+Landroid/widget/CheckedTextView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/CheckedTextView;->internalSetPadding(IIII)V
+Landroid/widget/CheckedTextView;->isCheckMarkAtStart()Z
+Landroid/widget/CheckedTextView;->mBasePadding:I
+Landroid/widget/CheckedTextView;->mChecked:Z
+Landroid/widget/CheckedTextView;->mCheckMarkResource:I
+Landroid/widget/CheckedTextView;->mCheckMarkTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/CheckedTextView;->mCheckMarkTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/CheckedTextView;->mCheckMarkWidth:I
+Landroid/widget/CheckedTextView;->mHasCheckMarkTint:Z
+Landroid/widget/CheckedTextView;->mHasCheckMarkTintMode:Z
+Landroid/widget/CheckedTextView;->mNeedRequestlayout:Z
+Landroid/widget/CheckedTextView;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/CheckedTextView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/CheckedTextView;->setBasePadding(Z)V
+Landroid/widget/CheckedTextView;->setCheckMarkDrawableInternal(Landroid/graphics/drawable/Drawable;I)V
+Landroid/widget/CheckedTextView;->updatePadding()V
+Landroid/widget/Chronometer;->dispatchChronometerTick()V
+Landroid/widget/Chronometer;->formatDuration(J)Ljava/lang/String;
+Landroid/widget/Chronometer;->HOUR_IN_SEC:I
+Landroid/widget/Chronometer;->init()V
+Landroid/widget/Chronometer;->mBase:J
+Landroid/widget/Chronometer;->mCountDown:Z
+Landroid/widget/Chronometer;->mFormat:Ljava/lang/String;
+Landroid/widget/Chronometer;->mFormatBuilder:Ljava/lang/StringBuilder;
+Landroid/widget/Chronometer;->mFormatter:Ljava/util/Formatter;
+Landroid/widget/Chronometer;->mFormatterArgs:[Ljava/lang/Object;
+Landroid/widget/Chronometer;->mFormatterLocale:Ljava/util/Locale;
+Landroid/widget/Chronometer;->MIN_IN_SEC:I
+Landroid/widget/Chronometer;->mLogged:Z
+Landroid/widget/Chronometer;->mNow:J
+Landroid/widget/Chronometer;->mOnChronometerTickListener:Landroid/widget/Chronometer$OnChronometerTickListener;
+Landroid/widget/Chronometer;->mRecycle:Ljava/lang/StringBuilder;
+Landroid/widget/Chronometer;->mRunning:Z
+Landroid/widget/Chronometer;->mStarted:Z
+Landroid/widget/Chronometer;->mTickRunnable:Ljava/lang/Runnable;
+Landroid/widget/Chronometer;->mVisible:Z
+Landroid/widget/Chronometer;->setStarted(Z)V
+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
+Landroid/widget/CompoundButton$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/widget/CompoundButton;->applyButtonTint()V
+Landroid/widget/CompoundButton;->CHECKED_STATE_SET:[I
+Landroid/widget/CompoundButton;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/CompoundButton;->getHorizontalOffsetForDrawables()I
+Landroid/widget/CompoundButton;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/CompoundButton;->mButtonTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/CompoundButton;->mButtonTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/CompoundButton;->mChecked:Z
+Landroid/widget/CompoundButton;->mCheckedFromResource:Z
+Landroid/widget/CompoundButton;->mHasButtonTint:Z
+Landroid/widget/CompoundButton;->mHasButtonTintMode:Z
+Landroid/widget/CompoundButton;->mOnCheckedChangeWidgetListener:Landroid/widget/CompoundButton$OnCheckedChangeListener;
+Landroid/widget/CompoundButton;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+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
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->getCursor()Landroid/database/Cursor;
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->getId(I)J
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->isValid()Z
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->mContentObserver:Landroid/widget/CursorTreeAdapter$MyCursorHelper$MyContentObserver;
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->mCursor:Landroid/database/Cursor;
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->mDataSetObserver:Landroid/widget/CursorTreeAdapter$MyCursorHelper$MyDataSetObserver;
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->mDataValid:Z
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->moveTo(I)Landroid/database/Cursor;
+Landroid/widget/CursorTreeAdapter$MyCursorHelper;->mRowIDColumn:I
+Landroid/widget/CursorTreeAdapter;->deactivateChildrenCursorHelper(I)V
+Landroid/widget/CursorTreeAdapter;->getChildrenCursorHelper(IZ)Landroid/widget/CursorTreeAdapter$MyCursorHelper;
+Landroid/widget/CursorTreeAdapter;->init(Landroid/database/Cursor;Landroid/content/Context;Z)V
+Landroid/widget/CursorTreeAdapter;->mAutoRequery:Z
+Landroid/widget/CursorTreeAdapter;->mChildrenCursorHelpers:Landroid/util/SparseArray;
+Landroid/widget/CursorTreeAdapter;->mContext:Landroid/content/Context;
+Landroid/widget/CursorTreeAdapter;->mCursorFilter:Landroid/widget/CursorFilter;
+Landroid/widget/CursorTreeAdapter;->mFilterQueryProvider:Landroid/widget/FilterQueryProvider;
+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
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->getCurrentView()I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->getListPosition()I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->getListPositionOffset()I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->getMaxDate()J
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->getMinDate()J
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->getSelectedDay()I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->getSelectedMonth()I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->getSelectedYear()I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->mCurrentView:I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->mListPosition:I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->mListPositionOffset:I
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->mMaxDate:J
+Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->mMinDate:J
+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;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->getFormattedCurrentDate()Ljava/lang/String;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->mAutoFillChangeListener:Landroid/widget/DatePicker$OnDateChangedListener;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->mAutofilledValue:J
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->mContext:Landroid/content/Context;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->mCurrentDate:Landroid/icu/util/Calendar;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->mCurrentLocale:Ljava/util/Locale;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->mDelegator:Landroid/widget/DatePicker;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->mOnDateChangedListener:Landroid/widget/DatePicker$OnDateChangedListener;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->mValidationCallback:Landroid/widget/DatePicker$ValidationCallback;
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->onLocaleChanged(Ljava/util/Locale;)V
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->onPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->onValidationChanged(Z)V
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->resetAutofilledValue()V
+Landroid/widget/DatePicker$AbstractDatePickerDelegate;->setAutoFillChangeListener(Landroid/widget/DatePicker$OnDateChangedListener;)V
+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;
+Landroid/widget/DatePicker$DatePickerDelegate;->getCalendarView()Landroid/widget/CalendarView;
+Landroid/widget/DatePicker$DatePickerDelegate;->getCalendarViewShown()Z
+Landroid/widget/DatePicker$DatePickerDelegate;->getDayOfMonth()I
+Landroid/widget/DatePicker$DatePickerDelegate;->getFirstDayOfWeek()I
+Landroid/widget/DatePicker$DatePickerDelegate;->getMaxDate()Landroid/icu/util/Calendar;
+Landroid/widget/DatePicker$DatePickerDelegate;->getMinDate()Landroid/icu/util/Calendar;
+Landroid/widget/DatePicker$DatePickerDelegate;->getMonth()I
+Landroid/widget/DatePicker$DatePickerDelegate;->getSpinnersShown()Z
+Landroid/widget/DatePicker$DatePickerDelegate;->getYear()I
+Landroid/widget/DatePicker$DatePickerDelegate;->init(IIILandroid/widget/DatePicker$OnDateChangedListener;)V
+Landroid/widget/DatePicker$DatePickerDelegate;->isEnabled()Z
+Landroid/widget/DatePicker$DatePickerDelegate;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+Landroid/widget/DatePicker$DatePickerDelegate;->onPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/DatePicker$DatePickerDelegate;->onRestoreInstanceState(Landroid/os/Parcelable;)V
+Landroid/widget/DatePicker$DatePickerDelegate;->onSaveInstanceState(Landroid/os/Parcelable;)Landroid/os/Parcelable;
+Landroid/widget/DatePicker$DatePickerDelegate;->setAutoFillChangeListener(Landroid/widget/DatePicker$OnDateChangedListener;)V
+Landroid/widget/DatePicker$DatePickerDelegate;->setCalendarViewShown(Z)V
+Landroid/widget/DatePicker$DatePickerDelegate;->setEnabled(Z)V
+Landroid/widget/DatePicker$DatePickerDelegate;->setFirstDayOfWeek(I)V
+Landroid/widget/DatePicker$DatePickerDelegate;->setMaxDate(J)V
+Landroid/widget/DatePicker$DatePickerDelegate;->setMinDate(J)V
+Landroid/widget/DatePicker$DatePickerDelegate;->setOnDateChangedListener(Landroid/widget/DatePicker$OnDateChangedListener;)V
+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;
+Landroid/widget/DatePicker;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+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;
+Landroid/widget/DateTimeView$ReceiverInfo;->getSoonestUpdateTime()J
+Landroid/widget/DateTimeView$ReceiverInfo;->mAttachedViews:Ljava/util/ArrayList;
+Landroid/widget/DateTimeView$ReceiverInfo;->mHandler:Landroid/os/Handler;
+Landroid/widget/DateTimeView$ReceiverInfo;->mObserver:Landroid/database/ContentObserver;
+Landroid/widget/DateTimeView$ReceiverInfo;->mReceiver:Landroid/content/BroadcastReceiver;
+Landroid/widget/DateTimeView$ReceiverInfo;->register(Landroid/content/Context;)V
+Landroid/widget/DateTimeView$ReceiverInfo;->removeView(Landroid/widget/DateTimeView;)V
+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
+Landroid/widget/DateTimeView;->dayDistance(Ljava/util/TimeZone;JJ)I
+Landroid/widget/DateTimeView;->getTimeFormat()Ljava/text/DateFormat;
+Landroid/widget/DateTimeView;->mLastDisplay:I
+Landroid/widget/DateTimeView;->mLastFormat:Ljava/text/DateFormat;
+Landroid/widget/DateTimeView;->mNowText:Ljava/lang/String;
+Landroid/widget/DateTimeView;->mShowRelativeTime:Z
+Landroid/widget/DateTimeView;->mTime:Ljava/util/Date;
+Landroid/widget/DateTimeView;->mTimeMillis:J
+Landroid/widget/DateTimeView;->mUpdateTimeMillis:J
+Landroid/widget/DateTimeView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/DateTimeView;->setReceiverHandler(Landroid/os/Handler;)V
+Landroid/widget/DateTimeView;->setShowRelativeTime(Z)V
+Landroid/widget/DateTimeView;->SHOW_MONTH_DAY_YEAR:I
+Landroid/widget/DateTimeView;->SHOW_TIME:I
+Landroid/widget/DateTimeView;->sReceiverInfo:Ljava/lang/ThreadLocal;
+Landroid/widget/DateTimeView;->updateNowText()V
+Landroid/widget/DateTimeView;->updateRelativeTime()V
+Landroid/widget/DialerFilter;->makeDigitsPrimary()V
+Landroid/widget/DialerFilter;->makeLettersPrimary()V
+Landroid/widget/DialerFilter;->mDigits:Landroid/widget/EditText;
+Landroid/widget/DialerFilter;->mHint:Landroid/widget/EditText;
+Landroid/widget/DialerFilter;->mIcon:Landroid/widget/ImageView;
+Landroid/widget/DialerFilter;->mInputFilters:[Landroid/text/InputFilter;
+Landroid/widget/DialerFilter;->mIsQwerty:Z
+Landroid/widget/DialerFilter;->mLetters:Landroid/widget/EditText;
+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;
+Landroid/widget/DigitalClock;->mFormatChangeObserver:Landroid/widget/DigitalClock$FormatChangeObserver;
+Landroid/widget/DigitalClock;->mHandler:Landroid/os/Handler;
+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
+Landroid/widget/DropDownListView;->mDrawsInPressedState:Z
+Landroid/widget/DropDownListView;->mHijackFocus:Z
+Landroid/widget/DropDownListView;->mListSelectionHidden:Z
+Landroid/widget/DropDownListView;->mResolveHoverRunnable:Landroid/widget/DropDownListView$ResolveHoverRunnable;
+Landroid/widget/DropDownListView;->mScrollHelper:Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller;
+Landroid/widget/DropDownListView;->obtainView(I[Z)Landroid/view/View;
+Landroid/widget/DropDownListView;->onForwardedEvent(Landroid/view/MotionEvent;I)Z
+Landroid/widget/DropDownListView;->setListSelectionHidden(Z)V
+Landroid/widget/DropDownListView;->setPressedItem(Landroid/view/View;IFF)V
+Landroid/widget/DropDownListView;->shouldShowSelector()Z
+Landroid/widget/DropDownListView;->touchModeDrawsInPressedState()Z
+Landroid/widget/EdgeEffect;->ANGLE:D
+Landroid/widget/EdgeEffect;->COS:F
+Landroid/widget/EdgeEffect;->EPSILON:F
+Landroid/widget/EdgeEffect;->GLOW_ALPHA_START:F
+Landroid/widget/EdgeEffect;->MAX_ALPHA:F
+Landroid/widget/EdgeEffect;->MAX_GLOW_SCALE:F
+Landroid/widget/EdgeEffect;->MAX_VELOCITY:I
+Landroid/widget/EdgeEffect;->mBaseGlowScale:F
+Landroid/widget/EdgeEffect;->mBounds:Landroid/graphics/Rect;
+Landroid/widget/EdgeEffect;->mDisplacement:F
+Landroid/widget/EdgeEffect;->mDuration:F
+Landroid/widget/EdgeEffect;->mGlowAlpha:F
+Landroid/widget/EdgeEffect;->mGlowAlphaFinish:F
+Landroid/widget/EdgeEffect;->mGlowAlphaStart:F
+Landroid/widget/EdgeEffect;->mGlowScaleYFinish:F
+Landroid/widget/EdgeEffect;->mGlowScaleYStart:F
+Landroid/widget/EdgeEffect;->mInterpolator:Landroid/view/animation/Interpolator;
+Landroid/widget/EdgeEffect;->MIN_VELOCITY:I
+Landroid/widget/EdgeEffect;->mPullDistance:F
+Landroid/widget/EdgeEffect;->mRadius:F
+Landroid/widget/EdgeEffect;->mStartTime:J
+Landroid/widget/EdgeEffect;->mState:I
+Landroid/widget/EdgeEffect;->mTargetDisplacement:F
+Landroid/widget/EdgeEffect;->PULL_DECAY_TIME:I
+Landroid/widget/EdgeEffect;->PULL_DISTANCE_ALPHA_GLOW_FACTOR:F
+Landroid/widget/EdgeEffect;->PULL_GLOW_BEGIN:F
+Landroid/widget/EdgeEffect;->PULL_TIME:I
+Landroid/widget/EdgeEffect;->RADIUS_FACTOR:F
+Landroid/widget/EdgeEffect;->RECEDE_TIME:I
+Landroid/widget/EdgeEffect;->SIN:F
+Landroid/widget/EdgeEffect;->STATE_ABSORB:I
+Landroid/widget/EdgeEffect;->STATE_IDLE:I
+Landroid/widget/EdgeEffect;->STATE_PULL:I
+Landroid/widget/EdgeEffect;->STATE_PULL_DECAY:I
+Landroid/widget/EdgeEffect;->STATE_RECEDE:I
+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
+Landroid/widget/Editor$CorrectionHighlighter;->invalidate(Z)V
+Landroid/widget/Editor$CorrectionHighlighter;->mEnd:I
+Landroid/widget/Editor$CorrectionHighlighter;->mFadingStartTime:J
+Landroid/widget/Editor$CorrectionHighlighter;->mPaint:Landroid/graphics/Paint;
+Landroid/widget/Editor$CorrectionHighlighter;->mPath:Landroid/graphics/Path;
+Landroid/widget/Editor$CorrectionHighlighter;->mStart:I
+Landroid/widget/Editor$CorrectionHighlighter;->mTempRectF:Landroid/graphics/RectF;
+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
+Landroid/widget/Editor$EasyEditPopupWindow;->getVerticalLocalPosition(I)I
+Landroid/widget/Editor$EasyEditPopupWindow;->hide()V
+Landroid/widget/Editor$EasyEditPopupWindow;->initContentView()V
+Landroid/widget/Editor$EasyEditPopupWindow;->mDeleteTextView:Landroid/widget/TextView;
+Landroid/widget/Editor$EasyEditPopupWindow;->mEasyEditSpan:Landroid/text/style/EasyEditSpan;
+Landroid/widget/Editor$EasyEditPopupWindow;->mOnDeleteListener:Landroid/widget/Editor$EasyEditDeleteListener;
+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
+Landroid/widget/Editor$EditOperation;->CREATOR:Landroid/os/Parcelable$ClassLoaderCreator;
+Landroid/widget/Editor$EditOperation;->forceMergeWith(Landroid/widget/Editor$EditOperation;)V
+Landroid/widget/Editor$EditOperation;->getNewTextEnd()I
+Landroid/widget/Editor$EditOperation;->getOldTextEnd()I
+Landroid/widget/Editor$EditOperation;->getTypeString()Ljava/lang/String;
+Landroid/widget/Editor$EditOperation;->mergeDeleteWith(Landroid/widget/Editor$EditOperation;)Z
+Landroid/widget/Editor$EditOperation;->mergeInsertWith(Landroid/widget/Editor$EditOperation;)Z
+Landroid/widget/Editor$EditOperation;->mergeReplaceWith(Landroid/widget/Editor$EditOperation;)Z
+Landroid/widget/Editor$EditOperation;->mergeWith(Landroid/widget/Editor$EditOperation;)Z
+Landroid/widget/Editor$EditOperation;->mFrozen:Z
+Landroid/widget/Editor$EditOperation;->mIsComposition:Z
+Landroid/widget/Editor$EditOperation;->mNewCursorPos:I
+Landroid/widget/Editor$EditOperation;->mNewText:Ljava/lang/String;
+Landroid/widget/Editor$EditOperation;->modifyText(Landroid/text/Editable;IILjava/lang/CharSequence;II)V
+Landroid/widget/Editor$EditOperation;->mOldCursorPos:I
+Landroid/widget/Editor$EditOperation;->mOldText:Ljava/lang/String;
+Landroid/widget/Editor$EditOperation;->mStart:I
+Landroid/widget/Editor$EditOperation;->mType:I
+Landroid/widget/Editor$EditOperation;->redo()V
+Landroid/widget/Editor$EditOperation;->TYPE_DELETE:I
+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
+Landroid/widget/Editor$ErrorPopup;->mAbove:Z
+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
+Landroid/widget/Editor$HandleView;->filterOnTouchUp(Z)V
+Landroid/widget/Editor$HandleView;->getCurrentCursorOffset()I
+Landroid/widget/Editor$HandleView;->getCursorHorizontalPosition(Landroid/text/Layout;I)I
+Landroid/widget/Editor$HandleView;->getCursorOffset()I
+Landroid/widget/Editor$HandleView;->getHorizontal(Landroid/text/Layout;I)F
+Landroid/widget/Editor$HandleView;->getHorizontalGravity(Z)I
+Landroid/widget/Editor$HandleView;->getHorizontalOffset()I
+Landroid/widget/Editor$HandleView;->getHotspotX(Landroid/graphics/drawable/Drawable;Z)I
+Landroid/widget/Editor$HandleView;->getIdealVerticalOffset()F
+Landroid/widget/Editor$HandleView;->getMagnifierHandleTrigger()I
+Landroid/widget/Editor$HandleView;->getOffsetAtCoordinate(Landroid/text/Layout;IF)I
+Landroid/widget/Editor$HandleView;->getOtherSelectionHandle()Landroid/widget/Editor$HandleView;
+Landroid/widget/Editor$HandleView;->getPreferredHeight()I
+Landroid/widget/Editor$HandleView;->getPreferredWidth()I
+Landroid/widget/Editor$HandleView;->handleOverlapsMagnifier(Landroid/widget/Editor$HandleView;Landroid/graphics/Rect;)Z
+Landroid/widget/Editor$HandleView;->hide()V
+Landroid/widget/Editor$HandleView;->HISTORY_SIZE:I
+Landroid/widget/Editor$HandleView;->isAtRtlRun(Landroid/text/Layout;I)Z
+Landroid/widget/Editor$HandleView;->isDragging()Z
+Landroid/widget/Editor$HandleView;->isShowing()Z
+Landroid/widget/Editor$HandleView;->mContainer:Landroid/widget/PopupWindow;
+Landroid/widget/Editor$HandleView;->mDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Editor$HandleView;->mDrawableLtr:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Editor$HandleView;->mDrawableRtl:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Editor$HandleView;->mHandlesVisibilityCallback:Landroid/widget/Magnifier$Callback;
+Landroid/widget/Editor$HandleView;->mHorizontalGravity:I
+Landroid/widget/Editor$HandleView;->mHotspotX:I
+Landroid/widget/Editor$HandleView;->mIdealVerticalOffset:F
+Landroid/widget/Editor$HandleView;->mIsDragging:Z
+Landroid/widget/Editor$HandleView;->mLastParentX:I
+Landroid/widget/Editor$HandleView;->mLastParentXOnScreen:I
+Landroid/widget/Editor$HandleView;->mLastParentY:I
+Landroid/widget/Editor$HandleView;->mLastParentYOnScreen:I
+Landroid/widget/Editor$HandleView;->mMinSize:I
+Landroid/widget/Editor$HandleView;->mNumberPreviousOffsets:I
+Landroid/widget/Editor$HandleView;->mPositionHasChanged:Z
+Landroid/widget/Editor$HandleView;->mPositionX:I
+Landroid/widget/Editor$HandleView;->mPositionY:I
+Landroid/widget/Editor$HandleView;->mPreviousLineTouched:I
+Landroid/widget/Editor$HandleView;->mPreviousOffset:I
+Landroid/widget/Editor$HandleView;->mPreviousOffsetIndex:I
+Landroid/widget/Editor$HandleView;->mPreviousOffsets:[I
+Landroid/widget/Editor$HandleView;->mPreviousOffsetsTimes:[J
+Landroid/widget/Editor$HandleView;->mPrevLine:I
+Landroid/widget/Editor$HandleView;->mTouchOffsetY:F
+Landroid/widget/Editor$HandleView;->mTouchToWindowOffsetX:F
+Landroid/widget/Editor$HandleView;->mTouchToWindowOffsetY:F
+Landroid/widget/Editor$HandleView;->obtainMagnifierShowCoordinates(Landroid/view/MotionEvent;Landroid/graphics/PointF;)Z
+Landroid/widget/Editor$HandleView;->offsetHasBeenChanged()Z
+Landroid/widget/Editor$HandleView;->onDetached()V
+Landroid/widget/Editor$HandleView;->onHandleMoved()V
+Landroid/widget/Editor$HandleView;->positionAtCursorOffset(IZZ)V
+Landroid/widget/Editor$HandleView;->setVisible(Z)V
+Landroid/widget/Editor$HandleView;->shouldShow()Z
+Landroid/widget/Editor$HandleView;->show()V
+Landroid/widget/Editor$HandleView;->startTouchUpFilter(I)V
+Landroid/widget/Editor$HandleView;->tooLargeTextForMagnifier()Z
+Landroid/widget/Editor$HandleView;->TOUCH_UP_FILTER_DELAY_AFTER:I
+Landroid/widget/Editor$HandleView;->TOUCH_UP_FILTER_DELAY_BEFORE:I
+Landroid/widget/Editor$HandleView;->updateDrawable()V
+Landroid/widget/Editor$HandleView;->updateMagnifier(Landroid/view/MotionEvent;)V
+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;
+Landroid/widget/Editor$InputContentType;->imeActionId:I
+Landroid/widget/Editor$InputContentType;->imeActionLabel:Ljava/lang/CharSequence;
+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
+Landroid/widget/Editor$InputMethodState;->mChangedEnd:I
+Landroid/widget/Editor$InputMethodState;->mChangedStart:I
+Landroid/widget/Editor$InputMethodState;->mContentChanged:Z
+Landroid/widget/Editor$InputMethodState;->mCursorChanged:Z
+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
+Landroid/widget/Editor$InsertionHandleView;->getCursorOffset()I
+Landroid/widget/Editor$InsertionHandleView;->getHorizontalGravity(Z)I
+Landroid/widget/Editor$InsertionHandleView;->getHotspotX(Landroid/graphics/drawable/Drawable;Z)I
+Landroid/widget/Editor$InsertionHandleView;->getMagnifierHandleTrigger()I
+Landroid/widget/Editor$InsertionHandleView;->hideAfterDelay()V
+Landroid/widget/Editor$InsertionHandleView;->mDownPositionX:F
+Landroid/widget/Editor$InsertionHandleView;->mDownPositionY:F
+Landroid/widget/Editor$InsertionHandleView;->mHider:Ljava/lang/Runnable;
+Landroid/widget/Editor$InsertionHandleView;->onDetached()V
+Landroid/widget/Editor$InsertionHandleView;->onHandleMoved()V
+Landroid/widget/Editor$InsertionHandleView;->RECENT_CUT_COPY_DURATION:I
+Landroid/widget/Editor$InsertionHandleView;->removeHiderCallback()V
+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
+Landroid/widget/Editor$InsertionPointCursorController;->isActive()Z
+Landroid/widget/Editor$InsertionPointCursorController;->isCursorBeingModified()Z
+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
+Landroid/widget/Editor$MagnifierMotionAnimator;->mAnimationCurrentX:F
+Landroid/widget/Editor$MagnifierMotionAnimator;->mAnimationCurrentY:F
+Landroid/widget/Editor$MagnifierMotionAnimator;->mAnimationStartX:F
+Landroid/widget/Editor$MagnifierMotionAnimator;->mAnimationStartY:F
+Landroid/widget/Editor$MagnifierMotionAnimator;->mAnimator:Landroid/animation/ValueAnimator;
+Landroid/widget/Editor$MagnifierMotionAnimator;->mLastX:F
+Landroid/widget/Editor$MagnifierMotionAnimator;->mLastY:F
+Landroid/widget/Editor$MagnifierMotionAnimator;->mMagnifier:Landroid/widget/Magnifier;
+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
+Landroid/widget/Editor$PinnedPopupWindow;->getTextOffset()I
+Landroid/widget/Editor$PinnedPopupWindow;->getVerticalLocalPosition(I)I
+Landroid/widget/Editor$PinnedPopupWindow;->hide()V
+Landroid/widget/Editor$PinnedPopupWindow;->initContentView()V
+Landroid/widget/Editor$PinnedPopupWindow;->isShowing()Z
+Landroid/widget/Editor$PinnedPopupWindow;->mClippingLimitLeft:I
+Landroid/widget/Editor$PinnedPopupWindow;->mClippingLimitRight:I
+Landroid/widget/Editor$PinnedPopupWindow;->mContentView:Landroid/view/ViewGroup;
+Landroid/widget/Editor$PinnedPopupWindow;->measureContent()V
+Landroid/widget/Editor$PinnedPopupWindow;->mPopupWindow:Landroid/widget/PopupWindow;
+Landroid/widget/Editor$PinnedPopupWindow;->mPositionX:I
+Landroid/widget/Editor$PinnedPopupWindow;->mPositionY:I
+Landroid/widget/Editor$PinnedPopupWindow;->setUp()V
+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
+Landroid/widget/Editor$PositionListener;->getPositionY()I
+Landroid/widget/Editor$PositionListener;->getPositionYOnScreen()I
+Landroid/widget/Editor$PositionListener;->MAXIMUM_NUMBER_OF_LISTENERS:I
+Landroid/widget/Editor$PositionListener;->mCanMove:[Z
+Landroid/widget/Editor$PositionListener;->mNumberOfListeners:I
+Landroid/widget/Editor$PositionListener;->mPositionHasChanged:Z
+Landroid/widget/Editor$PositionListener;->mPositionListeners:[Landroid/widget/Editor$TextViewPositionListener;
+Landroid/widget/Editor$PositionListener;->mPositionX:I
+Landroid/widget/Editor$PositionListener;->mPositionXOnScreen:I
+Landroid/widget/Editor$PositionListener;->mPositionY:I
+Landroid/widget/Editor$PositionListener;->mPositionYOnScreen:I
+Landroid/widget/Editor$PositionListener;->mScrollHasChanged:Z
+Landroid/widget/Editor$PositionListener;->mTempCoords:[I
+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;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->fireIntent(Landroid/content/Intent;)Z
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->getLabel(Landroid/content/pm/ResolveInfo;)Ljava/lang/CharSequence;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->initializeAccessibilityActions()V
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->isSupportedActivity(Landroid/content/pm/ResolveInfo;)Z
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->loadSupportedActivities()V
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->mAccessibilityActions:Landroid/util/SparseArray;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->mAccessibilityIntents:Landroid/util/SparseArray;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->mContext:Landroid/content/Context;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->mEditor:Landroid/widget/Editor;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->mPackageManager:Landroid/content/pm/PackageManager;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->mPackageName:Ljava/lang/String;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->mSupportedActivities:Ljava/util/List;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->mTextView:Landroid/widget/TextView;
+Landroid/widget/Editor$ProcessTextIntentActionsHandler;->onInitializeAccessibilityNodeInfo(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+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
+Landroid/widget/Editor$SelectionHandleView;->getHorizontalGravity(Z)I
+Landroid/widget/Editor$SelectionHandleView;->getHotspotX(Landroid/graphics/drawable/Drawable;Z)I
+Landroid/widget/Editor$SelectionHandleView;->getMagnifierHandleTrigger()I
+Landroid/widget/Editor$SelectionHandleView;->getOffsetAtCoordinate(Landroid/text/Layout;IF)I
+Landroid/widget/Editor$SelectionHandleView;->isAtRtlRun(Landroid/text/Layout;I)Z
+Landroid/widget/Editor$SelectionHandleView;->isStartHandle()Z
+Landroid/widget/Editor$SelectionHandleView;->mHandleType:I
+Landroid/widget/Editor$SelectionHandleView;->mInWord:Z
+Landroid/widget/Editor$SelectionHandleView;->mLanguageDirectionChanged:Z
+Landroid/widget/Editor$SelectionHandleView;->mPrevX:F
+Landroid/widget/Editor$SelectionHandleView;->mTextViewEdgeSlop:F
+Landroid/widget/Editor$SelectionHandleView;->mTextViewLocation:[I
+Landroid/widget/Editor$SelectionHandleView;->mTouchWordDelta:F
+Landroid/widget/Editor$SelectionHandleView;->positionAndAdjustForCrossingHandles(IZ)V
+Landroid/widget/Editor$SelectionHandleView;->positionAtCursorOffset(IZZ)V
+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
+Landroid/widget/Editor$SelectionModifierCursorController;->DRAG_ACCELERATOR_MODE_WORD:I
+Landroid/widget/Editor$SelectionModifierCursorController;->enterDrag(I)V
+Landroid/widget/Editor$SelectionModifierCursorController;->getMaxTouchOffset()I
+Landroid/widget/Editor$SelectionModifierCursorController;->getMinTouchOffset()I
+Landroid/widget/Editor$SelectionModifierCursorController;->hide()V
+Landroid/widget/Editor$SelectionModifierCursorController;->initDrawables()V
+Landroid/widget/Editor$SelectionModifierCursorController;->initHandles()V
+Landroid/widget/Editor$SelectionModifierCursorController;->invalidateHandles()V
+Landroid/widget/Editor$SelectionModifierCursorController;->isActive()Z
+Landroid/widget/Editor$SelectionModifierCursorController;->isCursorBeingModified()Z
+Landroid/widget/Editor$SelectionModifierCursorController;->isDragAcceleratorActive()Z
+Landroid/widget/Editor$SelectionModifierCursorController;->isSelectionStartDragged()Z
+Landroid/widget/Editor$SelectionModifierCursorController;->mDownPositionX:F
+Landroid/widget/Editor$SelectionModifierCursorController;->mDownPositionY:F
+Landroid/widget/Editor$SelectionModifierCursorController;->mDragAcceleratorMode:I
+Landroid/widget/Editor$SelectionModifierCursorController;->mEndHandle:Landroid/widget/Editor$SelectionHandleView;
+Landroid/widget/Editor$SelectionModifierCursorController;->mGestureStayedInTapRegion:Z
+Landroid/widget/Editor$SelectionModifierCursorController;->mHaventMovedEnoughToStartDrag:Z
+Landroid/widget/Editor$SelectionModifierCursorController;->mLineSelectionIsOn:I
+Landroid/widget/Editor$SelectionModifierCursorController;->mMaxTouchOffset:I
+Landroid/widget/Editor$SelectionModifierCursorController;->mMinTouchOffset:I
+Landroid/widget/Editor$SelectionModifierCursorController;->mStartHandle:Landroid/widget/Editor$SelectionHandleView;
+Landroid/widget/Editor$SelectionModifierCursorController;->mStartOffset:I
+Landroid/widget/Editor$SelectionModifierCursorController;->mSwitchedLines:Z
+Landroid/widget/Editor$SelectionModifierCursorController;->onDetached()V
+Landroid/widget/Editor$SelectionModifierCursorController;->onTouchEvent(Landroid/view/MotionEvent;)V
+Landroid/widget/Editor$SelectionModifierCursorController;->resetDragAcceleratorState()V
+Landroid/widget/Editor$SelectionModifierCursorController;->resetTouchOffsets()V
+Landroid/widget/Editor$SelectionModifierCursorController;->selectCurrentParagraphAndStartDrag()Z
+Landroid/widget/Editor$SelectionModifierCursorController;->show()V
+Landroid/widget/Editor$SelectionModifierCursorController;->updateCharacterBasedSelection(Landroid/view/MotionEvent;)V
+Landroid/widget/Editor$SelectionModifierCursorController;->updateMinAndMaxOffsets(Landroid/view/MotionEvent;)V
+Landroid/widget/Editor$SelectionModifierCursorController;->updateParagraphBasedSelection(Landroid/view/MotionEvent;)V
+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
+Landroid/widget/Editor$SuggestionInfo;->mSuggestionIndex:I
+Landroid/widget/Editor$SuggestionInfo;->mSuggestionSpanInfo:Landroid/widget/Editor$SuggestionSpanInfo;
+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
+Landroid/widget/Editor$SuggestionsPopupWindow;->getContentViewForTesting()Landroid/view/ViewGroup;
+Landroid/widget/Editor$SuggestionsPopupWindow;->getTextOffset()I
+Landroid/widget/Editor$SuggestionsPopupWindow;->getVerticalLocalPosition(I)I
+Landroid/widget/Editor$SuggestionsPopupWindow;->hideWithCleanUp()V
+Landroid/widget/Editor$SuggestionsPopupWindow;->highlightTextDifferences(Landroid/widget/Editor$SuggestionInfo;II)V
+Landroid/widget/Editor$SuggestionsPopupWindow;->initContentView()V
+Landroid/widget/Editor$SuggestionsPopupWindow;->isShowingUp()Z
+Landroid/widget/Editor$SuggestionsPopupWindow;->mAddToDictionaryButton:Landroid/widget/TextView;
+Landroid/widget/Editor$SuggestionsPopupWindow;->MAX_NUMBER_SUGGESTIONS:I
+Landroid/widget/Editor$SuggestionsPopupWindow;->mContainerMarginTop:I
+Landroid/widget/Editor$SuggestionsPopupWindow;->mContainerMarginWidth:I
+Landroid/widget/Editor$SuggestionsPopupWindow;->mContainerView:Landroid/widget/LinearLayout;
+Landroid/widget/Editor$SuggestionsPopupWindow;->mContext:Landroid/content/Context;
+Landroid/widget/Editor$SuggestionsPopupWindow;->mCursorWasVisibleBeforeSuggestions:Z
+Landroid/widget/Editor$SuggestionsPopupWindow;->mDeleteButton:Landroid/widget/TextView;
+Landroid/widget/Editor$SuggestionsPopupWindow;->measureContent()V
+Landroid/widget/Editor$SuggestionsPopupWindow;->mHighlightSpan:Landroid/text/style/TextAppearanceSpan;
+Landroid/widget/Editor$SuggestionsPopupWindow;->mIsShowingUp:Z
+Landroid/widget/Editor$SuggestionsPopupWindow;->mMisspelledSpanInfo:Landroid/widget/Editor$SuggestionSpanInfo;
+Landroid/widget/Editor$SuggestionsPopupWindow;->mNumberOfSuggestions:I
+Landroid/widget/Editor$SuggestionsPopupWindow;->mSuggestionInfos:[Landroid/widget/Editor$SuggestionInfo;
+Landroid/widget/Editor$SuggestionsPopupWindow;->mSuggestionListView:Landroid/widget/ListView;
+Landroid/widget/Editor$SuggestionsPopupWindow;->mSuggestionsAdapter:Landroid/widget/Editor$SuggestionsPopupWindow$SuggestionAdapter;
+Landroid/widget/Editor$SuggestionsPopupWindow;->onParentLostFocus()V
+Landroid/widget/Editor$SuggestionsPopupWindow;->setUp()V
+Landroid/widget/Editor$SuggestionsPopupWindow;->show()V
+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
+Landroid/widget/Editor$TextActionModeCallback;->getCustomCallback()Landroid/view/ActionMode$Callback;
+Landroid/widget/Editor$TextActionModeCallback;->hasLegacyAssistItem(Landroid/view/textclassifier/TextClassification;)Z
+Landroid/widget/Editor$TextActionModeCallback;->mAssistClickHandlers:Ljava/util/Map;
+Landroid/widget/Editor$TextActionModeCallback;->mHandleHeight:I
+Landroid/widget/Editor$TextActionModeCallback;->mHasSelection:Z
+Landroid/widget/Editor$TextActionModeCallback;->mSelectionBounds:Landroid/graphics/RectF;
+Landroid/widget/Editor$TextActionModeCallback;->mSelectionPath:Landroid/graphics/Path;
+Landroid/widget/Editor$TextActionModeCallback;->onAssistMenuItemClicked(Landroid/view/MenuItem;)Z
+Landroid/widget/Editor$TextActionModeCallback;->populateMenuWithItems(Landroid/view/Menu;)V
+Landroid/widget/Editor$TextActionModeCallback;->shouldEnableAssistMenuItems()Z
+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
+Landroid/widget/Editor$UndoInputFilter;->endBatchEdit()V
+Landroid/widget/Editor$UndoInputFilter;->freezeLastEdit()V
+Landroid/widget/Editor$UndoInputFilter;->getLastEdit()Landroid/widget/Editor$EditOperation;
+Landroid/widget/Editor$UndoInputFilter;->handleEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;IIZ)V
+Landroid/widget/Editor$UndoInputFilter;->isComposition(Ljava/lang/CharSequence;)Z
+Landroid/widget/Editor$UndoInputFilter;->isInTextWatcher()Z
+Landroid/widget/Editor$UndoInputFilter;->mEditor:Landroid/widget/Editor;
+Landroid/widget/Editor$UndoInputFilter;->MERGE_EDIT_MODE_FORCE_MERGE:I
+Landroid/widget/Editor$UndoInputFilter;->MERGE_EDIT_MODE_NEVER_MERGE:I
+Landroid/widget/Editor$UndoInputFilter;->MERGE_EDIT_MODE_NORMAL:I
+Landroid/widget/Editor$UndoInputFilter;->mExpanding:Z
+Landroid/widget/Editor$UndoInputFilter;->mHasComposition:Z
+Landroid/widget/Editor$UndoInputFilter;->mIsUserEdit:Z
+Landroid/widget/Editor$UndoInputFilter;->mPreviousOperationWasInSameBatchEdit:Z
+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
+Landroid/widget/Editor;->beginBatchEdit()V
+Landroid/widget/Editor;->BLINK:I
+Landroid/widget/Editor;->canRedo()Z
+Landroid/widget/Editor;->canUndo()Z
+Landroid/widget/Editor;->checkField()Z
+Landroid/widget/Editor;->chooseSize(Landroid/widget/PopupWindow;Ljava/lang/CharSequence;Landroid/widget/TextView;)V
+Landroid/widget/Editor;->clampHorizontalPosition(Landroid/graphics/drawable/Drawable;F)I
+Landroid/widget/Editor;->createInputContentTypeIfNeeded()V
+Landroid/widget/Editor;->createInputMethodStateIfNeeded()V
+Landroid/widget/Editor;->DEBUG_UNDO:Z
+Landroid/widget/Editor;->discardTextDisplayLists()V
+Landroid/widget/Editor;->downgradeEasyCorrectionSpans()V
+Landroid/widget/Editor;->DRAG_SHADOW_MAX_TEXT_LENGTH:I
+Landroid/widget/Editor;->drawCursor(Landroid/graphics/Canvas;I)V
+Landroid/widget/Editor;->drawHardwareAccelerated(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
+Landroid/widget/Editor;->drawHardwareAcceleratedInner(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I
+Landroid/widget/Editor;->endBatchEdit()V
+Landroid/widget/Editor;->ensureEndedBatchEdit()V
+Landroid/widget/Editor;->ensureNoSelectionIfNonSelectable()V
+Landroid/widget/Editor;->extractedTextModeWillBeStarted()Z
+Landroid/widget/Editor;->extractText(Landroid/view/inputmethod/ExtractedTextRequest;Landroid/view/inputmethod/ExtractedText;)Z
+Landroid/widget/Editor;->extractTextInternal(Landroid/view/inputmethod/ExtractedTextRequest;IIILandroid/view/inputmethod/ExtractedText;)Z
+Landroid/widget/Editor;->EXTRACT_NOTHING:I
+Landroid/widget/Editor;->EXTRACT_UNKNOWN:I
+Landroid/widget/Editor;->findEquivalentSuggestionSpan(Landroid/widget/Editor$SuggestionSpanInfo;)Landroid/text/style/SuggestionSpan;
+Landroid/widget/Editor;->finishBatchEdit(Landroid/widget/Editor$InputMethodState;)V
+Landroid/widget/Editor;->FLAG_USE_MAGNIFIER:Z
+Landroid/widget/Editor;->forgetUndoRedo()V
+Landroid/widget/Editor;->getAvailableDisplayListIndex([III)I
+Landroid/widget/Editor;->getCharClusterRange(I)J
+Landroid/widget/Editor;->getCurrentLineAdjustedForSlop(Landroid/text/Layout;IF)I
+Landroid/widget/Editor;->getCursorDrawable()Landroid/graphics/drawable/Drawable;
+Landroid/widget/Editor;->getErrorX()I
+Landroid/widget/Editor;->getErrorY()I
+Landroid/widget/Editor;->getInsertionController()Landroid/widget/Editor$InsertionPointCursorController;
+Landroid/widget/Editor;->getLastTapPosition()I
+Landroid/widget/Editor;->getLastTouchOffsets()J
+Landroid/widget/Editor;->getLastUpPositionX()F
+Landroid/widget/Editor;->getLastUpPositionY()F
+Landroid/widget/Editor;->getNextCursorOffset(IZ)I
+Landroid/widget/Editor;->getParagraphsRange(II)J
+Landroid/widget/Editor;->getPositionListener()Landroid/widget/Editor$PositionListener;
+Landroid/widget/Editor;->getSelectionActionModeHelper()Landroid/widget/SelectionActionModeHelper;
+Landroid/widget/Editor;->getSelectionController()Landroid/widget/Editor$SelectionModifierCursorController;
+Landroid/widget/Editor;->getSuggestionsPopupWindowForTesting()Landroid/widget/Editor$SuggestionsPopupWindow;
+Landroid/widget/Editor;->getTextActionMode()Landroid/view/ActionMode;
+Landroid/widget/Editor;->getTextThumbnailBuilder(II)Landroid/view/View$DragShadowBuilder;
+Landroid/widget/Editor;->getTextView()Landroid/widget/TextView;
+Landroid/widget/Editor;->getWordEnd(I)I
+Landroid/widget/Editor;->getWordIterator()Landroid/text/method/WordIterator;
+Landroid/widget/Editor;->getWordIteratorWithText()Landroid/text/method/WordIterator;
+Landroid/widget/Editor;->getWordStart(I)I
+Landroid/widget/Editor;->HANDLE_TYPE_SELECTION_END:I
+Landroid/widget/Editor;->HANDLE_TYPE_SELECTION_START:I
+Landroid/widget/Editor;->hasInsertionController()Z
+Landroid/widget/Editor;->hasSelectionController()Z
+Landroid/widget/Editor;->hideCursorAndSpanControllers()V
+Landroid/widget/Editor;->hideCursorControllers()V
+Landroid/widget/Editor;->hideError()V
+Landroid/widget/Editor;->hideFloatingToolbar(I)V
+Landroid/widget/Editor;->hideInsertionPointCursorController()V
+Landroid/widget/Editor;->hideSpanControllers()V
+Landroid/widget/Editor;->invalidateActionMode()V
+Landroid/widget/Editor;->invalidateActionModeAsync()V
+Landroid/widget/Editor;->invalidateHandlesAndActionMode()V
+Landroid/widget/Editor;->invalidateTextDisplayList(Landroid/text/Layout;II)V
+Landroid/widget/Editor;->isCursorInsideEasyCorrectionSpan()Z
+Landroid/widget/Editor;->isCursorVisible()Z
+Landroid/widget/Editor;->isOffsetVisible(I)Z
+Landroid/widget/Editor;->isPositionOnText(FF)Z
+Landroid/widget/Editor;->isValidRange(Ljava/lang/CharSequence;II)Z
+Landroid/widget/Editor;->LINE_SLOP_MULTIPLIER_FOR_HANDLEVIEWS:F
+Landroid/widget/Editor;->makeBlink()V
+Landroid/widget/Editor;->mAllowUndo:Z
+Landroid/widget/Editor;->mBlink:Landroid/widget/Editor$Blink;
+Landroid/widget/Editor;->mContextMenuAnchorX:F
+Landroid/widget/Editor;->mContextMenuAnchorY:F
+Landroid/widget/Editor;->mCorrectionHighlighter:Landroid/widget/Editor$CorrectionHighlighter;
+Landroid/widget/Editor;->mCursorAnchorInfoNotifier:Landroid/widget/Editor$CursorAnchorInfoNotifier;
+Landroid/widget/Editor;->mCursorVisible:Z
+Landroid/widget/Editor;->mCustomInsertionActionModeCallback:Landroid/view/ActionMode$Callback;
+Landroid/widget/Editor;->mCustomSelectionActionModeCallback:Landroid/view/ActionMode$Callback;
+Landroid/widget/Editor;->mDiscardNextActionUp:Z
+Landroid/widget/Editor;->mDrawableForCursor:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Editor;->MENU_ITEM_ORDER_ASSIST:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_AUTOFILL:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_COPY:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_CUT:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_PASTE:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_PASTE_AS_PLAIN_TEXT:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_PROCESS_TEXT_INTENT_ACTIONS_START:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_REDO:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_REPLACE:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_SECONDARY_ASSIST_ACTIONS_START:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_SELECT_ALL:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_SHARE:I
+Landroid/widget/Editor;->MENU_ITEM_ORDER_UNDO:I
+Landroid/widget/Editor;->mError:Ljava/lang/CharSequence;
+Landroid/widget/Editor;->mErrorPopup:Landroid/widget/Editor$ErrorPopup;
+Landroid/widget/Editor;->mErrorWasChanged:Z
+Landroid/widget/Editor;->mFrozenWithFocus:Z
+Landroid/widget/Editor;->mHapticTextHandleEnabled:Z
+Landroid/widget/Editor;->mIgnoreActionUpEvent:Z
+Landroid/widget/Editor;->mInBatchEditControllers:Z
+Landroid/widget/Editor;->mInputContentType:Landroid/widget/Editor$InputContentType;
+Landroid/widget/Editor;->mInputMethodState:Landroid/widget/Editor$InputMethodState;
+Landroid/widget/Editor;->mInputType:I
+Landroid/widget/Editor;->mInsertionActionModeRunnable:Ljava/lang/Runnable;
+Landroid/widget/Editor;->mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
+Landroid/widget/Editor;->mIsBeingLongClicked:Z
+Landroid/widget/Editor;->mIsInsertionActionModeStartPending:Z
+Landroid/widget/Editor;->mKeyListener:Landroid/text/method/KeyListener;
+Landroid/widget/Editor;->mLastButtonState:I
+Landroid/widget/Editor;->mLastDownPositionX:F
+Landroid/widget/Editor;->mLastDownPositionY:F
+Landroid/widget/Editor;->mLastTouchUpTime:J
+Landroid/widget/Editor;->mLastUpPositionX:F
+Landroid/widget/Editor;->mLastUpPositionY:F
+Landroid/widget/Editor;->mMagnifierAnimator:Landroid/widget/Editor$MagnifierMotionAnimator;
+Landroid/widget/Editor;->mMagnifierOnDrawListener:Landroid/view/ViewTreeObserver$OnDrawListener;
+Landroid/widget/Editor;->mMetricsLogger:Lcom/android/internal/logging/MetricsLogger;
+Landroid/widget/Editor;->mOnContextMenuItemClickListener:Landroid/view/MenuItem$OnMenuItemClickListener;
+Landroid/widget/Editor;->mPositionListener:Landroid/widget/Editor$PositionListener;
+Landroid/widget/Editor;->mPreserveSelection:Z
+Landroid/widget/Editor;->mProcessTextIntentActionsHandler:Landroid/widget/Editor$ProcessTextIntentActionsHandler;
+Landroid/widget/Editor;->mRenderCursorRegardlessTiming:Z
+Landroid/widget/Editor;->mRequestingLinkActionMode:Z
+Landroid/widget/Editor;->mRestartActionModeOnNextRefresh:Z
+Landroid/widget/Editor;->mSelectAllOnFocus:Z
+Landroid/widget/Editor;->mSelectionActionModeHelper:Landroid/widget/SelectionActionModeHelper;
+Landroid/widget/Editor;->mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
+Landroid/widget/Editor;->mSelectionMoved:Z
+Landroid/widget/Editor;->mShowErrorAfterAttach:Z
+Landroid/widget/Editor;->mShowFloatingToolbar:Ljava/lang/Runnable;
+Landroid/widget/Editor;->mShowSuggestionRunnable:Ljava/lang/Runnable;
+Landroid/widget/Editor;->mSpanController:Landroid/widget/Editor$SpanController;
+Landroid/widget/Editor;->mSpellChecker:Landroid/widget/SpellChecker;
+Landroid/widget/Editor;->mSuggestionHelper:Landroid/widget/Editor$SuggestionHelper;
+Landroid/widget/Editor;->mSuggestionRangeSpan:Landroid/text/style/SuggestionRangeSpan;
+Landroid/widget/Editor;->mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
+Landroid/widget/Editor;->mTapState:I
+Landroid/widget/Editor;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/Editor;->mTextActionMode:Landroid/view/ActionMode;
+Landroid/widget/Editor;->mTextIsSelectable:Z
+Landroid/widget/Editor;->mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
+Landroid/widget/Editor;->mTextView:Landroid/widget/TextView;
+Landroid/widget/Editor;->mTouchFocusSelected:Z
+Landroid/widget/Editor;->mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
+Landroid/widget/Editor;->mUndoManager:Landroid/content/UndoManager;
+Landroid/widget/Editor;->mUndoOwner:Landroid/content/UndoOwner;
+Landroid/widget/Editor;->mUpdateMagnifierRunnable:Ljava/lang/Runnable;
+Landroid/widget/Editor;->mUpdateWordIteratorText:Z
+Landroid/widget/Editor;->mWordIterator:Landroid/text/method/WordIterator;
+Landroid/widget/Editor;->mWordIteratorWithText:Landroid/text/method/WordIterator;
+Landroid/widget/Editor;->needsToSelectAllToSelectWordOrParagraph()Z
+Landroid/widget/Editor;->onAttachedToWindow()V
+Landroid/widget/Editor;->onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V
+Landroid/widget/Editor;->onCreateContextMenu(Landroid/view/ContextMenu;)V
+Landroid/widget/Editor;->onDetachedFromWindow()V
+Landroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
+Landroid/widget/Editor;->onDrop(Landroid/view/DragEvent;)V
+Landroid/widget/Editor;->onFocusChanged(ZI)V
+Landroid/widget/Editor;->onLocaleChanged()V
+Landroid/widget/Editor;->onScreenStateChanged(I)V
+Landroid/widget/Editor;->onScrollChanged()V
+Landroid/widget/Editor;->onTouchEvent(Landroid/view/MotionEvent;)V
+Landroid/widget/Editor;->onTouchUpEvent(Landroid/view/MotionEvent;)V
+Landroid/widget/Editor;->onWindowFocusChanged(Z)V
+Landroid/widget/Editor;->performLongClick(Z)Z
+Landroid/widget/Editor;->prepareCursorControllers()V
+Landroid/widget/Editor;->redo()V
+Landroid/widget/Editor;->refreshTextActionMode()V
+Landroid/widget/Editor;->replace()V
+Landroid/widget/Editor;->replaceWithSuggestion(Landroid/widget/Editor$SuggestionInfo;)V
+Landroid/widget/Editor;->reportExtractedText()Z
+Landroid/widget/Editor;->restoreInstanceState(Landroid/os/ParcelableParcel;)V
+Landroid/widget/Editor;->resumeBlink()V
+Landroid/widget/Editor;->saveInstanceState()Landroid/os/ParcelableParcel;
+Landroid/widget/Editor;->selectCurrentParagraph()Z
+Landroid/widget/Editor;->selectCurrentWord()Z
+Landroid/widget/Editor;->selectCurrentWordAndStartDrag()Z
+Landroid/widget/Editor;->sendOnTextChanged(III)V
+Landroid/widget/Editor;->sendUpdateSelection()V
+Landroid/widget/Editor;->setContextMenuAnchor(FF)V
+Landroid/widget/Editor;->setError(Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/Editor;->setErrorIcon(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/Editor;->setFrame()V
+Landroid/widget/Editor;->setRestartActionModeOnNextRefresh(Z)V
+Landroid/widget/Editor;->shouldBlink()Z
+Landroid/widget/Editor;->shouldFilterOutTouchEvent(Landroid/view/MotionEvent;)Z
+Landroid/widget/Editor;->shouldOfferToShowSuggestions()Z
+Landroid/widget/Editor;->shouldRenderCursor()Z
+Landroid/widget/Editor;->showError()V
+Landroid/widget/Editor;->showFloatingToolbar()V
+Landroid/widget/Editor;->startActionModeInternal(I)Z
+Landroid/widget/Editor;->startDragAndDrop()V
+Landroid/widget/Editor;->startInsertionActionMode()V
+Landroid/widget/Editor;->startLinkActionModeAsync(II)V
+Landroid/widget/Editor;->startSelectionActionModeAsync(Z)V
+Landroid/widget/Editor;->stopTextActionMode()V
+Landroid/widget/Editor;->stopTextActionModeWithPreservingSelection()V
+Landroid/widget/Editor;->suspendBlink()V
+Landroid/widget/Editor;->TAG:Ljava/lang/String;
+Landroid/widget/Editor;->TAP_STATE_DOUBLE_TAP:I
+Landroid/widget/Editor;->TAP_STATE_FIRST_TAP:I
+Landroid/widget/Editor;->TAP_STATE_INITIAL:I
+Landroid/widget/Editor;->TAP_STATE_TRIPLE_CLICK:I
+Landroid/widget/Editor;->touchPositionIsInSelection()Z
+Landroid/widget/Editor;->undo()V
+Landroid/widget/Editor;->UNDO_OWNER_TAG:Ljava/lang/String;
+Landroid/widget/Editor;->UNSET_LINE:I
+Landroid/widget/Editor;->UNSET_X_VALUE:I
+Landroid/widget/Editor;->updateCursorPosition()V
+Landroid/widget/Editor;->updateCursorPosition(IIF)V
+Landroid/widget/Editor;->updateFloatingToolbarVisibility(Landroid/view/MotionEvent;)V
+Landroid/widget/Editor;->updateSpellCheckSpans(IIZ)V
+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;
+Landroid/widget/ExpandableListConnector$GroupMetadata;->flPos:I
+Landroid/widget/ExpandableListConnector$GroupMetadata;->gId:J
+Landroid/widget/ExpandableListConnector$GroupMetadata;->gPos:I
+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
+Landroid/widget/ExpandableListConnector$PositionMetadata;->groupMetadata:Landroid/widget/ExpandableListConnector$GroupMetadata;
+Landroid/widget/ExpandableListConnector$PositionMetadata;->isExpanded()Z
+Landroid/widget/ExpandableListConnector$PositionMetadata;->MAX_POOL_SIZE:I
+Landroid/widget/ExpandableListConnector$PositionMetadata;->obtain(IIIILandroid/widget/ExpandableListConnector$GroupMetadata;I)Landroid/widget/ExpandableListConnector$PositionMetadata;
+Landroid/widget/ExpandableListConnector$PositionMetadata;->position:Landroid/widget/ExpandableListPosition;
+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
+Landroid/widget/ExpandableListConnector;->expandGroup(I)Z
+Landroid/widget/ExpandableListConnector;->expandGroup(Landroid/widget/ExpandableListConnector$PositionMetadata;)Z
+Landroid/widget/ExpandableListConnector;->findGroupPosition(JI)I
+Landroid/widget/ExpandableListConnector;->getAdapter()Landroid/widget/ExpandableListAdapter;
+Landroid/widget/ExpandableListConnector;->getExpandedGroupMetadataList()Ljava/util/ArrayList;
+Landroid/widget/ExpandableListConnector;->getFlattenedPos(Landroid/widget/ExpandableListPosition;)Landroid/widget/ExpandableListConnector$PositionMetadata;
+Landroid/widget/ExpandableListConnector;->getUnflattenedPos(I)Landroid/widget/ExpandableListConnector$PositionMetadata;
+Landroid/widget/ExpandableListConnector;->isGroupExpanded(I)Z
+Landroid/widget/ExpandableListConnector;->mDataSetObserver:Landroid/database/DataSetObserver;
+Landroid/widget/ExpandableListConnector;->mExpandableListAdapter:Landroid/widget/ExpandableListAdapter;
+Landroid/widget/ExpandableListConnector;->mExpGroupMetadataList:Ljava/util/ArrayList;
+Landroid/widget/ExpandableListConnector;->mMaxExpGroupCount:I
+Landroid/widget/ExpandableListConnector;->mTotalExpChildrenCount:I
+Landroid/widget/ExpandableListConnector;->refreshExpGroupMetadataList(ZZ)V
+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
+Landroid/widget/ExpandableListPosition;->flatListPos:I
+Landroid/widget/ExpandableListPosition;->getPackedPosition()J
+Landroid/widget/ExpandableListPosition;->getRecycledOrCreate()Landroid/widget/ExpandableListPosition;
+Landroid/widget/ExpandableListPosition;->GROUP:I
+Landroid/widget/ExpandableListPosition;->groupPos:I
+Landroid/widget/ExpandableListPosition;->MAX_POOL_SIZE:I
+Landroid/widget/ExpandableListPosition;->obtain(IIII)Landroid/widget/ExpandableListPosition;
+Landroid/widget/ExpandableListPosition;->obtainChildPosition(II)Landroid/widget/ExpandableListPosition;
+Landroid/widget/ExpandableListPosition;->obtainGroupPosition(I)Landroid/widget/ExpandableListPosition;
+Landroid/widget/ExpandableListPosition;->obtainPosition(J)Landroid/widget/ExpandableListPosition;
+Landroid/widget/ExpandableListPosition;->recycle()V
+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;
+Landroid/widget/ExpandableListView$SavedState;->expandedGroupMetadataList:Ljava/util/ArrayList;
+Landroid/widget/ExpandableListView;->CHILD_LAST_STATE_SET:[I
+Landroid/widget/ExpandableListView;->createContextMenuInfo(Landroid/view/View;IJ)Landroid/view/ContextMenu$ContextMenuInfo;
+Landroid/widget/ExpandableListView;->drawDivider(Landroid/graphics/Canvas;Landroid/graphics/Rect;I)V
+Landroid/widget/ExpandableListView;->EMPTY_STATE_SET:[I
+Landroid/widget/ExpandableListView;->getAbsoluteFlatPosition(I)I
+Landroid/widget/ExpandableListView;->getChildOrGroupId(Landroid/widget/ExpandableListPosition;)J
+Landroid/widget/ExpandableListView;->getFlatPositionForConnector(I)I
+Landroid/widget/ExpandableListView;->getIndicator(Landroid/widget/ExpandableListConnector$PositionMetadata;)Landroid/graphics/drawable/Drawable;
+Landroid/widget/ExpandableListView;->GROUP_EMPTY_STATE_SET:[I
+Landroid/widget/ExpandableListView;->GROUP_EXPANDED_EMPTY_STATE_SET:[I
+Landroid/widget/ExpandableListView;->GROUP_EXPANDED_STATE_SET:[I
+Landroid/widget/ExpandableListView;->handleItemClick(Landroid/view/View;IJ)Z
+Landroid/widget/ExpandableListView;->hasRtlSupport()Z
+Landroid/widget/ExpandableListView;->INDICATOR_UNDEFINED:I
+Landroid/widget/ExpandableListView;->isHeaderOrFooterPosition(I)Z
+Landroid/widget/ExpandableListView;->isRtlCompatibilityMode()Z
+Landroid/widget/ExpandableListView;->mAdapter:Landroid/widget/ExpandableListAdapter;
+Landroid/widget/ExpandableListView;->mChildIndicator:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ExpandableListView;->mChildIndicatorEnd:I
+Landroid/widget/ExpandableListView;->mChildIndicatorLeft:I
+Landroid/widget/ExpandableListView;->mChildIndicatorRight:I
+Landroid/widget/ExpandableListView;->mChildIndicatorStart:I
+Landroid/widget/ExpandableListView;->mIndicatorEnd:I
+Landroid/widget/ExpandableListView;->mIndicatorRect:Landroid/graphics/Rect;
+Landroid/widget/ExpandableListView;->mIndicatorStart:I
+Landroid/widget/ExpandableListView;->PACKED_POSITION_INT_MASK_CHILD:J
+Landroid/widget/ExpandableListView;->PACKED_POSITION_INT_MASK_GROUP:J
+Landroid/widget/ExpandableListView;->PACKED_POSITION_MASK_CHILD:J
+Landroid/widget/ExpandableListView;->PACKED_POSITION_MASK_GROUP:J
+Landroid/widget/ExpandableListView;->PACKED_POSITION_MASK_TYPE:J
+Landroid/widget/ExpandableListView;->PACKED_POSITION_SHIFT_GROUP:J
+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;
+Landroid/widget/FastScroller;->applyLayout(Landroid/view/View;Landroid/graphics/Rect;)V
+Landroid/widget/FastScroller;->beginDrag()V
+Landroid/widget/FastScroller;->BOTTOM:Landroid/util/Property;
+Landroid/widget/FastScroller;->cancelFling()V
+Landroid/widget/FastScroller;->cancelPendingDrag()V
+Landroid/widget/FastScroller;->createPreviewTextView(Landroid/content/Context;)Landroid/widget/TextView;
+Landroid/widget/FastScroller;->DURATION_CROSS_FADE:I
+Landroid/widget/FastScroller;->DURATION_FADE_IN:I
+Landroid/widget/FastScroller;->DURATION_FADE_OUT:I
+Landroid/widget/FastScroller;->DURATION_RESIZE:I
+Landroid/widget/FastScroller;->FADE_TIMEOUT:J
+Landroid/widget/FastScroller;->getPosFromItemCount(III)F
+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
+Landroid/widget/FastScroller;->isPointInsideX(F)Z
+Landroid/widget/FastScroller;->isPointInsideY(F)Z
+Landroid/widget/FastScroller;->layoutThumb()V
+Landroid/widget/FastScroller;->layoutTrack()V
+Landroid/widget/FastScroller;->LEFT:Landroid/util/Property;
+Landroid/widget/FastScroller;->mAlwaysShow:Z
+Landroid/widget/FastScroller;->mCurrentSection:I
+Landroid/widget/FastScroller;->mDecorAnimation:Landroid/animation/AnimatorSet;
+Landroid/widget/FastScroller;->mDeferHide:Ljava/lang/Runnable;
+Landroid/widget/FastScroller;->measureFloating(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/widget/FastScroller;->measurePreview(Landroid/view/View;Landroid/graphics/Rect;)V
+Landroid/widget/FastScroller;->measureViewToSide(Landroid/view/View;Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/widget/FastScroller;->mEnabled:Z
+Landroid/widget/FastScroller;->mFirstVisibleItem:I
+Landroid/widget/FastScroller;->mInitialTouchY:F
+Landroid/widget/FastScroller;->MIN_PAGES:I
+Landroid/widget/FastScroller;->mLayoutFromRight:Z
+Landroid/widget/FastScroller;->mList:Landroid/widget/AbsListView;
+Landroid/widget/FastScroller;->mListAdapter:Landroid/widget/Adapter;
+Landroid/widget/FastScroller;->mMatchDragPosition:Z
+Landroid/widget/FastScroller;->mOldChildCount:I
+Landroid/widget/FastScroller;->mOldItemCount:I
+Landroid/widget/FastScroller;->mOverlay:Landroid/view/ViewGroupOverlay;
+Landroid/widget/FastScroller;->mOverlayPosition:I
+Landroid/widget/FastScroller;->mPendingDrag:J
+Landroid/widget/FastScroller;->mPreviewAnimation:Landroid/animation/AnimatorSet;
+Landroid/widget/FastScroller;->mPreviewImage:Landroid/view/View;
+Landroid/widget/FastScroller;->mPreviewMinHeight:I
+Landroid/widget/FastScroller;->mPreviewMinWidth:I
+Landroid/widget/FastScroller;->mPreviewPadding:I
+Landroid/widget/FastScroller;->mPreviewResId:[I
+Landroid/widget/FastScroller;->mPrimaryText:Landroid/widget/TextView;
+Landroid/widget/FastScroller;->mScaledTouchSlop:I
+Landroid/widget/FastScroller;->mScrollbarPosition:I
+Landroid/widget/FastScroller;->mScrollBarStyle:I
+Landroid/widget/FastScroller;->mScrollCompleted:Z
+Landroid/widget/FastScroller;->mSecondaryText:Landroid/widget/TextView;
+Landroid/widget/FastScroller;->mSectionIndexer:Landroid/widget/SectionIndexer;
+Landroid/widget/FastScroller;->mSections:[Ljava/lang/Object;
+Landroid/widget/FastScroller;->mShowingPreview:Z
+Landroid/widget/FastScroller;->mShowingPrimary:Z
+Landroid/widget/FastScroller;->mState:I
+Landroid/widget/FastScroller;->mSwitchPrimaryListener:Landroid/animation/Animator$AnimatorListener;
+Landroid/widget/FastScroller;->mTempBounds:Landroid/graphics/Rect;
+Landroid/widget/FastScroller;->mTempMargins:Landroid/graphics/Rect;
+Landroid/widget/FastScroller;->mTextAppearance:I
+Landroid/widget/FastScroller;->mTextColor:Landroid/content/res/ColorStateList;
+Landroid/widget/FastScroller;->mTextSize:F
+Landroid/widget/FastScroller;->mThumbMinHeight:I
+Landroid/widget/FastScroller;->mThumbMinWidth:I
+Landroid/widget/FastScroller;->mThumbOffset:F
+Landroid/widget/FastScroller;->mThumbPosition:I
+Landroid/widget/FastScroller;->mThumbRange:F
+Landroid/widget/FastScroller;->mUpdatingLayout:Z
+Landroid/widget/FastScroller;->mWidth:I
+Landroid/widget/FastScroller;->onInterceptHoverEvent(Landroid/view/MotionEvent;)Z
+Landroid/widget/FastScroller;->onItemCountChanged(II)V
+Landroid/widget/FastScroller;->onResolvePointerIcon(Landroid/view/MotionEvent;I)Landroid/view/PointerIcon;
+Landroid/widget/FastScroller;->onScroll(III)V
+Landroid/widget/FastScroller;->onSectionsChanged()V
+Landroid/widget/FastScroller;->onStateDependencyChanged(Z)V
+Landroid/widget/FastScroller;->OVERLAY_ABOVE_THUMB:I
+Landroid/widget/FastScroller;->OVERLAY_AT_THUMB:I
+Landroid/widget/FastScroller;->OVERLAY_FLOATING:I
+Landroid/widget/FastScroller;->postAutoHide()V
+Landroid/widget/FastScroller;->PREVIEW_LEFT:I
+Landroid/widget/FastScroller;->PREVIEW_RIGHT:I
+Landroid/widget/FastScroller;->refreshDrawablePressedState()V
+Landroid/widget/FastScroller;->RIGHT:Landroid/util/Property;
+Landroid/widget/FastScroller;->scrollTo(F)V
+Landroid/widget/FastScroller;->setAlwaysShow(Z)V
+Landroid/widget/FastScroller;->setEnabled(Z)V
+Landroid/widget/FastScroller;->setScrollbarPosition(I)V
+Landroid/widget/FastScroller;->setScrollBarStyle(I)V
+Landroid/widget/FastScroller;->setStyle(I)V
+Landroid/widget/FastScroller;->setThumbPos(F)V
+Landroid/widget/FastScroller;->startPendingDrag()V
+Landroid/widget/FastScroller;->STATE_DRAGGING:I
+Landroid/widget/FastScroller;->STATE_NONE:I
+Landroid/widget/FastScroller;->STATE_VISIBLE:I
+Landroid/widget/FastScroller;->stop()V
+Landroid/widget/FastScroller;->TAP_TIMEOUT:J
+Landroid/widget/FastScroller;->THUMB_POSITION_INSIDE:I
+Landroid/widget/FastScroller;->THUMB_POSITION_MIDPOINT:I
+Landroid/widget/FastScroller;->TOP:Landroid/util/Property;
+Landroid/widget/FastScroller;->transitionPreviewLayout(I)Z
+Landroid/widget/FastScroller;->transitionToDragging()V
+Landroid/widget/FastScroller;->transitionToHidden()V
+Landroid/widget/FastScroller;->transitionToVisible()V
+Landroid/widget/FastScroller;->updateAppearance()V
+Landroid/widget/FastScroller;->updateContainerRect()V
+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;
+Landroid/widget/Filter;->mDelayer:Landroid/widget/Filter$Delayer;
+Landroid/widget/Filter;->mLock:Ljava/lang/Object;
+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;
+Landroid/widget/ForwardingListener;->mActivePointerId:I
+Landroid/widget/ForwardingListener;->mDisallowIntercept:Ljava/lang/Runnable;
+Landroid/widget/ForwardingListener;->mForwarding:Z
+Landroid/widget/ForwardingListener;->mLongPressTimeout:I
+Landroid/widget/ForwardingListener;->mScaledTouchSlop:F
+Landroid/widget/ForwardingListener;->mSrc:Landroid/view/View;
+Landroid/widget/ForwardingListener;->mTapTimeout:I
+Landroid/widget/ForwardingListener;->mTriggerLongPress:Ljava/lang/Runnable;
+Landroid/widget/ForwardingListener;->onForwardingStarted()Z
+Landroid/widget/ForwardingListener;->onForwardingStopped()Z
+Landroid/widget/ForwardingListener;->onLongPress()V
+Landroid/widget/ForwardingListener;->onTouchForwarded(Landroid/view/MotionEvent;)Z
+Landroid/widget/ForwardingListener;->onTouchObserved(Landroid/view/MotionEvent;)Z
+Landroid/widget/FrameLayout;->DEFAULT_CHILD_GRAVITY:I
+Landroid/widget/FrameLayout;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/FrameLayout;->getPaddingBottomWithForeground()I
+Landroid/widget/FrameLayout;->getPaddingLeftWithForeground()I
+Landroid/widget/FrameLayout;->getPaddingRightWithForeground()I
+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;
+Landroid/widget/Gallery$FlingRunnable;->startCommon()V
+Landroid/widget/Gallery$FlingRunnable;->startUsingDistance(I)V
+Landroid/widget/Gallery$FlingRunnable;->stop(Z)V
+Landroid/widget/Gallery;->calculateTop(Landroid/view/View;Z)I
+Landroid/widget/Gallery;->detachOffScreenChildren(Z)V
+Landroid/widget/Gallery;->dispatchLongPress(Landroid/view/View;IJFFZ)Z
+Landroid/widget/Gallery;->dispatchPress(Landroid/view/View;)V
+Landroid/widget/Gallery;->dispatchUnpress()V
+Landroid/widget/Gallery;->fillToGalleryLeftLtr()V
+Landroid/widget/Gallery;->fillToGalleryLeftRtl()V
+Landroid/widget/Gallery;->fillToGalleryRightLtr()V
+Landroid/widget/Gallery;->fillToGalleryRightRtl()V
+Landroid/widget/Gallery;->getChildHeight(Landroid/view/View;)I
+Landroid/widget/Gallery;->getLimitedMotionScrollAmount(ZI)I
+Landroid/widget/Gallery;->layout(IZ)V
+Landroid/widget/Gallery;->localLOGV:Z
+Landroid/widget/Gallery;->mAnimationDuration:I
+Landroid/widget/Gallery;->mContextMenuInfo:Landroid/widget/AdapterView$AdapterContextMenuInfo;
+Landroid/widget/Gallery;->mDisableSuppressSelectionChangedRunnable:Ljava/lang/Runnable;
+Landroid/widget/Gallery;->mGravity:I
+Landroid/widget/Gallery;->mIsFirstScroll:Z
+Landroid/widget/Gallery;->mIsRtl:Z
+Landroid/widget/Gallery;->mLeftMost:I
+Landroid/widget/Gallery;->mReceivedInvokeKeyDown:Z
+Landroid/widget/Gallery;->mRightMost:I
+Landroid/widget/Gallery;->mSelectedCenterOffset:I
+Landroid/widget/Gallery;->mShouldCallbackDuringFling:Z
+Landroid/widget/Gallery;->mShouldCallbackOnUnselectedItemClick:Z
+Landroid/widget/Gallery;->mShouldStopFling:Z
+Landroid/widget/Gallery;->mSuppressSelectionChanged:Z
+Landroid/widget/Gallery;->mUnselectedAlpha:F
+Landroid/widget/Gallery;->offsetChildrenLeftAndRight(I)V
+Landroid/widget/Gallery;->onCancel()V
+Landroid/widget/Gallery;->onFinishedMovement()V
+Landroid/widget/Gallery;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/Gallery;->onUp()V
+Landroid/widget/Gallery;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/Gallery;->scrollIntoSlots()V
+Landroid/widget/Gallery;->scrollToChild(I)Z
+Landroid/widget/Gallery;->SCROLL_TO_FLING_UNCERTAINTY_TIMEOUT:I
+Landroid/widget/Gallery;->selectionChanged()V
+Landroid/widget/Gallery;->setCallbackOnUnselectedItemClick(Z)V
+Landroid/widget/Gallery;->setSelectedPositionInt(I)V
+Landroid/widget/Gallery;->setSelectionToCenterChild()V
+Landroid/widget/Gallery;->setUpChild(Landroid/view/View;IIZ)V
+Landroid/widget/Gallery;->showContextMenuForChildInternal(Landroid/view/View;FFZ)Z
+Landroid/widget/Gallery;->showContextMenuInternal(FFZ)Z
+Landroid/widget/Gallery;->TAG:Ljava/lang/String;
+Landroid/widget/Gallery;->updateSelectedItemMetadata()V
+Landroid/widget/GridLayout$Alignment;-><init>()V
+Landroid/widget/GridLayout$Alignment;->getAlignmentValue(Landroid/view/View;II)I
+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;
+Landroid/widget/GridLayout$Axis;->arcsValid:Z
+Landroid/widget/GridLayout$Axis;->backwardLinks:Landroid/widget/GridLayout$PackedMap;
+Landroid/widget/GridLayout$Axis;->backwardLinksValid:Z
+Landroid/widget/GridLayout$Axis;->calculateMaxIndex()I
+Landroid/widget/GridLayout$Axis;->calculateTotalWeight()F
+Landroid/widget/GridLayout$Axis;->COMPLETE:I
+Landroid/widget/GridLayout$Axis;->computeArcs()V
+Landroid/widget/GridLayout$Axis;->computeGroupBounds()V
+Landroid/widget/GridLayout$Axis;->computeHasWeights()Z
+Landroid/widget/GridLayout$Axis;->computeLinks(Landroid/widget/GridLayout$PackedMap;Z)V
+Landroid/widget/GridLayout$Axis;->computeLocations([I)V
+Landroid/widget/GridLayout$Axis;->computeMargins(Z)V
+Landroid/widget/GridLayout$Axis;->createArcs()[Landroid/widget/GridLayout$Arc;
+Landroid/widget/GridLayout$Axis;->createGroupBounds()Landroid/widget/GridLayout$PackedMap;
+Landroid/widget/GridLayout$Axis;->createLinks(Z)Landroid/widget/GridLayout$PackedMap;
+Landroid/widget/GridLayout$Axis;->definedCount:I
+Landroid/widget/GridLayout$Axis;->deltas:[I
+Landroid/widget/GridLayout$Axis;->forwardLinks:Landroid/widget/GridLayout$PackedMap;
+Landroid/widget/GridLayout$Axis;->forwardLinksValid:Z
+Landroid/widget/GridLayout$Axis;->getArcs()[Landroid/widget/GridLayout$Arc;
+Landroid/widget/GridLayout$Axis;->getBackwardLinks()Landroid/widget/GridLayout$PackedMap;
+Landroid/widget/GridLayout$Axis;->getCount()I
+Landroid/widget/GridLayout$Axis;->getDeltas()[I
+Landroid/widget/GridLayout$Axis;->getForwardLinks()Landroid/widget/GridLayout$PackedMap;
+Landroid/widget/GridLayout$Axis;->getGroupBounds()Landroid/widget/GridLayout$PackedMap;
+Landroid/widget/GridLayout$Axis;->getLeadingMargins()[I
+Landroid/widget/GridLayout$Axis;->getLocations()[I
+Landroid/widget/GridLayout$Axis;->getMaxIndex()I
+Landroid/widget/GridLayout$Axis;->getMeasure(I)I
+Landroid/widget/GridLayout$Axis;->getMeasure(II)I
+Landroid/widget/GridLayout$Axis;->getTrailingMargins()[I
+Landroid/widget/GridLayout$Axis;->groupArcsByFirstVertex([Landroid/widget/GridLayout$Arc;)[[Landroid/widget/GridLayout$Arc;
+Landroid/widget/GridLayout$Axis;->groupBounds:Landroid/widget/GridLayout$PackedMap;
+Landroid/widget/GridLayout$Axis;->groupBoundsValid:Z
+Landroid/widget/GridLayout$Axis;->hasWeights()Z
+Landroid/widget/GridLayout$Axis;->hasWeights:Z
+Landroid/widget/GridLayout$Axis;->hasWeightsValid:Z
+Landroid/widget/GridLayout$Axis;->horizontal:Z
+Landroid/widget/GridLayout$Axis;->include(Ljava/util/List;Landroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$MutableInt;)V
+Landroid/widget/GridLayout$Axis;->include(Ljava/util/List;Landroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$MutableInt;Z)V
+Landroid/widget/GridLayout$Axis;->init([I)V
+Landroid/widget/GridLayout$Axis;->invalidateStructure()V
+Landroid/widget/GridLayout$Axis;->invalidateValues()V
+Landroid/widget/GridLayout$Axis;->isOrderPreserved()Z
+Landroid/widget/GridLayout$Axis;->layout(I)V
+Landroid/widget/GridLayout$Axis;->leadingMargins:[I
+Landroid/widget/GridLayout$Axis;->leadingMarginsValid:Z
+Landroid/widget/GridLayout$Axis;->locations:[I
+Landroid/widget/GridLayout$Axis;->locationsValid:Z
+Landroid/widget/GridLayout$Axis;->logError(Ljava/lang/String;[Landroid/widget/GridLayout$Arc;[Z)V
+Landroid/widget/GridLayout$Axis;->maxIndex:I
+Landroid/widget/GridLayout$Axis;->NEW:I
+Landroid/widget/GridLayout$Axis;->orderPreserved:Z
+Landroid/widget/GridLayout$Axis;->parentMax:Landroid/widget/GridLayout$MutableInt;
+Landroid/widget/GridLayout$Axis;->parentMin:Landroid/widget/GridLayout$MutableInt;
+Landroid/widget/GridLayout$Axis;->PENDING:I
+Landroid/widget/GridLayout$Axis;->relax([ILandroid/widget/GridLayout$Arc;)Z
+Landroid/widget/GridLayout$Axis;->setCount(I)V
+Landroid/widget/GridLayout$Axis;->setOrderPreserved(Z)V
+Landroid/widget/GridLayout$Axis;->setParentConstraints(II)V
+Landroid/widget/GridLayout$Axis;->shareOutDelta(IF)V
+Landroid/widget/GridLayout$Axis;->size([I)I
+Landroid/widget/GridLayout$Axis;->solve([I)Z
+Landroid/widget/GridLayout$Axis;->solve([Landroid/widget/GridLayout$Arc;[I)Z
+Landroid/widget/GridLayout$Axis;->solve([Landroid/widget/GridLayout$Arc;[IZ)Z
+Landroid/widget/GridLayout$Axis;->solveAndDistributeSpace([I)V
+Landroid/widget/GridLayout$Axis;->topologicalSort(Ljava/util/List;)[Landroid/widget/GridLayout$Arc;
+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
+Landroid/widget/GridLayout$Bounds;->flexibility:I
+Landroid/widget/GridLayout$Bounds;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I
+Landroid/widget/GridLayout$Bounds;->include(II)V
+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
+Landroid/widget/GridLayout$Interval;->min:I
+Landroid/widget/GridLayout$Interval;->size()I
+Landroid/widget/GridLayout$LayoutParams;-><init>(IIIIIILandroid/widget/GridLayout$Spec;Landroid/widget/GridLayout$Spec;)V
+Landroid/widget/GridLayout$LayoutParams;->BOTTOM_MARGIN:I
+Landroid/widget/GridLayout$LayoutParams;->COLUMN:I
+Landroid/widget/GridLayout$LayoutParams;->COLUMN_SPAN:I
+Landroid/widget/GridLayout$LayoutParams;->COLUMN_WEIGHT:I
+Landroid/widget/GridLayout$LayoutParams;->DEFAULT_COLUMN:I
+Landroid/widget/GridLayout$LayoutParams;->DEFAULT_HEIGHT:I
+Landroid/widget/GridLayout$LayoutParams;->DEFAULT_MARGIN:I
+Landroid/widget/GridLayout$LayoutParams;->DEFAULT_ROW:I
+Landroid/widget/GridLayout$LayoutParams;->DEFAULT_SPAN:Landroid/widget/GridLayout$Interval;
+Landroid/widget/GridLayout$LayoutParams;->DEFAULT_SPAN_SIZE:I
+Landroid/widget/GridLayout$LayoutParams;->DEFAULT_WIDTH:I
+Landroid/widget/GridLayout$LayoutParams;->GRAVITY:I
+Landroid/widget/GridLayout$LayoutParams;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/widget/GridLayout$LayoutParams;->LEFT_MARGIN:I
+Landroid/widget/GridLayout$LayoutParams;->MARGIN:I
+Landroid/widget/GridLayout$LayoutParams;->reInitSuper(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/widget/GridLayout$LayoutParams;->RIGHT_MARGIN:I
+Landroid/widget/GridLayout$LayoutParams;->ROW:I
+Landroid/widget/GridLayout$LayoutParams;->ROW_SPAN:I
+Landroid/widget/GridLayout$LayoutParams;->ROW_WEIGHT:I
+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
+Landroid/widget/GridLayout$PackedMap;->getValue(I)Ljava/lang/Object;
+Landroid/widget/GridLayout$PackedMap;->index:[I
+Landroid/widget/GridLayout$PackedMap;->keys:[Ljava/lang/Object;
+Landroid/widget/GridLayout$PackedMap;->values:[Ljava/lang/Object;
+Landroid/widget/GridLayout$Spec;-><init>(ZIILandroid/widget/GridLayout$Alignment;F)V
+Landroid/widget/GridLayout$Spec;-><init>(ZLandroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$Alignment;F)V
+Landroid/widget/GridLayout$Spec;->alignment:Landroid/widget/GridLayout$Alignment;
+Landroid/widget/GridLayout$Spec;->copyWriteAlignment(Landroid/widget/GridLayout$Alignment;)Landroid/widget/GridLayout$Spec;
+Landroid/widget/GridLayout$Spec;->copyWriteSpan(Landroid/widget/GridLayout$Interval;)Landroid/widget/GridLayout$Spec;
+Landroid/widget/GridLayout$Spec;->DEFAULT_WEIGHT:F
+Landroid/widget/GridLayout$Spec;->getAbsoluteAlignment(Z)Landroid/widget/GridLayout$Alignment;
+Landroid/widget/GridLayout$Spec;->getFlexibility()I
+Landroid/widget/GridLayout$Spec;->span:Landroid/widget/GridLayout$Interval;
+Landroid/widget/GridLayout$Spec;->startDefined:Z
+Landroid/widget/GridLayout$Spec;->UNDEFINED:Landroid/widget/GridLayout$Spec;
+Landroid/widget/GridLayout$Spec;->weight:F
+Landroid/widget/GridLayout;->adjust(II)I
+Landroid/widget/GridLayout;->ALIGNMENT_MODE:I
+Landroid/widget/GridLayout;->append([Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
+Landroid/widget/GridLayout;->canStretch(I)Z
+Landroid/widget/GridLayout;->CAN_STRETCH:I
+Landroid/widget/GridLayout;->checkLayoutParams(Landroid/widget/GridLayout$LayoutParams;Z)V
+Landroid/widget/GridLayout;->clip(Landroid/widget/GridLayout$Interval;ZI)I
+Landroid/widget/GridLayout;->COLUMN_COUNT:I
+Landroid/widget/GridLayout;->COLUMN_ORDER_PRESERVED:I
+Landroid/widget/GridLayout;->computeLayoutParamsHashCode()I
+Landroid/widget/GridLayout;->consistencyCheck()V
+Landroid/widget/GridLayout;->createSwitchingAlignment(Landroid/widget/GridLayout$Alignment;Landroid/widget/GridLayout$Alignment;)Landroid/widget/GridLayout$Alignment;
+Landroid/widget/GridLayout;->DEFAULT_ALIGNMENT_MODE:I
+Landroid/widget/GridLayout;->DEFAULT_CONTAINER_MARGIN:I
+Landroid/widget/GridLayout;->DEFAULT_COUNT:I
+Landroid/widget/GridLayout;->DEFAULT_ORDER_PRESERVED:Z
+Landroid/widget/GridLayout;->DEFAULT_ORIENTATION:I
+Landroid/widget/GridLayout;->DEFAULT_USE_DEFAULT_MARGINS:Z
+Landroid/widget/GridLayout;->drawLine(Landroid/graphics/Canvas;IIIILandroid/graphics/Paint;)V
+Landroid/widget/GridLayout;->fits([IIII)Z
+Landroid/widget/GridLayout;->getAlignment(IZ)Landroid/widget/GridLayout$Alignment;
+Landroid/widget/GridLayout;->getDefaultMargin(Landroid/view/View;Landroid/widget/GridLayout$LayoutParams;ZZ)I
+Landroid/widget/GridLayout;->getDefaultMargin(Landroid/view/View;ZZ)I
+Landroid/widget/GridLayout;->getDefaultMargin(Landroid/view/View;ZZZ)I
+Landroid/widget/GridLayout;->getLayoutParams(Landroid/view/View;)Landroid/widget/GridLayout$LayoutParams;
+Landroid/widget/GridLayout;->getMargin(Landroid/view/View;ZZ)I
+Landroid/widget/GridLayout;->getMargin1(Landroid/view/View;ZZ)I
+Landroid/widget/GridLayout;->getMeasurement(Landroid/view/View;Z)I
+Landroid/widget/GridLayout;->getMeasurementIncludingMargin(Landroid/view/View;Z)I
+Landroid/widget/GridLayout;->getPrinter()Landroid/util/Printer;
+Landroid/widget/GridLayout;->getTotalMargin(Landroid/view/View;Z)I
+Landroid/widget/GridLayout;->handleInvalidParams(Ljava/lang/String;)V
+Landroid/widget/GridLayout;->INFLEXIBLE:I
+Landroid/widget/GridLayout;->invalidateStructure()V
+Landroid/widget/GridLayout;->invalidateValues()V
+Landroid/widget/GridLayout;->LEADING:Landroid/widget/GridLayout$Alignment;
+Landroid/widget/GridLayout;->LOG_PRINTER:Landroid/util/Printer;
+Landroid/widget/GridLayout;->mAlignmentMode:I
+Landroid/widget/GridLayout;->max2([II)I
+Landroid/widget/GridLayout;->MAX_SIZE:I
+Landroid/widget/GridLayout;->mDefaultGap:I
+Landroid/widget/GridLayout;->measureChildrenWithMargins(IIZ)V
+Landroid/widget/GridLayout;->measureChildWithMargins2(Landroid/view/View;IIII)V
+Landroid/widget/GridLayout;->mHorizontalAxis:Landroid/widget/GridLayout$Axis;
+Landroid/widget/GridLayout;->mLastLayoutParamsHashCode:I
+Landroid/widget/GridLayout;->mOrientation:I
+Landroid/widget/GridLayout;->mPrinter:Landroid/util/Printer;
+Landroid/widget/GridLayout;->mUseDefaultMargins:Z
+Landroid/widget/GridLayout;->mVerticalAxis:Landroid/widget/GridLayout$Axis;
+Landroid/widget/GridLayout;->NO_PRINTER:Landroid/util/Printer;
+Landroid/widget/GridLayout;->onChildVisibilityChanged(Landroid/view/View;II)V
+Landroid/widget/GridLayout;->onDebugDraw(Landroid/graphics/Canvas;)V
+Landroid/widget/GridLayout;->onDebugDrawMargins(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+Landroid/widget/GridLayout;->onSetLayoutParams(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+Landroid/widget/GridLayout;->ORIENTATION:I
+Landroid/widget/GridLayout;->procrusteanFill([IIII)V
+Landroid/widget/GridLayout;->ROW_COUNT:I
+Landroid/widget/GridLayout;->ROW_ORDER_PRESERVED:I
+Landroid/widget/GridLayout;->setCellGroup(Landroid/widget/GridLayout$LayoutParams;IIII)V
+Landroid/widget/GridLayout;->setPrinter(Landroid/util/Printer;)V
+Landroid/widget/GridLayout;->TRAILING:Landroid/widget/GridLayout$Alignment;
+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
+Landroid/widget/GridView;->arrowScroll(I)Z
+Landroid/widget/GridView;->commonKey(IILandroid/view/KeyEvent;)Z
+Landroid/widget/GridView;->correctTooHigh(III)V
+Landroid/widget/GridView;->correctTooLow(III)V
+Landroid/widget/GridView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/GridView;->fillFromBottom(II)Landroid/view/View;
+Landroid/widget/GridView;->fillFromSelection(III)Landroid/view/View;
+Landroid/widget/GridView;->fillFromTop(I)Landroid/view/View;
+Landroid/widget/GridView;->fillGap(Z)V
+Landroid/widget/GridView;->fillSelection(II)Landroid/view/View;
+Landroid/widget/GridView;->fillSpecific(II)Landroid/view/View;
+Landroid/widget/GridView;->findMotionRow(I)I
+Landroid/widget/GridView;->fullScroll(I)Z
+Landroid/widget/GridView;->getBottomSelectionPixel(IIII)I
+Landroid/widget/GridView;->getTopSelectionPixel(III)I
+Landroid/widget/GridView;->isCandidateSelection(II)Z
+Landroid/widget/GridView;->lookForSelectablePosition(IZ)I
+Landroid/widget/GridView;->makeAndAddView(IIZIZI)Landroid/view/View;
+Landroid/widget/GridView;->makeRow(IIZ)Landroid/view/View;
+Landroid/widget/GridView;->mGravity:I
+Landroid/widget/GridView;->moveSelection(III)Landroid/view/View;
+Landroid/widget/GridView;->mReferenceView:Landroid/view/View;
+Landroid/widget/GridView;->mReferenceViewInSelectedRow:Landroid/view/View;
+Landroid/widget/GridView;->mStretchMode:I
+Landroid/widget/GridView;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/GridView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/GridView;->pageScroll(I)Z
+Landroid/widget/GridView;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/GridView;->pinToBottom(I)V
+Landroid/widget/GridView;->pinToTop(I)V
+Landroid/widget/GridView;->setSelectionInt(I)V
+Landroid/widget/GridView;->setupChild(Landroid/view/View;IIZIZZI)V
+Landroid/widget/HeaderViewListAdapter;->areAllListInfosSelectable(Ljava/util/ArrayList;)Z
+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;
+Landroid/widget/HorizontalScrollView$SavedState;->scrollOffsetFromStart:I
+Landroid/widget/HorizontalScrollView;->ANIMATED_SCROLL_GAP:I
+Landroid/widget/HorizontalScrollView;->canScroll()Z
+Landroid/widget/HorizontalScrollView;->clamp(III)I
+Landroid/widget/HorizontalScrollView;->doScrollX(I)V
+Landroid/widget/HorizontalScrollView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/HorizontalScrollView;->findFocusableViewInBounds(ZII)Landroid/view/View;
+Landroid/widget/HorizontalScrollView;->findFocusableViewInMyBounds(ZILandroid/view/View;)Landroid/view/View;
+Landroid/widget/HorizontalScrollView;->getScrollRange()I
+Landroid/widget/HorizontalScrollView;->inChild(II)Z
+Landroid/widget/HorizontalScrollView;->initOrResetVelocityTracker()V
+Landroid/widget/HorizontalScrollView;->initScrollView()V
+Landroid/widget/HorizontalScrollView;->initVelocityTrackerIfNotExists()V
+Landroid/widget/HorizontalScrollView;->INVALID_POINTER:I
+Landroid/widget/HorizontalScrollView;->isOffScreen(Landroid/view/View;)Z
+Landroid/widget/HorizontalScrollView;->isViewDescendantOf(Landroid/view/View;Landroid/view/View;)Z
+Landroid/widget/HorizontalScrollView;->isWithinDeltaOfScreen(Landroid/view/View;I)Z
+Landroid/widget/HorizontalScrollView;->mActivePointerId:I
+Landroid/widget/HorizontalScrollView;->MAX_SCROLL_FACTOR:F
+Landroid/widget/HorizontalScrollView;->mFillViewport:Z
+Landroid/widget/HorizontalScrollView;->mHorizontalScrollFactor:F
+Landroid/widget/HorizontalScrollView;->mIsLayoutDirty:Z
+Landroid/widget/HorizontalScrollView;->mLastScroll:J
+Landroid/widget/HorizontalScrollView;->mMaximumVelocity:I
+Landroid/widget/HorizontalScrollView;->mMinimumVelocity:I
+Landroid/widget/HorizontalScrollView;->mSavedState:Landroid/widget/HorizontalScrollView$SavedState;
+Landroid/widget/HorizontalScrollView;->mSmoothScrollingEnabled:Z
+Landroid/widget/HorizontalScrollView;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/HorizontalScrollView;->mTouchSlop:I
+Landroid/widget/HorizontalScrollView;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/HorizontalScrollView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/HorizontalScrollView;->onSecondaryPointerUp(Landroid/view/MotionEvent;)V
+Landroid/widget/HorizontalScrollView;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/HorizontalScrollView;->scrollAndFocus(III)Z
+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
+Landroid/widget/ImageView;->configureBounds()V
+Landroid/widget/ImageView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/ImageView;->getDrawableFromUri(Landroid/net/Uri;)Landroid/graphics/drawable/Drawable;
+Landroid/widget/ImageView;->initImageView()V
+Landroid/widget/ImageView;->isFilledByImage()Z
+Landroid/widget/ImageView;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/ImageView;->mBaseline:I
+Landroid/widget/ImageView;->mBaselineAlignBottom:Z
+Landroid/widget/ImageView;->mColorFilter:Landroid/graphics/ColorFilter;
+Landroid/widget/ImageView;->mColorMod:Z
+Landroid/widget/ImageView;->mDrawableTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/ImageView;->mDrawableTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/ImageView;->mHasColorFilter:Z
+Landroid/widget/ImageView;->mHasDrawableTint:Z
+Landroid/widget/ImageView;->mHasDrawableTintMode:Z
+Landroid/widget/ImageView;->mHaveFrame:Z
+Landroid/widget/ImageView;->mLevel:I
+Landroid/widget/ImageView;->mMatrix:Landroid/graphics/Matrix;
+Landroid/widget/ImageView;->mMergeState:Z
+Landroid/widget/ImageView;->mScaleType:Landroid/widget/ImageView$ScaleType;
+Landroid/widget/ImageView;->mState:[I
+Landroid/widget/ImageView;->mTempDst:Landroid/graphics/RectF;
+Landroid/widget/ImageView;->mTempSrc:Landroid/graphics/RectF;
+Landroid/widget/ImageView;->mViewAlphaScale:I
+Landroid/widget/ImageView;->mXfermode:Landroid/graphics/Xfermode;
+Landroid/widget/ImageView;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/ImageView;->resolveAdjustedSize(III)I
+Landroid/widget/ImageView;->sCompatAdjustViewBounds:Z
+Landroid/widget/ImageView;->sCompatDone:Z
+Landroid/widget/ImageView;->sCompatDrawableVisibilityDispatch:Z
+Landroid/widget/ImageView;->sCompatUseCorrectStreamDensity:Z
+Landroid/widget/ImageView;->setImageIconAsync(Landroid/graphics/drawable/Icon;)Ljava/lang/Runnable;
+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
+Landroid/widget/LinearLayout;->drawHorizontalDivider(Landroid/graphics/Canvas;I)V
+Landroid/widget/LinearLayout;->drawVerticalDivider(Landroid/graphics/Canvas;I)V
+Landroid/widget/LinearLayout;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/LinearLayout;->forceUniformHeight(II)V
+Landroid/widget/LinearLayout;->forceUniformWidth(II)V
+Landroid/widget/LinearLayout;->getChildrenSkipCount(Landroid/view/View;I)I
+Landroid/widget/LinearLayout;->getDividerWidth()I
+Landroid/widget/LinearLayout;->getLastNonGoneChild()Landroid/view/View;
+Landroid/widget/LinearLayout;->getLocationOffset(Landroid/view/View;)I
+Landroid/widget/LinearLayout;->getNextLocationOffset(Landroid/view/View;)I
+Landroid/widget/LinearLayout;->getVirtualChildAt(I)Landroid/view/View;
+Landroid/widget/LinearLayout;->getVirtualChildCount()I
+Landroid/widget/LinearLayout;->hasDividerBeforeChildAt(I)Z
+Landroid/widget/LinearLayout;->INDEX_CENTER_VERTICAL:I
+Landroid/widget/LinearLayout;->INDEX_FILL:I
+Landroid/widget/LinearLayout;->isShowingDividers()Z
+Landroid/widget/LinearLayout;->layoutHorizontal(IIII)V
+Landroid/widget/LinearLayout;->layoutVertical(IIII)V
+Landroid/widget/LinearLayout;->mAllowInconsistentMeasurement:Z
+Landroid/widget/LinearLayout;->mBaselineAligned:Z
+Landroid/widget/LinearLayout;->mBaselineAlignedChildIndex:I
+Landroid/widget/LinearLayout;->mBaselineChildTop:I
+Landroid/widget/LinearLayout;->mDividerHeight:I
+Landroid/widget/LinearLayout;->mDividerPadding:I
+Landroid/widget/LinearLayout;->mDividerWidth:I
+Landroid/widget/LinearLayout;->measureChildBeforeLayout(Landroid/view/View;IIIII)V
+Landroid/widget/LinearLayout;->measureHorizontal(II)V
+Landroid/widget/LinearLayout;->measureNullChild(I)I
+Landroid/widget/LinearLayout;->measureVertical(II)V
+Landroid/widget/LinearLayout;->mLayoutDirection:I
+Landroid/widget/LinearLayout;->mOrientation:I
+Landroid/widget/LinearLayout;->mShowDividers:I
+Landroid/widget/LinearLayout;->mWeightSum:F
+Landroid/widget/LinearLayout;->sCompatibilityDone:Z
+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
+Landroid/widget/ListPopupWindow;->mAdapter:Landroid/widget/ListAdapter;
+Landroid/widget/ListPopupWindow;->mContext:Landroid/content/Context;
+Landroid/widget/ListPopupWindow;->mDropDownAlwaysVisible:Z
+Landroid/widget/ListPopupWindow;->mDropDownAnchorView:Landroid/view/View;
+Landroid/widget/ListPopupWindow;->mDropDownGravity:I
+Landroid/widget/ListPopupWindow;->mDropDownHeight:I
+Landroid/widget/ListPopupWindow;->mDropDownHorizontalOffset:I
+Landroid/widget/ListPopupWindow;->mDropDownListHighlight:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ListPopupWindow;->mDropDownVerticalOffset:I
+Landroid/widget/ListPopupWindow;->mDropDownVerticalOffsetSet:Z
+Landroid/widget/ListPopupWindow;->mDropDownWidth:I
+Landroid/widget/ListPopupWindow;->mDropDownWindowLayoutType:I
+Landroid/widget/ListPopupWindow;->mEpicenterBounds:Landroid/graphics/Rect;
+Landroid/widget/ListPopupWindow;->mForceIgnoreOutsideTouch:Z
+Landroid/widget/ListPopupWindow;->mHandler:Landroid/os/Handler;
+Landroid/widget/ListPopupWindow;->mHideSelector:Landroid/widget/ListPopupWindow$ListSelectorHider;
+Landroid/widget/ListPopupWindow;->mIsAnimatedFromAnchor:Z
+Landroid/widget/ListPopupWindow;->mItemClickListener:Landroid/widget/AdapterView$OnItemClickListener;
+Landroid/widget/ListPopupWindow;->mItemSelectedListener:Landroid/widget/AdapterView$OnItemSelectedListener;
+Landroid/widget/ListPopupWindow;->mListItemExpandMaximum:I
+Landroid/widget/ListPopupWindow;->mModal:Z
+Landroid/widget/ListPopupWindow;->mObserver:Landroid/database/DataSetObserver;
+Landroid/widget/ListPopupWindow;->mOverlapAnchor:Z
+Landroid/widget/ListPopupWindow;->mOverlapAnchorSet:Z
+Landroid/widget/ListPopupWindow;->mPromptPosition:I
+Landroid/widget/ListPopupWindow;->mPromptView:Landroid/view/View;
+Landroid/widget/ListPopupWindow;->mResizePopupRunnable:Landroid/widget/ListPopupWindow$ResizePopupRunnable;
+Landroid/widget/ListPopupWindow;->mScrollListener:Landroid/widget/ListPopupWindow$PopupScrollListener;
+Landroid/widget/ListPopupWindow;->mShowDropDownRunnable:Ljava/lang/Runnable;
+Landroid/widget/ListPopupWindow;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/ListPopupWindow;->mTouchInterceptor:Landroid/widget/ListPopupWindow$PopupTouchInterceptor;
+Landroid/widget/ListPopupWindow;->removePromptView()V
+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
+Landroid/widget/ListView$FocusSelector;->onLayoutComplete()V
+Landroid/widget/ListView$FocusSelector;->setupFocusIfValid(I)Ljava/lang/Runnable;
+Landroid/widget/ListView$FocusSelector;->setupForSetSelection(II)Landroid/widget/ListView$FocusSelector;
+Landroid/widget/ListView$FocusSelector;->STATE_REQUEST_FOCUS:I
+Landroid/widget/ListView$FocusSelector;->STATE_SET_SELECTION:I
+Landroid/widget/ListView$FocusSelector;->STATE_WAIT_FOR_LAYOUT:I
+Landroid/widget/ListView;->addViewAbove(Landroid/view/View;I)Landroid/view/View;
+Landroid/widget/ListView;->addViewBelow(Landroid/view/View;I)Landroid/view/View;
+Landroid/widget/ListView;->adjustViewsUpOrDown()V
+Landroid/widget/ListView;->amountToScroll(II)I
+Landroid/widget/ListView;->amountToScrollToNewFocus(ILandroid/view/View;I)I
+Landroid/widget/ListView;->arrowScrollFocused(I)Landroid/widget/ListView$ArrowScrollFocusResult;
+Landroid/widget/ListView;->arrowScrollImpl(I)Z
+Landroid/widget/ListView;->clearRecycledState(Ljava/util/ArrayList;)V
+Landroid/widget/ListView;->commonKey(IILandroid/view/KeyEvent;)Z
+Landroid/widget/ListView;->dispatchDataSetObserverOnChangedInternal()V
+Landroid/widget/ListView;->distanceToView(Landroid/view/View;)I
+Landroid/widget/ListView;->drawDivider(Landroid/graphics/Canvas;Landroid/graphics/Rect;I)V
+Landroid/widget/ListView;->drawOverscrollFooter(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;Landroid/graphics/Rect;)V
+Landroid/widget/ListView;->drawOverscrollHeader(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;Landroid/graphics/Rect;)V
+Landroid/widget/ListView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/ListView;->fillAboveAndBelow(Landroid/view/View;I)V
+Landroid/widget/ListView;->fillFromMiddle(II)Landroid/view/View;
+Landroid/widget/ListView;->fillFromSelection(III)Landroid/view/View;
+Landroid/widget/ListView;->fillFromTop(I)Landroid/view/View;
+Landroid/widget/ListView;->fillGap(Z)V
+Landroid/widget/ListView;->findMotionRow(I)I
+Landroid/widget/ListView;->findViewByPredicateInHeadersOrFooters(Ljava/util/ArrayList;Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
+Landroid/widget/ListView;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
+Landroid/widget/ListView;->findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View;
+Landroid/widget/ListView;->findViewWithTagInHeadersOrFooters(Ljava/util/ArrayList;Ljava/lang/Object;)Landroid/view/View;
+Landroid/widget/ListView;->fullScroll(I)Z
+Landroid/widget/ListView;->getArrowScrollPreviewLength()I
+Landroid/widget/ListView;->getBottomSelectionPixel(III)I
+Landroid/widget/ListView;->getTopSelectionPixel(III)I
+Landroid/widget/ListView;->handleHorizontalFocusWithinListItem(I)Z
+Landroid/widget/ListView;->handleNewSelectionChange(Landroid/view/View;IIZ)V
+Landroid/widget/ListView;->isViewAncestorOf(Landroid/view/View;Landroid/view/View;)Z
+Landroid/widget/ListView;->lookForSelectablePositionAfter(IIZ)I
+Landroid/widget/ListView;->lookForSelectablePositionOnScreen(I)I
+Landroid/widget/ListView;->mArrowScrollFocusResult:Landroid/widget/ListView$ArrowScrollFocusResult;
+Landroid/widget/ListView;->MAX_SCROLL_FACTOR:F
+Landroid/widget/ListView;->mDividerIsOpaque:Z
+Landroid/widget/ListView;->mDividerPaint:Landroid/graphics/Paint;
+Landroid/widget/ListView;->measureAndAdjustDown(Landroid/view/View;II)V
+Landroid/widget/ListView;->measureItem(Landroid/view/View;)V
+Landroid/widget/ListView;->measureScrapChild(Landroid/view/View;III)V
+Landroid/widget/ListView;->mFocusSelector:Landroid/widget/ListView$FocusSelector;
+Landroid/widget/ListView;->mFooterDividersEnabled:Z
+Landroid/widget/ListView;->mHeaderDividersEnabled:Z
+Landroid/widget/ListView;->MIN_SCROLL_PREVIEW_PIXELS:I
+Landroid/widget/ListView;->mIsCacheColorOpaque:Z
+Landroid/widget/ListView;->mItemsCanFocus:Z
+Landroid/widget/ListView;->mOverScrollFooter:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ListView;->mOverScrollHeader:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ListView;->moveSelection(Landroid/view/View;Landroid/view/View;III)Landroid/view/View;
+Landroid/widget/ListView;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/ListView;->nextSelectedPositionForDirection(Landroid/view/View;II)I
+Landroid/widget/ListView;->NO_POSITION:I
+Landroid/widget/ListView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/ListView;->pageScroll(I)Z
+Landroid/widget/ListView;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/ListView;->positionOfNewFocus(Landroid/view/View;)I
+Landroid/widget/ListView;->recycleOnMeasure()Z
+Landroid/widget/ListView;->relayoutMeasuredItem(Landroid/view/View;)V
+Landroid/widget/ListView;->removeFixedViewInfo(Landroid/view/View;Ljava/util/ArrayList;)V
+Landroid/widget/ListView;->removeUnusedFixedViews(Ljava/util/List;)V
+Landroid/widget/ListView;->resetList()V
+Landroid/widget/ListView;->setupChild(Landroid/view/View;IIZIZZ)V
+Landroid/widget/ListView;->shouldAdjustHeightForDivider(I)Z
+Landroid/widget/ListView;->showingBottomFadingEdge()Z
+Landroid/widget/ListView;->showingTopFadingEdge()Z
+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;
+Landroid/widget/Magnifier$InternalPopupWindow;->destroy()V
+Landroid/widget/Magnifier$InternalPopupWindow;->doDraw()V
+Landroid/widget/Magnifier$InternalPopupWindow;->mBitmap:Landroid/graphics/Bitmap;
+Landroid/widget/Magnifier$InternalPopupWindow;->mBitmapRenderNode:Landroid/view/RenderNode;
+Landroid/widget/Magnifier$InternalPopupWindow;->mCallback:Landroid/widget/Magnifier$Callback;
+Landroid/widget/Magnifier$InternalPopupWindow;->mContentHeight:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mContentWidth:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mDestroyLock:Ljava/lang/Object;
+Landroid/widget/Magnifier$InternalPopupWindow;->mDisplay:Landroid/view/Display;
+Landroid/widget/Magnifier$InternalPopupWindow;->mFirstDraw:Z
+Landroid/widget/Magnifier$InternalPopupWindow;->mFrameDrawScheduled:Z
+Landroid/widget/Magnifier$InternalPopupWindow;->mHandler:Landroid/os/Handler;
+Landroid/widget/Magnifier$InternalPopupWindow;->mLastDrawContentPositionX:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mLastDrawContentPositionY:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mLock:Ljava/lang/Object;
+Landroid/widget/Magnifier$InternalPopupWindow;->mMagnifierUpdater:Ljava/lang/Runnable;
+Landroid/widget/Magnifier$InternalPopupWindow;->mOffsetX:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mOffsetY:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mPendingWindowPositionUpdate:Z
+Landroid/widget/Magnifier$InternalPopupWindow;->mRenderer:Landroid/view/ThreadedRenderer$SimpleRenderer;
+Landroid/widget/Magnifier$InternalPopupWindow;->mSurface:Landroid/view/Surface;
+Landroid/widget/Magnifier$InternalPopupWindow;->mSurfaceControl:Landroid/view/SurfaceControl;
+Landroid/widget/Magnifier$InternalPopupWindow;->mSurfaceHeight:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mSurfaceSession:Landroid/view/SurfaceSession;
+Landroid/widget/Magnifier$InternalPopupWindow;->mSurfaceWidth:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mWindowPositionX:I
+Landroid/widget/Magnifier$InternalPopupWindow;->mWindowPositionY:I
+Landroid/widget/Magnifier$InternalPopupWindow;->requestUpdate()V
+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
+Landroid/widget/Magnifier$SurfaceInfo;->mSurface:Landroid/view/Surface;
+Landroid/widget/Magnifier$SurfaceInfo;->mWidth:I
+Landroid/widget/Magnifier$SurfaceInfo;->NULL:Landroid/widget/Magnifier$SurfaceInfo;
+Landroid/widget/Magnifier;->getDeviceDefaultDialogCornerRadius()F
+Landroid/widget/Magnifier;->getWindowCoords()Landroid/graphics/Point;
+Landroid/widget/Magnifier;->mBitmapHeight:I
+Landroid/widget/Magnifier;->mBitmapWidth:I
+Landroid/widget/Magnifier;->mCallback:Landroid/widget/Magnifier$Callback;
+Landroid/widget/Magnifier;->mCenterZoomCoords:Landroid/graphics/Point;
+Landroid/widget/Magnifier;->mClampedCenterZoomCoords:Landroid/graphics/Point;
+Landroid/widget/Magnifier;->mContentCopySurface:Landroid/widget/Magnifier$SurfaceInfo;
+Landroid/widget/Magnifier;->mLock:Ljava/lang/Object;
+Landroid/widget/Magnifier;->mParentSurface:Landroid/widget/Magnifier$SurfaceInfo;
+Landroid/widget/Magnifier;->mPixelCopyRequestRect:Landroid/graphics/Rect;
+Landroid/widget/Magnifier;->mPrevPosInView:Landroid/graphics/PointF;
+Landroid/widget/Magnifier;->mPrevStartCoordsInSurface:Landroid/graphics/Point;
+Landroid/widget/Magnifier;->mView:Landroid/view/View;
+Landroid/widget/Magnifier;->mViewCoordinatesInSurface:[I
+Landroid/widget/Magnifier;->mWindow:Landroid/widget/Magnifier$InternalPopupWindow;
+Landroid/widget/Magnifier;->mWindowCoords:Landroid/graphics/Point;
+Landroid/widget/Magnifier;->mWindowCornerRadius:F
+Landroid/widget/Magnifier;->mWindowElevation:F
+Landroid/widget/Magnifier;->mWindowHeight:I
+Landroid/widget/Magnifier;->mWindowWidth:I
+Landroid/widget/Magnifier;->mZoom:F
+Landroid/widget/Magnifier;->NONEXISTENT_PREVIOUS_CONFIG_VALUE:I
+Landroid/widget/Magnifier;->obtainContentCoordinates(FF)V
+Landroid/widget/Magnifier;->obtainSurfaces()V
+Landroid/widget/Magnifier;->obtainWindowCoordinates()V
+Landroid/widget/Magnifier;->performPixelCopy(IIZ)V
+Landroid/widget/Magnifier;->sPixelCopyHandlerThread:Landroid/os/HandlerThread;
+Landroid/widget/MediaController;->disableUnsupportedButtons()V
+Landroid/widget/MediaController;->doPauseResume()V
+Landroid/widget/MediaController;->initControllerView(Landroid/view/View;)V
+Landroid/widget/MediaController;->initFloatingWindow()V
+Landroid/widget/MediaController;->initFloatingWindowLayout()V
+Landroid/widget/MediaController;->installPrevNextListeners()V
+Landroid/widget/MediaController;->mAccessibilityManager:Landroid/view/accessibility/AccessibilityManager;
+Landroid/widget/MediaController;->makeControllerView()Landroid/view/View;
+Landroid/widget/MediaController;->mDragging:Z
+Landroid/widget/MediaController;->mFadeOut:Ljava/lang/Runnable;
+Landroid/widget/MediaController;->mFormatBuilder:Ljava/lang/StringBuilder;
+Landroid/widget/MediaController;->mFormatter:Ljava/util/Formatter;
+Landroid/widget/MediaController;->mFromXml:Z
+Landroid/widget/MediaController;->mLayoutChangeListener:Landroid/view/View$OnLayoutChangeListener;
+Landroid/widget/MediaController;->mListenersSet:Z
+Landroid/widget/MediaController;->mNextListener:Landroid/view/View$OnClickListener;
+Landroid/widget/MediaController;->mPauseDescription:Ljava/lang/CharSequence;
+Landroid/widget/MediaController;->mPauseListener:Landroid/view/View$OnClickListener;
+Landroid/widget/MediaController;->mPlayDescription:Ljava/lang/CharSequence;
+Landroid/widget/MediaController;->mPrevListener:Landroid/view/View$OnClickListener;
+Landroid/widget/MediaController;->mShowProgress:Ljava/lang/Runnable;
+Landroid/widget/MediaController;->mTouchListener:Landroid/view/View$OnTouchListener;
+Landroid/widget/MediaController;->mUseFastForward:Z
+Landroid/widget/MediaController;->sDefaultTimeout:I
+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
+Landroid/widget/MediaControlView2;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/widget/MediaControlView2;->BUTTON_ASPECT_RATIO:I
+Landroid/widget/MediaControlView2;->BUTTON_FFWD:I
+Landroid/widget/MediaControlView2;->BUTTON_FULL_SCREEN:I
+Landroid/widget/MediaControlView2;->BUTTON_MUTE:I
+Landroid/widget/MediaControlView2;->BUTTON_NEXT:I
+Landroid/widget/MediaControlView2;->BUTTON_OVERFLOW:I
+Landroid/widget/MediaControlView2;->BUTTON_PLAY_PAUSE:I
+Landroid/widget/MediaControlView2;->BUTTON_PREV:I
+Landroid/widget/MediaControlView2;->BUTTON_REW:I
+Landroid/widget/MediaControlView2;->BUTTON_SETTINGS:I
+Landroid/widget/MediaControlView2;->BUTTON_SUBTITLE:I
+Landroid/widget/MediaControlView2;->requestPlayButtonFocus()V
+Landroid/widget/MediaControlView2;->setButtonVisibility(II)V
+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
+Landroid/widget/MenuPopupWindow$MenuDropDownListView;->mHoveredMenuItem:Landroid/view/MenuItem;
+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;
+Landroid/widget/MenuPopupWindow;->onItemHoverEnter(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)V
+Landroid/widget/MenuPopupWindow;->onItemHoverExit(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)V
+Landroid/widget/MenuPopupWindow;->setEnterTransition(Landroid/transition/Transition;)V
+Landroid/widget/MenuPopupWindow;->setExitTransition(Landroid/transition/Transition;)V
+Landroid/widget/MenuPopupWindow;->setHoverListener(Landroid/widget/MenuItemHoverListener;)V
+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;
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->findAccessibilityNodeInfosByTextInChild(Ljava/lang/String;ILjava/util/List;)V
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->getVirtualDecrementButtonText()Ljava/lang/String;
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->getVirtualIncrementButtonText()Ljava/lang/String;
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->hasVirtualDecrementButton()Z
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->hasVirtualIncrementButton()Z
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->mAccessibilityFocusedView:I
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->mTempArray:[I
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->sendAccessibilityEventForVirtualButton(IILjava/lang/String;)V
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->sendAccessibilityEventForVirtualText(I)V
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->sendAccessibilityEventForVirtualView(II)V
+Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->UNDEFINED:I
+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
+Landroid/widget/NumberPicker$PressedStateHelper;->BUTTON_INCREMENT:I
+Landroid/widget/NumberPicker$PressedStateHelper;->cancel()V
+Landroid/widget/NumberPicker$PressedStateHelper;->mManagedButton:I
+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;
+Landroid/widget/NumberPicker$SetSelectionCommand;->mPosted:Z
+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
+Landroid/widget/NumberPicker$TwoDigitFormatter;->init(Ljava/util/Locale;)V
+Landroid/widget/NumberPicker$TwoDigitFormatter;->mArgs:[Ljava/lang/Object;
+Landroid/widget/NumberPicker$TwoDigitFormatter;->mBuilder:Ljava/lang/StringBuilder;
+Landroid/widget/NumberPicker$TwoDigitFormatter;->mFmt:Ljava/util/Formatter;
+Landroid/widget/NumberPicker$TwoDigitFormatter;->mZeroDigit:C
+Landroid/widget/NumberPicker;->decrementSelectorIndices([I)V
+Landroid/widget/NumberPicker;->DEFAULT_LAYOUT_RESOURCE_ID:I
+Landroid/widget/NumberPicker;->DEFAULT_LONG_PRESS_UPDATE_INTERVAL:J
+Landroid/widget/NumberPicker;->DIGIT_CHARACTERS:[C
+Landroid/widget/NumberPicker;->ensureCachedScrollSelectorValue(I)V
+Landroid/widget/NumberPicker;->ensureScrollWheelAdjusted()Z
+Landroid/widget/NumberPicker;->fling(I)V
+Landroid/widget/NumberPicker;->formatNumber(I)Ljava/lang/String;
+Landroid/widget/NumberPicker;->formatNumberWithLocale(I)Ljava/lang/String;
+Landroid/widget/NumberPicker;->getSelectedPos(Ljava/lang/String;)I
+Landroid/widget/NumberPicker;->getWrappedSelectorIndex(I)I
+Landroid/widget/NumberPicker;->hideSoftInput()V
+Landroid/widget/NumberPicker;->incrementSelectorIndices([I)V
+Landroid/widget/NumberPicker;->initializeFadingEdges()V
+Landroid/widget/NumberPicker;->initializeSelectorWheel()V
+Landroid/widget/NumberPicker;->mAccessibilityNodeProvider:Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;
+Landroid/widget/NumberPicker;->mAdjustScroller:Landroid/widget/Scroller;
+Landroid/widget/NumberPicker;->makeMeasureSpec(II)I
+Landroid/widget/NumberPicker;->mBeginSoftInputOnLongPressCommand:Landroid/widget/NumberPicker$BeginSoftInputOnLongPressCommand;
+Landroid/widget/NumberPicker;->mBottomSelectionDividerBottom:I
+Landroid/widget/NumberPicker;->mChangeCurrentByOneFromLongPressCommand:Landroid/widget/NumberPicker$ChangeCurrentByOneFromLongPressCommand;
+Landroid/widget/NumberPicker;->mComputeMaxWidth:Z
+Landroid/widget/NumberPicker;->mCurrentScrollOffset:I
+Landroid/widget/NumberPicker;->mDecrementButton:Landroid/widget/ImageButton;
+Landroid/widget/NumberPicker;->mDecrementVirtualButtonPressed:Z
+Landroid/widget/NumberPicker;->mDisplayedValues:[Ljava/lang/String;
+Landroid/widget/NumberPicker;->mFormatter:Landroid/widget/NumberPicker$Formatter;
+Landroid/widget/NumberPicker;->mHasSelectorWheel:Z
+Landroid/widget/NumberPicker;->mHideWheelUntilFocused:Z
+Landroid/widget/NumberPicker;->mIgnoreMoveEvents:Z
+Landroid/widget/NumberPicker;->mIncrementButton:Landroid/widget/ImageButton;
+Landroid/widget/NumberPicker;->mIncrementVirtualButtonPressed:Z
+Landroid/widget/NumberPicker;->mInitialScrollOffset:I
+Landroid/widget/NumberPicker;->mLastDownEventTime:J
+Landroid/widget/NumberPicker;->mLastDownEventY:F
+Landroid/widget/NumberPicker;->mLastDownOrMoveEventY:F
+Landroid/widget/NumberPicker;->mLastHandledDownDpadKeyCode:I
+Landroid/widget/NumberPicker;->mLastHoveredChildVirtualViewId:I
+Landroid/widget/NumberPicker;->mLongPressUpdateInterval:J
+Landroid/widget/NumberPicker;->mMaxHeight:I
+Landroid/widget/NumberPicker;->mMaxWidth:I
+Landroid/widget/NumberPicker;->mMinimumFlingVelocity:I
+Landroid/widget/NumberPicker;->mMinValue:I
+Landroid/widget/NumberPicker;->mOnScrollListener:Landroid/widget/NumberPicker$OnScrollListener;
+Landroid/widget/NumberPicker;->moveToFinalScrollerPosition(Landroid/widget/Scroller;)Z
+Landroid/widget/NumberPicker;->mPerformClickOnTap:Z
+Landroid/widget/NumberPicker;->mPressedStateHelper:Landroid/widget/NumberPicker$PressedStateHelper;
+Landroid/widget/NumberPicker;->mPreviousScrollerY:I
+Landroid/widget/NumberPicker;->mScrollState:I
+Landroid/widget/NumberPicker;->mSelectionDividersDistance:I
+Landroid/widget/NumberPicker;->mSelectorElementHeight:I
+Landroid/widget/NumberPicker;->mSelectorIndexToStringCache:Landroid/util/SparseArray;
+Landroid/widget/NumberPicker;->mSelectorTextGapHeight:I
+Landroid/widget/NumberPicker;->mSetSelectionCommand:Landroid/widget/NumberPicker$SetSelectionCommand;
+Landroid/widget/NumberPicker;->mSolidColor:I
+Landroid/widget/NumberPicker;->mTopSelectionDividerTop:I
+Landroid/widget/NumberPicker;->mTouchSlop:I
+Landroid/widget/NumberPicker;->mValue:I
+Landroid/widget/NumberPicker;->mVelocityTracker:Landroid/view/VelocityTracker;
+Landroid/widget/NumberPicker;->mVirtualButtonPressedDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/NumberPicker;->mWrapSelectorWheel:Z
+Landroid/widget/NumberPicker;->mWrapSelectorWheelPreferred:Z
+Landroid/widget/NumberPicker;->notifyChange(II)V
+Landroid/widget/NumberPicker;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/NumberPicker;->onResolveDrawables(I)V
+Landroid/widget/NumberPicker;->onScrollerFinished(Landroid/widget/Scroller;)V
+Landroid/widget/NumberPicker;->onScrollStateChange(I)V
+Landroid/widget/NumberPicker;->postBeginSoftInputOnLongPressCommand()V
+Landroid/widget/NumberPicker;->postChangeCurrentByOneFromLongPress(ZJ)V
+Landroid/widget/NumberPicker;->postSetSelectionCommand(II)V
+Landroid/widget/NumberPicker;->removeAllCallbacks()V
+Landroid/widget/NumberPicker;->removeBeginSoftInputCommand()V
+Landroid/widget/NumberPicker;->removeChangeCurrentByOneFromLongPress()V
+Landroid/widget/NumberPicker;->resolveSizeAndStateRespectingMinSize(III)I
+Landroid/widget/NumberPicker;->SELECTOR_ADJUSTMENT_DURATION_MILLIS:I
+Landroid/widget/NumberPicker;->SELECTOR_MAX_FLING_VELOCITY_ADJUSTMENT:I
+Landroid/widget/NumberPicker;->setValueInternal(IZ)V
+Landroid/widget/NumberPicker;->showSoftInput()V
+Landroid/widget/NumberPicker;->SIZE_UNSPECIFIED:I
+Landroid/widget/NumberPicker;->SNAP_SCROLL_DURATION:I
+Landroid/widget/NumberPicker;->sTwoDigitFormatter:Landroid/widget/NumberPicker$TwoDigitFormatter;
+Landroid/widget/NumberPicker;->TOP_AND_BOTTOM_FADING_EDGE_STRENGTH:F
+Landroid/widget/NumberPicker;->tryComputeMaxWidth()V
+Landroid/widget/NumberPicker;->UNSCALED_DEFAULT_SELECTION_DIVIDERS_DISTANCE:I
+Landroid/widget/NumberPicker;->UNSCALED_DEFAULT_SELECTION_DIVIDER_HEIGHT:I
+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
+Landroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z
+Landroid/widget/OverScroller$SplineOverScroller;->CUBIC:I
+Landroid/widget/OverScroller$SplineOverScroller;->DECELERATION_RATE:F
+Landroid/widget/OverScroller$SplineOverScroller;->END_TENSION:F
+Landroid/widget/OverScroller$SplineOverScroller;->extendDuration(I)V
+Landroid/widget/OverScroller$SplineOverScroller;->finish()V
+Landroid/widget/OverScroller$SplineOverScroller;->fitOnBounceCurve(III)V
+Landroid/widget/OverScroller$SplineOverScroller;->fling(IIIII)V
+Landroid/widget/OverScroller$SplineOverScroller;->getDeceleration(I)F
+Landroid/widget/OverScroller$SplineOverScroller;->getSplineDeceleration(I)D
+Landroid/widget/OverScroller$SplineOverScroller;->getSplineFlingDistance(I)D
+Landroid/widget/OverScroller$SplineOverScroller;->getSplineFlingDuration(I)I
+Landroid/widget/OverScroller$SplineOverScroller;->GRAVITY:F
+Landroid/widget/OverScroller$SplineOverScroller;->INFLEXION:F
+Landroid/widget/OverScroller$SplineOverScroller;->mCurrentPosition:I
+Landroid/widget/OverScroller$SplineOverScroller;->mDeceleration:F
+Landroid/widget/OverScroller$SplineOverScroller;->mDuration:I
+Landroid/widget/OverScroller$SplineOverScroller;->mFinal:I
+Landroid/widget/OverScroller$SplineOverScroller;->mFinished:Z
+Landroid/widget/OverScroller$SplineOverScroller;->mFlingFriction:F
+Landroid/widget/OverScroller$SplineOverScroller;->mOver:I
+Landroid/widget/OverScroller$SplineOverScroller;->mPhysicalCoeff:F
+Landroid/widget/OverScroller$SplineOverScroller;->mSplineDistance:I
+Landroid/widget/OverScroller$SplineOverScroller;->mSplineDuration:I
+Landroid/widget/OverScroller$SplineOverScroller;->mStart:I
+Landroid/widget/OverScroller$SplineOverScroller;->mStartTime:J
+Landroid/widget/OverScroller$SplineOverScroller;->mState:I
+Landroid/widget/OverScroller$SplineOverScroller;->mVelocity:I
+Landroid/widget/OverScroller$SplineOverScroller;->NB_SAMPLES:I
+Landroid/widget/OverScroller$SplineOverScroller;->notifyEdgeReached(III)V
+Landroid/widget/OverScroller$SplineOverScroller;->onEdgeReached()V
+Landroid/widget/OverScroller$SplineOverScroller;->P1:F
+Landroid/widget/OverScroller$SplineOverScroller;->P2:F
+Landroid/widget/OverScroller$SplineOverScroller;->setFinalPosition(I)V
+Landroid/widget/OverScroller$SplineOverScroller;->setFriction(F)V
+Landroid/widget/OverScroller$SplineOverScroller;->SPLINE:I
+Landroid/widget/OverScroller$SplineOverScroller;->SPLINE_POSITION:[F
+Landroid/widget/OverScroller$SplineOverScroller;->SPLINE_TIME:[F
+Landroid/widget/OverScroller$SplineOverScroller;->springback(III)Z
+Landroid/widget/OverScroller$SplineOverScroller;->startAfterEdge(IIII)V
+Landroid/widget/OverScroller$SplineOverScroller;->startBounceAfterEdge(III)V
+Landroid/widget/OverScroller$SplineOverScroller;->startScroll(III)V
+Landroid/widget/OverScroller$SplineOverScroller;->startSpringback(III)V
+Landroid/widget/OverScroller$SplineOverScroller;->START_TENSION:F
+Landroid/widget/OverScroller$SplineOverScroller;->update()Z
+Landroid/widget/OverScroller$SplineOverScroller;->updateScroll(F)V
+Landroid/widget/OverScroller;->DEFAULT_DURATION:I
+Landroid/widget/OverScroller;->FLING_MODE:I
+Landroid/widget/OverScroller;->getDuration()I
+Landroid/widget/OverScroller;->mFlywheel:Z
+Landroid/widget/OverScroller;->mMode:I
+Landroid/widget/OverScroller;->mScrollerX:Landroid/widget/OverScroller$SplineOverScroller;
+Landroid/widget/OverScroller;->SCROLL_MODE:I
+Landroid/widget/OverScroller;->setFinalX(I)V
+Landroid/widget/OverScroller;->setFinalY(I)V
+Landroid/widget/OverScroller;->timePassed()I
+Landroid/widget/PopupMenu;->mAnchor:Landroid/view/View;
+Landroid/widget/PopupMenu;->mDragListener:Landroid/view/View$OnTouchListener;
+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;
+Landroid/widget/PopupWindow$PopupDecorView;->requestEnterTransition(Landroid/transition/Transition;)V
+Landroid/widget/PopupWindow$PopupDecorView;->requestKeyboardShortcuts(Ljava/util/List;I)V
+Landroid/widget/PopupWindow$PopupDecorView;->startEnterTransition(Landroid/transition/Transition;)V
+Landroid/widget/PopupWindow$PopupDecorView;->startExitTransition(Landroid/transition/Transition;Landroid/view/View;Landroid/graphics/Rect;Landroid/transition/Transition$TransitionListener;)V
+Landroid/widget/PopupWindow;->ABOVE_ANCHOR_STATE_SET:[I
+Landroid/widget/PopupWindow;->alignToAnchor()V
+Landroid/widget/PopupWindow;->ANIMATION_STYLE_DEFAULT:I
+Landroid/widget/PopupWindow;->attachToAnchor(Landroid/view/View;III)V
+Landroid/widget/PopupWindow;->computeFlags(I)I
+Landroid/widget/PopupWindow;->computeGravity()I
+Landroid/widget/PopupWindow;->createBackgroundView(Landroid/view/View;)Landroid/widget/PopupWindow$PopupBackgroundView;
+Landroid/widget/PopupWindow;->createDecorView(Landroid/view/View;)Landroid/widget/PopupWindow$PopupDecorView;
+Landroid/widget/PopupWindow;->DEFAULT_ANCHORED_GRAVITY:I
+Landroid/widget/PopupWindow;->detachFromAnchor()V
+Landroid/widget/PopupWindow;->dismissImmediate(Landroid/view/View;Landroid/view/ViewGroup;Landroid/view/View;)V
+Landroid/widget/PopupWindow;->findDropDownPosition(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z
+Landroid/widget/PopupWindow;->getAllowScrollingAnchorParent()Z
+Landroid/widget/PopupWindow;->getAnchor()Landroid/view/View;
+Landroid/widget/PopupWindow;->getAppRootView(Landroid/view/View;)Landroid/view/View;
+Landroid/widget/PopupWindow;->getDecorViewLayoutParams()Landroid/view/WindowManager$LayoutParams;
+Landroid/widget/PopupWindow;->getOnDismissListener()Landroid/widget/PopupWindow$OnDismissListener;
+Landroid/widget/PopupWindow;->getTransition(I)Landroid/transition/Transition;
+Landroid/widget/PopupWindow;->getTransitionEpicenter()Landroid/graphics/Rect;
+Landroid/widget/PopupWindow;->hasContentView()Z
+Landroid/widget/PopupWindow;->hasDecorView()Z
+Landroid/widget/PopupWindow;->isLayoutInScreenEnabled()Z
+Landroid/widget/PopupWindow;->isLayoutInsetDecor()Z
+Landroid/widget/PopupWindow;->isTransitioningToDismiss()Z
+Landroid/widget/PopupWindow;->mAllowScrollingAnchorParent:Z
+Landroid/widget/PopupWindow;->mAnchoredGravity:I
+Landroid/widget/PopupWindow;->mAnchorRoot:Ljava/lang/ref/WeakReference;
+Landroid/widget/PopupWindow;->mAnchorXoff:I
+Landroid/widget/PopupWindow;->mAnchorYoff:I
+Landroid/widget/PopupWindow;->mAttachedInDecor:Z
+Landroid/widget/PopupWindow;->mAttachedInDecorSet:Z
+Landroid/widget/PopupWindow;->mBackground:Landroid/graphics/drawable/Drawable;
+Landroid/widget/PopupWindow;->mClippingEnabled:Z
+Landroid/widget/PopupWindow;->mClipToScreen:Z
+Landroid/widget/PopupWindow;->mElevation:F
+Landroid/widget/PopupWindow;->mEnterTransition:Landroid/transition/Transition;
+Landroid/widget/PopupWindow;->mEpicenterBounds:Landroid/graphics/Rect;
+Landroid/widget/PopupWindow;->mExitTransition:Landroid/transition/Transition;
+Landroid/widget/PopupWindow;->mFocusable:Z
+Landroid/widget/PopupWindow;->mGravity:I
+Landroid/widget/PopupWindow;->mHeight:I
+Landroid/widget/PopupWindow;->mIgnoreCheekPress:Z
+Landroid/widget/PopupWindow;->mInputMethodMode:I
+Landroid/widget/PopupWindow;->mIsAnchorRootAttached:Z
+Landroid/widget/PopupWindow;->mIsTransitioningToDismiss:Z
+Landroid/widget/PopupWindow;->mLayoutInsetDecor:Z
+Landroid/widget/PopupWindow;->mOnAnchorDetachedListener:Landroid/view/View$OnAttachStateChangeListener;
+Landroid/widget/PopupWindow;->mOnAnchorRootDetachedListener:Landroid/view/View$OnAttachStateChangeListener;
+Landroid/widget/PopupWindow;->mOnLayoutChangeListener:Landroid/view/View$OnLayoutChangeListener;
+Landroid/widget/PopupWindow;->mOutsideTouchable:Z
+Landroid/widget/PopupWindow;->mParentRootView:Ljava/lang/ref/WeakReference;
+Landroid/widget/PopupWindow;->mPopupViewInitialLayoutDirectionInherited:Z
+Landroid/widget/PopupWindow;->mSoftInputMode:I
+Landroid/widget/PopupWindow;->mSplitTouchEnabled:I
+Landroid/widget/PopupWindow;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/PopupWindow;->mTmpAppLocation:[I
+Landroid/widget/PopupWindow;->mTmpDrawingLocation:[I
+Landroid/widget/PopupWindow;->mTmpScreenLocation:[I
+Landroid/widget/PopupWindow;->mTouchable:Z
+Landroid/widget/PopupWindow;->mWidth:I
+Landroid/widget/PopupWindow;->positionInDisplayHorizontal(Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z
+Landroid/widget/PopupWindow;->positionInDisplayVertical(Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z
+Landroid/widget/PopupWindow;->setDropDown(Z)V
+Landroid/widget/PopupWindow;->setLayoutDirectionFromAnchor()V
+Landroid/widget/PopupWindow;->setShowing(Z)V
+Landroid/widget/PopupWindow;->setTransitioningToDismiss(Z)V
+Landroid/widget/PopupWindow;->tryFitHorizontal(Landroid/view/WindowManager$LayoutParams;IIIIIIIZ)Z
+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
+Landroid/widget/ProgressBar$ProgressTintInfo;->mHasProgressBackgroundTint:Z
+Landroid/widget/ProgressBar$ProgressTintInfo;->mHasProgressBackgroundTintMode:Z
+Landroid/widget/ProgressBar$ProgressTintInfo;->mHasProgressTint:Z
+Landroid/widget/ProgressBar$ProgressTintInfo;->mHasProgressTintMode:Z
+Landroid/widget/ProgressBar$ProgressTintInfo;->mHasSecondaryProgressTint:Z
+Landroid/widget/ProgressBar$ProgressTintInfo;->mHasSecondaryProgressTintMode:Z
+Landroid/widget/ProgressBar$ProgressTintInfo;->mIndeterminateTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/ProgressBar$ProgressTintInfo;->mIndeterminateTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/ProgressBar$ProgressTintInfo;->mProgressBackgroundTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/ProgressBar$ProgressTintInfo;->mProgressBackgroundTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/ProgressBar$ProgressTintInfo;->mProgressTintList:Landroid/content/res/ColorStateList;
+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
+Landroid/widget/ProgressBar$RefreshData;->id:I
+Landroid/widget/ProgressBar$RefreshData;->obtain(IIZZ)Landroid/widget/ProgressBar$RefreshData;
+Landroid/widget/ProgressBar$RefreshData;->POOL_MAX:I
+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;
+Landroid/widget/ProgressBar$SavedState;->progress:I
+Landroid/widget/ProgressBar$SavedState;->secondaryProgress:I
+Landroid/widget/ProgressBar;->applyIndeterminateTint()V
+Landroid/widget/ProgressBar;->applyPrimaryProgressTint()V
+Landroid/widget/ProgressBar;->applyProgressBackgroundTint()V
+Landroid/widget/ProgressBar;->applyProgressTints()V
+Landroid/widget/ProgressBar;->applySecondaryProgressTint()V
+Landroid/widget/ProgressBar;->doRefreshProgress(IIZZZ)V
+Landroid/widget/ProgressBar;->drawTrack(Landroid/graphics/Canvas;)V
+Landroid/widget/ProgressBar;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/ProgressBar;->getCurrentDrawable()Landroid/graphics/drawable/Drawable;
+Landroid/widget/ProgressBar;->getDrawableShape()Landroid/graphics/drawable/shapes/Shape;
+Landroid/widget/ProgressBar;->getMirrorForRtl()Z
+Landroid/widget/ProgressBar;->getTintTarget(IZ)Landroid/graphics/drawable/Drawable;
+Landroid/widget/ProgressBar;->initProgressBar()V
+Landroid/widget/ProgressBar;->mAccessibilityEventSender:Landroid/widget/ProgressBar$AccessibilityEventSender;
+Landroid/widget/ProgressBar;->mAggregatedIsVisible:Z
+Landroid/widget/ProgressBar;->mAnimation:Landroid/view/animation/AlphaAnimation;
+Landroid/widget/ProgressBar;->mAttached:Z
+Landroid/widget/ProgressBar;->MAX_LEVEL:I
+Landroid/widget/ProgressBar;->mBehavior:I
+Landroid/widget/ProgressBar;->mHasAnimation:Z
+Landroid/widget/ProgressBar;->mIndeterminateDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ProgressBar;->mInDrawing:Z
+Landroid/widget/ProgressBar;->mInterpolator:Landroid/view/animation/Interpolator;
+Landroid/widget/ProgressBar;->mMax:I
+Landroid/widget/ProgressBar;->mMaxInitialized:Z
+Landroid/widget/ProgressBar;->mMaxWidth:I
+Landroid/widget/ProgressBar;->mMin:I
+Landroid/widget/ProgressBar;->mMinInitialized:Z
+Landroid/widget/ProgressBar;->mNoInvalidate:Z
+Landroid/widget/ProgressBar;->mProgress:I
+Landroid/widget/ProgressBar;->mProgressDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ProgressBar;->mProgressTintInfo:Landroid/widget/ProgressBar$ProgressTintInfo;
+Landroid/widget/ProgressBar;->mRefreshData:Ljava/util/ArrayList;
+Landroid/widget/ProgressBar;->mRefreshIsPosted:Z
+Landroid/widget/ProgressBar;->mRefreshProgressRunnable:Landroid/widget/ProgressBar$RefreshProgressRunnable;
+Landroid/widget/ProgressBar;->mSampleWidth:I
+Landroid/widget/ProgressBar;->mSecondaryProgress:I
+Landroid/widget/ProgressBar;->mShouldStartAnimationDrawable:Z
+Landroid/widget/ProgressBar;->mTransformation:Landroid/view/animation/Transformation;
+Landroid/widget/ProgressBar;->mUiThreadId:J
+Landroid/widget/ProgressBar;->mVisualProgress:F
+Landroid/widget/ProgressBar;->needsTileify(Landroid/graphics/drawable/Drawable;)Z
+Landroid/widget/ProgressBar;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/ProgressBar;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/ProgressBar;->onProgressRefresh(FZI)V
+Landroid/widget/ProgressBar;->onResolveDrawables(I)V
+Landroid/widget/ProgressBar;->onVisualProgressChanged(IF)V
+Landroid/widget/ProgressBar;->PROGRESS_ANIM_DURATION:I
+Landroid/widget/ProgressBar;->PROGRESS_ANIM_INTERPOLATOR:Landroid/view/animation/DecelerateInterpolator;
+Landroid/widget/ProgressBar;->scheduleAccessibilityEventSender()V
+Landroid/widget/ProgressBar;->setVisualProgress(IF)V
+Landroid/widget/ProgressBar;->swapCurrentDrawable(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/ProgressBar;->tileifyIndeterminate(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+Landroid/widget/ProgressBar;->TIMEOUT_SEND_ACCESSIBILITY_EVENT:I
+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
+Landroid/widget/QuickContactBadge;->EXTRA_URI_CONTENT:Ljava/lang/String;
+Landroid/widget/QuickContactBadge;->isAssigned()Z
+Landroid/widget/QuickContactBadge;->mContactEmail:Ljava/lang/String;
+Landroid/widget/QuickContactBadge;->mContactPhone:Ljava/lang/String;
+Landroid/widget/QuickContactBadge;->mContactUri:Landroid/net/Uri;
+Landroid/widget/QuickContactBadge;->mDefaultAvatar:Landroid/graphics/drawable/Drawable;
+Landroid/widget/QuickContactBadge;->mExtras:Landroid/os/Bundle;
+Landroid/widget/QuickContactBadge;->mPrioritizedMimeType:Ljava/lang/String;
+Landroid/widget/QuickContactBadge;->mQueryHandler:Landroid/widget/QuickContactBadge$QueryHandler;
+Landroid/widget/QuickContactBadge;->onContactUriChanged()V
+Landroid/widget/QuickContactBadge;->PHONE_ID_COLUMN_INDEX:I
+Landroid/widget/QuickContactBadge;->PHONE_LOOKUP_PROJECTION:[Ljava/lang/String;
+Landroid/widget/QuickContactBadge;->PHONE_LOOKUP_STRING_COLUMN_INDEX:I
+Landroid/widget/QuickContactBadge;->TOKEN_EMAIL_LOOKUP:I
+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
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->getTypeFromId(I)I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->getValueFromId(I)I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->getVirtualViewAt(FF)I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->getVirtualViewDescription(II)Ljava/lang/CharSequence;
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->getVirtualViewIdAfter(II)I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->getVisibleVirtualViews(Landroid/util/IntArray;)V
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->hour12To24(II)I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->hour24To12(I)I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->isVirtualViewSelected(II)Z
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->makeId(II)I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->MASK_TYPE:I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->MASK_VALUE:I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->MINUTE_INCREMENT:I
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->onPerformActionForVirtualView(IILandroid/os/Bundle;)Z
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->onPopulateEventForVirtualView(ILandroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->onPopulateNodeForVirtualView(ILandroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->SHIFT_TYPE:I
+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
+Landroid/widget/RadialTimePickerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/widget/RadialTimePickerView;->AM:I
+Landroid/widget/RadialTimePickerView;->animatePicker(ZJ)V
+Landroid/widget/RadialTimePickerView;->ANIM_DURATION_NORMAL:I
+Landroid/widget/RadialTimePickerView;->ANIM_DURATION_TOUCH:I
+Landroid/widget/RadialTimePickerView;->applyAttributes(Landroid/util/AttributeSet;II)V
+Landroid/widget/RadialTimePickerView;->calculatePositions(Landroid/graphics/Paint;FFFF[F[F)V
+Landroid/widget/RadialTimePickerView;->calculatePositionsHours()V
+Landroid/widget/RadialTimePickerView;->calculatePositionsMinutes()V
+Landroid/widget/RadialTimePickerView;->COS_30:[F
+Landroid/widget/RadialTimePickerView;->DEGREES_FOR_ONE_HOUR:I
+Landroid/widget/RadialTimePickerView;->DEGREES_FOR_ONE_MINUTE:I
+Landroid/widget/RadialTimePickerView;->drawCenter(Landroid/graphics/Canvas;F)V
+Landroid/widget/RadialTimePickerView;->drawCircleBackground(Landroid/graphics/Canvas;)V
+Landroid/widget/RadialTimePickerView;->drawHours(Landroid/graphics/Canvas;Landroid/graphics/Path;F)V
+Landroid/widget/RadialTimePickerView;->drawHoursClipped(Landroid/graphics/Canvas;IZ)V
+Landroid/widget/RadialTimePickerView;->drawMinutes(Landroid/graphics/Canvas;Landroid/graphics/Path;F)V
+Landroid/widget/RadialTimePickerView;->drawMinutesClipped(Landroid/graphics/Canvas;IZ)V
+Landroid/widget/RadialTimePickerView;->drawSelector(Landroid/graphics/Canvas;Landroid/graphics/Path;)V
+Landroid/widget/RadialTimePickerView;->drawTextElements(Landroid/graphics/Canvas;FLandroid/graphics/Typeface;Landroid/content/res/ColorStateList;[Ljava/lang/String;[F[FLandroid/graphics/Paint;IZIZ)V
+Landroid/widget/RadialTimePickerView;->getAmOrPm()I
+Landroid/widget/RadialTimePickerView;->getCurrentHour()I
+Landroid/widget/RadialTimePickerView;->getCurrentItemShowing()I
+Landroid/widget/RadialTimePickerView;->getCurrentMinute()I
+Landroid/widget/RadialTimePickerView;->getDegreesForHour(I)I
+Landroid/widget/RadialTimePickerView;->getDegreesForMinute(I)I
+Landroid/widget/RadialTimePickerView;->getDegreesFromXY(FFZ)I
+Landroid/widget/RadialTimePickerView;->getHourForDegrees(IZ)I
+Landroid/widget/RadialTimePickerView;->getInnerCircleForHour(I)Z
+Landroid/widget/RadialTimePickerView;->getInnerCircleFromXY(FF)Z
+Landroid/widget/RadialTimePickerView;->getMinuteForDegrees(I)I
+Landroid/widget/RadialTimePickerView;->getMultipliedAlpha(II)I
+Landroid/widget/RadialTimePickerView;->handleTouchInput(FFZZ)Z
+Landroid/widget/RadialTimePickerView;->HOURS:I
+Landroid/widget/RadialTimePickerView;->HOURS_INNER:I
+Landroid/widget/RadialTimePickerView;->HOURS_IN_CIRCLE:I
+Landroid/widget/RadialTimePickerView;->HOURS_NUMBERS:[I
+Landroid/widget/RadialTimePickerView;->HOURS_NUMBERS_24:[I
+Landroid/widget/RadialTimePickerView;->HOURS_TO_MINUTES:Landroid/util/FloatProperty;
+Landroid/widget/RadialTimePickerView;->initData()V
+Landroid/widget/RadialTimePickerView;->initHoursAndMinutesText()V
+Landroid/widget/RadialTimePickerView;->initialize(IIZ)V
+Landroid/widget/RadialTimePickerView;->mAmOrPm:I
+Landroid/widget/RadialTimePickerView;->mCenterDotRadius:I
+Landroid/widget/RadialTimePickerView;->mChangedDuringTouch:Z
+Landroid/widget/RadialTimePickerView;->mCircleRadius:I
+Landroid/widget/RadialTimePickerView;->mDisabledAlpha:F
+Landroid/widget/RadialTimePickerView;->mHalfwayDist:I
+Landroid/widget/RadialTimePickerView;->mHours12Texts:[Ljava/lang/String;
+Landroid/widget/RadialTimePickerView;->mHoursToMinutes:F
+Landroid/widget/RadialTimePickerView;->mHoursToMinutesAnimator:Landroid/animation/ObjectAnimator;
+Landroid/widget/RadialTimePickerView;->mInnerHours24Texts:[Ljava/lang/String;
+Landroid/widget/RadialTimePickerView;->mInnerTextHours:[Ljava/lang/String;
+Landroid/widget/RadialTimePickerView;->mInnerTextX:[F
+Landroid/widget/RadialTimePickerView;->mInnerTextY:[F
+Landroid/widget/RadialTimePickerView;->mInputEnabled:Z
+Landroid/widget/RadialTimePickerView;->MINUTES:I
+Landroid/widget/RadialTimePickerView;->MINUTES_IN_CIRCLE:I
+Landroid/widget/RadialTimePickerView;->MINUTES_NUMBERS:[I
+Landroid/widget/RadialTimePickerView;->mIs24HourMode:Z
+Landroid/widget/RadialTimePickerView;->mIsOnInnerCircle:Z
+Landroid/widget/RadialTimePickerView;->MISSING_COLOR:I
+Landroid/widget/RadialTimePickerView;->mListener:Landroid/widget/RadialTimePickerView$OnValueSelectedListener;
+Landroid/widget/RadialTimePickerView;->mMaxDistForOuterNumber:I
+Landroid/widget/RadialTimePickerView;->mMinDistForInnerNumber:I
+Landroid/widget/RadialTimePickerView;->mMinutesText:[Ljava/lang/String;
+Landroid/widget/RadialTimePickerView;->mMinutesTexts:[Ljava/lang/String;
+Landroid/widget/RadialTimePickerView;->mOuterHours24Texts:[Ljava/lang/String;
+Landroid/widget/RadialTimePickerView;->mOuterTextHours:[Ljava/lang/String;
+Landroid/widget/RadialTimePickerView;->mOuterTextX:[[F
+Landroid/widget/RadialTimePickerView;->mOuterTextY:[[F
+Landroid/widget/RadialTimePickerView;->mPaint:[Landroid/graphics/Paint;
+Landroid/widget/RadialTimePickerView;->mPaintBackground:Landroid/graphics/Paint;
+Landroid/widget/RadialTimePickerView;->mPaintCenter:Landroid/graphics/Paint;
+Landroid/widget/RadialTimePickerView;->mPaintSelector:[Landroid/graphics/Paint;
+Landroid/widget/RadialTimePickerView;->mSelectionDegrees:[I
+Landroid/widget/RadialTimePickerView;->mSelectorColor:I
+Landroid/widget/RadialTimePickerView;->mSelectorDotColor:I
+Landroid/widget/RadialTimePickerView;->mSelectorDotRadius:I
+Landroid/widget/RadialTimePickerView;->mSelectorPath:Landroid/graphics/Path;
+Landroid/widget/RadialTimePickerView;->mSelectorRadius:I
+Landroid/widget/RadialTimePickerView;->mSelectorStroke:I
+Landroid/widget/RadialTimePickerView;->mShowHours:Z
+Landroid/widget/RadialTimePickerView;->mTextColor:[Landroid/content/res/ColorStateList;
+Landroid/widget/RadialTimePickerView;->mTextInset:[I
+Landroid/widget/RadialTimePickerView;->mTextSize:[I
+Landroid/widget/RadialTimePickerView;->mTouchHelper:Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;
+Landroid/widget/RadialTimePickerView;->mTypeface:Landroid/graphics/Typeface;
+Landroid/widget/RadialTimePickerView;->mXCenter:I
+Landroid/widget/RadialTimePickerView;->mYCenter:I
+Landroid/widget/RadialTimePickerView;->NUM_POSITIONS:I
+Landroid/widget/RadialTimePickerView;->PM:I
+Landroid/widget/RadialTimePickerView;->preparePrefer30sMap()V
+Landroid/widget/RadialTimePickerView;->SELECTOR_CIRCLE:I
+Landroid/widget/RadialTimePickerView;->SELECTOR_DOT:I
+Landroid/widget/RadialTimePickerView;->SELECTOR_LINE:I
+Landroid/widget/RadialTimePickerView;->setAmOrPm(I)Z
+Landroid/widget/RadialTimePickerView;->setCurrentHour(I)V
+Landroid/widget/RadialTimePickerView;->setCurrentHourInternal(IZZ)V
+Landroid/widget/RadialTimePickerView;->setCurrentItemShowing(IZ)V
+Landroid/widget/RadialTimePickerView;->setCurrentMinute(I)V
+Landroid/widget/RadialTimePickerView;->setCurrentMinuteInternal(IZ)V
+Landroid/widget/RadialTimePickerView;->setInputEnabled(Z)V
+Landroid/widget/RadialTimePickerView;->setOnValueSelectedListener(Landroid/widget/RadialTimePickerView$OnValueSelectedListener;)V
+Landroid/widget/RadialTimePickerView;->showHours(Z)V
+Landroid/widget/RadialTimePickerView;->showMinutes(Z)V
+Landroid/widget/RadialTimePickerView;->showPicker(ZZ)V
+Landroid/widget/RadialTimePickerView;->SIN_30:[F
+Landroid/widget/RadialTimePickerView;->snapOnly30s(II)I
+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;
+Landroid/widget/RadioGroup;->mCheckedId:I
+Landroid/widget/RadioGroup;->mInitialCheckedId:I
+Landroid/widget/RadioGroup;->mPassThroughListener:Landroid/widget/RadioGroup$PassThroughHierarchyChangeListener;
+Landroid/widget/RadioGroup;->mProtectFromCheckedChange:Z
+Landroid/widget/RadioGroup;->setCheckedId(I)V
+Landroid/widget/RadioGroup;->setCheckedStateForView(IZ)V
+Landroid/widget/RatingBar;->canUserSetProgress()Z
+Landroid/widget/RatingBar;->dispatchRatingChange(Z)V
+Landroid/widget/RatingBar;->getDrawableShape()Landroid/graphics/drawable/shapes/Shape;
+Landroid/widget/RatingBar;->getProgressPerStar()F
+Landroid/widget/RatingBar;->mNumStars:I
+Landroid/widget/RatingBar;->mProgressOnStartTracking:I
+Landroid/widget/RatingBar;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/RatingBar;->onKeyChange()V
+Landroid/widget/RatingBar;->onProgressRefresh(FZI)V
+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;
+Landroid/widget/RelativeLayout$DependencyGraph$Node;->POOL_LIMIT:I
+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;
+Landroid/widget/RelativeLayout$LayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/RelativeLayout$LayoutParams;->getRules(I)[I
+Landroid/widget/RelativeLayout$LayoutParams;->hasRelativeRules()Z
+Landroid/widget/RelativeLayout$LayoutParams;->isRelativeRule(I)Z
+Landroid/widget/RelativeLayout$LayoutParams;->mInitialRules:[I
+Landroid/widget/RelativeLayout$LayoutParams;->mIsRtlCompatibilityMode:Z
+Landroid/widget/RelativeLayout$LayoutParams;->mNeedsLayoutResolution:Z
+Landroid/widget/RelativeLayout$LayoutParams;->mRules:[I
+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
+Landroid/widget/RelativeLayout;->centerHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V
+Landroid/widget/RelativeLayout;->centerVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V
+Landroid/widget/RelativeLayout;->compareLayoutPosition(Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams;)I
+Landroid/widget/RelativeLayout;->DEFAULT_WIDTH:I
+Landroid/widget/RelativeLayout;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+Landroid/widget/RelativeLayout;->getChildMeasureSpec(IIIIIIII)I
+Landroid/widget/RelativeLayout;->getRelatedView([II)Landroid/view/View;
+Landroid/widget/RelativeLayout;->getRelatedViewBaselineOffset([I)I
+Landroid/widget/RelativeLayout;->getRelatedViewParams([II)Landroid/widget/RelativeLayout$LayoutParams;
+Landroid/widget/RelativeLayout;->initFromAttributes(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/widget/RelativeLayout;->mAllowBrokenMeasureSpecs:Z
+Landroid/widget/RelativeLayout;->mBaselineView:Landroid/view/View;
+Landroid/widget/RelativeLayout;->mContentBounds:Landroid/graphics/Rect;
+Landroid/widget/RelativeLayout;->mDirtyHierarchy:Z
+Landroid/widget/RelativeLayout;->measureChild(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V
+Landroid/widget/RelativeLayout;->measureChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V
+Landroid/widget/RelativeLayout;->mGraph:Landroid/widget/RelativeLayout$DependencyGraph;
+Landroid/widget/RelativeLayout;->mIgnoreGravity:I
+Landroid/widget/RelativeLayout;->mMeasureVerticalWithPaddingMargin:Z
+Landroid/widget/RelativeLayout;->mSelfBounds:Landroid/graphics/Rect;
+Landroid/widget/RelativeLayout;->mSortedHorizontalChildren:[Landroid/view/View;
+Landroid/widget/RelativeLayout;->mSortedVerticalChildren:[Landroid/view/View;
+Landroid/widget/RelativeLayout;->mTopToBottomLeftToRightSet:Ljava/util/SortedSet;
+Landroid/widget/RelativeLayout;->positionAtEdge(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V
+Landroid/widget/RelativeLayout;->positionChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z
+Landroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z
+Landroid/widget/RelativeLayout;->queryCompatibilityModes(Landroid/content/Context;)V
+Landroid/widget/RelativeLayout;->RULES_HORIZONTAL:[I
+Landroid/widget/RelativeLayout;->RULES_VERTICAL:[I
+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
+Landroid/widget/RemoteViews$Action;->getUniqueKey()Ljava/lang/String;
+Landroid/widget/RemoteViews$Action;->hasSameAppInfo(Landroid/content/pm/ApplicationInfo;)Z
+Landroid/widget/RemoteViews$Action;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+Landroid/widget/RemoteViews$Action;->MERGE_APPEND:I
+Landroid/widget/RemoteViews$Action;->MERGE_IGNORE:I
+Landroid/widget/RemoteViews$Action;->MERGE_REPLACE:I
+Landroid/widget/RemoteViews$Action;->prefersAsyncApply()Z
+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;
+Landroid/widget/RemoteViews$AsyncApplyTask;->mHandler:Landroid/widget/RemoteViews$OnClickHandler;
+Landroid/widget/RemoteViews$AsyncApplyTask;->mListener:Landroid/widget/RemoteViews$OnViewAppliedListener;
+Landroid/widget/RemoteViews$AsyncApplyTask;->mParent:Landroid/view/ViewGroup;
+Landroid/widget/RemoteViews$AsyncApplyTask;->mResult:Landroid/view/View;
+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;
+Landroid/widget/RemoteViews$BitmapCache;->getBitmapId(Landroid/graphics/Bitmap;)I
+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
+Landroid/widget/RemoteViews$LayoutParamAction;->getActionTag()I
+Landroid/widget/RemoteViews$LayoutParamAction;->getUniqueKey()Ljava/lang/String;
+Landroid/widget/RemoteViews$LayoutParamAction;->LAYOUT_MARGIN_BOTTOM_DIMEN:I
+Landroid/widget/RemoteViews$LayoutParamAction;->LAYOUT_MARGIN_END:I
+Landroid/widget/RemoteViews$LayoutParamAction;->LAYOUT_MARGIN_END_DIMEN:I
+Landroid/widget/RemoteViews$LayoutParamAction;->LAYOUT_WIDTH:I
+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
+Landroid/widget/RemoteViews$ReflectionAction;->BUNDLE:I
+Landroid/widget/RemoteViews$ReflectionAction;->BYTE:I
+Landroid/widget/RemoteViews$ReflectionAction;->CHAR:I
+Landroid/widget/RemoteViews$ReflectionAction;->CHAR_SEQUENCE:I
+Landroid/widget/RemoteViews$ReflectionAction;->COLOR_STATE_LIST:I
+Landroid/widget/RemoteViews$ReflectionAction;->DOUBLE:I
+Landroid/widget/RemoteViews$ReflectionAction;->FLOAT:I
+Landroid/widget/RemoteViews$ReflectionAction;->getActionTag()I
+Landroid/widget/RemoteViews$ReflectionAction;->getParameterType()Ljava/lang/Class;
+Landroid/widget/RemoteViews$ReflectionAction;->getUniqueKey()Ljava/lang/String;
+Landroid/widget/RemoteViews$ReflectionAction;->ICON:I
+Landroid/widget/RemoteViews$ReflectionAction;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+Landroid/widget/RemoteViews$ReflectionAction;->INT:I
+Landroid/widget/RemoteViews$ReflectionAction;->INTENT:I
+Landroid/widget/RemoteViews$ReflectionAction;->LONG:I
+Landroid/widget/RemoteViews$ReflectionAction;->mergeBehavior()I
+Landroid/widget/RemoteViews$ReflectionAction;->prefersAsyncApply()Z
+Landroid/widget/RemoteViews$ReflectionAction;->SHORT:I
+Landroid/widget/RemoteViews$ReflectionAction;->STRING:I
+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
+Landroid/widget/RemoteViews$TextViewDrawableAction;->d3:I
+Landroid/widget/RemoteViews$TextViewDrawableAction;->d4:I
+Landroid/widget/RemoteViews$TextViewDrawableAction;->drawablesLoaded:Z
+Landroid/widget/RemoteViews$TextViewDrawableAction;->getActionTag()I
+Landroid/widget/RemoteViews$TextViewDrawableAction;->i1:Landroid/graphics/drawable/Icon;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->i2:Landroid/graphics/drawable/Icon;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->i3:Landroid/graphics/drawable/Icon;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->i4:Landroid/graphics/drawable/Icon;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->id1:Landroid/graphics/drawable/Drawable;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->id2:Landroid/graphics/drawable/Drawable;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->id3:Landroid/graphics/drawable/Drawable;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->id4:Landroid/graphics/drawable/Drawable;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+Landroid/widget/RemoteViews$TextViewDrawableAction;->isRelative:Z
+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
+Landroid/widget/RemoteViews$ViewGroupActionAdd;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+Landroid/widget/RemoteViews$ViewGroupActionAdd;->mergeBehavior()I
+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;
+Landroid/widget/RemoteViews$ViewGroupActionRemove;->mergeBehavior()I
+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
+Landroid/widget/RemoteViews$ViewTree;->addViewChild(Landroid/view/View;)V
+Landroid/widget/RemoteViews$ViewTree;->createTree()V
+Landroid/widget/RemoteViews$ViewTree;->findViewById(I)Landroid/view/View;
+Landroid/widget/RemoteViews$ViewTree;->findViewTreeById(I)Landroid/widget/RemoteViews$ViewTree;
+Landroid/widget/RemoteViews$ViewTree;->INSERT_AT_END_INDEX:I
+Landroid/widget/RemoteViews$ViewTree;->mChildren:Ljava/util/ArrayList;
+Landroid/widget/RemoteViews$ViewTree;->mRoot:Landroid/view/View;
+Landroid/widget/RemoteViews$ViewTree;->replaceView(Landroid/view/View;)V
+Landroid/widget/RemoteViews;-><init>(Landroid/content/pm/ApplicationInfo;I)V
+Landroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$BitmapCache;Landroid/content/pm/ApplicationInfo;ILjava/util/Map;)V
+Landroid/widget/RemoteViews;-><init>(Ljava/lang/String;II)V
+Landroid/widget/RemoteViews;->ACTION_NOOP:Landroid/widget/RemoteViews$Action;
+Landroid/widget/RemoteViews;->addAction(Landroid/widget/RemoteViews$Action;)V
+Landroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/view/View;
+Landroid/widget/RemoteViews;->applyAsync(Landroid/content/Context;Landroid/view/ViewGroup;Ljava/util/concurrent/Executor;Landroid/widget/RemoteViews$OnViewAppliedListener;)Landroid/os/CancellationSignal;
+Landroid/widget/RemoteViews;->applyAsync(Landroid/content/Context;Landroid/view/ViewGroup;Ljava/util/concurrent/Executor;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/os/CancellationSignal;
+Landroid/widget/RemoteViews;->BITMAP_REFLECTION_ACTION_TAG:I
+Landroid/widget/RemoteViews;->configureRemoteViewsAsChild(Landroid/widget/RemoteViews;)V
+Landroid/widget/RemoteViews;->DEFAULT_ON_CLICK_HANDLER:Landroid/widget/RemoteViews$OnClickHandler;
+Landroid/widget/RemoteViews;->EXTRA_REMOTEADAPTER_APPWIDGET_ID:Ljava/lang/String;
+Landroid/widget/RemoteViews;->getActionFromParcel(Landroid/os/Parcel;I)Landroid/widget/RemoteViews$Action;
+Landroid/widget/RemoteViews;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
+Landroid/widget/RemoteViews;->getAsyncApplyTask(Landroid/content/Context;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$AsyncApplyTask;
+Landroid/widget/RemoteViews;->getContextForResources(Landroid/content/Context;)Landroid/content/Context;
+Landroid/widget/RemoteViews;->getMethod(Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle;
+Landroid/widget/RemoteViews;->getParameters(Ljava/lang/Class;)Ljava/lang/String;
+Landroid/widget/RemoteViews;->getRemoteViewsToApply(Landroid/content/Context;)Landroid/widget/RemoteViews;
+Landroid/widget/RemoteViews;->getSequenceNumber()I
+Landroid/widget/RemoteViews;->getSourceBounds(Landroid/view/View;)Landroid/graphics/Rect;
+Landroid/widget/RemoteViews;->hasLandscapeAndPortraitLayouts()Z
+Landroid/widget/RemoteViews;->hasSameAppInfo(Landroid/content/pm/ApplicationInfo;)Z
+Landroid/widget/RemoteViews;->inflateView(Landroid/content/Context;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;)Landroid/view/View;
+Landroid/widget/RemoteViews;->isReapplyDisallowed()Z
+Landroid/widget/RemoteViews;->LAYOUT_PARAM_ACTION_TAG:I
+Landroid/widget/RemoteViews;->loadTransitionOverride(Landroid/content/Context;Landroid/widget/RemoteViews$OnClickHandler;)V
+Landroid/widget/RemoteViews;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/RemoteViews;->mApplyThemeResId:I
+Landroid/widget/RemoteViews;->MAX_NESTED_VIEWS:I
+Landroid/widget/RemoteViews;->mClassCookies:Ljava/util/Map;
+Landroid/widget/RemoteViews;->mIsRoot:Z
+Landroid/widget/RemoteViews;->mIsWidgetCollectionChild:Z
+Landroid/widget/RemoteViews;->mLandscape:Landroid/widget/RemoteViews;
+Landroid/widget/RemoteViews;->MODE_HAS_LANDSCAPE_AND_PORTRAIT:I
+Landroid/widget/RemoteViews;->MODE_NORMAL:I
+Landroid/widget/RemoteViews;->mReapplyDisallowed:Z
+Landroid/widget/RemoteViews;->overrideTextColors(I)V
+Landroid/widget/RemoteViews;->OVERRIDE_TEXT_COLORS_TAG:I
+Landroid/widget/RemoteViews;->performApply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+Landroid/widget/RemoteViews;->prefersAsyncApply()Z
+Landroid/widget/RemoteViews;->readActionsFromParcel(Landroid/os/Parcel;I)V
+Landroid/widget/RemoteViews;->reapply(Landroid/content/Context;Landroid/view/View;Landroid/widget/RemoteViews$OnClickHandler;)V
+Landroid/widget/RemoteViews;->reapplyAsync(Landroid/content/Context;Landroid/view/View;Ljava/util/concurrent/Executor;Landroid/widget/RemoteViews$OnViewAppliedListener;)Landroid/os/CancellationSignal;
+Landroid/widget/RemoteViews;->reapplyAsync(Landroid/content/Context;Landroid/view/View;Ljava/util/concurrent/Executor;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/os/CancellationSignal;
+Landroid/widget/RemoteViews;->reduceImageSizes(II)V
+Landroid/widget/RemoteViews;->REFLECTION_ACTION_TAG:I
+Landroid/widget/RemoteViews;->removeAllViewsExceptId(II)V
+Landroid/widget/RemoteViews;->setApplyTheme(I)V
+Landroid/widget/RemoteViews;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
+Landroid/widget/RemoteViews;->setColorStateList(ILjava/lang/String;Landroid/content/res/ColorStateList;)V
+Landroid/widget/RemoteViews;->setDrawableTint(IZILandroid/graphics/PorterDuff$Mode;)V
+Landroid/widget/RemoteViews;->setNotRoot()V
+Landroid/widget/RemoteViews;->setProgressBackgroundTintList(ILandroid/content/res/ColorStateList;)V
+Landroid/widget/RemoteViews;->setProgressIndeterminateTintList(ILandroid/content/res/ColorStateList;)V
+Landroid/widget/RemoteViews;->setProgressTintList(ILandroid/content/res/ColorStateList;)V
+Landroid/widget/RemoteViews;->setReapplyDisallowed()V
+Landroid/widget/RemoteViews;->setRemoteInputs(I[Landroid/app/RemoteInput;)V
+Landroid/widget/RemoteViews;->setTextColor(ILandroid/content/res/ColorStateList;)V
+Landroid/widget/RemoteViews;->setTextViewCompoundDrawables(ILandroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;)V
+Landroid/widget/RemoteViews;->setTextViewCompoundDrawablesRelative(ILandroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;)V
+Landroid/widget/RemoteViews;->setViewLayoutMarginBottomDimen(II)V
+Landroid/widget/RemoteViews;->setViewLayoutMarginEnd(II)V
+Landroid/widget/RemoteViews;->setViewLayoutMarginEndDimen(II)V
+Landroid/widget/RemoteViews;->setViewLayoutWidth(II)V
+Landroid/widget/RemoteViews;->SET_DRAWABLE_TINT_TAG:I
+Landroid/widget/RemoteViews;->SET_EMPTY_VIEW_ACTION_TAG:I
+Landroid/widget/RemoteViews;->SET_ON_CLICK_FILL_IN_INTENT_TAG:I
+Landroid/widget/RemoteViews;->SET_ON_CLICK_PENDING_INTENT_TAG:I
+Landroid/widget/RemoteViews;->SET_PENDING_INTENT_TEMPLATE_TAG:I
+Landroid/widget/RemoteViews;->SET_REMOTE_INPUTS_ACTION_TAG:I
+Landroid/widget/RemoteViews;->SET_REMOTE_VIEW_ADAPTER_INTENT_TAG:I
+Landroid/widget/RemoteViews;->SET_REMOTE_VIEW_ADAPTER_LIST_TAG:I
+Landroid/widget/RemoteViews;->sLookupKey:Landroid/widget/RemoteViews$MethodKey;
+Landroid/widget/RemoteViews;->sMethods:Landroid/util/ArrayMap;
+Landroid/widget/RemoteViews;->startTaskOnExecutor(Landroid/widget/RemoteViews$AsyncApplyTask;Ljava/util/concurrent/Executor;)Landroid/os/CancellationSignal;
+Landroid/widget/RemoteViews;->TEXT_VIEW_DRAWABLE_ACTION_TAG:I
+Landroid/widget/RemoteViews;->TEXT_VIEW_SIZE_ACTION_TAG:I
+Landroid/widget/RemoteViews;->VIEW_CONTENT_NAVIGATION_TAG:I
+Landroid/widget/RemoteViews;->VIEW_GROUP_ACTION_ADD_TAG:I
+Landroid/widget/RemoteViews;->VIEW_GROUP_ACTION_REMOVE_TAG:I
+Landroid/widget/RemoteViews;->VIEW_PADDING_ACTION_TAG:I
+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
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->containsRemoteViewAt(I)Z
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->getFarthestPositionFrom(I[I)I
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->getMetaData()Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->getMetaDataAt(I)Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->getNextIndexToLoad()I
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->getRemoteViewsAt(I)Landroid/widget/RemoteViews;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->getRemoteViewsBitmapMemoryUsage()I
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->getTemporaryMetaData()Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->insert(ILandroid/widget/RemoteViews;J[I)V
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mIndexMetaData:Landroid/util/SparseArray;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mIndexRemoteViews:Landroid/util/SparseArray;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mIndicesToLoad:Landroid/util/SparseBooleanArray;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mLastRequestedIndex:I
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mMaxCount:I
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mMaxCountSlack:I
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mPreloadLowerBound:I
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mPreloadUpperBound:I
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->mTemporaryMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->queuePositionsToBePreloadedFromRequestedPosition(I)Z
+Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->queueRequestedPositionToLoad(I)V
+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;
+Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;->mBindRequested:Z
+Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;->mContext:Landroid/content/Context;
+Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;->mNotifyDataSetChangedPending:Z
+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;
+Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->getMappedViewType(I)I
+Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->hasStableIds:Z
+Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->isViewTypeInRange(I)Z
+Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->loadingTemplate:Landroid/widget/RemoteViewsAdapter$LoadingViewTemplate;
+Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->mTypeIdIndexMap:Landroid/util/SparseIntArray;
+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
+Landroid/widget/RemoteViewsAdapter;->getVisibleWindow(I)[I
+Landroid/widget/RemoteViewsAdapter;->mAppWidgetId:I
+Landroid/widget/RemoteViewsAdapter;->mAsyncViewLoadExecutor:Ljava/util/concurrent/Executor;
+Landroid/widget/RemoteViewsAdapter;->mCallback:Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;
+Landroid/widget/RemoteViewsAdapter;->mContext:Landroid/content/Context;
+Landroid/widget/RemoteViewsAdapter;->mDataReady:Z
+Landroid/widget/RemoteViewsAdapter;->mIntent:Landroid/content/Intent;
+Landroid/widget/RemoteViewsAdapter;->mLastRemoteViewAppInfo:Landroid/content/pm/ApplicationInfo;
+Landroid/widget/RemoteViewsAdapter;->mMainHandler:Landroid/os/Handler;
+Landroid/widget/RemoteViewsAdapter;->mRemoteViewsOnClickHandler:Landroid/widget/RemoteViews$OnClickHandler;
+Landroid/widget/RemoteViewsAdapter;->mRequestedViews:Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayoutRefSet;
+Landroid/widget/RemoteViewsAdapter;->mServiceHandler:Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
+Landroid/widget/RemoteViewsAdapter;->MSG_LOAD_NEXT_ITEM:I
+Landroid/widget/RemoteViewsAdapter;->MSG_MAIN_HANDLER_COMMIT_METADATA:I
+Landroid/widget/RemoteViewsAdapter;->MSG_MAIN_HANDLER_REMOTE_ADAPTER_CONNECTED:I
+Landroid/widget/RemoteViewsAdapter;->MSG_MAIN_HANDLER_REMOTE_ADAPTER_DISCONNECTED:I
+Landroid/widget/RemoteViewsAdapter;->MSG_MAIN_HANDLER_REMOTE_VIEWS_LOADED:I
+Landroid/widget/RemoteViewsAdapter;->MSG_MAIN_HANDLER_SUPER_NOTIFY_DATA_SET_CHANGED:I
+Landroid/widget/RemoteViewsAdapter;->MSG_NOTIFY_DATA_SET_CHANGED:I
+Landroid/widget/RemoteViewsAdapter;->MSG_REQUEST_BIND:I
+Landroid/widget/RemoteViewsAdapter;->MSG_UNBIND_SERVICE:I
+Landroid/widget/RemoteViewsAdapter;->mVisibleWindowLowerBound:I
+Landroid/widget/RemoteViewsAdapter;->mVisibleWindowUpperBound:I
+Landroid/widget/RemoteViewsAdapter;->REMOTE_VIEWS_CACHE_DURATION:I
+Landroid/widget/RemoteViewsAdapter;->requestBindService()V
+Landroid/widget/RemoteViewsAdapter;->sCachedRemoteViewsCaches:Ljava/util/HashMap;
+Landroid/widget/RemoteViewsAdapter;->sCacheRemovalQueue:Landroid/os/Handler;
+Landroid/widget/RemoteViewsAdapter;->sCacheRemovalThread:Landroid/os/HandlerThread;
+Landroid/widget/RemoteViewsAdapter;->sRemoteViewsCacheRemoveRunnables:Ljava/util/HashMap;
+Landroid/widget/RemoteViewsAdapter;->superNotifyDataSetChanged()V
+Landroid/widget/RemoteViewsAdapter;->TAG:Ljava/lang/String;
+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;
+Landroid/widget/RemoteViewsListAdapter;->mRemoteViewsList:Ljava/util/ArrayList;
+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
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->getLoadingView()Landroid/widget/RemoteViews;
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->getViewAt(I)Landroid/widget/RemoteViews;
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->getViewTypeCount()I
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->hasStableIds()Z
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->isCreated()Z
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->mFactory:Landroid/widget/RemoteViewsService$RemoteViewsFactory;
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->mIsCreated:Z
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->onDataSetChanged()V
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->onDataSetChangedAsync()V
+Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->onDestroy(Landroid/content/Intent;)V
+Landroid/widget/RemoteViewsService;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/RemoteViewsService;->sLock:Ljava/lang/Object;
+Landroid/widget/RemoteViewsService;->sRemoteViewFactories:Ljava/util/HashMap;
+Landroid/widget/ResourceCursorAdapter;->mDropDownInflater:Landroid/view/LayoutInflater;
+Landroid/widget/ResourceCursorAdapter;->mDropDownLayout:I
+Landroid/widget/ResourceCursorAdapter;->mInflater:Landroid/view/LayoutInflater;
+Landroid/widget/ResourceCursorAdapter;->mLayout:I
+Landroid/widget/ResourceCursorTreeAdapter;->mChildLayout:I
+Landroid/widget/ResourceCursorTreeAdapter;->mCollapsedGroupLayout:I
+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
+Landroid/widget/RtlSpacingHelper;->getRight()I
+Landroid/widget/RtlSpacingHelper;->getStart()I
+Landroid/widget/RtlSpacingHelper;->mEnd:I
+Landroid/widget/RtlSpacingHelper;->mExplicitLeft:I
+Landroid/widget/RtlSpacingHelper;->mExplicitRight:I
+Landroid/widget/RtlSpacingHelper;->mIsRelative:Z
+Landroid/widget/RtlSpacingHelper;->mIsRtl:Z
+Landroid/widget/RtlSpacingHelper;->mLeft:I
+Landroid/widget/RtlSpacingHelper;->mRight:I
+Landroid/widget/RtlSpacingHelper;->mStart:I
+Landroid/widget/RtlSpacingHelper;->setAbsolute(II)V
+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
+Landroid/widget/ScrollBarDrawable;->getAlwaysDrawVerticalTrack()Z
+Landroid/widget/ScrollBarDrawable;->getSize(Z)I
+Landroid/widget/ScrollBarDrawable;->mAlpha:I
+Landroid/widget/ScrollBarDrawable;->mAlwaysDrawHorizontalTrack:Z
+Landroid/widget/ScrollBarDrawable;->mAlwaysDrawVerticalTrack:Z
+Landroid/widget/ScrollBarDrawable;->mBoundsChanged:Z
+Landroid/widget/ScrollBarDrawable;->mColorFilter:Landroid/graphics/ColorFilter;
+Landroid/widget/ScrollBarDrawable;->mExtent:I
+Landroid/widget/ScrollBarDrawable;->mHasSetAlpha:Z
+Landroid/widget/ScrollBarDrawable;->mHasSetColorFilter:Z
+Landroid/widget/ScrollBarDrawable;->mHorizontalThumb:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ScrollBarDrawable;->mHorizontalTrack:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ScrollBarDrawable;->mMutated:Z
+Landroid/widget/ScrollBarDrawable;->mOffset:I
+Landroid/widget/ScrollBarDrawable;->mRange:I
+Landroid/widget/ScrollBarDrawable;->mRangeChanged:Z
+Landroid/widget/ScrollBarDrawable;->mVertical:Z
+Landroid/widget/ScrollBarDrawable;->mVerticalTrack:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ScrollBarDrawable;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/ScrollBarDrawable;->setAlwaysDrawHorizontalTrack(Z)V
+Landroid/widget/ScrollBarDrawable;->setAlwaysDrawVerticalTrack(Z)V
+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
+Landroid/widget/Scroller$ViscousFluidInterpolator;->VISCOUS_FLUID_OFFSET:F
+Landroid/widget/Scroller$ViscousFluidInterpolator;->VISCOUS_FLUID_SCALE:F
+Landroid/widget/Scroller;->computeDeceleration(F)F
+Landroid/widget/Scroller;->DEFAULT_DURATION:I
+Landroid/widget/Scroller;->END_TENSION:F
+Landroid/widget/Scroller;->FLING_MODE:I
+Landroid/widget/Scroller;->getSplineDeceleration(F)D
+Landroid/widget/Scroller;->getSplineFlingDistance(F)D
+Landroid/widget/Scroller;->getSplineFlingDuration(F)I
+Landroid/widget/Scroller;->isScrollingInDirection(FF)Z
+Landroid/widget/Scroller;->mCurrVelocity:F
+Landroid/widget/Scroller;->mCurrX:I
+Landroid/widget/Scroller;->mCurrY:I
+Landroid/widget/Scroller;->mDeltaX:F
+Landroid/widget/Scroller;->mDeltaY:F
+Landroid/widget/Scroller;->mDistance:I
+Landroid/widget/Scroller;->mDurationReciprocal:F
+Landroid/widget/Scroller;->mFinalX:I
+Landroid/widget/Scroller;->mFinalY:I
+Landroid/widget/Scroller;->mFinished:Z
+Landroid/widget/Scroller;->mFlingFriction:F
+Landroid/widget/Scroller;->mFlywheel:Z
+Landroid/widget/Scroller;->mMaxX:I
+Landroid/widget/Scroller;->mMaxY:I
+Landroid/widget/Scroller;->mMinX:I
+Landroid/widget/Scroller;->mMinY:I
+Landroid/widget/Scroller;->mMode:I
+Landroid/widget/Scroller;->mPpi:F
+Landroid/widget/Scroller;->mStartTime:J
+Landroid/widget/Scroller;->mStartX:I
+Landroid/widget/Scroller;->mStartY:I
+Landroid/widget/Scroller;->mVelocity:F
+Landroid/widget/Scroller;->NB_SAMPLES:I
+Landroid/widget/Scroller;->P1:F
+Landroid/widget/Scroller;->P2:F
+Landroid/widget/Scroller;->SCROLL_MODE:I
+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;
+Landroid/widget/ScrollView$SavedState;->scrollPosition:I
+Landroid/widget/ScrollView;->ANIMATED_SCROLL_GAP:I
+Landroid/widget/ScrollView;->clamp(III)I
+Landroid/widget/ScrollView;->doScrollY(I)V
+Landroid/widget/ScrollView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/ScrollView;->findFocusableViewInBounds(ZII)Landroid/view/View;
+Landroid/widget/ScrollView;->flingWithNestedDispatch(I)V
+Landroid/widget/ScrollView;->getScrollRange()I
+Landroid/widget/ScrollView;->inChild(II)Z
+Landroid/widget/ScrollView;->initOrResetVelocityTracker()V
+Landroid/widget/ScrollView;->initScrollView()V
+Landroid/widget/ScrollView;->initVelocityTrackerIfNotExists()V
+Landroid/widget/ScrollView;->INVALID_POINTER:I
+Landroid/widget/ScrollView;->isOffScreen(Landroid/view/View;)Z
+Landroid/widget/ScrollView;->isViewDescendantOf(Landroid/view/View;Landroid/view/View;)Z
+Landroid/widget/ScrollView;->isWithinDeltaOfScreen(Landroid/view/View;II)Z
+Landroid/widget/ScrollView;->mActivePointerId:I
+Landroid/widget/ScrollView;->MAX_SCROLL_FACTOR:F
+Landroid/widget/ScrollView;->mFillViewport:Z
+Landroid/widget/ScrollView;->mIsLayoutDirty:Z
+Landroid/widget/ScrollView;->mMaximumVelocity:I
+Landroid/widget/ScrollView;->mNestedYOffset:I
+Landroid/widget/ScrollView;->mSavedState:Landroid/widget/ScrollView$SavedState;
+Landroid/widget/ScrollView;->mScrollConsumed:[I
+Landroid/widget/ScrollView;->mScrollOffset:[I
+Landroid/widget/ScrollView;->mScrollStrictSpan:Landroid/os/StrictMode$Span;
+Landroid/widget/ScrollView;->mSmoothScrollingEnabled:Z
+Landroid/widget/ScrollView;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/ScrollView;->mTouchSlop:I
+Landroid/widget/ScrollView;->mVerticalScrollFactor:F
+Landroid/widget/ScrollView;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/ScrollView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/ScrollView;->onSecondaryPointerUp(Landroid/view/MotionEvent;)V
+Landroid/widget/ScrollView;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/ScrollView;->recycleVelocityTracker()V
+Landroid/widget/ScrollView;->scrollAndFocus(III)Z
+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
+Landroid/widget/SearchView$SearchAutoComplete;->getSearchViewTextMinWidthDp()I
+Landroid/widget/SearchView$SearchAutoComplete;->isEmpty()Z
+Landroid/widget/SearchView$SearchAutoComplete;->mHasPendingShowSoftInputRequest:Z
+Landroid/widget/SearchView$SearchAutoComplete;->mRunShowSoftInputIfNecessary:Ljava/lang/Runnable;
+Landroid/widget/SearchView$SearchAutoComplete;->mSearchView:Landroid/widget/SearchView;
+Landroid/widget/SearchView$SearchAutoComplete;->mThreshold:I
+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
+Landroid/widget/SearchView$UpdatableTouchDelegate;->mDelegateView:Landroid/view/View;
+Landroid/widget/SearchView$UpdatableTouchDelegate;->mSlop:I
+Landroid/widget/SearchView$UpdatableTouchDelegate;->mSlopBounds:Landroid/graphics/Rect;
+Landroid/widget/SearchView$UpdatableTouchDelegate;->mTargetBounds:Landroid/graphics/Rect;
+Landroid/widget/SearchView$UpdatableTouchDelegate;->setBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Landroid/widget/SearchView;->adjustDropDownSizeAndPosition()V
+Landroid/widget/SearchView;->createIntent(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/content/Intent;
+Landroid/widget/SearchView;->createIntentFromSuggestion(Landroid/database/Cursor;ILjava/lang/String;)Landroid/content/Intent;
+Landroid/widget/SearchView;->createVoiceAppSearchIntent(Landroid/content/Intent;Landroid/app/SearchableInfo;)Landroid/content/Intent;
+Landroid/widget/SearchView;->createVoiceWebSearchIntent(Landroid/content/Intent;Landroid/app/SearchableInfo;)Landroid/content/Intent;
+Landroid/widget/SearchView;->DBG:Z
+Landroid/widget/SearchView;->dismissSuggestions()V
+Landroid/widget/SearchView;->forceSuggestionQuery()V
+Landroid/widget/SearchView;->getActionKeyMessage(Landroid/database/Cursor;Landroid/app/SearchableInfo$ActionKeyInfo;)Ljava/lang/String;
+Landroid/widget/SearchView;->getChildBoundsWithinSearchView(Landroid/view/View;Landroid/graphics/Rect;)V
+Landroid/widget/SearchView;->getDecoratedHint(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/widget/SearchView;->getPreferredHeight()I
+Landroid/widget/SearchView;->getPreferredWidth()I
+Landroid/widget/SearchView;->getSuggestionCommitIconResId()I
+Landroid/widget/SearchView;->getSuggestionRowLayout()I
+Landroid/widget/SearchView;->hasVoiceSearch()Z
+Landroid/widget/SearchView;->IME_OPTION_NO_MICROPHONE:Ljava/lang/String;
+Landroid/widget/SearchView;->isLandscapeMode(Landroid/content/Context;)Z
+Landroid/widget/SearchView;->isSubmitAreaEnabled()Z
+Landroid/widget/SearchView;->launchIntent(Landroid/content/Intent;)V
+Landroid/widget/SearchView;->launchQuerySearch(ILjava/lang/String;Ljava/lang/String;)V
+Landroid/widget/SearchView;->launchSuggestion(IILjava/lang/String;)Z
+Landroid/widget/SearchView;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/SearchView;->mAppSearchData:Landroid/os/Bundle;
+Landroid/widget/SearchView;->mCollapsedIcon:Landroid/widget/ImageView;
+Landroid/widget/SearchView;->mDefaultQueryHint:Ljava/lang/CharSequence;
+Landroid/widget/SearchView;->mDropDownAnchor:Landroid/view/View;
+Landroid/widget/SearchView;->mGoButton:Landroid/widget/ImageView;
+Landroid/widget/SearchView;->mMaxWidth:I
+Landroid/widget/SearchView;->mOldQueryText:Ljava/lang/CharSequence;
+Landroid/widget/SearchView;->mOnCloseListener:Landroid/widget/SearchView$OnCloseListener;
+Landroid/widget/SearchView;->mOnEditorActionListener:Landroid/widget/TextView$OnEditorActionListener;
+Landroid/widget/SearchView;->mOnItemSelectedListener:Landroid/widget/AdapterView$OnItemSelectedListener;
+Landroid/widget/SearchView;->mOnQueryTextFocusChangeListener:Landroid/view/View$OnFocusChangeListener;
+Landroid/widget/SearchView;->mOnSearchClickListener:Landroid/view/View$OnClickListener;
+Landroid/widget/SearchView;->mOnSuggestionListener:Landroid/widget/SearchView$OnSuggestionListener;
+Landroid/widget/SearchView;->mOutsideDrawablesCache:Ljava/util/WeakHashMap;
+Landroid/widget/SearchView;->mQueryHint:Ljava/lang/CharSequence;
+Landroid/widget/SearchView;->mQueryRefinement:Z
+Landroid/widget/SearchView;->mReleaseCursorRunnable:Ljava/lang/Runnable;
+Landroid/widget/SearchView;->mSearchable:Landroid/app/SearchableInfo;
+Landroid/widget/SearchView;->mSearchSrcTextViewBounds:Landroid/graphics/Rect;
+Landroid/widget/SearchView;->mSearchSrtTextViewBoundsExpanded:Landroid/graphics/Rect;
+Landroid/widget/SearchView;->mSubmitButtonEnabled:Z
+Landroid/widget/SearchView;->mSuggestionCommitIconResId:I
+Landroid/widget/SearchView;->mSuggestionRowLayout:I
+Landroid/widget/SearchView;->mTemp2:[I
+Landroid/widget/SearchView;->mTemp:[I
+Landroid/widget/SearchView;->mTextKeyListener:Landroid/view/View$OnKeyListener;
+Landroid/widget/SearchView;->mTextWatcher:Landroid/text/TextWatcher;
+Landroid/widget/SearchView;->mTouchDelegate:Landroid/widget/SearchView$UpdatableTouchDelegate;
+Landroid/widget/SearchView;->mUpdateDrawableStateRunnable:Ljava/lang/Runnable;
+Landroid/widget/SearchView;->mVoiceAppSearchIntent:Landroid/content/Intent;
+Landroid/widget/SearchView;->mVoiceWebSearchIntent:Landroid/content/Intent;
+Landroid/widget/SearchView;->onItemClicked(IILjava/lang/String;)Z
+Landroid/widget/SearchView;->onItemSelected(I)Z
+Landroid/widget/SearchView;->onQueryRefine(Ljava/lang/CharSequence;)V
+Landroid/widget/SearchView;->onSearchClicked()V
+Landroid/widget/SearchView;->onSubmitQuery()V
+Landroid/widget/SearchView;->onSuggestionsKey(Landroid/view/View;ILandroid/view/KeyEvent;)Z
+Landroid/widget/SearchView;->onTextChanged(Ljava/lang/CharSequence;)V
+Landroid/widget/SearchView;->onTextFocusChanged()V
+Landroid/widget/SearchView;->onVoiceClicked()V
+Landroid/widget/SearchView;->postUpdateFocusedState()V
+Landroid/widget/SearchView;->rewriteQueryFromSuggestion(I)V
+Landroid/widget/SearchView;->setAppSearchData(Landroid/os/Bundle;)V
+Landroid/widget/SearchView;->updateCloseButton()V
+Landroid/widget/SearchView;->updateFocusedState()V
+Landroid/widget/SearchView;->updateQueryHint()V
+Landroid/widget/SearchView;->updateSearchAutoComplete()V
+Landroid/widget/SearchView;->updateVoiceButton(Z)V
+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
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->endTextClassificationSession()V
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->getWidetType(Landroid/widget/TextView;)Ljava/lang/String;
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->getWordDelta(II)[I
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->hasActiveClassificationSession()Z
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->isEditTextLogger()Z
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->isWhitespace(II)Z
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->logSelectionAction(IIILandroid/view/textclassifier/TextClassification;)V
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->logSelectionModified(IILandroid/view/textclassifier/TextClassification;Landroid/view/textclassifier/TextSelection;)V
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->logSelectionStarted(Landroid/view/textclassifier/TextClassifier;Ljava/lang/CharSequence;II)V
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->mClassificationSession:Landroid/view/textclassifier/TextClassifier;
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->mEditTextLogger:Z
+Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->mStartIndex:I
+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
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->maybeInvalidateLogger()V
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->mDelayedLogAbandon:Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->mOriginalEnd:I
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->mOriginalStart:I
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->mSelectionEnd:I
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->mSelectionStart:I
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->mTextView:Landroid/widget/TextView;
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->onClassifiedSelection(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->onLinkSelected(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->onOriginalSelection(Ljava/lang/CharSequence;IIZ)V
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->onSelectionAction(IIILandroid/view/textclassifier/TextClassification;)V
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->onSelectionDestroyed()V
+Landroid/widget/SelectionActionModeHelper$SelectionTracker;->onSelectionUpdated(IILandroid/view/textclassifier/TextClassification;)V
+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;
+Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->mTextView:Landroid/widget/TextView;
+Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->mTimeOutDuration:I
+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;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->getTimeoutDuration()I
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->init(Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->isDarkLaunchEnabled()Z
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mContext:Landroid/content/Context;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mDefaultLocales:Landroid/os/LocaleList;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mHot:Z
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mLastClassificationLocales:Landroid/os/LocaleList;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mLastClassificationResult:Landroid/widget/SelectionActionModeHelper$SelectionResult;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mLastClassificationSelectionEnd:I
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mLastClassificationSelectionStart:I
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mLastClassificationText:Ljava/lang/CharSequence;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mRelativeEnd:I
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mRelativeStart:I
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mSelectionEnd:I
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mSelectionStart:I
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mText:Ljava/lang/String;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mTextClassifier:Ljava/util/function/Supplier;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mTrimmedText:Ljava/lang/CharSequence;
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->mTrimStart:I
+Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->performClassification(Landroid/view/textclassifier/TextSelection;)Landroid/widget/SelectionActionModeHelper$SelectionResult;
+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
+Landroid/widget/SelectionActionModeHelper;->convertSelectionToRectangles(Landroid/text/Layout;II)Ljava/util/List;
+Landroid/widget/SelectionActionModeHelper;->getActionType(I)I
+Landroid/widget/SelectionActionModeHelper;->getText(Landroid/widget/TextView;)Ljava/lang/CharSequence;
+Landroid/widget/SelectionActionModeHelper;->getTextClassification()Landroid/view/textclassifier/TextClassification;
+Landroid/widget/SelectionActionModeHelper;->getTextClassificationSettings()Landroid/view/textclassifier/TextClassificationConstants;
+Landroid/widget/SelectionActionModeHelper;->invalidateActionMode(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
+Landroid/widget/SelectionActionModeHelper;->invalidateActionModeAsync()V
+Landroid/widget/SelectionActionModeHelper;->isDrawingHighlight()Z
+Landroid/widget/SelectionActionModeHelper;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/SelectionActionModeHelper;->mEditor:Landroid/widget/Editor;
+Landroid/widget/SelectionActionModeHelper;->mergeRectangleIntoList(Ljava/util/List;Landroid/graphics/RectF;Ljava/util/function/Function;Ljava/util/function/Function;)V
+Landroid/widget/SelectionActionModeHelper;->movePointInsideNearestRectangle(Landroid/graphics/PointF;Ljava/util/List;Ljava/util/function/Function;)Landroid/graphics/PointF;
+Landroid/widget/SelectionActionModeHelper;->mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
+Landroid/widget/SelectionActionModeHelper;->mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
+Landroid/widget/SelectionActionModeHelper;->mTextClassification:Landroid/view/textclassifier/TextClassification;
+Landroid/widget/SelectionActionModeHelper;->mTextClassificationAsyncTask:Landroid/os/AsyncTask;
+Landroid/widget/SelectionActionModeHelper;->mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
+Landroid/widget/SelectionActionModeHelper;->mTextView:Landroid/widget/TextView;
+Landroid/widget/SelectionActionModeHelper;->onDestroyActionMode()V
+Landroid/widget/SelectionActionModeHelper;->onDraw(Landroid/graphics/Canvas;)V
+Landroid/widget/SelectionActionModeHelper;->onSelectionAction(I)V
+Landroid/widget/SelectionActionModeHelper;->onSelectionDrag()V
+Landroid/widget/SelectionActionModeHelper;->onTextChanged(II)V
+Landroid/widget/SelectionActionModeHelper;->resetSelection(I)Z
+Landroid/widget/SelectionActionModeHelper;->resetTextClassificationHelper()V
+Landroid/widget/SelectionActionModeHelper;->resetTextClassificationHelper(II)V
+Landroid/widget/SelectionActionModeHelper;->skipTextClassification()Z
+Landroid/widget/SelectionActionModeHelper;->startActionMode(ILandroid/widget/SelectionActionModeHelper$SelectionResult;)V
+Landroid/widget/SelectionActionModeHelper;->startLinkActionMode(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
+Landroid/widget/SelectionActionModeHelper;->startLinkActionModeAsync(II)V
+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
+Landroid/widget/ShareActionProvider;->mOnChooseActivityListener:Landroid/widget/ActivityChooserModel$OnChooseActivityListener;
+Landroid/widget/ShareActionProvider;->mOnMenuItemClickListener:Landroid/widget/ShareActionProvider$ShareMenuItemOnMenuItemClickListener;
+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;
+Landroid/widget/SimpleAdapter;->mDropDownResource:I
+Landroid/widget/SimpleAdapter;->mFilter:Landroid/widget/SimpleAdapter$SimpleFilter;
+Landroid/widget/SimpleAdapter;->mFrom:[Ljava/lang/String;
+Landroid/widget/SimpleAdapter;->mInflater:Landroid/view/LayoutInflater;
+Landroid/widget/SimpleAdapter;->mResource:I
+Landroid/widget/SimpleAdapter;->mTo:[I
+Landroid/widget/SimpleAdapter;->mUnfilteredData:Ljava/util/ArrayList;
+Landroid/widget/SimpleAdapter;->mViewBinder:Landroid/widget/SimpleAdapter$ViewBinder;
+Landroid/widget/SimpleCursorAdapter;->findColumns(Landroid/database/Cursor;[Ljava/lang/String;)V
+Landroid/widget/SimpleCursorAdapter;->mCursorToStringConverter:Landroid/widget/SimpleCursorAdapter$CursorToStringConverter;
+Landroid/widget/SimpleCursorAdapter;->mOriginalFrom:[Ljava/lang/String;
+Landroid/widget/SimpleCursorAdapter;->mStringConversionColumn:I
+Landroid/widget/SimpleCursorAdapter;->mViewBinder:Landroid/widget/SimpleCursorAdapter$ViewBinder;
+Landroid/widget/SimpleCursorTreeAdapter;->bindView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;[I[I)V
+Landroid/widget/SimpleCursorTreeAdapter;->init([Ljava/lang/String;[I[Ljava/lang/String;[I)V
+Landroid/widget/SimpleCursorTreeAdapter;->initFromColumns(Landroid/database/Cursor;[Ljava/lang/String;[I)V
+Landroid/widget/SimpleCursorTreeAdapter;->mChildFrom:[I
+Landroid/widget/SimpleCursorTreeAdapter;->mChildFromNames:[Ljava/lang/String;
+Landroid/widget/SimpleCursorTreeAdapter;->mChildTo:[I
+Landroid/widget/SimpleCursorTreeAdapter;->mGroupFrom:[I
+Landroid/widget/SimpleCursorTreeAdapter;->mGroupFromNames:[Ljava/lang/String;
+Landroid/widget/SimpleCursorTreeAdapter;->mGroupTo:[I
+Landroid/widget/SimpleCursorTreeAdapter;->mViewBinder:Landroid/widget/SimpleCursorTreeAdapter$ViewBinder;
+Landroid/widget/SimpleExpandableListAdapter;->bindView(Landroid/view/View;Ljava/util/Map;[Ljava/lang/String;[I)V
+Landroid/widget/SimpleExpandableListAdapter;->mChildData:Ljava/util/List;
+Landroid/widget/SimpleExpandableListAdapter;->mChildFrom:[Ljava/lang/String;
+Landroid/widget/SimpleExpandableListAdapter;->mChildLayout:I
+Landroid/widget/SimpleExpandableListAdapter;->mChildTo:[I
+Landroid/widget/SimpleExpandableListAdapter;->mCollapsedGroupLayout:I
+Landroid/widget/SimpleExpandableListAdapter;->mExpandedGroupLayout:I
+Landroid/widget/SimpleExpandableListAdapter;->mGroupData:Ljava/util/List;
+Landroid/widget/SimpleExpandableListAdapter;->mGroupFrom:[Ljava/lang/String;
+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
+Landroid/widget/SlidingDrawer;->closeDrawer()V
+Landroid/widget/SlidingDrawer;->COLLAPSED_FULL_CLOSED:I
+Landroid/widget/SlidingDrawer;->doAnimation()V
+Landroid/widget/SlidingDrawer;->EXPANDED_FULL_OPEN:I
+Landroid/widget/SlidingDrawer;->incrementAnimation()V
+Landroid/widget/SlidingDrawer;->mAllowSingleTap:Z
+Landroid/widget/SlidingDrawer;->mAnimatedAcceleration:F
+Landroid/widget/SlidingDrawer;->mAnimatedVelocity:F
+Landroid/widget/SlidingDrawer;->mAnimateOnClick:Z
+Landroid/widget/SlidingDrawer;->mAnimating:Z
+Landroid/widget/SlidingDrawer;->mAnimationLastTime:J
+Landroid/widget/SlidingDrawer;->mAnimationPosition:F
+Landroid/widget/SlidingDrawer;->MAXIMUM_ACCELERATION:F
+Landroid/widget/SlidingDrawer;->MAXIMUM_MAJOR_VELOCITY:F
+Landroid/widget/SlidingDrawer;->MAXIMUM_MINOR_VELOCITY:F
+Landroid/widget/SlidingDrawer;->MAXIMUM_TAP_VELOCITY:F
+Landroid/widget/SlidingDrawer;->mBottomOffset:I
+Landroid/widget/SlidingDrawer;->mContent:Landroid/view/View;
+Landroid/widget/SlidingDrawer;->mContentId:I
+Landroid/widget/SlidingDrawer;->mCurrentAnimationTime:J
+Landroid/widget/SlidingDrawer;->mExpanded:Z
+Landroid/widget/SlidingDrawer;->mFrame:Landroid/graphics/Rect;
+Landroid/widget/SlidingDrawer;->mHandle:Landroid/view/View;
+Landroid/widget/SlidingDrawer;->mHandleHeight:I
+Landroid/widget/SlidingDrawer;->mHandleId:I
+Landroid/widget/SlidingDrawer;->mHandleWidth:I
+Landroid/widget/SlidingDrawer;->mInvalidate:Landroid/graphics/Rect;
+Landroid/widget/SlidingDrawer;->mLocked:Z
+Landroid/widget/SlidingDrawer;->mMaximumAcceleration:I
+Landroid/widget/SlidingDrawer;->mMaximumMajorVelocity:I
+Landroid/widget/SlidingDrawer;->mMaximumMinorVelocity:I
+Landroid/widget/SlidingDrawer;->mMaximumTapVelocity:I
+Landroid/widget/SlidingDrawer;->mOnDrawerCloseListener:Landroid/widget/SlidingDrawer$OnDrawerCloseListener;
+Landroid/widget/SlidingDrawer;->mOnDrawerOpenListener:Landroid/widget/SlidingDrawer$OnDrawerOpenListener;
+Landroid/widget/SlidingDrawer;->mOnDrawerScrollListener:Landroid/widget/SlidingDrawer$OnDrawerScrollListener;
+Landroid/widget/SlidingDrawer;->moveHandle(I)V
+Landroid/widget/SlidingDrawer;->mSlidingRunnable:Ljava/lang/Runnable;
+Landroid/widget/SlidingDrawer;->mTapThreshold:I
+Landroid/widget/SlidingDrawer;->mVelocityUnits:I
+Landroid/widget/SlidingDrawer;->mVertical:Z
+Landroid/widget/SlidingDrawer;->openDrawer()V
+Landroid/widget/SlidingDrawer;->performFling(IFZZ)V
+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
+Landroid/widget/SmartSelectSprite$RectangleList;->generateOutlinePolygonPath(Ljava/util/List;)Landroid/graphics/Path;
+Landroid/widget/SmartSelectSprite$RectangleList;->getTotalWidth()I
+Landroid/widget/SmartSelectSprite$RectangleList;->mDisplayType:I
+Landroid/widget/SmartSelectSprite$RectangleList;->mOutlinePolygonPath:Landroid/graphics/Path;
+Landroid/widget/SmartSelectSprite$RectangleList;->mRectangles:Ljava/util/List;
+Landroid/widget/SmartSelectSprite$RectangleList;->mReversedRectangles:Ljava/util/List;
+Landroid/widget/SmartSelectSprite$RectangleList;->PROPERTY_LEFT_BOUNDARY:Ljava/lang/String;
+Landroid/widget/SmartSelectSprite$RectangleList;->PROPERTY_RIGHT_BOUNDARY:Ljava/lang/String;
+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
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->getCornerRadius()F
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->getRoundRatio()F
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->invert(I)I
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mBoundingRectangle:Landroid/graphics/RectF;
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mBoundingWidth:F
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mClipPath:Landroid/graphics/Path;
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mDrawRect:Landroid/graphics/RectF;
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mExpansionDirection:I
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mInverted:Z
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mLeftBoundary:F
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mRightBoundary:F
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->mRoundRatio:F
+Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->PROPERTY_ROUND_RATIO:Ljava/lang/String;
+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
+Landroid/widget/SmartSelectSprite;->CORNER_DURATION:I
+Landroid/widget/SmartSelectSprite;->createAnimator(Landroid/widget/SmartSelectSprite$RectangleList;FFLjava/util/List;Landroid/animation/ValueAnimator$AnimatorUpdateListener;Ljava/lang/Runnable;)Landroid/animation/Animator;
+Landroid/widget/SmartSelectSprite;->createCornerAnimator(Landroid/widget/SmartSelectSprite$RoundedRectangleShape;Landroid/animation/ValueAnimator$AnimatorUpdateListener;)Landroid/animation/ObjectAnimator;
+Landroid/widget/SmartSelectSprite;->draw(Landroid/graphics/Canvas;)V
+Landroid/widget/SmartSelectSprite;->EXPAND_DURATION:I
+Landroid/widget/SmartSelectSprite;->generateDirections(Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;Ljava/util/List;)[I
+Landroid/widget/SmartSelectSprite;->isAnimationActive()Z
+Landroid/widget/SmartSelectSprite;->mActiveAnimator:Landroid/animation/Animator;
+Landroid/widget/SmartSelectSprite;->mCornerInterpolator:Landroid/view/animation/Interpolator;
+Landroid/widget/SmartSelectSprite;->mExistingDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/SmartSelectSprite;->mExistingRectangleList:Landroid/widget/SmartSelectSprite$RectangleList;
+Landroid/widget/SmartSelectSprite;->mExpandInterpolator:Landroid/view/animation/Interpolator;
+Landroid/widget/SmartSelectSprite;->mFillColor:I
+Landroid/widget/SmartSelectSprite;->mInvalidator:Ljava/lang/Runnable;
+Landroid/widget/SmartSelectSprite;->RECTANGLE_COMPARATOR:Ljava/util/Comparator;
+Landroid/widget/SmartSelectSprite;->removeExistingDrawables()V
+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
+Landroid/widget/SpellChecker$SpellParser;->parse(II)V
+Landroid/widget/SpellChecker$SpellParser;->removeRangeSpan(Landroid/text/Editable;)V
+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
+Landroid/widget/SpellChecker;->closeSession()V
+Landroid/widget/SpellChecker;->createMisspelledSuggestionSpan(Landroid/text/Editable;Landroid/view/textservice/SuggestionsInfo;Landroid/text/style/SpellCheckSpan;II)V
+Landroid/widget/SpellChecker;->DBG:Z
+Landroid/widget/SpellChecker;->haveWordBoundariesChanged(Landroid/text/Editable;IIII)Z
+Landroid/widget/SpellChecker;->isSessionActive()Z
+Landroid/widget/SpellChecker;->MAX_NUMBER_OF_WORDS:I
+Landroid/widget/SpellChecker;->mCookie:I
+Landroid/widget/SpellChecker;->mCurrentLocale:Ljava/util/Locale;
+Landroid/widget/SpellChecker;->mIds:[I
+Landroid/widget/SpellChecker;->MIN_SENTENCE_LENGTH:I
+Landroid/widget/SpellChecker;->mIsSentenceSpellCheckSupported:Z
+Landroid/widget/SpellChecker;->mLength:I
+Landroid/widget/SpellChecker;->mSpanSequenceCounter:I
+Landroid/widget/SpellChecker;->mSpellCheckerSession:Landroid/view/textservice/SpellCheckerSession;
+Landroid/widget/SpellChecker;->mSpellCheckSpans:[Landroid/text/style/SpellCheckSpan;
+Landroid/widget/SpellChecker;->mSpellParsers:[Landroid/widget/SpellChecker$SpellParser;
+Landroid/widget/SpellChecker;->mSpellRunnable:Ljava/lang/Runnable;
+Landroid/widget/SpellChecker;->mSuggestionSpanCache:Landroid/util/LruCache;
+Landroid/widget/SpellChecker;->mTextServicesManager:Landroid/view/textservice/TextServicesManager;
+Landroid/widget/SpellChecker;->mTextView:Landroid/widget/TextView;
+Landroid/widget/SpellChecker;->mWordIterator:Landroid/text/method/WordIterator;
+Landroid/widget/SpellChecker;->nextSpellCheckSpanIndex()I
+Landroid/widget/SpellChecker;->onGetSuggestionsInternal(Landroid/view/textservice/SuggestionsInfo;II)Landroid/text/style/SpellCheckSpan;
+Landroid/widget/SpellChecker;->onSelectionChanged()V
+Landroid/widget/SpellChecker;->onSpellCheckSpanRemoved(Landroid/text/style/SpellCheckSpan;)V
+Landroid/widget/SpellChecker;->resetSession()V
+Landroid/widget/SpellChecker;->scheduleNewSpellCheck()V
+Landroid/widget/SpellChecker;->setLocale(Ljava/util/Locale;)V
+Landroid/widget/SpellChecker;->spellCheck()V
+Landroid/widget/SpellChecker;->spellCheck(II)V
+Landroid/widget/SpellChecker;->SPELL_PAUSE_DURATION:I
+Landroid/widget/SpellChecker;->SUGGESTION_SPAN_CACHE_SIZE:I
+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;
+Landroid/widget/Spinner$DialogPopup;->getHorizontalOffset()I
+Landroid/widget/Spinner$DialogPopup;->getVerticalOffset()I
+Landroid/widget/Spinner$DialogPopup;->mListAdapter:Landroid/widget/ListAdapter;
+Landroid/widget/Spinner$DialogPopup;->mPopup:Landroid/app/AlertDialog;
+Landroid/widget/Spinner$DialogPopup;->mPrompt:Ljava/lang/CharSequence;
+Landroid/widget/Spinner$DialogPopup;->setAdapter(Landroid/widget/ListAdapter;)V
+Landroid/widget/Spinner$DialogPopup;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/Spinner$DialogPopup;->setHorizontalOffset(I)V
+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;
+Landroid/widget/Spinner$SpinnerPopup;->getHorizontalOffset()I
+Landroid/widget/Spinner$SpinnerPopup;->getVerticalOffset()I
+Landroid/widget/Spinner$SpinnerPopup;->setAdapter(Landroid/widget/ListAdapter;)V
+Landroid/widget/Spinner$SpinnerPopup;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/Spinner$SpinnerPopup;->setHorizontalOffset(I)V
+Landroid/widget/Spinner$SpinnerPopup;->setPromptText(Ljava/lang/CharSequence;)V
+Landroid/widget/Spinner$SpinnerPopup;->setVerticalOffset(I)V
+Landroid/widget/Spinner$SpinnerPopup;->show(II)V
+Landroid/widget/Spinner;->layout(IZ)V
+Landroid/widget/Spinner;->makeView(IZ)Landroid/view/View;
+Landroid/widget/Spinner;->MAX_ITEMS_MEASURED:I
+Landroid/widget/Spinner;->mDisableChildrenWhenDisabled:Z
+Landroid/widget/Spinner;->mDropDownWidth:I
+Landroid/widget/Spinner;->measureContentWidth(Landroid/widget/SpinnerAdapter;Landroid/graphics/drawable/Drawable;)I
+Landroid/widget/Spinner;->mGravity:I
+Landroid/widget/Spinner;->MODE_THEME:I
+Landroid/widget/Spinner;->mPopupContext:Landroid/content/Context;
+Landroid/widget/Spinner;->mTempAdapter:Landroid/widget/SpinnerAdapter;
+Landroid/widget/Spinner;->mTempRect:Landroid/graphics/Rect;
+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;
+Landroid/widget/StackView$HolographicHelper;->createOutline(Landroid/view/View;II)Landroid/graphics/Bitmap;
+Landroid/widget/StackView$HolographicHelper;->createResOutline(Landroid/view/View;I)Landroid/graphics/Bitmap;
+Landroid/widget/StackView$HolographicHelper;->drawOutline(Landroid/graphics/Canvas;Landroid/graphics/Bitmap;)V
+Landroid/widget/StackView$HolographicHelper;->mBlurPaint:Landroid/graphics/Paint;
+Landroid/widget/StackView$HolographicHelper;->mCanvas:Landroid/graphics/Canvas;
+Landroid/widget/StackView$HolographicHelper;->mDensity:F
+Landroid/widget/StackView$HolographicHelper;->mErasePaint:Landroid/graphics/Paint;
+Landroid/widget/StackView$HolographicHelper;->mHolographicPaint:Landroid/graphics/Paint;
+Landroid/widget/StackView$HolographicHelper;->mIdentityMatrix:Landroid/graphics/Matrix;
+Landroid/widget/StackView$HolographicHelper;->mLargeBlurMaskFilter:Landroid/graphics/BlurMaskFilter;
+Landroid/widget/StackView$HolographicHelper;->mMaskCanvas:Landroid/graphics/Canvas;
+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
+Landroid/widget/StackView$LayoutParams;->invalidateGlobalRegion(Landroid/view/View;Landroid/graphics/Rect;)V
+Landroid/widget/StackView$LayoutParams;->invalidateRect:Landroid/graphics/Rect;
+Landroid/widget/StackView$LayoutParams;->invalidateRectf:Landroid/graphics/RectF;
+Landroid/widget/StackView$LayoutParams;->mView:Landroid/view/View;
+Landroid/widget/StackView$LayoutParams;->parentRect:Landroid/graphics/Rect;
+Landroid/widget/StackView$LayoutParams;->resetInvalidateRect()V
+Landroid/widget/StackView$LayoutParams;->setHorizontalOffset(I)V
+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
+Landroid/widget/StackView$StackFrame;->setSliderAnimator(Landroid/animation/ObjectAnimator;)V
+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
+Landroid/widget/StackView$StackSlider;->getDuration(ZF)F
+Landroid/widget/StackView$StackSlider;->getDurationForNeutralPosition()F
+Landroid/widget/StackView$StackSlider;->getDurationForNeutralPosition(F)F
+Landroid/widget/StackView$StackSlider;->getDurationForOffscreenPosition()F
+Landroid/widget/StackView$StackSlider;->getDurationForOffscreenPosition(F)F
+Landroid/widget/StackView$StackSlider;->getXProgress()F
+Landroid/widget/StackView$StackSlider;->getYProgress()F
+Landroid/widget/StackView$StackSlider;->highlightAlphaInterpolator(F)F
+Landroid/widget/StackView$StackSlider;->mMode:I
+Landroid/widget/StackView$StackSlider;->mView:Landroid/view/View;
+Landroid/widget/StackView$StackSlider;->mXProgress:F
+Landroid/widget/StackView$StackSlider;->mYProgress:F
+Landroid/widget/StackView$StackSlider;->NORMAL_MODE:I
+Landroid/widget/StackView$StackSlider;->rotationInterpolator(F)F
+Landroid/widget/StackView$StackSlider;->setMode(I)V
+Landroid/widget/StackView$StackSlider;->setView(Landroid/view/View;)V
+Landroid/widget/StackView$StackSlider;->setXProgress(F)V
+Landroid/widget/StackView$StackSlider;->setYProgress(F)V
+Landroid/widget/StackView$StackSlider;->viewAlphaInterpolator(F)F
+Landroid/widget/StackView;->applyTransformForChildAtIndex(Landroid/view/View;I)V
+Landroid/widget/StackView;->beginGestureIfNeeded(F)V
+Landroid/widget/StackView;->createOrReuseLayoutParams(Landroid/view/View;)Landroid/widget/StackView$LayoutParams;
+Landroid/widget/StackView;->DEFAULT_ANIMATION_DURATION:I
+Landroid/widget/StackView;->FRAME_PADDING:I
+Landroid/widget/StackView;->GESTURE_NONE:I
+Landroid/widget/StackView;->GESTURE_SLIDE_DOWN:I
+Landroid/widget/StackView;->GESTURE_SLIDE_UP:I
+Landroid/widget/StackView;->getFrameForChild()Landroid/widget/FrameLayout;
+Landroid/widget/StackView;->handlePointerUp(Landroid/view/MotionEvent;)V
+Landroid/widget/StackView;->hideTapFeedback(Landroid/view/View;)V
+Landroid/widget/StackView;->initStackView()V
+Landroid/widget/StackView;->INVALID_POINTER:I
+Landroid/widget/StackView;->ITEMS_SLIDE_DOWN:I
+Landroid/widget/StackView;->ITEMS_SLIDE_UP:I
+Landroid/widget/StackView;->mActivePointerId:I
+Landroid/widget/StackView;->mClickColor:I
+Landroid/widget/StackView;->mClickFeedback:Landroid/widget/ImageView;
+Landroid/widget/StackView;->mClickFeedbackIsValid:Z
+Landroid/widget/StackView;->measureChildren()V
+Landroid/widget/StackView;->mFirstLayoutHappened:Z
+Landroid/widget/StackView;->mFramePadding:I
+Landroid/widget/StackView;->mHighlight:Landroid/widget/ImageView;
+Landroid/widget/StackView;->MINIMUM_ANIMATION_DURATION:I
+Landroid/widget/StackView;->mInitialX:F
+Landroid/widget/StackView;->mInitialY:F
+Landroid/widget/StackView;->MIN_TIME_BETWEEN_INTERACTION_AND_AUTOADVANCE:I
+Landroid/widget/StackView;->MIN_TIME_BETWEEN_SCROLLS:J
+Landroid/widget/StackView;->mLastInteractionTime:J
+Landroid/widget/StackView;->mLastScrollTime:J
+Landroid/widget/StackView;->mMaximumVelocity:I
+Landroid/widget/StackView;->mNewPerspectiveShiftX:F
+Landroid/widget/StackView;->mNewPerspectiveShiftY:F
+Landroid/widget/StackView;->mPerspectiveShiftX:F
+Landroid/widget/StackView;->mPerspectiveShiftY:F
+Landroid/widget/StackView;->mResOutColor:I
+Landroid/widget/StackView;->mSlideAmount:I
+Landroid/widget/StackView;->mStackMode:I
+Landroid/widget/StackView;->mStackSlider:Landroid/widget/StackView$StackSlider;
+Landroid/widget/StackView;->mSwipeGestureType:I
+Landroid/widget/StackView;->mSwipeThreshold:I
+Landroid/widget/StackView;->mTouchRect:Landroid/graphics/Rect;
+Landroid/widget/StackView;->mTouchSlop:I
+Landroid/widget/StackView;->mTransitionIsSetup:Z
+Landroid/widget/StackView;->mVelocityTracker:Landroid/view/VelocityTracker;
+Landroid/widget/StackView;->mYVelocity:I
+Landroid/widget/StackView;->NUM_ACTIVE_VIEWS:I
+Landroid/widget/StackView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/StackView;->onLayout()V
+Landroid/widget/StackView;->onSecondaryPointerUp(Landroid/view/MotionEvent;)V
+Landroid/widget/StackView;->pacedScroll(Z)V
+Landroid/widget/StackView;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/StackView;->PERSPECTIVE_SCALE_FACTOR:F
+Landroid/widget/StackView;->PERSPECTIVE_SHIFT_FACTOR_X:F
+Landroid/widget/StackView;->PERSPECTIVE_SHIFT_FACTOR_Y:F
+Landroid/widget/StackView;->setupStackSlider(Landroid/view/View;I)V
+Landroid/widget/StackView;->sHolographicHelper:Landroid/widget/StackView$HolographicHelper;
+Landroid/widget/StackView;->showOnly(IZ)V
+Landroid/widget/StackView;->showTapFeedback(Landroid/view/View;)V
+Landroid/widget/StackView;->SLIDE_UP_RATIO:F
+Landroid/widget/StackView;->stackInvalidateRect:Landroid/graphics/Rect;
+Landroid/widget/StackView;->STACK_RELAYOUT_DURATION:I
+Landroid/widget/StackView;->SWIPE_THRESHOLD_RATIO:F
+Landroid/widget/StackView;->TAG:Ljava/lang/String;
+Landroid/widget/StackView;->transformViewAtIndex(ILandroid/view/View;Z)V
+Landroid/widget/StackView;->transformViewForTransition(IILandroid/view/View;Z)V
+Landroid/widget/StackView;->updateChildTransforms()V
+Landroid/widget/StackView;->updateClickFeedback()V
+Landroid/widget/Switch;->animateThumbToCheckedState(Z)V
+Landroid/widget/Switch;->applyThumbTint()V
+Landroid/widget/Switch;->applyTrackTint()V
+Landroid/widget/Switch;->cancelSuperTouch(Landroid/view/MotionEvent;)V
+Landroid/widget/Switch;->CHECKED_STATE_SET:[I
+Landroid/widget/Switch;->getTargetCheckedState()Z
+Landroid/widget/Switch;->getThumbOffset()I
+Landroid/widget/Switch;->getThumbScrollRange()I
+Landroid/widget/Switch;->hitThumb(FF)Z
+Landroid/widget/Switch;->makeLayout(Ljava/lang/CharSequence;)Landroid/text/Layout;
+Landroid/widget/Switch;->mHasThumbTint:Z
+Landroid/widget/Switch;->mHasThumbTintMode:Z
+Landroid/widget/Switch;->mHasTrackTint:Z
+Landroid/widget/Switch;->mHasTrackTintMode:Z
+Landroid/widget/Switch;->mMinFlingVelocity:I
+Landroid/widget/Switch;->MONOSPACE:I
+Landroid/widget/Switch;->mPositionAnimator:Landroid/animation/ObjectAnimator;
+Landroid/widget/Switch;->mShowText:Z
+Landroid/widget/Switch;->mSplitTrack:Z
+Landroid/widget/Switch;->mSwitchBottom:I
+Landroid/widget/Switch;->mSwitchLeft:I
+Landroid/widget/Switch;->mSwitchPadding:I
+Landroid/widget/Switch;->mSwitchRight:I
+Landroid/widget/Switch;->mSwitchTop:I
+Landroid/widget/Switch;->mSwitchTransformationMethod:Landroid/text/method/TransformationMethod2;
+Landroid/widget/Switch;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/Switch;->mTextColors:Landroid/content/res/ColorStateList;
+Landroid/widget/Switch;->mTextOff:Ljava/lang/CharSequence;
+Landroid/widget/Switch;->mTextOn:Ljava/lang/CharSequence;
+Landroid/widget/Switch;->mTextPaint:Landroid/text/TextPaint;
+Landroid/widget/Switch;->mThumbPosition:F
+Landroid/widget/Switch;->mThumbTextPadding:I
+Landroid/widget/Switch;->mThumbTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/Switch;->mThumbTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/Switch;->mTouchMode:I
+Landroid/widget/Switch;->mTouchSlop:I
+Landroid/widget/Switch;->mTouchX:F
+Landroid/widget/Switch;->mTouchY:F
+Landroid/widget/Switch;->mTrackTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/Switch;->mTrackTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/Switch;->mUseFallbackLineSpacing:Z
+Landroid/widget/Switch;->mVelocityTracker:Landroid/view/VelocityTracker;
+Landroid/widget/Switch;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/Switch;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/Switch;->onProvideAutoFillStructureForAssistOrAutofill(Landroid/view/ViewStructure;)V
+Landroid/widget/Switch;->SANS:I
+Landroid/widget/Switch;->SERIF:I
+Landroid/widget/Switch;->setSwitchTypefaceByIndex(II)V
+Landroid/widget/Switch;->stopDrag(Landroid/view/MotionEvent;)V
+Landroid/widget/Switch;->THUMB_ANIMATION_DURATION:I
+Landroid/widget/Switch;->THUMB_POS:Landroid/util/FloatProperty;
+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
+Landroid/widget/TabHost;->initTabHost()V
+Landroid/widget/TabHost;->invokeOnTabChangeListener()V
+Landroid/widget/TabHost;->mCurrentView:Landroid/view/View;
+Landroid/widget/TabHost;->mLocalActivityManager:Landroid/app/LocalActivityManager;
+Landroid/widget/TabHost;->mTabContent:Landroid/widget/FrameLayout;
+Landroid/widget/TabHost;->mTabKeyListener:Landroid/view/View$OnKeyListener;
+Landroid/widget/TabHost;->mTabLayoutId:I
+Landroid/widget/TabHost;->mTabWidget:Landroid/widget/TabWidget;
+Landroid/widget/TabHost;->sendAccessibilityEventInternal(I)V
+Landroid/widget/TabHost;->TABWIDGET_LOCATION_BOTTOM:I
+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
+Landroid/widget/TableLayout;->mCollapsedColumns:Landroid/util/SparseBooleanArray;
+Landroid/widget/TableLayout;->measureChildBeforeLayout(Landroid/view/View;IIIII)V
+Landroid/widget/TableLayout;->measureVertical(II)V
+Landroid/widget/TableLayout;->mInitialized:Z
+Landroid/widget/TableLayout;->mMaxWidths:[I
+Landroid/widget/TableLayout;->mPassThroughListener:Landroid/widget/TableLayout$PassThroughHierarchyChangeListener;
+Landroid/widget/TableLayout;->mShrinkableColumns:Landroid/util/SparseBooleanArray;
+Landroid/widget/TableLayout;->mShrinkAllColumns:Z
+Landroid/widget/TableLayout;->mStretchableColumns:Landroid/util/SparseBooleanArray;
+Landroid/widget/TableLayout;->mStretchAllColumns:Z
+Landroid/widget/TableLayout;->mutateColumnsWidth(Landroid/util/SparseBooleanArray;ZII)V
+Landroid/widget/TableLayout;->parseColumns(Ljava/lang/String;)Landroid/util/SparseBooleanArray;
+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
+Landroid/widget/TableRow$LayoutParams;->LOCATION:I
+Landroid/widget/TableRow$LayoutParams;->LOCATION_NEXT:I
+Landroid/widget/TableRow$LayoutParams;->mOffset:[I
+Landroid/widget/TableRow;->getChildrenSkipCount(Landroid/view/View;I)I
+Landroid/widget/TableRow;->getColumnsWidths(II)[I
+Landroid/widget/TableRow;->getLocationOffset(Landroid/view/View;)I
+Landroid/widget/TableRow;->getNextLocationOffset(Landroid/view/View;)I
+Landroid/widget/TableRow;->initTableRow()V
+Landroid/widget/TableRow;->mapIndexAndColumns()V
+Landroid/widget/TableRow;->mChildrenTracker:Landroid/widget/TableRow$ChildrenTracker;
+Landroid/widget/TableRow;->mColumnToChildIndex:Landroid/util/SparseIntArray;
+Landroid/widget/TableRow;->mColumnWidths:[I
+Landroid/widget/TableRow;->mConstrainedColumnWidths:[I
+Landroid/widget/TableRow;->measureChildBeforeLayout(Landroid/view/View;IIIII)V
+Landroid/widget/TableRow;->measureNullChild(I)I
+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
+Landroid/widget/TabWidget;->measureHorizontal(II)V
+Landroid/widget/TabWidget;->mImposedTabsHeight:I
+Landroid/widget/TabWidget;->mImposedTabWidths:[I
+Landroid/widget/TabWidget;->mLeftStrip:Landroid/graphics/drawable/Drawable;
+Landroid/widget/TabWidget;->mRightStrip:Landroid/graphics/drawable/Drawable;
+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
+Landroid/widget/TextClock;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/TextClock;->init()V
+Landroid/widget/TextClock;->mDescFormat12:Ljava/lang/CharSequence;
+Landroid/widget/TextClock;->mDescFormat24:Ljava/lang/CharSequence;
+Landroid/widget/TextClock;->mDescFormat:Ljava/lang/CharSequence;
+Landroid/widget/TextClock;->mFormat12:Ljava/lang/CharSequence;
+Landroid/widget/TextClock;->mFormat24:Ljava/lang/CharSequence;
+Landroid/widget/TextClock;->mFormat:Ljava/lang/CharSequence;
+Landroid/widget/TextClock;->mFormatChangeObserver:Landroid/database/ContentObserver;
+Landroid/widget/TextClock;->mHasSeconds:Z
+Landroid/widget/TextClock;->mIntentReceiver:Landroid/content/BroadcastReceiver;
+Landroid/widget/TextClock;->mRegistered:Z
+Landroid/widget/TextClock;->mShouldRunTicker:Z
+Landroid/widget/TextClock;->mShowCurrentUserTime:Z
+Landroid/widget/TextClock;->mStopTicking:Z
+Landroid/widget/TextClock;->mTicker:Ljava/lang/Runnable;
+Landroid/widget/TextClock;->mTime:Ljava/util/Calendar;
+Landroid/widget/TextClock;->mTimeZone:Ljava/lang/String;
+Landroid/widget/TextClock;->refresh()V
+Landroid/widget/TextClock;->registerObserver()V
+Landroid/widget/TextClock;->registerReceiver()V
+Landroid/widget/TextClock;->setContentDescriptionFormat12Hour(Ljava/lang/CharSequence;)V
+Landroid/widget/TextClock;->setContentDescriptionFormat24Hour(Ljava/lang/CharSequence;)V
+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
+Landroid/widget/TextInputTimePickerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/widget/TextInputTimePickerView;->AM:I
+Landroid/widget/TextInputTimePickerView;->AMPM:I
+Landroid/widget/TextInputTimePickerView;->getHourOfDayFromLocalizedHour(I)I
+Landroid/widget/TextInputTimePickerView;->HOURS:I
+Landroid/widget/TextInputTimePickerView;->isValidLocalizedHour(I)Z
+Landroid/widget/TextInputTimePickerView;->mAmPmSpinner:Landroid/widget/Spinner;
+Landroid/widget/TextInputTimePickerView;->mErrorLabel:Landroid/widget/TextView;
+Landroid/widget/TextInputTimePickerView;->mErrorShowing:Z
+Landroid/widget/TextInputTimePickerView;->mHourEditText:Landroid/widget/EditText;
+Landroid/widget/TextInputTimePickerView;->mHourFormatStartsAtZero:Z
+Landroid/widget/TextInputTimePickerView;->mHourLabel:Landroid/widget/TextView;
+Landroid/widget/TextInputTimePickerView;->mInputSeparatorView:Landroid/widget/TextView;
+Landroid/widget/TextInputTimePickerView;->MINUTES:I
+Landroid/widget/TextInputTimePickerView;->mIs24Hour:Z
+Landroid/widget/TextInputTimePickerView;->mListener:Landroid/widget/TextInputTimePickerView$OnValueTypedListener;
+Landroid/widget/TextInputTimePickerView;->mMinuteEditText:Landroid/widget/EditText;
+Landroid/widget/TextInputTimePickerView;->mMinuteLabel:Landroid/widget/TextView;
+Landroid/widget/TextInputTimePickerView;->parseAndSetHourInternal(Ljava/lang/String;)Z
+Landroid/widget/TextInputTimePickerView;->parseAndSetMinuteInternal(Ljava/lang/String;)Z
+Landroid/widget/TextInputTimePickerView;->PM:I
+Landroid/widget/TextInputTimePickerView;->setError(Z)V
+Landroid/widget/TextInputTimePickerView;->setHourFormat(I)V
+Landroid/widget/TextInputTimePickerView;->setListener(Landroid/widget/TextInputTimePickerView$OnValueTypedListener;)V
+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
+Landroid/widget/TextView$CharWrapper;->getTextRunAdvances(IIIIZ[FILandroid/graphics/Paint;)F
+Landroid/widget/TextView$CharWrapper;->getTextRunCursor(IIIIILandroid/graphics/Paint;)I
+Landroid/widget/TextView$CharWrapper;->getTextWidths(II[FLandroid/graphics/Paint;)I
+Landroid/widget/TextView$CharWrapper;->mChars:[C
+Landroid/widget/TextView$CharWrapper;->measureText(IILandroid/graphics/Paint;)F
+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
+Landroid/widget/TextView$Drawables;->DRAWABLE_LEFT:I
+Landroid/widget/TextView$Drawables;->DRAWABLE_NONE:I
+Landroid/widget/TextView$Drawables;->DRAWABLE_RIGHT:I
+Landroid/widget/TextView$Drawables;->hasMetadata()Z
+Landroid/widget/TextView$Drawables;->LEFT:I
+Landroid/widget/TextView$Drawables;->mCompoundRect:Landroid/graphics/Rect;
+Landroid/widget/TextView$Drawables;->mDrawableEnd:Landroid/graphics/drawable/Drawable;
+Landroid/widget/TextView$Drawables;->mDrawableError:Landroid/graphics/drawable/Drawable;
+Landroid/widget/TextView$Drawables;->mDrawableHeightEnd:I
+Landroid/widget/TextView$Drawables;->mDrawableHeightError:I
+Landroid/widget/TextView$Drawables;->mDrawableHeightLeft:I
+Landroid/widget/TextView$Drawables;->mDrawableHeightRight:I
+Landroid/widget/TextView$Drawables;->mDrawableHeightStart:I
+Landroid/widget/TextView$Drawables;->mDrawableHeightTemp:I
+Landroid/widget/TextView$Drawables;->mDrawableLeftInitial:Landroid/graphics/drawable/Drawable;
+Landroid/widget/TextView$Drawables;->mDrawablePadding:I
+Landroid/widget/TextView$Drawables;->mDrawableRightInitial:Landroid/graphics/drawable/Drawable;
+Landroid/widget/TextView$Drawables;->mDrawableSaved:I
+Landroid/widget/TextView$Drawables;->mDrawableSizeBottom:I
+Landroid/widget/TextView$Drawables;->mDrawableSizeEnd:I
+Landroid/widget/TextView$Drawables;->mDrawableSizeError:I
+Landroid/widget/TextView$Drawables;->mDrawableSizeLeft:I
+Landroid/widget/TextView$Drawables;->mDrawableSizeRight:I
+Landroid/widget/TextView$Drawables;->mDrawableSizeStart:I
+Landroid/widget/TextView$Drawables;->mDrawableSizeTemp:I
+Landroid/widget/TextView$Drawables;->mDrawableSizeTop:I
+Landroid/widget/TextView$Drawables;->mDrawableStart:Landroid/graphics/drawable/Drawable;
+Landroid/widget/TextView$Drawables;->mDrawableTemp:Landroid/graphics/drawable/Drawable;
+Landroid/widget/TextView$Drawables;->mDrawableWidthBottom:I
+Landroid/widget/TextView$Drawables;->mDrawableWidthTop:I
+Landroid/widget/TextView$Drawables;->mHasTint:Z
+Landroid/widget/TextView$Drawables;->mHasTintMode:Z
+Landroid/widget/TextView$Drawables;->mIsRtlCompatibilityMode:Z
+Landroid/widget/TextView$Drawables;->mOverride:Z
+Landroid/widget/TextView$Drawables;->mShowing:[Landroid/graphics/drawable/Drawable;
+Landroid/widget/TextView$Drawables;->mTintList:Landroid/content/res/ColorStateList;
+Landroid/widget/TextView$Drawables;->mTintMode:Landroid/graphics/PorterDuff$Mode;
+Landroid/widget/TextView$Drawables;->resolveWithLayoutDirection(I)Z
+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
+Landroid/widget/TextView$Marquee;->getScroll()F
+Landroid/widget/TextView$Marquee;->isRunning()Z
+Landroid/widget/TextView$Marquee;->isStopped()Z
+Landroid/widget/TextView$Marquee;->MARQUEE_DELAY:I
+Landroid/widget/TextView$Marquee;->MARQUEE_DELTA_MAX:F
+Landroid/widget/TextView$Marquee;->MARQUEE_DP_PER_SECOND:I
+Landroid/widget/TextView$Marquee;->MARQUEE_RUNNING:B
+Landroid/widget/TextView$Marquee;->MARQUEE_STARTING:B
+Landroid/widget/TextView$Marquee;->MARQUEE_STOPPED:B
+Landroid/widget/TextView$Marquee;->mChoreographer:Landroid/view/Choreographer;
+Landroid/widget/TextView$Marquee;->mFadeStop:F
+Landroid/widget/TextView$Marquee;->mGhostOffset:F
+Landroid/widget/TextView$Marquee;->mGhostStart:F
+Landroid/widget/TextView$Marquee;->mLastAnimationMs:J
+Landroid/widget/TextView$Marquee;->mMaxFadeScroll:F
+Landroid/widget/TextView$Marquee;->mMaxScroll:F
+Landroid/widget/TextView$Marquee;->mPixelsPerMs:F
+Landroid/widget/TextView$Marquee;->mRepeatLimit:I
+Landroid/widget/TextView$Marquee;->mRestartCallback:Landroid/view/Choreographer$FrameCallback;
+Landroid/widget/TextView$Marquee;->mScroll:F
+Landroid/widget/TextView$Marquee;->mStartCallback:Landroid/view/Choreographer$FrameCallback;
+Landroid/widget/TextView$Marquee;->mStatus:B
+Landroid/widget/TextView$Marquee;->mTickCallback:Landroid/view/Choreographer$FrameCallback;
+Landroid/widget/TextView$Marquee;->mView:Ljava/lang/ref/WeakReference;
+Landroid/widget/TextView$Marquee;->resetScroll()V
+Landroid/widget/TextView$Marquee;->shouldDrawGhost()Z
+Landroid/widget/TextView$Marquee;->shouldDrawLeftFade()Z
+Landroid/widget/TextView$Marquee;->start(I)V
+Landroid/widget/TextView$Marquee;->stop()V
+Landroid/widget/TextView$Marquee;->tick()V
+Landroid/widget/TextView$SavedState;-><init>(Landroid/os/Parcel;)V
+Landroid/widget/TextView$SavedState;-><init>(Landroid/os/Parcelable;)V
+Landroid/widget/TextView$SavedState;->editorState:Landroid/os/ParcelableParcel;
+Landroid/widget/TextView$SavedState;->error:Ljava/lang/CharSequence;
+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
+Landroid/widget/TextView$TextAppearanceAttributes;->mFallbackLineSpacing:Z
+Landroid/widget/TextView$TextAppearanceAttributes;->mFontFamily:Ljava/lang/String;
+Landroid/widget/TextView$TextAppearanceAttributes;->mFontFamilyExplicit:Z
+Landroid/widget/TextView$TextAppearanceAttributes;->mFontFeatureSettings:Ljava/lang/String;
+Landroid/widget/TextView$TextAppearanceAttributes;->mFontTypeface:Landroid/graphics/Typeface;
+Landroid/widget/TextView$TextAppearanceAttributes;->mFontWeight:I
+Landroid/widget/TextView$TextAppearanceAttributes;->mHasElegant:Z
+Landroid/widget/TextView$TextAppearanceAttributes;->mHasFallbackLineSpacing:Z
+Landroid/widget/TextView$TextAppearanceAttributes;->mHasLetterSpacing:Z
+Landroid/widget/TextView$TextAppearanceAttributes;->mLetterSpacing:F
+Landroid/widget/TextView$TextAppearanceAttributes;->mShadowColor:I
+Landroid/widget/TextView$TextAppearanceAttributes;->mShadowDx:F
+Landroid/widget/TextView$TextAppearanceAttributes;->mShadowDy:F
+Landroid/widget/TextView$TextAppearanceAttributes;->mShadowRadius:F
+Landroid/widget/TextView$TextAppearanceAttributes;->mStyleIndex:I
+Landroid/widget/TextView$TextAppearanceAttributes;->mTextColor:Landroid/content/res/ColorStateList;
+Landroid/widget/TextView$TextAppearanceAttributes;->mTextColorHighlight:I
+Landroid/widget/TextView$TextAppearanceAttributes;->mTextColorHint:Landroid/content/res/ColorStateList;
+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
+Landroid/widget/TextView;->applyCompoundDrawableTint()V
+Landroid/widget/TextView;->applySingleLine(ZZZ)V
+Landroid/widget/TextView;->applyTextAppearance(Landroid/widget/TextView$TextAppearanceAttributes;)V
+Landroid/widget/TextView;->autoSizeText()V
+Landroid/widget/TextView;->canCopy()Z
+Landroid/widget/TextView;->canCut()Z
+Landroid/widget/TextView;->canMarquee()Z
+Landroid/widget/TextView;->canPasteAsPlainText()Z
+Landroid/widget/TextView;->canProcessText()Z
+Landroid/widget/TextView;->canRedo()Z
+Landroid/widget/TextView;->canRequestAutofill()Z
+Landroid/widget/TextView;->canSelectAllText()Z
+Landroid/widget/TextView;->canSelectText()Z
+Landroid/widget/TextView;->canShare()Z
+Landroid/widget/TextView;->canUndo()Z
+Landroid/widget/TextView;->changeListenerLocaleTo(Ljava/util/Locale;)V
+Landroid/widget/TextView;->CHANGE_WATCHER_PRIORITY:I
+Landroid/widget/TextView;->checkForResize()V
+Landroid/widget/TextView;->cleanupAutoSizePresetSizes([I)[I
+Landroid/widget/TextView;->clearAutoSizeConfiguration()V
+Landroid/widget/TextView;->convertFromViewportToContentCoordinates(Landroid/graphics/Rect;)V
+Landroid/widget/TextView;->convertToLocalHorizontalCoordinate(F)F
+Landroid/widget/TextView;->DEBUG_EXTRACT:Z
+Landroid/widget/TextView;->DECIMAL:I
+Landroid/widget/TextView;->DEFAULT_AUTO_SIZE_GRANULARITY_IN_PX:I
+Landroid/widget/TextView;->DEFAULT_AUTO_SIZE_MAX_TEXT_SIZE_IN_SP:I
+Landroid/widget/TextView;->DEFAULT_AUTO_SIZE_MIN_TEXT_SIZE_IN_SP:I
+Landroid/widget/TextView;->DEFAULT_TYPEFACE:I
+Landroid/widget/TextView;->desired(Landroid/text/Layout;)I
+Landroid/widget/TextView;->DEVICE_PROVISIONED_NO:I
+Landroid/widget/TextView;->DEVICE_PROVISIONED_UNKNOWN:I
+Landroid/widget/TextView;->DEVICE_PROVISIONED_YES:I
+Landroid/widget/TextView;->doKeyDown(ILandroid/view/KeyEvent;Landroid/view/KeyEvent;)I
+Landroid/widget/TextView;->ELLIPSIZE_END:I
+Landroid/widget/TextView;->ELLIPSIZE_MARQUEE:I
+Landroid/widget/TextView;->ELLIPSIZE_MIDDLE:I
+Landroid/widget/TextView;->ELLIPSIZE_NONE:I
+Landroid/widget/TextView;->ELLIPSIZE_NOT_SET:I
+Landroid/widget/TextView;->ELLIPSIZE_START:I
+Landroid/widget/TextView;->EMPTY_SPANNED:Landroid/text/Spanned;
+Landroid/widget/TextView;->EMS:I
+Landroid/widget/TextView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
+Landroid/widget/TextView;->ensureIterableTextForAccessibilitySelectable()V
+Landroid/widget/TextView;->findLargestTextSizeWhichFits(Landroid/graphics/RectF;)I
+Landroid/widget/TextView;->fixFocusableAndClickableSettings()V
+Landroid/widget/TextView;->FLOATING_TOOLBAR_SELECT_ALL_REFRESH_DELAY:I
+Landroid/widget/TextView;->getAccessibilitySelectionEnd()I
+Landroid/widget/TextView;->getAccessibilitySelectionStart()I
+Landroid/widget/TextView;->getBaselineOffset()I
+Landroid/widget/TextView;->getBottomVerticalOffset(Z)I
+Landroid/widget/TextView;->getBoxHeight(Landroid/text/Layout;)I
+Landroid/widget/TextView;->getCustomLocaleForKeyListenerOrNull()Ljava/util/Locale;
+Landroid/widget/TextView;->getDesiredHeight()I
+Landroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I
+Landroid/widget/TextView;->getEditorForTesting()Landroid/widget/Editor;
+Landroid/widget/TextView;->getFadeHeight(Z)I
+Landroid/widget/TextView;->getFadeTop(Z)I
+Landroid/widget/TextView;->getHorizontalFadingEdgeStrength(FF)F
+Landroid/widget/TextView;->getHorizontalOffsetForDrawables()I
+Landroid/widget/TextView;->getInterestingRect(Landroid/graphics/Rect;I)V
+Landroid/widget/TextView;->getIteratorForGranularity(I)Landroid/view/AccessibilityIterators$TextSegmentIterator;
+Landroid/widget/TextView;->getLineAtCoordinateUnclamped(F)I
+Landroid/widget/TextView;->getOffsetAtCoordinate(IF)I
+Landroid/widget/TextView;->getScaledTextSize()F
+Landroid/widget/TextView;->getSelectedText()Ljava/lang/String;
+Landroid/widget/TextView;->getSpellCheckerLocale()Ljava/util/Locale;
+Landroid/widget/TextView;->getTextClassificationSession()Landroid/view/textclassifier/TextClassifier;
+Landroid/widget/TextView;->getTextServicesLocale()Ljava/util/Locale;
+Landroid/widget/TextView;->getTypefaceStyle()I
+Landroid/widget/TextView;->getUndoManager()Landroid/content/UndoManager;
+Landroid/widget/TextView;->getWordIterator()Landroid/text/method/WordIterator;
+Landroid/widget/TextView;->handleBackInTextActionModeIfNeeded(Landroid/view/KeyEvent;)Z
+Landroid/widget/TextView;->handleClick(Landroid/view/textclassifier/TextLinks$TextLinkSpan;)Z
+Landroid/widget/TextView;->handleTextChanged(Ljava/lang/CharSequence;III)V
+Landroid/widget/TextView;->hasPasswordTransformationMethod()Z
+Landroid/widget/TextView;->hasSpannableText()Z
+Landroid/widget/TextView;->hideErrorIfUnchanged()V
+Landroid/widget/TextView;->hideFloatingToolbar(I)V
+Landroid/widget/TextView;->ID_ASSIST:I
+Landroid/widget/TextView;->ID_AUTOFILL:I
+Landroid/widget/TextView;->ID_COPY:I
+Landroid/widget/TextView;->ID_CUT:I
+Landroid/widget/TextView;->ID_PASTE:I
+Landroid/widget/TextView;->ID_PASTE_AS_PLAIN_TEXT:I
+Landroid/widget/TextView;->ID_REDO:I
+Landroid/widget/TextView;->ID_REPLACE:I
+Landroid/widget/TextView;->ID_SELECT_ALL:I
+Landroid/widget/TextView;->ID_SHARE:I
+Landroid/widget/TextView;->ID_UNDO:I
+Landroid/widget/TextView;->invalidateCursor()V
+Landroid/widget/TextView;->invalidateCursor(III)V
+Landroid/widget/TextView;->invalidateCursorPath()V
+Landroid/widget/TextView;->invalidateRegion(IIZ)V
+Landroid/widget/TextView;->isAccessibilitySelectionExtendable()Z
+Landroid/widget/TextView;->isAutofillable()Z
+Landroid/widget/TextView;->isAutoSizeEnabled()Z
+Landroid/widget/TextView;->isDeviceProvisioned()Z
+Landroid/widget/TextView;->isDirectionalNavigationKey(I)Z
+Landroid/widget/TextView;->isInBatchEditMode()Z
+Landroid/widget/TextView;->isInExtractedMode()Z
+Landroid/widget/TextView;->isMarqueeFadeEnabled()Z
+Landroid/widget/TextView;->isMultilineInputType(I)Z
+Landroid/widget/TextView;->isPasswordInputType(I)Z
+Landroid/widget/TextView;->isPositionVisible(FF)Z
+Landroid/widget/TextView;->isShowingHint()Z
+Landroid/widget/TextView;->isVisiblePasswordInputType(I)Z
+Landroid/widget/TextView;->KEY_DOWN_HANDLED_BY_KEY_LISTENER:I
+Landroid/widget/TextView;->KEY_DOWN_HANDLED_BY_MOVEMENT_METHOD:I
+Landroid/widget/TextView;->KEY_EVENT_HANDLED:I
+Landroid/widget/TextView;->KEY_EVENT_NOT_HANDLED:I
+Landroid/widget/TextView;->LOG_TAG:Ljava/lang/String;
+Landroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout;
+Landroid/widget/TextView;->MARQUEE_FADE_NORMAL:I
+Landroid/widget/TextView;->MARQUEE_FADE_SWITCH_SHOW_ELLIPSIS:I
+Landroid/widget/TextView;->MARQUEE_FADE_SWITCH_SHOW_FADE:I
+Landroid/widget/TextView;->mAutoLinkMask:I
+Landroid/widget/TextView;->mAutoSizeMaxTextSizeInPx:F
+Landroid/widget/TextView;->mAutoSizeMinTextSizeInPx:F
+Landroid/widget/TextView;->mAutoSizeStepGranularityInPx:F
+Landroid/widget/TextView;->mAutoSizeTextSizesInPx:[I
+Landroid/widget/TextView;->mAutoSizeTextType:I
+Landroid/widget/TextView;->mBreakStrategy:I
+Landroid/widget/TextView;->mCurrentSpellCheckerLocaleCache:Ljava/util/Locale;
+Landroid/widget/TextView;->mDeferScroll:I
+Landroid/widget/TextView;->mDeviceProvisionedState:I
+Landroid/widget/TextView;->mEllipsize:Landroid/text/TextUtils$TruncateAt;
+Landroid/widget/TextView;->mFilters:[Landroid/text/InputFilter;
+Landroid/widget/TextView;->mFreezesText:Z
+Landroid/widget/TextView;->mHasPresetAutoSizeValues:Z
+Landroid/widget/TextView;->mHighlightPath:Landroid/graphics/Path;
+Landroid/widget/TextView;->mHint:Ljava/lang/CharSequence;
+Landroid/widget/TextView;->mHintTextColor:Landroid/content/res/ColorStateList;
+Landroid/widget/TextView;->mHyphenationFrequency:I
+Landroid/widget/TextView;->mJustificationMode:I
+Landroid/widget/TextView;->mLastLayoutDirection:I
+Landroid/widget/TextView;->mLastScroll:J
+Landroid/widget/TextView;->mLastValueSentToAutofillManager:Ljava/lang/CharSequence;
+Landroid/widget/TextView;->mLinksClickable:Z
+Landroid/widget/TextView;->mLinkTextColor:Landroid/content/res/ColorStateList;
+Landroid/widget/TextView;->mListenerChanged:Z
+Landroid/widget/TextView;->mLocalesChanged:Z
+Landroid/widget/TextView;->mMarqueeRepeatLimit:I
+Landroid/widget/TextView;->mMovement:Landroid/text/method/MovementMethod;
+Landroid/widget/TextView;->mNeedsAutoSizeText:Z
+Landroid/widget/TextView;->MONOSPACE:I
+Landroid/widget/TextView;->mPrecomputed:Landroid/text/PrecomputedText;
+Landroid/widget/TextView;->mPreDrawListenerDetached:Z
+Landroid/widget/TextView;->mPreDrawRegistered:Z
+Landroid/widget/TextView;->mPreventDefaultMovement:Z
+Landroid/widget/TextView;->mScroller:Landroid/widget/Scroller;
+Landroid/widget/TextView;->mShadowColor:I
+Landroid/widget/TextView;->mSpannable:Landroid/text/Spannable;
+Landroid/widget/TextView;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/TextView;->mTempTextPaint:Landroid/text/TextPaint;
+Landroid/widget/TextView;->mTextClassificationSession:Landroid/view/textclassifier/TextClassifier;
+Landroid/widget/TextView;->mTextClassifier:Landroid/view/textclassifier/TextClassifier;
+Landroid/widget/TextView;->mTextColor:Landroid/content/res/ColorStateList;
+Landroid/widget/TextView;->mTextEditSuggestionContainerLayout:I
+Landroid/widget/TextView;->mTextEditSuggestionHighlightStyle:I
+Landroid/widget/TextView;->mTextEditSuggestionItemLayout:I
+Landroid/widget/TextView;->mTextId:I
+Landroid/widget/TextView;->mTextSetFromXmlOrResourceId:Z
+Landroid/widget/TextView;->mTransformation:Landroid/text/method/TransformationMethod;
+Landroid/widget/TextView;->MULTILINE_STATE_SET:[I
+Landroid/widget/TextView;->mUseFallbackLineSpacing:Z
+Landroid/widget/TextView;->mUseInternationalizedInput:Z
+Landroid/widget/TextView;->notifyAutoFillManagerAfterTextChangedIfNeeded()V
+Landroid/widget/TextView;->NO_FILTERS:[Landroid/text/InputFilter;
+Landroid/widget/TextView;->onActivityResult(IILandroid/content/Intent;)V
+Landroid/widget/TextView;->onDetachedFromWindowInternal()V
+Landroid/widget/TextView;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/TextView;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Landroid/widget/TextView;->onLocaleChanged()V
+Landroid/widget/TextView;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/TextView;->onProvideAutoStructureForAssistOrAutofill(Landroid/view/ViewStructure;Z)V
+Landroid/widget/TextView;->onResolveDrawables(I)V
+Landroid/widget/TextView;->parseDimensionArray(Landroid/content/res/TypedArray;)[I
+Landroid/widget/TextView;->paste(IIZ)V
+Landroid/widget/TextView;->performAccessibilityActionClick(Landroid/os/Bundle;)Z
+Landroid/widget/TextView;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
+Landroid/widget/TextView;->PIXELS:I
+Landroid/widget/TextView;->populateCharacterBounds(Landroid/view/inputmethod/CursorAnchorInfo$Builder;IIFF)V
+Landroid/widget/TextView;->preloadFontCache()V
+Landroid/widget/TextView;->prepareDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/TextView;->PROCESS_TEXT_REQUEST_CODE:I
+Landroid/widget/TextView;->readTextAppearance(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/widget/TextView$TextAppearanceAttributes;Z)V
+Landroid/widget/TextView;->registerForPreDraw()V
+Landroid/widget/TextView;->removeAdjacentSuggestionSpans(I)V
+Landroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V
+Landroid/widget/TextView;->removeMisspelledSpans(Landroid/text/Spannable;)V
+Landroid/widget/TextView;->removeParcelableSpans(Landroid/text/Spannable;II)V
+Landroid/widget/TextView;->removeSuggestionSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Landroid/widget/TextView;->replaceSelectionWithText(Ljava/lang/CharSequence;)V
+Landroid/widget/TextView;->replaceText_internal(IILjava/lang/CharSequence;)V
+Landroid/widget/TextView;->requestActionMode(Landroid/view/textclassifier/TextLinks$TextLinkSpan;)Z
+Landroid/widget/TextView;->requestAutofill()V
+Landroid/widget/TextView;->resetErrorChangedFlag()V
+Landroid/widget/TextView;->resetResolvedDrawables()V
+Landroid/widget/TextView;->resolveStyleAndSetTypeface(Landroid/graphics/Typeface;II)V
+Landroid/widget/TextView;->restartMarqueeIfNeeded()V
+Landroid/widget/TextView;->SANS:I
+Landroid/widget/TextView;->sAppearanceValues:Landroid/util/SparseIntArray;
+Landroid/widget/TextView;->selectAllText()Z
+Landroid/widget/TextView;->sendAccessibilityEventInternal(I)V
+Landroid/widget/TextView;->sendAccessibilityEventTypeViewTextChanged(Ljava/lang/CharSequence;III)V
+Landroid/widget/TextView;->sendAfterTextChanged(Landroid/text/Editable;)V
+Landroid/widget/TextView;->sendBeforeTextChanged(Ljava/lang/CharSequence;III)V
+Landroid/widget/TextView;->sendOnTextChanged(Ljava/lang/CharSequence;III)V
+Landroid/widget/TextView;->SERIF:I
+Landroid/widget/TextView;->setAccessibilitySelection(II)V
+Landroid/widget/TextView;->setCursorPosition_internal(II)V
+Landroid/widget/TextView;->setExtracting(Landroid/view/inputmethod/ExtractedTextRequest;)V
+Landroid/widget/TextView;->setFilters(Landroid/text/Editable;[Landroid/text/InputFilter;)V
+Landroid/widget/TextView;->setHintInternal(Ljava/lang/CharSequence;)V
+Landroid/widget/TextView;->setInputTypeFromEditor()V
+Landroid/widget/TextView;->setInputTypeSingleLine(Z)V
+Landroid/widget/TextView;->setKeyListenerOnly(Landroid/text/method/KeyListener;)V
+Landroid/widget/TextView;->setPrimaryClip(Landroid/content/ClipData;)Z
+Landroid/widget/TextView;->setRelativeDrawablesIfNeeded(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+Landroid/widget/TextView;->setSpan_internal(Ljava/lang/Object;III)V
+Landroid/widget/TextView;->setTextInternal(Ljava/lang/CharSequence;)V
+Landroid/widget/TextView;->setTextSizeInternal(IFZ)V
+Landroid/widget/TextView;->setTypefaceFromAttrs(Landroid/graphics/Typeface;Ljava/lang/String;III)V
+Landroid/widget/TextView;->setUndoManager(Landroid/content/UndoManager;Ljava/lang/String;)V
+Landroid/widget/TextView;->setupAutoSizeText()Z
+Landroid/widget/TextView;->setupAutoSizeUniformPresetSizes(Landroid/content/res/TypedArray;)V
+Landroid/widget/TextView;->setupAutoSizeUniformPresetSizesConfiguration()Z
+Landroid/widget/TextView;->shareSelectedText()V
+Landroid/widget/TextView;->shouldAdvanceFocusOnEnter()Z
+Landroid/widget/TextView;->shouldAdvanceFocusOnTab()Z
+Landroid/widget/TextView;->SIGNED:I
+Landroid/widget/TextView;->sLastCutCopyOrTextChangedTime:J
+Landroid/widget/TextView;->spanChange(Landroid/text/Spanned;Ljava/lang/Object;IIII)V
+Landroid/widget/TextView;->stopMarquee()V
+Landroid/widget/TextView;->suggestedSizeFitsInSpace(ILandroid/graphics/RectF;)Z
+Landroid/widget/TextView;->supportsAutoSizeText()Z
+Landroid/widget/TextView;->TEMP_POSITION:[F
+Landroid/widget/TextView;->TEMP_RECTF:Landroid/graphics/RectF;
+Landroid/widget/TextView;->textCanBeSelected()Z
+Landroid/widget/TextView;->UNKNOWN_BORING:Landroid/text/BoringLayout$Metrics;
+Landroid/widget/TextView;->unregisterForPreDraw()V
+Landroid/widget/TextView;->UNSET_AUTO_SIZE_UNIFORM_CONFIGURATION_VALUE:F
+Landroid/widget/TextView;->updateAfterEdit()V
+Landroid/widget/TextView;->updateTextColors()V
+Landroid/widget/TextView;->updateTextServicesLocaleAsync()V
+Landroid/widget/TextView;->useDynamicLayout()Z
+Landroid/widget/TextView;->usesNoOpTextClassifier()Z
+Landroid/widget/TextView;->validateAndSetAutoSizeTextTypeUniformConfiguration(FFF)V
+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
+Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
+Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->getCurrentItemShowing()I
+Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->getHour()I
+Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->getMinute()I
+Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->is24HourMode()Z
+Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->mCurrentItemShowing:I
+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;
+Landroid/widget/TimePicker$AbstractTimePickerDelegate;->mAutoFillChangeListener:Landroid/widget/TimePicker$OnTimeChangedListener;
+Landroid/widget/TimePicker$AbstractTimePickerDelegate;->mAutofilledValue:J
+Landroid/widget/TimePicker$AbstractTimePickerDelegate;->mContext:Landroid/content/Context;
+Landroid/widget/TimePicker$AbstractTimePickerDelegate;->mDelegator:Landroid/widget/TimePicker;
+Landroid/widget/TimePicker$AbstractTimePickerDelegate;->mLocale:Ljava/util/Locale;
+Landroid/widget/TimePicker$AbstractTimePickerDelegate;->mOnTimeChangedListener:Landroid/widget/TimePicker$OnTimeChangedListener;
+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;
+Landroid/widget/TimePicker$TimePickerDelegate;->getAutofillValue()Landroid/view/autofill/AutofillValue;
+Landroid/widget/TimePicker$TimePickerDelegate;->getBaseline()I
+Landroid/widget/TimePicker$TimePickerDelegate;->getHour()I
+Landroid/widget/TimePicker$TimePickerDelegate;->getHourView()Landroid/view/View;
+Landroid/widget/TimePicker$TimePickerDelegate;->getMinute()I
+Landroid/widget/TimePicker$TimePickerDelegate;->getMinuteView()Landroid/view/View;
+Landroid/widget/TimePicker$TimePickerDelegate;->getPmView()Landroid/view/View;
+Landroid/widget/TimePicker$TimePickerDelegate;->is24Hour()Z
+Landroid/widget/TimePicker$TimePickerDelegate;->isEnabled()Z
+Landroid/widget/TimePicker$TimePickerDelegate;->onPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+Landroid/widget/TimePicker$TimePickerDelegate;->onRestoreInstanceState(Landroid/os/Parcelable;)V
+Landroid/widget/TimePicker$TimePickerDelegate;->onSaveInstanceState(Landroid/os/Parcelable;)Landroid/os/Parcelable;
+Landroid/widget/TimePicker$TimePickerDelegate;->setAutoFillChangeListener(Landroid/widget/TimePicker$OnTimeChangedListener;)V
+Landroid/widget/TimePicker$TimePickerDelegate;->setDate(II)V
+Landroid/widget/TimePicker$TimePickerDelegate;->setEnabled(Z)V
+Landroid/widget/TimePicker$TimePickerDelegate;->setHour(I)V
+Landroid/widget/TimePicker$TimePickerDelegate;->setIs24Hour(Z)V
+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
+Landroid/widget/Toast$TN;->handleShow(Landroid/os/IBinder;)V
+Landroid/widget/Toast$TN;->hide()V
+Landroid/widget/Toast$TN;->HIDE:I
+Landroid/widget/Toast$TN;->LONG_DURATION_TIMEOUT:J
+Landroid/widget/Toast$TN;->mDuration:I
+Landroid/widget/Toast$TN;->mHandler:Landroid/os/Handler;
+Landroid/widget/Toast$TN;->mHorizontalMargin:F
+Landroid/widget/Toast$TN;->mPackageName:Ljava/lang/String;
+Landroid/widget/Toast$TN;->mVerticalMargin:F
+Landroid/widget/Toast$TN;->mWM:Landroid/view/WindowManager;
+Landroid/widget/Toast$TN;->mX:I
+Landroid/widget/Toast$TN;->SHORT_DURATION_TIMEOUT:J
+Landroid/widget/Toast$TN;->SHOW:I
+Landroid/widget/Toast$TN;->trySendAccessibilityEvent()V
+Landroid/widget/Toast;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+Landroid/widget/Toast;->localLOGV:Z
+Landroid/widget/Toast;->makeText(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
+Landroid/widget/Toast;->mContext:Landroid/content/Context;
+Landroid/widget/Toast;->mNextView:Landroid/view/View;
+Landroid/widget/Toast;->TAG:Ljava/lang/String;
+Landroid/widget/ToggleButton;->mDisabledAlpha:F
+Landroid/widget/ToggleButton;->mIndicatorDrawable:Landroid/graphics/drawable/Drawable;
+Landroid/widget/ToggleButton;->mTextOff:Ljava/lang/CharSequence;
+Landroid/widget/ToggleButton;->mTextOn:Ljava/lang/CharSequence;
+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
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->getId()I
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->getMenuView(Landroid/view/ViewGroup;)Lcom/android/internal/view/menu/MenuView;
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->mCurrentExpandedItem:Lcom/android/internal/view/menu/MenuItemImpl;
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->mMenu:Lcom/android/internal/view/menu/MenuBuilder;
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->onCloseMenu(Lcom/android/internal/view/menu/MenuBuilder;Z)V
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->onRestoreInstanceState(Landroid/os/Parcelable;)V
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->onSaveInstanceState()Landroid/os/Parcelable;
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->onSubMenuSelected(Lcom/android/internal/view/menu/SubMenuBuilder;)Z
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->setCallback(Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->updateMenuView(Z)V
+Landroid/widget/Toolbar$LayoutParams;->CUSTOM:I
+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;
+Landroid/widget/Toolbar$SavedState;->expandedMenuItemId:I
+Landroid/widget/Toolbar$SavedState;->isOverflowOpen:Z
+Landroid/widget/Toolbar;->addChildrenForExpandedActionView()V
+Landroid/widget/Toolbar;->addCustomViewsWithGravity(Ljava/util/List;I)V
+Landroid/widget/Toolbar;->addSystemView(Landroid/view/View;Z)V
+Landroid/widget/Toolbar;->canShowOverflowMenu()Z
+Landroid/widget/Toolbar;->ensureCollapseButtonView()V
+Landroid/widget/Toolbar;->ensureContentInsets()V
+Landroid/widget/Toolbar;->ensureLogoView()V
+Landroid/widget/Toolbar;->ensureMenu()V
+Landroid/widget/Toolbar;->ensureMenuView()V
+Landroid/widget/Toolbar;->ensureNavButtonView()V
+Landroid/widget/Toolbar;->getChildHorizontalGravity(I)I
+Landroid/widget/Toolbar;->getChildTop(Landroid/view/View;I)I
+Landroid/widget/Toolbar;->getChildVerticalGravity(I)I
+Landroid/widget/Toolbar;->getHorizontalMargins(Landroid/view/View;)I
+Landroid/widget/Toolbar;->getMenuInflater()Landroid/view/MenuInflater;
+Landroid/widget/Toolbar;->getOuterActionMenuPresenter()Landroid/widget/ActionMenuPresenter;
+Landroid/widget/Toolbar;->getPopupContext()Landroid/content/Context;
+Landroid/widget/Toolbar;->getVerticalMargins(Landroid/view/View;)I
+Landroid/widget/Toolbar;->getViewListMeasuredWidth(Ljava/util/List;[I)I
+Landroid/widget/Toolbar;->getWrapper()Lcom/android/internal/widget/DecorToolbar;
+Landroid/widget/Toolbar;->isChildOrHidden(Landroid/view/View;)Z
+Landroid/widget/Toolbar;->isCustomView(Landroid/view/View;)Z
+Landroid/widget/Toolbar;->isOverflowMenuShowPending()Z
+Landroid/widget/Toolbar;->isTitleTruncated()Z
+Landroid/widget/Toolbar;->layoutChildLeft(Landroid/view/View;I[II)I
+Landroid/widget/Toolbar;->layoutChildRight(Landroid/view/View;I[II)I
+Landroid/widget/Toolbar;->mActionMenuPresenterCallback:Lcom/android/internal/view/menu/MenuPresenter$Callback;
+Landroid/widget/Toolbar;->mButtonGravity:I
+Landroid/widget/Toolbar;->mCollapseButtonView:Landroid/widget/ImageButton;
+Landroid/widget/Toolbar;->mCollapseDescription:Ljava/lang/CharSequence;
+Landroid/widget/Toolbar;->mCollapseIcon:Landroid/graphics/drawable/Drawable;
+Landroid/widget/Toolbar;->mCollapsible:Z
+Landroid/widget/Toolbar;->mContentInsetEndWithActions:I
+Landroid/widget/Toolbar;->mContentInsets:Landroid/widget/RtlSpacingHelper;
+Landroid/widget/Toolbar;->mContentInsetStartWithNavigation:I
+Landroid/widget/Toolbar;->measureChildCollapseMargins(Landroid/view/View;IIII[I)I
+Landroid/widget/Toolbar;->measureChildConstrained(Landroid/view/View;IIIII)V
+Landroid/widget/Toolbar;->mEatingTouch:Z
+Landroid/widget/Toolbar;->mExpandedActionView:Landroid/view/View;
+Landroid/widget/Toolbar;->mExpandedMenuPresenter:Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;
+Landroid/widget/Toolbar;->mGravity:I
+Landroid/widget/Toolbar;->mHiddenViews:Ljava/util/ArrayList;
+Landroid/widget/Toolbar;->mLogoView:Landroid/widget/ImageView;
+Landroid/widget/Toolbar;->mMaxButtonHeight:I
+Landroid/widget/Toolbar;->mMenuBuilderCallback:Lcom/android/internal/view/menu/MenuBuilder$Callback;
+Landroid/widget/Toolbar;->mMenuView:Landroid/widget/ActionMenuView;
+Landroid/widget/Toolbar;->mMenuViewItemClickListener:Landroid/widget/ActionMenuView$OnMenuItemClickListener;
+Landroid/widget/Toolbar;->mNavButtonStyle:I
+Landroid/widget/Toolbar;->mOnMenuItemClickListener:Landroid/widget/Toolbar$OnMenuItemClickListener;
+Landroid/widget/Toolbar;->mOuterActionMenuPresenter:Landroid/widget/ActionMenuPresenter;
+Landroid/widget/Toolbar;->mPopupContext:Landroid/content/Context;
+Landroid/widget/Toolbar;->mPopupTheme:I
+Landroid/widget/Toolbar;->mShowOverflowMenuRunnable:Ljava/lang/Runnable;
+Landroid/widget/Toolbar;->mSubtitleText:Ljava/lang/CharSequence;
+Landroid/widget/Toolbar;->mSubtitleTextAppearance:I
+Landroid/widget/Toolbar;->mSubtitleTextColor:I
+Landroid/widget/Toolbar;->mSubtitleTextView:Landroid/widget/TextView;
+Landroid/widget/Toolbar;->mTempMargins:[I
+Landroid/widget/Toolbar;->mTempViews:Ljava/util/ArrayList;
+Landroid/widget/Toolbar;->mTitleText:Ljava/lang/CharSequence;
+Landroid/widget/Toolbar;->mTitleTextAppearance:I
+Landroid/widget/Toolbar;->mTitleTextColor:I
+Landroid/widget/Toolbar;->mWrapper:Lcom/android/internal/widget/ToolbarWidgetWrapper;
+Landroid/widget/Toolbar;->onSetLayoutParams(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+Landroid/widget/Toolbar;->postShowOverflowMenu()V
+Landroid/widget/Toolbar;->removeChildrenForExpandedActionView()V
+Landroid/widget/Toolbar;->setCollapsible(Z)V
+Landroid/widget/Toolbar;->setMenu(Lcom/android/internal/view/menu/MenuBuilder;Landroid/widget/ActionMenuPresenter;)V
+Landroid/widget/Toolbar;->setMenuCallbacks(Lcom/android/internal/view/menu/MenuPresenter$Callback;Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+Landroid/widget/Toolbar;->shouldCollapse()Z
+Landroid/widget/Toolbar;->shouldLayout(Landroid/view/View;)Z
+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
+Landroid/widget/VideoView2;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Landroid/widget/VideoView2;->getMediaControlView2()Landroid/widget/MediaControlView2;
+Landroid/widget/VideoView2;->getMediaMetadata()Landroid/media/MediaMetadata2;
+Landroid/widget/VideoView2;->getMediaSessionToken()Landroid/media/SessionToken2;
+Landroid/widget/VideoView2;->getViewType()I
+Landroid/widget/VideoView2;->isSubtitleEnabled()Z
+Landroid/widget/VideoView2;->setAudioAttributes(Landroid/media/AudioAttributes;)V
+Landroid/widget/VideoView2;->setAudioFocusRequest(I)V
+Landroid/widget/VideoView2;->setCustomActions(Ljava/util/List;Ljava/util/concurrent/Executor;Landroid/widget/VideoView2$OnCustomActionListener;)V
+Landroid/widget/VideoView2;->setDataSource(Landroid/media/DataSourceDesc;)V
+Landroid/widget/VideoView2;->setFullScreenRequestListener(Landroid/widget/VideoView2$OnFullScreenRequestListener;)V
+Landroid/widget/VideoView2;->setMediaControlView2(Landroid/widget/MediaControlView2;J)V
+Landroid/widget/VideoView2;->setMediaItem(Landroid/media/MediaItem2;)V
+Landroid/widget/VideoView2;->setMediaMetadata(Landroid/media/MediaMetadata2;)V
+Landroid/widget/VideoView2;->setSpeed(F)V
+Landroid/widget/VideoView2;->setSubtitleEnabled(Z)V
+Landroid/widget/VideoView2;->setVideoUri(Landroid/net/Uri;)V
+Landroid/widget/VideoView2;->setVideoUri(Landroid/net/Uri;Ljava/util/Map;)V
+Landroid/widget/VideoView2;->setViewType(I)V
+Landroid/widget/VideoView2;->VIEW_TYPE_SURFACEVIEW:I
+Landroid/widget/VideoView2;->VIEW_TYPE_TEXTUREVIEW:I
+Landroid/widget/VideoView;->attachMediaController()V
+Landroid/widget/VideoView;->getSubtitleLooper()Landroid/os/Looper;
+Landroid/widget/VideoView;->isInPlaybackState()Z
+Landroid/widget/VideoView;->mAudioAttributes:Landroid/media/AudioAttributes;
+Landroid/widget/VideoView;->mAudioFocusType:I
+Landroid/widget/VideoView;->mAudioManager:Landroid/media/AudioManager;
+Landroid/widget/VideoView;->mAudioSession:I
+Landroid/widget/VideoView;->mBufferingUpdateListener:Landroid/media/MediaPlayer$OnBufferingUpdateListener;
+Landroid/widget/VideoView;->mCanPause:Z
+Landroid/widget/VideoView;->mCanSeekBack:Z
+Landroid/widget/VideoView;->mCanSeekForward:Z
+Landroid/widget/VideoView;->mCompletionListener:Landroid/media/MediaPlayer$OnCompletionListener;
+Landroid/widget/VideoView;->measureAndLayoutSubtitleWidget()V
+Landroid/widget/VideoView;->mInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
+Landroid/widget/VideoView;->mOnCompletionListener:Landroid/media/MediaPlayer$OnCompletionListener;
+Landroid/widget/VideoView;->mOnErrorListener:Landroid/media/MediaPlayer$OnErrorListener;
+Landroid/widget/VideoView;->mOnInfoListener:Landroid/media/MediaPlayer$OnInfoListener;
+Landroid/widget/VideoView;->mOnPreparedListener:Landroid/media/MediaPlayer$OnPreparedListener;
+Landroid/widget/VideoView;->mPendingSubtitleTracks:Ljava/util/Vector;
+Landroid/widget/VideoView;->mSeekWhenPrepared:I
+Landroid/widget/VideoView;->mSizeChangedListener:Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
+Landroid/widget/VideoView;->mSubtitlesChangedListener:Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
+Landroid/widget/VideoView;->mSubtitleWidget:Landroid/media/SubtitleTrack$RenderingWidget;
+Landroid/widget/VideoView;->mSurfaceHeight:I
+Landroid/widget/VideoView;->mSurfaceWidth:I
+Landroid/widget/VideoView;->openVideo()V
+Landroid/widget/VideoView;->setSubtitleWidget(Landroid/media/SubtitleTrack$RenderingWidget;)V
+Landroid/widget/VideoView;->STATE_ERROR:I
+Landroid/widget/VideoView;->STATE_PAUSED:I
+Landroid/widget/VideoView;->STATE_PLAYBACK_COMPLETED:I
+Landroid/widget/VideoView;->STATE_PLAYING:I
+Landroid/widget/VideoView;->STATE_PREPARED:I
+Landroid/widget/VideoView;->STATE_PREPARING:I
+Landroid/widget/VideoView;->TAG:Ljava/lang/String;
+Landroid/widget/VideoView;->toggleMediaControlsVisiblity()V
+Landroid/widget/ViewAnimator;->initViewAnimator(Landroid/content/Context;Landroid/util/AttributeSet;)V
+Landroid/widget/ViewAnimator;->mAnimateFirstTime:Z
+Landroid/widget/ViewAnimator;->mInAnimation:Landroid/view/animation/Animation;
+Landroid/widget/ViewAnimator;->mOutAnimation:Landroid/view/animation/Animation;
+Landroid/widget/ViewAnimator;->showOnly(I)V
+Landroid/widget/ViewFlipper;->DEFAULT_INTERVAL:I
+Landroid/widget/ViewFlipper;->LOGD:Z
+Landroid/widget/ViewFlipper;->mAutoStart:Z
+Landroid/widget/ViewFlipper;->mFlipInterval:I
+Landroid/widget/ViewFlipper;->mFlipRunnable:Ljava/lang/Runnable;
+Landroid/widget/ViewFlipper;->mReceiver:Landroid/content/BroadcastReceiver;
+Landroid/widget/ViewFlipper;->mRunning:Z
+Landroid/widget/ViewFlipper;->mStarted:Z
+Landroid/widget/ViewFlipper;->mVisible:Z
+Landroid/widget/ViewFlipper;->TAG:Ljava/lang/String;
+Landroid/widget/ViewFlipper;->updateRunning()V
+Landroid/widget/ViewSwitcher;->mFactory:Landroid/widget/ViewSwitcher$ViewFactory;
+Landroid/widget/ViewSwitcher;->obtainView()Landroid/view/View;
+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;
+Landroid/widget/ZoomButtonsController;->isInterestingKey(I)Z
+Landroid/widget/ZoomButtonsController;->mAutoDismissControls:Z
+Landroid/widget/ZoomButtonsController;->mCallback:Landroid/widget/ZoomButtonsController$OnZoomListener;
+Landroid/widget/ZoomButtonsController;->mConfigurationChangedFilter:Landroid/content/IntentFilter;
+Landroid/widget/ZoomButtonsController;->mConfigurationChangedReceiver:Landroid/content/BroadcastReceiver;
+Landroid/widget/ZoomButtonsController;->mContainer:Landroid/widget/FrameLayout;
+Landroid/widget/ZoomButtonsController;->mContainerLayoutParams:Landroid/view/WindowManager$LayoutParams;
+Landroid/widget/ZoomButtonsController;->mContainerRawLocation:[I
+Landroid/widget/ZoomButtonsController;->mContext:Landroid/content/Context;
+Landroid/widget/ZoomButtonsController;->mControls:Landroid/widget/ZoomControls;
+Landroid/widget/ZoomButtonsController;->mHandler:Landroid/os/Handler;
+Landroid/widget/ZoomButtonsController;->mIsVisible:Z
+Landroid/widget/ZoomButtonsController;->mOwnerView:Landroid/view/View;
+Landroid/widget/ZoomButtonsController;->mOwnerViewRawLocation:[I
+Landroid/widget/ZoomButtonsController;->mPostedVisibleInitializer:Ljava/lang/Runnable;
+Landroid/widget/ZoomButtonsController;->mReleaseTouchListenerOnUp:Z
+Landroid/widget/ZoomButtonsController;->MSG_DISMISS_ZOOM_CONTROLS:I
+Landroid/widget/ZoomButtonsController;->MSG_POST_CONFIGURATION_CHANGED:I
+Landroid/widget/ZoomButtonsController;->MSG_POST_SET_VISIBLE:I
+Landroid/widget/ZoomButtonsController;->mTempIntArray:[I
+Landroid/widget/ZoomButtonsController;->mTempRect:Landroid/graphics/Rect;
+Landroid/widget/ZoomButtonsController;->mTouchPaddingScaledSq:I
+Landroid/widget/ZoomButtonsController;->mTouchTargetView:Landroid/view/View;
+Landroid/widget/ZoomButtonsController;->mTouchTargetWindowLocation:[I
+Landroid/widget/ZoomButtonsController;->mWindowManager:Landroid/view/WindowManager;
+Landroid/widget/ZoomButtonsController;->onContainerKey(Landroid/view/KeyEvent;)Z
+Landroid/widget/ZoomButtonsController;->onPostConfigurationChanged()V
+Landroid/widget/ZoomButtonsController;->refreshPositioningVariables()V
+Landroid/widget/ZoomButtonsController;->setTouchTargetView(Landroid/view/View;)V
+Landroid/widget/ZoomButtonsController;->TAG:Ljava/lang/String;
+Landroid/widget/ZoomButtonsController;->ZOOM_CONTROLS_TIMEOUT:I
+Landroid/widget/ZoomButtonsController;->ZOOM_CONTROLS_TOUCH_PADDING:I
+Landroid/widget/ZoomControls;->fade(IFF)V
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;-><init>(Ljava/lang/String;)V
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->ableToExtractLongerNdd()Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->ableToFormat:Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->accruedInput:Ljava/lang/StringBuilder;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->accruedInputWithoutFormatting:Ljava/lang/StringBuilder;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->appendNationalNumber(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->attemptToChooseFormattingPattern()Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->attemptToChoosePatternWithPrefixExtracted()Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->attemptToExtractCountryCallingCode()Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->attemptToExtractIdd()Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->attemptToFormatAccruedDigits()Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->CHARACTER_CLASS_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->createFormattingTemplate(Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;)Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->currentFormattingPattern:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->currentMetadata:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->currentOutput:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->defaultCountry:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->defaultMetadata:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->DIGIT_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->DIGIT_PLACEHOLDER:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->ELIGIBLE_FORMAT_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->EMPTY_METADATA:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->extractedNationalPrefix:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->formattingTemplate:Ljava/lang/StringBuilder;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->getAvailableFormats(Ljava/lang/String;)V
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->getExtractedNationalPrefix()Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->getFormattingTemplate(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->inputAccruedNationalNumber()Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->inputDigitHelper(C)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->inputDigitWithOptionToRememberPosition(CZ)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->inputHasFormatting:Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->isCompleteNumber:Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->isDigitOrLeadingPlusSign(C)Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->isExpectingCountryCallingCode:Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->isFormatEligible(Ljava/lang/String;)Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->isNanpaNumberWithNationalPrefix()Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->lastMatchPosition:I
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->maybeCreateNewTemplate()Z
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->MIN_LEADING_DIGITS_LENGTH:I
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->narrowDownPossibleFormats(Ljava/lang/String;)V
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->nationalNumber:Ljava/lang/StringBuilder;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->NATIONAL_PREFIX_SEPARATORS_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->normalizeAndAccrueDigitsAndPlusSign(CZ)C
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->originalPosition:I
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->phoneUtil:Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->positionToRemember:I
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->possibleFormats:Ljava/util/List;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->prefixBeforeNationalNumber:Ljava/lang/StringBuilder;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->regexCache:Lcom/android/i18n/phonenumbers/internal/RegexCache;
+Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->removeNationalPrefixFromNationalNumber()Ljava/lang/String;
+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;
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->format_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->hasDomesticCarrierCodeFormattingRule:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->hasFormat:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->hasNationalPrefixFormattingRule:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->hasNationalPrefixOptionalWhenFormatting:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->hasPattern:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->leadingDigitsPattern_:Ljava/util/List;
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->nationalPrefixFormattingRule_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->nationalPrefixOptionalWhenFormatting_:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->pattern_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->carrierSpecific_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->countryCode_:I
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->emergency_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->fixedLine_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->generalDesc_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasCarrierSpecific:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasCountryCode:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasEmergency:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasFixedLine:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasGeneralDesc:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasId:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasInternationalPrefix:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasLeadingDigits:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasLeadingZeroPossible:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasMainCountryForCode:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasMobile:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasMobileNumberPortableRegion:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasNationalPrefix:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasNationalPrefixForParsing:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasNationalPrefixTransformRule:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasNoInternationalDialling:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasPager:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasPersonalNumber:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasPreferredExtnPrefix:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasPreferredInternationalPrefix:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasPremiumRate:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasSameMobileAndFixedLinePattern:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasSharedCost:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasShortCode:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasSmsServices:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasStandardRate:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasTollFree:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasUan:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasVoicemail:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasVoip:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->id_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->internationalPrefix_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->intlNumberFormat_:Ljava/util/List;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->leadingDigits_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->leadingZeroPossible_:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->mainCountryForCode_:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->mobileNumberPortableRegion_:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->mobile_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->nationalPrefixForParsing_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->nationalPrefixTransformRule_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->nationalPrefix_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->noInternationalDialling_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->numberFormat_:Ljava/util/List;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->pager_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->personalNumber_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->preferredExtnPrefix_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->preferredInternationalPrefix_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->premiumRate_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->sameMobileAndFixedLinePattern_:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->sharedCost_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->shortCode_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->smsServices_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->standardRate_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->tollFree_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->uan_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->voicemail_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->voip_:Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->metadata_:Ljava/util/List;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->exampleNumber_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->hasExampleNumber:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->hasNationalNumberPattern:Z
+Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->nationalNumberPattern_:Ljava/lang/String;
+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;
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasCountryCode:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasCountryCodeSource:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasExtension:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasItalianLeadingZero:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasNationalNumber:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasNumberOfLeadingZeros:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasPreferredDomesticCarrierCode:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasRawInput:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->italianLeadingZero_:Z
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->nationalNumber_:J
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->numberOfLeadingZeros_:I
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->preferredDomesticCarrierCode_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->rawInput_:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/Phonenumber;-><init>()V
+Lcom/android/i18n/phonenumbers/PhoneNumberMatch;-><init>(ILjava/lang/String;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+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;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->ALPHA_PHONE_MAPPINGS:Ljava/util/Map;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->buildNationalNumberForParsing(Ljava/lang/String;Ljava/lang/StringBuilder;)V
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->CAPTURING_DIGIT_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->CAPTURING_EXTN_DIGITS:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->CC_STRING:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->checkRegionForParsing(Ljava/lang/CharSequence;Ljava/lang/String;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->chooseFormattingPatternForNumber(Ljava/util/List;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->copyCoreFieldsOnly(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->countryCallingCodeToRegionCodeMap:Ljava/util/Map;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->countryCodesForNonGeographicalRegion:Ljava/util/Set;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->createExtnPattern(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->createInstance(Lcom/android/i18n/phonenumbers/MetadataSource;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->DEFAULT_EXTN_PREFIX:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->descHasData(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->descHasPossibleNumberData(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->DIALLABLE_CHAR_MAPPINGS:Ljava/util/Map;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->DIGITS:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->EXTN_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->EXTN_PATTERNS_FOR_MATCHING:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->EXTN_PATTERNS_FOR_PARSING:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractCountryCode(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractPossibleNumber(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->FG_STRING:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->FIRST_GROUP_ONLY_PREFIX_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->FIRST_GROUP_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatNsn(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatNsn(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/CharSequence;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatNsnUsingPattern(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatNsnUsingPattern(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/CharSequence;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->formattingRuleHasFirstGroupOnly(Ljava/lang/String;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->GEO_MOBILE_COUNTRIES:Ljava/util/Set;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->GEO_MOBILE_COUNTRIES_WITHOUT_MOBILE_AREA_CODES:Ljava/util/Set;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getCountryCodeForValidRegion(Ljava/lang/String;)I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForNonGeographicalRegion(I)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForRegionOrCallingCode(ILjava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberDescByType(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberTypeHelper(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumberFromRegionList(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/util/List;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getSupportedTypesForMetadata(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Ljava/util/Set;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->hasFormattingPatternForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->hasValidCountryCallingCode(I)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->instance:Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->isNationalNumberSuffixOfTheOther(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->isNumberMatchingDesc(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidRegionCode(Ljava/lang/String;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->isViablePhoneNumber(Ljava/lang/CharSequence;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->logger:Ljava/util/logging/Logger;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->matcherApi:Lcom/android/i18n/phonenumbers/internal/MatcherApi;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->MAX_INPUT_STRING_LENGTH:I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->MAX_LENGTH_COUNTRY_CODE:I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->MAX_LENGTH_FOR_NSN:I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeAppendFormattedExtension(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeExtractCountryCode(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;ZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripExtension(Ljava/lang/StringBuilder;)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripInternationalPrefixAndNormalize(Ljava/lang/StringBuilder;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripNationalPrefixAndCarrierCode(Ljava/lang/StringBuilder;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->metadataSource:Lcom/android/i18n/phonenumbers/MetadataSource;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->MIN_LENGTH_FOR_NSN:I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->MOBILE_TOKEN_MAPPINGS:Ljava/util/Map;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->nanpaRegions:Ljava/util/Set;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->NANPA_COUNTRY_CODE:I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->NON_DIGITS_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalize(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDigits(Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeHelper(Ljava/lang/CharSequence;Ljava/util/Map;Z)Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->NP_STRING:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseHelper(Ljava/lang/CharSequence;Ljava/lang/String;ZZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->parsePrefixAsIdd(Ljava/util/regex/Pattern;Ljava/lang/StringBuilder;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->PLUS_CHARS:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->PLUS_CHARS_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->PLUS_SIGN:C
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->prefixNumberWithCountryCallingCode(ILcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->rawInputContainsNationalPrefix(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->regexCache:Lcom/android/i18n/phonenumbers/internal/RegexCache;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->REGEX_FLAGS:I
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->RFC3966_EXTN_PREFIX:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->RFC3966_ISDN_SUBADDRESS:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->RFC3966_PHONE_CONTEXT:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->RFC3966_PREFIX:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->SECOND_NUMBER_START:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->SECOND_NUMBER_START_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->SEPARATOR_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->setInstance(Lcom/android/i18n/phonenumbers/PhoneNumberUtil;)V
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->setItalianLeadingZerosForPhoneNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->SINGLE_INTERNATIONAL_PREFIX:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->STAR_SIGN:C
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->supportedRegions:Ljava/util/Set;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->UNKNOWN_REGION:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->UNWANTED_END_CHARS:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->UNWANTED_END_CHAR_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->VALID_ALPHA:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->VALID_ALPHA_PHONE_PATTERN:Ljava/util/regex/Pattern;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->VALID_PHONE_NUMBER:Ljava/lang/String;
+Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->VALID_PHONE_NUMBER_PATTERN:Ljava/util/regex/Pattern;
+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;
+Lcom/android/ims/ImsConfigListener$Stub$Proxy;->onGetFeatureResponse(IIII)V
+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
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->deflect(Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->extendToConference([Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->getCallId()Ljava/lang/String;
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->getCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->getLocalCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->getRemoteCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->getState()I
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->getVideoCallProvider()Lcom/android/ims/internal/IImsVideoCallProvider;
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->hold(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->inviteParticipants([Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->isInCall()Z
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->isMultiparty()Z
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->merge()V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->reject(I)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->removeParticipants([Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->resume(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->sendDtmf(CLandroid/os/Message;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->sendRttMessage(Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->sendRttModifyRequest(Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->sendRttModifyResponse(Z)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->sendUssd(Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->setListener(Landroid/telephony/ims/aidl/IImsCallSessionListener;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->setMute(Z)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->start(Ljava/lang/String;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->startConference([Ljava/lang/String;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->startDtmf(C)V
+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
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_deflect:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_extendToConference:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_getCallId:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_getCallProfile:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_getLocalCallProfile:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_getProperty:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_getRemoteCallProfile:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_getState:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_getVideoCallProvider:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_hold:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_inviteParticipants:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_isInCall:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_isMultiparty:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_merge:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_reject:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_removeParticipants:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_resume:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_sendDtmf:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_sendRttMessage:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_sendRttModifyRequest:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_sendRttModifyResponse:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_sendUssd:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_setListener:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_setMute:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_start:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_startConference:I
+Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_startDtmf:I
+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
+Lcom/android/ims/internal/IImsCallSession;->extendToConference([Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession;->getCallId()Ljava/lang/String;
+Lcom/android/ims/internal/IImsCallSession;->getCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Lcom/android/ims/internal/IImsCallSession;->getLocalCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Lcom/android/ims/internal/IImsCallSession;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/ims/internal/IImsCallSession;->getRemoteCallProfile()Landroid/telephony/ims/ImsCallProfile;
+Lcom/android/ims/internal/IImsCallSession;->getState()I
+Lcom/android/ims/internal/IImsCallSession;->getVideoCallProvider()Lcom/android/ims/internal/IImsVideoCallProvider;
+Lcom/android/ims/internal/IImsCallSession;->hold(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Lcom/android/ims/internal/IImsCallSession;->inviteParticipants([Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession;->isInCall()Z
+Lcom/android/ims/internal/IImsCallSession;->isMultiparty()Z
+Lcom/android/ims/internal/IImsCallSession;->merge()V
+Lcom/android/ims/internal/IImsCallSession;->reject(I)V
+Lcom/android/ims/internal/IImsCallSession;->removeParticipants([Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession;->resume(Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Lcom/android/ims/internal/IImsCallSession;->sendDtmf(CLandroid/os/Message;)V
+Lcom/android/ims/internal/IImsCallSession;->sendRttMessage(Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession;->sendRttModifyRequest(Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSession;->sendRttModifyResponse(Z)V
+Lcom/android/ims/internal/IImsCallSession;->sendUssd(Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSession;->setListener(Landroid/telephony/ims/aidl/IImsCallSessionListener;)V
+Lcom/android/ims/internal/IImsCallSession;->setMute(Z)V
+Lcom/android/ims/internal/IImsCallSession;->start(Ljava/lang/String;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSession;->startConference([Ljava/lang/String;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSession;->startDtmf(C)V
+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
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionConferenceExtendReceived(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionConferenceStateUpdated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsConferenceState;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionHandover(Lcom/android/ims/internal/IImsCallSession;IILandroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionHandoverFailed(Lcom/android/ims/internal/IImsCallSession;IILandroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionHeld(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionHoldFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionHoldReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionInviteParticipantsRequestDelivered(Lcom/android/ims/internal/IImsCallSession;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionInviteParticipantsRequestFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionMayHandover(Lcom/android/ims/internal/IImsCallSession;II)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionMergeComplete(Lcom/android/ims/internal/IImsCallSession;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionMergeFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionMergeStarted(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionMultipartyStateChanged(Lcom/android/ims/internal/IImsCallSession;Z)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionProgressing(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsStreamMediaProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionRemoveParticipantsRequestDelivered(Lcom/android/ims/internal/IImsCallSession;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionRemoveParticipantsRequestFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionResumed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionResumeFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionResumeReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionRttMessageReceived(Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionRttModifyRequestReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionRttModifyResponseReceived(I)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionStarted(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionStartFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionSuppServiceReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsSuppServiceNotification;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionTerminated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionTtyModeReceived(Lcom/android/ims/internal/IImsCallSession;I)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionUpdated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionUpdateFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionUpdateReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+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;
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionConferenceExtended:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionConferenceExtendFailed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionConferenceExtendReceived:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionConferenceStateUpdated:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionHandover:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionHandoverFailed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionHeld:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionHoldFailed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionHoldReceived:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionInviteParticipantsRequestDelivered:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionInviteParticipantsRequestFailed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionMayHandover:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionMergeComplete:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionMergeFailed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionMergeStarted:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionMultipartyStateChanged:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionProgressing:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionRemoveParticipantsRequestDelivered:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionRemoveParticipantsRequestFailed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionResumed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionResumeFailed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionResumeReceived:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionRttMessageReceived:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionRttModifyRequestReceived:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionRttModifyResponseReceived:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionStarted:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionStartFailed:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionSuppServiceReceived:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionTerminated:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionTtyModeReceived:I
+Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionUpdated:I
+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
+Lcom/android/ims/internal/IImsCallSessionListener;->callSessionMayHandover(Lcom/android/ims/internal/IImsCallSession;II)V
+Lcom/android/ims/internal/IImsCallSessionListener;->callSessionRemoveParticipantsRequestDelivered(Lcom/android/ims/internal/IImsCallSession;)V
+Lcom/android/ims/internal/IImsCallSessionListener;->callSessionRemoveParticipantsRequestFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsCallSessionListener;->callSessionRttMessageReceived(Ljava/lang/String;)V
+Lcom/android/ims/internal/IImsCallSessionListener;->callSessionRttModifyRequestReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
+Lcom/android/ims/internal/IImsCallSessionListener;->callSessionRttModifyResponseReceived(I)V
+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;
+Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->getProvisionedStringValue(I)Ljava/lang/String;
+Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->getProvisionedValue(I)I
+Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->getVideoQuality(Lcom/android/ims/ImsConfigListener;)V
+Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->getVolteProvisioned()Z
+Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->setFeatureValue(IIILcom/android/ims/ImsConfigListener;)V
+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
+Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_getProvisionedStringValue:I
+Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_getProvisionedValue:I
+Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_getVideoQuality:I
+Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_getVolteProvisioned:I
+Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_setFeatureValue:I
+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
+Lcom/android/ims/internal/IImsConfig;->getVideoQuality(Lcom/android/ims/ImsConfigListener;)V
+Lcom/android/ims/internal/IImsConfig;->getVolteProvisioned()Z
+Lcom/android/ims/internal/IImsConfig;->setFeatureValue(IIILcom/android/ims/ImsConfigListener;)V
+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;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->createCallSession(ILandroid/telephony/ims/ImsCallProfile;)Lcom/android/ims/internal/IImsCallSession;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->endSession(I)V
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->getConfigInterface()Lcom/android/ims/internal/IImsConfig;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->getEcbmInterface()Lcom/android/ims/internal/IImsEcbm;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->getFeatureStatus()I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->getMultiEndpointInterface()Lcom/android/ims/internal/IImsMultiEndpoint;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->getPendingCallSession(ILjava/lang/String;)Lcom/android/ims/internal/IImsCallSession;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->getUtInterface()Lcom/android/ims/internal/IImsUt;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->isConnected(II)Z
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->isOpened()Z
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->removeRegistrationListener(Lcom/android/ims/internal/IImsRegistrationListener;)V
+Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->setUiTTYMode(ILandroid/os/Message;)V
+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;
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_addRegistrationListener:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_createCallProfile:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_createCallSession:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_endSession:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_getConfigInterface:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_getEcbmInterface:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_getFeatureStatus:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_getMultiEndpointInterface:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_getPendingCallSession:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_getUtInterface:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_isConnected:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_isOpened:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_removeRegistrationListener:I
+Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_setUiTTYMode:I
+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;
+Lcom/android/ims/internal/IImsMMTelFeature;->endSession(I)V
+Lcom/android/ims/internal/IImsMMTelFeature;->getConfigInterface()Lcom/android/ims/internal/IImsConfig;
+Lcom/android/ims/internal/IImsMMTelFeature;->getEcbmInterface()Lcom/android/ims/internal/IImsEcbm;
+Lcom/android/ims/internal/IImsMMTelFeature;->getFeatureStatus()I
+Lcom/android/ims/internal/IImsMMTelFeature;->getMultiEndpointInterface()Lcom/android/ims/internal/IImsMultiEndpoint;
+Lcom/android/ims/internal/IImsMMTelFeature;->getPendingCallSession(ILjava/lang/String;)Lcom/android/ims/internal/IImsCallSession;
+Lcom/android/ims/internal/IImsMMTelFeature;->getUtInterface()Lcom/android/ims/internal/IImsUt;
+Lcom/android/ims/internal/IImsMMTelFeature;->isConnected(II)Z
+Lcom/android/ims/internal/IImsMMTelFeature;->isOpened()Z
+Lcom/android/ims/internal/IImsMMTelFeature;->removeRegistrationListener(Lcom/android/ims/internal/IImsRegistrationListener;)V
+Lcom/android/ims/internal/IImsMMTelFeature;->setUiTTYMode(ILandroid/os/Message;)V
+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;
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationAssociatedUriChanged([Landroid/net/Uri;)V
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationChangeFailed(ILandroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationConnected()V
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationConnectedWithRadioTech(I)V
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationDisconnected(Landroid/telephony/ims/ImsReasonInfo;)V
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationFeatureCapabilityChanged(I[I[I)V
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationProgressing()V
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationProgressingWithRadioTech(I)V
+Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationResumed()V
+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;
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationAssociatedUriChanged:I
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationChangeFailed:I
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationConnected:I
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationConnectedWithRadioTech:I
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationDisconnected:I
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationFeatureCapabilityChanged:I
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationProgressing:I
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationProgressingWithRadioTech:I
+Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationResumed:I
+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
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->createCallProfile(III)Landroid/telephony/ims/ImsCallProfile;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->createCallSession(ILandroid/telephony/ims/ImsCallProfile;Lcom/android/ims/internal/IImsCallSessionListener;)Lcom/android/ims/internal/IImsCallSession;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->getConfigInterface(I)Lcom/android/ims/internal/IImsConfig;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->getEcbmInterface(I)Lcom/android/ims/internal/IImsEcbm;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->getMultiEndpointInterface(I)Lcom/android/ims/internal/IImsMultiEndpoint;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->getPendingCallSession(ILjava/lang/String;)Lcom/android/ims/internal/IImsCallSession;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->getUtInterface(I)Lcom/android/ims/internal/IImsUt;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->isConnected(III)Z
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->isOpened(I)Z
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->open(IILandroid/app/PendingIntent;Lcom/android/ims/internal/IImsRegistrationListener;)I
+Lcom/android/ims/internal/IImsService$Stub$Proxy;->setRegistrationListener(ILcom/android/ims/internal/IImsRegistrationListener;)V
+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
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_createCallProfile:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_createCallSession:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_getConfigInterface:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_getEcbmInterface:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_getMultiEndpointInterface:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_getPendingCallSession:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_getUtInterface:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_isConnected:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_isOpened:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_open:I
+Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_setRegistrationListener:I
+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;
+Lcom/android/ims/internal/IImsService;->createCallSession(ILandroid/telephony/ims/ImsCallProfile;Lcom/android/ims/internal/IImsCallSessionListener;)Lcom/android/ims/internal/IImsCallSession;
+Lcom/android/ims/internal/IImsService;->getConfigInterface(I)Lcom/android/ims/internal/IImsConfig;
+Lcom/android/ims/internal/IImsService;->getEcbmInterface(I)Lcom/android/ims/internal/IImsEcbm;
+Lcom/android/ims/internal/IImsService;->getMultiEndpointInterface(I)Lcom/android/ims/internal/IImsMultiEndpoint;
+Lcom/android/ims/internal/IImsService;->getPendingCallSession(ILjava/lang/String;)Lcom/android/ims/internal/IImsCallSession;
+Lcom/android/ims/internal/IImsService;->getUtInterface(I)Lcom/android/ims/internal/IImsUt;
+Lcom/android/ims/internal/IImsService;->isConnected(III)Z
+Lcom/android/ims/internal/IImsService;->isOpened(I)Z
+Lcom/android/ims/internal/IImsService;->open(IILandroid/app/PendingIntent;Lcom/android/ims/internal/IImsRegistrationListener;)I
+Lcom/android/ims/internal/IImsService;->setRegistrationListener(ILcom/android/ims/internal/IImsRegistrationListener;)V
+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;
+Lcom/android/ims/internal/IImsServiceController$Stub$Proxy;->createRcsFeature(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsRcsFeature;
+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;
+Lcom/android/ims/internal/IImsServiceController$Stub;->TRANSACTION_createEmergencyMMTelFeature:I
+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;
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->queryCallBarring(I)I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->queryCallBarringForServiceClass(II)I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->queryCallForward(ILjava/lang/String;)I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->queryCallWaiting()I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->queryCLIP()I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->queryCLIR()I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->queryCOLP()I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->queryCOLR()I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->setListener(Lcom/android/ims/internal/IImsUtListener;)V
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->transact(Landroid/os/Bundle;)I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->updateCallBarring(II[Ljava/lang/String;)I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->updateCallBarringForServiceClass(II[Ljava/lang/String;I)I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->updateCallForward(IILjava/lang/String;II)I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->updateCallWaiting(ZI)I
+Lcom/android/ims/internal/IImsUt$Stub$Proxy;->updateCLIP(Z)I
+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
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_queryCallBarring:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_queryCallBarringForServiceClass:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_queryCallForward:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_queryCallWaiting:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_queryCLIP:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_queryCLIR:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_queryCOLP:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_queryCOLR:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_setListener:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_transact:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_updateCallBarring:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_updateCallBarringForServiceClass:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_updateCallForward:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_updateCallWaiting:I
+Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_updateCLIP:I
+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
+Lcom/android/ims/internal/IImsUt;->queryCallForward(ILjava/lang/String;)I
+Lcom/android/ims/internal/IImsUt;->queryCallWaiting()I
+Lcom/android/ims/internal/IImsUt;->queryCLIP()I
+Lcom/android/ims/internal/IImsUt;->queryCLIR()I
+Lcom/android/ims/internal/IImsUt;->queryCOLP()I
+Lcom/android/ims/internal/IImsUt;->queryCOLR()I
+Lcom/android/ims/internal/IImsUt;->setListener(Lcom/android/ims/internal/IImsUtListener;)V
+Lcom/android/ims/internal/IImsUt;->transact(Landroid/os/Bundle;)I
+Lcom/android/ims/internal/IImsUt;->updateCallBarring(II[Ljava/lang/String;)I
+Lcom/android/ims/internal/IImsUt;->updateCallBarringForServiceClass(II[Ljava/lang/String;I)I
+Lcom/android/ims/internal/IImsUt;->updateCallForward(IILjava/lang/String;II)I
+Lcom/android/ims/internal/IImsUt;->updateCallWaiting(ZI)I
+Lcom/android/ims/internal/IImsUt;->updateCLIP(Z)I
+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;
+Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->onSupplementaryServiceIndication(Landroid/telephony/ims/ImsSsData;)V
+Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->utConfigurationCallBarringQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsSsInfo;)V
+Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->utConfigurationCallForwardQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsCallForwardInfo;)V
+Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->utConfigurationCallWaitingQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsSsInfo;)V
+Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->utConfigurationQueried(Lcom/android/ims/internal/IImsUt;ILandroid/os/Bundle;)V
+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;
+Lcom/android/ims/internal/IImsUtListener$Stub;->TRANSACTION_onSupplementaryServiceIndication:I
+Lcom/android/ims/internal/IImsUtListener$Stub;->TRANSACTION_utConfigurationCallBarringQueried:I
+Lcom/android/ims/internal/IImsUtListener$Stub;->TRANSACTION_utConfigurationCallForwardQueried:I
+Lcom/android/ims/internal/IImsUtListener$Stub;->TRANSACTION_utConfigurationCallWaitingQueried:I
+Lcom/android/ims/internal/IImsUtListener$Stub;->TRANSACTION_utConfigurationQueried:I
+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
+Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->changePeerDimensions(II)V
+Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->changeVideoQuality(I)V
+Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->handleCallSessionEvent(I)V
+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;
+Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->TRANSACTION_changeCallDataUsage:I
+Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->TRANSACTION_changeCameraCapabilities:I
+Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->TRANSACTION_changePeerDimensions:I
+Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->TRANSACTION_changeVideoQuality:I
+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;
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->requestCallDataUsage()V
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->requestCameraCapabilities()V
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->sendSessionModifyRequest(Landroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->sendSessionModifyResponse(Landroid/telecom/VideoProfile;)V
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->setCallback(Lcom/android/ims/internal/IImsVideoCallCallback;)V
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->setCamera(Ljava/lang/String;I)V
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->setDeviceOrientation(I)V
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->setDisplaySurface(Landroid/view/Surface;)V
+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
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_requestCameraCapabilities:I
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_sendSessionModifyRequest:I
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_sendSessionModifyResponse:I
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_setCallback:I
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_setCamera:I
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_setDeviceOrientation:I
+Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_setDisplaySurface:I
+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
+Lcom/android/ims/internal/IImsVideoCallProvider;->sendSessionModifyResponse(Landroid/telecom/VideoProfile;)V
+Lcom/android/ims/internal/IImsVideoCallProvider;->setCamera(Ljava/lang/String;I)V
+Lcom/android/ims/internal/IImsVideoCallProvider;->setDeviceOrientation(I)V
+Lcom/android/ims/internal/IImsVideoCallProvider;->setDisplaySurface(Landroid/view/Surface;)V
+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;
+Lcom/android/ims/internal/uce/common/CapInfo;->mCapTimestamp:J
+Lcom/android/ims/internal/uce/common/CapInfo;->mCdViaPresenceSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mExts:[Ljava/lang/String;
+Lcom/android/ims/internal/uce/common/CapInfo;->mFtHttpSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mFtSnFSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mFtSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mFtThumbSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mFullSnFGroupChatSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mGeoPullFtSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mGeoPullSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mGeoPushSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mImSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mIpVideoSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mIpVoiceSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mIsSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mRcsIpVideoCallSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mRcsIpVideoOnlyCallSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mRcsIpVoiceCallSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mSmSupported:Z
+Lcom/android/ims/internal/uce/common/CapInfo;->mSpSupported:Z
+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
+Lcom/android/ims/internal/uce/common/StatusCode;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_FAILURE:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_FETCH_ERROR:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_INSUFFICIENT_MEMORY:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_INVALID_LISTENER_HANDLE:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_INVALID_PARAM:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_INVALID_SERVICE_HANDLE:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_LOST_NET:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_NOT_FOUND:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_NOT_SUPPORTED:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_NO_CHANGE_IN_CAP:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_REQUEST_TIMEOUT:I
+Lcom/android/ims/internal/uce/common/StatusCode;->UCE_SERVICE_UNAVAILABLE:I
+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;
+Lcom/android/ims/internal/uce/common/UceLong;->mClientId:I
+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;
+Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;->getVersionCb(Ljava/lang/String;)V
+Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;->incomingOptions(Ljava/lang/String;Lcom/android/ims/internal/uce/options/OptionsCapInfo;I)V
+Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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;
+Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;->TRANSACTION_cmdStatus:I
+Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;->TRANSACTION_getVersionCb:I
+Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;->TRANSACTION_incomingOptions:I
+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;
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->getContactListCap(I[Ljava/lang/String;I)Lcom/android/ims/internal/uce/common/StatusCode;
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->getMyInfo(II)Lcom/android/ims/internal/uce/common/StatusCode;
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->getVersion(I)Lcom/android/ims/internal/uce/common/StatusCode;
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->TRANSACTION_getContactCap:I
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->TRANSACTION_getContactListCap:I
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->TRANSACTION_getMyInfo:I
+Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->TRANSACTION_getVersion:I
+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
+Lcom/android/ims/internal/uce/options/OptionsCmdId;->mCmdId:I
+Lcom/android/ims/internal/uce/options/OptionsCmdId;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/ims/internal/uce/options/OptionsCmdId;->UCE_OPTIONS_CMD_GETCONTACTCAP:I
+Lcom/android/ims/internal/uce/options/OptionsCmdId;->UCE_OPTIONS_CMD_GETCONTACTLISTCAP:I
+Lcom/android/ims/internal/uce/options/OptionsCmdId;->UCE_OPTIONS_CMD_GETMYCDINFO:I
+Lcom/android/ims/internal/uce/options/OptionsCmdId;->UCE_OPTIONS_CMD_GET_VERSION:I
+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;
+Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->getCmdId()Lcom/android/ims/internal/uce/options/OptionsCmdId;
+Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->getOptionsCmdStatusInstance()Lcom/android/ims/internal/uce/options/OptionsCmdStatus;
+Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->getStatus()Lcom/android/ims/internal/uce/common/StatusCode;
+Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->getUserData()I
+Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->mCapInfo:Lcom/android/ims/internal/uce/common/CapInfo;
+Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->mCmdId:Lcom/android/ims/internal/uce/options/OptionsCmdId;
+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;
+Lcom/android/ims/internal/uce/options/OptionsSipResponse;->getReasonPhrase()Ljava/lang/String;
+Lcom/android/ims/internal/uce/options/OptionsSipResponse;->getRequestId()I
+Lcom/android/ims/internal/uce/options/OptionsSipResponse;->getRetryAfter()I
+Lcom/android/ims/internal/uce/options/OptionsSipResponse;->getSipResponseCode()I
+Lcom/android/ims/internal/uce/options/OptionsSipResponse;->mCmdId:Lcom/android/ims/internal/uce/options/OptionsCmdId;
+Lcom/android/ims/internal/uce/options/OptionsSipResponse;->mReasonPhrase:Ljava/lang/String;
+Lcom/android/ims/internal/uce/options/OptionsSipResponse;->mRequestId:I
+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
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->getVersionCb(Ljava/lang/String;)V
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->listCapInfoReceived(Lcom/android/ims/internal/uce/presence/PresRlmiInfo;[Lcom/android/ims/internal/uce/presence/PresResInfo;)V
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->publishTriggering(Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;)V
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->serviceAvailable(Lcom/android/ims/internal/uce/common/StatusCode;)V
+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;
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_capInfoReceived:I
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_cmdStatus:I
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_getVersionCb:I
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_listCapInfoReceived:I
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_publishTriggering:I
+Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_serviceAvailable:I
+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;
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->getContactListCap(I[Ljava/lang/String;I)Lcom/android/ims/internal/uce/common/StatusCode;
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->getVersion(I)Lcom/android/ims/internal/uce/common/StatusCode;
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->publishMyCap(ILcom/android/ims/internal/uce/presence/PresCapInfo;I)Lcom/android/ims/internal/uce/common/StatusCode;
+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
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->TRANSACTION_getContactCap:I
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->TRANSACTION_getContactListCap:I
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->TRANSACTION_getVersion:I
+Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->TRANSACTION_publishMyCap:I
+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;
+Lcom/android/ims/internal/uce/presence/PresCapInfo;->mCapInfo:Lcom/android/ims/internal/uce/common/CapInfo;
+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
+Lcom/android/ims/internal/uce/presence/PresCmdId;->mCmdId:I
+Lcom/android/ims/internal/uce/presence/PresCmdId;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/ims/internal/uce/presence/PresCmdId;->UCE_PRES_CMD_GETCONTACTCAP:I
+Lcom/android/ims/internal/uce/presence/PresCmdId;->UCE_PRES_CMD_GETCONTACTLISTCAP:I
+Lcom/android/ims/internal/uce/presence/PresCmdId;->UCE_PRES_CMD_GET_VERSION:I
+Lcom/android/ims/internal/uce/presence/PresCmdId;->UCE_PRES_CMD_PUBLISHMYCAP:I
+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;
+Lcom/android/ims/internal/uce/presence/PresCmdStatus;->getRequestId()I
+Lcom/android/ims/internal/uce/presence/PresCmdStatus;->getStatus()Lcom/android/ims/internal/uce/common/StatusCode;
+Lcom/android/ims/internal/uce/presence/PresCmdStatus;->getUserData()I
+Lcom/android/ims/internal/uce/presence/PresCmdStatus;->mCmdId:Lcom/android/ims/internal/uce/presence/PresCmdId;
+Lcom/android/ims/internal/uce/presence/PresCmdStatus;->mRequestId:I
+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
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->mPublishTriggerType:I
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_ETAG_EXPIRED:I
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_MOVE_TO_2G:I
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_MOVE_TO_3G:I
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_MOVE_TO_EHRPD:I
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_MOVE_TO_HSPAPLUS:I
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_MOVE_TO_IWLAN:I
+Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_MOVE_TO_LTE_VOPS_DISABLED:I
+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;
+Lcom/android/ims/internal/uce/presence/PresResInfo;->getInstanceInfo()Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;
+Lcom/android/ims/internal/uce/presence/PresResInfo;->getResUri()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresResInfo;->mDisplayName:Ljava/lang/String;
+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;
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->getReason()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->getResId()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->getResInstanceState()I
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->getTupleInfo()[Lcom/android/ims/internal/uce/presence/PresTupleInfo;
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->mId:Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->mPresentityUri:Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->mReason:Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->mResInstanceState:I
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->mTupleInfoArray:[Lcom/android/ims/internal/uce/presence/PresTupleInfo;
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->UCE_PRES_RES_INSTANCE_STATE_ACTIVE:I
+Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->UCE_PRES_RES_INSTANCE_STATE_PENDING:I
+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;
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->getPresSubscriptionState()Lcom/android/ims/internal/uce/presence/PresSubscriptionState;
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->getRequestId()I
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->getSubscriptionExpireTime()I
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->getSubscriptionTerminatedReason()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->getUri()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->getVersion()I
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->isFullState()Z
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->mFullState:Z
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->mListName:Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->mPresSubscriptionState:Lcom/android/ims/internal/uce/presence/PresSubscriptionState;
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->mRequestId:I
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->mSubscriptionExpireTime:I
+Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->mSubscriptionTerminatedReason:Ljava/lang/String;
+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;
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->mMediaCap:I
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->mServiceDesc:Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->mServiceID:Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->mServiceVer:Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->setMediaType(I)V
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->setServiceDesc(Ljava/lang/String;)V
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->setServiceId(Ljava/lang/String;)V
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->setServiceVer(Ljava/lang/String;)V
+Lcom/android/ims/internal/uce/presence/PresServiceInfo;->UCE_PRES_MEDIA_CAP_FULL_AUDIO_AND_VIDEO:I
+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;
+Lcom/android/ims/internal/uce/presence/PresSipResponse;->mReasonPhrase:Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresSipResponse;->mRequestId:I
+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
+Lcom/android/ims/internal/uce/presence/PresSubscriptionState;->mPresSubscriptionState:I
+Lcom/android/ims/internal/uce/presence/PresSubscriptionState;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/ims/internal/uce/presence/PresSubscriptionState;->UCE_PRES_SUBSCRIPTION_STATE_ACTIVE:I
+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;
+Lcom/android/ims/internal/uce/presence/PresTupleInfo;->getFeatureTag()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresTupleInfo;->getTimestamp()Ljava/lang/String;
+Lcom/android/ims/internal/uce/presence/PresTupleInfo;->mContactUri:Ljava/lang/String;
+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
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->destroyOptionsService(I)V
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->destroyPresenceService(I)V
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->getOptionsService()Lcom/android/ims/internal/uce/options/IOptionsService;
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->getPresenceService()Lcom/android/ims/internal/uce/presence/IPresenceService;
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->getServiceStatus()Z
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->isServiceStarted()Z
+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
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_createPresenceService:I
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_destroyOptionsService:I
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_destroyPresenceService:I
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_getOptionsService:I
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_getPresenceService:I
+Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_getServiceStatus:I
+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
+Lcom/android/internal/app/AlertController$AlertParams;->mOnPrepareListViewListener:Lcom/android/internal/app/AlertController$AlertParams$OnPrepareListViewListener;
+Lcom/android/internal/app/AlertController$AlertParams;->mRecycleOnMeasure:Z
+Lcom/android/internal/app/AlertController$AlertParams;->mViewLayoutResId:I
+Lcom/android/internal/app/AlertController$AlertParams;->mViewSpacingBottom:I
+Lcom/android/internal/app/AlertController$AlertParams;->mViewSpacingLeft:I
+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;
+Lcom/android/internal/app/AlertController;->getIconAttributeResId(I)I
+Lcom/android/internal/app/AlertController;->installContent(Lcom/android/internal/app/AlertController$AlertParams;)V
+Lcom/android/internal/app/AlertController;->mAdapter:Landroid/widget/ListAdapter;
+Lcom/android/internal/app/AlertController;->mAlertDialogLayout:I
+Lcom/android/internal/app/AlertController;->manageScrollIndicators(Landroid/view/View;Landroid/view/View;Landroid/view/View;)V
+Lcom/android/internal/app/AlertController;->mButtonHandler:Landroid/view/View$OnClickListener;
+Lcom/android/internal/app/AlertController;->mButtonNegative:Landroid/widget/Button;
+Lcom/android/internal/app/AlertController;->mButtonNegativeMessage:Landroid/os/Message;
+Lcom/android/internal/app/AlertController;->mButtonNegativeText:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController;->mButtonNeutral:Landroid/widget/Button;
+Lcom/android/internal/app/AlertController;->mButtonNeutralMessage:Landroid/os/Message;
+Lcom/android/internal/app/AlertController;->mButtonNeutralText:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController;->mButtonPanelLayoutHint:I
+Lcom/android/internal/app/AlertController;->mButtonPanelSideLayout:I
+Lcom/android/internal/app/AlertController;->mButtonPositive:Landroid/widget/Button;
+Lcom/android/internal/app/AlertController;->mButtonPositiveMessage:Landroid/os/Message;
+Lcom/android/internal/app/AlertController;->mButtonPositiveText:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController;->mCheckedItem:I
+Lcom/android/internal/app/AlertController;->mContext:Landroid/content/Context;
+Lcom/android/internal/app/AlertController;->mDialogInterface:Landroid/content/DialogInterface;
+Lcom/android/internal/app/AlertController;->mHandler:Landroid/os/Handler;
+Lcom/android/internal/app/AlertController;->mIcon:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/app/AlertController;->mIconId:I
+Lcom/android/internal/app/AlertController;->mIconView:Landroid/widget/ImageView;
+Lcom/android/internal/app/AlertController;->MICRO:I
+Lcom/android/internal/app/AlertController;->mListItemLayout:I
+Lcom/android/internal/app/AlertController;->mListLayout:I
+Lcom/android/internal/app/AlertController;->mListView:Landroid/widget/ListView;
+Lcom/android/internal/app/AlertController;->mMessage:Ljava/lang/CharSequence;
+Lcom/android/internal/app/AlertController;->mMessageHyphenationFrequency:Ljava/lang/Integer;
+Lcom/android/internal/app/AlertController;->mMessageMovementMethod:Landroid/text/method/MovementMethod;
+Lcom/android/internal/app/AlertController;->mMessageView:Landroid/widget/TextView;
+Lcom/android/internal/app/AlertController;->mMultiChoiceItemLayout:I
+Lcom/android/internal/app/AlertController;->mScrollView:Landroid/widget/ScrollView;
+Lcom/android/internal/app/AlertController;->mShowTitle:Z
+Lcom/android/internal/app/AlertController;->mSingleChoiceItemLayout:I
+Lcom/android/internal/app/AlertController;->mTitleView:Landroid/widget/TextView;
+Lcom/android/internal/app/AlertController;->mViewLayoutResId:I
+Lcom/android/internal/app/AlertController;->mViewSpacingBottom:I
+Lcom/android/internal/app/AlertController;->mViewSpacingLeft:I
+Lcom/android/internal/app/AlertController;->mViewSpacingRight:I
+Lcom/android/internal/app/AlertController;->mViewSpacingSpecified:Z
+Lcom/android/internal/app/AlertController;->mViewSpacingTop:I
+Lcom/android/internal/app/AlertController;->mWindow:Landroid/view/Window;
+Lcom/android/internal/app/AlertController;->resolvePanel(Landroid/view/View;Landroid/view/View;)Landroid/view/ViewGroup;
+Lcom/android/internal/app/AlertController;->selectContentView()I
+Lcom/android/internal/app/AlertController;->setBackground(Landroid/content/res/TypedArray;Landroid/view/View;Landroid/view/View;Landroid/view/View;Landroid/view/View;ZZZ)V
+Lcom/android/internal/app/AlertController;->setButtonPanelLayoutHint(I)V
+Lcom/android/internal/app/AlertController;->setInverseBackgroundForced(Z)V
+Lcom/android/internal/app/AlertController;->setMessageHyphenationFrequency(I)V
+Lcom/android/internal/app/AlertController;->setMessageMovementMethod(Landroid/text/method/MovementMethod;)V
+Lcom/android/internal/app/AlertController;->setupButtons(Landroid/view/ViewGroup;)V
+Lcom/android/internal/app/AlertController;->setupContent(Landroid/view/ViewGroup;)V
+Lcom/android/internal/app/AlertController;->setupCustomContent(Landroid/view/ViewGroup;)V
+Lcom/android/internal/app/AlertController;->setupTitle(Landroid/view/ViewGroup;)V
+Lcom/android/internal/app/AlertController;->setupView()V
+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
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->getPackagesForOps([I)Ljava/util/List;
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->getToken(Landroid/os/IBinder;)Landroid/os/IBinder;
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->getUidOps(I[I)Ljava/util/List;
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->isOperationActive(IILjava/lang/String;)Z
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteOperation(IILjava/lang/String;)I
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteProxyOperation(ILjava/lang/String;ILjava/lang/String;)I
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->permissionToOpCode(Ljava/lang/String;)I
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->removeUser(I)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->resetAllModes(ILjava/lang/String;)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->setAudioRestriction(IIII[Ljava/lang/String;)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->setUidMode(III)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->setUserRestriction(IZLandroid/os/IBinder;I[Ljava/lang/String;)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->setUserRestrictions(Landroid/os/Bundle;Landroid/os/IBinder;I)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Z)I
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
+Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingMode(ILjava/lang/String;Lcom/android/internal/app/IAppOpsCallback;)V
+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
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_getUidOps:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_isOperationActive:I
+Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_permissionToOpCode:I
+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
+Lcom/android/internal/app/IAppOpsService;->getToken(Landroid/os/IBinder;)Landroid/os/IBinder;
+Lcom/android/internal/app/IAppOpsService;->getUidOps(I[I)Ljava/util/List;
+Lcom/android/internal/app/IAppOpsService;->isOperationActive(IILjava/lang/String;)Z
+Lcom/android/internal/app/IAppOpsService;->noteOperation(IILjava/lang/String;)I
+Lcom/android/internal/app/IAppOpsService;->noteProxyOperation(ILjava/lang/String;ILjava/lang/String;)I
+Lcom/android/internal/app/IAppOpsService;->permissionToOpCode(Ljava/lang/String;)I
+Lcom/android/internal/app/IAppOpsService;->removeUser(I)V
+Lcom/android/internal/app/IAppOpsService;->setAudioRestriction(IIII[Ljava/lang/String;)V
+Lcom/android/internal/app/IAppOpsService;->setUidMode(III)V
+Lcom/android/internal/app/IAppOpsService;->setUserRestriction(IZLandroid/os/IBinder;I[Ljava/lang/String;)V
+Lcom/android/internal/app/IAppOpsService;->setUserRestrictions(Landroid/os/Bundle;Landroid/os/IBinder;I)V
+Lcom/android/internal/app/IAppOpsService;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Z)I
+Lcom/android/internal/app/IAppOpsService;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
+Lcom/android/internal/app/IAppOpsService;->startWatchingMode(ILjava/lang/String;Lcom/android/internal/app/IAppOpsCallback;)V
+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
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->getAwakeTimePlugged()J
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->getStatistics()[B
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->getStatisticsStream()Landroid/os/ParcelFileDescriptor;
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->isCharging()Z
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteBleScanResults(Landroid/os/WorkSource;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteBleScanStarted(Landroid/os/WorkSource;Z)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteBleScanStopped(Landroid/os/WorkSource;Z)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteBluetoothControllerActivity(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteChangeWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteConnectivityChanged(ILjava/lang/String;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteDeviceIdleMode(ILjava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteEvent(ILjava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteFlashlightOff(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteFlashlightOn(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteFullWifiLockAcquired(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteFullWifiLockAcquiredFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteFullWifiLockReleased(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteFullWifiLockReleasedFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteGpsChanged(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteGpsSignalQuality(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteInteractive(Z)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteJobFinish(Ljava/lang/String;II)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteJobStart(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteLongPartialWakelockFinish(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteLongPartialWakelockFinishFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteLongPartialWakelockStart(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteLongPartialWakelockStartFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteMobileRadioPowerState(IJI)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteModemControllerActivity(Landroid/telephony/ModemActivityInfo;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteNetworkInterfaceType(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteNetworkStatsEnabled()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->notePhoneDataConnectionState(IZ)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->notePhoneOff()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->notePhoneOn()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->notePhoneSignalStrength(Landroid/telephony/SignalStrength;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->notePhoneState(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteResetAudio()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteResetBleScan()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteResetCamera()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteResetFlashlight()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteResetVideo()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteScreenBrightness(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteScreenState(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStartAudio(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStartCamera(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStartSensor(II)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStartVideo(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStartWakelock(IILjava/lang/String;Ljava/lang/String;IZ)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStartWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStopAudio(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStopCamera(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStopSensor(II)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStopVideo(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStopWakelock(IILjava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteStopWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteSyncFinish(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteSyncStart(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteUserActivity(II)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteVibratorOff(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteVibratorOn(IJ)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWakeUp(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiBatchedScanStartedFromSource(Landroid/os/WorkSource;I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiBatchedScanStoppedFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiControllerActivity(Landroid/net/wifi/WifiActivityEnergyInfo;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiMulticastDisabled(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiMulticastEnabled(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiOff()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiOn()V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiRadioPowerState(IJI)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiRssiChanged(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiRunning(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiRunningChanged(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiScanStarted(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiScanStartedFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiScanStopped(I)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiScanStoppedFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiState(ILjava/lang/String;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiStopped(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteWifiSupplicantStateChanged(IZ)V
+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
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_getAwakeTimeBattery:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_getAwakeTimePlugged:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_getCellularBatteryStats:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_getGpsBatteryStats:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_getStatistics:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_getStatisticsStream:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_getWifiBatteryStats:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_isCharging:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteBleScanResults:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteBleScanStarted:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteBleScanStopped:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteBluetoothControllerActivity:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteChangeWakelockFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteConnectivityChanged:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteDeviceIdleMode:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteEvent:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteFlashlightOff:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteFlashlightOn:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteFullWifiLockAcquired:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteFullWifiLockAcquiredFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteFullWifiLockReleased:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteFullWifiLockReleasedFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteGpsChanged:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteGpsSignalQuality:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteInteractive:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteJobFinish:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteJobStart:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteLongPartialWakelockFinish:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteLongPartialWakelockFinishFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteLongPartialWakelockStart:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteLongPartialWakelockStartFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteMobileRadioPowerState:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteModemControllerActivity:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteNetworkInterfaceType:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteNetworkStatsEnabled:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_notePhoneDataConnectionState:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_notePhoneOff:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_notePhoneOn:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_notePhoneSignalStrength:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_notePhoneState:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteResetAudio:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteResetBleScan:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteResetCamera:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteResetFlashlight:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteResetVideo:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteScreenBrightness:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteScreenState:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStartAudio:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStartCamera:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStartSensor:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStartVideo:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStartWakelock:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStartWakelockFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStopAudio:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStopCamera:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStopSensor:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStopVideo:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStopWakelock:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteStopWakelockFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteSyncFinish:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteSyncStart:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteUserActivity:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteVibratorOff:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteVibratorOn:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWakeUp:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiBatchedScanStartedFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiBatchedScanStoppedFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiControllerActivity:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiMulticastDisabled:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiMulticastEnabled:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiOff:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiOn:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiRadioPowerState:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiRssiChanged:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiRunning:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiRunningChanged:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiScanStarted:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiScanStartedFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiScanStopped:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiScanStoppedFromSource:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiState:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiStopped:I
+Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_noteWifiSupplicantStateChanged:I
+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;
+Lcom/android/internal/app/IBatteryStats;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+Lcom/android/internal/app/IBatteryStats;->getStatisticsStream()Landroid/os/ParcelFileDescriptor;
+Lcom/android/internal/app/IBatteryStats;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+Lcom/android/internal/app/IBatteryStats;->noteBleScanResults(Landroid/os/WorkSource;I)V
+Lcom/android/internal/app/IBatteryStats;->noteBleScanStarted(Landroid/os/WorkSource;Z)V
+Lcom/android/internal/app/IBatteryStats;->noteBleScanStopped(Landroid/os/WorkSource;Z)V
+Lcom/android/internal/app/IBatteryStats;->noteBluetoothControllerActivity(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+Lcom/android/internal/app/IBatteryStats;->noteChangeWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+Lcom/android/internal/app/IBatteryStats;->noteConnectivityChanged(ILjava/lang/String;)V
+Lcom/android/internal/app/IBatteryStats;->noteDeviceIdleMode(ILjava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteEvent(ILjava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteFlashlightOff(I)V
+Lcom/android/internal/app/IBatteryStats;->noteFlashlightOn(I)V
+Lcom/android/internal/app/IBatteryStats;->noteFullWifiLockAcquiredFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteFullWifiLockReleasedFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteGpsChanged(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteGpsSignalQuality(I)V
+Lcom/android/internal/app/IBatteryStats;->noteInteractive(Z)V
+Lcom/android/internal/app/IBatteryStats;->noteJobFinish(Ljava/lang/String;II)V
+Lcom/android/internal/app/IBatteryStats;->noteJobStart(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteLongPartialWakelockFinish(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteLongPartialWakelockFinishFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteLongPartialWakelockStart(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteLongPartialWakelockStartFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteMobileRadioPowerState(IJI)V
+Lcom/android/internal/app/IBatteryStats;->noteModemControllerActivity(Landroid/telephony/ModemActivityInfo;)V
+Lcom/android/internal/app/IBatteryStats;->noteNetworkInterfaceType(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteNetworkStatsEnabled()V
+Lcom/android/internal/app/IBatteryStats;->noteResetAudio()V
+Lcom/android/internal/app/IBatteryStats;->noteResetBleScan()V
+Lcom/android/internal/app/IBatteryStats;->noteResetCamera()V
+Lcom/android/internal/app/IBatteryStats;->noteResetFlashlight()V
+Lcom/android/internal/app/IBatteryStats;->noteResetVideo()V
+Lcom/android/internal/app/IBatteryStats;->noteScreenState(I)V
+Lcom/android/internal/app/IBatteryStats;->noteStartAudio(I)V
+Lcom/android/internal/app/IBatteryStats;->noteStartCamera(I)V
+Lcom/android/internal/app/IBatteryStats;->noteStartVideo(I)V
+Lcom/android/internal/app/IBatteryStats;->noteStartWakelock(IILjava/lang/String;Ljava/lang/String;IZ)V
+Lcom/android/internal/app/IBatteryStats;->noteStartWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+Lcom/android/internal/app/IBatteryStats;->noteStopAudio(I)V
+Lcom/android/internal/app/IBatteryStats;->noteStopCamera(I)V
+Lcom/android/internal/app/IBatteryStats;->noteStopVideo(I)V
+Lcom/android/internal/app/IBatteryStats;->noteStopWakelock(IILjava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteStopWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteSyncFinish(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteSyncStart(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteVibratorOff(I)V
+Lcom/android/internal/app/IBatteryStats;->noteVibratorOn(IJ)V
+Lcom/android/internal/app/IBatteryStats;->noteWakeUp(Ljava/lang/String;I)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiBatchedScanStartedFromSource(Landroid/os/WorkSource;I)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiBatchedScanStoppedFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiControllerActivity(Landroid/net/wifi/WifiActivityEnergyInfo;)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiOff()V
+Lcom/android/internal/app/IBatteryStats;->noteWifiOn()V
+Lcom/android/internal/app/IBatteryStats;->noteWifiRadioPowerState(IJI)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiRssiChanged(I)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiRunning(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiRunningChanged(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiScanStarted(I)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiScanStartedFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiScanStopped(I)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiScanStoppedFromSource(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiState(ILjava/lang/String;)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiStopped(Landroid/os/WorkSource;)V
+Lcom/android/internal/app/IBatteryStats;->noteWifiSupplicantStateChanged(IZ)V
+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
+Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;->copyPackage(Ljava/lang/String;Lcom/android/internal/os/IParcelFileDescriptorFactory;)I
+Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+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
+Lcom/android/internal/app/IMediaContainerService$Stub;->TRANSACTION_clearDirectory:I
+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;
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->getSoundModel(Landroid/os/ParcelUuid;)Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->isRecognitionActive(Landroid/os/ParcelUuid;)Z
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->loadGenericSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;)I
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->loadKeyphraseSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;)I
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->startRecognition(Landroid/os/ParcelUuid;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->startRecognitionForIntent(Landroid/os/ParcelUuid;Landroid/app/PendingIntent;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->startRecognitionForService(Landroid/os/ParcelUuid;Landroid/os/Bundle;Landroid/content/ComponentName;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->stopRecognition(Landroid/os/ParcelUuid;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
+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;
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_deleteSoundModel:I
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_getSoundModel:I
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_isRecognitionActive:I
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_loadGenericSoundModel:I
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_loadKeyphraseSoundModel:I
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_startRecognition:I
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_startRecognitionForIntent:I
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_startRecognitionForService:I
+Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_stopRecognition:I
+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
+Lcom/android/internal/app/ISoundTriggerService;->loadGenericSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;)I
+Lcom/android/internal/app/ISoundTriggerService;->loadKeyphraseSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;)I
+Lcom/android/internal/app/ISoundTriggerService;->startRecognition(Landroid/os/ParcelUuid;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Lcom/android/internal/app/ISoundTriggerService;->startRecognitionForIntent(Landroid/os/ParcelUuid;Landroid/app/PendingIntent;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Lcom/android/internal/app/ISoundTriggerService;->startRecognitionForService(Landroid/os/ParcelUuid;Landroid/os/Bundle;Landroid/content/ComponentName;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+Lcom/android/internal/app/ISoundTriggerService;->stopRecognition(Landroid/os/ParcelUuid;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
+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
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->closeSystemDialogs(Landroid/os/IBinder;)V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->deleteKeyphraseSoundModel(ILjava/lang/String;)I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->deliverNewSession(Landroid/os/IBinder;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->finish(Landroid/os/IBinder;)V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->getActiveServiceComponentName()Landroid/content/ComponentName;
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->getDisabledShowContext()I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->getDspModuleProperties(Landroid/service/voice/IVoiceInteractionService;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->getKeyphraseSoundModel(ILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->getUserDisabledShowContext()I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->hideCurrentSession()V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->hideSessionFromSession(Landroid/os/IBinder;)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->isEnrolledForKeyphrase(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->isSessionRunning()Z
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->launchVoiceAssistFromKeyguard()V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->onLockscreenShown()V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->registerVoiceInteractionSessionListener(Lcom/android/internal/app/IVoiceInteractionSessionListener;)V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->setDisabledShowContext(I)V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->setKeepAwake(Landroid/os/IBinder;Z)V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSession(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;I)V
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSessionForActiveService(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->startAssistantActivity(Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->startRecognition(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+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
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_activeServiceSupportsLaunchFromKeyguard:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_closeSystemDialogs:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_deleteKeyphraseSoundModel:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_deliverNewSession:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_finish:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_getActiveServiceComponentName:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_getDisabledShowContext:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_getDspModuleProperties:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_getKeyphraseSoundModel:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_getUserDisabledShowContext:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_hideCurrentSession:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_hideSessionFromSession:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_isEnrolledForKeyphrase:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_isSessionRunning:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_launchVoiceAssistFromKeyguard:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_onLockscreenShown:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_registerVoiceInteractionSessionListener:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_setDisabledShowContext:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_setKeepAwake:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_showSession:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_showSessionForActiveService:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_showSessionFromSession:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_startAssistantActivity:I
+Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_startRecognition:I
+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
+Lcom/android/internal/app/IVoiceInteractionManagerService;->deleteKeyphraseSoundModel(ILjava/lang/String;)I
+Lcom/android/internal/app/IVoiceInteractionManagerService;->deliverNewSession(Landroid/os/IBinder;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService;->finish(Landroid/os/IBinder;)V
+Lcom/android/internal/app/IVoiceInteractionManagerService;->getActiveServiceComponentName()Landroid/content/ComponentName;
+Lcom/android/internal/app/IVoiceInteractionManagerService;->getDisabledShowContext()I
+Lcom/android/internal/app/IVoiceInteractionManagerService;->getDspModuleProperties(Landroid/service/voice/IVoiceInteractionService;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+Lcom/android/internal/app/IVoiceInteractionManagerService;->getUserDisabledShowContext()I
+Lcom/android/internal/app/IVoiceInteractionManagerService;->hideCurrentSession()V
+Lcom/android/internal/app/IVoiceInteractionManagerService;->hideSessionFromSession(Landroid/os/IBinder;)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService;->isEnrolledForKeyphrase(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService;->isSessionRunning()Z
+Lcom/android/internal/app/IVoiceInteractionManagerService;->launchVoiceAssistFromKeyguard()V
+Lcom/android/internal/app/IVoiceInteractionManagerService;->onLockscreenShown()V
+Lcom/android/internal/app/IVoiceInteractionManagerService;->registerVoiceInteractionSessionListener(Lcom/android/internal/app/IVoiceInteractionSessionListener;)V
+Lcom/android/internal/app/IVoiceInteractionManagerService;->setDisabledShowContext(I)V
+Lcom/android/internal/app/IVoiceInteractionManagerService;->setKeepAwake(Landroid/os/IBinder;Z)V
+Lcom/android/internal/app/IVoiceInteractionManagerService;->showSession(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;I)V
+Lcom/android/internal/app/IVoiceInteractionManagerService;->showSessionForActiveService(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;I)Z
+Lcom/android/internal/app/IVoiceInteractionManagerService;->startAssistantActivity(Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
+Lcom/android/internal/app/IVoiceInteractionManagerService;->startRecognition(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+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;
+Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;->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$Stub$Proxy;->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$Stub$Proxy;->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$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;
+Lcom/android/internal/app/IVoiceInteractor$Stub;->TRANSACTION_startAbortVoice:I
+Lcom/android/internal/app/IVoiceInteractor$Stub;->TRANSACTION_startCommand:I
+Lcom/android/internal/app/IVoiceInteractor$Stub;->TRANSACTION_startCompleteVoice:I
+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
+Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;->deliverCommandResult(Lcom/android/internal/app/IVoiceInteractorRequest;ZLandroid/os/Bundle;)V
+Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;->deliverCompleteVoiceResult(Lcom/android/internal/app/IVoiceInteractorRequest;Landroid/os/Bundle;)V
+Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;->deliverConfirmationResult(Lcom/android/internal/app/IVoiceInteractorRequest;ZLandroid/os/Bundle;)V
+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;
+Lcom/android/internal/app/IVoiceInteractorCallback$Stub;->TRANSACTION_deliverAbortVoiceResult:I
+Lcom/android/internal/app/IVoiceInteractorCallback$Stub;->TRANSACTION_deliverCancel:I
+Lcom/android/internal/app/IVoiceInteractorCallback$Stub;->TRANSACTION_deliverCommandResult:I
+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;
+Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;->providerChanged(ILandroid/appwidget/AppWidgetProviderInfo;)V
+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;
+Lcom/android/internal/appwidget/IAppWidgetHost$Stub;->TRANSACTION_providerChanged:I
+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
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->bindRemoteViewsService(Ljava/lang/String;ILandroid/content/Intent;Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/IServiceConnection;I)Z
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->createAppWidgetConfigIntentSender(Ljava/lang/String;II)Landroid/content/IntentSender;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->deleteAllHosts()V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->deleteAppWidgetId(Ljava/lang/String;I)V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->deleteHost(Ljava/lang/String;I)V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getAppWidgetIds(Landroid/content/ComponentName;)[I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getAppWidgetIdsForHost(Ljava/lang/String;I)[I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getAppWidgetInfo(Ljava/lang/String;I)Landroid/appwidget/AppWidgetProviderInfo;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getAppWidgetOptions(Ljava/lang/String;I)Landroid/os/Bundle;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getAppWidgetViews(Ljava/lang/String;I)Landroid/widget/RemoteViews;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getInstalledProvidersForProfile(IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->hasBindAppWidgetPermission(Ljava/lang/String;I)Z
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->isBoundWidgetPackage(Ljava/lang/String;I)Z
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->isRequestPinAppWidgetSupported()Z
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->notifyAppWidgetViewDataChanged(Ljava/lang/String;[II)V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->partiallyUpdateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;)V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->requestPinAppWidget(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/Bundle;Landroid/content/IntentSender;)Z
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->setBindAppWidgetPermission(Ljava/lang/String;IZ)V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->startListening(Lcom/android/internal/appwidget/IAppWidgetHost;Ljava/lang/String;I[I)Landroid/content/pm/ParceledListSlice;
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->stopListening(Ljava/lang/String;I)V
+Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->updateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;)V
+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
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_createAppWidgetConfigIntentSender:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_deleteAllHosts:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_deleteAppWidgetId:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_deleteHost:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_getAppWidgetIds:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_getAppWidgetIdsForHost:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_getAppWidgetInfo:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_getAppWidgetOptions:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_getAppWidgetViews:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_getInstalledProvidersForProfile:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_hasBindAppWidgetPermission:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_isBoundWidgetPackage:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_isRequestPinAppWidgetSupported:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_notifyAppWidgetViewDataChanged:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_partiallyUpdateAppWidgetIds:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_requestPinAppWidget:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_setBindAppWidgetPermission:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_startListening:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_stopListening:I
+Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_updateAppWidgetIds:I
+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
+Lcom/android/internal/appwidget/IAppWidgetService;->deleteAppWidgetId(Ljava/lang/String;I)V
+Lcom/android/internal/appwidget/IAppWidgetService;->deleteHost(Ljava/lang/String;I)V
+Lcom/android/internal/appwidget/IAppWidgetService;->getAppWidgetIdsForHost(Ljava/lang/String;I)[I
+Lcom/android/internal/appwidget/IAppWidgetService;->getAppWidgetInfo(Ljava/lang/String;I)Landroid/appwidget/AppWidgetProviderInfo;
+Lcom/android/internal/appwidget/IAppWidgetService;->getAppWidgetOptions(Ljava/lang/String;I)Landroid/os/Bundle;
+Lcom/android/internal/appwidget/IAppWidgetService;->getInstalledProvidersForProfile(IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+Lcom/android/internal/appwidget/IAppWidgetService;->hasBindAppWidgetPermission(Ljava/lang/String;I)Z
+Lcom/android/internal/appwidget/IAppWidgetService;->isBoundWidgetPackage(Ljava/lang/String;I)Z
+Lcom/android/internal/appwidget/IAppWidgetService;->isRequestPinAppWidgetSupported()Z
+Lcom/android/internal/appwidget/IAppWidgetService;->notifyAppWidgetViewDataChanged(Ljava/lang/String;[II)V
+Lcom/android/internal/appwidget/IAppWidgetService;->partiallyUpdateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;)V
+Lcom/android/internal/appwidget/IAppWidgetService;->requestPinAppWidget(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/Bundle;Landroid/content/IntentSender;)Z
+Lcom/android/internal/appwidget/IAppWidgetService;->setBindAppWidgetPermission(Ljava/lang/String;IZ)V
+Lcom/android/internal/appwidget/IAppWidgetService;->startListening(Lcom/android/internal/appwidget/IAppWidgetHost;Ljava/lang/String;I[I)Landroid/content/pm/ParceledListSlice;
+Lcom/android/internal/appwidget/IAppWidgetService;->stopListening(Ljava/lang/String;I)V
+Lcom/android/internal/appwidget/IAppWidgetService;->updateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;)V
+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
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->checkFullBackupSize(J)I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->clearBackupData(Landroid/content/pm/PackageInfo;)I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->configurationIntent()Landroid/content/Intent;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->currentDestinationString()Ljava/lang/String;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->dataManagementIntent()Landroid/content/Intent;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->dataManagementLabel()Ljava/lang/String;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->finishBackup()I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->finishRestore()V
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getAvailableRestoreSets()[Landroid/app/backup/RestoreSet;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getBackupQuota(Ljava/lang/String;Z)J
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getCurrentRestoreSet()J
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getNextFullRestoreDataChunk(Landroid/os/ParcelFileDescriptor;)I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getRestoreData(Landroid/os/ParcelFileDescriptor;)I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getTransportFlags()I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->initializeDevice()I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->isAppEligibleForBackup(Landroid/content/pm/PackageInfo;Z)Z
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->name()Ljava/lang/String;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->nextRestorePackage()Landroid/app/backup/RestoreDescription;
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->performBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->performFullBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->requestBackupTime()J
+Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->requestFullBackupTime()J
+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
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_checkFullBackupSize:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_clearBackupData:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_configurationIntent:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_currentDestinationString:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_dataManagementIntent:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_dataManagementLabel:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_finishBackup:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_finishRestore:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_getAvailableRestoreSets:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_getBackupQuota:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_getCurrentRestoreSet:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_getNextFullRestoreDataChunk:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_getRestoreData:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_getTransportFlags:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_initializeDevice:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_isAppEligibleForBackup:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_name:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_nextRestorePackage:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_performBackup:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_performFullBackup:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_requestBackupTime:I
+Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_requestFullBackupTime:I
+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
+Lcom/android/internal/backup/IBackupTransport;->configurationIntent()Landroid/content/Intent;
+Lcom/android/internal/backup/IBackupTransport;->currentDestinationString()Ljava/lang/String;
+Lcom/android/internal/backup/IBackupTransport;->dataManagementIntent()Landroid/content/Intent;
+Lcom/android/internal/backup/IBackupTransport;->dataManagementLabel()Ljava/lang/String;
+Lcom/android/internal/backup/IBackupTransport;->getAvailableRestoreSets()[Landroid/app/backup/RestoreSet;
+Lcom/android/internal/backup/IBackupTransport;->getBackupQuota(Ljava/lang/String;Z)J
+Lcom/android/internal/backup/IBackupTransport;->getCurrentRestoreSet()J
+Lcom/android/internal/backup/IBackupTransport;->getNextFullRestoreDataChunk(Landroid/os/ParcelFileDescriptor;)I
+Lcom/android/internal/backup/IBackupTransport;->getTransportFlags()I
+Lcom/android/internal/backup/IBackupTransport;->isAppEligibleForBackup(Landroid/content/pm/PackageInfo;Z)Z
+Lcom/android/internal/backup/IBackupTransport;->name()Ljava/lang/String;
+Lcom/android/internal/backup/IBackupTransport;->nextRestorePackage()Landroid/app/backup/RestoreDescription;
+Lcom/android/internal/backup/IBackupTransport;->performBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+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
+Lcom/android/internal/content/PackageMonitor;->getChangingUserId()I
+Lcom/android/internal/content/PackageMonitor;->getPackageName(Landroid/content/Intent;)Ljava/lang/String;
+Lcom/android/internal/content/PackageMonitor;->getRegisteredHandler()Landroid/os/Handler;
+Lcom/android/internal/content/PackageMonitor;->isComponentModified(Ljava/lang/String;)Z
+Lcom/android/internal/content/PackageMonitor;->isPackageAppearing(Ljava/lang/String;)I
+Lcom/android/internal/content/PackageMonitor;->isPackageUpdating(Ljava/lang/String;)Z
+Lcom/android/internal/content/PackageMonitor;->isReplacing()Z
+Lcom/android/internal/content/PackageMonitor;->mAppearingPackages:[Ljava/lang/String;
+Lcom/android/internal/content/PackageMonitor;->mChangeType:I
+Lcom/android/internal/content/PackageMonitor;->mChangeUserId:I
+Lcom/android/internal/content/PackageMonitor;->mDisappearingPackages:[Ljava/lang/String;
+Lcom/android/internal/content/PackageMonitor;->mModifiedComponents:[Ljava/lang/String;
+Lcom/android/internal/content/PackageMonitor;->mModifiedPackages:[Ljava/lang/String;
+Lcom/android/internal/content/PackageMonitor;->mRegisteredContext:Landroid/content/Context;
+Lcom/android/internal/content/PackageMonitor;->mRegisteredHandler:Landroid/os/Handler;
+Lcom/android/internal/content/PackageMonitor;->mSomePackagesChanged:Z
+Lcom/android/internal/content/PackageMonitor;->mTempArray:[Ljava/lang/String;
+Lcom/android/internal/content/PackageMonitor;->mUpdatingPackages:Ljava/util/HashSet;
+Lcom/android/internal/content/PackageMonitor;->onBeginPackageChanges()V
+Lcom/android/internal/content/PackageMonitor;->onFinishPackageChanges()V
+Lcom/android/internal/content/PackageMonitor;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
+Lcom/android/internal/content/PackageMonitor;->onHandleUserStop(Landroid/content/Intent;I)V
+Lcom/android/internal/content/PackageMonitor;->onPackageAdded(Ljava/lang/String;I)V
+Lcom/android/internal/content/PackageMonitor;->onPackageAppeared(Ljava/lang/String;I)V
+Lcom/android/internal/content/PackageMonitor;->onPackageDataCleared(Ljava/lang/String;I)V
+Lcom/android/internal/content/PackageMonitor;->onPackageDisappeared(Ljava/lang/String;I)V
+Lcom/android/internal/content/PackageMonitor;->onPackageModified(Ljava/lang/String;)V
+Lcom/android/internal/content/PackageMonitor;->onPackageRemovedAllUsers(Ljava/lang/String;I)V
+Lcom/android/internal/content/PackageMonitor;->onPackagesAvailable([Ljava/lang/String;)V
+Lcom/android/internal/content/PackageMonitor;->onPackagesSuspended([Ljava/lang/String;)V
+Lcom/android/internal/content/PackageMonitor;->onPackagesSuspended([Ljava/lang/String;Landroid/os/Bundle;)V
+Lcom/android/internal/content/PackageMonitor;->onPackagesUnavailable([Ljava/lang/String;)V
+Lcom/android/internal/content/PackageMonitor;->onPackagesUnsuspended([Ljava/lang/String;)V
+Lcom/android/internal/content/PackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
+Lcom/android/internal/content/PackageMonitor;->onPackageUpdateStarted(Ljava/lang/String;I)V
+Lcom/android/internal/content/PackageMonitor;->onSomePackagesChanged()V
+Lcom/android/internal/content/PackageMonitor;->onUidRemoved(I)V
+Lcom/android/internal/content/PackageMonitor;->PACKAGE_PERMANENT_CHANGE:I
+Lcom/android/internal/content/PackageMonitor;->PACKAGE_TEMPORARY_CHANGE:I
+Lcom/android/internal/content/PackageMonitor;->PACKAGE_UNCHANGED:I
+Lcom/android/internal/content/PackageMonitor;->PACKAGE_UPDATING:I
+Lcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/UserHandle;ZLandroid/os/Handler;)V
+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
+Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->getProperties()Lcom/android/internal/location/ProviderProperties;
+Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->getStatus(Landroid/os/Bundle;)I
+Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->getStatusUpdateTime()J
+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
+Lcom/android/internal/location/ILocationProvider$Stub;->TRANSACTION_getProperties:I
+Lcom/android/internal/location/ILocationProvider$Stub;->TRANSACTION_getStatus:I
+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
+Lcom/android/internal/location/ProviderProperties;->mHasMonetaryCost:Z
+Lcom/android/internal/location/ProviderProperties;->mPowerRequirement:I
+Lcom/android/internal/location/ProviderProperties;->mRequiresCell:Z
+Lcom/android/internal/location/ProviderProperties;->mRequiresNetwork:Z
+Lcom/android/internal/location/ProviderProperties;->mRequiresSatellite:Z
+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
+Lcom/android/internal/logging/EventLogTags;->SYSUI_COUNT:I
+Lcom/android/internal/logging/EventLogTags;->SYSUI_HISTOGRAM:I
+Lcom/android/internal/logging/EventLogTags;->SYSUI_LATENCY:I
+Lcom/android/internal/logging/EventLogTags;->SYSUI_MULTI_ACTION:I
+Lcom/android/internal/logging/EventLogTags;->SYSUI_VIEW_VISIBILITY:I
+Lcom/android/internal/logging/EventLogTags;->writeCommitSysConfigFile(Ljava/lang/String;J)V
+Lcom/android/internal/logging/EventLogTags;->writeSysuiAction(ILjava/lang/String;)V
+Lcom/android/internal/logging/EventLogTags;->writeSysuiCount(Ljava/lang/String;I)V
+Lcom/android/internal/logging/EventLogTags;->writeSysuiHistogram(Ljava/lang/String;I)V
+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
+Lcom/android/internal/logging/MetricsLogger;->action(IZ)V
+Lcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;I)V
+Lcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;II)V
+Lcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;ILjava/lang/String;)V
+Lcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;IZ)V
+Lcom/android/internal/logging/MetricsLogger;->action(Landroid/metrics/LogMaker;)V
+Lcom/android/internal/logging/MetricsLogger;->count(Landroid/content/Context;Ljava/lang/String;I)V
+Lcom/android/internal/logging/MetricsLogger;->count(Ljava/lang/String;I)V
+Lcom/android/internal/logging/MetricsLogger;->getLogger()Lcom/android/internal/logging/MetricsLogger;
+Lcom/android/internal/logging/MetricsLogger;->hidden(I)V
+Lcom/android/internal/logging/MetricsLogger;->hidden(Landroid/content/Context;I)V
+Lcom/android/internal/logging/MetricsLogger;->histogram(Landroid/content/Context;Ljava/lang/String;I)V
+Lcom/android/internal/logging/MetricsLogger;->histogram(Ljava/lang/String;I)V
+Lcom/android/internal/logging/MetricsLogger;->LOGTAG:I
+Lcom/android/internal/logging/MetricsLogger;->saveLog([Ljava/lang/Object;)V
+Lcom/android/internal/logging/MetricsLogger;->sMetricsLogger:Lcom/android/internal/logging/MetricsLogger;
+Lcom/android/internal/logging/MetricsLogger;->VIEW_UNKNOWN:I
+Lcom/android/internal/logging/MetricsLogger;->visibility(II)V
+Lcom/android/internal/logging/MetricsLogger;->visibility(IZ)V
+Lcom/android/internal/logging/MetricsLogger;->visibility(Landroid/content/Context;II)V
+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
+Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;->reloadWatchlist()V
+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;
+Lcom/android/internal/net/INetworkWatchlistManager$Stub;->TRANSACTION_getWatchlistConfigHash:I
+Lcom/android/internal/net/INetworkWatchlistManager$Stub;->TRANSACTION_reloadWatchlist:I
+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
+Lcom/android/internal/net/LegacyVpnInfo;->STATE_CONNECTING:I
+Lcom/android/internal/net/LegacyVpnInfo;->STATE_DISCONNECTED:I
+Lcom/android/internal/net/LegacyVpnInfo;->STATE_FAILED:I
+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
+Lcom/android/internal/net/NetworkStatsFactory;->assertEquals(Landroid/net/NetworkStats;Landroid/net/NetworkStats;)V
+Lcom/android/internal/net/NetworkStatsFactory;->augmentWithStackedInterfaces([Ljava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/net/NetworkStatsFactory;->clearStackedIfaces()V
+Lcom/android/internal/net/NetworkStatsFactory;->javaReadNetworkStatsDetail(Ljava/io/File;I[Ljava/lang/String;I)Landroid/net/NetworkStats;
+Lcom/android/internal/net/NetworkStatsFactory;->mStatsXtIfaceAll:Ljava/io/File;
+Lcom/android/internal/net/NetworkStatsFactory;->mStatsXtIfaceFmt:Ljava/io/File;
+Lcom/android/internal/net/NetworkStatsFactory;->mStatsXtUid:Ljava/io/File;
+Lcom/android/internal/net/NetworkStatsFactory;->mUseBpfStats:Z
+Lcom/android/internal/net/NetworkStatsFactory;->nativeReadNetworkStatsDetail(Landroid/net/NetworkStats;Ljava/lang/String;I[Ljava/lang/String;IZ)I
+Lcom/android/internal/net/NetworkStatsFactory;->nativeReadNetworkStatsDev(Landroid/net/NetworkStats;)I
+Lcom/android/internal/net/NetworkStatsFactory;->noteStackedIface(Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/net/NetworkStatsFactory;->readBpfNetworkStatsDev()Landroid/net/NetworkStats;
+Lcom/android/internal/net/NetworkStatsFactory;->readNetworkStatsDetail()Landroid/net/NetworkStats;
+Lcom/android/internal/net/NetworkStatsFactory;->readNetworkStatsDetail(I[Ljava/lang/String;ILandroid/net/NetworkStats;)Landroid/net/NetworkStats;
+Lcom/android/internal/net/NetworkStatsFactory;->readNetworkStatsDetailInternal(I[Ljava/lang/String;ILandroid/net/NetworkStats;)Landroid/net/NetworkStats;
+Lcom/android/internal/net/NetworkStatsFactory;->readNetworkStatsSummaryDev()Landroid/net/NetworkStats;
+Lcom/android/internal/net/NetworkStatsFactory;->readNetworkStatsSummaryXt()Landroid/net/NetworkStats;
+Lcom/android/internal/net/NetworkStatsFactory;->SANITY_CHECK_NATIVE:Z
+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;
+Lcom/android/internal/net/VpnConfig;->allowBypass:Z
+Lcom/android/internal/net/VpnConfig;->allowedApplications:Ljava/util/List;
+Lcom/android/internal/net/VpnConfig;->allowIPv4:Z
+Lcom/android/internal/net/VpnConfig;->allowIPv6:Z
+Lcom/android/internal/net/VpnConfig;->blocking:Z
+Lcom/android/internal/net/VpnConfig;->configureIntent:Landroid/app/PendingIntent;
+Lcom/android/internal/net/VpnConfig;->CREATOR:Landroid/os/Parcelable$Creator;
+Lcom/android/internal/net/VpnConfig;->DIALOGS_PACKAGE:Ljava/lang/String;
+Lcom/android/internal/net/VpnConfig;->disallowedApplications:Ljava/util/List;
+Lcom/android/internal/net/VpnConfig;->dnsServers:Ljava/util/List;
+Lcom/android/internal/net/VpnConfig;->getIntentForConfirmation()Landroid/content/Intent;
+Lcom/android/internal/net/VpnConfig;->getIntentForStatusPanel(Landroid/content/Context;)Landroid/app/PendingIntent;
+Lcom/android/internal/net/VpnConfig;->getVpnLabel(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/CharSequence;
+Lcom/android/internal/net/VpnConfig;->interfaze:Ljava/lang/String;
+Lcom/android/internal/net/VpnConfig;->legacy:Z
+Lcom/android/internal/net/VpnConfig;->LEGACY_VPN:Ljava/lang/String;
+Lcom/android/internal/net/VpnConfig;->mtu:I
+Lcom/android/internal/net/VpnConfig;->routes:Ljava/util/List;
+Lcom/android/internal/net/VpnConfig;->searchDomains:Ljava/util/List;
+Lcom/android/internal/net/VpnConfig;->SERVICE_INTERFACE:Ljava/lang/String;
+Lcom/android/internal/net/VpnConfig;->session:Ljava/lang/String;
+Lcom/android/internal/net/VpnConfig;->startTime:J
+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;
+Lcom/android/internal/net/VpnProfile;->dnsServers:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->encode()[B
+Lcom/android/internal/net/VpnProfile;->hasDns()Z
+Lcom/android/internal/net/VpnProfile;->ipsecCaCert:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->ipsecIdentifier:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->ipsecSecret:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->ipsecServerCert:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->ipsecUserCert:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->isServerAddressNumeric()Z
+Lcom/android/internal/net/VpnProfile;->isTypeValidForLockdown()Z
+Lcom/android/internal/net/VpnProfile;->isValidLockdownProfile()Z
+Lcom/android/internal/net/VpnProfile;->l2tpSecret:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->mppe:Z
+Lcom/android/internal/net/VpnProfile;->password:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->routes:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->searchDomains:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->TAG:Ljava/lang/String;
+Lcom/android/internal/net/VpnProfile;->TYPE_IPSEC_HYBRID_RSA:I
+Lcom/android/internal/net/VpnProfile;->TYPE_IPSEC_XAUTH_PSK:I
+Lcom/android/internal/net/VpnProfile;->TYPE_IPSEC_XAUTH_RSA:I
+Lcom/android/internal/net/VpnProfile;->TYPE_L2TP_IPSEC_PSK:I
+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;
+Lcom/android/internal/os/BatterySipper$DrainType;->CELL:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper$DrainType;->FLASHLIGHT:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper$DrainType;->IDLE:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper$DrainType;->MEMORY:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper$DrainType;->OVERCOUNTED:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper$DrainType;->PHONE:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper$DrainType;->SCREEN:Lcom/android/internal/os/BatterySipper$DrainType;
+Lcom/android/internal/os/BatterySipper$DrainType;->UNACCOUNTED:Lcom/android/internal/os/BatterySipper$DrainType;
+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
+Lcom/android/internal/os/BatterySipper;->bluetoothRunningTimeMs:J
+Lcom/android/internal/os/BatterySipper;->btRxBytes:J
+Lcom/android/internal/os/BatterySipper;->btTxBytes:J
+Lcom/android/internal/os/BatterySipper;->cameraPowerMah:D
+Lcom/android/internal/os/BatterySipper;->cameraTimeMs:J
+Lcom/android/internal/os/BatterySipper;->compareTo(Lcom/android/internal/os/BatterySipper;)I
+Lcom/android/internal/os/BatterySipper;->computeMobilemspp()V
+Lcom/android/internal/os/BatterySipper;->flashlightPowerMah:D
+Lcom/android/internal/os/BatterySipper;->flashlightTimeMs:J
+Lcom/android/internal/os/BatterySipper;->gpsPowerMah:D
+Lcom/android/internal/os/BatterySipper;->mobileActive:J
+Lcom/android/internal/os/BatterySipper;->mobileActiveCount:I
+Lcom/android/internal/os/BatterySipper;->mobilemspp:D
+Lcom/android/internal/os/BatterySipper;->mobileRadioPowerMah:D
+Lcom/android/internal/os/BatterySipper;->mobileRxBytes:J
+Lcom/android/internal/os/BatterySipper;->mobileRxPackets:J
+Lcom/android/internal/os/BatterySipper;->mobileTxBytes:J
+Lcom/android/internal/os/BatterySipper;->mobileTxPackets:J
+Lcom/android/internal/os/BatterySipper;->noCoveragePercent:D
+Lcom/android/internal/os/BatterySipper;->percent:D
+Lcom/android/internal/os/BatterySipper;->proportionalSmearMah:D
+Lcom/android/internal/os/BatterySipper;->screenPowerMah:D
+Lcom/android/internal/os/BatterySipper;->sensorPowerMah:D
+Lcom/android/internal/os/BatterySipper;->shouldHide:Z
+Lcom/android/internal/os/BatterySipper;->sumPower()D
+Lcom/android/internal/os/BatterySipper;->totalSmearedPowerMah:D
+Lcom/android/internal/os/BatterySipper;->usagePowerMah:D
+Lcom/android/internal/os/BatterySipper;->videoPowerMah:D
+Lcom/android/internal/os/BatterySipper;->videoTimeMs:J
+Lcom/android/internal/os/BatterySipper;->wakeLockPowerMah:D
+Lcom/android/internal/os/BatterySipper;->wifiPowerMah:D
+Lcom/android/internal/os/BatterySipper;->wifiRxBytes:J
+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;
+Lcom/android/internal/os/BatteryStatsHelper;->addIdleUsage()V
+Lcom/android/internal/os/BatteryStatsHelper;->addMemoryUsage()V
+Lcom/android/internal/os/BatteryStatsHelper;->addPhoneUsage()V
+Lcom/android/internal/os/BatteryStatsHelper;->addRadioUsage()V
+Lcom/android/internal/os/BatteryStatsHelper;->addScreenUsage()V
+Lcom/android/internal/os/BatteryStatsHelper;->addUserUsage()V
+Lcom/android/internal/os/BatteryStatsHelper;->addWiFiUsage()V
+Lcom/android/internal/os/BatteryStatsHelper;->aggregateSippers(Lcom/android/internal/os/BatterySipper;Ljava/util/List;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsHelper;->checkHasBluetoothPowerReporting(Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
+Lcom/android/internal/os/BatteryStatsHelper;->checkHasWifiPowerReporting(Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
+Lcom/android/internal/os/BatteryStatsHelper;->checkWifiOnly(Landroid/content/Context;)Z
+Lcom/android/internal/os/BatteryStatsHelper;->convertMsToUs(J)J
+Lcom/android/internal/os/BatteryStatsHelper;->convertUsToMs(J)J
+Lcom/android/internal/os/BatteryStatsHelper;->create(Landroid/os/BatteryStats;)V
+Lcom/android/internal/os/BatteryStatsHelper;->DEBUG:Z
+Lcom/android/internal/os/BatteryStatsHelper;->getComputedPower()D
+Lcom/android/internal/os/BatteryStatsHelper;->getForegroundActivityTotalTimeUs(Landroid/os/BatteryStats$Uid;J)J
+Lcom/android/internal/os/BatteryStatsHelper;->getMaxDrainedPower()D
+Lcom/android/internal/os/BatteryStatsHelper;->getMaxRealPower()D
+Lcom/android/internal/os/BatteryStatsHelper;->getMinDrainedPower()D
+Lcom/android/internal/os/BatteryStatsHelper;->getMobilemsppList()Ljava/util/List;
+Lcom/android/internal/os/BatteryStatsHelper;->getPowerProfile()Lcom/android/internal/os/PowerProfile;
+Lcom/android/internal/os/BatteryStatsHelper;->getProcessForegroundTimeMs(Landroid/os/BatteryStats$Uid;I)J
+Lcom/android/internal/os/BatteryStatsHelper;->getStats(Lcom/android/internal/app/IBatteryStats;)Lcom/android/internal/os/BatteryStatsImpl;
+Lcom/android/internal/os/BatteryStatsHelper;->getStatsPeriod()J
+Lcom/android/internal/os/BatteryStatsHelper;->getStatsType()I
+Lcom/android/internal/os/BatteryStatsHelper;->isTypeService(Lcom/android/internal/os/BatterySipper;)Z
+Lcom/android/internal/os/BatteryStatsHelper;->isTypeSystem(Lcom/android/internal/os/BatterySipper;)Z
+Lcom/android/internal/os/BatteryStatsHelper;->makeFilePath(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
+Lcom/android/internal/os/BatteryStatsHelper;->makemAh(D)Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsHelper;->mBatteryBroadcast:Landroid/content/Intent;
+Lcom/android/internal/os/BatteryStatsHelper;->mBatteryRealtimeUs:J
+Lcom/android/internal/os/BatteryStatsHelper;->mBatteryTimeRemainingUs:J
+Lcom/android/internal/os/BatteryStatsHelper;->mBatteryUptimeUs:J
+Lcom/android/internal/os/BatteryStatsHelper;->mBluetoothPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mBluetoothSippers:Ljava/util/List;
+Lcom/android/internal/os/BatteryStatsHelper;->mCameraPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mChargeTimeRemainingUs:J
+Lcom/android/internal/os/BatteryStatsHelper;->mCollectBatteryBroadcast:Z
+Lcom/android/internal/os/BatteryStatsHelper;->mComputedPower:D
+Lcom/android/internal/os/BatteryStatsHelper;->mContext:Landroid/content/Context;
+Lcom/android/internal/os/BatteryStatsHelper;->mCpuPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mFlashlightPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mHasBluetoothPowerReporting:Z
+Lcom/android/internal/os/BatteryStatsHelper;->mHasWifiPowerReporting:Z
+Lcom/android/internal/os/BatteryStatsHelper;->mMaxDrainedPower:D
+Lcom/android/internal/os/BatteryStatsHelper;->mMaxPower:D
+Lcom/android/internal/os/BatteryStatsHelper;->mMaxRealPower:D
+Lcom/android/internal/os/BatteryStatsHelper;->mMediaPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mMemoryPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mMinDrainedPower:D
+Lcom/android/internal/os/BatteryStatsHelper;->mMobilemsppList:Ljava/util/List;
+Lcom/android/internal/os/BatteryStatsHelper;->mMobileRadioPowerCalculator:Lcom/android/internal/os/MobileRadioPowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mPackageManager:Landroid/content/pm/PackageManager;
+Lcom/android/internal/os/BatteryStatsHelper;->mRawRealtimeUs:J
+Lcom/android/internal/os/BatteryStatsHelper;->mRawUptimeUs:J
+Lcom/android/internal/os/BatteryStatsHelper;->mSensorPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mServicepackageArray:[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsHelper;->mStats:Landroid/os/BatteryStats;
+Lcom/android/internal/os/BatteryStatsHelper;->mStatsPeriod:J
+Lcom/android/internal/os/BatteryStatsHelper;->mStatsType:I
+Lcom/android/internal/os/BatteryStatsHelper;->mSystemPackageArray:[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsHelper;->mTotalPower:D
+Lcom/android/internal/os/BatteryStatsHelper;->mTypeBatteryRealtimeUs:J
+Lcom/android/internal/os/BatteryStatsHelper;->mTypeBatteryUptimeUs:J
+Lcom/android/internal/os/BatteryStatsHelper;->mUserSippers:Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsHelper;->mWakelockPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mWifiOnly:Z
+Lcom/android/internal/os/BatteryStatsHelper;->mWifiPowerCalculator:Lcom/android/internal/os/PowerCalculator;
+Lcom/android/internal/os/BatteryStatsHelper;->mWifiSippers:Ljava/util/List;
+Lcom/android/internal/os/BatteryStatsHelper;->processAppUsage(Landroid/util/SparseArray;)V
+Lcom/android/internal/os/BatteryStatsHelper;->processMiscUsage()V
+Lcom/android/internal/os/BatteryStatsHelper;->readFully(Ljava/io/FileInputStream;)[B
+Lcom/android/internal/os/BatteryStatsHelper;->readFully(Ljava/io/FileInputStream;I)[B
+Lcom/android/internal/os/BatteryStatsHelper;->refreshStats(ILandroid/util/SparseArray;JJ)V
+Lcom/android/internal/os/BatteryStatsHelper;->removeHiddenBatterySippers(Ljava/util/List;)D
+Lcom/android/internal/os/BatteryStatsHelper;->sBatteryBroadcastXfer:Landroid/content/Intent;
+Lcom/android/internal/os/BatteryStatsHelper;->setPackageManager(Landroid/content/pm/PackageManager;)V
+Lcom/android/internal/os/BatteryStatsHelper;->setServicePackageArray([Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsHelper;->setSystemPackageArray([Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsHelper;->sFileXfer:Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsHelper;->shouldHideSipper(Lcom/android/internal/os/BatterySipper;)Z
+Lcom/android/internal/os/BatteryStatsHelper;->smearScreenBatterySipper(Ljava/util/List;Lcom/android/internal/os/BatterySipper;)V
+Lcom/android/internal/os/BatteryStatsHelper;->sStatsXfer:Landroid/os/BatteryStats;
+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
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->addDuration(Lcom/android/internal/os/BatteryStatsImpl;J)V
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeCurrentCountLocked()I
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeOverage(J)J
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeRunTimeLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->logState(Landroid/util/Printer;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->mInDischarge:Z
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->mLastAddedDuration:J
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->mLastAddedTime:J
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->mUid:Lcom/android/internal/os/BatteryStatsImpl$Uid;
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->onTimeStarted(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->onTimeStopped(JJJ)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;->set(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->DEFAULT_KERNEL_UID_READERS_THROTTLE_TIME:J
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->DEFAULT_PROC_STATE_CPU_TIMES_READ_DELAY_MS:J
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->DEFAULT_TRACK_CPU_ACTIVE_CLUSTER_TIME:Z
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->DEFAULT_TRACK_CPU_TIMES_BY_PROC_STATE:Z
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->DEFAULT_UID_REMOVE_DELAY_MS:J
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->dumpLocked(Ljava/io/PrintWriter;)V
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->EXTERNAL_STATS_COLLECTION_RATE_LIMIT_MS:J
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->KERNEL_UID_READERS_THROTTLE_TIME:J
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->KEY_BATTERY_LEVEL_COLLECTION_DELAY_MS:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->KEY_EXTERNAL_STATS_COLLECTION_RATE_LIMIT_MS:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->KEY_KERNEL_UID_READERS_THROTTLE_TIME:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->KEY_PROC_STATE_CPU_TIMES_READ_DELAY_MS:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->KEY_TRACK_CPU_ACTIVE_CLUSTER_TIME:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->KEY_TRACK_CPU_TIMES_BY_PROC_STATE:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->KEY_UID_REMOVE_DELAY_MS:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->mParser:Landroid/util/KeyValueListParser;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->mResolver:Landroid/content/ContentResolver;
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->PROC_STATE_CPU_TIMES_READ_DELAY_MS:J
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->startObserving(Landroid/content/ContentResolver;)V
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->TRACK_CPU_ACTIVE_CLUSTER_TIME:Z
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->TRACK_CPU_TIMES_BY_PROC_STATE:Z
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->UID_REMOVE_DELAY_MS:J
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->updateConstants()V
+Lcom/android/internal/os/BatteryStatsImpl$Constants;->updateKernelUidReadersThrottleTime(JJ)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getIdleTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getPowerCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getRxTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getScanTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getSleepTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getTxTimeCounters()[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->mIdleTimeMillis:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->mPowerDrainMaMs:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->mRxTimeMillis:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->mScanTimeMillis:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->mSleepTimeMillis:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->mTxTimeMillis:[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+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
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->detach()V
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->getCountLocked(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->logState(Landroid/util/Printer;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->mLoadedCount:I
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->mPluggedCount:I
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->mTimeBase:Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->mUnpluggedCount:I
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->onTimeStarted(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->onTimeStopped(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->readCounterFromParcel(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->reset(Z)V
+Lcom/android/internal/os/BatteryStatsImpl$Counter;->stepAtomic()V
+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
+Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->getSubTimer()Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;
+Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->mSubTimer:Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;
+Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->reset(Z)Z
+Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->startRunningLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->stopAllRunningLocked(J)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getMaxDurationMsLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getTotalDurationMsLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->logState(Landroid/util/Printer;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->mCurrentDurationMs:J
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->mMaxDurationMs:J
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->mStartTimeMs:J
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->mTotalDurationMs:J
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->onTimeStarted(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->onTimeStopped(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->reset(Z)Z
+Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->startRunningLocked(J)V
+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;
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->scheduleCpuSyncDueToScreenStateChange(ZZ)Ljava/util/concurrent/Future;
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->scheduleCpuSyncDueToSettingChange()Ljava/util/concurrent/Future;
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->scheduleCpuSyncDueToWakelockChange(J)Ljava/util/concurrent/Future;
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->scheduleReadProcStateCpuTimes(ZZJ)Ljava/util/concurrent/Future;
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->scheduleSync(Ljava/lang/String;I)Ljava/util/concurrent/Future;
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->scheduleSyncDueToBatteryLevelChange(J)Ljava/util/concurrent/Future;
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->UPDATE_ALL:I
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->UPDATE_BT:I
+Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->UPDATE_CPU:I
+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
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->addCountLocked(JZ)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->detach()V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->getCountLocked(I)J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->logState(Landroid/util/Printer;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->mCount:J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->mCurrentCount:J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->mLoadedCount:J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->mTimeBase:Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->mUnpluggedCount:J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->onTimeStarted(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->onTimeStopped(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->reset(Z)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->update(J)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->addCountLocked([JZ)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->copyArray([J[J)[J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->detach()V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->fillArray([JJ)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->getCountsLocked(I)[J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->getSize()I
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->logState(Landroid/util/Printer;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->mCounts:[J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->mLoadedCounts:[J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->mTimeBase:Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->mUnpluggedCounts:[J
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->onTimeStarted(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->onTimeStopped(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->readFromParcel(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->readSummaryFromParcelLocked(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->reset(Z)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->subtract([J[J)V
+Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeSummaryToParcelLocked(Landroid/os/Parcel;)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->getMap()Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->instantiateObject()Ljava/lang/Object;
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->mActiveOverflow:Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->mCurOverflow:Ljava/lang/Object;
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->mLastCleanupTime:J
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->mLastClearTime:J
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->mLastOverflowFinishTime:J
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->mLastOverflowTime:J
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->mMap:Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->mUid:I
+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
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->computeCurrentCountLocked()I
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->computeRunTimeLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->endSample()V
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->getUpdateVersion()I
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->logState(Landroid/util/Printer;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->mCurrentReportedCount:I
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->mCurrentReportedTotalTime:J
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->mTimeBaseRunning:Z
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->mTrackingReportedValues:Z
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->mUnpluggedReportedCount:I
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->mUnpluggedReportedTotalTime:J
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->mUpdateVersion:I
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->onTimeStarted(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->onTimeStopped(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->reset(Z)Z
+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
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->computeRunTimeLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->isRunningLocked()Z
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->logState(Landroid/util/Printer;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->mAcquireTime:J
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->mInList:Z
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->mNesting:I
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->mTimeout:J
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->mTimerPool:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->mUid:Lcom/android/internal/os/BatteryStatsImpl$Uid;
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->mUpdateTime:J
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->onTimeStopped(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->refreshTimersLocked(JLjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;)J
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->reset(Z)Z
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->setMark(J)V
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->setTimeout(J)V
+Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->startRunningLocked(J)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->computeUptime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->getRealtime(J)J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->getRealtimeStart()J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->getUptime(J)J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->getUptimeStart()J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->hasObserver(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)Z
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->init(JJ)V
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->isRunning()Z
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mObservers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mPastRealtime:J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mPastUptime:J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mRealtime:J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mRealtimeStart:J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mRunning:Z
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mUnpluggedRealtime:J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mUnpluggedUptime:J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mUptime:J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->mUptimeStart:J
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->readSummaryFromParcel(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->remove(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->reset(JJ)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->computeRunTimeLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->detach()V
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->getTimeSinceMarkLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->logState(Landroid/util/Printer;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mClocks:Lcom/android/internal/os/BatteryStatsImpl$Clocks;
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mCount:I
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mLastCount:I
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mLastTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mLoadedCount:I
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mLoadedTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mTimeBase:Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mTimeBeforeMark:J
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mTotalTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mType:I
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mUnpluggedCount:I
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->mUnpluggedTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->onTimeStarted(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->onTimeStopped(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Timer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getLaunchTimeToNowLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStarts(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStartTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStartTimeToNowLocked(J)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mBsi:Lcom/android/internal/os/BatteryStatsImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLastLaunches:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLastStarts:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLastStartTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLaunched:Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLaunchedSince:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLaunchedTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLaunches:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLoadedLaunches:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLoadedStarts:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mLoadedStartTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mPkg:Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mRunning:Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mRunningSince:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mStarts:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mStartTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mUnpluggedLaunches:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mUnpluggedStarts:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->mUnpluggedStartTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->onTimeStarted(JJJ)V
+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;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->getWakeupAlarmStats()Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->mBsi:Lcom/android/internal/os/BatteryStatsImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->mServiceStats:Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->mWakeupAlarms:Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->newServiceStatsLocked()Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->noteWakeupAlarmLocked(Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->onTimeStarted(JJJ)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->countExcessivePowers()I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->detach()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getExcessivePower(I)Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getNumAnrs(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getNumCrashes(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->incNumAnrsLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->incNumCrashesLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->isActive()Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mActive:Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mBsi:Lcom/android/internal/os/BatteryStatsImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mExcessivePower:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mForegroundTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mLoadedForegroundTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mLoadedNumAnrs:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mLoadedNumCrashes:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mLoadedStarts:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mLoadedSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mLoadedUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mName:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mNumAnrs:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mNumCrashes:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mStarts:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mUnpluggedForegroundTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mUnpluggedNumAnrs:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mUnpluggedNumCrashes:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mUnpluggedStarts:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mUnpluggedSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mUnpluggedUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->mUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->onTimeStarted(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->onTimeStopped(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->readExcessivePowerFromParcelLocked(Landroid/os/Parcel;)V
+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;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->mHandle:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->mTimer:Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->mUid:Lcom/android/internal/os/BatteryStatsImpl$Uid;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->readFromParcelLocked(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
+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;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->mTimerFull:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->mTimerPartial:Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->mTimerWindow:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->mUid:Lcom/android/internal/os/BatteryStatsImpl$Uid;
+Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->readDualTimerFromParcel(ILjava/util/ArrayList;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$Wakelock;->readFromParcelLocked(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
+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
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->addProcStateTimesMs(I[JZ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createAggregatedPartialWakelockTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createAudioTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanResultBgCounterLocked()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanResultCounterLocked()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothUnoptimizedScanTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createCameraTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createFlashlightTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createForegroundActivityTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createForegroundServiceTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createVibratorOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->createVideoTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getAggregatedPartialWakelockTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getAudioTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getBatteryStats()Lcom/android/internal/os/BatteryStatsImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanBackgroundTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultBgCounter()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultCounter()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanBackgroundTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getCameraTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuActiveTime()J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuClusterTimes()[J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuFreqTimes(I)[J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuFreqTimes(II)[J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getDeferredJobsCheckinLineLocked(Ljava/lang/StringBuilder;I)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getDeferredJobsLineLocked(Ljava/lang/StringBuilder;I)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getFlashlightTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundActivityTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundServiceTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getFullWifiLockTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getJobCompletionStats()Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getJobStats()Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioActiveCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioActiveTime(I)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioApWakeupCount(I)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getMulticastWakelockStats()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getNetworkActivityBytes(II)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getNetworkActivityPackets(II)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getOrCreateBluetoothControllerActivityLocked()Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getOrCreateModemControllerActivityLocked()Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getOrCreateWifiControllerActivityLocked()Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getPackageStats()Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getPackageStatsLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getPidStats()Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getPidStatsLocked(I)Landroid/os/BatteryStats$Uid$Pid;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStateTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStateTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStatsLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getScreenOffCpuFreqTimes(I)[J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getScreenOffCpuFreqTimes(II)[J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getSensorTimerLocked(IZ)Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getServiceStatsLocked(Ljava/lang/String;Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getSyncStats()Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getSystemCpuTimeUs(I)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getTimeAtCpuSpeed(III)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getUserActivityCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getUserCpuTimeUs(I)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getVibratorOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getVideoTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWakelockTimerLocked(Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;I)Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiBatchedScanCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiBatchedScanTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiMulticastTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiRadioApWakeupCount(I)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanActualTime(J)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundTime(J)J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->hasNetworkActivity()Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->hasUserActivity()Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->initNetworkActivityLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->initUserActivityLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->isInBackground()Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mAggregatedPartialWakelockTimer:Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->makeProcessState(ILandroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->makeWifiBatchedScanBin(ILandroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mAudioTurnedOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mBluetoothControllerActivity:Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mBluetoothScanResultBgCounter:Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mBluetoothScanResultCounter:Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mBluetoothScanTimer:Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mBluetoothUnoptimizedScanTimer:Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mBsi:Lcom/android/internal/os/BatteryStatsImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mCameraTurnedOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mChildUids:Landroid/util/IntArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mCpuActiveTimeMs:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mCpuClusterSpeedTimesUs:[[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mCpuClusterTimesMs:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mCpuFreqTimeMs:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mCurStepSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mCurStepUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mFlashlightTurnedOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mForegroundActivityTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mForegroundServiceTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mFullWifiLockOut:Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mFullWifiLockTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mInForegroundService:Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mJobCompletions:Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mJobsDeferredCount:Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mJobsDeferredEventCount:Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mJobsFreshnessBuckets:[Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mJobsFreshnessTimeMs:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mJobStats:Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mLastStepSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mLastStepUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mMobileRadioActiveCount:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mMobileRadioActiveTime:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mMobileRadioApWakeupCount:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mModemControllerActivity:Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mNetworkByteActivityCounters:[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mNetworkPacketActivityCounters:[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mOnBatteryBackgroundTimeBase:Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mOnBatteryScreenOffBackgroundTimeBase:Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mPackageStats:Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mPids:Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mProcessState:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mProcessStateTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mProcessStats:Landroid/util/ArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mProcStateScreenOffTimeMs:[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mProcStateTimeMs:[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mScreenOffCpuFreqTimeMs:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mSensorStats:Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mSyncStats:Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mSystemCpuTime:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mUid:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mUserActivityCounters:[Lcom/android/internal/os/BatteryStatsImpl$Counter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mUserCpuTime:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mVibratorOnTimer:Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mVideoTurnedOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWakelockStats:Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiBatchedScanBinStarted:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiBatchedScanTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiControllerActivity:Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiMulticastEnabled:Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiMulticastTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiRadioApWakeupCount:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiRunning:Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiRunningTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiScanStarted:Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->mWifiScanTimer:Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteActivityPausedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteActivityResumedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteAudioTurnedOffLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteAudioTurnedOnLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanResultsLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanStartedLocked(JZ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanStoppedLocked(JZ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteCameraTurnedOffLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteCameraTurnedOnLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteFlashlightTurnedOffLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteFlashlightTurnedOnLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteForegroundServicePausedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteForegroundServiceResumedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteFullWifiLockAcquiredLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteFullWifiLockReleasedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteJobsDeferredLocked(IJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteMobileRadioActiveTimeLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteMobileRadioApWakeupLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteNetworkActivityLocked(IJJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteResetAudioLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteResetBluetoothScanLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteResetCameraLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteResetFlashlightLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteResetVideoLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartGps(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartJobLocked(Ljava/lang/String;J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartSensor(IJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartSyncLocked(Ljava/lang/String;J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartWakeLocked(ILjava/lang/String;IJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopGps(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopJobLocked(Ljava/lang/String;JI)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopSensor(IJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopSyncLocked(Ljava/lang/String;J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopWakeLocked(ILjava/lang/String;IJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteUserActivityLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteVibratorOffLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteVibratorOnLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteVideoTurnedOffLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteVideoTurnedOnLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiBatchedScanStartedLocked(IJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiBatchedScanStoppedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiMulticastDisabledLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiMulticastEnabledLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiRadioApWakeupLocked()V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiRunningLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiScanStartedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiScanStoppedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiStoppedLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->NO_BATCHED_SCAN_STARTED:I
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->nullIfAllZeros(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;I)[J
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->readFromParcelLocked(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->readJobCompletionsFromParcelLocked(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->readJobSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->readSyncSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->readWakeSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->removeIsolatedUid(I)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->reportExcessiveCpuLocked(Ljava/lang/String;JJ)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->reset(JJ)Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->setProcessStateForTest(I)V
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->updateOnBatteryBgTimeBase(JJ)Z
+Lcom/android/internal/os/BatteryStatsImpl$Uid;->updateOnBatteryScreenOffBgTimeBase(JJ)Z
+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
+Lcom/android/internal/os/BatteryStatsImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Ljava/io/File;Landroid/os/Handler;Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;)V
+Lcom/android/internal/os/BatteryStatsImpl;-><init>(Ljava/io/File;Landroid/os/Handler;Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;)V
+Lcom/android/internal/os/BatteryStatsImpl;->addCpuTimes([J[J)[J
+Lcom/android/internal/os/BatteryStatsImpl;->addHistoryBufferLocked(JBLandroid/os/BatteryStats$HistoryItem;)V
+Lcom/android/internal/os/BatteryStatsImpl;->addHistoryBufferLocked(JLandroid/os/BatteryStats$HistoryItem;)V
+Lcom/android/internal/os/BatteryStatsImpl;->addHistoryEventLocked(JJILjava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->addHistoryRecordInnerLocked(JLandroid/os/BatteryStats$HistoryItem;)V
+Lcom/android/internal/os/BatteryStatsImpl;->addHistoryRecordLocked(JJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->addHistoryRecordLocked(JJBLandroid/os/BatteryStats$HistoryItem;)V
+Lcom/android/internal/os/BatteryStatsImpl;->addHistoryRecordLocked(Landroid/os/BatteryStats$HistoryItem;)V
+Lcom/android/internal/os/BatteryStatsImpl;->addIsolatedUidLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->addModemTxPowerToHistory(Landroid/telephony/ModemActivityInfo;)V
+Lcom/android/internal/os/BatteryStatsImpl;->addPackageChange(Landroid/os/BatteryStats$PackageChange;)V
+Lcom/android/internal/os/BatteryStatsImpl;->aggregateLastWakeupUptimeLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl;->BATTERY_DELTA_LEVEL_FLAG:I
+Lcom/android/internal/os/BatteryStatsImpl;->BATTERY_PLUGGED_NONE:I
+Lcom/android/internal/os/BatteryStatsImpl;->buildBatteryLevelInt(Landroid/os/BatteryStats$HistoryItem;)I
+Lcom/android/internal/os/BatteryStatsImpl;->buildStateInt(Landroid/os/BatteryStats$HistoryItem;)I
+Lcom/android/internal/os/BatteryStatsImpl;->clearHistoryLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->clearPendingRemovedUids()V
+Lcom/android/internal/os/BatteryStatsImpl;->commitCurrentHistoryBatchLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryScreenOffRealtime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->computeBatteryScreenOffUptime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->computeChargeTimeRemaining(J)J
+Lcom/android/internal/os/BatteryStatsImpl;->computeHistoryStepDetails(Landroid/os/BatteryStats$HistoryStepDetails;Landroid/os/BatteryStats$HistoryStepDetails;)V
+Lcom/android/internal/os/BatteryStatsImpl;->computeRealtime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->computeTimePerLevel([JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->computeUptime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->copyFromAllUidsCpuTimes()V
+Lcom/android/internal/os/BatteryStatsImpl;->copyFromAllUidsCpuTimes(ZZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->DEBUG:Z
+Lcom/android/internal/os/BatteryStatsImpl;->DEBUG_ENERGY:Z
+Lcom/android/internal/os/BatteryStatsImpl;->DEBUG_ENERGY_CPU:Z
+Lcom/android/internal/os/BatteryStatsImpl;->DEBUG_HISTORY:Z
+Lcom/android/internal/os/BatteryStatsImpl;->DEBUG_MEMORY:Z
+Lcom/android/internal/os/BatteryStatsImpl;->DELAY_UPDATE_WAKELOCKS:J
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_BATTERY_CHARGE_FLAG:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_BATTERY_LEVEL_FLAG:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_EVENT_FLAG:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_STATE2_FLAG:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_STATE_FLAG:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_STATE_MASK:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_TIME_ABS:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_TIME_INT:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_TIME_LONG:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_TIME_MASK:I
+Lcom/android/internal/os/BatteryStatsImpl;->DELTA_WAKELOCK_FLAG:I
+Lcom/android/internal/os/BatteryStatsImpl;->detachLongCounterIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;)V
+Lcom/android/internal/os/BatteryStatsImpl;->detachTimerIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$Timer;)V
+Lcom/android/internal/os/BatteryStatsImpl;->dumpConstantsLocked(Ljava/io/PrintWriter;)V
+Lcom/android/internal/os/BatteryStatsImpl;->dumpCpuStatsLocked(Ljava/io/PrintWriter;)V
+Lcom/android/internal/os/BatteryStatsImpl;->dumpLocked(Landroid/content/Context;Ljava/io/PrintWriter;IIJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->ensureStartClockTime(J)Z
+Lcom/android/internal/os/BatteryStatsImpl;->excludeFromStringArray([Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->finishAddingCpuLocked(IIIIIIII)V
+Lcom/android/internal/os/BatteryStatsImpl;->finishIteratingHistoryLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->finishIteratingOldHistoryLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->fixPhoneServiceState(II)I
+Lcom/android/internal/os/BatteryStatsImpl;->getAttributionUid(ILandroid/os/WorkSource$WorkChain;)I
+Lcom/android/internal/os/BatteryStatsImpl;->getAvailableUidStatsLocked(I)Lcom/android/internal/os/BatteryStatsImpl$Uid;
+Lcom/android/internal/os/BatteryStatsImpl;->getBatteryUptime(J)J
+Lcom/android/internal/os/BatteryStatsImpl;->getBatteryUptimeLocked()J
+Lcom/android/internal/os/BatteryStatsImpl;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->getBluetoothScanTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getCameraOnTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
+Lcom/android/internal/os/BatteryStatsImpl;->getChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->getCpuFreqs()[J
+Lcom/android/internal/os/BatteryStatsImpl;->getCurrentDailyStartTime()J
+Lcom/android/internal/os/BatteryStatsImpl;->getDailyChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->getDailyDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->getDailyItemLocked(I)Landroid/os/BatteryStats$DailyItem;
+Lcom/android/internal/os/BatteryStatsImpl;->getDailyPackageChanges()Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->getDeltaModemActivityInfo(Landroid/telephony/ModemActivityInfo;)Landroid/telephony/ModemActivityInfo;
+Lcom/android/internal/os/BatteryStatsImpl;->getDeviceIdleModeCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl;->getDeviceIdleModeTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getDeviceIdlingCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl;->getDeviceIdlingTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenDoze()I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenDozeSinceCharge()I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenOffSinceCharge()I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenOnSinceCharge()I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeCurrentLevelLocked()I
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->getDischargeStartLevelLocked()I
+Lcom/android/internal/os/BatteryStatsImpl;->getEndPlatformVersion()Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->getEstimatedBatteryCapacity()I
+Lcom/android/internal/os/BatteryStatsImpl;->getExternalStatsCollectionRateLimitMs()J
+Lcom/android/internal/os/BatteryStatsImpl;->getFlashlightOnCount(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getFlashlightOnTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getGpsBatteryDrainMaMs()J
+Lcom/android/internal/os/BatteryStatsImpl;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+Lcom/android/internal/os/BatteryStatsImpl;->getGpsSignalQualityTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getHighDischargeAmountSinceCharge()I
+Lcom/android/internal/os/BatteryStatsImpl;->getHistoryBaseTime()J
+Lcom/android/internal/os/BatteryStatsImpl;->getHistoryStringPoolBytes()I
+Lcom/android/internal/os/BatteryStatsImpl;->getHistoryStringPoolSize()I
+Lcom/android/internal/os/BatteryStatsImpl;->getHistoryTagPoolString(I)Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->getHistoryTagPoolUid(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getHistoryTotalSize()I
+Lcom/android/internal/os/BatteryStatsImpl;->getHistoryUsedSize()I
+Lcom/android/internal/os/BatteryStatsImpl;->getInteractiveTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getIsOnBattery()Z
+Lcom/android/internal/os/BatteryStatsImpl;->getKernelMemoryStats()Landroid/util/LongSparseArray;
+Lcom/android/internal/os/BatteryStatsImpl;->getKernelMemoryTimerLocked(J)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->getKernelWakelockTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->getLongestDeviceIdleModeTime(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getLowDischargeAmountSinceCharge()I
+Lcom/android/internal/os/BatteryStatsImpl;->getMaxLearnedBatteryCapacity()I
+Lcom/android/internal/os/BatteryStatsImpl;->getMinLearnedBatteryCapacity()I
+Lcom/android/internal/os/BatteryStatsImpl;->getMobileIfaces()[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveAdjustedTime(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveUnknownCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveUnknownTime(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->getNetworkActivityPackets(II)J
+Lcom/android/internal/os/BatteryStatsImpl;->getNextMaxDailyDeadline()J
+Lcom/android/internal/os/BatteryStatsImpl;->getNextMinDailyDeadline()J
+Lcom/android/internal/os/BatteryStatsImpl;->getNextOldHistoryLocked(Landroid/os/BatteryStats$HistoryItem;)Z
+Lcom/android/internal/os/BatteryStatsImpl;->getNumConnectivityChange(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getParcelVersion()I
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneOnCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalScanningTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl;->getPowerManagerWakeLockLevel(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getPowerSaveModeEnabledCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getPowerSaveModeEnabledTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getProcessWakeTime(IIJ)J
+Lcom/android/internal/os/BatteryStatsImpl;->getRpmStats()Ljava/util/Map;
+Lcom/android/internal/os/BatteryStatsImpl;->getRpmTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->getScreenBrightnessTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl;->getScreenDozeCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getScreenDozeTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getScreenOffRpmStats()Ljava/util/Map;
+Lcom/android/internal/os/BatteryStatsImpl;->getScreenOffRpmTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->getScreenOnCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getStartClockTime()J
+Lcom/android/internal/os/BatteryStatsImpl;->getStartCount()I
+Lcom/android/internal/os/BatteryStatsImpl;->getStartPlatformVersion()Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->getUahDischarge(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getUahDischargeDeepDoze(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getUahDischargeLightDoze(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getUahDischargeScreenDoze(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getUahDischargeScreenOff(I)J
+Lcom/android/internal/os/BatteryStatsImpl;->getWakeupReasonStats()Ljava/util/Map;
+Lcom/android/internal/os/BatteryStatsImpl;->getWakeupReasonTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiActiveTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiIfaces()[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiMulticastWakelockCount(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiMulticastWakelockTime(JI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiStateCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiStateTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiStateTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateCount(II)I
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateTime(IJI)J
+Lcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+Lcom/android/internal/os/BatteryStatsImpl;->hasBluetoothActivityReporting()Z
+Lcom/android/internal/os/BatteryStatsImpl;->hasModemActivityReporting()Z
+Lcom/android/internal/os/BatteryStatsImpl;->hasWifiActivityReporting()Z
+Lcom/android/internal/os/BatteryStatsImpl;->includeInStringArray([Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->init(Lcom/android/internal/os/BatteryStatsImpl$Clocks;)V
+Lcom/android/internal/os/BatteryStatsImpl;->initActiveHistoryEventsLocked(JJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->initDischarge()V
+Lcom/android/internal/os/BatteryStatsImpl;->initKernelSingleUidTimeReaderLocked()Z
+Lcom/android/internal/os/BatteryStatsImpl;->initTimes(JJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->isCharging()Z
+Lcom/android/internal/os/BatteryStatsImpl;->isOnBattery(II)Z
+Lcom/android/internal/os/BatteryStatsImpl;->isOnBatteryLocked()Z
+Lcom/android/internal/os/BatteryStatsImpl;->isOnBatteryScreenOffLocked()Z
+Lcom/android/internal/os/BatteryStatsImpl;->isScreenDoze(I)Z
+Lcom/android/internal/os/BatteryStatsImpl;->isScreenOff(I)Z
+Lcom/android/internal/os/BatteryStatsImpl;->isScreenOn(I)Z
+Lcom/android/internal/os/BatteryStatsImpl;->mActiveEvents:Landroid/os/BatteryStats$HistoryEventTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->mActiveHistoryStates2:I
+Lcom/android/internal/os/BatteryStatsImpl;->mActiveHistoryStates:I
+Lcom/android/internal/os/BatteryStatsImpl;->MAGIC:I
+Lcom/android/internal/os/BatteryStatsImpl;->mapUid(I)I
+Lcom/android/internal/os/BatteryStatsImpl;->markPartialTimersAsEligible()V
+Lcom/android/internal/os/BatteryStatsImpl;->mAudioOnNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mAudioOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mAudioTurnedOnTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->MAX_DAILY_ITEMS:I
+Lcom/android/internal/os/BatteryStatsImpl;->MAX_HISTORY_BUFFER:I
+Lcom/android/internal/os/BatteryStatsImpl;->MAX_HISTORY_ITEMS:I
+Lcom/android/internal/os/BatteryStatsImpl;->MAX_LEVEL_STEPS:I
+Lcom/android/internal/os/BatteryStatsImpl;->MAX_MAX_HISTORY_BUFFER:I
+Lcom/android/internal/os/BatteryStatsImpl;->MAX_MAX_HISTORY_ITEMS:I
+Lcom/android/internal/os/BatteryStatsImpl;->MAX_WAKELOCKS_PER_UID:I
+Lcom/android/internal/os/BatteryStatsImpl;->mBluetoothActivity:Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl;->mBluetoothScanNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mBluetoothScanOnTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mBluetoothScanTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mCallback:Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;
+Lcom/android/internal/os/BatteryStatsImpl;->mCameraOnNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mCameraOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mCameraTurnedOnTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mChangedStates2:I
+Lcom/android/internal/os/BatteryStatsImpl;->mChangedStates:I
+Lcom/android/internal/os/BatteryStatsImpl;->mChargeStepTracker:Landroid/os/BatteryStats$LevelStepTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->mCharging:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mCheckinFile:Lcom/android/internal/os/AtomicFile;
+Lcom/android/internal/os/BatteryStatsImpl;->mClocks:Lcom/android/internal/os/BatteryStatsImpl$Clocks;
+Lcom/android/internal/os/BatteryStatsImpl;->mConstants:Lcom/android/internal/os/BatteryStatsImpl$Constants;
+Lcom/android/internal/os/BatteryStatsImpl;->mCpuFreqs:[J
+Lcom/android/internal/os/BatteryStatsImpl;->mCpuTimeReadsTrackingStartTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mCurHistoryStepDetails:Landroid/os/BatteryStats$HistoryStepDetails;
+Lcom/android/internal/os/BatteryStatsImpl;->mCurrentBatteryLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepCpuSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepCpuUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepMode:I
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepStatIdleTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepStatIOWaitTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepStatIrqTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepStatSoftIrqTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepStatSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mCurStepStatUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mDailyChargeStepTracker:Landroid/os/BatteryStats$LevelStepTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->mDailyDischargeStepTracker:Landroid/os/BatteryStats$LevelStepTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->mDailyFile:Lcom/android/internal/os/AtomicFile;
+Lcom/android/internal/os/BatteryStatsImpl;->mDailyItems:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mDailyPackageChanges:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mDailyStartTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mDeviceIdleMode:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDeviceIdleModeFullTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mDeviceIdleModeLightTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mDeviceIdling:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mDeviceIdlingTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mDeviceLightIdling:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mDeviceLightIdlingTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeAmountScreenDoze:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeAmountScreenDozeSinceCharge:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeAmountScreenOff:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeAmountScreenOffSinceCharge:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeAmountScreenOn:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeAmountScreenOnSinceCharge:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeCounter:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeCurrentLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeDeepDozeCounter:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeLightDozeCounter:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargePlugLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeScreenDozeCounter:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeScreenDozeUnplugLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeScreenOffCounter:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeScreenOffUnplugLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeScreenOnUnplugLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeStartLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeStepTracker:Landroid/os/BatteryStats$LevelStepTracker;
+Lcom/android/internal/os/BatteryStatsImpl;->mDischargeUnplugLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mDistributeWakelockCpu:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mDrawTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mEndPlatformVersion:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->mEstimatedBatteryCapacity:I
+Lcom/android/internal/os/BatteryStatsImpl;->mExternalSync:Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;
+Lcom/android/internal/os/BatteryStatsImpl;->mFile:Lcom/android/internal/util/JournaledFile;
+Lcom/android/internal/os/BatteryStatsImpl;->mFlashlightOnNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mFlashlightOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mFlashlightTurnedOnTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mFullWifiLockTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mGlobalWifiRunning:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mGlobalWifiRunningTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mGpsNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mGpsSignalQualityBin:I
+Lcom/android/internal/os/BatteryStatsImpl;->mGpsSignalQualityTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mHandler:Landroid/os/Handler;
+Lcom/android/internal/os/BatteryStatsImpl;->mHasBluetoothReporting:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mHasModemReporting:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mHasWifiReporting:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mHaveBatteryLevel:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mHighDischargeAmountSinceCharge:I
+Lcom/android/internal/os/BatteryStatsImpl;->mHistory:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryAddTmp:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryBaseTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryBuffer:Landroid/os/Parcel;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryBufferLastPos:I
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryCache:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryCur:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryEnd:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryIterator:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryLastEnd:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryLastLastWritten:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryLastWritten:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryOverflow:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryReadTmp:Landroid/os/BatteryStats$HistoryItem;
+Lcom/android/internal/os/BatteryStatsImpl;->mHistoryTagPool:Ljava/util/HashMap;
+Lcom/android/internal/os/BatteryStatsImpl;->mInitialAcquireWakeName:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->mInitialAcquireWakeUid:I
+Lcom/android/internal/os/BatteryStatsImpl;->mInitStepMode:I
+Lcom/android/internal/os/BatteryStatsImpl;->mInteractive:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mInteractiveTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mIsCellularTxPowerHigh:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mIsolatedUids:Landroid/util/SparseIntArray;
+Lcom/android/internal/os/BatteryStatsImpl;->mIteratingHistory:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelCpuSpeedReaders:[Lcom/android/internal/os/KernelCpuSpeedReader;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelMemoryBandwidthStats:Lcom/android/internal/os/KernelMemoryBandwidthStats;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelMemoryStats:Landroid/util/LongSparseArray;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelSingleUidTimeReader:Lcom/android/internal/os/KernelSingleUidTimeReader;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelUidCpuActiveTimeReader:Lcom/android/internal/os/KernelUidCpuActiveTimeReader;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelUidCpuClusterTimeReader:Lcom/android/internal/os/KernelUidCpuClusterTimeReader;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelUidCpuFreqTimeReader:Lcom/android/internal/os/KernelUidCpuFreqTimeReader;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelUidCpuTimeReader:Lcom/android/internal/os/KernelUidCpuTimeReader;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelWakelockReader:Lcom/android/internal/os/KernelWakelockReader;
+Lcom/android/internal/os/BatteryStatsImpl;->mKernelWakelockStats:Ljava/util/HashMap;
+Lcom/android/internal/os/BatteryStatsImpl;->mLastBluetoothActivityInfo:Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;
+Lcom/android/internal/os/BatteryStatsImpl;->mLastChargeStepLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mLastChargingStateLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mLastDischargeStepLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mLastHistoryElapsedRealtime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastHistoryStepDetails:Landroid/os/BatteryStats$HistoryStepDetails;
+Lcom/android/internal/os/BatteryStatsImpl;->mLastHistoryStepLevel:B
+Lcom/android/internal/os/BatteryStatsImpl;->mLastIdleTimeStart:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastModemActivityInfo:Landroid/telephony/ModemActivityInfo;
+Lcom/android/internal/os/BatteryStatsImpl;->mLastModemNetworkStats:Landroid/net/NetworkStats;
+Lcom/android/internal/os/BatteryStatsImpl;->mLastPartialTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mLastRpmStatsUpdateTimeMs:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastStepCpuSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastStepCpuUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastStepStatIdleTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastStepStatIOWaitTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastStepStatIrqTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastStepStatSoftIrqTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastStepStatSystemTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastStepStatUserTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastWakeupReason:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->mLastWakeupUptimeMs:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLastWifiNetworkStats:Landroid/net/NetworkStats;
+Lcom/android/internal/os/BatteryStatsImpl;->mLastWriteTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLoadedNumConnectivityChange:I
+Lcom/android/internal/os/BatteryStatsImpl;->mLongestFullIdleTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLongestLightIdleTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mLowDischargeAmountSinceCharge:I
+Lcom/android/internal/os/BatteryStatsImpl;->mMaxChargeStepLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mMaxLearnedBatteryCapacity:I
+Lcom/android/internal/os/BatteryStatsImpl;->mMinDischargeStepLevel:I
+Lcom/android/internal/os/BatteryStatsImpl;->mMinLearnedBatteryCapacity:I
+Lcom/android/internal/os/BatteryStatsImpl;->mMobileRadioActiveAdjustedTime:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mMobileRadioActivePerAppTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mMobileRadioActiveStartTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mMobileRadioActiveTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mMobileRadioActiveUnknownCount:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mMobileRadioActiveUnknownTime:Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mMobileRadioPowerState:I
+Lcom/android/internal/os/BatteryStatsImpl;->mModemActivity:Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl;->mModemIfaces:[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->mModemNetworkLock:Ljava/lang/Object;
+Lcom/android/internal/os/BatteryStatsImpl;->mModStepMode:I
+Lcom/android/internal/os/BatteryStatsImpl;->mNetworkByteActivityCounters:[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mNetworkPacketActivityCounters:[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+Lcom/android/internal/os/BatteryStatsImpl;->mNetworkStatsFactory:Lcom/android/internal/net/NetworkStatsFactory;
+Lcom/android/internal/os/BatteryStatsImpl;->mNetworkStatsPool:Landroid/util/Pools$Pool;
+Lcom/android/internal/os/BatteryStatsImpl;->mNextHistoryTagIdx:I
+Lcom/android/internal/os/BatteryStatsImpl;->mNextMaxDailyDeadline:J
+Lcom/android/internal/os/BatteryStatsImpl;->mNextMinDailyDeadline:J
+Lcom/android/internal/os/BatteryStatsImpl;->mNoAutoReset:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mNumAllUidCpuTimeReads:I
+Lcom/android/internal/os/BatteryStatsImpl;->mNumBatchedSingleUidCpuTimeReads:J
+Lcom/android/internal/os/BatteryStatsImpl;->mNumConnectivityChange:I
+Lcom/android/internal/os/BatteryStatsImpl;->mNumHistoryItems:I
+Lcom/android/internal/os/BatteryStatsImpl;->mNumHistoryTagChars:I
+Lcom/android/internal/os/BatteryStatsImpl;->mNumSingleUidCpuTimeReads:J
+Lcom/android/internal/os/BatteryStatsImpl;->mNumUidsRemoved:I
+Lcom/android/internal/os/BatteryStatsImpl;->mOnBattery:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mOnBatteryInternal:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mOnBatteryScreenOffTimeBase:Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
+Lcom/android/internal/os/BatteryStatsImpl;->mOnBatteryTimeBase:Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
+Lcom/android/internal/os/BatteryStatsImpl;->mPendingRemovedUids:Ljava/util/Queue;
+Lcom/android/internal/os/BatteryStatsImpl;->mPendingUids:Landroid/util/SparseIntArray;
+Lcom/android/internal/os/BatteryStatsImpl;->mPendingWrite:Landroid/os/Parcel;
+Lcom/android/internal/os/BatteryStatsImpl;->mPerProcStateCpuTimesAvailable:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneDataConnectionsTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneDataConnectionType:I
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneOn:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneServiceState:I
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneServiceStateRaw:I
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneSignalScanningTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneSignalStrengthBin:I
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneSignalStrengthBinRaw:I
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneSignalStrengthsTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mPhoneSimStateRaw:I
+Lcom/android/internal/os/BatteryStatsImpl;->mPlatformIdleStateCallback:Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;
+Lcom/android/internal/os/BatteryStatsImpl;->mPowerProfile:Lcom/android/internal/os/PowerProfile;
+Lcom/android/internal/os/BatteryStatsImpl;->mPowerSaveModeEnabled:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mPowerSaveModeEnabledTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mPretendScreenOff:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mReadHistoryChars:I
+Lcom/android/internal/os/BatteryStatsImpl;->mReadHistoryStepDetails:Landroid/os/BatteryStats$HistoryStepDetails;
+Lcom/android/internal/os/BatteryStatsImpl;->mReadHistoryStrings:[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->mReadHistoryUids:[I
+Lcom/android/internal/os/BatteryStatsImpl;->mReadOverflow:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mRealtime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mRealtimeStart:J
+Lcom/android/internal/os/BatteryStatsImpl;->mRecordAllHistory:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mRecordingHistory:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mRpmStats:Ljava/util/HashMap;
+Lcom/android/internal/os/BatteryStatsImpl;->mScreenBrightnessBin:I
+Lcom/android/internal/os/BatteryStatsImpl;->mScreenBrightnessTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mScreenDozeTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mScreenOffRpmStats:Ljava/util/HashMap;
+Lcom/android/internal/os/BatteryStatsImpl;->mScreenOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mScreenState:I
+Lcom/android/internal/os/BatteryStatsImpl;->mSensorNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mSensorTimers:Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsImpl;->MSG_REPORT_CHARGING:I
+Lcom/android/internal/os/BatteryStatsImpl;->MSG_REPORT_CPU_UPDATE_NEEDED:I
+Lcom/android/internal/os/BatteryStatsImpl;->MSG_REPORT_POWER_CHANGE:I
+Lcom/android/internal/os/BatteryStatsImpl;->MSG_REPORT_RESET_STATS:I
+Lcom/android/internal/os/BatteryStatsImpl;->mShuttingDown:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mStartClockTime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mStartCount:I
+Lcom/android/internal/os/BatteryStatsImpl;->mStartPlatformVersion:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->mTempTotalCpuSystemTimeUs:J
+Lcom/android/internal/os/BatteryStatsImpl;->mTempTotalCpuUserTimeUs:J
+Lcom/android/internal/os/BatteryStatsImpl;->mTmpHistoryStepDetails:Landroid/os/BatteryStats$HistoryStepDetails;
+Lcom/android/internal/os/BatteryStatsImpl;->mTmpRpmStats:Lcom/android/internal/os/RpmStats;
+Lcom/android/internal/os/BatteryStatsImpl;->mTmpWakelockStats:Lcom/android/internal/os/KernelWakelockStats;
+Lcom/android/internal/os/BatteryStatsImpl;->mTrackRunningHistoryElapsedRealtime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mTrackRunningHistoryUptime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mUidStats:Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsImpl;->mUnpluggedNumConnectivityChange:I
+Lcom/android/internal/os/BatteryStatsImpl;->mUptime:J
+Lcom/android/internal/os/BatteryStatsImpl;->mUptimeStart:J
+Lcom/android/internal/os/BatteryStatsImpl;->mUsbDataState:I
+Lcom/android/internal/os/BatteryStatsImpl;->mUserInfoProvider:Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;
+Lcom/android/internal/os/BatteryStatsImpl;->mVideoOnNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mVideoOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mVideoTurnedOnTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mWakeLockAllocationsUs:[[J
+Lcom/android/internal/os/BatteryStatsImpl;->mWakeLockImportant:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mWakeLockNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mWakeupReasonStats:Ljava/util/HashMap;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiActiveTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiActivity:Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiBatchedScanTimers:Landroid/util/SparseArray;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiFullLockNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiIfaces:[Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiMulticastNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiMulticastTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiMulticastWakelockTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiNetworkLock:Ljava/lang/Object;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiOn:Z
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiOnTimer:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiRadioPowerState:I
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiRunningTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiScanNesting:I
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiScanTimers:Ljava/util/ArrayList;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiSignalStrengthBin:I
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiSignalStrengthsTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiState:I
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiStateTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiSupplState:I
+Lcom/android/internal/os/BatteryStatsImpl;->mWifiSupplStateTimer:[Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+Lcom/android/internal/os/BatteryStatsImpl;->mWriteLock:Ljava/util/concurrent/locks/ReentrantLock;
+Lcom/android/internal/os/BatteryStatsImpl;->noteActivityPausedLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteActivityResumedLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteAlarmFinishLocked(Ljava/lang/String;Landroid/os/WorkSource;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteAlarmStartLocked(Ljava/lang/String;Landroid/os/WorkSource;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteAlarmStartOrFinishLocked(ILjava/lang/String;Landroid/os/WorkSource;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanResultsFromSourceLocked(Landroid/os/WorkSource;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStartedFromSourceLocked(Landroid/os/WorkSource;Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStartedLocked(Landroid/os/WorkSource$WorkChain;IZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStoppedFromSourceLocked(Landroid/os/WorkSource;Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStoppedLocked(Landroid/os/WorkSource$WorkChain;IZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteCameraOffLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteCameraOnLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteChangeWakelockFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteConnectivityChangedLocked(ILjava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteCurrentTimeChangedLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->noteDeviceIdleModeLocked(ILjava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteEventLocked(ILjava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteFlashlightOffLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteFlashlightOnLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockAcquiredFromSourceLocked(Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockReleasedFromSourceLocked(Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteGpsChangedLocked(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteGpsSignalQualityLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteInteractiveLocked(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteJobFinishLocked(Ljava/lang/String;II)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteJobsDeferredLocked(IIJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteJobStartLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockFinish(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockFinishFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakeLockFinishInternal(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockStart(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockStartFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakeLockStartInternal(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteMobileRadioApWakeupLocked(JJI)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteMobileRadioPowerStateLocked(IJI)Z
+Lcom/android/internal/os/BatteryStatsImpl;->noteNetworkInterfaceTypeLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->notePackageInstalledLocked(Ljava/lang/String;J)V
+Lcom/android/internal/os/BatteryStatsImpl;->notePackageUninstalledLocked(Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl;->notePhoneStateLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->notePowerSaveModeLocked(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteProcessAnrLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteProcessCrashLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteProcessDiedLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteProcessFinishLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteProcessStartLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteResetAudioLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->noteResetBluetoothScanLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->noteResetCameraLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->noteResetFlashlightLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->noteResetVideoLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->noteScreenStateLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteStartGpsLocked(ILandroid/os/WorkSource$WorkChain;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteStartSensorLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteStartWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteStartWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IZJJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteStopGpsLocked(ILandroid/os/WorkSource$WorkChain;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteStopSensorLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteStopWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteStopWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IJJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteSyncFinishLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteSyncStartLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteUidProcessStateLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteUsbConnectionStateLocked(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteVibratorOffLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteVibratorOnLocked(IJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWakeUpLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWakeupReasonLocked(Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWakupAlarmLocked(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiBatchedScanStartedFromSourceLocked(Landroid/os/WorkSource;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiBatchedScanStartedLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiBatchedScanStoppedFromSourceLocked(Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiBatchedScanStoppedLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiOffLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiOnLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiRadioApWakeupLocked(JJI)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiRadioPowerState(IJI)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiRssiChangedLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiRunningChangedLocked(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiRunningLocked(Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStartedFromSourceLocked(Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStartedLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStoppedFromSourceLocked(Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStoppedLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiStateLocked(ILjava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiStoppedLocked(Landroid/os/WorkSource;)V
+Lcom/android/internal/os/BatteryStatsImpl;->noteWifiSupplicantStateChangedLocked(IZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->NUM_BT_TX_LEVELS:I
+Lcom/android/internal/os/BatteryStatsImpl;->NUM_WIFI_TX_LEVELS:I
+Lcom/android/internal/os/BatteryStatsImpl;->onCleanupUserLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->onUserRemovedLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->postBatteryNeedsCpuUpdateMsg()V
+Lcom/android/internal/os/BatteryStatsImpl;->prepareForDumpLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->pullPendingStateUpdatesLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->readBatteryLevelInt(ILandroid/os/BatteryStats$HistoryItem;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readDailyItemsLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readDailyItemTagDetailsLocked(Lorg/xmlpull/v1/XmlPullParser;Landroid/os/BatteryStats$DailyItem;ZLjava/lang/String;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readDailyItemTagLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readDailyStatsLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readFromParcelLocked(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readHistory(Landroid/os/Parcel;Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->readHistoryDelta(Landroid/os/Parcel;Landroid/os/BatteryStats$HistoryItem;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readHistoryTag(ILandroid/os/BatteryStats$HistoryTag;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuActiveTimesLocked(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuClusterTimesLocked(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuFreqTimesLocked(Ljava/util/ArrayList;ZZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuTimesLocked(Ljava/util/ArrayList;Landroid/util/SparseLongArray;Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->readNetworkStatsLocked([Ljava/lang/String;)Landroid/net/NetworkStats;
+Lcom/android/internal/os/BatteryStatsImpl;->readOldHistory(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl;->recordCurrentTimeChangeLocked(JJJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->recordDailyStatsIfNeededLocked(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->recordDailyStatsLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->recordShutdownLocked(JJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->registerUsbStateReceiver(Landroid/content/Context;)V
+Lcom/android/internal/os/BatteryStatsImpl;->removeIsolatedUidLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->reportChangesToStatsLog(Landroid/os/BatteryStats$HistoryItem;III)V
+Lcom/android/internal/os/BatteryStatsImpl;->reportExcessiveCpuLocked(ILjava/lang/String;JJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->requestImmediateCpuUpdate()V
+Lcom/android/internal/os/BatteryStatsImpl;->requestWakelockCpuUpdate()V
+Lcom/android/internal/os/BatteryStatsImpl;->resetAllStatsCmdLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->resetAllStatsLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->resetLongCounterIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->resetTimerIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$DualTimer;Z)Z
+Lcom/android/internal/os/BatteryStatsImpl;->resetTimerIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$Timer;Z)Z
+Lcom/android/internal/os/BatteryStatsImpl;->RPM_STATS_UPDATE_FREQ_MS:J
+Lcom/android/internal/os/BatteryStatsImpl;->scheduleRemoveIsolatedUidLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->scheduleSyncExternalStatsLocked(Ljava/lang/String;I)V
+Lcom/android/internal/os/BatteryStatsImpl;->setBatteryStateLocked(IIIIIIII)V
+Lcom/android/internal/os/BatteryStatsImpl;->setCallback(Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;)V
+Lcom/android/internal/os/BatteryStatsImpl;->setChargingLocked(Z)Z
+Lcom/android/internal/os/BatteryStatsImpl;->setExternalStatsSyncLocked(Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;)V
+Lcom/android/internal/os/BatteryStatsImpl;->setNoAutoReset(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->setOnBatteryLocked(JJZIII)V
+Lcom/android/internal/os/BatteryStatsImpl;->setPowerProfileLocked(Lcom/android/internal/os/PowerProfile;)V
+Lcom/android/internal/os/BatteryStatsImpl;->setPretendScreenOff(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->setRadioScanningTimeoutLocked(J)V
+Lcom/android/internal/os/BatteryStatsImpl;->setRecordAllHistoryLocked(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->shutdownLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->startAddingCpuLocked()Z
+Lcom/android/internal/os/BatteryStatsImpl;->startIteratingOldHistoryLocked()Z
+Lcom/android/internal/os/BatteryStatsImpl;->startRecordingHistory(JJZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->STATE_BATTERY_HEALTH_MASK:I
+Lcom/android/internal/os/BatteryStatsImpl;->STATE_BATTERY_HEALTH_SHIFT:I
+Lcom/android/internal/os/BatteryStatsImpl;->STATE_BATTERY_MASK:I
+Lcom/android/internal/os/BatteryStatsImpl;->STATE_BATTERY_PLUG_MASK:I
+Lcom/android/internal/os/BatteryStatsImpl;->STATE_BATTERY_PLUG_SHIFT:I
+Lcom/android/internal/os/BatteryStatsImpl;->STATE_BATTERY_STATUS_MASK:I
+Lcom/android/internal/os/BatteryStatsImpl;->STATE_BATTERY_STATUS_SHIFT:I
+Lcom/android/internal/os/BatteryStatsImpl;->stopAllGpsSignalQualityTimersLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->stopAllPhoneSignalStrengthTimersLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->stopAllWifiSignalStrengthTimersLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->systemServicesReady(Landroid/content/Context;)V
+Lcom/android/internal/os/BatteryStatsImpl;->TAG:Ljava/lang/String;
+Lcom/android/internal/os/BatteryStatsImpl;->trackPerProcStateCpuTimes()Z
+Lcom/android/internal/os/BatteryStatsImpl;->updateAllPhoneStateLocked(III)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateBatteryPropertiesLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->updateBluetoothStateLocked(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateClusterSpeedTimes(Landroid/util/SparseLongArray;Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateCpuTimeLocked(ZZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateDailyDeadlineLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->updateDischargeScreenLevelsLocked(II)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateKernelMemoryBandwidthLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->updateKernelWakelocksLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->updateMobileRadioState(Landroid/telephony/ModemActivityInfo;)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateNewDischargeScreenLevelLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateOldDischargeScreenLevelLocked(I)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateProcStateCpuTimes(ZZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateRpmStatsLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->updateTimeBasesLocked(ZIJJ)V
+Lcom/android/internal/os/BatteryStatsImpl;->updateWifiState(Landroid/net/wifi/WifiActivityEnergyInfo;)V
+Lcom/android/internal/os/BatteryStatsImpl;->USB_DATA_CONNECTED:I
+Lcom/android/internal/os/BatteryStatsImpl;->USB_DATA_DISCONNECTED:I
+Lcom/android/internal/os/BatteryStatsImpl;->USB_DATA_UNKNOWN:I
+Lcom/android/internal/os/BatteryStatsImpl;->USE_OLD_HISTORY:Z
+Lcom/android/internal/os/BatteryStatsImpl;->VERSION:I
+Lcom/android/internal/os/BatteryStatsImpl;->WAKE_LOCK_WEIGHT:I
+Lcom/android/internal/os/BatteryStatsImpl;->writeAsyncLocked()V
+Lcom/android/internal/os/BatteryStatsImpl;->writeDailyItemsLocked(Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/os/BatteryStatsImpl;->writeDailyLevelSteps(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Ljava/lang/StringBuilder;)V
+Lcom/android/internal/os/BatteryStatsImpl;->writeHistory(Landroid/os/Parcel;ZZ)V
+Lcom/android/internal/os/BatteryStatsImpl;->writeHistoryDelta(Landroid/os/Parcel;Landroid/os/BatteryStats$HistoryItem;Landroid/os/BatteryStats$HistoryItem;)V
+Lcom/android/internal/os/BatteryStatsImpl;->writeHistoryTag(Landroid/os/BatteryStats$HistoryTag;)I
+Lcom/android/internal/os/BatteryStatsImpl;->writeLocked(Z)V
+Lcom/android/internal/os/BatteryStatsImpl;->writeOldHistory(Landroid/os/Parcel;)V
+Lcom/android/internal/os/BatteryStatsImpl;->writeSummaryToParcel(Landroid/os/Parcel;Z)V
+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;
+Lcom/android/internal/os/FuseAppLoop$Args;->inode:J
+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
+Lcom/android/internal/os/FuseAppLoop;->DEBUG:Z
+Lcom/android/internal/os/FuseAppLoop;->FUSE_FSYNC:I
+Lcom/android/internal/os/FuseAppLoop;->FUSE_GETATTR:I
+Lcom/android/internal/os/FuseAppLoop;->FUSE_LOOKUP:I
+Lcom/android/internal/os/FuseAppLoop;->FUSE_MAX_WRITE:I
+Lcom/android/internal/os/FuseAppLoop;->FUSE_OK:I
+Lcom/android/internal/os/FuseAppLoop;->FUSE_OPEN:I
+Lcom/android/internal/os/FuseAppLoop;->FUSE_READ:I
+Lcom/android/internal/os/FuseAppLoop;->FUSE_RELEASE:I
+Lcom/android/internal/os/FuseAppLoop;->FUSE_WRITE:I
+Lcom/android/internal/os/FuseAppLoop;->getCallbackEntryOrThrowLocked(J)Lcom/android/internal/os/FuseAppLoop$CallbackEntry;
+Lcom/android/internal/os/FuseAppLoop;->getError(Ljava/lang/Exception;)I
+Lcom/android/internal/os/FuseAppLoop;->getMountPointId()I
+Lcom/android/internal/os/FuseAppLoop;->mArgsPool:Ljava/util/LinkedList;
+Lcom/android/internal/os/FuseAppLoop;->mBytesMap:Lcom/android/internal/os/FuseAppLoop$BytesMap;
+Lcom/android/internal/os/FuseAppLoop;->mCallbackMap:Landroid/util/SparseArray;
+Lcom/android/internal/os/FuseAppLoop;->mInstance:J
+Lcom/android/internal/os/FuseAppLoop;->MIN_INODE:I
+Lcom/android/internal/os/FuseAppLoop;->mLock:Ljava/lang/Object;
+Lcom/android/internal/os/FuseAppLoop;->mMountPointId:I
+Lcom/android/internal/os/FuseAppLoop;->mNextInode:I
+Lcom/android/internal/os/FuseAppLoop;->mThread:Ljava/lang/Thread;
+Lcom/android/internal/os/FuseAppLoop;->native_delete(J)V
+Lcom/android/internal/os/FuseAppLoop;->native_new(I)J
+Lcom/android/internal/os/FuseAppLoop;->native_replyGetAttr(JJJJ)V
+Lcom/android/internal/os/FuseAppLoop;->native_replyLookup(JJJJ)V
+Lcom/android/internal/os/FuseAppLoop;->native_replyOpen(JJJ)V
+Lcom/android/internal/os/FuseAppLoop;->native_replyRead(JJI[B)V
+Lcom/android/internal/os/FuseAppLoop;->native_replySimple(JJI)V
+Lcom/android/internal/os/FuseAppLoop;->native_replyWrite(JJI)V
+Lcom/android/internal/os/FuseAppLoop;->native_start(J)V
+Lcom/android/internal/os/FuseAppLoop;->recycleLocked(Lcom/android/internal/os/FuseAppLoop$Args;)V
+Lcom/android/internal/os/FuseAppLoop;->registerCallback(Landroid/os/ProxyFileDescriptorCallback;Landroid/os/Handler;)I
+Lcom/android/internal/os/FuseAppLoop;->replySimpleLocked(JI)V
+Lcom/android/internal/os/FuseAppLoop;->ROOT_INODE:I
+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;
+Lcom/android/internal/os/HandlerCaller;->hasMessages(I)Z
+Lcom/android/internal/os/HandlerCaller;->mCallback:Lcom/android/internal/os/HandlerCaller$Callback;
+Lcom/android/internal/os/HandlerCaller;->mH:Landroid/os/Handler;
+Lcom/android/internal/os/HandlerCaller;->mMainLooper:Landroid/os/Looper;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageBO(IZLjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageBOO(IZLjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageI(II)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageII(III)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIIII(IIIII)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIIIIII(IIIIIII)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIIIIO(IIIIILjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIIO(IIILjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIIOO(IIILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIIOOO(IIILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIIOOOO(IIILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageIOOO(IILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageOOOO(ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageOOOOII(ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;II)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->obtainMessageOOOOO(ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/os/HandlerCaller;->removeMessages(I)V
+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
+Lcom/android/internal/os/KernelCpuProcReader;->getActiveTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelCpuProcReader;->getClusterTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelCpuProcReader;->getFreqTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelCpuProcReader;->INITIAL_BUFFER_SIZE:I
+Lcom/android/internal/os/KernelCpuProcReader;->mActiveTimeReader:Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelCpuProcReader;->MAX_BUFFER_SIZE:I
+Lcom/android/internal/os/KernelCpuProcReader;->mBuffer:Ljava/nio/ByteBuffer;
+Lcom/android/internal/os/KernelCpuProcReader;->mClusterTimeReader:Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelCpuProcReader;->mErrors:I
+Lcom/android/internal/os/KernelCpuProcReader;->mFreqTimeReader:Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelCpuProcReader;->mLastReadTime:J
+Lcom/android/internal/os/KernelCpuProcReader;->mProc:Ljava/nio/file/Path;
+Lcom/android/internal/os/KernelCpuProcReader;->mThrottleInterval:J
+Lcom/android/internal/os/KernelCpuProcReader;->PROC_UID_ACTIVE_TIME:Ljava/lang/String;
+Lcom/android/internal/os/KernelCpuProcReader;->PROC_UID_CLUSTER_TIME:Ljava/lang/String;
+Lcom/android/internal/os/KernelCpuProcReader;->PROC_UID_FREQ_TIME:Ljava/lang/String;
+Lcom/android/internal/os/KernelCpuProcReader;->readBytes()Ljava/nio/ByteBuffer;
+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
+Lcom/android/internal/os/KernelCpuSpeedReader;->mLastSpeedTimesMs:[J
+Lcom/android/internal/os/KernelCpuSpeedReader;->mNumSpeedSteps:I
+Lcom/android/internal/os/KernelCpuSpeedReader;->mProcFile:Ljava/lang/String;
+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;
+Lcom/android/internal/os/KernelMemoryBandwidthStats;->mBandwidthEntries:Landroid/util/LongSparseLongArray;
+Lcom/android/internal/os/KernelMemoryBandwidthStats;->mStatsDoNotExist:Z
+Lcom/android/internal/os/KernelMemoryBandwidthStats;->mSysfsFile:Ljava/lang/String;
+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
+Lcom/android/internal/os/KernelSingleUidTimeReader;->DBG:Z
+Lcom/android/internal/os/KernelSingleUidTimeReader;->getDeltaLocked([J[J)[J
+Lcom/android/internal/os/KernelSingleUidTimeReader;->getLastUidCpuTimeMs()Landroid/util/SparseArray;
+Lcom/android/internal/os/KernelSingleUidTimeReader;->hasStaleData()Z
+Lcom/android/internal/os/KernelSingleUidTimeReader;->markDataAsStale(Z)V
+Lcom/android/internal/os/KernelSingleUidTimeReader;->mCpuFreqsCount:I
+Lcom/android/internal/os/KernelSingleUidTimeReader;->mCpuFreqsCountVerified:Z
+Lcom/android/internal/os/KernelSingleUidTimeReader;->mHasStaleData:Z
+Lcom/android/internal/os/KernelSingleUidTimeReader;->mInjector:Lcom/android/internal/os/KernelSingleUidTimeReader$Injector;
+Lcom/android/internal/os/KernelSingleUidTimeReader;->mLastUidCpuTimeMs:Landroid/util/SparseArray;
+Lcom/android/internal/os/KernelSingleUidTimeReader;->mReadErrorCounter:I
+Lcom/android/internal/os/KernelSingleUidTimeReader;->mSingleUidCpuTimesAvailable:Z
+Lcom/android/internal/os/KernelSingleUidTimeReader;->PROC_FILE_DIR:Ljava/lang/String;
+Lcom/android/internal/os/KernelSingleUidTimeReader;->PROC_FILE_NAME:Ljava/lang/String;
+Lcom/android/internal/os/KernelSingleUidTimeReader;->readCpuTimesFromByteBuffer(Ljava/nio/ByteBuffer;)[J
+Lcom/android/internal/os/KernelSingleUidTimeReader;->readDeltaMs(I)[J
+Lcom/android/internal/os/KernelSingleUidTimeReader;->removeUid(I)V
+Lcom/android/internal/os/KernelSingleUidTimeReader;->removeUidsInRange(II)V
+Lcom/android/internal/os/KernelSingleUidTimeReader;->setAllUidsCpuTimesMs(Landroid/util/SparseArray;)V
+Lcom/android/internal/os/KernelSingleUidTimeReader;->setSingleUidCpuTimesAvailable(Z)V
+Lcom/android/internal/os/KernelSingleUidTimeReader;->singleUidCpuTimesAvailable()Z
+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
+Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->mLastUidCpuActiveTimeMs:Landroid/util/SparseArray;
+Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->mProcReader:Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->readAbsolute(Lcom/android/internal/os/KernelUidCpuActiveTimeReader$Callback;)V
+Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelUidCpuActiveTimeReader$Callback;)V
+Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->readImpl(Ljava/util/function/Consumer;)V
+Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->removeUid(I)V
+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
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->mCurTimeRounded:[J
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->mDeltaTime:[J
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->mLastUidPolicyTimeMs:Landroid/util/SparseArray;
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->mNumClusters:I
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->mNumCores:I
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->mNumCoresOnCluster:[I
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->mProcReader:Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->readAbsolute(Lcom/android/internal/os/KernelUidCpuClusterTimeReader$Callback;)V
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->readCoreInfo(Ljava/nio/IntBuffer;I)Z
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelUidCpuClusterTimeReader$Callback;)V
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->readImpl(Ljava/util/function/Consumer;)V
+Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->removeUid(I)V
+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
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->extractClusterInfoFromProcFileFreqs()Landroid/util/IntArray;
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->getAllUidCpuFreqTimeMs()Landroid/util/SparseArray;
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->getFreqTimeForUid(Ljava/nio/IntBuffer;[J)Z
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mAllUidTimesAvailable:Z
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mCpuFreqs:[J
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mCpuFreqsCount:I
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mCurTimes:[J
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mDeltaTimes:[J
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mLastUidCpuFreqTimeMs:Landroid/util/SparseArray;
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mPerClusterTimesAvailable:Z
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mProcReader:Lcom/android/internal/os/KernelCpuProcReader;
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->mReadErrorCounter:I
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->perClusterTimesAvailable()Z
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->readAbsolute(Lcom/android/internal/os/KernelUidCpuFreqTimeReader$Callback;)V
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelUidCpuFreqTimeReader$Callback;)V
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->readFreqs(Lcom/android/internal/os/PowerProfile;)[J
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->readFreqs(Ljava/io/BufferedReader;Lcom/android/internal/os/PowerProfile;)[J
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->readImpl(Ljava/util/function/Consumer;)V
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->removeUid(I)V
+Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->removeUidsInRange(II)V
+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
+Lcom/android/internal/os/KernelUidCpuTimeReader;->mLastUserTimeUs:Landroid/util/SparseLongArray;
+Lcom/android/internal/os/KernelUidCpuTimeReader;->readAbsolute(Lcom/android/internal/os/KernelUidCpuTimeReader$Callback;)V
+Lcom/android/internal/os/KernelUidCpuTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelUidCpuTimeReader$Callback;)V
+Lcom/android/internal/os/KernelUidCpuTimeReader;->removeUid(I)V
+Lcom/android/internal/os/KernelUidCpuTimeReader;->removeUidsFromKernelModule(II)V
+Lcom/android/internal/os/KernelUidCpuTimeReader;->removeUidsInRange(II)V
+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
+Lcom/android/internal/os/KernelUidCpuTimeReaderBase;->mLastTimeReadMs:J
+Lcom/android/internal/os/KernelUidCpuTimeReaderBase;->mThrottleInterval:J
+Lcom/android/internal/os/KernelUidCpuTimeReaderBase;->readDelta(Lcom/android/internal/os/KernelUidCpuTimeReaderBase$Callback;)V
+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;
+Lcom/android/internal/os/KernelWakelockReader;->parseProcWakelocks([BIZLcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+Lcom/android/internal/os/KernelWakelockReader;->PROC_WAKELOCKS_FORMAT:[I
+Lcom/android/internal/os/KernelWakelockReader;->readKernelWakelockStats(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+Lcom/android/internal/os/KernelWakelockReader;->sKernelWakelockUpdateVersion:I
+Lcom/android/internal/os/KernelWakelockReader;->sWakelockFile:Ljava/lang/String;
+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
+Lcom/android/internal/os/MobileRadioPowerCalculator;->DEBUG:Z
+Lcom/android/internal/os/MobileRadioPowerCalculator;->getMobilePowerPerPacket(JI)D
+Lcom/android/internal/os/MobileRadioPowerCalculator;->mPowerBins:[D
+Lcom/android/internal/os/MobileRadioPowerCalculator;->mPowerRadioOn:D
+Lcom/android/internal/os/MobileRadioPowerCalculator;->mPowerScan:D
+Lcom/android/internal/os/MobileRadioPowerCalculator;->mStats:Landroid/os/BatteryStats;
+Lcom/android/internal/os/MobileRadioPowerCalculator;->mTotalAppMobileActiveMs:J
+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;
+Lcom/android/internal/os/PowerProfile;->CPU_CORE_POWER_PREFIX:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->CPU_CORE_SPEED_PREFIX:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->CPU_PER_CLUSTER_CORE_COUNT:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->getAveragePowerForCpuCluster(I)D
+Lcom/android/internal/os/PowerProfile;->getAveragePowerForCpuCore(II)D
+Lcom/android/internal/os/PowerProfile;->getAveragePowerOrDefault(Ljava/lang/String;D)D
+Lcom/android/internal/os/PowerProfile;->getNumCoresInCpuCluster(I)I
+Lcom/android/internal/os/PowerProfile;->getNumElements(Ljava/lang/String;)I
+Lcom/android/internal/os/PowerProfile;->initCpuClusters()V
+Lcom/android/internal/os/PowerProfile;->mCpuClusters:[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
+Lcom/android/internal/os/PowerProfile;->POWER_AMBIENT_DISPLAY:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_AUDIO:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_BATTERY_CAPACITY:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_BLUETOOTH_ACTIVE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_BLUETOOTH_CONTROLLER_IDLE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_BLUETOOTH_CONTROLLER_OPERATING_VOLTAGE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_BLUETOOTH_CONTROLLER_RX:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_BLUETOOTH_CONTROLLER_TX:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_CAMERA:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_CPU_SUSPEND:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_FLASHLIGHT:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_GPS_OPERATING_VOLTAGE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_GPS_SIGNAL_QUALITY_BASED:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_MEMORY:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_MODEM_CONTROLLER_IDLE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_MODEM_CONTROLLER_OPERATING_VOLTAGE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_MODEM_CONTROLLER_RX:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_MODEM_CONTROLLER_SLEEP:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_MODEM_CONTROLLER_TX:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_VIDEO:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_BATCHED_SCAN:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_CONTROLLER_IDLE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_CONTROLLER_OPERATING_VOLTAGE:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_CONTROLLER_RX:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_CONTROLLER_TX:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->POWER_WIFI_CONTROLLER_TX_LEVELS:Ljava/lang/String;
+Lcom/android/internal/os/PowerProfile;->readPowerValuesFromXml(Landroid/content/Context;Z)V
+Lcom/android/internal/os/PowerProfile;->sLock:Ljava/lang/Object;
+Lcom/android/internal/os/PowerProfile;->sPowerArrayMap:Ljava/util/HashMap;
+Lcom/android/internal/os/PowerProfile;->sPowerItemMap:Ljava/util/HashMap;
+Lcom/android/internal/os/PowerProfile;->TAG_ARRAY:Ljava/lang/String;
+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;
+Lcom/android/internal/os/SomeArgs;->arg6:Ljava/lang/Object;
+Lcom/android/internal/os/SomeArgs;->arg7:Ljava/lang/Object;
+Lcom/android/internal/os/SomeArgs;->arg8:Ljava/lang/Object;
+Lcom/android/internal/os/SomeArgs;->arg9:Ljava/lang/Object;
+Lcom/android/internal/os/SomeArgs;->argi1:I
+Lcom/android/internal/os/SomeArgs;->argi4:I
+Lcom/android/internal/os/SomeArgs;->argi5:I
+Lcom/android/internal/os/SomeArgs;->argi6:I
+Lcom/android/internal/os/SomeArgs;->clear()V
+Lcom/android/internal/os/SomeArgs;->complete()V
+Lcom/android/internal/os/SomeArgs;->MAX_POOL_SIZE:I
+Lcom/android/internal/os/SomeArgs;->mInPool:Z
+Lcom/android/internal/os/SomeArgs;->mNext:Lcom/android/internal/os/SomeArgs;
+Lcom/android/internal/os/SomeArgs;->mWaitState:I
+Lcom/android/internal/os/SomeArgs;->sPool:Lcom/android/internal/os/SomeArgs;
+Lcom/android/internal/os/SomeArgs;->sPoolLock:Ljava/lang/Object;
+Lcom/android/internal/os/SomeArgs;->sPoolSize:I
+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
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->doKeyguardTimeout(Landroid/os/Bundle;)V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onBootCompleted()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onDreamingStarted()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onDreamingStopped()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onFinishedGoingToSleep(IZ)V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onFinishedWakingUp()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurnedOff()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurnedOn()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurningOff()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurningOn(Lcom/android/internal/policy/IKeyguardDrawnCallback;)V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onShortPowerPressedGoHome()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onStartedGoingToSleep(I)V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onStartedWakingUp()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onSystemReady()V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->setCurrentUser(I)V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->setKeyguardEnabled(Z)V
+Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->setOccluded(ZZ)V
+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
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_dismiss:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_doKeyguardTimeout:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onBootCompleted:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onDreamingStarted:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onDreamingStopped:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onFinishedGoingToSleep:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onFinishedWakingUp:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onScreenTurnedOff:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onScreenTurnedOn:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onScreenTurningOff:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onScreenTurningOn:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onShortPowerPressedGoHome:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onStartedGoingToSleep:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onStartedWakingUp:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_onSystemReady:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_setCurrentUser:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_setKeyguardEnabled:I
+Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_setOccluded:I
+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
+Lcom/android/internal/policy/IKeyguardService;->onDreamingStarted()V
+Lcom/android/internal/policy/IKeyguardService;->onDreamingStopped()V
+Lcom/android/internal/policy/IKeyguardService;->onFinishedGoingToSleep(IZ)V
+Lcom/android/internal/policy/IKeyguardService;->onFinishedWakingUp()V
+Lcom/android/internal/policy/IKeyguardService;->onScreenTurnedOff()V
+Lcom/android/internal/policy/IKeyguardService;->onScreenTurnedOn()V
+Lcom/android/internal/policy/IKeyguardService;->onScreenTurningOff()V
+Lcom/android/internal/policy/IKeyguardService;->onScreenTurningOn(Lcom/android/internal/policy/IKeyguardDrawnCallback;)V
+Lcom/android/internal/policy/IKeyguardService;->onShortPowerPressedGoHome()V
+Lcom/android/internal/policy/IKeyguardService;->onStartedGoingToSleep(I)V
+Lcom/android/internal/policy/IKeyguardService;->onStartedWakingUp()V
+Lcom/android/internal/policy/IKeyguardService;->onSystemReady()V
+Lcom/android/internal/policy/IKeyguardService;->setCurrentUser(I)V
+Lcom/android/internal/policy/IKeyguardService;->setOccluded(ZZ)V
+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;
+Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onHasLockscreenWallpaperChanged(Z)V
+Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onInputRestrictedStateChanged(Z)V
+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
+Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->TRANSACTION_onInputRestrictedStateChanged:I
+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
+Lcom/android/internal/R$anim;->activity_close_exit:I
+Lcom/android/internal/R$anim;->activity_open_enter:I
+Lcom/android/internal/R$anim;->activity_translucent_close_exit:I
+Lcom/android/internal/R$anim;->activity_translucent_open_enter:I
+Lcom/android/internal/R$anim;->anticipate_interpolator:I
+Lcom/android/internal/R$anim;->anticipate_overshoot_interpolator:I
+Lcom/android/internal/R$anim;->app_starting_exit:I
+Lcom/android/internal/R$anim;->bounce_interpolator:I
+Lcom/android/internal/R$anim;->cross_profile_apps_thumbnail_enter:I
+Lcom/android/internal/R$anim;->cycle_interpolator:I
+Lcom/android/internal/R$anim;->decelerate_interpolator:I
+Lcom/android/internal/R$anim;->dock_bottom_enter:I
+Lcom/android/internal/R$anim;->dock_bottom_exit:I
+Lcom/android/internal/R$anim;->dock_bottom_exit_keyguard:I
+Lcom/android/internal/R$anim;->dock_left_enter:I
+Lcom/android/internal/R$anim;->dock_left_exit:I
+Lcom/android/internal/R$anim;->dock_right_enter:I
+Lcom/android/internal/R$anim;->dock_right_exit:I
+Lcom/android/internal/R$anim;->dock_top_enter:I
+Lcom/android/internal/R$anim;->dock_top_exit:I
+Lcom/android/internal/R$anim;->fade_out:I
+Lcom/android/internal/R$anim;->launch_task_behind_source:I
+Lcom/android/internal/R$anim;->linear_interpolator:I
+Lcom/android/internal/R$anim;->lock_screen_behind_enter:I
+Lcom/android/internal/R$anim;->lock_screen_behind_enter_fade_in:I
+Lcom/android/internal/R$anim;->lock_screen_behind_enter_wallpaper:I
+Lcom/android/internal/R$anim;->lock_screen_wallpaper_exit:I
+Lcom/android/internal/R$anim;->overshoot_interpolator:I
+Lcom/android/internal/R$anim;->push_down_in:I
+Lcom/android/internal/R$anim;->push_down_out:I
+Lcom/android/internal/R$anim;->push_up_in:I
+Lcom/android/internal/R$anim;->push_up_out:I
+Lcom/android/internal/R$anim;->rotation_animation_enter:I
+Lcom/android/internal/R$anim;->rotation_animation_jump_exit:I
+Lcom/android/internal/R$anim;->rotation_animation_xfade_exit:I
+Lcom/android/internal/R$anim;->screen_rotate_0_enter:I
+Lcom/android/internal/R$anim;->screen_rotate_0_exit:I
+Lcom/android/internal/R$anim;->screen_rotate_0_frame:I
+Lcom/android/internal/R$anim;->screen_rotate_180_enter:I
+Lcom/android/internal/R$anim;->screen_rotate_180_exit:I
+Lcom/android/internal/R$anim;->screen_rotate_180_frame:I
+Lcom/android/internal/R$anim;->screen_rotate_finish_enter:I
+Lcom/android/internal/R$anim;->screen_rotate_finish_exit:I
+Lcom/android/internal/R$anim;->screen_rotate_finish_frame:I
+Lcom/android/internal/R$anim;->screen_rotate_minus_90_enter:I
+Lcom/android/internal/R$anim;->screen_rotate_minus_90_exit:I
+Lcom/android/internal/R$anim;->screen_rotate_minus_90_frame:I
+Lcom/android/internal/R$anim;->screen_rotate_plus_90_enter:I
+Lcom/android/internal/R$anim;->screen_rotate_plus_90_exit:I
+Lcom/android/internal/R$anim;->screen_rotate_plus_90_frame:I
+Lcom/android/internal/R$anim;->screen_rotate_start_enter:I
+Lcom/android/internal/R$anim;->screen_rotate_start_exit:I
+Lcom/android/internal/R$anim;->screen_rotate_start_frame:I
+Lcom/android/internal/R$anim;->screen_user_enter:I
+Lcom/android/internal/R$anim;->screen_user_exit:I
+Lcom/android/internal/R$anim;->slide_in_child_bottom:I
+Lcom/android/internal/R$anim;->slide_in_left:I
+Lcom/android/internal/R$anim;->slide_in_right:I
+Lcom/android/internal/R$anim;->slide_out_left:I
+Lcom/android/internal/R$anim;->slide_out_right:I
+Lcom/android/internal/R$anim;->task_open_enter:I
+Lcom/android/internal/R$anim;->task_open_enter_cross_profile_apps:I
+Lcom/android/internal/R$anim;->task_open_exit:I
+Lcom/android/internal/R$anim;->voice_activity_close_enter:I
+Lcom/android/internal/R$anim;->voice_activity_close_exit:I
+Lcom/android/internal/R$anim;->voice_activity_open_enter:I
+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
+Lcom/android/internal/R$array;->config_allowedGlobalInstantAppSettings:I
+Lcom/android/internal/R$array;->config_allowedManagedServicesOnLowRamDevices:I
+Lcom/android/internal/R$array;->config_allowedSecureInstantAppSettings:I
+Lcom/android/internal/R$array;->config_allowedSystemInstantAppSettings:I
+Lcom/android/internal/R$array;->config_apfEthTypeBlackList:I
+Lcom/android/internal/R$array;->config_autoBrightnessButtonBacklightValues:I
+Lcom/android/internal/R$array;->config_autoBrightnessDisplayValuesNits:I
+Lcom/android/internal/R$array;->config_autoBrightnessKeyboardBacklightValues:I
+Lcom/android/internal/R$array;->config_autoRotationTiltTolerance:I
+Lcom/android/internal/R$array;->config_availableColorModes:I
+Lcom/android/internal/R$array;->config_batteryPackageTypeService:I
+Lcom/android/internal/R$array;->config_batteryPackageTypeSystem:I
+Lcom/android/internal/R$array;->config_calendarDateVibePattern:I
+Lcom/android/internal/R$array;->config_callBarringMMI:I
+Lcom/android/internal/R$array;->config_cdma_dun_supported_types:I
+Lcom/android/internal/R$array;->config_cdma_home_system:I
+Lcom/android/internal/R$array;->config_cdma_international_roaming_indicators:I
+Lcom/android/internal/R$array;->config_cell_retries_per_error_code:I
+Lcom/android/internal/R$array;->config_clockTickVibePattern:I
+Lcom/android/internal/R$array;->config_convert_to_emergency_number_map:I
+Lcom/android/internal/R$array;->config_defaultFirstUserRestrictions:I
+Lcom/android/internal/R$array;->config_defaultNotificationVibePattern:I
+Lcom/android/internal/R$array;->config_defaultPinnerServiceFiles:I
+Lcom/android/internal/R$array;->config_default_vm_number:I
+Lcom/android/internal/R$array;->config_deviceSpecificSystemServices:I
+Lcom/android/internal/R$array;->config_disabledUntilUsedPreinstalledImes:I
+Lcom/android/internal/R$array;->config_dynamicHysteresisBrightLevels:I
+Lcom/android/internal/R$array;->config_dynamicHysteresisDarkLevels:I
+Lcom/android/internal/R$array;->config_dynamicHysteresisLuxLevels:I
+Lcom/android/internal/R$array;->config_emergency_mcc_codes:I
+Lcom/android/internal/R$array;->config_ephemeralResolverPackage:I
+Lcom/android/internal/R$array;->config_ethernet_interfaces:I
+Lcom/android/internal/R$array;->config_globalActionsList:I
+Lcom/android/internal/R$array;->config_gpsParameters:I
+Lcom/android/internal/R$array;->config_hideWhenDisabled_packageNames:I
+Lcom/android/internal/R$array;->config_keyboardTapVibePattern:I
+Lcom/android/internal/R$array;->config_keySystemUuidMapping:I
+Lcom/android/internal/R$array;->config_locationProviderPackageNames:I
+Lcom/android/internal/R$array;->config_longPressVibePattern:I
+Lcom/android/internal/R$array;->config_minimumBrightnessCurveLux:I
+Lcom/android/internal/R$array;->config_minimumBrightnessCurveNits:I
+Lcom/android/internal/R$array;->config_mobile_tcp_buffers:I
+Lcom/android/internal/R$array;->config_networkNotifySwitches:I
+Lcom/android/internal/R$array;->config_nightDisplayColorTemperatureCoefficients:I
+Lcom/android/internal/R$array;->config_nightDisplayColorTemperatureCoefficientsNative:I
+Lcom/android/internal/R$array;->config_nonBlockableNotificationPackages:I
+Lcom/android/internal/R$array;->config_notificationFallbackVibePattern:I
+Lcom/android/internal/R$array;->config_notificationSignalExtractors:I
+Lcom/android/internal/R$array;->config_oemUsbModeOverride:I
+Lcom/android/internal/R$array;->config_protectedNetworks:I
+Lcom/android/internal/R$array;->config_ringtoneEffectUris:I
+Lcom/android/internal/R$array;->config_safeModeEnabledVibePattern:I
+Lcom/android/internal/R$array;->config_screenBrightnessBacklight:I
+Lcom/android/internal/R$array;->config_screenBrightnessNits:I
+Lcom/android/internal/R$array;->config_serialPorts:I
+Lcom/android/internal/R$array;->config_statusBarIcons:I
+Lcom/android/internal/R$array;->config_system_condition_providers:I
+Lcom/android/internal/R$array;->config_telephonyEuiccDeviceCapabilities:I
+Lcom/android/internal/R$array;->config_telephonyHardware:I
+Lcom/android/internal/R$array;->config_testLocationProviders:I
+Lcom/android/internal/R$array;->config_tether_apndata:I
+Lcom/android/internal/R$array;->config_tether_dhcp_range:I
+Lcom/android/internal/R$array;->config_twoDigitNumberPattern:I
+Lcom/android/internal/R$array;->config_usbHostBlacklist:I
+Lcom/android/internal/R$array;->config_virtualKeyVibePattern:I
+Lcom/android/internal/R$array;->config_vvmSmsFilterRegexes:I
+Lcom/android/internal/R$array;->config_wearActivityModeRadios:I
+Lcom/android/internal/R$array;->dial_string_replace:I
+Lcom/android/internal/R$array;->disallowed_apps_managed_device:I
+Lcom/android/internal/R$array;->disallowed_apps_managed_profile:I
+Lcom/android/internal/R$array;->disallowed_apps_managed_user:I
+Lcom/android/internal/R$array;->emailAddressTypes:I
+Lcom/android/internal/R$array;->fingerprint_acquired_vendor:I
+Lcom/android/internal/R$array;->fingerprint_error_vendor:I
+Lcom/android/internal/R$array;->imProtocols:I
+Lcom/android/internal/R$array;->networkAttributes:I
+Lcom/android/internal/R$array;->networks_not_clear_data:I
+Lcom/android/internal/R$array;->network_switch_type_name:I
+Lcom/android/internal/R$array;->no_ems_support_sim_operators:I
+Lcom/android/internal/R$array;->organizationTypes:I
+Lcom/android/internal/R$array;->phoneTypes:I
+Lcom/android/internal/R$array;->postalAddressTypes:I
+Lcom/android/internal/R$array;->preloaded_color_state_lists:I
+Lcom/android/internal/R$array;->preloaded_drawables:I
+Lcom/android/internal/R$array;->preloaded_freeform_multi_window_drawables:I
+Lcom/android/internal/R$array;->radioAttributes:I
+Lcom/android/internal/R$array;->required_apps_managed_device:I
+Lcom/android/internal/R$array;->required_apps_managed_profile:I
+Lcom/android/internal/R$array;->required_apps_managed_user:I
+Lcom/android/internal/R$array;->resolver_target_actions_pin:I
+Lcom/android/internal/R$array;->resolver_target_actions_unpin:I
+Lcom/android/internal/R$array;->sim_colors:I
+Lcom/android/internal/R$array;->special_locale_codes:I
+Lcom/android/internal/R$array;->special_locale_names:I
+Lcom/android/internal/R$array;->supported_locales:I
+Lcom/android/internal/R$array;->vendor_disallowed_apps_managed_device:I
+Lcom/android/internal/R$array;->vendor_disallowed_apps_managed_profile:I
+Lcom/android/internal/R$array;->vendor_disallowed_apps_managed_user:I
+Lcom/android/internal/R$array;->vendor_required_apps_managed_device:I
+Lcom/android/internal/R$array;->vendor_required_apps_managed_profile:I
+Lcom/android/internal/R$array;->vendor_required_apps_managed_user:I
+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
+Lcom/android/internal/R$attr;->accessibilityFeedbackType:I
+Lcom/android/internal/R$attr;->accessibilityFlags:I
+Lcom/android/internal/R$attr;->accessibilityFocusedDrawable:I
+Lcom/android/internal/R$attr;->accessibilityHeading:I
+Lcom/android/internal/R$attr;->accessibilityLiveRegion:I
+Lcom/android/internal/R$attr;->accessibilityPaneTitle:I
+Lcom/android/internal/R$attr;->accessibilityTraversalAfter:I
+Lcom/android/internal/R$attr;->accessibilityTraversalBefore:I
+Lcom/android/internal/R$attr;->accountPreferences:I
+Lcom/android/internal/R$attr;->accountType:I
+Lcom/android/internal/R$attr;->action:I
+Lcom/android/internal/R$attr;->actionBarDivider:I
+Lcom/android/internal/R$attr;->actionBarItemBackground:I
+Lcom/android/internal/R$attr;->actionBarPopupTheme:I
+Lcom/android/internal/R$attr;->actionBarSize:I
+Lcom/android/internal/R$attr;->actionBarSplitStyle:I
+Lcom/android/internal/R$attr;->actionBarTabBarStyle:I
+Lcom/android/internal/R$attr;->actionBarTabStyle:I
+Lcom/android/internal/R$attr;->actionBarTabTextStyle:I
+Lcom/android/internal/R$attr;->actionBarTheme:I
+Lcom/android/internal/R$attr;->actionBarWidgetTheme:I
+Lcom/android/internal/R$attr;->actionButtonStyle:I
+Lcom/android/internal/R$attr;->actionDropDownStyle:I
+Lcom/android/internal/R$attr;->actionLayout:I
+Lcom/android/internal/R$attr;->actionMenuTextAppearance:I
+Lcom/android/internal/R$attr;->actionMenuTextColor:I
+Lcom/android/internal/R$attr;->actionModeBackground:I
+Lcom/android/internal/R$attr;->actionModeCloseButtonStyle:I
+Lcom/android/internal/R$attr;->actionModeCloseDrawable:I
+Lcom/android/internal/R$attr;->actionModeCopyDrawable:I
+Lcom/android/internal/R$attr;->actionModeCutDrawable:I
+Lcom/android/internal/R$attr;->actionModeFindDrawable:I
+Lcom/android/internal/R$attr;->actionModePasteDrawable:I
+Lcom/android/internal/R$attr;->actionModePopupWindowStyle:I
+Lcom/android/internal/R$attr;->actionModeSelectAllDrawable:I
+Lcom/android/internal/R$attr;->actionModeShareDrawable:I
+Lcom/android/internal/R$attr;->actionModeSplitBackground:I
+Lcom/android/internal/R$attr;->actionModeStyle:I
+Lcom/android/internal/R$attr;->actionModeWebSearchDrawable:I
+Lcom/android/internal/R$attr;->actionOverflowButtonStyle:I
+Lcom/android/internal/R$attr;->actionOverflowMenuStyle:I
+Lcom/android/internal/R$attr;->actionProviderClass:I
+Lcom/android/internal/R$attr;->actionViewClass:I
+Lcom/android/internal/R$attr;->activatedBackgroundIndicator:I
+Lcom/android/internal/R$attr;->activityCloseEnterAnimation:I
+Lcom/android/internal/R$attr;->activityCloseExitAnimation:I
+Lcom/android/internal/R$attr;->activityOpenEnterAnimation:I
+Lcom/android/internal/R$attr;->activityOpenExitAnimation:I
+Lcom/android/internal/R$attr;->addPrintersActivity:I
+Lcom/android/internal/R$attr;->addStatesFromChildren:I
+Lcom/android/internal/R$attr;->adjustViewBounds:I
+Lcom/android/internal/R$attr;->advancedPrintOptionsActivity:I
+Lcom/android/internal/R$attr;->alertDialogCenterButtons:I
+Lcom/android/internal/R$attr;->alertDialogIcon:I
+Lcom/android/internal/R$attr;->alertDialogStyle:I
+Lcom/android/internal/R$attr;->alertDialogTheme:I
+Lcom/android/internal/R$attr;->alignmentMode:I
+Lcom/android/internal/R$attr;->allContactsName:I
+Lcom/android/internal/R$attr;->allowBackup:I
+Lcom/android/internal/R$attr;->allowClearUserData:I
+Lcom/android/internal/R$attr;->allowEmbedded:I
+Lcom/android/internal/R$attr;->allowParallelSyncs:I
+Lcom/android/internal/R$attr;->allowSingleTap:I
+Lcom/android/internal/R$attr;->allowTaskReparenting:I
+Lcom/android/internal/R$attr;->allowUndo:I
+Lcom/android/internal/R$attr;->alpha:I
+Lcom/android/internal/R$attr;->alphabeticModifiers:I
+Lcom/android/internal/R$attr;->alphabeticShortcut:I
+Lcom/android/internal/R$attr;->alwaysDrawnWithCache:I
+Lcom/android/internal/R$attr;->alwaysRetainTaskState:I
+Lcom/android/internal/R$attr;->ambientShadowAlpha:I
+Lcom/android/internal/R$attr;->amPmBackgroundColor:I
+Lcom/android/internal/R$attr;->amPmTextColor:I
+Lcom/android/internal/R$attr;->angle:I
+Lcom/android/internal/R$attr;->animateFirstView:I
+Lcom/android/internal/R$attr;->animateLayoutChanges:I
+Lcom/android/internal/R$attr;->animateOnClick:I
+Lcom/android/internal/R$attr;->animation:I
+Lcom/android/internal/R$attr;->animationCache:I
+Lcom/android/internal/R$attr;->animationDuration:I
+Lcom/android/internal/R$attr;->animationOrder:I
+Lcom/android/internal/R$attr;->animationResolution:I
+Lcom/android/internal/R$attr;->antialias:I
+Lcom/android/internal/R$attr;->anyDensity:I
+Lcom/android/internal/R$attr;->apduServiceBanner:I
+Lcom/android/internal/R$attr;->apiKey:I
+Lcom/android/internal/R$attr;->appCategory:I
+Lcom/android/internal/R$attr;->appComponentFactory:I
+Lcom/android/internal/R$attr;->author:I
+Lcom/android/internal/R$attr;->authorities:I
+Lcom/android/internal/R$attr;->autoAdvanceViewId:I
+Lcom/android/internal/R$attr;->autoCompleteTextViewStyle:I
+Lcom/android/internal/R$attr;->autofillDatasetPickerMaxHeight:I
+Lcom/android/internal/R$attr;->autofillDatasetPickerMaxWidth:I
+Lcom/android/internal/R$attr;->autofilledHighlight:I
+Lcom/android/internal/R$attr;->autofillHints:I
+Lcom/android/internal/R$attr;->autofillSaveCustomSubtitleMaxHeight:I
+Lcom/android/internal/R$attr;->autoLink:I
+Lcom/android/internal/R$attr;->autoMirrored:I
+Lcom/android/internal/R$attr;->autoRemoveFromRecents:I
+Lcom/android/internal/R$attr;->autoSizeMaxTextSize:I
+Lcom/android/internal/R$attr;->autoSizeMinTextSize:I
+Lcom/android/internal/R$attr;->autoSizePresetSizes:I
+Lcom/android/internal/R$attr;->autoSizeStepGranularity:I
+Lcom/android/internal/R$attr;->autoSizeTextType:I
+Lcom/android/internal/R$attr;->autoStart:I
+Lcom/android/internal/R$attr;->autoText:I
+Lcom/android/internal/R$attr;->autoUrlDetect:I
+Lcom/android/internal/R$attr;->autoVerify:I
+Lcom/android/internal/R$attr;->background:I
+Lcom/android/internal/R$attr;->backgroundDimAmount:I
+Lcom/android/internal/R$attr;->backgroundDimEnabled:I
+Lcom/android/internal/R$attr;->backgroundSplit:I
+Lcom/android/internal/R$attr;->backgroundStacked:I
+Lcom/android/internal/R$attr;->backgroundTint:I
+Lcom/android/internal/R$attr;->backgroundTintMode:I
+Lcom/android/internal/R$attr;->backupAgent:I
+Lcom/android/internal/R$attr;->backupInForeground:I
+Lcom/android/internal/R$attr;->banner:I
+Lcom/android/internal/R$attr;->baseline:I
+Lcom/android/internal/R$attr;->baselineAlignBottom:I
+Lcom/android/internal/R$attr;->baselineAligned:I
+Lcom/android/internal/R$attr;->baselineAlignedChildIndex:I
+Lcom/android/internal/R$attr;->bitmap:I
+Lcom/android/internal/R$attr;->borderlessButtonStyle:I
+Lcom/android/internal/R$attr;->bottom:I
+Lcom/android/internal/R$attr;->bottomBright:I
+Lcom/android/internal/R$attr;->bottomDark:I
+Lcom/android/internal/R$attr;->bottomLeftRadius:I
+Lcom/android/internal/R$attr;->bottomMedium:I
+Lcom/android/internal/R$attr;->bottomOffset:I
+Lcom/android/internal/R$attr;->bottomRightRadius:I
+Lcom/android/internal/R$attr;->breadCrumbShortTitle:I
+Lcom/android/internal/R$attr;->breadCrumbTitle:I
+Lcom/android/internal/R$attr;->breakStrategy:I
+Lcom/android/internal/R$attr;->bufferType:I
+Lcom/android/internal/R$attr;->button:I
+Lcom/android/internal/R$attr;->buttonBarButtonStyle:I
+Lcom/android/internal/R$attr;->buttonBarNegativeButtonStyle:I
+Lcom/android/internal/R$attr;->buttonBarNeutralButtonStyle:I
+Lcom/android/internal/R$attr;->buttonBarPositiveButtonStyle:I
+Lcom/android/internal/R$attr;->buttonBarStyle:I
+Lcom/android/internal/R$attr;->buttonCornerRadius:I
+Lcom/android/internal/R$attr;->buttonGravity:I
+Lcom/android/internal/R$attr;->buttonStyleInset:I
+Lcom/android/internal/R$attr;->buttonStyleSmall:I
+Lcom/android/internal/R$attr;->buttonStyleToggle:I
+Lcom/android/internal/R$attr;->buttonTint:I
+Lcom/android/internal/R$attr;->buttonTintMode:I
+Lcom/android/internal/R$attr;->cacheColorHint:I
+Lcom/android/internal/R$attr;->calendarTextColor:I
+Lcom/android/internal/R$attr;->calendarViewShown:I
+Lcom/android/internal/R$attr;->calendarViewStyle:I
+Lcom/android/internal/R$attr;->canControlMagnification:I
+Lcom/android/internal/R$attr;->candidatesTextStyleSpans:I
+Lcom/android/internal/R$attr;->canPerformGestures:I
+Lcom/android/internal/R$attr;->canRecord:I
+Lcom/android/internal/R$attr;->canRequestEnhancedWebAccessibility:I
+Lcom/android/internal/R$attr;->canRequestFilterKeyEvents:I
+Lcom/android/internal/R$attr;->canRequestFingerprintGestures:I
+Lcom/android/internal/R$attr;->canRequestTouchExplorationMode:I
+Lcom/android/internal/R$attr;->canRetrieveWindowContent:I
+Lcom/android/internal/R$attr;->cantSaveState:I
+Lcom/android/internal/R$attr;->capitalize:I
+Lcom/android/internal/R$attr;->category:I
+Lcom/android/internal/R$attr;->centerBright:I
+Lcom/android/internal/R$attr;->centerColor:I
+Lcom/android/internal/R$attr;->centerDark:I
+Lcom/android/internal/R$attr;->centerMedium:I
+Lcom/android/internal/R$attr;->centerX:I
+Lcom/android/internal/R$attr;->centerY:I
+Lcom/android/internal/R$attr;->certDigest:I
+Lcom/android/internal/R$attr;->checkable:I
+Lcom/android/internal/R$attr;->checkableBehavior:I
+Lcom/android/internal/R$attr;->checkBoxPreferenceStyle:I
+Lcom/android/internal/R$attr;->checkboxStyle:I
+Lcom/android/internal/R$attr;->checked:I
+Lcom/android/internal/R$attr;->checkedButton:I
+Lcom/android/internal/R$attr;->checkedTextViewStyle:I
+Lcom/android/internal/R$attr;->checkMark:I
+Lcom/android/internal/R$attr;->checkMarkGravity:I
+Lcom/android/internal/R$attr;->checkMarkTint:I
+Lcom/android/internal/R$attr;->checkMarkTintMode:I
+Lcom/android/internal/R$attr;->childDivider:I
+Lcom/android/internal/R$attr;->childIndicator:I
+Lcom/android/internal/R$attr;->childIndicatorEnd:I
+Lcom/android/internal/R$attr;->childIndicatorLeft:I
+Lcom/android/internal/R$attr;->childIndicatorRight:I
+Lcom/android/internal/R$attr;->childIndicatorStart:I
+Lcom/android/internal/R$attr;->choiceMode:I
+Lcom/android/internal/R$attr;->classLoader:I
+Lcom/android/internal/R$attr;->clearTaskOnLaunch:I
+Lcom/android/internal/R$attr;->clickable:I
+Lcom/android/internal/R$attr;->clipChildren:I
+Lcom/android/internal/R$attr;->clipOrientation:I
+Lcom/android/internal/R$attr;->clipToPadding:I
+Lcom/android/internal/R$attr;->closeIcon:I
+Lcom/android/internal/R$attr;->closeItemLayout:I
+Lcom/android/internal/R$attr;->codes:I
+Lcom/android/internal/R$attr;->collapseColumns:I
+Lcom/android/internal/R$attr;->collapseContentDescription:I
+Lcom/android/internal/R$attr;->collapseIcon:I
+Lcom/android/internal/R$attr;->color:I
+Lcom/android/internal/R$attr;->colorAccent:I
+Lcom/android/internal/R$attr;->colorActivatedHighlight:I
+Lcom/android/internal/R$attr;->colorBackground:I
+Lcom/android/internal/R$attr;->colorBackgroundCacheHint:I
+Lcom/android/internal/R$attr;->colorBackgroundFloating:I
+Lcom/android/internal/R$attr;->colorButtonNormal:I
+Lcom/android/internal/R$attr;->colorControlActivated:I
+Lcom/android/internal/R$attr;->colorControlHighlight:I
+Lcom/android/internal/R$attr;->colorControlNormal:I
+Lcom/android/internal/R$attr;->colorEdgeEffect:I
+Lcom/android/internal/R$attr;->colorError:I
+Lcom/android/internal/R$attr;->colorFocusedHighlight:I
+Lcom/android/internal/R$attr;->colorForeground:I
+Lcom/android/internal/R$attr;->colorForegroundInverse:I
+Lcom/android/internal/R$attr;->colorLongPressedHighlight:I
+Lcom/android/internal/R$attr;->colorMode:I
+Lcom/android/internal/R$attr;->colorMultiSelectHighlight:I
+Lcom/android/internal/R$attr;->colorPressedHighlight:I
+Lcom/android/internal/R$attr;->colorPrimary:I
+Lcom/android/internal/R$attr;->colorPrimaryDark:I
+Lcom/android/internal/R$attr;->colorProgressBackgroundNormal:I
+Lcom/android/internal/R$attr;->colorSecondary:I
+Lcom/android/internal/R$attr;->columnCount:I
+Lcom/android/internal/R$attr;->columnDelay:I
+Lcom/android/internal/R$attr;->columnOrderPreserved:I
+Lcom/android/internal/R$attr;->columnWidth:I
+Lcom/android/internal/R$attr;->commitIcon:I
+Lcom/android/internal/R$attr;->compatibleWidthLimitDp:I
+Lcom/android/internal/R$attr;->compileSdkVersion:I
+Lcom/android/internal/R$attr;->compileSdkVersionCodename:I
+Lcom/android/internal/R$attr;->completionHint:I
+Lcom/android/internal/R$attr;->completionHintView:I
+Lcom/android/internal/R$attr;->completionThreshold:I
+Lcom/android/internal/R$attr;->configChanges:I
+Lcom/android/internal/R$attr;->configure:I
+Lcom/android/internal/R$attr;->constantSize:I
+Lcom/android/internal/R$attr;->content:I
+Lcom/android/internal/R$attr;->contentAgeHint:I
+Lcom/android/internal/R$attr;->contentAuthority:I
+Lcom/android/internal/R$attr;->contentDescription:I
+Lcom/android/internal/R$attr;->contentInsetEnd:I
+Lcom/android/internal/R$attr;->contentInsetEndWithActions:I
+Lcom/android/internal/R$attr;->contentInsetLeft:I
+Lcom/android/internal/R$attr;->contentInsetRight:I
+Lcom/android/internal/R$attr;->contentInsetStart:I
+Lcom/android/internal/R$attr;->contentInsetStartWithNavigation:I
+Lcom/android/internal/R$attr;->contextClickable:I
+Lcom/android/internal/R$attr;->contextDescription:I
+Lcom/android/internal/R$attr;->contextPopupMenuStyle:I
+Lcom/android/internal/R$attr;->contextUri:I
+Lcom/android/internal/R$attr;->controlX1:I
+Lcom/android/internal/R$attr;->controlX2:I
+Lcom/android/internal/R$attr;->controlY1:I
+Lcom/android/internal/R$attr;->controlY2:I
+Lcom/android/internal/R$attr;->countDown:I
+Lcom/android/internal/R$attr;->country:I
+Lcom/android/internal/R$attr;->cropToPadding:I
+Lcom/android/internal/R$attr;->cursorVisible:I
+Lcom/android/internal/R$attr;->customNavigationLayout:I
+Lcom/android/internal/R$attr;->customTokens:I
+Lcom/android/internal/R$attr;->cycles:I
+Lcom/android/internal/R$attr;->dashGap:I
+Lcom/android/internal/R$attr;->dashWidth:I
+Lcom/android/internal/R$attr;->data:I
+Lcom/android/internal/R$attr;->datePickerDialogTheme:I
+Lcom/android/internal/R$attr;->datePickerMode:I
+Lcom/android/internal/R$attr;->datePickerStyle:I
+Lcom/android/internal/R$attr;->dateTextAppearance:I
+Lcom/android/internal/R$attr;->dayOfWeekBackground:I
+Lcom/android/internal/R$attr;->dayOfWeekTextAppearance:I
+Lcom/android/internal/R$attr;->debuggable:I
+Lcom/android/internal/R$attr;->defaultFocusHighlightEnabled:I
+Lcom/android/internal/R$attr;->defaultHeight:I
+Lcom/android/internal/R$attr;->defaultToDeviceProtectedStorage:I
+Lcom/android/internal/R$attr;->defaultValue:I
+Lcom/android/internal/R$attr;->defaultWidth:I
+Lcom/android/internal/R$attr;->delay:I
+Lcom/android/internal/R$attr;->dependency:I
+Lcom/android/internal/R$attr;->descendantFocusability:I
+Lcom/android/internal/R$attr;->detachWallpaper:I
+Lcom/android/internal/R$attr;->detailColumn:I
+Lcom/android/internal/R$attr;->detailsElementBackground:I
+Lcom/android/internal/R$attr;->detailSocialSummary:I
+Lcom/android/internal/R$attr;->dial:I
+Lcom/android/internal/R$attr;->dialogCornerRadius:I
+Lcom/android/internal/R$attr;->dialogCustomTitleDecorLayout:I
+Lcom/android/internal/R$attr;->dialogIcon:I
+Lcom/android/internal/R$attr;->dialogLayout:I
+Lcom/android/internal/R$attr;->dialogMessage:I
+Lcom/android/internal/R$attr;->dialogPreferenceStyle:I
+Lcom/android/internal/R$attr;->dialogPreferredPadding:I
+Lcom/android/internal/R$attr;->dialogTheme:I
+Lcom/android/internal/R$attr;->dialogTitle:I
+Lcom/android/internal/R$attr;->dialogTitleDecorLayout:I
+Lcom/android/internal/R$attr;->dialogTitleIconsDecorLayout:I
+Lcom/android/internal/R$attr;->digits:I
+Lcom/android/internal/R$attr;->directBootAware:I
+Lcom/android/internal/R$attr;->direction:I
+Lcom/android/internal/R$attr;->directionDescriptions:I
+Lcom/android/internal/R$attr;->directionPriority:I
+Lcom/android/internal/R$attr;->disabledAlpha:I
+Lcom/android/internal/R$attr;->disableDependentsState:I
+Lcom/android/internal/R$attr;->displayOptions:I
+Lcom/android/internal/R$attr;->dither:I
+Lcom/android/internal/R$attr;->divider:I
+Lcom/android/internal/R$attr;->dividerHeight:I
+Lcom/android/internal/R$attr;->dividerHorizontal:I
+Lcom/android/internal/R$attr;->dividerPadding:I
+Lcom/android/internal/R$attr;->dividerVertical:I
+Lcom/android/internal/R$attr;->documentLaunchMode:I
+Lcom/android/internal/R$attr;->drawable:I
+Lcom/android/internal/R$attr;->drawableBottom:I
+Lcom/android/internal/R$attr;->drawableEnd:I
+Lcom/android/internal/R$attr;->drawableLeft:I
+Lcom/android/internal/R$attr;->drawablePadding:I
+Lcom/android/internal/R$attr;->drawableRight:I
+Lcom/android/internal/R$attr;->drawableStart:I
+Lcom/android/internal/R$attr;->drawableTint:I
+Lcom/android/internal/R$attr;->drawableTintMode:I
+Lcom/android/internal/R$attr;->drawableTop:I
+Lcom/android/internal/R$attr;->drawingCacheQuality:I
+Lcom/android/internal/R$attr;->drawSelectorOnTop:I
+Lcom/android/internal/R$attr;->dropDownAnchor:I
+Lcom/android/internal/R$attr;->dropDownHeight:I
+Lcom/android/internal/R$attr;->dropDownHintAppearance:I
+Lcom/android/internal/R$attr;->dropDownHorizontalOffset:I
+Lcom/android/internal/R$attr;->dropDownItemStyle:I
+Lcom/android/internal/R$attr;->dropDownListViewStyle:I
+Lcom/android/internal/R$attr;->dropDownSelector:I
+Lcom/android/internal/R$attr;->dropDownSpinnerStyle:I
+Lcom/android/internal/R$attr;->dropDownVerticalOffset:I
+Lcom/android/internal/R$attr;->dropDownWidth:I
+Lcom/android/internal/R$attr;->duplicateParentState:I
+Lcom/android/internal/R$attr;->duration:I
+Lcom/android/internal/R$attr;->editable:I
+Lcom/android/internal/R$attr;->editorExtras:I
+Lcom/android/internal/R$attr;->editTextBackground:I
+Lcom/android/internal/R$attr;->editTextColor:I
+Lcom/android/internal/R$attr;->editTextPreferenceStyle:I
+Lcom/android/internal/R$attr;->elegantTextHeight:I
+Lcom/android/internal/R$attr;->elevation:I
+Lcom/android/internal/R$attr;->ellipsize:I
+Lcom/android/internal/R$attr;->ems:I
+Lcom/android/internal/R$attr;->enabled:I
+Lcom/android/internal/R$attr;->enableVrMode:I
+Lcom/android/internal/R$attr;->end:I
+Lcom/android/internal/R$attr;->endColor:I
+Lcom/android/internal/R$attr;->endX:I
+Lcom/android/internal/R$attr;->endY:I
+Lcom/android/internal/R$attr;->endYear:I
+Lcom/android/internal/R$attr;->enterFadeDuration:I
+Lcom/android/internal/R$attr;->entries:I
+Lcom/android/internal/R$attr;->entryValues:I
+Lcom/android/internal/R$attr;->eventsInterceptionEnabled:I
+Lcom/android/internal/R$attr;->excludeClass:I
+Lcom/android/internal/R$attr;->excludeFromRecents:I
+Lcom/android/internal/R$attr;->excludeId:I
+Lcom/android/internal/R$attr;->excludeName:I
+Lcom/android/internal/R$attr;->exitFadeDuration:I
+Lcom/android/internal/R$attr;->expandableListPreferredChildIndicatorLeft:I
+Lcom/android/internal/R$attr;->expandableListPreferredChildIndicatorRight:I
+Lcom/android/internal/R$attr;->expandableListPreferredChildPaddingLeft:I
+Lcom/android/internal/R$attr;->expandableListPreferredItemIndicatorLeft:I
+Lcom/android/internal/R$attr;->expandableListPreferredItemIndicatorRight:I
+Lcom/android/internal/R$attr;->expandableListPreferredItemPaddingLeft:I
+Lcom/android/internal/R$attr;->expandableListViewStyle:I
+Lcom/android/internal/R$attr;->expandableListViewWhiteStyle:I
+Lcom/android/internal/R$attr;->exported:I
+Lcom/android/internal/R$attr;->externalRouteEnabledDrawable:I
+Lcom/android/internal/R$attr;->externalService:I
+Lcom/android/internal/R$attr;->extractNativeLibs:I
+Lcom/android/internal/R$attr;->extraTension:I
+Lcom/android/internal/R$attr;->factor:I
+Lcom/android/internal/R$attr;->fadeDuration:I
+Lcom/android/internal/R$attr;->fadeEnabled:I
+Lcom/android/internal/R$attr;->fadeOffset:I
+Lcom/android/internal/R$attr;->fadeScrollbars:I
+Lcom/android/internal/R$attr;->fadingEdge:I
+Lcom/android/internal/R$attr;->fadingEdgeLength:I
+Lcom/android/internal/R$attr;->fadingMode:I
+Lcom/android/internal/R$attr;->fallbackLineSpacing:I
+Lcom/android/internal/R$attr;->fastScrollAlwaysVisible:I
+Lcom/android/internal/R$attr;->fastScrollEnabled:I
+Lcom/android/internal/R$attr;->fastScrollOverlayPosition:I
+Lcom/android/internal/R$attr;->fastScrollPreviewBackgroundLeft:I
+Lcom/android/internal/R$attr;->fastScrollPreviewBackgroundRight:I
+Lcom/android/internal/R$attr;->fastScrollStyle:I
+Lcom/android/internal/R$attr;->fastScrollTextColor:I
+Lcom/android/internal/R$attr;->fastScrollThumbDrawable:I
+Lcom/android/internal/R$attr;->fastScrollTrackDrawable:I
+Lcom/android/internal/R$attr;->fillAfter:I
+Lcom/android/internal/R$attr;->fillAlpha:I
+Lcom/android/internal/R$attr;->fillBefore:I
+Lcom/android/internal/R$attr;->fillColor:I
+Lcom/android/internal/R$attr;->fillEnabled:I
+Lcom/android/internal/R$attr;->fillType:I
+Lcom/android/internal/R$attr;->fillViewport:I
+Lcom/android/internal/R$attr;->filter:I
+Lcom/android/internal/R$attr;->filterTouchesWhenObscured:I
+Lcom/android/internal/R$attr;->fingerprintAuthDrawable:I
+Lcom/android/internal/R$attr;->finishOnCloseSystemDialogs:I
+Lcom/android/internal/R$attr;->finishOnTaskLaunch:I
+Lcom/android/internal/R$attr;->firstBaselineToTopHeight:I
+Lcom/android/internal/R$attr;->firstDayOfWeek:I
+Lcom/android/internal/R$attr;->fitsSystemWindows:I
+Lcom/android/internal/R$attr;->flipInterval:I
+Lcom/android/internal/R$attr;->floatingToolbarDividerColor:I
+Lcom/android/internal/R$attr;->focusable:I
+Lcom/android/internal/R$attr;->focusableInTouchMode:I
+Lcom/android/internal/R$attr;->focusedByDefault:I
+Lcom/android/internal/R$attr;->focusedMonthDateColor:I
+Lcom/android/internal/R$attr;->font:I
+Lcom/android/internal/R$attr;->fontFamily:I
+Lcom/android/internal/R$attr;->fontFeatureSettings:I
+Lcom/android/internal/R$attr;->fontProviderAuthority:I
+Lcom/android/internal/R$attr;->fontProviderCerts:I
+Lcom/android/internal/R$attr;->fontProviderPackage:I
+Lcom/android/internal/R$attr;->fontProviderQuery:I
+Lcom/android/internal/R$attr;->fontStyle:I
+Lcom/android/internal/R$attr;->fontVariationSettings:I
+Lcom/android/internal/R$attr;->fontWeight:I
+Lcom/android/internal/R$attr;->footerDividersEnabled:I
+Lcom/android/internal/R$attr;->forceHasOverlappingRendering:I
+Lcom/android/internal/R$attr;->foreground:I
+Lcom/android/internal/R$attr;->foregroundGravity:I
+Lcom/android/internal/R$attr;->foregroundTint:I
+Lcom/android/internal/R$attr;->foregroundTintMode:I
+Lcom/android/internal/R$attr;->format12Hour:I
+Lcom/android/internal/R$attr;->format24Hour:I
+Lcom/android/internal/R$attr;->format:I
+Lcom/android/internal/R$attr;->fraction:I
+Lcom/android/internal/R$attr;->fragment:I
+Lcom/android/internal/R$attr;->fragmentAllowEnterTransitionOverlap:I
+Lcom/android/internal/R$attr;->fragmentAllowReturnTransitionOverlap:I
+Lcom/android/internal/R$attr;->fragmentBreadCrumbsStyle:I
+Lcom/android/internal/R$attr;->fragmentCloseEnterAnimation:I
+Lcom/android/internal/R$attr;->fragmentCloseExitAnimation:I
+Lcom/android/internal/R$attr;->fragmentEnterTransition:I
+Lcom/android/internal/R$attr;->fragmentExitTransition:I
+Lcom/android/internal/R$attr;->fragmentFadeEnterAnimation:I
+Lcom/android/internal/R$attr;->fragmentFadeExitAnimation:I
+Lcom/android/internal/R$attr;->fragmentOpenEnterAnimation:I
+Lcom/android/internal/R$attr;->fragmentOpenExitAnimation:I
+Lcom/android/internal/R$attr;->fragmentReenterTransition:I
+Lcom/android/internal/R$attr;->fragmentReturnTransition:I
+Lcom/android/internal/R$attr;->fragmentSharedElementEnterTransition:I
+Lcom/android/internal/R$attr;->fragmentSharedElementReturnTransition:I
+Lcom/android/internal/R$attr;->freezesText:I
+Lcom/android/internal/R$attr;->fromAlpha:I
+Lcom/android/internal/R$attr;->fromDegrees:I
+Lcom/android/internal/R$attr;->fromId:I
+Lcom/android/internal/R$attr;->fromScene:I
+Lcom/android/internal/R$attr;->fromXDelta:I
+Lcom/android/internal/R$attr;->fromXScale:I
+Lcom/android/internal/R$attr;->fromYDelta:I
+Lcom/android/internal/R$attr;->fromYScale:I
+Lcom/android/internal/R$attr;->fullBackupContent:I
+Lcom/android/internal/R$attr;->fullBackupOnly:I
+Lcom/android/internal/R$attr;->fullBright:I
+Lcom/android/internal/R$attr;->fullDark:I
+Lcom/android/internal/R$attr;->functionalTest:I
+Lcom/android/internal/R$attr;->galleryItemBackground:I
+Lcom/android/internal/R$attr;->galleryStyle:I
+Lcom/android/internal/R$attr;->gestureColor:I
+Lcom/android/internal/R$attr;->gestureOverlayViewStyle:I
+Lcom/android/internal/R$attr;->gestureStrokeAngleThreshold:I
+Lcom/android/internal/R$attr;->gestureStrokeLengthThreshold:I
+Lcom/android/internal/R$attr;->gestureStrokeSquarenessThreshold:I
+Lcom/android/internal/R$attr;->gestureStrokeType:I
+Lcom/android/internal/R$attr;->gestureStrokeWidth:I
+Lcom/android/internal/R$attr;->glEsVersion:I
+Lcom/android/internal/R$attr;->goIcon:I
+Lcom/android/internal/R$attr;->gradientRadius:I
+Lcom/android/internal/R$attr;->grantUriPermissions:I
+Lcom/android/internal/R$attr;->gravity:I
+Lcom/android/internal/R$attr;->gridViewStyle:I
+Lcom/android/internal/R$attr;->groupIndicator:I
+Lcom/android/internal/R$attr;->handle:I
+Lcom/android/internal/R$attr;->handleProfiling:I
+Lcom/android/internal/R$attr;->hand_hour:I
+Lcom/android/internal/R$attr;->hand_minute:I
+Lcom/android/internal/R$attr;->hapticFeedbackEnabled:I
+Lcom/android/internal/R$attr;->hardwareAccelerated:I
+Lcom/android/internal/R$attr;->hasCode:I
+Lcom/android/internal/R$attr;->hash:I
+Lcom/android/internal/R$attr;->headerAmPmTextAppearance:I
+Lcom/android/internal/R$attr;->headerBackground:I
+Lcom/android/internal/R$attr;->headerDayOfMonthTextAppearance:I
+Lcom/android/internal/R$attr;->headerDividersEnabled:I
+Lcom/android/internal/R$attr;->headerMonthTextAppearance:I
+Lcom/android/internal/R$attr;->headerTimeTextAppearance:I
+Lcom/android/internal/R$attr;->headerYearTextAppearance:I
+Lcom/android/internal/R$attr;->height:I
+Lcom/android/internal/R$attr;->hideOnContentScroll:I
+Lcom/android/internal/R$attr;->hint:I
+Lcom/android/internal/R$attr;->homeAsUpIndicator:I
+Lcom/android/internal/R$attr;->homeLayout:I
+Lcom/android/internal/R$attr;->horizontalDivider:I
+Lcom/android/internal/R$attr;->horizontalGap:I
+Lcom/android/internal/R$attr;->horizontalScrollViewStyle:I
+Lcom/android/internal/R$attr;->horizontalSpacing:I
+Lcom/android/internal/R$attr;->host:I
+Lcom/android/internal/R$attr;->hotSpotX:I
+Lcom/android/internal/R$attr;->hotSpotY:I
+Lcom/android/internal/R$attr;->hyphenationFrequency:I
+Lcom/android/internal/R$attr;->icon:I
+Lcom/android/internal/R$attr;->iconifiedByDefault:I
+Lcom/android/internal/R$attr;->iconPreview:I
+Lcom/android/internal/R$attr;->iconSpaceReserved:I
+Lcom/android/internal/R$attr;->iconTint:I
+Lcom/android/internal/R$attr;->iconTintMode:I
+Lcom/android/internal/R$attr;->id:I
+Lcom/android/internal/R$attr;->ignoreGravity:I
+Lcom/android/internal/R$attr;->imageButtonStyle:I
+Lcom/android/internal/R$attr;->imageWellStyle:I
+Lcom/android/internal/R$attr;->imeActionId:I
+Lcom/android/internal/R$attr;->imeActionLabel:I
+Lcom/android/internal/R$attr;->imeExtractEnterAnimation:I
+Lcom/android/internal/R$attr;->imeExtractExitAnimation:I
+Lcom/android/internal/R$attr;->imeFullscreenBackground:I
+Lcom/android/internal/R$attr;->imeOptions:I
+Lcom/android/internal/R$attr;->imeSubtypeExtraValue:I
+Lcom/android/internal/R$attr;->imeSubtypeLocale:I
+Lcom/android/internal/R$attr;->imeSubtypeMode:I
+Lcom/android/internal/R$attr;->immersive:I
+Lcom/android/internal/R$attr;->importantForAccessibility:I
+Lcom/android/internal/R$attr;->importantForAutofill:I
+Lcom/android/internal/R$attr;->inAnimation:I
+Lcom/android/internal/R$attr;->includeFontPadding:I
+Lcom/android/internal/R$attr;->includeInGlobalSearch:I
+Lcom/android/internal/R$attr;->indeterminate:I
+Lcom/android/internal/R$attr;->indeterminateBehavior:I
+Lcom/android/internal/R$attr;->indeterminateDrawable:I
+Lcom/android/internal/R$attr;->indeterminateDuration:I
+Lcom/android/internal/R$attr;->indeterminateOnly:I
+Lcom/android/internal/R$attr;->indeterminateProgressStyle:I
+Lcom/android/internal/R$attr;->indeterminateTint:I
+Lcom/android/internal/R$attr;->indeterminateTintMode:I
+Lcom/android/internal/R$attr;->indicatorEnd:I
+Lcom/android/internal/R$attr;->indicatorLeft:I
+Lcom/android/internal/R$attr;->indicatorRight:I
+Lcom/android/internal/R$attr;->indicatorStart:I
+Lcom/android/internal/R$attr;->inflatedId:I
+Lcom/android/internal/R$attr;->initialKeyguardLayout:I
+Lcom/android/internal/R$attr;->initialLayout:I
+Lcom/android/internal/R$attr;->initOrder:I
+Lcom/android/internal/R$attr;->innerRadius:I
+Lcom/android/internal/R$attr;->innerRadiusRatio:I
+Lcom/android/internal/R$attr;->inputMethod:I
+Lcom/android/internal/R$attr;->inputType:I
+Lcom/android/internal/R$attr;->inset:I
+Lcom/android/internal/R$attr;->insetBottom:I
+Lcom/android/internal/R$attr;->insetLeft:I
+Lcom/android/internal/R$attr;->insetRight:I
+Lcom/android/internal/R$attr;->insetTop:I
+Lcom/android/internal/R$attr;->installLocation:I
+Lcom/android/internal/R$attr;->interpolator:I
+Lcom/android/internal/R$attr;->isAlwaysSyncable:I
+Lcom/android/internal/R$attr;->isAsciiCapable:I
+Lcom/android/internal/R$attr;->isAuxiliary:I
+Lcom/android/internal/R$attr;->isDefault:I
+Lcom/android/internal/R$attr;->isFeatureSplit:I
+Lcom/android/internal/R$attr;->isGame:I
+Lcom/android/internal/R$attr;->isIndicator:I
+Lcom/android/internal/R$attr;->isLightTheme:I
+Lcom/android/internal/R$attr;->isModifier:I
+Lcom/android/internal/R$attr;->isolatedProcess:I
+Lcom/android/internal/R$attr;->isolatedSplits:I
+Lcom/android/internal/R$attr;->isRepeatable:I
+Lcom/android/internal/R$attr;->isScrollContainer:I
+Lcom/android/internal/R$attr;->isStatic:I
+Lcom/android/internal/R$attr;->isSticky:I
+Lcom/android/internal/R$attr;->isVrOnly:I
+Lcom/android/internal/R$attr;->itemBackground:I
+Lcom/android/internal/R$attr;->itemIconDisabledAlpha:I
+Lcom/android/internal/R$attr;->itemPadding:I
+Lcom/android/internal/R$attr;->itemTextAppearance:I
+Lcom/android/internal/R$attr;->justificationMode:I
+Lcom/android/internal/R$attr;->keepScreenOn:I
+Lcom/android/internal/R$attr;->key:I
+Lcom/android/internal/R$attr;->keyBackground:I
+Lcom/android/internal/R$attr;->keyboardLayout:I
+Lcom/android/internal/R$attr;->keyboardMode:I
+Lcom/android/internal/R$attr;->keyboardNavigationCluster:I
+Lcom/android/internal/R$attr;->keyboardViewStyle:I
+Lcom/android/internal/R$attr;->keycode:I
+Lcom/android/internal/R$attr;->keyEdgeFlags:I
+Lcom/android/internal/R$attr;->keyHeight:I
+Lcom/android/internal/R$attr;->keyIcon:I
+Lcom/android/internal/R$attr;->keyLabel:I
+Lcom/android/internal/R$attr;->keyOutputText:I
+Lcom/android/internal/R$attr;->keyPreviewHeight:I
+Lcom/android/internal/R$attr;->keyPreviewLayout:I
+Lcom/android/internal/R$attr;->keyPreviewOffset:I
+Lcom/android/internal/R$attr;->keySet:I
+Lcom/android/internal/R$attr;->keyTextColor:I
+Lcom/android/internal/R$attr;->keyTextSize:I
+Lcom/android/internal/R$attr;->keyWidth:I
+Lcom/android/internal/R$attr;->killAfterRestore:I
+Lcom/android/internal/R$attr;->label:I
+Lcom/android/internal/R$attr;->labelFor:I
+Lcom/android/internal/R$attr;->labelTextSize:I
+Lcom/android/internal/R$attr;->languageTag:I
+Lcom/android/internal/R$attr;->largeHeap:I
+Lcom/android/internal/R$attr;->largeScreens:I
+Lcom/android/internal/R$attr;->largestWidthLimitDp:I
+Lcom/android/internal/R$attr;->lastBaselineToBottomHeight:I
+Lcom/android/internal/R$attr;->launchMode:I
+Lcom/android/internal/R$attr;->launchTaskBehindSourceAnimation:I
+Lcom/android/internal/R$attr;->launchTaskBehindTargetAnimation:I
+Lcom/android/internal/R$attr;->layerType:I
+Lcom/android/internal/R$attr;->layout:I
+Lcom/android/internal/R$attr;->layoutAnimation:I
+Lcom/android/internal/R$attr;->layoutDirection:I
+Lcom/android/internal/R$attr;->layoutMode:I
+Lcom/android/internal/R$attr;->layout_above:I
+Lcom/android/internal/R$attr;->layout_alignBaseline:I
+Lcom/android/internal/R$attr;->layout_alignBottom:I
+Lcom/android/internal/R$attr;->layout_alignEnd:I
+Lcom/android/internal/R$attr;->layout_alignLeft:I
+Lcom/android/internal/R$attr;->layout_alignParentBottom:I
+Lcom/android/internal/R$attr;->layout_alignParentEnd:I
+Lcom/android/internal/R$attr;->layout_alignParentLeft:I
+Lcom/android/internal/R$attr;->layout_alignParentRight:I
+Lcom/android/internal/R$attr;->layout_alignParentStart:I
+Lcom/android/internal/R$attr;->layout_alignParentTop:I
+Lcom/android/internal/R$attr;->layout_alignRight:I
+Lcom/android/internal/R$attr;->layout_alignStart:I
+Lcom/android/internal/R$attr;->layout_alignTop:I
+Lcom/android/internal/R$attr;->layout_alignWithParentIfMissing:I
+Lcom/android/internal/R$attr;->layout_below:I
+Lcom/android/internal/R$attr;->layout_centerHorizontal:I
+Lcom/android/internal/R$attr;->layout_centerInParent:I
+Lcom/android/internal/R$attr;->layout_centerVertical:I
+Lcom/android/internal/R$attr;->layout_column:I
+Lcom/android/internal/R$attr;->layout_columnSpan:I
+Lcom/android/internal/R$attr;->layout_columnWeight:I
+Lcom/android/internal/R$attr;->layout_gravity:I
+Lcom/android/internal/R$attr;->layout_height:I
+Lcom/android/internal/R$attr;->layout_margin:I
+Lcom/android/internal/R$attr;->layout_marginBottom:I
+Lcom/android/internal/R$attr;->layout_marginEnd:I
+Lcom/android/internal/R$attr;->layout_marginHorizontal:I
+Lcom/android/internal/R$attr;->layout_marginLeft:I
+Lcom/android/internal/R$attr;->layout_marginRight:I
+Lcom/android/internal/R$attr;->layout_marginStart:I
+Lcom/android/internal/R$attr;->layout_marginTop:I
+Lcom/android/internal/R$attr;->layout_marginVertical:I
+Lcom/android/internal/R$attr;->layout_row:I
+Lcom/android/internal/R$attr;->layout_rowSpan:I
+Lcom/android/internal/R$attr;->layout_rowWeight:I
+Lcom/android/internal/R$attr;->layout_scale:I
+Lcom/android/internal/R$attr;->layout_span:I
+Lcom/android/internal/R$attr;->layout_toEndOf:I
+Lcom/android/internal/R$attr;->layout_toLeftOf:I
+Lcom/android/internal/R$attr;->layout_toRightOf:I
+Lcom/android/internal/R$attr;->layout_toStartOf:I
+Lcom/android/internal/R$attr;->layout_weight:I
+Lcom/android/internal/R$attr;->layout_width:I
+Lcom/android/internal/R$attr;->layout_x:I
+Lcom/android/internal/R$attr;->layout_y:I
+Lcom/android/internal/R$attr;->left:I
+Lcom/android/internal/R$attr;->letterSpacing:I
+Lcom/android/internal/R$attr;->level:I
+Lcom/android/internal/R$attr;->lightRadius:I
+Lcom/android/internal/R$attr;->lightY:I
+Lcom/android/internal/R$attr;->lightZ:I
+Lcom/android/internal/R$attr;->lineHeight:I
+Lcom/android/internal/R$attr;->lines:I
+Lcom/android/internal/R$attr;->lineSpacingExtra:I
+Lcom/android/internal/R$attr;->lineSpacingMultiplier:I
+Lcom/android/internal/R$attr;->linksClickable:I
+Lcom/android/internal/R$attr;->listChoiceBackgroundIndicator:I
+Lcom/android/internal/R$attr;->listChoiceIndicatorMultiple:I
+Lcom/android/internal/R$attr;->listChoiceIndicatorSingle:I
+Lcom/android/internal/R$attr;->listDivider:I
+Lcom/android/internal/R$attr;->listDividerAlertDialog:I
+Lcom/android/internal/R$attr;->listMenuViewStyle:I
+Lcom/android/internal/R$attr;->listPopupWindowStyle:I
+Lcom/android/internal/R$attr;->listPreferredItemHeight:I
+Lcom/android/internal/R$attr;->listPreferredItemHeightLarge:I
+Lcom/android/internal/R$attr;->listPreferredItemHeightSmall:I
+Lcom/android/internal/R$attr;->listPreferredItemPaddingEnd:I
+Lcom/android/internal/R$attr;->listPreferredItemPaddingLeft:I
+Lcom/android/internal/R$attr;->listPreferredItemPaddingRight:I
+Lcom/android/internal/R$attr;->listPreferredItemPaddingStart:I
+Lcom/android/internal/R$attr;->listSelector:I
+Lcom/android/internal/R$attr;->listSeparatorTextViewStyle:I
+Lcom/android/internal/R$attr;->listViewStyle:I
+Lcom/android/internal/R$attr;->listViewWhiteStyle:I
+Lcom/android/internal/R$attr;->lockPatternStyle:I
+Lcom/android/internal/R$attr;->lockTaskMode:I
+Lcom/android/internal/R$attr;->logo:I
+Lcom/android/internal/R$attr;->logoDescription:I
+Lcom/android/internal/R$attr;->longClickable:I
+Lcom/android/internal/R$attr;->loopViews:I
+Lcom/android/internal/R$attr;->manageSpaceActivity:I
+Lcom/android/internal/R$attr;->marqueeRepeatLimit:I
+Lcom/android/internal/R$attr;->matchOrder:I
+Lcom/android/internal/R$attr;->max:I
+Lcom/android/internal/R$attr;->maxAspectRatio:I
+Lcom/android/internal/R$attr;->maxButtonHeight:I
+Lcom/android/internal/R$attr;->maxDate:I
+Lcom/android/internal/R$attr;->maxEms:I
+Lcom/android/internal/R$attr;->maxHeight:I
+Lcom/android/internal/R$attr;->maximumAngle:I
+Lcom/android/internal/R$attr;->maxItemsPerRow:I
+Lcom/android/internal/R$attr;->maxLength:I
+Lcom/android/internal/R$attr;->maxLevel:I
+Lcom/android/internal/R$attr;->maxLines:I
+Lcom/android/internal/R$attr;->maxLongVersionCode:I
+Lcom/android/internal/R$attr;->maxRecents:I
+Lcom/android/internal/R$attr;->maxRows:I
+Lcom/android/internal/R$attr;->maxSdkVersion:I
+Lcom/android/internal/R$attr;->maxWidth:I
+Lcom/android/internal/R$attr;->measureAllChildren:I
+Lcom/android/internal/R$attr;->measureWithLargestChild:I
+Lcom/android/internal/R$attr;->mediaRouteButtonStyle:I
+Lcom/android/internal/R$attr;->mediaRouteTypes:I
+Lcom/android/internal/R$attr;->menuCategory:I
+Lcom/android/internal/R$attr;->mimeType:I
+Lcom/android/internal/R$attr;->min:I
+Lcom/android/internal/R$attr;->minDate:I
+Lcom/android/internal/R$attr;->minEms:I
+Lcom/android/internal/R$attr;->minHeight:I
+Lcom/android/internal/R$attr;->minimumHorizontalAngle:I
+Lcom/android/internal/R$attr;->minimumVerticalAngle:I
+Lcom/android/internal/R$attr;->minLevel:I
+Lcom/android/internal/R$attr;->minLines:I
+Lcom/android/internal/R$attr;->minResizeHeight:I
+Lcom/android/internal/R$attr;->minResizeWidth:I
+Lcom/android/internal/R$attr;->minSdkVersion:I
+Lcom/android/internal/R$attr;->minWidth:I
+Lcom/android/internal/R$attr;->mipMap:I
+Lcom/android/internal/R$attr;->mirrorForRtl:I
+Lcom/android/internal/R$attr;->mode:I
+Lcom/android/internal/R$attr;->moreIcon:I
+Lcom/android/internal/R$attr;->multiArch:I
+Lcom/android/internal/R$attr;->multiprocess:I
+Lcom/android/internal/R$attr;->name:I
+Lcom/android/internal/R$attr;->navigationBarColor:I
+Lcom/android/internal/R$attr;->navigationBarDividerColor:I
+Lcom/android/internal/R$attr;->navigationContentDescription:I
+Lcom/android/internal/R$attr;->navigationIcon:I
+Lcom/android/internal/R$attr;->navigationMode:I
+Lcom/android/internal/R$attr;->negativeButtonText:I
+Lcom/android/internal/R$attr;->nestedScrollingEnabled:I
+Lcom/android/internal/R$attr;->networkSecurityConfig:I
+Lcom/android/internal/R$attr;->nextClusterForward:I
+Lcom/android/internal/R$attr;->nextFocusDown:I
+Lcom/android/internal/R$attr;->nextFocusForward:I
+Lcom/android/internal/R$attr;->nextFocusLeft:I
+Lcom/android/internal/R$attr;->nextFocusRight:I
+Lcom/android/internal/R$attr;->nextFocusUp:I
+Lcom/android/internal/R$attr;->noHistory:I
+Lcom/android/internal/R$attr;->normalScreens:I
+Lcom/android/internal/R$attr;->notificationTimeout:I
+Lcom/android/internal/R$attr;->numberPickerStyle:I
+Lcom/android/internal/R$attr;->numbersBackgroundColor:I
+Lcom/android/internal/R$attr;->numbersInnerTextColor:I
+Lcom/android/internal/R$attr;->numbersSelectorColor:I
+Lcom/android/internal/R$attr;->numbersTextColor:I
+Lcom/android/internal/R$attr;->numColumns:I
+Lcom/android/internal/R$attr;->numeric:I
+Lcom/android/internal/R$attr;->numericModifiers:I
+Lcom/android/internal/R$attr;->numericShortcut:I
+Lcom/android/internal/R$attr;->numStars:I
+Lcom/android/internal/R$attr;->offset:I
+Lcom/android/internal/R$attr;->onClick:I
+Lcom/android/internal/R$attr;->oneshot:I
+Lcom/android/internal/R$attr;->opacity:I
+Lcom/android/internal/R$attr;->order:I
+Lcom/android/internal/R$attr;->orderInCategory:I
+Lcom/android/internal/R$attr;->ordering:I
+Lcom/android/internal/R$attr;->orderingFromXml:I
+Lcom/android/internal/R$attr;->orientation:I
+Lcom/android/internal/R$attr;->outAnimation:I
+Lcom/android/internal/R$attr;->outlineAmbientShadowColor:I
+Lcom/android/internal/R$attr;->outlineProvider:I
+Lcom/android/internal/R$attr;->outlineSpotShadowColor:I
+Lcom/android/internal/R$attr;->overlapAnchor:I
+Lcom/android/internal/R$attr;->overridesImplicitlyEnabledSubtype:I
+Lcom/android/internal/R$attr;->overScrollFooter:I
+Lcom/android/internal/R$attr;->overScrollHeader:I
+Lcom/android/internal/R$attr;->overScrollMode:I
+Lcom/android/internal/R$attr;->packageNames:I
+Lcom/android/internal/R$attr;->padding:I
+Lcom/android/internal/R$attr;->paddingBottom:I
+Lcom/android/internal/R$attr;->paddingEnd:I
+Lcom/android/internal/R$attr;->paddingHorizontal:I
+Lcom/android/internal/R$attr;->paddingLeft:I
+Lcom/android/internal/R$attr;->paddingMode:I
+Lcom/android/internal/R$attr;->paddingRight:I
+Lcom/android/internal/R$attr;->paddingStart:I
+Lcom/android/internal/R$attr;->paddingTop:I
+Lcom/android/internal/R$attr;->paddingVertical:I
+Lcom/android/internal/R$attr;->panelBackground:I
+Lcom/android/internal/R$attr;->panelColorBackground:I
+Lcom/android/internal/R$attr;->panelColorForeground:I
+Lcom/android/internal/R$attr;->panelFullBackground:I
+Lcom/android/internal/R$attr;->panelTextAppearance:I
+Lcom/android/internal/R$attr;->parentActivityName:I
+Lcom/android/internal/R$attr;->password:I
+Lcom/android/internal/R$attr;->path:I
+Lcom/android/internal/R$attr;->pathData:I
+Lcom/android/internal/R$attr;->pathPattern:I
+Lcom/android/internal/R$attr;->pathPrefix:I
+Lcom/android/internal/R$attr;->patternPathData:I
+Lcom/android/internal/R$attr;->permission:I
+Lcom/android/internal/R$attr;->permissionFlags:I
+Lcom/android/internal/R$attr;->permissionGroup:I
+Lcom/android/internal/R$attr;->permissionGroupFlags:I
+Lcom/android/internal/R$attr;->persistableMode:I
+Lcom/android/internal/R$attr;->persistent:I
+Lcom/android/internal/R$attr;->persistentDrawingCache:I
+Lcom/android/internal/R$attr;->persistentWhenFeatureAvailable:I
+Lcom/android/internal/R$attr;->phoneNumber:I
+Lcom/android/internal/R$attr;->pivotX:I
+Lcom/android/internal/R$attr;->pivotY:I
+Lcom/android/internal/R$attr;->pointerIcon:I
+Lcom/android/internal/R$attr;->popupAnimationStyle:I
+Lcom/android/internal/R$attr;->popupBackground:I
+Lcom/android/internal/R$attr;->popupCharacters:I
+Lcom/android/internal/R$attr;->popupElevation:I
+Lcom/android/internal/R$attr;->popupEnterTransition:I
+Lcom/android/internal/R$attr;->popupExitTransition:I
+Lcom/android/internal/R$attr;->popupKeyboard:I
+Lcom/android/internal/R$attr;->popupLayout:I
+Lcom/android/internal/R$attr;->popupMenuStyle:I
+Lcom/android/internal/R$attr;->popupTheme:I
+Lcom/android/internal/R$attr;->port:I
+Lcom/android/internal/R$attr;->positiveButtonText:I
+Lcom/android/internal/R$attr;->preferenceActivityStyle:I
+Lcom/android/internal/R$attr;->preferenceCategoryStyle:I
+Lcom/android/internal/R$attr;->preferenceFragmentStyle:I
+Lcom/android/internal/R$attr;->preferenceFrameLayoutStyle:I
+Lcom/android/internal/R$attr;->preferenceInformationStyle:I
+Lcom/android/internal/R$attr;->preferenceLayoutChild:I
+Lcom/android/internal/R$attr;->preferenceScreenStyle:I
+Lcom/android/internal/R$attr;->preferenceStyle:I
+Lcom/android/internal/R$attr;->presentationTheme:I
+Lcom/android/internal/R$attr;->previewImage:I
+Lcom/android/internal/R$attr;->primaryContentAlpha:I
+Lcom/android/internal/R$attr;->priority:I
+Lcom/android/internal/R$attr;->privateImeOptions:I
+Lcom/android/internal/R$attr;->process:I
+Lcom/android/internal/R$attr;->progress:I
+Lcom/android/internal/R$attr;->progressBackgroundTint:I
+Lcom/android/internal/R$attr;->progressBackgroundTintMode:I
+Lcom/android/internal/R$attr;->progressBarPadding:I
+Lcom/android/internal/R$attr;->progressBarStyle:I
+Lcom/android/internal/R$attr;->progressBarStyleHorizontal:I
+Lcom/android/internal/R$attr;->progressBarStyleInverse:I
+Lcom/android/internal/R$attr;->progressBarStyleLarge:I
+Lcom/android/internal/R$attr;->progressBarStyleLargeInverse:I
+Lcom/android/internal/R$attr;->progressBarStyleSmall:I
+Lcom/android/internal/R$attr;->progressBarStyleSmallInverse:I
+Lcom/android/internal/R$attr;->progressBarStyleSmallTitle:I
+Lcom/android/internal/R$attr;->progressDrawable:I
+Lcom/android/internal/R$attr;->progressTint:I
+Lcom/android/internal/R$attr;->progressTintMode:I
+Lcom/android/internal/R$attr;->prompt:I
+Lcom/android/internal/R$attr;->propertyName:I
+Lcom/android/internal/R$attr;->propertyXName:I
+Lcom/android/internal/R$attr;->propertyYName:I
+Lcom/android/internal/R$attr;->protectionLevel:I
+Lcom/android/internal/R$attr;->publicKey:I
+Lcom/android/internal/R$attr;->queryActionMsg:I
+Lcom/android/internal/R$attr;->queryAfterZeroResults:I
+Lcom/android/internal/R$attr;->queryBackground:I
+Lcom/android/internal/R$attr;->queryHint:I
+Lcom/android/internal/R$attr;->quickContactBadgeStyleSmallWindowLarge:I
+Lcom/android/internal/R$attr;->quickContactBadgeStyleSmallWindowMedium:I
+Lcom/android/internal/R$attr;->quickContactBadgeStyleSmallWindowSmall:I
+Lcom/android/internal/R$attr;->quickContactBadgeStyleWindowLarge:I
+Lcom/android/internal/R$attr;->quickContactBadgeStyleWindowMedium:I
+Lcom/android/internal/R$attr;->quickContactBadgeStyleWindowSmall:I
+Lcom/android/internal/R$attr;->radioButtonStyle:I
+Lcom/android/internal/R$attr;->radius:I
+Lcom/android/internal/R$attr;->rating:I
+Lcom/android/internal/R$attr;->ratingBarStyle:I
+Lcom/android/internal/R$attr;->ratingBarStyleIndicator:I
+Lcom/android/internal/R$attr;->ratingBarStyleSmall:I
+Lcom/android/internal/R$attr;->readPermission:I
+Lcom/android/internal/R$attr;->recognitionService:I
+Lcom/android/internal/R$attr;->recreateOnConfigChanges:I
+Lcom/android/internal/R$attr;->recycleEnabled:I
+Lcom/android/internal/R$attr;->relinquishTaskIdentity:I
+Lcom/android/internal/R$attr;->reparent:I
+Lcom/android/internal/R$attr;->reparentWithOverlay:I
+Lcom/android/internal/R$attr;->repeatCount:I
+Lcom/android/internal/R$attr;->repeatMode:I
+Lcom/android/internal/R$attr;->reqFiveWayNav:I
+Lcom/android/internal/R$attr;->reqHardKeyboard:I
+Lcom/android/internal/R$attr;->reqKeyboardType:I
+Lcom/android/internal/R$attr;->reqNavigation:I
+Lcom/android/internal/R$attr;->reqTouchScreen:I
+Lcom/android/internal/R$attr;->required:I
+Lcom/android/internal/R$attr;->requiredAccountType:I
+Lcom/android/internal/R$attr;->requireDeviceUnlock:I
+Lcom/android/internal/R$attr;->requiredFeature:I
+Lcom/android/internal/R$attr;->requiredForAllUsers:I
+Lcom/android/internal/R$attr;->requiredNotFeature:I
+Lcom/android/internal/R$attr;->requiredSystemPropertyName:I
+Lcom/android/internal/R$attr;->requiredSystemPropertyValue:I
+Lcom/android/internal/R$attr;->requiresFadingEdge:I
+Lcom/android/internal/R$attr;->requiresSmallestWidthDp:I
+Lcom/android/internal/R$attr;->resizeable:I
+Lcom/android/internal/R$attr;->resizeableActivity:I
+Lcom/android/internal/R$attr;->resizeClip:I
+Lcom/android/internal/R$attr;->resizeMode:I
+Lcom/android/internal/R$attr;->resource:I
+Lcom/android/internal/R$attr;->restoreAnyVersion:I
+Lcom/android/internal/R$attr;->restoreNeedsApplication:I
+Lcom/android/internal/R$attr;->restrictedAccountType:I
+Lcom/android/internal/R$attr;->restrictionType:I
+Lcom/android/internal/R$attr;->resumeWhilePausing:I
+Lcom/android/internal/R$attr;->reversible:I
+Lcom/android/internal/R$attr;->revisionCode:I
+Lcom/android/internal/R$attr;->right:I
+Lcom/android/internal/R$attr;->ringtonePreferenceStyle:I
+Lcom/android/internal/R$attr;->ringtoneType:I
+Lcom/android/internal/R$attr;->rotation:I
+Lcom/android/internal/R$attr;->rotationAnimation:I
+Lcom/android/internal/R$attr;->rotationX:I
+Lcom/android/internal/R$attr;->rotationY:I
+Lcom/android/internal/R$attr;->roundIcon:I
+Lcom/android/internal/R$attr;->rowCount:I
+Lcom/android/internal/R$attr;->rowDelay:I
+Lcom/android/internal/R$attr;->rowEdgeFlags:I
+Lcom/android/internal/R$attr;->rowHeight:I
+Lcom/android/internal/R$attr;->rowOrderPreserved:I
+Lcom/android/internal/R$attr;->saveEnabled:I
+Lcom/android/internal/R$attr;->scaleGravity:I
+Lcom/android/internal/R$attr;->scaleHeight:I
+Lcom/android/internal/R$attr;->scaleType:I
+Lcom/android/internal/R$attr;->scaleWidth:I
+Lcom/android/internal/R$attr;->scaleX:I
+Lcom/android/internal/R$attr;->scaleY:I
+Lcom/android/internal/R$attr;->scheme:I
+Lcom/android/internal/R$attr;->screenDensity:I
+Lcom/android/internal/R$attr;->screenOrientation:I
+Lcom/android/internal/R$attr;->screenReaderFocusable:I
+Lcom/android/internal/R$attr;->screenSize:I
+Lcom/android/internal/R$attr;->scrollbarAlwaysDrawHorizontalTrack:I
+Lcom/android/internal/R$attr;->scrollbarAlwaysDrawVerticalTrack:I
+Lcom/android/internal/R$attr;->scrollbarDefaultDelayBeforeFade:I
+Lcom/android/internal/R$attr;->scrollbarFadeDuration:I
+Lcom/android/internal/R$attr;->scrollbars:I
+Lcom/android/internal/R$attr;->scrollbarSize:I
+Lcom/android/internal/R$attr;->scrollbarStyle:I
+Lcom/android/internal/R$attr;->scrollbarThumbHorizontal:I
+Lcom/android/internal/R$attr;->scrollbarThumbVertical:I
+Lcom/android/internal/R$attr;->scrollbarTrackHorizontal:I
+Lcom/android/internal/R$attr;->scrollbarTrackVertical:I
+Lcom/android/internal/R$attr;->scrollHorizontally:I
+Lcom/android/internal/R$attr;->scrollIndicators:I
+Lcom/android/internal/R$attr;->scrollingCache:I
+Lcom/android/internal/R$attr;->scrollViewStyle:I
+Lcom/android/internal/R$attr;->scrollX:I
+Lcom/android/internal/R$attr;->scrollY:I
+Lcom/android/internal/R$attr;->searchButtonText:I
+Lcom/android/internal/R$attr;->searchDialogTheme:I
+Lcom/android/internal/R$attr;->searchHintIcon:I
+Lcom/android/internal/R$attr;->searchIcon:I
+Lcom/android/internal/R$attr;->searchKeyphrase:I
+Lcom/android/internal/R$attr;->searchKeyphraseId:I
+Lcom/android/internal/R$attr;->searchKeyphraseRecognitionFlags:I
+Lcom/android/internal/R$attr;->searchKeyphraseSupportedLocales:I
+Lcom/android/internal/R$attr;->searchMode:I
+Lcom/android/internal/R$attr;->searchSettingsDescription:I
+Lcom/android/internal/R$attr;->searchSuggestAuthority:I
+Lcom/android/internal/R$attr;->searchSuggestIntentAction:I
+Lcom/android/internal/R$attr;->searchSuggestIntentData:I
+Lcom/android/internal/R$attr;->searchSuggestPath:I
+Lcom/android/internal/R$attr;->searchSuggestSelection:I
+Lcom/android/internal/R$attr;->searchSuggestThreshold:I
+Lcom/android/internal/R$attr;->searchViewStyle:I
+Lcom/android/internal/R$attr;->secondaryContentAlpha:I
+Lcom/android/internal/R$attr;->secondaryProgress:I
+Lcom/android/internal/R$attr;->secondaryProgressTint:I
+Lcom/android/internal/R$attr;->secondaryProgressTintMode:I
+Lcom/android/internal/R$attr;->seekBarDialogPreferenceStyle:I
+Lcom/android/internal/R$attr;->seekBarPreferenceStyle:I
+Lcom/android/internal/R$attr;->seekBarStyle:I
+Lcom/android/internal/R$attr;->segmentedButtonStyle:I
+Lcom/android/internal/R$attr;->selectable:I
+Lcom/android/internal/R$attr;->selectableItemBackground:I
+Lcom/android/internal/R$attr;->selectableItemBackgroundBorderless:I
+Lcom/android/internal/R$attr;->selectAllOnFocus:I
+Lcom/android/internal/R$attr;->selectedDateVerticalBar:I
+Lcom/android/internal/R$attr;->selectedWeekBackgroundColor:I
+Lcom/android/internal/R$attr;->sessionService:I
+Lcom/android/internal/R$attr;->settingsActivity:I
+Lcom/android/internal/R$attr;->setupActivity:I
+Lcom/android/internal/R$attr;->shadowColor:I
+Lcom/android/internal/R$attr;->shadowDx:I
+Lcom/android/internal/R$attr;->shadowDy:I
+Lcom/android/internal/R$attr;->shadowRadius:I
+Lcom/android/internal/R$attr;->shape:I
+Lcom/android/internal/R$attr;->sharedUserId:I
+Lcom/android/internal/R$attr;->sharedUserLabel:I
+Lcom/android/internal/R$attr;->shareInterpolator:I
+Lcom/android/internal/R$attr;->shortcutDisabledMessage:I
+Lcom/android/internal/R$attr;->shortcutId:I
+Lcom/android/internal/R$attr;->shortcutLongLabel:I
+Lcom/android/internal/R$attr;->shortcutShortLabel:I
+Lcom/android/internal/R$attr;->shouldDisableView:I
+Lcom/android/internal/R$attr;->showAsAction:I
+Lcom/android/internal/R$attr;->showDefault:I
+Lcom/android/internal/R$attr;->showDividers:I
+Lcom/android/internal/R$attr;->showForAllUsers:I
+Lcom/android/internal/R$attr;->showMetadataInPreview:I
+Lcom/android/internal/R$attr;->shownWeekCount:I
+Lcom/android/internal/R$attr;->showOnLockScreen:I
+Lcom/android/internal/R$attr;->showSilent:I
+Lcom/android/internal/R$attr;->showText:I
+Lcom/android/internal/R$attr;->showWeekNumber:I
+Lcom/android/internal/R$attr;->showWhenLocked:I
+Lcom/android/internal/R$attr;->shrinkColumns:I
+Lcom/android/internal/R$attr;->singleLine:I
+Lcom/android/internal/R$attr;->singleLineTitle:I
+Lcom/android/internal/R$attr;->singleUser:I
+Lcom/android/internal/R$attr;->slideEdge:I
+Lcom/android/internal/R$attr;->smallIcon:I
+Lcom/android/internal/R$attr;->smallScreens:I
+Lcom/android/internal/R$attr;->smoothScrollbar:I
+Lcom/android/internal/R$attr;->solidColor:I
+Lcom/android/internal/R$attr;->soundEffectsEnabled:I
+Lcom/android/internal/R$attr;->spacing:I
+Lcom/android/internal/R$attr;->spinnerDropDownItemStyle:I
+Lcom/android/internal/R$attr;->spinnerItemStyle:I
+Lcom/android/internal/R$attr;->spinnerMode:I
+Lcom/android/internal/R$attr;->spinnersShown:I
+Lcom/android/internal/R$attr;->spinnerStyle:I
+Lcom/android/internal/R$attr;->splitMotionEvents:I
+Lcom/android/internal/R$attr;->splitName:I
+Lcom/android/internal/R$attr;->splitTrack:I
+Lcom/android/internal/R$attr;->spotShadowAlpha:I
+Lcom/android/internal/R$attr;->src:I
+Lcom/android/internal/R$attr;->ssp:I
+Lcom/android/internal/R$attr;->sspPattern:I
+Lcom/android/internal/R$attr;->sspPrefix:I
+Lcom/android/internal/R$attr;->stackFromBottom:I
+Lcom/android/internal/R$attr;->stackViewStyle:I
+Lcom/android/internal/R$attr;->starStyle:I
+Lcom/android/internal/R$attr;->start:I
+Lcom/android/internal/R$attr;->startColor:I
+Lcom/android/internal/R$attr;->startDelay:I
+Lcom/android/internal/R$attr;->startOffset:I
+Lcom/android/internal/R$attr;->startX:I
+Lcom/android/internal/R$attr;->startY:I
+Lcom/android/internal/R$attr;->startYear:I
+Lcom/android/internal/R$attr;->stateListAnimator:I
+Lcom/android/internal/R$attr;->stateNotNeeded:I
+Lcom/android/internal/R$attr;->state_accelerated:I
+Lcom/android/internal/R$attr;->state_activated:I
+Lcom/android/internal/R$attr;->state_active:I
+Lcom/android/internal/R$attr;->state_checkable:I
+Lcom/android/internal/R$attr;->state_checked:I
+Lcom/android/internal/R$attr;->state_drag_can_accept:I
+Lcom/android/internal/R$attr;->state_drag_hovered:I
+Lcom/android/internal/R$attr;->state_empty:I
+Lcom/android/internal/R$attr;->state_enabled:I
+Lcom/android/internal/R$attr;->state_expanded:I
+Lcom/android/internal/R$attr;->state_first:I
+Lcom/android/internal/R$attr;->state_hovered:I
+Lcom/android/internal/R$attr;->state_last:I
+Lcom/android/internal/R$attr;->state_long_pressable:I
+Lcom/android/internal/R$attr;->state_middle:I
+Lcom/android/internal/R$attr;->state_multiline:I
+Lcom/android/internal/R$attr;->state_single:I
+Lcom/android/internal/R$attr;->state_window_focused:I
+Lcom/android/internal/R$attr;->staticWallpaperPreview:I
+Lcom/android/internal/R$attr;->statusBarColor:I
+Lcom/android/internal/R$attr;->stepSize:I
+Lcom/android/internal/R$attr;->stopWithTask:I
+Lcom/android/internal/R$attr;->streamType:I
+Lcom/android/internal/R$attr;->stretchColumns:I
+Lcom/android/internal/R$attr;->stretchMode:I
+Lcom/android/internal/R$attr;->strokeAlpha:I
+Lcom/android/internal/R$attr;->strokeColor:I
+Lcom/android/internal/R$attr;->strokeLineCap:I
+Lcom/android/internal/R$attr;->strokeLineJoin:I
+Lcom/android/internal/R$attr;->strokeMiterLimit:I
+Lcom/android/internal/R$attr;->strokeWidth:I
+Lcom/android/internal/R$attr;->subMenuArrow:I
+Lcom/android/internal/R$attr;->submitBackground:I
+Lcom/android/internal/R$attr;->subtitle:I
+Lcom/android/internal/R$attr;->subtitleTextAppearance:I
+Lcom/android/internal/R$attr;->subtitleTextColor:I
+Lcom/android/internal/R$attr;->subtitleTextStyle:I
+Lcom/android/internal/R$attr;->subtypeExtraValue:I
+Lcom/android/internal/R$attr;->subtypeId:I
+Lcom/android/internal/R$attr;->subtypeLocale:I
+Lcom/android/internal/R$attr;->suggestActionMsg:I
+Lcom/android/internal/R$attr;->suggestActionMsgColumn:I
+Lcom/android/internal/R$attr;->suggestionRowLayout:I
+Lcom/android/internal/R$attr;->summary:I
+Lcom/android/internal/R$attr;->summaryColumn:I
+Lcom/android/internal/R$attr;->summaryOff:I
+Lcom/android/internal/R$attr;->summaryOn:I
+Lcom/android/internal/R$attr;->supportsAssist:I
+Lcom/android/internal/R$attr;->supportsLaunchVoiceAssistFromKeyguard:I
+Lcom/android/internal/R$attr;->supportsLocalInteraction:I
+Lcom/android/internal/R$attr;->supportsPictureInPicture:I
+Lcom/android/internal/R$attr;->supportsRtl:I
+Lcom/android/internal/R$attr;->supportsSwitchingToNextInputMethod:I
+Lcom/android/internal/R$attr;->supportsUploading:I
+Lcom/android/internal/R$attr;->switchMinWidth:I
+Lcom/android/internal/R$attr;->switchPadding:I
+Lcom/android/internal/R$attr;->switchPreferenceStyle:I
+Lcom/android/internal/R$attr;->switchTextAppearance:I
+Lcom/android/internal/R$attr;->switchTextOff:I
+Lcom/android/internal/R$attr;->switchTextOn:I
+Lcom/android/internal/R$attr;->syncable:I
+Lcom/android/internal/R$attr;->tabStripEnabled:I
+Lcom/android/internal/R$attr;->tabStripLeft:I
+Lcom/android/internal/R$attr;->tabStripRight:I
+Lcom/android/internal/R$attr;->tabWidgetStyle:I
+Lcom/android/internal/R$attr;->tag:I
+Lcom/android/internal/R$attr;->targetActivity:I
+Lcom/android/internal/R$attr;->targetClass:I
+Lcom/android/internal/R$attr;->targetDescriptions:I
+Lcom/android/internal/R$attr;->targetId:I
+Lcom/android/internal/R$attr;->targetName:I
+Lcom/android/internal/R$attr;->targetPackage:I
+Lcom/android/internal/R$attr;->targetProcesses:I
+Lcom/android/internal/R$attr;->targetSandboxVersion:I
+Lcom/android/internal/R$attr;->targetSdkVersion:I
+Lcom/android/internal/R$attr;->taskAffinity:I
+Lcom/android/internal/R$attr;->taskCloseEnterAnimation:I
+Lcom/android/internal/R$attr;->taskCloseExitAnimation:I
+Lcom/android/internal/R$attr;->taskOpenEnterAnimation:I
+Lcom/android/internal/R$attr;->taskOpenExitAnimation:I
+Lcom/android/internal/R$attr;->taskToBackEnterAnimation:I
+Lcom/android/internal/R$attr;->taskToBackExitAnimation:I
+Lcom/android/internal/R$attr;->taskToFrontEnterAnimation:I
+Lcom/android/internal/R$attr;->taskToFrontExitAnimation:I
+Lcom/android/internal/R$attr;->tension:I
+Lcom/android/internal/R$attr;->testOnly:I
+Lcom/android/internal/R$attr;->textAlignment:I
+Lcom/android/internal/R$attr;->textAllCaps:I
+Lcom/android/internal/R$attr;->textAppearance:I
+Lcom/android/internal/R$attr;->textAppearanceAutoCorrectionSuggestion:I
+Lcom/android/internal/R$attr;->textAppearanceButton:I
+Lcom/android/internal/R$attr;->textAppearanceEasyCorrectSuggestion:I
+Lcom/android/internal/R$attr;->textAppearanceInverse:I
+Lcom/android/internal/R$attr;->textAppearanceLarge:I
+Lcom/android/internal/R$attr;->textAppearanceLargeInverse:I
+Lcom/android/internal/R$attr;->textAppearanceLargePopupMenu:I
+Lcom/android/internal/R$attr;->textAppearanceListItem:I
+Lcom/android/internal/R$attr;->textAppearanceListItemSecondary:I
+Lcom/android/internal/R$attr;->textAppearanceListItemSmall:I
+Lcom/android/internal/R$attr;->textAppearanceMedium:I
+Lcom/android/internal/R$attr;->textAppearanceMediumInverse:I
+Lcom/android/internal/R$attr;->textAppearanceMisspelledSuggestion:I
+Lcom/android/internal/R$attr;->textAppearancePopupMenuHeader:I
+Lcom/android/internal/R$attr;->textAppearanceSearchResultSubtitle:I
+Lcom/android/internal/R$attr;->textAppearanceSearchResultTitle:I
+Lcom/android/internal/R$attr;->textAppearanceSmall:I
+Lcom/android/internal/R$attr;->textAppearanceSmallInverse:I
+Lcom/android/internal/R$attr;->textAppearanceSmallPopupMenu:I
+Lcom/android/internal/R$attr;->textCheckMark:I
+Lcom/android/internal/R$attr;->textCheckMarkInverse:I
+Lcom/android/internal/R$attr;->textColor:I
+Lcom/android/internal/R$attr;->textColorAlertDialogListItem:I
+Lcom/android/internal/R$attr;->textColorHighlight:I
+Lcom/android/internal/R$attr;->textColorHighlightInverse:I
+Lcom/android/internal/R$attr;->textColorHint:I
+Lcom/android/internal/R$attr;->textColorHintInverse:I
+Lcom/android/internal/R$attr;->textColorLink:I
+Lcom/android/internal/R$attr;->textColorLinkInverse:I
+Lcom/android/internal/R$attr;->textColorPrimary:I
+Lcom/android/internal/R$attr;->textColorPrimaryDisableOnly:I
+Lcom/android/internal/R$attr;->textColorPrimaryInverse:I
+Lcom/android/internal/R$attr;->textColorPrimaryInverseDisableOnly:I
+Lcom/android/internal/R$attr;->textColorPrimaryInverseNoDisable:I
+Lcom/android/internal/R$attr;->textColorPrimaryNoDisable:I
+Lcom/android/internal/R$attr;->textColorSearchUrl:I
+Lcom/android/internal/R$attr;->textColorSecondary:I
+Lcom/android/internal/R$attr;->textColorSecondaryInverse:I
+Lcom/android/internal/R$attr;->textColorSecondaryInverseNoDisable:I
+Lcom/android/internal/R$attr;->textColorSecondaryNoDisable:I
+Lcom/android/internal/R$attr;->textColorTertiary:I
+Lcom/android/internal/R$attr;->textColorTertiaryInverse:I
+Lcom/android/internal/R$attr;->textCursorDrawable:I
+Lcom/android/internal/R$attr;->textDirection:I
+Lcom/android/internal/R$attr;->textEditNoPasteWindowLayout:I
+Lcom/android/internal/R$attr;->textEditPasteWindowLayout:I
+Lcom/android/internal/R$attr;->textEditSideNoPasteWindowLayout:I
+Lcom/android/internal/R$attr;->textEditSidePasteWindowLayout:I
+Lcom/android/internal/R$attr;->textEditSuggestionItemLayout:I
+Lcom/android/internal/R$attr;->textFilterEnabled:I
+Lcom/android/internal/R$attr;->textFontWeight:I
+Lcom/android/internal/R$attr;->textIsSelectable:I
+Lcom/android/internal/R$attr;->textOff:I
+Lcom/android/internal/R$attr;->textOn:I
+Lcom/android/internal/R$attr;->textScaleX:I
+Lcom/android/internal/R$attr;->textSelectHandle:I
+Lcom/android/internal/R$attr;->textSelectHandleLeft:I
+Lcom/android/internal/R$attr;->textSelectHandleRight:I
+Lcom/android/internal/R$attr;->textSelectHandleWindowStyle:I
+Lcom/android/internal/R$attr;->textSize:I
+Lcom/android/internal/R$attr;->textStyle:I
+Lcom/android/internal/R$attr;->textSuggestionsWindowStyle:I
+Lcom/android/internal/R$attr;->textViewStyle:I
+Lcom/android/internal/R$attr;->theme:I
+Lcom/android/internal/R$attr;->thickness:I
+Lcom/android/internal/R$attr;->thicknessRatio:I
+Lcom/android/internal/R$attr;->thumb:I
+Lcom/android/internal/R$attr;->thumbnail:I
+Lcom/android/internal/R$attr;->thumbOffset:I
+Lcom/android/internal/R$attr;->thumbPosition:I
+Lcom/android/internal/R$attr;->thumbTextPadding:I
+Lcom/android/internal/R$attr;->thumbTint:I
+Lcom/android/internal/R$attr;->thumbTintMode:I
+Lcom/android/internal/R$attr;->tickMark:I
+Lcom/android/internal/R$attr;->tickMarkTint:I
+Lcom/android/internal/R$attr;->tickMarkTintMode:I
+Lcom/android/internal/R$attr;->tileMode:I
+Lcom/android/internal/R$attr;->tileModeX:I
+Lcom/android/internal/R$attr;->tileModeY:I
+Lcom/android/internal/R$attr;->timePickerDialogTheme:I
+Lcom/android/internal/R$attr;->timePickerMode:I
+Lcom/android/internal/R$attr;->timePickerStyle:I
+Lcom/android/internal/R$attr;->timeZone:I
+Lcom/android/internal/R$attr;->tint:I
+Lcom/android/internal/R$attr;->tintMode:I
+Lcom/android/internal/R$attr;->titleCondensed:I
+Lcom/android/internal/R$attr;->titleMargin:I
+Lcom/android/internal/R$attr;->titleMarginBottom:I
+Lcom/android/internal/R$attr;->titleMarginEnd:I
+Lcom/android/internal/R$attr;->titleMarginStart:I
+Lcom/android/internal/R$attr;->titleMarginTop:I
+Lcom/android/internal/R$attr;->titleTextAppearance:I
+Lcom/android/internal/R$attr;->titleTextColor:I
+Lcom/android/internal/R$attr;->titleTextStyle:I
+Lcom/android/internal/R$attr;->toAlpha:I
+Lcom/android/internal/R$attr;->toDegrees:I
+Lcom/android/internal/R$attr;->toId:I
+Lcom/android/internal/R$attr;->toolbarStyle:I
+Lcom/android/internal/R$attr;->tooltipText:I
+Lcom/android/internal/R$attr;->top:I
+Lcom/android/internal/R$attr;->topBright:I
+Lcom/android/internal/R$attr;->topDark:I
+Lcom/android/internal/R$attr;->topLeftRadius:I
+Lcom/android/internal/R$attr;->topOffset:I
+Lcom/android/internal/R$attr;->topRightRadius:I
+Lcom/android/internal/R$attr;->toScene:I
+Lcom/android/internal/R$attr;->touchscreenBlocksFocus:I
+Lcom/android/internal/R$attr;->toXDelta:I
+Lcom/android/internal/R$attr;->toXScale:I
+Lcom/android/internal/R$attr;->toYDelta:I
+Lcom/android/internal/R$attr;->toYScale:I
+Lcom/android/internal/R$attr;->track:I
+Lcom/android/internal/R$attr;->trackTint:I
+Lcom/android/internal/R$attr;->trackTintMode:I
+Lcom/android/internal/R$attr;->transcriptMode:I
+Lcom/android/internal/R$attr;->transformPivotX:I
+Lcom/android/internal/R$attr;->transformPivotY:I
+Lcom/android/internal/R$attr;->transition:I
+Lcom/android/internal/R$attr;->transitionGroup:I
+Lcom/android/internal/R$attr;->transitionName:I
+Lcom/android/internal/R$attr;->transitionOrdering:I
+Lcom/android/internal/R$attr;->transitionVisibilityMode:I
+Lcom/android/internal/R$attr;->translateX:I
+Lcom/android/internal/R$attr;->translateY:I
+Lcom/android/internal/R$attr;->translationX:I
+Lcom/android/internal/R$attr;->translationY:I
+Lcom/android/internal/R$attr;->translationZ:I
+Lcom/android/internal/R$attr;->trimPathEnd:I
+Lcom/android/internal/R$attr;->trimPathOffset:I
+Lcom/android/internal/R$attr;->trimPathStart:I
+Lcom/android/internal/R$attr;->ttcIndex:I
+Lcom/android/internal/R$attr;->tunerCount:I
+Lcom/android/internal/R$attr;->turnScreenOn:I
+Lcom/android/internal/R$attr;->type:I
+Lcom/android/internal/R$attr;->typeface:I
+Lcom/android/internal/R$attr;->uiOptions:I
+Lcom/android/internal/R$attr;->uncertainGestureColor:I
+Lcom/android/internal/R$attr;->unfocusedMonthDateColor:I
+Lcom/android/internal/R$attr;->unselectedAlpha:I
+Lcom/android/internal/R$attr;->updatePeriodMillis:I
+Lcom/android/internal/R$attr;->use32bitAbi:I
+Lcom/android/internal/R$attr;->useDefaultMargins:I
+Lcom/android/internal/R$attr;->useIntrinsicSizeAsMinimum:I
+Lcom/android/internal/R$attr;->useLevel:I
+Lcom/android/internal/R$attr;->userRestriction:I
+Lcom/android/internal/R$attr;->userVisible:I
+Lcom/android/internal/R$attr;->usesCleartextTraffic:I
+Lcom/android/internal/R$attr;->value:I
+Lcom/android/internal/R$attr;->valueFrom:I
+Lcom/android/internal/R$attr;->valueTo:I
+Lcom/android/internal/R$attr;->valueType:I
+Lcom/android/internal/R$attr;->variablePadding:I
+Lcom/android/internal/R$attr;->vendor:I
+Lcom/android/internal/R$attr;->version:I
+Lcom/android/internal/R$attr;->versionCode:I
+Lcom/android/internal/R$attr;->versionCodeMajor:I
+Lcom/android/internal/R$attr;->versionMajor:I
+Lcom/android/internal/R$attr;->versionName:I
+Lcom/android/internal/R$attr;->verticalCorrection:I
+Lcom/android/internal/R$attr;->verticalDivider:I
+Lcom/android/internal/R$attr;->verticalGap:I
+Lcom/android/internal/R$attr;->verticalScrollbarPosition:I
+Lcom/android/internal/R$attr;->verticalSpacing:I
+Lcom/android/internal/R$attr;->viewportHeight:I
+Lcom/android/internal/R$attr;->viewportWidth:I
+Lcom/android/internal/R$attr;->visibility:I
+Lcom/android/internal/R$attr;->visible:I
+Lcom/android/internal/R$attr;->visibleToInstantApps:I
+Lcom/android/internal/R$attr;->vmSafeMode:I
+Lcom/android/internal/R$attr;->voiceIcon:I
+Lcom/android/internal/R$attr;->voiceLanguage:I
+Lcom/android/internal/R$attr;->voiceLanguageModel:I
+Lcom/android/internal/R$attr;->voiceMaxResults:I
+Lcom/android/internal/R$attr;->voicePromptText:I
+Lcom/android/internal/R$attr;->voiceSearchMode:I
+Lcom/android/internal/R$attr;->wallpaperCloseEnterAnimation:I
+Lcom/android/internal/R$attr;->wallpaperCloseExitAnimation:I
+Lcom/android/internal/R$attr;->wallpaperIntraCloseEnterAnimation:I
+Lcom/android/internal/R$attr;->wallpaperIntraCloseExitAnimation:I
+Lcom/android/internal/R$attr;->wallpaperIntraOpenEnterAnimation:I
+Lcom/android/internal/R$attr;->wallpaperIntraOpenExitAnimation:I
+Lcom/android/internal/R$attr;->wallpaperOpenEnterAnimation:I
+Lcom/android/internal/R$attr;->wallpaperOpenExitAnimation:I
+Lcom/android/internal/R$attr;->webTextViewStyle:I
+Lcom/android/internal/R$attr;->weekDayTextAppearance:I
+Lcom/android/internal/R$attr;->weekNumberColor:I
+Lcom/android/internal/R$attr;->weekSeparatorLineColor:I
+Lcom/android/internal/R$attr;->weightSum:I
+Lcom/android/internal/R$attr;->widgetCategory:I
+Lcom/android/internal/R$attr;->widgetFeatures:I
+Lcom/android/internal/R$attr;->widgetLayout:I
+Lcom/android/internal/R$attr;->width:I
+Lcom/android/internal/R$attr;->windowActionBar:I
+Lcom/android/internal/R$attr;->windowActionBarFullscreenDecorLayout:I
+Lcom/android/internal/R$attr;->windowActionBarOverlay:I
+Lcom/android/internal/R$attr;->windowActionModeOverlay:I
+Lcom/android/internal/R$attr;->windowActivityTransitions:I
+Lcom/android/internal/R$attr;->windowAllowEnterTransitionOverlap:I
+Lcom/android/internal/R$attr;->windowAllowReturnTransitionOverlap:I
+Lcom/android/internal/R$attr;->windowAnimationStyle:I
+Lcom/android/internal/R$attr;->windowBackground:I
+Lcom/android/internal/R$attr;->windowBackgroundFallback:I
+Lcom/android/internal/R$attr;->windowClipToOutline:I
+Lcom/android/internal/R$attr;->windowCloseOnTouchOutside:I
+Lcom/android/internal/R$attr;->windowContentOverlay:I
+Lcom/android/internal/R$attr;->windowContentTransitionManager:I
+Lcom/android/internal/R$attr;->windowContentTransitions:I
+Lcom/android/internal/R$attr;->windowDisablePreview:I
+Lcom/android/internal/R$attr;->windowDrawsSystemBarBackgrounds:I
+Lcom/android/internal/R$attr;->windowElevation:I
+Lcom/android/internal/R$attr;->windowEnableSplitTouch:I
+Lcom/android/internal/R$attr;->windowEnterAnimation:I
+Lcom/android/internal/R$attr;->windowEnterTransition:I
+Lcom/android/internal/R$attr;->windowExitAnimation:I
+Lcom/android/internal/R$attr;->windowExitTransition:I
+Lcom/android/internal/R$attr;->windowFixedHeightMajor:I
+Lcom/android/internal/R$attr;->windowFixedHeightMinor:I
+Lcom/android/internal/R$attr;->windowFixedWidthMajor:I
+Lcom/android/internal/R$attr;->windowFixedWidthMinor:I
+Lcom/android/internal/R$attr;->windowFrame:I
+Lcom/android/internal/R$attr;->windowFullscreen:I
+Lcom/android/internal/R$attr;->windowHideAnimation:I
+Lcom/android/internal/R$attr;->windowIsFloating:I
+Lcom/android/internal/R$attr;->windowIsTranslucent:I
+Lcom/android/internal/R$attr;->windowLayoutInDisplayCutoutMode:I
+Lcom/android/internal/R$attr;->windowLightNavigationBar:I
+Lcom/android/internal/R$attr;->windowLightStatusBar:I
+Lcom/android/internal/R$attr;->windowMinWidthMajor:I
+Lcom/android/internal/R$attr;->windowMinWidthMinor:I
+Lcom/android/internal/R$attr;->windowNoDisplay:I
+Lcom/android/internal/R$attr;->windowNoTitle:I
+Lcom/android/internal/R$attr;->windowOverscan:I
+Lcom/android/internal/R$attr;->windowReenterTransition:I
+Lcom/android/internal/R$attr;->windowReturnTransition:I
+Lcom/android/internal/R$attr;->windowSharedElementEnterTransition:I
+Lcom/android/internal/R$attr;->windowSharedElementExitTransition:I
+Lcom/android/internal/R$attr;->windowSharedElementReenterTransition:I
+Lcom/android/internal/R$attr;->windowSharedElementReturnTransition:I
+Lcom/android/internal/R$attr;->windowSharedElementsUseOverlay:I
+Lcom/android/internal/R$attr;->windowShowAnimation:I
+Lcom/android/internal/R$attr;->windowShowWallpaper:I
+Lcom/android/internal/R$attr;->windowSoftInputMode:I
+Lcom/android/internal/R$attr;->windowSplashscreenContent:I
+Lcom/android/internal/R$attr;->windowSwipeToDismiss:I
+Lcom/android/internal/R$attr;->windowTitleBackgroundStyle:I
+Lcom/android/internal/R$attr;->windowTitleSize:I
+Lcom/android/internal/R$attr;->windowTitleStyle:I
+Lcom/android/internal/R$attr;->windowTransitionBackgroundFadeDuration:I
+Lcom/android/internal/R$attr;->windowTranslucentNavigation:I
+Lcom/android/internal/R$attr;->windowTranslucentStatus:I
+Lcom/android/internal/R$attr;->writePermission:I
+Lcom/android/internal/R$attr;->x:I
+Lcom/android/internal/R$attr;->xlargeScreens:I
+Lcom/android/internal/R$attr;->y:I
+Lcom/android/internal/R$attr;->yearListItemTextAppearance:I
+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
+Lcom/android/internal/R$bool;->config_allowAllRotations:I
+Lcom/android/internal/R$bool;->config_allowAnimationsInLowPowerMode:I
+Lcom/android/internal/R$bool;->config_allowAutoBrightnessWhileDozing:I
+Lcom/android/internal/R$bool;->config_allowDisablingAssistDisclosure:I
+Lcom/android/internal/R$bool;->config_allowEscrowTokenForTrustAgent:I
+Lcom/android/internal/R$bool;->config_allowPriorityVibrationsInLowPowerMode:I
+Lcom/android/internal/R$bool;->config_allowStartActivityForLongPressOnPowerInSetup:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromCameraLens:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromDock:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromGesture:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromKey:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromLidSwitch:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromMotion:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromMotionWhenNotDreaming:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromPowerKey:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromUnplug:I
+Lcom/android/internal/R$bool;->config_allowTheaterModeWakeFromWindowLayout:I
+Lcom/android/internal/R$bool;->config_alwaysUseCdmaRssi:I
+Lcom/android/internal/R$bool;->config_animateScreenLights:I
+Lcom/android/internal/R$bool;->config_annoy_dianne:I
+Lcom/android/internal/R$bool;->config_apfDrop802_3Frames:I
+Lcom/android/internal/R$bool;->config_autoBrightnessResetAmbientLuxAfterWarmUp:I
+Lcom/android/internal/R$bool;->config_autoPowerModePreferWristTilt:I
+Lcom/android/internal/R$bool;->config_autoPowerModePrefetchLocation:I
+Lcom/android/internal/R$bool;->config_auto_attach_data_on_creation:I
+Lcom/android/internal/R$bool;->config_avoidGfxAccel:I
+Lcom/android/internal/R$bool;->config_bluetooth_address_validation:I
+Lcom/android/internal/R$bool;->config_bluetooth_default_profiles:I
+Lcom/android/internal/R$bool;->config_bluetooth_hfp_inband_ringing_support:I
+Lcom/android/internal/R$bool;->config_bluetooth_le_peripheral_mode_supported:I
+Lcom/android/internal/R$bool;->config_bluetooth_pan_enable_autoconnect:I
+Lcom/android/internal/R$bool;->config_bluetooth_reload_supported_profiles_when_enabled:I
+Lcom/android/internal/R$bool;->config_bluetooth_sco_off_call:I
+Lcom/android/internal/R$bool;->config_built_in_sip_phone:I
+Lcom/android/internal/R$bool;->config_cameraDoubleTapPowerGestureEnabled:I
+Lcom/android/internal/R$bool;->config_camera_sound_forced:I
+Lcom/android/internal/R$bool;->config_carDockEnablesAccelerometer:I
+Lcom/android/internal/R$bool;->config_carrier_volte_available:I
+Lcom/android/internal/R$bool;->config_carrier_volte_tty_supported:I
+Lcom/android/internal/R$bool;->config_carrier_vt_available:I
+Lcom/android/internal/R$bool;->config_carrier_wfc_ims_available:I
+Lcom/android/internal/R$bool;->config_cellBroadcastAppLinks:I
+Lcom/android/internal/R$bool;->config_checkWallpaperAtBoot:I
+Lcom/android/internal/R$bool;->config_customUserSwitchUi:I
+Lcom/android/internal/R$bool;->config_defaultInTouchMode:I
+Lcom/android/internal/R$bool;->config_defaultWindowFeatureContextMenu:I
+Lcom/android/internal/R$bool;->config_defaultWindowFeatureOptionsPanel:I
+Lcom/android/internal/R$bool;->config_deskDockEnablesAccelerometer:I
+Lcom/android/internal/R$bool;->config_device_respects_hold_carrier_config:I
+Lcom/android/internal/R$bool;->config_device_volte_available:I
+Lcom/android/internal/R$bool;->config_device_vt_available:I
+Lcom/android/internal/R$bool;->config_device_wfc_ims_available:I
+Lcom/android/internal/R$bool;->config_disableLockscreenByDefault:I
+Lcom/android/internal/R$bool;->config_disableMenuKeyInLockScreen:I
+Lcom/android/internal/R$bool;->config_disableTransitionAnimation:I
+Lcom/android/internal/R$bool;->config_disableUsbPermissionDialogs:I
+Lcom/android/internal/R$bool;->config_displayBlanksAfterDoze:I
+Lcom/android/internal/R$bool;->config_displayBrightnessBucketsInDoze:I
+Lcom/android/internal/R$bool;->config_display_no_service_when_sim_unready:I
+Lcom/android/internal/R$bool;->config_dontPreferApn:I
+Lcom/android/internal/R$bool;->config_dozeAfterScreenOffByDefault:I
+Lcom/android/internal/R$bool;->config_dozeAlwaysOnDisplayAvailable:I
+Lcom/android/internal/R$bool;->config_dozePulsePickup:I
+Lcom/android/internal/R$bool;->config_dreamsActivatedOnDockByDefault:I
+Lcom/android/internal/R$bool;->config_dreamsActivatedOnSleepByDefault:I
+Lcom/android/internal/R$bool;->config_dreamsEnabledByDefault:I
+Lcom/android/internal/R$bool;->config_dreamsEnabledOnBattery:I
+Lcom/android/internal/R$bool;->config_dreamsSupported:I
+Lcom/android/internal/R$bool;->config_duplicate_port_omadm_wappush:I
+Lcom/android/internal/R$bool;->config_dynamic_bind_ims:I
+Lcom/android/internal/R$bool;->config_eap_sim_based_auth_supported:I
+Lcom/android/internal/R$bool;->config_enableActivityRecognitionHardwareOverlay:I
+Lcom/android/internal/R$bool;->config_enableAppWidgetService:I
+Lcom/android/internal/R$bool;->config_enableAutoPowerModes:I
+Lcom/android/internal/R$bool;->config_enableBurnInProtection:I
+Lcom/android/internal/R$bool;->config_enableCarDockHomeLaunch:I
+Lcom/android/internal/R$bool;->config_enableCredentialFactoryResetProtection:I
+Lcom/android/internal/R$bool;->config_enableFusedLocationOverlay:I
+Lcom/android/internal/R$bool;->config_enableGeocoderOverlay:I
+Lcom/android/internal/R$bool;->config_enableGeofenceOverlay:I
+Lcom/android/internal/R$bool;->config_enableHapticTextHandle:I
+Lcom/android/internal/R$bool;->config_enableHardwareFlpOverlay:I
+Lcom/android/internal/R$bool;->config_enableLockBeforeUnlockScreen:I
+Lcom/android/internal/R$bool;->config_enableLockScreenRotation:I
+Lcom/android/internal/R$bool;->config_enableLockScreenTranslucentDecor:I
+Lcom/android/internal/R$bool;->config_enableMultiUserUI:I
+Lcom/android/internal/R$bool;->config_enableNetworkLocationOverlay:I
+Lcom/android/internal/R$bool;->config_enableNewAutoSelectNetworkUI:I
+Lcom/android/internal/R$bool;->config_enableNightMode:I
+Lcom/android/internal/R$bool;->config_enableScreenshotChord:I
+Lcom/android/internal/R$bool;->config_enableTranslucentDecor:I
+Lcom/android/internal/R$bool;->config_enableUpdateableTimeZoneRules:I
+Lcom/android/internal/R$bool;->config_enableWallpaperService:I
+Lcom/android/internal/R$bool;->config_enableWifiDisplay:I
+Lcom/android/internal/R$bool;->config_enable_emergency_call_while_sim_locked:I
+Lcom/android/internal/R$bool;->config_enable_puk_unlock_screen:I
+Lcom/android/internal/R$bool;->config_fillMainBuiltInDisplayCutout:I
+Lcom/android/internal/R$bool;->config_fingerprintSupportsGestures:I
+Lcom/android/internal/R$bool;->config_forceDefaultOrientation:I
+Lcom/android/internal/R$bool;->config_forceWindowDrawsStatusBarBackground:I
+Lcom/android/internal/R$bool;->config_freeformWindowManagement:I
+Lcom/android/internal/R$bool;->config_goToSleepOnButtonPressTheaterMode:I
+Lcom/android/internal/R$bool;->config_guestUserEphemeral:I
+Lcom/android/internal/R$bool;->config_handleVolumeKeysInWindowManager:I
+Lcom/android/internal/R$bool;->config_hasPermanentDpad:I
+Lcom/android/internal/R$bool;->config_hasRecents:I
+Lcom/android/internal/R$bool;->config_hotswapCapable:I
+Lcom/android/internal/R$bool;->config_keepRestrictedProfilesInBackground:I
+Lcom/android/internal/R$bool;->config_lidControlsScreenLock:I
+Lcom/android/internal/R$bool;->config_lidControlsSleep:I
+Lcom/android/internal/R$bool;->config_localDisplaysMirrorContent:I
+Lcom/android/internal/R$bool;->config_localDisplaysPrivate:I
+Lcom/android/internal/R$bool;->config_lockDayNightMode:I
+Lcom/android/internal/R$bool;->config_lockUiMode:I
+Lcom/android/internal/R$bool;->config_LTE_eri_for_network_name:I
+Lcom/android/internal/R$bool;->config_mainBuiltInDisplayIsRound:I
+Lcom/android/internal/R$bool;->config_networkSamplingWakesDevice:I
+Lcom/android/internal/R$bool;->config_nightDisplayAvailable:I
+Lcom/android/internal/R$bool;->config_noHomeScreen:I
+Lcom/android/internal/R$bool;->config_notificationBadging:I
+Lcom/android/internal/R$bool;->config_notificationHeaderClickableForExpand:I
+Lcom/android/internal/R$bool;->config_overrideRemoteViewsActivityTransition:I
+Lcom/android/internal/R$bool;->config_permissionReviewRequired:I
+Lcom/android/internal/R$bool;->config_pinnerCameraApp:I
+Lcom/android/internal/R$bool;->config_powerDecoupleAutoSuspendModeFromDisplay:I
+Lcom/android/internal/R$bool;->config_powerDecoupleInteractiveModeFromDisplay:I
+Lcom/android/internal/R$bool;->config_quickSettingsSupported:I
+Lcom/android/internal/R$bool;->config_requireCallCapableAccountForHandle:I
+Lcom/android/internal/R$bool;->config_requireRadioPowerOffOnSimRefreshReset:I
+Lcom/android/internal/R$bool;->config_restartRadioAfterProvisioning:I
+Lcom/android/internal/R$bool;->config_restart_radio_on_pdp_fail_regular_deactivation:I
+Lcom/android/internal/R$bool;->config_reverseDefaultRotation:I
+Lcom/android/internal/R$bool;->config_safe_media_volume_enabled:I
+Lcom/android/internal/R$bool;->config_sendAudioBecomingNoisy:I
+Lcom/android/internal/R$bool;->config_sendPackageName:I
+Lcom/android/internal/R$bool;->config_setColorTransformAccelerated:I
+Lcom/android/internal/R$bool;->config_sf_limitedAlpha:I
+Lcom/android/internal/R$bool;->config_sf_slowBlur:I
+Lcom/android/internal/R$bool;->config_showAreaUpdateInfoSettings:I
+Lcom/android/internal/R$bool;->config_showMenuShortcutsWhenKeyboardPresent:I
+Lcom/android/internal/R$bool;->config_showSysuiShutdown:I
+Lcom/android/internal/R$bool;->config_single_volume:I
+Lcom/android/internal/R$bool;->config_sip_wifi_only:I
+Lcom/android/internal/R$bool;->config_skipScreenOnBrightnessRamp:I
+Lcom/android/internal/R$bool;->config_smart_battery_available:I
+Lcom/android/internal/R$bool;->config_sms_capable:I
+Lcom/android/internal/R$bool;->config_sms_decode_gsm_8bit_data:I
+Lcom/android/internal/R$bool;->config_sms_force_7bit_encoding:I
+Lcom/android/internal/R$bool;->config_sms_utf8_support:I
+Lcom/android/internal/R$bool;->config_speed_up_audio_on_mt_calls:I
+Lcom/android/internal/R$bool;->config_stkNoAlphaUsrCnf:I
+Lcom/android/internal/R$bool;->config_strongAuthRequiredOnBoot:I
+Lcom/android/internal/R$bool;->config_supportAudioSourceUnprocessed:I
+Lcom/android/internal/R$bool;->config_supportAutoRotation:I
+Lcom/android/internal/R$bool;->config_supportBluetoothPersistedState:I
+Lcom/android/internal/R$bool;->config_supportDoubleTapWake:I
+Lcom/android/internal/R$bool;->config_supportLongPressPowerWhenNonInteractive:I
+Lcom/android/internal/R$bool;->config_supportMicNearUltrasound:I
+Lcom/android/internal/R$bool;->config_supportPreRebootSecurityLogs:I
+Lcom/android/internal/R$bool;->config_supportsMultiDisplay:I
+Lcom/android/internal/R$bool;->config_supportsMultiWindow:I
+Lcom/android/internal/R$bool;->config_supportSpeakerNearUltrasound:I
+Lcom/android/internal/R$bool;->config_supportsSplitScreenMultiWindow:I
+Lcom/android/internal/R$bool;->config_supportSystemNavigationKeys:I
+Lcom/android/internal/R$bool;->config_suspendWhenScreenOffDueToProximity:I
+Lcom/android/internal/R$bool;->config_sustainedPerformanceModeSupported:I
+Lcom/android/internal/R$bool;->config_swipeDisambiguation:I
+Lcom/android/internal/R$bool;->config_swipe_up_gesture_default:I
+Lcom/android/internal/R$bool;->config_swipe_up_gesture_setting_available:I
+Lcom/android/internal/R$bool;->config_switch_phone_on_voice_reg_state_change:I
+Lcom/android/internal/R$bool;->config_syncstorageengine_masterSyncAutomatically:I
+Lcom/android/internal/R$bool;->config_timeZoneRulesUpdateTrackingEnabled:I
+Lcom/android/internal/R$bool;->config_tintNotificationActionButtons:I
+Lcom/android/internal/R$bool;->config_ui_enableFadingMarquee:I
+Lcom/android/internal/R$bool;->config_unplugTurnsOnScreen:I
+Lcom/android/internal/R$bool;->config_usbChargingMessage:I
+Lcom/android/internal/R$bool;->config_useAttentionLight:I
+Lcom/android/internal/R$bool;->config_useDefaultFocusHighlight:I
+Lcom/android/internal/R$bool;->config_useDevInputEventForAudioJack:I
+Lcom/android/internal/R$bool;->config_useFixedVolume:I
+Lcom/android/internal/R$bool;->config_useRoundIcon:I
+Lcom/android/internal/R$bool;->config_user_notification_of_restrictied_mobile_access:I
+Lcom/android/internal/R$bool;->config_useVideoPauseWorkaround:I
+Lcom/android/internal/R$bool;->config_useVolumeKeySounds:I
+Lcom/android/internal/R$bool;->config_use_sim_language_file:I
+Lcom/android/internal/R$bool;->config_use_strict_phone_number_comparation:I
+Lcom/android/internal/R$bool;->config_use_voip_mode_for_ims:I
+Lcom/android/internal/R$bool;->config_voice_capable:I
+Lcom/android/internal/R$bool;->config_volumeHushGestureEnabled:I
+Lcom/android/internal/R$bool;->config_wifiDisplaySupportsProtectedBuffers:I
+Lcom/android/internal/R$bool;->config_wifi_background_scan_support:I
+Lcom/android/internal/R$bool;->config_wifi_batched_scan_supported:I
+Lcom/android/internal/R$bool;->config_wifi_convert_apband_5ghz_to_any:I
+Lcom/android/internal/R$bool;->config_wifi_dual_band_support:I
+Lcom/android/internal/R$bool;->config_wifi_enable_disconnection_debounce:I
+Lcom/android/internal/R$bool;->config_wifi_enable_wifi_firmware_debugging:I
+Lcom/android/internal/R$bool;->config_wifi_fast_bss_transition_enabled:I
+Lcom/android/internal/R$bool;->config_wifi_framework_cellular_handover_enable_user_triggered_adjustment:I
+Lcom/android/internal/R$bool;->config_wifi_framework_enable_associated_network_selection:I
+Lcom/android/internal/R$bool;->config_wifi_framework_enable_voice_call_sar_tx_power_limit:I
+Lcom/android/internal/R$bool;->config_wifi_framework_use_single_radio_chain_scan_results_network_selection:I
+Lcom/android/internal/R$bool;->config_wifi_only_link_same_credential_configurations:I
+Lcom/android/internal/R$bool;->config_wifi_revert_country_code_on_cellular_loss:I
+Lcom/android/internal/R$bool;->config_wifi_softap_acs_supported:I
+Lcom/android/internal/R$bool;->config_wifi_softap_ieee80211ac_supported:I
+Lcom/android/internal/R$bool;->config_wifi_turn_off_during_emergency_call:I
+Lcom/android/internal/R$bool;->config_wimaxEnabled:I
+Lcom/android/internal/R$bool;->config_windowEnableCircularEmulatorDisplayOverlay:I
+Lcom/android/internal/R$bool;->config_windowShowCircularMask:I
+Lcom/android/internal/R$bool;->db_compatibility_wal_supported:I
+Lcom/android/internal/R$bool;->enable_pbap_pce_profile:I
+Lcom/android/internal/R$bool;->imsServiceAllowTurnOff:I
+Lcom/android/internal/R$bool;->preferences_prefer_dual_pane:I
+Lcom/android/internal/R$bool;->show_ongoing_ime_switcher:I
+Lcom/android/internal/R$bool;->skipHoldBeforeMerge:I
+Lcom/android/internal/R$bool;->skip_restoring_network_selection:I
+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
+Lcom/android/internal/R$color;->black:I
+Lcom/android/internal/R$color;->car_body1_light:I
+Lcom/android/internal/R$color;->car_card_dark:I
+Lcom/android/internal/R$color;->car_user_switcher_user_image_bgcolor:I
+Lcom/android/internal/R$color;->car_user_switcher_user_image_fgcolor:I
+Lcom/android/internal/R$color;->chooser_service_row_background_color:I
+Lcom/android/internal/R$color;->config_defaultNotificationColor:I
+Lcom/android/internal/R$color;->darker_gray:I
+Lcom/android/internal/R$color;->decor_button_dark_color:I
+Lcom/android/internal/R$color;->decor_button_light_color:I
+Lcom/android/internal/R$color;->decor_view_status_guard:I
+Lcom/android/internal/R$color;->holo_blue_bright:I
+Lcom/android/internal/R$color;->holo_blue_dark:I
+Lcom/android/internal/R$color;->holo_blue_light:I
+Lcom/android/internal/R$color;->holo_green_dark:I
+Lcom/android/internal/R$color;->holo_green_light:I
+Lcom/android/internal/R$color;->holo_orange_dark:I
+Lcom/android/internal/R$color;->holo_orange_light:I
+Lcom/android/internal/R$color;->holo_purple:I
+Lcom/android/internal/R$color;->holo_red_dark:I
+Lcom/android/internal/R$color;->holo_red_light:I
+Lcom/android/internal/R$color;->instant_app_badge:I
+Lcom/android/internal/R$color;->lock_pattern_view_regular_color:I
+Lcom/android/internal/R$color;->lock_pattern_view_success_color:I
+Lcom/android/internal/R$color;->material_grey_300:I
+Lcom/android/internal/R$color;->notification_action_list:I
+Lcom/android/internal/R$color;->notification_default_color_dark:I
+Lcom/android/internal/R$color;->notification_default_color_light:I
+Lcom/android/internal/R$color;->notification_material_background_color:I
+Lcom/android/internal/R$color;->notification_primary_text_color_dark:I
+Lcom/android/internal/R$color;->notification_primary_text_color_light:I
+Lcom/android/internal/R$color;->notification_progress_background_color:I
+Lcom/android/internal/R$color;->notification_secondary_text_color_dark:I
+Lcom/android/internal/R$color;->notification_secondary_text_color_light:I
+Lcom/android/internal/R$color;->primary_text_dark:I
+Lcom/android/internal/R$color;->primary_text_dark_nodisable:I
+Lcom/android/internal/R$color;->primary_text_light:I
+Lcom/android/internal/R$color;->primary_text_light_nodisable:I
+Lcom/android/internal/R$color;->profile_badge_1:I
+Lcom/android/internal/R$color;->profile_badge_2:I
+Lcom/android/internal/R$color;->profile_badge_3:I
+Lcom/android/internal/R$color;->resize_shadow_end_color:I
+Lcom/android/internal/R$color;->resize_shadow_start_color:I
+Lcom/android/internal/R$color;->secondary_text_dark:I
+Lcom/android/internal/R$color;->secondary_text_dark_nodisable:I
+Lcom/android/internal/R$color;->secondary_text_light:I
+Lcom/android/internal/R$color;->secondary_text_light_nodisable:I
+Lcom/android/internal/R$color;->system_bar_background_semi_transparent:I
+Lcom/android/internal/R$color;->system_notification_accent_color:I
+Lcom/android/internal/R$color;->tab_indicator_text:I
+Lcom/android/internal/R$color;->tab_indicator_text_v4:I
+Lcom/android/internal/R$color;->tertiary_text_dark:I
+Lcom/android/internal/R$color;->tertiary_text_light:I
+Lcom/android/internal/R$color;->text_color_primary:I
+Lcom/android/internal/R$color;->timepicker_default_ampm_selected_background_color_material:I
+Lcom/android/internal/R$color;->timepicker_default_ampm_unselected_background_color_material:I
+Lcom/android/internal/R$color;->timepicker_default_numbers_background_color_material:I
+Lcom/android/internal/R$color;->timepicker_default_selector_color_material:I
+Lcom/android/internal/R$color;->timepicker_default_text_color_material:I
+Lcom/android/internal/R$color;->transparent:I
+Lcom/android/internal/R$color;->user_icon_1:I
+Lcom/android/internal/R$color;->user_icon_2:I
+Lcom/android/internal/R$color;->user_icon_3:I
+Lcom/android/internal/R$color;->user_icon_4:I
+Lcom/android/internal/R$color;->user_icon_5:I
+Lcom/android/internal/R$color;->user_icon_6:I
+Lcom/android/internal/R$color;->user_icon_7:I
+Lcom/android/internal/R$color;->user_icon_8:I
+Lcom/android/internal/R$color;->user_icon_default_gray:I
+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
+Lcom/android/internal/R$dimen;->action_bar_stacked_tab_max_width:I
+Lcom/android/internal/R$dimen;->alert_dialog_round_padding:I
+Lcom/android/internal/R$dimen;->app_icon_size:I
+Lcom/android/internal/R$dimen;->autofill_dataset_picker_max_height:I
+Lcom/android/internal/R$dimen;->autofill_dataset_picker_max_width:I
+Lcom/android/internal/R$dimen;->autofill_save_custom_subtitle_max_height:I
+Lcom/android/internal/R$dimen;->autofill_save_icon_max_size:I
+Lcom/android/internal/R$dimen;->button_inset_vertical_material:I
+Lcom/android/internal/R$dimen;->car_body1_size:I
+Lcom/android/internal/R$dimen;->car_fullscreen_user_pod_icon_text_size:I
+Lcom/android/internal/R$dimen;->car_fullscreen_user_pod_image_avatar_height:I
+Lcom/android/internal/R$dimen;->car_fullscreen_user_pod_image_avatar_width:I
+Lcom/android/internal/R$dimen;->car_padding_4:I
+Lcom/android/internal/R$dimen;->cascading_menus_min_smallest_width:I
+Lcom/android/internal/R$dimen;->chooser_service_spacing:I
+Lcom/android/internal/R$dimen;->circular_display_mask_thickness:I
+Lcom/android/internal/R$dimen;->config_appTransitionAnimationDurationScaleDefault:I
+Lcom/android/internal/R$dimen;->config_horizontalScrollFactor:I
+Lcom/android/internal/R$dimen;->config_inCallNotificationVolume:I
+Lcom/android/internal/R$dimen;->config_mediaMetadataBitmapMaxSize:I
+Lcom/android/internal/R$dimen;->config_minScalingSpan:I
+Lcom/android/internal/R$dimen;->config_minScalingTouchMajor:I
+Lcom/android/internal/R$dimen;->config_minScrollbarTouchTarget:I
+Lcom/android/internal/R$dimen;->config_pictureInPictureAspectRatioLimitForMinSize:I
+Lcom/android/internal/R$dimen;->config_pictureInPictureDefaultAspectRatio:I
+Lcom/android/internal/R$dimen;->config_pictureInPictureDefaultSizePercent:I
+Lcom/android/internal/R$dimen;->config_pictureInPictureMaxAspectRatio:I
+Lcom/android/internal/R$dimen;->config_pictureInPictureMinAspectRatio:I
+Lcom/android/internal/R$dimen;->config_prefDialogWidth:I
+Lcom/android/internal/R$dimen;->config_screen_magnification_scaling_threshold:I
+Lcom/android/internal/R$dimen;->config_scrollbarSize:I
+Lcom/android/internal/R$dimen;->config_scrollFactor:I
+Lcom/android/internal/R$dimen;->config_verticalScrollFactor:I
+Lcom/android/internal/R$dimen;->config_viewConfigurationHoverSlop:I
+Lcom/android/internal/R$dimen;->config_viewConfigurationTouchSlop:I
+Lcom/android/internal/R$dimen;->config_viewMaxFlingVelocity:I
+Lcom/android/internal/R$dimen;->config_viewMinFlingVelocity:I
+Lcom/android/internal/R$dimen;->content_rect_bottom_clip_allowance:I
+Lcom/android/internal/R$dimen;->cross_profile_apps_thumbnail_size:I
+Lcom/android/internal/R$dimen;->datepicker_view_animator_height:I
+Lcom/android/internal/R$dimen;->datepicker_year_label_height:I
+Lcom/android/internal/R$dimen;->date_picker_day_height:I
+Lcom/android/internal/R$dimen;->date_picker_day_of_week_height:I
+Lcom/android/internal/R$dimen;->date_picker_day_of_week_text_size:I
+Lcom/android/internal/R$dimen;->date_picker_day_selector_radius:I
+Lcom/android/internal/R$dimen;->date_picker_day_text_size:I
+Lcom/android/internal/R$dimen;->date_picker_day_width:I
+Lcom/android/internal/R$dimen;->date_picker_month_height:I
+Lcom/android/internal/R$dimen;->date_picker_month_text_size:I
+Lcom/android/internal/R$dimen;->day_picker_padding_top:I
+Lcom/android/internal/R$dimen;->default_app_widget_padding_bottom:I
+Lcom/android/internal/R$dimen;->default_app_widget_padding_left:I
+Lcom/android/internal/R$dimen;->default_app_widget_padding_right:I
+Lcom/android/internal/R$dimen;->default_app_widget_padding_top:I
+Lcom/android/internal/R$dimen;->default_gap:I
+Lcom/android/internal/R$dimen;->default_minimal_size_pip_resizable_task:I
+Lcom/android/internal/R$dimen;->default_minimal_size_resizable_task:I
+Lcom/android/internal/R$dimen;->dialog_min_width_major:I
+Lcom/android/internal/R$dimen;->dialog_min_width_minor:I
+Lcom/android/internal/R$dimen;->docked_stack_divider_insets:I
+Lcom/android/internal/R$dimen;->docked_stack_divider_thickness:I
+Lcom/android/internal/R$dimen;->docked_stack_minimize_thickness:I
+Lcom/android/internal/R$dimen;->dropdownitem_icon_width:I
+Lcom/android/internal/R$dimen;->dropdownitem_text_padding_left:I
+Lcom/android/internal/R$dimen;->emphasized_button_stroke_width:I
+Lcom/android/internal/R$dimen;->fast_scroller_minimum_touch_target:I
+Lcom/android/internal/R$dimen;->floating_toolbar_height:I
+Lcom/android/internal/R$dimen;->floating_toolbar_horizontal_margin:I
+Lcom/android/internal/R$dimen;->floating_toolbar_icon_text_spacing:I
+Lcom/android/internal/R$dimen;->floating_toolbar_maximum_overflow_height:I
+Lcom/android/internal/R$dimen;->floating_toolbar_menu_button_minimum_width:I
+Lcom/android/internal/R$dimen;->floating_toolbar_menu_button_side_padding:I
+Lcom/android/internal/R$dimen;->floating_toolbar_minimum_overflow_height:I
+Lcom/android/internal/R$dimen;->floating_toolbar_overflow_side_padding:I
+Lcom/android/internal/R$dimen;->floating_toolbar_preferred_width:I
+Lcom/android/internal/R$dimen;->floating_toolbar_text_size:I
+Lcom/android/internal/R$dimen;->floating_toolbar_vertical_margin:I
+Lcom/android/internal/R$dimen;->immersive_mode_cling_width:I
+Lcom/android/internal/R$dimen;->input_extract_action_button_height:I
+Lcom/android/internal/R$dimen;->input_extract_action_button_width:I
+Lcom/android/internal/R$dimen;->item_touch_helper_swipe_escape_max_velocity:I
+Lcom/android/internal/R$dimen;->item_touch_helper_swipe_escape_velocity:I
+Lcom/android/internal/R$dimen;->lock_pattern_dot_line_width:I
+Lcom/android/internal/R$dimen;->lock_pattern_dot_size:I
+Lcom/android/internal/R$dimen;->lock_pattern_dot_size_activated:I
+Lcom/android/internal/R$dimen;->magnifier_elevation:I
+Lcom/android/internal/R$dimen;->magnifier_height:I
+Lcom/android/internal/R$dimen;->magnifier_offset:I
+Lcom/android/internal/R$dimen;->magnifier_width:I
+Lcom/android/internal/R$dimen;->magnifier_zoom_scale:I
+Lcom/android/internal/R$dimen;->media_notification_expanded_image_margin_bottom:I
+Lcom/android/internal/R$dimen;->messaging_avatar_size:I
+Lcom/android/internal/R$dimen;->messaging_group_sending_progress_size:I
+Lcom/android/internal/R$dimen;->messaging_image_extra_spacing:I
+Lcom/android/internal/R$dimen;->messaging_image_max_height:I
+Lcom/android/internal/R$dimen;->messaging_image_min_size:I
+Lcom/android/internal/R$dimen;->messaging_image_rounding:I
+Lcom/android/internal/R$dimen;->navigation_bar_height_car_mode:I
+Lcom/android/internal/R$dimen;->navigation_bar_height_landscape_car_mode:I
+Lcom/android/internal/R$dimen;->navigation_bar_width_car_mode:I
+Lcom/android/internal/R$dimen;->notification_action_disabled_alpha:I
+Lcom/android/internal/R$dimen;->notification_action_emphasized_height:I
+Lcom/android/internal/R$dimen;->notification_action_list_height:I
+Lcom/android/internal/R$dimen;->notification_badge_size:I
+Lcom/android/internal/R$dimen;->notification_big_picture_max_height:I
+Lcom/android/internal/R$dimen;->notification_big_picture_max_height_low_ram:I
+Lcom/android/internal/R$dimen;->notification_big_picture_max_width:I
+Lcom/android/internal/R$dimen;->notification_big_picture_max_width_low_ram:I
+Lcom/android/internal/R$dimen;->notification_content_image_margin_end:I
+Lcom/android/internal/R$dimen;->notification_content_margin:I
+Lcom/android/internal/R$dimen;->notification_content_margin_end:I
+Lcom/android/internal/R$dimen;->notification_content_margin_start:I
+Lcom/android/internal/R$dimen;->notification_content_margin_top:I
+Lcom/android/internal/R$dimen;->notification_custom_view_max_image_height:I
+Lcom/android/internal/R$dimen;->notification_custom_view_max_image_height_low_ram:I
+Lcom/android/internal/R$dimen;->notification_custom_view_max_image_width:I
+Lcom/android/internal/R$dimen;->notification_custom_view_max_image_width_low_ram:I
+Lcom/android/internal/R$dimen;->notification_expand_button_padding_top:I
+Lcom/android/internal/R$dimen;->notification_header_app_name_margin_start:I
+Lcom/android/internal/R$dimen;->notification_header_background_height:I
+Lcom/android/internal/R$dimen;->notification_header_expand_icon_size:I
+Lcom/android/internal/R$dimen;->notification_header_height:I
+Lcom/android/internal/R$dimen;->notification_header_icon_margin_end:I
+Lcom/android/internal/R$dimen;->notification_header_icon_size:I
+Lcom/android/internal/R$dimen;->notification_header_separating_margin:I
+Lcom/android/internal/R$dimen;->notification_header_shrink_min_width:I
+Lcom/android/internal/R$dimen;->notification_inbox_item_top_padding:I
+Lcom/android/internal/R$dimen;->notification_large_icon_circle_padding:I
+Lcom/android/internal/R$dimen;->notification_large_icon_height:I
+Lcom/android/internal/R$dimen;->notification_large_icon_width:I
+Lcom/android/internal/R$dimen;->notification_media_image_margin_end:I
+Lcom/android/internal/R$dimen;->notification_media_image_max_height:I
+Lcom/android/internal/R$dimen;->notification_media_image_max_height_low_ram:I
+Lcom/android/internal/R$dimen;->notification_media_image_max_width:I
+Lcom/android/internal/R$dimen;->notification_media_image_max_width_low_ram:I
+Lcom/android/internal/R$dimen;->notification_messaging_spacing:I
+Lcom/android/internal/R$dimen;->notification_min_content_height:I
+Lcom/android/internal/R$dimen;->notification_reply_inset:I
+Lcom/android/internal/R$dimen;->notification_right_icon_size:I
+Lcom/android/internal/R$dimen;->notification_right_icon_size_low_ram:I
+Lcom/android/internal/R$dimen;->notification_secondary_text_disabled_alpha:I
+Lcom/android/internal/R$dimen;->notification_subtext_size:I
+Lcom/android/internal/R$dimen;->notification_text_margin_top:I
+Lcom/android/internal/R$dimen;->notification_text_size:I
+Lcom/android/internal/R$dimen;->notification_title_text_size:I
+Lcom/android/internal/R$dimen;->notification_top_pad:I
+Lcom/android/internal/R$dimen;->notification_top_pad_large_text:I
+Lcom/android/internal/R$dimen;->notification_top_pad_large_text_narrow:I
+Lcom/android/internal/R$dimen;->notification_top_pad_narrow:I
+Lcom/android/internal/R$dimen;->password_keyboard_spacebar_vertical_correction:I
+Lcom/android/internal/R$dimen;->pip_fling_deceleration:I
+Lcom/android/internal/R$dimen;->pip_minimized_visible_size:I
+Lcom/android/internal/R$dimen;->preference_fragment_padding_bottom:I
+Lcom/android/internal/R$dimen;->preference_fragment_padding_side:I
+Lcom/android/internal/R$dimen;->quick_qs_offset_height:I
+Lcom/android/internal/R$dimen;->quick_qs_total_height:I
+Lcom/android/internal/R$dimen;->resize_shadow_size:I
+Lcom/android/internal/R$dimen;->search_view_preferred_height:I
+Lcom/android/internal/R$dimen;->search_view_preferred_width:I
+Lcom/android/internal/R$dimen;->slice_icon_size:I
+Lcom/android/internal/R$dimen;->slice_padding:I
+Lcom/android/internal/R$dimen;->slice_shortcut_size:I
+Lcom/android/internal/R$dimen;->status_bar_height_landscape:I
+Lcom/android/internal/R$dimen;->status_bar_height_portrait:I
+Lcom/android/internal/R$dimen;->status_bar_icon_size:I
+Lcom/android/internal/R$dimen;->subtitle_corner_radius:I
+Lcom/android/internal/R$dimen;->subtitle_outline_width:I
+Lcom/android/internal/R$dimen;->subtitle_shadow_offset:I
+Lcom/android/internal/R$dimen;->subtitle_shadow_radius:I
+Lcom/android/internal/R$dimen;->task_height_of_minimized_mode:I
+Lcom/android/internal/R$dimen;->textview_error_popup_default_width:I
+Lcom/android/internal/R$dimen;->text_handle_min_size:I
+Lcom/android/internal/R$dimen;->text_size_small_material:I
+Lcom/android/internal/R$dimen;->thumbnail_height:I
+Lcom/android/internal/R$dimen;->thumbnail_width:I
+Lcom/android/internal/R$dimen;->timepicker_center_dot_radius:I
+Lcom/android/internal/R$dimen;->timepicker_selector_dot_radius:I
+Lcom/android/internal/R$dimen;->timepicker_selector_radius:I
+Lcom/android/internal/R$dimen;->timepicker_selector_stroke:I
+Lcom/android/internal/R$dimen;->timepicker_text_inset_inner:I
+Lcom/android/internal/R$dimen;->timepicker_text_inset_normal:I
+Lcom/android/internal/R$dimen;->timepicker_text_size_inner:I
+Lcom/android/internal/R$dimen;->timepicker_text_size_normal:I
+Lcom/android/internal/R$dimen;->tooltip_precise_anchor_extra_offset:I
+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
+Lcom/android/internal/R$drawable;->alert_window_layer:I
+Lcom/android/internal/R$drawable;->arrow_down_float:I
+Lcom/android/internal/R$drawable;->arrow_up_float:I
+Lcom/android/internal/R$drawable;->autofilled_highlight:I
+Lcom/android/internal/R$drawable;->autofill_dataset_picker_background:I
+Lcom/android/internal/R$drawable;->bottom_bar:I
+Lcom/android/internal/R$drawable;->btn_clock_material:I
+Lcom/android/internal/R$drawable;->btn_default:I
+Lcom/android/internal/R$drawable;->btn_default_small:I
+Lcom/android/internal/R$drawable;->btn_dialog:I
+Lcom/android/internal/R$drawable;->btn_dropdown:I
+Lcom/android/internal/R$drawable;->btn_keyboard_key_material:I
+Lcom/android/internal/R$drawable;->btn_minus:I
+Lcom/android/internal/R$drawable;->btn_plus:I
+Lcom/android/internal/R$drawable;->btn_radio:I
+Lcom/android/internal/R$drawable;->btn_star:I
+Lcom/android/internal/R$drawable;->btn_star_big_off:I
+Lcom/android/internal/R$drawable;->btn_star_big_on:I
+Lcom/android/internal/R$drawable;->button_onoff_indicator_off:I
+Lcom/android/internal/R$drawable;->button_onoff_indicator_on:I
+Lcom/android/internal/R$drawable;->call_contact:I
+Lcom/android/internal/R$drawable;->checkbox_off_background:I
+Lcom/android/internal/R$drawable;->checkbox_on_background:I
+Lcom/android/internal/R$drawable;->cling_arrow_up:I
+Lcom/android/internal/R$drawable;->cling_bg:I
+Lcom/android/internal/R$drawable;->cling_button:I
+Lcom/android/internal/R$drawable;->clock_dial:I
+Lcom/android/internal/R$drawable;->clock_hand_hour:I
+Lcom/android/internal/R$drawable;->clock_hand_minute:I
+Lcom/android/internal/R$drawable;->create_contact:I
+Lcom/android/internal/R$drawable;->dark_header:I
+Lcom/android/internal/R$drawable;->decor_caption_title_focused:I
+Lcom/android/internal/R$drawable;->decor_close_button_dark:I
+Lcom/android/internal/R$drawable;->decor_close_button_light:I
+Lcom/android/internal/R$drawable;->decor_maximize_button_dark:I
+Lcom/android/internal/R$drawable;->decor_maximize_button_light:I
+Lcom/android/internal/R$drawable;->default_lock_wallpaper:I
+Lcom/android/internal/R$drawable;->default_wallpaper:I
+Lcom/android/internal/R$drawable;->dialog_frame:I
+Lcom/android/internal/R$drawable;->dialog_holo_dark_frame:I
+Lcom/android/internal/R$drawable;->dialog_holo_light_frame:I
+Lcom/android/internal/R$drawable;->divider_horizontal_bright:I
+Lcom/android/internal/R$drawable;->divider_horizontal_dark:I
+Lcom/android/internal/R$drawable;->divider_horizontal_dim_dark:I
+Lcom/android/internal/R$drawable;->divider_horizontal_textfield:I
+Lcom/android/internal/R$drawable;->editbox_background:I
+Lcom/android/internal/R$drawable;->editbox_background_normal:I
+Lcom/android/internal/R$drawable;->editbox_dropdown_dark_frame:I
+Lcom/android/internal/R$drawable;->editbox_dropdown_light_frame:I
+Lcom/android/internal/R$drawable;->edit_text:I
+Lcom/android/internal/R$drawable;->emergency_icon:I
+Lcom/android/internal/R$drawable;->emo_im_angel:I
+Lcom/android/internal/R$drawable;->emo_im_cool:I
+Lcom/android/internal/R$drawable;->emo_im_crying:I
+Lcom/android/internal/R$drawable;->emo_im_embarrassed:I
+Lcom/android/internal/R$drawable;->emo_im_foot_in_mouth:I
+Lcom/android/internal/R$drawable;->emo_im_happy:I
+Lcom/android/internal/R$drawable;->emo_im_kissing:I
+Lcom/android/internal/R$drawable;->emo_im_laughing:I
+Lcom/android/internal/R$drawable;->emo_im_lips_are_sealed:I
+Lcom/android/internal/R$drawable;->emo_im_money_mouth:I
+Lcom/android/internal/R$drawable;->emo_im_sad:I
+Lcom/android/internal/R$drawable;->emo_im_surprised:I
+Lcom/android/internal/R$drawable;->emo_im_tongue_sticking_out:I
+Lcom/android/internal/R$drawable;->emo_im_undecided:I
+Lcom/android/internal/R$drawable;->emo_im_winking:I
+Lcom/android/internal/R$drawable;->emo_im_wtf:I
+Lcom/android/internal/R$drawable;->emo_im_yelling:I
+Lcom/android/internal/R$drawable;->emulator_circular_window_overlay:I
+Lcom/android/internal/R$drawable;->expander_close_holo_dark:I
+Lcom/android/internal/R$drawable;->expander_ic_maximized:I
+Lcom/android/internal/R$drawable;->expander_ic_minimized:I
+Lcom/android/internal/R$drawable;->expander_open_holo_dark:I
+Lcom/android/internal/R$drawable;->ft_avd_toarrow:I
+Lcom/android/internal/R$drawable;->ft_avd_toarrow_animation:I
+Lcom/android/internal/R$drawable;->ft_avd_tooverflow:I
+Lcom/android/internal/R$drawable;->ft_avd_tooverflow_animation:I
+Lcom/android/internal/R$drawable;->gallery_thumb:I
+Lcom/android/internal/R$drawable;->ic_accessibility_magnification:I
+Lcom/android/internal/R$drawable;->ic_account_circle:I
+Lcom/android/internal/R$drawable;->ic_action_assist_focused:I
+Lcom/android/internal/R$drawable;->ic_alert_window_layer:I
+Lcom/android/internal/R$drawable;->ic_arrow_forward:I
+Lcom/android/internal/R$drawable;->ic_audio_alarm:I
+Lcom/android/internal/R$drawable;->ic_audio_alarm_mute:I
+Lcom/android/internal/R$drawable;->ic_audio_media:I
+Lcom/android/internal/R$drawable;->ic_audio_media_mute:I
+Lcom/android/internal/R$drawable;->ic_audio_notification:I
+Lcom/android/internal/R$drawable;->ic_audio_notification_mute:I
+Lcom/android/internal/R$drawable;->ic_audio_ring_notif:I
+Lcom/android/internal/R$drawable;->ic_audio_ring_notif_mute:I
+Lcom/android/internal/R$drawable;->ic_audio_ring_notif_vibrate:I
+Lcom/android/internal/R$drawable;->ic_audio_vol:I
+Lcom/android/internal/R$drawable;->ic_audio_vol_mute:I
+Lcom/android/internal/R$drawable;->ic_btn_speak_now:I
+Lcom/android/internal/R$drawable;->ic_bullet_key_permission:I
+Lcom/android/internal/R$drawable;->ic_camera:I
+Lcom/android/internal/R$drawable;->ic_check_circle_24px:I
+Lcom/android/internal/R$drawable;->ic_collapse_bundle:I
+Lcom/android/internal/R$drawable;->ic_collapse_notification:I
+Lcom/android/internal/R$drawable;->ic_contact_picture:I
+Lcom/android/internal/R$drawable;->ic_corp_badge:I
+Lcom/android/internal/R$drawable;->ic_corp_badge_case:I
+Lcom/android/internal/R$drawable;->ic_corp_badge_color:I
+Lcom/android/internal/R$drawable;->ic_corp_badge_no_background:I
+Lcom/android/internal/R$drawable;->ic_corp_badge_off:I
+Lcom/android/internal/R$drawable;->ic_corp_icon:I
+Lcom/android/internal/R$drawable;->ic_corp_icon_badge_case:I
+Lcom/android/internal/R$drawable;->ic_corp_icon_badge_color:I
+Lcom/android/internal/R$drawable;->ic_corp_icon_badge_shadow:I
+Lcom/android/internal/R$drawable;->ic_corp_statusbar_icon:I
+Lcom/android/internal/R$drawable;->ic_corp_user_badge:I
+Lcom/android/internal/R$drawable;->ic_delete:I
+Lcom/android/internal/R$drawable;->ic_dialog_alert:I
+Lcom/android/internal/R$drawable;->ic_dialog_alert_material:I
+Lcom/android/internal/R$drawable;->ic_dialog_dialer:I
+Lcom/android/internal/R$drawable;->ic_dialog_email:I
+Lcom/android/internal/R$drawable;->ic_dialog_info:I
+Lcom/android/internal/R$drawable;->ic_dialog_map:I
+Lcom/android/internal/R$drawable;->ic_dialog_usb:I
+Lcom/android/internal/R$drawable;->ic_dnd_block_notifications:I
+Lcom/android/internal/R$drawable;->ic_doc_apk:I
+Lcom/android/internal/R$drawable;->ic_doc_audio:I
+Lcom/android/internal/R$drawable;->ic_doc_certificate:I
+Lcom/android/internal/R$drawable;->ic_doc_codes:I
+Lcom/android/internal/R$drawable;->ic_doc_compressed:I
+Lcom/android/internal/R$drawable;->ic_doc_contact:I
+Lcom/android/internal/R$drawable;->ic_doc_document:I
+Lcom/android/internal/R$drawable;->ic_doc_event:I
+Lcom/android/internal/R$drawable;->ic_doc_excel:I
+Lcom/android/internal/R$drawable;->ic_doc_folder:I
+Lcom/android/internal/R$drawable;->ic_doc_font:I
+Lcom/android/internal/R$drawable;->ic_doc_generic:I
+Lcom/android/internal/R$drawable;->ic_doc_image:I
+Lcom/android/internal/R$drawable;->ic_doc_pdf:I
+Lcom/android/internal/R$drawable;->ic_doc_powerpoint:I
+Lcom/android/internal/R$drawable;->ic_doc_presentation:I
+Lcom/android/internal/R$drawable;->ic_doc_spreadsheet:I
+Lcom/android/internal/R$drawable;->ic_doc_text:I
+Lcom/android/internal/R$drawable;->ic_doc_video:I
+Lcom/android/internal/R$drawable;->ic_doc_word:I
+Lcom/android/internal/R$drawable;->ic_eject_24dp:I
+Lcom/android/internal/R$drawable;->ic_emergency:I
+Lcom/android/internal/R$drawable;->ic_expand_bundle:I
+Lcom/android/internal/R$drawable;->ic_expand_notification:I
+Lcom/android/internal/R$drawable;->ic_folder_24dp:I
+Lcom/android/internal/R$drawable;->ic_grayedout_printer:I
+Lcom/android/internal/R$drawable;->ic_info_outline:I
+Lcom/android/internal/R$drawable;->ic_input_add:I
+Lcom/android/internal/R$drawable;->ic_input_delete:I
+Lcom/android/internal/R$drawable;->ic_input_extract_action_done:I
+Lcom/android/internal/R$drawable;->ic_input_extract_action_go:I
+Lcom/android/internal/R$drawable;->ic_input_extract_action_next:I
+Lcom/android/internal/R$drawable;->ic_input_extract_action_previous:I
+Lcom/android/internal/R$drawable;->ic_input_extract_action_return:I
+Lcom/android/internal/R$drawable;->ic_input_extract_action_search:I
+Lcom/android/internal/R$drawable;->ic_input_extract_action_send:I
+Lcom/android/internal/R$drawable;->ic_input_get:I
+Lcom/android/internal/R$drawable;->ic_instant_icon_badge_bolt:I
+Lcom/android/internal/R$drawable;->ic_jog_dial_sound_off:I
+Lcom/android/internal/R$drawable;->ic_jog_dial_sound_on:I
+Lcom/android/internal/R$drawable;->ic_jog_dial_unlock:I
+Lcom/android/internal/R$drawable;->ic_jog_dial_vibrate_on:I
+Lcom/android/internal/R$drawable;->ic_lock_airplane_mode:I
+Lcom/android/internal/R$drawable;->ic_lock_airplane_mode_off:I
+Lcom/android/internal/R$drawable;->ic_lock_bugreport:I
+Lcom/android/internal/R$drawable;->ic_lock_idle_alarm:I
+Lcom/android/internal/R$drawable;->ic_lock_idle_charging:I
+Lcom/android/internal/R$drawable;->ic_lock_idle_lock:I
+Lcom/android/internal/R$drawable;->ic_lock_idle_low_battery:I
+Lcom/android/internal/R$drawable;->ic_lock_lock:I
+Lcom/android/internal/R$drawable;->ic_lock_lockdown:I
+Lcom/android/internal/R$drawable;->ic_lock_power_off:I
+Lcom/android/internal/R$drawable;->ic_lock_silent_mode:I
+Lcom/android/internal/R$drawable;->ic_lock_silent_mode_off:I
+Lcom/android/internal/R$drawable;->ic_logout:I
+Lcom/android/internal/R$drawable;->ic_media_ff:I
+Lcom/android/internal/R$drawable;->ic_media_next:I
+Lcom/android/internal/R$drawable;->ic_media_pause:I
+Lcom/android/internal/R$drawable;->ic_media_play:I
+Lcom/android/internal/R$drawable;->ic_media_previous:I
+Lcom/android/internal/R$drawable;->ic_media_rew:I
+Lcom/android/internal/R$drawable;->ic_media_route_off_holo_dark:I
+Lcom/android/internal/R$drawable;->ic_media_route_off_holo_light:I
+Lcom/android/internal/R$drawable;->ic_media_stop:I
+Lcom/android/internal/R$drawable;->ic_media_video_poster:I
+Lcom/android/internal/R$drawable;->ic_menu_add:I
+Lcom/android/internal/R$drawable;->ic_menu_agenda:I
+Lcom/android/internal/R$drawable;->ic_menu_always_landscape_portrait:I
+Lcom/android/internal/R$drawable;->ic_menu_archive:I
+Lcom/android/internal/R$drawable;->ic_menu_call:I
+Lcom/android/internal/R$drawable;->ic_menu_camera:I
+Lcom/android/internal/R$drawable;->ic_menu_cc:I
+Lcom/android/internal/R$drawable;->ic_menu_compass:I
+Lcom/android/internal/R$drawable;->ic_menu_crop:I
+Lcom/android/internal/R$drawable;->ic_menu_day:I
+Lcom/android/internal/R$drawable;->ic_menu_delete:I
+Lcom/android/internal/R$drawable;->ic_menu_directions:I
+Lcom/android/internal/R$drawable;->ic_menu_edit:I
+Lcom/android/internal/R$drawable;->ic_menu_gallery:I
+Lcom/android/internal/R$drawable;->ic_menu_goto:I
+Lcom/android/internal/R$drawable;->ic_menu_help:I
+Lcom/android/internal/R$drawable;->ic_menu_info_details:I
+Lcom/android/internal/R$drawable;->ic_menu_manage:I
+Lcom/android/internal/R$drawable;->ic_menu_mapmode:I
+Lcom/android/internal/R$drawable;->ic_menu_month:I
+Lcom/android/internal/R$drawable;->ic_menu_more:I
+Lcom/android/internal/R$drawable;->ic_menu_moreoverflow_normal_holo_dark:I
+Lcom/android/internal/R$drawable;->ic_menu_mylocation:I
+Lcom/android/internal/R$drawable;->ic_menu_myplaces:I
+Lcom/android/internal/R$drawable;->ic_menu_my_calendar:I
+Lcom/android/internal/R$drawable;->ic_menu_play_clip:I
+Lcom/android/internal/R$drawable;->ic_menu_preferences:I
+Lcom/android/internal/R$drawable;->ic_menu_recent_history:I
+Lcom/android/internal/R$drawable;->ic_menu_refresh:I
+Lcom/android/internal/R$drawable;->ic_menu_report_image:I
+Lcom/android/internal/R$drawable;->ic_menu_revert:I
+Lcom/android/internal/R$drawable;->ic_menu_rotate:I
+Lcom/android/internal/R$drawable;->ic_menu_save:I
+Lcom/android/internal/R$drawable;->ic_menu_search:I
+Lcom/android/internal/R$drawable;->ic_menu_send:I
+Lcom/android/internal/R$drawable;->ic_menu_set_as:I
+Lcom/android/internal/R$drawable;->ic_menu_share:I
+Lcom/android/internal/R$drawable;->ic_menu_slideshow:I
+Lcom/android/internal/R$drawable;->ic_menu_sort_alphabetically:I
+Lcom/android/internal/R$drawable;->ic_menu_sort_by_size:I
+Lcom/android/internal/R$drawable;->ic_menu_today:I
+Lcom/android/internal/R$drawable;->ic_menu_upload:I
+Lcom/android/internal/R$drawable;->ic_menu_upload_you_tube:I
+Lcom/android/internal/R$drawable;->ic_menu_view:I
+Lcom/android/internal/R$drawable;->ic_menu_week:I
+Lcom/android/internal/R$drawable;->ic_menu_zoom:I
+Lcom/android/internal/R$drawable;->ic_mic:I
+Lcom/android/internal/R$drawable;->ic_more_items:I
+Lcom/android/internal/R$drawable;->ic_notification_clear_all:I
+Lcom/android/internal/R$drawable;->ic_notification_ime_default:I
+Lcom/android/internal/R$drawable;->ic_notification_overlay:I
+Lcom/android/internal/R$drawable;->ic_partial_secure:I
+Lcom/android/internal/R$drawable;->ic_permission:I
+Lcom/android/internal/R$drawable;->ic_perm_device_info:I
+Lcom/android/internal/R$drawable;->ic_popup_disk_full:I
+Lcom/android/internal/R$drawable;->ic_popup_reminder:I
+Lcom/android/internal/R$drawable;->ic_popup_sync:I
+Lcom/android/internal/R$drawable;->ic_print:I
+Lcom/android/internal/R$drawable;->ic_print_error:I
+Lcom/android/internal/R$drawable;->ic_qs_battery_saver:I
+Lcom/android/internal/R$drawable;->ic_restart:I
+Lcom/android/internal/R$drawable;->ic_screenshot:I
+Lcom/android/internal/R$drawable;->ic_sd_card_48dp:I
+Lcom/android/internal/R$drawable;->ic_search_category_default:I
+Lcom/android/internal/R$drawable;->ic_secure:I
+Lcom/android/internal/R$drawable;->ic_settings:I
+Lcom/android/internal/R$drawable;->ic_settings_24dp:I
+Lcom/android/internal/R$drawable;->ic_settings_language:I
+Lcom/android/internal/R$drawable;->ic_signal_cellular_alt_24px:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_0_bars:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_1_bar:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_2_bars:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_3_bars:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_4k:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_4_bars:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_hd:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_ld:I
+Lcom/android/internal/R$drawable;->ic_signal_wifi_badged_sd:I
+Lcom/android/internal/R$drawable;->ic_sim_card_multi_24px_clr:I
+Lcom/android/internal/R$drawable;->ic_sim_card_multi_48px_clr:I
+Lcom/android/internal/R$drawable;->ic_storage_48dp:I
+Lcom/android/internal/R$drawable;->ic_text_dot:I
+Lcom/android/internal/R$drawable;->ic_usb_48dp:I
+Lcom/android/internal/R$drawable;->ic_user_secure:I
+Lcom/android/internal/R$drawable;->ic_voice_search:I
+Lcom/android/internal/R$drawable;->ic_volume:I
+Lcom/android/internal/R$drawable;->ic_wifi_settings:I
+Lcom/android/internal/R$drawable;->ic_wifi_signal_0:I
+Lcom/android/internal/R$drawable;->ic_wifi_signal_1:I
+Lcom/android/internal/R$drawable;->ic_wifi_signal_2:I
+Lcom/android/internal/R$drawable;->ic_wifi_signal_3:I
+Lcom/android/internal/R$drawable;->ic_wifi_signal_4:I
+Lcom/android/internal/R$drawable;->ic_zen_24dp:I
+Lcom/android/internal/R$drawable;->indicator_input_error:I
+Lcom/android/internal/R$drawable;->jog_dial_arrow_long_left_green:I
+Lcom/android/internal/R$drawable;->jog_dial_arrow_long_right_red:I
+Lcom/android/internal/R$drawable;->jog_dial_arrow_short_left_and_right:I
+Lcom/android/internal/R$drawable;->jog_dial_bg:I
+Lcom/android/internal/R$drawable;->jog_dial_dimple:I
+Lcom/android/internal/R$drawable;->jog_dial_dimple_dim:I
+Lcom/android/internal/R$drawable;->jog_tab_bar_left_generic:I
+Lcom/android/internal/R$drawable;->jog_tab_bar_left_unlock:I
+Lcom/android/internal/R$drawable;->jog_tab_bar_right_generic:I
+Lcom/android/internal/R$drawable;->jog_tab_bar_right_sound_off:I
+Lcom/android/internal/R$drawable;->jog_tab_bar_right_sound_on:I
+Lcom/android/internal/R$drawable;->jog_tab_left_generic:I
+Lcom/android/internal/R$drawable;->jog_tab_left_unlock:I
+Lcom/android/internal/R$drawable;->jog_tab_right_generic:I
+Lcom/android/internal/R$drawable;->jog_tab_right_sound_off:I
+Lcom/android/internal/R$drawable;->jog_tab_right_sound_on:I
+Lcom/android/internal/R$drawable;->jog_tab_target_gray:I
+Lcom/android/internal/R$drawable;->jog_tab_target_green:I
+Lcom/android/internal/R$drawable;->jog_tab_target_yellow:I
+Lcom/android/internal/R$drawable;->list_selector_background:I
+Lcom/android/internal/R$drawable;->list_selector_pressed_holo_dark:I
+Lcom/android/internal/R$drawable;->lockscreen_notselected:I
+Lcom/android/internal/R$drawable;->lockscreen_selected:I
+Lcom/android/internal/R$drawable;->magnified_region_frame:I
+Lcom/android/internal/R$drawable;->menuitem_background:I
+Lcom/android/internal/R$drawable;->menu_background:I
+Lcom/android/internal/R$drawable;->menu_frame:I
+Lcom/android/internal/R$drawable;->menu_full_frame:I
+Lcom/android/internal/R$drawable;->messaging_user:I
+Lcom/android/internal/R$drawable;->notification_template_icon_bg:I
+Lcom/android/internal/R$drawable;->notification_template_icon_low_bg:I
+Lcom/android/internal/R$drawable;->picture_emergency:I
+Lcom/android/internal/R$drawable;->picture_frame:I
+Lcom/android/internal/R$drawable;->platlogo:I
+Lcom/android/internal/R$drawable;->platlogo_m:I
+Lcom/android/internal/R$drawable;->popup_bottom_bright:I
+Lcom/android/internal/R$drawable;->popup_bottom_dark:I
+Lcom/android/internal/R$drawable;->popup_bottom_medium:I
+Lcom/android/internal/R$drawable;->popup_center_bright:I
+Lcom/android/internal/R$drawable;->popup_center_dark:I
+Lcom/android/internal/R$drawable;->popup_full_bright:I
+Lcom/android/internal/R$drawable;->popup_full_dark:I
+Lcom/android/internal/R$drawable;->popup_top_bright:I
+Lcom/android/internal/R$drawable;->popup_top_dark:I
+Lcom/android/internal/R$drawable;->presence_audio_away:I
+Lcom/android/internal/R$drawable;->presence_audio_busy:I
+Lcom/android/internal/R$drawable;->presence_audio_online:I
+Lcom/android/internal/R$drawable;->presence_away:I
+Lcom/android/internal/R$drawable;->presence_busy:I
+Lcom/android/internal/R$drawable;->presence_invisible:I
+Lcom/android/internal/R$drawable;->presence_offline:I
+Lcom/android/internal/R$drawable;->presence_online:I
+Lcom/android/internal/R$drawable;->presence_video_away:I
+Lcom/android/internal/R$drawable;->presence_video_busy:I
+Lcom/android/internal/R$drawable;->presence_video_online:I
+Lcom/android/internal/R$drawable;->progress_horizontal:I
+Lcom/android/internal/R$drawable;->progress_indeterminate_horizontal:I
+Lcom/android/internal/R$drawable;->quickcontact_badge_overlay_dark:I
+Lcom/android/internal/R$drawable;->radiobutton_off_background:I
+Lcom/android/internal/R$drawable;->radiobutton_on_background:I
+Lcom/android/internal/R$drawable;->resolver_icon_placeholder:I
+Lcom/android/internal/R$drawable;->screen_background_dark:I
+Lcom/android/internal/R$drawable;->screen_background_dark_transparent:I
+Lcom/android/internal/R$drawable;->screen_background_light:I
+Lcom/android/internal/R$drawable;->screen_background_light_transparent:I
+Lcom/android/internal/R$drawable;->scroll_indicator_material:I
+Lcom/android/internal/R$drawable;->scrubber_control_disabled_holo:I
+Lcom/android/internal/R$drawable;->scrubber_control_selector_holo:I
+Lcom/android/internal/R$drawable;->scrubber_progress_horizontal_holo_dark:I
+Lcom/android/internal/R$drawable;->search_spinner:I
+Lcom/android/internal/R$drawable;->sim_dark_blue:I
+Lcom/android/internal/R$drawable;->sim_dark_green:I
+Lcom/android/internal/R$drawable;->sim_dark_orange:I
+Lcom/android/internal/R$drawable;->sim_dark_purple:I
+Lcom/android/internal/R$drawable;->sim_light_blue:I
+Lcom/android/internal/R$drawable;->sim_light_green:I
+Lcom/android/internal/R$drawable;->sim_light_orange:I
+Lcom/android/internal/R$drawable;->sim_light_purple:I
+Lcom/android/internal/R$drawable;->spinner_background:I
+Lcom/android/internal/R$drawable;->spinner_dropdown_background:I
+Lcom/android/internal/R$drawable;->star_big_off:I
+Lcom/android/internal/R$drawable;->star_big_on:I
+Lcom/android/internal/R$drawable;->star_off:I
+Lcom/android/internal/R$drawable;->star_on:I
+Lcom/android/internal/R$drawable;->status_bar_background:I
+Lcom/android/internal/R$drawable;->status_bar_item_app_background:I
+Lcom/android/internal/R$drawable;->status_bar_item_background:I
+Lcom/android/internal/R$drawable;->stat_notify_call_mute:I
+Lcom/android/internal/R$drawable;->stat_notify_car_mode:I
+Lcom/android/internal/R$drawable;->stat_notify_chat:I
+Lcom/android/internal/R$drawable;->stat_notify_disabled_data:I
+Lcom/android/internal/R$drawable;->stat_notify_disk_full:I
+Lcom/android/internal/R$drawable;->stat_notify_error:I
+Lcom/android/internal/R$drawable;->stat_notify_missed_call:I
+Lcom/android/internal/R$drawable;->stat_notify_mmcc_indication_icn:I
+Lcom/android/internal/R$drawable;->stat_notify_more:I
+Lcom/android/internal/R$drawable;->stat_notify_rssi_in_range:I
+Lcom/android/internal/R$drawable;->stat_notify_sdcard:I
+Lcom/android/internal/R$drawable;->stat_notify_sdcard_prepare:I
+Lcom/android/internal/R$drawable;->stat_notify_sdcard_usb:I
+Lcom/android/internal/R$drawable;->stat_notify_sim_toolkit:I
+Lcom/android/internal/R$drawable;->stat_notify_sync:I
+Lcom/android/internal/R$drawable;->stat_notify_sync_error:I
+Lcom/android/internal/R$drawable;->stat_notify_sync_noanim:I
+Lcom/android/internal/R$drawable;->stat_notify_voicemail:I
+Lcom/android/internal/R$drawable;->stat_notify_wifi_in_range:I
+Lcom/android/internal/R$drawable;->stat_sys_adb:I
+Lcom/android/internal/R$drawable;->stat_sys_battery:I
+Lcom/android/internal/R$drawable;->stat_sys_battery_charge:I
+Lcom/android/internal/R$drawable;->stat_sys_battery_unknown:I
+Lcom/android/internal/R$drawable;->stat_sys_certificate_info:I
+Lcom/android/internal/R$drawable;->stat_sys_data_bluetooth:I
+Lcom/android/internal/R$drawable;->stat_sys_data_usb:I
+Lcom/android/internal/R$drawable;->stat_sys_download_done:I
+Lcom/android/internal/R$drawable;->stat_sys_gps_on:I
+Lcom/android/internal/R$drawable;->stat_sys_headset:I
+Lcom/android/internal/R$drawable;->stat_sys_phone_call:I
+Lcom/android/internal/R$drawable;->stat_sys_phone_call_forward:I
+Lcom/android/internal/R$drawable;->stat_sys_phone_call_on_hold:I
+Lcom/android/internal/R$drawable;->stat_sys_speakerphone:I
+Lcom/android/internal/R$drawable;->stat_sys_tether_bluetooth:I
+Lcom/android/internal/R$drawable;->stat_sys_tether_general:I
+Lcom/android/internal/R$drawable;->stat_sys_tether_usb:I
+Lcom/android/internal/R$drawable;->stat_sys_tether_wifi:I
+Lcom/android/internal/R$drawable;->stat_sys_throttled:I
+Lcom/android/internal/R$drawable;->stat_sys_upload:I
+Lcom/android/internal/R$drawable;->stat_sys_upload_done:I
+Lcom/android/internal/R$drawable;->stat_sys_vitals:I
+Lcom/android/internal/R$drawable;->stat_sys_vp_phone_call:I
+Lcom/android/internal/R$drawable;->stat_sys_vp_phone_call_on_hold:I
+Lcom/android/internal/R$drawable;->stat_sys_warning:I
+Lcom/android/internal/R$drawable;->sym_action_call:I
+Lcom/android/internal/R$drawable;->sym_action_chat:I
+Lcom/android/internal/R$drawable;->sym_action_email:I
+Lcom/android/internal/R$drawable;->sym_app_on_sd_unavailable_icon:I
+Lcom/android/internal/R$drawable;->sym_call_incoming:I
+Lcom/android/internal/R$drawable;->sym_call_missed:I
+Lcom/android/internal/R$drawable;->sym_call_outgoing:I
+Lcom/android/internal/R$drawable;->sym_contact_card:I
+Lcom/android/internal/R$drawable;->sym_def_app_icon:I
+Lcom/android/internal/R$drawable;->sym_keyboard_return_holo:I
+Lcom/android/internal/R$drawable;->sym_keyboard_shift:I
+Lcom/android/internal/R$drawable;->sym_keyboard_shift_locked:I
+Lcom/android/internal/R$drawable;->tab_bottom_left:I
+Lcom/android/internal/R$drawable;->tab_bottom_left_v4:I
+Lcom/android/internal/R$drawable;->tab_bottom_right:I
+Lcom/android/internal/R$drawable;->tab_bottom_right_v4:I
+Lcom/android/internal/R$drawable;->tab_indicator_v4:I
+Lcom/android/internal/R$drawable;->text_edit_paste_window:I
+Lcom/android/internal/R$drawable;->text_edit_side_paste_window:I
+Lcom/android/internal/R$drawable;->title_bar:I
+Lcom/android/internal/R$drawable;->title_bar_medium:I
+Lcom/android/internal/R$drawable;->title_bar_tall:I
+Lcom/android/internal/R$drawable;->toast_frame:I
+Lcom/android/internal/R$drawable;->unknown_image:I
+Lcom/android/internal/R$drawable;->unlock_default:I
+Lcom/android/internal/R$drawable;->unlock_halo:I
+Lcom/android/internal/R$drawable;->unlock_ring:I
+Lcom/android/internal/R$drawable;->unlock_wave:I
+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
+Lcom/android/internal/R$fraction;->config_screenAutoBrightnessDozeScaleFactor:I
+Lcom/android/internal/R$fraction;->docked_stack_divider_fixed_ratio:I
+Lcom/android/internal/R$fraction;->input_extract_action_margin_bottom:I
+Lcom/android/internal/R$fraction;->input_extract_layout_height:I
+Lcom/android/internal/R$fraction;->input_extract_layout_padding_left:I
+Lcom/android/internal/R$fraction;->input_extract_layout_padding_left_no_action:I
+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
+Lcom/android/internal/R$id;->accessibilityActionHideTooltip:I
+Lcom/android/internal/R$id;->accessibilityActionMoveWindow:I
+Lcom/android/internal/R$id;->accessibilityActionScrollDown:I
+Lcom/android/internal/R$id;->accessibilityActionScrollLeft:I
+Lcom/android/internal/R$id;->accessibilityActionScrollRight:I
+Lcom/android/internal/R$id;->accessibilityActionScrollToPosition:I
+Lcom/android/internal/R$id;->accessibilityActionScrollUp:I
+Lcom/android/internal/R$id;->accessibilityActionSetProgress:I
+Lcom/android/internal/R$id;->accessibilityActionShowOnScreen:I
+Lcom/android/internal/R$id;->accessibilityActionShowTooltip:I
+Lcom/android/internal/R$id;->accessibility_button_chooser_grid:I
+Lcom/android/internal/R$id;->accessibility_button_prompt:I
+Lcom/android/internal/R$id;->accessibility_button_target_icon:I
+Lcom/android/internal/R$id;->accessibility_button_target_label:I
+Lcom/android/internal/R$id;->account_row_icon:I
+Lcom/android/internal/R$id;->account_row_text:I
+Lcom/android/internal/R$id;->action0:I
+Lcom/android/internal/R$id;->action1:I
+Lcom/android/internal/R$id;->action2:I
+Lcom/android/internal/R$id;->actions:I
+Lcom/android/internal/R$id;->actions_container:I
+Lcom/android/internal/R$id;->action_bar:I
+Lcom/android/internal/R$id;->action_bar_container:I
+Lcom/android/internal/R$id;->action_bar_spinner:I
+Lcom/android/internal/R$id;->action_bar_subtitle:I
+Lcom/android/internal/R$id;->action_bar_title:I
+Lcom/android/internal/R$id;->action_context_bar:I
+Lcom/android/internal/R$id;->action_menu_presenter:I
+Lcom/android/internal/R$id;->action_mode_bar_stub:I
+Lcom/android/internal/R$id;->action_mode_close_button:I
+Lcom/android/internal/R$id;->activity_chooser_view_content:I
+Lcom/android/internal/R$id;->addToDictionary:I
+Lcom/android/internal/R$id;->addToDictionaryButton:I
+Lcom/android/internal/R$id;->aerr_app_info:I
+Lcom/android/internal/R$id;->aerr_close:I
+Lcom/android/internal/R$id;->aerr_mute:I
+Lcom/android/internal/R$id;->aerr_report:I
+Lcom/android/internal/R$id;->aerr_restart:I
+Lcom/android/internal/R$id;->aerr_wait:I
+Lcom/android/internal/R$id;->alwaysUse:I
+Lcom/android/internal/R$id;->ampm_layout:I
+Lcom/android/internal/R$id;->am_label:I
+Lcom/android/internal/R$id;->am_pm_spinner:I
+Lcom/android/internal/R$id;->animator:I
+Lcom/android/internal/R$id;->app_name_text:I
+Lcom/android/internal/R$id;->app_ops:I
+Lcom/android/internal/R$id;->ask_checkbox:I
+Lcom/android/internal/R$id;->autofill:I
+Lcom/android/internal/R$id;->autofill_dataset_footer:I
+Lcom/android/internal/R$id;->autofill_dataset_header:I
+Lcom/android/internal/R$id;->autofill_dataset_icon:I
+Lcom/android/internal/R$id;->autofill_dataset_list:I
+Lcom/android/internal/R$id;->autofill_dataset_picker:I
+Lcom/android/internal/R$id;->autofill_dataset_title:I
+Lcom/android/internal/R$id;->autofill_save_custom_subtitle:I
+Lcom/android/internal/R$id;->autofill_save_icon:I
+Lcom/android/internal/R$id;->autofill_save_no:I
+Lcom/android/internal/R$id;->autofill_save_title:I
+Lcom/android/internal/R$id;->autofill_save_yes:I
+Lcom/android/internal/R$id;->big_picture:I
+Lcom/android/internal/R$id;->big_text:I
+Lcom/android/internal/R$id;->breadcrumb_section:I
+Lcom/android/internal/R$id;->button0:I
+Lcom/android/internal/R$id;->button1:I
+Lcom/android/internal/R$id;->button2:I
+Lcom/android/internal/R$id;->button3:I
+Lcom/android/internal/R$id;->button4:I
+Lcom/android/internal/R$id;->button5:I
+Lcom/android/internal/R$id;->button6:I
+Lcom/android/internal/R$id;->button7:I
+Lcom/android/internal/R$id;->button_always:I
+Lcom/android/internal/R$id;->button_bar:I
+Lcom/android/internal/R$id;->button_once:I
+Lcom/android/internal/R$id;->by_common:I
+Lcom/android/internal/R$id;->by_org:I
+Lcom/android/internal/R$id;->by_org_unit:I
+Lcom/android/internal/R$id;->calendar_view:I
+Lcom/android/internal/R$id;->candidatesArea:I
+Lcom/android/internal/R$id;->characterPicker:I
+Lcom/android/internal/R$id;->checkbox:I
+Lcom/android/internal/R$id;->chronometer:I
+Lcom/android/internal/R$id;->clearDefaultHint:I
+Lcom/android/internal/R$id;->close_window:I
+Lcom/android/internal/R$id;->compat_checkbox:I
+Lcom/android/internal/R$id;->copy:I
+Lcom/android/internal/R$id;->copyUrl:I
+Lcom/android/internal/R$id;->cross_task_transition:I
+Lcom/android/internal/R$id;->current_scene:I
+Lcom/android/internal/R$id;->cut:I
+Lcom/android/internal/R$id;->date:I
+Lcom/android/internal/R$id;->date_picker_day_picker:I
+Lcom/android/internal/R$id;->date_picker_header:I
+Lcom/android/internal/R$id;->date_picker_header_date:I
+Lcom/android/internal/R$id;->date_picker_header_year:I
+Lcom/android/internal/R$id;->date_picker_year_picker:I
+Lcom/android/internal/R$id;->day_names:I
+Lcom/android/internal/R$id;->day_picker_view_pager:I
+Lcom/android/internal/R$id;->decor_content_parent:I
+Lcom/android/internal/R$id;->decrement:I
+Lcom/android/internal/R$id;->default_activity_button:I
+Lcom/android/internal/R$id;->deleteButton:I
+Lcom/android/internal/R$id;->divider:I
+Lcom/android/internal/R$id;->edit_query:I
+Lcom/android/internal/R$id;->eight:I
+Lcom/android/internal/R$id;->empty:I
+Lcom/android/internal/R$id;->enter_pin_section:I
+Lcom/android/internal/R$id;->expand_activities_button:I
+Lcom/android/internal/R$id;->expand_button:I
+Lcom/android/internal/R$id;->expires_on:I
+Lcom/android/internal/R$id;->extractArea:I
+Lcom/android/internal/R$id;->ffwd:I
+Lcom/android/internal/R$id;->fillInIntent:I
+Lcom/android/internal/R$id;->find:I
+Lcom/android/internal/R$id;->five:I
+Lcom/android/internal/R$id;->floating_toolbar_menu_item_image:I
+Lcom/android/internal/R$id;->floating_toolbar_menu_item_text:I
+Lcom/android/internal/R$id;->four:I
+Lcom/android/internal/R$id;->fullscreenArea:I
+Lcom/android/internal/R$id;->group_divider:I
+Lcom/android/internal/R$id;->group_message_container:I
+Lcom/android/internal/R$id;->hard_keyboard_section:I
+Lcom/android/internal/R$id;->hard_keyboard_switch:I
+Lcom/android/internal/R$id;->headers:I
+Lcom/android/internal/R$id;->header_text:I
+Lcom/android/internal/R$id;->header_text_divider:I
+Lcom/android/internal/R$id;->header_text_secondary:I
+Lcom/android/internal/R$id;->header_text_secondary_divider:I
+Lcom/android/internal/R$id;->hint:I
+Lcom/android/internal/R$id;->home:I
+Lcom/android/internal/R$id;->hour:I
+Lcom/android/internal/R$id;->hours:I
+Lcom/android/internal/R$id;->icon1:I
+Lcom/android/internal/R$id;->icon2:I
+Lcom/android/internal/R$id;->icon_frame:I
+Lcom/android/internal/R$id;->icon_menu_presenter:I
+Lcom/android/internal/R$id;->image:I
+Lcom/android/internal/R$id;->inbox_text0:I
+Lcom/android/internal/R$id;->inbox_text1:I
+Lcom/android/internal/R$id;->inbox_text2:I
+Lcom/android/internal/R$id;->inbox_text3:I
+Lcom/android/internal/R$id;->inbox_text4:I
+Lcom/android/internal/R$id;->inbox_text5:I
+Lcom/android/internal/R$id;->inbox_text6:I
+Lcom/android/internal/R$id;->increment:I
+Lcom/android/internal/R$id;->info:I
+Lcom/android/internal/R$id;->input:I
+Lcom/android/internal/R$id;->inputArea:I
+Lcom/android/internal/R$id;->inputExtractAccessories:I
+Lcom/android/internal/R$id;->inputExtractAction:I
+Lcom/android/internal/R$id;->inputExtractEditText:I
+Lcom/android/internal/R$id;->input_header:I
+Lcom/android/internal/R$id;->input_hour:I
+Lcom/android/internal/R$id;->input_minute:I
+Lcom/android/internal/R$id;->input_mode:I
+Lcom/android/internal/R$id;->input_separator:I
+Lcom/android/internal/R$id;->insertion_handle:I
+Lcom/android/internal/R$id;->internalEmpty:I
+Lcom/android/internal/R$id;->issued_on:I
+Lcom/android/internal/R$id;->item_touch_helper_previous_elevation:I
+Lcom/android/internal/R$id;->label_error:I
+Lcom/android/internal/R$id;->label_hour:I
+Lcom/android/internal/R$id;->label_minute:I
+Lcom/android/internal/R$id;->leftSpacer:I
+Lcom/android/internal/R$id;->left_icon:I
+Lcom/android/internal/R$id;->list:I
+Lcom/android/internal/R$id;->listContainer:I
+Lcom/android/internal/R$id;->list_container:I
+Lcom/android/internal/R$id;->list_footer:I
+Lcom/android/internal/R$id;->list_menu_presenter:I
+Lcom/android/internal/R$id;->locale:I
+Lcom/android/internal/R$id;->locale_search_menu:I
+Lcom/android/internal/R$id;->lock_screen:I
+Lcom/android/internal/R$id;->mask:I
+Lcom/android/internal/R$id;->maximize_window:I
+Lcom/android/internal/R$id;->media_route_control_frame:I
+Lcom/android/internal/R$id;->media_route_extended_settings_button:I
+Lcom/android/internal/R$id;->media_route_list:I
+Lcom/android/internal/R$id;->media_route_volume_layout:I
+Lcom/android/internal/R$id;->media_route_volume_slider:I
+Lcom/android/internal/R$id;->message_icon:I
+Lcom/android/internal/R$id;->message_name:I
+Lcom/android/internal/R$id;->message_text:I
+Lcom/android/internal/R$id;->messaging_group_icon_container:I
+Lcom/android/internal/R$id;->messaging_group_sending_progress:I
+Lcom/android/internal/R$id;->messaging_group_sending_progress_container:I
+Lcom/android/internal/R$id;->mic:I
+Lcom/android/internal/R$id;->minutes:I
+Lcom/android/internal/R$id;->mode_normal:I
+Lcom/android/internal/R$id;->month_name:I
+Lcom/android/internal/R$id;->month_view:I
+Lcom/android/internal/R$id;->navigationBarBackground:I
+Lcom/android/internal/R$id;->new_app_action:I
+Lcom/android/internal/R$id;->new_app_description:I
+Lcom/android/internal/R$id;->new_app_icon:I
+Lcom/android/internal/R$id;->next:I
+Lcom/android/internal/R$id;->next_button:I
+Lcom/android/internal/R$id;->nine:I
+Lcom/android/internal/R$id;->notification_action_list_margin_target:I
+Lcom/android/internal/R$id;->notification_content_container:I
+Lcom/android/internal/R$id;->notification_main_column:I
+Lcom/android/internal/R$id;->notification_material_reply_container:I
+Lcom/android/internal/R$id;->notification_material_reply_progress:I
+Lcom/android/internal/R$id;->notification_material_reply_text_1:I
+Lcom/android/internal/R$id;->notification_material_reply_text_1_container:I
+Lcom/android/internal/R$id;->notification_material_reply_text_2:I
+Lcom/android/internal/R$id;->notification_material_reply_text_3:I
+Lcom/android/internal/R$id;->notification_messaging:I
+Lcom/android/internal/R$id;->no_applications_message:I
+Lcom/android/internal/R$id;->no_permissions:I
+Lcom/android/internal/R$id;->numberpicker_input:I
+Lcom/android/internal/R$id;->old_app_action:I
+Lcom/android/internal/R$id;->old_app_icon:I
+Lcom/android/internal/R$id;->one:I
+Lcom/android/internal/R$id;->option1:I
+Lcom/android/internal/R$id;->option2:I
+Lcom/android/internal/R$id;->option3:I
+Lcom/android/internal/R$id;->original_app_icon:I
+Lcom/android/internal/R$id;->original_message:I
+Lcom/android/internal/R$id;->overflow:I
+Lcom/android/internal/R$id;->overlay_display_window_texture:I
+Lcom/android/internal/R$id;->overlay_display_window_title:I
+Lcom/android/internal/R$id;->parentMatrix:I
+Lcom/android/internal/R$id;->paste:I
+Lcom/android/internal/R$id;->pasteAsPlainText:I
+Lcom/android/internal/R$id;->permission_group:I
+Lcom/android/internal/R$id;->permission_list:I
+Lcom/android/internal/R$id;->perms_list:I
+Lcom/android/internal/R$id;->perm_icon:I
+Lcom/android/internal/R$id;->perm_name:I
+Lcom/android/internal/R$id;->pickers:I
+Lcom/android/internal/R$id;->pin_cancel_button:I
+Lcom/android/internal/R$id;->pin_confirm_text:I
+Lcom/android/internal/R$id;->pin_error_message:I
+Lcom/android/internal/R$id;->pin_new_text:I
+Lcom/android/internal/R$id;->pin_ok_button:I
+Lcom/android/internal/R$id;->pin_text:I
+Lcom/android/internal/R$id;->placeholder:I
+Lcom/android/internal/R$id;->pm_label:I
+Lcom/android/internal/R$id;->prefs:I
+Lcom/android/internal/R$id;->prefs_container:I
+Lcom/android/internal/R$id;->prefs_frame:I
+Lcom/android/internal/R$id;->prev:I
+Lcom/android/internal/R$id;->primary:I
+Lcom/android/internal/R$id;->profile_badge:I
+Lcom/android/internal/R$id;->profile_button:I
+Lcom/android/internal/R$id;->progressContainer:I
+Lcom/android/internal/R$id;->progress_circular:I
+Lcom/android/internal/R$id;->progress_horizontal:I
+Lcom/android/internal/R$id;->progress_number:I
+Lcom/android/internal/R$id;->progress_percent:I
+Lcom/android/internal/R$id;->radial_picker:I
+Lcom/android/internal/R$id;->radio:I
+Lcom/android/internal/R$id;->reask_hint:I
+Lcom/android/internal/R$id;->remote_input:I
+Lcom/android/internal/R$id;->remote_input_progress:I
+Lcom/android/internal/R$id;->remote_input_send:I
+Lcom/android/internal/R$id;->replaceText:I
+Lcom/android/internal/R$id;->replace_app_icon:I
+Lcom/android/internal/R$id;->replace_message:I
+Lcom/android/internal/R$id;->reply_icon_action:I
+Lcom/android/internal/R$id;->resolver_list:I
+Lcom/android/internal/R$id;->rew:I
+Lcom/android/internal/R$id;->rightSpacer:I
+Lcom/android/internal/R$id;->right_icon_container:I
+Lcom/android/internal/R$id;->rowTypeId:I
+Lcom/android/internal/R$id;->scene_layoutid_cache:I
+Lcom/android/internal/R$id;->scrollView:I
+Lcom/android/internal/R$id;->search_app_icon:I
+Lcom/android/internal/R$id;->search_badge:I
+Lcom/android/internal/R$id;->search_bar:I
+Lcom/android/internal/R$id;->search_button:I
+Lcom/android/internal/R$id;->search_close_btn:I
+Lcom/android/internal/R$id;->search_edit_frame:I
+Lcom/android/internal/R$id;->search_go_btn:I
+Lcom/android/internal/R$id;->search_mag_icon:I
+Lcom/android/internal/R$id;->search_plate:I
+Lcom/android/internal/R$id;->search_view:I
+Lcom/android/internal/R$id;->search_voice_btn:I
+Lcom/android/internal/R$id;->secondaryProgress:I
+Lcom/android/internal/R$id;->seekbar:I
+Lcom/android/internal/R$id;->selectAll:I
+Lcom/android/internal/R$id;->selectedIcon:I
+Lcom/android/internal/R$id;->selection_end_handle:I
+Lcom/android/internal/R$id;->selection_start_handle:I
+Lcom/android/internal/R$id;->selectTextMode:I
+Lcom/android/internal/R$id;->select_all:I
+Lcom/android/internal/R$id;->separator:I
+Lcom/android/internal/R$id;->serial_number:I
+Lcom/android/internal/R$id;->seven:I
+Lcom/android/internal/R$id;->sha1_fingerprint:I
+Lcom/android/internal/R$id;->sha256_fingerprint:I
+Lcom/android/internal/R$id;->shareText:I
+Lcom/android/internal/R$id;->six:I
+Lcom/android/internal/R$id;->skip_button:I
+Lcom/android/internal/R$id;->smart_reply_container:I
+Lcom/android/internal/R$id;->sms_short_code_confirm_message:I
+Lcom/android/internal/R$id;->sms_short_code_detail_layout:I
+Lcom/android/internal/R$id;->sms_short_code_detail_message:I
+Lcom/android/internal/R$id;->sms_short_code_remember_choice_checkbox:I
+Lcom/android/internal/R$id;->sms_short_code_remember_undo_instruction:I
+Lcom/android/internal/R$id;->spacer:I
+Lcom/android/internal/R$id;->split_action_bar:I
+Lcom/android/internal/R$id;->startSelectingText:I
+Lcom/android/internal/R$id;->status:I
+Lcom/android/internal/R$id;->statusBarBackground:I
+Lcom/android/internal/R$id;->stopSelectingText:I
+Lcom/android/internal/R$id;->submenuarrow:I
+Lcom/android/internal/R$id;->submit_area:I
+Lcom/android/internal/R$id;->suggestionContainer:I
+Lcom/android/internal/R$id;->suggestionWindowContainer:I
+Lcom/android/internal/R$id;->summary:I
+Lcom/android/internal/R$id;->switchInputMethod:I
+Lcom/android/internal/R$id;->switch_new:I
+Lcom/android/internal/R$id;->switch_old:I
+Lcom/android/internal/R$id;->switch_widget:I
+Lcom/android/internal/R$id;->tabhost:I
+Lcom/android/internal/R$id;->tag_alpha_animator:I
+Lcom/android/internal/R$id;->tag_is_first_layout:I
+Lcom/android/internal/R$id;->tag_layout_top:I
+Lcom/android/internal/R$id;->tag_top_animator:I
+Lcom/android/internal/R$id;->tag_top_override:I
+Lcom/android/internal/R$id;->target_badge:I
+Lcom/android/internal/R$id;->textAssist:I
+Lcom/android/internal/R$id;->textSpacerNoButtons:I
+Lcom/android/internal/R$id;->textSpacerNoTitle:I
+Lcom/android/internal/R$id;->text_line_1:I
+Lcom/android/internal/R$id;->three:I
+Lcom/android/internal/R$id;->timePickerLayout:I
+Lcom/android/internal/R$id;->time_divider:I
+Lcom/android/internal/R$id;->time_header:I
+Lcom/android/internal/R$id;->titleDividerNoCustom:I
+Lcom/android/internal/R$id;->toggle:I
+Lcom/android/internal/R$id;->toggle_mode:I
+Lcom/android/internal/R$id;->to_common:I
+Lcom/android/internal/R$id;->to_org:I
+Lcom/android/internal/R$id;->to_org_unit:I
+Lcom/android/internal/R$id;->transitionPosition:I
+Lcom/android/internal/R$id;->transitionTransform:I
+Lcom/android/internal/R$id;->two:I
+Lcom/android/internal/R$id;->undo:I
+Lcom/android/internal/R$id;->user_loading:I
+Lcom/android/internal/R$id;->user_loading_avatar:I
+Lcom/android/internal/R$id;->value:I
+Lcom/android/internal/R$id;->websearch:I
+Lcom/android/internal/R$id;->widget_frame:I
+Lcom/android/internal/R$id;->wifi_p2p_wps_pin:I
+Lcom/android/internal/R$id;->work_widget_app_icon:I
+Lcom/android/internal/R$id;->work_widget_badge_icon:I
+Lcom/android/internal/R$id;->work_widget_mask_frame:I
+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
+Lcom/android/internal/R$integer;->config_autoBrightnessBrighteningLightDebounce:I
+Lcom/android/internal/R$integer;->config_autoBrightnessDarkeningLightDebounce:I
+Lcom/android/internal/R$integer;->config_autoBrightnessInitialLightSensorRate:I
+Lcom/android/internal/R$integer;->config_autoBrightnessLightSensorRate:I
+Lcom/android/internal/R$integer;->config_autoPowerModeAnyMotionSensor:I
+Lcom/android/internal/R$integer;->config_autoPowerModeThresholdAngle:I
+Lcom/android/internal/R$integer;->config_bluetooth_idle_cur_ma:I
+Lcom/android/internal/R$integer;->config_bluetooth_max_advertisers:I
+Lcom/android/internal/R$integer;->config_bluetooth_max_connected_audio_devices:I
+Lcom/android/internal/R$integer;->config_bluetooth_max_scan_filters:I
+Lcom/android/internal/R$integer;->config_bluetooth_operating_voltage_mv:I
+Lcom/android/internal/R$integer;->config_bluetooth_rx_cur_ma:I
+Lcom/android/internal/R$integer;->config_bluetooth_tx_cur_ma:I
+Lcom/android/internal/R$integer;->config_brightness_ramp_rate_fast:I
+Lcom/android/internal/R$integer;->config_brightness_ramp_rate_slow:I
+Lcom/android/internal/R$integer;->config_burnInProtectionMaxHorizontalOffset:I
+Lcom/android/internal/R$integer;->config_burnInProtectionMaxRadius:I
+Lcom/android/internal/R$integer;->config_burnInProtectionMaxVerticalOffset:I
+Lcom/android/internal/R$integer;->config_burnInProtectionMinHorizontalOffset:I
+Lcom/android/internal/R$integer;->config_burnInProtectionMinVerticalOffset:I
+Lcom/android/internal/R$integer;->config_cameraLaunchGestureSensorType:I
+Lcom/android/internal/R$integer;->config_cameraLiftTriggerSensorType:I
+Lcom/android/internal/R$integer;->config_carDockKeepsScreenOn:I
+Lcom/android/internal/R$integer;->config_carDockRotation:I
+Lcom/android/internal/R$integer;->config_cdma_3waycall_flash_delay:I
+Lcom/android/internal/R$integer;->config_criticalBatteryWarningLevel:I
+Lcom/android/internal/R$integer;->config_cursorWindowSize:I
+Lcom/android/internal/R$integer;->config_datause_notification_type:I
+Lcom/android/internal/R$integer;->config_datause_polling_period_sec:I
+Lcom/android/internal/R$integer;->config_datause_threshold_bytes:I
+Lcom/android/internal/R$integer;->config_datause_throttle_kbitsps:I
+Lcom/android/internal/R$integer;->config_defaultDisplayDefaultColorMode:I
+Lcom/android/internal/R$integer;->config_defaultHapticFeedbackIntensity:I
+Lcom/android/internal/R$integer;->config_defaultNightDisplayAutoMode:I
+Lcom/android/internal/R$integer;->config_defaultNightDisplayCustomEndTime:I
+Lcom/android/internal/R$integer;->config_defaultNightDisplayCustomStartTime:I
+Lcom/android/internal/R$integer;->config_defaultNightMode:I
+Lcom/android/internal/R$integer;->config_defaultNotificationLedOff:I
+Lcom/android/internal/R$integer;->config_defaultNotificationLedOn:I
+Lcom/android/internal/R$integer;->config_defaultNotificationVibrationIntensity:I
+Lcom/android/internal/R$integer;->config_defaultPictureInPictureGravity:I
+Lcom/android/internal/R$integer;->config_defaultUiModeType:I
+Lcom/android/internal/R$integer;->config_defaultVibrationAmplitude:I
+Lcom/android/internal/R$integer;->config_deskDockKeepsScreenOn:I
+Lcom/android/internal/R$integer;->config_deskDockRotation:I
+Lcom/android/internal/R$integer;->config_dockedStackDividerSnapMode:I
+Lcom/android/internal/R$integer;->config_doublePressOnPowerBehavior:I
+Lcom/android/internal/R$integer;->config_doubleTapOnHomeBehavior:I
+Lcom/android/internal/R$integer;->config_downloadDataDirLowSpaceThreshold:I
+Lcom/android/internal/R$integer;->config_downloadDataDirSize:I
+Lcom/android/internal/R$integer;->config_drawLockTimeoutMillis:I
+Lcom/android/internal/R$integer;->config_dreamsBatteryLevelDrainCutoff:I
+Lcom/android/internal/R$integer;->config_dreamsBatteryLevelMinimumWhenNotPowered:I
+Lcom/android/internal/R$integer;->config_dreamsBatteryLevelMinimumWhenPowered:I
+Lcom/android/internal/R$integer;->config_externalHardKeyboardBehavior:I
+Lcom/android/internal/R$integer;->config_extraFreeKbytesAbsolute:I
+Lcom/android/internal/R$integer;->config_extraFreeKbytesAdjust:I
+Lcom/android/internal/R$integer;->config_fingerprintMaxTemplatesPerUser:I
+Lcom/android/internal/R$integer;->config_globalActionsKeyTimeout:I
+Lcom/android/internal/R$integer;->config_immersive_mode_confirmation_panic:I
+Lcom/android/internal/R$integer;->config_jobSchedulerIdleWindowSlop:I
+Lcom/android/internal/R$integer;->config_jobSchedulerInactivityIdleThreshold:I
+Lcom/android/internal/R$integer;->config_keepPreloadsMinDays:I
+Lcom/android/internal/R$integer;->config_lidKeyboardAccessibility:I
+Lcom/android/internal/R$integer;->config_lidNavigationAccessibility:I
+Lcom/android/internal/R$integer;->config_lidOpenRotation:I
+Lcom/android/internal/R$integer;->config_lightSensorWarmupTime:I
+Lcom/android/internal/R$integer;->config_lockSoundVolumeDb:I
+Lcom/android/internal/R$integer;->config_longAnimTime:I
+Lcom/android/internal/R$integer;->config_longPressOnBackBehavior:I
+Lcom/android/internal/R$integer;->config_longPressOnHomeBehavior:I
+Lcom/android/internal/R$integer;->config_longPressOnPowerBehavior:I
+Lcom/android/internal/R$integer;->config_lowBatteryAutoTriggerDefaultLevel:I
+Lcom/android/internal/R$integer;->config_lowBatteryCloseWarningBump:I
+Lcom/android/internal/R$integer;->config_lowBatteryWarningLevel:I
+Lcom/android/internal/R$integer;->config_lowMemoryKillerMinFreeKbytesAbsolute:I
+Lcom/android/internal/R$integer;->config_lowMemoryKillerMinFreeKbytesAdjust:I
+Lcom/android/internal/R$integer;->config_MaxConcurrentDownloadsAllowed:I
+Lcom/android/internal/R$integer;->config_maximumScreenDimDuration:I
+Lcom/android/internal/R$integer;->config_maxNumVisibleRecentTasks:I
+Lcom/android/internal/R$integer;->config_maxNumVisibleRecentTasks_grid:I
+Lcom/android/internal/R$integer;->config_maxNumVisibleRecentTasks_lowRam:I
+Lcom/android/internal/R$integer;->config_maxResolverActivityColumns:I
+Lcom/android/internal/R$integer;->config_maxUiWidth:I
+Lcom/android/internal/R$integer;->config_max_pan_devices:I
+Lcom/android/internal/R$integer;->config_mdc_initial_max_retry:I
+Lcom/android/internal/R$integer;->config_mediumAnimTime:I
+Lcom/android/internal/R$integer;->config_minimumScreenOffTimeout:I
+Lcom/android/internal/R$integer;->config_minNumVisibleRecentTasks:I
+Lcom/android/internal/R$integer;->config_minNumVisibleRecentTasks_grid:I
+Lcom/android/internal/R$integer;->config_minNumVisibleRecentTasks_lowRam:I
+Lcom/android/internal/R$integer;->config_mobile_hotspot_provision_check_period:I
+Lcom/android/internal/R$integer;->config_mobile_mtu:I
+Lcom/android/internal/R$integer;->config_multiuserMaximumUsers:I
+Lcom/android/internal/R$integer;->config_multiuserMaxRunningUsers:I
+Lcom/android/internal/R$integer;->config_navBarOpacityMode:I
+Lcom/android/internal/R$integer;->config_networkAvoidBadWifi:I
+Lcom/android/internal/R$integer;->config_networkDefaultDailyMultipathQuotaBytes:I
+Lcom/android/internal/R$integer;->config_networkMeteredMultipathPreference:I
+Lcom/android/internal/R$integer;->config_networkNotifySwitchType:I
+Lcom/android/internal/R$integer;->config_networkPolicyDefaultWarning:I
+Lcom/android/internal/R$integer;->config_networkTransitionTimeout:I
+Lcom/android/internal/R$integer;->config_networkWakeupPacketMark:I
+Lcom/android/internal/R$integer;->config_networkWakeupPacketMask:I
+Lcom/android/internal/R$integer;->config_nightDisplayColorTemperatureDefault:I
+Lcom/android/internal/R$integer;->config_nightDisplayColorTemperatureMax:I
+Lcom/android/internal/R$integer;->config_nightDisplayColorTemperatureMin:I
+Lcom/android/internal/R$integer;->config_notificationsBatteryFullARGB:I
+Lcom/android/internal/R$integer;->config_notificationsBatteryLedOff:I
+Lcom/android/internal/R$integer;->config_notificationsBatteryLedOn:I
+Lcom/android/internal/R$integer;->config_notificationsBatteryLowARGB:I
+Lcom/android/internal/R$integer;->config_notificationsBatteryMediumARGB:I
+Lcom/android/internal/R$integer;->config_notificationServiceArchiveSize:I
+Lcom/android/internal/R$integer;->config_ntpPollingInterval:I
+Lcom/android/internal/R$integer;->config_ntpPollingIntervalShorter:I
+Lcom/android/internal/R$integer;->config_ntpRetry:I
+Lcom/android/internal/R$integer;->config_ntpThreshold:I
+Lcom/android/internal/R$integer;->config_ntpTimeout:I
+Lcom/android/internal/R$integer;->config_num_physical_slots:I
+Lcom/android/internal/R$integer;->config_overrideHasPermanentMenuKey:I
+Lcom/android/internal/R$integer;->config_pictureInPictureSnapMode:I
+Lcom/android/internal/R$integer;->config_previousVibrationsDumpLimit:I
+Lcom/android/internal/R$integer;->config_radioScanningTimeout:I
+Lcom/android/internal/R$integer;->config_safe_media_volume_index:I
+Lcom/android/internal/R$integer;->config_safe_media_volume_usb_mB:I
+Lcom/android/internal/R$integer;->config_screenBrightnessDark:I
+Lcom/android/internal/R$integer;->config_screenBrightnessDoze:I
+Lcom/android/internal/R$integer;->config_screenBrightnessForVrSettingDefault:I
+Lcom/android/internal/R$integer;->config_screenBrightnessForVrSettingMaximum:I
+Lcom/android/internal/R$integer;->config_screenBrightnessForVrSettingMinimum:I
+Lcom/android/internal/R$integer;->config_screenBrightnessSettingDefault:I
+Lcom/android/internal/R$integer;->config_screen_magnification_multi_tap_adjustment:I
+Lcom/android/internal/R$integer;->config_shortAnimTime:I
+Lcom/android/internal/R$integer;->config_shortPressOnPowerBehavior:I
+Lcom/android/internal/R$integer;->config_shortPressOnSleepBehavior:I
+Lcom/android/internal/R$integer;->config_shutdownBatteryTemperature:I
+Lcom/android/internal/R$integer;->config_soundEffectVolumeDb:I
+Lcom/android/internal/R$integer;->config_stableDeviceDisplayHeight:I
+Lcom/android/internal/R$integer;->config_stableDeviceDisplayWidth:I
+Lcom/android/internal/R$integer;->config_storageManagerDaystoRetainDefault:I
+Lcom/android/internal/R$integer;->config_timeZoneRulesCheckRetryCount:I
+Lcom/android/internal/R$integer;->config_timeZoneRulesCheckTimeMillisAllowed:I
+Lcom/android/internal/R$integer;->config_triplePressOnPowerBehavior:I
+Lcom/android/internal/R$integer;->config_undockedHdmiRotation:I
+Lcom/android/internal/R$integer;->config_valid_wappush_index:I
+Lcom/android/internal/R$integer;->config_veryLongPressOnPowerBehavior:I
+Lcom/android/internal/R$integer;->config_veryLongPressTimeout:I
+Lcom/android/internal/R$integer;->config_virtualKeyQuietTimeMillis:I
+Lcom/android/internal/R$integer;->config_volte_replacement_rat:I
+Lcom/android/internal/R$integer;->config_wifi_associated_short_scan_interval:I
+Lcom/android/internal/R$integer;->config_wifi_disconnected_short_scan_interval:I
+Lcom/android/internal/R$integer;->config_wifi_framework_5GHz_preference_boost_factor:I
+Lcom/android/internal/R$integer;->config_wifi_framework_5GHz_preference_boost_threshold:I
+Lcom/android/internal/R$integer;->config_wifi_framework_5GHz_preference_penalty_threshold:I
+Lcom/android/internal/R$integer;->config_wifi_framework_associated_full_scan_backoff:I
+Lcom/android/internal/R$integer;->config_wifi_framework_associated_full_scan_max_interval:I
+Lcom/android/internal/R$integer;->config_wifi_framework_associated_full_scan_max_total_dwell_time:I
+Lcom/android/internal/R$integer;->config_wifi_framework_associated_full_scan_rx_packet_threshold:I
+Lcom/android/internal/R$integer;->config_wifi_framework_associated_full_scan_tx_packet_threshold:I
+Lcom/android/internal/R$integer;->config_wifi_framework_associated_partial_scan_max_num_active_channels:I
+Lcom/android/internal/R$integer;->config_wifi_framework_associated_partial_scan_rx_packet_threshold:I
+Lcom/android/internal/R$integer;->config_wifi_framework_associated_partial_scan_tx_packet_threshold:I
+Lcom/android/internal/R$integer;->config_wifi_framework_current_network_boost:I
+Lcom/android/internal/R$integer;->config_wifi_framework_LAST_SELECTION_AWARD:I
+Lcom/android/internal/R$integer;->config_wifi_framework_max_rx_rate_for_full_scan:I
+Lcom/android/internal/R$integer;->config_wifi_framework_max_tx_rate_for_full_scan:I
+Lcom/android/internal/R$integer;->config_wifi_framework_min_rx_rate_for_staying_on_network:I
+Lcom/android/internal/R$integer;->config_wifi_framework_min_tx_rate_for_staying_on_network:I
+Lcom/android/internal/R$integer;->config_wifi_framework_network_switch_rx_packet_threshold:I
+Lcom/android/internal/R$integer;->config_wifi_framework_network_switch_tx_packet_threshold:I
+Lcom/android/internal/R$integer;->config_wifi_framework_PASSPOINT_SECURITY_AWARD:I
+Lcom/android/internal/R$integer;->config_wifi_framework_RSSI_SCORE_OFFSET:I
+Lcom/android/internal/R$integer;->config_wifi_framework_RSSI_SCORE_SLOPE:I
+Lcom/android/internal/R$integer;->config_wifi_framework_SAME_BSSID_AWARD:I
+Lcom/android/internal/R$integer;->config_wifi_framework_scan_interval:I
+Lcom/android/internal/R$integer;->config_wifi_framework_scan_result_rssi_level_patchup_value:I
+Lcom/android/internal/R$integer;->config_wifi_framework_SECURITY_AWARD:I
+Lcom/android/internal/R$integer;->config_wifi_framework_soft_ap_timeout_delay:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_bad_link_speed_24:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_bad_link_speed_5:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_good_link_speed_24:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_good_link_speed_5:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_good_rssi_threshold_24GHz:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_good_rssi_threshold_5GHz:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_low_rssi_threshold_24GHz:I
+Lcom/android/internal/R$integer;->config_wifi_framework_wifi_score_low_rssi_threshold_5GHz:I
+Lcom/android/internal/R$integer;->config_wifi_logger_ring_buffer_default_size_limit_kb:I
+Lcom/android/internal/R$integer;->config_wifi_logger_ring_buffer_verbose_size_limit_kb:I
+Lcom/android/internal/R$integer;->config_wifi_network_switching_blacklist_time:I
+Lcom/android/internal/R$integer;->config_wifi_no_network_periodic_scan_interval:I
+Lcom/android/internal/R$integer;->config_wifi_scan_interval_p2p_connected:I
+Lcom/android/internal/R$integer;->config_wifi_supplicant_scan_interval:I
+Lcom/android/internal/R$integer;->config_windowOutsetBottom:I
+Lcom/android/internal/R$integer;->config_zen_repeat_callers_threshold:I
+Lcom/android/internal/R$integer;->date_picker_mode:I
+Lcom/android/internal/R$integer;->db_connection_pool_size:I
+Lcom/android/internal/R$integer;->db_default_idle_connection_timeout:I
+Lcom/android/internal/R$integer;->db_journal_size_limit:I
+Lcom/android/internal/R$integer;->db_wal_autocheckpoint:I
+Lcom/android/internal/R$integer;->default_data_warning_level_mb:I
+Lcom/android/internal/R$integer;->dock_enter_exit_duration:I
+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
+Lcom/android/internal/R$interpolator;->accelerate_quint:I
+Lcom/android/internal/R$interpolator;->anticipate:I
+Lcom/android/internal/R$interpolator;->anticipate_overshoot:I
+Lcom/android/internal/R$interpolator;->bounce:I
+Lcom/android/internal/R$interpolator;->cycle:I
+Lcom/android/internal/R$interpolator;->decelerate_quad:I
+Lcom/android/internal/R$interpolator;->decelerate_quint:I
+Lcom/android/internal/R$interpolator;->fast_out_extra_slow_in:I
+Lcom/android/internal/R$interpolator;->fast_out_linear_in:I
+Lcom/android/internal/R$interpolator;->fast_out_slow_in:I
+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
+Lcom/android/internal/R$layout;->action_bar_home:I
+Lcom/android/internal/R$layout;->action_bar_title_item:I
+Lcom/android/internal/R$layout;->action_bar_up_container:I
+Lcom/android/internal/R$layout;->action_menu_item_layout:I
+Lcom/android/internal/R$layout;->action_menu_layout:I
+Lcom/android/internal/R$layout;->action_mode_close_item:I
+Lcom/android/internal/R$layout;->activity_chooser_view:I
+Lcom/android/internal/R$layout;->activity_chooser_view_list_item:I
+Lcom/android/internal/R$layout;->activity_list:I
+Lcom/android/internal/R$layout;->activity_list_item:I
+Lcom/android/internal/R$layout;->activity_list_item_2:I
+Lcom/android/internal/R$layout;->alert_dialog:I
+Lcom/android/internal/R$layout;->alert_dialog_progress:I
+Lcom/android/internal/R$layout;->always_use_checkbox:I
+Lcom/android/internal/R$layout;->am_compat_mode_dialog:I
+Lcom/android/internal/R$layout;->app_anr_dialog:I
+Lcom/android/internal/R$layout;->app_error_dialog:I
+Lcom/android/internal/R$layout;->app_not_authorized:I
+Lcom/android/internal/R$layout;->app_permission_item:I
+Lcom/android/internal/R$layout;->app_permission_item_money:I
+Lcom/android/internal/R$layout;->app_permission_item_old:I
+Lcom/android/internal/R$layout;->app_perms_summary:I
+Lcom/android/internal/R$layout;->autofill_dataset_picker:I
+Lcom/android/internal/R$layout;->autofill_dataset_picker_fullscreen:I
+Lcom/android/internal/R$layout;->autofill_dataset_picker_header_footer:I
+Lcom/android/internal/R$layout;->autofill_save:I
+Lcom/android/internal/R$layout;->auto_complete_list:I
+Lcom/android/internal/R$layout;->browser_link_context_header:I
+Lcom/android/internal/R$layout;->calendar_view:I
+Lcom/android/internal/R$layout;->car_user_switching_dialog:I
+Lcom/android/internal/R$layout;->cascading_menu_item_layout:I
+Lcom/android/internal/R$layout;->character_picker:I
+Lcom/android/internal/R$layout;->character_picker_button:I
+Lcom/android/internal/R$layout;->chooser_grid:I
+Lcom/android/internal/R$layout;->chooser_row:I
+Lcom/android/internal/R$layout;->choose_account:I
+Lcom/android/internal/R$layout;->choose_account_row:I
+Lcom/android/internal/R$layout;->choose_account_type:I
+Lcom/android/internal/R$layout;->choose_type_and_account:I
+Lcom/android/internal/R$layout;->common_tab_settings:I
+Lcom/android/internal/R$layout;->date_picker_dialog:I
+Lcom/android/internal/R$layout;->date_picker_legacy:I
+Lcom/android/internal/R$layout;->date_picker_material:I
+Lcom/android/internal/R$layout;->date_picker_month_item_material:I
+Lcom/android/internal/R$layout;->day_picker_content_material:I
+Lcom/android/internal/R$layout;->decor_caption:I
+Lcom/android/internal/R$layout;->expandable_list_content:I
+Lcom/android/internal/R$layout;->expanded_menu_layout:I
+Lcom/android/internal/R$layout;->floating_popup_close_overflow_button:I
+Lcom/android/internal/R$layout;->floating_popup_container:I
+Lcom/android/internal/R$layout;->floating_popup_menu_button:I
+Lcom/android/internal/R$layout;->floating_popup_open_overflow_button:I
+Lcom/android/internal/R$layout;->floating_popup_overflow_button:I
+Lcom/android/internal/R$layout;->fragment_bread_crumbs:I
+Lcom/android/internal/R$layout;->fragment_bread_crumb_item:I
+Lcom/android/internal/R$layout;->global_actions:I
+Lcom/android/internal/R$layout;->global_actions_item:I
+Lcom/android/internal/R$layout;->global_actions_silent_mode:I
+Lcom/android/internal/R$layout;->grant_credentials_permission:I
+Lcom/android/internal/R$layout;->harmful_app_warning_dialog:I
+Lcom/android/internal/R$layout;->heavy_weight_switcher:I
+Lcom/android/internal/R$layout;->icon_menu_item_layout:I
+Lcom/android/internal/R$layout;->icon_menu_layout:I
+Lcom/android/internal/R$layout;->immersive_mode_cling:I
+Lcom/android/internal/R$layout;->input_method:I
+Lcom/android/internal/R$layout;->input_method_extract_view:I
+Lcom/android/internal/R$layout;->input_method_switch_dialog_title:I
+Lcom/android/internal/R$layout;->input_method_switch_item:I
+Lcom/android/internal/R$layout;->js_prompt:I
+Lcom/android/internal/R$layout;->language_picker_item:I
+Lcom/android/internal/R$layout;->language_picker_section_header:I
+Lcom/android/internal/R$layout;->launch_warning:I
+Lcom/android/internal/R$layout;->list_content:I
+Lcom/android/internal/R$layout;->list_content_simple:I
+Lcom/android/internal/R$layout;->list_menu_item_checkbox:I
+Lcom/android/internal/R$layout;->list_menu_item_icon:I
+Lcom/android/internal/R$layout;->list_menu_item_layout:I
+Lcom/android/internal/R$layout;->list_menu_item_radio:I
+Lcom/android/internal/R$layout;->locale_picker_item:I
+Lcom/android/internal/R$layout;->media_controller:I
+Lcom/android/internal/R$layout;->media_route_chooser_dialog:I
+Lcom/android/internal/R$layout;->media_route_controller_dialog:I
+Lcom/android/internal/R$layout;->media_route_list_item:I
+Lcom/android/internal/R$layout;->notification_intruder_content:I
+Lcom/android/internal/R$layout;->notification_material_action:I
+Lcom/android/internal/R$layout;->notification_material_action_emphasized:I
+Lcom/android/internal/R$layout;->notification_material_action_list:I
+Lcom/android/internal/R$layout;->notification_material_action_tombstone:I
+Lcom/android/internal/R$layout;->notification_material_media_action:I
+Lcom/android/internal/R$layout;->notification_template_ambient_header:I
+Lcom/android/internal/R$layout;->notification_template_header:I
+Lcom/android/internal/R$layout;->notification_template_material_ambient:I
+Lcom/android/internal/R$layout;->notification_template_material_big_base:I
+Lcom/android/internal/R$layout;->notification_template_material_big_media:I
+Lcom/android/internal/R$layout;->notification_template_material_big_picture:I
+Lcom/android/internal/R$layout;->notification_template_material_big_text:I
+Lcom/android/internal/R$layout;->notification_template_material_inbox:I
+Lcom/android/internal/R$layout;->notification_template_material_media:I
+Lcom/android/internal/R$layout;->notification_template_material_messaging:I
+Lcom/android/internal/R$layout;->notification_template_messaging_group:I
+Lcom/android/internal/R$layout;->notification_template_messaging_image_message:I
+Lcom/android/internal/R$layout;->notification_template_messaging_text_message:I
+Lcom/android/internal/R$layout;->number_picker:I
+Lcom/android/internal/R$layout;->overlay_display_window:I
+Lcom/android/internal/R$layout;->permissions_package_list_item:I
+Lcom/android/internal/R$layout;->popup_menu_header_item_layout:I
+Lcom/android/internal/R$layout;->popup_menu_item_layout:I
+Lcom/android/internal/R$layout;->preference:I
+Lcom/android/internal/R$layout;->preference_category:I
+Lcom/android/internal/R$layout;->preference_list_content:I
+Lcom/android/internal/R$layout;->preference_list_content_single:I
+Lcom/android/internal/R$layout;->preference_list_fragment:I
+Lcom/android/internal/R$layout;->preference_widget_seekbar:I
+Lcom/android/internal/R$layout;->progress_dialog:I
+Lcom/android/internal/R$layout;->recent_apps_dialog:I
+Lcom/android/internal/R$layout;->remote_views_adapter_default_loading_view:I
+Lcom/android/internal/R$layout;->resolver_different_item_header:I
+Lcom/android/internal/R$layout;->resolver_list:I
+Lcom/android/internal/R$layout;->resolver_list_with_default:I
+Lcom/android/internal/R$layout;->resolve_grid_item:I
+Lcom/android/internal/R$layout;->resolve_list_item:I
+Lcom/android/internal/R$layout;->restrictions_pin_challenge:I
+Lcom/android/internal/R$layout;->restrictions_pin_setup:I
+Lcom/android/internal/R$layout;->safe_mode:I
+Lcom/android/internal/R$layout;->screen_action_bar:I
+Lcom/android/internal/R$layout;->screen_custom_title:I
+Lcom/android/internal/R$layout;->screen_progress:I
+Lcom/android/internal/R$layout;->screen_simple:I
+Lcom/android/internal/R$layout;->screen_simple_overlay_action_mode:I
+Lcom/android/internal/R$layout;->screen_swipe_dismiss:I
+Lcom/android/internal/R$layout;->screen_title_icons:I
+Lcom/android/internal/R$layout;->search_bar:I
+Lcom/android/internal/R$layout;->search_dropdown_item_icons_2line:I
+Lcom/android/internal/R$layout;->search_view:I
+Lcom/android/internal/R$layout;->select_dialog_item:I
+Lcom/android/internal/R$layout;->select_dialog_multichoice_material:I
+Lcom/android/internal/R$layout;->select_dialog_singlechoice_holo:I
+Lcom/android/internal/R$layout;->select_dialog_singlechoice_material:I
+Lcom/android/internal/R$layout;->shutdown_dialog:I
+Lcom/android/internal/R$layout;->simple_account_item:I
+Lcom/android/internal/R$layout;->simple_dropdown_hint:I
+Lcom/android/internal/R$layout;->simple_dropdown_item_1line:I
+Lcom/android/internal/R$layout;->simple_expandable_list_item_1:I
+Lcom/android/internal/R$layout;->simple_expandable_list_item_2:I
+Lcom/android/internal/R$layout;->simple_gallery_item:I
+Lcom/android/internal/R$layout;->simple_list_item_1:I
+Lcom/android/internal/R$layout;->simple_list_item_2:I
+Lcom/android/internal/R$layout;->simple_list_item_2_single_choice:I
+Lcom/android/internal/R$layout;->simple_list_item_activated_1:I
+Lcom/android/internal/R$layout;->simple_list_item_activated_2:I
+Lcom/android/internal/R$layout;->simple_list_item_checked:I
+Lcom/android/internal/R$layout;->simple_list_item_multiple_choice:I
+Lcom/android/internal/R$layout;->simple_list_item_single_choice:I
+Lcom/android/internal/R$layout;->simple_selectable_list_item:I
+Lcom/android/internal/R$layout;->simple_spinner_dropdown_item:I
+Lcom/android/internal/R$layout;->simple_spinner_item:I
+Lcom/android/internal/R$layout;->slice_grid:I
+Lcom/android/internal/R$layout;->slice_message:I
+Lcom/android/internal/R$layout;->slice_message_local:I
+Lcom/android/internal/R$layout;->slice_remote_input:I
+Lcom/android/internal/R$layout;->slice_secondary_text:I
+Lcom/android/internal/R$layout;->slice_small_template:I
+Lcom/android/internal/R$layout;->slice_title:I
+Lcom/android/internal/R$layout;->sms_short_code_confirmation_dialog:I
+Lcom/android/internal/R$layout;->ssl_certificate:I
+Lcom/android/internal/R$layout;->status_bar_latest_event_content:I
+Lcom/android/internal/R$layout;->tab_content:I
+Lcom/android/internal/R$layout;->tab_indicator_holo:I
+Lcom/android/internal/R$layout;->test_list_item:I
+Lcom/android/internal/R$layout;->textview_hint:I
+Lcom/android/internal/R$layout;->text_drag_thumbnail:I
+Lcom/android/internal/R$layout;->text_edit_action_popup_text:I
+Lcom/android/internal/R$layout;->time_picker_dialog:I
+Lcom/android/internal/R$layout;->time_picker_header_material:I
+Lcom/android/internal/R$layout;->time_picker_legacy:I
+Lcom/android/internal/R$layout;->time_picker_material:I
+Lcom/android/internal/R$layout;->time_picker_text_input_material:I
+Lcom/android/internal/R$layout;->tooltip:I
+Lcom/android/internal/R$layout;->transient_notification:I
+Lcom/android/internal/R$layout;->two_line_list_item:I
+Lcom/android/internal/R$layout;->typing_filter:I
+Lcom/android/internal/R$layout;->unsupported_compile_sdk_dialog_content:I
+Lcom/android/internal/R$layout;->unsupported_display_size_dialog_content:I
+Lcom/android/internal/R$layout;->user_switching_dialog:I
+Lcom/android/internal/R$layout;->voice_interaction_session:I
+Lcom/android/internal/R$layout;->webview_select_singlechoice:I
+Lcom/android/internal/R$layout;->web_text_view_dropdown:I
+Lcom/android/internal/R$layout;->wifi_p2p_dialog:I
+Lcom/android/internal/R$layout;->wifi_p2p_dialog_row:I
+Lcom/android/internal/R$layout;->work_widget_mask_view:I
+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
+Lcom/android/internal/R$plurals;->duration_days_relative:I
+Lcom/android/internal/R$plurals;->duration_days_relative_future:I
+Lcom/android/internal/R$plurals;->duration_days_shortest:I
+Lcom/android/internal/R$plurals;->duration_days_shortest_future:I
+Lcom/android/internal/R$plurals;->duration_hours_relative:I
+Lcom/android/internal/R$plurals;->duration_hours_relative_future:I
+Lcom/android/internal/R$plurals;->duration_hours_shortest:I
+Lcom/android/internal/R$plurals;->duration_hours_shortest_future:I
+Lcom/android/internal/R$plurals;->duration_minutes_relative:I
+Lcom/android/internal/R$plurals;->duration_minutes_relative_future:I
+Lcom/android/internal/R$plurals;->duration_minutes_shortest:I
+Lcom/android/internal/R$plurals;->duration_minutes_shortest_future:I
+Lcom/android/internal/R$plurals;->duration_years_relative:I
+Lcom/android/internal/R$plurals;->duration_years_relative_future:I
+Lcom/android/internal/R$plurals;->duration_years_shortest:I
+Lcom/android/internal/R$plurals;->duration_years_shortest_future:I
+Lcom/android/internal/R$plurals;->last_num_days:I
+Lcom/android/internal/R$plurals;->pinpuk_attempts:I
+Lcom/android/internal/R$plurals;->restr_pin_countdown:I
+Lcom/android/internal/R$plurals;->selected_count:I
+Lcom/android/internal/R$plurals;->ssl_ca_cert_warning:I
+Lcom/android/internal/R$plurals;->wifi_available:I
+Lcom/android/internal/R$plurals;->wifi_available_detailed:I
+Lcom/android/internal/R$plurals;->zen_mode_duration_hours:I
+Lcom/android/internal/R$plurals;->zen_mode_duration_hours_short:I
+Lcom/android/internal/R$plurals;->zen_mode_duration_hours_summary:I
+Lcom/android/internal/R$plurals;->zen_mode_duration_hours_summary_short:I
+Lcom/android/internal/R$plurals;->zen_mode_duration_minutes:I
+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
+Lcom/android/internal/R$string;->accessibility_magnification_chooser_text:I
+Lcom/android/internal/R$string;->accessibility_shortcut_disabling_service:I
+Lcom/android/internal/R$string;->accessibility_shortcut_enabling_service:I
+Lcom/android/internal/R$string;->accessibility_shortcut_toogle_warning:I
+Lcom/android/internal/R$string;->accessibility_shortcut_warning_dialog_title:I
+Lcom/android/internal/R$string;->action_bar_home_description:I
+Lcom/android/internal/R$string;->action_bar_home_description_format:I
+Lcom/android/internal/R$string;->action_bar_home_subtitle_description_format:I
+Lcom/android/internal/R$string;->action_bar_up_description:I
+Lcom/android/internal/R$string;->activitychooserview_choose_application:I
+Lcom/android/internal/R$string;->activitychooserview_choose_application_error:I
+Lcom/android/internal/R$string;->activity_chooser_view_see_all:I
+Lcom/android/internal/R$string;->activity_resolver_work_profiles_support:I
+Lcom/android/internal/R$string;->adb_active_notification_message:I
+Lcom/android/internal/R$string;->adb_active_notification_title:I
+Lcom/android/internal/R$string;->adb_debugging_notification_channel_tv:I
+Lcom/android/internal/R$string;->addToDictionary:I
+Lcom/android/internal/R$string;->add_account_button_label:I
+Lcom/android/internal/R$string;->add_calendar_event:I
+Lcom/android/internal/R$string;->add_calendar_event_desc:I
+Lcom/android/internal/R$string;->add_contact:I
+Lcom/android/internal/R$string;->add_contact_desc:I
+Lcom/android/internal/R$string;->aerr_application:I
+Lcom/android/internal/R$string;->aerr_application_repeated:I
+Lcom/android/internal/R$string;->aerr_process:I
+Lcom/android/internal/R$string;->aerr_process_repeated:I
+Lcom/android/internal/R$string;->alert_windows_notification_channel_group_name:I
+Lcom/android/internal/R$string;->alert_windows_notification_channel_name:I
+Lcom/android/internal/R$string;->alert_windows_notification_message:I
+Lcom/android/internal/R$string;->alert_windows_notification_title:I
+Lcom/android/internal/R$string;->alert_windows_notification_turn_off_action:I
+Lcom/android/internal/R$string;->alternate_eri_file:I
+Lcom/android/internal/R$string;->alwaysUse:I
+Lcom/android/internal/R$string;->android_preparing_apk:I
+Lcom/android/internal/R$string;->android_start_title:I
+Lcom/android/internal/R$string;->android_system_label:I
+Lcom/android/internal/R$string;->android_upgrading_apk:I
+Lcom/android/internal/R$string;->android_upgrading_complete:I
+Lcom/android/internal/R$string;->android_upgrading_fstrim:I
+Lcom/android/internal/R$string;->android_upgrading_notification_title:I
+Lcom/android/internal/R$string;->android_upgrading_starting_apps:I
+Lcom/android/internal/R$string;->android_upgrading_title:I
+Lcom/android/internal/R$string;->anr_activity_application:I
+Lcom/android/internal/R$string;->anr_activity_process:I
+Lcom/android/internal/R$string;->anr_application_process:I
+Lcom/android/internal/R$string;->anr_process:I
+Lcom/android/internal/R$string;->anr_title:I
+Lcom/android/internal/R$string;->app_category_audio:I
+Lcom/android/internal/R$string;->app_category_game:I
+Lcom/android/internal/R$string;->app_category_image:I
+Lcom/android/internal/R$string;->app_category_maps:I
+Lcom/android/internal/R$string;->app_category_news:I
+Lcom/android/internal/R$string;->app_category_productivity:I
+Lcom/android/internal/R$string;->app_category_social:I
+Lcom/android/internal/R$string;->app_category_video:I
+Lcom/android/internal/R$string;->app_running_notification_text:I
+Lcom/android/internal/R$string;->app_running_notification_title:I
+Lcom/android/internal/R$string;->app_suspended_default_message:I
+Lcom/android/internal/R$string;->app_suspended_more_details:I
+Lcom/android/internal/R$string;->app_suspended_title:I
+Lcom/android/internal/R$string;->autofill:I
+Lcom/android/internal/R$string;->autofill_address_line_1_label_re:I
+Lcom/android/internal/R$string;->autofill_address_line_1_re:I
+Lcom/android/internal/R$string;->autofill_address_line_2_re:I
+Lcom/android/internal/R$string;->autofill_address_line_3_re:I
+Lcom/android/internal/R$string;->autofill_address_name_separator:I
+Lcom/android/internal/R$string;->autofill_address_summary_format:I
+Lcom/android/internal/R$string;->autofill_address_summary_name_format:I
+Lcom/android/internal/R$string;->autofill_address_summary_separator:I
+Lcom/android/internal/R$string;->autofill_address_type_same_as_re:I
+Lcom/android/internal/R$string;->autofill_address_type_use_my_re:I
+Lcom/android/internal/R$string;->autofill_area:I
+Lcom/android/internal/R$string;->autofill_area_code_notext_re:I
+Lcom/android/internal/R$string;->autofill_area_code_re:I
+Lcom/android/internal/R$string;->autofill_attention_ignored_re:I
+Lcom/android/internal/R$string;->autofill_billing_designator_re:I
+Lcom/android/internal/R$string;->autofill_card_cvc_re:I
+Lcom/android/internal/R$string;->autofill_card_ignored_re:I
+Lcom/android/internal/R$string;->autofill_card_number_re:I
+Lcom/android/internal/R$string;->autofill_city_re:I
+Lcom/android/internal/R$string;->autofill_company_re:I
+Lcom/android/internal/R$string;->autofill_country_code_re:I
+Lcom/android/internal/R$string;->autofill_country_re:I
+Lcom/android/internal/R$string;->autofill_county:I
+Lcom/android/internal/R$string;->autofill_department:I
+Lcom/android/internal/R$string;->autofill_district:I
+Lcom/android/internal/R$string;->autofill_email_re:I
+Lcom/android/internal/R$string;->autofill_emirate:I
+Lcom/android/internal/R$string;->autofill_error_cannot_autofill:I
+Lcom/android/internal/R$string;->autofill_expiration_date_re:I
+Lcom/android/internal/R$string;->autofill_expiration_month_re:I
+Lcom/android/internal/R$string;->autofill_fax_re:I
+Lcom/android/internal/R$string;->autofill_first_name_re:I
+Lcom/android/internal/R$string;->autofill_island:I
+Lcom/android/internal/R$string;->autofill_last_name_re:I
+Lcom/android/internal/R$string;->autofill_middle_initial_re:I
+Lcom/android/internal/R$string;->autofill_middle_name_re:I
+Lcom/android/internal/R$string;->autofill_name_on_card_contextual_re:I
+Lcom/android/internal/R$string;->autofill_name_on_card_re:I
+Lcom/android/internal/R$string;->autofill_name_re:I
+Lcom/android/internal/R$string;->autofill_name_specific_re:I
+Lcom/android/internal/R$string;->autofill_parish:I
+Lcom/android/internal/R$string;->autofill_phone_extension_re:I
+Lcom/android/internal/R$string;->autofill_phone_prefix_re:I
+Lcom/android/internal/R$string;->autofill_phone_prefix_separator_re:I
+Lcom/android/internal/R$string;->autofill_phone_re:I
+Lcom/android/internal/R$string;->autofill_phone_suffix_re:I
+Lcom/android/internal/R$string;->autofill_phone_suffix_separator_re:I
+Lcom/android/internal/R$string;->autofill_picker_accessibility_title:I
+Lcom/android/internal/R$string;->autofill_picker_no_suggestions:I
+Lcom/android/internal/R$string;->autofill_postal_code:I
+Lcom/android/internal/R$string;->autofill_prefecture:I
+Lcom/android/internal/R$string;->autofill_province:I
+Lcom/android/internal/R$string;->autofill_region_ignored_re:I
+Lcom/android/internal/R$string;->autofill_save_accessibility_title:I
+Lcom/android/internal/R$string;->autofill_save_no:I
+Lcom/android/internal/R$string;->autofill_save_title:I
+Lcom/android/internal/R$string;->autofill_save_title_with_2types:I
+Lcom/android/internal/R$string;->autofill_save_title_with_3types:I
+Lcom/android/internal/R$string;->autofill_save_title_with_type:I
+Lcom/android/internal/R$string;->autofill_save_type_address:I
+Lcom/android/internal/R$string;->autofill_save_type_credit_card:I
+Lcom/android/internal/R$string;->autofill_save_type_email_address:I
+Lcom/android/internal/R$string;->autofill_save_type_password:I
+Lcom/android/internal/R$string;->autofill_save_type_username:I
+Lcom/android/internal/R$string;->autofill_save_yes:I
+Lcom/android/internal/R$string;->autofill_shipping_designator_re:I
+Lcom/android/internal/R$string;->autofill_state:I
+Lcom/android/internal/R$string;->autofill_state_re:I
+Lcom/android/internal/R$string;->autofill_this_form:I
+Lcom/android/internal/R$string;->autofill_username_re:I
+Lcom/android/internal/R$string;->autofill_window_title:I
+Lcom/android/internal/R$string;->autofill_zip_4_re:I
+Lcom/android/internal/R$string;->autofill_zip_code:I
+Lcom/android/internal/R$string;->autofill_zip_code_re:I
+Lcom/android/internal/R$string;->badPin:I
+Lcom/android/internal/R$string;->badPuk:I
+Lcom/android/internal/R$string;->BaMmi:I
+Lcom/android/internal/R$string;->battery_saver_description:I
+Lcom/android/internal/R$string;->battery_saver_description_with_learn_more:I
+Lcom/android/internal/R$string;->bluetooth_a2dp_audio_route_name:I
+Lcom/android/internal/R$string;->browse:I
+Lcom/android/internal/R$string;->browse_desc:I
+Lcom/android/internal/R$string;->bugreport_message:I
+Lcom/android/internal/R$string;->bugreport_option_full_summary:I
+Lcom/android/internal/R$string;->bugreport_option_full_title:I
+Lcom/android/internal/R$string;->bugreport_option_interactive_summary:I
+Lcom/android/internal/R$string;->bugreport_option_interactive_title:I
+Lcom/android/internal/R$string;->bugreport_status:I
+Lcom/android/internal/R$string;->bugreport_title:I
+Lcom/android/internal/R$string;->capability_desc_canCaptureFingerprintGestures:I
+Lcom/android/internal/R$string;->capability_desc_canControlMagnification:I
+Lcom/android/internal/R$string;->capability_desc_canPerformGestures:I
+Lcom/android/internal/R$string;->capability_desc_canRequestFilterKeyEvents:I
+Lcom/android/internal/R$string;->capability_desc_canRequestTouchExploration:I
+Lcom/android/internal/R$string;->capability_desc_canRetrieveWindowContent:I
+Lcom/android/internal/R$string;->capability_title_canCaptureFingerprintGestures:I
+Lcom/android/internal/R$string;->capability_title_canControlMagnification:I
+Lcom/android/internal/R$string;->capability_title_canPerformGestures:I
+Lcom/android/internal/R$string;->capability_title_canRequestFilterKeyEvents:I
+Lcom/android/internal/R$string;->capability_title_canRequestTouchExploration:I
+Lcom/android/internal/R$string;->capability_title_canRetrieveWindowContent:I
+Lcom/android/internal/R$string;->carrier_app_notification_text:I
+Lcom/android/internal/R$string;->carrier_app_notification_title:I
+Lcom/android/internal/R$string;->car_loading_profile:I
+Lcom/android/internal/R$string;->car_mode_disable_notification_message:I
+Lcom/android/internal/R$string;->car_mode_disable_notification_title:I
+Lcom/android/internal/R$string;->CfMmi:I
+Lcom/android/internal/R$string;->cfTemplateForwarded:I
+Lcom/android/internal/R$string;->cfTemplateForwardedTime:I
+Lcom/android/internal/R$string;->cfTemplateNotForwarded:I
+Lcom/android/internal/R$string;->cfTemplateRegistered:I
+Lcom/android/internal/R$string;->cfTemplateRegisteredTime:I
+Lcom/android/internal/R$string;->chooseActivity:I
+Lcom/android/internal/R$string;->chooser_wallpaper:I
+Lcom/android/internal/R$string;->chooseUsbActivity:I
+Lcom/android/internal/R$string;->ClipMmi:I
+Lcom/android/internal/R$string;->CLIRDefaultOffNextCallOff:I
+Lcom/android/internal/R$string;->CLIRDefaultOffNextCallOn:I
+Lcom/android/internal/R$string;->CLIRDefaultOnNextCallOff:I
+Lcom/android/internal/R$string;->CLIRDefaultOnNextCallOn:I
+Lcom/android/internal/R$string;->ClirMmi:I
+Lcom/android/internal/R$string;->CLIRPermanent:I
+Lcom/android/internal/R$string;->color_correction_feature_name:I
+Lcom/android/internal/R$string;->color_inversion_feature_name:I
+Lcom/android/internal/R$string;->ColpMmi:I
+Lcom/android/internal/R$string;->ColrMmi:I
+Lcom/android/internal/R$string;->common_last_name_prefixes:I
+Lcom/android/internal/R$string;->common_name_conjunctions:I
+Lcom/android/internal/R$string;->common_name_prefixes:I
+Lcom/android/internal/R$string;->common_name_suffixes:I
+Lcom/android/internal/R$string;->condition_provider_service_binding_label:I
+Lcom/android/internal/R$string;->conference_call:I
+Lcom/android/internal/R$string;->config_activityRecognitionHardwarePackageName:I
+Lcom/android/internal/R$string;->config_appsAuthorizedForSharedAccounts:I
+Lcom/android/internal/R$string;->config_appsNotReportingCrashes:I
+Lcom/android/internal/R$string;->config_batterySaverDeviceSpecificConfig:I
+Lcom/android/internal/R$string;->config_cameraLaunchGestureSensorStringType:I
+Lcom/android/internal/R$string;->config_cameraLiftTriggerSensorStringType:I
+Lcom/android/internal/R$string;->config_carrierAppInstallDialogComponent:I
+Lcom/android/internal/R$string;->config_chooseAccountActivity:I
+Lcom/android/internal/R$string;->config_chooseTypeAndAccountActivity:I
+Lcom/android/internal/R$string;->config_customAdbPublicKeyConfirmationComponent:I
+Lcom/android/internal/R$string;->config_customAdbPublicKeyConfirmationSecondaryUserComponent:I
+Lcom/android/internal/R$string;->config_customResolverActivity:I
+Lcom/android/internal/R$string;->config_customVpnAlwaysOnDisconnectedDialogComponent:I
+Lcom/android/internal/R$string;->config_customVpnConfirmDialogComponent:I
+Lcom/android/internal/R$string;->config_dataUsageSummaryComponent:I
+Lcom/android/internal/R$string;->config_datause_iface:I
+Lcom/android/internal/R$string;->config_defaultAccessibilityService:I
+Lcom/android/internal/R$string;->config_defaultAssistantAccessPackage:I
+Lcom/android/internal/R$string;->config_defaultAutofillService:I
+Lcom/android/internal/R$string;->config_defaultCellBroadcastReceiverPkg:I
+Lcom/android/internal/R$string;->config_defaultDndAccessPackages:I
+Lcom/android/internal/R$string;->config_defaultListenerAccessPackages:I
+Lcom/android/internal/R$string;->config_defaultNetworkRecommendationProviderPackage:I
+Lcom/android/internal/R$string;->config_defaultNetworkScorerPackageName:I
+Lcom/android/internal/R$string;->config_defaultPictureInPictureScreenEdgeInsets:I
+Lcom/android/internal/R$string;->config_defaultTextClassifierPackage:I
+Lcom/android/internal/R$string;->config_defaultTrustAgent:I
+Lcom/android/internal/R$string;->config_default_dns_server:I
+Lcom/android/internal/R$string;->config_deviceProvisioningPackage:I
+Lcom/android/internal/R$string;->config_deviceSpecificAudioService:I
+Lcom/android/internal/R$string;->config_deviceSpecificDevicePolicyManagerService:I
+Lcom/android/internal/R$string;->config_doubleTouchGestureEnableFile:I
+Lcom/android/internal/R$string;->config_dozeComponent:I
+Lcom/android/internal/R$string;->config_dozeDoubleTapSensorType:I
+Lcom/android/internal/R$string;->config_dozeLongPressSensorType:I
+Lcom/android/internal/R$string;->config_dreamsDefaultComponent:I
+Lcom/android/internal/R$string;->config_emergency_call_number:I
+Lcom/android/internal/R$string;->config_ethernet_iface_regex:I
+Lcom/android/internal/R$string;->config_ethernet_tcp_buffers:I
+Lcom/android/internal/R$string;->config_feedbackIntentExtraKey:I
+Lcom/android/internal/R$string;->config_feedbackIntentNameKey:I
+Lcom/android/internal/R$string;->config_forceVoiceInteractionServicePackage:I
+Lcom/android/internal/R$string;->config_fusedLocationProviderPackageName:I
+Lcom/android/internal/R$string;->config_geocoderProviderPackageName:I
+Lcom/android/internal/R$string;->config_geofenceProviderPackageName:I
+Lcom/android/internal/R$string;->config_hardwareFlpPackageName:I
+Lcom/android/internal/R$string;->config_headlineFontFamily:I
+Lcom/android/internal/R$string;->config_headlineFontFamilyLight:I
+Lcom/android/internal/R$string;->config_headlineFontFamilyMedium:I
+Lcom/android/internal/R$string;->config_helpIntentExtraKey:I
+Lcom/android/internal/R$string;->config_helpIntentNameKey:I
+Lcom/android/internal/R$string;->config_helpPackageNameKey:I
+Lcom/android/internal/R$string;->config_helpPackageNameValue:I
+Lcom/android/internal/R$string;->config_iccHotswapPromptForRestartDialogComponent:I
+Lcom/android/internal/R$string;->config_icon_mask:I
+Lcom/android/internal/R$string;->config_ims_package:I
+Lcom/android/internal/R$string;->config_inCallNotificationSound:I
+Lcom/android/internal/R$string;->config_keyguardComponent:I
+Lcom/android/internal/R$string;->config_mainBuiltInDisplayCutout:I
+Lcom/android/internal/R$string;->config_managed_provisioning_package:I
+Lcom/android/internal/R$string;->config_mediaProjectionPermissionDialogComponent:I
+Lcom/android/internal/R$string;->config_mms_user_agent:I
+Lcom/android/internal/R$string;->config_mms_user_agent_profile_url:I
+Lcom/android/internal/R$string;->config_mobile_hotspot_provision_app_no_ui:I
+Lcom/android/internal/R$string;->config_mobile_hotspot_provision_response:I
+Lcom/android/internal/R$string;->config_networkLocationProviderPackageName:I
+Lcom/android/internal/R$string;->config_networkOverLimitComponent:I
+Lcom/android/internal/R$string;->config_ntpServer:I
+Lcom/android/internal/R$string;->config_packagedKeyboardName:I
+Lcom/android/internal/R$string;->config_persistentDataPackageName:I
+Lcom/android/internal/R$string;->config_radio_access_family:I
+Lcom/android/internal/R$string;->config_recentsComponentName:I
+Lcom/android/internal/R$string;->config_timeZoneRulesDataPackage:I
+Lcom/android/internal/R$string;->config_timeZoneRulesUpdaterPackage:I
+Lcom/android/internal/R$string;->config_tvRemoteServicePackage:I
+Lcom/android/internal/R$string;->config_UsbDeviceConnectionHandling_component:I
+Lcom/android/internal/R$string;->config_useragentprofile_url:I
+Lcom/android/internal/R$string;->config_wallpaperCropperPackage:I
+Lcom/android/internal/R$string;->config_wallpaperManagerServiceName:I
+Lcom/android/internal/R$string;->config_wifi_framework_sap_2G_channel_list:I
+Lcom/android/internal/R$string;->config_wifi_p2p_device_type:I
+Lcom/android/internal/R$string;->config_wifi_random_mac_oui:I
+Lcom/android/internal/R$string;->config_wifi_tcp_buffers:I
+Lcom/android/internal/R$string;->config_wifi_tether_enable:I
+Lcom/android/internal/R$string;->config_wimaxManagerClassname:I
+Lcom/android/internal/R$string;->config_wimaxNativeLibLocation:I
+Lcom/android/internal/R$string;->config_wimaxServiceClassname:I
+Lcom/android/internal/R$string;->config_wimaxServiceJarLocation:I
+Lcom/android/internal/R$string;->config_wimaxStateTrackerClassname:I
+Lcom/android/internal/R$string;->config_wlan_data_service_package:I
+Lcom/android/internal/R$string;->config_wlan_network_service_package:I
+Lcom/android/internal/R$string;->config_wwan_data_service_package:I
+Lcom/android/internal/R$string;->config_wwan_network_service_package:I
+Lcom/android/internal/R$string;->contentServiceSync:I
+Lcom/android/internal/R$string;->contentServiceSyncNotificationTitle:I
+Lcom/android/internal/R$string;->contentServiceTooManyDeletesNotificationDesc:I
+Lcom/android/internal/R$string;->copy:I
+Lcom/android/internal/R$string;->copyUrl:I
+Lcom/android/internal/R$string;->country_selection_title:I
+Lcom/android/internal/R$string;->create_contact_using:I
+Lcom/android/internal/R$string;->cut:I
+Lcom/android/internal/R$string;->CwMmi:I
+Lcom/android/internal/R$string;->data_saver_description:I
+Lcom/android/internal/R$string;->data_saver_enable_button:I
+Lcom/android/internal/R$string;->data_saver_enable_title:I
+Lcom/android/internal/R$string;->data_usage_limit_body:I
+Lcom/android/internal/R$string;->data_usage_limit_snoozed_body:I
+Lcom/android/internal/R$string;->data_usage_mobile_limit_snoozed_title:I
+Lcom/android/internal/R$string;->data_usage_mobile_limit_title:I
+Lcom/android/internal/R$string;->data_usage_rapid_app_body:I
+Lcom/android/internal/R$string;->data_usage_rapid_body:I
+Lcom/android/internal/R$string;->data_usage_rapid_title:I
+Lcom/android/internal/R$string;->data_usage_restricted_body:I
+Lcom/android/internal/R$string;->data_usage_restricted_title:I
+Lcom/android/internal/R$string;->data_usage_warning_body:I
+Lcom/android/internal/R$string;->data_usage_warning_title:I
+Lcom/android/internal/R$string;->data_usage_wifi_limit_snoozed_title:I
+Lcom/android/internal/R$string;->data_usage_wifi_limit_title:I
+Lcom/android/internal/R$string;->date_and_time:I
+Lcom/android/internal/R$string;->date_picker_day_of_week_typeface:I
+Lcom/android/internal/R$string;->date_picker_day_typeface:I
+Lcom/android/internal/R$string;->date_picker_decrement_day_button:I
+Lcom/android/internal/R$string;->date_picker_decrement_month_button:I
+Lcom/android/internal/R$string;->date_picker_decrement_year_button:I
+Lcom/android/internal/R$string;->date_picker_dialog_title:I
+Lcom/android/internal/R$string;->date_picker_increment_day_button:I
+Lcom/android/internal/R$string;->date_picker_increment_month_button:I
+Lcom/android/internal/R$string;->date_picker_increment_year_button:I
+Lcom/android/internal/R$string;->date_picker_month_typeface:I
+Lcom/android/internal/R$string;->date_picker_next_month_button:I
+Lcom/android/internal/R$string;->date_picker_prev_month_button:I
+Lcom/android/internal/R$string;->date_time:I
+Lcom/android/internal/R$string;->date_time_done:I
+Lcom/android/internal/R$string;->date_time_set:I
+Lcom/android/internal/R$string;->db_default_journal_mode:I
+Lcom/android/internal/R$string;->db_default_sync_mode:I
+Lcom/android/internal/R$string;->db_wal_sync_mode:I
+Lcom/android/internal/R$string;->decline:I
+Lcom/android/internal/R$string;->decline_remote_bugreport_action:I
+Lcom/android/internal/R$string;->defaultMsisdnAlphaTag:I
+Lcom/android/internal/R$string;->defaultVoiceMailAlphaTag:I
+Lcom/android/internal/R$string;->default_audio_route_category_name:I
+Lcom/android/internal/R$string;->default_audio_route_name:I
+Lcom/android/internal/R$string;->default_audio_route_name_dock_speakers:I
+Lcom/android/internal/R$string;->default_audio_route_name_hdmi:I
+Lcom/android/internal/R$string;->default_audio_route_name_headphones:I
+Lcom/android/internal/R$string;->default_audio_route_name_usb:I
+Lcom/android/internal/R$string;->default_browser:I
+Lcom/android/internal/R$string;->default_notification_channel_label:I
+Lcom/android/internal/R$string;->default_sms_application:I
+Lcom/android/internal/R$string;->default_wallpaper_component:I
+Lcom/android/internal/R$string;->delete:I
+Lcom/android/internal/R$string;->deleted_key:I
+Lcom/android/internal/R$string;->deleteText:I
+Lcom/android/internal/R$string;->demo_restarting_message:I
+Lcom/android/internal/R$string;->demo_starting_message:I
+Lcom/android/internal/R$string;->deprecated_target_sdk_app_store:I
+Lcom/android/internal/R$string;->deprecated_target_sdk_message:I
+Lcom/android/internal/R$string;->description_target_unlock_tablet:I
+Lcom/android/internal/R$string;->device_storage_monitor_notification_channel:I
+Lcom/android/internal/R$string;->dial:I
+Lcom/android/internal/R$string;->dialog_alert_title:I
+Lcom/android/internal/R$string;->dial_desc:I
+Lcom/android/internal/R$string;->dial_number_using:I
+Lcom/android/internal/R$string;->disable_accessibility_shortcut:I
+Lcom/android/internal/R$string;->disable_tether_notification_message:I
+Lcom/android/internal/R$string;->disable_tether_notification_title:I
+Lcom/android/internal/R$string;->display_manager_built_in_display_name:I
+Lcom/android/internal/R$string;->display_manager_hdmi_display_name:I
+Lcom/android/internal/R$string;->display_manager_overlay_display_name:I
+Lcom/android/internal/R$string;->display_manager_overlay_display_secure_suffix:I
+Lcom/android/internal/R$string;->display_manager_overlay_display_title:I
+Lcom/android/internal/R$string;->dlg_ok:I
+Lcom/android/internal/R$string;->done_label:I
+Lcom/android/internal/R$string;->double_tap_toast:I
+Lcom/android/internal/R$string;->dump_heap_notification:I
+Lcom/android/internal/R$string;->dump_heap_notification_detail:I
+Lcom/android/internal/R$string;->dump_heap_text:I
+Lcom/android/internal/R$string;->dump_heap_title:I
+Lcom/android/internal/R$string;->elapsed_time_short_format_h_mm_ss:I
+Lcom/android/internal/R$string;->elapsed_time_short_format_mm_ss:I
+Lcom/android/internal/R$string;->email:I
+Lcom/android/internal/R$string;->emailTypeCustom:I
+Lcom/android/internal/R$string;->emailTypeHome:I
+Lcom/android/internal/R$string;->emailTypeMobile:I
+Lcom/android/internal/R$string;->emailTypeOther:I
+Lcom/android/internal/R$string;->emailTypeWork:I
+Lcom/android/internal/R$string;->email_desc:I
+Lcom/android/internal/R$string;->EmergencyCallWarningSummary:I
+Lcom/android/internal/R$string;->EmergencyCallWarningTitle:I
+Lcom/android/internal/R$string;->emergency_calls_only:I
+Lcom/android/internal/R$string;->emergency_call_dialog_number_for_display:I
+Lcom/android/internal/R$string;->emptyPhoneNumber:I
+Lcom/android/internal/R$string;->enablePin:I
+Lcom/android/internal/R$string;->enable_explore_by_touch_warning_message:I
+Lcom/android/internal/R$string;->error_message_change_not_allowed:I
+Lcom/android/internal/R$string;->error_message_title:I
+Lcom/android/internal/R$string;->etws_primary_default_message_earthquake:I
+Lcom/android/internal/R$string;->etws_primary_default_message_earthquake_and_tsunami:I
+Lcom/android/internal/R$string;->etws_primary_default_message_others:I
+Lcom/android/internal/R$string;->etws_primary_default_message_test:I
+Lcom/android/internal/R$string;->etws_primary_default_message_tsunami:I
+Lcom/android/internal/R$string;->eventTypeAnniversary:I
+Lcom/android/internal/R$string;->eventTypeBirthday:I
+Lcom/android/internal/R$string;->eventTypeCustom:I
+Lcom/android/internal/R$string;->eventTypeOther:I
+Lcom/android/internal/R$string;->expand_action_accessibility:I
+Lcom/android/internal/R$string;->expand_button_content_description_collapsed:I
+Lcom/android/internal/R$string;->expand_button_content_description_expanded:I
+Lcom/android/internal/R$string;->ext_media_badremoval_notification_message:I
+Lcom/android/internal/R$string;->ext_media_badremoval_notification_title:I
+Lcom/android/internal/R$string;->ext_media_browse_action:I
+Lcom/android/internal/R$string;->ext_media_checking_notification_message:I
+Lcom/android/internal/R$string;->ext_media_checking_notification_title:I
+Lcom/android/internal/R$string;->ext_media_init_action:I
+Lcom/android/internal/R$string;->ext_media_missing_message:I
+Lcom/android/internal/R$string;->ext_media_missing_title:I
+Lcom/android/internal/R$string;->ext_media_move_failure_message:I
+Lcom/android/internal/R$string;->ext_media_move_failure_title:I
+Lcom/android/internal/R$string;->ext_media_move_specific_title:I
+Lcom/android/internal/R$string;->ext_media_move_success_message:I
+Lcom/android/internal/R$string;->ext_media_move_success_title:I
+Lcom/android/internal/R$string;->ext_media_move_title:I
+Lcom/android/internal/R$string;->ext_media_new_notification_message:I
+Lcom/android/internal/R$string;->ext_media_nomedia_notification_message:I
+Lcom/android/internal/R$string;->ext_media_nomedia_notification_title:I
+Lcom/android/internal/R$string;->ext_media_ready_notification_message:I
+Lcom/android/internal/R$string;->ext_media_status_bad_removal:I
+Lcom/android/internal/R$string;->ext_media_status_checking:I
+Lcom/android/internal/R$string;->ext_media_status_ejecting:I
+Lcom/android/internal/R$string;->ext_media_status_formatting:I
+Lcom/android/internal/R$string;->ext_media_status_missing:I
+Lcom/android/internal/R$string;->ext_media_status_mounted:I
+Lcom/android/internal/R$string;->ext_media_status_mounted_ro:I
+Lcom/android/internal/R$string;->ext_media_status_removed:I
+Lcom/android/internal/R$string;->ext_media_status_unmountable:I
+Lcom/android/internal/R$string;->ext_media_status_unmounted:I
+Lcom/android/internal/R$string;->ext_media_status_unsupported:I
+Lcom/android/internal/R$string;->ext_media_unmountable_notification_message:I
+Lcom/android/internal/R$string;->ext_media_unmountable_notification_title:I
+Lcom/android/internal/R$string;->ext_media_unmounting_notification_message:I
+Lcom/android/internal/R$string;->ext_media_unmounting_notification_title:I
+Lcom/android/internal/R$string;->ext_media_unmount_action:I
+Lcom/android/internal/R$string;->ext_media_unsupported_notification_message:I
+Lcom/android/internal/R$string;->ext_media_unsupported_notification_title:I
+Lcom/android/internal/R$string;->faceunlock_multiple_failures:I
+Lcom/android/internal/R$string;->factorytest_failed:I
+Lcom/android/internal/R$string;->factorytest_not_system:I
+Lcom/android/internal/R$string;->factorytest_no_action:I
+Lcom/android/internal/R$string;->factorytest_reboot:I
+Lcom/android/internal/R$string;->factory_reset_message:I
+Lcom/android/internal/R$string;->factory_reset_warning:I
+Lcom/android/internal/R$string;->failed_to_copy_to_clipboard:I
+Lcom/android/internal/R$string;->fast_scroll_alphabet:I
+Lcom/android/internal/R$string;->fileSizeSuffix:I
+Lcom/android/internal/R$string;->fingerprint_acquired_imager_dirty:I
+Lcom/android/internal/R$string;->fingerprint_acquired_insufficient:I
+Lcom/android/internal/R$string;->fingerprint_acquired_partial:I
+Lcom/android/internal/R$string;->fingerprint_acquired_too_fast:I
+Lcom/android/internal/R$string;->fingerprint_acquired_too_slow:I
+Lcom/android/internal/R$string;->fingerprint_authenticated:I
+Lcom/android/internal/R$string;->fingerprint_error_canceled:I
+Lcom/android/internal/R$string;->fingerprint_error_hw_not_available:I
+Lcom/android/internal/R$string;->fingerprint_error_hw_not_present:I
+Lcom/android/internal/R$string;->fingerprint_error_lockout:I
+Lcom/android/internal/R$string;->fingerprint_error_lockout_permanent:I
+Lcom/android/internal/R$string;->fingerprint_error_no_fingerprints:I
+Lcom/android/internal/R$string;->fingerprint_error_no_space:I
+Lcom/android/internal/R$string;->fingerprint_error_timeout:I
+Lcom/android/internal/R$string;->fingerprint_error_unable_to_process:I
+Lcom/android/internal/R$string;->fingerprint_error_user_canceled:I
+Lcom/android/internal/R$string;->fingerprint_icon_content_description:I
+Lcom/android/internal/R$string;->fingerprint_name_template:I
+Lcom/android/internal/R$string;->fingerprint_not_recognized:I
+Lcom/android/internal/R$string;->floating_toolbar_close_overflow_description:I
+Lcom/android/internal/R$string;->floating_toolbar_open_overflow_description:I
+Lcom/android/internal/R$string;->force_close:I
+Lcom/android/internal/R$string;->foreground_service_apps_in_background:I
+Lcom/android/internal/R$string;->foreground_service_app_in_background:I
+Lcom/android/internal/R$string;->foreground_service_multiple_separator:I
+Lcom/android/internal/R$string;->foreground_service_tap_for_details:I
+Lcom/android/internal/R$string;->forward_intent_to_owner:I
+Lcom/android/internal/R$string;->forward_intent_to_work:I
+Lcom/android/internal/R$string;->gadget_host_error_inflating:I
+Lcom/android/internal/R$string;->global_actions:I
+Lcom/android/internal/R$string;->global_actions_airplane_mode_off_status:I
+Lcom/android/internal/R$string;->global_actions_airplane_mode_on_status:I
+Lcom/android/internal/R$string;->global_actions_toggle_airplane_mode:I
+Lcom/android/internal/R$string;->global_action_assist:I
+Lcom/android/internal/R$string;->global_action_battery_saver_off_status:I
+Lcom/android/internal/R$string;->global_action_battery_saver_on_status:I
+Lcom/android/internal/R$string;->global_action_bug_report:I
+Lcom/android/internal/R$string;->global_action_emergency:I
+Lcom/android/internal/R$string;->global_action_lockdown:I
+Lcom/android/internal/R$string;->global_action_logout:I
+Lcom/android/internal/R$string;->global_action_power_off:I
+Lcom/android/internal/R$string;->global_action_restart:I
+Lcom/android/internal/R$string;->global_action_screenshot:I
+Lcom/android/internal/R$string;->global_action_settings:I
+Lcom/android/internal/R$string;->global_action_silent_mode_off_status:I
+Lcom/android/internal/R$string;->global_action_silent_mode_on_status:I
+Lcom/android/internal/R$string;->global_action_toggle_battery_saver:I
+Lcom/android/internal/R$string;->global_action_toggle_silent_mode:I
+Lcom/android/internal/R$string;->global_action_voice_assist:I
+Lcom/android/internal/R$string;->gpsNotifMessage:I
+Lcom/android/internal/R$string;->gpsNotifTicker:I
+Lcom/android/internal/R$string;->gpsNotifTitle:I
+Lcom/android/internal/R$string;->gpsVerifNo:I
+Lcom/android/internal/R$string;->gpsVerifYes:I
+Lcom/android/internal/R$string;->grant_permissions_header_text:I
+Lcom/android/internal/R$string;->granularity_label_character:I
+Lcom/android/internal/R$string;->granularity_label_line:I
+Lcom/android/internal/R$string;->granularity_label_link:I
+Lcom/android/internal/R$string;->granularity_label_word:I
+Lcom/android/internal/R$string;->gsm_alphabet_default_charset:I
+Lcom/android/internal/R$string;->hardware:I
+Lcom/android/internal/R$string;->harmful_app_warning_open_anyway:I
+Lcom/android/internal/R$string;->harmful_app_warning_title:I
+Lcom/android/internal/R$string;->harmful_app_warning_uninstall:I
+Lcom/android/internal/R$string;->heavy_weight_notification:I
+Lcom/android/internal/R$string;->heavy_weight_notification_detail:I
+Lcom/android/internal/R$string;->hour_picker_description:I
+Lcom/android/internal/R$string;->httpError:I
+Lcom/android/internal/R$string;->httpErrorAuth:I
+Lcom/android/internal/R$string;->httpErrorBadUrl:I
+Lcom/android/internal/R$string;->httpErrorConnect:I
+Lcom/android/internal/R$string;->httpErrorFailedSslHandshake:I
+Lcom/android/internal/R$string;->httpErrorFile:I
+Lcom/android/internal/R$string;->httpErrorFileNotFound:I
+Lcom/android/internal/R$string;->httpErrorIO:I
+Lcom/android/internal/R$string;->httpErrorLookup:I
+Lcom/android/internal/R$string;->httpErrorOk:I
+Lcom/android/internal/R$string;->httpErrorProxyAuth:I
+Lcom/android/internal/R$string;->httpErrorRedirectLoop:I
+Lcom/android/internal/R$string;->httpErrorTimeout:I
+Lcom/android/internal/R$string;->httpErrorTooManyRequests:I
+Lcom/android/internal/R$string;->httpErrorUnsupportedAuthScheme:I
+Lcom/android/internal/R$string;->httpErrorUnsupportedScheme:I
+Lcom/android/internal/R$string;->image_wallpaper_component:I
+Lcom/android/internal/R$string;->imei:I
+Lcom/android/internal/R$string;->ime_action_default:I
+Lcom/android/internal/R$string;->ime_action_done:I
+Lcom/android/internal/R$string;->ime_action_go:I
+Lcom/android/internal/R$string;->ime_action_next:I
+Lcom/android/internal/R$string;->ime_action_previous:I
+Lcom/android/internal/R$string;->ime_action_search:I
+Lcom/android/internal/R$string;->ime_action_send:I
+Lcom/android/internal/R$string;->importance_from_person:I
+Lcom/android/internal/R$string;->importance_from_user:I
+Lcom/android/internal/R$string;->imProtocolAim:I
+Lcom/android/internal/R$string;->imProtocolCustom:I
+Lcom/android/internal/R$string;->imProtocolGoogleTalk:I
+Lcom/android/internal/R$string;->imProtocolIcq:I
+Lcom/android/internal/R$string;->imProtocolJabber:I
+Lcom/android/internal/R$string;->imProtocolMsn:I
+Lcom/android/internal/R$string;->imProtocolNetMeeting:I
+Lcom/android/internal/R$string;->imProtocolQq:I
+Lcom/android/internal/R$string;->imProtocolSkype:I
+Lcom/android/internal/R$string;->imProtocolYahoo:I
+Lcom/android/internal/R$string;->imTypeCustom:I
+Lcom/android/internal/R$string;->imTypeHome:I
+Lcom/android/internal/R$string;->imTypeOther:I
+Lcom/android/internal/R$string;->imTypeWork:I
+Lcom/android/internal/R$string;->inputMethod:I
+Lcom/android/internal/R$string;->input_method_binding_label:I
+Lcom/android/internal/R$string;->install_carrier_app_notification_button:I
+Lcom/android/internal/R$string;->install_carrier_app_notification_text:I
+Lcom/android/internal/R$string;->install_carrier_app_notification_text_app_name:I
+Lcom/android/internal/R$string;->install_carrier_app_notification_title:I
+Lcom/android/internal/R$string;->invalidPin:I
+Lcom/android/internal/R$string;->invalidPuk:I
+Lcom/android/internal/R$string;->js_dialog_before_unload:I
+Lcom/android/internal/R$string;->js_dialog_before_unload_negative_button:I
+Lcom/android/internal/R$string;->js_dialog_before_unload_positive_button:I
+Lcom/android/internal/R$string;->js_dialog_before_unload_title:I
+Lcom/android/internal/R$string;->js_dialog_title:I
+Lcom/android/internal/R$string;->js_dialog_title_default:I
+Lcom/android/internal/R$string;->keyboardview_keycode_alt:I
+Lcom/android/internal/R$string;->keyboardview_keycode_cancel:I
+Lcom/android/internal/R$string;->keyboardview_keycode_delete:I
+Lcom/android/internal/R$string;->keyboardview_keycode_done:I
+Lcom/android/internal/R$string;->keyboardview_keycode_enter:I
+Lcom/android/internal/R$string;->keyboardview_keycode_mode_change:I
+Lcom/android/internal/R$string;->keyboardview_keycode_shift:I
+Lcom/android/internal/R$string;->keyguard_accessibility_password_unlock:I
+Lcom/android/internal/R$string;->keyguard_accessibility_pattern_unlock:I
+Lcom/android/internal/R$string;->keyguard_accessibility_pin_unlock:I
+Lcom/android/internal/R$string;->keyguard_accessibility_sim_pin_unlock:I
+Lcom/android/internal/R$string;->keyguard_accessibility_sim_puk_unlock:I
+Lcom/android/internal/R$string;->kg_text_message_separator:I
+Lcom/android/internal/R$string;->language_picker_section_all:I
+Lcom/android/internal/R$string;->language_picker_section_suggested:I
+Lcom/android/internal/R$string;->language_selection_title:I
+Lcom/android/internal/R$string;->last_month:I
+Lcom/android/internal/R$string;->launchBrowserDefault:I
+Lcom/android/internal/R$string;->launch_warning_original:I
+Lcom/android/internal/R$string;->launch_warning_replace:I
+Lcom/android/internal/R$string;->launch_warning_title:I
+Lcom/android/internal/R$string;->leave_accessibility_shortcut_on:I
+Lcom/android/internal/R$string;->lockscreen_access_pattern_area:I
+Lcom/android/internal/R$string;->lockscreen_access_pattern_cell_added:I
+Lcom/android/internal/R$string;->lockscreen_access_pattern_cell_added_verbose:I
+Lcom/android/internal/R$string;->lockscreen_access_pattern_cleared:I
+Lcom/android/internal/R$string;->lockscreen_access_pattern_detected:I
+Lcom/android/internal/R$string;->lockscreen_access_pattern_start:I
+Lcom/android/internal/R$string;->lockscreen_carrier_default:I
+Lcom/android/internal/R$string;->lockscreen_emergency_call:I
+Lcom/android/internal/R$string;->lockscreen_return_to_call:I
+Lcom/android/internal/R$string;->lockscreen_storage_locked:I
+Lcom/android/internal/R$string;->lockscreen_transport_pause_description:I
+Lcom/android/internal/R$string;->lockscreen_transport_play_description:I
+Lcom/android/internal/R$string;->lock_to_app_unlock_password:I
+Lcom/android/internal/R$string;->lock_to_app_unlock_pattern:I
+Lcom/android/internal/R$string;->lock_to_app_unlock_pin:I
+Lcom/android/internal/R$string;->low_internal_storage_view_text:I
+Lcom/android/internal/R$string;->low_internal_storage_view_text_no_boot:I
+Lcom/android/internal/R$string;->low_internal_storage_view_title:I
+Lcom/android/internal/R$string;->low_memory:I
+Lcom/android/internal/R$string;->managed_profile_label:I
+Lcom/android/internal/R$string;->managed_profile_label_badge:I
+Lcom/android/internal/R$string;->managed_profile_label_badge_2:I
+Lcom/android/internal/R$string;->managed_profile_label_badge_3:I
+Lcom/android/internal/R$string;->map_desc:I
+Lcom/android/internal/R$string;->mediasize_chinese_om_dai_pa_kai:I
+Lcom/android/internal/R$string;->mediasize_chinese_om_jurro_ku_kai:I
+Lcom/android/internal/R$string;->mediasize_chinese_om_pa_kai:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_10:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_16k:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_1:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_2:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_3:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_4:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_5:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_6:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_7:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_8:I
+Lcom/android/internal/R$string;->mediasize_chinese_prc_9:I
+Lcom/android/internal/R$string;->mediasize_chinese_roc_16k:I
+Lcom/android/internal/R$string;->mediasize_chinese_roc_8k:I
+Lcom/android/internal/R$string;->mediasize_iso_a0:I
+Lcom/android/internal/R$string;->mediasize_iso_a10:I
+Lcom/android/internal/R$string;->mediasize_iso_a1:I
+Lcom/android/internal/R$string;->mediasize_iso_a2:I
+Lcom/android/internal/R$string;->mediasize_iso_a3:I
+Lcom/android/internal/R$string;->mediasize_iso_a4:I
+Lcom/android/internal/R$string;->mediasize_iso_a5:I
+Lcom/android/internal/R$string;->mediasize_iso_a6:I
+Lcom/android/internal/R$string;->mediasize_iso_a7:I
+Lcom/android/internal/R$string;->mediasize_iso_a8:I
+Lcom/android/internal/R$string;->mediasize_iso_a9:I
+Lcom/android/internal/R$string;->mediasize_iso_b0:I
+Lcom/android/internal/R$string;->mediasize_iso_b10:I
+Lcom/android/internal/R$string;->mediasize_iso_b1:I
+Lcom/android/internal/R$string;->mediasize_iso_b2:I
+Lcom/android/internal/R$string;->mediasize_iso_b3:I
+Lcom/android/internal/R$string;->mediasize_iso_b4:I
+Lcom/android/internal/R$string;->mediasize_iso_b5:I
+Lcom/android/internal/R$string;->mediasize_iso_b6:I
+Lcom/android/internal/R$string;->mediasize_iso_b7:I
+Lcom/android/internal/R$string;->mediasize_iso_b8:I
+Lcom/android/internal/R$string;->mediasize_iso_b9:I
+Lcom/android/internal/R$string;->mediasize_iso_c0:I
+Lcom/android/internal/R$string;->mediasize_iso_c10:I
+Lcom/android/internal/R$string;->mediasize_iso_c1:I
+Lcom/android/internal/R$string;->mediasize_iso_c2:I
+Lcom/android/internal/R$string;->mediasize_iso_c3:I
+Lcom/android/internal/R$string;->mediasize_iso_c4:I
+Lcom/android/internal/R$string;->mediasize_iso_c5:I
+Lcom/android/internal/R$string;->mediasize_iso_c6:I
+Lcom/android/internal/R$string;->mediasize_iso_c7:I
+Lcom/android/internal/R$string;->mediasize_iso_c8:I
+Lcom/android/internal/R$string;->mediasize_iso_c9:I
+Lcom/android/internal/R$string;->mediasize_japanese_chou2:I
+Lcom/android/internal/R$string;->mediasize_japanese_chou3:I
+Lcom/android/internal/R$string;->mediasize_japanese_chou4:I
+Lcom/android/internal/R$string;->mediasize_japanese_hagaki:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b0:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b10:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b1:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b2:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b3:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b4:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b5:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b6:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b7:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b8:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_b9:I
+Lcom/android/internal/R$string;->mediasize_japanese_jis_exec:I
+Lcom/android/internal/R$string;->mediasize_japanese_kahu:I
+Lcom/android/internal/R$string;->mediasize_japanese_kaku2:I
+Lcom/android/internal/R$string;->mediasize_japanese_oufuku:I
+Lcom/android/internal/R$string;->mediasize_japanese_you4:I
+Lcom/android/internal/R$string;->mediasize_na_foolscap:I
+Lcom/android/internal/R$string;->mediasize_na_gvrnmt_letter:I
+Lcom/android/internal/R$string;->mediasize_na_index_3x5:I
+Lcom/android/internal/R$string;->mediasize_na_index_4x6:I
+Lcom/android/internal/R$string;->mediasize_na_index_5x8:I
+Lcom/android/internal/R$string;->mediasize_na_junior_legal:I
+Lcom/android/internal/R$string;->mediasize_na_ledger:I
+Lcom/android/internal/R$string;->mediasize_na_legal:I
+Lcom/android/internal/R$string;->mediasize_na_letter:I
+Lcom/android/internal/R$string;->mediasize_na_monarch:I
+Lcom/android/internal/R$string;->mediasize_na_quarto:I
+Lcom/android/internal/R$string;->mediasize_na_tabloid:I
+Lcom/android/internal/R$string;->mediasize_unknown_landscape:I
+Lcom/android/internal/R$string;->mediasize_unknown_portrait:I
+Lcom/android/internal/R$string;->media_route_chooser_title:I
+Lcom/android/internal/R$string;->media_route_chooser_title_for_remote_display:I
+Lcom/android/internal/R$string;->media_route_controller_disconnect:I
+Lcom/android/internal/R$string;->media_route_status_available:I
+Lcom/android/internal/R$string;->media_route_status_connecting:I
+Lcom/android/internal/R$string;->media_route_status_in_use:I
+Lcom/android/internal/R$string;->media_route_status_not_available:I
+Lcom/android/internal/R$string;->media_route_status_scanning:I
+Lcom/android/internal/R$string;->meid:I
+Lcom/android/internal/R$string;->menu_alt_shortcut_label:I
+Lcom/android/internal/R$string;->menu_ctrl_shortcut_label:I
+Lcom/android/internal/R$string;->menu_delete_shortcut_label:I
+Lcom/android/internal/R$string;->menu_enter_shortcut_label:I
+Lcom/android/internal/R$string;->menu_function_shortcut_label:I
+Lcom/android/internal/R$string;->menu_meta_shortcut_label:I
+Lcom/android/internal/R$string;->menu_shift_shortcut_label:I
+Lcom/android/internal/R$string;->menu_space_shortcut_label:I
+Lcom/android/internal/R$string;->menu_sym_shortcut_label:I
+Lcom/android/internal/R$string;->Midnight:I
+Lcom/android/internal/R$string;->midnight:I
+Lcom/android/internal/R$string;->minute_picker_description:I
+Lcom/android/internal/R$string;->mismatchPin:I
+Lcom/android/internal/R$string;->mmcc_authentication_reject:I
+Lcom/android/internal/R$string;->mmcc_authentication_reject_msim_template:I
+Lcom/android/internal/R$string;->mmcc_illegal_me:I
+Lcom/android/internal/R$string;->mmcc_illegal_me_msim_template:I
+Lcom/android/internal/R$string;->mmcc_illegal_ms:I
+Lcom/android/internal/R$string;->mmcc_illegal_ms_msim_template:I
+Lcom/android/internal/R$string;->mmcc_imsi_unknown_in_hlr:I
+Lcom/android/internal/R$string;->mmcc_imsi_unknown_in_hlr_msim_template:I
+Lcom/android/internal/R$string;->mmiComplete:I
+Lcom/android/internal/R$string;->mmiError:I
+Lcom/android/internal/R$string;->mmiErrorWhileRoaming:I
+Lcom/android/internal/R$string;->mmiFdnError:I
+Lcom/android/internal/R$string;->mobile_provisioning_apn:I
+Lcom/android/internal/R$string;->mobile_provisioning_url:I
+Lcom/android/internal/R$string;->month_day_year:I
+Lcom/android/internal/R$string;->more_item_label:I
+Lcom/android/internal/R$string;->muted_by:I
+Lcom/android/internal/R$string;->needPuk2:I
+Lcom/android/internal/R$string;->needPuk:I
+Lcom/android/internal/R$string;->negative_duration:I
+Lcom/android/internal/R$string;->NetworkPreferenceSwitchSummary:I
+Lcom/android/internal/R$string;->NetworkPreferenceSwitchTitle:I
+Lcom/android/internal/R$string;->network_available_sign_in:I
+Lcom/android/internal/R$string;->network_available_sign_in_detailed:I
+Lcom/android/internal/R$string;->network_logging_notification_text:I
+Lcom/android/internal/R$string;->network_logging_notification_title:I
+Lcom/android/internal/R$string;->network_switch_metered:I
+Lcom/android/internal/R$string;->network_switch_metered_detail:I
+Lcom/android/internal/R$string;->network_switch_metered_toast:I
+Lcom/android/internal/R$string;->network_switch_type_name_unknown:I
+Lcom/android/internal/R$string;->new_app_action:I
+Lcom/android/internal/R$string;->new_app_description:I
+Lcom/android/internal/R$string;->new_sms_notification_content:I
+Lcom/android/internal/R$string;->new_sms_notification_title:I
+Lcom/android/internal/R$string;->no:I
+Lcom/android/internal/R$string;->noApplications:I
+Lcom/android/internal/R$string;->Noon:I
+Lcom/android/internal/R$string;->noon:I
+Lcom/android/internal/R$string;->notification_app_name_settings:I
+Lcom/android/internal/R$string;->notification_app_name_system:I
+Lcom/android/internal/R$string;->notification_channel_account:I
+Lcom/android/internal/R$string;->notification_channel_alerts:I
+Lcom/android/internal/R$string;->notification_channel_call_forward:I
+Lcom/android/internal/R$string;->notification_channel_car_mode:I
+Lcom/android/internal/R$string;->notification_channel_developer:I
+Lcom/android/internal/R$string;->notification_channel_device_admin:I
+Lcom/android/internal/R$string;->notification_channel_do_not_disturb:I
+Lcom/android/internal/R$string;->notification_channel_emergency_callback:I
+Lcom/android/internal/R$string;->notification_channel_foreground_service:I
+Lcom/android/internal/R$string;->notification_channel_heavy_weight_app:I
+Lcom/android/internal/R$string;->notification_channel_mobile_data_status:I
+Lcom/android/internal/R$string;->notification_channel_network_alert:I
+Lcom/android/internal/R$string;->notification_channel_network_alerts:I
+Lcom/android/internal/R$string;->notification_channel_network_available:I
+Lcom/android/internal/R$string;->notification_channel_network_status:I
+Lcom/android/internal/R$string;->notification_channel_physical_keyboard:I
+Lcom/android/internal/R$string;->notification_channel_retail_mode:I
+Lcom/android/internal/R$string;->notification_channel_security:I
+Lcom/android/internal/R$string;->notification_channel_sim:I
+Lcom/android/internal/R$string;->notification_channel_sms:I
+Lcom/android/internal/R$string;->notification_channel_system_changes:I
+Lcom/android/internal/R$string;->notification_channel_updates:I
+Lcom/android/internal/R$string;->notification_channel_usb:I
+Lcom/android/internal/R$string;->notification_channel_virtual_keyboard:I
+Lcom/android/internal/R$string;->notification_channel_voice_mail:I
+Lcom/android/internal/R$string;->notification_channel_vpn:I
+Lcom/android/internal/R$string;->notification_channel_wfc:I
+Lcom/android/internal/R$string;->notification_header_divider_symbol_with_spaces:I
+Lcom/android/internal/R$string;->notification_hidden_text:I
+Lcom/android/internal/R$string;->notification_inbox_ellipsis:I
+Lcom/android/internal/R$string;->notification_listener_binding_label:I
+Lcom/android/internal/R$string;->notification_messaging_title_template:I
+Lcom/android/internal/R$string;->notification_ranker_binding_label:I
+Lcom/android/internal/R$string;->now_string_shortest:I
+Lcom/android/internal/R$string;->no_file_chosen:I
+Lcom/android/internal/R$string;->number_picker_increment_scroll_action:I
+Lcom/android/internal/R$string;->number_picker_increment_scroll_mode:I
+Lcom/android/internal/R$string;->older:I
+Lcom/android/internal/R$string;->old_app_action:I
+Lcom/android/internal/R$string;->open_permission_deny:I
+Lcom/android/internal/R$string;->orgTypeCustom:I
+Lcom/android/internal/R$string;->orgTypeOther:I
+Lcom/android/internal/R$string;->orgTypeWork:I
+Lcom/android/internal/R$string;->owner_name:I
+Lcom/android/internal/R$string;->package_deleted_device_owner:I
+Lcom/android/internal/R$string;->package_installed_device_owner:I
+Lcom/android/internal/R$string;->package_updated_device_owner:I
+Lcom/android/internal/R$string;->passwordIncorrect:I
+Lcom/android/internal/R$string;->paste:I
+Lcom/android/internal/R$string;->paste_as_plain_text:I
+Lcom/android/internal/R$string;->peerTtyModeFull:I
+Lcom/android/internal/R$string;->peerTtyModeHco:I
+Lcom/android/internal/R$string;->peerTtyModeOff:I
+Lcom/android/internal/R$string;->peerTtyModeVco:I
+Lcom/android/internal/R$string;->permission_request_notification_with_subtitle:I
+Lcom/android/internal/R$string;->perms_description_app:I
+Lcom/android/internal/R$string;->perms_new_perm_prefix:I
+Lcom/android/internal/R$string;->phoneTypeAssistant:I
+Lcom/android/internal/R$string;->phoneTypeCallback:I
+Lcom/android/internal/R$string;->phoneTypeCar:I
+Lcom/android/internal/R$string;->phoneTypeCompanyMain:I
+Lcom/android/internal/R$string;->phoneTypeCustom:I
+Lcom/android/internal/R$string;->phoneTypeFaxHome:I
+Lcom/android/internal/R$string;->phoneTypeFaxWork:I
+Lcom/android/internal/R$string;->phoneTypeHome:I
+Lcom/android/internal/R$string;->phoneTypeIsdn:I
+Lcom/android/internal/R$string;->phoneTypeMain:I
+Lcom/android/internal/R$string;->phoneTypeMms:I
+Lcom/android/internal/R$string;->phoneTypeMobile:I
+Lcom/android/internal/R$string;->phoneTypeOther:I
+Lcom/android/internal/R$string;->phoneTypeOtherFax:I
+Lcom/android/internal/R$string;->phoneTypePager:I
+Lcom/android/internal/R$string;->phoneTypeRadio:I
+Lcom/android/internal/R$string;->phoneTypeTelex:I
+Lcom/android/internal/R$string;->phoneTypeTtyTdd:I
+Lcom/android/internal/R$string;->phoneTypeWork:I
+Lcom/android/internal/R$string;->phoneTypeWorkMobile:I
+Lcom/android/internal/R$string;->phoneTypeWorkPager:I
+Lcom/android/internal/R$string;->PinMmi:I
+Lcom/android/internal/R$string;->policydesc_disableCamera:I
+Lcom/android/internal/R$string;->policydesc_disableKeyguardFeatures:I
+Lcom/android/internal/R$string;->policydesc_encryptedStorage:I
+Lcom/android/internal/R$string;->policydesc_expirePassword:I
+Lcom/android/internal/R$string;->policydesc_forceLock:I
+Lcom/android/internal/R$string;->policydesc_limitPassword:I
+Lcom/android/internal/R$string;->policydesc_resetPassword:I
+Lcom/android/internal/R$string;->policydesc_setGlobalProxy:I
+Lcom/android/internal/R$string;->policydesc_watchLogin:I
+Lcom/android/internal/R$string;->policydesc_watchLogin_secondaryUser:I
+Lcom/android/internal/R$string;->policydesc_wipeData:I
+Lcom/android/internal/R$string;->policydesc_wipeData_secondaryUser:I
+Lcom/android/internal/R$string;->policylab_disableCamera:I
+Lcom/android/internal/R$string;->policylab_disableKeyguardFeatures:I
+Lcom/android/internal/R$string;->policylab_encryptedStorage:I
+Lcom/android/internal/R$string;->policylab_expirePassword:I
+Lcom/android/internal/R$string;->policylab_forceLock:I
+Lcom/android/internal/R$string;->policylab_limitPassword:I
+Lcom/android/internal/R$string;->policylab_resetPassword:I
+Lcom/android/internal/R$string;->policylab_setGlobalProxy:I
+Lcom/android/internal/R$string;->policylab_watchLogin:I
+Lcom/android/internal/R$string;->policylab_wipeData:I
+Lcom/android/internal/R$string;->policylab_wipeData_secondaryUser:I
+Lcom/android/internal/R$string;->popup_window_default_title:I
+Lcom/android/internal/R$string;->postalTypeCustom:I
+Lcom/android/internal/R$string;->postalTypeHome:I
+Lcom/android/internal/R$string;->postalTypeOther:I
+Lcom/android/internal/R$string;->postalTypeWork:I
+Lcom/android/internal/R$string;->power_off:I
+Lcom/android/internal/R$string;->prepend_shortcut_label:I
+Lcom/android/internal/R$string;->preposition_for_date:I
+Lcom/android/internal/R$string;->preposition_for_time:I
+Lcom/android/internal/R$string;->printing_disabled_by:I
+Lcom/android/internal/R$string;->print_service_installed_message:I
+Lcom/android/internal/R$string;->print_service_installed_title:I
+Lcom/android/internal/R$string;->profile_encrypted_detail:I
+Lcom/android/internal/R$string;->profile_encrypted_message:I
+Lcom/android/internal/R$string;->progress_erasing:I
+Lcom/android/internal/R$string;->prohibit_manual_network_selection_in_gobal_mode:I
+Lcom/android/internal/R$string;->PwdMmi:I
+Lcom/android/internal/R$string;->quick_contacts_not_available:I
+Lcom/android/internal/R$string;->radial_numbers_typeface:I
+Lcom/android/internal/R$string;->reason_service_unavailable:I
+Lcom/android/internal/R$string;->reason_unknown:I
+Lcom/android/internal/R$string;->reboot_safemode_confirm:I
+Lcom/android/internal/R$string;->reboot_safemode_title:I
+Lcom/android/internal/R$string;->reboot_to_reset_message:I
+Lcom/android/internal/R$string;->reboot_to_reset_title:I
+Lcom/android/internal/R$string;->reboot_to_update_package:I
+Lcom/android/internal/R$string;->reboot_to_update_prepare:I
+Lcom/android/internal/R$string;->reboot_to_update_reboot:I
+Lcom/android/internal/R$string;->reboot_to_update_title:I
+Lcom/android/internal/R$string;->region_picker_section_all:I
+Lcom/android/internal/R$string;->relationTypeAssistant:I
+Lcom/android/internal/R$string;->relationTypeBrother:I
+Lcom/android/internal/R$string;->relationTypeChild:I
+Lcom/android/internal/R$string;->relationTypeDomesticPartner:I
+Lcom/android/internal/R$string;->relationTypeFather:I
+Lcom/android/internal/R$string;->relationTypeFriend:I
+Lcom/android/internal/R$string;->relationTypeManager:I
+Lcom/android/internal/R$string;->relationTypeMother:I
+Lcom/android/internal/R$string;->relationTypeParent:I
+Lcom/android/internal/R$string;->relationTypePartner:I
+Lcom/android/internal/R$string;->relationTypeReferredBy:I
+Lcom/android/internal/R$string;->relationTypeRelative:I
+Lcom/android/internal/R$string;->relationTypeSister:I
+Lcom/android/internal/R$string;->relationTypeSpouse:I
+Lcom/android/internal/R$string;->relative_time:I
+Lcom/android/internal/R$string;->replace:I
+Lcom/android/internal/R$string;->report:I
+Lcom/android/internal/R$string;->reset:I
+Lcom/android/internal/R$string;->RestrictedOnAllVoiceTitle:I
+Lcom/android/internal/R$string;->RestrictedOnDataTitle:I
+Lcom/android/internal/R$string;->RestrictedOnEmergencyTitle:I
+Lcom/android/internal/R$string;->RestrictedOnNormalTitle:I
+Lcom/android/internal/R$string;->RestrictedStateContent:I
+Lcom/android/internal/R$string;->RestrictedStateContentMsimTemplate:I
+Lcom/android/internal/R$string;->restr_pin_enter_admin_pin:I
+Lcom/android/internal/R$string;->restr_pin_enter_pin:I
+Lcom/android/internal/R$string;->restr_pin_incorrect:I
+Lcom/android/internal/R$string;->restr_pin_try_later:I
+Lcom/android/internal/R$string;->revoke:I
+Lcom/android/internal/R$string;->ringtone_default:I
+Lcom/android/internal/R$string;->ringtone_default_with_actual:I
+Lcom/android/internal/R$string;->ringtone_picker_title:I
+Lcom/android/internal/R$string;->ringtone_picker_title_alarm:I
+Lcom/android/internal/R$string;->ringtone_picker_title_notification:I
+Lcom/android/internal/R$string;->ringtone_silent:I
+Lcom/android/internal/R$string;->ringtone_unknown:I
+Lcom/android/internal/R$string;->roamingText0:I
+Lcom/android/internal/R$string;->roamingText10:I
+Lcom/android/internal/R$string;->roamingText11:I
+Lcom/android/internal/R$string;->roamingText12:I
+Lcom/android/internal/R$string;->roamingText1:I
+Lcom/android/internal/R$string;->roamingText2:I
+Lcom/android/internal/R$string;->roamingText3:I
+Lcom/android/internal/R$string;->roamingText4:I
+Lcom/android/internal/R$string;->roamingText5:I
+Lcom/android/internal/R$string;->roamingText6:I
+Lcom/android/internal/R$string;->roamingText7:I
+Lcom/android/internal/R$string;->roamingText8:I
+Lcom/android/internal/R$string;->roamingText9:I
+Lcom/android/internal/R$string;->roamingTextSearching:I
+Lcom/android/internal/R$string;->safe_media_volume_warning:I
+Lcom/android/internal/R$string;->sans_serif:I
+Lcom/android/internal/R$string;->save_password_label:I
+Lcom/android/internal/R$string;->save_password_message:I
+Lcom/android/internal/R$string;->save_password_never:I
+Lcom/android/internal/R$string;->save_password_notnow:I
+Lcom/android/internal/R$string;->save_password_remember:I
+Lcom/android/internal/R$string;->screenshot_edit:I
+Lcom/android/internal/R$string;->search_go:I
+Lcom/android/internal/R$string;->search_language_hint:I
+Lcom/android/internal/R$string;->selectAll:I
+Lcom/android/internal/R$string;->selectTextMode:I
+Lcom/android/internal/R$string;->select_day:I
+Lcom/android/internal/R$string;->select_hours:I
+Lcom/android/internal/R$string;->select_input_method:I
+Lcom/android/internal/R$string;->select_keyboard_layout_notification_message:I
+Lcom/android/internal/R$string;->select_keyboard_layout_notification_title:I
+Lcom/android/internal/R$string;->select_minutes:I
+Lcom/android/internal/R$string;->select_year:I
+Lcom/android/internal/R$string;->sending:I
+Lcom/android/internal/R$string;->sendText:I
+Lcom/android/internal/R$string;->serviceClassData:I
+Lcom/android/internal/R$string;->serviceClassDataAsync:I
+Lcom/android/internal/R$string;->serviceClassDataSync:I
+Lcom/android/internal/R$string;->serviceClassFAX:I
+Lcom/android/internal/R$string;->serviceClassPacket:I
+Lcom/android/internal/R$string;->serviceClassPAD:I
+Lcom/android/internal/R$string;->serviceClassSMS:I
+Lcom/android/internal/R$string;->serviceClassVoice:I
+Lcom/android/internal/R$string;->serviceDisabled:I
+Lcom/android/internal/R$string;->serviceEnabled:I
+Lcom/android/internal/R$string;->serviceEnabledFor:I
+Lcom/android/internal/R$string;->serviceErased:I
+Lcom/android/internal/R$string;->serviceNotProvisioned:I
+Lcom/android/internal/R$string;->serviceRegistered:I
+Lcom/android/internal/R$string;->SetupCallDefault:I
+Lcom/android/internal/R$string;->setup_autofill:I
+Lcom/android/internal/R$string;->shareactionprovider_share_with:I
+Lcom/android/internal/R$string;->shareactionprovider_share_with_application:I
+Lcom/android/internal/R$string;->share_remote_bugreport_action:I
+Lcom/android/internal/R$string;->share_remote_bugreport_notification_message_finished:I
+Lcom/android/internal/R$string;->share_remote_bugreport_notification_title:I
+Lcom/android/internal/R$string;->sharing_remote_bugreport_notification_title:I
+Lcom/android/internal/R$string;->shortcut_disabled_reason_unknown:I
+Lcom/android/internal/R$string;->shortcut_restored_on_lower_version:I
+Lcom/android/internal/R$string;->shortcut_restore_not_supported:I
+Lcom/android/internal/R$string;->shortcut_restore_signature_mismatch:I
+Lcom/android/internal/R$string;->shortcut_restore_unknown_issue:I
+Lcom/android/internal/R$string;->shutdown_confirm:I
+Lcom/android/internal/R$string;->shutdown_confirm_question:I
+Lcom/android/internal/R$string;->shutdown_progress:I
+Lcom/android/internal/R$string;->sim_added_message:I
+Lcom/android/internal/R$string;->sim_added_title:I
+Lcom/android/internal/R$string;->sim_removed_message:I
+Lcom/android/internal/R$string;->sim_removed_title:I
+Lcom/android/internal/R$string;->sim_restart_button:I
+Lcom/android/internal/R$string;->sipAddressTypeCustom:I
+Lcom/android/internal/R$string;->sipAddressTypeHome:I
+Lcom/android/internal/R$string;->sipAddressTypeOther:I
+Lcom/android/internal/R$string;->sipAddressTypeWork:I
+Lcom/android/internal/R$string;->slices_permission_request:I
+Lcom/android/internal/R$string;->slice_more_content:I
+Lcom/android/internal/R$string;->sms:I
+Lcom/android/internal/R$string;->sms_control_message:I
+Lcom/android/internal/R$string;->sms_control_no:I
+Lcom/android/internal/R$string;->sms_control_title:I
+Lcom/android/internal/R$string;->sms_control_yes:I
+Lcom/android/internal/R$string;->sms_desc:I
+Lcom/android/internal/R$string;->sms_premium_short_code_details:I
+Lcom/android/internal/R$string;->sms_short_code_confirm_allow:I
+Lcom/android/internal/R$string;->sms_short_code_confirm_always_allow:I
+Lcom/android/internal/R$string;->sms_short_code_confirm_deny:I
+Lcom/android/internal/R$string;->sms_short_code_confirm_message:I
+Lcom/android/internal/R$string;->sms_short_code_confirm_never_allow:I
+Lcom/android/internal/R$string;->sms_short_code_details:I
+Lcom/android/internal/R$string;->sms_short_code_remember_undo_instruction:I
+Lcom/android/internal/R$string;->smv_application:I
+Lcom/android/internal/R$string;->smv_process:I
+Lcom/android/internal/R$string;->ssl_ca_cert_noti_by_administrator:I
+Lcom/android/internal/R$string;->ssl_ca_cert_noti_by_unknown:I
+Lcom/android/internal/R$string;->ssl_ca_cert_noti_managed:I
+Lcom/android/internal/R$string;->ssl_certificate:I
+Lcom/android/internal/R$string;->ssl_certificate_is_valid:I
+Lcom/android/internal/R$string;->status_bar_airplane:I
+Lcom/android/internal/R$string;->status_bar_alarm_clock:I
+Lcom/android/internal/R$string;->status_bar_battery:I
+Lcom/android/internal/R$string;->status_bar_bluetooth:I
+Lcom/android/internal/R$string;->status_bar_cast:I
+Lcom/android/internal/R$string;->status_bar_cdma_eri:I
+Lcom/android/internal/R$string;->status_bar_clock:I
+Lcom/android/internal/R$string;->status_bar_data_connection:I
+Lcom/android/internal/R$string;->status_bar_data_saver:I
+Lcom/android/internal/R$string;->status_bar_ethernet:I
+Lcom/android/internal/R$string;->status_bar_headset:I
+Lcom/android/internal/R$string;->status_bar_hotspot:I
+Lcom/android/internal/R$string;->status_bar_ime:I
+Lcom/android/internal/R$string;->status_bar_location:I
+Lcom/android/internal/R$string;->status_bar_managed_profile:I
+Lcom/android/internal/R$string;->status_bar_mobile:I
+Lcom/android/internal/R$string;->status_bar_mute:I
+Lcom/android/internal/R$string;->status_bar_nfc:I
+Lcom/android/internal/R$string;->status_bar_notification_info_overflow:I
+Lcom/android/internal/R$string;->status_bar_phone_evdo_signal:I
+Lcom/android/internal/R$string;->status_bar_phone_signal:I
+Lcom/android/internal/R$string;->status_bar_rotate:I
+Lcom/android/internal/R$string;->status_bar_secure:I
+Lcom/android/internal/R$string;->status_bar_speakerphone:I
+Lcom/android/internal/R$string;->status_bar_sync_active:I
+Lcom/android/internal/R$string;->status_bar_sync_failing:I
+Lcom/android/internal/R$string;->status_bar_tty:I
+Lcom/android/internal/R$string;->status_bar_volume:I
+Lcom/android/internal/R$string;->status_bar_vpn:I
+Lcom/android/internal/R$string;->status_bar_wifi:I
+Lcom/android/internal/R$string;->status_bar_zen:I
+Lcom/android/internal/R$string;->stk_cc_ss_to_dial:I
+Lcom/android/internal/R$string;->stk_cc_ss_to_dial_video:I
+Lcom/android/internal/R$string;->stk_cc_ss_to_ss:I
+Lcom/android/internal/R$string;->stk_cc_ss_to_ussd:I
+Lcom/android/internal/R$string;->stk_cc_ussd_to_dial:I
+Lcom/android/internal/R$string;->stk_cc_ussd_to_dial_video:I
+Lcom/android/internal/R$string;->stk_cc_ussd_to_ss:I
+Lcom/android/internal/R$string;->stk_cc_ussd_to_ussd:I
+Lcom/android/internal/R$string;->storage_internal:I
+Lcom/android/internal/R$string;->storage_sd_card:I
+Lcom/android/internal/R$string;->storage_sd_card_label:I
+Lcom/android/internal/R$string;->storage_usb:I
+Lcom/android/internal/R$string;->storage_usb_drive:I
+Lcom/android/internal/R$string;->storage_usb_drive_label:I
+Lcom/android/internal/R$string;->submit:I
+Lcom/android/internal/R$string;->suspended_widget_accessibility:I
+Lcom/android/internal/R$string;->sync_binding_label:I
+Lcom/android/internal/R$string;->sync_do_nothing:I
+Lcom/android/internal/R$string;->sync_really_delete:I
+Lcom/android/internal/R$string;->sync_too_many_deletes_desc:I
+Lcom/android/internal/R$string;->sync_undo_deletes:I
+Lcom/android/internal/R$string;->system_error_manufacturer:I
+Lcom/android/internal/R$string;->system_error_wipe_data:I
+Lcom/android/internal/R$string;->system_ui_date_pattern:I
+Lcom/android/internal/R$string;->taking_remote_bugreport_notification_title:I
+Lcom/android/internal/R$string;->tethered_notification_message:I
+Lcom/android/internal/R$string;->tethered_notification_title:I
+Lcom/android/internal/R$string;->textSelectionCABTitle:I
+Lcom/android/internal/R$string;->text_copied:I
+Lcom/android/internal/R$string;->time_of_day:I
+Lcom/android/internal/R$string;->time_picker_decrement_hour_button:I
+Lcom/android/internal/R$string;->time_picker_decrement_minute_button:I
+Lcom/android/internal/R$string;->time_picker_decrement_set_am_button:I
+Lcom/android/internal/R$string;->time_picker_dialog_title:I
+Lcom/android/internal/R$string;->time_picker_increment_hour_button:I
+Lcom/android/internal/R$string;->time_picker_increment_minute_button:I
+Lcom/android/internal/R$string;->time_picker_increment_set_pm_button:I
+Lcom/android/internal/R$string;->time_picker_radial_mode_description:I
+Lcom/android/internal/R$string;->time_picker_text_input_mode_description:I
+Lcom/android/internal/R$string;->time_placeholder:I
+Lcom/android/internal/R$string;->tooltip_popup_title:I
+Lcom/android/internal/R$string;->undo:I
+Lcom/android/internal/R$string;->unknownName:I
+Lcom/android/internal/R$string;->unsupported_compile_sdk_check_update:I
+Lcom/android/internal/R$string;->unsupported_compile_sdk_message:I
+Lcom/android/internal/R$string;->unsupported_display_size_message:I
+Lcom/android/internal/R$string;->untitled:I
+Lcom/android/internal/R$string;->upload_file:I
+Lcom/android/internal/R$string;->usb_accessory_notification_title:I
+Lcom/android/internal/R$string;->usb_charging_notification_title:I
+Lcom/android/internal/R$string;->usb_midi_notification_title:I
+Lcom/android/internal/R$string;->usb_midi_peripheral_manufacturer_name:I
+Lcom/android/internal/R$string;->usb_midi_peripheral_name:I
+Lcom/android/internal/R$string;->usb_midi_peripheral_product_name:I
+Lcom/android/internal/R$string;->usb_mtp_launch_notification_description:I
+Lcom/android/internal/R$string;->usb_mtp_launch_notification_title:I
+Lcom/android/internal/R$string;->usb_mtp_notification_title:I
+Lcom/android/internal/R$string;->usb_notification_message:I
+Lcom/android/internal/R$string;->usb_power_notification_message:I
+Lcom/android/internal/R$string;->usb_ptp_notification_title:I
+Lcom/android/internal/R$string;->usb_supplying_notification_title:I
+Lcom/android/internal/R$string;->usb_tether_notification_title:I
+Lcom/android/internal/R$string;->usb_unsupported_audio_accessory_message:I
+Lcom/android/internal/R$string;->usb_unsupported_audio_accessory_title:I
+Lcom/android/internal/R$string;->user_creation_account_exists:I
+Lcom/android/internal/R$string;->user_creation_adding:I
+Lcom/android/internal/R$string;->user_encrypted_detail:I
+Lcom/android/internal/R$string;->user_encrypted_message:I
+Lcom/android/internal/R$string;->user_encrypted_title:I
+Lcom/android/internal/R$string;->user_logging_out_message:I
+Lcom/android/internal/R$string;->user_owner_label:I
+Lcom/android/internal/R$string;->user_switched:I
+Lcom/android/internal/R$string;->user_switching_message:I
+Lcom/android/internal/R$string;->VideoView_error_button:I
+Lcom/android/internal/R$string;->VideoView_error_text_invalid_progressive_playback:I
+Lcom/android/internal/R$string;->VideoView_error_text_unknown:I
+Lcom/android/internal/R$string;->VideoView_error_title:I
+Lcom/android/internal/R$string;->view_calendar:I
+Lcom/android/internal/R$string;->view_calendar_desc:I
+Lcom/android/internal/R$string;->view_flight:I
+Lcom/android/internal/R$string;->view_flight_desc:I
+Lcom/android/internal/R$string;->volume_alarm:I
+Lcom/android/internal/R$string;->volume_dialog_ringer_guidance_silent:I
+Lcom/android/internal/R$string;->volume_dialog_ringer_guidance_vibrate:I
+Lcom/android/internal/R$string;->volume_icon_description_bluetooth:I
+Lcom/android/internal/R$string;->volume_icon_description_incall:I
+Lcom/android/internal/R$string;->volume_icon_description_media:I
+Lcom/android/internal/R$string;->volume_icon_description_notification:I
+Lcom/android/internal/R$string;->volume_icon_description_ringer:I
+Lcom/android/internal/R$string;->vpn_lockdown_config:I
+Lcom/android/internal/R$string;->vpn_lockdown_connected:I
+Lcom/android/internal/R$string;->vpn_lockdown_connecting:I
+Lcom/android/internal/R$string;->vpn_lockdown_disconnected:I
+Lcom/android/internal/R$string;->vpn_lockdown_error:I
+Lcom/android/internal/R$string;->vpn_text:I
+Lcom/android/internal/R$string;->vpn_text_long:I
+Lcom/android/internal/R$string;->vpn_title:I
+Lcom/android/internal/R$string;->vpn_title_long:I
+Lcom/android/internal/R$string;->vr_listener_binding_label:I
+Lcom/android/internal/R$string;->wait:I
+Lcom/android/internal/R$string;->wallpaper_binding_label:I
+Lcom/android/internal/R$string;->webpage_unresponsive:I
+Lcom/android/internal/R$string;->websearch:I
+Lcom/android/internal/R$string;->wfcRegErrorTitle:I
+Lcom/android/internal/R$string;->wfc_mode_cellular_preferred_summary:I
+Lcom/android/internal/R$string;->wfc_mode_wifi_only_summary:I
+Lcom/android/internal/R$string;->wfc_mode_wifi_preferred_summary:I
+Lcom/android/internal/R$string;->whichApplicationLabel:I
+Lcom/android/internal/R$string;->whichApplicationNamed:I
+Lcom/android/internal/R$string;->whichEditApplication:I
+Lcom/android/internal/R$string;->whichEditApplicationLabel:I
+Lcom/android/internal/R$string;->whichEditApplicationNamed:I
+Lcom/android/internal/R$string;->whichHomeApplication:I
+Lcom/android/internal/R$string;->whichHomeApplicationLabel:I
+Lcom/android/internal/R$string;->whichHomeApplicationNamed:I
+Lcom/android/internal/R$string;->whichImageCaptureApplication:I
+Lcom/android/internal/R$string;->whichImageCaptureApplicationLabel:I
+Lcom/android/internal/R$string;->whichImageCaptureApplicationNamed:I
+Lcom/android/internal/R$string;->whichSendApplication:I
+Lcom/android/internal/R$string;->whichSendApplicationLabel:I
+Lcom/android/internal/R$string;->whichSendApplicationNamed:I
+Lcom/android/internal/R$string;->whichSendToApplication:I
+Lcom/android/internal/R$string;->whichSendToApplicationLabel:I
+Lcom/android/internal/R$string;->whichSendToApplicationNamed:I
+Lcom/android/internal/R$string;->whichViewApplication:I
+Lcom/android/internal/R$string;->whichViewApplicationLabel:I
+Lcom/android/internal/R$string;->whichViewApplicationNamed:I
+Lcom/android/internal/R$string;->widget_default_class_name:I
+Lcom/android/internal/R$string;->widget_default_package_name:I
+Lcom/android/internal/R$string;->wifi_available_action_all_networks:I
+Lcom/android/internal/R$string;->wifi_available_action_connect:I
+Lcom/android/internal/R$string;->wifi_available_carrier_network_title:I
+Lcom/android/internal/R$string;->wifi_available_content_failed_to_connect:I
+Lcom/android/internal/R$string;->wifi_available_sign_in:I
+Lcom/android/internal/R$string;->wifi_available_title:I
+Lcom/android/internal/R$string;->wifi_available_title_connected:I
+Lcom/android/internal/R$string;->wifi_available_title_connecting:I
+Lcom/android/internal/R$string;->wifi_available_title_failed_to_connect:I
+Lcom/android/internal/R$string;->wifi_calling_off_summary:I
+Lcom/android/internal/R$string;->wifi_connect_alert_message:I
+Lcom/android/internal/R$string;->wifi_connect_alert_title:I
+Lcom/android/internal/R$string;->wifi_connect_default_application:I
+Lcom/android/internal/R$string;->wifi_localhotspot_configure_ssid_default:I
+Lcom/android/internal/R$string;->wifi_no_internet:I
+Lcom/android/internal/R$string;->wifi_no_internet_detailed:I
+Lcom/android/internal/R$string;->wifi_p2p_dialog_title:I
+Lcom/android/internal/R$string;->wifi_p2p_enabled_notification_message:I
+Lcom/android/internal/R$string;->wifi_p2p_enabled_notification_title:I
+Lcom/android/internal/R$string;->wifi_p2p_failed_message:I
+Lcom/android/internal/R$string;->wifi_p2p_frequency_conflict_message:I
+Lcom/android/internal/R$string;->wifi_p2p_from_message:I
+Lcom/android/internal/R$string;->wifi_p2p_invitation_sent_title:I
+Lcom/android/internal/R$string;->wifi_p2p_invitation_to_connect_title:I
+Lcom/android/internal/R$string;->wifi_p2p_show_pin_message:I
+Lcom/android/internal/R$string;->wifi_p2p_to_message:I
+Lcom/android/internal/R$string;->wifi_p2p_turnon_message:I
+Lcom/android/internal/R$string;->wifi_tether_configure_ssid_default:I
+Lcom/android/internal/R$string;->wifi_wakeup_enabled_content:I
+Lcom/android/internal/R$string;->wifi_wakeup_enabled_title:I
+Lcom/android/internal/R$string;->wifi_wakeup_onboarding_action_disable:I
+Lcom/android/internal/R$string;->wifi_wakeup_onboarding_subtext:I
+Lcom/android/internal/R$string;->wifi_wakeup_onboarding_title:I
+Lcom/android/internal/R$string;->wifi_watchdog_network_disabled:I
+Lcom/android/internal/R$string;->wifi_watchdog_network_disabled_detailed:I
+Lcom/android/internal/R$string;->wireless_display_route_description:I
+Lcom/android/internal/R$string;->work_mode_off_message:I
+Lcom/android/internal/R$string;->work_mode_off_title:I
+Lcom/android/internal/R$string;->work_mode_turn_on:I
+Lcom/android/internal/R$string;->work_profile_deleted:I
+Lcom/android/internal/R$string;->work_profile_deleted_description_dpm_wipe:I
+Lcom/android/internal/R$string;->work_profile_deleted_details:I
+Lcom/android/internal/R$string;->work_profile_deleted_reason_maximum_password_failure:I
+Lcom/android/internal/R$string;->write_fail_reason_cancelled:I
+Lcom/android/internal/R$string;->write_fail_reason_cannot_write:I
+Lcom/android/internal/R$string;->yes:I
+Lcom/android/internal/R$string;->zen_mode_alarm:I
+Lcom/android/internal/R$string;->zen_mode_default_events_name:I
+Lcom/android/internal/R$string;->zen_mode_default_every_night_name:I
+Lcom/android/internal/R$string;->zen_mode_default_weekends_name:I
+Lcom/android/internal/R$string;->zen_mode_default_weeknights_name:I
+Lcom/android/internal/R$string;->zen_mode_downtime_feature_name:I
+Lcom/android/internal/R$string;->zen_mode_feature_name:I
+Lcom/android/internal/R$string;->zen_mode_forever:I
+Lcom/android/internal/R$string;->zen_mode_forever_dnd:I
+Lcom/android/internal/R$string;->zen_mode_rule_name_combination:I
+Lcom/android/internal/R$string;->zen_mode_until:I
+Lcom/android/internal/R$string;->zen_upgrade_notification_content:I
+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
+Lcom/android/internal/R$style;->Animation_Activity:I
+Lcom/android/internal/R$style;->Animation_Dialog:I
+Lcom/android/internal/R$style;->Animation_Dream:I
+Lcom/android/internal/R$style;->Animation_ImmersiveModeConfirmation:I
+Lcom/android/internal/R$style;->Animation_InputMethod:I
+Lcom/android/internal/R$style;->Animation_InputMethodFancy:I
+Lcom/android/internal/R$style;->Animation_LockScreen:I
+Lcom/android/internal/R$style;->Animation_RecentApplications:I
+Lcom/android/internal/R$style;->Animation_Toast:I
+Lcom/android/internal/R$style;->Animation_Tooltip:I
+Lcom/android/internal/R$style;->Animation_Translucent:I
+Lcom/android/internal/R$style;->Animation_TypingFilter:I
+Lcom/android/internal/R$style;->Animation_TypingFilterRestore:I
+Lcom/android/internal/R$style;->Animation_VolumePanel:I
+Lcom/android/internal/R$style;->Animation_Wallpaper:I
+Lcom/android/internal/R$style;->Animation_ZoomButtons:I
+Lcom/android/internal/R$style;->AutofillDatasetPicker:I
+Lcom/android/internal/R$style;->AutofillHalfScreenAnimation:I
+Lcom/android/internal/R$style;->AutofillSaveAnimation:I
+Lcom/android/internal/R$style;->ButtonBar:I
+Lcom/android/internal/R$style;->DeviceDefault_ButtonBar:I
+Lcom/android/internal/R$style;->DeviceDefault_ButtonBar_AlertDialog:I
+Lcom/android/internal/R$style;->DeviceDefault_Light_ButtonBar:I
+Lcom/android/internal/R$style;->DeviceDefault_Light_ButtonBar_AlertDialog:I
+Lcom/android/internal/R$style;->DeviceDefault_Light_SegmentedButton:I
+Lcom/android/internal/R$style;->DeviceDefault_SegmentedButton:I
+Lcom/android/internal/R$style;->Holo_ButtonBar:I
+Lcom/android/internal/R$style;->Holo_ButtonBar_AlertDialog:I
+Lcom/android/internal/R$style;->Holo_Light_ButtonBar:I
+Lcom/android/internal/R$style;->Holo_Light_ButtonBar_AlertDialog:I
+Lcom/android/internal/R$style;->Holo_Light_SegmentedButton:I
+Lcom/android/internal/R$style;->Holo_SegmentedButton:I
+Lcom/android/internal/R$style;->LargePointer:I
+Lcom/android/internal/R$style;->MediaButton:I
+Lcom/android/internal/R$style;->MediaButton_Ffwd:I
+Lcom/android/internal/R$style;->MediaButton_Next:I
+Lcom/android/internal/R$style;->MediaButton_Pause:I
+Lcom/android/internal/R$style;->MediaButton_Play:I
+Lcom/android/internal/R$style;->MediaButton_Previous:I
+Lcom/android/internal/R$style;->MediaButton_Rew:I
+Lcom/android/internal/R$style;->Pointer:I
+Lcom/android/internal/R$style;->PreviewWallpaperSettings:I
+Lcom/android/internal/R$style;->TextAppearance:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_DialogWindowTitle:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Large:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Large_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Medium:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Medium_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_SearchResult_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_SearchResult_Title:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Small:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Small_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionBar_Menu:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionBar_Title:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionMode_Title:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_Button:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_DropDownHint:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_DropDownItem:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_EditText:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_IconMenu_Item:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_PopupMenu:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_PopupMenu_Large:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_PopupMenu_Small:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_TabWidget:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_TextView:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_TextView_PopupMenu:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_Widget_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->TextAppearance_DeviceDefault_WindowTitle:I
+Lcom/android/internal/R$style;->TextAppearance_DialogWindowTitle:I
+Lcom/android/internal/R$style;->TextAppearance_Holo:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_DialogWindowTitle:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Large:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Large_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Medium:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Medium_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_SearchResult_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_SearchResult_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Small:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Small_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionBar_Menu:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionBar_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionBar_Subtitle_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionBar_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionBar_Title_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionMode_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionMode_Subtitle_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionMode_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_ActionMode_Title_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_Button:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_DropDownHint:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_DropDownItem:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_EditText:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_IconMenu_Item:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_PopupMenu:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_PopupMenu_Large:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_PopupMenu_Small:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_TabWidget:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_TextView:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_TextView_PopupMenu:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_Widget_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->TextAppearance_Holo_WindowTitle:I
+Lcom/android/internal/R$style;->TextAppearance_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Large:I
+Lcom/android/internal/R$style;->TextAppearance_Large_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Body1:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Body2:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Button:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Caption:I
+Lcom/android/internal/R$style;->TextAppearance_Material_DatePicker_List_YearLabel:I
+Lcom/android/internal/R$style;->TextAppearance_Material_DatePicker_List_YearLabel_Activated:I
+Lcom/android/internal/R$style;->TextAppearance_Material_DialogWindowTitle:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Display1:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Display2:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Display3:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Display4:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Headline:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Large:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Large_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Medium:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Medium_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Menu:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Notification:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Notification_Emphasis:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Notification_Info:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Notification_Line2:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Notification_Time:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Notification_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Material_SearchResult_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_Material_SearchResult_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Small:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Small_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Subhead:I
+Lcom/android/internal/R$style;->TextAppearance_Material_TimePicker_TimeLabel:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionBar_Menu:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionBar_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionBar_Subtitle_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionBar_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionBar_Title_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionMode_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionMode_Subtitle_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionMode_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_ActionMode_Title_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Button:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Button_Borderless_Colored:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Button_Colored:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Button_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Calendar_Day:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Calendar_DayOfWeek:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Calendar_Month:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_DropDownHint:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_DropDownItem:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_EditText:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_IconMenu_Item:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_PopupMenu:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_PopupMenu_Large:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_PopupMenu_Small:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_TabWidget:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_TextView:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_TextView_PopupMenu:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Toolbar_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_Material_Widget_Toolbar_Title:I
+Lcom/android/internal/R$style;->TextAppearance_Material_WindowTitle:I
+Lcom/android/internal/R$style;->TextAppearance_Medium:I
+Lcom/android/internal/R$style;->TextAppearance_Medium_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_SearchResult_Subtitle:I
+Lcom/android/internal/R$style;->TextAppearance_SearchResult_Title:I
+Lcom/android/internal/R$style;->TextAppearance_SlidingTabActive:I
+Lcom/android/internal/R$style;->TextAppearance_SlidingTabNormal:I
+Lcom/android/internal/R$style;->TextAppearance_Small:I
+Lcom/android/internal/R$style;->TextAppearance_Small_Inverse:I
+Lcom/android/internal/R$style;->TextAppearance_StatusBar_EventContent:I
+Lcom/android/internal/R$style;->TextAppearance_StatusBar_EventContent_Title:I
+Lcom/android/internal/R$style;->TextAppearance_StatusBar_Icon:I
+Lcom/android/internal/R$style;->TextAppearance_StatusBar_Title:I
+Lcom/android/internal/R$style;->TextAppearance_SuggestionHighlight:I
+Lcom/android/internal/R$style;->TextAppearance_Theme:I
+Lcom/android/internal/R$style;->TextAppearance_Theme_Dialog:I
+Lcom/android/internal/R$style;->TextAppearance_Widget:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_Button:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_DropDownHint:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_DropDownItem:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_EditText:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_IconMenu_Item:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_PopupMenu_Large:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_PopupMenu_Small:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_TabWidget:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_TextView:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_TextView_PopupMenu:I
+Lcom/android/internal/R$style;->TextAppearance_Widget_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->TextAppearance_WindowTitle:I
+Lcom/android/internal/R$style;->ThemeOverlay:I
+Lcom/android/internal/R$style;->ThemeOverlay_Material:I
+Lcom/android/internal/R$style;->ThemeOverlay_Material_ActionBar:I
+Lcom/android/internal/R$style;->ThemeOverlay_Material_Dark:I
+Lcom/android/internal/R$style;->ThemeOverlay_Material_Dark_ActionBar:I
+Lcom/android/internal/R$style;->ThemeOverlay_Material_Dialog:I
+Lcom/android/internal/R$style;->ThemeOverlay_Material_Dialog_Alert:I
+Lcom/android/internal/R$style;->ThemeOverlay_Material_Light:I
+Lcom/android/internal/R$style;->Theme_Black:I
+Lcom/android/internal/R$style;->Theme_Black_NoTitleBar:I
+Lcom/android/internal/R$style;->Theme_Black_NoTitleBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Autofill:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Autofill_Save:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Dialog:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_DialogWhenLarge:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_DialogWhenLarge_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Dialog_MinWidth:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Dialog_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Dialog_NoActionBar_MinWidth:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Dialog_NoFrame:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_InputMethod:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_DarkActionBar:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_Dialog:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_DialogWhenLarge:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_DialogWhenLarge_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_Dialog_MinWidth:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_Dialog_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_NoActionBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_NoActionBar_Overscan:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_NoActionBar_TranslucentDecor:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Light_Panel:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_NoActionBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_NoActionBar_Overscan:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_NoActionBar_TranslucentDecor:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Panel:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_QuickSettings:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Resolver:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Settings:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_System:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_VoiceInteractionSession:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Wallpaper:I
+Lcom/android/internal/R$style;->Theme_DeviceDefault_Wallpaper_NoTitleBar:I
+Lcom/android/internal/R$style;->Theme_Dialog:I
+Lcom/android/internal/R$style;->Theme_Dialog_AppError:I
+Lcom/android/internal/R$style;->Theme_Dialog_RecentApplications:I
+Lcom/android/internal/R$style;->Theme_ExpandedMenu:I
+Lcom/android/internal/R$style;->Theme_Holo:I
+Lcom/android/internal/R$style;->Theme_Holo_Dialog:I
+Lcom/android/internal/R$style;->Theme_Holo_DialogWhenLarge:I
+Lcom/android/internal/R$style;->Theme_Holo_DialogWhenLarge_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Holo_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_Holo_Dialog_MinWidth:I
+Lcom/android/internal/R$style;->Theme_Holo_Dialog_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Holo_Dialog_NoActionBar_MinWidth:I
+Lcom/android/internal/R$style;->Theme_Holo_InputMethod:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_DarkActionBar:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_Dialog:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_DialogWhenLarge:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_DialogWhenLarge_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_Dialog_MinWidth:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_Dialog_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_Dialog_NoActionBar_MinWidth:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_NoActionBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_NoActionBar_Overscan:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_NoActionBar_TranslucentDecor:I
+Lcom/android/internal/R$style;->Theme_Holo_Light_Panel:I
+Lcom/android/internal/R$style;->Theme_Holo_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Holo_NoActionBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_Holo_NoActionBar_Overscan:I
+Lcom/android/internal/R$style;->Theme_Holo_NoActionBar_TranslucentDecor:I
+Lcom/android/internal/R$style;->Theme_Holo_Panel:I
+Lcom/android/internal/R$style;->Theme_Holo_Wallpaper:I
+Lcom/android/internal/R$style;->Theme_Holo_Wallpaper_NoTitleBar:I
+Lcom/android/internal/R$style;->Theme_IconMenu:I
+Lcom/android/internal/R$style;->Theme_InputMethod:I
+Lcom/android/internal/R$style;->Theme_Leanback_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_Leanback_FormWizard:I
+Lcom/android/internal/R$style;->Theme_Light_NoTitleBar:I
+Lcom/android/internal/R$style;->Theme_Light_NoTitleBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_Light_Panel:I
+Lcom/android/internal/R$style;->Theme_Light_WallpaperSettings:I
+Lcom/android/internal/R$style;->Theme_Material:I
+Lcom/android/internal/R$style;->Theme_Material_Dialog:I
+Lcom/android/internal/R$style;->Theme_Material_DialogWhenLarge:I
+Lcom/android/internal/R$style;->Theme_Material_DialogWhenLarge_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Material_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_Material_Dialog_MinWidth:I
+Lcom/android/internal/R$style;->Theme_Material_Dialog_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Material_Dialog_NoActionBar_MinWidth:I
+Lcom/android/internal/R$style;->Theme_Material_Dialog_Presentation:I
+Lcom/android/internal/R$style;->Theme_Material_InputMethod:I
+Lcom/android/internal/R$style;->Theme_Material_Light:I
+Lcom/android/internal/R$style;->Theme_Material_Light_DarkActionBar:I
+Lcom/android/internal/R$style;->Theme_Material_Light_Dialog:I
+Lcom/android/internal/R$style;->Theme_Material_Light_DialogWhenLarge:I
+Lcom/android/internal/R$style;->Theme_Material_Light_DialogWhenLarge_DarkActionBar:I
+Lcom/android/internal/R$style;->Theme_Material_Light_DialogWhenLarge_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Material_Light_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_Material_Light_Dialog_MinWidth:I
+Lcom/android/internal/R$style;->Theme_Material_Light_Dialog_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Material_Light_Dialog_NoActionBar_MinWidth:I
+Lcom/android/internal/R$style;->Theme_Material_Light_Dialog_Presentation:I
+Lcom/android/internal/R$style;->Theme_Material_Light_LightStatusBar:I
+Lcom/android/internal/R$style;->Theme_Material_Light_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Material_Light_NoActionBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_Material_Light_NoActionBar_Overscan:I
+Lcom/android/internal/R$style;->Theme_Material_Light_NoActionBar_TranslucentDecor:I
+Lcom/android/internal/R$style;->Theme_Material_Light_Panel:I
+Lcom/android/internal/R$style;->Theme_Material_Light_Voice:I
+Lcom/android/internal/R$style;->Theme_Material_NoActionBar:I
+Lcom/android/internal/R$style;->Theme_Material_NoActionBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_Material_NoActionBar_Overscan:I
+Lcom/android/internal/R$style;->Theme_Material_NoActionBar_TranslucentDecor:I
+Lcom/android/internal/R$style;->Theme_Material_Panel:I
+Lcom/android/internal/R$style;->Theme_Material_Settings:I
+Lcom/android/internal/R$style;->Theme_Material_Voice:I
+Lcom/android/internal/R$style;->Theme_Material_Wallpaper:I
+Lcom/android/internal/R$style;->Theme_Material_Wallpaper_NoTitleBar:I
+Lcom/android/internal/R$style;->Theme_NoDisplay:I
+Lcom/android/internal/R$style;->Theme_NoTitleBar:I
+Lcom/android/internal/R$style;->Theme_NoTitleBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_NoTitleBar_OverlayActionModes:I
+Lcom/android/internal/R$style;->Theme_Panel:I
+Lcom/android/internal/R$style;->Theme_Toast:I
+Lcom/android/internal/R$style;->Theme_Translucent:I
+Lcom/android/internal/R$style;->Theme_Translucent_NoTitleBar:I
+Lcom/android/internal/R$style;->Theme_Translucent_NoTitleBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_Wallpaper:I
+Lcom/android/internal/R$style;->Theme_WallpaperSettings:I
+Lcom/android/internal/R$style;->Theme_Wallpaper_NoTitleBar:I
+Lcom/android/internal/R$style;->Theme_Wallpaper_NoTitleBar_Fullscreen:I
+Lcom/android/internal/R$style;->Theme_WithActionBar:I
+Lcom/android/internal/R$style;->Widget:I
+Lcom/android/internal/R$style;->Widget_AbsListView:I
+Lcom/android/internal/R$style;->Widget_ActionBar:I
+Lcom/android/internal/R$style;->Widget_ActionBar_TabBar:I
+Lcom/android/internal/R$style;->Widget_ActionBar_TabText:I
+Lcom/android/internal/R$style;->Widget_ActionBar_TabView:I
+Lcom/android/internal/R$style;->Widget_ActionButton:I
+Lcom/android/internal/R$style;->Widget_ActionButton_CloseMode:I
+Lcom/android/internal/R$style;->Widget_ActionButton_Overflow:I
+Lcom/android/internal/R$style;->Widget_AutoCompleteTextView:I
+Lcom/android/internal/R$style;->Widget_Button:I
+Lcom/android/internal/R$style;->Widget_Button_Inset:I
+Lcom/android/internal/R$style;->Widget_Button_Small:I
+Lcom/android/internal/R$style;->Widget_Button_Toggle:I
+Lcom/android/internal/R$style;->Widget_CalendarView:I
+Lcom/android/internal/R$style;->Widget_CompoundButton:I
+Lcom/android/internal/R$style;->Widget_CompoundButton_CheckBox:I
+Lcom/android/internal/R$style;->Widget_CompoundButton_RadioButton:I
+Lcom/android/internal/R$style;->Widget_CompoundButton_Star:I
+Lcom/android/internal/R$style;->Widget_DatePicker:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionBar_Solid:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionBar_TabBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionBar_TabText:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionBar_TabView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionButton_CloseMode:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionButton_Overflow:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionButton_TextButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ActionMode:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_AutoCompleteTextView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Button:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Button_Borderless:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Button_Borderless_Colored:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Button_Borderless_Small:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Button_Colored:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Button_Inset:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Button_Small:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Button_Toggle:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_CalendarView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_CheckedTextView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_CompoundButton_CheckBox:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_CompoundButton_RadioButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_CompoundButton_Star:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_DatePicker:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_DropDownItem:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_DropDownItem_Spinner:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_EditText:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ExpandableListView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_FastScroll:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_GridView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_HorizontalScrollView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ImageButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar_Solid:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar_Solid_Inverse:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar_TabBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar_TabText:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar_TabText_Inverse:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar_TabView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionBar_TabView_Inverse:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionButton_CloseMode:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionButton_Overflow:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionMode:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ActionMode_Inverse:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_AutoCompleteTextView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_Button:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_Button_Borderless_Small:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_Button_Inset:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_Button_Small:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_Button_Toggle:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_CalendarView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_CheckedTextView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_CompoundButton_CheckBox:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_CompoundButton_RadioButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_CompoundButton_Star:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_DropDownItem:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_DropDownItem_Spinner:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_EditText:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ExpandableListView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_FastScroll:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_GridView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_HorizontalScrollView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ImageButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ListPopupWindow:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ListView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ListView_DropDown:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_MediaRouteButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_PopupMenu:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_PopupWindow:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ProgressBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ProgressBar_Horizontal:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ProgressBar_Inverse:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ProgressBar_Large:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ProgressBar_Large_Inverse:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ProgressBar_Small:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ProgressBar_Small_Inverse:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ProgressBar_Small_Title:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_RatingBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_RatingBar_Indicator:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_RatingBar_Small:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_ScrollView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_SeekBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_Spinner:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_StackView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_Tab:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_TabWidget:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_TextView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_WebTextView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Light_WebView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ListPopupWindow:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ListView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ListView_DropDown:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_MediaRouteButton:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_PopupMenu:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_PopupWindow:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ProgressBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ProgressBar_Horizontal:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ProgressBar_Large:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ProgressBar_Small:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ProgressBar_Small_Title:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_RatingBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_RatingBar_Indicator:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_RatingBar_Small:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_ScrollView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_SeekBar:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Spinner:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_StackView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_Tab:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_TabWidget:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_TextView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_WebTextView:I
+Lcom/android/internal/R$style;->Widget_DeviceDefault_WebView:I
+Lcom/android/internal/R$style;->Widget_DropDownItem:I
+Lcom/android/internal/R$style;->Widget_DropDownItem_Spinner:I
+Lcom/android/internal/R$style;->Widget_EditText:I
+Lcom/android/internal/R$style;->Widget_ExpandableListView:I
+Lcom/android/internal/R$style;->Widget_FastScroll:I
+Lcom/android/internal/R$style;->Widget_FragmentBreadCrumbs:I
+Lcom/android/internal/R$style;->Widget_Gallery:I
+Lcom/android/internal/R$style;->Widget_GridView:I
+Lcom/android/internal/R$style;->Widget_Holo:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionBar:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionBar_Solid:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionBar_TabBar:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionBar_TabText:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionBar_TabView:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionButton:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionButton_CloseMode:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionButton_Overflow:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionButton_TextButton:I
+Lcom/android/internal/R$style;->Widget_Holo_ActionMode:I
+Lcom/android/internal/R$style;->Widget_Holo_AutoCompleteTextView:I
+Lcom/android/internal/R$style;->Widget_Holo_Button:I
+Lcom/android/internal/R$style;->Widget_Holo_Button_Borderless:I
+Lcom/android/internal/R$style;->Widget_Holo_Button_Borderless_Small:I
+Lcom/android/internal/R$style;->Widget_Holo_Button_Inset:I
+Lcom/android/internal/R$style;->Widget_Holo_Button_Small:I
+Lcom/android/internal/R$style;->Widget_Holo_Button_Toggle:I
+Lcom/android/internal/R$style;->Widget_Holo_CalendarView:I
+Lcom/android/internal/R$style;->Widget_Holo_CheckedTextView:I
+Lcom/android/internal/R$style;->Widget_Holo_CompoundButton_CheckBox:I
+Lcom/android/internal/R$style;->Widget_Holo_CompoundButton_RadioButton:I
+Lcom/android/internal/R$style;->Widget_Holo_CompoundButton_Star:I
+Lcom/android/internal/R$style;->Widget_Holo_DatePicker:I
+Lcom/android/internal/R$style;->Widget_Holo_DropDownItem:I
+Lcom/android/internal/R$style;->Widget_Holo_DropDownItem_Spinner:I
+Lcom/android/internal/R$style;->Widget_Holo_EditText:I
+Lcom/android/internal/R$style;->Widget_Holo_ExpandableListView:I
+Lcom/android/internal/R$style;->Widget_Holo_GridView:I
+Lcom/android/internal/R$style;->Widget_Holo_HorizontalScrollView:I
+Lcom/android/internal/R$style;->Widget_Holo_ImageButton:I
+Lcom/android/internal/R$style;->Widget_Holo_Light:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar_Solid:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar_Solid_Inverse:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar_TabBar:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar_TabBar_Inverse:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar_TabText:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar_TabText_Inverse:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar_TabView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionBar_TabView_Inverse:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionButton:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionButton_CloseMode:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionButton_Overflow:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionMode:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ActionMode_Inverse:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_AutoCompleteTextView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_Button:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_Button_Borderless_Small:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_Button_Inset:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_Button_Small:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_Button_Toggle:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_CalendarView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_CheckedTextView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_CompoundButton_CheckBox:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_CompoundButton_RadioButton:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_CompoundButton_Star:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_DropDownItem:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_DropDownItem_Spinner:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_EditText:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ExpandableListView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_GridView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_HorizontalScrollView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ImageButton:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ListPopupWindow:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ListView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ListView_DropDown:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_MediaRouteButton:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_PopupMenu:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_PopupWindow:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ProgressBar:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ProgressBar_Horizontal:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ProgressBar_Inverse:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ProgressBar_Large:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ProgressBar_Large_Inverse:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ProgressBar_Small:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ProgressBar_Small_Inverse:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ProgressBar_Small_Title:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_RatingBar:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_RatingBar_Indicator:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_RatingBar_Small:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_ScrollView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_SeekBar:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_Spinner:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_Tab:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_TabWidget:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_TextView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_WebTextView:I
+Lcom/android/internal/R$style;->Widget_Holo_Light_WebView:I
+Lcom/android/internal/R$style;->Widget_Holo_ListPopupWindow:I
+Lcom/android/internal/R$style;->Widget_Holo_ListView:I
+Lcom/android/internal/R$style;->Widget_Holo_ListView_DropDown:I
+Lcom/android/internal/R$style;->Widget_Holo_MediaRouteButton:I
+Lcom/android/internal/R$style;->Widget_Holo_PopupMenu:I
+Lcom/android/internal/R$style;->Widget_Holo_PopupWindow:I
+Lcom/android/internal/R$style;->Widget_Holo_ProgressBar:I
+Lcom/android/internal/R$style;->Widget_Holo_ProgressBar_Horizontal:I
+Lcom/android/internal/R$style;->Widget_Holo_ProgressBar_Large:I
+Lcom/android/internal/R$style;->Widget_Holo_ProgressBar_Small:I
+Lcom/android/internal/R$style;->Widget_Holo_ProgressBar_Small_Title:I
+Lcom/android/internal/R$style;->Widget_Holo_RatingBar:I
+Lcom/android/internal/R$style;->Widget_Holo_RatingBar_Indicator:I
+Lcom/android/internal/R$style;->Widget_Holo_RatingBar_Small:I
+Lcom/android/internal/R$style;->Widget_Holo_ScrollView:I
+Lcom/android/internal/R$style;->Widget_Holo_SeekBar:I
+Lcom/android/internal/R$style;->Widget_Holo_Spinner:I
+Lcom/android/internal/R$style;->Widget_Holo_Tab:I
+Lcom/android/internal/R$style;->Widget_Holo_TabWidget:I
+Lcom/android/internal/R$style;->Widget_Holo_TextView:I
+Lcom/android/internal/R$style;->Widget_Holo_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->Widget_Holo_WebTextView:I
+Lcom/android/internal/R$style;->Widget_Holo_WebView:I
+Lcom/android/internal/R$style;->Widget_ImageButton:I
+Lcom/android/internal/R$style;->Widget_ImageWell:I
+Lcom/android/internal/R$style;->Widget_KeyboardView:I
+Lcom/android/internal/R$style;->Widget_ListPopupWindow:I
+Lcom/android/internal/R$style;->Widget_ListView:I
+Lcom/android/internal/R$style;->Widget_ListView_DropDown:I
+Lcom/android/internal/R$style;->Widget_ListView_Menu:I
+Lcom/android/internal/R$style;->Widget_ListView_White:I
+Lcom/android/internal/R$style;->Widget_LockPatternView:I
+Lcom/android/internal/R$style;->Widget_Material:I
+Lcom/android/internal/R$style;->Widget_Material_ActionBar:I
+Lcom/android/internal/R$style;->Widget_Material_ActionBar_Solid:I
+Lcom/android/internal/R$style;->Widget_Material_ActionBar_TabBar:I
+Lcom/android/internal/R$style;->Widget_Material_ActionBar_TabText:I
+Lcom/android/internal/R$style;->Widget_Material_ActionBar_TabView:I
+Lcom/android/internal/R$style;->Widget_Material_ActionButton:I
+Lcom/android/internal/R$style;->Widget_Material_ActionButton_CloseMode:I
+Lcom/android/internal/R$style;->Widget_Material_ActionButton_Overflow:I
+Lcom/android/internal/R$style;->Widget_Material_ActionMode:I
+Lcom/android/internal/R$style;->Widget_Material_AutoCompleteTextView:I
+Lcom/android/internal/R$style;->Widget_Material_Button:I
+Lcom/android/internal/R$style;->Widget_Material_ButtonBar:I
+Lcom/android/internal/R$style;->Widget_Material_ButtonBar_AlertDialog:I
+Lcom/android/internal/R$style;->Widget_Material_Button_Borderless:I
+Lcom/android/internal/R$style;->Widget_Material_Button_Borderless_Colored:I
+Lcom/android/internal/R$style;->Widget_Material_Button_Borderless_Small:I
+Lcom/android/internal/R$style;->Widget_Material_Button_Colored:I
+Lcom/android/internal/R$style;->Widget_Material_Button_Inset:I
+Lcom/android/internal/R$style;->Widget_Material_Button_Small:I
+Lcom/android/internal/R$style;->Widget_Material_Button_Toggle:I
+Lcom/android/internal/R$style;->Widget_Material_CalendarView:I
+Lcom/android/internal/R$style;->Widget_Material_CheckedTextView:I
+Lcom/android/internal/R$style;->Widget_Material_CompoundButton_CheckBox:I
+Lcom/android/internal/R$style;->Widget_Material_CompoundButton_RadioButton:I
+Lcom/android/internal/R$style;->Widget_Material_CompoundButton_Star:I
+Lcom/android/internal/R$style;->Widget_Material_CompoundButton_Switch:I
+Lcom/android/internal/R$style;->Widget_Material_DatePicker:I
+Lcom/android/internal/R$style;->Widget_Material_DropDownItem:I
+Lcom/android/internal/R$style;->Widget_Material_DropDownItem_Spinner:I
+Lcom/android/internal/R$style;->Widget_Material_EditText:I
+Lcom/android/internal/R$style;->Widget_Material_ExpandableListView:I
+Lcom/android/internal/R$style;->Widget_Material_FastScroll:I
+Lcom/android/internal/R$style;->Widget_Material_GridView:I
+Lcom/android/internal/R$style;->Widget_Material_HorizontalScrollView:I
+Lcom/android/internal/R$style;->Widget_Material_ImageButton:I
+Lcom/android/internal/R$style;->Widget_Material_Light:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionBar:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionBar_Solid:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionBar_TabBar:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionBar_TabText:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionBar_TabView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionButton:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionButton_CloseMode:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionButton_Overflow:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ActionMode:I
+Lcom/android/internal/R$style;->Widget_Material_Light_AutoCompleteTextView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Button:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ButtonBar:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ButtonBar_AlertDialog:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Button_Borderless:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Button_Borderless_Colored:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Button_Borderless_Small:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Button_Inset:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Button_Small:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Button_Toggle:I
+Lcom/android/internal/R$style;->Widget_Material_Light_CalendarView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_CheckedTextView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_CompoundButton_CheckBox:I
+Lcom/android/internal/R$style;->Widget_Material_Light_CompoundButton_RadioButton:I
+Lcom/android/internal/R$style;->Widget_Material_Light_CompoundButton_Star:I
+Lcom/android/internal/R$style;->Widget_Material_Light_CompoundButton_Switch:I
+Lcom/android/internal/R$style;->Widget_Material_Light_DatePicker:I
+Lcom/android/internal/R$style;->Widget_Material_Light_DropDownItem:I
+Lcom/android/internal/R$style;->Widget_Material_Light_DropDownItem_Spinner:I
+Lcom/android/internal/R$style;->Widget_Material_Light_EditText:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ExpandableListView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_FastScroll:I
+Lcom/android/internal/R$style;->Widget_Material_Light_GridView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_HorizontalScrollView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ImageButton:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ListPopupWindow:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ListView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ListView_DropDown:I
+Lcom/android/internal/R$style;->Widget_Material_Light_MediaRouteButton:I
+Lcom/android/internal/R$style;->Widget_Material_Light_NumberPicker:I
+Lcom/android/internal/R$style;->Widget_Material_Light_PopupMenu:I
+Lcom/android/internal/R$style;->Widget_Material_Light_PopupMenu_Overflow:I
+Lcom/android/internal/R$style;->Widget_Material_Light_PopupWindow:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ProgressBar:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ProgressBar_Horizontal:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ProgressBar_Inverse:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ProgressBar_Large:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ProgressBar_Large_Inverse:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ProgressBar_Small:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ProgressBar_Small_Inverse:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ProgressBar_Small_Title:I
+Lcom/android/internal/R$style;->Widget_Material_Light_RatingBar:I
+Lcom/android/internal/R$style;->Widget_Material_Light_RatingBar_Indicator:I
+Lcom/android/internal/R$style;->Widget_Material_Light_RatingBar_Small:I
+Lcom/android/internal/R$style;->Widget_Material_Light_ScrollView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_SearchView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_SeekBar:I
+Lcom/android/internal/R$style;->Widget_Material_Light_SegmentedButton:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Spinner:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Spinner_Underlined:I
+Lcom/android/internal/R$style;->Widget_Material_Light_StackView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_Tab:I
+Lcom/android/internal/R$style;->Widget_Material_Light_TabWidget:I
+Lcom/android/internal/R$style;->Widget_Material_Light_TextView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->Widget_Material_Light_TimePicker:I
+Lcom/android/internal/R$style;->Widget_Material_Light_WebTextView:I
+Lcom/android/internal/R$style;->Widget_Material_Light_WebView:I
+Lcom/android/internal/R$style;->Widget_Material_ListPopupWindow:I
+Lcom/android/internal/R$style;->Widget_Material_ListView:I
+Lcom/android/internal/R$style;->Widget_Material_ListView_DropDown:I
+Lcom/android/internal/R$style;->Widget_Material_MediaRouteButton:I
+Lcom/android/internal/R$style;->Widget_Material_NumberPicker:I
+Lcom/android/internal/R$style;->Widget_Material_PopupMenu:I
+Lcom/android/internal/R$style;->Widget_Material_PopupMenu_Overflow:I
+Lcom/android/internal/R$style;->Widget_Material_PopupWindow:I
+Lcom/android/internal/R$style;->Widget_Material_ProgressBar:I
+Lcom/android/internal/R$style;->Widget_Material_ProgressBar_Horizontal:I
+Lcom/android/internal/R$style;->Widget_Material_ProgressBar_Large:I
+Lcom/android/internal/R$style;->Widget_Material_ProgressBar_Small:I
+Lcom/android/internal/R$style;->Widget_Material_ProgressBar_Small_Title:I
+Lcom/android/internal/R$style;->Widget_Material_RatingBar:I
+Lcom/android/internal/R$style;->Widget_Material_RatingBar_Indicator:I
+Lcom/android/internal/R$style;->Widget_Material_RatingBar_Small:I
+Lcom/android/internal/R$style;->Widget_Material_ScrollView:I
+Lcom/android/internal/R$style;->Widget_Material_SearchView:I
+Lcom/android/internal/R$style;->Widget_Material_SeekBar:I
+Lcom/android/internal/R$style;->Widget_Material_SeekBar_Discrete:I
+Lcom/android/internal/R$style;->Widget_Material_SegmentedButton:I
+Lcom/android/internal/R$style;->Widget_Material_Spinner:I
+Lcom/android/internal/R$style;->Widget_Material_Spinner_Underlined:I
+Lcom/android/internal/R$style;->Widget_Material_StackView:I
+Lcom/android/internal/R$style;->Widget_Material_Tab:I
+Lcom/android/internal/R$style;->Widget_Material_TabWidget:I
+Lcom/android/internal/R$style;->Widget_Material_TextView:I
+Lcom/android/internal/R$style;->Widget_Material_TextView_SpinnerItem:I
+Lcom/android/internal/R$style;->Widget_Material_TimePicker:I
+Lcom/android/internal/R$style;->Widget_Material_Toolbar:I
+Lcom/android/internal/R$style;->Widget_Material_Toolbar_Button_Navigation:I
+Lcom/android/internal/R$style;->Widget_Material_WebTextView:I
+Lcom/android/internal/R$style;->Widget_Material_WebView:I
+Lcom/android/internal/R$style;->Widget_PopupMenu:I
+Lcom/android/internal/R$style;->Widget_PopupWindow:I
+Lcom/android/internal/R$style;->Widget_ProgressBar:I
+Lcom/android/internal/R$style;->Widget_ProgressBar_Horizontal:I
+Lcom/android/internal/R$style;->Widget_ProgressBar_Inverse:I
+Lcom/android/internal/R$style;->Widget_ProgressBar_Large:I
+Lcom/android/internal/R$style;->Widget_ProgressBar_Large_Inverse:I
+Lcom/android/internal/R$style;->Widget_ProgressBar_Small:I
+Lcom/android/internal/R$style;->Widget_ProgressBar_Small_Inverse:I
+Lcom/android/internal/R$style;->Widget_RatingBar:I
+Lcom/android/internal/R$style;->Widget_ScrollView:I
+Lcom/android/internal/R$style;->Widget_SeekBar:I
+Lcom/android/internal/R$style;->Widget_Spinner:I
+Lcom/android/internal/R$style;->Widget_Spinner_DropDown:I
+Lcom/android/internal/R$style;->Widget_StackView:I
+Lcom/android/internal/R$style;->Widget_TabWidget:I
+Lcom/android/internal/R$style;->Widget_TextView:I
+Lcom/android/internal/R$style;->Widget_TextView_PopupMenu:I
+Lcom/android/internal/R$style;->Widget_TextView_SpinnerItem:I
+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
+Lcom/android/internal/R$styleable;->AbsoluteLayout_Layout_layout_y:I
+Lcom/android/internal/R$styleable;->AbsSpinner_entries:I
+Lcom/android/internal/R$styleable;->AccelerateInterpolator:[I
+Lcom/android/internal/R$styleable;->AccelerateInterpolator_factor:I
+Lcom/android/internal/R$styleable;->AccessibilityService:[I
+Lcom/android/internal/R$styleable;->AccessibilityService_accessibilityEventTypes:I
+Lcom/android/internal/R$styleable;->AccessibilityService_accessibilityFeedbackType:I
+Lcom/android/internal/R$styleable;->AccessibilityService_accessibilityFlags:I
+Lcom/android/internal/R$styleable;->AccessibilityService_canControlMagnification:I
+Lcom/android/internal/R$styleable;->AccessibilityService_canPerformGestures:I
+Lcom/android/internal/R$styleable;->AccessibilityService_canRequestEnhancedWebAccessibility:I
+Lcom/android/internal/R$styleable;->AccessibilityService_canRequestFilterKeyEvents:I
+Lcom/android/internal/R$styleable;->AccessibilityService_canRequestFingerprintGestures:I
+Lcom/android/internal/R$styleable;->AccessibilityService_canRequestTouchExplorationMode:I
+Lcom/android/internal/R$styleable;->AccessibilityService_canRetrieveWindowContent:I
+Lcom/android/internal/R$styleable;->AccessibilityService_description:I
+Lcom/android/internal/R$styleable;->AccessibilityService_notificationTimeout:I
+Lcom/android/internal/R$styleable;->AccessibilityService_packageNames:I
+Lcom/android/internal/R$styleable;->AccessibilityService_settingsActivity:I
+Lcom/android/internal/R$styleable;->AccessibilityService_summary:I
+Lcom/android/internal/R$styleable;->ActionBar:[I
+Lcom/android/internal/R$styleable;->ActionBar_background:I
+Lcom/android/internal/R$styleable;->ActionBar_backgroundSplit:I
+Lcom/android/internal/R$styleable;->ActionBar_backgroundStacked:I
+Lcom/android/internal/R$styleable;->ActionBar_contentInsetEnd:I
+Lcom/android/internal/R$styleable;->ActionBar_contentInsetEndWithActions:I
+Lcom/android/internal/R$styleable;->ActionBar_contentInsetLeft:I
+Lcom/android/internal/R$styleable;->ActionBar_contentInsetRight:I
+Lcom/android/internal/R$styleable;->ActionBar_contentInsetStart:I
+Lcom/android/internal/R$styleable;->ActionBar_contentInsetStartWithNavigation:I
+Lcom/android/internal/R$styleable;->ActionBar_customNavigationLayout:I
+Lcom/android/internal/R$styleable;->ActionBar_displayOptions:I
+Lcom/android/internal/R$styleable;->ActionBar_divider:I
+Lcom/android/internal/R$styleable;->ActionBar_elevation:I
+Lcom/android/internal/R$styleable;->ActionBar_height:I
+Lcom/android/internal/R$styleable;->ActionBar_hideOnContentScroll:I
+Lcom/android/internal/R$styleable;->ActionBar_homeAsUpIndicator:I
+Lcom/android/internal/R$styleable;->ActionBar_homeLayout:I
+Lcom/android/internal/R$styleable;->ActionBar_icon:I
+Lcom/android/internal/R$styleable;->ActionBar_indeterminateProgressStyle:I
+Lcom/android/internal/R$styleable;->ActionBar_itemPadding:I
+Lcom/android/internal/R$styleable;->ActionBar_LayoutParams:[I
+Lcom/android/internal/R$styleable;->ActionBar_LayoutParams_layout_gravity:I
+Lcom/android/internal/R$styleable;->ActionBar_logo:I
+Lcom/android/internal/R$styleable;->ActionBar_navigationMode:I
+Lcom/android/internal/R$styleable;->ActionBar_popupTheme:I
+Lcom/android/internal/R$styleable;->ActionBar_progressBarPadding:I
+Lcom/android/internal/R$styleable;->ActionBar_progressBarStyle:I
+Lcom/android/internal/R$styleable;->ActionBar_subtitle:I
+Lcom/android/internal/R$styleable;->ActionBar_subtitleTextStyle:I
+Lcom/android/internal/R$styleable;->ActionBar_title:I
+Lcom/android/internal/R$styleable;->ActionBar_titleTextStyle:I
+Lcom/android/internal/R$styleable;->ActionMenuItemView:[I
+Lcom/android/internal/R$styleable;->ActionMenuItemView_minWidth:I
+Lcom/android/internal/R$styleable;->ActionMode_background:I
+Lcom/android/internal/R$styleable;->ActionMode_backgroundSplit:I
+Lcom/android/internal/R$styleable;->ActionMode_closeItemLayout:I
+Lcom/android/internal/R$styleable;->ActionMode_height:I
+Lcom/android/internal/R$styleable;->ActionMode_subtitleTextStyle:I
+Lcom/android/internal/R$styleable;->ActionMode_titleTextStyle:I
+Lcom/android/internal/R$styleable;->ActivityChooserView:[I
+Lcom/android/internal/R$styleable;->ActivityChooserView_expandActivityOverflowButtonDrawable:I
+Lcom/android/internal/R$styleable;->ActivityChooserView_initialActivityCount:I
+Lcom/android/internal/R$styleable;->ActivityTaskDescription:[I
+Lcom/android/internal/R$styleable;->ActivityTaskDescription_colorBackground:I
+Lcom/android/internal/R$styleable;->ActivityTaskDescription_colorPrimary:I
+Lcom/android/internal/R$styleable;->ActivityTaskDescription_navigationBarColor:I
+Lcom/android/internal/R$styleable;->ActivityTaskDescription_statusBarColor:I
+Lcom/android/internal/R$styleable;->AdapterViewAnimator_animateFirstView:I
+Lcom/android/internal/R$styleable;->AdapterViewAnimator_inAnimation:I
+Lcom/android/internal/R$styleable;->AdapterViewAnimator_loopViews:I
+Lcom/android/internal/R$styleable;->AdapterViewAnimator_outAnimation:I
+Lcom/android/internal/R$styleable;->AdapterViewFlipper_autoStart:I
+Lcom/android/internal/R$styleable;->AdapterViewFlipper_flipInterval:I
+Lcom/android/internal/R$styleable;->AdaptiveIconDrawableLayer:[I
+Lcom/android/internal/R$styleable;->AdaptiveIconDrawableLayer_drawable:I
+Lcom/android/internal/R$styleable;->AidFilter:[I
+Lcom/android/internal/R$styleable;->AidFilter_name:I
+Lcom/android/internal/R$styleable;->AidGroup:[I
+Lcom/android/internal/R$styleable;->AidGroup_category:I
+Lcom/android/internal/R$styleable;->AidGroup_description:I
+Lcom/android/internal/R$styleable;->AidPrefixFilter:[I
+Lcom/android/internal/R$styleable;->AidPrefixFilter_name:I
+Lcom/android/internal/R$styleable;->AlertDialog_bottomBright:I
+Lcom/android/internal/R$styleable;->AlertDialog_bottomDark:I
+Lcom/android/internal/R$styleable;->AlertDialog_bottomMedium:I
+Lcom/android/internal/R$styleable;->AlertDialog_buttonPanelSideLayout:I
+Lcom/android/internal/R$styleable;->AlertDialog_centerBright:I
+Lcom/android/internal/R$styleable;->AlertDialog_centerDark:I
+Lcom/android/internal/R$styleable;->AlertDialog_centerMedium:I
+Lcom/android/internal/R$styleable;->AlertDialog_controllerType:I
+Lcom/android/internal/R$styleable;->AlertDialog_fullBright:I
+Lcom/android/internal/R$styleable;->AlertDialog_fullDark:I
+Lcom/android/internal/R$styleable;->AlertDialog_horizontalProgressLayout:I
+Lcom/android/internal/R$styleable;->AlertDialog_layout:I
+Lcom/android/internal/R$styleable;->AlertDialog_listItemLayout:I
+Lcom/android/internal/R$styleable;->AlertDialog_listLayout:I
+Lcom/android/internal/R$styleable;->AlertDialog_multiChoiceItemLayout:I
+Lcom/android/internal/R$styleable;->AlertDialog_needsDefaultBackgrounds:I
+Lcom/android/internal/R$styleable;->AlertDialog_progressLayout:I
+Lcom/android/internal/R$styleable;->AlertDialog_selectionScrollOffset:I
+Lcom/android/internal/R$styleable;->AlertDialog_showTitle:I
+Lcom/android/internal/R$styleable;->AlertDialog_singleChoiceItemLayout:I
+Lcom/android/internal/R$styleable;->AlertDialog_topBright:I
+Lcom/android/internal/R$styleable;->AlertDialog_topDark:I
+Lcom/android/internal/R$styleable;->AlphaAnimation:[I
+Lcom/android/internal/R$styleable;->AlphaAnimation_fromAlpha:I
+Lcom/android/internal/R$styleable;->AlphaAnimation_toAlpha:I
+Lcom/android/internal/R$styleable;->AnalogClock_dial:I
+Lcom/android/internal/R$styleable;->AnalogClock_hand_hour:I
+Lcom/android/internal/R$styleable;->AnalogClock_hand_minute:I
+Lcom/android/internal/R$styleable;->AndroidManifestAction:[I
+Lcom/android/internal/R$styleable;->AndroidManifestAction_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_description:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_enabled:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_exported:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_parentActivityName:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_permission:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias_targetActivity:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_allowEmbedded:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_alwaysFocusable:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_alwaysRetainTaskState:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_autoRemoveFromRecents:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_clearTaskOnLaunch:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_colorMode:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_directBootAware:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_documentLaunchMode:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_enableVrMode:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_finishOnCloseSystemDialogs:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_finishOnTaskLaunch:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_lockTaskMode:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_maxAspectRatio:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_maxRecents:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_multiprocess:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_parentActivityName:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_persistableMode:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_recreateOnConfigChanges:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_relinquishTaskIdentity:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_resizeableActivity:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_resumeWhilePausing:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_rotationAnimation:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_showForAllUsers:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_showOnLockScreen:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_showWhenLocked:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_singleUser:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_splitName:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_stateNotNeeded:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_supportsPictureInPicture:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_systemUserOnly:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_turnScreenOn:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_visibleToInstantApps:I
+Lcom/android/internal/R$styleable;->AndroidManifestAdditionalCertificate:[I
+Lcom/android/internal/R$styleable;->AndroidManifestAdditionalCertificate_certDigest:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_allowBackup:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_allowClearUserData:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_allowTaskReparenting:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_appCategory:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_appComponentFactory:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_backupAgent:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_backupInForeground:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_cantSaveState:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_classLoader:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_debuggable:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_defaultToDeviceProtectedStorage:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_description:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_directBootAware:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_extractNativeLibs:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_fullBackupContent:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_fullBackupOnly:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_hasCode:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_isGame:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_killAfterRestore:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_manageSpaceActivity:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_maxAspectRatio:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_multiArch:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_networkSecurityConfig:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_persistent:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_persistentWhenFeatureAvailable:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_requiredAccountType:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_requiredForAllUsers:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_resizeableActivity:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_restoreAnyVersion:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_restoreNeedsApplication:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_restrictedAccountType:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_taskAffinity:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_testOnly:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_usesCleartextTraffic:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_vmSafeMode:I
+Lcom/android/internal/R$styleable;->AndroidManifestCategory:[I
+Lcom/android/internal/R$styleable;->AndroidManifestCategory_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestCompatibleScreensScreen:[I
+Lcom/android/internal/R$styleable;->AndroidManifestCompatibleScreensScreen_screenDensity:I
+Lcom/android/internal/R$styleable;->AndroidManifestCompatibleScreensScreen_screenSize:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_host:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_mimeType:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_path:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_pathAdvancedPattern:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_pathPattern:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_pathPrefix:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_port:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_scheme:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_ssp:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_sspPattern:I
+Lcom/android/internal/R$styleable;->AndroidManifestData_sspPrefix:I
+Lcom/android/internal/R$styleable;->AndroidManifestFeatureGroup:[I
+Lcom/android/internal/R$styleable;->AndroidManifestFeatureGroup_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestGrantUriPermission_path:I
+Lcom/android/internal/R$styleable;->AndroidManifestGrantUriPermission_pathPattern:I
+Lcom/android/internal/R$styleable;->AndroidManifestGrantUriPermission_pathPrefix:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_functionalTest:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_handleProfiling:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_targetPackage:I
+Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation_targetProcesses:I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_autoVerify:I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_order:I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestKeySet:[I
+Lcom/android/internal/R$styleable;->AndroidManifestKeySet_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestLayout:[I
+Lcom/android/internal/R$styleable;->AndroidManifestLayout_defaultHeight:I
+Lcom/android/internal/R$styleable;->AndroidManifestLayout_defaultWidth:I
+Lcom/android/internal/R$styleable;->AndroidManifestLayout_gravity:I
+Lcom/android/internal/R$styleable;->AndroidManifestLayout_minHeight:I
+Lcom/android/internal/R$styleable;->AndroidManifestLayout_minWidth:I
+Lcom/android/internal/R$styleable;->AndroidManifestLibrary:[I
+Lcom/android/internal/R$styleable;->AndroidManifestLibrary_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestOriginalPackage_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestPackageVerifier_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestPackageVerifier_publicKey:I
+Lcom/android/internal/R$styleable;->AndroidManifestPathPermission_path:I
+Lcom/android/internal/R$styleable;->AndroidManifestPathPermission_pathAdvancedPattern:I
+Lcom/android/internal/R$styleable;->AndroidManifestPathPermission_pathPattern:I
+Lcom/android/internal/R$styleable;->AndroidManifestPathPermission_pathPrefix:I
+Lcom/android/internal/R$styleable;->AndroidManifestPathPermission_permission:I
+Lcom/android/internal/R$styleable;->AndroidManifestPathPermission_readPermission:I
+Lcom/android/internal/R$styleable;->AndroidManifestPathPermission_writePermission:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_description:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_permissionGroupFlags:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_priority:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_request:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionTree_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionTree_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionTree_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionTree_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionTree_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermissionTree_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_description:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_permissionFlags:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_permissionGroup:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_protectionLevel:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_request:I
+Lcom/android/internal/R$styleable;->AndroidManifestPermission_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestProtectedBroadcast_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_authorities:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_description:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_directBootAware:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_enabled:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_exported:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_grantUriPermissions:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_initOrder:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_multiprocess:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_permission:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_process:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_readPermission:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_singleUser:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_splitName:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_syncable:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_visibleToInstantApps:I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider_writePermission:I
+Lcom/android/internal/R$styleable;->AndroidManifestPublicKey:[I
+Lcom/android/internal/R$styleable;->AndroidManifestPublicKey_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestPublicKey_value:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver:[I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_description:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_directBootAware:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_enabled:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_exported:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_permission:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_process:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestReceiver_singleUser:I
+Lcom/android/internal/R$styleable;->AndroidManifestResourceOverlay:[I
+Lcom/android/internal/R$styleable;->AndroidManifestResourceOverlay_category:I
+Lcom/android/internal/R$styleable;->AndroidManifestResourceOverlay_isStatic:I
+Lcom/android/internal/R$styleable;->AndroidManifestResourceOverlay_priority:I
+Lcom/android/internal/R$styleable;->AndroidManifestResourceOverlay_requiredSystemPropertyName:I
+Lcom/android/internal/R$styleable;->AndroidManifestResourceOverlay_requiredSystemPropertyValue:I
+Lcom/android/internal/R$styleable;->AndroidManifestResourceOverlay_targetPackage:I
+Lcom/android/internal/R$styleable;->AndroidManifestRestrictUpdate:[I
+Lcom/android/internal/R$styleable;->AndroidManifestRestrictUpdate_hash:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_banner:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_description:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_directBootAware:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_externalService:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_isolatedProcess:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_roundIcon:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_singleUser:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_splitName:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_stopWithTask:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_visibleToInstantApps:I
+Lcom/android/internal/R$styleable;->AndroidManifestStaticLibrary:[I
+Lcom/android/internal/R$styleable;->AndroidManifestStaticLibrary_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestStaticLibrary_version:I
+Lcom/android/internal/R$styleable;->AndroidManifestStaticLibrary_versionMajor:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsInputInputType:[I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsInputInputType_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_anyDensity:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_compatibleWidthLimitDp:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_largeScreens:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_largestWidthLimitDp:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_normalScreens:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_requiresSmallestWidthDp:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_resizeable:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_smallScreens:I
+Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens_xlargeScreens:I
+Lcom/android/internal/R$styleable;->AndroidManifestUpgradeKeySet:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUpgradeKeySet_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesConfiguration_reqFiveWayNav:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesConfiguration_reqHardKeyboard:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesConfiguration_reqKeyboardType:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesConfiguration_reqNavigation:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesConfiguration_reqTouchScreen:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesFeature_glEsVersion:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesFeature_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesFeature_required:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesFeature_version:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesLibrary_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesLibrary_required:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission_maxSdkVersion:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission_requiredFeature:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission_requiredNotFeature:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk_maxSdkVersion:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesSplit:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesSplit_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesStaticLibrary:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesStaticLibrary_certDigest:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesStaticLibrary_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesStaticLibrary_version:I
+Lcom/android/internal/R$styleable;->AndroidManifest_compileSdkVersion:I
+Lcom/android/internal/R$styleable;->AndroidManifest_compileSdkVersionCodename:I
+Lcom/android/internal/R$styleable;->AndroidManifest_isFeatureSplit:I
+Lcom/android/internal/R$styleable;->AndroidManifest_isolatedSplits:I
+Lcom/android/internal/R$styleable;->AndroidManifest_revisionCode:I
+Lcom/android/internal/R$styleable;->AndroidManifest_sharedUserLabel:I
+Lcom/android/internal/R$styleable;->AndroidManifest_targetSandboxVersion:I
+Lcom/android/internal/R$styleable;->AndroidManifest_versionCodeMajor:I
+Lcom/android/internal/R$styleable;->AnimatedImageDrawable:[I
+Lcom/android/internal/R$styleable;->AnimatedImageDrawable_autoMirrored:I
+Lcom/android/internal/R$styleable;->AnimatedImageDrawable_autoStart:I
+Lcom/android/internal/R$styleable;->AnimatedImageDrawable_repeatCount:I
+Lcom/android/internal/R$styleable;->AnimatedImageDrawable_src:I
+Lcom/android/internal/R$styleable;->AnimatedRotateDrawable:[I
+Lcom/android/internal/R$styleable;->AnimatedRotateDrawable_drawable:I
+Lcom/android/internal/R$styleable;->AnimatedRotateDrawable_frameDuration:I
+Lcom/android/internal/R$styleable;->AnimatedRotateDrawable_framesCount:I
+Lcom/android/internal/R$styleable;->AnimatedRotateDrawable_pivotX:I
+Lcom/android/internal/R$styleable;->AnimatedRotateDrawable_pivotY:I
+Lcom/android/internal/R$styleable;->AnimatedRotateDrawable_visible:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawable:[I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawableItem:[I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawableItem_drawable:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawableItem_id:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawableTransition:[I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawableTransition_drawable:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawableTransition_fromId:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawableTransition_reversible:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawableTransition_toId:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawable_autoMirrored:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawable_constantSize:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawable_dither:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawable_enterFadeDuration:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawable_exitFadeDuration:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawable_variablePadding:I
+Lcom/android/internal/R$styleable;->AnimatedStateListDrawable_visible:I
+Lcom/android/internal/R$styleable;->AnimatedVectorDrawable:[I
+Lcom/android/internal/R$styleable;->AnimatedVectorDrawableTarget:[I
+Lcom/android/internal/R$styleable;->AnimatedVectorDrawableTarget_animation:I
+Lcom/android/internal/R$styleable;->AnimatedVectorDrawableTarget_name:I
+Lcom/android/internal/R$styleable;->AnimatedVectorDrawable_drawable:I
+Lcom/android/internal/R$styleable;->Animation:[I
+Lcom/android/internal/R$styleable;->AnimationDrawable:[I
+Lcom/android/internal/R$styleable;->AnimationDrawableItem:[I
+Lcom/android/internal/R$styleable;->AnimationDrawableItem_drawable:I
+Lcom/android/internal/R$styleable;->AnimationDrawableItem_duration:I
+Lcom/android/internal/R$styleable;->AnimationDrawable_oneshot:I
+Lcom/android/internal/R$styleable;->AnimationDrawable_variablePadding:I
+Lcom/android/internal/R$styleable;->AnimationDrawable_visible:I
+Lcom/android/internal/R$styleable;->AnimationScaleListDrawable:[I
+Lcom/android/internal/R$styleable;->AnimationScaleListDrawableItem:[I
+Lcom/android/internal/R$styleable;->AnimationScaleListDrawableItem_drawable:I
+Lcom/android/internal/R$styleable;->AnimationSet:[I
+Lcom/android/internal/R$styleable;->AnimationSet_duration:I
+Lcom/android/internal/R$styleable;->AnimationSet_fillAfter:I
+Lcom/android/internal/R$styleable;->AnimationSet_fillBefore:I
+Lcom/android/internal/R$styleable;->AnimationSet_repeatMode:I
+Lcom/android/internal/R$styleable;->AnimationSet_shareInterpolator:I
+Lcom/android/internal/R$styleable;->AnimationSet_startOffset:I
+Lcom/android/internal/R$styleable;->Animation_background:I
+Lcom/android/internal/R$styleable;->Animation_detachWallpaper:I
+Lcom/android/internal/R$styleable;->Animation_duration:I
+Lcom/android/internal/R$styleable;->Animation_fillAfter:I
+Lcom/android/internal/R$styleable;->Animation_fillBefore:I
+Lcom/android/internal/R$styleable;->Animation_fillEnabled:I
+Lcom/android/internal/R$styleable;->Animation_interpolator:I
+Lcom/android/internal/R$styleable;->Animation_repeatCount:I
+Lcom/android/internal/R$styleable;->Animation_repeatMode:I
+Lcom/android/internal/R$styleable;->Animation_showWallpaper:I
+Lcom/android/internal/R$styleable;->Animation_startOffset:I
+Lcom/android/internal/R$styleable;->Animation_zAdjustment:I
+Lcom/android/internal/R$styleable;->Animator:[I
+Lcom/android/internal/R$styleable;->AnimatorSet:[I
+Lcom/android/internal/R$styleable;->AnimatorSet_ordering:I
+Lcom/android/internal/R$styleable;->Animator_duration:I
+Lcom/android/internal/R$styleable;->Animator_interpolator:I
+Lcom/android/internal/R$styleable;->Animator_removeBeforeMRelease:I
+Lcom/android/internal/R$styleable;->Animator_repeatCount:I
+Lcom/android/internal/R$styleable;->Animator_repeatMode:I
+Lcom/android/internal/R$styleable;->Animator_startOffset:I
+Lcom/android/internal/R$styleable;->Animator_valueFrom:I
+Lcom/android/internal/R$styleable;->Animator_valueTo:I
+Lcom/android/internal/R$styleable;->Animator_valueType:I
+Lcom/android/internal/R$styleable;->AnticipateInterpolator:[I
+Lcom/android/internal/R$styleable;->AnticipateInterpolator_tension:I
+Lcom/android/internal/R$styleable;->AnticipateOvershootInterpolator:[I
+Lcom/android/internal/R$styleable;->AnticipateOvershootInterpolator_extraTension:I
+Lcom/android/internal/R$styleable;->AnticipateOvershootInterpolator_tension:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_autoAdvanceViewId:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_configure:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_initialKeyguardLayout:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_initialLayout:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_minHeight:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_minResizeHeight:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_minResizeWidth:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_minWidth:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_previewImage:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_resizeMode:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_updatePeriodMillis:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_widgetCategory:I
+Lcom/android/internal/R$styleable;->AppWidgetProviderInfo_widgetFeatures:I
+Lcom/android/internal/R$styleable;->ArcMotion:[I
+Lcom/android/internal/R$styleable;->ArcMotion_maximumAngle:I
+Lcom/android/internal/R$styleable;->ArcMotion_minimumHorizontalAngle:I
+Lcom/android/internal/R$styleable;->ArcMotion_minimumVerticalAngle:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_completionHint:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_completionHintView:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_completionThreshold:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_dropDownAnchor:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_dropDownHeight:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_dropDownSelector:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_dropDownWidth:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_inputType:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView_popupTheme:I
+Lcom/android/internal/R$styleable;->AutofillService:[I
+Lcom/android/internal/R$styleable;->AutofillService_CompatibilityPackage:[I
+Lcom/android/internal/R$styleable;->AutofillService_CompatibilityPackage_maxLongVersionCode:I
+Lcom/android/internal/R$styleable;->AutofillService_CompatibilityPackage_name:I
+Lcom/android/internal/R$styleable;->AutofillService_settingsActivity:I
+Lcom/android/internal/R$styleable;->BitmapDrawable:[I
+Lcom/android/internal/R$styleable;->BitmapDrawable_alpha:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_antialias:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_autoMirrored:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_dither:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_filter:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_gravity:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_mipMap:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_src:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_tileMode:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_tileModeX:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_tileModeY:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_tint:I
+Lcom/android/internal/R$styleable;->BitmapDrawable_tintMode:I
+Lcom/android/internal/R$styleable;->Button:[I
+Lcom/android/internal/R$styleable;->ButtonBarLayout:[I
+Lcom/android/internal/R$styleable;->ButtonBarLayout_allowStacking:I
+Lcom/android/internal/R$styleable;->CalendarView:[I
+Lcom/android/internal/R$styleable;->CalendarView_calendarViewMode:I
+Lcom/android/internal/R$styleable;->CalendarView_dateTextAppearance:I
+Lcom/android/internal/R$styleable;->CalendarView_dayHighlightColor:I
+Lcom/android/internal/R$styleable;->CalendarView_daySelectorColor:I
+Lcom/android/internal/R$styleable;->CalendarView_firstDayOfWeek:I
+Lcom/android/internal/R$styleable;->CalendarView_focusedMonthDateColor:I
+Lcom/android/internal/R$styleable;->CalendarView_maxDate:I
+Lcom/android/internal/R$styleable;->CalendarView_minDate:I
+Lcom/android/internal/R$styleable;->CalendarView_monthTextAppearance:I
+Lcom/android/internal/R$styleable;->CalendarView_selectedDateVerticalBar:I
+Lcom/android/internal/R$styleable;->CalendarView_selectedWeekBackgroundColor:I
+Lcom/android/internal/R$styleable;->CalendarView_shownWeekCount:I
+Lcom/android/internal/R$styleable;->CalendarView_showWeekNumber:I
+Lcom/android/internal/R$styleable;->CalendarView_unfocusedMonthDateColor:I
+Lcom/android/internal/R$styleable;->CalendarView_weekDayTextAppearance:I
+Lcom/android/internal/R$styleable;->CalendarView_weekNumberColor:I
+Lcom/android/internal/R$styleable;->CalendarView_weekSeparatorLineColor:I
+Lcom/android/internal/R$styleable;->ChangeBounds:[I
+Lcom/android/internal/R$styleable;->ChangeBounds_resizeClip:I
+Lcom/android/internal/R$styleable;->ChangeTransform:[I
+Lcom/android/internal/R$styleable;->ChangeTransform_reparent:I
+Lcom/android/internal/R$styleable;->ChangeTransform_reparentWithOverlay:I
+Lcom/android/internal/R$styleable;->CheckedTextView_checkMarkGravity:I
+Lcom/android/internal/R$styleable;->CheckedTextView_checkMarkTint:I
+Lcom/android/internal/R$styleable;->CheckedTextView_checkMarkTintMode:I
+Lcom/android/internal/R$styleable;->Chronometer:[I
+Lcom/android/internal/R$styleable;->Chronometer_countDown:I
+Lcom/android/internal/R$styleable;->Chronometer_format:I
+Lcom/android/internal/R$styleable;->ClipDrawable:[I
+Lcom/android/internal/R$styleable;->ClipDrawable_clipOrientation:I
+Lcom/android/internal/R$styleable;->ClipDrawable_drawable:I
+Lcom/android/internal/R$styleable;->ClipDrawable_gravity:I
+Lcom/android/internal/R$styleable;->ClipRectAnimation:[I
+Lcom/android/internal/R$styleable;->ClipRectAnimation_fromBottom:I
+Lcom/android/internal/R$styleable;->ClipRectAnimation_fromLeft:I
+Lcom/android/internal/R$styleable;->ClipRectAnimation_fromRight:I
+Lcom/android/internal/R$styleable;->ClipRectAnimation_fromTop:I
+Lcom/android/internal/R$styleable;->ClipRectAnimation_toBottom:I
+Lcom/android/internal/R$styleable;->ClipRectAnimation_toLeft:I
+Lcom/android/internal/R$styleable;->ClipRectAnimation_toRight:I
+Lcom/android/internal/R$styleable;->ClipRectAnimation_toTop:I
+Lcom/android/internal/R$styleable;->ColorDrawable:[I
+Lcom/android/internal/R$styleable;->ColorDrawable_color:I
+Lcom/android/internal/R$styleable;->ColorStateListItem:[I
+Lcom/android/internal/R$styleable;->ColorStateListItem_alpha:I
+Lcom/android/internal/R$styleable;->ColorStateListItem_color:I
+Lcom/android/internal/R$styleable;->CompoundButton_buttonTint:I
+Lcom/android/internal/R$styleable;->CompoundButton_buttonTintMode:I
+Lcom/android/internal/R$styleable;->ContactsDataKind_allContactsName:I
+Lcom/android/internal/R$styleable;->ContactsDataKind_detailColumn:I
+Lcom/android/internal/R$styleable;->ContactsDataKind_detailSocialSummary:I
+Lcom/android/internal/R$styleable;->ContactsDataKind_icon:I
+Lcom/android/internal/R$styleable;->ContactsDataKind_mimeType:I
+Lcom/android/internal/R$styleable;->ContactsDataKind_summaryColumn:I
+Lcom/android/internal/R$styleable;->CycleInterpolator_cycles:I
+Lcom/android/internal/R$styleable;->DatePicker_calendarTextColor:I
+Lcom/android/internal/R$styleable;->DatePicker_calendarViewShown:I
+Lcom/android/internal/R$styleable;->DatePicker_datePickerMode:I
+Lcom/android/internal/R$styleable;->DatePicker_dayOfWeekBackground:I
+Lcom/android/internal/R$styleable;->DatePicker_dayOfWeekTextAppearance:I
+Lcom/android/internal/R$styleable;->DatePicker_dialogMode:I
+Lcom/android/internal/R$styleable;->DatePicker_endYear:I
+Lcom/android/internal/R$styleable;->DatePicker_firstDayOfWeek:I
+Lcom/android/internal/R$styleable;->DatePicker_headerBackground:I
+Lcom/android/internal/R$styleable;->DatePicker_headerDayOfMonthTextAppearance:I
+Lcom/android/internal/R$styleable;->DatePicker_headerMonthTextAppearance:I
+Lcom/android/internal/R$styleable;->DatePicker_headerTextColor:I
+Lcom/android/internal/R$styleable;->DatePicker_headerYearTextAppearance:I
+Lcom/android/internal/R$styleable;->DatePicker_internalLayout:I
+Lcom/android/internal/R$styleable;->DatePicker_legacyLayout:I
+Lcom/android/internal/R$styleable;->DatePicker_maxDate:I
+Lcom/android/internal/R$styleable;->DatePicker_minDate:I
+Lcom/android/internal/R$styleable;->DatePicker_spinnersShown:I
+Lcom/android/internal/R$styleable;->DatePicker_startYear:I
+Lcom/android/internal/R$styleable;->DatePicker_yearListItemActivatedTextAppearance:I
+Lcom/android/internal/R$styleable;->DatePicker_yearListItemTextAppearance:I
+Lcom/android/internal/R$styleable;->DatePicker_yearListSelectorColor:I
+Lcom/android/internal/R$styleable;->DateTimeView:[I
+Lcom/android/internal/R$styleable;->DateTimeView_showRelative:I
+Lcom/android/internal/R$styleable;->DecelerateInterpolator:[I
+Lcom/android/internal/R$styleable;->DecelerateInterpolator_factor:I
+Lcom/android/internal/R$styleable;->DeviceAdmin:[I
+Lcom/android/internal/R$styleable;->DeviceAdmin_visible:I
+Lcom/android/internal/R$styleable;->DialogPreference_dialogIcon:I
+Lcom/android/internal/R$styleable;->DialogPreference_dialogLayout:I
+Lcom/android/internal/R$styleable;->DialogPreference_dialogMessage:I
+Lcom/android/internal/R$styleable;->DialogPreference_negativeButtonText:I
+Lcom/android/internal/R$styleable;->DialogPreference_positiveButtonText:I
+Lcom/android/internal/R$styleable;->Drawable:[I
+Lcom/android/internal/R$styleable;->DrawableCorners:[I
+Lcom/android/internal/R$styleable;->DrawableCorners_bottomLeftRadius:I
+Lcom/android/internal/R$styleable;->DrawableCorners_bottomRightRadius:I
+Lcom/android/internal/R$styleable;->DrawableCorners_radius:I
+Lcom/android/internal/R$styleable;->DrawableCorners_topLeftRadius:I
+Lcom/android/internal/R$styleable;->DrawableCorners_topRightRadius:I
+Lcom/android/internal/R$styleable;->DrawableStates:[I
+Lcom/android/internal/R$styleable;->DrawableStates_state_accelerated:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_accessibility_focused:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_activated:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_active:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_checkable:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_checked:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_drag_can_accept:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_drag_hovered:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_enabled:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_first:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_focused:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_hovered:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_last:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_middle:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_pressed:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_selected:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_single:I
+Lcom/android/internal/R$styleable;->DrawableStates_state_window_focused:I
+Lcom/android/internal/R$styleable;->DrawableWrapper:[I
+Lcom/android/internal/R$styleable;->DrawableWrapper_drawable:I
+Lcom/android/internal/R$styleable;->Drawable_autoMirrored:I
+Lcom/android/internal/R$styleable;->Drawable_visible:I
+Lcom/android/internal/R$styleable;->Dream_settingsActivity:I
+Lcom/android/internal/R$styleable;->EditText:[I
+Lcom/android/internal/R$styleable;->EpicenterTranslateClipReveal:[I
+Lcom/android/internal/R$styleable;->EpicenterTranslateClipReveal_interpolatorX:I
+Lcom/android/internal/R$styleable;->EpicenterTranslateClipReveal_interpolatorY:I
+Lcom/android/internal/R$styleable;->EpicenterTranslateClipReveal_interpolatorZ:I
+Lcom/android/internal/R$styleable;->ExpandableListChildIndicatorState:[I
+Lcom/android/internal/R$styleable;->ExpandableListChildIndicatorState_state_last:I
+Lcom/android/internal/R$styleable;->ExpandableListGroupIndicatorState:[I
+Lcom/android/internal/R$styleable;->ExpandableListGroupIndicatorState_state_empty:I
+Lcom/android/internal/R$styleable;->ExpandableListGroupIndicatorState_state_expanded:I
+Lcom/android/internal/R$styleable;->ExpandableListView:[I
+Lcom/android/internal/R$styleable;->ExpandableListView_childDivider:I
+Lcom/android/internal/R$styleable;->ExpandableListView_childIndicator:I
+Lcom/android/internal/R$styleable;->ExpandableListView_childIndicatorEnd:I
+Lcom/android/internal/R$styleable;->ExpandableListView_childIndicatorLeft:I
+Lcom/android/internal/R$styleable;->ExpandableListView_childIndicatorRight:I
+Lcom/android/internal/R$styleable;->ExpandableListView_childIndicatorStart:I
+Lcom/android/internal/R$styleable;->ExpandableListView_groupIndicator:I
+Lcom/android/internal/R$styleable;->ExpandableListView_indicatorEnd:I
+Lcom/android/internal/R$styleable;->ExpandableListView_indicatorLeft:I
+Lcom/android/internal/R$styleable;->ExpandableListView_indicatorRight:I
+Lcom/android/internal/R$styleable;->ExpandableListView_indicatorStart:I
+Lcom/android/internal/R$styleable;->Extra:[I
+Lcom/android/internal/R$styleable;->Extra_name:I
+Lcom/android/internal/R$styleable;->Extra_value:I
+Lcom/android/internal/R$styleable;->Fade:[I
+Lcom/android/internal/R$styleable;->Fade_fadingMode:I
+Lcom/android/internal/R$styleable;->FastScroll_backgroundLeft:I
+Lcom/android/internal/R$styleable;->FastScroll_backgroundRight:I
+Lcom/android/internal/R$styleable;->FastScroll_minHeight:I
+Lcom/android/internal/R$styleable;->FastScroll_minWidth:I
+Lcom/android/internal/R$styleable;->FastScroll_padding:I
+Lcom/android/internal/R$styleable;->FastScroll_position:I
+Lcom/android/internal/R$styleable;->FastScroll_textAppearance:I
+Lcom/android/internal/R$styleable;->FastScroll_textColor:I
+Lcom/android/internal/R$styleable;->FastScroll_textSize:I
+Lcom/android/internal/R$styleable;->FastScroll_thumbDrawable:I
+Lcom/android/internal/R$styleable;->FastScroll_thumbMinHeight:I
+Lcom/android/internal/R$styleable;->FastScroll_thumbMinWidth:I
+Lcom/android/internal/R$styleable;->FastScroll_thumbPosition:I
+Lcom/android/internal/R$styleable;->FastScroll_trackDrawable:I
+Lcom/android/internal/R$styleable;->FontFamily:[I
+Lcom/android/internal/R$styleable;->FontFamilyFont:[I
+Lcom/android/internal/R$styleable;->FontFamilyFont_font:I
+Lcom/android/internal/R$styleable;->FontFamilyFont_fontStyle:I
+Lcom/android/internal/R$styleable;->FontFamilyFont_fontVariationSettings:I
+Lcom/android/internal/R$styleable;->FontFamilyFont_fontWeight:I
+Lcom/android/internal/R$styleable;->FontFamilyFont_ttcIndex:I
+Lcom/android/internal/R$styleable;->FontFamily_fontProviderAuthority:I
+Lcom/android/internal/R$styleable;->FontFamily_fontProviderCerts:I
+Lcom/android/internal/R$styleable;->FontFamily_fontProviderPackage:I
+Lcom/android/internal/R$styleable;->FontFamily_fontProviderQuery:I
+Lcom/android/internal/R$styleable;->Fragment:[I
+Lcom/android/internal/R$styleable;->FragmentAnimation:[I
+Lcom/android/internal/R$styleable;->FragmentAnimation_fragmentCloseEnterAnimation:I
+Lcom/android/internal/R$styleable;->FragmentAnimation_fragmentCloseExitAnimation:I
+Lcom/android/internal/R$styleable;->FragmentAnimation_fragmentFadeEnterAnimation:I
+Lcom/android/internal/R$styleable;->FragmentAnimation_fragmentFadeExitAnimation:I
+Lcom/android/internal/R$styleable;->FragmentAnimation_fragmentOpenEnterAnimation:I
+Lcom/android/internal/R$styleable;->FragmentAnimation_fragmentOpenExitAnimation:I
+Lcom/android/internal/R$styleable;->FragmentBreadCrumbs:[I
+Lcom/android/internal/R$styleable;->FragmentBreadCrumbs_gravity:I
+Lcom/android/internal/R$styleable;->FragmentBreadCrumbs_itemColor:I
+Lcom/android/internal/R$styleable;->FragmentBreadCrumbs_itemLayout:I
+Lcom/android/internal/R$styleable;->Fragment_fragmentAllowEnterTransitionOverlap:I
+Lcom/android/internal/R$styleable;->Fragment_fragmentAllowReturnTransitionOverlap:I
+Lcom/android/internal/R$styleable;->Fragment_fragmentEnterTransition:I
+Lcom/android/internal/R$styleable;->Fragment_fragmentExitTransition:I
+Lcom/android/internal/R$styleable;->Fragment_fragmentReenterTransition:I
+Lcom/android/internal/R$styleable;->Fragment_fragmentReturnTransition:I
+Lcom/android/internal/R$styleable;->Fragment_fragmentSharedElementEnterTransition:I
+Lcom/android/internal/R$styleable;->Fragment_fragmentSharedElementReturnTransition:I
+Lcom/android/internal/R$styleable;->Fragment_id:I
+Lcom/android/internal/R$styleable;->Fragment_name:I
+Lcom/android/internal/R$styleable;->Fragment_tag:I
+Lcom/android/internal/R$styleable;->FrameLayout_Layout_layout_gravity:I
+Lcom/android/internal/R$styleable;->FrameLayout_measureAllChildren:I
+Lcom/android/internal/R$styleable;->Gallery_animationDuration:I
+Lcom/android/internal/R$styleable;->Gallery_gravity:I
+Lcom/android/internal/R$styleable;->Gallery_spacing:I
+Lcom/android/internal/R$styleable;->Gallery_unselectedAlpha:I
+Lcom/android/internal/R$styleable;->GestureOverlayView:[I
+Lcom/android/internal/R$styleable;->GestureOverlayView_eventsInterceptionEnabled:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_fadeDuration:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_fadeEnabled:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_fadeOffset:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_gestureColor:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_gestureStrokeAngleThreshold:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_gestureStrokeLengthThreshold:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_gestureStrokeSquarenessThreshold:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_gestureStrokeType:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_gestureStrokeWidth:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_orientation:I
+Lcom/android/internal/R$styleable;->GestureOverlayView_uncertainGestureColor:I
+Lcom/android/internal/R$styleable;->GlowPadView:[I
+Lcom/android/internal/R$styleable;->GlowPadView_directionDescriptions:I
+Lcom/android/internal/R$styleable;->GlowPadView_targetDescriptions:I
+Lcom/android/internal/R$styleable;->GradientColor:[I
+Lcom/android/internal/R$styleable;->GradientColorItem:[I
+Lcom/android/internal/R$styleable;->GradientColorItem_color:I
+Lcom/android/internal/R$styleable;->GradientColorItem_offset:I
+Lcom/android/internal/R$styleable;->GradientColor_centerColor:I
+Lcom/android/internal/R$styleable;->GradientColor_centerX:I
+Lcom/android/internal/R$styleable;->GradientColor_centerY:I
+Lcom/android/internal/R$styleable;->GradientColor_endColor:I
+Lcom/android/internal/R$styleable;->GradientColor_endX:I
+Lcom/android/internal/R$styleable;->GradientColor_endY:I
+Lcom/android/internal/R$styleable;->GradientColor_gradientRadius:I
+Lcom/android/internal/R$styleable;->GradientColor_startColor:I
+Lcom/android/internal/R$styleable;->GradientColor_startX:I
+Lcom/android/internal/R$styleable;->GradientColor_startY:I
+Lcom/android/internal/R$styleable;->GradientColor_tileMode:I
+Lcom/android/internal/R$styleable;->GradientColor_type:I
+Lcom/android/internal/R$styleable;->GradientDrawable:[I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient:[I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_angle:I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_centerColor:I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_centerX:I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_centerY:I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_endColor:I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_gradientRadius:I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_startColor:I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_type:I
+Lcom/android/internal/R$styleable;->GradientDrawableGradient_useLevel:I
+Lcom/android/internal/R$styleable;->GradientDrawablePadding:[I
+Lcom/android/internal/R$styleable;->GradientDrawablePadding_bottom:I
+Lcom/android/internal/R$styleable;->GradientDrawablePadding_left:I
+Lcom/android/internal/R$styleable;->GradientDrawablePadding_right:I
+Lcom/android/internal/R$styleable;->GradientDrawablePadding_top:I
+Lcom/android/internal/R$styleable;->GradientDrawableSize:[I
+Lcom/android/internal/R$styleable;->GradientDrawableSize_height:I
+Lcom/android/internal/R$styleable;->GradientDrawableSize_width:I
+Lcom/android/internal/R$styleable;->GradientDrawableSolid:[I
+Lcom/android/internal/R$styleable;->GradientDrawableSolid_color:I
+Lcom/android/internal/R$styleable;->GradientDrawableStroke:[I
+Lcom/android/internal/R$styleable;->GradientDrawableStroke_color:I
+Lcom/android/internal/R$styleable;->GradientDrawableStroke_dashGap:I
+Lcom/android/internal/R$styleable;->GradientDrawableStroke_dashWidth:I
+Lcom/android/internal/R$styleable;->GradientDrawableStroke_width:I
+Lcom/android/internal/R$styleable;->GradientDrawable_dither:I
+Lcom/android/internal/R$styleable;->GradientDrawable_innerRadius:I
+Lcom/android/internal/R$styleable;->GradientDrawable_innerRadiusRatio:I
+Lcom/android/internal/R$styleable;->GradientDrawable_opticalInsetBottom:I
+Lcom/android/internal/R$styleable;->GradientDrawable_opticalInsetLeft:I
+Lcom/android/internal/R$styleable;->GradientDrawable_opticalInsetRight:I
+Lcom/android/internal/R$styleable;->GradientDrawable_opticalInsetTop:I
+Lcom/android/internal/R$styleable;->GradientDrawable_shape:I
+Lcom/android/internal/R$styleable;->GradientDrawable_thickness:I
+Lcom/android/internal/R$styleable;->GradientDrawable_thicknessRatio:I
+Lcom/android/internal/R$styleable;->GradientDrawable_tint:I
+Lcom/android/internal/R$styleable;->GradientDrawable_tintMode:I
+Lcom/android/internal/R$styleable;->GradientDrawable_useLevel:I
+Lcom/android/internal/R$styleable;->GradientDrawable_visible:I
+Lcom/android/internal/R$styleable;->GridLayout:[I
+Lcom/android/internal/R$styleable;->GridLayoutAnimation:[I
+Lcom/android/internal/R$styleable;->GridLayoutAnimation_columnDelay:I
+Lcom/android/internal/R$styleable;->GridLayoutAnimation_direction:I
+Lcom/android/internal/R$styleable;->GridLayoutAnimation_directionPriority:I
+Lcom/android/internal/R$styleable;->GridLayoutAnimation_rowDelay:I
+Lcom/android/internal/R$styleable;->GridLayout_alignmentMode:I
+Lcom/android/internal/R$styleable;->GridLayout_columnCount:I
+Lcom/android/internal/R$styleable;->GridLayout_columnOrderPreserved:I
+Lcom/android/internal/R$styleable;->GridLayout_Layout:[I
+Lcom/android/internal/R$styleable;->GridLayout_Layout_layout_column:I
+Lcom/android/internal/R$styleable;->GridLayout_Layout_layout_columnSpan:I
+Lcom/android/internal/R$styleable;->GridLayout_Layout_layout_columnWeight:I
+Lcom/android/internal/R$styleable;->GridLayout_Layout_layout_gravity:I
+Lcom/android/internal/R$styleable;->GridLayout_Layout_layout_row:I
+Lcom/android/internal/R$styleable;->GridLayout_Layout_layout_rowSpan:I
+Lcom/android/internal/R$styleable;->GridLayout_Layout_layout_rowWeight:I
+Lcom/android/internal/R$styleable;->GridLayout_orientation:I
+Lcom/android/internal/R$styleable;->GridLayout_rowCount:I
+Lcom/android/internal/R$styleable;->GridLayout_rowOrderPreserved:I
+Lcom/android/internal/R$styleable;->GridLayout_useDefaultMargins:I
+Lcom/android/internal/R$styleable;->GridView_columnWidth:I
+Lcom/android/internal/R$styleable;->GridView_gravity:I
+Lcom/android/internal/R$styleable;->GridView_horizontalSpacing:I
+Lcom/android/internal/R$styleable;->GridView_numColumns:I
+Lcom/android/internal/R$styleable;->GridView_stretchMode:I
+Lcom/android/internal/R$styleable;->GridView_verticalSpacing:I
+Lcom/android/internal/R$styleable;->HorizontalScrollView:[I
+Lcom/android/internal/R$styleable;->HorizontalScrollView_fillViewport:I
+Lcom/android/internal/R$styleable;->HostApduService:[I
+Lcom/android/internal/R$styleable;->HostApduService_apduServiceBanner:I
+Lcom/android/internal/R$styleable;->HostApduService_description:I
+Lcom/android/internal/R$styleable;->HostApduService_requireDeviceUnlock:I
+Lcom/android/internal/R$styleable;->HostApduService_settingsActivity:I
+Lcom/android/internal/R$styleable;->HostNfcFService:[I
+Lcom/android/internal/R$styleable;->HostNfcFService_description:I
+Lcom/android/internal/R$styleable;->Icon:[I
+Lcom/android/internal/R$styleable;->IconDefault:[I
+Lcom/android/internal/R$styleable;->IconDefault_icon:I
+Lcom/android/internal/R$styleable;->IconMenuView_maxItems:I
+Lcom/android/internal/R$styleable;->IconMenuView_maxItemsPerRow:I
+Lcom/android/internal/R$styleable;->IconMenuView_maxRows:I
+Lcom/android/internal/R$styleable;->IconMenuView_moreIcon:I
+Lcom/android/internal/R$styleable;->IconMenuView_rowHeight:I
+Lcom/android/internal/R$styleable;->Icon_icon:I
+Lcom/android/internal/R$styleable;->Icon_mimeType:I
+Lcom/android/internal/R$styleable;->ImageSwitcher:[I
+Lcom/android/internal/R$styleable;->ImageView_adjustViewBounds:I
+Lcom/android/internal/R$styleable;->ImageView_baseline:I
+Lcom/android/internal/R$styleable;->ImageView_baselineAlignBottom:I
+Lcom/android/internal/R$styleable;->ImageView_cropToPadding:I
+Lcom/android/internal/R$styleable;->ImageView_drawableAlpha:I
+Lcom/android/internal/R$styleable;->ImageView_maxHeight:I
+Lcom/android/internal/R$styleable;->ImageView_maxWidth:I
+Lcom/android/internal/R$styleable;->ImageView_tint:I
+Lcom/android/internal/R$styleable;->ImageView_tintMode:I
+Lcom/android/internal/R$styleable;->Include:[I
+Lcom/android/internal/R$styleable;->Include_id:I
+Lcom/android/internal/R$styleable;->Include_visibility:I
+Lcom/android/internal/R$styleable;->InputExtras:[I
+Lcom/android/internal/R$styleable;->InputMethod:[I
+Lcom/android/internal/R$styleable;->InputMethodService:[I
+Lcom/android/internal/R$styleable;->InputMethodService_imeExtractEnterAnimation:I
+Lcom/android/internal/R$styleable;->InputMethodService_imeExtractExitAnimation:I
+Lcom/android/internal/R$styleable;->InputMethodService_imeFullscreenBackground:I
+Lcom/android/internal/R$styleable;->InputMethod_isDefault:I
+Lcom/android/internal/R$styleable;->InputMethod_isVrOnly:I
+Lcom/android/internal/R$styleable;->InputMethod_settingsActivity:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype:[I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_icon:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_imeSubtypeExtraValue:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_imeSubtypeLocale:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_imeSubtypeMode:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_isAsciiCapable:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_isAuxiliary:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_label:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_languageTag:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_overridesImplicitlyEnabledSubtype:I
+Lcom/android/internal/R$styleable;->InputMethod_Subtype_subtypeId:I
+Lcom/android/internal/R$styleable;->InputMethod_supportsSwitchingToNextInputMethod:I
+Lcom/android/internal/R$styleable;->InputMethod___removed2:I
+Lcom/android/internal/R$styleable;->InsetDrawable:[I
+Lcom/android/internal/R$styleable;->InsetDrawable_drawable:I
+Lcom/android/internal/R$styleable;->InsetDrawable_inset:I
+Lcom/android/internal/R$styleable;->InsetDrawable_insetBottom:I
+Lcom/android/internal/R$styleable;->InsetDrawable_insetLeft:I
+Lcom/android/internal/R$styleable;->InsetDrawable_insetRight:I
+Lcom/android/internal/R$styleable;->InsetDrawable_insetTop:I
+Lcom/android/internal/R$styleable;->InsetDrawable_visible:I
+Lcom/android/internal/R$styleable;->Intent:[I
+Lcom/android/internal/R$styleable;->IntentCategory:[I
+Lcom/android/internal/R$styleable;->IntentCategory_name:I
+Lcom/android/internal/R$styleable;->Intent_action:I
+Lcom/android/internal/R$styleable;->Intent_data:I
+Lcom/android/internal/R$styleable;->Intent_mimeType:I
+Lcom/android/internal/R$styleable;->Intent_targetClass:I
+Lcom/android/internal/R$styleable;->Intent_targetPackage:I
+Lcom/android/internal/R$styleable;->KeyboardLayout:[I
+Lcom/android/internal/R$styleable;->KeyboardLayout_keyboardLayout:I
+Lcom/android/internal/R$styleable;->KeyboardLayout_label:I
+Lcom/android/internal/R$styleable;->KeyboardLayout_locale:I
+Lcom/android/internal/R$styleable;->KeyboardLayout_name:I
+Lcom/android/internal/R$styleable;->KeyboardLayout_productId:I
+Lcom/android/internal/R$styleable;->KeyboardLayout_vendorId:I
+Lcom/android/internal/R$styleable;->KeyboardViewPreviewState:[I
+Lcom/android/internal/R$styleable;->KeyboardViewPreviewState_state_long_pressable:I
+Lcom/android/internal/R$styleable;->KeyboardView_keyBackground:I
+Lcom/android/internal/R$styleable;->KeyboardView_keyboardViewStyle:I
+Lcom/android/internal/R$styleable;->KeyboardView_keyPreviewHeight:I
+Lcom/android/internal/R$styleable;->KeyboardView_keyPreviewLayout:I
+Lcom/android/internal/R$styleable;->KeyboardView_keyPreviewOffset:I
+Lcom/android/internal/R$styleable;->KeyboardView_keyTextColor:I
+Lcom/android/internal/R$styleable;->KeyboardView_keyTextSize:I
+Lcom/android/internal/R$styleable;->KeyboardView_labelTextSize:I
+Lcom/android/internal/R$styleable;->KeyboardView_popupLayout:I
+Lcom/android/internal/R$styleable;->KeyboardView_shadowColor:I
+Lcom/android/internal/R$styleable;->KeyboardView_shadowRadius:I
+Lcom/android/internal/R$styleable;->KeyboardView_verticalCorrection:I
+Lcom/android/internal/R$styleable;->Keyboard_horizontalGap:I
+Lcom/android/internal/R$styleable;->Keyboard_keyHeight:I
+Lcom/android/internal/R$styleable;->Keyboard_keyWidth:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_codes:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_iconPreview:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_isModifier:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_isRepeatable:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_isSticky:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_keyboardMode:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_keyEdgeFlags:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_keyIcon:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_keyLabel:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_keyOutputText:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_popupCharacters:I
+Lcom/android/internal/R$styleable;->Keyboard_Key_popupKeyboard:I
+Lcom/android/internal/R$styleable;->Keyboard_Row_keyboardMode:I
+Lcom/android/internal/R$styleable;->Keyboard_Row_rowEdgeFlags:I
+Lcom/android/internal/R$styleable;->Keyboard_verticalGap:I
+Lcom/android/internal/R$styleable;->Keyframe:[I
+Lcom/android/internal/R$styleable;->Keyframe_fraction:I
+Lcom/android/internal/R$styleable;->Keyframe_interpolator:I
+Lcom/android/internal/R$styleable;->Keyframe_value:I
+Lcom/android/internal/R$styleable;->Keyframe_valueType:I
+Lcom/android/internal/R$styleable;->KeyguardGlowStripView:[I
+Lcom/android/internal/R$styleable;->KeyguardGlowStripView_dotSize:I
+Lcom/android/internal/R$styleable;->KeyguardGlowStripView_glowDot:I
+Lcom/android/internal/R$styleable;->KeyguardGlowStripView_leftToRight:I
+Lcom/android/internal/R$styleable;->KeyguardGlowStripView_numDots:I
+Lcom/android/internal/R$styleable;->LayerDrawable:[I
+Lcom/android/internal/R$styleable;->LayerDrawableItem:[I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_bottom:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_drawable:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_end:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_gravity:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_height:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_id:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_left:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_right:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_start:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_top:I
+Lcom/android/internal/R$styleable;->LayerDrawableItem_width:I
+Lcom/android/internal/R$styleable;->LayerDrawable_autoMirrored:I
+Lcom/android/internal/R$styleable;->LayerDrawable_opacity:I
+Lcom/android/internal/R$styleable;->LayerDrawable_paddingBottom:I
+Lcom/android/internal/R$styleable;->LayerDrawable_paddingEnd:I
+Lcom/android/internal/R$styleable;->LayerDrawable_paddingLeft:I
+Lcom/android/internal/R$styleable;->LayerDrawable_paddingMode:I
+Lcom/android/internal/R$styleable;->LayerDrawable_paddingRight:I
+Lcom/android/internal/R$styleable;->LayerDrawable_paddingStart:I
+Lcom/android/internal/R$styleable;->LayerDrawable_paddingTop:I
+Lcom/android/internal/R$styleable;->LayoutAnimation:[I
+Lcom/android/internal/R$styleable;->LayoutAnimation_animation:I
+Lcom/android/internal/R$styleable;->LayoutAnimation_animationOrder:I
+Lcom/android/internal/R$styleable;->LayoutAnimation_delay:I
+Lcom/android/internal/R$styleable;->LayoutAnimation_interpolator:I
+Lcom/android/internal/R$styleable;->LevelListDrawableItem:[I
+Lcom/android/internal/R$styleable;->LevelListDrawableItem_drawable:I
+Lcom/android/internal/R$styleable;->LevelListDrawableItem_maxLevel:I
+Lcom/android/internal/R$styleable;->LevelListDrawableItem_minLevel:I
+Lcom/android/internal/R$styleable;->Lighting:[I
+Lcom/android/internal/R$styleable;->Lighting_ambientShadowAlpha:I
+Lcom/android/internal/R$styleable;->Lighting_lightRadius:I
+Lcom/android/internal/R$styleable;->Lighting_lightY:I
+Lcom/android/internal/R$styleable;->Lighting_lightZ:I
+Lcom/android/internal/R$styleable;->Lighting_spotShadowAlpha:I
+Lcom/android/internal/R$styleable;->LinearLayout_baselineAligned:I
+Lcom/android/internal/R$styleable;->LinearLayout_baselineAlignedChildIndex:I
+Lcom/android/internal/R$styleable;->LinearLayout_divider:I
+Lcom/android/internal/R$styleable;->LinearLayout_dividerPadding:I
+Lcom/android/internal/R$styleable;->LinearLayout_gravity:I
+Lcom/android/internal/R$styleable;->LinearLayout_Layout:[I
+Lcom/android/internal/R$styleable;->LinearLayout_Layout_layout_gravity:I
+Lcom/android/internal/R$styleable;->LinearLayout_Layout_layout_height:I
+Lcom/android/internal/R$styleable;->LinearLayout_Layout_layout_weight:I
+Lcom/android/internal/R$styleable;->LinearLayout_Layout_layout_width:I
+Lcom/android/internal/R$styleable;->LinearLayout_measureWithLargestChild:I
+Lcom/android/internal/R$styleable;->LinearLayout_orientation:I
+Lcom/android/internal/R$styleable;->LinearLayout_showDividers:I
+Lcom/android/internal/R$styleable;->LinearLayout_weightSum:I
+Lcom/android/internal/R$styleable;->ListPopupWindow:[I
+Lcom/android/internal/R$styleable;->ListPopupWindow_dropDownHorizontalOffset:I
+Lcom/android/internal/R$styleable;->ListPopupWindow_dropDownVerticalOffset:I
+Lcom/android/internal/R$styleable;->ListPreference_entryValues:I
+Lcom/android/internal/R$styleable;->LockPatternView:[I
+Lcom/android/internal/R$styleable;->LockPatternView_aspect:I
+Lcom/android/internal/R$styleable;->LockPatternView_errorColor:I
+Lcom/android/internal/R$styleable;->LockPatternView_pathColor:I
+Lcom/android/internal/R$styleable;->LockPatternView_regularColor:I
+Lcom/android/internal/R$styleable;->LockPatternView_successColor:I
+Lcom/android/internal/R$styleable;->MaterialProgressDrawable:[I
+Lcom/android/internal/R$styleable;->MaterialProgressDrawable_color:I
+Lcom/android/internal/R$styleable;->MaterialProgressDrawable_height:I
+Lcom/android/internal/R$styleable;->MaterialProgressDrawable_innerRadius:I
+Lcom/android/internal/R$styleable;->MaterialProgressDrawable_thickness:I
+Lcom/android/internal/R$styleable;->MaterialProgressDrawable_visible:I
+Lcom/android/internal/R$styleable;->MaterialProgressDrawable_width:I
+Lcom/android/internal/R$styleable;->MediaRouteButton:[I
+Lcom/android/internal/R$styleable;->MediaRouteButton_externalRouteEnabledDrawable:I
+Lcom/android/internal/R$styleable;->MediaRouteButton_mediaRouteTypes:I
+Lcom/android/internal/R$styleable;->MediaRouteButton_minHeight:I
+Lcom/android/internal/R$styleable;->MediaRouteButton_minWidth:I
+Lcom/android/internal/R$styleable;->Menu:[I
+Lcom/android/internal/R$styleable;->MenuGroup_checkableBehavior:I
+Lcom/android/internal/R$styleable;->MenuGroup_enabled:I
+Lcom/android/internal/R$styleable;->MenuGroup_id:I
+Lcom/android/internal/R$styleable;->MenuGroup_menuCategory:I
+Lcom/android/internal/R$styleable;->MenuGroup_orderInCategory:I
+Lcom/android/internal/R$styleable;->MenuGroup_visible:I
+Lcom/android/internal/R$styleable;->MenuItemCheckedFocusedState:[I
+Lcom/android/internal/R$styleable;->MenuItemCheckedFocusedState_state_checkable:I
+Lcom/android/internal/R$styleable;->MenuItemCheckedFocusedState_state_checked:I
+Lcom/android/internal/R$styleable;->MenuItemCheckedFocusedState_state_focused:I
+Lcom/android/internal/R$styleable;->MenuItemCheckedState:[I
+Lcom/android/internal/R$styleable;->MenuItemCheckedState_state_checkable:I
+Lcom/android/internal/R$styleable;->MenuItemCheckedState_state_checked:I
+Lcom/android/internal/R$styleable;->MenuItemUncheckedFocusedState:[I
+Lcom/android/internal/R$styleable;->MenuItemUncheckedFocusedState_state_checkable:I
+Lcom/android/internal/R$styleable;->MenuItemUncheckedFocusedState_state_focused:I
+Lcom/android/internal/R$styleable;->MenuItemUncheckedState:[I
+Lcom/android/internal/R$styleable;->MenuItemUncheckedState_state_checkable:I
+Lcom/android/internal/R$styleable;->MenuItem_actionLayout:I
+Lcom/android/internal/R$styleable;->MenuItem_actionProviderClass:I
+Lcom/android/internal/R$styleable;->MenuItem_actionViewClass:I
+Lcom/android/internal/R$styleable;->MenuItem_alphabeticModifiers:I
+Lcom/android/internal/R$styleable;->MenuItem_alphabeticShortcut:I
+Lcom/android/internal/R$styleable;->MenuItem_checkable:I
+Lcom/android/internal/R$styleable;->MenuItem_checked:I
+Lcom/android/internal/R$styleable;->MenuItem_contentDescription:I
+Lcom/android/internal/R$styleable;->MenuItem_enabled:I
+Lcom/android/internal/R$styleable;->MenuItem_icon:I
+Lcom/android/internal/R$styleable;->MenuItem_iconTint:I
+Lcom/android/internal/R$styleable;->MenuItem_iconTintMode:I
+Lcom/android/internal/R$styleable;->MenuItem_id:I
+Lcom/android/internal/R$styleable;->MenuItem_menuCategory:I
+Lcom/android/internal/R$styleable;->MenuItem_numericModifiers:I
+Lcom/android/internal/R$styleable;->MenuItem_numericShortcut:I
+Lcom/android/internal/R$styleable;->MenuItem_onClick:I
+Lcom/android/internal/R$styleable;->MenuItem_orderInCategory:I
+Lcom/android/internal/R$styleable;->MenuItem_showAsAction:I
+Lcom/android/internal/R$styleable;->MenuItem_title:I
+Lcom/android/internal/R$styleable;->MenuItem_titleCondensed:I
+Lcom/android/internal/R$styleable;->MenuItem_tooltipText:I
+Lcom/android/internal/R$styleable;->MenuItem_visible:I
+Lcom/android/internal/R$styleable;->MenuView_headerBackground:I
+Lcom/android/internal/R$styleable;->MenuView_horizontalDivider:I
+Lcom/android/internal/R$styleable;->MenuView_itemBackground:I
+Lcom/android/internal/R$styleable;->MenuView_itemIconDisabledAlpha:I
+Lcom/android/internal/R$styleable;->MenuView_itemTextAppearance:I
+Lcom/android/internal/R$styleable;->MenuView_preserveIconSpacing:I
+Lcom/android/internal/R$styleable;->MenuView_subMenuArrow:I
+Lcom/android/internal/R$styleable;->MenuView_verticalDivider:I
+Lcom/android/internal/R$styleable;->MenuView_windowAnimationStyle:I
+Lcom/android/internal/R$styleable;->MessagingLinearLayout:[I
+Lcom/android/internal/R$styleable;->MessagingLinearLayout_spacing:I
+Lcom/android/internal/R$styleable;->MultiSelectListPreference:[I
+Lcom/android/internal/R$styleable;->MultiSelectListPreference_entries:I
+Lcom/android/internal/R$styleable;->MultiSelectListPreference_entryValues:I
+Lcom/android/internal/R$styleable;->Nfcid2Filter:[I
+Lcom/android/internal/R$styleable;->Nfcid2Filter_name:I
+Lcom/android/internal/R$styleable;->NinePatchDrawable:[I
+Lcom/android/internal/R$styleable;->NinePatchDrawable_alpha:I
+Lcom/android/internal/R$styleable;->NinePatchDrawable_autoMirrored:I
+Lcom/android/internal/R$styleable;->NinePatchDrawable_dither:I
+Lcom/android/internal/R$styleable;->NinePatchDrawable_src:I
+Lcom/android/internal/R$styleable;->NinePatchDrawable_tint:I
+Lcom/android/internal/R$styleable;->NinePatchDrawable_tintMode:I
+Lcom/android/internal/R$styleable;->NotificationTheme:[I
+Lcom/android/internal/R$styleable;->NotificationTheme_notificationHeaderAppNameVisibility:I
+Lcom/android/internal/R$styleable;->NotificationTheme_notificationHeaderIconSize:I
+Lcom/android/internal/R$styleable;->NotificationTheme_notificationHeaderStyle:I
+Lcom/android/internal/R$styleable;->NotificationTheme_notificationHeaderTextAppearance:I
+Lcom/android/internal/R$styleable;->NumberPicker_hideWheelUntilFocused:I
+Lcom/android/internal/R$styleable;->NumberPicker_internalLayout:I
+Lcom/android/internal/R$styleable;->NumberPicker_internalMaxHeight:I
+Lcom/android/internal/R$styleable;->NumberPicker_internalMaxWidth:I
+Lcom/android/internal/R$styleable;->NumberPicker_internalMinHeight:I
+Lcom/android/internal/R$styleable;->NumberPicker_internalMinWidth:I
+Lcom/android/internal/R$styleable;->NumberPicker_selectionDivider:I
+Lcom/android/internal/R$styleable;->NumberPicker_selectionDividerHeight:I
+Lcom/android/internal/R$styleable;->NumberPicker_selectionDividersDistance:I
+Lcom/android/internal/R$styleable;->NumberPicker_solidColor:I
+Lcom/android/internal/R$styleable;->NumberPicker_virtualButtonPressedDrawable:I
+Lcom/android/internal/R$styleable;->OffHostApduService:[I
+Lcom/android/internal/R$styleable;->OffHostApduService_apduServiceBanner:I
+Lcom/android/internal/R$styleable;->OffHostApduService_description:I
+Lcom/android/internal/R$styleable;->OffHostApduService_settingsActivity:I
+Lcom/android/internal/R$styleable;->OvershootInterpolator:[I
+Lcom/android/internal/R$styleable;->OvershootInterpolator_tension:I
+Lcom/android/internal/R$styleable;->PagedView:[I
+Lcom/android/internal/R$styleable;->PagedView_pageSpacing:I
+Lcom/android/internal/R$styleable;->PagedView_scrollIndicatorPaddingLeft:I
+Lcom/android/internal/R$styleable;->PagedView_scrollIndicatorPaddingRight:I
+Lcom/android/internal/R$styleable;->PathInterpolator:[I
+Lcom/android/internal/R$styleable;->PathInterpolator_controlX1:I
+Lcom/android/internal/R$styleable;->PathInterpolator_controlX2:I
+Lcom/android/internal/R$styleable;->PathInterpolator_controlY1:I
+Lcom/android/internal/R$styleable;->PathInterpolator_controlY2:I
+Lcom/android/internal/R$styleable;->PathInterpolator_pathData:I
+Lcom/android/internal/R$styleable;->PatternPathMotion:[I
+Lcom/android/internal/R$styleable;->PatternPathMotion_patternPathData:I
+Lcom/android/internal/R$styleable;->Pointer:[I
+Lcom/android/internal/R$styleable;->PointerIcon:[I
+Lcom/android/internal/R$styleable;->PointerIcon_bitmap:I
+Lcom/android/internal/R$styleable;->PointerIcon_hotSpotX:I
+Lcom/android/internal/R$styleable;->PointerIcon_hotSpotY:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconAlias:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconAllScroll:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconArrow:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconCell:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconContextMenu:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconCopy:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconCrosshair:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconGrab:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconGrabbing:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconHand:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconHelp:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconHorizontalDoubleArrow:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconNodrop:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconSpotAnchor:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconSpotHover:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconSpotTouch:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconText:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconTopLeftDiagonalDoubleArrow:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconTopRightDiagonalDoubleArrow:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconVerticalDoubleArrow:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconVerticalText:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconWait:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconZoomIn:I
+Lcom/android/internal/R$styleable;->Pointer_pointerIconZoomOut:I
+Lcom/android/internal/R$styleable;->PopupWindowBackgroundState:[I
+Lcom/android/internal/R$styleable;->PopupWindowBackgroundState_state_above_anchor:I
+Lcom/android/internal/R$styleable;->PopupWindow_overlapAnchor:I
+Lcom/android/internal/R$styleable;->PopupWindow_popupElevation:I
+Lcom/android/internal/R$styleable;->PopupWindow_popupEnterTransition:I
+Lcom/android/internal/R$styleable;->PopupWindow_popupExitTransition:I
+Lcom/android/internal/R$styleable;->PreferenceActivity:[I
+Lcom/android/internal/R$styleable;->PreferenceActivity_headerLayout:I
+Lcom/android/internal/R$styleable;->PreferenceActivity_headerRemoveIconIfEmpty:I
+Lcom/android/internal/R$styleable;->PreferenceActivity_layout:I
+Lcom/android/internal/R$styleable;->PreferenceFragment:[I
+Lcom/android/internal/R$styleable;->PreferenceFragment_divider:I
+Lcom/android/internal/R$styleable;->PreferenceFragment_layout:I
+Lcom/android/internal/R$styleable;->PreferenceFrameLayout:[I
+Lcom/android/internal/R$styleable;->PreferenceFrameLayout_borderBottom:I
+Lcom/android/internal/R$styleable;->PreferenceFrameLayout_borderLeft:I
+Lcom/android/internal/R$styleable;->PreferenceFrameLayout_borderRight:I
+Lcom/android/internal/R$styleable;->PreferenceFrameLayout_borderTop:I
+Lcom/android/internal/R$styleable;->PreferenceFrameLayout_Layout:[I
+Lcom/android/internal/R$styleable;->PreferenceFrameLayout_Layout_layout_removeBorders:I
+Lcom/android/internal/R$styleable;->PreferenceHeader:[I
+Lcom/android/internal/R$styleable;->PreferenceHeader_breadCrumbShortTitle:I
+Lcom/android/internal/R$styleable;->PreferenceHeader_breadCrumbTitle:I
+Lcom/android/internal/R$styleable;->PreferenceHeader_fragment:I
+Lcom/android/internal/R$styleable;->PreferenceHeader_icon:I
+Lcom/android/internal/R$styleable;->PreferenceHeader_id:I
+Lcom/android/internal/R$styleable;->PreferenceHeader_summary:I
+Lcom/android/internal/R$styleable;->PreferenceHeader_title:I
+Lcom/android/internal/R$styleable;->PreferenceScreen:[I
+Lcom/android/internal/R$styleable;->PreferenceScreen_divider:I
+Lcom/android/internal/R$styleable;->PreferenceScreen_screenLayout:I
+Lcom/android/internal/R$styleable;->Preference_iconSpaceReserved:I
+Lcom/android/internal/R$styleable;->Preference_recycleEnabled:I
+Lcom/android/internal/R$styleable;->Preference_singleLineTitle:I
+Lcom/android/internal/R$styleable;->PrintService:[I
+Lcom/android/internal/R$styleable;->PrintService_addPrintersActivity:I
+Lcom/android/internal/R$styleable;->PrintService_advancedPrintOptionsActivity:I
+Lcom/android/internal/R$styleable;->PrintService_settingsActivity:I
+Lcom/android/internal/R$styleable;->PrintService_vendor:I
+Lcom/android/internal/R$styleable;->ProgressBar_animationResolution:I
+Lcom/android/internal/R$styleable;->ProgressBar_backgroundTint:I
+Lcom/android/internal/R$styleable;->ProgressBar_backgroundTintMode:I
+Lcom/android/internal/R$styleable;->ProgressBar_indeterminate:I
+Lcom/android/internal/R$styleable;->ProgressBar_indeterminateBehavior:I
+Lcom/android/internal/R$styleable;->ProgressBar_indeterminateDrawable:I
+Lcom/android/internal/R$styleable;->ProgressBar_indeterminateDuration:I
+Lcom/android/internal/R$styleable;->ProgressBar_indeterminateOnly:I
+Lcom/android/internal/R$styleable;->ProgressBar_indeterminateTint:I
+Lcom/android/internal/R$styleable;->ProgressBar_indeterminateTintMode:I
+Lcom/android/internal/R$styleable;->ProgressBar_interpolator:I
+Lcom/android/internal/R$styleable;->ProgressBar_max:I
+Lcom/android/internal/R$styleable;->ProgressBar_maxHeight:I
+Lcom/android/internal/R$styleable;->ProgressBar_maxWidth:I
+Lcom/android/internal/R$styleable;->ProgressBar_min:I
+Lcom/android/internal/R$styleable;->ProgressBar_minHeight:I
+Lcom/android/internal/R$styleable;->ProgressBar_minWidth:I
+Lcom/android/internal/R$styleable;->ProgressBar_mirrorForRtl:I
+Lcom/android/internal/R$styleable;->ProgressBar_progress:I
+Lcom/android/internal/R$styleable;->ProgressBar_progressBackgroundTint:I
+Lcom/android/internal/R$styleable;->ProgressBar_progressBackgroundTintMode:I
+Lcom/android/internal/R$styleable;->ProgressBar_progressDrawable:I
+Lcom/android/internal/R$styleable;->ProgressBar_progressTint:I
+Lcom/android/internal/R$styleable;->ProgressBar_progressTintMode:I
+Lcom/android/internal/R$styleable;->ProgressBar_secondaryProgress:I
+Lcom/android/internal/R$styleable;->ProgressBar_secondaryProgressTint:I
+Lcom/android/internal/R$styleable;->ProgressBar_secondaryProgressTintMode:I
+Lcom/android/internal/R$styleable;->PropertyAnimator:[I
+Lcom/android/internal/R$styleable;->PropertyAnimator_pathData:I
+Lcom/android/internal/R$styleable;->PropertyAnimator_propertyName:I
+Lcom/android/internal/R$styleable;->PropertyAnimator_propertyXName:I
+Lcom/android/internal/R$styleable;->PropertyAnimator_propertyYName:I
+Lcom/android/internal/R$styleable;->PropertyValuesHolder:[I
+Lcom/android/internal/R$styleable;->PropertyValuesHolder_propertyName:I
+Lcom/android/internal/R$styleable;->PropertyValuesHolder_valueFrom:I
+Lcom/android/internal/R$styleable;->PropertyValuesHolder_valueTo:I
+Lcom/android/internal/R$styleable;->PropertyValuesHolder_valueType:I
+Lcom/android/internal/R$styleable;->QuickContactBadge_quickContactWindowSize:I
+Lcom/android/internal/R$styleable;->RadioGroup:[I
+Lcom/android/internal/R$styleable;->RadioGroup_checkedButton:I
+Lcom/android/internal/R$styleable;->RadioGroup_orientation:I
+Lcom/android/internal/R$styleable;->RatingBar:[I
+Lcom/android/internal/R$styleable;->RatingBar_isIndicator:I
+Lcom/android/internal/R$styleable;->RatingBar_numStars:I
+Lcom/android/internal/R$styleable;->RatingBar_rating:I
+Lcom/android/internal/R$styleable;->RatingBar_stepSize:I
+Lcom/android/internal/R$styleable;->RatingDefinition:[I
+Lcom/android/internal/R$styleable;->RatingDefinition_contentAgeHint:I
+Lcom/android/internal/R$styleable;->RatingDefinition_description:I
+Lcom/android/internal/R$styleable;->RatingDefinition_name:I
+Lcom/android/internal/R$styleable;->RatingDefinition_title:I
+Lcom/android/internal/R$styleable;->RatingSystemDefinition:[I
+Lcom/android/internal/R$styleable;->RatingSystemDefinition_country:I
+Lcom/android/internal/R$styleable;->RatingSystemDefinition_description:I
+Lcom/android/internal/R$styleable;->RatingSystemDefinition_name:I
+Lcom/android/internal/R$styleable;->RatingSystemDefinition_title:I
+Lcom/android/internal/R$styleable;->RecognitionService:[I
+Lcom/android/internal/R$styleable;->RecognitionService_settingsActivity:I
+Lcom/android/internal/R$styleable;->RecycleListView:[I
+Lcom/android/internal/R$styleable;->RecycleListView_paddingBottomNoButtons:I
+Lcom/android/internal/R$styleable;->RecycleListView_paddingTopNoTitle:I
+Lcom/android/internal/R$styleable;->RecyclerView:[I
+Lcom/android/internal/R$styleable;->RecyclerView_descendantFocusability:I
+Lcom/android/internal/R$styleable;->RecyclerView_layoutManager:I
+Lcom/android/internal/R$styleable;->RecyclerView_orientation:I
+Lcom/android/internal/R$styleable;->RecyclerView_reverseLayout:I
+Lcom/android/internal/R$styleable;->RecyclerView_spanCount:I
+Lcom/android/internal/R$styleable;->RecyclerView_stackFromEnd:I
+Lcom/android/internal/R$styleable;->RelativeLayout:[I
+Lcom/android/internal/R$styleable;->RelativeLayout_gravity:I
+Lcom/android/internal/R$styleable;->RelativeLayout_ignoreGravity:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout:[I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_above:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignBaseline:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignBottom:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignEnd:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignLeft:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignParentBottom:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignParentEnd:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignParentLeft:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignParentRight:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignParentStart:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignParentTop:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignRight:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignStart:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignTop:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_alignWithParentIfMissing:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_below:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_centerHorizontal:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_centerInParent:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_centerVertical:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_toEndOf:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_toLeftOf:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_toRightOf:I
+Lcom/android/internal/R$styleable;->RelativeLayout_Layout_layout_toStartOf:I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout:[I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_LayoutParams:[I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_LayoutParams_layout_alwaysShow:I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_LayoutParams_layout_gravity:I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_LayoutParams_layout_hasNestedScrollIndicator:I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_LayoutParams_layout_ignoreOffset:I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_maxCollapsedHeight:I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_maxCollapsedHeightSmall:I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_maxWidth:I
+Lcom/android/internal/R$styleable;->ResolverDrawerLayout_showAtTop:I
+Lcom/android/internal/R$styleable;->RestrictionEntry:[I
+Lcom/android/internal/R$styleable;->RestrictionEntry_defaultValue:I
+Lcom/android/internal/R$styleable;->RestrictionEntry_description:I
+Lcom/android/internal/R$styleable;->RestrictionEntry_entries:I
+Lcom/android/internal/R$styleable;->RestrictionEntry_entryValues:I
+Lcom/android/internal/R$styleable;->RestrictionEntry_key:I
+Lcom/android/internal/R$styleable;->RestrictionEntry_restrictionType:I
+Lcom/android/internal/R$styleable;->RestrictionEntry_title:I
+Lcom/android/internal/R$styleable;->RingtonePreference_ringtoneType:I
+Lcom/android/internal/R$styleable;->RingtonePreference_showDefault:I
+Lcom/android/internal/R$styleable;->RingtonePreference_showSilent:I
+Lcom/android/internal/R$styleable;->RippleDrawable:[I
+Lcom/android/internal/R$styleable;->RippleDrawable_color:I
+Lcom/android/internal/R$styleable;->RippleDrawable_radius:I
+Lcom/android/internal/R$styleable;->RotateAnimation:[I
+Lcom/android/internal/R$styleable;->RotateAnimation_fromDegrees:I
+Lcom/android/internal/R$styleable;->RotateAnimation_pivotX:I
+Lcom/android/internal/R$styleable;->RotateAnimation_pivotY:I
+Lcom/android/internal/R$styleable;->RotateAnimation_toDegrees:I
+Lcom/android/internal/R$styleable;->RotateDrawable:[I
+Lcom/android/internal/R$styleable;->RotateDrawable_drawable:I
+Lcom/android/internal/R$styleable;->RotateDrawable_fromDegrees:I
+Lcom/android/internal/R$styleable;->RotateDrawable_pivotX:I
+Lcom/android/internal/R$styleable;->RotateDrawable_pivotY:I
+Lcom/android/internal/R$styleable;->RotateDrawable_toDegrees:I
+Lcom/android/internal/R$styleable;->RotateDrawable_visible:I
+Lcom/android/internal/R$styleable;->ScaleAnimation:[I
+Lcom/android/internal/R$styleable;->ScaleAnimation_fromXScale:I
+Lcom/android/internal/R$styleable;->ScaleAnimation_fromYScale:I
+Lcom/android/internal/R$styleable;->ScaleAnimation_pivotX:I
+Lcom/android/internal/R$styleable;->ScaleAnimation_pivotY:I
+Lcom/android/internal/R$styleable;->ScaleAnimation_toXScale:I
+Lcom/android/internal/R$styleable;->ScaleAnimation_toYScale:I
+Lcom/android/internal/R$styleable;->ScaleDrawable:[I
+Lcom/android/internal/R$styleable;->ScaleDrawable_drawable:I
+Lcom/android/internal/R$styleable;->ScaleDrawable_level:I
+Lcom/android/internal/R$styleable;->ScaleDrawable_scaleGravity:I
+Lcom/android/internal/R$styleable;->ScaleDrawable_scaleHeight:I
+Lcom/android/internal/R$styleable;->ScaleDrawable_scaleWidth:I
+Lcom/android/internal/R$styleable;->ScaleDrawable_useIntrinsicSizeAsMinimum:I
+Lcom/android/internal/R$styleable;->SearchableActionKey_keycode:I
+Lcom/android/internal/R$styleable;->SearchableActionKey_queryActionMsg:I
+Lcom/android/internal/R$styleable;->SearchableActionKey_suggestActionMsg:I
+Lcom/android/internal/R$styleable;->SearchableActionKey_suggestActionMsgColumn:I
+Lcom/android/internal/R$styleable;->Searchable_autoUrlDetect:I
+Lcom/android/internal/R$styleable;->Searchable_hint:I
+Lcom/android/internal/R$styleable;->Searchable_icon:I
+Lcom/android/internal/R$styleable;->Searchable_imeOptions:I
+Lcom/android/internal/R$styleable;->Searchable_includeInGlobalSearch:I
+Lcom/android/internal/R$styleable;->Searchable_inputType:I
+Lcom/android/internal/R$styleable;->Searchable_label:I
+Lcom/android/internal/R$styleable;->Searchable_queryAfterZeroResults:I
+Lcom/android/internal/R$styleable;->Searchable_searchButtonText:I
+Lcom/android/internal/R$styleable;->Searchable_searchMode:I
+Lcom/android/internal/R$styleable;->Searchable_searchSettingsDescription:I
+Lcom/android/internal/R$styleable;->Searchable_searchSuggestAuthority:I
+Lcom/android/internal/R$styleable;->Searchable_searchSuggestIntentAction:I
+Lcom/android/internal/R$styleable;->Searchable_searchSuggestIntentData:I
+Lcom/android/internal/R$styleable;->Searchable_searchSuggestPath:I
+Lcom/android/internal/R$styleable;->Searchable_searchSuggestSelection:I
+Lcom/android/internal/R$styleable;->Searchable_searchSuggestThreshold:I
+Lcom/android/internal/R$styleable;->Searchable_voiceLanguage:I
+Lcom/android/internal/R$styleable;->Searchable_voiceLanguageModel:I
+Lcom/android/internal/R$styleable;->Searchable_voiceMaxResults:I
+Lcom/android/internal/R$styleable;->Searchable_voicePromptText:I
+Lcom/android/internal/R$styleable;->Searchable_voiceSearchMode:I
+Lcom/android/internal/R$styleable;->SearchView:[I
+Lcom/android/internal/R$styleable;->SearchView_closeIcon:I
+Lcom/android/internal/R$styleable;->SearchView_commitIcon:I
+Lcom/android/internal/R$styleable;->SearchView_defaultQueryHint:I
+Lcom/android/internal/R$styleable;->SearchView_goIcon:I
+Lcom/android/internal/R$styleable;->SearchView_iconifiedByDefault:I
+Lcom/android/internal/R$styleable;->SearchView_imeOptions:I
+Lcom/android/internal/R$styleable;->SearchView_inputType:I
+Lcom/android/internal/R$styleable;->SearchView_layout:I
+Lcom/android/internal/R$styleable;->SearchView_maxWidth:I
+Lcom/android/internal/R$styleable;->SearchView_queryBackground:I
+Lcom/android/internal/R$styleable;->SearchView_queryHint:I
+Lcom/android/internal/R$styleable;->SearchView_searchHintIcon:I
+Lcom/android/internal/R$styleable;->SearchView_searchIcon:I
+Lcom/android/internal/R$styleable;->SearchView_submitBackground:I
+Lcom/android/internal/R$styleable;->SearchView_suggestionRowLayout:I
+Lcom/android/internal/R$styleable;->SearchView_voiceIcon:I
+Lcom/android/internal/R$styleable;->SeekBar:[I
+Lcom/android/internal/R$styleable;->SeekBarPreference:[I
+Lcom/android/internal/R$styleable;->SeekBarPreference_adjustable:I
+Lcom/android/internal/R$styleable;->SeekBarPreference_layout:I
+Lcom/android/internal/R$styleable;->SeekBarPreference_showSeekBarValue:I
+Lcom/android/internal/R$styleable;->SeekBar_splitTrack:I
+Lcom/android/internal/R$styleable;->SeekBar_thumb:I
+Lcom/android/internal/R$styleable;->SeekBar_thumbOffset:I
+Lcom/android/internal/R$styleable;->SeekBar_thumbTint:I
+Lcom/android/internal/R$styleable;->SeekBar_thumbTintMode:I
+Lcom/android/internal/R$styleable;->SeekBar_tickMark:I
+Lcom/android/internal/R$styleable;->SeekBar_tickMarkTint:I
+Lcom/android/internal/R$styleable;->SeekBar_tickMarkTintMode:I
+Lcom/android/internal/R$styleable;->SeekBar_useDisabledAlpha:I
+Lcom/android/internal/R$styleable;->SelectionModeDrawables_actionModeCopyDrawable:I
+Lcom/android/internal/R$styleable;->SelectionModeDrawables_actionModeCutDrawable:I
+Lcom/android/internal/R$styleable;->SelectionModeDrawables_actionModePasteDrawable:I
+Lcom/android/internal/R$styleable;->SelectionModeDrawables_actionModeSelectAllDrawable:I
+Lcom/android/internal/R$styleable;->SettingInjectorService:[I
+Lcom/android/internal/R$styleable;->SettingInjectorService_icon:I
+Lcom/android/internal/R$styleable;->SettingInjectorService_settingsActivity:I
+Lcom/android/internal/R$styleable;->SettingInjectorService_title:I
+Lcom/android/internal/R$styleable;->SettingInjectorService_userRestriction:I
+Lcom/android/internal/R$styleable;->ShapeDrawable:[I
+Lcom/android/internal/R$styleable;->ShapeDrawablePadding:[I
+Lcom/android/internal/R$styleable;->ShapeDrawablePadding_bottom:I
+Lcom/android/internal/R$styleable;->ShapeDrawablePadding_left:I
+Lcom/android/internal/R$styleable;->ShapeDrawablePadding_right:I
+Lcom/android/internal/R$styleable;->ShapeDrawablePadding_top:I
+Lcom/android/internal/R$styleable;->ShapeDrawable_color:I
+Lcom/android/internal/R$styleable;->ShapeDrawable_dither:I
+Lcom/android/internal/R$styleable;->ShapeDrawable_height:I
+Lcom/android/internal/R$styleable;->ShapeDrawable_tint:I
+Lcom/android/internal/R$styleable;->ShapeDrawable_tintMode:I
+Lcom/android/internal/R$styleable;->ShapeDrawable_width:I
+Lcom/android/internal/R$styleable;->Shortcut:[I
+Lcom/android/internal/R$styleable;->ShortcutCategories:[I
+Lcom/android/internal/R$styleable;->ShortcutCategories_name:I
+Lcom/android/internal/R$styleable;->Shortcut_enabled:I
+Lcom/android/internal/R$styleable;->Shortcut_icon:I
+Lcom/android/internal/R$styleable;->Shortcut_shortcutDisabledMessage:I
+Lcom/android/internal/R$styleable;->Shortcut_shortcutId:I
+Lcom/android/internal/R$styleable;->Shortcut_shortcutLongLabel:I
+Lcom/android/internal/R$styleable;->Shortcut_shortcutShortLabel:I
+Lcom/android/internal/R$styleable;->Slide:[I
+Lcom/android/internal/R$styleable;->Slide_slideEdge:I
+Lcom/android/internal/R$styleable;->SlidingDrawer:[I
+Lcom/android/internal/R$styleable;->SlidingDrawer_allowSingleTap:I
+Lcom/android/internal/R$styleable;->SlidingDrawer_animateOnClick:I
+Lcom/android/internal/R$styleable;->SlidingDrawer_bottomOffset:I
+Lcom/android/internal/R$styleable;->SlidingDrawer_content:I
+Lcom/android/internal/R$styleable;->SlidingDrawer_handle:I
+Lcom/android/internal/R$styleable;->SlidingDrawer_orientation:I
+Lcom/android/internal/R$styleable;->SlidingDrawer_topOffset:I
+Lcom/android/internal/R$styleable;->SlidingTab:[I
+Lcom/android/internal/R$styleable;->SlidingTab_orientation:I
+Lcom/android/internal/R$styleable;->SpellChecker:[I
+Lcom/android/internal/R$styleable;->SpellChecker_label:I
+Lcom/android/internal/R$styleable;->SpellChecker_settingsActivity:I
+Lcom/android/internal/R$styleable;->SpellChecker_Subtype:[I
+Lcom/android/internal/R$styleable;->SpellChecker_Subtype_label:I
+Lcom/android/internal/R$styleable;->SpellChecker_Subtype_languageTag:I
+Lcom/android/internal/R$styleable;->SpellChecker_Subtype_subtypeExtraValue:I
+Lcom/android/internal/R$styleable;->SpellChecker_Subtype_subtypeId:I
+Lcom/android/internal/R$styleable;->SpellChecker_Subtype_subtypeLocale:I
+Lcom/android/internal/R$styleable;->Spinner:[I
+Lcom/android/internal/R$styleable;->Spinner_disableChildrenWhenDisabled:I
+Lcom/android/internal/R$styleable;->Spinner_dropDownSelector:I
+Lcom/android/internal/R$styleable;->Spinner_dropDownWidth:I
+Lcom/android/internal/R$styleable;->Spinner_gravity:I
+Lcom/android/internal/R$styleable;->Spinner_popupBackground:I
+Lcom/android/internal/R$styleable;->Spinner_popupElevation:I
+Lcom/android/internal/R$styleable;->Spinner_popupPromptView:I
+Lcom/android/internal/R$styleable;->Spinner_popupTheme:I
+Lcom/android/internal/R$styleable;->Spinner_prompt:I
+Lcom/android/internal/R$styleable;->Spinner_spinnerMode:I
+Lcom/android/internal/R$styleable;->StackView:[I
+Lcom/android/internal/R$styleable;->StackView_clickColor:I
+Lcom/android/internal/R$styleable;->StackView_resOutColor:I
+Lcom/android/internal/R$styleable;->StateListAnimatorItem:[I
+Lcom/android/internal/R$styleable;->StateListAnimatorItem_animation:I
+Lcom/android/internal/R$styleable;->StateListDrawable:[I
+Lcom/android/internal/R$styleable;->StateListDrawableItem:[I
+Lcom/android/internal/R$styleable;->StateListDrawableItem_drawable:I
+Lcom/android/internal/R$styleable;->StateListDrawable_autoMirrored:I
+Lcom/android/internal/R$styleable;->StateListDrawable_constantSize:I
+Lcom/android/internal/R$styleable;->StateListDrawable_dither:I
+Lcom/android/internal/R$styleable;->StateListDrawable_enterFadeDuration:I
+Lcom/android/internal/R$styleable;->StateListDrawable_exitFadeDuration:I
+Lcom/android/internal/R$styleable;->StateListDrawable_variablePadding:I
+Lcom/android/internal/R$styleable;->StateListDrawable_visible:I
+Lcom/android/internal/R$styleable;->Storage:[I
+Lcom/android/internal/R$styleable;->Storage_allowMassStorage:I
+Lcom/android/internal/R$styleable;->Storage_emulated:I
+Lcom/android/internal/R$styleable;->Storage_maxFileSize:I
+Lcom/android/internal/R$styleable;->Storage_mountPoint:I
+Lcom/android/internal/R$styleable;->Storage_mtpReserve:I
+Lcom/android/internal/R$styleable;->Storage_primary:I
+Lcom/android/internal/R$styleable;->Storage_removable:I
+Lcom/android/internal/R$styleable;->Storage_storageDescription:I
+Lcom/android/internal/R$styleable;->SuggestionSpan:[I
+Lcom/android/internal/R$styleable;->SuggestionSpan_textUnderlineColor:I
+Lcom/android/internal/R$styleable;->SuggestionSpan_textUnderlineThickness:I
+Lcom/android/internal/R$styleable;->SwitchPreference_disableDependentsState:I
+Lcom/android/internal/R$styleable;->SwitchPreference_summaryOff:I
+Lcom/android/internal/R$styleable;->SwitchPreference_summaryOn:I
+Lcom/android/internal/R$styleable;->SwitchPreference_switchTextOff:I
+Lcom/android/internal/R$styleable;->SwitchPreference_switchTextOn:I
+Lcom/android/internal/R$styleable;->Switch_showText:I
+Lcom/android/internal/R$styleable;->Switch_splitTrack:I
+Lcom/android/internal/R$styleable;->Switch_switchMinWidth:I
+Lcom/android/internal/R$styleable;->Switch_switchPadding:I
+Lcom/android/internal/R$styleable;->Switch_switchTextAppearance:I
+Lcom/android/internal/R$styleable;->Switch_textOff:I
+Lcom/android/internal/R$styleable;->Switch_textOn:I
+Lcom/android/internal/R$styleable;->Switch_thumb:I
+Lcom/android/internal/R$styleable;->Switch_thumbTextPadding:I
+Lcom/android/internal/R$styleable;->Switch_thumbTint:I
+Lcom/android/internal/R$styleable;->Switch_thumbTintMode:I
+Lcom/android/internal/R$styleable;->Switch_track:I
+Lcom/android/internal/R$styleable;->Switch_trackTint:I
+Lcom/android/internal/R$styleable;->Switch_trackTintMode:I
+Lcom/android/internal/R$styleable;->SystemCodeFilter:[I
+Lcom/android/internal/R$styleable;->SystemCodeFilter_name:I
+Lcom/android/internal/R$styleable;->T3tPmmFilter:[I
+Lcom/android/internal/R$styleable;->T3tPmmFilter_name:I
+Lcom/android/internal/R$styleable;->TableLayout:[I
+Lcom/android/internal/R$styleable;->TableLayout_collapseColumns:I
+Lcom/android/internal/R$styleable;->TableLayout_shrinkColumns:I
+Lcom/android/internal/R$styleable;->TableLayout_stretchColumns:I
+Lcom/android/internal/R$styleable;->TableRow:[I
+Lcom/android/internal/R$styleable;->TableRow_Cell:[I
+Lcom/android/internal/R$styleable;->TableRow_Cell_layout_column:I
+Lcom/android/internal/R$styleable;->TableRow_Cell_layout_span:I
+Lcom/android/internal/R$styleable;->TabWidget_divider:I
+Lcom/android/internal/R$styleable;->TabWidget_tabLayout:I
+Lcom/android/internal/R$styleable;->TabWidget_tabStripEnabled:I
+Lcom/android/internal/R$styleable;->TabWidget_tabStripLeft:I
+Lcom/android/internal/R$styleable;->TabWidget_tabStripRight:I
+Lcom/android/internal/R$styleable;->TextAppearance_elegantTextHeight:I
+Lcom/android/internal/R$styleable;->TextAppearance_fallbackLineSpacing:I
+Lcom/android/internal/R$styleable;->TextAppearance_fontFeatureSettings:I
+Lcom/android/internal/R$styleable;->TextAppearance_letterSpacing:I
+Lcom/android/internal/R$styleable;->TextAppearance_shadowColor:I
+Lcom/android/internal/R$styleable;->TextAppearance_shadowDx:I
+Lcom/android/internal/R$styleable;->TextAppearance_shadowDy:I
+Lcom/android/internal/R$styleable;->TextAppearance_shadowRadius:I
+Lcom/android/internal/R$styleable;->TextAppearance_textFontWeight:I
+Lcom/android/internal/R$styleable;->TextClock_format12Hour:I
+Lcom/android/internal/R$styleable;->TextClock_format24Hour:I
+Lcom/android/internal/R$styleable;->TextClock_timeZone:I
+Lcom/android/internal/R$styleable;->TextSwitcher:[I
+Lcom/android/internal/R$styleable;->TextToSpeechEngine:[I
+Lcom/android/internal/R$styleable;->TextToSpeechEngine_settingsActivity:I
+Lcom/android/internal/R$styleable;->TextViewMultiLineBackgroundState:[I
+Lcom/android/internal/R$styleable;->TextViewMultiLineBackgroundState_state_multiline:I
+Lcom/android/internal/R$styleable;->TextView_allowUndo:I
+Lcom/android/internal/R$styleable;->TextView_autoSizeMaxTextSize:I
+Lcom/android/internal/R$styleable;->TextView_autoSizeMinTextSize:I
+Lcom/android/internal/R$styleable;->TextView_autoSizePresetSizes:I
+Lcom/android/internal/R$styleable;->TextView_autoSizeStepGranularity:I
+Lcom/android/internal/R$styleable;->TextView_autoSizeTextType:I
+Lcom/android/internal/R$styleable;->TextView_breakStrategy:I
+Lcom/android/internal/R$styleable;->TextView_drawableTint:I
+Lcom/android/internal/R$styleable;->TextView_drawableTintMode:I
+Lcom/android/internal/R$styleable;->TextView_elegantTextHeight:I
+Lcom/android/internal/R$styleable;->TextView_fallbackLineSpacing:I
+Lcom/android/internal/R$styleable;->TextView_firstBaselineToTopHeight:I
+Lcom/android/internal/R$styleable;->TextView_fontFamily:I
+Lcom/android/internal/R$styleable;->TextView_fontFeatureSettings:I
+Lcom/android/internal/R$styleable;->TextView_hyphenationFrequency:I
+Lcom/android/internal/R$styleable;->TextView_justificationMode:I
+Lcom/android/internal/R$styleable;->TextView_lastBaselineToBottomHeight:I
+Lcom/android/internal/R$styleable;->TextView_letterSpacing:I
+Lcom/android/internal/R$styleable;->TextView_lineHeight:I
+Lcom/android/internal/R$styleable;->TextView_textEditNoPasteWindowLayout:I
+Lcom/android/internal/R$styleable;->TextView_textEditPasteWindowLayout:I
+Lcom/android/internal/R$styleable;->TextView_textEditSideNoPasteWindowLayout:I
+Lcom/android/internal/R$styleable;->TextView_textEditSidePasteWindowLayout:I
+Lcom/android/internal/R$styleable;->TextView_textEditSuggestionContainerLayout:I
+Lcom/android/internal/R$styleable;->TextView_textEditSuggestionHighlightStyle:I
+Lcom/android/internal/R$styleable;->TextView_textFontWeight:I
+Lcom/android/internal/R$styleable;->Theme_absListViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_accessibilityFocusedDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionBarDivider:I
+Lcom/android/internal/R$styleable;->Theme_actionBarItemBackground:I
+Lcom/android/internal/R$styleable;->Theme_actionBarPopupTheme:I
+Lcom/android/internal/R$styleable;->Theme_actionBarSize:I
+Lcom/android/internal/R$styleable;->Theme_actionBarSplitStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionBarStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionBarTabBarStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionBarTabStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionBarTabTextStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionBarTheme:I
+Lcom/android/internal/R$styleable;->Theme_actionBarWidgetTheme:I
+Lcom/android/internal/R$styleable;->Theme_actionButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionDropDownStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionMenuTextAppearance:I
+Lcom/android/internal/R$styleable;->Theme_actionMenuTextColor:I
+Lcom/android/internal/R$styleable;->Theme_actionModeBackground:I
+Lcom/android/internal/R$styleable;->Theme_actionModeCloseButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionModeCloseDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionModeCopyDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionModeCutDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionModeFindDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionModePasteDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionModePopupWindowStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionModeSelectAllDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionModeShareDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionModeSplitBackground:I
+Lcom/android/internal/R$styleable;->Theme_actionModeStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionModeWebSearchDrawable:I
+Lcom/android/internal/R$styleable;->Theme_actionOverflowButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_actionOverflowMenuStyle:I
+Lcom/android/internal/R$styleable;->Theme_activatedBackgroundIndicator:I
+Lcom/android/internal/R$styleable;->Theme_activityChooserViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_alertDialogButtonGroupStyle:I
+Lcom/android/internal/R$styleable;->Theme_alertDialogCenterButtons:I
+Lcom/android/internal/R$styleable;->Theme_alertDialogIcon:I
+Lcom/android/internal/R$styleable;->Theme_alertDialogStyle:I
+Lcom/android/internal/R$styleable;->Theme_alertDialogTheme:I
+Lcom/android/internal/R$styleable;->Theme_ambientShadowAlpha:I
+Lcom/android/internal/R$styleable;->Theme_autoCompleteTextViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_autofillDatasetPickerMaxHeight:I
+Lcom/android/internal/R$styleable;->Theme_autofillDatasetPickerMaxWidth:I
+Lcom/android/internal/R$styleable;->Theme_autofilledHighlight:I
+Lcom/android/internal/R$styleable;->Theme_autofillSaveCustomSubtitleMaxHeight:I
+Lcom/android/internal/R$styleable;->Theme_backgroundDimAmount:I
+Lcom/android/internal/R$styleable;->Theme_backgroundDimEnabled:I
+Lcom/android/internal/R$styleable;->Theme_borderlessButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_buttonBarButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_buttonBarNegativeButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_buttonBarNeutralButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_buttonBarPositiveButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_buttonBarStyle:I
+Lcom/android/internal/R$styleable;->Theme_buttonCornerRadius:I
+Lcom/android/internal/R$styleable;->Theme_buttonStyle:I
+Lcom/android/internal/R$styleable;->Theme_buttonStyleInset:I
+Lcom/android/internal/R$styleable;->Theme_buttonStyleSmall:I
+Lcom/android/internal/R$styleable;->Theme_buttonStyleToggle:I
+Lcom/android/internal/R$styleable;->Theme_calendarViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_candidatesTextStyleSpans:I
+Lcom/android/internal/R$styleable;->Theme_checkBoxPreferenceStyle:I
+Lcom/android/internal/R$styleable;->Theme_checkboxStyle:I
+Lcom/android/internal/R$styleable;->Theme_checkedTextViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_colorAccent:I
+Lcom/android/internal/R$styleable;->Theme_colorActivatedHighlight:I
+Lcom/android/internal/R$styleable;->Theme_colorBackground:I
+Lcom/android/internal/R$styleable;->Theme_colorBackgroundCacheHint:I
+Lcom/android/internal/R$styleable;->Theme_colorBackgroundFloating:I
+Lcom/android/internal/R$styleable;->Theme_colorButtonNormal:I
+Lcom/android/internal/R$styleable;->Theme_colorControlActivated:I
+Lcom/android/internal/R$styleable;->Theme_colorControlHighlight:I
+Lcom/android/internal/R$styleable;->Theme_colorControlNormal:I
+Lcom/android/internal/R$styleable;->Theme_colorEdgeEffect:I
+Lcom/android/internal/R$styleable;->Theme_colorError:I
+Lcom/android/internal/R$styleable;->Theme_colorFocusedHighlight:I
+Lcom/android/internal/R$styleable;->Theme_colorForeground:I
+Lcom/android/internal/R$styleable;->Theme_colorForegroundInverse:I
+Lcom/android/internal/R$styleable;->Theme_colorLongPressedHighlight:I
+Lcom/android/internal/R$styleable;->Theme_colorMultiSelectHighlight:I
+Lcom/android/internal/R$styleable;->Theme_colorPressedHighlight:I
+Lcom/android/internal/R$styleable;->Theme_colorPrimary:I
+Lcom/android/internal/R$styleable;->Theme_colorPrimaryDark:I
+Lcom/android/internal/R$styleable;->Theme_colorProgressBackgroundNormal:I
+Lcom/android/internal/R$styleable;->Theme_colorSecondary:I
+Lcom/android/internal/R$styleable;->Theme_colorSwitchThumbNormal:I
+Lcom/android/internal/R$styleable;->Theme_contextPopupMenuStyle:I
+Lcom/android/internal/R$styleable;->Theme_datePickerDialogTheme:I
+Lcom/android/internal/R$styleable;->Theme_datePickerStyle:I
+Lcom/android/internal/R$styleable;->Theme_detailsElementBackground:I
+Lcom/android/internal/R$styleable;->Theme_dialogCornerRadius:I
+Lcom/android/internal/R$styleable;->Theme_dialogCustomTitleDecorLayout:I
+Lcom/android/internal/R$styleable;->Theme_dialogPreferenceStyle:I
+Lcom/android/internal/R$styleable;->Theme_dialogPreferredPadding:I
+Lcom/android/internal/R$styleable;->Theme_dialogTheme:I
+Lcom/android/internal/R$styleable;->Theme_dialogTitleDecorLayout:I
+Lcom/android/internal/R$styleable;->Theme_dialogTitleIconsDecorLayout:I
+Lcom/android/internal/R$styleable;->Theme_disabledAlpha:I
+Lcom/android/internal/R$styleable;->Theme_dividerHorizontal:I
+Lcom/android/internal/R$styleable;->Theme_dividerVertical:I
+Lcom/android/internal/R$styleable;->Theme_dropDownHintAppearance:I
+Lcom/android/internal/R$styleable;->Theme_dropDownItemStyle:I
+Lcom/android/internal/R$styleable;->Theme_dropdownListPreferredItemHeight:I
+Lcom/android/internal/R$styleable;->Theme_dropDownListViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_dropDownSpinnerStyle:I
+Lcom/android/internal/R$styleable;->Theme_editTextBackground:I
+Lcom/android/internal/R$styleable;->Theme_editTextColor:I
+Lcom/android/internal/R$styleable;->Theme_editTextPreferenceStyle:I
+Lcom/android/internal/R$styleable;->Theme_editTextStyle:I
+Lcom/android/internal/R$styleable;->Theme_errorMessageAboveBackground:I
+Lcom/android/internal/R$styleable;->Theme_errorMessageBackground:I
+Lcom/android/internal/R$styleable;->Theme_expandableListPreferredChildIndicatorLeft:I
+Lcom/android/internal/R$styleable;->Theme_expandableListPreferredChildIndicatorRight:I
+Lcom/android/internal/R$styleable;->Theme_expandableListPreferredChildPaddingLeft:I
+Lcom/android/internal/R$styleable;->Theme_expandableListPreferredItemIndicatorLeft:I
+Lcom/android/internal/R$styleable;->Theme_expandableListPreferredItemIndicatorRight:I
+Lcom/android/internal/R$styleable;->Theme_expandableListPreferredItemPaddingLeft:I
+Lcom/android/internal/R$styleable;->Theme_expandableListViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_expandableListViewWhiteStyle:I
+Lcom/android/internal/R$styleable;->Theme_fastScrollOverlayPosition:I
+Lcom/android/internal/R$styleable;->Theme_fastScrollPreviewBackgroundLeft:I
+Lcom/android/internal/R$styleable;->Theme_fastScrollPreviewBackgroundRight:I
+Lcom/android/internal/R$styleable;->Theme_fastScrollTextColor:I
+Lcom/android/internal/R$styleable;->Theme_fastScrollThumbDrawable:I
+Lcom/android/internal/R$styleable;->Theme_fastScrollTrackDrawable:I
+Lcom/android/internal/R$styleable;->Theme_findOnPageNextDrawable:I
+Lcom/android/internal/R$styleable;->Theme_findOnPagePreviousDrawable:I
+Lcom/android/internal/R$styleable;->Theme_fingerprintAuthDrawable:I
+Lcom/android/internal/R$styleable;->Theme_floatingToolbarCloseDrawable:I
+Lcom/android/internal/R$styleable;->Theme_floatingToolbarDividerColor:I
+Lcom/android/internal/R$styleable;->Theme_floatingToolbarForegroundColor:I
+Lcom/android/internal/R$styleable;->Theme_floatingToolbarItemBackgroundBorderlessDrawable:I
+Lcom/android/internal/R$styleable;->Theme_floatingToolbarItemBackgroundDrawable:I
+Lcom/android/internal/R$styleable;->Theme_floatingToolbarOpenDrawable:I
+Lcom/android/internal/R$styleable;->Theme_floatingToolbarPopupBackgroundDrawable:I
+Lcom/android/internal/R$styleable;->Theme_fragmentBreadCrumbsStyle:I
+Lcom/android/internal/R$styleable;->Theme_galleryItemBackground:I
+Lcom/android/internal/R$styleable;->Theme_galleryStyle:I
+Lcom/android/internal/R$styleable;->Theme_gestureOverlayViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_gridViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_homeAsUpIndicator:I
+Lcom/android/internal/R$styleable;->Theme_horizontalScrollViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_imageButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_imageWellStyle:I
+Lcom/android/internal/R$styleable;->Theme_isLightTheme:I
+Lcom/android/internal/R$styleable;->Theme_lightRadius:I
+Lcom/android/internal/R$styleable;->Theme_lightY:I
+Lcom/android/internal/R$styleable;->Theme_lightZ:I
+Lcom/android/internal/R$styleable;->Theme_listChoiceBackgroundIndicator:I
+Lcom/android/internal/R$styleable;->Theme_listChoiceIndicatorMultiple:I
+Lcom/android/internal/R$styleable;->Theme_listChoiceIndicatorSingle:I
+Lcom/android/internal/R$styleable;->Theme_listDivider:I
+Lcom/android/internal/R$styleable;->Theme_listDividerAlertDialog:I
+Lcom/android/internal/R$styleable;->Theme_listMenuViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_listPopupWindowStyle:I
+Lcom/android/internal/R$styleable;->Theme_listPreferredItemHeight:I
+Lcom/android/internal/R$styleable;->Theme_listPreferredItemHeightLarge:I
+Lcom/android/internal/R$styleable;->Theme_listPreferredItemHeightSmall:I
+Lcom/android/internal/R$styleable;->Theme_listPreferredItemPaddingEnd:I
+Lcom/android/internal/R$styleable;->Theme_listPreferredItemPaddingLeft:I
+Lcom/android/internal/R$styleable;->Theme_listPreferredItemPaddingRight:I
+Lcom/android/internal/R$styleable;->Theme_listPreferredItemPaddingStart:I
+Lcom/android/internal/R$styleable;->Theme_listSeparatorTextViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_listViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_listViewWhiteStyle:I
+Lcom/android/internal/R$styleable;->Theme_mapViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_mediaRouteButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_numberPickerStyle:I
+Lcom/android/internal/R$styleable;->Theme_panelBackground:I
+Lcom/android/internal/R$styleable;->Theme_panelColorBackground:I
+Lcom/android/internal/R$styleable;->Theme_panelColorForeground:I
+Lcom/android/internal/R$styleable;->Theme_panelFullBackground:I
+Lcom/android/internal/R$styleable;->Theme_panelMenuIsCompact:I
+Lcom/android/internal/R$styleable;->Theme_panelMenuListTheme:I
+Lcom/android/internal/R$styleable;->Theme_panelMenuListWidth:I
+Lcom/android/internal/R$styleable;->Theme_panelTextAppearance:I
+Lcom/android/internal/R$styleable;->Theme_popupMenuStyle:I
+Lcom/android/internal/R$styleable;->Theme_popupWindowStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceActivityStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceCategoryStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceFragmentListStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceFragmentPaddingSide:I
+Lcom/android/internal/R$styleable;->Theme_preferenceFragmentStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceFrameLayoutStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceHeaderPanelStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceInformationStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceLayoutChild:I
+Lcom/android/internal/R$styleable;->Theme_preferenceListStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferencePanelStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceScreenStyle:I
+Lcom/android/internal/R$styleable;->Theme_preferenceStyle:I
+Lcom/android/internal/R$styleable;->Theme_presentationTheme:I
+Lcom/android/internal/R$styleable;->Theme_primaryContentAlpha:I
+Lcom/android/internal/R$styleable;->Theme_progressBarCornerRadius:I
+Lcom/android/internal/R$styleable;->Theme_progressBarStyle:I
+Lcom/android/internal/R$styleable;->Theme_progressBarStyleHorizontal:I
+Lcom/android/internal/R$styleable;->Theme_progressBarStyleInverse:I
+Lcom/android/internal/R$styleable;->Theme_progressBarStyleLarge:I
+Lcom/android/internal/R$styleable;->Theme_progressBarStyleLargeInverse:I
+Lcom/android/internal/R$styleable;->Theme_progressBarStyleSmall:I
+Lcom/android/internal/R$styleable;->Theme_progressBarStyleSmallInverse:I
+Lcom/android/internal/R$styleable;->Theme_progressBarStyleSmallTitle:I
+Lcom/android/internal/R$styleable;->Theme_quickContactBadgeOverlay:I
+Lcom/android/internal/R$styleable;->Theme_quickContactBadgeStyleSmallWindowLarge:I
+Lcom/android/internal/R$styleable;->Theme_quickContactBadgeStyleSmallWindowMedium:I
+Lcom/android/internal/R$styleable;->Theme_quickContactBadgeStyleSmallWindowSmall:I
+Lcom/android/internal/R$styleable;->Theme_quickContactBadgeStyleWindowLarge:I
+Lcom/android/internal/R$styleable;->Theme_quickContactBadgeStyleWindowMedium:I
+Lcom/android/internal/R$styleable;->Theme_quickContactBadgeStyleWindowSmall:I
+Lcom/android/internal/R$styleable;->Theme_radioButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_ratingBarStyle:I
+Lcom/android/internal/R$styleable;->Theme_ratingBarStyleIndicator:I
+Lcom/android/internal/R$styleable;->Theme_ratingBarStyleSmall:I
+Lcom/android/internal/R$styleable;->Theme_ringtonePreferenceStyle:I
+Lcom/android/internal/R$styleable;->Theme_scrollViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_searchDialogTheme:I
+Lcom/android/internal/R$styleable;->Theme_searchResultListItemHeight:I
+Lcom/android/internal/R$styleable;->Theme_searchViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_searchWidgetCorpusItemBackground:I
+Lcom/android/internal/R$styleable;->Theme_secondaryContentAlpha:I
+Lcom/android/internal/R$styleable;->Theme_seekBarDialogPreferenceStyle:I
+Lcom/android/internal/R$styleable;->Theme_seekBarPreferenceStyle:I
+Lcom/android/internal/R$styleable;->Theme_seekBarStyle:I
+Lcom/android/internal/R$styleable;->Theme_segmentedButtonStyle:I
+Lcom/android/internal/R$styleable;->Theme_selectableItemBackground:I
+Lcom/android/internal/R$styleable;->Theme_selectableItemBackgroundBorderless:I
+Lcom/android/internal/R$styleable;->Theme_spinnerDropDownItemStyle:I
+Lcom/android/internal/R$styleable;->Theme_spinnerItemStyle:I
+Lcom/android/internal/R$styleable;->Theme_spinnerStyle:I
+Lcom/android/internal/R$styleable;->Theme_spotShadowAlpha:I
+Lcom/android/internal/R$styleable;->Theme_stackViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_starStyle:I
+Lcom/android/internal/R$styleable;->Theme_switchPreferenceStyle:I
+Lcom/android/internal/R$styleable;->Theme_switchStyle:I
+Lcom/android/internal/R$styleable;->Theme_tabWidgetStyle:I
+Lcom/android/internal/R$styleable;->Theme_textAppearance:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceAutoCorrectionSuggestion:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceButton:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceEasyCorrectSuggestion:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceInverse:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceLarge:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceLargeInverse:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceLargePopupMenu:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceListItem:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceListItemSecondary:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceListItemSmall:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceMedium:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceMediumInverse:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceMisspelledSuggestion:I
+Lcom/android/internal/R$styleable;->Theme_textAppearancePopupMenuHeader:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceSearchResultSubtitle:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceSearchResultTitle:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceSmall:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceSmallInverse:I
+Lcom/android/internal/R$styleable;->Theme_textAppearanceSmallPopupMenu:I
+Lcom/android/internal/R$styleable;->Theme_textCheckMark:I
+Lcom/android/internal/R$styleable;->Theme_textCheckMarkInverse:I
+Lcom/android/internal/R$styleable;->Theme_textColorAlertDialogListItem:I
+Lcom/android/internal/R$styleable;->Theme_textColorHighlightInverse:I
+Lcom/android/internal/R$styleable;->Theme_textColorHintInverse:I
+Lcom/android/internal/R$styleable;->Theme_textColorLinkInverse:I
+Lcom/android/internal/R$styleable;->Theme_textColorPrimary:I
+Lcom/android/internal/R$styleable;->Theme_textColorPrimaryActivated:I
+Lcom/android/internal/R$styleable;->Theme_textColorPrimaryDisableOnly:I
+Lcom/android/internal/R$styleable;->Theme_textColorPrimaryInverse:I
+Lcom/android/internal/R$styleable;->Theme_textColorPrimaryInverseDisableOnly:I
+Lcom/android/internal/R$styleable;->Theme_textColorPrimaryInverseNoDisable:I
+Lcom/android/internal/R$styleable;->Theme_textColorPrimaryNoDisable:I
+Lcom/android/internal/R$styleable;->Theme_textColorSearchUrl:I
+Lcom/android/internal/R$styleable;->Theme_textColorSecondary:I
+Lcom/android/internal/R$styleable;->Theme_textColorSecondaryActivated:I
+Lcom/android/internal/R$styleable;->Theme_textColorSecondaryInverse:I
+Lcom/android/internal/R$styleable;->Theme_textColorSecondaryInverseNoDisable:I
+Lcom/android/internal/R$styleable;->Theme_textColorSecondaryNoDisable:I
+Lcom/android/internal/R$styleable;->Theme_textColorTertiary:I
+Lcom/android/internal/R$styleable;->Theme_textColorTertiaryInverse:I
+Lcom/android/internal/R$styleable;->Theme_textEditNoPasteWindowLayout:I
+Lcom/android/internal/R$styleable;->Theme_textEditPasteWindowLayout:I
+Lcom/android/internal/R$styleable;->Theme_textEditSideNoPasteWindowLayout:I
+Lcom/android/internal/R$styleable;->Theme_textEditSidePasteWindowLayout:I
+Lcom/android/internal/R$styleable;->Theme_textEditSuggestionContainerLayout:I
+Lcom/android/internal/R$styleable;->Theme_textEditSuggestionHighlightStyle:I
+Lcom/android/internal/R$styleable;->Theme_textEditSuggestionItemLayout:I
+Lcom/android/internal/R$styleable;->Theme_textSelectHandle:I
+Lcom/android/internal/R$styleable;->Theme_textSelectHandleLeft:I
+Lcom/android/internal/R$styleable;->Theme_textSelectHandleRight:I
+Lcom/android/internal/R$styleable;->Theme_textSelectHandleWindowStyle:I
+Lcom/android/internal/R$styleable;->Theme_textSuggestionsWindowStyle:I
+Lcom/android/internal/R$styleable;->Theme_textUnderlineColor:I
+Lcom/android/internal/R$styleable;->Theme_textUnderlineThickness:I
+Lcom/android/internal/R$styleable;->Theme_textViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_timePickerDialogTheme:I
+Lcom/android/internal/R$styleable;->Theme_timePickerStyle:I
+Lcom/android/internal/R$styleable;->Theme_toastFrameBackground:I
+Lcom/android/internal/R$styleable;->Theme_toolbarStyle:I
+Lcom/android/internal/R$styleable;->Theme_tooltipBackgroundColor:I
+Lcom/android/internal/R$styleable;->Theme_tooltipForegroundColor:I
+Lcom/android/internal/R$styleable;->Theme_tooltipFrameBackground:I
+Lcom/android/internal/R$styleable;->Theme_webTextViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_webViewStyle:I
+Lcom/android/internal/R$styleable;->Theme_windowActionBar:I
+Lcom/android/internal/R$styleable;->Theme_windowActionBarFullscreenDecorLayout:I
+Lcom/android/internal/R$styleable;->Theme_windowActionBarOverlay:I
+Lcom/android/internal/R$styleable;->Theme_windowActionModeOverlay:I
+Lcom/android/internal/R$styleable;->Theme_windowActivityTransitions:I
+Lcom/android/internal/R$styleable;->Theme_windowAllowEnterTransitionOverlap:I
+Lcom/android/internal/R$styleable;->Theme_windowAllowReturnTransitionOverlap:I
+Lcom/android/internal/R$styleable;->Theme_windowAnimationStyle:I
+Lcom/android/internal/R$styleable;->Theme_windowBackground:I
+Lcom/android/internal/R$styleable;->Theme_windowBackgroundFallback:I
+Lcom/android/internal/R$styleable;->Theme_windowCloseOnTouchOutside:I
+Lcom/android/internal/R$styleable;->Theme_windowContentOverlay:I
+Lcom/android/internal/R$styleable;->Theme_windowContentTransitionManager:I
+Lcom/android/internal/R$styleable;->Theme_windowContentTransitions:I
+Lcom/android/internal/R$styleable;->Theme_windowDisablePreview:I
+Lcom/android/internal/R$styleable;->Theme_windowEnableSplitTouch:I
+Lcom/android/internal/R$styleable;->Theme_windowEnterTransition:I
+Lcom/android/internal/R$styleable;->Theme_windowExitTransition:I
+Lcom/android/internal/R$styleable;->Theme_windowFrame:I
+Lcom/android/internal/R$styleable;->Theme_windowFullscreen:I
+Lcom/android/internal/R$styleable;->Theme_windowIsFloating:I
+Lcom/android/internal/R$styleable;->Theme_windowIsTranslucent:I
+Lcom/android/internal/R$styleable;->Theme_windowNoDisplay:I
+Lcom/android/internal/R$styleable;->Theme_windowNoTitle:I
+Lcom/android/internal/R$styleable;->Theme_windowOverscan:I
+Lcom/android/internal/R$styleable;->Theme_windowReenterTransition:I
+Lcom/android/internal/R$styleable;->Theme_windowReturnTransition:I
+Lcom/android/internal/R$styleable;->Theme_windowSharedElementEnterTransition:I
+Lcom/android/internal/R$styleable;->Theme_windowSharedElementExitTransition:I
+Lcom/android/internal/R$styleable;->Theme_windowSharedElementReenterTransition:I
+Lcom/android/internal/R$styleable;->Theme_windowSharedElementReturnTransition:I
+Lcom/android/internal/R$styleable;->Theme_windowSharedElementsUseOverlay:I
+Lcom/android/internal/R$styleable;->Theme_windowShowWallpaper:I
+Lcom/android/internal/R$styleable;->Theme_windowSoftInputMode:I
+Lcom/android/internal/R$styleable;->Theme_windowSwipeToDismiss:I
+Lcom/android/internal/R$styleable;->Theme_windowTitleBackgroundStyle:I
+Lcom/android/internal/R$styleable;->Theme_windowTitleSize:I
+Lcom/android/internal/R$styleable;->Theme_windowTitleStyle:I
+Lcom/android/internal/R$styleable;->Theme_windowTransitionBackgroundFadeDuration:I
+Lcom/android/internal/R$styleable;->Theme_windowTranslucentNavigation:I
+Lcom/android/internal/R$styleable;->Theme_windowTranslucentStatus:I
+Lcom/android/internal/R$styleable;->Theme_yesNoPreferenceStyle:I
+Lcom/android/internal/R$styleable;->TimePicker:[I
+Lcom/android/internal/R$styleable;->TimePicker_amPmBackgroundColor:I
+Lcom/android/internal/R$styleable;->TimePicker_amPmTextColor:I
+Lcom/android/internal/R$styleable;->TimePicker_dialogMode:I
+Lcom/android/internal/R$styleable;->TimePicker_headerAmPmTextAppearance:I
+Lcom/android/internal/R$styleable;->TimePicker_headerBackground:I
+Lcom/android/internal/R$styleable;->TimePicker_headerTextColor:I
+Lcom/android/internal/R$styleable;->TimePicker_headerTimeTextAppearance:I
+Lcom/android/internal/R$styleable;->TimePicker_internalLayout:I
+Lcom/android/internal/R$styleable;->TimePicker_legacyLayout:I
+Lcom/android/internal/R$styleable;->TimePicker_numbersBackgroundColor:I
+Lcom/android/internal/R$styleable;->TimePicker_numbersInnerTextColor:I
+Lcom/android/internal/R$styleable;->TimePicker_numbersSelectorColor:I
+Lcom/android/internal/R$styleable;->TimePicker_numbersTextColor:I
+Lcom/android/internal/R$styleable;->TimePicker_timePickerMode:I
+Lcom/android/internal/R$styleable;->ToggleButton:[I
+Lcom/android/internal/R$styleable;->ToggleButton_disabledAlpha:I
+Lcom/android/internal/R$styleable;->ToggleButton_textOff:I
+Lcom/android/internal/R$styleable;->ToggleButton_textOn:I
+Lcom/android/internal/R$styleable;->Toolbar:[I
+Lcom/android/internal/R$styleable;->Toolbar_buttonGravity:I
+Lcom/android/internal/R$styleable;->Toolbar_collapseContentDescription:I
+Lcom/android/internal/R$styleable;->Toolbar_collapseIcon:I
+Lcom/android/internal/R$styleable;->Toolbar_contentInsetEnd:I
+Lcom/android/internal/R$styleable;->Toolbar_contentInsetEndWithActions:I
+Lcom/android/internal/R$styleable;->Toolbar_contentInsetLeft:I
+Lcom/android/internal/R$styleable;->Toolbar_contentInsetRight:I
+Lcom/android/internal/R$styleable;->Toolbar_contentInsetStart:I
+Lcom/android/internal/R$styleable;->Toolbar_contentInsetStartWithNavigation:I
+Lcom/android/internal/R$styleable;->Toolbar_gravity:I
+Lcom/android/internal/R$styleable;->Toolbar_LayoutParams:[I
+Lcom/android/internal/R$styleable;->Toolbar_LayoutParams_layout_gravity:I
+Lcom/android/internal/R$styleable;->Toolbar_logo:I
+Lcom/android/internal/R$styleable;->Toolbar_logoDescription:I
+Lcom/android/internal/R$styleable;->Toolbar_maxButtonHeight:I
+Lcom/android/internal/R$styleable;->Toolbar_navigationButtonStyle:I
+Lcom/android/internal/R$styleable;->Toolbar_navigationContentDescription:I
+Lcom/android/internal/R$styleable;->Toolbar_navigationIcon:I
+Lcom/android/internal/R$styleable;->Toolbar_popupTheme:I
+Lcom/android/internal/R$styleable;->Toolbar_subtitle:I
+Lcom/android/internal/R$styleable;->Toolbar_subtitleTextAppearance:I
+Lcom/android/internal/R$styleable;->Toolbar_subtitleTextColor:I
+Lcom/android/internal/R$styleable;->Toolbar_title:I
+Lcom/android/internal/R$styleable;->Toolbar_titleMargin:I
+Lcom/android/internal/R$styleable;->Toolbar_titleMarginBottom:I
+Lcom/android/internal/R$styleable;->Toolbar_titleMarginEnd:I
+Lcom/android/internal/R$styleable;->Toolbar_titleMarginStart:I
+Lcom/android/internal/R$styleable;->Toolbar_titleMarginTop:I
+Lcom/android/internal/R$styleable;->Toolbar_titleTextAppearance:I
+Lcom/android/internal/R$styleable;->Toolbar_titleTextColor:I
+Lcom/android/internal/R$styleable;->Transition:[I
+Lcom/android/internal/R$styleable;->TransitionManager:[I
+Lcom/android/internal/R$styleable;->TransitionManager_fromScene:I
+Lcom/android/internal/R$styleable;->TransitionManager_toScene:I
+Lcom/android/internal/R$styleable;->TransitionManager_transition:I
+Lcom/android/internal/R$styleable;->TransitionSet:[I
+Lcom/android/internal/R$styleable;->TransitionSet_transitionOrdering:I
+Lcom/android/internal/R$styleable;->TransitionTarget:[I
+Lcom/android/internal/R$styleable;->TransitionTarget_excludeClass:I
+Lcom/android/internal/R$styleable;->TransitionTarget_excludeId:I
+Lcom/android/internal/R$styleable;->TransitionTarget_excludeName:I
+Lcom/android/internal/R$styleable;->TransitionTarget_targetClass:I
+Lcom/android/internal/R$styleable;->TransitionTarget_targetId:I
+Lcom/android/internal/R$styleable;->TransitionTarget_targetName:I
+Lcom/android/internal/R$styleable;->Transition_duration:I
+Lcom/android/internal/R$styleable;->Transition_interpolator:I
+Lcom/android/internal/R$styleable;->Transition_matchOrder:I
+Lcom/android/internal/R$styleable;->Transition_startDelay:I
+Lcom/android/internal/R$styleable;->TranslateAnimation:[I
+Lcom/android/internal/R$styleable;->TranslateAnimation_fromXDelta:I
+Lcom/android/internal/R$styleable;->TranslateAnimation_fromYDelta:I
+Lcom/android/internal/R$styleable;->TranslateAnimation_toXDelta:I
+Lcom/android/internal/R$styleable;->TranslateAnimation_toYDelta:I
+Lcom/android/internal/R$styleable;->TrustAgent:[I
+Lcom/android/internal/R$styleable;->TrustAgent_settingsActivity:I
+Lcom/android/internal/R$styleable;->TrustAgent_summary:I
+Lcom/android/internal/R$styleable;->TrustAgent_title:I
+Lcom/android/internal/R$styleable;->TrustAgent_unlockProfile:I
+Lcom/android/internal/R$styleable;->TvInputService:[I
+Lcom/android/internal/R$styleable;->TvInputService_canRecord:I
+Lcom/android/internal/R$styleable;->TvInputService_settingsActivity:I
+Lcom/android/internal/R$styleable;->TvInputService_setupActivity:I
+Lcom/android/internal/R$styleable;->TvInputService_tunerCount:I
+Lcom/android/internal/R$styleable;->TwoLineListItem_mode:I
+Lcom/android/internal/R$styleable;->VectorDrawable:[I
+Lcom/android/internal/R$styleable;->VectorDrawableClipPath:[I
+Lcom/android/internal/R$styleable;->VectorDrawableClipPath_name:I
+Lcom/android/internal/R$styleable;->VectorDrawableClipPath_pathData:I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup:[I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup_name:I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup_pivotX:I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup_pivotY:I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup_rotation:I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup_scaleX:I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup_scaleY:I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup_translateX:I
+Lcom/android/internal/R$styleable;->VectorDrawableGroup_translateY:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath:[I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_fillAlpha:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_fillColor:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_fillType:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_name:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_pathData:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_strokeAlpha:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_strokeColor:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_strokeLineCap:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_strokeLineJoin:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_strokeMiterLimit:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_strokeWidth:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_trimPathEnd:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_trimPathOffset:I
+Lcom/android/internal/R$styleable;->VectorDrawablePath_trimPathStart:I
+Lcom/android/internal/R$styleable;->VectorDrawable_alpha:I
+Lcom/android/internal/R$styleable;->VectorDrawable_autoMirrored:I
+Lcom/android/internal/R$styleable;->VectorDrawable_height:I
+Lcom/android/internal/R$styleable;->VectorDrawable_name:I
+Lcom/android/internal/R$styleable;->VectorDrawable_opticalInsetBottom:I
+Lcom/android/internal/R$styleable;->VectorDrawable_opticalInsetLeft:I
+Lcom/android/internal/R$styleable;->VectorDrawable_opticalInsetRight:I
+Lcom/android/internal/R$styleable;->VectorDrawable_opticalInsetTop:I
+Lcom/android/internal/R$styleable;->VectorDrawable_tint:I
+Lcom/android/internal/R$styleable;->VectorDrawable_tintMode:I
+Lcom/android/internal/R$styleable;->VectorDrawable_viewportHeight:I
+Lcom/android/internal/R$styleable;->VectorDrawable_viewportWidth:I
+Lcom/android/internal/R$styleable;->VectorDrawable_width:I
+Lcom/android/internal/R$styleable;->VerticalSlider_Layout:[I
+Lcom/android/internal/R$styleable;->VerticalSlider_Layout_layout_scale:I
+Lcom/android/internal/R$styleable;->VideoView2:[I
+Lcom/android/internal/R$styleable;->VideoView2_enableControlView:I
+Lcom/android/internal/R$styleable;->VideoView2_enableSubtitle:I
+Lcom/android/internal/R$styleable;->VideoView2_viewType:I
+Lcom/android/internal/R$styleable;->ViewAnimator_animateFirstView:I
+Lcom/android/internal/R$styleable;->ViewAnimator_inAnimation:I
+Lcom/android/internal/R$styleable;->ViewAnimator_outAnimation:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates:[I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_accelerated:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_activated:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_drag_can_accept:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_drag_hovered:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_enabled:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_focused:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_hovered:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_pressed:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_selected:I
+Lcom/android/internal/R$styleable;->ViewDrawableStates_state_window_focused:I
+Lcom/android/internal/R$styleable;->ViewFlipper_autoStart:I
+Lcom/android/internal/R$styleable;->ViewFlipper_flipInterval:I
+Lcom/android/internal/R$styleable;->ViewGroup:[I
+Lcom/android/internal/R$styleable;->ViewGroup_addStatesFromChildren:I
+Lcom/android/internal/R$styleable;->ViewGroup_alwaysDrawnWithCache:I
+Lcom/android/internal/R$styleable;->ViewGroup_animateLayoutChanges:I
+Lcom/android/internal/R$styleable;->ViewGroup_animationCache:I
+Lcom/android/internal/R$styleable;->ViewGroup_clipChildren:I
+Lcom/android/internal/R$styleable;->ViewGroup_clipToPadding:I
+Lcom/android/internal/R$styleable;->ViewGroup_descendantFocusability:I
+Lcom/android/internal/R$styleable;->ViewGroup_layoutAnimation:I
+Lcom/android/internal/R$styleable;->ViewGroup_layoutMode:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout:[I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_height:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_margin:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_marginBottom:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_marginEnd:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_marginHorizontal:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_marginLeft:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_marginRight:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_marginStart:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_marginTop:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_marginVertical:I
+Lcom/android/internal/R$styleable;->ViewGroup_MarginLayout_layout_width:I
+Lcom/android/internal/R$styleable;->ViewGroup_persistentDrawingCache:I
+Lcom/android/internal/R$styleable;->ViewGroup_splitMotionEvents:I
+Lcom/android/internal/R$styleable;->ViewGroup_touchscreenBlocksFocus:I
+Lcom/android/internal/R$styleable;->ViewGroup_transitionGroup:I
+Lcom/android/internal/R$styleable;->ViewStub_id:I
+Lcom/android/internal/R$styleable;->ViewSwitcher:[I
+Lcom/android/internal/R$styleable;->ViewTag:[I
+Lcom/android/internal/R$styleable;->ViewTag_id:I
+Lcom/android/internal/R$styleable;->ViewTag_value:I
+Lcom/android/internal/R$styleable;->View_accessibilityHeading:I
+Lcom/android/internal/R$styleable;->View_accessibilityLiveRegion:I
+Lcom/android/internal/R$styleable;->View_accessibilityPaneTitle:I
+Lcom/android/internal/R$styleable;->View_accessibilityTraversalAfter:I
+Lcom/android/internal/R$styleable;->View_accessibilityTraversalBefore:I
+Lcom/android/internal/R$styleable;->View_alpha:I
+Lcom/android/internal/R$styleable;->View_autofillHints:I
+Lcom/android/internal/R$styleable;->View_backgroundTint:I
+Lcom/android/internal/R$styleable;->View_backgroundTintMode:I
+Lcom/android/internal/R$styleable;->View_contentDescription:I
+Lcom/android/internal/R$styleable;->View_contextClickable:I
+Lcom/android/internal/R$styleable;->View_defaultFocusHighlightEnabled:I
+Lcom/android/internal/R$styleable;->View_drawingCacheQuality:I
+Lcom/android/internal/R$styleable;->View_duplicateParentState:I
+Lcom/android/internal/R$styleable;->View_elevation:I
+Lcom/android/internal/R$styleable;->View_fadeScrollbars:I
+Lcom/android/internal/R$styleable;->View_fadingEdge:I
+Lcom/android/internal/R$styleable;->View_fadingEdgeLength:I
+Lcom/android/internal/R$styleable;->View_filterTouchesWhenObscured:I
+Lcom/android/internal/R$styleable;->View_fitsSystemWindows:I
+Lcom/android/internal/R$styleable;->View_focusableInTouchMode:I
+Lcom/android/internal/R$styleable;->View_focusedByDefault:I
+Lcom/android/internal/R$styleable;->View_forceHasOverlappingRendering:I
+Lcom/android/internal/R$styleable;->View_foreground:I
+Lcom/android/internal/R$styleable;->View_foregroundGravity:I
+Lcom/android/internal/R$styleable;->View_foregroundInsidePadding:I
+Lcom/android/internal/R$styleable;->View_foregroundTint:I
+Lcom/android/internal/R$styleable;->View_foregroundTintMode:I
+Lcom/android/internal/R$styleable;->View_hapticFeedbackEnabled:I
+Lcom/android/internal/R$styleable;->View_importantForAccessibility:I
+Lcom/android/internal/R$styleable;->View_importantForAutofill:I
+Lcom/android/internal/R$styleable;->View_isScrollContainer:I
+Lcom/android/internal/R$styleable;->View_keepScreenOn:I
+Lcom/android/internal/R$styleable;->View_keyboardNavigationCluster:I
+Lcom/android/internal/R$styleable;->View_labelFor:I
+Lcom/android/internal/R$styleable;->View_layerType:I
+Lcom/android/internal/R$styleable;->View_layoutDirection:I
+Lcom/android/internal/R$styleable;->View_minHeight:I
+Lcom/android/internal/R$styleable;->View_minWidth:I
+Lcom/android/internal/R$styleable;->View_nestedScrollingEnabled:I
+Lcom/android/internal/R$styleable;->View_nextClusterForward:I
+Lcom/android/internal/R$styleable;->View_nextFocusDown:I
+Lcom/android/internal/R$styleable;->View_nextFocusForward:I
+Lcom/android/internal/R$styleable;->View_nextFocusLeft:I
+Lcom/android/internal/R$styleable;->View_nextFocusRight:I
+Lcom/android/internal/R$styleable;->View_nextFocusUp:I
+Lcom/android/internal/R$styleable;->View_onClick:I
+Lcom/android/internal/R$styleable;->View_outlineAmbientShadowColor:I
+Lcom/android/internal/R$styleable;->View_outlineProvider:I
+Lcom/android/internal/R$styleable;->View_outlineSpotShadowColor:I
+Lcom/android/internal/R$styleable;->View_overScrollMode:I
+Lcom/android/internal/R$styleable;->View_padding:I
+Lcom/android/internal/R$styleable;->View_paddingBottom:I
+Lcom/android/internal/R$styleable;->View_paddingEnd:I
+Lcom/android/internal/R$styleable;->View_paddingHorizontal:I
+Lcom/android/internal/R$styleable;->View_paddingLeft:I
+Lcom/android/internal/R$styleable;->View_paddingRight:I
+Lcom/android/internal/R$styleable;->View_paddingStart:I
+Lcom/android/internal/R$styleable;->View_paddingTop:I
+Lcom/android/internal/R$styleable;->View_paddingVertical:I
+Lcom/android/internal/R$styleable;->View_pointerIcon:I
+Lcom/android/internal/R$styleable;->View_requiresFadingEdge:I
+Lcom/android/internal/R$styleable;->View_rotation:I
+Lcom/android/internal/R$styleable;->View_rotationX:I
+Lcom/android/internal/R$styleable;->View_rotationY:I
+Lcom/android/internal/R$styleable;->View_saveEnabled:I
+Lcom/android/internal/R$styleable;->View_scaleX:I
+Lcom/android/internal/R$styleable;->View_scaleY:I
+Lcom/android/internal/R$styleable;->View_screenReaderFocusable:I
+Lcom/android/internal/R$styleable;->View_scrollbarAlwaysDrawHorizontalTrack:I
+Lcom/android/internal/R$styleable;->View_scrollbarAlwaysDrawVerticalTrack:I
+Lcom/android/internal/R$styleable;->View_scrollbarDefaultDelayBeforeFade:I
+Lcom/android/internal/R$styleable;->View_scrollbarFadeDuration:I
+Lcom/android/internal/R$styleable;->View_scrollbars:I
+Lcom/android/internal/R$styleable;->View_scrollbarSize:I
+Lcom/android/internal/R$styleable;->View_scrollbarStyle:I
+Lcom/android/internal/R$styleable;->View_scrollbarThumbHorizontal:I
+Lcom/android/internal/R$styleable;->View_scrollbarThumbVertical:I
+Lcom/android/internal/R$styleable;->View_scrollbarTrackHorizontal:I
+Lcom/android/internal/R$styleable;->View_scrollbarTrackVertical:I
+Lcom/android/internal/R$styleable;->View_scrollIndicators:I
+Lcom/android/internal/R$styleable;->View_scrollX:I
+Lcom/android/internal/R$styleable;->View_scrollY:I
+Lcom/android/internal/R$styleable;->View_soundEffectsEnabled:I
+Lcom/android/internal/R$styleable;->View_stateListAnimator:I
+Lcom/android/internal/R$styleable;->View_tag:I
+Lcom/android/internal/R$styleable;->View_textAlignment:I
+Lcom/android/internal/R$styleable;->View_textDirection:I
+Lcom/android/internal/R$styleable;->View_theme:I
+Lcom/android/internal/R$styleable;->View_tooltipText:I
+Lcom/android/internal/R$styleable;->View_transformPivotX:I
+Lcom/android/internal/R$styleable;->View_transformPivotY:I
+Lcom/android/internal/R$styleable;->View_transitionName:I
+Lcom/android/internal/R$styleable;->View_translationX:I
+Lcom/android/internal/R$styleable;->View_translationY:I
+Lcom/android/internal/R$styleable;->View_translationZ:I
+Lcom/android/internal/R$styleable;->View_verticalScrollbarPosition:I
+Lcom/android/internal/R$styleable;->View_visibility:I
+Lcom/android/internal/R$styleable;->View___removed0:I
+Lcom/android/internal/R$styleable;->View___removed1:I
+Lcom/android/internal/R$styleable;->View___removed3:I
+Lcom/android/internal/R$styleable;->VisibilityTransition:[I
+Lcom/android/internal/R$styleable;->VisibilityTransition_transitionVisibilityMode:I
+Lcom/android/internal/R$styleable;->VoiceEnrollmentApplication:[I
+Lcom/android/internal/R$styleable;->VoiceEnrollmentApplication_searchKeyphrase:I
+Lcom/android/internal/R$styleable;->VoiceEnrollmentApplication_searchKeyphraseId:I
+Lcom/android/internal/R$styleable;->VoiceEnrollmentApplication_searchKeyphraseRecognitionFlags:I
+Lcom/android/internal/R$styleable;->VoiceEnrollmentApplication_searchKeyphraseSupportedLocales:I
+Lcom/android/internal/R$styleable;->VoiceInteractionService:[I
+Lcom/android/internal/R$styleable;->VoiceInteractionService_recognitionService:I
+Lcom/android/internal/R$styleable;->VoiceInteractionService_sessionService:I
+Lcom/android/internal/R$styleable;->VoiceInteractionService_settingsActivity:I
+Lcom/android/internal/R$styleable;->VoiceInteractionService_supportsAssist:I
+Lcom/android/internal/R$styleable;->VoiceInteractionService_supportsLaunchVoiceAssistFromKeyguard:I
+Lcom/android/internal/R$styleable;->VoiceInteractionService_supportsLocalInteraction:I
+Lcom/android/internal/R$styleable;->VoiceInteractionSession:[I
+Lcom/android/internal/R$styleable;->VolumePreference:[I
+Lcom/android/internal/R$styleable;->VolumePreference_streamType:I
+Lcom/android/internal/R$styleable;->Wallpaper:[I
+Lcom/android/internal/R$styleable;->WallpaperPreviewInfo_staticWallpaperPreview:I
+Lcom/android/internal/R$styleable;->Wallpaper_author:I
+Lcom/android/internal/R$styleable;->Wallpaper_contextDescription:I
+Lcom/android/internal/R$styleable;->Wallpaper_contextUri:I
+Lcom/android/internal/R$styleable;->Wallpaper_description:I
+Lcom/android/internal/R$styleable;->Wallpaper_settingsActivity:I
+Lcom/android/internal/R$styleable;->Wallpaper_showMetadataInPreview:I
+Lcom/android/internal/R$styleable;->Wallpaper_supportsAmbientMode:I
+Lcom/android/internal/R$styleable;->Wallpaper_thumbnail:I
+Lcom/android/internal/R$styleable;->WeightedLinearLayout:[I
+Lcom/android/internal/R$styleable;->WeightedLinearLayout_majorWeightMax:I
+Lcom/android/internal/R$styleable;->WeightedLinearLayout_majorWeightMin:I
+Lcom/android/internal/R$styleable;->WeightedLinearLayout_minorWeightMax:I
+Lcom/android/internal/R$styleable;->WeightedLinearLayout_minorWeightMin:I
+Lcom/android/internal/R$styleable;->WindowAnimation_activityCloseEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_activityCloseExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_activityOpenEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_activityOpenExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_activityOpenRemoteViewsEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_launchTaskBehindSourceAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_launchTaskBehindTargetAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_taskCloseEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_taskCloseExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_taskOpenEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_taskOpenExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_taskToBackEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_taskToBackExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_taskToFrontEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_taskToFrontExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_wallpaperCloseEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_wallpaperCloseExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_wallpaperIntraCloseEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_wallpaperIntraCloseExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_wallpaperIntraOpenEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_wallpaperIntraOpenExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_wallpaperOpenEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_wallpaperOpenExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_windowEnterAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_windowExitAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_windowHideAnimation:I
+Lcom/android/internal/R$styleable;->WindowAnimation_windowShowAnimation:I
+Lcom/android/internal/R$styleable;->Window_backgroundDimAmount:I
+Lcom/android/internal/R$styleable;->Window_backgroundDimEnabled:I
+Lcom/android/internal/R$styleable;->Window_navigationBarColor:I
+Lcom/android/internal/R$styleable;->Window_navigationBarDividerColor:I
+Lcom/android/internal/R$styleable;->Window_statusBarColor:I
+Lcom/android/internal/R$styleable;->Window_textColor:I
+Lcom/android/internal/R$styleable;->Window_windowActionBar:I
+Lcom/android/internal/R$styleable;->Window_windowActionBarOverlay:I
+Lcom/android/internal/R$styleable;->Window_windowActionModeOverlay:I
+Lcom/android/internal/R$styleable;->Window_windowActivityTransitions:I
+Lcom/android/internal/R$styleable;->Window_windowAllowEnterTransitionOverlap:I
+Lcom/android/internal/R$styleable;->Window_windowAllowReturnTransitionOverlap:I
+Lcom/android/internal/R$styleable;->Window_windowAnimationStyle:I
+Lcom/android/internal/R$styleable;->Window_windowBackgroundFallback:I
+Lcom/android/internal/R$styleable;->Window_windowClipToOutline:I
+Lcom/android/internal/R$styleable;->Window_windowCloseOnTouchOutside:I
+Lcom/android/internal/R$styleable;->Window_windowContentOverlay:I
+Lcom/android/internal/R$styleable;->Window_windowContentTransitionManager:I
+Lcom/android/internal/R$styleable;->Window_windowContentTransitions:I
+Lcom/android/internal/R$styleable;->Window_windowDisablePreview:I
+Lcom/android/internal/R$styleable;->Window_windowDrawsSystemBarBackgrounds:I
+Lcom/android/internal/R$styleable;->Window_windowElevation:I
+Lcom/android/internal/R$styleable;->Window_windowEnableSplitTouch:I
+Lcom/android/internal/R$styleable;->Window_windowEnterTransition:I
+Lcom/android/internal/R$styleable;->Window_windowExitTransition:I
+Lcom/android/internal/R$styleable;->Window_windowFixedHeightMajor:I
+Lcom/android/internal/R$styleable;->Window_windowFixedHeightMinor:I
+Lcom/android/internal/R$styleable;->Window_windowFixedWidthMajor:I
+Lcom/android/internal/R$styleable;->Window_windowFixedWidthMinor:I
+Lcom/android/internal/R$styleable;->Window_windowFrame:I
+Lcom/android/internal/R$styleable;->Window_windowLayoutInDisplayCutoutMode:I
+Lcom/android/internal/R$styleable;->Window_windowLightNavigationBar:I
+Lcom/android/internal/R$styleable;->Window_windowLightStatusBar:I
+Lcom/android/internal/R$styleable;->Window_windowMinWidthMajor:I
+Lcom/android/internal/R$styleable;->Window_windowMinWidthMinor:I
+Lcom/android/internal/R$styleable;->Window_windowNoDisplay:I
+Lcom/android/internal/R$styleable;->Window_windowNoTitle:I
+Lcom/android/internal/R$styleable;->Window_windowOutsetBottom:I
+Lcom/android/internal/R$styleable;->Window_windowOverscan:I
+Lcom/android/internal/R$styleable;->Window_windowReenterTransition:I
+Lcom/android/internal/R$styleable;->Window_windowReturnTransition:I
+Lcom/android/internal/R$styleable;->Window_windowSharedElementEnterTransition:I
+Lcom/android/internal/R$styleable;->Window_windowSharedElementExitTransition:I
+Lcom/android/internal/R$styleable;->Window_windowSharedElementReenterTransition:I
+Lcom/android/internal/R$styleable;->Window_windowSharedElementReturnTransition:I
+Lcom/android/internal/R$styleable;->Window_windowSharedElementsUseOverlay:I
+Lcom/android/internal/R$styleable;->Window_windowSoftInputMode:I
+Lcom/android/internal/R$styleable;->Window_windowSplashscreenContent:I
+Lcom/android/internal/R$styleable;->Window_windowSwipeToDismiss:I
+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
+Lcom/android/internal/R$transition;->move:I
+Lcom/android/internal/R$transition;->no_transition:I
+Lcom/android/internal/R$transition;->slide_bottom:I
+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
+Lcom/android/internal/R$xml;->autotext:I
+Lcom/android/internal/R$xml;->bookmarks:I
+Lcom/android/internal/R$xml;->color_extraction:I
+Lcom/android/internal/R$xml;->config_webview_packages:I
+Lcom/android/internal/R$xml;->default_zen_mode_config:I
+Lcom/android/internal/R$xml;->global_keys:I
+Lcom/android/internal/R$xml;->password_kbd_numeric:I
+Lcom/android/internal/R$xml;->password_kbd_qwerty:I
+Lcom/android/internal/R$xml;->password_kbd_qwerty_shifted:I
+Lcom/android/internal/R$xml;->password_kbd_symbols:I
+Lcom/android/internal/R$xml;->password_kbd_symbols_shift:I
+Lcom/android/internal/R$xml;->power_profile_test:I
+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
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->animateExpandNotificationsPanel()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->animateExpandSettingsPanel(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionCancelled()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionFinished()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionPending()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionStarting(JJ)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->cancelPreloadRecentApps()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->clickQsTile(Landroid/content/ComponentName;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->disable(II)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->dismissKeyboardShortcutsMenu()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->handleSystemKey(I)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->hideFingerprintDialog()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->hideRecentApps(ZZ)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onCameraLaunchGestureDetected(I)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onFingerprintAuthenticated()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onFingerprintError(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onFingerprintHelp(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onProposedRotationChanged(IZ)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->preloadRecentApps()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->removeIcon(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->remQsTile(Landroid/content/ComponentName;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setIcon(Ljava/lang/String;Lcom/android/internal/statusbar/StatusBarIcon;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setImeWindowStatus(Landroid/os/IBinder;IIZ)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setSystemUiVisibility(IIIILandroid/graphics/Rect;Landroid/graphics/Rect;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setTopAppHidesStatusBar(Z)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setWindowState(II)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showAssistDisclosure()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showFingerprintDialog(Landroid/os/Bundle;Landroid/hardware/biometrics/IBiometricPromptReceiver;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showGlobalActionsMenu()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showPictureInPictureMenu()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showPinningEnterExitToast(Z)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showPinningEscapeToast()V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showRecentApps(Z)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showScreenPinningRequest(I)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showShutdownUi(ZLjava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showWirelessChargingAnimation(I)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->startAssist(Landroid/os/Bundle;)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->toggleKeyboardShortcutsMenu(I)V
+Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->togglePanel()V
+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
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_animateCollapsePanels:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_animateExpandNotificationsPanel:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_animateExpandSettingsPanel:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_appTransitionCancelled:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_appTransitionFinished:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_appTransitionPending:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_appTransitionStarting:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_cancelPreloadRecentApps:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_clickQsTile:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_disable:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_dismissKeyboardShortcutsMenu:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_handleSystemKey:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_hideFingerprintDialog:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_hideRecentApps:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_onCameraLaunchGestureDetected:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_onFingerprintAuthenticated:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_onFingerprintError:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_onFingerprintHelp:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_onProposedRotationChanged:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_preloadRecentApps:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_removeIcon:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_remQsTile:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_setIcon:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_setImeWindowStatus:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_setSystemUiVisibility:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_setTopAppHidesStatusBar:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_setWindowState:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showAssistDisclosure:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showFingerprintDialog:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showGlobalActionsMenu:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showPictureInPictureMenu:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showPinningEnterExitToast:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showPinningEscapeToast:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showRecentApps:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showScreenPinningRequest:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showShutdownUi:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_showWirelessChargingAnimation:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_startAssist:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_toggleKeyboardShortcutsMenu:I
+Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_togglePanel:I
+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
+Lcom/android/internal/statusbar/IStatusBar;->animateExpandSettingsPanel(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar;->appTransitionCancelled()V
+Lcom/android/internal/statusbar/IStatusBar;->appTransitionFinished()V
+Lcom/android/internal/statusbar/IStatusBar;->appTransitionPending()V
+Lcom/android/internal/statusbar/IStatusBar;->appTransitionStarting(JJ)V
+Lcom/android/internal/statusbar/IStatusBar;->cancelPreloadRecentApps()V
+Lcom/android/internal/statusbar/IStatusBar;->clickQsTile(Landroid/content/ComponentName;)V
+Lcom/android/internal/statusbar/IStatusBar;->disable(II)V
+Lcom/android/internal/statusbar/IStatusBar;->dismissKeyboardShortcutsMenu()V
+Lcom/android/internal/statusbar/IStatusBar;->handleSystemKey(I)V
+Lcom/android/internal/statusbar/IStatusBar;->hideFingerprintDialog()V
+Lcom/android/internal/statusbar/IStatusBar;->hideRecentApps(ZZ)V
+Lcom/android/internal/statusbar/IStatusBar;->onCameraLaunchGestureDetected(I)V
+Lcom/android/internal/statusbar/IStatusBar;->onFingerprintAuthenticated()V
+Lcom/android/internal/statusbar/IStatusBar;->onFingerprintError(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar;->onFingerprintHelp(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar;->onProposedRotationChanged(IZ)V
+Lcom/android/internal/statusbar/IStatusBar;->preloadRecentApps()V
+Lcom/android/internal/statusbar/IStatusBar;->removeIcon(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar;->remQsTile(Landroid/content/ComponentName;)V
+Lcom/android/internal/statusbar/IStatusBar;->setIcon(Ljava/lang/String;Lcom/android/internal/statusbar/StatusBarIcon;)V
+Lcom/android/internal/statusbar/IStatusBar;->setImeWindowStatus(Landroid/os/IBinder;IIZ)V
+Lcom/android/internal/statusbar/IStatusBar;->setSystemUiVisibility(IIIILandroid/graphics/Rect;Landroid/graphics/Rect;)V
+Lcom/android/internal/statusbar/IStatusBar;->setTopAppHidesStatusBar(Z)V
+Lcom/android/internal/statusbar/IStatusBar;->setWindowState(II)V
+Lcom/android/internal/statusbar/IStatusBar;->showAssistDisclosure()V
+Lcom/android/internal/statusbar/IStatusBar;->showFingerprintDialog(Landroid/os/Bundle;Landroid/hardware/biometrics/IBiometricPromptReceiver;)V
+Lcom/android/internal/statusbar/IStatusBar;->showGlobalActionsMenu()V
+Lcom/android/internal/statusbar/IStatusBar;->showPictureInPictureMenu()V
+Lcom/android/internal/statusbar/IStatusBar;->showPinningEnterExitToast(Z)V
+Lcom/android/internal/statusbar/IStatusBar;->showPinningEscapeToast()V
+Lcom/android/internal/statusbar/IStatusBar;->showRecentApps(Z)V
+Lcom/android/internal/statusbar/IStatusBar;->showScreenPinningRequest(I)V
+Lcom/android/internal/statusbar/IStatusBar;->showShutdownUi(ZLjava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBar;->showWirelessChargingAnimation(I)V
+Lcom/android/internal/statusbar/IStatusBar;->startAssist(Landroid/os/Bundle;)V
+Lcom/android/internal/statusbar/IStatusBar;->toggleKeyboardShortcutsMenu(I)V
+Lcom/android/internal/statusbar/IStatusBar;->togglePanel()V
+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
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->clickTile(Landroid/content/ComponentName;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->collapsePanels()V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->disable(ILandroid/os/IBinder;Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->disable2(ILandroid/os/IBinder;Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->disable2ForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->disableForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->expandNotificationsPanel()V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->expandSettingsPanel(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->handleSystemKey(I)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->hideFingerprintDialog()V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onClearAllNotifications(I)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onFingerprintAuthenticated()V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onFingerprintError(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onFingerprintHelp(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onGlobalActionsHidden()V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onGlobalActionsShown()V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationActionClick(Ljava/lang/String;ILcom/android/internal/statusbar/NotificationVisibility;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationClear(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILcom/android/internal/statusbar/NotificationVisibility;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationClick(Ljava/lang/String;Lcom/android/internal/statusbar/NotificationVisibility;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationDirectReplied(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationError(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationExpansionChanged(Ljava/lang/String;ZZ)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationSettingsViewed(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationSmartRepliesAdded(Ljava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationSmartReplySent(Ljava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationVisibilityChanged([Lcom/android/internal/statusbar/NotificationVisibility;[Lcom/android/internal/statusbar/NotificationVisibility;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onPanelHidden()V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onPanelRevealed(ZI)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->reboot(Z)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->registerStatusBar(Lcom/android/internal/statusbar/IStatusBar;Ljava/util/List;Ljava/util/List;[ILjava/util/List;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->removeIcon(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->remTile(Landroid/content/ComponentName;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->setIcon(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->setIconVisibility(Ljava/lang/String;Z)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->setImeWindowStatus(Landroid/os/IBinder;IIZ)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->setSystemUiVisibility(IILjava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->showFingerprintDialog(Landroid/os/Bundle;Landroid/hardware/biometrics/IBiometricPromptReceiver;)V
+Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->showPinningEnterExitToast(Z)V
+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
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_clickTile:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_collapsePanels:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_disable2:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_disable2ForUser:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_disable:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_disableForUser:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_expandNotificationsPanel:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_expandSettingsPanel:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_handleSystemKey:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_hideFingerprintDialog:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onClearAllNotifications:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onFingerprintAuthenticated:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onFingerprintError:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onFingerprintHelp:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onGlobalActionsHidden:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onGlobalActionsShown:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationActionClick:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationClear:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationClick:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationDirectReplied:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationError:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationExpansionChanged:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationSettingsViewed:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationSmartRepliesAdded:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationSmartReplySent:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onNotificationVisibilityChanged:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onPanelHidden:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_onPanelRevealed:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_reboot:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_registerStatusBar:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_removeIcon:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_remTile:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_setIcon:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_setIconVisibility:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_setImeWindowStatus:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_setSystemUiVisibility:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_showFingerprintDialog:I
+Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_showPinningEnterExitToast:I
+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
+Lcom/android/internal/statusbar/IStatusBarService;->disable2(ILandroid/os/IBinder;Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->disable2ForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService;->disableForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService;->expandSettingsPanel(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->hideFingerprintDialog()V
+Lcom/android/internal/statusbar/IStatusBarService;->onClearAllNotifications(I)V
+Lcom/android/internal/statusbar/IStatusBarService;->onFingerprintAuthenticated()V
+Lcom/android/internal/statusbar/IStatusBarService;->onFingerprintError(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->onFingerprintHelp(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->onGlobalActionsHidden()V
+Lcom/android/internal/statusbar/IStatusBarService;->onGlobalActionsShown()V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationActionClick(Ljava/lang/String;ILcom/android/internal/statusbar/NotificationVisibility;)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationClear(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILcom/android/internal/statusbar/NotificationVisibility;)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationClick(Ljava/lang/String;Lcom/android/internal/statusbar/NotificationVisibility;)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationDirectReplied(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationError(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationExpansionChanged(Ljava/lang/String;ZZ)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationSettingsViewed(Ljava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationSmartRepliesAdded(Ljava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationSmartReplySent(Ljava/lang/String;I)V
+Lcom/android/internal/statusbar/IStatusBarService;->onNotificationVisibilityChanged([Lcom/android/internal/statusbar/NotificationVisibility;[Lcom/android/internal/statusbar/NotificationVisibility;)V
+Lcom/android/internal/statusbar/IStatusBarService;->onPanelHidden()V
+Lcom/android/internal/statusbar/IStatusBarService;->onPanelRevealed(ZI)V
+Lcom/android/internal/statusbar/IStatusBarService;->reboot(Z)V
+Lcom/android/internal/statusbar/IStatusBarService;->registerStatusBar(Lcom/android/internal/statusbar/IStatusBar;Ljava/util/List;Ljava/util/List;[ILjava/util/List;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+Lcom/android/internal/statusbar/IStatusBarService;->remTile(Landroid/content/ComponentName;)V
+Lcom/android/internal/statusbar/IStatusBarService;->setIcon(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->setImeWindowStatus(Landroid/os/IBinder;IIZ)V
+Lcom/android/internal/statusbar/IStatusBarService;->setSystemUiVisibility(IILjava/lang/String;)V
+Lcom/android/internal/statusbar/IStatusBarService;->showFingerprintDialog(Landroid/os/Bundle;Landroid/hardware/biometrics/IBiometricPromptReceiver;)V
+Lcom/android/internal/statusbar/IStatusBarService;->showPinningEnterExitToast(Z)V
+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
+Lcom/android/internal/statusbar/NotificationVisibility;->CREATOR:Landroid/os/Parcelable$Creator;
+Lcom/android/internal/statusbar/NotificationVisibility;->id:I
+Lcom/android/internal/statusbar/NotificationVisibility;->key:Ljava/lang/String;
+Lcom/android/internal/statusbar/NotificationVisibility;->MAX_POOL_SIZE:I
+Lcom/android/internal/statusbar/NotificationVisibility;->obtain()Lcom/android/internal/statusbar/NotificationVisibility;
+Lcom/android/internal/statusbar/NotificationVisibility;->obtain(Landroid/os/Parcel;)Lcom/android/internal/statusbar/NotificationVisibility;
+Lcom/android/internal/statusbar/NotificationVisibility;->obtain(Ljava/lang/String;IIZ)Lcom/android/internal/statusbar/NotificationVisibility;
+Lcom/android/internal/statusbar/NotificationVisibility;->rank:I
+Lcom/android/internal/statusbar/NotificationVisibility;->readFromParcel(Landroid/os/Parcel;)V
+Lcom/android/internal/statusbar/NotificationVisibility;->recycle()V
+Lcom/android/internal/statusbar/NotificationVisibility;->sNexrId:I
+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
+Lcom/android/internal/statusbar/StatusBarIcon;->contentDescription:Ljava/lang/CharSequence;
+Lcom/android/internal/statusbar/StatusBarIcon;->CREATOR:Landroid/os/Parcelable$Creator;
+Lcom/android/internal/statusbar/StatusBarIcon;->icon:Landroid/graphics/drawable/Icon;
+Lcom/android/internal/statusbar/StatusBarIcon;->iconLevel:I
+Lcom/android/internal/statusbar/StatusBarIcon;->number:I
+Lcom/android/internal/statusbar/StatusBarIcon;->pkg:Ljava/lang/String;
+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
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->answer(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->answerVideo(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->conference(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->connectionServiceFocusGained(Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->connectionServiceFocusLost(Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->createConnection(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Landroid/telecom/ConnectionRequest;ZZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->createConnectionComplete(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->createConnectionFailed(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Landroid/telecom/ConnectionRequest;ZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->deflect(Ljava/lang/String;Landroid/net/Uri;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->disconnect(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->handoverComplete(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->handoverFailed(Ljava/lang/String;Landroid/telecom/ConnectionRequest;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->hold(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->mergeConference(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->onCallAudioStateChanged(Ljava/lang/String;Landroid/telecom/CallAudioState;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->onExtrasChanged(Ljava/lang/String;Landroid/os/Bundle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->onPostDialContinue(Ljava/lang/String;ZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->playDtmfTone(Ljava/lang/String;CLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->pullExternalCall(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->reject(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->rejectWithMessage(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->removeConnectionServiceAdapter(Lcom/android/internal/telecom/IConnectionServiceAdapter;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->respondToRttUpgradeRequest(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->sendCallEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->silence(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->splitFromConference(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->startRtt(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->stopDtmfTone(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+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;
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_abort:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_addConnectionServiceAdapter:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_answer:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_answerVideo:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_conference:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_connectionServiceFocusGained:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_connectionServiceFocusLost:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_createConnection:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_createConnectionComplete:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_createConnectionFailed:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_deflect:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_disconnect:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_handoverComplete:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_handoverFailed:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_hold:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_mergeConference:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_onCallAudioStateChanged:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_onExtrasChanged:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_onPostDialContinue:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_playDtmfTone:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_pullExternalCall:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_reject:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_rejectWithMessage:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_removeConnectionServiceAdapter:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_respondToRttUpgradeRequest:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_sendCallEvent:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_silence:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_splitFromConference:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_startRtt:I
+Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_stopDtmfTone:I
+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
+Lcom/android/internal/telecom/IConnectionService;->answerVideo(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->conference(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->connectionServiceFocusGained(Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->connectionServiceFocusLost(Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->createConnection(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Landroid/telecom/ConnectionRequest;ZZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->createConnectionComplete(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->createConnectionFailed(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Landroid/telecom/ConnectionRequest;ZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->deflect(Ljava/lang/String;Landroid/net/Uri;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->disconnect(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->handoverComplete(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->handoverFailed(Ljava/lang/String;Landroid/telecom/ConnectionRequest;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->hold(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->mergeConference(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->onCallAudioStateChanged(Ljava/lang/String;Landroid/telecom/CallAudioState;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->onExtrasChanged(Ljava/lang/String;Landroid/os/Bundle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->onPostDialContinue(Ljava/lang/String;ZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->playDtmfTone(Ljava/lang/String;CLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->pullExternalCall(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->reject(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->rejectWithMessage(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->removeConnectionServiceAdapter(Lcom/android/internal/telecom/IConnectionServiceAdapter;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->respondToRttUpgradeRequest(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->sendCallEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->silence(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->splitFromConference(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->startRtt(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionService;->stopDtmfTone(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+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
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->handleCreateConnectionComplete(Ljava/lang/String;Landroid/telecom/ConnectionRequest;Landroid/telecom/ParcelableConnection;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onConnectionEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onConnectionServiceFocusReleased(Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onPhoneAccountChanged(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onPostDialChar(Ljava/lang/String;CLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onPostDialWait(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onRemoteRttRequest(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onRttInitiationFailure(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onRttInitiationSuccess(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->onRttSessionRemotelyTerminated(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->putExtras(Ljava/lang/String;Landroid/os/Bundle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->queryRemoteConnectionServices(Lcom/android/internal/telecom/RemoteServiceCallback;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->removeCall(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->removeExtras(Ljava/lang/String;Ljava/util/List;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setActive(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setAddress(Ljava/lang/String;Landroid/net/Uri;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setAudioRoute(Ljava/lang/String;ILjava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setCallerDisplayName(Ljava/lang/String;Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setConferenceableConnections(Ljava/lang/String;Ljava/util/List;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setConferenceMergeFailed(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setConnectionCapabilities(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setConnectionProperties(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setDialing(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setDisconnected(Ljava/lang/String;Landroid/telecom/DisconnectCause;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setIsConferenced(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setIsVoipAudioMode(Ljava/lang/String;ZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setOnHold(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setPulling(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setRingbackRequested(Ljava/lang/String;ZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setRinging(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+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;
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_addConferenceCall:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_addExistingConnection:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_handleCreateConnectionComplete:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onConnectionEvent:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onConnectionServiceFocusReleased:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onPhoneAccountChanged:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onPostDialChar:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onPostDialWait:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onRemoteRttRequest:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onRttInitiationFailure:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onRttInitiationSuccess:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_onRttSessionRemotelyTerminated:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_putExtras:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_queryRemoteConnectionServices:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_removeCall:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_removeExtras:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setActive:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setAddress:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setAudioRoute:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setCallerDisplayName:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setConferenceableConnections:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setConferenceMergeFailed:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setConnectionCapabilities:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setConnectionProperties:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setDialing:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setDisconnected:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setIsConferenced:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setIsVoipAudioMode:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setOnHold:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setPulling:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setRingbackRequested:I
+Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setRinging:I
+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
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onConnectionEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onConnectionServiceFocusReleased(Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onPhoneAccountChanged(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onPostDialChar(Ljava/lang/String;CLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onPostDialWait(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onRemoteRttRequest(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onRttInitiationFailure(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onRttInitiationSuccess(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->onRttSessionRemotelyTerminated(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->putExtras(Ljava/lang/String;Landroid/os/Bundle;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->queryRemoteConnectionServices(Lcom/android/internal/telecom/RemoteServiceCallback;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->removeCall(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->removeExtras(Ljava/lang/String;Ljava/util/List;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setActive(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setAddress(Ljava/lang/String;Landroid/net/Uri;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setAudioRoute(Ljava/lang/String;ILjava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setCallerDisplayName(Ljava/lang/String;Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setConferenceableConnections(Ljava/lang/String;Ljava/util/List;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setConferenceMergeFailed(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setConnectionCapabilities(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setConnectionProperties(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setDialing(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setDisconnected(Ljava/lang/String;Landroid/telecom/DisconnectCause;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setIsConferenced(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setIsVoipAudioMode(Ljava/lang/String;ZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setOnHold(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setPulling(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setRingbackRequested(Ljava/lang/String;ZLandroid/telecom/Logging/Session$Info;)V
+Lcom/android/internal/telecom/IConnectionServiceAdapter;->setRinging(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
+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
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->deflectCall(Ljava/lang/String;Landroid/net/Uri;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->disconnectCall(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->handoverTo(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;ILandroid/os/Bundle;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->holdCall(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->mergeConference(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->mute(Z)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->phoneAccountSelected(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Z)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->playDtmfTone(Ljava/lang/String;C)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->postDialContinue(Ljava/lang/String;Z)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->pullExternalCall(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->putExtras(Ljava/lang/String;Landroid/os/Bundle;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->rejectCall(Ljava/lang/String;ZLjava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->removeExtras(Ljava/lang/String;Ljava/util/List;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->respondToRttRequest(Ljava/lang/String;IZ)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->sendCallEvent(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->sendRttRequest(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->setAudioRoute(ILjava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->setRttMode(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->splitFromConference(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->stopDtmfTone(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->stopRtt(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->swapConference(Ljava/lang/String;)V
+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;
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_answerCall:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_conference:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_deflectCall:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_disconnectCall:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_handoverTo:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_holdCall:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_mergeConference:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_mute:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_phoneAccountSelected:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_playDtmfTone:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_postDialContinue:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_pullExternalCall:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_putExtras:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_rejectCall:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_removeExtras:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_respondToRttRequest:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_sendCallEvent:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_sendRttRequest:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_setAudioRoute:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_setRttMode:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_splitFromConference:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_stopDtmfTone:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_stopRtt:I
+Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_swapConference:I
+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
+Lcom/android/internal/telecom/IInCallAdapter;->disconnectCall(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->handoverTo(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;ILandroid/os/Bundle;)V
+Lcom/android/internal/telecom/IInCallAdapter;->holdCall(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->mergeConference(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->mute(Z)V
+Lcom/android/internal/telecom/IInCallAdapter;->phoneAccountSelected(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Z)V
+Lcom/android/internal/telecom/IInCallAdapter;->playDtmfTone(Ljava/lang/String;C)V
+Lcom/android/internal/telecom/IInCallAdapter;->postDialContinue(Ljava/lang/String;Z)V
+Lcom/android/internal/telecom/IInCallAdapter;->pullExternalCall(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->putExtras(Ljava/lang/String;Landroid/os/Bundle;)V
+Lcom/android/internal/telecom/IInCallAdapter;->rejectCall(Ljava/lang/String;ZLjava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->removeExtras(Ljava/lang/String;Ljava/util/List;)V
+Lcom/android/internal/telecom/IInCallAdapter;->respondToRttRequest(Ljava/lang/String;IZ)V
+Lcom/android/internal/telecom/IInCallAdapter;->sendCallEvent(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;)V
+Lcom/android/internal/telecom/IInCallAdapter;->sendRttRequest(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->setAudioRoute(ILjava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->setRttMode(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IInCallAdapter;->splitFromConference(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->stopDtmfTone(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->stopRtt(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallAdapter;->swapConference(Ljava/lang/String;)V
+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
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->onCallAudioStateChanged(Landroid/telecom/CallAudioState;)V
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->onCanAddCallChanged(Z)V
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->onConnectionEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->onHandoverComplete(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->onHandoverFailed(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->onRttInitiationFailure(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->onRttUpgradeRequest(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->setInCallAdapter(Lcom/android/internal/telecom/IInCallAdapter;)V
+Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->setPostDial(Ljava/lang/String;Ljava/lang/String;)V
+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;
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_addCall:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_bringToForeground:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_onCallAudioStateChanged:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_onCanAddCallChanged:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_onConnectionEvent:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_onHandoverComplete:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_onHandoverFailed:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_onRttInitiationFailure:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_onRttUpgradeRequest:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_setInCallAdapter:I
+Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_setPostDial:I
+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
+Lcom/android/internal/telecom/IInCallService;->onCanAddCallChanged(Z)V
+Lcom/android/internal/telecom/IInCallService;->onConnectionEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+Lcom/android/internal/telecom/IInCallService;->onHandoverComplete(Ljava/lang/String;)V
+Lcom/android/internal/telecom/IInCallService;->onHandoverFailed(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IInCallService;->onRttInitiationFailure(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IInCallService;->onRttUpgradeRequest(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IInCallService;->setInCallAdapter(Lcom/android/internal/telecom/IInCallAdapter;)V
+Lcom/android/internal/telecom/IInCallService;->setPostDial(Ljava/lang/String;Ljava/lang/String;)V
+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
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->acceptRingingCallWithVideoState(Ljava/lang/String;I)V
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->addNewIncomingCall(Landroid/telecom/PhoneAccountHandle;Landroid/os/Bundle;)V
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->addNewUnknownCall(Landroid/telecom/PhoneAccountHandle;Landroid/os/Bundle;)V
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->cancelMissedCallsNotification(Ljava/lang/String;)V
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->clearAccounts(Ljava/lang/String;)V
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->createManageBlockedNumbersIntent()Landroid/content/Intent;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->dumpCallAnalytics()Landroid/telecom/TelecomAnalytics;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->enablePhoneAccount(Landroid/telecom/PhoneAccountHandle;Z)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->endCall(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getAdnUriForPhoneAccount(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;)Landroid/net/Uri;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getAllPhoneAccountHandles()Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getAllPhoneAccounts()Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getAllPhoneAccountsCount()I
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallCapablePhoneAccounts(ZLjava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallState()I
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCurrentTtyMode(Ljava/lang/String;)I
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultDialerPackage()Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultOutgoingPhoneAccount(Ljava/lang/String;Ljava/lang/String;)Landroid/telecom/PhoneAccountHandle;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultPhoneApp()Landroid/content/ComponentName;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getLine1Number(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getPhoneAccountsForPackage(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getPhoneAccountsSupportingScheme(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getSelfManagedPhoneAccounts(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getSimCallManager()Landroid/telecom/PhoneAccountHandle;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getSimCallManagerForUser(I)Landroid/telecom/PhoneAccountHandle;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getSystemDialerPackage()Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getUserSelectedOutgoingPhoneAccount()Landroid/telecom/PhoneAccountHandle;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getVoiceMailNumber(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->handlePinMmi(Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->handlePinMmiForPhoneAccount(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInCall(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isIncomingCallPermitted(Landroid/telecom/PhoneAccountHandle;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInManagedCall(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isOutgoingCallPermitted(Landroid/telecom/PhoneAccountHandle;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isRinging(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isTtySupported(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isVoiceMailNumber(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->placeCall(Landroid/net/Uri;Landroid/os/Bundle;Ljava/lang/String;)V
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->registerPhoneAccount(Landroid/telecom/PhoneAccount;)V
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->setDefaultDialer(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->setUserSelectedOutgoingPhoneAccount(Landroid/telecom/PhoneAccountHandle;)V
+Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->showInCallScreen(ZLjava/lang/String;)V
+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
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_acceptRingingCall:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_acceptRingingCallWithVideoState:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_addNewIncomingCall:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_addNewUnknownCall:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_cancelMissedCallsNotification:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_clearAccounts:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_createManageBlockedNumbersIntent:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_dumpCallAnalytics:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_enablePhoneAccount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_endCall:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getAdnUriForPhoneAccount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getAllPhoneAccountHandles:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getAllPhoneAccounts:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getAllPhoneAccountsCount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getCallCapablePhoneAccounts:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getCallState:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getCurrentTtyMode:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getDefaultDialerPackage:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getDefaultOutgoingPhoneAccount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getDefaultPhoneApp:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getLine1Number:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getPhoneAccount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getPhoneAccountsForPackage:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getPhoneAccountsSupportingScheme:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getSelfManagedPhoneAccounts:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getSimCallManager:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getSimCallManagerForUser:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getSystemDialerPackage:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getUserSelectedOutgoingPhoneAccount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_getVoiceMailNumber:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_handlePinMmi:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_handlePinMmiForPhoneAccount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_isInCall:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_isIncomingCallPermitted:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_isInManagedCall:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_isOutgoingCallPermitted:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_isRinging:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_isTtySupported:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_isVoiceMailNumber:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_placeCall:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_registerPhoneAccount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_setDefaultDialer:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_setUserSelectedOutgoingPhoneAccount:I
+Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_showInCallScreen:I
+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
+Lcom/android/internal/telecom/ITelecomService;->addNewIncomingCall(Landroid/telecom/PhoneAccountHandle;Landroid/os/Bundle;)V
+Lcom/android/internal/telecom/ITelecomService;->addNewUnknownCall(Landroid/telecom/PhoneAccountHandle;Landroid/os/Bundle;)V
+Lcom/android/internal/telecom/ITelecomService;->cancelMissedCallsNotification(Ljava/lang/String;)V
+Lcom/android/internal/telecom/ITelecomService;->clearAccounts(Ljava/lang/String;)V
+Lcom/android/internal/telecom/ITelecomService;->createManageBlockedNumbersIntent()Landroid/content/Intent;
+Lcom/android/internal/telecom/ITelecomService;->dumpCallAnalytics()Landroid/telecom/TelecomAnalytics;
+Lcom/android/internal/telecom/ITelecomService;->enablePhoneAccount(Landroid/telecom/PhoneAccountHandle;Z)Z
+Lcom/android/internal/telecom/ITelecomService;->endCall(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->getAdnUriForPhoneAccount(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;)Landroid/net/Uri;
+Lcom/android/internal/telecom/ITelecomService;->getAllPhoneAccountHandles()Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService;->getAllPhoneAccounts()Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService;->getAllPhoneAccountsCount()I
+Lcom/android/internal/telecom/ITelecomService;->getCallCapablePhoneAccounts(ZLjava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService;->getCurrentTtyMode(Ljava/lang/String;)I
+Lcom/android/internal/telecom/ITelecomService;->getDefaultDialerPackage()Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService;->getDefaultOutgoingPhoneAccount(Ljava/lang/String;Ljava/lang/String;)Landroid/telecom/PhoneAccountHandle;
+Lcom/android/internal/telecom/ITelecomService;->getDefaultPhoneApp()Landroid/content/ComponentName;
+Lcom/android/internal/telecom/ITelecomService;->getLine1Number(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount;
+Lcom/android/internal/telecom/ITelecomService;->getPhoneAccountsForPackage(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService;->getPhoneAccountsSupportingScheme(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService;->getSelfManagedPhoneAccounts(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telecom/ITelecomService;->getSimCallManager()Landroid/telecom/PhoneAccountHandle;
+Lcom/android/internal/telecom/ITelecomService;->getSimCallManagerForUser(I)Landroid/telecom/PhoneAccountHandle;
+Lcom/android/internal/telecom/ITelecomService;->getSystemDialerPackage()Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService;->getUserSelectedOutgoingPhoneAccount()Landroid/telecom/PhoneAccountHandle;
+Lcom/android/internal/telecom/ITelecomService;->getVoiceMailNumber(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telecom/ITelecomService;->handlePinMmi(Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->handlePinMmiForPhoneAccount(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->isInCall(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->isIncomingCallPermitted(Landroid/telecom/PhoneAccountHandle;)Z
+Lcom/android/internal/telecom/ITelecomService;->isInManagedCall(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->isOutgoingCallPermitted(Landroid/telecom/PhoneAccountHandle;)Z
+Lcom/android/internal/telecom/ITelecomService;->isRinging(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->isTtySupported(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->isVoiceMailNumber(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->placeCall(Landroid/net/Uri;Landroid/os/Bundle;Ljava/lang/String;)V
+Lcom/android/internal/telecom/ITelecomService;->registerPhoneAccount(Landroid/telecom/PhoneAccount;)V
+Lcom/android/internal/telecom/ITelecomService;->setDefaultDialer(Ljava/lang/String;)Z
+Lcom/android/internal/telecom/ITelecomService;->setUserSelectedOutgoingPhoneAccount(Landroid/telecom/PhoneAccountHandle;)V
+Lcom/android/internal/telecom/ITelecomService;->showInCallScreen(ZLjava/lang/String;)V
+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
+Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->changePeerDimensions(II)V
+Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->changeVideoQuality(I)V
+Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->handleCallSessionEvent(I)V
+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;
+Lcom/android/internal/telecom/IVideoCallback$Stub;->TRANSACTION_changeCallDataUsage:I
+Lcom/android/internal/telecom/IVideoCallback$Stub;->TRANSACTION_changeCameraCapabilities:I
+Lcom/android/internal/telecom/IVideoCallback$Stub;->TRANSACTION_changePeerDimensions:I
+Lcom/android/internal/telecom/IVideoCallback$Stub;->TRANSACTION_changeVideoQuality:I
+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
+Lcom/android/internal/telecom/IVideoCallback;->changeVideoQuality(I)V
+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;
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->removeVideoCallback(Landroid/os/IBinder;)V
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->requestCallDataUsage()V
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->requestCameraCapabilities()V
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->sendSessionModifyRequest(Landroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->sendSessionModifyResponse(Landroid/telecom/VideoProfile;)V
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->setCamera(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->setDeviceOrientation(I)V
+Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->setDisplaySurface(Landroid/view/Surface;)V
+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;
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_addVideoCallback:I
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_removeVideoCallback:I
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_requestCallDataUsage:I
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_requestCameraCapabilities:I
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_sendSessionModifyRequest:I
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_sendSessionModifyResponse:I
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_setCamera:I
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_setDeviceOrientation:I
+Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_setDisplaySurface:I
+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
+Lcom/android/internal/telecom/IVideoProvider;->requestCameraCapabilities()V
+Lcom/android/internal/telecom/IVideoProvider;->sendSessionModifyRequest(Landroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
+Lcom/android/internal/telecom/IVideoProvider;->sendSessionModifyResponse(Landroid/telecom/VideoProfile;)V
+Lcom/android/internal/telecom/IVideoProvider;->setCamera(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/telecom/IVideoProvider;->setDeviceOrientation(I)V
+Lcom/android/internal/telecom/IVideoProvider;->setDisplaySurface(Landroid/view/Surface;)V
+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;
+Lcom/android/internal/telephony/CallerInfo;->contactDisplayPhotoUri:Landroid/net/Uri;
+Lcom/android/internal/telephony/CallerInfo;->contactExists:Z
+Lcom/android/internal/telephony/CallerInfo;->contactRefUri:Landroid/net/Uri;
+Lcom/android/internal/telephony/CallerInfo;->contactRingtoneUri:Landroid/net/Uri;
+Lcom/android/internal/telephony/CallerInfo;->doSecondaryLookupIfNecessary(Landroid/content/Context;Ljava/lang/String;Lcom/android/internal/telephony/CallerInfo;)Lcom/android/internal/telephony/CallerInfo;
+Lcom/android/internal/telephony/CallerInfo;->geoDescription:Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->getCallerInfo(Landroid/content/Context;Landroid/net/Uri;Landroid/database/Cursor;)Lcom/android/internal/telephony/CallerInfo;
+Lcom/android/internal/telephony/CallerInfo;->getColumnIndexForPersonId(Landroid/net/Uri;Landroid/database/Cursor;)I
+Lcom/android/internal/telephony/CallerInfo;->getCurrentCountryIso(Landroid/content/Context;)Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->getCurrentCountryIso(Landroid/content/Context;Ljava/util/Locale;)Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->getGeoDescription(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->isCachedPhotoCurrent:Z
+Lcom/android/internal/telephony/CallerInfo;->isEmergencyNumber()Z
+Lcom/android/internal/telephony/CallerInfo;->isVoiceMailNumber()Z
+Lcom/android/internal/telephony/CallerInfo;->lookupKey:Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->markAsEmergency(Landroid/content/Context;)Lcom/android/internal/telephony/CallerInfo;
+Lcom/android/internal/telephony/CallerInfo;->markAsVoiceMail()Lcom/android/internal/telephony/CallerInfo;
+Lcom/android/internal/telephony/CallerInfo;->markAsVoiceMail(I)Lcom/android/internal/telephony/CallerInfo;
+Lcom/android/internal/telephony/CallerInfo;->mIsEmergency:Z
+Lcom/android/internal/telephony/CallerInfo;->mIsVoiceMail:Z
+Lcom/android/internal/telephony/CallerInfo;->namePresentation:I
+Lcom/android/internal/telephony/CallerInfo;->needUpdate:Z
+Lcom/android/internal/telephony/CallerInfo;->normalize(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->normalizedNumber:Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->numberPresentation:I
+Lcom/android/internal/telephony/CallerInfo;->phoneLabel:Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->photoResource:I
+Lcom/android/internal/telephony/CallerInfo;->shouldSendToVoicemail:Z
+Lcom/android/internal/telephony/CallerInfo;->TAG:Ljava/lang/String;
+Lcom/android/internal/telephony/CallerInfo;->updateGeoDescription(Landroid/content/Context;Ljava/lang/String;)V
+Lcom/android/internal/telephony/CallerInfo;->userType:J
+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;
+Lcom/android/internal/telephony/CellNetworkScanResult;->getOperators()Ljava/util/List;
+Lcom/android/internal/telephony/CellNetworkScanResult;->getStatus()I
+Lcom/android/internal/telephony/CellNetworkScanResult;->mOperators:Ljava/util/List;
+Lcom/android/internal/telephony/CellNetworkScanResult;->mStatus:I
+Lcom/android/internal/telephony/CellNetworkScanResult;->STATUS_RADIO_GENERIC_FAILURE:I
+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
+Lcom/android/internal/telephony/GsmAlphabet;->countGsmSeptets(Ljava/lang/CharSequence;Z)Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
+Lcom/android/internal/telephony/GsmAlphabet;->countGsmSeptetsUsingTables(Ljava/lang/CharSequence;ZII)I
+Lcom/android/internal/telephony/GsmAlphabet;->enableCountrySpecificEncodings()V
+Lcom/android/internal/telephony/GsmAlphabet;->getEnabledLockingShiftTables()[I
+Lcom/android/internal/telephony/GsmAlphabet;->getEnabledSingleShiftTables()[I
+Lcom/android/internal/telephony/GsmAlphabet;->gsmExtendedToChar(I)C
+Lcom/android/internal/telephony/GsmAlphabet;->GSM_EXTENDED_ESCAPE:B
+Lcom/android/internal/telephony/GsmAlphabet;->isGsmSeptets(C)Z
+Lcom/android/internal/telephony/GsmAlphabet;->sDisableCountryEncodingCheck:Z
+Lcom/android/internal/telephony/GsmAlphabet;->setEnabledLockingShiftTables([I)V
+Lcom/android/internal/telephony/GsmAlphabet;->setEnabledSingleShiftTables([I)V
+Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPacked(Ljava/lang/String;II)[B
+Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm7BitPackedWithHeader(Ljava/lang/String;[B)[B
+Lcom/android/internal/telephony/GsmAlphabet;->stringToGsm8BitUnpackedField(Ljava/lang/String;[BII)V
+Lcom/android/internal/telephony/GsmAlphabet;->TAG:Ljava/lang/String;
+Lcom/android/internal/telephony/GsmAlphabet;->UDH_SEPTET_COST_CONCATENATED_MESSAGE:I
+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;
+Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+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;
+Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;->TRANSACTION_getConfigForSubId:I
+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;
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->archiveStoredConversation(Ljava/lang/String;JZ)Z
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->deleteStoredConversation(Ljava/lang/String;J)Z
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->deleteStoredMessage(Ljava/lang/String;Landroid/net/Uri;)Z
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->downloadMessage(ILjava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->getAutoPersisting()Z
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->getCarrierConfigValues(I)Landroid/os/Bundle;
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->importMultimediaMessage(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;JZZ)Landroid/net/Uri;
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->importTextMessage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;JZZ)Landroid/net/Uri;
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telephony/IMms$Stub$Proxy;->sendMessage(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
+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
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_addTextMessageDraft:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_archiveStoredConversation:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_deleteStoredConversation:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_deleteStoredMessage:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_downloadMessage:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_getAutoPersisting:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_getCarrierConfigValues:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_importMultimediaMessage:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_importTextMessage:I
+Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_sendMessage:I
+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
+Lcom/android/internal/telephony/IMms;->deleteStoredConversation(Ljava/lang/String;J)Z
+Lcom/android/internal/telephony/IMms;->deleteStoredMessage(Ljava/lang/String;Landroid/net/Uri;)Z
+Lcom/android/internal/telephony/IMms;->downloadMessage(ILjava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/IMms;->getAutoPersisting()Z
+Lcom/android/internal/telephony/IMms;->getCarrierConfigValues(I)Landroid/os/Bundle;
+Lcom/android/internal/telephony/IMms;->importMultimediaMessage(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;JZZ)Landroid/net/Uri;
+Lcom/android/internal/telephony/IMms;->importTextMessage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;JZZ)Landroid/net/Uri;
+Lcom/android/internal/telephony/IMms;->sendMessage(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
+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;
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onCallForwardingIndicatorChanged(Z)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onCallStateChanged(ILjava/lang/String;)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onCarrierNetworkChange(Z)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onCellInfoChanged(Ljava/util/List;)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onCellLocationChanged(Landroid/os/Bundle;)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onDataActivationStateChanged(I)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onDataActivity(I)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onDataConnectionRealTimeInfoChanged(Landroid/telephony/DataConnectionRealTimeInfo;)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onDataConnectionStateChanged(II)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onMessageWaitingIndicatorChanged(Z)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onOemHookRawEvent([B)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onOtaspChanged(I)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onPhysicalChannelConfigurationChanged(Ljava/util/List;)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onPreciseCallStateChanged(Landroid/telephony/PreciseCallState;)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onPreciseDataConnectionStateChanged(Landroid/telephony/PreciseDataConnectionState;)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onServiceStateChanged(Landroid/telephony/ServiceState;)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onSignalStrengthChanged(I)V
+Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V
+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
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onCallStateChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onCarrierNetworkChange:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onCellInfoChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onCellLocationChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onDataActivationStateChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onDataActivity:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onDataConnectionRealTimeInfoChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onDataConnectionStateChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onMessageWaitingIndicatorChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onOemHookRawEvent:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onOtaspChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onPhysicalChannelConfigurationChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onPreciseCallStateChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onPreciseDataConnectionStateChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onServiceStateChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onSignalStrengthChanged:I
+Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onSignalStrengthsChanged:I
+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
+Lcom/android/internal/telephony/IPhoneStateListener;->onDataConnectionRealTimeInfoChanged(Landroid/telephony/DataConnectionRealTimeInfo;)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onOemHookRawEvent([B)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onOtaspChanged(I)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onPhysicalChannelConfigurationChanged(Ljava/util/List;)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onPreciseCallStateChanged(Landroid/telephony/PreciseCallState;)V
+Lcom/android/internal/telephony/IPhoneStateListener;->onPreciseDataConnectionStateChanged(Landroid/telephony/PreciseDataConnectionState;)V
+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;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getDeviceIdForPhone(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getDeviceSvn(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getDeviceSvnUsingSubId(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getGroupIdLevel1ForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIccSerialNumber(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIccSerialNumberForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIccSimChallengeResponse(IIILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getImeiForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIsimDomain(I)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIsimImpi(I)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIsimImpu(I)[Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIsimIst(I)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIsimPcscf(I)[Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getLine1AlphaTag(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getLine1AlphaTagForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getLine1Number(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getLine1NumberForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getMsisdn(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getMsisdnForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getNaiForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getSubscriberId(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getSubscriberIdForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getVoiceMailAlphaTag(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getVoiceMailAlphaTagForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getVoiceMailNumber(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getVoiceMailNumberForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+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
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getCompleteVoiceMailNumberForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getDeviceIdForPhone:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getDeviceSvn:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getDeviceSvnUsingSubId:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getGroupIdLevel1ForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getIccSerialNumber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getIccSerialNumberForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getIccSimChallengeResponse:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getImeiForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getIsimDomain:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getIsimImpi:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getIsimImpu:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getIsimIst:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getIsimPcscf:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getLine1AlphaTag:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getLine1AlphaTagForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getLine1Number:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getLine1NumberForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getMsisdn:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getMsisdnForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getNaiForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getSubscriberId:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getSubscriberIdForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getVoiceMailAlphaTag:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getVoiceMailAlphaTagForSubscriber:I
+Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getVoiceMailNumber:I
+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;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getDeviceId(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getDeviceIdForPhone(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getDeviceSvn(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getDeviceSvnUsingSubId(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getGroupIdLevel1ForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getIccSerialNumberForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getIccSimChallengeResponse(IIILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getImeiForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getIsimDomain(I)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getIsimImpi(I)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getIsimImpu(I)[Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getIsimIst(I)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getIsimPcscf(I)[Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getLine1AlphaTag(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getLine1AlphaTagForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getLine1Number(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getLine1NumberForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getMsisdn(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getMsisdnForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getNaiForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getSubscriberIdForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getVoiceMailAlphaTag(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getVoiceMailAlphaTagForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/IPhoneSubInfo;->getVoiceMailNumber(Ljava/lang/String;)Ljava/lang/String;
+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;
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->disableCellBroadcastForSubscriber(III)Z
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->disableCellBroadcastRangeForSubscriber(IIII)Z
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->enableCellBroadcastForSubscriber(III)Z
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->enableCellBroadcastRangeForSubscriber(IIII)Z
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->getAllMessagesFromIccEfForSubscriber(ILjava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->getImsSmsFormatForSubscriber(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->getPreferredSmsSubscription()I
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->getPremiumSmsPermission(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->getPremiumSmsPermissionForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->injectSmsPduForSubscriber(I[BLjava/lang/String;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->isImsSmsSupportedForSubscriber(I)Z
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->isSMSPromptEnabled()Z
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->isSmsSimPickActivityNeeded(I)Z
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendDataForSubscriber(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendDataForSubscriberWithSelfPermissions(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendMultipartTextForSubscriber(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Z)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendMultipartTextForSubscriberWithOptions(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZIZI)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendStoredMultipartText(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendStoredText(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendTextForSubscriber(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;Z)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendTextForSubscriberWithOptions(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;ZIZI)V
+Lcom/android/internal/telephony/ISms$Stub$Proxy;->sendTextForSubscriberWithSelfPermissions(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;Z)V
+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
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_disableCellBroadcastForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_disableCellBroadcastRangeForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_enableCellBroadcastForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_enableCellBroadcastRangeForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_getAllMessagesFromIccEfForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_getImsSmsFormatForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_getPreferredSmsSubscription:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_getPremiumSmsPermission:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_getPremiumSmsPermissionForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_injectSmsPduForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_isImsSmsSupportedForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_isSMSPromptEnabled:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_isSmsSimPickActivityNeeded:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendDataForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendDataForSubscriberWithSelfPermissions:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendMultipartTextForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendMultipartTextForSubscriberWithOptions:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendStoredMultipartText:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendStoredText:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendTextForSubscriber:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendTextForSubscriberWithOptions:I
+Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_sendTextForSubscriberWithSelfPermissions:I
+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
+Lcom/android/internal/telephony/ISms;->disableCellBroadcastRangeForSubscriber(IIII)Z
+Lcom/android/internal/telephony/ISms;->enableCellBroadcastForSubscriber(III)Z
+Lcom/android/internal/telephony/ISms;->enableCellBroadcastRangeForSubscriber(IIII)Z
+Lcom/android/internal/telephony/ISms;->getAllMessagesFromIccEfForSubscriber(ILjava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISms;->getImsSmsFormatForSubscriber(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ISms;->getPreferredSmsSubscription()I
+Lcom/android/internal/telephony/ISms;->getPremiumSmsPermission(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ISms;->getPremiumSmsPermissionForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ISms;->injectSmsPduForSubscriber(I[BLjava/lang/String;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ISms;->isImsSmsSupportedForSubscriber(I)Z
+Lcom/android/internal/telephony/ISms;->isSMSPromptEnabled()Z
+Lcom/android/internal/telephony/ISms;->isSmsSimPickActivityNeeded(I)Z
+Lcom/android/internal/telephony/ISms;->sendDataForSubscriber(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ISms;->sendDataForSubscriberWithSelfPermissions(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ISms;->sendMultipartTextForSubscriber(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Z)V
+Lcom/android/internal/telephony/ISms;->sendMultipartTextForSubscriberWithOptions(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZIZI)V
+Lcom/android/internal/telephony/ISms;->sendStoredMultipartText(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
+Lcom/android/internal/telephony/ISms;->sendStoredText(ILjava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ISms;->sendTextForSubscriber(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;Z)V
+Lcom/android/internal/telephony/ISms;->sendTextForSubscriberWithOptions(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;ZIZI)V
+Lcom/android/internal/telephony/ISms;->sendTextForSubscriberWithSelfPermissions(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;Z)V
+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
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getAccessibleSubscriptionInfoList(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubIdList()[I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubInfoCount(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubInfoCountMax()I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfo(ILjava/lang/String;)Landroid/telephony/SubscriptionInfo;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfoForIccId(Ljava/lang/String;Ljava/lang/String;)Landroid/telephony/SubscriptionInfo;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfoForSimSlotIndex(ILjava/lang/String;)Landroid/telephony/SubscriptionInfo;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfoList(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getAllSubInfoCount(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getAllSubInfoList(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getAvailableSubscriptionInfoList(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultDataSubId()I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSmsSubId()I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSubId()I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultVoiceSubId()I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getPhoneId(I)I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getSimStateForSlotIndex(I)I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getSlotIndex(I)I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getSubId(I)[I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->getSubscriptionProperty(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->isActiveSubId(I)Z
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->requestEmbeddedSubscriptionInfoListRefresh()V
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->setDataRoaming(II)I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->setDefaultDataSubId(I)V
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->setDefaultSmsSubId(I)V
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->setDefaultVoiceSubId(I)V
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->setDisplayName(Ljava/lang/String;I)I
+Lcom/android/internal/telephony/ISub$Stub$Proxy;->setDisplayNameUsingSrc(Ljava/lang/String;IJ)I
+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
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_clearDefaultsForInactiveSubIds:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_clearSubInfo:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getAccessibleSubscriptionInfoList:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getActiveSubIdList:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getActiveSubInfoCount:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getActiveSubInfoCountMax:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getActiveSubscriptionInfo:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getActiveSubscriptionInfoForIccId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getActiveSubscriptionInfoForSimSlotIndex:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getActiveSubscriptionInfoList:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getAllSubInfoCount:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getAllSubInfoList:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getAvailableSubscriptionInfoList:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getDefaultDataSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getDefaultSmsSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getDefaultSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getDefaultVoiceSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getPhoneId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getSimStateForSlotIndex:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getSlotIndex:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_getSubscriptionProperty:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_isActiveSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_requestEmbeddedSubscriptionInfoListRefresh:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setDataRoaming:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setDefaultDataSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setDefaultSmsSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setDefaultVoiceSubId:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setDisplayName:I
+Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setDisplayNameUsingSrc:I
+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
+Lcom/android/internal/telephony/ISub;->getAccessibleSubscriptionInfoList(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISub;->getActiveSubInfoCount(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ISub;->getActiveSubInfoCountMax()I
+Lcom/android/internal/telephony/ISub;->getActiveSubscriptionInfo(ILjava/lang/String;)Landroid/telephony/SubscriptionInfo;
+Lcom/android/internal/telephony/ISub;->getActiveSubscriptionInfoForIccId(Ljava/lang/String;Ljava/lang/String;)Landroid/telephony/SubscriptionInfo;
+Lcom/android/internal/telephony/ISub;->getActiveSubscriptionInfoForSimSlotIndex(ILjava/lang/String;)Landroid/telephony/SubscriptionInfo;
+Lcom/android/internal/telephony/ISub;->getActiveSubscriptionInfoList(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISub;->getAllSubInfoCount(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ISub;->getAllSubInfoList(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISub;->getAvailableSubscriptionInfoList(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ISub;->getDefaultSmsSubId()I
+Lcom/android/internal/telephony/ISub;->getDefaultVoiceSubId()I
+Lcom/android/internal/telephony/ISub;->getPhoneId(I)I
+Lcom/android/internal/telephony/ISub;->getSimStateForSlotIndex(I)I
+Lcom/android/internal/telephony/ISub;->getSlotIndex(I)I
+Lcom/android/internal/telephony/ISub;->getSubId(I)[I
+Lcom/android/internal/telephony/ISub;->getSubscriptionProperty(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ISub;->isActiveSubId(I)Z
+Lcom/android/internal/telephony/ISub;->requestEmbeddedSubscriptionInfoListRefresh()V
+Lcom/android/internal/telephony/ISub;->setDataRoaming(II)I
+Lcom/android/internal/telephony/ISub;->setDefaultSmsSubId(I)V
+Lcom/android/internal/telephony/ISub;->setDefaultVoiceSubId(I)V
+Lcom/android/internal/telephony/ISub;->setDisplayName(Ljava/lang/String;I)I
+Lcom/android/internal/telephony/ISub;->setDisplayNameUsingSrc(Ljava/lang/String;IJ)I
+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
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->canChangeDtmfToneLength()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->carrierActionReportDefaultNetworkStatus(IZ)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->carrierActionSetMeteredApnsEnabled(IZ)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->carrierActionSetRadioEnabled(IZ)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->checkCarrierPrivilegesForPackage(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->dial(Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->disableDataConnectivity()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->disableIms(I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->disableLocationUpdates()V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->disableLocationUpdatesForSubscriber(I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->disableVisualVoicemailSmsFilter(Ljava/lang/String;I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->enableDataConnectivity()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->enableIms(I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->enableLocationUpdates()V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->enableLocationUpdatesForSubscriber(I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->enableVideoCalling(Z)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->enableVisualVoicemailSmsFilter(Ljava/lang/String;ILandroid/telephony/VisualVoicemailSmsFilterSettings;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->factoryReset(I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getActivePhoneType()I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getActivePhoneTypeForSlot(I)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getActiveVisualVoicemailSmsFilterSettings(I)Landroid/telephony/VisualVoicemailSmsFilterSettings;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getAidForAppType(II)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getAllCellInfo(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getAllowedCarriers(I)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCalculatedPreferredNetworkType(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCallState()I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCallStateForSlot(I)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierIdListVersion(I)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierPackageNamesForIntentAndPhone(Landroid/content/Intent;I)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierPrivilegeStatus(I)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierPrivilegeStatusForUid(II)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaEriIconIndex(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaEriIconIndexForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaEriIconMode(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaEriIconModeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaEriText(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaEriTextForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaMdn(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaMin(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCdmaPrlVersion(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCellLocation(Ljava/lang/String;)Landroid/os/Bundle;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCellNetworkScanResults(I)Lcom/android/internal/telephony/CellNetworkScanResult;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getClientRequestStats(Ljava/lang/String;I)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataActivationState(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataActivity()I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataEnabled(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataNetworkType(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataNetworkTypeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataState()I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDefaultSim()I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDeviceSoftwareVersionForSlot(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getEmergencyCallbackMode(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getEsn(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getForbiddenPlmns(IILjava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImeiForSlot(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImsConfig(II)Landroid/telephony/ims/aidl/IImsConfig;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImsRegistration(II)Landroid/telephony/ims/aidl/IImsRegistration;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImsRegTechnologyForMmTel(I)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImsService(IZ)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1AlphaTagForDisplay(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1NumberForDisplay(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLocaleFromDefaultSim()Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLteOnCdmaMode(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLteOnCdmaModeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMeidForSlot(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMergedSubscriberIds(Ljava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMmTelFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNeighboringCellInfo(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkCountryIsoForPhone(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkType()I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkTypeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getPackagesWithCarrierPrivileges()Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getPcscfAddress(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getPreferredNetworkType(I)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getRadioAccessFamily(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getRcsFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsRcsFeature;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getServiceStateForSubscriber(ILjava/lang/String;)Landroid/telephony/ServiceState;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSignalStrength(I)Landroid/telephony/SignalStrength;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubIdForPhoneAccount(Landroid/telecom/PhoneAccount;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrierId(I)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrierName(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getTelephonyHistograms()Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getTetherApnRequired()I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getUiccSlotsInfo()[Landroid/telephony/UiccSlotInfo;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVisualVoicemailPackageName(Ljava/lang/String;I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVisualVoicemailSettings(Ljava/lang/String;I)Landroid/os/Bundle;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVisualVoicemailSmsFilterSettings(Ljava/lang/String;I)Landroid/telephony/VisualVoicemailSmsFilterSettings;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoiceActivationState(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoicemailRingtoneUri(Landroid/telecom/PhoneAccountHandle;)Landroid/net/Uri;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoiceMessageCount()I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoiceMessageCountForSubscriber(I)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoiceNetworkTypeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVtDataUsage(IZ)Landroid/net/NetworkStats;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->handlePinMmi(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->handlePinMmiForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->handleUssdRequest(ILjava/lang/String;Landroid/os/ResultReceiver;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->hasIccCard()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->hasIccCardUsingSlotIndex(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->iccCloseLogicalChannel(II)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->iccExchangeSimIO(IIIIIILjava/lang/String;)[B
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->iccOpenLogicalChannel(ILjava/lang/String;Ljava/lang/String;I)Landroid/telephony/IccOpenLogicalChannelResponse;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->iccTransmitApduBasicChannel(ILjava/lang/String;IIIIILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->iccTransmitApduLogicalChannel(IIIIIIILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->invokeOemRilRequestRaw([B[B)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isConcurrentVoiceAndDataAllowed(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isDataConnectivityPossible(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isDataEnabled(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isHearingAidCompatibilitySupported()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isIdle(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isIdleForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isImsRegistered(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isOffhook(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isOffhookForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isRadioOnForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isResolvingImsBinding()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isRinging(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isRingingForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isTtyModeSupported()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isUserDataEnabled(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isVideoCallingEnabled(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isVideoTelephonyAvailable(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isVoicemailVibrationEnabled(Landroid/telecom/PhoneAccountHandle;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isVolteAvailable(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isWifiCallingAvailable(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->isWorldPhone()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->needMobileRadioShutdown()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->needsOtaServiceProvisioning()Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->nvReadItem(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->nvResetConfig(I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->nvWriteCdmaPrl([B)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->nvWriteItem(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->refreshUiccProfile(I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->requestModemActivityInfo(Landroid/os/ResultReceiver;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->requestNetworkScan(ILandroid/telephony/NetworkScanRequest;Landroid/os/Messenger;Landroid/os/IBinder;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->sendDialerSpecialCode(Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->sendEnvelopeWithStatus(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->sendVisualVoicemailSmsForSubscriber(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setAllowedCarriers(ILjava/util/List;)I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setCarrierTestOverride(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setCellInfoListRate(I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setDataActivationState(II)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setImsRegistrationState(Z)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setImsService(IZLjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setLine1NumberForDisplayForSubscriber(ILjava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setNetworkSelectionModeAutomatic(I)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setNetworkSelectionModeManual(ILjava/lang/String;Z)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setOperatorBrandOverride(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setPolicyDataEnabled(ZI)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setPreferredNetworkType(II)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setRadio(Z)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setRadioCapability([Landroid/telephony/RadioAccessFamily;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setRadioForSubscriber(IZ)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setRadioIndicationUpdateMode(III)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setRadioPower(Z)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setRoamingOverride(ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setSimPowerStateForSlot(II)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setUserDataEnabled(IZ)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setVoiceActivationState(II)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setVoiceMailNumber(ILjava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setVoicemailRingtoneUri(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->setVoicemailVibrationEnabled(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Z)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->shutdownMobileRadios()V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->silenceRinger()V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->stopNetworkScan(II)V
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->supplyPin(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->supplyPinForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->supplyPinReportResult(Ljava/lang/String;)[I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->supplyPinReportResultForSubscriber(ILjava/lang/String;)[I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->supplyPuk(Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->supplyPukForSubscriber(ILjava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->supplyPukReportResult(Ljava/lang/String;Ljava/lang/String;)[I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->supplyPukReportResultForSubscriber(ILjava/lang/String;Ljava/lang/String;)[I
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->switchSlots([I)Z
+Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->toggleRadioOnOff()V
+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
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_carrierActionReportDefaultNetworkStatus:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_carrierActionSetMeteredApnsEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_carrierActionSetRadioEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_checkCarrierPrivilegesForPackage:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_checkCarrierPrivilegesForPackageAnyPhone:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_disableDataConnectivity:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_disableIms:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_disableLocationUpdates:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_disableLocationUpdatesForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_disableVisualVoicemailSmsFilter:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_enableDataConnectivity:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_enableIms:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_enableLocationUpdates:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_enableLocationUpdatesForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_enableVideoCalling:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_enableVisualVoicemailSmsFilter:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_endCallForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_factoryReset:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getActivePhoneType:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getActivePhoneTypeForSlot:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getActiveVisualVoicemailSmsFilterSettings:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getAidForAppType:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getAllCellInfo:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getAllowedCarriers:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCalculatedPreferredNetworkType:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCallState:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCallStateForSlot:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCarrierIdListVersion:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCarrierPackageNamesForIntentAndPhone:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCarrierPrivilegeStatus:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCarrierPrivilegeStatusForUid:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaEriIconIndex:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaEriIconIndexForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaEriIconMode:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaEriIconModeForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaEriText:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaEriTextForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaMdn:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaMin:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCdmaPrlVersion:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCellLocation:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getCellNetworkScanResults:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getClientRequestStats:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDataActivationState:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDataActivity:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDataEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDataNetworkType:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDataNetworkTypeForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDataState:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDefaultSim:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getDeviceSoftwareVersionForSlot:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getEmergencyCallbackMode:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getEsn:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getForbiddenPlmns:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getImeiForSlot:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getImsConfig:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getImsRegistration:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getImsRegTechnologyForMmTel:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getImsService:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getLine1AlphaTagForDisplay:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getLine1NumberForDisplay:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getLocaleFromDefaultSim:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getLteOnCdmaMode:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getLteOnCdmaModeForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getMeidForSlot:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getMergedSubscriberIds:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getMmTelFeatureAndListen:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getNeighboringCellInfo:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getNetworkCountryIsoForPhone:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getNetworkType:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getNetworkTypeForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getPackagesWithCarrierPrivileges:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getPcscfAddress:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getPreferredNetworkType:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getRadioAccessFamily:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getRcsFeatureAndListen:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getServiceStateForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getSignalStrength:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getSubIdForPhoneAccount:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getSubscriptionCarrierId:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getSubscriptionCarrierName:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getTelephonyHistograms:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getTetherApnRequired:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getUiccSlotsInfo:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVisualVoicemailPackageName:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVisualVoicemailSettings:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVisualVoicemailSmsFilterSettings:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVoiceActivationState:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVoicemailRingtoneUri:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVoiceMessageCount:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVoiceMessageCountForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVoiceNetworkTypeForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_getVtDataUsage:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_handlePinMmi:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_handlePinMmiForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_handleUssdRequest:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_hasIccCard:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_hasIccCardUsingSlotIndex:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_iccCloseLogicalChannel:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_iccExchangeSimIO:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_iccOpenLogicalChannel:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_iccTransmitApduBasicChannel:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_iccTransmitApduLogicalChannel:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_invokeOemRilRequestRaw:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isConcurrentVoiceAndDataAllowed:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isDataConnectivityPossible:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isDataEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isHearingAidCompatibilitySupported:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isIdle:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isIdleForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isImsRegistered:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isOffhook:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isOffhookForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isRadioOn:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isRadioOnForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isResolvingImsBinding:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isRinging:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isRingingForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isTtyModeSupported:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isUserDataEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isVideoCallingEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isVideoTelephonyAvailable:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isVoicemailVibrationEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isVolteAvailable:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isWifiCallingAvailable:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_isWorldPhone:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_needMobileRadioShutdown:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_needsOtaServiceProvisioning:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_nvReadItem:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_nvResetConfig:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_nvWriteCdmaPrl:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_nvWriteItem:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_refreshUiccProfile:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_requestModemActivityInfo:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_requestNetworkScan:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_sendDialerSpecialCode:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_sendEnvelopeWithStatus:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_sendVisualVoicemailSmsForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setAllowedCarriers:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setCarrierTestOverride:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setCellInfoListRate:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setDataActivationState:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setImsRegistrationState:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setImsService:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setLine1NumberForDisplayForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setNetworkSelectionModeAutomatic:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setNetworkSelectionModeManual:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setOperatorBrandOverride:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setPolicyDataEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setPreferredNetworkType:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setRadio:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setRadioCapability:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setRadioForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setRadioIndicationUpdateMode:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setRadioPower:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setRoamingOverride:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setSimPowerStateForSlot:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setUserDataEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setVoiceActivationState:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setVoiceMailNumber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setVoicemailRingtoneUri:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_setVoicemailVibrationEnabled:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_shutdownMobileRadios:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_silenceRinger:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_stopNetworkScan:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_supplyPin:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_supplyPinForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_supplyPinReportResult:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_supplyPinReportResultForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_supplyPuk:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_supplyPukForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_supplyPukReportResult:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_supplyPukReportResultForSubscriber:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_switchSlots:I
+Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_toggleRadioOnOff:I
+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
+Lcom/android/internal/telephony/ITelephony;->carrierActionSetMeteredApnsEnabled(IZ)V
+Lcom/android/internal/telephony/ITelephony;->carrierActionSetRadioEnabled(IZ)V
+Lcom/android/internal/telephony/ITelephony;->checkCarrierPrivilegesForPackage(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->disableIms(I)V
+Lcom/android/internal/telephony/ITelephony;->disableLocationUpdatesForSubscriber(I)V
+Lcom/android/internal/telephony/ITelephony;->disableVisualVoicemailSmsFilter(Ljava/lang/String;I)V
+Lcom/android/internal/telephony/ITelephony;->enableIms(I)V
+Lcom/android/internal/telephony/ITelephony;->enableLocationUpdatesForSubscriber(I)V
+Lcom/android/internal/telephony/ITelephony;->enableVideoCalling(Z)V
+Lcom/android/internal/telephony/ITelephony;->enableVisualVoicemailSmsFilter(Ljava/lang/String;ILandroid/telephony/VisualVoicemailSmsFilterSettings;)V
+Lcom/android/internal/telephony/ITelephony;->factoryReset(I)V
+Lcom/android/internal/telephony/ITelephony;->getActivePhoneTypeForSlot(I)I
+Lcom/android/internal/telephony/ITelephony;->getActiveVisualVoicemailSmsFilterSettings(I)Landroid/telephony/VisualVoicemailSmsFilterSettings;
+Lcom/android/internal/telephony/ITelephony;->getAidForAppType(II)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getAllCellInfo(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony;->getAllowedCarriers(I)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony;->getCalculatedPreferredNetworkType(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getCallStateForSlot(I)I
+Lcom/android/internal/telephony/ITelephony;->getCarrierIdListVersion(I)I
+Lcom/android/internal/telephony/ITelephony;->getCarrierPackageNamesForIntentAndPhone(Landroid/content/Intent;I)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony;->getCarrierPrivilegeStatus(I)I
+Lcom/android/internal/telephony/ITelephony;->getCarrierPrivilegeStatusForUid(II)I
+Lcom/android/internal/telephony/ITelephony;->getCdmaEriIconIndex(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getCdmaEriIconIndexForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getCdmaEriIconMode(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getCdmaEriIconModeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getCdmaEriText(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getCdmaEriTextForSubscriber(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getCdmaMdn(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getCdmaMin(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getCdmaPrlVersion(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getCellLocation(Ljava/lang/String;)Landroid/os/Bundle;
+Lcom/android/internal/telephony/ITelephony;->getCellNetworkScanResults(I)Lcom/android/internal/telephony/CellNetworkScanResult;
+Lcom/android/internal/telephony/ITelephony;->getClientRequestStats(Ljava/lang/String;I)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony;->getDataActivationState(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getDataNetworkType(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getDataNetworkTypeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getDefaultSim()I
+Lcom/android/internal/telephony/ITelephony;->getDeviceId(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getDeviceSoftwareVersionForSlot(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getEmergencyCallbackMode(I)Z
+Lcom/android/internal/telephony/ITelephony;->getEsn(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getForbiddenPlmns(IILjava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getImeiForSlot(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getImsConfig(II)Landroid/telephony/ims/aidl/IImsConfig;
+Lcom/android/internal/telephony/ITelephony;->getImsRegistration(II)Landroid/telephony/ims/aidl/IImsRegistration;
+Lcom/android/internal/telephony/ITelephony;->getImsRegTechnologyForMmTel(I)I
+Lcom/android/internal/telephony/ITelephony;->getImsService(IZ)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getLine1AlphaTagForDisplay(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getLine1NumberForDisplay(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getLocaleFromDefaultSim()Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getLteOnCdmaMode(Ljava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getLteOnCdmaModeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getMeidForSlot(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getMergedSubscriberIds(Ljava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getMmTelFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+Lcom/android/internal/telephony/ITelephony;->getNeighboringCellInfo(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony;->getNetworkCountryIsoForPhone(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getNetworkTypeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getPackagesWithCarrierPrivileges()Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony;->getPcscfAddress(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getPreferredNetworkType(I)I
+Lcom/android/internal/telephony/ITelephony;->getRadioAccessFamily(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getRcsFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsRcsFeature;
+Lcom/android/internal/telephony/ITelephony;->getServiceStateForSubscriber(ILjava/lang/String;)Landroid/telephony/ServiceState;
+Lcom/android/internal/telephony/ITelephony;->getSignalStrength(I)Landroid/telephony/SignalStrength;
+Lcom/android/internal/telephony/ITelephony;->getSubIdForPhoneAccount(Landroid/telecom/PhoneAccount;)I
+Lcom/android/internal/telephony/ITelephony;->getSubscriptionCarrierId(I)I
+Lcom/android/internal/telephony/ITelephony;->getSubscriptionCarrierName(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getTelephonyHistograms()Ljava/util/List;
+Lcom/android/internal/telephony/ITelephony;->getTetherApnRequired()I
+Lcom/android/internal/telephony/ITelephony;->getUiccSlotsInfo()[Landroid/telephony/UiccSlotInfo;
+Lcom/android/internal/telephony/ITelephony;->getVisualVoicemailPackageName(Ljava/lang/String;I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->getVisualVoicemailSettings(Ljava/lang/String;I)Landroid/os/Bundle;
+Lcom/android/internal/telephony/ITelephony;->getVisualVoicemailSmsFilterSettings(Ljava/lang/String;I)Landroid/telephony/VisualVoicemailSmsFilterSettings;
+Lcom/android/internal/telephony/ITelephony;->getVoiceActivationState(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getVoicemailRingtoneUri(Landroid/telecom/PhoneAccountHandle;)Landroid/net/Uri;
+Lcom/android/internal/telephony/ITelephony;->getVoiceMessageCountForSubscriber(I)I
+Lcom/android/internal/telephony/ITelephony;->getVoiceNetworkTypeForSubscriber(ILjava/lang/String;)I
+Lcom/android/internal/telephony/ITelephony;->getVtDataUsage(IZ)Landroid/net/NetworkStats;
+Lcom/android/internal/telephony/ITelephony;->handleUssdRequest(ILjava/lang/String;Landroid/os/ResultReceiver;)V
+Lcom/android/internal/telephony/ITelephony;->hasIccCardUsingSlotIndex(I)Z
+Lcom/android/internal/telephony/ITelephony;->iccExchangeSimIO(IIIIIILjava/lang/String;)[B
+Lcom/android/internal/telephony/ITelephony;->iccOpenLogicalChannel(ILjava/lang/String;Ljava/lang/String;I)Landroid/telephony/IccOpenLogicalChannelResponse;
+Lcom/android/internal/telephony/ITelephony;->iccTransmitApduBasicChannel(ILjava/lang/String;IIIIILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->invokeOemRilRequestRaw([B[B)I
+Lcom/android/internal/telephony/ITelephony;->isConcurrentVoiceAndDataAllowed(I)Z
+Lcom/android/internal/telephony/ITelephony;->isDataConnectivityPossible(I)Z
+Lcom/android/internal/telephony/ITelephony;->isDataEnabled(I)Z
+Lcom/android/internal/telephony/ITelephony;->isHearingAidCompatibilitySupported()Z
+Lcom/android/internal/telephony/ITelephony;->isImsRegistered(I)Z
+Lcom/android/internal/telephony/ITelephony;->isOffhook(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->isOffhookForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->isRadioOn(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->isResolvingImsBinding()Z
+Lcom/android/internal/telephony/ITelephony;->isRingingForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->isTtyModeSupported()Z
+Lcom/android/internal/telephony/ITelephony;->isUserDataEnabled(I)Z
+Lcom/android/internal/telephony/ITelephony;->isVideoCallingEnabled(Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->isVideoTelephonyAvailable(I)Z
+Lcom/android/internal/telephony/ITelephony;->isVoicemailVibrationEnabled(Landroid/telecom/PhoneAccountHandle;)Z
+Lcom/android/internal/telephony/ITelephony;->isVolteAvailable(I)Z
+Lcom/android/internal/telephony/ITelephony;->isWifiCallingAvailable(I)Z
+Lcom/android/internal/telephony/ITelephony;->isWorldPhone()Z
+Lcom/android/internal/telephony/ITelephony;->needMobileRadioShutdown()Z
+Lcom/android/internal/telephony/ITelephony;->needsOtaServiceProvisioning()Z
+Lcom/android/internal/telephony/ITelephony;->nvReadItem(I)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->nvResetConfig(I)Z
+Lcom/android/internal/telephony/ITelephony;->nvWriteCdmaPrl([B)Z
+Lcom/android/internal/telephony/ITelephony;->nvWriteItem(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->refreshUiccProfile(I)V
+Lcom/android/internal/telephony/ITelephony;->requestModemActivityInfo(Landroid/os/ResultReceiver;)V
+Lcom/android/internal/telephony/ITelephony;->requestNetworkScan(ILandroid/telephony/NetworkScanRequest;Landroid/os/Messenger;Landroid/os/IBinder;)I
+Lcom/android/internal/telephony/ITelephony;->sendDialerSpecialCode(Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephony;->sendEnvelopeWithStatus(ILjava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/telephony/ITelephony;->sendVisualVoicemailSmsForSubscriber(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Landroid/app/PendingIntent;)V
+Lcom/android/internal/telephony/ITelephony;->setAllowedCarriers(ILjava/util/List;)I
+Lcom/android/internal/telephony/ITelephony;->setCarrierTestOverride(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephony;->setCellInfoListRate(I)V
+Lcom/android/internal/telephony/ITelephony;->setDataActivationState(II)V
+Lcom/android/internal/telephony/ITelephony;->setImsRegistrationState(Z)V
+Lcom/android/internal/telephony/ITelephony;->setImsService(IZLjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->setLine1NumberForDisplayForSubscriber(ILjava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->setNetworkSelectionModeAutomatic(I)V
+Lcom/android/internal/telephony/ITelephony;->setNetworkSelectionModeManual(ILjava/lang/String;Z)Z
+Lcom/android/internal/telephony/ITelephony;->setOperatorBrandOverride(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->setPolicyDataEnabled(ZI)V
+Lcom/android/internal/telephony/ITelephony;->setPreferredNetworkType(II)Z
+Lcom/android/internal/telephony/ITelephony;->setRadioCapability([Landroid/telephony/RadioAccessFamily;)V
+Lcom/android/internal/telephony/ITelephony;->setRadioForSubscriber(IZ)Z
+Lcom/android/internal/telephony/ITelephony;->setRadioIndicationUpdateMode(III)V
+Lcom/android/internal/telephony/ITelephony;->setRadioPower(Z)Z
+Lcom/android/internal/telephony/ITelephony;->setRoamingOverride(ILjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
+Lcom/android/internal/telephony/ITelephony;->setSimPowerStateForSlot(II)V
+Lcom/android/internal/telephony/ITelephony;->setUserDataEnabled(IZ)V
+Lcom/android/internal/telephony/ITelephony;->setVoiceActivationState(II)V
+Lcom/android/internal/telephony/ITelephony;->setVoiceMailNumber(ILjava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->setVoicemailRingtoneUri(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;)V
+Lcom/android/internal/telephony/ITelephony;->setVoicemailVibrationEnabled(Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Z)V
+Lcom/android/internal/telephony/ITelephony;->shutdownMobileRadios()V
+Lcom/android/internal/telephony/ITelephony;->stopNetworkScan(II)V
+Lcom/android/internal/telephony/ITelephony;->supplyPinForSubscriber(ILjava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->supplyPinReportResult(Ljava/lang/String;)[I
+Lcom/android/internal/telephony/ITelephony;->supplyPinReportResultForSubscriber(ILjava/lang/String;)[I
+Lcom/android/internal/telephony/ITelephony;->supplyPuk(Ljava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->supplyPukForSubscriber(ILjava/lang/String;Ljava/lang/String;)Z
+Lcom/android/internal/telephony/ITelephony;->supplyPukReportResult(Ljava/lang/String;Ljava/lang/String;)[I
+Lcom/android/internal/telephony/ITelephony;->supplyPukReportResultForSubscriber(ILjava/lang/String;Ljava/lang/String;)[I
+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
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->listenForSubscriber(ILjava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCallForwardingChanged(Z)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCallForwardingChangedForSubscriber(IZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCallState(ILjava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCallStateForPhoneId(IIILjava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCarrierNetworkChange(Z)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCellInfo(Ljava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCellInfoForSubscriber(ILjava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCellLocation(Landroid/os/Bundle;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCellLocationForSubscriber(ILandroid/os/Bundle;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDataActivity(I)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDataActivityForSubscriber(II)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDataConnection(IZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDataConnectionFailed(Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDataConnectionFailedForSubscriber(ILjava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDataConnectionForSubscriber(IIZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDisconnectCause(II)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyMessageWaitingChangedForPhoneId(IIZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyOemHookRawEventForSubscriber(I[B)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyOtaspChanged(I)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyPhysicalChannelConfiguration(Ljava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyPhysicalChannelConfigurationForSubscriber(ILjava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyPreciseCallState(III)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyPreciseDataConnectionFailed(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyServiceStateForPhoneId(IILandroid/telephony/ServiceState;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifySignalStrengthForPhoneId(IILandroid/telephony/SignalStrength;)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifySimActivationStateChangedForPhoneId(IIII)V
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifySubscriptionInfoChanged()V
+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
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_listenForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCallForwardingChanged:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCallForwardingChangedForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCallState:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCallStateForPhoneId:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCarrierNetworkChange:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCellInfo:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCellInfoForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCellLocation:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyCellLocationForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyDataActivity:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyDataActivityForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyDataConnection:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyDataConnectionFailed:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyDataConnectionFailedForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyDataConnectionForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyDisconnectCause:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyMessageWaitingChangedForPhoneId:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyOemHookRawEventForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyOtaspChanged:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyPhysicalChannelConfiguration:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyPhysicalChannelConfigurationForSubscriber:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyPreciseCallState:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyPreciseDataConnectionFailed:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyServiceStateForPhoneId:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifySignalStrengthForPhoneId:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifySimActivationStateChangedForPhoneId:I
+Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifySubscriptionInfoChanged:I
+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
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCallStateForPhoneId(IIILjava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCarrierNetworkChange(Z)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCellInfoForSubscriber(ILjava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCellLocationForSubscriber(ILandroid/os/Bundle;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataActivityForSubscriber(II)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataConnection(IZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataConnectionFailedForSubscriber(ILjava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataConnectionForSubscriber(IIZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDisconnectCause(II)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyMessageWaitingChangedForPhoneId(IIZ)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyOemHookRawEventForSubscriber(I[B)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyPhysicalChannelConfiguration(Ljava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyPhysicalChannelConfigurationForSubscriber(ILjava/util/List;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyPreciseCallState(III)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyPreciseDataConnectionFailed(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifyServiceStateForPhoneId(IILandroid/telephony/ServiceState;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifySignalStrengthForPhoneId(IILandroid/telephony/SignalStrength;)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifySimActivationStateChangedForPhoneId(IIII)V
+Lcom/android/internal/telephony/ITelephonyRegistry;->notifySubscriptionInfoChanged()V
+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
+Lcom/android/internal/telephony/IWapPushManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+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
+Lcom/android/internal/telephony/SmsAddress;->getAddressString()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsAddress;->isAlphanumeric()Z
+Lcom/android/internal/telephony/SmsAddress;->isNetworkSpecific()Z
+Lcom/android/internal/telephony/SmsAddress;->ton:I
+Lcom/android/internal/telephony/SmsAddress;->TON_ABBREVIATED:I
+Lcom/android/internal/telephony/SmsAddress;->TON_ALPHANUMERIC:I
+Lcom/android/internal/telephony/SmsAddress;->TON_INTERNATIONAL:I
+Lcom/android/internal/telephony/SmsAddress;->TON_NATIONAL:I
+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
+Lcom/android/internal/telephony/SmsConstants;->ENCODING_8BIT:I
+Lcom/android/internal/telephony/SmsConstants;->ENCODING_KSC5601:I
+Lcom/android/internal/telephony/SmsConstants;->ENCODING_UNKNOWN:I
+Lcom/android/internal/telephony/SmsConstants;->FORMAT_3GPP2:Ljava/lang/String;
+Lcom/android/internal/telephony/SmsConstants;->FORMAT_3GPP:Ljava/lang/String;
+Lcom/android/internal/telephony/SmsConstants;->FORMAT_UNKNOWN:Ljava/lang/String;
+Lcom/android/internal/telephony/SmsConstants;->MAX_USER_DATA_BYTES:I
+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
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_COMPRESSION_CONTROL:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_CONCATENATED_16_BIT_REFERENCE:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_CONCATENATED_8_BIT_REFERENCE:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_ENHANCED_VOICE_MAIL_INFORMATION:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_EXTENDED_OBJECT:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_EXTENDED_OBJECT_DATA_REQUEST_CMD:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_HYPERLINK_FORMAT_ELEMENT:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_LARGE_ANIMATION:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_LARGE_PICTURE:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_NATIONAL_LANGUAGE_LOCKING_SHIFT:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_NATIONAL_LANGUAGE_SINGLE_SHIFT:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_OBJECT_DISTR_INDICATOR:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_PREDEFINED_ANIMATION:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_PREDEFINED_SOUND:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_REPLY_ADDRESS_ELEMENT:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_REUSED_EXTENDED_OBJECT:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_RFC_822_EMAIL_HEADER:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_SMALL_ANIMATION:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_SMALL_PICTURE:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_SMSC_CONTROL_PARAMS:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_SPECIAL_SMS_MESSAGE_INDICATION:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_STANDARD_WVG_OBJECT:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_TEXT_FORMATTING:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_UDH_SOURCE_INDICATION:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_USER_DEFINED_SOUND:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_USER_PROMPT_INDICATOR:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_VARIABLE_PICTURE:I
+Lcom/android/internal/telephony/SmsHeader;->ELT_ID_WIRELESS_CTRL_MSG_PROTOCOL:I
+Lcom/android/internal/telephony/SmsHeader;->miscEltList:Ljava/util/ArrayList;
+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
+Lcom/android/internal/telephony/SmsMessageBase;->getEmailBody()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getEmailFrom()Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->getIndexOnIcc()I
+Lcom/android/internal/telephony/SmsMessageBase;->getMessageClass()Lcom/android/internal/telephony/SmsConstants$MessageClass;
+Lcom/android/internal/telephony/SmsMessageBase;->getPdu()[B
+Lcom/android/internal/telephony/SmsMessageBase;->getStatusOnIcc()I
+Lcom/android/internal/telephony/SmsMessageBase;->isCphsMwiMessage()Z
+Lcom/android/internal/telephony/SmsMessageBase;->isEmail()Z
+Lcom/android/internal/telephony/SmsMessageBase;->isMWIClearMessage()Z
+Lcom/android/internal/telephony/SmsMessageBase;->isMwiDontStore()Z
+Lcom/android/internal/telephony/SmsMessageBase;->isMWISetMessage()Z
+Lcom/android/internal/telephony/SmsMessageBase;->mEmailBody:Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->mEmailFrom:Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->mIndexOnIcc:I
+Lcom/android/internal/telephony/SmsMessageBase;->mIsEmail:Z
+Lcom/android/internal/telephony/SmsMessageBase;->mPseudoSubject:Ljava/lang/String;
+Lcom/android/internal/telephony/SmsMessageBase;->mScTimeMillis:J
+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;
+Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onCancel()V
+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;
+Lcom/android/internal/textservice/ISpellCheckerSession$Stub;->TRANSACTION_onCancel:I
+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;
+Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getEnabledSpellCheckers()[Landroid/view/textservice/SpellCheckerInfo;
+Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+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;
+Lcom/android/internal/textservice/ITextServicesManager$Stub;->TRANSACTION_finishSpellCheckerService:I
+Lcom/android/internal/textservice/ITextServicesManager$Stub;->TRANSACTION_getCurrentSpellChecker:I
+Lcom/android/internal/textservice/ITextServicesManager$Stub;->TRANSACTION_getCurrentSpellCheckerSubtype:I
+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;
+Lcom/android/internal/util/AsyncChannel$SyncMessenger;->mMessenger:Landroid/os/Messenger;
+Lcom/android/internal/util/AsyncChannel$SyncMessenger;->obtain()Lcom/android/internal/util/AsyncChannel$SyncMessenger;
+Lcom/android/internal/util/AsyncChannel$SyncMessenger;->recycle()V
+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
+Lcom/android/internal/util/AsyncChannel;->CMD_CHANNEL_FULLY_CONNECTED:I
+Lcom/android/internal/util/AsyncChannel;->CMD_TO_STRING_COUNT:I
+Lcom/android/internal/util/AsyncChannel;->connect(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)V
+Lcom/android/internal/util/AsyncChannel;->connect(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Class;)V
+Lcom/android/internal/util/AsyncChannel;->connect(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/internal/util/AsyncChannel;->connect(Lcom/android/internal/util/AsyncService;Landroid/os/Messenger;)V
+Lcom/android/internal/util/AsyncChannel;->connectSrcHandlerToPackageSync(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Ljava/lang/String;)I
+Lcom/android/internal/util/AsyncChannel;->connectSync(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)I
+Lcom/android/internal/util/AsyncChannel;->DBG:Z
+Lcom/android/internal/util/AsyncChannel;->disconnected()V
+Lcom/android/internal/util/AsyncChannel;->fullyConnectSync(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)I
+Lcom/android/internal/util/AsyncChannel;->linkToDeathMonitor()Z
+Lcom/android/internal/util/AsyncChannel;->log(Ljava/lang/String;)V
+Lcom/android/internal/util/AsyncChannel;->mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
+Lcom/android/internal/util/AsyncChannel;->mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
+Lcom/android/internal/util/AsyncChannel;->mDstMessenger:Landroid/os/Messenger;
+Lcom/android/internal/util/AsyncChannel;->mSrcContext:Landroid/content/Context;
+Lcom/android/internal/util/AsyncChannel;->mSrcHandler:Landroid/os/Handler;
+Lcom/android/internal/util/AsyncChannel;->mSrcMessenger:Landroid/os/Messenger;
+Lcom/android/internal/util/AsyncChannel;->replyDisconnected(I)V
+Lcom/android/internal/util/AsyncChannel;->replyHalfConnected(I)V
+Lcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;III)V
+Lcom/android/internal/util/AsyncChannel;->sCmdToString:[Ljava/lang/String;
+Lcom/android/internal/util/AsyncChannel;->sendMessage(ILjava/lang/Object;)V
+Lcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(I)Landroid/os/Message;
+Lcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(II)Landroid/os/Message;
+Lcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(IIILjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(ILjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/util/AsyncChannel;->STATUS_BINDING_UNSUCCESSFUL:I
+Lcom/android/internal/util/AsyncChannel;->STATUS_FULL_CONNECTION_REFUSED_ALREADY_CONNECTED:I
+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
+Lcom/android/internal/util/AsyncService;->createHandler()Lcom/android/internal/util/AsyncService$AsyncServiceInfo;
+Lcom/android/internal/util/AsyncService;->DBG:Z
+Lcom/android/internal/util/AsyncService;->getHandler()Landroid/os/Handler;
+Lcom/android/internal/util/AsyncService;->mAsyncServiceInfo:Lcom/android/internal/util/AsyncService$AsyncServiceInfo;
+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
+Lcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;ZI)V
+Lcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/Writer;)V
+Lcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/Writer;Z)V
+Lcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/Writer;ZI)V
+Lcom/android/internal/util/FastPrintWriter;->appendLocked(C)V
+Lcom/android/internal/util/FastPrintWriter;->appendLocked(Ljava/lang/String;II)V
+Lcom/android/internal/util/FastPrintWriter;->appendLocked([CII)V
+Lcom/android/internal/util/FastPrintWriter;->flushBytesLocked()V
+Lcom/android/internal/util/FastPrintWriter;->flushLocked()V
+Lcom/android/internal/util/FastPrintWriter;->initDefaultEncoder()V
+Lcom/android/internal/util/FastPrintWriter;->initEncoder(Ljava/lang/String;)V
+Lcom/android/internal/util/FastPrintWriter;->mAutoFlush:Z
+Lcom/android/internal/util/FastPrintWriter;->mBufferLen:I
+Lcom/android/internal/util/FastPrintWriter;->mBytes:Ljava/nio/ByteBuffer;
+Lcom/android/internal/util/FastPrintWriter;->mCharset:Ljava/nio/charset/CharsetEncoder;
+Lcom/android/internal/util/FastPrintWriter;->mIoError:Z
+Lcom/android/internal/util/FastPrintWriter;->mOutputStream:Ljava/io/OutputStream;
+Lcom/android/internal/util/FastPrintWriter;->mPos:I
+Lcom/android/internal/util/FastPrintWriter;->mPrinter:Landroid/util/Printer;
+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;
+Lcom/android/internal/util/ImageUtils;->COMPACT_BITMAP_SIZE:I
+Lcom/android/internal/util/ImageUtils;->ensureBufferSize(I)V
+Lcom/android/internal/util/ImageUtils;->isGrayscale(I)Z
+Lcom/android/internal/util/ImageUtils;->isGrayscale(Landroid/graphics/Bitmap;)Z
+Lcom/android/internal/util/ImageUtils;->mTempBuffer:[I
+Lcom/android/internal/util/ImageUtils;->mTempCompactBitmap:Landroid/graphics/Bitmap;
+Lcom/android/internal/util/ImageUtils;->mTempCompactBitmapCanvas:Landroid/graphics/Canvas;
+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
+Lcom/android/internal/util/IndentingPrintWriter;->mCurrentLength:I
+Lcom/android/internal/util/IndentingPrintWriter;->mEmptyLine:Z
+Lcom/android/internal/util/IndentingPrintWriter;->mIndentBuilder:Ljava/lang/StringBuilder;
+Lcom/android/internal/util/IndentingPrintWriter;->mSingleChar:[C
+Lcom/android/internal/util/IndentingPrintWriter;->mSingleIndent:Ljava/lang/String;
+Lcom/android/internal/util/IndentingPrintWriter;->mWrapLength:I
+Lcom/android/internal/util/IndentingPrintWriter;->printHexPair(Ljava/lang/String;I)Lcom/android/internal/util/IndentingPrintWriter;
+Lcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String;Ljava/lang/Object;)Lcom/android/internal/util/IndentingPrintWriter;
+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
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->colorToHSL(I[F)V
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->colorToLAB(I[D)V
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->colorToXYZ(I[D)V
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->compositeAlpha(II)I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->compositeColors(II)I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->compositeComponent(IIIII)I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->constrain(FFF)F
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->constrain(III)I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->getTempDouble3Array()[D
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->HSLToColor([F)I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->LABToColor(DDD)I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->LABToXYZ(DDD[D)V
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->MIN_ALPHA_SEARCH_MAX_ITERATIONS:I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->MIN_ALPHA_SEARCH_PRECISION:I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->pivotXyzComponent(D)D
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->RGBToHSL(III[F)V
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->RGBToLAB(III[D)V
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->RGBToXYZ(III[D)V
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->TEMP_ARRAY:Ljava/lang/ThreadLocal;
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->XYZToColor(DDD)I
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->XYZToLAB(DDD[D)V
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->XYZ_EPSILON:D
+Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->XYZ_KAPPA:D
+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
+Lcom/android/internal/util/NotificationColorUtil;->changeColorLightness(II)I
+Lcom/android/internal/util/NotificationColorUtil;->clearColorSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Lcom/android/internal/util/NotificationColorUtil;->compositeColors(II)I
+Lcom/android/internal/util/NotificationColorUtil;->contrastChange(III)Ljava/lang/String;
+Lcom/android/internal/util/NotificationColorUtil;->DEBUG:Z
+Lcom/android/internal/util/NotificationColorUtil;->ensureContrast(IIZD)I
+Lcom/android/internal/util/NotificationColorUtil;->ensureLargeTextContrast(IIZ)I
+Lcom/android/internal/util/NotificationColorUtil;->ensureTextBackgroundColor(III)I
+Lcom/android/internal/util/NotificationColorUtil;->ensureTextContrast(IIZ)I
+Lcom/android/internal/util/NotificationColorUtil;->ensureTextContrastOnBlack(I)I
+Lcom/android/internal/util/NotificationColorUtil;->findAlphaToMeetContrast(IID)I
+Lcom/android/internal/util/NotificationColorUtil;->findContrastColor(IIZD)I
+Lcom/android/internal/util/NotificationColorUtil;->findContrastColorAgainstDark(IIZD)I
+Lcom/android/internal/util/NotificationColorUtil;->getInstance(Landroid/content/Context;)Lcom/android/internal/util/NotificationColorUtil;
+Lcom/android/internal/util/NotificationColorUtil;->getShiftedColor(II)I
+Lcom/android/internal/util/NotificationColorUtil;->invertCharSequenceColors(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+Lcom/android/internal/util/NotificationColorUtil;->isColorLight(I)Z
+Lcom/android/internal/util/NotificationColorUtil;->isGrayscaleIcon(Landroid/content/Context;I)Z
+Lcom/android/internal/util/NotificationColorUtil;->isGrayscaleIcon(Landroid/content/Context;Landroid/graphics/drawable/Icon;)Z
+Lcom/android/internal/util/NotificationColorUtil;->isGrayscaleIcon(Landroid/graphics/Bitmap;)Z
+Lcom/android/internal/util/NotificationColorUtil;->isGrayscaleIcon(Landroid/graphics/drawable/Drawable;)Z
+Lcom/android/internal/util/NotificationColorUtil;->mGrayscaleBitmapCache:Ljava/util/WeakHashMap;
+Lcom/android/internal/util/NotificationColorUtil;->mGrayscaleIconMaxSize:I
+Lcom/android/internal/util/NotificationColorUtil;->mImageUtils:Lcom/android/internal/util/ImageUtils;
+Lcom/android/internal/util/NotificationColorUtil;->processColor(I)I
+Lcom/android/internal/util/NotificationColorUtil;->processTextAppearanceSpan(Landroid/text/style/TextAppearanceSpan;)Landroid/text/style/TextAppearanceSpan;
+Lcom/android/internal/util/NotificationColorUtil;->resolveAmbientColor(Landroid/content/Context;I)I
+Lcom/android/internal/util/NotificationColorUtil;->resolveColor(Landroid/content/Context;I)I
+Lcom/android/internal/util/NotificationColorUtil;->resolveContrastColor(Landroid/content/Context;II)I
+Lcom/android/internal/util/NotificationColorUtil;->resolveContrastColor(Landroid/content/Context;IIZ)I
+Lcom/android/internal/util/NotificationColorUtil;->resolveDefaultColor(Landroid/content/Context;I)I
+Lcom/android/internal/util/NotificationColorUtil;->resolvePrimaryColor(Landroid/content/Context;I)I
+Lcom/android/internal/util/NotificationColorUtil;->resolveSecondaryColor(Landroid/content/Context;I)I
+Lcom/android/internal/util/NotificationColorUtil;->satisfiesTextContrast(II)Z
+Lcom/android/internal/util/NotificationColorUtil;->shouldUseDark(I)Z
+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
+Lcom/android/internal/util/StatLogger;->dumpProto(Landroid/util/proto/ProtoOutputStream;J)V
+Lcom/android/internal/util/StatLogger;->getTime()J
+Lcom/android/internal/util/StatLogger;->logDurationStat(IJ)J
+Lcom/android/internal/util/StatLogger;->mCallsPerSecond:[I
+Lcom/android/internal/util/StatLogger;->mCountStats:[I
+Lcom/android/internal/util/StatLogger;->mDurationPerSecond:[J
+Lcom/android/internal/util/StatLogger;->mDurationStats:[J
+Lcom/android/internal/util/StatLogger;->mLabels:[Ljava/lang/String;
+Lcom/android/internal/util/StatLogger;->mLock:Ljava/lang/Object;
+Lcom/android/internal/util/StatLogger;->mMaxCallsPerSecond:[I
+Lcom/android/internal/util/StatLogger;->mMaxDurationPerSecond:[J
+Lcom/android/internal/util/StatLogger;->mMaxDurationStats:[J
+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
+Lcom/android/internal/util/TokenBucket;->capacity()I
+Lcom/android/internal/util/TokenBucket;->fill()V
+Lcom/android/internal/util/TokenBucket;->get()Z
+Lcom/android/internal/util/TokenBucket;->get(I)I
+Lcom/android/internal/util/TokenBucket;->has()Z
+Lcom/android/internal/util/TokenBucket;->mAvailable:I
+Lcom/android/internal/util/TokenBucket;->mCapacity:I
+Lcom/android/internal/util/TokenBucket;->mFillDelta:I
+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
+Lcom/android/internal/util/TypedProperties;->getByte(Ljava/lang/String;)B
+Lcom/android/internal/util/TypedProperties;->getByte(Ljava/lang/String;B)B
+Lcom/android/internal/util/TypedProperties;->getDouble(Ljava/lang/String;)D
+Lcom/android/internal/util/TypedProperties;->getDouble(Ljava/lang/String;D)D
+Lcom/android/internal/util/TypedProperties;->getFloat(Ljava/lang/String;)F
+Lcom/android/internal/util/TypedProperties;->getFloat(Ljava/lang/String;F)F
+Lcom/android/internal/util/TypedProperties;->getInt(Ljava/lang/String;)I
+Lcom/android/internal/util/TypedProperties;->getInt(Ljava/lang/String;I)I
+Lcom/android/internal/util/TypedProperties;->getLong(Ljava/lang/String;)J
+Lcom/android/internal/util/TypedProperties;->getLong(Ljava/lang/String;J)J
+Lcom/android/internal/util/TypedProperties;->getShort(Ljava/lang/String;)S
+Lcom/android/internal/util/TypedProperties;->getShort(Ljava/lang/String;S)S
+Lcom/android/internal/util/TypedProperties;->getString(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/util/TypedProperties;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/util/TypedProperties;->getStringInfo(Ljava/lang/String;)I
+Lcom/android/internal/util/TypedProperties;->initTokenizer(Ljava/io/Reader;)Ljava/io/StreamTokenizer;
+Lcom/android/internal/util/TypedProperties;->interpretType(Ljava/lang/String;)I
+Lcom/android/internal/util/TypedProperties;->load(Ljava/io/Reader;)V
+Lcom/android/internal/util/TypedProperties;->NULL_STRING:Ljava/lang/String;
+Lcom/android/internal/util/TypedProperties;->parse(Ljava/io/Reader;Ljava/util/Map;)V
+Lcom/android/internal/util/TypedProperties;->parseValue(Ljava/io/StreamTokenizer;I)Ljava/lang/Object;
+Lcom/android/internal/util/TypedProperties;->STRING_NOT_SET:I
+Lcom/android/internal/util/TypedProperties;->STRING_NULL:I
+Lcom/android/internal/util/TypedProperties;->STRING_SET:I
+Lcom/android/internal/util/TypedProperties;->STRING_TYPE_MISMATCH:I
+Lcom/android/internal/util/TypedProperties;->TYPE_BOOLEAN:I
+Lcom/android/internal/util/TypedProperties;->TYPE_BYTE:I
+Lcom/android/internal/util/TypedProperties;->TYPE_DOUBLE:I
+Lcom/android/internal/util/TypedProperties;->TYPE_ERROR:I
+Lcom/android/internal/util/TypedProperties;->TYPE_FLOAT:I
+Lcom/android/internal/util/TypedProperties;->TYPE_INT:I
+Lcom/android/internal/util/TypedProperties;->TYPE_LONG:I
+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
+Lcom/android/internal/util/XmlUtils;->nextElementWithin(Lorg/xmlpull/v1/XmlPullParser;I)Z
+Lcom/android/internal/util/XmlUtils;->parseUnsignedIntAttribute(Ljava/lang/CharSequence;)I
+Lcom/android/internal/util/XmlUtils;->readBitmapAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/graphics/Bitmap;
+Lcom/android/internal/util/XmlUtils;->readBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
+Lcom/android/internal/util/XmlUtils;->readBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+Lcom/android/internal/util/XmlUtils;->readByteArrayAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)[B
+Lcom/android/internal/util/XmlUtils;->readFloatAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)F
+Lcom/android/internal/util/XmlUtils;->readIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)I
+Lcom/android/internal/util/XmlUtils;->readIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+Lcom/android/internal/util/XmlUtils;->readListXml(Ljava/io/InputStream;)Ljava/util/ArrayList;
+Lcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)J
+Lcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
+Lcom/android/internal/util/XmlUtils;->readSetXml(Ljava/io/InputStream;)Ljava/util/HashSet;
+Lcom/android/internal/util/XmlUtils;->readStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/util/XmlUtils;->readThisArrayMapXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Landroid/util/ArrayMap;
+Lcom/android/internal/util/XmlUtils;->readThisBooleanArrayXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)[Z
+Lcom/android/internal/util/XmlUtils;->readThisByteArrayXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)[B
+Lcom/android/internal/util/XmlUtils;->readThisDoubleArrayXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)[D
+Lcom/android/internal/util/XmlUtils;->readThisIntArrayXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)[I
+Lcom/android/internal/util/XmlUtils;->readThisListXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/ArrayList;
+Lcom/android/internal/util/XmlUtils;->readThisListXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/util/ArrayList;
+Lcom/android/internal/util/XmlUtils;->readThisLongArrayXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)[J
+Lcom/android/internal/util/XmlUtils;->readThisMapXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/HashMap;
+Lcom/android/internal/util/XmlUtils;->readThisMapXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Ljava/util/HashMap;
+Lcom/android/internal/util/XmlUtils;->readThisPrimitiveValueXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Object;
+Lcom/android/internal/util/XmlUtils;->readThisSetXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/HashSet;
+Lcom/android/internal/util/XmlUtils;->readThisSetXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/util/HashSet;
+Lcom/android/internal/util/XmlUtils;->readThisStringArrayXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
+Lcom/android/internal/util/XmlUtils;->readThisValueXml(Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/lang/Object;
+Lcom/android/internal/util/XmlUtils;->readUriAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/net/Uri;
+Lcom/android/internal/util/XmlUtils;->readValueXml(Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;)Ljava/lang/Object;
+Lcom/android/internal/util/XmlUtils;->STRING_ARRAY_SEPARATOR:Ljava/lang/String;
+Lcom/android/internal/util/XmlUtils;->writeBitmapAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/graphics/Bitmap;)V
+Lcom/android/internal/util/XmlUtils;->writeBooleanArrayXml([ZLjava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeBooleanAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Z)V
+Lcom/android/internal/util/XmlUtils;->writeByteArrayAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;[B)V
+Lcom/android/internal/util/XmlUtils;->writeByteArrayXml([BLjava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeDoubleArrayXml([DLjava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeFloatAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;F)V
+Lcom/android/internal/util/XmlUtils;->writeIntArrayXml([ILjava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeIntAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;I)V
+Lcom/android/internal/util/XmlUtils;->writeListXml(Ljava/util/List;Ljava/io/OutputStream;)V
+Lcom/android/internal/util/XmlUtils;->writeListXml(Ljava/util/List;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeLongArrayXml([JLjava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeLongAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;J)V
+Lcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
+Lcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
+Lcom/android/internal/util/XmlUtils;->writeSetXml(Ljava/util/Set;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeStringArrayXml([Ljava/lang/String;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+Lcom/android/internal/util/XmlUtils;->writeStringAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/lang/CharSequence;)V
+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
+Lcom/android/internal/view/BaseIWindow;->dispatchGetNewSurface()V
+Lcom/android/internal/view/BaseIWindow;->dispatchPointerCaptureChanged(Z)V
+Lcom/android/internal/view/BaseIWindow;->dispatchSystemUiVisibilityChanged(IIII)V
+Lcom/android/internal/view/BaseIWindow;->dispatchWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)V
+Lcom/android/internal/view/BaseIWindow;->dispatchWallpaperOffsets(FFFFZ)V
+Lcom/android/internal/view/BaseIWindow;->dispatchWindowShown()V
+Lcom/android/internal/view/BaseIWindow;->executeCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelFileDescriptor;)V
+Lcom/android/internal/view/BaseIWindow;->moved(II)V
+Lcom/android/internal/view/BaseIWindow;->mSeq:I
+Lcom/android/internal/view/BaseIWindow;->mSession:Landroid/view/IWindowSession;
+Lcom/android/internal/view/BaseIWindow;->requestAppKeyboardShortcuts(Lcom/android/internal/os/IResultReceiver;I)V
+Lcom/android/internal/view/BaseIWindow;->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
+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;
+Lcom/android/internal/view/BaseSurfaceHolder;->getRequestedFormat()I
+Lcom/android/internal/view/BaseSurfaceHolder;->getRequestedHeight()I
+Lcom/android/internal/view/BaseSurfaceHolder;->getRequestedType()I
+Lcom/android/internal/view/BaseSurfaceHolder;->getRequestedWidth()I
+Lcom/android/internal/view/BaseSurfaceHolder;->internalLockCanvas(Landroid/graphics/Rect;Z)Landroid/graphics/Canvas;
+Lcom/android/internal/view/BaseSurfaceHolder;->mCallbacks:Ljava/util/ArrayList;
+Lcom/android/internal/view/BaseSurfaceHolder;->mGottenCallbacks:[Landroid/view/SurfaceHolder$Callback;
+Lcom/android/internal/view/BaseSurfaceHolder;->mHaveGottenCallbacks:Z
+Lcom/android/internal/view/BaseSurfaceHolder;->mLastLockTime:J
+Lcom/android/internal/view/BaseSurfaceHolder;->mRequestedFormat:I
+Lcom/android/internal/view/BaseSurfaceHolder;->mRequestedHeight:I
+Lcom/android/internal/view/BaseSurfaceHolder;->mRequestedType:I
+Lcom/android/internal/view/BaseSurfaceHolder;->mRequestedWidth:I
+Lcom/android/internal/view/BaseSurfaceHolder;->mSurface:Landroid/view/Surface;
+Lcom/android/internal/view/BaseSurfaceHolder;->mSurfaceFrame:Landroid/graphics/Rect;
+Lcom/android/internal/view/BaseSurfaceHolder;->mSurfaceLock:Ljava/util/concurrent/locks/ReentrantLock;
+Lcom/android/internal/view/BaseSurfaceHolder;->mTmpDirty:Landroid/graphics/Rect;
+Lcom/android/internal/view/BaseSurfaceHolder;->mType:I
+Lcom/android/internal/view/BaseSurfaceHolder;->onAllowLockCanvas()Z
+Lcom/android/internal/view/BaseSurfaceHolder;->onRelayoutContainer()V
+Lcom/android/internal/view/BaseSurfaceHolder;->onUpdateSurface()V
+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
+Lcom/android/internal/view/IInputConnectionWrapper;->closeConnection()V
+Lcom/android/internal/view/IInputConnectionWrapper;->commitCompletion(Landroid/view/inputmethod/CompletionInfo;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->commitContent(Landroid/view/inputmethod/InputContentInfo;ILandroid/os/Bundle;ILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->commitText(Ljava/lang/CharSequence;I)V
+Lcom/android/internal/view/IInputConnectionWrapper;->DEBUG:Z
+Lcom/android/internal/view/IInputConnectionWrapper;->deleteSurroundingText(II)V
+Lcom/android/internal/view/IInputConnectionWrapper;->deleteSurroundingTextInCodePoints(II)V
+Lcom/android/internal/view/IInputConnectionWrapper;->dispatchMessage(Landroid/os/Message;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_BEGIN_BATCH_EDIT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_CLEAR_META_KEY_STATES:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_CLOSE_CONNECTION:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_COMMIT_COMPLETION:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_COMMIT_CONTENT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_COMMIT_CORRECTION:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_COMMIT_TEXT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_DELETE_SURROUNDING_TEXT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_DELETE_SURROUNDING_TEXT_IN_CODE_POINTS:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_END_BATCH_EDIT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_FINISH_COMPOSING_TEXT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_GET_CURSOR_CAPS_MODE:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_GET_EXTRACTED_TEXT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_GET_SELECTED_TEXT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_GET_TEXT_AFTER_CURSOR:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_GET_TEXT_BEFORE_CURSOR:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_PERFORM_CONTEXT_MENU_ACTION:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_PERFORM_EDITOR_ACTION:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_PERFORM_PRIVATE_COMMAND:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_REQUEST_UPDATE_CURSOR_ANCHOR_INFO:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_SEND_KEY_EVENT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_SET_COMPOSING_REGION:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_SET_COMPOSING_TEXT:I
+Lcom/android/internal/view/IInputConnectionWrapper;->DO_SET_SELECTION:I
+Lcom/android/internal/view/IInputConnectionWrapper;->endBatchEdit()V
+Lcom/android/internal/view/IInputConnectionWrapper;->executeMessage(Landroid/os/Message;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->finishComposingText()V
+Lcom/android/internal/view/IInputConnectionWrapper;->getCursorCapsMode(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->getExtractedText(Landroid/view/inputmethod/ExtractedTextRequest;IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->getInputConnection()Landroid/view/inputmethod/InputConnection;
+Lcom/android/internal/view/IInputConnectionWrapper;->getSelectedText(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->getTextAfterCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->getTextBeforeCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->isActive()Z
+Lcom/android/internal/view/IInputConnectionWrapper;->isFinished()Z
+Lcom/android/internal/view/IInputConnectionWrapper;->mFinished:Z
+Lcom/android/internal/view/IInputConnectionWrapper;->mH:Landroid/os/Handler;
+Lcom/android/internal/view/IInputConnectionWrapper;->mMainLooper:Landroid/os/Looper;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessage(I)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessageII(III)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIISC(IIIILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIO(IILjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIOOSC(IILjava/lang/Object;Ljava/lang/Object;ILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIOSC(IILjava/lang/Object;ILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessageISC(IIILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessageO(ILjava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->obtainMessageOO(ILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+Lcom/android/internal/view/IInputConnectionWrapper;->onUserAction()V
+Lcom/android/internal/view/IInputConnectionWrapper;->performContextMenuAction(I)V
+Lcom/android/internal/view/IInputConnectionWrapper;->performEditorAction(I)V
+Lcom/android/internal/view/IInputConnectionWrapper;->performPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->requestUpdateCursorAnchorInfo(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->sendKeyEvent(Landroid/view/KeyEvent;)V
+Lcom/android/internal/view/IInputConnectionWrapper;->setComposingRegion(II)V
+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
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->commitCompletion(Landroid/view/inputmethod/CompletionInfo;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->commitContent(Landroid/view/inputmethod/InputContentInfo;ILandroid/os/Bundle;ILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->commitText(Ljava/lang/CharSequence;I)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->deleteSurroundingText(II)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->deleteSurroundingTextInCodePoints(II)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->endBatchEdit()V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->finishComposingText()V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->getCursorCapsMode(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->getExtractedText(Landroid/view/inputmethod/ExtractedTextRequest;IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->getSelectedText(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->getTextAfterCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->getTextBeforeCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->performContextMenuAction(I)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->performEditorAction(I)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->performPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->requestUpdateCursorAnchorInfo(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext$Stub$Proxy;->sendKeyEvent(Landroid/view/KeyEvent;)V
+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;
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_beginBatchEdit:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_clearMetaKeyStates:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_commitCompletion:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_commitContent:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_commitCorrection:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_commitText:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_deleteSurroundingText:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_deleteSurroundingTextInCodePoints:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_endBatchEdit:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_finishComposingText:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_getCursorCapsMode:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_getExtractedText:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_getSelectedText:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_getTextAfterCursor:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_getTextBeforeCursor:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_performContextMenuAction:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_performEditorAction:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_performPrivateCommand:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_requestUpdateCursorAnchorInfo:I
+Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_sendKeyEvent:I
+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
+Lcom/android/internal/view/IInputContext;->commitContent(Landroid/view/inputmethod/InputContentInfo;ILandroid/os/Bundle;ILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V
+Lcom/android/internal/view/IInputContext;->commitText(Ljava/lang/CharSequence;I)V
+Lcom/android/internal/view/IInputContext;->deleteSurroundingText(II)V
+Lcom/android/internal/view/IInputContext;->deleteSurroundingTextInCodePoints(II)V
+Lcom/android/internal/view/IInputContext;->endBatchEdit()V
+Lcom/android/internal/view/IInputContext;->finishComposingText()V
+Lcom/android/internal/view/IInputContext;->getCursorCapsMode(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext;->getExtractedText(Landroid/view/inputmethod/ExtractedTextRequest;IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext;->getSelectedText(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext;->getTextAfterCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext;->getTextBeforeCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext;->performContextMenuAction(I)V
+Lcom/android/internal/view/IInputContext;->performEditorAction(I)V
+Lcom/android/internal/view/IInputContext;->performPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
+Lcom/android/internal/view/IInputContext;->requestUpdateCursorAnchorInfo(IILcom/android/internal/view/IInputContextCallback;)V
+Lcom/android/internal/view/IInputContext;->sendKeyEvent(Landroid/view/KeyEvent;)V
+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;
+Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setCommitContentResult(ZI)V
+Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setCursorCapsMode(II)V
+Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setExtractedText(Landroid/view/inputmethod/ExtractedText;I)V
+Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setRequestUpdateCursorAnchorInfoResult(ZI)V
+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;
+Lcom/android/internal/view/IInputContextCallback$Stub;->TRANSACTION_setCommitContentResult:I
+Lcom/android/internal/view/IInputContextCallback$Stub;->TRANSACTION_setCursorCapsMode:I
+Lcom/android/internal/view/IInputContextCallback$Stub;->TRANSACTION_setExtractedText:I
+Lcom/android/internal/view/IInputContextCallback$Stub;->TRANSACTION_setRequestUpdateCursorAnchorInfoResult:I
+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
+Lcom/android/internal/view/IInputContextCallback;->setRequestUpdateCursorAnchorInfoResult(ZI)V
+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
+Lcom/android/internal/view/IInputMethod$Stub$Proxy;->changeInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V
+Lcom/android/internal/view/IInputMethod$Stub$Proxy;->createSession(Landroid/view/InputChannel;Lcom/android/internal/view/IInputSessionCallback;)V
+Lcom/android/internal/view/IInputMethod$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/view/IInputMethod$Stub$Proxy;->hideSoftInput(ILandroid/os/ResultReceiver;)V
+Lcom/android/internal/view/IInputMethod$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/view/IInputMethod$Stub$Proxy;->revokeSession(Lcom/android/internal/view/IInputMethodSession;)V
+Lcom/android/internal/view/IInputMethod$Stub$Proxy;->setSessionEnabled(Lcom/android/internal/view/IInputMethodSession;Z)V
+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
+Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_bindInput:I
+Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_changeInputMethodSubtype:I
+Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_createSession:I
+Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_hideSoftInput:I
+Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_revokeSession:I
+Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_setSessionEnabled:I
+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;
+Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;->onBindMethod(Lcom/android/internal/view/InputBindResult;)V
+Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;->onUnbindMethod(II)V
+Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;->reportFullscreenMode(Z)V
+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;
+Lcom/android/internal/view/IInputMethodClient$Stub;->TRANSACTION_onBindMethod:I
+Lcom/android/internal/view/IInputMethodClient$Stub;->TRANSACTION_onUnbindMethod:I
+Lcom/android/internal/view/IInputMethodClient$Stub;->TRANSACTION_reportFullscreenMode:I
+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;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->finishInput(Lcom/android/internal/view/IInputMethodClient;)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getCurrentInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getEnabledInputMethodSubtypeList(Ljava/lang/String;Z)Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getInputMethodList()Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getInputMethodWindowVisibleHeight()I
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getLastInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getShortcutInputMethodsAndSubtypes()Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getVrInputMethodList()Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->hideMySoftInput(Landroid/os/IBinder;I)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->isInputMethodPickerShownForTest()Z
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->notifySuggestionPicked(Landroid/text/style/SuggestionSpan;Ljava/lang/String;I)Z
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->notifyUserAction(I)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->registerSuggestionSpansForNotification([Landroid/text/style/SuggestionSpan;)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->removeClient(Lcom/android/internal/view/IInputMethodClient;)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->reportFullscreenMode(Landroid/os/IBinder;Z)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->setAdditionalInputMethodSubtypes(Ljava/lang/String;[Landroid/view/inputmethod/InputMethodSubtype;)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->setCurrentInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)Z
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->setImeWindowStatus(Landroid/os/IBinder;Landroid/os/IBinder;II)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->setInputMethod(Landroid/os/IBinder;Ljava/lang/String;)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->setInputMethodAndSubtype(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->shouldOfferSwitchingToNextInputMethod(Landroid/os/IBinder;)Z
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->showInputMethodAndSubtypeEnablerFromClient(Lcom/android/internal/view/IInputMethodClient;Ljava/lang/String;)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->showInputMethodPickerFromClient(Lcom/android/internal/view/IInputMethodClient;I)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->showMySoftInput(Landroid/os/IBinder;I)V
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->showSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
+Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->startInputOrWindowGainedFocus(ILcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/view/IInputContext;II)Lcom/android/internal/view/InputBindResult;
+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
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_createInputContentUriToken:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_finishInput:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_getCurrentInputMethodSubtype:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_getEnabledInputMethodList:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_getEnabledInputMethodSubtypeList:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_getInputMethodList:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_getInputMethodWindowVisibleHeight:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_getLastInputMethodSubtype:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_getShortcutInputMethodsAndSubtypes:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_getVrInputMethodList:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_hideMySoftInput:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_hideSoftInput:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_isInputMethodPickerShownForTest:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_notifySuggestionPicked:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_notifyUserAction:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_registerSuggestionSpansForNotification:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_removeClient:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_reportFullscreenMode:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_setAdditionalInputMethodSubtypes:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_setCurrentInputMethodSubtype:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_setImeWindowStatus:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_setInputMethod:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_setInputMethodAndSubtype:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_shouldOfferSwitchingToNextInputMethod:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_showInputMethodAndSubtypeEnablerFromClient:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_showInputMethodPickerFromClient:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_showMySoftInput:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_showSoftInput:I
+Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_startInputOrWindowGainedFocus:I
+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
+Lcom/android/internal/view/IInputMethodManager;->getCurrentInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;
+Lcom/android/internal/view/IInputMethodManager;->getEnabledInputMethodList()Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager;->getEnabledInputMethodSubtypeList(Ljava/lang/String;Z)Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager;->getInputMethodList()Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager;->getInputMethodWindowVisibleHeight()I
+Lcom/android/internal/view/IInputMethodManager;->getLastInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;
+Lcom/android/internal/view/IInputMethodManager;->getShortcutInputMethodsAndSubtypes()Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager;->getVrInputMethodList()Ljava/util/List;
+Lcom/android/internal/view/IInputMethodManager;->hideMySoftInput(Landroid/os/IBinder;I)V
+Lcom/android/internal/view/IInputMethodManager;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
+Lcom/android/internal/view/IInputMethodManager;->isInputMethodPickerShownForTest()Z
+Lcom/android/internal/view/IInputMethodManager;->notifySuggestionPicked(Landroid/text/style/SuggestionSpan;Ljava/lang/String;I)Z
+Lcom/android/internal/view/IInputMethodManager;->notifyUserAction(I)V
+Lcom/android/internal/view/IInputMethodManager;->registerSuggestionSpansForNotification([Landroid/text/style/SuggestionSpan;)V
+Lcom/android/internal/view/IInputMethodManager;->reportFullscreenMode(Landroid/os/IBinder;Z)V
+Lcom/android/internal/view/IInputMethodManager;->setAdditionalInputMethodSubtypes(Ljava/lang/String;[Landroid/view/inputmethod/InputMethodSubtype;)V
+Lcom/android/internal/view/IInputMethodManager;->setCurrentInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)Z
+Lcom/android/internal/view/IInputMethodManager;->setImeWindowStatus(Landroid/os/IBinder;Landroid/os/IBinder;II)V
+Lcom/android/internal/view/IInputMethodManager;->setInputMethod(Landroid/os/IBinder;Ljava/lang/String;)V
+Lcom/android/internal/view/IInputMethodManager;->setInputMethodAndSubtype(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
+Lcom/android/internal/view/IInputMethodManager;->shouldOfferSwitchingToNextInputMethod(Landroid/os/IBinder;)Z
+Lcom/android/internal/view/IInputMethodManager;->showInputMethodAndSubtypeEnablerFromClient(Lcom/android/internal/view/IInputMethodClient;Ljava/lang/String;)V
+Lcom/android/internal/view/IInputMethodManager;->showInputMethodPickerFromClient(Lcom/android/internal/view/IInputMethodClient;I)V
+Lcom/android/internal/view/IInputMethodManager;->showMySoftInput(Landroid/os/IBinder;I)V
+Lcom/android/internal/view/IInputMethodManager;->showSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
+Lcom/android/internal/view/IInputMethodManager;->startInputOrWindowGainedFocus(ILcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/view/IInputContext;II)Lcom/android/internal/view/InputBindResult;
+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
+Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->finishInput()V
+Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->finishSession()V
+Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->toggleSoftInput(II)V
+Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->updateCursor(Landroid/graphics/Rect;)V
+Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->updateCursorAnchorInfo(Landroid/view/inputmethod/CursorAnchorInfo;)V
+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
+Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_displayCompletions:I
+Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_finishInput:I
+Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_finishSession:I
+Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_toggleSoftInput:I
+Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_updateCursor:I
+Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_updateCursorAnchorInfo:I
+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
+Lcom/android/internal/view/IInputMethodSession;->finishSession()V
+Lcom/android/internal/view/IInputMethodSession;->toggleSoftInput(II)V
+Lcom/android/internal/view/IInputMethodSession;->updateCursor(Landroid/graphics/Rect;)V
+Lcom/android/internal/view/IInputMethodSession;->updateCursorAnchorInfo(Landroid/view/inputmethod/CursorAnchorInfo;)V
+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
+Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_NOT_IME_TARGET_WINDOW:I
+Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_NO_EDITOR:I
+Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_NO_IME:I
+Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_NULL:I
+Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_NULL_EDITOR_INFO:I
+Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_SYSTEM_NOT_READY:I
+Lcom/android/internal/view/InputBindResult$ResultCode;->SUCCESS_REPORT_WINDOW_FOCUS_ONLY:I
+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;
+Lcom/android/internal/view/InputBindResult;->error(I)Lcom/android/internal/view/InputBindResult;
+Lcom/android/internal/view/InputBindResult;->getResultString()Ljava/lang/String;
+Lcom/android/internal/view/InputBindResult;->id:Ljava/lang/String;
+Lcom/android/internal/view/InputBindResult;->IME_NOT_CONNECTED:Lcom/android/internal/view/InputBindResult;
+Lcom/android/internal/view/InputBindResult;->INVALID_PACKAGE_NAME:Lcom/android/internal/view/InputBindResult;
+Lcom/android/internal/view/InputBindResult;->INVALID_USER:Lcom/android/internal/view/InputBindResult;
+Lcom/android/internal/view/InputBindResult;->NOT_IME_TARGET_WINDOW:Lcom/android/internal/view/InputBindResult;
+Lcom/android/internal/view/InputBindResult;->NO_EDITOR:Lcom/android/internal/view/InputBindResult;
+Lcom/android/internal/view/InputBindResult;->NO_IME:Lcom/android/internal/view/InputBindResult;
+Lcom/android/internal/view/InputBindResult;->NULL:Lcom/android/internal/view/InputBindResult;
+Lcom/android/internal/view/InputBindResult;->NULL_EDITOR_INFO:Lcom/android/internal/view/InputBindResult;
+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;
+Lcom/android/internal/view/InputMethodClient;->softInputModeToString(I)Ljava/lang/String;
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_ACTIVATED_BY_IMMS:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_APP_CALLED_RESTART_INPUT_API:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_BOUND_TO_IMMS:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_CHECK_FOCUS:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_DEACTIVATED_BY_IMMS:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_SESSION_CREATED_BY_IME:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_UNBOUND_FROM_IMMS:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_UNSPECIFIED:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_WINDOW_FOCUS_GAIN:I
+Lcom/android/internal/view/InputMethodClient;->START_INPUT_REASON_WINDOW_FOCUS_GAIN_REPORT_ONLY:I
+Lcom/android/internal/view/InputMethodClient;->UNBIND_REASON_DISCONNECT_IME:I
+Lcom/android/internal/view/InputMethodClient;->UNBIND_REASON_NO_IME:I
+Lcom/android/internal/view/InputMethodClient;->UNBIND_REASON_SWITCH_CLIENT:I
+Lcom/android/internal/view/InputMethodClient;->UNBIND_REASON_SWITCH_IME:I
+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
+Lcom/android/internal/view/menu/ActionMenuItemView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+Lcom/android/internal/view/menu/ActionMenuItemView;->getItemData()Lcom/android/internal/view/menu/MenuItemImpl;
+Lcom/android/internal/view/menu/ActionMenuItemView;->initialize(Lcom/android/internal/view/menu/MenuItemImpl;I)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->mAllowTextWithIcon:Z
+Lcom/android/internal/view/menu/ActionMenuItemView;->MAX_ICON_SIZE:I
+Lcom/android/internal/view/menu/ActionMenuItemView;->mExpandedFormat:Z
+Lcom/android/internal/view/menu/ActionMenuItemView;->mForwardingListener:Landroid/widget/ForwardingListener;
+Lcom/android/internal/view/menu/ActionMenuItemView;->mIcon:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/view/menu/ActionMenuItemView;->mItemData:Lcom/android/internal/view/menu/MenuItemImpl;
+Lcom/android/internal/view/menu/ActionMenuItemView;->mItemInvoker:Lcom/android/internal/view/menu/MenuBuilder$ItemInvoker;
+Lcom/android/internal/view/menu/ActionMenuItemView;->mMaxIconSize:I
+Lcom/android/internal/view/menu/ActionMenuItemView;->mMinWidth:I
+Lcom/android/internal/view/menu/ActionMenuItemView;->mPopupCallback:Lcom/android/internal/view/menu/ActionMenuItemView$PopupCallback;
+Lcom/android/internal/view/menu/ActionMenuItemView;->mSavedPaddingLeft:I
+Lcom/android/internal/view/menu/ActionMenuItemView;->mTitle:Ljava/lang/CharSequence;
+Lcom/android/internal/view/menu/ActionMenuItemView;->needsDividerAfter()Z
+Lcom/android/internal/view/menu/ActionMenuItemView;->needsDividerBefore()Z
+Lcom/android/internal/view/menu/ActionMenuItemView;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->prefersCondensedTitle()Z
+Lcom/android/internal/view/menu/ActionMenuItemView;->setCheckable(Z)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->setChecked(Z)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->setExpandedFormat(Z)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->setIcon(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->setItemInvoker(Lcom/android/internal/view/menu/MenuBuilder$ItemInvoker;)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->setPopupCallback(Lcom/android/internal/view/menu/ActionMenuItemView$PopupCallback;)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->setShortcut(ZC)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->setTitle(Ljava/lang/CharSequence;)V
+Lcom/android/internal/view/menu/ActionMenuItemView;->shouldAllowTextWithIcon()Z
+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
+Lcom/android/internal/view/menu/BaseMenuPresenter;->collapseItemActionView(Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)Z
+Lcom/android/internal/view/menu/BaseMenuPresenter;->createItemView(Landroid/view/ViewGroup;)Lcom/android/internal/view/menu/MenuView$ItemView;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->expandItemActionView(Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)Z
+Lcom/android/internal/view/menu/BaseMenuPresenter;->filterLeftoverView(Landroid/view/ViewGroup;I)Z
+Lcom/android/internal/view/menu/BaseMenuPresenter;->flagActionItems()Z
+Lcom/android/internal/view/menu/BaseMenuPresenter;->getCallback()Lcom/android/internal/view/menu/MenuPresenter$Callback;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->getId()I
+Lcom/android/internal/view/menu/BaseMenuPresenter;->getItemView(Lcom/android/internal/view/menu/MenuItemImpl;Landroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->getMenuView(Landroid/view/ViewGroup;)Lcom/android/internal/view/menu/MenuView;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mCallback:Lcom/android/internal/view/menu/MenuPresenter$Callback;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mContext:Landroid/content/Context;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mId:I
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mInflater:Landroid/view/LayoutInflater;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mItemLayoutRes:I
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mMenu:Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mMenuLayoutRes:I
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mMenuView:Lcom/android/internal/view/menu/MenuView;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mSystemContext:Landroid/content/Context;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->mSystemInflater:Landroid/view/LayoutInflater;
+Lcom/android/internal/view/menu/BaseMenuPresenter;->onCloseMenu(Lcom/android/internal/view/menu/MenuBuilder;Z)V
+Lcom/android/internal/view/menu/BaseMenuPresenter;->onSubMenuSelected(Lcom/android/internal/view/menu/SubMenuBuilder;)Z
+Lcom/android/internal/view/menu/BaseMenuPresenter;->setCallback(Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+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;
+Lcom/android/internal/view/menu/MenuAdapter;->getForceShowIcon()Z
+Lcom/android/internal/view/menu/MenuAdapter;->mAdapterMenu:Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/MenuAdapter;->mExpandedIndex:I
+Lcom/android/internal/view/menu/MenuAdapter;->mForceShowIcon:Z
+Lcom/android/internal/view/menu/MenuAdapter;->mInflater:Landroid/view/LayoutInflater;
+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
+Lcom/android/internal/view/menu/MenuBuilder;->clearAll()V
+Lcom/android/internal/view/menu/MenuBuilder;->clearHeader()V
+Lcom/android/internal/view/menu/MenuBuilder;->close(Z)V
+Lcom/android/internal/view/menu/MenuBuilder;->createNewMenuItem(IIIILjava/lang/CharSequence;I)Lcom/android/internal/view/menu/MenuItemImpl;
+Lcom/android/internal/view/menu/MenuBuilder;->dispatchMenuItemSelected(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)Z
+Lcom/android/internal/view/menu/MenuBuilder;->dispatchPresenterUpdate(Z)V
+Lcom/android/internal/view/menu/MenuBuilder;->dispatchRestoreInstanceState(Landroid/os/Bundle;)V
+Lcom/android/internal/view/menu/MenuBuilder;->dispatchSaveInstanceState(Landroid/os/Bundle;)V
+Lcom/android/internal/view/menu/MenuBuilder;->dispatchSubMenuSelected(Lcom/android/internal/view/menu/SubMenuBuilder;Lcom/android/internal/view/menu/MenuPresenter;)Z
+Lcom/android/internal/view/menu/MenuBuilder;->EXPANDED_ACTION_VIEW_ID:Ljava/lang/String;
+Lcom/android/internal/view/menu/MenuBuilder;->expandItemActionView(Lcom/android/internal/view/menu/MenuItemImpl;)Z
+Lcom/android/internal/view/menu/MenuBuilder;->findGroupIndex(I)I
+Lcom/android/internal/view/menu/MenuBuilder;->findGroupIndex(II)I
+Lcom/android/internal/view/menu/MenuBuilder;->findInsertIndex(Ljava/util/ArrayList;I)I
+Lcom/android/internal/view/menu/MenuBuilder;->findItemIndex(I)I
+Lcom/android/internal/view/menu/MenuBuilder;->findItemsWithShortcutForKey(Ljava/util/List;ILandroid/view/KeyEvent;)V
+Lcom/android/internal/view/menu/MenuBuilder;->findItemWithShortcutForKey(ILandroid/view/KeyEvent;)Lcom/android/internal/view/menu/MenuItemImpl;
+Lcom/android/internal/view/menu/MenuBuilder;->flagActionItems()V
+Lcom/android/internal/view/menu/MenuBuilder;->getActionItems()Ljava/util/ArrayList;
+Lcom/android/internal/view/menu/MenuBuilder;->getActionViewStatesKey()Ljava/lang/String;
+Lcom/android/internal/view/menu/MenuBuilder;->getExpandedItem()Lcom/android/internal/view/menu/MenuItemImpl;
+Lcom/android/internal/view/menu/MenuBuilder;->getHeaderView()Landroid/view/View;
+Lcom/android/internal/view/menu/MenuBuilder;->getOptionalIconsVisible()Z
+Lcom/android/internal/view/menu/MenuBuilder;->getOrdering(I)I
+Lcom/android/internal/view/menu/MenuBuilder;->getResources()Landroid/content/res/Resources;
+Lcom/android/internal/view/menu/MenuBuilder;->isGroupDividerEnabled()Z
+Lcom/android/internal/view/menu/MenuBuilder;->isQwertyMode()Z
+Lcom/android/internal/view/menu/MenuBuilder;->isShortcutsVisible()Z
+Lcom/android/internal/view/menu/MenuBuilder;->mActionItems:Ljava/util/ArrayList;
+Lcom/android/internal/view/menu/MenuBuilder;->mCallback:Lcom/android/internal/view/menu/MenuBuilder$Callback;
+Lcom/android/internal/view/menu/MenuBuilder;->mCurrentMenuInfo:Landroid/view/ContextMenu$ContextMenuInfo;
+Lcom/android/internal/view/menu/MenuBuilder;->mDefaultShowAsAction:I
+Lcom/android/internal/view/menu/MenuBuilder;->mExpandedItem:Lcom/android/internal/view/menu/MenuItemImpl;
+Lcom/android/internal/view/menu/MenuBuilder;->mFrozenViewStates:Landroid/util/SparseArray;
+Lcom/android/internal/view/menu/MenuBuilder;->mGroupDividerEnabled:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mHeaderIcon:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/view/menu/MenuBuilder;->mHeaderTitle:Ljava/lang/CharSequence;
+Lcom/android/internal/view/menu/MenuBuilder;->mHeaderView:Landroid/view/View;
+Lcom/android/internal/view/menu/MenuBuilder;->mIsActionItemsStale:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mIsClosing:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mIsVisibleItemsStale:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mItems:Ljava/util/ArrayList;
+Lcom/android/internal/view/menu/MenuBuilder;->mItemsChangedWhileDispatchPrevented:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mNonActionItems:Ljava/util/ArrayList;
+Lcom/android/internal/view/menu/MenuBuilder;->mOptionalIconsVisible:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mPresenters:Ljava/util/concurrent/CopyOnWriteArrayList;
+Lcom/android/internal/view/menu/MenuBuilder;->mPreventDispatchingItemsChanged:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mQwertyMode:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mResources:Landroid/content/res/Resources;
+Lcom/android/internal/view/menu/MenuBuilder;->mShortcutsVisible:Z
+Lcom/android/internal/view/menu/MenuBuilder;->mTempShortcutItemList:Ljava/util/ArrayList;
+Lcom/android/internal/view/menu/MenuBuilder;->mVisibleItems:Ljava/util/ArrayList;
+Lcom/android/internal/view/menu/MenuBuilder;->onItemActionRequestChanged(Lcom/android/internal/view/menu/MenuItemImpl;)V
+Lcom/android/internal/view/menu/MenuBuilder;->onItemsChanged(Z)V
+Lcom/android/internal/view/menu/MenuBuilder;->onItemVisibleChanged(Lcom/android/internal/view/menu/MenuItemImpl;)V
+Lcom/android/internal/view/menu/MenuBuilder;->performItemAction(Landroid/view/MenuItem;I)Z
+Lcom/android/internal/view/menu/MenuBuilder;->performItemAction(Landroid/view/MenuItem;Lcom/android/internal/view/menu/MenuPresenter;I)Z
+Lcom/android/internal/view/menu/MenuBuilder;->PRESENTER_KEY:Ljava/lang/String;
+Lcom/android/internal/view/menu/MenuBuilder;->removeItemAt(I)V
+Lcom/android/internal/view/menu/MenuBuilder;->removeItemAtInt(IZ)V
+Lcom/android/internal/view/menu/MenuBuilder;->restoreActionViewStates(Landroid/os/Bundle;)V
+Lcom/android/internal/view/menu/MenuBuilder;->restorePresenterStates(Landroid/os/Bundle;)V
+Lcom/android/internal/view/menu/MenuBuilder;->saveActionViewStates(Landroid/os/Bundle;)V
+Lcom/android/internal/view/menu/MenuBuilder;->savePresenterStates(Landroid/os/Bundle;)V
+Lcom/android/internal/view/menu/MenuBuilder;->sCategoryToOrder:[I
+Lcom/android/internal/view/menu/MenuBuilder;->setExclusiveItemChecked(Landroid/view/MenuItem;)V
+Lcom/android/internal/view/menu/MenuBuilder;->setHeaderIconInt(I)Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/MenuBuilder;->setHeaderIconInt(Landroid/graphics/drawable/Drawable;)Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/MenuBuilder;->setHeaderInternal(ILjava/lang/CharSequence;ILandroid/graphics/drawable/Drawable;Landroid/view/View;)V
+Lcom/android/internal/view/menu/MenuBuilder;->setHeaderTitleInt(I)Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/MenuBuilder;->setHeaderTitleInt(Ljava/lang/CharSequence;)Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/MenuBuilder;->setHeaderViewInt(Landroid/view/View;)Lcom/android/internal/view/menu/MenuBuilder;
+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
+Lcom/android/internal/view/menu/MenuItemImpl;->applyIconTintIfNecessary(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/view/menu/MenuItemImpl;->CHECKABLE:I
+Lcom/android/internal/view/menu/MenuItemImpl;->CHECKED:I
+Lcom/android/internal/view/menu/MenuItemImpl;->ENABLED:I
+Lcom/android/internal/view/menu/MenuItemImpl;->EXCLUSIVE:I
+Lcom/android/internal/view/menu/MenuItemImpl;->getCallback()Ljava/lang/Runnable;
+Lcom/android/internal/view/menu/MenuItemImpl;->getOrdering()I
+Lcom/android/internal/view/menu/MenuItemImpl;->getShortcut()C
+Lcom/android/internal/view/menu/MenuItemImpl;->getShortcutLabel()Ljava/lang/String;
+Lcom/android/internal/view/menu/MenuItemImpl;->getTitleForItemView(Lcom/android/internal/view/menu/MenuView$ItemView;)Ljava/lang/CharSequence;
+Lcom/android/internal/view/menu/MenuItemImpl;->hasCollapsibleActionView()Z
+Lcom/android/internal/view/menu/MenuItemImpl;->HIDDEN:I
+Lcom/android/internal/view/menu/MenuItemImpl;->isExclusiveCheckable()Z
+Lcom/android/internal/view/menu/MenuItemImpl;->IS_ACTION:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mActionProvider:Landroid/view/ActionProvider;
+Lcom/android/internal/view/menu/MenuItemImpl;->mActionView:Landroid/view/View;
+Lcom/android/internal/view/menu/MenuItemImpl;->mCategoryOrder:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mClickListener:Landroid/view/MenuItem$OnMenuItemClickListener;
+Lcom/android/internal/view/menu/MenuItemImpl;->mContentDescription:Ljava/lang/CharSequence;
+Lcom/android/internal/view/menu/MenuItemImpl;->mFlags:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mGroup:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mHasIconTint:Z
+Lcom/android/internal/view/menu/MenuItemImpl;->mHasIconTintMode:Z
+Lcom/android/internal/view/menu/MenuItemImpl;->mIconDrawable:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/view/menu/MenuItemImpl;->mIconTintList:Landroid/content/res/ColorStateList;
+Lcom/android/internal/view/menu/MenuItemImpl;->mIconTintMode:Landroid/graphics/PorterDuff$Mode;
+Lcom/android/internal/view/menu/MenuItemImpl;->mId:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mIntent:Landroid/content/Intent;
+Lcom/android/internal/view/menu/MenuItemImpl;->mIsActionViewExpanded:Z
+Lcom/android/internal/view/menu/MenuItemImpl;->mItemCallback:Ljava/lang/Runnable;
+Lcom/android/internal/view/menu/MenuItemImpl;->mMenu:Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/MenuItemImpl;->mMenuInfo:Landroid/view/ContextMenu$ContextMenuInfo;
+Lcom/android/internal/view/menu/MenuItemImpl;->mNeedToApplyIconTint:Z
+Lcom/android/internal/view/menu/MenuItemImpl;->mOnActionExpandListener:Landroid/view/MenuItem$OnActionExpandListener;
+Lcom/android/internal/view/menu/MenuItemImpl;->mOrdering:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mShortcutAlphabeticChar:C
+Lcom/android/internal/view/menu/MenuItemImpl;->mShortcutAlphabeticModifiers:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mShortcutNumericChar:C
+Lcom/android/internal/view/menu/MenuItemImpl;->mShortcutNumericModifiers:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mShowAsAction:I
+Lcom/android/internal/view/menu/MenuItemImpl;->mSubMenu:Lcom/android/internal/view/menu/SubMenuBuilder;
+Lcom/android/internal/view/menu/MenuItemImpl;->mTitle:Ljava/lang/CharSequence;
+Lcom/android/internal/view/menu/MenuItemImpl;->mTitleCondensed:Ljava/lang/CharSequence;
+Lcom/android/internal/view/menu/MenuItemImpl;->mTooltipText:Ljava/lang/CharSequence;
+Lcom/android/internal/view/menu/MenuItemImpl;->NO_ICON:I
+Lcom/android/internal/view/menu/MenuItemImpl;->requiresOverflow()Z
+Lcom/android/internal/view/menu/MenuItemImpl;->setCallback(Ljava/lang/Runnable;)Landroid/view/MenuItem;
+Lcom/android/internal/view/menu/MenuItemImpl;->setCheckedInt(Z)V
+Lcom/android/internal/view/menu/MenuItemImpl;->setIsActionButton(Z)V
+Lcom/android/internal/view/menu/MenuItemImpl;->setSubMenu(Lcom/android/internal/view/menu/SubMenuBuilder;)V
+Lcom/android/internal/view/menu/MenuItemImpl;->setVisibleInt(Z)Z
+Lcom/android/internal/view/menu/MenuItemImpl;->shouldShowIcon()Z
+Lcom/android/internal/view/menu/MenuItemImpl;->shouldShowShortcut()Z
+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
+Lcom/android/internal/view/menu/MenuPopup;->expandItemActionView(Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)Z
+Lcom/android/internal/view/menu/MenuPopup;->getEpicenterBounds()Landroid/graphics/Rect;
+Lcom/android/internal/view/menu/MenuPopup;->getId()I
+Lcom/android/internal/view/menu/MenuPopup;->getMenuView(Landroid/view/ViewGroup;)Lcom/android/internal/view/menu/MenuView;
+Lcom/android/internal/view/menu/MenuPopup;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+Lcom/android/internal/view/menu/MenuPopup;->measureIndividualMenuWidth(Landroid/widget/ListAdapter;Landroid/view/ViewGroup;Landroid/content/Context;I)I
+Lcom/android/internal/view/menu/MenuPopup;->mEpicenterBounds:Landroid/graphics/Rect;
+Lcom/android/internal/view/menu/MenuPopup;->setAnchorView(Landroid/view/View;)V
+Lcom/android/internal/view/menu/MenuPopup;->setEpicenterBounds(Landroid/graphics/Rect;)V
+Lcom/android/internal/view/menu/MenuPopup;->setForceShowIcon(Z)V
+Lcom/android/internal/view/menu/MenuPopup;->setGravity(I)V
+Lcom/android/internal/view/menu/MenuPopup;->setHorizontalOffset(I)V
+Lcom/android/internal/view/menu/MenuPopup;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V
+Lcom/android/internal/view/menu/MenuPopup;->setShowTitle(Z)V
+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;
+Lcom/android/internal/view/menu/MenuPopupHelper;->getGravity()I
+Lcom/android/internal/view/menu/MenuPopupHelper;->isShowing()Z
+Lcom/android/internal/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View;
+Lcom/android/internal/view/menu/MenuPopupHelper;->mContext:Landroid/content/Context;
+Lcom/android/internal/view/menu/MenuPopupHelper;->mDropDownGravity:I
+Lcom/android/internal/view/menu/MenuPopupHelper;->mInternalOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener;
+Lcom/android/internal/view/menu/MenuPopupHelper;->mMenu:Lcom/android/internal/view/menu/MenuBuilder;
+Lcom/android/internal/view/menu/MenuPopupHelper;->mOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener;
+Lcom/android/internal/view/menu/MenuPopupHelper;->mOverflowOnly:Z
+Lcom/android/internal/view/menu/MenuPopupHelper;->mPopup:Lcom/android/internal/view/menu/MenuPopup;
+Lcom/android/internal/view/menu/MenuPopupHelper;->mPopupStyleAttr:I
+Lcom/android/internal/view/menu/MenuPopupHelper;->mPopupStyleRes:I
+Lcom/android/internal/view/menu/MenuPopupHelper;->mPresenterCallback:Lcom/android/internal/view/menu/MenuPresenter$Callback;
+Lcom/android/internal/view/menu/MenuPopupHelper;->onDismiss()V
+Lcom/android/internal/view/menu/MenuPopupHelper;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V
+Lcom/android/internal/view/menu/MenuPopupHelper;->setPresenterCallback(Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+Lcom/android/internal/view/menu/MenuPopupHelper;->show(II)V
+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
+Lcom/android/internal/view/menu/MenuPresenter;->getId()I
+Lcom/android/internal/view/menu/MenuPresenter;->getMenuView(Landroid/view/ViewGroup;)Lcom/android/internal/view/menu/MenuView;
+Lcom/android/internal/view/menu/MenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+Lcom/android/internal/view/menu/MenuPresenter;->onCloseMenu(Lcom/android/internal/view/menu/MenuBuilder;Z)V
+Lcom/android/internal/view/menu/MenuPresenter;->onRestoreInstanceState(Landroid/os/Parcelable;)V
+Lcom/android/internal/view/menu/MenuPresenter;->onSaveInstanceState()Landroid/os/Parcelable;
+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
+Lcom/android/internal/view/menu/MenuView$ItemView;->setChecked(Z)V
+Lcom/android/internal/view/menu/MenuView$ItemView;->setEnabled(Z)V
+Lcom/android/internal/view/menu/MenuView$ItemView;->setIcon(Landroid/graphics/drawable/Drawable;)V
+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
+Lcom/android/internal/view/menu/SubMenuBuilder;->expandItemActionView(Lcom/android/internal/view/menu/MenuItemImpl;)Z
+Lcom/android/internal/view/menu/SubMenuBuilder;->getActionViewStatesKey()Ljava/lang/String;
+Lcom/android/internal/view/menu/SubMenuBuilder;->getParentMenu()Landroid/view/Menu;
+Lcom/android/internal/view/menu/SubMenuBuilder;->isGroupDividerEnabled()Z
+Lcom/android/internal/view/menu/SubMenuBuilder;->isQwertyMode()Z
+Lcom/android/internal/view/menu/SubMenuBuilder;->isShortcutsVisible()Z
+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;
+Lcom/android/internal/view/OneShotPreDrawListener;->mReturnValue:Z
+Lcom/android/internal/view/OneShotPreDrawListener;->mRunnable:Ljava/lang/Runnable;
+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;
+Lcom/android/internal/view/TooltipPopup;->hide()V
+Lcom/android/internal/view/TooltipPopup;->isShowing()Z
+Lcom/android/internal/view/TooltipPopup;->mContentView:Landroid/view/View;
+Lcom/android/internal/view/TooltipPopup;->mContext:Landroid/content/Context;
+Lcom/android/internal/view/TooltipPopup;->mLayoutParams:Landroid/view/WindowManager$LayoutParams;
+Lcom/android/internal/view/TooltipPopup;->mMessageView:Landroid/widget/TextView;
+Lcom/android/internal/view/TooltipPopup;->mTmpAnchorPos:[I
+Lcom/android/internal/view/TooltipPopup;->mTmpAppPos:[I
+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
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->getDeltaY()I
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->getHorizontalDirection()I
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->getValueAt(J)F
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->getVerticalDirection()I
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->interpolateValue(F)F
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->isFinished()Z
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mDeltaTime:J
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mDeltaX:I
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mDeltaY:I
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mEffectiveRampDown:I
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mRampDownDuration:I
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mRampUpDuration:I
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mStartTime:J
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mStopTime:J
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mStopValue:F
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mTargetVelocityX:F
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->mTargetVelocityY:F
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->requestStop()V
+Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->setRampDownDuration(I)V
+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
+Lcom/android/internal/widget/AutoScrollHelper;->canTargetScrollVertically(I)Z
+Lcom/android/internal/widget/AutoScrollHelper;->computeTargetVelocity(IFFF)F
+Lcom/android/internal/widget/AutoScrollHelper;->constrain(FFF)F
+Lcom/android/internal/widget/AutoScrollHelper;->constrain(III)I
+Lcom/android/internal/widget/AutoScrollHelper;->constrainEdgeValue(FF)F
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_ACTIVATION_DELAY:I
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_EDGE_TYPE:I
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_MAXIMUM_EDGE:F
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_MAXIMUM_VELOCITY_DIPS:I
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_MINIMUM_VELOCITY_DIPS:I
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_RAMP_DOWN_DURATION:I
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_RAMP_UP_DURATION:I
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_RELATIVE_EDGE:F
+Lcom/android/internal/widget/AutoScrollHelper;->DEFAULT_RELATIVE_VELOCITY:F
+Lcom/android/internal/widget/AutoScrollHelper;->EDGE_TYPE_INSIDE:I
+Lcom/android/internal/widget/AutoScrollHelper;->EDGE_TYPE_INSIDE_EXTEND:I
+Lcom/android/internal/widget/AutoScrollHelper;->EDGE_TYPE_OUTSIDE:I
+Lcom/android/internal/widget/AutoScrollHelper;->getEdgeValue(FFFF)F
+Lcom/android/internal/widget/AutoScrollHelper;->HORIZONTAL:I
+Lcom/android/internal/widget/AutoScrollHelper;->isEnabled()Z
+Lcom/android/internal/widget/AutoScrollHelper;->isExclusive()Z
+Lcom/android/internal/widget/AutoScrollHelper;->mActivationDelay:I
+Lcom/android/internal/widget/AutoScrollHelper;->mAlreadyDelayed:Z
+Lcom/android/internal/widget/AutoScrollHelper;->mAnimating:Z
+Lcom/android/internal/widget/AutoScrollHelper;->mEdgeInterpolator:Landroid/view/animation/Interpolator;
+Lcom/android/internal/widget/AutoScrollHelper;->mEdgeType:I
+Lcom/android/internal/widget/AutoScrollHelper;->mEnabled:Z
+Lcom/android/internal/widget/AutoScrollHelper;->mExclusive:Z
+Lcom/android/internal/widget/AutoScrollHelper;->mMaximumEdges:[F
+Lcom/android/internal/widget/AutoScrollHelper;->mMaximumVelocity:[F
+Lcom/android/internal/widget/AutoScrollHelper;->mMinimumVelocity:[F
+Lcom/android/internal/widget/AutoScrollHelper;->mNeedsCancel:Z
+Lcom/android/internal/widget/AutoScrollHelper;->mNeedsReset:Z
+Lcom/android/internal/widget/AutoScrollHelper;->mRelativeEdges:[F
+Lcom/android/internal/widget/AutoScrollHelper;->mRelativeVelocity:[F
+Lcom/android/internal/widget/AutoScrollHelper;->mRunnable:Ljava/lang/Runnable;
+Lcom/android/internal/widget/AutoScrollHelper;->mScroller:Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;
+Lcom/android/internal/widget/AutoScrollHelper;->mTarget:Landroid/view/View;
+Lcom/android/internal/widget/AutoScrollHelper;->NO_MAX:F
+Lcom/android/internal/widget/AutoScrollHelper;->NO_MIN:F
+Lcom/android/internal/widget/AutoScrollHelper;->RELATIVE_UNSPECIFIED:F
+Lcom/android/internal/widget/AutoScrollHelper;->requestStop()V
+Lcom/android/internal/widget/AutoScrollHelper;->scrollTargetBy(II)V
+Lcom/android/internal/widget/AutoScrollHelper;->setActivationDelay(I)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setEdgeType(I)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setEnabled(Z)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setExclusive(Z)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setMaximumEdges(FF)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setMaximumVelocity(FF)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setMinimumVelocity(FF)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setRampDownDuration(I)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setRampUpDuration(I)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setRelativeEdges(FF)Lcom/android/internal/widget/AutoScrollHelper;
+Lcom/android/internal/widget/AutoScrollHelper;->setRelativeVelocity(FF)Lcom/android/internal/widget/AutoScrollHelper;
+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
+Lcom/android/internal/widget/CachingIconView;->mLastPackage:Ljava/lang/String;
+Lcom/android/internal/widget/CachingIconView;->mLastResId:I
+Lcom/android/internal/widget/CachingIconView;->normalizeIconPackage(Landroid/graphics/drawable/Icon;)Ljava/lang/String;
+Lcom/android/internal/widget/CachingIconView;->resetCache()V
+Lcom/android/internal/widget/CachingIconView;->setForceHidden(Z)V
+Lcom/android/internal/widget/CachingIconView;->setImageIconAsync(Landroid/graphics/drawable/Icon;)Ljava/lang/Runnable;
+Lcom/android/internal/widget/CachingIconView;->setImageResourceAsync(I)Ljava/lang/Runnable;
+Lcom/android/internal/widget/CachingIconView;->setImageURIAsync(Landroid/net/Uri;)Ljava/lang/Runnable;
+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
+Lcom/android/internal/widget/DecorToolbar;->collapseActionView()V
+Lcom/android/internal/widget/DecorToolbar;->dismissPopupMenus()V
+Lcom/android/internal/widget/DecorToolbar;->getContext()Landroid/content/Context;
+Lcom/android/internal/widget/DecorToolbar;->getCustomView()Landroid/view/View;
+Lcom/android/internal/widget/DecorToolbar;->getDisplayOptions()I
+Lcom/android/internal/widget/DecorToolbar;->getDropdownItemCount()I
+Lcom/android/internal/widget/DecorToolbar;->getDropdownSelectedPosition()I
+Lcom/android/internal/widget/DecorToolbar;->getHeight()I
+Lcom/android/internal/widget/DecorToolbar;->getMenu()Landroid/view/Menu;
+Lcom/android/internal/widget/DecorToolbar;->getNavigationMode()I
+Lcom/android/internal/widget/DecorToolbar;->getSubtitle()Ljava/lang/CharSequence;
+Lcom/android/internal/widget/DecorToolbar;->getTitle()Ljava/lang/CharSequence;
+Lcom/android/internal/widget/DecorToolbar;->getViewGroup()Landroid/view/ViewGroup;
+Lcom/android/internal/widget/DecorToolbar;->getVisibility()I
+Lcom/android/internal/widget/DecorToolbar;->hasEmbeddedTabs()Z
+Lcom/android/internal/widget/DecorToolbar;->hasExpandedActionView()Z
+Lcom/android/internal/widget/DecorToolbar;->hasIcon()Z
+Lcom/android/internal/widget/DecorToolbar;->hasLogo()Z
+Lcom/android/internal/widget/DecorToolbar;->hideOverflowMenu()Z
+Lcom/android/internal/widget/DecorToolbar;->initIndeterminateProgress()V
+Lcom/android/internal/widget/DecorToolbar;->initProgress()V
+Lcom/android/internal/widget/DecorToolbar;->isOverflowMenuShowing()Z
+Lcom/android/internal/widget/DecorToolbar;->isOverflowMenuShowPending()Z
+Lcom/android/internal/widget/DecorToolbar;->isSplit()Z
+Lcom/android/internal/widget/DecorToolbar;->isTitleTruncated()Z
+Lcom/android/internal/widget/DecorToolbar;->restoreHierarchyState(Landroid/util/SparseArray;)V
+Lcom/android/internal/widget/DecorToolbar;->saveHierarchyState(Landroid/util/SparseArray;)V
+Lcom/android/internal/widget/DecorToolbar;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/DecorToolbar;->setCollapsible(Z)V
+Lcom/android/internal/widget/DecorToolbar;->setCustomView(Landroid/view/View;)V
+Lcom/android/internal/widget/DecorToolbar;->setDefaultNavigationContentDescription(I)V
+Lcom/android/internal/widget/DecorToolbar;->setDefaultNavigationIcon(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/DecorToolbar;->setDisplayOptions(I)V
+Lcom/android/internal/widget/DecorToolbar;->setDropdownParams(Landroid/widget/SpinnerAdapter;Landroid/widget/AdapterView$OnItemSelectedListener;)V
+Lcom/android/internal/widget/DecorToolbar;->setDropdownSelectedPosition(I)V
+Lcom/android/internal/widget/DecorToolbar;->setEmbeddedTabView(Lcom/android/internal/widget/ScrollingTabContainerView;)V
+Lcom/android/internal/widget/DecorToolbar;->setHomeButtonEnabled(Z)V
+Lcom/android/internal/widget/DecorToolbar;->setIcon(I)V
+Lcom/android/internal/widget/DecorToolbar;->setIcon(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/DecorToolbar;->setLogo(I)V
+Lcom/android/internal/widget/DecorToolbar;->setLogo(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/DecorToolbar;->setMenu(Landroid/view/Menu;Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+Lcom/android/internal/widget/DecorToolbar;->setMenuCallbacks(Lcom/android/internal/view/menu/MenuPresenter$Callback;Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+Lcom/android/internal/widget/DecorToolbar;->setMenuPrepared()V
+Lcom/android/internal/widget/DecorToolbar;->setNavigationContentDescription(I)V
+Lcom/android/internal/widget/DecorToolbar;->setNavigationContentDescription(Ljava/lang/CharSequence;)V
+Lcom/android/internal/widget/DecorToolbar;->setNavigationIcon(I)V
+Lcom/android/internal/widget/DecorToolbar;->setNavigationIcon(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/DecorToolbar;->setNavigationMode(I)V
+Lcom/android/internal/widget/DecorToolbar;->setSplitToolbar(Z)V
+Lcom/android/internal/widget/DecorToolbar;->setSplitView(Landroid/view/ViewGroup;)V
+Lcom/android/internal/widget/DecorToolbar;->setSplitWhenNarrow(Z)V
+Lcom/android/internal/widget/DecorToolbar;->setSubtitle(Ljava/lang/CharSequence;)V
+Lcom/android/internal/widget/DecorToolbar;->setTitle(Ljava/lang/CharSequence;)V
+Lcom/android/internal/widget/DecorToolbar;->setupAnimatorToVisibility(IJ)Landroid/animation/Animator;
+Lcom/android/internal/widget/DecorToolbar;->setVisibility(I)V
+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;
+Lcom/android/internal/widget/ExploreByTouchHelper;->createEventForChild(II)Landroid/view/accessibility/AccessibilityEvent;
+Lcom/android/internal/widget/ExploreByTouchHelper;->createEventForHost(I)Landroid/view/accessibility/AccessibilityEvent;
+Lcom/android/internal/widget/ExploreByTouchHelper;->createNode(I)Landroid/view/accessibility/AccessibilityNodeInfo;
+Lcom/android/internal/widget/ExploreByTouchHelper;->createNodeForChild(I)Landroid/view/accessibility/AccessibilityNodeInfo;
+Lcom/android/internal/widget/ExploreByTouchHelper;->createNodeForHost()Landroid/view/accessibility/AccessibilityNodeInfo;
+Lcom/android/internal/widget/ExploreByTouchHelper;->DEFAULT_CLASS_NAME:Ljava/lang/String;
+Lcom/android/internal/widget/ExploreByTouchHelper;->dispatchHoverEvent(Landroid/view/MotionEvent;)Z
+Lcom/android/internal/widget/ExploreByTouchHelper;->ensureTempRects()V
+Lcom/android/internal/widget/ExploreByTouchHelper;->getFocusedVirtualView()I
+Lcom/android/internal/widget/ExploreByTouchHelper;->getVirtualViewAt(FF)I
+Lcom/android/internal/widget/ExploreByTouchHelper;->getVisibleVirtualViews(Landroid/util/IntArray;)V
+Lcom/android/internal/widget/ExploreByTouchHelper;->HOST_ID:I
+Lcom/android/internal/widget/ExploreByTouchHelper;->intersectVisibleToUser(Landroid/graphics/Rect;)Z
+Lcom/android/internal/widget/ExploreByTouchHelper;->invalidateRoot()V
+Lcom/android/internal/widget/ExploreByTouchHelper;->invalidateVirtualView(I)V
+Lcom/android/internal/widget/ExploreByTouchHelper;->invalidateVirtualView(II)V
+Lcom/android/internal/widget/ExploreByTouchHelper;->INVALID_ID:I
+Lcom/android/internal/widget/ExploreByTouchHelper;->INVALID_PARENT_BOUNDS:Landroid/graphics/Rect;
+Lcom/android/internal/widget/ExploreByTouchHelper;->isAccessibilityFocused(I)Z
+Lcom/android/internal/widget/ExploreByTouchHelper;->manageFocusForChild(II)Z
+Lcom/android/internal/widget/ExploreByTouchHelper;->mContext:Landroid/content/Context;
+Lcom/android/internal/widget/ExploreByTouchHelper;->mFocusedVirtualViewId:I
+Lcom/android/internal/widget/ExploreByTouchHelper;->mHoveredVirtualViewId:I
+Lcom/android/internal/widget/ExploreByTouchHelper;->mManager:Landroid/view/accessibility/AccessibilityManager;
+Lcom/android/internal/widget/ExploreByTouchHelper;->mNodeProvider:Lcom/android/internal/widget/ExploreByTouchHelper$ExploreByTouchNodeProvider;
+Lcom/android/internal/widget/ExploreByTouchHelper;->mTempArray:Landroid/util/IntArray;
+Lcom/android/internal/widget/ExploreByTouchHelper;->mTempGlobalRect:[I
+Lcom/android/internal/widget/ExploreByTouchHelper;->mTempParentRect:Landroid/graphics/Rect;
+Lcom/android/internal/widget/ExploreByTouchHelper;->mTempScreenRect:Landroid/graphics/Rect;
+Lcom/android/internal/widget/ExploreByTouchHelper;->mTempVisibleRect:Landroid/graphics/Rect;
+Lcom/android/internal/widget/ExploreByTouchHelper;->mView:Landroid/view/View;
+Lcom/android/internal/widget/ExploreByTouchHelper;->onPerformActionForVirtualView(IILandroid/os/Bundle;)Z
+Lcom/android/internal/widget/ExploreByTouchHelper;->onPopulateEventForHost(Landroid/view/accessibility/AccessibilityEvent;)V
+Lcom/android/internal/widget/ExploreByTouchHelper;->onPopulateEventForVirtualView(ILandroid/view/accessibility/AccessibilityEvent;)V
+Lcom/android/internal/widget/ExploreByTouchHelper;->onPopulateNodeForHost(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+Lcom/android/internal/widget/ExploreByTouchHelper;->onPopulateNodeForVirtualView(ILandroid/view/accessibility/AccessibilityNodeInfo;)V
+Lcom/android/internal/widget/ExploreByTouchHelper;->performAction(IILandroid/os/Bundle;)Z
+Lcom/android/internal/widget/ExploreByTouchHelper;->performActionForChild(IILandroid/os/Bundle;)Z
+Lcom/android/internal/widget/ExploreByTouchHelper;->performActionForHost(ILandroid/os/Bundle;)Z
+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
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->closeSession(Ljava/lang/String;)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->generateKey(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getBoolean(Ljava/lang/String;ZI)Z
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getHashFactor(Ljava/lang/String;I)[B
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getKey(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getKeyChainSnapshot()Landroid/security/keystore/recovery/KeyChainSnapshot;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getLong(Ljava/lang/String;JI)J
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getRecoverySecretTypes()[I
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getRecoveryStatus()Ljava/util/Map;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getSeparateProfileChallengeEnabled(I)Z
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->getStrongAuthForUser(I)I
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->havePassword(I)Z
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->havePattern(I)Z
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->importKey(Ljava/lang/String;[B)Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->recoverKeyChainSnapshot(Ljava/lang/String;[BLjava/util/List;)Ljava/util/Map;
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->removeKey(Ljava/lang/String;)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->requireStrongAuth(II)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->resetKeyStore(I)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setBoolean(Ljava/lang/String;ZI)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setLockCredential(Ljava/lang/String;ILjava/lang/String;II)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setLong(Ljava/lang/String;JI)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setRecoverySecretTypes([I)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setRecoveryStatus(Ljava/lang/String;I)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setSeparateProfileChallengeEnabled(IZLjava/lang/String;)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setServerParams([B)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->setString(Ljava/lang/String;Ljava/lang/String;I)V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->startRecoverySessionWithCertPath(Ljava/lang/String;Ljava/lang/String;Landroid/security/keystore/recovery/RecoveryCertPath;[B[BLjava/util/List;)[B
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->systemReady()V
+Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->unregisterStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
+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
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_checkVoldPassword:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_closeSession:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_generateKey:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getBoolean:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getHashFactor:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getKey:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getKeyChainSnapshot:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getLong:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getRecoverySecretTypes:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getRecoveryStatus:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getSeparateProfileChallengeEnabled:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getString:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_getStrongAuthForUser:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_havePassword:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_havePattern:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_importKey:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_initRecoveryServiceWithSigFile:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_recoverKeyChainSnapshot:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_registerStrongAuthTracker:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_removeKey:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_requireStrongAuth:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_resetKeyStore:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setBoolean:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setLockCredential:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setLong:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setRecoverySecretTypes:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setRecoveryStatus:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setSeparateProfileChallengeEnabled:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setServerParams:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setSnapshotCreatedPendingIntent:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_setString:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_startRecoverySessionWithCertPath:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_systemReady:I
+Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_unregisterStrongAuthTracker:I
+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
+Lcom/android/internal/widget/ILockSettings;->generateKey(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings;->getHashFactor(Ljava/lang/String;I)[B
+Lcom/android/internal/widget/ILockSettings;->getKey(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings;->getKeyChainSnapshot()Landroid/security/keystore/recovery/KeyChainSnapshot;
+Lcom/android/internal/widget/ILockSettings;->getRecoverySecretTypes()[I
+Lcom/android/internal/widget/ILockSettings;->getRecoveryStatus()Ljava/util/Map;
+Lcom/android/internal/widget/ILockSettings;->getSeparateProfileChallengeEnabled(I)Z
+Lcom/android/internal/widget/ILockSettings;->getStrongAuthForUser(I)I
+Lcom/android/internal/widget/ILockSettings;->importKey(Ljava/lang/String;[B)Ljava/lang/String;
+Lcom/android/internal/widget/ILockSettings;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
+Lcom/android/internal/widget/ILockSettings;->recoverKeyChainSnapshot(Ljava/lang/String;[BLjava/util/List;)Ljava/util/Map;
+Lcom/android/internal/widget/ILockSettings;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
+Lcom/android/internal/widget/ILockSettings;->removeKey(Ljava/lang/String;)V
+Lcom/android/internal/widget/ILockSettings;->requireStrongAuth(II)V
+Lcom/android/internal/widget/ILockSettings;->resetKeyStore(I)V
+Lcom/android/internal/widget/ILockSettings;->setLockCredential(Ljava/lang/String;ILjava/lang/String;II)V
+Lcom/android/internal/widget/ILockSettings;->setRecoverySecretTypes([I)V
+Lcom/android/internal/widget/ILockSettings;->setRecoveryStatus(Ljava/lang/String;I)V
+Lcom/android/internal/widget/ILockSettings;->setSeparateProfileChallengeEnabled(IZLjava/lang/String;)V
+Lcom/android/internal/widget/ILockSettings;->setServerParams([B)V
+Lcom/android/internal/widget/ILockSettings;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
+Lcom/android/internal/widget/ILockSettings;->startRecoverySessionWithCertPath(Ljava/lang/String;Ljava/lang/String;Landroid/security/keystore/recovery/RecoveryCertPath;[B[BLjava/util/List;)[B
+Lcom/android/internal/widget/ILockSettings;->systemReady()V
+Lcom/android/internal/widget/ILockSettings;->unregisterStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
+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;
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->getItemId(I)J
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->getLoadingView()Landroid/widget/RemoteViews;
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->getViewAt(I)Landroid/widget/RemoteViews;
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->getViewTypeCount()I
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->hasStableIds()Z
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->isCreated()Z
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->mRemote:Landroid/os/IBinder;
+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
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_getItemId:I
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_getLoadingView:I
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_getViewAt:I
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_getViewTypeCount:I
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_hasStableIds:I
+Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_isCreated:I
+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;
+Lcom/android/internal/widget/ScrollingTabContainerView$TabView;->mIconView:Landroid/widget/ImageView;
+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;
+Lcom/android/internal/widget/ScrollingTabContainerView;->FADE_DURATION:I
+Lcom/android/internal/widget/ScrollingTabContainerView;->isCollapsed()Z
+Lcom/android/internal/widget/ScrollingTabContainerView;->mAllowCollapse:Z
+Lcom/android/internal/widget/ScrollingTabContainerView;->mContentHeight:I
+Lcom/android/internal/widget/ScrollingTabContainerView;->mMaxTabWidth:I
+Lcom/android/internal/widget/ScrollingTabContainerView;->mSelectedTabIndex:I
+Lcom/android/internal/widget/ScrollingTabContainerView;->mStackedTabMaxWidth:I
+Lcom/android/internal/widget/ScrollingTabContainerView;->mTabClickListener:Lcom/android/internal/widget/ScrollingTabContainerView$TabClickListener;
+Lcom/android/internal/widget/ScrollingTabContainerView;->mTabLayout:Landroid/widget/LinearLayout;
+Lcom/android/internal/widget/ScrollingTabContainerView;->mTabSelector:Ljava/lang/Runnable;
+Lcom/android/internal/widget/ScrollingTabContainerView;->mTabSpinner:Landroid/widget/Spinner;
+Lcom/android/internal/widget/ScrollingTabContainerView;->mVisAnimListener:Lcom/android/internal/widget/ScrollingTabContainerView$VisibilityAnimListener;
+Lcom/android/internal/widget/ScrollingTabContainerView;->mVisibilityAnim:Landroid/animation/Animator;
+Lcom/android/internal/widget/ScrollingTabContainerView;->performCollapse()V
+Lcom/android/internal/widget/ScrollingTabContainerView;->performExpand()Z
+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
+Lcom/android/internal/widget/SubtitleView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+Lcom/android/internal/widget/SubtitleView;->COLOR_BEVEL_DARK:I
+Lcom/android/internal/widget/SubtitleView;->COLOR_BEVEL_LIGHT:I
+Lcom/android/internal/widget/SubtitleView;->computeMeasurements(I)Z
+Lcom/android/internal/widget/SubtitleView;->INNER_PADDING_RATIO:F
+Lcom/android/internal/widget/SubtitleView;->mAlignment:Landroid/text/Layout$Alignment;
+Lcom/android/internal/widget/SubtitleView;->mBackgroundColor:I
+Lcom/android/internal/widget/SubtitleView;->mCornerRadius:F
+Lcom/android/internal/widget/SubtitleView;->mEdgeColor:I
+Lcom/android/internal/widget/SubtitleView;->mEdgeType:I
+Lcom/android/internal/widget/SubtitleView;->mForegroundColor:I
+Lcom/android/internal/widget/SubtitleView;->mHasMeasurements:Z
+Lcom/android/internal/widget/SubtitleView;->mInnerPaddingX:I
+Lcom/android/internal/widget/SubtitleView;->mLastMeasuredWidth:I
+Lcom/android/internal/widget/SubtitleView;->mLayout:Landroid/text/StaticLayout;
+Lcom/android/internal/widget/SubtitleView;->mLineBounds:Landroid/graphics/RectF;
+Lcom/android/internal/widget/SubtitleView;->mOutlineWidth:F
+Lcom/android/internal/widget/SubtitleView;->mPaint:Landroid/graphics/Paint;
+Lcom/android/internal/widget/SubtitleView;->mShadowOffsetX:F
+Lcom/android/internal/widget/SubtitleView;->mShadowOffsetY:F
+Lcom/android/internal/widget/SubtitleView;->mShadowRadius:F
+Lcom/android/internal/widget/SubtitleView;->mSpacingAdd:F
+Lcom/android/internal/widget/SubtitleView;->mSpacingMult:F
+Lcom/android/internal/widget/SubtitleView;->mText:Landroid/text/SpannableStringBuilder;
+Lcom/android/internal/widget/SubtitleView;->mTextPaint:Landroid/text/TextPaint;
+Lcom/android/internal/widget/SubtitleView;->setAlignment(Landroid/text/Layout$Alignment;)V
+Lcom/android/internal/widget/SubtitleView;->setEdgeColor(I)V
+Lcom/android/internal/widget/SubtitleView;->setEdgeType(I)V
+Lcom/android/internal/widget/SubtitleView;->setForegroundColor(I)V
+Lcom/android/internal/widget/SubtitleView;->setStyle(I)V
+Lcom/android/internal/widget/SubtitleView;->setText(I)V
+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
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->animateToVisibility(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->canShowOverflowMenu()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->canSplit()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->collapseActionView()V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->DEFAULT_FADE_DURATION_MS:J
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->detectDisplayOptions()I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->dismissPopupMenus()V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->ensureSpinner()V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getContext()Landroid/content/Context;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getCustomView()Landroid/view/View;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getDisplayOptions()I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getDropdownItemCount()I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getDropdownSelectedPosition()I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getHeight()I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getMenu()Landroid/view/Menu;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getNavigationMode()I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getSubtitle()Ljava/lang/CharSequence;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getTitle()Ljava/lang/CharSequence;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getViewGroup()Landroid/view/ViewGroup;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->getVisibility()I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->hasEmbeddedTabs()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->hasExpandedActionView()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->hasIcon()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->hasLogo()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->hideOverflowMenu()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->initIndeterminateProgress()V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->initProgress()V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->isOverflowMenuShowing()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->isOverflowMenuShowPending()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->isSplit()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->isTitleTruncated()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mActionMenuPresenter:Landroid/widget/ActionMenuPresenter;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mCustomView:Landroid/view/View;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mDefaultNavigationContentDescription:I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mDefaultNavigationIcon:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mDisplayOpts:I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mHomeDescription:Ljava/lang/CharSequence;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mIcon:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mLogo:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mMenuPrepared:Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mNavIcon:Landroid/graphics/drawable/Drawable;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mNavigationMode:I
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mSpinner:Landroid/widget/Spinner;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mSubtitle:Ljava/lang/CharSequence;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mTabView:Landroid/view/View;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mTitle:Ljava/lang/CharSequence;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mTitleSet:Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mToolbar:Landroid/widget/Toolbar;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->mWindowCallback:Landroid/view/Window$Callback;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->restoreHierarchyState(Landroid/util/SparseArray;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->saveHierarchyState(Landroid/util/SparseArray;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setCollapsible(Z)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setCustomView(Landroid/view/View;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setDefaultNavigationContentDescription(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setDefaultNavigationIcon(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setDisplayOptions(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setDropdownParams(Landroid/widget/SpinnerAdapter;Landroid/widget/AdapterView$OnItemSelectedListener;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setDropdownSelectedPosition(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setEmbeddedTabView(Lcom/android/internal/widget/ScrollingTabContainerView;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setHomeButtonEnabled(Z)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setIcon(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setIcon(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setLogo(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setLogo(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setMenu(Landroid/view/Menu;Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setMenuCallbacks(Lcom/android/internal/view/menu/MenuPresenter$Callback;Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setMenuPrepared()V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setNavigationContentDescription(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setNavigationContentDescription(Ljava/lang/CharSequence;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setNavigationIcon(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setNavigationIcon(Landroid/graphics/drawable/Drawable;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setNavigationMode(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setSplitToolbar(Z)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setSplitView(Landroid/view/ViewGroup;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setSplitWhenNarrow(Z)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setSubtitle(Ljava/lang/CharSequence;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setTitle(Ljava/lang/CharSequence;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setTitleInt(Ljava/lang/CharSequence;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setupAnimatorToVisibility(IJ)Landroid/animation/Animator;
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setVisibility(I)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setWindowCallback(Landroid/view/Window$Callback;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->setWindowTitle(Ljava/lang/CharSequence;)V
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->showOverflowMenu()Z
+Lcom/android/internal/widget/ToolbarWidgetWrapper;->TAG:Ljava/lang/String;
+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
+Lcom/android/internal/widget/VerifyCredentialResponse;-><init>([B)V
+Lcom/android/internal/widget/VerifyCredentialResponse;->CREATOR:Landroid/os/Parcelable$Creator;
+Lcom/android/internal/widget/VerifyCredentialResponse;->ERROR:Lcom/android/internal/widget/VerifyCredentialResponse;
+Lcom/android/internal/widget/VerifyCredentialResponse;->fromGateKeeperResponse(Landroid/service/gatekeeper/GateKeeperResponse;)Lcom/android/internal/widget/VerifyCredentialResponse;
+Lcom/android/internal/widget/VerifyCredentialResponse;->getPayload()[B
+Lcom/android/internal/widget/VerifyCredentialResponse;->getResponseCode()I
+Lcom/android/internal/widget/VerifyCredentialResponse;->getTimeout()I
+Lcom/android/internal/widget/VerifyCredentialResponse;->mPayload:[B
+Lcom/android/internal/widget/VerifyCredentialResponse;->mResponseCode:I
+Lcom/android/internal/widget/VerifyCredentialResponse;->mTimeout:I
+Lcom/android/internal/widget/VerifyCredentialResponse;->OK:Lcom/android/internal/widget/VerifyCredentialResponse;
+Lcom/android/internal/widget/VerifyCredentialResponse;->RESPONSE_ERROR:I
+Lcom/android/internal/widget/VerifyCredentialResponse;->RESPONSE_OK:I
+Lcom/android/internal/widget/VerifyCredentialResponse;->RESPONSE_RETRY:I
+Lcom/android/internal/widget/VerifyCredentialResponse;->setPayload([B)V
+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;
+Lcom/android/okhttp/Address;->connectionSpecs:Ljava/util/List;
+Lcom/android/okhttp/Address;->dns:Lcom/android/okhttp/Dns;
+Lcom/android/okhttp/Address;->getAuthenticator()Lcom/android/okhttp/Authenticator;
+Lcom/android/okhttp/Address;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner;
+Lcom/android/okhttp/Address;->getConnectionSpecs()Ljava/util/List;
+Lcom/android/okhttp/Address;->getDns()Lcom/android/okhttp/Dns;
+Lcom/android/okhttp/Address;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;
+Lcom/android/okhttp/Address;->getProtocols()Ljava/util/List;
+Lcom/android/okhttp/Address;->getProxy()Ljava/net/Proxy;
+Lcom/android/okhttp/Address;->getProxySelector()Ljava/net/ProxySelector;
+Lcom/android/okhttp/Address;->getSocketFactory()Ljavax/net/SocketFactory;
+Lcom/android/okhttp/Address;->getSslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
+Lcom/android/okhttp/Address;->getUriHost()Ljava/lang/String;
+Lcom/android/okhttp/Address;->getUriPort()I
+Lcom/android/okhttp/Address;->hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
+Lcom/android/okhttp/Address;->protocols:Ljava/util/List;
+Lcom/android/okhttp/Address;->proxy:Ljava/net/Proxy;
+Lcom/android/okhttp/Address;->proxySelector:Ljava/net/ProxySelector;
+Lcom/android/okhttp/Address;->socketFactory:Ljavax/net/SocketFactory;
+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;
+Lcom/android/okhttp/AndroidShimResponseCache;->delegate:Lcom/android/okhttp/Cache;
+Lcom/android/okhttp/AndroidShimResponseCache;->delete()V
+Lcom/android/okhttp/AndroidShimResponseCache;->flush()V
+Lcom/android/okhttp/AndroidShimResponseCache;->getCache()Lcom/android/okhttp/Cache;
+Lcom/android/okhttp/AndroidShimResponseCache;->getHitCount()I
+Lcom/android/okhttp/AndroidShimResponseCache;->getNetworkCount()I
+Lcom/android/okhttp/AndroidShimResponseCache;->getRequestCount()I
+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
+Lcom/android/okhttp/Cache$CacheResponseBody;->contentLength:Ljava/lang/String;
+Lcom/android/okhttp/Cache$CacheResponseBody;->contentType()Lcom/android/okhttp/MediaType;
+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
+Lcom/android/okhttp/Cache$Entry;->handshake:Lcom/android/okhttp/Handshake;
+Lcom/android/okhttp/Cache$Entry;->isHttps()Z
+Lcom/android/okhttp/Cache$Entry;->matches(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;)Z
+Lcom/android/okhttp/Cache$Entry;->message:Ljava/lang/String;
+Lcom/android/okhttp/Cache$Entry;->protocol:Lcom/android/okhttp/Protocol;
+Lcom/android/okhttp/Cache$Entry;->readCertificateList(Lcom/android/okhttp/okio/BufferedSource;)Ljava/util/List;
+Lcom/android/okhttp/Cache$Entry;->requestMethod:Ljava/lang/String;
+Lcom/android/okhttp/Cache$Entry;->response(Lcom/android/okhttp/Request;Lcom/android/okhttp/internal/DiskLruCache$Snapshot;)Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Cache$Entry;->responseHeaders:Lcom/android/okhttp/Headers;
+Lcom/android/okhttp/Cache$Entry;->url:Ljava/lang/String;
+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
+Lcom/android/okhttp/Cache;->cache:Lcom/android/okhttp/internal/DiskLruCache;
+Lcom/android/okhttp/Cache;->close()V
+Lcom/android/okhttp/Cache;->delete()V
+Lcom/android/okhttp/Cache;->ENTRY_BODY:I
+Lcom/android/okhttp/Cache;->ENTRY_COUNT:I
+Lcom/android/okhttp/Cache;->ENTRY_METADATA:I
+Lcom/android/okhttp/Cache;->evictAll()V
+Lcom/android/okhttp/Cache;->flush()V
+Lcom/android/okhttp/Cache;->get(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Cache;->getDirectory()Ljava/io/File;
+Lcom/android/okhttp/Cache;->getHitCount()I
+Lcom/android/okhttp/Cache;->getMaxSize()J
+Lcom/android/okhttp/Cache;->getNetworkCount()I
+Lcom/android/okhttp/Cache;->getRequestCount()I
+Lcom/android/okhttp/Cache;->getSize()J
+Lcom/android/okhttp/Cache;->getWriteAbortCount()I
+Lcom/android/okhttp/Cache;->getWriteSuccessCount()I
+Lcom/android/okhttp/Cache;->hitCount:I
+Lcom/android/okhttp/Cache;->initialize()V
+Lcom/android/okhttp/Cache;->internalCache:Lcom/android/okhttp/internal/InternalCache;
+Lcom/android/okhttp/Cache;->isClosed()Z
+Lcom/android/okhttp/Cache;->networkCount:I
+Lcom/android/okhttp/Cache;->put(Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/CacheRequest;
+Lcom/android/okhttp/Cache;->readInt(Lcom/android/okhttp/okio/BufferedSource;)I
+Lcom/android/okhttp/Cache;->remove(Lcom/android/okhttp/Request;)V
+Lcom/android/okhttp/Cache;->requestCount:I
+Lcom/android/okhttp/Cache;->trackConditionalCacheHit()V
+Lcom/android/okhttp/Cache;->trackResponse(Lcom/android/okhttp/internal/http/CacheStrategy;)V
+Lcom/android/okhttp/Cache;->update(Lcom/android/okhttp/Response;Lcom/android/okhttp/Response;)V
+Lcom/android/okhttp/Cache;->urls()Ljava/util/Iterator;
+Lcom/android/okhttp/Cache;->urlToKey(Lcom/android/okhttp/Request;)Ljava/lang/String;
+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;
+Lcom/android/okhttp/CacheControl$Builder;->maxAgeSeconds:I
+Lcom/android/okhttp/CacheControl$Builder;->maxStale(ILjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/CacheControl$Builder;
+Lcom/android/okhttp/CacheControl$Builder;->maxStaleSeconds:I
+Lcom/android/okhttp/CacheControl$Builder;->minFresh(ILjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/CacheControl$Builder;
+Lcom/android/okhttp/CacheControl$Builder;->minFreshSeconds:I
+Lcom/android/okhttp/CacheControl$Builder;->noCache()Lcom/android/okhttp/CacheControl$Builder;
+Lcom/android/okhttp/CacheControl$Builder;->noCache:Z
+Lcom/android/okhttp/CacheControl$Builder;->noStore()Lcom/android/okhttp/CacheControl$Builder;
+Lcom/android/okhttp/CacheControl$Builder;->noStore:Z
+Lcom/android/okhttp/CacheControl$Builder;->noTransform()Lcom/android/okhttp/CacheControl$Builder;
+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;
+Lcom/android/okhttp/CacheControl;->FORCE_NETWORK:Lcom/android/okhttp/CacheControl;
+Lcom/android/okhttp/CacheControl;->headerValue()Ljava/lang/String;
+Lcom/android/okhttp/CacheControl;->headerValue:Ljava/lang/String;
+Lcom/android/okhttp/CacheControl;->isPrivate()Z
+Lcom/android/okhttp/CacheControl;->isPrivate:Z
+Lcom/android/okhttp/CacheControl;->isPublic()Z
+Lcom/android/okhttp/CacheControl;->isPublic:Z
+Lcom/android/okhttp/CacheControl;->maxAgeSeconds()I
+Lcom/android/okhttp/CacheControl;->maxAgeSeconds:I
+Lcom/android/okhttp/CacheControl;->maxStaleSeconds()I
+Lcom/android/okhttp/CacheControl;->maxStaleSeconds:I
+Lcom/android/okhttp/CacheControl;->minFreshSeconds()I
+Lcom/android/okhttp/CacheControl;->minFreshSeconds:I
+Lcom/android/okhttp/CacheControl;->mustRevalidate()Z
+Lcom/android/okhttp/CacheControl;->mustRevalidate:Z
+Lcom/android/okhttp/CacheControl;->noCache()Z
+Lcom/android/okhttp/CacheControl;->noCache:Z
+Lcom/android/okhttp/CacheControl;->noStore()Z
+Lcom/android/okhttp/CacheControl;->noStore:Z
+Lcom/android/okhttp/CacheControl;->noTransform()Z
+Lcom/android/okhttp/CacheControl;->noTransform:Z
+Lcom/android/okhttp/CacheControl;->onlyIfCached()Z
+Lcom/android/okhttp/CacheControl;->onlyIfCached:Z
+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
+Lcom/android/okhttp/Call$AsyncCall;->get()Lcom/android/okhttp/Call;
+Lcom/android/okhttp/Call$AsyncCall;->host()Ljava/lang/String;
+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
+Lcom/android/okhttp/Call;->client:Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/Call;->engine:Lcom/android/okhttp/internal/http/HttpEngine;
+Lcom/android/okhttp/Call;->enqueue(Lcom/android/okhttp/Callback;)V
+Lcom/android/okhttp/Call;->enqueue(Lcom/android/okhttp/Callback;Z)V
+Lcom/android/okhttp/Call;->execute()Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Call;->executed:Z
+Lcom/android/okhttp/Call;->getResponse(Lcom/android/okhttp/Request;Z)Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Call;->getResponseWithInterceptorChain(Z)Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Call;->isCanceled()Z
+Lcom/android/okhttp/Call;->isExecuted()Z
+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;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_256_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_EXPORT_WITH_RC4_40_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_256_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_RC4_128_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_EMPTY_RENEGOTIATION_INFO_SCSV:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_EXPORT_WITH_RC4_40_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_EXPORT_WITH_RC4_40_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_3DES_EDE_CBC_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_DES_CBC_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_RC4_128_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_EXPORT_WITH_DES40_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_EXPORT_WITH_RC4_40_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_256_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_NULL_MD5:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_NULL_SHA256:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
+Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_RC4_128_MD5:Lcom/android/okhttp/CipherSuite;
+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
+Lcom/android/okhttp/ConnectionPool;->cleanupRunnable:Ljava/lang/Runnable;
+Lcom/android/okhttp/ConnectionPool;->connectionBecameIdle(Lcom/android/okhttp/internal/io/RealConnection;)Z
+Lcom/android/okhttp/ConnectionPool;->DEFAULT_KEEP_ALIVE_DURATION_MS:J
+Lcom/android/okhttp/ConnectionPool;->evictAll()V
+Lcom/android/okhttp/ConnectionPool;->executor:Ljava/util/concurrent/Executor;
+Lcom/android/okhttp/ConnectionPool;->get(Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/http/StreamAllocation;)Lcom/android/okhttp/internal/io/RealConnection;
+Lcom/android/okhttp/ConnectionPool;->getConnectionCount()I
+Lcom/android/okhttp/ConnectionPool;->getDefault()Lcom/android/okhttp/ConnectionPool;
+Lcom/android/okhttp/ConnectionPool;->getHttpConnectionCount()I
+Lcom/android/okhttp/ConnectionPool;->getIdleConnectionCount()I
+Lcom/android/okhttp/ConnectionPool;->getMultiplexedConnectionCount()I
+Lcom/android/okhttp/ConnectionPool;->getSpdyConnectionCount()I
+Lcom/android/okhttp/ConnectionPool;->pruneAndGetAllocationCount(Lcom/android/okhttp/internal/io/RealConnection;J)I
+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;
+Lcom/android/okhttp/ConnectionSpec;->cipherSuites()Ljava/util/List;
+Lcom/android/okhttp/ConnectionSpec;->cipherSuites:[Ljava/lang/String;
+Lcom/android/okhttp/ConnectionSpec;->CLEARTEXT:Lcom/android/okhttp/ConnectionSpec;
+Lcom/android/okhttp/ConnectionSpec;->COMPATIBLE_TLS:Lcom/android/okhttp/ConnectionSpec;
+Lcom/android/okhttp/ConnectionSpec;->isCompatible(Ljavax/net/ssl/SSLSocket;)Z
+Lcom/android/okhttp/ConnectionSpec;->isTls()Z
+Lcom/android/okhttp/ConnectionSpec;->MODERN_TLS:Lcom/android/okhttp/ConnectionSpec;
+Lcom/android/okhttp/ConnectionSpec;->nonEmptyIntersection([Ljava/lang/String;[Ljava/lang/String;)Z
+Lcom/android/okhttp/ConnectionSpec;->supportedSpec(Ljavax/net/ssl/SSLSocket;Z)Lcom/android/okhttp/ConnectionSpec;
+Lcom/android/okhttp/ConnectionSpec;->supportsTlsExtensions()Z
+Lcom/android/okhttp/ConnectionSpec;->supportsTlsExtensions:Z
+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
+Lcom/android/okhttp/Dispatcher;->enqueue(Lcom/android/okhttp/Call$AsyncCall;)V
+Lcom/android/okhttp/Dispatcher;->executed(Lcom/android/okhttp/Call;)V
+Lcom/android/okhttp/Dispatcher;->executedCalls:Ljava/util/Deque;
+Lcom/android/okhttp/Dispatcher;->executorService:Ljava/util/concurrent/ExecutorService;
+Lcom/android/okhttp/Dispatcher;->finished(Lcom/android/okhttp/Call$AsyncCall;)V
+Lcom/android/okhttp/Dispatcher;->finished(Lcom/android/okhttp/Call;)V
+Lcom/android/okhttp/Dispatcher;->getExecutorService()Ljava/util/concurrent/ExecutorService;
+Lcom/android/okhttp/Dispatcher;->getMaxRequests()I
+Lcom/android/okhttp/Dispatcher;->getMaxRequestsPerHost()I
+Lcom/android/okhttp/Dispatcher;->getQueuedCallCount()I
+Lcom/android/okhttp/Dispatcher;->getRunningCallCount()I
+Lcom/android/okhttp/Dispatcher;->maxRequests:I
+Lcom/android/okhttp/Dispatcher;->maxRequestsPerHost:I
+Lcom/android/okhttp/Dispatcher;->promoteCalls()V
+Lcom/android/okhttp/Dispatcher;->readyCalls:Ljava/util/Deque;
+Lcom/android/okhttp/Dispatcher;->runningCalls:Ljava/util/Deque;
+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;
+Lcom/android/okhttp/Handshake;->get(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Lcom/android/okhttp/Handshake;
+Lcom/android/okhttp/Handshake;->get(Ljavax/net/ssl/SSLSession;)Lcom/android/okhttp/Handshake;
+Lcom/android/okhttp/Handshake;->localCertificates()Ljava/util/List;
+Lcom/android/okhttp/Handshake;->localCertificates:Ljava/util/List;
+Lcom/android/okhttp/Handshake;->localPrincipal()Ljava/security/Principal;
+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;
+Lcom/android/okhttp/Headers$Builder;->addLenient(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
+Lcom/android/okhttp/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
+Lcom/android/okhttp/Headers$Builder;->build()Lcom/android/okhttp/Headers;
+Lcom/android/okhttp/Headers$Builder;->checkNameAndValue(Ljava/lang/String;Ljava/lang/String;)V
+Lcom/android/okhttp/Headers$Builder;->get(Ljava/lang/String;)Ljava/lang/String;
+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;
+Lcom/android/okhttp/Headers;->get([Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/okhttp/Headers;->getDate(Ljava/lang/String;)Ljava/util/Date;
+Lcom/android/okhttp/Headers;->name(I)Ljava/lang/String;
+Lcom/android/okhttp/Headers;->names()Ljava/util/Set;
+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;
+Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->SUCCESS:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
+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;
+Lcom/android/okhttp/HttpUrl$Builder;->addPathSegment(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->addQueryParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->canonicalizeHost(Ljava/lang/String;II)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl$Builder;->containsInvalidHostnameAsciiCodes(Ljava/lang/String;)Z
+Lcom/android/okhttp/HttpUrl$Builder;->decodeIpv4Suffix(Ljava/lang/String;II[BI)Z
+Lcom/android/okhttp/HttpUrl$Builder;->decodeIpv6(Ljava/lang/String;II)Ljava/net/InetAddress;
+Lcom/android/okhttp/HttpUrl$Builder;->domainToAscii(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl$Builder;->effectivePort()I
+Lcom/android/okhttp/HttpUrl$Builder;->encodedFragment(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedFragment:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedPassword(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedPassword:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedPath(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedPathSegments:Ljava/util/List;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedQuery(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedQueryNamesAndValues:Ljava/util/List;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedUsername(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->encodedUsername:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl$Builder;->fragment(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->host(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->host:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl$Builder;->inet6AddressToAscii([B)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl$Builder;->isDot(Ljava/lang/String;)Z
+Lcom/android/okhttp/HttpUrl$Builder;->isDotDot(Ljava/lang/String;)Z
+Lcom/android/okhttp/HttpUrl$Builder;->parse(Lcom/android/okhttp/HttpUrl;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
+Lcom/android/okhttp/HttpUrl$Builder;->parsePort(Ljava/lang/String;II)I
+Lcom/android/okhttp/HttpUrl$Builder;->password(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->pop()V
+Lcom/android/okhttp/HttpUrl$Builder;->port(I)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->port:I
+Lcom/android/okhttp/HttpUrl$Builder;->portColonOffset(Ljava/lang/String;II)I
+Lcom/android/okhttp/HttpUrl$Builder;->push(Ljava/lang/String;IIZZ)V
+Lcom/android/okhttp/HttpUrl$Builder;->query(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->reencodeForUri()Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->removeAllCanonicalQueryParameters(Ljava/lang/String;)V
+Lcom/android/okhttp/HttpUrl$Builder;->removeAllEncodedQueryParameters(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->removeAllQueryParameters(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->removePathSegment(I)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->resolvePath(Ljava/lang/String;II)V
+Lcom/android/okhttp/HttpUrl$Builder;->scheme(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->scheme:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl$Builder;->schemeDelimiterOffset(Ljava/lang/String;II)I
+Lcom/android/okhttp/HttpUrl$Builder;->setEncodedPathSegment(ILjava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->setEncodedQueryParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->setPathSegment(ILjava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->setQueryParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
+Lcom/android/okhttp/HttpUrl$Builder;->skipLeadingAsciiWhitespace(Ljava/lang/String;II)I
+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;
+Lcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;Ljava/lang/String;ZZZZ)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->decodeHexDigit(C)I
+Lcom/android/okhttp/HttpUrl;->defaultPort(Ljava/lang/String;)I
+Lcom/android/okhttp/HttpUrl;->delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I
+Lcom/android/okhttp/HttpUrl;->encodedFragment()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->encodedPassword()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->encodedPathSegments()Ljava/util/List;
+Lcom/android/okhttp/HttpUrl;->encodedQuery()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->encodedUsername()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->FORM_ENCODE_SET:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->fragment()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->fragment:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->FRAGMENT_ENCODE_SET:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->FRAGMENT_ENCODE_SET_URI:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->get(Ljava/net/URI;)Lcom/android/okhttp/HttpUrl;
+Lcom/android/okhttp/HttpUrl;->get(Ljava/net/URL;)Lcom/android/okhttp/HttpUrl;
+Lcom/android/okhttp/HttpUrl;->getChecked(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
+Lcom/android/okhttp/HttpUrl;->HEX_DIGITS:[C
+Lcom/android/okhttp/HttpUrl;->host()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->host:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->isHttps()Z
+Lcom/android/okhttp/HttpUrl;->namesAndValuesToQueryString(Ljava/lang/StringBuilder;Ljava/util/List;)V
+Lcom/android/okhttp/HttpUrl;->password()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->password:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->PASSWORD_ENCODE_SET:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->pathSegments()Ljava/util/List;
+Lcom/android/okhttp/HttpUrl;->pathSegments:Ljava/util/List;
+Lcom/android/okhttp/HttpUrl;->pathSegmentsToString(Ljava/lang/StringBuilder;Ljava/util/List;)V
+Lcom/android/okhttp/HttpUrl;->pathSize()I
+Lcom/android/okhttp/HttpUrl;->PATH_SEGMENT_ENCODE_SET:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->PATH_SEGMENT_ENCODE_SET_URI:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->percentDecode(Lcom/android/okhttp/okio/Buffer;Ljava/lang/String;IIZ)V
+Lcom/android/okhttp/HttpUrl;->percentDecode(Ljava/lang/String;IIZ)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->percentDecode(Ljava/lang/String;Z)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->percentDecode(Ljava/util/List;Z)Ljava/util/List;
+Lcom/android/okhttp/HttpUrl;->percentEncoded(Ljava/lang/String;II)Z
+Lcom/android/okhttp/HttpUrl;->port()I
+Lcom/android/okhttp/HttpUrl;->port:I
+Lcom/android/okhttp/HttpUrl;->queryNamesAndValues:Ljava/util/List;
+Lcom/android/okhttp/HttpUrl;->queryParameter(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->queryParameterName(I)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->queryParameterNames()Ljava/util/Set;
+Lcom/android/okhttp/HttpUrl;->queryParameterValue(I)Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->queryParameterValues(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/okhttp/HttpUrl;->querySize()I
+Lcom/android/okhttp/HttpUrl;->queryStringToNamesAndValues(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/okhttp/HttpUrl;->QUERY_COMPONENT_ENCODE_SET:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->QUERY_COMPONENT_ENCODE_SET_URI:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->QUERY_ENCODE_SET:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->resolve(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
+Lcom/android/okhttp/HttpUrl;->scheme()Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->scheme:Ljava/lang/String;
+Lcom/android/okhttp/HttpUrl;->uri()Ljava/net/URI;
+Lcom/android/okhttp/HttpUrl;->url()Ljava/net/URL;
+Lcom/android/okhttp/HttpUrl;->url:Ljava/lang/String;
+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;
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->cacheResponseAge()J
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->computeFreshnessLifetime()J
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->etag:Ljava/lang/String;
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->expires:Ljava/util/Date;
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->get()Lcom/android/okhttp/internal/http/CacheStrategy;
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->getCandidate()Lcom/android/okhttp/internal/http/CacheStrategy;
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->hasConditions(Lcom/android/okhttp/Request;)Z
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->isFreshnessLifetimeHeuristic()Z
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->lastModified:Ljava/util/Date;
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->lastModifiedString:Ljava/lang/String;
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->nowMillis:J
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->receivedResponseMillis:J
+Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->request:Lcom/android/okhttp/Request;
+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
+Lcom/android/okhttp/internal/http/HttpEngine;->cacheResponse:Lcom/android/okhttp/Response;
+Lcom/android/okhttp/internal/http/HttpEngine;->cacheStrategy:Lcom/android/okhttp/internal/http/CacheStrategy;
+Lcom/android/okhttp/internal/http/HttpEngine;->cacheWritingResponse(Lcom/android/okhttp/internal/http/CacheRequest;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
+Lcom/android/okhttp/internal/http/HttpEngine;->callerWritesRequestBody:Z
+Lcom/android/okhttp/internal/http/HttpEngine;->cancel()V
+Lcom/android/okhttp/internal/http/HttpEngine;->client:Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/internal/http/HttpEngine;->close()Lcom/android/okhttp/internal/http/StreamAllocation;
+Lcom/android/okhttp/internal/http/HttpEngine;->combine(Lcom/android/okhttp/Headers;Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Headers;
+Lcom/android/okhttp/internal/http/HttpEngine;->connect()Lcom/android/okhttp/internal/http/HttpStream;
+Lcom/android/okhttp/internal/http/HttpEngine;->createAddress(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;)Lcom/android/okhttp/Address;
+Lcom/android/okhttp/internal/http/HttpEngine;->EMPTY_BODY:Lcom/android/okhttp/ResponseBody;
+Lcom/android/okhttp/internal/http/HttpEngine;->followUpRequest()Lcom/android/okhttp/Request;
+Lcom/android/okhttp/internal/http/HttpEngine;->forWebSocket:Z
+Lcom/android/okhttp/internal/http/HttpEngine;->getBufferedRequestBody()Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/internal/http/HttpEngine;->getRequest()Lcom/android/okhttp/Request;
+Lcom/android/okhttp/internal/http/HttpEngine;->getRequestBody()Lcom/android/okhttp/okio/Sink;
+Lcom/android/okhttp/internal/http/HttpEngine;->getResponse()Lcom/android/okhttp/Response;
+Lcom/android/okhttp/internal/http/HttpEngine;->hasBody(Lcom/android/okhttp/Response;)Z
+Lcom/android/okhttp/internal/http/HttpEngine;->MAX_FOLLOW_UPS:I
+Lcom/android/okhttp/internal/http/HttpEngine;->maybeCache()V
+Lcom/android/okhttp/internal/http/HttpEngine;->permitsRequestBody(Lcom/android/okhttp/Request;)Z
+Lcom/android/okhttp/internal/http/HttpEngine;->readNetworkResponse()Lcom/android/okhttp/Response;
+Lcom/android/okhttp/internal/http/HttpEngine;->receiveHeaders(Lcom/android/okhttp/Headers;)V
+Lcom/android/okhttp/internal/http/HttpEngine;->recover(Lcom/android/okhttp/internal/http/RouteException;)Lcom/android/okhttp/internal/http/HttpEngine;
+Lcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;)Lcom/android/okhttp/internal/http/HttpEngine;
+Lcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/internal/http/HttpEngine;
+Lcom/android/okhttp/internal/http/HttpEngine;->releaseStreamAllocation()V
+Lcom/android/okhttp/internal/http/HttpEngine;->requestBodyOut:Lcom/android/okhttp/okio/Sink;
+Lcom/android/okhttp/internal/http/HttpEngine;->sameConnection(Lcom/android/okhttp/HttpUrl;)Z
+Lcom/android/okhttp/internal/http/HttpEngine;->storeRequest:Lcom/android/okhttp/internal/http/CacheRequest;
+Lcom/android/okhttp/internal/http/HttpEngine;->streamAllocation:Lcom/android/okhttp/internal/http/StreamAllocation;
+Lcom/android/okhttp/internal/http/HttpEngine;->stripBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
+Lcom/android/okhttp/internal/http/HttpEngine;->transparentGzip:Z
+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
+Lcom/android/okhttp/internal/http/HttpStream;->finishRequest()V
+Lcom/android/okhttp/internal/http/HttpStream;->openResponseBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/ResponseBody;
+Lcom/android/okhttp/internal/http/HttpStream;->readResponseHeaders()Lcom/android/okhttp/Response$Builder;
+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
+Lcom/android/okhttp/internal/http/RetryableSink;->content:Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/internal/http/RetryableSink;->contentLength()J
+Lcom/android/okhttp/internal/http/RetryableSink;->limit:I
+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
+Lcom/android/okhttp/internal/http/RouteSelector;->getHostString(Ljava/net/InetSocketAddress;)Ljava/lang/String;
+Lcom/android/okhttp/internal/http/RouteSelector;->hasNextInetSocketAddress()Z
+Lcom/android/okhttp/internal/http/RouteSelector;->hasNextPostponed()Z
+Lcom/android/okhttp/internal/http/RouteSelector;->hasNextProxy()Z
+Lcom/android/okhttp/internal/http/RouteSelector;->inetSocketAddresses:Ljava/util/List;
+Lcom/android/okhttp/internal/http/RouteSelector;->lastInetSocketAddress:Ljava/net/InetSocketAddress;
+Lcom/android/okhttp/internal/http/RouteSelector;->lastProxy:Ljava/net/Proxy;
+Lcom/android/okhttp/internal/http/RouteSelector;->next()Lcom/android/okhttp/Route;
+Lcom/android/okhttp/internal/http/RouteSelector;->nextInetSocketAddress()Ljava/net/InetSocketAddress;
+Lcom/android/okhttp/internal/http/RouteSelector;->nextInetSocketAddressIndex:I
+Lcom/android/okhttp/internal/http/RouteSelector;->nextPostponed()Lcom/android/okhttp/Route;
+Lcom/android/okhttp/internal/http/RouteSelector;->nextProxy()Ljava/net/Proxy;
+Lcom/android/okhttp/internal/http/RouteSelector;->nextProxyIndex:I
+Lcom/android/okhttp/internal/http/RouteSelector;->postponedRoutes:Ljava/util/List;
+Lcom/android/okhttp/internal/http/RouteSelector;->proxies:Ljava/util/List;
+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;
+Lcom/android/okhttp/internal/http/StreamAllocation;->cancel()V
+Lcom/android/okhttp/internal/http/StreamAllocation;->canceled:Z
+Lcom/android/okhttp/internal/http/StreamAllocation;->connection()Lcom/android/okhttp/internal/io/RealConnection;
+Lcom/android/okhttp/internal/http/StreamAllocation;->connection:Lcom/android/okhttp/internal/io/RealConnection;
+Lcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed()V
+Lcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed(Ljava/io/IOException;)V
+Lcom/android/okhttp/internal/http/StreamAllocation;->connectionPool:Lcom/android/okhttp/ConnectionPool;
+Lcom/android/okhttp/internal/http/StreamAllocation;->deallocate(ZZZ)V
+Lcom/android/okhttp/internal/http/StreamAllocation;->findConnection(IIIZ)Lcom/android/okhttp/internal/io/RealConnection;
+Lcom/android/okhttp/internal/http/StreamAllocation;->findHealthyConnection(IIIZZ)Lcom/android/okhttp/internal/io/RealConnection;
+Lcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Lcom/android/okhttp/internal/http/RouteException;)Z
+Lcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Ljava/io/IOException;)Z
+Lcom/android/okhttp/internal/http/StreamAllocation;->newStream(IIIZZ)Lcom/android/okhttp/internal/http/HttpStream;
+Lcom/android/okhttp/internal/http/StreamAllocation;->noNewStreams()V
+Lcom/android/okhttp/internal/http/StreamAllocation;->recover(Lcom/android/okhttp/internal/http/RouteException;)Z
+Lcom/android/okhttp/internal/http/StreamAllocation;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Z
+Lcom/android/okhttp/internal/http/StreamAllocation;->release()V
+Lcom/android/okhttp/internal/http/StreamAllocation;->release(Lcom/android/okhttp/internal/io/RealConnection;)V
+Lcom/android/okhttp/internal/http/StreamAllocation;->released:Z
+Lcom/android/okhttp/internal/http/StreamAllocation;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase;
+Lcom/android/okhttp/internal/http/StreamAllocation;->routeSelector:Lcom/android/okhttp/internal/http/RouteSelector;
+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;
+Lcom/android/okhttp/MediaType;->charset:Ljava/lang/String;
+Lcom/android/okhttp/MediaType;->mediaType:Ljava/lang/String;
+Lcom/android/okhttp/MediaType;->PARAMETER:Ljava/util/regex/Pattern;
+Lcom/android/okhttp/MediaType;->parse(Ljava/lang/String;)Lcom/android/okhttp/MediaType;
+Lcom/android/okhttp/MediaType;->QUOTED:Ljava/lang/String;
+Lcom/android/okhttp/MediaType;->subtype()Ljava/lang/String;
+Lcom/android/okhttp/MediaType;->subtype:Ljava/lang/String;
+Lcom/android/okhttp/MediaType;->TOKEN:Ljava/lang/String;
+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;
+Lcom/android/okhttp/OkHttpClient;->cancel(Ljava/lang/Object;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->certificatePinner:Lcom/android/okhttp/CertificatePinner;
+Lcom/android/okhttp/OkHttpClient;->connectionSpecs:Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->connectTimeout:I
+Lcom/android/okhttp/OkHttpClient;->cookieHandler:Ljava/net/CookieHandler;
+Lcom/android/okhttp/OkHttpClient;->copyWithDefaults()Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->defaultSslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
+Lcom/android/okhttp/OkHttpClient;->DEFAULT_CONNECTION_SPECS:Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->dispatcher:Lcom/android/okhttp/Dispatcher;
+Lcom/android/okhttp/OkHttpClient;->followRedirects:Z
+Lcom/android/okhttp/OkHttpClient;->followSslRedirects:Z
+Lcom/android/okhttp/OkHttpClient;->getAuthenticator()Lcom/android/okhttp/Authenticator;
+Lcom/android/okhttp/OkHttpClient;->getCache()Lcom/android/okhttp/Cache;
+Lcom/android/okhttp/OkHttpClient;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner;
+Lcom/android/okhttp/OkHttpClient;->getConnectionSpecs()Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->getConnectTimeout()I
+Lcom/android/okhttp/OkHttpClient;->getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
+Lcom/android/okhttp/OkHttpClient;->getDispatcher()Lcom/android/okhttp/Dispatcher;
+Lcom/android/okhttp/OkHttpClient;->getDns()Lcom/android/okhttp/Dns;
+Lcom/android/okhttp/OkHttpClient;->getFollowRedirects()Z
+Lcom/android/okhttp/OkHttpClient;->getFollowSslRedirects()Z
+Lcom/android/okhttp/OkHttpClient;->getProtocols()Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->getReadTimeout()I
+Lcom/android/okhttp/OkHttpClient;->getRetryOnConnectionFailure()Z
+Lcom/android/okhttp/OkHttpClient;->getSocketFactory()Ljavax/net/SocketFactory;
+Lcom/android/okhttp/OkHttpClient;->getWriteTimeout()I
+Lcom/android/okhttp/OkHttpClient;->hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
+Lcom/android/okhttp/OkHttpClient;->interceptors()Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->interceptors:Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->internalCache()Lcom/android/okhttp/internal/InternalCache;
+Lcom/android/okhttp/OkHttpClient;->internalCache:Lcom/android/okhttp/internal/InternalCache;
+Lcom/android/okhttp/OkHttpClient;->networkInterceptors()Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->networkInterceptors:Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->newCall(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Call;
+Lcom/android/okhttp/OkHttpClient;->protocols:Ljava/util/List;
+Lcom/android/okhttp/OkHttpClient;->proxy:Ljava/net/Proxy;
+Lcom/android/okhttp/OkHttpClient;->proxySelector:Ljava/net/ProxySelector;
+Lcom/android/okhttp/OkHttpClient;->readTimeout:I
+Lcom/android/okhttp/OkHttpClient;->retryOnConnectionFailure:Z
+Lcom/android/okhttp/OkHttpClient;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase;
+Lcom/android/okhttp/OkHttpClient;->routeDatabase:Lcom/android/okhttp/internal/RouteDatabase;
+Lcom/android/okhttp/OkHttpClient;->setAuthenticator(Lcom/android/okhttp/Authenticator;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setCache(Lcom/android/okhttp/Cache;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setCertificatePinner(Lcom/android/okhttp/CertificatePinner;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setConnectionPool(Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setConnectionSpecs(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setConnectTimeout(JLjava/util/concurrent/TimeUnit;)V
+Lcom/android/okhttp/OkHttpClient;->setCookieHandler(Ljava/net/CookieHandler;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setDispatcher(Lcom/android/okhttp/Dispatcher;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setDns(Lcom/android/okhttp/Dns;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setFollowRedirects(Z)V
+Lcom/android/okhttp/OkHttpClient;->setFollowSslRedirects(Z)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setInternalCache(Lcom/android/okhttp/internal/InternalCache;)V
+Lcom/android/okhttp/OkHttpClient;->setProxy(Ljava/net/Proxy;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setProxySelector(Ljava/net/ProxySelector;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setReadTimeout(JLjava/util/concurrent/TimeUnit;)V
+Lcom/android/okhttp/OkHttpClient;->setSocketFactory(Ljavax/net/SocketFactory;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setSslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)Lcom/android/okhttp/OkHttpClient;
+Lcom/android/okhttp/OkHttpClient;->setWriteTimeout(JLjava/util/concurrent/TimeUnit;)V
+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
+Lcom/android/okhttp/okio/AsyncTimeout;->enter()V
+Lcom/android/okhttp/okio/AsyncTimeout;->exit()Z
+Lcom/android/okhttp/okio/AsyncTimeout;->exit(Ljava/io/IOException;)Ljava/io/IOException;
+Lcom/android/okhttp/okio/AsyncTimeout;->exit(Z)V
+Lcom/android/okhttp/okio/AsyncTimeout;->head:Lcom/android/okhttp/okio/AsyncTimeout;
+Lcom/android/okhttp/okio/AsyncTimeout;->inQueue:Z
+Lcom/android/okhttp/okio/AsyncTimeout;->newTimeoutException(Ljava/io/IOException;)Ljava/io/IOException;
+Lcom/android/okhttp/okio/AsyncTimeout;->next:Lcom/android/okhttp/okio/AsyncTimeout;
+Lcom/android/okhttp/okio/AsyncTimeout;->remainingNanos(J)J
+Lcom/android/okhttp/okio/AsyncTimeout;->scheduleTimeout(Lcom/android/okhttp/okio/AsyncTimeout;JZ)V
+Lcom/android/okhttp/okio/AsyncTimeout;->sink(Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/okio/Sink;
+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
+Lcom/android/okhttp/okio/Buffer;->completeSegmentByteCount()J
+Lcom/android/okhttp/okio/Buffer;->copyTo(Lcom/android/okhttp/okio/Buffer;JJ)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->copyTo(Ljava/io/OutputStream;)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->copyTo(Ljava/io/OutputStream;JJ)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->DIGITS:[B
+Lcom/android/okhttp/okio/Buffer;->emit()Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->emitCompleteSegments()Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->emitCompleteSegments()Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->exhausted()Z
+Lcom/android/okhttp/okio/Buffer;->getByte(J)B
+Lcom/android/okhttp/okio/Buffer;->head:Lcom/android/okhttp/okio/Segment;
+Lcom/android/okhttp/okio/Buffer;->indexOf(B)J
+Lcom/android/okhttp/okio/Buffer;->indexOf(BJ)J
+Lcom/android/okhttp/okio/Buffer;->indexOf(Lcom/android/okhttp/okio/ByteString;)J
+Lcom/android/okhttp/okio/Buffer;->indexOf(Lcom/android/okhttp/okio/ByteString;J)J
+Lcom/android/okhttp/okio/Buffer;->indexOfElement(Lcom/android/okhttp/okio/ByteString;)J
+Lcom/android/okhttp/okio/Buffer;->indexOfElement(Lcom/android/okhttp/okio/ByteString;J)J
+Lcom/android/okhttp/okio/Buffer;->inputStream()Ljava/io/InputStream;
+Lcom/android/okhttp/okio/Buffer;->outputStream()Ljava/io/OutputStream;
+Lcom/android/okhttp/okio/Buffer;->rangeEquals(JLcom/android/okhttp/okio/ByteString;)Z
+Lcom/android/okhttp/okio/Buffer;->read(Lcom/android/okhttp/okio/Buffer;J)J
+Lcom/android/okhttp/okio/Buffer;->read([B)I
+Lcom/android/okhttp/okio/Buffer;->read([BII)I
+Lcom/android/okhttp/okio/Buffer;->readAll(Lcom/android/okhttp/okio/Sink;)J
+Lcom/android/okhttp/okio/Buffer;->readByte()B
+Lcom/android/okhttp/okio/Buffer;->readByteArray()[B
+Lcom/android/okhttp/okio/Buffer;->readByteArray(J)[B
+Lcom/android/okhttp/okio/Buffer;->readByteString()Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/Buffer;->readByteString(J)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/Buffer;->readDecimalLong()J
+Lcom/android/okhttp/okio/Buffer;->readFrom(Ljava/io/InputStream;)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->readFrom(Ljava/io/InputStream;J)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->readFrom(Ljava/io/InputStream;JZ)V
+Lcom/android/okhttp/okio/Buffer;->readFully(Lcom/android/okhttp/okio/Buffer;J)V
+Lcom/android/okhttp/okio/Buffer;->readFully([B)V
+Lcom/android/okhttp/okio/Buffer;->readHexadecimalUnsignedLong()J
+Lcom/android/okhttp/okio/Buffer;->readInt()I
+Lcom/android/okhttp/okio/Buffer;->readIntLe()I
+Lcom/android/okhttp/okio/Buffer;->readLong()J
+Lcom/android/okhttp/okio/Buffer;->readLongLe()J
+Lcom/android/okhttp/okio/Buffer;->readShort()S
+Lcom/android/okhttp/okio/Buffer;->readShortLe()S
+Lcom/android/okhttp/okio/Buffer;->readString(JLjava/nio/charset/Charset;)Ljava/lang/String;
+Lcom/android/okhttp/okio/Buffer;->readString(Ljava/nio/charset/Charset;)Ljava/lang/String;
+Lcom/android/okhttp/okio/Buffer;->readUtf8()Ljava/lang/String;
+Lcom/android/okhttp/okio/Buffer;->readUtf8(J)Ljava/lang/String;
+Lcom/android/okhttp/okio/Buffer;->readUtf8CodePoint()I
+Lcom/android/okhttp/okio/Buffer;->readUtf8Line()Ljava/lang/String;
+Lcom/android/okhttp/okio/Buffer;->readUtf8Line(J)Ljava/lang/String;
+Lcom/android/okhttp/okio/Buffer;->readUtf8LineStrict()Ljava/lang/String;
+Lcom/android/okhttp/okio/Buffer;->REPLACEMENT_CHARACTER:I
+Lcom/android/okhttp/okio/Buffer;->request(J)Z
+Lcom/android/okhttp/okio/Buffer;->require(J)V
+Lcom/android/okhttp/okio/Buffer;->segmentSizes()Ljava/util/List;
+Lcom/android/okhttp/okio/Buffer;->size()J
+Lcom/android/okhttp/okio/Buffer;->size:J
+Lcom/android/okhttp/okio/Buffer;->skip(J)V
+Lcom/android/okhttp/okio/Buffer;->snapshot()Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/Buffer;->snapshot(I)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/Buffer;->timeout()Lcom/android/okhttp/okio/Timeout;
+Lcom/android/okhttp/okio/Buffer;->writableSegment(I)Lcom/android/okhttp/okio/Segment;
+Lcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/Buffer;J)V
+Lcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/ByteString;)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/ByteString;)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/Source;J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->write([B)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->write([B)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->write([BII)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->write([BII)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeAll(Lcom/android/okhttp/okio/Source;)J
+Lcom/android/okhttp/okio/Buffer;->writeByte(I)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeByte(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeDecimalLong(J)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeDecimalLong(J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeInt(I)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeInt(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeIntLe(I)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeIntLe(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeLong(J)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeLong(J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeLongLe(J)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeLongLe(J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeShort(I)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeShort(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeShortLe(I)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeShortLe(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeString(Ljava/lang/String;IILjava/nio/charset/Charset;)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeString(Ljava/lang/String;IILjava/nio/charset/Charset;)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeString(Ljava/lang/String;Ljava/nio/charset/Charset;)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeString(Ljava/lang/String;Ljava/nio/charset/Charset;)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeTo(Ljava/io/OutputStream;)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeTo(Ljava/io/OutputStream;J)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/Buffer;
+Lcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/Buffer;
+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;
+Lcom/android/okhttp/okio/BufferedSink;->outputStream()Ljava/io/OutputStream;
+Lcom/android/okhttp/okio/BufferedSink;->write(Lcom/android/okhttp/okio/ByteString;)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->write(Lcom/android/okhttp/okio/Source;J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->write([B)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->write([BII)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeAll(Lcom/android/okhttp/okio/Source;)J
+Lcom/android/okhttp/okio/BufferedSink;->writeByte(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeDecimalLong(J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeInt(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeIntLe(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeLong(J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeLongLe(J)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeShort(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeShortLe(I)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeString(Ljava/lang/String;IILjava/nio/charset/Charset;)Lcom/android/okhttp/okio/BufferedSink;
+Lcom/android/okhttp/okio/BufferedSink;->writeString(Ljava/lang/String;Ljava/nio/charset/Charset;)Lcom/android/okhttp/okio/BufferedSink;
+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
+Lcom/android/okhttp/okio/BufferedSource;->indexOf(BJ)J
+Lcom/android/okhttp/okio/BufferedSource;->indexOf(Lcom/android/okhttp/okio/ByteString;)J
+Lcom/android/okhttp/okio/BufferedSource;->indexOf(Lcom/android/okhttp/okio/ByteString;J)J
+Lcom/android/okhttp/okio/BufferedSource;->indexOfElement(Lcom/android/okhttp/okio/ByteString;)J
+Lcom/android/okhttp/okio/BufferedSource;->indexOfElement(Lcom/android/okhttp/okio/ByteString;J)J
+Lcom/android/okhttp/okio/BufferedSource;->inputStream()Ljava/io/InputStream;
+Lcom/android/okhttp/okio/BufferedSource;->read([B)I
+Lcom/android/okhttp/okio/BufferedSource;->read([BII)I
+Lcom/android/okhttp/okio/BufferedSource;->readAll(Lcom/android/okhttp/okio/Sink;)J
+Lcom/android/okhttp/okio/BufferedSource;->readByte()B
+Lcom/android/okhttp/okio/BufferedSource;->readByteArray()[B
+Lcom/android/okhttp/okio/BufferedSource;->readByteArray(J)[B
+Lcom/android/okhttp/okio/BufferedSource;->readByteString()Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/BufferedSource;->readByteString(J)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/BufferedSource;->readDecimalLong()J
+Lcom/android/okhttp/okio/BufferedSource;->readFully(Lcom/android/okhttp/okio/Buffer;J)V
+Lcom/android/okhttp/okio/BufferedSource;->readFully([B)V
+Lcom/android/okhttp/okio/BufferedSource;->readHexadecimalUnsignedLong()J
+Lcom/android/okhttp/okio/BufferedSource;->readInt()I
+Lcom/android/okhttp/okio/BufferedSource;->readIntLe()I
+Lcom/android/okhttp/okio/BufferedSource;->readLong()J
+Lcom/android/okhttp/okio/BufferedSource;->readLongLe()J
+Lcom/android/okhttp/okio/BufferedSource;->readShort()S
+Lcom/android/okhttp/okio/BufferedSource;->readShortLe()S
+Lcom/android/okhttp/okio/BufferedSource;->readString(JLjava/nio/charset/Charset;)Ljava/lang/String;
+Lcom/android/okhttp/okio/BufferedSource;->readString(Ljava/nio/charset/Charset;)Ljava/lang/String;
+Lcom/android/okhttp/okio/BufferedSource;->readUtf8()Ljava/lang/String;
+Lcom/android/okhttp/okio/BufferedSource;->readUtf8(J)Ljava/lang/String;
+Lcom/android/okhttp/okio/BufferedSource;->readUtf8CodePoint()I
+Lcom/android/okhttp/okio/BufferedSource;->readUtf8Line()Ljava/lang/String;
+Lcom/android/okhttp/okio/BufferedSource;->readUtf8LineStrict()Ljava/lang/String;
+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;
+Lcom/android/okhttp/okio/ByteString;->compareTo(Lcom/android/okhttp/okio/ByteString;)I
+Lcom/android/okhttp/okio/ByteString;->compareTo(Ljava/lang/Object;)I
+Lcom/android/okhttp/okio/ByteString;->data:[B
+Lcom/android/okhttp/okio/ByteString;->decodeBase64(Ljava/lang/String;)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->decodeHex(Ljava/lang/String;)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->decodeHexDigit(C)I
+Lcom/android/okhttp/okio/ByteString;->digest(Ljava/lang/String;)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->EMPTY:Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->getByte(I)B
+Lcom/android/okhttp/okio/ByteString;->hashCode:I
+Lcom/android/okhttp/okio/ByteString;->hex()Ljava/lang/String;
+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;
+Lcom/android/okhttp/okio/ByteString;->sha256()Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->size()I
+Lcom/android/okhttp/okio/ByteString;->substring(I)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->substring(II)Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->toAsciiLowercase()Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->toAsciiUppercase()Lcom/android/okhttp/okio/ByteString;
+Lcom/android/okhttp/okio/ByteString;->toByteArray()[B
+Lcom/android/okhttp/okio/ByteString;->utf8()Ljava/lang/String;
+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
+Lcom/android/okhttp/okio/Segment;->compact()V
+Lcom/android/okhttp/okio/Segment;->data:[B
+Lcom/android/okhttp/okio/Segment;->limit:I
+Lcom/android/okhttp/okio/Segment;->next:Lcom/android/okhttp/okio/Segment;
+Lcom/android/okhttp/okio/Segment;->owner:Z
+Lcom/android/okhttp/okio/Segment;->pop()Lcom/android/okhttp/okio/Segment;
+Lcom/android/okhttp/okio/Segment;->pos:I
+Lcom/android/okhttp/okio/Segment;->prev:Lcom/android/okhttp/okio/Segment;
+Lcom/android/okhttp/okio/Segment;->push(Lcom/android/okhttp/okio/Segment;)Lcom/android/okhttp/okio/Segment;
+Lcom/android/okhttp/okio/Segment;->shared:Z
+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;
+Lcom/android/okhttp/okio/Timeout;->deadline(JLjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/okio/Timeout;
+Lcom/android/okhttp/okio/Timeout;->deadlineNanoTime()J
+Lcom/android/okhttp/okio/Timeout;->deadlineNanoTime(J)Lcom/android/okhttp/okio/Timeout;
+Lcom/android/okhttp/okio/Timeout;->deadlineNanoTime:J
+Lcom/android/okhttp/okio/Timeout;->hasDeadline()Z
+Lcom/android/okhttp/okio/Timeout;->hasDeadline:Z
+Lcom/android/okhttp/okio/Timeout;->NONE:Lcom/android/okhttp/okio/Timeout;
+Lcom/android/okhttp/okio/Timeout;->throwIfReached()V
+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;
+Lcom/android/okhttp/Protocol;->HTTP_2:Lcom/android/okhttp/Protocol;
+Lcom/android/okhttp/Protocol;->protocol:Ljava/lang/String;
+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;
+Lcom/android/okhttp/Request$Builder;->body:Lcom/android/okhttp/RequestBody;
+Lcom/android/okhttp/Request$Builder;->build()Lcom/android/okhttp/Request;
+Lcom/android/okhttp/Request$Builder;->cacheControl(Lcom/android/okhttp/CacheControl;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->delete()Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->delete(Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->get()Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->head()Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->headers(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->headers:Lcom/android/okhttp/Headers$Builder;
+Lcom/android/okhttp/Request$Builder;->method(Ljava/lang/String;Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->method:Ljava/lang/String;
+Lcom/android/okhttp/Request$Builder;->patch(Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->post(Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->put(Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->removeHeader(Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->tag(Ljava/lang/Object;)Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request$Builder;->tag:Ljava/lang/Object;
+Lcom/android/okhttp/Request$Builder;->url(Lcom/android/okhttp/HttpUrl;)Lcom/android/okhttp/Request$Builder;
+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;
+Lcom/android/okhttp/Request;->cacheControl()Lcom/android/okhttp/CacheControl;
+Lcom/android/okhttp/Request;->cacheControl:Lcom/android/okhttp/CacheControl;
+Lcom/android/okhttp/Request;->header(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/okhttp/Request;->headers()Lcom/android/okhttp/Headers;
+Lcom/android/okhttp/Request;->headers(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/okhttp/Request;->httpUrl()Lcom/android/okhttp/HttpUrl;
+Lcom/android/okhttp/Request;->isHttps()Z
+Lcom/android/okhttp/Request;->javaNetUri:Ljava/net/URI;
+Lcom/android/okhttp/Request;->javaNetUrl:Ljava/net/URL;
+Lcom/android/okhttp/Request;->method()Ljava/lang/String;
+Lcom/android/okhttp/Request;->newBuilder()Lcom/android/okhttp/Request$Builder;
+Lcom/android/okhttp/Request;->tag()Ljava/lang/Object;
+Lcom/android/okhttp/Request;->tag:Ljava/lang/Object;
+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;
+Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;Lcom/android/okhttp/okio/ByteString;)Lcom/android/okhttp/RequestBody;
+Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;Ljava/io/File;)Lcom/android/okhttp/RequestBody;
+Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;Ljava/lang/String;)Lcom/android/okhttp/RequestBody;
+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;
+Lcom/android/okhttp/Response$Builder;->body(Lcom/android/okhttp/ResponseBody;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->body:Lcom/android/okhttp/ResponseBody;
+Lcom/android/okhttp/Response$Builder;->build()Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Response$Builder;->cacheResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->cacheResponse:Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Response$Builder;->checkPriorResponse(Lcom/android/okhttp/Response;)V
+Lcom/android/okhttp/Response$Builder;->checkSupportResponse(Ljava/lang/String;Lcom/android/okhttp/Response;)V
+Lcom/android/okhttp/Response$Builder;->code(I)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->code:I
+Lcom/android/okhttp/Response$Builder;->handshake(Lcom/android/okhttp/Handshake;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->handshake:Lcom/android/okhttp/Handshake;
+Lcom/android/okhttp/Response$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->headers(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->headers:Lcom/android/okhttp/Headers$Builder;
+Lcom/android/okhttp/Response$Builder;->message(Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->message:Ljava/lang/String;
+Lcom/android/okhttp/Response$Builder;->networkResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->networkResponse:Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Response$Builder;->priorResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->priorResponse:Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Response$Builder;->protocol(Lcom/android/okhttp/Protocol;)Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response$Builder;->protocol:Lcom/android/okhttp/Protocol;
+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;
+Lcom/android/okhttp/Response;->cacheControl()Lcom/android/okhttp/CacheControl;
+Lcom/android/okhttp/Response;->cacheControl:Lcom/android/okhttp/CacheControl;
+Lcom/android/okhttp/Response;->cacheResponse()Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Response;->cacheResponse:Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Response;->challenges()Ljava/util/List;
+Lcom/android/okhttp/Response;->code()I
+Lcom/android/okhttp/Response;->handshake()Lcom/android/okhttp/Handshake;
+Lcom/android/okhttp/Response;->handshake:Lcom/android/okhttp/Handshake;
+Lcom/android/okhttp/Response;->header(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/okhttp/Response;->header(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/okhttp/Response;->headers()Lcom/android/okhttp/Headers;
+Lcom/android/okhttp/Response;->headers(Ljava/lang/String;)Ljava/util/List;
+Lcom/android/okhttp/Response;->isRedirect()Z
+Lcom/android/okhttp/Response;->isSuccessful()Z
+Lcom/android/okhttp/Response;->message()Ljava/lang/String;
+Lcom/android/okhttp/Response;->networkResponse()Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Response;->newBuilder()Lcom/android/okhttp/Response$Builder;
+Lcom/android/okhttp/Response;->priorResponse()Lcom/android/okhttp/Response;
+Lcom/android/okhttp/Response;->priorResponse:Lcom/android/okhttp/Response;
+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;
+Lcom/android/okhttp/ResponseBody;->charset()Ljava/nio/charset/Charset;
+Lcom/android/okhttp/ResponseBody;->charStream()Ljava/io/Reader;
+Lcom/android/okhttp/ResponseBody;->contentLength()J
+Lcom/android/okhttp/ResponseBody;->contentType()Lcom/android/okhttp/MediaType;
+Lcom/android/okhttp/ResponseBody;->create(Lcom/android/okhttp/MediaType;JLcom/android/okhttp/okio/BufferedSource;)Lcom/android/okhttp/ResponseBody;
+Lcom/android/okhttp/ResponseBody;->create(Lcom/android/okhttp/MediaType;Ljava/lang/String;)Lcom/android/okhttp/ResponseBody;
+Lcom/android/okhttp/ResponseBody;->create(Lcom/android/okhttp/MediaType;[B)Lcom/android/okhttp/ResponseBody;
+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;
+Lcom/android/okhttp/Route;->getProxy()Ljava/net/Proxy;
+Lcom/android/okhttp/Route;->getSocketAddress()Ljava/net/InetSocketAddress;
+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;
+Lcom/android/okhttp/TlsVersion;->SSL_3_0:Lcom/android/okhttp/TlsVersion;
+Lcom/android/okhttp/TlsVersion;->TLS_1_0:Lcom/android/okhttp/TlsVersion;
+Lcom/android/okhttp/TlsVersion;->TLS_1_1:Lcom/android/okhttp/TlsVersion;
+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
+Lcom/android/org/conscrypt/AbstractConscryptSocket;-><init>(Ljava/net/InetAddress;I)V
+Lcom/android/org/conscrypt/AbstractConscryptSocket;-><init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V
+Lcom/android/org/conscrypt/AbstractConscryptSocket;->getFileDescriptor$()Ljava/io/FileDescriptor;
+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;
+Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;->NO_PROTOCOL_SELECTED:I
+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;
+Lcom/android/org/conscrypt/CertBlacklist;->HEX_TABLE:[B
+Lcom/android/org/conscrypt/CertBlacklist;->isHex(Ljava/lang/String;)Z
+Lcom/android/org/conscrypt/CertBlacklist;->isPubkeyHash(Ljava/lang/String;)Z
+Lcom/android/org/conscrypt/CertBlacklist;->isPublicKeyBlackListed(Ljava/security/PublicKey;)Z
+Lcom/android/org/conscrypt/CertBlacklist;->isSerialNumberBlackListed(Ljava/math/BigInteger;)Z
+Lcom/android/org/conscrypt/CertBlacklist;->logger:Ljava/util/logging/Logger;
+Lcom/android/org/conscrypt/CertBlacklist;->pubkeyBlacklist:Ljava/util/Set;
+Lcom/android/org/conscrypt/CertBlacklist;->readBlacklist(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/org/conscrypt/CertBlacklist;->readFileAsBytes(Ljava/lang/String;)Ljava/io/ByteArrayOutputStream;
+Lcom/android/org/conscrypt/CertBlacklist;->readFileAsString(Ljava/lang/String;)Ljava/lang/String;
+Lcom/android/org/conscrypt/CertBlacklist;->readPublicKeyBlackList(Ljava/lang/String;)Ljava/util/Set;
+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
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->compare(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->compareKeyAlgorithm(Ljava/security/PublicKey;Ljava/security/PublicKey;)I
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->compareKeySize(Ljava/security/PublicKey;Ljava/security/PublicKey;)I
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->compareSignatureAlgorithm(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->compareStrength(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->getKeySize(Ljava/security/PublicKey;)I
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->PRIORITY_MD5:Ljava/lang/Integer;
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->PRIORITY_SHA1:Ljava/lang/Integer;
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->PRIORITY_SHA224:Ljava/lang/Integer;
+Lcom/android/org/conscrypt/CertificatePriorityComparator;->PRIORITY_SHA256:Ljava/lang/Integer;
+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
+Lcom/android/org/conscrypt/ConscryptSocketBase;-><init>(Ljava/net/InetAddress;I)V
+Lcom/android/org/conscrypt/ConscryptSocketBase;-><init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V
+Lcom/android/org/conscrypt/ConscryptSocketBase;-><init>(Ljava/net/Socket;Ljava/lang/String;IZ)V
+Lcom/android/org/conscrypt/ConscryptSocketBase;->autoClose:Z
+Lcom/android/org/conscrypt/ConscryptSocketBase;->checkOpen()V
+Lcom/android/org/conscrypt/ConscryptSocketBase;->getActiveSession()Ljavax/net/ssl/SSLSession;
+Lcom/android/org/conscrypt/ConscryptSocketBase;->getFileDescriptor$()Ljava/io/FileDescriptor;
+Lcom/android/org/conscrypt/ConscryptSocketBase;->isDelegating()Z
+Lcom/android/org/conscrypt/ConscryptSocketBase;->listeners:Ljava/util/List;
+Lcom/android/org/conscrypt/ConscryptSocketBase;->notifyHandshakeCompletedListeners()V
+Lcom/android/org/conscrypt/ConscryptSocketBase;->peerHostname:Ljava/lang/String;
+Lcom/android/org/conscrypt/ConscryptSocketBase;->peerInfoProvider()Lcom/android/org/conscrypt/PeerInfoProvider;
+Lcom/android/org/conscrypt/ConscryptSocketBase;->peerInfoProvider:Lcom/android/org/conscrypt/PeerInfoProvider;
+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;
+Lcom/android/org/conscrypt/OpenSSLKey;->fromKeyMaterial(Ljava/security/PrivateKey;)Lcom/android/org/conscrypt/OpenSSLKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->fromPrivateKeyForTLSStackOnly(Ljava/security/PrivateKey;Ljava/security/PublicKey;)Lcom/android/org/conscrypt/OpenSSLKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->fromPrivateKeyPemInputStream(Ljava/io/InputStream;)Lcom/android/org/conscrypt/OpenSSLKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->fromPublicKey(Ljava/security/PublicKey;)Lcom/android/org/conscrypt/OpenSSLKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->fromPublicKeyPemInputStream(Ljava/io/InputStream;)Lcom/android/org/conscrypt/OpenSSLKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->getOpenSSLKey(Ljava/security/PrivateKey;)Lcom/android/org/conscrypt/OpenSSLKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->getPrivateKey()Ljava/security/PrivateKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->getPrivateKey(Ljava/security/spec/PKCS8EncodedKeySpec;I)Ljava/security/PrivateKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->getPublicKey(Ljava/security/spec/X509EncodedKeySpec;I)Ljava/security/PublicKey;
+Lcom/android/org/conscrypt/OpenSSLKey;->isWrapped()Z
+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
+Lcom/android/org/conscrypt/OpenSSLSocketImpl;-><init>(Ljava/net/InetAddress;I)V
+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;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->fromCertificate(Ljava/security/cert/Certificate;)Lcom/android/org/conscrypt/OpenSSLX509Certificate;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->fromPkcs7DerInputStream(Ljava/io/InputStream;)Ljava/util/List;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->fromPkcs7PemInputStream(Ljava/io/InputStream;)Ljava/util/List;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->fromX509Der([B)Lcom/android/org/conscrypt/OpenSSLX509Certificate;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->fromX509DerInputStream(Ljava/io/InputStream;)Lcom/android/org/conscrypt/OpenSSLX509Certificate;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->getContext()J
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->mHashCode:Ljava/lang/Integer;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->notAfter:Ljava/util/Date;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->notBefore:Ljava/util/Date;
+Lcom/android/org/conscrypt/OpenSSLX509Certificate;->toDate(J)Ljava/util/Date;
+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;
+Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;->fromX509DerInputStream(Ljava/io/InputStream;)Ljava/lang/Object;
+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;
+Lcom/android/org/conscrypt/OpenSSLX509CRL;->fromX509DerInputStream(Ljava/io/InputStream;)Lcom/android/org/conscrypt/OpenSSLX509CRL;
+Lcom/android/org/conscrypt/OpenSSLX509CRL;->fromX509PemInputStream(Ljava/io/InputStream;)Lcom/android/org/conscrypt/OpenSSLX509CRL;
+Lcom/android/org/conscrypt/OpenSSLX509CRL;->mContext:J
+Lcom/android/org/conscrypt/OpenSSLX509CRL;->nextUpdate:Ljava/util/Date;
+Lcom/android/org/conscrypt/OpenSSLX509CRL;->thisUpdate:Ljava/util/Date;
+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;
+Lcom/android/org/conscrypt/PeerInfoProvider;->getHostnameOrIP()Ljava/lang/String;
+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;
+Lcom/android/org/conscrypt/TrustedCertificateIndex;->findByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/security/cert/TrustAnchor;
+Lcom/android/org/conscrypt/TrustedCertificateIndex;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/TrustAnchor;
+Lcom/android/org/conscrypt/TrustedCertificateIndex;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;Ljava/util/Collection;)Ljava/security/cert/TrustAnchor;
+Lcom/android/org/conscrypt/TrustedCertificateIndex;->index(Ljava/security/cert/TrustAnchor;)V
+Lcom/android/org/conscrypt/TrustedCertificateIndex;->index(Ljava/security/cert/X509Certificate;)Ljava/security/cert/TrustAnchor;
+Lcom/android/org/conscrypt/TrustedCertificateIndex;->index(Ljava/util/Set;)V
+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;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->aliases()Ljava/util/Set;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->allSystemAliases()Ljava/util/Set;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->CERT_FACTORY:Ljava/security/cert/CertificateFactory;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->containsAlias(Ljava/lang/String;)Z
+Lcom/android/org/conscrypt/TrustedCertificateStore;->containsAlias(Ljava/lang/String;Z)Z
+Lcom/android/org/conscrypt/TrustedCertificateStore;->convertToOpenSSLIfNeeded(Ljava/security/cert/X509Certificate;)Lcom/android/org/conscrypt/OpenSSLX509Certificate;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->deleteCertificateEntry(Ljava/lang/String;)V
+Lcom/android/org/conscrypt/TrustedCertificateStore;->deletedDir:Ljava/io/File;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->file(Ljava/io/File;Ljava/lang/String;I)Ljava/io/File;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->fileForAlias(Ljava/lang/String;)Ljava/io/File;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->findAllIssuers(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->findCert(Ljava/io/File;Ljavax/security/auth/x500/X500Principal;Lcom/android/org/conscrypt/TrustedCertificateStore$CertSelector;Ljava/lang/Class;)Ljava/lang/Object;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->findIssuer(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->getCertificate(Ljava/lang/String;Z)Ljava/security/cert/Certificate;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->getCertificateAlias(Ljava/security/cert/Certificate;)Ljava/lang/String;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->getCertificateAlias(Ljava/security/cert/Certificate;Z)Ljava/lang/String;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->getCertificateFile(Ljava/io/File;Ljava/security/cert/X509Certificate;)Ljava/io/File;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->getCreationDate(Ljava/lang/String;)Ljava/util/Date;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->getTrustAnchor(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->hash(Ljavax/security/auth/x500/X500Principal;)Ljava/lang/String;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->installCertificate(Ljava/security/cert/X509Certificate;)V
+Lcom/android/org/conscrypt/TrustedCertificateStore;->isDeletedSystemCertificate(Ljava/security/cert/X509Certificate;)Z
+Lcom/android/org/conscrypt/TrustedCertificateStore;->isSelfIssuedCertificate(Lcom/android/org/conscrypt/OpenSSLX509Certificate;)Z
+Lcom/android/org/conscrypt/TrustedCertificateStore;->isSystem(Ljava/lang/String;)Z
+Lcom/android/org/conscrypt/TrustedCertificateStore;->isTombstone(Ljava/io/File;)Z
+Lcom/android/org/conscrypt/TrustedCertificateStore;->isUser(Ljava/lang/String;)Z
+Lcom/android/org/conscrypt/TrustedCertificateStore;->isUserAddedCertificate(Ljava/security/cert/X509Certificate;)Z
+Lcom/android/org/conscrypt/TrustedCertificateStore;->PREFIX_SYSTEM:Ljava/lang/String;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->PREFIX_USER:Ljava/lang/String;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->readCertificate(Ljava/io/File;)Ljava/security/cert/X509Certificate;
+Lcom/android/org/conscrypt/TrustedCertificateStore;->removeUnnecessaryTombstones(Ljava/lang/String;)V
+Lcom/android/org/conscrypt/TrustedCertificateStore;->setDefaultUserDirectory(Ljava/io/File;)V
+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;
+Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->EKU_clientAuth:Ljava/lang/String;
+Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->EKU_msSGC:Ljava/lang/String;
+Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->EKU_nsSGC:Ljava/lang/String;
+Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->EKU_OID:Ljava/lang/String;
+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
+Lcom/android/org/conscrypt/TrustManagerImpl;-><init>(Ljava/security/KeyStore;Lcom/android/org/conscrypt/CertPinManager;Lcom/android/org/conscrypt/TrustedCertificateStore;Lcom/android/org/conscrypt/CertBlacklist;Lcom/android/org/conscrypt/ct/CTLogStore;Lcom/android/org/conscrypt/ct/CTVerifier;Lcom/android/org/conscrypt/ct/CTPolicy;)V
+Lcom/android/org/conscrypt/TrustManagerImpl;->acceptedIssuers(Ljava/security/KeyStore;)[Ljava/security/cert/X509Certificate;
+Lcom/android/org/conscrypt/TrustManagerImpl;->acceptedIssuers:[Ljava/security/cert/X509Certificate;
+Lcom/android/org/conscrypt/TrustManagerImpl;->blacklist:Lcom/android/org/conscrypt/CertBlacklist;
+Lcom/android/org/conscrypt/TrustManagerImpl;->checkBlacklist(Ljava/security/cert/X509Certificate;)V
+Lcom/android/org/conscrypt/TrustManagerImpl;->checkClientTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+Lcom/android/org/conscrypt/TrustManagerImpl;->checkCT(Ljava/lang/String;Ljava/util/List;[B[B)V
+Lcom/android/org/conscrypt/TrustManagerImpl;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Ljava/util/List;
+Lcom/android/org/conscrypt/TrustManagerImpl;->checkTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLSession;Ljavax/net/ssl/SSLParameters;Z)Ljava/util/List;
+Lcom/android/org/conscrypt/TrustManagerImpl;->checkTrusted([Ljava/security/cert/X509Certificate;[B[BLjava/lang/String;Ljava/lang/String;Z)Ljava/util/List;
+Lcom/android/org/conscrypt/TrustManagerImpl;->checkTrustedRecursive([Ljava/security/cert/X509Certificate;[B[BLjava/lang/String;ZLjava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/Set;)Ljava/util/List;
+Lcom/android/org/conscrypt/TrustManagerImpl;->ctEnabledOverride:Z
+Lcom/android/org/conscrypt/TrustManagerImpl;->ctPolicy:Lcom/android/org/conscrypt/ct/CTPolicy;
+Lcom/android/org/conscrypt/TrustManagerImpl;->ctVerifier:Lcom/android/org/conscrypt/ct/CTVerifier;
+Lcom/android/org/conscrypt/TrustManagerImpl;->err:Ljava/lang/Exception;
+Lcom/android/org/conscrypt/TrustManagerImpl;->factory:Ljava/security/cert/CertificateFactory;
+Lcom/android/org/conscrypt/TrustManagerImpl;->findAllTrustAnchorsByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+Lcom/android/org/conscrypt/TrustManagerImpl;->findTrustAnchorBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/TrustAnchor;
+Lcom/android/org/conscrypt/TrustManagerImpl;->getHandshakeSessionOrThrow(Ljavax/net/ssl/SSLSocket;)Ljavax/net/ssl/SSLSession;
+Lcom/android/org/conscrypt/TrustManagerImpl;->getOcspDataFromSession(Ljavax/net/ssl/SSLSession;)[B
+Lcom/android/org/conscrypt/TrustManagerImpl;->getTlsSctDataFromSession(Ljavax/net/ssl/SSLSession;)[B
+Lcom/android/org/conscrypt/TrustManagerImpl;->getTrustedChainForServer([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)Ljava/util/List;
+Lcom/android/org/conscrypt/TrustManagerImpl;->getTrustedChainForServer([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)Ljava/util/List;
+Lcom/android/org/conscrypt/TrustManagerImpl;->handleTrustStorageUpdate()V
+Lcom/android/org/conscrypt/TrustManagerImpl;->intermediateIndex:Lcom/android/org/conscrypt/TrustedCertificateIndex;
+Lcom/android/org/conscrypt/TrustManagerImpl;->isUserAddedCertificate(Ljava/security/cert/X509Certificate;)Z
+Lcom/android/org/conscrypt/TrustManagerImpl;->pinManager:Lcom/android/org/conscrypt/CertPinManager;
+Lcom/android/org/conscrypt/TrustManagerImpl;->rootKeyStore:Ljava/security/KeyStore;
+Lcom/android/org/conscrypt/TrustManagerImpl;->setCTEnabledOverride(Z)V
+Lcom/android/org/conscrypt/TrustManagerImpl;->setCTPolicy(Lcom/android/org/conscrypt/ct/CTPolicy;)V
+Lcom/android/org/conscrypt/TrustManagerImpl;->setCTVerifier(Lcom/android/org/conscrypt/ct/CTVerifier;)V
+Lcom/android/org/conscrypt/TrustManagerImpl;->setOcspResponses(Ljava/security/cert/PKIXParameters;Ljava/security/cert/X509Certificate;[B)V
+Lcom/android/org/conscrypt/TrustManagerImpl;->sortPotentialAnchors(Ljava/util/Set;)Ljava/util/Collection;
+Lcom/android/org/conscrypt/TrustManagerImpl;->trustAnchors([Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+Lcom/android/org/conscrypt/TrustManagerImpl;->trustedCertificateIndex:Lcom/android/org/conscrypt/TrustedCertificateIndex;
+Lcom/android/org/conscrypt/TrustManagerImpl;->trustedCertificateStore:Lcom/android/org/conscrypt/TrustedCertificateStore;
+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;
+Ldalvik/system/AnnotatedStackTraceElement;->getHeldLocks()[Ljava/lang/Object;
+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
+Ldalvik/system/BaseDexClassLoader;->getReporter()Ldalvik/system/BaseDexClassLoader$Reporter;
+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
+Ldalvik/system/BlockGuard;->DISALLOW_NETWORK:I
+Ldalvik/system/BlockGuard;->PASS_RESTRICTIONS_VIA_RPC:I
+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;
+Ldalvik/system/CloseGuard;->getTracker()Ldalvik/system/CloseGuard$Tracker;
+Ldalvik/system/CloseGuard;->isEnabled()Z
+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;
+Ldalvik/system/DexFile$OptimizationInfo;->reason:Ljava/lang/String;
+Ldalvik/system/DexFile$OptimizationInfo;->status:Ljava/lang/String;
+Ldalvik/system/DexFile;-><init>(Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
+Ldalvik/system/DexFile;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
+Ldalvik/system/DexFile;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
+Ldalvik/system/DexFile;-><init>(Ljava/nio/ByteBuffer;)V
+Ldalvik/system/DexFile;->closeDexFile(Ljava/lang/Object;)Z
+Ldalvik/system/DexFile;->createCookieWithArray([BII)Ljava/lang/Object;
+Ldalvik/system/DexFile;->createCookieWithDirectBuffer(Ljava/nio/ByteBuffer;II)Ljava/lang/Object;
+Ldalvik/system/DexFile;->defineClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Ldalvik/system/DexFile;Ljava/util/List;)Ljava/lang/Class;
+Ldalvik/system/DexFile;->defineClassNative(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Ldalvik/system/DexFile;)Ljava/lang/Class;
+Ldalvik/system/DexFile;->DEX2OAT_FOR_BOOT_IMAGE:I
+Ldalvik/system/DexFile;->DEX2OAT_FOR_FILTER:I
+Ldalvik/system/DexFile;->DEX2OAT_FOR_RELOCATION:I
+Ldalvik/system/DexFile;->DEX2OAT_FROM_SCRATCH:I
+Ldalvik/system/DexFile;->getDexFileOptimizationInfo(Ljava/lang/String;Ljava/lang/String;)Ldalvik/system/DexFile$OptimizationInfo;
+Ldalvik/system/DexFile;->getDexFileOptimizationStatus(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Ldalvik/system/DexFile;->getDexFileOutputPaths(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Ldalvik/system/DexFile;->getDexFileStatus(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Ldalvik/system/DexFile;->getDexOptNeeded(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)I
+Ldalvik/system/DexFile;->getDexOptNeeded(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)I
+Ldalvik/system/DexFile;->getNonProfileGuidedCompilerFilter(Ljava/lang/String;)Ljava/lang/String;
+Ldalvik/system/DexFile;->getSafeModeCompilerFilter(Ljava/lang/String;)Ljava/lang/String;
+Ldalvik/system/DexFile;->getStaticSizeOfDexFile()J
+Ldalvik/system/DexFile;->getStaticSizeOfDexFile(Ljava/lang/Object;)J
+Ldalvik/system/DexFile;->isBackedByOatFile(Ljava/lang/Object;)Z
+Ldalvik/system/DexFile;->isProfileGuidedCompilerFilter(Ljava/lang/String;)Z
+Ldalvik/system/DexFile;->isValidCompilerFilter(Ljava/lang/String;)Z
+Ldalvik/system/DexFile;->NO_DEXOPT_NEEDED:I
+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;
+Ldalvik/system/DexPathList$Element;->findResource(Ljava/lang/String;)Ljava/net/URL;
+Ldalvik/system/DexPathList$Element;->getDexPath()Ljava/lang/String;
+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
+Ldalvik/system/DexPathList;->DEX_SUFFIX:Ljava/lang/String;
+Ldalvik/system/DexPathList;->findClass(Ljava/lang/String;Ljava/util/List;)Ljava/lang/Class;
+Ldalvik/system/DexPathList;->findLibrary(Ljava/lang/String;)Ljava/lang/String;
+Ldalvik/system/DexPathList;->findResource(Ljava/lang/String;)Ljava/net/URL;
+Ldalvik/system/DexPathList;->findResources(Ljava/lang/String;)Ljava/util/Enumeration;
+Ldalvik/system/DexPathList;->getDexPaths()Ljava/util/List;
+Ldalvik/system/DexPathList;->getNativeLibraryDirectories()Ljava/util/List;
+Ldalvik/system/DexPathList;->makeDexElements(Ljava/util/List;Ljava/io/File;Ljava/util/List;Ljava/lang/ClassLoader;Z)[Ldalvik/system/DexPathList$Element;
+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
+Ldalvik/system/EmulatedStackFrame$Range;->numReferences:I
+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;
+Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->attach(Ldalvik/system/EmulatedStackFrame;III)Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;
+Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->checkType(Ljava/lang/Class;)V
+Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->copyNext(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
+Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->frame:Ldalvik/system/EmulatedStackFrame;
+Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->frameBuf:Ljava/nio/ByteBuffer;
+Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->makeReturnValueAccessor()V
+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
+Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextChar()C
+Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextDouble()D
+Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextFloat()F
+Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextInt()I
+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
+Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextChar(C)V
+Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextDouble(D)V
+Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextFloat(F)V
+Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextInt(I)V
+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
+Ldalvik/system/EmulatedStackFrame;->copyReturnValueTo(Ldalvik/system/EmulatedStackFrame;)V
+Ldalvik/system/EmulatedStackFrame;->create(Ljava/lang/invoke/MethodType;)Ldalvik/system/EmulatedStackFrame;
+Ldalvik/system/EmulatedStackFrame;->getCallsiteType()Ljava/lang/invoke/MethodType;
+Ldalvik/system/EmulatedStackFrame;->getMethodType()Ljava/lang/invoke/MethodType;
+Ldalvik/system/EmulatedStackFrame;->getReference(ILjava/lang/Class;)Ljava/lang/Object;
+Ldalvik/system/EmulatedStackFrame;->getSize(Ljava/lang/Class;)I
+Ldalvik/system/EmulatedStackFrame;->is64BitPrimitive(Ljava/lang/Class;)Z
+Ldalvik/system/EmulatedStackFrame;->references:[Ljava/lang/Object;
+Ldalvik/system/EmulatedStackFrame;->setReference(ILjava/lang/Object;)V
+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
+Ldalvik/system/SocketTagger;->tag(Ljava/net/DatagramSocket;)V
+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
+Ldalvik/system/VMDebug;->cacheRegisterMap(Ljava/lang/String;)Z
+Ldalvik/system/VMDebug;->checkBufferSize(I)I
+Ldalvik/system/VMDebug;->countInstancesOfClass(Ljava/lang/Class;Z)J
+Ldalvik/system/VMDebug;->countInstancesOfClasses([Ljava/lang/Class;Z)[J
+Ldalvik/system/VMDebug;->crash()V
+Ldalvik/system/VMDebug;->dumpHprofData(Ljava/lang/String;)V
+Ldalvik/system/VMDebug;->dumpHprofData(Ljava/lang/String;I)V
+Ldalvik/system/VMDebug;->dumpHprofData(Ljava/lang/String;Ljava/io/FileDescriptor;)V
+Ldalvik/system/VMDebug;->dumpHprofDataDdms()V
+Ldalvik/system/VMDebug;->getAllocCount(I)I
+Ldalvik/system/VMDebug;->getHeapSpaceStats([J)V
+Ldalvik/system/VMDebug;->getInstancesOfClasses([Ljava/lang/Class;Z)[[Ljava/lang/Object;
+Ldalvik/system/VMDebug;->getInstructionCount([I)V
+Ldalvik/system/VMDebug;->getLoadedClassCount()I
+Ldalvik/system/VMDebug;->getMethodTracingMode()I
+Ldalvik/system/VMDebug;->getRuntimeStat(Ljava/lang/String;)Ljava/lang/String;
+Ldalvik/system/VMDebug;->getRuntimeStatInternal(I)Ljava/lang/String;
+Ldalvik/system/VMDebug;->getRuntimeStats()Ljava/util/Map;
+Ldalvik/system/VMDebug;->getRuntimeStatsInternal()[Ljava/lang/String;
+Ldalvik/system/VMDebug;->getVmFeatureList()[Ljava/lang/String;
+Ldalvik/system/VMDebug;->infopoint(I)V
+Ldalvik/system/VMDebug;->isDebuggingEnabled()Z
+Ldalvik/system/VMDebug;->KIND_ALLOCATED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_ALLOCATED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_ALL_COUNTS:I
+Ldalvik/system/VMDebug;->KIND_CLASS_INIT_COUNT:I
+Ldalvik/system/VMDebug;->KIND_CLASS_INIT_TIME:I
+Ldalvik/system/VMDebug;->KIND_EXT_ALLOCATED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_EXT_ALLOCATED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_EXT_FREED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_EXT_FREED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_FREED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_FREED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_GC_INVOCATIONS:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_ALLOCATED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_ALLOCATED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_CLASS_INIT_COUNT:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_CLASS_INIT_TIME:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_EXT_ALLOCATED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_EXT_ALLOCATED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_EXT_FREED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_EXT_FREED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_FREED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_FREED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_GLOBAL_GC_INVOCATIONS:I
+Ldalvik/system/VMDebug;->KIND_THREAD_ALLOCATED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_THREAD_ALLOCATED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_THREAD_CLASS_INIT_COUNT:I
+Ldalvik/system/VMDebug;->KIND_THREAD_CLASS_INIT_TIME:I
+Ldalvik/system/VMDebug;->KIND_THREAD_EXT_ALLOCATED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_THREAD_EXT_ALLOCATED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_THREAD_EXT_FREED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_THREAD_EXT_FREED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_THREAD_FREED_BYTES:I
+Ldalvik/system/VMDebug;->KIND_THREAD_FREED_OBJECTS:I
+Ldalvik/system/VMDebug;->KIND_THREAD_GC_INVOCATIONS:I
+Ldalvik/system/VMDebug;->lastDebuggerActivity()J
+Ldalvik/system/VMDebug;->nativeAttachAgent(Ljava/lang/String;Ljava/lang/ClassLoader;)V
+Ldalvik/system/VMDebug;->printLoadedClasses(I)V
+Ldalvik/system/VMDebug;->resetAllocCount(I)V
+Ldalvik/system/VMDebug;->resetInstructionCount()V
+Ldalvik/system/VMDebug;->runtimeStatsMap:Ljava/util/HashMap;
+Ldalvik/system/VMDebug;->setAllocationLimit(I)I
+Ldalvik/system/VMDebug;->setGlobalAllocationLimit(I)I
+Ldalvik/system/VMDebug;->startAllocCounting()V
+Ldalvik/system/VMDebug;->startClassPrep()V
+Ldalvik/system/VMDebug;->startEmulatorTracing()V
+Ldalvik/system/VMDebug;->startGC()V
+Ldalvik/system/VMDebug;->startInstructionCounting()V
+Ldalvik/system/VMDebug;->startMethodTracing()V
+Ldalvik/system/VMDebug;->startMethodTracing(Ljava/lang/String;IIZI)V
+Ldalvik/system/VMDebug;->startMethodTracing(Ljava/lang/String;Ljava/io/FileDescriptor;IIZI)V
+Ldalvik/system/VMDebug;->startMethodTracing(Ljava/lang/String;Ljava/io/FileDescriptor;IIZIZ)V
+Ldalvik/system/VMDebug;->startMethodTracingDdms(IIZI)V
+Ldalvik/system/VMDebug;->startMethodTracingDdmsImpl(IIZI)V
+Ldalvik/system/VMDebug;->startMethodTracingFd(Ljava/lang/String;IIIZIZ)V
+Ldalvik/system/VMDebug;->startMethodTracingFilename(Ljava/lang/String;IIZI)V
+Ldalvik/system/VMDebug;->stopAllocCounting()V
+Ldalvik/system/VMDebug;->stopEmulatorTracing()V
+Ldalvik/system/VMDebug;->stopInstructionCounting()V
+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;
+Ldalvik/system/VMRuntime;->clampGrowthLimit()V
+Ldalvik/system/VMRuntime;->classPath()Ljava/lang/String;
+Ldalvik/system/VMRuntime;->concurrentGC()V
+Ldalvik/system/VMRuntime;->didPruneDalvikCache()Z
+Ldalvik/system/VMRuntime;->disableJitCompilation()V
+Ldalvik/system/VMRuntime;->getTargetHeapUtilization()F
+Ldalvik/system/VMRuntime;->getTargetSdkVersion()I
+Ldalvik/system/VMRuntime;->hasUsedHiddenApi()Z
+Ldalvik/system/VMRuntime;->is64BitInstructionSet(Ljava/lang/String;)Z
+Ldalvik/system/VMRuntime;->isBootClassPathOnDisk(Ljava/lang/String;)Z
+Ldalvik/system/VMRuntime;->isCheckJniEnabled()Z
+Ldalvik/system/VMRuntime;->isDebuggerActive()Z
+Ldalvik/system/VMRuntime;->isJavaDebuggable()Z
+Ldalvik/system/VMRuntime;->isNativeDebuggable()Z
+Ldalvik/system/VMRuntime;->nativeSetTargetHeapUtilization(F)V
+Ldalvik/system/VMRuntime;->newUnpaddedArray(Ljava/lang/Class;I)Ljava/lang/Object;
+Ldalvik/system/VMRuntime;->nonSdkApiUsageConsumer:Ljava/util/function/Consumer;
+Ldalvik/system/VMRuntime;->preloadDexCaches()V
+Ldalvik/system/VMRuntime;->properties()[Ljava/lang/String;
+Ldalvik/system/VMRuntime;->registerAppInfo(Ljava/lang/String;[Ljava/lang/String;)V
+Ldalvik/system/VMRuntime;->registerSensitiveThread()V
+Ldalvik/system/VMRuntime;->requestConcurrentGC()V
+Ldalvik/system/VMRuntime;->requestHeapTrim()V
+Ldalvik/system/VMRuntime;->runHeapTasks()V
+Ldalvik/system/VMRuntime;->SDK_VERSION_CUR_DEVELOPMENT:I
+Ldalvik/system/VMRuntime;->setDedupeHiddenApiWarnings(Z)V
+Ldalvik/system/VMRuntime;->setHiddenApiAccessLogSamplingRate(I)V
+Ldalvik/system/VMRuntime;->setNonSdkApiUsageConsumer(Ljava/util/function/Consumer;)V
+Ldalvik/system/VMRuntime;->setProcessPackageName(Ljava/lang/String;)V
+Ldalvik/system/VMRuntime;->setSystemDaemonThreadPriority()V
+Ldalvik/system/VMRuntime;->setTargetSdkVersionNative(I)V
+Ldalvik/system/VMRuntime;->startHeapTaskProcessor()V
+Ldalvik/system/VMRuntime;->startJitCompilation()V
+Ldalvik/system/VMRuntime;->stopHeapTaskProcessor()V
+Ldalvik/system/VMRuntime;->targetSdkVersion:I
+Ldalvik/system/VMRuntime;->THE_ONE:Ldalvik/system/VMRuntime;
+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
+Ldalvik/system/ZygoteHooks;->postForkChild(IZZLjava/lang/String;)V
+Ldalvik/system/ZygoteHooks;->postForkCommon()V
+Ldalvik/system/ZygoteHooks;->preFork()V
+Ldalvik/system/ZygoteHooks;->startZygoteNoThreadCreation()V
+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
+Ljava/awt/font/NumericShaper$Range;->getNumericBase()C
+Ljava/awt/font/NumericShaper$Range;->indexToRange(I)Ljava/awt/font/NumericShaper$Range;
+Ljava/awt/font/NumericShaper$Range;->inRange(I)Z
+Ljava/awt/font/NumericShaper$Range;->maskToRangeSet(I)Ljava/util/Set;
+Ljava/awt/font/NumericShaper$Range;->start:I
+Ljava/awt/font/NumericShaper$Range;->toRangeIndex(Ljava/awt/font/NumericShaper$Range;)I
+Ljava/awt/font/NumericShaper$Range;->toRangeMask(Ljava/util/Set;)I
+Ljava/awt/font/NumericShaper;-><init>(II)V
+Ljava/awt/font/NumericShaper;-><init>(Ljava/awt/font/NumericShaper$Range;Ljava/util/Set;)V
+Ljava/awt/font/NumericShaper;->ARABIC_KEY:I
+Ljava/awt/font/NumericShaper;->bases:[C
+Ljava/awt/font/NumericShaper;->BENGALI_KEY:I
+Ljava/awt/font/NumericShaper;->BSEARCH_THRESHOLD:I
+Ljava/awt/font/NumericShaper;->checkParams([CII)V
+Ljava/awt/font/NumericShaper;->contexts:[C
+Ljava/awt/font/NumericShaper;->CONTEXTUAL_MASK:I
+Ljava/awt/font/NumericShaper;->ctCache:I
+Ljava/awt/font/NumericShaper;->ctCacheLimit:I
+Ljava/awt/font/NumericShaper;->currentRange:Ljava/awt/font/NumericShaper$Range;
+Ljava/awt/font/NumericShaper;->DEVANAGARI_KEY:I
+Ljava/awt/font/NumericShaper;->EASTERN_ARABIC_KEY:I
+Ljava/awt/font/NumericShaper;->ETHIOPIC_KEY:I
+Ljava/awt/font/NumericShaper;->EUROPEAN_KEY:I
+Ljava/awt/font/NumericShaper;->getContextKey(C)I
+Ljava/awt/font/NumericShaper;->getHighBit(I)I
+Ljava/awt/font/NumericShaper;->getKeyFromMask(I)I
+Ljava/awt/font/NumericShaper;->GUJARATI_KEY:I
+Ljava/awt/font/NumericShaper;->GURMUKHI_KEY:I
+Ljava/awt/font/NumericShaper;->isStrongDirectional(C)Z
+Ljava/awt/font/NumericShaper;->KANNADA_KEY:I
+Ljava/awt/font/NumericShaper;->key:I
+Ljava/awt/font/NumericShaper;->KHMER_KEY:I
+Ljava/awt/font/NumericShaper;->LAO_KEY:I
+Ljava/awt/font/NumericShaper;->MALAYALAM_KEY:I
+Ljava/awt/font/NumericShaper;->mask:I
+Ljava/awt/font/NumericShaper;->MONGOLIAN_KEY:I
+Ljava/awt/font/NumericShaper;->MYANMAR_KEY:I
+Ljava/awt/font/NumericShaper;->NUM_KEYS:I
+Ljava/awt/font/NumericShaper;->ORIYA_KEY:I
+Ljava/awt/font/NumericShaper;->rangeArray:[Ljava/awt/font/NumericShaper$Range;
+Ljava/awt/font/NumericShaper;->rangeForCodePoint(I)Ljava/awt/font/NumericShaper$Range;
+Ljava/awt/font/NumericShaper;->rangeSet:Ljava/util/Set;
+Ljava/awt/font/NumericShaper;->search(I[III)I
+Ljava/awt/font/NumericShaper;->shapeContextually([CIII)V
+Ljava/awt/font/NumericShaper;->shapeContextually([CIILjava/awt/font/NumericShaper$Range;)V
+Ljava/awt/font/NumericShaper;->shapeNonContextually([CII)V
+Ljava/awt/font/NumericShaper;->shapingRange:Ljava/awt/font/NumericShaper$Range;
+Ljava/awt/font/NumericShaper;->stCache:I
+Ljava/awt/font/NumericShaper;->strongTable:[I
+Ljava/awt/font/NumericShaper;->TAMIL_KEY:I
+Ljava/awt/font/NumericShaper;->TELUGU_KEY:I
+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;
+Ljava/beans/ChangeListenerMap;->get(Ljava/lang/String;)[Ljava/util/EventListener;
+Ljava/beans/ChangeListenerMap;->getEntries()Ljava/util/Set;
+Ljava/beans/ChangeListenerMap;->getListeners()[Ljava/util/EventListener;
+Ljava/beans/ChangeListenerMap;->getListeners(Ljava/lang/String;)[Ljava/util/EventListener;
+Ljava/beans/ChangeListenerMap;->hasListeners(Ljava/lang/String;)Z
+Ljava/beans/ChangeListenerMap;->map:Ljava/util/Map;
+Ljava/beans/ChangeListenerMap;->newArray(I)[Ljava/util/EventListener;
+Ljava/beans/ChangeListenerMap;->newProxy(Ljava/lang/String;Ljava/util/EventListener;)Ljava/util/EventListener;
+Ljava/beans/ChangeListenerMap;->remove(Ljava/lang/String;Ljava/util/EventListener;)V
+Ljava/beans/ChangeListenerMap;->set(Ljava/lang/String;[Ljava/util/EventListener;)V
+Ljava/beans/IndexedPropertyChangeEvent;->appendTo(Ljava/lang/StringBuilder;)V
+Ljava/beans/IndexedPropertyChangeEvent;->index:I
+Ljava/beans/PropertyChangeEvent;->appendTo(Ljava/lang/StringBuilder;)V
+Ljava/beans/PropertyChangeEvent;->newValue:Ljava/lang/Object;
+Ljava/beans/PropertyChangeEvent;->oldValue:Ljava/lang/Object;
+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;
+Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;->newArray(I)[Ljava/beans/PropertyChangeListener;
+Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;->newProxy(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)Ljava/beans/PropertyChangeListener;
+Ljava/beans/PropertyChangeSupport;->fire([Ljava/beans/PropertyChangeListener;Ljava/beans/PropertyChangeEvent;)V
+Ljava/beans/PropertyChangeSupport;->map:Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;
+Ljava/beans/PropertyChangeSupport;->source:Ljava/lang/Object;
+Ljava/io/BufferedInputStream;->bufUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
+Ljava/io/BufferedInputStream;->DEFAULT_BUFFER_SIZE:I
+Ljava/io/BufferedInputStream;->fill()V
+Ljava/io/BufferedInputStream;->getBufIfOpen()[B
+Ljava/io/BufferedInputStream;->getInIfOpen()Ljava/io/InputStream;
+Ljava/io/BufferedInputStream;->MAX_BUFFER_SIZE:I
+Ljava/io/BufferedInputStream;->read1([BII)I
+Ljava/io/BufferedOutputStream;->flushBuffer()V
+Ljava/io/BufferedReader;->cb:[C
+Ljava/io/BufferedReader;->defaultCharBufferSize:I
+Ljava/io/BufferedReader;->defaultExpectedLineLength:I
+Ljava/io/BufferedReader;->ensureOpen()V
+Ljava/io/BufferedReader;->fill()V
+Ljava/io/BufferedReader;->in:Ljava/io/Reader;
+Ljava/io/BufferedReader;->INVALIDATED:I
+Ljava/io/BufferedReader;->markedChar:I
+Ljava/io/BufferedReader;->markedSkipLF:Z
+Ljava/io/BufferedReader;->nChars:I
+Ljava/io/BufferedReader;->nextChar:I
+Ljava/io/BufferedReader;->read1([CII)I
+Ljava/io/BufferedReader;->readAheadLimit:I
+Ljava/io/BufferedReader;->readLine(Z)Ljava/lang/String;
+Ljava/io/BufferedReader;->skipLF:Z
+Ljava/io/BufferedReader;->UNMARKED:I
+Ljava/io/BufferedWriter;->cb:[C
+Ljava/io/BufferedWriter;->defaultCharBufferSize:I
+Ljava/io/BufferedWriter;->ensureOpen()V
+Ljava/io/BufferedWriter;->flushBuffer()V
+Ljava/io/BufferedWriter;->lineSeparator:Ljava/lang/String;
+Ljava/io/BufferedWriter;->min(II)I
+Ljava/io/BufferedWriter;->nChars:I
+Ljava/io/BufferedWriter;->nextChar:I
+Ljava/io/BufferedWriter;->out:Ljava/io/Writer;
+Ljava/io/ByteArrayOutputStream;->ensureCapacity(I)V
+Ljava/io/ByteArrayOutputStream;->grow(I)V
+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
+Ljava/io/Console$LineReader;->nChars:I
+Ljava/io/Console$LineReader;->nextChar:I
+Ljava/io/Console;-><init>()V
+Ljava/io/Console;-><init>(Ljava/io/InputStream;Ljava/io/OutputStream;)V
+Ljava/io/Console;->cons:Ljava/io/Console;
+Ljava/io/Console;->console()Ljava/io/Console;
+Ljava/io/Console;->cs:Ljava/nio/charset/Charset;
+Ljava/io/Console;->echo(Z)Z
+Ljava/io/Console;->echoOff:Z
+Ljava/io/Console;->formatter:Ljava/util/Formatter;
+Ljava/io/Console;->grow()[C
+Ljava/io/Console;->istty()Z
+Ljava/io/Console;->out:Ljava/io/Writer;
+Ljava/io/Console;->pw:Ljava/io/PrintWriter;
+Ljava/io/Console;->rcb:[C
+Ljava/io/Console;->reader:Ljava/io/Reader;
+Ljava/io/Console;->readline(Z)[C
+Ljava/io/Console;->readLock:Ljava/lang/Object;
+Ljava/io/Console;->writeLock:Ljava/lang/Object;
+Ljava/io/DataInputStream;->bytearr:[B
+Ljava/io/DataInputStream;->chararr:[C
+Ljava/io/DataInputStream;->lineBuffer:[C
+Ljava/io/DataInputStream;->readBuffer:[B
+Ljava/io/DataOutputStream;->bytearr:[B
+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
+Ljava/io/File;-><init>(Ljava/lang/String;Ljava/io/File;)V
+Ljava/io/File;->getPrefixLength()I
+Ljava/io/File;->isInvalid()Z
+Ljava/io/File;->PATH_OFFSET:J
+Ljava/io/File;->PREFIX_LENGTH_OFFSET:J
+Ljava/io/File;->slashify(Ljava/lang/String;Z)Ljava/lang/String;
+Ljava/io/File;->UNSAFE:Lsun/misc/Unsafe;
+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
+Ljava/io/FileInputStream;->channel:Ljava/nio/channels/FileChannel;
+Ljava/io/FileInputStream;->closed:Z
+Ljava/io/FileInputStream;->closeLock:Ljava/lang/Object;
+Ljava/io/FileInputStream;->guard:Ldalvik/system/CloseGuard;
+Ljava/io/FileInputStream;->isFdOwner:Z
+Ljava/io/FileInputStream;->open(Ljava/lang/String;)V
+Ljava/io/FileInputStream;->open0(Ljava/lang/String;)V
+Ljava/io/FileInputStream;->path:Ljava/lang/String;
+Ljava/io/FileInputStream;->skip0(J)J
+Ljava/io/FileInputStream;->tracker:Llibcore/io/IoTracker;
+Ljava/io/FileNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+Ljava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;Z)V
+Ljava/io/FileOutputStream;->append:Z
+Ljava/io/FileOutputStream;->closed:Z
+Ljava/io/FileOutputStream;->closeLock:Ljava/lang/Object;
+Ljava/io/FileOutputStream;->guard:Ldalvik/system/CloseGuard;
+Ljava/io/FileOutputStream;->isFdOwner:Z
+Ljava/io/FileOutputStream;->open(Ljava/lang/String;Z)V
+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
+Ljava/io/FileSystem;->ACCESS_READ:I
+Ljava/io/FileSystem;->ACCESS_WRITE:I
+Ljava/io/FileSystem;->BA_DIRECTORY:I
+Ljava/io/FileSystem;->BA_EXISTS:I
+Ljava/io/FileSystem;->BA_HIDDEN:I
+Ljava/io/FileSystem;->BA_REGULAR:I
+Ljava/io/FileSystem;->getBooleanProperty(Ljava/lang/String;Z)Z
+Ljava/io/FileSystem;->SPACE_FREE:I
+Ljava/io/FileSystem;->SPACE_TOTAL:I
+Ljava/io/FileSystem;->SPACE_USABLE:I
+Ljava/io/FileSystem;->useCanonCaches:Z
+Ljava/io/FileSystem;->useCanonPrefixCache:Z
+Ljava/io/InputStream;->MAX_SKIP_BUFFER_SIZE:I
+Ljava/io/InputStreamReader;->sd:Lsun/nio/cs/StreamDecoder;
+Ljava/io/InterruptedIOException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+Ljava/io/InterruptedIOException;-><init>(Ljava/lang/Throwable;)V
+Ljava/io/LineNumberInputStream;->lineNumber:I
+Ljava/io/LineNumberInputStream;->markLineNumber:I
+Ljava/io/LineNumberInputStream;->markPushBack:I
+Ljava/io/LineNumberInputStream;->pushBack:I
+Ljava/io/LineNumberReader;->lineNumber:I
+Ljava/io/LineNumberReader;->markedLineNumber:I
+Ljava/io/LineNumberReader;->markedSkipLF:Z
+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
+Ljava/io/ObjectInputStream$BlockDataInputStream;->CHAR_BUF_SIZE:I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->currentBlockRemaining()I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->din:Ljava/io/DataInputStream;
+Ljava/io/ObjectInputStream$BlockDataInputStream;->end:I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->getBlockDataMode()Z
+Ljava/io/ObjectInputStream$BlockDataInputStream;->hbuf:[B
+Ljava/io/ObjectInputStream$BlockDataInputStream;->HEADER_BLOCKED:I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->in:Ljava/io/ObjectInputStream$PeekInputStream;
+Ljava/io/ObjectInputStream$BlockDataInputStream;->MAX_BLOCK_SIZE:I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->MAX_HEADER_SIZE:I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->peek()I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->peekByte()B
+Ljava/io/ObjectInputStream$BlockDataInputStream;->pos:I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->read([BIIZ)I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readBlockHeader(Z)I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readBooleans([ZII)V
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readChars([CII)V
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readDoubles([DII)V
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readFloats([FII)V
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readFully([BIIZ)V
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readInts([III)V
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readLongs([JII)V
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readLongUTF()Ljava/lang/String;
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readShorts([SII)V
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readUTFBody(J)Ljava/lang/String;
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readUTFChar(Ljava/lang/StringBuilder;J)I
+Ljava/io/ObjectInputStream$BlockDataInputStream;->readUTFSpan(Ljava/lang/StringBuilder;J)J
+Ljava/io/ObjectInputStream$BlockDataInputStream;->refill()V
+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
+Ljava/io/ObjectInputStream$HandleTable;->deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
+Ljava/io/ObjectInputStream$HandleTable;->entries:[Ljava/lang/Object;
+Ljava/io/ObjectInputStream$HandleTable;->finish(I)V
+Ljava/io/ObjectInputStream$HandleTable;->grow()V
+Ljava/io/ObjectInputStream$HandleTable;->lookupException(I)Ljava/lang/ClassNotFoundException;
+Ljava/io/ObjectInputStream$HandleTable;->lookupObject(I)Ljava/lang/Object;
+Ljava/io/ObjectInputStream$HandleTable;->lowDep:I
+Ljava/io/ObjectInputStream$HandleTable;->markDependency(II)V
+Ljava/io/ObjectInputStream$HandleTable;->markException(ILjava/lang/ClassNotFoundException;)V
+Ljava/io/ObjectInputStream$HandleTable;->setObject(ILjava/lang/Object;)V
+Ljava/io/ObjectInputStream$HandleTable;->size()I
+Ljava/io/ObjectInputStream$HandleTable;->size:I
+Ljava/io/ObjectInputStream$HandleTable;->status:[B
+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
+Ljava/io/ObjectInputStream$ValidationList;->list:Ljava/io/ObjectInputStream$ValidationList$Callback;
+Ljava/io/ObjectInputStream$ValidationList;->register(Ljava/io/ObjectInputValidation;I)V
+Ljava/io/ObjectInputStream;->auditSubclass(Ljava/lang/Class;)Z
+Ljava/io/ObjectInputStream;->checkResolve(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/io/ObjectInputStream;->clear()V
+Ljava/io/ObjectInputStream;->cloneArray(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/io/ObjectInputStream;->closed:Z
+Ljava/io/ObjectInputStream;->curContext:Ljava/io/SerialCallbackContext;
+Ljava/io/ObjectInputStream;->defaultDataEnd:Z
+Ljava/io/ObjectInputStream;->defaultReadFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
+Ljava/io/ObjectInputStream;->depth:I
+Ljava/io/ObjectInputStream;->enableOverride:Z
+Ljava/io/ObjectInputStream;->enableResolve:Z
+Ljava/io/ObjectInputStream;->handleReset()V
+Ljava/io/ObjectInputStream;->handles:Ljava/io/ObjectInputStream$HandleTable;
+Ljava/io/ObjectInputStream;->isCustomSubclass()Z
+Ljava/io/ObjectInputStream;->latestUserDefinedLoader()Ljava/lang/ClassLoader;
+Ljava/io/ObjectInputStream;->NULL_HANDLE:I
+Ljava/io/ObjectInputStream;->passHandle:I
+Ljava/io/ObjectInputStream;->primClasses:Ljava/util/HashMap;
+Ljava/io/ObjectInputStream;->primVals:[B
+Ljava/io/ObjectInputStream;->readArray(Z)Ljava/lang/Object;
+Ljava/io/ObjectInputStream;->readClass(Z)Ljava/lang/Class;
+Ljava/io/ObjectInputStream;->readClassDesc(Z)Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectInputStream;->readEnum(Z)Ljava/lang/Enum;
+Ljava/io/ObjectInputStream;->readExternalData(Ljava/io/Externalizable;Ljava/io/ObjectStreamClass;)V
+Ljava/io/ObjectInputStream;->readFatalException()Ljava/io/IOException;
+Ljava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object;
+Ljava/io/ObjectInputStream;->readNonProxyDesc(Z)Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectInputStream;->readNull()Ljava/lang/Object;
+Ljava/io/ObjectInputStream;->readObject0(Z)Ljava/lang/Object;
+Ljava/io/ObjectInputStream;->readOrdinaryObject(Z)Ljava/lang/Object;
+Ljava/io/ObjectInputStream;->readProxyDesc(Z)Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectInputStream;->readSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
+Ljava/io/ObjectInputStream;->readString(Z)Ljava/lang/String;
+Ljava/io/ObjectInputStream;->readTypeString()Ljava/lang/String;
+Ljava/io/ObjectInputStream;->skipCustomData()V
+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
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->cbuf:[C
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->CHAR_BUF_SIZE:I
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->dout:Ljava/io/DataOutputStream;
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->drain()V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->getBlockDataMode()Z
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->getUTFLength(Ljava/lang/String;)J
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->hbuf:[B
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->MAX_BLOCK_SIZE:I
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->MAX_HEADER_SIZE:I
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->out:Ljava/io/OutputStream;
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->pos:I
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->setBlockDataMode(Z)Z
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->warnIfClosed()V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->warnOnceWhenWriting:Z
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->write([BIIZ)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeBlockHeader(I)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeBooleans([ZII)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeChars([CII)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeDoubles([DII)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeFloats([FII)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeInts([III)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeLongs([JII)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeLongUTF(Ljava/lang/String;)V
+Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeLongUTF(Ljava/lang/String;J)V
+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
+Ljava/io/ObjectOutputStream$HandleTable;->growEntries()V
+Ljava/io/ObjectOutputStream$HandleTable;->growSpine()V
+Ljava/io/ObjectOutputStream$HandleTable;->hash(Ljava/lang/Object;)I
+Ljava/io/ObjectOutputStream$HandleTable;->insert(Ljava/lang/Object;I)V
+Ljava/io/ObjectOutputStream$HandleTable;->loadFactor:F
+Ljava/io/ObjectOutputStream$HandleTable;->lookup(Ljava/lang/Object;)I
+Ljava/io/ObjectOutputStream$HandleTable;->next:[I
+Ljava/io/ObjectOutputStream$HandleTable;->objs:[Ljava/lang/Object;
+Ljava/io/ObjectOutputStream$HandleTable;->size()I
+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
+Ljava/io/ObjectOutputStream$ReplaceTable;->grow()V
+Ljava/io/ObjectOutputStream$ReplaceTable;->htab:Ljava/io/ObjectOutputStream$HandleTable;
+Ljava/io/ObjectOutputStream$ReplaceTable;->lookup(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/io/ObjectOutputStream$ReplaceTable;->reps:[Ljava/lang/Object;
+Ljava/io/ObjectOutputStream$ReplaceTable;->size()I
+Ljava/io/ObjectOutputStream;->auditSubclass(Ljava/lang/Class;)Z
+Ljava/io/ObjectOutputStream;->bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
+Ljava/io/ObjectOutputStream;->clear()V
+Ljava/io/ObjectOutputStream;->curContext:Ljava/io/SerialCallbackContext;
+Ljava/io/ObjectOutputStream;->curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
+Ljava/io/ObjectOutputStream;->debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
+Ljava/io/ObjectOutputStream;->defaultWriteFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
+Ljava/io/ObjectOutputStream;->depth:I
+Ljava/io/ObjectOutputStream;->doublesToBytes([DI[BII)V
+Ljava/io/ObjectOutputStream;->enableOverride:Z
+Ljava/io/ObjectOutputStream;->enableReplace:Z
+Ljava/io/ObjectOutputStream;->extendedDebugInfo:Z
+Ljava/io/ObjectOutputStream;->floatsToBytes([FI[BII)V
+Ljava/io/ObjectOutputStream;->getProtocolVersion()I
+Ljava/io/ObjectOutputStream;->handles:Ljava/io/ObjectOutputStream$HandleTable;
+Ljava/io/ObjectOutputStream;->isCustomSubclass()Z
+Ljava/io/ObjectOutputStream;->primVals:[B
+Ljava/io/ObjectOutputStream;->subs:Ljava/io/ObjectOutputStream$ReplaceTable;
+Ljava/io/ObjectOutputStream;->verifySubclass()V
+Ljava/io/ObjectOutputStream;->writeArray(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
+Ljava/io/ObjectOutputStream;->writeClass(Ljava/lang/Class;Z)V
+Ljava/io/ObjectOutputStream;->writeClassDesc(Ljava/io/ObjectStreamClass;Z)V
+Ljava/io/ObjectOutputStream;->writeEnum(Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V
+Ljava/io/ObjectOutputStream;->writeExternalData(Ljava/io/Externalizable;)V
+Ljava/io/ObjectOutputStream;->writeFatalException(Ljava/io/IOException;)V
+Ljava/io/ObjectOutputStream;->writeHandle(I)V
+Ljava/io/ObjectOutputStream;->writeNonProxyDesc(Ljava/io/ObjectStreamClass;Z)V
+Ljava/io/ObjectOutputStream;->writeNull()V
+Ljava/io/ObjectOutputStream;->writeObject0(Ljava/lang/Object;Z)V
+Ljava/io/ObjectOutputStream;->writeOrdinaryObject(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
+Ljava/io/ObjectOutputStream;->writeProxyDesc(Ljava/io/ObjectStreamClass;Z)V
+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;
+Ljava/io/ObjectStreamClass$EntryFuture;->getOwner()Ljava/lang/Thread;
+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;
+Ljava/io/ObjectStreamClass$FieldReflector;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
+Ljava/io/ObjectStreamClass$FieldReflector;->getPrimFieldValues(Ljava/lang/Object;[B)V
+Ljava/io/ObjectStreamClass$FieldReflector;->numPrimFields:I
+Ljava/io/ObjectStreamClass$FieldReflector;->offsets:[I
+Ljava/io/ObjectStreamClass$FieldReflector;->readKeys:[J
+Ljava/io/ObjectStreamClass$FieldReflector;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
+Ljava/io/ObjectStreamClass$FieldReflector;->setPrimFieldValues(Ljava/lang/Object;[B)V
+Ljava/io/ObjectStreamClass$FieldReflector;->typeCodes:[C
+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
+Ljava/io/ObjectStreamClass;-><init>(Ljava/lang/Class;)V
+Ljava/io/ObjectStreamClass;->checkDefaultSerialize()V
+Ljava/io/ObjectStreamClass;->checkDeserialize()V
+Ljava/io/ObjectStreamClass;->checkSerialize()V
+Ljava/io/ObjectStreamClass;->cl:Ljava/lang/Class;
+Ljava/io/ObjectStreamClass;->classNamesEqual(Ljava/lang/String;Ljava/lang/String;)Z
+Ljava/io/ObjectStreamClass;->cons:Ljava/lang/reflect/Constructor;
+Ljava/io/ObjectStreamClass;->dataLayout:[Ljava/io/ObjectStreamClass$ClassDataSlot;
+Ljava/io/ObjectStreamClass;->defaultSerializeEx:Ljava/io/ObjectStreamClass$ExceptionInfo;
+Ljava/io/ObjectStreamClass;->deserializeEx:Ljava/io/ObjectStreamClass$ExceptionInfo;
+Ljava/io/ObjectStreamClass;->externalizable:Z
+Ljava/io/ObjectStreamClass;->fieldRefl:Ljava/io/ObjectStreamClass$FieldReflector;
+Ljava/io/ObjectStreamClass;->getClassDataLayout()[Ljava/io/ObjectStreamClass$ClassDataSlot;
+Ljava/io/ObjectStreamClass;->getClassDataLayout0()[Ljava/io/ObjectStreamClass$ClassDataSlot;
+Ljava/io/ObjectStreamClass;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String;
+Ljava/io/ObjectStreamClass;->getDeclaredSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
+Ljava/io/ObjectStreamClass;->getDeclaredSUID(Ljava/lang/Class;)Ljava/lang/Long;
+Ljava/io/ObjectStreamClass;->getDefaultSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
+Ljava/io/ObjectStreamClass;->getExternalizableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
+Ljava/io/ObjectStreamClass;->getField(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/ObjectStreamField;
+Ljava/io/ObjectStreamClass;->getFields(Z)[Ljava/io/ObjectStreamField;
+Ljava/io/ObjectStreamClass;->getInheritableMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
+Ljava/io/ObjectStreamClass;->getMethodSignature([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
+Ljava/io/ObjectStreamClass;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
+Ljava/io/ObjectStreamClass;->getPackageName(Ljava/lang/Class;)Ljava/lang/String;
+Ljava/io/ObjectStreamClass;->getPrimFieldValues(Ljava/lang/Object;[B)V
+Ljava/io/ObjectStreamClass;->getPrivateMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
+Ljava/io/ObjectStreamClass;->getReflector([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)Ljava/io/ObjectStreamClass$FieldReflector;
+Ljava/io/ObjectStreamClass;->getResolveException()Ljava/lang/ClassNotFoundException;
+Ljava/io/ObjectStreamClass;->getSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
+Ljava/io/ObjectStreamClass;->getSerializableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
+Ljava/io/ObjectStreamClass;->getSuperDesc()Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectStreamClass;->getVariantFor(Ljava/lang/Class;)Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectStreamClass;->hasBlockExternalData()Z
+Ljava/io/ObjectStreamClass;->hasBlockExternalData:Z
+Ljava/io/ObjectStreamClass;->hasReadResolveMethod()Z
+Ljava/io/ObjectStreamClass;->hasStaticInitializer(Ljava/lang/Class;Z)Z
+Ljava/io/ObjectStreamClass;->hasWriteObjectData:Z
+Ljava/io/ObjectStreamClass;->hasWriteObjectMethod()Z
+Ljava/io/ObjectStreamClass;->hasWriteReplaceMethod()Z
+Ljava/io/ObjectStreamClass;->initialized:Z
+Ljava/io/ObjectStreamClass;->initNonProxy(Ljava/io/ObjectStreamClass;Ljava/lang/Class;Ljava/lang/ClassNotFoundException;Ljava/io/ObjectStreamClass;)V
+Ljava/io/ObjectStreamClass;->initProxy(Ljava/lang/Class;Ljava/lang/ClassNotFoundException;Ljava/io/ObjectStreamClass;)V
+Ljava/io/ObjectStreamClass;->invokeReadObject(Ljava/lang/Object;Ljava/io/ObjectInputStream;)V
+Ljava/io/ObjectStreamClass;->invokeReadObjectNoData(Ljava/lang/Object;)V
+Ljava/io/ObjectStreamClass;->invokeReadResolve(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/io/ObjectStreamClass;->invokeWriteObject(Ljava/lang/Object;Ljava/io/ObjectOutputStream;)V
+Ljava/io/ObjectStreamClass;->invokeWriteReplace(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/io/ObjectStreamClass;->isEnum()Z
+Ljava/io/ObjectStreamClass;->isEnum:Z
+Ljava/io/ObjectStreamClass;->isExternalizable()Z
+Ljava/io/ObjectStreamClass;->isInstantiable()Z
+Ljava/io/ObjectStreamClass;->isProxy()Z
+Ljava/io/ObjectStreamClass;->isProxy:Z
+Ljava/io/ObjectStreamClass;->isSerializable()Z
+Ljava/io/ObjectStreamClass;->localDesc:Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectStreamClass;->lookup(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectStreamClass;->matchFields([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)[Ljava/io/ObjectStreamField;
+Ljava/io/ObjectStreamClass;->MAX_SDK_TARGET_FOR_CLINIT_UIDGEN_WORKAROUND:I
+Ljava/io/ObjectStreamClass;->name:Ljava/lang/String;
+Ljava/io/ObjectStreamClass;->numObjFields:I
+Ljava/io/ObjectStreamClass;->packageEquals(Ljava/lang/Class;Ljava/lang/Class;)Z
+Ljava/io/ObjectStreamClass;->primDataSize:I
+Ljava/io/ObjectStreamClass;->processQueue(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
+Ljava/io/ObjectStreamClass;->readNonProxy(Ljava/io/ObjectInputStream;)V
+Ljava/io/ObjectStreamClass;->readObjectMethod:Ljava/lang/reflect/Method;
+Ljava/io/ObjectStreamClass;->readObjectNoDataMethod:Ljava/lang/reflect/Method;
+Ljava/io/ObjectStreamClass;->readResolveMethod:Ljava/lang/reflect/Method;
+Ljava/io/ObjectStreamClass;->requireInitialized()V
+Ljava/io/ObjectStreamClass;->resolveEx:Ljava/lang/ClassNotFoundException;
+Ljava/io/ObjectStreamClass;->serializable:Z
+Ljava/io/ObjectStreamClass;->serializeEx:Ljava/io/ObjectStreamClass$ExceptionInfo;
+Ljava/io/ObjectStreamClass;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
+Ljava/io/ObjectStreamClass;->setPrimFieldValues(Ljava/lang/Object;[B)V
+Ljava/io/ObjectStreamClass;->suid:Ljava/lang/Long;
+Ljava/io/ObjectStreamClass;->superDesc:Ljava/io/ObjectStreamClass;
+Ljava/io/ObjectStreamClass;->throwMiscException(Ljava/lang/Throwable;)V
+Ljava/io/ObjectStreamClass;->writeNonProxy(Ljava/io/ObjectOutputStream;)V
+Ljava/io/ObjectStreamClass;->writeObjectMethod:Ljava/lang/reflect/Method;
+Ljava/io/ObjectStreamClass;->writeReplaceMethod:Ljava/lang/reflect/Method;
+Ljava/io/ObjectStreamField;-><init>(Ljava/lang/reflect/Field;ZZ)V
+Ljava/io/ObjectStreamField;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
+Ljava/io/ObjectStreamField;->field:Ljava/lang/reflect/Field;
+Ljava/io/ObjectStreamField;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String;
+Ljava/io/ObjectStreamField;->getSignature()Ljava/lang/String;
+Ljava/io/ObjectStreamField;->name:Ljava/lang/String;
+Ljava/io/ObjectStreamField;->offset:I
+Ljava/io/ObjectStreamField;->signature:Ljava/lang/String;
+Ljava/io/ObjectStreamField;->type:Ljava/lang/Class;
+Ljava/io/ObjectStreamField;->unshared:Z
+Ljava/io/OptionalDataException;-><init>(I)V
+Ljava/io/OptionalDataException;-><init>(Z)V
+Ljava/io/OutputStreamWriter;->flushBuffer()V
+Ljava/io/OutputStreamWriter;->se:Lsun/nio/cs/StreamEncoder;
+Ljava/io/PipedInputStream;->awaitSpace()V
+Ljava/io/PipedInputStream;->checkStateForReceive()V
+Ljava/io/PipedInputStream;->closedByReader:Z
+Ljava/io/PipedInputStream;->closedByWriter:Z
+Ljava/io/PipedInputStream;->connected:Z
+Ljava/io/PipedInputStream;->DEFAULT_PIPE_SIZE:I
+Ljava/io/PipedInputStream;->initPipe(I)V
+Ljava/io/PipedInputStream;->readSide:Ljava/lang/Thread;
+Ljava/io/PipedInputStream;->receive([BII)V
+Ljava/io/PipedInputStream;->receivedLast()V
+Ljava/io/PipedInputStream;->writeSide:Ljava/lang/Thread;
+Ljava/io/PipedOutputStream;->sink:Ljava/io/PipedInputStream;
+Ljava/io/PipedReader;->buffer:[C
+Ljava/io/PipedReader;->closedByReader:Z
+Ljava/io/PipedReader;->closedByWriter:Z
+Ljava/io/PipedReader;->connected:Z
+Ljava/io/PipedReader;->DEFAULT_PIPE_SIZE:I
+Ljava/io/PipedReader;->in:I
+Ljava/io/PipedReader;->initPipe(I)V
+Ljava/io/PipedReader;->out:I
+Ljava/io/PipedReader;->readSide:Ljava/lang/Thread;
+Ljava/io/PipedReader;->receive(I)V
+Ljava/io/PipedReader;->receive([CII)V
+Ljava/io/PipedReader;->receivedLast()V
+Ljava/io/PipedReader;->writeSide:Ljava/lang/Thread;
+Ljava/io/PipedWriter;->closed:Z
+Ljava/io/PipedWriter;->sink:Ljava/io/PipedReader;
+Ljava/io/PrintStream;-><init>(ZLjava/io/OutputStream;)V
+Ljava/io/PrintStream;-><init>(ZLjava/io/OutputStream;Ljava/nio/charset/Charset;)V
+Ljava/io/PrintStream;-><init>(ZLjava/nio/charset/Charset;Ljava/io/OutputStream;)V
+Ljava/io/PrintStream;->autoFlush:Z
+Ljava/io/PrintStream;->charOut:Ljava/io/OutputStreamWriter;
+Ljava/io/PrintStream;->charset:Ljava/nio/charset/Charset;
+Ljava/io/PrintStream;->closing:Z
+Ljava/io/PrintStream;->ensureOpen()V
+Ljava/io/PrintStream;->formatter:Ljava/util/Formatter;
+Ljava/io/PrintStream;->getTextOut()Ljava/io/BufferedWriter;
+Ljava/io/PrintStream;->newLine()V
+Ljava/io/PrintStream;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
+Ljava/io/PrintStream;->textOut:Ljava/io/BufferedWriter;
+Ljava/io/PrintStream;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
+Ljava/io/PrintStream;->trouble:Z
+Ljava/io/PrintStream;->write(Ljava/lang/String;)V
+Ljava/io/PrintStream;->write([C)V
+Ljava/io/PrintWriter;-><init>(Ljava/nio/charset/Charset;Ljava/io/File;)V
+Ljava/io/PrintWriter;->autoFlush:Z
+Ljava/io/PrintWriter;->ensureOpen()V
+Ljava/io/PrintWriter;->formatter:Ljava/util/Formatter;
+Ljava/io/PrintWriter;->lineSeparator:Ljava/lang/String;
+Ljava/io/PrintWriter;->newLine()V
+Ljava/io/PrintWriter;->psOut:Ljava/io/PrintStream;
+Ljava/io/PrintWriter;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
+Ljava/io/PrintWriter;->trouble:Z
+Ljava/io/PushbackInputStream;->ensureOpen()V
+Ljava/io/PushbackReader;->buf:[C
+Ljava/io/PushbackReader;->ensureOpen()V
+Ljava/io/PushbackReader;->pos:I
+Ljava/io/RandomAccessFile;->channel:Ljava/nio/channels/FileChannel;
+Ljava/io/RandomAccessFile;->closed:Z
+Ljava/io/RandomAccessFile;->closeLock:Ljava/lang/Object;
+Ljava/io/RandomAccessFile;->flushAfterWrite:I
+Ljava/io/RandomAccessFile;->FLUSH_FDATASYNC:I
+Ljava/io/RandomAccessFile;->FLUSH_FSYNC:I
+Ljava/io/RandomAccessFile;->FLUSH_NONE:I
+Ljava/io/RandomAccessFile;->guard:Ldalvik/system/CloseGuard;
+Ljava/io/RandomAccessFile;->ioTracker:Llibcore/io/IoTracker;
+Ljava/io/RandomAccessFile;->maybeSync()V
+Ljava/io/RandomAccessFile;->mode:I
+Ljava/io/RandomAccessFile;->path:Ljava/lang/String;
+Ljava/io/RandomAccessFile;->readBytes([BII)I
+Ljava/io/RandomAccessFile;->rw:Z
+Ljava/io/RandomAccessFile;->scratch:[B
+Ljava/io/RandomAccessFile;->writeBytes([BII)V
+Ljava/io/Reader;->maxSkipBufferSize:I
+Ljava/io/Reader;->skipBuffer:[C
+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
+Ljava/io/SerialCallbackContext;->desc:Ljava/io/ObjectStreamClass;
+Ljava/io/SerialCallbackContext;->getDesc()Ljava/io/ObjectStreamClass;
+Ljava/io/SerialCallbackContext;->getObj()Ljava/lang/Object;
+Ljava/io/SerialCallbackContext;->obj:Ljava/lang/Object;
+Ljava/io/SerialCallbackContext;->setUsed()V
+Ljava/io/SerialCallbackContext;->thread:Ljava/lang/Thread;
+Ljava/io/StreamTokenizer;-><init>()V
+Ljava/io/StreamTokenizer;->buf:[C
+Ljava/io/StreamTokenizer;->ctype:[B
+Ljava/io/StreamTokenizer;->CT_ALPHA:B
+Ljava/io/StreamTokenizer;->CT_COMMENT:B
+Ljava/io/StreamTokenizer;->CT_DIGIT:B
+Ljava/io/StreamTokenizer;->CT_QUOTE:B
+Ljava/io/StreamTokenizer;->CT_WHITESPACE:B
+Ljava/io/StreamTokenizer;->eolIsSignificantP:Z
+Ljava/io/StreamTokenizer;->forceLower:Z
+Ljava/io/StreamTokenizer;->input:Ljava/io/InputStream;
+Ljava/io/StreamTokenizer;->LINENO:I
+Ljava/io/StreamTokenizer;->NEED_CHAR:I
+Ljava/io/StreamTokenizer;->peekc:I
+Ljava/io/StreamTokenizer;->pushedBack:Z
+Ljava/io/StreamTokenizer;->read()I
+Ljava/io/StreamTokenizer;->reader:Ljava/io/Reader;
+Ljava/io/StreamTokenizer;->SKIP_LF:I
+Ljava/io/StreamTokenizer;->slashSlashCommentsP:Z
+Ljava/io/StreamTokenizer;->slashStarCommentsP:Z
+Ljava/io/StreamTokenizer;->TT_NOTHING:I
+Ljava/io/StringReader;->ensureOpen()V
+Ljava/io/StringReader;->length:I
+Ljava/io/StringReader;->mark:I
+Ljava/io/StringReader;->next:I
+Ljava/io/StringReader;->str:Ljava/lang/String;
+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;
+Ljava/lang/AbstractStringBuilder;->append(F)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append(I)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append(J)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append(Ljava/lang/Object;)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append(Ljava/lang/StringBuffer;)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append(Z)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append([C)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->append([CII)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->appendCodePoint(I)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->appendNull()Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->capacity()I
+Ljava/lang/AbstractStringBuilder;->codePointAt(I)I
+Ljava/lang/AbstractStringBuilder;->codePointBefore(I)I
+Ljava/lang/AbstractStringBuilder;->codePointCount(II)I
+Ljava/lang/AbstractStringBuilder;->count:I
+Ljava/lang/AbstractStringBuilder;->delete(II)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->deleteCharAt(I)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->ensureCapacity(I)V
+Ljava/lang/AbstractStringBuilder;->ensureCapacityInternal(I)V
+Ljava/lang/AbstractStringBuilder;->getChars(II[CI)V
+Ljava/lang/AbstractStringBuilder;->getValue()[C
+Ljava/lang/AbstractStringBuilder;->hugeCapacity(I)I
+Ljava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;)I
+Ljava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;I)I
+Ljava/lang/AbstractStringBuilder;->insert(IC)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(ID)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(IF)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(II)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(IJ)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(ILjava/lang/CharSequence;)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(ILjava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(ILjava/lang/Object;)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(IZ)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(I[C)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->insert(I[CII)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->lastIndexOf(Ljava/lang/String;)I
+Ljava/lang/AbstractStringBuilder;->lastIndexOf(Ljava/lang/String;I)I
+Ljava/lang/AbstractStringBuilder;->MAX_ARRAY_SIZE:I
+Ljava/lang/AbstractStringBuilder;->newCapacity(I)I
+Ljava/lang/AbstractStringBuilder;->offsetByCodePoints(II)I
+Ljava/lang/AbstractStringBuilder;->replace(IILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->reverse()Ljava/lang/AbstractStringBuilder;
+Ljava/lang/AbstractStringBuilder;->reverseAllValidSurrogatePairs()V
+Ljava/lang/AbstractStringBuilder;->setCharAt(IC)V
+Ljava/lang/AbstractStringBuilder;->setLength(I)V
+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
+Ljava/lang/Character;->codePointAtImpl([CII)I
+Ljava/lang/Character;->codePointBeforeImpl([CII)I
+Ljava/lang/Character;->codePointCountImpl([CII)I
+Ljava/lang/Character;->digitImpl(II)I
+Ljava/lang/Character;->DIRECTIONALITY:[B
+Ljava/lang/Character;->ERROR:I
+Ljava/lang/Character;->getDirectionalityImpl(I)B
+Ljava/lang/Character;->getNameImpl(I)Ljava/lang/String;
+Ljava/lang/Character;->getNumericValueImpl(I)I
+Ljava/lang/Character;->getTypeImpl(I)I
+Ljava/lang/Character;->isAlphabeticImpl(I)Z
+Ljava/lang/Character;->isDefinedImpl(I)Z
+Ljava/lang/Character;->isDigitImpl(I)Z
+Ljava/lang/Character;->isIdentifierIgnorableImpl(I)Z
+Ljava/lang/Character;->isIdeographicImpl(I)Z
+Ljava/lang/Character;->isLetterImpl(I)Z
+Ljava/lang/Character;->isLetterOrDigitImpl(I)Z
+Ljava/lang/Character;->isLowerCaseImpl(I)Z
+Ljava/lang/Character;->isMirroredImpl(I)Z
+Ljava/lang/Character;->isSpaceCharImpl(I)Z
+Ljava/lang/Character;->isTitleCaseImpl(I)Z
+Ljava/lang/Character;->isUnicodeIdentifierPartImpl(I)Z
+Ljava/lang/Character;->isUnicodeIdentifierStartImpl(I)Z
+Ljava/lang/Character;->isUpperCaseImpl(I)Z
+Ljava/lang/Character;->isWhitespaceImpl(I)Z
+Ljava/lang/Character;->offsetByCodePointsImpl([CIIII)I
+Ljava/lang/Character;->toLowerCaseImpl(I)I
+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
+Ljava/lang/Class;->cannotCastMsg(Ljava/lang/Object;)Ljava/lang/String;
+Ljava/lang/Class;->classFlags:I
+Ljava/lang/Class;->classForName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
+Ljava/lang/Class;->classNameImpliesTopLevel()Z
+Ljava/lang/Class;->classSize:I
+Ljava/lang/Class;->componentType:Ljava/lang/Class;
+Ljava/lang/Class;->copiedMethodsOffset:S
+Ljava/lang/Class;->dexTypeIndex:I
+Ljava/lang/Class;->ENUM:I
+Ljava/lang/Class;->extData:Ldalvik/system/ClassExt;
+Ljava/lang/Class;->FINALIZABLE:I
+Ljava/lang/Class;->findInterfaceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
+Ljava/lang/Class;->getAccessFlags()I
+Ljava/lang/Class;->getConstructor0([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;
+Ljava/lang/Class;->getDeclaredConstructorInternal([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
+Ljava/lang/Class;->getDeclaredConstructorsInternal(Z)[Ljava/lang/reflect/Constructor;
+Ljava/lang/Class;->getDeclaredFieldsUnchecked(Z)[Ljava/lang/reflect/Field;
+Ljava/lang/Class;->getDeclaredMethodInternal(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
+Ljava/lang/Class;->getEnclosingConstructorNative()Ljava/lang/reflect/Constructor;
+Ljava/lang/Class;->getEnclosingMethodNative()Ljava/lang/reflect/Method;
+Ljava/lang/Class;->getEnumConstantsShared()[Ljava/lang/Object;
+Ljava/lang/Class;->getInnerClassFlags(I)I
+Ljava/lang/Class;->getInnerClassName()Ljava/lang/String;
+Ljava/lang/Class;->getInstanceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
+Ljava/lang/Class;->getInterfacesInternal()[Ljava/lang/Class;
+Ljava/lang/Class;->getNameNative()Ljava/lang/String;
+Ljava/lang/Class;->getPackageName$()Ljava/lang/String;
+Ljava/lang/Class;->getPrimitiveClass(Ljava/lang/String;)Ljava/lang/Class;
+Ljava/lang/Class;->getPublicDeclaredFields()[Ljava/lang/reflect/Field;
+Ljava/lang/Class;->getPublicFieldRecursive(Ljava/lang/String;)Ljava/lang/reflect/Field;
+Ljava/lang/Class;->getPublicFieldsRecursive(Ljava/util/List;)V
+Ljava/lang/Class;->getPublicMethodRecursive(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
+Ljava/lang/Class;->getPublicMethodsInternal(Ljava/util/List;)V
+Ljava/lang/Class;->getSignatureAnnotation()[Ljava/lang/String;
+Ljava/lang/Class;->getSignatureAttribute()Ljava/lang/String;
+Ljava/lang/Class;->iFields:J
+Ljava/lang/Class;->isDeclaredAnnotationPresent(Ljava/lang/Class;)Z
+Ljava/lang/Class;->isFinalizable()Z
+Ljava/lang/Class;->isLocalOrAnonymousClass()Z
+Ljava/lang/Class;->isProxy()Z
+Ljava/lang/Class;->methods:J
+Ljava/lang/Class;->numReferenceInstanceFields:I
+Ljava/lang/Class;->numReferenceStaticFields:I
+Ljava/lang/Class;->objectSizeAllocFastPath:I
+Ljava/lang/Class;->primitiveType:I
+Ljava/lang/Class;->referenceInstanceOffsets:I
+Ljava/lang/Class;->resolveName(Ljava/lang/String;)Ljava/lang/String;
+Ljava/lang/Class;->sFields:J
+Ljava/lang/Class;->superClass:Ljava/lang/Class;
+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
+Ljava/lang/ClassLoader;->allocator:J
+Ljava/lang/ClassLoader;->checkCreateClassLoader()Ljava/lang/Void;
+Ljava/lang/ClassLoader;->classTable:J
+Ljava/lang/ClassLoader;->createSystemClassLoader()Ljava/lang/ClassLoader;
+Ljava/lang/ClassLoader;->findBootstrapClassOrNull(Ljava/lang/String;)Ljava/lang/Class;
+Ljava/lang/ClassLoader;->getBootstrapResource(Ljava/lang/String;)Ljava/net/URL;
+Ljava/lang/ClassLoader;->getBootstrapResources(Ljava/lang/String;)Ljava/util/Enumeration;
+Ljava/lang/ClassLoader;->packages:Ljava/util/HashMap;
+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
+Ljava/lang/Daemons$Daemon;->interrupt(Ljava/lang/Thread;)V
+Ljava/lang/Daemons$Daemon;->name:Ljava/lang/String;
+Ljava/lang/Daemons$Daemon;->postZygoteFork:Z
+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
+Ljava/lang/Daemons$FinalizerWatchdogDaemon;->goToSleep()V
+Ljava/lang/Daemons$FinalizerWatchdogDaemon;->needToWork:Z
+Ljava/lang/Daemons$FinalizerWatchdogDaemon;->runInternal()V
+Ljava/lang/Daemons$FinalizerWatchdogDaemon;->sleepFor(J)Z
+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
+Ljava/lang/Daemons;->requestGC()V
+Ljava/lang/Daemons;->startPostZygoteFork()V
+Ljava/lang/Enum;->sharedConstantsCache:Llibcore/util/BasicLruCache;
+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
+Ljava/lang/Integer$IntegerCache;->low:I
+Ljava/lang/Integer;->DigitOnes:[C
+Ljava/lang/Integer;->digits:[C
+Ljava/lang/Integer;->DigitTens:[C
+Ljava/lang/Integer;->formatUnsignedInt(II[CII)I
+Ljava/lang/Integer;->getChars(II[C)V
+Ljava/lang/Integer;->sizeTable:[I
+Ljava/lang/Integer;->SMALL_NEG_VALUES:[Ljava/lang/String;
+Ljava/lang/Integer;->SMALL_NONNEG_VALUES:[Ljava/lang/String;
+Ljava/lang/Integer;->stringSize(I)I
+Ljava/lang/Integer;->toUnsignedString0(II)Ljava/lang/String;
+Ljava/lang/invoke/CallSite;-><init>(Ljava/lang/invoke/MethodHandle;)V
+Ljava/lang/invoke/CallSite;-><init>(Ljava/lang/invoke/MethodType;)V
+Ljava/lang/invoke/CallSite;-><init>(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)V
+Ljava/lang/invoke/CallSite;->checkTargetChange(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
+Ljava/lang/invoke/CallSite;->getTargetVolatile()Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/CallSite;->GET_TARGET:Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/CallSite;->initializeGetTarget()V
+Ljava/lang/invoke/CallSite;->makeDynamicInvoker()Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/CallSite;->setTargetNormal(Ljava/lang/invoke/MethodHandle;)V
+Ljava/lang/invoke/CallSite;->setTargetVolatile(Ljava/lang/invoke/MethodHandle;)V
+Ljava/lang/invoke/CallSite;->target:Ljava/lang/invoke/MethodHandle;
+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
+Ljava/lang/invoke/MethodHandle;->asSpreaderChecks(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodHandle;->cachedSpreadInvoker:Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandle;->duplicate()Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandle;->getHandleKind()I
+Ljava/lang/invoke/MethodHandle;->handleKind:I
+Ljava/lang/invoke/MethodHandle;->IGET:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_CALLSITE_TRANSFORM:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_DIRECT:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_INTERFACE:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_STATIC:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_SUPER:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_TRANSFORM:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_VAR_HANDLE:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_VAR_HANDLE_EXACT:I
+Ljava/lang/invoke/MethodHandle;->INVOKE_VIRTUAL:I
+Ljava/lang/invoke/MethodHandle;->IPUT:I
+Ljava/lang/invoke/MethodHandle;->nominalType:Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodHandle;->SGET:I
+Ljava/lang/invoke/MethodHandle;->spreadArrayChecks(Ljava/lang/Class;I)V
+Ljava/lang/invoke/MethodHandle;->SPUT:I
+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;
+Ljava/lang/invoke/MethodHandleImpl;->reveal()Ljava/lang/invoke/MethodHandleInfo;
+Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;)V
+Ljava/lang/invoke/MethodHandles$Lookup;->accessFailedMessage(Ljava/lang/Class;Ljava/lang/Class;I)Ljava/lang/String;
+Ljava/lang/invoke/MethodHandles$Lookup;->allowedModes:I
+Ljava/lang/invoke/MethodHandles$Lookup;->ALL_MODES:I
+Ljava/lang/invoke/MethodHandles$Lookup;->checkAccess(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/String;)V
+Ljava/lang/invoke/MethodHandles$Lookup;->checkReturnType(Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodType;)V
+Ljava/lang/invoke/MethodHandles$Lookup;->checkSpecialCaller(Ljava/lang/Class;)V
+Ljava/lang/invoke/MethodHandles$Lookup;->checkUnprivilegedlookupClass(Ljava/lang/Class;I)V
+Ljava/lang/invoke/MethodHandles$Lookup;->commonFieldChecks(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/Class;ZZ)V
+Ljava/lang/invoke/MethodHandles$Lookup;->createMethodHandle(Ljava/lang/reflect/Method;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->createMethodHandleForConstructor(Ljava/lang/reflect/Constructor;)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->findAccessor(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->findAccessor(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/Class;IZ)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->findFieldOfType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Field;
+Ljava/lang/invoke/MethodHandles$Lookup;->findSpecial(Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodType;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->findStaticVarHandle(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->findVarHandle(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->findVirtualForMH(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->findVirtualForVH(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandles$Lookup;->fixmods(I)I
+Ljava/lang/invoke/MethodHandles$Lookup;->hasPrivateAccess()Z
+Ljava/lang/invoke/MethodHandles$Lookup;->initMethodType(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodHandles$Lookup;->lookupClass:Ljava/lang/Class;
+Ljava/lang/invoke/MethodHandles$Lookup;->PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
+Ljava/lang/invoke/MethodHandles$Lookup;->throwMakeAccessException(Ljava/lang/String;Ljava/lang/Object;)V
+Ljava/lang/invoke/MethodHandles$Lookup;->unreflectVarHandle(Ljava/lang/reflect/Field;)Ljava/lang/invoke/VarHandle;
+Ljava/lang/invoke/MethodHandles;-><init>()V
+Ljava/lang/invoke/MethodHandles;->arrayElementGetter([BI)B
+Ljava/lang/invoke/MethodHandles;->arrayElementGetter([CI)C
+Ljava/lang/invoke/MethodHandles;->arrayElementGetter([DI)D
+Ljava/lang/invoke/MethodHandles;->arrayElementGetter([FI)F
+Ljava/lang/invoke/MethodHandles;->arrayElementGetter([II)I
+Ljava/lang/invoke/MethodHandles;->arrayElementGetter([JI)J
+Ljava/lang/invoke/MethodHandles;->arrayElementGetter([SI)S
+Ljava/lang/invoke/MethodHandles;->arrayElementGetter([ZI)Z
+Ljava/lang/invoke/MethodHandles;->arrayElementSetter([BIB)V
+Ljava/lang/invoke/MethodHandles;->arrayElementSetter([CIC)V
+Ljava/lang/invoke/MethodHandles;->arrayElementSetter([DID)V
+Ljava/lang/invoke/MethodHandles;->arrayElementSetter([FIF)V
+Ljava/lang/invoke/MethodHandles;->arrayElementSetter([III)V
+Ljava/lang/invoke/MethodHandles;->arrayElementSetter([JIJ)V
+Ljava/lang/invoke/MethodHandles;->arrayElementSetter([SIS)V
+Ljava/lang/invoke/MethodHandles;->arrayElementSetter([ZIZ)V
+Ljava/lang/invoke/MethodHandles;->arrayElementVarHandle(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
+Ljava/lang/invoke/MethodHandles;->byteArrayViewVarHandle(Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
+Ljava/lang/invoke/MethodHandles;->byteBufferViewVarHandle(Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
+Ljava/lang/invoke/MethodHandles;->checkClassIsArray(Ljava/lang/Class;)V
+Ljava/lang/invoke/MethodHandles;->checkTypeIsViewable(Ljava/lang/Class;)V
+Ljava/lang/invoke/MethodHandles;->collectArgumentsChecks(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodHandles;->copyTypes(Ljava/util/List;)Ljava/util/List;
+Ljava/lang/invoke/MethodHandles;->dropArgumentChecks(Ljava/lang/invoke/MethodType;ILjava/util/List;)I
+Ljava/lang/invoke/MethodHandles;->explicitCastArgumentsChecks(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
+Ljava/lang/invoke/MethodHandles;->filterArgumentChecks(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
+Ljava/lang/invoke/MethodHandles;->filterArgumentsCheckArity(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
+Ljava/lang/invoke/MethodHandles;->filterReturnValueChecks(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
+Ljava/lang/invoke/MethodHandles;->foldArgumentChecks(ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
+Ljava/lang/invoke/MethodHandles;->getMethodHandleImpl(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandleImpl;
+Ljava/lang/invoke/MethodHandles;->identity(B)B
+Ljava/lang/invoke/MethodHandles;->identity(C)C
+Ljava/lang/invoke/MethodHandles;->identity(D)D
+Ljava/lang/invoke/MethodHandles;->identity(F)F
+Ljava/lang/invoke/MethodHandles;->identity(I)I
+Ljava/lang/invoke/MethodHandles;->identity(J)J
+Ljava/lang/invoke/MethodHandles;->identity(S)S
+Ljava/lang/invoke/MethodHandles;->identity(Z)Z
+Ljava/lang/invoke/MethodHandles;->insertArgumentsChecks(Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class;
+Ljava/lang/invoke/MethodHandles;->methodHandleForVarHandleAccessor(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandles;->misMatchedTypes(Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/RuntimeException;
+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
+Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->get(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->map:Ljava/util/concurrent/ConcurrentMap;
+Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->stale:Ljava/lang/ref/ReferenceQueue;
+Ljava/lang/invoke/MethodType;-><init>()V
+Ljava/lang/invoke/MethodType;-><init>(Ljava/lang/Class;[Ljava/lang/Class;Z)V
+Ljava/lang/invoke/MethodType;-><init>([Ljava/lang/Class;Ljava/lang/Class;)V
+Ljava/lang/invoke/MethodType;->asCollectorType(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodType;->asSpreaderType(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodType;->basicType()Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodType;->canConvert(Ljava/lang/Class;Ljava/lang/Class;)Z
+Ljava/lang/invoke/MethodType;->canConvertParameters([Ljava/lang/Class;[Ljava/lang/Class;)Z
+Ljava/lang/invoke/MethodType;->checkPtype(Ljava/lang/Class;)V
+Ljava/lang/invoke/MethodType;->checkPtypes([Ljava/lang/Class;)I
+Ljava/lang/invoke/MethodType;->checkRtype(Ljava/lang/Class;)V
+Ljava/lang/invoke/MethodType;->checkSlotCount(I)V
+Ljava/lang/invoke/MethodType;->equals(Ljava/lang/invoke/MethodType;)Z
+Ljava/lang/invoke/MethodType;->explicitCastEquivalentToAsType(Ljava/lang/Class;Ljava/lang/Class;)Z
+Ljava/lang/invoke/MethodType;->explicitCastEquivalentToAsType(Ljava/lang/invoke/MethodType;)Z
+Ljava/lang/invoke/MethodType;->form()Ljava/lang/invoke/MethodTypeForm;
+Ljava/lang/invoke/MethodType;->form:Ljava/lang/invoke/MethodTypeForm;
+Ljava/lang/invoke/MethodType;->internTable:Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;
+Ljava/lang/invoke/MethodType;->invokerType()Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodType;->isConvertibleTo(Ljava/lang/invoke/MethodType;)Z
+Ljava/lang/invoke/MethodType;->isGeneric()Z
+Ljava/lang/invoke/MethodType;->lastParameterType()Ljava/lang/Class;
+Ljava/lang/invoke/MethodType;->leadingReferenceParameter()Ljava/lang/Class;
+Ljava/lang/invoke/MethodType;->listToArray(Ljava/util/List;)[Ljava/lang/Class;
+Ljava/lang/invoke/MethodType;->makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodType;->MAX_JVM_ARITY:I
+Ljava/lang/invoke/MethodType;->MAX_MH_ARITY:I
+Ljava/lang/invoke/MethodType;->MAX_MH_INVOKER_ARITY:I
+Ljava/lang/invoke/MethodType;->methodDescriptor:Ljava/lang/String;
+Ljava/lang/invoke/MethodType;->MethodType_init(Ljava/lang/Class;[Ljava/lang/Class;)V
+Ljava/lang/invoke/MethodType;->newIndexOutOfBoundsException(Ljava/lang/Object;)Ljava/lang/IndexOutOfBoundsException;
+Ljava/lang/invoke/MethodType;->NO_PTYPES:[Ljava/lang/Class;
+Ljava/lang/invoke/MethodType;->objectOnlyTypes:[Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodType;->parameterSlotCount()I
+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
+Ljava/lang/invoke/MethodType;->toFieldDescriptorString(Ljava/lang/Class;)Ljava/lang/String;
+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
+Ljava/lang/invoke/MethodTypeForm;->argToSlotTable:[I
+Ljava/lang/invoke/MethodTypeForm;->assertIsBasicType()Z
+Ljava/lang/invoke/MethodTypeForm;->basicType()Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodTypeForm;->basicType:Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/Class;I)Ljava/lang/Class;
+Ljava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/invoke/MethodType;II)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodTypeForm;->canonicalizeAll([Ljava/lang/Class;I)[Ljava/lang/Class;
+Ljava/lang/invoke/MethodTypeForm;->ERASE:I
+Ljava/lang/invoke/MethodTypeForm;->erasedType()Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodTypeForm;->erasedType:Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodTypeForm;->findForm(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodTypeForm;
+Ljava/lang/invoke/MethodTypeForm;->hasLongPrimitives()Z
+Ljava/lang/invoke/MethodTypeForm;->hasNonVoidPrimitives()Z
+Ljava/lang/invoke/MethodTypeForm;->hasPrimitives()Z
+Ljava/lang/invoke/MethodTypeForm;->INTS:I
+Ljava/lang/invoke/MethodTypeForm;->longPrimitiveParameterCount()I
+Ljava/lang/invoke/MethodTypeForm;->longPrimitiveReturnCount()I
+Ljava/lang/invoke/MethodTypeForm;->LONGS:I
+Ljava/lang/invoke/MethodTypeForm;->NO_CHANGE:I
+Ljava/lang/invoke/MethodTypeForm;->pack(IIII)J
+Ljava/lang/invoke/MethodTypeForm;->parameterCount()I
+Ljava/lang/invoke/MethodTypeForm;->parameterSlotCount()I
+Ljava/lang/invoke/MethodTypeForm;->parameterToArgSlot(I)I
+Ljava/lang/invoke/MethodTypeForm;->primCounts:J
+Ljava/lang/invoke/MethodTypeForm;->primitiveParameterCount()I
+Ljava/lang/invoke/MethodTypeForm;->primitiveReturnCount()I
+Ljava/lang/invoke/MethodTypeForm;->RAW_RETURN:I
+Ljava/lang/invoke/MethodTypeForm;->returnCount()I
+Ljava/lang/invoke/MethodTypeForm;->returnSlotCount()I
+Ljava/lang/invoke/MethodTypeForm;->slotToArgTable:[I
+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;
+Ljava/lang/invoke/Transformers$CollectArguments;->pos:I
+Ljava/lang/invoke/Transformers$CollectArguments;->range1:Ldalvik/system/EmulatedStackFrame$Range;
+Ljava/lang/invoke/Transformers$CollectArguments;->range2:Ldalvik/system/EmulatedStackFrame$Range;
+Ljava/lang/invoke/Transformers$CollectArguments;->referencesOffset:I
+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
+Ljava/lang/invoke/Transformers$Collector;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;
+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
+Ljava/lang/invoke/Transformers$Constant;->asInt:I
+Ljava/lang/invoke/Transformers$Constant;->asLong:J
+Ljava/lang/invoke/Transformers$Constant;->asReference:Ljava/lang/Object;
+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
+Ljava/lang/invoke/Transformers$Construct;->constructorHandle:Ljava/lang/invoke/MethodHandle;
+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
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastArguments(Ldalvik/system/EmulatedStackFrame;Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastFromBoolean(ZLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastPrimitives(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastReturnValue(Ldalvik/system/EmulatedStackFrame;Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastToBoolean(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;)V
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsByte(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)B
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsChar(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)C
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsDouble(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)D
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsFloat(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)F
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsInt(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)I
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsLong(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)J
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsShort(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)S
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->target:Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->throwUnexpectedType(Ljava/lang/Class;)V
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->toBoolean(B)Z
+Ljava/lang/invoke/Transformers$ExplicitCastArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
+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;
+Ljava/lang/invoke/Transformers$FoldArguments;->deriveType(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/Transformers$FoldArguments;->referencesOffset:I
+Ljava/lang/invoke/Transformers$FoldArguments;->stackFrameOffset:I
+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;
+Ljava/lang/invoke/Transformers$InsertArguments;->range2:Ldalvik/system/EmulatedStackFrame$Range;
+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
+Ljava/lang/invoke/Transformers$Spreader;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;
+Ljava/lang/invoke/Transformers$Spreader;->numArrayArgs:I
+Ljava/lang/invoke/Transformers$Spreader;->spreadArray([BLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
+Ljava/lang/invoke/Transformers$Spreader;->spreadArray([CLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
+Ljava/lang/invoke/Transformers$Spreader;->spreadArray([DLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
+Ljava/lang/invoke/Transformers$Spreader;->spreadArray([FLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
+Ljava/lang/invoke/Transformers$Spreader;->spreadArray([ILdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
+Ljava/lang/invoke/Transformers$Spreader;->spreadArray([JLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
+Ljava/lang/invoke/Transformers$Spreader;->spreadArray([Ljava/lang/Object;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
+Ljava/lang/invoke/Transformers$Spreader;->spreadArray([SLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
+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;
+Ljava/lang/invoke/Transformers$VarargsCollector;->byteArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->charArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->collectArguments(CLjava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->copyParameter(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
+Ljava/lang/invoke/Transformers$VarargsCollector;->doubleArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->floatArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->intArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->lastParameterTypeIsAnArray([Ljava/lang/Class;)Z
+Ljava/lang/invoke/Transformers$VarargsCollector;->longArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->makeArityArray(Ljava/lang/invoke/MethodType;Ldalvik/system/EmulatedStackFrame$StackFrameReader;ILjava/lang/Class;)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->makeTargetFrameType(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/Transformers$VarargsCollector;->prepareFrame(Ldalvik/system/EmulatedStackFrame;Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$VarargsCollector;->referenceArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;Ljava/lang/Class;II)Ljava/lang/Object;
+Ljava/lang/invoke/Transformers$VarargsCollector;->shortArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
+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;
+Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_EXCHANGE_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_SET:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_ADD:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_ADD_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_ADD_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_AND:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_AND_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_AND_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_OR:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_OR_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_OR_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_XOR:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_XOR_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_XOR_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_SET:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_SET_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_SET_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_OPAQUE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->GET_VOLATILE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->methodName()Ljava/lang/String;
+Ljava/lang/invoke/VarHandle$AccessMode;->methodName:Ljava/lang/String;
+Ljava/lang/invoke/VarHandle$AccessMode;->methodNameToAccessMode:Ljava/util/Map;
+Ljava/lang/invoke/VarHandle$AccessMode;->SET:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->SET_OPAQUE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->SET_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->SET_VOLATILE:Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->valueFromMethodName(Ljava/lang/String;)Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->valueOf(Ljava/lang/String;)Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->values()[Ljava/lang/invoke/VarHandle$AccessMode;
+Ljava/lang/invoke/VarHandle$AccessMode;->WEAK_COMPARE_AND_SET:Ljava/lang/invoke/VarHandle$AccessMode;
+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;
+Ljava/lang/invoke/VarHandle$AccessType;->GET_AND_UPDATE_NUMERIC:Ljava/lang/invoke/VarHandle$AccessType;
+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
+Ljava/lang/invoke/VarHandle;->accessModesBitMask:I
+Ljava/lang/invoke/VarHandle;->accessModeType(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/VarHandle;->accessTypesToBitMask(Ljava/util/EnumSet;)I
+Ljava/lang/invoke/VarHandle;->alignedAccessModesBitMask(Ljava/lang/Class;Z)I
+Ljava/lang/invoke/VarHandle;->ALL_MODES_BIT_MASK:I
+Ljava/lang/invoke/VarHandle;->ATOMIC_UPDATE_ACCESS_MODES_BIT_MASK:I
+Ljava/lang/invoke/VarHandle;->BITWISE_ATOMIC_UPDATE_ACCESS_MODES_BIT_MASK:I
+Ljava/lang/invoke/VarHandle;->coordinateType0:Ljava/lang/Class;
+Ljava/lang/invoke/VarHandle;->coordinateType1:Ljava/lang/Class;
+Ljava/lang/invoke/VarHandle;->coordinateTypes()Ljava/util/List;
+Ljava/lang/invoke/VarHandle;->isAccessModeSupported(Ljava/lang/invoke/VarHandle$AccessMode;)Z
+Ljava/lang/invoke/VarHandle;->NUMERIC_ATOMIC_UPDATE_ACCESS_MODES_BIT_MASK:I
+Ljava/lang/invoke/VarHandle;->READ_ACCESS_MODES_BIT_MASK:I
+Ljava/lang/invoke/VarHandle;->toMethodHandle(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/VarHandle;->unalignedAccessModesBitMask(Ljava/lang/Class;)I
+Ljava/lang/invoke/VarHandle;->UNSAFE:Lsun/misc/Unsafe;
+Ljava/lang/invoke/VarHandle;->varType()Ljava/lang/Class;
+Ljava/lang/invoke/VarHandle;->varType:Ljava/lang/Class;
+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
+Ljava/lang/Long;->getChars(JI[C)V
+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
+Ljava/lang/Math;->negativeZeroDoubleBits:J
+Ljava/lang/Math;->negativeZeroFloatBits:J
+Ljava/lang/Math;->powerOfTwoD(I)D
+Ljava/lang/Math;->powerOfTwoF(I)F
+Ljava/lang/Math;->randomIntInternal()I
+Ljava/lang/Math;->randomLongInternal()J
+Ljava/lang/Math;->setRandomSeedInternal(J)V
+Ljava/lang/Math;->twoToTheDoubleScaleDown:D
+Ljava/lang/Math;->twoToTheDoubleScaleUp:D
+Ljava/lang/NoClassDefFoundError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+Ljava/lang/NumberFormatException;->forInputString(Ljava/lang/String;)Ljava/lang/NumberFormatException;
+Ljava/lang/Object;->identityHashCodeNative(Ljava/lang/Object;)I
+Ljava/lang/Object;->internalClone()Ljava/lang/Object;
+Ljava/lang/Object;->shadow$_klass_:Ljava/lang/Class;
+Ljava/lang/Object;->shadow$_monitor_:I
+Ljava/lang/Package;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;)V
+Ljava/lang/Package;-><init>(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;Ljava/lang/ClassLoader;)V
+Ljava/lang/Package;->defineSystemPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Package;
+Ljava/lang/Package;->getPackage(Ljava/lang/Class;)Ljava/lang/Package;
+Ljava/lang/Package;->getPackageInfo()Ljava/lang/Class;
+Ljava/lang/Package;->getSystemPackage(Ljava/lang/String;)Ljava/lang/Package;
+Ljava/lang/Package;->getSystemPackage0(Ljava/lang/String;)Ljava/lang/String;
+Ljava/lang/Package;->getSystemPackages()[Ljava/lang/Package;
+Ljava/lang/Package;->getSystemPackages0()[Ljava/lang/String;
+Ljava/lang/Package;->implTitle:Ljava/lang/String;
+Ljava/lang/Package;->implVendor:Ljava/lang/String;
+Ljava/lang/Package;->implVersion:Ljava/lang/String;
+Ljava/lang/Package;->loader:Ljava/lang/ClassLoader;
+Ljava/lang/Package;->loadManifest(Ljava/lang/String;)Ljava/util/jar/Manifest;
+Ljava/lang/Package;->mans:Ljava/util/Map;
+Ljava/lang/Package;->packageInfo:Ljava/lang/Class;
+Ljava/lang/Package;->pkgName:Ljava/lang/String;
+Ljava/lang/Package;->pkgs:Ljava/util/Map;
+Ljava/lang/Package;->sealBase:Ljava/net/URL;
+Ljava/lang/Package;->specTitle:Ljava/lang/String;
+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;
+Ljava/lang/ProcessBuilder;->directory:Ljava/io/File;
+Ljava/lang/ProcessBuilder;->environment([Ljava/lang/String;)Ljava/lang/ProcessBuilder;
+Ljava/lang/ProcessBuilder;->environment:Ljava/util/Map;
+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
+Ljava/lang/ref/FinalizerReference;->getReferent()Ljava/lang/Object;
+Ljava/lang/ref/FinalizerReference;->LIST_LOCK:Ljava/lang/Object;
+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;
+Ljava/lang/ref/Reference$SinkHolder;->sinkUser:Ljava/lang/Object;
+Ljava/lang/ref/Reference;-><init>(Ljava/lang/Object;)V
+Ljava/lang/ref/Reference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
+Ljava/lang/ref/Reference;->clearReferent()V
+Ljava/lang/ref/Reference;->disableIntrinsic:Z
+Ljava/lang/ref/Reference;->pendingNext:Ljava/lang/ref/Reference;
+Ljava/lang/ref/Reference;->queue:Ljava/lang/ref/ReferenceQueue;
+Ljava/lang/ref/Reference;->queueNext:Ljava/lang/ref/Reference;
+Ljava/lang/ref/Reference;->slowPathEnabled:Z
+Ljava/lang/ref/ReferenceQueue;->enqueue(Ljava/lang/ref/Reference;)Z
+Ljava/lang/ref/ReferenceQueue;->enqueueLocked(Ljava/lang/ref/Reference;)Z
+Ljava/lang/ref/ReferenceQueue;->enqueuePending(Ljava/lang/ref/Reference;)V
+Ljava/lang/ref/ReferenceQueue;->head:Ljava/lang/ref/Reference;
+Ljava/lang/ref/ReferenceQueue;->isEnqueued(Ljava/lang/ref/Reference;)Z
+Ljava/lang/ref/ReferenceQueue;->lock:Ljava/lang/Object;
+Ljava/lang/ref/ReferenceQueue;->reallyPollLocked()Ljava/lang/ref/Reference;
+Ljava/lang/ref/ReferenceQueue;->sQueueNextUnenqueued:Ljava/lang/ref/Reference;
+Ljava/lang/ref/ReferenceQueue;->tail:Ljava/lang/ref/Reference;
+Ljava/lang/ref/ReferenceQueue;->unenqueued:Ljava/lang/ref/Reference;
+Ljava/lang/ref/SoftReference;->clock:J
+Ljava/lang/ref/SoftReference;->timestamp:J
+Ljava/lang/reflect/AccessibleObject;->setAccessible0(Ljava/lang/reflect/AccessibleObject;Z)V
+Ljava/lang/reflect/Array;-><init>()V
+Ljava/lang/reflect/Array;->badArray(Ljava/lang/Object;)Ljava/lang/RuntimeException;
+Ljava/lang/reflect/Array;->createMultiArray(Ljava/lang/Class;[I)Ljava/lang/Object;
+Ljava/lang/reflect/Array;->createObjectArray(Ljava/lang/Class;I)Ljava/lang/Object;
+Ljava/lang/reflect/Array;->incompatibleType(Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
+Ljava/lang/reflect/Array;->newArray(Ljava/lang/Class;I)Ljava/lang/Object;
+Ljava/lang/reflect/Array;->notAnArray(Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
+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;
+Ljava/lang/reflect/Executable$GenericInfo;->genericParameterTypes:Llibcore/reflect/ListOfTypes;
+Ljava/lang/reflect/Executable$GenericInfo;->genericReturnType:Ljava/lang/reflect/Type;
+Ljava/lang/reflect/Executable;-><init>()V
+Ljava/lang/reflect/Executable;->accessFlags:I
+Ljava/lang/reflect/Executable;->compareMethodParametersInternal(Ljava/lang/reflect/Method;)I
+Ljava/lang/reflect/Executable;->declaringClass:Ljava/lang/Class;
+Ljava/lang/reflect/Executable;->declaringClassOfOverriddenMethod:Ljava/lang/Class;
+Ljava/lang/reflect/Executable;->dexMethodIndex:I
+Ljava/lang/reflect/Executable;->equalNameAndParametersInternal(Ljava/lang/reflect/Method;)Z
+Ljava/lang/reflect/Executable;->equalParamTypes([Ljava/lang/Class;[Ljava/lang/Class;)Z
+Ljava/lang/reflect/Executable;->fixMethodFlags(I)I
+Ljava/lang/reflect/Executable;->getAccessFlags()I
+Ljava/lang/reflect/Executable;->getAllGenericParameterTypes()[Ljava/lang/reflect/Type;
+Ljava/lang/reflect/Executable;->getAnnotationNative(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
+Ljava/lang/reflect/Executable;->getArtMethod()J
+Ljava/lang/reflect/Executable;->getDeclaredAnnotationsNative()[Ljava/lang/annotation/Annotation;
+Ljava/lang/reflect/Executable;->getDeclaringClassInternal()Ljava/lang/Class;
+Ljava/lang/reflect/Executable;->getMethodNameInternal()Ljava/lang/String;
+Ljava/lang/reflect/Executable;->getMethodOrConstructorGenericInfoInternal()Ljava/lang/reflect/Executable$GenericInfo;
+Ljava/lang/reflect/Executable;->getMethodReturnTypeInternal()Ljava/lang/Class;
+Ljava/lang/reflect/Executable;->getModifiersInternal()I
+Ljava/lang/reflect/Executable;->getParameterAnnotationsInternal()[[Ljava/lang/annotation/Annotation;
+Ljava/lang/reflect/Executable;->getParameterAnnotationsNative()[[Ljava/lang/annotation/Annotation;
+Ljava/lang/reflect/Executable;->getParameterCountInternal()I
+Ljava/lang/reflect/Executable;->getParameters0()[Ljava/lang/reflect/Parameter;
+Ljava/lang/reflect/Executable;->getParameterTypesInternal()[Ljava/lang/Class;
+Ljava/lang/reflect/Executable;->getSignatureAnnotation()[Ljava/lang/String;
+Ljava/lang/reflect/Executable;->getSignatureAttribute()Ljava/lang/String;
+Ljava/lang/reflect/Executable;->hasGenericInformation()Z
+Ljava/lang/reflect/Executable;->hasGenericInformationInternal()Z
+Ljava/lang/reflect/Executable;->hasRealParameterData()Z
+Ljava/lang/reflect/Executable;->hasRealParameterData:Z
+Ljava/lang/reflect/Executable;->isAnnotationPresentNative(Ljava/lang/Class;)Z
+Ljava/lang/reflect/Executable;->isBridgeMethodInternal()Z
+Ljava/lang/reflect/Executable;->isDefaultMethodInternal()Z
+Ljava/lang/reflect/Executable;->parameters:[Ljava/lang/reflect/Parameter;
+Ljava/lang/reflect/Executable;->printModifiersIfNonzero(Ljava/lang/StringBuilder;IZ)V
+Ljava/lang/reflect/Executable;->privateGetParameters()[Ljava/lang/reflect/Parameter;
+Ljava/lang/reflect/Executable;->separateWithCommas([Ljava/lang/Class;Ljava/lang/StringBuilder;)V
+Ljava/lang/reflect/Executable;->sharedToGenericString(IZ)Ljava/lang/String;
+Ljava/lang/reflect/Executable;->sharedToString(IZ[Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
+Ljava/lang/reflect/Executable;->specificToGenericStringHeader(Ljava/lang/StringBuilder;)V
+Ljava/lang/reflect/Executable;->specificToStringHeader(Ljava/lang/StringBuilder;)V
+Ljava/lang/reflect/Executable;->synthesizeAllParams()[Ljava/lang/reflect/Parameter;
+Ljava/lang/reflect/Executable;->verifyParameters([Ljava/lang/reflect/Parameter;)V
+Ljava/lang/reflect/Field;-><init>()V
+Ljava/lang/reflect/Field;->declaringClass:Ljava/lang/Class;
+Ljava/lang/reflect/Field;->dexFieldIndex:I
+Ljava/lang/reflect/Field;->getAnnotationNative(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
+Ljava/lang/reflect/Field;->getArtField()J
+Ljava/lang/reflect/Field;->getDexFieldIndex()I
+Ljava/lang/reflect/Field;->getNameInternal()Ljava/lang/String;
+Ljava/lang/reflect/Field;->getSignatureAnnotation()[Ljava/lang/String;
+Ljava/lang/reflect/Field;->getSignatureAttribute()Ljava/lang/String;
+Ljava/lang/reflect/Field;->isAnnotationPresentNative(Ljava/lang/Class;)Z
+Ljava/lang/reflect/Field;->offset:I
+Ljava/lang/reflect/Field;->type:Ljava/lang/Class;
+Ljava/lang/reflect/InvocationTargetException;->target:Ljava/lang/Throwable;
+Ljava/lang/reflect/Method;-><init>()V
+Ljava/lang/reflect/Method;->equalNameAndParameters(Ljava/lang/reflect/Method;)Z
+Ljava/lang/reflect/Method;->hasGenericInformation()Z
+Ljava/lang/reflect/Method;->ORDER_BY_SIGNATURE:Ljava/util/Comparator;
+Ljava/lang/reflect/Method;->specificToGenericStringHeader(Ljava/lang/StringBuilder;)V
+Ljava/lang/reflect/Method;->specificToStringHeader(Ljava/lang/StringBuilder;)V
+Ljava/lang/reflect/Modifier;->ACCESS_MODIFIERS:I
+Ljava/lang/reflect/Modifier;->ANNOTATION:I
+Ljava/lang/reflect/Modifier;->BRIDGE:I
+Ljava/lang/reflect/Modifier;->CLASS_MODIFIERS:I
+Ljava/lang/reflect/Modifier;->CONSTRUCTOR:I
+Ljava/lang/reflect/Modifier;->CONSTRUCTOR_MODIFIERS:I
+Ljava/lang/reflect/Modifier;->DEFAULT:I
+Ljava/lang/reflect/Modifier;->ENUM:I
+Ljava/lang/reflect/Modifier;->FIELD_MODIFIERS:I
+Ljava/lang/reflect/Modifier;->INTERFACE_MODIFIERS:I
+Ljava/lang/reflect/Modifier;->isConstructor(I)Z
+Ljava/lang/reflect/Modifier;->isMandated(I)Z
+Ljava/lang/reflect/Modifier;->isSynthetic(I)Z
+Ljava/lang/reflect/Modifier;->MANDATED:I
+Ljava/lang/reflect/Modifier;->METHOD_MODIFIERS:I
+Ljava/lang/reflect/Modifier;->PARAMETER_MODIFIERS:I
+Ljava/lang/reflect/Modifier;->SYNTHETIC:I
+Ljava/lang/reflect/Modifier;->VARARGS:I
+Ljava/lang/reflect/Parameter;->executable:Ljava/lang/reflect/Executable;
+Ljava/lang/reflect/Parameter;->getAnnotationNative(Ljava/lang/reflect/Executable;ILjava/lang/Class;)Ljava/lang/annotation/Annotation;
+Ljava/lang/reflect/Parameter;->getRealName()Ljava/lang/String;
+Ljava/lang/reflect/Parameter;->index:I
+Ljava/lang/reflect/Parameter;->modifiers:I
+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;
+Ljava/lang/reflect/Proxy$ProxyClassFactory;->proxyClassNamePrefix:Ljava/lang/String;
+Ljava/lang/reflect/Proxy;-><init>()V
+Ljava/lang/reflect/Proxy;->constructorParams:[Ljava/lang/Class;
+Ljava/lang/reflect/Proxy;->deduplicateAndGetExceptions(Ljava/util/List;)Ljava/util/List;
+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
+Ljava/lang/reflect/WeakCache;->get(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/lang/reflect/WeakCache;->map:Ljava/util/concurrent/ConcurrentMap;
+Ljava/lang/reflect/WeakCache;->refQueue:Ljava/lang/ref/ReferenceQueue;
+Ljava/lang/reflect/WeakCache;->reverseMap:Ljava/util/concurrent/ConcurrentMap;
+Ljava/lang/reflect/WeakCache;->size()I
+Ljava/lang/reflect/WeakCache;->subKeyFactory:Ljava/util/function/BiFunction;
+Ljava/lang/reflect/WeakCache;->valueFactory:Ljava/util/function/BiFunction;
+Ljava/lang/Runtime;->checkTargetSdkVersionForLoad(Ljava/lang/String;)V
+Ljava/lang/Runtime;->currentRuntime:Ljava/lang/Runtime;
+Ljava/lang/Runtime;->finalizeOnExit:Z
+Ljava/lang/Runtime;->getLibPaths()[Ljava/lang/String;
+Ljava/lang/Runtime;->initLibPaths()[Ljava/lang/String;
+Ljava/lang/Runtime;->load0(Ljava/lang/Class;Ljava/lang/String;)V
+Ljava/lang/Runtime;->nativeExit(I)V
+Ljava/lang/Runtime;->runFinalization0()V
+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;
+Ljava/lang/String;->fastSubstring(II)Ljava/lang/String;
+Ljava/lang/String;->getChars([CI)V
+Ljava/lang/String;->indexOf(Ljava/lang/String;Ljava/lang/String;I)I
+Ljava/lang/String;->indexOfSupplementary(II)I
+Ljava/lang/String;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;I)I
+Ljava/lang/String;->lastIndexOfSupplementary(II)I
+Ljava/lang/String;->nonSyncContentEquals(Ljava/lang/AbstractStringBuilder;)Z
+Ljava/lang/StringBuffer;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/StringBuffer;
+Ljava/lang/StringBuffer;->toStringCache:[C
+Ljava/lang/StringIndexOutOfBoundsException;-><init>(II)V
+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
+Ljava/lang/System;->arraycopy([DI[DII)V
+Ljava/lang/System;->arraycopyBooleanUnchecked([ZI[ZII)V
+Ljava/lang/System;->arraycopyByteUnchecked([BI[BII)V
+Ljava/lang/System;->arraycopyCharUnchecked([CI[CII)V
+Ljava/lang/System;->arraycopyDoubleUnchecked([DI[DII)V
+Ljava/lang/System;->arraycopyFloatUnchecked([FI[FII)V
+Ljava/lang/System;->arraycopyIntUnchecked([II[III)V
+Ljava/lang/System;->arraycopyLongUnchecked([JI[JII)V
+Ljava/lang/System;->arraycopyShortUnchecked([SI[SII)V
+Ljava/lang/System;->ARRAYCOPY_SHORT_BOOLEAN_ARRAY_THRESHOLD:I
+Ljava/lang/System;->ARRAYCOPY_SHORT_BYTE_ARRAY_THRESHOLD:I
+Ljava/lang/System;->ARRAYCOPY_SHORT_CHAR_ARRAY_THRESHOLD:I
+Ljava/lang/System;->ARRAYCOPY_SHORT_DOUBLE_ARRAY_THRESHOLD:I
+Ljava/lang/System;->ARRAYCOPY_SHORT_FLOAT_ARRAY_THRESHOLD:I
+Ljava/lang/System;->ARRAYCOPY_SHORT_INT_ARRAY_THRESHOLD:I
+Ljava/lang/System;->ARRAYCOPY_SHORT_LONG_ARRAY_THRESHOLD:I
+Ljava/lang/System;->ARRAYCOPY_SHORT_SHORT_ARRAY_THRESHOLD:I
+Ljava/lang/System;->checkKey(Ljava/lang/String;)V
+Ljava/lang/System;->cons:Ljava/io/Console;
+Ljava/lang/System;->initProperties()Ljava/util/Properties;
+Ljava/lang/System;->initUnchangeableSystemProperties()Ljava/util/Properties;
+Ljava/lang/System;->justRanFinalization:Z
+Ljava/lang/System;->lineSeparator:Ljava/lang/String;
+Ljava/lang/System;->LOCK:Ljava/lang/Object;
+Ljava/lang/System;->logI(Ljava/lang/String;)V
+Ljava/lang/System;->logI(Ljava/lang/String;Ljava/lang/Throwable;)V
+Ljava/lang/System;->logW(Ljava/lang/String;)V
+Ljava/lang/System;->newPrintStream(Ljava/io/FileOutputStream;Ljava/lang/String;)Ljava/io/PrintStream;
+Ljava/lang/System;->parsePropertyAssignments(Ljava/util/Properties;[Ljava/lang/String;)V
+Ljava/lang/System;->props:Ljava/util/Properties;
+Ljava/lang/System;->runGC:Z
+Ljava/lang/System;->setDefaultChangeableProperties(Ljava/util/Properties;)Ljava/util/Properties;
+Ljava/lang/System;->setErr0(Ljava/io/PrintStream;)V
+Ljava/lang/System;->setIn0(Ljava/io/InputStream;)V
+Ljava/lang/System;->setOut0(Ljava/io/PrintStream;)V
+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
+Ljava/lang/Thread;->blockedOn(Lsun/nio/ch/Interruptible;)V
+Ljava/lang/Thread;->blocker:Lsun/nio/ch/Interruptible;
+Ljava/lang/Thread;->blockerLock:Ljava/lang/Object;
+Ljava/lang/Thread;->defaultUncaughtExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
+Ljava/lang/Thread;->eetop:J
+Ljava/lang/Thread;->EMPTY_STACK_TRACE:[Ljava/lang/StackTraceElement;
+Ljava/lang/Thread;->exit()V
+Ljava/lang/Thread;->init(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V
+Ljava/lang/Thread;->init2(Ljava/lang/Thread;)V
+Ljava/lang/Thread;->isCCLOverridden(Ljava/lang/Class;)Z
+Ljava/lang/Thread;->NANOS_PER_MILLI:I
+Ljava/lang/Thread;->nativeCreate(Ljava/lang/Thread;JZ)V
+Ljava/lang/Thread;->nativeGetStatus(Z)I
+Ljava/lang/Thread;->nativeHoldsLock(Ljava/lang/Object;)Z
+Ljava/lang/Thread;->nativeInterrupt()V
+Ljava/lang/Thread;->nativeParkEventPointer:J
+Ljava/lang/Thread;->nativeSetName(Ljava/lang/String;)V
+Ljava/lang/Thread;->nativeSetPriority(I)V
+Ljava/lang/Thread;->nextThreadID()J
+Ljava/lang/Thread;->nextThreadNum()I
+Ljava/lang/Thread;->parkFor$(J)V
+Ljava/lang/Thread;->parkState:I
+Ljava/lang/Thread;->parkUntil$(J)V
+Ljava/lang/Thread;->processQueue(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
+Ljava/lang/Thread;->setUncaughtExceptionPreHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
+Ljava/lang/Thread;->single_step:Z
+Ljava/lang/Thread;->sleep(Ljava/lang/Object;JI)V
+Ljava/lang/Thread;->stackSize:J
+Ljava/lang/Thread;->started:Z
+Ljava/lang/Thread;->stillborn:Z
+Ljava/lang/Thread;->SUBCLASS_IMPLEMENTATION_PERMISSION:Ljava/lang/RuntimePermission;
+Ljava/lang/Thread;->threadInitNumber:I
+Ljava/lang/Thread;->threadLocalRandomProbe:I
+Ljava/lang/Thread;->threadLocalRandomSecondarySeed:I
+Ljava/lang/Thread;->threadLocalRandomSeed:J
+Ljava/lang/Thread;->threadQ:Ljava/lang/Thread;
+Ljava/lang/Thread;->threadStatus:I
+Ljava/lang/Thread;->tid:J
+Ljava/lang/Thread;->uncaughtExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
+Ljava/lang/Thread;->uncaughtExceptionPreHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
+Ljava/lang/Thread;->unpark$()V
+Ljava/lang/ThreadGroup;-><init>()V
+Ljava/lang/ThreadGroup;-><init>(Ljava/lang/Void;Ljava/lang/ThreadGroup;Ljava/lang/String;)V
+Ljava/lang/ThreadGroup;->add(Ljava/lang/ThreadGroup;)V
+Ljava/lang/ThreadGroup;->addUnstarted()V
+Ljava/lang/ThreadGroup;->checkParentAccess(Ljava/lang/ThreadGroup;)Ljava/lang/Void;
+Ljava/lang/ThreadGroup;->daemon:Z
+Ljava/lang/ThreadGroup;->destroyed:Z
+Ljava/lang/ThreadGroup;->enumerate([Ljava/lang/Thread;IZ)I
+Ljava/lang/ThreadGroup;->enumerate([Ljava/lang/ThreadGroup;IZ)I
+Ljava/lang/ThreadGroup;->list(Ljava/io/PrintStream;I)V
+Ljava/lang/ThreadGroup;->maxPriority:I
+Ljava/lang/ThreadGroup;->nthreads:I
+Ljava/lang/ThreadGroup;->nUnstartedThreads:I
+Ljava/lang/ThreadGroup;->remove(Ljava/lang/Thread;)V
+Ljava/lang/ThreadGroup;->remove(Ljava/lang/ThreadGroup;)V
+Ljava/lang/ThreadGroup;->stopOrSuspend(Z)Z
+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
+Ljava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntries()V
+Ljava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntry(I)I
+Ljava/lang/ThreadLocal$ThreadLocalMap;->getEntry(Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
+Ljava/lang/ThreadLocal$ThreadLocalMap;->getEntryAfterMiss(Ljava/lang/ThreadLocal;ILjava/lang/ThreadLocal$ThreadLocalMap$Entry;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
+Ljava/lang/ThreadLocal$ThreadLocalMap;->INITIAL_CAPACITY:I
+Ljava/lang/ThreadLocal$ThreadLocalMap;->nextIndex(II)I
+Ljava/lang/ThreadLocal$ThreadLocalMap;->prevIndex(II)I
+Ljava/lang/ThreadLocal$ThreadLocalMap;->rehash()V
+Ljava/lang/ThreadLocal$ThreadLocalMap;->remove(Ljava/lang/ThreadLocal;)V
+Ljava/lang/ThreadLocal$ThreadLocalMap;->replaceStaleEntry(Ljava/lang/ThreadLocal;Ljava/lang/Object;I)V
+Ljava/lang/ThreadLocal$ThreadLocalMap;->resize()V
+Ljava/lang/ThreadLocal$ThreadLocalMap;->set(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
+Ljava/lang/ThreadLocal$ThreadLocalMap;->setThreshold(I)V
+Ljava/lang/ThreadLocal$ThreadLocalMap;->size:I
+Ljava/lang/ThreadLocal$ThreadLocalMap;->table:[Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
+Ljava/lang/ThreadLocal$ThreadLocalMap;->threshold:I
+Ljava/lang/ThreadLocal;->childValue(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/lang/ThreadLocal;->createInheritedMap(Ljava/lang/ThreadLocal$ThreadLocalMap;)Ljava/lang/ThreadLocal$ThreadLocalMap;
+Ljava/lang/ThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V
+Ljava/lang/ThreadLocal;->HASH_INCREMENT:I
+Ljava/lang/ThreadLocal;->nextHashCode()I
+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
+Ljava/lang/Throwable$WrappedPrintWriter;->printWriter:Ljava/io/PrintWriter;
+Ljava/lang/Throwable;->CAUSE_CAPTION:Ljava/lang/String;
+Ljava/lang/Throwable;->EMPTY_THROWABLE_ARRAY:[Ljava/lang/Throwable;
+Ljava/lang/Throwable;->nativeGetStackTrace(Ljava/lang/Object;)[Ljava/lang/StackTraceElement;
+Ljava/lang/Throwable;->NULL_CAUSE_MESSAGE:Ljava/lang/String;
+Ljava/lang/Throwable;->printEnclosedStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;[Ljava/lang/StackTraceElement;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
+Ljava/lang/Throwable;->SELF_SUPPRESSION_MESSAGE:Ljava/lang/String;
+Ljava/lang/Throwable;->SUPPRESSED_CAPTION:Ljava/lang/String;
+Ljava/lang/TypeNotPresentException;->typeName:Ljava/lang/String;
+Ljava/math/BigDecimal;-><init>(II)V
+Ljava/math/BigDecimal;-><init>(JI)V
+Ljava/math/BigDecimal;->addAndMult10(Ljava/math/BigDecimal;Ljava/math/BigDecimal;I)Ljava/math/BigDecimal;
+Ljava/math/BigDecimal;->approxPrecision()I
+Ljava/math/BigDecimal;->bitLength(I)I
+Ljava/math/BigDecimal;->bitLength(J)I
+Ljava/math/BigDecimal;->bitLength:I
+Ljava/math/BigDecimal;->BI_SCALED_BY_ZERO:[Ljava/math/BigDecimal;
+Ljava/math/BigDecimal;->BI_SCALED_BY_ZERO_LENGTH:I
+Ljava/math/BigDecimal;->CH_ZEROS:[C
+Ljava/math/BigDecimal;->compareAbsoluteValues(JJ)I
+Ljava/math/BigDecimal;->compareForRounding(JJ)I
+Ljava/math/BigDecimal;->decimalDigitsInLong(J)I
+Ljava/math/BigDecimal;->divideBigIntegers(Ljava/math/BigInteger;Ljava/math/BigInteger;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
+Ljava/math/BigDecimal;->dividePrimitiveLongs(JJILjava/math/RoundingMode;)Ljava/math/BigDecimal;
+Ljava/math/BigDecimal;->FIVE_POW:[Ljava/math/BigInteger;
+Ljava/math/BigDecimal;->getUnscaledValue()Ljava/math/BigInteger;
+Ljava/math/BigDecimal;->hashCode:I
+Ljava/math/BigDecimal;->inplaceRound(Ljava/math/MathContext;)V
+Ljava/math/BigDecimal;->intVal:Ljava/math/BigInteger;
+Ljava/math/BigDecimal;->isZero()Z
+Ljava/math/BigDecimal;->LOG10_2:D
+Ljava/math/BigDecimal;->LONG_FIVE_POW:[J
+Ljava/math/BigDecimal;->LONG_FIVE_POW_BIT_LENGTH:[I
+Ljava/math/BigDecimal;->LONG_POWERS_OF_TEN_BIT_LENGTH:[I
+Ljava/math/BigDecimal;->movePoint(J)Ljava/math/BigDecimal;
+Ljava/math/BigDecimal;->precision:I
+Ljava/math/BigDecimal;->roundingBehavior(IILjava/math/RoundingMode;)I
+Ljava/math/BigDecimal;->safeLongToInt(J)I
+Ljava/math/BigDecimal;->scale:I
+Ljava/math/BigDecimal;->setUnscaledValue(Ljava/math/BigInteger;)V
+Ljava/math/BigDecimal;->smallRound(Ljava/math/MathContext;I)V
+Ljava/math/BigDecimal;->smallValue:J
+Ljava/math/BigDecimal;->TEN_POW:[Ljava/math/BigInteger;
+Ljava/math/BigDecimal;->toStringImage:Ljava/lang/String;
+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;
+Ljava/math/BigInt;->addPositiveInt(I)V
+Ljava/math/BigInt;->bigEndianMagnitude()[B
+Ljava/math/BigInt;->bigExp(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+Ljava/math/BigInt;->bignum:J
+Ljava/math/BigInt;->bitLength()I
+Ljava/math/BigInt;->checkString(Ljava/lang/String;I)Ljava/lang/String;
+Ljava/math/BigInt;->cmp(Ljava/math/BigInt;Ljava/math/BigInt;)I
+Ljava/math/BigInt;->copy()Ljava/math/BigInt;
+Ljava/math/BigInt;->decString()Ljava/lang/String;
+Ljava/math/BigInt;->division(Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;)V
+Ljava/math/BigInt;->exp(Ljava/math/BigInt;I)Ljava/math/BigInt;
+Ljava/math/BigInt;->gcd(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+Ljava/math/BigInt;->generatePrimeDefault(I)Ljava/math/BigInt;
+Ljava/math/BigInt;->hasNativeBignum()Z
+Ljava/math/BigInt;->hexString()Ljava/lang/String;
+Ljava/math/BigInt;->invalidBigInteger(Ljava/lang/String;)Ljava/lang/NumberFormatException;
+Ljava/math/BigInt;->isBitSet(I)Z
+Ljava/math/BigInt;->isPrime(I)Z
+Ljava/math/BigInt;->littleEndianIntsMagnitude()[I
+Ljava/math/BigInt;->longInt()J
+Ljava/math/BigInt;->makeValid()V
+Ljava/math/BigInt;->modExp(Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+Ljava/math/BigInt;->modInverse(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+Ljava/math/BigInt;->modulus(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+Ljava/math/BigInt;->multiplyByPositiveInt(I)V
+Ljava/math/BigInt;->newBigInt()Ljava/math/BigInt;
+Ljava/math/BigInt;->product(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+Ljava/math/BigInt;->putBigEndian([BZ)V
+Ljava/math/BigInt;->putBigEndianTwosComplement([B)V
+Ljava/math/BigInt;->putCopy(Ljava/math/BigInt;)V
+Ljava/math/BigInt;->putDecString(Ljava/lang/String;)V
+Ljava/math/BigInt;->putHexString(Ljava/lang/String;)V
+Ljava/math/BigInt;->putLittleEndianInts([IZ)V
+Ljava/math/BigInt;->putLongInt(J)V
+Ljava/math/BigInt;->putULongInt(JZ)V
+Ljava/math/BigInt;->registry:Llibcore/util/NativeAllocationRegistry;
+Ljava/math/BigInt;->remainderByPositiveInt(Ljava/math/BigInt;I)I
+Ljava/math/BigInt;->setSign(I)V
+Ljava/math/BigInt;->shift(I)V
+Ljava/math/BigInt;->shift(Ljava/math/BigInt;I)Ljava/math/BigInt;
+Ljava/math/BigInt;->sign()I
+Ljava/math/BigInt;->subtraction(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+Ljava/math/BigInt;->toAscii(Ljava/lang/String;I)Ljava/lang/String;
+Ljava/math/BigInt;->twosCompFitsIntoBytes(I)Z
+Ljava/math/BigInteger;-><init>(II[I)V
+Ljava/math/BigInteger;-><init>(IJ)V
+Ljava/math/BigInteger;-><init>(Ljava/math/BigInt;)V
+Ljava/math/BigInteger;->bigInt:Ljava/math/BigInt;
+Ljava/math/BigInteger;->copy()Ljava/math/BigInteger;
+Ljava/math/BigInteger;->digits:[I
+Ljava/math/BigInteger;->firstNonzeroDigit:I
+Ljava/math/BigInteger;->getBigInt()Ljava/math/BigInt;
+Ljava/math/BigInteger;->getFirstNonzeroDigit()I
+Ljava/math/BigInteger;->hashCode:I
+Ljava/math/BigInteger;->inplaceAdd([III)I
+Ljava/math/BigInteger;->isSmallPrime(I)Z
+Ljava/math/BigInteger;->javaIsValid:Z
+Ljava/math/BigInteger;->magnitude:[B
+Ljava/math/BigInteger;->MINUS_ONE:Ljava/math/BigInteger;
+Ljava/math/BigInteger;->multiplyByInt([I[III)I
+Ljava/math/BigInteger;->nativeIsValid:Z
+Ljava/math/BigInteger;->numberLength:I
+Ljava/math/BigInteger;->parseFromString(Ljava/math/BigInteger;Ljava/lang/String;I)V
+Ljava/math/BigInteger;->prepareJavaRepresentation()V
+Ljava/math/BigInteger;->setBigInt(Ljava/math/BigInt;)V
+Ljava/math/BigInteger;->setJavaRepresentation(II[I)V
+Ljava/math/BigInteger;->shiftLeftOneBit()Ljava/math/BigInteger;
+Ljava/math/BigInteger;->sign:I
+Ljava/math/BigInteger;->signum:I
+Ljava/math/BigInteger;->SMALL_VALUES:[Ljava/math/BigInteger;
+Ljava/math/BigInteger;->twosComplement()[B
+Ljava/math/MathContext;->checkValid()V
+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
+Ljava/net/Authenticator;->requestingPrompt:Ljava/lang/String;
+Ljava/net/Authenticator;->requestingProtocol:Ljava/lang/String;
+Ljava/net/Authenticator;->requestingScheme:Ljava/lang/String;
+Ljava/net/Authenticator;->requestingSite:Ljava/net/InetAddress;
+Ljava/net/Authenticator;->requestingURL:Ljava/net/URL;
+Ljava/net/Authenticator;->reset()V
+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;
+Ljava/net/CookieManager;->isInPortList(Ljava/lang/String;I)Z
+Ljava/net/CookieManager;->normalizePath(Ljava/lang/String;)Ljava/lang/String;
+Ljava/net/CookieManager;->pathMatches(Ljava/net/URI;Ljava/net/HttpCookie;)Z
+Ljava/net/CookieManager;->policyCallback:Ljava/net/CookiePolicy;
+Ljava/net/CookieManager;->shouldAcceptInternal(Ljava/net/URI;Ljava/net/HttpCookie;)Z
+Ljava/net/CookieManager;->sortByPath(Ljava/util/List;)Ljava/util/List;
+Ljava/net/DatagramPacket;->address:Ljava/net/InetAddress;
+Ljava/net/DatagramPacket;->buf:[B
+Ljava/net/DatagramPacket;->bufLength:I
+Ljava/net/DatagramPacket;->length:I
+Ljava/net/DatagramPacket;->offset:I
+Ljava/net/DatagramPacket;->port:I
+Ljava/net/DatagramPacket;->setReceivedLength(I)V
+Ljava/net/DatagramSocket;->bound:Z
+Ljava/net/DatagramSocket;->bytesLeftToFilter:I
+Ljava/net/DatagramSocket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V
+Ljava/net/DatagramSocket;->checkFiltering(Ljava/net/DatagramPacket;)Z
+Ljava/net/DatagramSocket;->checkOldImpl()V
+Ljava/net/DatagramSocket;->closed:Z
+Ljava/net/DatagramSocket;->closeLock:Ljava/lang/Object;
+Ljava/net/DatagramSocket;->connectedAddress:Ljava/net/InetAddress;
+Ljava/net/DatagramSocket;->connectedPort:I
+Ljava/net/DatagramSocket;->connectInternal(Ljava/net/InetAddress;I)V
+Ljava/net/DatagramSocket;->connectState:I
+Ljava/net/DatagramSocket;->created:Z
+Ljava/net/DatagramSocket;->createImpl()V
+Ljava/net/DatagramSocket;->explicitFilter:Z
+Ljava/net/DatagramSocket;->factory:Ljava/net/DatagramSocketImplFactory;
+Ljava/net/DatagramSocket;->getImpl()Ljava/net/DatagramSocketImpl;
+Ljava/net/DatagramSocket;->implClass:Ljava/lang/Class;
+Ljava/net/DatagramSocket;->oldImpl:Z
+Ljava/net/DatagramSocket;->pendingConnectException:Ljava/net/SocketException;
+Ljava/net/DatagramSocket;->ST_CONNECTED:I
+Ljava/net/DatagramSocket;->ST_CONNECTED_NO_IMPL:I
+Ljava/net/DatagramSocket;->ST_NOT_CONNECTED:I
+Ljava/net/DatagramSocketImpl;->dataAvailable()I
+Ljava/net/DatagramSocketImpl;->getDatagramSocket()Ljava/net/DatagramSocket;
+Ljava/net/DatagramSocketImpl;->getOption(Ljava/net/SocketOption;)Ljava/lang/Object;
+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
+Ljava/net/HttpCookie;->equalsIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
+Ljava/net/HttpCookie;->GMT:Ljava/util/TimeZone;
+Ljava/net/HttpCookie;->guessCookieVersion(Ljava/lang/String;)I
+Ljava/net/HttpCookie;->header()Ljava/lang/String;
+Ljava/net/HttpCookie;->isFullyQualifiedDomainName(Ljava/lang/String;I)Z
+Ljava/net/HttpCookie;->isToken(Ljava/lang/String;)Z
+Ljava/net/HttpCookie;->MAX_AGE_UNSPECIFIED:J
+Ljava/net/HttpCookie;->parse(Ljava/lang/String;Z)Ljava/util/List;
+Ljava/net/HttpCookie;->parseInternal(Ljava/lang/String;Z)Ljava/net/HttpCookie;
+Ljava/net/HttpCookie;->RESERVED_NAMES:Ljava/util/Set;
+Ljava/net/HttpCookie;->SET_COOKIE2:Ljava/lang/String;
+Ljava/net/HttpCookie;->SET_COOKIE:Ljava/lang/String;
+Ljava/net/HttpCookie;->splitMultiCookies(Ljava/lang/String;)Ljava/util/List;
+Ljava/net/HttpCookie;->startsWithIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
+Ljava/net/HttpCookie;->stripOffSurroundingQuote(Ljava/lang/String;)Ljava/lang/String;
+Ljava/net/HttpCookie;->toNetscapeHeaderString()Ljava/lang/String;
+Ljava/net/HttpCookie;->toRFC2965HeaderString()Ljava/lang/String;
+Ljava/net/HttpRetryException;->location:Ljava/lang/String;
+Ljava/net/HttpRetryException;->responseCode:I
+Ljava/net/HttpURLConnection;->DEFAULT_CHUNK_SIZE:I
+Ljava/net/HttpURLConnection;->followRedirects:Z
+Ljava/net/HttpURLConnection;->methods:[Ljava/lang/String;
+Ljava/net/IDN;-><init>()V
+Ljava/net/IDN;->convertFullStop(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
+Ljava/net/IDN;->isLabelSeperator(C)Z
+Ljava/net/Inet4Address;-><init>(Ljava/lang/String;I)V
+Ljava/net/Inet4Address;-><init>(Ljava/lang/String;[B)V
+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
+Ljava/net/Inet6Address$Inet6AddressHolder;->isIPv4CompatibleAddress()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isLinkLocalAddress()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isLoopbackAddress()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isMCGlobal()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isMCLinkLocal()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isMCNodeLocal()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isMCOrgLocal()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isMCSiteLocal()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isMulticastAddress()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->isSiteLocalAddress()Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->scope_ifname_set:Z
+Ljava/net/Inet6Address$Inet6AddressHolder;->setAddr([B)V
+Ljava/net/Inet6Address;-><init>(Ljava/lang/String;[B)V
+Ljava/net/Inet6Address;-><init>(Ljava/lang/String;[BI)V
+Ljava/net/Inet6Address;-><init>(Ljava/lang/String;[BLjava/lang/String;)V
+Ljava/net/Inet6Address;-><init>(Ljava/lang/String;[BLjava/net/NetworkInterface;)V
+Ljava/net/Inet6Address;->deriveNumericScope(Ljava/lang/String;)I
+Ljava/net/Inet6Address;->deriveNumericScope([BLjava/net/NetworkInterface;)I
+Ljava/net/Inet6Address;->FIELDS_OFFSET:J
+Ljava/net/Inet6Address;->INADDRSZ:I
+Ljava/net/Inet6Address;->initif(Ljava/lang/String;[BLjava/net/NetworkInterface;)V
+Ljava/net/Inet6Address;->initstr(Ljava/lang/String;[BLjava/lang/String;)V
+Ljava/net/Inet6Address;->INT16SZ:I
+Ljava/net/Inet6Address;->isDifferentLocalAddressType([B[B)Z
+Ljava/net/Inet6Address;->isLinkLocalAddress([B)Z
+Ljava/net/Inet6Address;->isSiteLocalAddress([B)Z
+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
+Ljava/net/InetAddress$InetAddressHolder;->getFamily()I
+Ljava/net/InetAddress$InetAddressHolder;->getHostName()Ljava/lang/String;
+Ljava/net/InetAddress$InetAddressHolder;->getOriginalHostName()Ljava/lang/String;
+Ljava/net/InetAddress$InetAddressHolder;->init(Ljava/lang/String;I)V
+Ljava/net/InetAddress;-><init>()V
+Ljava/net/InetAddress;->anyLocalAddress()Ljava/net/InetAddress;
+Ljava/net/InetAddress;->BOOT_CLASSLOADER:Ljava/lang/ClassLoader;
+Ljava/net/InetAddress;->canonicalHostName:Ljava/lang/String;
+Ljava/net/InetAddress;->disallowDeprecatedFormats(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/net/InetAddress;
+Ljava/net/InetAddress;->getAllByName0(Ljava/lang/String;Z)[Ljava/net/InetAddress;
+Ljava/net/InetAddress;->getByAddress(Ljava/lang/String;[BI)Ljava/net/InetAddress;
+Ljava/net/InetAddress;->getByNameOnNet(Ljava/lang/String;I)Ljava/net/InetAddress;
+Ljava/net/InetAddress;->getHostFromNameService(Ljava/net/InetAddress;)Ljava/lang/String;
+Ljava/net/InetAddress;->getHostName(Z)Ljava/lang/String;
+Ljava/net/InetAddress;->impl:Ljava/net/InetAddressImpl;
+Ljava/net/InetAddress;->isReachableByICMP(I)Z
+Ljava/net/InetAddress;->nameService:Lsun/net/spi/nameservice/NameService;
+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;
+Ljava/net/InetSocketAddress$InetSocketAddressHolder;->getHostName()Ljava/lang/String;
+Ljava/net/InetSocketAddress$InetSocketAddressHolder;->getHostString()Ljava/lang/String;
+Ljava/net/InetSocketAddress$InetSocketAddressHolder;->getPort()I
+Ljava/net/InetSocketAddress$InetSocketAddressHolder;->hostname:Ljava/lang/String;
+Ljava/net/InetSocketAddress$InetSocketAddressHolder;->isUnresolved()Z
+Ljava/net/InetSocketAddress$InetSocketAddressHolder;->port:I
+Ljava/net/InetSocketAddress;-><init>()V
+Ljava/net/InetSocketAddress;-><init>(ILjava/lang/String;)V
+Ljava/net/InetSocketAddress;->checkHost(Ljava/lang/String;)Ljava/lang/String;
+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
+Ljava/net/InMemoryCookieStore;->applyMCompatibility:Z
+Ljava/net/InMemoryCookieStore;->getEffectiveURI(Ljava/net/URI;)Ljava/net/URI;
+Ljava/net/InMemoryCookieStore;->getInternal1(Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V
+Ljava/net/InMemoryCookieStore;->getInternal2(Ljava/util/List;Ljava/util/Map;Ljava/lang/Comparable;)V
+Ljava/net/InMemoryCookieStore;->lock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/net/InMemoryCookieStore;->netscapeDomainMatches(Ljava/lang/String;Ljava/lang/String;)Z
+Ljava/net/InMemoryCookieStore;->uriIndex:Ljava/util/Map;
+Ljava/net/InterfaceAddress;-><init>(Ljava/net/InetAddress;Ljava/net/Inet4Address;Ljava/net/InetAddress;)V
+Ljava/net/InterfaceAddress;->address:Ljava/net/InetAddress;
+Ljava/net/InterfaceAddress;->broadcast:Ljava/net/Inet4Address;
+Ljava/net/InterfaceAddress;->countPrefixLength(Ljava/net/InetAddress;)S
+Ljava/net/InterfaceAddress;->maskLength:S
+Ljava/net/JarURLConnection;->entryName:Ljava/lang/String;
+Ljava/net/JarURLConnection;->jarFileURL:Ljava/net/URL;
+Ljava/net/JarURLConnection;->parseSpecs(Ljava/net/URL;)V
+Ljava/net/MulticastSocket;->infAddress:Ljava/net/InetAddress;
+Ljava/net/MulticastSocket;->infLock:Ljava/lang/Object;
+Ljava/net/MulticastSocket;->interfaceSet:Z
+Ljava/net/MulticastSocket;->ttlLock:Ljava/lang/Object;
+Ljava/net/NetworkInterface;-><init>()V
+Ljava/net/NetworkInterface;-><init>(Ljava/lang/String;I[Ljava/net/InetAddress;)V
+Ljava/net/NetworkInterface;->addrs:[Ljava/net/InetAddress;
+Ljava/net/NetworkInterface;->bindings:[Ljava/net/InterfaceAddress;
+Ljava/net/NetworkInterface;->childs:Ljava/util/List;
+Ljava/net/NetworkInterface;->defaultIndex:I
+Ljava/net/NetworkInterface;->defaultInterface:Ljava/net/NetworkInterface;
+Ljava/net/NetworkInterface;->displayName:Ljava/lang/String;
+Ljava/net/NetworkInterface;->getAll()[Ljava/net/NetworkInterface;
+Ljava/net/NetworkInterface;->getDefault()Ljava/net/NetworkInterface;
+Ljava/net/NetworkInterface;->getFlags()I
+Ljava/net/NetworkInterface;->hardwareAddr:[B
+Ljava/net/NetworkInterface;->index:I
+Ljava/net/NetworkInterface;->name:Ljava/lang/String;
+Ljava/net/NetworkInterface;->parent:Ljava/net/NetworkInterface;
+Ljava/net/NetworkInterface;->virtual:Z
+Ljava/net/PasswordAuthentication;->password:[C
+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;
+Ljava/net/ResponseCache;->theResponseCache:Ljava/net/ResponseCache;
+Ljava/net/ServerSocket;-><init>(Ljava/net/SocketImpl;)V
+Ljava/net/ServerSocket;->bound:Z
+Ljava/net/ServerSocket;->checkOldImpl()V
+Ljava/net/ServerSocket;->closed:Z
+Ljava/net/ServerSocket;->closeLock:Ljava/lang/Object;
+Ljava/net/ServerSocket;->created:Z
+Ljava/net/ServerSocket;->createImpl()V
+Ljava/net/ServerSocket;->getFileDescriptor$()Ljava/io/FileDescriptor;
+Ljava/net/ServerSocket;->getImpl()Ljava/net/SocketImpl;
+Ljava/net/ServerSocket;->impl:Ljava/net/SocketImpl;
+Ljava/net/ServerSocket;->oldImpl:Z
+Ljava/net/ServerSocket;->setBound()V
+Ljava/net/ServerSocket;->setCreated()V
+Ljava/net/ServerSocket;->setImpl()V
+Ljava/net/Socket;-><init>([Ljava/net/InetAddress;ILjava/net/SocketAddress;Z)V
+Ljava/net/Socket;->bound:Z
+Ljava/net/Socket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V
+Ljava/net/Socket;->checkOldImpl()V
+Ljava/net/Socket;->closed:Z
+Ljava/net/Socket;->closeLock:Ljava/lang/Object;
+Ljava/net/Socket;->connected:Z
+Ljava/net/Socket;->created:Z
+Ljava/net/Socket;->createImpl(Z)V
+Ljava/net/Socket;->getImpl()Ljava/net/SocketImpl;
+Ljava/net/Socket;->nonNullAddress(Ljava/net/InetAddress;)[Ljava/net/InetAddress;
+Ljava/net/Socket;->oldImpl:Z
+Ljava/net/Socket;->postAccept()V
+Ljava/net/Socket;->setBound()V
+Ljava/net/Socket;->setConnected()V
+Ljava/net/Socket;->setCreated()V
+Ljava/net/Socket;->setImpl()V
+Ljava/net/Socket;->shutIn:Z
+Ljava/net/Socket;->shutOut:Z
+Ljava/net/SocketException;-><init>(Ljava/lang/Throwable;)V
+Ljava/net/SocketImpl;->getFD$()Ljava/io/FileDescriptor;
+Ljava/net/SocketImpl;->getOption(Ljava/net/SocketOption;)Ljava/lang/Object;
+Ljava/net/SocketImpl;->getServerSocket()Ljava/net/ServerSocket;
+Ljava/net/SocketImpl;->getSocket()Ljava/net/Socket;
+Ljava/net/SocketImpl;->reset()V
+Ljava/net/SocketImpl;->setOption(Ljava/net/SocketOption;Ljava/lang/Object;)V
+Ljava/net/SocketImpl;->setServerSocket(Ljava/net/ServerSocket;)V
+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
+Ljava/net/URI$Parser;->checkChar(IJJLjava/lang/String;)V
+Ljava/net/URI$Parser;->checkChars(IIJJLjava/lang/String;)V
+Ljava/net/URI$Parser;->fail(Ljava/lang/String;)V
+Ljava/net/URI$Parser;->fail(Ljava/lang/String;I)V
+Ljava/net/URI$Parser;->failExpecting(Ljava/lang/String;I)V
+Ljava/net/URI$Parser;->failExpecting(Ljava/lang/String;Ljava/lang/String;I)V
+Ljava/net/URI$Parser;->input:Ljava/lang/String;
+Ljava/net/URI$Parser;->ipv6byteCount:I
+Ljava/net/URI$Parser;->parse(Z)V
+Ljava/net/URI$Parser;->parseAuthority(II)I
+Ljava/net/URI$Parser;->parseHierarchical(II)I
+Ljava/net/URI$Parser;->parseHostname(II)I
+Ljava/net/URI$Parser;->parseIPv4Address(II)I
+Ljava/net/URI$Parser;->parseIPv6Reference(II)I
+Ljava/net/URI$Parser;->parseServer(II)I
+Ljava/net/URI$Parser;->requireServerAuthority:Z
+Ljava/net/URI$Parser;->scan(IIC)I
+Ljava/net/URI$Parser;->scan(IIJJ)I
+Ljava/net/URI$Parser;->scan(IILjava/lang/String;Ljava/lang/String;)I
+Ljava/net/URI$Parser;->scanByte(II)I
+Ljava/net/URI$Parser;->scanEscape(IIC)I
+Ljava/net/URI$Parser;->scanHexPost(II)I
+Ljava/net/URI$Parser;->scanHexSeq(II)I
+Ljava/net/URI$Parser;->scanIPv4Address(IIZ)I
+Ljava/net/URI$Parser;->substring(II)Ljava/lang/String;
+Ljava/net/URI$Parser;->takeIPv4Address(IILjava/lang/String;)I
+Ljava/net/URI;-><init>()V
+Ljava/net/URI;->appendAuthority(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+Ljava/net/URI;->appendEncoded(Ljava/lang/StringBuffer;C)V
+Ljava/net/URI;->appendEscape(Ljava/lang/StringBuffer;B)V
+Ljava/net/URI;->appendFragment(Ljava/lang/StringBuffer;Ljava/lang/String;)V
+Ljava/net/URI;->appendSchemeSpecificPart(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+Ljava/net/URI;->authority:Ljava/lang/String;
+Ljava/net/URI;->checkPath(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Ljava/net/URI;->compare(Ljava/lang/String;Ljava/lang/String;)I
+Ljava/net/URI;->compareIgnoringCase(Ljava/lang/String;Ljava/lang/String;)I
+Ljava/net/URI;->decode(C)I
+Ljava/net/URI;->decode(CC)B
+Ljava/net/URI;->decode(Ljava/lang/String;)Ljava/lang/String;
+Ljava/net/URI;->decodedAuthority:Ljava/lang/String;
+Ljava/net/URI;->decodedFragment:Ljava/lang/String;
+Ljava/net/URI;->decodedPath:Ljava/lang/String;
+Ljava/net/URI;->decodedQuery:Ljava/lang/String;
+Ljava/net/URI;->decodedSchemeSpecificPart:Ljava/lang/String;
+Ljava/net/URI;->decodedUserInfo:Ljava/lang/String;
+Ljava/net/URI;->defineSchemeSpecificPart()V
+Ljava/net/URI;->defineString()V
+Ljava/net/URI;->encode(Ljava/lang/String;)Ljava/lang/String;
+Ljava/net/URI;->equal(Ljava/lang/String;Ljava/lang/String;)Z
+Ljava/net/URI;->equalIgnoringCase(Ljava/lang/String;Ljava/lang/String;)Z
+Ljava/net/URI;->hash(ILjava/lang/String;)I
+Ljava/net/URI;->hash:I
+Ljava/net/URI;->hashIgnoringCase(ILjava/lang/String;)I
+Ljava/net/URI;->hexDigits:[C
+Ljava/net/URI;->highMask(CC)J
+Ljava/net/URI;->highMask(Ljava/lang/String;)J
+Ljava/net/URI;->H_ALPHA:J
+Ljava/net/URI;->H_ALPHANUM:J
+Ljava/net/URI;->H_DASH:J
+Ljava/net/URI;->H_DIGIT:J
+Ljava/net/URI;->H_DOT:J
+Ljava/net/URI;->H_ESCAPED:J
+Ljava/net/URI;->H_HEX:J
+Ljava/net/URI;->H_LEFT_BRACKET:J
+Ljava/net/URI;->H_LOWALPHA:J
+Ljava/net/URI;->H_MARK:J
+Ljava/net/URI;->H_PATH:J
+Ljava/net/URI;->H_PCHAR:J
+Ljava/net/URI;->H_REG_NAME:J
+Ljava/net/URI;->H_RESERVED:J
+Ljava/net/URI;->H_SCHEME:J
+Ljava/net/URI;->H_SERVER:J
+Ljava/net/URI;->H_SERVER_PERCENT:J
+Ljava/net/URI;->H_UNDERSCORE:J
+Ljava/net/URI;->H_UNRESERVED:J
+Ljava/net/URI;->H_UPALPHA:J
+Ljava/net/URI;->H_URIC:J
+Ljava/net/URI;->H_URIC_NO_SLASH:J
+Ljava/net/URI;->H_USERINFO:J
+Ljava/net/URI;->join([C[I)I
+Ljava/net/URI;->lowMask(CC)J
+Ljava/net/URI;->lowMask(Ljava/lang/String;)J
+Ljava/net/URI;->L_ALPHA:J
+Ljava/net/URI;->L_ALPHANUM:J
+Ljava/net/URI;->L_DASH:J
+Ljava/net/URI;->L_DIGIT:J
+Ljava/net/URI;->L_DOT:J
+Ljava/net/URI;->L_ESCAPED:J
+Ljava/net/URI;->L_HEX:J
+Ljava/net/URI;->L_LEFT_BRACKET:J
+Ljava/net/URI;->L_LOWALPHA:J
+Ljava/net/URI;->L_MARK:J
+Ljava/net/URI;->L_PATH:J
+Ljava/net/URI;->L_PCHAR:J
+Ljava/net/URI;->L_REG_NAME:J
+Ljava/net/URI;->L_RESERVED:J
+Ljava/net/URI;->L_SCHEME:J
+Ljava/net/URI;->L_SERVER:J
+Ljava/net/URI;->L_SERVER_PERCENT:J
+Ljava/net/URI;->L_UNDERSCORE:J
+Ljava/net/URI;->L_UNRESERVED:J
+Ljava/net/URI;->L_UPALPHA:J
+Ljava/net/URI;->L_URIC:J
+Ljava/net/URI;->L_URIC_NO_SLASH:J
+Ljava/net/URI;->L_USERINFO:J
+Ljava/net/URI;->match(CJJ)Z
+Ljava/net/URI;->maybeAddLeadingDot([C[I)V
+Ljava/net/URI;->needsNormalization(Ljava/lang/String;)I
+Ljava/net/URI;->normalize(Ljava/lang/String;)Ljava/lang/String;
+Ljava/net/URI;->normalize(Ljava/lang/String;Z)Ljava/lang/String;
+Ljava/net/URI;->normalize(Ljava/net/URI;)Ljava/net/URI;
+Ljava/net/URI;->normalizedHash(ILjava/lang/String;)I
+Ljava/net/URI;->path:Ljava/lang/String;
+Ljava/net/URI;->quote(Ljava/lang/String;JJ)Ljava/lang/String;
+Ljava/net/URI;->relativize(Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI;
+Ljava/net/URI;->removeDots([C[IZ)V
+Ljava/net/URI;->resolve(Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI;
+Ljava/net/URI;->resolvePath(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
+Ljava/net/URI;->scheme:Ljava/lang/String;
+Ljava/net/URI;->schemeSpecificPart:Ljava/lang/String;
+Ljava/net/URI;->split([C[I)V
+Ljava/net/URI;->toLower(C)I
+Ljava/net/URI;->toString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Ljava/net/URI;->toUpper(C)I
+Ljava/net/URI;->userInfo:Ljava/lang/String;
+Ljava/net/URISyntaxException;->index:I
+Ljava/net/URISyntaxException;->input:Ljava/lang/String;
+Ljava/net/URL;->authority:Ljava/lang/String;
+Ljava/net/URL;->BUILTIN_HANDLER_CLASS_NAMES:Ljava/util/Set;
+Ljava/net/URL;->checkSpecifyHandler(Ljava/lang/SecurityManager;)V
+Ljava/net/URL;->createBuiltinHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;
+Ljava/net/URL;->createBuiltinHandlerClassNames()Ljava/util/Set;
+Ljava/net/URL;->fabricateNewURL()Ljava/net/URL;
+Ljava/net/URL;->file:Ljava/lang/String;
+Ljava/net/URL;->getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;
+Ljava/net/URL;->hashCode:I
+Ljava/net/URL;->host:Ljava/lang/String;
+Ljava/net/URL;->hostAddress:Ljava/net/InetAddress;
+Ljava/net/URL;->isBuiltinStreamHandler(Ljava/lang/String;)Z
+Ljava/net/URL;->isValidProtocol(Ljava/lang/String;)Z
+Ljava/net/URL;->path:Ljava/lang/String;
+Ljava/net/URL;->port:I
+Ljava/net/URL;->protocolPathProp:Ljava/lang/String;
+Ljava/net/URL;->query:Ljava/lang/String;
+Ljava/net/URL;->ref:Ljava/lang/String;
+Ljava/net/URL;->resetState()V
+Ljava/net/URL;->set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+Ljava/net/URL;->set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Ljava/net/URL;->setDeserializedFields(Ljava/net/URLStreamHandler;)Ljava/net/URL;
+Ljava/net/URL;->setSerializedHashCode(I)V
+Ljava/net/URL;->streamHandlerLock:Ljava/lang/Object;
+Ljava/net/URL;->tempState:Ljava/net/UrlDeserializedState;
+Ljava/net/URL;->userInfo:Ljava/lang/String;
+Ljava/net/URLClassLoader;-><init>([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/security/AccessControlContext;)V
+Ljava/net/URLClassLoader;-><init>([Ljava/net/URL;Ljava/security/AccessControlContext;)V
+Ljava/net/URLClassLoader;->closeables:Ljava/util/WeakHashMap;
+Ljava/net/URLClassLoader;->defineClass(Ljava/lang/String;Lsun/misc/Resource;)Ljava/lang/Class;
+Ljava/net/URLClassLoader;->definePackageInternal(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)V
+Ljava/net/URLClassLoader;->getAndVerifyPackage(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
+Ljava/net/URLClassLoader;->isSealed(Ljava/lang/String;Ljava/util/jar/Manifest;)Z
+Ljava/net/URLConnection;->checkfpx(Ljava/io/InputStream;)Z
+Ljava/net/URLConnection;->connectTimeout:I
+Ljava/net/URLConnection;->contentClassPrefix:Ljava/lang/String;
+Ljava/net/URLConnection;->contentPathProp:Ljava/lang/String;
+Ljava/net/URLConnection;->defaultAllowUserInteraction:Z
+Ljava/net/URLConnection;->defaultUseCaches:Z
+Ljava/net/URLConnection;->factory:Ljava/net/ContentHandlerFactory;
+Ljava/net/URLConnection;->fileNameMap:Ljava/net/FileNameMap;
+Ljava/net/URLConnection;->getContentHandler()Ljava/net/ContentHandler;
+Ljava/net/URLConnection;->getContentHandlerPkgPrefixes()Ljava/lang/String;
+Ljava/net/URLConnection;->handlers:Ljava/util/Hashtable;
+Ljava/net/URLConnection;->lookupContentHandlerClassFor(Ljava/lang/String;)Ljava/net/ContentHandler;
+Ljava/net/URLConnection;->readBytes([IILjava/io/InputStream;)I
+Ljava/net/URLConnection;->readTimeout:I
+Ljava/net/URLConnection;->requests:Lsun/net/www/MessageHeader;
+Ljava/net/URLConnection;->skipForward(Ljava/io/InputStream;J)J
+Ljava/net/URLConnection;->stripOffParameters(Ljava/lang/String;)Ljava/lang/String;
+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;
+Ljava/net/UrlDeserializedState;->getAuthority()Ljava/lang/String;
+Ljava/net/UrlDeserializedState;->getFile()Ljava/lang/String;
+Ljava/net/UrlDeserializedState;->getHashCode()I
+Ljava/net/UrlDeserializedState;->getHost()Ljava/lang/String;
+Ljava/net/UrlDeserializedState;->getPort()I
+Ljava/net/UrlDeserializedState;->getProtocol()Ljava/lang/String;
+Ljava/net/UrlDeserializedState;->getRef()Ljava/lang/String;
+Ljava/net/UrlDeserializedState;->hashCode:I
+Ljava/net/UrlDeserializedState;->host:Ljava/lang/String;
+Ljava/net/UrlDeserializedState;->port:I
+Ljava/net/UrlDeserializedState;->protocol:Ljava/lang/String;
+Ljava/net/UrlDeserializedState;->reconstituteUrlString()Ljava/lang/String;
+Ljava/net/UrlDeserializedState;->ref:Ljava/lang/String;
+Ljava/net/URLEncoder;-><init>()V
+Ljava/net/URLEncoder;->caseDiff:I
+Ljava/net/URLEncoder;->dfltEncName:Ljava/lang/String;
+Ljava/net/URLEncoder;->dontNeedEncoding:Ljava/util/BitSet;
+Ljava/nio/Buffer;-><init>(IIIII)V
+Ljava/nio/Buffer;->checkBounds(III)V
+Ljava/nio/Buffer;->checkIndex(I)I
+Ljava/nio/Buffer;->checkIndex(II)I
+Ljava/nio/Buffer;->discardMark()V
+Ljava/nio/Buffer;->getElementSizeShift()I
+Ljava/nio/Buffer;->mark:I
+Ljava/nio/Buffer;->markValue()I
+Ljava/nio/Buffer;->nextGetIndex()I
+Ljava/nio/Buffer;->nextGetIndex(I)I
+Ljava/nio/Buffer;->nextPutIndex()I
+Ljava/nio/Buffer;->nextPutIndex(I)I
+Ljava/nio/Buffer;->SPLITERATOR_CHARACTERISTICS:I
+Ljava/nio/Buffer;->truncate()V
+Ljava/nio/ByteBuffer;-><init>(IIII)V
+Ljava/nio/ByteBuffer;-><init>(IIII[BI)V
+Ljava/nio/ByteBuffer;->bigEndian:Z
+Ljava/nio/ByteBuffer;->compare(BB)I
+Ljava/nio/ByteBuffer;->equals(BB)Z
+Ljava/nio/ByteBuffer;->getCharUnchecked(I)C
+Ljava/nio/ByteBuffer;->getDoubleUnchecked(I)D
+Ljava/nio/ByteBuffer;->getFloatUnchecked(I)F
+Ljava/nio/ByteBuffer;->getIntUnchecked(I)I
+Ljava/nio/ByteBuffer;->getLongUnchecked(I)J
+Ljava/nio/ByteBuffer;->getShortUnchecked(I)S
+Ljava/nio/ByteBuffer;->getUnchecked(I[CII)V
+Ljava/nio/ByteBuffer;->getUnchecked(I[DII)V
+Ljava/nio/ByteBuffer;->getUnchecked(I[FII)V
+Ljava/nio/ByteBuffer;->getUnchecked(I[III)V
+Ljava/nio/ByteBuffer;->getUnchecked(I[JII)V
+Ljava/nio/ByteBuffer;->getUnchecked(I[SII)V
+Ljava/nio/ByteBuffer;->isAccessible()Z
+Ljava/nio/ByteBuffer;->nativeByteOrder:Z
+Ljava/nio/ByteBuffer;->putCharUnchecked(IC)V
+Ljava/nio/ByteBuffer;->putDoubleUnchecked(ID)V
+Ljava/nio/ByteBuffer;->putFloatUnchecked(IF)V
+Ljava/nio/ByteBuffer;->putIntUnchecked(II)V
+Ljava/nio/ByteBuffer;->putLongUnchecked(IJ)V
+Ljava/nio/ByteBuffer;->putShortUnchecked(IS)V
+Ljava/nio/ByteBuffer;->putUnchecked(I[CII)V
+Ljava/nio/ByteBuffer;->putUnchecked(I[DII)V
+Ljava/nio/ByteBuffer;->putUnchecked(I[FII)V
+Ljava/nio/ByteBuffer;->putUnchecked(I[III)V
+Ljava/nio/ByteBuffer;->putUnchecked(I[JII)V
+Ljava/nio/ByteBuffer;->putUnchecked(I[SII)V
+Ljava/nio/ByteBuffer;->setAccessible(Z)V
+Ljava/nio/ByteBuffer;->_get(I)B
+Ljava/nio/ByteBuffer;->_put(IB)V
+Ljava/nio/ByteOrder;-><init>(Ljava/lang/String;)V
+Ljava/nio/ByteOrder;->name:Ljava/lang/String;
+Ljava/nio/channels/AsynchronousChannelGroup;->provider:Ljava/nio/channels/spi/AsynchronousChannelProvider;
+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
+Ljava/nio/channels/Channels$WritableByteChannelImpl;->out:Ljava/io/OutputStream;
+Ljava/nio/channels/Channels$WritableByteChannelImpl;->TRANSFER_SIZE:I
+Ljava/nio/channels/Channels$WritableByteChannelImpl;->writeLock:Ljava/lang/Object;
+Ljava/nio/channels/Channels;-><init>()V
+Ljava/nio/channels/Channels;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
+Ljava/nio/channels/Channels;->writeFully(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
+Ljava/nio/channels/Channels;->writeFullyImpl(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
+Ljava/nio/channels/FileChannel$MapMode;-><init>(Ljava/lang/String;)V
+Ljava/nio/channels/FileChannel$MapMode;->name:Ljava/lang/String;
+Ljava/nio/channels/FileChannel;->NO_ATTRIBUTES:[Ljava/nio/file/attribute/FileAttribute;
+Ljava/nio/channels/FileLock;->channel:Ljava/nio/channels/Channel;
+Ljava/nio/channels/FileLock;->position:J
+Ljava/nio/channels/FileLock;->shared:Z
+Ljava/nio/channels/FileLock;->size:J
+Ljava/nio/channels/SelectionKey;->attachment:Ljava/lang/Object;
+Ljava/nio/channels/SelectionKey;->attachmentUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
+Ljava/nio/channels/spi/AbstractInterruptibleChannel;->blockedOn(Lsun/nio/ch/Interruptible;)V
+Ljava/nio/channels/spi/AbstractInterruptibleChannel;->closeLock:Ljava/lang/Object;
+Ljava/nio/channels/spi/AbstractInterruptibleChannel;->interrupted:Ljava/lang/Thread;
+Ljava/nio/channels/spi/AbstractInterruptibleChannel;->interruptor:Lsun/nio/ch/Interruptible;
+Ljava/nio/channels/spi/AbstractInterruptibleChannel;->open:Z
+Ljava/nio/channels/spi/AbstractSelectableChannel;->addKey(Ljava/nio/channels/SelectionKey;)V
+Ljava/nio/channels/spi/AbstractSelectableChannel;->blocking:Z
+Ljava/nio/channels/spi/AbstractSelectableChannel;->findKey(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;
+Ljava/nio/channels/spi/AbstractSelectableChannel;->haveValidKeys()Z
+Ljava/nio/channels/spi/AbstractSelectableChannel;->keyCount:I
+Ljava/nio/channels/spi/AbstractSelectableChannel;->keyLock:Ljava/lang/Object;
+Ljava/nio/channels/spi/AbstractSelectableChannel;->keys:[Ljava/nio/channels/SelectionKey;
+Ljava/nio/channels/spi/AbstractSelectableChannel;->provider:Ljava/nio/channels/spi/SelectorProvider;
+Ljava/nio/channels/spi/AbstractSelectableChannel;->regLock:Ljava/lang/Object;
+Ljava/nio/channels/spi/AbstractSelectableChannel;->removeKey(Ljava/nio/channels/SelectionKey;)V
+Ljava/nio/channels/spi/AbstractSelectionKey;->invalidate()V
+Ljava/nio/channels/spi/AbstractSelectionKey;->valid:Z
+Ljava/nio/channels/spi/AbstractSelector;->cancel(Ljava/nio/channels/SelectionKey;)V
+Ljava/nio/channels/spi/AbstractSelector;->cancelledKeys:Ljava/util/Set;
+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;
+Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;->loadProviderFromProperty()Ljava/nio/channels/spi/AsynchronousChannelProvider;
+Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;->provider:Ljava/nio/channels/spi/AsynchronousChannelProvider;
+Ljava/nio/channels/spi/AsynchronousChannelProvider;-><init>(Ljava/lang/Void;)V
+Ljava/nio/channels/spi/AsynchronousChannelProvider;->checkPermission()Ljava/lang/Void;
+Ljava/nio/channels/spi/SelectorProvider;->loadProviderAsService()Z
+Ljava/nio/channels/spi/SelectorProvider;->loadProviderFromProperty()Z
+Ljava/nio/channels/spi/SelectorProvider;->lock:Ljava/lang/Object;
+Ljava/nio/channels/spi/SelectorProvider;->provider:Ljava/nio/channels/spi/SelectorProvider;
+Ljava/nio/CharBuffer;-><init>(IIII)V
+Ljava/nio/CharBuffer;-><init>(IIII[CI)V
+Ljava/nio/CharBuffer;->compare(CC)I
+Ljava/nio/CharBuffer;->equals(CC)Z
+Ljava/nio/CharBuffer;->getUnchecked(I)C
+Ljava/nio/CharBuffer;->hb:[C
+Ljava/nio/CharBuffer;->isReadOnly:Z
+Ljava/nio/CharBuffer;->offset:I
+Ljava/nio/charset/Charset;->aliases:[Ljava/lang/String;
+Ljava/nio/charset/Charset;->aliasSet:Ljava/util/Set;
+Ljava/nio/charset/Charset;->atBugLevel(Ljava/lang/String;)Z
+Ljava/nio/charset/Charset;->bugLevel:Ljava/lang/String;
+Ljava/nio/charset/Charset;->cache(Ljava/lang/String;Ljava/nio/charset/Charset;)V
+Ljava/nio/charset/Charset;->cache1:Ljava/util/Map$Entry;
+Ljava/nio/charset/Charset;->cache2:Ljava/util/HashMap;
+Ljava/nio/charset/Charset;->checkName(Ljava/lang/String;)V
+Ljava/nio/charset/Charset;->forNameUEE(Ljava/lang/String;)Ljava/nio/charset/Charset;
+Ljava/nio/charset/Charset;->gate:Ljava/lang/ThreadLocal;
+Ljava/nio/charset/Charset;->lookup(Ljava/lang/String;)Ljava/nio/charset/Charset;
+Ljava/nio/charset/Charset;->lookup2(Ljava/lang/String;)Ljava/nio/charset/Charset;
+Ljava/nio/charset/Charset;->lookupViaProviders(Ljava/lang/String;)Ljava/nio/charset/Charset;
+Ljava/nio/charset/Charset;->name:Ljava/lang/String;
+Ljava/nio/charset/Charset;->providers()Ljava/util/Iterator;
+Ljava/nio/charset/Charset;->put(Ljava/util/Iterator;Ljava/util/Map;)V
+Ljava/nio/charset/CharsetDecoder;-><init>(Ljava/nio/charset/Charset;FFLjava/lang/String;)V
+Ljava/nio/charset/CharsetDecoder;->averageCharsPerByte:F
+Ljava/nio/charset/CharsetDecoder;->charset:Ljava/nio/charset/Charset;
+Ljava/nio/charset/CharsetDecoder;->malformedInputAction:Ljava/nio/charset/CodingErrorAction;
+Ljava/nio/charset/CharsetDecoder;->maxCharsPerByte:F
+Ljava/nio/charset/CharsetDecoder;->replacement:Ljava/lang/String;
+Ljava/nio/charset/CharsetDecoder;->state:I
+Ljava/nio/charset/CharsetDecoder;->stateNames:[Ljava/lang/String;
+Ljava/nio/charset/CharsetDecoder;->ST_CODING:I
+Ljava/nio/charset/CharsetDecoder;->ST_END:I
+Ljava/nio/charset/CharsetDecoder;->ST_FLUSHED:I
+Ljava/nio/charset/CharsetDecoder;->ST_RESET:I
+Ljava/nio/charset/CharsetDecoder;->throwIllegalStateException(II)V
+Ljava/nio/charset/CharsetDecoder;->unmappableCharacterAction:Ljava/nio/charset/CodingErrorAction;
+Ljava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF[BZ)V
+Ljava/nio/charset/CharsetEncoder;->averageBytesPerChar:F
+Ljava/nio/charset/CharsetEncoder;->cachedDecoder:Ljava/lang/ref/WeakReference;
+Ljava/nio/charset/CharsetEncoder;->charset:Ljava/nio/charset/Charset;
+Ljava/nio/charset/CharsetEncoder;->malformedInputAction:Ljava/nio/charset/CodingErrorAction;
+Ljava/nio/charset/CharsetEncoder;->maxBytesPerChar:F
+Ljava/nio/charset/CharsetEncoder;->replacement:[B
+Ljava/nio/charset/CharsetEncoder;->state:I
+Ljava/nio/charset/CharsetEncoder;->stateNames:[Ljava/lang/String;
+Ljava/nio/charset/CharsetEncoder;->ST_CODING:I
+Ljava/nio/charset/CharsetEncoder;->ST_END:I
+Ljava/nio/charset/CharsetEncoder;->ST_FLUSHED:I
+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;
+Ljava/nio/charset/CoderResult$Cache;->get(I)Ljava/nio/charset/CoderResult;
+Ljava/nio/charset/CoderResult;-><init>(II)V
+Ljava/nio/charset/CoderResult;->CR_ERROR_MIN:I
+Ljava/nio/charset/CoderResult;->CR_MALFORMED:I
+Ljava/nio/charset/CoderResult;->CR_OVERFLOW:I
+Ljava/nio/charset/CoderResult;->CR_UNDERFLOW:I
+Ljava/nio/charset/CoderResult;->CR_UNMAPPABLE:I
+Ljava/nio/charset/CoderResult;->length:I
+Ljava/nio/charset/CoderResult;->malformedCache:Ljava/nio/charset/CoderResult$Cache;
+Ljava/nio/charset/CoderResult;->names:[Ljava/lang/String;
+Ljava/nio/charset/CoderResult;->type:I
+Ljava/nio/charset/CoderResult;->unmappableCache:Ljava/nio/charset/CoderResult$Cache;
+Ljava/nio/charset/CodingErrorAction;-><init>(Ljava/lang/String;)V
+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;
+Ljava/nio/charset/ModifiedUtf8;->encode(Ljava/lang/String;)[B
+Ljava/nio/charset/ModifiedUtf8;->encode([BILjava/lang/String;)V
+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
+Ljava/nio/DirectByteBuffer$MemoryRef;->buffer:[B
+Ljava/nio/DirectByteBuffer$MemoryRef;->free()V
+Ljava/nio/DirectByteBuffer$MemoryRef;->isAccessible:Z
+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
+Ljava/nio/DirectByteBuffer;-><init>(Ljava/nio/DirectByteBuffer$MemoryRef;IIIIIZ)V
+Ljava/nio/DirectByteBuffer;->cleaner:Lsun/misc/Cleaner;
+Ljava/nio/DirectByteBuffer;->get(J)B
+Ljava/nio/DirectByteBuffer;->getCharUnchecked(I)C
+Ljava/nio/DirectByteBuffer;->getDouble(J)D
+Ljava/nio/DirectByteBuffer;->getDoubleUnchecked(I)D
+Ljava/nio/DirectByteBuffer;->getFloat(J)F
+Ljava/nio/DirectByteBuffer;->getFloatUnchecked(I)F
+Ljava/nio/DirectByteBuffer;->getInt(J)I
+Ljava/nio/DirectByteBuffer;->getIntUnchecked(I)I
+Ljava/nio/DirectByteBuffer;->getLong(J)J
+Ljava/nio/DirectByteBuffer;->getLongUnchecked(I)J
+Ljava/nio/DirectByteBuffer;->getShort(J)S
+Ljava/nio/DirectByteBuffer;->getShortUnchecked(I)S
+Ljava/nio/DirectByteBuffer;->getUnchecked(I[CII)V
+Ljava/nio/DirectByteBuffer;->getUnchecked(I[DII)V
+Ljava/nio/DirectByteBuffer;->getUnchecked(I[FII)V
+Ljava/nio/DirectByteBuffer;->getUnchecked(I[III)V
+Ljava/nio/DirectByteBuffer;->getUnchecked(I[JII)V
+Ljava/nio/DirectByteBuffer;->getUnchecked(I[SII)V
+Ljava/nio/DirectByteBuffer;->isAccessible()Z
+Ljava/nio/DirectByteBuffer;->ix(I)J
+Ljava/nio/DirectByteBuffer;->memoryRef:Ljava/nio/DirectByteBuffer$MemoryRef;
+Ljava/nio/DirectByteBuffer;->put(JB)Ljava/nio/ByteBuffer;
+Ljava/nio/DirectByteBuffer;->putChar(JC)Ljava/nio/ByteBuffer;
+Ljava/nio/DirectByteBuffer;->putCharUnchecked(IC)V
+Ljava/nio/DirectByteBuffer;->putDouble(JD)Ljava/nio/ByteBuffer;
+Ljava/nio/DirectByteBuffer;->putDoubleUnchecked(ID)V
+Ljava/nio/DirectByteBuffer;->putFloat(JF)Ljava/nio/ByteBuffer;
+Ljava/nio/DirectByteBuffer;->putFloatUnchecked(IF)V
+Ljava/nio/DirectByteBuffer;->putInt(JI)Ljava/nio/ByteBuffer;
+Ljava/nio/DirectByteBuffer;->putIntUnchecked(II)V
+Ljava/nio/DirectByteBuffer;->putLong(JJ)Ljava/nio/ByteBuffer;
+Ljava/nio/DirectByteBuffer;->putLongUnchecked(IJ)V
+Ljava/nio/DirectByteBuffer;->putShort(JS)Ljava/nio/ByteBuffer;
+Ljava/nio/DirectByteBuffer;->putShortUnchecked(IS)V
+Ljava/nio/DirectByteBuffer;->putUnchecked(I[CII)V
+Ljava/nio/DirectByteBuffer;->putUnchecked(I[DII)V
+Ljava/nio/DirectByteBuffer;->putUnchecked(I[FII)V
+Ljava/nio/DirectByteBuffer;->putUnchecked(I[III)V
+Ljava/nio/DirectByteBuffer;->putUnchecked(I[JII)V
+Ljava/nio/DirectByteBuffer;->putUnchecked(I[SII)V
+Ljava/nio/DirectByteBuffer;->setAccessible(Z)V
+Ljava/nio/DirectByteBuffer;->_get(I)B
+Ljava/nio/DirectByteBuffer;->_put(IB)V
+Ljava/nio/DoubleBuffer;-><init>(IIII)V
+Ljava/nio/DoubleBuffer;-><init>(IIII[DI)V
+Ljava/nio/DoubleBuffer;->compare(DD)I
+Ljava/nio/DoubleBuffer;->equals(DD)Z
+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;
+Ljava/nio/file/attribute/AclEntry$Builder;->perms:Ljava/util/Set;
+Ljava/nio/file/attribute/AclEntry$Builder;->type:Ljava/nio/file/attribute/AclEntryType;
+Ljava/nio/file/attribute/AclEntry$Builder;->who:Ljava/nio/file/attribute/UserPrincipal;
+Ljava/nio/file/attribute/AclEntry;-><init>(Ljava/nio/file/attribute/AclEntryType;Ljava/nio/file/attribute/UserPrincipal;Ljava/util/Set;Ljava/util/Set;)V
+Ljava/nio/file/attribute/AclEntry;->flags:Ljava/util/Set;
+Ljava/nio/file/attribute/AclEntry;->hash(ILjava/lang/Object;)I
+Ljava/nio/file/attribute/AclEntry;->hash:I
+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
+Ljava/nio/file/attribute/FileTime;->HOURS_PER_DAY:J
+Ljava/nio/file/attribute/FileTime;->instant:Ljava/time/Instant;
+Ljava/nio/file/attribute/FileTime;->MAX_SECOND:J
+Ljava/nio/file/attribute/FileTime;->MICROS_PER_SECOND:J
+Ljava/nio/file/attribute/FileTime;->MILLIS_PER_SECOND:J
+Ljava/nio/file/attribute/FileTime;->MINUTES_PER_HOUR:J
+Ljava/nio/file/attribute/FileTime;->MIN_SECOND:J
+Ljava/nio/file/attribute/FileTime;->NANOS_PER_MICRO:I
+Ljava/nio/file/attribute/FileTime;->NANOS_PER_MILLI:I
+Ljava/nio/file/attribute/FileTime;->NANOS_PER_SECOND:J
+Ljava/nio/file/attribute/FileTime;->scale(JJJ)J
+Ljava/nio/file/attribute/FileTime;->SECONDS_0000_TO_1970:J
+Ljava/nio/file/attribute/FileTime;->SECONDS_PER_10000_YEARS:J
+Ljava/nio/file/attribute/FileTime;->SECONDS_PER_DAY:J
+Ljava/nio/file/attribute/FileTime;->SECONDS_PER_HOUR:J
+Ljava/nio/file/attribute/FileTime;->SECONDS_PER_MINUTE:J
+Ljava/nio/file/attribute/FileTime;->toDays()J
+Ljava/nio/file/attribute/FileTime;->toExcessNanos(J)J
+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
+Ljava/nio/file/attribute/PosixFilePermissions;->isW(C)Z
+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;
+Ljava/nio/file/Files$FileTypeDetectors;->installeDetectors:Ljava/util/List;
+Ljava/nio/file/Files$FileTypeDetectors;->loadInstalledDetectors()Ljava/util/List;
+Ljava/nio/file/Files;-><init>()V
+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
+Ljava/nio/file/spi/FileSystemProvider;->checkPermission()Ljava/lang/Void;
+Ljava/nio/file/spi/FileSystemProvider;->installedProviders:Ljava/util/List;
+Ljava/nio/file/spi/FileSystemProvider;->loadingProviders:Z
+Ljava/nio/file/spi/FileSystemProvider;->loadInstalledProviders()Ljava/util/List;
+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;
+Ljava/nio/file/StandardWatchEventKinds;-><init>()V
+Ljava/nio/FloatBuffer;-><init>(IIII)V
+Ljava/nio/FloatBuffer;-><init>(IIII[FI)V
+Ljava/nio/FloatBuffer;->compare(FF)I
+Ljava/nio/FloatBuffer;->equals(FF)Z
+Ljava/nio/FloatBuffer;->hb:[F
+Ljava/nio/FloatBuffer;->isReadOnly:Z
+Ljava/nio/FloatBuffer;->offset:I
+Ljava/nio/IntBuffer;-><init>(IIII)V
+Ljava/nio/IntBuffer;-><init>(IIII[II)V
+Ljava/nio/IntBuffer;->compare(II)I
+Ljava/nio/IntBuffer;->equals(II)Z
+Ljava/nio/IntBuffer;->hb:[I
+Ljava/nio/IntBuffer;->isReadOnly:Z
+Ljava/nio/IntBuffer;->offset:I
+Ljava/nio/LongBuffer;-><init>(IIII)V
+Ljava/nio/LongBuffer;-><init>(IIII[JI)V
+Ljava/nio/LongBuffer;->compare(JJ)I
+Ljava/nio/LongBuffer;->equals(JJ)Z
+Ljava/nio/LongBuffer;->hb:[J
+Ljava/nio/LongBuffer;->isReadOnly:Z
+Ljava/nio/LongBuffer;->offset:I
+Ljava/nio/MappedByteBuffer;-><init>(IIII)V
+Ljava/nio/MappedByteBuffer;-><init>(IIIILjava/io/FileDescriptor;)V
+Ljava/nio/MappedByteBuffer;-><init>(IIII[BI)V
+Ljava/nio/MappedByteBuffer;->checkMapped()V
+Ljava/nio/MappedByteBuffer;->fd:Ljava/io/FileDescriptor;
+Ljava/nio/MappedByteBuffer;->force0(Ljava/io/FileDescriptor;JJ)V
+Ljava/nio/MappedByteBuffer;->isLoaded0(JJI)Z
+Ljava/nio/MappedByteBuffer;->load0(JJ)V
+Ljava/nio/MappedByteBuffer;->mappingAddress(J)J
+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;
+Ljava/nio/ShortBuffer;-><init>(IIII)V
+Ljava/nio/ShortBuffer;-><init>(IIII[SI)V
+Ljava/nio/ShortBuffer;->compare(SS)I
+Ljava/nio/ShortBuffer;->equals(SS)Z
+Ljava/nio/ShortBuffer;->hb:[S
+Ljava/nio/ShortBuffer;->isReadOnly:Z
+Ljava/nio/ShortBuffer;->offset:I
+Ljava/security/AccessControlException;->perm:Ljava/security/Permission;
+Ljava/security/AccessController;-><init>()V
+Ljava/security/AlgorithmParameterGenerator;->algorithm:Ljava/lang/String;
+Ljava/security/AlgorithmParameterGenerator;->paramGenSpi:Ljava/security/AlgorithmParameterGeneratorSpi;
+Ljava/security/AlgorithmParameterGenerator;->provider:Ljava/security/Provider;
+Ljava/security/AlgorithmParameters;->algorithm:Ljava/lang/String;
+Ljava/security/AlgorithmParameters;->initialized:Z
+Ljava/security/AlgorithmParameters;->paramSpi:Ljava/security/AlgorithmParametersSpi;
+Ljava/security/AlgorithmParameters;->provider:Ljava/security/Provider;
+Ljava/security/cert/Certificate$CertificateRep;->data:[B
+Ljava/security/cert/Certificate$CertificateRep;->type:Ljava/lang/String;
+Ljava/security/cert/Certificate;->hash:I
+Ljava/security/cert/Certificate;->type:Ljava/lang/String;
+Ljava/security/cert/CertificateFactory;->certFacSpi:Ljava/security/cert/CertificateFactorySpi;
+Ljava/security/cert/CertificateFactory;->provider:Ljava/security/Provider;
+Ljava/security/cert/CertificateFactory;->type:Ljava/lang/String;
+Ljava/security/cert/CertificateRevokedException;->authority:Ljavax/security/auth/x500/X500Principal;
+Ljava/security/cert/CertificateRevokedException;->extensions:Ljava/util/Map;
+Ljava/security/cert/CertificateRevokedException;->reason:Ljava/security/cert/CRLReason;
+Ljava/security/cert/CertificateRevokedException;->revocationDate:Ljava/util/Date;
+Ljava/security/cert/CertPath$CertPathRep;->data:[B
+Ljava/security/cert/CertPath$CertPathRep;->type:Ljava/lang/String;
+Ljava/security/cert/CertPath;->type:Ljava/lang/String;
+Ljava/security/cert/CertPathBuilder;->algorithm:Ljava/lang/String;
+Ljava/security/cert/CertPathBuilder;->builderSpi:Ljava/security/cert/CertPathBuilderSpi;
+Ljava/security/cert/CertPathBuilder;->CPB_TYPE:Ljava/lang/String;
+Ljava/security/cert/CertPathBuilder;->provider:Ljava/security/Provider;
+Ljava/security/cert/CertPathValidator;->algorithm:Ljava/lang/String;
+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;
+Ljava/security/cert/CertStore;->CERTSTORE_TYPE:Ljava/lang/String;
+Ljava/security/cert/CertStore;->handleException(Ljava/security/NoSuchAlgorithmException;)Ljava/security/cert/CertStore;
+Ljava/security/cert/CertStore;->params:Ljava/security/cert/CertStoreParameters;
+Ljava/security/cert/CertStore;->provider:Ljava/security/Provider;
+Ljava/security/cert/CertStore;->storeSpi:Ljava/security/cert/CertStoreSpi;
+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;
+Ljava/security/cert/PKIXBuilderParameters;->maxPathLength:I
+Ljava/security/cert/PKIXCertPathBuilderResult;->certPath:Ljava/security/cert/CertPath;
+Ljava/security/cert/PKIXCertPathValidatorResult;->policyTree:Ljava/security/cert/PolicyNode;
+Ljava/security/cert/PKIXCertPathValidatorResult;->subjectPublicKey:Ljava/security/PublicKey;
+Ljava/security/cert/PKIXCertPathValidatorResult;->trustAnchor:Ljava/security/cert/TrustAnchor;
+Ljava/security/cert/PKIXParameters;->anyPolicyInhibited:Z
+Ljava/security/cert/PKIXParameters;->certPathCheckers:Ljava/util/List;
+Ljava/security/cert/PKIXParameters;->certSelector:Ljava/security/cert/CertSelector;
+Ljava/security/cert/PKIXParameters;->certStores:Ljava/util/List;
+Ljava/security/cert/PKIXParameters;->date:Ljava/util/Date;
+Ljava/security/cert/PKIXParameters;->explicitPolicyRequired:Z
+Ljava/security/cert/PKIXParameters;->policyMappingInhibited:Z
+Ljava/security/cert/PKIXParameters;->policyQualifiersRejected:Z
+Ljava/security/cert/PKIXParameters;->revocationEnabled:Z
+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;
+Ljava/security/cert/PKIXRevocationChecker;->ocspResponses:Ljava/util/Map;
+Ljava/security/cert/PKIXRevocationChecker;->options:Ljava/util/Set;
+Ljava/security/cert/PolicyQualifierInfo;->mData:[B
+Ljava/security/cert/PolicyQualifierInfo;->mEncoded:[B
+Ljava/security/cert/PolicyQualifierInfo;->mId:Ljava/lang/String;
+Ljava/security/cert/PolicyQualifierInfo;->pqiString:Ljava/lang/String;
+Ljava/security/cert/TrustAnchor;->caName:Ljava/lang/String;
+Ljava/security/cert/TrustAnchor;->caPrincipal:Ljavax/security/auth/x500/X500Principal;
+Ljava/security/cert/TrustAnchor;->nc:Lsun/security/x509/NameConstraintsExtension;
+Ljava/security/cert/TrustAnchor;->ncBytes:[B
+Ljava/security/cert/TrustAnchor;->pubKey:Ljava/security/PublicKey;
+Ljava/security/cert/TrustAnchor;->setNameConstraints([B)V
+Ljava/security/cert/TrustAnchor;->trustedCert:Ljava/security/cert/X509Certificate;
+Ljava/security/cert/X509Certificate;->issuerX500Principal:Ljavax/security/auth/x500/X500Principal;
+Ljava/security/cert/X509Certificate;->subjectX500Principal:Ljavax/security/auth/x500/X500Principal;
+Ljava/security/cert/X509CertSelector;->addPathToNameInternal(ILjava/lang/Object;)V
+Ljava/security/cert/X509CertSelector;->addSubjectAlternativeNameInternal(ILjava/lang/Object;)V
+Ljava/security/cert/X509CertSelector;->ANY_EXTENDED_KEY_USAGE:Lsun/security/util/ObjectIdentifier;
+Ljava/security/cert/X509CertSelector;->authorityKeyID:[B
+Ljava/security/cert/X509CertSelector;->basicConstraints:I
+Ljava/security/cert/X509CertSelector;->certificateValid:Ljava/util/Date;
+Ljava/security/cert/X509CertSelector;->CERT_POLICIES_ID:I
+Ljava/security/cert/X509CertSelector;->cloneAndCheckNames(Ljava/util/Collection;)Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->cloneNames(Ljava/util/Collection;)Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->cloneSet(Ljava/util/Set;)Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->debug:Lsun/security/util/Debug;
+Ljava/security/cert/X509CertSelector;->equalNames(Ljava/util/Collection;Ljava/util/Collection;)Z
+Ljava/security/cert/X509CertSelector;->EXTENDED_KEY_USAGE_ID:I
+Ljava/security/cert/X509CertSelector;->EXTENSION_OIDS:[Ljava/lang/String;
+Ljava/security/cert/X509CertSelector;->FALSE:Ljava/lang/Boolean;
+Ljava/security/cert/X509CertSelector;->getExtensionObject(Ljava/security/cert/X509Certificate;I)Ljava/security/cert/Extension;
+Ljava/security/cert/X509CertSelector;->issuer:Ljavax/security/auth/x500/X500Principal;
+Ljava/security/cert/X509CertSelector;->keyPurposeOIDSet:Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->keyPurposeSet:Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->keyUsage:[Z
+Ljava/security/cert/X509CertSelector;->keyUsageToString([Z)Ljava/lang/String;
+Ljava/security/cert/X509CertSelector;->makeGeneralNameInterface(ILjava/lang/Object;)Lsun/security/x509/GeneralNameInterface;
+Ljava/security/cert/X509CertSelector;->matchAllSubjectAltNames:Z
+Ljava/security/cert/X509CertSelector;->matchAuthorityKeyID(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchBasicConstraints(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchExcluded(Lsun/security/x509/GeneralSubtrees;)Z
+Ljava/security/cert/X509CertSelector;->matchExtendedKeyUsage(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchKeyUsage(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchNameConstraints(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchPathToNames(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchPermitted(Lsun/security/x509/GeneralSubtrees;)Z
+Ljava/security/cert/X509CertSelector;->matchPolicy(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchPrivateKeyValid(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchSubjectAlternativeNames(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchSubjectKeyID(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->matchSubjectPublicKeyAlgID(Ljava/security/cert/X509Certificate;)Z
+Ljava/security/cert/X509CertSelector;->NAME_ANY:I
+Ljava/security/cert/X509CertSelector;->NAME_CONSTRAINTS_ID:I
+Ljava/security/cert/X509CertSelector;->NAME_DIRECTORY:I
+Ljava/security/cert/X509CertSelector;->NAME_DNS:I
+Ljava/security/cert/X509CertSelector;->NAME_EDI:I
+Ljava/security/cert/X509CertSelector;->NAME_IP:I
+Ljava/security/cert/X509CertSelector;->NAME_OID:I
+Ljava/security/cert/X509CertSelector;->NAME_RFC822:I
+Ljava/security/cert/X509CertSelector;->NAME_URI:I
+Ljava/security/cert/X509CertSelector;->NAME_X400:I
+Ljava/security/cert/X509CertSelector;->nc:Lsun/security/x509/NameConstraintsExtension;
+Ljava/security/cert/X509CertSelector;->ncBytes:[B
+Ljava/security/cert/X509CertSelector;->NUM_OF_EXTENSIONS:I
+Ljava/security/cert/X509CertSelector;->parseNames(Ljava/util/Collection;)Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->pathToGeneralNames:Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->pathToNames:Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->policy:Lsun/security/x509/CertificatePolicySet;
+Ljava/security/cert/X509CertSelector;->policySet:Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->privateKeyValid:Ljava/util/Date;
+Ljava/security/cert/X509CertSelector;->PRIVATE_KEY_USAGE_ID:I
+Ljava/security/cert/X509CertSelector;->serialNumber:Ljava/math/BigInteger;
+Ljava/security/cert/X509CertSelector;->setPathToNamesInternal(Ljava/util/Set;)V
+Ljava/security/cert/X509CertSelector;->subject:Ljavax/security/auth/x500/X500Principal;
+Ljava/security/cert/X509CertSelector;->subjectAlternativeGeneralNames:Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->subjectAlternativeNames:Ljava/util/Set;
+Ljava/security/cert/X509CertSelector;->subjectKeyID:[B
+Ljava/security/cert/X509CertSelector;->subjectPublicKey:Ljava/security/PublicKey;
+Ljava/security/cert/X509CertSelector;->subjectPublicKeyAlgID:Lsun/security/util/ObjectIdentifier;
+Ljava/security/cert/X509CertSelector;->subjectPublicKeyBytes:[B
+Ljava/security/cert/X509CertSelector;->SUBJECT_ALT_NAME_ID:I
+Ljava/security/cert/X509CertSelector;->x509Cert:Ljava/security/cert/X509Certificate;
+Ljava/security/cert/X509CRL;->issuerPrincipal:Ljavax/security/auth/x500/X500Principal;
+Ljava/security/cert/X509CRLSelector;->addIssuerNameInternal(Ljava/lang/Object;Ljavax/security/auth/x500/X500Principal;)V
+Ljava/security/cert/X509CRLSelector;->certChecking:Ljava/security/cert/X509Certificate;
+Ljava/security/cert/X509CRLSelector;->cloneAndCheckIssuerNames(Ljava/util/Collection;)Ljava/util/HashSet;
+Ljava/security/cert/X509CRLSelector;->cloneIssuerNames(Ljava/util/Collection;)Ljava/util/HashSet;
+Ljava/security/cert/X509CRLSelector;->dateAndTime:Ljava/util/Date;
+Ljava/security/cert/X509CRLSelector;->debug:Lsun/security/util/Debug;
+Ljava/security/cert/X509CRLSelector;->issuerNames:Ljava/util/HashSet;
+Ljava/security/cert/X509CRLSelector;->issuerX500Principals:Ljava/util/HashSet;
+Ljava/security/cert/X509CRLSelector;->maxCRL:Ljava/math/BigInteger;
+Ljava/security/cert/X509CRLSelector;->minCRL:Ljava/math/BigInteger;
+Ljava/security/cert/X509CRLSelector;->parseIssuerNames(Ljava/util/Collection;)Ljava/util/HashSet;
+Ljava/security/cert/X509CRLSelector;->setDateAndTime(Ljava/util/Date;J)V
+Ljava/security/cert/X509CRLSelector;->skew:J
+Ljava/security/CodeSigner;->myhash:I
+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;
+Ljava/security/DomainLoadStoreParameter;->protectionParams:Ljava/util/Map;
+Ljava/security/GuardedObject;->guard:Ljava/security/Guard;
+Ljava/security/GuardedObject;->object:Ljava/lang/Object;
+Ljava/security/Identity;->certificates:Ljava/util/Vector;
+Ljava/security/Identity;->check(Ljava/lang/String;)V
+Ljava/security/Identity;->fullName()Ljava/lang/String;
+Ljava/security/Identity;->info:Ljava/lang/String;
+Ljava/security/Identity;->keyEquals(Ljava/security/PublicKey;Ljava/security/PublicKey;)Z
+Ljava/security/Identity;->name:Ljava/lang/String;
+Ljava/security/Identity;->printCertificates()Ljava/lang/String;
+Ljava/security/Identity;->printKeys()Ljava/lang/String;
+Ljava/security/Identity;->publicKey:Ljava/security/PublicKey;
+Ljava/security/Identity;->scope:Ljava/security/IdentityScope;
+Ljava/security/IdentityScope;->check(Ljava/lang/String;)V
+Ljava/security/IdentityScope;->initializeSystemScope()V
+Ljava/security/IdentityScope;->scope:Ljava/security/IdentityScope;
+Ljava/security/KeyFactory;-><init>(Ljava/lang/String;)V
+Ljava/security/KeyFactory;->algorithm:Ljava/lang/String;
+Ljava/security/KeyFactory;->debug:Lsun/security/util/Debug;
+Ljava/security/KeyFactory;->lock:Ljava/lang/Object;
+Ljava/security/KeyFactory;->nextSpi(Ljava/security/KeyFactorySpi;)Ljava/security/KeyFactorySpi;
+Ljava/security/KeyFactory;->provider:Ljava/security/Provider;
+Ljava/security/KeyFactory;->serviceIterator:Ljava/util/Iterator;
+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
+Ljava/security/KeyPairGenerator$Delegate;->initKeySize:I
+Ljava/security/KeyPairGenerator$Delegate;->initParams:Ljava/security/spec/AlgorithmParameterSpec;
+Ljava/security/KeyPairGenerator$Delegate;->initRandom:Ljava/security/SecureRandom;
+Ljava/security/KeyPairGenerator$Delegate;->initType:I
+Ljava/security/KeyPairGenerator$Delegate;->I_NONE:I
+Ljava/security/KeyPairGenerator$Delegate;->I_PARAMS:I
+Ljava/security/KeyPairGenerator$Delegate;->I_SIZE:I
+Ljava/security/KeyPairGenerator$Delegate;->lock:Ljava/lang/Object;
+Ljava/security/KeyPairGenerator$Delegate;->nextSpi(Ljava/security/KeyPairGeneratorSpi;Z)Ljava/security/KeyPairGeneratorSpi;
+Ljava/security/KeyPairGenerator$Delegate;->serviceIterator:Ljava/util/Iterator;
+Ljava/security/KeyPairGenerator$Delegate;->spi:Ljava/security/KeyPairGeneratorSpi;
+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;
+Ljava/security/KeyRep;->PKCS8:Ljava/lang/String;
+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;
+Ljava/security/KeyStore$Builder$FileBuilder;->keyProtection:Ljava/security/KeyStore$ProtectionParameter;
+Ljava/security/KeyStore$Builder$FileBuilder;->keyStore:Ljava/security/KeyStore;
+Ljava/security/KeyStore$Builder$FileBuilder;->oldException:Ljava/lang/Throwable;
+Ljava/security/KeyStore$Builder$FileBuilder;->protection:Ljava/security/KeyStore$ProtectionParameter;
+Ljava/security/KeyStore$Builder$FileBuilder;->provider:Ljava/security/Provider;
+Ljava/security/KeyStore$Builder$FileBuilder;->type:Ljava/lang/String;
+Ljava/security/KeyStore$Builder;->MAX_CALLBACK_TRIES:I
+Ljava/security/KeyStore$CallbackHandlerProtection;->handler:Ljavax/security/auth/callback/CallbackHandler;
+Ljava/security/KeyStore$PasswordProtection;->destroyed:Z
+Ljava/security/KeyStore$PasswordProtection;->password:[C
+Ljava/security/KeyStore$PasswordProtection;->protectionAlgorithm:Ljava/lang/String;
+Ljava/security/KeyStore$PasswordProtection;->protectionParameters:Ljava/security/spec/AlgorithmParameterSpec;
+Ljava/security/KeyStore$PrivateKeyEntry;->attributes:Ljava/util/Set;
+Ljava/security/KeyStore$PrivateKeyEntry;->chain:[Ljava/security/cert/Certificate;
+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;
+Ljava/security/KeyStore$TrustedCertificateEntry;->cert:Ljava/security/cert/Certificate;
+Ljava/security/KeyStore;->initialized:Z
+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;
+Ljava/security/MessageDigest;->INITIAL:I
+Ljava/security/MessageDigest;->IN_PROGRESS:I
+Ljava/security/MessageDigest;->provider:Ljava/security/Provider;
+Ljava/security/MessageDigest;->state:I
+Ljava/security/MessageDigestSpi;->tempArray:[B
+Ljava/security/Permission;->name:Ljava/lang/String;
+Ljava/security/PKCS12Attribute;->COLON_SEPARATED_HEX_PAIRS:Ljava/util/regex/Pattern;
+Ljava/security/PKCS12Attribute;->encode(Lsun/security/util/ObjectIdentifier;[Ljava/lang/String;)[B
+Ljava/security/PKCS12Attribute;->encoded:[B
+Ljava/security/PKCS12Attribute;->hashValue:I
+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;
+Ljava/security/Provider$EngineDescription;->getConstructorParameterClass()Ljava/lang/Class;
+Ljava/security/Provider$EngineDescription;->name:Ljava/lang/String;
+Ljava/security/Provider$EngineDescription;->supportsParameter:Z
+Ljava/security/Provider$Service;-><init>(Ljava/security/Provider;)V
+Ljava/security/Provider$Service;->addAlias(Ljava/lang/String;)V
+Ljava/security/Provider$Service;->addAttribute(Ljava/lang/String;Ljava/lang/String;)V
+Ljava/security/Provider$Service;->algorithm:Ljava/lang/String;
+Ljava/security/Provider$Service;->aliases:Ljava/util/List;
+Ljava/security/Provider$Service;->attributes:Ljava/util/Map;
+Ljava/security/Provider$Service;->CLASS0:[Ljava/lang/Class;
+Ljava/security/Provider$Service;->className:Ljava/lang/String;
+Ljava/security/Provider$Service;->classRef:Ljava/lang/ref/Reference;
+Ljava/security/Provider$Service;->getAliases()Ljava/util/List;
+Ljava/security/Provider$Service;->getImplClass()Ljava/lang/Class;
+Ljava/security/Provider$Service;->getKeyClass(Ljava/lang/String;)Ljava/lang/Class;
+Ljava/security/Provider$Service;->hasKeyAttributes()Z
+Ljava/security/Provider$Service;->hasKeyAttributes:Ljava/lang/Boolean;
+Ljava/security/Provider$Service;->isValid()Z
+Ljava/security/Provider$Service;->newInstanceGeneric(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/security/Provider$Service;->provider:Ljava/security/Provider;
+Ljava/security/Provider$Service;->registered:Z
+Ljava/security/Provider$Service;->supportedClasses:[Ljava/lang/Class;
+Ljava/security/Provider$Service;->supportedFormats:[Ljava/lang/String;
+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;
+Ljava/security/Provider;->addEngine(Ljava/lang/String;ZLjava/lang/String;)V
+Ljava/security/Provider;->ALIAS_LENGTH:I
+Ljava/security/Provider;->ALIAS_PREFIX:Ljava/lang/String;
+Ljava/security/Provider;->ALIAS_PREFIX_LOWER:Ljava/lang/String;
+Ljava/security/Provider;->check(Ljava/lang/String;)V
+Ljava/security/Provider;->checkInitialized()V
+Ljava/security/Provider;->checkLegacy(Ljava/lang/Object;)Z
+Ljava/security/Provider;->debug:Lsun/security/util/Debug;
+Ljava/security/Provider;->ensureLegacyParsed()V
+Ljava/security/Provider;->entrySet:Ljava/util/Set;
+Ljava/security/Provider;->entrySetCallCount:I
+Ljava/security/Provider;->getEngineName(Ljava/lang/String;)Ljava/lang/String;
+Ljava/security/Provider;->getTypeAndAlgorithm(Ljava/lang/String;)[Ljava/lang/String;
+Ljava/security/Provider;->implClear()V
+Ljava/security/Provider;->implCompute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
+Ljava/security/Provider;->implComputeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
+Ljava/security/Provider;->implComputeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
+Ljava/security/Provider;->implMerge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
+Ljava/security/Provider;->implPut(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/security/Provider;->implPutAll(Ljava/util/Map;)V
+Ljava/security/Provider;->implPutIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/security/Provider;->implRemove(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/security/Provider;->implRemove(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/security/Provider;->implRemoveService(Ljava/security/Provider$Service;)V
+Ljava/security/Provider;->implReplace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/security/Provider;->implReplace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/security/Provider;->implReplaceAll(Ljava/util/function/BiFunction;)V
+Ljava/security/Provider;->info:Ljava/lang/String;
+Ljava/security/Provider;->initialized:Z
+Ljava/security/Provider;->isRegistered()Z
+Ljava/security/Provider;->knownEngines:Ljava/util/Map;
+Ljava/security/Provider;->legacyChanged:Z
+Ljava/security/Provider;->legacyMap:Ljava/util/Map;
+Ljava/security/Provider;->legacyStrings:Ljava/util/Map;
+Ljava/security/Provider;->name:Ljava/lang/String;
+Ljava/security/Provider;->parseLegacyPut(Ljava/lang/String;Ljava/lang/String;)V
+Ljava/security/Provider;->previousKey:Ljava/security/Provider$ServiceKey;
+Ljava/security/Provider;->putId()V
+Ljava/security/Provider;->putPropertyStrings(Ljava/security/Provider$Service;)V
+Ljava/security/Provider;->registered:Z
+Ljava/security/Provider;->removeInvalidServices(Ljava/util/Map;)V
+Ljava/security/Provider;->removePropertyStrings(Ljava/security/Provider$Service;)V
+Ljava/security/Provider;->serviceMap:Ljava/util/Map;
+Ljava/security/Provider;->servicesChanged:Z
+Ljava/security/Provider;->serviceSet:Ljava/util/Set;
+Ljava/security/Provider;->setRegistered()V
+Ljava/security/Provider;->setUnregistered()V
+Ljava/security/Provider;->version:D
+Ljava/security/Provider;->warmUpServiceProvision()V
+Ljava/security/SecureClassLoader;->check()V
+Ljava/security/SecureClassLoader;->debug:Lsun/security/util/Debug;
+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
+Ljava/security/SecureRandom;->algorithm:Ljava/lang/String;
+Ljava/security/SecureRandom;->counter:J
+Ljava/security/SecureRandom;->digest:Ljava/security/MessageDigest;
+Ljava/security/SecureRandom;->getDefaultPRNG(Z[B)V
+Ljava/security/SecureRandom;->getPrngAlgorithm()Ljava/lang/String;
+Ljava/security/SecureRandom;->getSecureRandomSpi()Ljava/security/SecureRandomSpi;
+Ljava/security/SecureRandom;->longToByteArray(J)[B
+Ljava/security/SecureRandom;->provider:Ljava/security/Provider;
+Ljava/security/SecureRandom;->randomBytes:[B
+Ljava/security/SecureRandom;->randomBytesUsed:I
+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;
+Ljava/security/Security;-><init>()V
+Ljava/security/Security;->getAllQualifyingCandidates(Ljava/lang/String;Ljava/lang/String;[Ljava/security/Provider;)Ljava/util/LinkedHashSet;
+Ljava/security/Security;->getFilterComponents(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+Ljava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
+Ljava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)[Ljava/lang/Object;
+Ljava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;)[Ljava/lang/Object;
+Ljava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;Ljava/lang/Object;)[Ljava/lang/Object;
+Ljava/security/Security;->getProviderProperty(Ljava/lang/String;)Ljava/security/Security$ProviderProperty;
+Ljava/security/Security;->getProviderProperty(Ljava/lang/String;Ljava/security/Provider;)Ljava/lang/String;
+Ljava/security/Security;->getProvidersNotUsingCache(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/security/Provider;)Ljava/util/LinkedHashSet;
+Ljava/security/Security;->getSpiClass(Ljava/lang/String;)Ljava/lang/Class;
+Ljava/security/Security;->getVersion()I
+Ljava/security/Security;->increaseVersion()V
+Ljava/security/Security;->initializeStatic()V
+Ljava/security/Security;->invalidateSMCache(Ljava/lang/String;)V
+Ljava/security/Security;->isConstraintSatisfied(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Ljava/security/Security;->isCriterionSatisfied(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+Ljava/security/Security;->isStandardAttr(Ljava/lang/String;)Z
+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
+Ljava/security/Signature$Delegate;->chooseProvider(ILjava/security/Key;Ljava/security/SecureRandom;)V
+Ljava/security/Signature$Delegate;->getCurrentSpi()Ljava/security/SignatureSpi;
+Ljava/security/Signature$Delegate;->init(Ljava/security/SignatureSpi;ILjava/security/Key;Ljava/security/SecureRandom;)V
+Ljava/security/Signature$Delegate;->I_PRIV:I
+Ljava/security/Signature$Delegate;->I_PRIV_SR:I
+Ljava/security/Signature$Delegate;->I_PUB:I
+Ljava/security/Signature$Delegate;->lock:Ljava/lang/Object;
+Ljava/security/Signature$Delegate;->newInstance(Ljava/security/Provider$Service;)Ljava/security/SignatureSpi;
+Ljava/security/Signature$Delegate;->sigSpi:Ljava/security/SignatureSpi;
+Ljava/security/Signature$Delegate;->warnCount:I
+Ljava/security/Signature;->algorithm:Ljava/lang/String;
+Ljava/security/Signature;->chooseFirstProvider()V
+Ljava/security/Signature;->getCurrentSpi()Ljava/security/SignatureSpi;
+Ljava/security/Signature;->getInstanceRSA(Ljava/security/Provider;)Ljava/security/Signature;
+Ljava/security/Signature;->isSpi(Ljava/security/Provider$Service;)Z
+Ljava/security/Signature;->provider:Ljava/security/Provider;
+Ljava/security/Signature;->rsaIds:Ljava/util/List;
+Ljava/security/Signature;->RSA_CIPHER:Ljava/lang/String;
+Ljava/security/Signature;->RSA_SIGNATURE:Ljava/lang/String;
+Ljava/security/Signature;->signatureInfo:Ljava/util/Map;
+Ljava/security/SignedObject;->content:[B
+Ljava/security/SignedObject;->sign(Ljava/security/PrivateKey;Ljava/security/Signature;)V
+Ljava/security/SignedObject;->signature:[B
+Ljava/security/SignedObject;->thealgorithm:Ljava/lang/String;
+Ljava/security/Signer;->check(Ljava/lang/String;)V
+Ljava/security/Signer;->printKeys()Ljava/lang/String;
+Ljava/security/Signer;->privateKey:Ljava/security/PrivateKey;
+Ljava/security/spec/DSAParameterSpec;->g:Ljava/math/BigInteger;
+Ljava/security/spec/DSAParameterSpec;->p:Ljava/math/BigInteger;
+Ljava/security/spec/DSAParameterSpec;->q:Ljava/math/BigInteger;
+Ljava/security/spec/DSAPrivateKeySpec;->g:Ljava/math/BigInteger;
+Ljava/security/spec/DSAPrivateKeySpec;->p:Ljava/math/BigInteger;
+Ljava/security/spec/DSAPrivateKeySpec;->q:Ljava/math/BigInteger;
+Ljava/security/spec/DSAPrivateKeySpec;->x:Ljava/math/BigInteger;
+Ljava/security/spec/DSAPublicKeySpec;->g:Ljava/math/BigInteger;
+Ljava/security/spec/DSAPublicKeySpec;->p:Ljava/math/BigInteger;
+Ljava/security/spec/DSAPublicKeySpec;->q:Ljava/math/BigInteger;
+Ljava/security/spec/DSAPublicKeySpec;->y:Ljava/math/BigInteger;
+Ljava/security/spec/ECFieldF2m;->ks:[I
+Ljava/security/spec/ECFieldF2m;->m:I
+Ljava/security/spec/ECFieldF2m;->rp:Ljava/math/BigInteger;
+Ljava/security/spec/ECFieldFp;->p:Ljava/math/BigInteger;
+Ljava/security/spec/ECGenParameterSpec;->name:Ljava/lang/String;
+Ljava/security/spec/ECParameterSpec;->curve:Ljava/security/spec/EllipticCurve;
+Ljava/security/spec/ECParameterSpec;->curveName:Ljava/lang/String;
+Ljava/security/spec/ECParameterSpec;->g:Ljava/security/spec/ECPoint;
+Ljava/security/spec/ECParameterSpec;->h:I
+Ljava/security/spec/ECParameterSpec;->n:Ljava/math/BigInteger;
+Ljava/security/spec/ECPoint;-><init>()V
+Ljava/security/spec/ECPoint;->x:Ljava/math/BigInteger;
+Ljava/security/spec/ECPoint;->y:Ljava/math/BigInteger;
+Ljava/security/spec/ECPrivateKeySpec;->params:Ljava/security/spec/ECParameterSpec;
+Ljava/security/spec/ECPrivateKeySpec;->s:Ljava/math/BigInteger;
+Ljava/security/spec/ECPublicKeySpec;->params:Ljava/security/spec/ECParameterSpec;
+Ljava/security/spec/ECPublicKeySpec;->w:Ljava/security/spec/ECPoint;
+Ljava/security/spec/EllipticCurve;->a:Ljava/math/BigInteger;
+Ljava/security/spec/EllipticCurve;->b:Ljava/math/BigInteger;
+Ljava/security/spec/EllipticCurve;->checkValidity(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/lang/String;)V
+Ljava/security/spec/EllipticCurve;->field:Ljava/security/spec/ECField;
+Ljava/security/spec/EllipticCurve;->seed:[B
+Ljava/security/spec/EncodedKeySpec;->encodedKey:[B
+Ljava/security/spec/MGF1ParameterSpec;->mdName:Ljava/lang/String;
+Ljava/security/spec/PSSParameterSpec;-><init>()V
+Ljava/security/spec/PSSParameterSpec;->mdName:Ljava/lang/String;
+Ljava/security/spec/PSSParameterSpec;->mgfName:Ljava/lang/String;
+Ljava/security/spec/PSSParameterSpec;->mgfSpec:Ljava/security/spec/AlgorithmParameterSpec;
+Ljava/security/spec/PSSParameterSpec;->saltLen:I
+Ljava/security/spec/PSSParameterSpec;->trailerField:I
+Ljava/security/spec/RSAKeyGenParameterSpec;->keysize:I
+Ljava/security/spec/RSAKeyGenParameterSpec;->publicExponent:Ljava/math/BigInteger;
+Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->crtCoefficient:Ljava/math/BigInteger;
+Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->otherPrimeInfo:[Ljava/security/spec/RSAOtherPrimeInfo;
+Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->primeExponentP:Ljava/math/BigInteger;
+Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->primeExponentQ:Ljava/math/BigInteger;
+Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->primeP:Ljava/math/BigInteger;
+Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->primeQ:Ljava/math/BigInteger;
+Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->publicExponent:Ljava/math/BigInteger;
+Ljava/security/spec/RSAOtherPrimeInfo;->crtCoefficient:Ljava/math/BigInteger;
+Ljava/security/spec/RSAOtherPrimeInfo;->prime:Ljava/math/BigInteger;
+Ljava/security/spec/RSAOtherPrimeInfo;->primeExponent:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPrivateCrtKeySpec;->crtCoefficient:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPrivateCrtKeySpec;->primeExponentP:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPrivateCrtKeySpec;->primeExponentQ:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPrivateCrtKeySpec;->primeP:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPrivateCrtKeySpec;->primeQ:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPrivateCrtKeySpec;->publicExponent:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPrivateKeySpec;->modulus:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPrivateKeySpec;->privateExponent:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPublicKeySpec;->modulus:Ljava/math/BigInteger;
+Ljava/security/spec/RSAPublicKeySpec;->publicExponent:Ljava/math/BigInteger;
+Ljava/security/Timestamp;->myhash:I
+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
+Ljava/sql/DriverManager;->getConnection(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/ClassLoader;)Ljava/sql/Connection;
+Ljava/sql/DriverManager;->isDriverAllowed(Ljava/sql/Driver;Ljava/lang/ClassLoader;)Z
+Ljava/sql/DriverManager;->loadInitialDrivers()V
+Ljava/sql/DriverManager;->loginTimeout:I
+Ljava/sql/DriverManager;->logStream:Ljava/io/PrintStream;
+Ljava/sql/DriverManager;->logSync:Ljava/lang/Object;
+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;
+Ljava/sql/SQLException;->SQLState:Ljava/lang/String;
+Ljava/sql/SQLException;->vendorCode:I
+Ljava/sql/Timestamp;->nanos:I
+Ljava/sql/Types;-><init>()V
+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
+Ljava/text/AttributedString$AttributedStringIterator;->currentRunLimit:I
+Ljava/text/AttributedString$AttributedStringIterator;->currentRunStart:I
+Ljava/text/AttributedString$AttributedStringIterator;->endIndex:I
+Ljava/text/AttributedString$AttributedStringIterator;->getString()Ljava/text/AttributedString;
+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
+Ljava/text/AttributedString;-><init>([Ljava/text/AttributedCharacterIterator;)V
+Ljava/text/AttributedString;->addAttributeImpl(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V
+Ljava/text/AttributedString;->addAttributeRunData(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V
+Ljava/text/AttributedString;->appendContents(Ljava/lang/StringBuffer;Ljava/text/CharacterIterator;)V
+Ljava/text/AttributedString;->ARRAY_SIZE_INCREMENT:I
+Ljava/text/AttributedString;->attributeValuesMatch(Ljava/util/Set;II)Z
+Ljava/text/AttributedString;->charAt(I)C
+Ljava/text/AttributedString;->createRunAttributeDataVectors()V
+Ljava/text/AttributedString;->ensureRunBreak(I)I
+Ljava/text/AttributedString;->ensureRunBreak(IZ)I
+Ljava/text/AttributedString;->getAttribute(Ljava/text/AttributedCharacterIterator$Attribute;I)Ljava/lang/Object;
+Ljava/text/AttributedString;->getAttributeCheckRange(Ljava/text/AttributedCharacterIterator$Attribute;III)Ljava/lang/Object;
+Ljava/text/AttributedString;->length()I
+Ljava/text/AttributedString;->mapsDiffer(Ljava/util/Map;Ljava/util/Map;)Z
+Ljava/text/AttributedString;->runArraySize:I
+Ljava/text/AttributedString;->runAttributes:[Ljava/util/Vector;
+Ljava/text/AttributedString;->runAttributeValues:[Ljava/util/Vector;
+Ljava/text/AttributedString;->runCount:I
+Ljava/text/AttributedString;->runStarts:[I
+Ljava/text/AttributedString;->setAttributes(Ljava/util/Map;I)V
+Ljava/text/AttributedString;->text:Ljava/lang/String;
+Ljava/text/AttributedString;->valuesMatch(Ljava/lang/Object;Ljava/lang/Object;)Z
+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;
+Ljava/text/CalendarBuilder;->COMPUTED:I
+Ljava/text/CalendarBuilder;->establish(Ljava/util/Calendar;)Ljava/util/Calendar;
+Ljava/text/CalendarBuilder;->field:[I
+Ljava/text/CalendarBuilder;->ISO_DAY_OF_WEEK:I
+Ljava/text/CalendarBuilder;->isSet(I)Z
+Ljava/text/CalendarBuilder;->isValidDayOfWeek(I)Z
+Ljava/text/CalendarBuilder;->maxFieldIndex:I
+Ljava/text/CalendarBuilder;->MAX_FIELD:I
+Ljava/text/CalendarBuilder;->MINIMUM_USER_STAMP:I
+Ljava/text/CalendarBuilder;->nextStamp:I
+Ljava/text/CalendarBuilder;->set(II)Ljava/text/CalendarBuilder;
+Ljava/text/CalendarBuilder;->toCalendarDayOfWeek(I)I
+Ljava/text/CalendarBuilder;->toISODayOfWeek(I)I
+Ljava/text/CalendarBuilder;->UNSET:I
+Ljava/text/CalendarBuilder;->WEEK_YEAR:I
+Ljava/text/ChoiceFormat;->choiceFormats:[Ljava/lang/String;
+Ljava/text/ChoiceFormat;->choiceLimits:[D
+Ljava/text/ChoiceFormat;->doubleArraySize([D)[D
+Ljava/text/ChoiceFormat;->doubleArraySize([Ljava/lang/String;)[Ljava/lang/String;
+Ljava/text/ChoiceFormat;->EXPONENT:J
+Ljava/text/ChoiceFormat;->POSITIVEINFINITY:J
+Ljava/text/ChoiceFormat;->SIGN:J
+Ljava/text/CollationElementIterator;-><init>(Landroid/icu/text/CollationElementIterator;)V
+Ljava/text/CollationElementIterator;->icuIterator:Landroid/icu/text/CollationElementIterator;
+Ljava/text/CollationKey;->source:Ljava/lang/String;
+Ljava/text/Collator;-><init>(Landroid/icu/text/Collator;)V
+Ljava/text/Collator;->decompositionMode_ICU_Java(I)I
+Ljava/text/Collator;->decompositionMode_Java_ICU(I)I
+Ljava/text/DateFormat$Field;->calendarField:I
+Ljava/text/DateFormat$Field;->calendarToFieldMapping:[Ljava/text/DateFormat$Field;
+Ljava/text/DateFormat$Field;->instanceMap:Ljava/util/Map;
+Ljava/text/DateFormat;->get(IIILjava/util/Locale;)Ljava/text/DateFormat;
+Ljava/text/DateFormat;->set24HourTimePref(Ljava/lang/Boolean;)V
+Ljava/text/DateFormatSymbols;->ampms:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->cachedHashCode:I
+Ljava/text/DateFormatSymbols;->cachedInstances:Ljava/util/concurrent/ConcurrentMap;
+Ljava/text/DateFormatSymbols;->copyMembers(Ljava/text/DateFormatSymbols;Ljava/text/DateFormatSymbols;)V
+Ljava/text/DateFormatSymbols;->currentSerialVersion:I
+Ljava/text/DateFormatSymbols;->eras:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getCachedInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
+Ljava/text/DateFormatSymbols;->getInstanceRef(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
+Ljava/text/DateFormatSymbols;->getShortStandAloneMonths()[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getShortStandAloneWeekdays()[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getStandAloneMonths()[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getStandAloneWeekdays()[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getTinyMonths()[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getTinyStandAloneMonths()[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getTinyStandAloneWeekdays()[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getTinyWeekdays()[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getZoneIndex(Ljava/lang/String;)I
+Ljava/text/DateFormatSymbols;->getZoneStringsImpl(Z)[[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->getZoneStringsWrapper()[[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->initializeData(Ljava/util/Locale;)V
+Ljava/text/DateFormatSymbols;->initializeSupplementaryData(Llibcore/icu/LocaleData;)V
+Ljava/text/DateFormatSymbols;->internalZoneStrings()[[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->isSubclassObject()Z
+Ljava/text/DateFormatSymbols;->isZoneStringsSet:Z
+Ljava/text/DateFormatSymbols;->lastZoneIndex:I
+Ljava/text/DateFormatSymbols;->locale:Ljava/util/Locale;
+Ljava/text/DateFormatSymbols;->localPatternChars:Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->millisPerHour:I
+Ljava/text/DateFormatSymbols;->months:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->patternChars:Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->PATTERN_AM_PM:I
+Ljava/text/DateFormatSymbols;->PATTERN_DAY_OF_MONTH:I
+Ljava/text/DateFormatSymbols;->PATTERN_DAY_OF_WEEK:I
+Ljava/text/DateFormatSymbols;->PATTERN_DAY_OF_WEEK_IN_MONTH:I
+Ljava/text/DateFormatSymbols;->PATTERN_DAY_OF_YEAR:I
+Ljava/text/DateFormatSymbols;->PATTERN_DAY_PERIOD:I
+Ljava/text/DateFormatSymbols;->PATTERN_ERA:I
+Ljava/text/DateFormatSymbols;->PATTERN_FLEXIBLE_DAY_PERIOD:I
+Ljava/text/DateFormatSymbols;->PATTERN_HOUR0:I
+Ljava/text/DateFormatSymbols;->PATTERN_HOUR1:I
+Ljava/text/DateFormatSymbols;->PATTERN_HOUR_OF_DAY0:I
+Ljava/text/DateFormatSymbols;->PATTERN_HOUR_OF_DAY1:I
+Ljava/text/DateFormatSymbols;->PATTERN_ISO_DAY_OF_WEEK:I
+Ljava/text/DateFormatSymbols;->PATTERN_ISO_ZONE:I
+Ljava/text/DateFormatSymbols;->PATTERN_MILLISECOND:I
+Ljava/text/DateFormatSymbols;->PATTERN_MINUTE:I
+Ljava/text/DateFormatSymbols;->PATTERN_MONTH:I
+Ljava/text/DateFormatSymbols;->PATTERN_MONTH_STANDALONE:I
+Ljava/text/DateFormatSymbols;->PATTERN_SECOND:I
+Ljava/text/DateFormatSymbols;->PATTERN_STANDALONE_DAY_OF_WEEK:I
+Ljava/text/DateFormatSymbols;->PATTERN_WEEK_OF_MONTH:I
+Ljava/text/DateFormatSymbols;->PATTERN_WEEK_OF_YEAR:I
+Ljava/text/DateFormatSymbols;->PATTERN_WEEK_YEAR:I
+Ljava/text/DateFormatSymbols;->PATTERN_YEAR:I
+Ljava/text/DateFormatSymbols;->PATTERN_ZONE_NAME:I
+Ljava/text/DateFormatSymbols;->PATTERN_ZONE_VALUE:I
+Ljava/text/DateFormatSymbols;->serialVersionOnStream:I
+Ljava/text/DateFormatSymbols;->shortMonths:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->shortStandAloneMonths:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->shortStandAloneWeekdays:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->shortWeekdays:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->standAloneMonths:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->standAloneWeekdays:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->tinyMonths:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->tinyStandAloneMonths:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->tinyStandAloneWeekdays:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->tinyWeekdays:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->weekdays:[Ljava/lang/String;
+Ljava/text/DateFormatSymbols;->zoneStrings:[[Ljava/lang/String;
+Ljava/text/DecimalFormat;->adjustForCurrencyDefaultFractionDigits()V
+Ljava/text/DecimalFormat;->compareIcuRoundingIncrement(Landroid/icu/text/DecimalFormat_ICU58_Android;)Z
+Ljava/text/DecimalFormat;->convertRoundingMode(Ljava/math/RoundingMode;)I
+Ljava/text/DecimalFormat;->currentSerialVersion:I
+Ljava/text/DecimalFormat;->DOUBLE_FRACTION_DIGITS:I
+Ljava/text/DecimalFormat;->DOUBLE_INTEGER_DIGITS:I
+Ljava/text/DecimalFormat;->format(Ljava/math/BigDecimal;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+Ljava/text/DecimalFormat;->format(Ljava/math/BigInteger;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+Ljava/text/DecimalFormat;->getIcuFieldPosition(Ljava/text/FieldPosition;)Ljava/text/FieldPosition;
+Ljava/text/DecimalFormat;->icuDecimalFormat:Landroid/icu/text/DecimalFormat_ICU58_Android;
+Ljava/text/DecimalFormat;->initPattern(Ljava/lang/String;)V
+Ljava/text/DecimalFormat;->maximumFractionDigits:I
+Ljava/text/DecimalFormat;->maximumIntegerDigits:I
+Ljava/text/DecimalFormat;->MAXIMUM_FRACTION_DIGITS:I
+Ljava/text/DecimalFormat;->MAXIMUM_INTEGER_DIGITS:I
+Ljava/text/DecimalFormat;->minimumFractionDigits:I
+Ljava/text/DecimalFormat;->minimumIntegerDigits:I
+Ljava/text/DecimalFormat;->roundingMode:Ljava/math/RoundingMode;
+Ljava/text/DecimalFormat;->symbols:Ljava/text/DecimalFormatSymbols;
+Ljava/text/DecimalFormat;->toJavaFieldAttribute(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/text/NumberFormat$Field;
+Ljava/text/DecimalFormat;->updateFieldsFromIcu()V
+Ljava/text/DecimalFormatSymbols;->cachedIcuDFS:Landroid/icu/text/DecimalFormatSymbols;
+Ljava/text/DecimalFormatSymbols;->currency:Ljava/util/Currency;
+Ljava/text/DecimalFormatSymbols;->currencySymbol:Ljava/lang/String;
+Ljava/text/DecimalFormatSymbols;->currentSerialVersion:I
+Ljava/text/DecimalFormatSymbols;->decimalSeparator:C
+Ljava/text/DecimalFormatSymbols;->digit:C
+Ljava/text/DecimalFormatSymbols;->exponential:C
+Ljava/text/DecimalFormatSymbols;->exponentialSeparator:Ljava/lang/String;
+Ljava/text/DecimalFormatSymbols;->fromIcuInstance(Landroid/icu/text/DecimalFormatSymbols;)Ljava/text/DecimalFormatSymbols;
+Ljava/text/DecimalFormatSymbols;->getExponentialSymbol()C
+Ljava/text/DecimalFormatSymbols;->getIcuDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
+Ljava/text/DecimalFormatSymbols;->getMinusSignString()Ljava/lang/String;
+Ljava/text/DecimalFormatSymbols;->groupingSeparator:C
+Ljava/text/DecimalFormatSymbols;->infinity:Ljava/lang/String;
+Ljava/text/DecimalFormatSymbols;->initialize(Ljava/util/Locale;)V
+Ljava/text/DecimalFormatSymbols;->intlCurrencySymbol:Ljava/lang/String;
+Ljava/text/DecimalFormatSymbols;->locale:Ljava/util/Locale;
+Ljava/text/DecimalFormatSymbols;->maybeStripMarkers(Ljava/lang/String;C)C
+Ljava/text/DecimalFormatSymbols;->minusSign:C
+Ljava/text/DecimalFormatSymbols;->monetarySeparator:C
+Ljava/text/DecimalFormatSymbols;->NaN:Ljava/lang/String;
+Ljava/text/DecimalFormatSymbols;->patternSeparator:C
+Ljava/text/DecimalFormatSymbols;->percent:C
+Ljava/text/DecimalFormatSymbols;->perMill:C
+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
+Ljava/text/FieldPosition;->attribute:Ljava/text/Format$Field;
+Ljava/text/FieldPosition;->beginIndex:I
+Ljava/text/FieldPosition;->endIndex:I
+Ljava/text/FieldPosition;->field:I
+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;
+Ljava/text/Format;->createAttributedCharacterIterator(Ljava/lang/String;Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;)Ljava/text/AttributedCharacterIterator;
+Ljava/text/Format;->createAttributedCharacterIterator(Ljava/text/AttributedCharacterIterator;Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;)Ljava/text/AttributedCharacterIterator;
+Ljava/text/Format;->createAttributedCharacterIterator([Ljava/text/AttributedCharacterIterator;)Ljava/text/AttributedCharacterIterator;
+Ljava/text/MessageFormat;->append(Ljava/lang/StringBuffer;Ljava/text/CharacterIterator;)V
+Ljava/text/MessageFormat;->argumentNumbers:[I
+Ljava/text/MessageFormat;->copyAndFixQuotes(Ljava/lang/String;IILjava/lang/StringBuilder;)V
+Ljava/text/MessageFormat;->DATE_TIME_MODIFIERS:[I
+Ljava/text/MessageFormat;->DATE_TIME_MODIFIER_KEYWORDS:[Ljava/lang/String;
+Ljava/text/MessageFormat;->findKeyword(Ljava/lang/String;[Ljava/lang/String;)I
+Ljava/text/MessageFormat;->formats:[Ljava/text/Format;
+Ljava/text/MessageFormat;->INITIAL_FORMATS:I
+Ljava/text/MessageFormat;->locale:Ljava/util/Locale;
+Ljava/text/MessageFormat;->makeFormat(II[Ljava/lang/StringBuilder;)V
+Ljava/text/MessageFormat;->maxOffset:I
+Ljava/text/MessageFormat;->MODIFIER_CURRENCY:I
+Ljava/text/MessageFormat;->MODIFIER_DEFAULT:I
+Ljava/text/MessageFormat;->MODIFIER_FULL:I
+Ljava/text/MessageFormat;->MODIFIER_INTEGER:I
+Ljava/text/MessageFormat;->MODIFIER_LONG:I
+Ljava/text/MessageFormat;->MODIFIER_MEDIUM:I
+Ljava/text/MessageFormat;->MODIFIER_PERCENT:I
+Ljava/text/MessageFormat;->MODIFIER_SHORT:I
+Ljava/text/MessageFormat;->NUMBER_MODIFIER_KEYWORDS:[Ljava/lang/String;
+Ljava/text/MessageFormat;->offsets:[I
+Ljava/text/MessageFormat;->pattern:Ljava/lang/String;
+Ljava/text/MessageFormat;->SEG_INDEX:I
+Ljava/text/MessageFormat;->SEG_MODIFIER:I
+Ljava/text/MessageFormat;->SEG_RAW:I
+Ljava/text/MessageFormat;->SEG_TYPE:I
+Ljava/text/MessageFormat;->subformat([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
+Ljava/text/MessageFormat;->TYPE_CHOICE:I
+Ljava/text/MessageFormat;->TYPE_DATE:I
+Ljava/text/MessageFormat;->TYPE_KEYWORDS:[Ljava/lang/String;
+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;
+Ljava/text/NumberFormat;->CURRENCYSTYLE:I
+Ljava/text/NumberFormat;->currentSerialVersion:I
+Ljava/text/NumberFormat;->groupingUsed:Z
+Ljava/text/NumberFormat;->INTEGERSTYLE:I
+Ljava/text/NumberFormat;->maxFractionDigits:B
+Ljava/text/NumberFormat;->maximumFractionDigits:I
+Ljava/text/NumberFormat;->maximumIntegerDigits:I
+Ljava/text/NumberFormat;->maxIntegerDigits:B
+Ljava/text/NumberFormat;->minFractionDigits:B
+Ljava/text/NumberFormat;->minimumFractionDigits:I
+Ljava/text/NumberFormat;->minimumIntegerDigits:I
+Ljava/text/NumberFormat;->minIntegerDigits:B
+Ljava/text/NumberFormat;->NUMBERSTYLE:I
+Ljava/text/NumberFormat;->parseIntegerOnly:Z
+Ljava/text/NumberFormat;->PERCENTSTYLE:I
+Ljava/text/NumberFormat;->serialVersionOnStream:I
+Ljava/text/ParseException;->errorOffset:I
+Ljava/text/ParsePosition;->errorIndex:I
+Ljava/text/ParsePosition;->index:I
+Ljava/text/RuleBasedCollator;-><init>(Landroid/icu/text/RuleBasedCollator;)V
+Ljava/text/RuleBasedCollator;->collAsICU()Landroid/icu/text/RuleBasedCollator;
+Ljava/text/SimpleDateFormat;-><init>(IILjava/util/Locale;)V
+Ljava/text/SimpleDateFormat;->cachedNumberFormatData:Ljava/util/concurrent/ConcurrentMap;
+Ljava/text/SimpleDateFormat;->checkNegativeNumberExpression()V
+Ljava/text/SimpleDateFormat;->compile(Ljava/lang/String;)[C
+Ljava/text/SimpleDateFormat;->compiledPattern:[C
+Ljava/text/SimpleDateFormat;->currentSerialVersion:I
+Ljava/text/SimpleDateFormat;->defaultCenturyStart:Ljava/util/Date;
+Ljava/text/SimpleDateFormat;->defaultCenturyStartYear:I
+Ljava/text/SimpleDateFormat;->DST_NAME_TYPES:Ljava/util/Set;
+Ljava/text/SimpleDateFormat;->encode(IILjava/lang/StringBuilder;)V
+Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/Format$FieldDelegate;)Ljava/lang/StringBuffer;
+Ljava/text/SimpleDateFormat;->formatData:Ljava/text/DateFormatSymbols;
+Ljava/text/SimpleDateFormat;->formatMonth(IIILjava/lang/StringBuffer;ZZ)Ljava/lang/String;
+Ljava/text/SimpleDateFormat;->formatWeekday(IIZZ)Ljava/lang/String;
+Ljava/text/SimpleDateFormat;->getCalendarName()Ljava/lang/String;
+Ljava/text/SimpleDateFormat;->getDateTimeFormat(IILjava/util/Locale;)Ljava/lang/String;
+Ljava/text/SimpleDateFormat;->getTimeZoneNames()Landroid/icu/text/TimeZoneNames;
+Ljava/text/SimpleDateFormat;->GMT:Ljava/lang/String;
+Ljava/text/SimpleDateFormat;->hasFollowingMinusSign:Z
+Ljava/text/SimpleDateFormat;->initialize(Ljava/util/Locale;)V
+Ljava/text/SimpleDateFormat;->initializeCalendar(Ljava/util/Locale;)V
+Ljava/text/SimpleDateFormat;->initializeDefaultCentury()V
+Ljava/text/SimpleDateFormat;->isDigit(C)Z
+Ljava/text/SimpleDateFormat;->isGregorianCalendar()Z
+Ljava/text/SimpleDateFormat;->locale:Ljava/util/Locale;
+Ljava/text/SimpleDateFormat;->matchString(Ljava/lang/String;IILjava/util/Map;Ljava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->matchString(Ljava/lang/String;II[Ljava/lang/String;Ljava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->matchZoneString(Ljava/lang/String;I[Ljava/lang/String;)I
+Ljava/text/SimpleDateFormat;->MILLIS_PER_MINUTE:I
+Ljava/text/SimpleDateFormat;->minusSign:C
+Ljava/text/SimpleDateFormat;->NAME_TYPES:Ljava/util/EnumSet;
+Ljava/text/SimpleDateFormat;->originalNumberFormat:Ljava/text/NumberFormat;
+Ljava/text/SimpleDateFormat;->originalNumberPattern:Ljava/lang/String;
+Ljava/text/SimpleDateFormat;->parseAmbiguousDatesAsAfter(Ljava/util/Date;)V
+Ljava/text/SimpleDateFormat;->parseInternal(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
+Ljava/text/SimpleDateFormat;->parseMonth(Ljava/lang/String;IIIILjava/text/ParsePosition;ZZLjava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->parseWeekday(Ljava/lang/String;IIZZLjava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->pattern:Ljava/lang/String;
+Ljava/text/SimpleDateFormat;->PATTERN_INDEX_TO_CALENDAR_FIELD:[I
+Ljava/text/SimpleDateFormat;->PATTERN_INDEX_TO_DATE_FORMAT_FIELD:[I
+Ljava/text/SimpleDateFormat;->PATTERN_INDEX_TO_DATE_FORMAT_FIELD_ID:[Ljava/text/DateFormat$Field;
+Ljava/text/SimpleDateFormat;->serialVersionOnStream:I
+Ljava/text/SimpleDateFormat;->subFormat(IILjava/text/Format$FieldDelegate;Ljava/lang/StringBuffer;Z)V
+Ljava/text/SimpleDateFormat;->subParse(Ljava/lang/String;IIIZ[ZLjava/text/ParsePosition;ZLjava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->subParseNumericZone(Ljava/lang/String;IIIZLjava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->subParseZoneString(Ljava/lang/String;ILjava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->subParseZoneStringFromICU(Ljava/lang/String;ILjava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->subParseZoneStringFromSymbols(Ljava/lang/String;ILjava/text/CalendarBuilder;)I
+Ljava/text/SimpleDateFormat;->TAG_QUOTE_ASCII_CHAR:I
+Ljava/text/SimpleDateFormat;->TAG_QUOTE_CHARS:I
+Ljava/text/SimpleDateFormat;->timeZoneNames:Landroid/icu/text/TimeZoneNames;
+Ljava/text/SimpleDateFormat;->translatePattern(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Ljava/text/SimpleDateFormat;->useDateFormatSymbols()Z
+Ljava/text/SimpleDateFormat;->useDateFormatSymbols:Z
+Ljava/text/SimpleDateFormat;->zeroDigit:C
+Ljava/text/SimpleDateFormat;->zeroPaddingNumber(IIILjava/lang/StringBuffer;)V
+Ljava/text/StringCharacterIterator;->begin:I
+Ljava/text/StringCharacterIterator;->end:I
+Ljava/text/StringCharacterIterator;->pos:I
+Ljava/text/StringCharacterIterator;->text:Ljava/lang/String;
+Ljava/time/chrono/AbstractChronology;->addFieldValue(Ljava/util/Map;Ljava/time/temporal/ChronoField;J)V
+Ljava/time/chrono/AbstractChronology;->CHRONOS_BY_ID:Ljava/util/concurrent/ConcurrentHashMap;
+Ljava/time/chrono/AbstractChronology;->CHRONOS_BY_TYPE:Ljava/util/concurrent/ConcurrentHashMap;
+Ljava/time/chrono/AbstractChronology;->DATE_ORDER:Ljava/util/Comparator;
+Ljava/time/chrono/AbstractChronology;->DATE_TIME_ORDER:Ljava/util/Comparator;
+Ljava/time/chrono/AbstractChronology;->getAvailableChronologies()Ljava/util/Set;
+Ljava/time/chrono/AbstractChronology;->initCache()Z
+Ljava/time/chrono/AbstractChronology;->INSTANT_ORDER:Ljava/util/Comparator;
+Ljava/time/chrono/AbstractChronology;->of(Ljava/lang/String;)Ljava/time/chrono/Chronology;
+Ljava/time/chrono/AbstractChronology;->of0(Ljava/lang/String;)Ljava/time/chrono/Chronology;
+Ljava/time/chrono/AbstractChronology;->ofLocale(Ljava/util/Locale;)Ljava/time/chrono/Chronology;
+Ljava/time/chrono/AbstractChronology;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/Chronology;
+Ljava/time/chrono/AbstractChronology;->registerChrono(Ljava/time/chrono/Chronology;)Ljava/time/chrono/Chronology;
+Ljava/time/chrono/AbstractChronology;->registerChrono(Ljava/time/chrono/Chronology;Ljava/lang/String;)Ljava/time/chrono/Chronology;
+Ljava/time/chrono/AbstractChronology;->resolveAligned(Ljava/time/chrono/ChronoLocalDate;JJJ)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/AbstractChronology;->resolveProlepticMonth(Ljava/util/Map;Ljava/time/format/ResolverStyle;)V
+Ljava/time/chrono/AbstractChronology;->resolveYAA(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/AbstractChronology;->resolveYAD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/AbstractChronology;->resolveYD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/AbstractChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/AbstractChronology;->resolveYMAA(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+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;
+Ljava/time/chrono/ChronoLocalDateImpl;->minusDays(J)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/ChronoLocalDateImpl;->minusMonths(J)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/ChronoLocalDateImpl;->minusWeeks(J)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/ChronoLocalDateImpl;->minusYears(J)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/ChronoLocalDateImpl;->monthsUntil(Ljava/time/chrono/ChronoLocalDate;)J
+Ljava/time/chrono/ChronoLocalDateImpl;->plusDays(J)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/ChronoLocalDateImpl;->plusMonths(J)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/ChronoLocalDateImpl;->plusWeeks(J)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/ChronoLocalDateImpl;->plusYears(J)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/HijrahChronology;-><init>(Ljava/lang/String;)V
+Ljava/time/chrono/HijrahChronology;->calendarProperties:Ljava/util/Properties;
+Ljava/time/chrono/HijrahChronology;->calendarType:Ljava/lang/String;
+Ljava/time/chrono/HijrahChronology;->checkCalendarInit()V
+Ljava/time/chrono/HijrahChronology;->checkValidDayOfYear(I)V
+Ljava/time/chrono/HijrahChronology;->checkValidMonth(I)V
+Ljava/time/chrono/HijrahChronology;->checkValidYear(J)I
+Ljava/time/chrono/HijrahChronology;->createEpochMonths(IIILjava/util/Map;)[I
+Ljava/time/chrono/HijrahChronology;->epochDayToEpochMonth(I)I
+Ljava/time/chrono/HijrahChronology;->epochMonthLength(I)I
+Ljava/time/chrono/HijrahChronology;->epochMonthToEpochDay(I)I
+Ljava/time/chrono/HijrahChronology;->epochMonthToMonth(I)I
+Ljava/time/chrono/HijrahChronology;->epochMonthToYear(I)I
+Ljava/time/chrono/HijrahChronology;->getDayOfYear(II)I
+Ljava/time/chrono/HijrahChronology;->getEpochDay(III)J
+Ljava/time/chrono/HijrahChronology;->getHijrahDateInfo(I)[I
+Ljava/time/chrono/HijrahChronology;->getMaximumDayOfYear()I
+Ljava/time/chrono/HijrahChronology;->getMaximumMonthLength()I
+Ljava/time/chrono/HijrahChronology;->getMaximumYear()I
+Ljava/time/chrono/HijrahChronology;->getMinimumMonthLength()I
+Ljava/time/chrono/HijrahChronology;->getMinimumYear()I
+Ljava/time/chrono/HijrahChronology;->getMonthLength(II)I
+Ljava/time/chrono/HijrahChronology;->getSmallestMaximumDayOfYear()I
+Ljava/time/chrono/HijrahChronology;->getYearLength(I)I
+Ljava/time/chrono/HijrahChronology;->hijrahEpochMonthStartDays:[I
+Ljava/time/chrono/HijrahChronology;->hijrahStartEpochMonth:I
+Ljava/time/chrono/HijrahChronology;->initComplete:Z
+Ljava/time/chrono/HijrahChronology;->KEY_ID:Ljava/lang/String;
+Ljava/time/chrono/HijrahChronology;->KEY_ISO_START:Ljava/lang/String;
+Ljava/time/chrono/HijrahChronology;->KEY_TYPE:Ljava/lang/String;
+Ljava/time/chrono/HijrahChronology;->KEY_VERSION:Ljava/lang/String;
+Ljava/time/chrono/HijrahChronology;->loadCalendarData()V
+Ljava/time/chrono/HijrahChronology;->maxEpochDay:I
+Ljava/time/chrono/HijrahChronology;->maxMonthLength:I
+Ljava/time/chrono/HijrahChronology;->maxYearLength:I
+Ljava/time/chrono/HijrahChronology;->minEpochDay:I
+Ljava/time/chrono/HijrahChronology;->minMonthLength:I
+Ljava/time/chrono/HijrahChronology;->minYearLength:I
+Ljava/time/chrono/HijrahChronology;->parseMonths(Ljava/lang/String;)[I
+Ljava/time/chrono/HijrahChronology;->parseYMD(Ljava/lang/String;)[I
+Ljava/time/chrono/HijrahChronology;->PROP_PREFIX:Ljava/lang/String;
+Ljava/time/chrono/HijrahChronology;->PROP_TYPE_SUFFIX:Ljava/lang/String;
+Ljava/time/chrono/HijrahChronology;->readConfigProperties(Ljava/lang/String;)Ljava/util/Properties;
+Ljava/time/chrono/HijrahChronology;->registerVariants()V
+Ljava/time/chrono/HijrahChronology;->typeId:Ljava/lang/String;
+Ljava/time/chrono/HijrahChronology;->yearMonthToDayOfYear(II)I
+Ljava/time/chrono/HijrahChronology;->yearToEpochMonth(I)I
+Ljava/time/chrono/HijrahDate;-><init>(Ljava/time/chrono/HijrahChronology;III)V
+Ljava/time/chrono/HijrahDate;-><init>(Ljava/time/chrono/HijrahChronology;J)V
+Ljava/time/chrono/HijrahDate;->chrono:Ljava/time/chrono/HijrahChronology;
+Ljava/time/chrono/HijrahDate;->dayOfMonth:I
+Ljava/time/chrono/HijrahDate;->getDayOfWeek()I
+Ljava/time/chrono/HijrahDate;->getDayOfYear()I
+Ljava/time/chrono/HijrahDate;->getEraValue()I
+Ljava/time/chrono/HijrahDate;->getProlepticMonth()J
+Ljava/time/chrono/HijrahDate;->minusDays(J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->minusMonths(J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->minusWeeks(J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->minusYears(J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->monthOfYear:I
+Ljava/time/chrono/HijrahDate;->of(Ljava/time/chrono/HijrahChronology;III)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->ofEpochDay(Ljava/time/chrono/HijrahChronology;J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->plusDays(J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->plusMonths(J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->plusWeeks(J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->plusYears(J)Ljava/time/chrono/HijrahDate;
+Ljava/time/chrono/HijrahDate;->prolepticYear:I
+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;
+Ljava/time/chrono/JapaneseChronology;->JCAL:Lsun/util/calendar/LocalGregorianCalendar;
+Ljava/time/chrono/JapaneseChronology;->LOCALE:Ljava/util/Locale;
+Ljava/time/chrono/JapaneseChronology;->prolepticYearLenient(Ljava/time/chrono/JapaneseEra;I)I
+Ljava/time/chrono/JapaneseChronology;->resolveYD(Ljava/time/chrono/JapaneseEra;ILjava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/JapaneseChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/JapaneseChronology;->resolveYMD(Ljava/time/chrono/JapaneseEra;ILjava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/chrono/JapaneseDate;-><init>(Ljava/time/chrono/JapaneseEra;ILjava/time/LocalDate;)V
+Ljava/time/chrono/JapaneseDate;-><init>(Ljava/time/LocalDate;)V
+Ljava/time/chrono/JapaneseDate;->era:Ljava/time/chrono/JapaneseEra;
+Ljava/time/chrono/JapaneseDate;->isoDate:Ljava/time/LocalDate;
+Ljava/time/chrono/JapaneseDate;->MEIJI_6_ISODATE:Ljava/time/LocalDate;
+Ljava/time/chrono/JapaneseDate;->minusDays(J)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->minusMonths(J)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->minusWeeks(J)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->minusYears(J)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->ofYearDay(Ljava/time/chrono/JapaneseEra;II)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->plusDays(J)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->plusMonths(J)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->plusWeeks(J)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->plusYears(J)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->toPrivateJapaneseDate(Ljava/time/LocalDate;)Lsun/util/calendar/LocalGregorianCalendar$Date;
+Ljava/time/chrono/JapaneseDate;->with(Ljava/time/LocalDate;)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->withYear(I)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->withYear(Ljava/time/chrono/JapaneseEra;I)Ljava/time/chrono/JapaneseDate;
+Ljava/time/chrono/JapaneseDate;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/chrono/JapaneseDate;->yearOfEra:I
+Ljava/time/chrono/JapaneseEra;-><init>(ILjava/time/LocalDate;)V
+Ljava/time/chrono/JapaneseEra;->eraValue:I
+Ljava/time/chrono/JapaneseEra;->ERA_CONFIG:[Lsun/util/calendar/Era;
+Ljava/time/chrono/JapaneseEra;->ERA_OFFSET:I
+Ljava/time/chrono/JapaneseEra;->from(Ljava/time/LocalDate;)Ljava/time/chrono/JapaneseEra;
+Ljava/time/chrono/JapaneseEra;->getAbbreviation()Ljava/lang/String;
+Ljava/time/chrono/JapaneseEra;->getName()Ljava/lang/String;
+Ljava/time/chrono/JapaneseEra;->getPrivateEra()Lsun/util/calendar/Era;
+Ljava/time/chrono/JapaneseEra;->KNOWN_ERAS:[Ljava/time/chrono/JapaneseEra;
+Ljava/time/chrono/JapaneseEra;->N_ERA_CONSTANTS:I
+Ljava/time/chrono/JapaneseEra;->ordinal(I)I
+Ljava/time/chrono/JapaneseEra;->privateEraFrom(Ljava/time/LocalDate;)Lsun/util/calendar/Era;
+Ljava/time/chrono/JapaneseEra;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/JapaneseEra;
+Ljava/time/chrono/JapaneseEra;->since:Ljava/time/LocalDate;
+Ljava/time/chrono/JapaneseEra;->toJapaneseEra(Lsun/util/calendar/Era;)Ljava/time/chrono/JapaneseEra;
+Ljava/time/chrono/JapaneseEra;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/chrono/MinguoChronology;-><init>()V
+Ljava/time/chrono/MinguoChronology;->YEARS_DIFFERENCE:I
+Ljava/time/chrono/MinguoDate;-><init>(Ljava/time/LocalDate;)V
+Ljava/time/chrono/MinguoDate;->getProlepticMonth()J
+Ljava/time/chrono/MinguoDate;->getProlepticYear()I
+Ljava/time/chrono/MinguoDate;->isoDate:Ljava/time/LocalDate;
+Ljava/time/chrono/MinguoDate;->minusDays(J)Ljava/time/chrono/MinguoDate;
+Ljava/time/chrono/MinguoDate;->minusMonths(J)Ljava/time/chrono/MinguoDate;
+Ljava/time/chrono/MinguoDate;->minusWeeks(J)Ljava/time/chrono/MinguoDate;
+Ljava/time/chrono/MinguoDate;->minusYears(J)Ljava/time/chrono/MinguoDate;
+Ljava/time/chrono/MinguoDate;->plusDays(J)Ljava/time/chrono/MinguoDate;
+Ljava/time/chrono/MinguoDate;->plusMonths(J)Ljava/time/chrono/MinguoDate;
+Ljava/time/chrono/MinguoDate;->plusWeeks(J)Ljava/time/chrono/MinguoDate;
+Ljava/time/chrono/MinguoDate;->plusYears(J)Ljava/time/chrono/MinguoDate;
+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;
+Ljava/time/chrono/ThaiBuddhistChronology;->ERA_SHORT_NAMES:Ljava/util/HashMap;
+Ljava/time/chrono/ThaiBuddhistChronology;->FALLBACK_LANGUAGE:Ljava/lang/String;
+Ljava/time/chrono/ThaiBuddhistChronology;->TARGET_LANGUAGE:Ljava/lang/String;
+Ljava/time/chrono/ThaiBuddhistChronology;->YEARS_DIFFERENCE:I
+Ljava/time/chrono/ThaiBuddhistDate;-><init>(Ljava/time/LocalDate;)V
+Ljava/time/chrono/ThaiBuddhistDate;->getProlepticMonth()J
+Ljava/time/chrono/ThaiBuddhistDate;->getProlepticYear()I
+Ljava/time/chrono/ThaiBuddhistDate;->isoDate:Ljava/time/LocalDate;
+Ljava/time/chrono/ThaiBuddhistDate;->minusDays(J)Ljava/time/chrono/ThaiBuddhistDate;
+Ljava/time/chrono/ThaiBuddhistDate;->minusMonths(J)Ljava/time/chrono/ThaiBuddhistDate;
+Ljava/time/chrono/ThaiBuddhistDate;->minusWeeks(J)Ljava/time/chrono/ThaiBuddhistDate;
+Ljava/time/chrono/ThaiBuddhistDate;->minusYears(J)Ljava/time/chrono/ThaiBuddhistDate;
+Ljava/time/chrono/ThaiBuddhistDate;->plusDays(J)Ljava/time/chrono/ThaiBuddhistDate;
+Ljava/time/chrono/ThaiBuddhistDate;->plusMonths(J)Ljava/time/chrono/ThaiBuddhistDate;
+Ljava/time/chrono/ThaiBuddhistDate;->plusWeeks(J)Ljava/time/chrono/ThaiBuddhistDate;
+Ljava/time/chrono/ThaiBuddhistDate;->plusYears(J)Ljava/time/chrono/ThaiBuddhistDate;
+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
+Ljava/time/Duration;->BI_NANOS_PER_SECOND:Ljava/math/BigInteger;
+Ljava/time/Duration;->create(JI)Ljava/time/Duration;
+Ljava/time/Duration;->create(Ljava/math/BigDecimal;)Ljava/time/Duration;
+Ljava/time/Duration;->create(ZJJJJI)Ljava/time/Duration;
+Ljava/time/Duration;->nanos:I
+Ljava/time/Duration;->parseFraction(Ljava/lang/CharSequence;Ljava/lang/String;I)I
+Ljava/time/Duration;->parseNumber(Ljava/lang/CharSequence;Ljava/lang/String;ILjava/lang/String;)J
+Ljava/time/Duration;->PATTERN:Ljava/util/regex/Pattern;
+Ljava/time/Duration;->plus(JJ)Ljava/time/Duration;
+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;
+Ljava/time/format/DateTimeFormatter;-><init>(Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;Ljava/util/Locale;Ljava/time/format/DecimalStyle;Ljava/time/format/ResolverStyle;Ljava/util/Set;Ljava/time/chrono/Chronology;Ljava/time/ZoneId;)V
+Ljava/time/format/DateTimeFormatter;->chrono:Ljava/time/chrono/Chronology;
+Ljava/time/format/DateTimeFormatter;->createError(Ljava/lang/CharSequence;Ljava/lang/RuntimeException;)Ljava/time/format/DateTimeParseException;
+Ljava/time/format/DateTimeFormatter;->decimalStyle:Ljava/time/format/DecimalStyle;
+Ljava/time/format/DateTimeFormatter;->locale:Ljava/util/Locale;
+Ljava/time/format/DateTimeFormatter;->PARSED_EXCESS_DAYS:Ljava/time/temporal/TemporalQuery;
+Ljava/time/format/DateTimeFormatter;->PARSED_LEAP_SECOND:Ljava/time/temporal/TemporalQuery;
+Ljava/time/format/DateTimeFormatter;->parseResolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/temporal/TemporalAccessor;
+Ljava/time/format/DateTimeFormatter;->parseUnresolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/format/DateTimeParseContext;
+Ljava/time/format/DateTimeFormatter;->printerParser:Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
+Ljava/time/format/DateTimeFormatter;->resolverFields:Ljava/util/Set;
+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
+Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->optional:Z
+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;
+Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->decimalPoint:Z
+Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->field:Ljava/time/temporal/TemporalField;
+Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+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
+Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->formatter(Ljava/util/Locale;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
+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
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->field:Ljava/time/temporal/TemporalField;
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->getValue(Ljava/time/format/DateTimePrintContext;J)J
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->isFixedWidth(Ljava/time/format/DateTimeParseContext;)Z
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->maxWidth:I
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->minWidth:I
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->setValue(Ljava/time/format/DateTimeParseContext;JII)I
+Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->signStyle:Ljava/time/format/SignStyle;
+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
+Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->INSTANCE_ID_Z:Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;
+Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->INSTANCE_ID_ZERO:Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;
+Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->noOffsetText:Ljava/lang/String;
+Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+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
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->c0:C
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->child:Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->copyTree()Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->isEqual(CC)Z
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->key:Ljava/lang/String;
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->match(Ljava/lang/CharSequence;II)Ljava/lang/String;
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->match(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/lang/String;
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->newNode(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->newTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->newTree(Ljava/util/Set;Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->prefixLength(Ljava/lang/String;)I
+Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->prefixOf(Ljava/lang/CharSequence;II)Z
+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;
+Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->baseValue:I
+Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->BASE_DATE:Ljava/time/LocalDate;
+Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->getValue(Ljava/time/format/DateTimePrintContext;J)J
+Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->isFixedWidth(Ljava/time/format/DateTimeParseContext;)Z
+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;
+Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->SENSITIVE:Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
+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
+Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->numberPrinterParser()Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
+Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->numberPrinterParser:Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
+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;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->description:Ljava/lang/String;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->getTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+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;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->cachedTreeCI:Ljava/util/Map;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->DST:I
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->FULL_TYPES:[Landroid/icu/text/TimeZoneNames$NameType;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->GENERIC:I
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->getDisplayName(Ljava/lang/String;ILjava/util/Locale;)Ljava/lang/String;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->getTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->preferredZones:Ljava/util/Set;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->SHORT_TYPES:[Landroid/icu/text/TimeZoneNames$NameType;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->STD:I
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->textStyle:Ljava/time/format/TextStyle;
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->TYPES:[Landroid/icu/text/TimeZoneNames$NameType;
+Ljava/time/format/DateTimeFormatterBuilder;-><init>(Ljava/time/format/DateTimeFormatterBuilder;Z)V
+Ljava/time/format/DateTimeFormatterBuilder;->active:Ljava/time/format/DateTimeFormatterBuilder;
+Ljava/time/format/DateTimeFormatterBuilder;->appendInternal(Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;)I
+Ljava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;)Ljava/time/format/DateTimeFormatterBuilder;
+Ljava/time/format/DateTimeFormatterBuilder;->convertStyle(Ljava/time/format/FormatStyle;)I
+Ljava/time/format/DateTimeFormatterBuilder;->FIELD_MAP:Ljava/util/Map;
+Ljava/time/format/DateTimeFormatterBuilder;->LENGTH_SORT:Ljava/util/Comparator;
+Ljava/time/format/DateTimeFormatterBuilder;->optional:Z
+Ljava/time/format/DateTimeFormatterBuilder;->padNextChar:C
+Ljava/time/format/DateTimeFormatterBuilder;->padNextWidth:I
+Ljava/time/format/DateTimeFormatterBuilder;->parent:Ljava/time/format/DateTimeFormatterBuilder;
+Ljava/time/format/DateTimeFormatterBuilder;->parseField(CILjava/time/temporal/TemporalField;)V
+Ljava/time/format/DateTimeFormatterBuilder;->parsePattern(Ljava/lang/String;)V
+Ljava/time/format/DateTimeFormatterBuilder;->printerParsers:Ljava/util/List;
+Ljava/time/format/DateTimeFormatterBuilder;->QUERY_REGION_ONLY:Ljava/time/temporal/TemporalQuery;
+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
+Ljava/time/format/DateTimeParseContext;->charEquals(CC)Z
+Ljava/time/format/DateTimeParseContext;->charEqualsIgnoreCase(CC)Z
+Ljava/time/format/DateTimeParseContext;->chronoListeners:Ljava/util/ArrayList;
+Ljava/time/format/DateTimeParseContext;->copy()Ljava/time/format/DateTimeParseContext;
+Ljava/time/format/DateTimeParseContext;->currentParsed()Ljava/time/format/Parsed;
+Ljava/time/format/DateTimeParseContext;->endOptional(Z)V
+Ljava/time/format/DateTimeParseContext;->formatter:Ljava/time/format/DateTimeFormatter;
+Ljava/time/format/DateTimeParseContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
+Ljava/time/format/DateTimeParseContext;->getEffectiveChronology()Ljava/time/chrono/Chronology;
+Ljava/time/format/DateTimeParseContext;->getLocale()Ljava/util/Locale;
+Ljava/time/format/DateTimeParseContext;->getParsed(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
+Ljava/time/format/DateTimeParseContext;->isCaseSensitive()Z
+Ljava/time/format/DateTimeParseContext;->isStrict()Z
+Ljava/time/format/DateTimeParseContext;->parsed:Ljava/util/ArrayList;
+Ljava/time/format/DateTimeParseContext;->setCaseSensitive(Z)V
+Ljava/time/format/DateTimeParseContext;->setParsed(Ljava/time/chrono/Chronology;)V
+Ljava/time/format/DateTimeParseContext;->setParsed(Ljava/time/ZoneId;)V
+Ljava/time/format/DateTimeParseContext;->setParsedField(Ljava/time/temporal/TemporalField;JII)I
+Ljava/time/format/DateTimeParseContext;->setParsedLeapSecond()V
+Ljava/time/format/DateTimeParseContext;->setStrict(Z)V
+Ljava/time/format/DateTimeParseContext;->startOptional()V
+Ljava/time/format/DateTimeParseContext;->strict:Z
+Ljava/time/format/DateTimeParseContext;->subSequenceEquals(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z
+Ljava/time/format/DateTimeParseContext;->toResolved(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor;
+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
+Ljava/time/format/DateTimePrintContext;->formatter:Ljava/time/format/DateTimeFormatter;
+Ljava/time/format/DateTimePrintContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
+Ljava/time/format/DateTimePrintContext;->getLocale()Ljava/util/Locale;
+Ljava/time/format/DateTimePrintContext;->getTemporal()Ljava/time/temporal/TemporalAccessor;
+Ljava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
+Ljava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+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;
+Ljava/time/format/DateTimeTextProvider;->createEntry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;
+Ljava/time/format/DateTimeTextProvider;->createStore(Ljava/time/temporal/TemporalField;Ljava/util/Locale;)Ljava/lang/Object;
+Ljava/time/format/DateTimeTextProvider;->extractQuarters(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)Ljava/util/Map;
+Ljava/time/format/DateTimeTextProvider;->findStore(Ljava/time/temporal/TemporalField;Ljava/util/Locale;)Ljava/lang/Object;
+Ljava/time/format/DateTimeTextProvider;->getInstance()Ljava/time/format/DateTimeTextProvider;
+Ljava/time/format/DateTimeTextProvider;->getText(Ljava/time/chrono/Chronology;Ljava/time/temporal/TemporalField;JLjava/time/format/TextStyle;Ljava/util/Locale;)Ljava/lang/String;
+Ljava/time/format/DateTimeTextProvider;->getText(Ljava/time/temporal/TemporalField;JLjava/time/format/TextStyle;Ljava/util/Locale;)Ljava/lang/String;
+Ljava/time/format/DateTimeTextProvider;->getTextIterator(Ljava/time/chrono/Chronology;Ljava/time/temporal/TemporalField;Ljava/time/format/TextStyle;Ljava/util/Locale;)Ljava/util/Iterator;
+Ljava/time/format/DateTimeTextProvider;->getTextIterator(Ljava/time/temporal/TemporalField;Ljava/time/format/TextStyle;Ljava/util/Locale;)Ljava/util/Iterator;
+Ljava/time/format/DateTimeTextProvider;->toWeekDay(I)I
+Ljava/time/format/DecimalStyle;-><init>(CCCC)V
+Ljava/time/format/DecimalStyle;->CACHE:Ljava/util/concurrent/ConcurrentMap;
+Ljava/time/format/DecimalStyle;->convertNumberToI18N(Ljava/lang/String;)Ljava/lang/String;
+Ljava/time/format/DecimalStyle;->convertToDigit(C)I
+Ljava/time/format/DecimalStyle;->create(Ljava/util/Locale;)Ljava/time/format/DecimalStyle;
+Ljava/time/format/DecimalStyle;->decimalSeparator:C
+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;
+Ljava/time/format/Parsed;->crossCheck()V
+Ljava/time/format/Parsed;->crossCheck(Ljava/time/temporal/TemporalAccessor;)V
+Ljava/time/format/Parsed;->date:Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/format/Parsed;->excessDays:Ljava/time/Period;
+Ljava/time/format/Parsed;->fieldValues:Ljava/util/Map;
+Ljava/time/format/Parsed;->leapSecond:Z
+Ljava/time/format/Parsed;->resolve(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor;
+Ljava/time/format/Parsed;->resolveDateFields()V
+Ljava/time/format/Parsed;->resolveFields()V
+Ljava/time/format/Parsed;->resolveFractional()V
+Ljava/time/format/Parsed;->resolveInstant()V
+Ljava/time/format/Parsed;->resolveInstantFields()V
+Ljava/time/format/Parsed;->resolveInstantFields0(Ljava/time/ZoneId;)V
+Ljava/time/format/Parsed;->resolvePeriod()V
+Ljava/time/format/Parsed;->resolverStyle:Ljava/time/format/ResolverStyle;
+Ljava/time/format/Parsed;->resolveTime(JJJJ)V
+Ljava/time/format/Parsed;->resolveTimeFields()V
+Ljava/time/format/Parsed;->resolveTimeLenient()V
+Ljava/time/format/Parsed;->time:Ljava/time/LocalTime;
+Ljava/time/format/Parsed;->updateCheckConflict(Ljava/time/chrono/ChronoLocalDate;)V
+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
+Ljava/time/format/TextStyle;->zoneNameStyleIndex:I
+Ljava/time/Instant;-><init>(JI)V
+Ljava/time/Instant;->create(JI)Ljava/time/Instant;
+Ljava/time/Instant;->MAX_SECOND:J
+Ljava/time/Instant;->MIN_SECOND:J
+Ljava/time/Instant;->nanos:I
+Ljava/time/Instant;->nanosUntil(Ljava/time/Instant;)J
+Ljava/time/Instant;->plus(JJ)Ljava/time/Instant;
+Ljava/time/Instant;->readExternal(Ljava/io/DataInput;)Ljava/time/Instant;
+Ljava/time/Instant;->seconds:J
+Ljava/time/Instant;->secondsUntil(Ljava/time/Instant;)J
+Ljava/time/Instant;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/LocalDate;-><init>(III)V
+Ljava/time/LocalDate;->compareTo0(Ljava/time/LocalDate;)I
+Ljava/time/LocalDate;->create(III)Ljava/time/LocalDate;
+Ljava/time/LocalDate;->day:S
+Ljava/time/LocalDate;->daysUntil(Ljava/time/LocalDate;)J
+Ljava/time/LocalDate;->DAYS_0000_TO_1970:J
+Ljava/time/LocalDate;->DAYS_PER_CYCLE:I
+Ljava/time/LocalDate;->get0(Ljava/time/temporal/TemporalField;)I
+Ljava/time/LocalDate;->getProlepticMonth()J
+Ljava/time/LocalDate;->month:S
+Ljava/time/LocalDate;->monthsUntil(Ljava/time/LocalDate;)J
+Ljava/time/LocalDate;->readExternal(Ljava/io/DataInput;)Ljava/time/LocalDate;
+Ljava/time/LocalDate;->resolvePreviousValid(III)Ljava/time/LocalDate;
+Ljava/time/LocalDate;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/LocalDate;->year:I
+Ljava/time/LocalDateTime;-><init>(Ljava/time/LocalDate;Ljava/time/LocalTime;)V
+Ljava/time/LocalDateTime;->compareTo0(Ljava/time/LocalDateTime;)I
+Ljava/time/LocalDateTime;->date:Ljava/time/LocalDate;
+Ljava/time/LocalDateTime;->plusWithOverflow(Ljava/time/LocalDate;JJJJI)Ljava/time/LocalDateTime;
+Ljava/time/LocalDateTime;->readExternal(Ljava/io/DataInput;)Ljava/time/LocalDateTime;
+Ljava/time/LocalDateTime;->time:Ljava/time/LocalTime;
+Ljava/time/LocalDateTime;->with(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
+Ljava/time/LocalDateTime;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/LocalTime;-><init>(IIII)V
+Ljava/time/LocalTime;->create(IIII)Ljava/time/LocalTime;
+Ljava/time/LocalTime;->get0(Ljava/time/temporal/TemporalField;)I
+Ljava/time/LocalTime;->hour:B
+Ljava/time/LocalTime;->HOURS:[Ljava/time/LocalTime;
+Ljava/time/LocalTime;->HOURS_PER_DAY:I
+Ljava/time/LocalTime;->MICROS_PER_DAY:J
+Ljava/time/LocalTime;->MILLIS_PER_DAY:J
+Ljava/time/LocalTime;->minute:B
+Ljava/time/LocalTime;->MINUTES_PER_DAY:I
+Ljava/time/LocalTime;->MINUTES_PER_HOUR:I
+Ljava/time/LocalTime;->nano:I
+Ljava/time/LocalTime;->NANOS_PER_DAY:J
+Ljava/time/LocalTime;->NANOS_PER_HOUR:J
+Ljava/time/LocalTime;->NANOS_PER_MINUTE:J
+Ljava/time/LocalTime;->NANOS_PER_SECOND:J
+Ljava/time/LocalTime;->readExternal(Ljava/io/DataInput;)Ljava/time/LocalTime;
+Ljava/time/LocalTime;->second:B
+Ljava/time/LocalTime;->SECONDS_PER_DAY:I
+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
+Ljava/time/MonthDay;->month:I
+Ljava/time/MonthDay;->PARSER:Ljava/time/format/DateTimeFormatter;
+Ljava/time/MonthDay;->readExternal(Ljava/io/DataInput;)Ljava/time/MonthDay;
+Ljava/time/MonthDay;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/OffsetDateTime;->compareInstant(Ljava/time/OffsetDateTime;Ljava/time/OffsetDateTime;)I
+Ljava/time/OffsetDateTime;->dateTime:Ljava/time/LocalDateTime;
+Ljava/time/OffsetDateTime;->offset:Ljava/time/ZoneOffset;
+Ljava/time/OffsetDateTime;->readExternal(Ljava/io/ObjectInput;)Ljava/time/OffsetDateTime;
+Ljava/time/OffsetDateTime;->with(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime;
+Ljava/time/OffsetDateTime;->writeExternal(Ljava/io/ObjectOutput;)V
+Ljava/time/OffsetTime;-><init>(Ljava/time/LocalTime;Ljava/time/ZoneOffset;)V
+Ljava/time/OffsetTime;->offset:Ljava/time/ZoneOffset;
+Ljava/time/OffsetTime;->readExternal(Ljava/io/ObjectInput;)Ljava/time/OffsetTime;
+Ljava/time/OffsetTime;->time:Ljava/time/LocalTime;
+Ljava/time/OffsetTime;->toEpochNano()J
+Ljava/time/OffsetTime;->with(Ljava/time/LocalTime;Ljava/time/ZoneOffset;)Ljava/time/OffsetTime;
+Ljava/time/OffsetTime;->writeExternal(Ljava/io/ObjectOutput;)V
+Ljava/time/Period;-><init>(III)V
+Ljava/time/Period;->create(III)Ljava/time/Period;
+Ljava/time/Period;->days:I
+Ljava/time/Period;->months:I
+Ljava/time/Period;->parseNumber(Ljava/lang/CharSequence;Ljava/lang/String;I)I
+Ljava/time/Period;->PATTERN:Ljava/util/regex/Pattern;
+Ljava/time/Period;->readExternal(Ljava/io/DataInput;)Ljava/time/Period;
+Ljava/time/Period;->SUPPORTED_UNITS:Ljava/util/List;
+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
+Ljava/time/temporal/IsoFields$Field;->getWeekBasedYear(Ljava/time/LocalDate;)I
+Ljava/time/temporal/IsoFields$Field;->getWeekRange(I)I
+Ljava/time/temporal/IsoFields$Field;->getWeekRange(Ljava/time/LocalDate;)Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/IsoFields$Field;->isIso(Ljava/time/temporal/TemporalAccessor;)Z
+Ljava/time/temporal/IsoFields$Field;->QUARTER_DAYS:[I
+Ljava/time/temporal/IsoFields$Field;->QUARTER_OF_YEAR:Ljava/time/temporal/IsoFields$Field;
+Ljava/time/temporal/IsoFields$Field;->valueOf(Ljava/lang/String;)Ljava/time/temporal/IsoFields$Field;
+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;
+Ljava/time/temporal/IsoFields$Unit;->valueOf(Ljava/lang/String;)Ljava/time/temporal/IsoFields$Unit;
+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;
+Ljava/time/temporal/JulianFields$Field;->name:Ljava/lang/String;
+Ljava/time/temporal/JulianFields$Field;->offset:J
+Ljava/time/temporal/JulianFields$Field;->range:Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/JulianFields$Field;->rangeUnit:Ljava/time/temporal/TemporalUnit;
+Ljava/time/temporal/JulianFields$Field;->RATA_DIE:Ljava/time/temporal/JulianFields$Field;
+Ljava/time/temporal/JulianFields$Field;->valueOf(Ljava/lang/String;)Ljava/time/temporal/JulianFields$Field;
+Ljava/time/temporal/JulianFields$Field;->values()[Ljava/time/temporal/JulianFields$Field;
+Ljava/time/temporal/JulianFields;-><init>()V
+Ljava/time/temporal/JulianFields;->JULIAN_DAY_OFFSET:J
+Ljava/time/temporal/TemporalAdjusters;-><init>()V
+Ljava/time/temporal/TemporalQueries;-><init>()V
+Ljava/time/temporal/TemporalQueries;->CHRONO:Ljava/time/temporal/TemporalQuery;
+Ljava/time/temporal/TemporalQueries;->LOCAL_DATE:Ljava/time/temporal/TemporalQuery;
+Ljava/time/temporal/TemporalQueries;->LOCAL_TIME:Ljava/time/temporal/TemporalQuery;
+Ljava/time/temporal/TemporalQueries;->OFFSET:Ljava/time/temporal/TemporalQuery;
+Ljava/time/temporal/TemporalQueries;->PRECISION:Ljava/time/temporal/TemporalQuery;
+Ljava/time/temporal/TemporalQueries;->ZONE:Ljava/time/temporal/TemporalQuery;
+Ljava/time/temporal/TemporalQueries;->ZONE_ID:Ljava/time/temporal/TemporalQuery;
+Ljava/time/temporal/ValueRange;-><init>(JJJJ)V
+Ljava/time/temporal/ValueRange;->genInvalidFieldMessage(Ljava/time/temporal/TemporalField;J)Ljava/lang/String;
+Ljava/time/temporal/ValueRange;->maxLargest:J
+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
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->DAY_OF_WEEK_RANGE:Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedDayOfWeek(I)I
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedDayOfWeek(Ljava/time/temporal/TemporalAccessor;)I
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedWeekBasedYear(Ljava/time/temporal/TemporalAccessor;)I
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedWeekOfMonth(Ljava/time/temporal/TemporalAccessor;)J
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedWeekOfWeekBasedYear(Ljava/time/temporal/TemporalAccessor;)I
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedWeekOfYear(Ljava/time/temporal/TemporalAccessor;)J
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->name:Ljava/lang/String;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofDayOfWeekField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekBasedYear(Ljava/time/chrono/Chronology;III)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekBasedYearField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekOfMonthField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekOfWeekBasedYearField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekOfYearField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->range:Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->rangeByWeek(Ljava/time/temporal/TemporalAccessor;Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->rangeUnit:Ljava/time/temporal/TemporalUnit;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->rangeWeekOfWeekBasedYear(Ljava/time/temporal/TemporalAccessor;)Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->resolveWBY(Ljava/util/Map;Ljava/time/chrono/Chronology;ILjava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->resolveWoM(Ljava/util/Map;Ljava/time/chrono/Chronology;IJJILjava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->resolveWoY(Ljava/util/Map;Ljava/time/chrono/Chronology;IJILjava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->startOfWeekOffset(II)I
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->weekDef:Ljava/time/temporal/WeekFields;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->WEEK_OF_MONTH_RANGE:Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->WEEK_OF_WEEK_BASED_YEAR_RANGE:Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/WeekFields$ComputedDayOfField;->WEEK_OF_YEAR_RANGE:Ljava/time/temporal/ValueRange;
+Ljava/time/temporal/WeekFields;-><init>(Ljava/time/DayOfWeek;I)V
+Ljava/time/temporal/WeekFields;->CACHE:Ljava/util/concurrent/ConcurrentMap;
+Ljava/time/temporal/WeekFields;->dayOfWeek:Ljava/time/temporal/TemporalField;
+Ljava/time/temporal/WeekFields;->firstDayOfWeek:Ljava/time/DayOfWeek;
+Ljava/time/temporal/WeekFields;->minimalDays:I
+Ljava/time/temporal/WeekFields;->weekBasedYear:Ljava/time/temporal/TemporalField;
+Ljava/time/temporal/WeekFields;->weekOfMonth:Ljava/time/temporal/TemporalField;
+Ljava/time/temporal/WeekFields;->weekOfWeekBasedYear:Ljava/time/temporal/TemporalField;
+Ljava/time/temporal/WeekFields;->weekOfYear:Ljava/time/temporal/TemporalField;
+Ljava/time/Year;-><init>(I)V
+Ljava/time/Year;->PARSER:Ljava/time/format/DateTimeFormatter;
+Ljava/time/Year;->readExternal(Ljava/io/DataInput;)Ljava/time/Year;
+Ljava/time/Year;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/Year;->year:I
+Ljava/time/YearMonth;-><init>(II)V
+Ljava/time/YearMonth;->getProlepticMonth()J
+Ljava/time/YearMonth;->month:I
+Ljava/time/YearMonth;->PARSER:Ljava/time/format/DateTimeFormatter;
+Ljava/time/YearMonth;->readExternal(Ljava/io/DataInput;)Ljava/time/YearMonth;
+Ljava/time/YearMonth;->with(II)Ljava/time/YearMonth;
+Ljava/time/YearMonth;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/YearMonth;->year:I
+Ljava/time/zone/ZoneOffsetTransition;-><init>(JLjava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
+Ljava/time/zone/ZoneOffsetTransition;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
+Ljava/time/zone/ZoneOffsetTransition;->getDurationSeconds()I
+Ljava/time/zone/ZoneOffsetTransition;->getValidOffsets()Ljava/util/List;
+Ljava/time/zone/ZoneOffsetTransition;->offsetAfter:Ljava/time/ZoneOffset;
+Ljava/time/zone/ZoneOffsetTransition;->offsetBefore:Ljava/time/ZoneOffset;
+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;
+Ljava/time/zone/ZoneOffsetTransitionRule;->month:Ljava/time/Month;
+Ljava/time/zone/ZoneOffsetTransitionRule;->offsetAfter:Ljava/time/ZoneOffset;
+Ljava/time/zone/ZoneOffsetTransitionRule;->offsetBefore:Ljava/time/ZoneOffset;
+Ljava/time/zone/ZoneOffsetTransitionRule;->readExternal(Ljava/io/DataInput;)Ljava/time/zone/ZoneOffsetTransitionRule;
+Ljava/time/zone/ZoneOffsetTransitionRule;->standardOffset:Ljava/time/ZoneOffset;
+Ljava/time/zone/ZoneOffsetTransitionRule;->time:Ljava/time/LocalTime;
+Ljava/time/zone/ZoneOffsetTransitionRule;->timeDefinition:Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;
+Ljava/time/zone/ZoneOffsetTransitionRule;->timeEndOfDay:Z
+Ljava/time/zone/ZoneOffsetTransitionRule;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;)V
+Ljava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
+Ljava/time/zone/ZoneRules;-><init>([J[Ljava/time/ZoneOffset;[J[Ljava/time/ZoneOffset;[Ljava/time/zone/ZoneOffsetTransitionRule;)V
+Ljava/time/zone/ZoneRules;->EMPTY_LASTRULES:[Ljava/time/zone/ZoneOffsetTransitionRule;
+Ljava/time/zone/ZoneRules;->EMPTY_LDT_ARRAY:[Ljava/time/LocalDateTime;
+Ljava/time/zone/ZoneRules;->EMPTY_LONG_ARRAY:[J
+Ljava/time/zone/ZoneRules;->findOffsetInfo(Ljava/time/LocalDateTime;Ljava/time/zone/ZoneOffsetTransition;)Ljava/lang/Object;
+Ljava/time/zone/ZoneRules;->findTransitionArray(I)[Ljava/time/zone/ZoneOffsetTransition;
+Ljava/time/zone/ZoneRules;->findYear(JLjava/time/ZoneOffset;)I
+Ljava/time/zone/ZoneRules;->getOffsetInfo(Ljava/time/LocalDateTime;)Ljava/lang/Object;
+Ljava/time/zone/ZoneRules;->lastRules:[Ljava/time/zone/ZoneOffsetTransitionRule;
+Ljava/time/zone/ZoneRules;->lastRulesCache:Ljava/util/concurrent/ConcurrentMap;
+Ljava/time/zone/ZoneRules;->LAST_CACHED_YEAR:I
+Ljava/time/zone/ZoneRules;->readExternal(Ljava/io/DataInput;)Ljava/time/zone/ZoneRules;
+Ljava/time/zone/ZoneRules;->savingsInstantTransitions:[J
+Ljava/time/zone/ZoneRules;->savingsLocalTransitions:[Ljava/time/LocalDateTime;
+Ljava/time/zone/ZoneRules;->standardOffsets:[Ljava/time/ZoneOffset;
+Ljava/time/zone/ZoneRules;->standardTransitions:[J
+Ljava/time/zone/ZoneRules;->wallOffsets:[Ljava/time/ZoneOffset;
+Ljava/time/zone/ZoneRules;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/ZonedDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneId;)V
+Ljava/time/ZonedDateTime;->create(JILjava/time/ZoneId;)Ljava/time/ZonedDateTime;
+Ljava/time/ZonedDateTime;->dateTime:Ljava/time/LocalDateTime;
+Ljava/time/ZonedDateTime;->offset:Ljava/time/ZoneOffset;
+Ljava/time/ZonedDateTime;->ofLenient(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+Ljava/time/ZonedDateTime;->readExternal(Ljava/io/ObjectInput;)Ljava/time/ZonedDateTime;
+Ljava/time/ZonedDateTime;->resolveInstant(Ljava/time/LocalDateTime;)Ljava/time/ZonedDateTime;
+Ljava/time/ZonedDateTime;->resolveLocal(Ljava/time/LocalDateTime;)Ljava/time/ZonedDateTime;
+Ljava/time/ZonedDateTime;->resolveOffset(Ljava/time/ZoneOffset;)Ljava/time/ZonedDateTime;
+Ljava/time/ZonedDateTime;->writeExternal(Ljava/io/DataOutput;)V
+Ljava/time/ZonedDateTime;->zone:Ljava/time/ZoneId;
+Ljava/time/ZoneId;-><init>()V
+Ljava/time/ZoneId;->ofWithPrefix(Ljava/lang/String;IZ)Ljava/time/ZoneId;
+Ljava/time/ZoneId;->toTemporal()Ljava/time/temporal/TemporalAccessor;
+Ljava/time/ZoneId;->write(Ljava/io/DataOutput;)V
+Ljava/time/ZoneOffset;-><init>(I)V
+Ljava/time/ZoneOffset;->buildId(I)Ljava/lang/String;
+Ljava/time/ZoneOffset;->id:Ljava/lang/String;
+Ljava/time/ZoneOffset;->ID_CACHE:Ljava/util/concurrent/ConcurrentMap;
+Ljava/time/ZoneOffset;->MAX_SECONDS:I
+Ljava/time/ZoneOffset;->parseNumber(Ljava/lang/CharSequence;IZ)I
+Ljava/time/ZoneOffset;->readExternal(Ljava/io/DataInput;)Ljava/time/ZoneOffset;
+Ljava/time/ZoneOffset;->SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;
+Ljava/time/ZoneOffset;->totalSeconds(III)I
+Ljava/time/ZoneOffset;->totalSeconds:I
+Ljava/time/ZoneOffset;->validate(III)V
+Ljava/time/ZoneOffset;->write(Ljava/io/DataOutput;)V
+Ljava/time/ZoneOffset;->writeExternal(Ljava/io/DataOutput;)V
+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;
+Ljava/util/AbstractMap$SimpleEntry;->value:Ljava/lang/Object;
+Ljava/util/AbstractMap$SimpleImmutableEntry;->key:Ljava/lang/Object;
+Ljava/util/AbstractMap$SimpleImmutableEntry;->value:Ljava/lang/Object;
+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
+Ljava/util/ArrayDeque$DeqSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+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
+Ljava/util/ArrayDeque;->allocateElements(I)V
+Ljava/util/ArrayDeque;->checkInvariants()V
+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
+Ljava/util/ArrayList$ArrayListSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+Ljava/util/ArrayList$ArrayListSpliterator;->getFence()I
+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;
+Ljava/util/ArrayList;->DEFAULT_CAPACITY:I
+Ljava/util/ArrayList;->EMPTY_ELEMENTDATA:[Ljava/lang/Object;
+Ljava/util/ArrayList;->ensureCapacityInternal(I)V
+Ljava/util/ArrayList;->ensureExplicitCapacity(I)V
+Ljava/util/ArrayList;->fastRemove(I)V
+Ljava/util/ArrayList;->grow(I)V
+Ljava/util/ArrayList;->hugeCapacity(I)I
+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;
+Ljava/util/Arrays;-><init>()V
+Ljava/util/Arrays;->binarySearch0([BIIB)I
+Ljava/util/Arrays;->binarySearch0([CIIC)I
+Ljava/util/Arrays;->binarySearch0([DIID)I
+Ljava/util/Arrays;->binarySearch0([FIIF)I
+Ljava/util/Arrays;->binarySearch0([IIII)I
+Ljava/util/Arrays;->binarySearch0([JIIJ)I
+Ljava/util/Arrays;->binarySearch0([Ljava/lang/Object;IILjava/lang/Object;)I
+Ljava/util/Arrays;->binarySearch0([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
+Ljava/util/Arrays;->binarySearch0([SIIS)I
+Ljava/util/Arrays;->deepEquals0(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/Arrays;->INSERTIONSORT_THRESHOLD:I
+Ljava/util/Arrays;->mergeSort([Ljava/lang/Object;[Ljava/lang/Object;III)V
+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
+Ljava/util/Base64$DecInputStream;->closed:Z
+Ljava/util/Base64$DecInputStream;->eof:Z
+Ljava/util/Base64$DecInputStream;->is:Ljava/io/InputStream;
+Ljava/util/Base64$DecInputStream;->isMIME:Z
+Ljava/util/Base64$DecInputStream;->nextin:I
+Ljava/util/Base64$DecInputStream;->nextout:I
+Ljava/util/Base64$DecInputStream;->sbBuf:[B
+Ljava/util/Base64$Decoder;-><init>(ZZ)V
+Ljava/util/Base64$Decoder;->decode0([BII[B)I
+Ljava/util/Base64$Decoder;->fromBase64:[I
+Ljava/util/Base64$Decoder;->fromBase64URL:[I
+Ljava/util/Base64$Decoder;->isMIME:Z
+Ljava/util/Base64$Decoder;->isURL:Z
+Ljava/util/Base64$Decoder;->outLength([BII)I
+Ljava/util/Base64$Decoder;->RFC2045:Ljava/util/Base64$Decoder;
+Ljava/util/Base64$Decoder;->RFC4648:Ljava/util/Base64$Decoder;
+Ljava/util/Base64$Decoder;->RFC4648_URLSAFE:Ljava/util/Base64$Decoder;
+Ljava/util/Base64$Encoder;-><init>(Z[BIZ)V
+Ljava/util/Base64$Encoder;->CRLF:[B
+Ljava/util/Base64$Encoder;->doPadding:Z
+Ljava/util/Base64$Encoder;->encode0([BII[B)I
+Ljava/util/Base64$Encoder;->isURL:Z
+Ljava/util/Base64$Encoder;->linemax:I
+Ljava/util/Base64$Encoder;->MIMELINEMAX:I
+Ljava/util/Base64$Encoder;->newline:[B
+Ljava/util/Base64$Encoder;->outLength(I)I
+Ljava/util/Base64$Encoder;->RFC2045:Ljava/util/Base64$Encoder;
+Ljava/util/Base64$Encoder;->RFC4648:Ljava/util/Base64$Encoder;
+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
+Ljava/util/Base64$EncOutputStream;->b2:I
+Ljava/util/Base64$EncOutputStream;->base64:[C
+Ljava/util/Base64$EncOutputStream;->checkNewline()V
+Ljava/util/Base64$EncOutputStream;->closed:Z
+Ljava/util/Base64$EncOutputStream;->doPadding:Z
+Ljava/util/Base64$EncOutputStream;->leftover:I
+Ljava/util/Base64$EncOutputStream;->linemax:I
+Ljava/util/Base64$EncOutputStream;->linepos:I
+Ljava/util/Base64$EncOutputStream;->newline:[B
+Ljava/util/Base64;-><init>()V
+Ljava/util/BitSet;-><init>([J)V
+Ljava/util/BitSet;->ADDRESS_BITS_PER_WORD:I
+Ljava/util/BitSet;->BITS_PER_WORD:I
+Ljava/util/BitSet;->BIT_INDEX_MASK:I
+Ljava/util/BitSet;->checkInvariants()V
+Ljava/util/BitSet;->checkRange(II)V
+Ljava/util/BitSet;->ensureCapacity(I)V
+Ljava/util/BitSet;->expandTo(I)V
+Ljava/util/BitSet;->initWords(I)V
+Ljava/util/BitSet;->recalculateWordsInUse()V
+Ljava/util/BitSet;->sizeIsSticky:Z
+Ljava/util/BitSet;->trimToSize()V
+Ljava/util/BitSet;->wordIndex(I)I
+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
+Ljava/util/Calendar$Builder;->fields:[I
+Ljava/util/Calendar$Builder;->firstDayOfWeek:I
+Ljava/util/Calendar$Builder;->instant:J
+Ljava/util/Calendar$Builder;->internalSet(II)V
+Ljava/util/Calendar$Builder;->isInstantSet()Z
+Ljava/util/Calendar$Builder;->isSet(I)Z
+Ljava/util/Calendar$Builder;->isValidWeekParameter(I)Z
+Ljava/util/Calendar$Builder;->lenient:Z
+Ljava/util/Calendar$Builder;->locale:Ljava/util/Locale;
+Ljava/util/Calendar$Builder;->maxFieldIndex:I
+Ljava/util/Calendar$Builder;->minimalDaysInFirstWeek:I
+Ljava/util/Calendar$Builder;->nextStamp:I
+Ljava/util/Calendar$Builder;->NFIELDS:I
+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
+Ljava/util/Calendar;->aggregateStamp(II)I
+Ljava/util/Calendar;->ALL_FIELDS:I
+Ljava/util/Calendar;->AM_PM_MASK:I
+Ljava/util/Calendar;->appendValue(Ljava/lang/StringBuilder;Ljava/lang/String;ZJ)V
+Ljava/util/Calendar;->areAllFieldsSet:Z
+Ljava/util/Calendar;->cachedLocaleData:Ljava/util/concurrent/ConcurrentMap;
+Ljava/util/Calendar;->checkDisplayNameParams(IIIILjava/util/Locale;I)Z
+Ljava/util/Calendar;->compareTo(J)I
+Ljava/util/Calendar;->COMPUTED:I
+Ljava/util/Calendar;->createCalendar(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
+Ljava/util/Calendar;->currentSerialVersion:I
+Ljava/util/Calendar;->DATE_MASK:I
+Ljava/util/Calendar;->DAY_OF_MONTH_MASK:I
+Ljava/util/Calendar;->DAY_OF_WEEK_IN_MONTH_MASK:I
+Ljava/util/Calendar;->DAY_OF_WEEK_MASK:I
+Ljava/util/Calendar;->DAY_OF_YEAR_MASK:I
+Ljava/util/Calendar;->DST_OFFSET_MASK:I
+Ljava/util/Calendar;->ERA_MASK:I
+Ljava/util/Calendar;->FIELD_NAME:[Ljava/lang/String;
+Ljava/util/Calendar;->firstDayOfWeek:I
+Ljava/util/Calendar;->getBaseStyle(I)I
+Ljava/util/Calendar;->getDisplayNamesImpl(IILjava/util/Locale;)Ljava/util/Map;
+Ljava/util/Calendar;->getFieldName(I)Ljava/lang/String;
+Ljava/util/Calendar;->getFieldStrings(IILjava/text/DateFormatSymbols;)[Ljava/lang/String;
+Ljava/util/Calendar;->getJapaneseImperialInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
+Ljava/util/Calendar;->getMillisOf(Ljava/util/Calendar;)J
+Ljava/util/Calendar;->getSetStateFields()I
+Ljava/util/Calendar;->getZone()Ljava/util/TimeZone;
+Ljava/util/Calendar;->HOUR_MASK:I
+Ljava/util/Calendar;->HOUR_OF_DAY_MASK:I
+Ljava/util/Calendar;->internalSet(II)V
+Ljava/util/Calendar;->invalidateWeekFields()V
+Ljava/util/Calendar;->isExternallySet(I)Z
+Ljava/util/Calendar;->isFieldSet(II)Z
+Ljava/util/Calendar;->isFullyNormalized()Z
+Ljava/util/Calendar;->isNarrowFormatStyle(I)Z
+Ljava/util/Calendar;->isNarrowStyle(I)Z
+Ljava/util/Calendar;->isPartiallyNormalized()Z
+Ljava/util/Calendar;->isStandaloneStyle(I)Z
+Ljava/util/Calendar;->lenient:Z
+Ljava/util/Calendar;->MILLISECOND_MASK:I
+Ljava/util/Calendar;->minimalDaysInFirstWeek:I
+Ljava/util/Calendar;->MINIMUM_USER_STAMP:I
+Ljava/util/Calendar;->MINUTE_MASK:I
+Ljava/util/Calendar;->MONTH_MASK:I
+Ljava/util/Calendar;->nextStamp:I
+Ljava/util/Calendar;->SECOND_MASK:I
+Ljava/util/Calendar;->selectFields()I
+Ljava/util/Calendar;->serialVersionOnStream:I
+Ljava/util/Calendar;->setFieldsComputed(I)V
+Ljava/util/Calendar;->setFieldsNormalized(I)V
+Ljava/util/Calendar;->setUnnormalized()V
+Ljava/util/Calendar;->setWeekCountData(Ljava/util/Locale;)V
+Ljava/util/Calendar;->setZoneShared(Z)V
+Ljava/util/Calendar;->sharedZone:Z
+Ljava/util/Calendar;->stamp:[I
+Ljava/util/Calendar;->STANDALONE_MASK:I
+Ljava/util/Calendar;->toStandaloneStyle(I)I
+Ljava/util/Calendar;->UNSET:I
+Ljava/util/Calendar;->updateTime()V
+Ljava/util/Calendar;->WEEK_OF_MONTH_MASK:I
+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;
+Ljava/util/Collections$CheckedCollection;->checkedCopyOf(Ljava/util/Collection;)Ljava/util/Collection;
+Ljava/util/Collections$CheckedCollection;->forEach(Ljava/util/function/Consumer;)V
+Ljava/util/Collections$CheckedCollection;->type:Ljava/lang/Class;
+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
+Ljava/util/Collections$CheckedMap$CheckedEntrySet;->batchRemove(Ljava/util/Collection;Z)Z
+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;
+Ljava/util/Collections$CheckedMap;->entrySet:Ljava/util/Set;
+Ljava/util/Collections$CheckedMap;->keyType:Ljava/lang/Class;
+Ljava/util/Collections$CheckedMap;->m:Ljava/util/Map;
+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
+Ljava/util/Collections;->BINARYSEARCH_THRESHOLD:I
+Ljava/util/Collections;->COPY_THRESHOLD:I
+Ljava/util/Collections;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/Collections;->FILL_THRESHOLD:I
+Ljava/util/Collections;->get(Ljava/util/ListIterator;I)Ljava/lang/Object;
+Ljava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;)I
+Ljava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
+Ljava/util/Collections;->INDEXOFSUBLIST_THRESHOLD:I
+Ljava/util/Collections;->iteratorBinarySearch(Ljava/util/List;Ljava/lang/Object;)I
+Ljava/util/Collections;->iteratorBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
+Ljava/util/Collections;->r:Ljava/util/Random;
+Ljava/util/Collections;->REPLACEALL_THRESHOLD:I
+Ljava/util/Collections;->REVERSE_THRESHOLD:I
+Ljava/util/Collections;->rotate1(Ljava/util/List;I)V
+Ljava/util/Collections;->rotate2(Ljava/util/List;I)V
+Ljava/util/Collections;->ROTATE_THRESHOLD:I
+Ljava/util/Collections;->SHUFFLE_THRESHOLD:I
+Ljava/util/Collections;->singletonIterator(Ljava/lang/Object;)Ljava/util/Iterator;
+Ljava/util/Collections;->singletonSpliterator(Ljava/lang/Object;)Ljava/util/Spliterator;
+Ljava/util/Collections;->swap([Ljava/lang/Object;II)V
+Ljava/util/Collections;->synchronizedCollection(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/Collection;
+Ljava/util/Collections;->synchronizedList(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;
+Ljava/util/Collections;->synchronizedSet(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set;
+Ljava/util/Collections;->zeroLengthArray(Ljava/lang/Class;)[Ljava/lang/Object;
+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
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->distance(III)I
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->incCursor(I)I
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->incorporateDequeues()V
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->invalidated(IIJI)Z
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->isDetached()Z
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->lastItem:Ljava/lang/Object;
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->lastRet:I
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->nextIndex:I
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->nextItem:Ljava/lang/Object;
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->NONE:I
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->noNext()V
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->prevCycles:I
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->prevTakeIndex:I
+Ljava/util/concurrent/ArrayBlockingQueue$Itr;->REMOVED:I
+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
+Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->head:Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;
+Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->LONG_SWEEP_PROBES:I
+Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->queueIsEmpty()V
+Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->register(Ljava/util/concurrent/ArrayBlockingQueue$Itr;)V
+Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->removedAt(I)V
+Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->SHORT_SWEEP_PROBES:I
+Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->sweeper:Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;
+Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->takeIndexWrapped()V
+Ljava/util/concurrent/ArrayBlockingQueue;->count:I
+Ljava/util/concurrent/ArrayBlockingQueue;->dec(I)I
+Ljava/util/concurrent/ArrayBlockingQueue;->dequeue()Ljava/lang/Object;
+Ljava/util/concurrent/ArrayBlockingQueue;->enqueue(Ljava/lang/Object;)V
+Ljava/util/concurrent/ArrayBlockingQueue;->itemAt(I)Ljava/lang/Object;
+Ljava/util/concurrent/ArrayBlockingQueue;->items:[Ljava/lang/Object;
+Ljava/util/concurrent/ArrayBlockingQueue;->itrs:Ljava/util/concurrent/ArrayBlockingQueue$Itrs;
+Ljava/util/concurrent/ArrayBlockingQueue;->lock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/ArrayBlockingQueue;->notEmpty:Ljava/util/concurrent/locks/Condition;
+Ljava/util/concurrent/ArrayBlockingQueue;->notFull:Ljava/util/concurrent/locks/Condition;
+Ljava/util/concurrent/ArrayBlockingQueue;->putIndex:I
+Ljava/util/concurrent/ArrayBlockingQueue;->removeAt(I)V
+Ljava/util/concurrent/ArrayBlockingQueue;->takeIndex:I
+Ljava/util/concurrent/atomic/AtomicBoolean;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/atomic/AtomicBoolean;->value:I
+Ljava/util/concurrent/atomic/AtomicBoolean;->VALUE:J
+Ljava/util/concurrent/atomic/AtomicInteger;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/atomic/AtomicInteger;->VALUE:J
+Ljava/util/concurrent/atomic/AtomicIntegerArray;->ABASE:I
+Ljava/util/concurrent/atomic/AtomicIntegerArray;->array:[I
+Ljava/util/concurrent/atomic/AtomicIntegerArray;->ASHIFT:I
+Ljava/util/concurrent/atomic/AtomicIntegerArray;->byteOffset(I)J
+Ljava/util/concurrent/atomic/AtomicIntegerArray;->checkedByteOffset(I)J
+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;
+Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->offset:J
+Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->tclass:Ljava/lang/Class;
+Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->throwAccessCheckException(Ljava/lang/Object;)V
+Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/atomic/AtomicLong;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/atomic/AtomicLong;->VALUE:J
+Ljava/util/concurrent/atomic/AtomicLong;->value:J
+Ljava/util/concurrent/atomic/AtomicLong;->VMSupportsCS8()Z
+Ljava/util/concurrent/atomic/AtomicLong;->VM_SUPPORTS_LONG_CAS:Z
+Ljava/util/concurrent/atomic/AtomicLongArray;->ABASE:I
+Ljava/util/concurrent/atomic/AtomicLongArray;->array:[J
+Ljava/util/concurrent/atomic/AtomicLongArray;->ASHIFT:I
+Ljava/util/concurrent/atomic/AtomicLongArray;->byteOffset(I)J
+Ljava/util/concurrent/atomic/AtomicLongArray;->checkedByteOffset(I)J
+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;
+Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->offset:J
+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;
+Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->cclass:Ljava/lang/Class;
+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;
+Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;->reference:Ljava/lang/Object;
+Ljava/util/concurrent/atomic/AtomicMarkableReference;->casPair(Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;)Z
+Ljava/util/concurrent/atomic/AtomicMarkableReference;->PAIR:J
+Ljava/util/concurrent/atomic/AtomicMarkableReference;->pair:Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;
+Ljava/util/concurrent/atomic/AtomicMarkableReference;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/atomic/AtomicReference;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/atomic/AtomicReference;->VALUE:J
+Ljava/util/concurrent/atomic/AtomicReference;->value:Ljava/lang/Object;
+Ljava/util/concurrent/atomic/AtomicReferenceArray;->ABASE:I
+Ljava/util/concurrent/atomic/AtomicReferenceArray;->ARRAY:J
+Ljava/util/concurrent/atomic/AtomicReferenceArray;->array:[Ljava/lang/Object;
+Ljava/util/concurrent/atomic/AtomicReferenceArray;->ASHIFT:I
+Ljava/util/concurrent/atomic/AtomicReferenceArray;->byteOffset(I)J
+Ljava/util/concurrent/atomic/AtomicReferenceArray;->checkedByteOffset(I)J
+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;
+Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->offset:J
+Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->tclass:Ljava/lang/Class;
+Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->throwAccessCheckException(Ljava/lang/Object;)V
+Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->throwCCE()V
+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;
+Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;->stamp:I
+Ljava/util/concurrent/atomic/AtomicStampedReference;->casPair(Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;)Z
+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
+Ljava/util/concurrent/atomic/Striped64$Cell;->reset(J)V
+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
+Ljava/util/concurrent/atomic/Striped64;->BASE:J
+Ljava/util/concurrent/atomic/Striped64;->base:J
+Ljava/util/concurrent/atomic/Striped64;->casBase(JJ)Z
+Ljava/util/concurrent/atomic/Striped64;->casCellsBusy()Z
+Ljava/util/concurrent/atomic/Striped64;->cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
+Ljava/util/concurrent/atomic/Striped64;->cellsBusy:I
+Ljava/util/concurrent/atomic/Striped64;->CELLSBUSY:J
+Ljava/util/concurrent/atomic/Striped64;->doubleAccumulate(DLjava/util/function/DoubleBinaryOperator;Z)V
+Ljava/util/concurrent/atomic/Striped64;->getProbe()I
+Ljava/util/concurrent/atomic/Striped64;->longAccumulate(JLjava/util/function/LongBinaryOperator;Z)V
+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;
+Ljava/util/concurrent/CompletableFuture$MinimalStage;->completeAsync(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
+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
+Ljava/util/concurrent/CompletableFuture$Signaller;->interruptible:Z
+Ljava/util/concurrent/CompletableFuture$Signaller;->isLive()Z
+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;
+Ljava/util/concurrent/CompletableFuture;-><init>(Ljava/lang/Object;)V
+Ljava/util/concurrent/CompletableFuture;->andTree([Ljava/util/concurrent/CompletableFuture;II)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->ASYNC:I
+Ljava/util/concurrent/CompletableFuture;->asyncRunStage(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->asyncSupplyStage(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->ASYNC_POOL:Ljava/util/concurrent/Executor;
+Ljava/util/concurrent/CompletableFuture;->biAccept(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture$BiAccept;)Z
+Ljava/util/concurrent/CompletableFuture;->biAcceptStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->biApply(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;Ljava/util/concurrent/CompletableFuture$BiApply;)Z
+Ljava/util/concurrent/CompletableFuture;->biApplyStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->bipush(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture$BiCompletion;)V
+Ljava/util/concurrent/CompletableFuture;->biRelay(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)Z
+Ljava/util/concurrent/CompletableFuture;->biRun(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;Ljava/util/concurrent/CompletableFuture$BiRun;)Z
+Ljava/util/concurrent/CompletableFuture;->biRunStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->casStack(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)Z
+Ljava/util/concurrent/CompletableFuture;->cleanStack()V
+Ljava/util/concurrent/CompletableFuture;->completeAsync(Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->completeAsync(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->completedStage(Ljava/lang/Object;)Ljava/util/concurrent/CompletionStage;
+Ljava/util/concurrent/CompletableFuture;->completeNull()Z
+Ljava/util/concurrent/CompletableFuture;->completeOnTimeout(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->completeRelay(Ljava/lang/Object;)Z
+Ljava/util/concurrent/CompletableFuture;->completeThrowable(Ljava/lang/Throwable;)Z
+Ljava/util/concurrent/CompletableFuture;->completeThrowable(Ljava/lang/Throwable;Ljava/lang/Object;)Z
+Ljava/util/concurrent/CompletableFuture;->completeValue(Ljava/lang/Object;)Z
+Ljava/util/concurrent/CompletableFuture;->copy()Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->defaultExecutor()Ljava/util/concurrent/Executor;
+Ljava/util/concurrent/CompletableFuture;->delayedExecutor(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Executor;
+Ljava/util/concurrent/CompletableFuture;->delayedExecutor(JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/Executor;
+Ljava/util/concurrent/CompletableFuture;->encodeOutcome(Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;
+Ljava/util/concurrent/CompletableFuture;->encodeRelay(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/CompletableFuture;->encodeThrowable(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture$AltResult;
+Ljava/util/concurrent/CompletableFuture;->encodeThrowable(Ljava/lang/Throwable;Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/CompletableFuture;->encodeValue(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/CompletableFuture;->failedFuture(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->failedStage(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletionStage;
+Ljava/util/concurrent/CompletableFuture;->internalComplete(Ljava/lang/Object;)Z
+Ljava/util/concurrent/CompletableFuture;->lazySetNext(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)V
+Ljava/util/concurrent/CompletableFuture;->minimalCompletionStage()Ljava/util/concurrent/CompletionStage;
+Ljava/util/concurrent/CompletableFuture;->NESTED:I
+Ljava/util/concurrent/CompletableFuture;->newIncompleteFuture()Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->NEXT:J
+Ljava/util/concurrent/CompletableFuture;->NIL:Ljava/util/concurrent/CompletableFuture$AltResult;
+Ljava/util/concurrent/CompletableFuture;->orAccept(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;Ljava/util/concurrent/CompletableFuture$OrAccept;)Z
+Ljava/util/concurrent/CompletableFuture;->orAcceptStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->orApply(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;Ljava/util/concurrent/CompletableFuture$OrApply;)Z
+Ljava/util/concurrent/CompletableFuture;->orApplyStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->orpush(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture$BiCompletion;)V
+Ljava/util/concurrent/CompletableFuture;->orRelay(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)Z
+Ljava/util/concurrent/CompletableFuture;->orRun(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;Ljava/util/concurrent/CompletableFuture$OrRun;)Z
+Ljava/util/concurrent/CompletableFuture;->orRunStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->orTimeout(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->orTree([Ljava/util/concurrent/CompletableFuture;II)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->postComplete()V
+Ljava/util/concurrent/CompletableFuture;->postFire(Ljava/util/concurrent/CompletableFuture;I)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->postFire(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;I)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->push(Ljava/util/concurrent/CompletableFuture$UniCompletion;)V
+Ljava/util/concurrent/CompletableFuture;->pushStack(Ljava/util/concurrent/CompletableFuture$Completion;)V
+Ljava/util/concurrent/CompletableFuture;->reportGet(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/CompletableFuture;->reportJoin(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/CompletableFuture;->RESULT:J
+Ljava/util/concurrent/CompletableFuture;->result:Ljava/lang/Object;
+Ljava/util/concurrent/CompletableFuture;->screenExecutor(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/Executor;
+Ljava/util/concurrent/CompletableFuture;->SPINS:I
+Ljava/util/concurrent/CompletableFuture;->STACK:J
+Ljava/util/concurrent/CompletableFuture;->stack:Ljava/util/concurrent/CompletableFuture$Completion;
+Ljava/util/concurrent/CompletableFuture;->SYNC:I
+Ljava/util/concurrent/CompletableFuture;->timedGet(J)Ljava/lang/Object;
+Ljava/util/concurrent/CompletableFuture;->tryPushStack(Ljava/util/concurrent/CompletableFuture$Completion;)Z
+Ljava/util/concurrent/CompletableFuture;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/CompletableFuture;->uniAccept(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;Ljava/util/concurrent/CompletableFuture$UniAccept;)Z
+Ljava/util/concurrent/CompletableFuture;->uniAcceptStage(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->uniApply(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;Ljava/util/concurrent/CompletableFuture$UniApply;)Z
+Ljava/util/concurrent/CompletableFuture;->uniApplyStage(Ljava/util/concurrent/Executor;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->uniAsMinimalStage()Ljava/util/concurrent/CompletableFuture$MinimalStage;
+Ljava/util/concurrent/CompletableFuture;->uniCompose(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;Ljava/util/concurrent/CompletableFuture$UniCompose;)Z
+Ljava/util/concurrent/CompletableFuture;->uniComposeStage(Ljava/util/concurrent/Executor;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->uniCopyStage()Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->uniExceptionally(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;Ljava/util/concurrent/CompletableFuture$UniExceptionally;)Z
+Ljava/util/concurrent/CompletableFuture;->uniExceptionallyStage(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->uniHandle(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;Ljava/util/concurrent/CompletableFuture$UniHandle;)Z
+Ljava/util/concurrent/CompletableFuture;->uniHandleStage(Ljava/util/concurrent/Executor;Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->uniRelay(Ljava/util/concurrent/CompletableFuture;)Z
+Ljava/util/concurrent/CompletableFuture;->uniRun(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;Ljava/util/concurrent/CompletableFuture$UniRun;)Z
+Ljava/util/concurrent/CompletableFuture;->uniRunStage(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
+Ljava/util/concurrent/CompletableFuture;->uniWhenComplete(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture$UniWhenComplete;)Z
+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
+Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->baseLimit:I
+Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->baseSize:I
+Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->batch:I
+Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->index:I
+Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->next:Ljava/util/concurrent/ConcurrentHashMap$Node;
+Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->pushState([Ljava/util/concurrent/ConcurrentHashMap$Node;II)V
+Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->recoverState(I)V
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->reducer:Ljava/util/function/DoubleBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->reducer:Ljava/util/function/IntBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->reducer:Ljava/util/function/LongBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->reducer:Ljava/util/function/DoubleBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->reducer:Ljava/util/function/IntBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->reducer:Ljava/util/function/LongBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->reducer:Ljava/util/function/DoubleBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->reducer:Ljava/util/function/IntBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->reducer:Ljava/util/function/LongBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->reducer:Ljava/util/function/DoubleBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->reducer:Ljava/util/function/IntBinaryOperator;
+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;
+Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->reducer:Ljava/util/function/LongBinaryOperator;
+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
+Ljava/util/concurrent/ConcurrentHashMap$Traverser;->baseLimit:I
+Ljava/util/concurrent/ConcurrentHashMap$Traverser;->baseSize:I
+Ljava/util/concurrent/ConcurrentHashMap$Traverser;->index:I
+Ljava/util/concurrent/ConcurrentHashMap$Traverser;->next:Ljava/util/concurrent/ConcurrentHashMap$Node;
+Ljava/util/concurrent/ConcurrentHashMap$Traverser;->pushState([Ljava/util/concurrent/ConcurrentHashMap$Node;II)V
+Ljava/util/concurrent/ConcurrentHashMap$Traverser;->recoverState(I)V
+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;
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->checkInvariants(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Z
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->contendedLock()V
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->first:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->lockRoot()V
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->lockState:I
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->LOCKSTATE:J
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->putTreeVal(ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->READER:I
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->removeTreeNode(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Z
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->root:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->rotateLeft(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->rotateRight(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->tieBreakOrder(Ljava/lang/Object;Ljava/lang/Object;)I
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->unlockRoot()V
+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;
+Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->left:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->parent:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+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
+Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->forEach(Ljava/util/function/Consumer;)V
+Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->removeIf(Ljava/util/function/Predicate;)Z
+Ljava/util/concurrent/ConcurrentHashMap;->ABASE:I
+Ljava/util/concurrent/ConcurrentHashMap;->addCount(JI)V
+Ljava/util/concurrent/ConcurrentHashMap;->ASHIFT:I
+Ljava/util/concurrent/ConcurrentHashMap;->BASECOUNT:J
+Ljava/util/concurrent/ConcurrentHashMap;->baseCount:J
+Ljava/util/concurrent/ConcurrentHashMap;->batchFor(J)I
+Ljava/util/concurrent/ConcurrentHashMap;->casTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)Z
+Ljava/util/concurrent/ConcurrentHashMap;->cellsBusy:I
+Ljava/util/concurrent/ConcurrentHashMap;->CELLSBUSY:J
+Ljava/util/concurrent/ConcurrentHashMap;->CELLVALUE:J
+Ljava/util/concurrent/ConcurrentHashMap;->comparableClassFor(Ljava/lang/Object;)Ljava/lang/Class;
+Ljava/util/concurrent/ConcurrentHashMap;->compareComparables(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;)I
+Ljava/util/concurrent/ConcurrentHashMap;->counterCells:[Ljava/util/concurrent/ConcurrentHashMap$CounterCell;
+Ljava/util/concurrent/ConcurrentHashMap;->DEFAULT_CAPACITY:I
+Ljava/util/concurrent/ConcurrentHashMap;->DEFAULT_CONCURRENCY_LEVEL:I
+Ljava/util/concurrent/ConcurrentHashMap;->entrySet:Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;
+Ljava/util/concurrent/ConcurrentHashMap;->fullAddCount(JZ)V
+Ljava/util/concurrent/ConcurrentHashMap;->HASH_BITS:I
+Ljava/util/concurrent/ConcurrentHashMap;->helpTransfer([Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)[Ljava/util/concurrent/ConcurrentHashMap$Node;
+Ljava/util/concurrent/ConcurrentHashMap;->initTable()[Ljava/util/concurrent/ConcurrentHashMap$Node;
+Ljava/util/concurrent/ConcurrentHashMap;->keySet:Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
+Ljava/util/concurrent/ConcurrentHashMap;->LOAD_FACTOR:F
+Ljava/util/concurrent/ConcurrentHashMap;->MAXIMUM_CAPACITY:I
+Ljava/util/concurrent/ConcurrentHashMap;->MAX_ARRAY_SIZE:I
+Ljava/util/concurrent/ConcurrentHashMap;->MAX_RESIZERS:I
+Ljava/util/concurrent/ConcurrentHashMap;->MIN_TRANSFER_STRIDE:I
+Ljava/util/concurrent/ConcurrentHashMap;->MIN_TREEIFY_CAPACITY:I
+Ljava/util/concurrent/ConcurrentHashMap;->MOVED:I
+Ljava/util/concurrent/ConcurrentHashMap;->NCPU:I
+Ljava/util/concurrent/ConcurrentHashMap;->nextTable:[Ljava/util/concurrent/ConcurrentHashMap$Node;
+Ljava/util/concurrent/ConcurrentHashMap;->putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentHashMap;->removeEntryIf(Ljava/util/function/Predicate;)Z
+Ljava/util/concurrent/ConcurrentHashMap;->removeValueIf(Ljava/util/function/Predicate;)Z
+Ljava/util/concurrent/ConcurrentHashMap;->replaceNode(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentHashMap;->RESERVED:I
+Ljava/util/concurrent/ConcurrentHashMap;->resizeStamp(I)I
+Ljava/util/concurrent/ConcurrentHashMap;->RESIZE_STAMP_BITS:I
+Ljava/util/concurrent/ConcurrentHashMap;->RESIZE_STAMP_SHIFT:I
+Ljava/util/concurrent/ConcurrentHashMap;->setTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;)V
+Ljava/util/concurrent/ConcurrentHashMap;->sizeCtl:I
+Ljava/util/concurrent/ConcurrentHashMap;->SIZECTL:J
+Ljava/util/concurrent/ConcurrentHashMap;->spread(I)I
+Ljava/util/concurrent/ConcurrentHashMap;->sumCount()J
+Ljava/util/concurrent/ConcurrentHashMap;->tabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node;
+Ljava/util/concurrent/ConcurrentHashMap;->table:[Ljava/util/concurrent/ConcurrentHashMap$Node;
+Ljava/util/concurrent/ConcurrentHashMap;->tableSizeFor(I)I
+Ljava/util/concurrent/ConcurrentHashMap;->transfer([Ljava/util/concurrent/ConcurrentHashMap$Node;[Ljava/util/concurrent/ConcurrentHashMap$Node;)V
+Ljava/util/concurrent/ConcurrentHashMap;->transferIndex:I
+Ljava/util/concurrent/ConcurrentHashMap;->TRANSFERINDEX:J
+Ljava/util/concurrent/ConcurrentHashMap;->TREEBIN:I
+Ljava/util/concurrent/ConcurrentHashMap;->treeifyBin([Ljava/util/concurrent/ConcurrentHashMap$Node;I)V
+Ljava/util/concurrent/ConcurrentHashMap;->TREEIFY_THRESHOLD:I
+Ljava/util/concurrent/ConcurrentHashMap;->tryPresize(I)V
+Ljava/util/concurrent/ConcurrentHashMap;->U:Lsun/misc/Unsafe;
+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;
+Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->exhausted:Z
+Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+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
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->casNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->casPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->ITEM:J
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->item:Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->NEXT:J
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->next:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->PREV:J
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->prev:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->casHead(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+Ljava/util/concurrent/ConcurrentLinkedDeque;->casTail(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+Ljava/util/concurrent/ConcurrentLinkedDeque;->first()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->HEAD:J
+Ljava/util/concurrent/ConcurrentLinkedDeque;->head:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->HOPS:I
+Ljava/util/concurrent/ConcurrentLinkedDeque;->initHeadTail(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque;->last()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->linkFirst(Ljava/lang/Object;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque;->linkLast(Ljava/lang/Object;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque;->nextTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->NEXT_TERMINATOR:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->pred(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->prevTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->PREV_TERMINATOR:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->screenNullResult(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedPredecessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedSuccessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque;->succ(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->TAIL:J
+Ljava/util/concurrent/ConcurrentLinkedDeque;->tail:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/ConcurrentLinkedDeque;->unlink(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+Ljava/util/concurrent/ConcurrentLinkedDeque;->unlinkFirst(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+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;
+Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->exhausted:Z
+Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+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;
+Ljava/util/concurrent/ConcurrentLinkedQueue;->casHead(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
+Ljava/util/concurrent/ConcurrentLinkedQueue;->casItem(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/concurrent/ConcurrentLinkedQueue;->casNext(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
+Ljava/util/concurrent/ConcurrentLinkedQueue;->casTail(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
+Ljava/util/concurrent/ConcurrentLinkedQueue;->first()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
+Ljava/util/concurrent/ConcurrentLinkedQueue;->HEAD:J
+Ljava/util/concurrent/ConcurrentLinkedQueue;->head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
+Ljava/util/concurrent/ConcurrentLinkedQueue;->ITEM:J
+Ljava/util/concurrent/ConcurrentLinkedQueue;->lazySetNext(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
+Ljava/util/concurrent/ConcurrentLinkedQueue;->newNode(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
+Ljava/util/concurrent/ConcurrentLinkedQueue;->NEXT:J
+Ljava/util/concurrent/ConcurrentLinkedQueue;->succ(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
+Ljava/util/concurrent/ConcurrentLinkedQueue;->TAIL:J
+Ljava/util/concurrent/ConcurrentLinkedQueue;->tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
+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;
+Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->est:I
+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;
+Ljava/util/concurrent/ConcurrentSkipListMap$Index;->indexesDeletedNode()Z
+Ljava/util/concurrent/ConcurrentSkipListMap$Index;->link(Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
+Ljava/util/concurrent/ConcurrentSkipListMap$Index;->node:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap$Index;->RIGHT:J
+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;
+Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->headSet(Ljava/lang/Object;)Ljava/util/NavigableSet;
+Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->headSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;
+Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->higher(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->lower(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->m:Ljava/util/concurrent/ConcurrentNavigableMap;
+Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->subSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/NavigableSet;
+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
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->casNext(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)Z
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->casValue(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->createSnapshot()Ljava/util/AbstractMap$SimpleImmutableEntry;
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->getValidValue()Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->helpDelete(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->isBaseHeader()Z
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->isMarker()Z
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->key:Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->NEXT:J
+Ljava/util/concurrent/ConcurrentSkipListMap$Node;->next:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+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;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->getNearEntry(Ljava/lang/Object;I)Ljava/util/Map$Entry;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->getNearKey(Ljava/lang/Object;I)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->hi:Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->highestEntry()Ljava/util/Map$Entry;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->highestKey()Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->hiInclusive:Z
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->hiNode(Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->inBounds(Ljava/lang/Object;Ljava/util/Comparator;)Z
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->isBeforeEnd(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/Comparator;)Z
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->isDescending:Z
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->keySetView:Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->lo:Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->loInclusive:Z
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->loNode(Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->lowestEntry()Ljava/util/Map$Entry;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->lowestKey()Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->m:Ljava/util/concurrent/ConcurrentSkipListMap;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->newSubMap(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->removeHighest()Ljava/util/Map$Entry;
+Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->removeLowest()Ljava/util/Map$Entry;
+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
+Ljava/util/concurrent/ConcurrentSkipListMap;->BASE_HEADER:Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap;->buildFromSorted(Ljava/util/SortedMap;)V
+Ljava/util/concurrent/ConcurrentSkipListMap;->casHead(Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;)Z
+Ljava/util/concurrent/ConcurrentSkipListMap;->clearIndexToFirst()V
+Ljava/util/concurrent/ConcurrentSkipListMap;->comparator:Ljava/util/Comparator;
+Ljava/util/concurrent/ConcurrentSkipListMap;->cpr(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
+Ljava/util/concurrent/ConcurrentSkipListMap;->descendingMap:Ljava/util/concurrent/ConcurrentNavigableMap;
+Ljava/util/concurrent/ConcurrentSkipListMap;->doGet(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap;->doPut(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap;->doRemove(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/concurrent/ConcurrentSkipListMap;->doRemoveFirstEntry()Ljava/util/Map$Entry;
+Ljava/util/concurrent/ConcurrentSkipListMap;->doRemoveLastEntry()Ljava/util/Map$Entry;
+Ljava/util/concurrent/ConcurrentSkipListMap;->entrySet:Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;
+Ljava/util/concurrent/ConcurrentSkipListMap;->entrySpliterator()Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;
+Ljava/util/concurrent/ConcurrentSkipListMap;->EQ:I
+Ljava/util/concurrent/ConcurrentSkipListMap;->findFirst()Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap;->findLast()Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap;->findNear(Ljava/lang/Object;ILjava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap;->findNode(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap;->findPredecessor(Ljava/lang/Object;Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap;->findPredecessorOfLast()Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+Ljava/util/concurrent/ConcurrentSkipListMap;->getNear(Ljava/lang/Object;I)Ljava/util/AbstractMap$SimpleImmutableEntry;
+Ljava/util/concurrent/ConcurrentSkipListMap;->GT:I
+Ljava/util/concurrent/ConcurrentSkipListMap;->HEAD:J
+Ljava/util/concurrent/ConcurrentSkipListMap;->head:Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;
+Ljava/util/concurrent/ConcurrentSkipListMap;->initialize()V
+Ljava/util/concurrent/ConcurrentSkipListMap;->keySet:Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;
+Ljava/util/concurrent/ConcurrentSkipListMap;->keySpliterator()Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;
+Ljava/util/concurrent/ConcurrentSkipListMap;->LT:I
+Ljava/util/concurrent/ConcurrentSkipListMap;->removeEntryIf(Ljava/util/function/Predicate;)Z
+Ljava/util/concurrent/ConcurrentSkipListMap;->removeValueIf(Ljava/util/function/Predicate;)Z
+Ljava/util/concurrent/ConcurrentSkipListMap;->toList(Ljava/util/Collection;)Ljava/util/List;
+Ljava/util/concurrent/ConcurrentSkipListMap;->tryReduceLevel()V
+Ljava/util/concurrent/ConcurrentSkipListMap;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/ConcurrentSkipListMap;->values:Ljava/util/concurrent/ConcurrentSkipListMap$Values;
+Ljava/util/concurrent/ConcurrentSkipListMap;->valueSpliterator()Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;
+Ljava/util/concurrent/ConcurrentSkipListSet;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
+Ljava/util/concurrent/ConcurrentSkipListSet;->m:Ljava/util/concurrent/ConcurrentNavigableMap;
+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;
+Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->forEach(Ljava/util/function/Consumer;)V
+Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->l:Ljava/util/concurrent/CopyOnWriteArrayList;
+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
+Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;->size:I
+Ljava/util/concurrent/CopyOnWriteArrayList;->addIfAbsent(Ljava/lang/Object;[Ljava/lang/Object;)Z
+Ljava/util/concurrent/CopyOnWriteArrayList;->get([Ljava/lang/Object;I)Ljava/lang/Object;
+Ljava/util/concurrent/CopyOnWriteArrayList;->getArray()[Ljava/lang/Object;
+Ljava/util/concurrent/CopyOnWriteArrayList;->indexOf(Ljava/lang/Object;[Ljava/lang/Object;II)I
+Ljava/util/concurrent/CopyOnWriteArrayList;->lastIndexOf(Ljava/lang/Object;[Ljava/lang/Object;I)I
+Ljava/util/concurrent/CopyOnWriteArrayList;->LOCK:J
+Ljava/util/concurrent/CopyOnWriteArrayList;->lock:Ljava/lang/Object;
+Ljava/util/concurrent/CopyOnWriteArrayList;->outOfBounds(II)Ljava/lang/String;
+Ljava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;[Ljava/lang/Object;I)Z
+Ljava/util/concurrent/CopyOnWriteArrayList;->removeRange(II)V
+Ljava/util/concurrent/CopyOnWriteArrayList;->resetLock()V
+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;
+Ljava/util/concurrent/CountedCompleter;->completer:Ljava/util/concurrent/CountedCompleter;
+Ljava/util/concurrent/CountedCompleter;->internalPropagateException(Ljava/lang/Throwable;)V
+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;
+Ljava/util/concurrent/CyclicBarrier;->breakBarrier()V
+Ljava/util/concurrent/CyclicBarrier;->count:I
+Ljava/util/concurrent/CyclicBarrier;->dowait(ZJ)I
+Ljava/util/concurrent/CyclicBarrier;->generation:Ljava/util/concurrent/CyclicBarrier$Generation;
+Ljava/util/concurrent/CyclicBarrier;->lock:Ljava/util/concurrent/locks/ReentrantLock;
+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
+Ljava/util/concurrent/DelayQueue;->available:Ljava/util/concurrent/locks/Condition;
+Ljava/util/concurrent/DelayQueue;->leader:Ljava/lang/Thread;
+Ljava/util/concurrent/DelayQueue;->lock:Ljava/util/concurrent/locks/ReentrantLock;
+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
+Ljava/util/concurrent/Exchanger$Node;->hash:I
+Ljava/util/concurrent/Exchanger$Node;->index:I
+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;
+Ljava/util/concurrent/Exchanger;->arenaExchange(Ljava/lang/Object;ZJ)Ljava/lang/Object;
+Ljava/util/concurrent/Exchanger;->ASHIFT:I
+Ljava/util/concurrent/Exchanger;->BLOCKER:J
+Ljava/util/concurrent/Exchanger;->bound:I
+Ljava/util/concurrent/Exchanger;->BOUND:J
+Ljava/util/concurrent/Exchanger;->FULL:I
+Ljava/util/concurrent/Exchanger;->MATCH:J
+Ljava/util/concurrent/Exchanger;->MMASK:I
+Ljava/util/concurrent/Exchanger;->NCPU:I
+Ljava/util/concurrent/Exchanger;->NULL_ITEM:Ljava/lang/Object;
+Ljava/util/concurrent/Exchanger;->participant:Ljava/util/concurrent/Exchanger$Participant;
+Ljava/util/concurrent/Exchanger;->SEQ:I
+Ljava/util/concurrent/Exchanger;->SLOT:J
+Ljava/util/concurrent/Exchanger;->slot:Ljava/util/concurrent/Exchanger$Node;
+Ljava/util/concurrent/Exchanger;->slotExchange(Ljava/lang/Object;ZJ)Ljava/lang/Object;
+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;
+Ljava/util/concurrent/ExecutorCompletionService;->aes:Ljava/util/concurrent/AbstractExecutorService;
+Ljava/util/concurrent/ExecutorCompletionService;->completionQueue:Ljava/util/concurrent/BlockingQueue;
+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;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->ASHIFT:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->base:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->cancelAll()V
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->config:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->currentJoin:Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->currentSteal:Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->getPoolIndex()I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->growAndSharedPush(Ljava/util/concurrent/ForkJoinTask;)V
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->growArray()[Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->hint:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->INITIAL_QUEUE_CAPACITY:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->isApparentlyUnblocked()Z
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->isEmpty()Z
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->localPollAndExec()V
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->localPopAndExec()V
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->MAXIMUM_QUEUE_CAPACITY:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->nextLocalTask()Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->nsteals:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->owner:Ljava/util/concurrent/ForkJoinWorkerThread;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->parker:Ljava/lang/Thread;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->peek()Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->poll()Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->pollAndExecCC(Ljava/util/concurrent/CountedCompleter;)I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->pollAt(I)Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->pool:Ljava/util/concurrent/ForkJoinPool;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->pop()Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->popCC(Ljava/util/concurrent/CountedCompleter;I)Ljava/util/concurrent/CountedCompleter;
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->push(Ljava/util/concurrent/ForkJoinTask;)V
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->qlock:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->QLOCK:J
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->queueSize()I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->runTask(Ljava/util/concurrent/ForkJoinTask;)V
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->scanState:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->sharedPush(Ljava/util/concurrent/ForkJoinTask;)I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->stackPred:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->top:I
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->transferStealCount(Ljava/util/concurrent/ForkJoinPool;)V
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->tryRemoveAndExec(Ljava/util/concurrent/ForkJoinTask;)Z
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->trySharedUnpush(Ljava/util/concurrent/ForkJoinTask;)Z
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->tryUnpush(Ljava/util/concurrent/ForkJoinTask;)Z
+Ljava/util/concurrent/ForkJoinPool$WorkQueue;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/ForkJoinPool;-><init>(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ILjava/lang/String;)V
+Ljava/util/concurrent/ForkJoinPool;->ABASE:I
+Ljava/util/concurrent/ForkJoinPool;->AC_MASK:J
+Ljava/util/concurrent/ForkJoinPool;->AC_SHIFT:I
+Ljava/util/concurrent/ForkJoinPool;->AC_UNIT:J
+Ljava/util/concurrent/ForkJoinPool;->ADD_WORKER:J
+Ljava/util/concurrent/ForkJoinPool;->ASHIFT:I
+Ljava/util/concurrent/ForkJoinPool;->auxState:Ljava/util/concurrent/ForkJoinPool$AuxState;
+Ljava/util/concurrent/ForkJoinPool;->awaitJoin(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
+Ljava/util/concurrent/ForkJoinPool;->awaitWork(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)I
+Ljava/util/concurrent/ForkJoinPool;->checkFactory(Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;)Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
+Ljava/util/concurrent/ForkJoinPool;->checkParallelism(I)I
+Ljava/util/concurrent/ForkJoinPool;->checkPermission()V
+Ljava/util/concurrent/ForkJoinPool;->common:Ljava/util/concurrent/ForkJoinPool;
+Ljava/util/concurrent/ForkJoinPool;->commonSubmitterQueue()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
+Ljava/util/concurrent/ForkJoinPool;->COMMON_MAX_SPARES:I
+Ljava/util/concurrent/ForkJoinPool;->COMMON_PARALLELISM:I
+Ljava/util/concurrent/ForkJoinPool;->config:I
+Ljava/util/concurrent/ForkJoinPool;->createWorker(Z)Z
+Ljava/util/concurrent/ForkJoinPool;->CTL:J
+Ljava/util/concurrent/ForkJoinPool;->ctl:J
+Ljava/util/concurrent/ForkJoinPool;->DEFAULT_COMMON_MAX_SPARES:I
+Ljava/util/concurrent/ForkJoinPool;->deregisterWorker(Ljava/util/concurrent/ForkJoinWorkerThread;Ljava/lang/Throwable;)V
+Ljava/util/concurrent/ForkJoinPool;->EVENMASK:I
+Ljava/util/concurrent/ForkJoinPool;->externalHelpComplete(Ljava/util/concurrent/CountedCompleter;I)I
+Ljava/util/concurrent/ForkJoinPool;->externalPush(Ljava/util/concurrent/ForkJoinTask;)V
+Ljava/util/concurrent/ForkJoinPool;->externalSubmit(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool;->factory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
+Ljava/util/concurrent/ForkJoinPool;->FIFO_QUEUE:I
+Ljava/util/concurrent/ForkJoinPool;->findNonEmptyStealQueue()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
+Ljava/util/concurrent/ForkJoinPool;->getSurplusQueuedTaskCount()I
+Ljava/util/concurrent/ForkJoinPool;->helpComplete(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/CountedCompleter;I)I
+Ljava/util/concurrent/ForkJoinPool;->helpQuiescePool(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
+Ljava/util/concurrent/ForkJoinPool;->helpStealer(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;)V
+Ljava/util/concurrent/ForkJoinPool;->IDLE_TIMEOUT_MS:J
+Ljava/util/concurrent/ForkJoinPool;->inactivate(Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)V
+Ljava/util/concurrent/ForkJoinPool;->IS_OWNED:I
+Ljava/util/concurrent/ForkJoinPool;->LIFO_QUEUE:I
+Ljava/util/concurrent/ForkJoinPool;->makeCommonPool()Ljava/util/concurrent/ForkJoinPool;
+Ljava/util/concurrent/ForkJoinPool;->MAX_CAP:I
+Ljava/util/concurrent/ForkJoinPool;->MODE_MASK:I
+Ljava/util/concurrent/ForkJoinPool;->modifyThreadPermission:Ljava/lang/RuntimePermission;
+Ljava/util/concurrent/ForkJoinPool;->nextPoolId()I
+Ljava/util/concurrent/ForkJoinPool;->nextTaskFor(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinPool;->POLL_LIMIT:I
+Ljava/util/concurrent/ForkJoinPool;->poolNumberSequence:I
+Ljava/util/concurrent/ForkJoinPool;->quiesceCommonPool()V
+Ljava/util/concurrent/ForkJoinPool;->registerWorker(Ljava/util/concurrent/ForkJoinWorkerThread;)Ljava/util/concurrent/ForkJoinPool$WorkQueue;
+Ljava/util/concurrent/ForkJoinPool;->runState:I
+Ljava/util/concurrent/ForkJoinPool;->RUNSTATE:J
+Ljava/util/concurrent/ForkJoinPool;->runWorker(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
+Ljava/util/concurrent/ForkJoinPool;->scan(Ljava/util/concurrent/ForkJoinPool$WorkQueue;III)I
+Ljava/util/concurrent/ForkJoinPool;->SEED_INCREMENT:I
+Ljava/util/concurrent/ForkJoinPool;->SHUTDOWN:I
+Ljava/util/concurrent/ForkJoinPool;->signalWork()V
+Ljava/util/concurrent/ForkJoinPool;->SMASK:I
+Ljava/util/concurrent/ForkJoinPool;->SPARE_WORKER:I
+Ljava/util/concurrent/ForkJoinPool;->SP_MASK:J
+Ljava/util/concurrent/ForkJoinPool;->SQMASK:I
+Ljava/util/concurrent/ForkJoinPool;->SS_SEQ:I
+Ljava/util/concurrent/ForkJoinPool;->STARTED:I
+Ljava/util/concurrent/ForkJoinPool;->STOP:I
+Ljava/util/concurrent/ForkJoinPool;->TC_MASK:J
+Ljava/util/concurrent/ForkJoinPool;->TC_SHIFT:I
+Ljava/util/concurrent/ForkJoinPool;->TC_UNIT:J
+Ljava/util/concurrent/ForkJoinPool;->TERMINATED:I
+Ljava/util/concurrent/ForkJoinPool;->timedAwaitWork(Ljava/util/concurrent/ForkJoinPool$WorkQueue;J)I
+Ljava/util/concurrent/ForkJoinPool;->TIMEOUT_SLOP_MS:J
+Ljava/util/concurrent/ForkJoinPool;->tryAddWorker(J)V
+Ljava/util/concurrent/ForkJoinPool;->tryCompensate(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Z
+Ljava/util/concurrent/ForkJoinPool;->tryCreateExternalQueue(I)V
+Ljava/util/concurrent/ForkJoinPool;->tryDropSpare(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Z
+Ljava/util/concurrent/ForkJoinPool;->tryExternalUnpush(Ljava/util/concurrent/ForkJoinTask;)Z
+Ljava/util/concurrent/ForkJoinPool;->tryInitialize(Z)V
+Ljava/util/concurrent/ForkJoinPool;->tryReactivate(Ljava/util/concurrent/ForkJoinPool$WorkQueue;[Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)V
+Ljava/util/concurrent/ForkJoinPool;->tryRelease(JLjava/util/concurrent/ForkJoinPool$WorkQueue;J)Z
+Ljava/util/concurrent/ForkJoinPool;->tryTerminate(ZZ)I
+Ljava/util/concurrent/ForkJoinPool;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/ForkJoinPool;->UC_MASK:J
+Ljava/util/concurrent/ForkJoinPool;->ueh:Ljava/lang/Thread$UncaughtExceptionHandler;
+Ljava/util/concurrent/ForkJoinPool;->UNREGISTERED:I
+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;
+Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;->setRawResult(Ljava/lang/Void;)V
+Ljava/util/concurrent/ForkJoinTask;->cancelIgnoringExceptions(Ljava/util/concurrent/ForkJoinTask;)V
+Ljava/util/concurrent/ForkJoinTask;->CANCELLED:I
+Ljava/util/concurrent/ForkJoinTask;->clearExceptionalCompletion()V
+Ljava/util/concurrent/ForkJoinTask;->doExec()I
+Ljava/util/concurrent/ForkJoinTask;->doInvoke()I
+Ljava/util/concurrent/ForkJoinTask;->doJoin()I
+Ljava/util/concurrent/ForkJoinTask;->DONE_MASK:I
+Ljava/util/concurrent/ForkJoinTask;->EXCEPTIONAL:I
+Ljava/util/concurrent/ForkJoinTask;->exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
+Ljava/util/concurrent/ForkJoinTask;->exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/ForkJoinTask;->exceptionTableRefQueue:Ljava/lang/ref/ReferenceQueue;
+Ljava/util/concurrent/ForkJoinTask;->EXCEPTION_MAP_CAPACITY:I
+Ljava/util/concurrent/ForkJoinTask;->expungeStaleExceptions()V
+Ljava/util/concurrent/ForkJoinTask;->externalAwaitDone()I
+Ljava/util/concurrent/ForkJoinTask;->externalInterruptibleAwaitDone()I
+Ljava/util/concurrent/ForkJoinTask;->getThrowableException()Ljava/lang/Throwable;
+Ljava/util/concurrent/ForkJoinTask;->helpExpungeStaleExceptions()V
+Ljava/util/concurrent/ForkJoinTask;->internalPropagateException(Ljava/lang/Throwable;)V
+Ljava/util/concurrent/ForkJoinTask;->internalWait(J)V
+Ljava/util/concurrent/ForkJoinTask;->NORMAL:I
+Ljava/util/concurrent/ForkJoinTask;->pollSubmission()Ljava/util/concurrent/ForkJoinTask;
+Ljava/util/concurrent/ForkJoinTask;->recordExceptionalCompletion(Ljava/lang/Throwable;)I
+Ljava/util/concurrent/ForkJoinTask;->reportException(I)V
+Ljava/util/concurrent/ForkJoinTask;->rethrow(Ljava/lang/Throwable;)V
+Ljava/util/concurrent/ForkJoinTask;->setCompletion(I)I
+Ljava/util/concurrent/ForkJoinTask;->setExceptionalCompletion(Ljava/lang/Throwable;)I
+Ljava/util/concurrent/ForkJoinTask;->SIGNAL:I
+Ljava/util/concurrent/ForkJoinTask;->SMASK:I
+Ljava/util/concurrent/ForkJoinTask;->status:I
+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;
+Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;->innocuousThreadGroup:Ljava/lang/ThreadGroup;
+Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;->INNOCUOUS_ACC:Ljava/security/AccessControlContext;
+Ljava/util/concurrent/ForkJoinWorkerThread;-><init>(Ljava/util/concurrent/ForkJoinPool;Ljava/lang/ThreadGroup;Ljava/security/AccessControlContext;)V
+Ljava/util/concurrent/ForkJoinWorkerThread;->afterTopLevelExec()V
+Ljava/util/concurrent/ForkJoinWorkerThread;->eraseThreadLocals()V
+Ljava/util/concurrent/ForkJoinWorkerThread;->INHERITABLETHREADLOCALS:J
+Ljava/util/concurrent/ForkJoinWorkerThread;->INHERITEDACCESSCONTROLCONTEXT:J
+Ljava/util/concurrent/ForkJoinWorkerThread;->pool:Ljava/util/concurrent/ForkJoinPool;
+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;
+Ljava/util/concurrent/FutureTask;->awaitDone(ZJ)I
+Ljava/util/concurrent/FutureTask;->CANCELLED:I
+Ljava/util/concurrent/FutureTask;->COMPLETING:I
+Ljava/util/concurrent/FutureTask;->finishCompletion()V
+Ljava/util/concurrent/FutureTask;->handlePossibleCancellationInterrupt(I)V
+Ljava/util/concurrent/FutureTask;->INTERRUPTED:I
+Ljava/util/concurrent/FutureTask;->INTERRUPTING:I
+Ljava/util/concurrent/FutureTask;->NEW:I
+Ljava/util/concurrent/FutureTask;->NORMAL:I
+Ljava/util/concurrent/FutureTask;->removeWaiter(Ljava/util/concurrent/FutureTask$WaitNode;)V
+Ljava/util/concurrent/FutureTask;->report(I)Ljava/lang/Object;
+Ljava/util/concurrent/FutureTask;->RUNNER:J
+Ljava/util/concurrent/FutureTask;->runner:Ljava/lang/Thread;
+Ljava/util/concurrent/FutureTask;->STATE:J
+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;
+Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->next:Ljava/util/concurrent/LinkedBlockingDeque$Node;
+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;
+Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->est:J
+Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->exhausted:Z
+Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+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;
+Ljava/util/concurrent/LinkedBlockingDeque$Node;->prev:Ljava/util/concurrent/LinkedBlockingDeque$Node;
+Ljava/util/concurrent/LinkedBlockingDeque;->capacity:I
+Ljava/util/concurrent/LinkedBlockingDeque;->count:I
+Ljava/util/concurrent/LinkedBlockingDeque;->last:Ljava/util/concurrent/LinkedBlockingDeque$Node;
+Ljava/util/concurrent/LinkedBlockingDeque;->linkFirst(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
+Ljava/util/concurrent/LinkedBlockingDeque;->linkLast(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
+Ljava/util/concurrent/LinkedBlockingDeque;->notEmpty:Ljava/util/concurrent/locks/Condition;
+Ljava/util/concurrent/LinkedBlockingDeque;->notFull:Ljava/util/concurrent/locks/Condition;
+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;
+Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->est:J
+Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->exhausted:Z
+Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+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;
+Ljava/util/concurrent/LinkedBlockingQueue;->count:Ljava/util/concurrent/atomic/AtomicInteger;
+Ljava/util/concurrent/LinkedBlockingQueue;->dequeue()Ljava/lang/Object;
+Ljava/util/concurrent/LinkedBlockingQueue;->enqueue(Ljava/util/concurrent/LinkedBlockingQueue$Node;)V
+Ljava/util/concurrent/LinkedBlockingQueue;->fullyLock()V
+Ljava/util/concurrent/LinkedBlockingQueue;->fullyUnlock()V
+Ljava/util/concurrent/LinkedBlockingQueue;->last:Ljava/util/concurrent/LinkedBlockingQueue$Node;
+Ljava/util/concurrent/LinkedBlockingQueue;->notEmpty:Ljava/util/concurrent/locks/Condition;
+Ljava/util/concurrent/LinkedBlockingQueue;->notFull:Ljava/util/concurrent/locks/Condition;
+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
+Ljava/util/concurrent/LinkedTransferQueue$Node;->casNext(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z
+Ljava/util/concurrent/LinkedTransferQueue$Node;->forgetContents()V
+Ljava/util/concurrent/LinkedTransferQueue$Node;->forgetNext()V
+Ljava/util/concurrent/LinkedTransferQueue$Node;->isData:Z
+Ljava/util/concurrent/LinkedTransferQueue$Node;->isMatched()Z
+Ljava/util/concurrent/LinkedTransferQueue$Node;->isUnmatchedRequest()Z
+Ljava/util/concurrent/LinkedTransferQueue$Node;->ITEM:J
+Ljava/util/concurrent/LinkedTransferQueue$Node;->item:Ljava/lang/Object;
+Ljava/util/concurrent/LinkedTransferQueue$Node;->NEXT:J
+Ljava/util/concurrent/LinkedTransferQueue$Node;->next:Ljava/util/concurrent/LinkedTransferQueue$Node;
+Ljava/util/concurrent/LinkedTransferQueue$Node;->tryMatchData()Z
+Ljava/util/concurrent/LinkedTransferQueue$Node;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/LinkedTransferQueue$Node;->WAITER:J
+Ljava/util/concurrent/LinkedTransferQueue$Node;->waiter:Ljava/lang/Thread;
+Ljava/util/concurrent/LinkedTransferQueue;->ASYNC:I
+Ljava/util/concurrent/LinkedTransferQueue;->awaitMatch(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/lang/Object;ZJ)Ljava/lang/Object;
+Ljava/util/concurrent/LinkedTransferQueue;->casHead(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z
+Ljava/util/concurrent/LinkedTransferQueue;->casSweepVotes(II)Z
+Ljava/util/concurrent/LinkedTransferQueue;->casTail(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z
+Ljava/util/concurrent/LinkedTransferQueue;->CHAINED_SPINS:I
+Ljava/util/concurrent/LinkedTransferQueue;->countOfMode(Z)I
+Ljava/util/concurrent/LinkedTransferQueue;->findAndRemove(Ljava/lang/Object;)Z
+Ljava/util/concurrent/LinkedTransferQueue;->firstDataNode()Ljava/util/concurrent/LinkedTransferQueue$Node;
+Ljava/util/concurrent/LinkedTransferQueue;->FRONT_SPINS:I
+Ljava/util/concurrent/LinkedTransferQueue;->HEAD:J
+Ljava/util/concurrent/LinkedTransferQueue;->head:Ljava/util/concurrent/LinkedTransferQueue$Node;
+Ljava/util/concurrent/LinkedTransferQueue;->MP:Z
+Ljava/util/concurrent/LinkedTransferQueue;->NOW:I
+Ljava/util/concurrent/LinkedTransferQueue;->spinsFor(Ljava/util/concurrent/LinkedTransferQueue$Node;Z)I
+Ljava/util/concurrent/LinkedTransferQueue;->succ(Ljava/util/concurrent/LinkedTransferQueue$Node;)Ljava/util/concurrent/LinkedTransferQueue$Node;
+Ljava/util/concurrent/LinkedTransferQueue;->sweep()V
+Ljava/util/concurrent/LinkedTransferQueue;->sweepVotes:I
+Ljava/util/concurrent/LinkedTransferQueue;->SWEEPVOTES:J
+Ljava/util/concurrent/LinkedTransferQueue;->SWEEP_THRESHOLD:I
+Ljava/util/concurrent/LinkedTransferQueue;->SYNC:I
+Ljava/util/concurrent/LinkedTransferQueue;->TAIL:J
+Ljava/util/concurrent/LinkedTransferQueue;->tail:Ljava/util/concurrent/LinkedTransferQueue$Node;
+Ljava/util/concurrent/LinkedTransferQueue;->TIMED:I
+Ljava/util/concurrent/LinkedTransferQueue;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;
+Ljava/util/concurrent/LinkedTransferQueue;->tryAppend(Ljava/util/concurrent/LinkedTransferQueue$Node;Z)Ljava/util/concurrent/LinkedTransferQueue$Node;
+Ljava/util/concurrent/LinkedTransferQueue;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/LinkedTransferQueue;->unsplice(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)V
+Ljava/util/concurrent/LinkedTransferQueue;->xfer(Ljava/lang/Object;ZIJ)Ljava/lang/Object;
+Ljava/util/concurrent/locks/AbstractOwnableSynchronizer;->exclusiveOwnerThread:Ljava/lang/Thread;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->addConditionWaiter()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->checkInterruptWhileWaiting(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->doSignalAll(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->firstWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->isOwnedBy(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->lastWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->REINTERRUPT:I
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->reportInterruptAfterWait(I)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->THROW_IE:I
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->unlinkCancelledWaiters()V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->acquireQueued(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;J)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->addWaiter(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->apparentlyFirstQueuedIsExclusive()Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->cancelAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->compareAndSetTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireInterruptibly(J)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireNanos(JJ)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireShared(J)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireSharedInterruptibly(J)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireSharedNanos(JJ)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doReleaseShared()V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->enq(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->findNodeFromTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->fullGetFirstQueuedThread()Ljava/lang/Thread;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->fullyRelease(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)J
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->HEAD:J
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->head:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->initializeSyncQueue()V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->isOnSyncQueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->parkAndCheckInterrupt()Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->selfInterrupt()V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->setHead(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->setHeadAndPropagate(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;J)V
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->shouldParkAfterFailedAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->SPIN_FOR_TIMEOUT_THRESHOLD:J
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->STATE:J
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->state:J
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->TAIL:J
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->tail:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->transferAfterCancelledWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->transferForSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->unparkSuccessor(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->addConditionWaiter()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->checkInterruptWhileWaiting(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignalAll(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->firstWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->isOwnedBy(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->lastWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->REINTERRUPT:I
+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
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->CANCELLED:I
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->compareAndSetNext(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->compareAndSetWaitStatus(II)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->CONDITION:I
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->EXCLUSIVE:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->isShared()Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->NEXT:J
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->next:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->nextWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->predecessor()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->PREV:J
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->prev:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->PROPAGATE:I
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->SHARED:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->SIGNAL:I
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->THREAD:J
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->thread:Ljava/lang/Thread;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->waitStatus:I
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->WAITSTATUS:J
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireQueued(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;I)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->addWaiter(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->apparentlyFirstQueuedIsExclusive()Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->cancelAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->compareAndSetTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireInterruptibly(I)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireNanos(IJ)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireShared(I)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireSharedInterruptibly(I)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireSharedNanos(IJ)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doReleaseShared()V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->enq(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->findNodeFromTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->fullGetFirstQueuedThread()Ljava/lang/Thread;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->fullyRelease(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->HEAD:J
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->head:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->initializeSyncQueue()V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->isOnSyncQueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->parkAndCheckInterrupt()Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->selfInterrupt()V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->setHead(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->setHeadAndPropagate(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;I)V
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->shouldParkAfterFailedAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->SPIN_FOR_TIMEOUT_THRESHOLD:J
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->state:I
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->STATE:J
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->TAIL:J
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->tail:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->transferAfterCancelledWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->transferForSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->unparkSuccessor(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+Ljava/util/concurrent/locks/LockSupport;-><init>()V
+Ljava/util/concurrent/locks/LockSupport;->nextSecondarySeed()I
+Ljava/util/concurrent/locks/LockSupport;->PARKBLOCKER:J
+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;
+Ljava/util/concurrent/locks/ReentrantLock$Sync;->isLocked()Z
+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
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->EXCLUSIVE_MASK:I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->firstReader:Ljava/lang/Thread;
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->firstReaderHoldCount:I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->fullTryAcquireShared(Ljava/lang/Thread;)I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getCount()I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getOwner()Ljava/lang/Thread;
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getReadHoldCount()I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getReadLockCount()I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getWriteHoldCount()I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->isWriteLocked()Z
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->MAX_COUNT:I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->newCondition()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->readerShouldBlock()Z
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->readHolds:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->sharedCount(I)I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->SHARED_SHIFT:I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->SHARED_UNIT:I
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryReadLock()Z
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryWriteLock()Z
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->unmatchedUnlockException()Ljava/lang/IllegalMonitorStateException;
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->writerShouldBlock()Z
+Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->sync:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;
+Ljava/util/concurrent/locks/ReentrantReadWriteLock;->getThreadId(Ljava/lang/Thread;)J
+Ljava/util/concurrent/locks/ReentrantReadWriteLock;->readerLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
+Ljava/util/concurrent/locks/ReentrantReadWriteLock;->sync:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;
+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
+Ljava/util/concurrent/locks/StampedLock$WNode;->next:Ljava/util/concurrent/locks/StampedLock$WNode;
+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
+Ljava/util/concurrent/locks/StampedLock;->CANCELLED:I
+Ljava/util/concurrent/locks/StampedLock;->cancelWaiter(Ljava/util/concurrent/locks/StampedLock$WNode;Ljava/util/concurrent/locks/StampedLock$WNode;Z)J
+Ljava/util/concurrent/locks/StampedLock;->getReadLockCount(J)I
+Ljava/util/concurrent/locks/StampedLock;->HEAD_SPINS:I
+Ljava/util/concurrent/locks/StampedLock;->INTERRUPTED:J
+Ljava/util/concurrent/locks/StampedLock;->LG_READERS:I
+Ljava/util/concurrent/locks/StampedLock;->MAX_HEAD_SPINS:I
+Ljava/util/concurrent/locks/StampedLock;->NCPU:I
+Ljava/util/concurrent/locks/StampedLock;->ORIGIN:J
+Ljava/util/concurrent/locks/StampedLock;->OVERFLOW_YIELD_RATE:I
+Ljava/util/concurrent/locks/StampedLock;->PARKBLOCKER:J
+Ljava/util/concurrent/locks/StampedLock;->RBITS:J
+Ljava/util/concurrent/locks/StampedLock;->readerOverflow:I
+Ljava/util/concurrent/locks/StampedLock;->readLockView:Ljava/util/concurrent/locks/StampedLock$ReadLockView;
+Ljava/util/concurrent/locks/StampedLock;->readWriteLockView:Ljava/util/concurrent/locks/StampedLock$ReadWriteLockView;
+Ljava/util/concurrent/locks/StampedLock;->release(Ljava/util/concurrent/locks/StampedLock$WNode;)V
+Ljava/util/concurrent/locks/StampedLock;->RFULL:J
+Ljava/util/concurrent/locks/StampedLock;->RMODE:I
+Ljava/util/concurrent/locks/StampedLock;->RUNIT:J
+Ljava/util/concurrent/locks/StampedLock;->SBITS:J
+Ljava/util/concurrent/locks/StampedLock;->SPINS:I
+Ljava/util/concurrent/locks/StampedLock;->STATE:J
+Ljava/util/concurrent/locks/StampedLock;->state:J
+Ljava/util/concurrent/locks/StampedLock;->tryDecReaderOverflow(J)J
+Ljava/util/concurrent/locks/StampedLock;->tryIncReaderOverflow(J)J
+Ljava/util/concurrent/locks/StampedLock;->U:Lsun/misc/Unsafe;
+Ljava/util/concurrent/locks/StampedLock;->unstampedUnlockRead()V
+Ljava/util/concurrent/locks/StampedLock;->unstampedUnlockWrite()V
+Ljava/util/concurrent/locks/StampedLock;->WAITING:I
+Ljava/util/concurrent/locks/StampedLock;->WBIT:J
+Ljava/util/concurrent/locks/StampedLock;->WCOWAIT:J
+Ljava/util/concurrent/locks/StampedLock;->WHEAD:J
+Ljava/util/concurrent/locks/StampedLock;->whead:Ljava/util/concurrent/locks/StampedLock$WNode;
+Ljava/util/concurrent/locks/StampedLock;->WMODE:I
+Ljava/util/concurrent/locks/StampedLock;->WNEXT:J
+Ljava/util/concurrent/locks/StampedLock;->writeLockView:Ljava/util/concurrent/locks/StampedLock$WriteLockView;
+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
+Ljava/util/concurrent/Phaser$QNode;->nanos:J
+Ljava/util/concurrent/Phaser$QNode;->next:Ljava/util/concurrent/Phaser$QNode;
+Ljava/util/concurrent/Phaser$QNode;->phase:I
+Ljava/util/concurrent/Phaser$QNode;->phaser:Ljava/util/concurrent/Phaser;
+Ljava/util/concurrent/Phaser$QNode;->thread:Ljava/lang/Thread;
+Ljava/util/concurrent/Phaser$QNode;->timed:Z
+Ljava/util/concurrent/Phaser$QNode;->wasInterrupted:Z
+Ljava/util/concurrent/Phaser;->abortWait(I)I
+Ljava/util/concurrent/Phaser;->arrivedOf(J)I
+Ljava/util/concurrent/Phaser;->badArrive(J)Ljava/lang/String;
+Ljava/util/concurrent/Phaser;->badRegister(J)Ljava/lang/String;
+Ljava/util/concurrent/Phaser;->COUNTS_MASK:J
+Ljava/util/concurrent/Phaser;->doArrive(I)I
+Ljava/util/concurrent/Phaser;->doRegister(I)I
+Ljava/util/concurrent/Phaser;->EMPTY:I
+Ljava/util/concurrent/Phaser;->evenQ:Ljava/util/concurrent/atomic/AtomicReference;
+Ljava/util/concurrent/Phaser;->internalAwaitAdvance(ILjava/util/concurrent/Phaser$QNode;)I
+Ljava/util/concurrent/Phaser;->MAX_PARTIES:I
+Ljava/util/concurrent/Phaser;->MAX_PHASE:I
+Ljava/util/concurrent/Phaser;->NCPU:I
+Ljava/util/concurrent/Phaser;->oddQ:Ljava/util/concurrent/atomic/AtomicReference;
+Ljava/util/concurrent/Phaser;->ONE_ARRIVAL:I
+Ljava/util/concurrent/Phaser;->ONE_DEREGISTER:I
+Ljava/util/concurrent/Phaser;->ONE_PARTY:I
+Ljava/util/concurrent/Phaser;->parent:Ljava/util/concurrent/Phaser;
+Ljava/util/concurrent/Phaser;->partiesOf(J)I
+Ljava/util/concurrent/Phaser;->PARTIES_MASK:J
+Ljava/util/concurrent/Phaser;->PARTIES_SHIFT:I
+Ljava/util/concurrent/Phaser;->phaseOf(J)I
+Ljava/util/concurrent/Phaser;->PHASE_SHIFT:I
+Ljava/util/concurrent/Phaser;->queueFor(I)Ljava/util/concurrent/atomic/AtomicReference;
+Ljava/util/concurrent/Phaser;->reconcileState()J
+Ljava/util/concurrent/Phaser;->releaseWaiters(I)V
+Ljava/util/concurrent/Phaser;->root:Ljava/util/concurrent/Phaser;
+Ljava/util/concurrent/Phaser;->SPINS_PER_ARRIVAL:I
+Ljava/util/concurrent/Phaser;->STATE:J
+Ljava/util/concurrent/Phaser;->state:J
+Ljava/util/concurrent/Phaser;->stateToString(J)Ljava/lang/String;
+Ljava/util/concurrent/Phaser;->TERMINATION_BIT:J
+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
+Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->getFence()I
+Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->index:I
+Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->queue:Ljava/util/concurrent/PriorityBlockingQueue;
+Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
+Ljava/util/concurrent/PriorityBlockingQueue;->allocationSpinLock:I
+Ljava/util/concurrent/PriorityBlockingQueue;->ALLOCATIONSPINLOCK:J
+Ljava/util/concurrent/PriorityBlockingQueue;->comparator:Ljava/util/Comparator;
+Ljava/util/concurrent/PriorityBlockingQueue;->DEFAULT_INITIAL_CAPACITY:I
+Ljava/util/concurrent/PriorityBlockingQueue;->heapify()V
+Ljava/util/concurrent/PriorityBlockingQueue;->indexOf(Ljava/lang/Object;)I
+Ljava/util/concurrent/PriorityBlockingQueue;->MAX_ARRAY_SIZE:I
+Ljava/util/concurrent/PriorityBlockingQueue;->q:Ljava/util/PriorityQueue;
+Ljava/util/concurrent/PriorityBlockingQueue;->queue:[Ljava/lang/Object;
+Ljava/util/concurrent/PriorityBlockingQueue;->removeAt(I)V
+Ljava/util/concurrent/PriorityBlockingQueue;->removeEQ(Ljava/lang/Object;)V
+Ljava/util/concurrent/PriorityBlockingQueue;->siftDownComparable(ILjava/lang/Object;[Ljava/lang/Object;I)V
+Ljava/util/concurrent/PriorityBlockingQueue;->siftDownUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;ILjava/util/Comparator;)V
+Ljava/util/concurrent/PriorityBlockingQueue;->siftUpComparable(ILjava/lang/Object;[Ljava/lang/Object;)V
+Ljava/util/concurrent/PriorityBlockingQueue;->siftUpUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;Ljava/util/Comparator;)V
+Ljava/util/concurrent/PriorityBlockingQueue;->size:I
+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;
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->drainTo(Ljava/util/Collection;)I
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->drainTo(Ljava/util/Collection;I)I
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->finishPoll(Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->grow()V
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->indexOf(Ljava/lang/Object;)I
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->INITIAL_CAPACITY:I
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->leader:Ljava/lang/Thread;
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->lock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->offer(Ljava/lang/Runnable;)Z
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->offer(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Z
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->peekExpired()Ljava/util/concurrent/RunnableScheduledFuture;
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->put(Ljava/lang/Runnable;)V
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->queue:[Ljava/util/concurrent/RunnableScheduledFuture;
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->setIndex(Ljava/util/concurrent/RunnableScheduledFuture;I)V
+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;
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->period:J
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->sequenceNumber:J
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->setNextRunTime()V
+Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->time:J
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->canRunInCurrentRunState(Z)Z
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->continueExistingPeriodicTasksAfterShutdown:Z
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->DEFAULT_KEEPALIVE_MILLIS:J
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->delayedExecute(Ljava/util/concurrent/RunnableScheduledFuture;)V
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->executeExistingDelayedTasksAfterShutdown:Z
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->onShutdown()V
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->overflowFree(J)J
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->reExecutePeriodic(Ljava/util/concurrent/RunnableScheduledFuture;)V
+Ljava/util/concurrent/ScheduledThreadPoolExecutor;->removeOnCancel:Z
+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
+Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->isCancelled()Z
+Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->isData:Z
+Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->isOffList()Z
+Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->ITEM:J
+Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->item:Ljava/lang/Object;
+Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->NEXT:J
+Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->next:Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
+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
+Ljava/util/concurrent/SynchronousQueue$TransferQueue;->awaitFulfill(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/lang/Object;ZJ)Ljava/lang/Object;
+Ljava/util/concurrent/SynchronousQueue$TransferQueue;->casCleanMe(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)Z
+Ljava/util/concurrent/SynchronousQueue$TransferQueue;->clean(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)V
+Ljava/util/concurrent/SynchronousQueue$TransferQueue;->CLEANME:J
+Ljava/util/concurrent/SynchronousQueue$TransferQueue;->cleanMe:Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
+Ljava/util/concurrent/SynchronousQueue$TransferQueue;->HEAD:J
+Ljava/util/concurrent/SynchronousQueue$TransferQueue;->head:Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
+Ljava/util/concurrent/SynchronousQueue$TransferQueue;->TAIL:J
+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
+Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->item:Ljava/lang/Object;
+Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->MATCH:J
+Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->match:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
+Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->mode:I
+Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->NEXT:J
+Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
+Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->tryCancel()V
+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
+Ljava/util/concurrent/SynchronousQueue$TransferStack;->clean(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)V
+Ljava/util/concurrent/SynchronousQueue$TransferStack;->DATA:I
+Ljava/util/concurrent/SynchronousQueue$TransferStack;->FULFILLING:I
+Ljava/util/concurrent/SynchronousQueue$TransferStack;->HEAD:J
+Ljava/util/concurrent/SynchronousQueue$TransferStack;->head:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
+Ljava/util/concurrent/SynchronousQueue$TransferStack;->isFulfilling(I)Z
+Ljava/util/concurrent/SynchronousQueue$TransferStack;->REQUEST:I
+Ljava/util/concurrent/SynchronousQueue$TransferStack;->shouldSpin(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
+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
+Ljava/util/concurrent/SynchronousQueue;->qlock:Ljava/util/concurrent/locks/ReentrantLock;
+Ljava/util/concurrent/SynchronousQueue;->SPIN_FOR_TIMEOUT_THRESHOLD:J
+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
+Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;->index:J
+Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;->origin:J
+Ljava/util/concurrent/ThreadLocalRandom;-><init>()V
+Ljava/util/concurrent/ThreadLocalRandom;->advanceProbe(I)I
+Ljava/util/concurrent/ThreadLocalRandom;->BAD_BOUND:Ljava/lang/String;
+Ljava/util/concurrent/ThreadLocalRandom;->BAD_RANGE:Ljava/lang/String;
+Ljava/util/concurrent/ThreadLocalRandom;->BAD_SIZE:Ljava/lang/String;
+Ljava/util/concurrent/ThreadLocalRandom;->DOUBLE_UNIT:D
+Ljava/util/concurrent/ThreadLocalRandom;->FLOAT_UNIT:F
+Ljava/util/concurrent/ThreadLocalRandom;->GAMMA:J
+Ljava/util/concurrent/ThreadLocalRandom;->getProbe()I
+Ljava/util/concurrent/ThreadLocalRandom;->initialized:Z
+Ljava/util/concurrent/ThreadLocalRandom;->instance:Ljava/util/concurrent/ThreadLocalRandom;
+Ljava/util/concurrent/ThreadLocalRandom;->internalNextDouble(DD)D
+Ljava/util/concurrent/ThreadLocalRandom;->internalNextInt(II)I
+Ljava/util/concurrent/ThreadLocalRandom;->internalNextLong(JJ)J
+Ljava/util/concurrent/ThreadLocalRandom;->localInit()V
+Ljava/util/concurrent/ThreadLocalRandom;->mix32(J)I
+Ljava/util/concurrent/ThreadLocalRandom;->mix64(J)J
+Ljava/util/concurrent/ThreadLocalRandom;->nextLocalGaussian:Ljava/lang/ThreadLocal;
+Ljava/util/concurrent/ThreadLocalRandom;->nextSecondarySeed()I
+Ljava/util/concurrent/ThreadLocalRandom;->nextSeed()J
+Ljava/util/concurrent/ThreadLocalRandom;->PROBE:J
+Ljava/util/concurrent/ThreadLocalRandom;->probeGenerator:Ljava/util/concurrent/atomic/AtomicInteger;
+Ljava/util/concurrent/ThreadLocalRandom;->PROBE_INCREMENT:I
+Ljava/util/concurrent/ThreadLocalRandom;->SECONDARY:J
+Ljava/util/concurrent/ThreadLocalRandom;->SEED:J
+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
+Ljava/util/concurrent/ThreadPoolExecutor$Worker;->isLocked()Z
+Ljava/util/concurrent/ThreadPoolExecutor$Worker;->lock()V
+Ljava/util/concurrent/ThreadPoolExecutor$Worker;->thread:Ljava/lang/Thread;
+Ljava/util/concurrent/ThreadPoolExecutor$Worker;->tryLock()Z
+Ljava/util/concurrent/ThreadPoolExecutor$Worker;->unlock()V
+Ljava/util/concurrent/ThreadPoolExecutor;->addWorker(Ljava/lang/Runnable;Z)Z
+Ljava/util/concurrent/ThreadPoolExecutor;->addWorkerFailed(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V
+Ljava/util/concurrent/ThreadPoolExecutor;->advanceRunState(I)V
+Ljava/util/concurrent/ThreadPoolExecutor;->CAPACITY:I
+Ljava/util/concurrent/ThreadPoolExecutor;->checkShutdownAccess()V
+Ljava/util/concurrent/ThreadPoolExecutor;->compareAndDecrementWorkerCount(I)Z
+Ljava/util/concurrent/ThreadPoolExecutor;->compareAndIncrementWorkerCount(I)Z
+Ljava/util/concurrent/ThreadPoolExecutor;->completedTaskCount:J
+Ljava/util/concurrent/ThreadPoolExecutor;->corePoolSize:I
+Ljava/util/concurrent/ThreadPoolExecutor;->COUNT_BITS:I
+Ljava/util/concurrent/ThreadPoolExecutor;->ctlOf(II)I
+Ljava/util/concurrent/ThreadPoolExecutor;->decrementWorkerCount()V
+Ljava/util/concurrent/ThreadPoolExecutor;->drainQueue()Ljava/util/List;
+Ljava/util/concurrent/ThreadPoolExecutor;->ensurePrestart()V
+Ljava/util/concurrent/ThreadPoolExecutor;->getTask()Ljava/lang/Runnable;
+Ljava/util/concurrent/ThreadPoolExecutor;->handler:Ljava/util/concurrent/RejectedExecutionHandler;
+Ljava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers()V
+Ljava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers(Z)V
+Ljava/util/concurrent/ThreadPoolExecutor;->interruptWorkers()V
+Ljava/util/concurrent/ThreadPoolExecutor;->isRunning(I)Z
+Ljava/util/concurrent/ThreadPoolExecutor;->isRunningOrShutdown(Z)Z
+Ljava/util/concurrent/ThreadPoolExecutor;->keepAliveTime:J
+Ljava/util/concurrent/ThreadPoolExecutor;->largestPoolSize:I
+Ljava/util/concurrent/ThreadPoolExecutor;->maximumPoolSize:I
+Ljava/util/concurrent/ThreadPoolExecutor;->ONLY_ONE:Z
+Ljava/util/concurrent/ThreadPoolExecutor;->onShutdown()V
+Ljava/util/concurrent/ThreadPoolExecutor;->processWorkerExit(Ljava/util/concurrent/ThreadPoolExecutor$Worker;Z)V
+Ljava/util/concurrent/ThreadPoolExecutor;->reject(Ljava/lang/Runnable;)V
+Ljava/util/concurrent/ThreadPoolExecutor;->RUNNING:I
+Ljava/util/concurrent/ThreadPoolExecutor;->runStateAtLeast(II)Z
+Ljava/util/concurrent/ThreadPoolExecutor;->runStateLessThan(II)Z
+Ljava/util/concurrent/ThreadPoolExecutor;->runStateOf(I)I
+Ljava/util/concurrent/ThreadPoolExecutor;->runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V
+Ljava/util/concurrent/ThreadPoolExecutor;->SHUTDOWN:I
+Ljava/util/concurrent/ThreadPoolExecutor;->shutdownPerm:Ljava/lang/RuntimePermission;
+Ljava/util/concurrent/ThreadPoolExecutor;->STOP:I
+Ljava/util/concurrent/ThreadPoolExecutor;->TERMINATED:I
+Ljava/util/concurrent/ThreadPoolExecutor;->termination:Ljava/util/concurrent/locks/Condition;
+Ljava/util/concurrent/ThreadPoolExecutor;->threadFactory:Ljava/util/concurrent/ThreadFactory;
+Ljava/util/concurrent/ThreadPoolExecutor;->TIDYING:I
+Ljava/util/concurrent/ThreadPoolExecutor;->tryTerminate()V
+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
+Ljava/util/concurrent/TimeUnit;->C3:J
+Ljava/util/concurrent/TimeUnit;->C4:J
+Ljava/util/concurrent/TimeUnit;->C5:J
+Ljava/util/concurrent/TimeUnit;->C6:J
+Ljava/util/concurrent/TimeUnit;->excessNanos(JJ)I
+Ljava/util/concurrent/TimeUnit;->MAX:J
+Ljava/util/concurrent/TimeUnit;->x(JJJ)J
+Ljava/util/Currency;-><init>(Landroid/icu/util/Currency;)V
+Ljava/util/Currency;->available:Ljava/util/HashSet;
+Ljava/util/Currency;->currencyCode:Ljava/lang/String;
+Ljava/util/Currency;->icuCurrency:Landroid/icu/util/Currency;
+Ljava/util/Currency;->instances:Ljava/util/concurrent/ConcurrentMap;
+Ljava/util/Date;->cdate:Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/Date;->convertToAbbr(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
+Ljava/util/Date;->defaultCenturyStart:I
+Ljava/util/Date;->fastTime:J
+Ljava/util/Date;->gcal:Lsun/util/calendar/BaseCalendar;
+Ljava/util/Date;->getCalendarDate()Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/Date;->getCalendarSystem(I)Lsun/util/calendar/BaseCalendar;
+Ljava/util/Date;->getCalendarSystem(J)Lsun/util/calendar/BaseCalendar;
+Ljava/util/Date;->getCalendarSystem(Lsun/util/calendar/BaseCalendar$Date;)Lsun/util/calendar/BaseCalendar;
+Ljava/util/Date;->getJulianCalendar()Lsun/util/calendar/BaseCalendar;
+Ljava/util/Date;->getMillisOf(Ljava/util/Date;)J
+Ljava/util/Date;->getTimeImpl()J
+Ljava/util/Date;->jcal:Lsun/util/calendar/BaseCalendar;
+Ljava/util/Date;->normalize()Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/Date;->normalize(Lsun/util/calendar/BaseCalendar$Date;)Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/Date;->ttb:[I
+Ljava/util/Date;->wtb:[Ljava/lang/String;
+Ljava/util/DoubleSummaryStatistics;->count:J
+Ljava/util/DoubleSummaryStatistics;->max:D
+Ljava/util/DoubleSummaryStatistics;->min:D
+Ljava/util/DoubleSummaryStatistics;->simpleSum:D
+Ljava/util/DoubleSummaryStatistics;->sum:D
+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;
+Ljava/util/EnumMap;->equals(Ljava/util/EnumMap;)Z
+Ljava/util/EnumMap;->getKeyUniverse(Ljava/lang/Class;)[Ljava/lang/Enum;
+Ljava/util/EnumMap;->isValidKey(Ljava/lang/Object;)Z
+Ljava/util/EnumMap;->keyUniverse:[Ljava/lang/Enum;
+Ljava/util/EnumMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/EnumMap;->NULL:Ljava/lang/Object;
+Ljava/util/EnumMap;->removeMapping(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/EnumMap;->size:I
+Ljava/util/EnumMap;->typeCheck(Ljava/lang/Enum;)V
+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;
+Ljava/util/EnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V
+Ljava/util/EnumSet;->addAll()V
+Ljava/util/EnumSet;->addRange(Ljava/lang/Enum;Ljava/lang/Enum;)V
+Ljava/util/EnumSet;->complement()V
+Ljava/util/EnumSet;->getUniverse(Ljava/lang/Class;)[Ljava/lang/Enum;
+Ljava/util/EnumSet;->typeCheck(Ljava/lang/Enum;)V
+Ljava/util/EnumSet;->universe:[Ljava/lang/Enum;
+Ljava/util/EnumSet;->ZERO_LENGTH_ENUM_ARRAY:[Ljava/lang/Enum;
+Ljava/util/EventListenerProxy;->listener:Ljava/util/EventListener;
+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
+Ljava/util/Formatter$Conversion;->CHARACTER:C
+Ljava/util/Formatter$Conversion;->CHARACTER_UPPER:C
+Ljava/util/Formatter$Conversion;->DATE_TIME:C
+Ljava/util/Formatter$Conversion;->DATE_TIME_UPPER:C
+Ljava/util/Formatter$Conversion;->DECIMAL_FLOAT:C
+Ljava/util/Formatter$Conversion;->DECIMAL_INTEGER:C
+Ljava/util/Formatter$Conversion;->GENERAL:C
+Ljava/util/Formatter$Conversion;->GENERAL_UPPER:C
+Ljava/util/Formatter$Conversion;->HASHCODE:C
+Ljava/util/Formatter$Conversion;->HASHCODE_UPPER:C
+Ljava/util/Formatter$Conversion;->HEXADECIMAL_FLOAT:C
+Ljava/util/Formatter$Conversion;->HEXADECIMAL_FLOAT_UPPER:C
+Ljava/util/Formatter$Conversion;->HEXADECIMAL_INTEGER:C
+Ljava/util/Formatter$Conversion;->HEXADECIMAL_INTEGER_UPPER:C
+Ljava/util/Formatter$Conversion;->isCharacter(C)Z
+Ljava/util/Formatter$Conversion;->isFloat(C)Z
+Ljava/util/Formatter$Conversion;->isGeneral(C)Z
+Ljava/util/Formatter$Conversion;->isInteger(C)Z
+Ljava/util/Formatter$Conversion;->isText(C)Z
+Ljava/util/Formatter$Conversion;->isValid(C)Z
+Ljava/util/Formatter$Conversion;->LINE_SEPARATOR:C
+Ljava/util/Formatter$Conversion;->OCTAL_INTEGER:C
+Ljava/util/Formatter$Conversion;->PERCENT_SIGN:C
+Ljava/util/Formatter$Conversion;->SCIENTIFIC:C
+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
+Ljava/util/Formatter$DateTime;->DATE:C
+Ljava/util/Formatter$DateTime;->DATE_TIME:C
+Ljava/util/Formatter$DateTime;->DAY_OF_MONTH:C
+Ljava/util/Formatter$DateTime;->DAY_OF_MONTH_0:C
+Ljava/util/Formatter$DateTime;->DAY_OF_YEAR:C
+Ljava/util/Formatter$DateTime;->HOUR:C
+Ljava/util/Formatter$DateTime;->HOUR_0:C
+Ljava/util/Formatter$DateTime;->HOUR_OF_DAY:C
+Ljava/util/Formatter$DateTime;->HOUR_OF_DAY_0:C
+Ljava/util/Formatter$DateTime;->ISO_STANDARD_DATE:C
+Ljava/util/Formatter$DateTime;->isValid(C)Z
+Ljava/util/Formatter$DateTime;->MILLISECOND:C
+Ljava/util/Formatter$DateTime;->MILLISECOND_SINCE_EPOCH:C
+Ljava/util/Formatter$DateTime;->MINUTE:C
+Ljava/util/Formatter$DateTime;->MONTH:C
+Ljava/util/Formatter$DateTime;->NAME_OF_DAY:C
+Ljava/util/Formatter$DateTime;->NAME_OF_DAY_ABBREV:C
+Ljava/util/Formatter$DateTime;->NAME_OF_MONTH:C
+Ljava/util/Formatter$DateTime;->NAME_OF_MONTH_ABBREV:C
+Ljava/util/Formatter$DateTime;->NAME_OF_MONTH_ABBREV_X:C
+Ljava/util/Formatter$DateTime;->NANOSECOND:C
+Ljava/util/Formatter$DateTime;->SECOND:C
+Ljava/util/Formatter$DateTime;->SECONDS_SINCE_EPOCH:C
+Ljava/util/Formatter$DateTime;->TIME:C
+Ljava/util/Formatter$DateTime;->TIME_12_HOUR:C
+Ljava/util/Formatter$DateTime;->TIME_24_HOUR:C
+Ljava/util/Formatter$DateTime;->YEAR_2:C
+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;
+Ljava/util/Formatter$Flags;->contains(Ljava/util/Formatter$Flags;)Z
+Ljava/util/Formatter$Flags;->dup()Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->flags:I
+Ljava/util/Formatter$Flags;->GROUP:Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->LEADING_SPACE:Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->LEFT_JUSTIFY:Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->NONE:Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->PARENTHESES:Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->parse(C)Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->parse(Ljava/lang/String;)Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->PLUS:Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->PREVIOUS:Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->remove(Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$Flags;->toString(Ljava/util/Formatter$Flags;)Ljava/lang/String;
+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
+Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->hasDot()Z
+Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->layout(Ljava/math/BigInteger;ILjava/util/Formatter$BigDecimalLayoutForm;)V
+Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->layoutChars()[C
+Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->mant:Ljava/lang/StringBuilder;
+Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->mantissa()[C
+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
+Ljava/util/Formatter$FormatSpecifier;->checkGeneral()V
+Ljava/util/Formatter$FormatSpecifier;->checkInteger()V
+Ljava/util/Formatter$FormatSpecifier;->checkNumeric()V
+Ljava/util/Formatter$FormatSpecifier;->checkText()V
+Ljava/util/Formatter$FormatSpecifier;->conversion()C
+Ljava/util/Formatter$FormatSpecifier;->conversion(Ljava/lang/String;)C
+Ljava/util/Formatter$FormatSpecifier;->dt:Z
+Ljava/util/Formatter$FormatSpecifier;->f:Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$FormatSpecifier;->failConversion(CLjava/lang/Object;)V
+Ljava/util/Formatter$FormatSpecifier;->failMismatch(Ljava/util/Formatter$Flags;C)V
+Ljava/util/Formatter$FormatSpecifier;->flags()Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$FormatSpecifier;->flags(Ljava/lang/String;)Ljava/util/Formatter$Flags;
+Ljava/util/Formatter$FormatSpecifier;->getZero(Ljava/util/Locale;)C
+Ljava/util/Formatter$FormatSpecifier;->hexDouble(DI)Ljava/lang/String;
+Ljava/util/Formatter$FormatSpecifier;->index()I
+Ljava/util/Formatter$FormatSpecifier;->index(Ljava/lang/String;)I
+Ljava/util/Formatter$FormatSpecifier;->index:I
+Ljava/util/Formatter$FormatSpecifier;->justify(Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
+Ljava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;JLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
+Ljava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;[CLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
+Ljava/util/Formatter$FormatSpecifier;->precision()I
+Ljava/util/Formatter$FormatSpecifier;->precision(Ljava/lang/String;)I
+Ljava/util/Formatter$FormatSpecifier;->precision:I
+Ljava/util/Formatter$FormatSpecifier;->print(BLjava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(DLjava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(FLjava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(ILjava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(JLjava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/Object;Ljava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/String;)V
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;DLjava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/math/BigDecimal;Ljava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/time/temporal/TemporalAccessor;CLjava/util/Locale;)Ljava/lang/Appendable;
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/util/Calendar;CLjava/util/Locale;)Ljava/lang/Appendable;
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/math/BigDecimal;Ljava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/math/BigInteger;Ljava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/time/temporal/TemporalAccessor;CLjava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(Ljava/util/Calendar;CLjava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->print(SLjava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->printBoolean(Ljava/lang/Object;)V
+Ljava/util/Formatter$FormatSpecifier;->printCharacter(Ljava/lang/Object;)V
+Ljava/util/Formatter$FormatSpecifier;->printDateTime(Ljava/lang/Object;Ljava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->printFloat(Ljava/lang/Object;Ljava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->printHashCode(Ljava/lang/Object;)V
+Ljava/util/Formatter$FormatSpecifier;->printInteger(Ljava/lang/Object;Ljava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->printString(Ljava/lang/Object;Ljava/util/Locale;)V
+Ljava/util/Formatter$FormatSpecifier;->trailingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
+Ljava/util/Formatter$FormatSpecifier;->trailingZeros([CI)[C
+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;
+Ljava/util/Formatter$FormatSpecifierParser;->cursor:I
+Ljava/util/Formatter$FormatSpecifierParser;->FLAGS:Ljava/lang/String;
+Ljava/util/Formatter$FormatSpecifierParser;->flags:Ljava/lang/String;
+Ljava/util/Formatter$FormatSpecifierParser;->format:Ljava/lang/String;
+Ljava/util/Formatter$FormatSpecifierParser;->fs:Ljava/util/Formatter$FormatSpecifier;
+Ljava/util/Formatter$FormatSpecifierParser;->getEndIdx()I
+Ljava/util/Formatter$FormatSpecifierParser;->getFormatSpecifier()Ljava/util/Formatter$FormatSpecifier;
+Ljava/util/Formatter$FormatSpecifierParser;->index:Ljava/lang/String;
+Ljava/util/Formatter$FormatSpecifierParser;->isEnd()Z
+Ljava/util/Formatter$FormatSpecifierParser;->nextInt()Ljava/lang/String;
+Ljava/util/Formatter$FormatSpecifierParser;->nextIsInt()Z
+Ljava/util/Formatter$FormatSpecifierParser;->peek()C
+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
+Ljava/util/Formatter;-><init>(Ljava/util/Locale;Ljava/lang/Appendable;)V
+Ljava/util/Formatter;->a:Ljava/lang/Appendable;
+Ljava/util/Formatter;->ensureOpen()V
+Ljava/util/Formatter;->getZero(Ljava/util/Locale;)C
+Ljava/util/Formatter;->l:Ljava/util/Locale;
+Ljava/util/Formatter;->lastException:Ljava/io/IOException;
+Ljava/util/Formatter;->MAX_FD_CHARS:I
+Ljava/util/Formatter;->nonNullAppendable(Ljava/lang/Appendable;)Ljava/lang/Appendable;
+Ljava/util/Formatter;->parse(Ljava/lang/String;)[Ljava/util/Formatter$FormatString;
+Ljava/util/Formatter;->scaleUp:D
+Ljava/util/Formatter;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
+Ljava/util/Formatter;->zero:C
+Ljava/util/GregorianCalendar;-><init>(IIIIIII)V
+Ljava/util/GregorianCalendar;-><init>(J)V
+Ljava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;Z)V
+Ljava/util/GregorianCalendar;->actualMonthLength()I
+Ljava/util/GregorianCalendar;->adjustDstOffsetForInvalidWallClock(JLjava/util/TimeZone;I)I
+Ljava/util/GregorianCalendar;->adjustForZoneAndDaylightSavingsTime(IJLjava/util/TimeZone;)J
+Ljava/util/GregorianCalendar;->BCE:I
+Ljava/util/GregorianCalendar;->cachedFixedDate:J
+Ljava/util/GregorianCalendar;->calsys:Lsun/util/calendar/BaseCalendar;
+Ljava/util/GregorianCalendar;->cdate:Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/GregorianCalendar;->CE:I
+Ljava/util/GregorianCalendar;->computeFields(II)I
+Ljava/util/GregorianCalendar;->DEFAULT_GREGORIAN_CUTOVER:J
+Ljava/util/GregorianCalendar;->EPOCH_OFFSET:I
+Ljava/util/GregorianCalendar;->EPOCH_YEAR:I
+Ljava/util/GregorianCalendar;->gcal:Lsun/util/calendar/Gregorian;
+Ljava/util/GregorianCalendar;->gdate:Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/GregorianCalendar;->getCalendarDate(J)Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/GregorianCalendar;->getCurrentFixedDate()J
+Ljava/util/GregorianCalendar;->getCutoverCalendarSystem()Lsun/util/calendar/BaseCalendar;
+Ljava/util/GregorianCalendar;->getFixedDate(Lsun/util/calendar/BaseCalendar;II)J
+Ljava/util/GregorianCalendar;->getFixedDateJan1(Lsun/util/calendar/BaseCalendar$Date;J)J
+Ljava/util/GregorianCalendar;->getFixedDateMonth1(Lsun/util/calendar/BaseCalendar$Date;J)J
+Ljava/util/GregorianCalendar;->getGregorianCutoverDate()Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/GregorianCalendar;->getJulianCalendarSystem()Lsun/util/calendar/BaseCalendar;
+Ljava/util/GregorianCalendar;->getLastJulianDate()Lsun/util/calendar/BaseCalendar$Date;
+Ljava/util/GregorianCalendar;->getNormalizedCalendar()Ljava/util/GregorianCalendar;
+Ljava/util/GregorianCalendar;->getRolledValue(IIII)I
+Ljava/util/GregorianCalendar;->getWeekNumber(JJ)I
+Ljava/util/GregorianCalendar;->getYearOffsetInMillis()J
+Ljava/util/GregorianCalendar;->gregorianCutover:J
+Ljava/util/GregorianCalendar;->gregorianCutoverDate:J
+Ljava/util/GregorianCalendar;->gregorianCutoverYear:I
+Ljava/util/GregorianCalendar;->gregorianCutoverYearJulian:I
+Ljava/util/GregorianCalendar;->internalGetEra()I
+Ljava/util/GregorianCalendar;->isCutoverYear(I)Z
+Ljava/util/GregorianCalendar;->jcal:Lsun/util/calendar/JulianCalendar;
+Ljava/util/GregorianCalendar;->jeras:[Lsun/util/calendar/Era;
+Ljava/util/GregorianCalendar;->LEAP_MONTH_LENGTH:[I
+Ljava/util/GregorianCalendar;->LEAST_MAX_VALUES:[I
+Ljava/util/GregorianCalendar;->MAX_VALUES:[I
+Ljava/util/GregorianCalendar;->MIN_VALUES:[I
+Ljava/util/GregorianCalendar;->monthLength(I)I
+Ljava/util/GregorianCalendar;->monthLength(II)I
+Ljava/util/GregorianCalendar;->MONTH_LENGTH:[I
+Ljava/util/GregorianCalendar;->ONE_DAY:J
+Ljava/util/GregorianCalendar;->ONE_HOUR:I
+Ljava/util/GregorianCalendar;->ONE_MINUTE:I
+Ljava/util/GregorianCalendar;->ONE_SECOND:I
+Ljava/util/GregorianCalendar;->ONE_WEEK:J
+Ljava/util/GregorianCalendar;->originalFields:[I
+Ljava/util/GregorianCalendar;->pinDayOfMonth()V
+Ljava/util/GregorianCalendar;->setGregorianChange(J)V
+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
+Ljava/util/HashMap$HashMapSpliterator;->estimateSize()J
+Ljava/util/HashMap$HashMapSpliterator;->expectedModCount:I
+Ljava/util/HashMap$HashMapSpliterator;->fence:I
+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;
+Ljava/util/HashMap$TreeNode;->checkInvariants(Ljava/util/HashMap$TreeNode;)Z
+Ljava/util/HashMap$TreeNode;->find(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->getTreeNode(ILjava/lang/Object;)Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->left:Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->moveRootToFront([Ljava/util/HashMap$Node;Ljava/util/HashMap$TreeNode;)V
+Ljava/util/HashMap$TreeNode;->parent:Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->prev:Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->putTreeVal(Ljava/util/HashMap;[Ljava/util/HashMap$Node;ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->red:Z
+Ljava/util/HashMap$TreeNode;->removeTreeNode(Ljava/util/HashMap;[Ljava/util/HashMap$Node;Z)V
+Ljava/util/HashMap$TreeNode;->right:Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->root()Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->rotateLeft(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->rotateRight(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap$TreeNode;->split(Ljava/util/HashMap;[Ljava/util/HashMap$Node;II)V
+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
+Ljava/util/HashMap;->afterNodeAccess(Ljava/util/HashMap$Node;)V
+Ljava/util/HashMap;->afterNodeInsertion(Z)V
+Ljava/util/HashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V
+Ljava/util/HashMap;->capacity()I
+Ljava/util/HashMap;->comparableClassFor(Ljava/lang/Object;)Ljava/lang/Class;
+Ljava/util/HashMap;->compareComparables(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;)I
+Ljava/util/HashMap;->DEFAULT_INITIAL_CAPACITY:I
+Ljava/util/HashMap;->DEFAULT_LOAD_FACTOR:F
+Ljava/util/HashMap;->entrySet:Ljava/util/Set;
+Ljava/util/HashMap;->getNode(ILjava/lang/Object;)Ljava/util/HashMap$Node;
+Ljava/util/HashMap;->hash(Ljava/lang/Object;)I
+Ljava/util/HashMap;->internalWriteEntries(Ljava/io/ObjectOutputStream;)V
+Ljava/util/HashMap;->loadFactor()F
+Ljava/util/HashMap;->loadFactor:F
+Ljava/util/HashMap;->MAXIMUM_CAPACITY:I
+Ljava/util/HashMap;->MIN_TREEIFY_CAPACITY:I
+Ljava/util/HashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+Ljava/util/HashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap;->putMapEntries(Ljava/util/Map;Z)V
+Ljava/util/HashMap;->putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;
+Ljava/util/HashMap;->reinitialize()V
+Ljava/util/HashMap;->removeNode(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/util/HashMap$Node;
+Ljava/util/HashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+Ljava/util/HashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
+Ljava/util/HashMap;->resize()[Ljava/util/HashMap$Node;
+Ljava/util/HashMap;->size:I
+Ljava/util/HashMap;->tableSizeFor(I)I
+Ljava/util/HashMap;->threshold:I
+Ljava/util/HashMap;->treeifyBin([Ljava/util/HashMap$Node;I)V
+Ljava/util/HashMap;->TREEIFY_THRESHOLD:I
+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
+Ljava/util/Hashtable$Enumerator;->iterator:Z
+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
+Ljava/util/Hashtable;->entrySet:Ljava/util/Set;
+Ljava/util/Hashtable;->getEnumeration(I)Ljava/util/Enumeration;
+Ljava/util/Hashtable;->getIterator(I)Ljava/util/Iterator;
+Ljava/util/Hashtable;->KEYS:I
+Ljava/util/Hashtable;->keySet:Ljava/util/Set;
+Ljava/util/Hashtable;->loadFactor:F
+Ljava/util/Hashtable;->MAX_ARRAY_SIZE:I
+Ljava/util/Hashtable;->modCount:I
+Ljava/util/Hashtable;->reconstitutionPut([Ljava/util/Hashtable$HashtableEntry;Ljava/lang/Object;Ljava/lang/Object;)V
+Ljava/util/Hashtable;->table:[Ljava/util/Hashtable$HashtableEntry;
+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
+Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->expectedModCount:I
+Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->fence:I
+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
+Ljava/util/IdentityHashMap;->capacity(I)I
+Ljava/util/IdentityHashMap;->closeDeletion(I)V
+Ljava/util/IdentityHashMap;->containsMapping(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/IdentityHashMap;->DEFAULT_CAPACITY:I
+Ljava/util/IdentityHashMap;->entrySet:Ljava/util/Set;
+Ljava/util/IdentityHashMap;->hash(Ljava/lang/Object;I)I
+Ljava/util/IdentityHashMap;->init(I)V
+Ljava/util/IdentityHashMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/IdentityHashMap;->MAXIMUM_CAPACITY:I
+Ljava/util/IdentityHashMap;->MINIMUM_CAPACITY:I
+Ljava/util/IdentityHashMap;->modCount:I
+Ljava/util/IdentityHashMap;->nextKeyIndex(II)I
+Ljava/util/IdentityHashMap;->NULL_KEY:Ljava/lang/Object;
+Ljava/util/IdentityHashMap;->putForCreate(Ljava/lang/Object;Ljava/lang/Object;)V
+Ljava/util/IdentityHashMap;->removeMapping(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/IdentityHashMap;->resize(I)Z
+Ljava/util/IdentityHashMap;->size:I
+Ljava/util/IdentityHashMap;->table:[Ljava/lang/Object;
+Ljava/util/IdentityHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/IllegalFormatCodePointException;->c:I
+Ljava/util/IllegalFormatConversionException;->arg:Ljava/lang/Class;
+Ljava/util/IllegalFormatConversionException;->c:C
+Ljava/util/IllegalFormatException;-><init>()V
+Ljava/util/IllegalFormatFlagsException;->flags:Ljava/lang/String;
+Ljava/util/IllegalFormatPrecisionException;->p:I
+Ljava/util/IllegalFormatWidthException;->w:I
+Ljava/util/IllformedLocaleException;->_errIdx:I
+Ljava/util/IntSummaryStatistics;->count:J
+Ljava/util/IntSummaryStatistics;->max:I
+Ljava/util/IntSummaryStatistics;->min:I
+Ljava/util/IntSummaryStatistics;->sum:J
+Ljava/util/jar/Attributes$Name;->hashCode:I
+Ljava/util/jar/Attributes$Name;->isAlpha(C)Z
+Ljava/util/jar/Attributes$Name;->isDigit(C)Z
+Ljava/util/jar/Attributes$Name;->isValid(C)Z
+Ljava/util/jar/Attributes$Name;->isValid(Ljava/lang/String;)Z
+Ljava/util/jar/Attributes$Name;->name:Ljava/lang/String;
+Ljava/util/jar/Attributes$Name;->NAME:Ljava/util/jar/Attributes$Name;
+Ljava/util/jar/Attributes;->read(Ljava/util/jar/Manifest$FastInputStream;[B)V
+Ljava/util/jar/Attributes;->write(Ljava/io/DataOutputStream;)V
+Ljava/util/jar/Attributes;->writeMain(Ljava/io/DataOutputStream;)V
+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
+Ljava/util/jar/JarFile;->CLASSPATH_OPTOSFT:[I
+Ljava/util/jar/JarFile;->getBytes(Ljava/util/zip/ZipEntry;)[B
+Ljava/util/jar/JarFile;->getManEntry()Ljava/util/jar/JarEntry;
+Ljava/util/jar/JarFile;->getManifestFromReference()Ljava/util/jar/Manifest;
+Ljava/util/jar/JarFile;->getMetaInfEntryNames()[Ljava/lang/String;
+Ljava/util/jar/JarFile;->hasCheckedSpecialAttributes:Z
+Ljava/util/jar/JarFile;->hasClassPathAttribute()Z
+Ljava/util/jar/JarFile;->hasClassPathAttribute:Z
+Ljava/util/jar/JarFile;->initializeVerifier()V
+Ljava/util/jar/JarFile;->jv:Ljava/util/jar/JarVerifier;
+Ljava/util/jar/JarFile;->jvInitialized:Z
+Ljava/util/jar/JarFile;->manEntry:Ljava/util/jar/JarEntry;
+Ljava/util/jar/JarFile;->match([C[B[I[I)Z
+Ljava/util/jar/JarFile;->maybeInstantiateVerifier()V
+Ljava/util/jar/JarFile;->META_DIR:Ljava/lang/String;
+Ljava/util/jar/JarFile;->newEntry(Ljava/util/zip/ZipEntry;)Ljava/util/jar/JarEntry;
+Ljava/util/jar/JarFile;->verify:Z
+Ljava/util/jar/JarInputStream;->checkManifest(Ljava/util/jar/JarEntry;)Ljava/util/jar/JarEntry;
+Ljava/util/jar/JarInputStream;->doVerify:Z
+Ljava/util/jar/JarInputStream;->first:Ljava/util/jar/JarEntry;
+Ljava/util/jar/JarInputStream;->getBytes(Ljava/io/InputStream;)[B
+Ljava/util/jar/JarInputStream;->jv:Ljava/util/jar/JarVerifier;
+Ljava/util/jar/JarInputStream;->man:Ljava/util/jar/Manifest;
+Ljava/util/jar/JarInputStream;->mev:Lsun/security/util/ManifestEntryVerifier;
+Ljava/util/jar/JarInputStream;->tryManifest:Z
+Ljava/util/jar/JarOutputStream;->firstEntry:Z
+Ljava/util/jar/JarOutputStream;->get16([BI)I
+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;
+Ljava/util/jar/JarVerifier$VerifierCodeSource;->getPrivateCertificates()[Ljava/security/cert/Certificate;
+Ljava/util/jar/JarVerifier$VerifierCodeSource;->getPrivateSigners()[Ljava/security/CodeSigner;
+Ljava/util/jar/JarVerifier$VerifierCodeSource;->isSameDomain(Ljava/lang/Object;)Z
+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;
+Ljava/util/jar/JarVerifier;->beginEntry(Ljava/util/jar/JarEntry;Lsun/security/util/ManifestEntryVerifier;)V
+Ljava/util/jar/JarVerifier;->csdomain:Ljava/lang/Object;
+Ljava/util/jar/JarVerifier;->debug:Lsun/security/util/Debug;
+Ljava/util/jar/JarVerifier;->doneWithMeta()V
+Ljava/util/jar/JarVerifier;->eagerValidation:Z
+Ljava/util/jar/JarVerifier;->emptyEnumeration:Ljava/util/Enumeration;
+Ljava/util/jar/JarVerifier;->emptySigner:[Ljava/security/CodeSigner;
+Ljava/util/jar/JarVerifier;->entries2(Ljava/util/jar/JarFile;Ljava/util/Enumeration;)Ljava/util/Enumeration;
+Ljava/util/jar/JarVerifier;->entryNames(Ljava/util/jar/JarFile;[Ljava/security/CodeSource;)Ljava/util/Enumeration;
+Ljava/util/jar/JarVerifier;->findMatchingSigners(Ljava/security/CodeSource;)[Ljava/security/CodeSigner;
+Ljava/util/jar/JarVerifier;->getCerts(Ljava/lang/String;)[Ljava/security/cert/Certificate;
+Ljava/util/jar/JarVerifier;->getCerts(Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;)[Ljava/security/cert/Certificate;
+Ljava/util/jar/JarVerifier;->getCodeSigners(Ljava/lang/String;)[Ljava/security/CodeSigner;
+Ljava/util/jar/JarVerifier;->getCodeSigners(Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;)[Ljava/security/CodeSigner;
+Ljava/util/jar/JarVerifier;->getCodeSource(Ljava/net/URL;Ljava/lang/String;)Ljava/security/CodeSource;
+Ljava/util/jar/JarVerifier;->getCodeSource(Ljava/net/URL;Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;)Ljava/security/CodeSource;
+Ljava/util/jar/JarVerifier;->getCodeSources(Ljava/util/jar/JarFile;Ljava/net/URL;)[Ljava/security/CodeSource;
+Ljava/util/jar/JarVerifier;->getJarCodeSigners()Ljava/util/List;
+Ljava/util/jar/JarVerifier;->getManifestDigests()Ljava/util/List;
+Ljava/util/jar/JarVerifier;->getUnsignedCS(Ljava/net/URL;)Ljava/security/CodeSource;
+Ljava/util/jar/JarVerifier;->isSigningRelated(Ljava/lang/String;)Z
+Ljava/util/jar/JarVerifier;->jarCodeSigners:Ljava/util/List;
+Ljava/util/jar/JarVerifier;->lastURL:Ljava/net/URL;
+Ljava/util/jar/JarVerifier;->lastURLMap:Ljava/util/Map;
+Ljava/util/jar/JarVerifier;->manDig:Lsun/security/util/ManifestDigester;
+Ljava/util/jar/JarVerifier;->manifestDigests:Ljava/util/List;
+Ljava/util/jar/JarVerifier;->manifestRawBytes:[B
+Ljava/util/jar/JarVerifier;->mapSignersToCertArray([Ljava/security/CodeSigner;)[Ljava/security/cert/Certificate;
+Ljava/util/jar/JarVerifier;->mapSignersToCodeSource(Ljava/net/URL;[Ljava/security/CodeSigner;)Ljava/security/CodeSource;
+Ljava/util/jar/JarVerifier;->mapSignersToCodeSources(Ljava/net/URL;Ljava/util/List;Z)[Ljava/security/CodeSource;
+Ljava/util/jar/JarVerifier;->nothingToVerify()Z
+Ljava/util/jar/JarVerifier;->parsingBlockOrSF:Z
+Ljava/util/jar/JarVerifier;->parsingMeta:Z
+Ljava/util/jar/JarVerifier;->pendingBlocks:Ljava/util/ArrayList;
+Ljava/util/jar/JarVerifier;->processEntry(Lsun/security/util/ManifestEntryVerifier;)V
+Ljava/util/jar/JarVerifier;->setEagerValidation(Z)V
+Ljava/util/jar/JarVerifier;->sigFileData:Ljava/util/Hashtable;
+Ljava/util/jar/JarVerifier;->sigFileSigners:Ljava/util/Hashtable;
+Ljava/util/jar/JarVerifier;->signerCache:Ljava/util/ArrayList;
+Ljava/util/jar/JarVerifier;->signerMap()Ljava/util/Map;
+Ljava/util/jar/JarVerifier;->signerMap:Ljava/util/Map;
+Ljava/util/jar/JarVerifier;->signerToCodeSource:Ljava/util/Map;
+Ljava/util/jar/JarVerifier;->unsignedEntryNames(Ljava/util/jar/JarFile;)Ljava/util/Enumeration;
+Ljava/util/jar/JarVerifier;->update(ILsun/security/util/ManifestEntryVerifier;)V
+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
+Ljava/util/jar/Manifest$FastInputStream;->count:I
+Ljava/util/jar/Manifest$FastInputStream;->fill()V
+Ljava/util/jar/Manifest$FastInputStream;->peek()B
+Ljava/util/jar/Manifest$FastInputStream;->pos:I
+Ljava/util/jar/Manifest$FastInputStream;->readLine([B)I
+Ljava/util/jar/Manifest$FastInputStream;->readLine([BII)I
+Ljava/util/jar/Manifest;->attr:Ljava/util/jar/Attributes;
+Ljava/util/jar/Manifest;->entries:Ljava/util/Map;
+Ljava/util/jar/Manifest;->make72Safe(Ljava/lang/StringBuffer;)V
+Ljava/util/jar/Manifest;->parseName([BI)Ljava/lang/String;
+Ljava/util/jar/Manifest;->toLower(I)I
+Ljava/util/jar/Pack200;-><init>()V
+Ljava/util/jar/Pack200;->newInstance(Ljava/lang/String;)Ljava/lang/Object;
+Ljava/util/jar/Pack200;->packerImpl:Ljava/lang/Class;
+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
+Ljava/util/LinkedHashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V
+Ljava/util/LinkedHashMap;->head:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
+Ljava/util/LinkedHashMap;->internalWriteEntries(Ljava/io/ObjectOutputStream;)V
+Ljava/util/LinkedHashMap;->linkNodeLast(Ljava/util/LinkedHashMap$LinkedHashMapEntry;)V
+Ljava/util/LinkedHashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+Ljava/util/LinkedHashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
+Ljava/util/LinkedHashMap;->reinitialize()V
+Ljava/util/LinkedHashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+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
+Ljava/util/LinkedList$LLSpliterator;->current:Ljava/util/LinkedList$Node;
+Ljava/util/LinkedList$LLSpliterator;->est:I
+Ljava/util/LinkedList$LLSpliterator;->expectedModCount:I
+Ljava/util/LinkedList$LLSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+Ljava/util/LinkedList$LLSpliterator;->getEst()I
+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
+Ljava/util/LinkedList;->checkPositionIndex(I)V
+Ljava/util/LinkedList;->isElementIndex(I)Z
+Ljava/util/LinkedList;->isPositionIndex(I)Z
+Ljava/util/LinkedList;->last:Ljava/util/LinkedList$Node;
+Ljava/util/LinkedList;->linkBefore(Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
+Ljava/util/LinkedList;->linkFirst(Ljava/lang/Object;)V
+Ljava/util/LinkedList;->linkLast(Ljava/lang/Object;)V
+Ljava/util/LinkedList;->node(I)Ljava/util/LinkedList$Node;
+Ljava/util/LinkedList;->outOfBoundsMsg(I)Ljava/lang/String;
+Ljava/util/LinkedList;->superClone()Ljava/util/LinkedList;
+Ljava/util/LinkedList;->unlink(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
+Ljava/util/LinkedList;->unlinkFirst(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
+Ljava/util/LinkedList;->unlinkLast(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
+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
+Ljava/util/Locale;->adjustLanguageCode(Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/Locale;->baseLocale:Lsun/util/locale/BaseLocale;
+Ljava/util/Locale;->composeList(Ljava/text/MessageFormat;[Ljava/lang/String;)[Ljava/lang/String;
+Ljava/util/Locale;->convertOldISOCodes(Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/Locale;->defaultDisplayLocale:Ljava/util/Locale;
+Ljava/util/Locale;->defaultFormatLocale:Ljava/util/Locale;
+Ljava/util/Locale;->DISPLAY_COUNTRY:I
+Ljava/util/Locale;->DISPLAY_LANGUAGE:I
+Ljava/util/Locale;->DISPLAY_SCRIPT:I
+Ljava/util/Locale;->DISPLAY_VARIANT:I
+Ljava/util/Locale;->formatList([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/Locale;->getBaseLocale()Lsun/util/locale/BaseLocale;
+Ljava/util/Locale;->getCompatibilityExtensions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/LocaleExtensions;
+Ljava/util/Locale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Locale;
+Ljava/util/Locale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
+Ljava/util/Locale;->getLocaleExtensions()Lsun/util/locale/LocaleExtensions;
+Ljava/util/Locale;->hashCodeValue:I
+Ljava/util/Locale;->initDefault()Ljava/util/Locale;
+Ljava/util/Locale;->initDefault(Ljava/util/Locale$Category;)Ljava/util/Locale;
+Ljava/util/Locale;->isAsciiAlphaNum(Ljava/lang/String;)Z
+Ljava/util/Locale;->isoCountries:[Ljava/lang/String;
+Ljava/util/Locale;->isoLanguages:[Ljava/lang/String;
+Ljava/util/Locale;->isUnicodeExtensionKey(Ljava/lang/String;)Z
+Ljava/util/Locale;->isUnM49AreaCode(Ljava/lang/String;)Z
+Ljava/util/Locale;->isValidBcp47Alpha(Ljava/lang/String;II)Z
+Ljava/util/Locale;->isValidVariantSubtag(Ljava/lang/String;)Z
+Ljava/util/Locale;->languageTag:Ljava/lang/String;
+Ljava/util/Locale;->LOCALECACHE:Ljava/util/Locale$Cache;
+Ljava/util/Locale;->localeExtensions:Lsun/util/locale/LocaleExtensions;
+Ljava/util/Locale;->normalizeAndValidateLanguage(Ljava/lang/String;Z)Ljava/lang/String;
+Ljava/util/Locale;->normalizeAndValidateRegion(Ljava/lang/String;Z)Ljava/lang/String;
+Ljava/util/Locale;->normalizeAndValidateVariant(Ljava/lang/String;)Ljava/lang/String;
+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
+Ljava/util/logging/FileHandler;->configure()V
+Ljava/util/logging/FileHandler;->count:I
+Ljava/util/logging/FileHandler;->files:[Ljava/io/File;
+Ljava/util/logging/FileHandler;->generate(Ljava/lang/String;II)Ljava/io/File;
+Ljava/util/logging/FileHandler;->isParentWritable(Ljava/nio/file/Path;)Z
+Ljava/util/logging/FileHandler;->limit:I
+Ljava/util/logging/FileHandler;->lockFileChannel:Ljava/nio/channels/FileChannel;
+Ljava/util/logging/FileHandler;->lockFileName:Ljava/lang/String;
+Ljava/util/logging/FileHandler;->locks:Ljava/util/Set;
+Ljava/util/logging/FileHandler;->MAX_LOCKS:I
+Ljava/util/logging/FileHandler;->meter:Ljava/util/logging/FileHandler$MeteredStream;
+Ljava/util/logging/FileHandler;->open(Ljava/io/File;Z)V
+Ljava/util/logging/FileHandler;->openFiles()V
+Ljava/util/logging/FileHandler;->pattern:Ljava/lang/String;
+Ljava/util/logging/FileHandler;->rotate()V
+Ljava/util/logging/Handler;->checkPermission()V
+Ljava/util/logging/Handler;->encoding:Ljava/lang/String;
+Ljava/util/logging/Handler;->errorManager:Ljava/util/logging/ErrorManager;
+Ljava/util/logging/Handler;->filter:Ljava/util/logging/Filter;
+Ljava/util/logging/Handler;->formatter:Ljava/util/logging/Formatter;
+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;
+Ljava/util/logging/Level$KnownLevel;->findByName(Ljava/lang/String;)Ljava/util/logging/Level$KnownLevel;
+Ljava/util/logging/Level$KnownLevel;->findByValue(I)Ljava/util/logging/Level$KnownLevel;
+Ljava/util/logging/Level$KnownLevel;->intToLevels:Ljava/util/Map;
+Ljava/util/logging/Level$KnownLevel;->levelObject:Ljava/util/logging/Level;
+Ljava/util/logging/Level$KnownLevel;->matches(Ljava/util/logging/Level;)Ljava/util/logging/Level$KnownLevel;
+Ljava/util/logging/Level$KnownLevel;->mirroredLevel:Ljava/util/logging/Level;
+Ljava/util/logging/Level$KnownLevel;->nameToLevels:Ljava/util/Map;
+Ljava/util/logging/Level;-><init>(Ljava/lang/String;ILjava/lang/String;Z)V
+Ljava/util/logging/Level;->cachedLocale:Ljava/util/Locale;
+Ljava/util/logging/Level;->computeLocalizedLevelName(Ljava/util/Locale;)Ljava/lang/String;
+Ljava/util/logging/Level;->defaultBundle:Ljava/lang/String;
+Ljava/util/logging/Level;->findLevel(Ljava/lang/String;)Ljava/util/logging/Level;
+Ljava/util/logging/Level;->getCachedLocalizedLevelName()Ljava/lang/String;
+Ljava/util/logging/Level;->getLevelName()Ljava/lang/String;
+Ljava/util/logging/Level;->getLocalizedLevelName()Ljava/lang/String;
+Ljava/util/logging/Level;->localizedLevelName:Ljava/lang/String;
+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
+Ljava/util/logging/Logger;-><init>(Ljava/lang/String;)V
+Ljava/util/logging/Logger;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Ljava/util/logging/LogManager;Z)V
+Ljava/util/logging/Logger;->accessCheckedHandlers()[Ljava/util/logging/Handler;
+Ljava/util/logging/Logger;->anonymous:Z
+Ljava/util/logging/Logger;->callersClassLoaderRef:Ljava/lang/ref/WeakReference;
+Ljava/util/logging/Logger;->catalog:Ljava/util/ResourceBundle;
+Ljava/util/logging/Logger;->catalogLocale:Ljava/util/Locale;
+Ljava/util/logging/Logger;->catalogName:Ljava/lang/String;
+Ljava/util/logging/Logger;->checkPermission()V
+Ljava/util/logging/Logger;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger;
+Ljava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;)V
+Ljava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;Ljava/lang/String;)V
+Ljava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;Ljava/util/ResourceBundle;)V
+Ljava/util/logging/Logger;->doSetParent(Ljava/util/logging/Logger;)V
+Ljava/util/logging/Logger;->emptyHandlers:[Ljava/util/logging/Handler;
+Ljava/util/logging/Logger;->filter:Ljava/util/logging/Filter;
+Ljava/util/logging/Logger;->findResourceBundle(Ljava/lang/String;Z)Ljava/util/ResourceBundle;
+Ljava/util/logging/Logger;->findSystemResourceBundle(Ljava/util/Locale;)Ljava/util/ResourceBundle;
+Ljava/util/logging/Logger;->getCallersClassLoader()Ljava/lang/ClassLoader;
+Ljava/util/logging/Logger;->getEffectiveLoggerBundle()Ljava/util/logging/Logger$LoggerBundle;
+Ljava/util/logging/Logger;->getPlatformLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
+Ljava/util/logging/Logger;->handlers:Ljava/util/concurrent/CopyOnWriteArrayList;
+Ljava/util/logging/Logger;->isLevelInitialized()Z
+Ljava/util/logging/Logger;->isSystemLogger:Z
+Ljava/util/logging/Logger;->kids:Ljava/util/ArrayList;
+Ljava/util/logging/Logger;->levelObject:Ljava/util/logging/Level;
+Ljava/util/logging/Logger;->levelValue:I
+Ljava/util/logging/Logger;->loggerBundle:Ljava/util/logging/Logger$LoggerBundle;
+Ljava/util/logging/Logger;->manager:Ljava/util/logging/LogManager;
+Ljava/util/logging/Logger;->name:Ljava/lang/String;
+Ljava/util/logging/Logger;->NO_RESOURCE_BUNDLE:Ljava/util/logging/Logger$LoggerBundle;
+Ljava/util/logging/Logger;->offValue:I
+Ljava/util/logging/Logger;->parent:Ljava/util/logging/Logger;
+Ljava/util/logging/Logger;->removeChildLogger(Ljava/util/logging/LogManager$LoggerWeakRef;)V
+Ljava/util/logging/Logger;->setCallersClassLoaderRef(Ljava/lang/Class;)V
+Ljava/util/logging/Logger;->setLogManager(Ljava/util/logging/LogManager;)V
+Ljava/util/logging/Logger;->setupResourceInfo(Ljava/lang/String;Ljava/lang/Class;)V
+Ljava/util/logging/Logger;->SYSTEM_BUNDLE:Ljava/util/logging/Logger$LoggerBundle;
+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;
+Ljava/util/logging/LogManager$Beans;->propertyChangeEventClass:Ljava/lang/Class;
+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
+Ljava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;ZLjava/util/logging/LogManager;)Z
+Ljava/util/logging/LogManager$LoggerContext;->demandLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
+Ljava/util/logging/LogManager$LoggerContext;->ensureAllDefaultLoggers(Ljava/util/logging/Logger;)V
+Ljava/util/logging/LogManager$LoggerContext;->ensureDefaultLogger(Ljava/util/logging/Logger;)V
+Ljava/util/logging/LogManager$LoggerContext;->ensureInitialized()V
+Ljava/util/logging/LogManager$LoggerContext;->findLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
+Ljava/util/logging/LogManager$LoggerContext;->getGlobalLogger()Ljava/util/logging/Logger;
+Ljava/util/logging/LogManager$LoggerContext;->getLoggerNames()Ljava/util/Enumeration;
+Ljava/util/logging/LogManager$LoggerContext;->getNode(Ljava/lang/String;)Ljava/util/logging/LogManager$LogNode;
+Ljava/util/logging/LogManager$LoggerContext;->getOwner()Ljava/util/logging/LogManager;
+Ljava/util/logging/LogManager$LoggerContext;->getRootLogger()Ljava/util/logging/Logger;
+Ljava/util/logging/LogManager$LoggerContext;->namedLoggers:Ljava/util/Hashtable;
+Ljava/util/logging/LogManager$LoggerContext;->processParentHandlers(Ljava/util/logging/Logger;Ljava/lang/String;)V
+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;
+Ljava/util/logging/LogManager$LoggerWeakRef;->node:Ljava/util/logging/LogManager$LogNode;
+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
+Ljava/util/logging/LogManager;->checkSubclassPermissions()Ljava/lang/Void;
+Ljava/util/logging/LogManager;->contexts()Ljava/util/List;
+Ljava/util/logging/LogManager;->contextsMap:Ljava/util/WeakHashMap;
+Ljava/util/logging/LogManager;->controlPermission:Ljava/security/Permission;
+Ljava/util/logging/LogManager;->deathImminent:Z
+Ljava/util/logging/LogManager;->defaultLevel:Ljava/util/logging/Level;
+Ljava/util/logging/LogManager;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger;
+Ljava/util/logging/LogManager;->demandSystemLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
+Ljava/util/logging/LogManager;->doSetLevel(Ljava/util/logging/Logger;Ljava/util/logging/Level;)V
+Ljava/util/logging/LogManager;->doSetParent(Ljava/util/logging/Logger;Ljava/util/logging/Logger;)V
+Ljava/util/logging/LogManager;->drainLoggerRefQueueBounded()V
+Ljava/util/logging/LogManager;->ensureLogManagerInitialized()V
+Ljava/util/logging/LogManager;->getBooleanProperty(Ljava/lang/String;Z)Z
+Ljava/util/logging/LogManager;->getClassInstance(Ljava/lang/String;)Ljava/lang/Class;
+Ljava/util/logging/LogManager;->getFilterProperty(Ljava/lang/String;Ljava/util/logging/Filter;)Ljava/util/logging/Filter;
+Ljava/util/logging/LogManager;->getIntProperty(Ljava/lang/String;I)I
+Ljava/util/logging/LogManager;->getLevelProperty(Ljava/lang/String;Ljava/util/logging/Level;)Ljava/util/logging/Level;
+Ljava/util/logging/LogManager;->getStringProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/logging/LogManager;->getSystemContext()Ljava/util/logging/LogManager$LoggerContext;
+Ljava/util/logging/LogManager;->getUserContext()Ljava/util/logging/LogManager$LoggerContext;
+Ljava/util/logging/LogManager;->initializationDone:Z
+Ljava/util/logging/LogManager;->initializedCalled:Z
+Ljava/util/logging/LogManager;->initializedGlobalHandlers:Z
+Ljava/util/logging/LogManager;->initializeGlobalHandlers()V
+Ljava/util/logging/LogManager;->listenerMap:Ljava/util/Map;
+Ljava/util/logging/LogManager;->loadLoggerHandlers(Ljava/util/logging/Logger;Ljava/lang/String;Ljava/lang/String;)V
+Ljava/util/logging/LogManager;->loggerRefQueue:Ljava/lang/ref/ReferenceQueue;
+Ljava/util/logging/LogManager;->loggingMXBean:Ljava/util/logging/LoggingMXBean;
+Ljava/util/logging/LogManager;->manager:Ljava/util/logging/LogManager;
+Ljava/util/logging/LogManager;->MAX_ITERATIONS:I
+Ljava/util/logging/LogManager;->parseClassNames(Ljava/lang/String;)[Ljava/lang/String;
+Ljava/util/logging/LogManager;->props:Ljava/util/Properties;
+Ljava/util/logging/LogManager;->readPrimordialConfiguration()V
+Ljava/util/logging/LogManager;->readPrimordialConfiguration:Z
+Ljava/util/logging/LogManager;->resetLogger(Ljava/util/logging/Logger;)V
+Ljava/util/logging/LogManager;->rootLogger:Ljava/util/logging/Logger;
+Ljava/util/logging/LogManager;->setLevelsOnExistingLoggers()V
+Ljava/util/logging/LogManager;->systemContext:Ljava/util/logging/LogManager$LoggerContext;
+Ljava/util/logging/LogManager;->userContext:Ljava/util/logging/LogManager$LoggerContext;
+Ljava/util/logging/LogRecord;->defaultThreadID()I
+Ljava/util/logging/LogRecord;->globalSequenceNumber:Ljava/util/concurrent/atomic/AtomicLong;
+Ljava/util/logging/LogRecord;->inferCaller()V
+Ljava/util/logging/LogRecord;->isLoggerImplFrame(Ljava/lang/String;)Z
+Ljava/util/logging/LogRecord;->level:Ljava/util/logging/Level;
+Ljava/util/logging/LogRecord;->loggerName:Ljava/lang/String;
+Ljava/util/logging/LogRecord;->message:Ljava/lang/String;
+Ljava/util/logging/LogRecord;->millis:J
+Ljava/util/logging/LogRecord;->MIN_SEQUENTIAL_THREAD_ID:I
+Ljava/util/logging/LogRecord;->needToInferCaller:Z
+Ljava/util/logging/LogRecord;->nextThreadId:Ljava/util/concurrent/atomic/AtomicInteger;
+Ljava/util/logging/LogRecord;->parameters:[Ljava/lang/Object;
+Ljava/util/logging/LogRecord;->resourceBundle:Ljava/util/ResourceBundle;
+Ljava/util/logging/LogRecord;->resourceBundleName:Ljava/lang/String;
+Ljava/util/logging/LogRecord;->sequenceNumber:J
+Ljava/util/logging/LogRecord;->sourceClassName:Ljava/lang/String;
+Ljava/util/logging/LogRecord;->sourceMethodName:Ljava/lang/String;
+Ljava/util/logging/LogRecord;->threadID:I
+Ljava/util/logging/LogRecord;->threadIds:Ljava/lang/ThreadLocal;
+Ljava/util/logging/LogRecord;->thrown:Ljava/lang/Throwable;
+Ljava/util/logging/MemoryHandler;->buffer:[Ljava/util/logging/LogRecord;
+Ljava/util/logging/MemoryHandler;->configure()V
+Ljava/util/logging/MemoryHandler;->count:I
+Ljava/util/logging/MemoryHandler;->DEFAULT_SIZE:I
+Ljava/util/logging/MemoryHandler;->init()V
+Ljava/util/logging/MemoryHandler;->pushLevel:Ljava/util/logging/Level;
+Ljava/util/logging/MemoryHandler;->size:I
+Ljava/util/logging/MemoryHandler;->start:I
+Ljava/util/logging/MemoryHandler;->target:Ljava/util/logging/Handler;
+Ljava/util/logging/SimpleFormatter;->dat:Ljava/util/Date;
+Ljava/util/logging/SimpleFormatter;->format:Ljava/lang/String;
+Ljava/util/logging/SocketHandler;->configure()V
+Ljava/util/logging/SocketHandler;->connect()V
+Ljava/util/logging/SocketHandler;->host:Ljava/lang/String;
+Ljava/util/logging/SocketHandler;->port:I
+Ljava/util/logging/SocketHandler;->sock:Ljava/net/Socket;
+Ljava/util/logging/StreamHandler;->configure()V
+Ljava/util/logging/StreamHandler;->doneHeader:Z
+Ljava/util/logging/StreamHandler;->flushAndClose()V
+Ljava/util/logging/StreamHandler;->output:Ljava/io/OutputStream;
+Ljava/util/logging/StreamHandler;->writer:Ljava/io/Writer;
+Ljava/util/logging/XMLFormatter;->a2(Ljava/lang/StringBuilder;I)V
+Ljava/util/logging/XMLFormatter;->appendISO8601(Ljava/lang/StringBuilder;J)V
+Ljava/util/logging/XMLFormatter;->escape(Ljava/lang/StringBuilder;Ljava/lang/String;)V
+Ljava/util/logging/XMLFormatter;->manager:Ljava/util/logging/LogManager;
+Ljava/util/LongSummaryStatistics;->count:J
+Ljava/util/LongSummaryStatistics;->max:J
+Ljava/util/LongSummaryStatistics;->min:J
+Ljava/util/LongSummaryStatistics;->sum:J
+Ljava/util/MissingFormatArgumentException;->s:Ljava/lang/String;
+Ljava/util/MissingFormatWidthException;->s:Ljava/lang/String;
+Ljava/util/MissingResourceException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
+Ljava/util/MissingResourceException;->className:Ljava/lang/String;
+Ljava/util/MissingResourceException;->key:Ljava/lang/String;
+Ljava/util/Objects;-><init>()V
+Ljava/util/Observable;->changed:Z
+Ljava/util/Observable;->obs:Ljava/util/Vector;
+Ljava/util/Optional;-><init>()V
+Ljava/util/Optional;-><init>(Ljava/lang/Object;)V
+Ljava/util/Optional;->EMPTY:Ljava/util/Optional;
+Ljava/util/Optional;->value:Ljava/lang/Object;
+Ljava/util/OptionalDouble;-><init>()V
+Ljava/util/OptionalDouble;-><init>(D)V
+Ljava/util/OptionalDouble;->EMPTY:Ljava/util/OptionalDouble;
+Ljava/util/OptionalDouble;->isPresent:Z
+Ljava/util/OptionalDouble;->value:D
+Ljava/util/OptionalInt;-><init>()V
+Ljava/util/OptionalInt;-><init>(I)V
+Ljava/util/OptionalInt;->EMPTY:Ljava/util/OptionalInt;
+Ljava/util/OptionalInt;->isPresent:Z
+Ljava/util/OptionalInt;->value:I
+Ljava/util/OptionalLong;-><init>()V
+Ljava/util/OptionalLong;-><init>(J)V
+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;
+Ljava/util/prefs/AbstractPreferences;->enqueueNodeAddedEvent(Ljava/util/prefs/Preferences;)V
+Ljava/util/prefs/AbstractPreferences;->enqueueNodeRemovedEvent(Ljava/util/prefs/Preferences;)V
+Ljava/util/prefs/AbstractPreferences;->enqueuePreferenceChangeEvent(Ljava/lang/String;Ljava/lang/String;)V
+Ljava/util/prefs/AbstractPreferences;->eventDispatchThread:Ljava/lang/Thread;
+Ljava/util/prefs/AbstractPreferences;->eventQueue:Ljava/util/List;
+Ljava/util/prefs/AbstractPreferences;->flush2()V
+Ljava/util/prefs/AbstractPreferences;->kidCache:Ljava/util/Map;
+Ljava/util/prefs/AbstractPreferences;->name:Ljava/lang/String;
+Ljava/util/prefs/AbstractPreferences;->node(Ljava/util/StringTokenizer;)Ljava/util/prefs/Preferences;
+Ljava/util/prefs/AbstractPreferences;->nodeExists(Ljava/util/StringTokenizer;)Z
+Ljava/util/prefs/AbstractPreferences;->nodeListeners()[Ljava/util/prefs/NodeChangeListener;
+Ljava/util/prefs/AbstractPreferences;->nodeListeners:Ljava/util/ArrayList;
+Ljava/util/prefs/AbstractPreferences;->parent:Ljava/util/prefs/AbstractPreferences;
+Ljava/util/prefs/AbstractPreferences;->prefListeners()[Ljava/util/prefs/PreferenceChangeListener;
+Ljava/util/prefs/AbstractPreferences;->prefListeners:Ljava/util/ArrayList;
+Ljava/util/prefs/AbstractPreferences;->removed:Z
+Ljava/util/prefs/AbstractPreferences;->removeNode2()V
+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
+Ljava/util/prefs/FileSystemPreferences;->byteArray(Ljava/lang/String;)[B
+Ljava/util/prefs/FileSystemPreferences;->changeLog:Ljava/util/List;
+Ljava/util/prefs/FileSystemPreferences;->checkLockFile0ErrorCode(I)V
+Ljava/util/prefs/FileSystemPreferences;->chmod(Ljava/lang/String;I)I
+Ljava/util/prefs/FileSystemPreferences;->dir:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->dirName(Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/prefs/FileSystemPreferences;->EACCES:I
+Ljava/util/prefs/FileSystemPreferences;->EAGAIN:I
+Ljava/util/prefs/FileSystemPreferences;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
+Ljava/util/prefs/FileSystemPreferences;->ERROR_CODE:I
+Ljava/util/prefs/FileSystemPreferences;->getLogger()Lsun/util/logging/PlatformLogger;
+Ljava/util/prefs/FileSystemPreferences;->getSystemRoot()Ljava/util/prefs/Preferences;
+Ljava/util/prefs/FileSystemPreferences;->getUserRoot()Ljava/util/prefs/Preferences;
+Ljava/util/prefs/FileSystemPreferences;->initCacheIfNecessary()V
+Ljava/util/prefs/FileSystemPreferences;->INIT_SLEEP_TIME:I
+Ljava/util/prefs/FileSystemPreferences;->isDirChar(C)Z
+Ljava/util/prefs/FileSystemPreferences;->isSystemRootModified:Z
+Ljava/util/prefs/FileSystemPreferences;->isSystemRootWritable:Z
+Ljava/util/prefs/FileSystemPreferences;->isUserNode:Z
+Ljava/util/prefs/FileSystemPreferences;->isUserRootModified:Z
+Ljava/util/prefs/FileSystemPreferences;->isUserRootWritable:Z
+Ljava/util/prefs/FileSystemPreferences;->lastSyncTime:J
+Ljava/util/prefs/FileSystemPreferences;->loadCache()V
+Ljava/util/prefs/FileSystemPreferences;->lockFile(Z)Z
+Ljava/util/prefs/FileSystemPreferences;->lockFile0(Ljava/lang/String;IZ)[I
+Ljava/util/prefs/FileSystemPreferences;->LOCK_HANDLE:I
+Ljava/util/prefs/FileSystemPreferences;->MAX_ATTEMPTS:I
+Ljava/util/prefs/FileSystemPreferences;->nodeCreate:Ljava/util/prefs/FileSystemPreferences$NodeCreate;
+Ljava/util/prefs/FileSystemPreferences;->nodeName(Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/prefs/FileSystemPreferences;->prefsCache:Ljava/util/Map;
+Ljava/util/prefs/FileSystemPreferences;->prefsFile:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->replayChanges()V
+Ljava/util/prefs/FileSystemPreferences;->setupSystemRoot()V
+Ljava/util/prefs/FileSystemPreferences;->setupUserRoot()V
+Ljava/util/prefs/FileSystemPreferences;->syncSpiPrivileged()V
+Ljava/util/prefs/FileSystemPreferences;->syncWorld()V
+Ljava/util/prefs/FileSystemPreferences;->systemLockFile:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->systemRoot:Ljava/util/prefs/Preferences;
+Ljava/util/prefs/FileSystemPreferences;->systemRootDir:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->systemRootLockHandle:I
+Ljava/util/prefs/FileSystemPreferences;->systemRootModFile:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->systemRootModTime:J
+Ljava/util/prefs/FileSystemPreferences;->tmpFile:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->unlockFile()V
+Ljava/util/prefs/FileSystemPreferences;->unlockFile0(I)I
+Ljava/util/prefs/FileSystemPreferences;->userLockFile:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->userRoot:Ljava/util/prefs/Preferences;
+Ljava/util/prefs/FileSystemPreferences;->userRootDir:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->userRootLockHandle:I
+Ljava/util/prefs/FileSystemPreferences;->userRootModFile:Ljava/io/File;
+Ljava/util/prefs/FileSystemPreferences;->userRootModTime:J
+Ljava/util/prefs/FileSystemPreferences;->USER_READ_WRITE:I
+Ljava/util/prefs/FileSystemPreferences;->USER_RWX:I
+Ljava/util/prefs/FileSystemPreferences;->USER_RWX_ALL_RX:I
+Ljava/util/prefs/FileSystemPreferences;->USER_RW_ALL_READ:I
+Ljava/util/prefs/FileSystemPreferences;->writeBackCache()V
+Ljava/util/prefs/NodeChangeEvent;->child:Ljava/util/prefs/Preferences;
+Ljava/util/prefs/PreferenceChangeEvent;->key:Ljava/lang/String;
+Ljava/util/prefs/PreferenceChangeEvent;->newValue:Ljava/lang/String;
+Ljava/util/prefs/Preferences;->factory:Ljava/util/prefs/PreferencesFactory;
+Ljava/util/prefs/Preferences;->findPreferencesFactory()Ljava/util/prefs/PreferencesFactory;
+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
+Ljava/util/PriorityQueue$PriorityQueueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+Ljava/util/PriorityQueue$PriorityQueueSpliterator;->getFence()I
+Ljava/util/PriorityQueue$PriorityQueueSpliterator;->index:I
+Ljava/util/PriorityQueue$PriorityQueueSpliterator;->pq:Ljava/util/PriorityQueue;
+Ljava/util/PriorityQueue$PriorityQueueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
+Ljava/util/PriorityQueue;->comparator:Ljava/util/Comparator;
+Ljava/util/PriorityQueue;->DEFAULT_INITIAL_CAPACITY:I
+Ljava/util/PriorityQueue;->grow(I)V
+Ljava/util/PriorityQueue;->heapify()V
+Ljava/util/PriorityQueue;->hugeCapacity(I)I
+Ljava/util/PriorityQueue;->indexOf(Ljava/lang/Object;)I
+Ljava/util/PriorityQueue;->initElementsFromCollection(Ljava/util/Collection;)V
+Ljava/util/PriorityQueue;->initFromCollection(Ljava/util/Collection;)V
+Ljava/util/PriorityQueue;->initFromPriorityQueue(Ljava/util/PriorityQueue;)V
+Ljava/util/PriorityQueue;->MAX_ARRAY_SIZE:I
+Ljava/util/PriorityQueue;->removeAt(I)Ljava/lang/Object;
+Ljava/util/PriorityQueue;->removeEq(Ljava/lang/Object;)Z
+Ljava/util/PriorityQueue;->siftDown(ILjava/lang/Object;)V
+Ljava/util/PriorityQueue;->siftDownComparable(ILjava/lang/Object;)V
+Ljava/util/PriorityQueue;->siftDownUsingComparator(ILjava/lang/Object;)V
+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
+Ljava/util/Properties$LineReader;->inOff:I
+Ljava/util/Properties$LineReader;->inStream:Ljava/io/InputStream;
+Ljava/util/Properties$LineReader;->lineBuf:[C
+Ljava/util/Properties$LineReader;->reader:Ljava/io/Reader;
+Ljava/util/Properties$LineReader;->readLine()I
+Ljava/util/Properties;->enumerate(Ljava/util/Hashtable;)V
+Ljava/util/Properties;->enumerateStringProperties(Ljava/util/Hashtable;)V
+Ljava/util/Properties;->hexDigit:[C
+Ljava/util/Properties;->load0(Ljava/util/Properties$LineReader;)V
+Ljava/util/Properties;->loadConvert([CII[C)Ljava/lang/String;
+Ljava/util/Properties;->store0(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V
+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
+Ljava/util/Random$RandomLongsSpliterator;->index:J
+Ljava/util/Random$RandomLongsSpliterator;->origin:J
+Ljava/util/Random$RandomLongsSpliterator;->rng:Ljava/util/Random;
+Ljava/util/Random;->addend:J
+Ljava/util/Random;->BadBound:Ljava/lang/String;
+Ljava/util/Random;->BadRange:Ljava/lang/String;
+Ljava/util/Random;->BadSize:Ljava/lang/String;
+Ljava/util/Random;->DOUBLE_UNIT:D
+Ljava/util/Random;->haveNextNextGaussian:Z
+Ljava/util/Random;->initialScramble(J)J
+Ljava/util/Random;->internalNextDouble(DD)D
+Ljava/util/Random;->internalNextInt(II)I
+Ljava/util/Random;->internalNextLong(JJ)J
+Ljava/util/Random;->mask:J
+Ljava/util/Random;->multiplier:J
+Ljava/util/Random;->nextNextGaussian:D
+Ljava/util/Random;->resetSeed(J)V
+Ljava/util/Random;->seed:Ljava/util/concurrent/atomic/AtomicLong;
+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
+Ljava/util/regex/Matcher;-><init>(Ljava/util/regex/Pattern;Ljava/lang/CharSequence;)V
+Ljava/util/regex/Matcher;->address:J
+Ljava/util/regex/Matcher;->anchoringBounds:Z
+Ljava/util/regex/Matcher;->appendEvaluated(Ljava/lang/StringBuffer;Ljava/lang/String;)V
+Ljava/util/regex/Matcher;->ensureMatch()V
+Ljava/util/regex/Matcher;->findImpl(JI[I)Z
+Ljava/util/regex/Matcher;->findNextImpl(J[I)Z
+Ljava/util/regex/Matcher;->getMatchedGroupIndex(JLjava/lang/String;)I
+Ljava/util/regex/Matcher;->getMatchedGroupIndex0(JLjava/lang/String;)I
+Ljava/util/regex/Matcher;->getNativeFinalizer()J
+Ljava/util/regex/Matcher;->groupCountImpl(J)I
+Ljava/util/regex/Matcher;->hitEndImpl(J)Z
+Ljava/util/regex/Matcher;->input:Ljava/lang/String;
+Ljava/util/regex/Matcher;->lookingAtImpl(J[I)Z
+Ljava/util/regex/Matcher;->matchesImpl(J[I)Z
+Ljava/util/regex/Matcher;->matchFound:Z
+Ljava/util/regex/Matcher;->matchOffsets:[I
+Ljava/util/regex/Matcher;->nativeFinalizer:Ljava/lang/Runnable;
+Ljava/util/regex/Matcher;->nativeSize()I
+Ljava/util/regex/Matcher;->openImpl(J)J
+Ljava/util/regex/Matcher;->originalInput:Ljava/lang/CharSequence;
+Ljava/util/regex/Matcher;->pattern:Ljava/util/regex/Pattern;
+Ljava/util/regex/Matcher;->regionEnd:I
+Ljava/util/regex/Matcher;->regionStart:I
+Ljava/util/regex/Matcher;->registry:Llibcore/util/NativeAllocationRegistry;
+Ljava/util/regex/Matcher;->requireEndImpl(J)Z
+Ljava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;II)Ljava/util/regex/Matcher;
+Ljava/util/regex/Matcher;->resetForInput()V
+Ljava/util/regex/Matcher;->setInputImpl(JLjava/lang/String;II)V
+Ljava/util/regex/Matcher;->transparentBounds:Z
+Ljava/util/regex/Matcher;->useAnchoringBoundsImpl(JZ)V
+Ljava/util/regex/Matcher;->useTransparentBoundsImpl(JZ)V
+Ljava/util/regex/Pattern;-><init>(Ljava/lang/String;I)V
+Ljava/util/regex/Pattern;->address:J
+Ljava/util/regex/Pattern;->compile()V
+Ljava/util/regex/Pattern;->compileImpl(Ljava/lang/String;I)J
+Ljava/util/regex/Pattern;->fastSplit(Ljava/lang/String;Ljava/lang/String;I)[Ljava/lang/String;
+Ljava/util/regex/Pattern;->FASTSPLIT_METACHARACTERS:Ljava/lang/String;
+Ljava/util/regex/Pattern;->flags:I
+Ljava/util/regex/Pattern;->getNativeFinalizer()J
+Ljava/util/regex/Pattern;->nativeSize()I
+Ljava/util/regex/Pattern;->pattern:Ljava/lang/String;
+Ljava/util/regex/Pattern;->registry:Llibcore/util/NativeAllocationRegistry;
+Ljava/util/regex/PatternSyntaxException;->desc:Ljava/lang/String;
+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;
+Ljava/util/ResourceBundle$CacheKey;->expirationTime:J
+Ljava/util/ResourceBundle$CacheKey;->format:Ljava/lang/String;
+Ljava/util/ResourceBundle$CacheKey;->getCause()Ljava/lang/Throwable;
+Ljava/util/ResourceBundle$CacheKey;->getFormat()Ljava/lang/String;
+Ljava/util/ResourceBundle$CacheKey;->getLoader()Ljava/lang/ClassLoader;
+Ljava/util/ResourceBundle$CacheKey;->getLocale()Ljava/util/Locale;
+Ljava/util/ResourceBundle$CacheKey;->getName()Ljava/lang/String;
+Ljava/util/ResourceBundle$CacheKey;->hashCodeCache:I
+Ljava/util/ResourceBundle$CacheKey;->loaderRef:Ljava/util/ResourceBundle$LoaderReference;
+Ljava/util/ResourceBundle$CacheKey;->loadTime:J
+Ljava/util/ResourceBundle$CacheKey;->locale:Ljava/util/Locale;
+Ljava/util/ResourceBundle$CacheKey;->name:Ljava/lang/String;
+Ljava/util/ResourceBundle$CacheKey;->setCause(Ljava/lang/Throwable;)V
+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;
+Ljava/util/ResourceBundle$SingleFormatControl;->PROPERTIES_ONLY:Ljava/util/ResourceBundle$Control;
+Ljava/util/ResourceBundle;->cacheKey:Ljava/util/ResourceBundle$CacheKey;
+Ljava/util/ResourceBundle;->cacheList:Ljava/util/concurrent/ConcurrentMap;
+Ljava/util/ResourceBundle;->checkList(Ljava/util/List;)Z
+Ljava/util/ResourceBundle;->expired:Z
+Ljava/util/ResourceBundle;->findBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/List;ILjava/util/ResourceBundle$Control;Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
+Ljava/util/ResourceBundle;->findBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
+Ljava/util/ResourceBundle;->getBundleImpl(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
+Ljava/util/ResourceBundle;->getDefaultControl(Ljava/lang/String;)Ljava/util/ResourceBundle$Control;
+Ljava/util/ResourceBundle;->getLoader(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
+Ljava/util/ResourceBundle;->hasValidParentChain(Ljava/util/ResourceBundle;)Z
+Ljava/util/ResourceBundle;->INITIAL_CACHE_SIZE:I
+Ljava/util/ResourceBundle;->isValidBundle(Ljava/util/ResourceBundle;)Z
+Ljava/util/ResourceBundle;->keySet:Ljava/util/Set;
+Ljava/util/ResourceBundle;->loadBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/ResourceBundle$Control;Z)Ljava/util/ResourceBundle;
+Ljava/util/ResourceBundle;->locale:Ljava/util/Locale;
+Ljava/util/ResourceBundle;->name:Ljava/lang/String;
+Ljava/util/ResourceBundle;->NONEXISTENT_BUNDLE:Ljava/util/ResourceBundle;
+Ljava/util/ResourceBundle;->putBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
+Ljava/util/ResourceBundle;->referenceQueue:Ljava/lang/ref/ReferenceQueue;
+Ljava/util/ResourceBundle;->setExpirationTime(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)V
+Ljava/util/ResourceBundle;->throwMissingResourceException(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Throwable;)V
+Ljava/util/Scanner;-><init>(Ljava/io/File;Ljava/nio/charset/CharsetDecoder;)V
+Ljava/util/Scanner;-><init>(Ljava/lang/Readable;Ljava/util/regex/Pattern;)V
+Ljava/util/Scanner;-><init>(Ljava/nio/file/Path;Ljava/nio/charset/Charset;)V
+Ljava/util/Scanner;->BOOLEAN_PATTERN:Ljava/lang/String;
+Ljava/util/Scanner;->boolPattern()Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->boolPattern:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->buf:Ljava/nio/CharBuffer;
+Ljava/util/Scanner;->BUFFER_SIZE:I
+Ljava/util/Scanner;->buildFloatAndDecimalPattern()V
+Ljava/util/Scanner;->buildIntegerPatternString()Ljava/lang/String;
+Ljava/util/Scanner;->cacheResult()V
+Ljava/util/Scanner;->cacheResult(Ljava/lang/String;)V
+Ljava/util/Scanner;->clearCaches()V
+Ljava/util/Scanner;->closed:Z
+Ljava/util/Scanner;->decimalPattern()Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->decimalPattern:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->decimalSeparator:Ljava/lang/String;
+Ljava/util/Scanner;->defaultRadix:I
+Ljava/util/Scanner;->delimPattern:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->digits:Ljava/lang/String;
+Ljava/util/Scanner;->ensureOpen()V
+Ljava/util/Scanner;->findPatternInBuffer(Ljava/util/regex/Pattern;I)Ljava/lang/String;
+Ljava/util/Scanner;->FIND_ANY_PATTERN:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->floatPattern()Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->floatPattern:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->getCachedResult()Ljava/lang/String;
+Ljava/util/Scanner;->getCompleteTokenInBuffer(Ljava/util/regex/Pattern;)Ljava/lang/String;
+Ljava/util/Scanner;->groupSeparator:Ljava/lang/String;
+Ljava/util/Scanner;->hasNextPattern:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->hasNextPosition:I
+Ljava/util/Scanner;->hasNextResult:Ljava/lang/String;
+Ljava/util/Scanner;->hasTokenInBuffer()Z
+Ljava/util/Scanner;->infinityString:Ljava/lang/String;
+Ljava/util/Scanner;->integerPattern()Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->integerPattern:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->lastException:Ljava/io/IOException;
+Ljava/util/Scanner;->linePattern()Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->linePattern:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->LINE_PATTERN:Ljava/lang/String;
+Ljava/util/Scanner;->LINE_SEPARATOR_PATTERN:Ljava/lang/String;
+Ljava/util/Scanner;->locale:Ljava/util/Locale;
+Ljava/util/Scanner;->makeReadable(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/Readable;
+Ljava/util/Scanner;->makeReadable(Ljava/nio/channels/ReadableByteChannel;)Ljava/lang/Readable;
+Ljava/util/Scanner;->makeReadable(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/charset/CharsetDecoder;)Ljava/lang/Readable;
+Ljava/util/Scanner;->makeSpace()Z
+Ljava/util/Scanner;->matcher:Ljava/util/regex/Matcher;
+Ljava/util/Scanner;->matchPatternInBuffer(Ljava/util/regex/Pattern;)Ljava/lang/String;
+Ljava/util/Scanner;->matchValid:Z
+Ljava/util/Scanner;->nanString:Ljava/lang/String;
+Ljava/util/Scanner;->needInput:Z
+Ljava/util/Scanner;->negativePrefix:Ljava/lang/String;
+Ljava/util/Scanner;->negativeSuffix:Ljava/lang/String;
+Ljava/util/Scanner;->non0Digit:Ljava/lang/String;
+Ljava/util/Scanner;->NON_ASCII_DIGIT:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->patternCache:Lsun/misc/LRUCache;
+Ljava/util/Scanner;->position:I
+Ljava/util/Scanner;->positivePrefix:Ljava/lang/String;
+Ljava/util/Scanner;->positiveSuffix:Ljava/lang/String;
+Ljava/util/Scanner;->processFloatToken(Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/Scanner;->processIntegerToken(Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/Scanner;->radix:I
+Ljava/util/Scanner;->readInput()V
+Ljava/util/Scanner;->revertState()V
+Ljava/util/Scanner;->revertState(Z)Z
+Ljava/util/Scanner;->savedScannerPosition:I
+Ljava/util/Scanner;->saveState()V
+Ljava/util/Scanner;->separatorPattern()Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->separatorPattern:Ljava/util/regex/Pattern;
+Ljava/util/Scanner;->setRadix(I)V
+Ljava/util/Scanner;->SIMPLE_GROUP_INDEX:I
+Ljava/util/Scanner;->skipped:Z
+Ljava/util/Scanner;->source:Ljava/lang/Readable;
+Ljava/util/Scanner;->sourceClosed:Z
+Ljava/util/Scanner;->throwFor()V
+Ljava/util/Scanner;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
+Ljava/util/Scanner;->toDecoder(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;
+Ljava/util/Scanner;->translateSavedIndexes(I)V
+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;
+Ljava/util/ServiceLoader$LazyIterator;->nextName:Ljava/lang/String;
+Ljava/util/ServiceLoader$LazyIterator;->nextService()Ljava/lang/Object;
+Ljava/util/ServiceLoader$LazyIterator;->pending:Ljava/util/Iterator;
+Ljava/util/ServiceLoader$LazyIterator;->service:Ljava/lang/Class;
+Ljava/util/ServiceLoader;-><init>(Ljava/lang/Class;Ljava/lang/ClassLoader;)V
+Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/lang/String;)V
+Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
+Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/net/URL;ILjava/lang/String;)V
+Ljava/util/ServiceLoader;->loader:Ljava/lang/ClassLoader;
+Ljava/util/ServiceLoader;->loadFromSystemProperty(Ljava/lang/Class;)Ljava/lang/Object;
+Ljava/util/ServiceLoader;->lookupIterator:Ljava/util/ServiceLoader$LazyIterator;
+Ljava/util/ServiceLoader;->parse(Ljava/lang/Class;Ljava/net/URL;)Ljava/util/Iterator;
+Ljava/util/ServiceLoader;->parseLine(Ljava/lang/Class;Ljava/net/URL;Ljava/io/BufferedReader;ILjava/util/List;)I
+Ljava/util/ServiceLoader;->PREFIX:Ljava/lang/String;
+Ljava/util/ServiceLoader;->providers:Ljava/util/LinkedHashMap;
+Ljava/util/ServiceLoader;->service:Ljava/lang/Class;
+Ljava/util/SimpleTimeZone;->cacheEnd:J
+Ljava/util/SimpleTimeZone;->cacheStart:J
+Ljava/util/SimpleTimeZone;->cacheYear:J
+Ljava/util/SimpleTimeZone;->currentSerialVersion:I
+Ljava/util/SimpleTimeZone;->decodeEndRule()V
+Ljava/util/SimpleTimeZone;->decodeRules()V
+Ljava/util/SimpleTimeZone;->decodeStartRule()V
+Ljava/util/SimpleTimeZone;->DOM_MODE:I
+Ljava/util/SimpleTimeZone;->DOW_GE_DOM_MODE:I
+Ljava/util/SimpleTimeZone;->DOW_IN_MONTH_MODE:I
+Ljava/util/SimpleTimeZone;->DOW_LE_DOM_MODE:I
+Ljava/util/SimpleTimeZone;->dstSavings:I
+Ljava/util/SimpleTimeZone;->endDay:I
+Ljava/util/SimpleTimeZone;->endDayOfWeek:I
+Ljava/util/SimpleTimeZone;->endMode:I
+Ljava/util/SimpleTimeZone;->endMonth:I
+Ljava/util/SimpleTimeZone;->endTime:I
+Ljava/util/SimpleTimeZone;->endTimeMode:I
+Ljava/util/SimpleTimeZone;->gcal:Lsun/util/calendar/Gregorian;
+Ljava/util/SimpleTimeZone;->getEnd(Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/BaseCalendar$Date;I)J
+Ljava/util/SimpleTimeZone;->getOffset(Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/BaseCalendar$Date;IJ)I
+Ljava/util/SimpleTimeZone;->getOffsets(J[I)I
+Ljava/util/SimpleTimeZone;->getStart(Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/BaseCalendar$Date;I)J
+Ljava/util/SimpleTimeZone;->getTransition(Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/BaseCalendar$Date;IIIIII)J
+Ljava/util/SimpleTimeZone;->invalidateCache()V
+Ljava/util/SimpleTimeZone;->makeRulesCompatible()V
+Ljava/util/SimpleTimeZone;->millisPerDay:I
+Ljava/util/SimpleTimeZone;->millisPerHour:I
+Ljava/util/SimpleTimeZone;->monthLength:[B
+Ljava/util/SimpleTimeZone;->packRules()[B
+Ljava/util/SimpleTimeZone;->packTimes()[I
+Ljava/util/SimpleTimeZone;->rawOffset:I
+Ljava/util/SimpleTimeZone;->serialVersionOnStream:I
+Ljava/util/SimpleTimeZone;->startDay:I
+Ljava/util/SimpleTimeZone;->startDayOfWeek:I
+Ljava/util/SimpleTimeZone;->startMode:I
+Ljava/util/SimpleTimeZone;->startMonth:I
+Ljava/util/SimpleTimeZone;->startTime:I
+Ljava/util/SimpleTimeZone;->startTimeMode:I
+Ljava/util/SimpleTimeZone;->startYear:I
+Ljava/util/SimpleTimeZone;->staticLeapMonthLength:[B
+Ljava/util/SimpleTimeZone;->staticMonthLength:[B
+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
+Ljava/util/Spliterators$AbstractDoubleSpliterator;->BATCH_UNIT:I
+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
+Ljava/util/Spliterators$AbstractIntSpliterator;->BATCH_UNIT:I
+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
+Ljava/util/Spliterators$AbstractLongSpliterator;->BATCH_UNIT:I
+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
+Ljava/util/Spliterators$AbstractSpliterator;->BATCH_UNIT:I
+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
+Ljava/util/Spliterators$DoubleIteratorSpliterator;->BATCH_UNIT:I
+Ljava/util/Spliterators$DoubleIteratorSpliterator;->characteristics:I
+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
+Ljava/util/Spliterators$IntIteratorSpliterator;->BATCH_UNIT:I
+Ljava/util/Spliterators$IntIteratorSpliterator;->characteristics:I
+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
+Ljava/util/Spliterators$IteratorSpliterator;->batch:I
+Ljava/util/Spliterators$IteratorSpliterator;->BATCH_UNIT:I
+Ljava/util/Spliterators$IteratorSpliterator;->characteristics:I
+Ljava/util/Spliterators$IteratorSpliterator;->collection:Ljava/util/Collection;
+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
+Ljava/util/Spliterators$LongIteratorSpliterator;->BATCH_UNIT:I
+Ljava/util/Spliterators$LongIteratorSpliterator;->characteristics:I
+Ljava/util/Spliterators$LongIteratorSpliterator;->est:J
+Ljava/util/Spliterators$LongIteratorSpliterator;->it:Ljava/util/PrimitiveIterator$OfLong;
+Ljava/util/Spliterators$LongIteratorSpliterator;->MAX_BATCH:I
+Ljava/util/Spliterators;-><init>()V
+Ljava/util/Spliterators;->checkFromToBounds(III)V
+Ljava/util/Spliterators;->EMPTY_DOUBLE_SPLITERATOR:Ljava/util/Spliterator$OfDouble;
+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
+Ljava/util/SplittableRandom$RandomLongsSpliterator;->index:J
+Ljava/util/SplittableRandom$RandomLongsSpliterator;->origin:J
+Ljava/util/SplittableRandom$RandomLongsSpliterator;->rng:Ljava/util/SplittableRandom;
+Ljava/util/SplittableRandom;-><init>(JJ)V
+Ljava/util/SplittableRandom;->BAD_BOUND:Ljava/lang/String;
+Ljava/util/SplittableRandom;->BAD_RANGE:Ljava/lang/String;
+Ljava/util/SplittableRandom;->BAD_SIZE:Ljava/lang/String;
+Ljava/util/SplittableRandom;->defaultGen:Ljava/util/concurrent/atomic/AtomicLong;
+Ljava/util/SplittableRandom;->DOUBLE_UNIT:D
+Ljava/util/SplittableRandom;->gamma:J
+Ljava/util/SplittableRandom;->GOLDEN_GAMMA:J
+Ljava/util/SplittableRandom;->internalNextDouble(DD)D
+Ljava/util/SplittableRandom;->internalNextInt(II)I
+Ljava/util/SplittableRandom;->internalNextLong(JJ)J
+Ljava/util/SplittableRandom;->mix32(J)I
+Ljava/util/SplittableRandom;->mix64(J)J
+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
+Ljava/util/stream/AbstractPipeline;->combinedFlags:I
+Ljava/util/stream/AbstractPipeline;->copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
+Ljava/util/stream/AbstractPipeline;->copyIntoWithCancel(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
+Ljava/util/stream/AbstractPipeline;->depth:I
+Ljava/util/stream/AbstractPipeline;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/AbstractPipeline;->evaluate(Ljava/util/stream/TerminalOp;)Ljava/lang/Object;
+Ljava/util/stream/AbstractPipeline;->evaluateToArrayNode(Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/AbstractPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/AbstractPipeline;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J
+Ljava/util/stream/AbstractPipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
+Ljava/util/stream/AbstractPipeline;->getOutputShape()Ljava/util/stream/StreamShape;
+Ljava/util/stream/AbstractPipeline;->getSourceShape()Ljava/util/stream/StreamShape;
+Ljava/util/stream/AbstractPipeline;->getStreamAndOpFlags()I
+Ljava/util/stream/AbstractPipeline;->getStreamFlags()I
+Ljava/util/stream/AbstractPipeline;->isOrdered()Z
+Ljava/util/stream/AbstractPipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator;
+Ljava/util/stream/AbstractPipeline;->linkedOrConsumed:Z
+Ljava/util/stream/AbstractPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
+Ljava/util/stream/AbstractPipeline;->MSG_CONSUMED:Ljava/lang/String;
+Ljava/util/stream/AbstractPipeline;->MSG_STREAM_LINKED:Ljava/lang/String;
+Ljava/util/stream/AbstractPipeline;->nextStage:Ljava/util/stream/AbstractPipeline;
+Ljava/util/stream/AbstractPipeline;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/AbstractPipeline;->opEvaluateParallelLazy(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/util/Spliterator;
+Ljava/util/stream/AbstractPipeline;->opIsStateful()Z
+Ljava/util/stream/AbstractPipeline;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
+Ljava/util/stream/AbstractPipeline;->parallel:Z
+Ljava/util/stream/AbstractPipeline;->previousStage:Ljava/util/stream/AbstractPipeline;
+Ljava/util/stream/AbstractPipeline;->sourceAnyStateful:Z
+Ljava/util/stream/AbstractPipeline;->sourceCloseAction:Ljava/lang/Runnable;
+Ljava/util/stream/AbstractPipeline;->sourceOrOpFlags:I
+Ljava/util/stream/AbstractPipeline;->sourceSpliterator(I)Ljava/util/Spliterator;
+Ljava/util/stream/AbstractPipeline;->sourceSpliterator:Ljava/util/Spliterator;
+Ljava/util/stream/AbstractPipeline;->sourceStage:Ljava/util/stream/AbstractPipeline;
+Ljava/util/stream/AbstractPipeline;->sourceStageSpliterator()Ljava/util/Spliterator;
+Ljava/util/stream/AbstractPipeline;->sourceSupplier:Ljava/util/function/Supplier;
+Ljava/util/stream/AbstractPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
+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
+Ljava/util/stream/AbstractSpinedBuffer;->clear()V
+Ljava/util/stream/AbstractSpinedBuffer;->count()J
+Ljava/util/stream/AbstractSpinedBuffer;->elementIndex:I
+Ljava/util/stream/AbstractSpinedBuffer;->initialChunkPower:I
+Ljava/util/stream/AbstractSpinedBuffer;->isEmpty()Z
+Ljava/util/stream/AbstractSpinedBuffer;->MAX_CHUNK_POWER:I
+Ljava/util/stream/AbstractSpinedBuffer;->MIN_CHUNK_POWER:I
+Ljava/util/stream/AbstractSpinedBuffer;->MIN_CHUNK_SIZE:I
+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;
+Ljava/util/stream/Collectors$CollectorImpl;->characteristics:Ljava/util/Set;
+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;
+Ljava/util/stream/Collectors;-><init>()V
+Ljava/util/stream/Collectors;->boxSupplier(Ljava/lang/Object;)Ljava/util/function/Supplier;
+Ljava/util/stream/Collectors;->castingIdentity()Ljava/util/function/Function;
+Ljava/util/stream/Collectors;->CH_CONCURRENT_ID:Ljava/util/Set;
+Ljava/util/stream/Collectors;->CH_CONCURRENT_NOID:Ljava/util/Set;
+Ljava/util/stream/Collectors;->CH_ID:Ljava/util/Set;
+Ljava/util/stream/Collectors;->CH_NOID:Ljava/util/Set;
+Ljava/util/stream/Collectors;->CH_UNORDERED_ID:Ljava/util/Set;
+Ljava/util/stream/Collectors;->computeFinalSum([D)D
+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
+Ljava/util/stream/DoublePipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfDouble;
+Ljava/util/stream/DoublePipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/DoubleConsumer;
+Ljava/util/stream/DoublePipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/DoublePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
+Ljava/util/stream/DoublePipeline;->getOutputShape()Ljava/util/stream/StreamShape;
+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
+Ljava/util/stream/IntPipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfInt;
+Ljava/util/stream/IntPipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/IntConsumer;
+Ljava/util/stream/IntPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/IntPipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
+Ljava/util/stream/IntPipeline;->getOutputShape()Ljava/util/stream/StreamShape;
+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
+Ljava/util/stream/LongPipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfLong;
+Ljava/util/stream/LongPipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/LongConsumer;
+Ljava/util/stream/LongPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/LongPipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
+Ljava/util/stream/LongPipeline;->getOutputShape()Ljava/util/stream/StreamShape;
+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
+Ljava/util/stream/Node$OfPrimitive;->forEach(Ljava/lang/Object;)V
+Ljava/util/stream/Node$OfPrimitive;->getChild(I)Ljava/util/stream/Node$OfPrimitive;
+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
+Ljava/util/stream/Node;->forEach(Ljava/util/function/Consumer;)V
+Ljava/util/stream/Node;->getChild(I)Ljava/util/stream/Node;
+Ljava/util/stream/Node;->getChildCount()I
+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
+Ljava/util/stream/PipelineHelper;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/PipelineHelper;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J
+Ljava/util/stream/PipelineHelper;->getSourceShape()Ljava/util/stream/StreamShape;
+Ljava/util/stream/PipelineHelper;->getStreamAndOpFlags()I
+Ljava/util/stream/PipelineHelper;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
+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
+Ljava/util/stream/ReferencePipeline;->allMatch(Ljava/util/function/Predicate;)Z
+Ljava/util/stream/ReferencePipeline;->anyMatch(Ljava/util/function/Predicate;)Z
+Ljava/util/stream/ReferencePipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;
+Ljava/util/stream/ReferencePipeline;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object;
+Ljava/util/stream/ReferencePipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
+Ljava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
+Ljava/util/stream/ReferencePipeline;->flatMap(Ljava/util/function/Function;)Ljava/util/stream/Stream;
+Ljava/util/stream/ReferencePipeline;->flatMapToDouble(Ljava/util/function/Function;)Ljava/util/stream/DoubleStream;
+Ljava/util/stream/ReferencePipeline;->flatMapToInt(Ljava/util/function/Function;)Ljava/util/stream/IntStream;
+Ljava/util/stream/ReferencePipeline;->flatMapToLong(Ljava/util/function/Function;)Ljava/util/stream/LongStream;
+Ljava/util/stream/ReferencePipeline;->forEach(Ljava/util/function/Consumer;)V
+Ljava/util/stream/ReferencePipeline;->forEachOrdered(Ljava/util/function/Consumer;)V
+Ljava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
+Ljava/util/stream/ReferencePipeline;->getOutputShape()Ljava/util/stream/StreamShape;
+Ljava/util/stream/ReferencePipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator;
+Ljava/util/stream/ReferencePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
+Ljava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream;
+Ljava/util/stream/ReferencePipeline;->mapToDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/DoubleStream;
+Ljava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
+Ljava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
+Ljava/util/stream/ReferencePipeline;->max(Ljava/util/Comparator;)Ljava/util/Optional;
+Ljava/util/stream/ReferencePipeline;->min(Ljava/util/Comparator;)Ljava/util/Optional;
+Ljava/util/stream/ReferencePipeline;->noneMatch(Ljava/util/function/Predicate;)Z
+Ljava/util/stream/ReferencePipeline;->peek(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
+Ljava/util/stream/ReferencePipeline;->reduce(Ljava/lang/Object;Ljava/util/function/BiFunction;Ljava/util/function/BinaryOperator;)Ljava/lang/Object;
+Ljava/util/stream/ReferencePipeline;->reduce(Ljava/lang/Object;Ljava/util/function/BinaryOperator;)Ljava/lang/Object;
+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
+Ljava/util/stream/SpinedBuffer$OfDouble;->arrayLength([D)I
+Ljava/util/stream/SpinedBuffer$OfDouble;->forEach(Ljava/util/function/Consumer;)V
+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
+Ljava/util/stream/SpinedBuffer$OfInt;->arrayLength([I)I
+Ljava/util/stream/SpinedBuffer$OfInt;->forEach(Ljava/util/function/Consumer;)V
+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
+Ljava/util/stream/SpinedBuffer$OfLong;->arrayLength([J)I
+Ljava/util/stream/SpinedBuffer$OfLong;->forEach(Ljava/util/function/Consumer;)V
+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
+Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->lastSpineIndex:I
+Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->newSpliterator(IIII)Ljava/util/Spliterator$OfPrimitive;
+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
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->arrayLength(Ljava/lang/Object;)I
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->asPrimitiveArray()Ljava/lang/Object;
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->capacity()J
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->chunkFor(J)I
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->clear()V
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->copyInto(Ljava/lang/Object;I)V
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->curChunk:Ljava/lang/Object;
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->ensureCapacity(J)V
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->forEach(Ljava/lang/Object;)V
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->forEach(Ljava/util/function/Consumer;)V
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->increaseCapacity()V
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->inflateSpine()V
+Ljava/util/stream/SpinedBuffer$OfPrimitive;->newArray(I)Ljava/lang/Object;
+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
+Ljava/util/stream/SpinedBuffer;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+Ljava/util/stream/SpinedBuffer;->capacity()J
+Ljava/util/stream/SpinedBuffer;->clear()V
+Ljava/util/stream/SpinedBuffer;->copyInto([Ljava/lang/Object;I)V
+Ljava/util/stream/SpinedBuffer;->curChunk:[Ljava/lang/Object;
+Ljava/util/stream/SpinedBuffer;->ensureCapacity(J)V
+Ljava/util/stream/SpinedBuffer;->forEach(Ljava/util/function/Consumer;)V
+Ljava/util/stream/SpinedBuffer;->get(J)Ljava/lang/Object;
+Ljava/util/stream/SpinedBuffer;->increaseCapacity()V
+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;
+Ljava/util/stream/StreamOpFlag$MaskBuilder;->map:Ljava/util/Map;
+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;
+Ljava/util/stream/StreamOpFlag$Type;->TERMINAL_OP:Ljava/util/stream/StreamOpFlag$Type;
+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
+Ljava/util/stream/StreamOpFlag;->clear:I
+Ljava/util/stream/StreamOpFlag;->CLEAR_BITS:I
+Ljava/util/stream/StreamOpFlag;->combineOpFlags(II)I
+Ljava/util/stream/StreamOpFlag;->createFlagMask()I
+Ljava/util/stream/StreamOpFlag;->createMask(Ljava/util/stream/StreamOpFlag$Type;)I
+Ljava/util/stream/StreamOpFlag;->DISTINCT:Ljava/util/stream/StreamOpFlag;
+Ljava/util/stream/StreamOpFlag;->FLAG_MASK:I
+Ljava/util/stream/StreamOpFlag;->FLAG_MASK_IS:I
+Ljava/util/stream/StreamOpFlag;->FLAG_MASK_NOT:I
+Ljava/util/stream/StreamOpFlag;->fromCharacteristics(I)I
+Ljava/util/stream/StreamOpFlag;->fromCharacteristics(Ljava/util/Spliterator;)I
+Ljava/util/stream/StreamOpFlag;->getMask(I)I
+Ljava/util/stream/StreamOpFlag;->INITIAL_OPS_VALUE:I
+Ljava/util/stream/StreamOpFlag;->isCleared(I)Z
+Ljava/util/stream/StreamOpFlag;->isKnown(I)Z
+Ljava/util/stream/StreamOpFlag;->isPreserved(I)Z
+Ljava/util/stream/StreamOpFlag;->isStreamFlag()Z
+Ljava/util/stream/StreamOpFlag;->IS_DISTINCT:I
+Ljava/util/stream/StreamOpFlag;->IS_ORDERED:I
+Ljava/util/stream/StreamOpFlag;->IS_SHORT_CIRCUIT:I
+Ljava/util/stream/StreamOpFlag;->IS_SIZED:I
+Ljava/util/stream/StreamOpFlag;->IS_SORTED:I
+Ljava/util/stream/StreamOpFlag;->maskTable:Ljava/util/Map;
+Ljava/util/stream/StreamOpFlag;->NOT_DISTINCT:I
+Ljava/util/stream/StreamOpFlag;->NOT_ORDERED:I
+Ljava/util/stream/StreamOpFlag;->NOT_SIZED:I
+Ljava/util/stream/StreamOpFlag;->NOT_SORTED:I
+Ljava/util/stream/StreamOpFlag;->OP_MASK:I
+Ljava/util/stream/StreamOpFlag;->ORDERED:Ljava/util/stream/StreamOpFlag;
+Ljava/util/stream/StreamOpFlag;->preserve:I
+Ljava/util/stream/StreamOpFlag;->PRESERVE_BITS:I
+Ljava/util/stream/StreamOpFlag;->set()I
+Ljava/util/stream/StreamOpFlag;->set(Ljava/util/stream/StreamOpFlag$Type;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
+Ljava/util/stream/StreamOpFlag;->set:I
+Ljava/util/stream/StreamOpFlag;->SET_BITS:I
+Ljava/util/stream/StreamOpFlag;->SHORT_CIRCUIT:Ljava/util/stream/StreamOpFlag;
+Ljava/util/stream/StreamOpFlag;->SIZED:Ljava/util/stream/StreamOpFlag;
+Ljava/util/stream/StreamOpFlag;->SORTED:Ljava/util/stream/StreamOpFlag;
+Ljava/util/stream/StreamOpFlag;->SPLITERATOR_CHARACTERISTICS_MASK:I
+Ljava/util/stream/StreamOpFlag;->STREAM_MASK:I
+Ljava/util/stream/StreamOpFlag;->TERMINAL_OP_MASK:I
+Ljava/util/stream/StreamOpFlag;->toCharacteristics(I)I
+Ljava/util/stream/StreamOpFlag;->toStreamFlags(I)I
+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;
+Ljava/util/stream/StreamShape;->REFERENCE:Ljava/util/stream/StreamShape;
+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
+Ljava/util/stream/TerminalOp;->inputShape()Ljava/util/stream/StreamShape;
+Ljava/util/StringJoiner;->delimiter:Ljava/lang/String;
+Ljava/util/StringJoiner;->emptyValue:Ljava/lang/String;
+Ljava/util/StringJoiner;->prefix:Ljava/lang/String;
+Ljava/util/StringJoiner;->prepareBuilder()Ljava/lang/StringBuilder;
+Ljava/util/StringJoiner;->suffix:Ljava/lang/String;
+Ljava/util/StringJoiner;->value:Ljava/lang/StringBuilder;
+Ljava/util/StringTokenizer;->currentPosition:I
+Ljava/util/StringTokenizer;->delimiterCodePoints:[I
+Ljava/util/StringTokenizer;->delimiters:Ljava/lang/String;
+Ljava/util/StringTokenizer;->delimsChanged:Z
+Ljava/util/StringTokenizer;->hasSurrogates:Z
+Ljava/util/StringTokenizer;->isDelimiter(I)Z
+Ljava/util/StringTokenizer;->maxDelimCodePoint:I
+Ljava/util/StringTokenizer;->maxPosition:I
+Ljava/util/StringTokenizer;->newPosition:I
+Ljava/util/StringTokenizer;->retDelims:Z
+Ljava/util/StringTokenizer;->scanToken(I)I
+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
+Ljava/util/TaskQueue;->fixDown(I)V
+Ljava/util/TaskQueue;->fixUp(I)V
+Ljava/util/TaskQueue;->get(I)Ljava/util/TimerTask;
+Ljava/util/TaskQueue;->getMin()Ljava/util/TimerTask;
+Ljava/util/TaskQueue;->heapify()V
+Ljava/util/TaskQueue;->isEmpty()Z
+Ljava/util/TaskQueue;->queue:[Ljava/util/TimerTask;
+Ljava/util/TaskQueue;->quickRemove(I)V
+Ljava/util/TaskQueue;->removeMin()V
+Ljava/util/TaskQueue;->rescheduleMin(J)V
+Ljava/util/TaskQueue;->size()I
+Ljava/util/TaskQueue;->size:I
+Ljava/util/Timer;->nextSerialNumber:Ljava/util/concurrent/atomic/AtomicInteger;
+Ljava/util/Timer;->queue:Ljava/util/TaskQueue;
+Ljava/util/Timer;->sched(Ljava/util/TimerTask;JJ)V
+Ljava/util/Timer;->serialNumber()I
+Ljava/util/Timer;->thread:Ljava/util/TimerThread;
+Ljava/util/Timer;->threadReaper:Ljava/lang/Object;
+Ljava/util/TimerTask;->CANCELLED:I
+Ljava/util/TimerTask;->EXECUTED:I
+Ljava/util/TimerTask;->lock:Ljava/lang/Object;
+Ljava/util/TimerTask;->nextExecutionTime:J
+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
+Ljava/util/TimeZone;->createGmtOffsetString(ZZI)Ljava/lang/String;
+Ljava/util/TimeZone;->defaultTimeZone:Ljava/util/TimeZone;
+Ljava/util/TimeZone;->getCustomTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
+Ljava/util/TimeZone;->getDefaultRef()Ljava/util/TimeZone;
+Ljava/util/TimeZone;->getOffsets(J[I)I
+Ljava/util/TimeZone;->getSystemGMTOffsetID()Ljava/lang/String;
+Ljava/util/TimeZone;->getSystemTimeZoneID(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Ljava/util/TimeZone;->GMT:Ljava/util/TimeZone;
+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;
+Ljava/util/TreeMap$AscendingSubMap;->keySpliterator()Ljava/util/Spliterator;
+Ljava/util/TreeMap$AscendingSubMap;->subCeiling(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$AscendingSubMap;->subFloor(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$AscendingSubMap;->subHigher(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+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;
+Ljava/util/TreeMap$DescendingSubMap;->keySpliterator()Ljava/util/Spliterator;
+Ljava/util/TreeMap$DescendingSubMap;->reverseComparator:Ljava/util/Comparator;
+Ljava/util/TreeMap$DescendingSubMap;->subCeiling(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$DescendingSubMap;->subFloor(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$DescendingSubMap;->subHigher(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+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;
+Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->next:Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry;
+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;
+Ljava/util/TreeMap$NavigableSubMap;->absHigher(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->absHighest()Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->absHighFence()Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->absLower(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->absLowest()Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->absLowFence()Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->descendingKeyIterator()Ljava/util/Iterator;
+Ljava/util/TreeMap$NavigableSubMap;->descendingMapView:Ljava/util/NavigableMap;
+Ljava/util/TreeMap$NavigableSubMap;->entrySetView:Ljava/util/TreeMap$NavigableSubMap$EntrySetView;
+Ljava/util/TreeMap$NavigableSubMap;->fromStart:Z
+Ljava/util/TreeMap$NavigableSubMap;->hi:Ljava/lang/Object;
+Ljava/util/TreeMap$NavigableSubMap;->hiInclusive:Z
+Ljava/util/TreeMap$NavigableSubMap;->inClosedRange(Ljava/lang/Object;)Z
+Ljava/util/TreeMap$NavigableSubMap;->inRange(Ljava/lang/Object;)Z
+Ljava/util/TreeMap$NavigableSubMap;->inRange(Ljava/lang/Object;Z)Z
+Ljava/util/TreeMap$NavigableSubMap;->keyIterator()Ljava/util/Iterator;
+Ljava/util/TreeMap$NavigableSubMap;->keySpliterator()Ljava/util/Spliterator;
+Ljava/util/TreeMap$NavigableSubMap;->lo:Ljava/lang/Object;
+Ljava/util/TreeMap$NavigableSubMap;->loInclusive:Z
+Ljava/util/TreeMap$NavigableSubMap;->m:Ljava/util/TreeMap;
+Ljava/util/TreeMap$NavigableSubMap;->navigableKeySetView:Ljava/util/TreeMap$KeySet;
+Ljava/util/TreeMap$NavigableSubMap;->subCeiling(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->subFloor(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->subHigher(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->subHighest()Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->subLower(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap$NavigableSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry;
+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;
+Ljava/util/TreeMap$TreeMapEntry;->left:Ljava/util/TreeMap$TreeMapEntry;
+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
+Ljava/util/TreeMap$TreeMapSpliterator;->estimateSize()J
+Ljava/util/TreeMap$TreeMapSpliterator;->expectedModCount:I
+Ljava/util/TreeMap$TreeMapSpliterator;->fence:Ljava/util/TreeMap$TreeMapEntry;
+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
+Ljava/util/TreeMap;->addAllForTreeSet(Ljava/util/SortedSet;Ljava/lang/Object;)V
+Ljava/util/TreeMap;->BLACK:Z
+Ljava/util/TreeMap;->buildFromSorted(IIIILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->buildFromSorted(ILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)V
+Ljava/util/TreeMap;->colorOf(Ljava/util/TreeMap$TreeMapEntry;)Z
+Ljava/util/TreeMap;->comparator:Ljava/util/Comparator;
+Ljava/util/TreeMap;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+Ljava/util/TreeMap;->computeRedLevel(I)I
+Ljava/util/TreeMap;->deleteEntry(Ljava/util/TreeMap$TreeMapEntry;)V
+Ljava/util/TreeMap;->descendingKeyIterator()Ljava/util/Iterator;
+Ljava/util/TreeMap;->descendingKeySpliterator()Ljava/util/Spliterator;
+Ljava/util/TreeMap;->descendingMap:Ljava/util/NavigableMap;
+Ljava/util/TreeMap;->entrySet:Ljava/util/TreeMap$EntrySet;
+Ljava/util/TreeMap;->exportEntry(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/Map$Entry;
+Ljava/util/TreeMap;->fixAfterDeletion(Ljava/util/TreeMap$TreeMapEntry;)V
+Ljava/util/TreeMap;->fixAfterInsertion(Ljava/util/TreeMap$TreeMapEntry;)V
+Ljava/util/TreeMap;->getCeilingEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->getEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->getEntryUsingComparator(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->getFirstEntry()Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->getFloorEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->getHigherEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->getLastEntry()Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->getLowerEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->key(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object;
+Ljava/util/TreeMap;->keyIterator()Ljava/util/Iterator;
+Ljava/util/TreeMap;->keyOrNull(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object;
+Ljava/util/TreeMap;->keySpliterator()Ljava/util/Spliterator;
+Ljava/util/TreeMap;->keySpliteratorFor(Ljava/util/NavigableMap;)Ljava/util/Spliterator;
+Ljava/util/TreeMap;->leftOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->modCount:I
+Ljava/util/TreeMap;->navigableKeySet:Ljava/util/TreeMap$KeySet;
+Ljava/util/TreeMap;->parentOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->predecessor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->readTreeSet(ILjava/io/ObjectInputStream;Ljava/lang/Object;)V
+Ljava/util/TreeMap;->RED:Z
+Ljava/util/TreeMap;->rightOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->root:Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->rotateLeft(Ljava/util/TreeMap$TreeMapEntry;)V
+Ljava/util/TreeMap;->rotateRight(Ljava/util/TreeMap$TreeMapEntry;)V
+Ljava/util/TreeMap;->setColor(Ljava/util/TreeMap$TreeMapEntry;Z)V
+Ljava/util/TreeMap;->size:I
+Ljava/util/TreeMap;->successor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+Ljava/util/TreeMap;->UNBOUNDED:Ljava/lang/Object;
+Ljava/util/TreeMap;->valEquals(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/TreeSet;-><init>(Ljava/util/NavigableMap;)V
+Ljava/util/TreeSet;->m:Ljava/util/NavigableMap;
+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
+Ljava/util/Vector$VectorSpliterator;->fence:I
+Ljava/util/Vector$VectorSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+Ljava/util/Vector$VectorSpliterator;->getFence()I
+Ljava/util/Vector$VectorSpliterator;->index:I
+Ljava/util/Vector$VectorSpliterator;->list:Ljava/util/Vector;
+Ljava/util/Vector$VectorSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
+Ljava/util/Vector;->ensureCapacityHelper(I)V
+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
+Ljava/util/WeakHashMap$HashIterator;->index:I
+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
+Ljava/util/WeakHashMap$WeakHashMapSpliterator;->estimateSize()J
+Ljava/util/WeakHashMap$WeakHashMapSpliterator;->expectedModCount:I
+Ljava/util/WeakHashMap$WeakHashMapSpliterator;->fence:I
+Ljava/util/WeakHashMap$WeakHashMapSpliterator;->getFence()I
+Ljava/util/WeakHashMap$WeakHashMapSpliterator;->index:I
+Ljava/util/WeakHashMap$WeakHashMapSpliterator;->map:Ljava/util/WeakHashMap;
+Ljava/util/WeakHashMap;->containsNullValue()Z
+Ljava/util/WeakHashMap;->DEFAULT_INITIAL_CAPACITY:I
+Ljava/util/WeakHashMap;->DEFAULT_LOAD_FACTOR:F
+Ljava/util/WeakHashMap;->entrySet:Ljava/util/Set;
+Ljava/util/WeakHashMap;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
+Ljava/util/WeakHashMap;->expungeStaleEntries()V
+Ljava/util/WeakHashMap;->getEntry(Ljava/lang/Object;)Ljava/util/WeakHashMap$Entry;
+Ljava/util/WeakHashMap;->getTable()[Ljava/util/WeakHashMap$Entry;
+Ljava/util/WeakHashMap;->hash(Ljava/lang/Object;)I
+Ljava/util/WeakHashMap;->indexFor(II)I
+Ljava/util/WeakHashMap;->loadFactor:F
+Ljava/util/WeakHashMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/WeakHashMap;->MAXIMUM_CAPACITY:I
+Ljava/util/WeakHashMap;->modCount:I
+Ljava/util/WeakHashMap;->newTable(I)[Ljava/util/WeakHashMap$Entry;
+Ljava/util/WeakHashMap;->NULL_KEY:Ljava/lang/Object;
+Ljava/util/WeakHashMap;->queue:Ljava/lang/ref/ReferenceQueue;
+Ljava/util/WeakHashMap;->removeMapping(Ljava/lang/Object;)Z
+Ljava/util/WeakHashMap;->resize(I)V
+Ljava/util/WeakHashMap;->size:I
+Ljava/util/WeakHashMap;->table:[Ljava/util/WeakHashMap$Entry;
+Ljava/util/WeakHashMap;->threshold:I
+Ljava/util/WeakHashMap;->transfer([Ljava/util/WeakHashMap$Entry;[Ljava/util/WeakHashMap$Entry;)V
+Ljava/util/WeakHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
+Ljava/util/zip/Adler32;->adler:I
+Ljava/util/zip/Adler32;->updateByteBuffer(IJII)I
+Ljava/util/zip/Adler32;->updateBytes(I[BII)I
+Ljava/util/zip/CheckedInputStream;->cksum:Ljava/util/zip/Checksum;
+Ljava/util/zip/CheckedOutputStream;->cksum:Ljava/util/zip/Checksum;
+Ljava/util/zip/CRC32;->crc:I
+Ljava/util/zip/CRC32;->updateByteBuffer(IJII)I
+Ljava/util/zip/CRC32;->updateBytes(I[BII)I
+Ljava/util/zip/Deflater;->bytesRead:J
+Ljava/util/zip/Deflater;->bytesWritten:J
+Ljava/util/zip/Deflater;->deflateBytes(J[BIII)I
+Ljava/util/zip/Deflater;->end(J)V
+Ljava/util/zip/Deflater;->ensureOpen()V
+Ljava/util/zip/Deflater;->getAdler(J)I
+Ljava/util/zip/Deflater;->guard:Ldalvik/system/CloseGuard;
+Ljava/util/zip/Deflater;->init(IIZ)J
+Ljava/util/zip/Deflater;->reset(J)V
+Ljava/util/zip/Deflater;->setDictionary(J[BII)V
+Ljava/util/zip/Deflater;->zsRef:Ljava/util/zip/ZStreamRef;
+Ljava/util/zip/DeflaterInputStream;->ensureOpen()V
+Ljava/util/zip/DeflaterInputStream;->rbuf:[B
+Ljava/util/zip/DeflaterInputStream;->reachEOF:Z
+Ljava/util/zip/DeflaterInputStream;->usesDefaultDeflater:Z
+Ljava/util/zip/DeflaterOutputStream;->closed:Z
+Ljava/util/zip/DeflaterOutputStream;->syncFlush:Z
+Ljava/util/zip/DeflaterOutputStream;->usesDefaultDeflater:Z
+Ljava/util/zip/GZIPInputStream;->closed:Z
+Ljava/util/zip/GZIPInputStream;->ensureOpen()V
+Ljava/util/zip/GZIPInputStream;->FCOMMENT:I
+Ljava/util/zip/GZIPInputStream;->FEXTRA:I
+Ljava/util/zip/GZIPInputStream;->FHCRC:I
+Ljava/util/zip/GZIPInputStream;->FNAME:I
+Ljava/util/zip/GZIPInputStream;->FTEXT:I
+Ljava/util/zip/GZIPInputStream;->readHeader(Ljava/io/InputStream;)I
+Ljava/util/zip/GZIPInputStream;->readTrailer()Z
+Ljava/util/zip/GZIPInputStream;->readUByte(Ljava/io/InputStream;)I
+Ljava/util/zip/GZIPInputStream;->readUInt(Ljava/io/InputStream;)J
+Ljava/util/zip/GZIPInputStream;->readUShort(Ljava/io/InputStream;)I
+Ljava/util/zip/GZIPInputStream;->skipBytes(Ljava/io/InputStream;I)V
+Ljava/util/zip/GZIPInputStream;->tmpbuf:[B
+Ljava/util/zip/GZIPOutputStream;->GZIP_MAGIC:I
+Ljava/util/zip/GZIPOutputStream;->TRAILER_SIZE:I
+Ljava/util/zip/GZIPOutputStream;->writeHeader()V
+Ljava/util/zip/GZIPOutputStream;->writeInt(I[BI)V
+Ljava/util/zip/GZIPOutputStream;->writeShort(I[BI)V
+Ljava/util/zip/GZIPOutputStream;->writeTrailer([BI)V
+Ljava/util/zip/Inflater;->bytesRead:J
+Ljava/util/zip/Inflater;->bytesWritten:J
+Ljava/util/zip/Inflater;->defaultBuf:[B
+Ljava/util/zip/Inflater;->end(J)V
+Ljava/util/zip/Inflater;->ended()Z
+Ljava/util/zip/Inflater;->ensureOpen()V
+Ljava/util/zip/Inflater;->getAdler(J)I
+Ljava/util/zip/Inflater;->guard:Ldalvik/system/CloseGuard;
+Ljava/util/zip/Inflater;->inflateBytes(J[BII)I
+Ljava/util/zip/Inflater;->init(Z)J
+Ljava/util/zip/Inflater;->reset(J)V
+Ljava/util/zip/Inflater;->setDictionary(J[BII)V
+Ljava/util/zip/Inflater;->zsRef:Ljava/util/zip/ZStreamRef;
+Ljava/util/zip/InflaterInputStream;->b:[B
+Ljava/util/zip/InflaterInputStream;->ensureOpen()V
+Ljava/util/zip/InflaterInputStream;->reachEOF:Z
+Ljava/util/zip/InflaterInputStream;->singleByteBuf:[B
+Ljava/util/zip/InflaterOutputStream;->closed:Z
+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;
+Ljava/util/zip/ZipCoder;->decoder()Ljava/nio/charset/CharsetDecoder;
+Ljava/util/zip/ZipCoder;->enc:Ljava/nio/charset/CharsetEncoder;
+Ljava/util/zip/ZipCoder;->encoder()Ljava/nio/charset/CharsetEncoder;
+Ljava/util/zip/ZipCoder;->get(Ljava/nio/charset/Charset;)Ljava/util/zip/ZipCoder;
+Ljava/util/zip/ZipCoder;->getBytes(Ljava/lang/String;)[B
+Ljava/util/zip/ZipCoder;->getBytesUTF8(Ljava/lang/String;)[B
+Ljava/util/zip/ZipCoder;->isUTF8()Z
+Ljava/util/zip/ZipCoder;->isUTF8:Z
+Ljava/util/zip/ZipCoder;->toString([B)Ljava/lang/String;
+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;
+Ljava/util/zip/ZipEntry;->crc:J
+Ljava/util/zip/ZipEntry;->csize:J
+Ljava/util/zip/ZipEntry;->ctime:Ljava/nio/file/attribute/FileTime;
+Ljava/util/zip/ZipEntry;->dataOffset:J
+Ljava/util/zip/ZipEntry;->DOSTIME_BEFORE_1980:J
+Ljava/util/zip/ZipEntry;->extra:[B
+Ljava/util/zip/ZipEntry;->flag:I
+Ljava/util/zip/ZipEntry;->getDataOffset()J
+Ljava/util/zip/ZipEntry;->mtime:Ljava/nio/file/attribute/FileTime;
+Ljava/util/zip/ZipEntry;->name:Ljava/lang/String;
+Ljava/util/zip/ZipEntry;->setExtra0([BZ)V
+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
+Ljava/util/zip/ZipFile$ZipFileInputStream;->size()J
+Ljava/util/zip/ZipFile$ZipFileInputStream;->size:J
+Ljava/util/zip/ZipFile$ZipFileInputStream;->zfisCloseRequested:Z
+Ljava/util/zip/ZipFile;->closeRequested:Z
+Ljava/util/zip/ZipFile;->DEFLATED:I
+Ljava/util/zip/ZipFile;->ensureOpen()V
+Ljava/util/zip/ZipFile;->ensureOpenOrZipException()V
+Ljava/util/zip/ZipFile;->fileToRemoveOnClose:Ljava/io/File;
+Ljava/util/zip/ZipFile;->freeEntry(JJ)V
+Ljava/util/zip/ZipFile;->getCommentBytes(J)[B
+Ljava/util/zip/ZipFile;->getEntryBytes(JI)[B
+Ljava/util/zip/ZipFile;->getEntryCrc(J)J
+Ljava/util/zip/ZipFile;->getEntryCSize(J)J
+Ljava/util/zip/ZipFile;->getEntryFlag(J)I
+Ljava/util/zip/ZipFile;->getEntryMethod(J)I
+Ljava/util/zip/ZipFile;->getEntrySize(J)J
+Ljava/util/zip/ZipFile;->getEntryTime(J)J
+Ljava/util/zip/ZipFile;->getFileDescriptor()I
+Ljava/util/zip/ZipFile;->getFileDescriptor(J)I
+Ljava/util/zip/ZipFile;->getInflater()Ljava/util/zip/Inflater;
+Ljava/util/zip/ZipFile;->getNextEntry(JI)J
+Ljava/util/zip/ZipFile;->getTotal(J)I
+Ljava/util/zip/ZipFile;->getZipEntry(Ljava/lang/String;J)Ljava/util/zip/ZipEntry;
+Ljava/util/zip/ZipFile;->getZipMessage(J)Ljava/lang/String;
+Ljava/util/zip/ZipFile;->guard:Ldalvik/system/CloseGuard;
+Ljava/util/zip/ZipFile;->inflaterCache:Ljava/util/Deque;
+Ljava/util/zip/ZipFile;->JZENTRY_COMMENT:I
+Ljava/util/zip/ZipFile;->JZENTRY_EXTRA:I
+Ljava/util/zip/ZipFile;->JZENTRY_NAME:I
+Ljava/util/zip/ZipFile;->locsig:Z
+Ljava/util/zip/ZipFile;->name:Ljava/lang/String;
+Ljava/util/zip/ZipFile;->open(Ljava/lang/String;IJZ)J
+Ljava/util/zip/ZipFile;->read(JJJ[BII)I
+Ljava/util/zip/ZipFile;->releaseInflater(Ljava/util/zip/Inflater;)V
+Ljava/util/zip/ZipFile;->startsWithLOC(J)Z
+Ljava/util/zip/ZipFile;->startsWithLocHeader()Z
+Ljava/util/zip/ZipFile;->STORED:I
+Ljava/util/zip/ZipFile;->streams:Ljava/util/Map;
+Ljava/util/zip/ZipFile;->total:I
+Ljava/util/zip/ZipFile;->usemmap:Z
+Ljava/util/zip/ZipFile;->zc:Ljava/util/zip/ZipCoder;
+Ljava/util/zip/ZipInputStream;->b:[B
+Ljava/util/zip/ZipInputStream;->closed:Z
+Ljava/util/zip/ZipInputStream;->crc:Ljava/util/zip/CRC32;
+Ljava/util/zip/ZipInputStream;->DEFLATED:I
+Ljava/util/zip/ZipInputStream;->ensureOpen()V
+Ljava/util/zip/ZipInputStream;->entry:Ljava/util/zip/ZipEntry;
+Ljava/util/zip/ZipInputStream;->entryEOF:Z
+Ljava/util/zip/ZipInputStream;->readEnd(Ljava/util/zip/ZipEntry;)V
+Ljava/util/zip/ZipInputStream;->readFully([BII)V
+Ljava/util/zip/ZipInputStream;->readLOC()Ljava/util/zip/ZipEntry;
+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
+Ljava/util/zip/ZipOutputStream;->closed:Z
+Ljava/util/zip/ZipOutputStream;->comment:[B
+Ljava/util/zip/ZipOutputStream;->crc:Ljava/util/zip/CRC32;
+Ljava/util/zip/ZipOutputStream;->current:Ljava/util/zip/ZipOutputStream$XEntry;
+Ljava/util/zip/ZipOutputStream;->ensureOpen()V
+Ljava/util/zip/ZipOutputStream;->finished:Z
+Ljava/util/zip/ZipOutputStream;->getExtraLen([B)I
+Ljava/util/zip/ZipOutputStream;->inhibitZip64:Z
+Ljava/util/zip/ZipOutputStream;->locoff:J
+Ljava/util/zip/ZipOutputStream;->version(Ljava/util/zip/ZipEntry;)I
+Ljava/util/zip/ZipOutputStream;->writeByte(I)V
+Ljava/util/zip/ZipOutputStream;->writeBytes([BII)V
+Ljava/util/zip/ZipOutputStream;->writeCEN(Ljava/util/zip/ZipOutputStream$XEntry;)V
+Ljava/util/zip/ZipOutputStream;->writeEND(JJ)V
+Ljava/util/zip/ZipOutputStream;->writeEXT(Ljava/util/zip/ZipEntry;)V
+Ljava/util/zip/ZipOutputStream;->writeExtra([B)V
+Ljava/util/zip/ZipOutputStream;->writeInt(J)V
+Ljava/util/zip/ZipOutputStream;->writeLOC(Ljava/util/zip/ZipOutputStream$XEntry;)V
+Ljava/util/zip/ZipOutputStream;->writeLong(J)V
+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;
+Ljavax/crypto/Cipher$InitParams;->opmode:I
+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
+Ljavax/crypto/Cipher$SpiAndProviderUpdater;->specifiedProvider:Ljava/security/Provider;
+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;
+Ljavax/crypto/Cipher;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;Ljava/lang/String;[Ljava/lang/String;)V
+Ljavax/crypto/Cipher;->ATTRIBUTE_MODES:Ljava/lang/String;
+Ljavax/crypto/Cipher;->ATTRIBUTE_PADDINGS:Ljava/lang/String;
+Ljavax/crypto/Cipher;->checkCipherState()V
+Ljavax/crypto/Cipher;->checkOpmode(I)V
+Ljavax/crypto/Cipher;->chooseProvider(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
+Ljavax/crypto/Cipher;->createCipher(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
+Ljavax/crypto/Cipher;->exmech:Ljavax/crypto/ExemptionMechanism;
+Ljavax/crypto/Cipher;->getAlgorithmParameterSpec(Ljava/security/AlgorithmParameters;)Ljava/security/spec/AlgorithmParameterSpec;
+Ljavax/crypto/Cipher;->getCurrentSpi()Ljavax/crypto/CipherSpi;
+Ljavax/crypto/Cipher;->getOpmodeString(I)Ljava/lang/String;
+Ljavax/crypto/Cipher;->initialized:Z
+Ljavax/crypto/Cipher;->KEY_USAGE_EXTENSION_OID:Ljava/lang/String;
+Ljavax/crypto/Cipher;->matchAttribute(Ljava/security/Provider$Service;Ljava/lang/String;Ljava/lang/String;)Z
+Ljavax/crypto/Cipher;->opmode:I
+Ljavax/crypto/Cipher;->provider:Ljava/security/Provider;
+Ljavax/crypto/Cipher;->spi:Ljavax/crypto/CipherSpi;
+Ljavax/crypto/Cipher;->spiAndProviderUpdater:Ljavax/crypto/Cipher$SpiAndProviderUpdater;
+Ljavax/crypto/Cipher;->tokenizedTransformation:[Ljava/lang/String;
+Ljavax/crypto/Cipher;->tokenizeTransformation(Ljava/lang/String;)[Ljava/lang/String;
+Ljavax/crypto/Cipher;->transformation:Ljava/lang/String;
+Ljavax/crypto/Cipher;->tryCombinations(Ljavax/crypto/Cipher$InitParams;Ljava/security/Provider;[Ljava/lang/String;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
+Ljavax/crypto/Cipher;->tryTransformWithProvider(Ljavax/crypto/Cipher$InitParams;[Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;Ljava/security/Provider$Service;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
+Ljavax/crypto/Cipher;->updateProviderIfNeeded()V
+Ljavax/crypto/CipherInputStream;->cipher:Ljavax/crypto/Cipher;
+Ljavax/crypto/CipherInputStream;->closed:Z
+Ljavax/crypto/CipherInputStream;->done:Z
+Ljavax/crypto/CipherInputStream;->getMoreData()I
+Ljavax/crypto/CipherInputStream;->ibuffer:[B
+Ljavax/crypto/CipherInputStream;->input:Ljava/io/InputStream;
+Ljavax/crypto/CipherInputStream;->obuffer:[B
+Ljavax/crypto/CipherInputStream;->ofinish:I
+Ljavax/crypto/CipherInputStream;->ostart:I
+Ljavax/crypto/CipherOutputStream;->cipher:Ljavax/crypto/Cipher;
+Ljavax/crypto/CipherOutputStream;->closed:Z
+Ljavax/crypto/CipherOutputStream;->ibuffer:[B
+Ljavax/crypto/CipherOutputStream;->obuffer:[B
+Ljavax/crypto/CipherOutputStream;->output:Ljava/io/OutputStream;
+Ljavax/crypto/CipherSpi;->bufferCrypt(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Z)I
+Ljavax/crypto/CipherSpi;->getTempArraySize(I)I
+Ljavax/crypto/EncryptedPrivateKeyInfo;->algid:Lsun/security/x509/AlgorithmId;
+Ljavax/crypto/EncryptedPrivateKeyInfo;->checkPKCS8Encoding([B)V
+Ljavax/crypto/EncryptedPrivateKeyInfo;->checkTag(Lsun/security/util/DerValue;BLjava/lang/String;)V
+Ljavax/crypto/EncryptedPrivateKeyInfo;->encoded:[B
+Ljavax/crypto/EncryptedPrivateKeyInfo;->encryptedData:[B
+Ljavax/crypto/EncryptedPrivateKeyInfo;->getKeySpecImpl(Ljava/security/Key;Ljava/security/Provider;)Ljava/security/spec/PKCS8EncodedKeySpec;
+Ljavax/crypto/ExemptionMechanism;->done:Z
+Ljavax/crypto/ExemptionMechanism;->exmechSpi:Ljavax/crypto/ExemptionMechanismSpi;
+Ljavax/crypto/ExemptionMechanism;->initialized:Z
+Ljavax/crypto/ExemptionMechanism;->keyStored:Ljava/security/Key;
+Ljavax/crypto/ExemptionMechanism;->mechanism:Ljava/lang/String;
+Ljavax/crypto/ExemptionMechanism;->provider:Ljava/security/Provider;
+Ljavax/crypto/KeyAgreement;-><init>(Ljava/lang/String;)V
+Ljavax/crypto/KeyAgreement;->algorithm:Ljava/lang/String;
+Ljavax/crypto/KeyAgreement;->chooseFirstProvider()V
+Ljavax/crypto/KeyAgreement;->chooseProvider(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+Ljavax/crypto/KeyAgreement;->implInit(Ljavax/crypto/KeyAgreementSpi;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+Ljavax/crypto/KeyAgreement;->I_NO_PARAMS:I
+Ljavax/crypto/KeyAgreement;->I_PARAMS:I
+Ljavax/crypto/KeyAgreement;->lock:Ljava/lang/Object;
+Ljavax/crypto/KeyAgreement;->provider:Ljava/security/Provider;
+Ljavax/crypto/KeyAgreement;->spi:Ljavax/crypto/KeyAgreementSpi;
+Ljavax/crypto/KeyAgreement;->warnCount:I
+Ljavax/crypto/KeyGenerator;-><init>(Ljava/lang/String;)V
+Ljavax/crypto/KeyGenerator;->algorithm:Ljava/lang/String;
+Ljavax/crypto/KeyGenerator;->disableFailover()V
+Ljavax/crypto/KeyGenerator;->initKeySize:I
+Ljavax/crypto/KeyGenerator;->initParams:Ljava/security/spec/AlgorithmParameterSpec;
+Ljavax/crypto/KeyGenerator;->initRandom:Ljava/security/SecureRandom;
+Ljavax/crypto/KeyGenerator;->initType:I
+Ljavax/crypto/KeyGenerator;->I_NONE:I
+Ljavax/crypto/KeyGenerator;->I_PARAMS:I
+Ljavax/crypto/KeyGenerator;->I_RANDOM:I
+Ljavax/crypto/KeyGenerator;->I_SIZE:I
+Ljavax/crypto/KeyGenerator;->lock:Ljava/lang/Object;
+Ljavax/crypto/KeyGenerator;->nextSpi(Ljavax/crypto/KeyGeneratorSpi;Z)Ljavax/crypto/KeyGeneratorSpi;
+Ljavax/crypto/KeyGenerator;->provider:Ljava/security/Provider;
+Ljavax/crypto/KeyGenerator;->serviceIterator:Ljava/util/Iterator;
+Ljavax/crypto/KeyGenerator;->spi:Ljavax/crypto/KeyGeneratorSpi;
+Ljavax/crypto/Mac;-><init>(Ljava/lang/String;)V
+Ljavax/crypto/Mac;->algorithm:Ljava/lang/String;
+Ljavax/crypto/Mac;->chooseFirstProvider()V
+Ljavax/crypto/Mac;->chooseProvider(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
+Ljavax/crypto/Mac;->getCurrentSpi()Ljavax/crypto/MacSpi;
+Ljavax/crypto/Mac;->initialized:Z
+Ljavax/crypto/Mac;->lock:Ljava/lang/Object;
+Ljavax/crypto/Mac;->provider:Ljava/security/Provider;
+Ljavax/crypto/Mac;->spi:Ljavax/crypto/MacSpi;
+Ljavax/crypto/Mac;->warnCount:I
+Ljavax/crypto/SealedObject;->encryptedContent:[B
+Ljavax/crypto/SealedObject;->paramsAlg:Ljava/lang/String;
+Ljavax/crypto/SealedObject;->sealAlg:Ljava/lang/String;
+Ljavax/crypto/SealedObject;->unseal(Ljava/security/Key;Ljava/lang/String;)Ljava/lang/Object;
+Ljavax/crypto/SecretKeyFactory;-><init>(Ljava/lang/String;)V
+Ljavax/crypto/SecretKeyFactory;->algorithm:Ljava/lang/String;
+Ljavax/crypto/SecretKeyFactory;->lock:Ljava/lang/Object;
+Ljavax/crypto/SecretKeyFactory;->nextSpi(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
+Ljavax/crypto/SecretKeyFactory;->provider:Ljava/security/Provider;
+Ljavax/crypto/SecretKeyFactory;->serviceIterator:Ljava/util/Iterator;
+Ljavax/crypto/SecretKeyFactory;->spi:Ljavax/crypto/SecretKeyFactorySpi;
+Ljavax/crypto/spec/DESedeKeySpec;->key:[B
+Ljavax/crypto/spec/DESKeySpec;->key:[B
+Ljavax/crypto/spec/DESKeySpec;->WEAK_KEYS:[[B
+Ljavax/crypto/spec/DHGenParameterSpec;->exponentSize:I
+Ljavax/crypto/spec/DHGenParameterSpec;->primeSize:I
+Ljavax/crypto/spec/DHParameterSpec;->g:Ljava/math/BigInteger;
+Ljavax/crypto/spec/DHParameterSpec;->l:I
+Ljavax/crypto/spec/DHParameterSpec;->p:Ljava/math/BigInteger;
+Ljavax/crypto/spec/DHPrivateKeySpec;->g:Ljava/math/BigInteger;
+Ljavax/crypto/spec/DHPrivateKeySpec;->p:Ljava/math/BigInteger;
+Ljavax/crypto/spec/DHPrivateKeySpec;->x:Ljava/math/BigInteger;
+Ljavax/crypto/spec/DHPublicKeySpec;->g:Ljava/math/BigInteger;
+Ljavax/crypto/spec/DHPublicKeySpec;->p:Ljava/math/BigInteger;
+Ljavax/crypto/spec/DHPublicKeySpec;->y:Ljava/math/BigInteger;
+Ljavax/crypto/spec/GCMParameterSpec;->init(I[BII)V
+Ljavax/crypto/spec/GCMParameterSpec;->iv:[B
+Ljavax/crypto/spec/GCMParameterSpec;->tLen:I
+Ljavax/crypto/spec/IvParameterSpec;->iv:[B
+Ljavax/crypto/spec/OAEPParameterSpec;-><init>()V
+Ljavax/crypto/spec/OAEPParameterSpec;->mdName:Ljava/lang/String;
+Ljavax/crypto/spec/OAEPParameterSpec;->mgfName:Ljava/lang/String;
+Ljavax/crypto/spec/OAEPParameterSpec;->mgfSpec:Ljava/security/spec/AlgorithmParameterSpec;
+Ljavax/crypto/spec/OAEPParameterSpec;->pSrc:Ljavax/crypto/spec/PSource;
+Ljavax/crypto/spec/PBEKeySpec;->iterationCount:I
+Ljavax/crypto/spec/PBEKeySpec;->keyLength:I
+Ljavax/crypto/spec/PBEKeySpec;->password:[C
+Ljavax/crypto/spec/PBEKeySpec;->salt:[B
+Ljavax/crypto/spec/PBEParameterSpec;->iterationCount:I
+Ljavax/crypto/spec/PBEParameterSpec;->paramSpec:Ljava/security/spec/AlgorithmParameterSpec;
+Ljavax/crypto/spec/PBEParameterSpec;->salt:[B
+Ljavax/crypto/spec/PSource$PSpecified;->p:[B
+Ljavax/crypto/spec/PSource;->pSrcName:Ljava/lang/String;
+Ljavax/crypto/spec/RC2ParameterSpec;->effectiveKeyBits:I
+Ljavax/crypto/spec/RC2ParameterSpec;->iv:[B
+Ljavax/crypto/spec/RC5ParameterSpec;->iv:[B
+Ljavax/crypto/spec/RC5ParameterSpec;->rounds:I
+Ljavax/crypto/spec/RC5ParameterSpec;->version:I
+Ljavax/crypto/spec/RC5ParameterSpec;->wordSize:I
+Ljavax/crypto/spec/SecretKeySpec;->algorithm:Ljava/lang/String;
+Ljavax/crypto/spec/SecretKeySpec;->key:[B
+Ljavax/microedition/khronos/egl/EGLContext;->EGL_INSTANCE:Ljavax/microedition/khronos/egl/EGL;
+Ljavax/net/ServerSocketFactory;->theFactory:Ljavax/net/ServerSocketFactory;
+Ljavax/net/SocketFactory;->setDefault(Ljavax/net/SocketFactory;)V
+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;
+Ljavax/net/ssl/HttpsURLConnection;->defaultSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
+Ljavax/net/ssl/HttpsURLConnection;->sslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
+Ljavax/net/ssl/KeyManagerFactory;->algorithm:Ljava/lang/String;
+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
+Ljavax/net/ssl/SNIHostName;->hostname:Ljava/lang/String;
+Ljavax/net/ssl/SNIMatcher;->type:I
+Ljavax/net/ssl/SNIServerName;->encoded:[B
+Ljavax/net/ssl/SNIServerName;->HEXES:[C
+Ljavax/net/ssl/SNIServerName;->toHexString([B)Ljava/lang/String;
+Ljavax/net/ssl/SNIServerName;->type:I
+Ljavax/net/ssl/SSLContext;->contextSpi:Ljavax/net/ssl/SSLContextSpi;
+Ljavax/net/ssl/SSLContext;->defaultContext:Ljavax/net/ssl/SSLContext;
+Ljavax/net/ssl/SSLContext;->protocol:Ljava/lang/String;
+Ljavax/net/ssl/SSLContext;->provider:Ljava/security/Provider;
+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;
+Ljavax/net/ssl/SSLEngineResult;->status:Ljavax/net/ssl/SSLEngineResult$Status;
+Ljavax/net/ssl/SSLParameters;->algorithmConstraints:Ljava/security/AlgorithmConstraints;
+Ljavax/net/ssl/SSLParameters;->cipherSuites:[Ljava/lang/String;
+Ljavax/net/ssl/SSLParameters;->clone([Ljava/lang/String;)[Ljava/lang/String;
+Ljavax/net/ssl/SSLParameters;->identificationAlgorithm:Ljava/lang/String;
+Ljavax/net/ssl/SSLParameters;->needClientAuth:Z
+Ljavax/net/ssl/SSLParameters;->preferLocalCipherSuites:Z
+Ljavax/net/ssl/SSLParameters;->protocols:[Ljava/lang/String;
+Ljavax/net/ssl/SSLParameters;->sniMatchers:Ljava/util/Map;
+Ljavax/net/ssl/SSLParameters;->sniNames:Ljava/util/Map;
+Ljavax/net/ssl/SSLParameters;->wantClientAuth:Z
+Ljavax/net/ssl/SSLServerSocketFactory;->lastVersion:I
+Ljavax/net/ssl/SSLServerSocketFactory;->log(Ljava/lang/String;)V
+Ljavax/net/ssl/SSLSessionBindingEvent;->name:Ljava/lang/String;
+Ljavax/net/ssl/SSLSocketFactory;->DEBUG:Z
+Ljavax/net/ssl/SSLSocketFactory;->getSecurityProperty(Ljava/lang/String;)Ljava/lang/String;
+Ljavax/net/ssl/SSLSocketFactory;->lastVersion:I
+Ljavax/net/ssl/SSLSocketFactory;->log(Ljava/lang/String;)V
+Ljavax/net/ssl/StandardConstants;-><init>()V
+Ljavax/net/ssl/TrustManagerFactory;->algorithm:Ljava/lang/String;
+Ljavax/net/ssl/TrustManagerFactory;->factorySpi:Ljavax/net/ssl/TrustManagerFactorySpi;
+Ljavax/net/ssl/TrustManagerFactory;->provider:Ljava/security/Provider;
+Ljavax/security/auth/callback/PasswordCallback;->echoOn:Z
+Ljavax/security/auth/callback/PasswordCallback;->inputPassword:[C
+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;
+Ljavax/security/auth/Subject$AuthPermissionHolder;->GET_SUBJECT_PERMISSION:Ljavax/security/auth/AuthPermission;
+Ljavax/security/auth/Subject$AuthPermissionHolder;->MODIFY_PRINCIPALS_PERMISSION:Ljavax/security/auth/AuthPermission;
+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;
+Ljavax/security/auth/Subject$SecureSet;->subject:Ljavax/security/auth/Subject;
+Ljavax/security/auth/Subject$SecureSet;->which:I
+Ljavax/security/auth/Subject;->createContext(Ljavax/security/auth/Subject;Ljava/security/AccessControlContext;)Ljava/security/AccessControlContext;
+Ljavax/security/auth/Subject;->getCredHashCode(Ljava/lang/Object;)I
+Ljavax/security/auth/Subject;->NULL_PD_ARRAY:[Ljava/security/ProtectionDomain;
+Ljavax/security/auth/Subject;->principals:Ljava/util/Set;
+Ljavax/security/auth/Subject;->PRINCIPAL_SET:I
+Ljavax/security/auth/Subject;->privCredentials:Ljava/util/Set;
+Ljavax/security/auth/Subject;->PRIV_CREDENTIAL_SET:I
+Ljavax/security/auth/Subject;->pubCredentials:Ljava/util/Set;
+Ljavax/security/auth/Subject;->PUB_CREDENTIAL_SET:I
+Ljavax/security/auth/Subject;->readOnly:Z
+Ljavax/security/auth/Subject;->toString(Z)Ljava/lang/String;
+Ljavax/security/auth/x500/X500Principal;-><init>(Lsun/security/x509/X500Name;)V
+Ljavax/security/auth/x500/X500Principal;->thisX500Name:Lsun/security/x509/X500Name;
+Ljavax/security/cert/X509Certificate;->DEFAULT_X509_CERT_CLASS:Ljava/lang/String;
+Ljavax/security/cert/X509Certificate;->getInst(Ljava/lang/Object;)Ljavax/security/cert/X509Certificate;
+Ljavax/security/cert/X509Certificate;->X509Provider:Ljava/lang/String;
+Ljavax/security/cert/X509Certificate;->X509_PROVIDER:Ljava/lang/String;
+Ljavax/sql/ConnectionEvent;->ex:Ljava/sql/SQLException;
+Ljavax/sql/StatementEvent;->exception:Ljava/sql/SQLException;
+Ljavax/sql/StatementEvent;->statement:Ljava/sql/PreparedStatement;
+Ljavax/xml/datatype/DatatypeConfigurationException;->causeOnJDK13OrBelow:Ljava/lang/Throwable;
+Ljavax/xml/datatype/DatatypeConfigurationException;->initCauseByReflection(Ljava/lang/Throwable;)V
+Ljavax/xml/datatype/DatatypeConfigurationException;->isJDK14OrAbove:Z
+Ljavax/xml/datatype/DatatypeConfigurationException;->printStackTrace0(Ljava/io/PrintWriter;)V
+Ljavax/xml/datatype/DatatypeConstants$Field;-><init>(Ljava/lang/String;I)V
+Ljavax/xml/datatype/DatatypeConstants$Field;->id:I
+Ljavax/xml/datatype/DatatypeConstants$Field;->str:Ljava/lang/String;
+Ljavax/xml/datatype/DatatypeConstants;-><init>()V
+Ljavax/xml/datatype/Duration;->getCalendarTimeInMillis(Ljava/util/Calendar;)J
+Ljavax/xml/datatype/Duration;->getFieldValueAsInt(Ljavax/xml/datatype/DatatypeConstants$Field;)I
+Ljavax/xml/datatype/Duration;->toString(Ljava/math/BigDecimal;)Ljava/lang/String;
+Ljavax/xml/namespace/QName;->compatibilitySerialVersionUID:J
+Ljavax/xml/namespace/QName;->defaultSerialVersionUID:J
+Ljavax/xml/namespace/QName;->localPart:Ljava/lang/String;
+Ljavax/xml/namespace/QName;->namespaceURI:Ljava/lang/String;
+Ljavax/xml/namespace/QName;->prefix:Ljava/lang/String;
+Ljavax/xml/namespace/QName;->qNameAsString:Ljava/lang/String;
+Ljavax/xml/parsers/DocumentBuilder;->DEBUG:Z
+Ljavax/xml/parsers/DocumentBuilderFactory;->coalescing:Z
+Ljavax/xml/parsers/DocumentBuilderFactory;->expandEntityRef:Z
+Ljavax/xml/parsers/DocumentBuilderFactory;->ignoreComments:Z
+Ljavax/xml/parsers/DocumentBuilderFactory;->namespaceAware:Z
+Ljavax/xml/parsers/DocumentBuilderFactory;->validating:Z
+Ljavax/xml/parsers/DocumentBuilderFactory;->whitespace:Z
+Ljavax/xml/parsers/FactoryConfigurationError;->exception:Ljava/lang/Exception;
+Ljavax/xml/parsers/SAXParser;->DEBUG:Z
+Ljavax/xml/parsers/SAXParserFactory;->namespaceAware:Z
+Ljavax/xml/parsers/SAXParserFactory;->validating:Z
+Ljavax/xml/transform/dom/DOMResult;->nextSibling:Lorg/w3c/dom/Node;
+Ljavax/xml/transform/dom/DOMResult;->node:Lorg/w3c/dom/Node;
+Ljavax/xml/transform/dom/DOMResult;->systemId:Ljava/lang/String;
+Ljavax/xml/transform/dom/DOMSource;->node:Lorg/w3c/dom/Node;
+Ljavax/xml/transform/dom/DOMSource;->systemID:Ljava/lang/String;
+Ljavax/xml/transform/OutputKeys;-><init>()V
+Ljavax/xml/transform/sax/SAXResult;->handler:Lorg/xml/sax/ContentHandler;
+Ljavax/xml/transform/sax/SAXResult;->lexhandler:Lorg/xml/sax/ext/LexicalHandler;
+Ljavax/xml/transform/sax/SAXResult;->systemId:Ljava/lang/String;
+Ljavax/xml/transform/sax/SAXSource;->inputSource:Lorg/xml/sax/InputSource;
+Ljavax/xml/transform/sax/SAXSource;->reader:Lorg/xml/sax/XMLReader;
+Ljavax/xml/transform/stream/StreamResult;->outputStream:Ljava/io/OutputStream;
+Ljavax/xml/transform/stream/StreamResult;->systemId:Ljava/lang/String;
+Ljavax/xml/transform/stream/StreamResult;->writer:Ljava/io/Writer;
+Ljavax/xml/transform/stream/StreamSource;->inputStream:Ljava/io/InputStream;
+Ljavax/xml/transform/stream/StreamSource;->publicId:Ljava/lang/String;
+Ljavax/xml/transform/stream/StreamSource;->reader:Ljava/io/Reader;
+Ljavax/xml/transform/stream/StreamSource;->systemId:Ljava/lang/String;
+Ljavax/xml/transform/TransformerException;->containedException:Ljava/lang/Throwable;
+Ljavax/xml/transform/TransformerException;->locator:Ljavax/xml/transform/SourceLocator;
+Ljavax/xml/transform/TransformerFactoryConfigurationError;->exception:Ljava/lang/Exception;
+Ljavax/xml/XMLConstants;-><init>()V
+Ljavax/xml/xpath/XPathConstants;-><init>()V
+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;
+Llibcore/util/NativeAllocationRegistry;->freeFunction:J
+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;
+Llibcore/util/ZoneInfo$OffsetInterval;->endWallTimeSeconds:I
+Llibcore/util/ZoneInfo$OffsetInterval;->getEndWallTimeSeconds()J
+Llibcore/util/ZoneInfo$OffsetInterval;->getIsDst()I
+Llibcore/util/ZoneInfo$OffsetInterval;->getStartWallTimeSeconds()J
+Llibcore/util/ZoneInfo$OffsetInterval;->getTotalOffsetSeconds()I
+Llibcore/util/ZoneInfo$OffsetInterval;->isDst:I
+Llibcore/util/ZoneInfo$OffsetInterval;->startWallTimeSeconds:I
+Llibcore/util/ZoneInfo$OffsetInterval;->totalOffsetSeconds:I
+Llibcore/util/ZoneInfo$WallTime;->calendar:Ljava/util/GregorianCalendar;
+Llibcore/util/ZoneInfo$WallTime;->copyFieldsFromCalendar()V
+Llibcore/util/ZoneInfo$WallTime;->copyFieldsToCalendar()V
+Llibcore/util/ZoneInfo$WallTime;->doWallTimeSearch(Llibcore/util/ZoneInfo;IIZ)Ljava/lang/Integer;
+Llibcore/util/ZoneInfo$WallTime;->getOffsetsOfType(Llibcore/util/ZoneInfo;II)[I
+Llibcore/util/ZoneInfo$WallTime;->gmtOffsetSeconds:I
+Llibcore/util/ZoneInfo$WallTime;->hour:I
+Llibcore/util/ZoneInfo$WallTime;->isDst:I
+Llibcore/util/ZoneInfo$WallTime;->minute:I
+Llibcore/util/ZoneInfo$WallTime;->month:I
+Llibcore/util/ZoneInfo$WallTime;->monthDay:I
+Llibcore/util/ZoneInfo$WallTime;->second:I
+Llibcore/util/ZoneInfo$WallTime;->tryOffsetAdjustments(Llibcore/util/ZoneInfo;ILlibcore/util/ZoneInfo$OffsetInterval;II)Ljava/lang/Integer;
+Llibcore/util/ZoneInfo$WallTime;->weekDay:I
+Llibcore/util/ZoneInfo$WallTime;->year:I
+Llibcore/util/ZoneInfo$WallTime;->yearDay:I
+Llibcore/util/ZoneInfo;-><init>(Ljava/lang/String;[J[B[I[BJ)V
+Llibcore/util/ZoneInfo;->checkedAdd(JI)I
+Llibcore/util/ZoneInfo;->checkedSubtract(II)I
+Llibcore/util/ZoneInfo;->findOffsetIndexForTimeInMilliseconds(J)I
+Llibcore/util/ZoneInfo;->findOffsetIndexForTimeInSeconds(J)I
+Llibcore/util/ZoneInfo;->LEAP:[I
+Llibcore/util/ZoneInfo;->mDstSavings:I
+Llibcore/util/ZoneInfo;->mEarliestRawOffset:I
+Llibcore/util/ZoneInfo;->MILLISECONDS_PER_400_YEARS:J
+Llibcore/util/ZoneInfo;->MILLISECONDS_PER_DAY:J
+Llibcore/util/ZoneInfo;->mIsDsts:[B
+Llibcore/util/ZoneInfo;->mOffsets:[I
+Llibcore/util/ZoneInfo;->mRawOffset:I
+Llibcore/util/ZoneInfo;->mTypes:[B
+Llibcore/util/ZoneInfo;->mUseDst:Z
+Llibcore/util/ZoneInfo;->NORMAL:[I
+Llibcore/util/ZoneInfo;->roundDownMillisToSeconds(J)J
+Llibcore/util/ZoneInfo;->roundUpMillisToSeconds(J)J
+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;
+Lorg/json/JSONStringer$Scope;->NONEMPTY_ARRAY:Lorg/json/JSONStringer$Scope;
+Lorg/json/JSONStringer$Scope;->NONEMPTY_OBJECT:Lorg/json/JSONStringer$Scope;
+Lorg/json/JSONStringer$Scope;->NULL:Lorg/json/JSONStringer$Scope;
+Lorg/json/JSONStringer$Scope;->valueOf(Ljava/lang/String;)Lorg/json/JSONStringer$Scope;
+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
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ALL:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ATTRIBUTE:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_CDATA_SECTION:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_COMMENT:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_DOCUMENT:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_DOCUMENT_FRAGMENT:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_DOCUMENT_TYPE:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ELEMENT:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ENTITY:I
+Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ENTITY_REFERENCE:I
+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;
+Lorg/w3c/dom/traversal/NodeIterator;->getWhatToShow()I
+Lorg/w3c/dom/traversal/NodeIterator;->previousNode()Lorg/w3c/dom/Node;
+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
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->declarations:Ljava/util/ArrayList;
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->declarePrefix(Ljava/lang/String;Ljava/lang/String;)V
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->declSeen:Z
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->declsOK:Z
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->defaultNS:Ljava/lang/String;
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->elementNameTable:Ljava/util/Hashtable;
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->getDeclaredPrefixes()Ljava/util/Enumeration;
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->getPrefix(Ljava/lang/String;)Ljava/lang/String;
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->getPrefixes()Ljava/util/Enumeration;
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->getURI(Ljava/lang/String;)Ljava/lang/String;
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->parent:Lorg/xml/sax/helpers/NamespaceSupport$Context;
+Lorg/xml/sax/helpers/NamespaceSupport$Context;->prefixTable:Ljava/util/Hashtable;
+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;
+Lorg/xml/sax/helpers/ParserAdapter;->NAMESPACES:Ljava/lang/String;
+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
+Lorg/xml/sax/helpers/XMLReaderFactory;-><init>()V
+Lorg/xml/sax/helpers/XMLReaderFactory;->property:Ljava/lang/String;
+Lorg/xmlpull/v1/XmlPullParserFactory;->getParserInstance()Lorg/xmlpull/v1/XmlPullParser;
+Lorg/xmlpull/v1/XmlPullParserFactory;->getSerializerInstance()Lorg/xmlpull/v1/XmlSerializer;
+Lorg/xmlpull/v1/XmlPullParserFactory;->newInstantiationException(Ljava/lang/String;Ljava/util/ArrayList;)Lorg/xmlpull/v1/XmlPullParserException;
+Lsun/misc/Cleaner;-><init>(Ljava/lang/Object;Ljava/lang/Runnable;)V
+Lsun/misc/Cleaner;->add(Lsun/misc/Cleaner;)Lsun/misc/Cleaner;
+Lsun/misc/Cleaner;->dummyQueue:Ljava/lang/ref/ReferenceQueue;
+Lsun/misc/Cleaner;->first:Lsun/misc/Cleaner;
+Lsun/misc/Cleaner;->next:Lsun/misc/Cleaner;
+Lsun/misc/Cleaner;->prev:Lsun/misc/Cleaner;
+Lsun/misc/Cleaner;->remove(Lsun/misc/Cleaner;)Z
+Lsun/misc/Cleaner;->thunk:Ljava/lang/Runnable;
+Lsun/misc/JarIndex;->addMapping(Ljava/lang/String;Ljava/lang/String;)V
+Lsun/misc/JarIndex;->addToList(Ljava/lang/String;Ljava/lang/String;Ljava/util/HashMap;)V
+Lsun/misc/JarIndex;->indexMap:Ljava/util/HashMap;
+Lsun/misc/JarIndex;->jarFiles:[Ljava/lang/String;
+Lsun/misc/JarIndex;->jarMap:Ljava/util/HashMap;
+Lsun/misc/JarIndex;->metaInfFilenames:Z
+Lsun/misc/JarIndex;->parseJars([Ljava/lang/String;)V
+Lsun/misc/LRUCache;->oa:[Ljava/lang/Object;
+Lsun/misc/LRUCache;->size:I
+Lsun/misc/MetaIndex;-><init>(Ljava/util/List;Z)V
+Lsun/misc/MetaIndex;->contents:[Ljava/lang/String;
+Lsun/misc/MetaIndex;->getJarMap()Ljava/util/Map;
+Lsun/misc/MetaIndex;->isClassOnlyJar:Z
+Lsun/misc/MetaIndex;->jarMap:Ljava/util/Map;
+Lsun/misc/Resource;->cachedInputStream()Ljava/io/InputStream;
+Lsun/misc/Resource;->cis:Ljava/io/InputStream;
+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;
+Lsun/misc/URLClassPath$JarLoader;->checkResource(Ljava/lang/String;ZLjava/util/jar/JarEntry;)Lsun/misc/Resource;
+Lsun/misc/URLClassPath$JarLoader;->closed:Z
+Lsun/misc/URLClassPath$JarLoader;->csu:Ljava/net/URL;
+Lsun/misc/URLClassPath$JarLoader;->ensureOpen()V
+Lsun/misc/URLClassPath$JarLoader;->findResource(Ljava/lang/String;Z)Ljava/net/URL;
+Lsun/misc/URLClassPath$JarLoader;->getClassPath()[Ljava/net/URL;
+Lsun/misc/URLClassPath$JarLoader;->getIndex()Lsun/misc/JarIndex;
+Lsun/misc/URLClassPath$JarLoader;->getJarFile(Ljava/net/URL;)Ljava/util/jar/JarFile;
+Lsun/misc/URLClassPath$JarLoader;->getResource(Ljava/lang/String;Z)Lsun/misc/Resource;
+Lsun/misc/URLClassPath$JarLoader;->getResource(Ljava/lang/String;ZLjava/util/Set;)Lsun/misc/Resource;
+Lsun/misc/URLClassPath$JarLoader;->handler:Ljava/net/URLStreamHandler;
+Lsun/misc/URLClassPath$JarLoader;->index:Lsun/misc/JarIndex;
+Lsun/misc/URLClassPath$JarLoader;->isOptimizable(Ljava/net/URL;)Z
+Lsun/misc/URLClassPath$JarLoader;->jar:Ljava/util/jar/JarFile;
+Lsun/misc/URLClassPath$JarLoader;->lmap:Ljava/util/HashMap;
+Lsun/misc/URLClassPath$JarLoader;->metaIndex:Lsun/misc/MetaIndex;
+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;
+Lsun/misc/URLClassPath$Loader;->getBaseURL()Ljava/net/URL;
+Lsun/misc/URLClassPath$Loader;->getClassPath()[Ljava/net/URL;
+Lsun/misc/URLClassPath$Loader;->getResource(Ljava/lang/String;)Lsun/misc/Resource;
+Lsun/misc/URLClassPath$Loader;->getResource(Ljava/lang/String;Z)Lsun/misc/Resource;
+Lsun/misc/URLClassPath$Loader;->jarfile:Ljava/util/jar/JarFile;
+Lsun/misc/URLClassPath;->acc:Ljava/security/AccessControlContext;
+Lsun/misc/URLClassPath;->check(Ljava/net/URL;)V
+Lsun/misc/URLClassPath;->closed:Z
+Lsun/misc/URLClassPath;->DEBUG:Z
+Lsun/misc/URLClassPath;->DEBUG_LOOKUP_CACHE:Z
+Lsun/misc/URLClassPath;->disableAllLookupCaches()V
+Lsun/misc/URLClassPath;->DISABLE_ACC_CHECKING:Z
+Lsun/misc/URLClassPath;->DISABLE_JAR_CHECKING:Z
+Lsun/misc/URLClassPath;->ensureLoaderOpened(I)Z
+Lsun/misc/URLClassPath;->getLoader(I)Lsun/misc/URLClassPath$Loader;
+Lsun/misc/URLClassPath;->getLoader(Ljava/net/URL;)Lsun/misc/URLClassPath$Loader;
+Lsun/misc/URLClassPath;->getLookupCache(Ljava/lang/String;)[I
+Lsun/misc/URLClassPath;->getLookupCacheForClassLoader(Ljava/lang/ClassLoader;Ljava/lang/String;)[I
+Lsun/misc/URLClassPath;->getLookupCacheURLs(Ljava/lang/ClassLoader;)[Ljava/net/URL;
+Lsun/misc/URLClassPath;->getNextLoader([II)Lsun/misc/URLClassPath$Loader;
+Lsun/misc/URLClassPath;->initLookupCache(Ljava/lang/ClassLoader;)V
+Lsun/misc/URLClassPath;->jarHandler:Ljava/net/URLStreamHandler;
+Lsun/misc/URLClassPath;->JAVA_VERSION:Ljava/lang/String;
+Lsun/misc/URLClassPath;->knownToNotExist(Ljava/lang/String;)Z
+Lsun/misc/URLClassPath;->knownToNotExist0(Ljava/lang/ClassLoader;Ljava/lang/String;)Z
+Lsun/misc/URLClassPath;->lookupCacheEnabled:Z
+Lsun/misc/URLClassPath;->lookupCacheLoader:Ljava/lang/ClassLoader;
+Lsun/misc/URLClassPath;->lookupCacheURLs:[Ljava/net/URL;
+Lsun/misc/URLClassPath;->path:Ljava/util/ArrayList;
+Lsun/misc/URLClassPath;->push([Ljava/net/URL;)V
+Lsun/misc/URLClassPath;->USER_AGENT_JAVA_VERSION:Ljava/lang/String;
+Lsun/misc/URLClassPath;->validateLookupCache(ILjava/lang/String;)V
+Lsun/security/pkcs/ContentInfo;->content:Lsun/security/util/DerValue;
+Lsun/security/pkcs/ContentInfo;->contentType:Lsun/security/util/ObjectIdentifier;
+Lsun/security/pkcs/ContentInfo;->crdata:[I
+Lsun/security/pkcs/ContentInfo;->data:[I
+Lsun/security/pkcs/ContentInfo;->ddata:[I
+Lsun/security/pkcs/ContentInfo;->edata:[I
+Lsun/security/pkcs/ContentInfo;->nsdata:[I
+Lsun/security/pkcs/ContentInfo;->OLD_DATA:[I
+Lsun/security/pkcs/ContentInfo;->OLD_SDATA:[I
+Lsun/security/pkcs/ContentInfo;->pkcs7:[I
+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;
+Lsun/security/pkcs/PKCS7;->certIssuerNames:[Ljava/security/Principal;
+Lsun/security/pkcs/PKCS7;->contentInfo:Lsun/security/pkcs/ContentInfo;
+Lsun/security/pkcs/PKCS7;->contentType:Lsun/security/util/ObjectIdentifier;
+Lsun/security/pkcs/PKCS7;->crls:[Ljava/security/cert/X509CRL;
+Lsun/security/pkcs/PKCS7;->digestAlgorithmIds:[Lsun/security/x509/AlgorithmId;
+Lsun/security/pkcs/PKCS7;->oldStyle:Z
+Lsun/security/pkcs/PKCS7;->parse(Lsun/security/util/DerInputStream;)V
+Lsun/security/pkcs/PKCS7;->parse(Lsun/security/util/DerInputStream;Z)V
+Lsun/security/pkcs/PKCS7;->parseNetscapeCertChain(Lsun/security/util/DerValue;)V
+Lsun/security/pkcs/PKCS7;->parseOldSignedData(Lsun/security/util/DerValue;)V
+Lsun/security/pkcs/PKCS7;->parseSignedData(Lsun/security/util/DerValue;)V
+Lsun/security/pkcs/PKCS7;->populateCertIssuerNames()V
+Lsun/security/pkcs/PKCS7;->signerInfos:[Lsun/security/pkcs/SignerInfo;
+Lsun/security/pkcs/PKCS7;->version:Ljava/math/BigInteger;
+Lsun/security/pkcs/PKCS9Attribute;->BYTE_ARRAY_CLASS:Ljava/lang/Class;
+Lsun/security/pkcs/PKCS9Attribute;->debug:Lsun/security/util/Debug;
+Lsun/security/pkcs/PKCS9Attribute;->index:I
+Lsun/security/pkcs/PKCS9Attribute;->indexOf(Ljava/lang/Object;[Ljava/lang/Object;I)I
+Lsun/security/pkcs/PKCS9Attribute;->init(Lsun/security/util/ObjectIdentifier;Ljava/lang/Object;)V
+Lsun/security/pkcs/PKCS9Attribute;->NAME_OID_TABLE:Ljava/util/Hashtable;
+Lsun/security/pkcs/PKCS9Attribute;->oid:Lsun/security/util/ObjectIdentifier;
+Lsun/security/pkcs/PKCS9Attribute;->OID_NAME_TABLE:Ljava/util/Hashtable;
+Lsun/security/pkcs/PKCS9Attribute;->PKCS9_OIDS:[Lsun/security/util/ObjectIdentifier;
+Lsun/security/pkcs/PKCS9Attribute;->PKCS9_VALUE_TAGS:[[Ljava/lang/Byte;
+Lsun/security/pkcs/PKCS9Attribute;->RSA_PROPRIETARY_STR:Ljava/lang/String;
+Lsun/security/pkcs/PKCS9Attribute;->SINGLE_VALUED:[Z
+Lsun/security/pkcs/PKCS9Attribute;->SMIME_SIGNING_DESC_STR:Ljava/lang/String;
+Lsun/security/pkcs/PKCS9Attribute;->throwSingleValuedException()V
+Lsun/security/pkcs/PKCS9Attribute;->throwTagException(Ljava/lang/Byte;)V
+Lsun/security/pkcs/PKCS9Attribute;->value:Ljava/lang/Object;
+Lsun/security/pkcs/PKCS9Attribute;->VALUE_CLASSES:[Ljava/lang/Class;
+Lsun/security/pkcs/PKCS9Attributes;->attributes:Ljava/util/Hashtable;
+Lsun/security/pkcs/PKCS9Attributes;->castToDerEncoder([Ljava/lang/Object;)[Lsun/security/util/DerEncoder;
+Lsun/security/pkcs/PKCS9Attributes;->decode(Lsun/security/util/DerInputStream;)[B
+Lsun/security/pkcs/PKCS9Attributes;->derEncoding:[B
+Lsun/security/pkcs/PKCS9Attributes;->generateDerEncoding()[B
+Lsun/security/pkcs/PKCS9Attributes;->ignoreUnsupportedAttributes:Z
+Lsun/security/pkcs/PKCS9Attributes;->permittedAttributes:Ljava/util/Hashtable;
+Lsun/security/pkcs/SignerInfo;->authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
+Lsun/security/pkcs/SignerInfo;->certificateSerialNumber:Ljava/math/BigInteger;
+Lsun/security/pkcs/SignerInfo;->digestAlgorithmId:Lsun/security/x509/AlgorithmId;
+Lsun/security/pkcs/SignerInfo;->digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
+Lsun/security/pkcs/SignerInfo;->DIGEST_PRIMITIVE_SET:Ljava/util/Set;
+Lsun/security/pkcs/SignerInfo;->encryptedDigest:[B
+Lsun/security/pkcs/SignerInfo;->hasTimestamp:Z
+Lsun/security/pkcs/SignerInfo;->issuerName:Lsun/security/x509/X500Name;
+Lsun/security/pkcs/SignerInfo;->JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
+Lsun/security/pkcs/SignerInfo;->SIG_PRIMITIVE_SET:Ljava/util/Set;
+Lsun/security/pkcs/SignerInfo;->timestamp:Ljava/security/Timestamp;
+Lsun/security/pkcs/SignerInfo;->unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
+Lsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;)Lsun/security/pkcs/SignerInfo;
+Lsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;Ljava/io/InputStream;)Lsun/security/pkcs/SignerInfo;
+Lsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;[B)Lsun/security/pkcs/SignerInfo;
+Lsun/security/pkcs/SignerInfo;->verifyTimestamp(Lsun/security/timestamp/TimestampToken;)V
+Lsun/security/pkcs/SignerInfo;->version:Ljava/math/BigInteger;
+Lsun/security/util/AbstractAlgorithmConstraints;->checkAlgorithm([Ljava/lang/String;Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)Z
+Lsun/security/util/AbstractAlgorithmConstraints;->getAlgorithms(Ljava/lang/String;)[Ljava/lang/String;
+Lsun/security/util/AlgorithmDecomposer;->decomposeImpl(Ljava/lang/String;)Ljava/util/Set;
+Lsun/security/util/AlgorithmDecomposer;->hasLoop(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
+Lsun/security/util/AlgorithmDecomposer;->pattern:Ljava/util/regex/Pattern;
+Lsun/security/util/AlgorithmDecomposer;->transPattern:Ljava/util/regex/Pattern;
+Lsun/security/util/BitArray;-><init>(Lsun/security/util/BitArray;)V
+Lsun/security/util/BitArray;->BITS_PER_UNIT:I
+Lsun/security/util/BitArray;->BYTES_PER_LINE:I
+Lsun/security/util/BitArray;->length:I
+Lsun/security/util/BitArray;->NYBBLE:[[B
+Lsun/security/util/BitArray;->position(I)I
+Lsun/security/util/BitArray;->repn:[B
+Lsun/security/util/BitArray;->subscript(I)I
+Lsun/security/util/CertConstraintParameters;->cert:Ljava/security/cert/X509Certificate;
+Lsun/security/util/CertConstraintParameters;->trustedMatch:Z
+Lsun/security/util/Debug;->args:Ljava/lang/String;
+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;
+Lsun/security/util/DerInputBuffer;->equals(Lsun/security/util/DerInputBuffer;)Z
+Lsun/security/util/DerInputBuffer;->getBigInteger(IZ)Ljava/math/BigInteger;
+Lsun/security/util/DerInputBuffer;->getBitString()[B
+Lsun/security/util/DerInputBuffer;->getBitString(I)[B
+Lsun/security/util/DerInputBuffer;->getGeneralizedTime(I)Ljava/util/Date;
+Lsun/security/util/DerInputBuffer;->getInteger(I)I
+Lsun/security/util/DerInputBuffer;->getPos()I
+Lsun/security/util/DerInputBuffer;->getSlice(II)[B
+Lsun/security/util/DerInputBuffer;->getTime(IZ)Ljava/util/Date;
+Lsun/security/util/DerInputBuffer;->getUnalignedBitString()Lsun/security/util/BitArray;
+Lsun/security/util/DerInputBuffer;->getUTCTime(I)Ljava/util/Date;
+Lsun/security/util/DerInputBuffer;->peek()I
+Lsun/security/util/DerInputBuffer;->toByteArray()[B
+Lsun/security/util/DerInputBuffer;->truncate(I)V
+Lsun/security/util/DerInputStream;-><init>(Lsun/security/util/DerInputBuffer;)V
+Lsun/security/util/DerInputStream;->buffer:Lsun/security/util/DerInputBuffer;
+Lsun/security/util/DerInputStream;->getByte()I
+Lsun/security/util/DerInputStream;->getLength()I
+Lsun/security/util/DerInputStream;->getLength(ILjava/io/InputStream;)I
+Lsun/security/util/DerInputStream;->getLength(Ljava/io/InputStream;)I
+Lsun/security/util/DerInputStream;->init([BIIZ)V
+Lsun/security/util/DerInputStream;->readString(BLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+Lsun/security/util/DerOutputStream;->lexOrder:Lsun/security/util/ByteArrayLexOrder;
+Lsun/security/util/DerOutputStream;->putIntegerContents(I)V
+Lsun/security/util/DerOutputStream;->putOrderedSet(B[Lsun/security/util/DerEncoder;Ljava/util/Comparator;)V
+Lsun/security/util/DerOutputStream;->putTime(Ljava/util/Date;B)V
+Lsun/security/util/DerOutputStream;->tagOrder:Lsun/security/util/ByteArrayTagOrder;
+Lsun/security/util/DerOutputStream;->writeString(Ljava/lang/String;BLjava/lang/String;)V
+Lsun/security/util/DerValue;-><init>(Lsun/security/util/DerInputBuffer;Z)V
+Lsun/security/util/DerValue;->append([B[B)[B
+Lsun/security/util/DerValue;->doEquals(Lsun/security/util/DerValue;Lsun/security/util/DerValue;)Z
+Lsun/security/util/DerValue;->init(BLjava/lang/String;)Lsun/security/util/DerInputStream;
+Lsun/security/util/DerValue;->init(ZLjava/io/InputStream;)Lsun/security/util/DerInputStream;
+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;
+Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->LE:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
+Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->LT:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
+Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->NE:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
+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
+Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permits(Ljava/security/Key;)Z
+Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permits(Lsun/security/util/CertConstraintParameters;)V
+Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permitsImpl(Ljava/security/Key;)Z
+Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->prohibitedSize:I
+Lsun/security/util/DisabledAlgorithmConstraints;->algorithmConstraints:Lsun/security/util/DisabledAlgorithmConstraints$Constraints;
+Lsun/security/util/DisabledAlgorithmConstraints;->checkConstraints(Ljava/util/Set;Ljava/lang/String;Ljava/security/Key;Ljava/security/AlgorithmParameters;)Z
+Lsun/security/util/DisabledAlgorithmConstraints;->checkConstraints(Ljava/util/Set;Lsun/security/util/CertConstraintParameters;)V
+Lsun/security/util/DisabledAlgorithmConstraints;->debug:Lsun/security/util/Debug;
+Lsun/security/util/DisabledAlgorithmConstraints;->disabledAlgorithms:[Ljava/lang/String;
+Lsun/security/util/ManifestDigester$Entry;->doOldStyle(Ljava/security/MessageDigest;[BII)V
+Lsun/security/util/ManifestDigester$Entry;->length:I
+Lsun/security/util/ManifestDigester$Entry;->lengthWithBlankLine:I
+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
+Lsun/security/util/ManifestDigester$Position;->startOfNext:I
+Lsun/security/util/ManifestDigester;->entries:Ljava/util/HashMap;
+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;
+Lsun/security/util/ManifestEntryVerifier;->debug:Lsun/security/util/Debug;
+Lsun/security/util/ManifestEntryVerifier;->digests:Ljava/util/ArrayList;
+Lsun/security/util/ManifestEntryVerifier;->entry:Ljava/util/jar/JarEntry;
+Lsun/security/util/ManifestEntryVerifier;->hexc:[C
+Lsun/security/util/ManifestEntryVerifier;->man:Ljava/util/jar/Manifest;
+Lsun/security/util/ManifestEntryVerifier;->manifestHashes:Ljava/util/ArrayList;
+Lsun/security/util/ManifestEntryVerifier;->name:Ljava/lang/String;
+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
+Lsun/security/util/ObjectIdentifier;->check([B)V
+Lsun/security/util/ObjectIdentifier;->checkCount(I)V
+Lsun/security/util/ObjectIdentifier;->checkFirstComponent(I)V
+Lsun/security/util/ObjectIdentifier;->checkFirstComponent(Ljava/math/BigInteger;)V
+Lsun/security/util/ObjectIdentifier;->checkOtherComponent(II)V
+Lsun/security/util/ObjectIdentifier;->checkOtherComponent(ILjava/math/BigInteger;)V
+Lsun/security/util/ObjectIdentifier;->checkSecondComponent(II)V
+Lsun/security/util/ObjectIdentifier;->checkSecondComponent(ILjava/math/BigInteger;)V
+Lsun/security/util/ObjectIdentifier;->componentLen:I
+Lsun/security/util/ObjectIdentifier;->components:Ljava/lang/Object;
+Lsun/security/util/ObjectIdentifier;->componentsCalculated:Z
+Lsun/security/util/ObjectIdentifier;->encode(Lsun/security/util/DerOutputStream;)V
+Lsun/security/util/ObjectIdentifier;->encoding:[B
+Lsun/security/util/ObjectIdentifier;->init([II)V
+Lsun/security/util/ObjectIdentifier;->pack([BIIII)[B
+Lsun/security/util/ObjectIdentifier;->pack7Oid(I[BI)I
+Lsun/security/util/ObjectIdentifier;->pack7Oid(Ljava/math/BigInteger;[BI)I
+Lsun/security/util/ObjectIdentifier;->pack7Oid([BII[BI)I
+Lsun/security/util/ObjectIdentifier;->pack8([BII[BI)I
+Lsun/security/util/ObjectIdentifier;->stringForm:Ljava/lang/String;
+Lsun/security/util/SignatureFileVerifier;->ATTR_DIGEST:Ljava/lang/String;
+Lsun/security/util/SignatureFileVerifier;->block:Lsun/security/pkcs/PKCS7;
+Lsun/security/util/SignatureFileVerifier;->certificateFactory:Ljava/security/cert/CertificateFactory;
+Lsun/security/util/SignatureFileVerifier;->contains([Ljava/security/CodeSigner;Ljava/security/CodeSigner;)Z
+Lsun/security/util/SignatureFileVerifier;->createdDigests:Ljava/util/HashMap;
+Lsun/security/util/SignatureFileVerifier;->debug:Lsun/security/util/Debug;
+Lsun/security/util/SignatureFileVerifier;->DIGEST_PRIMITIVE_SET:Ljava/util/Set;
+Lsun/security/util/SignatureFileVerifier;->getDigest(Ljava/lang/String;)Ljava/security/MessageDigest;
+Lsun/security/util/SignatureFileVerifier;->getSigners([Lsun/security/pkcs/SignerInfo;Lsun/security/pkcs/PKCS7;)[Ljava/security/CodeSigner;
+Lsun/security/util/SignatureFileVerifier;->hexc:[C
+Lsun/security/util/SignatureFileVerifier;->isSubSet([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
+Lsun/security/util/SignatureFileVerifier;->JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
+Lsun/security/util/SignatureFileVerifier;->matches([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
+Lsun/security/util/SignatureFileVerifier;->md:Lsun/security/util/ManifestDigester;
+Lsun/security/util/SignatureFileVerifier;->name:Ljava/lang/String;
+Lsun/security/util/SignatureFileVerifier;->processImpl(Ljava/util/Hashtable;Ljava/util/List;)V
+Lsun/security/util/SignatureFileVerifier;->sfBytes:[B
+Lsun/security/util/SignatureFileVerifier;->signerCache:Ljava/util/ArrayList;
+Lsun/security/util/SignatureFileVerifier;->toHex([B)Ljava/lang/String;
+Lsun/security/util/SignatureFileVerifier;->updateSigners([Ljava/security/CodeSigner;Ljava/util/Hashtable;Ljava/lang/String;)V
+Lsun/security/util/SignatureFileVerifier;->verifyManifestHash(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Ljava/util/List;)Z
+Lsun/security/util/SignatureFileVerifier;->verifyManifestMainAttrs(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;)Z
+Lsun/security/util/SignatureFileVerifier;->verifySection(Ljava/util/jar/Attributes;Ljava/lang/String;Lsun/security/util/ManifestDigester;)Z
+Lsun/security/util/SignatureFileVerifier;->workaround:Z
+Lsun/security/x509/AlgorithmId;-><init>(Lsun/security/util/ObjectIdentifier;Lsun/security/util/DerValue;)V
+Lsun/security/x509/AlgorithmId;->algid:Lsun/security/util/ObjectIdentifier;
+Lsun/security/x509/AlgorithmId;->algOID(Ljava/lang/String;)Lsun/security/util/ObjectIdentifier;
+Lsun/security/x509/AlgorithmId;->algParams:Ljava/security/AlgorithmParameters;
+Lsun/security/x509/AlgorithmId;->constructedFromDer:Z
+Lsun/security/x509/AlgorithmId;->DH_data:[I
+Lsun/security/x509/AlgorithmId;->DH_PKIX_data:[I
+Lsun/security/x509/AlgorithmId;->dsaWithSHA1_PKIX_data:[I
+Lsun/security/x509/AlgorithmId;->DSA_OIW_data:[I
+Lsun/security/x509/AlgorithmId;->DSA_PKIX_data:[I
+Lsun/security/x509/AlgorithmId;->initOidTableVersion:I
+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
+Lsun/security/x509/AlgorithmId;->RSA_data:[I
+Lsun/security/x509/AlgorithmId;->sha1WithDSA_OIW_data:[I
+Lsun/security/x509/AlgorithmId;->sha1WithRSAEncryption_data:[I
+Lsun/security/x509/AlgorithmId;->sha1WithRSAEncryption_OIW_data:[I
+Lsun/security/x509/AlgorithmId;->sha224WithRSAEncryption_data:[I
+Lsun/security/x509/AlgorithmId;->sha256WithRSAEncryption_data:[I
+Lsun/security/x509/AlgorithmId;->sha384WithRSAEncryption_data:[I
+Lsun/security/x509/AlgorithmId;->sha512WithRSAEncryption_data:[I
+Lsun/security/x509/AlgorithmId;->shaWithDSA_OIW_data:[I
+Lsun/security/x509/AVA;-><init>(Ljava/io/Reader;)V
+Lsun/security/x509/AVA;-><init>(Ljava/io/Reader;I)V
+Lsun/security/x509/AVA;-><init>(Ljava/io/Reader;ILjava/util/Map;)V
+Lsun/security/x509/AVA;-><init>(Ljava/io/Reader;Ljava/util/Map;)V
+Lsun/security/x509/AVA;-><init>(Lsun/security/util/DerInputStream;)V
+Lsun/security/x509/AVA;-><init>(Lsun/security/util/DerValue;)V
+Lsun/security/x509/AVA;->debug:Lsun/security/util/Debug;
+Lsun/security/x509/AVA;->DEFAULT:I
+Lsun/security/x509/AVA;->escapedDefault:Ljava/lang/String;
+Lsun/security/x509/AVA;->getEmbeddedHexPair(ILjava/io/Reader;)Ljava/lang/Byte;
+Lsun/security/x509/AVA;->getEmbeddedHexString(Ljava/util/List;)Ljava/lang/String;
+Lsun/security/x509/AVA;->hexDigits:Ljava/lang/String;
+Lsun/security/x509/AVA;->isDerString(Lsun/security/util/DerValue;Z)Z
+Lsun/security/x509/AVA;->isTerminator(II)Z
+Lsun/security/x509/AVA;->oid:Lsun/security/util/ObjectIdentifier;
+Lsun/security/x509/AVA;->parseHexString(Ljava/io/Reader;I)Lsun/security/util/DerValue;
+Lsun/security/x509/AVA;->parseQuotedString(Ljava/io/Reader;Ljava/lang/StringBuilder;)Lsun/security/util/DerValue;
+Lsun/security/x509/AVA;->parseString(Ljava/io/Reader;IILjava/lang/StringBuilder;)Lsun/security/util/DerValue;
+Lsun/security/x509/AVA;->PRESERVE_OLD_DC_ENCODING:Z
+Lsun/security/x509/AVA;->readChar(Ljava/io/Reader;Ljava/lang/String;)I
+Lsun/security/x509/AVA;->RFC1779:I
+Lsun/security/x509/AVA;->RFC2253:I
+Lsun/security/x509/AVA;->specialChars1779:Ljava/lang/String;
+Lsun/security/x509/AVA;->specialChars2253:Ljava/lang/String;
+Lsun/security/x509/AVA;->specialCharsDefault:Ljava/lang/String;
+Lsun/security/x509/AVA;->toKeyword(ILjava/util/Map;)Ljava/lang/String;
+Lsun/security/x509/AVA;->toKeywordValueString(Ljava/lang/String;)Ljava/lang/String;
+Lsun/security/x509/AVA;->trailingSpace(Ljava/io/Reader;)Z
+Lsun/security/x509/AVA;->value:Lsun/security/util/DerValue;
+Lsun/security/x509/CertificatePolicyId;->id:Lsun/security/util/ObjectIdentifier;
+Lsun/security/x509/CertificatePolicySet;->ids:Ljava/util/Vector;
+Lsun/security/x509/Extension;->hashMagic:I
+Lsun/security/x509/GeneralName;->name:Lsun/security/x509/GeneralNameInterface;
+Lsun/security/x509/GeneralSubtree;->maximum:I
+Lsun/security/x509/GeneralSubtree;->minimum:I
+Lsun/security/x509/GeneralSubtree;->MIN_DEFAULT:I
+Lsun/security/x509/GeneralSubtree;->myhash:I
+Lsun/security/x509/GeneralSubtree;->name:Lsun/security/x509/GeneralName;
+Lsun/security/x509/GeneralSubtree;->TAG_MAX:B
+Lsun/security/x509/GeneralSubtree;->TAG_MIN:B
+Lsun/security/x509/GeneralSubtrees;-><init>(Lsun/security/x509/GeneralSubtrees;)V
+Lsun/security/x509/GeneralSubtrees;->createWidestSubtree(Lsun/security/x509/GeneralNameInterface;)Lsun/security/x509/GeneralSubtree;
+Lsun/security/x509/GeneralSubtrees;->getGeneralNameInterface(I)Lsun/security/x509/GeneralNameInterface;
+Lsun/security/x509/GeneralSubtrees;->getGeneralNameInterface(Lsun/security/x509/GeneralSubtree;)Lsun/security/x509/GeneralNameInterface;
+Lsun/security/x509/GeneralSubtrees;->minimize()V
+Lsun/security/x509/GeneralSubtrees;->NAME_DIFF_TYPE:I
+Lsun/security/x509/GeneralSubtrees;->NAME_MATCH:I
+Lsun/security/x509/GeneralSubtrees;->NAME_NARROWS:I
+Lsun/security/x509/GeneralSubtrees;->NAME_SAME_TYPE:I
+Lsun/security/x509/GeneralSubtrees;->NAME_WIDENS:I
+Lsun/security/x509/GeneralSubtrees;->trees:Ljava/util/List;
+Lsun/security/x509/NameConstraintsExtension;->calcMinMax()V
+Lsun/security/x509/NameConstraintsExtension;->encodeThis()V
+Lsun/security/x509/NameConstraintsExtension;->excluded:Lsun/security/x509/GeneralSubtrees;
+Lsun/security/x509/NameConstraintsExtension;->hasMax:Z
+Lsun/security/x509/NameConstraintsExtension;->hasMin:Z
+Lsun/security/x509/NameConstraintsExtension;->minMaxValid:Z
+Lsun/security/x509/NameConstraintsExtension;->permitted:Lsun/security/x509/GeneralSubtrees;
+Lsun/security/x509/NameConstraintsExtension;->TAG_EXCLUDED:B
+Lsun/security/x509/NameConstraintsExtension;->TAG_PERMITTED:B
+Lsun/security/x509/RDN;-><init>(I)V
+Lsun/security/x509/RDN;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+Lsun/security/x509/RDN;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
+Lsun/security/x509/RDN;-><init>(Lsun/security/util/DerValue;)V
+Lsun/security/x509/RDN;->assertion:[Lsun/security/x509/AVA;
+Lsun/security/x509/RDN;->avaList:Ljava/util/List;
+Lsun/security/x509/RDN;->canonicalString:Ljava/lang/String;
+Lsun/security/x509/RDN;->encode(Lsun/security/util/DerOutputStream;)V
+Lsun/security/x509/RDN;->findAttribute(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/DerValue;
+Lsun/security/x509/RDN;->toRFC2253StringInternal(ZLjava/util/Map;)Ljava/lang/String;
+Lsun/security/x509/X500Name;->allAvaList:Ljava/util/List;
+Lsun/security/x509/X500Name;->canonicalDn:Ljava/lang/String;
+Lsun/security/x509/X500Name;->checkNoNewLinesNorTabsAtBeginningOfDN(Ljava/lang/String;)V
+Lsun/security/x509/X500Name;->commonName_data:[I
+Lsun/security/x509/X500Name;->countQuotes(Ljava/lang/String;II)I
+Lsun/security/x509/X500Name;->countryName_data:[I
+Lsun/security/x509/X500Name;->dn:Ljava/lang/String;
+Lsun/security/x509/X500Name;->DNQUALIFIER_DATA:[I
+Lsun/security/x509/X500Name;->DOMAIN_COMPONENT_DATA:[I
+Lsun/security/x509/X500Name;->encoded:[B
+Lsun/security/x509/X500Name;->escaped(IILjava/lang/String;)Z
+Lsun/security/x509/X500Name;->findAttribute(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/DerValue;
+Lsun/security/x509/X500Name;->generateDN()V
+Lsun/security/x509/X500Name;->generateRFC1779DN(Ljava/util/Map;)Ljava/lang/String;
+Lsun/security/x509/X500Name;->generateRFC2253DN(Ljava/util/Map;)Ljava/lang/String;
+Lsun/security/x509/X500Name;->GENERATIONQUALIFIER_DATA:[I
+Lsun/security/x509/X500Name;->getString(Lsun/security/util/DerValue;)Ljava/lang/String;
+Lsun/security/x509/X500Name;->GIVENNAME_DATA:[I
+Lsun/security/x509/X500Name;->INITIALS_DATA:[I
+Lsun/security/x509/X500Name;->intern(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/ObjectIdentifier;
+Lsun/security/x509/X500Name;->internedOIDs:Ljava/util/Map;
+Lsun/security/x509/X500Name;->ipAddress_data:[I
+Lsun/security/x509/X500Name;->isWithinSubtree(Lsun/security/x509/X500Name;)Z
+Lsun/security/x509/X500Name;->localityName_data:[I
+Lsun/security/x509/X500Name;->names:[Lsun/security/x509/RDN;
+Lsun/security/x509/X500Name;->orgName_data:[I
+Lsun/security/x509/X500Name;->orgUnitName_data:[I
+Lsun/security/x509/X500Name;->parseDER(Lsun/security/util/DerInputStream;)V
+Lsun/security/x509/X500Name;->parseDN(Ljava/lang/String;Ljava/util/Map;)V
+Lsun/security/x509/X500Name;->parseRFC2253DN(Ljava/lang/String;)V
+Lsun/security/x509/X500Name;->principalConstructor:Ljava/lang/reflect/Constructor;
+Lsun/security/x509/X500Name;->principalField:Ljava/lang/reflect/Field;
+Lsun/security/x509/X500Name;->rdnList:Ljava/util/List;
+Lsun/security/x509/X500Name;->rfc1779Dn:Ljava/lang/String;
+Lsun/security/x509/X500Name;->rfc2253Dn:Ljava/lang/String;
+Lsun/security/x509/X500Name;->SERIALNUMBER_DATA:[I
+Lsun/security/x509/X500Name;->stateName_data:[I
+Lsun/security/x509/X500Name;->streetAddress_data:[I
+Lsun/security/x509/X500Name;->SURNAME_DATA:[I
+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
+Lsun/util/locale/BaseLocale$Key;->hash:I
+Lsun/util/locale/BaseLocale$Key;->lang:Ljava/lang/ref/SoftReference;
+Lsun/util/locale/BaseLocale$Key;->normalize(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;
+Lsun/util/locale/BaseLocale$Key;->normalized:Z
+Lsun/util/locale/BaseLocale$Key;->regn:Ljava/lang/ref/SoftReference;
+Lsun/util/locale/BaseLocale$Key;->scrt:Ljava/lang/ref/SoftReference;
+Lsun/util/locale/BaseLocale$Key;->vart:Ljava/lang/ref/SoftReference;
+Lsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+Lsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+Lsun/util/locale/BaseLocale;->CACHE:Lsun/util/locale/BaseLocale$Cache;
+Lsun/util/locale/BaseLocale;->hash:I
+Lsun/util/locale/BaseLocale;->language:Ljava/lang/String;
+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;
+Lsun/util/locale/Extension;->getKey()C
+Lsun/util/locale/Extension;->getValue()Ljava/lang/String;
+Lsun/util/locale/Extension;->id:Ljava/lang/String;
+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;
+Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;->value()Ljava/lang/String;
+Lsun/util/locale/InternalLocaleBuilder;->checkVariants(Ljava/lang/String;Ljava/lang/String;)I
+Lsun/util/locale/InternalLocaleBuilder;->extensions:Ljava/util/Map;
+Lsun/util/locale/InternalLocaleBuilder;->language:Ljava/lang/String;
+Lsun/util/locale/InternalLocaleBuilder;->PRIVATEUSE_KEY:Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;
+Lsun/util/locale/InternalLocaleBuilder;->region:Ljava/lang/String;
+Lsun/util/locale/InternalLocaleBuilder;->removePrivateuseVariant(Ljava/lang/String;)Ljava/lang/String;
+Lsun/util/locale/InternalLocaleBuilder;->script:Ljava/lang/String;
+Lsun/util/locale/InternalLocaleBuilder;->setExtensions(Ljava/util/List;Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
+Lsun/util/locale/InternalLocaleBuilder;->setUnicodeLocaleExtension(Ljava/lang/String;)V
+Lsun/util/locale/InternalLocaleBuilder;->uattributes:Ljava/util/Set;
+Lsun/util/locale/InternalLocaleBuilder;->ukeywords:Ljava/util/Map;
+Lsun/util/locale/InternalLocaleBuilder;->variant:Ljava/lang/String;
+Lsun/util/locale/LanguageTag;-><init>()V
+Lsun/util/locale/LanguageTag;->extensions:Ljava/util/List;
+Lsun/util/locale/LanguageTag;->extlangs:Ljava/util/List;
+Lsun/util/locale/LanguageTag;->GRANDFATHERED:Ljava/util/Map;
+Lsun/util/locale/LanguageTag;->language:Ljava/lang/String;
+Lsun/util/locale/LanguageTag;->parseExtensions(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+Lsun/util/locale/LanguageTag;->parseExtlangs(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+Lsun/util/locale/LanguageTag;->parseLanguage(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+Lsun/util/locale/LanguageTag;->parsePrivateuse(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+Lsun/util/locale/LanguageTag;->parseRegion(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+Lsun/util/locale/LanguageTag;->parseScript(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+Lsun/util/locale/LanguageTag;->parseVariants(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+Lsun/util/locale/LanguageTag;->privateuse:Ljava/lang/String;
+Lsun/util/locale/LanguageTag;->region:Ljava/lang/String;
+Lsun/util/locale/LanguageTag;->script:Ljava/lang/String;
+Lsun/util/locale/LanguageTag;->variants:Ljava/util/List;
+Lsun/util/locale/LocaleExtensions;-><init>(Ljava/lang/String;Ljava/lang/Character;Lsun/util/locale/Extension;)V
+Lsun/util/locale/LocaleExtensions;-><init>(Ljava/util/Map;Ljava/util/Set;Ljava/util/Map;)V
+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;
+Lsun/util/locale/LocaleObjectCache;->cleanStaleEntries()V
+Lsun/util/locale/LocaleObjectCache;->map:Ljava/util/concurrent/ConcurrentMap;
+Lsun/util/locale/LocaleObjectCache;->queue:Ljava/lang/ref/ReferenceQueue;
+Lsun/util/locale/LocaleSyntaxException;->index:I
+Lsun/util/locale/ParseStatus;->errorIndex:I
+Lsun/util/locale/ParseStatus;->errorMsg:Ljava/lang/String;
+Lsun/util/locale/ParseStatus;->parseLength:I
+Lsun/util/locale/StringTokenIterator;->delimiterChar:C
+Lsun/util/locale/StringTokenIterator;->dlms:Ljava/lang/String;
+Lsun/util/locale/StringTokenIterator;->done:Z
+Lsun/util/locale/StringTokenIterator;->end:I
+Lsun/util/locale/StringTokenIterator;->nextDelimiter(I)I
+Lsun/util/locale/StringTokenIterator;->start:I
+Lsun/util/locale/StringTokenIterator;->text:Ljava/lang/String;
+Lsun/util/locale/StringTokenIterator;->token:Ljava/lang/String;
diff --git a/config/hiddenapi-light-greylist.txt b/config/hiddenapi-light-greylist.txt
index 8a770b9..e10f729 100644
--- a/config/hiddenapi-light-greylist.txt
+++ b/config/hiddenapi-light-greylist.txt
@@ -189,10 +189,10 @@
 Landroid/app/IUiModeManager;->disableCarMode(I)V
 Landroid/app/IUserSwitchObserver$Stub;-><init>()V
 Landroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager;
-Landroid/app/IWallpaperManager;->getHeightHint()I
+Landroid/app/IWallpaperManager;->getHeightHint(I)I
 Landroid/app/IWallpaperManager;->getWallpaper(Ljava/lang/String;Landroid/app/IWallpaperManagerCallback;ILandroid/os/Bundle;I)Landroid/os/ParcelFileDescriptor;
 Landroid/app/IWallpaperManager;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
-Landroid/app/IWallpaperManager;->getWidthHint()I
+Landroid/app/IWallpaperManager;->getWidthHint(I)I
 Landroid/app/IWallpaperManager;->hasNamedWallpaper(Ljava/lang/String;)Z
 Landroid/app/IWallpaperManager;->setWallpaperComponent(Landroid/content/ComponentName;)V
 Landroid/app/IWallpaperManagerCallback$Stub;-><init>()V
@@ -1435,7 +1435,7 @@
 Landroid/view/IWindowManager$Stub$Proxy;->getBaseDisplayDensity(I)I
 Landroid/view/IWindowManager$Stub$Proxy;->getDockedStackSide()I
 Landroid/view/IWindowManager$Stub$Proxy;->getInitialDisplayDensity(I)I
-Landroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar()Z
+Landroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar(I)Z
 Landroid/view/IWindowManager$Stub$Proxy;->watchRotation(Landroid/view/IRotationWatcher;I)I
 Landroid/view/IWindowManager$Stub;-><init>()V
 Landroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager;
@@ -1447,7 +1447,7 @@
 Landroid/view/IWindowManager;->getDockedStackSide()I
 Landroid/view/IWindowManager;->getInitialDisplayDensity(I)I
 Landroid/view/IWindowManager;->getInitialDisplaySize(ILandroid/graphics/Point;)V
-Landroid/view/IWindowManager;->hasNavigationBar()Z
+Landroid/view/IWindowManager;->hasNavigationBar(I)Z
 Landroid/view/IWindowManager;->isKeyguardLocked()Z
 Landroid/view/IWindowManager;->isKeyguardSecure()Z
 Landroid/view/IWindowManager;->isSafeModeEnabled()Z
@@ -1461,7 +1461,6 @@
 Landroid/view/IWindowManager;->setStrictModeVisualIndicatorPreference(Ljava/lang/String;)V
 Landroid/view/IWindowManager;->showStrictModeViolation(Z)V
 Landroid/view/IWindowManager;->thawRotation()V
-Landroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/Surface;)I
 Landroid/view/IWindowSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSession;
 Landroid/view/IWindowSession;->finishDrawing(Landroid/view/IWindow;)V
 Landroid/view/IWindowSession;->getInTouchMode()Z
@@ -1488,86 +1487,10 @@
 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/i18n/phonenumbers/AsYouTypeFormatter;->clear()V
-Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->getRememberedPosition()I
-Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->inputDigit(C)Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->inputDigitAndRememberPosition(C)Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder;->getDescriptionForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/util/Locale;)Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder;->getInstance()Lcom/android/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder;
-Lcom/android/i18n/phonenumbers/NumberParseException;->getErrorType()Lcom/android/i18n/phonenumbers/NumberParseException$ErrorType;
-Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getDomesticCarrierCodeFormattingRule()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getFormat()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getLeadingDigitsPattern(I)Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getNationalPrefixFormattingRule()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getPattern()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->leadingDigitsPatternSize()I
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getCountryCode()I
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getGeneralDesc()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixForParsing()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixTransformRule()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPreferredExtnPrefix()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasNationalPrefix()Z
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasPreferredExtnPrefix()Z
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->intlNumberFormats()Ljava/util/List;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->numberFormats()Ljava/util/List;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;-><init>()V
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->getMetadataList()Ljava/util/List;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getNationalNumberPattern()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;->FROM_DEFAULT_COUNTRY:Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;->FROM_NUMBER_WITHOUT_PLUS_SIGN:Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;->FROM_NUMBER_WITH_IDD:Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;->FROM_NUMBER_WITH_PLUS_SIGN:Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
 Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;->values()[Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->clearCountryCode()Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getCountryCode()I
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getCountryCodeSource()Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getExtension()Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getNationalNumber()J
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasCountryCode()Z
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasExtension()Z
-Lcom/android/i18n/phonenumbers/PhoneNumberMatch;->end()I
-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;->POSSIBLE:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;->EXACT_MATCH:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;->NOT_A_NUMBER:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;->NO_MATCH:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;->NSN_MATCH:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;->SHORT_NSN_MATCH:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;->values()[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;->E164:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;->INTERNATIONAL:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;->NATIONAL:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;->RFC3966:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;->values()[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->FIXED_LINE:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->FIXED_LINE_OR_MOBILE:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->MOBILE:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->PAGER:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->PERSONAL_NUMBER:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->PREMIUM_RATE:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->SHARED_COST:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->TOLL_FREE:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->UAN:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->values()[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->VOICEMAIL:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;->VOIP:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;->IS_POSSIBLE:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;->TOO_LONG:Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->findNumbers(Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;J)Ljava/lang/Iterable;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->format(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatInOriginalFormat(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getAsYouTypeFormatter(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getCountryCodeForRegion(Ljava/lang/String;)I
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getInstance()Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNationalSignificantNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberType(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->isNumberMatch(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->isPossibleNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->isPossibleNumberWithReason(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
 Lcom/android/ims/ImsCall;->deflect(Ljava/lang/String;)V
 Lcom/android/ims/ImsCall;->isMultiparty()Z
 Lcom/android/ims/ImsCall;->reject(I)V
@@ -2691,7 +2614,6 @@
 Lcom/android/internal/telephony/dataconnection/DataConnection;->log(Ljava/lang/String;)V
 Lcom/android/internal/telephony/dataconnection/DataConnection;->mActivatingState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcActivatingState;
 Lcom/android/internal/telephony/dataconnection/DataConnection;->mActiveState:Lcom/android/internal/telephony/dataconnection/DataConnection$DcActiveState;
-Lcom/android/internal/telephony/dataconnection/DataConnection;->mApnContexts:Ljava/util/HashMap;
 Lcom/android/internal/telephony/dataconnection/DataConnection;->mConnectionParams:Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
 Lcom/android/internal/telephony/dataconnection/DataConnection;->mDataRegState:I
 Lcom/android/internal/telephony/dataconnection/DataConnection;->mDcFailCause:Lcom/android/internal/telephony/dataconnection/DcFailCause;
@@ -2773,7 +2695,6 @@
 Lcom/android/internal/telephony/dataconnection/DcTracker;->onSetUserDataEnabled(Z)V
 Lcom/android/internal/telephony/dataconnection/DcTracker;->onTrySetupData(Lcom/android/internal/telephony/dataconnection/ApnContext;)Z
 Lcom/android/internal/telephony/dataconnection/DcTracker;->onTrySetupData(Ljava/lang/String;)Z
-Lcom/android/internal/telephony/dataconnection/DcTracker;->registerForAllDataDisconnected(Landroid/os/Handler;ILjava/lang/Object;)V
 Lcom/android/internal/telephony/dataconnection/DcTracker;->registerSettingsObserver()V
 Lcom/android/internal/telephony/dataconnection/DcTracker;->resetPollStats()V
 Lcom/android/internal/telephony/dataconnection/DcTracker;->restartDataStallAlarm()V
@@ -2787,7 +2708,6 @@
 Lcom/android/internal/telephony/dataconnection/DcTracker;->stopDataStallAlarm()V
 Lcom/android/internal/telephony/dataconnection/DcTracker;->stopNetStatPoll()V
 Lcom/android/internal/telephony/dataconnection/DcTracker;->unregisterForAllDataDisconnected(Landroid/os/Handler;)V
-Lcom/android/internal/telephony/dataconnection/DcTracker;->updateRecords()V
 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;
@@ -3208,7 +3128,6 @@
 Lcom/android/internal/telephony/ITelephony;->getDataActivity()I
 Lcom/android/internal/telephony/ITelephony;->getDataState()I
 Lcom/android/internal/telephony/ITelephony;->getNetworkType()I
-Lcom/android/internal/telephony/ITelephony;->getVoiceMessageCount()I
 Lcom/android/internal/telephony/ITelephony;->handlePinMmi(Ljava/lang/String;)Z
 Lcom/android/internal/telephony/ITelephony;->handlePinMmiForSubscriber(ILjava/lang/String;)Z
 Lcom/android/internal/telephony/ITelephony;->hasIccCard()Z
@@ -3279,7 +3198,6 @@
 Lcom/android/internal/telephony/Phone;->isWifiCallingEnabled()Z
 Lcom/android/internal/telephony/Phone;->mCi:Lcom/android/internal/telephony/CommandsInterface;
 Lcom/android/internal/telephony/Phone;->mContext:Landroid/content/Context;
-Lcom/android/internal/telephony/Phone;->mDcTracker:Lcom/android/internal/telephony/dataconnection/DcTracker;
 Lcom/android/internal/telephony/Phone;->mIccRecords:Ljava/util/concurrent/atomic/AtomicReference;
 Lcom/android/internal/telephony/Phone;->mImsPhone:Lcom/android/internal/telephony/Phone;
 Lcom/android/internal/telephony/Phone;->mMmiRegistrants:Landroid/os/RegistrantList;
@@ -3372,7 +3290,6 @@
 Lcom/android/internal/telephony/ProxyController;->mRadioCapabilitySessionId:I
 Lcom/android/internal/telephony/ProxyController;->mSetRadioAccessFamilyStatus:[I
 Lcom/android/internal/telephony/ProxyController;->mUniqueIdGenerator:Ljava/util/concurrent/atomic/AtomicInteger;
-Lcom/android/internal/telephony/ProxyController;->registerForAllDataDisconnected(ILandroid/os/Handler;ILjava/lang/Object;)V
 Lcom/android/internal/telephony/ProxyController;->sendRadioCapabilityRequest(IIIILjava/lang/String;II)V
 Lcom/android/internal/telephony/ProxyController;->sProxyController:Lcom/android/internal/telephony/ProxyController;
 Lcom/android/internal/telephony/RadioCapability;->getRadioAccessFamily()I
@@ -3472,7 +3389,6 @@
 Lcom/android/internal/telephony/ServiceStateTracker;->notifyDataRegStateRilRadioTechnologyChanged()V
 Lcom/android/internal/telephony/ServiceStateTracker;->notifySignalStrength()Z
 Lcom/android/internal/telephony/ServiceStateTracker;->pollState()V
-Lcom/android/internal/telephony/ServiceStateTracker;->powerOffRadioSafely(Lcom/android/internal/telephony/dataconnection/DcTracker;)V
 Lcom/android/internal/telephony/ServiceStateTracker;->reRegisterNetwork(Landroid/os/Message;)V
 Lcom/android/internal/telephony/ServiceStateTracker;->resetServiceStateInIwlanMode()V
 Lcom/android/internal/telephony/ServiceStateTracker;->setOperatorIdd(Ljava/lang/String;)V
@@ -4139,77 +4055,6 @@
 Lcom/android/internal/widget/ViewPager$OnPageChangeListener;->onPageScrollStateChanged(I)V
 Lcom/android/internal/widget/ViewPager$OnPageChangeListener;->onPageSelected(I)V
 Lcom/android/internal/widget/ViewPager;->getCurrentItem()I
-Lcom/android/okhttp/Connection;->getSocket()Ljava/net/Socket;
-Lcom/android/okhttp/ConnectionPool;->connections:Ljava/util/Deque;
-Lcom/android/okhttp/ConnectionPool;->keepAliveDurationNs:J
-Lcom/android/okhttp/ConnectionPool;->maxIdleConnections:I
-Lcom/android/okhttp/ConnectionPool;->systemDefault:Lcom/android/okhttp/ConnectionPool;
-Lcom/android/okhttp/HttpHandler;-><init>()V
-Lcom/android/okhttp/HttpsHandler;-><init>()V
-Lcom/android/okhttp/HttpUrl$Builder;->build()Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/HttpUrl;->encodedPath()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->newBuilder()Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl;->parse(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/HttpUrl;->query()Ljava/lang/String;
-Lcom/android/okhttp/internal/http/HeaderParser;->skipUntil(Ljava/lang/String;ILjava/lang/String;)I
-Lcom/android/okhttp/internal/http/HeaderParser;->skipWhitespace(Ljava/lang/String;I)I
-Lcom/android/okhttp/internal/http/HttpDate;->format(Ljava/util/Date;)Ljava/lang/String;
-Lcom/android/okhttp/internal/http/HttpDate;->parse(Ljava/lang/String;)Ljava/util/Date;
-Lcom/android/okhttp/internal/http/HttpEngine;->getConnection()Lcom/android/okhttp/Connection;
-Lcom/android/okhttp/internal/http/HttpEngine;->hasResponse()Z
-Lcom/android/okhttp/internal/http/HttpEngine;->httpStream:Lcom/android/okhttp/internal/http/HttpStream;
-Lcom/android/okhttp/internal/http/HttpEngine;->networkRequest(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;->networkRequest:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;->priorResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->readResponse()V
-Lcom/android/okhttp/internal/http/HttpEngine;->sendRequest()V
-Lcom/android/okhttp/internal/http/HttpEngine;->sentRequestMillis:J
-Lcom/android/okhttp/internal/http/HttpEngine;->userResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->writingRequestHeaders()V
-Lcom/android/okhttp/internal/http/RouteSelector;->hasNext()Z
-Lcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->delegate:Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl;
-Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->client:Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->httpEngine:Lcom/android/okhttp/internal/http/HttpEngine;
-Lcom/android/okhttp/internal/Internal;-><init>()V
-Lcom/android/okhttp/internal/Internal;->addLenient(Lcom/android/okhttp/Headers$Builder;Ljava/lang/String;)V
-Lcom/android/okhttp/internal/Internal;->addLenient(Lcom/android/okhttp/Headers$Builder;Ljava/lang/String;Ljava/lang/String;)V
-Lcom/android/okhttp/internal/Internal;->apply(Lcom/android/okhttp/ConnectionSpec;Ljavax/net/ssl/SSLSocket;Z)V
-Lcom/android/okhttp/internal/Internal;->callEngineGetStreamAllocation(Lcom/android/okhttp/Call;)Lcom/android/okhttp/internal/http/StreamAllocation;
-Lcom/android/okhttp/internal/Internal;->callEnqueue(Lcom/android/okhttp/Call;Lcom/android/okhttp/Callback;Z)V
-Lcom/android/okhttp/internal/Internal;->connectionBecameIdle(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/internal/io/RealConnection;)Z
-Lcom/android/okhttp/internal/Internal;->get(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/http/StreamAllocation;)Lcom/android/okhttp/internal/io/RealConnection;
-Lcom/android/okhttp/internal/Internal;->getHttpUrlChecked(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/internal/Internal;->instance:Lcom/android/okhttp/internal/Internal;
-Lcom/android/okhttp/internal/Internal;->internalCache(Lcom/android/okhttp/OkHttpClient;)Lcom/android/okhttp/internal/InternalCache;
-Lcom/android/okhttp/internal/Internal;->put(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/internal/io/RealConnection;)V
-Lcom/android/okhttp/internal/Internal;->routeDatabase(Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/internal/RouteDatabase;
-Lcom/android/okhttp/internal/Internal;->setCache(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/internal/InternalCache;)V
-Lcom/android/okhttp/internal/Platform;->get()Lcom/android/okhttp/internal/Platform;
-Lcom/android/okhttp/internal/Platform;->logW(Ljava/lang/String;)V
-Lcom/android/okhttp/internal/Util;->closeAll(Ljava/io/Closeable;Ljava/io/Closeable;)V
-Lcom/android/okhttp/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
-Lcom/android/okhttp/internal/Util;->EMPTY_BYTE_ARRAY:[B
-Lcom/android/okhttp/internal/Util;->UTF_8:Ljava/nio/charset/Charset;
-Lcom/android/okhttp/OkHttpClient;-><init>()V
-Lcom/android/okhttp/OkHttpClient;->connectionPool:Lcom/android/okhttp/ConnectionPool;
-Lcom/android/okhttp/OkHttpClient;->DEFAULT_PROTOCOLS:Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->dns:Lcom/android/okhttp/Dns;
-Lcom/android/okhttp/OkHttpClient;->getConnectionPool()Lcom/android/okhttp/ConnectionPool;
-Lcom/android/okhttp/OkHttpClient;->getCookieHandler()Ljava/net/CookieHandler;
-Lcom/android/okhttp/OkHttpClient;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;
-Lcom/android/okhttp/OkHttpClient;->getProxy()Ljava/net/Proxy;
-Lcom/android/okhttp/OkHttpClient;->getProxySelector()Ljava/net/ProxySelector;
-Lcom/android/okhttp/OkHttpClient;->getSslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
-Lcom/android/okhttp/OkHttpClient;->setProtocols(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setRetryOnConnectionFailure(Z)V
-Lcom/android/okhttp/Request;->headers:Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Request;->method:Ljava/lang/String;
-Lcom/android/okhttp/Request;->url:Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/Response;->code:I
-Lcom/android/okhttp/Response;->headers:Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Response;->message:Ljava/lang/String;
-Lcom/android/okhttp/Response;->networkResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response;->protocol:Lcom/android/okhttp/Protocol;
 Lcom/android/server/net/BaseNetworkObserver;-><init>()V
 Lcom/android/server/net/NetlinkTracker;-><init>(Ljava/lang/String;Lcom/android/server/net/NetlinkTracker$Callback;)V
 Lcom/android/server/net/NetlinkTracker;->clearLinkProperties()V
@@ -4515,7 +4360,6 @@
 Lcom/google/android/util/AbstractMessageParser$Token$Type;->SMILEY:Lcom/google/android/util/AbstractMessageParser$Token$Type;
 Lcom/google/android/util/AbstractMessageParser$Token$Type;->values()[Lcom/google/android/util/AbstractMessageParser$Token$Type;
 Lcom/google/android/util/AbstractMessageParser$Token$Type;->YOUTUBE_VIDEO:Lcom/google/android/util/AbstractMessageParser$Token$Type;
-Lcom/sun/nio/file/ExtendedWatchEventModifier;->FILE_TREE:Lcom/sun/nio/file/ExtendedWatchEventModifier;
 Lgov/nist/core/Debug;->printStackTrace(Ljava/lang/Exception;)V
 Lgov/nist/core/GenericObject;-><init>()V
 Lgov/nist/core/GenericObject;->dbgPrint()V
@@ -4655,178 +4499,9 @@
 Lgov/nist/javax/sip/address/SipUri;->setUserParam(Ljava/lang/String;)V
 Lgov/nist/javax/sip/parser/URLParser;-><init>(Ljava/lang/String;)V
 Lgov/nist/javax/sip/parser/URLParser;->sipURL(Z)Lgov/nist/javax/sip/address/SipUri;
-Ljava/lang/DexCache;->dexFile:J
-Ljava/lang/invoke/SerializedLambda;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
-Ljava/lang/invoke/SerializedLambda;->getCapturedArg(I)Ljava/lang/Object;
-Ljava/lang/invoke/SerializedLambda;->getCapturedArgCount()I
-Ljava/lang/invoke/SerializedLambda;->getCapturingClass()Ljava/lang/String;
-Ljava/lang/invoke/SerializedLambda;->getFunctionalInterfaceClass()Ljava/lang/String;
-Ljava/lang/invoke/SerializedLambda;->getFunctionalInterfaceMethodName()Ljava/lang/String;
-Ljava/lang/invoke/SerializedLambda;->getFunctionalInterfaceMethodSignature()Ljava/lang/String;
-Ljava/lang/invoke/SerializedLambda;->getImplClass()Ljava/lang/String;
-Ljava/lang/invoke/SerializedLambda;->getImplMethodKind()I
-Ljava/lang/invoke/SerializedLambda;->getImplMethodName()Ljava/lang/String;
-Ljava/lang/invoke/SerializedLambda;->getImplMethodSignature()Ljava/lang/String;
-Ljava/lang/invoke/SerializedLambda;->getInstantiatedMethodType()Ljava/lang/String;
-Ljava/lang/UNIXProcess;->pid:I
-Ljava/net/AddressCache$AddressCacheEntry;-><init>(Ljava/lang/Object;)V
-Ljava/net/AddressCache$AddressCacheEntry;->expiryNanos:J
-Ljava/net/AddressCache$AddressCacheEntry;->value:Ljava/lang/Object;
-Ljava/net/AddressCache$AddressCacheKey;->mHostname:Ljava/lang/String;
-Ljava/net/AddressCache;->cache:Llibcore/util/BasicLruCache;
-Ljava/net/Inet6AddressImpl;->addressCache:Ljava/net/AddressCache;
-Ljava/net/PlainSocketImpl;-><init>()V
-Ljava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;
-Ljava/nio/file/FileTreeWalker;->followLinks:Z
-Ljava/nio/file/FileTreeWalker;->linkOptions:[Ljava/nio/file/LinkOption;
-Ljava/nio/file/FileTreeWalker;->maxDepth:I
-Ljava/util/zip/ZipFile$ZipEntryIterator;->nextElement()Ljava/util/zip/ZipEntry;
 Ljunit/framework/TestCase;->fName:Ljava/lang/String;
 Ljunit/framework/TestSuite;->isPublicTestMethod(Ljava/lang/reflect/Method;)Z
 Ljunit/framework/TestSuite;->isTestMethod(Ljava/lang/reflect/Method;)Z
-Llibcore/icu/DateIntervalFormat;->formatDateRange(JJILjava/lang/String;)Ljava/lang/String;
-Llibcore/icu/ICU;->CACHED_PATTERNS:Llibcore/util/BasicLruCache;
-Llibcore/icu/ICU;->getBestDateTimePattern(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-Llibcore/icu/ICU;->getBestDateTimePatternNative(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Llibcore/icu/ICU;->getDateFormatOrder(Ljava/lang/String;)[C
-Llibcore/icu/LocaleData;->firstDayOfWeek:Ljava/lang/Integer;
-Llibcore/icu/LocaleData;->get(Ljava/util/Locale;)Llibcore/icu/LocaleData;
-Llibcore/icu/LocaleData;->longStandAloneWeekdayNames:[Ljava/lang/String;
-Llibcore/icu/LocaleData;->mapInvalidAndNullLocales(Ljava/util/Locale;)Ljava/util/Locale;
-Llibcore/icu/LocaleData;->minimalDaysInFirstWeek:Ljava/lang/Integer;
-Llibcore/icu/LocaleData;->shortMonthNames:[Ljava/lang/String;
-Llibcore/icu/LocaleData;->shortStandAloneMonthNames:[Ljava/lang/String;
-Llibcore/icu/LocaleData;->shortStandAloneWeekdayNames:[Ljava/lang/String;
-Llibcore/icu/LocaleData;->timeFormat_Hm:Ljava/lang/String;
-Llibcore/icu/LocaleData;->timeFormat_hm:Ljava/lang/String;
-Llibcore/icu/LocaleData;->today:Ljava/lang/String;
-Llibcore/icu/LocaleData;->tomorrow:Ljava/lang/String;
-Llibcore/icu/LocaleData;->zeroDigit:C
-Llibcore/icu/TimeZoneNames;->forLocale(Ljava/util/Locale;)[Ljava/lang/String;
-Llibcore/io/AsynchronousCloseMonitor;->signalBlockedThreads(Ljava/io/FileDescriptor;)V
-Llibcore/io/BlockGuardOs;-><init>(Llibcore/io/Os;)V
-Llibcore/io/BlockGuardOs;->chmod(Ljava/lang/String;I)V
-Llibcore/io/BlockGuardOs;->chown(Ljava/lang/String;II)V
-Llibcore/io/BlockGuardOs;->close(Ljava/io/FileDescriptor;)V
-Llibcore/io/BlockGuardOs;->fchmod(Ljava/io/FileDescriptor;I)V
-Llibcore/io/BlockGuardOs;->fchown(Ljava/io/FileDescriptor;II)V
-Llibcore/io/BlockGuardOs;->fdatasync(Ljava/io/FileDescriptor;)V
-Llibcore/io/BlockGuardOs;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;
-Llibcore/io/BlockGuardOs;->fstatvfs(Ljava/io/FileDescriptor;)Landroid/system/StructStatVfs;
-Llibcore/io/BlockGuardOs;->lchown(Ljava/lang/String;II)V
-Llibcore/io/BlockGuardOs;->link(Ljava/lang/String;Ljava/lang/String;)V
-Llibcore/io/BlockGuardOs;->lseek(Ljava/io/FileDescriptor;JI)J
-Llibcore/io/BlockGuardOs;->lstat(Ljava/lang/String;)Landroid/system/StructStat;
-Llibcore/io/BlockGuardOs;->mkdir(Ljava/lang/String;I)V
-Llibcore/io/BlockGuardOs;->mkfifo(Ljava/lang/String;I)V
-Llibcore/io/BlockGuardOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
-Llibcore/io/BlockGuardOs;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V
-Llibcore/io/BlockGuardOs;->pread(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;J)I
-Llibcore/io/BlockGuardOs;->pread(Ljava/io/FileDescriptor;[BIIJ)I
-Llibcore/io/BlockGuardOs;->pwrite(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;J)I
-Llibcore/io/BlockGuardOs;->pwrite(Ljava/io/FileDescriptor;[BIIJ)I
-Llibcore/io/BlockGuardOs;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
-Llibcore/io/BlockGuardOs;->read(Ljava/io/FileDescriptor;[BII)I
-Llibcore/io/BlockGuardOs;->readlink(Ljava/lang/String;)Ljava/lang/String;
-Llibcore/io/BlockGuardOs;->readv(Ljava/io/FileDescriptor;[Ljava/lang/Object;[I[I)I
-Llibcore/io/BlockGuardOs;->realpath(Ljava/lang/String;)Ljava/lang/String;
-Llibcore/io/BlockGuardOs;->remove(Ljava/lang/String;)V
-Llibcore/io/BlockGuardOs;->rename(Ljava/lang/String;Ljava/lang/String;)V
-Llibcore/io/BlockGuardOs;->stat(Ljava/lang/String;)Landroid/system/StructStat;
-Llibcore/io/BlockGuardOs;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
-Llibcore/io/BlockGuardOs;->symlink(Ljava/lang/String;Ljava/lang/String;)V
-Llibcore/io/BlockGuardOs;->write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
-Llibcore/io/BlockGuardOs;->write(Ljava/io/FileDescriptor;[BII)I
-Llibcore/io/BlockGuardOs;->writev(Ljava/io/FileDescriptor;[Ljava/lang/Object;[I[I)I
-Llibcore/io/BufferIterator;->readByte()B
-Llibcore/io/BufferIterator;->readByteArray([BII)V
-Llibcore/io/BufferIterator;->readInt()I
-Llibcore/io/BufferIterator;->readIntArray([III)V
-Llibcore/io/BufferIterator;->seek(I)V
-Llibcore/io/BufferIterator;->skip(I)V
-Llibcore/io/DropBox;->addText(Ljava/lang/String;Ljava/lang/String;)V
-Llibcore/io/ForwardingOs;-><init>(Llibcore/io/Os;)V
-Llibcore/io/ForwardingOs;->access(Ljava/lang/String;I)Z
-Llibcore/io/ForwardingOs;->chmod(Ljava/lang/String;I)V
-Llibcore/io/ForwardingOs;->chown(Ljava/lang/String;II)V
-Llibcore/io/ForwardingOs;->getenv(Ljava/lang/String;)Ljava/lang/String;
-Llibcore/io/ForwardingOs;->lchown(Ljava/lang/String;II)V
-Llibcore/io/ForwardingOs;->link(Ljava/lang/String;Ljava/lang/String;)V
-Llibcore/io/ForwardingOs;->lstat(Ljava/lang/String;)Landroid/system/StructStat;
-Llibcore/io/ForwardingOs;->mkdir(Ljava/lang/String;I)V
-Llibcore/io/ForwardingOs;->mkfifo(Ljava/lang/String;I)V
-Llibcore/io/ForwardingOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
-Llibcore/io/ForwardingOs;->os:Llibcore/io/Os;
-Llibcore/io/ForwardingOs;->readlink(Ljava/lang/String;)Ljava/lang/String;
-Llibcore/io/ForwardingOs;->remove(Ljava/lang/String;)V
-Llibcore/io/ForwardingOs;->removexattr(Ljava/lang/String;Ljava/lang/String;)V
-Llibcore/io/ForwardingOs;->rename(Ljava/lang/String;Ljava/lang/String;)V
-Llibcore/io/ForwardingOs;->setenv(Ljava/lang/String;Ljava/lang/String;Z)V
-Llibcore/io/ForwardingOs;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V
-Llibcore/io/ForwardingOs;->setxattr(Ljava/lang/String;Ljava/lang/String;[BI)V
-Llibcore/io/ForwardingOs;->stat(Ljava/lang/String;)Landroid/system/StructStat;
-Llibcore/io/ForwardingOs;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
-Llibcore/io/ForwardingOs;->symlink(Ljava/lang/String;Ljava/lang/String;)V
-Llibcore/io/ForwardingOs;->sysconf(I)J
-Llibcore/io/ForwardingOs;->unlink(Ljava/lang/String;)V
-Llibcore/io/IoBridge;->isConnected(Ljava/io/FileDescriptor;Ljava/net/InetAddress;III)Z
-Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V
-Llibcore/io/IoUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V
-Llibcore/io/IoUtils;->closeQuietly(Ljava/net/Socket;)V
-Llibcore/io/IoUtils;->readFileAsByteArray(Ljava/lang/String;)[B
-Llibcore/io/IoUtils;->readFileAsString(Ljava/lang/String;)Ljava/lang/String;
-Llibcore/io/IoUtils;->setBlocking(Ljava/io/FileDescriptor;Z)V
-Llibcore/io/MemoryMappedFile;->bigEndianIterator()Llibcore/io/BufferIterator;
-Llibcore/io/MemoryMappedFile;->mmapRO(Ljava/lang/String;)Llibcore/io/MemoryMappedFile;
-Llibcore/io/Os;->chmod(Ljava/lang/String;I)V
-Llibcore/io/Os;->close(Ljava/io/FileDescriptor;)V
-Llibcore/io/Os;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
-Llibcore/io/Os;->gai_strerror(I)Ljava/lang/String;
-Llibcore/io/Os;->remove(Ljava/lang/String;)V
-Llibcore/io/Os;->setenv(Ljava/lang/String;Ljava/lang/String;Z)V
-Llibcore/io/Os;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V
-Llibcore/io/Os;->stat(Ljava/lang/String;)Landroid/system/StructStat;
-Llibcore/io/Os;->strerror(I)Ljava/lang/String;
-Llibcore/io/Os;->sysconf(I)J
-Llibcore/io/Streams;->readAsciiLine(Ljava/io/InputStream;)Ljava/lang/String;
-Llibcore/io/Streams;->readFully(Ljava/io/InputStream;)[B
-Llibcore/io/Streams;->readFully(Ljava/io/InputStream;[B)V
-Llibcore/io/Streams;->readSingleByte(Ljava/io/InputStream;)I
-Llibcore/io/Streams;->skipAll(Ljava/io/InputStream;)V
-Llibcore/io/Streams;->writeSingleByte(Ljava/io/OutputStream;I)V
-Llibcore/net/event/NetworkEventDispatcher;->addListener(Llibcore/net/event/NetworkEventListener;)V
-Llibcore/net/event/NetworkEventDispatcher;->getInstance()Llibcore/net/event/NetworkEventDispatcher;
-Llibcore/net/event/NetworkEventListener;-><init>()V
-Llibcore/net/http/HttpDate;->format(Ljava/util/Date;)Ljava/lang/String;
-Llibcore/net/http/HttpDate;->parse(Ljava/lang/String;)Ljava/util/Date;
-Llibcore/net/MimeUtils;->guessExtensionFromMimeType(Ljava/lang/String;)Ljava/lang/String;
-Llibcore/net/MimeUtils;->guessMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
-Llibcore/net/NetworkSecurityPolicy;->isCleartextTrafficPermitted()Z
-Llibcore/util/BasicLruCache;-><init>(I)V
-Llibcore/util/BasicLruCache;->evictAll()V
-Llibcore/util/BasicLruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
-Llibcore/util/BasicLruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Llibcore/util/EmptyArray;->BYTE:[B
-Llibcore/util/EmptyArray;->INT:[I
-Llibcore/util/EmptyArray;->OBJECT:[Ljava/lang/Object;
-Llibcore/util/ZoneInfoDB$TzData;-><init>()V
-Lorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(ILjava/nio/ByteBuffer;)V
-Lorg/apache/harmony/dalvik/ddmc/ChunkHandler;->CHUNK_ORDER:Ljava/nio/ByteOrder;
-Lorg/apache/harmony/dalvik/ddmc/DdmServer;->broadcast(I)V
-Lorg/apache/harmony/dalvik/ddmc/DdmServer;->sendChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)V
-Lorg/apache/harmony/dalvik/ddmc/DdmVmInternal;->getThreadStats()[B
-Lorg/apache/harmony/xml/dom/ElementImpl;->localName:Ljava/lang/String;
-Lorg/apache/harmony/xml/ExpatAttributes;-><init>()V
-Lorg/apache/harmony/xml/ExpatParser$EntityParser;->depth:I
-Lorg/apache/harmony/xml/ExpatParser;-><init>(Ljava/lang/String;Lorg/apache/harmony/xml/ExpatReader;ZLjava/lang/String;Ljava/lang/String;)V
-Lorg/apache/harmony/xml/ExpatParser;->append([BII)V
-Lorg/apache/harmony/xml/ExpatParser;->append([CII)V
-Lorg/apache/harmony/xml/ExpatParser;->attributes:Lorg/apache/harmony/xml/ExpatAttributes;
-Lorg/apache/harmony/xml/ExpatParser;->cloneAttributes()Lorg/xml/sax/Attributes;
-Lorg/apache/harmony/xml/ExpatParser;->finish()V
-Lorg/apache/harmony/xml/ExpatParser;->xmlReader:Lorg/apache/harmony/xml/ExpatReader;
-Lorg/apache/harmony/xml/ExpatReader;-><init>()V
-Lorg/apache/harmony/xml/ExpatReader;->contentHandler:Lorg/xml/sax/ContentHandler;
 Lorg/apache/xalan/extensions/ExpressionContext;->getContextNode()Lorg/w3c/dom/Node;
 Lorg/apache/xalan/extensions/ExpressionContext;->getErrorListener()Ljavax/xml/transform/ErrorListener;
 Lorg/apache/xalan/extensions/ExpressionContext;->getVariableOrParam(Lorg/apache/xml/utils/QName;)Lorg/apache/xpath/objects/XObject;
@@ -5505,431 +5180,3 @@
 Lorg/ccil/cowan/tagsoup/XMLWriter;->setOutput(Ljava/io/Writer;)V
 Lorg/ccil/cowan/tagsoup/XMLWriter;->setOutputProperty(Ljava/lang/String;Ljava/lang/String;)V
 Lorg/ccil/cowan/tagsoup/XMLWriter;->setPrefix(Ljava/lang/String;Ljava/lang/String;)V
-Lorg/xml/sax/helpers/NamespaceSupport$Context;-><init>(Lorg/xml/sax/helpers/NamespaceSupport;)V
-Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;-><init>(Lorg/xml/sax/helpers/ParserAdapter;)V
-Lsun/misc/ASCIICaseInsensitiveComparator;->CASE_INSENSITIVE_ORDER:Ljava/util/Comparator;
-Lsun/misc/ASCIICaseInsensitiveComparator;->lowerCaseHashCode(Ljava/lang/String;)I
-Lsun/misc/BASE64Decoder;-><init>()V
-Lsun/misc/BASE64Decoder;->pem_convert_array:[B
-Lsun/misc/BASE64Encoder;-><init>()V
-Lsun/misc/BASE64Encoder;->pem_array:[C
-Lsun/misc/CEFormatException;-><init>(Ljava/lang/String;)V
-Lsun/misc/CEStreamExhausted;-><init>()V
-Lsun/misc/CharacterDecoder;-><init>()V
-Lsun/misc/CharacterEncoder;-><init>()V
-Lsun/misc/CharacterEncoder;->encodeBuffer([B)Ljava/lang/String;
-Lsun/misc/CharacterEncoder;->encodeBufferPrefix(Ljava/io/OutputStream;)V
-Lsun/misc/CharacterEncoder;->pStream:Ljava/io/PrintStream;
-Lsun/misc/Cleaner;->create(Ljava/lang/Object;Ljava/lang/Runnable;)Lsun/misc/Cleaner;
-Lsun/misc/FloatingDecimal;->$assertionsDisabled:Z
-Lsun/misc/FloatingDecimal;->getHexDigit(Ljava/lang/String;I)I
-Lsun/misc/FloatingDecimal;->stripLeadingZeros(Ljava/lang/String;)Ljava/lang/String;
-Lsun/misc/FormattedFloatingDecimal$Form;->COMPATIBLE:Lsun/misc/FormattedFloatingDecimal$Form;
-Lsun/misc/FormattedFloatingDecimal$Form;->DECIMAL_FLOAT:Lsun/misc/FormattedFloatingDecimal$Form;
-Lsun/misc/FormattedFloatingDecimal$Form;->SCIENTIFIC:Lsun/misc/FormattedFloatingDecimal$Form;
-Lsun/misc/FormattedFloatingDecimal;->$assertionsDisabled:Z
-Lsun/misc/FpUtils;->$assertionsDisabled:Z
-Lsun/misc/FpUtils;->rawCopySign(DD)D
-Lsun/misc/HexDumpEncoder;-><init>()V
-Lsun/misc/HexDumpEncoder;->currentByte:I
-Lsun/misc/HexDumpEncoder;->offset:I
-Lsun/misc/HexDumpEncoder;->thisLine:[B
-Lsun/misc/HexDumpEncoder;->thisLineLength:I
-Lsun/misc/IOUtils;->readFully(Ljava/io/InputStream;IZ)[B
-Lsun/misc/JarIndex;-><init>([Ljava/lang/String;)V
-Lsun/misc/JarIndex;->write(Ljava/io/OutputStream;)V
-Lsun/misc/MessageUtils;-><init>()V
-Lsun/misc/MetaIndex;->forJar(Ljava/io/File;)Lsun/misc/MetaIndex;
-Lsun/misc/MetaIndex;->registerDirectory(Ljava/io/File;)V
-Lsun/misc/VM;->maxDirectMemory()J
-Lsun/net/ftp/FtpClient;-><init>()V
-Lsun/net/util/IPAddressUtil;->isIPv4LiteralAddress(Ljava/lang/String;)Z
-Lsun/net/util/IPAddressUtil;->isIPv6LiteralAddress(Ljava/lang/String;)Z
-Lsun/net/www/MessageHeader;-><init>()V
-Lsun/net/www/MessageHeader;-><init>(Ljava/io/InputStream;)V
-Lsun/net/www/MessageHeader;->add(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/net/www/MessageHeader;->findValue(Ljava/lang/String;)Ljava/lang/String;
-Lsun/net/www/MessageHeader;->prepend(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/net/www/MessageHeader;->print(Ljava/io/PrintStream;)V
-Lsun/net/www/MessageHeader;->set(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/net/www/ParseUtil;->decode(Ljava/lang/String;)Ljava/lang/String;
-Lsun/net/www/ParseUtil;->encodePath(Ljava/lang/String;Z)Ljava/lang/String;
-Lsun/net/www/ParseUtil;->fileToEncodedURL(Ljava/io/File;)Ljava/net/URL;
-Lsun/net/www/URLConnection;-><init>(Ljava/net/URL;)V
-Lsun/net/www/URLConnection;->setProperties(Lsun/net/www/MessageHeader;)V
-Lsun/nio/ch/DirectBuffer;->address()J
-Lsun/nio/ch/FileChannelImpl;->unmap0(JJ)I
-Lsun/nio/ch/SelectorImpl;->publicSelectedKeys:Ljava/util/Set;
-Lsun/nio/ch/SelectorImpl;->selectedKeys:Ljava/util/Set;
-Lsun/nio/cs/HistoricallyNamedCharset;->historicalName()Ljava/lang/String;
-Lsun/nio/cs/ThreadLocalCoders;->decoderFor(Ljava/lang/Object;)Ljava/nio/charset/CharsetDecoder;
-Lsun/nio/fs/BasicFileAttributesHolder;->get()Ljava/nio/file/attribute/BasicFileAttributes;
-Lsun/reflect/misc/ReflectUtil;->checkPackageAccess(Ljava/lang/Class;)V
-Lsun/reflect/misc/ReflectUtil;->checkPackageAccess(Ljava/lang/String;)V
-Lsun/reflect/misc/ReflectUtil;->isPackageAccessible(Ljava/lang/Class;)Z
-Lsun/reflect/misc/ReflectUtil;->isSubclassOf(Ljava/lang/Class;Ljava/lang/Class;)Z
-Lsun/reflect/Reflection;->ensureMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)V
-Lsun/reflect/Reflection;->isSubclassOf(Ljava/lang/Class;Ljava/lang/Class;)Z
-Lsun/security/action/GetBooleanAction;-><init>(Ljava/lang/String;)V
-Lsun/security/action/GetIntegerAction;-><init>(Ljava/lang/String;I)V
-Lsun/security/action/GetPropertyAction;-><init>(Ljava/lang/String;)V
-Lsun/security/action/GetPropertyAction;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/security/jca/GetInstance$Instance;->impl:Ljava/lang/Object;
-Lsun/security/jca/GetInstance$Instance;->provider:Ljava/security/Provider;
-Lsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Lsun/security/jca/GetInstance$Instance;
-Lsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
-Lsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;Ljava/security/Provider;)Lsun/security/jca/GetInstance$Instance;
-Lsun/security/jca/JCAUtil;->getSecureRandom()Ljava/security/SecureRandom;
-Lsun/security/jca/ProviderConfig;->argument:Ljava/lang/String;
-Lsun/security/jca/ProviderConfig;->CL_STRING:[Ljava/lang/Class;
-Lsun/security/jca/ProviderConfig;->disableLoad()V
-Lsun/security/jca/ProviderConfig;->hasArgument()Z
-Lsun/security/jca/ProviderList;->getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;
-Lsun/security/jca/Providers;->getProviderList()Lsun/security/jca/ProviderList;
-Lsun/security/jca/Providers;->startJarVerification()Ljava/lang/Object;
-Lsun/security/jca/Providers;->stopJarVerification(Ljava/lang/Object;)V
-Lsun/security/pkcs/ContentInfo;-><init>(Lsun/security/util/ObjectIdentifier;Lsun/security/util/DerValue;)V
-Lsun/security/pkcs/ContentInfo;-><init>([B)V
-Lsun/security/pkcs/ContentInfo;->DATA_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/ContentInfo;->encode(Lsun/security/util/DerOutputStream;)V
-Lsun/security/pkcs/ContentInfo;->getData()[B
-Lsun/security/pkcs/ParsingException;-><init>(Ljava/lang/String;)V
-Lsun/security/pkcs/PKCS7;-><init>([B)V
-Lsun/security/pkcs/PKCS7;-><init>([Lsun/security/x509/AlgorithmId;Lsun/security/pkcs/ContentInfo;[Ljava/security/cert/X509Certificate;[Ljava/security/cert/X509CRL;[Lsun/security/pkcs/SignerInfo;)V
-Lsun/security/pkcs/PKCS7;-><init>([Lsun/security/x509/AlgorithmId;Lsun/security/pkcs/ContentInfo;[Ljava/security/cert/X509Certificate;[Lsun/security/pkcs/SignerInfo;)V
-Lsun/security/pkcs/PKCS7;->encodeSignedData(Ljava/io/OutputStream;)V
-Lsun/security/pkcs/PKCS7;->getCertificates()[Ljava/security/cert/X509Certificate;
-Lsun/security/pkcs/PKCS7;->getContentInfo()Lsun/security/pkcs/ContentInfo;
-Lsun/security/pkcs/PKCS7;->getSignerInfos()[Lsun/security/pkcs/SignerInfo;
-Lsun/security/pkcs/PKCS7;->verify(Lsun/security/pkcs/SignerInfo;[B)Lsun/security/pkcs/SignerInfo;
-Lsun/security/pkcs/PKCS7;->verify([B)[Lsun/security/pkcs/SignerInfo;
-Lsun/security/pkcs/PKCS8Key;-><init>()V
-Lsun/security/pkcs/PKCS8Key;->algid:Lsun/security/x509/AlgorithmId;
-Lsun/security/pkcs/PKCS8Key;->encodedKey:[B
-Lsun/security/pkcs/PKCS8Key;->key:[B
-Lsun/security/pkcs/PKCS9Attribute;-><init>(Ljava/lang/String;Ljava/lang/Object;)V
-Lsun/security/pkcs/PKCS9Attribute;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/pkcs/PKCS9Attribute;-><init>(Lsun/security/util/ObjectIdentifier;Ljava/lang/Object;)V
-Lsun/security/pkcs/PKCS9Attribute;->CONTENT_TYPE_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/PKCS9Attribute;->derEncode(Ljava/io/OutputStream;)V
-Lsun/security/pkcs/PKCS9Attribute;->EMAIL_ADDRESS_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/PKCS9Attribute;->getOID()Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/PKCS9Attribute;->getValue()Ljava/lang/Object;
-Lsun/security/pkcs/PKCS9Attribute;->MESSAGE_DIGEST_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/PKCS9Attribute;->SIGNING_TIME_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/PKCS9Attributes;-><init>(Lsun/security/util/DerInputStream;)V
-Lsun/security/pkcs/PKCS9Attributes;-><init>(Lsun/security/util/DerInputStream;Z)V
-Lsun/security/pkcs/PKCS9Attributes;-><init>([Lsun/security/pkcs/PKCS9Attribute;)V
-Lsun/security/pkcs/PKCS9Attributes;->encode(BLjava/io/OutputStream;)V
-Lsun/security/pkcs/PKCS9Attributes;->getAttribute(Ljava/lang/String;)Lsun/security/pkcs/PKCS9Attribute;
-Lsun/security/pkcs/PKCS9Attributes;->getAttributeValue(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Object;
-Lsun/security/pkcs/PKCS9Attributes;->getDerEncoding()[B
-Lsun/security/pkcs/SignerInfo;-><init>(Lsun/security/x509/X500Name;Ljava/math/BigInteger;Lsun/security/x509/AlgorithmId;Lsun/security/pkcs/PKCS9Attributes;Lsun/security/x509/AlgorithmId;[BLsun/security/pkcs/PKCS9Attributes;)V
-Lsun/security/pkcs/SignerInfo;-><init>(Lsun/security/x509/X500Name;Ljava/math/BigInteger;Lsun/security/x509/AlgorithmId;Lsun/security/x509/AlgorithmId;[B)V
-Lsun/security/pkcs/SignerInfo;->getCertificate(Lsun/security/pkcs/PKCS7;)Ljava/security/cert/X509Certificate;
-Lsun/security/pkcs/SignerInfo;->getCertificateChain(Lsun/security/pkcs/PKCS7;)Ljava/util/ArrayList;
-Lsun/security/pkcs/SignerInfo;->getDigestAlgorithmId()Lsun/security/x509/AlgorithmId;
-Lsun/security/pkcs/SignerInfo;->getDigestEncryptionAlgorithmId()Lsun/security/x509/AlgorithmId;
-Lsun/security/pkcs/SignerInfo;->getEncryptedDigest()[B
-Lsun/security/provider/certpath/X509CertificatePair;->clearCache()V
-Lsun/security/provider/certpath/X509CertPath;-><init>(Ljava/io/InputStream;)V
-Lsun/security/provider/certpath/X509CertPath;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V
-Lsun/security/provider/certpath/X509CertPath;-><init>(Ljava/util/List;)V
-Lsun/security/provider/certpath/X509CertPath;->certs:Ljava/util/List;
-Lsun/security/provider/certpath/X509CertPath;->getEncodingsStatic()Ljava/util/Iterator;
-Lsun/security/provider/X509Factory;->addToCache(Lsun/security/util/Cache;[BLjava/lang/Object;)V
-Lsun/security/provider/X509Factory;->certCache:Lsun/security/util/Cache;
-Lsun/security/provider/X509Factory;->crlCache:Lsun/security/util/Cache;
-Lsun/security/provider/X509Factory;->getFromCache(Lsun/security/util/Cache;[B)Ljava/lang/Object;
-Lsun/security/provider/X509Factory;->intern(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
-Lsun/security/provider/X509Factory;->intern(Ljava/security/cert/X509CRL;)Lsun/security/x509/X509CRLImpl;
-Lsun/security/timestamp/TimestampToken;-><init>([B)V
-Lsun/security/timestamp/TimestampToken;->getDate()Ljava/util/Date;
-Lsun/security/timestamp/TimestampToken;->getHashAlgorithm()Lsun/security/x509/AlgorithmId;
-Lsun/security/timestamp/TimestampToken;->getHashedMessage()[B
-Lsun/security/timestamp/TimestampToken;->getNonce()Ljava/math/BigInteger;
-Lsun/security/util/BitArray;-><init>(I[B)V
-Lsun/security/util/BitArray;->toByteArray()[B
-Lsun/security/util/Cache;-><init>()V
-Lsun/security/util/Cache;->clear()V
-Lsun/security/util/Cache;->get(Ljava/lang/Object;)Ljava/lang/Object;
-Lsun/security/util/Cache;->newHardMemoryCache(I)Lsun/security/util/Cache;
-Lsun/security/util/Cache;->put(Ljava/lang/Object;Ljava/lang/Object;)V
-Lsun/security/util/Debug;->getInstance(Ljava/lang/String;)Lsun/security/util/Debug;
-Lsun/security/util/Debug;->println()V
-Lsun/security/util/Debug;->println(Ljava/lang/String;)V
-Lsun/security/util/Debug;->toHexString(Ljava/math/BigInteger;)Ljava/lang/String;
-Lsun/security/util/DerIndefLenConverter;-><init>()V
-Lsun/security/util/DerIndefLenConverter;->convert([B)[B
-Lsun/security/util/DerIndefLenConverter;->data:[B
-Lsun/security/util/DerIndefLenConverter;->dataPos:I
-Lsun/security/util/DerIndefLenConverter;->dataSize:I
-Lsun/security/util/DerIndefLenConverter;->isIndefinite(I)Z
-Lsun/security/util/DerIndefLenConverter;->newData:[B
-Lsun/security/util/DerIndefLenConverter;->numOfTotalLenBytes:I
-Lsun/security/util/DerIndefLenConverter;->parseLength()I
-Lsun/security/util/DerIndefLenConverter;->parseTag()V
-Lsun/security/util/DerIndefLenConverter;->parseValue(I)V
-Lsun/security/util/DerIndefLenConverter;->writeLengthAndValue()V
-Lsun/security/util/DerIndefLenConverter;->writeTag()V
-Lsun/security/util/DerInputStream;-><init>([B)V
-Lsun/security/util/DerInputStream;->available()I
-Lsun/security/util/DerInputStream;->getBigInteger()Ljava/math/BigInteger;
-Lsun/security/util/DerInputStream;->getBitString()[B
-Lsun/security/util/DerInputStream;->getDerValue()Lsun/security/util/DerValue;
-Lsun/security/util/DerInputStream;->getInteger()I
-Lsun/security/util/DerInputStream;->getOctetString()[B
-Lsun/security/util/DerInputStream;->getOID()Lsun/security/util/ObjectIdentifier;
-Lsun/security/util/DerInputStream;->getSequence(I)[Lsun/security/util/DerValue;
-Lsun/security/util/DerInputStream;->getSet(I)[Lsun/security/util/DerValue;
-Lsun/security/util/DerInputStream;->getSet(IZ)[Lsun/security/util/DerValue;
-Lsun/security/util/DerInputStream;->getUTCTime()Ljava/util/Date;
-Lsun/security/util/DerInputStream;->getUTF8String()Ljava/lang/String;
-Lsun/security/util/DerInputStream;->mark(I)V
-Lsun/security/util/DerInputStream;->peekByte()I
-Lsun/security/util/DerInputStream;->reset()V
-Lsun/security/util/DerInputStream;->subStream(IZ)Lsun/security/util/DerInputStream;
-Lsun/security/util/DerInputStream;->tag:B
-Lsun/security/util/DerOutputStream;-><init>()V
-Lsun/security/util/DerOutputStream;-><init>(I)V
-Lsun/security/util/DerOutputStream;->putBitString([B)V
-Lsun/security/util/DerOutputStream;->putBoolean(Z)V
-Lsun/security/util/DerOutputStream;->putDerValue(Lsun/security/util/DerValue;)V
-Lsun/security/util/DerOutputStream;->putIA5String(Ljava/lang/String;)V
-Lsun/security/util/DerOutputStream;->putInteger(I)V
-Lsun/security/util/DerOutputStream;->putInteger(Ljava/math/BigInteger;)V
-Lsun/security/util/DerOutputStream;->putNull()V
-Lsun/security/util/DerOutputStream;->putOctetString([B)V
-Lsun/security/util/DerOutputStream;->putOID(Lsun/security/util/ObjectIdentifier;)V
-Lsun/security/util/DerOutputStream;->putOrderedSetOf(B[Lsun/security/util/DerEncoder;)V
-Lsun/security/util/DerOutputStream;->putPrintableString(Ljava/lang/String;)V
-Lsun/security/util/DerOutputStream;->putSequence([Lsun/security/util/DerValue;)V
-Lsun/security/util/DerOutputStream;->putUTCTime(Ljava/util/Date;)V
-Lsun/security/util/DerOutputStream;->putUTF8String(Ljava/lang/String;)V
-Lsun/security/util/DerOutputStream;->write(BLsun/security/util/DerOutputStream;)V
-Lsun/security/util/DerOutputStream;->write(B[B)V
-Lsun/security/util/DerValue;-><init>(B[B)V
-Lsun/security/util/DerValue;-><init>(Ljava/io/InputStream;)V
-Lsun/security/util/DerValue;-><init>(Ljava/lang/String;)V
-Lsun/security/util/DerValue;-><init>([B)V
-Lsun/security/util/DerValue;-><init>([BII)V
-Lsun/security/util/DerValue;->buffer:Lsun/security/util/DerInputBuffer;
-Lsun/security/util/DerValue;->createTag(BZB)B
-Lsun/security/util/DerValue;->data:Lsun/security/util/DerInputStream;
-Lsun/security/util/DerValue;->encode(Lsun/security/util/DerOutputStream;)V
-Lsun/security/util/DerValue;->getAsString()Ljava/lang/String;
-Lsun/security/util/DerValue;->getBigInteger()Ljava/math/BigInteger;
-Lsun/security/util/DerValue;->getBitString()[B
-Lsun/security/util/DerValue;->getData()Lsun/security/util/DerInputStream;
-Lsun/security/util/DerValue;->getDataBytes()[B
-Lsun/security/util/DerValue;->getOctetString()[B
-Lsun/security/util/DerValue;->getOID()Lsun/security/util/ObjectIdentifier;
-Lsun/security/util/DerValue;->getPositiveBigInteger()Ljava/math/BigInteger;
-Lsun/security/util/DerValue;->getUnalignedBitString()Lsun/security/util/BitArray;
-Lsun/security/util/DerValue;->isConstructed()Z
-Lsun/security/util/DerValue;->isContextSpecific()Z
-Lsun/security/util/DerValue;->isContextSpecific(B)Z
-Lsun/security/util/DerValue;->isPrintableStringChar(C)Z
-Lsun/security/util/DerValue;->resetTag(B)V
-Lsun/security/util/DerValue;->tag:B
-Lsun/security/util/DerValue;->toByteArray()[B
-Lsun/security/util/DerValue;->toDerInputStream()Lsun/security/util/DerInputStream;
-Lsun/security/util/ManifestDigester$Entry;->digest(Ljava/security/MessageDigest;)[B
-Lsun/security/util/ManifestDigester$Entry;->digestWorkaround(Ljava/security/MessageDigest;)[B
-Lsun/security/util/ManifestDigester;-><init>([B)V
-Lsun/security/util/ManifestDigester;->get(Ljava/lang/String;Z)Lsun/security/util/ManifestDigester$Entry;
-Lsun/security/util/ManifestDigester;->manifestDigest(Ljava/security/MessageDigest;)[B
-Lsun/security/util/MemoryCache$HardCacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;J)V
-Lsun/security/util/MemoryCache$SoftCacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;JLjava/lang/ref/ReferenceQueue;)V
-Lsun/security/util/ObjectIdentifier;-><init>(Ljava/lang/String;)V
-Lsun/security/util/ObjectIdentifier;-><init>([I)V
-Lsun/security/util/ObjectIdentifier;->equals(Lsun/security/util/ObjectIdentifier;)Z
-Lsun/security/util/ObjectIdentifier;->newInternal([I)Lsun/security/util/ObjectIdentifier;
-Lsun/security/util/PropertyExpander;->expand(Ljava/lang/String;)Ljava/lang/String;
-Lsun/security/util/ResourcesMgr;->getString(Ljava/lang/String;)Ljava/lang/String;
-Lsun/security/util/SecurityConstants;->CREATE_CLASSLOADER_PERMISSION:Ljava/lang/RuntimePermission;
-Lsun/security/util/SecurityConstants;->GET_CLASSLOADER_PERMISSION:Ljava/lang/RuntimePermission;
-Lsun/security/util/SecurityConstants;->MODIFY_THREADGROUP_PERMISSION:Ljava/lang/RuntimePermission;
-Lsun/security/util/SecurityConstants;->MODIFY_THREAD_PERMISSION:Ljava/lang/RuntimePermission;
-Lsun/security/util/SignatureFileVerifier;->isBlockOrSF(Ljava/lang/String;)Z
-Lsun/security/x509/AccessDescription;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/AccessDescription;->getAccessLocation()Lsun/security/x509/GeneralName;
-Lsun/security/x509/AccessDescription;->getAccessMethod()Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;-><init>()V
-Lsun/security/x509/AlgorithmId;-><init>(Lsun/security/util/ObjectIdentifier;)V
-Lsun/security/x509/AlgorithmId;-><init>(Lsun/security/util/ObjectIdentifier;Ljava/security/AlgorithmParameters;)V
-Lsun/security/x509/AlgorithmId;->derEncode(Ljava/io/OutputStream;)V
-Lsun/security/x509/AlgorithmId;->DSA_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->EC_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->encode()[B
-Lsun/security/x509/AlgorithmId;->encode(Lsun/security/util/DerOutputStream;)V
-Lsun/security/x509/AlgorithmId;->equals(Lsun/security/x509/AlgorithmId;)Z
-Lsun/security/x509/AlgorithmId;->getAlgorithmId(Ljava/lang/String;)Lsun/security/x509/AlgorithmId;
-Lsun/security/x509/AlgorithmId;->getDigAlgFromSigAlg(Ljava/lang/String;)Ljava/lang/String;
-Lsun/security/x509/AlgorithmId;->getEncAlgFromSigAlg(Ljava/lang/String;)Ljava/lang/String;
-Lsun/security/x509/AlgorithmId;->getEncodedParams()[B
-Lsun/security/x509/AlgorithmId;->getOID()Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->getParameters()Ljava/security/AlgorithmParameters;
-Lsun/security/x509/AlgorithmId;->MD2_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->MD5_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->params:Lsun/security/util/DerValue;
-Lsun/security/x509/AlgorithmId;->parse(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
-Lsun/security/x509/AlgorithmId;->RSAEncryption_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->sha1WithRSAEncryption_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->SHA256_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->SHA384_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->SHA512_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->SHA_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AttributeNameEnumeration;-><init>()V
-Lsun/security/x509/AVA;-><init>(Lsun/security/util/ObjectIdentifier;Lsun/security/util/DerValue;)V
-Lsun/security/x509/AVA;->getDerValue()Lsun/security/util/DerValue;
-Lsun/security/x509/AVA;->getObjectIdentifier()Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AVA;->getValueString()Ljava/lang/String;
-Lsun/security/x509/AVA;->toRFC2253CanonicalString()Ljava/lang/String;
-Lsun/security/x509/AVAComparator;->INSTANCE:Ljava/util/Comparator;
-Lsun/security/x509/AVAKeyword;->getOID(Ljava/lang/String;ILjava/util/Map;)Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AVAKeyword;->isCompliant(I)Z
-Lsun/security/x509/AVAKeyword;->keyword:Ljava/lang/String;
-Lsun/security/x509/AVAKeyword;->keywordMap:Ljava/util/Map;
-Lsun/security/x509/AVAKeyword;->oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AVAKeyword;->oidMap:Ljava/util/Map;
-Lsun/security/x509/CertificateAlgorithmId;-><init>(Lsun/security/x509/AlgorithmId;)V
-Lsun/security/x509/CertificateExtensions;-><init>()V
-Lsun/security/x509/CertificateExtensions;-><init>(Lsun/security/util/DerInputStream;)V
-Lsun/security/x509/CertificateExtensions;->encode(Ljava/io/OutputStream;Z)V
-Lsun/security/x509/CertificateExtensions;->get(Ljava/lang/String;)Ljava/lang/Object;
-Lsun/security/x509/CertificateExtensions;->set(Ljava/lang/String;Ljava/lang/Object;)V
-Lsun/security/x509/CertificateIssuerName;-><init>(Lsun/security/x509/X500Name;)V
-Lsun/security/x509/CertificateSerialNumber;-><init>(I)V
-Lsun/security/x509/CertificateSerialNumber;-><init>(Ljava/math/BigInteger;)V
-Lsun/security/x509/CertificateSubjectName;-><init>(Lsun/security/x509/X500Name;)V
-Lsun/security/x509/CertificateSubjectName;->get(Ljava/lang/String;)Ljava/lang/Object;
-Lsun/security/x509/CertificateValidity;-><init>(Ljava/util/Date;Ljava/util/Date;)V
-Lsun/security/x509/CertificateVersion;-><init>(I)V
-Lsun/security/x509/CertificateX509Key;-><init>(Ljava/security/PublicKey;)V
-Lsun/security/x509/CRLDistributionPointsExtension;->encodeThis()V
-Lsun/security/x509/CRLNumberExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
-Lsun/security/x509/CRLNumberExtension;->encodeThis()V
-Lsun/security/x509/CRLNumberExtension;->get(Ljava/lang/String;)Ljava/lang/Object;
-Lsun/security/x509/Extension;-><init>(Lsun/security/x509/Extension;)V
-Lsun/security/x509/Extension;->encode(Lsun/security/util/DerOutputStream;)V
-Lsun/security/x509/Extension;->getExtensionId()Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/GeneralName;-><init>(Lsun/security/x509/GeneralNameInterface;)V
-Lsun/security/x509/GeneralName;->getName()Lsun/security/x509/GeneralNameInterface;
-Lsun/security/x509/GeneralName;->getType()I
-Lsun/security/x509/GeneralNames;-><init>()V
-Lsun/security/x509/GeneralNames;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/GeneralNames;->add(Lsun/security/x509/GeneralName;)Lsun/security/x509/GeneralNames;
-Lsun/security/x509/GeneralNames;->encode(Lsun/security/util/DerOutputStream;)V
-Lsun/security/x509/GeneralNames;->isEmpty()Z
-Lsun/security/x509/KeyIdentifier;-><init>(Ljava/security/PublicKey;)V
-Lsun/security/x509/KeyIdentifier;->getIdentifier()[B
-Lsun/security/x509/KeyIdentifier;->octetString:[B
-Lsun/security/x509/KeyUsageExtension;-><init>([Z)V
-Lsun/security/x509/KeyUsageExtension;->get(Ljava/lang/String;)Ljava/lang/Object;
-Lsun/security/x509/NetscapeCertTypeExtension;-><init>([B)V
-Lsun/security/x509/NetscapeCertTypeExtension;->get(Ljava/lang/String;)Ljava/lang/Object;
-Lsun/security/x509/OIDMap$OIDInfo;->clazz:Ljava/lang/Class;
-Lsun/security/x509/OIDMap;->getClass(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Class;
-Lsun/security/x509/OIDMap;->nameMap:Ljava/util/Map;
-Lsun/security/x509/OIDMap;->oidMap:Ljava/util/Map;
-Lsun/security/x509/PKIXExtensions;->CertificateIssuer_Id:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/SerialNumber;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/SubjectAlternativeNameExtension;->get(Ljava/lang/String;)Ljava/lang/Object;
-Lsun/security/x509/SubjectKeyIdentifierExtension;-><init>([B)V
-Lsun/security/x509/UniqueIdentity;-><init>(Lsun/security/util/DerInputStream;)V
-Lsun/security/x509/UniqueIdentity;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/UniqueIdentity;->encode(Lsun/security/util/DerOutputStream;B)V
-Lsun/security/x509/URIName;->getName()Ljava/lang/String;
-Lsun/security/x509/URIName;->getScheme()Ljava/lang/String;
-Lsun/security/x509/X500Name;-><init>(Ljava/lang/String;)V
-Lsun/security/x509/X500Name;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/security/x509/X500Name;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Lsun/security/x509/X500Name;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Lsun/security/x509/X500Name;-><init>(Lsun/security/util/DerInputStream;)V
-Lsun/security/x509/X500Name;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/X500Name;-><init>([B)V
-Lsun/security/x509/X500Name;->allAvas()Ljava/util/List;
-Lsun/security/x509/X500Name;->asX500Name(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
-Lsun/security/x509/X500Name;->asX500Principal()Ljavax/security/auth/x500/X500Principal;
-Lsun/security/x509/X500Name;->commonName_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->countryName_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->DNQUALIFIER_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->DOMAIN_COMPONENT_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->encode(Lsun/security/util/DerOutputStream;)V
-Lsun/security/x509/X500Name;->GENERATIONQUALIFIER_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->getCommonName()Ljava/lang/String;
-Lsun/security/x509/X500Name;->GIVENNAME_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->INITIALS_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->ipAddress_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->isEmpty()Z
-Lsun/security/x509/X500Name;->localityName_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->orgName_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->orgUnitName_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->SERIALNUMBER_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->stateName_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->streetAddress_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->SURNAME_OID:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->title_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->userid_oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X509CertImpl;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/X509CertImpl;-><init>(Lsun/security/x509/X509CertInfo;)V
-Lsun/security/x509/X509CertImpl;-><init>([B)V
-Lsun/security/x509/X509CertImpl;->algId:Lsun/security/x509/AlgorithmId;
-Lsun/security/x509/X509CertImpl;->get(Ljava/lang/String;)Ljava/lang/Object;
-Lsun/security/x509/X509CertImpl;->getEncodedInternal()[B
-Lsun/security/x509/X509CertImpl;->parse(Lsun/security/util/DerValue;)V
-Lsun/security/x509/X509CertImpl;->readOnly:Z
-Lsun/security/x509/X509CertImpl;->sign(Ljava/security/PrivateKey;Ljava/lang/String;)V
-Lsun/security/x509/X509CertImpl;->signature:[B
-Lsun/security/x509/X509CertImpl;->signedCert:[B
-Lsun/security/x509/X509CertInfo;-><init>()V
-Lsun/security/x509/X509CertInfo;-><init>([B)V
-Lsun/security/x509/X509CertInfo;->get(Ljava/lang/String;)Ljava/lang/Object;
-Lsun/security/x509/X509CertInfo;->set(Ljava/lang/String;Ljava/lang/Object;)V
-Lsun/security/x509/X509CRLEntryImpl;->getExtension(Lsun/security/util/ObjectIdentifier;)Lsun/security/x509/Extension;
-Lsun/security/x509/X509CRLImpl;-><init>(Ljava/io/InputStream;)V
-Lsun/security/x509/X509CRLImpl;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/X509CRLImpl;-><init>([B)V
-Lsun/security/x509/X509CRLImpl;->getEncodedInternal()[B
-Lsun/security/x509/X509Key;-><init>()V
-Lsun/security/x509/X509Key;->algid:Lsun/security/x509/AlgorithmId;
-Lsun/security/x509/X509Key;->encodedKey:[B
-Lsun/security/x509/X509Key;->key:[B
-Lsun/security/x509/X509Key;->parse(Lsun/security/util/DerValue;)Ljava/security/PublicKey;
-Lsun/security/x509/X509Key;->unusedBits:I
-Lsun/util/calendar/AbstractCalendar;->getDayOfWeekDateOnOrBefore(JI)J
-Lsun/util/calendar/AbstractCalendar;->getTimeOfDayValue(Lsun/util/calendar/CalendarDate;)J
-Lsun/util/calendar/BaseCalendar$Date;->getNormalizedYear()I
-Lsun/util/calendar/BaseCalendar$Date;->setNormalizedYear(I)V
-Lsun/util/calendar/CalendarDate;->getDayOfMonth()I
-Lsun/util/calendar/CalendarDate;->getMonth()I
-Lsun/util/calendar/CalendarDate;->getTimeOfDay()J
-Lsun/util/calendar/CalendarDate;->getYear()I
-Lsun/util/calendar/CalendarDate;->setDate(III)Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/CalendarDate;->setDayOfMonth(I)Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/CalendarDate;->setHours(I)Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/CalendarDate;->setMillis(I)Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/CalendarDate;->setMinutes(I)Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/CalendarDate;->setSeconds(I)Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/CalendarSystem;->forName(Ljava/lang/String;)Lsun/util/calendar/CalendarSystem;
-Lsun/util/calendar/CalendarSystem;->getGregorianCalendar()Lsun/util/calendar/Gregorian;
-Lsun/util/calendar/CalendarSystem;->getTime(Lsun/util/calendar/CalendarDate;)J
-Lsun/util/calendar/CalendarSystem;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/CalendarSystem;->validate(Lsun/util/calendar/CalendarDate;)Z
-Lsun/util/calendar/CalendarUtils;->floorDivide(II)I
-Lsun/util/calendar/CalendarUtils;->floorDivide(JJ)J
-Lsun/util/calendar/CalendarUtils;->mod(II)I
-Lsun/util/calendar/CalendarUtils;->mod(JJ)J
-Lsun/util/calendar/Era;-><init>(Ljava/lang/String;Ljava/lang/String;JZ)V
-Lsun/util/calendar/Era;->getAbbreviation()Ljava/lang/String;
-Lsun/util/calendar/Era;->getName()Ljava/lang/String;
-Lsun/util/calendar/Era;->getSinceDate()Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/ImmutableGregorianDate;->unsupported()V
-Lsun/util/calendar/LocalGregorianCalendar$Date;->getNormalizedYear()I
-Lsun/util/calendar/LocalGregorianCalendar$Date;->setEra(Lsun/util/calendar/Era;)Lsun/util/calendar/LocalGregorianCalendar$Date;
-Lsun/util/calendar/LocalGregorianCalendar$Date;->setNormalizedYear(I)V
-Lsun/util/calendar/LocalGregorianCalendar$Date;->setYear(I)Lsun/util/calendar/LocalGregorianCalendar$Date;
-Lsun/util/calendar/LocalGregorianCalendar;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/LocalGregorianCalendar$Date;
-Lsun/util/calendar/LocalGregorianCalendar;->normalize(Lsun/util/calendar/CalendarDate;)Z
-Lsun/util/calendar/LocalGregorianCalendar;->validate(Lsun/util/calendar/CalendarDate;)Z
diff --git a/config/hiddenapi-vendor-list.txt b/config/hiddenapi-vendor-list.txt
index 575ba34..a21fa30 100644
--- a/config/hiddenapi-vendor-list.txt
+++ b/config/hiddenapi-vendor-list.txt
@@ -147,8 +147,8 @@
 Landroid/view/IWindowManager;->destroyInputConsumer(Ljava/lang/String;I)Z
 Landroid/view/IWindowManager;->endProlongedAnimations()V
 Landroid/view/IWindowManager;->getStableInsets(ILandroid/graphics/Rect;)V
-Landroid/view/IWindowManager;->overridePendingAppTransitionMultiThumbFuture(Landroid/view/IAppTransitionAnimationSpecsFuture;Landroid/os/IRemoteCallback;Z)V
-Landroid/view/IWindowManager;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;)V
+Landroid/view/IWindowManager;->overridePendingAppTransitionMultiThumbFuture(Landroid/view/IAppTransitionAnimationSpecsFuture;Landroid/os/IRemoteCallback;ZI)V
+Landroid/view/IWindowManager;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;I)V
 Landroid/view/IWindowManager;->setNavBarVirtualKeyHapticFeedbackEnabled(Z)V
 Lcom/android/ims/ImsConfigListener;->onSetFeatureResponse(IIII)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionConferenceStateUpdated(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsConferenceState;)V
diff --git a/config/preloaded-classes b/config/preloaded-classes
index 550e795..3095925 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -4117,6 +4117,10 @@
 com.android.internal.util.VirtualRefBasePtr
 com.android.internal.util.XmlUtils
 com.android.internal.util.XmlUtils$WriteMapCallback
+com.android.internal.util.function.NonaConsumer
+com.android.internal.util.function.NonaFunction
+com.android.internal.util.function.OctConsumer
+com.android.internal.util.function.OctFunction
 com.android.internal.util.function.HeptConsumer
 com.android.internal.util.function.HeptFunction
 com.android.internal.util.function.HexConsumer
@@ -6172,6 +6176,9 @@
 libcore.reflect.Types
 libcore.reflect.WildcardTypeImpl
 libcore.timezone.TimeZoneDataFiles
+libcore.timezone.ZoneInfoDB
+libcore.timezone.ZoneInfoDB$TzData
+libcore.timezone.ZoneInfoDB$TzData$1
 libcore.util.BasicLruCache
 libcore.util.CharsetUtils
 libcore.util.CollectionUtils
@@ -6184,9 +6191,6 @@
 libcore.util.ZoneInfo
 libcore.util.ZoneInfo$CheckedArithmeticException
 libcore.util.ZoneInfo$WallTime
-libcore.util.ZoneInfoDB
-libcore.util.ZoneInfoDB$TzData
-libcore.util.ZoneInfoDB$TzData$1
 org.apache.harmony.dalvik.NativeTestTarget
 org.apache.harmony.dalvik.ddmc.Chunk
 org.apache.harmony.dalvik.ddmc.ChunkHandler
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 553acc8..f3f065a 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -122,7 +122,7 @@
 import android.view.autofill.AutofillPopupWindow;
 import android.view.autofill.IAutofillWindowPresenter;
 import android.view.intelligence.ContentCaptureEvent;
-import android.view.intelligence.IntelligenceManager;
+import android.view.intelligence.ContentCaptureManager;
 import android.widget.AdapterView;
 import android.widget.Toast;
 import android.widget.Toolbar;
@@ -824,9 +824,11 @@
     /** The autofill manager. Always access via {@link #getAutofillManager()}. */
     @Nullable private AutofillManager mAutofillManager;
 
-    /** The screen observation manager. Always access via {@link #getIntelligenceManager()}. */
-    @Nullable private IntelligenceManager mIntelligenceManager;
+    /** The content capture manager. Always access via {@link #getContentCaptureManager()}. */
+    @Nullable private ContentCaptureManager mContentCaptureManager;
 
+    private final ArrayList<Application.ActivityLifecycleCallbacks> mActivityLifecycleCallbacks =
+            new ArrayList<Application.ActivityLifecycleCallbacks>();
 
     static final class NonConfigurationInstances {
         Object activity;
@@ -1014,39 +1016,39 @@
     }
 
     /**
-     * (Creates, sets, and ) returns the intelligence manager
+     * (Creates, sets, and ) returns the content capture manager
      *
-     * @return The intelligence manager
+     * @return The content capture manager
      */
-    @NonNull private IntelligenceManager getIntelligenceManager() {
-        if (mIntelligenceManager == null) {
-            mIntelligenceManager = getSystemService(IntelligenceManager.class);
+    @NonNull private ContentCaptureManager getContentCaptureManager() {
+        if (mContentCaptureManager == null) {
+            mContentCaptureManager = getSystemService(ContentCaptureManager.class);
         }
-        return mIntelligenceManager;
+        return mContentCaptureManager;
     }
 
-    private void notifyIntelligenceManagerIfNeeded(@ContentCaptureEvent.EventType int event) {
-        final IntelligenceManager im = getIntelligenceManager();
-        if (im == null || !im.isContentCaptureEnabled()) {
+    private void notifyContentCaptureManagerIfNeeded(@ContentCaptureEvent.EventType int event) {
+        final ContentCaptureManager cm = getContentCaptureManager();
+        if (cm == null || !cm.isContentCaptureEnabled()) {
             return;
         }
         switch (event) {
             case ContentCaptureEvent.TYPE_ACTIVITY_CREATED:
                 //TODO(b/111276913): decide whether the InteractionSessionId should be
                 // saved / restored in the activity bundle.
-                im.onActivityCreated(mToken, getComponentName());
+                cm.onActivityCreated(mToken, getComponentName());
                 break;
             case ContentCaptureEvent.TYPE_ACTIVITY_DESTROYED:
-                im.onActivityDestroyed();
+                cm.onActivityDestroyed();
                 break;
             case ContentCaptureEvent.TYPE_ACTIVITY_STARTED:
             case ContentCaptureEvent.TYPE_ACTIVITY_RESUMED:
             case ContentCaptureEvent.TYPE_ACTIVITY_PAUSED:
             case ContentCaptureEvent.TYPE_ACTIVITY_STOPPED:
-                im.onActivityLifecycleEvent(event);
+                cm.onActivityLifecycleEvent(event);
                 break;
             default:
-                Log.w(TAG, "notifyIntelligenceManagerIfNeeded(): invalid type " + event);
+                Log.w(TAG, "notifyContentCaptureManagerIfNeeded(): invalid type " + event);
         }
     }
 
@@ -1055,6 +1057,7 @@
         super.attachBaseContext(newBase);
         if (newBase != null) {
             newBase.setAutofillClient(this);
+            newBase.setContentCaptureSupported(true);
         }
     }
 
@@ -1064,6 +1067,294 @@
         return this;
     }
 
+    /** @hide */
+    @Override
+    public boolean isContentCaptureSupported() {
+        return true;
+    }
+
+    /**
+     * Register an {@link Application.ActivityLifecycleCallbacks} instance that receives
+     * lifecycle callbacks for only this Activity.
+     * <p>
+     * In relation to any
+     * {@link Application#registerActivityLifecycleCallbacks Application registered callbacks},
+     * the callbacks registered here will always occur nested within those callbacks. This means:
+     * <ul>
+     *     <li>Pre events will first be sent to Application registered callbacks, then to callbacks
+     *     registered here.</li>
+     *     <li>{@link Application.ActivityLifecycleCallbacks#onActivityCreated(Activity, Bundle)},
+     *     {@link Application.ActivityLifecycleCallbacks#onActivityStarted(Activity)}, and
+     *     {@link Application.ActivityLifecycleCallbacks#onActivityResumed(Activity)} will
+     *     be sent first to Application registered callbacks, then to callbacks registered here.
+     *     For all other events, callbacks registered here will be sent first.</li>
+     *     <li>Post events will first be sent to callbacks registered here, then to
+     *     Application registered callbacks.</li>
+     * </ul>
+     * <p>
+     * If multiple callbacks are registered here, they receive events in a first in (up through
+     * {@link Application.ActivityLifecycleCallbacks#onActivityPostResumed}, last out
+     * ordering.
+     * <p>
+     * It is strongly recommended to register this in the constructor of your Activity to ensure
+     * you get all available callbacks. As this callback is associated with only this Activity,
+     * it is not usually necessary to {@link #unregisterActivityLifecycleCallbacks unregister} it
+     * unless you specifically do not want to receive further lifecycle callbacks.
+     *
+     * @param callback The callback instance to register
+     */
+    public void registerActivityLifecycleCallbacks(
+            @NonNull Application.ActivityLifecycleCallbacks callback) {
+        synchronized (mActivityLifecycleCallbacks) {
+            mActivityLifecycleCallbacks.add(callback);
+        }
+    }
+
+    /**
+     * Unregister an {@link Application.ActivityLifecycleCallbacks} previously registered
+     * with {@link #registerActivityLifecycleCallbacks}. It will not receive any further
+     * callbacks.
+     *
+     * @param callback The callback instance to unregister
+     * @see #registerActivityLifecycleCallbacks
+     */
+    public void unregisterActivityLifecycleCallbacks(
+            @NonNull Application.ActivityLifecycleCallbacks callback) {
+        synchronized (mActivityLifecycleCallbacks) {
+            mActivityLifecycleCallbacks.remove(callback);
+        }
+    }
+
+    private void dispatchActivityPreCreated(@Nullable Bundle savedInstanceState) {
+        getApplication().dispatchActivityPreCreated(this, savedInstanceState);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPreCreated(this,
+                        savedInstanceState);
+            }
+        }
+    }
+
+    private void dispatchActivityCreated(@Nullable Bundle savedInstanceState) {
+        getApplication().dispatchActivityCreated(this, savedInstanceState);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityCreated(this,
+                        savedInstanceState);
+            }
+        }
+    }
+
+    private void dispatchActivityPostCreated(@Nullable Bundle savedInstanceState) {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPostCreated(this,
+                        savedInstanceState);
+            }
+        }
+        getApplication().dispatchActivityPostCreated(this, savedInstanceState);
+    }
+
+    private void dispatchActivityPreStarted() {
+        getApplication().dispatchActivityPreStarted(this);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPreStarted(this);
+            }
+        }
+    }
+
+    private void dispatchActivityStarted() {
+        getApplication().dispatchActivityStarted(this);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityStarted(this);
+            }
+        }
+    }
+
+    private void dispatchActivityPostStarted() {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i])
+                        .onActivityPostStarted(this);
+            }
+        }
+        getApplication().dispatchActivityPostStarted(this);
+    }
+
+    private void dispatchActivityPreResumed() {
+        getApplication().dispatchActivityPreResumed(this);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPreResumed(this);
+            }
+        }
+    }
+
+    private void dispatchActivityResumed() {
+        getApplication().dispatchActivityResumed(this);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityResumed(this);
+            }
+        }
+    }
+
+    private void dispatchActivityPostResumed() {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = 0; i < callbacks.length; i++) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPostResumed(this);
+            }
+        }
+        getApplication().dispatchActivityPostResumed(this);
+    }
+
+    private void dispatchActivityPrePaused() {
+        getApplication().dispatchActivityPrePaused(this);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPrePaused(this);
+            }
+        }
+    }
+
+    private void dispatchActivityPaused() {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPaused(this);
+            }
+        }
+        getApplication().dispatchActivityPaused(this);
+    }
+
+    private void dispatchActivityPostPaused() {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPostPaused(this);
+            }
+        }
+        getApplication().dispatchActivityPostPaused(this);
+    }
+
+    private void dispatchActivityPreStopped() {
+        getApplication().dispatchActivityPreStopped(this);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityPreStopped(this);
+            }
+        }
+    }
+
+    private void dispatchActivityStopped() {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityStopped(this);
+            }
+        }
+        getApplication().dispatchActivityStopped(this);
+    }
+
+    private void dispatchActivityPostStopped() {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i])
+                        .onActivityPostStopped(this);
+            }
+        }
+        getApplication().dispatchActivityPostStopped(this);
+    }
+
+    private void dispatchActivityPreSaveInstanceState(@NonNull Bundle outState) {
+        getApplication().dispatchActivityPreSaveInstanceState(this, outState);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i])
+                        .onActivityPreSaveInstanceState(this, outState);
+            }
+        }
+    }
+
+    private void dispatchActivitySaveInstanceState(@NonNull Bundle outState) {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i])
+                        .onActivitySaveInstanceState(this, outState);
+            }
+        }
+        getApplication().dispatchActivitySaveInstanceState(this, outState);
+    }
+
+    private void dispatchActivityPostSaveInstanceState(@NonNull Bundle outState) {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i])
+                        .onActivityPostSaveInstanceState(this, outState);
+            }
+        }
+        getApplication().dispatchActivityPostSaveInstanceState(this, outState);
+    }
+
+    private void dispatchActivityPreDestroyed() {
+        getApplication().dispatchActivityPreDestroyed(this);
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i])
+                        .onActivityPreDestroyed(this);
+            }
+        }
+    }
+
+    private void dispatchActivityDestroyed() {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i]).onActivityDestroyed(this);
+            }
+        }
+        getApplication().dispatchActivityDestroyed(this);
+    }
+
+    private void dispatchActivityPostDestroyed() {
+        Object[] callbacks = collectActivityLifecycleCallbacks();
+        if (callbacks != null) {
+            for (int i = callbacks.length - 1; i >= 0; i--) {
+                ((Application.ActivityLifecycleCallbacks) callbacks[i])
+                        .onActivityPostDestroyed(this);
+            }
+        }
+        getApplication().dispatchActivityPostDestroyed(this);
+    }
+
+    private Object[] collectActivityLifecycleCallbacks() {
+        Object[] callbacks = null;
+        synchronized (mActivityLifecycleCallbacks) {
+            if (mActivityLifecycleCallbacks.size() > 0) {
+                callbacks = mActivityLifecycleCallbacks.toArray();
+            }
+        }
+        return callbacks;
+    }
+
     /**
      * Called when the activity is starting.  This is where most initialization
      * should go: calling {@link #setContentView(int)} to inflate the
@@ -1119,14 +1410,14 @@
                     ? mLastNonConfigurationInstances.fragments : null);
         }
         mFragments.dispatchCreate();
-        getApplication().dispatchActivityCreated(this, savedInstanceState);
+        dispatchActivityCreated(savedInstanceState);
         if (mVoiceInteractor != null) {
             mVoiceInteractor.attachActivity(this);
         }
         mRestoredFromBundle = savedInstanceState != null;
         mCalled = true;
 
-        notifyIntelligenceManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_CREATED);
+        notifyContentCaptureManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_CREATED);
     }
 
     /**
@@ -1355,12 +1646,12 @@
 
         mFragments.doLoaderStart();
 
-        getApplication().dispatchActivityStarted(this);
+        dispatchActivityStarted();
 
         if (mAutoFillResetNeeded) {
             getAutofillManager().onVisibleForAutofill();
         }
-        notifyIntelligenceManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_STARTED);
+        notifyContentCaptureManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_STARTED);
     }
 
     /**
@@ -1426,13 +1717,21 @@
     @CallSuper
     protected void onResume() {
         if (DEBUG_LIFECYCLE) Slog.v(TAG, "onResume " + this);
-        getApplication().dispatchActivityResumed(this);
+        dispatchActivityResumed();
         mActivityTransitionState.onResume(this, isTopOfTask());
         enableAutofillCompatibilityIfNeeded();
         if (mAutoFillResetNeeded) {
             if (!mAutoFillIgnoreFirstResumePause) {
                 View focus = getCurrentFocus();
-                if (focus != null && focus.canNotifyAutofillEnterExitEvent()) {
+                // On Activity rotation situation (mRestoredFromBundle is true),
+                // we should not call on AutofillManager in onResume()
+                // since the next Layout pass will do that.
+                // However, there are both cases where Activity#getCurrentFocus()
+                // will return null (window not preserved) and not null (window IS
+                // preserved), so we need to explicitly check for mRestoredFromBundle
+                // here.
+                if (!mRestoredFromBundle && focus != null
+                        && focus.canNotifyAutofillEnterExitEvent()) {
                     // TODO: in Activity killed/recreated case, i.e. SessionLifecycleTest#
                     // testDatasetVisibleWhileAutofilledAppIsLifecycled: the View's initial
                     // window visibility after recreation is INVISIBLE in onResume() and next frame
@@ -1443,7 +1742,7 @@
                 }
             }
         }
-        notifyIntelligenceManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_RESUMED);
+        notifyContentCaptureManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_RESUMED);
         mCalled = true;
     }
 
@@ -1634,13 +1933,13 @@
      * @param outState The bundle to save the state to.
      */
     final void performSaveInstanceState(@NonNull Bundle outState) {
-        getApplication().dispatchActivityPreSaveInstanceState(this, outState);
+        dispatchActivityPreSaveInstanceState(outState);
         onSaveInstanceState(outState);
         saveManagedDialogs(outState);
         mActivityTransitionState.saveState(outState);
         storeHasCurrentPermissionRequest(outState);
         if (DEBUG_LIFECYCLE) Slog.v(TAG, "onSaveInstanceState " + this + ": " + outState);
-        getApplication().dispatchActivityPostSaveInstanceState(this, outState);
+        dispatchActivityPostSaveInstanceState(outState);
     }
 
     /**
@@ -1654,13 +1953,13 @@
      */
     final void performSaveInstanceState(@NonNull Bundle outState,
             @NonNull PersistableBundle outPersistentState) {
-        getApplication().dispatchActivityPreSaveInstanceState(this, outState);
+        dispatchActivityPreSaveInstanceState(outState);
         onSaveInstanceState(outState, outPersistentState);
         saveManagedDialogs(outState);
         storeHasCurrentPermissionRequest(outState);
         if (DEBUG_LIFECYCLE) Slog.v(TAG, "onSaveInstanceState " + this + ": " + outState +
                 ", " + outPersistentState);
-        getApplication().dispatchActivityPostSaveInstanceState(this, outState);
+        dispatchActivityPostSaveInstanceState(outState);
     }
 
     /**
@@ -1723,7 +2022,7 @@
             outState.putBoolean(AUTOFILL_RESET_NEEDED, true);
             getAutofillManager().onSaveInstanceState(outState);
         }
-        getApplication().dispatchActivitySaveInstanceState(this, outState);
+        dispatchActivitySaveInstanceState(outState);
     }
 
     /**
@@ -1823,7 +2122,7 @@
     @CallSuper
     protected void onPause() {
         if (DEBUG_LIFECYCLE) Slog.v(TAG, "onPause " + this);
-        getApplication().dispatchActivityPaused(this);
+        dispatchActivityPaused();
         if (mAutoFillResetNeeded) {
             if (!mAutoFillIgnoreFirstResumePause) {
                 if (DEBUG_LIFECYCLE) Slog.v(TAG, "autofill notifyViewExited " + this);
@@ -1837,7 +2136,7 @@
                 mAutoFillIgnoreFirstResumePause = false;
             }
         }
-        notifyIntelligenceManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_PAUSED);
+        notifyContentCaptureManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_PAUSED);
         mCalled = true;
     }
 
@@ -2007,7 +2306,7 @@
         if (DEBUG_LIFECYCLE) Slog.v(TAG, "onStop " + this);
         if (mActionBar != null) mActionBar.setShowHideAnimationEnabled(false);
         mActivityTransitionState.onStop();
-        getApplication().dispatchActivityStopped(this);
+        dispatchActivityStopped();
         mTranslucentCallback = null;
         mCalled = true;
 
@@ -2026,7 +2325,7 @@
                 getAutofillManager().onPendingSaveUi(AutofillManager.PENDING_UI_OPERATION_CANCEL,
                         mIntent.getIBinderExtra(AutofillManager.EXTRA_RESTORE_SESSION_TOKEN));
             }
-            notifyIntelligenceManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_STOPPED);
+            notifyContentCaptureManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_STOPPED);
         }
     }
 
@@ -2096,9 +2395,9 @@
             mActionBar.onDestroy();
         }
 
-        getApplication().dispatchActivityDestroyed(this);
+        dispatchActivityDestroyed();
 
-        notifyIntelligenceManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_DESTROYED);
+        notifyContentCaptureManagerIfNeeded(ContentCaptureEvent.TYPE_ACTIVITY_DESTROYED);
 
     }
 
@@ -6514,7 +6813,7 @@
     }
 
     void dumpIntelligenceManager(String prefix, PrintWriter writer) {
-        final IntelligenceManager im = getIntelligenceManager();
+        final ContentCaptureManager im = getContentCaptureManager();
         if (im != null) {
             im.dump(prefix, writer);
         } else {
@@ -7276,7 +7575,7 @@
 
     @UnsupportedAppUsage
     final void performCreate(Bundle icicle, PersistableBundle persistentState) {
-        getApplication().dispatchActivityPreCreated(this, icicle);
+        dispatchActivityPreCreated(icicle);
         mCanEnterPictureInPicture = true;
         restoreHasCurrentPermissionRequest(icicle);
         if (persistentState != null) {
@@ -7291,7 +7590,7 @@
                 com.android.internal.R.styleable.Window_windowNoDisplay, false);
         mFragments.dispatchActivityCreated();
         mActivityTransitionState.setEnterActivityOptions(this, getActivityOptions());
-        getApplication().dispatchActivityPostCreated(this, icicle);
+        dispatchActivityPostCreated(icicle);
     }
 
     final void performNewIntent(@NonNull Intent intent) {
@@ -7300,7 +7599,7 @@
     }
 
     final void performStart(String reason) {
-        getApplication().dispatchActivityPreStarted(this);
+        dispatchActivityPreStarted();
         mActivityTransitionState.setEnterActivityOptions(this, getActivityOptions());
         mFragments.noteStateNotSaved();
         mCalled = false;
@@ -7343,7 +7642,7 @@
         }
 
         mActivityTransitionState.enterReady(this);
-        getApplication().dispatchActivityPostStarted(this);
+        dispatchActivityPostStarted();
     }
 
     /**
@@ -7398,7 +7697,7 @@
     }
 
     final void performResume(boolean followedByPause, String reason) {
-        getApplication().dispatchActivityPreResumed(this);
+        dispatchActivityPreResumed();
         performRestart(true /* start */, reason);
 
         mFragments.execPendingActions();
@@ -7448,11 +7747,11 @@
                 "Activity " + mComponent.toShortString() +
                 " did not call through to super.onPostResume()");
         }
-        getApplication().dispatchActivityPostResumed(this);
+        dispatchActivityPostResumed();
     }
 
     final void performPause() {
-        getApplication().dispatchActivityPrePaused(this);
+        dispatchActivityPrePaused();
         mDoReportFullyDrawn = false;
         mFragments.dispatchPause();
         mCalled = false;
@@ -7465,7 +7764,7 @@
                     "Activity " + mComponent.toShortString() +
                     " did not call through to super.onPause()");
         }
-        getApplication().dispatchActivityPostPaused(this);
+        dispatchActivityPostPaused();
     }
 
     final void performUserLeaving() {
@@ -7481,7 +7780,7 @@
         mCanEnterPictureInPicture = false;
 
         if (!mStopped) {
-            getApplication().dispatchActivityPreStopped(this);
+            dispatchActivityPreStopped();
             if (mWindow != null) {
                 mWindow.closeAllPanels();
             }
@@ -7516,13 +7815,13 @@
             }
 
             mStopped = true;
-            getApplication().dispatchActivityPostStopped(this);
+            dispatchActivityPostStopped();
         }
         mResumed = false;
     }
 
     final void performDestroy() {
-        getApplication().dispatchActivityPreDestroyed(this);
+        dispatchActivityPreDestroyed();
         mDestroyed = true;
         mWindow.destroy();
         mFragments.dispatchDestroy();
@@ -7532,7 +7831,7 @@
         if (mVoiceInteractor != null) {
             mVoiceInteractor.detachActivity();
         }
-        getApplication().dispatchActivityPostDestroyed(this);
+        dispatchActivityPostDestroyed();
     }
 
     final void dispatchMultiWindowModeChanged(boolean isInMultiWindowMode,
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
index 1edd7f5..af3da0c 100644
--- a/core/java/android/app/ActivityManagerInternal.java
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -243,6 +243,8 @@
     public abstract void ensureBootCompleted();
     public abstract void updateOomLevelsForDisplay(int displayId);
     public abstract boolean isActivityStartsLoggingEnabled();
+    /** Returns true if the background activity starts is enabled. */
+    public abstract boolean isBackgroundActivityStartsEnabled();
     public abstract void reportCurKeyguardUsageEvent(boolean keyguardShowing);
 
     /** Input dispatch timeout to a window, start the ANR process. */
diff --git a/core/java/android/app/ActivityTaskManager.java b/core/java/android/app/ActivityTaskManager.java
index 56ccf6f..6fdf7c8 100644
--- a/core/java/android/app/ActivityTaskManager.java
+++ b/core/java/android/app/ActivityTaskManager.java
@@ -433,4 +433,18 @@
         }
         return sb.toString();
     }
+
+    /**
+     * Clears launch params for the given package.
+     * @param packageNames the names of the packages of which the launch params are to be cleared
+     */
+    @TestApi
+    @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+    public void clearLaunchParamsForPackages(List<String> packageNames) {
+        try {
+            getService().clearLaunchParamsForPackages(packageNames);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+    }
 }
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 805fb68..41166dd 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -157,7 +157,6 @@
 import com.android.internal.os.SomeArgs;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.FastPrintWriter;
-import com.android.internal.util.Preconditions;
 import com.android.internal.util.function.pooled.PooledLambda;
 import com.android.org.conscrypt.OpenSSLSocketImpl;
 import com.android.org.conscrypt.TrustedCertificateStore;
@@ -5324,16 +5323,6 @@
         }
     }
 
-    /**
-     * Updates the application info.
-     *
-     * This only works in the system process. Must be called on the main thread.
-     */
-    public void handleSystemApplicationInfoChanged(@NonNull ApplicationInfo ai) {
-        Preconditions.checkState(mSystemThread, "Must only be called in the system process");
-        handleApplicationInfoChanged(ai);
-    }
-
     void handleApplicationInfoChanged(@NonNull final ApplicationInfo ai) {
         // Updates triggered by package installation go through a package update
         // receiver. Here we try to capture ApplicationInfo changes that are
diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java
index c879db8..2c435a2 100644
--- a/core/java/android/app/ActivityView.java
+++ b/core/java/android/app/ActivityView.java
@@ -31,10 +31,11 @@
 import android.util.Log;
 import android.view.IWindowManager;
 import android.view.InputDevice;
-import android.view.InputEvent;
 import android.view.MotionEvent;
 import android.view.Surface;
+import android.view.SurfaceControl;
 import android.view.SurfaceHolder;
+import android.view.SurfaceSession;
 import android.view.SurfaceView;
 import android.view.ViewGroup;
 import android.view.WindowManager;
@@ -59,12 +60,16 @@
 
     private VirtualDisplay mVirtualDisplay;
     private final SurfaceView mSurfaceView;
-    private Surface mSurface;
+
+    /**
+     * This is the root surface for the VirtualDisplay. The VirtualDisplay child surfaces will be
+     * re-parented to this surface. This will also be a child of the SurfaceView's SurfaceControl.
+     */
+    private SurfaceControl mRootSurfaceControl;
 
     private final SurfaceCallback mSurfaceCallback;
     private StateCallback mActivityViewCallback;
 
-    private IActivityManager mActivityManager;
     private IActivityTaskManager mActivityTaskManager;
     private IInputForwarder mInputForwarder;
     // Temp container to store view coordinates on screen.
@@ -75,6 +80,9 @@
     private final CloseGuard mGuard = CloseGuard.get();
     private boolean mOpened; // Protected by mGuard.
 
+    private final SurfaceControl.Transaction mTmpTransaction = new SurfaceControl.Transaction();
+    private Surface mTmpSurface = new Surface();
+
     @UnsupportedAppUsage
     public ActivityView(Context context) {
         this(context, null /* attrs */);
@@ -87,7 +95,6 @@
     public ActivityView(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
 
-        mActivityManager = ActivityManager.getService();
         mActivityTaskManager = ActivityTaskManager.getService();
         mSurfaceView = new SurfaceView(context);
         mSurfaceCallback = new SurfaceCallback();
@@ -283,9 +290,14 @@
         return super.onGenericMotionEvent(event);
     }
 
-    private boolean injectInputEvent(InputEvent event) {
+    private boolean injectInputEvent(MotionEvent event) {
         if (mInputForwarder != null) {
             try {
+                // The touch event that the ActivityView gets is in View space, but the event needs
+                // to get forwarded in screen space. This offsets the touch event by the location
+                // the ActivityView is on screen and sends it to the input forwarder.
+                getLocationOnScreen(mLocationOnScreen);
+                event.offsetLocation(mLocationOnScreen[0], mLocationOnScreen[1]);
                 return mInputForwarder.forwardEvent(event);
             } catch (RemoteException e) {
                 e.rethrowAsRuntimeException();
@@ -297,14 +309,19 @@
     private class SurfaceCallback implements SurfaceHolder.Callback {
         @Override
         public void surfaceCreated(SurfaceHolder surfaceHolder) {
-            mSurface = mSurfaceView.getHolder().getSurface();
+            mTmpSurface = new Surface();
             if (mVirtualDisplay == null) {
-                initVirtualDisplay();
+                initVirtualDisplay(new SurfaceSession(surfaceHolder.getSurface()));
                 if (mVirtualDisplay != null && mActivityViewCallback != null) {
                     mActivityViewCallback.onActivityViewReady(ActivityView.this);
                 }
             } else {
-                mVirtualDisplay.setSurface(surfaceHolder.getSurface());
+                // TODO (b/119209373): DisplayManager determines if a VirtualDisplay is on by
+                // whether it has a surface. Setting a fake surface here so DisplayManager will
+                // consider this display on.
+                mVirtualDisplay.setSurface(mTmpSurface);
+                mTmpTransaction.reparent(mRootSurfaceControl,
+                        mSurfaceView.getSurfaceControl().getHandle()).apply();
             }
             updateLocation();
         }
@@ -319,8 +336,8 @@
 
         @Override
         public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
-            mSurface.release();
-            mSurface = null;
+            mTmpSurface.release();
+            mTmpSurface = null;
             if (mVirtualDisplay != null) {
                 mVirtualDisplay.setSurface(null);
             }
@@ -328,7 +345,7 @@
         }
     }
 
-    private void initVirtualDisplay() {
+    private void initVirtualDisplay(SurfaceSession surfaceSession) {
         if (mVirtualDisplay != null) {
             throw new IllegalStateException("Trying to initialize for the second time.");
         }
@@ -336,9 +353,13 @@
         final int width = mSurfaceView.getWidth();
         final int height = mSurfaceView.getHeight();
         final DisplayManager displayManager = mContext.getSystemService(DisplayManager.class);
+
+        // TODO (b/119209373): DisplayManager determines if a VirtualDisplay is on by
+        // whether it has a surface. Setting a fake surface here so DisplayManager will consider
+        // this display on.
         mVirtualDisplay = displayManager.createVirtualDisplay(
                 DISPLAY_NAME + "@" + System.identityHashCode(this),
-                width, height, getBaseDisplayDensity(), mSurface,
+                width, height, getBaseDisplayDensity(), mTmpSurface,
                 DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC
                         | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY);
         if (mVirtualDisplay == null) {
@@ -348,11 +369,20 @@
 
         final int displayId = mVirtualDisplay.getDisplay().getDisplayId();
         final IWindowManager wm = WindowManagerGlobal.getWindowManagerService();
+
+        mRootSurfaceControl = new SurfaceControl.Builder(surfaceSession)
+                .setContainerLayer(true)
+                .setName(DISPLAY_NAME)
+                .build();
+
         try {
+            wm.reparentDisplayContent(displayId, mRootSurfaceControl.getHandle());
             wm.dontOverrideDisplayInfo(displayId);
         } catch (RemoteException e) {
             e.rethrowAsRuntimeException();
         }
+
+        mTmpTransaction.show(mRootSurfaceControl).apply();
         mInputForwarder = InputManager.getInstance().createInputForwarder(displayId);
         mTaskStackListener = new TaskStackListenerImpl();
         try {
@@ -392,9 +422,9 @@
             displayReleased = false;
         }
 
-        if (mSurface != null) {
-            mSurface.release();
-            mSurface = null;
+        if (mTmpSurface != null) {
+            mTmpSurface.release();
+            mTmpSurface = null;
         }
 
         if (displayReleased && mActivityViewCallback != null) {
diff --git a/core/java/android/app/AlarmManager.java b/core/java/android/app/AlarmManager.java
index 9b13420..2f0f14aa 100644
--- a/core/java/android/app/AlarmManager.java
+++ b/core/java/android/app/AlarmManager.java
@@ -35,7 +35,7 @@
 import android.util.Log;
 import android.util.proto.ProtoOutputStream;
 
-import libcore.util.ZoneInfoDB;
+import libcore.timezone.ZoneInfoDB;
 
 import java.io.IOException;
 import java.lang.annotation.Retention;
diff --git a/core/java/android/app/AppDetailsActivity.java b/core/java/android/app/AppDetailsActivity.java
index cd36e63..b71af88 100644
--- a/core/java/android/app/AppDetailsActivity.java
+++ b/core/java/android/app/AppDetailsActivity.java
@@ -16,6 +16,7 @@
 
 package android.app;
 
+import android.annotation.TestApi;
 import android.content.Intent;
 import android.os.Bundle;
 
@@ -24,7 +25,9 @@
  *
  * @hide
  */
+@TestApi
 public class AppDetailsActivity extends Activity {
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 0fb0f16..3069be6 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -464,9 +464,21 @@
     public static final int OP_ACTIVITY_RECOGNITION = 79;
     /** @hide Financial app sms read. */
     public static final int OP_SMS_FINANCIAL_TRANSACTIONS = 80;
+    /** @hide Read media of audio type. */
+    public static final int OP_READ_MEDIA_AUDIO = 81;
+    /** @hide Write media of audio type. */
+    public static final int OP_WRITE_MEDIA_AUDIO = 82;
+    /** @hide Read media of video type. */
+    public static final int OP_READ_MEDIA_VIDEO = 83;
+    /** @hide Write media of video type. */
+    public static final int OP_WRITE_MEDIA_VIDEO = 84;
+    /** @hide Read media of image type. */
+    public static final int OP_READ_MEDIA_IMAGES = 85;
+    /** @hide Write media of image type. */
+    public static final int OP_WRITE_MEDIA_IMAGES = 86;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int _NUM_OP = 81;
+    public static final int _NUM_OP = 87;
 
     /** Access to coarse location information. */
     public static final String OPSTR_COARSE_LOCATION = "android:coarse_location";
@@ -721,6 +733,19 @@
     public static final String OPSTR_SMS_FINANCIAL_TRANSACTIONS =
             "android:sms_financial_transactions";
 
+    /** @hide Read media of audio type. */
+    public static final String OPSTR_READ_MEDIA_AUDIO = "android:read_media_audio";
+    /** @hide Write media of audio type. */
+    public static final String OPSTR_WRITE_MEDIA_AUDIO = "android:write_media_audio";
+    /** @hide Read media of video type. */
+    public static final String OPSTR_READ_MEDIA_VIDEO = "android:read_media_video";
+    /** @hide Write media of video type. */
+    public static final String OPSTR_WRITE_MEDIA_VIDEO = "android:write_media_video";
+    /** @hide Read media of image type. */
+    public static final String OPSTR_READ_MEDIA_IMAGES = "android:read_media_images";
+    /** @hide Write media of image type. */
+    public static final String OPSTR_WRITE_MEDIA_IMAGES = "android:write_media_images";
+
     // Warning: If an permission is added here it also has to be added to
     // com.android.packageinstaller.permission.utils.EventLogger
     private static final int[] RUNTIME_AND_APPOP_PERMISSIONS_OPS = {
@@ -764,6 +789,14 @@
             OP_BODY_SENSORS,
             // Activity recognition
             OP_ACTIVITY_RECOGNITION,
+            // Aural
+            OP_READ_MEDIA_AUDIO,
+            OP_WRITE_MEDIA_AUDIO,
+            // Visual
+            OP_READ_MEDIA_VIDEO,
+            OP_WRITE_MEDIA_VIDEO,
+            OP_READ_MEDIA_IMAGES,
+            OP_WRITE_MEDIA_IMAGES,
 
             // APPOP PERMISSIONS
             OP_ACCESS_NOTIFICATIONS,
@@ -864,6 +897,12 @@
             OP_USE_BIOMETRIC,                   // BIOMETRIC
             OP_ACTIVITY_RECOGNITION,            // ACTIVITY_RECOGNITION
             OP_SMS_FINANCIAL_TRANSACTIONS,      // SMS_FINANCIAL_TRANSACTIONS
+            OP_READ_MEDIA_AUDIO,                // READ_MEDIA_AUDIO
+            OP_WRITE_MEDIA_AUDIO,               // WRITE_MEDIA_AUDIO
+            OP_READ_MEDIA_VIDEO,                // READ_MEDIA_VIDEO
+            OP_WRITE_MEDIA_VIDEO,               // WRITE_MEDIA_VIDEO
+            OP_READ_MEDIA_IMAGES,               // READ_MEDIA_IMAGES
+            OP_WRITE_MEDIA_IMAGES,              // WRITE_MEDIA_IMAGES
     };
 
     /**
@@ -951,6 +990,12 @@
             OPSTR_USE_BIOMETRIC,
             OPSTR_ACTIVITY_RECOGNITION,
             OPSTR_SMS_FINANCIAL_TRANSACTIONS,
+            OPSTR_READ_MEDIA_AUDIO,
+            OPSTR_WRITE_MEDIA_AUDIO,
+            OPSTR_READ_MEDIA_VIDEO,
+            OPSTR_WRITE_MEDIA_VIDEO,
+            OPSTR_READ_MEDIA_IMAGES,
+            OPSTR_WRITE_MEDIA_IMAGES,
     };
 
     /**
@@ -1039,6 +1084,12 @@
             "USE_BIOMETRIC",
             "ACTIVITY_RECOGNITION",
             "SMS_FINANCIAL_TRANSACTIONS",
+            "READ_MEDIA_AUDIO",
+            "WRITE_MEDIA_AUDIO",
+            "READ_MEDIA_VIDEO",
+            "WRITE_MEDIA_VIDEO",
+            "READ_MEDIA_IMAGES",
+            "WRITE_MEDIA_IMAGES",
     };
 
     /**
@@ -1128,6 +1179,12 @@
             Manifest.permission.USE_BIOMETRIC,
             Manifest.permission.ACTIVITY_RECOGNITION,
             Manifest.permission.SMS_FINANCIAL_TRANSACTIONS,
+            Manifest.permission.READ_MEDIA_AUDIO,
+            null, // no permission for OP_WRITE_MEDIA_AUDIO
+            Manifest.permission.READ_MEDIA_VIDEO,
+            null, // no permission for OP_WRITE_MEDIA_VIDEO
+            Manifest.permission.READ_MEDIA_IMAGES,
+            null, // no permission for OP_WRITE_MEDIA_IMAGES
     };
 
     /**
@@ -1217,6 +1274,12 @@
             null, // USE_BIOMETRIC
             null, // ACTIVITY_RECOGNITION
             UserManager.DISALLOW_SMS, // SMS_FINANCIAL_TRANSACTIONS
+            null, // READ_MEDIA_AUDIO
+            null, // WRITE_MEDIA_AUDIO
+            null, // READ_MEDIA_VIDEO
+            null, // WRITE_MEDIA_VIDEO
+            null, // READ_MEDIA_IMAGES
+            null, // WRITE_MEDIA_IMAGES
     };
 
     /**
@@ -1305,6 +1368,12 @@
             false, // USE_BIOMETRIC
             false, // ACTIVITY_RECOGNITION
             false, // SMS_FINANCIAL_TRANSACTIONS
+            false, // READ_MEDIA_AUDIO
+            false, // WRITE_MEDIA_AUDIO
+            false, // READ_MEDIA_VIDEO
+            false, // WRITE_MEDIA_VIDEO
+            false, // READ_MEDIA_IMAGES
+            false, // WRITE_MEDIA_IMAGES
     };
 
     /**
@@ -1392,6 +1461,12 @@
             AppOpsManager.MODE_ALLOWED, // USE_BIOMETRIC
             AppOpsManager.MODE_ALLOWED, // ACTIVITY_RECOGNITION
             AppOpsManager.MODE_DEFAULT, // SMS_FINANCIAL_TRANSACTIONS
+            AppOpsManager.MODE_ALLOWED, // READ_MEDIA_AUDIO
+            AppOpsManager.MODE_ERRORED, // WRITE_MEDIA_AUDIO
+            AppOpsManager.MODE_ALLOWED, // READ_MEDIA_VIDEO
+            AppOpsManager.MODE_ERRORED, // WRITE_MEDIA_VIDEO
+            AppOpsManager.MODE_ALLOWED, // READ_MEDIA_IMAGES
+            AppOpsManager.MODE_ERRORED, // WRITE_MEDIA_IMAGES
     };
 
     /**
@@ -1483,6 +1558,12 @@
             false, // USE_BIOMETRIC
             false, // ACTIVITY_RECOGNITION
             false, // SMS_FINANCIAL_TRANSACTIONS
+            false, // READ_MEDIA_AUDIO
+            false, // WRITE_MEDIA_AUDIO
+            false, // READ_MEDIA_VIDEO
+            false, // WRITE_MEDIA_VIDEO
+            false, // READ_MEDIA_IMAGES
+            false, // WRITE_MEDIA_IMAGES
     };
 
     /**
diff --git a/core/java/android/app/ApplicationLoaders.java b/core/java/android/app/ApplicationLoaders.java
index 30d6bee..9ef24c6 100644
--- a/core/java/android/app/ApplicationLoaders.java
+++ b/core/java/android/app/ApplicationLoaders.java
@@ -27,6 +27,7 @@
 import dalvik.system.PathClassLoader;
 
 import java.util.Collection;
+import java.util.List;
 
 /** @hide */
 public class ApplicationLoaders {
@@ -38,15 +39,25 @@
     ClassLoader getClassLoader(String zip, int targetSdkVersion, boolean isBundled,
                                String librarySearchPath, String libraryPermittedPath,
                                ClassLoader parent, String classLoaderName) {
+        return getClassLoaderWithSharedLibraries(zip, targetSdkVersion, isBundled,
+                              librarySearchPath, libraryPermittedPath, parent, classLoaderName,
+                              null);
+    }
+
+    ClassLoader getClassLoaderWithSharedLibraries(
+            String zip, int targetSdkVersion, boolean isBundled,
+            String librarySearchPath, String libraryPermittedPath,
+            ClassLoader parent, String classLoaderName,
+            List<ClassLoader> sharedLibraries) {
         // For normal usage the cache key used is the same as the zip path.
         return getClassLoader(zip, targetSdkVersion, isBundled, librarySearchPath,
-                              libraryPermittedPath, parent, zip, classLoaderName);
+                              libraryPermittedPath, parent, zip, classLoaderName, sharedLibraries);
     }
 
     private ClassLoader getClassLoader(String zip, int targetSdkVersion, boolean isBundled,
                                        String librarySearchPath, String libraryPermittedPath,
                                        ClassLoader parent, String cacheKey,
-                                       String classLoaderName) {
+                                       String classLoaderName, List<ClassLoader> sharedLibraries) {
         /*
          * This is the parent we use if they pass "null" in.  In theory
          * this should be the "system" class loader; in practice we
@@ -75,7 +86,7 @@
 
                 ClassLoader classloader = ClassLoaderFactory.createClassLoader(
                         zip,  librarySearchPath, libraryPermittedPath, parent,
-                        targetSdkVersion, isBundled, classLoaderName);
+                        targetSdkVersion, isBundled, classLoaderName, sharedLibraries);
 
                 Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
 
@@ -90,7 +101,7 @@
 
             Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, zip);
             ClassLoader loader = ClassLoaderFactory.createClassLoader(
-                    zip, null, parent, classLoaderName);
+                    zip, null, parent, classLoaderName, sharedLibraries);
             Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
             return loader;
         }
@@ -110,7 +121,7 @@
         // The cache key is passed separately to enable the stub WebView to be cached under the
         // stub's APK path, when the actual package path is the donor APK.
         return getClassLoader(packagePath, Build.VERSION.SDK_INT, false, libsPath, null, null,
-                              cacheKey, null /* classLoaderName */);
+                              cacheKey, null /* classLoaderName */, null /* sharedLibraries */);
     }
 
     /**
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 8bb704d..7312b2c 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -2046,8 +2046,6 @@
             StorageManager storage) {
         if (app.isInternal()) {
             return storage.findVolumeById(VolumeInfo.ID_PRIVATE_INTERNAL);
-        } else if (app.isExternalAsec()) {
-            return storage.getPrimaryPhysicalVolume();
         } else {
             return storage.findVolumeByUuid(app.volumeUuid);
         }
@@ -2983,4 +2981,13 @@
             throw e.rethrowAsRuntimeException();
         }
     }
+
+    @Override
+    public void sendDeviceCustomizationReadyBroadcast() {
+        try {
+            mPM.sendDeviceCustomizationReadyBroadcast();
+        } catch (RemoteException e) {
+            throw e.rethrowAsRuntimeException();
+        }
+    }
 }
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 9837deb..6f0b6c8 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -217,6 +217,8 @@
     private AutofillClient mAutofillClient = null;
     private boolean mIsAutofillCompatEnabled;
 
+    private boolean mIsContentCaptureSupported = false;
+
     private final Object mSync = new Object();
 
     @GuardedBy("mSync")
@@ -1724,6 +1726,24 @@
     }
 
     @Override
+    public void updateServiceGroup(@NonNull ServiceConnection conn, int group, int importance) {
+        if (conn == null) {
+            throw new IllegalArgumentException("connection is null");
+        }
+        if (mPackageInfo != null) {
+            IServiceConnection sd = mPackageInfo.forgetServiceDispatcher(
+                    getOuterContext(), conn);
+            try {
+                ActivityManager.getService().updateServiceGroup(sd, group, importance);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        } else {
+            throw new RuntimeException("Not supported in system context");
+        }
+    }
+
+    @Override
     public void unbindService(ServiceConnection conn) {
         if (conn == null) {
             throw new IllegalArgumentException("connection is null");
@@ -2358,6 +2378,18 @@
         mIsAutofillCompatEnabled = autofillCompatEnabled;
     }
 
+    /** @hide */
+    @Override
+    public boolean isContentCaptureSupported() {
+        return mIsContentCaptureSupported;
+    }
+
+    /** @hide */
+    @Override
+    public void setContentCaptureSupported(boolean supported) {
+        mIsContentCaptureSupported = supported;
+    }
+
     @UnsupportedAppUsage
     static ContextImpl createSystemContext(ActivityThread mainThread) {
         LoadedApk packageInfo = new LoadedApk(mainThread);
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index f27c667..88fb025 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -96,6 +96,7 @@
             String callingPackage);
     void unregisterUidObserver(in IUidObserver observer);
     boolean isUidActive(int uid, String callingPackage);
+    int getUidProcessState(int uid, in String callingPackage);
     // =============== End of transactions used on native side as well ============================
 
     // Special low-level communication with activity manager.
@@ -140,6 +141,7 @@
     int bindIsolatedService(in IApplicationThread caller, in IBinder token, in Intent service,
             in String resolvedType, in IServiceConnection connection, int flags,
             in String instanceName, in String callingPackage, int userId);
+    void updateServiceGroup(in IServiceConnection connection, int group, int importance);
     boolean unbindService(in IServiceConnection connection);
     void publishService(in IBinder token, in Intent intent, in IBinder service);
     void setDebugApp(in String packageName, boolean waitForDebugger, boolean persistent);
@@ -378,8 +380,6 @@
     void noteAlarmFinish(in IIntentSender sender, in WorkSource workSource, int sourceUid, in String tag);
     int getPackageProcessState(in String packageName, in String callingPackage);
     void updateDeviceOwner(in String packageName);
-    int getUidProcessState(int uid, in String callingPackage);
-
 
     // Start of N transactions
     // Start Binder transaction tracking for all applications.
diff --git a/core/java/android/app/IActivityTaskManager.aidl b/core/java/android/app/IActivityTaskManager.aidl
index 09b77d5..777a494 100644
--- a/core/java/android/app/IActivityTaskManager.aidl
+++ b/core/java/android/app/IActivityTaskManager.aidl
@@ -445,4 +445,9 @@
     void setPackageScreenCompatMode(in String packageName, int mode);
     boolean getPackageAskScreenCompat(in String packageName);
     void setPackageAskScreenCompat(in String packageName, boolean ask);
+
+    /**
+     * Clears launch params for given packages.
+     */
+    void clearLaunchParamsForPackages(in List<String> packageNames);
 }
diff --git a/core/java/android/app/IUidObserver.aidl b/core/java/android/app/IUidObserver.aidl
index ce88809..e116d98 100644
--- a/core/java/android/app/IUidObserver.aidl
+++ b/core/java/android/app/IUidObserver.aidl
@@ -43,8 +43,6 @@
      */
     void onUidIdle(int uid, boolean disabled);
 
-    // =============== End of transactions used on native side as well ============================
-
     /**
      * General report of a state change of an uid.
      *
@@ -55,6 +53,8 @@
      */
     void onUidStateChanged(int uid, int procState, long procStateSeq);
 
+    // =============== End of transactions used on native side as well ============================
+
     /**
      * Report when the cached state of a uid has changed.
      * If true, a uid has become cached -- that is, it has some active processes that are
diff --git a/core/java/android/app/IWallpaperManager.aidl b/core/java/android/app/IWallpaperManager.aidl
index 5ef4be1..3a2038d 100644
--- a/core/java/android/app/IWallpaperManager.aidl
+++ b/core/java/android/app/IWallpaperManager.aidl
@@ -87,24 +87,24 @@
 
     /**
      * Sets the dimension hint for the wallpaper. These hints indicate the desired
-     * minimum width and height for the wallpaper.
+     * minimum width and height for the wallpaper in a particular display.
      */
-    void setDimensionHints(in int width, in int height, in String callingPackage);
+    void setDimensionHints(in int width, in int height, in String callingPackage, int displayId);
 
     /**
-     * Returns the desired minimum width for the wallpaper.
+     * Returns the desired minimum width for the wallpaper in a particular display.
      */
-    int getWidthHint();
+    int getWidthHint(int displayId);
 
     /**
-     * Returns the desired minimum height for the wallpaper.
+     * Returns the desired minimum height for the wallpaper in a particular display.
      */
-    int getHeightHint();
+    int getHeightHint(int displayId);
 
     /**
      * Sets extra padding that we would like the wallpaper to have outside of the display.
      */
-    void setDisplayPadding(in Rect padding, in String callingPackage);
+    void setDisplayPadding(in Rect padding, in String callingPackage, int displayId);
 
     /**
      * Returns the name of the wallpaper. Private API.
@@ -159,5 +159,5 @@
     /**
      * Called from SystemUI when it shows the AoD UI.
      */
-    oneway void setInAmbientMode(boolean inAmbientMode, boolean animated);
+    oneway void setInAmbientMode(boolean inAmbientMode, long animationDuration);
 }
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index da4f77b..3f10754 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -29,6 +29,7 @@
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.SharedLibraryInfo;
 import android.content.pm.dex.ArtManager;
 import android.content.pm.split.SplitDependencyLoader;
 import android.content.res.AssetManager;
@@ -70,8 +71,10 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Enumeration;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Objects;
+import java.util.Set;
 
 final class IntentReceiverLeaked extends AndroidRuntimeException {
     @UnsupportedAppUsage
@@ -397,6 +400,24 @@
         makePaths(activityThread, false, aInfo, outZipPaths, null);
     }
 
+    private static void appendSharedLibrariesLibPathsIfNeeded(
+            List<SharedLibraryInfo> sharedLibraries, ApplicationInfo aInfo,
+            Set<String> outSeenPaths,
+            List<String> outLibPaths) {
+        if (sharedLibraries == null) {
+            return;
+        }
+        for (SharedLibraryInfo lib : sharedLibraries) {
+            List<String> paths = lib.getAllCodePaths();
+            outSeenPaths.addAll(paths);
+            for (String path : paths) {
+                appendApkLibPathIfNeeded(path, aInfo, outLibPaths);
+            }
+            appendSharedLibrariesLibPathsIfNeeded(
+                    lib.getDependencies(), aInfo, outSeenPaths, outLibPaths);
+        }
+    }
+
     public static void makePaths(ActivityThread activityThread,
                                  boolean isBundledApp,
                                  ApplicationInfo aInfo,
@@ -404,7 +425,6 @@
                                  List<String> outLibPaths) {
         final String appDir = aInfo.sourceDir;
         final String libDir = aInfo.nativeLibraryDir;
-        final String[] sharedLibraries = aInfo.sharedLibraryFiles;
 
         outZipPaths.clear();
         outZipPaths.add(appDir);
@@ -499,11 +519,19 @@
             }
         }
 
-        // Prepend the shared libraries, maintaining their original order where possible.
-        if (sharedLibraries != null) {
+        // Add the shared libraries native paths. The dex files in shared libraries will
+        // be resolved through shared library loaders, which are setup later.
+        Set<String> outSeenPaths = new LinkedHashSet<>();
+        appendSharedLibrariesLibPathsIfNeeded(
+                aInfo.sharedLibraryInfos, aInfo, outSeenPaths, outLibPaths);
+
+        // ApplicationInfo.sharedLibraryFiles is a public API, so anyone can change it.
+        // We prepend shared libraries that the package manager hasn't seen, maintaining their
+        // original order where possible.
+        if (aInfo.sharedLibraryFiles != null) {
             int index = 0;
-            for (String lib : sharedLibraries) {
-                if (!outZipPaths.contains(lib)) {
+            for (String lib : aInfo.sharedLibraryFiles) {
+                if (!outSeenPaths.contains(lib) && !outZipPaths.contains(lib)) {
                     outZipPaths.add(index, lib);
                     index++;
                     appendApkLibPathIfNeeded(lib, aInfo, outLibPaths);
@@ -631,6 +659,43 @@
         return mSplitLoader.getSplitPathsForSplit(splitName);
     }
 
+    /**
+     * Create a class loader for the {@code sharedLibrary}. Shared libraries are canonicalized,
+     * so if we already created a class loader with that shared library, we return it.
+     *
+     * Implementation notes: the canonicalization of shared libraries is something dex2oat
+     * also does.
+     */
+    ClassLoader createSharedLibraryLoader(SharedLibraryInfo sharedLibrary,
+            boolean isBundledApp, String librarySearchPath, String libraryPermittedPath) {
+        List<String> paths = sharedLibrary.getAllCodePaths();
+        List<ClassLoader> sharedLibraries = createSharedLibrariesLoaders(
+                sharedLibrary.getDependencies(), isBundledApp, librarySearchPath,
+                libraryPermittedPath);
+        final String jars = (paths.size() == 1) ? paths.get(0) :
+                TextUtils.join(File.pathSeparator, paths);
+
+        // Shared libraries get a null parent: this has the side effect of having canonicalized
+        // shared libraries using ApplicationLoaders cache, which is the behavior we want.
+        return ApplicationLoaders.getDefault().getClassLoaderWithSharedLibraries(jars,
+                    mApplicationInfo.targetSdkVersion, isBundledApp, librarySearchPath,
+                    libraryPermittedPath, /* parent */ null,
+                    /* classLoaderName */ null, sharedLibraries);
+    }
+
+    private List<ClassLoader> createSharedLibrariesLoaders(List<SharedLibraryInfo> sharedLibraries,
+            boolean isBundledApp, String librarySearchPath, String libraryPermittedPath) {
+        if (sharedLibraries == null) {
+            return null;
+        }
+        List<ClassLoader> loaders = new ArrayList<>();
+        for (SharedLibraryInfo info : sharedLibraries) {
+            loaders.add(createSharedLibraryLoader(
+                    info, isBundledApp, librarySearchPath, libraryPermittedPath));
+        }
+        return loaders;
+    }
+
     private void createOrUpdateClassLoaderLocked(List<String> addedPaths) {
         if (mPackageName.equals("android")) {
             // Note: This branch is taken for system server and we don't need to setup
@@ -759,10 +824,14 @@
             // as this is early and necessary.
             StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
 
-            mDefaultClassLoader = ApplicationLoaders.getDefault().getClassLoader(zip,
-                    mApplicationInfo.targetSdkVersion, isBundledApp, librarySearchPath,
+            List<ClassLoader> sharedLibraries = createSharedLibrariesLoaders(
+                    mApplicationInfo.sharedLibraryInfos, isBundledApp, librarySearchPath,
+                    libraryPermittedPath);
+
+            mDefaultClassLoader = ApplicationLoaders.getDefault().getClassLoaderWithSharedLibraries(
+                    zip, mApplicationInfo.targetSdkVersion, isBundledApp, librarySearchPath,
                     libraryPermittedPath, mBaseClassLoader,
-                    mApplicationInfo.classLoaderName);
+                    mApplicationInfo.classLoaderName, sharedLibraries);
             mAppComponentFactory = createAppFactory(mApplicationInfo, mDefaultClassLoader);
 
             StrictMode.setThreadPolicy(oldPolicy);
diff --git a/core/java/android/app/Notification.aidl b/core/java/android/app/Notification.aidl
index 9d8129c..8a7156e 100644
--- a/core/java/android/app/Notification.aidl
+++ b/core/java/android/app/Notification.aidl
@@ -17,3 +17,4 @@
 package android.app;
 
 parcelable Notification;
+parcelable Notification.Action;
\ No newline at end of file
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 450efdf..aa1b5af 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -1338,6 +1338,11 @@
     private int mBadgeIcon = BADGE_ICON_NONE;
 
     /**
+     * Determines whether the platform can generate contextual actions for a notification.
+     */
+    private boolean mAllowSystemGeneratedContextualActions = true;
+
+    /**
      * Structure to encapsulate a named action that can be shown as part of this notification.
      * It must include an icon, a label, and a {@link PendingIntent} to be fired when the action is
      * selected by the user.
@@ -1688,11 +1693,30 @@
             }
 
             /**
+             * Throws an NPE if we are building a contextual action missing one of the fields
+             * necessary to display the action.
+             */
+            private void checkContextualActionNullFields() {
+                if (mSemanticAction != SEMANTIC_ACTION_CONTEXTUAL_SUGGESTION) return;
+
+                if (mIcon == null) {
+                    throw new NullPointerException("Contextual Actions must contain a valid icon");
+                }
+
+                if (mIntent == null) {
+                    throw new NullPointerException(
+                            "Contextual Actions must contain a valid PendingIntent");
+                }
+            }
+
+            /**
              * Combine all of the options that have been set and return a new {@link Action}
              * object.
              * @return the built action
              */
             public Action build() {
+                checkContextualActionNullFields();
+
                 ArrayList<RemoteInput> dataOnlyInputs = new ArrayList<>();
                 RemoteInput[] previousDataInputs =
                     (RemoteInput[]) mExtras.getParcelableArray(EXTRA_DATA_ONLY_INPUTS);
@@ -2238,6 +2262,8 @@
         if (parcel.readInt() != 0) {
             mAppOverlayIntent = PendingIntent.CREATOR.createFromParcel(parcel);
         }
+
+        mAllowSystemGeneratedContextualActions = parcel.readBoolean();
     }
 
     @Override
@@ -2353,6 +2379,7 @@
         that.mSettingsText = this.mSettingsText;
         that.mGroupAlertBehavior = this.mGroupAlertBehavior;
         that.mAppOverlayIntent = this.mAppOverlayIntent;
+        that.mAllowSystemGeneratedContextualActions = this.mAllowSystemGeneratedContextualActions;
 
         if (!heavy) {
             that.lightenPayload(); // will clean out extras
@@ -2681,6 +2708,8 @@
             parcel.writeInt(0);
         }
 
+        parcel.writeBoolean(mAllowSystemGeneratedContextualActions);
+
         // mUsesStandardHeader is not written because it should be recomputed in listeners
     }
 
@@ -3101,6 +3130,10 @@
         return mAppOverlayIntent;
     }
 
+    public boolean getAllowSystemGeneratedContextualActions() {
+        return mAllowSystemGeneratedContextualActions;
+    }
+
     /**
      * The small icon representing this notification in the status bar and content view.
      *
@@ -3193,6 +3226,25 @@
     }
 
     /**
+     * Returns the actions that are contextual (marked as SEMANTIC_ACTION_CONTEXTUAL_SUGGESTION) out
+     * of the actions in this notification.
+     *
+     * @hide
+     */
+    public List<Notification.Action> getContextualActions() {
+        if (actions == null) return Collections.emptyList();
+
+        List<Notification.Action> contextualActions = new ArrayList<>();
+        for (Notification.Action action : actions) {
+            if (action.getSemanticAction()
+                    == Notification.Action.SEMANTIC_ACTION_CONTEXTUAL_SUGGESTION) {
+                contextualActions.add(action);
+            }
+        }
+        return contextualActions;
+    }
+
+    /**
      * Builder class for {@link Notification} objects.
      *
      * Provides a convenient way to set the various fields of a {@link Notification} and generate
@@ -3815,6 +3867,9 @@
          * The system UI may choose to display a heads-up notification, instead of
          * launching this intent, while the user is using the device.
          * </p>
+         * <p>Apps targeting {@link Build.VERSION_CODES#Q} and above will have to request
+         * a permission ({@link android.Manifest.permission#USE_FULL_SCREEN_INTENT}) in order to
+         * use full screen intents.</p>
          *
          * @param intent The pending intent to launch.
          * @param highPriority Passing true will cause this notification to be sent
@@ -4403,19 +4458,27 @@
             return bitmap;
         }
 
-        private void bindProfileBadge(RemoteViews contentView) {
+        private void bindProfileBadge(RemoteViews contentView, StandardTemplateParams p) {
             Bitmap profileBadge = getProfileBadge();
 
             if (profileBadge != null) {
                 contentView.setImageViewBitmap(R.id.profile_badge, profileBadge);
                 contentView.setViewVisibility(R.id.profile_badge, View.VISIBLE);
-                if (isColorized()) {
+                if (isColorized(p)) {
                     contentView.setDrawableTint(R.id.profile_badge, false,
-                            getPrimaryTextColor(), PorterDuff.Mode.SRC_ATOP);
+                            getPrimaryTextColor(p), PorterDuff.Mode.SRC_ATOP);
                 }
             }
         }
 
+        private void bindAlertedIcon(RemoteViews contentView, StandardTemplateParams p) {
+            contentView.setDrawableTint(
+                    R.id.alerted_icon,
+                    false /* targetBackground */,
+                    getNeutralColor(p),
+                    PorterDuff.Mode.SRC_ATOP);
+        }
+
         /**
          * @hide
          */
@@ -4474,16 +4537,6 @@
                     result);
         }
 
-        /**
-         * @param hasProgress whether the progress bar should be shown and set
-         * @param result
-         */
-        private RemoteViews applyStandardTemplate(int resId, boolean hasProgress,
-                TemplateBindResult result) {
-            return applyStandardTemplate(resId, mParams.reset().hasProgress(hasProgress)
-                    .fillTextsFrom(this), result);
-        }
-
         private RemoteViews applyStandardTemplate(int resId, StandardTemplateParams p,
                 TemplateBindResult result) {
             RemoteViews contentView = new BuilderRemoteViews(mContext.getApplicationInfo(), resId);
@@ -4491,15 +4544,15 @@
             resetStandardTemplate(contentView);
 
             final Bundle ex = mN.extras;
-            updateBackgroundColor(contentView);
-            bindNotificationHeader(contentView, p.ambient, p.headerTextSecondary);
+            updateBackgroundColor(contentView, p);
+            bindNotificationHeader(contentView, p);
             bindLargeIconAndReply(contentView, p, result);
-            boolean showProgress = handleProgressBar(p.hasProgress, contentView, ex);
+            boolean showProgress = handleProgressBar(contentView, ex, p);
             if (p.title != null) {
                 contentView.setViewVisibility(R.id.title, View.VISIBLE);
                 contentView.setTextViewText(R.id.title, processTextSpans(p.title));
                 if (!p.ambient) {
-                    setTextViewColorPrimary(contentView, R.id.title);
+                    setTextViewColorPrimary(contentView, R.id.title, p);
                 }
                 contentView.setViewLayoutWidth(R.id.title, showProgress
                         ? ViewGroup.LayoutParams.WRAP_CONTENT
@@ -4510,7 +4563,7 @@
                         : com.android.internal.R.id.text;
                 contentView.setTextViewText(textId, processTextSpans(p.text));
                 if (!p.ambient) {
-                    setTextViewColorSecondary(contentView, textId);
+                    setTextViewColorSecondary(contentView, textId, p);
                 }
                 contentView.setViewVisibility(textId, View.VISIBLE);
             }
@@ -4527,8 +4580,9 @@
             return text;
         }
 
-        private void setTextViewColorPrimary(RemoteViews contentView, int id) {
-            ensureColors();
+        private void setTextViewColorPrimary(RemoteViews contentView, int id,
+                StandardTemplateParams p) {
+            ensureColors(p);
             contentView.setTextColor(id, mPrimaryTextColor);
         }
 
@@ -4537,42 +4591,63 @@
         }
 
         /**
-         * @return the primary text color
+         * Return the primary text color using the existing template params
          * @hide
          */
         @VisibleForTesting
         public int getPrimaryTextColor() {
-            ensureColors();
+            return getPrimaryTextColor(mParams);
+        }
+
+        /**
+         * @param p the template params to inflate this with
+         * @return the primary text color
+         * @hide
+         */
+        @VisibleForTesting
+        public int getPrimaryTextColor(StandardTemplateParams p) {
+            ensureColors(p);
             return mPrimaryTextColor;
         }
 
         /**
-         * @return the secondary text color
+         * Return the secondary text color using the existing template params
          * @hide
          */
         @VisibleForTesting
         public int getSecondaryTextColor() {
-            ensureColors();
+            return getSecondaryTextColor(mParams);
+        }
+
+        /**
+         * @param p the template params to inflate this with
+         * @return the secondary text color
+         * @hide
+         */
+        @VisibleForTesting
+        public int getSecondaryTextColor(StandardTemplateParams p) {
+            ensureColors(p);
             return mSecondaryTextColor;
         }
 
-        private void setTextViewColorSecondary(RemoteViews contentView, int id) {
-            ensureColors();
+        private void setTextViewColorSecondary(RemoteViews contentView, int id,
+                StandardTemplateParams p) {
+            ensureColors(p);
             contentView.setTextColor(id, mSecondaryTextColor);
         }
 
-        private void ensureColors() {
-            int backgroundColor = getBackgroundColor();
+        private void ensureColors(StandardTemplateParams p) {
+            int backgroundColor = getBackgroundColor(p);
             if (mPrimaryTextColor == COLOR_INVALID
                     || mSecondaryTextColor == COLOR_INVALID
                     || mTextColorsAreForBackground != backgroundColor) {
                 mTextColorsAreForBackground = backgroundColor;
-                if (!hasForegroundColor() || !isColorized()) {
+                if (!hasForegroundColor() || !isColorized(p)) {
                     mPrimaryTextColor = ContrastColorUtil.resolvePrimaryColor(mContext,
                             backgroundColor, mInNightMode);
                     mSecondaryTextColor = ContrastColorUtil.resolveSecondaryColor(mContext,
                             backgroundColor, mInNightMode);
-                    if (backgroundColor != COLOR_DEFAULT && isColorized()) {
+                    if (backgroundColor != COLOR_DEFAULT && isColorized(p)) {
                         mPrimaryTextColor = ContrastColorUtil.findAlphaToMeetContrast(
                                 mPrimaryTextColor, backgroundColor, 4.5);
                         mSecondaryTextColor = ContrastColorUtil.findAlphaToMeetContrast(
@@ -4640,10 +4715,11 @@
             }
         }
 
-        private void updateBackgroundColor(RemoteViews contentView) {
-            if (isColorized()) {
+        private void updateBackgroundColor(RemoteViews contentView,
+                StandardTemplateParams p) {
+            if (isColorized(p)) {
                 contentView.setInt(R.id.status_bar_latest_event_content, "setBackgroundColor",
-                        getBackgroundColor());
+                        getBackgroundColor(p));
             } else {
                 // Clear it!
                 contentView.setInt(R.id.status_bar_latest_event_content, "setBackgroundResource",
@@ -4666,19 +4742,20 @@
             remoteView.setInt(R.id.notification_main_column, "setMinimumHeight", minHeight);
         }
 
-        private boolean handleProgressBar(boolean hasProgress, RemoteViews contentView, Bundle ex) {
+        private boolean handleProgressBar(RemoteViews contentView, Bundle ex,
+                StandardTemplateParams p) {
             final int max = ex.getInt(EXTRA_PROGRESS_MAX, 0);
             final int progress = ex.getInt(EXTRA_PROGRESS, 0);
             final boolean ind = ex.getBoolean(EXTRA_PROGRESS_INDETERMINATE);
-            if (hasProgress && (max != 0 || ind)) {
+            if (p.hasProgress && (max != 0 || ind)) {
                 contentView.setViewVisibility(com.android.internal.R.id.progress, View.VISIBLE);
                 contentView.setProgressBar(
                         R.id.progress, max, progress, ind);
                 contentView.setProgressBackgroundTintList(
                         R.id.progress, ColorStateList.valueOf(mContext.getColor(
                                 R.color.notification_progress_background_color)));
-                if (mN.color != COLOR_DEFAULT) {
-                    ColorStateList colorStateList = ColorStateList.valueOf(resolveContrastColor());
+                if (getRawColor(p) != COLOR_DEFAULT) {
+                    ColorStateList colorStateList = ColorStateList.valueOf(resolveContrastColor(p));
                     contentView.setProgressTintList(R.id.progress, colorStateList);
                     contentView.setProgressIndeterminateTintList(R.id.progress, colorStateList);
                 }
@@ -4691,8 +4768,8 @@
 
         private void bindLargeIconAndReply(RemoteViews contentView, StandardTemplateParams p,
                 TemplateBindResult result) {
-            boolean largeIconShown = bindLargeIcon(contentView, p.hideLargeIcon || p.ambient);
-            boolean replyIconShown = bindReplyIcon(contentView, p.hideReplyIcon || p.ambient);
+            boolean largeIconShown = bindLargeIcon(contentView, p);
+            boolean replyIconShown = bindReplyIcon(contentView, p);
             contentView.setViewVisibility(R.id.right_icon_container,
                     largeIconShown || replyIconShown ? View.VISIBLE : View.GONE);
             int marginEnd = calculateMarginEnd(largeIconShown, replyIconShown);
@@ -4740,15 +4817,15 @@
          * Bind the large icon.
          * @return if the largeIcon is visible
          */
-        private boolean bindLargeIcon(RemoteViews contentView, boolean hideLargeIcon) {
+        private boolean bindLargeIcon(RemoteViews contentView, StandardTemplateParams p) {
             if (mN.mLargeIcon == null && mN.largeIcon != null) {
                 mN.mLargeIcon = Icon.createWithBitmap(mN.largeIcon);
             }
-            boolean showLargeIcon = mN.mLargeIcon != null && !hideLargeIcon;
+            boolean showLargeIcon = mN.mLargeIcon != null && !p.hideLargeIcon && !p.ambient;
             if (showLargeIcon) {
                 contentView.setViewVisibility(R.id.right_icon, View.VISIBLE);
                 contentView.setImageViewIcon(R.id.right_icon, mN.mLargeIcon);
-                processLargeLegacyIcon(mN.mLargeIcon, contentView);
+                processLargeLegacyIcon(mN.mLargeIcon, contentView, p);
             }
             return showLargeIcon;
         }
@@ -4757,8 +4834,8 @@
          * Bind the reply icon.
          * @return if the reply icon is visible
          */
-        private boolean bindReplyIcon(RemoteViews contentView, boolean hideReplyIcon) {
-            boolean actionVisible = !hideReplyIcon;
+        private boolean bindReplyIcon(RemoteViews contentView, StandardTemplateParams p) {
+            boolean actionVisible = !p.hideReplyIcon && !p.ambient;
             Action action = null;
             if (actionVisible) {
                 action = findReplyAction();
@@ -4768,7 +4845,7 @@
                 contentView.setViewVisibility(R.id.reply_icon_action, View.VISIBLE);
                 contentView.setDrawableTint(R.id.reply_icon_action,
                         false /* targetBackground */,
-                        getNeutralColor(),
+                        getNeutralColor(p),
                         PorterDuff.Mode.SRC_ATOP);
                 contentView.setOnClickPendingIntent(R.id.reply_icon_action, action.actionIntent);
                 contentView.setRemoteInputs(R.id.reply_icon_action, action.mRemoteInputs);
@@ -4795,41 +4872,42 @@
             return null;
         }
 
-        private void bindNotificationHeader(RemoteViews contentView, boolean ambient,
-                CharSequence secondaryHeaderText) {
-            bindSmallIcon(contentView, ambient);
-            bindHeaderAppName(contentView, ambient);
-            if (!ambient) {
+        private void bindNotificationHeader(RemoteViews contentView, StandardTemplateParams p) {
+            bindSmallIcon(contentView, p);
+            bindHeaderAppName(contentView, p);
+            if (!p.ambient) {
                 // Ambient view does not have these
-                bindHeaderText(contentView);
-                bindHeaderTextSecondary(contentView, secondaryHeaderText);
-                bindHeaderChronometerAndTime(contentView);
-                bindProfileBadge(contentView);
+                bindHeaderText(contentView, p);
+                bindHeaderTextSecondary(contentView, p);
+                bindHeaderChronometerAndTime(contentView, p);
+                bindProfileBadge(contentView, p);
+                bindAlertedIcon(contentView, p);
             }
-            bindActivePermissions(contentView, ambient);
-            bindExpandButton(contentView);
+            bindActivePermissions(contentView, p);
+            bindExpandButton(contentView, p);
             mN.mUsesStandardHeader = true;
         }
 
-        private void bindActivePermissions(RemoteViews contentView, boolean ambient) {
-            int color = ambient ? resolveAmbientColor() : getNeutralColor();
+        private void bindActivePermissions(RemoteViews contentView, StandardTemplateParams p) {
+            int color = p.ambient ? resolveAmbientColor(p) : getNeutralColor(p);
             contentView.setDrawableTint(R.id.camera, false, color, PorterDuff.Mode.SRC_ATOP);
             contentView.setDrawableTint(R.id.mic, false, color, PorterDuff.Mode.SRC_ATOP);
             contentView.setDrawableTint(R.id.overlay, false, color, PorterDuff.Mode.SRC_ATOP);
         }
 
-        private void bindExpandButton(RemoteViews contentView) {
-            int color = isColorized() ? getPrimaryTextColor() : getSecondaryTextColor();
+        private void bindExpandButton(RemoteViews contentView, StandardTemplateParams p) {
+            int color = isColorized(p) ? getPrimaryTextColor(p) : getSecondaryTextColor(p);
             contentView.setDrawableTint(R.id.expand_button, false, color,
                     PorterDuff.Mode.SRC_ATOP);
             contentView.setInt(R.id.notification_header, "setOriginalNotificationColor",
                     color);
         }
 
-        private void bindHeaderChronometerAndTime(RemoteViews contentView) {
+        private void bindHeaderChronometerAndTime(RemoteViews contentView,
+                StandardTemplateParams p) {
             if (showsTimeOrChronometer()) {
                 contentView.setViewVisibility(R.id.time_divider, View.VISIBLE);
-                setTextViewColorSecondary(contentView, R.id.time_divider);
+                setTextViewColorSecondary(contentView, R.id.time_divider, p);
                 if (mN.extras.getBoolean(EXTRA_SHOW_CHRONOMETER)) {
                     contentView.setViewVisibility(R.id.chronometer, View.VISIBLE);
                     contentView.setLong(R.id.chronometer, "setBase",
@@ -4837,11 +4915,11 @@
                     contentView.setBoolean(R.id.chronometer, "setStarted", true);
                     boolean countsDown = mN.extras.getBoolean(EXTRA_CHRONOMETER_COUNT_DOWN);
                     contentView.setChronometerCountDown(R.id.chronometer, countsDown);
-                    setTextViewColorSecondary(contentView, R.id.chronometer);
+                    setTextViewColorSecondary(contentView, R.id.chronometer, p);
                 } else {
                     contentView.setViewVisibility(R.id.time, View.VISIBLE);
                     contentView.setLong(R.id.time, "setTime", mN.when);
-                    setTextViewColorSecondary(contentView, R.id.time);
+                    setTextViewColorSecondary(contentView, R.id.time, p);
                 }
             } else {
                 // We still want a time to be set but gone, such that we can show and hide it
@@ -4850,36 +4928,36 @@
             }
         }
 
-        private void bindHeaderText(RemoteViews contentView) {
-            CharSequence headerText = mN.extras.getCharSequence(EXTRA_SUB_TEXT);
-            if (headerText == null && mStyle != null && mStyle.mSummaryTextSet
+        private void bindHeaderText(RemoteViews contentView, StandardTemplateParams p) {
+            CharSequence summaryText = p.summaryText;
+            if (summaryText == null && mStyle != null && mStyle.mSummaryTextSet
                     && mStyle.hasSummaryInHeader()) {
-                headerText = mStyle.mSummaryText;
+                summaryText = mStyle.mSummaryText;
             }
-            if (headerText == null
+            if (summaryText == null
                     && mContext.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N
                     && mN.extras.getCharSequence(EXTRA_INFO_TEXT) != null) {
-                headerText = mN.extras.getCharSequence(EXTRA_INFO_TEXT);
+                summaryText = mN.extras.getCharSequence(EXTRA_INFO_TEXT);
             }
-            if (headerText != null) {
+            if (summaryText != null) {
                 // TODO: Remove the span entirely to only have the string with propper formating.
                 contentView.setTextViewText(R.id.header_text, processTextSpans(
-                        processLegacyText(headerText)));
-                setTextViewColorSecondary(contentView, R.id.header_text);
+                        processLegacyText(summaryText)));
+                setTextViewColorSecondary(contentView, R.id.header_text, p);
                 contentView.setViewVisibility(R.id.header_text, View.VISIBLE);
                 contentView.setViewVisibility(R.id.header_text_divider, View.VISIBLE);
-                setTextViewColorSecondary(contentView, R.id.header_text_divider);
+                setTextViewColorSecondary(contentView, R.id.header_text_divider, p);
             }
         }
 
-        private void bindHeaderTextSecondary(RemoteViews contentView, CharSequence secondaryText) {
-            if (!TextUtils.isEmpty(secondaryText)) {
+        private void bindHeaderTextSecondary(RemoteViews contentView, StandardTemplateParams p) {
+            if (!TextUtils.isEmpty(p.headerTextSecondary)) {
                 contentView.setTextViewText(R.id.header_text_secondary, processTextSpans(
-                        processLegacyText(secondaryText)));
-                setTextViewColorSecondary(contentView, R.id.header_text_secondary);
+                        processLegacyText(p.headerTextSecondary)));
+                setTextViewColorSecondary(contentView, R.id.header_text_secondary, p);
                 contentView.setViewVisibility(R.id.header_text_secondary, View.VISIBLE);
                 contentView.setViewVisibility(R.id.header_text_secondary_divider, View.VISIBLE);
-                setTextViewColorSecondary(contentView, R.id.header_text_secondary_divider);
+                setTextViewColorSecondary(contentView, R.id.header_text_secondary_divider, p);
             }
         }
 
@@ -4917,23 +4995,27 @@
 
             return String.valueOf(name);
         }
-        private void bindHeaderAppName(RemoteViews contentView, boolean ambient) {
+        private void bindHeaderAppName(RemoteViews contentView, StandardTemplateParams p) {
             contentView.setTextViewText(R.id.app_name_text, loadHeaderAppName());
-            if (isColorized() && !ambient) {
-                setTextViewColorPrimary(contentView, R.id.app_name_text);
+            if (isColorized(p)) {
+                setTextViewColorPrimary(contentView, R.id.app_name_text, p);
             } else {
                 contentView.setTextColor(R.id.app_name_text,
-                        ambient ? resolveAmbientColor() : getSecondaryTextColor());
+                        p.ambient ? resolveAmbientColor(p) : getSecondaryTextColor(p));
             }
         }
 
-        private void bindSmallIcon(RemoteViews contentView, boolean ambient) {
+        private boolean isColorized(StandardTemplateParams p) {
+            return p.allowColorization && !p.ambient && mN.isColorized();
+        }
+
+        private void bindSmallIcon(RemoteViews contentView, StandardTemplateParams p) {
             if (mN.mSmallIcon == null && mN.icon != 0) {
                 mN.mSmallIcon = Icon.createWithResource(mContext, mN.icon);
             }
             contentView.setImageViewIcon(R.id.icon, mN.mSmallIcon);
             contentView.setInt(R.id.icon, "setImageLevel", mN.iconLevel);
-            processSmallIconColor(mN.mSmallIcon, contentView, ambient);
+            processSmallIconColor(mN.mSmallIcon, contentView, p);
         }
 
         /**
@@ -5008,8 +5090,7 @@
                     boolean actionHasValidInput = hasValidRemoteInput(action);
                     validRemoteInput |= actionHasValidInput;
 
-                    final RemoteViews button = generateActionButton(action, emphazisedMode,
-                            p.ambient);
+                    final RemoteViews button = generateActionButton(action, emphazisedMode, p);
                     if (actionHasValidInput && !emphazisedMode) {
                         // Clear the drawable
                         button.setInt(R.id.action0, "setBackgroundResource", 0);
@@ -5030,20 +5111,20 @@
                         View.VISIBLE);
                 big.setTextViewText(R.id.notification_material_reply_text_1,
                         processTextSpans(replyText[0]));
-                setTextViewColorSecondary(big, R.id.notification_material_reply_text_1);
+                setTextViewColorSecondary(big, R.id.notification_material_reply_text_1, p);
                 big.setViewVisibility(R.id.notification_material_reply_progress,
                         showSpinner ? View.VISIBLE : View.GONE);
                 big.setProgressIndeterminateTintList(
                         R.id.notification_material_reply_progress,
                         ColorStateList.valueOf(
-                                isColorized() ? getPrimaryTextColor() : resolveContrastColor()));
+                                isColorized(p) ? getPrimaryTextColor(p) : resolveContrastColor(p)));
 
                 if (replyText.length > 1 && !TextUtils.isEmpty(replyText[1])
                         && p.maxRemoteInputHistory > 1) {
                     big.setViewVisibility(R.id.notification_material_reply_text_2, View.VISIBLE);
                     big.setTextViewText(R.id.notification_material_reply_text_2,
                             processTextSpans(replyText[1]));
-                    setTextViewColorSecondary(big, R.id.notification_material_reply_text_2);
+                    setTextViewColorSecondary(big, R.id.notification_material_reply_text_2, p);
 
                     if (replyText.length > 2 && !TextUtils.isEmpty(replyText[2])
                             && p.maxRemoteInputHistory > 2) {
@@ -5051,7 +5132,7 @@
                                 R.id.notification_material_reply_text_3, View.VISIBLE);
                         big.setTextViewText(R.id.notification_material_reply_text_3,
                                 processTextSpans(replyText[2]));
-                        setTextViewColorSecondary(big, R.id.notification_material_reply_text_3);
+                        setTextViewColorSecondary(big, R.id.notification_material_reply_text_3, p);
                     }
                 }
             }
@@ -5142,18 +5223,23 @@
          * @hide
          */
         public RemoteViews makeNotificationHeader(boolean ambient) {
-            Boolean colorized = (Boolean) mN.extras.get(EXTRA_COLORIZED);
-            mN.extras.putBoolean(EXTRA_COLORIZED, false);
+            return makeNotificationHeader(mParams.reset().ambient(ambient).fillTextsFrom(this));
+        }
+
+        /**
+         * Construct a RemoteViews for the final notification header only. This will not be
+         * colorized.
+         *
+         * @param p the template params to inflate this with
+         */
+        private RemoteViews makeNotificationHeader(StandardTemplateParams p) {
+            // Headers on their own are never colorized
+            p.disallowColorization();
             RemoteViews header = new BuilderRemoteViews(mContext.getApplicationInfo(),
-                    ambient ? R.layout.notification_template_ambient_header
+                    p.ambient ? R.layout.notification_template_ambient_header
                             : R.layout.notification_template_header);
             resetNotificationHeader(header);
-            bindNotificationHeader(header, ambient, null);
-            if (colorized != null) {
-                mN.extras.putBoolean(EXTRA_COLORIZED, colorized);
-            } else {
-                mN.extras.remove(EXTRA_COLORIZED);
-            }
+            bindNotificationHeader(header, p);
             return header;
         }
 
@@ -5296,24 +5382,15 @@
          * @hide
          */
         public RemoteViews makeLowPriorityContentView(boolean useRegularSubtext) {
-            int color = mN.color;
-            mN.color = COLOR_DEFAULT;
-            CharSequence summary = mN.extras.getCharSequence(EXTRA_SUB_TEXT);
-            if (!useRegularSubtext || TextUtils.isEmpty(summary)) {
-                CharSequence newSummary = createSummaryText();
-                if (!TextUtils.isEmpty(newSummary)) {
-                    mN.extras.putCharSequence(EXTRA_SUB_TEXT, newSummary);
-                }
+            StandardTemplateParams p = mParams.reset()
+                    .forceDefaultColor()
+                    .ambient(false)
+                    .fillTextsFrom(this);
+            if (!useRegularSubtext || TextUtils.isEmpty(mParams.summaryText)) {
+                p.summaryText(createSummaryText());
             }
-
-            RemoteViews header = makeNotificationHeader(false /* ambient */);
+            RemoteViews header = makeNotificationHeader(p);
             header.setBoolean(R.id.notification_header, "setAcceptAllTouches", true);
-            if (summary != null) {
-                mN.extras.putCharSequence(EXTRA_SUB_TEXT, summary);
-            } else {
-                mN.extras.remove(EXTRA_SUB_TEXT);
-            }
-            mN.color = color;
             return header;
         }
 
@@ -5342,7 +5419,7 @@
         }
 
         private RemoteViews generateActionButton(Action action, boolean emphazisedMode,
-                boolean ambient) {
+                StandardTemplateParams p) {
             final boolean tombstone = (action.actionIntent == null);
             RemoteViews button = new BuilderRemoteViews(mContext.getApplicationInfo(),
                     emphazisedMode ? getEmphasizedActionLayoutResource()
@@ -5359,7 +5436,7 @@
                 // change the background bgColor
                 CharSequence title = action.title;
                 ColorStateList[] outResultColor = null;
-                int background = resolveBackgroundColor();
+                int background = resolveBackgroundColor(p);
                 if (isLegacy()) {
                     title = ContrastColorUtil.clearColorSpans(title);
                 } else {
@@ -5367,7 +5444,7 @@
                     title = ensureColorSpanContrast(title, background, outResultColor);
                 }
                 button.setTextViewText(R.id.action0, processTextSpans(title));
-                setTextViewColorPrimary(button, R.id.action0);
+                setTextViewColorPrimary(button, R.id.action0, p);
                 int rippleColor;
                 boolean hasColorOverride = outResultColor != null && outResultColor[0] != null;
                 if (hasColorOverride) {
@@ -5378,11 +5455,12 @@
                             background, mInNightMode);
                     button.setTextColor(R.id.action0, textColor);
                     rippleColor = textColor;
-                } else if (mN.color != COLOR_DEFAULT && !isColorized() && mTintActionButtons) {
-                    rippleColor = resolveContrastColor();
+                } else if (getRawColor(p) != COLOR_DEFAULT && !isColorized(p)
+                        && mTintActionButtons) {
+                    rippleColor = resolveContrastColor(p);
                     button.setTextColor(R.id.action0, rippleColor);
                 } else {
-                    rippleColor = getPrimaryTextColor();
+                    rippleColor = getPrimaryTextColor(p);
                 }
                 // We only want about 20% alpha for the ripple
                 rippleColor = (rippleColor & 0x00ffffff) | 0x33000000;
@@ -5394,13 +5472,15 @@
             } else {
                 button.setTextViewText(R.id.action0, processTextSpans(
                         processLegacyText(action.title)));
-                if (isColorized() && !ambient) {
-                    setTextViewColorPrimary(button, R.id.action0);
-                } else if (mN.color != COLOR_DEFAULT && mTintActionButtons) {
+                if (isColorized(p)) {
+                    setTextViewColorPrimary(button, R.id.action0, p);
+                } else if (getRawColor(p) != COLOR_DEFAULT && mTintActionButtons) {
                     button.setTextColor(R.id.action0,
-                            ambient ? resolveAmbientColor() : resolveContrastColor());
+                            p.ambient ? resolveAmbientColor(p) : resolveContrastColor(p));
                 }
             }
+            button.setIntTag(R.id.action0, R.id.notification_action_index_tag,
+                    mActions.indexOf(action));
             return button;
         }
 
@@ -5506,15 +5586,15 @@
          * Apply any necessariy colors to the small icon
          */
         private void processSmallIconColor(Icon smallIcon, RemoteViews contentView,
-                boolean ambient) {
+                StandardTemplateParams p) {
             boolean colorable = !isLegacy() || getColorUtil().isGrayscaleIcon(mContext, smallIcon);
             int color;
-            if (ambient) {
-                color = resolveAmbientColor();
-            } else if (isColorized()) {
-                color = getPrimaryTextColor();
+            if (p.ambient) {
+                color = resolveAmbientColor(p);
+            } else if (isColorized(p)) {
+                color = getPrimaryTextColor(p);
             } else {
-                color = resolveContrastColor();
+                color = resolveContrastColor(p);
             }
             if (colorable) {
                 contentView.setDrawableTint(R.id.icon, false, color,
@@ -5530,11 +5610,12 @@
          * if it's grayscale).
          */
         // TODO: also check bounds, transparency, that sort of thing.
-        private void processLargeLegacyIcon(Icon largeIcon, RemoteViews contentView) {
+        private void processLargeLegacyIcon(Icon largeIcon, RemoteViews contentView,
+                StandardTemplateParams p) {
             if (largeIcon != null && isLegacy()
                     && getColorUtil().isGrayscaleIcon(mContext, largeIcon)) {
                 // resolve color will fall back to the default when legacy
-                contentView.setDrawableTint(R.id.icon, false, resolveContrastColor(),
+                contentView.setDrawableTint(R.id.icon, false, resolveContrastColor(p),
                         PorterDuff.Mode.SRC_ATOP);
             }
         }
@@ -5545,29 +5626,43 @@
             }
         }
 
-        int resolveContrastColor() {
-            if (mCachedContrastColorIsFor == mN.color && mCachedContrastColor != COLOR_INVALID) {
+        int resolveContrastColor(StandardTemplateParams p) {
+            int rawColor = getRawColor(p);
+            if (mCachedContrastColorIsFor == rawColor && mCachedContrastColor != COLOR_INVALID) {
                 return mCachedContrastColor;
             }
 
             int color;
             int background = mContext.getColor(
                     com.android.internal.R.color.notification_material_background_color);
-            if (mN.color == COLOR_DEFAULT) {
-                ensureColors();
+            if (rawColor == COLOR_DEFAULT) {
+                ensureColors(p);
                 color = ContrastColorUtil.resolveDefaultColor(mContext, background, mInNightMode);
             } else {
-                color = ContrastColorUtil.resolveContrastColor(mContext, mN.color,
+                color = ContrastColorUtil.resolveContrastColor(mContext, rawColor,
                         background, mInNightMode);
             }
             if (Color.alpha(color) < 255) {
                 // alpha doesn't go well for color filters, so let's blend it manually
                 color = ContrastColorUtil.compositeColors(color, background);
             }
-            mCachedContrastColorIsFor = mN.color;
+            mCachedContrastColorIsFor = rawColor;
             return mCachedContrastColor = color;
         }
 
+        /**
+         * Return the raw color of this Notification, which doesn't necessarily satisfy contrast.
+         *
+         * @see #resolveContrastColor(StandardTemplateParams) for the contrasted color
+         * @param p the template params to inflate this with
+         */
+        private int getRawColor(StandardTemplateParams p) {
+            if (p.forceDefaultColor) {
+                return COLOR_DEFAULT;
+            }
+            return mN.color;
+        }
+
         int resolveNeutralColor() {
             if (mNeutralColor != COLOR_INVALID) {
                 return mNeutralColor;
@@ -5583,13 +5678,14 @@
             return mNeutralColor;
         }
 
-        int resolveAmbientColor() {
-            if (mCachedAmbientColorIsFor == mN.color && mCachedAmbientColorIsFor != COLOR_INVALID) {
+        int resolveAmbientColor(StandardTemplateParams p) {
+            int rawColor = getRawColor(p);
+            if (mCachedAmbientColorIsFor == rawColor && mCachedAmbientColorIsFor != COLOR_INVALID) {
                 return mCachedAmbientColor;
             }
-            final int contrasted = ContrastColorUtil.resolveAmbientColor(mContext, mN.color);
+            final int contrasted = ContrastColorUtil.resolveAmbientColor(mContext, rawColor);
 
-            mCachedAmbientColorIsFor = mN.color;
+            mCachedAmbientColorIsFor = rawColor;
             return mCachedAmbientColor = contrasted;
         }
 
@@ -5638,6 +5734,15 @@
         }
 
         /**
+         * Determines whether the platform can generate contextual actions for a notification.
+         * By default this is true.
+         */
+        public Builder setAllowSystemGeneratedContextualActions(boolean allowed) {
+            mN.mAllowSystemGeneratedContextualActions = allowed;
+            return this;
+        }
+
+        /**
          * @deprecated Use {@link #build()} instead.
          */
         @Deprecated
@@ -5812,9 +5917,9 @@
             return R.layout.notification_material_action_tombstone;
         }
 
-        private int getBackgroundColor() {
-            if (isColorized()) {
-                return mBackgroundColor != COLOR_INVALID ? mBackgroundColor : mN.color;
+        private int getBackgroundColor(StandardTemplateParams p) {
+            if (isColorized(p)) {
+                return mBackgroundColor != COLOR_INVALID ? mBackgroundColor : getRawColor(p);
             } else {
                 return COLOR_DEFAULT;
             }
@@ -5822,10 +5927,11 @@
 
         /**
          * Gets a neutral color that can be used for icons or similar that should not stand out.
+         * @param p the template params to inflate this with
          */
-        private int getNeutralColor() {
-            if (isColorized()) {
-                return getSecondaryTextColor();
+        private int getNeutralColor(StandardTemplateParams p) {
+            if (isColorized(p)) {
+                return getSecondaryTextColor(p);
             } else {
                 return resolveNeutralColor();
             }
@@ -5833,9 +5939,10 @@
 
         /**
          * Same as getBackgroundColor but also resolved the default color to the background.
+         * @param p the template params to inflate this with
          */
-        private int resolveBackgroundColor() {
-            int backgroundColor = getBackgroundColor();
+        private int resolveBackgroundColor(StandardTemplateParams p) {
+            int backgroundColor = getBackgroundColor(p);
             if (backgroundColor == COLOR_DEFAULT) {
                 backgroundColor = mContext.getColor(
                         com.android.internal.R.color.notification_material_background_color);
@@ -5843,10 +5950,6 @@
             return backgroundColor;
         }
 
-        private boolean isColorized() {
-            return mN.isColorized();
-        }
-
         private boolean shouldTintActionButtons() {
             return mTintActionButtons;
         }
@@ -5872,7 +5975,7 @@
             mBackgroundColor = backgroundColor;
             mForegroundColor = foregroundColor;
             mTextColorsAreForBackground = COLOR_INVALID;
-            ensureColors();
+            ensureColors(mParams.reset().fillTextsFrom(this));
         }
 
         /**
@@ -6140,30 +6243,30 @@
         }
 
         protected RemoteViews getStandardView(int layoutId) {
-            return getStandardView(layoutId, null);
+            StandardTemplateParams p = mBuilder.mParams.reset().fillTextsFrom(mBuilder);
+            return getStandardView(layoutId, p, null);
         }
 
+
         /**
          * Get the standard view for this style.
          *
-         * @param layoutId The layout id to use
+         * @param layoutId The layout id to use.
+         * @param p the params for this inflation.
          * @param result The result where template bind information is saved.
          * @return A remoteView for this style.
          * @hide
          */
-        protected RemoteViews getStandardView(int layoutId, TemplateBindResult result) {
+        protected RemoteViews getStandardView(int layoutId, StandardTemplateParams p,
+                TemplateBindResult result) {
             checkBuilder();
 
-            // Nasty.
-            CharSequence oldBuilderContentTitle =
-                    mBuilder.getAllExtras().getCharSequence(EXTRA_TITLE);
             if (mBigContentTitle != null) {
-                mBuilder.setContentTitle(mBigContentTitle);
+                p.title = mBigContentTitle;
             }
 
-            RemoteViews contentView = mBuilder.applyStandardTemplateWithActions(layoutId, result);
-
-            mBuilder.getAllExtras().putCharSequence(EXTRA_TITLE, oldBuilderContentTitle);
+            RemoteViews contentView = mBuilder.applyStandardTemplateWithActions(layoutId, p,
+                    result);
 
             if (mBigContentTitle != null && mBigContentTitle.equals("")) {
                 contentView.setViewVisibility(R.id.line1, View.GONE);
@@ -6458,12 +6561,13 @@
                 mBuilder.mN.largeIcon = null;
             }
 
+            StandardTemplateParams p = mBuilder.mParams.reset().fillTextsFrom(mBuilder);
             RemoteViews contentView = getStandardView(mBuilder.getBigPictureLayoutResource(),
-                    null /* result */);
+                    p, null /* result */);
             if (mSummaryTextSet) {
                 contentView.setTextViewText(R.id.text, mBuilder.processTextSpans(
                         mBuilder.processLegacyText(mSummaryText)));
-                mBuilder.setTextViewColorSecondary(contentView, R.id.text);
+                mBuilder.setTextViewColorSecondary(contentView, R.id.text, p);
                 contentView.setViewVisibility(R.id.text, View.VISIBLE);
             }
             mBuilder.setContentMinHeight(contentView, mBuilder.mN.hasLargeIcon());
@@ -6656,24 +6760,24 @@
          * @hide
          */
         public RemoteViews makeBigContentView() {
-
-            // Nasty
-            CharSequence text = mBuilder.getAllExtras().getCharSequence(EXTRA_TEXT);
-            mBuilder.getAllExtras().putCharSequence(EXTRA_TEXT, null);
-
+            StandardTemplateParams p = mBuilder.mParams.reset().fillTextsFrom(mBuilder).text(null);
             TemplateBindResult result = new TemplateBindResult();
-            RemoteViews contentView = getStandardView(mBuilder.getBigTextLayoutResource(), result);
+            RemoteViews contentView = getStandardView(mBuilder.getBigTextLayoutResource(), p,
+                    result);
             contentView.setInt(R.id.big_text, "setImageEndMargin", result.getIconMarginEnd());
 
-            mBuilder.getAllExtras().putCharSequence(EXTRA_TEXT, text);
-
             CharSequence bigTextText = mBuilder.processLegacyText(mBigText);
             if (TextUtils.isEmpty(bigTextText)) {
                 // In case the bigtext is null / empty fall back to the normal text to avoid a weird
                 // experience
-                bigTextText = mBuilder.processLegacyText(text);
+                bigTextText = mBuilder.processLegacyText(
+                        mBuilder.getAllExtras().getCharSequence(EXTRA_TEXT));
             }
-            applyBigTextContentView(mBuilder, contentView, bigTextText);
+            contentView.setTextViewText(R.id.big_text, mBuilder.processTextSpans(bigTextText));
+            mBuilder.setTextViewColorSecondary(contentView, R.id.big_text, p);
+            contentView.setViewVisibility(R.id.big_text,
+                    TextUtils.isEmpty(bigTextText) ? View.GONE : View.VISIBLE);
+            contentView.setBoolean(R.id.big_text, "setHasImage", mBuilder.mN.hasLargeIcon());
 
             return contentView;
         }
@@ -6691,14 +6795,6 @@
             return !Objects.equals(String.valueOf(getBigText()), String.valueOf(newS.getBigText()));
         }
 
-        static void applyBigTextContentView(Builder builder,
-                RemoteViews contentView, CharSequence bigTextText) {
-            contentView.setTextViewText(R.id.big_text, builder.processTextSpans(bigTextText));
-            builder.setTextViewColorSecondary(contentView, R.id.big_text);
-            contentView.setViewVisibility(R.id.big_text,
-                    TextUtils.isEmpty(bigTextText) ? View.GONE : View.VISIBLE);
-            contentView.setBoolean(R.id.big_text, "setHasImage", builder.mN.hasLargeIcon());
-        }
     }
 
     /**
@@ -7182,24 +7278,26 @@
                 isOneToOne = !isGroupConversation();
             }
             TemplateBindResult bindResult = new TemplateBindResult();
+            StandardTemplateParams p = mBuilder.mParams.reset().hasProgress(false).title(
+                    conversationTitle).text(null)
+                    .hideLargeIcon(hideRightIcons || isOneToOne)
+                    .hideReplyIcon(hideRightIcons)
+                    .headerTextSecondary(conversationTitle);
             RemoteViews contentView = mBuilder.applyStandardTemplateWithActions(
                     mBuilder.getMessagingLayoutResource(),
-                    mBuilder.mParams.reset().hasProgress(false).title(conversationTitle).text(null)
-                            .hideLargeIcon(hideRightIcons || isOneToOne)
-                            .hideReplyIcon(hideRightIcons)
-                            .headerTextSecondary(conversationTitle),
+                    p,
                     bindResult);
             addExtras(mBuilder.mN.extras);
             // also update the end margin if there is an image
             contentView.setViewLayoutMarginEnd(R.id.notification_messaging,
                     bindResult.getIconMarginEnd());
             contentView.setInt(R.id.status_bar_latest_event_content, "setLayoutColor",
-                    mBuilder.isColorized() ? mBuilder.getPrimaryTextColor()
-                            : mBuilder.resolveContrastColor());
+                    mBuilder.isColorized(p) ? mBuilder.getPrimaryTextColor(p)
+                            : mBuilder.resolveContrastColor(p));
             contentView.setInt(R.id.status_bar_latest_event_content, "setSenderTextColor",
-                    mBuilder.getPrimaryTextColor());
+                    mBuilder.getPrimaryTextColor(p));
             contentView.setInt(R.id.status_bar_latest_event_content, "setMessageTextColor",
-                    mBuilder.getSecondaryTextColor());
+                    mBuilder.getSecondaryTextColor(p));
             contentView.setBoolean(R.id.status_bar_latest_event_content, "setDisplayImagesAtEnd",
                     displayImagesAtEnd);
             contentView.setIcon(R.id.status_bar_latest_event_content, "setAvatarReplacement",
@@ -7461,7 +7559,11 @@
                 return mRemoteInputHistory;
             }
 
-            private Bundle toBundle() {
+            /**
+             * @hide
+             */
+            @VisibleForTesting
+            public Bundle toBundle() {
                 Bundle bundle = new Bundle();
                 if (mText != null) {
                     bundle.putCharSequence(KEY_TEXT, mText);
@@ -7659,15 +7761,9 @@
          * @hide
          */
         public RemoteViews makeBigContentView() {
-            // Remove the content text so it disappears unless you have a summary
-            // Nasty
-            CharSequence oldBuilderContentText = mBuilder.mN.extras.getCharSequence(EXTRA_TEXT);
-            mBuilder.getAllExtras().putCharSequence(EXTRA_TEXT, null);
-
+            StandardTemplateParams p = mBuilder.mParams.reset().fillTextsFrom(mBuilder).text(null);
             TemplateBindResult result = new TemplateBindResult();
-            RemoteViews contentView = getStandardView(mBuilder.getInboxLayoutResource(), result);
-
-            mBuilder.getAllExtras().putCharSequence(EXTRA_TEXT, oldBuilderContentText);
+            RemoteViews contentView = getStandardView(mBuilder.getInboxLayoutResource(), p, result);
 
             int[] rowIds = {R.id.inbox_text0, R.id.inbox_text1, R.id.inbox_text2, R.id.inbox_text3,
                     R.id.inbox_text4, R.id.inbox_text5, R.id.inbox_text6};
@@ -7714,7 +7810,7 @@
                     contentView.setViewVisibility(rowIds[i], View.VISIBLE);
                     contentView.setTextViewText(rowIds[i],
                             mBuilder.processTextSpans(mBuilder.processLegacyText(str)));
-                    mBuilder.setTextViewColorSecondary(contentView, rowIds[i]);
+                    mBuilder.setTextViewColorSecondary(contentView, rowIds[i], p);
                     contentView.setViewPadding(rowIds[i], 0, topPadding, 0, 0);
                     handleInboxImageMargin(contentView, rowIds[i], first,
                             result.getIconMarginEnd());
@@ -7951,7 +8047,7 @@
         }
 
         private void bindMediaActionButton(RemoteViews container, @IdRes int buttonId,
-                Action action, int color) {
+                Action action, StandardTemplateParams p) {
             final boolean tombstone = (action.actionIntent == null);
             container.setViewVisibility(buttonId, View.VISIBLE);
             container.setImageViewIcon(buttonId, action.getIcon());
@@ -7962,8 +8058,8 @@
             Configuration currentConfig = resources.getConfiguration();
             boolean inNightMode = (currentConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK)
                     == Configuration.UI_MODE_NIGHT_YES;
-            int tintColor = mBuilder.shouldTintActionButtons() || mBuilder.isColorized()
-                    ? color
+            int tintColor = mBuilder.shouldTintActionButtons() || mBuilder.isColorized(p)
+                    ? getActionColor(p)
                     : ContrastColorUtil.resolveColor(mBuilder.mContext,
                             Notification.COLOR_DEFAULT, inNightMode);
 
@@ -7985,8 +8081,10 @@
         }
 
         private RemoteViews makeMediaContentView() {
+            StandardTemplateParams p = mBuilder.mParams.reset().hasProgress(false).fillTextsFrom(
+                    mBuilder);
             RemoteViews view = mBuilder.applyStandardTemplate(
-                    R.layout.notification_template_material_media, false, /* hasProgress */
+                    R.layout.notification_template_material_media, p,
                     null /* result */);
 
             final int numActions = mBuilder.mActions.size();
@@ -8001,7 +8099,7 @@
             for (int i = 0; i < MAX_MEDIA_BUTTONS_IN_COMPACT; i++) {
                 if (i < numActionsToShow) {
                     final Action action = mBuilder.mActions.get(mActionsToShowInCompact[i]);
-                    bindMediaActionButton(view, MEDIA_BUTTON_IDS[i], action, getActionColor());
+                    bindMediaActionButton(view, MEDIA_BUTTON_IDS[i], action, p);
                 } else {
                     view.setViewVisibility(MEDIA_BUTTON_IDS[i], View.GONE);
                 }
@@ -8016,9 +8114,9 @@
             return view;
         }
 
-        private int getActionColor() {
-            return mBuilder.isColorized() ? mBuilder.getPrimaryTextColor()
-                    : mBuilder.resolveContrastColor();
+        private int getActionColor(StandardTemplateParams p) {
+            return mBuilder.isColorized(p) ? mBuilder.getPrimaryTextColor(p)
+                    : mBuilder.resolveContrastColor(p);
         }
 
         private RemoteViews makeMediaBigContentView() {
@@ -8030,13 +8128,14 @@
             if (!mBuilder.mN.hasLargeIcon() && actionCount <= actionsInCompact) {
                 return null;
             }
+            StandardTemplateParams p = mBuilder.mParams.reset().hasProgress(false).fillTextsFrom(
+                    mBuilder);
             RemoteViews big = mBuilder.applyStandardTemplate(
-                    R.layout.notification_template_material_big_media, false, null /* result */);
+                    R.layout.notification_template_material_big_media, p , null /* result */);
 
             for (int i = 0; i < MAX_MEDIA_BUTTONS; i++) {
                 if (i < actionCount) {
-                    bindMediaActionButton(big, MEDIA_BUTTON_IDS[i], mBuilder.mActions.get(i),
-                            getActionColor());
+                    bindMediaActionButton(big, MEDIA_BUTTON_IDS[i], mBuilder.mActions.get(i), p);
                 } else {
                     big.setViewVisibility(MEDIA_BUTTON_IDS[i], View.GONE);
                 }
@@ -8164,7 +8263,7 @@
                 customContent = customContent.clone();
                 remoteViews.removeAllViewsExceptId(R.id.notification_main_column, R.id.progress);
                 remoteViews.addView(R.id.notification_main_column, customContent, 0 /* index */);
-                remoteViews.setReapplyDisallowed();
+                remoteViews.addFlags(RemoteViews.FLAG_REAPPLY_DISALLOWED);
             }
             // also update the end margin if there is an image
             Resources resources = mBuilder.mContext.getResources();
@@ -8292,10 +8391,10 @@
                 // Need to clone customContent before adding, because otherwise it can no longer be
                 // parceled independently of remoteViews.
                 customContent = customContent.clone();
-                customContent.overrideTextColors(mBuilder.getPrimaryTextColor());
+                customContent.overrideTextColors(mBuilder.getPrimaryTextColor(mBuilder.mParams));
                 remoteViews.removeAllViews(id);
                 remoteViews.addView(id, customContent);
-                remoteViews.setReapplyDisallowed();
+                remoteViews.addFlags(RemoteViews.FLAG_REAPPLY_DISALLOWED);
             }
             return remoteViews;
         }
@@ -9835,17 +9934,23 @@
         CharSequence title;
         CharSequence text;
         CharSequence headerTextSecondary;
+        CharSequence summaryText;
         int maxRemoteInputHistory = Style.MAX_REMOTE_INPUT_HISTORY_LINES;
         boolean hideLargeIcon;
         boolean hideReplyIcon;
+        boolean allowColorization  = true;
+        boolean forceDefaultColor = false;
 
         final StandardTemplateParams reset() {
             hasProgress = true;
             ambient = false;
             title = null;
             text = null;
+            summaryText = null;
             headerTextSecondary = null;
             maxRemoteInputHistory = Style.MAX_REMOTE_INPUT_HISTORY_LINES;
+            allowColorization = true;
+            forceDefaultColor = false;
             return this;
         }
 
@@ -9864,6 +9969,11 @@
             return this;
         }
 
+        final StandardTemplateParams summaryText(CharSequence text) {
+            this.summaryText = text;
+            return this;
+        }
+
         final StandardTemplateParams headerTextSecondary(CharSequence text) {
             this.headerTextSecondary = text;
             return this;
@@ -9879,6 +9989,16 @@
             return this;
         }
 
+        final StandardTemplateParams disallowColorization() {
+            this.allowColorization = false;
+            return this;
+        }
+
+        final StandardTemplateParams forceDefaultColor() {
+            this.forceDefaultColor = true;
+            return this;
+        }
+
         final StandardTemplateParams ambient(boolean ambient) {
             Preconditions.checkState(title == null && text == null, "must set ambient before text");
             this.ambient = ambient;
@@ -9895,6 +10015,7 @@
                 text = extras.getCharSequence(EXTRA_TEXT);
             }
             this.text = b.processLegacyText(text, ambient);
+            this.summaryText = extras.getCharSequence(EXTRA_SUB_TEXT);
             return this;
         }
 
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index 89ec19b..25fa897 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -1424,7 +1424,62 @@
             return other.priorityCategories == priorityCategories
                     && other.priorityCallSenders == priorityCallSenders
                     && other.priorityMessageSenders == priorityMessageSenders
-                    && other.suppressedVisualEffects == suppressedVisualEffects;
+                    && suppressedVisualEffectsEqual(suppressedVisualEffects,
+                    other.suppressedVisualEffects);
+        }
+
+
+        private boolean suppressedVisualEffectsEqual(int suppressedEffects,
+                int otherSuppressedVisualEffects) {
+            if (suppressedEffects == otherSuppressedVisualEffects) {
+                return true;
+            }
+
+            if ((suppressedEffects & SUPPRESSED_EFFECT_SCREEN_ON) != 0) {
+                suppressedEffects |= SUPPRESSED_EFFECT_PEEK;
+            }
+            if ((suppressedEffects & SUPPRESSED_EFFECT_SCREEN_OFF) != 0) {
+                suppressedEffects |= SUPPRESSED_EFFECT_FULL_SCREEN_INTENT;
+                suppressedEffects |= SUPPRESSED_EFFECT_LIGHTS;
+                suppressedEffects |= SUPPRESSED_EFFECT_AMBIENT;
+            }
+
+            if ((otherSuppressedVisualEffects & SUPPRESSED_EFFECT_SCREEN_ON) != 0) {
+                otherSuppressedVisualEffects |= SUPPRESSED_EFFECT_PEEK;
+            }
+            if ((otherSuppressedVisualEffects & SUPPRESSED_EFFECT_SCREEN_OFF) != 0) {
+                otherSuppressedVisualEffects |= SUPPRESSED_EFFECT_FULL_SCREEN_INTENT;
+                otherSuppressedVisualEffects |= SUPPRESSED_EFFECT_LIGHTS;
+                otherSuppressedVisualEffects |= SUPPRESSED_EFFECT_AMBIENT;
+            }
+
+            if ((suppressedEffects & SUPPRESSED_EFFECT_SCREEN_ON)
+                    != (otherSuppressedVisualEffects & SUPPRESSED_EFFECT_SCREEN_ON)) {
+                int currSuppressedEffects = (suppressedEffects & SUPPRESSED_EFFECT_SCREEN_ON) != 0
+                        ? otherSuppressedVisualEffects : suppressedEffects;
+                if ((currSuppressedEffects & SUPPRESSED_EFFECT_PEEK) == 0) {
+                    return false;
+                }
+            }
+
+            if ((suppressedEffects & SUPPRESSED_EFFECT_SCREEN_OFF)
+                    != (otherSuppressedVisualEffects & SUPPRESSED_EFFECT_SCREEN_OFF)) {
+                int currSuppressedEffects = (suppressedEffects & SUPPRESSED_EFFECT_SCREEN_OFF) != 0
+                        ? otherSuppressedVisualEffects : suppressedEffects;
+                if ((currSuppressedEffects & SUPPRESSED_EFFECT_FULL_SCREEN_INTENT) == 0
+                        || (currSuppressedEffects & SUPPRESSED_EFFECT_LIGHTS) == 0
+                        || (currSuppressedEffects & SUPPRESSED_EFFECT_AMBIENT) == 0) {
+                    return false;
+                }
+            }
+
+            int thisWithoutOldEffects = suppressedEffects
+                    & ~SUPPRESSED_EFFECT_SCREEN_ON
+                    & ~SUPPRESSED_EFFECT_SCREEN_OFF;
+            int otherWithoutOldEffects = otherSuppressedVisualEffects
+                    & ~SUPPRESSED_EFFECT_SCREEN_ON
+                    & ~SUPPRESSED_EFFECT_SCREEN_OFF;
+            return thisWithoutOldEffects == otherWithoutOldEffects;
         }
 
         @Override
diff --git a/core/java/android/app/Person.java b/core/java/android/app/Person.java
index 3884a8d..0abc998 100644
--- a/core/java/android/app/Person.java
+++ b/core/java/android/app/Person.java
@@ -22,6 +22,8 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import java.util.Objects;
+
 /**
  * Provides an immutable reference to an entity that appears repeatedly on different surfaces of the
  * platform. For example, this could represent the sender of a message.
@@ -121,6 +123,26 @@
     }
 
     @Override
+    public boolean equals(Object obj) {
+        if (obj instanceof Person) {
+            final Person other = (Person) obj;
+            return Objects.equals(mName, other.mName)
+                    && (mIcon == null ? other.mIcon == null :
+                    (other.mIcon != null && mIcon.sameAs(other.mIcon)))
+                    && Objects.equals(mUri, other.mUri)
+                    && Objects.equals(mKey, other.mKey)
+                    && mIsBot == other.mIsBot
+                    && mIsImportant == other.mIsImportant;
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mName, mIcon, mUri, mKey, mIsBot, mIsImportant);
+    }
+
+    @Override
     public int describeContents() {
         return 0;
     }
diff --git a/core/java/android/app/ProcessMemoryState.java b/core/java/android/app/ProcessMemoryState.java
index 9df4fff..95d5d19 100644
--- a/core/java/android/app/ProcessMemoryState.java
+++ b/core/java/android/app/ProcessMemoryState.java
@@ -32,13 +32,11 @@
     public final long rssInBytes;
     public final long cacheInBytes;
     public final long swapInBytes;
-    // TODO(rslawik): Delete this field once ProcessMemoryHighWaterMark is ready.
-    public final long rssHighWatermarkInBytes;
     public final long startTimeNanos;
 
     public ProcessMemoryState(int uid, String processName, int oomScore, long pgfault,
                               long pgmajfault, long rssInBytes, long cacheInBytes,
-                              long swapInBytes, long rssHighWatermarkInBytes, long startTimeNanos) {
+                              long swapInBytes, long startTimeNanos) {
         this.uid = uid;
         this.processName = processName;
         this.oomScore = oomScore;
@@ -47,7 +45,6 @@
         this.rssInBytes = rssInBytes;
         this.cacheInBytes = cacheInBytes;
         this.swapInBytes = swapInBytes;
-        this.rssHighWatermarkInBytes = rssHighWatermarkInBytes;
         this.startTimeNanos = startTimeNanos;
     }
 
@@ -60,7 +57,6 @@
         rssInBytes = in.readLong();
         cacheInBytes = in.readLong();
         swapInBytes = in.readLong();
-        rssHighWatermarkInBytes = in.readLong();
         startTimeNanos = in.readLong();
     }
 
@@ -91,7 +87,6 @@
         parcel.writeLong(rssInBytes);
         parcel.writeLong(cacheInBytes);
         parcel.writeLong(swapInBytes);
-        parcel.writeLong(rssHighWatermarkInBytes);
         parcel.writeLong(startTimeNanos);
     }
 }
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index 0123551..dfe371c 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -165,8 +165,8 @@
 import android.view.autofill.AutofillManager;
 import android.view.autofill.IAutoFillManager;
 import android.view.inputmethod.InputMethodManager;
+import android.view.intelligence.ContentCaptureManager;
 import android.view.intelligence.IIntelligenceManager;
-import android.view.intelligence.IntelligenceManager;
 import android.view.textclassifier.TextClassificationManager;
 import android.view.textservice.TextServicesManager;
 
@@ -199,6 +199,7 @@
     private SystemServiceRegistry() { }
 
     static {
+        //CHECKSTYLE:OFF IndentationCheck
         registerService(Context.ACCESSIBILITY_SERVICE, AccessibilityManager.class,
                 new CachedServiceFetcher<AccessibilityManager>() {
             @Override
@@ -1050,15 +1051,20 @@
                 return new AutofillManager(ctx.getOuterContext(), service);
             }});
 
-        registerService(Context.INTELLIGENCE_MANAGER_SERVICE, IntelligenceManager.class,
-                new CachedServiceFetcher<IntelligenceManager>() {
+        registerService(Context.CONTENT_CAPTURE_MANAGER_SERVICE, ContentCaptureManager.class,
+                new CachedServiceFetcher<ContentCaptureManager>() {
             @Override
-            public IntelligenceManager createService(ContextImpl ctx)
+            public ContentCaptureManager createService(ContextImpl ctx)
                     throws ServiceNotFoundException {
                 // Get the services without throwing as this is an optional feature
-                IBinder b = ServiceManager.getService(Context.INTELLIGENCE_MANAGER_SERVICE);
-                IIntelligenceManager service = IIntelligenceManager.Stub.asInterface(b);
-                return new IntelligenceManager(ctx.getOuterContext(), service);
+                Context outerContext = ctx.getOuterContext();
+                if (outerContext.isContentCaptureSupported()) {
+                    IBinder b = ServiceManager
+                            .getService(Context.CONTENT_CAPTURE_MANAGER_SERVICE);
+                    IIntelligenceManager service = IIntelligenceManager.Stub.asInterface(b);
+                    return new ContentCaptureManager(outerContext, service);
+                }
+                return null;
             }});
 
         registerService(Context.VR_SERVICE, VrManager.class, new CachedServiceFetcher<VrManager>() {
@@ -1138,6 +1144,7 @@
                             throws ServiceNotFoundException {
                         return new RoleManager(ctx.getOuterContext());
                     }});
+        //CHECKSTYLE:ON IndentationCheck
     }
 
     /**
diff --git a/core/java/android/app/WallpaperInfo.java b/core/java/android/app/WallpaperInfo.java
index e33d1fe..f0f7d89 100644
--- a/core/java/android/app/WallpaperInfo.java
+++ b/core/java/android/app/WallpaperInfo.java
@@ -16,6 +16,7 @@
 
 package android.app;
 
+import android.annotation.SystemApi;
 import android.app.slice.Slice;
 import android.content.ComponentName;
 import android.content.Context;
@@ -36,6 +37,7 @@
 import android.util.AttributeSet;
 import android.util.Printer;
 import android.util.Xml;
+import android.view.SurfaceHolder;
 
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
@@ -79,6 +81,7 @@
     final boolean mShowMetadataInPreview;
     final boolean mSupportsAmbientMode;
     final String mSettingsSliceUri;
+    final boolean mSupportMultipleDisplays;
 
     /**
      * Constructor.
@@ -143,6 +146,9 @@
                     false);
             mSettingsSliceUri = sa.getString(
                     com.android.internal.R.styleable.Wallpaper_settingsSliceUri);
+            mSupportMultipleDisplays = sa.getBoolean(
+                    com.android.internal.R.styleable.Wallpaper_supportsMultipleDisplays,
+                    false);
 
             sa.recycle();
         } catch (NameNotFoundException e) {
@@ -163,6 +169,7 @@
         mShowMetadataInPreview = source.readInt() != 0;
         mSupportsAmbientMode = source.readInt() != 0;
         mSettingsSliceUri = source.readString();
+        mSupportMultipleDisplays = source.readInt() != 0;
         mService = ResolveInfo.CREATOR.createFromParcel(source);
     }
     
@@ -324,7 +331,9 @@
      * @see WallpaperService.Engine#onAmbientModeChanged(boolean, boolean)
      * @see WallpaperService.Engine#isInAmbientMode()
      * @return {@code true} if wallpaper can draw when in ambient mode.
+     * @hide
      */
+    @SystemApi
     public boolean supportsAmbientMode() {
         return mSupportsAmbientMode;
     }
@@ -358,6 +367,19 @@
         return Uri.parse(mSettingsSliceUri);
     }
 
+    /**
+     * Returns whether this wallpaper service can support multiple engines to render on each surface
+     * independently. An example use case is a multi-display set-up where the wallpaper service can
+     * render surfaces to each of the connected displays.
+     *
+     * @see WallpaperService#onCreateEngine()
+     * @see WallpaperService.Engine#onCreate(SurfaceHolder)
+     * @return {@code true} if multiple engines can render independently on each surface.
+     */
+    public boolean supportsMultipleDisplays() {
+        return mSupportMultipleDisplays;
+    }
+
     public void dump(Printer pw, String prefix) {
         pw.println(prefix + "Service:");
         mService.dump(pw, prefix + "  ");
@@ -387,6 +409,7 @@
         dest.writeInt(mShowMetadataInPreview ? 1 : 0);
         dest.writeInt(mSupportsAmbientMode ? 1 : 0);
         dest.writeString(mSettingsSliceUri);
+        dest.writeInt(mSupportMultipleDisplays ? 1 : 0);
         mService.writeToParcel(dest, flags);
     }
 
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index bebe79e..27ae0b0 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -1485,7 +1485,7 @@
             throw new RuntimeException(new DeadSystemException());
         }
         try {
-            return sGlobals.mService.getWidthHint();
+            return sGlobals.mService.getWidthHint(mContext.getDisplayId());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -1511,7 +1511,7 @@
             throw new RuntimeException(new DeadSystemException());
         }
         try {
-            return sGlobals.mService.getHeightHint();
+            return sGlobals.mService.getHeightHint(mContext.getDisplayId());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -1572,7 +1572,7 @@
                 throw new RuntimeException(new DeadSystemException());
             } else {
                 sGlobals.mService.setDimensionHints(minimumWidth, minimumHeight,
-                        mContext.getOpPackageName());
+                        mContext.getOpPackageName(), mContext.getDisplayId());
             }
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
@@ -1597,7 +1597,8 @@
                 Log.w(TAG, "WallpaperService not running");
                 throw new RuntimeException(new DeadSystemException());
             } else {
-                sGlobals.mService.setDisplayPadding(padding, mContext.getOpPackageName());
+                sGlobals.mService.setDisplayPadding(padding, mContext.getOpPackageName(),
+                        mContext.getDisplayId());
             }
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
@@ -1897,23 +1898,33 @@
      * @hide
      */
     public static ComponentName getDefaultWallpaperComponent(Context context) {
+        ComponentName cn = null;
+
         String flat = SystemProperties.get(PROP_WALLPAPER_COMPONENT);
         if (!TextUtils.isEmpty(flat)) {
-            final ComponentName cn = ComponentName.unflattenFromString(flat);
-            if (cn != null) {
-                return cn;
+            cn = ComponentName.unflattenFromString(flat);
+        }
+
+        if (cn == null) {
+            flat = context.getString(com.android.internal.R.string.default_wallpaper_component);
+            if (!TextUtils.isEmpty(flat)) {
+                cn = ComponentName.unflattenFromString(flat);
             }
         }
 
-        flat = context.getString(com.android.internal.R.string.default_wallpaper_component);
-        if (!TextUtils.isEmpty(flat)) {
-            final ComponentName cn = ComponentName.unflattenFromString(flat);
-            if (cn != null) {
-                return cn;
+        // Check if the package exists
+        if (cn != null) {
+            try {
+                final PackageManager packageManager = context.getPackageManager();
+                packageManager.getPackageInfo(cn.getPackageName(),
+                        PackageManager.MATCH_DIRECT_BOOT_AWARE
+                                | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
+            } catch (PackageManager.NameNotFoundException e) {
+                cn = null;
             }
         }
 
-        return null;
+        return cn;
     }
 
     /**
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index f129a71..98d2a40 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -53,6 +53,7 @@
 import android.net.Uri;
 import android.os.Binder;
 import android.os.Bundle;
+import android.os.ParcelFileDescriptor;
 import android.os.Parcelable;
 import android.os.PersistableBundle;
 import android.os.Process;
@@ -87,6 +88,7 @@
 import com.android.org.conscrypt.TrustedCertificateStore;
 
 import java.io.ByteArrayInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -1930,6 +1932,48 @@
     public static final int PRIVATE_DNS_MODE_PROVIDER_HOSTNAME = 3;
 
     /**
+     * Callback used in {@link #installSystemUpdate} to indicate that there was an error while
+     * trying to install an update.
+     */
+    public abstract static class InstallUpdateCallback {
+        /** Represents an unknown error while trying to install an update. */
+        public static final int UPDATE_ERROR_UNKNOWN = 1;
+
+        /** Represents the update file being intended for different OS version. */
+        public static final int UPDATE_ERROR_INCORRECT_OS_VERSION = 2;
+
+        /**
+         * Represents the update file being wrong, i.e. payloads are mismatched, wrong compressions
+         * method.
+         */
+        public static final int UPDATE_ERROR_UPDATE_FILE_INVALID = 3;
+
+        /** Represents that the file could not be found. */
+        public static final int UPDATE_ERROR_FILE_NOT_FOUND = 4;
+
+        /** Represents the battery being too low to apply an update. */
+        public static final int UPDATE_ERROR_BATTERY_LOW = 5;
+
+        /** Method invoked when there was an error while installing an update. */
+        public void onInstallUpdateError(
+                @InstallUpdateCallbackErrorConstants int errorCode, String errorMessage) {
+        }
+    }
+
+    /**
+     * @hide
+     */
+    @IntDef(prefix = { "UPDATE_ERROR_" }, value = {
+            InstallUpdateCallback.UPDATE_ERROR_UNKNOWN,
+            InstallUpdateCallback.UPDATE_ERROR_INCORRECT_OS_VERSION,
+            InstallUpdateCallback.UPDATE_ERROR_UPDATE_FILE_INVALID,
+            InstallUpdateCallback.UPDATE_ERROR_FILE_NOT_FOUND,
+            InstallUpdateCallback.UPDATE_ERROR_BATTERY_LOW
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface InstallUpdateCallbackErrorConstants {}
+
+    /**
      * Return true if the given administrator component is currently active (enabled) in the system.
      *
      * @param admin The administrator component to check for.
@@ -6796,7 +6840,6 @@
     @Retention(RetentionPolicy.SOURCE)
     public @interface CreateAndManageUserFlags {}
 
-
     /**
      * Called by a device owner to create a user with the specified name and a given component of
      * the calling package as profile owner. The UserHandle returned by this method should not be
@@ -9792,7 +9835,6 @@
         }
     }
 
-
     /**
      * Sets the global Private DNS mode and host to be used.
      * May only be called by the device owner.
@@ -9828,6 +9870,62 @@
     }
 
     /**
+     * Called by device owner to install a system update from the given file. The device will be
+     * rebooted in order to finish installing the update. Note that if the device is rebooted, this
+     * doesn't necessarily mean that the update has been applied successfully. The caller should
+     * additionally check the system version with {@link android.os.Build#FINGERPRINT} or {@link
+     * android.os.Build.VERSION}. If an error occurs during processing the OTA before the reboot,
+     * the caller will be notified by {@link InstallUpdateCallback}. If device does not have
+     * sufficient battery level, the installation will fail with error {@link
+     * InstallUpdateCallback#UPDATE_ERROR_BATTERY_LOW}.
+     *
+     * @param admin The {@link DeviceAdminReceiver} that this request is associated with.
+     * @param updateFilePath An Uri of the file that contains the update. The file should be
+     * readable by the calling app.
+     * @param executor The executor through which the callback should be invoked.
+     * @param callback A callback object that will inform the caller when installing an update
+     * fails.
+     */
+    public void installSystemUpdate(
+            @NonNull ComponentName admin, @NonNull Uri updateFilePath,
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull InstallUpdateCallback callback) {
+        throwIfParentInstance("installUpdate");
+        if (mService == null) {
+            return;
+        }
+        try (ParcelFileDescriptor fileDescriptor = mContext.getContentResolver()
+                    .openFileDescriptor(updateFilePath, "r")) {
+            mService.installUpdateFromFile(
+                    admin, fileDescriptor, new StartInstallingUpdateCallback.Stub() {
+                        @Override
+                        public void onStartInstallingUpdateError(
+                                int errorCode, String errorMessage) {
+                            executeCallback(errorCode, errorMessage, executor, callback);
+                        }
+                    });
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        } catch (FileNotFoundException e) {
+            Log.w(TAG, e);
+            executeCallback(
+                    InstallUpdateCallback.UPDATE_ERROR_FILE_NOT_FOUND, Log.getStackTraceString(e),
+                    executor, callback);
+        } catch (IOException e) {
+            Log.w(TAG, e);
+            executeCallback(
+                    InstallUpdateCallback.UPDATE_ERROR_UNKNOWN, Log.getStackTraceString(e),
+                    executor, callback);
+        }
+    }
+
+    private void executeCallback(int errorCode, String errorMessage,
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull InstallUpdateCallback callback) {
+        executor.execute(() -> callback.onInstallUpdateError(errorCode, errorMessage));
+    }
+
+    /**
      * Returns the system-wide Private DNS mode.
      *
      * @param admin which {@link DeviceAdminReceiver} this request is associated with.
@@ -9867,4 +9965,138 @@
             throw re.rethrowFromSystemServer();
         }
     }
+
+    /**
+     * Grants the profile owner of the given user access to device identifiers (such as
+     * serial number, IMEI and MEID).
+     *
+     * <p>This lets the profile owner request inclusion of device identifiers when calling
+     * {@link generateKeyPair}.
+     *
+     * <p>This grant is necessary to guarantee that profile owners can access device identifiers.
+     *
+     * <p>Privileged system API - meant to be called by the system, particularly the managed
+     * provisioning app, when a work profile is set up.
+     *
+     * @hide
+     */
+    @SystemApi
+    public void setProfileOwnerCanAccessDeviceIdsForUser(
+            @NonNull ComponentName who, @NonNull UserHandle userHandle) {
+        if (mService == null) {
+            return;
+        }
+        try {
+            mService.grantDeviceIdsAccessToProfileOwner(who, userHandle.getIdentifier());
+        } catch (RemoteException re) {
+            throw re.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * Whitelists a package that is allowed to access cross profile calendar APIs.
+     *
+     * <p>Called by a profile owner of a managed profile.
+     *
+     * @param admin which {@link DeviceAdminReceiver} this request is associated with.
+     * @param packageName name of the package to be whitelisted.
+     * @throws SecurityException if {@code admin} is not a profile owner.
+     *
+     * @see #removeCrossProfileCalendarPackage(ComponentName, String)
+     * @see #getCrossProfileCalendarPackages(ComponentName)
+     */
+    public void addCrossProfileCalendarPackage(@NonNull ComponentName admin,
+            @NonNull String packageName) {
+        throwIfParentInstance("addCrossProfileCalendarPackage");
+        if (mService != null) {
+            try {
+                mService.addCrossProfileCalendarPackage(admin, packageName);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        }
+    }
+
+    /**
+     * Removes a package that was allowed to access cross profile calendar APIs
+     * from the whitelist.
+     *
+     * <p>Called by a profile owner of a managed profile.
+     *
+     * @param admin which {@link DeviceAdminReceiver} this request is associated with.
+     * @param packageName name of the package to be removed from the whitelist.
+     * @return {@code true} if the package is successfully removed from the whitelist,
+     * {@code false} otherwise.
+     * @throws SecurityException if {@code admin} is not a profile owner.
+     *
+     * @see #addCrossProfileCalendarPackage(ComponentName, String)
+     * @see #getCrossProfileCalendarPackages(ComponentName)
+     */
+    public boolean removeCrossProfileCalendarPackage(@NonNull ComponentName admin,
+            @NonNull String packageName) {
+        throwIfParentInstance("removeCrossProfileCalendarPackage");
+        if (mService != null) {
+            try {
+                return mService.removeCrossProfileCalendarPackage(admin, packageName);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Gets a set of package names that are whitelisted to access cross profile calendar APIs.
+     *
+     * <p>Called by a profile owner of a managed profile.
+     *
+     * @param admin which {@link DeviceAdminReceiver} this request is associated with.
+     * @return the set of names of packages that were previously whitelisted via
+     * {@link #addCrossProfileCalendarPackage(ComponentName, String)}, or an
+     * empty set if none have been whitelisted.
+     * @throws SecurityException if {@code admin} is not a profile owner.
+     *
+     * @see #addCrossProfileCalendarPackage(ComponentName, String)
+     * @see #removeCrossProfileCalendarPackage(ComponentName, String)
+     */
+    public @NonNull Set<String> getCrossProfileCalendarPackages(@NonNull ComponentName admin) {
+        throwIfParentInstance("getCrossProfileCalendarPackages");
+        if (mService != null) {
+            try {
+                return new ArraySet<>(mService.getCrossProfileCalendarPackages(admin));
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        }
+        return Collections.emptySet();
+    }
+
+    /**
+     * Returns if a package is whitelisted to access cross profile calendar APIs.
+     *
+     * <p>To query for a specific user, use
+     * {@link Context#createPackageContextAsUser(String, int, UserHandle)} to create a context for
+     * that user, and get a {@link DevicePolicyManager} from this context.
+     *
+     * @param packageName the name of the package
+     * @return {@code true} if the package is whitelisted to access cross profile calendar APIs.
+     * {@code false} otherwise.
+     *
+     * @see #addCrossProfileCalendarPackage(ComponentName, String)
+     * @see #removeCrossProfileCalendarPackage(ComponentName, String)
+     * @see #getCrossProfileCalendarPackages(ComponentName)
+     * @hide
+     */
+    public @NonNull boolean isPackageAllowedToAccessCalendar(@NonNull  String packageName) {
+        throwIfParentInstance("isPackageAllowedToAccessCalendar");
+        if (mService != null) {
+            try {
+                return mService.isPackageAllowedToAccessCalendarForUser(packageName,
+                        mContext.getUserId());
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        }
+        return false;
+    }
 }
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index ce1f4ef..297676d 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -20,6 +20,7 @@
 import android.app.admin.NetworkEvent;
 import android.app.IApplicationThread;
 import android.app.IServiceConnection;
+import android.app.admin.StartInstallingUpdateCallback;
 import android.app.admin.SystemUpdateInfo;
 import android.app.admin.SystemUpdatePolicy;
 import android.app.admin.PasswordMetrics;
@@ -417,4 +418,13 @@
     void setGlobalPrivateDns(in ComponentName admin, int mode, in String privateDnsHost);
     int getGlobalPrivateDnsMode(in ComponentName admin);
     String getGlobalPrivateDnsHost(in ComponentName admin);
+
+    void grantDeviceIdsAccessToProfileOwner(in ComponentName who, int userId);
+
+    void installUpdateFromFile(in ComponentName admin, in ParcelFileDescriptor updateFileDescriptor, in StartInstallingUpdateCallback listener);
+
+    void addCrossProfileCalendarPackage(in ComponentName admin, String packageName);
+    boolean removeCrossProfileCalendarPackage(in ComponentName admin, String packageName);
+    List<String> getCrossProfileCalendarPackages(in ComponentName admin);
+    boolean isPackageAllowedToAccessCalendarForUser(String packageName, int userHandle);
 }
diff --git a/core/java/android/app/admin/StartInstallingUpdateCallback.aidl b/core/java/android/app/admin/StartInstallingUpdateCallback.aidl
new file mode 100644
index 0000000..df04707
--- /dev/null
+++ b/core/java/android/app/admin/StartInstallingUpdateCallback.aidl
@@ -0,0 +1,27 @@
+/*
+**
+** Copyright 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.app.admin;
+
+/**
+* Callback used between {@link DevicePolicyManager} and {@link DevicePolicyManagerService} to
+* indicate that starting installing an update is finished.
+* {@hide}
+*/
+oneway interface StartInstallingUpdateCallback {
+    void onStartInstallingUpdateError(int errorCode, String errorMessage);
+}
\ No newline at end of file
diff --git a/core/java/android/app/backup/OWNERS b/core/java/android/app/backup/OWNERS
index 1c9a43a..673d85f 100644
--- a/core/java/android/app/backup/OWNERS
+++ b/core/java/android/app/backup/OWNERS
@@ -1,7 +1,6 @@
-artikz@google.com
+anniemeng@google.com
 brufino@google.com
 bryanmawhinney@google.com
 ctate@google.com
 jorlow@google.com
-mkarpinski@google.com
 
diff --git a/core/java/android/app/role/IRoleManager.aidl b/core/java/android/app/role/IRoleManager.aidl
index 2cf13ec2..3ca8ec0 100644
--- a/core/java/android/app/role/IRoleManager.aidl
+++ b/core/java/android/app/role/IRoleManager.aidl
@@ -37,6 +37,8 @@
 
     void clearRoleHoldersAsUser(in String roleName, int userId, in IRoleManagerCallback callback);
 
+    void setRoleNamesFromController(in List<String> roleNames);
+
     boolean addRoleHolderFromController(in String roleName, in String packageName);
 
     boolean removeRoleHolderFromController(in String roleName, in String packageName);
diff --git a/core/java/android/app/role/RoleManager.java b/core/java/android/app/role/RoleManager.java
index ed27d9f..7cb245a 100644
--- a/core/java/android/app/role/RoleManager.java
+++ b/core/java/android/app/role/RoleManager.java
@@ -25,6 +25,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Binder;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.UserHandle;
@@ -66,10 +67,33 @@
 
     /**
      * The name of the SMS role.
+     *
+     * @see Intent#CATEGORY_APP_MESSAGING
      */
     public static final String ROLE_SMS = "android.app.role.SMS";
 
     /**
+     * The name of the browser role.
+     *
+     * @see Intent#CATEGORY_APP_BROWSER
+     */
+    public static final String ROLE_BROWSER = "android.app.role.BROWSER";
+
+    /**
+     * The name of the gallery role.
+     *
+     * @see Intent#CATEGORY_APP_GALLERY
+     */
+    public static final String ROLE_GALLERY = "android.app.role.GALLERY";
+
+    /**
+     * The name of the music player role.
+     *
+     * @see Intent#CATEGORY_APP_MUSIC
+     */
+    public static final String ROLE_MUSIC = "android.app.role.MUSIC";
+
+    /**
      * The action used to request user approval of a role for an application.
      *
      * @hide
@@ -91,8 +115,8 @@
      *
      * @hide
      */
-    public static final String PERMISSION_MANAGE_ROLE_HOLDERS_FROM_CONTROLLER =
-            "com.android.permissioncontroller.permission.MANAGE_ROLE_HOLDERS_FROM_CONTROLLER";
+    public static final String PERMISSION_MANAGE_ROLES_FROM_CONTROLLER =
+            "com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER";
 
     @NonNull
     private final Context mContext;
@@ -189,7 +213,7 @@
     @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS)
     @SystemApi
     public List<String> getRoleHolders(@NonNull String roleName) {
-        return getRoleHoldersAsUser(roleName, UserHandle.of(UserHandle.getCallingUserId()));
+        return getRoleHoldersAsUser(roleName, Process.myUserHandle());
     }
 
     /**
@@ -341,12 +365,36 @@
     }
 
     /**
+     * Set the names of all the available roles. Should only be called from
+     * {@link android.rolecontrollerservice.RoleControllerService}.
+     * <p>
+     * <strong>Note:</strong> Using this API requires holding
+     * {@link #PERMISSION_MANAGE_ROLES_FROM_CONTROLLER}.
+     *
+     * @param roleNames the names of all the available roles
+     *
+     * @throws IllegalArgumentException if the list of role names is {@code null}.
+     *
+     * @hide
+     */
+    @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER)
+    @SystemApi
+    public void setRoleNamesFromController(@NonNull List<String> roleNames) {
+        Preconditions.checkNotNull(roleNames, "roleNames cannot be null");
+        try {
+            mService.setRoleNamesFromController(roleNames);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * Add a specific application to the holders of a role, only modifying records inside
      * {@link RoleManager}. Should only be called from
      * {@link android.rolecontrollerservice.RoleControllerService}.
      * <p>
      * <strong>Note:</strong> Using this API requires holding
-     * {@link #PERMISSION_MANAGE_ROLE_HOLDERS_FROM_CONTROLLER}.
+     * {@link #PERMISSION_MANAGE_ROLES_FROM_CONTROLLER}.
      *
      * @param roleName the name of the role to add the role holder for
      * @param packageName the package name of the application to add to the role holders
@@ -361,7 +409,7 @@
      *
      * @hide
      */
-    @RequiresPermission(PERMISSION_MANAGE_ROLE_HOLDERS_FROM_CONTROLLER)
+    @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER)
     @SystemApi
     public boolean addRoleHolderFromController(@NonNull String roleName,
             @NonNull String packageName) {
@@ -380,7 +428,7 @@
      * {@link android.rolecontrollerservice.RoleControllerService}.
      * <p>
      * <strong>Note:</strong> Using this API requires holding
-     * {@link #PERMISSION_MANAGE_ROLE_HOLDERS_FROM_CONTROLLER}.
+     * {@link #PERMISSION_MANAGE_ROLES_FROM_CONTROLLER}.
      *
      * @param roleName the name of the role to remove the role holder for
      * @param packageName the package name of the application to remove from the role holders
@@ -395,7 +443,7 @@
      *
      * @hide
      */
-    @RequiresPermission(PERMISSION_MANAGE_ROLE_HOLDERS_FROM_CONTROLLER)
+    @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER)
     @SystemApi
     public boolean removeRoleHolderFromController(@NonNull String roleName,
             @NonNull String packageName) {
diff --git a/core/java/android/app/usage/UsageStatsManager.java b/core/java/android/app/usage/UsageStatsManager.java
index 5514851..3f34803 100644
--- a/core/java/android/app/usage/UsageStatsManager.java
+++ b/core/java/android/app/usage/UsageStatsManager.java
@@ -193,10 +193,6 @@
     /** @hide */
     public static final int REASON_SUB_USAGE_EXEMPTED_SYNC_START = 0x000D;
     /** @hide */
-    public static final int REASON_SUB_USAGE_FOREGROUND_SERVICE_START = 0x000E;
-    /** @hide */
-    public static final int REASON_SUB_USAGE_FOREGROUND_SERVICE_STOP = 0x000F;
-    /** @hide */
     public static final int REASON_SUB_PREDICTED_RESTORED       = 0x0001;
 
 
diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java
index 318dbee..c740c42 100644
--- a/core/java/android/appwidget/AppWidgetHostView.java
+++ b/core/java/android/appwidget/AppWidgetHostView.java
@@ -88,6 +88,7 @@
     int mViewMode = VIEW_MODE_NOINIT;
     int mLayoutId = -1;
     private OnClickHandler mOnClickHandler;
+    private boolean mOnLightBackground;
 
     private Executor mAsyncExecutor;
     private CancellationSignal mLastExecutionSignal;
@@ -374,6 +375,15 @@
     }
 
     /**
+     * Sets whether the widget should is being displayed on a light/white background and use an
+     * alternate UI if available.
+     * @see RemoteViews#setLightBackgroundLayoutId(int)
+     */
+    public void setOnLightBackground(boolean useDarkTextLayout) {
+        mOnLightBackground = useDarkTextLayout;
+    }
+
+    /**
      * Update the AppWidgetProviderInfo for this view, and reset it to the
      * initial layout.
      */
@@ -413,6 +423,10 @@
             mLayoutId = -1;
             mViewMode = VIEW_MODE_DEFAULT;
         } else {
+            if (mOnLightBackground) {
+                remoteViews = remoteViews.getDarkTextViews();
+            }
+
             if (mAsyncExecutor != null && useAsyncIfPossible) {
                 inflateAsync(remoteViews);
                 return;
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index 0aa0535..235dc5c 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -347,7 +347,7 @@
      * device are requested to be fetched using Service Discovery Protocol
      * <p> Always contains the extra field {@link #EXTRA_DEVICE}
      * <p> Always contains the extra field {@link #EXTRA_UUID}
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive.
+     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN} to receive.
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_UUID =
diff --git a/core/java/android/bluetooth/BluetoothHeadset.java b/core/java/android/bluetooth/BluetoothHeadset.java
index 636b1b9..8d9d340 100644
--- a/core/java/android/bluetooth/BluetoothHeadset.java
+++ b/core/java/android/bluetooth/BluetoothHeadset.java
@@ -973,11 +973,11 @@
      */
     @UnsupportedAppUsage
     public void phoneStateChanged(int numActive, int numHeld, int callState, String number,
-            int type) {
+            int type, String name) {
         final IBluetoothHeadset service = mService;
         if (service != null && isEnabled()) {
             try {
-                service.phoneStateChanged(numActive, numHeld, callState, number, type);
+                service.phoneStateChanged(numActive, numHeld, callState, number, type, name);
             } catch (RemoteException e) {
                 Log.e(TAG, e.toString());
             }
diff --git a/core/java/android/bluetooth/BluetoothHearingAid.java b/core/java/android/bluetooth/BluetoothHearingAid.java
index 47c4ee6..6ed7942 100644
--- a/core/java/android/bluetooth/BluetoothHearingAid.java
+++ b/core/java/android/bluetooth/BluetoothHearingAid.java
@@ -51,7 +51,7 @@
  */
 public final class BluetoothHearingAid implements BluetoothProfile {
     private static final String TAG = "BluetoothHearingAid";
-    private static final boolean DBG = false;
+    private static final boolean DBG = true;
     private static final boolean VDBG = false;
 
     /**
diff --git a/core/java/android/bluetooth/BluetoothHidDeviceAppSdpSettings.java b/core/java/android/bluetooth/BluetoothHidDeviceAppSdpSettings.java
index 237082e..2f0b44f 100644
--- a/core/java/android/bluetooth/BluetoothHidDeviceAppSdpSettings.java
+++ b/core/java/android/bluetooth/BluetoothHidDeviceAppSdpSettings.java
@@ -18,6 +18,7 @@
 
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.util.EventLog;
 
 
 /**
@@ -30,6 +31,8 @@
  */
 public final class BluetoothHidDeviceAppSdpSettings implements Parcelable {
 
+    private static final int MAX_DESCRIPTOR_SIZE = 2048;
+
     private final String mName;
     private final String mDescription;
     private final String mProvider;
@@ -55,6 +58,12 @@
         mDescription = description;
         mProvider = provider;
         mSubclass = subclass;
+
+        if (descriptors == null || descriptors.length > MAX_DESCRIPTOR_SIZE) {
+            EventLog.writeEvent(0x534e4554, "119819889", -1, "");
+            throw new IllegalArgumentException("descriptors must be not null and shorter than "
+                    + MAX_DESCRIPTOR_SIZE);
+        }
         mDescriptors = descriptors.clone();
     }
 
diff --git a/core/java/android/bluetooth/BluetoothManager.java b/core/java/android/bluetooth/BluetoothManager.java
index 11f8ab7..e3672a7 100644
--- a/core/java/android/bluetooth/BluetoothManager.java
+++ b/core/java/android/bluetooth/BluetoothManager.java
@@ -52,8 +52,7 @@
 @RequiresFeature(PackageManager.FEATURE_BLUETOOTH)
 public final class BluetoothManager {
     private static final String TAG = "BluetoothManager";
-    private static final boolean DBG = true;
-    private static final boolean VDBG = true;
+    private static final boolean DBG = false;
 
     private final BluetoothAdapter mAdapter;
 
diff --git a/core/java/android/bluetooth/le/ScanRecord.java b/core/java/android/bluetooth/le/ScanRecord.java
index 7988008..2174255 100644
--- a/core/java/android/bluetooth/le/ScanRecord.java
+++ b/core/java/android/bluetooth/le/ScanRecord.java
@@ -116,6 +116,9 @@
      */
     @Nullable
     public byte[] getManufacturerSpecificData(int manufacturerId) {
+        if (mManufacturerSpecificData == null) {
+            return null;
+        }
         return mManufacturerSpecificData.get(manufacturerId);
     }
 
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java
index 949cdd6..7d5202d 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -42,7 +42,6 @@
 import android.graphics.Point;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.CancellationSignal;
 import android.os.DeadObjectException;
@@ -98,8 +97,7 @@
      *
      * @hide
      */
-    public static final boolean DEPRECATE_DATA_COLUMNS = SystemProperties
-            .getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false);
+    public static final boolean DEPRECATE_DATA_COLUMNS = StorageManager.hasIsolatedStorage();
 
     /**
      * Special filesystem path prefix which indicates that a path should be
@@ -3244,18 +3242,8 @@
         Objects.requireNonNull(uri);
         Objects.requireNonNull(size);
 
-        // Older apps might be relying on mutable results, so only consider
-        // giving them hardware bitmaps once they target Q or higher. If modern
-        // apps need mutable thumbnails, they can always roll their own logic.
-        final int allocator;
-        if (getTargetSdkVersion() >= Build.VERSION_CODES.Q) {
-            allocator = ImageDecoder.ALLOCATOR_DEFAULT;
-        } else {
-            allocator = ImageDecoder.ALLOCATOR_SOFTWARE;
-        }
-
         try (ContentProviderClient client = acquireContentProviderClient(uri)) {
-            return loadThumbnail(client, uri, size, signal, allocator);
+            return loadThumbnail(client, uri, size, signal, ImageDecoder.ALLOCATOR_SOFTWARE);
         }
     }
 
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 004417b..68aac64 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -425,6 +425,15 @@
      */
     public static final int BIND_EXTERNAL_SERVICE = 0x80000000;
 
+    /**
+     * These bind flags reduce the strength of the binding such that we shouldn't
+     * consider it as pulling the process up to the level of the one that is bound to it.
+     * @hide
+     */
+    public static final int BIND_REDUCTION_FLAGS =
+            Context.BIND_ALLOW_OOM_MANAGEMENT | Context.BIND_WAIVE_PRIORITY
+                    | Context.BIND_ADJUST_BELOW_PERCEPTIBLE | Context.BIND_NOT_VISIBLE;
+
     /** @hide */
     @IntDef(flag = true, prefix = { "RECEIVER_VISIBLE_" }, value = {
             RECEIVER_VISIBLE_TO_INSTANT_APPS
@@ -732,16 +741,22 @@
     /** Return the name of this application's package. */
     public abstract String getPackageName();
 
-    /** @hide Return the name of the base context this context is derived from. */
+    /**
+     * @hide Return the name of the base context this context is derived from.
+     * This is the same as {@link #getOpPackageName()} except in
+     * cases where system components are loaded into other app processes, in which
+     * case {@link #getOpPackageName()} will be the name of the primary package in
+     * that process (so that app ops uid verification will work with the name).
+     */
     @UnsupportedAppUsage
     public abstract String getBasePackageName();
 
-    /** @hide Return the package name that should be used for app ops calls from
-     * this context.  This is the same as {@link #getBasePackageName()} except in
-     * cases where system components are loaded into other app processes, in which
-     * case this will be the name of the primary package in that process (so that app
-     * ops uid verification will work with the name). */
-    @TestApi
+    /**
+     * Return the package name that should be used for {@link android.app.AppOpsManager} calls from
+     * this context, so that app ops manager's uid verification will work with the name.
+     * <p>
+     * This is not generally intended for third party application developers.
+     */
     public abstract String getOpPackageName();
 
     /** Return the full application info for this context's package. */
@@ -2982,6 +2997,31 @@
     }
 
     /**
+     * For a service previously bound with {@link #bindService} or a related method, change
+     * how the system manages that service's process in relation to other processes.  This
+     * doesn't modify the original bind flags that were passed in when binding, but adjusts
+     * how the process will be managed in some cases based on those flags.  Currently only
+     * works on isolated processes (will be ignored for non-isolated processes).
+     *
+     * @param conn The connection interface previously supplied to bindService().  This
+     *             parameter must not be null.
+     * @param group A group to put this connection's process in.  Upon calling here, this
+     *              will override any previous group that was set for that process.  The group
+     *              tells the system about processes that are logically grouped together, so
+     *              should be managed as one unit of importance (such as when being considered
+     *              a recently used app).  All processes in the same app with the same group
+     *              are considered to be related.  Supplying 0 reverts to the default behavior
+     *              of not grouping.
+     * @param importance Additional importance of the processes within a group.  Upon calling
+     *                   here, this will override any previous group that was set for that
+     *                   process.  This fine-tunes process killing of all processes within
+     *                   a related groups -- higher importance values will be killed before
+     *                   lower ones.
+     */
+    public abstract void updateServiceGroup(@NonNull ServiceConnection conn, int group,
+            int importance);
+
+    /**
      * Disconnect from an application service.  You will no longer receive
      * calls as the service is restarted, and the service is now allowed to
      * stop at any time.
@@ -3893,12 +3933,13 @@
     public static final String AUTOFILL_MANAGER_SERVICE = "autofill";
 
     /**
-     * Official published name of the intelligence service.
+     * Official published name of the smart suggestions service.
      *
      * @hide
      * @see #getSystemService(String)
      */
-    public static final String INTELLIGENCE_MANAGER_SERVICE = "intelligence";
+    // TODO(b/111276913): rename string (will require SELinux change first)
+    public static final String CONTENT_CAPTURE_MANAGER_SERVICE = "intelligence";
 
     /**
      * Use with {@link #getSystemService(String)} to access the
@@ -5183,6 +5224,25 @@
     }
 
     /**
+     * Checks whether this context supports content capture.
+     *
+     * @hide
+     */
+    // NOTE: for now we just need to check if it's supported so we can optimize calls that can be
+    // skipped when it isn't. Eventually, we might need a full
+    // ContentCaptureManager.ContentCaptureClient interface (as it's done with AutofillClient).
+    //
+    public boolean isContentCaptureSupported() {
+        return false;
+    }
+
+    /**
+     * @hide
+     */
+    public void setContentCaptureSupported(@SuppressWarnings("unused") boolean supported) {
+    }
+
+    /**
      * Throws an exception if the Context is using system resources,
      * which are non-runtime-overlay-themable and may show inconsistent UI.
      * @hide
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index 88696b0e..26ed3b7 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -726,6 +726,11 @@
     }
 
     @Override
+    public void updateServiceGroup(ServiceConnection conn, int group, int importance) {
+        mBase.updateServiceGroup(conn, group, importance);
+    }
+
+    @Override
     public void unbindService(ServiceConnection conn) {
         mBase.unbindService(conn);
     }
@@ -1044,4 +1049,20 @@
             mBase.setAutofillCompatibilityEnabled(autofillCompatEnabled);
         }
     }
+
+    /**
+     * @hide
+     */
+    @Override
+    public boolean isContentCaptureSupported() {
+        return mBase.isContentCaptureSupported();
+    }
+
+    /**
+     * @hide
+     */
+    @Override
+    public void setContentCaptureSupported(boolean supported) {
+        mBase.setContentCaptureSupported(supported);
+    }
 }
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 10c6bc6..edfb3a7 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1757,30 +1757,6 @@
             "android.intent.action.MANAGE_APP_PERMISSIONS";
 
     /**
-     * Activity action: Launch UI to manage a specific permissions of an app.
-     * <p>
-     * Input: {@link #EXTRA_PACKAGE_NAME} specifies the package whose permission
-     * will be managed by the launched UI.
-     * </p>
-     * <p>
-     * Input: {@link #EXTRA_PERMISSION_NAME} specifies the (individual) permission
-     * that should be managed by the launched UI.
-     * </p>
-     * <p>
-     * Output: Nothing.
-     * </p>
-     *
-     * @see #EXTRA_PACKAGE_NAME
-     * @see #EXTRA_PERMISSION_NAME
-     *
-     * @hide
-     */
-    @SystemApi
-    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
-    public static final String ACTION_MANAGE_APP_PERMISSION =
-            "android.intent.action.MANAGE_APP_PERMISSION";
-
-    /**
      * Activity action: Launch UI to manage permissions.
      * <p>
      * Input: Nothing.
@@ -3586,6 +3562,27 @@
     public static final String
             ACTION_OPEN_DOCUMENT_TREE = "android.intent.action.OPEN_DOCUMENT_TREE";
 
+
+    /**
+     * Activity Action: Perform text translation.
+     * <p>
+     * Input: {@link #EXTRA_TEXT getCharSequence(EXTRA_TEXT)} is the text to translate.
+     * <p>
+     * Output: nothing.
+     */
+    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_TRANSLATE = "android.intent.action.TRANSLATE";
+
+    /**
+     * Activity Action: Define the meaning of the selected word(s).
+     * <p>
+     * Input: {@link #EXTRA_TEXT getCharSequence(EXTRA_TEXT)} is the text to define.
+     * <p>
+     * Output: nothing.
+     */
+    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_DEFINE = "android.intent.action.DEFINE";
+
     /**
      * Broadcast Action: List of dynamic sensor is changed due to new sensor being connected or
      * exisiting sensor being disconnected.
@@ -4092,6 +4089,18 @@
      */
     public static final String ACTION_DOCK_ACTIVE = "android.intent.action.DOCK_ACTIVE";
 
+    /**
+     * Broadcast Action: Indicates that a new device customization has been
+     * downloaded and applied (packages installed, runtime resource overlays
+     * enabled, xml files copied, ...), and that it is time for components that
+     * need to for example clear their caches to do so now.
+     *
+     * @hide
+     */
+    @SystemApi
+    public static final String ACTION_DEVICE_CUSTOMIZATION_READY =
+            "android.intent.action.DEVICE_CUSTOMIZATION_READY";
+
 
     // ---------------------------------------------------------------------
     // ---------------------------------------------------------------------
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index 48240db..98a135f 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -32,7 +32,6 @@
 import android.os.Parcelable;
 import android.os.UserHandle;
 import android.os.storage.StorageManager;
-import android.text.TextUtils;
 import android.util.Printer;
 import android.util.SparseArray;
 import android.util.proto.ProtoOutputStream;
@@ -45,6 +44,7 @@
 import java.text.Collator;
 import java.util.Arrays;
 import java.util.Comparator;
+import java.util.List;
 import java.util.Objects;
 import java.util.UUID;
 
@@ -463,16 +463,6 @@
     public static final int PRIVATE_FLAG_CANT_SAVE_STATE = 1<<1;
 
     /**
-     * Value for {@link #privateFlags}: Set to true if the application has been
-     * installed using the forward lock option.
-     *
-     * NOTE: DO NOT CHANGE THIS VALUE!  It is saved in packages.xml.
-     *
-     * {@hide}
-     */
-    public static final int PRIVATE_FLAG_FORWARD_LOCK = 1<<2;
-
-    /**
      * Value for {@link #privateFlags}: set to {@code true} if the application
      * is permitted to hold privileged permissions.
      *
@@ -650,7 +640,6 @@
             PRIVATE_FLAG_CANT_SAVE_STATE,
             PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE,
             PRIVATE_FLAG_DIRECT_BOOT_AWARE,
-            PRIVATE_FLAG_FORWARD_LOCK,
             PRIVATE_FLAG_HAS_DOMAIN_URLS,
             PRIVATE_FLAG_HIDDEN,
             PRIVATE_FLAG_INSTANT,
@@ -830,7 +819,17 @@
      * the structure.
      */
     public String[] sharedLibraryFiles;
-    
+
+    /**
+     * List of all shared libraries this application is linked against.  This
+     * field is only set if the {@link PackageManager#GET_SHARED_LIBRARY_FILES
+     * PackageManager.GET_SHARED_LIBRARY_FILES} flag was used when retrieving
+     * the structure.
+     *
+     * {@hide}
+     */
+    public List<SharedLibraryInfo> sharedLibraryInfos;
+
     /**
      * Full path to the default directory assigned to the package for its
      * persistent data.
@@ -1474,6 +1473,7 @@
         seInfo = orig.seInfo;
         seInfoUser = orig.seInfoUser;
         sharedLibraryFiles = orig.sharedLibraryFiles;
+        sharedLibraryInfos = orig.sharedLibraryInfos;
         dataDir = orig.dataDir;
         deviceProtectedDataDir = orig.deviceProtectedDataDir;
         credentialProtectedDataDir = orig.credentialProtectedDataDir;
@@ -1549,6 +1549,7 @@
         dest.writeString(seInfo);
         dest.writeString(seInfoUser);
         dest.writeStringArray(sharedLibraryFiles);
+        dest.writeTypedList(sharedLibraryInfos);
         dest.writeString(dataDir);
         dest.writeString(deviceProtectedDataDir);
         dest.writeString(credentialProtectedDataDir);
@@ -1621,6 +1622,7 @@
         seInfo = source.readString();
         seInfoUser = source.readString();
         sharedLibraryFiles = source.readStringArray();
+        sharedLibraryInfos = source.createTypedArrayList(SharedLibraryInfo.CREATOR);
         dataDir = source.readString();
         deviceProtectedDataDir = source.readString();
         credentialProtectedDataDir = source.readString();
@@ -1768,7 +1770,7 @@
      * is on the package whitelist.
      *
      * @param policy configured policy for this app, or {@link #HIDDEN_API_ENFORCEMENT_DEFAULT}
-     *               if nothing configured.
+     *        if nothing configured.
      * @hide
      */
     public void maybeUpdateHiddenApiEnforcementPolicy(@HiddenApiEnforcementPolicy int policy) {
@@ -1829,17 +1831,6 @@
         return (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0;
     }
 
-    /** @hide */
-    public boolean isExternalAsec() {
-        return TextUtils.isEmpty(volumeUuid) && isExternal();
-    }
-
-    /** @hide */
-    @UnsupportedAppUsage
-    public boolean isForwardLocked() {
-        return (privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0;
-    }
-
     /**
      * True if the application is installed as an instant app.
      * @hide
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index d0eff2e..dbea821 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -676,4 +676,6 @@
     String getSystemTextClassifierPackageName();
 
     boolean isPackageStateProtected(String packageName, int userId);
+
+    void sendDeviceCustomizationReadyBroadcast();
 }
diff --git a/core/java/android/content/pm/PackageInfo.java b/core/java/android/content/pm/PackageInfo.java
index ecdd810..099d15a 100644
--- a/core/java/android/content/pm/PackageInfo.java
+++ b/core/java/android/content/pm/PackageInfo.java
@@ -22,6 +22,9 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Overall information about the contents of a package.  This corresponds
  * to all of the information collected from AndroidManifest.xml.
@@ -204,7 +207,10 @@
      * {@link PackageManager#GET_PERMISSIONS} was set.  This list includes
      * all permissions requested, even those that were not granted or known
      * by the system at install time.
+     *
+     * @deprecated Use {@link #usesPermissions}
      */
+    @Deprecated
     public String[] requestedPermissions;
 
     /**
@@ -214,10 +220,23 @@
      * {@link PackageManager#GET_PERMISSIONS} was set.  Each value matches
      * the corresponding entry in {@link #requestedPermissions}, and will have
      * the flag {@link #REQUESTED_PERMISSION_GRANTED} set as appropriate.
+     *
+     * @deprecated Use {@link #usesPermissions}
      */
+    @Deprecated
     public int[] requestedPermissionsFlags;
 
     /**
+     * Array of all {@link android.R.styleable#AndroidManifestUsesPermission
+     * &lt;uses-permission&gt;} tags included under &lt;manifest&gt;,
+     * or null if there were none.  This is only filled in if the flag
+     * {@link PackageManager#GET_PERMISSIONS} was set.  This list includes
+     * all permissions requested, even those that were not granted or known
+     * by the system at install time.
+     */
+    public UsesPermissionInfo[] usesPermissions;
+
+    /**
      * Flag for {@link #requestedPermissionsFlags}: the requested permission
      * is required for the application to run; the user can not optionally
      * disable it.  Currently all permissions are required.
@@ -456,6 +475,7 @@
         dest.writeTypedArray(permissions, parcelableFlags);
         dest.writeStringArray(requestedPermissions);
         dest.writeIntArray(requestedPermissionsFlags);
+        dest.writeTypedArray(usesPermissions, parcelableFlags);
         dest.writeTypedArray(signatures, parcelableFlags);
         dest.writeTypedArray(configPreferences, parcelableFlags);
         dest.writeTypedArray(reqFeatures, parcelableFlags);
@@ -520,6 +540,7 @@
         permissions = source.createTypedArray(PermissionInfo.CREATOR);
         requestedPermissions = source.createStringArray();
         requestedPermissionsFlags = source.createIntArray();
+        usesPermissions = source.createTypedArray(UsesPermissionInfo.CREATOR);
         signatures = source.createTypedArray(Signature.CREATOR);
         configPreferences = source.createTypedArray(ConfigurationInfo.CREATOR);
         reqFeatures = source.createTypedArray(FeatureInfo.CREATOR);
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index 8f90199..07672d9 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -1374,12 +1374,6 @@
         }
 
         /** {@hide} */
-        public void setInstallFlagsInternal() {
-            installFlags |= PackageManager.INSTALL_INTERNAL;
-            installFlags &= ~PackageManager.INSTALL_EXTERNAL;
-        }
-
-        /** {@hide} */
         @SystemApi
         public void setAllowDowngrade(boolean allowDowngrade) {
             if (allowDowngrade) {
@@ -1390,12 +1384,6 @@
         }
 
         /** {@hide} */
-        public void setInstallFlagsExternal() {
-            installFlags |= PackageManager.INSTALL_EXTERNAL;
-            installFlags &= ~PackageManager.INSTALL_INTERNAL;
-        }
-
-        /** {@hide} */
         public void setInstallFlagsForcePermissionPrompt() {
             installFlags |= PackageManager.INSTALL_FORCE_PERMISSION_PROMPT;
         }
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 361beba..b7df2bf 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -700,10 +700,8 @@
 
     /** @hide */
     @IntDef(flag = true, prefix = { "INSTALL_" }, value = {
-            INSTALL_FORWARD_LOCK,
             INSTALL_REPLACE_EXISTING,
             INSTALL_ALLOW_TEST,
-            INSTALL_EXTERNAL,
             INSTALL_INTERNAL,
             INSTALL_FROM_ADB,
             INSTALL_ALL_USERS,
@@ -721,17 +719,6 @@
     public @interface InstallFlags {}
 
     /**
-     * Flag parameter for {@link #installPackage} to indicate that this package
-     * should be installed as forward locked, i.e. only the app itself should
-     * have access to its code and non-resource assets.
-     *
-     * @deprecated new installs into ASEC containers are no longer supported.
-     * @hide
-     */
-    @Deprecated
-    public static final int INSTALL_FORWARD_LOCK = 0x00000001;
-
-    /**
      * Flag parameter for {@link #installPackage} to indicate that you want to
      * replace an already installed package, if one exists.
      *
@@ -750,17 +737,6 @@
 
     /**
      * Flag parameter for {@link #installPackage} to indicate that this package
-     * must be installed to an ASEC on a {@link VolumeInfo#TYPE_PUBLIC}.
-     *
-     * @deprecated new installs into ASEC containers are no longer supported;
-     *             use adoptable storage instead.
-     * @hide
-     */
-    @Deprecated
-    public static final int INSTALL_EXTERNAL = 0x00000008;
-
-    /**
-     * Flag parameter for {@link #installPackage} to indicate that this package
      * must be installed to internal storage.
      *
      * @hide
@@ -1521,14 +1497,6 @@
 
     /**
      * Error code that is passed to the {@link IPackageMoveObserver} if the
-     * specified package cannot be moved since its forward locked.
-     *
-     * @hide
-     */
-    public static final int MOVE_FAILED_FORWARD_LOCKED = -4;
-
-    /**
-     * Error code that is passed to the {@link IPackageMoveObserver} if the
      * specified package cannot be moved to the specified location.
      *
      * @hide
@@ -5404,6 +5372,10 @@
     public abstract void removePackageFromPreferred(String packageName);
 
     /**
+     * @deprecated This function no longer does anything; it was an old
+     * approach to managing preferred activities, which has been superseded
+     * by (and conflicts with) the modern activity-based preferences.
+     *
      * Retrieve the list of all currently configured preferred packages. The
      * first package on the list is the most preferred, the last is the least
      * preferred.
@@ -5412,6 +5384,7 @@
      * @return A List of PackageInfo objects, one for each preferred
      *         application, in order of preference.
      */
+    @Deprecated
     public abstract List<PackageInfo> getPreferredPackages(@PackageInfoFlags int flags);
 
     /**
@@ -5438,11 +5411,16 @@
             ComponentName[] set, ComponentName activity);
 
     /**
+     * @deprecated This is a protected API that should not have been available
+     * to third party applications.  It is the platform's responsibility for
+     * assigning preferred activities and this cannot be directly modified.
+     *
      * Same as {@link #addPreferredActivity(IntentFilter, int,
             ComponentName[], ComponentName)}, but with a specific userId to apply the preference
             to.
      * @hide
      */
+    @Deprecated
     @UnsupportedAppUsage
     public void addPreferredActivityAsUser(IntentFilter filter, int match,
             ComponentName[] set, ComponentName activity, @UserIdInt int userId) {
@@ -5476,6 +5454,10 @@
             ComponentName[] set, ComponentName activity);
 
     /**
+     * @deprecated This is a protected API that should not have been available
+     * to third party applications.  It is the platform's responsibility for
+     * assigning preferred activities and this cannot be directly modified.
+     *
      * Replaces an existing preferred activity mapping to the system, and if that were not present
      * adds a new preferred activity.  This will be used to automatically select the given activity
      * component when {@link Context#startActivity(Intent) Context.startActivity()} finds multiple
@@ -5491,6 +5473,7 @@
      *
      * @hide
      */
+    @Deprecated
     @SystemApi
     public void replacePreferredActivity(@NonNull IntentFilter filter, int match,
             @NonNull List<ComponentName> set, @NonNull ComponentName activity) {
@@ -5508,6 +5491,10 @@
     }
 
     /**
+     * @deprecated This function no longer does anything; it was an old
+     * approach to managing preferred activities, which has been superseded
+     * by (and conflicts with) the modern activity-based preferences.
+     *
      * Remove all preferred activity mappings, previously added with
      * {@link #addPreferredActivity}, from the
      * system whose activities are implemented in the given package name.
@@ -5516,9 +5503,14 @@
      * @param packageName The name of the package whose preferred activity
      * mappings are to be removed.
      */
+    @Deprecated
     public abstract void clearPackagePreferredActivities(String packageName);
 
     /**
+     * @deprecated This function no longer does anything; it was an old
+     * approach to managing preferred activities, which has been superseded
+     * by (and conflicts with) the modern activity-based preferences.
+     *
      * Retrieve all preferred activities, previously added with
      * {@link #addPreferredActivity}, that are
      * currently registered with the system.
@@ -5535,6 +5527,7 @@
      * (the number of distinct IntentFilter records, not the number of unique
      * activity components) that were found.
      */
+    @Deprecated
     public abstract int getPreferredActivities(@NonNull List<IntentFilter> outFilters,
             @NonNull List<ComponentName> outActivities, String packageName);
 
@@ -6441,4 +6434,18 @@
             "isPackageStateProtected not implemented in subclass");
     }
 
+    /**
+     * Notify to the rest of the system that a new device configuration has
+     * been prepared and that it is time to refresh caches.
+     *
+     * @see android.content.Intent#ACTION_DEVICE_CUSTOMIZATION_READY
+     *
+     * @hide
+     */
+    @SystemApi
+    public void sendDeviceCustomizationReadyBroadcast() {
+        throw new UnsupportedOperationException(
+            "sendDeviceCustomizationReadyBroadcast not implemented in subclass");
+    }
+
 }
diff --git a/core/java/android/content/pm/PackageManagerInternal.java b/core/java/android/content/pm/PackageManagerInternal.java
index 6f49cc4..b49c447 100644
--- a/core/java/android/content/pm/PackageManagerInternal.java
+++ b/core/java/android/content/pm/PackageManagerInternal.java
@@ -28,6 +28,7 @@
 import android.content.pm.PackageManager.ResolveInfoFlags;
 import android.os.Bundle;
 import android.os.PersistableBundle;
+import android.util.ArraySet;
 import android.util.SparseArray;
 
 import com.android.internal.util.function.TriFunction;
@@ -37,6 +38,7 @@
 import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 import java.util.function.BiFunction;
+import java.util.function.Consumer;
 
 /**
  * Package manager local system service interface.
@@ -735,4 +737,22 @@
 
     /** Returns {@code true} if the given user requires extra badging for icons. */
     public abstract boolean userNeedsBadging(int userId);
+
+    /**
+     * Perform the given action for each package.
+     * Note that packages lock will be held while performin the actions.
+     *
+     * @param actionLocked action to be performed
+     */
+    public abstract void forEachPackage(Consumer<PackageParser.Package> actionLocked);
+
+    /** Returns the list of enabled components */
+    public abstract ArraySet<String> getEnabledComponents(String packageName, int userId);
+
+    /** Returns the list of disabled components */
+    public abstract ArraySet<String> getDisabledComponents(String packageName, int userId);
+
+    /** Returns whether the given package is enabled for the given user */
+    public abstract @PackageManager.EnabledState int getApplicationEnabledState(
+            String packageName, int userId);
 }
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 7ef5264..ac18dca 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -785,18 +785,23 @@
                     pi.permissions[i] = generatePermissionInfo(p.permissions.get(i), flags);
                 }
             }
-            N = p.requestedPermissions.size();
+            N = p.usesPermissionInfos.size();
             if (N > 0) {
                 pi.requestedPermissions = new String[N];
                 pi.requestedPermissionsFlags = new int[N];
+                pi.usesPermissions = new UsesPermissionInfo[N];
                 for (int i=0; i<N; i++) {
-                    final String perm = p.requestedPermissions.get(i);
+                    UsesPermissionInfo info = p.usesPermissionInfos.get(i);
+                    final String perm = info.getPermission();
                     pi.requestedPermissions[i] = perm;
+                    int permissionFlags = 0;
                     // The notion of required permissions is deprecated but for compatibility.
-                    pi.requestedPermissionsFlags[i] |= PackageInfo.REQUESTED_PERMISSION_REQUIRED;
+                    permissionFlags |= PackageInfo.REQUESTED_PERMISSION_REQUIRED;
                     if (grantedPermissions != null && grantedPermissions.contains(perm)) {
-                        pi.requestedPermissionsFlags[i] |= PackageInfo.REQUESTED_PERMISSION_GRANTED;
+                        permissionFlags |= PackageInfo.REQUESTED_PERMISSION_GRANTED;
                     }
+                    pi.requestedPermissionsFlags[i] = permissionFlags;
+                    pi.usesPermissions[i] = new UsesPermissionInfo(info, permissionFlags);
                 }
             }
         }
@@ -829,9 +834,6 @@
 
     public static final int PARSE_MUST_BE_APK = 1 << 0;
     public static final int PARSE_IGNORE_PROCESSES = 1 << 1;
-    /** @deprecated forward lock no longer functional. remove. */
-    @Deprecated
-    public static final int PARSE_FORWARD_LOCK = 1 << 2;
     public static final int PARSE_EXTERNAL_STORAGE = 1 << 3;
     public static final int PARSE_IS_SYSTEM_DIR = 1 << 4;
     public static final int PARSE_COLLECT_CERTIFICATES = 1 << 5;
@@ -845,7 +847,6 @@
             PARSE_ENFORCE_CODE,
             PARSE_EXTERNAL_STORAGE,
             PARSE_FORCE_SDK,
-            PARSE_FORWARD_LOCK,
             PARSE_IGNORE_PROCESSES,
             PARSE_IS_SYSTEM_DIR,
             PARSE_MUST_BE_APK,
@@ -2006,11 +2007,6 @@
                 PARSE_DEFAULT_TARGET_SANDBOX);
         pkg.applicationInfo.targetSandboxVersion = targetSandboxVersion;
 
-        /* Set the global "forward lock" flag */
-        if ((flags & PARSE_FORWARD_LOCK) != 0) {
-            pkg.applicationInfo.privateFlags |= ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK;
-        }
-
         /* Set the global "on SD card" flag */
         if ((flags & PARSE_EXTERNAL_STORAGE) != 0) {
             pkg.applicationInfo.flags |= ApplicationInfo.FLAG_EXTERNAL_STORAGE;
@@ -2123,12 +2119,12 @@
                     return null;
                 }
             } else if (tagName.equals(TAG_USES_PERMISSION)) {
-                if (!parseUsesPermission(pkg, res, parser)) {
+                if (!parseUsesPermission(pkg, res, parser, outError)) {
                     return null;
                 }
             } else if (tagName.equals(TAG_USES_PERMISSION_SDK_M)
                     || tagName.equals(TAG_USES_PERMISSION_SDK_23)) {
-                if (!parseUsesPermission(pkg, res, parser)) {
+                if (!parseUsesPermission(pkg, res, parser, outError)) {
                     return null;
                 }
             } else if (tagName.equals(TAG_USES_CONFIGURATION)) {
@@ -2451,7 +2447,7 @@
                     newPermsMsg.append(' ');
                 }
                 newPermsMsg.append(npi.name);
-                pkg.requestedPermissions.add(npi.name);
+                addRequestedPermission(pkg, npi.name);
                 pkg.implicitPermissions.add(npi.name);
             }
         }
@@ -2472,7 +2468,7 @@
             for (int in = 0; in < newPerms.size(); in++) {
                 final String perm = newPerms.get(in);
                 if (!pkg.requestedPermissions.contains(perm)) {
-                    pkg.requestedPermissions.add(perm);
+                    addRequestedPermission(pkg, perm);
                     pkg.implicitPermissions.add(perm);
                 }
             }
@@ -2517,7 +2513,7 @@
         // If the storage model feature flag is disabled, we need to fiddle
         // around with permission definitions to return us to pre-Q behavior.
         // STOPSHIP(b/112545973): remove once feature enabled by default
-        if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) {
+        if (!StorageManager.hasIsolatedStorage()) {
             if ("android".equals(pkg.packageName)) {
                 final ArraySet<String> newGroups = new ArraySet<>();
                 newGroups.add(android.Manifest.permission_group.MEDIA_AURAL);
@@ -2532,55 +2528,33 @@
 
                 final ArraySet<String> newPermissions = new ArraySet<>();
                 newPermissions.add(android.Manifest.permission.READ_MEDIA_AUDIO);
-                newPermissions.add(android.Manifest.permission.WRITE_MEDIA_AUDIO);
                 newPermissions.add(android.Manifest.permission.READ_MEDIA_VIDEO);
-                newPermissions.add(android.Manifest.permission.WRITE_MEDIA_VIDEO);
                 newPermissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
-                newPermissions.add(android.Manifest.permission.WRITE_MEDIA_IMAGES);
                 newPermissions.add(android.Manifest.permission.ACCESS_MEDIA_LOCATION);
                 newPermissions.add(android.Manifest.permission.WRITE_OBB);
 
-                final ArraySet<String> dangerousPermissions = new ArraySet<>();
-                dangerousPermissions.add(android.Manifest.permission.READ_EXTERNAL_STORAGE);
-                dangerousPermissions.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
+                final ArraySet<String> removedPermissions = new ArraySet<>();
+                removedPermissions.add(android.Manifest.permission.READ_EXTERNAL_STORAGE);
+                removedPermissions.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
 
                 for (int i = pkg.permissions.size() - 1; i >= 0; i--) {
                     final Permission p = pkg.permissions.get(i);
                     if (newPermissions.contains(p.info.name)) {
                         pkg.permissions.remove(i);
-                    } else if (dangerousPermissions.contains(p.info.name)) {
-                        p.info.protectionLevel &= ~PermissionInfo.PROTECTION_MASK_BASE;
-                        p.info.protectionLevel |= PermissionInfo.PROTECTION_DANGEROUS;
+                    } else if (removedPermissions.contains(p.info.name)) {
+                        p.info.flags &= ~PermissionInfo.FLAG_REMOVED;
                     }
                 }
             }
         } else {
             if (FORCE_AUDIO_PACKAGES.contains(pkg.packageName)) {
-                pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_AUDIO);
-                pkg.requestedPermissions.add(android.Manifest.permission.WRITE_MEDIA_AUDIO);
+                addRequestedPermission(pkg, android.Manifest.permission.READ_MEDIA_AUDIO);
             }
             if (FORCE_VIDEO_PACKAGES.contains(pkg.packageName)) {
-                pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_VIDEO);
-                pkg.requestedPermissions.add(android.Manifest.permission.WRITE_MEDIA_VIDEO);
+                addRequestedPermission(pkg, android.Manifest.permission.READ_MEDIA_VIDEO);
             }
             if (FORCE_IMAGES_PACKAGES.contains(pkg.packageName)) {
-                pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
-                pkg.requestedPermissions.add(android.Manifest.permission.WRITE_MEDIA_IMAGES);
-            }
-
-            if (SystemProperties.getBoolean(StorageManager.PROP_FORCE_LEGACY, false)) {
-                if (pkg.requestedPermissions
-                        .contains(android.Manifest.permission.READ_EXTERNAL_STORAGE)) {
-                    pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_AUDIO);
-                    pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_VIDEO);
-                    pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
-                }
-                if (pkg.requestedPermissions
-                        .contains(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
-                    pkg.requestedPermissions.add(android.Manifest.permission.WRITE_MEDIA_AUDIO);
-                    pkg.requestedPermissions.add(android.Manifest.permission.WRITE_MEDIA_VIDEO);
-                    pkg.requestedPermissions.add(android.Manifest.permission.WRITE_MEDIA_IMAGES);
-                }
+                addRequestedPermission(pkg, android.Manifest.permission.READ_MEDIA_IMAGES);
             }
         }
 
@@ -2620,6 +2594,14 @@
     }
 
     /**
+     * Helper method for adding a requested permission to a package outside of a uses-permission.
+     */
+    private void addRequestedPermission(Package pkg, String permission) {
+        pkg.requestedPermissions.add(permission);
+        pkg.usesPermissionInfos.add(new UsesPermissionInfo(permission));
+    }
+
+    /**
      * Computes the targetSdkVersion to use at runtime. If the package is not
      * compatible with this platform, populates {@code outError[0]} with an
      * error message.
@@ -2876,8 +2858,8 @@
         return certSha256Digests;
     }
 
-    private boolean parseUsesPermission(Package pkg, Resources res, XmlResourceParser parser)
-            throws XmlPullParserException, IOException {
+    private boolean parseUsesPermission(Package pkg, Resources res, XmlResourceParser parser,
+            String[] outError) throws XmlPullParserException, IOException {
         TypedArray sa = res.obtainAttributes(parser,
                 com.android.internal.R.styleable.AndroidManifestUsesPermission);
 
@@ -2901,6 +2883,44 @@
         final String requiredNotfeature = sa.getNonConfigurationString(
                 com.android.internal.R.styleable.AndroidManifestUsesPermission_requiredNotFeature, 0);
 
+        int dataSentOffDevice = sa.getInt(
+                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataSentOffDevice, 0);
+
+        int dataSharedWithThirdParty = sa.getInt(
+                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataSharedWithThirdParty, 0);
+
+        int dataUsedForMonetization = sa.getInt(
+                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataUsedForMonetization, 0);
+
+        int retentionWeeks = -1;
+        int retention;
+
+        String rawRetention = sa.getString(
+                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataRetentionTime);
+
+        if (rawRetention == null) {
+            retention = UsesPermissionInfo.RETENTION_UNDEFINED;
+        } else if ("notRetained".equals(rawRetention)) {
+            retention = UsesPermissionInfo.RETENTION_NOT_RETAINED;
+        } else if ("userSelected".equals(rawRetention)) {
+            retention = UsesPermissionInfo.RETENTION_USER_SELECTED;
+        } else if ("unlimited".equals(rawRetention)) {
+            retention = UsesPermissionInfo.RETENTION_UNLIMITED;
+        } else {
+            // A number of weeks was specified
+            retention = UsesPermissionInfo.RETENTION_SPECIFIED;
+            retentionWeeks = sa.getInt(
+                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataRetentionTime,
+                -1);
+
+            if (retentionWeeks < 0) {
+                outError[0] = "Bad value provided for dataRetentionTime.";
+                mParseError = PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED;
+                XmlUtils.skipCurrentTag(parser);
+                sa.recycle();
+                return false;
+            }
+        }
         sa.recycle();
 
         XmlUtils.skipCurrentTag(parser);
@@ -2933,6 +2953,10 @@
                     + parser.getPositionDescription());
         }
 
+        UsesPermissionInfo info = new UsesPermissionInfo(name, dataSentOffDevice,
+                dataSharedWithThirdParty, dataUsedForMonetization, retention, retentionWeeks);
+        pkg.usesPermissionInfos.add(info);
+
         return true;
     }
 
@@ -3267,6 +3291,10 @@
         perm.info.flags = sa.getInt(
                 com.android.internal.R.styleable.AndroidManifestPermission_permissionFlags, 0);
 
+        perm.info.usageInfoRequired = sa.getInt(
+                com.android.internal.R.styleable.AndroidManifestPermission_usageInfoRequired, 0)
+                != 0;
+
         sa.recycle();
 
         if (perm.info.protectionLevel == -1) {
@@ -5369,6 +5397,11 @@
             s.info.flags |= ServiceInfo.FLAG_EXTERNAL_SERVICE;
         }
         if (sa.getBoolean(
+                com.android.internal.R.styleable.AndroidManifestService_useAppZygote,
+                false)) {
+            s.info.flags |= ServiceInfo.FLAG_USE_APP_ZYGOTE;
+        }
+        if (sa.getBoolean(
                 com.android.internal.R.styleable.AndroidManifestService_singleUser,
                 false)) {
             s.info.flags |= ServiceInfo.FLAG_SINGLE_USER;
@@ -6396,6 +6429,9 @@
         @UnsupportedAppUsage
         public final ArrayList<String> requestedPermissions = new ArrayList<String>();
 
+        public final ArrayList<UsesPermissionInfo> usesPermissionInfos =
+                new ArrayList<>();
+
         /** Permissions requested but not in the manifest. */
         public final ArrayList<String> implicitPermissions = new ArrayList<>();
 
@@ -6801,7 +6837,7 @@
 
         /** @hide */
         public boolean isForwardLocked() {
-            return applicationInfo.isForwardLocked();
+            return false;
         }
 
         /** @hide */
@@ -6843,9 +6879,7 @@
         public boolean canHaveOatDir() {
             // The following app types CANNOT have oat directory
             // - non-updated system apps
-            // - forward-locked apps or apps installed in ASEC containers
-            return (!isSystem() || isUpdatedSystemApp())
-                    && !isForwardLocked() && !applicationInfo.isExternalAsec();
+            return !isSystem() || isUpdatedSystemApp();
         }
 
         public boolean isMatch(int flags) {
@@ -6928,6 +6962,7 @@
 
             dest.readStringList(requestedPermissions);
             internStringArrayList(requestedPermissions);
+            dest.readParcelableList(usesPermissionInfos, boot);
             dest.readStringList(implicitPermissions);
             internStringArrayList(implicitPermissions);
             protectedBroadcasts = dest.createStringArrayList();
@@ -7094,6 +7129,7 @@
             dest.writeParcelableList(instrumentation, flags);
 
             dest.writeStringList(requestedPermissions);
+            dest.writeParcelableList(usesPermissionInfos, flags);
             dest.writeStringList(implicitPermissions);
             dest.writeStringList(protectedBroadcasts);
 
@@ -7669,6 +7705,7 @@
         }
         if ((flags & PackageManager.GET_SHARED_LIBRARY_FILES) != 0) {
             ai.sharedLibraryFiles = p.usesLibraryFiles;
+            ai.sharedLibraryInfos = p.usesLibraryInfos;
         }
         if (state.stopped) {
             ai.flags |= ApplicationInfo.FLAG_STOPPED;
diff --git a/core/java/android/content/pm/PackageUserState.java b/core/java/android/content/pm/PackageUserState.java
index e21c33a..be6ed51 100644
--- a/core/java/android/content/pm/PackageUserState.java
+++ b/core/java/android/content/pm/PackageUserState.java
@@ -21,7 +21,6 @@
 import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED;
 import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
 import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
-import static android.content.pm.PackageManager.MATCH_ALL;
 import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
 import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
 import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS;
@@ -130,9 +129,6 @@
      * </p>
      */
     public boolean isMatch(ComponentInfo componentInfo, int flags) {
-        if ((flags & MATCH_ALL) != 0) {
-            return true;
-        }
         final boolean isSystemApp = componentInfo.applicationInfo.isSystemApp();
         final boolean matchUninstalled = (flags & PackageManager.MATCH_KNOWN_PACKAGES) != 0;
         if (!isAvailable(flags)
diff --git a/core/java/android/content/pm/PermissionInfo.java b/core/java/android/content/pm/PermissionInfo.java
index 60c06a1..d9d6b5f 100644
--- a/core/java/android/content/pm/PermissionInfo.java
+++ b/core/java/android/content/pm/PermissionInfo.java
@@ -20,6 +20,7 @@
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
+import android.os.Build;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
@@ -308,6 +309,12 @@
      */
     public CharSequence nonLocalizedDescription;
 
+    /**
+     * If {@code true} an application targeting {@link Build.VERSION_CODES#Q} <em>must</em>
+     * include permission data usage information in order to be able to be granted this permission.
+     */
+    public boolean usageInfoRequired;
+
     /** @hide */
     public static int fixProtectionLevel(int level) {
         if (level == PROTECTION_SIGNATURE_OR_SYSTEM) {
@@ -394,6 +401,7 @@
         descriptionRes = orig.descriptionRes;
         requestRes = orig.requestRes;
         nonLocalizedDescription = orig.nonLocalizedDescription;
+        usageInfoRequired = orig.usageInfoRequired;
     }
 
     /**
@@ -458,6 +466,7 @@
         dest.writeInt(descriptionRes);
         dest.writeInt(requestRes);
         TextUtils.writeToParcel(nonLocalizedDescription, dest, parcelableFlags);
+        dest.writeInt(usageInfoRequired ? 1 : 0);
     }
 
     /** @hide */
@@ -498,5 +507,6 @@
         descriptionRes = source.readInt();
         requestRes = source.readInt();
         nonLocalizedDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
+        usageInfoRequired = source.readInt() != 0;
     }
 }
diff --git a/core/java/android/content/pm/ServiceInfo.java b/core/java/android/content/pm/ServiceInfo.java
index 91f884c..ad2c72274 100644
--- a/core/java/android/content/pm/ServiceInfo.java
+++ b/core/java/android/content/pm/ServiceInfo.java
@@ -56,6 +56,23 @@
     public static final int FLAG_EXTERNAL_SERVICE = 0x0004;
 
     /**
+     * Bit in {@link #flags}: If set, the service (which must be isolated)
+     * will be spawned from an Application Zygote, instead of the regular Zygote.
+     * The Application Zygote will pre-initialize the application's class loader,
+     * and call a static callback into the application to allow it to perform
+     * application-specific preloads (such as loading a shared library). Therefore,
+     * spawning from the Application Zygote will typically reduce the service
+     * launch time and reduce its memory usage. The downside of using this flag
+     * is that you will have an additional process (the app zygote itself) that
+     * is taking up memory. Whether actual memory usage is improved therefore
+     * strongly depends on the number of isolated services that an application
+     * starts, and how much memory those services save by preloading. Therefore,
+     * it is recommended to measure memory usage under typical workloads to
+     * determine whether it makes sense to use this flag.
+     */
+    public static final int FLAG_USE_APP_ZYGOTE = 0x0008;
+
+    /**
      * Bit in {@link #flags} indicating if the service is visible to ephemeral applications.
      * @hide
      */
diff --git a/core/java/android/content/pm/SharedLibraryInfo.java b/core/java/android/content/pm/SharedLibraryInfo.java
index 096301c..ad82626d 100644
--- a/core/java/android/content/pm/SharedLibraryInfo.java
+++ b/core/java/android/content/pm/SharedLibraryInfo.java
@@ -74,6 +74,7 @@
     private final String mPath;
     private final String mPackageName;
     private final String mName;
+    private final List<String> mCodePaths;
 
     private final long mVersion;
     private final @Type int mType;
@@ -84,6 +85,8 @@
     /**
      * Creates a new instance.
      *
+     * @param codePaths For a non {@link #TYPE_BUILTIN builtin} library, the locations of jars of
+     *                  this shared library. Null for builtin library.
      * @param name The lib name.
      * @param version The lib version if not builtin.
      * @param type The lib type.
@@ -92,11 +95,13 @@
      *
      * @hide
      */
-    public SharedLibraryInfo(String path, String packageName, String name, long version, int type,
+    public SharedLibraryInfo(String path, String packageName, List<String> codePaths,
+            String name, long version, int type,
             VersionedPackage declaringPackage, List<VersionedPackage> dependentPackages,
             List<SharedLibraryInfo> dependencies) {
         mPath = path;
         mPackageName = packageName;
+        mCodePaths = codePaths;
         mName = name;
         mVersion = version;
         mType = type;
@@ -106,7 +111,8 @@
     }
 
     private SharedLibraryInfo(Parcel parcel) {
-        this(parcel.readString(), parcel.readString(), parcel.readString(), parcel.readLong(),
+        this(parcel.readString(), parcel.readString(), parcel.readArrayList(null),
+                parcel.readString(), parcel.readLong(),
                 parcel.readInt(), parcel.readParcelable(null), parcel.readArrayList(null),
                 parcel.createTypedArrayList(SharedLibraryInfo.CREATOR));
     }
@@ -155,6 +161,25 @@
     }
 
     /**
+     * Get all code paths for that library.
+     *
+     * @return All code paths.
+     *
+     * @hide
+     */
+    public List<String> getAllCodePaths() {
+        if (getPath() != null) {
+            // Builtin library.
+            ArrayList<String> list = new ArrayList<>();
+            list.add(getPath());
+            return list;
+        } else {
+            // Static or dynamic library.
+            return mCodePaths;
+        }
+    }
+
+    /**
      * Add a library dependency to that library. Note that this
      * should be called under the package manager lock.
      *
@@ -273,6 +298,7 @@
     public void writeToParcel(Parcel parcel, int flags) {
         parcel.writeString(mPath);
         parcel.writeString(mPackageName);
+        parcel.writeList(mCodePaths);
         parcel.writeString(mName);
         parcel.writeLong(mVersion);
         parcel.writeInt(mType);
diff --git a/core/java/android/content/pm/UsesPermissionInfo.java b/core/java/android/content/pm/UsesPermissionInfo.java
new file mode 100644
index 0000000..d08548f
--- /dev/null
+++ b/core/java/android/content/pm/UsesPermissionInfo.java
@@ -0,0 +1,275 @@
+/*
+ * 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.content.pm;
+
+import android.annotation.IntDef;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.lang.annotation.RetentionPolicy;
+/**
+ * Information you can retrive about a particular application requested permission. This
+ * corresponds to information collected from the AndroidManifest.xml's &lt;uses-permission&gt;
+ * tags.
+ */
+public final class UsesPermissionInfo extends PackageItemInfo implements Parcelable {
+
+    /**
+     * Flag for {@link #getFlags()}: the requested permission is currently granted to the
+     * application.
+     */
+    public static final int FLAG_REQUESTED_PERMISSION_GRANTED = 1 << 1;
+
+    /** @hide */
+    @IntDef(flag = true, prefix = {"FLAG_"}, value = {FLAG_REQUESTED_PERMISSION_GRANTED})
+    @java.lang.annotation.Retention(RetentionPolicy.SOURCE)
+    public @interface Flags {}
+
+    /** An unset value for {@link #getDataSentOffDevice()},
+     * {@link #getDataSharedWithThirdParty()}, and {@link #getDataUsedForMonetization()}
+     */
+    public static final int USAGE_UNDEFINED = 0;
+
+    /**
+     * A yes value for {@link #getDataSentOffDevice()}, {@link #getDataSharedWithThirdParty()},
+     * and {@link #getDataUsedForMonetization()} corresponding to the <code>yes</code> value of
+     * {@link android.R.attr#dataSentOffDevice}, {@link android.R.attr#dataSharedWithThirdParty},
+     * and {@link android.R.attr#dataUsedForMonetization} attributes.
+     */
+    public static final int USAGE_YES = 1;
+
+    /**
+     * A user triggered only value for {@link #getDataSentOffDevice()},
+     * {@link #getDataSharedWithThirdParty()}, and {@link #getDataUsedForMonetization()}
+     * corresponding to the <code>userTriggered</code> value of
+     * {@link android.R.attr#dataSentOffDevice}, {@link android.R.attr#dataSharedWithThirdParty},
+     * and {@link android.R.attr#dataUsedForMonetization} attributes.
+     */
+    public static final int USAGE_USER_TRIGGERED = 2;
+
+    /**
+     * A no value for {@link #getDataSentOffDevice()}, {@link #getDataSharedWithThirdParty()},
+     * and {@link #getDataUsedForMonetization()} corresponding to the <code>no</code> value of
+     * {@link android.R.attr#dataSentOffDevice}, {@link android.R.attr#dataSharedWithThirdParty},
+     * and {@link android.R.attr#dataUsedForMonetization} attributes.
+     */
+    public static final int USAGE_NO = 3;
+
+    /** @hide */
+    @IntDef(prefix = {"USAGE_"}, value = {
+        USAGE_UNDEFINED,
+        USAGE_YES,
+        USAGE_USER_TRIGGERED,
+        USAGE_NO})
+    @java.lang.annotation.Retention(RetentionPolicy.SOURCE)
+    public @interface Usage {}
+
+    /**
+     * An unset value for {@link #getDataRetention}.
+     */
+    public static final int RETENTION_UNDEFINED = 0;
+
+    /**
+     * A data not retained value for {@link #getDataRetention()} corresponding to the
+     * <code>notRetained</code> value of {@link android.R.attr#dataRetentionTime}.
+     */
+    public static final int RETENTION_NOT_RETAINED = 1;
+
+    /**
+     * A user selected value for {@link #getDataRetention()} corresponding to the
+     * <code>userSelected</code> value of {@link android.R.attr#dataRetentionTime}.
+     */
+    public static final int RETENTION_USER_SELECTED = 2;
+
+    /**
+     * An unlimited value for {@link #getDataRetention()} corresponding to the
+     * <code>unlimited</code> value of {@link android.R.attr#dataRetentionTime}.
+     */
+    public static final int RETENTION_UNLIMITED = 3;
+
+    /**
+     * A specified value for {@link #getDataRetention()} corresponding to providing the number of
+     * weeks data is retained in {@link android.R.attr#dataRetentionTime}. The number of weeks
+     * is available in {@link #getDataRetentionWeeks()}.
+     */
+    public static final int RETENTION_SPECIFIED = 4;
+
+    /** @hide */
+    @IntDef(prefix = {"RETENTION_"}, value = {
+        RETENTION_UNDEFINED,
+        RETENTION_NOT_RETAINED,
+        RETENTION_USER_SELECTED,
+        RETENTION_UNLIMITED,
+        RETENTION_SPECIFIED})
+    @java.lang.annotation.Retention(RetentionPolicy.SOURCE)
+    public @interface Retention {}
+
+    private final String mPermission;
+    private final @Flags int mFlags;
+    private final @Usage int mDataSentOffDevice;
+    private final @Usage int mDataSharedWithThirdParty;
+    private final @Usage int mDataUsedForMonetization;
+    private final @Retention int mDataRetention;
+    private final int mDataRetentionWeeks;
+
+    /** @hide */
+    public UsesPermissionInfo(String permission) {
+        mPermission = permission;
+        mDataSentOffDevice = USAGE_UNDEFINED;
+        mDataSharedWithThirdParty = USAGE_UNDEFINED;
+        mDataUsedForMonetization = USAGE_UNDEFINED;
+        mDataRetention = RETENTION_UNDEFINED;
+        mDataRetentionWeeks = -1;
+        mFlags = 0;
+    }
+
+    /** @hide */
+    public UsesPermissionInfo(String permission,
+            @Usage int dataSentOffDevice, @Usage int dataSharedWithThirdParty,
+            @Usage int dataUsedForMonetization, @Retention int dataRetention,
+            int dataRetentionWeeks) {
+        mPermission = permission;
+        mDataSentOffDevice = dataSentOffDevice;
+        mDataSharedWithThirdParty = dataSharedWithThirdParty;
+        mDataUsedForMonetization = dataUsedForMonetization;
+        mDataRetention = dataRetention;
+        mDataRetentionWeeks = dataRetentionWeeks;
+        mFlags = 0;
+    }
+
+    /** @hide */
+    public UsesPermissionInfo(UsesPermissionInfo orig) {
+        this(orig, orig.mFlags);
+    }
+
+    /** @hide */
+    public UsesPermissionInfo(UsesPermissionInfo orig, int flags) {
+        super(orig);
+        mPermission = orig.mPermission;
+        mFlags = flags;
+        mDataSentOffDevice = orig.mDataSentOffDevice;
+        mDataSharedWithThirdParty = orig.mDataSharedWithThirdParty;
+        mDataUsedForMonetization = orig.mDataUsedForMonetization;
+        mDataRetention = orig.mDataRetention;
+        mDataRetentionWeeks = orig.mDataRetentionWeeks;
+    }
+
+    /**
+     * The name of the requested permission.
+     */
+    public String getPermission() {
+        return mPermission;
+    }
+
+    public @Flags int getFlags() {
+        return mFlags;
+    }
+
+    /**
+     * If the application sends the data guarded by this permission off the device.
+     *
+     * See {@link android.R.attr#dataSentOffDevice}
+     */
+    public @Usage int getDataSentOffDevice() {
+        return mDataSentOffDevice;
+    }
+
+    /**
+     * If the application or its services shares the data guarded by this permission with third
+     * parties.
+     *
+     * See {@link android.R.attr#dataSharedWithThirdParty}
+     */
+    public @Usage int getDataSharedWithThirdParty() {
+        return mDataSharedWithThirdParty;
+    }
+
+    /**
+     * If the application or its services use the data guarded by this permission for monetization
+     * purposes.
+     *
+     * See {@link android.R.attr#dataUsedForMonetization}
+     */
+    public @Usage int getDataUsedForMonetization() {
+        return mDataUsedForMonetization;
+    }
+
+    /**
+     * How long the application or its services store the data guarded by this permission.
+     * If set to {@link #RETENTION_SPECIFIED} {@link #getDataRetentionWeeks()} will contain the
+     * number of weeks the data is stored.
+     *
+     * See {@link android.R.attr#dataRetentionTime}
+     */
+    public @Retention int getDataRetention() {
+        return mDataRetention;
+    }
+
+    /**
+     * If {@link #getDataRetention()} is {@link #RETENTION_SPECIFIED} the number of weeks the
+     * application or its services store data guarded by this permission.
+     *
+     * @throws IllegalStateException if {@link #getDataRetention} is not
+     * {@link #RETENTION_SPECIFIED}.
+     */
+    public int getDataRetentionWeeks() {
+        if (mDataRetention != RETENTION_SPECIFIED) {
+            throw new IllegalStateException("Data retention weeks not specified");
+        }
+        return mDataRetentionWeeks;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        super.writeToParcel(dest, flags);
+        dest.writeString(mPermission);
+        dest.writeInt(mFlags);
+        dest.writeInt(mDataSentOffDevice);
+        dest.writeInt(mDataSharedWithThirdParty);
+        dest.writeInt(mDataUsedForMonetization);
+        dest.writeInt(mDataRetention);
+        dest.writeInt(mDataRetentionWeeks);
+    }
+
+    private UsesPermissionInfo(Parcel source) {
+        super(source);
+        mPermission = source.readString();
+        mFlags = source.readInt();
+        mDataSentOffDevice = source.readInt();
+        mDataSharedWithThirdParty = source.readInt();
+        mDataUsedForMonetization = source.readInt();
+        mDataRetention = source.readInt();
+        mDataRetentionWeeks = source.readInt();
+    }
+
+    public static final Creator<UsesPermissionInfo> CREATOR =
+            new Creator<UsesPermissionInfo>() {
+                @Override
+                public UsesPermissionInfo createFromParcel(Parcel source) {
+                    return new UsesPermissionInfo(source);
+                }
+                @Override
+                public UsesPermissionInfo[] newArray(int size) {
+                    return new UsesPermissionInfo[size];
+                }
+            };
+}
diff --git a/core/java/android/content/pm/permission/RuntimePermissionPresenter.java b/core/java/android/content/pm/permission/RuntimePermissionPresenter.java
index 79bc9a3..73addb7 100644
--- a/core/java/android/content/pm/permission/RuntimePermissionPresenter.java
+++ b/core/java/android/content/pm/permission/RuntimePermissionPresenter.java
@@ -16,13 +16,15 @@
 
 package android.content.pm.permission;
 
+import static com.android.internal.util.Preconditions.checkNotNull;
+import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
-import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
@@ -32,7 +34,7 @@
 import android.util.Log;
 
 import com.android.internal.annotations.GuardedBy;
-import com.android.internal.os.SomeArgs;
+import com.android.internal.util.function.pooled.PooledLambda;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -109,13 +111,11 @@
      */
     public void getAppPermissions(@NonNull String packageName,
             @NonNull OnResultCallback callback, @Nullable Handler handler) {
-        SomeArgs args = SomeArgs.obtain();
-        args.arg1 = packageName;
-        args.arg2 = callback;
-        args.arg3 = handler;
-        Message message = mRemoteService.obtainMessage(
-                RemoteService.MSG_GET_APP_PERMISSIONS, args);
-        mRemoteService.processMessage(message);
+        checkNotNull(packageName);
+        checkNotNull(callback);
+
+        mRemoteService.processMessage(obtainMessage(RemoteService::getAppPermissions,
+                mRemoteService, packageName, callback, handler));
     }
 
     /**
@@ -124,24 +124,20 @@
      * @param packageName The package for which to revoke
      * @param permissionName The permission to revoke
      */
-    public void revokeRuntimePermission(String packageName, String permissionName) {
-        SomeArgs args = SomeArgs.obtain();
-        args.arg1 = packageName;
-        args.arg2 = permissionName;
+    public void revokeRuntimePermission(@NonNull String packageName,
+            @NonNull String permissionName) {
+        checkNotNull(packageName);
+        checkNotNull(permissionName);
 
-        Message message = mRemoteService.obtainMessage(
-                RemoteService.MSG_REVOKE_APP_PERMISSIONS, args);
-        mRemoteService.processMessage(message);
+        mRemoteService.processMessage(obtainMessage(RemoteService::revokeAppPermissions,
+                mRemoteService, packageName, permissionName));
     }
 
     private static final class RemoteService
             extends Handler implements ServiceConnection {
         private static final long UNBIND_TIMEOUT_MILLIS = 10000;
 
-        public static final int MSG_GET_APP_PERMISSIONS = 1;
-        public static final int MSG_GET_APPS_USING_PERMISSIONS = 2;
-        public static final int MSG_UNBIND = 3;
-        public static final int MSG_REVOKE_APP_PERMISSIONS = 4;
+        public static final int MSG_UNBIND = 0;
 
         private final Object mLock = new Object();
 
@@ -191,82 +187,57 @@
             }
         }
 
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_GET_APP_PERMISSIONS: {
-                    SomeArgs args = (SomeArgs) msg.obj;
-                    final String packageName = (String) args.arg1;
-                    final OnResultCallback callback = (OnResultCallback) args.arg2;
-                    final Handler handler = (Handler) args.arg3;
-                    args.recycle();
-                    final IRuntimePermissionPresenter remoteInstance;
-                    synchronized (mLock) {
-                        remoteInstance = mRemoteInstance;
-                    }
-                    if (remoteInstance == null) {
-                        return;
-                    }
-                    try {
-                        remoteInstance.getAppPermissions(packageName,
-                                new RemoteCallback(new RemoteCallback.OnResultListener() {
-                            @Override
-                            public void onResult(Bundle result) {
-                                final List<RuntimePermissionPresentationInfo> reportedPermissions;
-                                List<RuntimePermissionPresentationInfo> permissions = null;
-                                if (result != null) {
-                                    permissions = result.getParcelableArrayList(KEY_RESULT);
-                                }
-                                if (permissions == null) {
-                                    permissions = Collections.emptyList();
-                                }
-                                reportedPermissions = permissions;
-                                if (handler != null) {
-                                    handler.post(new Runnable() {
-                                        @Override
-                                        public void run() {
-                                            callback.onGetAppPermissions(reportedPermissions);
-                                        }
-                                    });
-                                } else {
-                                    callback.onGetAppPermissions(reportedPermissions);
-                                }
+        private void getAppPermissions(@NonNull String packageName,
+                @NonNull OnResultCallback callback, @Nullable Handler handler) {
+            final IRuntimePermissionPresenter remoteInstance;
+            synchronized (mLock) {
+                remoteInstance = mRemoteInstance;
+            }
+            if (remoteInstance == null) {
+                return;
+            }
+            try {
+                remoteInstance.getAppPermissions(packageName,
+                        new RemoteCallback(result -> {
+                            final List<RuntimePermissionPresentationInfo> reportedPermissions;
+                            List<RuntimePermissionPresentationInfo> permissions = null;
+                            if (result != null) {
+                                permissions = result.getParcelableArrayList(KEY_RESULT);
+                            }
+                            if (permissions == null) {
+                                permissions = Collections.emptyList();
+                            }
+                            reportedPermissions = permissions;
+                            if (handler != null) {
+                                handler.post(
+                                        () -> callback.onGetAppPermissions(reportedPermissions));
+                            } else {
+                                callback.onGetAppPermissions(reportedPermissions);
                             }
                         }, this));
-                    } catch (RemoteException re) {
-                        Log.e(TAG, "Error getting app permissions", re);
-                    }
-                    scheduleUnbind();
-                } break;
+            } catch (RemoteException re) {
+                Log.e(TAG, "Error getting app permissions", re);
+            }
+            scheduleUnbind();
 
-                case MSG_UNBIND: {
-                    synchronized (mLock) {
-                        if (mBound) {
-                            mContext.unbindService(this);
-                            mBound = false;
-                        }
-                        mRemoteInstance = null;
-                    }
-                } break;
+            synchronized (mLock) {
+                scheduleNextMessageIfNeededLocked();
+            }
+        }
 
-                case MSG_REVOKE_APP_PERMISSIONS: {
-                    SomeArgs args = (SomeArgs) msg.obj;
-                    final String packageName = (String) args.arg1;
-                    final String permissionName = (String) args.arg2;
-                    args.recycle();
-                    final IRuntimePermissionPresenter remoteInstance;
-                    synchronized (mLock) {
-                        remoteInstance = mRemoteInstance;
-                    }
-                    if (remoteInstance == null) {
-                        return;
-                    }
-                    try {
-                        remoteInstance.revokeRuntimePermission(packageName, permissionName);
-                    } catch (RemoteException re) {
-                        Log.e(TAG, "Error getting app permissions", re);
-                    }
-                } break;
+        private void revokeAppPermissions(@NonNull String packageName,
+                @NonNull String permissionName) {
+            final IRuntimePermissionPresenter remoteInstance;
+            synchronized (mLock) {
+                remoteInstance = mRemoteInstance;
+            }
+            if (remoteInstance == null) {
+                return;
+            }
+            try {
+                remoteInstance.revokeRuntimePermission(packageName, permissionName);
+            } catch (RemoteException re) {
+                Log.e(TAG, "Error getting app permissions", re);
             }
 
             synchronized (mLock) {
@@ -274,6 +245,16 @@
             }
         }
 
+        private void unbind() {
+            synchronized (mLock) {
+                if (mBound) {
+                    mContext.unbindService(this);
+                    mBound = false;
+                }
+                mRemoteInstance = null;
+            }
+        }
+
         @GuardedBy("mLock")
         private void scheduleNextMessageIfNeededLocked() {
             if (mBound && mRemoteInstance != null && !mPendingWork.isEmpty()) {
@@ -284,7 +265,8 @@
 
         private void scheduleUnbind() {
             removeMessages(MSG_UNBIND);
-            sendEmptyMessageDelayed(MSG_UNBIND, UNBIND_TIMEOUT_MILLIS);
+            sendMessageDelayed(PooledLambda.obtainMessage(RemoteService::unbind, this)
+                    .setWhat(MSG_UNBIND), UNBIND_TIMEOUT_MILLIS);
         }
     }
 }
diff --git a/core/java/android/content/res/AssetManager.java b/core/java/android/content/res/AssetManager.java
index 4371c77..740cdae 100644
--- a/core/java/android/content/res/AssetManager.java
+++ b/core/java/android/content/res/AssetManager.java
@@ -58,7 +58,7 @@
 public final class AssetManager implements AutoCloseable {
     private static final String TAG = "AssetManager";
     private static final boolean DEBUG_REFS = false;
-    private static final boolean FEATURE_FLAG_IDMAP2 = false;
+    private static final boolean FEATURE_FLAG_IDMAP2 = true;
 
     private static final String FRAMEWORK_APK_PATH = "/system/framework/framework-res.apk";
 
diff --git a/core/java/android/hardware/biometrics/BiometricAuthenticator.java b/core/java/android/hardware/biometrics/BiometricAuthenticator.java
index 79e15a7a..0ec812f 100644
--- a/core/java/android/hardware/biometrics/BiometricAuthenticator.java
+++ b/core/java/android/hardware/biometrics/BiometricAuthenticator.java
@@ -30,19 +30,29 @@
 public interface BiometricAuthenticator {
 
     /**
+     * No biometric methods or nothing has been enrolled.
+     * Move/expose these in BiometricPrompt if we ever want to allow applications to "blacklist"
+     * modalities when calling authenticate().
      * @hide
      */
-    int TYPE_FINGERPRINT = 1;
+    int TYPE_NONE = 0;
+    /**
+     * Constant representing fingerprint.
+     * @hide
+     */
+    int TYPE_FINGERPRINT = 1 << 0;
 
     /**
+     * Constant representing iris.
      * @hide
      */
-    int TYPE_IRIS = 2;
+    int TYPE_IRIS = 1 << 1;
 
     /**
+     * Constant representing face.
      * @hide
      */
-    int TYPE_FACE = 3;
+    int TYPE_FACE = 1 << 2;
 
     /**
      * Container for biometric data
diff --git a/core/java/android/hardware/biometrics/BiometricPrompt.java b/core/java/android/hardware/biometrics/BiometricPrompt.java
index bd149fd..b238d77 100644
--- a/core/java/android/hardware/biometrics/BiometricPrompt.java
+++ b/core/java/android/hardware/biometrics/BiometricPrompt.java
@@ -251,9 +251,40 @@
     private Executor mExecutor;
     private AuthenticationCallback mAuthenticationCallback;
 
-    IBiometricPromptReceiver mDialogReceiver = new IBiometricPromptReceiver.Stub() {
+    private final IBiometricServiceReceiver mBiometricServiceReceiver =
+            new IBiometricServiceReceiver.Stub() {
+
         @Override
-        public void onDialogDismissed(int reason) {
+        public void onAuthenticationSucceeded() throws RemoteException {
+            mExecutor.execute(() -> {
+                final AuthenticationResult result = new AuthenticationResult(mCryptoObject);
+                mAuthenticationCallback.onAuthenticationSucceeded(result);
+            });
+        }
+
+        @Override
+        public void onAuthenticationFailed() throws RemoteException {
+            mExecutor.execute(() -> {
+                mAuthenticationCallback.onAuthenticationFailed();
+            });
+        }
+
+        @Override
+        public void onError(int error, String message) throws RemoteException {
+            mExecutor.execute(() -> {
+                mAuthenticationCallback.onAuthenticationError(error, message);
+            });
+        }
+
+        @Override
+        public void onAcquired(int acquireInfo, String message) throws RemoteException {
+            mExecutor.execute(() -> {
+                mAuthenticationCallback.onAuthenticationHelp(acquireInfo, message);
+            });
+        }
+
+        @Override
+        public void onDialogDismissed(int reason) throws RemoteException {
             // Check the reason and invoke OnClickListener(s) if necessary
             if (reason == DISMISSED_REASON_POSITIVE) {
                 mPositiveButtonInfo.executor.execute(() -> {
@@ -267,40 +298,6 @@
         }
     };
 
-    IBiometricServiceReceiver mBiometricServiceReceiver =
-            new IBiometricServiceReceiver.Stub() {
-
-        @Override
-        public void onAuthenticationSucceeded(long deviceId) throws RemoteException {
-            mExecutor.execute(() -> {
-                final AuthenticationResult result = new AuthenticationResult(mCryptoObject);
-                mAuthenticationCallback.onAuthenticationSucceeded(result);
-            });
-        }
-
-        @Override
-        public void onAuthenticationFailed(long deviceId) throws RemoteException {
-            mExecutor.execute(() -> {
-                mAuthenticationCallback.onAuthenticationFailed();
-            });
-        }
-
-        @Override
-        public void onError(long deviceId, int error, String message)
-                throws RemoteException {
-            mExecutor.execute(() -> {
-                mAuthenticationCallback.onAuthenticationError(error, message);
-            });
-        }
-
-        @Override
-        public void onAcquired(long deviceId, int acquireInfo, String message) {
-            mExecutor.execute(() -> {
-                mAuthenticationCallback.onAuthenticationHelp(acquireInfo, message);
-            });
-        }
-    };
-
     private BiometricPrompt(Context context, Bundle bundle,
             ButtonInfo positiveButtonInfo, ButtonInfo negativeButtonInfo) {
         mContext = context;
@@ -557,9 +554,8 @@
             mExecutor = executor;
             mAuthenticationCallback = callback;
             final long sessionId = crypto != null ? crypto.getOpId() : 0;
-            mService.authenticate(mToken, sessionId, userId,
-                    mBiometricServiceReceiver, 0 /* flags */, mContext.getOpPackageName(),
-                    mBundle, mDialogReceiver);
+            mService.authenticate(mToken, sessionId, userId, mBiometricServiceReceiver,
+                    mContext.getOpPackageName(), mBundle);
         } catch (RemoteException e) {
             Log.e(TAG, "Remote exception while authenticating", e);
             mExecutor.execute(() -> {
diff --git a/core/java/android/hardware/biometrics/IBiometricService.aidl b/core/java/android/hardware/biometrics/IBiometricService.aidl
index e17feff..53a0761 100644
--- a/core/java/android/hardware/biometrics/IBiometricService.aidl
+++ b/core/java/android/hardware/biometrics/IBiometricService.aidl
@@ -18,7 +18,6 @@
 
 import android.os.Bundle;
 import android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback;
-import android.hardware.biometrics.IBiometricPromptReceiver;
 import android.hardware.biometrics.IBiometricServiceReceiver;
 
 /**
@@ -32,8 +31,7 @@
     // Requests authentication. The service choose the appropriate biometric to use, and show
     // the corresponding BiometricDialog.
     void authenticate(IBinder token, long sessionId, int userId,
-            IBiometricServiceReceiver receiver, int flags, String opPackageName,
-            in Bundle bundle, IBiometricPromptReceiver dialogReceiver);
+            IBiometricServiceReceiver receiver, String opPackageName, in Bundle bundle);
 
     // Cancel authentication for the given sessionId
     void cancelAuthentication(IBinder token, String opPackageName);
@@ -46,4 +44,8 @@
 
     // Explicitly set the active user.
     void setActiveUser(int userId);
+
+    // Notify BiometricService when <Biometric>Service is ready to start the prepared client.
+    // Client lifecycle is still managed in <Biometric>Service.
+    void onReadyForAuthentication(int cookie, boolean requireConfirmation, int userId);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl b/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
index a6e3696..22ef33e 100644
--- a/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
+++ b/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
@@ -16,12 +16,18 @@
 package android.hardware.biometrics;
 
 /**
- * Communication channel from the BiometricService back to BiometricPrompt.
+ * Communication channel from BiometricService back to BiometricPrompt
  * @hide
  */
 oneway interface IBiometricServiceReceiver {
-    void onAuthenticationSucceeded(long deviceId);
-    void onAuthenticationFailed(long deviceId);
-    void onError(long deviceId, int error, String message);
-    void onAcquired(long deviceId, int acquiredInfo, String message);
+    // Notify BiometricPrompt that authentication was successful
+    void onAuthenticationSucceeded();
+    // Noties that authentication failed.
+    void onAuthenticationFailed();
+    // Notify BiometricPrompt that an error has occurred.
+    void onError(int error, String message);
+    // Notifies that a biometric has been acquired.
+    void onAcquired(int acquiredInfo, String message);
+    // Notifies that the SystemUI dialog has been dismissed.
+    void onDialogDismissed(int reason);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl b/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl
new file mode 100644
index 0000000..180daaf
--- /dev/null
+++ b/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl
@@ -0,0 +1,41 @@
+/*
+ * 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.hardware.biometrics;
+
+/**
+ * Communication channel from
+ *   1) BiometricDialogImpl (SysUI) back to BiometricService
+ *   2) <Biometric>Service back to BiometricService
+ * Receives messages from the above and does some handling before forwarding to BiometricPrompt
+ * via IBiometricServiceReceiver.
+ * @hide
+ */
+oneway interface IBiometricServiceReceiverInternal {
+    // Notify BiometricService that authentication was successful. If user confirmation is required,
+    // the auth token must be submitted into KeyStore.
+    void onAuthenticationSucceeded(boolean requireConfirmation, in byte[] token);
+    // Notify BiometricService that an error has occurred.
+    void onAuthenticationFailed(int cookie, boolean requireConfirmation);
+    // Notify BiometricService than an error has occured. Forward to the correct receiver depending
+    // on the cookie.
+    void onError(int cookie, int error, String message);
+    // Notifies that a biometric has been acquired.
+    void onAcquired(int acquiredInfo, String message);
+    // Notifies that the SystemUI dialog has been dismissed.
+    void onDialogDismissed(int reason);
+    // Notifies that the user has pressed the "try again" button on SystemUI
+    void onTryAgainPressed();
+}
diff --git a/core/java/android/hardware/display/DisplayManagerInternal.java b/core/java/android/hardware/display/DisplayManagerInternal.java
index 9db1f92..9d61f02 100644
--- a/core/java/android/hardware/display/DisplayManagerInternal.java
+++ b/core/java/android/hardware/display/DisplayManagerInternal.java
@@ -24,7 +24,7 @@
 import android.view.Display;
 import android.view.DisplayInfo;
 import android.view.Surface;
-import android.view.SurfaceControl;
+import android.view.SurfaceControl.Transaction;
 
 /**
  * Display manager local system service interface.
@@ -126,7 +126,7 @@
      * Called by the window manager to perform traversals while holding a
      * surface flinger transaction.
      */
-    public abstract void performTraversal(SurfaceControl.Transaction t);
+    public abstract void performTraversal(Transaction t);
 
     /**
      * Tells the display manager about properties of the display that depend on the windows on it.
@@ -383,6 +383,6 @@
      * update the position of its surfaces as part of the same transaction.
      */
     public interface DisplayTransactionListener {
-        void onDisplayTransaction();
+        void onDisplayTransaction(Transaction t);
     }
 }
diff --git a/core/java/android/hardware/display/DisplayViewport.java b/core/java/android/hardware/display/DisplayViewport.java
index df0d46b..f2c50b5 100644
--- a/core/java/android/hardware/display/DisplayViewport.java
+++ b/core/java/android/hardware/display/DisplayViewport.java
@@ -19,6 +19,7 @@
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
 import android.annotation.IntDef;
+import android.annotation.Nullable;
 import android.graphics.Rect;
 import android.text.TextUtils;
 
@@ -71,6 +72,9 @@
     // The ID used to uniquely identify this display.
     public String uniqueId;
 
+    // The physical port that the associated display device is connected to.
+    public @Nullable Byte physicalPort;
+
     public @ViewportType int type;
 
     public void copyFrom(DisplayViewport viewport) {
@@ -82,6 +86,7 @@
         deviceWidth = viewport.deviceWidth;
         deviceHeight = viewport.deviceHeight;
         uniqueId = viewport.uniqueId;
+        physicalPort = viewport.physicalPort;
         type = viewport.type;
     }
 
@@ -113,6 +118,7 @@
               && deviceWidth == other.deviceWidth
               && deviceHeight == other.deviceHeight
               && TextUtils.equals(uniqueId, other.uniqueId)
+              && physicalPort == other.physicalPort
               && type == other.type;
     }
 
@@ -128,6 +134,7 @@
         result += prime * result + deviceWidth;
         result += prime * result + deviceHeight;
         result += prime * result + uniqueId.hashCode();
+        result += prime * result + physicalPort;
         result += prime * result + type;
         return result;
     }
@@ -139,6 +146,7 @@
                 + ", valid=" + valid
                 + ", displayId=" + displayId
                 + ", uniqueId='" + uniqueId + "'"
+                + ", physicalPort=" + physicalPort
                 + ", orientation=" + orientation
                 + ", logicalFrame=" + logicalFrame
                 + ", physicalFrame=" + physicalFrame
diff --git a/core/java/android/hardware/face/IFaceService.aidl b/core/java/android/hardware/face/IFaceService.aidl
index 47df8e8..a15dcec 100644
--- a/core/java/android/hardware/face/IFaceService.aidl
+++ b/core/java/android/hardware/face/IFaceService.aidl
@@ -15,9 +15,7 @@
  */
 package android.hardware.face;
 
-import android.os.Bundle;
-import android.hardware.biometrics.IBiometricPromptReceiver;
-import android.hardware.biometrics.IBiometricServiceReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.hardware.face.IFaceServiceReceiver;
 import android.hardware.face.Face;
@@ -32,19 +30,24 @@
     void authenticate(IBinder token, long sessionId,
             IFaceServiceReceiver receiver, int flags, String opPackageName);
 
-    // This method invokes the BiometricDialog. The arguments are almost the same as above,
-    // but should only be called from (BiometricPromptService).
-    void authenticateFromService(boolean requireConfirmation, IBinder token, long sessionId,
-            int userId, IBiometricServiceReceiver receiver, int flags, String opPackageName,
-            in Bundle bundle, IBiometricPromptReceiver dialogReceiver,
-            int callingUid, int callingPid, int callingUserId);
+    // This method prepares the service to start authenticating, but doesn't start authentication.
+    // This is protected by the MANAGE_BIOMETRIC signatuer permission. This method should only be
+    // called from BiometricService. The additional uid, pid, userId arguments should be determined
+    // by BiometricService. To start authentication after the clients are ready, use
+    // startPreparedClient().
+    void prepareForAuthentication(boolean requireConfirmation, IBinder token, long sessionId,
+            int userId, IBiometricServiceReceiverInternal wrapperReceiver, String opPackageName,
+            int cookie, int callingUid, int callingPid, int callingUserId);
+
+    // Starts authentication with the previously prepared client.
+    void startPreparedClient(int cookie);
 
     // Cancel authentication for the given sessionId
     void cancelAuthentication(IBinder token, String opPackageName);
 
     // Same as above, with extra arguments.
     void cancelAuthenticationFromService(IBinder token, String opPackageName,
-            int callingUid, int callingPid, int callingUserId);
+            int callingUid, int callingPid, int callingUserId, boolean fromClient);
 
     // Start face enrollment
     void enroll(IBinder token, in byte [] cryptoToken, int userId, IFaceServiceReceiver receiver,
diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl
index 2662a11..dd6b29d 100644
--- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl
+++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl
@@ -15,9 +15,7 @@
  */
 package android.hardware.fingerprint;
 
-import android.os.Bundle;
-import android.hardware.biometrics.IBiometricPromptReceiver;
-import android.hardware.biometrics.IBiometricServiceReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.hardware.fingerprint.IFingerprintClientActiveCallback;
 import android.hardware.fingerprint.IFingerprintServiceReceiver;
@@ -35,22 +33,25 @@
     void authenticate(IBinder token, long sessionId, int userId,
             IFingerprintServiceReceiver receiver, int flags, String opPackageName);
 
-    // This method invokes the BiometricDialog. The arguments are almost the same as above, except
-    // this is protected by the MANAGE_BIOMETRIC signature permission. This method should only be
-    // called from BiometricPromptService. The additional uid, pid, userId arguments should be
-    // determined by BiometricPromptService.
-    void authenticateFromService(IBinder token, long sessionId, int userId,
-            IBiometricServiceReceiver receiver, int flags, String opPackageName,
-            in Bundle bundle, IBiometricPromptReceiver dialogReceiver,
+    // This method prepares the service to start authenticating, but doesn't start authentication.
+    // This is protected by the MANAGE_BIOMETRIC signatuer permission. This method should only be
+    // called from BiometricService. The additional uid, pid, userId arguments should be determined
+    // by BiometricService. To start authentication after the clients are ready, use
+    // startPreparedClient().
+    void prepareForAuthentication(IBinder token, long sessionId, int userId,
+            IBiometricServiceReceiverInternal wrapperReceiver, String opPackageName, int cookie,
             int callingUid, int callingPid, int callingUserId);
 
+    // Starts authentication with the previously prepared client.
+    void startPreparedClient(int cookie);
+
     // Cancel authentication for the given sessionId
     void cancelAuthentication(IBinder token, String opPackageName);
 
     // Same as above, except this is protected by the MANAGE_BIOMETRIC signature permission. Takes
     // an additional uid, pid, userid.
     void cancelAuthenticationFromService(IBinder token, String opPackageName,
-            int callingUid, int callingPid, int callingUserId);
+            int callingUid, int callingPid, int callingUserId, boolean fromClient);
 
     // Start fingerprint enrollment
     void enroll(IBinder token, in byte [] cryptoToken, int groupId, IFingerprintServiceReceiver receiver,
diff --git a/core/java/android/hardware/location/ContextHubIntentEvent.java b/core/java/android/hardware/location/ContextHubIntentEvent.java
index 539c494..d1190ab 100644
--- a/core/java/android/hardware/location/ContextHubIntentEvent.java
+++ b/core/java/android/hardware/location/ContextHubIntentEvent.java
@@ -17,6 +17,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SystemApi;
 import android.app.PendingIntent;
 import android.content.Intent;
 
@@ -30,6 +31,7 @@
  *
  * @hide
  */
+@SystemApi
 public class ContextHubIntentEvent {
     @ContextHubManager.Event private final int mEventType;
 
diff --git a/core/java/android/hardware/location/ContextHubManager.java b/core/java/android/hardware/location/ContextHubManager.java
index 88fb3de..7639302 100644
--- a/core/java/android/hardware/location/ContextHubManager.java
+++ b/core/java/android/hardware/location/ContextHubManager.java
@@ -56,38 +56,28 @@
 
     /**
      * An extra of type {@link ContextHubInfo} describing the source of the event.
-     *
-     * @hide
      */
     public static final String EXTRA_CONTEXT_HUB_INFO =
             "android.hardware.location.extra.CONTEXT_HUB_INFO";
 
     /**
      * An extra of type {@link ContextHubManager.Event} describing the event type.
-     *
-     * @hide
      */
     public static final String EXTRA_EVENT_TYPE = "android.hardware.location.extra.EVENT_TYPE";
 
     /**
      * An extra of type long describing the ID of the nanoapp an event is for.
-     *
-     * @hide
      */
     public static final String EXTRA_NANOAPP_ID = "android.hardware.location.extra.NANOAPP_ID";
 
     /**
      * An extra of type int describing the nanoapp-specific abort code.
-     *
-     * @hide
      */
     public static final String EXTRA_NANOAPP_ABORT_CODE =
             "android.hardware.location.extra.NANOAPP_ABORT_CODE";
 
     /**
      * An extra of type {@link NanoAppMessage} describing contents of a message from a nanoapp.
-     *
-     * @hide
      */
     public static final String EXTRA_MESSAGE = "android.hardware.location.extra.MESSAGE";
 
@@ -109,56 +99,41 @@
 
     /**
      * An event describing that a nanoapp has been loaded. Contains the EXTRA_NANOAPP_ID extra.
-     *
-     * @hide
      */
     public static final int EVENT_NANOAPP_LOADED = 0;
 
     /**
      * An event describing that a nanoapp has been unloaded. Contains the EXTRA_NANOAPP_ID extra.
-     *
-     * @hide
      */
     public static final int EVENT_NANOAPP_UNLOADED = 1;
 
     /**
      * An event describing that a nanoapp has been enabled. Contains the EXTRA_NANOAPP_ID extra.
-     *
-     * @hide
      */
     public static final int EVENT_NANOAPP_ENABLED = 2;
 
     /**
      * An event describing that a nanoapp has been disabled. Contains the EXTRA_NANOAPP_ID extra.
-     *
-     * @hide
      */
     public static final int EVENT_NANOAPP_DISABLED = 3;
 
     /**
      * An event describing that a nanoapp has aborted. Contains the EXTRA_NANOAPP_ID and
      * EXTRA_NANOAPP_ABORT_CODE extras.
-     *
-     * @hide
      */
     public static final int EVENT_NANOAPP_ABORTED = 4;
 
     /**
      * An event containing a message sent from a nanoapp. Contains the EXTRA_NANOAPP_ID and
      * EXTRA_NANOAPP_MESSAGE extras.
-     *
-     * @hide
      */
     public static final int EVENT_NANOAPP_MESSAGE = 5;
 
     /**
      * An event describing that the Context Hub has reset.
-     *
-     * @hide
      */
     public static final int EVENT_HUB_RESET = 6;
 
-
     private final Looper mMainLooper;
     private final IContextHubService mService;
     private Callback mCallback;
@@ -797,14 +772,14 @@
      * Creates a ContextHubClient that will receive notifications based on Intent events.
      *
      * This method should be used instead of {@link #createClient(ContextHubInfo,
-     * ContextHubClientCallback)} and the equivalent API if the caller wants to preserve the
-     * messaging endpoint of a ContextHubClient, even after a process exits. If the PendingIntent
-     * with the provided nanoapp has already been registered at the service previously, then the
-     * same ContextHubClient will be regenerated without creating a new client connection at the
-     * service. Note that the PendingIntent, nanoapp, and Context Hub must all match in identifying
-     * a previously registered ContextHubClient. If a client is regenerated, it can be treated as
-     * the same endpoint entity from a nanoapp's perspective, and can be continued to be
-     * used to send messages even if the original process has exited.
+     * ContextHubClientCallback)} or {@link #createClient(ContextHubInfo, ContextHubClientCallback,
+     * Executor)} if the caller wants to preserve the messaging endpoint of a ContextHubClient, even
+     * after a process exits. If the PendingIntent with the provided nanoapp has already been
+     * registered at the service, then the same ContextHubClient will be regenerated without
+     * creating a new client connection at the service. Note that the PendingIntent, nanoapp, and
+     * Context Hub must all match in identifying a previously registered ContextHubClient.
+     * If a client is regenerated, the host endpoint identifier attached to messages sent to the
+     * nanoapp remains consistent, even if the original process has exited.
      *
      * If registered successfully, intents will be delivered regarding events or messages from the
      * specified nanoapp from the attached Context Hub. The intent will have an extra
@@ -815,10 +790,11 @@
      * each event type, along with event-specific extra fields. The client can also use
      * {@link ContextHubIntentEvent.fromIntent(Intent)} to parse the Intent generated by the event.
      *
-     * Intent events will be delivered until it is unregistered through
-     * {@link ContextHubClient.close()}. Note that the registration of this
-     * ContextHubClient at the Context Hub Service will continued to be maintained until
-     * {@link ContextHubClient.close()} is called.
+     * Intent events will be delivered until {@link ContextHubClient.close()} is called. Note that
+     * the registration of this ContextHubClient at the Context Hub Service will be maintained until
+     * {@link ContextHubClient.close()} is called. If {@link PendingIntent.cancel()} is called
+     * on the provided PendingIntent, then the client will be automatically unregistered by the
+     * service.
      *
      * @param hubInfo       the hub to attach this client to
      * @param pendingIntent the PendingIntent to register to the client
@@ -828,8 +804,6 @@
      * @throws IllegalArgumentException if hubInfo does not represent a valid hub
      * @throws IllegalStateException    if there were too many registered clients at the service
      * @throws NullPointerException     if pendingIntent or hubInfo is null
-     *
-     * @hide
      */
     @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
     @NonNull public ContextHubClient createClient(
diff --git a/core/java/android/net/IpSecConfig.java b/core/java/android/net/IpSecConfig.java
index 8599f47..3552655 100644
--- a/core/java/android/net/IpSecConfig.java
+++ b/core/java/android/net/IpSecConfig.java
@@ -65,10 +65,13 @@
     // An interval, in seconds between the NattKeepalive packets
     private int mNattKeepaliveInterval;
 
-    // XFRM mark and mask
+    // XFRM mark and mask; defaults to 0 (no mark/mask)
     private int mMarkValue;
     private int mMarkMask;
 
+    // XFRM interface id
+    private int mXfrmInterfaceId;
+
     /** Set the mode for this IPsec transform */
     public void setMode(int mode) {
         mMode = mode;
@@ -125,14 +128,30 @@
         mNattKeepaliveInterval = interval;
     }
 
+    /**
+     * Sets the mark value
+     *
+     * <p>Internal (System server) use only. Marks passed in by users will be overwritten or
+     * ignored.
+     */
     public void setMarkValue(int mark) {
         mMarkValue = mark;
     }
 
+    /**
+     * Sets the mark mask
+     *
+     * <p>Internal (System server) use only. Marks passed in by users will be overwritten or
+     * ignored.
+     */
     public void setMarkMask(int mask) {
         mMarkMask = mask;
     }
 
+    public void setXfrmInterfaceId(int xfrmInterfaceId) {
+        mXfrmInterfaceId = xfrmInterfaceId;
+    }
+
     // Transport or Tunnel
     public int getMode() {
         return mMode;
@@ -190,6 +209,10 @@
         return mMarkMask;
     }
 
+    public int getXfrmInterfaceId() {
+        return mXfrmInterfaceId;
+    }
+
     // Parcelable Methods
 
     @Override
@@ -213,6 +236,7 @@
         out.writeInt(mNattKeepaliveInterval);
         out.writeInt(mMarkValue);
         out.writeInt(mMarkMask);
+        out.writeInt(mXfrmInterfaceId);
     }
 
     @VisibleForTesting
@@ -235,6 +259,7 @@
         mNattKeepaliveInterval = c.mNattKeepaliveInterval;
         mMarkValue = c.mMarkValue;
         mMarkMask = c.mMarkMask;
+        mXfrmInterfaceId = c.mXfrmInterfaceId;
     }
 
     private IpSecConfig(Parcel in) {
@@ -255,6 +280,7 @@
         mNattKeepaliveInterval = in.readInt();
         mMarkValue = in.readInt();
         mMarkMask = in.readInt();
+        mXfrmInterfaceId = in.readInt();
     }
 
     @Override
@@ -289,6 +315,8 @@
                 .append(mMarkValue)
                 .append(", mMarkMask=")
                 .append(mMarkMask)
+                .append(", mXfrmInterfaceId=")
+                .append(mXfrmInterfaceId)
                 .append("}");
 
         return strBuilder.toString();
@@ -320,10 +348,10 @@
                 && lhs.mNattKeepaliveInterval == rhs.mNattKeepaliveInterval
                 && lhs.mSpiResourceId == rhs.mSpiResourceId
                 && IpSecAlgorithm.equals(lhs.mEncryption, rhs.mEncryption)
-                && IpSecAlgorithm.equals(
-                        lhs.mAuthenticatedEncryption, rhs.mAuthenticatedEncryption)
+                && IpSecAlgorithm.equals(lhs.mAuthenticatedEncryption, rhs.mAuthenticatedEncryption)
                 && IpSecAlgorithm.equals(lhs.mAuthentication, rhs.mAuthentication)
                 && lhs.mMarkValue == rhs.mMarkValue
-                && lhs.mMarkMask == rhs.mMarkMask);
+                && lhs.mMarkMask == rhs.mMarkMask
+                && lhs.mXfrmInterfaceId == rhs.mXfrmInterfaceId);
     }
 }
diff --git a/core/java/android/net/LinkAddress.java b/core/java/android/net/LinkAddress.java
index 1bc0d32..77562db 100644
--- a/core/java/android/net/LinkAddress.java
+++ b/core/java/android/net/LinkAddress.java
@@ -25,6 +25,7 @@
 import static android.system.OsConstants.RT_SCOPE_SITE;
 import static android.system.OsConstants.RT_SCOPE_UNIVERSE;
 
+import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -167,7 +168,7 @@
      * @param prefixLength The prefix length.
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
     public LinkAddress(InetAddress address, int prefixLength) {
         this(address, prefixLength, 0, 0);
         this.scope = scopeForUnicastAddress(address);
@@ -190,7 +191,7 @@
      * @param string The string to parse.
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
     public LinkAddress(String address) {
         this(address, 0, 0);
         this.scope = scopeForUnicastAddress(this.address);
diff --git a/core/java/android/net/metrics/NetworkEvent.java b/core/java/android/net/metrics/NetworkEvent.java
index 1999e78..cb82fbe 100644
--- a/core/java/android/net/metrics/NetworkEvent.java
+++ b/core/java/android/net/metrics/NetworkEvent.java
@@ -44,6 +44,8 @@
     public static final int NETWORK_FIRST_VALIDATION_PORTAL_FOUND = 10;
     public static final int NETWORK_REVALIDATION_PORTAL_FOUND     = 11;
 
+    public static final int NETWORK_CONSECUTIVE_DNS_TIMEOUT_FOUND = 12;
+
     @IntDef(value = {
             NETWORK_CONNECTED,
             NETWORK_VALIDATED,
@@ -56,6 +58,7 @@
             NETWORK_REVALIDATION_SUCCESS,
             NETWORK_FIRST_VALIDATION_PORTAL_FOUND,
             NETWORK_REVALIDATION_PORTAL_FOUND,
+            NETWORK_CONSECUTIVE_DNS_TIMEOUT_FOUND,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface EventType {}
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index c7184c0..64314a7 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -400,6 +400,9 @@
      * }
      * </pre>
      *
+     * <p>The work source will be propagated for future outgoing binder transactions
+     * executed on this thread.
+     *
      * @param workSource The original UID responsible for the binder call.
      * @return token to restore original work source.
      * @hide
@@ -423,6 +426,9 @@
     /**
      * Clears the work source on this thread.
      *
+     * <p>The work source will be propagated for future outgoing binder transactions
+     * executed on this thread.
+     *
      * @return token to restore original work source.
      * @hide
      **/
@@ -442,6 +448,9 @@
      *   Binder.restoreCallingWorkSource(token);
      * }
      * </pre>
+     *
+     * <p>The work source will be propagated for future outgoing binder transactions
+     * executed on this thread.
      * @hide
      **/
     @CriticalNative
@@ -919,7 +928,9 @@
         final long origWorkSource = ThreadLocalWorkSource.setUid(Binder.getCallingUid());
         try {
             if (tracingEnabled) {
-                Trace.traceBegin(Trace.TRACE_TAG_ALWAYS, getClass().getName() + ":" + code);
+                final String transactionName = getTransactionName(code);
+                Trace.traceBegin(Trace.TRACE_TAG_ALWAYS, getClass().getName() + ":"
+                        + (transactionName != null ? transactionName : code));
             }
             res = onTransact(code, data, reply, flags);
         } catch (RemoteException|RuntimeException e) {
diff --git a/core/java/android/os/BinderProxy.java b/core/java/android/os/BinderProxy.java
index 720c167..97d72f0 100644
--- a/core/java/android/os/BinderProxy.java
+++ b/core/java/android/os/BinderProxy.java
@@ -360,6 +360,16 @@
     }
 
     /**
+     * Returns the number of binder proxies held in this process.
+     * @return number of binder proxies in this process
+     */
+    public static int getProxyCount() {
+        synchronized (sProxyMap) {
+            return sProxyMap.size();
+        }
+    }
+
+    /**
      * Dump proxy debug information.
      *
      * @hide
diff --git a/core/java/android/os/ConfigUpdate.java b/core/java/android/os/ConfigUpdate.java
index 7858c59..767c15c 100644
--- a/core/java/android/os/ConfigUpdate.java
+++ b/core/java/android/os/ConfigUpdate.java
@@ -83,6 +83,14 @@
             = "android.intent.action.UPDATE_SMART_SELECTION";
 
     /**
+     * Update conversation actions model file.
+     * @hide
+     */
+    @SystemApi
+    public static final String ACTION_UPDATE_CONVERSATION_ACTIONS
+            = "android.intent.action.UPDATE_CONVERSATION_ACTIONS";
+
+    /**
      * Update network watchlist config file.
      * @hide
      */
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java
index 0c1aae8..8904ee6 100644
--- a/core/java/android/os/Environment.java
+++ b/core/java/android/os/Environment.java
@@ -657,6 +657,12 @@
     public static String DIRECTORY_SCREENSHOTS = "Screenshots";
 
     /**
+     * Standard directory in which to place any audio files which are
+     * audiobooks.
+     */
+    public static String DIRECTORY_AUDIOBOOKS = "Audiobooks";
+
+    /**
      * List of standard storage directories.
      * <p>
      * Each of its values have its own constant:
@@ -671,6 +677,7 @@
      *   <li>{@link #DIRECTORY_DOWNLOADS}
      *   <li>{@link #DIRECTORY_DCIM}
      *   <li>{@link #DIRECTORY_DOCUMENTS}
+     *   <li>{@link #DIRECTORY_AUDIOBOOKS}
      * </ul>
      * @hide
      */
@@ -684,7 +691,8 @@
             DIRECTORY_MOVIES,
             DIRECTORY_DOWNLOADS,
             DIRECTORY_DCIM,
-            DIRECTORY_DOCUMENTS
+            DIRECTORY_DOCUMENTS,
+            DIRECTORY_AUDIOBOOKS,
     };
 
     /**
@@ -709,6 +717,7 @@
     /** {@hide} */ public static final int HAS_DOWNLOADS = 1 << 7;
     /** {@hide} */ public static final int HAS_DCIM = 1 << 8;
     /** {@hide} */ public static final int HAS_DOCUMENTS = 1 << 9;
+    /** {@hide} */ public static final int HAS_AUDIOBOOKS = 1 << 10;
 
     /** {@hide} */ public static final int HAS_ANDROID = 1 << 16;
     /** {@hide} */ public static final int HAS_OTHER = 1 << 17;
@@ -738,6 +747,7 @@
                 else if (DIRECTORY_DOWNLOADS.equals(name)) res |= HAS_DOWNLOADS;
                 else if (DIRECTORY_DCIM.equals(name)) res |= HAS_DCIM;
                 else if (DIRECTORY_DOCUMENTS.equals(name)) res |= HAS_DOCUMENTS;
+                else if (DIRECTORY_AUDIOBOOKS.equals(name)) res |= HAS_AUDIOBOOKS;
                 else if (DIRECTORY_ANDROID.equals(name)) res |= HAS_ANDROID;
                 else res |= HAS_OTHER;
             }
diff --git a/core/java/android/os/GraphicsEnvironment.java b/core/java/android/os/GraphicsEnvironment.java
index 8c5c415..900b62d 100644
--- a/core/java/android/os/GraphicsEnvironment.java
+++ b/core/java/android/os/GraphicsEnvironment.java
@@ -54,7 +54,7 @@
     private static final String TAG = "GraphicsEnvironment";
     private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0";
     private static final String PROPERTY_GFX_DRIVER_WHITELIST = "ro.gfx.driver.whitelist.0";
-    private static final String ANGLE_PACKAGE_NAME = "com.android.angle";
+    private static final String ANGLE_PACKAGE_NAME = "com.google.android.angle";
     private static final String ANGLE_RULES_FILE = "a4a_rules.json";
     private static final String ANGLE_TEMP_RULES = "debug.angle.rules";
 
diff --git a/core/java/android/os/IThermalService.aidl b/core/java/android/os/IThermalService.aidl
index 287a5ed..9280cb9 100644
--- a/core/java/android/os/IThermalService.aidl
+++ b/core/java/android/os/IThermalService.aidl
@@ -17,6 +17,7 @@
 package android.os;
 
 import android.os.IThermalEventListener;
+import android.os.IThermalStatusListener;
 import android.os.Temperature;
 
 import java.util.List;
@@ -30,31 +31,60 @@
       * @param listener the IThermalEventListener to be notified.
       * {@hide}
       */
-    void registerThermalEventListener(in IThermalEventListener listener);
+    boolean registerThermalEventListener(in IThermalEventListener listener);
+
     /**
       * Register a listener for thermal events on given temperature type.
       * @param listener the IThermalEventListener to be notified.
       * @param type the temperature type IThermalEventListener to be notified.
+      * @return true if registered successfully.
       * {@hide}
       */
-    void registerThermalEventListenerWithType(in IThermalEventListener listener, in int type);
+    boolean registerThermalEventListenerWithType(in IThermalEventListener listener, in int type);
+
     /**
       * Unregister a previously-registered listener for thermal events.
       * @param listener the IThermalEventListener to no longer be notified.
+      * @return true if unregistered successfully.
       * {@hide}
       */
-    void unregisterThermalEventListener(in IThermalEventListener listener);
+    boolean unregisterThermalEventListener(in IThermalEventListener listener);
+
     /**
       * Get current temperature with its throttling status.
       * @return list of android.os.Temperature
       * {@hide}
       */
     List<Temperature> getCurrentTemperatures();
+
     /**
       * Get current temperature with its throttling status on given temperature type.
       * @param type the temperature type to query.
-      * @return list of android.os.Temperature
+      * @return list of {@link android.os.Temperature}.
       * {@hide}
       */
     List<Temperature> getCurrentTemperaturesWithType(in int type);
+
+    /**
+      * Register a listener for thermal status change.
+      * @param listener the {@link android.os.IThermalStatusListener} to be notified.
+      * @return true if registered successfully.
+      * {@hide}
+      */
+    boolean registerThermalStatusListener(in IThermalStatusListener listener);
+
+    /**
+      * Unregister a previously-registered listener for thermal status.
+      * @param listener the {@link android.os.IThermalStatusListener} to no longer be notified.
+      * @return true if unregistered successfully.
+      * {@hide}
+      */
+    boolean unregisterThermalStatusListener(in IThermalStatusListener listener);
+
+    /**
+      * Get current thermal status.
+      * @return status defined in {@link android.os.Temperature}.
+      * {@hide}
+      */
+    int getCurrentThermalStatus();
 }
diff --git a/core/java/android/os/IThermalStatusListener.aidl b/core/java/android/os/IThermalStatusListener.aidl
new file mode 100644
index 0000000..a6da7d0
--- /dev/null
+++ b/core/java/android/os/IThermalStatusListener.aidl
@@ -0,0 +1,29 @@
+/*
+** Copyright 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.os;
+
+/**
+ * Listener for thermal status.
+ * {@hide}
+ */
+oneway interface IThermalStatusListener {
+    /**
+     * Called when overall thermal throttling status changed.
+     * @param status defined in {@link android.os.Temperature#ThrottlingStatus}.
+     */
+    void onStatusChange(int status);
+}
diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java
index 44b9e311..6de1ff4 100644
--- a/core/java/android/os/ParcelFileDescriptor.java
+++ b/core/java/android/os/ParcelFileDescriptor.java
@@ -17,12 +17,6 @@
 package android.os;
 
 import static android.system.OsConstants.AF_UNIX;
-import static android.system.OsConstants.O_APPEND;
-import static android.system.OsConstants.O_CREAT;
-import static android.system.OsConstants.O_RDONLY;
-import static android.system.OsConstants.O_RDWR;
-import static android.system.OsConstants.O_TRUNC;
-import static android.system.OsConstants.O_WRONLY;
 import static android.system.OsConstants.SEEK_SET;
 import static android.system.OsConstants.SOCK_SEQPACKET;
 import static android.system.OsConstants.SOCK_STREAM;
@@ -254,8 +248,16 @@
     }
 
     /** {@hide} */
-    public static ParcelFileDescriptor fromFd(
-            FileDescriptor fd, Handler handler, final OnCloseListener listener) throws IOException {
+    public static ParcelFileDescriptor fromPfd(ParcelFileDescriptor pfd, Handler handler,
+            final OnCloseListener listener) throws IOException {
+        final FileDescriptor original = new FileDescriptor();
+        original.setInt$(pfd.detachFd());
+        return fromFd(original, handler, listener);
+    }
+
+    /** {@hide} */
+    public static ParcelFileDescriptor fromFd(FileDescriptor fd, Handler handler,
+            final OnCloseListener listener) throws IOException {
         if (handler == null) {
             throw new IllegalArgumentException("Handler must not be null");
         }
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 1c1db68..894015f 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -1008,7 +1008,8 @@
      * progress, does nothing. Unlike {@link #nap(long)}, this does not put device to sleep when
      * dream ends.
      * </p><p>
-     * Requires the {@link android.Manifest.permission#WRITE_DREAM_STATE} permission.
+     * Requires the {@link android.Manifest.permission#READ_DREAM_STATE} and
+     * {@link android.Manifest.permission#WRITE_DREAM_STATE} permissions.
      * </p>
      *
      * @param time The time when the request to nap was issued, in the
@@ -1019,7 +1020,9 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE)
+    @RequiresPermission(allOf = {
+            android.Manifest.permission.READ_DREAM_STATE,
+            android.Manifest.permission.WRITE_DREAM_STATE })
     public void dream(long time) {
         Sandman.startDreamByUserRequest(mContext);
     }
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 651caec..2abcb4c 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -1055,6 +1055,9 @@
      */
     public static final native long getPss(int pid);
 
+    /** @hide */
+    public static final native long[] getRss(int pid);
+
     /**
      * Specifies the outcome of having started a process.
      * @hide
diff --git a/core/java/android/os/RedactingFileDescriptor.java b/core/java/android/os/RedactingFileDescriptor.java
index 60eb5c3..4e5eaac 100644
--- a/core/java/android/os/RedactingFileDescriptor.java
+++ b/core/java/android/os/RedactingFileDescriptor.java
@@ -20,15 +20,18 @@
 import android.os.storage.StorageManager;
 import android.system.ErrnoException;
 import android.system.Os;
-import android.system.OsConstants;
 import android.util.Slog;
 
+import com.android.internal.annotations.VisibleForTesting;
+
 import libcore.io.IoUtils;
+import libcore.util.EmptyArray;
 
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.IOException;
 import java.io.InterruptedIOException;
+import java.util.Arrays;
 
 /**
  * Variant of {@link FileDescriptor} that allows its creator to specify regions
@@ -40,20 +43,21 @@
     private static final String TAG = "RedactingFileDescriptor";
     private static final boolean DEBUG = true;
 
-    private final long[] mRedactRanges;
+    private volatile long[] mRedactRanges;
 
     private FileDescriptor mInner = null;
     private ParcelFileDescriptor mOuter = null;
 
-    private RedactingFileDescriptor(Context context, File file, long[] redactRanges)
+    private RedactingFileDescriptor(Context context, File file, int mode, long[] redactRanges)
             throws IOException {
         mRedactRanges = checkRangesArgument(redactRanges);
 
         try {
             try {
-                mInner = Os.open(file.getAbsolutePath(), OsConstants.O_RDONLY, 0);
+                mInner = Os.open(file.getAbsolutePath(),
+                        FileUtils.translateModePfdToPosix(mode), 0);
                 mOuter = context.getSystemService(StorageManager.class)
-                        .openProxyFileDescriptor(ParcelFileDescriptor.MODE_READ_ONLY, mCallback);
+                        .openProxyFileDescriptor(mode, mCallback);
             } catch (ErrnoException e) {
                 throw e.rethrowAsIOException();
             }
@@ -78,16 +82,61 @@
 
     /**
      * Open the given {@link File} and returns a {@link ParcelFileDescriptor}
-     * that offers a redacted, read-only view of the underlying data.
+     * that offers a redacted view of the underlying data. If a redacted region
+     * is written to, the newly written data can be read back correctly instead
+     * of continuing to be redacted.
      *
      * @param file The underlying file to open.
+     * @param mode The {@link ParcelFileDescriptor} mode to open with.
      * @param redactRanges List of file offsets that should be redacted, stored
      *            as {@code [start1, end1, start2, end2, ...]}. Start values are
      *            inclusive and end values are exclusive.
      */
-    public static ParcelFileDescriptor open(Context context, File file, long[] redactRanges)
-            throws IOException {
-        return new RedactingFileDescriptor(context, file, redactRanges).mOuter;
+    public static ParcelFileDescriptor open(Context context, File file, int mode,
+            long[] redactRanges) throws IOException {
+        return new RedactingFileDescriptor(context, file, mode, redactRanges).mOuter;
+    }
+
+    /**
+     * Update the given ranges argument to remove any references to the given
+     * offset and length. This is typically used when a caller has written over
+     * a previously redacted region.
+     */
+    @VisibleForTesting
+    public static long[] removeRange(long[] ranges, long start, long end) {
+        if (start == end) {
+            return ranges;
+        } else if (start > end) {
+            throw new IllegalArgumentException();
+        }
+
+        long[] res = EmptyArray.LONG;
+        for (int i = 0; i < ranges.length; i += 2) {
+            if (start <= ranges[i] && end >= ranges[i + 1]) {
+                // Range entirely covered; remove it
+            } else if (start >= ranges[i] && end <= ranges[i + 1]) {
+                // Range partially covered; punch a hole
+                res = Arrays.copyOf(res, res.length + 4);
+                res[res.length - 4] = ranges[i];
+                res[res.length - 3] = start;
+                res[res.length - 2] = end;
+                res[res.length - 1] = ranges[i + 1];
+            } else {
+                // Range might covered; adjust edges if needed
+                res = Arrays.copyOf(res, res.length + 2);
+                if (end >= ranges[i] && end <= ranges[i + 1]) {
+                    res[res.length - 2] = Math.max(ranges[i], end);
+                } else {
+                    res[res.length - 2] = ranges[i];
+                }
+                if (start >= ranges[i] && start <= ranges[i + 1]) {
+                    res[res.length - 1] = Math.min(ranges[i + 1], start);
+                } else {
+                    res[res.length - 1] = ranges[i + 1];
+                }
+            }
+        }
+        return res;
     }
 
     private final ProxyFileDescriptorCallback mCallback = new ProxyFileDescriptorCallback() {
@@ -126,7 +175,24 @@
 
         @Override
         public int onWrite(long offset, int size, byte[] data) throws ErrnoException {
-            throw new ErrnoException(TAG, OsConstants.EBADF);
+            int n = 0;
+            while (n < size) {
+                try {
+                    final int res = Os.pwrite(mInner, data, n, size - n, offset + n);
+                    if (res == 0) {
+                        break;
+                    } else {
+                        n += res;
+                    }
+                } catch (InterruptedIOException e) {
+                    n += e.bytesTransferred;
+                }
+            }
+
+            // Clear any relevant redaction ranges before returning, since the
+            // writer should have access to see the data they just overwrote
+            mRedactRanges = removeRange(mRedactRanges, offset, offset + n);
+            return n;
         }
 
         @Override
diff --git a/core/java/android/os/StatsLogEventWrapper.java b/core/java/android/os/StatsLogEventWrapper.java
index 866bd9a..acb9eac 100644
--- a/core/java/android/os/StatsLogEventWrapper.java
+++ b/core/java/android/os/StatsLogEventWrapper.java
@@ -43,6 +43,7 @@
     int mTag;
     long mElapsedTimeNs;
     long mWallClockTimeNs;
+    WorkSource mWorkSource = null;
 
     public StatsLogEventWrapper(int tag, long elapsedTimeNs, long wallClockTimeNs) {
         this.mTag = tag;
@@ -71,6 +72,17 @@
             };
 
     /**
+     * Set work source if any.
+     */
+    public void setWorkSource(WorkSource ws) {
+        if (ws.getWorkChains() == null || ws.getWorkChains().size() == 0) {
+            Slog.w(TAG, "Empty worksource!");
+            return;
+        }
+        mWorkSource = ws;
+    }
+
+    /**
      * Write a int value.
      */
     public void writeInt(int val) {
@@ -119,11 +131,6 @@
         mValues.add(val ? 1 : 0);
     }
 
-    /**
-     * Writes the stored fields to a byte array. Will first write a new-line character to denote
-     * END_LIST before writing contents to byte array.
-     */
-
     public void writeToParcel(Parcel out, int flags) {
         if (DEBUG) {
             Slog.d(TAG,
@@ -133,6 +140,34 @@
         out.writeInt(mTag);
         out.writeLong(mElapsedTimeNs);
         out.writeLong(mWallClockTimeNs);
+        if (mWorkSource != null) {
+            ArrayList<android.os.WorkSource.WorkChain> workChains = mWorkSource.getWorkChains();
+            // number of chains
+            out.writeInt(workChains.size());
+            for (int i = 0; i < workChains.size(); i++) {
+                android.os.WorkSource.WorkChain wc = workChains.get(i);
+                if (wc.getSize() == 0) {
+                    Slog.w(TAG, "Empty work chain.");
+                    out.writeInt(0);
+                    continue;
+                }
+                if (wc.getUids().length != wc.getTags().length
+                        || wc.getUids().length != wc.getSize()) {
+                    Slog.w(TAG, "Malformated work chain.");
+                    out.writeInt(0);
+                    continue;
+                }
+                // number of nodes
+                out.writeInt(wc.getSize());
+                for (int j = 0; j < wc.getSize(); j++) {
+                    out.writeInt(wc.getUids()[j]);
+                    out.writeString(wc.getTags()[j] == null ? "" : wc.getTags()[j]);
+                }
+            }
+        } else {
+            // no chains
+            out.writeInt(0);
+        }
         out.writeInt(mTypes.size());
         for (int i = 0; i < mTypes.size(); i++) {
             out.writeInt(mTypes.get(i));
diff --git a/core/java/android/os/Temperature.java b/core/java/android/os/Temperature.java
index 37ed52c..21aba59 100644
--- a/core/java/android/os/Temperature.java
+++ b/core/java/android/os/Temperature.java
@@ -25,12 +25,10 @@
 
 /**
  * Temperature values used by IThermalService.
- */
-
-/**
+ *
  * @hide
  */
-public class Temperature implements Parcelable {
+public final class Temperature implements Parcelable {
     /** Temperature value */
     private float mValue;
     /** A temperature type from ThermalHAL */
@@ -40,7 +38,6 @@
     /** The level of the sensor is currently in throttling */
     private int mStatus;
 
-    /** @hide */
     @IntDef(prefix = { "THROTTLING_" }, value = {
             THROTTLING_NONE,
             THROTTLING_LIGHT,
@@ -62,7 +59,6 @@
     public static final int THROTTLING_WARNING = ThrottlingSeverity.WARNING;
     public static final int THROTTLING_SHUTDOWN = ThrottlingSeverity.SHUTDOWN;
 
-    /** @hide */
     @IntDef(prefix = { "TYPE_" }, value = {
             TYPE_UNKNOWN,
             TYPE_CPU,
@@ -95,19 +91,28 @@
      *
      * @return true if a temperature type is valid otherwise false.
      */
-    public static boolean isValidType(int type) {
+    public static boolean isValidType(@Type int type) {
         return type >= TYPE_UNKNOWN && type <= TYPE_BCL_PERCENTAGE;
     }
 
+    /**
+     * Verify a valid throttling status.
+     *
+     * @return true if a status is valid otherwise false.
+     */
+    public static boolean isValidStatus(@ThrottlingStatus int status) {
+        return status >= THROTTLING_NONE && status <= THROTTLING_SHUTDOWN;
+    }
+
     public Temperature() {
         this(Float.NaN, TYPE_UNKNOWN, "", THROTTLING_NONE);
     }
 
-    public Temperature(float value, @Type int type, String name, int status) {
+    public Temperature(float value, @Type int type, String name, @ThrottlingStatus int status) {
         mValue = value;
         mType = isValidType(type) ? type : TYPE_UNKNOWN;
         mName = name;
-        mStatus = status;
+        mStatus = isValidStatus(status) ? status : THROTTLING_NONE;
     }
 
     /**
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 92b3169..abfcfaa 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -2463,6 +2463,27 @@
     }
 
     /**
+     * Get the parent of a user profile.
+     *
+     * @param user the handle of the user profile
+     *
+     * @return the parent of the user or {@code null} if the user is not profile
+     *
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.MANAGE_USERS)
+    public @Nullable UserHandle getProfileParent(@NonNull UserHandle user) {
+        UserInfo info = getProfileParent(user.getIdentifier());
+
+        if (info == null) {
+            return null;
+        }
+
+        return UserHandle.of(info.id);
+    }
+
+    /**
      * Enables or disables quiet mode for a managed profile. If quiet mode is enabled, apps in a
      * managed profile don't run, generate notifications, or consume data or battery.
      * <p>
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 423ce77..d315383 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -25,6 +25,7 @@
 import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
 import android.annotation.SystemService;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.annotation.WorkerThread;
 import android.app.Activity;
@@ -55,6 +56,7 @@
 import android.os.ServiceManager.ServiceNotFoundException;
 import android.os.SystemProperties;
 import android.provider.Settings;
+import android.sysprop.VoldProperties;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.system.OsConstants;
@@ -137,8 +139,6 @@
     public static final String PROP_FORCE_VIDEO = "persist.fw.force_video";
     /** {@hide} */
     public static final String PROP_FORCE_IMAGES = "persist.fw.force_images";
-    /** {@hide} */
-    public static final String PROP_FORCE_LEGACY = "persist.fw.force_legacy";
 
     /** {@hide} */
     public static final String UUID_PRIVATE_INTERNAL = null;
@@ -1496,7 +1496,7 @@
      * framework, so no service needs to check for changes during their lifespan
      */
     public static boolean isBlockEncrypting() {
-        final String state = SystemProperties.get("vold.encrypt_progress", "");
+        final String state = VoldProperties.encrypt_progress().orElse("");
         return !"".equalsIgnoreCase(state);
     }
 
@@ -1512,7 +1512,7 @@
      * framework, so no service needs to check for changes during their lifespan
      */
     public static boolean inCryptKeeperBounce() {
-        final String status = SystemProperties.get("vold.decrypt");
+        final String status = VoldProperties.decrypt().orElse("");
         return "trigger_restart_min_framework".equals(status);
     }
 
@@ -1535,6 +1535,12 @@
         return SystemProperties.getBoolean(PROP_HAS_ADOPTABLE, false);
     }
 
+    /** {@hide} */
+    @TestApi
+    public static boolean hasIsolatedStorage() {
+        return SystemProperties.getBoolean(PROP_ISOLATED_STORAGE, false);
+    }
+
     /**
      * @deprecated disabled now that FUSE has been replaced by sdcardfs
      * @hide
diff --git a/core/java/android/permissionpresenterservice/RuntimePermissionPresenterService.java b/core/java/android/permissionpresenterservice/RuntimePermissionPresenterService.java
index 18aea03..a41a644 100644
--- a/core/java/android/permissionpresenterservice/RuntimePermissionPresenterService.java
+++ b/core/java/android/permissionpresenterservice/RuntimePermissionPresenterService.java
@@ -16,6 +16,9 @@
 
 package android.permissionpresenterservice;
 
+import static com.android.internal.util.Preconditions.checkNotNull;
+import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
+
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.app.Service;
@@ -27,12 +30,8 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
-import android.os.Looper;
-import android.os.Message;
 import android.os.RemoteCallback;
 
-import com.android.internal.os.SomeArgs;
-
 import java.util.List;
 
 /**
@@ -63,7 +62,7 @@
     @Override
     public final void attachBaseContext(Context base) {
         super.attachBaseContext(base);
-        mHandler = new MyHandler(base.getMainLooper());
+        mHandler = new Handler(base.getMainLooper());
     }
 
     /**
@@ -71,7 +70,8 @@
      *
      * @param packageName The package for which to query.
      */
-    public abstract List<RuntimePermissionPresentationInfo> onGetAppPermissions(String packageName);
+    public abstract List<RuntimePermissionPresentationInfo> onGetAppPermissions(
+            @NonNull String packageName);
 
     /**
      * Revokes the permission {@code permissionName} for app {@code packageName}
@@ -87,61 +87,35 @@
         return new IRuntimePermissionPresenter.Stub() {
             @Override
             public void getAppPermissions(String packageName, RemoteCallback callback) {
-                SomeArgs args = SomeArgs.obtain();
-                args.arg1 = packageName;
-                args.arg2 = callback;
-                mHandler.obtainMessage(MyHandler.MSG_GET_APP_PERMISSIONS,
-                        args).sendToTarget();
+                checkNotNull(packageName, "packageName");
+                checkNotNull(callback, "callback");
+
+                mHandler.sendMessage(
+                        obtainMessage(RuntimePermissionPresenterService::getAppPermissions,
+                                RuntimePermissionPresenterService.this, packageName, callback));
             }
 
             @Override
             public void revokeRuntimePermission(String packageName, String permissionName) {
-                SomeArgs args = SomeArgs.obtain();
-                args.arg1 = packageName;
-                args.arg2 = permissionName;
-                mHandler.obtainMessage(MyHandler.MSG_REVOKE_APP_PERMISSION,
-                        args).sendToTarget();
+                checkNotNull(packageName, "packageName");
+                checkNotNull(permissionName, "permissionName");
+
+                mHandler.sendMessage(
+                        obtainMessage(RuntimePermissionPresenterService::onRevokeRuntimePermission,
+                                RuntimePermissionPresenterService.this, packageName,
+                                permissionName));
             }
         };
     }
 
-    private final class MyHandler extends Handler {
-        public static final int MSG_GET_APP_PERMISSIONS = 1;
-        public static final int MSG_GET_APPS_USING_PERMISSIONS = 2;
-        public static final int MSG_REVOKE_APP_PERMISSION = 3;
-
-        public MyHandler(Looper looper) {
-            super(looper, null, false);
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_GET_APP_PERMISSIONS: {
-                    SomeArgs args = (SomeArgs) msg.obj;
-                    String packageName = (String) args.arg1;
-                    RemoteCallback callback = (RemoteCallback) args.arg2;
-                    args.recycle();
-                    List<RuntimePermissionPresentationInfo> permissions =
-                            onGetAppPermissions(packageName);
-                    if (permissions != null && !permissions.isEmpty()) {
-                        Bundle result = new Bundle();
-                        result.putParcelableList(RuntimePermissionPresenter.KEY_RESULT,
-                                permissions);
-                        callback.sendResult(result);
-                    } else {
-                        callback.sendResult(null);
-                    }
-                } break;
-                case MSG_REVOKE_APP_PERMISSION: {
-                    SomeArgs args = (SomeArgs) msg.obj;
-                    String packageName = (String) args.arg1;
-                    String permissionName = (String) args.arg2;
-                    args.recycle();
-
-                    onRevokeRuntimePermission(packageName, permissionName);
-                } break;
-            }
+    private void getAppPermissions(@NonNull String packageName, @NonNull RemoteCallback callback) {
+        List<RuntimePermissionPresentationInfo> permissions = onGetAppPermissions(packageName);
+        if (permissions != null && !permissions.isEmpty()) {
+            Bundle result = new Bundle();
+            result.putParcelableList(RuntimePermissionPresenter.KEY_RESULT, permissions);
+            callback.sendResult(result);
+        } else {
+            callback.sendResult(null);
         }
     }
 }
diff --git a/core/java/android/preference/CheckBoxPreference.java b/core/java/android/preference/CheckBoxPreference.java
index fee3f0f1..948c6aa 100644
--- a/core/java/android/preference/CheckBoxPreference.java
+++ b/core/java/android/preference/CheckBoxPreference.java
@@ -27,11 +27,18 @@
  * functionality.
  * <p>
  * This preference will store a boolean into the SharedPreferences.
- * 
+ *
  * @attr ref android.R.styleable#CheckBoxPreference_summaryOff
  * @attr ref android.R.styleable#CheckBoxPreference_summaryOn
  * @attr ref android.R.styleable#CheckBoxPreference_disableDependentsState
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class CheckBoxPreference extends TwoStatePreference {
 
     public CheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr) {
diff --git a/core/java/android/preference/DialogPreference.java b/core/java/android/preference/DialogPreference.java
index 4b5a7b4..96c8589 100644
--- a/core/java/android/preference/DialogPreference.java
+++ b/core/java/android/preference/DialogPreference.java
@@ -50,7 +50,14 @@
  * @attr ref android.R.styleable#DialogPreference_dialogLayout
  * @attr ref android.R.styleable#DialogPreference_positiveButtonText
  * @attr ref android.R.styleable#DialogPreference_negativeButtonText
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public abstract class DialogPreference extends Preference implements
         DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
         PreferenceManager.OnActivityDestroyListener {
diff --git a/core/java/android/preference/EditTextPreference.java b/core/java/android/preference/EditTextPreference.java
index 4d2ac67..c09cec8 100644
--- a/core/java/android/preference/EditTextPreference.java
+++ b/core/java/android/preference/EditTextPreference.java
@@ -42,7 +42,14 @@
  * This preference will store a string into the SharedPreferences.
  * <p>
  * See {@link android.R.styleable#EditText EditText Attributes}.
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class EditTextPreference extends DialogPreference {
     /**
      * The edit text shown in the dialog.
diff --git a/core/java/android/preference/GenericInflater.java b/core/java/android/preference/GenericInflater.java
index 3319e64..7edc987 100644
--- a/core/java/android/preference/GenericInflater.java
+++ b/core/java/android/preference/GenericInflater.java
@@ -16,13 +16,6 @@
 
 package android.preference;
 
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.util.HashMap;
-
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
 import android.annotation.XmlRes;
 import android.content.Context;
 import android.content.res.XmlResourceParser;
@@ -32,6 +25,13 @@
 import android.view.InflateException;
 import android.view.LayoutInflater;
 
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.util.HashMap;
+
 // TODO: fix generics
 /**
  * Generic XML inflater. This has been adapted from {@link LayoutInflater} and
@@ -41,7 +41,14 @@
  * @param T The type of the items to inflate
  * @param P The type of parents (that is those items that contain other items).
  *            Must implement {@link GenericInflater.Parent}
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 abstract class GenericInflater<T, P extends GenericInflater.Parent> {
     private final boolean DEBUG = false;
 
diff --git a/core/java/android/preference/ListPreference.java b/core/java/android/preference/ListPreference.java
index c0c71af..14c1dc81 100644
--- a/core/java/android/preference/ListPreference.java
+++ b/core/java/android/preference/ListPreference.java
@@ -36,7 +36,14 @@
  *
  * @attr ref android.R.styleable#ListPreference_entries
  * @attr ref android.R.styleable#ListPreference_entryValues
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class ListPreference extends DialogPreference {
     private CharSequence[] mEntries;
     private CharSequence[] mEntryValues;
diff --git a/core/java/android/preference/MultiCheckPreference.java b/core/java/android/preference/MultiCheckPreference.java
index c1260a4..e3d0e26 100644
--- a/core/java/android/preference/MultiCheckPreference.java
+++ b/core/java/android/preference/MultiCheckPreference.java
@@ -16,8 +16,6 @@
 
 package android.preference;
 
-import java.util.Arrays;
-
 import android.annotation.ArrayRes;
 import android.app.AlertDialog.Builder;
 import android.content.Context;
@@ -27,6 +25,8 @@
 import android.os.Parcelable;
 import android.util.AttributeSet;
 
+import java.util.Arrays;
+
 /**
  * @hide
  * A {@link Preference} that displays a list of entries as
@@ -34,7 +34,14 @@
  * 
  * @attr ref android.R.styleable#ListPreference_entries
  * @attr ref android.R.styleable#ListPreference_entryValues
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class MultiCheckPreference extends DialogPreference {
     private CharSequence[] mEntries;
     private String[] mEntryValues;
diff --git a/core/java/android/preference/MultiSelectListPreference.java b/core/java/android/preference/MultiSelectListPreference.java
index 138bd878..43182d9 100644
--- a/core/java/android/preference/MultiSelectListPreference.java
+++ b/core/java/android/preference/MultiSelectListPreference.java
@@ -35,10 +35,17 @@
  * This preference will store a set of strings into the SharedPreferences.
  * This set will contain one or more values from the
  * {@link #setEntryValues(CharSequence[])} array.
- * 
+ *
  * @attr ref android.R.styleable#MultiSelectListPreference_entries
  * @attr ref android.R.styleable#MultiSelectListPreference_entryValues
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class MultiSelectListPreference extends DialogPreference {
     private CharSequence[] mEntries;
     private CharSequence[] mEntryValues;
@@ -65,25 +72,25 @@
     public MultiSelectListPreference(Context context, AttributeSet attrs) {
         this(context, attrs, com.android.internal.R.attr.dialogPreferenceStyle);
     }
-    
+
     public MultiSelectListPreference(Context context) {
         this(context, null);
     }
-    
+
     /**
      * Sets the human-readable entries to be shown in the list. This will be
      * shown in subsequent dialogs.
      * <p>
      * Each entry must have a corresponding index in
      * {@link #setEntryValues(CharSequence[])}.
-     * 
+     *
      * @param entries The entries.
      * @see #setEntryValues(CharSequence[])
      */
     public void setEntries(CharSequence[] entries) {
         mEntries = entries;
     }
-    
+
     /**
      * @see #setEntries(CharSequence[])
      * @param entriesResId The entries array as a resource.
@@ -91,21 +98,21 @@
     public void setEntries(@ArrayRes int entriesResId) {
         setEntries(getContext().getResources().getTextArray(entriesResId));
     }
-    
+
     /**
      * The list of entries to be shown in the list in subsequent dialogs.
-     * 
+     *
      * @return The list as an array.
      */
     public CharSequence[] getEntries() {
         return mEntries;
     }
-    
+
     /**
      * The array to find the value to save for a preference when an entry from
      * entries is selected. If a user clicks on the second item in entries, the
      * second item in this array will be saved to the preference.
-     * 
+     *
      * @param entryValues The array to be used as values to save for the preference.
      */
     public void setEntryValues(CharSequence[] entryValues) {
@@ -119,20 +126,20 @@
     public void setEntryValues(@ArrayRes int entryValuesResId) {
         setEntryValues(getContext().getResources().getTextArray(entryValuesResId));
     }
-    
+
     /**
      * Returns the array of values to be saved for the preference.
-     * 
+     *
      * @return The array of values.
      */
     public CharSequence[] getEntryValues() {
         return mEntryValues;
     }
-    
+
     /**
      * Sets the value of the key. This should contain entries in
      * {@link #getEntryValues()}.
-     * 
+     *
      * @param values The values to set for the key.
      */
     public void setValues(Set<String> values) {
@@ -141,17 +148,17 @@
 
         persistStringSet(values);
     }
-    
+
     /**
      * Retrieves the current value of the key.
      */
     public Set<String> getValues() {
         return mValues;
     }
-    
+
     /**
      * Returns the index of the given value (in the entry values array).
-     * 
+     *
      * @param value The value whose index should be returned.
      * @return The index of the value, or -1 if not found.
      */
@@ -165,17 +172,17 @@
         }
         return -1;
     }
-    
+
     @Override
     protected void onPrepareDialogBuilder(Builder builder) {
         super.onPrepareDialogBuilder(builder);
-        
+
         if (mEntries == null || mEntryValues == null) {
             throw new IllegalStateException(
                     "MultiSelectListPreference requires an entries array and " +
                     "an entryValues array.");
         }
-        
+
         boolean[] checkedItems = getSelectedItems();
         builder.setMultiChoiceItems(mEntries, checkedItems,
                 new DialogInterface.OnMultiChoiceClickListener() {
@@ -190,24 +197,24 @@
         mNewValues.clear();
         mNewValues.addAll(mValues);
     }
-    
+
     private boolean[] getSelectedItems() {
         final CharSequence[] entries = mEntryValues;
         final int entryCount = entries.length;
         final Set<String> values = mValues;
         boolean[] result = new boolean[entryCount];
-        
+
         for (int i = 0; i < entryCount; i++) {
             result[i] = values.contains(entries[i].toString());
         }
-        
+
         return result;
     }
-    
+
     @Override
     protected void onDialogClosed(boolean positiveResult) {
         super.onDialogClosed(positiveResult);
-        
+
         if (positiveResult && mPreferenceChanged) {
             final Set<String> values = mNewValues;
             if (callChangeListener(values)) {
@@ -216,25 +223,25 @@
         }
         mPreferenceChanged = false;
     }
-    
+
     @Override
     protected Object onGetDefaultValue(TypedArray a, int index) {
         final CharSequence[] defaultValues = a.getTextArray(index);
         final int valueCount = defaultValues.length;
         final Set<String> result = new HashSet<String>();
-        
+
         for (int i = 0; i < valueCount; i++) {
             result.add(defaultValues[i].toString());
         }
-        
+
         return result;
     }
-    
+
     @Override
     protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
         setValues(restoreValue ? getPersistedStringSet(mValues) : (Set<String>) defaultValue);
     }
-    
+
     @Override
     protected Parcelable onSaveInstanceState() {
         final Parcelable superState = super.onSaveInstanceState();
@@ -242,42 +249,42 @@
             // No need to save instance state
             return superState;
         }
-        
+
         final SavedState myState = new SavedState(superState);
         myState.values = getValues();
         return myState;
     }
-    
+
     private static class SavedState extends BaseSavedState {
         Set<String> values;
-        
+
         public SavedState(Parcel source) {
             super(source);
             values = new HashSet<String>();
             String[] strings = source.readStringArray();
-            
+
             final int stringCount = strings.length;
             for (int i = 0; i < stringCount; i++) {
                 values.add(strings[i]);
             }
         }
-        
+
         public SavedState(Parcelable superState) {
             super(superState);
         }
-        
+
         @Override
         public void writeToParcel(Parcel dest, int flags) {
             super.writeToParcel(dest, flags);
             dest.writeStringArray(values.toArray(new String[0]));
         }
-        
+
         public static final Parcelable.Creator<SavedState> CREATOR =
                 new Parcelable.Creator<SavedState>() {
             public SavedState createFromParcel(Parcel in) {
                 return new SavedState(in);
             }
-            
+
             public SavedState[] newArray(int size) {
                 return new SavedState[size];
             }
diff --git a/core/java/android/preference/Preference.java b/core/java/android/preference/Preference.java
index 2387657..3c1ba9d 100644
--- a/core/java/android/preference/Preference.java
+++ b/core/java/android/preference/Preference.java
@@ -86,7 +86,14 @@
  * @attr ref android.R.styleable#Preference_recycleEnabled
  * @attr ref android.R.styleable#Preference_singleLineTitle
  * @attr ref android.R.styleable#Preference_iconSpaceReserved
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class Preference implements Comparable<Preference> {
     /**
      * Specify for {@link #setOrder(int)} if a specific order is not required.
@@ -165,7 +172,14 @@
      * {@link Preference} has been changed by the user and is
      * about to be set and/or persisted.  This gives the client a chance
      * to prevent setting and/or persisting the value.
+     *
+     * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+     *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+     *      Preference Library</a> for consistent behavior across all devices.
+     *      For more information on using the AndroidX Preference Library see
+     *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
      */
+    @Deprecated
     public interface OnPreferenceChangeListener {
         /**
          * Called when a Preference has been changed by the user. This is
@@ -182,7 +196,14 @@
     /**
      * Interface definition for a callback to be invoked when a {@link Preference} is
      * clicked.
+     *
+     * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+     *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+     *      Preference Library</a> for consistent behavior across all devices.
+     *      For more information on using the AndroidX Preference Library see
+     *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
      */
+    @Deprecated
     public interface OnPreferenceClickListener {
         /**
          * Called when a Preference has been clicked.
@@ -2070,7 +2091,14 @@
 
     /**
      * A base class for managing the instance state of a {@link Preference}.
+     *
+     * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+     *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+     *      Preference Library</a> for consistent behavior across all devices.
+     *      For more information on using the AndroidX Preference Library see
+     *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
      */
+    @Deprecated
     public static class BaseSavedState extends AbsSavedState {
         public BaseSavedState(Parcel source) {
             super(source);
diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java
index 8ed2605..eab5937 100644
--- a/core/java/android/preference/PreferenceActivity.java
+++ b/core/java/android/preference/PreferenceActivity.java
@@ -97,34 +97,13 @@
  * guide.</p>
  * </div>
  *
- * <a name="SampleCode"></a>
- * <h3>Sample Code</h3>
- *
- * <p>The following sample code shows a simple preference activity that
- * has two different sets of preferences.  The implementation, consisting
- * of the activity itself as well as its two preference fragments is:</p>
- *
- * {@sample development/samples/ApiDemos/src/com/example/android/apis/preference/PreferenceWithHeaders.java
- *      activity}
- *
- * <p>The preference_headers resource describes the headers to be displayed
- * and the fragments associated with them.  It is:
- *
- * {@sample development/samples/ApiDemos/res/xml/preference_headers.xml headers}
- *
- * <p>The first header is shown by Prefs1Fragment, which populates itself
- * from the following XML resource:</p>
- *
- * {@sample development/samples/ApiDemos/res/xml/fragmented_preferences.xml preferences}
- *
- * <p>Note that this XML resource contains a preference screen holding another
- * fragment, the Prefs1FragmentInner implemented here.  This allows the user
- * to traverse down a hierarchy of preferences; pressing back will pop each
- * fragment off the stack to return to the previous preferences.
- *
- * <p>See {@link PreferenceFragment} for information on implementing the
- * fragments themselves.
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public abstract class PreferenceActivity extends ListActivity implements
         PreferenceManager.OnPreferenceTreeClickListener,
         PreferenceFragment.OnPreferenceStartFragmentCallback {
@@ -337,7 +316,14 @@
 
     /**
      * Description of a single Header item that the user can select.
+     *
+     * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+     *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+     *      Preference Library</a> for consistent behavior across all devices.
+     *      For more information on using the AndroidX Preference Library see
+     *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
      */
+    @Deprecated
     public static final class Header implements Parcelable {
         /**
          * Identifier for this header, to correlate with a new list when
diff --git a/core/java/android/preference/PreferenceCategory.java b/core/java/android/preference/PreferenceCategory.java
index 253481b..887e468 100644
--- a/core/java/android/preference/PreferenceCategory.java
+++ b/core/java/android/preference/PreferenceCategory.java
@@ -29,7 +29,14 @@
  * read the <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>
  * guide.</p>
  * </div>
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class PreferenceCategory extends PreferenceGroup {
     private static final String TAG = "PreferenceCategory";
 
diff --git a/core/java/android/preference/PreferenceDataStore.java b/core/java/android/preference/PreferenceDataStore.java
index 8caa404..5171632 100644
--- a/core/java/android/preference/PreferenceDataStore.java
+++ b/core/java/android/preference/PreferenceDataStore.java
@@ -39,7 +39,14 @@
  *
  * @see Preference#setPreferenceDataStore(PreferenceDataStore)
  * @see PreferenceManager#setPreferenceDataStore(PreferenceDataStore)
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public interface PreferenceDataStore {
 
     /**
diff --git a/core/java/android/preference/PreferenceFragment.java b/core/java/android/preference/PreferenceFragment.java
index 548895e..d6c069f0 100644
--- a/core/java/android/preference/PreferenceFragment.java
+++ b/core/java/android/preference/PreferenceFragment.java
@@ -88,25 +88,14 @@
  * guide.</p>
  * </div>
  *
- * <a name="SampleCode"></a>
- * <h3>Sample Code</h3>
- *
- * <p>The following sample code shows a simple preference fragment that is
- * populated from a resource.  The resource it loads is:</p>
- *
- * {@sample development/samples/ApiDemos/res/xml/preferences.xml preferences}
- *
- * <p>The fragment implementation itself simply populates the preferences
- * when created.  Note that the preferences framework takes care of loading
- * the current values out of the app preferences and writing them when changed:</p>
- *
- * {@sample development/samples/ApiDemos/src/com/example/android/apis/preference/FragmentPreferences.java
- *      fragment}
- *
  * @see Preference
  * @see PreferenceScreen
  *
- * @deprecated Use {@link android.support.v7.preference.PreferenceFragmentCompat}
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
 @Deprecated
 public abstract class PreferenceFragment extends Fragment implements
diff --git a/core/java/android/preference/PreferenceFrameLayout.java b/core/java/android/preference/PreferenceFrameLayout.java
index 886338f..c667824 100644
--- a/core/java/android/preference/PreferenceFrameLayout.java
+++ b/core/java/android/preference/PreferenceFrameLayout.java
@@ -24,7 +24,14 @@
 
 /**
  * @hide
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class PreferenceFrameLayout extends FrameLayout {
     private static final int DEFAULT_BORDER_TOP = 0;
     private static final int DEFAULT_BORDER_BOTTOM = 0;
diff --git a/core/java/android/preference/PreferenceGroup.java b/core/java/android/preference/PreferenceGroup.java
index f135b26..b33ea4e 100644
--- a/core/java/android/preference/PreferenceGroup.java
+++ b/core/java/android/preference/PreferenceGroup.java
@@ -16,15 +16,16 @@
 
 package android.preference;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 /**
  * A container for multiple
  * {@link Preference} objects. It is a base class for  Preference objects that are
@@ -38,7 +39,14 @@
  * </div>
  *
  * @attr ref android.R.styleable#PreferenceGroup_orderingFromXml
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public abstract class PreferenceGroup extends Preference implements GenericInflater.Parent<Preference> {
     /**
      * The container for child {@link Preference}s. This is sorted based on the
diff --git a/core/java/android/preference/PreferenceGroupAdapter.java b/core/java/android/preference/PreferenceGroupAdapter.java
index bee45ab..fb41ea8 100644
--- a/core/java/android/preference/PreferenceGroupAdapter.java
+++ b/core/java/android/preference/PreferenceGroupAdapter.java
@@ -16,10 +16,6 @@
 
 package android.preference;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
 import android.graphics.drawable.Drawable;
 import android.os.Handler;
 import android.preference.Preference.OnPreferenceChangeInternalListener;
@@ -30,6 +26,10 @@
 import android.widget.FrameLayout;
 import android.widget.ListView;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 /**
  * An adapter that returns the {@link Preference} contained in this group.
  * In most cases, this adapter should be the base class for any custom
@@ -49,7 +49,14 @@
  * @see PreferenceCategoryAdapter
  *
  * @hide
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class PreferenceGroupAdapter extends BaseAdapter
         implements OnPreferenceChangeInternalListener {
     
diff --git a/core/java/android/preference/PreferenceInflater.java b/core/java/android/preference/PreferenceInflater.java
index 727fbca..04ad107 100644
--- a/core/java/android/preference/PreferenceInflater.java
+++ b/core/java/android/preference/PreferenceInflater.java
@@ -16,16 +16,16 @@
 
 package android.preference;
 
-import com.android.internal.util.XmlUtils;
+import android.content.Context;
+import android.content.Intent;
+import android.util.AttributeSet;
 
-import java.io.IOException;
+import com.android.internal.util.XmlUtils;
 
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
-import android.content.Context;
-import android.content.Intent;
-import android.util.AttributeSet;
+import java.io.IOException;
 
 /**
  * The {@link PreferenceInflater} is used to inflate preference hierarchies from
@@ -34,7 +34,14 @@
  * Do not construct this directly, instead use
  * {@link Context#getSystemService(String)} with
  * {@link Context#PREFERENCE_INFLATER_SERVICE}.
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 class PreferenceInflater extends GenericInflater<Preference, PreferenceGroup> {
     private static final String TAG = "PreferenceInflater";
     private static final String INTENT_TAG_NAME = "intent";
diff --git a/core/java/android/preference/PreferenceManager.java b/core/java/android/preference/PreferenceManager.java
index dfee1af..f741bd6 100644
--- a/core/java/android/preference/PreferenceManager.java
+++ b/core/java/android/preference/PreferenceManager.java
@@ -47,7 +47,14 @@
  * {@link PreferenceActivity#addPreferencesFromResource(int)}.
  *
  * @see PreferenceActivity
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class PreferenceManager {
 
     private static final String TAG = "PreferenceManager";
@@ -1004,7 +1011,14 @@
      * clicked.
      *
      * @hide
+     *
+     * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+     *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+     *      Preference Library</a> for consistent behavior across all devices.
+     *      For more information on using the AndroidX Preference Library see
+     *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
      */
+    @Deprecated
     public interface OnPreferenceTreeClickListener {
         /**
          * Called when a preference in the tree rooted at this
@@ -1021,7 +1035,14 @@
     /**
      * Interface definition for a class that will be called when the container's activity
      * receives an activity result.
+     *
+     * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+     *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+     *      Preference Library</a> for consistent behavior across all devices.
+     *      For more information on using the AndroidX Preference Library see
+     *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
      */
+    @Deprecated
     public interface OnActivityResultListener {
 
         /**
@@ -1036,7 +1057,14 @@
     /**
      * Interface definition for a class that will be called when the container's activity
      * is stopped.
+     *
+     * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+     *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+     *      Preference Library</a> for consistent behavior across all devices.
+     *      For more information on using the AndroidX Preference Library see
+     *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
      */
+    @Deprecated
     public interface OnActivityStopListener {
 
         /**
@@ -1048,7 +1076,14 @@
     /**
      * Interface definition for a class that will be called when the container's activity
      * is destroyed.
+     *
+     * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+     *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+     *      Preference Library</a> for consistent behavior across all devices.
+     *      For more information on using the AndroidX Preference Library see
+     *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
      */
+    @Deprecated
     public interface OnActivityDestroyListener {
 
         /**
diff --git a/core/java/android/preference/PreferenceScreen.java b/core/java/android/preference/PreferenceScreen.java
index dd00a53..c7653c8 100644
--- a/core/java/android/preference/PreferenceScreen.java
+++ b/core/java/android/preference/PreferenceScreen.java
@@ -86,7 +86,14 @@
  * </div>
  *
  * @see PreferenceCategory
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public final class PreferenceScreen extends PreferenceGroup implements AdapterView.OnItemClickListener,
         DialogInterface.OnDismissListener {
 
diff --git a/core/java/android/preference/RingtonePreference.java b/core/java/android/preference/RingtonePreference.java
index cd751cd..025aad0 100644
--- a/core/java/android/preference/RingtonePreference.java
+++ b/core/java/android/preference/RingtonePreference.java
@@ -40,7 +40,14 @@
  * @attr ref android.R.styleable#RingtonePreference_ringtoneType
  * @attr ref android.R.styleable#RingtonePreference_showDefault
  * @attr ref android.R.styleable#RingtonePreference_showSilent
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class RingtonePreference extends Preference implements
         PreferenceManager.OnActivityResultListener {
 
diff --git a/core/java/android/preference/SeekBarDialogPreference.java b/core/java/android/preference/SeekBarDialogPreference.java
index a8e5992..32ef821 100644
--- a/core/java/android/preference/SeekBarDialogPreference.java
+++ b/core/java/android/preference/SeekBarDialogPreference.java
@@ -28,7 +28,14 @@
 
 /**
  * @hide
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class SeekBarDialogPreference extends DialogPreference {
     private final Drawable mMyIcon;
 
diff --git a/core/java/android/preference/SeekBarPreference.java b/core/java/android/preference/SeekBarPreference.java
index cd35f3d..f789e31 100644
--- a/core/java/android/preference/SeekBarPreference.java
+++ b/core/java/android/preference/SeekBarPreference.java
@@ -29,7 +29,14 @@
 
 /**
  * @hide
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class SeekBarPreference extends Preference
         implements OnSeekBarChangeListener {
 
diff --git a/core/java/android/preference/SeekBarVolumizer.java b/core/java/android/preference/SeekBarVolumizer.java
index a871425..f01d5b1 100644
--- a/core/java/android/preference/SeekBarVolumizer.java
+++ b/core/java/android/preference/SeekBarVolumizer.java
@@ -45,7 +45,14 @@
 /**
  * Turns a {@link SeekBar} into a volume control.
  * @hide
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callback {
     private static final String TAG = "SeekBarVolumizer";
 
diff --git a/core/java/android/preference/SwitchPreference.java b/core/java/android/preference/SwitchPreference.java
index 1ec18bb..9dea1c8 100644
--- a/core/java/android/preference/SwitchPreference.java
+++ b/core/java/android/preference/SwitchPreference.java
@@ -36,7 +36,14 @@
  * @attr ref android.R.styleable#SwitchPreference_switchTextOff
  * @attr ref android.R.styleable#SwitchPreference_switchTextOn
  * @attr ref android.R.styleable#SwitchPreference_disableDependentsState
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class SwitchPreference extends TwoStatePreference {
     @UnsupportedAppUsage
     private final Listener mListener = new Listener();
diff --git a/core/java/android/preference/TwoStatePreference.java b/core/java/android/preference/TwoStatePreference.java
index 2079a63..454472a 100644
--- a/core/java/android/preference/TwoStatePreference.java
+++ b/core/java/android/preference/TwoStatePreference.java
@@ -32,7 +32,14 @@
  * Common base class for preferences that have two selectable states, persist a
  * boolean value in SharedPreferences, and may have dependent preferences that are
  * enabled/disabled based on the current state.
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public abstract class TwoStatePreference extends Preference {
 
     private CharSequence mSummaryOn;
diff --git a/core/java/android/preference/VolumePreference.java b/core/java/android/preference/VolumePreference.java
index ea1d1eb..92d848a 100644
--- a/core/java/android/preference/VolumePreference.java
+++ b/core/java/android/preference/VolumePreference.java
@@ -31,7 +31,14 @@
 
 /**
  * @hide
+ *
+ * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+ *      <a href="{@docRoot}reference/androidx/preference/package-summary.html">
+ *      Preference Library</a> for consistent behavior across all devices. For more information on
+ *      using the AndroidX Preference Library see
+ *      <a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
  */
+@Deprecated
 public class VolumePreference extends SeekBarDialogPreference implements
         PreferenceManager.OnActivityStopListener, View.OnKeyListener, SeekBarVolumizer.Callback {
     @UnsupportedAppUsage
diff --git a/core/java/android/preference/package.html b/core/java/android/preference/package.html
index d24d5bb..382ed6e 100644
--- a/core/java/android/preference/package.html
+++ b/core/java/android/preference/package.html
@@ -1,23 +1,9 @@
 <HTML>
 <BODY>
-Provides classes that manage application preferences and implement the preferences UI.
-Using these ensures that all the preferences within each application are maintained 
-in the same manner and the user experience is consistent with that of the system and 
-other applications.
-<p>
-The preferences portion of an application 
-should be ran as a separate {@link android.app.Activity} that extends
-the {@link android.preference.PreferenceActivity} class. In the PreferenceActivity, a 
-{@link android.preference.PreferenceScreen} object should be the root element of the layout. 
-The PreferenceScreen contains {@link android.preference.Preference} elements such as a 
-{@link android.preference.CheckBoxPreference}, {@link android.preference.EditTextPreference}, 
-{@link android.preference.ListPreference}, {@link android.preference.PreferenceCategory},
-or {@link android.preference.RingtonePreference}. </p>
-<p>
-All settings made for a given {@link android.preference.Preference} will be automatically saved
-to the application's instance of {@link android.content.SharedPreferences}. Access to the 
-SharedPreferences is simple with {@link android.preference.Preference#getSharedPreferences()}.</p>
-<p>
-Note that saved preferences are accessible only to the application that created them.</p>
+These classes are deprecated. Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a>
+<a href="{@docRoot}reference/androidx/preference/package-summary.html">
+Preference Library</a> for consistent behavior across all devices. For more information on
+using the AndroidX Preference Library see
+<a href="{@docRoot}guide/topics/ui/settings.html">Settings</a>.
 </BODY>
 </HTML>
diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java
index 16d454d..e032c18 100644
--- a/core/java/android/provider/DocumentsContract.java
+++ b/core/java/android/provider/DocumentsContract.java
@@ -1232,7 +1232,7 @@
     public static Bitmap getDocumentThumbnail(ContentProviderClient client, Uri documentUri,
             Point size, CancellationSignal signal) throws IOException {
         return ContentResolver.loadThumbnail(client, documentUri, Point.convert(size), signal,
-                ImageDecoder.ALLOCATOR_DEFAULT);
+                ImageDecoder.ALLOCATOR_SOFTWARE);
     }
 
     /**
diff --git a/core/java/android/provider/FontsContract.java b/core/java/android/provider/FontsContract.java
index 76607e9..8e37559 100644
--- a/core/java/android/provider/FontsContract.java
+++ b/core/java/android/provider/FontsContract.java
@@ -660,7 +660,22 @@
         if (familyBuilder == null) {
             return null;
         }
-        return new Typeface.CustomFallbackBuilder(familyBuilder.build()).build();
+
+        final FontFamily family = familyBuilder.build();
+
+        final FontStyle normal = new FontStyle(FontStyle.FONT_WEIGHT_NORMAL,
+                FontStyle.FONT_SLANT_UPRIGHT);
+        Font bestFont = family.getFont(0);
+        int bestScore = normal.getMatchScore(bestFont.getStyle());
+        for (int i = 1; i < family.getSize(); ++i) {
+            final Font candidate = family.getFont(i);
+            final int score = normal.getMatchScore(candidate.getStyle());
+            if (score < bestScore) {
+                bestFont = candidate;
+                bestScore = score;
+            }
+        }
+        return new Typeface.CustomFallbackBuilder(family).setStyle(bestFont.getStyle()).build();
     }
 
     /**
diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java
index 291891e..0299e41 100644
--- a/core/java/android/provider/MediaStore.java
+++ b/core/java/android/provider/MediaStore.java
@@ -37,6 +37,7 @@
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Point;
+import android.media.ExifInterface;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.CancellationSignal;
@@ -121,6 +122,8 @@
     public static final String PARAM_INCLUDE_PENDING = "includePending";
     /** {@hide} */
     public static final String PARAM_PROGRESS = "progress";
+    /** {@hide} */
+    public static final String PARAM_REQUIRE_ORIGINAL = "requireOriginal";
 
     /**
      * Activity Action: Launch a music player.
@@ -478,6 +481,24 @@
     }
 
     /**
+     * Update the given {@link Uri} to indicate that the caller requires the
+     * original file contents when calling
+     * {@link ContentResolver#openFileDescriptor(Uri, String)}.
+     * <p>
+     * This can be useful when the caller wants to ensure they're backing up the
+     * exact bytes of the underlying media, without any Exif redaction being
+     * performed.
+     * <p>
+     * If the original file contents cannot be provided, a
+     * {@link UnsupportedOperationException} will be thrown when the returned
+     * {@link Uri} is used, such as when the caller doesn't hold
+     * {@link android.Manifest.permission#ACCESS_MEDIA_LOCATION}.
+     */
+    public static @NonNull Uri setRequireOriginal(@NonNull Uri uri) {
+        return uri.buildUpon().appendQueryParameter(PARAM_REQUIRE_ORIGINAL, "1").build();
+    }
+
+    /**
      * Create a new pending media item using the given parameters. Pending items
      * are expected to have a short lifetime, and owners should either
      * {@link PendingSession#publish()} or {@link PendingSession#abandon()} a
@@ -572,6 +593,34 @@
         public void setSecondaryDirectory(@Nullable String secondaryDirectory) {
             this.secondaryDirectory = secondaryDirectory;
         }
+
+        /**
+         * Optionally set the Uri from where the file has been downloaded. This is used
+         * for files being added to {@link Downloads} table.
+         *
+         * @see DownloadColumns#DOWNLOAD_URI
+         */
+        public void setDownloadUri(@Nullable Uri downloadUri) {
+            if (downloadUri == null) {
+                this.insertValues.remove(DownloadColumns.DOWNLOAD_URI);
+            } else {
+                this.insertValues.put(DownloadColumns.DOWNLOAD_URI, downloadUri.toString());
+            }
+        }
+
+        /**
+         * Optionally set the Uri indicating HTTP referer of the file. This is used for
+         * files being added to {@link Downloads} table.
+         *
+         * @see DownloadColumns#REFERER_URI
+         */
+        public void setRefererUri(@Nullable Uri refererUri) {
+            if (refererUri == null) {
+                this.insertValues.remove(DownloadColumns.REFERER_URI);
+            } else {
+                this.insertValues.put(DownloadColumns.REFERER_URI, refererUri.toString());
+            }
+        }
     }
 
     /**
@@ -763,7 +812,7 @@
          * Type: BOOLEAN
          *
          * @see MediaStore#createPending(Context, PendingParams)
-         * @see MediaStore#QUERY_ARG_INCLUDE_PENDING
+         * @see MediaStore#PARAM_INCLUDE_PENDING
          */
         public static final String IS_PENDING = "is_pending";
 
@@ -927,6 +976,12 @@
              * Constant for the {@link #MEDIA_TYPE} column indicating that file is a playlist file.
              */
             public static final int MEDIA_TYPE_PLAYLIST = 4;
+
+            /**
+             * Column indicating if the file is part of Downloads collection.
+             * @hide
+             */
+            public static final String IS_DOWNLOAD = "is_download";
         }
     }
 
@@ -940,6 +995,80 @@
         public static final Point MICRO_SIZE = new Point(96, 96);
     }
 
+    /** Column fields for downloaded files used in {@link Downloads} table */
+    public interface DownloadColumns extends MediaColumns {
+        /**
+         * Uri indicating where the file has been downloaded from.
+         * <p>
+         * Type: TEXT
+         */
+        String DOWNLOAD_URI = "download_uri";
+
+        /**
+         * Uri indicating HTTP referer of {@link #DOWNLOAD_URI}.
+         * <p>
+         * Type: TEXT
+         */
+        String REFERER_URI = "referer_uri";
+    }
+
+    /**
+     * Container for downloaded files.
+     *
+     * <p>
+     * Querying for downloads from this table will return files contributed via
+     * {@link PendingSession} and also ones which were downloaded using
+     * {@link android.app.DownloadManager} APIs.
+     */
+    public static final class Downloads implements DownloadColumns {
+        private Downloads() {}
+
+        /**
+         * The content:// style URI for the internal storage.
+         */
+        public static final Uri INTERNAL_CONTENT_URI =
+                getContentUri("internal");
+
+        /**
+         * The content:// style URI for the "primary" external storage
+         * volume.
+         */
+        public static final Uri EXTERNAL_CONTENT_URI =
+                getContentUri("external");
+
+        /**
+         * Get the content:// style URI for the downloads table on the
+         * given volume.
+         *
+         * @param volumeName the name of the volume to get the URI for
+         * @return the URI to the image media table on the given volume
+         */
+        public static Uri getContentUri(String volumeName) {
+            return AUTHORITY_URI.buildUpon().appendPath(volumeName)
+                    .appendPath("downloads").build();
+        }
+
+        /** @hide */
+        public static Uri getContentUriForPath(@NonNull String path) {
+            return getContentUri(getVolumeNameForPath(path));
+        }
+    }
+
+    private static String getVolumeNameForPath(@NonNull String path) {
+        final StorageManager sm = AppGlobals.getInitialApplication()
+                .getSystemService(StorageManager.class);
+        final StorageVolume sv = sm.getStorageVolume(new File(path));
+        if (sv != null) {
+            if (sv.isPrimary()) {
+                return VOLUME_EXTERNAL;
+            } else {
+                return sv.getUuid();
+            }
+        } else {
+            return VOLUME_INTERNAL;
+        }
+    }
+
     /**
      * This class is used internally by Images.Thumbnails and Video.Thumbnails, it's not intended
      * to be accessed elsewhere.
@@ -1038,13 +1167,25 @@
             /**
              * The latitude where the image was captured.
              * <P>Type: DOUBLE</P>
+             *
+             * @deprecated location details are no longer indexed for privacy
+             *             reasons, and this value is now always {@code null}.
+             *             You can still manually obtain location metadata using
+             *             {@link ExifInterface#getLatLong(float[])}.
              */
+            @Deprecated
             public static final String LATITUDE = "latitude";
 
             /**
              * The longitude where the image was captured.
              * <P>Type: DOUBLE</P>
+             *
+             * @deprecated location details are no longer indexed for privacy
+             *             reasons, and this value is now always {@code null}.
+             *             You can still manually obtain location metadata using
+             *             {@link ExifInterface#getLatLong(float[])}.
              */
+            @Deprecated
             public static final String LONGITUDE = "longitude";
 
             /**
@@ -1565,6 +1706,12 @@
             public static final String IS_NOTIFICATION = "is_notification";
 
             /**
+             * Non-zero if the audio file is an audiobook
+             * <P>Type: INTEGER (boolean)</P>
+             */
+            public static final String IS_AUDIOBOOK = "is_audiobook";
+
+            /**
              * The genre of the audio file, if any
              * <P>Type: TEXT</P>
              * Does not exist in the database - only used by the media scanner for inserts.
@@ -1671,18 +1818,7 @@
              *             access this path.
              */
             public static @Nullable Uri getContentUriForPath(@NonNull String path) {
-                final StorageManager sm = AppGlobals.getInitialApplication()
-                        .getSystemService(StorageManager.class);
-                final StorageVolume sv = sm.getStorageVolume(new File(path));
-                if (sv != null) {
-                    if (sv.isPrimary()) {
-                        return EXTERNAL_CONTENT_URI;
-                    } else {
-                        return getContentUri(sv.getUuid());
-                    }
-                } else {
-                    return INTERNAL_CONTENT_URI;
-                }
+                return getContentUri(getVolumeNameForPath(path));
             }
 
             /**
@@ -2287,13 +2423,25 @@
             /**
              * The latitude where the video was captured.
              * <P>Type: DOUBLE</P>
+             *
+             * @deprecated location details are no longer indexed for privacy
+             *             reasons, and this value is now always {@code null}.
+             *             You can still manually obtain location metadata using
+             *             {@link ExifInterface#getLatLong(float[])}.
              */
+            @Deprecated
             public static final String LATITUDE = "latitude";
 
             /**
              * The longitude where the video was captured.
              * <P>Type: DOUBLE</P>
+             *
+             * @deprecated location details are no longer indexed for privacy
+             *             reasons, and this value is now always {@code null}.
+             *             You can still manually obtain location metadata using
+             *             {@link ExifInterface#getLatLong(float[])}.
              */
+            @Deprecated
             public static final String LONGITUDE = "longitude";
 
             /**
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index b266648..d367afc 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -1692,6 +1692,15 @@
     /** @hide - Private call() method to write to 'configuration' table */
     public static final String CALL_METHOD_PUT_CONFIG = "PUT_config";
 
+    /** @hide - Private call() method to delete from the 'system' table */
+    public static final String CALL_METHOD_DELETE_SYSTEM = "DELETE_system";
+
+    /** @hide - Private call() method to delete from the 'secure' table */
+    public static final String CALL_METHOD_DELETE_SECURE = "DELETE_secure";
+
+    /** @hide - Private call() method to delete from the 'global' table */
+    public static final String CALL_METHOD_DELETE_GLOBAL = "DELETE_global";
+
     /** @hide - Private call() method to reset to defaults the 'global' table */
     public static final String CALL_METHOD_RESET_GLOBAL = "RESET_global";
 
@@ -1701,6 +1710,15 @@
     /** @hide - Private call() method to reset to defaults the 'secure' table */
     public static final String CALL_METHOD_RESET_SECURE = "RESET_secure";
 
+    /** @hide - Private call() method to query the 'system' table */
+    public static final String CALL_METHOD_LIST_SYSTEM = "LIST_system";
+
+    /** @hide - Private call() method to query the 'secure' table */
+    public static final String CALL_METHOD_LIST_SECURE = "LIST_secure";
+
+    /** @hide - Private call() method to query the 'global' table */
+    public static final String CALL_METHOD_LIST_GLOBAL = "LIST_global";
+
     /**
      * Activity Extra: Limit available options in launched activity based on the given authority.
      * <p>
@@ -5057,6 +5075,7 @@
          * @hide
          */
         @SystemApi
+        @TestApi
         @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
         public static void resetToDefaults(@NonNull ContentResolver resolver,
                 @Nullable String tag) {
@@ -6260,6 +6279,7 @@
          *
          * @hide
          */
+        @SystemApi
         public static final String ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED =
                 "accessibility_display_magnification_navbar_enabled";
 
@@ -7949,6 +7969,14 @@
                 "managed_profile_contact_remote_search";
 
         /**
+         * Whether parent profile can access remote calendar data in managed profile.
+         *
+         * @hide
+         */
+        public static final String CROSS_PROFILE_CALENDAR_ENABLED =
+                "cross_profile_calendar_enabled";
+
+        /**
          * Whether or not the automatic storage manager is enabled and should run on the device.
          *
          * @hide
@@ -8206,6 +8234,24 @@
         public static final String NOTIFICATION_NEW_INTERRUPTION_MODEL = "new_interruption_model";
 
         /**
+         * How often to check for location access.
+         * @hide
+         */
+        @SystemApi
+        @TestApi
+        public static final String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS =
+                "location_access_check_interval_millis";
+
+        /**
+         * Delay between granting location access and checking it.
+         * @hide
+         */
+        @SystemApi
+        @TestApi
+        public static final String LOCATION_ACCESS_CHECK_DELAY_MILLIS =
+                "location_access_check_delay_millis";
+
+        /**
          * This are the settings to be backed up.
          *
          * NOTE: Settings are backed up and restored in the order they appear
@@ -9321,6 +9367,13 @@
             "location_background_throttle_package_whitelist";
 
         /**
+         * Whether to disable location status callbacks in preparation for deprecation.
+         * @hide
+         */
+        public static final String LOCATION_DISABLE_STATUS_CALLBACKS =
+                "location_disable_status_callbacks";
+
+        /**
          * Maximum staleness allowed for last location when returned to clients with only foreground
          * location permissions.
          * @hide
@@ -10755,6 +10808,41 @@
         public static final String CAPTIVE_PORTAL_USER_AGENT = "captive_portal_user_agent";
 
         /**
+         * The threshold value for the number of consecutive dns timeout events received to be a
+         * signal of data stall. Set the value to 0 or less than 0 to disable. Note that the value
+         * should be larger than 0 if the DNS data stall detection is enabled.
+         *
+         * @hide
+         */
+        public static final String DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD =
+                "data_stall_consecutive_dns_timeout_threshold";
+
+        /**
+         * The minimal time interval in milliseconds for data stall reevaluation.
+         *
+         * @hide
+         */
+        public static final String DATA_STALL_MIN_EVALUATE_INTERVAL =
+                "data_stall_min_evaluate_interval";
+
+        /**
+         * DNS timeouts older than this timeout (in milliseconds) are not considered for detecting
+         * a data stall.
+         *
+         * @hide
+         */
+        public static final String DATA_STALL_VALID_DNS_TIME_THRESHOLD =
+                "data_stall_valid_dns_time_threshold";
+
+        /**
+         * Which data stall detection signal to use. Possible values are a union of the powers of 2
+         * of DATA_STALL_EVALUATION_TYPE_*.
+         *
+         * @hide
+         */
+        public static final String DATA_STALL_EVALUATION_TYPE = "data_stall_evaluation_type";
+
+        /**
          * Whether network service discovery is enabled.
          *
          * @hide
@@ -10975,6 +11063,16 @@
                 = "activity_starts_logging_enabled";
 
         /**
+         * Feature flag to enable or disable the background activity starts.
+         * When disabled, apps aren't allowed to start activities unless they're in the foreground.
+         * Type: int (0 for false, 1 for true)
+         * Default: 1
+         * @hide
+         */
+        public static final String BACKGROUND_ACTIVITY_STARTS_ENABLED =
+                "background_activity_starts_enabled";
+
+        /**
          * @hide
          * @see com.android.server.appbinding.AppBindingConstants
          */
@@ -11540,7 +11638,7 @@
         /**
          * Whether or not show hidden launcher icon apps feature is enabled.
          * Type: int (0 for false, 1 for true)
-         * Default: 0
+         * Default: 1
          * @hide
          */
         public static final String SHOW_HIDDEN_LAUNCHER_ICON_APPS_ENABLED =
@@ -12120,6 +12218,20 @@
                 "smart_selection_metadata_url";
 
         /**
+         * URL for conversation actions model updates
+         * @hide
+         */
+        public static final String CONVERSATION_ACTIONS_UPDATE_CONTENT_URL =
+                "conversation_actions_content_url";
+
+        /**
+         * URL for conversation actions model update metadata
+         * @hide
+         */
+        public static final String CONVERSATION_ACTIONS_UPDATE_METADATA_URL =
+                "conversation_actions_metadata_url";
+
+        /**
          * SELinux enforcement status. If 0, permissive; if 1, enforcing.
          * @hide
          */
@@ -12153,7 +12265,7 @@
         /**
          * Defines global runtime overrides to window policy.
          *
-         * See {@link com.android.server.policy.PolicyControl} for value format.
+         * See {@link com.android.server.wm.PolicyControl} for value format.
          *
          * @hide
          */
@@ -12669,6 +12781,17 @@
         public static final String AUTOFILL_MAX_VISIBLE_DATASETS = "autofill_max_visible_datasets";
 
         /**
+         * Used to emulate Smart Suggestion for Augmented Autofill during development
+         *
+         * <p>Valid values: {@code 0x1} for IME and/or {@code 0x2} for popup window.
+         *
+         * @hide
+         */
+        @TestApi
+        public static final String AUTOFILL_SMART_SUGGESTION_EMULATION_FLAGS =
+                "autofill_smart_suggestion_emulation_flags";
+
+        /**
          * Exemptions to the hidden API blacklist.
          *
          * @hide
@@ -13387,6 +13510,13 @@
          */
         public static final String WARNING_TEMPERATURE = "warning_temperature";
 
+
+        /**
+         * USB Temperature at which the high temperature alarm notification should be shown.
+         * @hide
+         */
+        public static final String USB_ALARM_TEMPERATURE = "usb_alarm_temperature";
+
         /**
          * Whether the diskstats logging task is enabled/disabled.
          * @hide
@@ -13668,6 +13798,15 @@
          */
         public static final String LAST_ACTIVE_USER_ID = "last_active_persistent_user_id";
 
+
+        /**
+         * Whether we've enabled native flags health check on this device. Takes effect on
+         * reboot. The value "1" enables native flags health check; otherwise it's disabled.
+         * @hide
+         */
+        public static final String NATIVE_FLAGS_HEALTH_CHECK_ENABLED =
+                "native_flags_health_check_enabled";
+
     }
 
     /**
diff --git a/core/java/android/rolecontrollerservice/RoleControllerService.java b/core/java/android/rolecontrollerservice/RoleControllerService.java
index 44c45bb..6eda504 100644
--- a/core/java/android/rolecontrollerservice/RoleControllerService.java
+++ b/core/java/android/rolecontrollerservice/RoleControllerService.java
@@ -93,8 +93,8 @@
             @Override
             public void onGrantDefaultRoles(IRoleManagerCallback callback) {
                 Preconditions.checkNotNull(callback, "callback cannot be null");
-                RoleControllerService.this.onGrantDefaultRoles(
-                        new RoleManagerCallbackDelegate(callback));
+                RoleControllerService.this.onGrantDefaultRoles(new RoleManagerCallbackDelegate(
+                        callback));
             }
         };
     }
diff --git a/core/java/android/service/carrier/CarrierIdentifier.java b/core/java/android/service/carrier/CarrierIdentifier.java
index 09bba4b..e930f40 100644
--- a/core/java/android/service/carrier/CarrierIdentifier.java
+++ b/core/java/android/service/carrier/CarrierIdentifier.java
@@ -19,6 +19,7 @@
 import android.annotation.Nullable;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.telephony.TelephonyManager;
 
 import com.android.internal.telephony.uicc.IccUtils;
 
@@ -26,7 +27,10 @@
 
 /**
  * Used to pass info to CarrierConfigService implementations so they can decide what values to
- * return.
+ * return. Instead of passing mcc, mnc, gid1, gid2, spn, imsi to locate carrier information,
+ * CarrierIdentifier also include carrier id {@link TelephonyManager#getSimCarrierId()},
+ * a platform-wide unique identifier for each carrier. CarrierConfigService can directly use
+ * carrier id as the key to look up the carrier info.
  */
 public class CarrierIdentifier implements Parcelable {
 
@@ -49,15 +53,40 @@
     private @Nullable String mImsi;
     private @Nullable String mGid1;
     private @Nullable String mGid2;
+    private int mCarrierId = TelephonyManager.UNKNOWN_CARRIER_ID;
+    private int mPreciseCarrierId = TelephonyManager.UNKNOWN_CARRIER_ID;
 
     public CarrierIdentifier(String mcc, String mnc, @Nullable String spn, @Nullable String imsi,
             @Nullable String gid1, @Nullable String gid2) {
+        this(mcc, mnc, spn, imsi, gid1, gid2, TelephonyManager.UNKNOWN_CARRIER_ID,
+                TelephonyManager.UNKNOWN_CARRIER_ID);
+    }
+
+    /**
+     * @param mcc mobile country code
+     * @param mnc mobile network code
+     * @param spn service provider name
+     * @param imsi International Mobile Subscriber Identity {@link TelephonyManager#getSubscriberId()}
+     * @param gid1 group id level 1 {@link TelephonyManager#getGroupIdLevel1()}
+     * @param gid2 group id level 2
+     * @param carrierid carrier unique identifier {@link TelephonyManager#getSimCarrierId()}, used
+     *                  to uniquely identify the carrier and look up the carrier configurations.
+     * @param preciseCarrierId precise carrier identifier {@link TelephonyManager#getSimPreciseCarrierId()}
+     * @hide
+     *
+     * TODO: expose this to public API
+     */
+    public CarrierIdentifier(String mcc, String mnc, @Nullable String spn,
+                             @Nullable String imsi, @Nullable String gid1, @Nullable String gid2,
+                             int carrierid, int preciseCarrierId) {
         mMcc = mcc;
         mMnc = mnc;
         mSpn = spn;
         mImsi = imsi;
         mGid1 = gid1;
         mGid2 = gid2;
+        mCarrierId = carrierid;
+        mPreciseCarrierId = preciseCarrierId;
     }
 
     /**
@@ -125,6 +154,22 @@
         return mGid2;
     }
 
+    /**
+     * Get the carrier id {@link TelephonyManager#getSimCarrierId() }
+     * @hide
+     */
+    public int getCarrierId() {
+        return mCarrierId;
+    }
+
+    /**
+     * Get the precise carrier id {@link TelephonyManager#getSimPreciseCarrierId()}
+     * @hide
+     */
+    public int getPreciseCarrierId() {
+        return mPreciseCarrierId;
+    }
+
     @Override
     public boolean equals(Object obj) {
         if (this == obj) {
@@ -140,19 +185,14 @@
                 && Objects.equals(mSpn, that.mSpn)
                 && Objects.equals(mImsi, that.mImsi)
                 && Objects.equals(mGid1, that.mGid1)
-                && Objects.equals(mGid2, that.mGid2);
+                && Objects.equals(mGid2, that.mGid2)
+                && Objects.equals(mCarrierId, that.mCarrierId)
+                && Objects.equals(mPreciseCarrierId, that.mPreciseCarrierId);
     }
 
     @Override
-    public int hashCode() {
-        int result = 1;
-        result = 31 * result + Objects.hashCode(mMcc);
-        result = 31 * result + Objects.hashCode(mMnc);
-        result = 31 * result + Objects.hashCode(mSpn);
-        result = 31 * result + Objects.hashCode(mImsi);
-        result = 31 * result + Objects.hashCode(mGid1);
-        result = 31 * result + Objects.hashCode(mGid2);
-        return result;
+    public int hashCode(){
+        return Objects.hash(mMcc, mMnc, mSpn, mImsi, mGid1, mGid2, mCarrierId, mPreciseCarrierId);
     }
 
     @Override
@@ -168,18 +208,22 @@
         out.writeString(mImsi);
         out.writeString(mGid1);
         out.writeString(mGid2);
+        out.writeInt(mCarrierId);
+        out.writeInt(mPreciseCarrierId);
     }
 
     @Override
     public String toString() {
       return "CarrierIdentifier{"
-          + "mcc=" + mMcc
-          + ",mnc=" + mMnc
-          + ",spn=" + mSpn
-          + ",imsi=" + mImsi
-          + ",gid1=" + mGid1
-          + ",gid2=" + mGid2
-          + "}";
+              + "mcc=" + mMcc
+              + ",mnc=" + mMnc
+              + ",spn=" + mSpn
+              + ",imsi=" + mImsi
+              + ",gid1=" + mGid1
+              + ",gid2=" + mGid2
+              + ",carrierid=" + mCarrierId
+              + ",mPreciseCarrierId=" + mPreciseCarrierId
+              + "}";
     }
 
     /** @hide */
@@ -190,6 +234,8 @@
         mImsi = in.readString();
         mGid1 = in.readString();
         mGid2 = in.readString();
+        mCarrierId = in.readInt();
+        mPreciseCarrierId = in.readInt();
     }
 
     /** @hide */
diff --git a/core/java/android/service/carrier/CarrierService.java b/core/java/android/service/carrier/CarrierService.java
index b94ccf9..c351d89 100644
--- a/core/java/android/service/carrier/CarrierService.java
+++ b/core/java/android/service/carrier/CarrierService.java
@@ -93,7 +93,11 @@
      * </p>
      *
      * @param id contains details about the current carrier that can be used do decide what
-     *            configuration values to return.
+     *           configuration values to return. Instead of using details like MCCMNC to decide
+     *           current carrier, it also contains subscription carrier id
+     *           {@link android.telephony.TelephonyManager#getSimCarrierId()}, a platform-wide
+     *           unique identifier for each carrier, CarrierConfigService can directly use carrier
+     *           id as the key to look up the carrier info.
      * @return a {@link PersistableBundle} object containing the configuration or null if default
      *         values should be used.
      */
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/core/java/android/service/intelligence/ContentCaptureEventsRequest.aidl
similarity index 69%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
copy to core/java/android/service/intelligence/ContentCaptureEventsRequest.aidl
index 5ca9d15..23d607d 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/core/java/android/service/intelligence/ContentCaptureEventsRequest.aidl
@@ -1,5 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
 /**
  * Copyright (c) 2018, The Android Open Source Project
  *
@@ -15,8 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
-</resources>
\ No newline at end of file
+
+package android.service.intelligence;
+
+parcelable ContentCaptureEventsRequest;
diff --git a/core/java/android/service/intelligence/ContentCaptureEventsRequest.java b/core/java/android/service/intelligence/ContentCaptureEventsRequest.java
new file mode 100644
index 0000000..bc5b92b
--- /dev/null
+++ b/core/java/android/service/intelligence/ContentCaptureEventsRequest.java
@@ -0,0 +1,73 @@
+/*
+ * 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.service.intelligence;
+
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.view.intelligence.ContentCaptureEvent;
+
+import java.util.List;
+
+/**
+ * Batch of content capture events.
+ *
+ * @hide
+ */
+@SystemApi
+public final class ContentCaptureEventsRequest implements Parcelable {
+
+    private final List<ContentCaptureEvent> mEvents;
+
+    /** @hide */
+    public ContentCaptureEventsRequest(@NonNull List<ContentCaptureEvent> events) {
+        mEvents = events;
+    }
+
+    /**
+     * Gets the events.
+     */
+    @NonNull
+    public List<ContentCaptureEvent> getEvents() {
+        return mEvents;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int flags) {
+        parcel.writeTypedList(mEvents, flags);
+    }
+
+    public static final Parcelable.Creator<ContentCaptureEventsRequest> CREATOR =
+            new Parcelable.Creator<ContentCaptureEventsRequest>() {
+
+        @Override
+        public ContentCaptureEventsRequest createFromParcel(Parcel parcel) {
+            return new ContentCaptureEventsRequest(parcel
+                    .createTypedArrayList(ContentCaptureEvent.CREATOR));
+        }
+
+        @Override
+        public ContentCaptureEventsRequest[] newArray(int size) {
+            return new ContentCaptureEventsRequest[size];
+        }
+    };
+}
diff --git a/core/java/android/service/intelligence/FillCallback.java b/core/java/android/service/intelligence/FillCallback.java
new file mode 100644
index 0000000..af2da79
--- /dev/null
+++ b/core/java/android/service/intelligence/FillCallback.java
@@ -0,0 +1,45 @@
+/*
+ * 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.service.intelligence;
+
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+
+/**
+ * Callback used to indicate at {@link FillRequest} has been fulfilled.
+ *
+ * @hide
+ */
+@SystemApi
+public final class FillCallback {
+
+    FillCallback() {}
+
+    /**
+     * Sets the response associated with the request.
+     *
+     * @param response response associated with the request, or {@code null} if the service
+     * could not provide autofill for the request.
+     */
+    public void onSuccess(@Nullable FillResponse response) {
+        final FillWindow fillWindow = response.getFillWindow();
+        if (fillWindow != null) {
+            fillWindow.show();
+        }
+        // TODO(b/111330312): properly implement on server-side by updating the Session state
+        // accordingly (and adding CTS tests)
+    }
+}
diff --git a/core/java/android/service/intelligence/FillController.java b/core/java/android/service/intelligence/FillController.java
new file mode 100644
index 0000000..4a9c85d
--- /dev/null
+++ b/core/java/android/service/intelligence/FillController.java
@@ -0,0 +1,71 @@
+/*
+ * 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.service.intelligence;
+
+import static android.service.intelligence.SmartSuggestionsService.DEBUG;
+
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
+import android.os.RemoteException;
+import android.service.intelligence.SmartSuggestionsService.AutofillProxy;
+import android.util.Log;
+import android.util.Pair;
+import android.view.autofill.AutofillId;
+import android.view.autofill.AutofillValue;
+
+import com.android.internal.util.Preconditions;
+
+import java.util.List;
+
+/**
+ * Object used to interact with the autofill system.
+ *
+ * @hide
+ */
+@SystemApi
+public final class FillController {
+    private static final String TAG = "FillController";
+
+    private final AutofillProxy mProxy;
+
+    FillController(@NonNull AutofillProxy proxy) {
+        mProxy = proxy;
+    }
+
+    /**
+     * Fills the activity with the provided values.
+     *
+     * <p>As a side effect, the {@link FillWindow} associated with the {@link FillResponse} will be
+     * automatically {@link FillWindow#destroy() destroyed}.
+     */
+    public void autofill(@NonNull List<Pair<AutofillId, AutofillValue>> values) {
+        Preconditions.checkNotNull(values);
+
+        if (DEBUG) {
+            Log.d(TAG, "autofill() with " + values.size() + " values");
+        }
+
+        try {
+            mProxy.autofill(values);
+            final FillWindow fillWindow = mProxy.getFillWindow();
+            if (fillWindow != null) {
+                fillWindow.destroy();
+            }
+        } catch (RemoteException e) {
+            e.rethrowAsRuntimeException();
+        }
+    }
+}
diff --git a/core/java/android/service/intelligence/FillRequest.java b/core/java/android/service/intelligence/FillRequest.java
new file mode 100644
index 0000000..f68db9d
--- /dev/null
+++ b/core/java/android/service/intelligence/FillRequest.java
@@ -0,0 +1,68 @@
+/*
+ * 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.service.intelligence;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.service.intelligence.SmartSuggestionsService.AutofillProxy;
+import android.view.autofill.AutofillId;
+
+/**
+ * Represents a request to augment-fill an activity.
+ * @hide
+ */
+@SystemApi
+public final class FillRequest {
+
+    final AutofillProxy mProxy;
+
+    /** @hide */
+    FillRequest(@NonNull AutofillProxy proxy) {
+        mProxy = proxy;
+    }
+
+    /**
+     * Gets the session associated with this request.
+     */
+    @NonNull
+    public InteractionSessionId getSessionId() {
+        return mProxy.sessionId;
+    }
+
+    /**
+     * Gets the id of the field that triggered the request.
+     */
+    @NonNull
+    public AutofillId getFocusedId() {
+        return mProxy.focusedId;
+    }
+
+    /**
+     * Gets the Smart Suggestions object used to embed the autofill UI.
+     *
+     * @return object used to embed the autofill UI, or {@code null} if not supported.
+     */
+    @Nullable
+    public PresentationParams getPresentationParams() {
+        return mProxy.getSmartSuggestionParams();
+    }
+
+    @Override
+    public String toString() {
+        return "FillRequest[id=" + mProxy.focusedId + "]";
+    }
+}
diff --git a/core/java/android/service/intelligence/FillResponse.java b/core/java/android/service/intelligence/FillResponse.java
new file mode 100644
index 0000000..860c027
--- /dev/null
+++ b/core/java/android/service/intelligence/FillResponse.java
@@ -0,0 +1,129 @@
+/*
+ * 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.service.intelligence;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.view.autofill.AutofillId;
+
+import java.util.List;
+
+/**
+ * Response to a {@link FillRequest}.
+ *
+ * @hide
+ */
+@SystemApi
+public final class FillResponse implements Parcelable {
+
+    private final FillWindow mFillWindow;
+
+    private FillResponse(@NonNull Builder builder) {
+        mFillWindow = builder.mFillWindow;
+    }
+
+    /** @hide */
+    @Nullable
+    FillWindow getFillWindow() {
+        return mFillWindow;
+    }
+
+    /**
+     * Builder for {@link FillResponse} objects.
+     *
+     * @hide
+     */
+    @SystemApi
+    public static class Builder {
+
+        private FillWindow mFillWindow;
+
+        /**
+         * Sets the {@link FillWindow} used to display the Autofill UI.
+         *
+         * <p>Must be called when the service is handling the request so the Android System can
+         * properly synchronize the UI.
+         *
+         * @return this builder
+         */
+        public Builder setFillWindow(@NonNull FillWindow fillWindow) {
+            // TODO(b/111330312): implement / check not null / unit test
+            // TODO(b/111330312): throw exception if FillWindow not updated yet
+            mFillWindow = fillWindow;
+            return this;
+        }
+
+        /**
+         * Tells the Android System that the given {@code ids} should not trigger further
+         * {@link FillRequest requests} when focused.
+         *
+         * @param ids ids of the fields that should be ignored
+         *
+         * @return this builder
+         */
+        public Builder setIgnoredIds(@NonNull List<AutofillId> ids) {
+            // TODO(b/111330312): implement / check not null / unit test
+            return this;
+        }
+
+        /**
+         * Builds a new {@link FillResponse} instance.
+         *
+         * @throws IllegalStateException if any of the following conditions occur:
+         * <ol>
+         *   <li>{@link #build()} was already called.
+         *   <li>No call was made to {@link #setFillWindow(FillWindow)} or
+         *   {@ling #setIgnoredIds(List<AutofillId>)}.
+         * </ol>
+         *
+         * @return A built response.
+         */
+        public FillResponse build() {
+            // TODO(b/111330312): check conditions / add unit test
+            return new FillResponse(this);
+        }
+
+        // TODO(b/111330312): add methods to disable app / activity, either here or on manager
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int flags) {
+        // TODO(b/111330312): implement
+    }
+
+    public static final Parcelable.Creator<FillResponse> CREATOR =
+            new Parcelable.Creator<FillResponse>() {
+
+                @Override
+                public FillResponse createFromParcel(Parcel parcel) {
+                    // TODO(b/111330312): implement
+                    return null;
+                }
+
+                @Override
+                public FillResponse[] newArray(int size) {
+                    return new FillResponse[size];
+                }
+    };
+}
diff --git a/core/java/android/service/intelligence/FillWindow.java b/core/java/android/service/intelligence/FillWindow.java
new file mode 100644
index 0000000..309f6a1
--- /dev/null
+++ b/core/java/android/service/intelligence/FillWindow.java
@@ -0,0 +1,215 @@
+/*
+ * 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.service.intelligence;
+
+import static android.service.intelligence.SmartSuggestionsService.DEBUG;
+
+import android.annotation.LongDef;
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
+import android.app.Dialog;
+import android.graphics.Rect;
+import android.service.intelligence.PresentationParams.Area;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.Preconditions;
+
+import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Handle to a window used to display the augmented autofill UI.
+ *
+ * <p>The steps to create an augmented autofill UI are:
+ *
+ * <ol>
+ *   <li>Gets the {@link PresentationParams} from the {@link FillRequest}.
+ *   <li>Gets the {@link Area} to display the UI (for example, through
+ *   {@link PresentationParams#getSuggestionArea()}.
+ *   <li>Creates a {@link View} that must fit in the {@link Area#getBounds() area boundaries}.
+ *   <li>Set the proper listeners to the view (for example, a click listener that
+ *   triggers {@link FillController#autofill(java.util.List)}
+ *   <li>Call {@link #update(Area, View, long)} with these arguments.
+ *   <li>Create a {@link FillResponse} with the {@link FillWindow}.
+ *   <li>Pass such {@link FillResponse} to {@link FillCallback#onSuccess(FillResponse)}.
+ * </ol>
+ *
+ * @hide
+ */
+@SystemApi
+public final class FillWindow {
+    private static final String TAG = "FillWindow";
+
+    /** Indicates the data being shown is a physical address */
+    public static final long FLAG_METADATA_ADDRESS = 0x1;
+
+    // TODO(b/111330312): add moar flags
+
+    /** @hide */
+    @LongDef(prefix = { "FLAG" }, value = {
+            FLAG_METADATA_ADDRESS,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    @interface Flags{}
+
+    private final Object mLock = new Object();
+
+    @GuardedBy("mLock")
+    private Dialog mDialog;
+
+    @GuardedBy("mLock")
+    private boolean mDestroyed;
+
+    /**
+     * Updates the content of the window.
+     *
+     * @param rootView new root view
+     * @param area coordinates to render the view.
+     * @param flags optional flags such as metadata of what will be rendered in the window. The
+     * Smart Suggestion host might decide whether or not to render the UI based on them.
+     *
+     * @return boolean whether the window was updated or not.
+     *
+     * @throws IllegalArgumentException if the area is not compatible with this window
+     */
+    public boolean update(@NonNull Area area, @NonNull View rootView, @Flags long flags) {
+        if (DEBUG) {
+            Log.d(TAG, "Updating " + area + " + with " + rootView);
+        }
+        // TODO(b/111330312): add test case for null
+        Preconditions.checkNotNull(area);
+        Preconditions.checkNotNull(rootView);
+        // TODO(b/111330312): must check the area is a valid object returned by
+        // SmartSuggestionParams, throw IAE if not
+
+        // TODO(b/111330312): must some how pass metadata to the SmartSuggestiongs provider
+
+
+        // TODO(b/111330312): use a SurfaceControl approach; for now, we're manually creating
+        // the window underneath the existing view.
+
+        final PresentationParams smartSuggestion = area.proxy.getSmartSuggestionParams();
+        if (smartSuggestion == null) {
+            Log.w(TAG, "No SmartSuggestionParams");
+            return false;
+        }
+
+        final Rect rect = area.getBounds();
+        if (rect == null) {
+            Log.wtf(TAG, "No Rect on SmartSuggestionParams");
+            return false;
+        }
+
+        synchronized (mLock) {
+            checkNotDestroyedLocked();
+
+            // TODO(b/111330312): once we have the SurfaceControl approach, we should update the
+            // window instead of destroying. In fact, it might be better to allocate a full window
+            // initially, which is transparent (and let touches get through) everywhere but in the
+            // rect boundaries.
+            destroy();
+
+            // TODO(b/111330312): make sure all touch events are handled, window is always closed,
+            // etc.
+
+            mDialog = new Dialog(rootView.getContext());
+            final Window window = mDialog.getWindow();
+            window.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
+
+            final int height = rect.bottom - rect.top;
+            final int width = rect.right - rect.left;
+            final WindowManager.LayoutParams windowParams = window.getAttributes();
+            windowParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
+            windowParams.y = rect.top - height;
+            windowParams.height = height;
+            windowParams.x = rect.left;
+            windowParams.width = width;
+
+            window.setAttributes(windowParams);
+            window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+
+            mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+            final ViewGroup.LayoutParams diagParams = new ViewGroup.LayoutParams(width, height);
+            mDialog.setContentView(rootView, diagParams);
+
+            if (DEBUG) {
+                Log.d(TAG, "Created FillWindow: params= " + smartSuggestion + " view=" + rootView);
+            }
+
+            area.proxy.setFillWindow(this);
+            return true;
+        }
+    }
+
+    /** @hide */
+    void show() {
+        // TODO(b/111330312): check if updated first / throw exception
+        if (DEBUG) Log.d(TAG, "show()");
+
+        synchronized (mLock) {
+            checkNotDestroyedLocked();
+            if (mDialog == null) {
+                throw new IllegalStateException("update() not called yet, or already destroyed()");
+            }
+
+            mDialog.show();
+        }
+    }
+
+    /**
+     * Destroys the window.
+     *
+     * <p>Once destroyed, this window cannot be used anymore
+     */
+    public void destroy() {
+        if (DEBUG) Log.d(TAG, "destroy(): mDestroyed = " + mDestroyed);
+
+        synchronized (this) {
+            if (mDestroyed) return;
+
+            if (mDialog != null) {
+                mDialog.dismiss();
+                mDialog = null;
+            }
+        }
+    }
+
+    private void checkNotDestroyedLocked() {
+        if (mDestroyed) {
+            throw new IllegalStateException("already destroyed()");
+        }
+    }
+
+    /** @hide */
+    public void dump(@NonNull String prefix, @NonNull PrintWriter pw) {
+        synchronized (this) {
+            pw.print(prefix); pw.print("destroyed: "); pw.println(mDestroyed);
+            if (mDialog != null) {
+                pw.print(prefix); pw.print("dialog: ");
+                pw.println(mDialog.isShowing() ? "shown" : "hidden");
+                pw.print(prefix); pw.print("window: ");
+                pw.println(mDialog.getWindow().getAttributes());
+            }
+        }
+    }
+}
diff --git a/core/java/android/service/intelligence/IIntelligenceService.aidl b/core/java/android/service/intelligence/IIntelligenceService.aidl
index bacad8b..d6b3107 100644
--- a/core/java/android/service/intelligence/IIntelligenceService.aidl
+++ b/core/java/android/service/intelligence/IIntelligenceService.aidl
@@ -16,24 +16,36 @@
 
 package android.service.intelligence;
 
+import android.os.IBinder;
+import android.service.intelligence.ContentCaptureEventsRequest;
 import android.service.intelligence.InteractionSessionId;
 import android.service.intelligence.InteractionContext;
+import android.service.intelligence.SnapshotData;
 
+import android.view.autofill.AutofillId;
 import android.view.intelligence.ContentCaptureEvent;
 
 import java.util.List;
 
-
 /**
  * Interface from the system to an intelligence service.
  *
  * @hide
  */
+ // TODO(b/111276913): rename / update javadoc (once the final name is defined)
 oneway interface IIntelligenceService {
 
     // Called when session is created (context not null) or destroyed (context null)
     void onSessionLifecycle(in InteractionContext context, in InteractionSessionId sessionId);
 
-    void onContentCaptureEvents(in InteractionSessionId sessionId,
-                                in List<ContentCaptureEvent> events);
+    void onContentCaptureEventsRequest(in InteractionSessionId sessionId,
+                                in ContentCaptureEventsRequest request);
+
+    void onActivitySnapshot(in InteractionSessionId sessionId,
+                            in SnapshotData snapshotData);
+
+    void onAutofillRequest(in InteractionSessionId sessionId, in IBinder autofillManagerClient,
+                           int autofilSessionId, in AutofillId focusedId);
+
+    void onDestroyAutofillWindowsRequest(in InteractionSessionId sessionId);
 }
diff --git a/core/java/android/service/intelligence/IntelligenceService.java b/core/java/android/service/intelligence/IntelligenceService.java
deleted file mode 100644
index a2b60f0..0000000
--- a/core/java/android/service/intelligence/IntelligenceService.java
+++ /dev/null
@@ -1,126 +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.service.intelligence;
-
-import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
-
-import android.annotation.CallSuper;
-import android.annotation.NonNull;
-import android.annotation.SystemApi;
-import android.app.Service;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.RemoteException;
-import android.util.Log;
-import android.view.intelligence.ContentCaptureEvent;
-
-import java.util.List;
-
-/**
- * A service used to capture the content of the screen.
- *
- * <p>The data collected by this service can be analyzed and combined with other sources to provide
- * contextual data in other areas of the system such as Autofill.
- *
- * @hide
- */
-@SystemApi
-public abstract class IntelligenceService extends Service {
-
-    private static final String TAG = "IntelligenceService";
-
-    /**
-     * The {@link Intent} that must be declared as handled by the service.
-     * To be supported, the service must also require the
-     * {@link android.Manifest.permission#BIND_INTELLIGENCE_SERVICE} permission so
-     * that other applications can not abuse it.
-     */
-    public static final String SERVICE_INTERFACE =
-            "android.service.intelligence.IntelligenceService";
-
-    private Handler mHandler;
-
-    private final IIntelligenceService mInterface = new IIntelligenceService.Stub() {
-
-        @Override
-        public void onSessionLifecycle(InteractionContext context, InteractionSessionId sessionId)
-                throws RemoteException {
-            if (context != null) {
-                mHandler.sendMessage(
-                        obtainMessage(IntelligenceService::onCreateInteractionSession,
-                                IntelligenceService.this, context, sessionId));
-            } else {
-                mHandler.sendMessage(
-                        obtainMessage(IntelligenceService::onDestroyInteractionSession,
-                                IntelligenceService.this, sessionId));
-            }
-        }
-        @Override
-        public void onContentCaptureEvents(InteractionSessionId sessionId,
-                List<ContentCaptureEvent> events) {
-            mHandler.sendMessage(
-                    obtainMessage(IntelligenceService::onContentCaptureEvent,
-                            IntelligenceService.this, sessionId, events));
-
-        }
-    };
-
-    @CallSuper
-    @Override
-    public void onCreate() {
-        super.onCreate();
-        mHandler = new Handler(Looper.getMainLooper(), null, true);
-    }
-
-    /** @hide */
-    @Override
-    public final IBinder onBind(Intent intent) {
-        if (SERVICE_INTERFACE.equals(intent.getAction())) {
-            return mInterface.asBinder();
-        }
-        Log.w(TAG, "Tried to bind to wrong intent: " + intent);
-        return null;
-    }
-
-    /**
-     * Creates a new interaction session.
-     *
-     * @param context interaction context
-     * @param sessionId the session's Id
-     */
-    public void onCreateInteractionSession(@NonNull InteractionContext context,
-            @NonNull InteractionSessionId sessionId) {}
-
-    /**
-     * Notifies the service of {@link ContentCaptureEvent events} associated with a content capture
-     * session.
-     *
-     * @param sessionId the session's Id
-     * @param events the events
-     */
-     // TODO(b/111276913): rename to onContentCaptureEvents
-    public abstract void onContentCaptureEvent(@NonNull InteractionSessionId sessionId,
-            @NonNull List<ContentCaptureEvent> events);
-
-    /**
-     * Destroys the interaction session.
-     *
-     * @param sessionId the id of the session to destroy
-     */
-    public void onDestroyInteractionSession(@NonNull InteractionSessionId sessionId) {}
-}
diff --git a/core/java/android/service/intelligence/InteractionContext.java b/core/java/android/service/intelligence/InteractionContext.java
index 0cc377b..7f4283d 100644
--- a/core/java/android/service/intelligence/InteractionContext.java
+++ b/core/java/android/service/intelligence/InteractionContext.java
@@ -37,7 +37,7 @@
     /**
      * Flag used to indicate that the app explicitly disabled content capture for the activity
      * (using
-     * {@link android.view.intelligence.IntelligenceManager#setContentCaptureEnabled()}),
+     * {@link android.view.intelligence.ContentCaptureManager#setContentCaptureEnabled()}),
      * in which case the service will just receive activity-level events.
      */
     public static final int FLAG_DISABLED_BY_APP = 0x1;
diff --git a/core/java/android/service/intelligence/PresentationParams.java b/core/java/android/service/intelligence/PresentationParams.java
new file mode 100644
index 0000000..9530309
--- /dev/null
+++ b/core/java/android/service/intelligence/PresentationParams.java
@@ -0,0 +1,225 @@
+/*
+ * 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.service.intelligence;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.graphics.Rect;
+import android.service.intelligence.SmartSuggestionsService.AutofillProxy;
+import android.util.DebugUtils;
+import android.view.View;
+
+import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Abstraction of a "Smart Suggestion" component responsible to embed the autofill UI provided by
+ * the intelligence service.
+ *
+ * <p>The Smart Suggestion can embed the autofill UI in 3 distinct places:
+ *
+ * <ul>
+ *   <li>A small area associated with suggestions (like a small strip in the top of the IME),
+ *   returned by {@link #getSuggestionArea()}
+ *   <li>The full area (like the full IME window), returned by {@link #getFullArea()}
+ *   <li>A subset of the aforementioned areas, returned by {@link Area#getSubArea(Rect)}
+ * </ul>
+ *
+ * <p>The Smart Suggestion is represented by a {@link Area} object that contains the
+ * dimensions the smart suggestion window, so the service can use it to calculate the size of the
+ * view that will be passed to {@link FillWindow#update(Area, View, long)}.
+ *
+ * @hide
+ */
+@SystemApi
+public abstract class PresentationParams {
+
+    /**
+     * Flag indicating the Smart Suggestion is hosted in the top of its container.
+     */
+    public static final int FLAG_HINT_GRAVITY_TOP = 0x1;
+
+    /**
+     * Flag indicating the Smart Suggestion is hosted in the bottom of its container.
+     */
+    public static final int FLAG_HINT_GRAVITY_BOTTOM = 0x2;
+
+    /**
+     * Flag indicating the Smart Suggestion is hosted in the left of its container.
+     */
+    public static final int FLAG_HINT_GRAVITY_LEFT = 0x4;
+
+    /**
+     * Flag indicating the Smart Suggestion is hosted in the right of its container.
+     */
+    public static final int FLAG_HINT_GRAVITY_RIGHT = 0x8;
+
+    /**
+     * Flag indicating the Smart Suggestion is hosted by the IME.
+     */
+    public static final int FLAG_HOST_IME = 0x10;
+
+    /**
+     * Flag indicating the Smart Suggestion is hosted by the Android System as a floating popup
+     * window.
+     */
+    public static final int FLAG_HOST_SYSTEM = 0x20;
+
+    /** @hide */
+    @IntDef(flag = true, prefix = { "FLAG_" }, value = {
+            FLAG_HINT_GRAVITY_TOP,
+            FLAG_HINT_GRAVITY_BOTTOM,
+            FLAG_HINT_GRAVITY_LEFT,
+            FLAG_HINT_GRAVITY_RIGHT,
+            FLAG_HOST_IME,
+            FLAG_HOST_SYSTEM
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    @interface Flags {}
+
+
+    // /** @hide */
+    PresentationParams() {}
+
+    /**
+     * Gets the area of the suggestion strip for the given {@code metadata}
+     *
+     * @return strip dimensions, or {@code null} if the Smart Suggestion provider does not support
+     * suggestions strip.
+     */
+    @Nullable
+    public Area getSuggestionArea() {
+        return null;
+    }
+
+    /**
+     * Gets the full area for the of the Smart Suggestion provider.
+     *
+     * @return full dimensions, or {@code null} if the Smart Suggestion provider does not support
+     * embeding the UI on its full area.
+     */
+    @Nullable
+    public Area getFullArea() {
+        return null;
+    }
+
+    /**
+     * Gets flags associated with the Smart Suggestion.
+     *
+     * @return any combination of {@link #FLAG_HINT_GRAVITY_TOP},
+     * {@link #FLAG_HINT_GRAVITY_BOTTOM}, {@link #FLAG_HINT_GRAVITY_LEFT},
+     * {@link #FLAG_HINT_GRAVITY_RIGHT}, {@link #FLAG_HOST_IME}, or
+     * {@link #FLAG_HOST_SYSTEM},
+     */
+    public @Flags int getFlags() {
+        return 0;
+    }
+
+    /** @hide */
+    void dump(@NonNull String prefix, @NonNull PrintWriter pw) {
+        final int flags = getFlags();
+        if (flags > 0) {
+            pw.print(prefix); pw.print("flags: "); pw.println(flagsToString(flags));
+        }
+    }
+
+    private static String flagsToString(int flags) {
+        return DebugUtils.flagsToString(PresentationParams.class, "FLAG_", flags);
+    }
+
+    /**
+     * Area associated with a {@link PresentationParams Smart Suggestions} provider.
+     *
+     * @hide
+     * */
+    @SystemApi
+    public abstract static class Area {
+
+        /** @hide */
+        public final AutofillProxy proxy;
+
+        private final Rect mBounds;
+
+        private Area(@NonNull AutofillProxy proxy, @NonNull Rect bounds) {
+            this.proxy = proxy;
+            mBounds = bounds;
+        }
+
+        /**
+         * Gets the area boundaries.
+         */
+        @NonNull
+        public Rect getBounds() {
+            return mBounds;
+        }
+
+        /**
+         * Gets a subarea limited by given boundaries.
+         *
+         * @param bounds boundaries relative to this Area.
+         *
+         * @throws {@link IllegalArgumentException} if the {@code bounds} is not fully-contained
+         * inside this full Area.
+         *
+         * @return new subarea, or {@code null} if the Smart Suggestion host does not support such
+         * subaarea.
+         */
+        @Nullable
+        public Area getSubArea(@NonNull Rect bounds) {
+            // TODO(b/111330312): implement / check boundaries / throw IAE / add unit test
+            return null;
+        }
+
+        @Override
+        public String toString() {
+            return mBounds.toString();
+        }
+    }
+
+    /**
+     * System-provided poup window anchored to a view.
+     *
+     * <p>Used just for debugging purposes.
+     *
+     * @hide
+     */
+    public static final class SystemPopupPresentationParams extends PresentationParams {
+        private final Area mSuggestionArea;
+
+        public SystemPopupPresentationParams(@NonNull AutofillProxy proxy, @NonNull Rect rect) {
+            mSuggestionArea = new Area(proxy, rect) {};
+        }
+
+        @Override
+        public Area getSuggestionArea() {
+            return mSuggestionArea;
+        }
+
+        @Override
+        public int getFlags() {
+            return FLAG_HOST_SYSTEM | FLAG_HINT_GRAVITY_BOTTOM;
+        }
+
+        @Override
+        void dump(@NonNull String prefix, @NonNull PrintWriter pw) {
+            super.dump(prefix, pw);
+            pw.print(prefix); pw.print("area: "); pw.println(mSuggestionArea);
+        }
+    }
+}
diff --git a/core/java/android/service/intelligence/SmartSuggestionsService.java b/core/java/android/service/intelligence/SmartSuggestionsService.java
new file mode 100644
index 0000000..0e29e70
--- /dev/null
+++ b/core/java/android/service/intelligence/SmartSuggestionsService.java
@@ -0,0 +1,427 @@
+/*
+ * 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.service.intelligence;
+
+import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
+
+import android.annotation.CallSuper;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.app.Service;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.graphics.Rect;
+import android.os.CancellationSignal;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.RemoteException;
+import android.service.intelligence.PresentationParams.SystemPopupPresentationParams;
+import android.util.ArrayMap;
+import android.util.Log;
+import android.util.Pair;
+import android.view.autofill.AutofillId;
+import android.view.autofill.AutofillValue;
+import android.view.autofill.IAugmentedAutofillManagerClient;
+import android.view.intelligence.ContentCaptureEvent;
+
+import com.android.internal.annotations.GuardedBy;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * A service used to capture the content of the screen to provide contextual data in other areas of
+ * the system such as Autofill.
+ *
+ * @hide
+ */
+@SystemApi
+public abstract class SmartSuggestionsService extends Service {
+
+    private static final String TAG = "SmartSuggestionsService";
+
+    // TODO(b/111330312): STOPSHIP use dynamic value, or change to false
+    static final boolean DEBUG = true;
+    static final boolean VERBOSE = false;
+
+    /**
+     * The {@link Intent} that must be declared as handled by the service.
+     * To be supported, the service must also require the
+     * {@link android.Manifest.permission#BIND_SMART_SUGGESTIONS_SERVICE} permission so
+     * that other applications can not abuse it.
+     */
+    public static final String SERVICE_INTERFACE =
+            "android.service.intelligence.SmartSuggestionsService";
+
+    private Handler mHandler;
+
+    private ArrayMap<InteractionSessionId, AutofillProxy> mAutofillProxies;
+
+    private final IIntelligenceService mInterface = new IIntelligenceService.Stub() {
+
+        @Override
+        public void onSessionLifecycle(InteractionContext context, InteractionSessionId sessionId)
+                throws RemoteException {
+            if (context != null) {
+                mHandler.sendMessage(
+                        obtainMessage(SmartSuggestionsService::onCreateInteractionSession,
+                                SmartSuggestionsService.this, context, sessionId));
+            } else {
+                mHandler.sendMessage(
+                        obtainMessage(SmartSuggestionsService::onDestroyInteractionSession,
+                                SmartSuggestionsService.this, sessionId));
+            }
+        }
+
+        @Override
+        public void onContentCaptureEventsRequest(InteractionSessionId sessionId,
+                ContentCaptureEventsRequest request) {
+            mHandler.sendMessage(
+                    obtainMessage(SmartSuggestionsService::onContentCaptureEventsRequest,
+                            SmartSuggestionsService.this, sessionId, request));
+
+        }
+
+        @Override
+        public void onActivitySnapshot(InteractionSessionId sessionId,
+                SnapshotData snapshotData) {
+            mHandler.sendMessage(
+                    obtainMessage(SmartSuggestionsService::onActivitySnapshot,
+                            SmartSuggestionsService.this, sessionId, snapshotData));
+        }
+
+        @Override
+        public void onAutofillRequest(InteractionSessionId sessionId, IBinder client,
+                int autofilSessionId, AutofillId focusedId) {
+            mHandler.sendMessage(obtainMessage(SmartSuggestionsService::handleOnAutofillRequest,
+                    SmartSuggestionsService.this, sessionId, client, autofilSessionId, focusedId));
+        }
+
+        @Override
+        public void onDestroyAutofillWindowsRequest(InteractionSessionId sessionId) {
+            mHandler.sendMessage(
+                    obtainMessage(SmartSuggestionsService::handleOnDestroyAutofillWindowsRequest,
+                            SmartSuggestionsService.this, sessionId));
+        }
+    };
+
+    @CallSuper
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mHandler = new Handler(Looper.getMainLooper(), null, true);
+    }
+
+    /** @hide */
+    @Override
+    public final IBinder onBind(Intent intent) {
+        if (SERVICE_INTERFACE.equals(intent.getAction())) {
+            return mInterface.asBinder();
+        }
+        Log.w(TAG, "Tried to bind to wrong intent: " + intent);
+        return null;
+    }
+
+    /**
+     * Explicitly limits content capture to the given packages and activities.
+     *
+     * <p>When the whitelist is set, it overrides the values passed to
+     * {@link #setActivityContentCaptureEnabled(ComponentName, boolean)}
+     * and {@link #setPackageContentCaptureEnabled(String, boolean)}.
+     *
+     * <p>To reset the whitelist, call it passing {@code null} to both arguments.
+     *
+     * <p>Useful when the service wants to restrict content capture to a category of apps, like
+     * chat apps. For example, if the service wants to support view captures on all activities of
+     * app {@code ChatApp1} and just activities {@code act1} and {@code act2} of {@code ChatApp2},
+     * it would call: {@code setContentCaptureWhitelist(Arrays.asList("ChatApp1"),
+     * Arrays.asList(new ComponentName("ChatApp2", "act1"),
+     * new ComponentName("ChatApp2", "act2")));}
+     */
+    public final void setContentCaptureWhitelist(@Nullable List<String> packages,
+            @Nullable List<ComponentName> activities) {
+        //TODO(b/111276913): implement
+    }
+
+    /**
+     * Defines whether content capture should be enabled for activities with such
+     * {@link android.content.ComponentName}.
+     *
+     * <p>Useful to blacklist a particular activity.
+     */
+    public final void setActivityContentCaptureEnabled(@NonNull ComponentName activity,
+            boolean enabled) {
+        //TODO(b/111276913): implement
+    }
+
+    /**
+     * Defines whether content capture should be enabled for activities of the app with such
+     * {@code packageName}.
+     *
+     * <p>Useful to blacklist any activity from a particular app.
+     */
+    public final void setPackageContentCaptureEnabled(@NonNull String packageName,
+            boolean enabled) {
+        //TODO(b/111276913): implement
+    }
+
+    /**
+     * Gets the activities where content capture was disabled by
+     * {@link #setActivityContentCaptureEnabled(ComponentName, boolean)}.
+     */
+    @NonNull
+    public final Set<ComponentName> getContentCaptureDisabledActivities() {
+        //TODO(b/111276913): implement
+        return null;
+    }
+
+    /**
+     * Gets the apps where content capture was disabled by
+     * {@link #setPackageContentCaptureEnabled(String, boolean)}.
+     */
+    @NonNull
+    public final Set<String> getContentCaptureDisabledPackages() {
+        //TODO(b/111276913): implement
+        return null;
+    }
+
+    /**
+     * Creates a new interaction session.
+     *
+     * @param context interaction context
+     * @param sessionId the session's Id
+     */
+    public void onCreateInteractionSession(@NonNull InteractionContext context,
+            @NonNull InteractionSessionId sessionId) {
+        if (VERBOSE) {
+            Log.v(TAG, "onCreateInteractionSession(id=" + sessionId + ", ctx=" + context + ")");
+        }
+    }
+
+    /**
+     * Notifies the service of {@link ContentCaptureEvent events} associated with a content capture
+     * session.
+     *
+     * @param sessionId the session's Id
+     * @param request the events
+     */
+    // TODO(b/111276913): rename to onContentCaptureEvents or something like that; also, pass a
+    // Request object so it can be extended
+    public abstract void onContentCaptureEventsRequest(@NonNull InteractionSessionId sessionId,
+            @NonNull ContentCaptureEventsRequest request);
+
+    private void handleOnAutofillRequest(@NonNull InteractionSessionId sessionId,
+            @NonNull IBinder client, int autofillSessionId, @NonNull AutofillId focusedId) {
+        if (mAutofillProxies == null) {
+            mAutofillProxies = new ArrayMap<>();
+        }
+        AutofillProxy proxy = mAutofillProxies.get(sessionId);
+        if (proxy == null) {
+            proxy = new AutofillProxy(sessionId, client, autofillSessionId, focusedId);
+            mAutofillProxies.put(sessionId,  proxy);
+        } else {
+            // TODO(b/111330312): figure out if it's ok to reuse the proxy; add logging
+            if (DEBUG) Log.d(TAG, "Reusing proxy for session " + sessionId);
+        }
+        // TODO(b/111330312): set cancellation signal
+        final CancellationSignal cancellationSignal = null;
+        onFillRequest(sessionId, new FillRequest(proxy), cancellationSignal,
+                new FillController(proxy), new FillCallback());
+    }
+
+    /**
+     * Asks the service to handle an "augmented" autofill request.
+     *
+     * <p>This method is called when the "stantard" autofill service cannot handle a request, which
+     * typically occurs when:
+     * <ul>
+     *   <li>Service does not recognize what should be autofilled.
+     *   <li>Service does not have data to fill the request.
+     *   <li>Service blacklisted that app (or activity) for autofill.
+     *   <li>App disabled itself for autofill.
+     * </ul>
+     *
+     * <p>Differently from the standard autofill workflow, on augmented autofill the service is
+     * responsible to generate the autofill UI and request the Android system to autofill the
+     * activity when the user taps an action in that UI (through the
+     * {@link FillController#autofill(List)} method).
+     *
+     * <p>The service <b>MUST</b> call {@link
+     * FillCallback#onSuccess(android.service.intelligence.FillResponse)} as soon as possible,
+     * passing {@code null} when it cannot fulfill the request.
+     *
+     * @param sessionId the session's id
+     * @param request the request to handle.
+     * @param cancellationSignal signal for observing cancellation requests. The system will use
+     *     this to notify you that the fill result is no longer needed and you should stop
+     *     handling this fill request in order to save resources.
+     * @param controller object used to interact with the autofill system.
+     * @param callback object used to notify the result of the request. Service <b>must</b> call
+     * {@link FillCallback#onSuccess(android.service.intelligence.FillResponse)}.
+     */
+    public void onFillRequest(@NonNull InteractionSessionId sessionId, @NonNull FillRequest request,
+            @NonNull CancellationSignal cancellationSignal, @NonNull FillController controller,
+            @NonNull FillCallback callback) {
+    }
+
+    private void handleOnDestroyAutofillWindowsRequest(@NonNull InteractionSessionId sessionId) {
+        AutofillProxy proxy = null;
+        if (mAutofillProxies != null) {
+            proxy = mAutofillProxies.get(sessionId);
+        }
+        if (proxy == null) {
+            // TODO(b/111330312): this might be fine, in which case we should logv it
+            Log.w(TAG, "No proxy for session " + sessionId);
+            return;
+        }
+        proxy.destroy();
+        mAutofillProxies.remove(sessionId);
+    }
+
+    @Override
+    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        if (mAutofillProxies != null) {
+            final int size = mAutofillProxies.size();
+            pw.print("Number proxies: "); pw.println(size);
+            for (int i = 0; i < size; i++) {
+                final InteractionSessionId sessionId = mAutofillProxies.keyAt(i);
+                final AutofillProxy proxy = mAutofillProxies.valueAt(i);
+                pw.print(i); pw.print(") SessionId="); pw.print(sessionId); pw.println(":");
+                proxy.dump("  ", pw);
+            }
+        }
+    }
+
+    /**
+     * Notifies the service of {@link SnapshotData snapshot data} associated with a session.
+     *
+     * @param sessionId the session's Id
+     * @param snapshotData the data
+     */
+    public void onActivitySnapshot(@NonNull InteractionSessionId sessionId,
+            @NonNull SnapshotData snapshotData) {}
+
+    /**
+     * Destroys the interaction session.
+     *
+     * @param sessionId the id of the session to destroy
+     */
+    public void onDestroyInteractionSession(@NonNull InteractionSessionId sessionId) {
+        if (VERBOSE) {
+            Log.v(TAG, "onDestroyInteractionSession(id=" + sessionId + ")");
+        }
+    }
+
+    /** @hide */
+    static final class AutofillProxy {
+        private final Object mLock = new Object();
+        private final IAugmentedAutofillManagerClient mClient;
+        private final int mAutofillSessionId;
+        public final InteractionSessionId sessionId;
+        public final AutofillId focusedId;
+
+        @GuardedBy("mLock")
+        private SystemPopupPresentationParams mSmartSuggestion;
+
+        @GuardedBy("mLock")
+        private FillWindow mFillWindow;
+
+        private AutofillProxy(@NonNull InteractionSessionId sessionId, @NonNull IBinder client,
+                int autofillSessionId, @NonNull AutofillId focusedId) {
+            this.sessionId = sessionId;
+            mClient = IAugmentedAutofillManagerClient.Stub.asInterface(client);
+            mAutofillSessionId = autofillSessionId;
+            this.focusedId = focusedId;
+            // TODO(b/111330312): linkToDeath
+        }
+
+        @NonNull
+        public SystemPopupPresentationParams getSmartSuggestionParams() {
+            synchronized (mLock) {
+                if (mSmartSuggestion != null) {
+                    return mSmartSuggestion;
+                }
+                Rect rect;
+                try {
+                    rect = mClient.getViewCoordinates(focusedId);
+                } catch (RemoteException e) {
+                    Log.w(TAG, "Could not get coordinates for " + focusedId);
+                    return null;
+                }
+                if (rect == null) {
+                    if (DEBUG) Log.d(TAG, "getViewCoordinates(" + focusedId + ") returned null");
+                    return null;
+                }
+                mSmartSuggestion = new SystemPopupPresentationParams(this, rect);
+                return mSmartSuggestion;
+            }
+        }
+
+        public void autofill(@NonNull List<Pair<AutofillId, AutofillValue>> pairs)
+                throws RemoteException {
+            final int size = pairs.size();
+            final List<AutofillId> ids = new ArrayList<>(size);
+            final List<AutofillValue> values = new ArrayList<>(size);
+            for (int i = 0; i < size; i++) {
+                final Pair<AutofillId, AutofillValue> pair = pairs.get(i);
+                ids.add(pair.first);
+                values.add(pair.second);
+            }
+            mClient.autofill(mAutofillSessionId, ids, values);
+        }
+
+        public void setFillWindow(@NonNull FillWindow fillWindow) {
+            synchronized (mLock) {
+                mFillWindow = fillWindow;
+            }
+        }
+
+        public FillWindow getFillWindow() {
+            synchronized (mLock) {
+                return mFillWindow;
+            }
+        }
+
+        public void dump(@NonNull String prefix, @NonNull PrintWriter pw) {
+            pw.print(prefix); pw.print("afSessionId: "); pw.println(mAutofillSessionId);
+            pw.print(prefix); pw.print("focusedId: "); pw.println(focusedId);
+            pw.print(prefix); pw.print("client: "); pw.println(mClient);
+            final String prefix2 = prefix + "  ";
+            if (mFillWindow != null) {
+                pw.print(prefix); pw.println("window:");
+                mFillWindow.dump(prefix2, pw);
+            }
+            if (mSmartSuggestion != null) {
+                pw.print(prefix); pw.println("smartSuggestion:");
+                mSmartSuggestion.dump(prefix2, pw);
+            }
+        }
+
+        private void destroy() {
+            synchronized (mLock) {
+                if (mFillWindow != null) {
+                    if (DEBUG) Log.d(TAG, "destroying window");
+                    mFillWindow.destroy();
+                }
+            }
+        }
+    }
+}
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/core/java/android/service/intelligence/SnapshotData.aidl
similarity index 69%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
copy to core/java/android/service/intelligence/SnapshotData.aidl
index 5ca9d15..31d1339 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/core/java/android/service/intelligence/SnapshotData.aidl
@@ -1,5 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
 /**
  * Copyright (c) 2018, The Android Open Source Project
  *
@@ -15,8 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
-</resources>
\ No newline at end of file
+
+package android.service.intelligence;
+
+parcelable SnapshotData;
diff --git a/core/java/android/service/intelligence/SnapshotData.java b/core/java/android/service/intelligence/SnapshotData.java
new file mode 100644
index 0000000..b9310ea
--- /dev/null
+++ b/core/java/android/service/intelligence/SnapshotData.java
@@ -0,0 +1,104 @@
+/*
+ * 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.service.intelligence;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.app.assist.AssistContent;
+import android.app.assist.AssistStructure;
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * A container class for data taken from a snapshot of an activity.
+ *
+ * @hide
+ */
+@SystemApi
+public final class SnapshotData implements Parcelable {
+
+    private final @NonNull Bundle mAssistData;
+    private final @NonNull AssistStructure mAssistStructure;
+    private final @Nullable AssistContent mAssistContent;
+
+    /**
+     * Creates a new instance.
+     *
+     * @hide
+     */
+    public SnapshotData(@NonNull Bundle assistData, @NonNull AssistStructure assistStructure,
+            @Nullable AssistContent assistContent) {
+        mAssistData = assistData;
+        mAssistStructure = assistStructure;
+        mAssistContent = assistContent;
+    }
+
+    SnapshotData(@NonNull Parcel parcel) {
+        mAssistData = parcel.readBundle();
+        mAssistStructure = parcel.readParcelable(null);
+        mAssistContent = parcel.readParcelable(null);
+    }
+
+    /**
+     * Returns the assist data for this snapshot.
+     */
+    public Bundle getAssistData() {
+        return mAssistData;
+    }
+
+    /**
+     * Returns the assist structure for this snapshot.
+     */
+    public AssistStructure getAssistStructure() {
+        return mAssistStructure;
+    }
+
+    /**
+     * Returns the assist context for this snapshot.
+     */
+    public AssistContent getAssistContent() {
+        return mAssistContent;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(@NonNull Parcel parcel, int flags) {
+        parcel.writeBundle(mAssistData);
+        parcel.writeParcelable(mAssistStructure, flags);
+        parcel.writeParcelable(mAssistContent, flags);
+    }
+
+    public static final Creator<SnapshotData> CREATOR =
+            new Creator<SnapshotData>() {
+
+        @Override
+        public SnapshotData createFromParcel(@NonNull Parcel parcel) {
+            return new SnapshotData(parcel);
+        }
+
+        @Override
+        public SnapshotData[] newArray(int size) {
+            return new SnapshotData[size];
+        }
+    };
+}
diff --git a/core/java/android/service/notification/INotificationListener.aidl b/core/java/android/service/notification/INotificationListener.aidl
index d8bd002..1ddc099e 100644
--- a/core/java/android/service/notification/INotificationListener.aidl
+++ b/core/java/android/service/notification/INotificationListener.aidl
@@ -16,6 +16,7 @@
 
 package android.service.notification;
 
+import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.NotificationChannelGroup;
 import android.content.pm.ParceledListSlice;
@@ -47,4 +48,8 @@
     void onNotificationEnqueuedWithChannel(in IStatusBarNotificationHolder notificationHolder, in NotificationChannel channel);
     void onNotificationSnoozedUntilContext(in IStatusBarNotificationHolder notificationHolder, String snoozeCriterionId);
     void onNotificationsSeen(in List<String> keys);
+    void onNotificationExpansionChanged(String key, boolean userAction, boolean expanded);
+    void onNotificationDirectReply(String key);
+    void onSuggestedReplySent(String key, in CharSequence reply, int source);
+    void onActionClicked(String key, in Notification.Action action, int source);
 }
diff --git a/core/java/android/service/notification/NotificationAssistantService.java b/core/java/android/service/notification/NotificationAssistantService.java
index c1a3c2b..c850a4e 100644
--- a/core/java/android/service/notification/NotificationAssistantService.java
+++ b/core/java/android/service/notification/NotificationAssistantService.java
@@ -16,9 +16,14 @@
 
 package android.service.notification;
 
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+import android.annotation.IntDef;
+import android.annotation.Nullable;
 import android.annotation.SdkConstant;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
+import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
@@ -33,6 +38,7 @@
 
 import com.android.internal.os.SomeArgs;
 
+import java.lang.annotation.Retention;
 import java.util.List;
 
 /**
@@ -63,6 +69,13 @@
 public abstract class NotificationAssistantService extends NotificationListenerService {
     private static final String TAG = "NotificationAssistants";
 
+    /** @hide */
+    @Retention(SOURCE)
+    @IntDef({SOURCE_FROM_APP, SOURCE_FROM_ASSISTANT})
+    public @interface Source {}
+    public static final int SOURCE_FROM_APP = 0;
+    public static final int SOURCE_FROM_ASSISTANT = 1;
+
     /**
      * The {@link Intent} that must be declared as handled by the service.
      */
@@ -160,6 +173,38 @@
     }
 
     /**
+     * Implement this to know when a notification is expanded / collapsed.
+     * @param key the notification key
+     * @param isUserAction whether the expanded change is caused by user action.
+     * @param isExpanded whether the notification is expanded.
+     */
+    public void onNotificationExpansionChanged(
+            String key, boolean isUserAction, boolean isExpanded) {}
+
+    /**
+     * Implement this to know when a direct reply is sent from a notification.
+     * @param key the notification key
+     */
+    public void onNotificationDirectReply(String key) {}
+
+    /**
+     * Implement this to know when a suggested reply is sent.
+     * @param key the notification key
+     * @param reply the reply that is just sent
+     * @param source the source that provided the reply, e.g. SOURCE_FROM_APP
+     */
+    public void onSuggestedReplySent(String key, CharSequence reply, @Source int source) {}
+
+    /**
+     * Implement this to know when an action is clicked.
+     * @param key the notification key
+     * @param action the action that is just clicked
+     * @param source the source that provided the action, e.g. SOURCE_FROM_APP
+     */
+    public void onActionClicked(String key, @Nullable Notification.Action action, int source) {
+    }
+
+    /**
      * Updates a notification.  N.B. this won’t cause
      * an existing notification to alert, but might allow a future update to
      * this notification to alert.
@@ -255,12 +300,53 @@
             mHandler.obtainMessage(MyHandler.MSG_ON_NOTIFICATIONS_SEEN,
                     args).sendToTarget();
         }
+
+        @Override
+        public void onNotificationExpansionChanged(String key, boolean isUserAction,
+                boolean isExpanded) {
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = key;
+            args.argi1 = isUserAction ? 1 : 0;
+            args.argi2 = isExpanded ? 1 : 0;
+            mHandler.obtainMessage(MyHandler.MSG_ON_NOTIFICATION_EXPANSION_CHANGED, args)
+                    .sendToTarget();
+        }
+
+        @Override
+        public void onNotificationDirectReply(String key) {
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = key;
+            mHandler.obtainMessage(MyHandler.MSG_ON_NOTIFICATION_DIRECT_REPLY_SENT, args)
+                    .sendToTarget();
+        }
+
+        @Override
+        public void onSuggestedReplySent(String key, CharSequence reply, int source) {
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = key;
+            args.arg2 = reply;
+            args.argi2 = source;
+            mHandler.obtainMessage(MyHandler.MSG_ON_SUGGESTED_REPLY_SENT, args).sendToTarget();
+        }
+
+        @Override
+        public void onActionClicked(String key, Notification.Action action, int source) {
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = key;
+            args.arg2 = action;
+            args.argi2 = source;
+            mHandler.obtainMessage(MyHandler.MSG_ON_ACTION_CLICKED, args).sendToTarget();
+        }
     }
 
     private final class MyHandler extends Handler {
         public static final int MSG_ON_NOTIFICATION_ENQUEUED = 1;
         public static final int MSG_ON_NOTIFICATION_SNOOZED = 2;
         public static final int MSG_ON_NOTIFICATIONS_SEEN = 3;
+        public static final int MSG_ON_NOTIFICATION_EXPANSION_CHANGED = 4;
+        public static final int MSG_ON_NOTIFICATION_DIRECT_REPLY_SENT = 5;
+        public static final int MSG_ON_SUGGESTED_REPLY_SENT = 6;
+        public static final int MSG_ON_ACTION_CLICKED = 7;
 
         public MyHandler(Looper looper) {
             super(looper, null, false);
@@ -305,6 +391,40 @@
                     onNotificationsSeen(keys);
                     break;
                 }
+                case MSG_ON_NOTIFICATION_EXPANSION_CHANGED: {
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    String key = (String) args.arg1;
+                    boolean isUserAction = args.argi1 == 1;
+                    boolean isExpanded = args.argi2 == 1;
+                    args.recycle();
+                    onNotificationExpansionChanged(key, isUserAction, isExpanded);
+                    break;
+                }
+                case MSG_ON_NOTIFICATION_DIRECT_REPLY_SENT: {
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    String key = (String) args.arg1;
+                    args.recycle();
+                    onNotificationDirectReply(key);
+                    break;
+                }
+                case MSG_ON_SUGGESTED_REPLY_SENT: {
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    String key = (String) args.arg1;
+                    CharSequence reply = (CharSequence) args.arg2;
+                    int source = args.argi2;
+                    args.recycle();
+                    onSuggestedReplySent(key, reply, source);
+                    break;
+                }
+                case MSG_ON_ACTION_CLICKED: {
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    String key = (String) args.arg1;
+                    Notification.Action action = (Notification.Action) args.arg2;
+                    int source = args.argi2;
+                    args.recycle();
+                    onActionClicked(key, action, source);
+                    break;
+                }
             }
         }
     }
diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java
index 64eae0c..1fe97b7 100644
--- a/core/java/android/service/notification/NotificationListenerService.java
+++ b/core/java/android/service/notification/NotificationListenerService.java
@@ -1366,6 +1366,27 @@
         }
 
         @Override
+        public void onNotificationExpansionChanged(
+                String key, boolean isUserAction, boolean isExpanded) {
+            // no-op in the listener
+        }
+
+        @Override
+        public void onNotificationDirectReply(String key) {
+            // no-op in the listener
+        }
+
+        @Override
+        public void onSuggestedReplySent(String key, CharSequence reply, int source) {
+            // no-op in the listener
+        }
+
+        @Override
+        public void onActionClicked(String key, Notification.Action action, int source) {
+            // no-op in the listener
+        }
+
+        @Override
         public void onNotificationChannelModification(String pkgName, UserHandle user,
                 NotificationChannel channel,
                 @ChannelOrGroupModificationTypes int modificationType) {
diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java
index 8371c31b..0e2ae83 100644
--- a/core/java/android/service/notification/ZenModeConfig.java
+++ b/core/java/android/service/notification/ZenModeConfig.java
@@ -806,7 +806,7 @@
         if (zenPolicy.isCategoryAllowed(ZenPolicy.PRIORITY_CATEGORY_CALLS,
                 isPriorityCategoryEnabled(Policy.PRIORITY_CATEGORY_CALLS, defaultPolicy))) {
             priorityCategories |= Policy.PRIORITY_CATEGORY_CALLS;
-            messageSenders = getNotificationPolicySenders(zenPolicy.getPriorityCallSenders());
+            callSenders = getNotificationPolicySenders(zenPolicy.getPriorityCallSenders());
         }
 
         if (zenPolicy.isCategoryAllowed(ZenPolicy.PRIORITY_CATEGORY_REPEAT_CALLERS,
diff --git a/core/java/android/service/notification/ZenPolicy.java b/core/java/android/service/notification/ZenPolicy.java
index 43ab8dc..194147c 100644
--- a/core/java/android/service/notification/ZenPolicy.java
+++ b/core/java/android/service/notification/ZenPolicy.java
@@ -859,6 +859,27 @@
     /**
      * @hide
      */
+    public boolean areValuesSet() {
+        return getPriorityCategoryReminders() != STATE_UNSET
+                || getPriorityCategoryEvents() != STATE_UNSET
+                || getPriorityCategoryMessages() != STATE_UNSET
+                || getPriorityCategoryCalls() != STATE_UNSET
+                || getPriorityCategoryRepeatCallers() != STATE_UNSET
+                || getPriorityCategoryAlarms() != STATE_UNSET
+                || getPriorityCategoryMedia() != STATE_UNSET
+                || getPriorityCategorySystem() != STATE_UNSET
+                || getVisualEffectFullScreenIntent() != STATE_UNSET
+                || getVisualEffectLights() != STATE_UNSET
+                || getVisualEffectPeek() != STATE_UNSET
+                || getVisualEffectStatusBar() != STATE_UNSET
+                || getVisualEffectBadge() != STATE_UNSET
+                || getVisualEffectAmbient() != STATE_UNSET
+                || getVisualEffectNotificationList() != STATE_UNSET;
+    }
+
+    /**
+     * @hide
+     */
     public void writeToProto(ProtoOutputStream proto, long fieldId) {
         final long token = proto.start(fieldId);
 
diff --git a/core/java/android/service/oemlock/IOemLockService.aidl b/core/java/android/service/oemlock/IOemLockService.aidl
index d5e10d6..99cffc5 100644
--- a/core/java/android/service/oemlock/IOemLockService.aidl
+++ b/core/java/android/service/oemlock/IOemLockService.aidl
@@ -22,6 +22,8 @@
  * @hide
  */
 interface IOemLockService {
+    String getLockName();
+
     void setOemUnlockAllowedByCarrier(boolean allowed, in byte[] signature);
     boolean isOemUnlockAllowedByCarrier();
 
diff --git a/core/java/android/service/oemlock/OemLockManager.java b/core/java/android/service/oemlock/OemLockManager.java
index f0d6603..029d645 100644
--- a/core/java/android/service/oemlock/OemLockManager.java
+++ b/core/java/android/service/oemlock/OemLockManager.java
@@ -44,6 +44,23 @@
     }
 
     /**
+     * Returns a vendor specific name for the OEM lock.
+     *
+     * This value is used to identify the security protocol used by locks.
+     *
+     * @return The name of the OEM lock or {@code null} if failed to get the name.
+     */
+    @RequiresPermission(android.Manifest.permission.MANAGE_CARRIER_OEM_UNLOCK_STATE)
+    @Nullable
+    public String getLockName() {
+        try {
+            return mService.getLockName();
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * Sets whether the carrier has allowed this device to be OEM unlocked.
      *
      * Depending on the implementation, the validity of the request might need to be proved. This
diff --git a/core/java/android/service/sms/FinancialSmsService.java b/core/java/android/service/sms/FinancialSmsService.java
new file mode 100644
index 0000000..5fb7249
--- /dev/null
+++ b/core/java/android/service/sms/FinancialSmsService.java
@@ -0,0 +1,104 @@
+/*
+ * 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.service.sms;
+
+import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.app.Service;
+import android.content.Intent;
+import android.database.CursorWindow;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.RemoteCallback;
+import android.os.RemoteException;
+
+/**
+ * A service to support sms messages read for financial apps.
+ *
+ * {@hide}
+ */
+@SystemApi
+public abstract class FinancialSmsService extends Service {
+
+    private static final String TAG = "FinancialSmsService";
+
+    /**
+     * The {@link Intent} action that must be declared as handled by a service
+     * in its manifest for the system to recognize it as a quota providing
+     * service.
+     */
+    public static final String ACTION_FINANCIAL_SERVICE_INTENT =
+            "android.service.sms.action.FINANCIAL_SERVICE_INTENT";
+
+    /** {@hide} **/
+    public static final String EXTRA_SMS_MSGS = "sms_messages";
+
+    private FinancialSmsServiceWrapper mWrapper;
+
+    private void getSmsMessages(RemoteCallback callback, Bundle params) {
+        final Bundle data = new Bundle();
+        CursorWindow smsMessages = onGetSmsMessages(params);
+        if (smsMessages != null) {
+            data.putParcelable(EXTRA_SMS_MSGS, smsMessages);
+        }
+        callback.sendResult(data);
+    }
+
+    private final Handler mHandler = new Handler(Looper.getMainLooper(), null, true);
+
+    /** @hide */
+    public FinancialSmsService() {
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mWrapper = new FinancialSmsServiceWrapper();
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return mWrapper;
+    }
+
+    /**
+     * Get sms messages for financial apps.
+     *
+     * @param params parameters passed in by the calling app.
+     * @return the {@code CursorWindow} with all sms messages for the app to read.
+     *
+     * {@hide}
+     */
+    @Nullable
+    @SystemApi
+    public abstract CursorWindow onGetSmsMessages(@NonNull Bundle params);
+
+    private final class FinancialSmsServiceWrapper extends IFinancialSmsService.Stub {
+        @Override
+        public void getSmsMessages(RemoteCallback callback, Bundle params) throws RemoteException {
+            mHandler.sendMessage(obtainMessage(
+                    FinancialSmsService::getSmsMessages,
+                    FinancialSmsService.this,
+                    callback, params));
+        }
+    }
+
+}
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/android/service/sms/IFinancialSmsService.aidl
similarity index 70%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/android/service/sms/IFinancialSmsService.aidl
index 27d25b8..caabe58 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/android/service/sms/IFinancialSmsService.aidl
@@ -13,12 +13,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package android.service.sms;
+
+import android.os.Bundle;
+import android.os.RemoteCallback;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * Service used by financial apps to read sms messages.
+ *
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
-}
+oneway interface IFinancialSmsService
+{
+    void getSmsMessages(in RemoteCallback callback, in Bundle params);
+}
\ No newline at end of file
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/android/service/textclassifier/IConversationActionsCallback.aidl
similarity index 69%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/android/service/textclassifier/IConversationActionsCallback.aidl
index 27d25b8..c35d424 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/android/service/textclassifier/IConversationActionsCallback.aidl
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package android.service.textclassifier;
+
+import android.view.textclassifier.ConversationActions;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * Callback for a ConversationActions request.
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
-}
+oneway interface IConversationActionsCallback {
+    void onSuccess(in ConversationActions conversationActions);
+    void onFailure();
+}
\ No newline at end of file
diff --git a/core/java/android/service/textclassifier/ITextClassifierService.aidl b/core/java/android/service/textclassifier/ITextClassifierService.aidl
index 7ac72c7..254a710 100644
--- a/core/java/android/service/textclassifier/ITextClassifierService.aidl
+++ b/core/java/android/service/textclassifier/ITextClassifierService.aidl
@@ -16,14 +16,18 @@
 
 package android.service.textclassifier;
 
+import android.service.textclassifier.IConversationActionsCallback;
 import android.service.textclassifier.ITextClassificationCallback;
+import android.service.textclassifier.ITextLanguageCallback;
 import android.service.textclassifier.ITextLinksCallback;
 import android.service.textclassifier.ITextSelectionCallback;
+import android.view.textclassifier.ConversationActions;
 import android.view.textclassifier.SelectionEvent;
 import android.view.textclassifier.TextClassification;
 import android.view.textclassifier.TextClassificationContext;
 import android.view.textclassifier.TextClassificationSessionId;
 import android.view.textclassifier.TextLinks;
+import android.view.textclassifier.TextLanguage;
 import android.view.textclassifier.TextSelection;
 
 /**
@@ -58,4 +62,14 @@
 
     void onDestroyTextClassificationSession(
             in TextClassificationSessionId sessionId);
+
+    void onDetectLanguage(
+            in TextClassificationSessionId sessionId,
+            in TextLanguage.Request request,
+            in ITextLanguageCallback callback);
+
+    void onSuggestConversationActions(
+            in TextClassificationSessionId sessionId,
+            in ConversationActions.Request request,
+            in IConversationActionsCallback callback);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/android/service/textclassifier/ITextLanguageCallback.aidl
similarity index 71%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/android/service/textclassifier/ITextLanguageCallback.aidl
index 27d25b8..263d99af 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/android/service/textclassifier/ITextLanguageCallback.aidl
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package android.service.textclassifier;
+
+import android.view.textclassifier.TextLanguage;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * Callback for a TextLanguage request.
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
-}
+oneway interface ITextLanguageCallback {
+    void onSuccess(in TextLanguage textLanguage);
+    void onFailure();
+}
\ No newline at end of file
diff --git a/core/java/android/service/textclassifier/TextClassifierService.java b/core/java/android/service/textclassifier/TextClassifierService.java
index 7f1082d..d7359f1 100644
--- a/core/java/android/service/textclassifier/TextClassifierService.java
+++ b/core/java/android/service/textclassifier/TextClassifierService.java
@@ -32,12 +32,14 @@
 import android.os.RemoteException;
 import android.text.TextUtils;
 import android.util.Slog;
+import android.view.textclassifier.ConversationActions;
 import android.view.textclassifier.SelectionEvent;
 import android.view.textclassifier.TextClassification;
 import android.view.textclassifier.TextClassificationContext;
 import android.view.textclassifier.TextClassificationManager;
 import android.view.textclassifier.TextClassificationSessionId;
 import android.view.textclassifier.TextClassifier;
+import android.view.textclassifier.TextLanguage;
 import android.view.textclassifier.TextLinks;
 import android.view.textclassifier.TextSelection;
 
@@ -92,8 +94,7 @@
         @Override
         public void onSuggestSelection(
                 TextClassificationSessionId sessionId,
-                TextSelection.Request request, ITextSelectionCallback callback)
-                throws RemoteException {
+                TextSelection.Request request, ITextSelectionCallback callback) {
             Preconditions.checkNotNull(request);
             Preconditions.checkNotNull(callback);
             TextClassifierService.this.onSuggestSelection(
@@ -125,8 +126,7 @@
         @Override
         public void onClassifyText(
                 TextClassificationSessionId sessionId,
-                TextClassification.Request request, ITextClassificationCallback callback)
-                throws RemoteException {
+                TextClassification.Request request, ITextClassificationCallback callback) {
             Preconditions.checkNotNull(request);
             Preconditions.checkNotNull(callback);
             TextClassifierService.this.onClassifyText(
@@ -156,8 +156,7 @@
         @Override
         public void onGenerateLinks(
                 TextClassificationSessionId sessionId,
-                TextLinks.Request request, ITextLinksCallback callback)
-                throws RemoteException {
+                TextLinks.Request request, ITextLinksCallback callback) {
             Preconditions.checkNotNull(request);
             Preconditions.checkNotNull(callback);
             TextClassifierService.this.onGenerateLinks(
@@ -188,16 +187,81 @@
         @Override
         public void onSelectionEvent(
                 TextClassificationSessionId sessionId,
-                SelectionEvent event) throws RemoteException {
+                SelectionEvent event) {
             Preconditions.checkNotNull(event);
             TextClassifierService.this.onSelectionEvent(sessionId, event);
         }
 
         /** {@inheritDoc} */
         @Override
+        public void onDetectLanguage(
+                TextClassificationSessionId sessionId,
+                TextLanguage.Request request,
+                ITextLanguageCallback callback) {
+            Preconditions.checkNotNull(request);
+            Preconditions.checkNotNull(callback);
+            TextClassifierService.this.onDetectLanguage(
+                    sessionId,
+                    request,
+                    mCancellationSignal,
+                    new Callback<TextLanguage>() {
+                        @Override
+                        public void onSuccess(TextLanguage result) {
+                            try {
+                                callback.onSuccess(result);
+                            } catch (RemoteException e) {
+                                Slog.d(LOG_TAG, "Error calling callback");
+                            }
+                        }
+
+                        @Override
+                        public void onFailure(CharSequence error) {
+                            try {
+                                callback.onFailure();
+                            } catch (RemoteException e) {
+                                Slog.d(LOG_TAG, "Error calling callback");
+                            }
+                        };
+                    });
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public void onSuggestConversationActions(
+                TextClassificationSessionId sessionId,
+                ConversationActions.Request request,
+                IConversationActionsCallback callback) {
+            Preconditions.checkNotNull(request);
+            Preconditions.checkNotNull(callback);
+            TextClassifierService.this.onSuggestConversationActions(
+                    sessionId,
+                    request,
+                    mCancellationSignal,
+                    new Callback<ConversationActions>() {
+                        @Override
+                        public void onSuccess(ConversationActions result) {
+                            try {
+                                callback.onSuccess(result);
+                            } catch (RemoteException e) {
+                                Slog.d(LOG_TAG, "Error calling callback");
+                            }
+                        }
+
+                        @Override
+                        public void onFailure(CharSequence error) {
+                            try {
+                                callback.onFailure();
+                            } catch (RemoteException e) {
+                                Slog.d(LOG_TAG, "Error calling callback");
+                            }
+                        }
+                    });
+        }
+
+        /** {@inheritDoc} */
+        @Override
         public void onCreateTextClassificationSession(
-                TextClassificationContext context, TextClassificationSessionId sessionId)
-                throws RemoteException {
+                TextClassificationContext context, TextClassificationSessionId sessionId) {
             Preconditions.checkNotNull(context);
             Preconditions.checkNotNull(sessionId);
             TextClassifierService.this.onCreateTextClassificationSession(context, sessionId);
@@ -205,8 +269,7 @@
 
         /** {@inheritDoc} */
         @Override
-        public void onDestroyTextClassificationSession(TextClassificationSessionId sessionId)
-                throws RemoteException {
+        public void onDestroyTextClassificationSession(TextClassificationSessionId sessionId) {
             TextClassifierService.this.onDestroyTextClassificationSession(sessionId);
         }
     };
@@ -266,6 +329,38 @@
             @NonNull Callback<TextLinks> callback);
 
     /**
+     * Detects and returns the language of the give text.
+     *
+     * @param sessionId the session id
+     * @param request the language detection request
+     * @param cancellationSignal object to watch for canceling the current operation
+     * @param callback the callback to return the result to
+     */
+    public void onDetectLanguage(
+            @Nullable TextClassificationSessionId sessionId,
+            @NonNull TextLanguage.Request request,
+            @NonNull CancellationSignal cancellationSignal,
+            @NonNull Callback<TextLanguage> callback) {
+        callback.onSuccess(getLocalTextClassifier().detectLanguage(request));
+    }
+
+    /**
+     * Suggests and returns a list of actions according to the given conversation.
+     *
+     * @param sessionId the session id
+     * @param request the conversation actions request
+     * @param cancellationSignal object to watch for canceling the current operation
+     * @param callback the callback to return the result to
+     */
+    public void onSuggestConversationActions(
+            @Nullable TextClassificationSessionId sessionId,
+            @NonNull ConversationActions.Request request,
+            @NonNull CancellationSignal cancellationSignal,
+            @NonNull Callback<ConversationActions> callback) {
+        callback.onSuccess(getLocalTextClassifier().suggestConversationActions(request));
+    }
+
+    /**
      * Writes the selection event.
      * This is called when a selection event occurs. e.g. user changed selection; or smart selection
      * happened.
diff --git a/core/java/android/service/wallpaper/IWallpaperConnection.aidl b/core/java/android/service/wallpaper/IWallpaperConnection.aidl
index 3c3ef0c..a976d0e 100644
--- a/core/java/android/service/wallpaper/IWallpaperConnection.aidl
+++ b/core/java/android/service/wallpaper/IWallpaperConnection.aidl
@@ -24,8 +24,8 @@
  * @hide
  */
 interface IWallpaperConnection {
-	void attachEngine(IWallpaperEngine engine);
-	void engineShown(IWallpaperEngine engine);
+    void attachEngine(IWallpaperEngine engine, int displayId);
+    void engineShown(IWallpaperEngine engine);
     ParcelFileDescriptor setWallpaper(String name);
     void onWallpaperColorsChanged(in WallpaperColors colors);
 }
diff --git a/core/java/android/service/wallpaper/IWallpaperEngine.aidl b/core/java/android/service/wallpaper/IWallpaperEngine.aidl
index dccce40..ebce484 100644
--- a/core/java/android/service/wallpaper/IWallpaperEngine.aidl
+++ b/core/java/android/service/wallpaper/IWallpaperEngine.aidl
@@ -27,7 +27,7 @@
     void setDesiredSize(int width, int height);
     void setDisplayPadding(in Rect padding);
     void setVisibility(boolean visible);
-    void setInAmbientMode(boolean inAmbientDisplay, boolean animated);
+    void setInAmbientMode(boolean inAmbientDisplay, long animationDuration);
     void dispatchPointer(in MotionEvent event);
     void dispatchWallpaperCommand(String action, int x, int y,
             int z, in Bundle extras);
diff --git a/core/java/android/service/wallpaper/IWallpaperService.aidl b/core/java/android/service/wallpaper/IWallpaperService.aidl
index 5fd0157..99a81f5 100644
--- a/core/java/android/service/wallpaper/IWallpaperService.aidl
+++ b/core/java/android/service/wallpaper/IWallpaperService.aidl
@@ -24,6 +24,6 @@
  */
 oneway interface IWallpaperService {
     void attach(IWallpaperConnection connection,
-    		IBinder windowToken, int windowType, boolean isPreview,
-    		int reqWidth, int reqHeight, in Rect padding);
+            IBinder windowToken, int windowType, boolean isPreview,
+            int reqWidth, int reqHeight, in Rect padding, int displayId);
 }
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index 4bd86a4..a095b0d 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -19,12 +19,12 @@
 import android.annotation.Nullable;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
+import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 import android.app.Service;
 import android.app.WallpaperColors;
 import android.app.WallpaperInfo;
 import android.app.WallpaperManager;
-import android.content.Context;
 import android.content.Intent;
 import android.content.res.TypedArray;
 import android.graphics.Bitmap;
@@ -57,6 +57,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.WindowInsets;
+import android.view.InsetsState;
 import android.view.WindowManager;
 import android.view.WindowManagerGlobal;
 
@@ -130,7 +131,7 @@
         Bundle extras;
         boolean sync;
     }
-    
+
     /**
      * The actual implementation of a wallpaper.  A wallpaper service may
      * have multiple instances running (for example as a real wallpaper
@@ -145,7 +146,7 @@
         HandlerCaller mCaller;
         IWallpaperConnection mConnection;
         IBinder mWindowToken;
-        
+
         boolean mInitializing = true;
         boolean mVisible;
         boolean mReportedVisible;
@@ -185,6 +186,7 @@
         final DisplayCutout.ParcelableWrapper mDisplayCutout =
                 new DisplayCutout.ParcelableWrapper();
         DisplayCutout mDispatchedDisplayCutout = DisplayCutout.NO_CUTOUT;
+        final InsetsState mInsetsState = new InsetsState();
         final MergedConfiguration mMergedConfiguration = new MergedConfiguration();
 
         final WindowManager.LayoutParams mLayout
@@ -209,7 +211,6 @@
         private final Supplier<Long> mClockFunction;
         private final Handler mHandler;
 
-        DisplayManager mDisplayManager;
         Display mDisplay;
         private int mDisplayState;
 
@@ -420,7 +421,7 @@
         public int getDesiredMinimumHeight() {
             return mIWallpaperEngine.mReqHeight;
         }
-        
+
         /**
          * Return whether the wallpaper is currently visible to the user,
          * this is the last value supplied to
@@ -442,7 +443,9 @@
         /**
          * Returns true if this engine is running in ambient mode -- that is,
          * it is being shown in low power mode, on always on display.
+         * @hide
          */
+        @SystemApi
         public boolean isInAmbientMode() {
             return mIsInAmbientMode;
         }
@@ -568,14 +571,16 @@
          * Called when the device enters or exits ambient mode.
          *
          * @param inAmbientMode {@code true} if in ambient mode.
-         * @param animated {@code true} if you'll have the opportunity of animating your transition
-         *                 {@code false} when the wallpaper should present its ambient version
-         *                 immediately.
+         * @param animationDuration How long the transition animation to change the ambient state
+         *                          should run, in milliseconds. If 0 is passed as the argument
+         *                          here, the state should be switched immediately.
          *
          * @see #isInAmbientMode()
          * @see WallpaperInfo#supportsAmbientMode()
+         * @hide
          */
-        public void onAmbientModeChanged(boolean inAmbientMode, boolean animated) {
+        @SystemApi
+        public void onAmbientModeChanged(boolean inAmbientMode, long animationDuration) {
         }
 
         /**
@@ -805,9 +810,11 @@
                         mLayout.windowAnimations =
                                 com.android.internal.R.style.Animation_Wallpaper;
                         mInputChannel = new InputChannel();
+
                         if (mSession.addToDisplay(mWindow, mWindow.mSeq, mLayout, View.VISIBLE,
-                                Display.DEFAULT_DISPLAY, mWinFrame, mContentInsets, mStableInsets,
-                                mOutsets, mDisplayCutout, mInputChannel) < 0) {
+                                mDisplay.getDisplayId(), mWinFrame, mContentInsets, mStableInsets,
+                                mOutsets, mDisplayCutout, mInputChannel,
+                                mInsetsState) < 0) {
                             Log.w(TAG, "Failed to add window while updating wallpaper surface.");
                             return;
                         }
@@ -833,7 +840,8 @@
                         mWindow, mWindow.mSeq, mLayout, mWidth, mHeight,
                             View.VISIBLE, 0, -1, mWinFrame, mOverscanInsets, mContentInsets,
                             mVisibleInsets, mStableInsets, mOutsets, mBackdropFrame,
-                            mDisplayCutout, mMergedConfiguration, mSurfaceHolder.mSurface);
+                            mDisplayCutout, mMergedConfiguration, mSurfaceHolder.mSurface,
+                            mInsetsState);
 
                     if (DEBUG) Log.v(TAG, "New surface: " + mSurfaceHolder.mSurface
                             + ", frame=" + mWinFrame);
@@ -1015,7 +1023,7 @@
             if (mDestroyed) {
                 return;
             }
-            
+
             mIWallpaperEngine = wrapper;
             mCaller = wrapper.mCaller;
             mConnection = wrapper.mConnection;
@@ -1027,16 +1035,16 @@
             mWindow.setSession(mSession);
 
             mLayout.packageName = getPackageName();
-
-            mDisplayManager = (DisplayManager)getSystemService(Context.DISPLAY_SERVICE);
-            mDisplayManager.registerDisplayListener(mDisplayListener, mCaller.getHandler());
-            mDisplay = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY);
+            mIWallpaperEngine.mDisplayManager.registerDisplayListener(mDisplayListener,
+                    mCaller.getHandler());
+            mDisplay = mIWallpaperEngine.mDisplay;
             mDisplayState = mDisplay.getState();
 
             if (DEBUG) Log.v(TAG, "onCreate(): " + this);
             onCreate(mSurfaceHolder);
-            
+
             mInitializing = false;
+
             mReportedVisible = false;
             updateSurface(false, false, false);
         }
@@ -1046,19 +1054,19 @@
          * message sent from handler.
          *
          * @param inAmbientMode {@code true} if in ambient mode.
-         * @param animated {@code true} if the transition will be animated.
+         * @param animationDuration For how long the transition will last, in ms.
          * @hide
          */
         @VisibleForTesting
-        public void doAmbientModeChanged(boolean inAmbientMode, boolean animated) {
+        public void doAmbientModeChanged(boolean inAmbientMode, long animationDuration) {
             if (!mDestroyed) {
                 if (DEBUG) {
                     Log.v(TAG, "onAmbientModeChanged(" + inAmbientMode + ", "
-                            + animated + "): " + this);
+                            + animationDuration + "): " + this);
                 }
                 mIsInAmbientMode = inAmbientMode;
                 if (mCreated) {
-                    onAmbientModeChanged(inAmbientMode, animated);
+                    onAmbientModeChanged(inAmbientMode, animationDuration);
                 }
             }
         }
@@ -1198,8 +1206,8 @@
             
             mDestroyed = true;
 
-            if (mDisplayManager != null) {
-                mDisplayManager.unregisterDisplayListener(mDisplayListener);
+            if (mIWallpaperEngine.mDisplayManager != null) {
+                mIWallpaperEngine.mDisplayManager.unregisterDisplayListener(mDisplayListener);
             }
 
             if (mVisible) {
@@ -1268,12 +1276,16 @@
         int mReqWidth;
         int mReqHeight;
         final Rect mDisplayPadding = new Rect();
+        final int mDisplayId;
+        final DisplayManager mDisplayManager;
+        final Display mDisplay;
 
         Engine mEngine;
 
         IWallpaperEngineWrapper(WallpaperService context,
                 IWallpaperConnection conn, IBinder windowToken,
-                int windowType, boolean isPreview, int reqWidth, int reqHeight, Rect padding) {
+                int windowType, boolean isPreview, int reqWidth, int reqHeight, Rect padding,
+                int displayId) {
             mCaller = new HandlerCaller(context, context.getMainLooper(), this, true);
             mConnection = conn;
             mWindowToken = windowToken;
@@ -1282,7 +1294,16 @@
             mReqWidth = reqWidth;
             mReqHeight = reqHeight;
             mDisplayPadding.set(padding);
-            
+            mDisplayId = displayId;
+
+            // Create a display context before onCreateEngine.
+            mDisplayManager = getSystemService(DisplayManager.class);
+            mDisplay = mDisplayManager.getDisplay(mDisplayId);
+
+            if (mDisplay == null) {
+                // Ignore this engine.
+                throw new IllegalArgumentException("Cannot find display with id" + mDisplayId);
+            }
             Message msg = mCaller.obtainMessage(DO_ATTACH);
             mCaller.sendMessage(msg);
         }
@@ -1304,10 +1325,10 @@
         }
 
         @Override
-        public void setInAmbientMode(boolean inAmbientDisplay, boolean animated)
+        public void setInAmbientMode(boolean inAmbientDisplay, long animationDuration)
                 throws RemoteException {
-            Message msg = mCaller.obtainMessageII(DO_IN_AMBIENT_MODE, inAmbientDisplay ? 1 : 0,
-                    animated ? 1 : 0);
+            Message msg = mCaller.obtainMessageIO(DO_IN_AMBIENT_MODE, inAmbientDisplay ? 1 : 0,
+                    animationDuration);
             mCaller.sendMessage(msg);
         }
 
@@ -1353,7 +1374,7 @@
             switch (message.what) {
                 case DO_ATTACH: {
                     try {
-                        mConnection.attachEngine(this);
+                        mConnection.attachEngine(this, mDisplayId);
                     } catch (RemoteException e) {
                         Log.w(TAG, "Wallpaper host disappeared", e);
                         return;
@@ -1378,7 +1399,7 @@
                     return;
                 }
                 case DO_IN_AMBIENT_MODE: {
-                    mEngine.doAmbientModeChanged(message.arg1 != 0, message.arg2 != 0);
+                    mEngine.doAmbientModeChanged(message.arg1 != 0, (Long) message.obj);
                     return;
                 }
                 case MSG_UPDATE_SURFACE:
@@ -1453,9 +1474,10 @@
 
         @Override
         public void attach(IWallpaperConnection conn, IBinder windowToken,
-                int windowType, boolean isPreview, int reqWidth, int reqHeight, Rect padding) {
+                int windowType, boolean isPreview, int reqWidth, int reqHeight, Rect padding,
+                int displayId) {
             new IWallpaperEngineWrapper(mTarget, conn, windowToken,
-                    windowType, isPreview, reqWidth, reqHeight, padding);
+                    windowType, isPreview, reqWidth, reqHeight, padding, displayId);
         }
     }
 
diff --git a/core/java/android/speech/tts/TextToSpeechService.java b/core/java/android/speech/tts/TextToSpeechService.java
index ec63cd9..7815864 100644
--- a/core/java/android/speech/tts/TextToSpeechService.java
+++ b/core/java/android/speech/tts/TextToSpeechService.java
@@ -1009,7 +1009,7 @@
                 Log.e(TAG, "null synthesis text");
                 return false;
             }
-            if (mText.length() >= TextToSpeech.getMaxSpeechInputLength()) {
+            if (mText.length() > TextToSpeech.getMaxSpeechInputLength()) {
                 Log.w(TAG, "Text too long: " + mText.length() + " chars");
                 return false;
             }
@@ -1609,7 +1609,7 @@
             synchronized (mCallerToCallback) {
                 mCallerToCallback.remove(caller);
             }
-            //mSynthHandler.stopForApp(caller);
+            mSynthHandler.stopForApp(caller);
         }
 
         @Override
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index 2cf0262..8cb18b2 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -485,7 +485,7 @@
      * @deprecated Use {@link Builder} instead.
      */
     @Deprecated
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 117521430)
     public StaticLayout(CharSequence source, int bufstart, int bufend,
                         TextPaint paint, int outerwidth,
                         Alignment align, TextDirectionHeuristic textDir,
diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java
index b970c25..85b6b88 100644
--- a/core/java/android/text/TextUtils.java
+++ b/core/java/android/text/TextUtils.java
@@ -46,6 +46,7 @@
 import android.text.style.ForegroundColorSpan;
 import android.text.style.LeadingMarginSpan;
 import android.text.style.LineBackgroundSpan;
+import android.text.style.LineHeightSpan;
 import android.text.style.LocaleSpan;
 import android.text.style.ParagraphStyle;
 import android.text.style.QuoteSpan;
@@ -733,7 +734,9 @@
     /** @hide */
     public static final int LINE_BACKGROUND_SPAN = 27;
     /** @hide */
-    public static final int LAST_SPAN = LINE_BACKGROUND_SPAN;
+    public static final int LINE_HEIGHT_SPAN = 28;
+    /** @hide */
+    public static final int LAST_SPAN = LINE_HEIGHT_SPAN;
 
     /**
      * Flatten a CharSequence and whatever styles can be copied across processes
@@ -928,6 +931,10 @@
                     readSpan(p, sp, new LineBackgroundSpan.Standard(p));
                     break;
 
+                case LINE_HEIGHT_SPAN:
+                    readSpan(p, sp, new LineHeightSpan.Standard(p));
+                    break;
+                    
                 default:
                     throw new RuntimeException("bogus span encoding " + kind);
                 }
diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java
index 562ae7a..bab4bc36 100644
--- a/core/java/android/text/format/Time.java
+++ b/core/java/android/text/format/Time.java
@@ -18,8 +18,8 @@
 
 import android.util.TimeFormatException;
 
+import libcore.timezone.ZoneInfoDB;
 import libcore.util.ZoneInfo;
-import libcore.util.ZoneInfoDB;
 
 import java.io.IOException;
 import java.util.Locale;
diff --git a/core/java/android/text/style/LineHeightSpan.java b/core/java/android/text/style/LineHeightSpan.java
index 2742ae0..a5d5af2 100644
--- a/core/java/android/text/style/LineHeightSpan.java
+++ b/core/java/android/text/style/LineHeightSpan.java
@@ -20,7 +20,10 @@
 import android.annotation.NonNull;
 import android.annotation.Px;
 import android.graphics.Paint;
+import android.os.Parcel;
+import android.text.ParcelableSpan;
 import android.text.TextPaint;
+import android.text.TextUtils;
 
 import com.android.internal.util.Preconditions;
 
@@ -71,7 +74,7 @@
      * covers only part of the paragraph.
      * </p>
      */
-    class Standard implements LineHeightSpan {
+    class Standard implements LineHeightSpan, ParcelableSpan {
 
         private final @Px int mHeight;
         /**
@@ -82,6 +85,48 @@
             mHeight = height;
         }
 
+        /**
+         * Constructor called from {@link TextUtils} to restore the span from a parcel
+         */
+        public Standard(Parcel src) {
+            mHeight = src.readInt();
+        }
+
+        /**
+         * Returns the line height specified by this span.
+         */
+        @Px
+        public int getHeight() {
+            return mHeight;
+        }
+
+        @Override
+        public int getSpanTypeId() {
+            return getSpanTypeIdInternal();
+        }
+
+        /** @hide */
+        @Override
+        public int getSpanTypeIdInternal() {
+            return TextUtils.LINE_HEIGHT_SPAN;
+        }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            writeToParcelInternal(dest, flags);
+        }
+
+        /** @hide */
+        @Override
+        public void writeToParcelInternal(@NonNull Parcel dest, int flags) {
+            dest.writeInt(mHeight);
+        }
+
         @Override
         public void chooseHeight(@NonNull CharSequence text, int start, int end,
                 int spanstartv, int lineHeight,
diff --git a/core/java/android/text/style/SuggestionSpan.java b/core/java/android/text/style/SuggestionSpan.java
index be47320..433483f7 100644
--- a/core/java/android/text/style/SuggestionSpan.java
+++ b/core/java/android/text/style/SuggestionSpan.java
@@ -369,10 +369,7 @@
 
     /**
      * @return The color of the underline for that span, or 0 if there is no underline
-     *
-     * @hide
      */
-    @UnsupportedAppUsage
     public int getUnderlineColor() {
         // The order here should match what is used in updateDrawState
         final boolean misspelled = (mFlags & FLAG_MISSPELLED) != 0;
diff --git a/core/java/android/text/util/Linkify.java b/core/java/android/text/util/Linkify.java
index f4dad62..eef7ea2 100644
--- a/core/java/android/text/util/Linkify.java
+++ b/core/java/android/text/util/Linkify.java
@@ -29,6 +29,7 @@
 import android.text.method.LinkMovementMethod;
 import android.text.method.MovementMethod;
 import android.text.style.URLSpan;
+import android.util.Log;
 import android.util.Patterns;
 import android.webkit.WebView;
 import android.widget.TextView;
@@ -72,6 +73,9 @@
  */
 
 public class Linkify {
+
+    private static final String LOG_TAG = "Linkify";
+
     /**
      *  Bit field indicating that web URLs should be matched in methods that
      *  take an options mask
@@ -310,6 +314,11 @@
      */
     private static boolean addLinks(@NonNull Spannable text, @LinkifyMask int mask,
             @Nullable Context context, @Nullable UrlSpanFactory urlSpanFactory) {
+        if (text != null && containsUnsupportedCharacters(text.toString())) {
+            android.util.EventLog.writeEvent(0x534e4554, "116321860", -1, "");
+            return false;
+        }
+
         if (mask == 0) {
             return false;
         }
@@ -356,6 +365,29 @@
     }
 
     /**
+     * Returns true if the specified text contains at least one unsupported character for applying
+     * links. Also logs the error.
+     *
+     * @param text the text to apply links to
+     * @hide
+     */
+    public static boolean containsUnsupportedCharacters(String text) {
+        if (text.contains("\u202C")) {
+            Log.e(LOG_TAG, "Unsupported character for applying links: u202C");
+            return true;
+        }
+        if (text.contains("\u202D")) {
+            Log.e(LOG_TAG, "Unsupported character for applying links: u202D");
+            return true;
+        }
+        if (text.contains("\u202E")) {
+            Log.e(LOG_TAG, "Unsupported character for applying links: u202E");
+            return true;
+        }
+        return false;
+    }
+
+    /**
      *  Scans the text of the provided TextView and turns all occurrences of
      *  the link types indicated in the mask into clickable links.  If matches
      *  are found the movement method for the TextView is set to
@@ -560,6 +592,11 @@
             @Nullable String defaultScheme, @Nullable String[] schemes,
             @Nullable MatchFilter matchFilter, @Nullable TransformFilter transformFilter,
             @Nullable UrlSpanFactory urlSpanFactory) {
+        if (spannable != null && containsUnsupportedCharacters(spannable.toString())) {
+            android.util.EventLog.writeEvent(0x534e4554, "116321860", -1, "");
+            return false;
+        }
+
         final String[] schemesCopy;
         if (defaultScheme == null) defaultScheme = "";
         if (schemes == null || schemes.length < 1) {
diff --git a/core/java/android/transition/ChangeBounds.java b/core/java/android/transition/ChangeBounds.java
index c822832..de182da 100644
--- a/core/java/android/transition/ChangeBounds.java
+++ b/core/java/android/transition/ChangeBounds.java
@@ -32,6 +32,7 @@
 import android.graphics.Rect;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
+import android.os.Build;
 import android.util.AttributeSet;
 import android.util.Property;
 import android.view.View;
@@ -109,7 +110,7 @@
                 }
             };
 
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static final Property<View, PointF> BOTTOM_RIGHT_ONLY_PROPERTY =
             new Property<View, PointF>(PointF.class, "bottomRight") {
                 @Override
@@ -144,7 +145,7 @@
                 }
             };
 
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static final Property<View, PointF> POSITION_PROPERTY =
             new Property<View, PointF>(PointF.class, "position") {
                 @Override
diff --git a/core/java/android/transition/Scene.java b/core/java/android/transition/Scene.java
index 7e499f2..b1fc17a 100644
--- a/core/java/android/transition/Scene.java
+++ b/core/java/android/transition/Scene.java
@@ -20,6 +20,7 @@
 import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
 import android.content.Context;
+import android.os.Build;
 import android.util.SparseArray;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -38,9 +39,9 @@
     private int mLayoutId = -1;
     private ViewGroup mSceneRoot;
     private View mLayout; // alternative to layoutId
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     Runnable mEnterAction;
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     Runnable mExitAction;
 
     /**
@@ -200,7 +201,7 @@
      *
      * @param sceneRoot The view on which the current scene is being set
      */
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     static void setCurrentScene(@NonNull View sceneRoot, @Nullable Scene scene) {
         sceneRoot.setTagInternal(com.android.internal.R.id.current_scene, scene);
     }
diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java
index 0cb7c28..dee6d90 100644
--- a/core/java/android/util/FeatureFlagUtils.java
+++ b/core/java/android/util/FeatureFlagUtils.java
@@ -35,7 +35,6 @@
     public static final String FFLAG_OVERRIDE_PREFIX = FFLAG_PREFIX + "override.";
     public static final String PERSIST_PREFIX = "persist." + FFLAG_OVERRIDE_PREFIX;
     public static final String HEARING_AID_SETTINGS = "settings_bluetooth_hearing_aid";
-    public static final String EMERGENCY_DIAL_SHORTCUTS = "settings_emergency_dial_shortcuts";
     public static final String SAFETY_HUB = "settings_safety_hub";
     public static final String SCREENRECORD_LONG_PRESS = "settings_screenrecord_long_press";
 
@@ -46,10 +45,8 @@
         DEFAULT_FLAGS.put("settings_systemui_theme", "true");
         DEFAULT_FLAGS.put("settings_dynamic_homepage", "true");
         DEFAULT_FLAGS.put("settings_mobile_network_v2", "true");
-        DEFAULT_FLAGS.put("settings_data_usage_v2", "true");
         DEFAULT_FLAGS.put("settings_seamless_transfer", "false");
         DEFAULT_FLAGS.put(HEARING_AID_SETTINGS, "false");
-        DEFAULT_FLAGS.put(EMERGENCY_DIAL_SHORTCUTS, "true");
         DEFAULT_FLAGS.put("settings_network_and_internet_v2", "false");
         DEFAULT_FLAGS.put(SAFETY_HUB, "false");
         DEFAULT_FLAGS.put(SCREENRECORD_LONG_PRESS, "false");
diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java
index 717a858..57d55bf 100644
--- a/core/java/android/util/TimeUtils.java
+++ b/core/java/android/util/TimeUtils.java
@@ -21,10 +21,10 @@
 import android.annotation.UnsupportedAppUsage;
 import android.os.SystemClock;
 
-import libcore.util.CountryTimeZones;
-import libcore.util.CountryTimeZones.TimeZoneMapping;
-import libcore.util.TimeZoneFinder;
-import libcore.util.ZoneInfoDB;
+import libcore.timezone.CountryTimeZones;
+import libcore.timezone.CountryTimeZones.TimeZoneMapping;
+import libcore.timezone.TimeZoneFinder;
+import libcore.timezone.ZoneInfoDB;
 
 import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
diff --git a/core/java/android/view/GestureDetector.java b/core/java/android/view/GestureDetector.java
index 3ee5f1f..33b3ff4f 100644
--- a/core/java/android/view/GestureDetector.java
+++ b/core/java/android/view/GestureDetector.java
@@ -18,6 +18,7 @@
 
 import android.annotation.UnsupportedAppUsage;
 import android.content.Context;
+import android.os.Build;
 import android.os.Handler;
 import android.os.Message;
 
@@ -225,7 +226,7 @@
     private int mMinimumFlingVelocity;
     private int mMaximumFlingVelocity;
 
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static final int LONGPRESS_TIMEOUT = ViewConfiguration.getLongPressTimeout();
     private static final int TAP_TIMEOUT = ViewConfiguration.getTapTimeout();
     private static final int DOUBLE_TAP_TIMEOUT = ViewConfiguration.getDoubleTapTimeout();
@@ -592,8 +593,8 @@
 
                 if (mIsLongpressEnabled) {
                     mHandler.removeMessages(LONG_PRESS);
-                    mHandler.sendEmptyMessageAtTime(LONG_PRESS,
-                            mCurrentDownEvent.getDownTime() + LONGPRESS_TIMEOUT);
+                    mHandler.sendEmptyMessageAtTime(LONG_PRESS, mCurrentDownEvent.getDownTime()
+                            + ViewConfiguration.getLongPressTimeout());
                 }
                 mHandler.sendEmptyMessageAtTime(SHOW_PRESS,
                         mCurrentDownEvent.getDownTime() + TAP_TIMEOUT);
diff --git a/core/java/android/view/IWindow.aidl b/core/java/android/view/IWindow.aidl
index 4b8b7f3..5e6d3d1 100644
--- a/core/java/android/view/IWindow.aidl
+++ b/core/java/android/view/IWindow.aidl
@@ -24,6 +24,8 @@
 import android.view.KeyEvent;
 import android.view.MotionEvent;
 import android.view.DisplayCutout;
+import android.view.InsetsState;
+import android.view.InsetsSourceControl;
 
 import com.android.internal.os.IResultReceiver;
 import android.util.MergedConfiguration;
@@ -53,6 +55,17 @@
             in MergedConfiguration newMergedConfiguration, in Rect backDropFrame,
             boolean forceLayout, boolean alwaysConsumeNavBar, int displayId,
             in DisplayCutout.ParcelableWrapper displayCutout);
+
+    /**
+     * Called when the window insets configuration has changed.
+     */
+    void insetsChanged(in InsetsState insetsState);
+
+    /**
+     * Called when this window retrieved control over a specified set of inset sources.
+     */
+    void insetsControlChanged(in InsetsState insetsState, in InsetsSourceControl[] activeControls);
+
     void moved(int newX, int newY);
     void dispatchAppVisibility(boolean visible);
     void dispatchGetNewSurface();
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index c836c9e..c4be0e5 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -96,8 +96,9 @@
      */
     void overridePendingAppTransitionMultiThumbFuture(
             IAppTransitionAnimationSpecsFuture specsFuture, IRemoteCallback startedCallback,
-            boolean scaleUp);
-    void overridePendingAppTransitionRemote(in RemoteAnimationAdapter remoteAnimationAdapter);
+            boolean scaleUp, int displayId);
+    void overridePendingAppTransitionRemote(in RemoteAnimationAdapter remoteAnimationAdapter,
+            int displayId);
     void executeAppTransition();
 
     /**
@@ -271,7 +272,7 @@
     /**
      * Called by the status bar to notify Views of changes to System UI visiblity.
      */
-    oneway void statusBarVisibilityChanged(int visibility);
+    oneway void statusBarVisibilityChanged(int displayId, int visibility);
 
     /**
      * Called by System UI to notify of changes to the visibility of Recents.
@@ -294,14 +295,16 @@
     void setNavBarVirtualKeyHapticFeedbackEnabled(boolean enabled);
 
     /**
-     * Device has a software navigation bar (separate from the status bar).
+     * Device has a software navigation bar (separate from the status bar) on specific display.
+     *
+     * @param displayId the id of display to check if there is a software navigation bar.
      */
-    boolean hasNavigationBar();
+    boolean hasNavigationBar(int displayId);
 
     /**
      * Get the position of the nav bar
      */
-    int getNavBarPosition();
+    int getNavBarPosition(int displayId);
 
     /**
      * Lock the device immediately with the specified options (can be null).
@@ -548,4 +551,16 @@
      * @see KeyguardManager#isDeviceLocked()
      */
     void setShouldShowIme(int displayId, boolean shouldShow);
+
+     /**
+     * Reparent the top layers for a display to the requested surfaceControl. The display that
+     * is going to be re-parented (the displayId passed in) needs to have been created by the same
+     * process that is requesting the re-parent. This is to ensure clients can't just re-parent
+     * display content info to any SurfaceControl, as this would be a security issue.
+     *
+     * @param displayId The id of the display.
+     * @param surfaceControlHandle The SurfaceControl handle that the top level layers for the
+     *        display should be re-parented to.
+     */
+    void reparentDisplayContent(int displayId, in IBinder surfaceControlHandle);
 }
diff --git a/core/java/android/view/IWindowSession.aidl b/core/java/android/view/IWindowSession.aidl
index bedfa9f..9762586 100644
--- a/core/java/android/view/IWindowSession.aidl
+++ b/core/java/android/view/IWindowSession.aidl
@@ -28,6 +28,7 @@
 import android.view.IWindowId;
 import android.view.MotionEvent;
 import android.view.WindowManager;
+import android.view.InsetsState;
 import android.view.Surface;
 import android.view.SurfaceControl;
 
@@ -40,10 +41,11 @@
     int addToDisplay(IWindow window, int seq, in WindowManager.LayoutParams attrs,
             in int viewVisibility, in int layerStackId, out Rect outFrame,
             out Rect outContentInsets, out Rect outStableInsets, out Rect outOutsets,
-            out DisplayCutout.ParcelableWrapper displayCutout, out InputChannel outInputChannel);
+            out DisplayCutout.ParcelableWrapper displayCutout, out InputChannel outInputChannel,
+            out InsetsState insetsState);
     int addToDisplayWithoutInputChannel(IWindow window, int seq, in WindowManager.LayoutParams attrs,
             in int viewVisibility, in int layerStackId, out Rect outContentInsets,
-            out Rect outStableInsets);
+            out Rect outStableInsets, out InsetsState insetsState);
     void remove(IWindow window);
 
     /**
@@ -86,6 +88,7 @@
      * config for window, if it is now becoming visible and the merged configuration has changed
      * since it was last displayed.
      * @param outSurface Object in which is placed the new display surface.
+     * @param insetsState The current insets state in the system.
      *
      * @return int Result flags: {@link WindowManagerGlobal#RELAYOUT_SHOW_FOCUS},
      * {@link WindowManagerGlobal#RELAYOUT_FIRST_TIME}.
@@ -96,7 +99,8 @@
             out Rect outContentInsets, out Rect outVisibleInsets, out Rect outStableInsets,
             out Rect outOutsets, out Rect outBackdropFrame,
             out DisplayCutout.ParcelableWrapper displayCutout,
-            out MergedConfiguration outMergedConfiguration, out Surface outSurface);
+            out MergedConfiguration outMergedConfiguration, out Surface outSurface,
+            out InsetsState insetsState);
 
     /*
      * Notify the window manager that an application is relaunching and
diff --git a/core/java/android/view/InputApplicationHandle.java b/core/java/android/view/InputApplicationHandle.java
index dc1e505..5f6bc23 100644
--- a/core/java/android/view/InputApplicationHandle.java
+++ b/core/java/android/view/InputApplicationHandle.java
@@ -16,6 +16,8 @@
 
 package android.view;
 
+import android.os.IBinder;
+
 /**
  * Functions as a handle for an application that can receive input.
  * Enables the native input dispatcher to refer indirectly to the window manager's
@@ -28,19 +30,18 @@
     @SuppressWarnings("unused")
     private long ptr;
 
-    // The window manager's application window token.
-    public final Object appWindowToken;
-
     // Application name.
     public String name;
 
     // Dispatching timeout.
     public long dispatchingTimeoutNanos;
 
+    public IBinder token;
+
     private native void nativeDispose();
 
-    public InputApplicationHandle(Object appWindowToken) {
-        this.appWindowToken = appWindowToken;
+    public InputApplicationHandle(IBinder token) {
+        this.token = token;
     }
 
     @Override
diff --git a/core/java/android/view/InputWindowHandle.java b/core/java/android/view/InputWindowHandle.java
index 621ee89..92e0009 100644
--- a/core/java/android/view/InputWindowHandle.java
+++ b/core/java/android/view/InputWindowHandle.java
@@ -17,6 +17,7 @@
 package android.view;
 
 import android.graphics.Region;
+import android.os.IBinder;
 import android.view.IWindow;
 import android.view.InputChannel;
 
@@ -37,8 +38,8 @@
     // The client window.
     public final IWindow clientWindow;
 
-    // The input channel associated with the window.
-    public InputChannel inputChannel;
+    // The token assosciated with the window.
+    public IBinder token;
 
     // The window name.
     public String name;
@@ -56,6 +57,8 @@
     public int frameRight;
     public int frameBottom;
 
+    public int surfaceInset;
+
     // Global scaling factor applied to touch events when they are dispatched
     // to the window
     public float scaleFactor;
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
new file mode 100644
index 0000000..ba5340c
--- /dev/null
+++ b/core/java/android/view/InsetsController.java
@@ -0,0 +1,123 @@
+/*
+ * 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.view;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.graphics.Rect;
+import android.util.ArraySet;
+import android.util.SparseArray;
+import android.view.SurfaceControl.Transaction;
+import android.view.WindowInsets.Type.InsetType;
+import android.view.InsetsState.InternalInsetType;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.io.PrintWriter;
+
+/**
+ * Implements {@link WindowInsetsController} on the client.
+ * @hide
+ */
+public class InsetsController implements WindowInsetsController {
+
+    private final InsetsState mState = new InsetsState();
+    private final Rect mFrame = new Rect();
+    private final SparseArray<InsetsSourceConsumer> mSourceConsumers = new SparseArray<>();
+
+    private final SparseArray<InsetsSourceControl> mTmpControlArray = new SparseArray<>();
+
+    void onFrameChanged(Rect frame) {
+        mFrame.set(frame);
+    }
+
+    public InsetsState getState() {
+        return mState;
+    }
+
+    public void setState(InsetsState state) {
+        mState.set(state);
+    }
+
+    /**
+     * @see InsetsState#calculateInsets
+     */
+    WindowInsets calculateInsets(boolean isScreenRound,
+            boolean alwaysConsumeNavBar, DisplayCutout cutout) {
+        return mState.calculateInsets(mFrame, isScreenRound, alwaysConsumeNavBar, cutout);
+    }
+
+    /**
+     * Called when the server has dispatched us a new set of inset controls.
+     */
+    public void onControlsChanged(InsetsSourceControl[] activeControls) {
+        if (activeControls != null) {
+            for (InsetsSourceControl activeControl : activeControls) {
+                mTmpControlArray.put(activeControl.getType(), activeControl);
+            }
+        }
+
+        // Ensure to update all existing source consumers
+        for (int i = mSourceConsumers.size() - 1; i >= 0; i--) {
+            final InsetsSourceConsumer consumer = mSourceConsumers.valueAt(i);
+            final InsetsSourceControl control = mTmpControlArray.get(consumer.getType());
+
+            // control may be null, but we still need to update the control to null if it got
+            // revoked.
+            consumer.setControl(control);
+        }
+
+        // Ensure to create source consumers if not available yet.
+        for (int i = mTmpControlArray.size() - 1; i >= 0; i--) {
+            final InsetsSourceControl control = mTmpControlArray.valueAt(i);
+            getSourceConsumer(control.getType()).setControl(control);
+        }
+        mTmpControlArray.clear();
+    }
+
+    @Override
+    public void show(@InsetType int types) {
+        final ArraySet<Integer> internalTypes = InsetsState.toInternalType(types);
+        for (int i = internalTypes.size() - 1; i >= 0; i--) {
+            getSourceConsumer(internalTypes.valueAt(i)).show();
+        }
+    }
+
+    @Override
+    public void hide(@InsetType int types) {
+        final ArraySet<Integer> internalTypes = InsetsState.toInternalType(types);
+        for (int i = internalTypes.size() - 1; i >= 0; i--) {
+            getSourceConsumer(internalTypes.valueAt(i)).hide();
+        }
+    }
+
+    @VisibleForTesting
+    public @NonNull InsetsSourceConsumer getSourceConsumer(@InternalInsetType int type) {
+        InsetsSourceConsumer controller = mSourceConsumers.get(type);
+        if (controller != null) {
+            return controller;
+        }
+        controller = new InsetsSourceConsumer(type, mState, Transaction::new);
+        mSourceConsumers.put(type, controller);
+        return controller;
+    }
+
+    void dump(String prefix, PrintWriter pw) {
+        pw.println(prefix); pw.println("InsetsController:");
+        mState.dump(prefix + "  ", pw);
+    }
+}
diff --git a/core/java/android/view/InsetsSource.java b/core/java/android/view/InsetsSource.java
new file mode 100644
index 0000000..0cb8ad7
--- /dev/null
+++ b/core/java/android/view/InsetsSource.java
@@ -0,0 +1,159 @@
+/*
+ * 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.view;
+
+import android.graphics.Insets;
+import android.graphics.Rect;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.view.InsetsState.InternalInsetType;
+
+import java.io.PrintWriter;
+
+/**
+ * Represents the state of a single window generating insets for clients.
+ * @hide
+ */
+public class InsetsSource implements Parcelable {
+
+    private final @InternalInsetType int mType;
+
+    /** Frame of the source in screen coordinate space */
+    private final Rect mFrame;
+    private boolean mVisible;
+
+    private final Rect mTmpFrame = new Rect();
+
+    public InsetsSource(@InternalInsetType int type) {
+        mType = type;
+        mFrame = new Rect();
+    }
+
+    public InsetsSource(InsetsSource other) {
+        mType = other.mType;
+        mFrame = new Rect(other.mFrame);
+        mVisible = other.mVisible;
+    }
+
+    public void setFrame(Rect frame) {
+        mFrame.set(frame);
+    }
+
+    public void setVisible(boolean visible) {
+        mVisible = visible;
+    }
+
+    public @InternalInsetType int getType() {
+        return mType;
+    }
+
+    public Rect getFrame() {
+        return mFrame;
+    }
+
+    /**
+     * Calculates the insets this source will cause to a client window.
+     *
+     * @param relativeFrame The frame to calculate the insets relative to.
+     * @param ignoreVisibility If true, always reports back insets even if source isn't visible.
+     * @return The resulting insets.
+     */
+    public Insets calculateInsets(Rect relativeFrame, boolean ignoreVisibility) {
+        if (!ignoreVisibility && !mVisible) {
+            return Insets.NONE;
+        }
+        if (!mTmpFrame.setIntersect(mFrame, relativeFrame)) {
+            return Insets.NONE;
+        }
+
+        // Intersecting at top/bottom
+        if (mTmpFrame.width() == relativeFrame.width()) {
+            if (mTmpFrame.top == relativeFrame.top) {
+                return Insets.of(0, mTmpFrame.height(), 0, 0);
+            } else {
+                return Insets.of(0, 0, 0, mTmpFrame.height());
+            }
+        }
+        // Intersecting at left/right
+        else if (mTmpFrame.height() == relativeFrame.height()) {
+            if (mTmpFrame.left == relativeFrame.left) {
+                return Insets.of(mTmpFrame.width(), 0, 0, 0);
+            } else {
+                return Insets.of(0, 0, mTmpFrame.width(), 0);
+            }
+        } else {
+            return Insets.NONE;
+        }
+    }
+
+    public void dump(String prefix, PrintWriter pw) {
+        pw.print(prefix);
+        pw.print("InsetsSource type="); pw.print(InsetsState.typeToString(mType));
+        pw.print(" frame="); pw.print(mFrame.toShortString());
+        pw.print(" visible="); pw.print(mVisible);
+        pw.println();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        InsetsSource that = (InsetsSource) o;
+
+        if (mType != that.mType) return false;
+        if (mVisible != that.mVisible) return false;
+        return mFrame.equals(that.mFrame);
+    }
+
+    @Override
+    public int hashCode() {
+        int result = mType;
+        result = 31 * result + mFrame.hashCode();
+        result = 31 * result + (mVisible ? 1 : 0);
+        return result;
+    }
+
+    public InsetsSource(Parcel in) {
+        mType = in.readInt();
+        mFrame = in.readParcelable(null /* loader */);
+        mVisible = in.readBoolean();
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(mType);
+        dest.writeParcelable(mFrame, 0 /* flags*/);
+        dest.writeBoolean(mVisible);
+    }
+
+    public static final Creator<InsetsSource> CREATOR = new Creator<InsetsSource>() {
+
+        public InsetsSource createFromParcel(Parcel in) {
+            return new InsetsSource(in);
+        }
+
+        public InsetsSource[] newArray(int size) {
+            return new InsetsSource[size];
+        }
+    };
+}
diff --git a/core/java/android/view/InsetsSourceConsumer.java b/core/java/android/view/InsetsSourceConsumer.java
new file mode 100644
index 0000000..e74aa8d
--- /dev/null
+++ b/core/java/android/view/InsetsSourceConsumer.java
@@ -0,0 +1,95 @@
+/*
+ * 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.view;
+
+import android.annotation.Nullable;
+import android.view.SurfaceControl.Transaction;
+import android.view.InsetsState.InternalInsetType;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.util.function.Supplier;
+
+/**
+ * Controls the visibility and animations of a single window insets source.
+ * @hide
+ */
+public class InsetsSourceConsumer {
+
+    private final Supplier<Transaction> mTransactionSupplier;
+    private final @InternalInsetType int mType;
+    private final InsetsState mState;
+    private @Nullable InsetsSourceControl mControl;
+    private boolean mHidden;
+
+    public InsetsSourceConsumer(@InternalInsetType int type, InsetsState state,
+            Supplier<Transaction> transactionSupplier) {
+        mType = type;
+        mState = state;
+        mTransactionSupplier = transactionSupplier;
+    }
+
+    public void setControl(@Nullable InsetsSourceControl control) {
+        if (mControl == control) {
+            return;
+        }
+        mControl = control;
+        applyHiddenToControl();
+    }
+
+    @VisibleForTesting
+    public InsetsSourceControl getControl() {
+        return mControl;
+    }
+
+    int getType() {
+        return mType;
+    }
+
+    @VisibleForTesting
+    public void show() {
+        setHidden(false);
+    }
+
+    @VisibleForTesting
+    public void hide() {
+        setHidden(true);
+    }
+
+    private void setHidden(boolean hidden) {
+        if (mHidden == hidden) {
+            return;
+        }
+        mHidden = hidden;
+        applyHiddenToControl();
+    }
+
+    private void applyHiddenToControl() {
+        if (mControl == null) {
+            return;
+        }
+
+        // TODO: Animation
+        final Transaction t = mTransactionSupplier.get();
+        if (mHidden) {
+            t.hide(mControl.getLeash());
+        } else {
+            t.show(mControl.getLeash());
+        }
+        t.apply();
+    }
+}
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/core/java/android/view/InsetsSourceControl.aidl
similarity index 69%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
copy to core/java/android/view/InsetsSourceControl.aidl
index 5ca9d15..755bf45 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/core/java/android/view/InsetsSourceControl.aidl
@@ -1,5 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
 /**
  * Copyright (c) 2018, The Android Open Source Project
  *
@@ -15,8 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
-</resources>
\ No newline at end of file
+
+package android.view;
+
+parcelable InsetsSourceControl;
diff --git a/core/java/android/view/InsetsSourceControl.java b/core/java/android/view/InsetsSourceControl.java
new file mode 100644
index 0000000..9383e6c
--- /dev/null
+++ b/core/java/android/view/InsetsSourceControl.java
@@ -0,0 +1,72 @@
+/*
+ * 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.view;
+
+import android.graphics.Point;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.view.InsetsState.InternalInsetType;
+
+/**
+ * Represents a parcelable object to allow controlling a single {@link InsetsSource}.
+ * @hide
+ */
+public class InsetsSourceControl implements Parcelable {
+
+    private final @InternalInsetType int mType;
+    private final SurfaceControl mLeash;
+
+    public InsetsSourceControl(@InternalInsetType int type, SurfaceControl leash) {
+        mType = type;
+        mLeash = leash;
+    }
+
+    public int getType() {
+        return mType;
+    }
+
+    public SurfaceControl getLeash() {
+        return mLeash;
+    }
+
+    public InsetsSourceControl(Parcel in) {
+        mType = in.readInt();
+        mLeash = in.readParcelable(null /* loader */);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(mType);
+        dest.writeParcelable(mLeash, 0 /* flags*/);
+    }
+
+    public static final Creator<InsetsSourceControl> CREATOR
+            = new Creator<InsetsSourceControl>() {
+        public InsetsSourceControl createFromParcel(Parcel in) {
+            return new InsetsSourceControl(in);
+        }
+
+        public InsetsSourceControl[] newArray(int size) {
+            return new InsetsSourceControl[size];
+        }
+    };
+}
diff --git a/media/java/android/media/update/ProviderCreator.java b/core/java/android/view/InsetsState.aidl
similarity index 67%
copy from media/java/android/media/update/ProviderCreator.java
copy to core/java/android/view/InsetsState.aidl
index f5f3e47..d02ddd1 100644
--- a/media/java/android/media/update/ProviderCreator.java
+++ b/core/java/android/view/InsetsState.aidl
@@ -1,11 +1,11 @@
-/*
- * Copyright 2018 The Android Open Source Project
+/**
+ * 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
+ *     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,
@@ -14,10 +14,6 @@
  * limitations under the License.
  */
 
-package android.media.update;
+package android.view;
 
-/** @hide */
-@FunctionalInterface
-public interface ProviderCreator<T, U> {
-    U createProvider(T instance);
-}
+parcelable InsetsState;
diff --git a/core/java/android/view/InsetsState.java b/core/java/android/view/InsetsState.java
new file mode 100644
index 0000000..689b14f
--- /dev/null
+++ b/core/java/android/view/InsetsState.java
@@ -0,0 +1,259 @@
+/*
+ * 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.view;
+
+import android.annotation.IntDef;
+import android.graphics.Insets;
+import android.graphics.Rect;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import android.view.WindowInsets.Type;
+import android.view.WindowInsets.Type.InsetType;
+
+import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Holder for state of system windows that cause window insets for all other windows in the system.
+ * @hide
+ */
+public class InsetsState implements Parcelable {
+
+    /**
+     * Internal representation of inset source types. This is different from the public API in
+     * {@link WindowInsets.Type} as one type from the public API might indicate multiple windows
+     * at the same time.
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = "TYPE", value = {
+            TYPE_TOP_BAR,
+            TYPE_SIDE_BAR_1,
+            TYPE_SIDE_BAR_2,
+            TYPE_SIDE_BAR_3,
+            TYPE_IME
+    })
+    public @interface InternalInsetType {}
+
+    static final int FIRST_TYPE = 0;
+
+    /** Top bar. Can be status bar or caption in freeform windowing mode. */
+    public static final int TYPE_TOP_BAR = FIRST_TYPE;
+
+    /**
+     * Up to 3 side bars that appear on left/right/bottom. On phones there is only one side bar
+     * (the navigation bar, see {@link #TYPE_NAVIGATION_BAR}), but other form factors might have
+     * multiple, like Android Auto.
+     */
+    public static final int TYPE_SIDE_BAR_1 = 1;
+    public static final int TYPE_SIDE_BAR_2 = 2;
+    public static final int TYPE_SIDE_BAR_3 = 3;
+
+    /** Input method window. */
+    public static final int TYPE_IME = 4;
+    static final int LAST_TYPE = TYPE_IME;
+
+    // Derived types
+
+    /** First side bar is navigation bar. */
+    public static final int TYPE_NAVIGATION_BAR = TYPE_SIDE_BAR_1;
+
+    /** A shelf is the same as the navigation bar. */
+    public static final int TYPE_SHELF = TYPE_NAVIGATION_BAR;
+
+    private final ArrayMap<Integer, InsetsSource> mSources = new ArrayMap<>();
+
+    public InsetsState() {
+    }
+
+    /**
+     * Calculates {@link WindowInsets} based on the current source configuration.
+     *
+     * @param frame The frame to calculate the insets relative to.
+     * @return The calculated insets.
+     */
+    public WindowInsets calculateInsets(Rect frame, boolean isScreenRound,
+            boolean alwaysConsumeNavBar, DisplayCutout cutout) {
+        Insets systemInsets = Insets.NONE;
+        Insets maxInsets = Insets.NONE;
+        final Rect relativeFrame = new Rect(frame);
+        final Rect relativeFrameMax = new Rect(frame);
+        for (int type = FIRST_TYPE; type <= LAST_TYPE; type++) {
+            InsetsSource source = mSources.get(type);
+            if (source == null) {
+                continue;
+            }
+            systemInsets = processSource(source, systemInsets, relativeFrame,
+                    false /* ignoreVisibility */);
+
+            // IME won't be reported in max insets as the size depends on the EditorInfo of the IME
+            // target.
+            if (source.getType() != TYPE_IME) {
+                maxInsets = processSource(source, maxInsets, relativeFrameMax,
+                        true /* ignoreVisibility */);
+            }
+        }
+        return new WindowInsets(new Rect(systemInsets), null, new Rect(maxInsets), isScreenRound,
+                alwaysConsumeNavBar, cutout);
+    }
+
+    private Insets processSource(InsetsSource source, Insets insets, Rect relativeFrame,
+            boolean ignoreVisibility) {
+        Insets currentInsets = source.calculateInsets(relativeFrame, ignoreVisibility);
+        insets = Insets.add(currentInsets, insets);
+        relativeFrame.inset(insets);
+        return insets;
+    }
+
+    public InsetsSource getSource(@InternalInsetType int type) {
+        return mSources.computeIfAbsent(type, InsetsSource::new);
+    }
+
+    /**
+     * Modifies the state of this class to exclude a certain type to make it ready for dispatching
+     * to the client.
+     *
+     * @param type The {@link InternalInsetType} of the source to remove
+     */
+    public void removeSource(int type) {
+        mSources.remove(type);
+    }
+
+    public void set(InsetsState other) {
+        set(other, false /* copySources */);
+    }
+
+    public void set(InsetsState other, boolean copySources) {
+        mSources.clear();
+        if (copySources) {
+            for (int i = 0; i < other.mSources.size(); i++) {
+                InsetsSource source = other.mSources.valueAt(i);
+                mSources.put(source.getType(), new InsetsSource(source));
+            }
+        } else {
+            mSources.putAll(other.mSources);
+        }
+    }
+
+    public static @InternalInsetType ArraySet<Integer> toInternalType(@InsetType int insetTypes) {
+        final ArraySet<Integer> result = new ArraySet<>();
+        if ((insetTypes & Type.TOP_BAR) != 0) {
+            result.add(TYPE_TOP_BAR);
+        }
+        if ((insetTypes & Type.SIDE_BARS) != 0) {
+            result.add(TYPE_SIDE_BAR_1);
+            result.add(TYPE_SIDE_BAR_2);
+            result.add(TYPE_SIDE_BAR_3);
+        }
+        if ((insetTypes & Type.IME) != 0) {
+            result.add(TYPE_IME);
+        }
+        return result;
+    }
+
+    public void dump(String prefix, PrintWriter pw) {
+        pw.println(prefix + "InsetsState");
+        for (int i = mSources.size() - 1; i >= 0; i--) {
+            mSources.valueAt(i).dump(prefix + "  ", pw);
+        }
+    }
+
+    static String typeToString(int type) {
+        switch (type) {
+            case TYPE_TOP_BAR:
+                return "TYPE_TOP_BAR";
+            case TYPE_SIDE_BAR_1:
+                return "TYPE_SIDE_BAR_1";
+            case TYPE_SIDE_BAR_2:
+                return "TYPE_SIDE_BAR_2";
+            case TYPE_SIDE_BAR_3:
+                return "TYPE_SIDE_BAR_3";
+            case TYPE_IME:
+                return "TYPE_IME";
+            default:
+                return "TYPE_UNKNOWN";
+        }
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) { return true; }
+        if (o == null || getClass() != o.getClass()) { return false; }
+
+        InsetsState state = (InsetsState) o;
+
+        if (mSources.size() != state.mSources.size()) {
+            return false;
+        }
+        for (int i = mSources.size() - 1; i >= 0; i--) {
+            InsetsSource source = mSources.valueAt(i);
+            InsetsSource otherSource = state.mSources.get(source.getType());
+            if (otherSource == null) {
+                return false;
+            }
+            if (!otherSource.equals(source)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return mSources.hashCode();
+    }
+
+    public InsetsState(Parcel in) {
+        readFromParcel(in);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(mSources.size());
+        for (int i = 0; i < mSources.size(); i++) {
+            dest.writeParcelable(mSources.valueAt(i), 0 /* flags */);
+        }
+    }
+
+    public static final Creator<InsetsState> CREATOR = new Creator<InsetsState>() {
+
+        public InsetsState createFromParcel(Parcel in) {
+            return new InsetsState(in);
+        }
+
+        public InsetsState[] newArray(int size) {
+            return new InsetsState[size];
+        }
+    };
+
+    public void readFromParcel(Parcel in) {
+        mSources.clear();
+        final int size = in.readInt();
+        for (int i = 0; i < size; i++) {
+            final InsetsSource source = in.readParcelable(null /* loader */);
+            mSources.put(source.getType(), source);
+        }
+    }
+}
+
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index 0739516..9cced4e 100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -1803,6 +1803,28 @@
     }
 
     /**
+     * Returns whether this key will be sent to the
+     * {@link android.media.session.MediaSession.Callback} if not handled.
+     */
+    public static final boolean isMediaSessionKey(int keyCode) {
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_MEDIA_PLAY:
+            case KeyEvent.KEYCODE_MEDIA_PAUSE:
+            case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+            case KeyEvent.KEYCODE_MUTE:
+            case KeyEvent.KEYCODE_HEADSETHOOK:
+            case KeyEvent.KEYCODE_MEDIA_STOP:
+            case KeyEvent.KEYCODE_MEDIA_NEXT:
+            case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
+            case KeyEvent.KEYCODE_MEDIA_REWIND:
+            case KeyEvent.KEYCODE_MEDIA_RECORD:
+            case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
+                return true;
+        }
+        return false;
+    }
+
+    /**
      * Returns true if the specified keycode is a gamepad button.
      * @return True if the keycode is a gamepad button, such as {@link #KEYCODE_BUTTON_A}.
      */
@@ -1861,31 +1883,6 @@
         }
     }
 
-    /**
-     * Whether this key is a media key, which can be send to apps that are
-     * interested in media key events.
-     *
-     * @hide
-     */
-    public static final boolean isMediaKey(int keyCode) {
-        switch (keyCode) {
-            case KeyEvent.KEYCODE_MEDIA_PLAY:
-            case KeyEvent.KEYCODE_MEDIA_PAUSE:
-            case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
-            case KeyEvent.KEYCODE_MUTE:
-            case KeyEvent.KEYCODE_HEADSETHOOK:
-            case KeyEvent.KEYCODE_MEDIA_STOP:
-            case KeyEvent.KEYCODE_MEDIA_NEXT:
-            case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
-            case KeyEvent.KEYCODE_MEDIA_REWIND:
-            case KeyEvent.KEYCODE_MEDIA_RECORD:
-            case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
-                return true;
-        }
-        return false;
-    }
-
-
     /** Is this a system key? System keys can not be used for menu shortcuts.
      * @hide
      */
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index a7a5024..ab01085 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -104,6 +104,8 @@
             int flags, int mask);
     private static native void nativeSetWindowCrop(long transactionObj, long nativeObject,
             int l, int t, int r, int b);
+    private static native void nativeSetCornerRadius(long transactionObj, long nativeObject,
+            float cornerRadius);
     private static native void nativeSetLayerStack(long transactionObj, long nativeObject,
             int layerStack);
 
@@ -375,9 +377,13 @@
          * Construct a new {@link SurfaceControl} with the set parameters.
          */
         public SurfaceControl build() {
-            if (mWidth <= 0 || mHeight <= 0) {
+            if (mWidth < 0 || mHeight < 0) {
                 throw new IllegalArgumentException(
-                        "width and height must be set");
+                        "width and height must be positive or unset");
+            }
+            if ((mWidth > 0 || mHeight > 0) && (isColorLayerSet() || isContainerLayerSet())) {
+                throw new IllegalArgumentException(
+                        "Only buffer layers can set a valid buffer size.");
             }
             return new SurfaceControl(mSession, mName, mWidth, mHeight, mFormat,
                     mFlags, mParent, mWindowType, mOwnerUid);
@@ -399,8 +405,8 @@
          * @param width The buffer width in pixels.
          * @param height The buffer height in pixels.
          */
-        public Builder setSize(int width, int height) {
-            if (width <= 0 || height <= 0) {
+        public Builder setBufferSize(int width, int height) {
+            if (width < 0 || height < 0) {
                 throw new IllegalArgumentException(
                         "width and height must be positive");
             }
@@ -533,6 +539,10 @@
             return this;
         }
 
+        private boolean isColorLayerSet() {
+            return  (mFlags & FX_SURFACE_DIM) == FX_SURFACE_DIM;
+        }
+
         /**
          * Indicates whether a 'ContainerLayer' is to be constructed.
          *
@@ -550,6 +560,10 @@
             return this;
         }
 
+        private boolean isContainerLayerSet() {
+            return  (mFlags & FX_SURFACE_CONTAINER) == FX_SURFACE_CONTAINER;
+        }
+
         /**
          * Set 'Surface creation flags' such as {@link HIDDEN}, {@link SECURE}.
          *
@@ -869,10 +883,10 @@
         }
     }
 
-    public void setSize(int w, int h) {
+    public void setBufferSize(int w, int h) {
         checkNotReleased();
         synchronized(SurfaceControl.class) {
-            sGlobalTransaction.setSize(this, w, h);
+            sGlobalTransaction.setBufferSize(this, w, h);
         }
     }
 
@@ -994,6 +1008,18 @@
         }
     }
 
+    /**
+     * Sets the corner radius of a {@link SurfaceControl}.
+     *
+     * @param cornerRadius Corner radius in pixels.
+     */
+    public void setCornerRadius(float cornerRadius) {
+        checkNotReleased();
+        synchronized (SurfaceControl.class) {
+            sGlobalTransaction.setCornerRadius(this, cornerRadius);
+        }
+    }
+
     public void setLayerStack(int layerStack) {
         checkNotReleased();
         synchronized(SurfaceControl.class) {
@@ -1427,7 +1453,7 @@
         }
 
         @UnsupportedAppUsage
-        public Transaction setSize(SurfaceControl sc, int w, int h) {
+        public Transaction setBufferSize(SurfaceControl sc, int w, int h) {
             sc.checkNotReleased();
             mResizedSurfaces.put(sc, new Point(w, h));
             nativeSetSize(mNativeObject, sc.mNativeObject, w, h);
@@ -1517,6 +1543,20 @@
             return this;
         }
 
+        /**
+         * Sets the corner radius of a {@link SurfaceControl}.
+         * @param sc SurfaceControl
+         * @param cornerRadius Corner radius in pixels.
+         * @return Itself.
+         */
+        @UnsupportedAppUsage
+        public Transaction setCornerRadius(SurfaceControl sc, float cornerRadius) {
+            sc.checkNotReleased();
+            nativeSetCornerRadius(mNativeObject, sc.mNativeObject, cornerRadius);
+
+            return this;
+        }
+
         @UnsupportedAppUsage
         public Transaction setLayerStack(SurfaceControl sc, int layerStack) {
             sc.checkNotReleased();
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index 2b68ec0..797d1c5 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -557,7 +557,7 @@
                             name,
                             (mSurfaceFlags & SurfaceControl.OPAQUE) != 0,
                             new SurfaceControl.Builder(mSurfaceSession)
-                                    .setSize(mSurfaceWidth, mSurfaceHeight)
+                                    .setBufferSize(mSurfaceWidth, mSurfaceHeight)
                                     .setFormat(mFormat)
                                     .setFlags(mSurfaceFlags));
                 } else if (mSurfaceControl == null) {
@@ -595,10 +595,14 @@
                             mSurfaceControl.setMatrix(mScreenRect.width() / (float) mSurfaceWidth,
                                     0.0f, 0.0f,
                                     mScreenRect.height() / (float) mSurfaceHeight);
+                            // Set a window crop when creating the surface or changing its size to
+                            // crop the buffer to the surface size since the buffer producer may
+                            // use SCALING_MODE_SCALE and submit a larger size than the surface
+                            // size.
+                            mSurfaceControl.setWindowCrop(mSurfaceWidth, mSurfaceHeight);
                         }
                         if (sizeChanged && !creating) {
-                            mSurfaceControl.setSize(mSurfaceWidth, mSurfaceHeight);
-                            mSurfaceControl.setWindowCrop(mSurfaceWidth, mSurfaceHeight);
+                            mSurfaceControl.setBufferSize(mSurfaceWidth, mSurfaceHeight);
                         }
                     } finally {
                         SurfaceControl.closeTransaction();
@@ -1122,6 +1126,13 @@
         }
     };
 
+    /**
+     * @hide
+     */
+    public SurfaceControl getSurfaceControl() {
+        return mSurfaceControl;
+    }
+
     class SurfaceControlWithBackground extends SurfaceControl {
         SurfaceControl mBackgroundControl;
         private boolean mOpaque = true;
@@ -1133,6 +1144,8 @@
 
             mBackgroundControl = b.setName("Background for -" + name)
                     .setFormat(OPAQUE)
+                    // Unset the buffer size of the background color layer.
+                    .setBufferSize(0, 0)
                     .setColorLayer(true)
                     .build();
             mOpaque = opaque;
@@ -1158,9 +1171,9 @@
         }
 
         @Override
-        public void setSize(int w, int h) {
-            super.setSize(w, h);
-            mBackgroundControl.setSize(w, h);
+        public void setBufferSize(int w, int h) {
+            super.setBufferSize(w, h);
+            // The background surface is a color layer so we do not set a size.
         }
 
         @Override
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 5f1336f..4b9cbff 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -112,7 +112,7 @@
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputConnection;
 import android.view.inputmethod.InputMethodManager;
-import android.view.intelligence.IntelligenceManager;
+import android.view.intelligence.ContentCaptureManager;
 import android.widget.Checkable;
 import android.widget.FrameLayout;
 import android.widget.ScrollBarDrawable;
@@ -3373,9 +3373,8 @@
      *
      * |-------|-------|-------|-------|
      *                              1111 PFLAG4_IMPORTANT_FOR_CONTENT_CAPTURE_MASK
-     *                             1     PFLAG4_NOTIFIED_CONTENT_CAPTURE_ON_LAYOUT
-     *                            1      PFLAG4_NOTIFIED_CONTENT_CAPTURE_ADDED
-     *                           1       PFLAG4_LAST_CONTENT_CAPTURE_NOTIFICATION_TYPE
+     *                             1     PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED
+     *                            1      PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED
      * |-------|-------|-------|-------|
      */
 
@@ -3396,28 +3395,14 @@
      * Variables used to control when the IntelligenceManager.notifyNodeAdded()/removed() methods
      * should be called.
      *
-     * The idea is to call notifyNodeAdded() after the view is layout and visible, then call
-     * notifyNodeRemoved() when it's gone (without known when it was removed from the parent).
-     *
-     * TODO(b/111276913): the current algortighm could probably be optimized and some of them
-     * removed
+     * The idea is to call notifyAppeared() after the view is layout and visible, then call
+     * notifyDisappeared() when it's gone (without known when it was removed from the parent).
      */
-    private static final int PFLAG4_NOTIFIED_CONTENT_CAPTURE_ON_LAYOUT = 0x10;
-    private static final int PFLAG4_NOTIFIED_CONTENT_CAPTURE_ADDED = 0x20;
-    private static final int PFLAG4_LAST_CONTENT_CAPTURE_NOTIFICATION_TYPE = 0x40;
+    private static final int PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED = 0x10;
+    private static final int PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED = 0x20;
 
     /* End of masks for mPrivateFlags4 */
 
-    private static final int CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED = 1;
-    private static final int CONTENT_CAPTURE_NOTIFICATION_TYPE_DISAPPEARED = 0;
-
-    @IntDef(flag = true, prefix = { "CONTENT_CAPTURE_NOTIFICATION_TYPE_" }, value = {
-            CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED,
-            CONTENT_CAPTURE_NOTIFICATION_TYPE_DISAPPEARED
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface ContentCaptureNotificationType {}
-
     /** @hide */
     protected static final int VIEW_STRUCTURE_FOR_ASSIST = 0;
     /** @hide */
@@ -3993,7 +3978,7 @@
      *
      * @see #getParent()
      */
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     protected ViewParent mParent;
 
     /**
@@ -4174,7 +4159,7 @@
         float mAlpha = 1f;
 
         /**
-         * The opacity of the view as manipulated by the Fade transition. This is a hidden
+         * The opacity of the view as manipulated by the Fade transition. This is a
          * property only used by transitions, which is composited with the other alpha
          * values to calculate the final visual alpha value.
          */
@@ -4199,7 +4184,7 @@
      * {@hide}
      */
     @ViewDebug.ExportedProperty(category = "layout")
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     protected int mLeft;
     /**
      * The distance in pixels from the left edge of this view's parent
@@ -4207,7 +4192,7 @@
      * {@hide}
      */
     @ViewDebug.ExportedProperty(category = "layout")
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     protected int mRight;
     /**
      * The distance in pixels from the top edge of this view's parent
@@ -4215,7 +4200,7 @@
      * {@hide}
      */
     @ViewDebug.ExportedProperty(category = "layout")
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     protected int mTop;
     /**
      * The distance in pixels from the top edge of this view's parent
@@ -4223,7 +4208,7 @@
      * {@hide}
      */
     @ViewDebug.ExportedProperty(category = "layout")
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     protected int mBottom;
 
     /**
@@ -4714,7 +4699,7 @@
      * of this view to at least this amount.
      */
     @ViewDebug.ExportedProperty(category = "measurement")
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private int mMinHeight;
 
     /**
@@ -4722,7 +4707,7 @@
      * of this view to at least this amount.
      */
     @ViewDebug.ExportedProperty(category = "measurement")
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private int mMinWidth;
 
     /**
@@ -8152,6 +8137,9 @@
      * the user, and the activity rendering the view is enabled for Content Capture) is laid out and
      * is visible.
      *
+     * <p>The populated structure is then passed to the service through
+     * {@link ContentCaptureManager#notifyViewAppeared(ViewStructure)}.
+     *
      * <p><b>Note: </b>the following methods of the {@code structure} will be ignored:
      * <ul>
      *   <li>{@link ViewStructure#setChildCount(int)}
@@ -8165,16 +8153,9 @@
      *   <li>{@link ViewStructure#setHtmlInfo(android.view.ViewStructure.HtmlInfo)}
      *   <li>{@link ViewStructure#setDataIsSensitive(boolean)}
      * </ul>
-     *
-     * @return whether the IntelligenceService should be notified that the view was added (through
-     * the {@link IntelligenceManager#notifyViewAppeared(ViewStructure)} method) to the view
-     * hierarchy. Most views should return {@code true} here, but views that contains virtual
-     * hierarchy might opt to return {@code false} and notify the manager independently, as the
-     * virtual views are rendered.
      */
-    public boolean onProvideContentCaptureStructure(@NonNull ViewStructure structure, int flags) {
+    public void onProvideContentCaptureStructure(@NonNull ViewStructure structure, int flags) {
         onProvideStructure(structure, VIEW_STRUCTURE_FOR_CONTENT_CAPTURE, flags);
-        return true;
     }
 
     /** @hide */
@@ -8934,68 +8915,68 @@
     }
 
     /**
-     * Helper used to notify the {@link IntelligenceManager} when the view is removed or
+     * Helper used to notify the {@link ContentCaptureManager} when the view is removed or
      * added, based on whether it's laid out and visible, and without knowing if the parent removed
      * it from the view hierarchy.
+     *
+     * <p>This method is called from many places (visibility changed, view laid out, view attached
+     * or detached to/from window, etc...) and hence must contain the logic to call the manager, as
+     * described below:
+     *
+     * <ol>
+     *   <li>It should only be called when content capture is enabled for the view.
+     *   <li>It must call viewAppeared() before viewDisappeared()
+     *   <li>viewAppearead() can only be called when the view is visible and laidout
+     *   <li>It should not call the same event twice.
+     * </ol>
      */
-    // TODO(b/111276913): make sure the current algorithm covers all cases. For example, it should
-    // probably be called every time notifyEnterOrExitForAutoFillIfNeeded() is called as well.
-    private void notifyNodeAddedOrRemovedForContentCaptureIfNeeded(
-            @ContentCaptureNotificationType int type) {
-        if (type != CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED
-                && type != CONTENT_CAPTURE_NOTIFICATION_TYPE_DISAPPEARED) {
-            // Sanity check so it does not screw up the flags
-            Log.wtf(CONTENT_CAPTURE_LOG_TAG, "notifyNodeAddedOrRemovedForContentCaptureIfNeeded(): "
-                    + "invalid type " + type + " for " + this);
-            return;
-        }
+    private void notifyAppearedOrDisappearedForContentCaptureIfNeeded(boolean appeared) {
+        // First check if context has client, so it saves a service lookup when it doesn't
+        if (!mContext.isContentCaptureSupported()) return;
 
+        // Then check if it's enabled in the context...
+        final ContentCaptureManager cm = mContext.getSystemService(ContentCaptureManager.class);
+        if (cm == null || !cm.isContentCaptureEnabled()) return;
+
+        // ... and finally at the view level
+        // NOTE: isImportantForContentCapture() is more expensive than cm.isContentCaptureEnabled()
         if (!isImportantForContentCapture()) return;
 
-        final IntelligenceManager im = mContext.getSystemService(IntelligenceManager.class);
-        if (im == null || !im.isContentCaptureEnabled()) return;
-
-        // Make sure event is notified just once, and reset the
-        // PFLAG4_LAST_CONTENT_CAPTURE_NOTIFICATION_TYPE flag
-        boolean ignoreNotification = false;
-        if (type == CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED) {
-            if ((mPrivateFlags4 & PFLAG4_LAST_CONTENT_CAPTURE_NOTIFICATION_TYPE)
-                    == CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED) {
-                ignoreNotification = true;
-            } else {
-                mPrivateFlags4 |= PFLAG4_LAST_CONTENT_CAPTURE_NOTIFICATION_TYPE;
+        if (appeared) {
+            if (!isLaidOut() || !isVisibleToUser()
+                    || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) {
+                if (Log.isLoggable(CONTENT_CAPTURE_LOG_TAG, Log.VERBOSE)) {
+                    Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'appeared' on " + this + ": laid="
+                            + isLaidOut() + ", visible=" + isVisibleToUser()
+                            + ": alreadyNotifiedAppeared="
+                            + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0));
+                }
+                return;
             }
+            // All good: notify the manager...
+            final ViewStructure structure = cm.newViewStructure(this);
+            onProvideContentCaptureStructure(structure, /* flags= */ 0);
+            cm.notifyViewAppeared(structure);
+            // ...and set the flags
+            mPrivateFlags4 |= PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED;
+            mPrivateFlags4 &= ~PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED;
         } else {
-            if ((mPrivateFlags4 & PFLAG4_LAST_CONTENT_CAPTURE_NOTIFICATION_TYPE)
-                    == CONTENT_CAPTURE_NOTIFICATION_TYPE_DISAPPEARED) {
-                ignoreNotification = true;
-            } else {
-                mPrivateFlags4 &= ~PFLAG4_LAST_CONTENT_CAPTURE_NOTIFICATION_TYPE;
+            if ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) == 0
+                    || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0) {
+                if (Log.isLoggable(CONTENT_CAPTURE_LOG_TAG, Log.VERBOSE)) {
+                    Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'disappeared' on " + this
+                            + ": notifiedAppeared="
+                            + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0)
+                            + ", alreadyNotifiedDisappeared=" + ((mPrivateFlags4
+                                    & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0));
+                }
+                return;
             }
-        }
-        if (ignoreNotification) {
-            if (Log.isLoggable(CONTENT_CAPTURE_LOG_TAG, Log.VERBOSE)) {
-                // TODO(b/111276913): remove this log statement if the algorithm is not improved
-                // (right now it's called too many times when the activity is stopped and/or views
-                // disappear
-                Log.v(CONTENT_CAPTURE_LOG_TAG, "notifyNodeAddedOrRemovedForContentCaptureIfNeeded("
-                        + type + "): ignoring repeated notification on " + this);
-            }
-            return;
-        }
-
-        if (type == CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED) {
-            final ViewStructure structure = im.newViewStructure(this);
-            boolean notifyMgr = onProvideContentCaptureStructure(structure, /* flags= */ 0);
-            if (notifyMgr) {
-                im.notifyViewAppeared(structure);
-            }
-            mPrivateFlags4 |= PFLAG4_NOTIFIED_CONTENT_CAPTURE_ADDED;
-        } else {
-            if ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_ADDED) == 0) {
-                return; // skip initial notification
-            }
-            im.notifyViewDisappeared(getAutofillId());
+            // All good: notify the manager...
+            cm.notifyViewDisappeared(getAutofillId());
+            // ...and set the flags
+            mPrivateFlags4 |= PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED;
+            mPrivateFlags4 &= ~PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED;
         }
     }
 
@@ -10360,6 +10341,20 @@
     }
 
     /**
+     * Retrieves the single {@link WindowInsetsController} of the window this view is attached to.
+     *
+     * @return The {@link WindowInsetsController} or {@code null} if the view isn't attached to a
+     *         a window.
+     * @hide pending unhide
+     */
+    public @Nullable WindowInsetsController getWindowInsetsController() {
+        if (mAttachInfo != null) {
+            return mAttachInfo.mViewRootImpl.getInsetsController();
+        }
+        return null;
+    }
+
+    /**
      * @hide Compute the insets that should be consumed by this view and the ones
      * that should propagate to those under it.
      *
@@ -12902,6 +12897,7 @@
     public void dispatchStartTemporaryDetach() {
         mPrivateFlags3 |= PFLAG3_TEMPORARY_DETACH;
         notifyEnterOrExitForAutoFillIfNeeded(false);
+        notifyAppearedOrDisappearedForContentCaptureIfNeeded(false);
         onStartTemporaryDetach();
     }
 
@@ -12928,6 +12924,7 @@
             notifyFocusChangeToInputMethodManager(true /* hasFocus */);
         }
         notifyEnterOrExitForAutoFillIfNeeded(true);
+        notifyAppearedOrDisappearedForContentCaptureIfNeeded(true);
     }
 
     /**
@@ -13509,9 +13506,8 @@
                         : AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_DISAPPEARED);
             }
         }
-        notifyNodeAddedOrRemovedForContentCaptureIfNeeded(isVisible
-                ? CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED
-                : CONTENT_CAPTURE_NOTIFICATION_TYPE_DISAPPEARED);
+
+        notifyAppearedOrDisappearedForContentCaptureIfNeeded(isVisible);
     }
 
     /**
@@ -15751,15 +15747,12 @@
     }
 
     /**
-     * This property is hidden and intended only for use by the Fade transition, which
-     * animates it to produce a visual translucency that does not side-effect (or get
-     * affected by) the real alpha property. This value is composited with the other
-     * alpha value (and the AlphaAnimation value, when that is present) to produce
-     * a final visual translucency result, which is what is passed into the DisplayList.
-     *
-     * @hide
+     * This property is intended only for use by the Fade transition, which animates it
+     * to produce a visual translucency that does not side-effect (or get affected by)
+     * the real alpha property. This value is composited with the other alpha value
+     * (and the AlphaAnimation value, when that is present) to produce a final visual
+     * translucency result, which is what is passed into the DisplayList.
      */
-    @UnsupportedAppUsage
     public void setTransitionAlpha(float alpha) {
         ensureTransformationInfo();
         if (mTransformationInfo.mTransitionAlpha != alpha) {
@@ -15782,16 +15775,13 @@
     }
 
     /**
-     * This property is hidden and intended only for use by the Fade transition, which
-     * animates it to produce a visual translucency that does not side-effect (or get
-     * affected by) the real alpha property. This value is composited with the other
-     * alpha value (and the AlphaAnimation value, when that is present) to produce
-     * a final visual translucency result, which is what is passed into the DisplayList.
-     *
-     * @hide
+     * This property is intended only for use by the Fade transition, which animates
+     * it to produce a visual translucency that does not side-effect (or get affected
+     * by) the real alpha property. This value is composited with the other alpha
+     * value (and the AlphaAnimation value, when that is present) to produce a final
+     * visual translucency result, which is what is passed into the DisplayList.
      */
     @ViewDebug.ExportedProperty(category = "drawing")
-    @UnsupportedAppUsage
     public float getTransitionAlpha() {
         return mTransformationInfo != null ? mTransformationInfo.mTransitionAlpha : 1;
     }
@@ -16310,9 +16300,17 @@
         }
     }
 
-    /** @hide */
-    @UnsupportedAppUsage
-    public void setAnimationMatrix(Matrix matrix) {
+    /**
+     * Changes the transformation matrix on the view. This is used in animation frameworks,
+     * such as {@link android.transition.Transition}. When the animation finishes, the matrix
+     * should be cleared by calling this method with <code>null</code> as the matrix parameter.
+     * Application developers should use transformation methods like {@link #setRotation(float)},
+     * {@link #setScaleX(float)}, {@link #setScaleX(float)}, {@link #setTranslationX(float)}}
+     * and {@link #setTranslationY(float)} (float)}} instead.
+     *
+     * @param matrix The matrix, null indicates that the matrix should be cleared.
+     */
+    public void setAnimationMatrix(@Nullable Matrix matrix) {
         invalidateViewProperty(true, false);
         mRenderNode.setAnimationMatrix(matrix);
         invalidateViewProperty(false, true);
@@ -19082,6 +19080,7 @@
         needGlobalAttributesUpdate(false);
 
         notifyEnterOrExitForAutoFillIfNeeded(true);
+        notifyAppearedOrDisappearedForContentCaptureIfNeeded(true);
     }
 
     @UnsupportedAppUsage
@@ -19131,8 +19130,7 @@
         }
 
         notifyEnterOrExitForAutoFillIfNeeded(false);
-        notifyNodeAddedOrRemovedForContentCaptureIfNeeded(
-                CONTENT_CAPTURE_NOTIFICATION_TYPE_DISAPPEARED);
+        notifyAppearedOrDisappearedForContentCaptureIfNeeded(false);
     }
 
     /**
@@ -21438,12 +21436,7 @@
             notifyEnterOrExitForAutoFillIfNeeded(true);
         }
 
-        if ((mViewFlags & VISIBILITY_MASK) == VISIBLE
-                && (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_ON_LAYOUT) == 0) {
-            notifyNodeAddedOrRemovedForContentCaptureIfNeeded(
-                    CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED);
-            mPrivateFlags4 |= PFLAG4_NOTIFIED_CONTENT_CAPTURE_ON_LAYOUT;
-        }
+        notifyAppearedOrDisappearedForContentCaptureIfNeeded(true);
     }
 
     private boolean hasParentWantsFocus() {
@@ -21487,7 +21480,7 @@
      *         previous ones
      * {@hide}
      */
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     protected boolean setFrame(int left, int top, int right, int bottom) {
         boolean changed = false;
 
@@ -21552,11 +21545,19 @@
     }
 
     /**
-     * Same as setFrame, but public and hidden. For use in {@link android.transition.ChangeBounds}.
-     * @hide
+     * Assign a size and position to this view.
+     *
+     * This method is meant to be used in animations only as it applies this position and size
+     * for the view only temporary and it can be changed back at any time by the layout.
+     *
+     * @param left Left position, relative to parent
+     * @param top Top position, relative to parent
+     * @param right Right position, relative to parent
+     * @param bottom Bottom position, relative to parent
+     *
+     * @see #setLeft(int), #setRight(int), #setTop(int), #setBottom(int)
      */
-    @UnsupportedAppUsage
-    public void setLeftTopRightBottom(int left, int top, int right, int bottom) {
+    public final void setLeftTopRightBottom(int left, int top, int right, int bottom) {
         setFrame(left, top, right, bottom);
     }
 
@@ -23157,26 +23158,24 @@
      * Modifies the input matrix such that it maps view-local coordinates to
      * on-screen coordinates.
      *
-     * @param m input matrix to modify
-     * @hide
+     * @param matrix input matrix to modify
      */
-    @UnsupportedAppUsage
-    public void transformMatrixToGlobal(Matrix m) {
+    public void transformMatrixToGlobal(Matrix matrix) {
         final ViewParent parent = mParent;
         if (parent instanceof View) {
             final View vp = (View) parent;
-            vp.transformMatrixToGlobal(m);
-            m.preTranslate(-vp.mScrollX, -vp.mScrollY);
+            vp.transformMatrixToGlobal(matrix);
+            matrix.preTranslate(-vp.mScrollX, -vp.mScrollY);
         } else if (parent instanceof ViewRootImpl) {
             final ViewRootImpl vr = (ViewRootImpl) parent;
-            vr.transformMatrixToGlobal(m);
-            m.preTranslate(0, -vr.mCurScrollY);
+            vr.transformMatrixToGlobal(matrix);
+            matrix.preTranslate(0, -vr.mCurScrollY);
         }
 
-        m.preTranslate(mLeft, mTop);
+        matrix.preTranslate(mLeft, mTop);
 
         if (!hasIdentityMatrix()) {
-            m.preConcat(getMatrix());
+            matrix.preConcat(getMatrix());
         }
     }
 
@@ -23184,26 +23183,24 @@
      * Modifies the input matrix such that it maps on-screen coordinates to
      * view-local coordinates.
      *
-     * @param m input matrix to modify
-     * @hide
+     * @param matrix input matrix to modify
      */
-    @UnsupportedAppUsage
-    public void transformMatrixToLocal(Matrix m) {
+    public void transformMatrixToLocal(Matrix matrix) {
         final ViewParent parent = mParent;
         if (parent instanceof View) {
             final View vp = (View) parent;
-            vp.transformMatrixToLocal(m);
-            m.postTranslate(vp.mScrollX, vp.mScrollY);
+            vp.transformMatrixToLocal(matrix);
+            matrix.postTranslate(vp.mScrollX, vp.mScrollY);
         } else if (parent instanceof ViewRootImpl) {
             final ViewRootImpl vr = (ViewRootImpl) parent;
-            vr.transformMatrixToLocal(m);
-            m.postTranslate(0, vr.mCurScrollY);
+            vr.transformMatrixToLocal(matrix);
+            matrix.postTranslate(0, vr.mCurScrollY);
         }
 
-        m.postTranslate(-mLeft, -mTop);
+        matrix.postTranslate(-mLeft, -mTop);
 
         if (!hasIdentityMatrix()) {
-            m.postConcat(getInverseMatrix());
+            matrix.postConcat(getInverseMatrix());
         }
     }
 
@@ -23568,6 +23565,16 @@
     }
 
     /**
+     * Get the identifier used for this view by the drawing system.
+     *
+     * @see RenderNode#getUniqueId()
+     * @return A long that uniquely identifies this view's drawing component
+     */
+    public long getUniqueDrawingId() {
+        return mRenderNode.getUniqueId();
+    }
+
+    /**
      * Returns this view's tag.
      *
      * @return the Object stored in this view as a tag, or {@code null} if not
@@ -24772,7 +24779,7 @@
         final SurfaceSession session = new SurfaceSession(root.mSurface);
         final SurfaceControl surfaceControl = new SurfaceControl.Builder(session)
                 .setName("drag surface")
-                .setSize(shadowSize.x, shadowSize.y)
+                .setBufferSize(shadowSize.x, shadowSize.y)
                 .setFormat(PixelFormat.TRANSLUCENT)
                 .build();
         final Surface surface = new Surface();
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 767cd33..d03d97e 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -393,7 +393,7 @@
                 case HAS_PERMANENT_MENU_KEY_AUTODETECT: {
                     IWindowManager wm = WindowManagerGlobal.getWindowManagerService();
                     try {
-                        sHasPermanentMenuKey = !wm.hasNavigationBar();
+                        sHasPermanentMenuKey = !wm.hasNavigationBar(context.getDisplayId());
                         sHasPermanentMenuKeySet = true;
                     } catch (RemoteException ex) {
                         sHasPermanentMenuKey = false;
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 1e91aa8..741510e 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -7042,10 +7042,7 @@
      * suppression is disabled with a later call to suppressLayout(false).
      * When layout suppression is disabled, a requestLayout() call is sent
      * if layout() was attempted while layout was being suppressed.
-     *
-     * @hide
      */
-    @UnsupportedAppUsage
     public void suppressLayout(boolean suppress) {
         mSuppressLayout = suppress;
         if (!suppress) {
@@ -7061,8 +7058,6 @@
      * suppressed, due to an earlier call to {@link #suppressLayout(boolean)}.
      *
      * @return true if layout calls are currently suppressed, false otherwise.
-     *
-     * @hide
      */
     public boolean isLayoutSuppressed() {
         return mSuppressLayout;
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 484c6f3..cb47886 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -161,6 +161,24 @@
     private static final boolean MT_RENDERER_AVAILABLE = true;
 
     /**
+     * If set to true, the view system will switch from using rectangles retrieved from window to
+     * dispatch to the view hierarchy to using {@link InsetsController}, that derives the insets
+     * directly from the full configuration, enabling richer information about the insets state, as
+     * well as new APIs to control it frame-by-frame, and synchronize animations with it.
+     * <p>
+     * Only switch this to true once the new insets system is productionized and the old APIs are
+     * fully migrated over.
+     */
+    private static final String USE_NEW_INSETS_PROPERTY = "persist.wm.new_insets";
+
+    /**
+     * @see #USE_NEW_INSETS_PROPERTY
+     * @hide
+     */
+    public static final boolean USE_NEW_INSETS =
+            SystemProperties.getBoolean(USE_NEW_INSETS_PROPERTY, false);
+
+    /**
      * Set this system property to true to force the view hierarchy to render
      * at 60 Hz. This can be used to measure the potential framerate.
      */
@@ -432,6 +450,8 @@
     boolean mAdded;
     boolean mAddedTouchMode;
 
+    final Rect mTmpFrame = new Rect();
+
     // These are accessed by multiple threads.
     final Rect mWinFrame; // frame given by window manager.
 
@@ -444,6 +464,7 @@
     final DisplayCutout.ParcelableWrapper mPendingDisplayCutout =
             new DisplayCutout.ParcelableWrapper(DisplayCutout.NO_CUTOUT);
     boolean mPendingAlwaysConsumeNavBar;
+    private InsetsState mPendingInsets = new InsetsState();
     final ViewTreeObserver.InternalInsetsInfo mLastGivenInsets
             = new ViewTreeObserver.InternalInsetsInfo();
 
@@ -531,6 +552,8 @@
             InputEventConsistencyVerifier.isInstrumentationEnabled() ?
                     new InputEventConsistencyVerifier(this, 0) : null;
 
+    private final InsetsController mInsetsController = new InsetsController();
+
     static final class SystemUiVisibilityInfo {
         int seq;
         int globalVisibility;
@@ -797,9 +820,11 @@
                     mAttachInfo.mRecomputeGlobalAttributes = true;
                     collectViewAttributes();
                     res = mWindowSession.addToDisplay(mWindow, mSeq, mWindowAttributes,
-                            getHostVisibility(), mDisplay.getDisplayId(), mWinFrame,
+                            getHostVisibility(), mDisplay.getDisplayId(), mTmpFrame,
                             mAttachInfo.mContentInsets, mAttachInfo.mStableInsets,
-                            mAttachInfo.mOutsets, mAttachInfo.mDisplayCutout, mInputChannel);
+                            mAttachInfo.mOutsets, mAttachInfo.mDisplayCutout, mInputChannel,
+                            mInsetsController.getState());
+                    setFrame(mTmpFrame);
                 } catch (RemoteException e) {
                     mAdded = false;
                     mView = null;
@@ -826,6 +851,7 @@
                 mAttachInfo.mAlwaysConsumeNavBar =
                         (res & WindowManagerGlobal.ADD_FLAG_ALWAYS_CONSUME_NAV_BAR) != 0;
                 mPendingAlwaysConsumeNavBar = mAttachInfo.mAlwaysConsumeNavBar;
+                mPendingInsets = mInsetsController.getState();
                 if (DEBUG_LAYOUT) Log.v(mTag, "Added window " + mWindow);
                 if (res < WindowManagerGlobal.ADD_OKAY) {
                     mAttachInfo.mRootView = null;
@@ -1473,31 +1499,22 @@
 
         mBoundsSurfaceControl = new SurfaceControl.Builder(mSurfaceSession)
                 .setName("Bounds for - " + getTitle().toString())
-                .setSize(mWidth, mHeight)
                 .build();
 
-        setBoundsSurfaceSizeAndCrop();
+        setBoundsSurfaceCrop();
         mTransaction.setLayer(mBoundsSurfaceControl, zOrderLayer)
                     .show(mBoundsSurfaceControl)
                     .apply();
         mBoundsSurface.copyFrom(mBoundsSurfaceControl);
     }
 
-    private void setBoundsSurfaceSizeAndCrop() {
+    private void setBoundsSurfaceCrop() {
         // mWinFrame is already adjusted for surface insets. So offset it and use it as
         // the cropping bounds.
         mTempBoundsRect.set(mWinFrame);
         mTempBoundsRect.offsetTo(mWindowAttributes.surfaceInsets.left,
                 mWindowAttributes.surfaceInsets.top);
         mTransaction.setWindowCrop(mBoundsSurfaceControl, mTempBoundsRect);
-
-        // Expand the bounds by the surface insets to get the size of surface.
-        mTempBoundsRect.inset(-mWindowAttributes.surfaceInsets.left,
-                -mWindowAttributes.surfaceInsets.top,
-                -mWindowAttributes.surfaceInsets.right,
-                -mWindowAttributes.surfaceInsets.bottom);
-        mTransaction.setSize(mBoundsSurfaceControl, mTempBoundsRect.width(),
-                mTempBoundsRect.height());
     }
 
     /**
@@ -1506,7 +1523,7 @@
      */
     private void updateBoundsSurface() {
         if (mBoundsSurfaceControl != null && mSurface.isValid()) {
-            setBoundsSurfaceSizeAndCrop();
+            setBoundsSurfaceCrop();
             mTransaction.deferTransactionUntilSurface(mBoundsSurfaceControl,
                     mSurface, mSurface.getNextFrameNumber())
                     .apply();
@@ -1780,7 +1797,8 @@
             Rect stableInsets = mDispatchStableInsets;
             DisplayCutout displayCutout = mDispatchDisplayCutout;
             // For dispatch we preserve old logic, but for direct requests from Views we allow to
-            // immediately use pending insets.
+            // immediately use pending insets. This is such that getRootWindowInsets returns the
+            // result from the layout hint before we ran a traversal shortly after adding a window.
             if (!forceConstruct
                     && (!mPendingContentInsets.equals(contentInsets) ||
                         !mPendingStableInsets.equals(stableInsets) ||
@@ -1797,10 +1815,16 @@
             }
             contentInsets = ensureInsetsNonNegative(contentInsets, "content");
             stableInsets = ensureInsetsNonNegative(stableInsets, "stable");
-            mLastWindowInsets = new WindowInsets(contentInsets,
-                    null /* windowDecorInsets */, stableInsets,
-                    mContext.getResources().getConfiguration().isScreenRound(),
-                    mAttachInfo.mAlwaysConsumeNavBar, displayCutout);
+            if (USE_NEW_INSETS) {
+                mLastWindowInsets = mInsetsController.calculateInsets(
+                        mContext.getResources().getConfiguration().isScreenRound(),
+                        mAttachInfo.mAlwaysConsumeNavBar, displayCutout);
+            } else {
+                mLastWindowInsets = new WindowInsets(contentInsets,
+                        null /* windowDecorInsets */, stableInsets,
+                        mContext.getResources().getConfiguration().isScreenRound(),
+                        mAttachInfo.mAlwaysConsumeNavBar, displayCutout);
+            }
         }
         return mLastWindowInsets;
     }
@@ -1828,6 +1852,10 @@
         host.dispatchApplyWindowInsets(insets);
     }
 
+    InsetsController getInsetsController() {
+        return mInsetsController;
+    }
+
     private static boolean shouldUseDisplaySize(final WindowManager.LayoutParams lp) {
         return lp.type == TYPE_STATUS_BAR_PANEL
                 || lp.type == TYPE_INPUT_METHOD
@@ -1916,7 +1944,6 @@
             // PixelFormat.hasAlpha(lp.format) || lp.format == PixelFormat.RGBX_8888
             // However, windows are now always 32 bits by default, so choose 32 bits
             mAttachInfo.mUse32BitDrawingCache = true;
-            mAttachInfo.mHasWindowFocus = false;
             mAttachInfo.mWindowVisibility = viewVisibility;
             mAttachInfo.mRecomputeGlobalAttributes = false;
             mLastConfigurationFromResources.setTo(config);
@@ -2000,6 +2027,9 @@
                 if (mPendingAlwaysConsumeNavBar != mAttachInfo.mAlwaysConsumeNavBar) {
                     insetsChanged = true;
                 }
+                if (!mPendingInsets.equals(mInsetsController.getState())) {
+                    insetsChanged = true;
+                }
                 if (lp.width == ViewGroup.LayoutParams.WRAP_CONTENT
                         || lp.height == ViewGroup.LayoutParams.WRAP_CONTENT) {
                     windowSizeMayChange = true;
@@ -2193,6 +2223,8 @@
                         mAttachInfo.mStableInsets);
                 final boolean cutoutChanged = !mPendingDisplayCutout.equals(
                         mAttachInfo.mDisplayCutout);
+                final boolean insetsStateChanged = !mPendingInsets.equals(
+                        mInsetsController.getState());
                 final boolean outsetsChanged = !mPendingOutsets.equals(mAttachInfo.mOutsets);
                 final boolean surfaceSizeChanged = (relayoutResult
                         & WindowManagerGlobal.RELAYOUT_RES_SURFACE_RESIZED) != 0;
@@ -2230,6 +2262,10 @@
                     mAttachInfo.mAlwaysConsumeNavBar = mPendingAlwaysConsumeNavBar;
                     contentInsetsChanged = true;
                 }
+                if (insetsStateChanged) {
+                    mInsetsController.setState(mPendingInsets);
+                    contentInsetsChanged = true;
+                }
                 if (contentInsetsChanged || mLastSystemUiVisibility !=
                         mAttachInfo.mSystemUiVisibility || mApplyInsetsRequested
                         || mLastOverscanRequested != mAttachInfo.mOverscanRequested
@@ -2675,7 +2711,6 @@
     }
 
     private void maybeHandleWindowMove(Rect frame) {
-
         // TODO: Well, we are checking whether the frame has changed similarly
         // to how this is done for the insets. This is however incorrect since
         // the insets and the frame are translated. For example, the old frame
@@ -4180,6 +4215,8 @@
     private final static int MSG_UPDATE_POINTER_ICON = 27;
     private final static int MSG_POINTER_CAPTURE_CHANGED = 28;
     private final static int MSG_DRAW_FINISHED = 29;
+    private final static int MSG_INSETS_CHANGED = 30;
+    private final static int MSG_INSETS_CONTROL_CHANGED = 31;
 
     final class ViewRootHandler extends Handler {
         @Override
@@ -4235,6 +4272,8 @@
                     return "MSG_POINTER_CAPTURE_CHANGED";
                 case MSG_DRAW_FINISHED:
                     return "MSG_DRAW_FINISHED";
+                case MSG_INSETS_CHANGED:
+                    return "MSG_INSETS_CHANGED";
             }
             return super.getMessageName(message);
         }
@@ -4315,7 +4354,7 @@
                                 || !mPendingVisibleInsets.equals(args.arg3)
                                 || !mPendingOutsets.equals(args.arg7);
 
-                        mWinFrame.set((Rect) args.arg1);
+                        setFrame((Rect) args.arg1);
                         mPendingOverscanInsets.set((Rect) args.arg5);
                         mPendingContentInsets.set((Rect) args.arg2);
                         mPendingStableInsets.set((Rect) args.arg6);
@@ -4338,16 +4377,36 @@
                         requestLayout();
                     }
                     break;
+                case MSG_INSETS_CHANGED:
+                    mPendingInsets = (InsetsState) msg.obj;
+
+                    // TODO: Full traversal not needed here.
+                    if (USE_NEW_INSETS) {
+                        requestLayout();
+                    }
+                    break;
+                case MSG_INSETS_CONTROL_CHANGED: {
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    mPendingInsets = (InsetsState) args.arg1;
+                    mInsetsController.onControlsChanged((InsetsSourceControl[]) args.arg2);
+
+                    // TODO: Full traversal not necessarily needed here.
+                    if (USE_NEW_INSETS) {
+                        requestLayout();
+                    }
+                    break;
+                }
                 case MSG_WINDOW_MOVED:
                     if (mAdded) {
                         final int w = mWinFrame.width();
                         final int h = mWinFrame.height();
                         final int l = msg.arg1;
                         final int t = msg.arg2;
-                        mWinFrame.left = l;
-                        mWinFrame.right = l + w;
-                        mWinFrame.top = t;
-                        mWinFrame.bottom = t + h;
+                        mTmpFrame.left = l;
+                        mTmpFrame.right = l + w;
+                        mTmpFrame.top = t;
+                        mTmpFrame.bottom = t + h;
+                        setFrame(mTmpFrame);
 
                         mPendingBackDropFrame.set(mWinFrame);
                         maybeHandleWindowMove(mWinFrame);
@@ -6733,9 +6792,9 @@
                 (int) (mView.getMeasuredWidth() * appScale + 0.5f),
                 (int) (mView.getMeasuredHeight() * appScale + 0.5f), viewVisibility,
                 insetsPending ? WindowManagerGlobal.RELAYOUT_INSETS_PENDING : 0, frameNumber,
-                mWinFrame, mPendingOverscanInsets, mPendingContentInsets, mPendingVisibleInsets,
+                mTmpFrame, mPendingOverscanInsets, mPendingContentInsets, mPendingVisibleInsets,
                 mPendingStableInsets, mPendingOutsets, mPendingBackDropFrame, mPendingDisplayCutout,
-                mPendingMergedConfiguration, mSurface);
+                mPendingMergedConfiguration, mSurface, mPendingInsets);
 
         mPendingAlwaysConsumeNavBar =
                 (relayoutResult & WindowManagerGlobal.RELAYOUT_RES_CONSUME_ALWAYS_NAV_BAR) != 0;
@@ -6745,15 +6804,22 @@
         }
 
         if (mTranslator != null) {
-            mTranslator.translateRectInScreenToAppWinFrame(mWinFrame);
+            mTranslator.translateRectInScreenToAppWinFrame(mTmpFrame);
             mTranslator.translateRectInScreenToAppWindow(mPendingOverscanInsets);
             mTranslator.translateRectInScreenToAppWindow(mPendingContentInsets);
             mTranslator.translateRectInScreenToAppWindow(mPendingVisibleInsets);
             mTranslator.translateRectInScreenToAppWindow(mPendingStableInsets);
         }
+        setFrame(mTmpFrame);
+
         return relayoutResult;
     }
 
+    private void setFrame(Rect frame) {
+        mWinFrame.set(frame);
+        mInsetsController.onFrameChanged(frame);
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -6856,6 +6922,8 @@
 
         mChoreographer.dump(prefix, writer);
 
+        mInsetsController.dump(prefix, writer);
+
         writer.print(prefix); writer.println("View Hierarchy:");
         dumpViewHierarchy(innerPrefix, writer, mView);
     }
@@ -7064,6 +7132,18 @@
         mHandler.sendMessage(msg);
     }
 
+    private void dispatchInsetsChanged(InsetsState insetsState) {
+        mHandler.obtainMessage(MSG_INSETS_CHANGED, insetsState).sendToTarget();
+    }
+
+    private void dispatchInsetsControlChanged(InsetsState insetsState,
+            InsetsSourceControl[] activeControls) {
+        SomeArgs args = SomeArgs.obtain();
+        args.arg1 = insetsState;
+        args.arg2 = activeControls;
+        mHandler.obtainMessage(MSG_INSETS_CONTROL_CHANGED, args).sendToTarget();
+    }
+
     public void dispatchMoved(int newX, int newY) {
         if (DEBUG_LAYOUT) Log.v(mTag, "Window moved " + this + ": newX=" + newX + " newY=" + newY);
         if (mTranslator != null) {
@@ -8127,6 +8207,23 @@
         }
 
         @Override
+        public void insetsChanged(InsetsState insetsState) {
+            final ViewRootImpl viewAncestor = mViewAncestor.get();
+            if (viewAncestor != null) {
+                viewAncestor.dispatchInsetsChanged(insetsState);
+            }
+        }
+
+        @Override
+        public void insetsControlChanged(InsetsState insetsState,
+                InsetsSourceControl[] activeControls) {
+            final ViewRootImpl viewAncestor = mViewAncestor.get();
+            if (viewAncestor != null) {
+                viewAncestor.dispatchInsetsControlChanged(insetsState, activeControls);
+            }
+        }
+
+        @Override
         public void moved(int newX, int newY) {
             final ViewRootImpl viewAncestor = mViewAncestor.get();
             if (viewAncestor != null) {
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index c1e94d8..58ab817 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -2410,4 +2410,11 @@
     public boolean isCloseOnSwipeEnabled() {
         return mCloseOnSwipeEnabled;
     }
+
+    /**
+     * @return The {@link WindowInsetsController} associated with this window
+     * @see View#getWindowInsetsController()
+     * @hide pending unhide
+     */
+    public abstract @NonNull WindowInsetsController getInsetsController();
 }
diff --git a/core/java/android/view/WindowInsets.java b/core/java/android/view/WindowInsets.java
index a8debbd..572d331 100644
--- a/core/java/android/view/WindowInsets.java
+++ b/core/java/android/view/WindowInsets.java
@@ -18,13 +18,17 @@
 package android.view;
 
 import android.annotation.NonNull;
+import android.annotation.IntDef;
 import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
 import android.graphics.Insets;
 import android.graphics.Rect;
+import android.view.inputmethod.InputMethod;
 
 import com.android.internal.util.Preconditions;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.Objects;
 
 /**
@@ -807,4 +811,69 @@
                     mIsRound, mAlwaysConsumeNavBar, mDisplayCutout);
         }
     }
+
+    /**
+     * Class that defines different types of sources causing window insets.
+     * @hide pending unhide
+     */
+    public static final class Type {
+
+        static final int TOP_BAR = 0x1;
+        static final int IME = 0x2;
+        static final int SIDE_BARS = 0x4;
+        static final int WINDOW_DECOR = 0x8;
+
+        private Type() {
+        }
+
+        /** @hide */
+        @Retention(RetentionPolicy.SOURCE)
+        @IntDef(flag = true, value = { TOP_BAR, IME, SIDE_BARS, WINDOW_DECOR })
+        public @interface InsetType {
+        }
+
+        /**
+         * @return An inset type representing the top bar of a window, which can be the status
+         *         bar on handheld-like devices as well as a caption bar.
+         */
+        public static @InsetType int topBar() {
+            return TOP_BAR;
+        }
+
+        /**
+         * @return An inset type representing the window of an {@link InputMethod}.
+         */
+        public static @InsetType int ime() {
+            return IME;
+        }
+
+        /**
+         * @return An inset type representing any system bars that are not {@link #topBar()}.
+         */
+        public static @InsetType int sideBars() {
+            return SIDE_BARS;
+        }
+
+        /**
+         * @return An inset type representing decor that is being app-controlled.
+         */
+        public static @InsetType int windowDecor() {
+            return WINDOW_DECOR;
+        }
+
+        /**
+         * @return All system bars. Includes {@link #topBar()} as well as {@link #sideBars()}, but
+         *         not {@link #ime()}.
+         */
+        public static @InsetType int systemBars() {
+            return TOP_BAR | SIDE_BARS;
+        }
+
+        /**
+         * @return All inset types combined.
+         */
+        public static @InsetType int all() {
+            return 0xFFFFFFFF;
+        }
+    }
 }
diff --git a/core/java/android/view/WindowInsetsController.java b/core/java/android/view/WindowInsetsController.java
new file mode 100644
index 0000000..7be5f2e
--- /dev/null
+++ b/core/java/android/view/WindowInsetsController.java
@@ -0,0 +1,54 @@
+/*
+ * 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.view;
+
+import android.view.WindowInsets.Type.InsetType;
+
+/**
+ * Interface to control windows that generate insets.
+ *
+ * TODO Needs more information and examples once the API is more baked.
+ * @hide pending unhide
+ */
+public interface WindowInsetsController {
+
+    /**
+     * Makes a set of windows that cause insets appear on screen.
+     * <p>
+     * Note that if the window currently doesn't have control over a certain type, it will apply the
+     * change as soon as the window gains control. The app can listen to the event by observing
+     * {@link View#onApplyWindowInsets} and checking visibility with "TODO at method" in
+     * {@link WindowInsets}.
+     *
+     * @param types A bitmask of {@link WindowInsets.Type.InsetType} specifying what windows the app
+     *              would like to make appear on screen.
+     */
+    void show(@InsetType int types);
+
+    /**
+     * Makes a set of windows causing insets disappear.
+     * <p>
+     * Note that if the window currently doesn't have control over a certain type, it will apply the
+     * change as soon as the window gains control. The app can listen to the event by observing
+     * {@link View#onApplyWindowInsets} and checking visibility with "TODO at method" in
+     * {@link WindowInsets}.
+     *
+     * @param types A bitmask of {@link WindowInsets.Type.InsetType} specifying what windows the app
+     *              would like to make disappear.
+     */
+    void hide(@InsetType int types);
+}
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 8d8a370..45c3651 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -1752,15 +1752,6 @@
         public static final int PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY = 0x00100000;
 
         /**
-         * If this flag is set on the window, window manager will acquire a sleep token that puts
-         * all activities to sleep as long as this window is visible. When this flag is set, the
-         * window needs to occlude all activity windows.
-         * @hide
-         */
-        @RequiresPermission(permission.DEVICE_POWER)
-        public static final int PRIVATE_FLAG_ACQUIRES_SLEEP_TOKEN = 0x00200000;
-
-        /**
          * Flag to indicate that this window should be considered a screen decoration similar to the
          * nav bar and status bar. This will cause this window to affect the window insets reported
          * to other windows when it is visible.
@@ -1872,10 +1863,6 @@
                         equals = PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY,
                         name = "IS_ROUNDED_CORNERS_OVERLAY"),
                 @ViewDebug.FlagToString(
-                        mask = PRIVATE_FLAG_ACQUIRES_SLEEP_TOKEN,
-                        equals = PRIVATE_FLAG_ACQUIRES_SLEEP_TOKEN,
-                        name = "ACQUIRES_SLEEP_TOKEN"),
-                @ViewDebug.FlagToString(
                         mask = PRIVATE_FLAG_IS_SCREEN_DECOR,
                         equals = PRIVATE_FLAG_IS_SCREEN_DECOR,
                         name = "IS_SCREEN_DECOR"),
diff --git a/core/java/android/view/WindowManagerPolicyConstants.java b/core/java/android/view/WindowManagerPolicyConstants.java
index 260e938..16bafe2 100644
--- a/core/java/android/view/WindowManagerPolicyConstants.java
+++ b/core/java/android/view/WindowManagerPolicyConstants.java
@@ -44,6 +44,7 @@
     int PRESENCE_EXTERNAL = 1 << 1;
 
     // Navigation bar position values
+    int NAV_BAR_INVALID = -1;
     int NAV_BAR_LEFT = 1 << 0;
     int NAV_BAR_RIGHT = 1 << 1;
     int NAV_BAR_BOTTOM = 1 << 2;
diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java
index d4c7069..9227249 100644
--- a/core/java/android/view/autofill/AutofillManager.java
+++ b/core/java/android/view/autofill/AutofillManager.java
@@ -202,6 +202,14 @@
     public static final String EXTRA_RESTORE_SESSION_TOKEN =
             "android.view.autofill.extra.RESTORE_SESSION_TOKEN";
 
+    /**
+     * Internal extra used to pass a binder to the {@link IAugmentedAutofillManagerClient}.
+     *
+     * @hide
+     */
+    public static final String EXTRA_AUGMENTED_AUTOFILL_CLIENT =
+            "android.view.autofill.extra.AUGMENTED_AUTOFILL_CLIENT";
+
     private static final String SESSION_ID_TAG = "android:sessionId";
     private static final String STATE_TAG = "android:state";
     private static final String LAST_AUTOFILLED_DATA_TAG = "android:lastAutoFilledData";
@@ -370,6 +378,9 @@
     private Cleaner mServiceClientCleaner;
 
     @GuardedBy("mLock")
+    private IAugmentedAutofillManagerClient mAugmentedAutofillServiceClient;
+
+    @GuardedBy("mLock")
     private AutofillCallback mCallback;
 
     private final Context mContext;
@@ -1664,6 +1675,8 @@
                 final IAutoFillManager service = mService;
                 final IAutoFillManagerClient serviceClient = mServiceClient;
                 mServiceClientCleaner = Cleaner.create(this, () -> {
+                    // TODO(b/111330312): call service to also remove reference to
+                    // mAugmentedAutofillServiceClient
                     try {
                         service.removeClient(serviceClient, userId);
                     } catch (RemoteException e) {
@@ -1808,6 +1821,7 @@
             if ((flags & SET_STATE_FLAG_RESET_CLIENT) != 0) {
                 // Reset connection to system
                 mServiceClient = null;
+                mAugmentedAutofillServiceClient = null;
                 if (mServiceClientCleaner != null) {
                     mServiceClientCleaner.clean();
                     mServiceClientCleaner = null;
@@ -2054,6 +2068,29 @@
         }
     }
 
+    /**
+     * Gets a {@link AugmentedAutofillManagerClient} for this {@link AutofillManagerClient}.
+     *
+     * <p>These are 2 distinct objects because we need to restrict what the Augmented Autofill
+     * service can do (which is defined by {@code IAugmentedAutofillManagerClient.aidl}).
+     */
+    private void getAugmentedAutofillClient(@NonNull IResultReceiver result) {
+        synchronized (mLock) {
+            if (mAugmentedAutofillServiceClient == null) {
+                mAugmentedAutofillServiceClient = new AugmentedAutofillManagerClient(this);
+            }
+            final Bundle resultData = new Bundle();
+            resultData.putBinder(EXTRA_AUGMENTED_AUTOFILL_CLIENT,
+                    mAugmentedAutofillServiceClient.asBinder());
+
+            try {
+                result.send(0, resultData);
+            } catch (RemoteException e) {
+                Log.w(TAG, "Could not send AugmentedAutofillClient back: " + e);
+            }
+        }
+    }
+
     /** @hide */
     public void requestHideFillUi() {
         requestHideFillUi(mIdShownFillUi, true);
@@ -2801,7 +2838,7 @@
     private static final class AutofillManagerClient extends IAutoFillManagerClient.Stub {
         private final WeakReference<AutofillManager> mAfm;
 
-        AutofillManagerClient(AutofillManager autofillManager) {
+        private AutofillManagerClient(AutofillManager autofillManager) {
             mAfm = new WeakReference<>(autofillManager);
         }
 
@@ -2904,6 +2941,50 @@
                 afm.post(() -> afm.setSessionFinished(newState));
             }
         }
+
+        @Override
+        public void getAugmentedAutofillClient(IResultReceiver result) {
+            final AutofillManager afm = mAfm.get();
+            if (afm != null) {
+                afm.post(() -> afm.getAugmentedAutofillClient(result));
+            }
+        }
+    }
+
+    private static final class AugmentedAutofillManagerClient
+            extends IAugmentedAutofillManagerClient.Stub {
+        private final WeakReference<AutofillManager> mAfm;
+
+        private AugmentedAutofillManagerClient(AutofillManager autofillManager) {
+            mAfm = new WeakReference<>(autofillManager);
+        }
+
+        @Override
+        public Rect getViewCoordinates(@NonNull AutofillId id) {
+            // TODO(b/111330312): use handler / callback?
+            final AutofillManager afm = mAfm.get();
+            if (afm == null) return null;
+
+            final View view = afm.getClient().autofillClientFindViewByAutofillIdTraversal(id);
+            // TODO(b/111330312): optimize (for example, use temp rect from attach info) and
+            // fix (for example, take system status bar height into account) logic below
+            final int[] location = new int[2];
+            view.getLocationOnScreen(location);
+            final Rect rect = new Rect(location[0], location[1], location[0] + view.getWidth(),
+                    location[1] + view.getHeight());
+            if (sVerbose) {
+                Log.v(TAG, "Coordinates for " + id + ": " + rect);
+            }
+            return rect;
+        }
+
+        @Override
+        public void autofill(int sessionId, List<AutofillId> ids, List<AutofillValue> values) {
+            final AutofillManager afm = mAfm.get();
+            if (afm != null) {
+                afm.post(() -> afm.autofill(sessionId, ids, values));
+            }
+        }
     }
 
     /**
diff --git a/core/java/android/view/autofill/IAugmentedAutofillManagerClient.aidl b/core/java/android/view/autofill/IAugmentedAutofillManagerClient.aidl
new file mode 100644
index 0000000..67cd0bf
--- /dev/null
+++ b/core/java/android/view/autofill/IAugmentedAutofillManagerClient.aidl
@@ -0,0 +1,34 @@
+/*
+ * 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.view.autofill;
+
+import java.util.List;
+
+import android.graphics.Rect;
+import android.view.autofill.AutofillId;
+import android.view.autofill.AutofillValue;
+
+/**
+ * Object running in the application process and responsible to provide the functionalities
+ * required by an Augmented Autofill service.
+ *
+ * @hide
+ */
+interface IAugmentedAutofillManagerClient {
+   Rect getViewCoordinates(in AutofillId id);
+   void autofill(int sessionId, in List<AutofillId> ids, in List<AutofillValue> values);
+}
diff --git a/core/java/android/view/autofill/IAutoFillManagerClient.aidl b/core/java/android/view/autofill/IAutoFillManagerClient.aidl
index 0ff7a0b..63394b4 100644
--- a/core/java/android/view/autofill/IAutoFillManagerClient.aidl
+++ b/core/java/android/view/autofill/IAutoFillManagerClient.aidl
@@ -27,6 +27,8 @@
 import android.view.autofill.IAutofillWindowPresenter;
 import android.view.KeyEvent;
 
+import com.android.internal.os.IResultReceiver;
+
 /**
  * Object running in the application process and responsible for autofilling it.
  *
@@ -93,8 +95,18 @@
 
    /**
      * Marks the state of the session as finished.
+     *
      * @param newState STATE_FINISHED (because the autofill service returned a null
      * FillResponse) or STATE_UNKNOWN (because the session was removed).
      */
    void setSessionFinished(int newState);
+
+   /**
+    * Gets a reference to the binder object that can be used by the Augmented Autofill service.
+    *
+    * @param receiver, whose AutofillManager.EXTRA_AUGMENTED_AUTOFILL_CLIENT extra will contain
+    * the reference.
+    */
+   void getAugmentedAutofillClient(in IResultReceiver result);
+
 }
diff --git a/core/java/android/view/inspector/ChildTraverser.java b/core/java/android/view/inspector/ChildTraverser.java
deleted file mode 100644
index b775de5..0000000
--- a/core/java/android/view/inspector/ChildTraverser.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 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.view.inspector;
-
-import android.annotation.NonNull;
-
-/**
- * Interface for visiting all the child nodes of an inspectable object.
- *
- * Inspectable objects may return a collection of children as an array, an {@link Iterable} or an
- * {@link java.util.Iterator}. This provides a unified API for traversing across all the children
- * of an inspectable node.
- *
- * This interface is consumed by {@link InspectionHelper#traverseChildren(Object, ChildTraverser)}
- * and may be implemented as a lambda.
- *
- * @see InspectionHelper#traverseChildren(Object, ChildTraverser)
- * @hide
- */
-@FunctionalInterface
-public interface ChildTraverser {
-    /**
-     * Visit one child object of a parent inspectable object.
-     *
-     * The iteration interface will filter null values out before passing them to this method, but
-     * some child objects may not be inspectable. It is up to the implementor to determine their
-     * inspectablity and what to do with them.
-     *
-     * @param child A child object, guaranteed not to be null.
-     */
-    void traverseChild(@NonNull Object child);
-}
diff --git a/core/java/android/view/inspector/InspectableChildren.java b/core/java/android/view/inspector/InspectableChildren.java
deleted file mode 100644
index de8fa29..0000000
--- a/core/java/android/view/inspector/InspectableChildren.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 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.view.inspector;
-
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.RetentionPolicy.SOURCE;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Marks a getter for an inspectable node's inspectable children.
- *
- * This annotation can be applied to any getter that returns a collection of objects, either an
- * array, an {@link Iterable} or a {@link java.util.Iterator}. The getter may return null, which
- * will be treated as an empty collection. Additionally, the inspector will discard any null
- * entries in the collection.
- *
- * By default, this annotation is inherited. At runtime, the inspector introspects on the class
- * hierachy and uses the annotated getter from the bottommost class, if different from any
- * annoated getters of the parent class. If a class inherits from a parent class with an annotated
- * getter, but does not include this annotation, the child class will be traversed using the
- * getter annotated on the parent. This holds true even if the child class overrides the getter.
- *
- * @see InspectionHelper#traverseChildren(Object, ChildTraverser)
- * @see InspectionHelper#hasChildTraversal()
- * @hide
- */
-@Target({METHOD})
-@Retention(SOURCE)
-public @interface InspectableChildren {
-}
diff --git a/core/java/android/view/inspector/InspectableNodeName.java b/core/java/android/view/inspector/InspectableNodeName.java
index 716409c..ea94ad4 100644
--- a/core/java/android/view/inspector/InspectableNodeName.java
+++ b/core/java/android/view/inspector/InspectableNodeName.java
@@ -34,7 +34,7 @@
  * This annotation does not inherit. If a class extends an annotated parent class, but does not
  * annotate itself, its node name will be inferred from its Java name.
  *
- * @see InspectionHelper#getNodeName()
+ * @see InspectionCompanion#getNodeName()
  * @hide
  */
 @Target({TYPE})
diff --git a/core/java/android/view/inspector/InspectableProperty.java b/core/java/android/view/inspector/InspectableProperty.java
index b0fd503..5b957156 100644
--- a/core/java/android/view/inspector/InspectableProperty.java
+++ b/core/java/android/view/inspector/InspectableProperty.java
@@ -17,8 +17,11 @@
 package android.view.inspector;
 
 import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
+import android.content.res.ResourceId;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
@@ -31,8 +34,8 @@
  * but on a different getter, the inspector will use the child's getter when inspecting instances
  * of the child, and the parent's otherwise.
  *
- * @see InspectionHelper#mapProperties(PropertyMapper)
- * @see InspectionHelper#readProperties(Object, PropertyReader)
+ * @see InspectionCompanion#mapProperties(PropertyMapper)
+ * @see InspectionCompanion#readProperties(Object, PropertyReader)
  * @hide
  */
 @Target({METHOD})
@@ -46,5 +49,171 @@
      *
      * @return The name of the property.
      */
-    String value() default "";
+    String name() default "";
+
+    /**
+     * If the property is inflated from XML, the resource ID of its XML attribute.
+     *
+     * If left as {ID_NULL}, and {@link #hasAttributeId()} is true, the attribute ID will be
+     * inferred from {@link #name()}.
+     *
+     * @return The attribute ID of the property or {@link ResourceId#ID_NULL}
+     */
+    int attributeId() default ResourceId.ID_NULL;
+
+    /**
+     * If this property has an attribute ID.
+     *
+     * Set to false if the annotated property does not have an attribute ID, that is, it is not
+     * inflated from an XML attribute. This will prevent the automatic inference of the attribute
+     * ID if {@link #attributeId()} is set to {@link ResourceId#ID_NULL}.
+     *
+     * @return Whether to infer an attribute ID if not supplied
+     */
+    boolean hasAttributeId() default true;
+
+    /**
+     * Specify how to interpret a value type packed into a primitive integer.
+     *
+     * @return A {@link ValueType}
+     */
+    ValueType valueType() default ValueType.INFERRED;
+
+    /**
+     * For enumerations packed into primitive {int} properties, map the values to string names.
+     *
+     * Note that {@link #enumMapping()} cannot be used simultaneously with {@link #flagMapping()}.
+     *
+     * @return An array of {@link EnumMap}, empty if not applicable
+     * @see android.annotation.IntDef
+     * @see IntEnumMapping
+     */
+    EnumMap[] enumMapping() default {};
+
+    /**
+     * For flags packed into primitive {int} properties, model the string names of the flags.
+     *
+     * Note that {@link #flagMapping()} cannot be used simultaneously with {@link #enumMapping()}.
+     *
+     * @return An array of {@link FlagMap}, empty if not applicable
+     * @see android.annotation.IntDef
+     * @see IntFlagMapping
+     */
+    FlagMap[] flagMapping() default {};
+
+
+    /**
+     * One entry in an enumeration packed into a primitive {int}.
+     *
+     * @see IntEnumMapping
+     * @hide
+     */
+    @Target({TYPE})
+    @Retention(SOURCE)
+    @interface EnumMap {
+        /**
+         * The string name of this enumeration value.
+         *
+         * @return A string name
+         */
+        String name();
+
+        /**
+         * The integer value of this enumeration value.
+         *
+         * @return An integer value
+         */
+        int value();
+    }
+
+    /**
+     * One flag value of many that may be packed into a primitive {int}.
+     *
+     * @see IntFlagMapping
+     * @hide
+     */
+    @Target({TYPE})
+    @Retention(SOURCE)
+    @interface FlagMap {
+        /**
+         * The string name of this flag.
+         *
+         * @return A string name
+         */
+        String name();
+
+        /**
+         * A target value that the property's value must equal after masking.
+         *
+         * If a mask is not supplied (i.e., {@link #mask()} is 0), the target will be reused as the
+         * mask. This handles the common case where no flags mutually exclude each other.
+         *
+         * @return The target value to compare against
+         */
+        int target();
+
+        /**
+         * A mask that the property will be bitwise anded with before comparing to the target.
+         *
+         * If set to 0 (the default), the value of {@link #target()} will be used as a mask. Zero
+         * was chosen as the default since bitwise and with zero is always zero.
+         *
+         * @return A mask, or 0 to use the target as a mask
+         */
+        int mask() default 0;
+    }
+
+    /**
+     * The type of value packed into a primitive {int}.
+     *
+     * @hide
+     */
+    enum ValueType {
+        /**
+         * No special handling, property is considered to be a numeric value.
+         */
+        NONE,
+
+        /**
+         * The default the annotation processor infers the value type from context.
+         */
+        INFERRED,
+
+        /**
+         * Value packs an enumeration.
+         *
+         * This is inferred if {@link #enumMapping()} is specified.
+         *
+         * @see EnumMap
+         */
+        INT_ENUM,
+
+        /**
+         * Value packs flags, of which many may be enabled at once.
+         *
+         * This is inferred if {@link #flagMapping()} is specified.
+         *
+         * @see FlagMap
+         */
+        INT_FLAG,
+
+        /**
+         * Value packs color information.
+         *
+         * This is inferred from {@link android.annotation.ColorInt}, or
+         * {@link android.annotation.ColorLong} on the getter method.
+         *
+         * @see android.graphics.Color
+         */
+        COLOR,
+
+        /**
+         * Value packs gravity information.
+         *
+         * This type is not inferred, and is non-trivial to represent using {@link FlagMap}.
+         *
+         * @see android.view.Gravity
+         */
+        GRAVITY
+    }
 }
diff --git a/core/java/android/view/inspector/InspectionCompanion.java b/core/java/android/view/inspector/InspectionCompanion.java
new file mode 100644
index 0000000..62d769b
--- /dev/null
+++ b/core/java/android/view/inspector/InspectionCompanion.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright 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.view.inspector;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+
+/**
+ * An interface for companion objects used to inspect views.
+ *
+ * Inspection companions only need to handle the properties and node name of the specific class
+ * they are defined for, not anything from a parent class. At runtime, the inspector instantiates
+ * one instance of each inspection companion, and handles visiting them in the correct inheritance
+ * order for each type it inspects.
+ *
+ * Properties are read from the top of the type tree to the bottom, so that classes that override
+ * a property in their parent class can overwrite it in the reader. In general, properties will
+ * cleanly inherit through their getters, and the inspector runtime will read the properties of a
+ * parent class via the parent's inspection companion, and the child companion will only read
+ * properties added or changed since the parent was defined.
+ *
+ * Only one child traversal is considered for each class. If a descendant class defines a
+ * different child traversal than its parent, only the bottom traversal is used. If a class does
+ * not define its own child traversal, but one of its ancestors does, the bottom-most ancestor's
+ * traversal will be used.
+ *
+ * @param <T> The type of inspectable this is the companion to
+ */
+public interface InspectionCompanion<T> {
+    /**
+     * Map the string names of the properties this companion knows about to integer IDs.
+     *
+     * Each companion is responsible for storing the integer IDs of all its properties. This is the
+     * only method that is allowed to modify the stored IDs.
+     *
+     * Calling {@link #readProperties(T, PropertyReader)} before calling this results in
+     * undefined behavior.
+     *
+     * @param propertyMapper A {@link PropertyMapper} maps string names to IDs.
+     */
+    void mapProperties(@NonNull PropertyMapper propertyMapper);
+
+    /**
+     * Read the values of an instance of this companion's type into a {@link PropertyReader}.
+     *
+     * This method needs to return the property IDs stored by
+     * {@link #mapProperties(PropertyMapper)}. Implementations should track if their properties
+     * have been mapped and throw a {@link UninitializedPropertyMapException} if this method is
+     * called before {mapProperties}.
+     *
+     * @param inspectable A object of type {T} to read the properties of.
+     * @param propertyReader An object which receives the property IDs and values.
+     */
+    void readProperties(@NonNull T inspectable, @NonNull PropertyReader propertyReader);
+
+    /**
+     * Get an optional name to display to developers for inspection nodes of this companion's type.
+     *
+     * The default implementation returns null, which will cause the runtime to use the class's
+     * simple name as defined by {@link Class#getSimpleName()} as the node name.
+     *
+     * If the type of this companion is inflated from XML, this method should be overridden to
+     * return the string used as the tag name for this type in XML.
+     *
+     * @return A string to use as the node name, or null to use the simple class name fallback.
+     */
+    @Nullable
+    default String getNodeName() {
+        return null;
+    }
+
+    /**
+     * Thrown by {@link #readProperties(Object, PropertyReader)} if called before
+     * {@link #mapProperties(PropertyMapper)}.
+     */
+    class UninitializedPropertyMapException extends RuntimeException {
+        public UninitializedPropertyMapException() {
+            super("Unable to read properties of an inspectable before mapping their IDs.");
+        }
+    }
+}
diff --git a/core/java/android/view/inspector/InspectionHelper.java b/core/java/android/view/inspector/InspectionHelper.java
deleted file mode 100644
index 27a9704..0000000
--- a/core/java/android/view/inspector/InspectionHelper.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright 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.view.inspector;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-
-/**
- * An interface for companion objects used to inspect views.
- *
- * Inspection helpers only need to handle the properties, name and traversal of the specific class
- * they are defined for, not anything from a parent class. At runtime, the inspector instantiates
- * one instance of each inspection helper, and handles visiting them in the correct inheritance
- * order for each type it inspects.
- *
- * Properties are read from the top of the type tree to the bottom, so that classes that override
- * a property in their parent class can overwrite it in the reader. In general, properties will
- * cleanly inherit through their getters, and the inspector runtime will read the properties of a
- * parent class via the parent's inspection helper, and the child helper will only read properties
- * added or changed since the parent was defined.
- *
- * Only one child traversal is considered for each class. If a descendant class defines a
- * different child traversal than its parent, only the bottom traversal is used. If a class does
- * not define its own child traversal, but one of its ancestors does, the bottom-most ancestor's
- * traversal will be used.
- *
- * @param <T> The type of inspectable this helper operates on
- * @hide
- */
-public interface InspectionHelper<T> {
-    /**
-     * Map the string names of the properties this helper knows about to integer IDs.
-     *
-     * Each helper is responsible for storing the integer IDs of all its properties. This is the
-     * only method that is allowed to modify the stored IDs.
-     *
-     * Calling {@link #readProperties(T, PropertyReader)} before calling this results in
-     * undefined behavior.
-     *
-     * @param propertyMapper A {@link PropertyMapper} or lambda which maps string names to IDs.
-     */
-    void mapProperties(@NonNull PropertyMapper propertyMapper);
-
-    /**
-     * Read the values of an instance of this helper's type into a {@link PropertyReader}.
-     *
-     * This method needs to return the property IDs stored by
-     * {@link #mapProperties(PropertyMapper)}. Implementations should track if their properties
-     * have been mapped and throw a {@link UninitializedPropertyMapException} if this method is
-     * called before {mapProperties}.
-     *
-     * @param inspectable A object of type {@link T} to read the properties of.
-     * @param propertyReader An object which receives the property IDs and values.
-     */
-    void readProperties(@NonNull T inspectable, @NonNull PropertyReader propertyReader);
-
-    /**
-     * Query if this inspectable type can potentially have child nodes.
-     *
-     * E.g.: any descendant of {@link android.view.ViewGroup} can have child nodes, but a leaf
-     * view like {@link android.widget.ImageView} may not.
-     *
-     * The default implementation always returns false. If an implementing class overrides this, it
-     * should also define {@link #traverseChildren(T, ChildTraverser)}.
-     *
-     * @return True if this inspectable type can potentially have child nodes, false otherwise.
-     */
-    default boolean hasChildTraversal() {
-        return false;
-    }
-
-    /**
-     * Traverse the child nodes of an instance of this helper's type into a {@link ChildTraverser}.
-     *
-     * This provides the ability to traverse over a variety of collection APIs (e.g.: arrays,
-     * {@link Iterable}, or {@link java.util.Iterator}) in a uniform fashion. The traversal must be
-     * in the order defined by this helper's type. If the getter returns null, the helper must
-     * treat it as an empty collection.
-     *
-     * The default implementation throws a {@link NoChildTraversalException}. If
-     * {@link #hasChildTraversal()} returns is overriden to return true, it is expected that the
-     * implementing class will also override this method and provide a traversal.
-     *
-     * @param inspectable An object of type {@link T} to traverse the child nodes of.
-     * @param childTraverser A {@link ChildTraverser} or lamba to receive the children in order.
-     * @throws NoChildTraversalException If there is no defined child traversal
-     */
-    default void traverseChildren(
-            @NonNull T inspectable,
-            @SuppressWarnings("unused") @NonNull ChildTraverser childTraverser) {
-        throw new NoChildTraversalException(inspectable.getClass());
-    }
-
-    /**
-     * Get an optional name to display to developers for inspection nodes of this helper's type.
-     *
-     * The default implementation returns null, which will cause the runtime to use the class's
-     * simple name as defined by {@link Class#getSimpleName()} as the node name.
-     *
-     * If the type of this helper is inflated from XML, this method should be overridden to return
-     * the string used as the tag name for this type in XML.
-     *
-     * @return A string to use as the node name, or null to use the simple class name fallback.
-     */
-    @Nullable
-    default String getNodeName() {
-        return null;
-    }
-
-    /**
-     * Thrown by {@link #readProperties(Object, PropertyReader)} if called before
-     * {@link #mapProperties(PropertyMapper)}.
-     */
-    class UninitializedPropertyMapException extends RuntimeException {
-        public UninitializedPropertyMapException() {
-            super("Unable to read properties of an inspectable before mapping their IDs.");
-        }
-    }
-
-    /**
-     * Thrown by {@link #traverseChildren(Object, ChildTraverser)} if no child traversal exists.
-     */
-    class NoChildTraversalException extends RuntimeException {
-        public NoChildTraversalException(Class cls) {
-            super(String.format(
-                    "Class %s does not have a defined child traversal. Cannot traverse children.",
-                    cls.getCanonicalName()
-            ));
-        }
-    }
-}
diff --git a/core/java/android/view/inspector/IntEnumMapping.java b/core/java/android/view/inspector/IntEnumMapping.java
new file mode 100644
index 0000000..69f6dce
--- /dev/null
+++ b/core/java/android/view/inspector/IntEnumMapping.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 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.view.inspector;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+
+import java.util.ArrayList;
+
+/**
+ * Maps the values of an {int} property to string names for properties that encode enumerations.
+ *
+ * An {@link InspectionCompanion} may provide an instance of this class to a {@link PropertyMapper}
+ * for enumerations packed into primitive {int} properties.
+ *
+ * This class is immutable, and must be constructed by a {@link Builder}.
+ *
+ * @see PropertyMapper#mapIntEnum(String, int, IntEnumMapping)
+ */
+public final class IntEnumMapping {
+    private final Value[] mValues;
+
+    /**
+     * Map from a property value to a string name.
+     *
+     * @param value The value of a property
+     * @return The name of the enumeration value, null if the value is not mapped
+     */
+    @Nullable
+    public String nameOf(int value) {
+        for (Value valueTuple : mValues) {
+            if (valueTuple.mValue == value) {
+                return valueTuple.mName;
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Create a new instance from a builder.
+     *
+     * This constructor is private, use {@link Builder#build()} instead.
+     *
+     * @param builder A builder to create from
+     */
+    private IntEnumMapping(Builder builder) {
+        mValues = builder.mValues.toArray(new Value[builder.mValues.size()]);
+    }
+
+    /**
+     * A builder for {@link IntEnumMapping}
+     */
+    public static final class Builder {
+        private final ArrayList<Value> mValues;
+
+        public Builder() {
+            mValues = new ArrayList<>();
+        }
+
+        /**
+         * Add a new entry to this mapping.
+         *
+         * @param name Name of the enumeration value
+         * @param value Int value of the enumeration value
+         * @return This builder
+         */
+        @NonNull
+        public Builder addValue(@NonNull String name, int value) {
+            mValues.add(new Value(name, value));
+            return this;
+        }
+
+        /**
+         * Clear the builder, allowing for recycling.
+         */
+        public void clear() {
+            mValues.clear();
+        }
+
+        /**
+         * Build a new {@link IntEnumMapping} from this builder
+         *
+         * @return A new mapping
+         */
+        @NonNull
+        public IntEnumMapping build() {
+            return new IntEnumMapping(this);
+        }
+    }
+
+    /**
+     * Inner class that holds the name and value of an enumeration value.
+     */
+    private static final class Value {
+        @NonNull private final String mName;
+        private final int mValue;
+
+        private Value(@NonNull String name, int value) {
+            mName = name;
+            mValue = value;
+        }
+    }
+}
diff --git a/core/java/android/view/inspector/IntFlagMapping.java b/core/java/android/view/inspector/IntFlagMapping.java
new file mode 100644
index 0000000..dcb87e1
--- /dev/null
+++ b/core/java/android/view/inspector/IntFlagMapping.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright 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.view.inspector;
+
+import android.annotation.NonNull;
+
+import java.util.ArrayList;
+
+/**
+ * Maps the values of an {int} property to arrays of string for properties that encode flags.
+ *
+ * An {@link InspectionCompanion} may provide an instance of this class to a {@link PropertyMapper}
+ * for flag values packed into primitive {int} properties.
+ *
+ * Each flag has a
+ *
+ * This class is immutable, and must be constructed by a {@link Builder}.
+ *
+ * @see PropertyMapper#mapIntFlag(String, int, IntFlagMapping)
+ */
+public final class IntFlagMapping {
+    private final Flag[] mFlags;
+
+    /**
+     * Get an array of the names of enabled flags for a given property value.
+     *
+     * @param value The value of the property
+     * @return The names of the enabled flags
+     */
+    @NonNull
+    public String[] namesOf(int value) {
+        ArrayList<String> enabledFlagNames = new ArrayList<>(mFlags.length);
+
+        for (Flag flag : mFlags) {
+            if (flag.isEnabledFor(value)) {
+                enabledFlagNames.add(flag.mName);
+            }
+        }
+
+        return enabledFlagNames.toArray(new String[enabledFlagNames.size()]);
+    }
+
+    /**
+     * Create a new instance from a builder.
+     *
+     * This constructor is private, use {@link Builder#build()} instead.
+     *
+     * @param builder A builder to create from
+     */
+    private IntFlagMapping(Builder builder) {
+        mFlags = builder.mFlags.toArray(new Flag[builder.mFlags.size()]);
+    }
+
+    /**
+     * A builder for {@link IntFlagMapping}.
+     */
+    public static final class Builder {
+        private ArrayList<Flag> mFlags;
+
+        public Builder() {
+            mFlags = new ArrayList<>();
+        }
+
+        /**
+         * Add a new flag without a mask.
+         *
+         * The target value will be used as a mask, to handle the common case where flag values
+         * are not mutually exclusive. The flag will be considered enabled for a property value if
+         * the result of bitwise anding the target and the value equals the target, that is:
+         * {(value & target) == target}.
+         *
+         * @param name The name of the flag
+         * @param target The value to compare against
+         * @return This builder
+         */
+        @NonNull
+        public Builder addFlag(@NonNull String name, int target) {
+            mFlags.add(new Flag(name, target, target));
+            return this;
+        }
+
+        /**
+         * Add a new flag with a mask.
+         *
+         * The flag will be considered enabled for a property value if the result of bitwise anding
+         * the value and the mask equals the target, that is: {(value & mask) == target}.
+         *
+         * @param name The name of the flag
+         * @param target The value to compare against
+         * @param mask A bit mask
+         * @return This builder
+         */
+        @NonNull
+        public Builder addFlag(@NonNull String name, int target, int mask) {
+            mFlags.add(new Flag(name, target, mask));
+            return this;
+        }
+
+        /**
+         * Clear the builder, allowing for recycling.
+         */
+        public void clear() {
+            mFlags.clear();
+        }
+
+        /**
+         * Build a new {@link IntFlagMapping} from this builder.
+         *
+         * @return A new mapping
+         */
+        @NonNull
+        public IntFlagMapping build() {
+            return new IntFlagMapping(this);
+        }
+    }
+
+    /**
+     * Inner class that holds the name, mask, and target value of a flag
+     */
+    private static final class Flag {
+        @NonNull private final String mName;
+        private final int mTarget;
+        private final int mMask;
+
+        private Flag(@NonNull String name, int target, int mask) {
+            mName = name;
+            mTarget = target;
+            mMask = mask;
+        }
+
+        /**
+         * Compare the supplied property value against the mask and taget.
+         *
+         * @param value The value to check
+         * @return True if this flag is enabled
+         */
+        private boolean isEnabledFor(int value) {
+            return (value & mMask) == mTarget;
+        }
+    }
+}
diff --git a/core/java/android/view/inspector/PropertyMapper.java b/core/java/android/view/inspector/PropertyMapper.java
index 35550bd..5fb291b 100644
--- a/core/java/android/view/inspector/PropertyMapper.java
+++ b/core/java/android/view/inspector/PropertyMapper.java
@@ -16,102 +16,160 @@
 
 package android.view.inspector;
 
+import android.annotation.AttrRes;
 import android.annotation.NonNull;
 
 /**
  * An interface for mapping the string names of inspectable properties to integer identifiers.
  *
- * This interface is consumed by {@link InspectionHelper#mapProperties(PropertyMapper)}.
+ * This interface is consumed by {@link InspectionCompanion#mapProperties(PropertyMapper)}.
  *
  * Mapping properties to IDs enables quick comparisons against shadow copies of inspectable
  * objects without performing a large number of string comparisons.
  *
- * @see InspectionHelper#mapProperties(PropertyMapper)
- * @hide
+ * @see InspectionCompanion#mapProperties(PropertyMapper)
  */
 public interface PropertyMapper {
     /**
      * Map a string name to an integer ID for a primitive boolean property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapBoolean(@NonNull String name);
+    int mapBoolean(@NonNull String name, @AttrRes int attributeId);
 
     /**
      * Map a string name to an integer ID for a primitive byte property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapByte(@NonNull String name);
+    int mapByte(@NonNull String name, @AttrRes int attributeId);
 
     /**
      * Map a string name to an integer ID for a primitive char property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapChar(@NonNull String name);
+    int mapChar(@NonNull String name, @AttrRes int attributeId);
 
     /**
      * Map a string name to an integer ID for a primitive double property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapDouble(@NonNull String name);
+    int mapDouble(@NonNull String name, @AttrRes int attributeId);
 
     /**
      * Map a string name to an integer ID for a primitive float property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapFloat(@NonNull String name);
+    int mapFloat(@NonNull String name, @AttrRes int attributeId);
 
     /**
      * Map a string name to an integer ID for a primitive int property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapInt(@NonNull String name);
+    int mapInt(@NonNull String name, @AttrRes int attributeId);
 
     /**
      * Map a string name to an integer ID for a primitive long property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapLong(@NonNull String name);
+    int mapLong(@NonNull String name, @AttrRes int attributeId);
 
     /**
      * Map a string name to an integer ID for a primitive short property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapShort(@NonNull String name);
+    int mapShort(@NonNull String name, @AttrRes int attributeId);
 
     /**
      * Map a string name to an integer ID for an object property.
      *
      * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
      * @return An integer ID for the property
      * @throws PropertyConflictException If the property name is already mapped as another type.
      */
-    int mapObject(@NonNull String name);
+    int mapObject(@NonNull String name, @AttrRes int attributeId);
 
     /**
+     * Map a string name to an integer ID for a color property.
+     *
+     * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
+     * @return An integer ID for the property
+     * @throws PropertyConflictException If the property name is already mapped as another type.
+     * @see android.graphics.Color
+     */
+    int mapColor(@NonNull String name, @AttrRes int attributeId);
+
+    /**
+     * Map a string name to an integer ID for a gravity property.
+     *
+     * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
+     * @return An integer ID for the property
+     * @throws PropertyConflictException If the property name is already mapped as another type.
+     * @see android.view.Gravity
+     */
+    int mapGravity(@NonNull String name, @AttrRes int attributeId);
+
+    /**
+     * Map a string name to an integer ID for an enumeration packed into an int property.
+     *
+     * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
+     * @param mapping A mapping from int to String
+     * @return An integer ID for the property
+     * @throws PropertyConflictException If the property name is already mapped as another type.
+     */
+    int mapIntEnum(
+            @NonNull String name,
+            @AttrRes int attributeId,
+            @NonNull IntEnumMapping mapping);
+
+    /**
+     * Map a string name to an integer ID for a flag set packed into an int property.
+     *
+     * @param name The name of the property
+     * @param attributeId If the property is from an XML attribute, the resource ID of the property
+     * @param mapping A mapping from int to an array of strings
+     * @return An integer ID for the property
+     * @throws PropertyConflictException If the property name is already mapped as another type.
+     */
+    int mapIntFlag(
+            @NonNull String name,
+            @AttrRes int attributeId,
+            @NonNull IntFlagMapping mapping);
+    /**
      * Thrown from a map method if a property name is already mapped as different type.
      */
     class PropertyConflictException extends RuntimeException {
diff --git a/core/java/android/view/inspector/PropertyReader.java b/core/java/android/view/inspector/PropertyReader.java
index df81c10..fd83e8d 100644
--- a/core/java/android/view/inspector/PropertyReader.java
+++ b/core/java/android/view/inspector/PropertyReader.java
@@ -16,19 +16,21 @@
 
 package android.view.inspector;
 
+import android.annotation.ColorInt;
+import android.annotation.ColorLong;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.graphics.Color;
 
 /**
  * An interface for reading the properties of an inspectable object.
  *
- * Used as the parameter for {@link InspectionHelper#readProperties(Object, PropertyReader)}.
+ * Used as the parameter for {@link InspectionCompanion#readProperties(Object, PropertyReader)}.
  * It has separate methods for all primitive types to avoid autoboxing overhead if a concrete
  * implementation is able to work with primitives. Implementations should be prepared to accept
  * {null} as the value of {@link PropertyReader#readObject(int, Object)}.
  *
- * @see InspectionHelper#readProperties(Object, PropertyReader)
- * @hide
+ * @see InspectionCompanion#readProperties(Object, PropertyReader)
  */
 public interface PropertyReader {
     /**
@@ -115,6 +117,60 @@
     void readObject(int id, @Nullable Object value);
 
     /**
+     * Read a color packed into a {@link ColorInt} as a property.
+     *
+     * @param id Identifier of the property from a {@link PropertyMapper}
+     * @param value Value of the property
+     * @throws PropertyTypeMismatchException If the property ID is not mapped as a color
+     */
+    void readColor(int id, @ColorInt int value);
+
+    /**
+     * Read a color packed into a {@link ColorLong} as a property.
+     *
+     * @param id Identifier of the property from a {@link PropertyMapper}
+     * @param value Value of the property
+     * @throws PropertyTypeMismatchException If the property ID is not mapped as a color
+     */
+    void readColor(int id, @ColorLong long value);
+
+    /**
+     * Read a {@link Color} object as a property.
+     *
+     * @param id Identifier of the property from a {@link PropertyMapper}
+     * @param value Value of the property
+     * @throws PropertyTypeMismatchException If the property ID is not mapped as a color
+     */
+    void readColor(int id, @Nullable Color value);
+
+    /**
+     * Read {@link android.view.Gravity} packed into an primitive {int}.
+     *
+     * @param id Identifier of the property from a {@link PropertyMapper}
+     * @param value Value of the property
+     * @throws PropertyTypeMismatchException If the property ID is not mapped as a gravity property
+     */
+    void readGravity(int id, int value);
+
+    /**
+     * Read an enumeration packed into a primitive {int}.
+     *
+     * @param id Identifier of the property from a {@link PropertyMapper}
+     * @param value Value of the property
+     * @throws PropertyTypeMismatchException If the property ID is not mapped as an object
+     */
+    void readIntEnum(int id, int value);
+
+    /**
+     * Read a flag packed into a primitive {int}.
+     *
+     * @param id Identifier of the property from a {@link PropertyMapper}
+     * @param value Value of the property
+     * @throws PropertyTypeMismatchException If the property ID is not mapped as an object
+     */
+    void readIntFlag(int id, int value);
+
+    /**
      * Thrown if a client calls a typed read method for a property of a different type.
      */
     class PropertyTypeMismatchException extends RuntimeException {
diff --git a/core/java/android/view/intelligence/ContentCaptureEvent.java b/core/java/android/view/intelligence/ContentCaptureEvent.java
index befcb55..f636281 100644
--- a/core/java/android/view/intelligence/ContentCaptureEvent.java
+++ b/core/java/android/view/intelligence/ContentCaptureEvent.java
@@ -163,7 +163,7 @@
      * Gets optional flags associated with the event.
      *
      * @return either {@code 0} or
-     * {@link android.view.intelligence.IntelligenceManager#FLAG_USER_INPUT}.
+     * {@link android.view.intelligence.ContentCaptureManager#FLAG_USER_INPUT}.
      */
     public int getFlags() {
         return mFlags;
diff --git a/core/java/android/view/intelligence/ContentCaptureManager.java b/core/java/android/view/intelligence/ContentCaptureManager.java
new file mode 100644
index 0000000..45518d5
--- /dev/null
+++ b/core/java/android/view/intelligence/ContentCaptureManager.java
@@ -0,0 +1,483 @@
+/*
+ * 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.view.intelligence;
+
+import static android.view.intelligence.ContentCaptureEvent.TYPE_VIEW_APPEARED;
+import static android.view.intelligence.ContentCaptureEvent.TYPE_VIEW_DISAPPEARED;
+import static android.view.intelligence.ContentCaptureEvent.TYPE_VIEW_TEXT_CHANGED;
+
+import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemService;
+import android.content.ComponentName;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.service.intelligence.InteractionSessionId;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewStructure;
+import android.view.autofill.AutofillId;
+import android.view.intelligence.ContentCaptureEvent.EventType;
+
+import com.android.internal.os.IResultReceiver;
+import com.android.internal.util.Preconditions;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/*
+ * NOTE: all methods in this class should return right away, or do the real work in a handler
+ * thread.
+ *
+ * Hence, the only field that must be thread-safe is mEnabled, which is called at the beginning
+ * of every method.
+ */
+/**
+ * TODO(b/111276913): add javadocs / implement
+ */
+@SystemService(Context.CONTENT_CAPTURE_MANAGER_SERVICE)
+public final class ContentCaptureManager {
+
+    private static final String TAG = "ContentCaptureManager";
+
+    // TODO(b/111276913): define a way to dynamically set them(for example, using settings?)
+    private static final boolean VERBOSE = false;
+    private static final boolean DEBUG = true; // STOPSHIP if not set to false
+
+    /**
+     * Used to indicate that a text change was caused by user input (for example, through IME).
+     */
+    //TODO(b/111276913): link to notifyTextChanged() method once available
+    public static final int FLAG_USER_INPUT = 0x1;
+
+    /**
+     * Initial state, when there is no session.
+     *
+     * @hide
+     */
+    public static final int STATE_UNKNOWN = 0;
+
+    /**
+     * Service's startSession() was called, but server didn't confirm it was created yet.
+     *
+     * @hide
+     */
+    public static final int STATE_WAITING_FOR_SERVER = 1;
+
+    /**
+     * Session is active.
+     *
+     * @hide
+     */
+    public static final int STATE_ACTIVE = 2;
+
+    /**
+     * Session is disabled.
+     *
+     * @hide
+     */
+    public static final int STATE_DISABLED = 3;
+
+    private static final String BG_THREAD_NAME = "intel_svc_streamer_thread";
+
+    /**
+     * Maximum number of events that are buffered before sent to the app.
+     */
+    // TODO(b/111276913): use settings
+    private static final int MAX_BUFFER_SIZE = 100;
+
+    @NonNull
+    private final AtomicBoolean mDisabled = new AtomicBoolean();
+
+    @NonNull
+    private final Context mContext;
+
+    @Nullable
+    private final IIntelligenceManager mService;
+
+    @Nullable
+    private InteractionSessionId mId;
+
+    private int mState = STATE_UNKNOWN;
+
+    @Nullable
+    private IBinder mApplicationToken;
+
+    @Nullable
+    private ComponentName mComponentName;
+
+    /**
+     * List of events held to be sent as a batch.
+     */
+    @Nullable
+    private ArrayList<ContentCaptureEvent> mEvents;
+
+    // TODO(b/111276913): use UI Thread directly (as calls are one-way) or a shared thread / handler
+    // held at the Application level
+    private final Handler mHandler;
+
+    /** @hide */
+    public ContentCaptureManager(@NonNull Context context, @Nullable IIntelligenceManager service) {
+        mContext = Preconditions.checkNotNull(context, "context cannot be null");
+        if (VERBOSE) {
+            Log.v(TAG, "Constructor for " + context.getPackageName());
+        }
+        mService = service;
+        // TODO(b/111276913): use an existing bg thread instead...
+        final HandlerThread bgThread = new HandlerThread(BG_THREAD_NAME);
+        bgThread.start();
+        mHandler = Handler.createAsync(bgThread.getLooper());
+    }
+
+    /** @hide */
+    public void onActivityCreated(@NonNull IBinder token, @NonNull ComponentName componentName) {
+        if (!isContentCaptureEnabled()) return;
+
+        mHandler.sendMessage(obtainMessage(ContentCaptureManager::handleStartSession, this,
+                token, componentName));
+    }
+
+    private void handleStartSession(@NonNull IBinder token, @NonNull ComponentName componentName) {
+        if (mState != STATE_UNKNOWN) {
+            // TODO(b/111276913): revisit this scenario
+            Log.w(TAG, "ignoring handleStartSession(" + token + ") while on state "
+                    + getStateAsString(mState));
+            return;
+        }
+        mState = STATE_WAITING_FOR_SERVER;
+        mId = new InteractionSessionId();
+        mApplicationToken = token;
+        mComponentName = componentName;
+
+        if (VERBOSE) {
+            Log.v(TAG, "handleStartSession(): token=" + token + ", act="
+                    + getActivityDebugName() + ", id=" + mId);
+        }
+        final int flags = 0; // TODO(b/111276913): get proper flags
+
+        try {
+            mService.startSession(mContext.getUserId(), mApplicationToken, componentName,
+                    mId, flags, new IResultReceiver.Stub() {
+                        @Override
+                        public void send(int resultCode, Bundle resultData) {
+                            handleSessionStarted(resultCode);
+                        }
+                    });
+        } catch (RemoteException e) {
+            Log.w(TAG, "Error starting session for " + componentName.flattenToShortString() + ": "
+                    + e);
+        }
+    }
+
+    private void handleSessionStarted(int resultCode) {
+        mState = resultCode;
+        mDisabled.set(mState == STATE_DISABLED);
+        if (VERBOSE) {
+            Log.v(TAG, "onActivityStarted() result: code=" + resultCode + ", id=" + mId
+                    + ", state=" + getStateAsString(mState) + ", disabled=" + mDisabled.get());
+        }
+    }
+
+    private void handleSendEvent(@NonNull ContentCaptureEvent event, boolean forceFlush) {
+        if (mEvents == null) {
+            if (VERBOSE) {
+                Log.v(TAG, "Creating buffer for " + MAX_BUFFER_SIZE + " events");
+            }
+            mEvents = new ArrayList<>(MAX_BUFFER_SIZE);
+        }
+        mEvents.add(event);
+        final int numberEvents = mEvents.size();
+        if (numberEvents < MAX_BUFFER_SIZE && !forceFlush) {
+            // Buffering events, return right away...
+            return;
+        }
+
+        if (mState != STATE_ACTIVE) {
+            // Callback from startSession hasn't been called yet - typically happens on system
+            // apps that are started before the system service
+            // TODO(b/111276913): try to ignore session while system is not ready / boot
+            // not complete instead. Similarly, the manager service should return right away
+            // when the user does not have a service set
+            if (VERBOSE) {
+                Log.v(TAG, "Closing session for " + getActivityDebugName()
+                        + " after " + numberEvents + " delayed events and state "
+                        + getStateAsString(mState));
+            }
+            handleResetState();
+            // TODO(b/111276913): blacklist activity / use special flag to indicate that
+            // when it's launched again
+            return;
+        }
+
+        if (mId == null) {
+            // Sanity check - should not happen
+            Log.wtf(TAG, "null session id for " + getActivityDebugName());
+            return;
+        }
+
+        try {
+            if (DEBUG) {
+                Log.d(TAG, "Flushing " + numberEvents + " event(s) for " + getActivityDebugName());
+            }
+            mService.sendEvents(mContext.getUserId(), mId, mEvents);
+            // TODO(b/111276913): decide whether we should clear or set it to null, as each has
+            // its own advantages: clearing will save extra allocations while the session is
+            // active, while setting to null would save memory if there's no more event coming.
+            mEvents.clear();
+        } catch (RemoteException e) {
+            Log.w(TAG, "Error sending " + numberEvents + " for " + getActivityDebugName()
+                    + ": " + e);
+        }
+    }
+
+    /**
+     * Used for intermediate events (i.e, other than created and destroyed).
+     *
+     * @hide
+     */
+    public void onActivityLifecycleEvent(@EventType int type) {
+        if (!isContentCaptureEnabled()) return;
+        if (VERBOSE) {
+            Log.v(TAG, "onActivityLifecycleEvent() for " + getActivityDebugName()
+                    + ": " + ContentCaptureEvent.getTypeAsString(type));
+        }
+        mHandler.sendMessage(obtainMessage(ContentCaptureManager::handleSendEvent, this,
+                new ContentCaptureEvent(type), /* forceFlush= */ true));
+    }
+
+    /** @hide */
+    public void onActivityDestroyed() {
+        if (!isContentCaptureEnabled()) return;
+
+        //TODO(b/111276913): check state (for example, how to handle if it's waiting for remote
+        // id) and send it to the cache of batched commands
+        if (VERBOSE) {
+            Log.v(TAG, "onActivityDestroyed(): state=" + getStateAsString(mState)
+                    + ", mId=" + mId);
+        }
+
+        mHandler.sendMessage(obtainMessage(ContentCaptureManager::handleFinishSession, this));
+    }
+
+    private void handleFinishSession() {
+        //TODO(b/111276913): right now both the ContentEvents and lifecycle sessions are sent
+        // to system_server, so it's ok to call both in sequence here. But once we split
+        // them so the events are sent directly to the service, we need to make sure they're
+        // sent in order.
+        try {
+            if (DEBUG) {
+                Log.d(TAG, "Finishing session " + mId + " with "
+                        + (mEvents == null ? 0 : mEvents.size()) + " event(s) for "
+                        + getActivityDebugName());
+            }
+
+            mService.finishSession(mContext.getUserId(), mId, mEvents);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error finishing session " + mId + " for " + getActivityDebugName()
+                    + ": " + e);
+        } finally {
+            handleResetState();
+        }
+    }
+
+    private void handleResetState() {
+        mState = STATE_UNKNOWN;
+        mId = null;
+        mApplicationToken = null;
+        mComponentName = null;
+        mEvents = null;
+    }
+
+    /**
+     * Notifies the Intelligence Service that a node has been added to the view structure.
+     *
+     * <p>Typically called "manually" by views that handle their own virtual view hierarchy, or
+     * automatically by the Android System for views that return {@code true} on
+     * {@link View#onProvideContentCaptureStructure(ViewStructure, int)}.
+     *
+     * @param node node that has been added.
+     */
+    public void notifyViewAppeared(@NonNull ViewStructure node) {
+        Preconditions.checkNotNull(node);
+        if (!isContentCaptureEnabled()) return;
+
+        if (!(node instanceof ViewNode.ViewStructureImpl)) {
+            throw new IllegalArgumentException("Invalid node class: " + node.getClass());
+        }
+
+        mHandler.sendMessage(obtainMessage(ContentCaptureManager::handleSendEvent, this,
+                new ContentCaptureEvent(TYPE_VIEW_APPEARED)
+                        .setViewNode(((ViewNode.ViewStructureImpl) node).mNode),
+                        /* forceFlush= */ false));
+    }
+
+    /**
+     * Notifies the Intelligence Service that a node has been removed from the view structure.
+     *
+     * <p>Typically called "manually" by views that handle their own virtual view hierarchy, or
+     * automatically by the Android System for standard views.
+     *
+     * @param id id of the node that has been removed.
+     */
+    public void notifyViewDisappeared(@NonNull AutofillId id) {
+        Preconditions.checkNotNull(id);
+        if (!isContentCaptureEnabled()) return;
+
+        mHandler.sendMessage(obtainMessage(ContentCaptureManager::handleSendEvent, this,
+                new ContentCaptureEvent(TYPE_VIEW_DISAPPEARED).setAutofillId(id),
+                        /* forceFlush= */ false));
+    }
+
+    /**
+     * Notifies the Intelligence Service that the value of a text node has been changed.
+     *
+     * @param id of the node.
+     * @param text new text.
+     * @param flags either {@code 0} or {@link #FLAG_USER_INPUT} when the value was explicitly
+     * changed by the user (for example, through the keyboard).
+     */
+    public void notifyViewTextChanged(@NonNull AutofillId id, @Nullable CharSequence text,
+            int flags) {
+        Preconditions.checkNotNull(id);
+
+        if (!isContentCaptureEnabled()) return;
+
+        mHandler.sendMessage(obtainMessage(ContentCaptureManager::handleSendEvent, this,
+                new ContentCaptureEvent(TYPE_VIEW_TEXT_CHANGED, flags).setAutofillId(id)
+                        .setText(text), /* forceFlush= */ false));
+    }
+
+    /**
+     * Creates a {@link ViewStructure} for a "standard" view.
+     *
+     * @hide
+     */
+    @NonNull
+    public ViewStructure newViewStructure(@NonNull View view) {
+        return new ViewNode.ViewStructureImpl(view);
+    }
+
+    /**
+     * Creates a {@link ViewStructure} for a "virtual" view, so it can be passed to
+     * {@link #notifyViewAppeared(ViewStructure)} by the view managing the virtual view hierarchy.
+     *
+     * @param parentId id of the virtual view parent (it can be obtained by calling
+     * {@link ViewStructure#getAutofillId()} on the parent).
+     * @param virtualId id of the virtual child, relative to the parent.
+     *
+     * @return a new {@link ViewStructure} that can be used for Content Capture purposes.
+     */
+    @NonNull
+    public ViewStructure newVirtualViewStructure(@NonNull AutofillId parentId, int virtualId) {
+        return new ViewNode.ViewStructureImpl(parentId, virtualId);
+    }
+
+    /**
+     * Returns the component name of the system service that is consuming the captured events for
+     * the current user.
+     */
+    @Nullable
+    public ComponentName getServiceComponentName() {
+        //TODO(b/111276913): implement
+        return null;
+    }
+
+    /**
+     * Checks whether content capture is enabled for this activity.
+     */
+    public boolean isContentCaptureEnabled() {
+        return mService != null && !mDisabled.get();
+    }
+
+    /**
+     * Called by apps to explicitly enable or disable content capture.
+     *
+     * <p><b>Note: </b> this call is not persisted accross reboots, so apps should typically call
+     * it on {@link android.app.Activity#onCreate(android.os.Bundle, android.os.PersistableBundle)}.
+     */
+    public void setContentCaptureEnabled(boolean enabled) {
+        //TODO(b/111276913): implement
+    }
+
+    /** @hide */
+    public void dump(String prefix, PrintWriter pw) {
+        pw.print(prefix); pw.println("IntelligenceManager");
+        final String prefix2 = prefix + "  ";
+        pw.print(prefix2); pw.print("mContext: "); pw.println(mContext);
+        pw.print(prefix2); pw.print("user: "); pw.println(mContext.getUserId());
+        if (mService != null) {
+            pw.print(prefix2); pw.print("mService: "); pw.println(mService);
+        }
+        pw.print(prefix2); pw.print("mDisabled: "); pw.println(mDisabled.get());
+        pw.print(prefix2); pw.print("isEnabled(): "); pw.println(isContentCaptureEnabled());
+        if (mId != null) {
+            pw.print(prefix2); pw.print("id: "); pw.println(mId);
+        }
+        pw.print(prefix2); pw.print("state: "); pw.print(mState); pw.print(" (");
+        pw.print(getStateAsString(mState)); pw.println(")");
+        if (mApplicationToken != null) {
+            pw.print(prefix2); pw.print("app token: "); pw.println(mApplicationToken);
+        }
+        if (mComponentName != null) {
+            pw.print(prefix2); pw.print("component name: ");
+            pw.println(mComponentName.flattenToShortString());
+        }
+        if (mEvents != null) {
+            final int numberEvents = mEvents.size();
+            pw.print(prefix2); pw.print("buffered events: "); pw.print(numberEvents);
+            pw.print('/'); pw.println(MAX_BUFFER_SIZE);
+            if (VERBOSE && numberEvents > 0) {
+                final String prefix3 = prefix2 + "  ";
+                for (int i = 0; i < numberEvents; i++) {
+                    final ContentCaptureEvent event = mEvents.get(i);
+                    pw.print(prefix3); pw.print(i); pw.print(": "); event.dump(pw);
+                    pw.println();
+                }
+            }
+        }
+    }
+
+    /**
+     * Gets a string that can be used to identify the activity on logging statements.
+     */
+    private String getActivityDebugName() {
+        return mComponentName == null ? mContext.getPackageName()
+                : mComponentName.flattenToShortString();
+    }
+
+    @NonNull
+    private static String getStateAsString(int state) {
+        switch (state) {
+            case STATE_UNKNOWN:
+                return "UNKNOWN";
+            case STATE_WAITING_FOR_SERVER:
+                return "WAITING_FOR_SERVER";
+            case STATE_ACTIVE:
+                return "ACTIVE";
+            case STATE_DISABLED:
+                return "DISABLED";
+            default:
+                return "INVALID:" + state;
+        }
+    }
+}
diff --git a/core/java/android/view/intelligence/IIntelligenceManager.aidl b/core/java/android/view/intelligence/IIntelligenceManager.aidl
index 2f128de..882fb26 100644
--- a/core/java/android/view/intelligence/IIntelligenceManager.aidl
+++ b/core/java/android/view/intelligence/IIntelligenceManager.aidl
@@ -28,6 +28,7 @@
 /**
  * {@hide}
  */
+// TODO(b/111276913): rename once the final name is defined
 oneway interface IIntelligenceManager {
     /**
       * Starts a session, sending the "remote" sessionId to the receiver.
@@ -38,7 +39,8 @@
     /**
       * Finishes a session.
       */
-    void finishSession(int userId, in InteractionSessionId sessionId);
+    void finishSession(int userId, in InteractionSessionId sessionId,
+                       in List<ContentCaptureEvent> events);
 
     /**
       * Sends a batch of events
diff --git a/core/java/android/view/intelligence/IntelligenceManager.java b/core/java/android/view/intelligence/IntelligenceManager.java
deleted file mode 100644
index dfa52d9..0000000
--- a/core/java/android/view/intelligence/IntelligenceManager.java
+++ /dev/null
@@ -1,554 +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.view.intelligence;
-
-import static android.view.intelligence.ContentCaptureEvent.TYPE_VIEW_APPEARED;
-import static android.view.intelligence.ContentCaptureEvent.TYPE_VIEW_DISAPPEARED;
-import static android.view.intelligence.ContentCaptureEvent.TYPE_VIEW_TEXT_CHANGED;
-
-import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.annotation.SystemApi;
-import android.annotation.SystemService;
-import android.content.ComponentName;
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.service.intelligence.InteractionSessionId;
-import android.util.Log;
-import android.view.View;
-import android.view.ViewStructure;
-import android.view.autofill.AutofillId;
-import android.view.intelligence.ContentCaptureEvent.EventType;
-
-import com.android.internal.annotations.GuardedBy;
-import com.android.internal.os.IResultReceiver;
-import com.android.internal.util.Preconditions;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-/**
- * TODO(b/111276913): add javadocs / implement
- */
-@SystemService(Context.INTELLIGENCE_MANAGER_SERVICE)
-public final class IntelligenceManager {
-
-    private static final String TAG = "IntelligenceManager";
-
-    // TODO(b/111276913): define a way to dynamically set them(for example, using settings?)
-    private static final boolean VERBOSE = false;
-    private static final boolean DEBUG = true; // STOPSHIP if not set to false
-
-    /**
-     * Used to indicate that a text change was caused by user input (for example, through IME).
-     */
-    //TODO(b/111276913): link to notifyTextChanged() method once available
-    public static final int FLAG_USER_INPUT = 0x1;
-
-    /**
-     * Initial state, when there is no session.
-     *
-     * @hide
-     */
-    public static final int STATE_UNKNOWN = 0;
-
-    /**
-     * Service's startSession() was called, but server didn't confirm it was created yet.
-     *
-     * @hide
-     */
-    public static final int STATE_WAITING_FOR_SERVER = 1;
-
-    /**
-     * Session is active.
-     *
-     * @hide
-     */
-    public static final int STATE_ACTIVE = 2;
-
-    /**
-     * Session is disabled.
-     *
-     * @hide
-     */
-    public static final int STATE_DISABLED = 3;
-
-    private static final String BG_THREAD_NAME = "intel_svc_streamer_thread";
-
-    /**
-     * Maximum number of events that are delayed for an app.
-     *
-     * <p>If the session is not started after the limit is reached, it's discarded.
-     */
-    private static final int MAX_DELAYED_SIZE = 20;
-
-    private final Context mContext;
-
-    @Nullable
-    private final IIntelligenceManager mService;
-
-    private final Object mLock = new Object();
-
-    @Nullable
-    @GuardedBy("mLock")
-    private InteractionSessionId mId;
-
-    @GuardedBy("mLock")
-    private int mState = STATE_UNKNOWN;
-
-    @GuardedBy("mLock")
-    private IBinder mApplicationToken;
-
-    // TODO(b/111276913): replace by an interface name implemented by Activity, similar to
-    // AutofillClient
-    @GuardedBy("mLock")
-    private ComponentName mComponentName;
-
-    // TODO(b/111276913): create using maximum batch size as capacity
-    /**
-     * List of events held to be sent as a batch.
-     */
-    @GuardedBy("mLock")
-    private final ArrayList<ContentCaptureEvent> mEvents = new ArrayList<>();
-
-    private final Handler mHandler;
-
-    /** @hide */
-    public IntelligenceManager(@NonNull Context context, @Nullable IIntelligenceManager service) {
-        mContext = Preconditions.checkNotNull(context, "context cannot be null");
-        mService = service;
-
-        // TODO(b/111276913): use an existing bg thread instead...
-        final HandlerThread bgThread = new HandlerThread(BG_THREAD_NAME);
-        bgThread.start();
-        mHandler = Handler.createAsync(bgThread.getLooper());
-    }
-
-    /** @hide */
-    public void onActivityCreated(@NonNull IBinder token, @NonNull ComponentName componentName) {
-        if (!isContentCaptureEnabled()) return;
-
-        synchronized (mLock) {
-            if (mState != STATE_UNKNOWN) {
-                // TODO(b/111276913): revisit this scenario
-                Log.w(TAG, "ignoring onActivityStarted(" + token + ") while on state "
-                        + getStateAsString(mState));
-                return;
-            }
-            mState = STATE_WAITING_FOR_SERVER;
-            mId = new InteractionSessionId();
-            mApplicationToken = token;
-            mComponentName = componentName;
-
-            if (VERBOSE) {
-                Log.v(TAG, "onActivityCreated(): token=" + token + ", act="
-                        + getActivityDebugNameLocked() + ", id=" + mId);
-            }
-            final int flags = 0; // TODO(b/111276913): get proper flags
-
-            try {
-                mService.startSession(mContext.getUserId(), mApplicationToken, componentName,
-                        mId, flags, new IResultReceiver.Stub() {
-                            @Override
-                            public void send(int resultCode, Bundle resultData)
-                                    throws RemoteException {
-                                synchronized (mLock) {
-                                    mState = resultCode;
-                                    if (VERBOSE) {
-                                        Log.v(TAG, "onActivityStarted() result: code=" + resultCode
-                                                + ", id=" + mId
-                                                + ", state=" + getStateAsString(mState));
-                                    }
-                                }
-                            }
-                        });
-            } catch (RemoteException e) {
-                throw e.rethrowFromSystemServer();
-            }
-        }
-    }
-
-    //TODO(b/111276913): should buffer event (and call service on handler thread), instead of
-    // calling right away
-    private void sendEvent(@NonNull ContentCaptureEvent event) {
-        mHandler.sendMessage(obtainMessage(IntelligenceManager::handleSendEvent, this, event));
-    }
-
-    private void handleSendEvent(@NonNull ContentCaptureEvent event) {
-
-        //TODO(b/111276913): make a copy and don't use lock
-        synchronized (mLock) {
-            mEvents.add(event);
-            final int numberEvents = mEvents.size();
-            if (mState != STATE_ACTIVE) {
-                if (numberEvents >= MAX_DELAYED_SIZE) {
-                    // Typically happens on system apps that are started before the system service
-                    // is ready (like com.android.settings/.FallbackHome)
-                    //TODO(b/111276913): try to ignore session while system is not ready / boot
-                    // not complete instead. Similarly, the manager service should return right away
-                    // when the user does not have a service set
-                    if (VERBOSE) {
-                        Log.v(TAG, "Closing session for " + getActivityDebugNameLocked()
-                                + " after " + numberEvents + " delayed events and state "
-                                + getStateAsString(mState));
-                    }
-                    // TODO(b/111276913): blacklist activity / use special flag to indicate that
-                    // when it's launched again
-                    resetStateLocked();
-                    return;
-                }
-
-                if (VERBOSE) {
-                    Log.v(TAG, "Delaying " + numberEvents + " events for "
-                            + getActivityDebugNameLocked() + " while on state "
-                            + getStateAsString(mState));
-                }
-                return;
-            }
-
-            if (mId == null) {
-                // Sanity check - should not happen
-                Log.wtf(TAG, "null session id for " + mComponentName);
-                return;
-            }
-
-            //TODO(b/111276913): right now we're sending sending right away (unless not ready), but
-            // we should hold the events and flush later.
-            try {
-                if (DEBUG) {
-                    Log.d(TAG, "Sending " + numberEvents + " event(s) for "
-                            + getActivityDebugNameLocked());
-                }
-                mService.sendEvents(mContext.getUserId(), mId, mEvents);
-                mEvents.clear();
-            } catch (RemoteException e) {
-                throw e.rethrowFromSystemServer();
-            }
-        }
-    }
-
-    /**
-     * Used for intermediate events (i.e, other than created and destroyed).
-     *
-     * @hide
-     */
-    public void onActivityLifecycleEvent(@EventType int type) {
-        if (!isContentCaptureEnabled()) return;
-        if (VERBOSE) {
-            Log.v(TAG, "onActivityLifecycleEvent() for " + getActivityDebugNameLocked()
-                    + ": " + ContentCaptureEvent.getTypeAsString(type));
-        }
-        sendEvent(new ContentCaptureEvent(type));
-    }
-
-    /** @hide */
-    public void onActivityDestroyed() {
-        if (!isContentCaptureEnabled()) return;
-
-        synchronized (mLock) {
-            //TODO(b/111276913): check state (for example, how to handle if it's waiting for remote
-            // id) and send it to the cache of batched commands
-
-            if (VERBOSE) {
-                Log.v(TAG, "onActivityDestroyed(): state=" + getStateAsString(mState)
-                        + ", mId=" + mId);
-            }
-
-            try {
-                mService.finishSession(mContext.getUserId(), mId);
-                resetStateLocked();
-            } catch (RemoteException e) {
-                throw e.rethrowFromSystemServer();
-            }
-        }
-    }
-
-    @GuardedBy("mLock")
-    private void resetStateLocked() {
-        mState = STATE_UNKNOWN;
-        mId = null;
-        mApplicationToken = null;
-        mComponentName = null;
-        mEvents.clear();
-    }
-
-    /**
-     * Notifies the Intelligence Service that a node has been added to the view structure.
-     *
-     * <p>Typically called "manually" by views that handle their own virtual view hierarchy, or
-     * automatically by the Android System for views that return {@code true} on
-     * {@link View#onProvideContentCaptureStructure(ViewStructure, int)}.
-     *
-     * @param node node that has been added.
-     */
-    public void notifyViewAppeared(@NonNull ViewStructure node) {
-        Preconditions.checkNotNull(node);
-        if (!isContentCaptureEnabled()) return;
-
-        if (!(node instanceof ViewNode.ViewStructureImpl)) {
-            throw new IllegalArgumentException("Invalid node class: " + node.getClass());
-        }
-        sendEvent(new ContentCaptureEvent(TYPE_VIEW_APPEARED)
-                .setViewNode(((ViewNode.ViewStructureImpl) node).mNode));
-    }
-
-    /**
-     * Notifies the Intelligence Service that a node has been removed from the view structure.
-     *
-     * <p>Typically called "manually" by views that handle their own virtual view hierarchy, or
-     * automatically by the Android System for standard views.
-     *
-     * @param id id of the node that has been removed.
-     */
-    public void notifyViewDisappeared(@NonNull AutofillId id) {
-        Preconditions.checkNotNull(id);
-        if (!isContentCaptureEnabled()) return;
-
-        sendEvent(new ContentCaptureEvent(TYPE_VIEW_DISAPPEARED).setAutofillId(id));
-    }
-
-    /**
-     * Notifies the Intelligence Service that the value of a text node has been changed.
-     *
-     * @param id of the node.
-     * @param text new text.
-     * @param flags either {@code 0} or {@link #FLAG_USER_INPUT} when the value was explicitly
-     * changed by the user (for example, through the keyboard).
-     */
-    public void notifyViewTextChanged(@NonNull AutofillId id, @Nullable CharSequence text,
-            int flags) {
-        Preconditions.checkNotNull(id);
-        if (!isContentCaptureEnabled()) return;
-
-        sendEvent(new ContentCaptureEvent(TYPE_VIEW_TEXT_CHANGED, flags).setAutofillId(id)
-                .setText(text));
-    }
-
-    /**
-     * Creates a {@link ViewStructure} for a "standard" view.
-     *
-     * @hide
-     */
-    @NonNull
-    public ViewStructure newViewStructure(@NonNull View view) {
-        return new ViewNode.ViewStructureImpl(view);
-    }
-
-    /**
-     * Creates a {@link ViewStructure} for a "virtual" view, so it can be passed to
-     * {@link #notifyViewAppeared(ViewStructure)} by the view managing the virtual view hierarchy.
-     *
-     * @param parentId id of the virtual view parent (it can be obtained by calling
-     * {@link ViewStructure#getAutofillId()} on the parent).
-     * @param virtualId id of the virtual child, relative to the parent.
-     *
-     * @return a new {@link ViewStructure} that can be used for Content Capture purposes.
-     */
-    @NonNull
-    public ViewStructure newVirtualViewStructure(@NonNull AutofillId parentId, int virtualId) {
-        return new ViewNode.ViewStructureImpl(parentId, virtualId);
-    }
-
-    /**
-     * Returns the component name of the {@code android.service.intelligence.IntelligenceService}
-     * that is enabled for the current user.
-     */
-    @Nullable
-    public ComponentName getIntelligenceServiceComponentName() {
-        //TODO(b/111276913): implement
-        return null;
-    }
-
-    /**
-     * Checks whether content capture is enabled for this activity.
-     */
-    public boolean isContentCaptureEnabled() {
-        //TODO(b/111276913): properly implement by checking if it was explicitly disabled by
-        // service, or if service is not set
-        // (and probably renamign to isEnabledLocked()
-        return mService != null && mState != STATE_DISABLED;
-    }
-
-    /**
-     * Called by apps to explicitly enabled  or disable content capture.
-     *
-     * <p><b>Note: </b> this call is not persisted accross reboots, so apps should typically call
-     * it on {@link android.app.Activity#onCreate(android.os.Bundle, android.os.PersistableBundle)}.
-     */
-    public void setContentCaptureEnabled(boolean enabled) {
-        //TODO(b/111276913): implement
-    }
-
-    /**
-     * Called by the the service {@link android.service.intelligence.IntelligenceService}
-     * to define whether content capture should be enabled for activities with such
-     * {@link android.content.ComponentName}.
-     *
-     * <p>Useful to blacklist a particular activity.
-     *
-     * @throws UnsupportedOperationException if not called by the UID that owns the
-     * {@link android.service.intelligence.IntelligenceService} associated with the
-     * current user.
-     *
-     * @hide
-     */
-    @SystemApi
-    public void setActivityContentCaptureEnabled(@NonNull ComponentName activity,
-            boolean enabled) {
-        //TODO(b/111276913): implement
-    }
-
-    /**
-     * Called by the the service {@link android.service.intelligence.IntelligenceService}
-     * to explicitly limit content capture to the given packages and activities.
-     *
-     * <p>When the whitelist is set, it overrides the values passed to
-     * {@link #setActivityContentCaptureEnabled(ComponentName, boolean)}
-     * and {@link #setPackageContentCaptureEnabled(String, boolean)}.
-     *
-     * <p>To reset the whitelist, call it passing {@code null} to both arguments.
-     *
-     * <p>Useful when the service wants to restrict content capture to a category of apps, like
-     * chat apps. For example, if the service wants to support view captures on all activities of
-     * app {@code ChatApp1} and just activities {@code act1} and {@code act2} of {@code ChatApp2},
-     * it would call: {@code setContentCaptureWhitelist(Arrays.asList("ChatApp1"),
-     * Arrays.asList(new ComponentName("ChatApp2", "act1"),
-     * new ComponentName("ChatApp2", "act2")));}
-     *
-     * @throws UnsupportedOperationException if not called by the UID that owns the
-     * {@link android.service.intelligence.IntelligenceService} associated with the
-     * current user.
-     *
-     * @hide
-     */
-    @SystemApi
-    public void setContentCaptureWhitelist(@Nullable List<String> packages,
-            @Nullable List<ComponentName> activities) {
-        //TODO(b/111276913): implement
-    }
-
-    /**
-     * Called by the the service {@link android.service.intelligence.IntelligenceService}
-     * to define whether content capture should be enabled for activities of the app with such
-     * {@code packageName}.
-     *
-     * <p>Useful to blacklist any activity from a particular app.
-     *
-     * @throws UnsupportedOperationException if not called by the UID that owns the
-     * {@link android.service.intelligence.IntelligenceService} associated with the
-     * current user.
-     *
-     * @hide
-     */
-    @SystemApi
-    public void setPackageContentCaptureEnabled(@NonNull String packageName, boolean enabled) {
-        //TODO(b/111276913): implement
-    }
-
-    /**
-     * Gets the activities where content capture was disabled by
-     * {@link #setActivityContentCaptureEnabled(ComponentName, boolean)}.
-     *
-     * @throws UnsupportedOperationException if not called by the UID that owns the
-     * {@link android.service.intelligence.IntelligenceService} associated with the
-     * current user.
-     *
-     * @hide
-     */
-    @SystemApi
-    @NonNull
-    public Set<ComponentName> getContentCaptureDisabledActivities() {
-        //TODO(b/111276913): implement
-        return null;
-    }
-
-    /**
-     * Gets the apps where content capture was disabled by
-     * {@link #setPackageContentCaptureEnabled(String, boolean)}.
-     *
-     * @throws UnsupportedOperationException if not called by the UID that owns the
-     * {@link android.service.intelligence.IntelligenceService} associated with the
-     * current user.
-     *
-     * @hide
-     */
-    @SystemApi
-    @NonNull
-    public Set<String> getContentCaptureDisabledPackages() {
-        //TODO(b/111276913): implement
-        return null;
-    }
-
-    /** @hide */
-    public void dump(String prefix, PrintWriter pw) {
-        pw.print(prefix); pw.println("IntelligenceManager");
-        final String prefix2 = prefix + "  ";
-        synchronized (mLock) {
-            pw.print(prefix2); pw.print("mContext: "); pw.println(mContext);
-            pw.print(prefix2); pw.print("mService: "); pw.println(mService);
-            pw.print(prefix2); pw.print("user: "); pw.println(mContext.getUserId());
-            pw.print(prefix2); pw.print("enabled: "); pw.println(isContentCaptureEnabled());
-            pw.print(prefix2); pw.print("id: "); pw.println(mId);
-            pw.print(prefix2); pw.print("state: "); pw.print(mState); pw.print(" (");
-            pw.print(getStateAsString(mState)); pw.println(")");
-            pw.print(prefix2); pw.print("app token: "); pw.println(mApplicationToken);
-            pw.print(prefix2); pw.print("component name: ");
-            pw.println(mComponentName == null ? "null" : mComponentName.flattenToShortString());
-            final int numberEvents = mEvents.size();
-            pw.print(prefix2); pw.print("batched events: "); pw.println(numberEvents);
-            if (numberEvents > 0) {
-                for (int i = 0; i < numberEvents; i++) {
-                    final ContentCaptureEvent event = mEvents.get(i);
-                    pw.println(i); pw.print(": "); event.dump(pw); pw.println();
-                }
-
-            }
-        }
-    }
-
-    /**
-     * Gets a string that can be used to identify the activity on logging statements.
-     */
-    @GuardedBy("mLock")
-    private String getActivityDebugNameLocked() {
-        return mComponentName == null ? mContext.getPackageName()
-                : mComponentName.flattenToShortString();
-    }
-
-    @NonNull
-    private static String getStateAsString(int state) {
-        switch (state) {
-            case STATE_UNKNOWN:
-                return "UNKNOWN";
-            case STATE_WAITING_FOR_SERVER:
-                return "WAITING_FOR_SERVER";
-            case STATE_ACTIVE:
-                return "ACTIVE";
-            case STATE_DISABLED:
-                return "DISABLED";
-            default:
-                return "INVALID:" + state;
-        }
-    }
-}
diff --git a/core/java/android/view/intelligence/ViewNode.java b/core/java/android/view/intelligence/ViewNode.java
index cc78e6b..ea57461 100644
--- a/core/java/android/view/intelligence/ViewNode.java
+++ b/core/java/android/view/intelligence/ViewNode.java
@@ -238,6 +238,8 @@
 
         @Override
         public void setText(CharSequence text, int selectionStart, int selectionEnd) {
+            // TODO(b/111276913): temporarily setting directly; should be done on superclass instead
+            mNode.mText = text;
             // TODO(b/111276913): implement or move to superclass
         }
 
diff --git a/core/java/android/view/textclassifier/ActionsSuggestionsHelper.java b/core/java/android/view/textclassifier/ActionsSuggestionsHelper.java
new file mode 100644
index 0000000..8df83c0
--- /dev/null
+++ b/core/java/android/view/textclassifier/ActionsSuggestionsHelper.java
@@ -0,0 +1,115 @@
+/*
+ * 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.view.textclassifier;
+
+import android.annotation.NonNull;
+import android.app.Person;
+import android.text.TextUtils;
+import android.util.ArrayMap;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import com.google.android.textclassifier.ActionsSuggestionsModel;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Deque;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * Helper class for action suggestions.
+ *
+ * @hide
+ */
+@VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
+public final class ActionsSuggestionsHelper {
+    private static final int USER_LOCAL = 0;
+    private static final int FIRST_NON_LOCAL_USER = 1;
+
+    private ActionsSuggestionsHelper() {}
+
+    /**
+     * Converts the messages to a list of native messages object that the model can understand.
+     * <p>
+     * User id encoding - local user is represented as 0, Other users are numbered according to
+     * how far before they spoke last time in the conversation. For example, considering this
+     * conversation:
+     * <ul>
+     * <li> User A: xxx
+     * <li> Local user: yyy
+     * <li> User B: zzz
+     * </ul>
+     * User A will be encoded as 2, user B will be encoded as 1 and local user will be encoded as 0.
+     */
+    @NonNull
+    public static ActionsSuggestionsModel.ConversationMessage[] toNativeMessages(
+            @NonNull List<ConversationActions.Message> messages) {
+        List<ConversationActions.Message> messagesWithText =
+                messages.stream()
+                        .filter(message -> !TextUtils.isEmpty(message.getText()))
+                        .collect(Collectors.toCollection(ArrayList::new));
+        if (messagesWithText.isEmpty()) {
+            return new ActionsSuggestionsModel.ConversationMessage[0];
+        }
+        int size = messagesWithText.size();
+        // If the last message (the most important one) does not have the Person object, we will
+        // just use the last message and consider this message is sent from a remote user.
+        ConversationActions.Message lastMessage = messages.get(size - 1);
+        boolean useLastMessageOnly = lastMessage.getAuthor() == null;
+        if (useLastMessageOnly) {
+            return new ActionsSuggestionsModel.ConversationMessage[]{
+                    new ActionsSuggestionsModel.ConversationMessage(
+                            FIRST_NON_LOCAL_USER,
+                            lastMessage.getText().toString())};
+        }
+
+        // Encode the messages in the reverse order, stop whenever the Person object is missing.
+        Deque<ActionsSuggestionsModel.ConversationMessage> nativeMessages = new ArrayDeque<>();
+        PersonEncoder personEncoder = new PersonEncoder();
+        for (int i = size - 1; i >= 0; i--) {
+            ConversationActions.Message message = messagesWithText.get(i);
+            if (message.getAuthor() == null) {
+                break;
+            }
+            nativeMessages.push(new ActionsSuggestionsModel.ConversationMessage(
+                    personEncoder.encode(message.getAuthor()),
+                    message.getText().toString()));
+        }
+        return nativeMessages.toArray(
+                new ActionsSuggestionsModel.ConversationMessage[nativeMessages.size()]);
+    }
+
+    private static final class PersonEncoder {
+        private final Map<Person, Integer> mMapping = new ArrayMap<>();
+        private int mNextUserId = FIRST_NON_LOCAL_USER;
+
+        private int encode(Person person) {
+            if (ConversationActions.Message.PERSON_USER_LOCAL.equals(person)) {
+                return USER_LOCAL;
+            }
+            Integer result = mMapping.get(person);
+            if (result == null) {
+                mMapping.put(person, mNextUserId);
+                result = mNextUserId;
+                mNextUserId++;
+            }
+            return result;
+        }
+    }
+}
diff --git a/media/java/android/media/update/ProviderCreator.java b/core/java/android/view/textclassifier/ConversationActions.aidl
similarity index 74%
copy from media/java/android/media/update/ProviderCreator.java
copy to core/java/android/view/textclassifier/ConversationActions.aidl
index f5f3e47..fece939 100644
--- a/media/java/android/media/update/ProviderCreator.java
+++ b/core/java/android/view/textclassifier/ConversationActions.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright 2018 The Android Open Source Project
+ * 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.
@@ -14,10 +14,7 @@
  * limitations under the License.
  */
 
-package android.media.update;
+package android.view.textclassifier;
 
-/** @hide */
-@FunctionalInterface
-public interface ProviderCreator<T, U> {
-    U createProvider(T instance);
-}
+parcelable ConversationActions;
+parcelable ConversationActions.Request;
\ No newline at end of file
diff --git a/core/java/android/view/textclassifier/ConversationActions.java b/core/java/android/view/textclassifier/ConversationActions.java
index 5fcf227..1a7b911 100644
--- a/core/java/android/view/textclassifier/ConversationActions.java
+++ b/core/java/android/view/textclassifier/ConversationActions.java
@@ -345,6 +345,16 @@
 
     /** Represents a message in the conversation. */
     public static final class Message implements Parcelable {
+        /**
+         * Represents the local user.
+         *
+         * @see Builder#setAuthor(Person)
+         */
+        public static final Person PERSON_USER_LOCAL =
+                new Person.Builder()
+                        .setKey("text-classifier-conversation-actions-local-user")
+                        .build();
+
         @Nullable
         private final Person mAuthor;
         @Nullable
@@ -446,7 +456,11 @@
             @Nullable
             private Bundle mExtras;
 
-            /** Sets the person who composed this message. */
+            /**
+             * Sets the person who composed this message.
+             * <p>
+             * Use {@link #PERSON_USER_LOCAL} to represent the local user.
+             */
             @NonNull
             public Builder setAuthor(@Nullable Person author) {
                 mAuthor = author;
diff --git a/core/java/android/view/textclassifier/SystemTextClassifier.java b/core/java/android/view/textclassifier/SystemTextClassifier.java
index 16eb5af..f8fce62 100644
--- a/core/java/android/view/textclassifier/SystemTextClassifier.java
+++ b/core/java/android/view/textclassifier/SystemTextClassifier.java
@@ -23,8 +23,10 @@
 import android.os.Looper;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.service.textclassifier.IConversationActionsCallback;
 import android.service.textclassifier.ITextClassificationCallback;
 import android.service.textclassifier.ITextClassifierService;
+import android.service.textclassifier.ITextLanguageCallback;
 import android.service.textclassifier.ITextLinksCallback;
 import android.service.textclassifier.ITextSelectionCallback;
 
@@ -76,7 +78,7 @@
             if (selection != null) {
                 return selection;
             }
-        } catch (RemoteException | InterruptedException e) {
+        } catch (RemoteException e) {
             Log.e(LOG_TAG, "Error suggesting selection for text. Using fallback.", e);
         }
         return mFallback.suggestSelection(request);
@@ -97,7 +99,7 @@
             if (classification != null) {
                 return classification;
             }
-        } catch (RemoteException | InterruptedException e) {
+        } catch (RemoteException e) {
             Log.e(LOG_TAG, "Error classifying text. Using fallback.", e);
         }
         return mFallback.classifyText(request);
@@ -124,7 +126,7 @@
             if (links != null) {
                 return links;
             }
-        } catch (RemoteException | InterruptedException e) {
+        } catch (RemoteException e) {
             Log.e(LOG_TAG, "Error generating links. Using fallback.", e);
         }
         return mFallback.generateLinks(request);
@@ -142,6 +144,42 @@
         }
     }
 
+    @Override
+    public TextLanguage detectLanguage(TextLanguage.Request request) {
+        Preconditions.checkNotNull(request);
+        Utils.checkMainThread();
+
+        try {
+            final TextLanguageCallback callback = new TextLanguageCallback();
+            mManagerService.onDetectLanguage(mSessionId, request, callback);
+            final TextLanguage textLanguage = callback.mReceiver.get();
+            if (textLanguage != null) {
+                return textLanguage;
+            }
+        } catch (RemoteException e) {
+            Log.e(LOG_TAG, "Error detecting language.", e);
+        }
+        return mFallback.detectLanguage(request);
+    }
+
+    @Override
+    public ConversationActions suggestConversationActions(ConversationActions.Request request) {
+        Preconditions.checkNotNull(request);
+        Utils.checkMainThread();
+
+        try {
+            final ConversationActionsCallback callback = new ConversationActionsCallback();
+            mManagerService.onSuggestConversationActions(mSessionId, request, callback);
+            final ConversationActions conversationActions = callback.mReceiver.get();
+            if (conversationActions != null) {
+                return conversationActions;
+            }
+        } catch (RemoteException e) {
+            Log.e(LOG_TAG, "Error reporting selection event.", e);
+        }
+        return mFallback.suggestConversationActions(request);
+    }
+
     /**
      * @inheritDoc
      */
@@ -193,7 +231,7 @@
 
     private static final class TextSelectionCallback extends ITextSelectionCallback.Stub {
 
-        final ResponseReceiver<TextSelection> mReceiver = new ResponseReceiver<>();
+        final ResponseReceiver<TextSelection> mReceiver = new ResponseReceiver<>("textselection");
 
         @Override
         public void onSuccess(TextSelection selection) {
@@ -208,7 +246,8 @@
 
     private static final class TextClassificationCallback extends ITextClassificationCallback.Stub {
 
-        final ResponseReceiver<TextClassification> mReceiver = new ResponseReceiver<>();
+        final ResponseReceiver<TextClassification> mReceiver =
+                new ResponseReceiver<>("textclassification");
 
         @Override
         public void onSuccess(TextClassification classification) {
@@ -223,7 +262,7 @@
 
     private static final class TextLinksCallback extends ITextLinksCallback.Stub {
 
-        final ResponseReceiver<TextLinks> mReceiver = new ResponseReceiver<>();
+        final ResponseReceiver<TextLinks> mReceiver = new ResponseReceiver<>("textlinks");
 
         @Override
         public void onSuccess(TextLinks links) {
@@ -236,12 +275,48 @@
         }
     }
 
+    private static final class TextLanguageCallback extends ITextLanguageCallback.Stub {
+
+        final ResponseReceiver<TextLanguage> mReceiver = new ResponseReceiver<>("textlanguage");
+
+        @Override
+        public void onSuccess(TextLanguage textLanguage) {
+            mReceiver.onSuccess(textLanguage);
+        }
+
+        @Override
+        public void onFailure() {
+            mReceiver.onFailure();
+        }
+    }
+
+    private static final class ConversationActionsCallback
+            extends IConversationActionsCallback.Stub {
+
+        final ResponseReceiver<ConversationActions> mReceiver =
+                new ResponseReceiver<>("conversationaction");
+
+        @Override
+        public void onSuccess(ConversationActions conversationActions) {
+            mReceiver.onSuccess(conversationActions);
+        }
+
+        @Override
+        public void onFailure() {
+            mReceiver.onFailure();
+        }
+    }
+
     private static final class ResponseReceiver<T> {
 
         private final CountDownLatch mLatch = new CountDownLatch(1);
-
+        private final String mName;
         private T mResponse;
 
+        private ResponseReceiver(String name) {
+            mName = name;
+        }
+
         public void onSuccess(T response) {
             mResponse = response;
             mLatch.countDown();
@@ -253,13 +328,21 @@
         }
 
         @Nullable
-        public T get() throws InterruptedException {
+        public T get() {
             // If this is running on the main thread, do not block for a response.
             // The response will unfortunately be null and the TextClassifier should depend on its
             // fallback.
             // NOTE that TextClassifier calls should preferably always be called on a worker thread.
             if (Looper.myLooper() != Looper.getMainLooper()) {
-                mLatch.await(2, TimeUnit.SECONDS);
+                try {
+                    boolean success = mLatch.await(2, TimeUnit.SECONDS);
+                    if (!success) {
+                        Log.w(LOG_TAG, "Timeout in ResponseReceiver.get(): " + mName);
+                    }
+                } catch (InterruptedException e) {
+                    Thread.currentThread().interrupt();
+                    Log.e(LOG_TAG, "Interrupted during ResponseReceiver.get(): " + mName, e);
+                }
             }
             return mResponse;
         }
diff --git a/core/java/android/view/textclassifier/TextClassification.java b/core/java/android/view/textclassifier/TextClassification.java
index f6c3d77..e0910c0 100644
--- a/core/java/android/view/textclassifier/TextClassification.java
+++ b/core/java/android/view/textclassifier/TextClassification.java
@@ -105,7 +105,7 @@
     /**
      * @hide
      */
-    static final TextClassification EMPTY = new TextClassification.Builder().build();
+    public static final TextClassification EMPTY = new TextClassification.Builder().build();
 
     private static final String LOG_TAG = "TextClassification";
     // TODO(toki): investigate a way to derive this based on device properties.
diff --git a/core/java/android/view/textclassifier/TextClassifier.java b/core/java/android/view/textclassifier/TextClassifier.java
index 524f709..a2536cb 100644
--- a/core/java/android/view/textclassifier/TextClassifier.java
+++ b/core/java/android/view/textclassifier/TextClassifier.java
@@ -90,6 +90,11 @@
     String TYPE_DATE_TIME = "datetime";
     /** Flight number in IATA format. */
     String TYPE_FLIGHT_NUMBER = "flight";
+    /**
+     * Word that users may be interested to look up for meaning.
+     * @hide
+     */
+    String TYPE_DICTIONARY = "dictionary";
 
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
@@ -103,6 +108,7 @@
             TYPE_DATE,
             TYPE_DATE_TIME,
             TYPE_FLIGHT_NUMBER,
+            TYPE_DICTIONARY
     })
     @interface EntityType {}
 
diff --git a/core/java/android/view/textclassifier/TextClassifierImpl.java b/core/java/android/view/textclassifier/TextClassifierImpl.java
index 798a820..8e14dfd 100644
--- a/core/java/android/view/textclassifier/TextClassifierImpl.java
+++ b/core/java/android/view/textclassifier/TextClassifierImpl.java
@@ -40,9 +40,9 @@
 import android.provider.Browser;
 import android.provider.CalendarContract;
 import android.provider.ContactsContract;
-import android.text.TextUtils;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.internal.util.Preconditions;
 
@@ -269,17 +269,17 @@
             final ZonedDateTime refTime = ZonedDateTime.now();
             final Collection<String> entitiesToIdentify = request.getEntityConfig() != null
                     ? request.getEntityConfig().resolveEntityListModifications(
-                            getEntitiesForHints(request.getEntityConfig().getHints()))
+                    getEntitiesForHints(request.getEntityConfig().getHints()))
                     : mSettings.getEntityListDefault();
             final AnnotatorModel annotatorImpl =
                     getAnnotatorImpl(request.getDefaultLocales());
             final AnnotatorModel.AnnotatedSpan[] annotations =
                     annotatorImpl.annotate(
-                        textString,
-                        new AnnotatorModel.AnnotationOptions(
-                                refTime.toInstant().toEpochMilli(),
-                                        refTime.getZone().getId(),
-                                concatenateLocales(request.getDefaultLocales())));
+                            textString,
+                            new AnnotatorModel.AnnotationOptions(
+                                    refTime.toInstant().toEpochMilli(),
+                                    refTime.getZone().getId(),
+                                    concatenateLocales(request.getDefaultLocales())));
             for (AnnotatorModel.AnnotatedSpan span : annotations) {
                 final AnnotatorModel.ClassificationResult[] results =
                         span.getClassification();
@@ -373,20 +373,13 @@
                 // Actions model is optional, fallback if it is not available.
                 return mFallback.suggestConversationActions(request);
             }
-            List<ActionsSuggestionsModel.ConversationMessage> nativeMessages = new ArrayList<>();
-            for (ConversationActions.Message message : request.getConversation()) {
-                if (TextUtils.isEmpty(message.getText())) {
-                    continue;
-                }
-                // TODO: We need to map the Person object to user id.
-                int userId = 1;
-                nativeMessages.add(
-                        new ActionsSuggestionsModel.ConversationMessage(
-                                userId, message.getText().toString()));
+            ActionsSuggestionsModel.ConversationMessage[] nativeMessages =
+                    ActionsSuggestionsHelper.toNativeMessages(request.getConversation());
+            if (nativeMessages.length == 0) {
+                return mFallback.suggestConversationActions(request);
             }
             ActionsSuggestionsModel.Conversation nativeConversation =
-                    new ActionsSuggestionsModel.Conversation(nativeMessages.toArray(
-                            new ActionsSuggestionsModel.ConversationMessage[0]));
+                    new ActionsSuggestionsModel.Conversation(nativeMessages);
 
             ActionsSuggestionsModel.ActionSuggestion[] nativeSuggestions =
                     actionsImpl.suggestActions(nativeConversation, null);
@@ -523,10 +516,10 @@
         final TextClassification.Builder builder = new TextClassification.Builder()
                 .setText(classifiedText);
 
-        final int size = classifications.length;
+        final int typeCount = classifications.length;
         AnnotatorModel.ClassificationResult highestScoringResult =
-                size > 0 ? classifications[0] : null;
-        for (int i = 0; i < size; i++) {
+                typeCount > 0 ? classifications[0] : null;
+        for (int i = 0; i < typeCount; i++) {
             builder.setEntityType(classifications[i].getCollection(),
                                   classifications[i].getScore());
             if (classifications[i].getScore() > highestScoringResult.getScore()) {
@@ -534,9 +527,12 @@
             }
         }
 
+        // TODO: Make this configurable.
+        final float foreignTextThreshold = typeCount == 0 ? 0.5f : 0.7f;
         boolean isPrimaryAction = true;
         for (LabeledIntent labeledIntent : IntentFactory.create(
-                mContext, classifiedText, referenceTime, highestScoringResult)) {
+                mContext, classifiedText, isForeignText(classifiedText, foreignTextThreshold),
+                referenceTime, highestScoringResult)) {
             final RemoteAction action = labeledIntent.asRemoteAction(mContext);
             if (action == null) {
                 continue;
@@ -558,6 +554,42 @@
         return builder.setId(createId(text, start, end)).build();
     }
 
+    private boolean isForeignText(String text, float threshold) {
+        // TODO: Revisit this algorithm.
+        try {
+            final LangIdModel.LanguageResult[] langResults = getLangIdImpl().detectLanguages(text);
+            if (langResults.length <= 0) {
+                return false;
+            }
+
+            LangIdModel.LanguageResult highestScoringResult = langResults[0];
+            for (int i = 1; i < langResults.length; i++) {
+                if (langResults[i].getScore() > highestScoringResult.getScore()) {
+                    highestScoringResult = langResults[i];
+                }
+            }
+            if (highestScoringResult.getScore() < threshold) {
+                return false;
+            }
+            // TODO: Remove
+            Log.d(LOG_TAG, String.format("Language detected: <%s:%s>",
+                    highestScoringResult.getLanguage(), highestScoringResult.getScore()));
+
+            final Locale detected = new Locale(highestScoringResult.getLanguage());
+            final LocaleList deviceLocales = LocaleList.getDefault();
+            final int size = deviceLocales.size();
+            for (int i = 0; i < size; i++) {
+                if (deviceLocales.get(i).getLanguage().equals(detected.getLanguage())) {
+                    return false;
+                }
+            }
+            return true;
+        } catch (Throwable t) {
+            Log.e(LOG_TAG, "Error detecting foreign text. Ignored.", t);
+        }
+        return false;
+    }
+
     @Override
     public void dump(@NonNull IndentingPrintWriter printWriter) {
         synchronized (mLock) {
@@ -608,7 +640,8 @@
     /**
      * Helper class to store the information from which RemoteActions are built.
      */
-    private static final class LabeledIntent {
+    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
+    public static final class LabeledIntent {
 
         static final int DEFAULT_REQUEST_CODE = 0;
 
@@ -643,7 +676,8 @@
             return mDescription;
         }
 
-        Intent getIntent() {
+        @VisibleForTesting
+        public Intent getIntent() {
             return mIntent;
         }
 
@@ -687,7 +721,8 @@
     /**
      * Creates intents based on the classification type.
      */
-    static final class IntentFactory {
+    @VisibleForTesting
+    public static final class IntentFactory {
 
         private static final long MIN_EVENT_FUTURE_MILLIS = TimeUnit.MINUTES.toMillis(5);
         private static final long DEFAULT_EVENT_DURATION = TimeUnit.HOURS.toMillis(1);
@@ -698,53 +733,70 @@
         public static List<LabeledIntent> create(
                 Context context,
                 String text,
+                boolean foreignText,
                 @Nullable Instant referenceTime,
                 @Nullable AnnotatorModel.ClassificationResult classification) {
             final String type = classification != null
                     ? classification.getCollection().trim().toLowerCase(Locale.ENGLISH)
-                    : null;
+                    : "";
             text = text.trim();
+            final List<LabeledIntent> actions;
             switch (type) {
                 case TextClassifier.TYPE_EMAIL:
-                    return createForEmail(context, text);
+                    actions = createForEmail(context, text);
+                    break;
                 case TextClassifier.TYPE_PHONE:
-                    return createForPhone(context, text);
+                    actions = createForPhone(context, text);
+                    break;
                 case TextClassifier.TYPE_ADDRESS:
-                    return createForAddress(context, text);
+                    actions = createForAddress(context, text);
+                    break;
                 case TextClassifier.TYPE_URL:
-                    return createForUrl(context, text);
-                case TextClassifier.TYPE_DATE:
+                    actions = createForUrl(context, text);
+                    break;
+                case TextClassifier.TYPE_DATE:  // fall through
                 case TextClassifier.TYPE_DATE_TIME:
                     if (classification.getDatetimeResult() != null) {
                         final Instant parsedTime = Instant.ofEpochMilli(
                                 classification.getDatetimeResult().getTimeMsUtc());
-                        return createForDatetime(context, type, referenceTime, parsedTime);
+                        actions = createForDatetime(context, type, referenceTime, parsedTime);
                     } else {
-                        return new ArrayList<>();
+                        actions = new ArrayList<>();
                     }
+                    break;
                 case TextClassifier.TYPE_FLIGHT_NUMBER:
-                    return createForFlight(context, text);
+                    actions = createForFlight(context, text);
+                    break;
+                case TextClassifier.TYPE_DICTIONARY:
+                    actions = createForDictionary(context, text);
+                    break;
                 default:
-                    return new ArrayList<>();
+                    actions = new ArrayList<>();
+                    break;
             }
+            if (foreignText) {
+                insertTranslateAction(actions, context, text);
+            }
+            return actions;
         }
 
         @NonNull
         private static List<LabeledIntent> createForEmail(Context context, String text) {
-            return Arrays.asList(
-                    new LabeledIntent(
-                            context.getString(com.android.internal.R.string.email),
-                            context.getString(com.android.internal.R.string.email_desc),
-                            new Intent(Intent.ACTION_SENDTO)
-                                    .setData(Uri.parse(String.format("mailto:%s", text))),
-                            LabeledIntent.DEFAULT_REQUEST_CODE),
-                    new LabeledIntent(
-                            context.getString(com.android.internal.R.string.add_contact),
-                            context.getString(com.android.internal.R.string.add_contact_desc),
-                            new Intent(Intent.ACTION_INSERT_OR_EDIT)
-                                    .setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE)
-                                    .putExtra(ContactsContract.Intents.Insert.EMAIL, text),
-                            text.hashCode()));
+            final List<LabeledIntent> actions = new ArrayList<>();
+            actions.add(new LabeledIntent(
+                    context.getString(com.android.internal.R.string.email),
+                    context.getString(com.android.internal.R.string.email_desc),
+                    new Intent(Intent.ACTION_SENDTO)
+                            .setData(Uri.parse(String.format("mailto:%s", text))),
+                    LabeledIntent.DEFAULT_REQUEST_CODE));
+            actions.add(new LabeledIntent(
+                    context.getString(com.android.internal.R.string.add_contact),
+                    context.getString(com.android.internal.R.string.add_contact_desc),
+                    new Intent(Intent.ACTION_INSERT_OR_EDIT)
+                            .setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE)
+                            .putExtra(ContactsContract.Intents.Insert.EMAIL, text),
+                    text.hashCode()));
+            return actions;
         }
 
         @NonNull
@@ -801,12 +853,14 @@
             if (Uri.parse(text).getScheme() == null) {
                 text = "http://" + text;
             }
-            return Arrays.asList(new LabeledIntent(
+            final List<LabeledIntent> actions = new ArrayList<>();
+            actions.add(new LabeledIntent(
                     context.getString(com.android.internal.R.string.browse),
                     context.getString(com.android.internal.R.string.browse_desc),
                     new Intent(Intent.ACTION_VIEW, Uri.parse(text))
                             .putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()),
                     LabeledIntent.DEFAULT_REQUEST_CODE));
+            return actions;
         }
 
         @NonNull
@@ -828,12 +882,14 @@
 
         @NonNull
         private static List<LabeledIntent> createForFlight(Context context, String text) {
-            return Arrays.asList(new LabeledIntent(
+            final List<LabeledIntent> actions = new ArrayList<>();
+            actions.add(new LabeledIntent(
                     context.getString(com.android.internal.R.string.view_flight),
                     context.getString(com.android.internal.R.string.view_flight_desc),
                     new Intent(Intent.ACTION_WEB_SEARCH)
                             .putExtra(SearchManager.QUERY, text),
                     text.hashCode()));
+            return actions;
         }
 
         @NonNull
@@ -864,5 +920,27 @@
                                     parsedTime.toEpochMilli() + DEFAULT_EVENT_DURATION),
                     parsedTime.hashCode());
         }
+
+        private static void insertTranslateAction(
+                List<LabeledIntent> actions, Context context, String text) {
+            actions.add(new LabeledIntent(
+                    context.getString(com.android.internal.R.string.translate),
+                    context.getString(com.android.internal.R.string.translate_desc),
+                    new Intent(Intent.ACTION_TRANSLATE)
+                            // TODO: Probably better to introduce a "translate" scheme instead of
+                            // using EXTRA_TEXT.
+                            .putExtra(Intent.EXTRA_TEXT, text),
+                    text.hashCode()));
+        }
+
+        @NonNull
+        private static List<LabeledIntent> createForDictionary(Context context, String text) {
+            return Arrays.asList(new LabeledIntent(
+                    context.getString(com.android.internal.R.string.define),
+                    context.getString(com.android.internal.R.string.define_desc),
+                    new Intent(Intent.ACTION_DEFINE)
+                            .putExtra(Intent.EXTRA_TEXT, text),
+                    text.hashCode()));
+        }
     }
 }
diff --git a/media/java/android/media/update/ProviderCreator.java b/core/java/android/view/textclassifier/TextLanguage.aidl
similarity index 74%
copy from media/java/android/media/update/ProviderCreator.java
copy to core/java/android/view/textclassifier/TextLanguage.aidl
index f5f3e47..54e3cf9f 100644
--- a/media/java/android/media/update/ProviderCreator.java
+++ b/core/java/android/view/textclassifier/TextLanguage.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright 2018 The Android Open Source Project
+ * 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.
@@ -14,10 +14,7 @@
  * limitations under the License.
  */
 
-package android.media.update;
+package android.view.textclassifier;
 
-/** @hide */
-@FunctionalInterface
-public interface ProviderCreator<T, U> {
-    U createProvider(T instance);
-}
+parcelable TextLanguage;
+parcelable TextLanguage.Request;
\ No newline at end of file
diff --git a/core/java/android/view/textclassifier/TextLinks.java b/core/java/android/view/textclassifier/TextLinks.java
index 02aee50..1e42c41 100644
--- a/core/java/android/view/textclassifier/TextLinks.java
+++ b/core/java/android/view/textclassifier/TextLinks.java
@@ -59,7 +59,7 @@
      */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({STATUS_LINKS_APPLIED, STATUS_NO_LINKS_FOUND, STATUS_NO_LINKS_APPLIED,
-            STATUS_DIFFERENT_TEXT})
+            STATUS_DIFFERENT_TEXT, STATUS_UNSUPPORTED_CHARACTER})
     public @interface Status {}
 
     /** Links were successfully applied to the text. */
@@ -74,6 +74,9 @@
     /** The specified text does not match the text used to generate the links. */
     public static final int STATUS_DIFFERENT_TEXT = 3;
 
+    /** The specified text contains unsupported characters. */
+    public static final int STATUS_UNSUPPORTED_CHARACTER = 4;
+
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({APPLY_STRATEGY_IGNORE, APPLY_STRATEGY_REPLACE})
diff --git a/core/java/android/view/textclassifier/TextLinksParams.java b/core/java/android/view/textclassifier/TextLinksParams.java
index be4c3bc..8af4233 100644
--- a/core/java/android/view/textclassifier/TextLinksParams.java
+++ b/core/java/android/view/textclassifier/TextLinksParams.java
@@ -107,6 +107,13 @@
         Preconditions.checkNotNull(textLinks);
 
         final String textString = text.toString();
+
+        if (Linkify.containsUnsupportedCharacters(textString)) {
+            // Do not apply links to text containing unsupported characters.
+            android.util.EventLog.writeEvent(0x534e4554, "116321860", -1, "");
+            return TextLinks.STATUS_UNSUPPORTED_CHARACTER;
+        }
+
         if (!textString.startsWith(textLinks.getText())) {
             return TextLinks.STATUS_DIFFERENT_TEXT;
         }
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 1093719..414cb8f 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -410,6 +410,9 @@
         if (getImportantForAutofill() == IMPORTANT_FOR_AUTOFILL_AUTO) {
             setImportantForAutofill(IMPORTANT_FOR_AUTOFILL_YES);
         }
+        if (getImportantForContentCapture() == IMPORTANT_FOR_CONTENT_CAPTURE_AUTO) {
+            setImportantForContentCapture(IMPORTANT_FOR_CONTENT_CAPTURE_YES);
+        }
 
         if (context == null) {
             throw new IllegalArgumentException("Invalid context argument");
@@ -2695,8 +2698,8 @@
     }
 
     @Override
-    public boolean onProvideContentCaptureStructure(ViewStructure structure, int flags) {
-        return mProvider.getViewDelegate().onProvideContentCaptureStructure(structure, flags);
+    public void onProvideContentCaptureStructure(ViewStructure structure, int flags) {
+        mProvider.getViewDelegate().onProvideContentCaptureStructure(structure, flags);
     }
 
     @Override
diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java
index ceada07..95e7a986 100644
--- a/core/java/android/webkit/WebViewProvider.java
+++ b/core/java/android/webkit/WebViewProvider.java
@@ -341,10 +341,9 @@
             return true; // true is the default value returned by View.isVisibleToUserForAutofill()
         }
 
-        default boolean onProvideContentCaptureStructure(
+        default void onProvideContentCaptureStructure(
                 @SuppressWarnings("unused") android.view.ViewStructure structure,
                 @SuppressWarnings("unused") int flags) {
-            return false; // WebView provides virtual views and is responsible to notify manager
         }
 
         public AccessibilityNodeProvider getAccessibilityNodeProvider();
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 5b1544b..c6155ce 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -390,7 +390,8 @@
                 com.android.internal.R.bool.config_enableHapticTextHandle);
 
         if (FLAG_USE_MAGNIFIER) {
-            final Magnifier magnifier = new Magnifier.Builder(mTextView).build();
+            final Magnifier magnifier =
+                    Magnifier.createBuilderWithOldMagnifierDefaults(mTextView).build();
             mMagnifierAnimator = new MagnifierMotionAnimator(magnifier);
         }
     }
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java
index 9ccd321..f781802 100644
--- a/core/java/android/widget/GridView.java
+++ b/core/java/android/widget/GridView.java
@@ -23,6 +23,7 @@
 import android.content.Intent;
 import android.content.res.TypedArray;
 import android.graphics.Rect;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Trace;
 import android.util.AttributeSet;
@@ -107,7 +108,7 @@
      */
     public static final int AUTO_FIT = -1;
 
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 117521080)
     private int mNumColumns = AUTO_FIT;
 
     @UnsupportedAppUsage
@@ -117,7 +118,7 @@
     @UnsupportedAppUsage
     private int mVerticalSpacing = 0;
     private int mStretchMode = STRETCH_COLUMN_WIDTH;
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 117521079)
     private int mColumnWidth;
     @UnsupportedAppUsage
     private int mRequestedColumnWidth;
diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java
index 12cc54d..c21182c 100644
--- a/core/java/android/widget/ImageView.java
+++ b/core/java/android/widget/ImageView.java
@@ -106,9 +106,9 @@
     private boolean mHaveFrame = false;
     @UnsupportedAppUsage
     private boolean mAdjustViewBounds = false;
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private int mMaxWidth = Integer.MAX_VALUE;
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private int mMaxHeight = Integer.MAX_VALUE;
 
     // these are applied to the drawable
@@ -1331,9 +1331,17 @@
         }
     }
 
-    /** @hide */
-    @UnsupportedAppUsage
-    public void animateTransform(Matrix matrix) {
+    /**
+     * Applies a temporary transformation {@link Matrix} to the view's drawable when it is drawn.
+     * Allows custom scaling, translation, and perspective distortion during an animation.
+     *
+     * This method is a lightweight analogue of {@link ImageView#setImageMatrix(Matrix)} to use
+     * only during animations as this matrix will be cleared after the next drawable
+     * update or view's bounds change.
+     *
+     * @param matrix The transformation parameters in matrix form.
+     */
+    public void animateTransform(@Nullable Matrix matrix) {
         if (mDrawable == null) {
             return;
         }
@@ -1341,6 +1349,7 @@
             final int vwidth = getWidth() - mPaddingLeft - mPaddingRight;
             final int vheight = getHeight() - mPaddingTop - mPaddingBottom;
             mDrawable.setBounds(0, 0, vwidth, vheight);
+            mDrawMatrix = null;
         } else {
             mDrawable.setBounds(0, 0, mDrawableWidth, mDrawableHeight);
             if (mDrawMatrix == null) {
diff --git a/core/java/android/widget/LinearLayout.java b/core/java/android/widget/LinearLayout.java
index f2e478d..15910bb 100644
--- a/core/java/android/widget/LinearLayout.java
+++ b/core/java/android/widget/LinearLayout.java
@@ -189,7 +189,7 @@
             @ViewDebug.FlagToString(mask = Gravity.RELATIVE_LAYOUT_DIRECTION,
                 equals = Gravity.RELATIVE_LAYOUT_DIRECTION, name = "RELATIVE")
         }, formatToHexString = true)
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private int mGravity = Gravity.START | Gravity.TOP;
 
     @ViewDebug.ExportedProperty(category = "measurement")
diff --git a/core/java/android/widget/Magnifier.java b/core/java/android/widget/Magnifier.java
index 7756a19..7d02757 100644
--- a/core/java/android/widget/Magnifier.java
+++ b/core/java/android/widget/Magnifier.java
@@ -28,6 +28,7 @@
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Bitmap;
+import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Insets;
 import android.graphics.Outline;
@@ -38,6 +39,8 @@
 import android.graphics.RecordingCanvas;
 import android.graphics.Rect;
 import android.graphics.RenderNode;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Message;
@@ -95,6 +98,8 @@
     private final float mWindowElevation;
     // The corner radius of the window containing the magnifier.
     private final float mWindowCornerRadius;
+    // The overlay to be drawn on the top of the magnifier content.
+    private final Drawable mOverlay;
     // The horizontal offset between the source and window coords when #show(float, float) is used.
     private final int mDefaultHorizontalSourceToMagnifierOffset;
     // The vertical offset between the source and window coords when #show(float, float) is used.
@@ -140,7 +145,47 @@
      */
     @Deprecated
     public Magnifier(@NonNull View view) {
-        this(new Builder(view));
+        this(createBuilderWithOldMagnifierDefaults(view));
+    }
+
+    static Builder createBuilderWithOldMagnifierDefaults(final View view) {
+        final Builder params = new Builder(view);
+        final Context context = view.getContext();
+        final TypedArray a = context.obtainStyledAttributes(null, R.styleable.Magnifier,
+                R.attr.magnifierStyle, 0);
+        params.mWidth = a.getDimensionPixelSize(R.styleable.Magnifier_magnifierWidth, 0);
+        params.mHeight = a.getDimensionPixelSize(R.styleable.Magnifier_magnifierHeight, 0);
+        params.mElevation = a.getDimension(R.styleable.Magnifier_magnifierElevation, 0);
+        params.mCornerRadius = getDeviceDefaultDialogCornerRadius(context);
+        params.mZoom = a.getFloat(R.styleable.Magnifier_magnifierZoom, 0);
+        params.mHorizontalDefaultSourceToMagnifierOffset =
+                a.getDimensionPixelSize(R.styleable.Magnifier_magnifierHorizontalOffset, 0);
+        params.mVerticalDefaultSourceToMagnifierOffset =
+                a.getDimensionPixelSize(R.styleable.Magnifier_magnifierVerticalOffset, 0);
+        params.mOverlay = new ColorDrawable(a.getColor(
+                R.styleable.Magnifier_magnifierColorOverlay, Color.TRANSPARENT));
+        a.recycle();
+        params.mForcePositionWithinWindowSystemInsetsBounds = true;
+        params.mLeftContentBound = SOURCE_BOUND_MAX_VISIBLE;
+        params.mTopContentBound = SOURCE_BOUND_MAX_IN_SURFACE;
+        params.mRightContentBound = SOURCE_BOUND_MAX_VISIBLE;
+        params.mBottomContentBound = SOURCE_BOUND_MAX_IN_SURFACE;
+        return params;
+    }
+
+    /**
+     * Returns the device default theme dialog corner radius attribute.
+     * We retrieve this from the device default theme to avoid
+     * using the values set in the custom application themes.
+     */
+    private static float getDeviceDefaultDialogCornerRadius(final Context context) {
+        final Context deviceDefaultContext =
+                new ContextThemeWrapper(context, R.style.Theme_DeviceDefault);
+        final TypedArray ta = deviceDefaultContext.obtainStyledAttributes(
+                new int[]{android.R.attr.dialogCornerRadius});
+        final float dialogCornerRadius = ta.getDimension(0, 0);
+        ta.recycle();
+        return dialogCornerRadius;
     }
 
     private Magnifier(@NonNull Builder params) {
@@ -153,6 +198,7 @@
         mSourceHeight = Math.round(mWindowHeight / mZoom);
         mWindowElevation = params.mElevation;
         mWindowCornerRadius = params.mCornerRadius;
+        mOverlay = params.mOverlay;
         mDefaultHorizontalSourceToMagnifierOffset =
                 params.mHorizontalDefaultSourceToMagnifierOffset;
         mDefaultVerticalSourceToMagnifierOffset =
@@ -225,8 +271,9 @@
             if (mWindow == null) {
                 synchronized (mLock) {
                     mWindow = new InternalPopupWindow(mView.getContext(), mView.getDisplay(),
-                            mParentSurface.mSurface,
-                            mWindowWidth, mWindowHeight, mWindowElevation, mWindowCornerRadius,
+                            mParentSurface.mSurface, mWindowWidth, mWindowHeight,
+                            mWindowElevation, mWindowCornerRadius,
+                            mOverlay != null ? mOverlay : new ColorDrawable(Color.TRANSPARENT),
                             Handler.getMain() /* draw the magnifier on the UI thread */, mLock,
                             mCallback);
                 }
@@ -400,6 +447,17 @@
     }
 
     /**
+     * Returns the overlay to be drawn on the top of the magnifier content, or
+     * {@code null} if no overlay should be drawn.
+     * @return the overlay
+     * @see Magnifier.Builder#setOverlay(Drawable)
+     */
+    @Nullable
+    public Drawable getOverlay() {
+        return mOverlay;
+    }
+
+    /**
      * Returns whether the magnifier position will be adjusted such that the magnifier will be
      * fully within the bounds of the main application window, by also avoiding any overlap with
      * system insets (such as the one corresponding to the status bar).
@@ -698,9 +756,6 @@
      * producing a shakiness effect for the magnifier content.
      */
     private static class InternalPopupWindow {
-        // The alpha set on the magnifier's content, which defines how
-        // prominent the white background is.
-        private static final int CONTENT_BITMAP_ALPHA = 242;
         // The z of the magnifier surface, defining its z order in the list of
         // siblings having the same parent surface (usually the main app surface).
         private static final int SURFACE_Z = 5;
@@ -716,6 +771,8 @@
         // The insets of the content inside the allocated surface.
         private final int mOffsetX;
         private final int mOffsetY;
+        // The overlay to be drawn on the top of the content.
+        private final Drawable mOverlay;
         // The surface we allocate for the magnifier content + shadow.
         private final SurfaceSession mSurfaceSession;
         private final SurfaceControl mSurfaceControl;
@@ -724,6 +781,8 @@
         private final ThreadedRenderer.SimpleRenderer mRenderer;
         // The RenderNode used to draw the magnifier content in the surface.
         private final RenderNode mBitmapRenderNode;
+        // The RenderNode used to draw the overlay over the magnifier content.
+        private final RenderNode mOverlayRenderNode;
         // The job that will be post'd to apply the pending magnifier updates to the surface.
         private final Runnable mMagnifierUpdater;
         // The handler where the magnifier updater jobs will be post'd.
@@ -740,7 +799,7 @@
         private final Object mLock;
         // Whether a magnifier frame draw is currently pending in the UI thread queue.
         private boolean mFrameDrawScheduled;
-        // The content bitmap.
+        // The content bitmap, as returned by pixel copy.
         private Bitmap mBitmap;
         // Whether the next draw will be the first one for the current instance.
         private boolean mFirstDraw = true;
@@ -756,11 +815,15 @@
         // mDestroyLock should be acquired before mLock in order to avoid deadlocks.
         private final Object mDestroyLock = new Object();
 
+        // The current content of the magnifier. It is mBitmap + mOverlay, only used for testing.
+        private Bitmap mCurrentContent;
+
         InternalPopupWindow(final Context context, final Display display,
-                final Surface parentSurface,
-                final int width, final int height, final float elevation, final float cornerRadius,
+                final Surface parentSurface, final int width, final int height,
+                final float elevation, final float cornerRadius, final Drawable overlay,
                 final Handler handler, final Object lock, final Callback callback) {
             mDisplay = display;
+            mOverlay = overlay;
             mLock = lock;
             mCallback = callback;
 
@@ -774,14 +837,16 @@
             mSurfaceSession = new SurfaceSession(parentSurface);
             mSurfaceControl = new SurfaceControl.Builder(mSurfaceSession)
                     .setFormat(PixelFormat.TRANSLUCENT)
-                    .setSize(mSurfaceWidth, mSurfaceHeight)
+                    .setBufferSize(mSurfaceWidth, mSurfaceHeight)
                     .setName("magnifier surface")
                     .setFlags(SurfaceControl.HIDDEN)
                     .build();
             mSurface = new Surface();
             mSurface.copyFrom(mSurfaceControl);
 
-            // Setup the RenderNode tree. The root has only one child, which contains the bitmap.
+            // Setup the RenderNode tree. The root has two children, one containing the bitmap
+            // and one containing the overlay. We use a separate render node for the overlay
+            // to avoid drawing this as the same rate we do for content.
             mRenderer = new ThreadedRenderer.SimpleRenderer(
                     context,
                     "magnifier renderer",
@@ -792,15 +857,27 @@
                     elevation,
                     cornerRadius
             );
+            mOverlayRenderNode = createRenderNodeForOverlay(
+                    "magnifier overlay",
+                    cornerRadius
+            );
+            setupOverlay();
 
             final RecordingCanvas canvas = mRenderer.getRootNode().start(width, height);
             try {
                 canvas.insertReorderBarrier();
                 canvas.drawRenderNode(mBitmapRenderNode);
                 canvas.insertInorderBarrier();
+                canvas.drawRenderNode(mOverlayRenderNode);
+                canvas.insertInorderBarrier();
             } finally {
                 mRenderer.getRootNode().end(canvas);
             }
+            if (mCallback != null) {
+                mCurrentContent =
+                        Bitmap.createBitmap(mContentWidth, mContentHeight, Bitmap.Config.ARGB_8888);
+                updateCurrentContentForTesting();
+            }
 
             // Initialize the update job and the handler where this will be post'd.
             mHandler = handler;
@@ -835,6 +912,61 @@
             return bitmapRenderNode;
         }
 
+        private RenderNode createRenderNodeForOverlay(final String name, final float cornerRadius) {
+            final RenderNode overlayRenderNode = RenderNode.create(name, null);
+
+            // Define the position of the overlay in the parent render node.
+            // This coincides with the position of the content.
+            overlayRenderNode.setLeftTopRightBottom(mOffsetX, mOffsetY,
+                    mOffsetX + mContentWidth, mOffsetY + mContentHeight);
+
+            final Outline outline = new Outline();
+            outline.setRoundRect(0, 0, mContentWidth, mContentHeight, cornerRadius);
+            outline.setAlpha(1.0f);
+            overlayRenderNode.setOutline(outline);
+            overlayRenderNode.setClipToOutline(true);
+
+            return overlayRenderNode;
+        }
+
+        private void setupOverlay() {
+            drawOverlay();
+
+            mOverlay.setCallback(new Drawable.Callback() {
+                @Override
+                public void invalidateDrawable(Drawable who) {
+                    // When the overlay drawable is invalidated, redraw it to the render node.
+                    drawOverlay();
+                    if (mCallback != null) {
+                        updateCurrentContentForTesting();
+                    }
+                }
+
+                @Override
+                public void scheduleDrawable(Drawable who, Runnable what, long when) {
+                    Handler.getMain().postAtTime(what, who, when);
+                }
+
+                @Override
+                public void unscheduleDrawable(Drawable who, Runnable what) {
+                    Handler.getMain().removeCallbacks(what, who);
+                }
+            });
+        }
+
+        private void drawOverlay() {
+            // Draw the drawable to the render node. This happens once during
+            // initialization and whenever the overlay drawable is invalidated.
+            final RecordingCanvas canvas =
+                    mOverlayRenderNode.startRecording(mContentWidth, mContentHeight);
+            try {
+                mOverlay.setBounds(0, 0, mContentWidth, mContentHeight);
+                mOverlay.draw(canvas);
+            } finally {
+                mOverlayRenderNode.endRecording();
+            }
+        }
+
         /**
          * Sets the position of the magnifier content relative to the parent surface.
          * The position update will happen in the same frame with the next draw.
@@ -909,13 +1041,10 @@
                 final RecordingCanvas canvas =
                         mBitmapRenderNode.start(mContentWidth, mContentHeight);
                 try {
-                    canvas.drawColor(Color.WHITE);
-
                     final Rect srcRect = new Rect(0, 0, mBitmap.getWidth(), mBitmap.getHeight());
                     final Rect dstRect = new Rect(0, 0, mContentWidth, mContentHeight);
                     final Paint paint = new Paint();
                     paint.setFilterBitmap(true);
-                    paint.setAlpha(CONTENT_BITMAP_ALPHA);
                     canvas.drawBitmap(mBitmap, srcRect, dstRect, paint);
                 } finally {
                     mBitmapRenderNode.end(canvas);
@@ -962,9 +1091,29 @@
 
             mRenderer.draw(callback);
             if (mCallback != null) {
+                // The current content bitmap is only used in testing, so, for performance,
+                // we only want to update it when running tests. For this, we check that
+                // mCallback is not null, as it can only be set from a @TestApi.
+                updateCurrentContentForTesting();
                 mCallback.onOperationComplete();
             }
         }
+
+        /**
+         * Updates mCurrentContent, which reproduces what is currently supposed to be
+         * drawn in the magnifier. mCurrentContent is only used for testing, so this method
+         * should only be called otherwise.
+         */
+        private void updateCurrentContentForTesting() {
+            final Canvas canvas = new Canvas(mCurrentContent);
+            final Rect bounds = new Rect(0, 0, mContentWidth, mContentHeight);
+            if (mBitmap != null && !mBitmap.isRecycled()) {
+                final Rect originalBounds = new Rect(0, 0, mBitmap.getWidth(), mBitmap.getHeight());
+                canvas.drawBitmap(mBitmap, originalBounds, bounds, null);
+            }
+            mOverlay.setBounds(bounds);
+            mOverlay.draw(canvas);
+        }
     }
 
     /**
@@ -977,6 +1126,7 @@
         private float mZoom;
         private @FloatRange(from = 0f) float mElevation;
         private @FloatRange(from = 0f) float mCornerRadius;
+        private @Nullable Drawable mOverlay;
         private int mHorizontalDefaultSourceToMagnifierOffset;
         private int mVerticalDefaultSourceToMagnifierOffset;
         private boolean mForcePositionWithinWindowSystemInsetsBounds;
@@ -995,39 +1145,23 @@
         }
 
         private void applyDefaults() {
-            final Context context = mView.getContext();
-            final TypedArray a = context.obtainStyledAttributes(null, R.styleable.Magnifier,
-                    R.attr.magnifierStyle, 0);
-            mWidth = a.getDimensionPixelSize(R.styleable.Magnifier_magnifierWidth, 0);
-            mHeight = a.getDimensionPixelSize(R.styleable.Magnifier_magnifierHeight, 0);
-            mElevation = a.getDimension(R.styleable.Magnifier_magnifierElevation, 0);
-            mCornerRadius = getDeviceDefaultDialogCornerRadius();
-            mZoom = a.getFloat(R.styleable.Magnifier_magnifierZoom, 0);
+            final Resources resources = mView.getContext().getResources();
+            mWidth = resources.getDimensionPixelSize(R.dimen.default_magnifier_width);
+            mHeight = resources.getDimensionPixelSize(R.dimen.default_magnifier_height);
+            mElevation = resources.getDimension(R.dimen.default_magnifier_elevation);
+            mCornerRadius = resources.getDimension(R.dimen.default_magnifier_corner_radius);
+            mZoom = resources.getFloat(R.dimen.default_magnifier_zoom);
             mHorizontalDefaultSourceToMagnifierOffset =
-                    a.getDimensionPixelSize(R.styleable.Magnifier_magnifierHorizontalOffset, 0);
+                    resources.getDimensionPixelSize(R.dimen.default_magnifier_horizontal_offset);
             mVerticalDefaultSourceToMagnifierOffset =
-                    a.getDimensionPixelSize(R.styleable.Magnifier_magnifierVerticalOffset, 0);
-            a.recycle();
+                    resources.getDimensionPixelSize(R.dimen.default_magnifier_vertical_offset);
+            mOverlay = new ColorDrawable(resources.getColor(
+                    R.color.default_magnifier_color_overlay, null));
             mForcePositionWithinWindowSystemInsetsBounds = true;
             mLeftContentBound = SOURCE_BOUND_MAX_VISIBLE;
-            mTopContentBound = SOURCE_BOUND_MAX_IN_SURFACE;
+            mTopContentBound = SOURCE_BOUND_MAX_VISIBLE;
             mRightContentBound = SOURCE_BOUND_MAX_VISIBLE;
-            mBottomContentBound = SOURCE_BOUND_MAX_IN_SURFACE;
-        }
-
-        /**
-         * Returns the device default theme dialog corner radius attribute.
-         * We retrieve this from the device default theme to avoid
-         * using the values set in the custom application themes.
-         */
-        private float getDeviceDefaultDialogCornerRadius() {
-            final Context deviceDefaultContext =
-                    new ContextThemeWrapper(mView.getContext(), R.style.Theme_DeviceDefault);
-            final TypedArray ta = deviceDefaultContext.obtainStyledAttributes(
-                    new int[]{android.R.attr.dialogCornerRadius});
-            final float dialogCornerRadius = ta.getDimension(0, 0);
-            ta.recycle();
-            return dialogCornerRadius;
+            mBottomContentBound = SOURCE_BOUND_MAX_VISIBLE;
         }
 
         /**
@@ -1037,6 +1171,7 @@
          * @param width the window width to be set
          * @param height the window height to be set
          */
+        @NonNull
         public Builder setSize(@Px @IntRange(from = 0) int width,
                 @Px @IntRange(from = 0) int height) {
             Preconditions.checkArgumentPositive(width, "Width should be positive");
@@ -1054,6 +1189,7 @@
          * be just copied to the magnifier with no scaling). The zoom defaults to 1.25.
          * @param zoom the zoom to be set
          */
+        @NonNull
         public Builder setZoom(@FloatRange(from = 0f) float zoom) {
             Preconditions.checkArgumentPositive(zoom, "Zoom should be positive");
             mZoom = zoom;
@@ -1064,6 +1200,7 @@
          * Sets the elevation of the magnifier window, in pixels. Defaults to 4dp.
          * @param elevation the elevation to be set
          */
+        @NonNull
         public Builder setElevation(@Px @FloatRange(from = 0) float elevation) {
             Preconditions.checkArgumentNonNegative(elevation, "Elevation should be non-negative");
             mElevation = elevation;
@@ -1071,10 +1208,10 @@
         }
 
         /**
-         * Sets the corner radius of the magnifier window, in pixels.
-         * Defaults to the corner radius defined in the device default theme.
+         * Sets the corner radius of the magnifier window, in pixels. Defaults to 2dp.
          * @param cornerRadius the corner radius to be set
          */
+        @NonNull
         public Builder setCornerRadius(@Px @FloatRange(from = 0) float cornerRadius) {
             Preconditions.checkArgumentNonNegative(cornerRadius,
                     "Corner radius should be non-negative");
@@ -1083,13 +1220,33 @@
         }
 
         /**
-         * Sets an offset, in pixels, that should be added to the content source center to obtain
+         * Sets an overlay that will be drawn on the top of the magnifier content.
+         * In general, the overlay should not be opaque, in order to let the expected magnifier
+         * content be partially visible. The default overlay is {@code null} (no overlay).
+         * As an example, TextView applies a white {@link ColorDrawable} overlay with
+         * 5% alpha, aiming to make the magnifier distinguishable when shown in dark
+         * application regions. To disable the overlay, the parameter should be set
+         * to {@code null}. If not null, the overlay will be automatically redrawn
+         * when the drawable is invalidated. To achieve this, the magnifier will set a new
+         * {@link android.graphics.drawable.Drawable.Callback} for the overlay drawable,
+         * so keep in mind that any existing one set by the application will be lost.
+         * @param overlay the overlay to be drawn on top
+         */
+        @NonNull
+        public Builder setOverlay(@Nullable Drawable overlay) {
+            mOverlay = overlay;
+            return this;
+        }
+
+        /**
+         * Sets an offset that should be added to the content source center to obtain
          * the position of the magnifier window, when the {@link #show(float, float)}
          * method is called. The offset is ignored when {@link #show(float, float, float, float)}
-         * is used. The offset can be negative, and it defaults to (0dp, -42dp).
+         * is used. The offset can be negative. It defaults to (0dp, 0dp).
          * @param horizontalOffset the horizontal component of the offset
          * @param verticalOffset the vertical component of the offset
          */
+        @NonNull
         public Builder setDefaultSourceToMagnifierOffset(@Px int horizontalOffset,
                 @Px int verticalOffset) {
             mHorizontalDefaultSourceToMagnifierOffset = horizontalOffset;
@@ -1114,6 +1271,7 @@
          * </ul>
          * @param force whether the magnifier position will be adjusted
          */
+        @NonNull
         public Builder setForcePositionWithinWindowSystemInsetsBounds(boolean force) {
             mForcePositionWithinWindowSystemInsetsBounds = force;
             return this;
@@ -1156,6 +1314,7 @@
          * @param right the right bound for content copy
          * @param bottom the bottom bound for content copy
          */
+        @NonNull
         public Builder setSourceBounds(@SourceBound int left, @SourceBound int top,
                 @SourceBound int right, @SourceBound int bottom) {
             mLeftContentBound = left;
@@ -1205,7 +1364,7 @@
     @Retention(RetentionPolicy.SOURCE)
     public @interface SourceBound {}
 
-    // The rest of the file consists of test APIs.
+    // The rest of the file consists of test APIs and methods relevant for tests.
 
     /**
      * See {@link #setOnOperationCompleteCallback(Callback)}.
@@ -1228,7 +1387,7 @@
     }
 
     /**
-     * @return the content being currently displayed in the magnifier, as bitmap
+     * @return the drawing being currently displayed in the magnifier, as bitmap
      *
      * @hide
      */
@@ -1238,12 +1397,14 @@
             return null;
         }
         synchronized (mWindow.mLock) {
-            return Bitmap.createScaledBitmap(mWindow.mBitmap, mWindowWidth, mWindowHeight, true);
+            return mWindow.mCurrentContent;
         }
     }
 
     /**
-     * @return the content to be magnified, as bitmap
+     * Returns a bitmap containing the content that was magnified and drew to the
+     * magnifier, at its original size, without the overlay applied.
+     * @return the content that is magnified, as bitmap
      *
      * @hide
      */
@@ -1267,8 +1428,8 @@
         final Resources resources = Resources.getSystem();
         final float density = resources.getDisplayMetrics().density;
         final PointF size = new PointF();
-        size.x = resources.getDimension(R.dimen.magnifier_width) / density;
-        size.y = resources.getDimension(R.dimen.magnifier_height) / density;
+        size.x = resources.getDimension(R.dimen.default_magnifier_width) / density;
+        size.y = resources.getDimension(R.dimen.default_magnifier_height) / density;
         return size;
     }
 
diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java
index a28cc40..157992a 100644
--- a/core/java/android/widget/NumberPicker.java
+++ b/core/java/android/widget/NumberPicker.java
@@ -18,6 +18,8 @@
 
 import android.annotation.CallSuper;
 import android.annotation.IntDef;
+import android.annotation.IntRange;
+import android.annotation.Px;
 import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.annotation.Widget;
@@ -30,6 +32,7 @@
 import android.graphics.Paint.Align;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
+import android.os.Build;
 import android.os.Bundle;
 import android.text.InputFilter;
 import android.text.InputType;
@@ -88,6 +91,16 @@
  * of the current value. Tapping on the current value allows to type in a
  * desired value.
  * </li>
+ * <li>
+ * If the current theme is derived from {@link android.R.style#Theme_Material}
+ * the widget presents the current value as a scrolling vertical selector with
+ * the selected value in the center and the previous and following numbers above
+ * and below, separated by a divider. The value is changed by flinging vertically.
+ * The thickness of the divider can be changed by using the
+ * {@link android.R.attr#selectionDividerHeight} attribute and the color of the
+ * divider can be changed by using the
+ * {@link android.R.attr#colorControlNormal} attribute.
+ * </li>
  * </ul>
  * <p>
  * For an example of using this widget, see {@link android.widget.TimePicker}.
@@ -436,14 +449,14 @@
     /**
      * Divider for showing item to be selected while scrolling
      */
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private final Drawable mSelectionDivider;
 
     /**
      * The height of the selection divider.
      */
-    @UnsupportedAppUsage
-    private final int mSelectionDividerHeight;
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+    private int mSelectionDividerHeight;
 
     /**
      * The current scroll state of the number picker.
@@ -1556,6 +1569,24 @@
         return mSelectorIndexToStringCache.get(getValue());
     }
 
+    /**
+     * Set the height for the divider that separates the currently selected value from the others.
+     * @param height The height to be set
+     */
+    public void setSelectionDividerHeight(@IntRange(from = 0) @Px int height) {
+        mSelectionDividerHeight = height;
+        invalidate();
+    }
+
+    /**
+     * Retrieve the height for the divider that separates the currently selected value from the
+     * others.
+     * @return The height of the divider
+     */
+    public int getSelectionDividerHeight() {
+        return mSelectionDividerHeight;
+    }
+
     @Override
     protected float getTopFadingEdgeStrength() {
         return TOP_AND_BOTTOM_FADING_EDGE_STRENGTH;
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java
index 74051e2..506d615 100644
--- a/core/java/android/widget/RelativeLayout.java
+++ b/core/java/android/widget/RelativeLayout.java
@@ -204,7 +204,7 @@
 
     private View mBaselineView = null;
 
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private int mGravity = Gravity.START | Gravity.TOP;
     private final Rect mContentBounds = new Rect();
     private final Rect mSelfBounds = new Rect();
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index c0979fe..3b916d1 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -18,6 +18,8 @@
 
 import android.annotation.ColorInt;
 import android.annotation.DimenRes;
+import android.annotation.IntDef;
+import android.annotation.LayoutRes;
 import android.annotation.NonNull;
 import android.annotation.StyleRes;
 import android.annotation.UnsupportedAppUsage;
@@ -131,6 +133,12 @@
     static final String EXTRA_REMOTEADAPTER_APPWIDGET_ID = "remoteAdapterAppWidgetId";
 
     /**
+     * The intent extra that contains {@code true} if inflating as dak text theme.
+     * @hide
+     */
+    static final String EXTRA_REMOTEADAPTER_ON_LIGHT_BACKGROUND = "remoteAdapterOnLightBackground";
+
+    /**
      * The intent extra that contains the bounds for all shared elements.
      */
     public static final String EXTRA_SHARED_ELEMENT_BOUNDS =
@@ -161,6 +169,37 @@
     private static final int LAYOUT_PARAM_ACTION_TAG = 19;
     private static final int OVERRIDE_TEXT_COLORS_TAG = 20;
     private static final int SET_RIPPLE_DRAWABLE_COLOR_TAG = 21;
+    private static final int SET_INT_TAG_TAG = 22;
+
+    /** @hide **/
+    @IntDef(flag = true, value = {
+            FLAG_REAPPLY_DISALLOWED,
+            FLAG_WIDGET_IS_COLLECTION_CHILD,
+            FLAG_USE_LIGHT_BACKGROUND_LAYOUT
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface ApplyFlags {}
+    /**
+     * Whether reapply is disallowed on this remoteview. This maybe be true if some actions modify
+     * the layout in a way that isn't recoverable, since views are being removed.
+     * @hide
+     */
+    public static final int FLAG_REAPPLY_DISALLOWED = 1;
+    /**
+     * This flag indicates whether this RemoteViews object is being created from a
+     * RemoteViewsService for use as a child of a widget collection. This flag is used
+     * to determine whether or not certain features are available, in particular,
+     * setting on click extras and setting on click pending intents. The former is enabled,
+     * and the latter disabled when this flag is true.
+     * @hide
+     */
+    public static final int FLAG_WIDGET_IS_COLLECTION_CHILD = 2;
+    /**
+     * When this flag is set, the views is inflated with {@link #mLightBackgroundLayoutId} instead
+     * of {link #mLayoutId}
+     * @hide
+     */
+    public static final int FLAG_USE_LIGHT_BACKGROUND_LAYOUT = 4;
 
     /**
      * Application that hosts the remote views.
@@ -177,6 +216,11 @@
     private final int mLayoutId;
 
     /**
+     * The resource ID of the layout file in dark text mode. (Added to the parcel)
+     */
+    private int mLightBackgroundLayoutId = 0;
+
+    /**
      * An array of actions to perform on the view tree once it has been
      * inflated
      */
@@ -196,12 +240,6 @@
     private boolean mIsRoot = true;
 
     /**
-     * Whether reapply is disallowed on this remoteview. This maybe be true if some actions modify
-     * the layout in a way that isn't recoverable, since views are being removed.
-     */
-    private boolean mReapplyDisallowed;
-
-    /**
      * Constants to whether or not this RemoteViews is composed of a landscape and portrait
      * RemoteViews.
      */
@@ -217,14 +255,8 @@
     @UnsupportedAppUsage
     private RemoteViews mPortrait = null;
 
-    /**
-     * This flag indicates whether this RemoteViews object is being created from a
-     * RemoteViewsService for use as a child of a widget collection. This flag is used
-     * to determine whether or not certain features are available, in particular,
-     * setting on click extras and setting on click pending intents. The former is enabled,
-     * and the latter disabled when this flag is true.
-     */
-    private boolean mIsWidgetCollectionChild = false;
+    @ApplyFlags
+    private int mApplyFlags = 0;
 
     /** Class cookies of the Parcel this instance was read from. */
     private final Map<Class, Object> mClassCookies;
@@ -274,23 +306,29 @@
     }
 
     /**
+     * Sets an integer tag to the view.
+     *
+     * @hide
+     */
+    public void setIntTag(int viewId, int key, int tag) {
+        addAction(new SetIntTagAction(viewId, key, tag));
+    }
+
+    /**
      * Set that it is disallowed to reapply another remoteview with the same layout as this view.
      * This should be done if an action is destroying the view tree of the base layout.
      *
      * @hide
      */
-    public void setReapplyDisallowed() {
-        mReapplyDisallowed = true;
+    public void addFlags(@ApplyFlags int flags) {
+        mApplyFlags = mApplyFlags | flags;
     }
 
     /**
-     * @return Whether it is disallowed to reapply another remoteview with the same layout as this
-     * view. True if this remoteview has actions that destroyed view tree of the base layout.
-     *
      * @hide
      */
-    public boolean isReapplyDisallowed() {
-        return mReapplyDisallowed;
+    public boolean hasFlags(@ApplyFlags int flag) {
+        return (mApplyFlags & flag) == flag;
     }
 
     /**
@@ -758,7 +796,10 @@
             // Embed the AppWidget Id for use in RemoteViewsAdapter when connecting to the intent
             // RemoteViewsService
             AppWidgetHostView host = (AppWidgetHostView) rootParent;
-            intent.putExtra(EXTRA_REMOTEADAPTER_APPWIDGET_ID, host.getAppWidgetId());
+            intent.putExtra(EXTRA_REMOTEADAPTER_APPWIDGET_ID, host.getAppWidgetId())
+                    .putExtra(EXTRA_REMOTEADAPTER_ON_LIGHT_BACKGROUND,
+                            hasFlags(FLAG_USE_LIGHT_BACKGROUND_LAYOUT));
+
             if (target instanceof AbsListView) {
                 AbsListView v = (AbsListView) target;
                 v.setRemoteViewsAdapter(intent, isAsync);
@@ -819,7 +860,7 @@
                 // If the view is an AdapterView, setting a PendingIntent on click doesn't make
                 // much sense, do they mean to set a PendingIntent template for the
                 // AdapterView's children?
-                if (mIsWidgetCollectionChild) {
+                if (hasFlags(FLAG_WIDGET_IS_COLLECTION_CHILD)) {
                     Log.w(LOG_TAG, "Cannot SetOnClickResponse for collection item "
                             + "(id: " + viewId + ")");
                     ApplicationInfo appInfo = root.getContext().getApplicationInfo();
@@ -833,7 +874,7 @@
                 }
                 target.setTagInternal(R.id.pending_intent_tag, mResponse.mPendingIntent);
             } else if (mResponse.mFillIntent != null) {
-                if (!mIsWidgetCollectionChild) {
+                if (!hasFlags(FLAG_WIDGET_IS_COLLECTION_CHILD)) {
                     Log.e(LOG_TAG, "The method setOnClickFillInIntent is available "
                             + "only from RemoteViewsFactory (ie. on collection items).");
                     return;
@@ -1535,6 +1576,7 @@
             viewId = parcel.readInt();
             mIndex = parcel.readInt();
             mNestedViews = new RemoteViews(parcel, bitmapCache, info, depth, classCookies);
+            mNestedViews.addFlags(mApplyFlags);
         }
 
         public void writeToParcel(Parcel dest, int flags) {
@@ -2122,6 +2164,43 @@
         }
     }
 
+    private class SetIntTagAction extends Action {
+        private final int mViewId;
+        private final int mKey;
+        private final int mTag;
+
+        SetIntTagAction(int viewId, int key, int tag) {
+            mViewId = viewId;
+            mKey = key;
+            mTag = tag;
+        }
+
+        SetIntTagAction(Parcel parcel) {
+            mViewId = parcel.readInt();
+            mKey = parcel.readInt();
+            mTag = parcel.readInt();
+        }
+
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeInt(mViewId);
+            dest.writeInt(mKey);
+            dest.writeInt(mTag);
+        }
+
+        @Override
+        public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
+            final View target = root.findViewById(mViewId);
+            if (target == null) return;
+
+            target.setTagInternal(mKey, mTag);
+        }
+
+        @Override
+        public int getActionTag() {
+            return SET_INT_TAG_TAG;
+        }
+    }
+
     /**
      * Create a new RemoteViews object that will display the views contained
      * in the specified layout file.
@@ -2143,7 +2222,7 @@
      *
      * @hide
      */
-    public RemoteViews(String packageName, int userId, int layoutId) {
+    public RemoteViews(String packageName, int userId, @LayoutRes int layoutId) {
         this(getApplicationInfo(packageName, userId), layoutId);
     }
 
@@ -2156,7 +2235,7 @@
      *
      * @hide
      */
-    protected RemoteViews(ApplicationInfo application, int layoutId) {
+    protected RemoteViews(ApplicationInfo application, @LayoutRes int layoutId) {
         mApplication = application;
         mLayoutId = layoutId;
         mBitmapCache = new BitmapCache();
@@ -2182,7 +2261,8 @@
             throw new RuntimeException("Both RemoteViews must share the same package and user");
         }
         mApplication = portrait.mApplication;
-        mLayoutId = portrait.getLayoutId();
+        mLayoutId = portrait.mLayoutId;
+        mLightBackgroundLayoutId = portrait.mLightBackgroundLayoutId;
 
         mLandscape = landscape;
         mPortrait = portrait;
@@ -2203,8 +2283,8 @@
         mApplication = src.mApplication;
         mIsRoot = src.mIsRoot;
         mLayoutId = src.mLayoutId;
-        mIsWidgetCollectionChild = src.mIsWidgetCollectionChild;
-        mReapplyDisallowed = src.mReapplyDisallowed;
+        mLightBackgroundLayoutId = src.mLightBackgroundLayoutId;
+        mApplyFlags = src.mApplyFlags;
         mClassCookies = src.mClassCookies;
 
         if (src.hasLandscapeAndPortraitLayouts()) {
@@ -2262,7 +2342,7 @@
             mApplication = parcel.readInt() == 0 ? info :
                     ApplicationInfo.CREATOR.createFromParcel(parcel);
             mLayoutId = parcel.readInt();
-            mIsWidgetCollectionChild = parcel.readInt() == 1;
+            mLightBackgroundLayoutId = parcel.readInt();
 
             readActionsFromParcel(parcel, depth);
         } else {
@@ -2271,9 +2351,10 @@
             mPortrait = new RemoteViews(parcel, mBitmapCache, mLandscape.mApplication, depth,
                     mClassCookies);
             mApplication = mPortrait.mApplication;
-            mLayoutId = mPortrait.getLayoutId();
+            mLayoutId = mPortrait.mLayoutId;
+            mLightBackgroundLayoutId = mPortrait.mLightBackgroundLayoutId;
         }
-        mReapplyDisallowed = parcel.readInt() == 0;
+        mApplyFlags = parcel.readInt();
     }
 
     private void readActionsFromParcel(Parcel parcel, int depth) {
@@ -2326,6 +2407,8 @@
                 return new OverrideTextColorsAction(parcel);
             case SET_RIPPLE_DRAWABLE_COLOR_TAG:
                 return new SetRippleDrawableColor(parcel);
+            case SET_INT_TAG_TAG:
+                return new SetIntTagAction(parcel);
             default:
                 throw new ActionException("Tag " + tag + " not found");
         }
@@ -2360,19 +2443,8 @@
      * @return the layout id.
      */
     public int getLayoutId() {
-        return mLayoutId;
-    }
-
-    /*
-     * This flag indicates whether this RemoteViews object is being created from a
-     * RemoteViewsService for use as a child of a widget collection. This flag is used
-     * to determine whether or not certain features are available, in particular,
-     * setting on click extras and setting on click pending intents. The former is enabled,
-     * and the latter disabled when this flag is true.
-     */
-    @UnsupportedAppUsage
-    void setIsWidgetCollectionChild(boolean isWidgetCollectionChild) {
-        mIsWidgetCollectionChild = isWidgetCollectionChild;
+        return hasFlags(FLAG_USE_LIGHT_BACKGROUND_LAYOUT) && (mLightBackgroundLayoutId != 0)
+                ? mLightBackgroundLayoutId : mLayoutId;
     }
 
     /**
@@ -3243,6 +3315,33 @@
         setInt(viewId, "setLabelFor", labeledId);
     }
 
+    /**
+     * Provides an alternate layout ID, which can be used to inflate this view. This layout will be
+     * used by the host when the widgets displayed on a light-background where foreground elements
+     * and text can safely draw using a dark color without any additional background protection.
+     */
+    public void setLightBackgroundLayoutId(@LayoutRes int layoutId) {
+        mLightBackgroundLayoutId = layoutId;
+    }
+
+    /**
+     * If this view supports dark text versions, creates a copy representing that version,
+     * otherwise returns itself.
+     * @hide
+     */
+    public RemoteViews getDarkTextViews() {
+        if (hasFlags(FLAG_USE_LIGHT_BACKGROUND_LAYOUT)) {
+            return this;
+        }
+
+        try {
+            addFlags(FLAG_USE_LIGHT_BACKGROUND_LAYOUT);
+            return new RemoteViews(this);
+        } finally {
+            mApplyFlags &= ~FLAG_USE_LIGHT_BACKGROUND_LAYOUT;
+        }
+    }
+
     private RemoteViews getRemoteViewsToApply(Context context) {
         if (hasLandscapeAndPortraitLayouts()) {
             int orientation = context.getResources().getConfiguration().orientation;
@@ -3603,7 +3702,7 @@
                 mApplication.writeToParcel(dest, flags);
             }
             dest.writeInt(mLayoutId);
-            dest.writeInt(mIsWidgetCollectionChild ? 1 : 0);
+            dest.writeInt(mLightBackgroundLayoutId);
             writeActionsToParcel(dest);
         } else {
             dest.writeInt(MODE_HAS_LANDSCAPE_AND_PORTRAIT);
@@ -3616,7 +3715,7 @@
             // Both RemoteViews already share the same package and user
             mPortrait.writeToParcel(dest, flags | PARCELABLE_ELIDE_DUPLICATES);
         }
-        dest.writeInt(mReapplyDisallowed ? 1 : 0);
+        dest.writeInt(mApplyFlags);
     }
 
     private void writeActionsToParcel(Parcel parcel) {
diff --git a/core/java/android/widget/RemoteViewsAdapter.java b/core/java/android/widget/RemoteViewsAdapter.java
index d17c7c5..c5cd1a1 100644
--- a/core/java/android/widget/RemoteViewsAdapter.java
+++ b/core/java/android/widget/RemoteViewsAdapter.java
@@ -16,6 +16,9 @@
 
 package android.widget;
 
+import static android.widget.RemoteViews.EXTRA_REMOTEADAPTER_APPWIDGET_ID;
+import static android.widget.RemoteViews.EXTRA_REMOTEADAPTER_ON_LIGHT_BACKGROUND;
+
 import android.annotation.UnsupportedAppUsage;
 import android.annotation.WorkerThread;
 import android.app.IServiceConnection;
@@ -97,6 +100,7 @@
     private final Context mContext;
     private final Intent mIntent;
     private final int mAppWidgetId;
+    private final boolean mOnLightBackground;
     private final Executor mAsyncViewLoadExecutor;
 
     private OnClickHandler mRemoteViewsOnClickHandler;
@@ -817,13 +821,13 @@
             throw new IllegalArgumentException("Non-null Intent must be specified.");
         }
 
-        mAppWidgetId = intent.getIntExtra(RemoteViews.EXTRA_REMOTEADAPTER_APPWIDGET_ID, -1);
+        mAppWidgetId = intent.getIntExtra(EXTRA_REMOTEADAPTER_APPWIDGET_ID, -1);
         mRequestedViews = new RemoteViewsFrameLayoutRefSet();
+        mOnLightBackground = intent.getBooleanExtra(EXTRA_REMOTEADAPTER_ON_LIGHT_BACKGROUND, false);
 
         // Strip the previously injected app widget id from service intent
-        if (intent.hasExtra(RemoteViews.EXTRA_REMOTEADAPTER_APPWIDGET_ID)) {
-            intent.removeExtra(RemoteViews.EXTRA_REMOTEADAPTER_APPWIDGET_ID);
-        }
+        intent.removeExtra(EXTRA_REMOTEADAPTER_APPWIDGET_ID);
+        intent.removeExtra(EXTRA_REMOTEADAPTER_ON_LIGHT_BACKGROUND);
 
         // Initialize the worker thread
         mWorkerThread = new HandlerThread("RemoteViewsCache-loader");
@@ -1107,6 +1111,7 @@
             } else {
                 layout = new RemoteViewsFrameLayout(parent.getContext(), mCache);
                 layout.setExecutor(mAsyncViewLoadExecutor);
+                layout.setOnLightBackground(mOnLightBackground);
             }
 
             if (isInCache) {
diff --git a/core/java/android/widget/RemoteViewsListAdapter.java b/core/java/android/widget/RemoteViewsListAdapter.java
index e490458..b80fe48 100644
--- a/core/java/android/widget/RemoteViewsListAdapter.java
+++ b/core/java/android/widget/RemoteViewsListAdapter.java
@@ -85,7 +85,7 @@
     public View getView(int position, View convertView, ViewGroup parent) {
         if (position < getCount()) {
             RemoteViews rv = mRemoteViewsList.get(position);
-            rv.setIsWidgetCollectionChild(true);
+            rv.addFlags(RemoteViews.FLAG_WIDGET_IS_COLLECTION_CHILD);
             View v;
             if (convertView != null && rv != null &&
                     convertView.getId() == rv.getLayoutId()) {
diff --git a/core/java/android/widget/RemoteViewsService.java b/core/java/android/widget/RemoteViewsService.java
index 2827f63..214e5cc 100644
--- a/core/java/android/widget/RemoteViewsService.java
+++ b/core/java/android/widget/RemoteViewsService.java
@@ -163,7 +163,7 @@
             try {
                 rv = mFactory.getViewAt(position);
                 if (rv != null) {
-                    rv.setIsWidgetCollectionChild(true);
+                    rv.addFlags(RemoteViews.FLAG_WIDGET_IS_COLLECTION_CHILD);
                 }
             } catch (Exception ex) {
                 Thread t = Thread.currentThread();
diff --git a/core/java/android/widget/SelectionActionModeHelper.java b/core/java/android/widget/SelectionActionModeHelper.java
index 6cb0eaa..4caf288 100644
--- a/core/java/android/widget/SelectionActionModeHelper.java
+++ b/core/java/android/widget/SelectionActionModeHelper.java
@@ -31,6 +31,7 @@
 import android.text.Selection;
 import android.text.Spannable;
 import android.text.TextUtils;
+import android.text.util.Linkify;
 import android.util.Log;
 import android.view.ActionMode;
 import android.view.textclassifier.SelectionEvent;
@@ -687,17 +688,6 @@
             mTokenIterator = SelectionSessionLogger.getTokenIterator(textView.getTextLocale());
         }
 
-        @TextClassifier.WidgetType
-        private static String getWidetType(TextView textView) {
-            if (textView.isTextEditable()) {
-                return TextClassifier.WIDGET_TYPE_EDITTEXT;
-            }
-            if (textView.isTextSelectable()) {
-                return TextClassifier.WIDGET_TYPE_TEXTVIEW;
-            }
-            return TextClassifier.WIDGET_TYPE_UNSELECTABLE_TEXTVIEW;
-        }
-
         public void logSelectionStarted(
                 TextClassifier classificationSession,
                 CharSequence text, int index,
@@ -1045,7 +1035,12 @@
 
                 trimText();
                 final TextClassification classification;
-                if (mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.P) {
+                if (Linkify.containsUnsupportedCharacters(mText)) {
+                    // Do not show smart actions for text containing unsupported characters.
+                    android.util.EventLog.writeEvent(0x534e4554, "116321860", -1, "");
+                    classification = TextClassification.EMPTY;
+                } else if (mContext.getApplicationInfo().targetSdkVersion
+                        >= Build.VERSION_CODES.P) {
                     final TextClassification.Request request =
                             new TextClassification.Request.Builder(
                                     mTrimmedText, mRelativeStart, mRelativeEnd)
diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java
index d55c09f..79dc670 100644
--- a/core/java/android/widget/Switch.java
+++ b/core/java/android/widget/Switch.java
@@ -1419,27 +1419,10 @@
         return Switch.class.getName();
     }
 
+    /** @hide */
     @Override
-    public void onProvideStructure(ViewStructure structure) {
-        super.onProvideStructure(structure);
-        onProvideStructureForAssistOrAutofillOrViewCapture(structure);
-    }
-
-    @Override
-    public void onProvideAutofillStructure(ViewStructure structure, int flags) {
-        super.onProvideAutofillStructure(structure, flags);
-        onProvideStructureForAssistOrAutofillOrViewCapture(structure);
-    }
-
-    @Override
-    public boolean onProvideContentCaptureStructure(ViewStructure structure, int flags) {
-        final boolean notifyManager = super.onProvideContentCaptureStructure(structure, flags);
-        onProvideStructureForAssistOrAutofillOrViewCapture(structure);
-        return notifyManager;
-    }
-
-    // NOTE: currently there is no difference for any type, so it doesn't take flags
-    private void onProvideStructureForAssistOrAutofillOrViewCapture(ViewStructure structure) {
+    protected void onProvideStructure(@NonNull ViewStructure structure,
+            @ViewStructureType int viewFor, int flags) {
         CharSequence switchText = isChecked() ? mTextOn : mTextOff;
         if (!TextUtils.isEmpty(switchText)) {
             CharSequence oldText = structure.getText();
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 35be766..085f8f1 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -166,7 +166,7 @@
 import android.view.inputmethod.ExtractedTextRequest;
 import android.view.inputmethod.InputConnection;
 import android.view.inputmethod.InputMethodManager;
-import android.view.intelligence.IntelligenceManager;
+import android.view.intelligence.ContentCaptureManager;
 import android.view.textclassifier.TextClassification;
 import android.view.textclassifier.TextClassificationContext;
 import android.view.textclassifier.TextClassificationManager;
@@ -6254,8 +6254,13 @@
         return mHint;
     }
 
-    @UnsupportedAppUsage
-    boolean isSingleLine() {
+    /**
+     * Returns if the text is constrained to a single horizontally scrolling line ignoring new
+     * line characters instead of letting it wrap onto multiple lines.
+     *
+     * @attr ref android.R.styleable#TextView_singleLine
+     */
+    public boolean isSingleLine() {
         return mSingleLine;
     }
 
@@ -10130,7 +10135,7 @@
     }
 
     /**
-     * Notify managers (such as {@link AutofillManager} and {@link IntelligenceManager}) that are
+     * Notify managers (such as {@link AutofillManager} and {@link ContentCaptureManager}) that are
      * interested on text changes.
      */
     private void notifyListeningManagersAfterTextChanged() {
@@ -10150,10 +10155,10 @@
 
         // ContentCapture
         if (isImportantForContentCapture() && isTextEditable()) {
-            final IntelligenceManager im = mContext.getSystemService(IntelligenceManager.class);
-            if (im != null && im.isContentCaptureEnabled()) {
+            final ContentCaptureManager cm = mContext.getSystemService(ContentCaptureManager.class);
+            if (cm != null && cm.isContentCaptureEnabled()) {
                 // TODO(b/111276913): pass flags when edited by user / add CTS test
-                im.notifyViewTextChanged(getAutofillId(), getText(), /* flags= */ 0);
+                cm.notifyViewTextChanged(getAutofillId(), getText(), /* flags= */ 0);
             }
         }
     }
@@ -10942,6 +10947,9 @@
         if (!isPassword || viewFor == VIEW_STRUCTURE_FOR_AUTOFILL
                 || viewFor == VIEW_STRUCTURE_FOR_CONTENT_CAPTURE) {
             if (mLayout == null) {
+                if (viewFor == VIEW_STRUCTURE_FOR_CONTENT_CAPTURE) {
+                    Log.w(LOG_TAG, "onProvideContentCaptureStructure(): calling assumeLayout()");
+                }
                 assumeLayout();
             }
             Layout layout = mLayout;
@@ -12265,13 +12273,13 @@
     }
 
     /**
-     * Returns the current {@link TextDirectionHeuristic}.
-     *
-     * @return the current {@link TextDirectionHeuristic}.
-     * @hide
+     * Returns resolved {@link TextDirectionHeuristic} that will be used for text layout.
+     * The {@link TextDirectionHeuristic} that is used by TextView is only available after
+     * {@link #getTextDirection()} and {@link #getLayoutDirection()} is resolved. Therefore the
+     * return value may not be the same as the one TextView uses if the View's layout direction is
+     * not resolved or detached from parent root view.
      */
-    @UnsupportedAppUsage
-    protected TextDirectionHeuristic getTextDirectionHeuristic() {
+    public TextDirectionHeuristic getTextDirectionHeuristic() {
         if (hasPasswordTransformationMethod()) {
             // passwords fields should be LTR
             return TextDirectionHeuristics.LTR;
diff --git a/core/java/com/android/internal/content/PackageHelper.java b/core/java/com/android/internal/content/PackageHelper.java
index e2b8f7d..5d08a25 100644
--- a/core/java/com/android/internal/content/PackageHelper.java
+++ b/core/java/com/android/internal/content/PackageHelper.java
@@ -309,9 +309,6 @@
         } else if ((params.installFlags & PackageManager.INSTALL_INTERNAL) != 0) {
             prefer = RECOMMEND_INSTALL_INTERNAL;
             checkBoth = false;
-        } else if ((params.installFlags & PackageManager.INSTALL_EXTERNAL) != 0) {
-            prefer = RECOMMEND_INSTALL_EXTERNAL;
-            checkBoth = false;
         } else if (params.installLocation == PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY) {
             prefer = RECOMMEND_INSTALL_INTERNAL;
             checkBoth = false;
diff --git a/core/java/com/android/internal/os/BinderCallsStats.java b/core/java/com/android/internal/os/BinderCallsStats.java
index 34e8ed4..875d7c9 100644
--- a/core/java/com/android/internal/os/BinderCallsStats.java
+++ b/core/java/com/android/internal/os/BinderCallsStats.java
@@ -52,17 +52,23 @@
     public static final boolean ENABLED_DEFAULT = false;
     public static final boolean DETAILED_TRACKING_DEFAULT = true;
     public static final int PERIODIC_SAMPLING_INTERVAL_DEFAULT = 100;
+    public static final int MAX_BINDER_CALL_STATS_COUNT_DEFAULT = 5000;
+
+    private static class OverflowBinder extends Binder {}
 
     private static final String TAG = "BinderCallsStats";
     private static final int CALL_SESSIONS_POOL_SIZE = 100;
     private static final int MAX_EXCEPTION_COUNT_SIZE = 50;
     private static final String EXCEPTION_COUNT_OVERFLOW_NAME = "overflow";
+    private static final Class<? extends Binder> OVERFLOW_BINDER = OverflowBinder.class;
+    private static final int OVERFLOW_TRANSACTION_CODE = -1;
 
     // Whether to collect all the data: cpu + exceptions + reply/request sizes.
     private boolean mDetailedTracking = DETAILED_TRACKING_DEFAULT;
     // Sampling period to control how often to track CPU usage. 1 means all calls, 100 means ~1 out
     // of 100 requests.
     private int mPeriodicSamplingInterval = PERIODIC_SAMPLING_INTERVAL_DEFAULT;
+    private int mMaxBinderCallStatsCount = MAX_BINDER_CALL_STATS_COUNT_DEFAULT;
     @GuardedBy("mLock")
     private final SparseArray<UidEntry> mUidEntries = new SparseArray<>();
     @GuardedBy("mLock")
@@ -71,6 +77,7 @@
     private final Object mLock = new Object();
     private final Random mRandom;
     private long mStartTime = System.currentTimeMillis();
+    private long mCallStatsCount = 0;
 
     private CachedDeviceState.Readonly mDeviceState;
 
@@ -158,7 +165,13 @@
 
                 final CallStat callStat = uidEntry.getOrCreate(
                         callingUid, s.binderClass, s.transactionCode,
-                        mDeviceState.isScreenInteractive());
+                        mDeviceState.isScreenInteractive(),
+                        mCallStatsCount >= mMaxBinderCallStatsCount);
+                final boolean isNewCallStat = callStat.callCount == 0;
+                if (isNewCallStat) {
+                    mCallStatsCount++;
+                }
+
                 callStat.callCount++;
                 callStat.recordedCallCount++;
                 callStat.cpuTimeMicros += duration;
@@ -444,6 +457,24 @@
         }
     }
 
+    /**
+     * Sets the maximum number of items to track.
+     */
+    public void setMaxBinderCallStats(int maxKeys) {
+        if (maxKeys <= 0) {
+            Slog.w(TAG, "Ignored invalid max value (value must be positive): "
+                    + maxKeys);
+            return;
+        }
+
+        synchronized (mLock) {
+            if (maxKeys != mMaxBinderCallStatsCount) {
+                mMaxBinderCallStatsCount = maxKeys;
+                reset();
+            }
+        }
+    }
+
     public void setSamplingInterval(int samplingInterval) {
         if (samplingInterval <= 0) {
             Slog.w(TAG, "Ignored invalid sampling interval (value must be positive): "
@@ -461,6 +492,7 @@
 
     public void reset() {
         synchronized (mLock) {
+            mCallStatsCount = 0;
             mUidEntries.clear();
             mExceptionCounts.clear();
             mStartTime = System.currentTimeMillis();
@@ -595,10 +627,21 @@
         }
 
         CallStat getOrCreate(int callingUid, Class<? extends Binder> binderClass,
-                int transactionCode, boolean screenInteractive) {
+                int transactionCode, boolean screenInteractive, boolean maxCallStatsReached) {
             CallStat mapCallStat = get(callingUid, binderClass, transactionCode, screenInteractive);
-            // Only create CallStat if it's a new entry, otherwise update existing instance
+            // Only create CallStat if it's a new entry, otherwise update existing instance.
             if (mapCallStat == null) {
+                if (maxCallStatsReached) {
+                    mapCallStat = get(callingUid, OVERFLOW_BINDER, OVERFLOW_TRANSACTION_CODE,
+                            screenInteractive);
+                    if (mapCallStat != null) {
+                        return mapCallStat;
+                    }
+
+                    binderClass = OVERFLOW_BINDER;
+                    transactionCode = OVERFLOW_TRANSACTION_CODE;
+                }
+
                 mapCallStat = new CallStat(callingUid, binderClass, transactionCode,
                         screenInteractive);
                 CallStatKey key = new CallStatKey();
diff --git a/core/java/com/android/internal/os/ClassLoaderFactory.java b/core/java/com/android/internal/os/ClassLoaderFactory.java
index 387857f..c5bc45a 100644
--- a/core/java/com/android/internal/os/ClassLoaderFactory.java
+++ b/core/java/com/android/internal/os/ClassLoaderFactory.java
@@ -22,6 +22,8 @@
 import dalvik.system.DexClassLoader;
 import dalvik.system.PathClassLoader;
 
+import java.util.List;
+
 /**
  * Creates class loaders.
  *
@@ -37,6 +39,13 @@
             DelegateLastClassLoader.class.getName();
 
     /**
+     * Returns the name of the class for PathClassLoader.
+     */
+    public static String getPathClassLoaderName() {
+        return PATH_CLASS_LOADER_NAME;
+    }
+
+    /**
      * Returns true if {@code name} is a supported classloader. {@code name} must be a
      * binary name of a class, as defined by {@code Class.getName}.
      */
@@ -68,25 +77,43 @@
      * is created.
      */
     public static ClassLoader createClassLoader(String dexPath,
-            String librarySearchPath, ClassLoader parent, String classloaderName) {
+            String librarySearchPath, ClassLoader parent, String classloaderName,
+            List<ClassLoader> sharedLibraries) {
+        ClassLoader[] arrayOfSharedLibraries = (sharedLibraries == null)
+                ? null
+                : sharedLibraries.toArray(new ClassLoader[sharedLibraries.size()]);
         if (isPathClassLoaderName(classloaderName)) {
-            return new PathClassLoader(dexPath, librarySearchPath, parent);
+            return new PathClassLoader(dexPath, librarySearchPath, parent, arrayOfSharedLibraries);
         } else if (isDelegateLastClassLoaderName(classloaderName)) {
-            return new DelegateLastClassLoader(dexPath, librarySearchPath, parent);
+            return new DelegateLastClassLoader(dexPath, librarySearchPath, parent,
+                    arrayOfSharedLibraries);
         }
 
         throw new AssertionError("Invalid classLoaderName: " + classloaderName);
     }
 
     /**
+     * Same as {@code createClassLoader} below, but passes a null list of shared
+     * libraries.
+     */
+    public static ClassLoader createClassLoader(String dexPath,
+            String librarySearchPath, String libraryPermittedPath, ClassLoader parent,
+            int targetSdkVersion, boolean isNamespaceShared, String classLoaderName) {
+        return createClassLoader(dexPath, librarySearchPath, libraryPermittedPath,
+            parent, targetSdkVersion, isNamespaceShared, classLoaderName, null);
+    }
+
+
+    /**
      * Create a ClassLoader and initialize a linker-namespace for it.
      */
     public static ClassLoader createClassLoader(String dexPath,
             String librarySearchPath, String libraryPermittedPath, ClassLoader parent,
-            int targetSdkVersion, boolean isNamespaceShared, String classloaderName) {
+            int targetSdkVersion, boolean isNamespaceShared, String classLoaderName,
+            List<ClassLoader> sharedLibraries) {
 
         final ClassLoader classLoader = createClassLoader(dexPath, librarySearchPath, parent,
-                classloaderName);
+                classLoaderName, sharedLibraries);
 
         boolean isForVendor = false;
         for (String path : dexPath.split(":")) {
diff --git a/core/java/com/android/internal/os/KernelCpuProcStringReader.java b/core/java/com/android/internal/os/KernelCpuProcStringReader.java
index 22435ae..b3aec0c 100644
--- a/core/java/com/android/internal/os/KernelCpuProcStringReader.java
+++ b/core/java/com/android/internal/os/KernelCpuProcStringReader.java
@@ -25,6 +25,7 @@
 import java.io.IOException;
 import java.nio.CharBuffer;
 import java.nio.file.Files;
+import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Arrays;
@@ -59,6 +60,7 @@
     private static final String PROC_UID_FREQ_TIME = "/proc/uid_time_in_state";
     private static final String PROC_UID_ACTIVE_TIME = "/proc/uid_concurrent_active_time";
     private static final String PROC_UID_CLUSTER_TIME = "/proc/uid_concurrent_policy_time";
+    private static final String PROC_UID_USER_SYS_TIME = "/proc/uid_cputime/show_uid_stat";
 
     private static final KernelCpuProcStringReader FREQ_TIME_READER =
             new KernelCpuProcStringReader(PROC_UID_FREQ_TIME);
@@ -66,19 +68,25 @@
             new KernelCpuProcStringReader(PROC_UID_ACTIVE_TIME);
     private static final KernelCpuProcStringReader CLUSTER_TIME_READER =
             new KernelCpuProcStringReader(PROC_UID_CLUSTER_TIME);
+    private static final KernelCpuProcStringReader USER_SYS_TIME_READER =
+            new KernelCpuProcStringReader(PROC_UID_USER_SYS_TIME);
 
-    public static KernelCpuProcStringReader getFreqTimeReaderInstance() {
+    static KernelCpuProcStringReader getFreqTimeReaderInstance() {
         return FREQ_TIME_READER;
     }
 
-    public static KernelCpuProcStringReader getActiveTimeReaderInstance() {
+    static KernelCpuProcStringReader getActiveTimeReaderInstance() {
         return ACTIVE_TIME_READER;
     }
 
-    public static KernelCpuProcStringReader getClusterTimeReaderInstance() {
+    static KernelCpuProcStringReader getClusterTimeReaderInstance() {
         return CLUSTER_TIME_READER;
     }
 
+    static KernelCpuProcStringReader getUserSysTimeReaderInstance() {
+        return USER_SYS_TIME_READER;
+    }
+
     private int mErrors = 0;
     private final Path mFile;
     private char[] mBuf;
@@ -164,12 +172,12 @@
             // ReentrantReadWriteLock allows lock downgrading.
             mReadLock.lock();
             return new ProcFileIterator(total);
-        } catch (FileNotFoundException e) {
+        } catch (FileNotFoundException | NoSuchFileException e) {
             mErrors++;
             Slog.w(TAG, "File not found. It's normal if not implemented: " + mFile);
         } catch (IOException e) {
             mErrors++;
-            Slog.e(TAG, "Error reading: " + mFile, e);
+            Slog.e(TAG, "Error reading " + mFile, e);
         } finally {
             StrictMode.setThreadPolicyMask(oldMask);
             mWriteLock.unlock();
@@ -193,6 +201,11 @@
             mSize = size;
         }
 
+        /** @return Whether there are more lines in the iterator. */
+        public boolean hasNextLine() {
+            return mPos < mSize;
+        }
+
         /**
          * Fetches the next line. Note that all subsequent return values share the same char[]
          * under the hood.
@@ -214,44 +227,6 @@
             return CharBuffer.wrap(mBuf, start, i - start);
         }
 
-        /**
-         * Fetches the next line, converts all numbers into long, and puts into the given long[].
-         * To avoid GC, caller should try to use the same array for all calls. All non-numeric
-         * chars are treated as delimiters. All numbers are non-negative.
-         *
-         * @param array An array to store the parsed numbers.
-         * @return The number of elements written to the given array. -1 if there is no more line.
-         */
-        public int nextLineAsArray(long[] array) {
-            CharBuffer buf = nextLine();
-            if (buf == null) {
-                return -1;
-            }
-            int count = 0;
-            long num = -1;
-            char c;
-
-            while (buf.remaining() > 0 && count < array.length) {
-                c = buf.get();
-                if (num < 0) {
-                    if (isNumber(c)) {
-                        num = c - '0';
-                    }
-                } else {
-                    if (isNumber(c)) {
-                        num = num * 10 + c - '0';
-                    } else {
-                        array[count++] = num;
-                        num = -1;
-                    }
-                }
-            }
-            if (num >= 0) {
-                array[count++] = num;
-            }
-            return count;
-        }
-
         /** Total size of the proc file in chars. */
         public int size() {
             return mSize;
@@ -262,8 +237,63 @@
             mReadLock.unlock();
         }
 
-        private boolean isNumber(char c) {
-            return c >= '0' && c <= '9';
+
+    }
+
+    /**
+     * Converts all numbers in the CharBuffer into longs, and puts into the given long[].
+     *
+     * Space and colon are treated as delimiters. All other chars are not allowed. All numbers
+     * are non-negative. To avoid GC, caller should try to use the same array for all calls.
+     *
+     * This method also resets the given buffer to the original position before return so that
+     * it can be read again.
+     *
+     * @param buf   The char buffer to be converted.
+     * @param array An array to store the parsed numbers.
+     * @return The number of elements written to the given array. -1 if buf is null, -2 if buf
+     * contains invalid char, -3 if any number overflows.
+     */
+    public static int asLongs(CharBuffer buf, long[] array) {
+        if (buf == null) {
+            return -1;
         }
+        final int initialPos = buf.position();
+        int count = 0;
+        long num = -1;
+        char c;
+
+        while (buf.remaining() > 0 && count < array.length) {
+            c = buf.get();
+            if (!(isNumber(c) || c == ' ' || c == ':')) {
+                buf.position(initialPos);
+                return -2;
+            }
+            if (num < 0) {
+                if (isNumber(c)) {
+                    num = c - '0';
+                }
+            } else {
+                if (isNumber(c)) {
+                    num = num * 10 + c - '0';
+                    if (num < 0) {
+                        buf.position(initialPos);
+                        return -3;
+                    }
+                } else {
+                    array[count++] = num;
+                    num = -1;
+                }
+            }
+        }
+        if (num >= 0) {
+            array[count++] = num;
+        }
+        buf.position(initialPos);
+        return count;
+    }
+
+    private static boolean isNumber(char c) {
+        return c >= '0' && c <= '9';
     }
 }
diff --git a/core/java/com/android/internal/os/KernelCpuThreadReader.java b/core/java/com/android/internal/os/KernelCpuThreadReader.java
index ade5d05..2742b7c 100644
--- a/core/java/com/android/internal/os/KernelCpuThreadReader.java
+++ b/core/java/com/android/internal/os/KernelCpuThreadReader.java
@@ -29,6 +29,7 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.function.Predicate;
 
 /**
  * Given a process, will iterate over the child threads of the process, and return the CPU usage
@@ -70,6 +71,11 @@
     private static final String THREAD_NAME_FILENAME = "comm";
 
     /**
+     * Glob pattern for the process directory names under {@code proc}
+     */
+    private static final String PROCESS_DIRECTORY_FILTER = "[0-9]*";
+
+    /**
      * Default process name when the name can't be read
      */
     private static final String DEFAULT_PROCESS_NAME = "unknown_process";
@@ -96,6 +102,17 @@
     private static final int NUM_BUCKETS = 8;
 
     /**
+     * Default predicate for what UIDs to check for when getting processes. This filters to only
+     * select UID 1000 (the {@code system} user)
+     */
+    private static final Predicate<Integer> DEFAULT_UID_PREDICATE = uid -> uid == 1000;
+
+    /**
+     * Value returned when there was an error getting an integer ID value (e.g. PID, UID)
+     */
+    private static final int ID_ERROR = -1;
+
+    /**
      * Where the proc filesystem is mounted
      */
     private final Path mProcPath;
@@ -116,8 +133,13 @@
      */
     private final FrequencyBucketCreator mFrequencyBucketCreator;
 
+    private final Injector mInjector;
+
     private KernelCpuThreadReader() throws IOException {
-        this(DEFAULT_PROC_PATH, DEFAULT_INITIAL_TIME_IN_STATE_PATH);
+        this(
+                DEFAULT_PROC_PATH,
+                DEFAULT_INITIAL_TIME_IN_STATE_PATH,
+                new Injector());
     }
 
     /**
@@ -128,9 +150,13 @@
      * format
      */
     @VisibleForTesting
-    public KernelCpuThreadReader(Path procPath, Path initialTimeInStatePath) throws IOException {
+    public KernelCpuThreadReader(
+            Path procPath,
+            Path initialTimeInStatePath,
+            Injector injector) throws IOException {
         mProcPath = procPath;
         mProcTimeInStateReader = new ProcTimeInStateReader(initialTimeInStatePath);
+        mInjector = injector;
 
         // Copy mProcTimeInState's frequencies and initialize bucketing
         final long[] frequenciesKhz = mProcTimeInStateReader.getFrequenciesKhz();
@@ -154,6 +180,67 @@
     }
 
     /**
+     * Get the per-thread CPU usage of all processes belonging to UIDs between {@code [1000, 2000)}
+     */
+    @Nullable
+    public ArrayList<ProcessCpuUsage> getProcessCpuUsageByUids() {
+        return getProcessCpuUsageByUids(DEFAULT_UID_PREDICATE);
+    }
+
+    /**
+     * Get the per-thread CPU usage of all processes belonging to a set of UIDs
+     *
+     * <p>This function will crawl through all process {@code proc} directories found by the pattern
+     * {@code /proc/[0-9]*}, and then check the UID using {@code /proc/$PID/status}. This takes
+     * approximately 500ms on a Pixel 2. Therefore, this method can be computationally expensive,
+     * and should not be called more than once an hour.
+     *
+     * @param uidPredicate only get usage from processes owned by UIDs that match this predicate
+     */
+    @Nullable
+    public ArrayList<ProcessCpuUsage> getProcessCpuUsageByUids(Predicate<Integer> uidPredicate) {
+        if (DEBUG) {
+            Slog.d(TAG, "Reading CPU thread usages for processes owned by UIDs");
+        }
+
+        final ArrayList<ProcessCpuUsage> processCpuUsages = new ArrayList<>();
+
+        try (DirectoryStream<Path> processPaths =
+                     Files.newDirectoryStream(mProcPath, PROCESS_DIRECTORY_FILTER)) {
+            for (Path processPath : processPaths) {
+                final int processId = getProcessId(processPath);
+                final int uid = mInjector.getUidForPid(processId);
+                if (uid == ID_ERROR || processId == ID_ERROR) {
+                    continue;
+                }
+                if (!uidPredicate.test(uid)) {
+                    continue;
+                }
+
+                final ProcessCpuUsage processCpuUsage =
+                        getProcessCpuUsage(processPath, processId, uid);
+                if (processCpuUsage != null) {
+                    processCpuUsages.add(processCpuUsage);
+                }
+            }
+        } catch (IOException e) {
+            Slog.w("Failed to iterate over process paths", e);
+            return null;
+        }
+
+        if (processCpuUsages.isEmpty()) {
+            Slog.w(TAG, "Didn't successfully get any process CPU information for UIDs specified");
+            return null;
+        }
+
+        if (DEBUG) {
+            Slog.d(TAG, "Read usage for " + processCpuUsages.size() + " processes");
+        }
+
+        return processCpuUsages;
+    }
+
+    /**
      * Read all of the CPU usage statistics for each child thread of the current process
      *
      * @return process CPU usage containing usage of all child threads
@@ -162,8 +249,8 @@
     public ProcessCpuUsage getCurrentProcessCpuUsage() {
         return getProcessCpuUsage(
                 mProcPath.resolve("self"),
-                Process.myPid(),
-                Process.myUid());
+                mInjector.myPid(),
+                mInjector.myUid());
     }
 
     /**
@@ -172,7 +259,8 @@
      * @param processPath the {@code /proc} path of the thread
      * @param processId the ID of the process
      * @param uid the ID of the user who owns the process
-     * @return process CPU usage containing usage of all child threads
+     * @return process CPU usage containing usage of all child threads. Null if the process exited
+     * and its {@code proc} directory was removed while collecting information
      */
     @Nullable
     private ProcessCpuUsage getProcessCpuUsage(Path processPath, int processId, int uid) {
@@ -224,7 +312,8 @@
      * Get a thread's CPU usage
      *
      * @param threadDirectory the {@code /proc} directory of the thread
-     * @return null in the case that the directory read failed
+     * @return thread CPU usage. Null if the thread exited and its {@code proc} directory was
+     * removed while collecting information
      */
     @Nullable
     private ThreadCpuUsage getThreadCpuUsage(Path threadDirectory) {
@@ -280,6 +369,22 @@
     }
 
     /**
+     * Get the ID of a process from its path
+     *
+     * @param processPath {@code proc} path of the process
+     * @return the ID, {@link #ID_ERROR} if the path could not be parsed
+     */
+    private int getProcessId(Path processPath) {
+        String fileName = processPath.getFileName().toString();
+        try {
+            return Integer.parseInt(fileName);
+        } catch (NumberFormatException e) {
+            Slog.w(TAG, "Failed to parse " + fileName + " as process ID", e);
+            return ID_ERROR;
+        }
+    }
+
+    /**
      * Puts frequencies and usage times into buckets
      */
     @VisibleForTesting
@@ -443,4 +548,31 @@
             this.usageTimesMillis = usageTimesMillis;
         }
     }
+
+    /**
+     * Used to inject static methods from {@link Process}
+     */
+    @VisibleForTesting
+    public static class Injector {
+        /**
+         * Get the PID of the current process
+         */
+        public int myPid() {
+            return Process.myPid();
+        }
+
+        /**
+         * Get the UID that owns the current process
+         */
+        public int myUid() {
+            return Process.myUid();
+        }
+
+        /**
+         * Get the UID for the process with ID {@code pid}
+         */
+        public int getUidForPid(int pid) {
+            return Process.getUidForPid(pid);
+        }
+    }
 }
diff --git a/core/java/com/android/internal/os/KernelCpuUidTimeReader.java b/core/java/com/android/internal/os/KernelCpuUidTimeReader.java
new file mode 100644
index 0000000..7021b57
--- /dev/null
+++ b/core/java/com/android/internal/os/KernelCpuUidTimeReader.java
@@ -0,0 +1,776 @@
+/*
+ * 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.internal.os;
+
+import static com.android.internal.os.KernelCpuProcStringReader.asLongs;
+import static com.android.internal.util.Preconditions.checkNotNull;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.StrictMode;
+import android.os.SystemClock;
+import android.util.IntArray;
+import android.util.Slog;
+import android.util.SparseArray;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.os.KernelCpuProcStringReader.ProcFileIterator;
+
+import java.io.BufferedReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.nio.CharBuffer;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+/**
+ * Reads per-UID CPU time proc files. Concrete implementations are all nested inside.
+ *
+ * This class uses a throttler to reject any {@link #readDelta} or {@link #readAbsolute} call
+ * within {@link #mMinTimeBetweenRead}. The throttler can be enable / disabled via a param in
+ * the constructor.
+ *
+ * This class and its subclasses are NOT thread-safe and NOT designed to be accessed by more than
+ * one caller since each caller has its own view of delta.
+ *
+ * @param <T> The type of CPU time for the callback.
+ */
+public abstract class KernelCpuUidTimeReader<T> {
+    protected static final boolean DEBUG = false;
+    private static final long DEFAULT_MIN_TIME_BETWEEN_READ = 1000L; // In milliseconds
+
+    final String mTag = this.getClass().getSimpleName();
+    final SparseArray<T> mLastTimes = new SparseArray<>();
+    final KernelCpuProcStringReader mReader;
+    final boolean mThrottle;
+    private long mMinTimeBetweenRead = DEFAULT_MIN_TIME_BETWEEN_READ;
+    private long mLastReadTimeMs = 0;
+
+    /**
+     * Callback interface for processing each line of the proc file.
+     *
+     * @param <T> The type of CPU time for the callback function.
+     */
+    public interface Callback<T> {
+        /**
+         * @param uid  UID of the app
+         * @param time Time spent. The exact data structure depends on subclass implementation.
+         */
+        void onUidCpuTime(int uid, T time);
+    }
+
+    KernelCpuUidTimeReader(KernelCpuProcStringReader reader, boolean throttle) {
+        mReader = reader;
+        mThrottle = throttle;
+    }
+
+    /**
+     * Reads the proc file, calling into the callback with a delta of time for each UID.
+     *
+     * @param cb The callback to invoke for each line of the proc file. If null,the data is
+     *           consumed and subsequent calls to readDelta will provide a fresh delta.
+     */
+    public void readDelta(@Nullable Callback<T> cb) {
+        if (!mThrottle) {
+            readDeltaImpl(cb);
+            return;
+        }
+        final long currTimeMs = SystemClock.elapsedRealtime();
+        if (currTimeMs < mLastReadTimeMs + mMinTimeBetweenRead) {
+            if (DEBUG) {
+                Slog.d(mTag, "Throttle readDelta");
+            }
+            return;
+        }
+        readDeltaImpl(cb);
+        mLastReadTimeMs = currTimeMs;
+    }
+
+    /**
+     * Reads the proc file, calling into the callback with cumulative time for each UID.
+     *
+     * @param cb The callback to invoke for each line of the proc file. It cannot be null.
+     */
+    public void readAbsolute(Callback<T> cb) {
+        if (!mThrottle) {
+            readAbsoluteImpl(cb);
+            return;
+        }
+        final long currTimeMs = SystemClock.elapsedRealtime();
+        if (currTimeMs < mLastReadTimeMs + mMinTimeBetweenRead) {
+            if (DEBUG) {
+                Slog.d(mTag, "Throttle readAbsolute");
+            }
+            return;
+        }
+        readAbsoluteImpl(cb);
+        mLastReadTimeMs = currTimeMs;
+    }
+
+    abstract void readDeltaImpl(@Nullable Callback<T> cb);
+
+    abstract void readAbsoluteImpl(Callback<T> callback);
+
+    /**
+     * Removes the UID from internal accounting data. This method, overridden in
+     * {@link KernelCpuUidUserSysTimeReader}, also removes the UID from the kernel module.
+     *
+     * @param uid The UID to remove.
+     * @see KernelCpuUidUserSysTimeReader#removeUid(int)
+     */
+    public void removeUid(int uid) {
+        mLastTimes.delete(uid);
+    }
+
+    /**
+     * Removes UIDs in a given range from internal accounting data. This method, overridden in
+     * {@link KernelCpuUidUserSysTimeReader}, also removes the UIDs from the kernel module.
+     *
+     * @param startUid the first uid to remove.
+     * @param endUid   the last uid to remove.
+     * @see KernelCpuUidUserSysTimeReader#removeUidsInRange(int, int)
+     */
+    public void removeUidsInRange(int startUid, int endUid) {
+        if (endUid < startUid) {
+            Slog.e(mTag, "start UID " + startUid + " > end UID " + endUid);
+            return;
+        }
+        mLastTimes.put(startUid, null);
+        mLastTimes.put(endUid, null);
+        final int firstIndex = mLastTimes.indexOfKey(startUid);
+        final int lastIndex = mLastTimes.indexOfKey(endUid);
+        mLastTimes.removeAtRange(firstIndex, lastIndex - firstIndex + 1);
+    }
+
+    /**
+     * Set the minimum time in milliseconds between reads. If throttle is not enabled, this method
+     * has no effect.
+     *
+     * @param minTimeBetweenRead The minimum time in milliseconds.
+     */
+    public void setThrottle(long minTimeBetweenRead) {
+        if (mThrottle && minTimeBetweenRead >= 0) {
+            mMinTimeBetweenRead = minTimeBetweenRead;
+        }
+    }
+
+    /**
+     * Reads /proc/uid_cputime/show_uid_stat which has the line format:
+     *
+     * uid: user_time_micro_seconds system_time_micro_seconds power_in_milli-amp-micro_seconds
+     *
+     * This provides the time a UID's processes spent executing in user-space and kernel-space.
+     * The file contains a monotonically increasing count of time for a single boot. This class
+     * maintains the previous results of a call to {@link #readDelta} in order to provide a proper
+     * delta.
+     */
+    public static class KernelCpuUidUserSysTimeReader extends KernelCpuUidTimeReader<long[]> {
+        private static final String REMOVE_UID_PROC_FILE = "/proc/uid_cputime/remove_uid_range";
+
+        // [uid, user_time, system_time, (maybe) power_in_milli-amp-micro_seconds]
+        private final long[] mBuffer = new long[4];
+        // A reusable array to hold [user_time, system_time] for the callback.
+        private final long[] mUsrSysTime = new long[2];
+
+        public KernelCpuUidUserSysTimeReader(boolean throttle) {
+            super(KernelCpuProcStringReader.getUserSysTimeReaderInstance(), throttle);
+        }
+
+        @VisibleForTesting
+        public KernelCpuUidUserSysTimeReader(KernelCpuProcStringReader reader, boolean throttle) {
+            super(reader, throttle);
+        }
+
+        @Override
+        void readDeltaImpl(@Nullable Callback<long[]> cb) {
+            try (ProcFileIterator iter = mReader.open(!mThrottle)) {
+                if (iter == null) {
+                    return;
+                }
+                CharBuffer buf;
+                while ((buf = iter.nextLine()) != null) {
+                    if (asLongs(buf, mBuffer) < 3) {
+                        Slog.wtf(mTag, "Invalid line: " + buf.toString());
+                        continue;
+                    }
+                    final int uid = (int) mBuffer[0];
+                    long[] lastTimes = mLastTimes.get(uid);
+                    if (lastTimes == null) {
+                        lastTimes = new long[2];
+                        mLastTimes.put(uid, lastTimes);
+                    }
+                    final long currUsrTimeUs = mBuffer[1];
+                    final long currSysTimeUs = mBuffer[2];
+                    mUsrSysTime[0] = currUsrTimeUs - lastTimes[0];
+                    mUsrSysTime[1] = currSysTimeUs - lastTimes[1];
+
+                    if (mUsrSysTime[0] < 0 || mUsrSysTime[1] < 0) {
+                        Slog.e(mTag, "Negative user/sys time delta for UID=" + uid
+                                + "\nPrev times: u=" + lastTimes[0] + " s=" + lastTimes[1]
+                                + " Curr times: u=" + currUsrTimeUs + " s=" + currSysTimeUs);
+                    } else if (mUsrSysTime[0] > 0 || mUsrSysTime[1] > 0) {
+                        if (cb != null) {
+                            cb.onUidCpuTime(uid, mUsrSysTime);
+                        }
+                    }
+                    lastTimes[0] = currUsrTimeUs;
+                    lastTimes[1] = currSysTimeUs;
+                }
+            }
+        }
+
+        @Override
+        void readAbsoluteImpl(Callback<long[]> cb) {
+            try (ProcFileIterator iter = mReader.open(!mThrottle)) {
+                if (iter == null) {
+                    return;
+                }
+                CharBuffer buf;
+                while ((buf = iter.nextLine()) != null) {
+                    if (asLongs(buf, mBuffer) < 3) {
+                        Slog.wtf(mTag, "Invalid line: " + buf.toString());
+                        continue;
+                    }
+                    mUsrSysTime[0] = mBuffer[1]; // User time in microseconds
+                    mUsrSysTime[1] = mBuffer[2]; // System time in microseconds
+                    cb.onUidCpuTime((int) mBuffer[0], mUsrSysTime);
+                }
+            }
+        }
+
+        @Override
+        public void removeUid(int uid) {
+            super.removeUid(uid);
+            removeUidsFromKernelModule(uid, uid);
+        }
+
+        @Override
+        public void removeUidsInRange(int startUid, int endUid) {
+            super.removeUidsInRange(startUid, endUid);
+            removeUidsFromKernelModule(startUid, endUid);
+        }
+
+        /**
+         * Removes UIDs in a given range from the kernel module and internal accounting data. Only
+         * {@link BatteryStatsImpl} and its child processes should call this, as the change on
+         * Kernel is
+         * visible system wide.
+         *
+         * @param startUid the first uid to remove
+         * @param endUid   the last uid to remove
+         */
+        private void removeUidsFromKernelModule(int startUid, int endUid) {
+            Slog.d(mTag, "Removing uids " + startUid + "-" + endUid);
+            final int oldMask = StrictMode.allowThreadDiskWritesMask();
+            try (FileWriter writer = new FileWriter(REMOVE_UID_PROC_FILE)) {
+                writer.write(startUid + "-" + endUid);
+                writer.flush();
+            } catch (IOException e) {
+                Slog.e(mTag, "failed to remove uids " + startUid + " - " + endUid
+                        + " from uid_cputime module", e);
+            } finally {
+                StrictMode.setThreadPolicyMask(oldMask);
+            }
+        }
+    }
+
+    /**
+     * Reads /proc/uid_time_in_state which has the format:
+     *
+     * uid: [freq1] [freq2] [freq3] ...
+     * [uid1]: [time in freq1] [time in freq2] [time in freq3] ...
+     * [uid2]: [time in freq1] [time in freq2] [time in freq3] ...
+     * ...
+     *
+     * This provides the times a UID's processes spent executing at each different cpu frequency.
+     * The file contains a monotonically increasing count of time for a single boot. This class
+     * maintains the previous results of a call to {@link #readDelta} in order to provide a proper
+     * delta.
+     */
+    public static class KernelCpuUidFreqTimeReader extends KernelCpuUidTimeReader<long[]> {
+        private static final String UID_TIMES_PROC_FILE = "/proc/uid_time_in_state";
+        // We check the existence of proc file a few times (just in case it is not ready yet when we
+        // start reading) and if it is not available, we simply ignore further read requests.
+        private static final int MAX_ERROR_COUNT = 5;
+
+        private final Path mProcFilePath;
+        private long[] mBuffer;
+        private long[] mCurTimes;
+        private long[] mDeltaTimes;
+        private long[] mCpuFreqs;
+
+        private int mFreqCount = 0;
+        private int mErrors = 0;
+        private boolean mPerClusterTimesAvailable;
+        private boolean mAllUidTimesAvailable = true;
+
+        public KernelCpuUidFreqTimeReader(boolean throttle) {
+            this(UID_TIMES_PROC_FILE, KernelCpuProcStringReader.getFreqTimeReaderInstance(),
+                    throttle);
+        }
+
+        @VisibleForTesting
+        public KernelCpuUidFreqTimeReader(String procFile, KernelCpuProcStringReader reader,
+                boolean throttle) {
+            super(reader, throttle);
+            mProcFilePath = Paths.get(procFile);
+        }
+
+        /**
+         * @return Whether per-cluster times are available.
+         */
+        public boolean perClusterTimesAvailable() {
+            return mPerClusterTimesAvailable;
+        }
+
+        /**
+         * @return Whether all-UID times are available.
+         */
+        public boolean allUidTimesAvailable() {
+            return mAllUidTimesAvailable;
+        }
+
+        /**
+         * @return A map of all UIDs to their CPU time-in-state array in milliseconds.
+         */
+        public SparseArray<long[]> getAllUidCpuFreqTimeMs() {
+            return mLastTimes;
+        }
+
+        /**
+         * Reads a list of CPU frequencies from /proc/uid_time_in_state. Uses a given PowerProfile
+         * to determine if per-cluster times are available.
+         *
+         * @param powerProfile The PowerProfile to compare against.
+         * @return A long[] of CPU frequencies in Hz.
+         */
+        public long[] readFreqs(@NonNull PowerProfile powerProfile) {
+            checkNotNull(powerProfile);
+            if (mCpuFreqs != null) {
+                // No need to read cpu freqs more than once.
+                return mCpuFreqs;
+            }
+            if (!mAllUidTimesAvailable) {
+                return null;
+            }
+            final int oldMask = StrictMode.allowThreadDiskReadsMask();
+            try (BufferedReader reader = Files.newBufferedReader(mProcFilePath)) {
+                if (readFreqs(reader.readLine()) == null) {
+                    return null;
+                }
+            } catch (IOException e) {
+                if (++mErrors >= MAX_ERROR_COUNT) {
+                    mAllUidTimesAvailable = false;
+                }
+                Slog.e(mTag, "Failed to read " + UID_TIMES_PROC_FILE + ": " + e);
+                return null;
+            } finally {
+                StrictMode.setThreadPolicyMask(oldMask);
+            }
+            // Check if the freqs in the proc file correspond to per-cluster freqs.
+            final IntArray numClusterFreqs = extractClusterInfoFromProcFileFreqs();
+            final int numClusters = powerProfile.getNumCpuClusters();
+            if (numClusterFreqs.size() == numClusters) {
+                mPerClusterTimesAvailable = true;
+                for (int i = 0; i < numClusters; ++i) {
+                    if (numClusterFreqs.get(i) != powerProfile.getNumSpeedStepsInCpuCluster(i)) {
+                        mPerClusterTimesAvailable = false;
+                        break;
+                    }
+                }
+            } else {
+                mPerClusterTimesAvailable = false;
+            }
+            Slog.i(mTag, "mPerClusterTimesAvailable=" + mPerClusterTimesAvailable);
+            return mCpuFreqs;
+        }
+
+        private long[] readFreqs(String line) {
+            if (line == null) {
+                return null;
+            }
+            final String[] lineArray = line.split(" ");
+            if (lineArray.length <= 1) {
+                Slog.wtf(mTag, "Malformed freq line: " + line);
+                return null;
+            }
+            mFreqCount = lineArray.length - 1;
+            mCpuFreqs = new long[mFreqCount];
+            mCurTimes = new long[mFreqCount];
+            mDeltaTimes = new long[mFreqCount];
+            mBuffer = new long[mFreqCount + 1];
+            for (int i = 0; i < mFreqCount; ++i) {
+                mCpuFreqs[i] = Long.parseLong(lineArray[i + 1], 10);
+            }
+            return mCpuFreqs;
+        }
+
+        @Override
+        void readDeltaImpl(@Nullable Callback<long[]> cb) {
+            try (ProcFileIterator iter = mReader.open(!mThrottle)) {
+                if (!checkPrecondition(iter)) {
+                    return;
+                }
+                CharBuffer buf;
+                while ((buf = iter.nextLine()) != null) {
+                    if (asLongs(buf, mBuffer) != mBuffer.length) {
+                        Slog.wtf(mTag, "Invalid line: " + buf.toString());
+                        continue;
+                    }
+                    final int uid = (int) mBuffer[0];
+                    long[] lastTimes = mLastTimes.get(uid);
+                    if (lastTimes == null) {
+                        lastTimes = new long[mFreqCount];
+                        mLastTimes.put(uid, lastTimes);
+                    }
+                    copyToCurTimes();
+                    boolean notify = false;
+                    boolean valid = true;
+                    for (int i = 0; i < mFreqCount; i++) {
+                        // Unit is 10ms.
+                        mDeltaTimes[i] = mCurTimes[i] - lastTimes[i];
+                        if (mDeltaTimes[i] < 0) {
+                            Slog.e(mTag, "Negative delta from freq time proc: " + mDeltaTimes[i]);
+                            valid = false;
+                        }
+                        notify |= mDeltaTimes[i] > 0;
+                    }
+                    if (notify && valid) {
+                        System.arraycopy(mCurTimes, 0, lastTimes, 0, mFreqCount);
+                        if (cb != null) {
+                            cb.onUidCpuTime(uid, mDeltaTimes);
+                        }
+                    }
+                }
+            }
+        }
+
+        @Override
+        void readAbsoluteImpl(Callback<long[]> cb) {
+            try (ProcFileIterator iter = mReader.open(!mThrottle)) {
+                if (!checkPrecondition(iter)) {
+                    return;
+                }
+                CharBuffer buf;
+                while ((buf = iter.nextLine()) != null) {
+                    if (asLongs(buf, mBuffer) != mBuffer.length) {
+                        Slog.wtf(mTag, "Invalid line: " + buf.toString());
+                        continue;
+                    }
+                    copyToCurTimes();
+                    cb.onUidCpuTime((int) mBuffer[0], mCurTimes);
+                }
+            }
+        }
+
+        private void copyToCurTimes() {
+            for (int i = 0; i < mFreqCount; i++) {
+                mCurTimes[i] = mBuffer[i + 1] * 10;
+            }
+        }
+
+        private boolean checkPrecondition(ProcFileIterator iter) {
+            if (iter == null || !iter.hasNextLine()) {
+                // Error logged in KernelCpuProcStringReader.
+                return false;
+            }
+            CharBuffer line = iter.nextLine();
+            if (mCpuFreqs != null) {
+                return true;
+            }
+            return readFreqs(line.toString()) != null;
+        }
+
+        /**
+         * Extracts no. of cpu clusters and no. of freqs in each of these clusters from the freqs
+         * read from the proc file.
+         *
+         * We need to assume that freqs in each cluster are strictly increasing.
+         * For e.g. if the freqs read from proc file are: 12, 34, 15, 45, 12, 15, 52. Then it means
+         * there are 3 clusters: (12, 34), (15, 45), (12, 15, 52)
+         *
+         * @return an IntArray filled with no. of freqs in each cluster.
+         */
+        private IntArray extractClusterInfoFromProcFileFreqs() {
+            final IntArray numClusterFreqs = new IntArray();
+            int freqsFound = 0;
+            for (int i = 0; i < mFreqCount; ++i) {
+                freqsFound++;
+                if (i + 1 == mFreqCount || mCpuFreqs[i + 1] <= mCpuFreqs[i]) {
+                    numClusterFreqs.add(freqsFound);
+                    freqsFound = 0;
+                }
+            }
+            return numClusterFreqs;
+        }
+    }
+
+    /**
+     * Reads /proc/uid_concurrent_active_time and reports CPU active time to BatteryStats to
+     * compute {@link PowerProfile#POWER_CPU_ACTIVE}.
+     *
+     * /proc/uid_concurrent_active_time has the following format:
+     * cpus: n
+     * uid0: time0a, time0b, ..., time0n,
+     * uid1: time1a, time1b, ..., time1n,
+     * uid2: time2a, time2b, ..., time2n,
+     * ...
+     * where n is the total number of cpus (num_possible_cpus)
+     * timeXn means the CPU time that a UID X spent running concurrently with n other processes.
+     *
+     * The file contains a monotonically increasing count of time for a single boot. This class
+     * maintains the previous results of a call to {@link #readDelta} in order to provide a
+     * proper delta.
+     */
+    public static class KernelCpuUidActiveTimeReader extends KernelCpuUidTimeReader<Long> {
+        private int mCores = 0;
+        private long[] mBuffer;
+
+        public KernelCpuUidActiveTimeReader(boolean throttle) {
+            super(KernelCpuProcStringReader.getActiveTimeReaderInstance(), throttle);
+        }
+
+        @VisibleForTesting
+        public KernelCpuUidActiveTimeReader(KernelCpuProcStringReader reader, boolean throttle) {
+            super(reader, throttle);
+        }
+
+        @Override
+        void readDeltaImpl(@Nullable Callback<Long> cb) {
+            try (ProcFileIterator iter = mReader.open(!mThrottle)) {
+                if (!checkPrecondition(iter)) {
+                    return;
+                }
+                CharBuffer buf;
+                while ((buf = iter.nextLine()) != null) {
+                    if (asLongs(buf, mBuffer) != mBuffer.length) {
+                        Slog.wtf(mTag, "Invalid line: " + buf.toString());
+                        continue;
+                    }
+                    int uid = (int) mBuffer[0];
+                    long cpuActiveTime = sumActiveTime(mBuffer);
+                    if (cpuActiveTime > 0) {
+                        long delta = cpuActiveTime - mLastTimes.get(uid, 0L);
+                        if (delta > 0) {
+                            mLastTimes.put(uid, cpuActiveTime);
+                            if (cb != null) {
+                                cb.onUidCpuTime(uid, delta);
+                            }
+                        } else if (delta < 0) {
+                            Slog.e(mTag, "Negative delta from active time proc: " + delta);
+                        }
+                    }
+                }
+            }
+        }
+
+        @Override
+        void readAbsoluteImpl(Callback<Long> cb) {
+            try (ProcFileIterator iter = mReader.open(!mThrottle)) {
+                if (!checkPrecondition(iter)) {
+                    return;
+                }
+                CharBuffer buf;
+                while ((buf = iter.nextLine()) != null) {
+                    if (asLongs(buf, mBuffer) != mBuffer.length) {
+                        Slog.wtf(mTag, "Invalid line: " + buf.toString());
+                        continue;
+                    }
+                    long cpuActiveTime = sumActiveTime(mBuffer);
+                    if (cpuActiveTime > 0) {
+                        cb.onUidCpuTime((int) mBuffer[0], cpuActiveTime);
+                    }
+                }
+            }
+        }
+
+        private static long sumActiveTime(long[] times) {
+            // UID is stored at times[0].
+            double sum = 0;
+            for (int i = 1; i < times.length; i++) {
+                sum += (double) times[i] * 10 / i; // Unit is 10ms.
+            }
+            return (long) sum;
+        }
+
+        private boolean checkPrecondition(ProcFileIterator iter) {
+            if (iter == null || !iter.hasNextLine()) {
+                // Error logged in KernelCpuProcStringReader.
+                return false;
+            }
+            CharBuffer line = iter.nextLine();
+            if (mCores > 0) {
+                return true;
+            }
+
+            String str = line.toString();
+            if (!str.startsWith("cpus:")) {
+                Slog.wtf(mTag, "Malformed uid_concurrent_active_time line: " + line);
+                return false;
+            }
+            int cores = Integer.parseInt(str.substring(5).trim(), 10);
+            if (cores <= 0) {
+                Slog.wtf(mTag, "Malformed uid_concurrent_active_time line: " + line);
+                return false;
+            }
+            mCores = cores;
+            mBuffer = new long[mCores + 1]; // UID is stored at mBuffer[0].
+            return true;
+        }
+    }
+
+
+    /**
+     * Reads /proc/uid_concurrent_policy_time and reports CPU cluster times to BatteryStats to
+     * compute cluster power. See {@link PowerProfile#getAveragePowerForCpuCluster(int)}.
+     *
+     * /proc/uid_concurrent_policy_time has the following format:
+     * policyX: x policyY: y policyZ: z...
+     * uid1, time1a, time1b, ..., time1n,
+     * uid2, time2a, time2b, ..., time2n,
+     * ...
+     * The first line lists all policies (i.e. clusters) followed by # cores in each policy.
+     * Each uid is followed by x time entries corresponding to the time it spent on clusterX
+     * running concurrently with 0, 1, 2, ..., x - 1 other processes, then followed by y, z, ...
+     * time entries.
+     *
+     * The file contains a monotonically increasing count of time for a single boot. This class
+     * maintains the previous results of a call to {@link #readDelta} in order to provide a
+     * proper delta.
+     */
+    public static class KernelCpuUidClusterTimeReader extends KernelCpuUidTimeReader<long[]> {
+        private int mNumClusters;
+        private int mNumCores;
+        private int[] mCoresOnClusters; // # cores on each cluster.
+        private long[] mBuffer; // To store data returned from ProcFileIterator.
+        private long[] mCurTime;
+        private long[] mDeltaTime;
+
+        public KernelCpuUidClusterTimeReader(boolean throttle) {
+            super(KernelCpuProcStringReader.getClusterTimeReaderInstance(), throttle);
+        }
+
+        @VisibleForTesting
+        public KernelCpuUidClusterTimeReader(KernelCpuProcStringReader reader, boolean throttle) {
+            super(reader, throttle);
+        }
+
+        @Override
+        void readDeltaImpl(@Nullable Callback<long[]> cb) {
+            try (ProcFileIterator iter = mReader.open(!mThrottle)) {
+                if (!checkPrecondition(iter)) {
+                    return;
+                }
+                CharBuffer buf;
+                while ((buf = iter.nextLine()) != null) {
+                    if (asLongs(buf, mBuffer) != mBuffer.length) {
+                        Slog.wtf(mTag, "Invalid line: " + buf.toString());
+                        continue;
+                    }
+                    int uid = (int) mBuffer[0];
+                    long[] lastTimes = mLastTimes.get(uid);
+                    if (lastTimes == null) {
+                        lastTimes = new long[mNumClusters];
+                        mLastTimes.put(uid, lastTimes);
+                    }
+                    sumClusterTime();
+                    boolean valid = true;
+                    boolean notify = false;
+                    for (int i = 0; i < mNumClusters; i++) {
+                        mDeltaTime[i] = mCurTime[i] - lastTimes[i];
+                        if (mDeltaTime[i] < 0) {
+                            Slog.e(mTag, "Negative delta from cluster time proc: " + mDeltaTime[i]);
+                            valid = false;
+                        }
+                        notify |= mDeltaTime[i] > 0;
+                    }
+                    if (notify && valid) {
+                        System.arraycopy(mCurTime, 0, lastTimes, 0, mNumClusters);
+                        if (cb != null) {
+                            cb.onUidCpuTime(uid, mDeltaTime);
+                        }
+                    }
+                }
+            }
+        }
+
+        @Override
+        void readAbsoluteImpl(Callback<long[]> cb) {
+            try (ProcFileIterator iter = mReader.open(!mThrottle)) {
+                if (!checkPrecondition(iter)) {
+                    return;
+                }
+                CharBuffer buf;
+                while ((buf = iter.nextLine()) != null) {
+                    if (asLongs(buf, mBuffer) != mBuffer.length) {
+                        Slog.wtf(mTag, "Invalid line: " + buf.toString());
+                        continue;
+                    }
+                    sumClusterTime();
+                    cb.onUidCpuTime((int) mBuffer[0], mCurTime);
+                }
+            }
+        }
+
+        private void sumClusterTime() {
+            // UID is stored at mBuffer[0].
+            int core = 1;
+            for (int i = 0; i < mNumClusters; i++) {
+                double sum = 0;
+                for (int j = 1; j <= mCoresOnClusters[i]; j++) {
+                    sum += (double) mBuffer[core++] * 10 / j; // Unit is 10ms.
+                }
+                mCurTime[i] = (long) sum;
+            }
+        }
+
+        private boolean checkPrecondition(ProcFileIterator iter) {
+            if (iter == null || !iter.hasNextLine()) {
+                // Error logged in KernelCpuProcStringReader.
+                return false;
+            }
+            CharBuffer line = iter.nextLine();
+            if (mNumClusters > 0) {
+                return true;
+            }
+            // Parse # cores in clusters.
+            String[] lineArray = line.toString().split(" ");
+            if (lineArray.length % 2 != 0) {
+                Slog.wtf(mTag, "Malformed uid_concurrent_policy_time line: " + line);
+                return false;
+            }
+            int[] clusters = new int[lineArray.length / 2];
+            int cores = 0;
+            for (int i = 0; i < clusters.length; i++) {
+                if (!lineArray[i * 2].startsWith("policy")) {
+                    Slog.wtf(mTag, "Malformed uid_concurrent_policy_time line: " + line);
+                    return false;
+                }
+                clusters[i] = Integer.parseInt(lineArray[i * 2 + 1], 10);
+                cores += clusters[i];
+            }
+            mNumClusters = clusters.length;
+            mNumCores = cores;
+            mCoresOnClusters = clusters;
+            mBuffer = new long[cores + 1];
+            mCurTime = new long[mNumClusters];
+            mDeltaTime = new long[mNumClusters];
+            return true;
+        }
+    }
+
+}
diff --git a/core/java/com/android/internal/os/LooperStats.java b/core/java/com/android/internal/os/LooperStats.java
index 2b661c2..cf2a297 100644
--- a/core/java/com/android/internal/os/LooperStats.java
+++ b/core/java/com/android/internal/os/LooperStats.java
@@ -50,6 +50,7 @@
     private int mSamplingInterval;
     private CachedDeviceState.Readonly mDeviceState;
     private long mStartTime = System.currentTimeMillis();
+    private boolean mAddDebugEntries = false;
 
     public LooperStats(int samplingInterval, int entriesSizeCap) {
         this.mSamplingInterval = samplingInterval;
@@ -60,6 +61,10 @@
         mDeviceState = deviceState;
     }
 
+    public void setAddDebugEntries(boolean addDebugEntries) {
+        mAddDebugEntries = addDebugEntries;
+    }
+
     @Override
     public Object messageDispatchStarting() {
         if (deviceStateAllowsCollection() && shouldCollectDetailedData()) {
@@ -142,9 +147,22 @@
         // Add the overflow and collision entries only if they have any data.
         maybeAddSpecialEntry(exportedEntries, mOverflowEntry);
         maybeAddSpecialEntry(exportedEntries, mHashCollisionEntry);
+        // Debug entries added to help validate the data.
+        if (mAddDebugEntries) {
+            exportedEntries.add(createDebugEntry("start_time_millis", mStartTime));
+            exportedEntries.add(createDebugEntry("end_time_millis", System.currentTimeMillis()));
+        }
         return exportedEntries;
     }
 
+    private ExportedEntry createDebugEntry(String variableName, long value) {
+        final Entry entry = new Entry("__DEBUG_" + variableName);
+        entry.messageCount = 1;
+        entry.recordedMessageCount = 1;
+        entry.maxDelayMillis = value;
+        return new ExportedEntry(entry);
+    }
+
     /** Returns a timestamp indicating when the statistics were last reset. */
     public long getStartTimeMillis() {
         return mStartTime;
diff --git a/core/java/com/android/internal/os/ProcTimeInStateReader.java b/core/java/com/android/internal/os/ProcTimeInStateReader.java
index 3a63498..2318473 100644
--- a/core/java/com/android/internal/os/ProcTimeInStateReader.java
+++ b/core/java/com/android/internal/os/ProcTimeInStateReader.java
@@ -19,9 +19,15 @@
 import android.annotation.Nullable;
 import android.os.Process;
 
+import com.android.internal.util.ArrayUtils;
+
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 
 /**
  * Reads and parses {@code time_in_state} files in the {@code proc} filesystem.
@@ -43,6 +49,17 @@
  *
  * This file would indicate that the CPU has spent 30 milliseconds at frequency 300,000KHz (300Mhz)
  * and 10 milliseconds at frequency 1,900,800KHz (1.9GHz).
+ *
+ * <p>This class will also read {@code time_in_state} files with headers, such as:
+ * <pre>
+ *   cpu0
+ *   300000 3
+ *   364800 0
+ *   ...
+ *   cpu4
+ *   300000 1
+ *   364800 4
+ * </pre>
  */
 public class ProcTimeInStateReader {
     private static final String TAG = "ProcTimeInStateReader";
@@ -51,24 +68,28 @@
      * The format of a single line of the {@code time_in_state} file that exports the frequency
      * values
      */
-    private static final int[] TIME_IN_STATE_LINE_FREQUENCY_FORMAT = {
+    private static final List<Integer> TIME_IN_STATE_LINE_FREQUENCY_FORMAT = Arrays.asList(
             Process.PROC_OUT_LONG | Process.PROC_SPACE_TERM,
-            Process.PROC_NEWLINE_TERM,
-    };
+            Process.PROC_NEWLINE_TERM
+    );
 
     /**
      * The format of a single line of the {@code time_in_state} file that exports the time values
      */
-    private static final int[] TIME_IN_STATE_LINE_TIME_FORMAT = {
+    private static final List<Integer> TIME_IN_STATE_LINE_TIME_FORMAT = Arrays.asList(
             Process.PROC_SPACE_TERM,
-            Process.PROC_OUT_LONG | Process.PROC_NEWLINE_TERM,
-    };
+            Process.PROC_OUT_LONG | Process.PROC_NEWLINE_TERM
+    );
 
     /**
-     * The format of the {@code time_in_state} file, defined using {@link Process}'s {@code
-     * PROC_OUT_LONG} and related variables
-     *
-     * Defined on first successful read of {@code time_in_state} file.
+     * The format of a header line of the {@code time_in_state} file
+     */
+    private static final List<Integer> TIME_IN_STATE_HEADER_LINE_FORMAT =
+            Collections.singletonList(Process.PROC_NEWLINE_TERM);
+
+    /**
+     * The format of the {@code time_in_state} file to extract times, defined using {@link
+     * Process}'s {@code PROC_OUT_LONG} and related variables
      */
     private int[] mTimeInStateTimeFormat;
 
@@ -141,46 +162,44 @@
         // Read the bytes of the `time_in_state` file
         byte[] timeInStateBytes = Files.readAllBytes(timeInStatePath);
 
-        // The number of lines in the `time_in_state` file is the number of frequencies available
+        // Iterate over the lines of the time_in_state file, for each one adding a line to the
+        // formats. These formats are used to extract either the frequencies or the times from a
+        // time_in_state file
+        // Also check if each line is a header, and handle this in the created format arrays
+        ArrayList<Integer> timeInStateFrequencyFormat = new ArrayList<>();
+        ArrayList<Integer> timeInStateTimeFormat = new ArrayList<>();
         int numFrequencies = 0;
         for (int i = 0; i < timeInStateBytes.length; i++) {
-            if (timeInStateBytes[i] == '\n') {
+            // If the first character of the line is not a digit, we treat it as a header
+            if (!Character.isDigit(timeInStateBytes[i])) {
+                timeInStateFrequencyFormat.addAll(TIME_IN_STATE_HEADER_LINE_FORMAT);
+                timeInStateTimeFormat.addAll(TIME_IN_STATE_HEADER_LINE_FORMAT);
+            } else {
+                timeInStateFrequencyFormat.addAll(TIME_IN_STATE_LINE_FREQUENCY_FORMAT);
+                timeInStateTimeFormat.addAll(TIME_IN_STATE_LINE_TIME_FORMAT);
                 numFrequencies++;
             }
-        }
-        if (numFrequencies == 0) {
-            throw new IOException("Empty time_in_state file");
+            // Go to the next line
+            while (i < timeInStateBytes.length && timeInStateBytes[i] != '\n') {
+                i++;
+            }
         }
 
-        // Set `mTimeInStateTimeFormat` and `timeInStateFrequencyFormat` to the correct length, and
-        // then copy in the `TIME_IN_STATE_{FREQUENCY,TIME}_LINE_FORMAT` until it's full. As we only
-        // use the frequency format in this method, it is not an member variable.
-        final int[] timeInStateTimeFormat =
-                new int[numFrequencies * TIME_IN_STATE_LINE_TIME_FORMAT.length];
-        final int[] timeInStateFrequencyFormat =
-                new int[numFrequencies * TIME_IN_STATE_LINE_FREQUENCY_FORMAT.length];
-        for (int i = 0; i < numFrequencies; i++) {
-            System.arraycopy(
-                    TIME_IN_STATE_LINE_FREQUENCY_FORMAT, 0, timeInStateFrequencyFormat,
-                    i * TIME_IN_STATE_LINE_FREQUENCY_FORMAT.length,
-                    TIME_IN_STATE_LINE_FREQUENCY_FORMAT.length);
-            System.arraycopy(
-                    TIME_IN_STATE_LINE_TIME_FORMAT, 0, timeInStateTimeFormat,
-                    i * TIME_IN_STATE_LINE_TIME_FORMAT.length,
-                    TIME_IN_STATE_LINE_TIME_FORMAT.length);
+        if (numFrequencies == 0) {
+            throw new IOException("Empty time_in_state file");
         }
 
         // Read the frequencies from the `time_in_state` file and store them, as they will be the
         // same for every `time_in_state` file
         final long[] readLongs = new long[numFrequencies];
         final boolean readSuccess = Process.parseProcLine(
-                timeInStateBytes, 0, timeInStateBytes.length, timeInStateFrequencyFormat,
-                null, readLongs, null);
+                timeInStateBytes, 0, timeInStateBytes.length,
+                ArrayUtils.convertToIntArray(timeInStateFrequencyFormat), null, readLongs, null);
         if (!readSuccess) {
             throw new IOException("Failed to parse time_in_state file");
         }
 
-        mTimeInStateTimeFormat = timeInStateTimeFormat;
+        mTimeInStateTimeFormat = ArrayUtils.convertToIntArray(timeInStateTimeFormat);
         mFrequenciesKhz = readLongs;
     }
 }
diff --git a/core/java/com/android/internal/os/SomeArgs.java b/core/java/com/android/internal/os/SomeArgs.java
index b9d53c1..d78bfac 100644
--- a/core/java/com/android/internal/os/SomeArgs.java
+++ b/core/java/com/android/internal/os/SomeArgs.java
@@ -120,6 +120,8 @@
         arg5 = null;
         arg6 = null;
         arg7 = null;
+        arg8 = null;
+        arg9 = null;
         argi1 = 0;
         argi2 = 0;
         argi3 = 0;
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java
index 3b7ce0a..d8ee643 100644
--- a/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/core/java/com/android/internal/policy/PhoneWindow.java
@@ -41,6 +41,7 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.content.res.Resources.Theme;
 import android.content.res.TypedArray;
 import android.graphics.Color;
@@ -90,6 +91,7 @@
 import android.view.ViewRootImpl;
 import android.view.ViewRootImpl.ActivityConfigCallback;
 import android.view.Window;
+import android.view.WindowInsetsController;
 import android.view.WindowManager;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
@@ -1891,7 +1893,7 @@
                 return true;
             }
             // These are all the recognized media key codes in
-            // KeyEvent.isMediaKey()
+            // KeyEvent.isMediaSessionKey()
             case KeyEvent.KEYCODE_MEDIA_PLAY:
             case KeyEvent.KEYCODE_MEDIA_PAUSE:
             case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
@@ -1992,7 +1994,7 @@
                 return true;
             }
             // These are all the recognized media key codes in
-            // KeyEvent.isMediaKey()
+            // KeyEvent.isMediaSessionKey()
             case KeyEvent.KEYCODE_MEDIA_PLAY:
             case KeyEvent.KEYCODE_MEDIA_PAUSE:
             case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
@@ -3876,4 +3878,9 @@
             mDecor.updateLogTag(params);
         }
     }
+
+    @Override
+    public WindowInsetsController getInsetsController() {
+        return mDecor.getWindowInsetsController();
+    }
 }
diff --git a/core/java/com/android/internal/policy/ScreenDecorationsUtils.java b/core/java/com/android/internal/policy/ScreenDecorationsUtils.java
new file mode 100644
index 0000000..100c6ee
--- /dev/null
+++ b/core/java/com/android/internal/policy/ScreenDecorationsUtils.java
@@ -0,0 +1,50 @@
+/*
+ * 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.internal.policy;
+
+import com.android.internal.R;
+
+import android.content.res.Resources;
+
+/**
+ * Utility functions for screen decorations used by both window manager and System UI.
+ */
+public class ScreenDecorationsUtils {
+
+    /**
+     * Corner radius that should be used on windows in order to cover the display.
+     * These values are expressed in pixels because they should not respect display or font
+     * scaling, this means that we don't have to reload them on config changes.
+     */
+    public static float getWindowCornerRadius(Resources resources) {
+        // Radius that should be used in case top or bottom aren't defined.
+        float defaultRadius = resources.getDimension(R.dimen.rounded_corner_radius);
+
+        float topRadius = resources.getDimension(R.dimen.rounded_corner_radius_top);
+        if (topRadius == 0) {
+            topRadius = defaultRadius;
+        }
+        float bottomRadius = resources.getDimension(R.dimen.rounded_corner_radius_bottom);
+        if (bottomRadius == 0) {
+            bottomRadius = defaultRadius;
+        }
+
+        // Always use the smallest radius to make sure the rounded corners will
+        // completely cover the display.
+        return Math.min(topRadius, bottomRadius);
+    }
+}
diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl
index 604537f..600b1b3 100644
--- a/core/java/com/android/internal/statusbar/IStatusBar.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl
@@ -18,7 +18,7 @@
 
 import android.content.ComponentName;
 import android.graphics.Rect;
-import android.hardware.biometrics.IBiometricPromptReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.os.Bundle;
 import android.service.notification.StatusBarNotification;
 
@@ -141,7 +141,7 @@
     void showShutdownUi(boolean isReboot, String reason);
 
     // Used to show the dialog when BiometricService starts authentication
-    void showBiometricDialog(in Bundle bundle, IBiometricPromptReceiver receiver, int type,
+    void showBiometricDialog(in Bundle bundle, IBiometricServiceReceiverInternal receiver, int type,
             boolean requireConfirmation, int userId);
     // Used to hide the dialog when a biometric is authenticated
     void onBiometricAuthenticated();
@@ -151,4 +151,6 @@
     void onBiometricError(String error);
     // Used to hide the biometric dialog when the AuthenticationClient is stopped
     void hideBiometricDialog();
+    // Used to request the "try again" button for authentications which requireConfirmation=true
+    void showBiometricTryAgain();
 }
diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
index 9a7094a..bf82dc61 100644
--- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
@@ -16,11 +16,12 @@
 
 package com.android.internal.statusbar;
 
+import android.app.Notification;
 import android.content.ComponentName;
 import android.graphics.Rect;
 import android.os.Bundle;
 import android.service.notification.StatusBarNotification;
-import android.hardware.biometrics.IBiometricPromptReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 
 import com.android.internal.statusbar.IStatusBar;
 import com.android.internal.statusbar.StatusBarIcon;
@@ -55,7 +56,7 @@
     // Mark current notifications as "seen" and stop ringing, vibrating, blinking.
     void clearNotificationEffects();
     void onNotificationClick(String key, in NotificationVisibility nv);
-    void onNotificationActionClick(String key, int actionIndex, in NotificationVisibility nv);
+    void onNotificationActionClick(String key, int actionIndex, in Notification.Action action, in NotificationVisibility nv, boolean generatedByAssistant);
     void onNotificationError(String pkg, String tag, int id,
             int uid, int initialPid, String message, int userId);
     void onClearAllNotifications(int userId);
@@ -66,7 +67,7 @@
     void onNotificationExpansionChanged(in String key, in boolean userAction, in boolean expanded);
     void onNotificationDirectReplied(String key);
     void onNotificationSmartRepliesAdded(in String key, in int replyCount);
-    void onNotificationSmartReplySent(in String key, in int replyIndex);
+    void onNotificationSmartReplySent(in String key, in int replyIndex, in CharSequence reply, boolean generatedByAssistant);
     void onNotificationSettingsViewed(String key);
     void setSystemUiVisibility(int vis, int mask, String cause);
 
@@ -91,7 +92,7 @@
     void showPinningEscapeToast();
 
     // Used to show the dialog when BiometricService starts authentication
-    void showBiometricDialog(in Bundle bundle, IBiometricPromptReceiver receiver, int type,
+    void showBiometricDialog(in Bundle bundle, IBiometricServiceReceiverInternal receiver, int type,
             boolean requireConfirmation, int userId);
     // Used to hide the dialog when a biometric is authenticated
     void onBiometricAuthenticated();
@@ -101,4 +102,6 @@
     void onBiometricError(String error);
     // Used to hide the biometric dialog when the AuthenticationClient is stopped
     void hideBiometricDialog();
+    // Used to request the "try again" button for authentications which requireConfirmation=true
+    void showBiometricTryAgain();
 }
diff --git a/core/java/com/android/internal/util/ArrayUtils.java b/core/java/com/android/internal/util/ArrayUtils.java
index 4b66267..f669e94 100644
--- a/core/java/com/android/internal/util/ArrayUtils.java
+++ b/core/java/com/android/internal/util/ArrayUtils.java
@@ -32,6 +32,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.function.IntFunction;
 
 /**
  * ArrayUtils contains some methods that you can call to find out
@@ -656,4 +657,30 @@
             throw new ArrayIndexOutOfBoundsException("length=" + len + "; index=" + index);
         }
     }
+
+    /**
+     * Returns an array with values from {@code val} minus {@code null} values
+     *
+     * @param arrayConstructor typically {@code T[]::new} e.g. {@code String[]::new}
+     */
+    public static <T> T[] filterNotNull(T[] val, IntFunction<T[]> arrayConstructor) {
+        int nullCount = 0;
+        int size = size(val);
+        for (int i = 0; i < size; i++) {
+            if (val[i] == null) {
+                nullCount++;
+            }
+        }
+        if (nullCount == 0) {
+            return val;
+        }
+        T[] result = arrayConstructor.apply(size - nullCount);
+        int outIdx = 0;
+        for (int i = 0; i < size; i++) {
+            if (val[i] != null) {
+                result[outIdx++] = val[i];
+            }
+        }
+        return result;
+    }
 }
diff --git a/core/java/com/android/internal/util/BitUtils.java b/core/java/com/android/internal/util/BitUtils.java
index 17d5a2e3..6158145 100644
--- a/core/java/com/android/internal/util/BitUtils.java
+++ b/core/java/com/android/internal/util/BitUtils.java
@@ -28,7 +28,7 @@
 
 /**
  * A utility class for handling unsigned integers and unsigned arithmetics, as well as syntactic
- * sugar methods for ByteBuffer. Useful for networking and packet manipulations.
+ * sugar methods for {@link ByteBuffer}. Useful for networking and packet manipulations.
  * {@hide}
  */
 public final class BitUtils {
@@ -151,4 +151,11 @@
         TextUtils.wrap(builder, "[", "]");
         return builder.toString();
     }
+
+    /**
+     * Converts long to byte array
+     */
+    public static byte[] toBytes(long l) {
+        return ByteBuffer.allocate(8).putLong(l).array();
+    }
 }
diff --git a/core/java/com/android/internal/util/CollectionUtils.java b/core/java/com/android/internal/util/CollectionUtils.java
index 083c0c9..151901b 100644
--- a/core/java/com/android/internal/util/CollectionUtils.java
+++ b/core/java/com/android/internal/util/CollectionUtils.java
@@ -27,6 +27,7 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.function.Function;
 import java.util.function.Predicate;
@@ -190,6 +191,13 @@
     }
 
     /**
+     * Returns the size of the given map, or 0 if null
+     */
+    public static int size(@Nullable Map<?, ?> cur) {
+        return cur != null ? cur.size() : 0;
+    }
+
+    /**
      * Returns whether the given collection {@link Collection#isEmpty is empty} or {@code null}
      */
     public static boolean isEmpty(@Nullable Collection<?> cur) {
diff --git a/core/java/com/android/internal/util/XmlUtils.java b/core/java/com/android/internal/util/XmlUtils.java
index 5da587b..344d7ef 100644
--- a/core/java/com/android/internal/util/XmlUtils.java
+++ b/core/java/com/android/internal/util/XmlUtils.java
@@ -63,7 +63,7 @@
     public static final int
     convertValueToList(CharSequence value, String[] options, int defaultValue)
     {
-        if (null != value) {
+        if (!TextUtils.isEmpty(value)) {
             for (int i = 0; i < options.length; i++) {
                 if (value.equals(options[i]))
                     return i;
@@ -79,8 +79,9 @@
     {
         boolean result = false;
 
-        if (null == value)
+        if (TextUtils.isEmpty(value)) {
             return defaultValue;
+        }
 
         if (value.equals("1")
         ||  value.equals("true")
@@ -94,8 +95,9 @@
     public static final int
     convertValueToInt(CharSequence charSeq, int defaultValue)
     {
-        if (null == charSeq)
+        if (TextUtils.isEmpty(charSeq)) {
             return defaultValue;
+        }
 
         String nm = charSeq.toString();
 
@@ -138,7 +140,7 @@
     }
 
     public static int convertValueToUnsignedInt(String value, int defaultValue) {
-        if (null == value) {
+        if (TextUtils.isEmpty(value)) {
             return defaultValue;
         }
 
@@ -1674,7 +1676,7 @@
     public static boolean readBooleanAttribute(XmlPullParser in, String name,
             boolean defaultValue) {
         final String value = in.getAttributeValue(null, name);
-        if (value == null) {
+        if (TextUtils.isEmpty(value)) {
             return defaultValue;
         } else {
             return Boolean.parseBoolean(value);
@@ -1711,7 +1713,7 @@
 
     public static byte[] readByteArrayAttribute(XmlPullParser in, String name) {
         final String value = in.getAttributeValue(null, name);
-        if (value != null) {
+        if (!TextUtils.isEmpty(value)) {
             return Base64.decode(value, Base64.DEFAULT);
         } else {
             return null;
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/com/android/internal/util/function/NonaConsumer.java
similarity index 72%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/com/android/internal/util/function/NonaConsumer.java
index 27d25b8..3e7ce2b 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/com/android/internal/util/function/NonaConsumer.java
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package com.android.internal.util.function;
+
+import java.util.function.Consumer;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * A 9-argument {@link Consumer}
+ *
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+public interface NonaConsumer<A, B, C, D, E, F, G, H, I> {
+    void accept(A a, B b, C c, D d, E e, F f, G g, H h, I i);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/com/android/internal/util/function/NonaFunction.java
similarity index 72%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/com/android/internal/util/function/NonaFunction.java
index 27d25b8..560b4f1 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/com/android/internal/util/function/NonaFunction.java
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package com.android.internal.util.function;
+
+import java.util.function.Function;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * A 9-argument {@link Function}
+ *
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+public interface NonaFunction<A, B, C, D, E, F, G, H, I, R> {
+    R apply(A a, B b, C c, D d, E e, F f, G g, H h, I i);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/com/android/internal/util/function/NonaPredicate.java
similarity index 71%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/com/android/internal/util/function/NonaPredicate.java
index 27d25b8..c1e6f37 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/com/android/internal/util/function/NonaPredicate.java
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package com.android.internal.util.function;
+
+import java.util.function.Predicate;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * A 9-argument {@link Predicate}
+ *
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+public interface NonaPredicate<A, B, C, D, E, F, G, H, I> {
+    boolean test(A a, B b, C c, D d, E e, F f, G g, H h, I i);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/com/android/internal/util/function/OctConsumer.java
similarity index 72%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/com/android/internal/util/function/OctConsumer.java
index 27d25b8..83ee305 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/com/android/internal/util/function/OctConsumer.java
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package com.android.internal.util.function;
+
+import java.util.function.Consumer;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * A 8-argument {@link Consumer}
+ *
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+public interface OctConsumer<A, B, C, D, E, F, G, H> {
+    void accept(A a, B b, C c, D d, E e, F f, G g, H h);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/com/android/internal/util/function/OctFunction.java
similarity index 72%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/com/android/internal/util/function/OctFunction.java
index 27d25b8..cb16624 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/com/android/internal/util/function/OctFunction.java
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package com.android.internal.util.function;
+
+import java.util.function.Function;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * A 8-argument {@link Function}
+ *
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+public interface OctFunction<A, B, C, D, E, F, G, H, R> {
+    R apply(A a, B b, C c, D d, E e, F f, G g, H h);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/core/java/com/android/internal/util/function/OctPredicate.java
similarity index 72%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to core/java/com/android/internal/util/function/OctPredicate.java
index 27d25b8..7f36d6ac 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/core/java/com/android/internal/util/function/OctPredicate.java
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package com.android.internal.util.function;
+
+import java.util.function.Predicate;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
+ * A 8-argument {@link Predicate}
+ *
  * @hide
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+public interface OctPredicate<A, B, C, D, E, F, G, H> {
+    boolean test(A a, B b, C c, D d, E e, F f, G g, H h);
 }
diff --git a/core/java/com/android/internal/util/function/pooled/OmniFunction.java b/core/java/com/android/internal/util/function/pooled/OmniFunction.java
index 4ffe441..d74e715 100755
--- a/core/java/com/android/internal/util/function/pooled/OmniFunction.java
+++ b/core/java/com/android/internal/util/function/pooled/OmniFunction.java
@@ -22,6 +22,10 @@
 import com.android.internal.util.function.HeptFunction;
 import com.android.internal.util.function.HexConsumer;
 import com.android.internal.util.function.HexFunction;
+import com.android.internal.util.function.NonaConsumer;
+import com.android.internal.util.function.NonaFunction;
+import com.android.internal.util.function.OctConsumer;
+import com.android.internal.util.function.OctFunction;
 import com.android.internal.util.function.QuadConsumer;
 import com.android.internal.util.function.QuadFunction;
 import com.android.internal.util.function.QuintConsumer;
@@ -39,61 +43,62 @@
  *
  * @hide
  */
-abstract class OmniFunction<A, B, C, D, E, F, G, R> implements
+abstract class OmniFunction<A, B, C, D, E, F, G, H, I, R> implements
         PooledFunction<A, R>, BiFunction<A, B, R>, TriFunction<A, B, C, R>,
         QuadFunction<A, B, C, D, R>, QuintFunction<A, B, C, D, E, R>,
         HexFunction<A, B, C, D, E, F, R>, HeptFunction<A, B, C, D, E, F, G, R>,
+        OctFunction<A, B, C, D, E, F, G, H, R>, NonaFunction<A, B, C, D, E, F, G, H, I, R>,
         PooledConsumer<A>, BiConsumer<A, B>, TriConsumer<A, B, C>, QuadConsumer<A, B, C, D>,
         QuintConsumer<A, B, C, D, E>, HexConsumer<A, B, C, D, E, F>,
-        HeptConsumer<A, B, C, D, E, F, G>,
-        PooledPredicate<A>, BiPredicate<A, B>,
+        HeptConsumer<A, B, C, D, E, F, G>, OctConsumer<A, B, C, D, E, F, G, H>,
+        NonaConsumer<A, B, C, D, E, F, G, H, I>, PooledPredicate<A>, BiPredicate<A, B>,
         PooledSupplier<R>, PooledRunnable, ThrowingRunnable, ThrowingSupplier<R>,
         PooledSupplier.OfInt, PooledSupplier.OfLong, PooledSupplier.OfDouble {
 
-    abstract R invoke(A a, B b, C c, D d, E e, F f, G g);
+    abstract R invoke(A a, B b, C c, D d, E e, F f, G g, H h, I i);
 
     @Override
     public R apply(A o, B o2) {
-        return invoke(o, o2, null, null, null, null, null);
+        return invoke(o, o2, null, null, null, null, null, null, null);
     }
 
     @Override
     public R apply(A o) {
-        return invoke(o, null, null, null, null, null, null);
+        return invoke(o, null, null, null, null, null, null, null, null);
     }
 
-    public abstract <V> OmniFunction<A, B, C, D, E, F, G, V> andThen(
+    public abstract <V> OmniFunction<A, B, C, D, E, F, G, H, I, V> andThen(
             Function<? super R, ? extends V> after);
-    public abstract OmniFunction<A, B, C, D, E, F, G, R> negate();
+    public abstract OmniFunction<A, B, C, D, E, F, G, H, I, R> negate();
 
     @Override
     public void accept(A o, B o2) {
-        invoke(o, o2, null, null, null, null, null);
+        invoke(o, o2, null, null, null, null, null, null, null);
     }
 
     @Override
     public void accept(A o) {
-        invoke(o, null, null, null, null, null, null);
+        invoke(o, null, null, null, null, null, null, null, null);
     }
 
     @Override
     public void run() {
-        invoke(null, null, null, null, null, null, null);
+        invoke(null, null, null, null, null, null, null, null, null);
     }
 
     @Override
     public R get() {
-        return invoke(null, null, null, null, null, null, null);
+        return invoke(null, null, null, null, null, null, null, null, null);
     }
 
     @Override
     public boolean test(A o, B o2) {
-        return (Boolean) invoke(o, o2, null, null, null, null, null);
+        return (Boolean) invoke(o, o2, null, null, null, null, null, null, null);
     }
 
     @Override
     public boolean test(A o) {
-        return (Boolean) invoke(o, null, null, null, null, null, null);
+        return (Boolean) invoke(o, null, null, null, null, null, null, null, null);
     }
 
     @Override
@@ -108,52 +113,72 @@
 
     @Override
     public R apply(A a, B b, C c) {
-        return invoke(a, b, c, null, null, null, null);
+        return invoke(a, b, c, null, null, null, null, null, null);
     }
 
     @Override
     public void accept(A a, B b, C c) {
-        invoke(a, b, c, null, null, null, null);
+        invoke(a, b, c, null, null, null, null, null, null);
     }
 
     @Override
     public R apply(A a, B b, C c, D d) {
-        return invoke(a, b, c, d, null, null, null);
+        return invoke(a, b, c, d, null, null, null, null, null);
     }
 
     @Override
     public R apply(A a, B b, C c, D d, E e) {
-        return invoke(a, b, c, d, e, null, null);
+        return invoke(a, b, c, d, e, null, null, null, null);
     }
 
     @Override
     public R apply(A a, B b, C c, D d, E e, F f) {
-        return invoke(a, b, c, d, e, f, null);
+        return invoke(a, b, c, d, e, f, null, null, null);
     }
 
     @Override
     public R apply(A a, B b, C c, D d, E e, F f, G g) {
-        return invoke(a, b, c, d, e, f, g);
+        return invoke(a, b, c, d, e, f, g, null, null);
+    }
+
+    @Override
+    public R apply(A a, B b, C c, D d, E e, F f, G g, H h) {
+        return invoke(a, b, c, d, e, f, g, h, null);
+    }
+
+    @Override
+    public R apply(A a, B b, C c, D d, E e, F f, G g, H h, I i) {
+        return invoke(a, b, c, d, e, f, g, h, i);
     }
 
     @Override
     public void accept(A a, B b, C c, D d) {
-        invoke(a, b, c, d, null, null, null);
+        invoke(a, b, c, d, null, null, null, null, null);
     }
 
     @Override
     public void accept(A a, B b, C c, D d, E e) {
-        invoke(a, b, c, d, e, null, null);
+        invoke(a, b, c, d, e, null, null, null, null);
     }
 
     @Override
     public void accept(A a, B b, C c, D d, E e, F f) {
-        invoke(a, b, c, d, e, f, null);
+        invoke(a, b, c, d, e, f, null, null, null);
     }
 
     @Override
     public void accept(A a, B b, C c, D d, E e, F f, G g) {
-        invoke(a, b, c, d, e, f, g);
+        invoke(a, b, c, d, e, f, g, null, null);
+    }
+
+    @Override
+    public void accept(A a, B b, C c, D d, E e, F f, G g, H h) {
+        invoke(a, b, c, d, e, f, g, h, null);
+    }
+
+    @Override
+    public void accept(A a, B b, C c, D d, E e, F f, G g, H h, I i) {
+        invoke(a, b, c, d, e, f, g, h, i);
     }
 
     @Override
@@ -167,5 +192,5 @@
     }
 
     @Override
-    public abstract OmniFunction<A, B, C, D, E, F, G, R> recycleOnUse();
+    public abstract OmniFunction<A, B, C, D, E, F, G, H, I, R> recycleOnUse();
 }
diff --git a/core/java/com/android/internal/util/function/pooled/PooledLambda.java b/core/java/com/android/internal/util/function/pooled/PooledLambda.java
index af3c752..c00932e 100755
--- a/core/java/com/android/internal/util/function/pooled/PooledLambda.java
+++ b/core/java/com/android/internal/util/function/pooled/PooledLambda.java
@@ -25,6 +25,10 @@
 import com.android.internal.util.function.HeptFunction;
 import com.android.internal.util.function.HexConsumer;
 import com.android.internal.util.function.HexFunction;
+import com.android.internal.util.function.NonaConsumer;
+import com.android.internal.util.function.NonaFunction;
+import com.android.internal.util.function.OctConsumer;
+import com.android.internal.util.function.OctFunction;
 import com.android.internal.util.function.QuadConsumer;
 import com.android.internal.util.function.QuadFunction;
 import com.android.internal.util.function.QuintConsumer;
@@ -176,7 +180,8 @@
             Consumer<? super A> function,
             A arg1) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 1, 0, ReturnType.VOID, arg1, null, null, null, null, null, null);
+                function, 1, 0, ReturnType.VOID, arg1, null, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -192,7 +197,8 @@
             Predicate<? super A> function,
             A arg1) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 1, 0, ReturnType.BOOLEAN, arg1, null, null, null, null, null, null);
+                function, 1, 0, ReturnType.BOOLEAN, arg1, null, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -208,7 +214,8 @@
             Function<? super A, ? extends R> function,
             A arg1) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 1, 0, ReturnType.OBJECT, arg1, null, null, null, null, null, null);
+                function, 1, 0, ReturnType.OBJECT, arg1, null, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -238,7 +245,8 @@
             A arg1) {
         synchronized (Message.sPoolSync) {
             PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
-                    function, 1, 0, ReturnType.VOID, arg1, null, null, null, null, null, null);
+                    function, 1, 0, ReturnType.VOID, arg1, null, null, null, null, null, null, null,
+                    null);
             return Message.obtain().setCallback(callback.recycleOnUse());
         }
     }
@@ -257,7 +265,8 @@
             BiConsumer<? super A, ? super B> function,
             A arg1, B arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 0, ReturnType.VOID, arg1, arg2, null, null, null, null, null);
+                function, 2, 0, ReturnType.VOID, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -274,7 +283,8 @@
             BiPredicate<? super A, ? super B> function,
             A arg1, B arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 0, ReturnType.BOOLEAN, arg1, arg2, null, null, null, null, null);
+                function, 2, 0, ReturnType.BOOLEAN, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -291,7 +301,8 @@
             BiFunction<? super A, ? super B, ? extends R> function,
             A arg1, B arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 0, ReturnType.OBJECT, arg1, arg2, null, null, null, null, null);
+                function, 2, 0, ReturnType.OBJECT, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -308,7 +319,8 @@
             BiConsumer<? super A, ? super B> function,
             ArgumentPlaceholder<A> arg1, B arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 1, ReturnType.VOID, arg1, arg2, null, null, null, null, null);
+                function, 2, 1, ReturnType.VOID, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -325,7 +337,8 @@
             BiPredicate<? super A, ? super B> function,
             ArgumentPlaceholder<A> arg1, B arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 1, ReturnType.BOOLEAN, arg1, arg2, null, null, null, null, null);
+                function, 2, 1, ReturnType.BOOLEAN, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -342,7 +355,8 @@
             BiFunction<? super A, ? super B, ? extends R> function,
             ArgumentPlaceholder<A> arg1, B arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 1, ReturnType.OBJECT, arg1, arg2, null, null, null, null, null);
+                function, 2, 1, ReturnType.OBJECT, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -359,7 +373,8 @@
             BiConsumer<? super A, ? super B> function,
             A arg1, ArgumentPlaceholder<B> arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 1, ReturnType.VOID, arg1, arg2, null, null, null, null, null);
+                function, 2, 1, ReturnType.VOID, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -376,7 +391,8 @@
             BiPredicate<? super A, ? super B> function,
             A arg1, ArgumentPlaceholder<B> arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 1, ReturnType.BOOLEAN, arg1, arg2, null, null, null, null, null);
+                function, 2, 1, ReturnType.BOOLEAN, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -393,7 +409,8 @@
             BiFunction<? super A, ? super B, ? extends R> function,
             A arg1, ArgumentPlaceholder<B> arg2) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 2, 1, ReturnType.OBJECT, arg1, arg2, null, null, null, null, null);
+                function, 2, 1, ReturnType.OBJECT, arg1, arg2, null, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -424,7 +441,8 @@
             A arg1, B arg2) {
         synchronized (Message.sPoolSync) {
             PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
-                    function, 2, 0, ReturnType.VOID, arg1, arg2, null, null, null, null, null);
+                    function, 2, 0, ReturnType.VOID, arg1, arg2, null, null, null, null, null, null,
+                    null);
             return Message.obtain().setCallback(callback.recycleOnUse());
         }
     }
@@ -444,7 +462,8 @@
             TriConsumer<? super A, ? super B, ? super C> function,
             A arg1, B arg2, C arg3) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 3, 0, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null);
+                function, 3, 0, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -462,7 +481,8 @@
             TriFunction<? super A, ? super B, ? super C, ? extends R> function,
             A arg1, B arg2, C arg3) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 3, 0, ReturnType.OBJECT, arg1, arg2, arg3, null, null, null, null);
+                function, 3, 0, ReturnType.OBJECT, arg1, arg2, arg3, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -480,7 +500,8 @@
             TriConsumer<? super A, ? super B, ? super C> function,
             ArgumentPlaceholder<A> arg1, B arg2, C arg3) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null);
+                function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -498,7 +519,8 @@
             TriFunction<? super A, ? super B, ? super C, ? extends R> function,
             ArgumentPlaceholder<A> arg1, B arg2, C arg3) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 3, 1, ReturnType.OBJECT, arg1, arg2, arg3, null, null, null, null);
+                function, 3, 1, ReturnType.OBJECT, arg1, arg2, arg3, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -516,7 +538,8 @@
             TriConsumer<? super A, ? super B, ? super C> function,
             A arg1, ArgumentPlaceholder<B> arg2, C arg3) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null);
+                function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -534,7 +557,8 @@
             TriFunction<? super A, ? super B, ? super C, ? extends R> function,
             A arg1, ArgumentPlaceholder<B> arg2, C arg3) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 3, 1, ReturnType.OBJECT, arg1, arg2, arg3, null, null, null, null);
+                function, 3, 1, ReturnType.OBJECT, arg1, arg2, arg3, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -552,7 +576,8 @@
             TriConsumer<? super A, ? super B, ? super C> function,
             A arg1, B arg2, ArgumentPlaceholder<C> arg3) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null);
+                function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -570,7 +595,8 @@
             TriFunction<? super A, ? super B, ? super C, ? extends R> function,
             A arg1, B arg2, ArgumentPlaceholder<C> arg3) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 3, 1, ReturnType.OBJECT, arg1, arg2, arg3, null, null, null, null);
+                function, 3, 1, ReturnType.OBJECT, arg1, arg2, arg3, null, null, null, null, null,
+                null);
     }
 
     /**
@@ -602,7 +628,8 @@
             A arg1, B arg2, C arg3) {
         synchronized (Message.sPoolSync) {
             PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
-                    function, 3, 0, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null);
+                    function, 3, 0, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null, null,
+                    null);
             return Message.obtain().setCallback(callback.recycleOnUse());
         }
     }
@@ -623,7 +650,8 @@
             QuadConsumer<? super A, ? super B, ? super C, ? super D> function,
             A arg1, B arg2, C arg3, D arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -642,7 +670,8 @@
             QuadFunction<? super A, ? super B, ? super C, ? super D, ? extends R> function,
             A arg1, B arg2, C arg3, D arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -661,7 +690,8 @@
             QuadConsumer<? super A, ? super B, ? super C, ? super D> function,
             ArgumentPlaceholder<A> arg1, B arg2, C arg3, D arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -680,7 +710,8 @@
             QuadFunction<? super A, ? super B, ? super C, ? super D, ? extends R> function,
             ArgumentPlaceholder<A> arg1, B arg2, C arg3, D arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 1, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 1, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -699,7 +730,8 @@
             QuadConsumer<? super A, ? super B, ? super C, ? super D> function,
             A arg1, ArgumentPlaceholder<B> arg2, C arg3, D arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -718,7 +750,8 @@
             QuadFunction<? super A, ? super B, ? super C, ? super D, ? extends R> function,
             A arg1, ArgumentPlaceholder<B> arg2, C arg3, D arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 1, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 1, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -737,7 +770,8 @@
             QuadConsumer<? super A, ? super B, ? super C, ? super D> function,
             A arg1, B arg2, ArgumentPlaceholder<C> arg3, D arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -756,7 +790,8 @@
             QuadFunction<? super A, ? super B, ? super C, ? super D, ? extends R> function,
             A arg1, B arg2, ArgumentPlaceholder<C> arg3, D arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 1, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 1, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -775,7 +810,8 @@
             QuadConsumer<? super A, ? super B, ? super C, ? super D> function,
             A arg1, B arg2, C arg3, ArgumentPlaceholder<D> arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -794,7 +830,8 @@
             QuadFunction<? super A, ? super B, ? super C, ? super D, ? extends R> function,
             A arg1, B arg2, C arg3, ArgumentPlaceholder<D> arg4) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 4, 1, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null);
+                function, 4, 1, ReturnType.OBJECT, arg1, arg2, arg3, arg4, null, null, null, null,
+                null);
     }
 
     /**
@@ -827,7 +864,8 @@
             A arg1, B arg2, C arg3, D arg4) {
         synchronized (Message.sPoolSync) {
             PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
-                    function, 4, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null);
+                    function, 4, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null,
+                    null);
             return Message.obtain().setCallback(callback.recycleOnUse());
         }
     }
@@ -849,7 +887,8 @@
             QuintConsumer<? super A, ? super B, ? super C, ? super D, ? super E> function,
             A arg1, B arg2, C arg3, D arg4, E arg5) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 5, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, null, null);
+                function, 5, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, null, null, null,
+                null);
     }
 
     /**
@@ -869,7 +908,8 @@
             QuintFunction<? super A, ? super B, ? super C, ? super D, ? super E, ? extends R>
                     function, A arg1, B arg2, C arg3, D arg4, E arg5) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 5, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, arg5, null, null);
+                function, 5, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, arg5, null, null, null,
+                null);
     }
 
     /**
@@ -904,7 +944,8 @@
             A arg1, B arg2, C arg3, D arg4, E arg5) {
         synchronized (Message.sPoolSync) {
             PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
-                    function, 5, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, null, null);
+                    function, 5, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, null, null, null,
+                    null);
             return Message.obtain().setCallback(callback.recycleOnUse());
         }
     }
@@ -927,7 +968,8 @@
             HexConsumer<? super A, ? super B, ? super C, ? super D, ? super E, ? super F> function,
             A arg1, B arg2, C arg3, D arg4, E arg5, F arg6) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 6, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, null);
+                function, 6, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, null, null,
+                null);
     }
 
     /**
@@ -948,7 +990,8 @@
             HexFunction<? super A, ? super B, ? super C, ? super D, ? super E, ? super F,
                     ? extends R> function, A arg1, B arg2, C arg3, D arg4, E arg5, F arg6) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 6, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, arg5, arg6, null);
+                function, 6, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, arg5, arg6, null, null,
+                null);
     }
 
     /**
@@ -984,7 +1027,8 @@
             A arg1, B arg2, C arg3, D arg4, E arg5, F arg6) {
         synchronized (Message.sPoolSync) {
             PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
-                    function, 6, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, null);
+                    function, 6, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, null, null,
+                    null);
             return Message.obtain().setCallback(callback.recycleOnUse());
         }
     }
@@ -1008,7 +1052,8 @@
             HeptConsumer<? super A, ? super B, ? super C, ? super D, ? super E, ? super F,
                     ? super G> function, A arg1, B arg2, C arg3, D arg4, E arg5, F arg6, G arg7) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 7, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+                function, 7, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, arg7, null,
+                null);
     }
 
     /**
@@ -1031,7 +1076,8 @@
                     ? super G, ? extends R> function,
             A arg1, B arg2, C arg3, D arg4, E arg5, F arg6, G arg7) {
         return acquire(PooledLambdaImpl.sPool,
-                function, 7, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+                function, 7, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, arg5, arg6, arg7, null,
+                null);
     }
 
     /**
@@ -1068,7 +1114,195 @@
                     ? super G> function, A arg1, B arg2, C arg3, D arg4, E arg5, F arg6, G arg7) {
         synchronized (Message.sPoolSync) {
             PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
-                    function, 7, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+                    function, 7, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, arg7, null,
+                    null);
+            return Message.obtain().setCallback(callback.recycleOnUse());
+        }
+    }
+
+    /**
+     * {@link PooledRunnable} factory
+     *
+     * @param function non-capturing lambda(typically an unbounded method reference)
+     *                 to be invoked on call
+     * @param arg1 parameter supplied to {@code function} on call
+     * @param arg2 parameter supplied to {@code function} on call
+     * @param arg3 parameter supplied to {@code function} on call
+     * @param arg4 parameter supplied to {@code function} on call
+     * @param arg5 parameter supplied to {@code function} on call
+     * @param arg6 parameter supplied to {@code function} on call
+     * @param arg7 parameter supplied to {@code function} on call
+     * @param arg8 parameter supplied to {@code function} on call
+     * @return a {@link PooledRunnable}, equivalent to lambda:
+     *         {@code () -> function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) }
+     */
+    static <A, B, C, D, E, F, G, H> PooledRunnable obtainRunnable(
+            OctConsumer<? super A, ? super B, ? super C, ? super D, ? super E, ? super F, ? super G,
+                    ? super H> function, A arg1, B arg2, C arg3, D arg4, E arg5, F arg6, G arg7,
+            H arg8) {
+        return acquire(PooledLambdaImpl.sPool,
+                function, 8, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
+                null);
+    }
+
+    /**
+     * {@link PooledSupplier} factory
+     *
+     * @param function non-capturing lambda(typically an unbounded method reference)
+     *                 to be invoked on call
+     * @param arg1 parameter supplied to {@code function} on call
+     * @param arg2 parameter supplied to {@code function} on call
+     * @param arg3 parameter supplied to {@code function} on call
+     * @param arg4 parameter supplied to {@code function} on call
+     * @param arg5 parameter supplied to {@code function} on call
+     * @param arg6 parameter supplied to {@code function} on call
+     * @param arg7 parameter supplied to {@code function} on call
+     * @param arg8 parameter supplied to {@code function} on call
+     * @return a {@link PooledSupplier}, equivalent to lambda:
+     *         {@code () -> function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) }
+     */
+    static <A, B, C, D, E, F, G, H, R> PooledSupplier<R> obtainSupplier(
+            OctFunction<? super A, ? super B, ? super C, ? super D, ? super E, ? super F,
+                                ? super G, ? super H, ? extends R> function,
+            A arg1, B arg2, C arg3, D arg4, E arg5, F arg6, G arg7, H arg8) {
+        return acquire(PooledLambdaImpl.sPool,
+                function, 8, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
+                null);
+    }
+
+    /**
+     * Factory of {@link Message}s that contain an
+     * ({@link PooledLambda#recycleOnUse auto-recycling}) {@link PooledRunnable} as its
+     * {@link Message#getCallback internal callback}.
+     *
+     * The callback is equivalent to one obtainable via
+     * {@link #obtainRunnable(QuintConsumer, Object, Object, Object, Object, Object)}
+     *
+     * Note that using this method with {@link android.os.Handler#handleMessage}
+     * is more efficient than the alternative of {@link android.os.Handler#post}
+     * with a {@link PooledRunnable} due to the lack of 2 separate synchronization points
+     * when obtaining {@link Message} and {@link PooledRunnable} from pools separately
+     *
+     * You may optionally set a {@link Message#what} for the message if you want to be
+     * able to cancel it via {@link android.os.Handler#removeMessages}, but otherwise
+     * there's no need to do so
+     *
+     * @param function non-capturing lambda(typically an unbounded method reference)
+     *                 to be invoked on call
+     * @param arg1 parameter supplied to {@code function} on call
+     * @param arg2 parameter supplied to {@code function} on call
+     * @param arg3 parameter supplied to {@code function} on call
+     * @param arg4 parameter supplied to {@code function} on call
+     * @param arg5 parameter supplied to {@code function} on call
+     * @param arg6 parameter supplied to {@code function} on call
+     * @param arg7 parameter supplied to {@code function} on call
+     * @param arg8 parameter supplied to {@code function} on call
+     * @return a {@link Message} invoking {@code function(arg1, arg2, arg3, arg4, arg5, arg6,
+     * arg7, arg8) } when handled
+     */
+    static <A, B, C, D, E, F, G, H> Message obtainMessage(
+            OctConsumer<? super A, ? super B, ? super C, ? super D, ? super E, ? super F, ? super G,
+                    ? super H> function, A arg1, B arg2, C arg3, D arg4, E arg5, F arg6, G arg7,
+            H arg8) {
+        synchronized (Message.sPoolSync) {
+            PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
+                    function, 8, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
+                    null);
+            return Message.obtain().setCallback(callback.recycleOnUse());
+        }
+    }
+
+    /**
+     * {@link PooledRunnable} factory
+     *
+     * @param function non-capturing lambda(typically an unbounded method reference)
+     *                 to be invoked on call
+     * @param arg1 parameter supplied to {@code function} on call
+     * @param arg2 parameter supplied to {@code function} on call
+     * @param arg3 parameter supplied to {@code function} on call
+     * @param arg4 parameter supplied to {@code function} on call
+     * @param arg5 parameter supplied to {@code function} on call
+     * @param arg6 parameter supplied to {@code function} on call
+     * @param arg7 parameter supplied to {@code function} on call
+     * @param arg8 parameter supplied to {@code function} on call
+     * @param arg9 parameter supplied to {@code function} on call
+     * @return a {@link PooledRunnable}, equivalent to lambda:
+     *         {@code () -> function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) }
+     */
+    static <A, B, C, D, E, F, G, H, I> PooledRunnable obtainRunnable(
+            NonaConsumer<? super A, ? super B, ? super C, ? super D, ? super E, ? super F,
+                    ? super G, ? super H, ? super I> function, A arg1, B arg2, C arg3, D arg4,
+            E arg5, F arg6, G arg7, H arg8, I arg9) {
+        return acquire(PooledLambdaImpl.sPool,
+                function, 9, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
+                arg9);
+    }
+
+    /**
+     * {@link PooledSupplier} factory
+     *
+     * @param function non-capturing lambda(typically an unbounded method reference)
+     *                 to be invoked on call
+     * @param arg1 parameter supplied to {@code function} on call
+     * @param arg2 parameter supplied to {@code function} on call
+     * @param arg3 parameter supplied to {@code function} on call
+     * @param arg4 parameter supplied to {@code function} on call
+     * @param arg5 parameter supplied to {@code function} on call
+     * @param arg6 parameter supplied to {@code function} on call
+     * @param arg7 parameter supplied to {@code function} on call
+     * @param arg8 parameter supplied to {@code function} on call
+     * @param arg9 parameter supplied to {@code function} on call
+     * @return a {@link PooledSupplier}, equivalent to lambda:
+     *         {@code () -> function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) }
+     */
+    static <A, B, C, D, E, F, G, H, I, R> PooledSupplier<R> obtainSupplier(
+            NonaFunction<? super A, ? super B, ? super C, ? super D, ? super E, ? super F,
+                                ? super G, ? super H, ? super I, ? extends R> function,
+            A arg1, B arg2, C arg3, D arg4, E arg5, F arg6, G arg7, H arg8, I arg9) {
+        return acquire(PooledLambdaImpl.sPool,
+                function, 9, 0, ReturnType.OBJECT, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
+                arg9);
+    }
+
+    /**
+     * Factory of {@link Message}s that contain an
+     * ({@link PooledLambda#recycleOnUse auto-recycling}) {@link PooledRunnable} as its
+     * {@link Message#getCallback internal callback}.
+     *
+     * The callback is equivalent to one obtainable via
+     * {@link #obtainRunnable(QuintConsumer, Object, Object, Object, Object, Object)}
+     *
+     * Note that using this method with {@link android.os.Handler#handleMessage}
+     * is more efficient than the alternative of {@link android.os.Handler#post}
+     * with a {@link PooledRunnable} due to the lack of 2 separate synchronization points
+     * when obtaining {@link Message} and {@link PooledRunnable} from pools separately
+     *
+     * You may optionally set a {@link Message#what} for the message if you want to be
+     * able to cancel it via {@link android.os.Handler#removeMessages}, but otherwise
+     * there's no need to do so
+     *
+     * @param function non-capturing lambda(typically an unbounded method reference)
+     *                 to be invoked on call
+     * @param arg1 parameter supplied to {@code function} on call
+     * @param arg2 parameter supplied to {@code function} on call
+     * @param arg3 parameter supplied to {@code function} on call
+     * @param arg4 parameter supplied to {@code function} on call
+     * @param arg5 parameter supplied to {@code function} on call
+     * @param arg6 parameter supplied to {@code function} on call
+     * @param arg7 parameter supplied to {@code function} on call
+     * @param arg8 parameter supplied to {@code function} on call
+     * @param arg9 parameter supplied to {@code function} on call
+     * @return a {@link Message} invoking {@code function(arg1, arg2, arg3, arg4, arg5, arg6,
+     * arg7, arg8, arg9) } when handled
+     */
+    static <A, B, C, D, E, F, G, H, I> Message obtainMessage(
+            NonaConsumer<? super A, ? super B, ? super C, ? super D, ? super E, ? super F,
+                    ? super G, ? super H, ? super I> function, A arg1, B arg2, C arg3, D arg4,
+            E arg5, F arg6, G arg7, H arg8, I arg9) {
+        synchronized (Message.sPoolSync) {
+            PooledRunnable callback = acquire(PooledLambdaImpl.sMessageCallbacksPool,
+                    function, 9, 0, ReturnType.VOID, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
+                    arg9);
             return Message.obtain().setCallback(callback.recycleOnUse());
         }
     }
diff --git a/core/java/com/android/internal/util/function/pooled/PooledLambdaImpl.java b/core/java/com/android/internal/util/function/pooled/PooledLambdaImpl.java
index eea1e5f..6be626a 100755
--- a/core/java/com/android/internal/util/function/pooled/PooledLambdaImpl.java
+++ b/core/java/com/android/internal/util/function/pooled/PooledLambdaImpl.java
@@ -30,6 +30,12 @@
 import com.android.internal.util.function.HexConsumer;
 import com.android.internal.util.function.HexFunction;
 import com.android.internal.util.function.HexPredicate;
+import com.android.internal.util.function.NonaConsumer;
+import com.android.internal.util.function.NonaFunction;
+import com.android.internal.util.function.NonaPredicate;
+import com.android.internal.util.function.OctConsumer;
+import com.android.internal.util.function.OctFunction;
+import com.android.internal.util.function.OctPredicate;
 import com.android.internal.util.function.QuadConsumer;
 import com.android.internal.util.function.QuadFunction;
 import com.android.internal.util.function.QuadPredicate;
@@ -54,12 +60,12 @@
  * @hide
  */
 final class PooledLambdaImpl<R> extends OmniFunction<Object,
-        Object, Object, Object, Object, Object, Object, R> {
+        Object, Object, Object, Object, Object, Object, Object, Object, R> {
 
     private static final boolean DEBUG = false;
     private static final String LOG_TAG = "PooledLambdaImpl";
 
-    private static final int MAX_ARGS = 7;
+    private static final int MAX_ARGS = 9;
 
     private static final int MAX_POOL_SIZE = 50;
 
@@ -125,7 +131,7 @@
 
     /**
      * Bit schema:
-     * AAAAAAABCDEEEEEEFFFFFF
+     * AAAAAAAAABCDEEEEEEFFFFFF
      *
      * Where:
      * A - whether {@link #mArgs arg} at corresponding index was specified at
@@ -161,17 +167,19 @@
     }
 
     @Override
-    R invoke(Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) {
+    R invoke(Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7,
+            Object a8, Object a9) {
         checkNotRecycled();
         if (DEBUG) {
             Log.i(LOG_TAG, this + ".invoke("
                     + commaSeparateFirstN(
-                            new Object[] { a1, a2, a3, a4, a5, a6, a7 },
+                            new Object[] { a1, a2, a3, a4, a5, a6, a7, a8, a9 },
                             LambdaType.decodeArgCount(getFlags(MASK_EXPOSED_AS)))
                     + ")");
         }
-        final boolean notUsed = fillInArg(a1) && fillInArg(a2) && fillInArg(a3)
-                && fillInArg(a4) && fillInArg(a5) && fillInArg(a6) && fillInArg(a7);
+        final boolean notUsed = fillInArg(a1) && fillInArg(a2) && fillInArg(a3) && fillInArg(a4)
+                && fillInArg(a5) && fillInArg(a6) && fillInArg(a7) && fillInArg(a8)
+                && fillInArg(a9);
         int argCount = LambdaType.decodeArgCount(getFlags(MASK_FUNC_TYPE));
         if (argCount != LambdaType.MASK_ARG_COUNT) {
             for (int i = 0; i < argCount; i++) {
@@ -335,7 +343,7 @@
                                 popArg(2), popArg(3), popArg(4), popArg(5));
                     }
                 }
-            }
+            } break;
 
             case 7: {
                 switch (returnType) {
@@ -356,7 +364,49 @@
                                 popArg(5), popArg(6));
                     }
                 }
-            }
+            } break;
+
+            case 8: {
+                switch (returnType) {
+                    case LambdaType.ReturnType.VOID: {
+                        ((OctConsumer) mFunc).accept(popArg(0), popArg(1),
+                                popArg(2), popArg(3), popArg(4),
+                                popArg(5), popArg(6), popArg(7));
+                        return null;
+                    }
+                    case LambdaType.ReturnType.BOOLEAN: {
+                        return (R) (Object) ((OctPredicate) mFunc).test(popArg(0),
+                                popArg(1), popArg(2), popArg(3),
+                                popArg(4), popArg(5), popArg(6), popArg(7));
+                    }
+                    case LambdaType.ReturnType.OBJECT: {
+                        return (R) ((OctFunction) mFunc).apply(popArg(0), popArg(1),
+                                popArg(2), popArg(3), popArg(4),
+                                popArg(5), popArg(6), popArg(7));
+                    }
+                }
+            } break;
+
+            case 9: {
+                switch (returnType) {
+                    case LambdaType.ReturnType.VOID: {
+                        ((NonaConsumer) mFunc).accept(popArg(0), popArg(1),
+                                popArg(2), popArg(3), popArg(4), popArg(5),
+                                popArg(6), popArg(7), popArg(8));
+                        return null;
+                    }
+                    case LambdaType.ReturnType.BOOLEAN: {
+                        return (R) (Object) ((NonaPredicate) mFunc).test(popArg(0),
+                                popArg(1), popArg(2), popArg(3), popArg(4),
+                                popArg(5), popArg(6), popArg(7), popArg(8));
+                    }
+                    case LambdaType.ReturnType.OBJECT: {
+                        return (R) ((NonaFunction) mFunc).apply(popArg(0), popArg(1),
+                                popArg(2), popArg(3), popArg(4), popArg(5),
+                                popArg(6), popArg(7), popArg(8));
+                    }
+                }
+            } break;
         }
         throw new IllegalStateException("Unknown function type: " + LambdaType.toString(funcType));
     }
@@ -419,8 +469,8 @@
      * Internal non-typesafe factory method for {@link PooledLambdaImpl}
      */
     static <E extends PooledLambda> E acquire(Pool pool, Object func,
-            int fNumArgs, int numPlaceholders, int fReturnType,
-            Object a, Object b, Object c, Object d, Object e, Object f, Object g) {
+            int fNumArgs, int numPlaceholders, int fReturnType, Object a, Object b, Object c,
+            Object d, Object e, Object f, Object g, Object h, Object i) {
         PooledLambdaImpl r = acquire(pool);
         if (DEBUG) {
             Log.i(LOG_TAG,
@@ -436,6 +486,8 @@
                             + ", e = " + e
                             + ", f = " + f
                             + ", g = " + g
+                            + ", h = " + h
+                            + ", i = " + i
                             + ")");
         }
         r.mFunc = func;
@@ -449,6 +501,8 @@
         setIfInBounds(r.mArgs, 4, e);
         setIfInBounds(r.mArgs, 5, f);
         setIfInBounds(r.mArgs, 6, g);
+        setIfInBounds(r.mArgs, 7, h);
+        setIfInBounds(r.mArgs, 8, i);
         return (E) r;
     }
 
@@ -474,13 +528,14 @@
     }
 
     @Override
-    public OmniFunction<Object, Object, Object, Object, Object, Object, Object, R> negate() {
+    public OmniFunction<Object, Object, Object, Object, Object, Object, Object, Object, Object,
+            R> negate() {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public <V> OmniFunction<Object, Object, Object, Object, Object, Object, Object, V> andThen(
-            Function<? super R, ? extends V> after) {
+    public <V> OmniFunction<Object, Object, Object, Object, Object, Object, Object, Object, Object,
+            V> andThen(Function<? super R, ? extends V> after) {
         throw new UnsupportedOperationException();
     }
 
@@ -500,7 +555,8 @@
     }
 
     @Override
-    public OmniFunction<Object, Object, Object, Object, Object, Object, Object, R> recycleOnUse() {
+    public OmniFunction<Object, Object, Object, Object, Object, Object, Object, Object, Object,
+            R> recycleOnUse() {
         if (DEBUG) Log.i(LOG_TAG, this + ".recycleOnUse()");
         mFlags |= FLAG_RECYCLE_ON_USE;
         return this;
@@ -584,6 +640,8 @@
                 case 5: return "Quint";
                 case 6: return "Hex";
                 case 7: return "Hept";
+                case 8: return "Oct";
+                case 9: return "Nona";
                 default: throw new IllegalArgumentException("" + argCount);
             }
         }
diff --git a/core/java/com/android/internal/view/BaseIWindow.java b/core/java/com/android/internal/view/BaseIWindow.java
index 137ca7f..c8834a8 100644
--- a/core/java/com/android/internal/view/BaseIWindow.java
+++ b/core/java/com/android/internal/view/BaseIWindow.java
@@ -27,6 +27,8 @@
 import android.view.IWindow;
 import android.view.IWindowSession;
 import android.view.PointerIcon;
+import android.view.InsetsSourceControl;
+import android.view.InsetsState;
 
 import com.android.internal.os.IResultReceiver;
 
@@ -53,6 +55,15 @@
     }
 
     @Override
+    public void insetsChanged(InsetsState insetsState) {
+    }
+
+    @Override
+    public void insetsControlChanged(InsetsState insetsState,
+            InsetsSourceControl[] activeControls) throws RemoteException {
+    }
+
+    @Override
     public void moved(int newX, int newY) {
     }
 
diff --git a/core/java/com/android/internal/widget/ResolverDrawerLayout.java b/core/java/com/android/internal/widget/ResolverDrawerLayout.java
index 7635a72..b7e656b 100644
--- a/core/java/com/android/internal/widget/ResolverDrawerLayout.java
+++ b/core/java/com/android/internal/widget/ResolverDrawerLayout.java
@@ -814,7 +814,14 @@
             final View child = getChildAt(i);
             final LayoutParams lp = (LayoutParams) child.getLayoutParams();
             if (lp.alwaysShow && child.getVisibility() != GONE) {
-                measureChildWithMargins(child, widthSpec, widthPadding, heightSpec, heightUsed);
+                if (lp.maxHeight != -1) {
+                    final int remainingHeight = heightSize - heightUsed;
+                    measureChildWithMargins(child, widthSpec, widthPadding,
+                            MeasureSpec.makeMeasureSpec(lp.maxHeight, MeasureSpec.AT_MOST),
+                            lp.maxHeight > remainingHeight ? lp.maxHeight - remainingHeight : 0);
+                } else {
+                    measureChildWithMargins(child, widthSpec, widthPadding, heightSpec, heightUsed);
+                }
                 heightUsed += child.getMeasuredHeight();
             }
         }
@@ -824,9 +831,17 @@
         // And now the rest.
         for (int i = 0; i < childCount; i++) {
             final View child = getChildAt(i);
+
             final LayoutParams lp = (LayoutParams) child.getLayoutParams();
             if (!lp.alwaysShow && child.getVisibility() != GONE) {
-                measureChildWithMargins(child, widthSpec, widthPadding, heightSpec, heightUsed);
+                if (lp.maxHeight != -1) {
+                    final int remainingHeight = heightSize - heightUsed;
+                    measureChildWithMargins(child, widthSpec, widthPadding,
+                            MeasureSpec.makeMeasureSpec(lp.maxHeight, MeasureSpec.AT_MOST),
+                            lp.maxHeight > remainingHeight ? lp.maxHeight - remainingHeight : 0);
+                } else {
+                    measureChildWithMargins(child, widthSpec, widthPadding, heightSpec, heightUsed);
+                }
                 heightUsed += child.getMeasuredHeight();
             }
         }
@@ -938,6 +953,7 @@
         public boolean alwaysShow;
         public boolean ignoreOffset;
         public boolean hasNestedScrollIndicator;
+        public int maxHeight;
 
         public LayoutParams(Context c, AttributeSet attrs) {
             super(c, attrs);
@@ -953,6 +969,8 @@
             hasNestedScrollIndicator = a.getBoolean(
                     R.styleable.ResolverDrawerLayout_LayoutParams_layout_hasNestedScrollIndicator,
                     false);
+            maxHeight = a.getDimensionPixelSize(
+                    R.styleable.ResolverDrawerLayout_LayoutParams_layout_maxHeight, -1);
             a.recycle();
         }
 
@@ -965,6 +983,7 @@
             this.alwaysShow = source.alwaysShow;
             this.ignoreOffset = source.ignoreOffset;
             this.hasNestedScrollIndicator = source.hasNestedScrollIndicator;
+            this.maxHeight = source.maxHeight;
         }
 
         public LayoutParams(MarginLayoutParams source) {
diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java
index 15745e9..b97a9fa 100644
--- a/core/java/com/android/server/SystemConfig.java
+++ b/core/java/com/android/server/SystemConfig.java
@@ -25,6 +25,7 @@
 import android.os.Build;
 import android.os.Environment;
 import android.os.Process;
+import android.os.SystemProperties;
 import android.os.storage.StorageManager;
 import android.permission.PermissionManager.SplitPermissionInfo;
 import android.text.TextUtils;
@@ -930,6 +931,16 @@
                 XmlUtils.skipCurrentTag(parser);
             }
         }
+        // If the storage model feature flag is disabled, we need to fiddle
+        // around with permission definitions to return us to pre-Q behavior.
+        // STOPSHIP(b/112545973): remove once feature enabled by default
+        if (!StorageManager.hasIsolatedStorage()) {
+            if (newPermissions.contains(android.Manifest.permission.READ_MEDIA_AUDIO) ||
+                    newPermissions.contains(android.Manifest.permission.READ_MEDIA_VIDEO) ||
+                    newPermissions.contains(android.Manifest.permission.READ_MEDIA_IMAGES)) {
+                return;
+            }
+        }
         if (!newPermissions.isEmpty()) {
             mSplitPermissions.add(new SplitPermissionInfo(splitPerm, newPermissions, targetSdk));
         }
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index bdd5f83..31bb1d5 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -34,7 +34,6 @@
     ],
 
     cppflags: ["-Wno-conversion-null"],
-    cpp_std: "c++17",
 
     srcs: [
         "AndroidRuntime.cpp",
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index eada690..f9879cc 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -1056,12 +1056,18 @@
     if (rootDir == NULL) {
         rootDir = "/system";
         if (!hasDir("/system")) {
-            LOG_FATAL("No root directory specified, and /android does not exist.");
+            LOG_FATAL("No root directory specified, and /system does not exist.");
             return;
         }
         setenv("ANDROID_ROOT", rootDir, 1);
     }
 
+    const char* runtimeRootDir = getenv("ANDROID_RUNTIME_ROOT");
+    if (runtimeRootDir == NULL) {
+        LOG_FATAL("No runtime directory specified with ANDROID_RUNTIME_ROOT environment variable.");
+        return;
+    }
+
     //const char* kernelHack = getenv("LD_ASSUME_KERNEL");
     //ALOGD("Found LD_ASSUME_KERNEL='%s'\n", kernelHack);
 
@@ -1450,8 +1456,8 @@
     REG_JNI(register_android_hardware_UsbDeviceConnection),
     REG_JNI(register_android_hardware_UsbRequest),
     REG_JNI(register_android_hardware_location_ActivityRecognitionHardware),
-    REG_JNI(register_android_media_AudioRecord),
     REG_JNI(register_android_media_AudioSystem),
+    REG_JNI(register_android_media_AudioRecord),
     REG_JNI(register_android_media_AudioTrack),
     REG_JNI(register_android_media_JetPlayer),
     REG_JNI(register_android_media_MicrophoneInfo),
diff --git a/core/jni/android/graphics/Shader.cpp b/core/jni/android/graphics/Shader.cpp
index 68f5bef..ed6a84b 100644
--- a/core/jni/android/graphics/Shader.cpp
+++ b/core/jni/android/graphics/Shader.cpp
@@ -64,11 +64,10 @@
         jint tileModeX, jint tileModeY) {
     const SkMatrix* matrix = reinterpret_cast<const SkMatrix*>(matrixPtr);
     sk_sp<SkImage> image;
-    sk_sp<SkColorFilter> colorFilter;
     if (jbitmap) {
         // Only pass a valid SkBitmap object to the constructor if the Bitmap exists. Otherwise,
         // we'll pass an empty SkBitmap to avoid crashing/excepting for compatibility.
-        image = android::bitmap::toBitmap(env, jbitmap).makeImage(&colorFilter);
+        image = android::bitmap::toBitmap(env, jbitmap).makeImage();
     }
 
     if (!image.get()) {
@@ -81,9 +80,6 @@
     if (matrix) {
         shader = shader->makeWithLocalMatrix(*matrix);
     }
-    if(colorFilter) {
-        shader = shader->makeWithColorFilter(colorFilter);
-    }
 
     ThrowIAE_IfNull(env, shader.get());
     return reinterpret_cast<jlong>(shader.release());
diff --git a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
index e02741f..719cf74 100644
--- a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
+++ b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
@@ -514,14 +514,14 @@
 
     sp<ANativeWindow> anw;
     if ((anw = getNativeWindow(env, surface)) == NULL) {
-        jniThrowException(env, "java/lang/UnsupportedOperationException;",
+        jniThrowException(env, "java/lang/UnsupportedOperationException",
             "Could not retrieve native window from surface.");
         return BAD_VALUE;
     }
     int32_t usage = 0;
     status_t err = anw->query(anw.get(), NATIVE_WINDOW_CONSUMER_USAGE_BITS, &usage);
     if(err != NO_ERROR) {
-        jniThrowException(env, "java/lang/UnsupportedOperationException;",
+        jniThrowException(env, "java/lang/UnsupportedOperationException",
             "Error while querying surface usage bits");
         OVERRIDE_SURFACE_ERROR(err);
         return err;
@@ -542,7 +542,7 @@
 
     status_t err = native_window_api_disconnect(anw.get(), NATIVE_WINDOW_API_CAMERA);
     if(err != NO_ERROR) {
-        jniThrowException(env, "java/lang/UnsupportedOperationException;",
+        jniThrowException(env, "java/lang/UnsupportedOperationException",
             "Error while disconnecting surface");
         OVERRIDE_SURFACE_ERROR(err);
         return err;
diff --git a/core/jni/android_hardware_display_DisplayViewport.cpp b/core/jni/android_hardware_display_DisplayViewport.cpp
index 05f6556..e74aafe 100644
--- a/core/jni/android_hardware_display_DisplayViewport.cpp
+++ b/core/jni/android_hardware_display_DisplayViewport.cpp
@@ -40,6 +40,7 @@
     jfieldID deviceWidth;
     jfieldID deviceHeight;
     jfieldID uniqueId;
+    jfieldID physicalPort;
     jfieldID type;
 } gDisplayViewportClassInfo;
 
@@ -54,6 +55,9 @@
 
 status_t android_hardware_display_DisplayViewport_toNative(JNIEnv* env, jobject viewportObj,
         DisplayViewport* viewport) {
+    static const jclass byteClass = FindClassOrDie(env, "java/lang/Byte");
+    static const jmethodID byteValue = env->GetMethodID(byteClass, "byteValue", "()B");
+
     viewport->displayId = env->GetIntField(viewportObj, gDisplayViewportClassInfo.displayId);
     viewport->orientation = env->GetIntField(viewportObj, gDisplayViewportClassInfo.orientation);
     viewport->deviceWidth = env->GetIntField(viewportObj, gDisplayViewportClassInfo.deviceWidth);
@@ -65,6 +69,12 @@
         viewport->uniqueId = ScopedUtfChars(env, uniqueId).c_str();
     }
 
+    viewport->physicalPort = std::nullopt;
+    jobject physicalPort = env->GetObjectField(viewportObj, gDisplayViewportClassInfo.physicalPort);
+    if (physicalPort != nullptr) {
+        viewport->physicalPort = std::make_optional(env->CallByteMethod(physicalPort, byteValue));
+    }
+
     viewport->type = static_cast<ViewportType>(env->GetIntField(viewportObj,
                 gDisplayViewportClassInfo.type));
 
@@ -112,6 +122,9 @@
     gDisplayViewportClassInfo.uniqueId = GetFieldIDOrDie(env,
             gDisplayViewportClassInfo.clazz, "uniqueId", "Ljava/lang/String;");
 
+    gDisplayViewportClassInfo.physicalPort = GetFieldIDOrDie(env,
+            gDisplayViewportClassInfo.clazz, "physicalPort", "Ljava/lang/Byte;");
+
     gDisplayViewportClassInfo.type = GetFieldIDOrDie(env,
             gDisplayViewportClassInfo.clazz, "type", "I");
 
diff --git a/core/jni/android_hardware_input_InputApplicationHandle.cpp b/core/jni/android_hardware_input_InputApplicationHandle.cpp
index 5887fa7..10005dd 100644
--- a/core/jni/android_hardware_input_InputApplicationHandle.cpp
+++ b/core/jni/android_hardware_input_InputApplicationHandle.cpp
@@ -22,6 +22,7 @@
 #include <utils/threads.h>
 
 #include "android_hardware_input_InputApplicationHandle.h"
+#include "android_util_Binder.h"
 
 namespace android {
 
@@ -29,6 +30,7 @@
     jfieldID ptr;
     jfieldID name;
     jfieldID dispatchingTimeoutNanos;
+    jfieldID token;
 } gInputApplicationHandleClassInfo;
 
 static Mutex gHandleMutex;
@@ -75,6 +77,15 @@
     mInfo->dispatchingTimeout = env->GetLongField(obj,
             gInputApplicationHandleClassInfo.dispatchingTimeoutNanos);
 
+    jobject tokenObj = env->GetObjectField(obj,
+            gInputApplicationHandleClassInfo.token);
+    if (tokenObj) {
+        mInfo->token = ibinderForJavaObject(env, tokenObj);
+        env->DeleteLocalRef(tokenObj);
+    } else {
+        mInfo->token.clear();
+    }
+
     env->DeleteLocalRef(obj);
     return true;
 }
@@ -153,6 +164,9 @@
             clazz,
             "dispatchingTimeoutNanos", "J");
 
+    GET_FIELD_ID(gInputApplicationHandleClassInfo.token, clazz,
+            "token", "Landroid/os/IBinder;");
+
     return 0;
 }
 
diff --git a/core/jni/android_hardware_input_InputWindowHandle.cpp b/core/jni/android_hardware_input_InputWindowHandle.cpp
index 6ecb5de..76920f5 100644
--- a/core/jni/android_hardware_input_InputWindowHandle.cpp
+++ b/core/jni/android_hardware_input_InputWindowHandle.cpp
@@ -21,19 +21,19 @@
 #include <android_runtime/AndroidRuntime.h>
 #include <utils/threads.h>
 
-#include <android_view_InputChannel.h>
 #include <android/graphics/Region.h>
 #include <ui/Region.h>
 
 #include "android_hardware_input_InputWindowHandle.h"
 #include "android_hardware_input_InputApplicationHandle.h"
+#include "android_util_Binder.h"
 
 namespace android {
 
 static struct {
     jfieldID ptr;
     jfieldID inputApplicationHandle;
-    jfieldID inputChannel;
+    jfieldID token;
     jfieldID name;
     jfieldID layoutParamsFlags;
     jfieldID layoutParamsType;
@@ -42,6 +42,7 @@
     jfieldID frameTop;
     jfieldID frameRight;
     jfieldID frameBottom;
+    jfieldID surfaceInset;
     jfieldID scaleFactor;
     jfieldID touchableRegion;
     jfieldID visible;
@@ -61,9 +62,7 @@
 
 // --- NativeInputWindowHandle ---
 
-NativeInputWindowHandle::NativeInputWindowHandle(
-        const sp<InputApplicationHandle>& inputApplicationHandle, jweak objWeak) :
-        InputWindowHandle(inputApplicationHandle),
+NativeInputWindowHandle::NativeInputWindowHandle(jweak objWeak) :
         mObjWeak(objWeak) {
 }
 
@@ -86,13 +85,12 @@
 
     mInfo.touchableRegion.clear();
 
-    jobject inputChannelObj = env->GetObjectField(obj,
-            gInputWindowHandleClassInfo.inputChannel);
-    if (inputChannelObj) {
-        mInfo.inputChannel = android_view_InputChannel_getInputChannel(env, inputChannelObj);
-        env->DeleteLocalRef(inputChannelObj);
+    jobject tokenObj = env->GetObjectField(obj,
+            gInputWindowHandleClassInfo.token);
+    if (tokenObj) {
+        mInfo.token = ibinderForJavaObject(env, tokenObj);
     } else {
-        mInfo.inputChannel.clear();
+        mInfo.token.clear();
     }
 
     jstring nameObj = jstring(env->GetObjectField(obj,
@@ -120,7 +118,9 @@
             gInputWindowHandleClassInfo.frameRight);
     mInfo.frameBottom = env->GetIntField(obj,
             gInputWindowHandleClassInfo.frameBottom);
-    mInfo.scaleFactor = env->GetFloatField(obj,
+    mInfo.surfaceInset = env->GetIntField(obj,
+            gInputWindowHandleClassInfo.surfaceInset);
+    mInfo.globalScaleFactor = env->GetFloatField(obj,
             gInputWindowHandleClassInfo.scaleFactor);
 
     jobject regionObj = env->GetObjectField(obj,
@@ -155,6 +155,18 @@
     mInfo.displayId = env->GetIntField(obj,
             gInputWindowHandleClassInfo.displayId);
 
+    jobject inputApplicationHandleObj = env->GetObjectField(obj,
+            gInputWindowHandleClassInfo.inputApplicationHandle);
+    if (inputApplicationHandleObj) {
+        sp<InputApplicationHandle> inputApplicationHandle =
+            android_server_InputApplicationHandle_getHandle(env, inputApplicationHandleObj);
+        if (inputApplicationHandle != nullptr) {
+            inputApplicationHandle->updateInfo();
+            mInfo.applicationInfo = *(inputApplicationHandle->getInfo());
+        }
+        env->DeleteLocalRef(inputApplicationHandleObj);
+    }
+
     env->DeleteLocalRef(obj);
     return true;
 }
@@ -175,14 +187,8 @@
     if (ptr) {
         handle = reinterpret_cast<NativeInputWindowHandle*>(ptr);
     } else {
-        jobject inputApplicationHandleObj = env->GetObjectField(inputWindowHandleObj,
-                gInputWindowHandleClassInfo.inputApplicationHandle);
-        sp<InputApplicationHandle> inputApplicationHandle =
-                android_server_InputApplicationHandle_getHandle(env, inputApplicationHandleObj);
-        env->DeleteLocalRef(inputApplicationHandleObj);
-
         jweak objWeak = env->NewWeakGlobalRef(inputWindowHandleObj);
-        handle = new NativeInputWindowHandle(inputApplicationHandle, objWeak);
+        handle = new NativeInputWindowHandle(objWeak);
         handle->incStrong((void*)android_server_InputWindowHandle_getHandle);
         env->SetLongField(inputWindowHandleObj, gInputWindowHandleClassInfo.ptr,
                 reinterpret_cast<jlong>(handle));
@@ -236,8 +242,8 @@
             clazz,
             "inputApplicationHandle", "Landroid/view/InputApplicationHandle;");
 
-    GET_FIELD_ID(gInputWindowHandleClassInfo.inputChannel, clazz,
-            "inputChannel", "Landroid/view/InputChannel;");
+    GET_FIELD_ID(gInputWindowHandleClassInfo.token, clazz,
+            "token", "Landroid/os/IBinder;");
 
     GET_FIELD_ID(gInputWindowHandleClassInfo.name, clazz,
             "name", "Ljava/lang/String;");
@@ -263,6 +269,9 @@
     GET_FIELD_ID(gInputWindowHandleClassInfo.frameBottom, clazz,
             "frameBottom", "I");
 
+    GET_FIELD_ID(gInputWindowHandleClassInfo.surfaceInset, clazz,
+            "surfaceInset", "I");
+
     GET_FIELD_ID(gInputWindowHandleClassInfo.scaleFactor, clazz,
             "scaleFactor", "F");
 
diff --git a/core/jni/android_hardware_input_InputWindowHandle.h b/core/jni/android_hardware_input_InputWindowHandle.h
index 2be267e..54b89f5 100644
--- a/core/jni/android_hardware_input_InputWindowHandle.h
+++ b/core/jni/android_hardware_input_InputWindowHandle.h
@@ -26,8 +26,7 @@
 
 class NativeInputWindowHandle : public InputWindowHandle {
 public:
-    NativeInputWindowHandle(const sp<InputApplicationHandle>& inputApplicationHandle,
-            jweak objWeak);
+    NativeInputWindowHandle(jweak objWeak);
     virtual ~NativeInputWindowHandle();
 
     jobject getInputWindowHandleObjLocalRef(JNIEnv* env);
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp
index 1ea4ed1..12a8343b4 100644
--- a/core/jni/android_media_AudioRecord.cpp
+++ b/core/jni/android_media_AudioRecord.cpp
@@ -842,6 +842,18 @@
 }
 
 // ----------------------------------------------------------------------------
+static jint android_media_AudioRecord_get_port_id(JNIEnv *env,  jobject thiz) {
+    sp<AudioRecord> lpRecorder = getAudioRecord(env, thiz);
+    if (lpRecorder == NULL) {
+        jniThrowException(env, "java/lang/IllegalStateException",
+                          "Unable to retrieve AudioRecord pointer for getId()");
+        return (jint)AUDIO_PORT_HANDLE_NONE;
+    }
+    return (jint)lpRecorder->getPortId();
+}
+
+
+// ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 static const JNINativeMethod gMethods[] = {
     // name,               signature,  funcPtr
@@ -883,6 +895,7 @@
                                        (void *)android_media_AudioRecord_get_timestamp},
     {"native_get_active_microphones", "(Ljava/util/ArrayList;)I",
                                         (void *)android_media_AudioRecord_get_active_microphones},
+    {"native_getPortId", "()I", (void *)android_media_AudioRecord_get_port_id},
 };
 
 // field names found in android/media/AudioRecord.java
diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp
index 7410b52..adab8e2 100644
--- a/core/jni/android_media_AudioSystem.cpp
+++ b/core/jni/android_media_AudioSystem.cpp
@@ -175,6 +175,17 @@
     jmethodID postRecordConfigEventFromNative;
 } gAudioPolicyEventHandlerMethods;
 
+//
+// JNI Initialization for OpenSLES routing
+//
+jmethodID gMidAudioTrackRoutingProxy_ctor;
+jmethodID gMidAudioTrackRoutingProxy_release;
+jmethodID gMidAudioRecordRoutingProxy_ctor;
+jmethodID gMidAudioRecordRoutingProxy_release;
+
+jclass gClsAudioTrackRoutingProxy;
+jclass gClsAudioRecordRoutingProxy;
+
 static Mutex gLock;
 
 enum AudioError {
@@ -2017,6 +2028,39 @@
     return (jint)nativeToJavaStatus(status);
 }
 
+static jint android_media_AudioSystem_get_FCC_8(JNIEnv *env, jobject thiz) {
+    return FCC_8;
+}
+
+static jint
+android_media_AudioSystem_setAssistantUid(JNIEnv *env, jobject thiz, jint uid)
+{
+    status_t status = AudioSystem::setAssistantUid(uid);
+    return (jint)nativeToJavaStatus(status);
+}
+
+static jint
+android_media_AudioSystem_setA11yServicesUids(JNIEnv *env, jobject thiz, jintArray uids) {
+    std::vector<uid_t> nativeUidsVector;
+
+    if (uids != nullptr) {
+       jsize len = env->GetArrayLength(uids);
+
+       if (len > 0) {
+           int *nativeUids = nullptr;
+           nativeUids = env->GetIntArrayElements(uids, 0);
+           if (nativeUids != nullptr) {
+               for (size_t i = 0; i < len; i++) {
+                   nativeUidsVector.push_back(nativeUids[i]);
+               }
+               env->ReleaseIntArrayElements(uids, nativeUids, 0);
+           }
+       }
+    }
+    status_t status = AudioSystem::setA11yServicesUids(nativeUidsVector);
+    return (jint)nativeToJavaStatus(status);
+}
+
 // ----------------------------------------------------------------------------
 
 static const JNINativeMethod gMethods[] = {
@@ -2077,9 +2121,10 @@
     {"getMicrophones", "(Ljava/util/ArrayList;)I", (void *)android_media_AudioSystem_getMicrophones},
     {"getSurroundFormats", "(Ljava/util/Map;Z)I", (void *)android_media_AudioSystem_getSurroundFormats},
     {"setSurroundFormatEnabled", "(IZ)I", (void *)android_media_AudioSystem_setSurroundFormatEnabled},
+    {"setAssistantUid", "(I)I", (void *)android_media_AudioSystem_setAssistantUid},
+    {"setA11yServicesUids", "([I)I", (void *)android_media_AudioSystem_setA11yServicesUids},
 };
 
-
 static const JNINativeMethod gEventHandlerMethods[] = {
     {"native_setup",
         "(Ljava/lang/Object;)V",
@@ -2089,8 +2134,15 @@
         (void *)android_media_AudioSystem_eventHandlerFinalize},
 };
 
+static const JNINativeMethod gGetFCC8Methods[] = {
+    {"native_get_FCC_8", "()I", (void *)android_media_AudioSystem_get_FCC_8},
+};
+
 int register_android_media_AudioSystem(JNIEnv *env)
 {
+    // This needs to be done before hooking up methods AudioTrackRoutingProxy (below)
+    RegisterMethodsOrDie(env, kClassPathName, gGetFCC8Methods, NELEM(gGetFCC8Methods));
+
     jclass arrayListClass = FindClassOrDie(env, "java/util/ArrayList");
     gArrayListClass = MakeGlobalRefOrDie(env, arrayListClass);
     gArrayListMethods.add = GetMethodIDOrDie(env, arrayListClass, "add", "(Ljava/lang/Object;)Z");
@@ -2247,6 +2299,28 @@
     gAudioAttributesFields.mFormattedTags = GetFieldIDOrDie(env,
             audioAttributesClass, "mFormattedTags", "Ljava/lang/String;");
 
+    // AudioTrackRoutingProxy methods
+    gClsAudioTrackRoutingProxy =
+            android::FindClassOrDie(env, "android/media/AudioTrackRoutingProxy");
+    // make sure this reference doesn't get deleted
+    gClsAudioTrackRoutingProxy = (jclass)env->NewGlobalRef(gClsAudioTrackRoutingProxy);
+
+    gMidAudioTrackRoutingProxy_ctor =
+            android::GetMethodIDOrDie(env, gClsAudioTrackRoutingProxy, "<init>", "(J)V");
+    gMidAudioTrackRoutingProxy_release =
+            android::GetMethodIDOrDie(env, gClsAudioTrackRoutingProxy, "native_release", "()V");
+
+    // AudioRecordRoutingProxy
+    gClsAudioRecordRoutingProxy =
+            android::FindClassOrDie(env, "android/media/AudioRecordRoutingProxy");
+    // make sure this reference doesn't get deleted
+    gClsAudioRecordRoutingProxy = (jclass)env->NewGlobalRef(gClsAudioRecordRoutingProxy);
+
+    gMidAudioRecordRoutingProxy_ctor =
+            android::GetMethodIDOrDie(env, gClsAudioRecordRoutingProxy, "<init>", "(J)V");
+    gMidAudioRecordRoutingProxy_release =
+            android::GetMethodIDOrDie(env, gClsAudioRecordRoutingProxy, "native_release", "()V");
+
     AudioSystem::setErrorCallback(android_media_AudioSystem_error_callback);
 
     RegisterMethodsOrDie(env, kClassPathName, gMethods, NELEM(gMethods));
diff --git a/core/jni/android_media_AudioTrack.cpp b/core/jni/android_media_AudioTrack.cpp
index bf22dd2..d927972 100644
--- a/core/jni/android_media_AudioTrack.cpp
+++ b/core/jni/android_media_AudioTrack.cpp
@@ -1226,10 +1226,6 @@
     pJniStorage->mDeviceCallback.clear();
 }
 
-static jint android_media_AudioTrack_get_FCC_8(JNIEnv *env, jobject thiz) {
-    return FCC_8;
-}
-
 // Pass through the arguments to the AudioFlinger track implementation.
 static jint android_media_AudioTrack_apply_volume_shaper(JNIEnv *env, jobject thiz,
         jobject jconfig, jobject joperation) {
@@ -1288,6 +1284,17 @@
 }
 
 // ----------------------------------------------------------------------------
+static jint android_media_AudioTrack_get_port_id(JNIEnv *env,  jobject thiz) {
+    sp<AudioTrack> lpTrack = getAudioTrack(env, thiz);
+    if (lpTrack == NULL) {
+        jniThrowException(env, "java/lang/IllegalStateException",
+                          "AudioTrack not initialized");
+        return (jint)AUDIO_PORT_HANDLE_NONE;
+    }
+    return (jint)lpTrack->getPortId();
+}
+
+// ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 static const JNINativeMethod gMethods[] = {
     // name,              signature,     funcPtr
@@ -1351,7 +1358,6 @@
     {"native_getRoutedDeviceId", "()I", (void *)android_media_AudioTrack_getRoutedDeviceId},
     {"native_enableDeviceCallback", "()V", (void *)android_media_AudioTrack_enableDeviceCallback},
     {"native_disableDeviceCallback", "()V", (void *)android_media_AudioTrack_disableDeviceCallback},
-    {"native_get_FCC_8",     "()I",      (void *)android_media_AudioTrack_get_FCC_8},
     {"native_applyVolumeShaper",
             "(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I",
                                          (void *)android_media_AudioTrack_apply_volume_shaper},
@@ -1359,6 +1365,7 @@
             "(I)Landroid/media/VolumeShaper$State;",
                                         (void *)android_media_AudioTrack_get_volume_shaper_state},
     {"native_setPresentation", "(II)I", (void *)android_media_AudioTrack_setPresentation},
+    {"native_getPortId", "()I", (void *)android_media_AudioTrack_get_port_id},
 };
 
 
@@ -1384,7 +1391,6 @@
     }
 }
 
-
 // ----------------------------------------------------------------------------
 int register_android_media_AudioTrack(JNIEnv *env)
 {
diff --git a/core/jni/android_os_Debug.cpp b/core/jni/android_os_Debug.cpp
index ccbe0ee..fa1da4b 100644
--- a/core/jni/android_os_Debug.cpp
+++ b/core/jni/android_os_Debug.cpp
@@ -33,8 +33,6 @@
 #include <iomanip>
 #include <string>
 
-#include <android-base/stringprintf.h>
-#include <android-base/unique_fd.h>
 #include <debuggerd/client.h>
 #include <log/log.h>
 #include <utils/misc.h>
@@ -50,10 +48,6 @@
 namespace android
 {
 
-static inline UniqueFile MakeUniqueFile(const char* path, const char* mode) {
-    return UniqueFile(fopen(path, mode), safeFclose);
-}
-
 enum {
     HEAP_UNKNOWN,
     HEAP_DALVIK,
@@ -692,14 +686,8 @@
 
 static long get_allocated_vmalloc_memory() {
     char line[1024];
-    // Ignored tags that don't actually consume memory (ie remappings)
-    static const char* const ignored_tags[] = {
-            "ioremap",
-            "map_lowmem",
-            "vm_map_ram",
-            NULL
-    };
-    long size, vmalloc_allocated_size = 0;
+
+    long vmalloc_allocated_size = 0;
 
     UniqueFile fp = MakeUniqueFile("/proc/vmallocinfo", "re");
     if (fp == nullptr) {
@@ -710,17 +698,15 @@
         if (fgets(line, 1024, fp.get()) == NULL) {
             break;
         }
-        bool valid_line = true;
-        int i = 0;
-        while (ignored_tags[i]) {
-            if (strstr(line, ignored_tags[i]) != NULL) {
-                valid_line = false;
-                break;
-            }
-            i++;
+
+        // check to see if there are pages mapped in vmalloc area
+        if (!strstr(line, "pages=")) {
+            continue;
         }
-        if (valid_line && (sscanf(line, "%*x-%*x %ld", &size) == 1)) {
-            vmalloc_allocated_size += size;
+
+        long nr_pages;
+        if (sscanf(line, "%*x-%*x %*ld %*s pages=%ld", &nr_pages) == 1) {
+            vmalloc_allocated_size += (nr_pages * getpagesize());
         }
     }
     return vmalloc_allocated_size;
diff --git a/core/jni/android_os_Debug.h b/core/jni/android_os_Debug.h
index 81270ca..c7b731b 100644
--- a/core/jni/android_os_Debug.h
+++ b/core/jni/android_os_Debug.h
@@ -19,6 +19,8 @@
 
 #include <memory>
 #include <stdio.h>
+#include <android-base/stringprintf.h>
+#include <android-base/unique_fd.h>
 
 namespace android {
 
@@ -27,6 +29,11 @@
 }
 
 using UniqueFile = std::unique_ptr<FILE, decltype(&safeFclose)>;
+
+inline UniqueFile MakeUniqueFile(const char* path, const char* mode) {
+    return UniqueFile(fopen(path, mode), safeFclose);
+}
+
 UniqueFile OpenSmapsOrRollup(int pid);
 
 }  // namespace android
diff --git a/core/jni/android_text_AndroidCharacter.cpp b/core/jni/android_text_AndroidCharacter.cpp
index 8885aac..c6ea4e1 100644
--- a/core/jni/android_text_AndroidCharacter.cpp
+++ b/core/jni/android_text_AndroidCharacter.cpp
@@ -25,9 +25,10 @@
 #include "unicode/uchar.h"
 
 #define PROPERTY_UNDEFINED (-1)
+#define JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY 18
 
 // ICU => JDK mapping
-static int directionality_map[U_CHAR_DIRECTION_COUNT] = {
+static int directionality_map[JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY + 1] = {
     0, // U_LEFT_TO_RIGHT (0) => DIRECTIONALITY_LEFT_TO_RIGHT (0)
     1, // U_RIGHT_TO_LEFT (1) => DIRECTIONALITY_RIGHT_TO_LEFT (1)
     3, // U_EUROPEAN_NUMBER (2) => DIRECTIONALITY_EUROPEAN_NUMBER (3)
@@ -75,7 +76,8 @@
             int c = 0x00010000 + ((src[i] - 0xD800) << 10) +
                                  (src[i + 1] & 0x3FF);
             int dir = u_charDirection(c);
-            if (dir < 0 || dir >= U_CHAR_DIRECTION_COUNT)
+            if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY
+                    || u_charType(c) == U_UNASSIGNED)
                 dir = PROPERTY_UNDEFINED;
             else
                 dir = directionality_map[dir];
@@ -85,7 +87,8 @@
         } else {
             int c = src[i];
             int dir = u_charDirection(c);
-            if (dir < 0 || dir >= U_CHAR_DIRECTION_COUNT)
+            if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY
+                    || u_charType(c) == U_UNASSIGNED)
                 dest[i] = PROPERTY_UNDEFINED;
             else
                 dest[i] = directionality_map[dir];
@@ -96,7 +99,7 @@
 static jint getEastAsianWidth(JNIEnv* env, jobject obj, jchar input)
 {
     int width = u_getIntPropertyValue(input, UCHAR_EAST_ASIAN_WIDTH);
-    if (width < 0 || width >= U_EA_COUNT)
+    if (width < 0 || width > u_getIntPropertyMaxValue(UCHAR_EAST_ASIAN_WIDTH))
         width = PROPERTY_UNDEFINED;
 
     return width;
@@ -121,6 +124,7 @@
         return;
     }
 
+    int maxWidth = u_getIntPropertyMaxValue(UCHAR_EAST_ASIAN_WIDTH);
     for (int i = 0; i < count; i++) {
         const int srci = start + i;
         if (src[srci] >= 0xD800 && src[srci] <= 0xDBFF &&
@@ -129,7 +133,7 @@
             int c = 0x00010000 + ((src[srci] - 0xD800) << 10) +
                                  (src[srci + 1] & 0x3FF);
             int width = u_getIntPropertyValue(c, UCHAR_EAST_ASIAN_WIDTH);
-            if (width < 0 || width >= U_EA_COUNT)
+            if (width < 0 || width > maxWidth)
                 width = PROPERTY_UNDEFINED;
 
             dest[i++] = width;
@@ -137,7 +141,7 @@
         } else {
             int c = src[srci];
             int width = u_getIntPropertyValue(c, UCHAR_EAST_ASIAN_WIDTH);
-            if (width < 0 || width >= U_EA_COUNT)
+            if (width < 0 || width > maxWidth)
                 width = PROPERTY_UNDEFINED;
 
             dest[i] = width;
diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp
index 4c7defb..377e65c 100644
--- a/core/jni/android_util_Process.cpp
+++ b/core/jni/android_util_Process.cpp
@@ -1128,6 +1128,39 @@
     return pss * 1024;
 }
 
+static jlongArray android_os_Process_getRss(JNIEnv* env, jobject clazz, jint pid)
+{
+    // total, file, anon, swap
+    jlong rss[4] = {0, 0, 0, 0};
+    std::string status_path =
+            android::base::StringPrintf("/proc/%d/status", pid);
+    UniqueFile file = MakeUniqueFile(status_path.c_str(), "re");
+
+    char line[256];
+    while (fgets(line, sizeof(line), file.get())) {
+        jlong v;
+        if ( sscanf(line, "VmRSS: %" SCNd64 " kB", &v) == 1) {
+            rss[0] = v;
+        } else if ( sscanf(line, "RssFile: %" SCNd64 " kB", &v) == 1) {
+            rss[1] = v;
+        } else if ( sscanf(line, "RssAnon: %" SCNd64 " kB", &v) == 1) {
+            rss[2] = v;
+        } else if ( sscanf(line, "VmSwap: %" SCNd64 " kB", &v) == 1) {
+            rss[3] = v;
+        }
+    }
+
+    jlongArray rssArray = env->NewLongArray(4);
+    if (rssArray == NULL) {
+        jniThrowException(env, "java/lang/OutOfMemoryError", NULL);
+        return NULL;
+    }
+
+    env->SetLongArrayRegion(rssArray, 0, 4, rss);
+
+    return rssArray;
+}
+
 jintArray android_os_Process_getPidsForCommands(JNIEnv* env, jobject clazz,
         jobjectArray commandNames)
 {
@@ -1253,6 +1286,7 @@
     {"parseProcLine", "([BII[I[Ljava/lang/String;[J[F)Z", (void*)android_os_Process_parseProcLine},
     {"getElapsedCpuTime", "()J", (void*)android_os_Process_getElapsedCpuTime},
     {"getPss", "(I)J", (void*)android_os_Process_getPss},
+    {"getRss", "(I)[J", (void*)android_os_Process_getRss},
     {"getPidsForCommands", "([Ljava/lang/String;)[I", (void*)android_os_Process_getPidsForCommands},
     //{"setApplicationObject", "(Landroid/os/IBinder;)V", (void*)android_os_Process_setApplicationObject},
     {"killProcessGroup", "(II)I", (void*)android_os_Process_killProcessGroup},
diff --git a/core/jni/android_view_RenderNode.cpp b/core/jni/android_view_RenderNode.cpp
index e89b593..752624b 100644
--- a/core/jni/android_view_RenderNode.cpp
+++ b/core/jni/android_view_RenderNode.cpp
@@ -468,6 +468,10 @@
     return reinterpret_cast<RenderNode*>(renderNodePtr)->stagingProperties().getAllowForceDark();
 }
 
+static jlong android_view_RenderNode_getUniqueId(jlong renderNodePtr) {
+    return reinterpret_cast<RenderNode*>(renderNodePtr)->uniqueId();
+}
+
 // ----------------------------------------------------------------------------
 // RenderProperties - Animations
 // ----------------------------------------------------------------------------
@@ -694,6 +698,7 @@
     { "nGetHeight",                "(J)I",  (void*) android_view_RenderNode_getHeight },
     { "nSetAllowForceDark",        "(JZ)Z", (void*) android_view_RenderNode_setAllowForceDark },
     { "nGetAllowForceDark",        "(J)Z",  (void*) android_view_RenderNode_getAllowForceDark },
+    { "nGetUniqueId",              "(J)J",  (void*) android_view_RenderNode_getUniqueId },
 };
 
 int register_android_view_RenderNode(JNIEnv* env) {
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index ec9c860..ea6e017 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -377,6 +377,14 @@
     transaction->setCrop_legacy(ctrl, crop);
 }
 
+static void nativeSetCornerRadius(JNIEnv* env, jclass clazz, jlong transactionObj,
+         jlong nativeObject, jfloat cornerRadius) {
+    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
+
+    SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
+    transaction->setCornerRadius(ctrl, cornerRadius);
+}
+
 static void nativeSetLayerStack(JNIEnv* env, jclass clazz, jlong transactionObj,
         jlong nativeObject, jint layerStack) {
     auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
@@ -883,6 +891,8 @@
             (void*)nativeSetFlags },
     {"nativeSetWindowCrop", "(JJIIII)V",
             (void*)nativeSetWindowCrop },
+    {"nativeSetCornerRadius", "(JJF)V",
+            (void*)nativeSetCornerRadius },
     {"nativeSetLayerStack", "(JJI)V",
             (void*)nativeSetLayerStack },
     {"nativeGetBuiltInDisplay", "(I)Landroid/os/IBinder;",
diff --git a/core/proto/android/providers/settings/global.proto b/core/proto/android/providers/settings/global.proto
index 7de8020..f22d57f 100644
--- a/core/proto/android/providers/settings/global.proto
+++ b/core/proto/android/providers/settings/global.proto
@@ -550,6 +550,10 @@
     }
     optional MultiSim multi_sim = 76;
 
+    // Whether we've enabled native flags health check on this device. Takes effect on
+    // reboot. The value "1" enables native flags health check; otherwise it's disabled.
+    optional SettingProto native_flags_health_check_enabled = 144 [ (android.privacy).dest = DEST_AUTOMATIC ];
+
     message Netstats {
         option (android.msg_privacy).dest = DEST_EXPLICIT;
 
@@ -865,6 +869,8 @@
         // Temperature at which the high temperature warning notification should
         // be shown.
         optional SettingProto warning_temperature_level = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
+        // USB temperature at which the high temperature alarm notification should be shown.
+        optional SettingProto usb_alarm_temperature_level = 3 [ (android.privacy).dest = DEST_AUTOMATIC ];
     }
     optional TemperatureWarning temperature_warning = 119;
 
@@ -987,5 +993,5 @@
 
     // Please insert fields in alphabetical order and group them into messages
     // if possible (to avoid reaching the method limit).
-    // Next tag = 144;
+    // Next tag = 145;
 }
diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto
index 6e661e1..0e052fe 100644
--- a/core/proto/android/providers/settings/secure.proto
+++ b/core/proto/android/providers/settings/secure.proto
@@ -234,6 +234,18 @@
     }
     optional Location location = 31;
 
+    // How frequently will the user be reminded about location permission grants
+    message LocationAccessCheck {
+        option (android.msg_privacy).dest = DEST_EXPLICIT;
+
+        // Time in between periodic checks
+        optional SettingProto interval_millis = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
+
+        // Time in between the user granting a location permission and a check
+        optional SettingProto delay_millis = 2 [ (android.privacy).dest = DEST_AUTOMATIC ];
+    }
+    optional LocationAccessCheck location_access_check = 73;
+
     message LockScreen {
         option (android.msg_privacy).dest = DEST_EXPLICIT;
 
@@ -515,5 +527,5 @@
 
     // Please insert fields in alphabetical order and group them into messages
     // if possible (to avoid reaching the method limit).
-    // Next tag = 73;
+    // Next tag = 74;
 }
diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto
index b0dbaa0..3767ed5 100644
--- a/core/proto/android/server/windowmanagerservice.proto
+++ b/core/proto/android/server/windowmanagerservice.proto
@@ -97,7 +97,7 @@
 message WindowManagerPolicyProto {
     option (.android.msg_privacy).dest = DEST_AUTOMATIC;
 
-    optional int32 last_system_ui_flags = 1;
+    optional int32 last_system_ui_flags = 1 [deprecated=true];
     enum UserRotationMode {
         USER_ROTATION_FREE = 0;
         USER_ROTATION_LOCKED = 1;
@@ -108,18 +108,18 @@
     optional bool screen_on_fully = 5;
     optional bool keyguard_draw_complete = 6;
     optional bool window_manager_draw_complete = 7;
-    optional string focused_app_token = 8;
-    optional IdentifierProto focused_window = 9;
-    optional IdentifierProto top_fullscreen_opaque_window = 10;
-    optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11;
+    optional string focused_app_token = 8 [deprecated=true];
+    optional IdentifierProto focused_window = 9 [deprecated=true];
+    optional IdentifierProto top_fullscreen_opaque_window = 10 [deprecated=true];
+    optional IdentifierProto top_fullscreen_opaque_or_dimming_window = 11 [deprecated=true];
     optional bool keyguard_occluded = 12;
     optional bool keyguard_occluded_changed = 13;
     optional bool keyguard_occluded_pending = 14;
-    optional bool force_status_bar = 15;
-    optional bool force_status_bar_from_keyguard = 16;
-    optional BarControllerProto status_bar = 17;
-    optional BarControllerProto navigation_bar = 18;
-    optional WindowOrientationListenerProto orientation_listener = 19;
+    optional bool force_status_bar = 15 [deprecated=true];
+    optional bool force_status_bar_from_keyguard = 16 [deprecated=true];
+    optional BarControllerProto status_bar = 17 [deprecated=true];
+    optional BarControllerProto navigation_bar = 18 [deprecated=true];
+    optional WindowOrientationListenerProto orientation_listener = 19 [deprecated=true];
     optional KeyguardServiceDelegateProto keyguard_delegate = 20;
 }
 
@@ -156,7 +156,7 @@
     optional int32 rotation = 11;
     optional ScreenRotationAnimationProto screen_rotation_animation = 12;
     optional DisplayFramesProto display_frames = 13;
-    optional int32 surface_size = 14;
+    optional int32 surface_size = 14 [deprecated=true];
     optional string focused_app = 15;
     optional AppTransitionProto app_transition = 16;
 }
@@ -211,7 +211,7 @@
     repeated AppWindowTokenProto app_window_tokens = 3;
     optional bool fills_parent = 4;
     optional .android.graphics.RectProto bounds = 5;
-    optional .android.graphics.RectProto temp_inset_bounds = 6;
+    optional .android.graphics.RectProto displayed_bounds = 6;
     optional bool defer_removal = 7;
     optional int32 surface_width = 8;
     optional int32 surface_height = 9;
diff --git a/core/proto/android/service/runtime.proto b/core/proto/android/service/runtime.proto
new file mode 100644
index 0000000..ecbccef
--- /dev/null
+++ b/core/proto/android/service/runtime.proto
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+syntax = "proto2";
+package android.service.runtime;
+
+import "frameworks/base/libs/incident/proto/android/privacy.proto";
+
+option java_multiple_files = true;
+option java_outer_classname = "RuntimeServiceProto";
+
+// Represents dumpsys info from RuntimeService.
+message RuntimeServiceInfoProto {
+  option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+  // Generic debug information to include.
+  repeated DebugEntryProto debug_entry = 1;
+}
+
+// A piece of key / value debug information.
+message DebugEntryProto {
+  option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+  optional string key = 1;
+
+  optional string string_value = 2;
+}
diff --git a/core/proto/android/stats/devicepolicy/Android.bp b/core/proto/android/stats/devicepolicy/Android.bp
new file mode 100644
index 0000000..6ae54e2
--- /dev/null
+++ b/core/proto/android/stats/devicepolicy/Android.bp
@@ -0,0 +1,33 @@
+// 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.
+
+java_library_static {
+    name: "devicepolicyprotosnano",
+    proto: {
+        type: "nano",
+    },
+    srcs: [
+        "*.proto",
+    ],
+    java_version: "1.8",
+    target: {
+        android: {
+            jarjar_rules: "jarjar-rules.txt",
+        },
+        host: {
+            static_libs: ["libprotobuf-java-nano"],
+        }
+    },
+    no_framework_libs: true,
+}
diff --git a/media/java/android/media/update/ProviderCreator.java b/core/proto/android/stats/devicepolicy/device_policy.proto
similarity index 73%
copy from media/java/android/media/update/ProviderCreator.java
copy to core/proto/android/stats/devicepolicy/device_policy.proto
index f5f3e47..af30cf3 100644
--- a/media/java/android/media/update/ProviderCreator.java
+++ b/core/proto/android/stats/devicepolicy/device_policy.proto
@@ -1,5 +1,5 @@
 /*
- * Copyright 2018 The Android Open Source Project
+ * 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.
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-package android.media.update;
+syntax = "proto2";
 
-/** @hide */
-@FunctionalInterface
-public interface ProviderCreator<T, U> {
-    U createProvider(T instance);
+package android.stats.devicepolicy;
+option java_multiple_files = true;
+
+message StringList {
+  repeated string string_value = 1;
 }
diff --git a/core/proto/android/stats/devicepolicy/device_policy_enums.proto b/core/proto/android/stats/devicepolicy/device_policy_enums.proto
new file mode 100644
index 0000000..8fbea12
--- /dev/null
+++ b/core/proto/android/stats/devicepolicy/device_policy_enums.proto
@@ -0,0 +1,137 @@
+/*
+ * 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.
+ */
+
+syntax = "proto2";
+
+package android.stats.devicepolicy;
+option java_multiple_files = true;
+
+/**
+ * Id for device policy features.
+ */
+enum EventId {
+  SET_PASSWORD_QUALITY = 1;
+  SET_PASSWORD_MINIMUM_LENGTH = 2;
+  SET_PASSWORD_MINIMUM_NUMERIC = 3;
+  SET_PASSWORD_MINIMUM_NON_LETTER = 4;
+  SET_PASSWORD_MINIMUM_LETTERS = 5;
+  SET_PASSWORD_MINIMUM_LOWER_CASE = 6;
+  SET_PASSWORD_MINIMUM_UPPER_CASE = 7;
+  SET_PASSWORD_MINIMUM_SYMBOLS = 8;
+  SET_KEYGUARD_DISABLED_FEATURES = 9;
+  LOCK_NOW = 10;
+  WIPE_DATA_WITH_REASON = 11;
+  ADD_USER_RESTRICTION = 12;
+  REMOVE_USER_RESTRICTION = 13;
+  SET_SECURE_SETTING = 14;
+  SET_SECURITY_LOGGING_ENABLED = 15;
+  RETRIEVE_SECURITY_LOGS = 16;
+  RETRIEVE_PRE_REBOOT_SECURITY_LOGS = 17;
+  SET_PERMISSION_POLICY = 18;
+  SET_PERMISSION_GRANT_STATE = 19;
+  INSTALL_KEY_PAIR = 20;
+  INSTALL_CA_CERT = 21;
+  ON_CHOOSE_KEY_ALIAS = 22;
+  REMOVE_KEY_PAIR = 23;
+  UNINSTALL_CA_CERTS = 24;
+  SET_CERT_INSTALLER_PACKAGE = 25;
+  SET_ALWAYS_ON_VPN_PACKAGE = 26;
+  SET_PERMITTED_INPUT_METHODS = 27;
+  SET_PERMITTED_ACCESSIBILITY_SERVICES = 28;
+  SET_SCREEN_CAPTURE_DISABLE = 29;
+  SET_CAMERA_DISABLED = 30;
+  QUERY_SUMMARY_FOR_USER = 31;
+  QUERY_SUMMARY = 32;
+  QUERY_DETAILS = 33;
+  REBOOT = 34;
+  SET_MASTER_VOLUME_MUTED = 35;
+  SET_AUTO_TIME_REQUIRED = 36;
+  SET_KEYGUARD_DISABLED = 37;
+  SET_STATUS_BAR_DISABLED = 38;
+  SET_ORGANIZATION_COLOR = 39;
+  SET_PROFILE_NAME = 40;
+  SET_USER_ICON = 41;
+  SET_DEVICE_OWNER_LOCKSCREEN_INFO = 42;
+  SET_SHORT_SUPPORT_MESSAGE = 43;
+  SET_LONG_SUPPORT_MESSAGE = 44;
+  SET_CROSS_PROFILE_CONTACTS_SEARCH_DISABLED = 45;
+  SET_CROSS_PROFILE_CALLER_DISABLED = 46;
+  SET_BLUETOOTH_CONTACT_SHARING_DISABLED = 47;
+  ADD_CROSS_PROFILE_INTENT_FILTER = 48;
+  ADD_CROSS_PROFILE_WIDGET_PROVIDER = 49;
+  SET_SYSTEM_UPDATE_POLICY = 50;
+  SET_LOCKTASK_PACKAGES = 51;
+  ADD_PERSISTENT_PREFERRED_ACTIVITY = 52;
+  REQUEST_BUGREPORT = 53;
+  GET_WIFI_MAC_ADDRESS = 54;
+  REQUEST_QUIET_MODE_ENABLED = 55;
+  WORK_PROFILE_LOCATION_CHANGED = 56;
+  DO_USER_INFO_CLICKED = 57;
+  TRANSFER_OWNERSHIP = 58;
+  GENERATE_KEY_PAIR = 59;
+  SET_KEY_PAIR_CERTIFICATE = 60;
+  SET_KEEP_UNINSTALLED_PACKAGES = 61;
+  SET_APPLICATION_RESTRICTIONS = 62;
+  SET_APPLICATION_HIDDEN = 63;
+  ENABLE_SYSTEM_APP = 64;
+  ENABLE_SYSTEM_APP_WITH_INTENT = 65;
+  INSTALL_EXISTING_PACKAGE = 66;
+  SET_UNINSTALL_BLOCKED = 67;
+  SET_PACKAGES_SUSPENDED = 68;
+  ON_LOCK_TASK_MODE_ENTERING = 69;
+  ADD_CROSS_PROFILE_CALENDAR_PACKAGE = 70;
+  REMOVE_CROSS_PROFILE_CALENDAR_PACKAGE = 71;
+  GET_USER_PASSWORD_COMPLEXITY_LEVEL = 72;
+  INSTALL_SYSTEM_UPDATE = 73;
+  INSTALL_SYSTEM_UPDATE_ERROR = 74;
+  IS_MANAGED_KIOSK = 75;
+  IS_UNATTENDED_MANAGED_KIOSK = 76;
+  PROVISIONING_TO_COMP = 77;
+  PROVISIONING_FORCED_DO = 78;
+
+  // existing Tron logs to be migrated to WestWorld
+  PROVISIONING_ENTRY_POINT_NFC = 79;
+  PROVISIONING_ENTRY_POINT_QR_CODE = 80;
+  PROVISIONING_ENTRY_POINT_ZERO_TOUCH = 81;
+  PROVISIONING_ENTRY_POINT_ADB = 82;
+  PROVISIONING_ENTRY_POINT_TRUSTED_SOURCE = 83;
+  PROVISIONING_DPC_PACKAGE_NAME = 84;
+  PROVISIONING_DPC_INSTALLED_BY_PACKAGE = 85;
+  PROVISIONING_PROVISIONING_ACTIVITY_TIME_MS = 86;
+  PROVISIONING_PREPROVISIONING_ACTIVITY_TIME_MS = 87;
+  PROVISIONING_ENCRYPT_DEVICE_ACTIVITY_TIME_MS = 88;
+  PROVISIONING_WEB_ACTIVITY_TIME_MS = 89;
+  PROVISIONING_TRAMPOLINE_ACTIVITY_TIME_MS = 90;
+  PROVISIONING_POST_ENCRYPTION_ACTIVITY_TIME_MS = 91;
+  PROVISIONING_FINALIZATION_ACTIVITY_TIME_MS = 92;
+  PROVISIONING_NETWORK_TYPE = 93;
+  PROVISIONING_ACTION = 94;
+  PROVISIONING_EXTRAS = 95;
+  PROVISIONING_COPY_ACCOUNT_TASK_MS = 96;
+  PROVISIONING_CREATE_PROFILE_TASK_MS = 97;
+  PROVISIONING_START_PROFILE_TASK_MS = 98;
+  PROVISIONING_DOWNLOAD_PACKAGE_TASK_MS = 99;
+  PROVISIONING_INSTALL_PACKAGE_TASK_MS = 100;
+  PROVISIONING_CANCELLED = 101;
+  PROVISIONING_ERROR = 102;
+  PROVISIONING_COPY_ACCOUNT_STATUS = 103;
+  PROVISIONING_TOTAL_TASK_TIME_MS = 104;
+  PROVISIONING_SESSION_STARTED = 105;
+  PROVISIONING_SESSION_COMPLETED = 106;
+  PROVISIONING_TERMS_ACTIVITY_TIME_MS = 107;
+  PROVISIONING_TERMS_COUNT = 108;
+  PROVISIONING_TERMS_READ = 109;
+}
diff --git a/core/proto/android/stats/devicepolicy/jarjar-rules.txt b/core/proto/android/stats/devicepolicy/jarjar-rules.txt
new file mode 100644
index 0000000..40043a86
--- /dev/null
+++ b/core/proto/android/stats/devicepolicy/jarjar-rules.txt
@@ -0,0 +1 @@
+rule com.google.protobuf.nano.** com.android.framework.protobuf.nano.@1
diff --git a/core/proto/android/telephony/enums.proto b/core/proto/android/telephony/enums.proto
index fba2e51..4777169 100644
--- a/core/proto/android/telephony/enums.proto
+++ b/core/proto/android/telephony/enums.proto
@@ -51,6 +51,7 @@
     NETWORK_TYPE_TD_SCDMA = 17;
     NETWORK_TYPE_IWLAN = 18;
     NETWORK_TYPE_LTE_CA = 19;
+    NETWORK_TYPE_NR = 20;
 }
 
 // Signal strength levels, primarily used by android/telephony/SignalStrength.java.
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 533ce64..df17b4c 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -620,11 +620,20 @@
 
     <protected-broadcast android:name="android.provider.action.DEFAULT_SMS_PACKAGE_CHANGED_INTERNAL" />
 
+    <protected-broadcast android:name="android.intent.action.DEVICE_CUSTOMIZATION_READY" />
+
     <!-- ====================================================================== -->
     <!--                          RUNTIME PERMISSIONS                           -->
     <!-- ====================================================================== -->
     <eat-comment />
 
+    <!-- Grouping for platform runtime permissions is not accessible to apps
+         @hide
+         @SystemApi
+    -->
+    <permission-group android:name="android.permission-group.UNDEFINED"
+        android:priority="100" />
+
     <!-- ====================================================================== -->
     <!-- Permissions for accessing user's contacts including personal profile   -->
     <!-- ====================================================================== -->
@@ -643,14 +652,17 @@
         <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.READ_CONTACTS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_readContacts"
         android:description="@string/permdesc_readContacts"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to write the user's contacts data.
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.WRITE_CONTACTS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_writeContacts"
         android:description="@string/permdesc_writeContacts"
         android:protectionLevel="dangerous" />
@@ -672,14 +684,17 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.READ_CALENDAR"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_readCalendar"
         android:description="@string/permdesc_readCalendar"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to write the user's calendar data.
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.WRITE_CALENDAR"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_writeCalendar"
         android:description="@string/permdesc_writeCalendar"
         android:protectionLevel="dangerous" />
@@ -701,6 +716,7 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.SEND_SMS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_sendSms"
         android:description="@string/permdesc_sendSms"
         android:permissionFlags="costsMoney"
@@ -710,33 +726,41 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.RECEIVE_SMS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_receiveSms"
         android:description="@string/permdesc_receiveSms"
-        android:protectionLevel="dangerous"/>
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to read SMS messages.
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.READ_SMS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_readSms"
         android:description="@string/permdesc_readSms"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to receive WAP push messages.
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.RECEIVE_WAP_PUSH"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_receiveWapPush"
         android:description="@string/permdesc_receiveWapPush"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to monitor incoming MMS messages.
         <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.RECEIVE_MMS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_receiveMms"
         android:description="@string/permdesc_receiveMms"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- @SystemApi @TestApi Allows an application to read previously received cell broadcast
          messages and to register a content observer to get notifications when
@@ -751,9 +775,11 @@
          <p>Protection level: dangerous
          @hide Pending API council approval -->
     <permission android:name="android.permission.READ_CELL_BROADCASTS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_readCellBroadcasts"
         android:description="@string/permdesc_readCellBroadcasts"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- ====================================================================== -->
     <!-- Permissions for accessing external storage                             -->
@@ -792,9 +818,11 @@
      @deprecated replaced by new strongly-typed permission groups in Q.
      -->
     <permission android:name="android.permission.READ_EXTERNAL_STORAGE"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_sdcardRead"
         android:description="@string/permdesc_sdcardRead"
-        android:protectionLevel="normal" />
+        android:protectionLevel="dangerous"
+        android:permissionFlags="removed" />
 
     <!-- Allows an application to write to external storage.
          <p class="note"><strong>Note:</strong> If <em>both</em> your <a
@@ -812,9 +840,11 @@
          @deprecated replaced by new strongly-typed permission groups in Q.
     -->
     <permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_sdcardWrite"
         android:description="@string/permdesc_sdcardWrite"
-        android:protectionLevel="normal" />
+        android:protectionLevel="dangerous"
+        android:permissionFlags="removed" />
 
     <!-- Runtime permission controlling access to the user's shared aural media
          collection. -->
@@ -827,15 +857,11 @@
 
     <!-- Allows an application to read the user's shared audio collection. -->
     <permission android:name="android.permission.READ_MEDIA_AUDIO"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_audioRead"
         android:description="@string/permdesc_audioRead"
-        android:protectionLevel="dangerous" />
-
-    <!-- Allows an application to modify the user's shared audio collection. -->
-    <permission android:name="android.permission.WRITE_MEDIA_AUDIO"
-        android:label="@string/permlab_audioWrite"
-        android:description="@string/permdesc_audioWrite"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Runtime permission controlling access to the user's shared visual media
          collection, including images and videos. -->
@@ -848,34 +874,28 @@
 
     <!-- Allows an application to read the user's shared images collection. -->
     <permission android:name="android.permission.READ_MEDIA_IMAGES"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_imagesRead"
         android:description="@string/permdesc_imagesRead"
-        android:protectionLevel="dangerous" />
-
-    <!-- Allows an application to modify the user's shared images collection. -->
-    <permission android:name="android.permission.WRITE_MEDIA_IMAGES"
-        android:label="@string/permlab_imagesWrite"
-        android:description="@string/permdesc_imagesWrite"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to read the user's shared video collection. -->
     <permission android:name="android.permission.READ_MEDIA_VIDEO"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_videoRead"
         android:description="@string/permdesc_videoRead"
-        android:protectionLevel="dangerous" />
-
-    <!-- Allows an application to modify the user's shared video collection. -->
-    <permission android:name="android.permission.WRITE_MEDIA_VIDEO"
-        android:label="@string/permlab_videoWrite"
-        android:description="@string/permdesc_videoWrite"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to access any geographic locations persisted in the
          user's shared collection. -->
     <permission android:name="android.permission.ACCESS_MEDIA_LOCATION"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_mediaLocation"
         android:description="@string/permdesc_mediaLocation"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- @hide @SystemApi
          Allows an application to modify OBB files visible to other apps. -->
@@ -903,20 +923,24 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.ACCESS_FINE_LOCATION"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_accessFineLocation"
         android:description="@string/permdesc_accessFineLocation"
         android:backgroundPermission="android.permission.ACCESS_BACKGROUND_LOCATION"
-        android:protectionLevel="dangerous|instant" />
+        android:protectionLevel="dangerous|instant"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an app to access approximate location.
          Alternatively, you might want {@link #ACCESS_FINE_LOCATION}.
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.ACCESS_COARSE_LOCATION"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_accessCoarseLocation"
         android:description="@string/permdesc_accessCoarseLocation"
         android:backgroundPermission="android.permission.ACCESS_BACKGROUND_LOCATION"
-        android:protectionLevel="dangerous|instant" />
+        android:protectionLevel="dangerous|instant"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an app to access location in the background.  If you
          are requesting this, you should also request {@link #ACCESS_FINE_LOCATION}.
@@ -925,9 +949,11 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_accessBackgroundLocation"
         android:description="@string/permdesc_accessBackgroundLocation"
-        android:protectionLevel="dangerous|instant" />
+        android:protectionLevel="dangerous|instant"
+        android:usageInfoRequired="true" />
 
     <!-- ====================================================================== -->
     <!-- Permissions for accessing the call log                                 -->
@@ -965,9 +991,11 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.READ_CALL_LOG"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_readCallLog"
         android:description="@string/permdesc_readCallLog"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to write (but not read) the user's
          call log data.
@@ -983,6 +1011,7 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.WRITE_CALL_LOG"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_writeCallLog"
         android:description="@string/permdesc_writeCallLog"
         android:protectionLevel="dangerous" />
@@ -993,9 +1022,11 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.PROCESS_OUTGOING_CALLS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_processOutgoingCalls"
         android:description="@string/permdesc_processOutgoingCalls"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- ====================================================================== -->
     <!-- Permissions for accessing the device telephony                         -->
@@ -1024,23 +1055,28 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.READ_PHONE_STATE"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_readPhoneState"
         android:description="@string/permdesc_readPhoneState"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows read access to the device's phone number(s). This is a subset of the capabilities
          granted by {@link #READ_PHONE_STATE} but is exposed to instant applications.
          <p>Protection level: dangerous-->
     <permission android:name="android.permission.READ_PHONE_NUMBERS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_readPhoneNumbers"
         android:description="@string/permdesc_readPhoneNumbers"
-        android:protectionLevel="dangerous|instant" />
+        android:protectionLevel="dangerous|instant"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an application to initiate a phone call without going through
         the Dialer user interface for the user to confirm the call.
         <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.CALL_PHONE"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:permissionFlags="costsMoney"
         android:label="@string/permlab_callPhone"
         android:description="@string/permdesc_callPhone"
@@ -1050,6 +1086,7 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_addVoicemail"
         android:description="@string/permdesc_addVoicemail"
         android:protectionLevel="dangerous" />
@@ -1058,6 +1095,7 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.USE_SIP"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:description="@string/permdesc_use_sip"
         android:label="@string/permlab_use_sip"
         android:protectionLevel="dangerous"/>
@@ -1066,6 +1104,7 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.ANSWER_PHONE_CALLS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_answerPhoneCalls"
         android:description="@string/permdesc_answerPhoneCalls"
         android:protectionLevel="dangerous|runtime" />
@@ -1093,6 +1132,7 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.ACCEPT_HANDOVER"
+                android:permissionGroup="android.permission-group.UNDEFINED"
                 android.label="@string/permlab_acceptHandover"
                 android:description="@string/permdesc_acceptHandovers"
                 android:protectionLevel="dangerous" />
@@ -1116,9 +1156,11 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.RECORD_AUDIO"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_recordAudio"
         android:description="@string/permdesc_recordAudio"
-        android:protectionLevel="dangerous|instant"/>
+        android:protectionLevel="dangerous|instant"
+        android:usageInfoRequired="true" />
 
     <!-- ====================================================================== -->
     <!-- Permissions for activity recognition                        -->
@@ -1137,9 +1179,11 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.ACTIVITY_RECOGNITION"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_activityRecognition"
         android:description="@string/permdesc_activityRecognition"
-        android:protectionLevel="dangerous|instant" />
+        android:protectionLevel="dangerous|instant"
+        android:usageInfoRequired="true" />
 
     <!-- ====================================================================== -->
     <!-- Permissions for accessing the UCE Service                              -->
@@ -1185,9 +1229,11 @@
          <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.CAMERA"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_camera"
         android:description="@string/permdesc_camera"
-        android:protectionLevel="dangerous|instant" />
+        android:protectionLevel="dangerous|instant"
+        android:usageInfoRequired="true" />
 
 
     <!-- ====================================================================== -->
@@ -1208,9 +1254,11 @@
          measure what is happening inside his/her body, such as heart rate.
          <p>Protection level: dangerous -->
     <permission android:name="android.permission.BODY_SENSORS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:label="@string/permlab_bodySensors"
         android:description="@string/permdesc_bodySensors"
-        android:protectionLevel="dangerous" />
+        android:protectionLevel="dangerous"
+        android:usageInfoRequired="true" />
 
     <!-- Allows an app to use fingerprint hardware.
          <p>Protection level: normal
@@ -1694,9 +1742,11 @@
     <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.GET_ACCOUNTS"
+        android:permissionGroup="android.permission-group.UNDEFINED"
         android:protectionLevel="dangerous"
         android:description="@string/permdesc_getAccounts"
-        android:label="@string/permlab_getAccounts" />
+        android:label="@string/permlab_getAccounts"
+        android:usageInfoRequired="true" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
 
     <!-- @SystemApi Allows applications to call into AccountAuthenticators.
@@ -2467,7 +2517,7 @@
          {@link android.content.pm.PackageManager#addPackageToPreferred}
          for details. -->
     <permission android:name="android.permission.SET_PREFERRED_APPLICATIONS"
-        android:protectionLevel="signature|verifier" />
+        android:protectionLevel="signature|installer|verifier" />
 
     <!-- Allows an application to receive the
          {@link android.content.Intent#ACTION_BOOT_COMPLETED} that is
@@ -2997,12 +3047,12 @@
     <permission android:name="android.permission.BIND_TEXTCLASSIFIER_SERVICE"
                 android:protectionLevel="signature" />
 
-    <!-- Must be required by a android.service.intelligence.IntelligenceService,
+    <!-- Must be required by a android.service.intelligence.SmartSuggestionsService,
          to ensure that only the system can bind to it.
          @SystemApi @hide This is not a third-party API (intended for OEMs and system apps).
          <p>Protection level: signature
     -->
-    <permission android:name="android.permission.BIND_INTELLIGENCE_SERVICE"
+    <permission android:name="android.permission.BIND_SMART_SUGGESTIONS_SERVICE"
                 android:protectionLevel="signature" />
 
     <!-- Must be required by hotword enrollment application,
@@ -3024,6 +3074,13 @@
     <permission android:name="android.permission.BIND_TV_INPUT"
         android:protectionLevel="signature|privileged" />
 
+    <!-- Must be required by an {@link android.service.sms.FinancialSmsService}
+         to ensure that only the system can bind to it.
+         @hide This is not a third-party API (intended for OEMs and system apps).
+    -->
+    <permission android:name="android.permission.BIND_FINANCIAL_SMS_SERVICE"
+                android:protectionLevel="signature" />
+
     <!-- @SystemApi
          Must be required by a {@link com.android.media.tv.remoteprovider.TvRemoteProvider}
          to ensure that only the system can bind to it.
@@ -4113,6 +4170,11 @@
     <permission android:name="android.permission.MANAGE_AUTO_FILL"
         android:protectionLevel="signature" />
 
+    <!-- @SystemApi Allows an application to manage the smart suggestions service.
+         @hide  <p>Not for use by third-party applications.</p> -->
+    <permission android:name="android.permission.MANAGE_SMART_SUGGESTIONS"
+        android:protectionLevel="signature" />
+
     <!-- Allows an app to set the theme overlay in /vendor/overlay
          being used.
          @hide  <p>Not for use by third-party applications.</p> -->
@@ -4201,12 +4263,40 @@
     <!-- @SystemApi Allows modifying accessibility state.
          @hide -->
     <permission android:name="android.permission.MANAGE_ACCESSIBILITY"
-                android:protectionLevel="signature|setup" />
+        android:protectionLevel="signature|setup" />
+
+    <!-- @SystemApi Allows an app to grant a profile owner access to device identifiers.
+         <p>Not for use by third-party applications.
+         @hide -->
+    <permission android:name="android.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS"
+        android:protectionLevel="signature" />
 
     <!-- Allows financial apps to read filtered sms messages. -->
     <permission android:name="android.permission.SMS_FINANCIAL_TRANSACTIONS"
         android:protectionLevel="signature|appop" />
 
+    <!-- Required for apps targeting {@link android.os.Build.VERSION_CODES#P} that want to use
+         {@link android.app.Notification.Builder#setFullScreenIntent notification full screen
+         intents}.  -->
+    <permission android:name="android.permission.USE_FULL_SCREEN_INTENT"
+                android:protectionLevel="normal" />
+
+    <!-- @SystemApi Allows requesting the framework broadcast the
+         {@link Intent#ACTION_DEVICE_CUSTOMIZATION_READY} intent.
+         @hide -->
+    <permission android:name="android.permission.SEND_DEVICE_CUSTOMIZATION_READY"
+        android:protectionLevel="signature|privileged" />
+
+    <!-- @SystemApi Permission that protects the {@link Intent#ACTION_DEVICE_CUSTOMIZATION_READY}
+         intent.
+         @hide -->
+    <permission android:name="android.permission.RECEIVE_DEVICE_CUSTOMIZATION_READY"
+        android:protectionLevel="signature|preinstalled" />
+    <!-- @SystemApi Allows wallpaper to be rendered in ambient mode.
+         @hide -->
+    <permission android:name="android.permission.AMBIENT_WALLPAPER"
+                android:protectionLevel="signature|preinstalled" />
+
     <application android:process="system"
                  android:persistent="true"
                  android:hasCode="false"
@@ -4494,6 +4584,14 @@
             </intent-filter>
         </receiver>
 
+        <receiver android:name="com.android.server.updates.ConversationActionsInstallReceiver"
+                  android:permission="android.permission.UPDATE_CONFIG">
+            <intent-filter>
+                <action android:name="android.intent.action.ACTION_UPDATE_CONVERSATION_ACTIONS" />
+                <data android:scheme="content" android:host="*" android:mimeType="*/*" />
+            </intent-filter>
+        </receiver>
+
         <receiver android:name="com.android.server.updates.CarrierIdInstallReceiver"
                   android:permission="android.permission.UPDATE_CONFIG">
             <intent-filter>
@@ -4518,6 +4616,13 @@
             </intent-filter>
         </receiver>
 
+        <receiver android:name="com.android.server.WallpaperUpdateReceiver"
+                  android:permission="android.permission.RECEIVE_DEVICE_CUSTOMIZATION_READY">
+            <intent-filter>
+                <action android:name="android.intent.action.DEVICE_CUSTOMIZATION_READY"/>
+            </intent-filter>
+        </receiver>
+
         <service android:name="android.hardware.location.GeofenceHardwareService"
             android:permission="android.permission.LOCATION_HARDWARE"
             android:exported="false" />
diff --git a/core/res/res/layout/notification_material_action.xml b/core/res/res/layout/notification_material_action.xml
index 3c9f6ee..c024dbe 100644
--- a/core/res/res/layout/notification_material_action.xml
+++ b/core/res/res/layout/notification_material_action.xml
@@ -16,16 +16,14 @@
   -->
 
 <Button xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@android:style/Widget.Material.Light.Button.Borderless.Small"
+    style="@android:style/NotificationAction"
     android:id="@+id/action0"
     android:layout_width="wrap_content"
     android:layout_height="48dp"
     android:layout_gravity="center"
     android:gravity="start|center_vertical"
     android:layout_marginStart="4dp"
-    android:textColor="@color/notification_default_color"
     android:singleLine="true"
     android:textAlignment="viewStart"
     android:ellipsize="end"
-    android:background="@drawable/notification_material_action_background"
     />
diff --git a/core/res/res/layout/notification_material_action_list.xml b/core/res/res/layout/notification_material_action_list.xml
index 07559f4..4258019 100644
--- a/core/res/res/layout/notification_material_action_list.xml
+++ b/core/res/res/layout/notification_material_action_list.xml
@@ -18,6 +18,7 @@
         android:id="@+id/actions_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/notification_action_list_margin_top"
         android:layout_gravity="bottom">
     <com.android.internal.widget.NotificationActionListLayout
             android:id="@+id/actions"
@@ -27,6 +28,7 @@
             android:orientation="horizontal"
             android:gravity="center_vertical"
             android:visibility="gone"
+            android:background="@color/notification_action_list_background_color"
             >
         <!-- actions will be added here -->
     </com.android.internal.widget.NotificationActionListLayout>
diff --git a/core/res/res/layout/notification_material_action_tombstone.xml b/core/res/res/layout/notification_material_action_tombstone.xml
index 9fa7c6a..f165724 100644
--- a/core/res/res/layout/notification_material_action_tombstone.xml
+++ b/core/res/res/layout/notification_material_action_tombstone.xml
@@ -16,7 +16,7 @@
   -->
 
 <Button xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@android:style/Widget.Material.Light.Button.Borderless.Small"
+    style="@android:style/NotificationTombstoneAction"
     android:id="@+id/action0"
     android:layout_width="wrap_content"
     android:layout_height="48dp"
diff --git a/core/res/res/layout/notification_template_header.xml b/core/res/res/layout/notification_template_header.xml
index 433ae39..4bf1ad6 100644
--- a/core/res/res/layout/notification_template_header.xml
+++ b/core/res/res/layout/notification_template_header.xml
@@ -126,7 +126,6 @@
         android:visibility="gone"
         android:contentDescription="@string/notification_alerted_content_description"
         android:src="@drawable/ic_notifications_alerted"
-        android:tint="@color/notification_secondary_text_color_light"
     />
     <ImageView
         android:id="@+id/profile_badge"
diff --git a/core/res/res/values-night/values.xml b/core/res/res/values-night/values.xml
index 9de8842..a2ad3b9 100644
--- a/core/res/res/values-night/values.xml
+++ b/core/res/res/values-night/values.xml
@@ -20,7 +20,7 @@
         <!-- Color palette -->
         <item name="colorPrimaryDark">@color/primary_dark_device_default_settings</item>
         <item name="colorSecondary">@color/secondary_device_default_settings</item>
-        <item name="colorAccent">@color/white</item>
+        <item name="colorAccent">@color/accent_device_default_dark</item>
         <item name="colorError">@color/error_color_device_default_dark</item>
         <item name="colorControlNormal">?attr/textColorPrimary</item>
         <item name="alertDialogTheme">@style/Theme.DeviceDefault.Dialog.Alert</item>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index a99b942..f55e48e 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -1915,6 +1915,9 @@
         <enum name="KEYCODE_SYSTEM_NAVIGATION_RIGHT" value="283" />
         <enum name="KEYCODE_ALL_APPS" value="284" />
         <enum name="KEYCODE_REFRESH" value="285" />
+        <enum name="KEYCODE_THUMBS_UP" value="286" />
+        <enum name="KEYCODE_THUMBS_DOWN" value="287" />
+        <enum name="KEYCODE_PROFILE_SWITCH" value="288" />
     </attr>
 
     <!-- ***************************************************************** -->
@@ -5532,7 +5535,7 @@
         <attr name="solidColor" format="color|reference" />
         <!-- @hide The divider for making the selection area. -->
         <attr name="selectionDivider" format="reference" />
-        <!-- @hide The height of the selection divider. -->
+        <!-- The height of the selection divider. -->
         <attr name="selectionDividerHeight" format="dimension" />
         <!-- @hide The distance between the two selection dividers. -->
         <attr name="selectionDividersDistance" format="dimension" />
@@ -7935,12 +7938,19 @@
              wallpaper. -->
         <attr name="showMetadataInPreview" format="boolean" />
 
-        <!-- Wallpapers optimized and capable of drawing in ambient mode will return true. -->
+        <!-- Wallpapers optimized and capable of drawing in ambient mode will return true.
+             This feature requires the android.permission.AMBIENT_WALLPAPER permission.
+             @hide @SystemApi -->
         <attr name="supportsAmbientMode" format="boolean" />
 
         <!-- Uri that specifies a settings Slice for this wallpaper. -->
         <attr name="settingsSliceUri" />
 
+        <!-- Indicates that this wallpaper service can support multiple engines to render on each
+             surface independently. An example use case is a multi-display set-up where the
+             wallpaper service can render surfaces to each of the connected displays. -->
+        <attr name="supportsMultipleDisplays" format="boolean" />
+
     </declare-styleable>
 
     <!-- Use <code>dream</code> as the root tag of the XML resource that
@@ -8798,6 +8808,7 @@
         <attr name="layout_ignoreOffset" format="boolean" />
         <attr name="layout_gravity" />
         <attr name="layout_hasNestedScrollIndicator" format="boolean" />
+        <attr name="layout_maxHeight" />
     </declare-styleable>
 
     <!-- @hide -->
@@ -9001,5 +9012,6 @@
         <attr name="magnifierElevation" format="dimension" />
         <attr name="magnifierVerticalOffset" format="dimension" />
         <attr name="magnifierHorizontalOffset" format="dimension" />
+        <attr name="magnifierColorOverlay" format="color" />
     </declare-styleable>
 </resources>
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 6fc0f5b..089c59f 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -1601,6 +1601,10 @@
         <attr name="request" />
         <attr name="protectionLevel" />
         <attr name="permissionFlags" />
+        <!-- If {@code true} applications that target Q <em>must</em> specify the permission usage
+             attributes in their {@code uses-permission} elements or the permission will not be
+             granted. -->
+        <attr name="usageInfoRequired" format="boolean" />
     </declare-styleable>
 
     <!-- The <code>permission-group</code> tag declares a logical grouping of
@@ -1700,6 +1704,81 @@
         requested.  If it does support the feature, it will be as if the manifest didn't
         request it at all. -->
         <attr name="requiredNotFeature" format="string" />
+
+        <!-- Specify if the app uploads data, or derived data, guarded by this permission.
+
+             If the permission is defined with {@link android.R.attr#usageInfoRequired}
+             {@code true} this <em>must</em> be specified by apps that target Android Q or the
+             permission will not be granted, it will be as if the manifest didn't request it at all.
+        -->
+        <attr name="dataSentOffDevice">
+          <!-- The application may send data, or derived data, guarded by this permission off of the
+               device. -->
+          <enum name="yes" value="1" />
+          <!-- The application may send data, or derived data, guarded by this permission off of the
+               device, however it will only do so when explicitly triggered by a user action. -->
+          <enum name="userTriggered" value="2" />
+          <!-- The application does not send data, or derived data, guarded by this permission off
+               of the device. -->
+          <enum name="no" value="3" />
+        </attr>
+
+        <!-- Specify if the application or its related off-device services provide data,
+             or derived data, guarded by this permission to third parties outside of the developer's
+             organization that do not qualify as data processors.
+
+             If the permission is defined with {@link android.R.attr#usageInfoRequired}
+             {@code true} this <em>must</em> be specified by apps that target Android Q or the
+             permission will not be granted, it will be as if the manifest didn't request it at all.
+             -->
+        <attr name="dataSharedWithThirdParty">
+          <!-- The application or its services may provide data, or derived data, guarded by this
+               permission to third party organizations. -->
+          <enum name="yes" value="1" />
+          <!-- The application or its services may provide data, or derived data, guarded by this
+               permission to third party organizations, however it will only do so when explicitly
+               triggered by a user action. -->
+          <enum name="userTriggered" value="2" />
+          <!-- The application or its services does not provide data, or derived data, guarded by
+               this permission to third party organizations. -->
+          <enum name="no" value="3" />
+        </attr>
+
+        <!-- Specify if the application or its related off-device services use data,
+             or derived data, guarded by this permission for monetization purposes.
+
+             For example, if the data is sold to another party or used for targeting advertisements
+             this must be set to {@code yes}.
+
+             If the permission is defined with {@link android.R.attr#usageInfoRequired}
+             {@code true} this <em>must</em> be specified by apps that target Android Q or the
+             permission will not be granted, it will be as if the manifest didn't request it at all.
+             -->
+        <attr name="dataUsedForMonetization">
+          <!-- The application or its services may use data, or derived data, guarded by this
+               permission for monetization purposes. -->
+          <enum name="yes" value="1" />
+          <!-- The application or its services may use data, or derived data, guarded by this
+               permission for monetization purposes, however it will only do so when explicity
+               triggered by a user action. -->
+          <enum name="userTriggered" value="2" />
+          <!--  The application or its services does not use data, or derived data, guarded by
+                this permission for monetization purposes. -->
+          <enum name="no" value="3" />
+        </attr>
+
+        <!-- Specify how long the application or its related off-device services store
+             data, or derived data, guarded by this permission.
+
+             This can be one of "notRetained", "userSelected", "unlimited", or a number
+             representing the number of weeks the data is retained.
+
+             If the permission is defined with {@link android.R.attr#usageInfoRequired}
+             {@code true} this <em>must</em> be specified by apps that target Android Q or the
+             permission will not be granted, it will be as if the manifest didn't request it at all.
+             -->
+        <attr name="dataRetentionTime" format="string" />
+
     </declare-styleable>
 
     <!-- The <code>uses-configuration</code> tag specifies
@@ -2148,6 +2227,21 @@
         <attr name="visibleToInstantApps" />
         <!-- The code for this component is located in the given split. -->
         <attr name="splitName" />
+        <!-- If true, and this is an {@link android.R.attr#isolatedProcess} service, the service
+             will be spawned from an Application Zygote, instead of the regular Zygote.
+             <p>
+             The Application Zygote will pre-initialize the application's class loader,
+             and call a static callback into the application to allow it to perform
+             application-specific preloads (such as loading a shared library). Therefore,
+             spawning from the Application Zygote will typically reduce the service
+             launch time and reduce its memory usage. The downside of using this flag
+             is that you will have an additional process (the app zygote itself) that
+             is taking up memory. Whether actual memory usage is improved therefore strongly
+             depends on the number of isolated services that an application starts,
+             and how much memory those services save by preloading. Therefore, it is
+             recommended to measure memory usage under typical workloads to determine
+             whether it makes sense to use this flag. -->
+        <attr name="useAppZygote" format="boolean" />
     </declare-styleable>
 
     <!-- The <code>receiver</code> tag declares an
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index 79a7b90..16c0744 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -146,10 +146,14 @@
 
     <color name="notification_default_color">#757575</color> <!-- Gray 600 -->
 
+    <color name="notification_action_button_text_color">@color/notification_default_color</color>
+
     <color name="notification_progress_background_color">@color/secondary_text_material_light</color>
 
     <color name="notification_action_list">#ffeeeeee</color>
 
+    <color name="notification_action_list_background_color">@null</color>
+
     <!-- Keyguard colors -->
     <color name="keyguard_avatar_frame_color">#ffffffff</color>
     <color name="keyguard_avatar_frame_shadow_color">#80000000</color>
@@ -209,4 +213,8 @@
     <!-- FloatingToolbar -->
     <color name="floating_popup_divider_dark">#2F2F2F</color>
     <color name="floating_popup_divider_light">#E9E9E9</color>
+
+    <!-- Magnifier -->
+    <color name="default_magnifier_color_overlay">#00FFFFFF</color>
+
 </resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 829d6f5..0cd6bc5 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -364,7 +364,7 @@
 
     <!-- Max number of Bluetooth tethering connections allowed. If this is
          updated config_tether_dhcp_range has to be updated appropriately. -->
-    <integer translateable="false" name="config_max_pan_devices">5</integer>
+    <integer translatable="false" name="config_max_pan_devices">5</integer>
 
     <!-- Dhcp range (min, max) to use for tethering purposes -->
     <string-array translatable="false" name="config_tether_dhcp_range">
@@ -2125,6 +2125,9 @@
          during initialization when the setting is still null. -->
     <bool name="config_dozeAlwaysOnEnabled">true</bool>
 
+    <!-- If AOD can show an ambient version of the wallpaper -->
+    <bool name="config_dozeSupportsAodWallpaper">true</bool>
+
     <!-- Whether the display blanks itself when transitioning from a doze to a non-doze state -->
     <bool name="config_displayBlanksAfterDoze">false</bool>
 
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index b65c0fd..05a156b 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -200,6 +200,9 @@
     <!-- The height of the notification action list -->
     <dimen name="notification_action_list_height">60dp</dimen>
 
+    <!-- The margin of the notification action list at the top -->
+    <dimen name="notification_action_list_margin_top">0dp</dimen>
+
     <!-- The height of the notification action list -->
     <dimen name="notification_action_emphasized_height">48dp</dimen>
 
@@ -427,7 +430,7 @@
     <dimen name="notification_badge_size">12dp</dimen>
 
     <!-- Size of the alerted icon for notifications -->
-    <dimen name="notification_alerted_size">18dp</dimen>
+    <dimen name="notification_alerted_size">12dp</dimen>
 
     <!-- Keyguard dimensions -->
     <!-- TEMP -->
@@ -578,12 +581,13 @@
     <dimen name="floating_toolbar_icon_text_spacing">8dp</dimen>
 
     <!-- Magnifier dimensions -->
-    <dimen name="magnifier_width">100dp</dimen>
-    <dimen name="magnifier_height">48dp</dimen>
-    <dimen name="magnifier_elevation">4dp</dimen>
-    <dimen name="magnifier_vertical_offset">-42dp</dimen>
-    <dimen name="magnifier_horizontal_offset">0dp</dimen>
-    <item type="dimen" format="float" name="magnifier_zoom">1.25</item>
+    <dimen name="default_magnifier_width">100dp</dimen>
+    <dimen name="default_magnifier_height">48dp</dimen>
+    <dimen name="default_magnifier_elevation">4dp</dimen>
+    <dimen name="default_magnifier_corner_radius">2dp</dimen>
+    <dimen name="default_magnifier_vertical_offset">-42dp</dimen>
+    <dimen name="default_magnifier_horizontal_offset">0dp</dimen>
+    <item type="dimen" format="float" name="default_magnifier_zoom">1.25</item>
 
     <dimen name="chooser_grid_padding">0dp</dimen>
     <!-- Spacing around the background change frome service to non-service -->
diff --git a/core/res/res/values/ids.xml b/core/res/res/values/ids.xml
index 64e5bc0..bbe3ff9 100644
--- a/core/res/res/values/ids.xml
+++ b/core/res/res/values/ids.xml
@@ -190,4 +190,7 @@
 
   <!-- A tag used to save the view added to a transition overlay -->
   <item type="id" name="transition_overlay_view_tag" />
+
+  <!-- A tag used to save the notification action object -->
+  <item type="id" name="notification_action_index_tag" />
 </resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 73dae08..5e8af62 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2909,6 +2909,7 @@
         <public name="opticalInsetRight" />
         <public name="opticalInsetBottom" />
         <public name="forceDarkAllowed" />
+        <!-- @hide @SystemApi -->
         <public name="supportsAmbientMode" />
         <!-- @hide For use by platform and tools only. Developers should not specify this value. -->
         <public name="usesNonSdkApi" />
@@ -2920,6 +2921,14 @@
         <public name="shell" />
         <public name="interactiveUiTimeout" />
         <public name="importantForContentCapture" />
+        <public name="supportsMultipleDisplays" />
+        <public name="useAppZygote" />
+        <public name="usageInfoRequired" />
+        <public name="dataSentOffDevice" />
+        <public name="dataSharedWithThirdParty" />
+        <public name="dataUsedForMonetization" />
+        <public name="dataRetentionTime" />
+        <public name="selectionDividerHeight" />
     </public-group>
 
     <public-group type="drawable" first-id="0x010800b4">
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 200c35d..a33f6b2 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1444,9 +1444,14 @@
 
     <!-- Title shown when the system-provided biometric dialog is shown, asking the user to authenticate. [CHAR LIMIT=40] -->
     <string name="biometric_dialog_default_title">Application <xliff:g id="app" example="Gmail">%s</xliff:g> wants to authenticate.</string>
-
     <!-- Message shown when biometric hardware is not available [CHAR LIMIT=50] -->
     <string name="biometric_error_hw_unavailable">Biometric hardware unavailable</string>
+    <!-- Message shown when biometric authentication was canceled by the user [CHAR LIMIT=50] -->
+    <string name="biometric_error_user_canceled">Authentication canceled</string>
+    <!-- Message shown by the biometric dialog when biometric is not recognized -->
+    <string name="biometric_not_recognized">Not recognized</string>
+    <!-- Message shown when biometric authentication has been canceled [CHAR LIMIT=50] -->
+    <string name="biometric_error_canceled">Authentication canceled</string>
 
     <!-- Message shown during fingerprint acquisision when the fingerprint cannot be recognized -->
     <string name="fingerprint_acquired_partial">Partial fingerprint detected. Please try again.</string>
@@ -1462,8 +1467,6 @@
     <string-array name="fingerprint_acquired_vendor">
     </string-array>
 
-    <!-- Message shown by the biometric dialog when biometric is not recognized -->
-    <string name="biometric_not_recognized">Not recognized</string>
     <!-- Accessibility message announced when a fingerprint has been authenticated [CHAR LIMIT=NONE] -->
     <string name="fingerprint_authenticated">Fingerprint authenticated</string>
     <!-- Accessibility message announced when a face has been authenticated [CHAR LIMIT=NONE] -->
@@ -1585,23 +1588,15 @@
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_readSyncStats">Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced. </string>
 
-    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
-    <string name="permlab_sdcardRead" product="nosdcard">read the contents of your USB storage</string>
-    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permlab_sdcardRead" product="default">read the contents of your SD card</string>
-    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
-    <string name="permdesc_sdcardRead" product="nosdcard">Allows the app to read the contents of your USB storage.</string>
-    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_sdcardRead" product="default">Allows the app to read the contents of your SD card.</string>
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. "shared storage" refers to a storage space on the device that all apps with this permission can read from. [CHAR LIMIT=none] -->
+    <string name="permlab_sdcardRead">read the contents of your shared storage</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. "shared storage" refers to a storage space on the device that all apps with this permission can read from. [CHAR LIMIT=none] -->
+    <string name="permdesc_sdcardRead">Allows the app to read the contents of your shared storage.</string>
 
-    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
-    <string name="permlab_sdcardWrite" product="nosdcard">modify or delete the contents of your USB storage</string>
-    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permlab_sdcardWrite" product="default">modify or delete the contents of your SD card</string>
-    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
-    <string name="permdesc_sdcardWrite" product="nosdcard">Allows the app to write to the USB storage.</string>
-    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_sdcardWrite" product="default">Allows the app to write to the SD card.</string>
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. "shared storage" refers to a storage space on the device that all apps with this permission can write to. [CHAR LIMIT=none] -->
+    <string name="permlab_sdcardWrite">modify or delete the contents of your shared storage</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. "shared storage" refers to a storage space on the device that all apps with this permission can write to. [CHAR LIMIT=none] -->
+    <string name="permdesc_sdcardWrite">Allows the app to write the contents of your shared storage.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_use_sip">make/receive SIP calls</string>
@@ -2989,6 +2984,18 @@
     <!-- Accessibility description for an item in the text selection menu to track a flight [CHAR LIMIT=NONE] -->
     <string name="view_flight_desc">Track selected flight</string>
 
+    <!-- Label for item in the text selection menu to translate selected text with a translation app. Should be a verb. [CHAR LIMIT=30] -->
+    <string name="translate">Translate</string>
+
+    <!-- Accessibility description for an item in the text selection menu to translate selected text with a translation app. [CHAR LIMIT=NONE] -->
+    <string name="translate_desc">Translate selected text</string>
+
+    <!-- Label for item in the text selection menu to define selected text with a dictionary app. Should be a verb. [CHAR LIMIT=30] -->
+    <string name="define">Define</string>
+
+    <!-- Accessibility description for an item in the text selection menu to define selected text with a dictionary app. Should be a verb. [CHAR LIMIT=NONE] -->
+    <string name="define_desc">Define selected text</string>
+
     <!-- If the device is getting low on internal storage, a notification is shown to the user.  This is the title of that notification. -->
     <string name="low_internal_storage_view_title">Storage space running out</string>
     <!-- If the device is getting low on internal storage, a notification is shown to the user.  This is the message of that notification. -->
@@ -3867,10 +3874,8 @@
     <string name="action_mode_done">Done</string>
 
     <!-- Strings for MasterClearReceiver. -->
-    <!-- Text for progress dialog while erasing USB storage volume [CHAR LIMIT=NONE] -->
-    <string name="progress_erasing" product="nosdcard">Erasing USB storage\u2026</string>
-    <!-- Text for progress dialog while erasing SD card [CHAR LIMIT=NONE] -->
-    <string name="progress_erasing" product="default">Erasing SD card\u2026</string>
+    <!-- Text for progress dialog while erasing the shared storage volume [CHAR LIMIT=NONE] -->
+    <string name="progress_erasing">Erasing shared storage\u2026</string>
 
     <!-- Text for WebView's text selection Action Mode -->
     <!-- ActionBar action to share the current selection [CHAR LIMIT=10] -->
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index ef286e2..18f7e48 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -800,12 +800,13 @@
     </style>
 
     <style name="Widget.Magnifier">
-        <item name="magnifierWidth">@dimen/magnifier_width</item>
-        <item name="magnifierHeight">@dimen/magnifier_height</item>
-        <item name="magnifierZoom">@dimen/magnifier_zoom</item>
-        <item name="magnifierElevation">@dimen/magnifier_elevation</item>
-        <item name="magnifierVerticalOffset">@dimen/magnifier_vertical_offset</item>
-        <item name="magnifierHorizontalOffset">@dimen/magnifier_horizontal_offset</item>
+        <item name="magnifierWidth">100dp</item>
+        <item name="magnifierHeight">48dp</item>
+        <item name="magnifierZoom">1.25</item>
+        <item name="magnifierElevation">4dp</item>
+        <item name="magnifierVerticalOffset">-42dp</item>
+        <item name="magnifierHorizontalOffset">0dp</item>
+        <item name="magnifierColorOverlay">#0EFFFFFF</item>
     </style>
 
     <!-- Text Appearances -->
@@ -1525,10 +1526,22 @@
         <item name="gravity">top</item>
     </style>
 
-    <!-- Colored bordered ink button -->
+    <!-- The style for normal action button on notification -->
+    <style name="NotificationAction" parent="Widget.Material.Light.Button.Borderless.Small">
+      <item name="textColor">@color/notification_action_button_text_color</item>
+      <item name="background">@drawable/notification_material_action_background</item>
+    </style>
+
+    <!-- The style for emphasized action button on notification: Colored bordered ink button -->
     <style name="NotificationEmphasizedAction" parent="Widget.Material.Button">
         <item name="background">@drawable/btn_notification_emphasized</item>
         <item name="stateListAnimator">@anim/flat_button_state_list_anim_material</item>
     </style>
 
+    <!-- The style for disabled action button on notification -->
+    <style name="NotificationTombstoneAction" parent="NotificationAction">
+      <item name="textColor">#555555</item>
+    </style>
+
+
 </resources>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 626206b..01422c8 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -574,6 +574,10 @@
   <java-symbol type="string" name="add_calendar_event_desc" />
   <java-symbol type="string" name="view_flight" />
   <java-symbol type="string" name="view_flight_desc" />
+  <java-symbol type="string" name="translate" />
+  <java-symbol type="string" name="translate_desc" />
+  <java-symbol type="string" name="define" />
+  <java-symbol type="string" name="define_desc" />
   <java-symbol type="string" name="textSelectionCABTitle" />
   <java-symbol type="string" name="BaMmi" />
   <java-symbol type="string" name="CLIRDefaultOffNextCallOff" />
@@ -2402,7 +2406,9 @@
   <!-- Biometric messages -->
   <java-symbol type="string" name="biometric_dialog_default_title" />
   <java-symbol type="string" name="biometric_error_hw_unavailable" />
+  <java-symbol type="string" name="biometric_error_user_canceled" />
   <java-symbol type="string" name="biometric_not_recognized" />
+  <java-symbol type="string" name="biometric_error_canceled" />
 
   <!-- Fingerprint messages -->
   <java-symbol type="string" name="fingerprint_error_unable_to_process" />
@@ -2637,18 +2643,21 @@
   <java-symbol type="attr" name="floatingToolbarDividerColor" />
 
   <!-- Magnifier -->
-  <java-symbol type="dimen" name="magnifier_width" />
-  <java-symbol type="dimen" name="magnifier_height" />
-  <java-symbol type="dimen" name="magnifier_elevation" />
-  <java-symbol type="dimen" name="magnifier_zoom" />
-  <java-symbol type="dimen" name="magnifier_vertical_offset" />
-  <java-symbol type="dimen" name="magnifier_horizontal_offset" />
+  <java-symbol type="dimen" name="default_magnifier_width" />
+  <java-symbol type="dimen" name="default_magnifier_height" />
+  <java-symbol type="dimen" name="default_magnifier_elevation" />
+  <java-symbol type="dimen" name="default_magnifier_corner_radius" />
+  <java-symbol type="dimen" name="default_magnifier_zoom" />
+  <java-symbol type="dimen" name="default_magnifier_vertical_offset" />
+  <java-symbol type="dimen" name="default_magnifier_horizontal_offset" />
+  <java-symbol type="color" name="default_magnifier_color_overlay" />
   <java-symbol type="attr" name="magnifierWidth" />
   <java-symbol type="attr" name="magnifierHeight" />
   <java-symbol type="attr" name="magnifierElevation" />
   <java-symbol type="attr" name="magnifierZoom" />
   <java-symbol type="attr" name="magnifierVerticalOffset" />
   <java-symbol type="attr" name="magnifierHorizontalOffset" />
+  <java-symbol type="attr" name="magnifierColorOverlay" />
   <java-symbol type="attr" name="magnifierStyle" />
 
   <java-symbol type="string" name="date_picker_prev_month_button" />
@@ -2676,6 +2685,7 @@
   <java-symbol type="id" name="smart_reply_container" />
   <java-symbol type="id" name="remote_input_tag" />
   <java-symbol type="id" name="pending_intent_tag" />
+  <java-symbol type="id" name="notification_action_index_tag" />
 
   <java-symbol type="attr" name="seekBarDialogPreferenceStyle" />
   <java-symbol type="string" name="ext_media_status_removed" />
@@ -3300,6 +3310,7 @@
   <java-symbol type="integer" name="config_autoGroupAtCount" />
   <java-symbol type="bool" name="config_dozeAlwaysOnDisplayAvailable" />
   <java-symbol type="bool" name="config_dozeAlwaysOnEnabled" />
+  <java-symbol type="bool" name="config_dozeSupportsAodWallpaper" />
   <java-symbol type="bool" name="config_displayBlanksAfterDoze" />
   <java-symbol type="bool" name="config_displayBrightnessBucketsInDoze" />
   <java-symbol type="integer" name="config_storageManagerDaystoRetainDefault" />
@@ -3491,4 +3502,8 @@
   <java-symbol type="string" name="config_defaultAssistantComponentName" />
 
   <java-symbol type="id" name="transition_overlay_view_tag" />
+
+  <java-symbol type="dimen" name="rounded_corner_radius" />
+  <java-symbol type="dimen" name="rounded_corner_radius_top" />
+  <java-symbol type="dimen" name="rounded_corner_radius_bottom" />
 </resources>
diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml
index f60d8d0ad..46d4a47 100644
--- a/core/tests/coretests/AndroidManifest.xml
+++ b/core/tests/coretests/AndroidManifest.xml
@@ -91,6 +91,8 @@
     <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
     <uses-permission android:name="android.permission.KILL_UID" />
 
+    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
+
     <!-- location test permissions -->
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
     <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
@@ -1316,6 +1318,12 @@
         <service android:name="android.os.BinderThreadPriorityService"
                 android:process=":BinderThreadPriorityService" />
 
+        <!-- Used by BinderWorkSourceTest -->
+        <service android:name="android.os.BinderWorkSourceService"
+                android:process=":BinderWorkSourceService" />
+        <service android:name="android.os.BinderWorkSourceNestedService"
+                android:process=":BinderWorkSourceNestedService" />
+
         <!-- Application components used for search manager tests -->
 
         <activity android:name="android.app.activity.SearchableActivity"
diff --git a/core/tests/coretests/src/android/app/NotificationTest.java b/core/tests/coretests/src/android/app/NotificationTest.java
index e1cb911..e89a4d3 100644
--- a/core/tests/coretests/src/android/app/NotificationTest.java
+++ b/core/tests/coretests/src/android/app/NotificationTest.java
@@ -106,9 +106,9 @@
         int backgroundColor = 0xff585868;
         int initialForegroundColor = 0xff505868;
         builder.setColorPalette(backgroundColor, initialForegroundColor);
-        int primaryTextColor = builder.getPrimaryTextColor();
+        int primaryTextColor = builder.getPrimaryTextColor(builder.mParams);
         assertTrue(satisfiesTextContrast(primaryTextColor, backgroundColor));
-        int secondaryTextColor = builder.getSecondaryTextColor();
+        int secondaryTextColor = builder.getSecondaryTextColor(builder.mParams);
         assertTrue(satisfiesTextContrast(secondaryTextColor, backgroundColor));
     }
 
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
index a317c99..8ac9451d 100644
--- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
+++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
@@ -364,9 +364,7 @@
 
     private int getInstallLoc(int flags, int expInstallLocation, long pkgLen) {
         // Flags explicitly over ride everything else.
-        if ((flags & PackageManager.INSTALL_EXTERNAL) != 0) {
-            return INSTALL_LOC_SD;
-        } else if ((flags & PackageManager.INSTALL_INTERNAL) != 0) {
+        if ((flags & PackageManager.INSTALL_INTERNAL) != 0) {
             return INSTALL_LOC_INT;
         }
         // Manifest option takes precedence next
@@ -437,8 +435,6 @@
 
             int rLoc = getInstallLoc(flags, expInstallLocation, pkgLen);
             if (rLoc == INSTALL_LOC_INT) {
-                assertFalse(
-                        (info.privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0);
                 assertEquals(appInstallPath, srcPath);
                 assertEquals(appInstallPath, publicSrcPath);
                 assertStartsWith("Native library should point to shared lib directory",
@@ -461,8 +457,6 @@
                     }
                 }
             } else if (rLoc == INSTALL_LOC_SD) {
-                assertFalse("The application should not be installed forward locked",
-                        (info.privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0);
                 assertTrue("Application flags (" + info.flags
                         + ") should contain FLAG_EXTERNAL_STORAGE",
                         (info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0);
@@ -845,31 +839,10 @@
     }
 
     @LargeTest
-    public void testReplaceFailSdcard() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        sampleReplaceFromRawResource(PackageManager.INSTALL_EXTERNAL);
-    }
-
-    @LargeTest
     public void testReplaceNormalInternal() throws Exception {
         sampleReplaceFromRawResource(PackageManager.INSTALL_REPLACE_EXISTING);
     }
 
-    @LargeTest
-    public void testReplaceSdcard() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        sampleReplaceFromRawResource(PackageManager.INSTALL_REPLACE_EXISTING
-                | PackageManager.INSTALL_EXTERNAL);
-    }
-
     /* -------------- Delete tests --- */
     private static class DeleteObserver extends IPackageDeleteObserver.Stub {
         private CountDownLatch mLatch = new CountDownLatch(1);
@@ -1015,31 +988,12 @@
         deleteFromRawResource(0, 0);
     }
 
-    @LargeTest
-    public void testDeleteSdcard() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        deleteFromRawResource(PackageManager.INSTALL_EXTERNAL, 0);
-    }
 
     @LargeTest
     public void testDeleteNormalInternalRetainData() throws Exception {
         deleteFromRawResource(0, PackageManager.DELETE_KEEP_DATA);
     }
 
-    @LargeTest
-    public void testDeleteSdcardRetainData() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        deleteFromRawResource(PackageManager.INSTALL_EXTERNAL, PackageManager.DELETE_KEEP_DATA);
-    }
-
     void cleanUpInstall(InstallParams ip) throws Exception {
         if (ip == null) {
             return;
@@ -1104,60 +1058,6 @@
                 0, true, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED);
     }
 
-    /*
-     * Install a package on internal flash via PackageManager install flag. Replace
-     * the package via flag to install on sdcard. Make sure the new flag overrides
-     * the old install location.
-     */
-    @LargeTest
-    public void testReplaceFlagInternalSdcard() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int iFlags = 0;
-        int rFlags = PackageManager.INSTALL_EXTERNAL;
-        InstallParams ip = sampleInstallFromRawResource(iFlags, false);
-        GenericReceiver receiver = new ReplaceReceiver(ip.pkg.packageName);
-        int replaceFlags = rFlags | PackageManager.INSTALL_REPLACE_EXISTING;
-        try {
-            invokeInstallPackage(ip.packageURI, replaceFlags, receiver, true);
-            assertInstall(ip.pkg, rFlags, ip.pkg.installLocation);
-        } catch (Exception e) {
-            failStr("Failed with exception : " + e);
-        } finally {
-            cleanUpInstall(ip);
-        }
-    }
-
-    /*
-     * Install a package on sdcard via PackageManager install flag. Replace
-     * the package with no flags or manifest option and make sure the old
-     * install location is retained.
-     */
-    @LargeTest
-    public void testReplaceFlagSdcardInternal() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        int rFlags = 0;
-        InstallParams ip = sampleInstallFromRawResource(iFlags, false);
-        GenericReceiver receiver = new ReplaceReceiver(ip.pkg.packageName);
-        int replaceFlags = rFlags | PackageManager.INSTALL_REPLACE_EXISTING;
-        try {
-            invokeInstallPackage(ip.packageURI, replaceFlags, receiver, true);
-            assertInstall(ip.pkg, iFlags, ip.pkg.installLocation);
-        } catch (Exception e) {
-            failStr("Failed with exception : " + e);
-        } finally {
-            cleanUpInstall(ip);
-        }
-    }
-
     @LargeTest
     public void testManifestInstallLocationReplaceInternalSdcard() throws Exception {
         // Do not run on devices with emulated external storage.
@@ -1375,34 +1275,6 @@
     }
 
     @LargeTest
-    public void testMoveAppExternalToExternal() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int installFlags = PackageManager.INSTALL_EXTERNAL;
-        int moveFlags = PackageManager.MOVE_EXTERNAL_MEDIA;
-        boolean fail = true;
-        int result = PackageManager.MOVE_FAILED_INVALID_LOCATION;
-        sampleMoveFromRawResource(installFlags, moveFlags, fail, result);
-    }
-
-    @LargeTest
-    public void testMoveAppExternalToInternal() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int installFlags = PackageManager.INSTALL_EXTERNAL;
-        int moveFlags = PackageManager.MOVE_INTERNAL;
-        boolean fail = false;
-        int result = PackageManager.MOVE_SUCCEEDED;
-        sampleMoveFromRawResource(installFlags, moveFlags, fail, result);
-    }
-
-    @LargeTest
     public void testMoveAppFailInternalToExternalDelete() throws Exception {
         // Do not run on devices with emulated external storage.
         if (Environment.isExternalStorageEmulated()) {
@@ -1458,19 +1330,6 @@
     }
 
     /*
-     * Install an app on sdcard.
-     */
-    @LargeTest
-    public void testFlagE() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        sampleInstallFromRawResource(PackageManager.INSTALL_EXTERNAL, true);
-    }
-
-    /*
      * Install an app with both internal and manifest option set.
      * should install on internal.
      */
@@ -1506,59 +1365,6 @@
                 false, -1,
                 PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY);
     }
-    /*
-     * Install an app with both external and manifest option set.
-     * should install externally.
-     */
-    @LargeTest
-    public void testFlagEManifestI() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        installFromRawResource("install.apk", R.raw.install_loc_internal,
-                PackageManager.INSTALL_EXTERNAL,
-                true,
-                false, -1,
-                PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL);
-    }
-
-    /*
-     * Install an app with both external and manifest preference for
-     * preferExternal. Should install externally.
-     */
-    @LargeTest
-    public void testFlagEManifestE() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        installFromRawResource("install.apk", R.raw.install_loc_sdcard,
-                PackageManager.INSTALL_EXTERNAL,
-                true,
-                false, -1,
-                PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL);
-    }
-
-    /*
-     * Install an app with both external and manifest preference for
-     * auto. should install on external media.
-     */
-    @LargeTest
-    public void testFlagEManifestA() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        installFromRawResource("install.apk", R.raw.install_loc_auto,
-                PackageManager.INSTALL_EXTERNAL,
-                true,
-                false, -1,
-                PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL);
-    }
 
     /*
      * The following test functions verify install location for existing apps.
@@ -1586,75 +1392,6 @@
                 -1);
     }
 
-    @LargeTest
-    public void testFlagIExistingE() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        int rFlags = PackageManager.INSTALL_INTERNAL | PackageManager.INSTALL_REPLACE_EXISTING;
-        // First install.
-        installFromRawResource("install.apk", R.raw.install,
-                iFlags,
-                false,
-                false, -1,
-                -1);
-        // Replace now
-        installFromRawResource("install.apk", R.raw.install,
-                rFlags,
-                true,
-                false, -1,
-                -1);
-    }
-
-    @LargeTest
-    public void testFlagEExistingI() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int iFlags = PackageManager.INSTALL_INTERNAL;
-        int rFlags = PackageManager.INSTALL_EXTERNAL | PackageManager.INSTALL_REPLACE_EXISTING;
-        // First install.
-        installFromRawResource("install.apk", R.raw.install,
-                iFlags,
-                false,
-                false, -1,
-                -1);
-        // Replace now
-        installFromRawResource("install.apk", R.raw.install,
-                rFlags,
-                true,
-                false, -1,
-                -1);
-    }
-
-    @LargeTest
-    public void testFlagEExistingE() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        int rFlags = PackageManager.INSTALL_EXTERNAL | PackageManager.INSTALL_REPLACE_EXISTING;
-        // First install.
-        installFromRawResource("install.apk", R.raw.install,
-                iFlags,
-                false,
-                false, -1,
-                -1);
-        // Replace now
-        installFromRawResource("install.apk", R.raw.install,
-                rFlags,
-                true,
-                false, -1,
-                -1);
-    }
-
     /*
      * The following set of tests verify the installation of apps with
      * install location attribute set to internalOnly, preferExternal and auto.
@@ -1720,29 +1457,6 @@
     }
 
     @LargeTest
-    public void testManifestIExistingE() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        int rFlags = PackageManager.INSTALL_REPLACE_EXISTING;
-        // First install.
-        installFromRawResource("install.apk", R.raw.install,
-                iFlags,
-                false,
-                false, -1,
-                -1);
-        // Replace now
-        installFromRawResource("install.apk", R.raw.install_loc_internal,
-                rFlags,
-                true,
-                false, -1,
-                PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY);
-    }
-
-    @LargeTest
     public void testManifestEExistingI() throws Exception {
         // Do not run on devices with emulated external storage.
         if (Environment.isExternalStorageEmulated()) {
@@ -1766,29 +1480,6 @@
     }
 
     @LargeTest
-    public void testManifestEExistingE() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        int rFlags = PackageManager.INSTALL_REPLACE_EXISTING;
-        // First install.
-        installFromRawResource("install.apk", R.raw.install,
-                iFlags,
-                false,
-                false, -1,
-                -1);
-        // Replace now
-        installFromRawResource("install.apk", R.raw.install_loc_sdcard,
-                rFlags,
-                true,
-                false, -1,
-                PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL);
-    }
-
-    @LargeTest
     public void testManifestAExistingI() throws Exception {
         int iFlags = PackageManager.INSTALL_INTERNAL;
         int rFlags = PackageManager.INSTALL_REPLACE_EXISTING;
@@ -1806,29 +1497,6 @@
                 PackageInfo.INSTALL_LOCATION_AUTO);
     }
 
-    @LargeTest
-    public void testManifestAExistingE() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        int rFlags = PackageManager.INSTALL_REPLACE_EXISTING;
-        // First install.
-        installFromRawResource("install.apk", R.raw.install,
-                iFlags,
-                false,
-                false, -1,
-                -1);
-        // Replace now
-        installFromRawResource("install.apk", R.raw.install_loc_auto,
-                rFlags,
-                true,
-                false, -1,
-                PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL);
-    }
-
     /*
      * The following set of tests check install location for existing
      * application based on user setting.
@@ -1896,42 +1564,6 @@
         setExistingXUserX(userSetting, iFlags, PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY);
     }
 
-    @LargeTest
-    public void testExistingEUserI() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int userSetting = PackageHelper.APP_INSTALL_INTERNAL;
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        setExistingXUserX(userSetting, iFlags, PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL);
-    }
-
-    @LargeTest
-    public void testExistingEUserE() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int userSetting = PackageHelper.APP_INSTALL_EXTERNAL;
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        setExistingXUserX(userSetting, iFlags, PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL);
-    }
-
-    @LargeTest
-    public void testExistingEUserA() throws Exception {
-        // Do not run on devices with emulated external storage.
-        if (Environment.isExternalStorageEmulated()) {
-            return;
-        }
-
-        int userSetting = PackageHelper.APP_INSTALL_AUTO;
-        int iFlags = PackageManager.INSTALL_EXTERNAL;
-        setExistingXUserX(userSetting, iFlags, PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL);
-    }
-
     /*
      * The following set of tests verify that the user setting defines
      * the install location.
diff --git a/core/tests/coretests/src/android/os/BinderWorkSourceNestedService.java b/core/tests/coretests/src/android/os/BinderWorkSourceNestedService.java
new file mode 100644
index 0000000..dddeda3
--- /dev/null
+++ b/core/tests/coretests/src/android/os/BinderWorkSourceNestedService.java
@@ -0,0 +1,91 @@
+/*
+ * 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.os;
+
+import android.app.Service;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+/**
+* Service used by {@link BinderWorkSourceTest}.
+*/
+public class BinderWorkSourceNestedService extends Service {
+    private final IBinderWorkSourceNestedService.Stub mBinder =
+            new IBinderWorkSourceNestedService.Stub() {
+
+        public int[] nestedCallWithWorkSourceToSet(int uidToBlame) {
+            final int uid =  Binder.getCallingWorkSourceUid();
+            if (uidToBlame != ThreadLocalWorkSource.UID_NONE) {
+                Binder.setCallingWorkSourceUid(uidToBlame);
+            }
+            final int nestedUid = callGetIncomingWorkSourceUid();
+            return new int[] {uid, nestedUid};
+        }
+
+        public int[] nestedCall() {
+            final int uid =  Binder.getCallingWorkSourceUid();
+            final int nestedUid = callGetIncomingWorkSourceUid();
+            return new int[] {uid, nestedUid};
+        }
+
+        private int callGetIncomingWorkSourceUid() {
+            BlockingQueue<IBinderWorkSourceService> blockingQueue =
+                    new LinkedBlockingQueue<>();
+            ServiceConnection mConnection = new ServiceConnection() {
+                public void onServiceConnected(ComponentName name, IBinder service) {
+                    blockingQueue.add(IBinderWorkSourceService.Stub.asInterface(service));
+                }
+
+                public void onServiceDisconnected(ComponentName name) {
+                }
+            };
+
+            Context context = getApplicationContext();
+            context.bindService(
+                    new Intent(context, BinderWorkSourceService.class),
+                    mConnection, Context.BIND_AUTO_CREATE);
+
+            final IBinderWorkSourceService service;
+            try {
+                service = blockingQueue.poll(30, TimeUnit.SECONDS);
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+            if (service == null) {
+                throw new RuntimeException("Gave up waiting for BinderWorkSourceService");
+            }
+
+            try {
+                return service.getIncomingWorkSourceUid();
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            } finally {
+                context.unbindService(mConnection);
+            }
+        }
+    };
+
+    public IBinder onBind(Intent intent) {
+        return mBinder;
+    }
+}
diff --git a/core/tests/coretests/src/android/os/BinderWorkSourceService.java b/core/tests/coretests/src/android/os/BinderWorkSourceService.java
new file mode 100644
index 0000000..ac8d7ab9
--- /dev/null
+++ b/core/tests/coretests/src/android/os/BinderWorkSourceService.java
@@ -0,0 +1,36 @@
+/*
+ * 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.os;
+
+import android.app.Service;
+import android.content.Intent;
+
+/**
+ * Service used by {@link BinderWorkSourceTest}.
+ */
+public class BinderWorkSourceService extends Service {
+    private final IBinderWorkSourceService.Stub mBinder =
+            new IBinderWorkSourceService.Stub() {
+        public int getIncomingWorkSourceUid() {
+            return Binder.getCallingWorkSourceUid();
+        }
+    };
+
+    public IBinder onBind(Intent intent) {
+        return mBinder;
+    }
+}
diff --git a/core/tests/coretests/src/android/os/BinderWorkSourceTest.java b/core/tests/coretests/src/android/os/BinderWorkSourceTest.java
new file mode 100644
index 0000000..ec17803
--- /dev/null
+++ b/core/tests/coretests/src/android/os/BinderWorkSourceTest.java
@@ -0,0 +1,166 @@
+/*
+ * 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.os;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.LargeTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Test whether Binder calls work source is propagated correctly.
+ */
+@LargeTest
+@RunWith(AndroidJUnit4.class)
+public class BinderWorkSourceTest {
+    private static Context sContext;
+    private static final int UID = 100;
+    private static final int SECOND_UID = 200;
+    private static final int UID_NONE = ThreadLocalWorkSource.UID_NONE;
+
+    private IBinderWorkSourceService mService;
+    private IBinderWorkSourceNestedService mNestedService;
+
+    private ServiceConnection mConnection = new ServiceConnection() {
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            mService = IBinderWorkSourceService.Stub.asInterface(service);
+        }
+
+        public void onServiceDisconnected(ComponentName name) {
+            mService = null;
+        }
+    };
+
+    private ServiceConnection mNestedConnection = new ServiceConnection() {
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            mNestedService = IBinderWorkSourceNestedService.Stub.asInterface(service);
+        }
+
+        public void onServiceDisconnected(ComponentName name) {
+            mNestedService = null;
+        }
+    };
+
+    @BeforeClass
+    public static void setUpOnce() throws Exception {
+        sContext = InstrumentationRegistry.getContext();
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        sContext.bindService(
+                new Intent(sContext, BinderWorkSourceService.class),
+                mConnection, Context.BIND_AUTO_CREATE);
+        sContext.bindService(
+                new Intent(sContext, BinderWorkSourceNestedService.class),
+                mNestedConnection, Context.BIND_AUTO_CREATE);
+
+        final long timeoutMs = System.currentTimeMillis() + 30_000;
+        while ((mService == null || mNestedService == null)
+                && System.currentTimeMillis() < timeoutMs) {
+            Thread.sleep(1_000);
+        }
+        assertNotNull("Gave up waiting for BinderWorkSourceService", mService);
+        assertNotNull("Gave up waiting for BinderWorkSourceNestedService", mNestedService);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        sContext.unbindService(mConnection);
+        sContext.unbindService(mNestedConnection);
+    }
+
+    @Test
+    public void setWorkSource() throws Exception {
+        Binder.setCallingWorkSourceUid(UID);
+        assertEquals(UID, mService.getIncomingWorkSourceUid());
+        assertEquals(UID, Binder.getCallingWorkSourceUid());
+    }
+
+    @Test
+    public void clearWorkSource() throws Exception {
+        Binder.setCallingWorkSourceUid(UID);
+        Binder.clearCallingWorkSource();
+        assertEquals(UID_NONE, mService.getIncomingWorkSourceUid());
+        assertEquals(UID_NONE, Binder.getCallingWorkSourceUid());
+    }
+
+    @Test
+    public void setWorkSource_propagatedForMultipleCalls() throws Exception {
+        Binder.setCallingWorkSourceUid(UID);
+        assertEquals(UID, mService.getIncomingWorkSourceUid());
+        assertEquals(UID, mService.getIncomingWorkSourceUid());
+        assertEquals(UID, mService.getIncomingWorkSourceUid());
+        assertEquals(UID, Binder.getCallingWorkSourceUid());
+    }
+
+    @Test
+    public void restoreWorkSource() throws Exception {
+        Binder.setCallingWorkSourceUid(UID);
+        long token = Binder.clearCallingWorkSource();
+        Binder.restoreCallingWorkSource(token);
+
+        assertEquals(UID, mService.getIncomingWorkSourceUid());
+        assertEquals(UID, Binder.getCallingWorkSourceUid());
+    }
+
+    @Test
+    public void nestedSetWorkSoucePropagated() throws Exception {
+        Binder.setCallingWorkSourceUid(UID);
+
+        int[] workSources = mNestedService.nestedCallWithWorkSourceToSet(SECOND_UID);
+        assertEquals(UID, workSources[0]);
+        // UID set in ested call.
+        assertEquals(SECOND_UID, workSources[1]);
+        // Initial work source restored.
+        assertEquals(UID, Binder.getCallingWorkSourceUid());
+    }
+
+    @Test
+    public void nestedSetWorkSouceDoesNotEnablePropagation() throws Exception {
+        int[] workSources = mNestedService.nestedCallWithWorkSourceToSet(UID);
+        assertEquals(UID_NONE, workSources[0]);
+        // UID set in ested call.
+        assertEquals(UID, workSources[1]);
+        // Initial work source restored.
+        assertEquals(UID_NONE, Binder.getCallingWorkSourceUid());
+    }
+
+    @Test
+    public void nestedSetWorkSouceNotPropagated() throws Exception {
+        Binder.setCallingWorkSourceUid(UID);
+
+        int[] workSources = mNestedService.nestedCall();
+        assertEquals(UID, workSources[0]);
+        // No UID propagated.
+        assertEquals(UID_NONE, workSources[1]);
+        // Initial work source restored.
+        assertEquals(UID, Binder.getCallingWorkSourceUid());
+    }
+}
diff --git a/media/java/android/media/update/ProviderCreator.java b/core/tests/coretests/src/android/os/IBinderWorkSourceNestedService.aidl
similarity index 73%
copy from media/java/android/media/update/ProviderCreator.java
copy to core/tests/coretests/src/android/os/IBinderWorkSourceNestedService.aidl
index f5f3e47..365aebb 100644
--- a/media/java/android/media/update/ProviderCreator.java
+++ b/core/tests/coretests/src/android/os/IBinderWorkSourceNestedService.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright 2018 The Android Open Source Project
+ * Copyright (C) 2010 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.
@@ -14,10 +14,9 @@
  * limitations under the License.
  */
 
-package android.media.update;
+package android.os;
 
-/** @hide */
-@FunctionalInterface
-public interface ProviderCreator<T, U> {
-    U createProvider(T instance);
+interface IBinderWorkSourceNestedService {
+    int[] nestedCallWithWorkSourceToSet(int uidToBlame);
+    int[] nestedCall();
 }
diff --git a/media/java/android/media/update/ProviderCreator.java b/core/tests/coretests/src/android/os/IBinderWorkSourceService.aidl
similarity index 74%
copy from media/java/android/media/update/ProviderCreator.java
copy to core/tests/coretests/src/android/os/IBinderWorkSourceService.aidl
index f5f3e47..05d4e82 100644
--- a/media/java/android/media/update/ProviderCreator.java
+++ b/core/tests/coretests/src/android/os/IBinderWorkSourceService.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright 2018 The Android Open Source Project
+ * Copyright (C) 2010 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.
@@ -14,10 +14,8 @@
  * limitations under the License.
  */
 
-package android.media.update;
+package android.os;
 
-/** @hide */
-@FunctionalInterface
-public interface ProviderCreator<T, U> {
-    U createProvider(T instance);
+interface IBinderWorkSourceService {
+    int getIncomingWorkSourceUid();
 }
diff --git a/core/tests/coretests/src/android/os/RedactingFileDescriptorTest.java b/core/tests/coretests/src/android/os/RedactingFileDescriptorTest.java
index c8bc35c..9e15231 100644
--- a/core/tests/coretests/src/android/os/RedactingFileDescriptorTest.java
+++ b/core/tests/coretests/src/android/os/RedactingFileDescriptorTest.java
@@ -16,6 +16,10 @@
 
 package android.os;
 
+import static android.os.ParcelFileDescriptor.MODE_READ_ONLY;
+import static android.os.ParcelFileDescriptor.MODE_READ_WRITE;
+import static android.os.RedactingFileDescriptor.removeRange;
+
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 
@@ -58,8 +62,8 @@
 
     @Test
     public void testSingleByte() throws Exception {
-        final FileDescriptor fd = RedactingFileDescriptor
-                .open(mContext, mFile, new long[] { 10, 11 }).getFileDescriptor();
+        final FileDescriptor fd = RedactingFileDescriptor.open(mContext, mFile, MODE_READ_ONLY,
+                new long[] { 10, 11 }).getFileDescriptor();
 
         final byte[] buf = new byte[1_000];
         assertEquals(buf.length, Os.read(fd, buf, 0, buf.length));
@@ -74,8 +78,8 @@
 
     @Test
     public void testRanges() throws Exception {
-        final FileDescriptor fd = RedactingFileDescriptor
-                .open(mContext, mFile, new long[] { 100, 200, 300, 400 }).getFileDescriptor();
+        final FileDescriptor fd = RedactingFileDescriptor.open(mContext, mFile, MODE_READ_ONLY,
+                new long[] { 100, 200, 300, 400 }).getFileDescriptor();
 
         final byte[] buf = new byte[10];
         assertEquals(buf.length, Os.pread(fd, buf, 0, 10, 90));
@@ -96,8 +100,8 @@
 
     @Test
     public void testEntireFile() throws Exception {
-        final FileDescriptor fd = RedactingFileDescriptor
-                .open(mContext, mFile, new long[] { 0, 5_000_000 }).getFileDescriptor();
+        final FileDescriptor fd = RedactingFileDescriptor.open(mContext, mFile, MODE_READ_ONLY,
+                new long[] { 0, 5_000_000 }).getFileDescriptor();
 
         try (FileInputStream in = new FileInputStream(fd)) {
             int val;
@@ -106,4 +110,61 @@
             }
         }
     }
+
+    @Test
+    public void testReadWrite() throws Exception {
+        final FileDescriptor fd = RedactingFileDescriptor.open(mContext, mFile, MODE_READ_WRITE,
+                new long[] { 100, 200, 300, 400 }).getFileDescriptor();
+
+        // Redacted at first
+        final byte[] buf = new byte[10];
+        assertEquals(buf.length, Os.pread(fd, buf, 0, 10, 95));
+        assertArrayEquals(new byte[] { 64, 64, 64, 64, 64, 0, 0, 0, 0, 0 }, buf);
+
+        // But we can see data that we've written
+        Os.pwrite(fd, new byte[] { 32, 32 }, 0, 2, 102);
+        assertEquals(buf.length, Os.pread(fd, buf, 0, 10, 95));
+        assertArrayEquals(new byte[] { 64, 64, 64, 64, 64, 0, 0, 32, 32, 0 }, buf);
+    }
+
+    @Test
+    public void testRemoveRange() throws Exception {
+        // Removing outside ranges should have no changes
+        assertArrayEquals(new long[] { 100, 200, 300, 400 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 0, 100));
+        assertArrayEquals(new long[] { 100, 200, 300, 400 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 200, 300));
+        assertArrayEquals(new long[] { 100, 200, 300, 400 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 400, 500));
+
+        // Removing full regions
+        assertArrayEquals(new long[] { 100, 200 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 300, 400));
+        assertArrayEquals(new long[] { 100, 200 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 250, 450));
+        assertArrayEquals(new long[] { 300, 400 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 50, 250));
+        assertArrayEquals(new long[] { },
+                removeRange(new long[] { 100, 200, 300, 400 }, 0, 5_000_000));
+    }
+
+    @Test
+    public void testRemoveRange_Partial() throws Exception {
+        assertArrayEquals(new long[] { 150, 200, 300, 400 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 50, 150));
+        assertArrayEquals(new long[] { 100, 150, 300, 400 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 150, 250));
+        assertArrayEquals(new long[] { 100, 150, 350, 400 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 150, 350));
+        assertArrayEquals(new long[] { 100, 150 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 150, 500));
+    }
+
+    @Test
+    public void testRemoveRange_Hole() throws Exception {
+        assertArrayEquals(new long[] { 100, 125, 175, 200, 300, 400 },
+                removeRange(new long[] { 100, 200, 300, 400 }, 125, 175));
+        assertArrayEquals(new long[] { 100, 200 },
+                removeRange(new long[] { 100, 200 }, 150, 150));
+    }
 }
diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
index 002b6a8..8a27de4b 100644
--- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
@@ -124,7 +124,9 @@
                     Settings.Global.AUTOFILL_LOGGING_LEVEL,
                     Settings.Global.AUTOFILL_MAX_PARTITIONS_SIZE,
                     Settings.Global.AUTOFILL_MAX_VISIBLE_DATASETS,
+                    Settings.Global.AUTOFILL_SMART_SUGGESTION_EMULATION_FLAGS,
                     Settings.Global.AUTOMATIC_POWER_SAVER_MODE,
+                    Settings.Global.BACKGROUND_ACTIVITY_STARTS_ENABLED,
                     Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD,
                     Settings.Global.BATTERY_DISCHARGE_THRESHOLD,
                     Settings.Global.BATTERY_SAVER_DEVICE_SPECIFIC_CONSTANTS,
@@ -181,6 +183,8 @@
                     Settings.Global.CONNECTIVITY_METRICS_BUFFER_SIZE,
                     Settings.Global.CONNECTIVITY_SAMPLING_INTERVAL_IN_SECONDS,
                     Settings.Global.CONTACT_METADATA_SYNC_ENABLED,
+                    Settings.Global.CONVERSATION_ACTIONS_UPDATE_CONTENT_URL,
+                    Settings.Global.CONVERSATION_ACTIONS_UPDATE_METADATA_URL,
                     Settings.Global.CONTACTS_DATABASE_WAL_ENABLED,
                     Settings.Global.DATA_ACTIVITY_TIMEOUT_MOBILE,
                     Settings.Global.DATA_ACTIVITY_TIMEOUT_WIFI,
@@ -189,6 +193,10 @@
                     Settings.Global.DATA_ROAMING,
                     Settings.Global.DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS,
                     Settings.Global.DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS,
+                    Settings.Global.DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD,
+                    Settings.Global.DATA_STALL_EVALUATION_TYPE,
+                    Settings.Global.DATA_STALL_MIN_EVALUATE_INTERVAL,
+                    Settings.Global.DATA_STALL_VALID_DNS_TIME_THRESHOLD,
                     Settings.Global.DEBUG_APP,
                     Settings.Global.DEBUG_VIEW_ATTRIBUTES,
                     Settings.Global.DEFAULT_DNS_SERVER,
@@ -281,6 +289,7 @@
                     Settings.Global.LOCATION_BACKGROUND_THROTTLE_INTERVAL_MS,
                     Settings.Global.LOCATION_BACKGROUND_THROTTLE_PROXIMITY_ALERT_INTERVAL_MS,
                     Settings.Global.LOCATION_BACKGROUND_THROTTLE_PACKAGE_WHITELIST,
+                    Settings.Global.LOCATION_DISABLE_STATUS_CALLBACKS,
                     Settings.Global.LOCATION_LAST_LOCATION_MAX_AGE_MILLIS,
                     Settings.Global.LOCATION_GLOBAL_KILL_SWITCH,
                     Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED,
@@ -306,6 +315,7 @@
                     Settings.Global.MULTI_SIM_SMS_SUBSCRIPTION,
                     Settings.Global.MULTI_SIM_VOICE_CALL_SUBSCRIPTION,
                     Settings.Global.MULTI_SIM_VOICE_PROMPT,
+                    Settings.Global.NATIVE_FLAGS_HEALTH_CHECK_ENABLED,
                     Settings.Global.NETSTATS_DEV_BUCKET_DURATION,
                     Settings.Global.NETSTATS_DEV_DELETE_AGE,
                     Settings.Global.NETSTATS_DEV_PERSIST_BYTES,
@@ -467,6 +477,7 @@
                     Settings.Global.USER_SWITCHER_ENABLED,
                     Settings.Global.NETWORK_ACCESS_TIMEOUT_MS,
                     Settings.Global.WARNING_TEMPERATURE,
+                    Settings.Global.USB_ALARM_TEMPERATURE,
                     Settings.Global.WEBVIEW_DATA_REDUCTION_PROXY_KEY,
                     Settings.Global.WEBVIEW_FALLBACK_LOGIC_ENABLED,
                     Settings.Global.WEBVIEW_MULTIPROCESS,
@@ -653,7 +664,10 @@
                  Settings.Secure.SUPPRESS_AUTO_BATTERY_SAVER_SUGGESTION,
                  Settings.Secure.PACKAGES_TO_CLEAR_DATA_BEFORE_FULL_RESTORE,
                  Settings.Secure.FLASHLIGHT_AVAILABLE,
-                 Settings.Secure.FLASHLIGHT_ENABLED);
+                 Settings.Secure.FLASHLIGHT_ENABLED,
+                 Settings.Secure.CROSS_PROFILE_CALENDAR_ENABLED,
+                 Settings.Secure.LOCATION_ACCESS_CHECK_INTERVAL_MILLIS,
+                 Settings.Secure.LOCATION_ACCESS_CHECK_DELAY_MILLIS);
 
     @Test
     public void systemSettingsBackedUpOrBlacklisted() {
diff --git a/core/tests/coretests/src/android/text/AndroidCharacterTest.java b/core/tests/coretests/src/android/text/AndroidCharacterTest.java
new file mode 100644
index 0000000..0c7e730
--- /dev/null
+++ b/core/tests/coretests/src/android/text/AndroidCharacterTest.java
@@ -0,0 +1,71 @@
+/*
+ * 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,d
+ * 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.text;
+
+import static org.junit.Assert.assertArrayEquals;
+
+import android.platform.test.annotations.Presubmit;
+import android.support.test.filters.SmallTest;
+
+import org.junit.Test;
+
+@Presubmit
+@SmallTest
+public class AndroidCharacterTest {
+
+    @Test
+    public void testGetDirectionalities_nonSupplementaryCharacters() {
+        int size = Character.MAX_VALUE + 1
+                - (Character.MAX_SURROGATE - Character.MIN_SURROGATE + 1);
+        char[] chars = new char[size];
+        byte[] java_lang_results = new byte[size];
+        int index = 0;
+        for (int cp = 0; cp <= Character.MAX_VALUE; cp++) {
+            if (cp < Character.MIN_SURROGATE || cp > Character.MAX_SURROGATE) {
+                chars[index] = (char) cp;
+                java_lang_results[index] = Character.getDirectionality(cp);
+                index++;
+            }
+        }
+
+        byte[] android_text_results = new byte[size];
+        AndroidCharacter.getDirectionalities(chars, android_text_results, index);
+        assertArrayEquals(java_lang_results, android_text_results);
+    }
+
+    @Test
+    public void testGetDirectionalities_supplementaryCharacters() {
+        int maxNumberOfChars = Character.MAX_CODE_POINT - Character.MIN_SUPPLEMENTARY_CODE_POINT
+                + 1;
+        int size = maxNumberOfChars * 2;
+        char[] chars = new char[size];
+        byte[] java_lang_results = new byte[size];
+        int index = 0;
+        for (int cp = Character.MIN_SUPPLEMENTARY_CODE_POINT; cp <= Character.MAX_CODE_POINT;
+                cp++) {
+            chars[index] = Character.highSurrogate(cp);
+            chars[index + 1] = Character.lowSurrogate(cp);
+            java_lang_results[index] = java_lang_results[index + 1] = Character
+                    .getDirectionality(cp);
+            index += 2;
+        }
+
+        byte[] android_text_results = new byte[size];
+        AndroidCharacter.getDirectionalities(chars, android_text_results, index);
+        assertArrayEquals(java_lang_results, android_text_results);
+    }
+}
diff --git a/core/tests/coretests/src/android/view/InsetsControllerTest.java b/core/tests/coretests/src/android/view/InsetsControllerTest.java
new file mode 100644
index 0000000..ed80cd7
--- /dev/null
+++ b/core/tests/coretests/src/android/view/InsetsControllerTest.java
@@ -0,0 +1,63 @@
+/*
+ * 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.view;
+
+import static android.view.InsetsState.TYPE_TOP_BAR;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNull;
+
+import android.platform.test.annotations.Presubmit;
+import android.support.test.filters.FlakyTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@Presubmit
+@FlakyTest(detail = "Promote once confirmed non-flaky")
+@RunWith(AndroidJUnit4.class)
+public class InsetsControllerTest {
+
+    private InsetsController mController = new InsetsController();
+
+    private SurfaceSession mSession = new SurfaceSession();
+    private SurfaceControl mLeash;
+
+    @Before
+    public void setup() {
+        mLeash = new SurfaceControl.Builder(mSession)
+                .setName("testSurface")
+                .build();
+    }
+
+    @Test
+    public void testControlsChanged() {
+        InsetsSourceControl control = new InsetsSourceControl(TYPE_TOP_BAR, mLeash);
+        mController.onControlsChanged(new InsetsSourceControl[] { control });
+        assertEquals(mLeash,
+                mController.getSourceConsumer(TYPE_TOP_BAR).getControl().getLeash());
+    }
+
+    @Test
+    public void testControlsRevoked() {
+        InsetsSourceControl control = new InsetsSourceControl(TYPE_TOP_BAR, mLeash);
+        mController.onControlsChanged(new InsetsSourceControl[] { control });
+        mController.onControlsChanged(new InsetsSourceControl[0]);
+        assertNull(mController.getSourceConsumer(TYPE_TOP_BAR).getControl());
+    }
+}
diff --git a/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java b/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
new file mode 100644
index 0000000..5a20ba2
--- /dev/null
+++ b/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
@@ -0,0 +1,82 @@
+/*
+ * 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.view;
+
+import static android.view.InsetsState.TYPE_TOP_BAR;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
+
+import android.platform.test.annotations.Presubmit;
+import android.support.test.filters.FlakyTest;
+import android.support.test.runner.AndroidJUnit4;
+import android.view.SurfaceControl.Transaction;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@Presubmit
+@FlakyTest(detail = "Promote once confirmed non-flaky")
+@RunWith(AndroidJUnit4.class)
+public class InsetsSourceConsumerTest {
+
+    private InsetsSourceConsumer mConsumer;
+
+    private SurfaceSession mSession = new SurfaceSession();
+    private SurfaceControl mLeash;
+    @Mock Transaction mMockTransaction;
+    @Mock InsetsController mMockController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mLeash = new SurfaceControl.Builder(mSession)
+                .setName("testSurface")
+                .build();
+        mConsumer = new InsetsSourceConsumer(TYPE_TOP_BAR, new InsetsState(),
+                () -> mMockTransaction);
+        mConsumer.setControl(new InsetsSourceControl(TYPE_TOP_BAR, mLeash));
+    }
+
+    @Test
+    public void testHide() {
+        mConsumer.hide();
+        verify(mMockTransaction).hide(eq(mLeash));
+    }
+
+    @Test
+    public void testShow() {
+        mConsumer.hide();
+        mConsumer.show();
+        verify(mMockTransaction, atLeastOnce()).show(eq(mLeash));
+    }
+
+    @Test
+    public void testRestore() {
+        mConsumer.setControl(null);
+        reset(mMockTransaction);
+        mConsumer.hide();
+        verifyZeroInteractions(mMockTransaction);
+        mConsumer.setControl(new InsetsSourceControl(TYPE_TOP_BAR, mLeash));
+        verify(mMockTransaction).hide(eq(mLeash));
+    }
+}
diff --git a/core/tests/coretests/src/android/view/InsetsSourceTest.java b/core/tests/coretests/src/android/view/InsetsSourceTest.java
new file mode 100644
index 0000000..ed472d2
--- /dev/null
+++ b/core/tests/coretests/src/android/view/InsetsSourceTest.java
@@ -0,0 +1,103 @@
+/*
+ * 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.view;
+
+import static android.view.InsetsState.TYPE_NAVIGATION_BAR;
+import static junit.framework.Assert.assertEquals;
+
+import android.graphics.Insets;
+import android.graphics.Rect;
+import android.platform.test.annotations.Presubmit;
+import android.support.test.filters.FlakyTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@Presubmit
+@FlakyTest(detail = "Promote once confirmed non-flaky")
+@RunWith(AndroidJUnit4.class)
+public class InsetsSourceTest {
+
+    private InsetsSource mSource = new InsetsSource(TYPE_NAVIGATION_BAR);
+
+    @Before
+    public void setUp() {
+        mSource.setVisible(true);
+    }
+
+    @Test
+    public void testCalculateInsetsTop() {
+        mSource.setFrame(new Rect(0, 0, 500, 100));
+        Insets insets = mSource.calculateInsets(new Rect(0, 0, 500, 500),
+                false /* ignoreVisibility */);
+        assertEquals(Insets.of(0, 100, 0, 0), insets);
+    }
+
+    @Test
+    public void testCalculateInsetsBottom() {
+        mSource.setFrame(new Rect(0, 400, 500, 500));
+        Insets insets = mSource.calculateInsets(new Rect(0, 0, 500, 500),
+                false /* ignoreVisibility */);
+        assertEquals(Insets.of(0, 0, 0, 100), insets);
+    }
+
+    @Test
+    public void testCalculateInsetsLeft() {
+        mSource.setFrame(new Rect(0, 0, 100, 500));
+        Insets insets = mSource.calculateInsets(new Rect(0, 0, 500, 500),
+                false /* ignoreVisibility */);
+        assertEquals(Insets.of(100, 0, 0, 0), insets);
+    }
+
+    @Test
+    public void testCalculateInsetsRight() {
+        mSource.setFrame(new Rect(400, 0, 500, 500));
+        Insets insets = mSource.calculateInsets(new Rect(0, 0, 500, 500),
+                false /* ignoreVisibility */);
+        assertEquals(Insets.of(0, 0, 100, 0), insets);
+    }
+
+    @Test
+    public void testCalculateInsets_overextend() {
+        mSource.setFrame(new Rect(0, 0, 500, 100));
+        Insets insets = mSource.calculateInsets(new Rect(100, 0, 500, 500),
+                false /* ignoreVisibility */);
+        assertEquals(Insets.of(0, 100, 0, 0), insets);
+    }
+
+    @Test
+    public void testCalculateInsets_invisible() {
+        mSource.setFrame(new Rect(0, 0, 500, 100));
+        mSource.setVisible(false);
+        Insets insets = mSource.calculateInsets(new Rect(100, 0, 500, 500),
+                false /* ignoreVisibility */);
+        assertEquals(Insets.of(0, 0, 0, 0), insets);
+    }
+
+    @Test
+    public void testCalculateInsets_ignoreVisibility() {
+        mSource.setFrame(new Rect(0, 0, 500, 100));
+        mSource.setVisible(false);
+        Insets insets = mSource.calculateInsets(new Rect(100, 0, 500, 500),
+                true /* ignoreVisibility */);
+        assertEquals(Insets.of(0, 100, 0, 0), insets);
+    }
+
+    // Parcel and equals already tested via InsetsStateTest
+}
diff --git a/core/tests/coretests/src/android/view/InsetsStateTest.java b/core/tests/coretests/src/android/view/InsetsStateTest.java
new file mode 100644
index 0000000..6bb9539
--- /dev/null
+++ b/core/tests/coretests/src/android/view/InsetsStateTest.java
@@ -0,0 +1,130 @@
+/*
+ * 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.view;
+
+import static android.view.InsetsState.TYPE_IME;
+import static android.view.InsetsState.TYPE_NAVIGATION_BAR;
+import static android.view.InsetsState.TYPE_TOP_BAR;
+import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+import android.graphics.Rect;
+import android.os.Parcel;
+import android.platform.test.annotations.Presubmit;
+import android.support.test.filters.FlakyTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@Presubmit
+@FlakyTest(detail = "Promote once confirmed non-flaky")
+@RunWith(AndroidJUnit4.class)
+public class InsetsStateTest {
+
+    private InsetsState mState = new InsetsState();
+    private InsetsState mState2 = new InsetsState();
+
+    @Test
+    public void testCalculateInsets() {
+        mState.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 100, 100));
+        mState.getSource(TYPE_TOP_BAR).setVisible(true);
+        mState.getSource(TYPE_IME).setFrame(new Rect(0, 200, 100, 300));
+        mState.getSource(TYPE_IME).setVisible(true);
+        WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
+                DisplayCutout.NO_CUTOUT);
+        assertEquals(new Rect(0, 100, 0, 100), insets.getSystemWindowInsets());
+    }
+
+    @Test
+    public void testCalculateInsets_imeAndNav() {
+        mState.getSource(TYPE_NAVIGATION_BAR).setFrame(new Rect(0, 200, 100, 300));
+        mState.getSource(TYPE_NAVIGATION_BAR).setVisible(true);
+        mState.getSource(TYPE_IME).setFrame(new Rect(0, 100, 100, 300));
+        mState.getSource(TYPE_IME).setVisible(true);
+        WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
+                DisplayCutout.NO_CUTOUT);
+        assertEquals(100, insets.getStableInsetBottom());
+        assertEquals(new Rect(0, 0, 0, 200), insets.getSystemWindowInsets());
+    }
+
+    @Test
+    public void testCalculateInsets_navRightStatusTop() {
+        mState.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 100, 100));
+        mState.getSource(TYPE_TOP_BAR).setVisible(true);
+        mState.getSource(TYPE_NAVIGATION_BAR).setFrame(new Rect(80, 0, 100, 300));
+        mState.getSource(TYPE_NAVIGATION_BAR).setVisible(true);
+        WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
+                DisplayCutout.NO_CUTOUT);
+        assertEquals(new Rect(0, 100, 20, 0), insets.getSystemWindowInsets());
+    }
+
+    @Test
+    public void testStripForDispatch() {
+        mState.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 100, 100));
+        mState.getSource(TYPE_TOP_BAR).setVisible(true);
+        mState.getSource(TYPE_IME).setFrame(new Rect(0, 200, 100, 300));
+        mState.getSource(TYPE_IME).setVisible(true);
+        mState.removeSource(TYPE_IME);
+        WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), false, false,
+                DisplayCutout.NO_CUTOUT);
+        assertEquals(0, insets.getSystemWindowInsetBottom());
+    }
+
+    @Test
+    public void testEquals_differentRect() {
+        mState.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 100, 100));
+        mState2.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 10, 10));
+        assertNotEquals(mState, mState2);
+    }
+
+    @Test
+    public void testEquals_differentSource() {
+        mState.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 100, 100));
+        mState2.getSource(TYPE_IME).setFrame(new Rect(0, 0, 100, 100));
+        assertNotEquals(mState, mState2);
+    }
+
+    @Test
+    public void testEquals_sameButDifferentInsertOrder() {
+        mState.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 100, 100));
+        mState.getSource(TYPE_IME).setFrame(new Rect(0, 0, 100, 100));
+        mState2.getSource(TYPE_IME).setFrame(new Rect(0, 0, 100, 100));
+        mState2.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 100, 100));
+        assertEquals(mState, mState2);
+    }
+
+    @Test
+    public void testEquals_visibility() {
+        mState.getSource(TYPE_IME).setFrame(new Rect(0, 0, 100, 100));
+        mState.getSource(TYPE_IME).setVisible(true);
+        mState2.getSource(TYPE_IME).setFrame(new Rect(0, 0, 100, 100));
+        assertNotEquals(mState, mState2);
+    }
+
+    @Test
+    public void testParcelUnparcel() {
+        mState.getSource(TYPE_IME).setFrame(new Rect(0, 0, 100, 100));
+        mState.getSource(TYPE_IME).setVisible(true);
+        mState.getSource(TYPE_TOP_BAR).setFrame(new Rect(0, 0, 100, 100));
+        Parcel p = Parcel.obtain();
+        mState.writeToParcel(p, 0 /* flags */);
+        mState2.readFromParcel(p);
+        p.recycle();
+        assertEquals(mState, mState2);
+    }
+}
diff --git a/core/tests/coretests/src/android/view/textclassifier/ActionsSuggestionsHelperTest.java b/core/tests/coretests/src/android/view/textclassifier/ActionsSuggestionsHelperTest.java
new file mode 100644
index 0000000..f0faaf6
--- /dev/null
+++ b/core/tests/coretests/src/android/view/textclassifier/ActionsSuggestionsHelperTest.java
@@ -0,0 +1,157 @@
+/*
+ * 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.view.textclassifier;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.Person;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.google.android.textclassifier.ActionsSuggestionsModel;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Arrays;
+import java.util.Collections;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class ActionsSuggestionsHelperTest {
+    @Test
+    public void testToNativeMessages_emptyInput() {
+        ActionsSuggestionsModel.ConversationMessage[] conversationMessages =
+                ActionsSuggestionsHelper.toNativeMessages(Collections.emptyList());
+
+        assertThat(conversationMessages).isEmpty();
+    }
+
+    @Test
+    public void testToNativeMessages_noTextMessages() {
+        ConversationActions.Message messageWithoutText =
+                new ConversationActions.Message.Builder().build();
+
+        ActionsSuggestionsModel.ConversationMessage[] conversationMessages =
+                ActionsSuggestionsHelper.toNativeMessages(
+                        Collections.singletonList(messageWithoutText));
+
+        assertThat(conversationMessages).isEmpty();
+    }
+
+    @Test
+    public void testToNativeMessages_missingPersonInFirstMessage() {
+        ConversationActions.Message firstMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("first")
+                        .build();
+        ConversationActions.Message secondMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("second")
+                        .setAuthor(new Person.Builder().build())
+                        .build();
+        ConversationActions.Message thirdMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("third")
+                        .setAuthor(ConversationActions.Message.PERSON_USER_LOCAL)
+                        .build();
+
+        ActionsSuggestionsModel.ConversationMessage[] conversationMessages =
+                ActionsSuggestionsHelper.toNativeMessages(
+                        Arrays.asList(firstMessage, secondMessage, thirdMessage));
+
+        assertThat(conversationMessages).hasLength(2);
+        assertNativeMessage(conversationMessages[0], secondMessage.getText(), 1);
+        assertNativeMessage(conversationMessages[1], thirdMessage.getText(), 0);
+    }
+
+    @Test
+    public void testToNativeMessages_missingPersonInMiddleOfConversation() {
+        ConversationActions.Message firstMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("first")
+                        .setAuthor(new Person.Builder().setName("first").build())
+                        .build();
+        ConversationActions.Message secondMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("second")
+                        .build();
+        ConversationActions.Message thirdMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("third")
+                        .setAuthor(new Person.Builder().setName("third").build())
+                        .build();
+        ConversationActions.Message fourthMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("fourth")
+                        .setAuthor(new Person.Builder().setName("fourth").build())
+                        .build();
+
+        ActionsSuggestionsModel.ConversationMessage[] conversationMessages =
+                ActionsSuggestionsHelper.toNativeMessages(
+                        Arrays.asList(firstMessage, secondMessage, thirdMessage, fourthMessage));
+
+        assertThat(conversationMessages).hasLength(2);
+        assertNativeMessage(conversationMessages[0], thirdMessage.getText(), 2);
+        assertNativeMessage(conversationMessages[1], fourthMessage.getText(), 1);
+    }
+
+    @Test
+    public void testToNativeMessages_userIdEncoding() {
+        Person userA = new Person.Builder().setName("userA").build();
+        Person userB = new Person.Builder().setName("userB").build();
+
+        ConversationActions.Message firstMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("first")
+                        .setAuthor(userB)
+                        .build();
+        ConversationActions.Message secondMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("second")
+                        .setAuthor(userA)
+                        .build();
+        ConversationActions.Message thirdMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("third")
+                        .setAuthor(ConversationActions.Message.PERSON_USER_LOCAL)
+                        .build();
+        ConversationActions.Message fourthMessage =
+                new ConversationActions.Message.Builder()
+                        .setText("fourth")
+                        .setAuthor(userA)
+                        .build();
+
+        ActionsSuggestionsModel.ConversationMessage[] conversationMessages =
+                ActionsSuggestionsHelper.toNativeMessages(
+                        Arrays.asList(firstMessage, secondMessage, thirdMessage, fourthMessage));
+
+        assertThat(conversationMessages).hasLength(4);
+        assertNativeMessage(conversationMessages[0], firstMessage.getText(), 2);
+        assertNativeMessage(conversationMessages[1], secondMessage.getText(), 1);
+        assertNativeMessage(conversationMessages[2], thirdMessage.getText(), 0);
+        assertNativeMessage(conversationMessages[3], fourthMessage.getText(), 1);
+    }
+
+    private static void assertNativeMessage(
+            ActionsSuggestionsModel.ConversationMessage nativeMessage,
+            CharSequence text,
+            int userId) {
+        assertThat(nativeMessage.getText()).isEqualTo(text.toString());
+        assertThat(nativeMessage.getUserId()).isEqualTo(userId);
+    }
+}
diff --git a/core/tests/coretests/src/android/view/textclassifier/FakeContextBuilder.java b/core/tests/coretests/src/android/view/textclassifier/FakeContextBuilder.java
new file mode 100644
index 0000000..0180856
--- /dev/null
+++ b/core/tests/coretests/src/android/view/textclassifier/FakeContextBuilder.java
@@ -0,0 +1,134 @@
+/*
+ * 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.view.textclassifier;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.ContextWrapper;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.support.test.InstrumentationRegistry;
+
+import androidx.annotation.Nullable;
+
+import com.google.common.base.Preconditions;
+
+import org.mockito.stubbing.Answer;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * A builder used to build a fake context for testing.
+ */
+// TODO: Consider making public.
+final class FakeContextBuilder {
+
+    /**
+     * A component name that can be used for tests.
+     */
+    public static final ComponentName DEFAULT_COMPONENT = new ComponentName("pkg", "cls");
+
+    private final PackageManager mPackageManager;
+    private final ContextWrapper mContext;
+    private final Map<String, ComponentName> mComponents = new HashMap<>();
+    private @Nullable ComponentName mAllIntentComponent;
+
+    FakeContextBuilder() {
+        mPackageManager = mock(PackageManager.class);
+        when(mPackageManager.resolveActivity(any(Intent.class), anyInt())).thenReturn(null);
+        mContext = new ContextWrapper(InstrumentationRegistry.getTargetContext()) {
+            @Override
+            public PackageManager getPackageManager() {
+                return mPackageManager;
+            }
+        };
+    }
+
+    /**
+     * Sets the component name of an activity to handle the specified intent action.
+     * <p>
+     * <strong>NOTE: </strong>By default, no component is set to handle any intent.
+     */
+    public FakeContextBuilder setIntentComponent(
+            String intentAction, @Nullable ComponentName component) {
+        Preconditions.checkNotNull(intentAction);
+        mComponents.put(intentAction, component);
+        return this;
+    }
+
+
+    /**
+     * Sets the component name of an activity to handle all intents.
+     * <p>
+     * <strong>NOTE: </strong>By default, no component is set to handle any intent.
+     */
+    public FakeContextBuilder setAllIntentComponent(@Nullable ComponentName component) {
+        mAllIntentComponent = component;
+        return this;
+    }
+
+    /**
+     * Builds and returns a fake context.
+     */
+    public Context build() {
+        when(mPackageManager.resolveActivity(any(Intent.class), anyInt())).thenAnswer(
+                (Answer<ResolveInfo>) invocation -> {
+                    final String action = ((Intent) invocation.getArgument(0)).getAction();
+                    final ComponentName component = mComponents.containsKey(action)
+                            ? mComponents.get(action)
+                            : mAllIntentComponent;
+                    return getResolveInfo(component);
+                });
+        return mContext;
+    }
+
+    /**
+     * Returns a component name with random package and class names.
+     */
+    public static ComponentName newComponent() {
+        return new ComponentName(UUID.randomUUID().toString(), UUID.randomUUID().toString());
+    }
+
+    private static ResolveInfo getResolveInfo(ComponentName component) {
+        final ResolveInfo info;
+        if (component == null) {
+            info = null;
+        } else {
+            // NOTE: If something breaks in TextClassifier because we expect more fields to be set
+            // in here, just add them.
+            info = new ResolveInfo();
+            info.activityInfo = new ActivityInfo();
+            info.activityInfo.packageName = component.getPackageName();
+            info.activityInfo.name = component.getClassName();
+            info.activityInfo.exported = true;
+            info.activityInfo.applicationInfo = new ApplicationInfo();
+            info.activityInfo.applicationInfo.icon = 0;
+        }
+        return info;
+    }
+
+}
diff --git a/core/tests/coretests/src/android/view/textclassifier/IntentFactoryTest.java b/core/tests/coretests/src/android/view/textclassifier/IntentFactoryTest.java
new file mode 100644
index 0000000..bae2be3
--- /dev/null
+++ b/core/tests/coretests/src/android/view/textclassifier/IntentFactoryTest.java
@@ -0,0 +1,60 @@
+/*
+ * 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.view.textclassifier;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Intent;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.google.android.textclassifier.AnnotatorModel;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class IntentFactoryTest {
+
+    private static final String TEXT = "text";
+
+    @Test
+    public void create_typeDictionary() {
+        AnnotatorModel.ClassificationResult classificationResult =
+                new AnnotatorModel.ClassificationResult(
+                        TextClassifier.TYPE_DICTIONARY,
+                        1.0f,
+                        null,
+                        null);
+
+        List<TextClassifierImpl.LabeledIntent> intents = TextClassifierImpl.IntentFactory.create(
+                InstrumentationRegistry.getContext(),
+                TEXT,
+                false,
+                null,
+                classificationResult);
+
+        assertThat(intents).hasSize(1);
+        TextClassifierImpl.LabeledIntent labeledIntent = intents.get(0);
+        Intent intent = labeledIntent.getIntent();
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_DEFINE);
+        assertThat(intent.getStringExtra(Intent.EXTRA_TEXT)).isEqualTo(TEXT);
+    }
+}
diff --git a/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java b/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
index 3a33d57..a3f69d9 100644
--- a/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
+++ b/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
@@ -16,340 +16,37 @@
 
 package android.view.textclassifier;
 
-import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.argThat;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyInt;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.content.ContextWrapper;
 import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.net.Uri;
 import android.os.LocaleList;
 import android.service.textclassifier.TextClassifierService;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 
-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.ArgumentMatcher;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class TextClassificationManagerTest {
 
     private static final LocaleList LOCALES = LocaleList.forLanguageTags("en-US");
-    private static final String NO_TYPE = null;
 
     private Context mContext;
     private TextClassificationManager mTcm;
-    private TextClassifier mClassifier;
 
     @Before
     public void setup() {
         mContext = InstrumentationRegistry.getTargetContext();
         mTcm = mContext.getSystemService(TextClassificationManager.class);
-        // Test with the local textClassifier only. (We only bundle "en" model by default).
-        // It's hard to reliably test the results of the device's TextClassifierServiceImpl here.
-        mClassifier = mTcm.getTextClassifier(TextClassifier.LOCAL);
-    }
-
-    @Test
-    public void testSmartSelection() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "Contact me at droid@android.com";
-        String selected = "droid";
-        String suggested = "droid@android.com";
-        int startIndex = text.indexOf(selected);
-        int endIndex = startIndex + selected.length();
-        int smartStartIndex = text.indexOf(suggested);
-        int smartEndIndex = smartStartIndex + suggested.length();
-        TextSelection.Request request = new TextSelection.Request.Builder(
-                text, startIndex, endIndex)
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextSelection selection = mClassifier.suggestSelection(request);
-        assertThat(selection,
-                isTextSelection(smartStartIndex, smartEndIndex, TextClassifier.TYPE_EMAIL));
-    }
-
-    @Test
-    public void testSmartSelection_url() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "Visit http://www.android.com for more information";
-        String selected = "http";
-        String suggested = "http://www.android.com";
-        int startIndex = text.indexOf(selected);
-        int endIndex = startIndex + selected.length();
-        int smartStartIndex = text.indexOf(suggested);
-        int smartEndIndex = smartStartIndex + suggested.length();
-        TextSelection.Request request = new TextSelection.Request.Builder(
-                text, startIndex, endIndex)
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextSelection selection = mClassifier.suggestSelection(request);
-        assertThat(selection,
-                isTextSelection(smartStartIndex, smartEndIndex, TextClassifier.TYPE_URL));
-    }
-
-    @Test
-    public void testSmartSelection_withEmoji() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "\uD83D\uDE02 Hello.";
-        String selected = "Hello";
-        int startIndex = text.indexOf(selected);
-        int endIndex = startIndex + selected.length();
-        TextSelection.Request request = new TextSelection.Request.Builder(
-                text, startIndex, endIndex)
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextSelection selection = mClassifier.suggestSelection(request);
-        assertThat(selection,
-                isTextSelection(startIndex, endIndex, NO_TYPE));
-    }
-
-    @Test
-    public void testClassifyText() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "Contact me at droid@android.com";
-        String classifiedText = "droid@android.com";
-        int startIndex = text.indexOf(classifiedText);
-        int endIndex = startIndex + classifiedText.length();
-        TextClassification.Request request = new TextClassification.Request.Builder(
-                text, startIndex, endIndex)
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextClassification classification = mClassifier.classifyText(request);
-        assertThat(classification, isTextClassification(classifiedText, TextClassifier.TYPE_EMAIL));
-    }
-
-    @Test
-    public void testTextClassifyText_url() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "Visit www.android.com for more information";
-        String classifiedText = "www.android.com";
-        int startIndex = text.indexOf(classifiedText);
-        int endIndex = startIndex + classifiedText.length();
-        TextClassification.Request request = new TextClassification.Request.Builder(
-                text, startIndex, endIndex)
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextClassification classification = mClassifier.classifyText(request);
-        assertThat(classification, isTextClassification(classifiedText, TextClassifier.TYPE_URL));
-    }
-
-    @Test
-    public void testTextClassifyText_address() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "Brandschenkestrasse 110, Zürich, Switzerland";
-        TextClassification.Request request = new TextClassification.Request.Builder(
-                text, 0, text.length())
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextClassification classification = mClassifier.classifyText(request);
-        assertThat(classification, isTextClassification(text, TextClassifier.TYPE_ADDRESS));
-    }
-
-    @Test
-    public void testTextClassifyText_url_inCaps() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "Visit HTTP://ANDROID.COM for more information";
-        String classifiedText = "HTTP://ANDROID.COM";
-        int startIndex = text.indexOf(classifiedText);
-        int endIndex = startIndex + classifiedText.length();
-        TextClassification.Request request = new TextClassification.Request.Builder(
-                text, startIndex, endIndex)
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextClassification classification = mClassifier.classifyText(request);
-        assertThat(classification, isTextClassification(classifiedText, TextClassifier.TYPE_URL));
-    }
-
-    @Test
-    public void testTextClassifyText_date() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "Let's meet on January 9, 2018.";
-        String classifiedText = "January 9, 2018";
-        int startIndex = text.indexOf(classifiedText);
-        int endIndex = startIndex + classifiedText.length();
-        TextClassification.Request request = new TextClassification.Request.Builder(
-                text, startIndex, endIndex)
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextClassification classification = mClassifier.classifyText(request);
-        assertThat(classification, isTextClassification(classifiedText, TextClassifier.TYPE_DATE));
-    }
-
-    @Test
-    public void testTextClassifyText_datetime() {
-        if (isTextClassifierDisabled()) return;
-
-        String text = "Let's meet 2018/01/01 10:30:20.";
-        String classifiedText = "2018/01/01 10:30:20";
-        int startIndex = text.indexOf(classifiedText);
-        int endIndex = startIndex + classifiedText.length();
-        TextClassification.Request request = new TextClassification.Request.Builder(
-                text, startIndex, endIndex)
-                .setDefaultLocales(LOCALES)
-                .build();
-
-        TextClassification classification = mClassifier.classifyText(request);
-        assertThat(classification,
-                isTextClassification(classifiedText, TextClassifier.TYPE_DATE_TIME));
-    }
-
-    @Test
-    public void testGenerateLinks_phone() {
-        if (isTextClassifierDisabled()) return;
-        String text = "The number is +12122537077. See you tonight!";
-        TextLinks.Request request = new TextLinks.Request.Builder(text).build();
-        assertThat(mClassifier.generateLinks(request),
-                isTextLinksContaining(text, "+12122537077", TextClassifier.TYPE_PHONE));
-    }
-
-    @Test
-    public void testGenerateLinks_exclude() {
-        if (isTextClassifierDisabled()) return;
-        String text = "You want apple@banana.com. See you tonight!";
-        List<String> hints = Collections.EMPTY_LIST;
-        List<String> included = Collections.EMPTY_LIST;
-        List<String> excluded = Arrays.asList(TextClassifier.TYPE_EMAIL);
-        TextLinks.Request request = new TextLinks.Request.Builder(text)
-                .setEntityConfig(TextClassifier.EntityConfig.create(hints, included, excluded))
-                .setDefaultLocales(LOCALES)
-                .build();
-        assertThat(mClassifier.generateLinks(request),
-                not(isTextLinksContaining(text, "apple@banana.com", TextClassifier.TYPE_EMAIL)));
-    }
-
-    @Test
-    public void testGenerateLinks_explicit_address() {
-        if (isTextClassifierDisabled()) return;
-        String text = "The address is 1600 Amphitheater Parkway, Mountain View, CA. See you!";
-        List<String> explicit = Arrays.asList(TextClassifier.TYPE_ADDRESS);
-        TextLinks.Request request = new TextLinks.Request.Builder(text)
-                .setEntityConfig(TextClassifier.EntityConfig.createWithExplicitEntityList(explicit))
-                .setDefaultLocales(LOCALES)
-                .build();
-        assertThat(mClassifier.generateLinks(request),
-                isTextLinksContaining(text, "1600 Amphitheater Parkway, Mountain View, CA",
-                        TextClassifier.TYPE_ADDRESS));
-    }
-
-    @Test
-    public void testGenerateLinks_exclude_override() {
-        if (isTextClassifierDisabled()) return;
-        String text = "You want apple@banana.com. See you tonight!";
-        List<String> hints = Collections.EMPTY_LIST;
-        List<String> included = Arrays.asList(TextClassifier.TYPE_EMAIL);
-        List<String> excluded = Arrays.asList(TextClassifier.TYPE_EMAIL);
-        TextLinks.Request request = new TextLinks.Request.Builder(text)
-                .setEntityConfig(TextClassifier.EntityConfig.create(hints, included, excluded))
-                .setDefaultLocales(LOCALES)
-                .build();
-        assertThat(mClassifier.generateLinks(request),
-                not(isTextLinksContaining(text, "apple@banana.com", TextClassifier.TYPE_EMAIL)));
-    }
-
-    @Test
-    public void testGenerateLinks_maxLength() {
-        if (isTextClassifierDisabled()) return;
-        char[] manySpaces = new char[mClassifier.getMaxGenerateLinksTextLength()];
-        Arrays.fill(manySpaces, ' ');
-        TextLinks.Request request = new TextLinks.Request.Builder(new String(manySpaces)).build();
-        TextLinks links = mClassifier.generateLinks(request);
-        assertTrue(links.getLinks().isEmpty());
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testGenerateLinks_tooLong() {
-        if (isTextClassifierDisabled()) {
-            throw new IllegalArgumentException("pass if disabled");
-        }
-        char[] manySpaces = new char[mClassifier.getMaxGenerateLinksTextLength() + 1];
-        Arrays.fill(manySpaces, ' ');
-        TextLinks.Request request = new TextLinks.Request.Builder(new String(manySpaces)).build();
-        mClassifier.generateLinks(request);
-    }
-
-    @Test
-    public void testDetectLanguage() {
-        if (isTextClassifierDisabled()) return;
-        String text = "This is English text";
-        TextLanguage.Request request = new TextLanguage.Request.Builder(text).build();
-        TextLanguage textLanguage = mClassifier.detectLanguage(request);
-        assertThat(textLanguage, isTextLanguage("en"));
-    }
-
-    @Test
-    public void testDetectLanguage_japanese() {
-        if (isTextClassifierDisabled()) return;
-        String text = "これは日本語のテキストです";
-        TextLanguage.Request request = new TextLanguage.Request.Builder(text).build();
-        TextLanguage textLanguage = mClassifier.detectLanguage(request);
-        assertThat(textLanguage, isTextLanguage("ja"));
-    }
-
-    @Test
-    public void testSuggestConversationActions_textReplyOnly_maxThree() {
-        if (isTextClassifierDisabled()) return;
-        ConversationActions.Message message =
-                new ConversationActions.Message.Builder().setText("Hello").build();
-        ConversationActions.TypeConfig typeConfig =
-                new ConversationActions.TypeConfig.Builder().includeTypesFromTextClassifier(false)
-                        .setIncludedTypes(
-                                Collections.singletonList(ConversationActions.TYPE_TEXT_REPLY))
-                        .build();
-        ConversationActions.Request request =
-                new ConversationActions.Request.Builder(Collections.singletonList(message))
-                        .setMaxSuggestions(1)
-                        .setTypeConfig(typeConfig)
-                        .build();
-
-        ConversationActions conversationActions = mClassifier.suggestConversationActions(request);
-        assertTrue(conversationActions.getConversationActions().size() <= 1);
-        for (ConversationActions.ConversationAction conversationAction :
-                conversationActions.getConversationActions()) {
-            assertEquals(conversationAction.getType(), ConversationActions.TYPE_TEXT_REPLY);
-            assertNotNull(conversationAction.getTextReply());
-            assertTrue(conversationAction.getConfidenceScore() > 0);
-            assertTrue(conversationAction.getConfidenceScore() <= 1);
-        }
     }
 
     @Test
@@ -372,23 +69,10 @@
 
     @Test
     public void testCannotResolveIntent() {
-        final PackageManager fakePackageMgr = mock(PackageManager.class);
-
-        ResolveInfo validInfo = mContext.getPackageManager().resolveActivity(
-                new Intent(Intent.ACTION_DIAL).setData(Uri.parse("tel:+12122537077")), 0);
-        // Make packageManager fail when it gets the following intent:
-        ArgumentMatcher<Intent> toFailIntent =
-                intent -> intent.getAction().equals(Intent.ACTION_INSERT_OR_EDIT);
-
-        when(fakePackageMgr.resolveActivity(any(Intent.class), anyInt())).thenReturn(validInfo);
-        when(fakePackageMgr.resolveActivity(argThat(toFailIntent), anyInt())).thenReturn(null);
-
-        ContextWrapper fakeContext = new ContextWrapper(mContext) {
-            @Override
-            public PackageManager getPackageManager() {
-                return fakePackageMgr;
-            }
-        };
+        Context fakeContext = new FakeContextBuilder()
+                .setAllIntentComponent(FakeContextBuilder.DEFAULT_COMPONENT)
+                .setIntentComponent(Intent.ACTION_INSERT_OR_EDIT, null)
+                .build();
 
         TextClassifier fallback = TextClassifier.NO_OP;
         TextClassifier classifier = new TextClassifierImpl(
@@ -411,102 +95,4 @@
         assertFalse(result.getActions().isEmpty());
         assertNotSame(result, fallbackResult);
     }
-
-    private boolean isTextClassifierDisabled() {
-        return mClassifier == TextClassifier.NO_OP;
-    }
-
-    private static Matcher<TextSelection> isTextSelection(
-            final int startIndex, final int endIndex, final String type) {
-        return new BaseMatcher<TextSelection>() {
-            @Override
-            public boolean matches(Object o) {
-                if (o instanceof TextSelection) {
-                    TextSelection selection = (TextSelection) o;
-                    return startIndex == selection.getSelectionStartIndex()
-                            && endIndex == selection.getSelectionEndIndex()
-                            && typeMatches(selection, type);
-                }
-                return false;
-            }
-
-            private boolean typeMatches(TextSelection selection, String type) {
-                return type == null
-                        || (selection.getEntityCount() > 0
-                                && type.trim().equalsIgnoreCase(selection.getEntity(0)));
-            }
-
-            @Override
-            public void describeTo(Description description) {
-                description.appendValue(
-                        String.format("%d, %d, %s", startIndex, endIndex, type));
-            }
-        };
-    }
-
-    private static Matcher<TextLinks> isTextLinksContaining(
-            final String text, final String substring, final String type) {
-        return new BaseMatcher<TextLinks>() {
-
-            @Override
-            public void describeTo(Description description) {
-                description.appendText("text=").appendValue(text)
-                        .appendText(", substring=").appendValue(substring)
-                        .appendText(", type=").appendValue(type);
-            }
-
-            @Override
-            public boolean matches(Object o) {
-                if (o instanceof TextLinks) {
-                    for (TextLinks.TextLink link : ((TextLinks) o).getLinks()) {
-                        if (text.subSequence(link.getStart(), link.getEnd()).equals(substring)) {
-                            return type.equals(link.getEntity(0));
-                        }
-                    }
-                }
-                return false;
-            }
-        };
-    }
-
-    private static Matcher<TextClassification> isTextClassification(
-            final String text, final String type) {
-        return new BaseMatcher<TextClassification>() {
-            @Override
-            public boolean matches(Object o) {
-                if (o instanceof TextClassification) {
-                    TextClassification result = (TextClassification) o;
-                    return text.equals(result.getText())
-                            && result.getEntityCount() > 0
-                            && type.equals(result.getEntity(0));
-                }
-                return false;
-            }
-
-            @Override
-            public void describeTo(Description description) {
-                description.appendText("text=").appendValue(text)
-                        .appendText(", type=").appendValue(type);
-            }
-        };
-    }
-
-    private static Matcher<TextLanguage> isTextLanguage(final String languageTag) {
-        return new BaseMatcher<TextLanguage>() {
-            @Override
-            public boolean matches(Object o) {
-                if (o instanceof TextLanguage) {
-                    TextLanguage result = (TextLanguage) o;
-                    return result.getLocaleHypothesisCount() > 0
-                            && languageTag.equals(result.getLocale(0).toLanguageTag());
-                }
-                return false;
-            }
-
-            @Override
-            public void describeTo(Description description) {
-                description.appendText("locale=").appendValue(languageTag);
-            }
-        };
-    }
 }
diff --git a/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java b/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java
new file mode 100644
index 0000000..fbcb629
--- /dev/null
+++ b/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java
@@ -0,0 +1,498 @@
+/*
+ * 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.view.textclassifier;
+
+import static org.hamcrest.CoreMatchers.not;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.LocaleList;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.text.Spannable;
+import android.text.SpannableString;
+
+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.junit.runners.Parameterized;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Testing {@link TextClassifierTest} APIs on local and system textclassifier.
+ * <p>
+ * Tests are skipped if such a textclassifier does not exist.
+ */
+@SmallTest
+@RunWith(Parameterized.class)
+public class TextClassifierTest {
+    private static final String LOCAL = "local";
+    private static final String SYSTEM = "system";
+
+    @Parameterized.Parameters(name = "{0}")
+    public static Iterable<Object> textClassifierTypes() {
+        return Arrays.asList(LOCAL);
+
+        // TODO: The following will fail on any device that specifies a no-op TextClassifierService.
+        // Enable when we can set a specified TextClassifierService for testing.
+        // return Arrays.asList(LOCAL, SYSTEM);
+    }
+
+    @Parameterized.Parameter
+    public String mTextClassifierType;
+
+    private static final TextClassificationConstants TC_CONSTANTS =
+            TextClassificationConstants.loadFromString("");
+    private static final LocaleList LOCALES = LocaleList.forLanguageTags("en-US");
+    private static final String NO_TYPE = null;
+
+    private Context mContext;
+    private TextClassificationManager mTcm;
+    private TextClassifier mClassifier;
+
+    @Before
+    public void setup() {
+        mContext = InstrumentationRegistry.getTargetContext();
+        mTcm = mContext.getSystemService(TextClassificationManager.class);
+        mClassifier = mTcm.getTextClassifier(
+                mTextClassifierType.equals(LOCAL) ? TextClassifier.LOCAL : TextClassifier.SYSTEM);
+    }
+
+    @Test
+    public void testSuggestSelection() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "Contact me at droid@android.com";
+        String selected = "droid";
+        String suggested = "droid@android.com";
+        int startIndex = text.indexOf(selected);
+        int endIndex = startIndex + selected.length();
+        int smartStartIndex = text.indexOf(suggested);
+        int smartEndIndex = smartStartIndex + suggested.length();
+        TextSelection.Request request = new TextSelection.Request.Builder(
+                text, startIndex, endIndex)
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextSelection selection = mClassifier.suggestSelection(request);
+        assertThat(selection,
+                isTextSelection(smartStartIndex, smartEndIndex, TextClassifier.TYPE_EMAIL));
+    }
+
+    @Test
+    public void testSuggestSelection_url() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "Visit http://www.android.com for more information";
+        String selected = "http";
+        String suggested = "http://www.android.com";
+        int startIndex = text.indexOf(selected);
+        int endIndex = startIndex + selected.length();
+        int smartStartIndex = text.indexOf(suggested);
+        int smartEndIndex = smartStartIndex + suggested.length();
+        TextSelection.Request request = new TextSelection.Request.Builder(
+                text, startIndex, endIndex)
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextSelection selection = mClassifier.suggestSelection(request);
+        assertThat(selection,
+                isTextSelection(smartStartIndex, smartEndIndex, TextClassifier.TYPE_URL));
+    }
+
+    @Test
+    public void testSmartSelection_withEmoji() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "\uD83D\uDE02 Hello.";
+        String selected = "Hello";
+        int startIndex = text.indexOf(selected);
+        int endIndex = startIndex + selected.length();
+        TextSelection.Request request = new TextSelection.Request.Builder(
+                text, startIndex, endIndex)
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextSelection selection = mClassifier.suggestSelection(request);
+        assertThat(selection,
+                isTextSelection(startIndex, endIndex, NO_TYPE));
+    }
+
+    @Test
+    public void testClassifyText() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "Contact me at droid@android.com";
+        String classifiedText = "droid@android.com";
+        int startIndex = text.indexOf(classifiedText);
+        int endIndex = startIndex + classifiedText.length();
+        TextClassification.Request request = new TextClassification.Request.Builder(
+                text, startIndex, endIndex)
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextClassification classification = mClassifier.classifyText(request);
+        assertThat(classification, isTextClassification(classifiedText, TextClassifier.TYPE_EMAIL));
+    }
+
+    @Test
+    public void testClassifyText_url() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "Visit www.android.com for more information";
+        String classifiedText = "www.android.com";
+        int startIndex = text.indexOf(classifiedText);
+        int endIndex = startIndex + classifiedText.length();
+        TextClassification.Request request = new TextClassification.Request.Builder(
+                text, startIndex, endIndex)
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextClassification classification = mClassifier.classifyText(request);
+        assertThat(classification, isTextClassification(classifiedText, TextClassifier.TYPE_URL));
+    }
+
+    @Test
+    public void testClassifyText_address() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "Brandschenkestrasse 110, Zürich, Switzerland";
+        TextClassification.Request request = new TextClassification.Request.Builder(
+                text, 0, text.length())
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextClassification classification = mClassifier.classifyText(request);
+        assertThat(classification, isTextClassification(text, TextClassifier.TYPE_ADDRESS));
+    }
+
+    @Test
+    public void testClassifyText_url_inCaps() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "Visit HTTP://ANDROID.COM for more information";
+        String classifiedText = "HTTP://ANDROID.COM";
+        int startIndex = text.indexOf(classifiedText);
+        int endIndex = startIndex + classifiedText.length();
+        TextClassification.Request request = new TextClassification.Request.Builder(
+                text, startIndex, endIndex)
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextClassification classification = mClassifier.classifyText(request);
+        assertThat(classification, isTextClassification(classifiedText, TextClassifier.TYPE_URL));
+    }
+
+    @Test
+    public void testClassifyText_date() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "Let's meet on January 9, 2018.";
+        String classifiedText = "January 9, 2018";
+        int startIndex = text.indexOf(classifiedText);
+        int endIndex = startIndex + classifiedText.length();
+        TextClassification.Request request = new TextClassification.Request.Builder(
+                text, startIndex, endIndex)
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextClassification classification = mClassifier.classifyText(request);
+        assertThat(classification, isTextClassification(classifiedText, TextClassifier.TYPE_DATE));
+    }
+
+    @Test
+    public void testClassifyText_datetime() {
+        if (isTextClassifierDisabled()) return;
+
+        String text = "Let's meet 2018/01/01 10:30:20.";
+        String classifiedText = "2018/01/01 10:30:20";
+        int startIndex = text.indexOf(classifiedText);
+        int endIndex = startIndex + classifiedText.length();
+        TextClassification.Request request = new TextClassification.Request.Builder(
+                text, startIndex, endIndex)
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextClassification classification = mClassifier.classifyText(request);
+        assertThat(classification,
+                isTextClassification(classifiedText, TextClassifier.TYPE_DATE_TIME));
+    }
+
+    @Test
+    public void testClassifyText_foreignText() {
+        LocaleList originalLocales = LocaleList.getDefault();
+        LocaleList.setDefault(LocaleList.forLanguageTags("en"));
+        String foreignText = "これは日本語のテキストです";
+
+        Context context = new FakeContextBuilder()
+                .setIntentComponent(Intent.ACTION_TRANSLATE, FakeContextBuilder.DEFAULT_COMPONENT)
+                .build();
+        TextClassifier classifier = new TextClassifierImpl(context, TC_CONSTANTS);
+        TextClassification.Request request = new TextClassification.Request.Builder(
+                foreignText, 0, foreignText.length())
+                .setDefaultLocales(LOCALES)
+                .build();
+
+        TextClassification classification = classifier.classifyText(request);
+        assertEquals(1, classification.getActions().size());
+        assertEquals(
+                context.getString(com.android.internal.R.string.translate),
+                classification.getActions().get(0).getTitle());
+
+        LocaleList.setDefault(originalLocales);
+    }
+
+    @Test
+    public void testGenerateLinks_phone() {
+        if (isTextClassifierDisabled()) return;
+        String text = "The number is +12122537077. See you tonight!";
+        TextLinks.Request request = new TextLinks.Request.Builder(text).build();
+        assertThat(mClassifier.generateLinks(request),
+                isTextLinksContaining(text, "+12122537077", TextClassifier.TYPE_PHONE));
+    }
+
+    @Test
+    public void testGenerateLinks_exclude() {
+        if (isTextClassifierDisabled()) return;
+        String text = "You want apple@banana.com. See you tonight!";
+        List<String> hints = Collections.EMPTY_LIST;
+        List<String> included = Collections.EMPTY_LIST;
+        List<String> excluded = Arrays.asList(TextClassifier.TYPE_EMAIL);
+        TextLinks.Request request = new TextLinks.Request.Builder(text)
+                .setEntityConfig(TextClassifier.EntityConfig.create(hints, included, excluded))
+                .setDefaultLocales(LOCALES)
+                .build();
+        assertThat(mClassifier.generateLinks(request),
+                not(isTextLinksContaining(text, "apple@banana.com", TextClassifier.TYPE_EMAIL)));
+    }
+
+    @Test
+    public void testGenerateLinks_explicit_address() {
+        if (isTextClassifierDisabled()) return;
+        String text = "The address is 1600 Amphitheater Parkway, Mountain View, CA. See you!";
+        List<String> explicit = Arrays.asList(TextClassifier.TYPE_ADDRESS);
+        TextLinks.Request request = new TextLinks.Request.Builder(text)
+                .setEntityConfig(TextClassifier.EntityConfig.createWithExplicitEntityList(explicit))
+                .setDefaultLocales(LOCALES)
+                .build();
+        assertThat(mClassifier.generateLinks(request),
+                isTextLinksContaining(text, "1600 Amphitheater Parkway, Mountain View, CA",
+                        TextClassifier.TYPE_ADDRESS));
+    }
+
+    @Test
+    public void testGenerateLinks_exclude_override() {
+        if (isTextClassifierDisabled()) return;
+        String text = "You want apple@banana.com. See you tonight!";
+        List<String> hints = Collections.EMPTY_LIST;
+        List<String> included = Arrays.asList(TextClassifier.TYPE_EMAIL);
+        List<String> excluded = Arrays.asList(TextClassifier.TYPE_EMAIL);
+        TextLinks.Request request = new TextLinks.Request.Builder(text)
+                .setEntityConfig(TextClassifier.EntityConfig.create(hints, included, excluded))
+                .setDefaultLocales(LOCALES)
+                .build();
+        assertThat(mClassifier.generateLinks(request),
+                not(isTextLinksContaining(text, "apple@banana.com", TextClassifier.TYPE_EMAIL)));
+    }
+
+    @Test
+    public void testGenerateLinks_maxLength() {
+        if (isTextClassifierDisabled()) return;
+        char[] manySpaces = new char[mClassifier.getMaxGenerateLinksTextLength()];
+        Arrays.fill(manySpaces, ' ');
+        TextLinks.Request request = new TextLinks.Request.Builder(new String(manySpaces)).build();
+        TextLinks links = mClassifier.generateLinks(request);
+        assertTrue(links.getLinks().isEmpty());
+    }
+
+    @Test
+    public void testApplyLinks_unsupportedCharacter() {
+        if (isTextClassifierDisabled()) return;
+        Spannable url = new SpannableString("\u202Emoc.diordna.com");
+        TextLinks.Request request = new TextLinks.Request.Builder(url).build();
+        assertEquals(
+                TextLinks.STATUS_UNSUPPORTED_CHARACTER,
+                mClassifier.generateLinks(request).apply(url, 0, null));
+    }
+
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testGenerateLinks_tooLong() {
+        if (isTextClassifierDisabled()) {
+            throw new IllegalArgumentException("pass if disabled");
+        }
+        char[] manySpaces = new char[mClassifier.getMaxGenerateLinksTextLength() + 1];
+        Arrays.fill(manySpaces, ' ');
+        TextLinks.Request request = new TextLinks.Request.Builder(new String(manySpaces)).build();
+        mClassifier.generateLinks(request);
+    }
+
+    @Test
+    public void testDetectLanguage() {
+        if (isTextClassifierDisabled()) return;
+        String text = "This is English text";
+        TextLanguage.Request request = new TextLanguage.Request.Builder(text).build();
+        TextLanguage textLanguage = mClassifier.detectLanguage(request);
+        assertThat(textLanguage, isTextLanguage("en"));
+    }
+
+    @Test
+    public void testDetectLanguage_japanese() {
+        if (isTextClassifierDisabled()) return;
+        String text = "これは日本語のテキストです";
+        TextLanguage.Request request = new TextLanguage.Request.Builder(text).build();
+        TextLanguage textLanguage = mClassifier.detectLanguage(request);
+        assertThat(textLanguage, isTextLanguage("ja"));
+    }
+
+    @Test
+    public void testSuggestConversationActions_textReplyOnly_maxThree() {
+        if (isTextClassifierDisabled()) return;
+        ConversationActions.Message message =
+                new ConversationActions.Message.Builder().setText("Hello").build();
+        ConversationActions.TypeConfig typeConfig =
+                new ConversationActions.TypeConfig.Builder().includeTypesFromTextClassifier(false)
+                        .setIncludedTypes(
+                                Collections.singletonList(ConversationActions.TYPE_TEXT_REPLY))
+                        .build();
+        ConversationActions.Request request =
+                new ConversationActions.Request.Builder(Collections.singletonList(message))
+                        .setMaxSuggestions(3)
+                        .setTypeConfig(typeConfig)
+                        .build();
+
+        ConversationActions conversationActions = mClassifier.suggestConversationActions(request);
+        assertTrue(conversationActions.getConversationActions().size() > 0);
+        assertTrue(conversationActions.getConversationActions().size() <= 3);
+        for (ConversationActions.ConversationAction conversationAction :
+                conversationActions.getConversationActions()) {
+            assertEquals(conversationAction.getType(), ConversationActions.TYPE_TEXT_REPLY);
+            assertNotNull(conversationAction.getTextReply());
+            assertTrue(conversationAction.getConfidenceScore() > 0);
+            assertTrue(conversationAction.getConfidenceScore() <= 1);
+        }
+    }
+
+
+    private boolean isTextClassifierDisabled() {
+        return mClassifier == null || mClassifier == TextClassifier.NO_OP;
+    }
+
+    private static Matcher<TextSelection> isTextSelection(
+            final int startIndex, final int endIndex, final String type) {
+        return new BaseMatcher<TextSelection>() {
+            @Override
+            public boolean matches(Object o) {
+                if (o instanceof TextSelection) {
+                    TextSelection selection = (TextSelection) o;
+                    return startIndex == selection.getSelectionStartIndex()
+                            && endIndex == selection.getSelectionEndIndex()
+                            && typeMatches(selection, type);
+                }
+                return false;
+            }
+
+            private boolean typeMatches(TextSelection selection, String type) {
+                return type == null
+                        || (selection.getEntityCount() > 0
+                        && type.trim().equalsIgnoreCase(selection.getEntity(0)));
+            }
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendValue(
+                        String.format("%d, %d, %s", startIndex, endIndex, type));
+            }
+        };
+    }
+
+    private static Matcher<TextLinks> isTextLinksContaining(
+            final String text, final String substring, final String type) {
+        return new BaseMatcher<TextLinks>() {
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("text=").appendValue(text)
+                        .appendText(", substring=").appendValue(substring)
+                        .appendText(", type=").appendValue(type);
+            }
+
+            @Override
+            public boolean matches(Object o) {
+                if (o instanceof TextLinks) {
+                    for (TextLinks.TextLink link : ((TextLinks) o).getLinks()) {
+                        if (text.subSequence(link.getStart(), link.getEnd()).equals(substring)) {
+                            return type.equals(link.getEntity(0));
+                        }
+                    }
+                }
+                return false;
+            }
+        };
+    }
+
+    private static Matcher<TextClassification> isTextClassification(
+            final String text, final String type) {
+        return new BaseMatcher<TextClassification>() {
+            @Override
+            public boolean matches(Object o) {
+                if (o instanceof TextClassification) {
+                    TextClassification result = (TextClassification) o;
+                    return text.equals(result.getText())
+                            && result.getEntityCount() > 0
+                            && type.equals(result.getEntity(0));
+                }
+                return false;
+            }
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("text=").appendValue(text)
+                        .appendText(", type=").appendValue(type);
+            }
+        };
+    }
+
+    private static Matcher<TextLanguage> isTextLanguage(final String languageTag) {
+        return new BaseMatcher<TextLanguage>() {
+            @Override
+            public boolean matches(Object o) {
+                if (o instanceof TextLanguage) {
+                    TextLanguage result = (TextLanguage) o;
+                    return result.getLocaleHypothesisCount() > 0
+                            && languageTag.equals(result.getLocale(0).toLanguageTag());
+                }
+                return false;
+            }
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("locale=").appendValue(languageTag);
+            }
+        };
+    }
+}
diff --git a/core/tests/coretests/src/android/widget/RemoteViewsTest.java b/core/tests/coretests/src/android/widget/RemoteViewsTest.java
index 4456122..36792bb 100644
--- a/core/tests/coretests/src/android/widget/RemoteViewsTest.java
+++ b/core/tests/coretests/src/android/widget/RemoteViewsTest.java
@@ -467,6 +467,21 @@
         assertArrayEquals(container.mSharedViewNames, new String[] {"e0", "e1", "e2"});
     }
 
+    @Test
+    public void setIntTag() {
+        RemoteViews views = new RemoteViews(mPackage, R.layout.remote_views_test);
+        int index = 10;
+        views.setIntTag(
+                R.id.layout, com.android.internal.R.id.notification_action_index_tag, index);
+
+        RemoteViews recovered = parcelAndRecreate(views);
+        RemoteViews cloned = new RemoteViews(recovered);
+        View inflated = cloned.apply(mContext, mContainer);
+
+        assertEquals(
+                index, inflated.getTag(com.android.internal.R.id.notification_action_index_tag));
+    }
+
     private class WidgetContainer extends AppWidgetHostView {
         int[] mSharedViewIds;
         String[] mSharedViewNames;
diff --git a/core/tests/coretests/src/android/widget/TextViewActivityTest.java b/core/tests/coretests/src/android/widget/TextViewActivityTest.java
index 70dc618..90758ba 100644
--- a/core/tests/coretests/src/android/widget/TextViewActivityTest.java
+++ b/core/tests/coretests/src/android/widget/TextViewActivityTest.java
@@ -983,6 +983,19 @@
     }
 
     @Test
+    public void testNoAssistItemForTextFieldWithUnsupportedCharacters() throws Throwable {
+        useSystemDefaultTextClassifier();
+        final String text = "\u202Emoc.diordna.com";
+        final TextView textView = mActivity.findViewById(R.id.textview);
+        mActivityRule.runOnUiThread(() -> textView.setText(text));
+        mInstrumentation.waitForIdleSync();
+
+        onView(withId(R.id.textview)).perform(longPressOnTextAtIndex(text.indexOf('.')));
+        sleepForFloatingToolbarPopup();
+        assertFloatingToolbarDoesNotContainItem(android.R.id.textAssist);
+    }
+
+    @Test
     public void testSelectionMetricsLogger_noAbandonAfterCopy() throws Throwable {
         final List<SelectionEvent> selectionEvents = new ArrayList<>();
         final TextClassifier classifier = new TextClassifier() {
diff --git a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
index 9fcb06e..404c99c 100644
--- a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
+++ b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
@@ -103,6 +103,49 @@
     }
 
     @Test
+    public void setMaxHeight() throws Exception {
+        Intent sendIntent = createSendImageIntent();
+        List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
+
+        when(sOverrides.resolverListController.getResolversForIntent(Mockito.anyBoolean(),
+                Mockito.anyBoolean(),
+                Mockito.isA(List.class))).thenReturn(resolvedComponentInfos);
+        waitForIdle();
+
+        final ResolverWrapperActivity activity = mActivityRule.launchActivity(sendIntent);
+        final View resolverList = activity.findViewById(R.id.resolver_list);
+        final int initialResolverHeight = resolverList.getHeight();
+
+        activity.runOnUiThread(() -> {
+            ResolverDrawerLayout layout = (ResolverDrawerLayout)
+                    activity.findViewById(
+                            R.id.contentPanel);
+            ((ResolverDrawerLayout.LayoutParams) resolverList.getLayoutParams()).maxHeight
+                = initialResolverHeight - 1;
+            // Force a relayout
+            layout.invalidate();
+            layout.requestLayout();
+        });
+        waitForIdle();
+        assertThat("Drawer should be capped at maxHeight",
+            resolverList.getHeight() == (initialResolverHeight - 1));
+
+        activity.runOnUiThread(() -> {
+            ResolverDrawerLayout layout = (ResolverDrawerLayout)
+                    activity.findViewById(
+                            R.id.contentPanel);
+            ((ResolverDrawerLayout.LayoutParams) resolverList.getLayoutParams()).maxHeight
+                = initialResolverHeight + 1;
+            // Force a relayout
+            layout.invalidate();
+            layout.requestLayout();
+        });
+        waitForIdle();
+        assertThat("Drawer should not change height if its height is less than maxHeight",
+            resolverList.getHeight() == initialResolverHeight);
+    }
+
+    @Test
     public void setShowAtTopToTrue() throws Exception {
         Intent sendIntent = createSendImageIntent();
         List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
index 3cfc644..225515e 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
@@ -39,6 +39,10 @@
         BatteryStatsUserLifecycleTests.class,
         KernelCpuProcReaderTest.class,
         KernelCpuProcStringReaderTest.class,
+        KernelCpuUidActiveTimeReaderTest.class,
+        KernelCpuUidClusterTimeReaderTest.class,
+        KernelCpuUidFreqTimeReaderTest.class,
+        KernelCpuUidUserSysTimeReaderTest.class,
         KernelMemoryBandwidthStatsTest.class,
         KernelSingleUidTimeReaderTest.class,
         KernelUidCpuFreqTimeReaderTest.class,
diff --git a/core/tests/coretests/src/com/android/internal/os/BinderCallsStatsTest.java b/core/tests/coretests/src/com/android/internal/os/BinderCallsStatsTest.java
index 30309cf..8691e73 100644
--- a/core/tests/coretests/src/com/android/internal/os/BinderCallsStatsTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/BinderCallsStatsTest.java
@@ -557,6 +557,62 @@
         assertEquals(0, bcs.getExceptionCounts().size());
     }
 
+    @Test
+    public void testOverflow_sameEntry() {
+        TestBinderCallsStats bcs = new TestBinderCallsStats();
+        bcs.setDetailedTracking(true);
+        bcs.setSamplingInterval(1);
+        bcs.setMaxBinderCallStats(2);
+
+        Binder binder = new Binder();
+        CallSession callSession = bcs.callStarted(binder, 1);
+        bcs.time += 10;
+        bcs.callEnded(callSession, REQUEST_SIZE, REPLY_SIZE);
+
+        callSession = bcs.callStarted(binder, 1);
+        bcs.callEnded(callSession, REQUEST_SIZE, REPLY_SIZE);
+
+        callSession = bcs.callStarted(binder, 1);
+        bcs.callEnded(callSession, REQUEST_SIZE, REPLY_SIZE);
+
+        BinderCallsStats.UidEntry uidEntry = bcs.getUidEntries().get(WORKSOURCE_UID);
+        List<BinderCallsStats.CallStat> callStatsList = new ArrayList(uidEntry.getCallStatsList());
+        assertEquals(1, callStatsList.size());
+        BinderCallsStats.CallStat callStats = callStatsList.get(0);
+        assertEquals(3, callStats.callCount);
+    }
+
+    @Test
+    public void testOverflow_overflowEntry() {
+        TestBinderCallsStats bcs = new TestBinderCallsStats();
+        bcs.setDetailedTracking(true);
+        bcs.setSamplingInterval(1);
+        bcs.setMaxBinderCallStats(1);
+
+        Binder binder = new Binder();
+        CallSession callSession = bcs.callStarted(binder, 1);
+        bcs.time += 10;
+        bcs.callEnded(callSession, REQUEST_SIZE, REPLY_SIZE);
+
+        callSession = bcs.callStarted(binder, 2);
+        bcs.callEnded(callSession, REQUEST_SIZE, REPLY_SIZE);
+
+        List<BinderCallsStats.ExportedCallStat> callStatsList = bcs.getExportedCallStats();
+        assertEquals(2, callStatsList.size());
+        BinderCallsStats.ExportedCallStat callStats = callStatsList.get(0);
+        assertEquals(1, callStats.callCount);
+        assertEquals("1", callStats.methodName);
+        assertEquals("android.os.Binder", callStats.className);
+        assertEquals(CALLING_UID, callStats.callingUid);
+
+        callStats = callStatsList.get(1);
+        assertEquals(1, callStats.callCount);
+        assertEquals("-1", callStats.methodName);
+        assertEquals("com.android.internal.os.BinderCallsStats$OverflowBinder",
+                callStats.className);
+        assertEquals(CALLING_UID, callStats.callingUid);
+    }
+
     class TestBinderCallsStats extends BinderCallsStats {
         public int callingUid = CALLING_UID;
         public int workSourceUid = WORKSOURCE_UID;
diff --git a/core/tests/coretests/src/com/android/internal/os/KernelCpuProcStringReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelCpuProcStringReaderTest.java
index dae9eb5..2663f2b 100644
--- a/core/tests/coretests/src/com/android/internal/os/KernelCpuProcStringReaderTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/KernelCpuProcStringReaderTest.java
@@ -37,6 +37,7 @@
 import java.io.File;
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.nio.CharBuffer;
 import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -149,7 +150,7 @@
                             + "0 0 1 1 1 0 2 0 221",
                     iter.nextLine().toString());
             long[] actual = new long[43];
-            iter.nextLineAsArray(actual);
+            KernelCpuProcStringReader.asLongs(iter.nextLine(), actual);
             assertArrayEquals(
                     new long[]{50227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
                             0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 721},
@@ -183,7 +184,7 @@
         }
     }
 
-    /** Tests nextLineToArray functionality. */
+    /** Tests reading lines, then converting to long[]. */
     @Test
     public void testReadLineToArray() throws Exception {
         final long[][] data = getTestArray(800, 50);
@@ -193,12 +194,32 @@
         long[] actual = new long[50];
         try (KernelCpuProcStringReader.ProcFileIterator iter = mReader.open()) {
             for (long[] expected : data) {
-                assertEquals(50, iter.nextLineAsArray(actual));
+                CharBuffer cb = iter.nextLine();
+                String before = cb.toString();
+                assertEquals(50, KernelCpuProcStringReader.asLongs(cb, actual));
                 assertArrayEquals(expected, actual);
+                assertEquals("Buffer not reset to the pos before reading", before, cb.toString());
             }
         }
     }
 
+    /** Tests error handling of converting to long[]. */
+    @Test
+    public void testLineToArrayErrorHandling() {
+        long[] actual = new long[100];
+        String invalidChar = "123: -1234 456";
+        String overflow = "123: 999999999999999999999999999999999999999999999999999999999 123";
+        CharBuffer cb = CharBuffer.wrap("----" + invalidChar + "+++", 4, 4 + invalidChar.length());
+        assertEquals("Failed to report err for: " + invalidChar, -2,
+                KernelCpuProcStringReader.asLongs(cb, actual));
+        assertEquals("Buffer not reset to the same pos before reading", invalidChar, cb.toString());
+
+        cb = CharBuffer.wrap("----" + overflow + "+++", 4, 4 + overflow.length());
+        assertEquals("Failed to report err for: " + overflow, -3,
+                KernelCpuProcStringReader.asLongs(cb, actual));
+        assertEquals("Buffer not reset to the pos before reading", overflow, cb.toString());
+    }
+
     /**
      * Tests that reading a file over the limit (1MB) will return null.
      */
diff --git a/core/tests/coretests/src/com/android/internal/os/KernelCpuThreadReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelCpuThreadReaderTest.java
index c866bc4..b242a34 100644
--- a/core/tests/coretests/src/com/android/internal/os/KernelCpuThreadReaderTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/KernelCpuThreadReaderTest.java
@@ -39,13 +39,16 @@
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.function.Predicate;
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class KernelCpuThreadReaderTest {
 
-    private static final String PROCESS_NAME = "test_process";
+    private static final int UID = 1000;
+    private static final int PROCESS_ID = 1234;
     private static final int[] THREAD_IDS = {0, 1000, 1235, 4321};
+    private static final String PROCESS_NAME = "test_process";
     private static final String[] THREAD_NAMES = {
             "test_thread_1", "test_thread_2", "test_thread_3", "test_thread_4"
     };
@@ -73,49 +76,126 @@
     }
 
     @Test
-    public void testSimple() throws IOException {
-        // Make /proc/self
-        final Path selfPath = mProcDirectory.toPath().resolve("self");
-        assertTrue(selfPath.toFile().mkdirs());
+    public void testReader_currentProcess() throws IOException {
+        KernelCpuThreadReader.Injector processUtils =
+                new KernelCpuThreadReader.Injector() {
+                    @Override
+                    public int myPid() {
+                        return PROCESS_ID;
+                    }
 
-        // Make /proc/self/task
-        final Path selfThreadsPath = selfPath.resolve("task");
+                    @Override
+                    public int myUid() {
+                        return UID;
+                    }
+
+                    @Override
+                    public int getUidForPid(int pid) {
+                        return 0;
+                    }
+                };
+        setupDirectory(mProcDirectory.toPath().resolve("self"), THREAD_IDS, PROCESS_NAME,
+                THREAD_NAMES, THREAD_CPU_FREQUENCIES, THREAD_CPU_TIMES);
+
+        final KernelCpuThreadReader kernelCpuThreadReader = new KernelCpuThreadReader(
+                mProcDirectory.toPath(),
+                mProcDirectory.toPath().resolve("self/task/" + THREAD_IDS[0] + "/time_in_state"),
+                processUtils);
+        final KernelCpuThreadReader.ProcessCpuUsage processCpuUsage =
+                kernelCpuThreadReader.getCurrentProcessCpuUsage();
+        checkResults(processCpuUsage, kernelCpuThreadReader.getCpuFrequenciesKhz(), UID, PROCESS_ID,
+                THREAD_IDS, PROCESS_NAME, THREAD_NAMES, THREAD_CPU_FREQUENCIES, THREAD_CPU_TIMES);
+    }
+
+    @Test
+    public void testReader_byUids() throws IOException {
+        int[] uids = new int[]{0, 2, 3, 4, 5, 6000};
+        Predicate<Integer> uidPredicate = uid -> uid == 0 || uid >= 4;
+        int[] expectedUids = new int[]{0, 4, 5, 6000};
+        KernelCpuThreadReader.Injector processUtils =
+                new KernelCpuThreadReader.Injector() {
+                    @Override
+                    public int myPid() {
+                        return 0;
+                    }
+
+                    @Override
+                    public int myUid() {
+                        return 0;
+                    }
+
+                    @Override
+                    public int getUidForPid(int pid) {
+                        return pid;
+                    }
+                };
+
+        for (int uid : uids) {
+            setupDirectory(mProcDirectory.toPath().resolve(String.valueOf(uid)),
+                    new int[]{uid * 10},
+                    "process" + uid, new String[]{"thread" + uid}, new int[]{1000},
+                    new int[][]{{uid}});
+        }
+        final KernelCpuThreadReader kernelCpuThreadReader = new KernelCpuThreadReader(
+                mProcDirectory.toPath(),
+                mProcDirectory.toPath().resolve(uids[0] + "/task/" + uids[0] + "/time_in_state"),
+                processUtils);
+        ArrayList<KernelCpuThreadReader.ProcessCpuUsage> processCpuUsageByUids =
+                kernelCpuThreadReader.getProcessCpuUsageByUids(uidPredicate);
+        processCpuUsageByUids.sort(Comparator.comparing(usage -> usage.processId));
+
+        assertEquals(expectedUids.length, processCpuUsageByUids.size());
+        for (int i = 0; i < expectedUids.length; i++) {
+            KernelCpuThreadReader.ProcessCpuUsage processCpuUsage =
+                    processCpuUsageByUids.get(i);
+            int uid = expectedUids[i];
+            checkResults(processCpuUsage, kernelCpuThreadReader.getCpuFrequenciesKhz(),
+                    uid, uid, new int[]{uid * 10}, "process" + uid, new String[]{"thread" + uid},
+                    new int[]{1000}, new int[][]{{uid}});
+        }
+    }
+
+    private void setupDirectory(Path processPath, int[] threadIds, String processName,
+            String[] threadNames, int[] cpuFrequencies, int[][] cpuTimes) throws IOException {
+        // Make /proc/$PID
+        assertTrue(processPath.toFile().mkdirs());
+
+        // Make /proc/$PID/task
+        final Path selfThreadsPath = processPath.resolve("task");
         assertTrue(selfThreadsPath.toFile().mkdirs());
 
-        // Make /proc/self/cmdline
-        Files.write(selfPath.resolve("cmdline"), PROCESS_NAME.getBytes());
+        // Make /proc/$PID/cmdline
+        Files.write(processPath.resolve("cmdline"), processName.getBytes());
 
         // Make thread directories in reverse order, as they are read in order of creation by
         // CpuThreadProcReader
-        for (int i = 0; i < THREAD_IDS.length; i++) {
-            // Make /proc/self/task/$TID
-            final Path threadPath = selfThreadsPath.resolve(String.valueOf(THREAD_IDS[i]));
+        for (int i = 0; i < threadIds.length; i++) {
+            // Make /proc/$PID/task/$TID
+            final Path threadPath = selfThreadsPath.resolve(String.valueOf(threadIds[i]));
             assertTrue(threadPath.toFile().mkdirs());
 
-            // Make /proc/self/task/$TID/comm
-            Files.write(threadPath.resolve("comm"), THREAD_NAMES[i].getBytes());
+            // Make /proc/$PID/task/$TID/comm
+            Files.write(threadPath.resolve("comm"), threadNames[i].getBytes());
 
-            // Make /proc/self/task/$TID/time_in_state
+            // Make /proc/$PID/task/$TID/time_in_state
             final OutputStream timeInStateStream =
                     Files.newOutputStream(threadPath.resolve("time_in_state"));
-            for (int j = 0; j < THREAD_CPU_FREQUENCIES.length; j++) {
-                final String line = String.valueOf(THREAD_CPU_FREQUENCIES[j]) + " "
-                        + String.valueOf(THREAD_CPU_TIMES[i][j]) + "\n";
+            for (int j = 0; j < cpuFrequencies.length; j++) {
+                final String line = String.valueOf(cpuFrequencies[j]) + " "
+                        + String.valueOf(cpuTimes[i][j]) + "\n";
                 timeInStateStream.write(line.getBytes());
             }
             timeInStateStream.close();
         }
+    }
 
-        final KernelCpuThreadReader kernelCpuThreadReader = new KernelCpuThreadReader(
-                mProcDirectory.toPath(),
-                mProcDirectory.toPath().resolve("self/task/" + THREAD_IDS[0] + "/time_in_state"));
-        final KernelCpuThreadReader.ProcessCpuUsage processCpuUsage =
-                kernelCpuThreadReader.getCurrentProcessCpuUsage();
-
+    private void checkResults(KernelCpuThreadReader.ProcessCpuUsage processCpuUsage,
+            int[] readerCpuFrequencies, int uid, int processId, int[] threadIds, String processName,
+            String[] threadNames, int[] cpuFrequencies, int[][] cpuTimes) {
         assertNotNull(processCpuUsage);
-        assertEquals(android.os.Process.myPid(), processCpuUsage.processId);
-        assertEquals(android.os.Process.myUid(), processCpuUsage.uid);
-        assertEquals(PROCESS_NAME, processCpuUsage.processName);
+        assertEquals(processId, processCpuUsage.processId);
+        assertEquals(uid, processCpuUsage.uid);
+        assertEquals(processName, processCpuUsage.processName);
 
         // Sort the thread CPU usages to compare with test case
         final ArrayList<KernelCpuThreadReader.ThreadCpuUsage> threadCpuUsages =
@@ -124,21 +204,21 @@
 
         int threadCount = 0;
         for (KernelCpuThreadReader.ThreadCpuUsage threadCpuUsage : threadCpuUsages) {
-            assertEquals(THREAD_IDS[threadCount], threadCpuUsage.threadId);
-            assertEquals(THREAD_NAMES[threadCount], threadCpuUsage.threadName);
+            assertEquals(threadIds[threadCount], threadCpuUsage.threadId);
+            assertEquals(threadNames[threadCount], threadCpuUsage.threadName);
 
             for (int i = 0; i < threadCpuUsage.usageTimesMillis.length; i++) {
                 assertEquals(
-                        THREAD_CPU_TIMES[threadCount][i] * 10,
+                        cpuTimes[threadCount][i] * 10,
                         threadCpuUsage.usageTimesMillis[i]);
                 assertEquals(
-                        THREAD_CPU_FREQUENCIES[i],
-                        kernelCpuThreadReader.getCpuFrequenciesKhz()[i]);
+                        cpuFrequencies[i],
+                        readerCpuFrequencies[i]);
             }
             threadCount++;
         }
 
-        assertEquals(threadCount, THREAD_IDS.length);
+        assertEquals(threadCount, threadIds.length);
     }
 
     @Test
diff --git a/core/tests/coretests/src/com/android/internal/os/KernelCpuUidActiveTimeReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidActiveTimeReaderTest.java
new file mode 100644
index 0000000..adafda0
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidActiveTimeReaderTest.java
@@ -0,0 +1,262 @@
+/*
+ * 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.internal.os;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Context;
+import android.os.FileUtils;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+import android.util.SparseLongArray;
+
+import com.android.internal.os.KernelCpuUidTimeReader.KernelCpuUidActiveTimeReader;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.Random;
+
+/**
+ * Test class for {@link KernelCpuUidActiveTimeReader}.
+ *
+ * $ atest FrameworksCoreTests:com.android.internal.os.KernelCpuUidActiveTimeReaderTest
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class KernelCpuUidActiveTimeReaderTest {
+    private File mTestDir;
+    private File mTestFile;
+    private KernelCpuUidActiveTimeReader mReader;
+    private VerifiableCallback mCallback;
+
+    private Random mRand = new Random(12345);
+    private final int mCpus = 4;
+    private final String mHeadline = "cpus: 4\n";
+    private final int[] mUids = {0, 1, 22, 333, 4444, 55555};
+
+    private Context getContext() {
+        return InstrumentationRegistry.getContext();
+    }
+
+    @Before
+    public void setUp() {
+        mTestDir = getContext().getDir("test", Context.MODE_PRIVATE);
+        mTestFile = new File(mTestDir, "test.file");
+        mReader = new KernelCpuUidActiveTimeReader(
+                new KernelCpuProcStringReader(mTestFile.getAbsolutePath()), false);
+        mCallback = new VerifiableCallback();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        FileUtils.deleteContents(mTestDir);
+        FileUtils.deleteContents(getContext().getFilesDir());
+    }
+
+    @Test
+    public void testReadDelta() throws Exception {
+        final long[][] times = increaseTime(new long[mUids.length][mCpus]);
+        writeToFile(mHeadline + uidLines(mUids, times));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], getActiveTime(times[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that a second call will only return deltas.
+        mCallback.clear();
+        final long[][] newTimes1 = increaseTime(times);
+        writeToFile(mHeadline + uidLines(mUids, newTimes1));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], getActiveTime(newTimes1[i]) - getActiveTime(times[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that there won't be a callback if the proc file values didn't change.
+        mCallback.clear();
+        mReader.readDelta(mCallback);
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that calling with a null callback doesn't result in any crashes
+        mCallback.clear();
+        final long[][] newTimes2 = increaseTime(newTimes1);
+        writeToFile(mHeadline + uidLines(mUids, newTimes2));
+        mReader.readDelta(null);
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that the readDelta call will only return deltas when
+        // the previous call had null callback.
+        mCallback.clear();
+        final long[][] newTimes3 = increaseTime(newTimes2);
+        writeToFile(mHeadline + uidLines(mUids, newTimes3));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], getActiveTime(newTimes3[i]) - getActiveTime(newTimes2[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+    }
+
+    @Test
+    public void testReadAbsolute() throws Exception {
+        final long[][] times1 = increaseTime(new long[mUids.length][mCpus]);
+        writeToFile(mHeadline + uidLines(mUids, times1));
+        mReader.readAbsolute(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], getActiveTime(times1[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that a second call should still return absolute values
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        writeToFile(mHeadline + uidLines(mUids, times2));
+        mReader.readAbsolute(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], getActiveTime(times2[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+    }
+
+    @Test
+    public void testReadDeltaDecreasedTime() throws Exception {
+        final long[][] times1 = increaseTime(new long[mUids.length][mCpus]);
+        writeToFile(mHeadline + uidLines(mUids, times1));
+        mReader.readDelta(mCallback);
+
+        // Verify that there should not be a callback for a particular UID if its time decreases.
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        System.arraycopy(times1[0], 0, times2[0], 0, mCpus);
+        times2[0][0] = 100;
+        writeToFile(mHeadline + uidLines(mUids, times2));
+        mReader.readDelta(mCallback);
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], getActiveTime(times2[i]) - getActiveTime(times1[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+
+        // Verify that the internal state was not modified.
+        mCallback.clear();
+        final long[][] times3 = increaseTime(times2);
+        times3[0] = increaseTime(times1)[0];
+        writeToFile(mHeadline + uidLines(mUids, times3));
+        mReader.readDelta(mCallback);
+        mCallback.verify(mUids[0], getActiveTime(times3[0]) - getActiveTime(times1[0]));
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], getActiveTime(times3[i]) - getActiveTime(times2[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+    }
+
+    @Test
+    public void testReadDeltaNegativeTime() throws Exception {
+        final long[][] times1 = increaseTime(new long[mUids.length][mCpus]);
+        writeToFile(mHeadline + uidLines(mUids, times1));
+        mReader.readDelta(mCallback);
+
+        // Verify that there should not be a callback for a particular UID if its time is -ve.
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        times2[0][0] *= -1;
+        writeToFile(mHeadline + uidLines(mUids, times2));
+        mReader.readDelta(mCallback);
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], getActiveTime(times2[i]) - getActiveTime(times1[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+
+        // Verify that the internal state was not modified.
+        mCallback.clear();
+        final long[][] times3 = increaseTime(times2);
+        times3[0] = increaseTime(times1)[0];
+        writeToFile(mHeadline + uidLines(mUids, times3));
+        mReader.readDelta(mCallback);
+        mCallback.verify(mUids[0], getActiveTime(times3[0]) - getActiveTime(times1[0]));
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], getActiveTime(times3[i]) - getActiveTime(times2[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+    }
+
+    private String uidLines(int[] uids, long[][] times) {
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < uids.length; i++) {
+            sb.append(uids[i]).append(':');
+            for (int j = 0; j < times[i].length; j++) {
+                sb.append(' ').append(times[i][j] / 10);
+            }
+            sb.append('\n');
+        }
+        return sb.toString();
+    }
+
+    private void writeToFile(String s) throws IOException {
+        try (BufferedWriter w = Files.newBufferedWriter(mTestFile.toPath())) {
+            w.write(s);
+            w.flush();
+        }
+    }
+
+    private long[][] increaseTime(long[][] original) {
+        long[][] newTime = new long[original.length][original[0].length];
+        for (int i = 0; i < original.length; i++) {
+            for (int j = 0; j < original[0].length; j++) {
+                newTime[i][j] = original[i][j] + mRand.nextInt(10000) * 1000 + 1000;
+            }
+        }
+        return newTime;
+    }
+
+    private long getActiveTime(long[] times) {
+        return times[0] + times[1] / 2 + times[2] / 3 + times[3] / 4;
+    }
+
+    private class VerifiableCallback implements KernelCpuUidTimeReader.Callback<Long> {
+        SparseLongArray mData = new SparseLongArray();
+
+        public void verify(int uid, long time) {
+            assertEquals(time, mData.get(uid));
+            mData.delete(uid);
+        }
+
+        public void clear() {
+            mData.clear();
+        }
+
+        @Override
+        public void onUidCpuTime(int uid, Long time) {
+            mData.put(uid, time);
+        }
+
+        public void verifyNoMoreInteractions() {
+            assertEquals(0, mData.size());
+        }
+    }
+}
diff --git a/core/tests/coretests/src/com/android/internal/os/KernelCpuUidClusterTimeReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidClusterTimeReaderTest.java
new file mode 100644
index 0000000..ad20d84
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidClusterTimeReaderTest.java
@@ -0,0 +1,278 @@
+/*
+ * 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.internal.os;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Context;
+import android.os.FileUtils;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+import android.util.SparseArray;
+
+import com.android.internal.os.KernelCpuUidTimeReader.KernelCpuUidClusterTimeReader;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.Random;
+
+/**
+ * Test class for {@link KernelCpuUidClusterTimeReader}.
+ *
+ * $ atest FrameworksCoreTests:com.android.internal.os.KernelCpuUidClusterTimeReaderTest
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class KernelCpuUidClusterTimeReaderTest {
+    private File mTestDir;
+    private File mTestFile;
+    private KernelCpuUidClusterTimeReader mReader;
+    private VerifiableCallback mCallback;
+
+    private Random mRand = new Random(12345);
+    private final int mCpus = 6;
+    private final String mHeadline = "policy0: 4 policy4: 2\n";
+    private final int[] mUids = {0, 1, 22, 333, 4444, 55555};
+
+    private Context getContext() {
+        return InstrumentationRegistry.getContext();
+    }
+
+    @Before
+    public void setUp() {
+        mTestDir = getContext().getDir("test", Context.MODE_PRIVATE);
+        mTestFile = new File(mTestDir, "test.file");
+        mReader = new KernelCpuUidClusterTimeReader(
+                new KernelCpuProcStringReader(mTestFile.getAbsolutePath()), false);
+        mCallback = new VerifiableCallback();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        FileUtils.deleteContents(mTestDir);
+        FileUtils.deleteContents(getContext().getFilesDir());
+    }
+
+    @Test
+    public void testReadDelta() throws Exception {
+        final long[][] times1 = increaseTime(new long[mUids.length][mCpus]);
+        writeToFile(mHeadline + uidLines(mUids, times1));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], clusterTime(times1[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that a second call will only return deltas.
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        writeToFile(mHeadline + uidLines(mUids, times2));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], subtract(clusterTime(times2[i]), clusterTime(times1[i])));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that there won't be a callback if the proc file values didn't change.
+        mCallback.clear();
+        mReader.readDelta(mCallback);
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that calling with a null callback doesn't result in any crashes
+        mCallback.clear();
+        final long[][] times3 = increaseTime(times2);
+        writeToFile(mHeadline + uidLines(mUids, times3));
+        mReader.readDelta(null);
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that the readDelta call will only return deltas when
+        // the previous call had null callback.
+        mCallback.clear();
+        final long[][] times4 = increaseTime(times3);
+        writeToFile(mHeadline + uidLines(mUids, times4));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], subtract(clusterTime(times4[i]), clusterTime(times3[i])));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+    }
+
+    @Test
+    public void testReadAbsolute() throws Exception {
+        final long[][] times1 = increaseTime(new long[mUids.length][mCpus]);
+        writeToFile(mHeadline + uidLines(mUids, times1));
+        mReader.readAbsolute(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], clusterTime(times1[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that a second call should still return absolute values
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        writeToFile(mHeadline + uidLines(mUids, times2));
+        mReader.readAbsolute(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], clusterTime(times2[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+    }
+
+    @Test
+    public void testReadDeltaDecreasedTime() throws Exception {
+        final long[][] times1 = increaseTime(new long[mUids.length][mCpus]);
+        writeToFile(mHeadline + uidLines(mUids, times1));
+        mReader.readDelta(mCallback);
+
+        // Verify that there should not be a callback for a particular UID if its time decreases.
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        System.arraycopy(times1[0], 0, times2[0], 0, mCpus);
+        times2[0][0] = 100;
+        writeToFile(mHeadline + uidLines(mUids, times2));
+        mReader.readDelta(mCallback);
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(clusterTime(times2[i]), clusterTime(times1[i])));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+
+        // Verify that the internal state was not modified.
+        mCallback.clear();
+        final long[][] times3 = increaseTime(times2);
+        times3[0] = increaseTime(times1)[0];
+        writeToFile(mHeadline + uidLines(mUids, times3));
+        mReader.readDelta(mCallback);
+        mCallback.verify(mUids[0], subtract(clusterTime(times3[0]), clusterTime(times1[0])));
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(clusterTime(times3[i]), clusterTime(times2[i])));
+        }
+        mCallback.verifyNoMoreInteractions();
+    }
+
+    @Test
+    public void testReadDeltaNegativeTime() throws Exception {
+        final long[][] times1 = increaseTime(new long[mUids.length][mCpus]);
+        writeToFile(mHeadline + uidLines(mUids, times1));
+        mReader.readDelta(mCallback);
+
+        // Verify that there should not be a callback for a particular UID if its time decreases.
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        times2[0][0] *= -1;
+        writeToFile(mHeadline + uidLines(mUids, times2));
+        mReader.readDelta(mCallback);
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(clusterTime(times2[i]), clusterTime(times1[i])));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+
+        // Verify that the internal state was not modified.
+        mCallback.clear();
+        final long[][] times3 = increaseTime(times2);
+        times3[0] = increaseTime(times1)[0];
+        writeToFile(mHeadline + uidLines(mUids, times3));
+        mReader.readDelta(mCallback);
+        mCallback.verify(mUids[0], subtract(clusterTime(times3[0]), clusterTime(times1[0])));
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(clusterTime(times3[i]), clusterTime(times2[i])));
+        }
+        mCallback.verifyNoMoreInteractions();
+    }
+
+    private long[] clusterTime(long[] times) {
+        // Assumes 4 + 2 cores
+        return new long[]{times[0] + times[1] / 2 + times[2] / 3 + times[3] / 4,
+                times[4] + times[5] / 2};
+    }
+
+    private String uidLines(int[] uids, long[][] times) {
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < uids.length; i++) {
+            sb.append(uids[i]).append(':');
+            for (int j = 0; j < times[i].length; j++) {
+                sb.append(' ').append(times[i][j] / 10);
+            }
+            sb.append('\n');
+        }
+        return sb.toString();
+    }
+
+    private void writeToFile(String s) throws IOException {
+        try (BufferedWriter w = Files.newBufferedWriter(mTestFile.toPath())) {
+            w.write(s);
+            w.flush();
+        }
+    }
+
+    private long[][] increaseTime(long[][] original) {
+        long[][] newTime = new long[original.length][original[0].length];
+        for (int i = 0; i < original.length; i++) {
+            for (int j = 0; j < original[0].length; j++) {
+                newTime[i][j] = original[i][j] + mRand.nextInt(10000) * 1000 + 1000;
+            }
+        }
+        return newTime;
+    }
+
+    private long[] subtract(long[] a1, long[] a2) {
+        long[] val = new long[a1.length];
+        for (int i = 0; i < val.length; ++i) {
+            val[i] = a1[i] - a2[i];
+        }
+        return val;
+    }
+
+    private class VerifiableCallback implements KernelCpuUidTimeReader.Callback<long[]> {
+        SparseArray<long[]> mData = new SparseArray<>();
+
+        public void verify(int uid, long[] cpuTimes) {
+            long[] array = mData.get(uid);
+            assertNotNull(array);
+            assertArrayEquals(cpuTimes, array);
+            mData.remove(uid);
+        }
+
+        public void clear() {
+            mData.clear();
+        }
+
+        @Override
+        public void onUidCpuTime(int uid, long[] times) {
+            long[] array = new long[times.length];
+            System.arraycopy(times, 0, array, 0, array.length);
+            mData.put(uid, array);
+        }
+
+        public void verifyNoMoreInteractions() {
+            assertEquals(0, mData.size());
+        }
+    }
+}
diff --git a/core/tests/coretests/src/com/android/internal/os/KernelCpuUidFreqTimeReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidFreqTimeReaderTest.java
new file mode 100644
index 0000000..1d3a98a
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidFreqTimeReaderTest.java
@@ -0,0 +1,359 @@
+/*
+ * 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.internal.os;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.FileUtils;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+import android.util.SparseArray;
+
+import com.android.internal.os.KernelCpuUidTimeReader.KernelCpuUidFreqTimeReader;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.Arrays;
+import java.util.Random;
+
+/**
+ * Test class for {@link KernelCpuUidFreqTimeReader}.
+ *
+ * $ atest FrameworksCoreTests:com.android.internal.os.KernelCpuUidFreqTimeReaderTest
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class KernelCpuUidFreqTimeReaderTest {
+    private File mTestDir;
+    private File mTestFile;
+    private KernelCpuUidFreqTimeReader mReader;
+    private VerifiableCallback mCallback;
+    @Mock
+    private PowerProfile mPowerProfile;
+
+    private Random mRand = new Random(12345);
+    private final int[] mUids = {0, 1, 22, 333, 4444, 55555};
+
+    private Context getContext() {
+        return InstrumentationRegistry.getContext();
+    }
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mTestDir = getContext().getDir("test", Context.MODE_PRIVATE);
+        mTestFile = new File(mTestDir, "test.file");
+        mReader = new KernelCpuUidFreqTimeReader(mTestFile.getAbsolutePath(),
+                new KernelCpuProcStringReader(mTestFile.getAbsolutePath()), false);
+        mCallback = new VerifiableCallback();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        FileUtils.deleteContents(mTestDir);
+        FileUtils.deleteContents(getContext().getFilesDir());
+    }
+
+    @Test
+    public void testReadFreqs_perClusterTimesNotAvailable() throws Exception {
+        final long[][] freqs = {
+                {1, 12, 123, 1234},
+                {1, 12, 123, 23, 123, 1234, 12345, 123456},
+                {1, 12, 123, 23, 123, 1234, 12345, 123456, 12, 123, 12345},
+                {1, 12, 123, 23, 2345, 234567}
+        };
+        final int[] numClusters = {2, 2, 3, 1};
+        final int[][] numFreqs = {{3, 6}, {4, 5}, {3, 5, 4}, {3}};
+        for (int i = 0; i < freqs.length; ++i) {
+            mReader = new KernelCpuUidFreqTimeReader(mTestFile.getAbsolutePath(),
+                    new KernelCpuProcStringReader(mTestFile.getAbsolutePath()), false);
+            setCpuClusterFreqs(numClusters[i], numFreqs[i]);
+            writeToFile(freqsLine(freqs[i]));
+            long[] actualFreqs = mReader.readFreqs(mPowerProfile);
+            assertArrayEquals(freqs[i], actualFreqs);
+            final String errMsg = String.format("Freqs=%s, nClusters=%d, nFreqs=%s",
+                    Arrays.toString(freqs[i]), numClusters[i], Arrays.toString(numFreqs[i]));
+            assertFalse(errMsg, mReader.perClusterTimesAvailable());
+
+            // Verify that a second call won't read the proc file again
+            assertTrue(mTestFile.delete());
+            actualFreqs = mReader.readFreqs(mPowerProfile);
+            assertArrayEquals(freqs[i], actualFreqs);
+            assertFalse(errMsg, mReader.perClusterTimesAvailable());
+        }
+    }
+
+    @Test
+    public void testReadFreqs_perClusterTimesAvailable() throws Exception {
+        final long[][] freqs = {
+                {1, 12, 123, 1234},
+                {1, 12, 123, 23, 123, 1234, 12345, 123456},
+                {1, 12, 123, 23, 123, 1234, 12345, 123456, 12, 123, 12345, 1234567}
+        };
+        final int[] numClusters = {1, 2, 3};
+        final int[][] numFreqs = {{4}, {3, 5}, {3, 5, 4}};
+        for (int i = 0; i < freqs.length; ++i) {
+            mReader = new KernelCpuUidFreqTimeReader(mTestFile.getAbsolutePath(),
+                    new KernelCpuProcStringReader(mTestFile.getAbsolutePath()), false);
+            setCpuClusterFreqs(numClusters[i], numFreqs[i]);
+            writeToFile(freqsLine(freqs[i]));
+            long[] actualFreqs = mReader.readFreqs(mPowerProfile);
+            assertArrayEquals(freqs[i], actualFreqs);
+            final String errMsg = String.format("Freqs=%s, nClusters=%d, nFreqs=%s",
+                    Arrays.toString(freqs[i]), numClusters[i], Arrays.toString(numFreqs[i]));
+            assertTrue(errMsg, mReader.perClusterTimesAvailable());
+
+            // Verify that a second call won't read the proc file again
+            assertTrue(mTestFile.delete());
+            actualFreqs = mReader.readFreqs(mPowerProfile);
+            assertArrayEquals(freqs[i], actualFreqs);
+            assertTrue(errMsg, mReader.perClusterTimesAvailable());
+        }
+    }
+
+    @Test
+    public void testReadDelta() throws Exception {
+        final long[] freqs = {110, 123, 145, 167, 289, 997};
+        final long[][] times = increaseTime(new long[mUids.length][freqs.length]);
+
+        writeToFile(freqsLine(freqs) + uidLines(mUids, times));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], times[i]);
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that readDelta also reads the frequencies if not already available.
+        assertTrue(mTestFile.delete());
+        long[] actualFreqs = mReader.readFreqs(mPowerProfile);
+        assertArrayEquals(freqs, actualFreqs);
+
+        // Verify that a second call will only return deltas.
+        mCallback.clear();
+        final long[][] newTimes1 = increaseTime(times);
+        writeToFile(freqsLine(freqs) + uidLines(mUids, newTimes1));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], subtract(newTimes1[i], times[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that there won't be a callback if the proc file values didn't change.
+        mCallback.clear();
+        mReader.readDelta(mCallback);
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that calling with a null callback doesn't result in any crashes
+        mCallback.clear();
+        final long[][] newTimes2 = increaseTime(newTimes1);
+        writeToFile(freqsLine(freqs) + uidLines(mUids, newTimes2));
+        mReader.readDelta(null);
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that the readDelta call will only return deltas when
+        // the previous call had null callback.
+        mCallback.clear();
+        final long[][] newTimes3 = increaseTime(newTimes2);
+        writeToFile(freqsLine(freqs) + uidLines(mUids, newTimes3));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], subtract(newTimes3[i], newTimes2[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+    }
+
+    @Test
+    public void testReadAbsolute() throws Exception {
+        final long[] freqs = {110, 123, 145, 167, 289, 997};
+        final long[][] times1 = increaseTime(new long[mUids.length][freqs.length]);
+
+        writeToFile(freqsLine(freqs) + uidLines(mUids, times1));
+        mReader.readAbsolute(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], times1[i]);
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that readDelta also reads the frequencies if not already available.
+        assertTrue(mTestFile.delete());
+        long[] actualFreqs = mReader.readFreqs(mPowerProfile);
+        assertArrayEquals(freqs, actualFreqs);
+
+        // Verify that a second call should still return absolute values
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        writeToFile(freqsLine(freqs) + uidLines(mUids, times2));
+        mReader.readAbsolute(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], times2[i]);
+        }
+        mCallback.verifyNoMoreInteractions();
+        assertTrue(mTestFile.delete());
+    }
+
+    @Test
+    public void testReadDeltaWrongData() throws Exception {
+        final long[] freqs = {110, 123, 145, 167, 289, 997};
+        final long[][] times1 = increaseTime(new long[mUids.length][freqs.length]);
+
+        writeToFile(freqsLine(freqs) + uidLines(mUids, times1));
+        mReader.readDelta(mCallback);
+
+        // Verify that there should not be a callback for a particular UID if its time decreases.
+        mCallback.clear();
+        final long[][] times2 = increaseTime(times1);
+        times2[0][0] = 1000;
+        writeToFile(freqsLine(freqs) + uidLines(mUids, times2));
+        mReader.readDelta(mCallback);
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(times2[i], times1[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that the internal state was not modified.
+        mCallback.clear();
+        final long[][] times3 = increaseTime(times2);
+        times3[0] = increaseTime(times1)[0];
+        writeToFile(freqsLine(freqs) + uidLines(mUids, times3));
+        mReader.readDelta(mCallback);
+        mCallback.verify(mUids[0], subtract(times3[0], times1[0]));
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(times3[i], times2[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that there is no callback if any value in the proc file is -ve.
+        mCallback.clear();
+        final long[][] times4 = increaseTime(times3);
+        times4[0][0] *= -1;
+        writeToFile(freqsLine(freqs) + uidLines(mUids, times4));
+        mReader.readDelta(mCallback);
+        for (int i = 1; i < mUids.length; ++i) {
+            mCallback.verify(mUids[i], subtract(times4[i], times3[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+
+        // Verify that the internal state was not modified when the proc file had -ve value.
+        mCallback.clear();
+        final long[][] times5 = increaseTime(times4);
+        times5[0] = increaseTime(times3)[0];
+        writeToFile(freqsLine(freqs) + uidLines(mUids, times5));
+        mReader.readDelta(mCallback);
+        mCallback.verify(mUids[0], subtract(times5[0], times3[0]));
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(times5[i], times4[i]));
+        }
+
+        assertTrue(mTestFile.delete());
+    }
+
+    private String freqsLine(long[] freqs) {
+        final StringBuilder sb = new StringBuilder();
+        sb.append("uid:");
+        for (int i = 0; i < freqs.length; ++i) {
+            sb.append(" " + freqs[i]);
+        }
+        return sb.append('\n').toString();
+    }
+
+    private void setCpuClusterFreqs(int numClusters, int... clusterFreqs) {
+        assertEquals(numClusters, clusterFreqs.length);
+        when(mPowerProfile.getNumCpuClusters()).thenReturn(numClusters);
+        for (int i = 0; i < numClusters; ++i) {
+            when(mPowerProfile.getNumSpeedStepsInCpuCluster(i)).thenReturn(clusterFreqs[i]);
+        }
+    }
+
+    private String uidLines(int[] uids, long[][] times) {
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < uids.length; i++) {
+            sb.append(uids[i]).append(':');
+            for (int j = 0; j < times[i].length; j++) {
+                sb.append(' ').append(times[i][j] / 10);
+            }
+            sb.append('\n');
+        }
+        return sb.toString();
+    }
+
+    private void writeToFile(String s) throws IOException {
+        try (BufferedWriter w = Files.newBufferedWriter(mTestFile.toPath())) {
+            w.write(s);
+            w.flush();
+        }
+    }
+
+    private long[][] increaseTime(long[][] original) {
+        long[][] newTime = new long[original.length][original[0].length];
+        for (int i = 0; i < original.length; i++) {
+            for (int j = 0; j < original[0].length; j++) {
+                newTime[i][j] = original[i][j] + mRand.nextInt(10000) * 10 + 10;
+            }
+        }
+        return newTime;
+    }
+
+    private long[] subtract(long[] a1, long[] a2) {
+        long[] val = new long[a1.length];
+        for (int i = 0; i < val.length; ++i) {
+            val[i] = a1[i] - a2[i];
+        }
+        return val;
+    }
+
+    private class VerifiableCallback implements KernelCpuUidTimeReader.Callback<long[]> {
+        SparseArray<long[]> mData = new SparseArray<>();
+
+        public void verify(int uid, long[] cpuTimes) {
+            long[] array = mData.get(uid);
+            assertNotNull(array);
+            assertArrayEquals(cpuTimes, array);
+            mData.remove(uid);
+        }
+
+        public void clear() {
+            mData.clear();
+        }
+
+        @Override
+        public void onUidCpuTime(int uid, long[] times) {
+            long[] array = new long[times.length];
+            System.arraycopy(times, 0, array, 0, array.length);
+            mData.put(uid, array);
+        }
+
+        public void verifyNoMoreInteractions() {
+            assertEquals(0, mData.size());
+        }
+    }
+}
diff --git a/core/tests/coretests/src/com/android/internal/os/KernelCpuUidUserSysTimeReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidUserSysTimeReaderTest.java
new file mode 100644
index 0000000..9b4512b
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/os/KernelCpuUidUserSysTimeReaderTest.java
@@ -0,0 +1,271 @@
+/*
+ * 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.internal.os;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Context;
+import android.os.FileUtils;
+import android.os.SystemClock;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+import android.util.SparseArray;
+
+import com.android.internal.os.KernelCpuUidTimeReader.KernelCpuUidUserSysTimeReader;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.Random;
+
+/**
+ * Test class for {@link KernelCpuUidUserSysTimeReader}.
+ *
+ * $ atest FrameworksCoreTests:com.android.internal.os.KernelCpuUidUserSysTimeReaderTest
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class KernelCpuUidUserSysTimeReaderTest {
+    private File mTestDir;
+    private File mTestFile;
+    private KernelCpuUidTimeReader.KernelCpuUidUserSysTimeReader mReader;
+    private VerifiableCallback mCallback;
+
+    private Random mRand = new Random(12345);
+    private final int[] mUids = {0, 1, 22, 333, 4444, 55555};
+    private final long[][] mInitialTimes = new long[][]{
+            {15334000, 310964000},
+            {537000, 114000},
+            {40000, 10000},
+            {170000, 57000},
+            {5377000, 867000},
+            {47000, 17000}
+    };
+
+    private Context getContext() {
+        return InstrumentationRegistry.getContext();
+    }
+
+    @Before
+    public void setUp() {
+        mTestDir = getContext().getDir("test", Context.MODE_PRIVATE);
+        mTestFile = new File(mTestDir, "test.file");
+        mReader = new KernelCpuUidUserSysTimeReader(
+                new KernelCpuProcStringReader(mTestFile.getAbsolutePath()), false);
+        mCallback = new VerifiableCallback();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        FileUtils.deleteContents(mTestDir);
+        FileUtils.deleteContents(getContext().getFilesDir());
+    }
+
+    @Test
+    public void testThrottler() throws Exception {
+        mReader = new KernelCpuUidUserSysTimeReader(
+                new KernelCpuProcStringReader(mTestFile.getAbsolutePath()), true);
+        mReader.setThrottle(500);
+
+        writeToFile(uidLines(mUids, mInitialTimes));
+        mReader.readDelta(mCallback);
+        assertEquals(6, mCallback.mData.size());
+
+        long[][] times1 = increaseTime(mInitialTimes);
+        writeToFile(uidLines(mUids, times1));
+        mCallback.clear();
+        mReader.readDelta(mCallback);
+        assertEquals(0, mCallback.mData.size());
+
+        SystemClock.sleep(600);
+
+        long[][] times2 = increaseTime(times1);
+        writeToFile(uidLines(mUids, times2));
+        mCallback.clear();
+        mReader.readDelta(mCallback);
+        assertEquals(6, mCallback.mData.size());
+
+        long[][] times3 = increaseTime(times2);
+        writeToFile(uidLines(mUids, times3));
+        mCallback.clear();
+        mReader.readDelta(mCallback);
+        assertEquals(0, mCallback.mData.size());
+    }
+
+    @Test
+    public void testReadDelta() throws Exception {
+        final long[][] times1 = mInitialTimes;
+        writeToFile(uidLines(mUids, times1));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], times1[i]);
+        }
+        mCallback.verifyNoMoreInteractions();
+        mCallback.clear();
+
+        // Verify that a second call will only return deltas.
+        final long[][] times2 = increaseTime(times1);
+        writeToFile(uidLines(mUids, times2));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(times2[i], times1[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        mCallback.clear();
+
+        // Verify that there won't be a callback if the proc file values didn't change.
+        mReader.readDelta(mCallback);
+        mCallback.verifyNoMoreInteractions();
+        mCallback.clear();
+
+        // Verify that calling with a null callback doesn't result in any crashes
+        final long[][] times3 = increaseTime(times2);
+        writeToFile(uidLines(mUids, times3));
+        mReader.readDelta(null);
+
+        // Verify that the readDelta call will only return deltas when
+        // the previous call had null callback.
+        final long[][] times4 = increaseTime(times3);
+        writeToFile(uidLines(mUids, times4));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(times4[i], times3[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        mCallback.clear();
+        assertTrue(mTestFile.delete());
+    }
+
+    @Test
+    public void testReadDeltaWrongData() throws Exception {
+        final long[][] times1 = mInitialTimes;
+        writeToFile(uidLines(mUids, times1));
+        mReader.readDelta(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], times1[i]);
+        }
+        mCallback.verifyNoMoreInteractions();
+        mCallback.clear();
+
+        // Verify that there should not be a callback for a particular UID if its time decreases.
+        final long[][] times2 = increaseTime(times1);
+        times2[0][0] = 1000;
+        writeToFile(uidLines(mUids, times2));
+        mReader.readDelta(mCallback);
+        for (int i = 1; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], subtract(times2[i], times1[i]));
+        }
+        mCallback.verifyNoMoreInteractions();
+        mCallback.clear();
+        assertTrue(mTestFile.delete());
+    }
+
+    @Test
+    public void testReadAbsolute() throws Exception {
+        final long[][] times1 = mInitialTimes;
+        writeToFile(uidLines(mUids, times1));
+        mReader.readAbsolute(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], times1[i]);
+        }
+        mCallback.verifyNoMoreInteractions();
+        mCallback.clear();
+
+        // Verify that a second call should still return absolute values
+        final long[][] times2 = increaseTime(times1);
+        writeToFile(uidLines(mUids, times2));
+        mReader.readAbsolute(mCallback);
+        for (int i = 0; i < mUids.length; i++) {
+            mCallback.verify(mUids[i], times2[i]);
+        }
+        mCallback.verifyNoMoreInteractions();
+        mCallback.clear();
+        assertTrue(mTestFile.delete());
+    }
+
+    private String uidLines(int[] uids, long[][] times) {
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < uids.length; i++) {
+            sb.append(uids[i]).append(':');
+            for (int j = 0; j < times[i].length; j++) {
+                sb.append(' ').append(times[i][j]);
+            }
+            sb.append('\n');
+        }
+        return sb.toString();
+    }
+
+    private void writeToFile(String s) throws IOException {
+        try (BufferedWriter w = Files.newBufferedWriter(mTestFile.toPath())) {
+            w.write(s);
+            w.flush();
+        }
+    }
+
+    private long[][] increaseTime(long[][] original) {
+        long[][] newTime = new long[original.length][original[0].length];
+        for (int i = 0; i < original.length; i++) {
+            for (int j = 0; j < original[0].length; j++) {
+                newTime[i][j] = original[i][j] + mRand.nextInt(1000) * 1000 + 1000;
+            }
+        }
+        return newTime;
+    }
+
+    private long[] subtract(long[] a1, long[] a2) {
+        long[] val = new long[a1.length];
+        for (int i = 0; i < val.length; ++i) {
+            val[i] = a1[i] - a2[i];
+        }
+        return val;
+    }
+
+    private class VerifiableCallback implements KernelCpuUidTimeReader.Callback<long[]> {
+        SparseArray<long[]> mData = new SparseArray<>();
+
+        public void verify(int uid, long[] cpuTimes) {
+            long[] array = mData.get(uid);
+            assertNotNull(array);
+            assertArrayEquals(cpuTimes, array);
+            mData.remove(uid);
+        }
+
+        public void clear() {
+            mData.clear();
+        }
+
+        @Override
+        public void onUidCpuTime(int uid, long[] times) {
+            long[] array = new long[times.length];
+            System.arraycopy(times, 0, array, 0, array.length);
+            mData.put(uid, array);
+        }
+
+        public void verifyNoMoreInteractions() {
+            assertEquals(0, mData.size());
+        }
+    }
+}
diff --git a/core/tests/coretests/src/com/android/internal/os/LooperStatsTest.java b/core/tests/coretests/src/com/android/internal/os/LooperStatsTest.java
index f637b7c..31dde5c 100644
--- a/core/tests/coretests/src/com/android/internal/os/LooperStatsTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/LooperStatsTest.java
@@ -105,7 +105,6 @@
         assertThat(entry.recordedDelayMessageCount).isEqualTo(1);
         assertThat(entry.delayMillis).isEqualTo(30);
         assertThat(entry.maxDelayMillis).isEqualTo(30);
-
     }
 
     @Test
@@ -429,6 +428,28 @@
         assertThat(entries).hasSize(0);
     }
 
+    @Test
+    public void testAddsDebugEntries() {
+        TestableLooperStats looperStats = new TestableLooperStats(1, 100);
+        looperStats.setAddDebugEntries(true);
+
+        Message message = mHandlerFirst.obtainMessage(1000);
+        message.when = looperStats.getSystemUptimeMillis();
+        Object token = looperStats.messageDispatchStarting();
+        looperStats.messageDispatched(token, message);
+
+        List<LooperStats.ExportedEntry> entries = looperStats.getEntries();
+        assertThat(entries).hasSize(3);
+        LooperStats.ExportedEntry debugEntry1 = entries.get(1);
+        assertThat(debugEntry1.handlerClassName).isEqualTo("");
+        assertThat(debugEntry1.messageName).isEqualTo("__DEBUG_start_time_millis");
+        assertThat(debugEntry1.maxDelayMillis).isEqualTo(looperStats.getStartTimeMillis());
+        LooperStats.ExportedEntry debugEntry2 = entries.get(2);
+        assertThat(debugEntry2.handlerClassName).isEqualTo("");
+        assertThat(debugEntry2.messageName).isEqualTo("__DEBUG_end_time_millis");
+        assertThat(debugEntry2.maxDelayMillis).isAtLeast(looperStats.getStartTimeMillis());
+    }
+
     private static void assertThrows(Class<? extends Exception> exceptionClass, Runnable r) {
         try {
             r.run();
@@ -450,6 +471,7 @@
             super(samplingInterval, sizeCap);
             this.mSamplingInterval = samplingInterval;
             this.setDeviceState(mDeviceState.getReadonlyClient());
+            this.setAddDebugEntries(false);
         }
 
         void tickRealtime(long micros) {
diff --git a/core/tests/coretests/src/com/android/internal/os/ProcTimeInStateReaderTest.java b/core/tests/coretests/src/com/android/internal/os/ProcTimeInStateReaderTest.java
index f2a531f..2893066 100644
--- a/core/tests/coretests/src/com/android/internal/os/ProcTimeInStateReaderTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/ProcTimeInStateReaderTest.java
@@ -70,6 +70,23 @@
     }
 
     @Test
+    public void testHeaderFormat() throws IOException {
+        final Path initialTimeInStateFile = mProcDirectory.toPath().resolve(
+                "initial-time-in-state");
+        Files.write(initialTimeInStateFile, "header1\n1 2\nheader2:\n3 4\n5 6\n7 8\n".getBytes());
+        final ProcTimeInStateReader reader = new ProcTimeInStateReader(initialTimeInStateFile);
+
+        assertArrayEquals(
+                "Reported frequencies are correct",
+                new long[]{1, 3, 5, 7},
+                reader.getFrequenciesKhz());
+        assertArrayEquals(
+                "Reported usage times are correct",
+                new long[]{20, 40, 60, 80},
+                reader.getUsageTimesMillis(initialTimeInStateFile));
+    }
+
+    @Test
     public void testDifferentFile() throws IOException {
         Path initialTimeInStateFile = mProcDirectory.toPath().resolve("initial-time-in-state");
         Files.write(initialTimeInStateFile, "1 2\n3 4\n5 6\n7 8\n".getBytes());
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index a4c5ed2..141948f 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -201,6 +201,24 @@
         <new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
     </split-permission>
 
+    <!-- Apps holding either the legacy READ or WRITE permissions will inherit
+         the ability to <em>read</em> new typed permissions in the Q release; they
+         won't gain the ability to <em>write</em> that content. -->
+    <!-- STOPSHIP(b/112545973): change targetSdk to Q when SDK version finalised -->
+    <split-permission name="android.permission.READ_EXTERNAL_STORAGE"
+                      targetSdk="10000">
+        <new-permission name="android.permission.READ_MEDIA_AUDIO" />
+        <new-permission name="android.permission.READ_MEDIA_VIDEO" />
+        <new-permission name="android.permission.READ_MEDIA_IMAGES" />
+    </split-permission>
+    <!-- STOPSHIP(b/112545973): change targetSdk to Q when SDK version finalised -->
+    <split-permission name="android.permission.WRITE_EXTERNAL_STORAGE"
+                      targetSdk="10000">
+        <new-permission name="android.permission.READ_MEDIA_AUDIO" />
+        <new-permission name="android.permission.READ_MEDIA_VIDEO" />
+        <new-permission name="android.permission.READ_MEDIA_IMAGES" />
+    </split-permission>
+
     <!-- This is a list of all the libraries available for application
          code to link against. -->
 
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index 3b0dc9d..135c137 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -64,7 +64,7 @@
     public boolean isRecordingFor(Object o) { return false; }
 
     // may be null
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 117521088)
     private Bitmap mBitmap;
 
     // optional field set by the caller
diff --git a/graphics/java/android/graphics/ColorSpace.java b/graphics/java/android/graphics/ColorSpace.java
index 2e1d81a..2227cf5 100644
--- a/graphics/java/android/graphics/ColorSpace.java
+++ b/graphics/java/android/graphics/ColorSpace.java
@@ -1779,6 +1779,70 @@
     }
 
     /**
+     * <p>Computes the chromaticity coordinates of a CIE series D illuminant
+     * from the specified correlated color temperature (CCT). The specified CCT
+     * must be greater than 0. A meaningful CCT range is [4000, 25000].</p>
+     *
+     * <p>The transform is computed using the methods referred to in Kang et
+     * al., <i>Design of Advanced Color - Temperature Control System for HDTV
+     * Applications</i>, Journal of Korean Physical Society 41, 865-871
+     * (2002).</p>
+     *
+     * @param cct The correlated color temperature, in Kelvin
+     * @return Corresponding XYZ values
+     * @throws IllegalArgumentException If cct is invalid
+     */
+    @NonNull
+    @Size(3)
+    public static float[] cctToIlluminantdXyz(@IntRange(from = 1) int cct) {
+        if (cct < 1) {
+            throw new IllegalArgumentException("Temperature must be greater than 0");
+        }
+
+        final float icct = 1.0f / cct;
+        final float icct2 = icct * icct;
+        final float x = cct <= 7000.0f ?
+            0.244063f + 0.09911e3f * icct + 2.9678e6f * icct2 - 4.6070e9f * icct2 * icct :
+            0.237040f + 0.24748e3f * icct + 1.9018e6f * icct2 - 2.0064e9f * icct2 * icct;
+        final float y = -3.0f * x * x + 2.87f * x - 0.275f;
+        return xyYToXyz(new float[] {x, y});
+    }
+
+    /**
+     * <p>Computes the chromatic adaptation transform from the specified
+     * source white point to the specified destination white point.</p>
+     *
+     * <p>The transform is computed using the von Kries method, described
+     * in more details in the documentation of {@link Adaptation}. The
+     * {@link Adaptation} enum provides different matrices that can be
+     * used to perform the adaptation.</p>
+     *
+     * @param adaptation The adaptation method
+     * @param srcWhitePoint The white point to adapt from
+     * @param dstWhitePoint The white point to adapt to
+     * @return A 3x3 matrix as a non-null array of 9 floats
+     */
+    @NonNull
+    @Size(9)
+    public static float[] chromaticAdaptation(@NonNull Adaptation adaptation,
+            @NonNull @Size(min = 2, max = 3) float[] srcWhitePoint,
+            @NonNull @Size(min = 2, max = 3) float[] dstWhitePoint) {
+        float[] srcXyz = srcWhitePoint.length == 3 ?
+            Arrays.copyOf(srcWhitePoint, 3) : xyYToXyz(srcWhitePoint);
+        float[] dstXyz = dstWhitePoint.length == 3 ?
+            Arrays.copyOf(dstWhitePoint, 3) : xyYToXyz(dstWhitePoint);
+
+        if (compare(srcXyz, dstXyz)) {
+            return new float[] {
+                1.0f, 0.0f, 0.0f,
+                0.0f, 1.0f, 0.0f,
+                0.0f, 0.0f, 1.0f
+            };
+        }
+        return chromaticAdaptation(adaptation.mTransform, srcXyz, dstXyz);
+    }
+
+    /**
      * Implementation of the CIE XYZ color space. Assumes the white point is D50.
      */
     @AnyThread
diff --git a/graphics/java/android/graphics/ImageDecoder.java b/graphics/java/android/graphics/ImageDecoder.java
index 009e042..e3b165c 100644
--- a/graphics/java/android/graphics/ImageDecoder.java
+++ b/graphics/java/android/graphics/ImageDecoder.java
@@ -1869,8 +1869,8 @@
         }
 
         float scale = (float) dstDensity / srcDensity;
-        int scaledWidth = (int) (mWidth * scale + 0.5f);
-        int scaledHeight = (int) (mHeight * scale + 0.5f);
+        int scaledWidth = Math.max((int) (mWidth * scale + 0.5f), 1);
+        int scaledHeight = Math.max((int) (mHeight * scale + 0.5f), 1);
         this.setTargetSize(scaledWidth, scaledHeight);
         return dstDensity;
     }
diff --git a/graphics/java/android/graphics/Insets.java b/graphics/java/android/graphics/Insets.java
index de110c8..d9da27c 100644
--- a/graphics/java/android/graphics/Insets.java
+++ b/graphics/java/android/graphics/Insets.java
@@ -82,6 +82,17 @@
     }
 
     /**
+     * Add two Insets.
+     *
+     * @param a The first Insets to add.
+     * @param b The second Insets to add.
+     * @return a + b, i. e. all insets on every side are added together.
+     */
+    public static @NonNull Insets add(@NonNull Insets a, @NonNull Insets b) {
+        return Insets.of(a.left + b.left, a.top + b.top, a.right + b.right, a.bottom + b.bottom);
+    }
+
+    /**
      * Two Insets instances are equal iff they belong to the same class and their fields are
      * pairwise equal.
      *
diff --git a/graphics/java/android/graphics/Rect.java b/graphics/java/android/graphics/Rect.java
index c4dc0ad..40a32f3 100644
--- a/graphics/java/android/graphics/Rect.java
+++ b/graphics/java/android/graphics/Rect.java
@@ -106,6 +106,20 @@
     }
 
     /**
+     * @hide
+     */
+    public Rect(@Nullable Insets r) {
+        if (r == null) {
+            left = top = right = bottom = 0;
+        } else {
+            left = r.left;
+            top = r.top;
+            right = r.right;
+            bottom = r.bottom;
+        }
+    }
+
+    /**
      * Returns a copy of {@code r} if {@code r} is not {@code null}, or {@code null} otherwise.
      *
      * @hide
@@ -418,6 +432,18 @@
     }
 
     /**
+     * Insets the rectangle on all sides specified by the dimensions of {@code insets}.
+     * @hide
+     * @param insets The insets to inset the rect by.
+     */
+    public void inset(Insets insets) {
+        left += insets.left;
+        top += insets.top;
+        right -= insets.right;
+        bottom -= insets.bottom;
+    }
+
+    /**
      * Insets the rectangle on all sides specified by the insets.
      * @hide
      * @param left The amount to add from the rectangle's left
diff --git a/graphics/java/android/graphics/RenderNode.java b/graphics/java/android/graphics/RenderNode.java
index 45d7a21..d6f08b9 100644
--- a/graphics/java/android/graphics/RenderNode.java
+++ b/graphics/java/android/graphics/RenderNode.java
@@ -1173,6 +1173,22 @@
         return nGetAllowForceDark(mNativeRenderNode);
     }
 
+    /**
+     * Returns the unique ID that identifies this RenderNode. This ID is unique for the
+     * lifetime of the process. IDs are reset on process death, and are unique only within
+     * the process.
+     *
+     * This ID is intended to be used with debugging tools to associate a particular
+     * RenderNode across different debug dumping & inspection tools. For example
+     * a View layout inspector should include the unique ID for any RenderNodes that it owns
+     * to associate the drawing content with the layout content.
+     *
+     * @return the unique ID for this RenderNode
+     */
+    public long getUniqueId() {
+        return nGetUniqueId(mNativeRenderNode);
+    }
+
     ///////////////////////////////////////////////////////////////////////////
     // Animations
     ///////////////////////////////////////////////////////////////////////////
@@ -1479,4 +1495,7 @@
 
     @CriticalNative
     private static native boolean nGetAllowForceDark(long renderNode);
+
+    @CriticalNative
+    private static native long nGetUniqueId(long renderNode);
 }
diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java
index bf969ef..9b86b77 100644
--- a/graphics/java/android/graphics/Typeface.java
+++ b/graphics/java/android/graphics/Typeface.java
@@ -163,9 +163,6 @@
     private int[] mSupportedAxes;
     private static final int[] EMPTY_AXES = {};
 
-    // The underlying font families.
-    private final FontFamily[] mFamilies;
-
     @UnsupportedAppUsage
     private static void setDefault(Typeface t) {
         sDefaultTypeface = t;
@@ -252,7 +249,22 @@
             if (familyBuilder == null) {
                 return Typeface.DEFAULT;
             }
-            typeface = new Typeface.CustomFallbackBuilder(familyBuilder.build()).build();
+            final FontFamily family = familyBuilder.build();
+            final FontStyle normal = new FontStyle(FontStyle.FONT_WEIGHT_NORMAL,
+                    FontStyle.FONT_SLANT_UPRIGHT);
+            Font bestFont = family.getFont(0);
+            int bestScore = normal.getMatchScore(bestFont.getStyle());
+            for (int i = 1; i < family.getSize(); ++i) {
+                final Font candidate = family.getFont(i);
+                final int score = normal.getMatchScore(candidate.getStyle());
+                if (score < bestScore) {
+                    bestFont = candidate;
+                    bestScore = score;
+                }
+            }
+            typeface = new Typeface.CustomFallbackBuilder(family)
+                    .setStyle(bestFont.getStyle())
+                    .build();
         } catch (IOException e) {
             typeface = Typeface.DEFAULT;
         }
@@ -652,6 +664,18 @@
         private @Nullable FontStyle mStyle;
 
         /**
+         * Returns the maximum capacity of custom fallback families.
+         *
+         * This includes the the first font family passed to the constructor.
+         * It is guaranteed that the value will be greater than or equal to 64.
+         *
+         * @return the maximum number of font families for the custom fallback
+         */
+        public static @IntRange(from = 64) int getMaxCustomFallbackCount() {
+            return MAX_CUSTOM_FALLBACK;
+        }
+
+        /**
          * Constructs a builder with a font family.
          *
          * @param family a family object
@@ -706,8 +730,8 @@
          */
         public CustomFallbackBuilder addCustomFallback(@NonNull FontFamily family) {
             Preconditions.checkNotNull(family);
-            Preconditions.checkArgument(mFamilies.size() < MAX_CUSTOM_FALLBACK,
-                    "Custom fallback limit exceeded(" + MAX_CUSTOM_FALLBACK + ")");
+            Preconditions.checkArgument(mFamilies.size() < getMaxCustomFallbackCount(),
+                    "Custom fallback limit exceeded(" + getMaxCustomFallbackCount() + ")");
             mFamilies.add(family);
             return this;
         }
@@ -720,21 +744,17 @@
         public Typeface build() {
             final int userFallbackSize = mFamilies.size();
             final FontFamily[] fallback = SystemFonts.getSystemFallback(mFallbackName);
-            final FontFamily[] fullFamilies = new FontFamily[fallback.length + userFallbackSize];
             final long[] ptrArray = new long[fallback.length + userFallbackSize];
             for (int i = 0; i < userFallbackSize; ++i) {
                 ptrArray[i] = mFamilies.get(i).getNativePtr();
-                fullFamilies[i] = mFamilies.get(i);
             }
             for (int i = 0; i < fallback.length; ++i) {
                 ptrArray[i + userFallbackSize] = fallback[i].getNativePtr();
-                fullFamilies[i + userFallbackSize] = fallback[i];
             }
             final int weight = mStyle == null ? 400 : mStyle.getWeight();
             final int italic =
                     (mStyle == null || mStyle.getSlant() == FontStyle.FONT_SLANT_UPRIGHT) ?  0 : 1;
-
-            return new Typeface(nativeCreateFromArray(ptrArray, weight, italic), fullFamilies);
+            return new Typeface(nativeCreateFromArray(ptrArray, weight, italic));
         }
     }
 
@@ -799,7 +819,7 @@
                 }
             }
 
-            typeface = new Typeface(nativeCreateFromTypeface(ni, style), family.mFamilies);
+            typeface = new Typeface(nativeCreateFromTypeface(ni, style));
             styles.put(style, typeface);
         }
         return typeface;
@@ -867,8 +887,7 @@
             }
 
             typeface = new Typeface(
-                    nativeCreateFromTypefaceWithExactStyle(
-                            base.native_instance, weight, italic), base.mFamilies);
+                    nativeCreateFromTypefaceWithExactStyle(base.native_instance, weight, italic));
             innerCache.put(key, typeface);
         }
         return typeface;
@@ -878,8 +897,7 @@
     public static Typeface createFromTypefaceWithVariation(@Nullable Typeface family,
             @NonNull List<FontVariationAxis> axes) {
         final Typeface base = family == null ? Typeface.DEFAULT : family;
-        return new Typeface(nativeCreateFromTypefaceWithVariation(base.native_instance, axes),
-                base.mFamilies);
+        return new Typeface(nativeCreateFromTypefaceWithVariation(base.native_instance, axes));
     }
 
     /**
@@ -985,7 +1003,7 @@
             ptrArray[i] = families[i].getNativePtr();
         }
         return new Typeface(nativeCreateFromArray(ptrArray,
-                  RESOLVE_BY_FONT_TABLE, RESOLVE_BY_FONT_TABLE), families);
+                  RESOLVE_BY_FONT_TABLE, RESOLVE_BY_FONT_TABLE));
     }
 
     /**
@@ -1033,19 +1051,6 @@
         }
 
         native_instance = ni;
-        mFamilies = new FontFamily[0];
-        sRegistry.registerNativeAllocation(this, native_instance);
-        mStyle = nativeGetStyle(ni);
-        mWeight = nativeGetWeight(ni);
-    }
-
-    private Typeface(long ni, @NonNull FontFamily[] families) {
-        if (ni == 0) {
-            throw new IllegalStateException("native typeface cannot be made");
-        }
-
-        native_instance = ni;
-        mFamilies = families;
         sRegistry.registerNativeAllocation(this, native_instance);
         mStyle = nativeGetStyle(ni);
         mWeight = nativeGetWeight(ni);
@@ -1072,8 +1077,7 @@
             final Typeface base = systemFontMap.get(alias.getToName());
             final int weight = alias.getWeight();
             final Typeface newFace = weight == 400 ? base :
-                    new Typeface(nativeCreateWeightAlias(base.native_instance, weight),
-                            base.mFamilies);
+                    new Typeface(nativeCreateWeightAlias(base.native_instance, weight));
             systemFontMap.put(alias.getName(), newFace);
         }
     }
diff --git a/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java b/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
index fdd638a..cb12a7c 100644
--- a/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
+++ b/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
@@ -19,6 +19,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.TestApi;
+import android.app.ActivityThread;
 import android.content.pm.ActivityInfo.Config;
 import android.content.res.ColorStateList;
 import android.content.res.Resources;
@@ -108,11 +109,10 @@
      * Scaled mask based on the view bounds.
      */
     private final Path mMask;
+    private final Path mMaskScaleOnly;
     private final Matrix mMaskMatrix;
     private final Region mTransparentRegion;
 
-    private Bitmap mMaskBitmap;
-
     /**
      * Indices used to access {@link #mLayerState.mChildDrawable} array for foreground and
      * background layer.
@@ -151,13 +151,16 @@
      */
     AdaptiveIconDrawable(@Nullable LayerState state, @Nullable Resources res) {
         mLayerState = createConstantState(state, res);
-
-        if (sMask == null) {
-            sMask = PathParser.createPathFromPathData(
-                Resources.getSystem().getString(R.string.config_icon_mask));
-        }
-        mMask = PathParser.createPathFromPathData(
-            Resources.getSystem().getString(R.string.config_icon_mask));
+        // config_icon_mask from context bound resource may have been chaged using
+        // OverlayManager. Read that one first.
+        Resources r = ActivityThread.currentActivityThread() == null
+                ? Resources.getSystem()
+                : ActivityThread.currentActivityThread().getApplication().getResources();
+        // TODO: either make sMask update only when config_icon_mask changes OR
+        // get rid of it all-together in layoutlib
+        sMask = PathParser.createPathFromPathData(r.getString(R.string.config_icon_mask));
+        mMask = new Path(sMask);
+        mMaskScaleOnly = new Path(mMask);
         mMaskMatrix = new Matrix();
         mCanvas = new Canvas();
         mTransparentRegion = new Region();
@@ -329,24 +332,19 @@
     }
 
     private void updateMaskBoundsInternal(Rect b) {
+        // reset everything that depends on the view bounds
         mMaskMatrix.setScale(b.width() / MASK_SIZE, b.height() / MASK_SIZE);
+        sMask.transform(mMaskMatrix, mMaskScaleOnly);
+
+        mMaskMatrix.postTranslate(b.left, b.top);
         sMask.transform(mMaskMatrix, mMask);
 
-        if (mMaskBitmap == null || mMaskBitmap.getWidth() != b.width() ||
-            mMaskBitmap.getHeight() != b.height()) {
-            mMaskBitmap = Bitmap.createBitmap(b.width(), b.height(), Bitmap.Config.ALPHA_8);
+        if (mLayersBitmap == null || mLayersBitmap.getWidth() != b.width()
+                || mLayersBitmap.getHeight() != b.height()) {
             mLayersBitmap = Bitmap.createBitmap(b.width(), b.height(), Bitmap.Config.ARGB_8888);
         }
-        // mMaskBitmap bound [0, w] x [0, h]
-        mCanvas.setBitmap(mMaskBitmap);
-        mPaint.setShader(null);
-        mCanvas.drawPath(mMask, mPaint);
 
-        // mMask bound [left, top, right, bottom]
-        mMaskMatrix.postTranslate(b.left, b.top);
-        mMask.reset();
-        sMask.transform(mMaskMatrix, mMask);
-        // reset everything that depends on the view bounds
+        mPaint.setShader(null);
         mTransparentRegion.setEmpty();
         mLayersShader = null;
     }
@@ -371,9 +369,11 @@
             mLayersShader = new BitmapShader(mLayersBitmap, TileMode.CLAMP, TileMode.CLAMP);
             mPaint.setShader(mLayersShader);
         }
-        if (mMaskBitmap != null) {
+        if (mMaskScaleOnly != null) {
             Rect bounds = getBounds();
-            canvas.drawBitmap(mMaskBitmap, bounds.left, bounds.top, mPaint);
+            canvas.translate(bounds.left, bounds.top);
+            canvas.drawPath(mMaskScaleOnly, mPaint);
+            canvas.translate(-bounds.left, -bounds.top);
         }
     }
 
@@ -549,7 +549,7 @@
 
         final ChildDrawable[] layers = mLayerState.mChildren;
         for (int i = 0; i < mLayerState.N_CHILDREN; i++) {
-            if (layers[i].mDrawable.isProjected()) {
+            if (layers[i].mDrawable != null && layers[i].mDrawable.isProjected()) {
                 return true;
             }
         }
@@ -674,7 +674,7 @@
 
     @Override
     public int getAlpha() {
-        return PixelFormat.TRANSLUCENT;
+        return mPaint.getAlpha();
     }
 
     @Override
@@ -718,10 +718,7 @@
 
     @Override
     public int getOpacity() {
-        if (mLayerState.mOpacityOverride != PixelFormat.UNKNOWN) {
-            return mLayerState.mOpacityOverride;
-        }
-        return mLayerState.getOpacity();
+        return PixelFormat.TRANSLUCENT;
     }
 
     @Override
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index caf610b..5bd59d4 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -713,11 +713,12 @@
     }
 
     /**
-     * Whether this drawable requests projection.
+     * Whether this drawable requests projection. Indicates that the
+     * {@link android.graphics.RenderNode} this Drawable will draw into should be drawn immediately
+     * after the closest ancestor RenderNode containing a projection receiver.
      *
-     * @hide magic!
+     * @see android.graphics.RenderNode#setProjectBackwards(boolean)
      */
-    @UnsupportedAppUsage
     public boolean isProjected() {
         return false;
     }
diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java
index 8740234..991847a 100644
--- a/graphics/java/android/graphics/drawable/GradientDrawable.java
+++ b/graphics/java/android/graphics/drawable/GradientDrawable.java
@@ -1571,15 +1571,32 @@
         st.mGradient = a.getInt(
                 R.styleable.GradientDrawableGradient_type, st.mGradient);
 
-        // TODO: Update these to be themeable.
+        final boolean hasGradientColors = st.mGradientColors != null;
+        final boolean hasGradientCenter = st.hasCenterColor();
+        final int prevStart = hasGradientColors ? st.mGradientColors[0] : 0;
+        final int prevCenter = hasGradientCenter ? st.mGradientColors[1] : 0;
+        final int prevEnd;
+
+        if (st.hasCenterColor()) {
+            // if there is a center color, the end color is the last of the 3 values
+            prevEnd = st.mGradientColors[2];
+        } else if (hasGradientColors) {
+            // if there is not a center color but there are already colors configured, then
+            // the end color is the 2nd value in the array
+            prevEnd = st.mGradientColors[1];
+        } else {
+            // otherwise, there isn't a previously configured end color
+            prevEnd = 0;
+        }
+
         final int startColor = a.getColor(
-                R.styleable.GradientDrawableGradient_startColor, 0);
+                R.styleable.GradientDrawableGradient_startColor, prevStart);
         final boolean hasCenterColor = a.hasValue(
-                R.styleable.GradientDrawableGradient_centerColor);
+                R.styleable.GradientDrawableGradient_centerColor) || hasGradientCenter;
         final int centerColor = a.getColor(
-                R.styleable.GradientDrawableGradient_centerColor, 0);
+                R.styleable.GradientDrawableGradient_centerColor, prevCenter);
         final int endColor = a.getColor(
-                R.styleable.GradientDrawableGradient_endColor, 0);
+                R.styleable.GradientDrawableGradient_endColor, prevEnd);
 
         if (hasCenterColor) {
             st.mGradientColors = new int[3];
@@ -1943,6 +1960,10 @@
             }
         }
 
+        public boolean hasCenterColor() {
+            return mGradientColors != null && mGradientColors.length == 3;
+        }
+
         private void applyDensityScaling(int sourceDensity, int targetDensity) {
             if (mInnerRadius > 0) {
                 mInnerRadius = Drawable.scaleFromDensity(
diff --git a/graphics/java/android/graphics/fonts/FontStyle.java b/graphics/java/android/graphics/fonts/FontStyle.java
index 82fc7ac..af517d6 100644
--- a/graphics/java/android/graphics/fonts/FontStyle.java
+++ b/graphics/java/android/graphics/fonts/FontStyle.java
@@ -18,6 +18,7 @@
 
 import android.annotation.IntDef;
 import android.annotation.IntRange;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 
 import com.android.internal.util.Preconditions;
@@ -232,6 +233,16 @@
         return mSlant;
     }
 
+    /**
+     * Compute the matching score for another style.
+     *
+     * The smaller is better.
+     * @hide
+     */
+    public int getMatchScore(@NonNull FontStyle o) {
+        return Math.abs((getWeight() - o.getWeight())) / 100 + (getSlant() == o.getSlant() ? 0 : 2);
+    }
+
     @Override
     public boolean equals(@Nullable Object o) {
         if (o == this) {
diff --git a/keystore/java/android/security/Credentials.java b/keystore/java/android/security/Credentials.java
index 7216a22..072fe73 100644
--- a/keystore/java/android/security/Credentials.java
+++ b/keystore/java/android/security/Credentials.java
@@ -282,8 +282,11 @@
      * Returns {@code true} if the entry no longer exists.
      */
     public static boolean deleteUserKeyTypeForAlias(KeyStore keystore, String alias, int uid) {
-        return keystore.delete(Credentials.USER_PRIVATE_KEY + alias, uid) ||
-                keystore.delete(Credentials.USER_SECRET_KEY + alias, uid);
+        int ret = keystore.delete2(Credentials.USER_PRIVATE_KEY + alias, uid);
+        if (ret == KeyStore.KEY_NOT_FOUND) {
+            return keystore.delete(Credentials.USER_SECRET_KEY + alias, uid);
+        }
+        return ret == KeyStore.NO_ERROR;
     }
 
     /**
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java
index 6d58d95..6e6ed30 100644
--- a/keystore/java/android/security/KeyStore.java
+++ b/keystore/java/android/security/KeyStore.java
@@ -267,16 +267,20 @@
         }
     }
 
-    public boolean delete(String key, int uid) {
+    int delete2(String key, int uid) {
         try {
-            int ret = mBinder.del(key, uid);
-            return (ret == NO_ERROR || ret == KEY_NOT_FOUND);
+            return mBinder.del(key, uid);
         } catch (RemoteException e) {
             Log.w(TAG, "Cannot connect to keystore", e);
-            return false;
+            return SYSTEM_ERROR;
         }
     }
 
+    public boolean delete(String key, int uid) {
+        int ret = delete2(key, uid);
+        return ret == NO_ERROR || ret == KEY_NOT_FOUND;
+    }
+
     @UnsupportedAppUsage
     public boolean delete(String key) {
         return delete(key, UID_SELF);
diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp
index 1cb0d25..365be10 100644
--- a/libs/androidfw/AssetManager.cpp
+++ b/libs/androidfw/AssetManager.cpp
@@ -349,7 +349,7 @@
                 goto exit;
             }
         }
-        ret = tables[0].createIdmap(tables[1], targetCrc, overlayCrc,
+        ret = tables[1].createIdmap(tables[0], targetCrc, overlayCrc,
                 targetApkPath, overlayApkPath, (void**)outData, outSize) == NO_ERROR;
     }
 
diff --git a/libs/androidfw/AssetManager2.cpp b/libs/androidfw/AssetManager2.cpp
index 7ab12b1..ad9ec02 100644
--- a/libs/androidfw/AssetManager2.cpp
+++ b/libs/androidfw/AssetManager2.cpp
@@ -217,10 +217,19 @@
   ATRACE_NAME("AssetManager::GetResourceConfigurations");
   std::set<ResTable_config> configurations;
   for (const PackageGroup& package_group : package_groups_) {
+    bool found_system_package = false;
     for (const ConfiguredPackage& package : package_group.packages_) {
       if (exclude_system && package.loaded_package_->IsSystem()) {
+        found_system_package = true;
         continue;
       }
+
+      if (exclude_system && package.loaded_package_->IsOverlay() && found_system_package) {
+        // Overlays must appear after the target package to take effect. Any overlay found in the
+        // same package as a system package is able to overlay system resources.
+        continue;
+      }
+
       package.loaded_package_->CollectConfigurations(exclude_mipmap, &configurations);
     }
   }
@@ -232,10 +241,19 @@
   ATRACE_NAME("AssetManager::GetResourceLocales");
   std::set<std::string> locales;
   for (const PackageGroup& package_group : package_groups_) {
+    bool found_system_package = false;
     for (const ConfiguredPackage& package : package_group.packages_) {
       if (exclude_system && package.loaded_package_->IsSystem()) {
+        found_system_package = true;
         continue;
       }
+
+      if (exclude_system && package.loaded_package_->IsOverlay() && found_system_package) {
+        // Overlays must appear after the target package to take effect. Any overlay found in the
+        // same package as a system package is able to overlay system resources.
+        continue;
+      }
+
       package.loaded_package_->CollectLocales(merge_equivalent_languages, &locales);
     }
   }
diff --git a/libs/androidfw/LoadedArsc.cpp b/libs/androidfw/LoadedArsc.cpp
index 68d216d..c20c720 100644
--- a/libs/androidfw/LoadedArsc.cpp
+++ b/libs/androidfw/LoadedArsc.cpp
@@ -583,7 +583,65 @@
           loaded_package->dynamic_package_map_.emplace_back(std::move(package_name),
                                                             dtohl(entry_iter->packageId));
         }
+      } break;
 
+      case RES_TABLE_OVERLAYABLE_TYPE: {
+        const ResTable_overlayable_header* header =
+            child_chunk.header<ResTable_overlayable_header>();
+        if (header == nullptr) {
+          LOG(ERROR) << "RES_TABLE_OVERLAYABLE_TYPE too small.";
+          return {};
+        }
+
+        // Iterate over the overlayable policy chunks
+        ChunkIterator overlayable_iter(child_chunk.data_ptr(), child_chunk.data_size());
+        while (overlayable_iter.HasNext()) {
+          const Chunk overlayable_child_chunk = overlayable_iter.Next();
+
+          switch (overlayable_child_chunk.type()) {
+            case RES_TABLE_OVERLAYABLE_POLICY_TYPE: {
+              const ResTable_overlayable_policy_header* policy_header =
+                  overlayable_child_chunk.header<ResTable_overlayable_policy_header>();
+              if (policy_header == nullptr) {
+                LOG(ERROR) << "RES_TABLE_OVERLAYABLE_POLICY_TYPE too small.";
+                return {};
+              }
+
+              if ((overlayable_child_chunk.data_size() / sizeof(ResTable_ref))
+                  < dtohl(policy_header->entry_count)) {
+                LOG(ERROR) <<  "RES_TABLE_OVERLAYABLE_POLICY_TYPE too small to hold entries.";
+                return {};
+              }
+
+              // Retrieve all the ids belonging to this policy
+              std::unordered_set<uint32_t> ids;
+              const auto ids_begin =
+                  reinterpret_cast<const ResTable_ref*>(overlayable_child_chunk.data_ptr());
+              const auto ids_end = ids_begin + dtohl(policy_header->entry_count);
+              for (auto id_iter = ids_begin; id_iter != ids_end; ++id_iter) {
+                ids.insert(dtohl(id_iter->ident));
+              }
+
+              // Add the pairing of overlayable properties to resource ids to the package
+              OverlayableInfo overlayable_info;
+              overlayable_info.policy_flags = policy_header->policy_flags;
+              loaded_package->overlayable_infos_.push_back(std::make_pair(overlayable_info, ids));
+              break;
+            }
+
+            default:
+              LOG(WARNING) << StringPrintf("Unknown chunk type '%02x'.", chunk.type());
+              break;
+          }
+        }
+
+        if (overlayable_iter.HadError()) {
+          LOG(ERROR) << StringPrintf("Error parsing RES_TABLE_OVERLAYABLE_POLICY_TYPE: %s",
+                                     overlayable_iter.GetLastError().c_str());
+          if (overlayable_iter.HadFatalError()) {
+            return {};
+          }
+        }
       } break;
 
       default:
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index 76db18d..63b2527 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -26,7 +26,9 @@
 
 #include <algorithm>
 #include <limits>
+#include <map>
 #include <memory>
+#include <set>
 #include <type_traits>
 
 #include <android-base/macros.h>
@@ -7033,178 +7035,206 @@
     return NO_ERROR;
 }
 
-struct IdmapTypeMap {
-    ssize_t overlayTypeId;
-    size_t entryOffset;
-    Vector<uint32_t> entryMap;
+class IdmapMatchingResources;
+
+class IdmapTypeMapping {
+public:
+    void add(uint32_t targetResId, uint32_t overlayResId) {
+        uint8_t targetTypeId = Res_GETTYPE(targetResId);
+        if (mData.find(targetTypeId) == mData.end()) {
+            mData.emplace(targetTypeId, std::set<std::pair<uint32_t, uint32_t>>());
+        }
+        auto& entries = mData[targetTypeId];
+        entries.insert(std::make_pair(targetResId, overlayResId));
+    }
+
+    bool empty() const {
+        return mData.empty();
+    }
+
+private:
+    // resource type ID in context of target -> set of resource entries mapping target -> overlay
+    std::map<uint8_t, std::set<std::pair<uint32_t, uint32_t>>> mData;
+
+    friend IdmapMatchingResources;
 };
 
-status_t ResTable::createIdmap(const ResTable& overlay,
+class IdmapMatchingResources {
+public:
+    IdmapMatchingResources(std::unique_ptr<IdmapTypeMapping> tm) : mTypeMapping(std::move(tm)) {
+        assert(mTypeMapping);
+        for (auto ti = mTypeMapping->mData.cbegin(); ti != mTypeMapping->mData.cend(); ++ti) {
+            uint32_t lastSeen = 0xffffffff;
+            size_t totalEntries = 0;
+            for (auto ei = ti->second.cbegin(); ei != ti->second.cend(); ++ei) {
+                assert(lastSeen == 0xffffffff || lastSeen < ei->first);
+                mEntryPadding[ei->first] = (lastSeen == 0xffffffff) ? 0 : ei->first - lastSeen - 1;
+                lastSeen = ei->first;
+                totalEntries += 1 + mEntryPadding[ei->first];
+            }
+            mNumberOfEntriesIncludingPadding[ti->first] = totalEntries;
+        }
+    }
+
+    const std::map<uint8_t, std::set<std::pair<uint32_t, uint32_t>>>& getTypeMapping() const {
+        return mTypeMapping->mData;
+    }
+
+    size_t getNumberOfEntriesIncludingPadding(uint8_t type) const {
+        return mNumberOfEntriesIncludingPadding.at(type);
+    }
+
+    size_t getPadding(uint32_t resid) const {
+        return mEntryPadding.at(resid);
+    }
+
+private:
+    // resource type ID in context of target -> set of resource entries mapping target -> overlay
+    const std::unique_ptr<IdmapTypeMapping> mTypeMapping;
+
+    // resource ID in context of target -> trailing padding for that resource (call FixPadding
+    // before use)
+    std::map<uint32_t, size_t> mEntryPadding;
+
+    // resource type ID in context of target -> total number of entries, including padding entries,
+    // for that type (call FixPadding before use)
+    std::map<uint8_t, size_t> mNumberOfEntriesIncludingPadding;
+};
+
+status_t ResTable::createIdmap(const ResTable& targetResTable,
         uint32_t targetCrc, uint32_t overlayCrc,
         const char* targetPath, const char* overlayPath,
         void** outData, size_t* outSize) const
 {
-    // see README for details on the format of map
-    if (mPackageGroups.size() == 0) {
-        ALOGW("idmap: target package has no package groups, cannot create idmap\n");
+    if (targetPath == NULL || overlayPath == NULL || outData == NULL || outSize == NULL) {
+        ALOGE("idmap: unexpected NULL parameter");
+        return UNKNOWN_ERROR;
+    }
+    if (strlen(targetPath) > 255) {
+        ALOGE("idmap: target path exceeds idmap file format limit of 255 chars");
+        return UNKNOWN_ERROR;
+    }
+    if (strlen(overlayPath) > 255) {
+        ALOGE("idmap: overlay path exceeds idmap file format limit of 255 chars");
+        return UNKNOWN_ERROR;
+    }
+    if (mPackageGroups.size() == 0 || mPackageGroups[0]->packages.size() == 0) {
+        ALOGE("idmap: invalid overlay package");
+        return UNKNOWN_ERROR;
+    }
+    if (targetResTable.mPackageGroups.size() == 0 ||
+            targetResTable.mPackageGroups[0]->packages.size() == 0) {
+        ALOGE("idmap: invalid target package");
         return UNKNOWN_ERROR;
     }
 
-    if (mPackageGroups[0]->packages.size() == 0) {
-        ALOGW("idmap: target package has no packages in its first package group, "
-                "cannot create idmap\n");
-        return UNKNOWN_ERROR;
-    }
+    const ResTable_package* targetPackageStruct =
+        targetResTable.mPackageGroups[0]->packages[0]->package;
+    const size_t tmpNameSize = arraysize(targetPackageStruct->name);
+    char16_t tmpName[tmpNameSize];
+    strcpy16_dtoh(tmpName, targetPackageStruct->name, tmpNameSize);
+    const String16 targetPackageName(tmpName);
 
-    // The number of resources overlaid that were not explicitly marked overlayable.
-    size_t forcedOverlayCount = 0u;
+    const PackageGroup* packageGroup = mPackageGroups[0];
 
-    KeyedVector<uint8_t, IdmapTypeMap> map;
-
-    // overlaid packages are assumed to contain only one package group
-    const PackageGroup* pg = mPackageGroups[0];
-
-    // starting size is header
-    *outSize = ResTable::IDMAP_HEADER_SIZE_BYTES;
-
-    // target package id and number of types in map
-    *outSize += 2 * sizeof(uint16_t);
-
-    // overlay packages are assumed to contain only one package group
-    const ResTable_package* overlayPackageStruct = overlay.mPackageGroups[0]->packages[0]->package;
-    char16_t tmpName[sizeof(overlayPackageStruct->name)/sizeof(overlayPackageStruct->name[0])];
-    strcpy16_dtoh(tmpName, overlayPackageStruct->name, sizeof(overlayPackageStruct->name)/sizeof(overlayPackageStruct->name[0]));
-    const String16 overlayPackage(tmpName);
-
-    for (size_t typeIndex = 0; typeIndex < pg->types.size(); ++typeIndex) {
-        const TypeList& typeList = pg->types[typeIndex];
+    // find the resources that exist in both packages
+    auto typeMapping = std::make_unique<IdmapTypeMapping>();
+    for (size_t typeIndex = 0; typeIndex < packageGroup->types.size(); ++typeIndex) {
+        const TypeList& typeList = packageGroup->types[typeIndex];
         if (typeList.isEmpty()) {
             continue;
         }
-
         const Type* typeConfigs = typeList[0];
 
-        IdmapTypeMap typeMap;
-        typeMap.overlayTypeId = -1;
-        typeMap.entryOffset = 0;
-
         for (size_t entryIndex = 0; entryIndex < typeConfigs->entryCount; ++entryIndex) {
-            uint32_t resID = Res_MAKEID(pg->id - 1, typeIndex, entryIndex);
-            resource_name resName;
-            if (!this->getResourceName(resID, false, &resName)) {
-                if (typeMap.entryMap.isEmpty()) {
-                    typeMap.entryOffset++;
-                }
+            uint32_t overlay_resid = Res_MAKEID(packageGroup->id - 1, typeIndex, entryIndex);
+            resource_name current_res;
+            if (!getResourceName(overlay_resid, false, &current_res)) {
                 continue;
             }
 
             uint32_t typeSpecFlags = 0u;
-            const String16 overlayType(resName.type, resName.typeLen);
-            const String16 overlayName(resName.name, resName.nameLen);
-            uint32_t overlayResID = overlay.identifierForName(overlayName.string(),
-                                                              overlayName.size(),
-                                                              overlayType.string(),
-                                                              overlayType.size(),
-                                                              overlayPackage.string(),
-                                                              overlayPackage.size(),
-                                                              &typeSpecFlags);
-            if (overlayResID == 0) {
-                // No such target resource was found.
-                if (typeMap.entryMap.isEmpty()) {
-                    typeMap.entryOffset++;
-                }
+            const uint32_t target_resid = targetResTable.identifierForName(
+                    current_res.name,
+                    current_res.nameLen,
+                    current_res.type,
+                    current_res.typeLen,
+                    targetPackageName.string(),
+                    targetPackageName.size(),
+                    &typeSpecFlags);
+
+            if (target_resid == 0) {
                 continue;
             }
 
-            // Now that we know this is being overlaid, check if it can be, and emit a warning if
-            // it can't.
-            if ((dtohl(typeConfigs->typeSpecFlags[entryIndex]) &
-                    ResTable_typeSpec::SPEC_OVERLAYABLE) == 0) {
-                forcedOverlayCount++;
-            }
-
-            if (typeMap.overlayTypeId == -1) {
-                typeMap.overlayTypeId = Res_GETTYPE(overlayResID) + 1;
-            }
-
-            if (Res_GETTYPE(overlayResID) + 1 != static_cast<size_t>(typeMap.overlayTypeId)) {
-                ALOGE("idmap: can't mix type ids in entry map. Resource 0x%08x maps to 0x%08x"
-                        " but entries should map to resources of type %02zx",
-                        resID, overlayResID, typeMap.overlayTypeId);
-                return BAD_TYPE;
-            }
-
-            if (typeMap.entryOffset + typeMap.entryMap.size() < entryIndex) {
-                // pad with 0xffffffff's (indicating non-existing entries) before adding this entry
-                size_t index = typeMap.entryMap.size();
-                size_t numItems = entryIndex - (typeMap.entryOffset + index);
-                if (typeMap.entryMap.insertAt(0xffffffff, index, numItems) < 0) {
-                    return NO_MEMORY;
-                }
-            }
-            typeMap.entryMap.add(Res_GETENTRY(overlayResID));
-        }
-
-        if (!typeMap.entryMap.isEmpty()) {
-            if (map.add(static_cast<uint8_t>(typeIndex), typeMap) < 0) {
-                return NO_MEMORY;
-            }
-            *outSize += (4 * sizeof(uint16_t)) + (typeMap.entryMap.size() * sizeof(uint32_t));
+            typeMapping->add(target_resid, overlay_resid);
         }
     }
 
-    if (map.isEmpty()) {
-        ALOGW("idmap: no resources in overlay package present in base package");
+    if (typeMapping->empty()) {
+        ALOGE("idmap: no matching resources");
         return UNKNOWN_ERROR;
     }
 
+    const IdmapMatchingResources matchingResources(std::move(typeMapping));
+
+    // write idmap
+    *outSize = ResTable::IDMAP_HEADER_SIZE_BYTES; // magic, version, target and overlay crc
+    *outSize += 2 * sizeof(uint16_t); // target package id, type count
+    auto fixedTypeMapping = matchingResources.getTypeMapping();
+    const auto typesEnd = fixedTypeMapping.cend();
+    for (auto ti = fixedTypeMapping.cbegin(); ti != typesEnd; ++ti) {
+        *outSize += 4 * sizeof(uint16_t); // target type, overlay type, entry count, entry offset
+        *outSize += matchingResources.getNumberOfEntriesIncludingPadding(ti->first) *
+            sizeof(uint32_t); // entries
+    }
     if ((*outData = malloc(*outSize)) == NULL) {
         return NO_MEMORY;
     }
 
-    uint32_t* data = (uint32_t*)*outData;
-    *data++ = htodl(IDMAP_MAGIC);
-    *data++ = htodl(ResTable::IDMAP_CURRENT_VERSION);
-    *data++ = htodl(targetCrc);
-    *data++ = htodl(overlayCrc);
-    const char* paths[] = { targetPath, overlayPath };
-    for (int j = 0; j < 2; ++j) {
-        char* p = (char*)data;
-        const char* path = paths[j];
-        const size_t I = strlen(path);
-        if (I > 255) {
-            ALOGV("path exceeds expected 255 characters: %s\n", path);
-            return UNKNOWN_ERROR;
-        }
-        for (size_t i = 0; i < 256; ++i) {
-            *p++ = i < I ? path[i] : '\0';
-        }
-        data += 256 / sizeof(uint32_t);
-    }
-    const size_t mapSize = map.size();
-    uint16_t* typeData = reinterpret_cast<uint16_t*>(data);
-    *typeData++ = htods(pg->id);
-    *typeData++ = htods(mapSize);
-    for (size_t i = 0; i < mapSize; ++i) {
-        uint8_t targetTypeId = map.keyAt(i);
-        const IdmapTypeMap& typeMap = map[i];
-        *typeData++ = htods(targetTypeId + 1);
-        *typeData++ = htods(typeMap.overlayTypeId);
-        *typeData++ = htods(typeMap.entryMap.size());
-        *typeData++ = htods(typeMap.entryOffset);
+    // write idmap header
+    uint32_t* data = reinterpret_cast<uint32_t*>(*outData);
+    *data++ = htodl(IDMAP_MAGIC); // write: magic
+    *data++ = htodl(ResTable::IDMAP_CURRENT_VERSION); // write: version
+    *data++ = htodl(targetCrc); // write: target crc
+    *data++ = htodl(overlayCrc); // write: overlay crc
 
-        const size_t entryCount = typeMap.entryMap.size();
-        uint32_t* entries = reinterpret_cast<uint32_t*>(typeData);
-        for (size_t j = 0; j < entryCount; j++) {
-            entries[j] = htodl(typeMap.entryMap[j]);
+    char* charData = reinterpret_cast<char*>(data);
+    size_t pathLen = strlen(targetPath);
+    for (size_t i = 0; i < 256; ++i) {
+        *charData++ = i < pathLen ? targetPath[i] : '\0'; // write: target path
+    }
+    pathLen = strlen(overlayPath);
+    for (size_t i = 0; i < 256; ++i) {
+        *charData++ = i < pathLen ? overlayPath[i] : '\0'; // write: overlay path
+    }
+    data += (2 * 256) / sizeof(uint32_t);
+
+    // write idmap data header
+    uint16_t* typeData = reinterpret_cast<uint16_t*>(data);
+    *typeData++ = htods(targetPackageStruct->id); // write: target package id
+    *typeData++ =
+        htods(static_cast<uint16_t>(fixedTypeMapping.size())); // write: type count
+
+    // write idmap data
+    for (auto ti = fixedTypeMapping.cbegin(); ti != typesEnd; ++ti) {
+        const size_t entryCount = matchingResources.getNumberOfEntriesIncludingPadding(ti->first);
+        auto ei = ti->second.cbegin();
+        *typeData++ = htods(Res_GETTYPE(ei->first) + 1); // write: target type id
+        *typeData++ = htods(Res_GETTYPE(ei->second) + 1); // write: overlay type id
+        *typeData++ = htods(entryCount); // write: entry count
+        *typeData++ = htods(Res_GETENTRY(ei->first)); // write: (target) entry offset
+        uint32_t *entryData = reinterpret_cast<uint32_t*>(typeData);
+        for (; ei != ti->second.cend(); ++ei) {
+            const size_t padding = matchingResources.getPadding(ei->first);
+            for (size_t i = 0; i < padding; ++i) {
+                *entryData++ = htodl(0xffffffff); // write: padding
+            }
+            *entryData++ = htodl(Res_GETENTRY(ei->second)); // write: (overlay) entry
         }
         typeData += entryCount * 2;
     }
 
-    if (forcedOverlayCount > 0) {
-        ALOGW("idmap: overlaid %zu resources not marked overlayable", forcedOverlayCount);
-    }
-
     return NO_ERROR;
 }
 
diff --git a/libs/androidfw/include/androidfw/Chunk.h b/libs/androidfw/include/androidfw/Chunk.h
index 99a52dc..a0f2343 100644
--- a/libs/androidfw/include/androidfw/Chunk.h
+++ b/libs/androidfw/include/androidfw/Chunk.h
@@ -89,7 +89,9 @@
         len_(len),
         last_error_(nullptr) {
     CHECK(next_chunk_ != nullptr) << "data can't be nullptr";
-    VerifyNextChunk();
+    if (len_ != 0) {
+      VerifyNextChunk();
+    }
   }
 
   Chunk Next();
diff --git a/libs/androidfw/include/androidfw/LoadedArsc.h b/libs/androidfw/include/androidfw/LoadedArsc.h
index 349b379..8c5c3b7 100644
--- a/libs/androidfw/include/androidfw/LoadedArsc.h
+++ b/libs/androidfw/include/androidfw/LoadedArsc.h
@@ -20,6 +20,7 @@
 #include <memory>
 #include <set>
 #include <vector>
+#include <unordered_set>
 
 #include "android-base/macros.h"
 
@@ -76,6 +77,10 @@
 // TypeSpecPtr is a managed pointer that knows how to delete itself.
 using TypeSpecPtr = util::unique_cptr<TypeSpec>;
 
+struct OverlayableInfo {
+  uint32_t policy_flags;
+};
+
 class LoadedPackage {
  public:
   class iterator {
@@ -216,6 +221,18 @@
     }
   }
 
+  // Retrieve the overlayable properties of the specified resource. If the resource is not
+  // overlayable, this will return a null pointer.
+  const OverlayableInfo* GetOverlayableInfo(uint32_t resid) const {
+    for (const std::pair<OverlayableInfo, std::unordered_set<uint32_t>>& overlayable_info_ids
+        : overlayable_infos_) {
+      if (overlayable_info_ids.second.find(resid) != overlayable_info_ids.second.end()) {
+        return &overlayable_info_ids.first;
+      }
+    }
+    return nullptr;
+  }
+
  private:
   DISALLOW_COPY_AND_ASSIGN(LoadedPackage);
 
@@ -233,6 +250,7 @@
   ByteBucketArray<TypeSpecPtr> type_specs_;
   ByteBucketArray<uint32_t> resource_ids_;
   std::vector<DynamicPackageEntry> dynamic_package_map_;
+  std::vector<const std::pair<OverlayableInfo, std::unordered_set<uint32_t>>> overlayable_infos_;
 };
 
 // Read-only view into a resource table. This class validates all data
diff --git a/libs/androidfw/include/androidfw/ResourceTypes.h b/libs/androidfw/include/androidfw/ResourceTypes.h
index 59abad45..91261aa 100644
--- a/libs/androidfw/include/androidfw/ResourceTypes.h
+++ b/libs/androidfw/include/androidfw/ResourceTypes.h
@@ -234,7 +234,9 @@
     RES_TABLE_PACKAGE_TYPE      = 0x0200,
     RES_TABLE_TYPE_TYPE         = 0x0201,
     RES_TABLE_TYPE_SPEC_TYPE    = 0x0202,
-    RES_TABLE_LIBRARY_TYPE      = 0x0203
+    RES_TABLE_LIBRARY_TYPE      = 0x0203,
+    RES_TABLE_OVERLAYABLE_TYPE  = 0x0204,
+    RES_TABLE_OVERLAYABLE_POLICY_TYPE = 0x0205,
 };
 
 /**
@@ -1354,10 +1356,6 @@
     enum : uint32_t {
         // Additional flag indicating an entry is public.
         SPEC_PUBLIC = 0x40000000u,
-
-        // Additional flag indicating an entry is overlayable at runtime.
-        // Added in Android-P.
-        SPEC_OVERLAYABLE = 0x80000000u,
     };
 };
 
@@ -1607,6 +1605,49 @@
     uint16_t packageName[128];
 };
 
+/**
+ * Specifies the set of resources that are explicitly allowed to be overlaid by RROs.
+ */
+struct ResTable_overlayable_header
+{
+  struct ResChunk_header header;
+};
+
+/**
+ * Holds a list of resource ids that are protected from being overlaid by a set of policies. If
+ * the overlay fulfils at least one of the policies, then the overlay can overlay the list of
+ * resources.
+ */
+struct ResTable_overlayable_policy_header
+{
+  struct ResChunk_header header;
+
+  enum PolicyFlags {
+    // Any overlay can overlay these resources.
+    POLICY_PUBLIC = 0x00000001,
+
+    // The overlay must reside of the system partition or must have existed on the system partition
+    // before an upgrade to overlay these resources.
+    POLICY_SYSTEM_PARTITION = 0x00000002,
+
+    // The overlay must reside of the vendor partition or must have existed on the vendor partition
+    // before an upgrade to overlay these resources.
+    POLICY_VENDOR_PARTITION = 0x00000004,
+
+    // The overlay must reside of the product partition or must have existed on the product
+    // partition before an upgrade to overlay these resources.
+    POLICY_PRODUCT_PARTITION = 0x00000008,
+
+    // The overlay must reside of the product services partition or must have existed on the product
+    // services partition before an upgrade to overlay these resources.
+    POLICY_PRODUCT_SERVICES_PARTITION = 0x00000010,
+  };
+  uint32_t policy_flags;
+
+  // The number of ResTable_ref that follow this header.
+  uint32_t entry_count;
+};
+
 struct alignas(uint32_t) Idmap_header {
   // Always 0x504D4449 ('IDMP')
   uint32_t magic;
@@ -1990,7 +2031,7 @@
     // Return value: on success: NO_ERROR; caller is responsible for free-ing
     // outData (using free(3)). On failure, any status_t value other than
     // NO_ERROR; the caller should not free outData.
-    status_t createIdmap(const ResTable& overlay,
+    status_t createIdmap(const ResTable& targetResTable,
             uint32_t targetCrc, uint32_t overlayCrc,
             const char* targetPath, const char* overlayPath,
             void** outData, size_t* outSize) const;
diff --git a/libs/androidfw/tests/Idmap_test.cpp b/libs/androidfw/tests/Idmap_test.cpp
index 26d2896..10b83a7 100644
--- a/libs/androidfw/tests/Idmap_test.cpp
+++ b/libs/androidfw/tests/Idmap_test.cpp
@@ -40,7 +40,7 @@
     ASSERT_EQ(NO_ERROR, overlay_table.add(overlay_data_.data(), overlay_data_.size()));
 
     char target_name[256] = "com.android.basic";
-    ASSERT_EQ(NO_ERROR, target_table_.createIdmap(overlay_table, 0, 0, target_name, target_name,
+    ASSERT_EQ(NO_ERROR, overlay_table.createIdmap(target_table_, 0, 0, target_name, target_name,
                                                   &data_, &data_size_));
   }
 
diff --git a/libs/androidfw/tests/LoadedArsc_test.cpp b/libs/androidfw/tests/LoadedArsc_test.cpp
index ffa4836..441356b 100644
--- a/libs/androidfw/tests/LoadedArsc_test.cpp
+++ b/libs/androidfw/tests/LoadedArsc_test.cpp
@@ -22,12 +22,14 @@
 #include "TestHelpers.h"
 #include "data/basic/R.h"
 #include "data/libclient/R.h"
+#include "data/overlayable/R.h"
 #include "data/sparse/R.h"
 #include "data/styles/R.h"
 
 namespace app = com::android::app;
 namespace basic = com::android::basic;
 namespace libclient = com::android::libclient;
+namespace overlayable = com::android::overlayable;
 namespace sparse = com::android::sparse;
 
 using ::android::base::ReadFileToString;
@@ -273,10 +275,44 @@
   ASSERT_THAT(LoadedPackage::GetEntry(type_spec->types[0], 0x0000), NotNull());
 }
 
-// structs with size fields (like Res_value, ResTable_entry) should be
-// backwards and forwards compatible (aka checking the size field against
-// sizeof(Res_value) might not be backwards compatible.
-TEST(LoadedArscTest, LoadingShouldBeForwardsAndBackwardsCompatible) { ASSERT_TRUE(false); }
+TEST(LoadedArscTest, LoadOverlayable) {
+  std::string contents;
+  ASSERT_TRUE(ReadFileFromZipToString(GetTestDataPath() + "/overlayable/overlayable.apk",
+                                      "resources.arsc", &contents));
+
+  std::unique_ptr<const LoadedArsc> loaded_arsc =
+      LoadedArsc::Load(StringPiece(contents), nullptr /*loaded_idmap*/, false /*system*/,
+                       false /*load_as_shared_library*/);
+
+  ASSERT_THAT(loaded_arsc, NotNull());
+  const LoadedPackage* package = loaded_arsc->GetPackageById(
+      get_package_id(overlayable::R::string::not_overlayable));
+
+  const OverlayableInfo* info = package->GetOverlayableInfo(
+      overlayable::R::string::not_overlayable);
+  ASSERT_THAT(info, IsNull());
+
+  info = package->GetOverlayableInfo(overlayable::R::string::overlayable1);
+  ASSERT_THAT(info, NotNull());
+  EXPECT_THAT(info->policy_flags, Eq(ResTable_overlayable_policy_header::POLICY_PUBLIC));
+
+  info = package->GetOverlayableInfo(overlayable::R::string::overlayable2);
+  ASSERT_THAT(info, NotNull());
+  EXPECT_THAT(info->policy_flags,
+              Eq(ResTable_overlayable_policy_header::POLICY_SYSTEM_PARTITION
+                 | ResTable_overlayable_policy_header::POLICY_PRODUCT_PARTITION));
+
+  info = package->GetOverlayableInfo(overlayable::R::string::overlayable3);
+  ASSERT_THAT(info, NotNull());
+  EXPECT_THAT(info->policy_flags,
+              Eq(ResTable_overlayable_policy_header::POLICY_VENDOR_PARTITION
+                 | ResTable_overlayable_policy_header::POLICY_PRODUCT_SERVICES_PARTITION
+                 | ResTable_overlayable_policy_header::POLICY_PRODUCT_PARTITION));
+
+  info = package->GetOverlayableInfo(overlayable::R::string::overlayable4);
+  ASSERT_THAT(info, NotNull());
+  EXPECT_THAT(info->policy_flags, Eq(ResTable_overlayable_policy_header::POLICY_PUBLIC));
+}
 
 TEST(LoadedArscTest, ResourceIdentifierIterator) {
   std::string contents;
@@ -326,4 +362,9 @@
   ASSERT_EQ(end, iter);
 }
 
+// structs with size fields (like Res_value, ResTable_entry) should be
+// backwards and forwards compatible (aka checking the size field against
+// sizeof(Res_value) might not be backwards compatible.
+TEST(LoadedArscTest, LoadingShouldBeForwardsAndBackwardsCompatible) { ASSERT_TRUE(false); }
+
 }  // namespace android
diff --git a/libs/androidfw/tests/data/overlay/overlay.apk b/libs/androidfw/tests/data/overlay/overlay.apk
index 33f9611..d37874d 100644
--- a/libs/androidfw/tests/data/overlay/overlay.apk
+++ b/libs/androidfw/tests/data/overlay/overlay.apk
Binary files differ
diff --git a/packages/SystemUI/res/anim/system_in.xml b/libs/androidfw/tests/data/overlayable/AndroidManifest.xml
similarity index 69%
rename from packages/SystemUI/res/anim/system_in.xml
rename to libs/androidfw/tests/data/overlayable/AndroidManifest.xml
index 630fd72..abc2a45 100644
--- a/packages/SystemUI/res/anim/system_in.xml
+++ b/libs/androidfw/tests/data/overlayable/AndroidManifest.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -14,9 +14,8 @@
      limitations under the License.
 -->
 
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-    >
-    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
-        android:duration="@android:integer/config_longAnimTime" 
-        />
-</set>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.overlayable">
+    <application>
+    </application>
+</manifest>
diff --git a/libs/androidfw/tests/data/overlayable/R.h b/libs/androidfw/tests/data/overlayable/R.h
new file mode 100644
index 0000000..e46e264d
--- /dev/null
+++ b/libs/androidfw/tests/data/overlayable/R.h
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+
+#ifndef TESTS_DATA_OVERLAYABLE_R_H_
+#define TESTS_DATA_OVERLAYABLE_R_H_
+
+#include <cstdint>
+
+namespace com {
+namespace android {
+namespace overlayable {
+
+struct R {
+  struct string {
+    enum : uint32_t {
+      not_overlayable = 0x7f010000,
+      overlayable1 = 0x7f010001,
+      overlayable2 = 0x7f010002,
+      overlayable3 = 0x7f010003,
+      overlayable4 = 0x7f010004,
+    };
+  };
+};
+
+}  // namespace overlayable
+}  // namespace android
+}  // namespace com
+
+#endif /* TESTS_DATA_OVERLAYABLE_R_H_ */
diff --git a/libs/androidfw/tests/data/overlayable/build b/libs/androidfw/tests/data/overlayable/build
new file mode 100755
index 0000000..98fdc51
--- /dev/null
+++ b/libs/androidfw/tests/data/overlayable/build
@@ -0,0 +1,22 @@
+#!/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.
+#
+
+set -e
+
+aapt2 compile --dir res -o compiled.flata
+aapt2 link --manifest AndroidManifest.xml -o overlayable.apk compiled.flata
+rm compiled.flata
diff --git a/libs/androidfw/tests/data/overlayable/overlayable.apk b/libs/androidfw/tests/data/overlayable/overlayable.apk
new file mode 100644
index 0000000..85ab4be
--- /dev/null
+++ b/libs/androidfw/tests/data/overlayable/overlayable.apk
Binary files differ
diff --git a/libs/androidfw/tests/data/overlayable/res/values/overlayable.xml b/libs/androidfw/tests/data/overlayable/res/values/overlayable.xml
new file mode 100644
index 0000000..11aa735
--- /dev/null
+++ b/libs/androidfw/tests/data/overlayable/res/values/overlayable.xml
@@ -0,0 +1,41 @@
+<?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.
+-->
+
+<resources>
+<overlayable>
+    <!-- Any overlay can overlay the value of @string/overlayable1 -->
+    <item type="string" name="overlayable1" />
+
+    <!-- Any overlay on the product or system partition can overlay the value of
+        @string/overlayable2 -->
+    <policy type="product|system">
+        <item type="string" name="overlayable2" />
+    </policy>
+
+    <!-- Any overlay can overlay the value of @string/overlayable4 -->
+    <policy type="public">
+        <item type="string" name="overlayable4" />
+    </policy>
+</overlayable>
+
+<overlayable>
+    <!-- Any overlay on the product_services, vendor, or product partition can overlay the value of
+   @string/overlayable3 -->
+    <policy type="product_services|vendor|product">
+        <item type="string" name="overlayable3" />
+    </policy>
+</overlayable>
+</resources>
\ No newline at end of file
diff --git a/libs/androidfw/tests/data/overlayable/res/values/public.xml b/libs/androidfw/tests/data/overlayable/res/values/public.xml
new file mode 100644
index 0000000..5676d7c
--- /dev/null
+++ b/libs/androidfw/tests/data/overlayable/res/values/public.xml
@@ -0,0 +1,23 @@
+<?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.
+-->
+
+<resources>
+    <public type="string" name="not_overlayable" id="0x7f010000" />
+    <public type="string" name="overlayable1" id="0x7f010001" />
+    <public type="string" name="overlayable2" id="0x7f010002" />
+    <public type="string" name="overlayable3" id="0x7f010003" />
+    <public type="string" name="overlayable4" id="0x7f010004" />
+</resources>
\ No newline at end of file
diff --git a/packages/SystemUI/res/anim/system_in.xml b/libs/androidfw/tests/data/overlayable/res/values/values.xml
similarity index 61%
copy from packages/SystemUI/res/anim/system_in.xml
copy to libs/androidfw/tests/data/overlayable/res/values/values.xml
index 630fd72..a86b312 100644
--- a/packages/SystemUI/res/anim/system_in.xml
+++ b/libs/androidfw/tests/data/overlayable/res/values/values.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
+<!-- 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.
@@ -14,9 +14,10 @@
      limitations under the License.
 -->
 
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-    >
-    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
-        android:duration="@android:integer/config_longAnimTime" 
-        />
-</set>
+<resources>
+    <string name="not_overlayable">Not overlayable</string>
+    <string name="overlayable1">Overlayable One</string>
+    <string name="overlayable2">Overlayable Two</string>
+    <string name="overlayable3">Overlayable Three</string>
+    <string name="overlayable4">Overlayable Four</string>
+</resources>
diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp
index 17d2db71..da77b99 100644
--- a/libs/hwui/Android.bp
+++ b/libs/hwui/Android.bp
@@ -9,8 +9,6 @@
         "hwui_lto",
     ],
 
-    cpp_std: "c++17",
-
     cflags: [
         "-DEGL_EGLEXT_PROTOTYPES",
         "-DGL_GLEXT_PROTOTYPES",
@@ -45,9 +43,6 @@
     ],
 
     product_variables: {
-        device_uses_hwc2: {
-            cflags: ["-DUSE_HWC2"],
-        },
         eng: {
             lto: {
                 never: true,
diff --git a/libs/hwui/CanvasTransform.cpp b/libs/hwui/CanvasTransform.cpp
index 06e937a..0cfaa8c 100644
--- a/libs/hwui/CanvasTransform.cpp
+++ b/libs/hwui/CanvasTransform.cpp
@@ -146,4 +146,4 @@
     return shouldInvert;
 }
 
-};  // namespace android::uirenderer
\ No newline at end of file
+}  // namespace android::uirenderer
diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp
index b772e5b..3bee301 100644
--- a/libs/hwui/DeferredLayerUpdater.cpp
+++ b/libs/hwui/DeferredLayerUpdater.cpp
@@ -85,19 +85,18 @@
             mUpdateTexImage = false;
             sk_sp<SkImage> layerImage;
             SkMatrix textureTransform;
-            android_dataspace dataSpace;
             bool queueEmpty = true;
             // If the SurfaceTexture queue is in synchronous mode, need to discard all
             // but latest frame. Since we can't tell which mode it is in,
             // do this unconditionally.
             do {
-                layerImage = mSurfaceTexture->dequeueImage(textureTransform, dataSpace, &queueEmpty,
+                layerImage = mSurfaceTexture->dequeueImage(textureTransform, &queueEmpty,
                         mRenderState);
             } while (layerImage.get() && (!queueEmpty));
             if (layerImage.get()) {
                 // force filtration if buffer size != layer size
                 bool forceFilter = mWidth != layerImage->width() || mHeight != layerImage->height();
-                updateLayer(forceFilter, textureTransform, dataSpace, layerImage);
+                updateLayer(forceFilter, textureTransform, layerImage);
             }
         }
 
@@ -109,12 +108,11 @@
 }
 
 void DeferredLayerUpdater::updateLayer(bool forceFilter, const SkMatrix& textureTransform,
-        android_dataspace dataspace, const sk_sp<SkImage>& layerImage) {
+        const sk_sp<SkImage>& layerImage) {
     mLayer->setBlend(mBlend);
     mLayer->setForceFilter(forceFilter);
     mLayer->setSize(mWidth, mHeight);
     mLayer->getTexTransform() = textureTransform;
-    mLayer->setDataSpace(dataspace);
     mLayer->setImage(layerImage);
 }
 
diff --git a/libs/hwui/DeferredLayerUpdater.h b/libs/hwui/DeferredLayerUpdater.h
index b2c5131..a91c111 100644
--- a/libs/hwui/DeferredLayerUpdater.h
+++ b/libs/hwui/DeferredLayerUpdater.h
@@ -95,7 +95,7 @@
     void detachSurfaceTexture();
 
     void updateLayer(bool forceFilter, const SkMatrix& textureTransform,
-            android_dataspace dataspace, const sk_sp<SkImage>& layerImage);
+                     const sk_sp<SkImage>& layerImage);
 
     void destroyLayer();
 
diff --git a/libs/hwui/DisplayList.h b/libs/hwui/DisplayList.h
index a952cc2..dc63e5d 100644
--- a/libs/hwui/DisplayList.h
+++ b/libs/hwui/DisplayList.h
@@ -31,5 +31,5 @@
  */
 using DisplayList = skiapipeline::SkiaDisplayList;
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/FrameMetricsObserver.h b/libs/hwui/FrameMetricsObserver.h
index ba72e93..237fc62 100644
--- a/libs/hwui/FrameMetricsObserver.h
+++ b/libs/hwui/FrameMetricsObserver.h
@@ -26,5 +26,5 @@
     virtual void notify(const int64_t* buffer);
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/FrameMetricsReporter.h b/libs/hwui/FrameMetricsReporter.h
index d920a99..75b8038 100644
--- a/libs/hwui/FrameMetricsReporter.h
+++ b/libs/hwui/FrameMetricsReporter.h
@@ -56,5 +56,5 @@
     std::vector<sp<FrameMetricsObserver> > mObservers;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/GlFunctorLifecycleListener.h b/libs/hwui/GlFunctorLifecycleListener.h
index 5d07b46..5adc469 100644
--- a/libs/hwui/GlFunctorLifecycleListener.h
+++ b/libs/hwui/GlFunctorLifecycleListener.h
@@ -28,5 +28,5 @@
     virtual void onGlFunctorReleased(Functor* functor) = 0;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/HardwareBitmapUploader.cpp b/libs/hwui/HardwareBitmapUploader.cpp
index 165fc48..a97c12c 100644
--- a/libs/hwui/HardwareBitmapUploader.cpp
+++ b/libs/hwui/HardwareBitmapUploader.cpp
@@ -256,4 +256,4 @@
     return sk_sp<Bitmap>(new Bitmap(buffer.get(), bitmap.info(), Bitmap::computePalette(bitmap)));
 }
 
-};  // namespace android::uirenderer
+}  // namespace android::uirenderer
diff --git a/libs/hwui/HardwareBitmapUploader.h b/libs/hwui/HardwareBitmapUploader.h
index c0113d8..6298013 100644
--- a/libs/hwui/HardwareBitmapUploader.h
+++ b/libs/hwui/HardwareBitmapUploader.h
@@ -25,4 +25,4 @@
     static sk_sp<Bitmap> allocateHardwareBitmap(const SkBitmap& sourceBitmap);
 };
 
-};  // namespace android::uirenderer
+}  // namespace android::uirenderer
diff --git a/libs/hwui/JankTracker.cpp b/libs/hwui/JankTracker.cpp
index e7ae767..ccbb6c1 100644
--- a/libs/hwui/JankTracker.cpp
+++ b/libs/hwui/JankTracker.cpp
@@ -82,7 +82,6 @@
 JankTracker::JankTracker(ProfileDataContainer* globalData, const DisplayInfo& displayInfo) {
     mGlobalData = globalData;
     nsecs_t frameIntervalNanos = static_cast<nsecs_t>(1_s / displayInfo.fps);
-#if USE_HWC2
     nsecs_t sfOffset = frameIntervalNanos - (displayInfo.presentationDeadline - 1_ms);
     nsecs_t offsetDelta = sfOffset - displayInfo.appVsyncOffset;
     // There are two different offset cases. If the offsetDelta is positive
@@ -96,7 +95,6 @@
         // return due to the staggering of VSYNC-app & VSYNC-sf.
         mDequeueTimeForgiveness = offsetDelta + 4_ms;
     }
-#endif
     setFrameInterval(frameIntervalNanos);
 }
 
diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp
index 32aaa54..a15ff22 100644
--- a/libs/hwui/Layer.cpp
+++ b/libs/hwui/Layer.cpp
@@ -33,7 +33,6 @@
     // TODO: This is a violation of Android's typical ref counting, but it
     // preserves the old inc/dec ref locations. This should be changed...
     incStrong(nullptr);
-    buildColorSpaceWithFilter();
     renderState.registerLayer(this);
     texTransform.setIdentity();
     transform.setIdentity();
@@ -43,36 +42,6 @@
     mRenderState.unregisterLayer(this);
 }
 
-void Layer::setColorFilter(sk_sp<SkColorFilter> filter) {
-    if (filter != mColorFilter) {
-        mColorFilter = filter;
-        buildColorSpaceWithFilter();
-    }
-}
-
-void Layer::setDataSpace(android_dataspace dataspace) {
-    if (dataspace != mCurrentDataspace) {
-        mCurrentDataspace = dataspace;
-        buildColorSpaceWithFilter();
-    }
-}
-
-void Layer::buildColorSpaceWithFilter() {
-    sk_sp<SkColorFilter> colorSpaceFilter;
-    sk_sp<SkColorSpace> colorSpace = DataSpaceToColorSpace(mCurrentDataspace);
-    if (colorSpace && !colorSpace->isSRGB()) {
-        colorSpaceFilter = SkToSRGBColorFilter::Make(colorSpace);
-    }
-
-    if (mColorFilter && colorSpaceFilter) {
-        mColorSpaceWithFilter = mColorFilter->makeComposed(colorSpaceFilter);
-    } else if (colorSpaceFilter) {
-        mColorSpaceWithFilter = colorSpaceFilter;
-    } else {
-        mColorSpaceWithFilter = mColorFilter;
-    }
-}
-
 void Layer::postDecStrong() {
     mRenderState.postDecStrong(this);
 }
@@ -85,5 +54,5 @@
     }
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/Layer.h b/libs/hwui/Layer.h
index e4f96e9..ea3bfc9 100644
--- a/libs/hwui/Layer.h
+++ b/libs/hwui/Layer.h
@@ -69,15 +69,9 @@
 
     SkBlendMode getMode() const;
 
-    inline SkColorFilter* getColorFilter() const { return mColorFilter.get(); }
+    inline sk_sp<SkColorFilter> getColorFilter() const { return mColorFilter; }
 
-    void setColorFilter(sk_sp<SkColorFilter> filter);
-
-    void setDataSpace(android_dataspace dataspace);
-
-    void setColorSpace(sk_sp<SkColorSpace> colorSpace);
-
-    inline sk_sp<SkColorFilter> getColorSpaceWithFilter() const { return mColorSpaceWithFilter; }
+    void setColorFilter(sk_sp<SkColorFilter> filter) { mColorFilter = filter; };
 
     inline SkMatrix& getTexTransform() { return texTransform; }
 
@@ -98,24 +92,12 @@
     RenderState& mRenderState;
 
 private:
-    void buildColorSpaceWithFilter();
-
     /**
      * Color filter used to draw this layer. Optional.
      */
     sk_sp<SkColorFilter> mColorFilter;
 
     /**
-     * Colorspace of the contents of the layer. Optional.
-     */
-    android_dataspace mCurrentDataspace = HAL_DATASPACE_UNKNOWN;
-
-    /**
-     * A color filter that is the combination of the mColorFilter and mColorSpace. Optional.
-     */
-    sk_sp<SkColorFilter> mColorSpaceWithFilter;
-
-    /**
      * Indicates raster data backing the layer is scaled, requiring filtration.
      */
     bool forceFilter = false;
@@ -162,5 +144,5 @@
 
 };  // struct Layer
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/LayerUpdateQueue.h b/libs/hwui/LayerUpdateQueue.h
index 6857999..2c63af6 100644
--- a/libs/hwui/LayerUpdateQueue.h
+++ b/libs/hwui/LayerUpdateQueue.h
@@ -50,7 +50,7 @@
     std::vector<Entry> mEntries;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_LAYER_UPDATE_QUEUE_H
diff --git a/libs/hwui/Lighting.h b/libs/hwui/Lighting.h
index d972c21..ccfbb93 100644
--- a/libs/hwui/Lighting.h
+++ b/libs/hwui/Lighting.h
@@ -34,5 +34,5 @@
     uint8_t spotShadowAlpha;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/Matrix.cpp b/libs/hwui/Matrix.cpp
index d84ed32..d0dbff03 100644
--- a/libs/hwui/Matrix.cpp
+++ b/libs/hwui/Matrix.cpp
@@ -526,5 +526,5 @@
     ALOGD("]");
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/Matrix.h b/libs/hwui/Matrix.h
index f0a3a95..b33cfe2 100644
--- a/libs/hwui/Matrix.h
+++ b/libs/hwui/Matrix.h
@@ -27,6 +27,7 @@
 namespace uirenderer {
 
 #define SK_MATRIX_STRING "[%.2f %.2f %.2f] [%.2f %.2f %.2f] [%.2f %.2f %.2f]"
+#define SK_MATRIX_STRING_V "[%.9f %.9f %.9f] [%.9f %.9f %.9f] [%.9f %.9f %.9f]"
 #define SK_MATRIX_ARGS(m)                                                                      \
     (m)->get(0), (m)->get(1), (m)->get(2), (m)->get(3), (m)->get(4), (m)->get(5), (m)->get(6), \
             (m)->get(7), (m)->get(8)
@@ -244,5 +245,5 @@
 
 typedef Matrix4 mat4;
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/NinePatchUtils.h b/libs/hwui/NinePatchUtils.h
index 082e95f..86d3cb9 100644
--- a/libs/hwui/NinePatchUtils.h
+++ b/libs/hwui/NinePatchUtils.h
@@ -103,5 +103,5 @@
     }
 }
 
-};  // namespace NinePatchUtils
-};  // namespace android
+}  // namespace NinePatchUtils
+}  // namespace android
diff --git a/libs/hwui/PathParser.cpp b/libs/hwui/PathParser.cpp
index ad599e9..808921d 100644
--- a/libs/hwui/PathParser.cpp
+++ b/libs/hwui/PathParser.cpp
@@ -304,5 +304,5 @@
     return;
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/PathParser.h b/libs/hwui/PathParser.h
index 474eb97..f5bebce 100644
--- a/libs/hwui/PathParser.h
+++ b/libs/hwui/PathParser.h
@@ -46,6 +46,6 @@
     static void validateVerbAndPoints(char verb, size_t points, ParseResult* result);
 };
 
-};      // namespace uirenderer
-};      // namespace android
+}      // namespace uirenderer
+}      // namespace android
 #endif  // ANDROID_HWUI_PATHPARSER_H
diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp
index 3f2c616..4a3e10c 100644
--- a/libs/hwui/Properties.cpp
+++ b/libs/hwui/Properties.cpp
@@ -223,5 +223,5 @@
     sRenderPipelineType = type;
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index 542bc71..da53f66 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -289,7 +289,7 @@
     static RenderPipelineType sRenderPipelineType;
 };  // class Caches
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_PROPERTIES_H
diff --git a/libs/hwui/Readback.cpp b/libs/hwui/Readback.cpp
index 80f2b57..2a48837 100644
--- a/libs/hwui/Readback.cpp
+++ b/libs/hwui/Readback.cpp
@@ -66,13 +66,10 @@
 
     sk_sp<SkColorSpace> colorSpace =
             DataSpaceToColorSpace(static_cast<android_dataspace>(surface.getBuffersDataSpace()));
-    sk_sp<SkColorFilter> colorSpaceFilter;
-    if (colorSpace && !colorSpace->isSRGB()) {
-        colorSpaceFilter = SkToSRGBColorFilter::Make(colorSpace);
-    }
     sk_sp<SkImage> image = SkImage::MakeFromAHardwareBuffer(
-            reinterpret_cast<AHardwareBuffer*>(sourceBuffer.get()), kPremul_SkAlphaType);
-    return copyImageInto(image, colorSpaceFilter, texTransform, srcRect, bitmap);
+            reinterpret_cast<AHardwareBuffer*>(sourceBuffer.get()),
+            kPremul_SkAlphaType, colorSpace);
+    return copyImageInto(image, texTransform, srcRect, bitmap);
 }
 
 CopyResult Readback::copyHWBitmapInto(Bitmap* hwBitmap, SkBitmap* bitmap) {
@@ -83,20 +80,7 @@
     transform.loadScale(1, -1, 1);
     transform.translate(0, -1);
 
-    // TODO: Try to take and reuse the image inside HW bitmap with "hwBitmap->makeImage".
-    // TODO: When this was attempted, it resulted in instability.
-    sk_sp<SkColorFilter> colorSpaceFilter;
-    sk_sp<SkColorSpace> colorSpace = hwBitmap->info().refColorSpace();
-    if (colorSpace && !colorSpace->isSRGB()) {
-        colorSpaceFilter = SkToSRGBColorFilter::Make(colorSpace);
-    }
-    sk_sp<SkImage> image = SkImage::MakeFromAHardwareBuffer(
-            reinterpret_cast<AHardwareBuffer*>(hwBitmap->graphicBuffer()), kPremul_SkAlphaType);
-
-    // HW Bitmap currently can only attach to a GraphicBuffer with PIXEL_FORMAT_RGBA_8888 format
-    // and SRGB color space. ImageDecoder can create a new HW Bitmap with non-SRGB color space: for
-    // example see android.graphics.cts.BitmapColorSpaceTest#testEncodeP3hardware test.
-    return copyImageInto(image, colorSpaceFilter, transform, srcRect, bitmap);
+    return copyImageInto(hwBitmap->makeImage(), transform, srcRect, bitmap);
 }
 
 CopyResult Readback::copyLayerInto(DeferredLayerUpdater* deferredLayer, SkBitmap* bitmap) {
@@ -118,8 +102,7 @@
     return copyResult;
 }
 
-CopyResult Readback::copyImageInto(const sk_sp<SkImage>& image,
-                                   sk_sp<SkColorFilter>& colorSpaceFilter, Matrix4& texTransform,
+CopyResult Readback::copyImageInto(const sk_sp<SkImage>& image, Matrix4& texTransform,
                                    const Rect& srcRect, SkBitmap* bitmap) {
     if (Properties::getRenderPipelineType() == RenderPipelineType::SkiaGL) {
         mRenderThread.requireGlContext();
@@ -157,11 +140,7 @@
         return copyResult;
     }
 
-    // See Readback::copyLayerInto for an overview of color space conversion.
-    // HW Bitmap are allowed to be in a non-SRGB color space (for example coming from ImageDecoder).
-    // For Surface and HW Bitmap readback flows we pass colorSpaceFilter, which does the conversion.
-    // TextureView readback is using Layer::setDataSpace, which creates a SkColorFilter internally.
-    Layer layer(mRenderThread.renderState(), colorSpaceFilter, 255, SkBlendMode::kSrc);
+    Layer layer(mRenderThread.renderState(), nullptr, 255, SkBlendMode::kSrc);
     bool disableFilter = MathUtils::areEqual(skiaSrcRect.width(), skiaDestRect.width()) &&
                          MathUtils::areEqual(skiaSrcRect.height(), skiaDestRect.height());
     layer.setForceFilter(!disableFilter);
@@ -177,38 +156,6 @@
 
 bool Readback::copyLayerInto(Layer* layer, const SkRect* srcRect, const SkRect* dstRect,
                              SkBitmap* bitmap) {
-    /*
-     * In the past only TextureView readback was setting the temporary surface color space to null.
-     * Now all 3 readback flows are drawing into a SkSurface with null color space.
-     * At readback there are 3 options to convert the source image color space to the destination
-     * color space requested in "bitmap->info().colorSpace()":
-     * 1. Set color space for temporary surface render target to null (disables color management),
-     *    colorspace tag from source SkImage is ignored by Skia,
-     *    convert SkImage to SRGB at draw time with SkColorFilter/SkToSRGBColorFilter,
-     *    do a readback from temporary SkSurface to a temporary SRGB SkBitmap "bitmap2",
-     *    read back from SRGB "bitmap2" into non-SRGB "bitmap" which will do a CPU color conversion.
-     *
-     * 2. Set color space for temporary surface render target to SRGB (not nullptr),
-     *    colorspace tag on the source SkImage is used by Skia to enable conversion,
-     *    convert SkImage to SRGB at draw time with drawImage (no filters),
-     *    do a readback from temporary SkSurface, which will do a color conversion from SRGB to
-     *    bitmap->info().colorSpace() on the CPU.
-     *
-     * 3. Set color space for temporary surface render target to bitmap->info().colorSpace(),
-     *    colorspace tag on the source SkImage is used by Skia to enable conversion,
-     *    convert SkImage to bitmap->info().colorSpace() at draw time with drawImage (no filters),
-     *    do a readback from SkSurface, which will not do any color conversion, because
-     *    surface was created with the same color space as the "bitmap".
-     *
-     * Option 1 is used for all readback flows.
-     * Options 2 and 3 are new, because skia added support for non-SRGB render targets without
-     * linear blending.
-     * TODO: evaluate if options 2 or 3 for color space conversion are better.
-     */
-
-    // drop the colorSpace from the temporary surface.
-    SkImageInfo surfaceInfo = bitmap->info().makeColorSpace(nullptr);
-
     /* This intermediate surface is present to work around a bug in SwiftShader that
      * prevents us from reading the contents of the layer's texture directly. The
      * workaround involves first rendering that texture into an intermediate buffer and
@@ -217,70 +164,44 @@
      * with reading incorrect data from EGLImage backed SkImage (likely a driver bug).
      */
     sk_sp<SkSurface> tmpSurface = SkSurface::MakeRenderTarget(mRenderThread.getGrContext(),
-                                                              SkBudgeted::kYes, surfaceInfo);
+                                                              SkBudgeted::kYes, bitmap->info());
 
+    // if we can't generate a GPU surface that matches the destination bitmap (e.g. 565) then we
+    // attempt to do the intermediate rendering step in 8888
     if (!tmpSurface.get()) {
-        surfaceInfo = surfaceInfo.makeColorType(SkColorType::kN32_SkColorType);
+        SkImageInfo tmpInfo = bitmap->info().makeColorType(SkColorType::kN32_SkColorType);
         tmpSurface = SkSurface::MakeRenderTarget(mRenderThread.getGrContext(), SkBudgeted::kYes,
-                                                 surfaceInfo);
+                                                 tmpInfo);
         if (!tmpSurface.get()) {
-            ALOGW("Unable to readback GPU contents into the provided bitmap");
+            ALOGW("Unable to generate GPU buffer in a format compatible with the provided bitmap");
             return false;
         }
     }
 
-    if (skiapipeline::LayerDrawable::DrawLayer(mRenderThread.getGrContext(),
-                                               tmpSurface->getCanvas(), layer, srcRect, dstRect,
-                                               false)) {
-        // If bitmap->info().colorSpace() is non-SRGB, convert the data from SRGB to non-SRGB on
-        // CPU. We can't just pass bitmap->info() to SkSurface::readPixels, because "tmpSurface" has
-        // disabled color conversion.
-        SkColorSpace* destColorSpace = bitmap->info().colorSpace();
-        SkBitmap tempSRGBBitmap;
-        SkBitmap tmpN32Bitmap;
-        SkBitmap* bitmapInSRGB;
-        if (destColorSpace && !destColorSpace->isSRGB()) {
-            tempSRGBBitmap.allocPixels(bitmap->info().makeColorSpace(SkColorSpace::MakeSRGB()));
-            bitmapInSRGB = &tempSRGBBitmap;  // Need to convert latter from SRGB to non-SRGB.
-        } else {
-            bitmapInSRGB = bitmap;  // No need for color conversion - write directly into output.
-        }
-        bool success = false;
+    if (!skiapipeline::LayerDrawable::DrawLayer(mRenderThread.getGrContext(),
+                                                tmpSurface->getCanvas(), layer, srcRect, dstRect,
+                                                false)) {
+        ALOGW("Unable to draw content from GPU into the provided bitmap");
+        return false;
+    }
 
-        // TODO: does any of the readbacks below clamp F16 exSRGB?
-        // Readback into a SRGB SkBitmap.
-        if (tmpSurface->readPixels(bitmapInSRGB->info(), bitmapInSRGB->getPixels(),
-                                   bitmapInSRGB->rowBytes(), 0, 0)) {
-            success = true;
-        } else {
-            // if we fail to readback from the GPU directly (e.g. 565) then we attempt to read into
-            // 8888 and then convert that into the destination format before giving up.
-            SkImageInfo bitmapInfo =
-                    SkImageInfo::MakeN32(bitmap->width(), bitmap->height(), bitmap->alphaType(),
-                                         SkColorSpace::MakeSRGB());
-            if (tmpN32Bitmap.tryAllocPixels(bitmapInfo) &&
-                tmpSurface->readPixels(bitmapInfo, tmpN32Bitmap.getPixels(),
-                                       tmpN32Bitmap.rowBytes(), 0, 0)) {
-                success = true;
-                bitmapInSRGB = &tmpN32Bitmap;
-            }
-        }
-
-        if (success) {
-            if (bitmapInSRGB != bitmap) {
-                // Convert from SRGB to non-SRGB color space if needed. Convert from N32 to
-                // destination bitmap color format if needed.
-                if (!bitmapInSRGB->readPixels(bitmap->info(), bitmap->getPixels(),
-                                              bitmap->rowBytes(), 0, 0)) {
-                    return false;
-                }
-            }
-            bitmap->notifyPixelsChanged();
-            return true;
+    if (!tmpSurface->readPixels(*bitmap, 0, 0)) {
+        // if we fail to readback from the GPU directly (e.g. 565) then we attempt to read into
+        // 8888 and then convert that into the destination format before giving up.
+        SkBitmap tmpBitmap;
+        SkImageInfo tmpInfo = bitmap->info().makeColorType(SkColorType::kN32_SkColorType);
+        if (bitmap->info().colorType() == SkColorType::kN32_SkColorType ||
+                !tmpBitmap.tryAllocPixels(tmpInfo) ||
+                !tmpSurface->readPixels(tmpBitmap, 0, 0) ||
+                !tmpBitmap.readPixels(bitmap->info(), bitmap->getPixels(),
+                                      bitmap->rowBytes(), 0, 0)) {
+            ALOGW("Unable to convert content into the provided bitmap");
+            return false;
         }
     }
 
-    return false;
+    bitmap->notifyPixelsChanged();
+    return true;
 }
 
 } /* namespace uirenderer */
diff --git a/libs/hwui/Readback.h b/libs/hwui/Readback.h
index d9e10ce..e86a813 100644
--- a/libs/hwui/Readback.h
+++ b/libs/hwui/Readback.h
@@ -54,8 +54,8 @@
     CopyResult copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap);
 
 private:
-    CopyResult copyImageInto(const sk_sp<SkImage>& image, sk_sp<SkColorFilter>& colorSpaceFilter,
-                             Matrix4& texTransform, const Rect& srcRect, SkBitmap* bitmap);
+    CopyResult copyImageInto(const sk_sp<SkImage>& image, Matrix4& texTransform,
+                             const Rect& srcRect, SkBitmap* bitmap);
 
     bool copyLayerInto(Layer* layer, const SkRect* srcRect, const SkRect* dstRect,
                        SkBitmap* bitmap);
diff --git a/libs/hwui/RecordingCanvas.cpp b/libs/hwui/RecordingCanvas.cpp
index f928de9..c63e449 100644
--- a/libs/hwui/RecordingCanvas.cpp
+++ b/libs/hwui/RecordingCanvas.cpp
@@ -1028,5 +1028,5 @@
     fDL->drawVectorDrawable(tree);
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/RecordingCanvas.h b/libs/hwui/RecordingCanvas.h
index 099e0be..08cfc62 100644
--- a/libs/hwui/RecordingCanvas.h
+++ b/libs/hwui/RecordingCanvas.h
@@ -216,5 +216,5 @@
     DisplayListData* fDL;
 };
 
-};  // namespace uirenderer
-};  // namespace android
\ No newline at end of file
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/Rect.h b/libs/hwui/Rect.h
index 0715187..d6362ef 100644
--- a/libs/hwui/Rect.h
+++ b/libs/hwui/Rect.h
@@ -262,5 +262,5 @@
     }
 };  // class Rect
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index d2a8f02..4a63910 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -29,6 +29,7 @@
 
 #include <SkPathOps.h>
 #include <algorithm>
+#include <atomic>
 #include <sstream>
 #include <string>
 
@@ -47,8 +48,14 @@
     TreeInfo* mTreeInfo;
 };
 
+static int64_t generateId() {
+    static std::atomic<int64_t> sNextId{1};
+    return sNextId++;
+}
+
 RenderNode::RenderNode()
-        : mDirtyPropertyFields(0)
+        : mUniqueId(generateId())
+        , mDirtyPropertyFields(0)
         , mNeedsDisplayListSync(false)
         , mDisplayList(nullptr)
         , mStagingDisplayList(nullptr)
@@ -444,5 +451,38 @@
     return &mClippedOutlineCache.clippedOutline;
 }
 
+using StringBuffer = FatVector<char, 128>;
+
+template <typename... T>
+static void format(StringBuffer& buffer, const std::string_view& format, T... args) {
+    buffer.resize(buffer.capacity());
+    while (1) {
+        int needed = snprintf(buffer.data(), buffer.size(),
+                format.data(), std::forward<T>(args)...);
+        if (needed < 0) {
+            buffer[0] = '\0';
+            buffer.resize(1);
+            return;
+        }
+        if (needed < buffer.size()) {
+            buffer.resize(needed + 1);
+            return;
+        }
+        buffer.resize(buffer.size() * 2);
+    }
+}
+
+void RenderNode::markDrawStart(SkCanvas& canvas) {
+    StringBuffer buffer;
+    format(buffer, "RenderNode(id=%d, name='%s')", uniqueId(), getName());
+    canvas.drawAnnotation(SkRect::MakeWH(getWidth(), getHeight()), buffer.data(), nullptr);
+}
+
+void RenderNode::markDrawEnd(SkCanvas& canvas) {
+    StringBuffer buffer;
+    format(buffer, "/RenderNode(id=%d, name='%s')", uniqueId(), getName());
+    canvas.drawAnnotation(SkRect::MakeWH(getWidth(), getHeight()), buffer.data(), nullptr);
+}
+
 } /* namespace uirenderer */
 } /* namespace android */
diff --git a/libs/hwui/RenderNode.h b/libs/hwui/RenderNode.h
index be0b46b..6060123 100644
--- a/libs/hwui/RenderNode.h
+++ b/libs/hwui/RenderNode.h
@@ -213,6 +213,11 @@
 
     UsageHint usageHint() const { return mUsageHint; }
 
+    int64_t uniqueId() const { return mUniqueId; }
+
+    void markDrawStart(SkCanvas& canvas);
+    void markDrawEnd(SkCanvas& canvas);
+
 private:
     void computeOrderingImpl(RenderNodeOp* opState,
                              std::vector<RenderNodeOp*>* compositedChildrenOfProjectionSurface,
@@ -233,6 +238,7 @@
     void incParentRefCount() { mParentCount++; }
     void decParentRefCount(TreeObserver& observer, TreeInfo* info = nullptr);
 
+    const int64_t mUniqueId;
     String8 mName;
     sp<VirtualLightRefBase> mUserContext;
 
diff --git a/libs/hwui/SkiaCanvas.cpp b/libs/hwui/SkiaCanvas.cpp
index 9c707bab..ba34384 100644
--- a/libs/hwui/SkiaCanvas.cpp
+++ b/libs/hwui/SkiaCanvas.cpp
@@ -27,9 +27,9 @@
 #include <SkAnimatedImage.h>
 #include <SkCanvasStateUtils.h>
 #include <SkColorFilter.h>
-#include <SkColorSpaceXformCanvas.h>
 #include <SkDeque.h>
 #include <SkDrawable.h>
+#include <SkFont.h>
 #include <SkGraphics.h>
 #include <SkImage.h>
 #include <SkImagePriv.h>
@@ -60,19 +60,8 @@
 SkiaCanvas::SkiaCanvas(SkCanvas* canvas) : mCanvas(canvas) {}
 
 SkiaCanvas::SkiaCanvas(const SkBitmap& bitmap) {
-    sk_sp<SkColorSpace> cs = bitmap.refColorSpace();
-    mCanvasOwned =
-            std::unique_ptr<SkCanvas>(new SkCanvas(bitmap, SkCanvas::ColorBehavior::kLegacy));
-    if (cs.get() == nullptr || cs->isSRGB()) {
-        mCanvas = mCanvasOwned.get();
-    } else {
-        /** The wrapper is needed if we are drawing into a non-sRGB destination, since
-         *  we need to transform all colors (not just bitmaps via filters) into the
-         *  destination's colorspace.
-         */
-        mCanvasWrapper = SkCreateColorSpaceXformCanvas(mCanvasOwned.get(), std::move(cs));
-        mCanvas = mCanvasWrapper.get();
-    }
+    mCanvasOwned = std::unique_ptr<SkCanvas>(new SkCanvas(bitmap));
+    mCanvas = mCanvasOwned.get();
 }
 
 SkiaCanvas::~SkiaCanvas() {}
@@ -81,7 +70,6 @@
     if (mCanvas != skiaCanvas) {
         mCanvas = skiaCanvas;
         mCanvasOwned.reset();
-        mCanvasWrapper.reset();
     }
     mSaveStack.reset(nullptr);
 }
@@ -91,18 +79,9 @@
 // ----------------------------------------------------------------------------
 
 void SkiaCanvas::setBitmap(const SkBitmap& bitmap) {
-    sk_sp<SkColorSpace> cs = bitmap.refColorSpace();
-    std::unique_ptr<SkCanvas> newCanvas =
-            std::unique_ptr<SkCanvas>(new SkCanvas(bitmap, SkCanvas::ColorBehavior::kLegacy));
-    std::unique_ptr<SkCanvas> newCanvasWrapper;
-    if (cs.get() != nullptr && !cs->isSRGB()) {
-        newCanvasWrapper = SkCreateColorSpaceXformCanvas(newCanvas.get(), std::move(cs));
-    }
-
     // deletes the previously owned canvas (if any)
-    mCanvasOwned = std::move(newCanvas);
-    mCanvasWrapper = std::move(newCanvasWrapper);
-    mCanvas = mCanvasWrapper ? mCanvasWrapper.get() : mCanvasOwned.get();
+    mCanvasOwned.reset(new SkCanvas(bitmap));
+    mCanvas = mCanvasOwned.get();
 
     // clean up the old save stack
     mSaveStack.reset(nullptr);
@@ -547,40 +526,14 @@
 // Canvas draw operations: Bitmaps
 // ----------------------------------------------------------------------------
 
-SkiaCanvas::PaintCoW&& SkiaCanvas::filterBitmap(PaintCoW&& paint,
-                                                sk_sp<SkColorFilter> colorSpaceFilter) const {
-    /* We don't apply the colorSpace filter if this canvas is already wrapped with
-     * a SkColorSpaceXformCanvas since it already takes care of converting the
-     * contents of the bitmap into the appropriate colorspace.  The mCanvasWrapper
-     * should only be used if this canvas is backed by a surface/bitmap that is known
-     * to have a non-sRGB colorspace.
-     */
-    if (!mCanvasWrapper && colorSpaceFilter) {
-        SkPaint& tmpPaint = paint.writeable();
-        if (tmpPaint.getColorFilter()) {
-            tmpPaint.setColorFilter(SkColorFilter::MakeComposeFilter(tmpPaint.refColorFilter(),
-                                                                     std::move(colorSpaceFilter)));
-            LOG_ALWAYS_FATAL_IF(!tmpPaint.getColorFilter());
-        } else {
-            tmpPaint.setColorFilter(std::move(colorSpaceFilter));
-        }
-    }
-    return filterPaint(std::move(paint));
-}
-
 void SkiaCanvas::drawBitmap(Bitmap& bitmap, float left, float top, const SkPaint* paint) {
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
-    mCanvas->drawImage(image, left, top, filterBitmap(paint, std::move(colorFilter)));
+    mCanvas->drawImage(bitmap.makeImage(), left, top, filterPaint(paint));
 }
 
 void SkiaCanvas::drawBitmap(Bitmap& bitmap, const SkMatrix& matrix, const SkPaint* paint) {
     SkAutoCanvasRestore acr(mCanvas, true);
     mCanvas->concat(matrix);
-
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
-    mCanvas->drawImage(image, 0, 0, filterBitmap(paint, std::move(colorFilter)));
+    mCanvas->drawImage(bitmap.makeImage(), 0, 0, filterPaint(paint));
 }
 
 void SkiaCanvas::drawBitmap(Bitmap& bitmap, float srcLeft, float srcTop, float srcRight,
@@ -589,9 +542,7 @@
     SkRect srcRect = SkRect::MakeLTRB(srcLeft, srcTop, srcRight, srcBottom);
     SkRect dstRect = SkRect::MakeLTRB(dstLeft, dstTop, dstRight, dstBottom);
 
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
-    mCanvas->drawImageRect(image, srcRect, dstRect, filterBitmap(paint, std::move(colorFilter)),
+    mCanvas->drawImageRect(bitmap.makeImage(), srcRect, dstRect, filterPaint(paint),
                            SkCanvas::kFast_SrcRectConstraint);
 }
 
@@ -673,13 +624,9 @@
     PaintCoW paintCoW(paint);
     SkPaint& tmpPaint = paintCoW.writeable();
 
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
+    sk_sp<SkImage> image = bitmap.makeImage();
     sk_sp<SkShader> shader =
             image->makeShader(SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);
-    if (colorFilter) {
-        shader = shader->makeWithColorFilter(std::move(colorFilter));
-    }
     tmpPaint.setShader(std::move(shader));
 
     mCanvas->drawVertices(builder.detach(), SkBlendMode::kModulate,
@@ -710,10 +657,7 @@
     lattice.fBounds = nullptr;
     SkRect dst = SkRect::MakeLTRB(dstLeft, dstTop, dstRight, dstBottom);
 
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
-    mCanvas->drawImageLattice(image.get(), lattice, dst,
-                              filterBitmap(paint, std::move(colorFilter)));
+    mCanvas->drawImageLattice(bitmap.makeImage().get(), lattice, dst, filterPaint(paint));
 }
 
 double SkiaCanvas::drawAnimatedImage(AnimatedImageDrawable* imgDrawable) {
@@ -732,6 +676,7 @@
                             float y, float boundsLeft, float boundsTop, float boundsRight,
                             float boundsBottom, float totalAdvance) {
     if (count <= 0 || paint.nothingToDraw()) return;
+    SkFont font = SkFont::LEGACY_ExtractFromPaint(paint);
     SkPaint paintCopy(paint);
     if (mPaintFilter) {
         mPaintFilter->filter(&paintCopy);
@@ -748,7 +693,7 @@
             SkRect::MakeLTRB(boundsLeft + x, boundsTop + y, boundsRight + x, boundsBottom + y);
 
     SkTextBlobBuilder builder;
-    const SkTextBlobBuilder::RunBuffer& buffer = builder.allocRunPos(paintCopy, count, &bounds);
+    const SkTextBlobBuilder::RunBuffer& buffer = builder.allocRunPos(font, count, &bounds);
     glyphFunc(buffer.glyphs, buffer.pos);
 
     sk_sp<SkTextBlob> textBlob(builder.make());
diff --git a/libs/hwui/SkiaCanvas.h b/libs/hwui/SkiaCanvas.h
index 3a877cf..24d9c08 100644
--- a/libs/hwui/SkiaCanvas.h
+++ b/libs/hwui/SkiaCanvas.h
@@ -232,7 +232,6 @@
 
     class Clip;
 
-    std::unique_ptr<SkCanvas> mCanvasWrapper;  // might own a wrapper on the canvas
     std::unique_ptr<SkCanvas> mCanvasOwned;    // might own a canvas we allocated
     SkCanvas* mCanvas;                         // we do NOT own this canvas, it must survive us
                                                // unless it is the same as mCanvasOwned.get()
diff --git a/libs/hwui/UvMapper.h b/libs/hwui/UvMapper.h
index b495e33..833ca4a 100644
--- a/libs/hwui/UvMapper.h
+++ b/libs/hwui/UvMapper.h
@@ -124,7 +124,7 @@
     float mMaxV;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_UV_MAPPER_H
diff --git a/libs/hwui/Vector.h b/libs/hwui/Vector.h
index d2c15ad..e6eea1c 100644
--- a/libs/hwui/Vector.h
+++ b/libs/hwui/Vector.h
@@ -113,7 +113,7 @@
     }
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_VECTOR_H
diff --git a/libs/hwui/VectorDrawable.cpp b/libs/hwui/VectorDrawable.cpp
index 6cf04bf..dd62bbb 100644
--- a/libs/hwui/VectorDrawable.cpp
+++ b/libs/hwui/VectorDrawable.cpp
@@ -691,7 +691,7 @@
     return BitmapPalette::Unknown;
 }
 
-};  // namespace VectorDrawable
+}  // namespace VectorDrawable
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/Vertex.h b/libs/hwui/Vertex.h
index f091277..28cabb9 100644
--- a/libs/hwui/Vertex.h
+++ b/libs/hwui/Vertex.h
@@ -73,7 +73,7 @@
 
 REQUIRE_COMPATIBLE_LAYOUT(TextureVertex);
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_VERTEX_H
diff --git a/libs/hwui/VertexBuffer.h b/libs/hwui/VertexBuffer.h
index 613cf4a..6543a22 100644
--- a/libs/hwui/VertexBuffer.h
+++ b/libs/hwui/VertexBuffer.h
@@ -174,7 +174,7 @@
     void (*mCleanupIndexMethod)(void*);
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_VERTEX_BUFFER_H
diff --git a/libs/hwui/hwui/Bitmap.cpp b/libs/hwui/hwui/Bitmap.cpp
index 75a6e72..6c77f9e 100644
--- a/libs/hwui/hwui/Bitmap.cpp
+++ b/libs/hwui/hwui/Bitmap.cpp
@@ -32,7 +32,6 @@
 
 #include <SkCanvas.h>
 #include <SkImagePriv.h>
-#include <SkToSRGBColorFilter.h>
 
 #include <SkHighContrastFilter.h>
 #include <limits>
@@ -287,14 +286,8 @@
 
 void Bitmap::getSkBitmap(SkBitmap* outBitmap) {
     if (isHardware()) {
-        outBitmap->allocPixels(SkImageInfo::Make(info().width(), info().height(),
-                                                 info().colorType(), info().alphaType(), nullptr));
+        outBitmap->allocPixels(mInfo);
         uirenderer::renderthread::RenderProxy::copyHWBitmapInto(this, outBitmap);
-        if (mInfo.colorSpace()) {
-            sk_sp<SkPixelRef> pixelRef = sk_ref_sp(outBitmap->pixelRef());
-            outBitmap->setInfo(mInfo);
-            outBitmap->setPixelRef(std::move(pixelRef), 0, 0);
-        }
         return;
     }
     outBitmap->setInfo(mInfo, rowBytes());
@@ -313,7 +306,7 @@
     return nullptr;
 }
 
-sk_sp<SkImage> Bitmap::makeImage(sk_sp<SkColorFilter>* outputColorFilter) {
+sk_sp<SkImage> Bitmap::makeImage() {
     sk_sp<SkImage> image = mImage;
     if (!image) {
         SkASSERT(!isHardware());
@@ -325,9 +318,6 @@
         // TODO: refactor Bitmap to not derive from SkPixelRef, which would allow caching here.
         image = SkMakeImageFromRasterBitmap(skiaBitmap, kNever_SkCopyPixelsMode);
     }
-    if (image->colorSpace() != nullptr && !image->colorSpace()->isSRGB()) {
-        *outputColorFilter = SkToSRGBColorFilter::Make(image->refColorSpace());
-    }
     return image;
 }
 
diff --git a/libs/hwui/hwui/Bitmap.h b/libs/hwui/hwui/Bitmap.h
index 238c764..d446377 100644
--- a/libs/hwui/hwui/Bitmap.h
+++ b/libs/hwui/hwui/Bitmap.h
@@ -105,14 +105,8 @@
      * Creates or returns a cached SkImage and is safe to be invoked from either
      * the UI or RenderThread.
      *
-     * @param outputColorFilter is a required param that will be populated by
-     *     this function if the bitmap's colorspace is not sRGB. If populated the
-     *     filter will convert colors from the bitmaps colorspace into sRGB. It
-     *     is the callers responsibility to use this colorFilter when drawing
-     *     this image into any destination that is presumed to be sRGB (i.e. a
-     *     buffer that has no colorspace defined).
      */
-    sk_sp<SkImage> makeImage(sk_sp<SkColorFilter>* outputColorFilter);
+    sk_sp<SkImage> makeImage();
 
     static BitmapPalette computePalette(const SkImageInfo& info, const void* addr, size_t rowBytes);
 
diff --git a/libs/hwui/hwui/Canvas.h b/libs/hwui/hwui/Canvas.h
index e99742b..a5f21d8 100644
--- a/libs/hwui/hwui/Canvas.h
+++ b/libs/hwui/hwui/Canvas.h
@@ -76,8 +76,8 @@
 namespace uirenderer {
 namespace VectorDrawable {
 class Tree;
-};
-};
+}
+}
 typedef uirenderer::VectorDrawable::Tree VectorDrawableRoot;
 
 typedef std::function<void(uint16_t* text, float* positions)> ReadGlyphFunc;
@@ -318,4 +318,4 @@
     friend class DrawTextOnPathFunctor;
 };
 
-};  // namespace android
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/AnimatedDrawables.h b/libs/hwui/pipeline/skia/AnimatedDrawables.h
index efef6de..bf19655 100644
--- a/libs/hwui/pipeline/skia/AnimatedDrawables.h
+++ b/libs/hwui/pipeline/skia/AnimatedDrawables.h
@@ -79,6 +79,6 @@
     sp<uirenderer::CanvasPropertyPaint> mPaint;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/DumpOpsCanvas.h b/libs/hwui/pipeline/skia/DumpOpsCanvas.h
index e4ba13d..2062194 100644
--- a/libs/hwui/pipeline/skia/DumpOpsCanvas.h
+++ b/libs/hwui/pipeline/skia/DumpOpsCanvas.h
@@ -172,6 +172,6 @@
     std::string mIdent;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/FunctorDrawable.h b/libs/hwui/pipeline/skia/FunctorDrawable.h
index 162d137..af3a056 100644
--- a/libs/hwui/pipeline/skia/FunctorDrawable.h
+++ b/libs/hwui/pipeline/skia/FunctorDrawable.h
@@ -48,6 +48,6 @@
     const SkRect mBounds;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp b/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp
index 90d5e71..4a87e75 100644
--- a/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp
+++ b/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp
@@ -216,6 +216,6 @@
     }
 }
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/GLFunctorDrawable.h b/libs/hwui/pipeline/skia/GLFunctorDrawable.h
index dd6ef25..215979c 100644
--- a/libs/hwui/pipeline/skia/GLFunctorDrawable.h
+++ b/libs/hwui/pipeline/skia/GLFunctorDrawable.h
@@ -38,9 +38,9 @@
     void syncFunctor() const override;
 
 protected:
-    virtual void onDraw(SkCanvas* canvas) override;
+    void onDraw(SkCanvas* canvas) override;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/LayerDrawable.cpp b/libs/hwui/pipeline/skia/LayerDrawable.cpp
index 13d2dae..f08ac17 100644
--- a/libs/hwui/pipeline/skia/LayerDrawable.cpp
+++ b/libs/hwui/pipeline/skia/LayerDrawable.cpp
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include <utils/MathUtils.h>
 #include "LayerDrawable.h"
 
 #include "GrBackendSurface.h"
@@ -32,6 +33,24 @@
     }
 }
 
+// This is a less-strict matrix.isTranslate() that will still report being translate-only
+// on imperceptibly small scaleX & scaleY values.
+static bool isBasicallyTranslate(const SkMatrix& matrix) {
+    if (!matrix.isScaleTranslate()) return false;
+    return MathUtils::isOne(matrix.getScaleX()) && MathUtils::isOne(matrix.getScaleY());
+}
+
+static bool shouldFilter(const SkMatrix& matrix) {
+    if (!matrix.isScaleTranslate()) return true;
+
+    // We only care about meaningful scale here
+    bool noScale = MathUtils::isOne(matrix.getScaleX())
+            && MathUtils::isOne(matrix.getScaleY());
+    bool pixelAligned = SkScalarIsInt(matrix.getTranslateX())
+            && SkScalarIsInt(matrix.getTranslateY());
+    return !(noScale && pixelAligned);
+}
+
 bool LayerDrawable::DrawLayer(GrContext* context, SkCanvas* canvas, Layer* layer,
                               const SkRect* srcRect, const SkRect* dstRect,
                               bool useLayerTransform) {
@@ -70,7 +89,7 @@
         SkPaint paint;
         paint.setAlpha(layer->getAlpha());
         paint.setBlendMode(layer->getMode());
-        paint.setColorFilter(layer->getColorSpaceWithFilter());
+        paint.setColorFilter(layer->getColorFilter());
         const bool nonIdentityMatrix = !matrix.isIdentity();
         if (nonIdentityMatrix) {
             canvas->save();
@@ -101,7 +120,7 @@
             // Integer translation is defined as when src rect and dst rect align fractionally.
             // Skia TextureOp has the above logic build-in, but not NonAAFillRectOp. TextureOp works
             // only for SrcOver blending and without color filter (readback uses Src blending).
-            bool isIntegerTranslate = totalMatrix.isTranslate()
+            bool isIntegerTranslate = isBasicallyTranslate(totalMatrix)
                     && SkScalarFraction(skiaDestRect.fLeft + totalMatrix[SkMatrix::kMTransX])
                     == SkScalarFraction(skiaSrcRect.fLeft)
                     && SkScalarFraction(skiaDestRect.fTop + totalMatrix[SkMatrix::kMTransY])
@@ -112,10 +131,7 @@
             canvas->drawImageRect(layerImage.get(), skiaSrcRect, skiaDestRect, &paint,
                                   SkCanvas::kFast_SrcRectConstraint);
         } else {
-            bool isIntegerTranslate = totalMatrix.isTranslate()
-                    && SkScalarIsInt(totalMatrix[SkMatrix::kMTransX])
-                    && SkScalarIsInt(totalMatrix[SkMatrix::kMTransY]);
-            if (layer->getForceFilter() || !isIntegerTranslate) {
+            if (layer->getForceFilter() || shouldFilter(totalMatrix)) {
                 paint.setFilterQuality(kLow_SkFilterQuality);
             }
             canvas->drawImage(layerImage.get(), 0, 0, &paint);
@@ -129,6 +145,6 @@
     return layerImage != nullptr;
 }
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/LayerDrawable.h b/libs/hwui/pipeline/skia/LayerDrawable.h
index 5c12590..95dc6d0 100644
--- a/libs/hwui/pipeline/skia/LayerDrawable.h
+++ b/libs/hwui/pipeline/skia/LayerDrawable.h
@@ -45,6 +45,6 @@
     sp<DeferredLayerUpdater> mLayerUpdater;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
index ea14d11..4494cb0 100644
--- a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
+++ b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp
@@ -115,12 +115,26 @@
     }
 }
 
+class MarkDraw {
+public:
+    explicit MarkDraw(SkCanvas& canvas, RenderNode& node) : mCanvas(canvas), mNode(node) {
+        if (CC_UNLIKELY(Properties::skpCaptureEnabled)) {
+            mNode.markDrawStart(mCanvas);
+        }
+    }
+    ~MarkDraw() {
+        if (CC_UNLIKELY(Properties::skpCaptureEnabled)) {
+            mNode.markDrawEnd(mCanvas);
+        }
+    }
+private:
+    SkCanvas& mCanvas;
+    RenderNode& mNode;
+};
+
 void RenderNodeDrawable::forceDraw(SkCanvas* canvas) {
     RenderNode* renderNode = mRenderNode.get();
-    if (CC_UNLIKELY(Properties::skpCaptureEnabled)) {
-        SkRect dimensions = SkRect::MakeWH(renderNode->getWidth(), renderNode->getHeight());
-        canvas->drawAnnotation(dimensions, renderNode->getName(), nullptr);
-    }
+    MarkDraw _marker{*canvas, *renderNode};
 
     // We only respect the nothingToDraw check when we are composing a layer. This
     // ensures that we paint the layer even if it is not currently visible in the
@@ -318,6 +332,6 @@
     }
 }
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/RenderNodeDrawable.h b/libs/hwui/pipeline/skia/RenderNodeDrawable.h
index d746978..6ba8e59 100644
--- a/libs/hwui/pipeline/skia/RenderNodeDrawable.h
+++ b/libs/hwui/pipeline/skia/RenderNodeDrawable.h
@@ -150,6 +150,6 @@
     SkiaDisplayList* mProjectedDisplayList = nullptr;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/ReorderBarrierDrawables.cpp b/libs/hwui/pipeline/skia/ReorderBarrierDrawables.cpp
index dba97fe..0a3c8f4 100644
--- a/libs/hwui/pipeline/skia/ReorderBarrierDrawables.cpp
+++ b/libs/hwui/pipeline/skia/ReorderBarrierDrawables.cpp
@@ -211,6 +211,6 @@
             casterAlpha < 1.0f ? SkShadowFlags::kTransparentOccluder_ShadowFlag : 0);
 }
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/ReorderBarrierDrawables.h b/libs/hwui/pipeline/skia/ReorderBarrierDrawables.h
index 26cfa90..cfc0f9b 100644
--- a/libs/hwui/pipeline/skia/ReorderBarrierDrawables.h
+++ b/libs/hwui/pipeline/skia/ReorderBarrierDrawables.h
@@ -74,6 +74,6 @@
     StartReorderBarrierDrawable* mStartBarrier;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/SkiaDisplayList.cpp b/libs/hwui/pipeline/skia/SkiaDisplayList.cpp
index 3890513..ac6f6a3 100644
--- a/libs/hwui/pipeline/skia/SkiaDisplayList.cpp
+++ b/libs/hwui/pipeline/skia/SkiaDisplayList.cpp
@@ -141,6 +141,6 @@
     mDisplayList.draw(&canvas);
 }
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/SkiaDisplayList.h b/libs/hwui/pipeline/skia/SkiaDisplayList.h
index ac7bb7b..d7879e7 100644
--- a/libs/hwui/pipeline/skia/SkiaDisplayList.h
+++ b/libs/hwui/pipeline/skia/SkiaDisplayList.h
@@ -36,7 +36,7 @@
 
 namespace VectorDrawable {
 class Tree;
-};
+}
 typedef uirenderer::VectorDrawable::Tree VectorDrawableRoot;
 
 namespace skiapipeline {
@@ -179,6 +179,6 @@
     SkMatrix mParentMatrix;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/SkiaMemoryTracer.cpp b/libs/hwui/pipeline/skia/SkiaMemoryTracer.cpp
index ee99622..ea578cb 100644
--- a/libs/hwui/pipeline/skia/SkiaMemoryTracer.cpp
+++ b/libs/hwui/pipeline/skia/SkiaMemoryTracer.cpp
@@ -106,8 +106,9 @@
                 resourceValues.insert({key, sizeResult->second});
             }
         } else {
+            TraceValue sizeValue = sizeResult->second;
             mCurrentValues.clear();
-            mCurrentValues.insert({key, sizeResult->second});
+            mCurrentValues.insert({key, sizeValue});
             mResults.insert({resourceName, mCurrentValues});
         }
     }
diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
index 6ae5999..142bca9 100644
--- a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
@@ -97,7 +97,7 @@
     SkASSERT(mRenderThread.getGrContext() != nullptr);
     sk_sp<SkSurface> surface(SkSurface::MakeFromBackendRenderTarget(
             mRenderThread.getGrContext(), backendRT, kBottomLeft_GrSurfaceOrigin, colorType,
-            nullptr, &props));
+            mSurfaceColorSpace, &props));
 
     SkiaPipeline::updateLighting(lightGeometry, lightInfo);
     renderFrame(*layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
@@ -176,6 +176,7 @@
     } else if (colorMode == ColorMode::WideColorGamut) {
         mSurfaceColorType = SkColorType::kRGBA_F16_SkColorType;
     }
+    mSurfaceColorSpace = SkColorSpace::MakeSRGB();
 
     if (mEglSurface != EGL_NO_SURFACE) {
         const bool preserveBuffer = (swapBehavior != SwapBehavior::kSwap_discardBuffer);
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.cpp b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
index 2dfe7c7..7a255c1 100644
--- a/libs/hwui/pipeline/skia/SkiaPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
@@ -169,7 +169,7 @@
     if (!layer || layer->width() != surfaceWidth || layer->height() != surfaceHeight) {
         SkImageInfo info;
         info = SkImageInfo::Make(surfaceWidth, surfaceHeight, getSurfaceColorType(),
-                                 kPremul_SkAlphaType);
+                                 kPremul_SkAlphaType, getSurfaceColorSpace());
         SkSurfaceProps props(0, kUnknown_SkPixelGeometry);
         SkASSERT(mRenderThread.getGrContext() != nullptr);
         node->setLayerSurface(SkSurface::MakeRenderTarget(mRenderThread.getGrContext(),
@@ -204,8 +204,7 @@
     GrContext* context = thread.getGrContext();
     if (context) {
         ATRACE_FORMAT("Bitmap#prepareToDraw %dx%d", bitmap->width(), bitmap->height());
-        sk_sp<SkColorFilter> colorFilter;
-        auto image = bitmap->makeImage(&colorFilter);
+        auto image = bitmap->makeImage();
         if (image.get() && !bitmap->isHardware()) {
             SkImage_pinAsTexture(image.get(), context);
             SkImage_unpinAsTexture(image.get(), context);
diff --git a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
index 45022e7..b682ab0 100644
--- a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
+++ b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
@@ -179,9 +179,8 @@
 }
 
 void SkiaRecordingCanvas::drawBitmap(Bitmap& bitmap, float left, float top, const SkPaint* paint) {
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
-    mRecorder.drawImage(image, left, top, filterBitmap(paint, std::move(colorFilter)), bitmap.palette());
+    sk_sp<SkImage> image = bitmap.makeImage();
+    mRecorder.drawImage(image, left, top, filterPaint(paint), bitmap.palette());
     // if image->unique() is true, then mRecorder.drawImage failed for some reason. It also means
     // it is not safe to store a raw SkImage pointer, because the image object will be destroyed
     // when this function ends.
@@ -194,9 +193,8 @@
     SkAutoCanvasRestore acr(&mRecorder, true);
     concat(matrix);
 
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
-    mRecorder.drawImage(image, 0, 0, filterBitmap(paint, std::move(colorFilter)), bitmap.palette());
+    sk_sp<SkImage> image = bitmap.makeImage();
+    mRecorder.drawImage(image, 0, 0, filterPaint(paint), bitmap.palette());
     if (!bitmap.isImmutable() && image.get() && !image->unique()) {
         mDisplayList->mMutableImages.push_back(image.get());
     }
@@ -208,9 +206,8 @@
     SkRect srcRect = SkRect::MakeLTRB(srcLeft, srcTop, srcRight, srcBottom);
     SkRect dstRect = SkRect::MakeLTRB(dstLeft, dstTop, dstRight, dstBottom);
 
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
-    mRecorder.drawImageRect(image, srcRect, dstRect, filterBitmap(paint, std::move(colorFilter)),
+    sk_sp<SkImage> image = bitmap.makeImage();
+    mRecorder.drawImageRect(image, srcRect, dstRect, filterPaint(paint),
                             SkCanvas::kFast_SrcRectConstraint, bitmap.palette());
     if (!bitmap.isImmutable() && image.get() && !image->unique() && !srcRect.isEmpty() &&
         !dstRect.isEmpty()) {
@@ -247,10 +244,9 @@
     if (!filteredPaint || filteredPaint->getFilterQuality() != kLow_SkFilterQuality) {
         filteredPaint.writeable().setFilterQuality(kLow_SkFilterQuality);
     }
-    sk_sp<SkColorFilter> colorFilter;
-    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
+    sk_sp<SkImage> image = bitmap.makeImage();
     mRecorder.drawImageLattice(image, lattice, dst,
-                               filterBitmap(std::move(filteredPaint), std::move(colorFilter)),
+                               filterPaint(std::move(filteredPaint)),
                                bitmap.palette());
     if (!bitmap.isImmutable() && image.get() && !image->unique() && !dst.isEmpty()) {
         mDisplayList->mMutableImages.push_back(image.get());
@@ -263,6 +259,6 @@
     return 0;
 }
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.h b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.h
index 988728d..d6107a9 100644
--- a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.h
+++ b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.h
@@ -92,6 +92,6 @@
     PaintCoW&& filterBitmap(PaintCoW&& paint, sk_sp<SkColorFilter> colorSpaceFilter);
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
index a494e49..3607b23 100644
--- a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
@@ -122,8 +122,9 @@
         mVkSurface = nullptr;
     }
 
+    mSurfaceColorSpace = SkColorSpace::MakeSRGB();
     if (surface) {
-        mVkSurface = mVkManager.createSurface(surface, colorMode);
+        mVkSurface = mVkManager.createSurface(surface, colorMode, mSurfaceColorSpace);
     }
 
     if (colorMode == ColorMode::SRGB) {
diff --git a/libs/hwui/pipeline/skia/VkInteropFunctorDrawable.cpp b/libs/hwui/pipeline/skia/VkInteropFunctorDrawable.cpp
index a594206..004a558 100644
--- a/libs/hwui/pipeline/skia/VkInteropFunctorDrawable.cpp
+++ b/libs/hwui/pipeline/skia/VkInteropFunctorDrawable.cpp
@@ -219,6 +219,6 @@
     });
 }
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/pipeline/skia/VkInteropFunctorDrawable.h b/libs/hwui/pipeline/skia/VkInteropFunctorDrawable.h
index 3269cfb..8fe52c5 100644
--- a/libs/hwui/pipeline/skia/VkInteropFunctorDrawable.h
+++ b/libs/hwui/pipeline/skia/VkInteropFunctorDrawable.h
@@ -51,6 +51,6 @@
     SkImageInfo mFBInfo;
 };
 
-};  // namespace skiapipeline
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace skiapipeline
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/private/hwui/DrawGlInfo.h b/libs/hwui/private/hwui/DrawGlInfo.h
index efa9da2..9e1bb8e 100644
--- a/libs/hwui/private/hwui/DrawGlInfo.h
+++ b/libs/hwui/private/hwui/DrawGlInfo.h
@@ -83,7 +83,7 @@
     };
 };  // struct DrawGlInfo
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_DRAW_GL_INFO_H
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index f1a522e..6869972 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -323,25 +323,6 @@
             // the deadline for RT animations
             info.out.canDrawThisFrame = false;
         }
-        /* This logic exists to try and recover from a display latch miss, which essentially
-         * results in the bufferqueue being double-buffered instead of triple-buffered.
-         * SurfaceFlinger itself now tries to handle & recover from this situation, so this
-         * logic should no longer be necessary. As it's occasionally triggering when
-         * undesired disable it.
-         * TODO: Remove this entirely if the results are solid.
-        else if (vsyncDelta >= mRenderThread.timeLord().frameIntervalNanos() * 3 ||
-                   (latestVsync - mLastDropVsync) < 500_ms) {
-            // It's been several frame intervals, assume the buffer queue is fine
-            // or the last drop was too recent
-            info.out.canDrawThisFrame = true;
-        } else {
-            info.out.canDrawThisFrame = !isSwapChainStuffed();
-            if (!info.out.canDrawThisFrame) {
-                // dropping frame
-                mLastDropVsync = mRenderThread.timeLord().latestVsync();
-            }
-        }
-        */
     } else {
         info.out.canDrawThisFrame = true;
     }
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index 6668c584..d9b789f 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -49,7 +49,7 @@
     Reset = 1 << 1,
     JankStats = 1 << 2,
 };
-};
+}
 
 /*
  * RenderProxy is strictly single threaded. All methods must be invoked on the owning
diff --git a/libs/hwui/renderthread/VulkanManager.cpp b/libs/hwui/renderthread/VulkanManager.cpp
index d84ec85..2abb3d5 100644
--- a/libs/hwui/renderthread/VulkanManager.cpp
+++ b/libs/hwui/renderthread/VulkanManager.cpp
@@ -263,6 +263,15 @@
         tailPNext = &blend->pNext;
     }
 
+    VkPhysicalDeviceSamplerYcbcrConversionFeatures* ycbcrFeature;
+    ycbcrFeature = (VkPhysicalDeviceSamplerYcbcrConversionFeatures*) malloc(
+            sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
+    LOG_ALWAYS_FATAL_IF(!ycbcrFeature);
+    ycbcrFeature->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
+    ycbcrFeature->pNext = nullptr;
+    *tailPNext = ycbcrFeature;
+    tailPNext = &ycbcrFeature->pNext;
+
     // query to get the physical device features
     mGetPhysicalDeviceFeatures2(mPhysicalDevice, &features);
     // this looks like it would slow things down,
@@ -463,8 +472,9 @@
     window->query(window, NATIVE_WINDOW_HEIGHT, &windowHeight);
     if (windowWidth != surface->mWindowWidth || windowHeight != surface->mWindowHeight) {
         ColorMode colorMode = surface->mColorMode;
+        sk_sp<SkColorSpace> colorSpace = surface->mColorSpace;
         destroySurface(surface);
-        *surfaceOut = createSurface(window, colorMode);
+        *surfaceOut = createSurface(window, colorMode, colorSpace);
         surface = *surfaceOut;
     }
 
@@ -638,7 +648,7 @@
         imageInfo.mSurface = SkSurface::MakeFromBackendRenderTarget(
                 mRenderThread.getGrContext(), backendRT, kTopLeft_GrSurfaceOrigin,
                 surface->mColorMode == ColorMode::WideColorGamut ? kRGBA_F16_SkColorType
-                : kRGBA_8888_SkColorType, nullptr, &props);
+                : kRGBA_8888_SkColorType, surface->mColorSpace, &props);
     }
 
     SkASSERT(mCommandPool != VK_NULL_HANDLE);
@@ -735,7 +745,7 @@
     surface->mWindowWidth = extent.width;
     surface->mWindowHeight = extent.height;
 
-    uint32_t imageCount = caps.minImageCount + 2;
+    uint32_t imageCount = std::max<uint32_t>(3, caps.minImageCount);
     if (caps.maxImageCount > 0 && imageCount > caps.maxImageCount) {
         // Application must settle for fewer images than desired:
         imageCount = caps.maxImageCount;
@@ -824,14 +834,15 @@
     return true;
 }
 
-VulkanSurface* VulkanManager::createSurface(ANativeWindow* window, ColorMode colorMode) {
+VulkanSurface* VulkanManager::createSurface(ANativeWindow* window, ColorMode colorMode,
+        sk_sp<SkColorSpace> surfaceColorSpace) {
     initialize();
 
     if (!window) {
         return nullptr;
     }
 
-    VulkanSurface* surface = new VulkanSurface(colorMode, window);
+    VulkanSurface* surface = new VulkanSurface(colorMode, window, surfaceColorSpace);
 
     VkAndroidSurfaceCreateInfoKHR surfaceCreateInfo;
     memset(&surfaceCreateInfo, 0, sizeof(VkAndroidSurfaceCreateInfoKHR));
diff --git a/libs/hwui/renderthread/VulkanManager.h b/libs/hwui/renderthread/VulkanManager.h
index 8594a1b..d67d2c8 100644
--- a/libs/hwui/renderthread/VulkanManager.h
+++ b/libs/hwui/renderthread/VulkanManager.h
@@ -38,8 +38,8 @@
 
 class VulkanSurface {
 public:
-    VulkanSurface(ColorMode colorMode, ANativeWindow* window)
-            : mColorMode(colorMode), mNativeWindow(window) {}
+    VulkanSurface(ColorMode colorMode, ANativeWindow* window, sk_sp<SkColorSpace> colorSpace)
+            : mColorMode(colorMode), mNativeWindow(window), mColorSpace(colorSpace) {}
 
     sk_sp<SkSurface> getBackBufferSurface() { return mBackbuffer; }
 
@@ -79,6 +79,7 @@
     ANativeWindow* mNativeWindow;
     int mWindowWidth = 0;
     int mWindowHeight = 0;
+    sk_sp<SkColorSpace> mColorSpace;
 };
 
 // This class contains the shared global Vulkan objects, such as VkInstance, VkDevice and VkQueue,
@@ -96,7 +97,8 @@
 
     // Given a window this creates a new VkSurfaceKHR and VkSwapchain and stores them inside a new
     // VulkanSurface object which is returned.
-    VulkanSurface* createSurface(ANativeWindow* window, ColorMode colorMode);
+    VulkanSurface* createSurface(ANativeWindow* window, ColorMode colorMode,
+            sk_sp<SkColorSpace> surfaceColorSpace);
 
     // Destroy the VulkanSurface and all associated vulkan objects.
     void destroySurface(VulkanSurface* surface);
diff --git a/libs/hwui/surfacetexture/EGLConsumer.cpp b/libs/hwui/surfacetexture/EGLConsumer.cpp
index c8220c6..85b3917 100644
--- a/libs/hwui/surfacetexture/EGLConsumer.cpp
+++ b/libs/hwui/surfacetexture/EGLConsumer.cpp
@@ -672,4 +672,4 @@
     return image;
 }
 
-};  // namespace android
+}  // namespace android
diff --git a/libs/hwui/surfacetexture/EGLConsumer.h b/libs/hwui/surfacetexture/EGLConsumer.h
index eccb082..7dac3ef 100644
--- a/libs/hwui/surfacetexture/EGLConsumer.h
+++ b/libs/hwui/surfacetexture/EGLConsumer.h
@@ -308,4 +308,4 @@
     sp<EglImage> mReleasedTexImage;
 };
 
-};  // namespace android
+}  // namespace android
diff --git a/libs/hwui/surfacetexture/ImageConsumer.cpp b/libs/hwui/surfacetexture/ImageConsumer.cpp
index 9ffccfb..15aec9f 100644
--- a/libs/hwui/surfacetexture/ImageConsumer.cpp
+++ b/libs/hwui/surfacetexture/ImageConsumer.cpp
@@ -22,6 +22,7 @@
 #include "renderthread/EglManager.h"
 #include "renderthread/RenderThread.h"
 #include "renderthread/VulkanManager.h"
+#include "utils/Color.h"
 
 // Macro for including the SurfaceTexture name in log messages
 #define IMG_LOGE(x, ...) ALOGE("[%s] " x, st.mName.string(), ##__VA_ARGS__)
@@ -44,13 +45,16 @@
     mImageSlots[buf].mEglFence = EGL_NO_SYNC_KHR;
 }
 
-void ImageConsumer::ImageSlot::createIfNeeded(sp<GraphicBuffer> graphicBuffer) {
-    if (!mImage.get()) {
+void ImageConsumer::ImageSlot::createIfNeeded(sp<GraphicBuffer> graphicBuffer,
+                                              android_dataspace dataspace) {
+    if (!mImage.get() || dataspace != mDataspace) {
         mImage = graphicBuffer.get()
                          ? SkImage::MakeFromAHardwareBuffer(
                                    reinterpret_cast<AHardwareBuffer*>(graphicBuffer.get()),
-                                   kPremul_SkAlphaType)
+                                   kPremul_SkAlphaType,
+                                   uirenderer::DataSpaceToColorSpace(dataspace))
                          : nullptr;
+        mDataspace = dataspace;
     }
 }
 
@@ -66,7 +70,7 @@
             int slot = st.mCurrentTexture;
             if (slot != BufferItem::INVALID_BUFFER_SLOT) {
                 *queueEmpty = true;
-                mImageSlots[slot].createIfNeeded(st.mSlots[slot].mGraphicBuffer);
+                mImageSlots[slot].createIfNeeded(st.mSlots[slot].mGraphicBuffer, item.mDataSpace);
                 return mImageSlots[slot].mImage;
             }
         }
@@ -145,7 +149,7 @@
     st.computeCurrentTransformMatrixLocked();
 
     *queueEmpty = false;
-    mImageSlots[slot].createIfNeeded(st.mSlots[slot].mGraphicBuffer);
+    mImageSlots[slot].createIfNeeded(st.mSlots[slot].mGraphicBuffer, item.mDataSpace);
     return mImageSlots[slot].mImage;
 }
 
diff --git a/libs/hwui/surfacetexture/ImageConsumer.h b/libs/hwui/surfacetexture/ImageConsumer.h
index 31ee8db..f0e55bb 100644
--- a/libs/hwui/surfacetexture/ImageConsumer.h
+++ b/libs/hwui/surfacetexture/ImageConsumer.h
@@ -68,18 +68,21 @@
      * ImageConsumer maintains about a BufferQueue buffer slot.
      */
     struct ImageSlot {
-        ImageSlot() : mEglFence(EGL_NO_SYNC_KHR) {}
+        ImageSlot() : mDataspace(HAL_DATASPACE_UNKNOWN), mEglFence(EGL_NO_SYNC_KHR) {}
 
         // mImage is the SkImage created from mGraphicBuffer.
         sk_sp<SkImage> mImage;
 
+        // the dataspace associated with the current image
+        android_dataspace mDataspace;
+
         /**
          * mEglFence is the EGL sync object that must signal before the buffer
          * associated with this buffer slot may be dequeued.
          */
         EGLSyncKHR mEglFence;
 
-        void createIfNeeded(sp<GraphicBuffer> graphicBuffer);
+        void createIfNeeded(sp<GraphicBuffer> graphicBuffer, android_dataspace dataspace);
     };
 
     /**
@@ -94,4 +97,4 @@
     ImageSlot mImageSlots[BufferQueueDefs::NUM_BUFFER_SLOTS];
 };
 
-}; /* namespace android */
+} /* namespace android */
diff --git a/libs/hwui/surfacetexture/SurfaceTexture.cpp b/libs/hwui/surfacetexture/SurfaceTexture.cpp
index 4bff715..da09444 100644
--- a/libs/hwui/surfacetexture/SurfaceTexture.cpp
+++ b/libs/hwui/surfacetexture/SurfaceTexture.cpp
@@ -470,8 +470,7 @@
     ConsumerBase::dumpLocked(result, prefix);
 }
 
-sk_sp<SkImage> SurfaceTexture::dequeueImage(SkMatrix& transformMatrix, android_dataspace& dataSpace,
-                                            bool* queueEmpty,
+sk_sp<SkImage> SurfaceTexture::dequeueImage(SkMatrix& transformMatrix, bool* queueEmpty,
                                             uirenderer::RenderState& renderState) {
     Mutex::Autolock _l(mMutex);
 
@@ -488,9 +487,8 @@
     auto image = mImageConsumer.dequeueImage(queueEmpty, *this, renderState);
     if (image.get()) {
         uirenderer::mat4(mCurrentTransformMatrix).copyTo(transformMatrix);
-        dataSpace = mCurrentDataSpace;
     }
     return image;
 }
 
-};  // namespace android
+}  // namespace android
diff --git a/libs/hwui/surfacetexture/SurfaceTexture.h b/libs/hwui/surfacetexture/SurfaceTexture.h
index db392a9..b5d136f 100644
--- a/libs/hwui/surfacetexture/SurfaceTexture.h
+++ b/libs/hwui/surfacetexture/SurfaceTexture.h
@@ -258,8 +258,8 @@
      */
     status_t attachToContext(uint32_t tex);
 
-    sk_sp<SkImage> dequeueImage(SkMatrix& transformMatrix, android_dataspace& dataSpace,
-                                bool* queueEmpty, uirenderer::RenderState& renderState);
+    sk_sp<SkImage> dequeueImage(SkMatrix& transformMatrix, bool* queueEmpty,
+                                uirenderer::RenderState& renderState);
 
     /**
      * attachToView attaches a SurfaceTexture that is currently in the
@@ -449,4 +449,4 @@
 };
 
 // ----------------------------------------------------------------------------
-};  // namespace android
+}  // namespace android
diff --git a/libs/hwui/tests/common/TestUtils.cpp b/libs/hwui/tests/common/TestUtils.cpp
index 66b9b85..8a1bc4d 100644
--- a/libs/hwui/tests/common/TestUtils.cpp
+++ b/libs/hwui/tests/common/TestUtils.cpp
@@ -72,9 +72,7 @@
     layerUpdater->setTransform(&transform);
 
     // updateLayer so it's ready to draw
-    SkMatrix identity;
-    identity.setIdentity();
-    layerUpdater->updateLayer(true, identity, HAL_DATASPACE_UNKNOWN, nullptr);
+    layerUpdater->updateLayer(true, SkMatrix::I(), nullptr);
     return layerUpdater;
 }
 
diff --git a/libs/hwui/tests/common/scenes/BitmapShaders.cpp b/libs/hwui/tests/common/scenes/BitmapShaders.cpp
index 15039b5..ad11a1d 100644
--- a/libs/hwui/tests/common/scenes/BitmapShaders.cpp
+++ b/libs/hwui/tests/common/scenes/BitmapShaders.cpp
@@ -44,8 +44,7 @@
                 });
 
         SkPaint paint;
-        sk_sp<SkColorFilter> colorFilter;
-        sk_sp<SkImage> image = hwuiBitmap->makeImage(&colorFilter);
+        sk_sp<SkImage> image = hwuiBitmap->makeImage();
         sk_sp<SkShader> repeatShader =
                 image->makeShader(SkShader::TileMode::kRepeat_TileMode,
                                   SkShader::TileMode::kRepeat_TileMode, nullptr);
diff --git a/libs/hwui/tests/common/scenes/HwBitmapInCompositeShader.cpp b/libs/hwui/tests/common/scenes/HwBitmapInCompositeShader.cpp
index f137562..448408d 100644
--- a/libs/hwui/tests/common/scenes/HwBitmapInCompositeShader.cpp
+++ b/libs/hwui/tests/common/scenes/HwBitmapInCompositeShader.cpp
@@ -72,8 +72,7 @@
     void doFrame(int frameNr) override {}
 
     sk_sp<SkShader> createBitmapShader(Bitmap& bitmap) {
-        sk_sp<SkColorFilter> colorFilter;
-        sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
+        sk_sp<SkImage> image = bitmap.makeImage();
         return image->makeShader(SkShader::TileMode::kClamp_TileMode,
                                  SkShader::TileMode::kClamp_TileMode);
     }
diff --git a/libs/hwui/tests/unit/CacheManagerTests.cpp b/libs/hwui/tests/unit/CacheManagerTests.cpp
index c235715..210fced 100644
--- a/libs/hwui/tests/unit/CacheManagerTests.cpp
+++ b/libs/hwui/tests/unit/CacheManagerTests.cpp
@@ -54,8 +54,7 @@
     // create an image and pin it so that we have something with a unique key in the cache
     sk_sp<Bitmap> bitmap =
             Bitmap::allocateHeapBitmap(SkImageInfo::MakeA8(displayInfo.w, displayInfo.h));
-    sk_sp<SkColorFilter> filter;
-    sk_sp<SkImage> image = bitmap->makeImage(&filter);
+    sk_sp<SkImage> image = bitmap->makeImage();
     ASSERT_TRUE(SkImage_pinAsTexture(image.get(), grContext));
 
     // attempt to trim all memory while we still hold strong refs
diff --git a/libs/hwui/tests/unit/DeferredLayerUpdaterTests.cpp b/libs/hwui/tests/unit/DeferredLayerUpdaterTests.cpp
index 6c8775b..a686979 100644
--- a/libs/hwui/tests/unit/DeferredLayerUpdaterTests.cpp
+++ b/libs/hwui/tests/unit/DeferredLayerUpdaterTests.cpp
@@ -43,7 +43,7 @@
     SkBitmap bitmap;
     bitmap.allocN32Pixels(16, 16);
     sk_sp<SkImage> layerImage = SkImage::MakeFromBitmap(bitmap);
-    layerUpdater->updateLayer(true, scaledMatrix, HAL_DATASPACE_UNKNOWN, layerImage);
+    layerUpdater->updateLayer(true, scaledMatrix, layerImage);
 
     // the backing layer should now have all the properties applied.
     EXPECT_EQ(100u, layerUpdater->backingLayer()->getWidth());
diff --git a/libs/hwui/tests/unit/LayerUpdateQueueTests.cpp b/libs/hwui/tests/unit/LayerUpdateQueueTests.cpp
index 217d63f..41714eb 100644
--- a/libs/hwui/tests/unit/LayerUpdateQueueTests.cpp
+++ b/libs/hwui/tests/unit/LayerUpdateQueueTests.cpp
@@ -81,5 +81,5 @@
 
     EXPECT_TRUE(queue.entries().empty());
 }
-};
-};
+}
+}
diff --git a/libs/hwui/tests/unit/RenderNodeDrawableTests.cpp b/libs/hwui/tests/unit/RenderNodeDrawableTests.cpp
index 2c73940..0331581 100644
--- a/libs/hwui/tests/unit/RenderNodeDrawableTests.cpp
+++ b/libs/hwui/tests/unit/RenderNodeDrawableTests.cpp
@@ -461,7 +461,7 @@
         ProjectionLayer(int* drawCounter)
                 : SkSurface_Base(SkImageInfo::MakeN32Premul(LAYER_WIDTH, LAYER_HEIGHT), nullptr)
                 , mDrawCounter(drawCounter) {}
-        virtual sk_sp<SkImage> onNewImageSnapshot() override {
+        virtual sk_sp<SkImage> onNewImageSnapshot(const SkIRect* bounds) override {
             EXPECT_EQ(3, (*mDrawCounter)++);
             EXPECT_EQ(SkRect::MakeLTRB(100 - SCROLL_X, 100 - SCROLL_Y, 300 - SCROLL_X,
                                        300 - SCROLL_Y),
diff --git a/libs/hwui/tests/unit/SkiaCanvasTests.cpp b/libs/hwui/tests/unit/SkiaCanvasTests.cpp
index 634ceff..f3a7648 100644
--- a/libs/hwui/tests/unit/SkiaCanvasTests.cpp
+++ b/libs/hwui/tests/unit/SkiaCanvasTests.cpp
@@ -53,12 +53,12 @@
     adobeBitmap->getSkBitmap(&adobeSkBitmap);
     *adobeSkBitmap.getAddr32(0, 0) = 0xFF0000F0;  // Opaque, almost fully-red
 
-    SkImageInfo info = adobeInfo.makeColorSpace(nullptr);
+    SkImageInfo info = adobeInfo.makeColorSpace(SkColorSpace::MakeSRGB());
     sk_sp<Bitmap> bitmap = Bitmap::allocateHeapBitmap(info);
     SkBitmap skBitmap;
     bitmap->getSkBitmap(&skBitmap);
 
-    // Create a software canvas.
+    // Create a software sRGB canvas.
     SkiaCanvas canvas(skBitmap);
     canvas.drawBitmap(*adobeBitmap, 0, 0, nullptr);
     // The result should be fully red, since we convert to sRGB at draw time.
@@ -77,7 +77,7 @@
     picCanvas.drawBitmap(*adobeBitmap, 0, 0, nullptr);
     sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
 
-    // Playback to an software canvas.  The result should be fully red.
+    // Playback to a software sRGB canvas.  The result should be fully red.
     canvas.asSkCanvas()->drawPicture(picture);
     ASSERT_EQ(0xFF0000FF, *skBitmap.getAddr32(0, 0));
 }
diff --git a/libs/hwui/tests/unit/SkiaPipelineTests.cpp b/libs/hwui/tests/unit/SkiaPipelineTests.cpp
index 65b4e26..d16b8be 100644
--- a/libs/hwui/tests/unit/SkiaPipelineTests.cpp
+++ b/libs/hwui/tests/unit/SkiaPipelineTests.cpp
@@ -247,7 +247,7 @@
 
     SkCanvas* onNewCanvas() override { return new T(); }
     sk_sp<SkSurface> onNewSurface(const SkImageInfo&) override { return nullptr; }
-    sk_sp<SkImage> onNewImageSnapshot() override { return nullptr; }
+    sk_sp<SkImage> onNewImageSnapshot(const SkIRect* bounds) override { return nullptr; }
     T* canvas() { return static_cast<T*>(getCanvas()); }
     void onCopyOnWrite(ContentChangeMode) override {}
     void onWritePixels(const SkPixmap&, int x, int y) override {}
diff --git a/libs/hwui/tests/unit/VectorDrawableTests.cpp b/libs/hwui/tests/unit/VectorDrawableTests.cpp
index 02f740c..ee6beba 100644
--- a/libs/hwui/tests/unit/VectorDrawableTests.cpp
+++ b/libs/hwui/tests/unit/VectorDrawableTests.cpp
@@ -406,5 +406,5 @@
     EXPECT_TRUE(shader->unique());
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/thread/Barrier.h b/libs/hwui/thread/Barrier.h
index 8faeee6..bb750ca 100644
--- a/libs/hwui/thread/Barrier.h
+++ b/libs/hwui/thread/Barrier.h
@@ -48,7 +48,7 @@
     mutable Condition mCondition;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_BARRIER_H
diff --git a/libs/hwui/thread/Future.h b/libs/hwui/thread/Future.h
index 45f3102..df53348e 100644
--- a/libs/hwui/thread/Future.h
+++ b/libs/hwui/thread/Future.h
@@ -53,7 +53,7 @@
     T mResult;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_FUTURE_H
diff --git a/libs/hwui/thread/Signal.h b/libs/hwui/thread/Signal.h
index ffcd4b6..6d33ac4 100644
--- a/libs/hwui/thread/Signal.h
+++ b/libs/hwui/thread/Signal.h
@@ -53,7 +53,7 @@
     mutable Condition mCondition;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_SIGNAL_H
diff --git a/libs/hwui/thread/Task.h b/libs/hwui/thread/Task.h
index 276a22f..228ce19 100644
--- a/libs/hwui/thread/Task.h
+++ b/libs/hwui/thread/Task.h
@@ -48,7 +48,7 @@
     sp<Future<T> > mFuture;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_TASK_H
diff --git a/libs/hwui/thread/TaskManager.cpp b/libs/hwui/thread/TaskManager.cpp
index 54b55e4..26ff6eb 100644
--- a/libs/hwui/thread/TaskManager.cpp
+++ b/libs/hwui/thread/TaskManager.cpp
@@ -129,5 +129,5 @@
     mSignal.signal();
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/thread/TaskManager.h b/libs/hwui/thread/TaskManager.h
index 29b4fcd..c4c1291 100644
--- a/libs/hwui/thread/TaskManager.h
+++ b/libs/hwui/thread/TaskManager.h
@@ -101,7 +101,7 @@
     std::vector<sp<WorkerThread> > mThreads;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_TASK_MANAGER_H
diff --git a/libs/hwui/utils/Blur.cpp b/libs/hwui/utils/Blur.cpp
index 1bc5646..763d1aa 100644
--- a/libs/hwui/utils/Blur.cpp
+++ b/libs/hwui/utils/Blur.cpp
@@ -178,5 +178,5 @@
     }
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/utils/Blur.h b/libs/hwui/utils/Blur.h
index bec3837..d6b41b8 100644
--- a/libs/hwui/utils/Blur.h
+++ b/libs/hwui/utils/Blur.h
@@ -41,7 +41,7 @@
                          int32_t width, int32_t height);
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_HWUI_BLUR_H
diff --git a/libs/hwui/utils/Color.cpp b/libs/hwui/utils/Color.cpp
index 3fb6a31..dc347f6 100644
--- a/libs/hwui/utils/Color.cpp
+++ b/libs/hwui/utils/Color.cpp
@@ -221,5 +221,5 @@
             static_cast<uint8_t>(rgb.b * 255));
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/utils/FatVector.h b/libs/hwui/utils/FatVector.h
index eafe2f1..8cc4d10 100644
--- a/libs/hwui/utils/FatVector.h
+++ b/libs/hwui/utils/FatVector.h
@@ -99,7 +99,7 @@
     typename InlineStdAllocator<T, SIZE>::Allocation mAllocation;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_FAT_VECTOR_H
diff --git a/libs/hwui/utils/GLUtils.cpp b/libs/hwui/utils/GLUtils.cpp
index fcd036c..c694e93 100644
--- a/libs/hwui/utils/GLUtils.cpp
+++ b/libs/hwui/utils/GLUtils.cpp
@@ -76,5 +76,5 @@
     }
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/utils/LinearAllocator.cpp b/libs/hwui/utils/LinearAllocator.cpp
index 3e5021c..8baa4b77 100644
--- a/libs/hwui/utils/LinearAllocator.cpp
+++ b/libs/hwui/utils/LinearAllocator.cpp
@@ -249,5 +249,5 @@
     ALOGD("%sPages %zu (dedicated %zu)", prefix, mPageCount, mDedicatedPageCount);
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/utils/LinearAllocator.h b/libs/hwui/utils/LinearAllocator.h
index 03f685e..b401fcf 100644
--- a/libs/hwui/utils/LinearAllocator.h
+++ b/libs/hwui/utils/LinearAllocator.h
@@ -201,7 +201,7 @@
             : std::vector<T, LinearStdAllocator<T>>(allocator) {}
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif  // ANDROID_LINEARALLOCATOR_H
diff --git a/libs/hwui/utils/MathUtils.h b/libs/hwui/utils/MathUtils.h
index 5475898..cc8d83f 100644
--- a/libs/hwui/utils/MathUtils.h
+++ b/libs/hwui/utils/MathUtils.h
@@ -34,6 +34,10 @@
         return (value >= -NON_ZERO_EPSILON) && (value <= NON_ZERO_EPSILON);
     }
 
+    inline static bool isOne(float value) {
+        return areEqual(value, 1.0f);
+    }
+
     inline static bool isPositive(float value) { return value >= NON_ZERO_EPSILON; }
 
     /**
diff --git a/libs/hwui/utils/Pair.h b/libs/hwui/utils/Pair.h
index 4bcd576..76f93cb 100644
--- a/libs/hwui/utils/Pair.h
+++ b/libs/hwui/utils/Pair.h
@@ -36,7 +36,7 @@
     inline const S& getSecond() const { return second; }
 };
 
-};  // namespace uirenderer
+}  // namespace uirenderer
 
 template <typename F, typename S>
 struct trait_trivial_ctor<uirenderer::Pair<F, S> > {
@@ -55,6 +55,6 @@
     enum { value = aggregate_traits<F, S>::has_trivial_move };
 };
 
-};  // namespace android
+}  // namespace android
 
 #endif  // ANDROID_HWUI_PAIR_H
diff --git a/libs/hwui/utils/Result.h b/libs/hwui/utils/Result.h
index 7f33f2e..bd20ba6 100644
--- a/libs/hwui/utils/Result.h
+++ b/libs/hwui/utils/Result.h
@@ -51,4 +51,4 @@
     std::variant<R, Error<E>> result;
 };
 
-}; // namespace android::uirenderer
+} // namespace android::uirenderer
diff --git a/libs/hwui/utils/RingBuffer.h b/libs/hwui/utils/RingBuffer.h
index b3e8931..081386a 100644
--- a/libs/hwui/utils/RingBuffer.h
+++ b/libs/hwui/utils/RingBuffer.h
@@ -61,7 +61,7 @@
     size_t mCount = 0;
 };
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
 
 #endif /* RINGBUFFER_H_ */
diff --git a/libs/hwui/utils/StringUtils.cpp b/libs/hwui/utils/StringUtils.cpp
index 5304b76..304982e 100644
--- a/libs/hwui/utils/StringUtils.cpp
+++ b/libs/hwui/utils/StringUtils.cpp
@@ -34,5 +34,5 @@
     return set;
 }
 
-};  // namespace uirenderer
-};  // namespace android
+}  // namespace uirenderer
+}  // namespace android
diff --git a/libs/hwui/utils/TypeLogic.h b/libs/hwui/utils/TypeLogic.h
index dbdad33..1689cce 100644
--- a/libs/hwui/utils/TypeLogic.h
+++ b/libs/hwui/utils/TypeLogic.h
@@ -37,4 +37,4 @@
 template <typename D, typename S> using same_cv = copy_cv<std::remove_cv_t<D>, S>;
 template <typename D, typename S> using same_cv_t = typename same_cv<D, S>::type;
 
-}; // namespace android::uirenderer
\ No newline at end of file
+} // namespace android::uirenderer
diff --git a/libs/input/Android.bp b/libs/input/Android.bp
index c5a6ec5..f1d9397 100644
--- a/libs/input/Android.bp
+++ b/libs/input/Android.bp
@@ -28,10 +28,13 @@
         "libgui",
         "libui",
         "libinput",
-        "libinputflinger",
         "libnativewindow",
     ],
 
+    header_libs: [
+        "libinputflinger_headers",
+    ],
+
     include_dirs: ["frameworks/native/services"],
 
     cflags: [
diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h
index eb3469e..7f4e5a5 100644
--- a/libs/input/PointerController.h
+++ b/libs/input/PointerController.h
@@ -24,7 +24,7 @@
 
 #include <ui/DisplayInfo.h>
 #include <input/Input.h>
-#include <inputflinger/PointerControllerInterface.h>
+#include <PointerControllerInterface.h>
 #include <utils/BitSet.h>
 #include <utils/RefBase.h>
 #include <utils/Looper.h>
diff --git a/libs/services/include/android/os/StatsLogEventWrapper.h b/libs/services/include/android/os/StatsLogEventWrapper.h
index f60c338..8de2ab4 100644
--- a/libs/services/include/android/os/StatsLogEventWrapper.h
+++ b/libs/services/include/android/os/StatsLogEventWrapper.h
@@ -82,6 +82,11 @@
   STATS_LOG_VALUE_TYPE type;
 };
 
+struct WorkChain {
+  std::vector<int32_t> uids;
+  std::vector<std::string> tags;
+};
+
 // Represents a parcelable object. Only used to send data from Android OS to statsd.
 class StatsLogEventWrapper : public android::Parcelable {
  public:
@@ -99,7 +104,9 @@
 
   int64_t getWallClockTimeNs() const { return mWallClockTimeNs; }
 
-  std::vector<StatsLogValue> getElements() const { return mElements; }
+  const std::vector<StatsLogValue>& getElements() const { return mElements; }
+
+  const std::vector<WorkChain>& getWorkChains() const { return mWorkChains; }
 
  private:
   int mTagId;
@@ -109,6 +116,8 @@
   int64_t mWallClockTimeNs;
 
   std::vector<StatsLogValue> mElements;
+
+  std::vector<WorkChain> mWorkChains;
 };
 } // Namespace os
 } // Namespace android
diff --git a/libs/services/src/os/StatsLogEventWrapper.cpp b/libs/services/src/os/StatsLogEventWrapper.cpp
index 04c4629..f6dfdef 100644
--- a/libs/services/src/os/StatsLogEventWrapper.cpp
+++ b/libs/services/src/os/StatsLogEventWrapper.cpp
@@ -58,6 +58,31 @@
     ALOGE("statsd could not read wall clock time from parcel");
     return res;
   }
+  int numWorkChain = 0;
+  if ((res = in->readInt32(&numWorkChain)) != OK) {
+    ALOGE("statsd could not read number of work chains from parcel");
+    return res;
+  }
+  if (numWorkChain > 0) {
+    for (int i = 0; i < numWorkChain; i++) {
+      int numNodes = 0;
+      if ((res = in->readInt32(&numNodes)) != OK) {
+        ALOGE(
+            "statsd could not read number of nodes in work chain from parcel");
+        return res;
+      }
+      if (numNodes == 0) {
+        ALOGE("empty work chain");
+        return BAD_VALUE;
+      }
+      WorkChain wc;
+      for (int j = 0; j < numNodes; j++) {
+        wc.uids.push_back(in->readInt32());
+        wc.tags.push_back(std::string(String8(in->readString16()).string()));
+      }
+      mWorkChains.push_back(wc);
+    }
+  }
   int dataSize = 0;
   if ((res = in->readInt32(&dataSize)) != OK) {
     ALOGE("statsd could not read data size from parcel");
diff --git a/location/java/android/location/ILocationListener.aidl b/location/java/android/location/ILocationListener.aidl
index 7627cf6..180183e 100644
--- a/location/java/android/location/ILocationListener.aidl
+++ b/location/java/android/location/ILocationListener.aidl
@@ -26,7 +26,9 @@
 oneway interface ILocationListener
 {
     void onLocationChanged(in Location location);
-    void onStatusChanged(String provider, int status, in Bundle extras);
     void onProviderEnabled(String provider);
     void onProviderDisabled(String provider);
+
+    // --- deprecated ---
+    void onStatusChanged(String provider, int status, in Bundle extras);
 }
diff --git a/location/java/android/location/ILocationManager.aidl b/location/java/android/location/ILocationManager.aidl
index b5d835a..ae87998 100644
--- a/location/java/android/location/ILocationManager.aidl
+++ b/location/java/android/location/ILocationManager.aidl
@@ -99,9 +99,10 @@
     void clearTestProviderLocation(String provider, String opPackageName);
     void setTestProviderEnabled(String provider, boolean enabled, String opPackageName);
     void clearTestProviderEnabled(String provider, String opPackageName);
+
+    // --- deprecated ---
     void setTestProviderStatus(String provider, int status, in Bundle extras, long updateTime,
             String opPackageName);
-    void clearTestProviderStatus(String provider, String opPackageName);
 
     boolean sendExtraCommand(String provider, String command, inout Bundle extras);
 
@@ -120,18 +121,4 @@
 
     // used by gts tests to verify throttling whitelist
     String[] getBackgroundThrottlingWhitelist();
-
-    /**
-     * Allow the {@link android.location.LocationManager#getNetworkProviderPackage location
-     * provider} to start the UI to modify the location permission for a package.
-     *
-     * <p>Can only be called by the location provider.
-     *
-     * @param packageName The package the permission belongs to
-     * @param permission The (individual) permission to switch
-     *
-     * @return A pending intent that starts the permission management UI or {@code null} if the
-     *         intent cannot be created
-     */
-    PendingIntent createManageLocationPermissionIntent(in String packageName, in String permission);
 }
diff --git a/location/java/android/location/LocationListener.java b/location/java/android/location/LocationListener.java
index 88904c8..aa9dddc 100644
--- a/location/java/android/location/LocationListener.java
+++ b/location/java/android/location/LocationListener.java
@@ -44,29 +44,12 @@
     void onLocationChanged(Location location);
 
     /**
-     * Called when the provider status changes. This method is called when
-     * a provider is unable to fetch a location or if the provider has recently
-     * become available after a period of unavailability.
+     * This callback will never be invoked and providers can be considers as always in the
+     * {@link LocationProvider#AVAILABLE} state.
      *
-     * @param provider the name of the location provider associated with this
-     * update.
-     * @param status {@link LocationProvider#OUT_OF_SERVICE} if the
-     * provider is out of service, and this is not expected to change in the
-     * near future; {@link LocationProvider#TEMPORARILY_UNAVAILABLE} if
-     * the provider is temporarily unavailable but is expected to be available
-     * shortly; and {@link LocationProvider#AVAILABLE} if the
-     * provider is currently available.
-     * @param extras an optional Bundle which will contain provider specific
-     * status variables.
-     *
-     * <p> A number of common key/value pairs for the extras Bundle are listed
-     * below. Providers that use any of the keys on this list must
-     * provide the corresponding value as described below.
-     *
-     * <ul>
-     * <li> satellites - the number of satellites used to derive the fix
-     * </ul>
+     * @deprecated This callback will never be invoked.
      */
+    @Deprecated
     void onStatusChanged(String provider, int status, Bundle extras);
 
     /**
diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java
index 02680ab..3bf98b3 100644
--- a/location/java/android/location/LocationManager.java
+++ b/location/java/android/location/LocationManager.java
@@ -22,7 +22,6 @@
 import static android.Manifest.permission.WRITE_SECURE_SETTINGS;
 
 import android.Manifest;
-import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresFeature;
 import android.annotation.RequiresPermission;
@@ -146,9 +145,14 @@
     public static final String KEY_PROXIMITY_ENTERING = "entering";
 
     /**
+     * This key is no longer in use.
+     *
      * Key used for a Bundle extra holding an Integer status value
      * when a status change is broadcast using a PendingIntent.
+     *
+     * @deprecated Status changes are deprecated and no longer broadcast.
      */
+    @Deprecated
     public static final String KEY_STATUS_CHANGED = "status";
 
     /**
@@ -1581,8 +1585,7 @@
     }
 
     /**
-     * Sets mock status values for the given provider.  These values will be used in place
-     * of any actual values from the provider.
+     * This method has no effect as provider status has been deprecated and is no longer supported.
      *
      * @param provider the provider name
      * @param status the mock status
@@ -1593,7 +1596,10 @@
      * mock location app op} is not set to {@link android.app.AppOpsManager#MODE_ALLOWED
      * allowed} for your app.
      * @throws IllegalArgumentException if no provider with the given name exists
+     *
+     * @deprecated This method has no effect.
      */
+    @Deprecated
     public void setTestProviderStatus(String provider, int status, Bundle extras, long updateTime) {
         try {
             mService.setTestProviderStatus(provider, status, extras, updateTime,
@@ -1604,21 +1610,19 @@
     }
 
     /**
-     * Removes any mock status values associated with the given provider.
+     * This method has no effect as provider status has been deprecated and is no longer supported.
      *
      * @param provider the provider name
-     *
      * @throws SecurityException if {@link android.app.AppOpsManager#OPSTR_MOCK_LOCATION
      * mock location app op} is not set to {@link android.app.AppOpsManager#MODE_ALLOWED
      * allowed} for your app.
      * @throws IllegalArgumentException if no provider with the given name exists
+     *
+     * @deprecated This method has no effect.
      */
+    @Deprecated
     public void clearTestProviderStatus(String provider) {
-        try {
-            mService.clearTestProviderStatus(provider, mContext.getOpPackageName());
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
+        setTestProviderStatus(provider, LocationProvider.AVAILABLE, null, 0L);
     }
 
     // --- GPS-specific support ---
@@ -2396,29 +2400,4 @@
             return null;
         }
     }
-
-    /**
-     * Allow the {@link android.location.LocationManager#getNetworkProviderPackage location
-     * provider} to start the UI to modify the location permission for a package.
-     *
-     * <p>Can only be called by the location provider.
-     *
-     * @param packageName The package the permission belongs to
-     * @param permission The (individual) location permission to switch
-     *
-     * @return A one-shot pending intent that starts the permission management UI or {@code null} if
-     *         the intent cannot be created
-     *
-     * @hide
-     */
-    @SystemApi
-    public @Nullable PendingIntent createManageLocationPermissionIntent(@NonNull String packageName,
-            @NonNull String permission) {
-        try {
-            return mService.createManageLocationPermissionIntent(packageName, permission);
-        } catch (RemoteException e) {
-            e.rethrowFromSystemServer();
-            return null;
-        }
-    }
 }
diff --git a/location/java/android/location/LocationProvider.java b/location/java/android/location/LocationProvider.java
index c4fd097..b69a9d7 100644
--- a/location/java/android/location/LocationProvider.java
+++ b/location/java/android/location/LocationProvider.java
@@ -34,8 +34,23 @@
  * user-specified criteria.
  */
 public class LocationProvider {
+
+    /**
+     * @deprecated Location provider statuses are no longer supported.
+     */
+    @Deprecated
     public static final int OUT_OF_SERVICE = 0;
+
+    /**
+     * @deprecated Location provider statuses are no longer supported.
+     */
+    @Deprecated
     public static final int TEMPORARILY_UNAVAILABLE = 1;
+
+    /**
+     * @deprecated Location provider statuses are no longer supported.
+     */
+    @Deprecated
     public static final int AVAILABLE = 2;
 
     /**
diff --git a/location/lib/api/current.txt b/location/lib/api/current.txt
index 1e69f16..d19559e 100644
--- a/location/lib/api/current.txt
+++ b/location/lib/api/current.txt
@@ -11,8 +11,8 @@
     method public abstract void onDisable();
     method public void onDump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
     method public abstract void onEnable();
-    method public abstract int onGetStatus(android.os.Bundle);
-    method public abstract long onGetStatusUpdateTime();
+    method public deprecated int onGetStatus(android.os.Bundle);
+    method public deprecated long onGetStatusUpdateTime();
     method public boolean onSendExtraCommand(java.lang.String, android.os.Bundle);
     method public abstract void onSetRequest(com.android.location.provider.ProviderRequestUnbundled, android.os.WorkSource);
     method public final void reportLocation(android.location.Location);
diff --git a/location/lib/java/com/android/location/provider/LocationProviderBase.java b/location/lib/java/com/android/location/provider/LocationProviderBase.java
index 30655f5..d45a4ba 100644
--- a/location/lib/java/com/android/location/provider/LocationProviderBase.java
+++ b/location/lib/java/com/android/location/provider/LocationProviderBase.java
@@ -16,14 +16,11 @@
 
 package com.android.location.provider;
 
-import java.io.FileDescriptor;
-import java.io.FileOutputStream;
-import java.io.PrintWriter;
-
 import android.content.Context;
 import android.location.ILocationManager;
 import android.location.Location;
 import android.location.LocationManager;
+import android.location.LocationProvider;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.RemoteException;
@@ -36,6 +33,10 @@
 import com.android.internal.location.ProviderRequest;
 import com.android.internal.util.FastPrintWriter;
 
+import java.io.FileDescriptor;
+import java.io.FileOutputStream;
+import java.io.PrintWriter;
+
 /**
  * Base class for location providers implemented as unbundled services.
  *
@@ -173,6 +174,8 @@
     }
 
     /**
+     * This method will no longer be invoked.
+     *
      * Returns a information on the status of this provider.
      * <p>{@link android.location.LocationProvider#OUT_OF_SERVICE} is returned if the provider is
      * out of service, and this is not expected to change in the near
@@ -183,10 +186,17 @@
      *
      * <p>If extras is non-null, additional status information may be
      * added to it in the form of provider-specific key/value pairs.
+     *
+     * @deprecated This method will no longer be invoked.
      */
-    public abstract int onGetStatus(Bundle extras);
+    @Deprecated
+    public int onGetStatus(Bundle extras) {
+        return LocationProvider.AVAILABLE;
+    }
 
     /**
+     * This method will no longer be invoked.
+     *
      * Returns the time at which the status was last updated. It is the
      * responsibility of the provider to appropriately set this value using
      * {@link android.os.SystemClock#elapsedRealtime SystemClock.elapsedRealtime()}.
@@ -195,8 +205,13 @@
      * the same status again.
      *
      * @return time of last status update in millis since last reboot
+     *
+     * @deprecated This method will no longer be invoked.
      */
-    public abstract long onGetStatusUpdateTime();
+    @Deprecated
+    public long onGetStatusUpdateTime() {
+        return 0;
+    }
 
     /**
      * Implements addditional location provider specific additional commands.
diff --git a/media/OWNERS b/media/OWNERS
index 0abf9ae..03b751c 100644
--- a/media/OWNERS
+++ b/media/OWNERS
@@ -1,12 +1,13 @@
+chz@google.com
+dwkang@google.com
 elaurent@google.com
 etalvala@google.com
 gkasten@google.com
 hunga@google.com
+jaewan@google.com
 jmtrivi@google.com
+jsharkey@android.com
 lajos@google.com
 marcone@google.com
 sungsoo@google.com
 wjia@google.com
-jaewan@google.com
-chz@google.com
-dwkang@google.com
diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java
index f1325ce..4f23cca 100644
--- a/media/java/android/media/AudioAttributes.java
+++ b/media/java/android/media/AudioAttributes.java
@@ -595,10 +595,10 @@
                 case CONTENT_TYPE_MUSIC:
                 case CONTENT_TYPE_SONIFICATION:
                 case CONTENT_TYPE_SPEECH:
-                     mContentType = contentType;
-                     break;
+                    mContentType = contentType;
+                    break;
                 default:
-                     mUsage = CONTENT_TYPE_UNKNOWN;
+                    mContentType = CONTENT_TYPE_UNKNOWN;
             }
             return this;
         }
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 274da11..d10900e 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -54,7 +54,6 @@
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.Pair;
-import android.util.Slog;
 import android.view.KeyEvent;
 
 import com.android.internal.annotations.GuardedBy;
@@ -542,6 +541,7 @@
      * Adjusting the volume due to a hardware key press.
      * @hide
      */
+    @SystemApi
     public static final int FLAG_FROM_KEY = 1 << 12;
 
     private static final String[] FLAG_NAMES = {
diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java
index 2a575b6..4b2353c 100644
--- a/media/java/android/media/AudioRecord.java
+++ b/media/java/android/media/AudioRecord.java
@@ -16,16 +16,6 @@
 
 package android.media;
 
-import java.io.IOException;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.ref.WeakReference;
-import java.nio.ByteBuffer;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.ArrayList;
-import java.util.List;
-
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
@@ -39,13 +29,21 @@
 import android.os.PersistableBundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.Pair;
 
 import com.android.internal.annotations.GuardedBy;
 
+import java.io.IOException;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.ref.WeakReference;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 /**
  * The AudioRecord class manages the audio resources for Java applications
  * to record audio from the audio input hardware of the platform. This is
@@ -1807,6 +1805,8 @@
     private native final int native_get_active_microphones(
             ArrayList<MicrophoneInfo> activeMicrophones);
 
+    private native int native_getPortId();
+
     //---------------------------------------------------------
     // Utility methods
     //------------------
diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java
index 67cc456..082a375 100644
--- a/media/java/android/media/AudioSystem.java
+++ b/media/java/android/media/AudioSystem.java
@@ -75,6 +75,12 @@
      */
     public static final int NUM_STREAMS = 5;
 
+    /** Maximum value for AudioTrack channel count
+     * @hide public for MediaCode only, do not un-hide or change to a numeric literal
+     */
+    public static final int OUT_CHANNEL_COUNT_MAX = native_get_FCC_8();
+    private static native int native_get_FCC_8();
+
     // Expose only the getter method publicly so we can change it in the future
     private static final int NUM_STREAM_TYPES = 11;
     @UnsupportedAppUsage
@@ -918,6 +924,15 @@
 
     public static native int setSurroundFormatEnabled(int audioFormat, boolean enabled);
 
+    /**
+     * Communicate UID of active assistant to audio policy service.
+     */
+    public static native int setAssistantUid(int uid);
+    /**
+     * Communicate UIDs of active accessibility services to audio policy service.
+     */
+    public static native int setA11yServicesUids(int[] uids);
+
     // Items shared with audio service
 
     /**
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java
index d37f8ab..2c4ec3a 100644
--- a/media/java/android/media/AudioTrack.java
+++ b/media/java/android/media/AudioTrack.java
@@ -93,11 +93,6 @@
      */
     private static final float GAIN_MAX = 1.0f;
 
-    /** Maximum value for AudioTrack channel count
-     * @hide public for MediaCode only, do not un-hide or change to a numeric literal
-     */
-    public static final int CHANNEL_COUNT_MAX = native_get_FCC_8();
-
     /** indicates AudioTrack state is stopped */
     public static final int PLAYSTATE_STOPPED = 1;  // matches SL_PLAYSTATE_STOPPED
     /** indicates AudioTrack state is paused */
@@ -1001,7 +996,8 @@
     }
 
     // mask of all the positional channels supported, however the allowed combinations
-    // are further restricted by the matching left/right rule and CHANNEL_COUNT_MAX
+    // are further restricted by the matching left/right rule and
+    // AudioSystem.OUT_CHANNEL_COUNT_MAX
     private static final int SUPPORTED_OUT_CHANNELS =
             AudioFormat.CHANNEL_OUT_FRONT_LEFT |
             AudioFormat.CHANNEL_OUT_FRONT_RIGHT |
@@ -1124,7 +1120,7 @@
         mChannelIndexMask = channelIndexMask;
         if (mChannelIndexMask != 0) {
             // restrictive: indexMask could allow up to AUDIO_CHANNEL_BITS_LOG2
-            final int indexMask = (1 << CHANNEL_COUNT_MAX) - 1;
+            final int indexMask = (1 << AudioSystem.OUT_CHANNEL_COUNT_MAX) - 1;
             if ((channelIndexMask & ~indexMask) != 0) {
                 throw new IllegalArgumentException("Unsupported channel index configuration "
                         + channelIndexMask);
@@ -1169,9 +1165,9 @@
             return false;
         }
         final int channelCount = AudioFormat.channelCountFromOutChannelMask(channelConfig);
-        if (channelCount > CHANNEL_COUNT_MAX) {
+        if (channelCount > AudioSystem.OUT_CHANNEL_COUNT_MAX) {
             loge("Channel configuration contains too many channels " +
-                    channelCount + ">" + CHANNEL_COUNT_MAX);
+                    channelCount + ">" + AudioSystem.OUT_CHANNEL_COUNT_MAX);
             return false;
         }
         // check for unsupported multichannel combinations:
@@ -2624,7 +2620,8 @@
      *         to the audio sink.
      *     <BR>With {@link #WRITE_NON_BLOCKING}, the write will return immediately after
      *     queuing as much audio data for playback as possible without blocking.
-     * @param timestamp The timestamp of the first decodable audio frame in the provided audioData.
+     * @param timestamp The timestamp, in nanoseconds, of the first decodable audio frame in the
+     *     provided audioData.
      * @return zero or the positive number of bytes that were written, or one of the following
      *    error codes.
      * <ul>
@@ -3418,7 +3415,6 @@
     private native final int native_getRoutedDeviceId();
     private native final void native_enableDeviceCallback();
     private native final void native_disableDeviceCallback();
-    static private native int native_get_FCC_8();
 
     private native int native_applyVolumeShaper(
             @NonNull VolumeShaper.Configuration configuration,
@@ -3427,6 +3423,8 @@
     private native @Nullable VolumeShaper.State native_getVolumeShaperState(int id);
     private native final int native_setPresentation(int presentationId, int programId);
 
+    private native int native_getPortId();
+
     //---------------------------------------------------------
     // Utility methods
     //------------------
diff --git a/media/java/android/media/CallbackDataSourceDesc.java b/media/java/android/media/CallbackDataSourceDesc.java
new file mode 100644
index 0000000..0e8e6ce
--- /dev/null
+++ b/media/java/android/media/CallbackDataSourceDesc.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright 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.media;
+
+import android.annotation.NonNull;
+
+/**
+ * @hide
+ * Structure of data source descriptor for sources using callback.
+ *
+ * Used by {@link MediaPlayer2#setDataSource(DataSourceDesc)},
+ * {@link MediaPlayer2#setNextDataSource(DataSourceDesc)} and
+ * {@link MediaPlayer2#setNextDataSources(List<DataSourceDesc>)}
+ * to set data source for playback.
+ *
+ * <p>Users should use {@link Builder} to create {@link CallbackDataSourceDesc}.
+ *
+ */
+public class CallbackDataSourceDesc extends DataSourceDesc {
+    private DataSourceCallback mDataSourceCallback;
+
+    private CallbackDataSourceDesc() {
+    }
+
+    /**
+     * Return the DataSourceCallback of this data source.
+     * It's meaningful only when {@code getType} returns {@link #TYPE_CALLBACK}.
+     * @return the DataSourceCallback of this data source
+     */
+    public DataSourceCallback getDataSourceCallback() {
+        return mDataSourceCallback;
+    }
+
+    /**
+     * Builder class for {@link CallbackDataSourceDesc} objects.
+     * <p> Here is an example where <code>Builder</code> is used to define the
+     * {@link CallbackDataSourceDesc} to be used by a {@link MediaPlayer2} instance:
+     *
+     * <pre class="prettyprint">
+     * CallbackDataSourceDesc newDSD = new CallbackDataSourceDesc.Builder()
+     *         .setDataSource(media2DataSource)
+     *         .setStartPosition(1000)
+     *         .setEndPosition(15000)
+     *         .build();
+     * mediaplayer2.setDataSourceDesc(newDSD);
+     * </pre>
+     */
+    public static class Builder extends BuilderBase<Builder> {
+        private DataSourceCallback mDataSourceCallback;
+
+        /**
+         * Constructs a new Builder with the defaults.
+         */
+        public Builder() {
+            super();
+        }
+
+        /**
+         * Constructs a new Builder from a given {@link CallbackDataSourceDesc} instance
+         * @param dsd the {@link CallbackDataSourceDesc} object whose data will be reused
+         * in the new Builder.
+         */
+        public Builder(CallbackDataSourceDesc dsd) {
+            super(dsd);
+            if (dsd == null) {
+                return;  // use default
+            }
+            mDataSourceCallback = dsd.mDataSourceCallback;
+        }
+
+        /**
+         * Combines all of the fields that have been set and return a new
+         * {@link CallbackDataSourceDesc} object. <code>IllegalStateException</code> will be
+         * thrown if there is conflict between fields.
+         *
+         * @return a new {@link CallbackDataSourceDesc} object
+         */
+        public @NonNull CallbackDataSourceDesc build() {
+            CallbackDataSourceDesc dsd = new CallbackDataSourceDesc();
+            super.build(dsd);
+            dsd.mDataSourceCallback = mDataSourceCallback;
+
+            return dsd;
+        }
+
+        /**
+         * Sets the data source (DataSourceCallback) to use.
+         *
+         * @param dscb the DataSourceCallback for the media to play
+         * @return the same Builder instance.
+         * @throws NullPointerException if dscb is null.
+         */
+        public @NonNull Builder setDataSource(@NonNull DataSourceCallback dscb) {
+            Media2Utils.checkArgument(dscb != null, "data source cannot be null.");
+            mDataSourceCallback = dscb;
+            return this;
+        }
+    }
+}
diff --git a/media/java/android/media/CloseGuard.java b/media/java/android/media/CloseGuard.java
new file mode 100644
index 0000000..2014673
--- /dev/null
+++ b/media/java/android/media/CloseGuard.java
@@ -0,0 +1,308 @@
+/*
+ * Copyright (C) 2010 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.media;
+
+import android.util.Log;
+
+/**
+ * Note: This file is copied from dalvik.system package with the following modifications:
+ *       - Remove @CorePlatformApi, @IntraCoreApi and @UnsupportedAppUsage annotations.
+ *       - Replace System.logW() with android.util.Log.w().
+ *       This file should be used only within media mainline module.
+ * TODO: Remove this file and use dalvik.system.CloseGuard once
+ *       @CorePlatformApi becomes stable or we have a replacement in SDK API.
+ *       b/120419300
+ *
+ * CloseGuard is a mechanism for flagging implicit finalizer cleanup of
+ * resources that should have been cleaned up by explicit close
+ * methods (aka "explicit termination methods" in Effective Java).
+ * <p>
+ * A simple example: <pre>   {@code
+ *   class Foo {
+ *
+ *       {@literal @}ReachabilitySensitive
+ *       private final CloseGuard guard = CloseGuard.get();
+ *
+ *       ...
+ *
+ *       public Foo() {
+ *           ...;
+ *           guard.open("cleanup");
+ *       }
+ *
+ *       public void cleanup() {
+ *          guard.close();
+ *          ...;
+ *       }
+ *
+ *       protected void finalize() throws Throwable {
+ *           try {
+ *               // Note that guard could be null if the constructor threw.
+ *               if (guard != null) {
+ *                   guard.warnIfOpen();
+ *               }
+ *               cleanup();
+ *           } finally {
+ *               super.finalize();
+ *           }
+ *       }
+ *   }
+ * }</pre>
+ *
+ * In usage where the resource to be explicitly cleaned up is
+ * allocated after object construction, CloseGuard protection can
+ * be deferred. For example: <pre>   {@code
+ *   class Bar {
+ *
+ *       {@literal @}ReachabilitySensitive
+ *       private final CloseGuard guard = CloseGuard.get();
+ *
+ *       ...
+ *
+ *       public Bar() {
+ *           ...;
+ *       }
+ *
+ *       public void connect() {
+ *          ...;
+ *          guard.open("cleanup");
+ *       }
+ *
+ *       public void cleanup() {
+ *          guard.close();
+ *          ...;
+ *       }
+ *
+ *       protected void finalize() throws Throwable {
+ *           try {
+ *               // Note that guard could be null if the constructor threw.
+ *               if (guard != null) {
+ *                   guard.warnIfOpen();
+ *               }
+ *               cleanup();
+ *           } finally {
+ *               super.finalize();
+ *           }
+ *       }
+ *   }
+ * }</pre>
+ *
+ * When used in a constructor, calls to {@code open} should occur at
+ * the end of the constructor since an exception that would cause
+ * abrupt termination of the constructor will mean that the user will
+ * not have a reference to the object to cleanup explicitly. When used
+ * in a method, the call to {@code open} should occur just after
+ * resource acquisition.
+ *
+ * The @ReachabilitySensitive annotation ensures that finalize() cannot be
+ * called during the explicit call to cleanup(), prior to the guard.close call.
+ * There is an extremely small chance that, for code that neglects to call
+ * cleanup(), finalize() and thus cleanup() will be called while a method on
+ * the object is still active, but the "this" reference is no longer required.
+ * If missing cleanup() calls are expected, additional @ReachabilitySensitive
+ * annotations or reachabilityFence() calls may be required.
+ *
+ * @hide
+ */
+final class CloseGuard {
+
+    /**
+     * True if collection of call-site information (the expensive operation
+     * here)  and tracking via a Tracker (see below) are enabled.
+     * Enabled by default so we can diagnose issues early in VM startup.
+     * Note, however, that Android disables this early in its startup,
+     * but enables it with DropBoxing for system apps on debug builds.
+     */
+    private static volatile boolean stackAndTrackingEnabled = true;
+
+    /**
+     * Hook for customizing how CloseGuard issues are reported.
+     * Bypassed if stackAndTrackingEnabled was false when open was called.
+     */
+    private static volatile Reporter reporter = new DefaultReporter();
+
+    /**
+     * Hook for customizing how CloseGuard issues are tracked.
+     */
+    private static volatile Tracker currentTracker = null; // Disabled by default.
+
+    /**
+     * Returns a CloseGuard instance. {@code #open(String)} can be used to set
+     * up the instance to warn on failure to close.
+     */
+    public static CloseGuard get() {
+        return new CloseGuard();
+    }
+
+    /**
+     * Enables/disables stack capture and tracking. A call stack is captured
+     * during open(), and open/close events are reported to the Tracker, only
+     * if enabled is true. If a stack trace was captured, the {@link
+     * #getReporter() reporter} is informed of unclosed resources; otherwise a
+     * one-line warning is logged.
+     */
+    public static void setEnabled(boolean enabled) {
+        CloseGuard.stackAndTrackingEnabled = enabled;
+    }
+
+    /**
+     * True if CloseGuard stack capture and tracking are enabled.
+     */
+    public static boolean isEnabled() {
+        return stackAndTrackingEnabled;
+    }
+
+    /**
+     * Used to replace default Reporter used to warn of CloseGuard
+     * violations when stack tracking is enabled. Must be non-null.
+     */
+    public static void setReporter(Reporter rep) {
+        if (rep == null) {
+            throw new NullPointerException("reporter == null");
+        }
+        CloseGuard.reporter = rep;
+    }
+
+    /**
+     * Returns non-null CloseGuard.Reporter.
+     */
+    public static Reporter getReporter() {
+        return reporter;
+    }
+
+    /**
+     * Sets the {@link Tracker} that is notified when resources are allocated and released.
+     * The Tracker is invoked only if CloseGuard {@link #isEnabled()} held when {@link #open()}
+     * was called. A null argument disables tracking.
+     *
+     * <p>This is only intended for use by {@code dalvik.system.CloseGuardSupport} class and so
+     * MUST NOT be used for any other purposes.
+     */
+    public static void setTracker(Tracker tracker) {
+        currentTracker = tracker;
+    }
+
+    /**
+     * Returns {@link #setTracker(Tracker) last Tracker that was set}, or null to indicate
+     * there is none.
+     *
+     * <p>This is only intended for use by {@code dalvik.system.CloseGuardSupport} class and so
+     * MUST NOT be used for any other purposes.
+     */
+    public static Tracker getTracker() {
+        return currentTracker;
+    }
+
+    private CloseGuard() {}
+
+    /**
+     * {@code open} initializes the instance with a warning that the caller
+     * should have explicitly called the {@code closer} method instead of
+     * relying on finalization.
+     *
+     * @param closer non-null name of explicit termination method. Printed by warnIfOpen.
+     * @throws NullPointerException if closer is null.
+     */
+    public void open(String closer) {
+        // always perform the check for valid API usage...
+        if (closer == null) {
+            throw new NullPointerException("closer == null");
+        }
+        // ...but avoid allocating an allocation stack if "disabled"
+        if (!stackAndTrackingEnabled) {
+            closerNameOrAllocationInfo = closer;
+            return;
+        }
+        String message = "Explicit termination method '" + closer + "' not called";
+        Throwable stack = new Throwable(message);
+        closerNameOrAllocationInfo = stack;
+        Tracker tracker = currentTracker;
+        if (tracker != null) {
+            tracker.open(stack);
+        }
+    }
+
+    // We keep either an allocation stack containing the closer String or, when
+    // in disabled state, just the closer String.
+    // We keep them in a single field only to minimize overhead.
+    private Object /* String or Throwable */ closerNameOrAllocationInfo;
+
+    /**
+     * Marks this CloseGuard instance as closed to avoid warnings on
+     * finalization.
+     */
+    public void close() {
+        Tracker tracker = currentTracker;
+        if (tracker != null && closerNameOrAllocationInfo instanceof Throwable) {
+            // Invoke tracker on close only if we invoked it on open. Tracker may have changed.
+            tracker.close((Throwable) closerNameOrAllocationInfo);
+        }
+        closerNameOrAllocationInfo = null;
+    }
+
+    /**
+     * Logs a warning if the caller did not properly cleanup by calling an
+     * explicit close method before finalization. If CloseGuard was enabled
+     * when the CloseGuard was created, passes the stacktrace associated with
+     * the allocation to the current reporter. If it was not enabled, it just
+     * directly logs a brief message.
+     */
+    public void warnIfOpen() {
+        if (closerNameOrAllocationInfo != null) {
+            if (closerNameOrAllocationInfo instanceof String) {
+                Log.w("CloseGuard", "A resource failed to call "
+                        + (String) closerNameOrAllocationInfo + ". ");
+            } else {
+                String message =
+                        "A resource was acquired at attached stack trace but never released. ";
+                message += "See java.io.Closeable for information on avoiding resource leaks.";
+                Throwable stack = (Throwable) closerNameOrAllocationInfo;
+                reporter.report(message, stack);
+            }
+        }
+    }
+
+    /**
+     * Interface to allow customization of tracking behaviour.
+     *
+     * <p>This is only intended for use by {@code dalvik.system.CloseGuardSupport} class and so
+     * MUST NOT be used for any other purposes.
+     */
+    public interface Tracker {
+        void open(Throwable allocationSite);
+        void close(Throwable allocationSite);
+    }
+
+    /**
+     * Interface to allow customization of reporting behavior.
+     * @hide
+     */
+    public interface Reporter {
+        void report(String message, Throwable allocationSite);
+    }
+
+    /**
+     * Default Reporter which reports CloseGuard violations to the log.
+     */
+    private static final class DefaultReporter implements Reporter {
+        private DefaultReporter() {}
+
+        @Override public void report (String message, Throwable allocationSite) {
+            Log.w("CloseGuard", message, allocationSite);
+        }
+    }
+}
diff --git a/media/java/android/media/Media2DataSource.java b/media/java/android/media/DataSourceCallback.java
similarity index 89%
rename from media/java/android/media/Media2DataSource.java
rename to media/java/android/media/DataSourceCallback.java
index 08df632..9b27baf 100644
--- a/media/java/android/media/Media2DataSource.java
+++ b/media/java/android/media/DataSourceCallback.java
@@ -27,12 +27,12 @@
  *
  * <p class="note">Methods of this interface may be called on multiple different
  * threads. There will be a thread synchronization point between each call to ensure that
- * modifications to the state of your Media2DataSource are visible to future calls. This means
+ * modifications to the state of your DataSourceCallback are visible to future calls. This means
  * you don't need to do your own synchronization unless you're modifying the
- * Media2DataSource from another thread while it's being used by the framework.</p>
+ * DataSourceCallback from another thread while it's being used by the framework.</p>
  *
  */
-public abstract class Media2DataSource implements Closeable {
+public abstract class DataSourceCallback implements Closeable {
     /**
      * Called to request data from the given position.
      *
diff --git a/media/java/android/media/DataSourceDesc.java b/media/java/android/media/DataSourceDesc.java
index afc99a0..702034e9 100644
--- a/media/java/android/media/DataSourceDesc.java
+++ b/media/java/android/media/DataSourceDesc.java
@@ -16,75 +16,48 @@
 
 package android.media;
 
-import android.annotation.IntDef;
 import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.content.Context;
-import android.content.res.AssetFileDescriptor;
-import android.net.Uri;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import com.android.internal.util.Preconditions;
-
-import java.io.FileDescriptor;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.net.CookieHandler;
-import java.net.CookieManager;
-import java.net.HttpCookie;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * @hide
- * Structure for data source descriptor.
+ * Base class of data source descriptor.
  *
- * Used by {@link MediaPlayer2#setDataSource(DataSourceDesc)}
+ * Used by {@link MediaPlayer2#setDataSource(DataSourceDesc)},
+ * {@link MediaPlayer2#setNextDataSource(DataSourceDesc)} and
+ * {@link MediaPlayer2#setNextDataSources(List<DataSourceDesc>)}
  * to set data source for playback.
  *
- * <p>Users should use {@link Builder} to change {@link DataSourceDesc}.
+ * <p>Users should use subclasses' builder to change {@link DataSourceDesc}.
  *
  */
-public final class DataSourceDesc {
-    /* No data source has been set yet */
-    public static final int TYPE_NONE     = 0;
-    /* data source is type of MediaDataSource */
-    public static final int TYPE_CALLBACK = 1;
-    /* data source is type of FileDescriptor */
-    public static final int TYPE_FD       = 2;
-    /* data source is type of Uri */
-    public static final int TYPE_URI      = 3;
-
+public class DataSourceDesc {
     // intentionally less than long.MAX_VALUE
-    public static final long LONG_MAX = 0x7ffffffffffffffL;
+    static final long LONG_MAX = 0x7ffffffffffffffL;
 
     // keep consistent with native code
     public static final long LONG_MAX_TIME_MS = LONG_MAX / 1000;
     public static final long LONG_MAX_TIME_US = LONG_MAX_TIME_MS * 1000;
 
-
-    private int mType = TYPE_NONE;
-
-    private Media2DataSource mMedia2DataSource;
-
-    private FileDescriptor mFD;
-    private long mFDOffset = 0;
-    private long mFDLength = LONG_MAX;
-
-    private Uri mUri;
-    private Map<String, String> mUriHeader;
-    private List<HttpCookie> mUriCookies;
-    private Context mUriContext;
+    public static final long POSITION_UNKNOWN = LONG_MAX_TIME_MS;
 
     private String mMediaId;
     private long mStartPositionMs = 0;
-    private long mEndPositionMs = LONG_MAX_TIME_MS;
+    private long mEndPositionMs = POSITION_UNKNOWN;
 
-    private DataSourceDesc() {
+    DataSourceDesc() {
+    }
+
+    /**
+     * Releases the resources held by this {@code DataSourceDesc} object.
+     */
+    void close() {
+    }
+
+    // Have to declare protected for finalize() since it is protected
+    // in the base class Object.
+    @Override
+    protected void finalize() throws Throwable {
+        close();
     }
 
     /**
@@ -105,194 +78,69 @@
 
     /**
      * Return the position in milliseconds at which the playback will end.
-     * -1 means ending at the end of source content.
+     * {@link #POSITION_UNKNOWN} means ending at the end of source content.
      * @return the position in milliseconds at which the playback will end
      */
     public long getEndPosition() {
         return mEndPositionMs;
     }
 
-    /**
-     * Return the type of data source.
-     * @return the type of data source
-     */
-    public int getType() {
-        return mType;
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("DataSourceDesc{");
+        sb.append("mMediaId=").append(mMediaId);
+        sb.append(", mStartPositionMs=").append(mStartPositionMs);
+        sb.append(", mEndPositionMs=").append(mEndPositionMs);
+        sb.append('}');
+        return sb.toString();
     }
 
     /**
-     * Return the Media2DataSource of this data source.
-     * It's meaningful only when {@code getType} returns {@link #TYPE_CALLBACK}.
-     * @return the Media2DataSource of this data source
+     * Base class for Builders in the subclasses of {@link DataSourceDesc}.
      */
-    public Media2DataSource getMedia2DataSource() {
-        return mMedia2DataSource;
-    }
-
-    /**
-     * Return the FileDescriptor of this data source.
-     * It's meaningful only when {@code getType} returns {@link #TYPE_FD}.
-     * @return the FileDescriptor of this data source
-     */
-    public FileDescriptor getFileDescriptor() {
-        return mFD;
-    }
-
-    /**
-     * Return the offset associated with the FileDescriptor of this data source.
-     * It's meaningful only when {@code getType} returns {@link #TYPE_FD} and it has
-     * been set by the {@link Builder}.
-     * @return the offset associated with the FileDescriptor of this data source
-     */
-    public long getFileDescriptorOffset() {
-        return mFDOffset;
-    }
-
-    /**
-     * Return the content length associated with the FileDescriptor of this data source.
-     * It's meaningful only when {@code getType} returns {@link #TYPE_FD}.
-     * -1 means same as the length of source content.
-     * @return the content length associated with the FileDescriptor of this data source
-     */
-    public long getFileDescriptorLength() {
-        return mFDLength;
-    }
-
-    /**
-     * Return the Uri of this data source.
-     * It's meaningful only when {@code getType} returns {@link #TYPE_URI}.
-     * @return the Uri of this data source
-     */
-    public Uri getUri() {
-        return mUri;
-    }
-
-    /**
-     * Return the Uri headers of this data source.
-     * It's meaningful only when {@code getType} returns {@link #TYPE_URI}.
-     * @return the Uri headers of this data source
-     */
-    public Map<String, String> getUriHeaders() {
-        if (mUriHeader == null) {
-            return null;
-        }
-        return new HashMap<String, String>(mUriHeader);
-    }
-
-    /**
-     * Return the Uri cookies of this data source.
-     * It's meaningful only when {@code getType} returns {@link #TYPE_URI}.
-     * @return the Uri cookies of this data source
-     */
-    public List<HttpCookie> getUriCookies() {
-        if (mUriCookies == null) {
-            return null;
-        }
-        return new ArrayList<HttpCookie>(mUriCookies);
-    }
-
-    /**
-     * Return the Context used for resolving the Uri of this data source.
-     * It's meaningful only when {@code getType} returns {@link #TYPE_URI}.
-     * @return the Context used for resolving the Uri of this data source
-     */
-    public Context getUriContext() {
-        return mUriContext;
-    }
-
-    /**
-     * Builder class for {@link DataSourceDesc} objects.
-     * <p> Here is an example where <code>Builder</code> is used to define the
-     * {@link DataSourceDesc} to be used by a {@link MediaPlayer2} instance:
-     *
-     * <pre class="prettyprint">
-     * DataSourceDesc oldDSD = mediaplayer2.getDataSourceDesc();
-     * DataSourceDesc newDSD = new DataSourceDesc.Builder(oldDSD)
-     *         .setStartPosition(1000)
-     *         .setEndPosition(15000)
-     *         .build();
-     * mediaplayer2.setDataSourceDesc(newDSD);
-     * </pre>
-     */
-    public static class Builder {
-        private int mType = TYPE_NONE;
-
-        private Media2DataSource mMedia2DataSource;
-
-        private FileDescriptor mFD;
-        private long mFDOffset = 0;
-        private long mFDLength = LONG_MAX;
-
-        private Uri mUri;
-        private Map<String, String> mUriHeader;
-        private List<HttpCookie> mUriCookies;
-        private Context mUriContext;
-
+    protected static class BuilderBase<T extends BuilderBase> {
         private String mMediaId;
         private long mStartPositionMs = 0;
-        private long mEndPositionMs = LONG_MAX_TIME_MS;
+        private long mEndPositionMs = POSITION_UNKNOWN;
 
         /**
-         * Constructs a new Builder with the defaults.
+         * Constructs a new BuilderBase with the defaults.
          */
-        public Builder() {
+        BuilderBase() {
         }
 
         /**
-         * Constructs a new Builder from a given {@link DataSourceDesc} instance
+         * Constructs a new BuilderBase from a given {@link DataSourceDesc} instance
          * @param dsd the {@link DataSourceDesc} object whose data will be reused
-         * in the new Builder.
+         * in the new BuilderBase.
          */
-        public Builder(DataSourceDesc dsd) {
-            mType = dsd.mType;
-            mMedia2DataSource = dsd.mMedia2DataSource;
-            mFD = dsd.mFD;
-            mFDOffset = dsd.mFDOffset;
-            mFDLength = dsd.mFDLength;
-            mUri = dsd.mUri;
-            mUriHeader = dsd.mUriHeader;
-            mUriCookies = dsd.mUriCookies;
-            mUriContext = dsd.mUriContext;
-
+        BuilderBase(DataSourceDesc dsd) {
+            if (dsd == null) {
+                return;
+            }
             mMediaId = dsd.mMediaId;
             mStartPositionMs = dsd.mStartPositionMs;
             mEndPositionMs = dsd.mEndPositionMs;
         }
 
         /**
-         * Combines all of the fields that have been set and return a new
-         * {@link DataSourceDesc} object. <code>IllegalStateException</code> will be
-         * thrown if there is conflict between fields.
+         * Sets all fields that have been set in the {@link DataSourceDesc} object.
+         * <code>IllegalStateException</code> will be thrown if there is conflict between fields.
          *
-         * @return a new {@link DataSourceDesc} object
+         * @param dsd an instance of subclass of {@link DataSourceDesc} whose data will be set
+         * @return the same instance of subclass of {@link DataSourceDesc}
          */
-        public DataSourceDesc build() {
-            if (mType != TYPE_CALLBACK
-                && mType != TYPE_FD
-                && mType != TYPE_URI) {
-                throw new IllegalStateException("Illegal type: " + mType);
-            }
+        void build(@NonNull DataSourceDesc dsd) {
+            Media2Utils.checkArgument(dsd != null,  "dsd cannot be null.");
+
             if (mStartPositionMs > mEndPositionMs) {
                 throw new IllegalStateException("Illegal start/end position: "
                     + mStartPositionMs + " : " + mEndPositionMs);
             }
 
-            DataSourceDesc dsd = new DataSourceDesc();
-            dsd.mType = mType;
-            dsd.mMedia2DataSource = mMedia2DataSource;
-            dsd.mFD = mFD;
-            dsd.mFDOffset = mFDOffset;
-            dsd.mFDLength = mFDLength;
-            dsd.mUri = mUri;
-            dsd.mUriHeader = mUriHeader;
-            dsd.mUriCookies = mUriCookies;
-            dsd.mUriContext = mUriContext;
-
             dsd.mMediaId = mMediaId;
             dsd.mStartPositionMs = mStartPositionMs;
             dsd.mEndPositionMs = mEndPositionMs;
-
-            return dsd;
         }
 
         /**
@@ -301,9 +149,9 @@
          * @param mediaId the media Id of this data source
          * @return the same Builder instance.
          */
-        public Builder setMediaId(String mediaId) {
+        public @NonNull T setMediaId(String mediaId) {
             mMediaId = mediaId;
-            return this;
+            return (T) this;
         }
 
         /**
@@ -314,12 +162,12 @@
          * @return the same Builder instance.
          *
          */
-        public Builder setStartPosition(long position) {
+        public @NonNull T setStartPosition(long position) {
             if (position < 0) {
                 position = 0;
             }
             mStartPositionMs = position;
-            return this;
+            return (T) this;
         }
 
         /**
@@ -329,157 +177,12 @@
          * @param position the end position in milliseconds at which the playback will end
          * @return the same Builder instance.
          */
-        public Builder setEndPosition(long position) {
+        public @NonNull T setEndPosition(long position) {
             if (position < 0) {
                 position = LONG_MAX_TIME_MS;
             }
             mEndPositionMs = position;
-            return this;
-        }
-
-        /**
-         * Sets the data source (Media2DataSource) to use.
-         *
-         * @param m2ds the Media2DataSource for the media you want to play
-         * @return the same Builder instance.
-         * @throws NullPointerException if m2ds is null.
-         */
-        public Builder setDataSource(Media2DataSource m2ds) {
-            Preconditions.checkNotNull(m2ds);
-            resetDataSource();
-            mType = TYPE_CALLBACK;
-            mMedia2DataSource = m2ds;
-            return this;
-        }
-
-        /**
-         * Sets the data source (FileDescriptor) to use. The FileDescriptor must be
-         * seekable (N.B. a LocalSocket is not seekable). It is the caller's responsibility
-         * to close the file descriptor after the source has been used.
-         *
-         * @param fd the FileDescriptor for the file you want to play
-         * @return the same Builder instance.
-         * @throws NullPointerException if fd is null.
-         */
-        public Builder setDataSource(FileDescriptor fd) {
-            Preconditions.checkNotNull(fd);
-            resetDataSource();
-            mType = TYPE_FD;
-            mFD = fd;
-            return this;
-        }
-
-        /**
-         * Sets the data source (FileDescriptor) to use. The FileDescriptor must be
-         * seekable (N.B. a LocalSocket is not seekable). It is the caller's responsibility
-         * to close the file descriptor after the source has been used.
-         *
-         * Any negative number for offset is treated as 0.
-         * Any negative number for length is treated as maximum length of the data source.
-         *
-         * @param fd the FileDescriptor for the file you want to play
-         * @param offset the offset into the file where the data to be played starts, in bytes
-         * @param length the length in bytes of the data to be played
-         * @return the same Builder instance.
-         * @throws NullPointerException if fd is null.
-         */
-        public Builder setDataSource(FileDescriptor fd, long offset, long length) {
-            Preconditions.checkNotNull(fd);
-            if (offset < 0) {
-                offset = 0;
-            }
-            if (length < 0) {
-                length = LONG_MAX;
-            }
-            resetDataSource();
-            mType = TYPE_FD;
-            mFD = fd;
-            mFDOffset = offset;
-            mFDLength = length;
-            return this;
-        }
-
-        /**
-         * Sets the data source as a content Uri.
-         *
-         * @param context the Context to use when resolving the Uri
-         * @param uri the Content URI of the data you want to play
-         * @return the same Builder instance.
-         * @throws NullPointerException if context or uri is null.
-         */
-        public Builder setDataSource(@NonNull Context context, @NonNull Uri uri) {
-            Preconditions.checkNotNull(context, "context cannot be null");
-            Preconditions.checkNotNull(uri, "uri cannot be null");
-            resetDataSource();
-            mType = TYPE_URI;
-            mUri = uri;
-            mUriContext = context;
-            return this;
-        }
-
-        /**
-         * Sets the data source as a content Uri.
-         *
-         * To provide cookies for the subsequent HTTP requests, you can install your own default
-         * cookie handler and use other variants of setDataSource APIs instead. Alternatively, you
-         * can use this API to pass the cookies as a list of HttpCookie. If the app has not
-         * installed a CookieHandler already, {@link MediaPlayer2} will create a CookieManager
-         * and populates its CookieStore with the provided cookies when this data source is passed
-         * to {@link MediaPlayer2}. If the app has installed its own handler already, the handler
-         * is required to be of CookieManager type such that {@link MediaPlayer2} can update the
-         * manager’s CookieStore.
-         *
-         *  <p><strong>Note</strong> that the cross domain redirection is allowed by default,
-         * but that can be changed with key/value pairs through the headers parameter with
-         * "android-allow-cross-domain-redirect" as the key and "0" or "1" as the value to
-         * disallow or allow cross domain redirection.
-         *
-         * @param context the Context to use when resolving the Uri
-         * @param uri the Content URI of the data you want to play
-         * @param headers the headers to be sent together with the request for the data
-         *                The headers must not include cookies. Instead, use the cookies param.
-         * @param cookies the cookies to be sent together with the request
-         * @return the same Builder instance.
-         * @throws NullPointerException if context or uri is null.
-         * @throws IllegalArgumentException if the cookie handler is not of CookieManager type
-         *                                  when cookies are provided.
-         */
-        public Builder setDataSource(@NonNull Context context, @NonNull Uri uri,
-                @Nullable Map<String, String> headers, @Nullable List<HttpCookie> cookies) {
-            Preconditions.checkNotNull(context, "context cannot be null");
-            Preconditions.checkNotNull(uri);
-            if (cookies != null) {
-                CookieHandler cookieHandler = CookieHandler.getDefault();
-                if (cookieHandler != null && !(cookieHandler instanceof CookieManager)) {
-                    throw new IllegalArgumentException(
-                            "The cookie handler has to be of CookieManager type "
-                            + "when cookies are provided.");
-                }
-            }
-
-            resetDataSource();
-            mType = TYPE_URI;
-            mUri = uri;
-            if (headers != null) {
-                mUriHeader = new HashMap<String, String>(headers);
-            }
-            if (cookies != null) {
-                mUriCookies = new ArrayList<HttpCookie>(cookies);
-            }
-            mUriContext = context;
-            return this;
-        }
-
-        private void resetDataSource() {
-            mType = TYPE_NONE;
-            mMedia2DataSource = null;
-            mFD = null;
-            mFDOffset = 0;
-            mFDLength = LONG_MAX;
-            mUri = null;
-            mUriHeader = null;
-            mUriCookies = null;
-            mUriContext = null;
+            return (T) this;
         }
     }
 }
diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java
index b96a585..32c4643 100644
--- a/media/java/android/media/ExifInterface.java
+++ b/media/java/android/media/ExifInterface.java
@@ -16,7 +16,10 @@
 
 package android.media;
 
+import android.annotation.CurrentTimeMillisLong;
+import android.annotation.IntDef;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
 import android.content.res.AssetManager;
 import android.graphics.Bitmap;
@@ -26,12 +29,14 @@
 import android.system.OsConstants;
 import android.util.Log;
 import android.util.Pair;
-import android.annotation.IntDef;
+
+import libcore.io.IoUtils;
+import libcore.io.Streams;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
 import java.io.DataInput;
+import java.io.DataInputStream;
 import java.io.EOFException;
 import java.io.File;
 import java.io.FileDescriptor;
@@ -42,14 +47,14 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
 import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
-import java.util.LinkedList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -58,11 +63,6 @@
 import java.util.TimeZone;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-import libcore.io.IoUtils;
-import libcore.io.Streams;
 
 /**
  * This is a class for reading and writing Exif tags in a JPEG file or a RAW image file.
@@ -583,11 +583,19 @@
     private static class ExifAttribute {
         public final int format;
         public final int numberOfComponents;
+        public final long bytesOffset;
         public final byte[] bytes;
 
+        public static final long BYTES_OFFSET_UNKNOWN = -1;
+
         private ExifAttribute(int format, int numberOfComponents, byte[] bytes) {
+            this(format, numberOfComponents, BYTES_OFFSET_UNKNOWN, bytes);
+        }
+
+        private ExifAttribute(int format, int numberOfComponents, long bytesOffset, byte[] bytes) {
             this.format = format;
             this.numberOfComponents = numberOfComponents;
+            this.bytesOffset = bytesOffset;
             this.bytes = bytes;
         }
 
@@ -1318,6 +1326,7 @@
     private int mOrfThumbnailLength;
     private int mRw2JpgFromRawOffset;
     private boolean mIsSupportedFile;
+    private boolean mModified;
 
     // Pattern to check non zero timestamp
     private static final Pattern sNonZeroTimePattern = Pattern.compile(".*[1-9].*");
@@ -1328,7 +1337,14 @@
     /**
      * Reads Exif tags from the specified image file.
      */
-    public ExifInterface(String filename) throws IOException {
+    public ExifInterface(@NonNull File file) throws IOException {
+        this(file.getAbsolutePath());
+    }
+
+    /**
+     * Reads Exif tags from the specified image file.
+     */
+    public ExifInterface(@NonNull String filename) throws IOException {
         if (filename == null) {
             throw new IllegalArgumentException("filename cannot be null");
         }
@@ -1354,7 +1370,7 @@
      * for writable and seekable file descriptors only. This constructor will not rewind the offset
      * of the given file descriptor. Developers should close the file descriptor after use.
      */
-    public ExifInterface(FileDescriptor fileDescriptor) throws IOException {
+    public ExifInterface(@NonNull FileDescriptor fileDescriptor) throws IOException {
         if (fileDescriptor == null) {
             throw new IllegalArgumentException("fileDescriptor cannot be null");
         }
@@ -1388,7 +1404,7 @@
      * for input streams. The given input stream will proceed its current position. Developers
      * should close the input stream after use.
      */
-    public ExifInterface(InputStream inputStream) throws IOException {
+    public ExifInterface(@NonNull InputStream inputStream) throws IOException {
         if (inputStream == null) {
             throw new IllegalArgumentException("inputStream cannot be null");
         }
@@ -1414,7 +1430,7 @@
      *
      * @param tag the name of the tag.
      */
-    private ExifAttribute getExifAttribute(String tag) {
+    private @Nullable ExifAttribute getExifAttribute(@NonNull String tag) {
         // Retrieves all tag groups. The value from primary image tag group has a higher priority
         // than the value from the thumbnail tag group if there are more than one candidates.
         for (int i = 0; i < EXIF_TAGS.length; ++i) {
@@ -1432,7 +1448,7 @@
      *
      * @param tag the name of the tag.
      */
-    public String getAttribute(String tag) {
+    public @Nullable String getAttribute(@NonNull String tag) {
         ExifAttribute attribute = getExifAttribute(tag);
         if (attribute != null) {
             if (!sTagSetForCompatibility.contains(tag)) {
@@ -1470,7 +1486,7 @@
      * @param tag the name of the tag.
      * @param defaultValue the value to return if the tag is not available.
      */
-    public int getAttributeInt(String tag, int defaultValue) {
+    public int getAttributeInt(@NonNull String tag, int defaultValue) {
         ExifAttribute exifAttribute = getExifAttribute(tag);
         if (exifAttribute == null) {
             return defaultValue;
@@ -1491,7 +1507,7 @@
      * @param tag the name of the tag.
      * @param defaultValue the value to return if the tag is not available.
      */
-    public double getAttributeDouble(String tag, double defaultValue) {
+    public double getAttributeDouble(@NonNull String tag, double defaultValue) {
         ExifAttribute exifAttribute = getExifAttribute(tag);
         if (exifAttribute == null) {
             return defaultValue;
@@ -1510,7 +1526,7 @@
      * @param tag the name of the tag.
      * @param value the value of the tag.
      */
-    public void setAttribute(String tag, String value) {
+    public void setAttribute(@NonNull String tag, @Nullable String value) {
         // Convert the given value to rational values for backwards compatibility.
         if (value != null && sTagSetForCompatibility.contains(tag)) {
             if (tag.equals(TAG_GPS_TIMESTAMP)) {
@@ -1772,12 +1788,18 @@
     }
 
     /**
-     * Save the tag data into the original image file. This is expensive because it involves
-     * copying all the data from one file to another and deleting the old file and renaming the
-     * other. It's best to use {@link #setAttribute(String,String)} to set all attributes to write
-     * and make a single call rather than multiple calls for each attribute.
+     * Save the tag data into the original image file. This is expensive because
+     * it involves copying all the data from one file to another and deleting
+     * the old file and renaming the other. It's best to use
+     * {@link #setAttribute(String,String)} to set all attributes to write and
+     * make a single call rather than multiple calls for each attribute.
      * <p>
      * This method is only supported for JPEG files.
+     * <p class="note">
+     * Note: after calling this method, any attempts to obtain range information
+     * from {@link #getAttributeRange(String)} or {@link #getThumbnailRange()}
+     * will throw {@link IllegalStateException}, since the offsets may have
+     * changed in the newly written file.
      * </p>
      */
     public void saveAttributes() throws IOException {
@@ -1789,6 +1811,10 @@
                     "ExifInterface does not support saving attributes for the current input.");
         }
 
+        // Remember the fact that we've changed the file on disk from what was
+        // originally parsed, meaning we can't answer range questions
+        mModified = true;
+
         // Keep the thumbnail in memory
         mThumbnailBytes = getThumbnail();
 
@@ -1849,6 +1875,15 @@
     }
 
     /**
+     * Returns true if the image file has the given attribute defined.
+     *
+     * @param tag the name of the tag.
+     */
+    public boolean hasAttribute(String tag) {
+        return (getExifAttribute(tag) != null);
+    }
+
+    /**
      * Returns the JPEG compressed thumbnail inside the image file, or {@code null} if there is no
      * JPEG compressed thumbnail.
      * The returned data can be decoded using
@@ -1968,17 +2003,45 @@
      *
      * @return two-element array, the offset in the first value, and length in
      *         the second, or {@code null} if no thumbnail was found.
+     * @throws IllegalStateException if {@link #saveAttributes()} has been
+     *             called since the underlying file was initially parsed, since
+     *             that means offsets may have changed.
      */
-    public long[] getThumbnailRange() {
-        if (!mHasThumbnail) {
-            return null;
+    public @Nullable long[] getThumbnailRange() {
+        if (mModified) {
+            throw new IllegalStateException(
+                    "The underlying file has been modified since being parsed");
         }
 
-        long[] range = new long[2];
-        range[0] = mThumbnailOffset;
-        range[1] = mThumbnailLength;
+        if (mHasThumbnail) {
+            return new long[] { mThumbnailOffset, mThumbnailLength };
+        } else {
+            return null;
+        }
+    }
 
-        return range;
+    /**
+     * Returns the offset and length of the requested tag inside the image file,
+     * or {@code null} if the tag is not contained.
+     *
+     * @return two-element array, the offset in the first value, and length in
+     *         the second, or {@code null} if no tag was found.
+     * @throws IllegalStateException if {@link #saveAttributes()} has been
+     *             called since the underlying file was initially parsed, since
+     *             that means offsets may have changed.
+     */
+    public @Nullable long[] getAttributeRange(@NonNull String tag) {
+        if (mModified) {
+            throw new IllegalStateException(
+                    "The underlying file has been modified since being parsed");
+        }
+
+        final ExifAttribute attribute = getExifAttribute(tag);
+        if (attribute != null) {
+            return new long[] { attribute.bytesOffset, attribute.bytes.length };
+        } else {
+            return null;
+        }
     }
 
     /**
@@ -2023,13 +2086,41 @@
     }
 
     /**
-     * Returns number of milliseconds since Jan. 1, 1970, midnight local time.
-     * Returns -1 if the date time information if not available.
+     * Returns parsed {@code DateTime} value, or -1 if unavailable or invalid.
+     * 
      * @hide
      */
     @UnsupportedAppUsage
-    public long getDateTime() {
-        String dateTimeString = getAttribute(TAG_DATETIME);
+    public @CurrentTimeMillisLong long getDateTime() {
+        return parseDateTime(getAttribute(TAG_DATETIME),
+                getAttribute(TAG_SUBSEC_TIME));
+    }
+
+    /**
+     * Returns parsed {@code DateTimeDigitized} value, or -1 if unavailable or
+     * invalid.
+     *
+     * @hide
+     */
+    public @CurrentTimeMillisLong long getDateTimeDigitized() {
+        return parseDateTime(getAttribute(TAG_DATETIME_DIGITIZED),
+                getAttribute(TAG_SUBSEC_TIME_DIGITIZED));
+    }
+
+    /**
+     * Returns parsed {@code DateTimeOriginal} value, or -1 if unavailable or
+     * invalid.
+     *
+     * @hide
+     */
+    @UnsupportedAppUsage
+    public @CurrentTimeMillisLong long getDateTimeOriginal() {
+        return parseDateTime(getAttribute(TAG_DATETIME_ORIGINAL),
+                getAttribute(TAG_SUBSEC_TIME_ORIGINAL));
+    }
+
+    private static @CurrentTimeMillisLong long parseDateTime(@Nullable String dateTimeString,
+            @Nullable String subSecs) {
         if (dateTimeString == null
                 || !sNonZeroTimePattern.matcher(dateTimeString).matches()) return -1;
 
@@ -2041,7 +2132,6 @@
             if (datetime == null) return -1;
             long msecs = datetime.getTime();
 
-            String subSecs = getAttribute(TAG_SUBSEC_TIME);
             if (subSecs != null) {
                 try {
                     long sub = Long.parseLong(subSecs);
@@ -2545,13 +2635,18 @@
                     if (size == 0) {
                         return 0;
                     }
-                    // We don't allow read positions after the available bytes,
-                    // the input stream won't be able to seek back then.
-                    if (position < 0 || position >= in.available()) {
+                    if (position < 0) {
                         return -1;
                     }
                     try {
                         if (mPosition != position) {
+                            // We don't allow seek to positions after the available bytes,
+                            // the input stream won't be able to seek back then.
+                            // However, if we hit an exception before (mPosition set to -1),
+                            // let it try the seek in hope it might recover.
+                            if (mPosition >= 0 && position >= mPosition + in.available()) {
+                                return -1;
+                            }
                             in.seek(position);
                             mPosition = position;
                         }
@@ -2559,8 +2654,8 @@
                         // If the read will cause us to go over the available bytes,
                         // reduce the size so that we stay in the available range.
                         // Otherwise the input stream may not be able to seek back.
-                        if (mPosition + size > in.available()) {
-                            size = in.available() - (int)mPosition;
+                        if (size > in.available()) {
+                            size = in.available();
                         }
 
                         int bytesRead = in.read(buffer, offset, size);
@@ -3125,9 +3220,11 @@
                 continue;
             }
 
-            byte[] bytes = new byte[(int) byteCount];
+            final int bytesOffset = dataInputStream.peek();
+            final byte[] bytes = new byte[(int) byteCount];
             dataInputStream.readFully(bytes);
-            ExifAttribute attribute = new ExifAttribute(dataFormat, numberOfComponents, bytes);
+            ExifAttribute attribute = new ExifAttribute(dataFormat, numberOfComponents,
+                    bytesOffset, bytes);
             mAttributes[ifdType].put(tag.name, attribute);
 
             // DNG files have a DNG Version tag specifying the version of specifications that the
diff --git a/media/java/android/media/FileDataSourceDesc.java b/media/java/android/media/FileDataSourceDesc.java
new file mode 100644
index 0000000..763a81f
--- /dev/null
+++ b/media/java/android/media/FileDataSourceDesc.java
@@ -0,0 +1,225 @@
+/*
+ * Copyright 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.media;
+
+import android.annotation.NonNull;
+import android.os.ParcelFileDescriptor;
+import android.util.Log;
+
+import java.io.IOException;
+
+/**
+ * @hide
+ * Structure of data source descriptor for sources using file descriptor.
+ *
+ * Used by {@link MediaPlayer2#setDataSource(DataSourceDesc)},
+ * {@link MediaPlayer2#setNextDataSource(DataSourceDesc)} and
+ * {@link MediaPlayer2#setNextDataSources(List<DataSourceDesc>)}
+ * to set data source for playback.
+ *
+ * <p>Users should use {@link Builder} to create {@link FileDataSourceDesc}.
+ *
+ */
+public class FileDataSourceDesc extends DataSourceDesc {
+    private static final String TAG = "FileDataSourceDesc";
+
+    /**
+     * Used when the length of file descriptor is unknown.
+     *
+     * @see #getLength()
+     */
+    public static final long FD_LENGTH_UNKNOWN = LONG_MAX;
+
+    private ParcelFileDescriptor mPFD;
+    private long mOffset = 0;
+    private long mLength = FD_LENGTH_UNKNOWN;
+
+    private FileDataSourceDesc() {
+        super();
+    }
+
+    /**
+     * Releases the resources held by this {@code FileDataSourceDesc} object.
+     */
+    @Override
+    void close() {
+        super.close();
+        closeFD();
+    }
+
+    /**
+     * Releases the file descriptor held by this {@code FileDataSourceDesc} object.
+     */
+    void closeFD() {
+        synchronized (this) {
+            if (mPFD != null) {
+                try {
+                    mPFD.close();
+                } catch (IOException e) {
+                    Log.e(TAG, "failed to close pfd: " + e);
+                }
+
+                mPFD = null;
+            }
+        }
+    }
+
+    /**
+     * Return the ParcelFileDescriptor of this data source.
+     * @return the ParcelFileDescriptor of this data source
+     */
+    public ParcelFileDescriptor getParcelFileDescriptor() {
+        return mPFD;
+    }
+
+    /**
+     * Return the offset associated with the ParcelFileDescriptor of this data source.
+     * It's meaningful only when it has been set by the {@link Builder}.
+     * @return the offset associated with the ParcelFileDescriptor of this data source
+     */
+    public long getOffset() {
+        return mOffset;
+    }
+
+    /**
+     * Return the content length associated with the ParcelFileDescriptor of this data source.
+     * {@link #FD_LENGTH_UNKNOWN} means same as the length of source content.
+     * @return the content length associated with the ParcelFileDescriptor of this data source
+     */
+    public long getLength() {
+        return mLength;
+    }
+
+    /**
+     * Builder class for {@link FileDataSourceDesc} objects.
+     * <p> Here is an example where <code>Builder</code> is used to define the
+     * {@link FileDataSourceDesc} to be used by a {@link MediaPlayer2} instance:
+     *
+     * <pre class="prettyprint">
+     * FileDataSourceDesc newDSD = new FileDataSourceDesc.Builder()
+     *         .setDataSource(pfd, 0, srcLength)
+     *         .setStartPosition(1000)
+     *         .setEndPosition(15000)
+     *         .build();
+     * mediaplayer2.setDataSourceDesc(newDSD);
+     * </pre>
+     */
+    public static class Builder extends BuilderBase<Builder> {
+        private ParcelFileDescriptor mPFD;
+        private long mOffset = 0;
+        private long mLength = FD_LENGTH_UNKNOWN;
+
+        /**
+         * Constructs a new Builder with the defaults.
+         */
+        public Builder() {
+            super();
+        }
+
+        /**
+         * Constructs a new Builder from a given {@link FileDataSourceDesc} instance
+         * @param dsd the {@link FileDataSourceDesc} object whose data will be reused
+         * in the new Builder.
+         */
+        public Builder(FileDataSourceDesc dsd) {
+            super(dsd);
+            if (dsd == null) {
+                return;  // use default
+            }
+            mPFD = dsd.mPFD;
+            mOffset = dsd.mOffset;
+            mLength = dsd.mLength;
+        }
+
+        /**
+         * Combines all of the fields that have been set and return a new
+         * {@link FileDataSourceDesc} object. <code>IllegalStateException</code> will be
+         * thrown if there is conflict between fields.
+         *
+         * @return a new {@link FileDataSourceDesc} object
+         */
+        public @NonNull FileDataSourceDesc build() {
+            FileDataSourceDesc dsd = new FileDataSourceDesc();
+            super.build(dsd);
+            dsd.mPFD = mPFD;
+            dsd.mOffset = mOffset;
+            dsd.mLength = mLength;
+
+            return dsd;
+        }
+
+        /**
+         * Sets the data source (ParcelFileDescriptor) to use. The ParcelFileDescriptor must be
+         * seekable (N.B. a LocalSocket is not seekable). When the {@link FileDataSourceDesc}
+         * created by this builder is passed to {@link MediaPlayer2} via
+         * {@link MediaPlayer2#setDataSource(DataSourceDesc)},
+         * {@link MediaPlayer2#setNextDataSource(DataSourceDesc)} or
+         * {@link MediaPlayer2#setNextDataSources(List<DataSourceDesc>)}, MediaPlayer2 will
+         * close the ParcelFileDescriptor.
+         *
+         * @param pfd the ParcelFileDescriptor for the file to play
+         * @return the same Builder instance.
+         * @throws NullPointerException if pfd is null.
+         */
+        public @NonNull Builder setDataSource(@NonNull ParcelFileDescriptor pfd) {
+            Media2Utils.checkArgument(pfd != null, "pfd cannot be null.");
+            resetDataSource();
+            mPFD = pfd;
+            return this;
+        }
+
+        /**
+         * Sets the data source (ParcelFileDescriptor) to use. The ParcelFileDescriptor must be
+         * seekable (N.B. a LocalSocket is not seekable). When the {@link FileDataSourceDesc}
+         * created by this builder is passed to {@link MediaPlayer2} via
+         * {@link MediaPlayer2#setDataSource(DataSourceDesc)},
+         * {@link MediaPlayer2#setNextDataSource(DataSourceDesc)} or
+         * {@link MediaPlayer2#setNextDataSources(List<DataSourceDesc>)}, MediaPlayer2 will
+         * close the ParcelFileDescriptor.
+         *
+         * Any negative number for offset is treated as 0.
+         * Any negative number for length is treated as maximum length of the data source.
+         *
+         * @param pfd the ParcelFileDescriptor for the file to play
+         * @param offset the offset into the file where the data to be played starts, in bytes
+         * @param length the length in bytes of the data to be played
+         * @return the same Builder instance.
+         * @throws NullPointerException if pfd is null.
+         */
+        public @NonNull Builder setDataSource(
+                @NonNull ParcelFileDescriptor pfd, long offset, long length) {
+            Media2Utils.checkArgument(pfd != null, "pfd cannot be null.");
+            if (offset < 0) {
+                offset = 0;
+            }
+            if (length < 0) {
+                length = FD_LENGTH_UNKNOWN;
+            }
+            resetDataSource();
+            mPFD = pfd;
+            mOffset = offset;
+            mLength = length;
+            return this;
+        }
+
+        private void resetDataSource() {
+            mPFD = null;
+            mOffset = 0;
+            mLength = FD_LENGTH_UNKNOWN;
+        }
+    }
+}
diff --git a/media/java/android/media/ISessionTokensListener.aidl b/media/java/android/media/ISessionTokensListener.aidl
deleted file mode 100644
index c83a19e..0000000
--- a/media/java/android/media/ISessionTokensListener.aidl
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.os.Bundle;
-
-/**
- * Listens for changes to the list of session tokens.
- * @hide
- */
-oneway interface ISessionTokensListener {
-    void onSessionTokensChanged(in List<Bundle> tokens);
-}
diff --git a/media/java/android/media/Media2HTTPConnection.java b/media/java/android/media/Media2HTTPConnection.java
index 0d7825a..a369a62 100644
--- a/media/java/android/media/Media2HTTPConnection.java
+++ b/media/java/android/media/Media2HTTPConnection.java
@@ -16,27 +16,27 @@
 
 package android.media;
 
-import android.net.NetworkUtils;
+import static android.media.MediaPlayer2.MEDIA_ERROR_UNSUPPORTED;
+
 import android.os.StrictMode;
 import android.util.Log;
 
 import java.io.BufferedInputStream;
-import java.io.InputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.CookieHandler;
-import java.net.CookieManager;
-import java.net.Proxy;
-import java.net.URL;
 import java.net.HttpURLConnection;
+import java.net.InetAddress;
 import java.net.MalformedURLException;
 import java.net.NoRouteToHostException;
 import java.net.ProtocolException;
+import java.net.Proxy;
+import java.net.URL;
+import java.net.UnknownHostException;
 import java.net.UnknownServiceException;
 import java.util.HashMap;
 import java.util.Map;
 
-import static android.media.MediaPlayer2.MEDIA_ERROR_UNSUPPORTED;
-
 /** @hide */
 public class Media2HTTPConnection {
     private static final String TAG = "Media2HTTPConnection";
@@ -161,10 +161,10 @@
             if (host.equalsIgnoreCase("localhost")) {
                 return true;
             }
-            if (NetworkUtils.numericToInetAddress(host).isLoopbackAddress()) {
+            if (InetAddress.getByName(host).isLoopbackAddress()) {
                 return true;
             }
-        } catch (IllegalArgumentException iex) {
+        } catch (IllegalArgumentException | UnknownHostException e) {
         }
         return false;
     }
diff --git a/media/java/android/media/Media2Utils.java b/media/java/android/media/Media2Utils.java
index 066233d..5fd6191 100644
--- a/media/java/android/media/Media2Utils.java
+++ b/media/java/android/media/Media2Utils.java
@@ -31,6 +31,20 @@
     private Media2Utils() {
     }
 
+    /**
+     * Ensures that an expression checking an argument is true.
+     *
+     * @param expression the expression to check
+     * @param errorMessage the exception message to use if the check fails; will
+     *     be converted to a string using {@link String#valueOf(Object)}
+     * @throws IllegalArgumentException if {@code expression} is false
+     */
+    public static void checkArgument(boolean expression, String errorMessage) {
+        if (!expression) {
+            throw new IllegalArgumentException(errorMessage);
+        }
+    }
+
     public static synchronized void storeCookies(List<HttpCookie> cookies) {
         CookieHandler cookieHandler = CookieHandler.getDefault();
         if (cookieHandler == null) {
diff --git a/media/java/android/media/MediaCodecInfo.java b/media/java/android/media/MediaCodecInfo.java
index 995ebb2..6301993 100644
--- a/media/java/android/media/MediaCodecInfo.java
+++ b/media/java/android/media/MediaCodecInfo.java
@@ -16,6 +16,9 @@
 
 package android.media;
 
+import static android.media.Utils.intersectSortedDistinctRanges;
+import static android.media.Utils.sortDistinctRanges;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
@@ -32,9 +35,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import static android.media.Utils.intersectSortedDistinctRanges;
-import static android.media.Utils.sortDistinctRanges;
-
 /**
  * Provides information about a given media codec available on the device. You can
  * iterate through all codecs available by querying {@link MediaCodecList}. For example,
@@ -1117,7 +1117,7 @@
             } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_RAW)) {
                 sampleRateRange = Range.create(1, 96000);
                 bitRates = Range.create(1, 10000000);
-                maxChannels = AudioTrack.CHANNEL_COUNT_MAX;
+                maxChannels = AudioSystem.OUT_CHANNEL_COUNT_MAX;
             } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_FLAC)) {
                 sampleRateRange = Range.create(1, 655350);
                 // lossless codec, so bitrate is ignored
@@ -1135,6 +1135,10 @@
                 maxChannels = 6;
             } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_EAC3)) {
                 maxChannels = 16;
+            } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_AC4)) {
+                sampleRates = new int[] { 44100, 48000, 96000, 192000 };
+                bitRates = Range.create(16000, 2688000);
+                maxChannels = 24;
             } else {
                 Log.w(TAG, "Unsupported mime " + mime);
                 mParent.mError |= ERROR_UNSUPPORTED;
diff --git a/media/java/android/media/MediaController2.java b/media/java/android/media/MediaController2.java
deleted file mode 100644
index a633e5f..0000000
--- a/media/java/android/media/MediaController2.java
+++ /dev/null
@@ -1,863 +0,0 @@
-/*
- * Copyright 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.media;
-
-import static android.media.MediaPlayerBase.BUFFERING_STATE_UNKNOWN;
-
-import android.annotation.CallbackExecutor;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.media.MediaPlaylistAgent.RepeatMode;
-import android.media.MediaPlaylistAgent.ShuffleMode;
-import android.media.MediaSession2.CommandButton;
-import android.media.MediaSession2.ControllerInfo;
-import android.media.MediaSession2.ErrorCode;
-import android.media.session.MediaSessionManager;
-import android.media.update.ApiLoader;
-import android.media.update.MediaController2Provider;
-import android.media.update.MediaController2Provider.PlaybackInfoProvider;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.ResultReceiver;
-
-import java.util.List;
-import java.util.concurrent.Executor;
-
-/**
- * @hide
- * Allows an app to interact with an active {@link MediaSession2} in any status. Media buttons and
- * other commands can be sent to the session.
- * <p>
- * When you're done, use {@link #close()} to clean up resources. This also helps session service
- * to be destroyed when there's no controller associated with it.
- * <p>
- * When controlling {@link MediaSession2}, the controller will be available immediately after
- * the creation.
- * <p>
- * A controller can be created through token from {@link MediaSessionManager} if you hold the
- * signature|privileged permission "android.permission.MEDIA_CONTENT_CONTROL" permission or are
- * an enabled notification listener or by getting a {@link SessionToken2} directly the
- * the session owner.
- * <p>
- * MediaController2 objects are thread-safe.
- * <p>
- * @see MediaSession2
- */
-public class MediaController2 implements AutoCloseable {
-    /**
-     * Interface for listening to change in activeness of the {@link MediaSession2}.  It's
-     * active if and only if it has set a player.
-     */
-    public abstract static class ControllerCallback {
-        /**
-         * Called when the controller is successfully connected to the session. The controller
-         * becomes available afterwards.
-         *
-         * @param controller the controller for this event
-         * @param allowedCommands commands that's allowed by the session.
-         */
-        public void onConnected(@NonNull MediaController2 controller,
-                @NonNull SessionCommandGroup2 allowedCommands) { }
-
-        /**
-         * Called when the session refuses the controller or the controller is disconnected from
-         * the session. The controller becomes unavailable afterwards and the callback wouldn't
-         * be called.
-         * <p>
-         * It will be also called after the {@link #close()}, so you can put clean up code here.
-         * You don't need to call {@link #close()} after this.
-         *
-         * @param controller the controller for this event
-         * @param controller controller for this event
-         */
-        public void onDisconnected(@NonNull MediaController2 controller) { }
-
-        /**
-         * Called when the session set the custom layout through the
-         * {@link MediaSession2#setCustomLayout(ControllerInfo, List)}.
-         * <p>
-         * Can be called before {@link #onConnected(MediaController2, SessionCommandGroup2)} is
-         * called.
-         *
-         * @param controller the controller for this event
-         * @param layout
-         */
-        public void onCustomLayoutChanged(@NonNull MediaController2 controller,
-                @NonNull List<CommandButton> layout) { }
-
-        /**
-         * Called when the session has changed anything related with the {@link PlaybackInfo}.
-         *
-         * @param controller the controller for this event
-         * @param info new playback info
-         */
-        public void onPlaybackInfoChanged(@NonNull MediaController2 controller,
-                @NonNull PlaybackInfo info) { }
-
-        /**
-         * Called when the allowed commands are changed by session.
-         *
-         * @param controller the controller for this event
-         * @param commands newly allowed commands
-         */
-        public void onAllowedCommandsChanged(@NonNull MediaController2 controller,
-                @NonNull SessionCommandGroup2 commands) { }
-
-        /**
-         * Called when the session sent a custom command.
-         *
-         * @param controller the controller for this event
-         * @param command
-         * @param args
-         * @param receiver
-         */
-        public void onCustomCommand(@NonNull MediaController2 controller,
-                @NonNull SessionCommand2 command, @Nullable Bundle args,
-                @Nullable ResultReceiver receiver) { }
-
-        /**
-         * Called when the player state is changed.
-         *
-         * @param controller the controller for this event
-         * @param state
-         */
-        public void onPlayerStateChanged(@NonNull MediaController2 controller, int state) { }
-
-        /**
-         * Called when playback speed is changed.
-         *
-         * @param controller the controller for this event
-         * @param speed speed
-         */
-        public void onPlaybackSpeedChanged(@NonNull MediaController2 controller,
-                float speed) { }
-
-        /**
-         * Called to report buffering events for a data source.
-         * <p>
-         * Use {@link #getBufferedPosition()} for current buffering position.
-         *
-         * @param controller the controller for this event
-         * @param item the media item for which buffering is happening.
-         * @param state the new buffering state.
-         */
-        public void onBufferingStateChanged(@NonNull MediaController2 controller,
-                @NonNull MediaItem2 item, @MediaPlayerBase.BuffState int state) { }
-
-        /**
-         * Called to indicate that seeking is completed.
-         *
-         * @param controller the controller for this event.
-         * @param position the previous seeking request.
-         */
-        public void onSeekCompleted(@NonNull MediaController2 controller, long position) { }
-
-        /**
-         * Called when a error from
-         *
-         * @param controller the controller for this event
-         * @param errorCode error code
-         * @param extras extra information
-         */
-        public void onError(@NonNull MediaController2 controller, @ErrorCode int errorCode,
-                @Nullable Bundle extras) { }
-
-        /**
-         * Called when the player's currently playing item is changed
-         * <p>
-         * When it's called, you should invalidate previous playback information and wait for later
-         * callbacks.
-         *
-         * @param controller the controller for this event
-         * @param item new item
-         * @see #onBufferingStateChanged(MediaController2, MediaItem2, int)
-         */
-        // TODO(jaewan): Use this (b/74316764)
-        public void onCurrentMediaItemChanged(@NonNull MediaController2 controller,
-                @NonNull MediaItem2 item) { }
-
-        /**
-         * Called when a playlist is changed.
-         *
-         * @param controller the controller for this event
-         * @param list new playlist
-         * @param metadata new metadata
-         */
-        public void onPlaylistChanged(@NonNull MediaController2 controller,
-                @NonNull List<MediaItem2> list, @Nullable MediaMetadata2 metadata) { }
-
-        /**
-         * Called when a playlist metadata is changed.
-         *
-         * @param controller the controller for this event
-         * @param metadata new metadata
-         */
-        public void onPlaylistMetadataChanged(@NonNull MediaController2 controller,
-                @Nullable MediaMetadata2 metadata) { }
-
-        /**
-         * Called when the shuffle mode is changed.
-         *
-         * @param controller the controller for this event
-         * @param shuffleMode repeat mode
-         * @see MediaPlaylistAgent#SHUFFLE_MODE_NONE
-         * @see MediaPlaylistAgent#SHUFFLE_MODE_ALL
-         * @see MediaPlaylistAgent#SHUFFLE_MODE_GROUP
-         */
-        public void onShuffleModeChanged(@NonNull MediaController2 controller,
-                @MediaPlaylistAgent.ShuffleMode int shuffleMode) { }
-
-        /**
-         * Called when the repeat mode is changed.
-         *
-         * @param controller the controller for this event
-         * @param repeatMode repeat mode
-         * @see MediaPlaylistAgent#REPEAT_MODE_NONE
-         * @see MediaPlaylistAgent#REPEAT_MODE_ONE
-         * @see MediaPlaylistAgent#REPEAT_MODE_ALL
-         * @see MediaPlaylistAgent#REPEAT_MODE_GROUP
-         */
-        public void onRepeatModeChanged(@NonNull MediaController2 controller,
-                @MediaPlaylistAgent.RepeatMode int repeatMode) { }
-    }
-
-    /**
-     * Holds information about the current playback and how audio is handled for
-     * this session.
-     */
-    // The same as MediaController.PlaybackInfo
-    public static final class PlaybackInfo {
-        /**
-         * The session uses remote playback.
-         */
-        public static final int PLAYBACK_TYPE_REMOTE = 2;
-        /**
-         * The session uses local playback.
-         */
-        public static final int PLAYBACK_TYPE_LOCAL = 1;
-
-        private final PlaybackInfoProvider mProvider;
-
-        /**
-         * @hide
-         */
-        public PlaybackInfo(PlaybackInfoProvider provider) {
-            mProvider = provider;
-        }
-
-        /**
-         * @hide
-         */
-        public PlaybackInfoProvider getProvider() {
-            return mProvider;
-        }
-
-        /**
-         * Get the type of playback which affects volume handling. One of:
-         * <ul>
-         * <li>{@link #PLAYBACK_TYPE_LOCAL}</li>
-         * <li>{@link #PLAYBACK_TYPE_REMOTE}</li>
-         * </ul>
-         *
-         * @return The type of playback this session is using.
-         */
-        public int getPlaybackType() {
-            return mProvider.getPlaybackType_impl();
-        }
-
-        /**
-         * Get the audio attributes for this session. The attributes will affect
-         * volume handling for the session. When the volume type is
-         * {@link PlaybackInfo#PLAYBACK_TYPE_REMOTE} these may be ignored by the
-         * remote volume handler.
-         *
-         * @return The attributes for this session.
-         */
-        public AudioAttributes getAudioAttributes() {
-            return mProvider.getAudioAttributes_impl();
-        }
-
-        /**
-         * Get the type of volume control that can be used. One of:
-         * <ul>
-         * <li>{@link VolumeProvider2#VOLUME_CONTROL_ABSOLUTE}</li>
-         * <li>{@link VolumeProvider2#VOLUME_CONTROL_RELATIVE}</li>
-         * <li>{@link VolumeProvider2#VOLUME_CONTROL_FIXED}</li>
-         * </ul>
-         *
-         * @return The type of volume control that may be used with this session.
-         */
-        public int getControlType() {
-            return mProvider.getControlType_impl();
-        }
-
-        /**
-         * Get the maximum volume that may be set for this session.
-         *
-         * @return The maximum allowed volume where this session is playing.
-         */
-        public int getMaxVolume() {
-            return mProvider.getMaxVolume_impl();
-        }
-
-        /**
-         * Get the current volume for this session.
-         *
-         * @return The current volume where this session is playing.
-         */
-        public int getCurrentVolume() {
-            return mProvider.getCurrentVolume_impl();
-        }
-    }
-
-    private final MediaController2Provider mProvider;
-
-    /**
-     * Create a {@link MediaController2} from the {@link SessionToken2}.
-     * This connects to the session and may wake up the service if it's not available.
-     *
-     * @param context Context
-     * @param token token to connect to
-     * @param executor executor to run callbacks on.
-     * @param callback controller callback to receive changes in
-     */
-    public MediaController2(@NonNull Context context, @NonNull SessionToken2 token,
-            @NonNull @CallbackExecutor Executor executor, @NonNull ControllerCallback callback) {
-        super();
-
-        mProvider = createProvider(context, token, executor, callback);
-        // This also connects to the token.
-        // Explicit connect() isn't added on purpose because retrying connect() is impossible with
-        // session whose session binder is only valid while it's active.
-        // prevent a controller from reusable after the
-        // session is released and recreated.
-        mProvider.initialize();
-    }
-
-    MediaController2Provider createProvider(@NonNull Context context,
-            @NonNull SessionToken2 token, @NonNull Executor executor,
-            @NonNull ControllerCallback callback) {
-        return ApiLoader.getProvider().createMediaController2(
-                context, this, token, executor, callback);
-    }
-
-    /**
-     * Release this object, and disconnect from the session. After this, callbacks wouldn't be
-     * received.
-     */
-    @Override
-    public void close() {
-        mProvider.close_impl();
-    }
-
-    /**
-     * @hide
-     */
-    public MediaController2Provider getProvider() {
-        return mProvider;
-    }
-
-    /**
-     * @return token
-     */
-    public @NonNull SessionToken2 getSessionToken() {
-        return mProvider.getSessionToken_impl();
-    }
-
-    /**
-     * Returns whether this class is connected to active {@link MediaSession2} or not.
-     */
-    public boolean isConnected() {
-        return mProvider.isConnected_impl();
-    }
-
-    public void play() {
-        mProvider.play_impl();
-    }
-
-    public void pause() {
-        mProvider.pause_impl();
-    }
-
-    public void stop() {
-        mProvider.stop_impl();
-    }
-
-    /**
-     * Request that the player prepare its playback. In other words, other sessions can continue
-     * to play during the preparation of this session. This method can be used to speed up the
-     * start of the playback. Once the preparation is done, the session will change its playback
-     * state to {@link MediaPlayerBase#PLAYER_STATE_PAUSED}. Afterwards, {@link #play} can be called
-     * to start playback.
-     */
-    public void prepare() {
-        mProvider.prepare_impl();
-    }
-
-    /**
-     * Fast forwards playback. If playback is already fast forwarding this may increase the rate.
-     */
-    public void fastForward() {
-        mProvider.fastForward_impl();
-    }
-
-    /**
-     * Rewinds playback. If playback is already rewinding this may increase the rate.
-     */
-    public void rewind() {
-        mProvider.rewind_impl();
-    }
-
-    /**
-     * Move to a new location in the media stream.
-     *
-     * @param pos Position to move to, in milliseconds.
-     */
-    public void seekTo(long pos) {
-        mProvider.seekTo_impl(pos);
-    }
-
-    /**
-     * Revisit this API later.
-     * @hide
-     */
-    public void skipForward() {
-        // TODO(jaewan): (Post-P) Discuss this API later.
-        // To match with KEYCODE_MEDIA_SKIP_FORWARD
-    }
-
-    /**
-     * @hide
-     */
-    public void skipBackward() {
-        // TODO(jaewan): (Post-P) Discuss this API later.
-        // To match with KEYCODE_MEDIA_SKIP_BACKWARD
-    }
-
-    /**
-     * Request that the player start playback for a specific media id.
-     *
-     * @param mediaId The id of the requested media.
-     * @param extras Optional extras that can include extra information about the media item
-     *               to be played.
-     */
-    public void playFromMediaId(@NonNull String mediaId, @Nullable Bundle extras) {
-        mProvider.playFromMediaId_impl(mediaId, extras);
-    }
-
-    /**
-     * Request that the player start playback for a specific search query.
-     *
-     * @param query The search query. Should not be an empty string.
-     * @param extras Optional extras that can include extra information about the query.
-     */
-    public void playFromSearch(@NonNull String query, @Nullable Bundle extras) {
-        mProvider.playFromSearch_impl(query, extras);
-    }
-
-    /**
-     * Request that the player start playback for a specific {@link Uri}.
-     *
-     * @param uri The URI of the requested media.
-     * @param extras Optional extras that can include extra information about the media item
-     *               to be played.
-     */
-    public void playFromUri(@NonNull Uri uri, @Nullable Bundle extras) {
-        mProvider.playFromUri_impl(uri, extras);
-    }
-
-    /**
-     * Request that the player prepare playback for a specific media id. In other words, other
-     * sessions can continue to play during the preparation of this session. This method can be
-     * used to speed up the start of the playback. Once the preparation is done, the session
-     * will change its playback state to {@link MediaPlayerBase#PLAYER_STATE_PAUSED}. Afterwards,
-     * {@link #play} can be called to start playback. If the preparation is not needed,
-     * {@link #playFromMediaId} can be directly called without this method.
-     *
-     * @param mediaId The id of the requested media.
-     * @param extras Optional extras that can include extra information about the media item
-     *               to be prepared.
-     */
-    public void prepareFromMediaId(@NonNull String mediaId, @Nullable Bundle extras) {
-        mProvider.prepareFromMediaId_impl(mediaId, extras);
-    }
-
-    /**
-     * Request that the player prepare playback for a specific search query.
-     * In other words, other sessions can continue to play during the preparation of this session.
-     * This method can be used to speed up the start of the playback.
-     * Once the preparation is done, the session will change its playback state to
-     * {@link MediaPlayerBase#PLAYER_STATE_PAUSED}. Afterwards,
-     * {@link #play} can be called to start playback. If the preparation is not needed,
-     * {@link #playFromSearch} can be directly called without this method.
-     *
-     * @param query The search query. Should not be an empty string.
-     * @param extras Optional extras that can include extra information about the query.
-     */
-    public void prepareFromSearch(@NonNull String query, @Nullable Bundle extras) {
-        mProvider.prepareFromSearch_impl(query, extras);
-    }
-
-    /**
-     * Request that the player prepare playback for a specific {@link Uri}. In other words,
-     * other sessions can continue to play during the preparation of this session. This method
-     * can be used to speed up the start of the playback. Once the preparation is done, the
-     * session will change its playback state to {@link MediaPlayerBase#PLAYER_STATE_PAUSED}.
-     * Afterwards, {@link #play} can be called to start playback. If the preparation is not needed,
-     * {@link #playFromUri} can be directly called without this method.
-     *
-     * @param uri The URI of the requested media.
-     * @param extras Optional extras that can include extra information about the media item
-     *               to be prepared.
-     */
-    public void prepareFromUri(@NonNull Uri uri, @Nullable Bundle extras) {
-        mProvider.prepareFromUri_impl(uri, extras);
-    }
-
-    /**
-     * Set the volume of the output this session is playing on. The command will be ignored if it
-     * does not support {@link VolumeProvider2#VOLUME_CONTROL_ABSOLUTE}.
-     * <p>
-     * If the session is local playback, this changes the device's volume with the stream that
-     * session's player is using. Flags will be specified for the {@link AudioManager}.
-     * <p>
-     * If the session is remote player (i.e. session has set volume provider), its volume provider
-     * will receive this request instead.
-     *
-     * @see #getPlaybackInfo()
-     * @param value The value to set it to, between 0 and the reported max.
-     * @param flags flags from {@link AudioManager} to include with the volume request for local
-     *              playback
-     */
-    public void setVolumeTo(int value, int flags) {
-        mProvider.setVolumeTo_impl(value, flags);
-    }
-
-    /**
-     * Adjust the volume of the output this session is playing on. The direction
-     * must be one of {@link AudioManager#ADJUST_LOWER},
-     * {@link AudioManager#ADJUST_RAISE}, or {@link AudioManager#ADJUST_SAME}.
-     * The command will be ignored if the session does not support
-     * {@link VolumeProvider2#VOLUME_CONTROL_RELATIVE} or
-     * {@link VolumeProvider2#VOLUME_CONTROL_ABSOLUTE}.
-     * <p>
-     * If the session is local playback, this changes the device's volume with the stream that
-     * session's player is using. Flags will be specified for the {@link AudioManager}.
-     * <p>
-     * If the session is remote player (i.e. session has set volume provider), its volume provider
-     * will receive this request instead.
-     *
-     * @see #getPlaybackInfo()
-     * @param direction The direction to adjust the volume in.
-     * @param flags flags from {@link AudioManager} to include with the volume request for local
-     *              playback
-     */
-    public void adjustVolume(int direction, int flags) {
-        mProvider.adjustVolume_impl(direction, flags);
-    }
-
-    /**
-     * Get an intent for launching UI associated with this session if one exists.
-     *
-     * @return A {@link PendingIntent} to launch UI or null.
-     */
-    public @Nullable PendingIntent getSessionActivity() {
-        return mProvider.getSessionActivity_impl();
-    }
-
-    /**
-     * Get the lastly cached player state from
-     * {@link ControllerCallback#onPlayerStateChanged(MediaController2, int)}.
-     *
-     * @return player state
-     */
-    public int getPlayerState() {
-        return mProvider.getPlayerState_impl();
-    }
-
-    /**
-     * Gets the current playback position.
-     * <p>
-     * This returns the calculated value of the position, based on the difference between the
-     * update time and current time.
-     *
-     * @return position
-     */
-    public long getCurrentPosition() {
-        return mProvider.getCurrentPosition_impl();
-    }
-
-    /**
-     * Get the lastly cached playback speed from
-     * {@link ControllerCallback#onPlaybackSpeedChanged(MediaController2, float)}.
-     *
-     * @return speed
-     */
-    public float getPlaybackSpeed() {
-        return mProvider.getPlaybackSpeed_impl();
-    }
-
-    /**
-     * Set the playback speed.
-     */
-    public void setPlaybackSpeed(float speed) {
-        // TODO(jaewan): implement this (b/74093080)
-    }
-
-
-    /**
-     * Gets the current buffering state of the player.
-     * During buffering, see {@link #getBufferedPosition()} for the quantifying the amount already
-     * buffered.
-     * @return the buffering state.
-     */
-    public @MediaPlayerBase.BuffState int getBufferingState() {
-        // TODO(jaewan): Implement.
-        return BUFFERING_STATE_UNKNOWN;
-    }
-
-    /**
-     * Gets the lastly cached buffered position from the session when
-     * {@link ControllerCallback#onBufferingStateChanged(MediaController2, MediaItem2, int)} is
-     * called.
-     *
-     * @return buffering position in millis
-     */
-    public long getBufferedPosition() {
-        return mProvider.getBufferedPosition_impl();
-    }
-
-    /**
-     * Get the current playback info for this session.
-     *
-     * @return The current playback info or null.
-     */
-    public @Nullable PlaybackInfo getPlaybackInfo() {
-        return mProvider.getPlaybackInfo_impl();
-    }
-
-    /**
-     * Rate the media. This will cause the rating to be set for the current user.
-     * The rating style must follow the user rating style from the session.
-     * You can get the rating style from the session through the
-     * {@link MediaMetadata#getRating(String)} with the key
-     * {@link MediaMetadata#METADATA_KEY_USER_RATING}.
-     * <p>
-     * If the user rating was {@code null}, the media item does not accept setting user rating.
-     *
-     * @param mediaId The id of the media
-     * @param rating The rating to set
-     */
-    public void setRating(@NonNull String mediaId, @NonNull Rating2 rating) {
-        mProvider.setRating_impl(mediaId, rating);
-    }
-
-    /**
-     * Send custom command to the session
-     *
-     * @param command custom command
-     * @param args optional argument
-     * @param cb optional result receiver
-     */
-    public void sendCustomCommand(@NonNull SessionCommand2 command, @Nullable Bundle args,
-            @Nullable ResultReceiver cb) {
-        mProvider.sendCustomCommand_impl(command, args, cb);
-    }
-
-    /**
-     * Returns the cached playlist from
-     * {@link ControllerCallback#onPlaylistChanged(MediaController2, List, MediaMetadata2)}.
-     * <p>
-     * This list may differ with the list that was specified with
-     * {@link #setPlaylist(List, MediaMetadata2)} depending on the session implementation. Use media
-     * items returned here for other playlist APIs such as {@link #skipToPlaylistItem(MediaItem2)}.
-     *
-     * @return The playlist. Can be {@code null} if the controller doesn't have enough permission or
-     *         the session hasn't set any playlist.
-     */
-    public @Nullable List<MediaItem2> getPlaylist() {
-        return mProvider.getPlaylist_impl();
-    }
-
-    /**
-     * Sets the playlist.
-     * <p>
-     * Even when the playlist is successfully set, use the playlist returned from
-     * {@link #getPlaylist()} for playlist APIs such as {@link #skipToPlaylistItem(MediaItem2)}.
-     * Otherwise the session in the remote process can't distinguish between media items.
-     *
-     * @param list playlist
-     * @param metadata metadata of the playlist
-     * @see #getPlaylist()
-     * @see ControllerCallback#onPlaylistChanged(MediaController2, List, MediaMetadata2)
-     */
-    public void setPlaylist(@NonNull List<MediaItem2> list, @Nullable MediaMetadata2 metadata) {
-        mProvider.setPlaylist_impl(list, metadata);
-    }
-
-    /**
-     * Updates the playlist metadata
-     *
-     * @param metadata metadata of the playlist
-     */
-    public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) {
-        mProvider.updatePlaylistMetadata_impl(metadata);
-    }
-
-    /**
-     * Gets the lastly cached playlist playlist metadata either from
-     * {@link ControllerCallback#onPlaylistMetadataChanged(MediaController2,  MediaMetadata2)} or
-     * {@link ControllerCallback#onPlaylistChanged(MediaController2, List, MediaMetadata2)}.
-     *
-     * @return metadata metadata of the playlist, or null if none is set
-     */
-    public @Nullable MediaMetadata2 getPlaylistMetadata() {
-        return mProvider.getPlaylistMetadata_impl();
-    }
-
-
-    /**
-     * Adds the media item to the playlist at position index. Index equals or greater than
-     * the current playlist size will add the item at the end of the playlist.
-     * <p>
-     * This will not change the currently playing media item.
-     * If index is less than or equal to the current index of the playlist,
-     * the current index of the playlist will be incremented correspondingly.
-     *
-     * @param index the index you want to add
-     * @param item the media item you want to add
-     */
-    public void addPlaylistItem(int index, @NonNull MediaItem2 item) {
-        mProvider.addPlaylistItem_impl(index, item);
-    }
-
-    /**
-     * Removes the media item at index in the playlist.
-     *<p>
-     * If the item is the currently playing item of the playlist, current playback
-     * will be stopped and playback moves to next source in the list.
-     *
-     * @param item the media item you want to add
-     */
-    public void removePlaylistItem(@NonNull MediaItem2 item) {
-        mProvider.removePlaylistItem_impl(item);
-    }
-
-    /**
-     * Replace the media item at index in the playlist. This can be also used to update metadata of
-     * an item.
-     *
-     * @param index the index of the item to replace
-     * @param item the new item
-     */
-    public void replacePlaylistItem(int index, @NonNull MediaItem2 item) {
-        mProvider.replacePlaylistItem_impl(index, item);
-    }
-
-    /**
-     * Get the lastly cached current item from
-     * {@link ControllerCallback#onCurrentMediaItemChanged(MediaController2, MediaItem2)}.
-     *
-     * @return index of the current item
-     */
-    public MediaItem2 getCurrentMediaItem() {
-        return mProvider.getCurrentMediaItem_impl();
-    }
-
-    /**
-     * Skips to the previous item in the playlist.
-     * <p>
-     * This calls {@link MediaSession2#skipToPreviousItem()} if the session allows.
-     */
-     public void skipToPreviousItem() {
-         mProvider.skipToPreviousItem_impl();
-     }
-
-    /**
-     * Skips to the next item in the playlist.
-     * <p>
-     * This calls {@link MediaSession2#skipToNextItem()} if the session allows.
-     */
-    public void skipToNextItem() {
-        mProvider.skipToNextItem_impl();
-    }
-
-    /**
-     * Skips to the item in the playlist.
-     * <p>
-     * This calls {@link MediaSession2#skipToPlaylistItem(MediaItem2)} if the session allows.
-     *
-     * @param item The item in the playlist you want to play
-     */
-    public void skipToPlaylistItem(@NonNull MediaItem2 item) {
-        mProvider.skipToPlaylistItem_impl(item);
-    }
-
-    /**
-     * Gets the cached repeat mode from the {@link ControllerCallback#onRepeatModeChanged(
-     * MediaController2, int)}.
-     *
-     * @return repeat mode
-     * @see MediaPlaylistAgent#REPEAT_MODE_NONE
-     * @see MediaPlaylistAgent#REPEAT_MODE_ONE
-     * @see MediaPlaylistAgent#REPEAT_MODE_ALL
-     * @see MediaPlaylistAgent#REPEAT_MODE_GROUP
-     */
-    public @RepeatMode int getRepeatMode() {
-        return mProvider.getRepeatMode_impl();
-    }
-
-    /**
-     * Sets the repeat mode.
-     *
-     * @param repeatMode repeat mode
-     * @see MediaPlaylistAgent#REPEAT_MODE_NONE
-     * @see MediaPlaylistAgent#REPEAT_MODE_ONE
-     * @see MediaPlaylistAgent#REPEAT_MODE_ALL
-     * @see MediaPlaylistAgent#REPEAT_MODE_GROUP
-     */
-    public void setRepeatMode(@RepeatMode int repeatMode) {
-        mProvider.setRepeatMode_impl(repeatMode);
-    }
-
-    /**
-     * Gets the cached shuffle mode from the {@link ControllerCallback#onShuffleModeChanged(
-     * MediaController2, int)}.
-     *
-     * @return The shuffle mode
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_NONE
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_ALL
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_GROUP
-     */
-    public @ShuffleMode int getShuffleMode() {
-        return mProvider.getShuffleMode_impl();
-    }
-
-    /**
-     * Sets the shuffle mode.
-     *
-     * @param shuffleMode The shuffle mode
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_NONE
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_ALL
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_GROUP
-     */
-    public void setShuffleMode(@ShuffleMode int shuffleMode) {
-        mProvider.setShuffleMode_impl(shuffleMode);
-    }
-}
diff --git a/media/java/android/media/MediaExtractor.java b/media/java/android/media/MediaExtractor.java
index c203fa9..7785900 100644
--- a/media/java/android/media/MediaExtractor.java
+++ b/media/java/android/media/MediaExtractor.java
@@ -434,9 +434,12 @@
      */
     @NonNull
     public List<AudioPresentation> getAudioPresentations(int trackIndex) {
-        return new ArrayList<AudioPresentation>();
+        return native_getAudioPresentations(trackIndex);
     }
 
+    @NonNull
+    private native List<AudioPresentation> native_getAudioPresentations(int trackIndex);
+
     /**
      * Get the PSSH info if present.
      * @return a map of uuid-to-bytes, with the uuid specifying
diff --git a/media/java/android/media/MediaFormat.java b/media/java/android/media/MediaFormat.java
index 5dee16e..3d13c5f 100644
--- a/media/java/android/media/MediaFormat.java
+++ b/media/java/android/media/MediaFormat.java
@@ -17,20 +17,29 @@
 package android.media;
 
 import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.nio.ByteBuffer;
+import java.util.AbstractSet;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
- * Encapsulates the information describing the format of media data,
- * be it audio or video.
- *
- * The format of the media data is specified as string/value pairs.
- *
+ * Encapsulates the information describing the format of media data, be it audio or video, as
+ * well as optional feature metadata.
+ * <p>
+ * The format of the media data is specified as key/value pairs. Keys are strings. Values can
+ * be integer, long, float, String or ByteBuffer.
+ * <p>
+ * The feature metadata is specificed as string/boolean pairs.
+ * <p>
  * Keys common to all audio/video formats, <b>all keys not marked optional are mandatory</b>:
  *
  * <table>
@@ -138,6 +147,7 @@
     public static final String MIMETYPE_AUDIO_MSGSM = "audio/gsm";
     public static final String MIMETYPE_AUDIO_AC3 = "audio/ac3";
     public static final String MIMETYPE_AUDIO_EAC3 = "audio/eac3";
+    public static final String MIMETYPE_AUDIO_AC4 = "audio/ac4";
     public static final String MIMETYPE_AUDIO_SCRAMBLED = "audio/scrambled";
 
     /**
@@ -937,7 +947,6 @@
      */
     public static final String KEY_CA_SESSION_ID = "ca-session-id";
 
-
     /**
      * A key describing the private data in the CA_descriptor associated with a media track.
      * <p>
@@ -949,7 +958,7 @@
      */
     public static final String KEY_CA_PRIVATE_DATA = "ca-private-data";
 
-    /* package private */ MediaFormat(Map<String, Object> map) {
+    /* package private */ MediaFormat(@NonNull Map<String, Object> map) {
         mMap = map;
     }
 
@@ -968,11 +977,58 @@
     /**
      * Returns true iff a key of the given name exists in the format.
      */
-    public final boolean containsKey(String name) {
+    public final boolean containsKey(@NonNull String name) {
         return mMap.containsKey(name);
     }
 
     /**
+     * Returns true iff a feature of the given name exists in the format.
+     */
+    public final boolean containsFeature(@NonNull String name) {
+        return mMap.containsKey(KEY_FEATURE_ + name);
+    }
+
+    public static final int TYPE_NULL = 0;
+    public static final int TYPE_INTEGER = 1;
+    public static final int TYPE_LONG = 2;
+    public static final int TYPE_FLOAT = 3;
+    public static final int TYPE_STRING = 4;
+    public static final int TYPE_BYTE_BUFFER = 5;
+
+    /** @hide */
+    @IntDef({
+        TYPE_NULL,
+        TYPE_INTEGER,
+        TYPE_LONG,
+        TYPE_FLOAT,
+        TYPE_STRING,
+        TYPE_BYTE_BUFFER
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface Type {}
+
+    /**
+     * Returns the value type for a key. If the key does not exist, it returns TYPE_NULL.
+     */
+    public final @Type int getValueTypeForKey(@NonNull String name) {
+        Object value = mMap.get(name);
+        if (value == null) {
+            return TYPE_NULL;
+        } else if (value instanceof Integer) {
+            return TYPE_INTEGER;
+        } else if (value instanceof Long) {
+            return TYPE_LONG;
+        } else if (value instanceof Float) {
+            return TYPE_FLOAT;
+        } else if (value instanceof String) {
+            return TYPE_STRING;
+        } else if (value instanceof ByteBuffer) {
+            return TYPE_BYTE_BUFFER;
+        }
+        throw new RuntimeException("invalid value for key");
+    }
+
+    /**
      * A key prefix used together with a {@link MediaCodecInfo.CodecCapabilities}
      * feature name describing a required or optional feature for a codec capabilities
      * query.
@@ -988,55 +1044,153 @@
     public static final String KEY_FEATURE_ = "feature-";
 
     /**
-     * Returns the value of an integer key.
+     * Returns the value of a numeric key. This is provided as a convenience method for keys
+     * that may take multiple numeric types, such as {@link KEY_FRAME_RATE}, or {@link
+     * KEY_I_FRAME_INTERVAL}.
+     *
+     * @return null if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is ByteBuffer or String
      */
-    public final int getInteger(String name) {
+    public final @Nullable Number getNumber(@NonNull String name) {
+        return ((Number)mMap.get(name));
+    }
+
+    /**
+     * Returns the value of a numeric key, or the default value if the key is missing.
+     *
+     * @return defaultValue if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is ByteBuffer or String
+     */
+    public final @NonNull Number getNumber(@NonNull String name, @NonNull Number defaultValue) {
+        Number ret = getNumber(name);
+        return ret == null ? defaultValue : ret;
+    }
+
+    /**
+     * Returns the value of an integer key.
+     *
+     * @throw NullPointerException if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is long, float, ByteBuffer or
+     *        String
+     */
+    public final int getInteger(@NonNull String name) {
         return ((Integer)mMap.get(name)).intValue();
     }
 
     /**
-     * Returns the value of an integer key, or the default value if the
-     * key is missing or is for another type value.
-     * @hide
+     * Returns the value of an integer key, or the default value if the key is missing.
+     *
+     * @return defaultValue if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is long, float, ByteBuffer or
+     *        String
      */
-    public final int getInteger(String name, int defaultValue) {
+    public final int getInteger(@NonNull String name, int defaultValue) {
         try {
             return getInteger(name);
+        } catch (NullPointerException  e) {
+            /* no such field or field is null */
+            return defaultValue;
         }
-        catch (NullPointerException  e) { /* no such field */ }
-        catch (ClassCastException e) { /* field of different type */ }
-        return defaultValue;
     }
 
     /**
      * Returns the value of a long key.
+     *
+     * @throw NullPointerException if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is int, float, ByteBuffer or
+     *        String
      */
-    public final long getLong(String name) {
+    public final long getLong(@NonNull String name) {
         return ((Long)mMap.get(name)).longValue();
     }
 
     /**
-     * Returns the value of a float key.
+     * Returns the value of an long key, or the default value if the key is missing.
+     *
+     * @return defaultValue if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is int, float, ByteBuffer or
+     *        String
      */
-    public final float getFloat(String name) {
+    public final long getLong(@NonNull String name, long defaultValue) {
+        try {
+            return getLong(name);
+        } catch (NullPointerException  e) {
+            /* no such field or field is null */
+            return defaultValue;
+        }
+    }
+
+    /**
+     * Returns the value of a float key.
+     *
+     * @throw NullPointerException if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is int, long, ByteBuffer or
+     *        String
+     */
+    public final float getFloat(@NonNull String name) {
         return ((Float)mMap.get(name)).floatValue();
     }
 
     /**
-     * Returns the value of a string key.
+     * Returns the value of an float key, or the default value if the key is missing.
+     *
+     * @return defaultValue if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is int, long, ByteBuffer or
+     *        String
      */
-    public final String getString(String name) {
+    public final float getFloat(@NonNull String name, float defaultValue) {
+        try {
+            return getFloat(name);
+        } catch (NullPointerException  e) {
+            /* no such field or field is null */
+            return defaultValue;
+        }
+    }
+
+    /**
+     * Returns the value of a string key.
+     *
+     * @return null if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is int, long, float or ByteBuffer
+     */
+    public final @Nullable String getString(@NonNull String name) {
         return (String)mMap.get(name);
     }
 
     /**
-     * Returns the value of a ByteBuffer key.
+     * Returns the value of an string key, or the default value if the key is missing.
+     *
+     * @return defaultValue if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is int, long, float or ByteBuffer
      */
-    public final ByteBuffer getByteBuffer(String name) {
+    public final @NonNull String getString(@NonNull String name, @NonNull String defaultValue) {
+        String ret = getString(name);
+        return ret == null ? defaultValue : ret;
+    }
+
+    /**
+     * Returns the value of a ByteBuffer key.
+     *
+     * @return null if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is int, long, float or String
+     */
+    public final @Nullable ByteBuffer getByteBuffer(@NonNull String name) {
         return (ByteBuffer)mMap.get(name);
     }
 
     /**
+     * Returns the value of a ByteBuffer key, or the default value if the key is missing.
+     *
+     * @return defaultValue if the key does not exist or the stored value for the key is null
+     * @throw ClassCastException if the stored value for the key is int, long, float or String
+     */
+    public final @NonNull ByteBuffer getByteBuffer(
+            @NonNull String name, @NonNull ByteBuffer defaultValue) {
+        ByteBuffer ret = getByteBuffer(name);
+        return ret == null ? defaultValue : ret;
+    }
+
+    /**
      * Returns whether a feature is to be enabled ({@code true}) or disabled
      * ({@code false}).
      *
@@ -1045,7 +1199,7 @@
      * @throws IllegalArgumentException if the feature was neither set to be enabled
      *        nor to be disabled.
      */
-    public boolean getFeatureEnabled(String feature) {
+    public boolean getFeatureEnabled(@NonNull String feature) {
         Integer enabled = (Integer)mMap.get(KEY_FEATURE_ + feature);
         if (enabled == null) {
             throw new IllegalArgumentException("feature is not specified");
@@ -1056,39 +1210,239 @@
     /**
      * Sets the value of an integer key.
      */
-    public final void setInteger(String name, int value) {
+    public final void setInteger(@NonNull String name, int value) {
         mMap.put(name, Integer.valueOf(value));
     }
 
     /**
      * Sets the value of a long key.
      */
-    public final void setLong(String name, long value) {
+    public final void setLong(@NonNull String name, long value) {
         mMap.put(name, Long.valueOf(value));
     }
 
     /**
      * Sets the value of a float key.
      */
-    public final void setFloat(String name, float value) {
+    public final void setFloat(@NonNull String name, float value) {
         mMap.put(name, new Float(value));
     }
 
     /**
      * Sets the value of a string key.
+     * <p>
+     * If value is {@code null}, it sets a null value that behaves similarly to a missing key.
+     * This could be used prior to API level {@link android os.Build.VERSION_CODES#Q} to effectively
+     * remove a key.
      */
-    public final void setString(String name, String value) {
+    public final void setString(@NonNull String name, @Nullable String value) {
         mMap.put(name, value);
     }
 
     /**
      * Sets the value of a ByteBuffer key.
+     * <p>
+     * If value is {@code null}, it sets a null value that behaves similarly to a missing key.
+     * This could be used prior to API level {@link android os.Build.VERSION_CODES#Q} to effectively
+     * remove a key.
      */
-    public final void setByteBuffer(String name, ByteBuffer bytes) {
+    public final void setByteBuffer(@NonNull String name, @Nullable ByteBuffer bytes) {
         mMap.put(name, bytes);
     }
 
     /**
+     * Removes a value of a given key if present. Has no effect if the key is not present.
+     */
+    public final void removeKey(@NonNull String name) {
+        // exclude feature mappings
+        if (!name.startsWith(KEY_FEATURE_)) {
+            mMap.remove(name);
+        }
+    }
+
+    /**
+     * Removes a given feature setting if present. Has no effect if the feature setting is not
+     * present.
+     */
+    public final void removeFeature(@NonNull String name) {
+        mMap.remove(KEY_FEATURE_ + name);
+    }
+
+    /**
+     * A Partial set view for a portion of the keys in a MediaFormat object.
+     *
+     * This class is needed as we want to return a portion of the actual format keys in getKeys()
+     * and another portion of the keys in getFeatures(), and still allow the view properties.
+     */
+    private abstract class FilteredMappedKeySet extends AbstractSet<String> {
+        private Set<String> mKeys;
+
+        // Returns true if this set should include this key
+        abstract protected boolean keepKey(String key);
+
+        // Maps a key from the underlying key set into its new value in this key set
+        abstract protected String mapKeyToItem(String key);
+
+        // Maps a key from this key set into its original value in the underlying key set
+        abstract protected String mapItemToKey(String item);
+
+        public FilteredMappedKeySet() {
+            mKeys = mMap.keySet();
+        }
+
+        // speed up contains and remove from abstract implementation (that would iterate
+        // over each element)
+        @Override
+        public boolean contains(Object o) {
+            if (o instanceof String) {
+                String key = mapItemToKey((String)o);
+                return keepKey(key) && mKeys.contains(key);
+            }
+            return false;
+        }
+
+        @Override
+        public boolean remove(Object o) {
+            if (o instanceof String) {
+                String key = mapItemToKey((String)o);
+                if (keepKey(key) && mKeys.remove(key)) {
+                    mMap.remove(key);
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        private class KeyIterator implements Iterator<String> {
+            Iterator<String> mIterator;
+            String mLast;
+
+            public KeyIterator() {
+                // We must create a copy of the filtered stream, as remove operation has to modify
+                // the underlying data structure (mMap), so the iterator's operation is undefined.
+                // Use a list as it is likely less memory consuming than the other alternative: set.
+                mIterator =
+                    mKeys.stream().filter(k -> keepKey(k)).collect(Collectors.toList()).iterator();
+            }
+
+            @Override
+            public boolean hasNext() {
+                return mIterator.hasNext();
+            }
+
+            @Override
+            public String next() {
+                mLast = mIterator.next();
+                return mapKeyToItem(mLast);
+            }
+
+            @Override
+            public void remove() {
+                mIterator.remove();
+                mMap.remove(mLast);
+            }
+        }
+
+        @Override
+        public Iterator<String> iterator() {
+            return new KeyIterator();
+        }
+
+        @Override
+        public int size() {
+            return (int)mKeys.stream().filter(k -> keepKey(k)).count();
+        }
+    }
+
+    /**
+     * A Partial set view for a portion of the keys in a MediaFormat object for keys that
+     * don't start with a prefix, such as "feature-"
+     */
+    private class UnprefixedKeySet extends FilteredMappedKeySet {
+        private String mPrefix;
+
+        public UnprefixedKeySet(String prefix) {
+            super();
+            mPrefix = prefix;
+        }
+
+        protected boolean keepKey(String key) {
+            return !key.startsWith(mPrefix);
+        }
+
+        protected String mapKeyToItem(String key) {
+            return key;
+        }
+
+        protected String mapItemToKey(String item) {
+            return item;
+        }
+    }
+
+    /**
+     * A Partial set view for a portion of the keys in a MediaFormat object for keys that
+     * start with a prefix, such as "feature-", with the prefix removed
+     */
+    private class PrefixedKeySetWithPrefixRemoved extends FilteredMappedKeySet {
+        private String mPrefix;
+        private int mPrefixLength;
+
+        public PrefixedKeySetWithPrefixRemoved(String prefix) {
+            super();
+            mPrefix = prefix;
+            mPrefixLength = prefix.length();
+        }
+
+        protected boolean keepKey(String key) {
+            return key.startsWith(mPrefix);
+        }
+
+        protected String mapKeyToItem(String key) {
+            return key.substring(mPrefixLength);
+        }
+
+        protected String mapItemToKey(String item) {
+            return mPrefix + item;
+        }
+    }
+
+
+   /**
+     * Returns a {@link java.util.Set Set} view of the keys contained in this MediaFormat.
+     *
+     * The set is backed by the MediaFormat object, so changes to the format are reflected in the
+     * set, and vice-versa. If the format is modified while an iteration over the set is in progress
+     * (except through the iterator's own remove operation), the results of the iteration are
+     * undefined. The set supports element removal, which removes the corresponding mapping from the
+     * format, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations.
+     * It does not support the add or addAll operations.
+     */
+    public final @NonNull java.util.Set<String> getKeys() {
+        return new UnprefixedKeySet(KEY_FEATURE_);
+    }
+
+   /**
+     * Returns a {@link java.util.Set Set} view of the features contained in this MediaFormat.
+     *
+     * The set is backed by the MediaFormat object, so changes to the format are reflected in the
+     * set, and vice-versa. If the format is modified while an iteration over the set is in progress
+     * (except through the iterator's own remove operation), the results of the iteration are
+     * undefined. The set supports element removal, which removes the corresponding mapping from the
+     * format, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations.
+     * It does not support the add or addAll operations.
+     */
+    public final @NonNull java.util.Set<String> getFeatures() {
+        return new PrefixedKeySetWithPrefixRemoved(KEY_FEATURE_);
+    }
+
+    /**
+     * Create a copy of a media format object.
+     */
+    public MediaFormat(@NonNull MediaFormat other) {
+        mMap.putAll(other.mMap);
+    }
+
+    /**
      * Sets whether a feature is to be enabled ({@code true}) or disabled
      * ({@code false}).
      *
@@ -1101,7 +1455,7 @@
      * @see MediaCodecList#findEncoderForFormat
      * @see MediaCodecInfo.CodecCapabilities#isFormatSupported
      */
-    public void setFeatureEnabled(String feature, boolean enabled) {
+    public void setFeatureEnabled(@NonNull String feature, boolean enabled) {
         setInteger(KEY_FEATURE_ + feature, enabled ? 1 : 0);
     }
 
@@ -1111,8 +1465,8 @@
      * @param sampleRate The sampling rate of the content.
      * @param channelCount The number of audio channels in the content.
      */
-    public static final MediaFormat createAudioFormat(
-            String mime,
+    public static final @NonNull MediaFormat createAudioFormat(
+            @NonNull String mime,
             int sampleRate,
             int channelCount) {
         MediaFormat format = new MediaFormat();
@@ -1131,8 +1485,8 @@
      *        in the content.  (This will also work if there are multiple language
      *        tracks in the content.)
      */
-    public static final MediaFormat createSubtitleFormat(
-            String mime,
+    public static final @NonNull MediaFormat createSubtitleFormat(
+            @NonNull String mime,
             String language) {
         MediaFormat format = new MediaFormat();
         format.setString(KEY_MIME, mime);
@@ -1147,8 +1501,8 @@
      * @param width The width of the content (in pixels)
      * @param height The height of the content (in pixels)
      */
-    public static final MediaFormat createVideoFormat(
-            String mime,
+    public static final @NonNull MediaFormat createVideoFormat(
+            @NonNull String mime,
             int width,
             int height) {
         MediaFormat format = new MediaFormat();
@@ -1160,7 +1514,7 @@
     }
 
     @Override
-    public String toString() {
+    public @NonNull String toString() {
         return mMap.toString();
     }
 }
diff --git a/media/java/android/media/MediaItem2.java b/media/java/android/media/MediaItem2.java
deleted file mode 100644
index 423a1fd..0000000
--- a/media/java/android/media/MediaItem2.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.media.update.ApiLoader;
-import android.media.update.MediaItem2Provider;
-import android.os.Bundle;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * @hide
- * A class with information on a single media item with the metadata information.
- * Media item are application dependent so we cannot guarantee that they contain the right values.
- * <p>
- * When it's sent to a controller or browser, it's anonymized and data descriptor wouldn't be sent.
- * <p>
- * This object isn't a thread safe.
- */
-public class MediaItem2 {
-    /** @hide */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef(flag=true, value = { FLAG_BROWSABLE, FLAG_PLAYABLE })
-    public @interface Flags { }
-
-    /**
-     * Flag: Indicates that the item has children of its own.
-     */
-    public static final int FLAG_BROWSABLE = 1 << 0;
-
-    /**
-     * Flag: Indicates that the item is playable.
-     * <p>
-     * The id of this item may be passed to
-     * {@link MediaController2#playFromMediaId(String, Bundle)}
-     */
-    public static final int FLAG_PLAYABLE = 1 << 1;
-
-    private final MediaItem2Provider mProvider;
-
-    /**
-     * Create a new media item
-     * @hide
-     */
-    public MediaItem2(MediaItem2Provider provider) {
-        mProvider = provider;
-    }
-
-    /**
-     * @hide
-     */
-    public MediaItem2Provider getProvider() {
-        return mProvider;
-    }
-
-    /**
-     * Return this object as a bundle to share between processes.
-     *
-     * @return a new bundle instance
-     */
-    public Bundle toBundle() {
-        return mProvider.toBundle_impl();
-    }
-
-    public static MediaItem2 fromBundle(Bundle bundle) {
-        return ApiLoader.getProvider().fromBundle_MediaItem2(bundle);
-    }
-
-    public String toString() {
-        return mProvider.toString_impl();
-    }
-
-    /**
-     * Gets the flags of the item.
-     */
-    public @Flags int getFlags() {
-        return mProvider.getFlags_impl();
-    }
-
-    /**
-     * Returns whether this item is browsable.
-     * @see #FLAG_BROWSABLE
-     */
-    public boolean isBrowsable() {
-        return mProvider.isBrowsable_impl();
-    }
-
-    /**
-     * Returns whether this item is playable.
-     * @see #FLAG_PLAYABLE
-     */
-    public boolean isPlayable() {
-        return mProvider.isPlayable_impl();
-    }
-
-    /**
-     * Set a metadata. If the metadata is not null, its id should be matched with this instance's
-     * media id.
-     *
-     * @param metadata metadata to update
-     */
-    public void setMetadata(@Nullable MediaMetadata2 metadata) {
-        mProvider.setMetadata_impl(metadata);
-    }
-
-    /**
-     * Returns the metadata of the media.
-     */
-    public @Nullable MediaMetadata2 getMetadata() {
-        return mProvider.getMetadata_impl();
-    }
-
-    /**
-     * Returns the media id for this item.
-     */
-    public @NonNull String getMediaId() {
-        return mProvider.getMediaId_impl();
-    }
-
-    /**
-     * Return the {@link DataSourceDesc}
-     * <p>
-     * Can be {@code null} if the MediaItem2 came from another process and anonymized
-     *
-     * @return data source descriptor
-     */
-    public @Nullable DataSourceDesc getDataSourceDesc() {
-        return mProvider.getDataSourceDesc_impl();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        return mProvider.equals_impl(obj);
-    }
-
-    /**
-     * Build {@link MediaItem2}
-     */
-    public static final class Builder {
-        private final MediaItem2Provider.BuilderProvider mProvider;
-
-        /**
-         * Constructor for {@link Builder}
-         *
-         * @param flags
-         */
-        public Builder(@Flags int flags) {
-            mProvider = ApiLoader.getProvider().createMediaItem2Builder(this, flags);
-        }
-
-        /**
-         * Set the media id of this instance. {@code null} for unset.
-         * <p>
-         * Media id is used to identify a media contents between session and controller.
-         * <p>
-         * If the metadata is set with the {@link #setMetadata(MediaMetadata2)} and it has
-         * media id, id from {@link #setMediaId(String)} will be ignored and metadata's id will be
-         * used instead. If the id isn't set neither by {@link #setMediaId(String)} nor
-         * {@link #setMetadata(MediaMetadata2)}, id will be automatically generated.
-         *
-         * @param mediaId media id
-         * @return this instance for chaining
-         */
-        public Builder setMediaId(@Nullable String mediaId) {
-            return mProvider.setMediaId_impl(mediaId);
-        }
-
-        /**
-         * Set the metadata of this instance. {@code null} for unset.
-         * <p>
-         * If the metadata is set with the {@link #setMetadata(MediaMetadata2)} and it has
-         * media id, id from {@link #setMediaId(String)} will be ignored and metadata's id will be
-         * used instead. If the id isn't set neither by {@link #setMediaId(String)} nor
-         * {@link #setMetadata(MediaMetadata2)}, id will be automatically generated.
-         *
-         * @param metadata metadata
-         * @return this instance for chaining
-         */
-        public Builder setMetadata(@Nullable MediaMetadata2 metadata) {
-            return mProvider.setMetadata_impl(metadata);
-        }
-
-        /**
-         * Set the data source descriptor for this instance. {@code null} for unset.
-         *
-         * @param dataSourceDesc data source descriptor
-         * @return this instance for chaining
-         */
-        public Builder setDataSourceDesc(@Nullable DataSourceDesc dataSourceDesc) {
-            return mProvider.setDataSourceDesc_impl(dataSourceDesc);
-        }
-
-        /**
-         * Build {@link MediaItem2}.
-         *
-         * @return a new {@link MediaItem2}.
-         */
-        public MediaItem2 build() {
-            return mProvider.build_impl();
-        }
-    }
-}
diff --git a/media/java/android/media/MediaMetadata2.java b/media/java/android/media/MediaMetadata2.java
deleted file mode 100644
index 7b03ae0..0000000
--- a/media/java/android/media/MediaMetadata2.java
+++ /dev/null
@@ -1,854 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.annotation.StringDef;
-import android.graphics.Bitmap;
-import android.media.update.ApiLoader;
-import android.media.update.MediaMetadata2Provider;
-import android.net.Uri;
-import android.os.Bundle;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.Set;
-
-/**
- * @hide
- * Contains metadata about an item, such as the title, artist, etc.
- */
-// New version of MediaMetadata with following changes
-//   - Don't implement Parcelable for updatable support.
-//   - Also support MediaDescription features. MediaDescription is deprecated instead because
-//     it was insufficient for controller to display media contents.
-public final class MediaMetadata2 {
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the title of the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the artist of the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
-
-    /**
-     * The metadata key for a {@link Long} typed value to retrieve the information about the
-     * duration of the media in ms. A negative duration indicates that the duration is unknown
-     * (or infinite).
-     *
-     * @see Builder#putLong(String, long)
-     * @see #getLong(String)
-     */
-    public static final String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the album title for the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the author of the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the writer of the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the composer of the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the compilation status of the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the date the media was created or published.
-     * The format is unspecified but RFC 3339 is recommended.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_DATE = "android.media.metadata.DATE";
-
-    /**
-     * The metadata key for a {@link Long} typed value to retrieve the information about the year
-     * the media was created or published.
-     *
-     * @see Builder#putLong(String, long)
-     * @see #getLong(String)
-     */
-    public static final String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the genre of the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
-
-    /**
-     * The metadata key for a {@link Long} typed value to retrieve the information about the
-     * track number for the media.
-     *
-     * @see Builder#putLong(String, long)
-     * @see #getLong(String)
-     */
-    public static final String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
-
-    /**
-     * The metadata key for a {@link Long} typed value to retrieve the information about the
-     * number of tracks in the media's original source.
-     *
-     * @see Builder#putLong(String, long)
-     * @see #getLong(String)
-     */
-    public static final String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
-
-    /**
-     * The metadata key for a {@link Long} typed value to retrieve the information about the
-     * disc number for the media's original source.
-     *
-     * @see Builder#putLong(String, long)
-     * @see #getLong(String)
-     */
-    public static final String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the artist for the album of the media's original source.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
-
-    /**
-     * The metadata key for a {@link Bitmap} typed value to retrieve the information about the
-     * artwork for the media.
-     * The artwork should be relatively small and may be scaled down if it is too large.
-     * For higher resolution artwork, {@link #METADATA_KEY_ART_URI} should be used instead.
-     *
-     * @see Builder#putBitmap(String, Bitmap)
-     * @see #getBitmap(String)
-     */
-    public static final String METADATA_KEY_ART = "android.media.metadata.ART";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about Uri of the artwork for the media.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
-
-    /**
-     * The metadata key for a {@link Bitmap} typed value to retrieve the information about the
-     * artwork for the album of the media's original source.
-     * The artwork should be relatively small and may be scaled down if it is too large.
-     * For higher resolution artwork, {@link #METADATA_KEY_ALBUM_ART_URI} should be used instead.
-     *
-     * @see Builder#putBitmap(String, Bitmap)
-     * @see #getBitmap(String)
-     */
-    public static final String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the Uri of the artwork for the album of the media's original source.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
-
-    /**
-     * The metadata key for a {@link Rating2} typed value to retrieve the information about the
-     * user's rating for the media.
-     *
-     * @see Builder#putRating(String, Rating2)
-     * @see #getRating(String)
-     */
-    public static final String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
-
-    /**
-     * The metadata key for a {@link Rating2} typed value to retrieve the information about the
-     * overall rating for the media.
-     *
-     * @see Builder#putRating(String, Rating2)
-     * @see #getRating(String)
-     */
-    public static final String METADATA_KEY_RATING = "android.media.metadata.RATING";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the title that is suitable for display to the user.
-     * It will generally be the same as {@link #METADATA_KEY_TITLE} but may differ for some formats.
-     * When displaying media described by this metadata, this should be preferred if present.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the subtitle that is suitable for display to the user.
-     * When displaying a second line for media described by this metadata, this should be preferred
-     * to other fields if present.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_DISPLAY_SUBTITLE
-            = "android.media.metadata.DISPLAY_SUBTITLE";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the description that is suitable for display to the user.
-     * When displaying more information for media described by this metadata,
-     * this should be preferred to other fields if present.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_DISPLAY_DESCRIPTION
-            = "android.media.metadata.DISPLAY_DESCRIPTION";
-
-    /**
-     * The metadata key for a {@link Bitmap} typed value to retrieve the information about the icon
-     * or thumbnail that is suitable for display to the user.
-     * When displaying an icon for media described by this metadata, this should be preferred to
-     * other fields if present.
-     * <p>
-     * The icon should be relatively small and may be scaled down if it is too large.
-     * For higher resolution artwork, {@link #METADATA_KEY_DISPLAY_ICON_URI} should be used instead.
-     *
-     * @see Builder#putBitmap(String, Bitmap)
-     * @see #getBitmap(String)
-     */
-    public static final String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the Uri of icon or thumbnail that is suitable for display to the user.
-     * When displaying more information for media described by this metadata, the
-     * display description should be preferred to other fields when present.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_DISPLAY_ICON_URI
-            = "android.media.metadata.DISPLAY_ICON_URI";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the media ID of the content. This value is specific to the
-     * service providing the content. If used, this should be a persistent
-     * unique key for the underlying content.  It may be used with
-     * {@link MediaController2#playFromMediaId(String, Bundle)}
-     * to initiate playback when provided by a {@link MediaBrowser2} connected to
-     * the same app.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
-
-    /**
-     * The metadata key for a {@link CharSequence} or {@link String} typed value to retrieve the
-     * information about the Uri of the content. This value is specific to the service providing the
-     * content. It may be used with {@link MediaController2#playFromUri(Uri, Bundle)}
-     * to initiate playback when provided by a {@link MediaBrowser2} connected to the same app.
-     *
-     * @see Builder#putText(String, CharSequence)
-     * @see Builder#putString(String, String)
-     * @see #getText(String)
-     * @see #getString(String)
-     */
-    public static final String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
-
-    /**
-     * The metadata key for a {@link Long} typed value to retrieve the information about the
-     * bluetooth folder type of the media specified in the section 6.10.2.2 of the Bluetooth
-     * AVRCP 1.5. It should be one of the following:
-     * <ul>
-     * <li>{@link #BT_FOLDER_TYPE_MIXED}</li>
-     * <li>{@link #BT_FOLDER_TYPE_TITLES}</li>
-     * <li>{@link #BT_FOLDER_TYPE_ALBUMS}</li>
-     * <li>{@link #BT_FOLDER_TYPE_ARTISTS}</li>
-     * <li>{@link #BT_FOLDER_TYPE_GENRES}</li>
-     * <li>{@link #BT_FOLDER_TYPE_PLAYLISTS}</li>
-     * <li>{@link #BT_FOLDER_TYPE_YEARS}</li>
-     * </ul>
-     *
-     * @see Builder#putLong(String, long)
-     * @see #getLong(String)
-     */
-    public static final String METADATA_KEY_BT_FOLDER_TYPE
-            = "android.media.metadata.BT_FOLDER_TYPE";
-
-    /**
-     * The type of folder that is unknown or contains media elements of mixed types as specified in
-     * the section 6.10.2.2 of the Bluetooth AVRCP 1.5.
-     */
-    public static final long BT_FOLDER_TYPE_MIXED = 0;
-
-    /**
-     * The type of folder that contains media elements only as specified in the section 6.10.2.2 of
-     * the Bluetooth AVRCP 1.5.
-     */
-    public static final long BT_FOLDER_TYPE_TITLES = 1;
-
-    /**
-     * The type of folder that contains folders categorized by album as specified in the section
-     * 6.10.2.2 of the Bluetooth AVRCP 1.5.
-     */
-    public static final long BT_FOLDER_TYPE_ALBUMS = 2;
-
-    /**
-     * The type of folder that contains folders categorized by artist as specified in the section
-     * 6.10.2.2 of the Bluetooth AVRCP 1.5.
-     */
-    public static final long BT_FOLDER_TYPE_ARTISTS = 3;
-
-    /**
-     * The type of folder that contains folders categorized by genre as specified in the section
-     * 6.10.2.2 of the Bluetooth AVRCP 1.5.
-     */
-    public static final long BT_FOLDER_TYPE_GENRES = 4;
-
-    /**
-     * The type of folder that contains folders categorized by playlist as specified in the section
-     * 6.10.2.2 of the Bluetooth AVRCP 1.5.
-     */
-    public static final long BT_FOLDER_TYPE_PLAYLISTS = 5;
-
-    /**
-     * The type of folder that contains folders categorized by year as specified in the section
-     * 6.10.2.2 of the Bluetooth AVRCP 1.5.
-     */
-    public static final long BT_FOLDER_TYPE_YEARS = 6;
-
-    /**
-     * The metadata key for a {@link Long} typed value to retrieve the information about whether
-     * the media is an advertisement. A value of 0 indicates it is not an advertisement.
-     * A value of 1 or non-zero indicates it is an advertisement.
-     * If not specified, this value is set to 0 by default.
-     *
-     * @see Builder#putLong(String, long)
-     * @see #getLong(String)
-     */
-    public static final String METADATA_KEY_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT";
-
-    /**
-     * The metadata key for a {@link Long} typed value to retrieve the information about the
-     * download status of the media which will be used for later offline playback. It should be
-     * one of the following:
-     *
-     * <ul>
-     * <li>{@link #STATUS_NOT_DOWNLOADED}</li>
-     * <li>{@link #STATUS_DOWNLOADING}</li>
-     * <li>{@link #STATUS_DOWNLOADED}</li>
-     * </ul>
-     *
-     * @see Builder#putLong(String, long)
-     * @see #getLong(String)
-     */
-    public static final String METADATA_KEY_DOWNLOAD_STATUS =
-            "android.media.metadata.DOWNLOAD_STATUS";
-
-    /**
-     * The status value to indicate the media item is not downloaded.
-     *
-     * @see #METADATA_KEY_DOWNLOAD_STATUS
-     */
-    public static final long STATUS_NOT_DOWNLOADED = 0;
-
-    /**
-     * The status value to indicate the media item is being downloaded.
-     *
-     * @see #METADATA_KEY_DOWNLOAD_STATUS
-     */
-    public static final long STATUS_DOWNLOADING = 1;
-
-    /**
-     * The status value to indicate the media item is downloaded for later offline playback.
-     *
-     * @see #METADATA_KEY_DOWNLOAD_STATUS
-     */
-    public static final long STATUS_DOWNLOADED = 2;
-
-    /**
-     * A {@link Bundle} extra.
-     */
-    public static final String METADATA_KEY_EXTRAS = "android.media.metadata.EXTRAS";
-
-    /**
-     * @hide
-     */
-    @StringDef({METADATA_KEY_TITLE, METADATA_KEY_ARTIST, METADATA_KEY_ALBUM, METADATA_KEY_AUTHOR,
-            METADATA_KEY_WRITER, METADATA_KEY_COMPOSER, METADATA_KEY_COMPILATION,
-            METADATA_KEY_DATE, METADATA_KEY_GENRE, METADATA_KEY_ALBUM_ARTIST, METADATA_KEY_ART_URI,
-            METADATA_KEY_ALBUM_ART_URI, METADATA_KEY_DISPLAY_TITLE, METADATA_KEY_DISPLAY_SUBTITLE,
-            METADATA_KEY_DISPLAY_DESCRIPTION, METADATA_KEY_DISPLAY_ICON_URI,
-            METADATA_KEY_MEDIA_ID, METADATA_KEY_MEDIA_URI})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface TextKey {}
-
-    /**
-     * @hide
-     */
-    @StringDef({METADATA_KEY_DURATION, METADATA_KEY_YEAR, METADATA_KEY_TRACK_NUMBER,
-            METADATA_KEY_NUM_TRACKS, METADATA_KEY_DISC_NUMBER, METADATA_KEY_BT_FOLDER_TYPE,
-            METADATA_KEY_ADVERTISEMENT, METADATA_KEY_DOWNLOAD_STATUS})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface LongKey {}
-
-    /**
-     * @hide
-     */
-    @StringDef({METADATA_KEY_ART, METADATA_KEY_ALBUM_ART, METADATA_KEY_DISPLAY_ICON})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface BitmapKey {}
-
-    /**
-     * @hide
-     */
-    @StringDef({METADATA_KEY_USER_RATING, METADATA_KEY_RATING})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface RatingKey {}
-
-    /**
-     * @hide
-     */
-    // TODO(jaewan): Add predefined float key.
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface FloatKey {}
-
-    private final MediaMetadata2Provider mProvider;
-
-    /**
-     * @hide
-     */
-    public MediaMetadata2(MediaMetadata2Provider provider) {
-        mProvider = provider;
-    }
-
-    /**
-     * Returns true if the given key is contained in the metadata
-     *
-     * @param key a String key
-     * @return true if the key exists in this metadata, false otherwise
-     */
-    public boolean containsKey(@NonNull String key) {
-        return mProvider.containsKey_impl(key);
-    }
-
-    /**
-     * Returns the value associated with the given key, or null if no mapping of
-     * the desired type exists for the given key or a null value is explicitly
-     * associated with the key.
-     *
-     * @param key The key the value is stored under
-     * @return a CharSequence value, or null
-     */
-    public @Nullable CharSequence getText(@NonNull @TextKey String key) {
-        return mProvider.getText_impl(key);
-    }
-
-    /**
-     * Returns the media id, or {@code null} if the id doesn't exist.
-     *<p>
-     * This is equivalent to the {@link #getString(String)} with the {@link #METADATA_KEY_MEDIA_ID}.
-     *
-     * @return media id. Can be {@code null}
-     * @see #METADATA_KEY_MEDIA_ID
-     */
-    public @Nullable String getMediaId() {
-        return mProvider.getMediaId_impl();
-    }
-
-    /**
-     * Returns the value associated with the given key, or null if no mapping of
-     * the desired type exists for the given key or a null value is explicitly
-     * associated with the key.
-     *
-     * @param key The key the value is stored under
-     * @return a String value, or null
-     */
-    public @Nullable String getString(@NonNull @TextKey String key) {
-        return mProvider.getString_impl(key);
-    }
-
-    /**
-     * Returns the value associated with the given key, or 0L if no long exists
-     * for the given key.
-     *
-     * @param key The key the value is stored under
-     * @return a long value
-     */
-    public long getLong(@NonNull @LongKey String key) {
-        return mProvider.getLong_impl(key);
-    }
-
-    /**
-     * Return a {@link Rating2} for the given key or null if no rating exists for
-     * the given key.
-     * <p>
-     * For the {@link #METADATA_KEY_USER_RATING}, A {@code null} return value means that user rating
-     * cannot be set by {@link MediaController2}.
-     *
-     * @param key The key the value is stored under
-     * @return A {@link Rating2} or {@code null}
-     */
-    public @Nullable Rating2 getRating(@NonNull @RatingKey String key) {
-        return mProvider.getRating_impl(key);
-    }
-
-    /**
-     * Return a {@link Bitmap} for the given key or null if no bitmap exists for
-     * the given key.
-     *
-     * @param key The key the value is stored under
-     * @return A {@link Bitmap} or null
-     */
-    public @Nullable Bitmap getBitmap(@NonNull @BitmapKey String key) {
-        return mProvider.getBitmap_impl(key);
-    }
-
-    /**
-     * Return the value associated with the given key, or 0.0f if no long exists
-     * for the given key.
-     *
-     * @param key The key the value is stored under
-     * @return a float value
-     */
-    public float getFloat(@NonNull @FloatKey String key) {
-        return mProvider.getFloat_impl(key);
-    }
-
-    /**
-     * Get the extra {@link Bundle} from the metadata object.
-     *
-     * @return A {@link Bundle} or {@code null}
-     */
-    public @Nullable Bundle getExtras() {
-        return mProvider.getExtras_impl();
-    }
-
-    /**
-     * Get the number of fields in this metadata.
-     *
-     * @return The number of fields in the metadata.
-     */
-    public int size() {
-        return mProvider.size_impl();
-    }
-
-    /**
-     * Returns a Set containing the Strings used as keys in this metadata.
-     *
-     * @return a Set of String keys
-     */
-    public @NonNull Set<String> keySet() {
-        return mProvider.keySet_impl();
-    }
-
-    /**
-     * Gets the bundle backing the metadata object. This is available to support
-     * backwards compatibility. Apps should not modify the bundle directly.
-     *
-     * @return The Bundle backing this metadata.
-     */
-    public @NonNull Bundle toBundle() {
-        return mProvider.toBundle_impl();
-    }
-
-    /**
-     * Creates the {@link MediaMetadata2} from the bundle that previously returned by
-     * {@link #toBundle()}.
-     *
-     * @param bundle bundle for the metadata
-     * @return a new MediaMetadata2
-     */
-    public static @NonNull MediaMetadata2 fromBundle(@Nullable Bundle bundle) {
-        return ApiLoader.getProvider().fromBundle_MediaMetadata2(bundle);
-    }
-
-    /**
-     * Use to build MediaMetadata2 objects. The system defined metadata keys must
-     * use the appropriate data type.
-     */
-    public static final class Builder {
-        private final MediaMetadata2Provider.BuilderProvider mProvider;
-
-        /**
-         * Create an empty Builder. Any field that should be included in the
-         * {@link MediaMetadata2} must be added.
-         */
-        public Builder() {
-            mProvider = ApiLoader.getProvider().createMediaMetadata2Builder(this);
-        }
-
-        /**
-         * Create a Builder using a {@link MediaMetadata2} instance to set the
-         * initial values. All fields in the source metadata will be included in
-         * the new metadata. Fields can be overwritten by adding the same key.
-         *
-         * @param source
-         */
-        public Builder(@NonNull MediaMetadata2 source) {
-            mProvider = ApiLoader.getProvider().createMediaMetadata2Builder(this, source);
-        }
-
-        /**
-         * @hide
-         */
-        public Builder(@NonNull MediaMetadata2Provider.BuilderProvider provider) {
-            mProvider = provider;
-        }
-
-        /**
-         * Put a CharSequence value into the metadata. Custom keys may be used,
-         * but if the METADATA_KEYs defined in this class are used they may only
-         * be one of the following:
-         * <ul>
-         * <li>{@link #METADATA_KEY_TITLE}</li>
-         * <li>{@link #METADATA_KEY_ARTIST}</li>
-         * <li>{@link #METADATA_KEY_ALBUM}</li>
-         * <li>{@link #METADATA_KEY_AUTHOR}</li>
-         * <li>{@link #METADATA_KEY_WRITER}</li>
-         * <li>{@link #METADATA_KEY_COMPOSER}</li>
-         * <li>{@link #METADATA_KEY_DATE}</li>
-         * <li>{@link #METADATA_KEY_GENRE}</li>
-         * <li>{@link #METADATA_KEY_ALBUM_ARTIST}</li>
-         * <li>{@link #METADATA_KEY_ART_URI}</li>
-         * <li>{@link #METADATA_KEY_ALBUM_ART_URI}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_TITLE}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_SUBTITLE}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_DESCRIPTION}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_ICON_URI}</li>
-         * </ul>
-         *
-         * @param key The key for referencing this value
-         * @param value The CharSequence value to store
-         * @return The Builder to allow chaining
-         */
-        public @NonNull Builder putText(@NonNull @TextKey String key,
-                @Nullable CharSequence value) {
-            return mProvider.putText_impl(key, value);
-        }
-
-        /**
-         * Put a String value into the metadata. Custom keys may be used, but if
-         * the METADATA_KEYs defined in this class are used they may only be one
-         * of the following:
-         * <ul>
-         * <li>{@link #METADATA_KEY_TITLE}</li>
-         * <li>{@link #METADATA_KEY_ARTIST}</li>
-         * <li>{@link #METADATA_KEY_ALBUM}</li>
-         * <li>{@link #METADATA_KEY_AUTHOR}</li>
-         * <li>{@link #METADATA_KEY_WRITER}</li>
-         * <li>{@link #METADATA_KEY_COMPOSER}</li>
-         * <li>{@link #METADATA_KEY_DATE}</li>
-         * <li>{@link #METADATA_KEY_GENRE}</li>
-         * <li>{@link #METADATA_KEY_ALBUM_ARTIST}</li>
-         * <li>{@link #METADATA_KEY_ART_URI}</li>
-         * <li>{@link #METADATA_KEY_ALBUM_ART_URI}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_TITLE}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_SUBTITLE}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_DESCRIPTION}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_ICON_URI}</li>
-         * </ul>
-         *
-         * @param key The key for referencing this value
-         * @param value The String value to store
-         * @return The Builder to allow chaining
-         */
-        public @NonNull Builder putString(@NonNull @TextKey String key,
-                @Nullable String value) {
-            return mProvider.putString_impl(key, value);
-        }
-
-        /**
-         * Put a long value into the metadata. Custom keys may be used, but if
-         * the METADATA_KEYs defined in this class are used they may only be one
-         * of the following:
-         * <ul>
-         * <li>{@link #METADATA_KEY_DURATION}</li>
-         * <li>{@link #METADATA_KEY_TRACK_NUMBER}</li>
-         * <li>{@link #METADATA_KEY_NUM_TRACKS}</li>
-         * <li>{@link #METADATA_KEY_DISC_NUMBER}</li>
-         * <li>{@link #METADATA_KEY_YEAR}</li>
-         * <li>{@link #METADATA_KEY_BT_FOLDER_TYPE}</li>
-         * <li>{@link #METADATA_KEY_ADVERTISEMENT}</li>
-         * <li>{@link #METADATA_KEY_DOWNLOAD_STATUS}</li>
-         * </ul>
-         *
-         * @param key The key for referencing this value
-         * @param value The String value to store
-         * @return The Builder to allow chaining
-         */
-        public @NonNull Builder putLong(@NonNull @LongKey String key, long value) {
-            return mProvider.putLong_impl(key, value);
-        }
-
-        /**
-         * Put a {@link Rating2} into the metadata. Custom keys may be used, but
-         * if the METADATA_KEYs defined in this class are used they may only be
-         * one of the following:
-         * <ul>
-         * <li>{@link #METADATA_KEY_RATING}</li>
-         * <li>{@link #METADATA_KEY_USER_RATING}</li>
-         * </ul>
-         *
-         * @param key The key for referencing this value
-         * @param value The String value to store
-         * @return The Builder to allow chaining
-         */
-        public @NonNull Builder putRating(@NonNull @RatingKey String key, @Nullable Rating2 value) {
-            return mProvider.putRating_impl(key, value);
-        }
-
-        /**
-         * Put a {@link Bitmap} into the metadata. Custom keys may be used, but
-         * if the METADATA_KEYs defined in this class are used they may only be
-         * one of the following:
-         * <ul>
-         * <li>{@link #METADATA_KEY_ART}</li>
-         * <li>{@link #METADATA_KEY_ALBUM_ART}</li>
-         * <li>{@link #METADATA_KEY_DISPLAY_ICON}</li>
-         * </ul>
-         * Large bitmaps may be scaled down by the system when
-         * {@link android.media.session.MediaSession#setMetadata} is called.
-         * To pass full resolution images {@link Uri Uris} should be used with
-         * {@link #putString}.
-         *
-         * @param key The key for referencing this value
-         * @param value The Bitmap to store
-         * @return The Builder to allow chaining
-         */
-        public @NonNull Builder putBitmap(@NonNull @BitmapKey String key, @Nullable Bitmap value) {
-            return mProvider.putBitmap_impl(key, value);
-        }
-
-        /**
-         * Put a float value into the metadata. Custom keys may be used.
-         *
-         * @param key The key for referencing this value
-         * @param value The float value to store
-         * @return The Builder to allow chaining
-         */
-        public @NonNull Builder putFloat(@NonNull @LongKey String key, float value) {
-            return mProvider.putFloat_impl(key, value);
-        }
-
-        /**
-         * Set a bundle of extras.
-         *
-         * @param extras The extras to include with this description or null.
-         * @return The Builder to allow chaining
-         */
-        public Builder setExtras(@Nullable Bundle extras) {
-            return mProvider.setExtras_impl(extras);
-        }
-
-        /**
-         * Creates a {@link MediaMetadata2} instance with the specified fields.
-         *
-         * @return The new MediaMetadata2 instance
-         */
-        public @NonNull MediaMetadata2 build() {
-            return mProvider.build_impl();
-        }
-    }
-}
-
diff --git a/media/java/android/media/MediaPlayer2.java b/media/java/android/media/MediaPlayer2.java
index a80511a..a10b212 100644
--- a/media/java/android/media/MediaPlayer2.java
+++ b/media/java/android/media/MediaPlayer2.java
@@ -20,6 +20,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.StringDef;
 import android.annotation.UnsupportedAppUsage;
 import android.app.ActivityManager;
 import android.app.ActivityManager.RunningAppProcessInfo;
@@ -28,6 +29,7 @@
 import android.content.res.AssetFileDescriptor;
 import android.graphics.Rect;
 import android.graphics.SurfaceTexture;
+import android.media.MediaPlayer2.DrmInfo;
 import android.media.MediaPlayer2Proto.PlayerMessage;
 import android.media.MediaPlayer2Proto.Value;
 import android.net.Uri;
@@ -35,6 +37,7 @@
 import android.os.HandlerThread;
 import android.os.Looper;
 import android.os.Message;
+import android.os.ParcelFileDescriptor;
 import android.os.PersistableBundle;
 import android.os.PowerManager;
 import android.util.Log;
@@ -45,8 +48,6 @@
 import com.android.framework.protobuf.InvalidProtocolBufferException;
 import com.android.internal.annotations.GuardedBy;
 
-import dalvik.system.CloseGuard;
-
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileDescriptor;
@@ -70,7 +71,11 @@
 import java.util.Queue;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
@@ -298,21 +303,7 @@
     private volatile float mVolume = 1.0f;
     private VideoSize mVideoSize = new VideoSize(0, 0);
 
-    // TODO: create per-source drm fields in SourceInfo
-    // Modular DRM
-    private final Object mDrmLock = new Object();
-    //--- guarded by |mDrmLock| start
-    private UUID mDrmUUID;
-    private DrmInfo mDrmInfo;
-    private MediaDrm mDrmObj;
-    private byte[] mDrmSessionId;
-    private boolean mDrmInfoResolved;
-    private boolean mActiveDrmScheme;
-    private boolean mDrmConfigAllowed;
-    private boolean mDrmProvisioningInProgress;
-    private boolean mPrepareDrmInProgress;
-    private ProvisioningThread mDrmProvisioningThread;
-    //--- guarded by |mDrmLock| end
+    private ExecutorService mDrmThreadPool = Executors.newCachedThreadPool();
 
     // Creating a dummy audio track, used for keeping session id alive
     private final Object mSessionIdLock = new Object();
@@ -326,6 +317,7 @@
     private final List<Task> mPendingTasks = new LinkedList<>();
     @GuardedBy("mTaskLock")
     private Task mCurrentTask;
+    private final AtomicLong mTaskIdGenerator = new AtomicLong(0);
 
     @GuardedBy("mTaskLock")
     boolean mIsPreviousCommandSeekTo = false;
@@ -411,12 +403,13 @@
             mHandlerThread = null;
         }
 
+        clearSourceInfos();
+
         // Modular DRM clean up
         mOnDrmConfigHelper = null;
         synchronized (mDrmEventCbLock) {
             mDrmEventCallbackRecords.clear();
         }
-        resetDrmState();
 
         native_release();
 
@@ -456,15 +449,8 @@
         synchronized (mDrmEventCbLock) {
             mDrmEventCallbackRecords.clear();
         }
-        synchronized (mSrcLock) {
-            mCurrentSourceInfo = null;
-            mNextSourceInfos.clear();
-        }
 
-        synchronized (mTaskLock) {
-            mPendingTasks.clear();
-            mIsPreviousCommandSeekTo = false;
-        }
+        clearSourceInfos();
 
         stayAwake(false);
         native_reset();
@@ -478,7 +464,6 @@
             mTaskHandler.removeCallbacksAndMessages(null);
         }
 
-        resetDrmState();
     }
 
     private native void native_reset();
@@ -684,6 +669,8 @@
 
     /**
      * Sets the data source as described by a DataSourceDesc.
+     * When the data source is of {@link FileDataSourceDesc} type, the {@link ParcelFileDescriptor}
+     * in the {@link FileDataSourceDesc} will be closed by the player.
      *
      * @param dsd the descriptor of data source you want to play
      * @return a token which can be used to cancel the operation later with {@link #cancelCommand}.
@@ -693,23 +680,30 @@
         return addTask(new Task(CALL_COMPLETED_SET_DATA_SOURCE, false) {
             @Override
             void process() throws IOException {
-                checkArgument(dsd != null, "the DataSourceDesc cannot be null");
+                Media2Utils.checkArgument(dsd != null, "the DataSourceDesc cannot be null");
                 int state = getState();
-                if (state != PLAYER_STATE_ERROR && state != PLAYER_STATE_IDLE) {
-                    throw new IllegalStateException("called in wrong state " + state);
-                }
+                try {
+                    if (state != PLAYER_STATE_ERROR && state != PLAYER_STATE_IDLE) {
+                        throw new IllegalStateException("called in wrong state " + state);
+                    }
 
-                synchronized (mSrcLock) {
-                    mCurrentSourceInfo = new SourceInfo(dsd);
-                    handleDataSource(true /* isCurrent */, dsd, mCurrentSourceInfo.mId);
+                    synchronized (mSrcLock) {
+                        setCurrentSourceInfo_l(new SourceInfo(dsd));
+                        handleDataSource(true /* isCurrent */, dsd, mCurrentSourceInfo.mId);
+                    }
+                } finally {
+                    dsd.close();
                 }
             }
+
         });
     }
 
     /**
      * Sets a single data source as described by a DataSourceDesc which will be played
      * after current data source is finished.
+     * When the data source is of {@link FileDataSourceDesc} type, the {@link ParcelFileDescriptor}
+     * in the {@link FileDataSourceDesc} will be closed by the player.
      *
      * @param dsd the descriptor of data source you want to play after current one
      * @return a token which can be used to cancel the operation later with {@link #cancelCommand}.
@@ -719,9 +713,9 @@
         return addTask(new Task(CALL_COMPLETED_SET_NEXT_DATA_SOURCE, false) {
             @Override
             void process() {
-                checkArgument(dsd != null, "the DataSourceDesc cannot be null");
+                Media2Utils.checkArgument(dsd != null, "the DataSourceDesc cannot be null");
                 synchronized (mSrcLock) {
-                    mNextSourceInfos.clear();
+                    clearNextSourceInfos_l();
                     mNextSourceInfos.add(new SourceInfo(dsd));
                 }
                 prepareNextDataSource();
@@ -731,6 +725,8 @@
 
     /**
      * Sets a list of data sources to be played sequentially after current data source is done.
+     * When the data source is of {@link FileDataSourceDesc} type, the {@link ParcelFileDescriptor}
+     * in the {@link FileDataSourceDesc} will be closed by the player.
      *
      * @param dsds the list of data sources you want to play after current one
      * @return a token which can be used to cancel the operation later with {@link #cancelCommand}.
@@ -743,17 +739,15 @@
                 if (dsds == null || dsds.size() == 0) {
                     throw new IllegalArgumentException("data source list cannot be null or empty.");
                 }
-                for (DataSourceDesc dsd : dsds) {
-                    if (dsd == null) {
-                        throw new IllegalArgumentException(
-                                "DataSourceDesc in the source list cannot be null.");
-                    }
-                }
 
                 synchronized (mSrcLock) {
-                    mNextSourceInfos.clear();
+                    clearNextSourceInfos_l();
                     for (DataSourceDesc dsd : dsds) {
-                        mNextSourceInfos.add(new SourceInfo(dsd));
+                        if (dsd != null) {
+                            mNextSourceInfos.add(new SourceInfo(dsd));
+                        } else {
+                            Log.w(TAG, "DataSourceDesc in the source list shall not be null.");
+                        }
                     }
                 }
                 prepareNextDataSource();
@@ -770,7 +764,9 @@
         return addTask(new Task(CALL_COMPLETED_CLEAR_NEXT_DATA_SOURCES, false) {
             @Override
             void process() {
-                mNextSourceInfos.clear();
+                synchronized (mSrcLock) {
+                    clearNextSourceInfos_l();
+                }
             }
         });
     }
@@ -788,40 +784,36 @@
 
     private void handleDataSource(boolean isCurrent, @NonNull DataSourceDesc dsd, long srcId)
             throws IOException {
-        checkArgument(dsd != null, "the DataSourceDesc cannot be null");
+        Media2Utils.checkArgument(dsd != null, "the DataSourceDesc cannot be null");
 
-        switch (dsd.getType()) {
-            case DataSourceDesc.TYPE_CALLBACK:
-                handleDataSource(isCurrent,
-                                 srcId,
-                                 dsd.getMedia2DataSource(),
-                                 dsd.getStartPosition(),
-                                 dsd.getEndPosition());
-                break;
-
-            case DataSourceDesc.TYPE_FD:
-                handleDataSource(isCurrent,
-                                 srcId,
-                                 dsd.getFileDescriptor(),
-                                 dsd.getFileDescriptorOffset(),
-                                 dsd.getFileDescriptorLength(),
-                                 dsd.getStartPosition(),
-                                 dsd.getEndPosition());
-                break;
-
-            case DataSourceDesc.TYPE_URI:
-                handleDataSource(isCurrent,
-                                 srcId,
-                                 dsd.getUriContext(),
-                                 dsd.getUri(),
-                                 dsd.getUriHeaders(),
-                                 dsd.getUriCookies(),
-                                 dsd.getStartPosition(),
-                                 dsd.getEndPosition());
-                break;
-
-            default:
-                break;
+        if (dsd instanceof CallbackDataSourceDesc) {
+            CallbackDataSourceDesc cbDSD = (CallbackDataSourceDesc) dsd;
+            handleDataSource(isCurrent,
+                             srcId,
+                             cbDSD.getDataSourceCallback(),
+                             cbDSD.getStartPosition(),
+                             cbDSD.getEndPosition());
+        } else if (dsd instanceof FileDataSourceDesc) {
+            FileDataSourceDesc fileDSD = (FileDataSourceDesc) dsd;
+            handleDataSource(isCurrent,
+                             srcId,
+                             fileDSD.getParcelFileDescriptor(),
+                             fileDSD.getOffset(),
+                             fileDSD.getLength(),
+                             fileDSD.getStartPosition(),
+                             fileDSD.getEndPosition());
+        } else if (dsd instanceof UriDataSourceDesc) {
+            UriDataSourceDesc uriDSD = (UriDataSourceDesc) dsd;
+            handleDataSource(isCurrent,
+                             srcId,
+                             uriDSD.getContext(),
+                             uriDSD.getUri(),
+                             uriDSD.getHeaders(),
+                             uriDSD.getCookies(),
+                             uriDSD.getStartPosition(),
+                             uriDSD.getEndPosition());
+        } else {
+            throw new IllegalArgumentException("Unsupported DataSourceDesc. " + dsd.toString());
         }
     }
 
@@ -889,7 +881,7 @@
             if (afd.getDeclaredLength() < 0) {
                 handleDataSource(isCurrent,
                         srcId,
-                        afd.getFileDescriptor(),
+                        ParcelFileDescriptor.dup(afd.getFileDescriptor()),
                         0,
                         DataSourceDesc.LONG_MAX,
                         startPos,
@@ -897,7 +889,7 @@
             } else {
                 handleDataSource(isCurrent,
                         srcId,
-                        afd.getFileDescriptor(),
+                        ParcelFileDescriptor.dup(afd.getFileDescriptor()),
                         afd.getStartOffset(),
                         afd.getDeclaredLength(),
                         startPos,
@@ -963,7 +955,8 @@
         if (file.exists()) {
             FileInputStream is = new FileInputStream(file);
             FileDescriptor fd = is.getFD();
-            handleDataSource(isCurrent, srcId, fd, 0, DataSourceDesc.LONG_MAX, startPos, endPos);
+            handleDataSource(isCurrent, srcId, ParcelFileDescriptor.dup(fd),
+                    0, DataSourceDesc.LONG_MAX, startPos, endPos);
             is.close();
         } else {
             throw new IOException("handleDataSource failed.");
@@ -987,9 +980,10 @@
      */
     private void handleDataSource(
             boolean isCurrent, long srcId,
-            FileDescriptor fd, long offset, long length,
+            ParcelFileDescriptor pfd, long offset, long length,
             long startPos, long endPos) throws IOException {
-        nativeHandleDataSourceFD(isCurrent, srcId, fd, offset, length, startPos, endPos);
+        nativeHandleDataSourceFD(isCurrent, srcId, pfd.getFileDescriptor(), offset, length,
+                startPos, endPos);
     }
 
     private native void nativeHandleDataSourceFD(boolean isCurrent, long srcId,
@@ -998,15 +992,15 @@
 
     /**
      * @throws IllegalStateException if it is called in an invalid state
-     * @throws IllegalArgumentException if dataSource is not a valid Media2DataSource
+     * @throws IllegalArgumentException if dataSource is not a valid DataSourceCallback
      */
-    private void handleDataSource(boolean isCurrent, long srcId, Media2DataSource dataSource,
+    private void handleDataSource(boolean isCurrent, long srcId, DataSourceCallback dataSource,
             long startPos, long endPos) {
         nativeHandleDataSourceCallback(isCurrent, srcId, dataSource, startPos, endPos);
     }
 
     private native void nativeHandleDataSourceCallback(
-            boolean isCurrent, long srcId, Media2DataSource dataSource,
+            boolean isCurrent, long srcId, DataSourceCallback dataSource,
             long startPos, long endPos);
 
     // return true if there is a next data source, false otherwise.
@@ -1040,7 +1034,10 @@
                         MEDIA_ERROR, MEDIA_ERROR_IO, MEDIA_ERROR_UNKNOWN, null);
                 mTaskHandler.handleMessage(msg, nextSource.mId);
 
-                mNextSourceInfos.poll();
+                SourceInfo nextSourceInfo = mNextSourceInfos.poll();
+                if (nextSource != null) {
+                    nextSourceInfo.close();
+                }
                 return prepareNextDataSource();
             }
         }
@@ -1061,7 +1058,7 @@
                 SourceInfo nextSourceInfo = mNextSourceInfos.peek();
                 if (nextSourceInfo.mStateAsNextSource == NEXT_SOURCE_STATE_PREPARED) {
                     // Switch to next source only when it has been prepared.
-                    mCurrentSourceInfo = mNextSourceInfos.poll();
+                    setCurrentSourceInfo_l(mNextSourceInfos.poll());
 
                     long srcId = mCurrentSourceInfo.mId;
                     try {
@@ -1517,7 +1514,7 @@
         return addTask(new Task(CALL_COMPLETED_SET_BUFFERING_PARAMS, false) {
             @Override
             void process() {
-                checkArgument(params != null, "the BufferingParams cannot be null");
+                Media2Utils.checkArgument(params != null, "the BufferingParams cannot be null");
                 native_setBufferingParams(params);
             }
         });
@@ -1540,7 +1537,7 @@
         return addTask(new Task(CALL_COMPLETED_SET_PLAYBACK_PARAMS, false) {
             @Override
             void process() {
-                checkArgument(params != null, "the PlaybackParams cannot be null");
+                Media2Utils.checkArgument(params != null, "the PlaybackParams cannot be null");
                 native_setPlaybackParams(params);
             }
         });
@@ -1568,7 +1565,7 @@
         return addTask(new Task(CALL_COMPLETED_SET_SYNC_PARAMS, false) {
             @Override
             void process() {
-                checkArgument(params != null, "the SyncParams cannot be null");
+                Media2Utils.checkArgument(params != null, "the SyncParams cannot be null");
                 native_setSyncParams(params);
             }
         });
@@ -1767,10 +1764,13 @@
      */
     // This is an asynchronous call.
     public Object setAudioSessionId(int sessionId) {
-        keepAudioSessionIdAlive(sessionId);
+        final AudioTrack dummyAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100,
+                    AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, 2,
+                    AudioTrack.MODE_STATIC, sessionId);
         return addTask(new Task(CALL_COMPLETED_SET_AUDIO_SESSION_ID, false) {
             @Override
             void process() {
+                keepAudioSessionIdAlive(dummyAudioTrack);
                 native_setAudioSessionId(sessionId);
             }
         });
@@ -2158,7 +2158,7 @@
             final int what = msg.arg1;
             final int extra = msg.arg2;
 
-            final SourceInfo sourceInfo = getSourceInfoById(srcId);
+            final SourceInfo sourceInfo = getSourceInfo(srcId);
             if (sourceInfo == null) {
                 return;
             }
@@ -2212,11 +2212,11 @@
                         Log.w(TAG, "MEDIA_DRM_INFO msg.obj=NULL");
                     } else if (msg.obj instanceof byte[]) {
                         // The PlayerMessage was parsed already in postEventFromNative
-                        final DrmInfo drmInfo;
 
-                        synchronized (mDrmLock) {
-                            if (mDrmInfo != null) {
-                                drmInfo = mDrmInfo.makeCopy();
+                        final DrmInfo drmInfo;
+                        synchronized (sourceInfo) {
+                            if (sourceInfo.mDrmInfo != null) {
+                                drmInfo = sourceInfo.mDrmInfo.makeCopy();
                             } else {
                                 drmInfo = null;
                             }
@@ -2288,7 +2288,7 @@
                         }
                     });
 
-                    SourceInfo src = getSourceInfoById(srcId);
+                    SourceInfo src = getSourceInfo(srcId);
                     if (src != null) {
                         src.mBufferedPercentage.set(percent);
                     }
@@ -2489,6 +2489,7 @@
             return;
         }
 
+        final SourceInfo sourceInfo = mp.getSourceInfo(srcId);
         switch (what) {
             case MEDIA_DRM_INFO:
                 // We need to derive mDrmInfo before prepare() returns so processing it here
@@ -2496,7 +2497,7 @@
                 // notification looper so its handleMessage might process the event after prepare()
                 // has returned.
                 Log.v(TAG, "postEventFromNative MEDIA_DRM_INFO");
-                if (obj != null) {
+                if (obj != null && sourceInfo != null) {
                     PlayerMessage playerMsg;
                     try {
                         playerMsg = PlayerMessage.parseFrom(obj);
@@ -2505,11 +2506,12 @@
                         break;
                     }
                     DrmInfo drmInfo = new DrmInfo(playerMsg);
-                    synchronized (mp.mDrmLock) {
-                        mp.mDrmInfo = drmInfo;
+                    synchronized (sourceInfo) {
+                        sourceInfo.mDrmInfo = drmInfo;
                     }
                 } else {
-                    Log.w(TAG, "MEDIA_DRM_INFO msg.obj of unexpected type " + obj);
+                    Log.w(TAG, "MEDIA_DRM_INFO sourceInfo " + sourceInfo
+                            + " msg.obj of unexpected type " + obj);
                 }
                 break;
 
@@ -2518,8 +2520,10 @@
                 // mainly for prepare() use case. For prepare(), this still can run to a race
                 // condition b/c MediaPlayerNative releases the prepare() lock before calling notify
                 // so we also set mDrmInfoResolved in prepare().
-                synchronized (mp.mDrmLock) {
-                    mp.mDrmInfoResolved = true;
+                if (sourceInfo != null) {
+                    synchronized (sourceInfo) {
+                        sourceInfo.mDrmInfoResolved = true;
+                    }
                 }
                 break;
         }
@@ -2691,12 +2695,6 @@
         }
     }
 
-    private static void checkArgument(boolean expression, String errorMessage) {
-        if (!expression) {
-            throw new IllegalArgumentException(errorMessage);
-        }
-    }
-
     private void sendEvent(final EventNotifier notifier) {
         synchronized (mEventCbLock) {
             try {
@@ -3202,9 +3200,7 @@
      */
     // This is a synchronous call.
     public void setOnDrmConfigHelper(OnDrmConfigHelper listener) {
-        synchronized (mDrmLock) {
-            mOnDrmConfigHelper = listener;
-        }
+        mOnDrmConfigHelper = listener;
     }
 
     private OnDrmConfigHelper mOnDrmConfigHelper;
@@ -3322,6 +3318,25 @@
     @Retention(RetentionPolicy.SOURCE)
     public @interface PrepareDrmStatusCode {}
 
+    /** @hide */
+    @IntDef({
+        MediaDrm.KEY_TYPE_STREAMING,
+        MediaDrm.KEY_TYPE_OFFLINE,
+        MediaDrm.KEY_TYPE_RELEASE,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface MediaDrmKeyType {}
+
+    /** @hide */
+    @StringDef({
+        MediaDrm.PROPERTY_VENDOR,
+        MediaDrm.PROPERTY_VERSION,
+        MediaDrm.PROPERTY_DESCRIPTION,
+        MediaDrm.PROPERTY_ALGORITHMS,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface MediaDrmStringProperty {}
+
     /**
      * Retrieves the DRM Info associated with the given source
      *
@@ -3330,24 +3345,27 @@
      * @throws IllegalStateException if called before being prepared
      */
     public DrmInfo getDrmInfo(@NonNull DataSourceDesc dsd) {
-        // TODO: this implementation only works when dsd is the only data source
-        DrmInfo drmInfo = null;
+        final SourceInfo sourceInfo = getSourceInfo(dsd);
+        if (sourceInfo != null) {
+            DrmInfo drmInfo = null;
 
-        // there is not much point if the app calls getDrmInfo within an OnDrmInfoListenet;
-        // regardless below returns drmInfo anyway instead of raising an exception
-        synchronized (mDrmLock) {
-            if (!mDrmInfoResolved && mDrmInfo == null) {
-                final String msg = "The Player has not been prepared yet";
-                Log.v(TAG, msg);
-                throw new IllegalStateException(msg);
-            }
+            // there is not much point if the app calls getDrmInfo within an OnDrmInfoListener;
+            // regardless below returns drmInfo anyway instead of raising an exception
+            synchronized (sourceInfo) {
+                if (!sourceInfo.mDrmInfoResolved && sourceInfo.mDrmInfo == null) {
+                    final String msg = "The Player has not been prepared yet";
+                    Log.v(TAG, msg);
+                    throw new IllegalStateException(msg);
+                }
 
-            if (mDrmInfo != null) {
-                drmInfo = mDrmInfo.makeCopy();
-            }
-        }  // synchronized
+                if (sourceInfo.mDrmInfo != null) {
+                    drmInfo  = sourceInfo.mDrmInfo.makeCopy();
+                }
+            }   // synchronized
 
-        return drmInfo;
+            return drmInfo;
+        }
+        return null;
     }
 
     /**
@@ -3383,15 +3401,28 @@
      */
     // This is an asynchronous call.
     public Object prepareDrm(@NonNull DataSourceDesc dsd, @NonNull UUID uuid) {
-        // TODO: this implementation only works when dsd is the only data source
         return addTask(new Task(CALL_COMPLETED_PREPARE_DRM, true) {
             @Override
             void process() {
-                int status = PREPARE_DRM_STATUS_SUCCESS;
+                final SourceInfo sourceInfo = getSourceInfo(dsd);
+                int status = PREPARE_DRM_STATUS_PREPARATION_ERROR;
                 boolean sendEvent = true;
 
+                if (sourceInfo == null) {
+                    Log.e(TAG, "prepareDrm(): DataSource not found.");
+                } else if (sourceInfo.mDrmInfo == null) {
+                    // only allowing if tied to a protected source;
+                    // might relax for releasing offline keys
+                    Log.e(TAG, "prepareDrm(): Wrong usage: The player must be prepared and "
+                            + "DRM info be retrieved before this call.");
+                } else {
+                    status = PREPARE_DRM_STATUS_SUCCESS;
+                }
+
                 try {
-                    doPrepareDrm(dsd, uuid);
+                    if (status == PREPARE_DRM_STATUS_SUCCESS) {
+                        sourceInfo.mDrmHandle.prepare(uuid);
+                    }
                 } catch (ResourceBusyException e) {
                     status = PREPARE_DRM_STATUS_RESOURCE_BUSY;
                 } catch (UnsupportedSchemeException e) {
@@ -3400,14 +3431,14 @@
                     Log.w(TAG, "prepareDrm: NotProvisionedException");
 
                     // handle provisioning internally; it'll reset mPrepareDrmInProgress
-                    status = handleProvisioninig(dsd, uuid);
+                    status = sourceInfo.mDrmHandle.handleProvisioninig(uuid, mTaskId);
 
                     if (status == PREPARE_DRM_STATUS_SUCCESS) {
                         // DrmEventCallback will be fired in provisioning
                         sendEvent = false;
                     } else {
-                        synchronized (mDrmLock) {
-                            cleanDrmObj();
+                        synchronized (sourceInfo.mDrmHandle) {
+                            sourceInfo.mDrmHandle.cleanDrmObj();
                         }
 
                         switch (status) {
@@ -3450,95 +3481,6 @@
         });
     }
 
-    private void doPrepareDrm(@NonNull DataSourceDesc dsd, @NonNull UUID uuid)
-            throws UnsupportedSchemeException, ResourceBusyException,
-                   NotProvisionedException {
-        Log.v(TAG, "prepareDrm: uuid: " + uuid + " mOnDrmConfigHelper: " + mOnDrmConfigHelper);
-
-        synchronized (mDrmLock) {
-            // only allowing if tied to a protected source; might relax for releasing offline keys
-            if (mDrmInfo == null) {
-                final String msg = "prepareDrm(): Wrong usage: The player must be prepared and "
-                        + "DRM info be retrieved before this call.";
-                Log.e(TAG, msg);
-                throw new IllegalStateException(msg);
-            }
-
-            if (mActiveDrmScheme) {
-                final String msg = "prepareDrm(): Wrong usage: There is already "
-                        + "an active DRM scheme with " + mDrmUUID;
-                Log.e(TAG, msg);
-                throw new IllegalStateException(msg);
-            }
-
-            if (mPrepareDrmInProgress) {
-                final String msg = "prepareDrm(): Wrong usage: There is already "
-                        + "a pending prepareDrm call.";
-                Log.e(TAG, msg);
-                throw new IllegalStateException(msg);
-            }
-
-            if (mDrmProvisioningInProgress) {
-                final String msg = "prepareDrm(): Unexpectd: Provisioning is already in progress.";
-                Log.e(TAG, msg);
-                throw new IllegalStateException(msg);
-            }
-
-            // shouldn't need this; just for safeguard
-            cleanDrmObj();
-
-            mPrepareDrmInProgress = true;
-
-            try {
-                // only creating the DRM object to allow pre-openSession configuration
-                prepareDrm_createDrmStep(uuid);
-            } catch (Exception e) {
-                Log.w(TAG, "prepareDrm(): Exception ", e);
-                mPrepareDrmInProgress = false;
-                throw e;
-            }
-
-            mDrmConfigAllowed = true;
-        }  // synchronized
-
-        // call the callback outside the lock
-        if (mOnDrmConfigHelper != null)  {
-            mOnDrmConfigHelper.onDrmConfig(this, dsd);
-        }
-
-        synchronized (mDrmLock) {
-            mDrmConfigAllowed = false;
-            boolean earlyExit = false;
-
-            try {
-                prepareDrm_openSessionStep(uuid);
-
-                mDrmUUID = uuid;
-                mActiveDrmScheme = true;
-                mPrepareDrmInProgress = false;
-            } catch (IllegalStateException e) {
-                final String msg = "prepareDrm(): Wrong usage: The player must be "
-                        + "in the prepared state to call prepareDrm().";
-                Log.e(TAG, msg);
-                earlyExit = true;
-                mPrepareDrmInProgress = false;
-                throw new IllegalStateException(msg);
-            } catch (NotProvisionedException e) {
-                Log.w(TAG, "prepareDrm: NotProvisionedException", e);
-                throw e;
-            } catch (Exception e) {
-                Log.e(TAG, "prepareDrm: Exception " + e);
-                earlyExit = true;
-                mPrepareDrmInProgress = false;
-                throw e;
-            } finally {
-                if (earlyExit) {  // clean up object if didn't succeed
-                    cleanDrmObj();
-                }
-            }  // finally
-        }  // synchronized
-    }
-
     /**
      * Releases the DRM session for the given data source
      * <p>
@@ -3553,35 +3495,10 @@
     // This is a synchronous call.
     public void releaseDrm(@NonNull DataSourceDesc dsd)
             throws NoDrmSchemeException {
-        // TODO: this implementation only works when dsd is the only data source
-        synchronized (mDrmLock) {
-            Log.v(TAG, "releaseDrm:");
-
-            if (!mActiveDrmScheme) {
-                Log.e(TAG, "releaseDrm(): No active DRM scheme to release.");
-                throw new NoDrmSchemeException(
-                        "releaseDrm: No active DRM scheme to release.");
-            }
-
-            try {
-                // we don't have the player's state in this layer. The below call raises
-                // exception if we're in a non-stopped/prepared state.
-
-                // for cleaning native/mediaserver crypto object
-                native_releaseDrm();
-
-                // for cleaning client-side MediaDrm object; only called if above has succeeded
-                cleanDrmObj();
-
-                mActiveDrmScheme = false;
-            } catch (IllegalStateException e) {
-                Log.w(TAG, "releaseDrm: Exception ", e);
-                throw new IllegalStateException(
-                        "releaseDrm: The player is not in a valid state.");
-            } catch (Exception e) {
-                Log.e(TAG, "releaseDrm: Exception ", e);
-            }
-        }  // synchronized
+        final SourceInfo sourceInfo = getSourceInfo(dsd);
+        if (sourceInfo != null) {
+            sourceInfo.mDrmHandle.release();
+        }
     }
 
     private native void native_releaseDrm();
@@ -3625,51 +3542,22 @@
      *
      * @throws NoDrmSchemeException if there is no active DRM session
      */
-    @NonNull
     public MediaDrm.KeyRequest getDrmKeyRequest(
             @NonNull DataSourceDesc dsd,
             @Nullable byte[] keySetId, @Nullable byte[] initData,
-            @Nullable String mimeType, @MediaDrm.KeyType int keyType,
+            @Nullable String mimeType, @MediaDrmKeyType int keyType,
             @Nullable Map<String, String> optionalParameters)
             throws NoDrmSchemeException {
-        // TODO: this implementation only works when dsd is the only data source
-        Log.v(TAG, "getDrmKeyRequest: "
-                + " keySetId: " + keySetId + " initData:" + initData + " mimeType: " + mimeType
-                + " keyType: " + keyType + " optionalParameters: " + optionalParameters);
+        Log.v(TAG, "getDrmKeyRequest: " +
+                " keySetId: " + keySetId + " initData:" + initData + " mimeType: " + mimeType +
+                " keyType: " + keyType + " optionalParameters: " + optionalParameters);
 
-        synchronized (mDrmLock) {
-            if (!mActiveDrmScheme) {
-                Log.e(TAG, "getDrmKeyRequest NoDrmSchemeException");
-                throw new NoDrmSchemeException(
-                        "getDrmKeyRequest: Has to set a DRM scheme first.");
-            }
-
-            try {
-                byte[] scope = (keyType != MediaDrm.KEY_TYPE_RELEASE)
-                        ? mDrmSessionId :  // sessionId for KEY_TYPE_STREAMING/OFFLINE
-                        keySetId;  // keySetId for KEY_TYPE_RELEASE
-
-                HashMap<String, String> hmapOptionalParameters =
-                                                (optionalParameters != null)
-                                                ? new HashMap<String, String>(optionalParameters) :
-                                                null;
-
-                MediaDrm.KeyRequest request = mDrmObj.getKeyRequest(scope, initData, mimeType,
-                                                              keyType, hmapOptionalParameters);
-                Log.v(TAG, "getDrmKeyRequest:   --> request: " + request);
-
-                return request;
-
-            } catch (NotProvisionedException e) {
-                Log.w(TAG, "getDrmKeyRequest NotProvisionedException: "
-                        + "Unexpected. Shouldn't have reached here.");
-                throw new IllegalStateException("getDrmKeyRequest: Unexpected provisioning error.");
-            } catch (Exception e) {
-                Log.w(TAG, "getDrmKeyRequest Exception " + e);
-                throw e;
-            }
-
-        }  // synchronized
+        final SourceInfo sourceInfo = getSourceInfo(dsd);
+        if (sourceInfo != null) {
+            return sourceInfo.mDrmHandle.getDrmKeyRequest(
+                    keySetId, initData, mimeType, keyType, optionalParameters);
+        }
+        return null;
     }
 
     /**
@@ -3699,40 +3587,13 @@
             @NonNull DataSourceDesc dsd,
             @Nullable byte[] keySetId, @NonNull byte[] response)
             throws NoDrmSchemeException, DeniedByServerException {
-        // TODO: this implementation only works when dsd is the only data source
         Log.v(TAG, "provideDrmKeyResponse: keySetId: " + keySetId + " response: " + response);
 
-        synchronized (mDrmLock) {
-
-            if (!mActiveDrmScheme) {
-                Log.e(TAG, "getDrmKeyRequest NoDrmSchemeException");
-                throw new NoDrmSchemeException(
-                        "getDrmKeyRequest: Has to set a DRM scheme first.");
-            }
-
-            try {
-                byte[] scope = (keySetId == null)
-                                ? mDrmSessionId :     // sessionId for KEY_TYPE_STREAMING/OFFLINE
-                                keySetId;           // keySetId for KEY_TYPE_RELEASE
-
-                byte[] keySetResult = mDrmObj.provideKeyResponse(scope, response);
-
-                Log.v(TAG, "provideDrmKeyResponse: keySetId: " + keySetId + " response: " + response
-                        + " --> " + keySetResult);
-
-
-                return keySetResult;
-
-            } catch (NotProvisionedException e) {
-                Log.w(TAG, "provideDrmKeyResponse NotProvisionedException: "
-                        + "Unexpected. Shouldn't have reached here.");
-                throw new IllegalStateException("provideDrmKeyResponse: "
-                        + "Unexpected provisioning error.");
-            } catch (Exception e) {
-                Log.w(TAG, "provideDrmKeyResponse Exception " + e);
-                throw e;
-            }
-        }  // synchronized
+        final SourceInfo sourceInfo = getSourceInfo(dsd);
+        if (sourceInfo != null) {
+            return sourceInfo.mDrmHandle.provideDrmKeyResponse(keySetId, response);
+        }
+        return null;
     }
 
     /**
@@ -3751,23 +3612,12 @@
             @NonNull DataSourceDesc dsd,
             @NonNull byte[] keySetId)
             throws NoDrmSchemeException {
-        // TODO: this implementation only works when dsd is the only data source
         Log.v(TAG, "restoreDrmKeys: keySetId: " + keySetId);
 
-        synchronized (mDrmLock) {
-            if (!mActiveDrmScheme) {
-                Log.w(TAG, "restoreDrmKeys NoDrmSchemeException");
-                throw new NoDrmSchemeException(
-                        "restoreDrmKeys: Has to set a DRM scheme first.");
-            }
-
-            try {
-                mDrmObj.restoreKeys(mDrmSessionId, keySetId);
-            } catch (Exception e) {
-                Log.w(TAG, "restoreKeys Exception " + e);
-                throw e;
-            }
-        }  // synchronized
+        final SourceInfo sourceInfo = getSourceInfo(dsd);
+        if (sourceInfo != null) {
+            sourceInfo.mDrmHandle.restoreDrmKeys(keySetId);
+        }
     }
 
     /**
@@ -3784,34 +3634,17 @@
      *
      * @throws NoDrmSchemeException if there is no active DRM session
      */
-    @NonNull
     public String getDrmPropertyString(
             @NonNull DataSourceDesc dsd,
-            @NonNull @MediaDrm.StringProperty String propertyName)
+            @NonNull @MediaDrmStringProperty String propertyName)
             throws NoDrmSchemeException {
-        // TODO: this implementation only works when dsd is the only data source
         Log.v(TAG, "getDrmPropertyString: propertyName: " + propertyName);
 
-        String value;
-        synchronized (mDrmLock) {
-
-            if (!mActiveDrmScheme && !mDrmConfigAllowed) {
-                Log.w(TAG, "getDrmPropertyString NoDrmSchemeException");
-                throw new NoDrmSchemeException(
-                        "getDrmPropertyString: Has to prepareDrm() first.");
-            }
-
-            try {
-                value = mDrmObj.getPropertyString(propertyName);
-            } catch (Exception e) {
-                Log.w(TAG, "getDrmPropertyString Exception " + e);
-                throw e;
-            }
-        }  // synchronized
-
-        Log.v(TAG, "getDrmPropertyString: propertyName: " + propertyName + " --> value: " + value);
-
-        return value;
+        final SourceInfo sourceInfo = getSourceInfo(dsd);
+        if (sourceInfo != null) {
+            return sourceInfo.mDrmHandle.getDrmPropertyString(propertyName);
+        }
+        return null;
     }
 
     /**
@@ -3830,26 +3663,15 @@
     // This is a synchronous call.
     public void setDrmPropertyString(
             @NonNull DataSourceDesc dsd,
-            @NonNull @MediaDrm.StringProperty String propertyName, @NonNull String value)
+            @NonNull @MediaDrmStringProperty String propertyName, @NonNull String value)
             throws NoDrmSchemeException {
         // TODO: this implementation only works when dsd is the only data source
         Log.v(TAG, "setDrmPropertyString: propertyName: " + propertyName + " value: " + value);
 
-        synchronized (mDrmLock) {
-
-            if (!mActiveDrmScheme && !mDrmConfigAllowed) {
-                Log.w(TAG, "setDrmPropertyString NoDrmSchemeException");
-                throw new NoDrmSchemeException(
-                        "setDrmPropertyString: Has to prepareDrm() first.");
-            }
-
-            try {
-                mDrmObj.setPropertyString(propertyName, value);
-            } catch (Exception e) {
-                Log.w(TAG, "setDrmPropertyString Exception " + e);
-                throw e;
-            }
-        }  // synchronized
+        final SourceInfo sourceInfo = getSourceInfo(dsd);
+        if (sourceInfo != null) {
+            sourceInfo.mDrmHandle.setDrmPropertyString(propertyName, value);
+        }
     }
 
     /**
@@ -4001,43 +3823,6 @@
 
     private native void native_prepareDrm(@NonNull byte[] uuid, @NonNull byte[] drmSessionId);
 
-    // Modular DRM helpers
-
-    private void prepareDrm_createDrmStep(@NonNull UUID uuid)
-            throws UnsupportedSchemeException {
-        Log.v(TAG, "prepareDrm_createDrmStep: UUID: " + uuid);
-
-        try {
-            mDrmObj = new MediaDrm(uuid);
-            Log.v(TAG, "prepareDrm_createDrmStep: Created mDrmObj=" + mDrmObj);
-        } catch (Exception e) { // UnsupportedSchemeException
-            Log.e(TAG, "prepareDrm_createDrmStep: MediaDrm failed with " + e);
-            throw e;
-        }
-    }
-
-    private void prepareDrm_openSessionStep(@NonNull UUID uuid)
-            throws NotProvisionedException, ResourceBusyException {
-        Log.v(TAG, "prepareDrm_openSessionStep: uuid: " + uuid);
-
-        // TODO: don't need an open session for a future specialKeyReleaseDrm mode but we should do
-        // it anyway so it raises provisioning error if needed. We'd rather handle provisioning
-        // at prepareDrm/openSession rather than getDrmKeyRequest/provideDrmKeyResponse
-        try {
-            mDrmSessionId = mDrmObj.openSession();
-            Log.v(TAG, "prepareDrm_openSessionStep: mDrmSessionId=" + mDrmSessionId);
-
-            // Sending it down to native/mediaserver to create the crypto object
-            // This call could simply fail due to bad player state, e.g., after play().
-            native_prepareDrm(getByteArrayFromUUID(uuid), mDrmSessionId);
-            Log.v(TAG, "prepareDrm_openSessionStep: native_prepareDrm/Crypto succeeded");
-
-        } catch (Exception e) { //ResourceBusyException, NotProvisionedException
-            Log.e(TAG, "prepareDrm_openSessionStep: open/crypto failed with " + e);
-            throw e;
-        }
-    }
-
     // Instantiated from the native side
     @SuppressWarnings("unused")
     private static class StreamEventCallback extends AudioTrack.StreamEventCallback {
@@ -4069,227 +3854,28 @@
         }
     }
 
-    private class ProvisioningThread extends Thread {
-        public static final int TIMEOUT_MS = 60000;
-
-        private final DataSourceDesc mDSD;
-        private UUID mUuid;
-        private String mUrlStr;
-        private Object mDrmLock;
-        private MediaPlayer2 mMediaPlayer;
-        private int mStatus;
-        public  int status() {
-            return mStatus;
-        }
-
-        public ProvisioningThread(MediaDrm.ProvisionRequest request,
-                DataSourceDesc dsd,
-                UUID uuid, MediaPlayer2 mediaPlayer) {
-            // lock is held by the caller
-            mDSD = dsd;
-            mDrmLock = mediaPlayer.mDrmLock;
-            mMediaPlayer = mediaPlayer;
-
-            mUrlStr = request.getDefaultUrl() + "&signedRequest=" + new String(request.getData());
-            mUuid = uuid;
-
-            mStatus = PREPARE_DRM_STATUS_PREPARATION_ERROR;
-
-            Log.v(TAG, "handleProvisioninig: Thread is initialised url: " + mUrlStr);
-        }
-
-        public void run() {
-
-            byte[] response = null;
-            boolean provisioningSucceeded = false;
-            try {
-                URL url = new URL(mUrlStr);
-                final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-                try {
-                    connection.setRequestMethod("POST");
-                    connection.setDoOutput(false);
-                    connection.setDoInput(true);
-                    connection.setConnectTimeout(TIMEOUT_MS);
-                    connection.setReadTimeout(TIMEOUT_MS);
-
-                    connection.connect();
-                    response = readInputStreamFully(connection.getInputStream());
-
-                    Log.v(TAG, "handleProvisioninig: Thread run: response "
-                            + response.length + " " + response);
-                } catch (Exception e) {
-                    mStatus = PREPARE_DRM_STATUS_PROVISIONING_NETWORK_ERROR;
-                    Log.w(TAG, "handleProvisioninig: Thread run: connect " + e + " url: " + url);
-                } finally {
-                    connection.disconnect();
-                }
-            } catch (Exception e)   {
-                mStatus = PREPARE_DRM_STATUS_PROVISIONING_NETWORK_ERROR;
-                Log.w(TAG, "handleProvisioninig: Thread run: openConnection " + e);
-            }
-
-            if (response != null) {
-                try {
-                    mDrmObj.provideProvisionResponse(response);
-                    Log.v(TAG, "handleProvisioninig: Thread run: "
-                            + "provideProvisionResponse SUCCEEDED!");
-
-                    provisioningSucceeded = true;
-                } catch (Exception e) {
-                    mStatus = PREPARE_DRM_STATUS_PROVISIONING_SERVER_ERROR;
-                    Log.w(TAG, "handleProvisioninig: Thread run: "
-                            + "provideProvisionResponse " + e);
-                }
-            }
-
-            boolean succeeded = false;
-
-            synchronized (mDrmLock) {
-                // continuing with prepareDrm
-                if (provisioningSucceeded) {
-                    succeeded = mMediaPlayer.resumePrepareDrm(mUuid);
-                    mStatus = (succeeded)
-                            ? PREPARE_DRM_STATUS_SUCCESS :
-                            PREPARE_DRM_STATUS_PREPARATION_ERROR;
-                }
-                mMediaPlayer.mDrmProvisioningInProgress = false;
-                mMediaPlayer.mPrepareDrmInProgress = false;
-                if (!succeeded) {
-                    cleanDrmObj();  // cleaning up if it hasn't gone through while in the lock
-                }
-            }  // synchronized
-
-            // calling the callback outside the lock
-            sendDrmEvent(new DrmEventNotifier() {
-                @Override
-                public void notify(DrmEventCallback callback) {
-                    callback.onDrmPrepared(
-                            mMediaPlayer, mDSD, mStatus);
-                }
-            });
-
-            synchronized (mTaskLock) {
-                if (mCurrentTask != null
-                        && mCurrentTask.mMediaCallType == CALL_COMPLETED_PREPARE_DRM
-                        && mCurrentTask.mNeedToWaitForEventToComplete) {
-                    mCurrentTask = null;
-                    processPendingTask_l();
-                }
-            }
-        }
-
-        /**
-         * Returns a byte[] containing the remainder of 'in', closing it when done.
-         */
-        private byte[] readInputStreamFully(InputStream in) throws IOException {
-            try {
-                return readInputStreamFullyNoClose(in);
-            } finally {
-                in.close();
-            }
-        }
-
-        /**
-         * Returns a byte[] containing the remainder of 'in'.
-         */
-        private byte[] readInputStreamFullyNoClose(InputStream in) throws IOException {
-            ByteArrayOutputStream bytes = new ByteArrayOutputStream();
-            byte[] buffer = new byte[1024];
-            int count;
-            while ((count = in.read(buffer)) != -1) {
-                bytes.write(buffer, 0, count);
-            }
-            return bytes.toByteArray();
-        }
-    }  // ProvisioningThread
-
-    private int handleProvisioninig(DataSourceDesc dsd, UUID uuid) {
-        synchronized (mDrmLock) {
-            if (mDrmProvisioningInProgress) {
-                Log.e(TAG, "handleProvisioninig: Unexpected mDrmProvisioningInProgress");
-                return PREPARE_DRM_STATUS_PREPARATION_ERROR;
-            }
-
-            MediaDrm.ProvisionRequest provReq = mDrmObj.getProvisionRequest();
-            if (provReq == null) {
-                Log.e(TAG, "handleProvisioninig: getProvisionRequest returned null.");
-                return PREPARE_DRM_STATUS_PREPARATION_ERROR;
-            }
-
-            Log.v(TAG, "handleProvisioninig provReq "
-                    + " data: " + provReq.getData() + " url: " + provReq.getDefaultUrl());
-
-            // networking in a background thread
-            mDrmProvisioningInProgress = true;
-
-            mDrmProvisioningThread = new ProvisioningThread(provReq, dsd, uuid, this);
-            mDrmProvisioningThread.start();
-
-            return PREPARE_DRM_STATUS_SUCCESS;
-        }
-    }
-
-    private boolean resumePrepareDrm(UUID uuid) {
-        Log.v(TAG, "resumePrepareDrm: uuid: " + uuid);
-
-        // mDrmLock is guaranteed to be held
-        boolean success = false;
+    /**
+     * Returns a byte[] containing the remainder of 'in', closing it when done.
+     */
+    private static byte[] readInputStreamFully(InputStream in) throws IOException {
         try {
-            // resuming
-            prepareDrm_openSessionStep(uuid);
-
-            mDrmUUID = uuid;
-            mActiveDrmScheme = true;
-
-            success = true;
-        } catch (Exception e) {
-            Log.w(TAG, "handleProvisioninig: Thread run native_prepareDrm resume failed with " + e);
-            // mDrmObj clean up is done by the caller
+            return readInputStreamFullyNoClose(in);
+        } finally {
+            in.close();
         }
-
-        return success;
     }
 
-    private void resetDrmState() {
-        synchronized (mDrmLock) {
-            Log.v(TAG, "resetDrmState:"
-                    + " mDrmInfo=" + mDrmInfo
-                    + " mDrmProvisioningThread=" + mDrmProvisioningThread
-                    + " mPrepareDrmInProgress=" + mPrepareDrmInProgress
-                    + " mActiveDrmScheme=" + mActiveDrmScheme);
-
-            mDrmInfoResolved = false;
-            mDrmInfo = null;
-
-            if (mDrmProvisioningThread != null) {
-                // timeout; relying on HttpUrlConnection
-                try {
-                    mDrmProvisioningThread.join();
-                } catch (InterruptedException e) {
-                    Log.w(TAG, "resetDrmState: ProvThread.join Exception " + e);
-                }
-                mDrmProvisioningThread = null;
-            }
-
-            mPrepareDrmInProgress = false;
-            mActiveDrmScheme = false;
-
-            cleanDrmObj();
-        }  // synchronized
-    }
-
-    private void cleanDrmObj() {
-        // the caller holds mDrmLock
-        Log.v(TAG, "cleanDrmObj: mDrmObj=" + mDrmObj + " mDrmSessionId=" + mDrmSessionId);
-
-        if (mDrmSessionId != null)    {
-            mDrmObj.closeSession(mDrmSessionId);
-            mDrmSessionId = null;
+    /**
+     * Returns a byte[] containing the remainder of 'in'.
+     */
+    private static byte[] readInputStreamFullyNoClose(InputStream in) throws IOException {
+        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+        byte[] buffer = new byte[1024];
+        int count;
+        while ((count = in.read(buffer)) != -1) {
+            bytes.write(buffer, 0, count);
         }
-        if (mDrmObj != null) {
-            mDrmObj.release();
-            mDrmObj = null;
-        }
+        return bytes.toByteArray();
     }
 
     private static byte[] getByteArrayFromUUID(@NonNull UUID uuid) {
@@ -4305,8 +3891,6 @@
         return uuidBytes;
     }
 
-    // Modular DRM end
-
     private static class TimedTextUtil {
         // These keys must be in sync with the keys in TextDescription2.h
         private static final int KEY_START_TIME                     = 7; // int
@@ -4382,6 +3966,7 @@
     }
 
     private abstract class Task implements Runnable {
+        final long mTaskId = mTaskIdGenerator.getAndIncrement();
         private final int mMediaCallType;
         private final boolean mNeedToWaitForEventToComplete;
         private DataSourceDesc mDSD;
@@ -4473,10 +4058,507 @@
         }
     };
 
-    private final class SourceInfo {
+    // Modular DRM
+    final class DrmHandle {
+
+        static final int PROVISION_TIMEOUT_MS = 60000;
+
+        final DataSourceDesc mDSD;
+
+        //--- guarded by |this| start
+        MediaDrm mDrmObj;
+        byte[] mDrmSessionId;
+        UUID mActiveDrmUUID;
+        boolean mDrmConfigAllowed;
+        boolean mDrmProvisioningInProgress;
+        boolean mPrepareDrmInProgress;
+        Future<?> mProvisionResult;
+        //--- guarded by |this| end
+
+        DrmHandle(DataSourceDesc dsd) {
+            mDSD = dsd;
+        }
+
+        void prepare(UUID uuid) throws UnsupportedSchemeException,
+                ResourceBusyException, NotProvisionedException {
+            final OnDrmConfigHelper onDrmConfigHelper = mOnDrmConfigHelper;
+            Log.v(TAG, "prepareDrm: uuid: " + uuid + " mOnDrmConfigHelper: " + onDrmConfigHelper);
+
+            synchronized (this) {
+                if (mActiveDrmUUID != null) {
+                    final String msg = "prepareDrm(): Wrong usage: There is already "
+                            + "an active DRM scheme with " + uuid;
+                    Log.e(TAG, msg);
+                    throw new IllegalStateException(msg);
+                }
+
+                if (mPrepareDrmInProgress) {
+                    final String msg = "prepareDrm(): Wrong usage: There is already "
+                            + "a pending prepareDrm call.";
+                    Log.e(TAG, msg);
+                    throw new IllegalStateException(msg);
+                }
+
+                if (mDrmProvisioningInProgress) {
+                    final String msg = "prepareDrm(): Unexpectd: Provisioning already in progress";
+                    Log.e(TAG, msg);
+                    throw new IllegalStateException(msg);
+                }
+
+                // shouldn't need this; just for safeguard
+                cleanDrmObj();
+
+                mPrepareDrmInProgress = true;
+
+                try {
+                    // only creating the DRM object to allow pre-openSession configuration
+                    prepareDrm_createDrmStep(uuid);
+                } catch (Exception e) {
+                    Log.w(TAG, "prepareDrm(): Exception ", e);
+                    mPrepareDrmInProgress = false;
+                    throw e;
+                }
+
+                mDrmConfigAllowed = true;
+            }  // synchronized
+
+            // call the callback outside the lock
+            if (onDrmConfigHelper != null)  {
+                onDrmConfigHelper.onDrmConfig(MediaPlayer2.this, mDSD);
+            }
+
+            synchronized (this) {
+                mDrmConfigAllowed = false;
+                boolean earlyExit = false;
+
+                try {
+                    prepareDrm_openSessionStep(uuid);
+
+                    this.mActiveDrmUUID = uuid;
+                    mPrepareDrmInProgress = false;
+                } catch (IllegalStateException e) {
+                    final String msg = "prepareDrm(): Wrong usage: The player must be "
+                            + "in the prepared state to call prepareDrm().";
+                    Log.e(TAG, msg);
+                    earlyExit = true;
+                    mPrepareDrmInProgress = false;
+                    throw new IllegalStateException(msg);
+                } catch (NotProvisionedException e) {
+                    Log.w(TAG, "prepareDrm: NotProvisionedException", e);
+                    throw e;
+                } catch (Exception e) {
+                    Log.e(TAG, "prepareDrm: Exception " + e);
+                    earlyExit = true;
+                    mPrepareDrmInProgress = false;
+                    throw e;
+                } finally {
+                    if (earlyExit) {  // clean up object if didn't succeed
+                        cleanDrmObj();
+                    }
+                }  // finally
+            }  // synchronized
+        }
+
+        void prepareDrm_createDrmStep(UUID uuid)
+                throws UnsupportedSchemeException {
+            Log.v(TAG, "prepareDrm_createDrmStep: UUID: " + uuid);
+
+            try {
+                mDrmObj = new MediaDrm(uuid);
+                Log.v(TAG, "prepareDrm_createDrmStep: Created mDrmObj=" + mDrmObj);
+            } catch (Exception e) { // UnsupportedSchemeException
+                Log.e(TAG, "prepareDrm_createDrmStep: MediaDrm failed with " + e);
+                throw e;
+            }
+        }
+
+        void prepareDrm_openSessionStep(UUID uuid)
+                throws NotProvisionedException, ResourceBusyException {
+            Log.v(TAG, "prepareDrm_openSessionStep: uuid: " + uuid);
+
+            // TODO:
+            // don't need an open session for a future specialKeyReleaseDrm mode but we should do
+            // it anyway so it raises provisioning error if needed. We'd rather handle provisioning
+            // at prepareDrm/openSession rather than getDrmKeyRequest/provideDrmKeyResponse
+            try {
+                mDrmSessionId = mDrmObj.openSession();
+                Log.v(TAG, "prepareDrm_openSessionStep: mDrmSessionId=" + mDrmSessionId);
+
+                // Sending it down to native/mediaserver to create the crypto object
+                // This call could simply fail due to bad player state, e.g., after play().
+                MediaPlayer2.this.native_prepareDrm(getByteArrayFromUUID(uuid), mDrmSessionId);
+                Log.v(TAG, "prepareDrm_openSessionStep: native_prepareDrm/Crypto succeeded");
+
+            } catch (Exception e) { //ResourceBusyException, NotProvisionedException
+                Log.e(TAG, "prepareDrm_openSessionStep: open/crypto failed with " + e);
+                throw e;
+            }
+
+        }
+
+        int handleProvisioninig(UUID uuid, long taskId) {
+            synchronized (this) {
+                if (mDrmProvisioningInProgress) {
+                    Log.e(TAG, "handleProvisioninig: Unexpected mDrmProvisioningInProgress");
+                    return PREPARE_DRM_STATUS_PREPARATION_ERROR;
+                }
+
+                MediaDrm.ProvisionRequest provReq = mDrmObj.getProvisionRequest();
+                if (provReq == null) {
+                    Log.e(TAG, "handleProvisioninig: getProvisionRequest returned null.");
+                    return PREPARE_DRM_STATUS_PREPARATION_ERROR;
+                }
+
+                Log.v(TAG, "handleProvisioninig provReq "
+                        + " data: " + provReq.getData() + " url: " + provReq.getDefaultUrl());
+
+                // networking in a background thread
+                mDrmProvisioningInProgress = true;
+
+                mProvisionResult = mDrmThreadPool.submit(newProvisioningTask(uuid, taskId));
+
+                return PREPARE_DRM_STATUS_SUCCESS;
+            }
+        }
+
+        void provision(UUID uuid, long taskId) {
+
+            MediaDrm.ProvisionRequest provReq = mDrmObj.getProvisionRequest();
+            String urlStr = provReq.getDefaultUrl();
+            urlStr += "&signedRequest=" + new String(provReq.getData());
+            Log.v(TAG, "handleProvisioninig: Thread is initialised url: " + urlStr);
+
+            byte[] response = null;
+            boolean provisioningSucceeded = false;
+            int status = PREPARE_DRM_STATUS_PREPARATION_ERROR;
+            try {
+                URL url = new URL(urlStr);
+                final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+                try {
+                    connection.setRequestMethod("POST");
+                    connection.setDoOutput(false);
+                    connection.setDoInput(true);
+                    connection.setConnectTimeout(PROVISION_TIMEOUT_MS);
+                    connection.setReadTimeout(PROVISION_TIMEOUT_MS);
+
+                    connection.connect();
+                    response = readInputStreamFully(connection.getInputStream());
+
+                    Log.v(TAG, "handleProvisioninig: Thread run: response " +
+                            response.length + " " + response);
+                } catch (Exception e) {
+                    status = PREPARE_DRM_STATUS_PROVISIONING_NETWORK_ERROR;
+                    Log.w(TAG, "handleProvisioninig: Thread run: connect " + e + " url: " + url);
+                } finally {
+                    connection.disconnect();
+                }
+            } catch (Exception e)   {
+                status = PREPARE_DRM_STATUS_PROVISIONING_NETWORK_ERROR;
+                Log.w(TAG, "handleProvisioninig: Thread run: openConnection " + e);
+            }
+
+            if (response != null) {
+                try {
+                    mDrmObj.provideProvisionResponse(response);
+                    Log.v(TAG, "handleProvisioninig: Thread run: " +
+                            "provideProvisionResponse SUCCEEDED!");
+
+                    provisioningSucceeded = true;
+                } catch (Exception e) {
+                    status = PREPARE_DRM_STATUS_PROVISIONING_SERVER_ERROR;
+                    Log.w(TAG, "handleProvisioninig: Thread run: " +
+                            "provideProvisionResponse " + e);
+                }
+            }
+
+            boolean succeeded = false;
+
+            synchronized (this) {
+                // continuing with prepareDrm
+                if (provisioningSucceeded) {
+                    succeeded = resumePrepare(uuid);
+                    status = (succeeded) ?
+                            PREPARE_DRM_STATUS_SUCCESS :
+                            PREPARE_DRM_STATUS_PREPARATION_ERROR;
+                }
+                mDrmProvisioningInProgress = false;
+                mPrepareDrmInProgress = false;
+                if (!succeeded) {
+                    cleanDrmObj();  // cleaning up if it hasn't gone through while in the lock
+                }
+            }  // synchronized
+
+            // calling the callback outside the lock
+            final int finalStatus = status;
+            sendDrmEvent(new DrmEventNotifier() {
+                @Override
+                public void notify(DrmEventCallback callback) {
+                    callback.onDrmPrepared(
+                            MediaPlayer2.this, mDSD, finalStatus);
+                }
+            });
+
+            synchronized (mTaskLock) {
+                if (mCurrentTask != null
+                        && mCurrentTask.mTaskId == taskId
+                        && mCurrentTask.mMediaCallType == CALL_COMPLETED_PREPARE_DRM
+                        && mCurrentTask.mNeedToWaitForEventToComplete) {
+                    mCurrentTask = null;
+                    processPendingTask_l();
+                }
+            }
+        }
+
+        Runnable newProvisioningTask(UUID uuid, long taskId) {
+            return new Runnable() {
+                @Override
+                public void run() {
+                    provision(uuid, taskId);
+                }
+            };
+        }
+
+        boolean resumePrepare(UUID uuid) {
+            Log.v(TAG, "resumePrepareDrm: uuid: " + uuid);
+
+            // mDrmLock is guaranteed to be held
+            boolean success = false;
+            try {
+                // resuming
+                prepareDrm_openSessionStep(uuid);
+
+                this.mActiveDrmUUID = uuid;
+
+                success = true;
+            } catch (Exception e) {
+                Log.w(TAG, "handleProvisioninig: Thread run native_prepareDrm resume failed:" + e);
+                // mDrmObj clean up is done by the caller
+            }
+
+            return success;
+        }
+
+        void cleanDrmObj() {
+            // the caller holds mDrmLock
+            Log.v(TAG, "cleanDrmObj: mDrmObj=" + mDrmObj + " mDrmSessionId=" + mDrmSessionId);
+
+            if (mDrmSessionId != null)    {
+                mDrmObj.closeSession(mDrmSessionId);
+                mDrmSessionId = null;
+            }
+            if (mDrmObj != null) {
+                mDrmObj.close();
+                mDrmObj = null;
+            }
+        }
+
+        void release() throws NoDrmSchemeException {
+            synchronized (this) {
+                Log.v(TAG, "releaseDrm:");
+
+                if (mActiveDrmUUID == null) {
+                    Log.e(TAG, "releaseDrm(): No active DRM scheme to release.");
+                    throw new NoDrmSchemeException(
+                            "releaseDrm: No active DRM scheme to release.");
+                }
+
+                try {
+                    // we don't have the player's state in this layer. The below call raises
+                    // exception if we're in a non-stopped/prepared state.
+
+                    // for cleaning native/mediaserver crypto object
+                    native_releaseDrm();
+
+                    // for cleaning client-side MediaDrm object; only called if above has succeeded
+                    cleanDrmObj();
+
+                    this.mActiveDrmUUID = null;
+                } catch (IllegalStateException e) {
+                    Log.w(TAG, "releaseDrm: Exception ", e);
+                    throw new IllegalStateException(
+                            "releaseDrm: The player is not in a valid state.");
+                } catch (Exception e) {
+                    Log.e(TAG, "releaseDrm: Exception ", e);
+                }
+            }  // synchronized
+        }
+
+        void cleanup() {
+            synchronized (this) {
+                Log.v(TAG, "cleanupDrm: " +
+                        " mProvisioningTask=" + mProvisionResult +
+                        " mPrepareDrmInProgress=" + mPrepareDrmInProgress +
+                        " mActiveDrmScheme=" + mActiveDrmUUID);
+
+                if (mProvisionResult != null) {
+                    // timeout; relying on HttpUrlConnection
+                    try {
+                        mProvisionResult.get();
+                    }
+                    catch (InterruptedException | ExecutionException e) {
+                        Log.w(TAG, "resetDrmState: ProvThread.join Exception " + e);
+                    }
+                }
+
+                // set to false to avoid duplicate release calls
+                this.mActiveDrmUUID = null;
+
+                cleanDrmObj();
+            }   // synchronized
+        }
+
+        Runnable newCleanupTask() {
+            return new Runnable() {
+                @Override
+                public void run() {
+                    cleanup();
+                }
+            };
+        }
+
+        MediaDrm.KeyRequest getDrmKeyRequest(
+                byte[] keySetId, byte[] initData,
+                String mimeType, int keyType,
+                Map<String, String> optionalParameters)
+                throws NoDrmSchemeException {
+            synchronized (this) {
+                if (mActiveDrmUUID == null) {
+                    Log.e(TAG, "getDrmKeyRequest NoDrmSchemeException");
+                    throw new NoDrmSchemeException(
+                            "getDrmKeyRequest: Has to set a DRM scheme first.");
+                }
+
+                try {
+                    byte[] scope = (keyType != MediaDrm.KEY_TYPE_RELEASE) ?
+                            mDrmSessionId : // sessionId for KEY_TYPE_STREAMING/OFFLINE
+                            keySetId;                  // keySetId for KEY_TYPE_RELEASE
+
+                    HashMap<String, String> hmapOptionalParameters =
+                            (optionalParameters != null)
+                            ? new HashMap<String, String>(optionalParameters)
+                            : null;
+
+                    MediaDrm.KeyRequest request = mDrmObj.getKeyRequest(
+                            scope, initData, mimeType, keyType, hmapOptionalParameters);
+                    Log.v(TAG, "getDrmKeyRequest:   --> request: " + request);
+
+                    return request;
+
+                } catch (NotProvisionedException e) {
+                    Log.w(TAG, "getDrmKeyRequest NotProvisionedException: " +
+                            "Unexpected. Shouldn't have reached here.");
+                    throw new IllegalStateException("getDrmKeyRequest: provisioning error.");
+                } catch (Exception e) {
+                    Log.w(TAG, "getDrmKeyRequest Exception " + e);
+                    throw e;
+                }
+
+            }
+        }
+
+        byte[] provideDrmKeyResponse(byte[] keySetId, byte[] response)
+                throws NoDrmSchemeException, DeniedByServerException {
+            synchronized (this) {
+
+                if (mActiveDrmUUID == null) {
+                    Log.e(TAG, "getDrmKeyRequest NoDrmSchemeException");
+                    throw new NoDrmSchemeException(
+                            "getDrmKeyRequest: Has to set a DRM scheme first.");
+                }
+
+                try {
+                    byte[] scope = (keySetId == null) ?
+                                    mDrmSessionId : // sessionId for KEY_TYPE_STREAMING/OFFLINE
+                                    keySetId;                  // keySetId for KEY_TYPE_RELEASE
+
+                    byte[] keySetResult = mDrmObj.provideKeyResponse(scope, response);
+
+                    Log.v(TAG, "provideDrmKeyResponse: keySetId: " + keySetId
+                            + " response: " + response + " --> " + keySetResult);
+
+
+                    return keySetResult;
+
+                } catch (NotProvisionedException e) {
+                    Log.w(TAG, "provideDrmKeyResponse NotProvisionedException: " +
+                            "Unexpected. Shouldn't have reached here.");
+                    throw new IllegalStateException("provideDrmKeyResponse: " +
+                            "Unexpected provisioning error.");
+                } catch (Exception e) {
+                    Log.w(TAG, "provideDrmKeyResponse Exception " + e);
+                    throw e;
+                }
+            }
+        }
+
+        void restoreDrmKeys(byte[] keySetId)
+                throws NoDrmSchemeException {
+            synchronized (this) {
+                if (mActiveDrmUUID == null) {
+                    Log.w(TAG, "restoreDrmKeys NoDrmSchemeException");
+                    throw new NoDrmSchemeException(
+                            "restoreDrmKeys: Has to set a DRM scheme first.");
+                }
+
+                try {
+                    mDrmObj.restoreKeys(mDrmSessionId, keySetId);
+                } catch (Exception e) {
+                    Log.w(TAG, "restoreKeys Exception " + e);
+                    throw e;
+                }
+            }
+        }
+
+        String getDrmPropertyString(String propertyName)
+                throws NoDrmSchemeException {
+            String v;
+            synchronized (this) {
+
+                if (mActiveDrmUUID == null && !mDrmConfigAllowed) {
+                    Log.w(TAG, "getDrmPropertyString NoDrmSchemeException");
+                    throw new NoDrmSchemeException(
+                            "getDrmPropertyString: Has to prepareDrm() first.");
+                }
+
+                try {
+                    v = mDrmObj.getPropertyString(propertyName);
+                } catch (Exception e) {
+                    Log.w(TAG, "getDrmPropertyString Exception " + e);
+                    throw e;
+                }
+            }   // synchronized
+
+            Log.v(TAG, "getDrmPropertyString: propertyName: " + propertyName + " --> value: " + v);
+
+            return v;
+        }
+
+        void setDrmPropertyString(String propertyName, String value)
+                throws NoDrmSchemeException {
+            synchronized (this) {
+
+                if ( mActiveDrmUUID == null && !mDrmConfigAllowed ) {
+                    Log.w(TAG, "setDrmPropertyString NoDrmSchemeException");
+                    throw new NoDrmSchemeException(
+                            "setDrmPropertyString: Has to prepareDrm() first.");
+                }
+
+                try {
+                    mDrmObj.setPropertyString(propertyName, value);
+                } catch ( Exception e ) {
+                    Log.w(TAG, "setDrmPropertyString Exception " + e);
+                    throw e;
+                }
+            }
+        }
+
+    }
+
+    final class SourceInfo {
         final DataSourceDesc mDSD;
         final long mId = mSrcIdGenerator.getAndIncrement();
         AtomicInteger mBufferedPercentage = new AtomicInteger(0);
+        boolean mClosed = false;
 
         // m*AsNextSource (below) only applies to pending data sources in the playlist;
         // the meanings of mCurrentSourceInfo.{mStateAsNextSource,mPlayPendingAsNextSource}
@@ -4484,8 +4566,25 @@
         int mStateAsNextSource = NEXT_SOURCE_STATE_INIT;
         boolean mPlayPendingAsNextSource = false;
 
+        // Modular DRM
+        final DrmHandle mDrmHandle;
+        DrmInfo mDrmInfo;
+        boolean mDrmInfoResolved;
+
         SourceInfo(DataSourceDesc dsd) {
             this.mDSD = dsd;
+            mDrmHandle = new DrmHandle(dsd);
+        }
+
+        void close() {
+            synchronized (this) {
+                if (!mClosed) {
+                    if (mDSD != null) {
+                        mDSD.close();
+                    }
+                    mClosed = true;
+                }
+            }
         }
 
         @Override
@@ -4495,7 +4594,7 @@
 
     }
 
-    private SourceInfo getSourceInfoById(long srcId) {
+    private SourceInfo getSourceInfo(long srcId) {
         synchronized (mSrcLock) {
             if (isCurrentSource(srcId)) {
                 return mCurrentSourceInfo;
@@ -4507,17 +4606,68 @@
         return null;
     }
 
+    private SourceInfo getSourceInfo(DataSourceDesc dsd) {
+        synchronized (mSrcLock) {
+            if (isCurrentSource(dsd)) {
+                return mCurrentSourceInfo;
+            }
+            if (isNextSource(dsd)) {
+                return mNextSourceInfos.peek();
+            }
+        }
+        return null;
+    }
+
     private boolean isCurrentSource(long srcId) {
         synchronized (mSrcLock) {
             return mCurrentSourceInfo != null && mCurrentSourceInfo.mId == srcId;
         }
     }
 
+    private boolean isCurrentSource(DataSourceDesc dsd) {
+        synchronized (mSrcLock) {
+            return mCurrentSourceInfo != null && mCurrentSourceInfo.mDSD == dsd;
+        }
+    }
+
     private boolean isNextSource(long srcId) {
         SourceInfo nextSourceInfo = mNextSourceInfos.peek();
         return nextSourceInfo != null && nextSourceInfo.mId == srcId;
     }
 
+    private boolean isNextSource(DataSourceDesc dsd) {
+        SourceInfo nextSourceInfo = mNextSourceInfos.peek();
+        return nextSourceInfo != null && nextSourceInfo.mDSD == dsd;
+    }
+
+    @GuardedBy("mSrcLock")
+    private void setCurrentSourceInfo_l(SourceInfo sourceInfo) {
+        cleanupSourceInfo(mCurrentSourceInfo);
+        mCurrentSourceInfo = sourceInfo;
+    }
+
+    @GuardedBy("mSrcLock")
+    private void clearNextSourceInfos_l() {
+        while (!mNextSourceInfos.isEmpty()) {
+            cleanupSourceInfo(mNextSourceInfos.poll());
+        }
+    }
+
+    private void cleanupSourceInfo(SourceInfo sourceInfo) {
+        if (sourceInfo != null) {
+            sourceInfo.close();
+            Runnable task = sourceInfo.mDrmHandle.newCleanupTask();
+            mDrmThreadPool.submit(task);
+        }
+    }
+
+    private void clearSourceInfos() {
+        synchronized (mSrcLock) {
+            setCurrentSourceInfo_l(null);
+            clearNextSourceInfos_l();
+        }
+    }
+
     public static final class MetricsConstants {
         private MetricsConstants() {}
 
@@ -4625,4 +4775,17 @@
                     AudioTrack.MODE_STATIC, sessionId);
         }
     }
+
+    private void keepAudioSessionIdAlive(AudioTrack at) {
+        synchronized (mSessionIdLock) {
+            if (mDummyAudioTrack != null) {
+                if (mDummyAudioTrack.getAudioSessionId() == at.getAudioSessionId()) {
+                    at.release();
+                    return;
+                }
+                mDummyAudioTrack.release();
+            }
+            mDummyAudioTrack = at;
+        }
+    }
 }
diff --git a/media/java/android/media/MediaPlaylistAgent.java b/media/java/android/media/MediaPlaylistAgent.java
deleted file mode 100644
index 88f37e7..0000000
--- a/media/java/android/media/MediaPlaylistAgent.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.annotation.CallbackExecutor;
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.media.update.ApiLoader;
-import android.media.update.MediaPlaylistAgentProvider;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.List;
-import java.util.concurrent.Executor;
-
-/**
- * @hide
- * MediaPlaylistAgent is the abstract class an application needs to derive from to pass an object
- * to a MediaSession2 that will override default playlist handling behaviors. It contains a set of
- * notify methods to signal MediaSession2 that playlist-related state has changed.
- * <p>
- * Playlists are composed of one or multiple {@link MediaItem2} instances, which combine metadata
- * and data sources (as {@link DataSourceDesc})
- * Used by {@link MediaSession2} and {@link MediaController2}.
- */
-// This class only includes methods that contain {@link MediaItem2}.
-public abstract class MediaPlaylistAgent {
-    /**
-     * @hide
-     */
-    @IntDef({REPEAT_MODE_NONE, REPEAT_MODE_ONE, REPEAT_MODE_ALL,
-            REPEAT_MODE_GROUP})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface RepeatMode {}
-
-    /**
-     * Playback will be stopped at the end of the playing media list.
-     */
-    public static final int REPEAT_MODE_NONE = 0;
-
-    /**
-     * Playback of the current playing media item will be repeated.
-     */
-    public static final int REPEAT_MODE_ONE = 1;
-
-    /**
-     * Playing media list will be repeated.
-     */
-    public static final int REPEAT_MODE_ALL = 2;
-
-    /**
-     * Playback of the playing media group will be repeated.
-     * A group is a logical block of media items which is specified in the section 5.7 of the
-     * Bluetooth AVRCP 1.6. An example of a group is the playlist.
-     */
-    public static final int REPEAT_MODE_GROUP = 3;
-
-    /**
-     * @hide
-     */
-    @IntDef({SHUFFLE_MODE_NONE, SHUFFLE_MODE_ALL, SHUFFLE_MODE_GROUP})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface ShuffleMode {}
-
-    /**
-     * Media list will be played in order.
-     */
-    public static final int SHUFFLE_MODE_NONE = 0;
-
-    /**
-     * Media list will be played in shuffled order.
-     */
-    public static final int SHUFFLE_MODE_ALL = 1;
-
-    /**
-     * Media group will be played in shuffled order.
-     * A group is a logical block of media items which is specified in the section 5.7 of the
-     * Bluetooth AVRCP 1.6. An example of a group is the playlist.
-     */
-    public static final int SHUFFLE_MODE_GROUP = 2;
-
-    private final MediaPlaylistAgentProvider mProvider;
-
-    /**
-     * A callback class to receive notifications for events on the media player. See
-     * {@link MediaPlaylistAgent#registerPlaylistEventCallback(Executor, PlaylistEventCallback)}
-     * to register this callback.
-     */
-    public static abstract class PlaylistEventCallback {
-        /**
-         * Called when a playlist is changed.
-         *
-         * @param playlistAgent playlist agent for this event
-         * @param list new playlist
-         * @param metadata new metadata
-         */
-        public void onPlaylistChanged(@NonNull MediaPlaylistAgent playlistAgent,
-                @NonNull List<MediaItem2> list, @Nullable MediaMetadata2 metadata) { }
-
-        /**
-         * Called when a playlist metadata is changed.
-         *
-         * @param playlistAgent playlist agent for this event
-         * @param metadata new metadata
-         */
-        public void onPlaylistMetadataChanged(@NonNull MediaPlaylistAgent playlistAgent,
-                @Nullable MediaMetadata2 metadata) { }
-
-        /**
-         * Called when the shuffle mode is changed.
-         *
-         * @param playlistAgent playlist agent for this event
-         * @param shuffleMode repeat mode
-         * @see #SHUFFLE_MODE_NONE
-         * @see #SHUFFLE_MODE_ALL
-         * @see #SHUFFLE_MODE_GROUP
-         */
-        public void onShuffleModeChanged(@NonNull MediaPlaylistAgent playlistAgent,
-                @ShuffleMode int shuffleMode) { }
-
-        /**
-         * Called when the repeat mode is changed.
-         *
-         * @param playlistAgent playlist agent for this event
-         * @param repeatMode repeat mode
-         * @see #REPEAT_MODE_NONE
-         * @see #REPEAT_MODE_ONE
-         * @see #REPEAT_MODE_ALL
-         * @see #REPEAT_MODE_GROUP
-         */
-        public void onRepeatModeChanged(@NonNull MediaPlaylistAgent playlistAgent,
-                @RepeatMode int repeatMode) { }
-    }
-
-    public MediaPlaylistAgent() {
-        mProvider = ApiLoader.getProvider().createMediaPlaylistAgent(this);
-    }
-
-    /**
-     * Register {@link PlaylistEventCallback} to listen changes in the underlying
-     * {@link MediaPlaylistAgent}.
-     *
-     * @param executor a callback Executor
-     * @param callback a PlaylistEventCallback
-     * @throws IllegalArgumentException if executor or callback is {@code null}.
-     */
-    public final void registerPlaylistEventCallback(
-            @NonNull @CallbackExecutor Executor executor, @NonNull PlaylistEventCallback callback) {
-        mProvider.registerPlaylistEventCallback_impl(executor, callback);
-    }
-
-    /**
-     * Unregister the previously registered {@link PlaylistEventCallback}.
-     *
-     * @param callback the callback to be removed
-     * @throws IllegalArgumentException if the callback is {@code null}.
-     */
-    public final void unregisterPlaylistEventCallback(@NonNull PlaylistEventCallback callback) {
-        mProvider.unregisterPlaylistEventCallback_impl(callback);
-    }
-
-    public final void notifyPlaylistChanged() {
-        mProvider.notifyPlaylistChanged_impl();
-    }
-
-    public final void notifyPlaylistMetadataChanged() {
-        mProvider.notifyPlaylistMetadataChanged_impl();
-    }
-
-    public final void notifyShuffleModeChanged() {
-        mProvider.notifyShuffleModeChanged_impl();
-    }
-
-    public final void notifyRepeatModeChanged() {
-        mProvider.notifyRepeatModeChanged_impl();
-    }
-
-    /**
-     * Returns the playlist
-     *
-     * @return playlist, or null if none is set.
-     */
-    public @Nullable List<MediaItem2> getPlaylist() {
-        return mProvider.getPlaylist_impl();
-    }
-
-    /**
-     * Sets the playlist.
-     *
-     * @param list playlist
-     * @param metadata metadata of the playlist
-     */
-    public void setPlaylist(@NonNull List<MediaItem2> list, @Nullable MediaMetadata2 metadata) {
-        mProvider.setPlaylist_impl(list, metadata);
-    }
-
-    /**
-     * Returns the playlist metadata
-     *
-     * @return metadata metadata of the playlist, or null if none is set
-     */
-    public @Nullable MediaMetadata2 getPlaylistMetadata() {
-        return mProvider.getPlaylistMetadata_impl();
-    }
-
-    /**
-     * Updates the playlist metadata
-     *
-     * @param metadata metadata of the playlist
-     */
-    public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) {
-        mProvider.updatePlaylistMetadata_impl(metadata);
-    }
-
-    /**
-     * Adds the media item to the playlist at position index. Index equals or greater than
-     * the current playlist size will add the item at the end of the playlist.
-     * <p>
-     * This will not change the currently playing media item.
-     * If index is less than or equal to the current index of the playlist,
-     * the current index of the playlist will be incremented correspondingly.
-     *
-     * @param index the index you want to add
-     * @param item the media item you want to add
-     */
-    public void addPlaylistItem(int index, @NonNull MediaItem2 item) {
-        mProvider.addPlaylistItem_impl(index, item);
-    }
-
-    /**
-     * Removes the media item from the playlist
-     *
-     * @param item media item to remove
-     */
-    public void removePlaylistItem(@NonNull MediaItem2 item) {
-        mProvider.removePlaylistItem_impl(item);
-    }
-
-    /**
-     * Replace the media item at index in the playlist. This can be also used to update metadata of
-     * an item.
-     *
-     * @param index the index of the item to replace
-     * @param item the new item
-     */
-    public void replacePlaylistItem(int index, @NonNull MediaItem2 item) {
-        mProvider.replacePlaylistItem_impl(index, item);
-    }
-
-    /**
-     * Skips to the the media item, and plays from it.
-     *
-     * @param item media item to start playing from
-     */
-    public void skipToPlaylistItem(@NonNull MediaItem2 item) {
-        mProvider.skipToPlaylistItem_impl(item);
-    }
-
-    /**
-     * Skips to the previous item in the playlist.
-     */
-    public void skipToPreviousItem() {
-        mProvider.skipToPreviousItem_impl();
-    }
-
-    /**
-     * Skips to the next item in the playlist.
-     */
-    public void skipToNextItem() {
-        mProvider.skipToNextItem_impl();
-    }
-
-    /**
-     * Gets the repeat mode
-     *
-     * @return repeat mode
-     * @see #REPEAT_MODE_NONE
-     * @see #REPEAT_MODE_ONE
-     * @see #REPEAT_MODE_ALL
-     * @see #REPEAT_MODE_GROUP
-     */
-    public @RepeatMode int getRepeatMode() {
-        return mProvider.getRepeatMode_impl();
-    }
-
-    /**
-     * Sets the repeat mode
-     *
-     * @param repeatMode repeat mode
-     * @see #REPEAT_MODE_NONE
-     * @see #REPEAT_MODE_ONE
-     * @see #REPEAT_MODE_ALL
-     * @see #REPEAT_MODE_GROUP
-     */
-    public void setRepeatMode(@RepeatMode int repeatMode) {
-        mProvider.setRepeatMode_impl(repeatMode);
-    }
-
-    /**
-     * Gets the shuffle mode
-     *
-     * @return The shuffle mode
-     * @see #SHUFFLE_MODE_NONE
-     * @see #SHUFFLE_MODE_ALL
-     * @see #SHUFFLE_MODE_GROUP
-     */
-    public @ShuffleMode int getShuffleMode() {
-        return mProvider.getShuffleMode_impl();
-    }
-
-    /**
-     * Sets the shuffle mode
-     *
-     * @param shuffleMode The shuffle mode
-     * @see #SHUFFLE_MODE_NONE
-     * @see #SHUFFLE_MODE_ALL
-     * @see #SHUFFLE_MODE_GROUP
-     */
-    public void setShuffleMode(@ShuffleMode int shuffleMode) {
-        mProvider.setShuffleMode_impl(shuffleMode);
-    }
-
-    /**
-     * Called by {@link MediaSession2} when it wants to translate {@link DataSourceDesc} from the
-     * {@link MediaPlayerBase.PlayerEventCallback} to the {@link MediaItem2}. Override this method
-     * if you want to create {@link DataSourceDesc}s dynamically, instead of specifying them with
-     * {@link #setPlaylist(List, MediaMetadata2)}.
-     * <p>
-     * Session would throw an exception if this returns {@code null} for {@param dsd} from the
-     * {@link MediaPlayerBase.PlayerEventCallback}.
-     * <p>
-     * Default implementation calls the {@link #getPlaylist()} and searches the {@link MediaItem2}
-     * with the {@param dsd}.
-     *
-     * @param dsd The dsd to query.
-     * @return A {@link MediaItem2} object in the playlist that matches given {@code dsd}.
-     * @throws IllegalArgumentException if {@code dsd} is null
-     */
-    public @Nullable MediaItem2 getMediaItem(@NonNull DataSourceDesc dsd) {
-        return mProvider.getMediaItem_impl(dsd);
-    }
-}
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index 3a64f43..90cfc53 100644
--- a/media/java/android/media/MediaScanner.java
+++ b/media/java/android/media/MediaScanner.java
@@ -156,7 +156,8 @@
     private static final String NOTIFICATIONS_DIR = "/notifications/";
     private static final String ALARMS_DIR = "/alarms/";
     private static final String MUSIC_DIR = "/music/";
-    private static final String PODCAST_DIR = "/podcasts/";
+    private static final String PODCASTS_DIR = "/podcasts/";
+    private static final String AUDIOBOOKS_DIR = "/audiobooks/";
 
     public static final String SCANNED_BUILD_PREFS_NAME = "MediaScanBuild";
     public static final String LAST_INTERNAL_SCAN_FINGERPRINT = "lastScanFingerprint";
@@ -654,7 +655,7 @@
                 // rescan for metadata if file was modified since last scan
                 if (entry != null && (entry.mLastModifiedChanged || scanAlways)) {
                     if (noMedia) {
-                        result = endFile(entry, false, false, false, false, false);
+                        result = endFile(entry, false, false, false, false, false, false);
                     } else {
                         boolean isaudio = MediaFile.isAudioMimeType(mMimeType);
                         boolean isvideo = MediaFile.isVideoMimeType(mMimeType);
@@ -679,11 +680,13 @@
                         boolean notifications = mScanSuccess &&
                                 (lowpath.indexOf(NOTIFICATIONS_DIR) > 0);
                         boolean alarms = mScanSuccess && (lowpath.indexOf(ALARMS_DIR) > 0);
-                        boolean podcasts = mScanSuccess && (lowpath.indexOf(PODCAST_DIR) > 0);
+                        boolean podcasts = mScanSuccess && (lowpath.indexOf(PODCASTS_DIR) > 0);
+                        boolean audiobooks = mScanSuccess && (lowpath.indexOf(AUDIOBOOKS_DIR) > 0);
                         boolean music = mScanSuccess && ((lowpath.indexOf(MUSIC_DIR) > 0) ||
-                            (!ringtones && !notifications && !alarms && !podcasts));
+                            (!ringtones && !notifications && !alarms && !podcasts && !audiobooks));
 
-                        result = endFile(entry, ringtones, notifications, alarms, music, podcasts);
+                        result = endFile(entry, ringtones, notifications, alarms, podcasts,
+                                audiobooks, music);
                     }
                 }
             } catch (RemoteException e) {
@@ -957,7 +960,7 @@
 
         @UnsupportedAppUsage
         private Uri endFile(FileEntry entry, boolean ringtones, boolean notifications,
-                boolean alarms, boolean music, boolean podcasts)
+                boolean alarms, boolean podcasts, boolean audiobooks, boolean music)
                 throws RemoteException {
             // update database
 
@@ -1003,6 +1006,7 @@
                 values.put(Audio.Media.IS_ALARM, alarms);
                 values.put(Audio.Media.IS_MUSIC, music);
                 values.put(Audio.Media.IS_PODCAST, podcasts);
+                values.put(Audio.Media.IS_AUDIOBOOK, audiobooks);
             } else if (MediaFile.isExifMimeType(mMimeType) && !mNoMedia) {
                 ExifInterface exif = null;
                 try {
@@ -1011,12 +1015,6 @@
                     // exif is null
                 }
                 if (exif != null) {
-                    float[] latlng = new float[2];
-                    if (exif.getLatLong(latlng)) {
-                        values.put(Images.Media.LATITUDE, latlng[0]);
-                        values.put(Images.Media.LONGITUDE, latlng[1]);
-                    }
-
                     long time = exif.getGpsDateTime();
                     if (time != -1) {
                         values.put(Images.Media.DATE_TAKEN, time);
diff --git a/media/java/android/media/MediaSession2.java b/media/java/android/media/MediaSession2.java
deleted file mode 100644
index 9e97125..0000000
--- a/media/java/android/media/MediaSession2.java
+++ /dev/null
@@ -1,1388 +0,0 @@
-/*
- * Copyright 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.media;
-
-import static android.media.MediaPlayerBase.BUFFERING_STATE_UNKNOWN;
-
-import android.annotation.CallbackExecutor;
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.media.MediaPlayerBase.BuffState;
-import android.media.MediaPlayerBase.PlayerState;
-import android.media.MediaPlaylistAgent.RepeatMode;
-import android.media.MediaPlaylistAgent.ShuffleMode;
-import android.media.update.ApiLoader;
-import android.media.update.MediaSession2Provider;
-import android.media.update.MediaSession2Provider.BuilderBaseProvider;
-import android.media.update.MediaSession2Provider.CommandButtonProvider;
-import android.media.update.MediaSession2Provider.ControllerInfoProvider;
-import android.media.update.ProviderCreator;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.IInterface;
-import android.os.ResultReceiver;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.List;
-import java.util.concurrent.Executor;
-
-/**
- * @hide
- * Allows a media app to expose its transport controls and playback information in a process to
- * other processes including the Android framework and other apps. Common use cases are as follows.
- * <ul>
- *     <li>Bluetooth/wired headset key events support</li>
- *     <li>Android Auto/Wearable support</li>
- *     <li>Separating UI process and playback process</li>
- * </ul>
- * <p>
- * A MediaSession2 should be created when an app wants to publish media playback information or
- * handle media keys. In general an app only needs one session for all playback, though multiple
- * sessions can be created to provide finer grain controls of media.
- * <p>
- * A session can be obtained by {@link Builder}. The owner of the session may pass its session token
- * to other processes to allow them to create a {@link MediaController2} to interact with the
- * session.
- * <p>
- * When a session receive transport control commands, the session sends the commands directly to
- * the the underlying media player set by {@link Builder} or
- * {@link #updatePlayer}.
- * <p>
- * When an app is finished performing playback it must call {@link #close()} to clean up the session
- * and notify any controllers.
- * <p>
- * {@link MediaSession2} objects should be used on the thread on the looper.
- */
-public class MediaSession2 implements AutoCloseable {
-    private final MediaSession2Provider mProvider;
-
-    /**
-     * @hide
-     */
-    @IntDef({ERROR_CODE_UNKNOWN_ERROR, ERROR_CODE_APP_ERROR, ERROR_CODE_NOT_SUPPORTED,
-            ERROR_CODE_AUTHENTICATION_EXPIRED, ERROR_CODE_PREMIUM_ACCOUNT_REQUIRED,
-            ERROR_CODE_CONCURRENT_STREAM_LIMIT, ERROR_CODE_PARENTAL_CONTROL_RESTRICTED,
-            ERROR_CODE_NOT_AVAILABLE_IN_REGION, ERROR_CODE_CONTENT_ALREADY_PLAYING,
-            ERROR_CODE_SKIP_LIMIT_REACHED, ERROR_CODE_ACTION_ABORTED, ERROR_CODE_END_OF_QUEUE,
-            ERROR_CODE_SETUP_REQUIRED})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface ErrorCode {}
-
-    /**
-     * This is the default error code and indicates that none of the other error codes applies.
-     */
-    public static final int ERROR_CODE_UNKNOWN_ERROR = 0;
-
-    /**
-     * Error code when the application state is invalid to fulfill the request.
-     */
-    public static final int ERROR_CODE_APP_ERROR = 1;
-
-    /**
-     * Error code when the request is not supported by the application.
-     */
-    public static final int ERROR_CODE_NOT_SUPPORTED = 2;
-
-    /**
-     * Error code when the request cannot be performed because authentication has expired.
-     */
-    public static final int ERROR_CODE_AUTHENTICATION_EXPIRED = 3;
-
-    /**
-     * Error code when a premium account is required for the request to succeed.
-     */
-    public static final int ERROR_CODE_PREMIUM_ACCOUNT_REQUIRED = 4;
-
-    /**
-     * Error code when too many concurrent streams are detected.
-     */
-    public static final int ERROR_CODE_CONCURRENT_STREAM_LIMIT = 5;
-
-    /**
-     * Error code when the content is blocked due to parental controls.
-     */
-    public static final int ERROR_CODE_PARENTAL_CONTROL_RESTRICTED = 6;
-
-    /**
-     * Error code when the content is blocked due to being regionally unavailable.
-     */
-    public static final int ERROR_CODE_NOT_AVAILABLE_IN_REGION = 7;
-
-    /**
-     * Error code when the requested content is already playing.
-     */
-    public static final int ERROR_CODE_CONTENT_ALREADY_PLAYING = 8;
-
-    /**
-     * Error code when the application cannot skip any more songs because skip limit is reached.
-     */
-    public static final int ERROR_CODE_SKIP_LIMIT_REACHED = 9;
-
-    /**
-     * Error code when the action is interrupted due to some external event.
-     */
-    public static final int ERROR_CODE_ACTION_ABORTED = 10;
-
-    /**
-     * Error code when the playback navigation (previous, next) is not possible because the queue
-     * was exhausted.
-     */
-    public static final int ERROR_CODE_END_OF_QUEUE = 11;
-
-    /**
-     * Error code when the session needs user's manual intervention.
-     */
-    public static final int ERROR_CODE_SETUP_REQUIRED = 12;
-
-    /**
-     * Interface definition of a callback to be invoked when a {@link MediaItem2} in the playlist
-     * didn't have a {@link DataSourceDesc} but it's needed now for preparing or playing it.
-     *
-     * #see #setOnDataSourceMissingHelper
-     */
-    public interface OnDataSourceMissingHelper {
-        /**
-         * Called when a {@link MediaItem2} in the playlist didn't have a {@link DataSourceDesc}
-         * but it's needed now for preparing or playing it. Returned data source descriptor will be
-         * sent to the player directly to prepare or play the contents.
-         * <p>
-         * An exception may be thrown if the returned {@link DataSourceDesc} is duplicated in the
-         * playlist, so items cannot be differentiated.
-         *
-         * @param session the session for this event
-         * @param item media item from the controller
-         * @return a data source descriptor if the media item. Can be {@code null} if the content
-         *        isn't available.
-         */
-        @Nullable DataSourceDesc onDataSourceMissing(@NonNull MediaSession2 session,
-                @NonNull MediaItem2 item);
-    }
-
-    /**
-     * Callback to be called for all incoming commands from {@link MediaController2}s.
-     * <p>
-     * If it's not set, the session will accept all controllers and all incoming commands by
-     * default.
-     */
-    // TODO(jaewan): Move this to updatable for default implementation (b/74091963)
-    public static abstract class SessionCallback {
-        /**
-         * Called when a controller is created for this session. Return allowed commands for
-         * controller. By default it allows all connection requests and commands.
-         * <p>
-         * You can reject the connection by return {@code null}. In that case, controller receives
-         * {@link MediaController2.ControllerCallback#onDisconnected(MediaController2)} and cannot
-         * be usable.
-         *
-         * @param session the session for this event
-         * @param controller controller information.
-         * @return allowed commands. Can be {@code null} to reject connection.
-         */
-        public @Nullable SessionCommandGroup2 onConnect(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller) {
-            SessionCommandGroup2 commands = new SessionCommandGroup2();
-            commands.addAllPredefinedCommands();
-            return commands;
-        }
-
-        /**
-         * Called when a controller is disconnected
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         */
-        public void onDisconnected(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller) { }
-
-        /**
-         * Called when a controller sent a command that will be sent directly to the player. Return
-         * {@code false} here to reject the request and stop sending command to the player.
-         *
-         * @param session the session for this event
-         * @param controller controller information.
-         * @param command a command. This method will be called for every single command.
-         * @return {@code true} if you want to accept incoming command. {@code false} otherwise.
-         * @see SessionCommand2#COMMAND_CODE_PLAYBACK_PLAY
-         * @see SessionCommand2#COMMAND_CODE_PLAYBACK_PAUSE
-         * @see SessionCommand2#COMMAND_CODE_PLAYBACK_STOP
-         * @see SessionCommand2#COMMAND_CODE_PLAYLIST_SKIP_NEXT_ITEM
-         * @see SessionCommand2#COMMAND_CODE_PLAYLIST_SKIP_PREV_ITEM
-         * @see SessionCommand2#COMMAND_CODE_PLAYBACK_PREPARE
-         * @see SessionCommand2#COMMAND_CODE_SESSION_FAST_FORWARD
-         * @see SessionCommand2#COMMAND_CODE_SESSION_REWIND
-         * @see SessionCommand2#COMMAND_CODE_PLAYBACK_SEEK_TO
-         * @see SessionCommand2#COMMAND_CODE_PLAYLIST_SKIP_TO_PLAYLIST_ITEM
-         * @see SessionCommand2#COMMAND_CODE_PLAYLIST_ADD_ITEM
-         * @see SessionCommand2#COMMAND_CODE_PLAYLIST_REMOVE_ITEM
-         * @see SessionCommand2#COMMAND_CODE_PLAYLIST_GET_LIST
-         * @see SessionCommand2#COMMAND_CODE_SET_VOLUME
-         */
-        public boolean onCommandRequest(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller, @NonNull SessionCommand2 command) {
-            return true;
-        }
-
-        /**
-         * Called when a controller set rating of a media item through
-         * {@link MediaController2#setRating(String, Rating2)}.
-         * <p>
-         * To allow setting user rating for a {@link MediaItem2}, the media item's metadata
-         * should have {@link Rating2} with the key {@link MediaMetadata#METADATA_KEY_USER_RATING},
-         * in order to provide possible rating style for controller. Controller will follow the
-         * rating style.
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         * @param mediaId media id from the controller
-         * @param rating new rating from the controller
-         */
-        public void onSetRating(@NonNull MediaSession2 session, @NonNull ControllerInfo controller,
-                @NonNull String mediaId, @NonNull Rating2 rating) { }
-
-        /**
-         * Called when a controller sent a custom command through
-         * {@link MediaController2#sendCustomCommand(SessionCommand2, Bundle, ResultReceiver)}.
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         * @param customCommand custom command.
-         * @param args optional arguments
-         * @param cb optional result receiver
-         */
-        public void onCustomCommand(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller, @NonNull SessionCommand2 customCommand,
-                @Nullable Bundle args, @Nullable ResultReceiver cb) { }
-
-        /**
-         * Called when a controller requested to play a specific mediaId through
-         * {@link MediaController2#playFromMediaId(String, Bundle)}.
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         * @param mediaId media id
-         * @param extras optional extra bundle
-         * @see SessionCommand2#COMMAND_CODE_SESSION_PLAY_FROM_MEDIA_ID
-         */
-        public void onPlayFromMediaId(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller, @NonNull String mediaId,
-                @Nullable Bundle extras) { }
-
-        /**
-         * Called when a controller requested to begin playback from a search query through
-         * {@link MediaController2#playFromSearch(String, Bundle)}
-         * <p>
-         * An empty query indicates that the app may play any music. The implementation should
-         * attempt to make a smart choice about what to play.
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         * @param query query string. Can be empty to indicate any suggested media
-         * @param extras optional extra bundle
-         * @see SessionCommand2#COMMAND_CODE_SESSION_PLAY_FROM_SEARCH
-         */
-        public void onPlayFromSearch(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller, @NonNull String query,
-                @Nullable Bundle extras) { }
-
-        /**
-         * Called when a controller requested to play a specific media item represented by a URI
-         * through {@link MediaController2#playFromUri(Uri, Bundle)}
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         * @param uri uri
-         * @param extras optional extra bundle
-         * @see SessionCommand2#COMMAND_CODE_SESSION_PLAY_FROM_URI
-         */
-        public void onPlayFromUri(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller, @NonNull Uri uri,
-                @Nullable Bundle extras) { }
-
-        /**
-         * Called when a controller requested to prepare for playing a specific mediaId through
-         * {@link MediaController2#prepareFromMediaId(String, Bundle)}.
-         * <p>
-         * During the preparation, a session should not hold audio focus in order to allow other
-         * sessions play seamlessly. The state of playback should be updated to
-         * {@link MediaPlayerBase#PLAYER_STATE_PAUSED} after the preparation is done.
-         * <p>
-         * The playback of the prepared content should start in the later calls of
-         * {@link MediaSession2#play()}.
-         * <p>
-         * Override {@link #onPlayFromMediaId} to handle requests for starting
-         * playback without preparation.
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         * @param mediaId media id to prepare
-         * @param extras optional extra bundle
-         * @see SessionCommand2#COMMAND_CODE_SESSION_PREPARE_FROM_MEDIA_ID
-         */
-        public void onPrepareFromMediaId(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller, @NonNull String mediaId,
-                @Nullable Bundle extras) { }
-
-        /**
-         * Called when a controller requested to prepare playback from a search query through
-         * {@link MediaController2#prepareFromSearch(String, Bundle)}.
-         * <p>
-         * An empty query indicates that the app may prepare any music. The implementation should
-         * attempt to make a smart choice about what to play.
-         * <p>
-         * The state of playback should be updated to {@link MediaPlayerBase#PLAYER_STATE_PAUSED}
-         * after the preparation is done. The playback of the prepared content should start in the
-         * later calls of {@link MediaSession2#play()}.
-         * <p>
-         * Override {@link #onPlayFromSearch} to handle requests for starting playback without
-         * preparation.
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         * @param query query string. Can be empty to indicate any suggested media
-         * @param extras optional extra bundle
-         * @see SessionCommand2#COMMAND_CODE_SESSION_PREPARE_FROM_SEARCH
-         */
-        public void onPrepareFromSearch(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller, @NonNull String query,
-                @Nullable Bundle extras) { }
-
-        /**
-         * Called when a controller requested to prepare a specific media item represented by a URI
-         * through {@link MediaController2#prepareFromUri(Uri, Bundle)}.
-         * <p>
-         * During the preparation, a session should not hold audio focus in order to allow
-         * other sessions play seamlessly. The state of playback should be updated to
-         * {@link MediaPlayerBase#PLAYER_STATE_PAUSED} after the preparation is done.
-         * <p>
-         * The playback of the prepared content should start in the later calls of
-         * {@link MediaSession2#play()}.
-         * <p>
-         * Override {@link #onPlayFromUri} to handle requests for starting playback without
-         * preparation.
-         *
-         * @param session the session for this event
-         * @param controller controller information
-         * @param uri uri
-         * @param extras optional extra bundle
-         * @see SessionCommand2#COMMAND_CODE_SESSION_PREPARE_FROM_URI
-         */
-        public void onPrepareFromUri(@NonNull MediaSession2 session,
-                @NonNull ControllerInfo controller, @NonNull Uri uri, @Nullable Bundle extras) { }
-
-        /**
-         * Called when a controller called {@link MediaController2#fastForward()}
-         *
-         * @param session the session for this event
-         */
-        public void onFastForward(@NonNull MediaSession2 session) { }
-
-        /**
-         * Called when a controller called {@link MediaController2#rewind()}
-         *
-         * @param session the session for this event
-         */
-        public void onRewind(@NonNull MediaSession2 session) { }
-
-        /**
-         * Called when the player's current playing item is changed
-         * <p>
-         * When it's called, you should invalidate previous playback information and wait for later
-         * callbacks.
-         *
-         * @param session the controller for this event
-         * @param player the player for this event
-         * @param item new item
-         */
-        // TODO(jaewan): Use this (b/74316764)
-        public void onCurrentMediaItemChanged(@NonNull MediaSession2 session,
-                @NonNull MediaPlayerBase player, @NonNull MediaItem2 item) { }
-
-        /**
-         * Called when the player is <i>prepared</i>, i.e. it is ready to play the content
-         * referenced by the given data source.
-         * @param session the session for this event
-         * @param player the player for this event
-         * @param item the media item for which buffering is happening
-         */
-        public void onMediaPrepared(@NonNull MediaSession2 session, @NonNull MediaPlayerBase player,
-                @NonNull MediaItem2 item) { }
-
-        /**
-         * Called to indicate that the state of the player has changed.
-         * See {@link MediaPlayerBase#getPlayerState()} for polling the player state.
-         * @param session the session for this event
-         * @param player the player for this event
-         * @param state the new state of the player.
-         */
-        public void onPlayerStateChanged(@NonNull MediaSession2 session,
-                @NonNull MediaPlayerBase player, @PlayerState int state) { }
-
-        /**
-         * Called to report buffering events for a data source.
-         *
-         * @param session the session for this event
-         * @param player the player for this event
-         * @param item the media item for which buffering is happening.
-         * @param state the new buffering state.
-         */
-        public void onBufferingStateChanged(@NonNull MediaSession2 session,
-                @NonNull MediaPlayerBase player, @NonNull MediaItem2 item, @BuffState int state) { }
-
-        /**
-         * Called to indicate that the playback speed has changed.
-         * @param session the session for this event
-         * @param player the player for this event
-         * @param speed the new playback speed.
-         */
-        public void onPlaybackSpeedChanged(@NonNull MediaSession2 session,
-                @NonNull MediaPlayerBase player, float speed) { }
-
-        /**
-         * Called to indicate that {@link #seekTo(long)} is completed.
-         *
-         * @param session the session for this event.
-         * @param mpb the player that has completed seeking.
-         * @param position the previous seeking request.
-         * @see #seekTo(long)
-         */
-        public void onSeekCompleted(@NonNull MediaSession2 session, @NonNull MediaPlayerBase mpb,
-                long position) { }
-
-        /**
-         * Called when a playlist is changed from the {@link MediaPlaylistAgent}.
-         * <p>
-         * This is called when the underlying agent has called
-         * {@link MediaPlaylistAgent.PlaylistEventCallback#onPlaylistChanged(MediaPlaylistAgent,
-         * List, MediaMetadata2)}.
-         *
-         * @param session the session for this event
-         * @param playlistAgent playlist agent for this event
-         * @param list new playlist
-         * @param metadata new metadata
-         */
-        public void onPlaylistChanged(@NonNull MediaSession2 session,
-                @NonNull MediaPlaylistAgent playlistAgent, @NonNull List<MediaItem2> list,
-                @Nullable MediaMetadata2 metadata) { }
-
-        /**
-         * Called when a playlist metadata is changed.
-         *
-         * @param session the session for this event
-         * @param playlistAgent playlist agent for this event
-         * @param metadata new metadata
-         */
-        public void onPlaylistMetadataChanged(@NonNull MediaSession2 session,
-                @NonNull MediaPlaylistAgent playlistAgent, @Nullable MediaMetadata2 metadata) { }
-
-        /**
-         * Called when the shuffle mode is changed.
-         *
-         * @param session the session for this event
-         * @param playlistAgent playlist agent for this event
-         * @param shuffleMode repeat mode
-         * @see MediaPlaylistAgent#SHUFFLE_MODE_NONE
-         * @see MediaPlaylistAgent#SHUFFLE_MODE_ALL
-         * @see MediaPlaylistAgent#SHUFFLE_MODE_GROUP
-         */
-        public void onShuffleModeChanged(@NonNull MediaSession2 session,
-                @NonNull MediaPlaylistAgent playlistAgent,
-                @MediaPlaylistAgent.ShuffleMode int shuffleMode) { }
-
-        /**
-         * Called when the repeat mode is changed.
-         *
-         * @param session the session for this event
-         * @param playlistAgent playlist agent for this event
-         * @param repeatMode repeat mode
-         * @see MediaPlaylistAgent#REPEAT_MODE_NONE
-         * @see MediaPlaylistAgent#REPEAT_MODE_ONE
-         * @see MediaPlaylistAgent#REPEAT_MODE_ALL
-         * @see MediaPlaylistAgent#REPEAT_MODE_GROUP
-         */
-        public void onRepeatModeChanged(@NonNull MediaSession2 session,
-                @NonNull MediaPlaylistAgent playlistAgent,
-                @MediaPlaylistAgent.RepeatMode int repeatMode) { }
-    }
-
-    /**
-     * Base builder class for MediaSession2 and its subclass. Any change in this class should be
-     * also applied to the subclasses {@link MediaSession2.Builder} and
-     * {@link MediaLibraryService2.MediaLibrarySession.Builder}.
-     * <p>
-     * APIs here should be package private, but should have documentations for developers.
-     * Otherwise, javadoc will generate documentation with the generic types such as follows.
-     * <pre>U extends BuilderBase<T, U, C> setSessionCallback(Executor executor, C callback)</pre>
-     * <p>
-     * This class is hidden to prevent from generating test stub, which fails with
-     * 'unexpected bound' because it tries to auto generate stub class as follows.
-     * <pre>abstract static class BuilderBase<
-     *      T extends android.media.MediaSession2,
-     *      U extends android.media.MediaSession2.BuilderBase<
-     *              T, U, C extends android.media.MediaSession2.SessionCallback>, C></pre>
-     * @hide
-     */
-    static abstract class BuilderBase
-            <T extends MediaSession2, U extends BuilderBase<T, U, C>, C extends SessionCallback> {
-        private final BuilderBaseProvider<T, C> mProvider;
-
-        BuilderBase(ProviderCreator<BuilderBase<T, U, C>, BuilderBaseProvider<T, C>> creator) {
-            mProvider = creator.createProvider(this);
-        }
-
-        /**
-         * Sets the underlying {@link MediaPlayerBase} for this session to dispatch incoming event
-         * to.
-         *
-         * @param player a {@link MediaPlayerBase} that handles actual media playback in your app.
-         */
-        @NonNull U setPlayer(@NonNull MediaPlayerBase player) {
-            mProvider.setPlayer_impl(player);
-            return (U) this;
-        }
-
-        /**
-         * Sets the {@link MediaPlaylistAgent} for this session to manages playlist of the
-         * underlying {@link MediaPlayerBase}. The playlist agent should manage
-         * {@link MediaPlayerBase} for calling {@link MediaPlayerBase#setNextDataSources(List)}.
-         * <p>
-         * If the {@link MediaPlaylistAgent} isn't set, session will create the default playlist
-         * agent.
-         *
-         * @param playlistAgent a {@link MediaPlaylistAgent} that manages playlist of the
-         *                      {@code player}
-         */
-        U setPlaylistAgent(@NonNull MediaPlaylistAgent playlistAgent) {
-            mProvider.setPlaylistAgent_impl(playlistAgent);
-            return (U) this;
-        }
-
-        /**
-         * Sets the {@link VolumeProvider2} for this session to handle volume events. If not set,
-         * system will adjust the appropriate stream volume for this session's player.
-         *
-         * @param volumeProvider The provider that will receive volume button events.
-         */
-        @NonNull U setVolumeProvider(@Nullable VolumeProvider2 volumeProvider) {
-            mProvider.setVolumeProvider_impl(volumeProvider);
-            return (U) this;
-        }
-
-        /**
-         * Set an intent for launching UI for this Session. This can be used as a
-         * quick link to an ongoing media screen. The intent should be for an
-         * activity that may be started using {@link Context#startActivity(Intent)}.
-         *
-         * @param pi The intent to launch to show UI for this session.
-         */
-        @NonNull U setSessionActivity(@Nullable PendingIntent pi) {
-            mProvider.setSessionActivity_impl(pi);
-            return (U) this;
-        }
-
-        /**
-         * Set ID of the session. If it's not set, an empty string with used to create a session.
-         * <p>
-         * Use this if and only if your app supports multiple playback at the same time and also
-         * wants to provide external apps to have finer controls of them.
-         *
-         * @param id id of the session. Must be unique per package.
-         * @throws IllegalArgumentException if id is {@code null}
-         * @return
-         */
-        @NonNull U setId(@NonNull String id) {
-            mProvider.setId_impl(id);
-            return (U) this;
-        }
-
-        /**
-         * Set callback for the session.
-         *
-         * @param executor callback executor
-         * @param callback session callback.
-         * @return
-         */
-        @NonNull U setSessionCallback(@NonNull @CallbackExecutor Executor executor,
-                @NonNull C callback) {
-            mProvider.setSessionCallback_impl(executor, callback);
-            return (U) this;
-        }
-
-        /**
-         * Build {@link MediaSession2}.
-         *
-         * @return a new session
-         * @throws IllegalStateException if the session with the same id is already exists for the
-         *      package.
-         */
-        @NonNull T build() {
-            return mProvider.build_impl();
-        }
-    }
-
-    /**
-     * Builder for {@link MediaSession2}.
-     * <p>
-     * Any incoming event from the {@link MediaController2} will be handled on the thread
-     * that created session with the {@link Builder#build()}.
-     */
-    // Override all methods just to show them with the type instead of generics in Javadoc.
-    // This workarounds javadoc issue described in the MediaSession2.BuilderBase.
-    public static final class Builder extends BuilderBase<MediaSession2, Builder, SessionCallback> {
-        public Builder(Context context) {
-            super((instance) -> ApiLoader.getProvider().createMediaSession2Builder(
-                    context, (Builder) instance));
-        }
-
-        @Override
-        public @NonNull Builder setPlayer(@NonNull MediaPlayerBase player) {
-            return super.setPlayer(player);
-        }
-
-        @Override
-        public Builder setPlaylistAgent(@NonNull MediaPlaylistAgent playlistAgent) {
-            return super.setPlaylistAgent(playlistAgent);
-        }
-
-        @Override
-        public @NonNull Builder setVolumeProvider(@Nullable VolumeProvider2 volumeProvider) {
-            return super.setVolumeProvider(volumeProvider);
-        }
-
-        @Override
-        public @NonNull Builder setSessionActivity(@Nullable PendingIntent pi) {
-            return super.setSessionActivity(pi);
-        }
-
-        @Override
-        public @NonNull Builder setId(@NonNull String id) {
-            return super.setId(id);
-        }
-
-        @Override
-        public @NonNull Builder setSessionCallback(@NonNull Executor executor,
-                @Nullable SessionCallback callback) {
-            return super.setSessionCallback(executor, callback);
-        }
-
-        @Override
-        public @NonNull MediaSession2 build() {
-            return super.build();
-        }
-    }
-
-    /**
-     * Information of a controller.
-     */
-    public static final class ControllerInfo {
-        private final ControllerInfoProvider mProvider;
-
-        /**
-         * @hide
-         */
-        public ControllerInfo(@NonNull Context context, int uid, int pid,
-                @NonNull String packageName, @NonNull IInterface callback) {
-            mProvider = ApiLoader.getProvider().createMediaSession2ControllerInfo(
-                    context, this, uid, pid, packageName, callback);
-        }
-
-        /**
-         * @return package name of the controller
-         */
-        public @NonNull String getPackageName() {
-            return mProvider.getPackageName_impl();
-        }
-
-        /**
-         * @return uid of the controller
-         */
-        public int getUid() {
-            return mProvider.getUid_impl();
-        }
-
-        /**
-         * Return if the controller has granted {@code android.permission.MEDIA_CONTENT_CONTROL} or
-         * has a enabled notification listener so can be trusted to accept connection and incoming
-         * command request.
-         *
-         * @return {@code true} if the controller is trusted.
-         */
-        public boolean isTrusted() {
-            return mProvider.isTrusted_impl();
-        }
-
-        /**
-         * @hide
-         */
-        public @NonNull ControllerInfoProvider getProvider() {
-            return mProvider;
-        }
-
-        @Override
-        public int hashCode() {
-            return mProvider.hashCode_impl();
-        }
-
-        @Override
-        public boolean equals(Object obj) {
-            return mProvider.equals_impl(obj);
-        }
-
-        @Override
-        public String toString() {
-            return mProvider.toString_impl();
-        }
-    }
-
-    /**
-     * Button for a {@link SessionCommand2} that will be shown by the controller.
-     * <p>
-     * It's up to the controller's decision to respect or ignore this customization request.
-     */
-    public static final class CommandButton {
-        private final CommandButtonProvider mProvider;
-
-        /**
-         * @hide
-         */
-        public CommandButton(CommandButtonProvider provider) {
-            mProvider = provider;
-        }
-
-        /**
-         * Get command associated with this button. Can be {@code null} if the button isn't enabled
-         * and only providing placeholder.
-         *
-         * @return command or {@code null}
-         */
-        public @Nullable
-        SessionCommand2 getCommand() {
-            return mProvider.getCommand_impl();
-        }
-
-        /**
-         * Resource id of the button in this package. Can be {@code 0} if the command is predefined
-         * and custom icon isn't needed.
-         *
-         * @return resource id of the icon. Can be {@code 0}.
-         */
-        public int getIconResId() {
-            return mProvider.getIconResId_impl();
-        }
-
-        /**
-         * Display name of the button. Can be {@code null} or empty if the command is predefined
-         * and custom name isn't needed.
-         *
-         * @return custom display name. Can be {@code null} or empty.
-         */
-        public @Nullable String getDisplayName() {
-            return mProvider.getDisplayName_impl();
-        }
-
-        /**
-         * Extra information of the button. It's private information between session and controller.
-         *
-         * @return
-         */
-        public @Nullable Bundle getExtras() {
-            return mProvider.getExtras_impl();
-        }
-
-        /**
-         * Return whether it's enabled
-         *
-         * @return {@code true} if enabled. {@code false} otherwise.
-         */
-        public boolean isEnabled() {
-            return mProvider.isEnabled_impl();
-        }
-
-        /**
-         * @hide
-         */
-        public @NonNull CommandButtonProvider getProvider() {
-            return mProvider;
-        }
-
-        /**
-         * Builder for {@link CommandButton}.
-         */
-        public static final class Builder {
-            private final CommandButtonProvider.BuilderProvider mProvider;
-
-            public Builder() {
-                mProvider = ApiLoader.getProvider().createMediaSession2CommandButtonBuilder(this);
-            }
-
-            public @NonNull Builder setCommand(@Nullable SessionCommand2 command) {
-                return mProvider.setCommand_impl(command);
-            }
-
-            public @NonNull Builder setIconResId(int resId) {
-                return mProvider.setIconResId_impl(resId);
-            }
-
-            public @NonNull Builder setDisplayName(@Nullable String displayName) {
-                return mProvider.setDisplayName_impl(displayName);
-            }
-
-            public @NonNull Builder setEnabled(boolean enabled) {
-                return mProvider.setEnabled_impl(enabled);
-            }
-
-            public @NonNull Builder setExtras(@Nullable Bundle extras) {
-                return mProvider.setExtras_impl(extras);
-            }
-
-            public @NonNull CommandButton build() {
-                return mProvider.build_impl();
-            }
-        }
-    }
-
-    /**
-     * Constructor is hidden and apps can only instantiate indirectly through {@link Builder}.
-     * <p>
-     * This intended behavior and here's the reasons.
-     *    1. Prevent multiple sessions with the same tag in a media app.
-     *       Whenever it happens only one session was properly setup and others were all dummies.
-     *       Android framework couldn't find the right session to dispatch media key event.
-     *    2. Simplify session's lifecycle.
-     *       {@link android.media.session.MediaSession} is available after all of
-     *       {@link android.media.session.MediaSession#setFlags(int)},
-     *       {@link android.media.session.MediaSession#setCallback(
-     *              android.media.session.MediaSession.Callback)},
-     *       and {@link android.media.session.MediaSession#setActive(boolean)}.
-     *       It was common for an app to omit one, so framework had to add heuristics to figure out
-     *       which should be the highest priority for handling media key event.
-     * @hide
-     */
-    public MediaSession2(MediaSession2Provider provider) {
-        super();
-        mProvider = provider;
-    }
-
-    /**
-     * @hide
-     */
-    public @NonNull MediaSession2Provider getProvider() {
-        return mProvider;
-    }
-
-    /**
-     * Sets the underlying {@link MediaPlayerBase} and {@link MediaPlaylistAgent} for this session
-     * to dispatch incoming event to.
-     * <p>
-     * When a {@link MediaPlaylistAgent} is specified here, the playlist agent should manage
-     * {@link MediaPlayerBase} for calling {@link MediaPlayerBase#setNextDataSources(List)}.
-     * <p>
-     * If the {@link MediaPlaylistAgent} isn't set, session will recreate the default playlist
-     * agent.
-     *
-     * @param player a {@link MediaPlayerBase} that handles actual media playback in your app
-     * @param playlistAgent a {@link MediaPlaylistAgent} that manages playlist of the {@code player}
-     * @param volumeProvider a {@link VolumeProvider2}. If {@code null}, system will adjust the
-     *                       appropriate stream volume for this session's player.
-     */
-    public void updatePlayer(@NonNull MediaPlayerBase player,
-            @Nullable MediaPlaylistAgent playlistAgent, @Nullable VolumeProvider2 volumeProvider) {
-        mProvider.updatePlayer_impl(player, playlistAgent, volumeProvider);
-    }
-
-    @Override
-    public void close() {
-        mProvider.close_impl();
-    }
-
-    /**
-     * @return player
-     */
-    public @NonNull MediaPlayerBase getPlayer() {
-        return mProvider.getPlayer_impl();
-    }
-
-    /**
-     * @return playlist agent
-     */
-    public @NonNull MediaPlaylistAgent getPlaylistAgent() {
-        return mProvider.getPlaylistAgent_impl();
-    }
-
-    /**
-     * @return volume provider
-     */
-    public @Nullable VolumeProvider2 getVolumeProvider() {
-        return mProvider.getVolumeProvider_impl();
-    }
-
-    /**
-     * Returns the {@link SessionToken2} for creating {@link MediaController2}.
-     */
-    public @NonNull
-    SessionToken2 getToken() {
-        return mProvider.getToken_impl();
-    }
-
-    public @NonNull List<ControllerInfo> getConnectedControllers() {
-        return mProvider.getConnectedControllers_impl();
-    }
-
-    /**
-     * Set the {@link AudioFocusRequest} to obtain the audio focus
-     *
-     * @param afr the full request parameters
-     */
-    public void setAudioFocusRequest(@Nullable AudioFocusRequest afr) {
-        // TODO(jaewan): implement this (b/72529899)
-        // mProvider.setAudioFocusRequest_impl(focusGain);
-    }
-
-    /**
-     * Sets ordered list of {@link CommandButton} for controllers to build UI with it.
-     * <p>
-     * It's up to controller's decision how to represent the layout in its own UI.
-     * Here's the same way
-     * (layout[i] means a CommandButton at index i in the given list)
-     * For 5 icons row
-     *      layout[3] layout[1] layout[0] layout[2] layout[4]
-     * For 3 icons row
-     *      layout[1] layout[0] layout[2]
-     * For 5 icons row with overflow icon (can show +5 extra buttons with overflow button)
-     *      expanded row:   layout[5] layout[6] layout[7] layout[8] layout[9]
-     *      main row:       layout[3] layout[1] layout[0] layout[2] layout[4]
-     * <p>
-     * This API can be called in the {@link SessionCallback#onConnect(
-     * MediaSession2, ControllerInfo)}.
-     *
-     * @param controller controller to specify layout.
-     * @param layout ordered list of layout.
-     */
-    public void setCustomLayout(@NonNull ControllerInfo controller,
-            @NonNull List<CommandButton> layout) {
-        mProvider.setCustomLayout_impl(controller, layout);
-    }
-
-    /**
-     * Set the new allowed command group for the controller
-     *
-     * @param controller controller to change allowed commands
-     * @param commands new allowed commands
-     */
-    public void setAllowedCommands(@NonNull ControllerInfo controller,
-            @NonNull SessionCommandGroup2 commands) {
-        mProvider.setAllowedCommands_impl(controller, commands);
-    }
-
-    /**
-     * Send custom command to all connected controllers.
-     *
-     * @param command a command
-     * @param args optional argument
-     */
-    public void sendCustomCommand(@NonNull SessionCommand2 command, @Nullable Bundle args) {
-        mProvider.sendCustomCommand_impl(command, args);
-    }
-
-    /**
-     * Send custom command to a specific controller.
-     *
-     * @param command a command
-     * @param args optional argument
-     * @param receiver result receiver for the session
-     */
-    public void sendCustomCommand(@NonNull ControllerInfo controller,
-            @NonNull SessionCommand2 command, @Nullable Bundle args,
-            @Nullable ResultReceiver receiver) {
-        // Equivalent to the MediaController.sendCustomCommand(Action action, ResultReceiver r);
-        mProvider.sendCustomCommand_impl(controller, command, args, receiver);
-    }
-
-    /**
-     * Play playback
-     * <p>
-     * This calls {@link MediaPlayerBase#play()}.
-     */
-    public void play() {
-        mProvider.play_impl();
-    }
-
-    /**
-     * Pause playback.
-     * <p>
-     * This calls {@link MediaPlayerBase#pause()}.
-     */
-    public void pause() {
-        mProvider.pause_impl();
-    }
-
-    /**
-     * Stop playback, and reset the player to the initial state.
-     * <p>
-     * This calls {@link MediaPlayerBase#reset()}.
-     */
-    public void stop() {
-        mProvider.stop_impl();
-    }
-
-    /**
-     * Request that the player prepare its playback. In other words, other sessions can continue
-     * to play during the preparation of this session. This method can be used to speed up the
-     * start of the playback. Once the preparation is done, the session will change its playback
-     * state to {@link MediaPlayerBase#PLAYER_STATE_PAUSED}. Afterwards, {@link #play} can be called
-     * to start playback.
-     * <p>
-     * This calls {@link MediaPlayerBase#reset()}.
-     */
-    public void prepare() {
-        mProvider.prepare_impl();
-    }
-
-    /**
-     * Move to a new location in the media stream.
-     *
-     * @param pos Position to move to, in milliseconds.
-     */
-    public void seekTo(long pos) {
-        mProvider.seekTo_impl(pos);
-    }
-
-    /**
-     * @hide
-     */
-    public void skipForward() {
-        // To match with KEYCODE_MEDIA_SKIP_FORWARD
-    }
-
-    /**
-     * @hide
-     */
-    public void skipBackward() {
-        // To match with KEYCODE_MEDIA_SKIP_BACKWARD
-    }
-
-    /**
-     * Notify errors to the connected controllers
-     *
-     * @param errorCode error code
-     * @param extras extras
-     */
-    public void notifyError(@ErrorCode int errorCode, @Nullable Bundle extras) {
-        mProvider.notifyError_impl(errorCode, extras);
-    }
-
-    /**
-     * Gets the current player state.
-     *
-     * @return the current player state
-     */
-    public @PlayerState int getPlayerState() {
-        return mProvider.getPlayerState_impl();
-    }
-
-    /**
-     * Gets the current position.
-     *
-     * @return the current playback position in ms, or {@link MediaPlayerBase#UNKNOWN_TIME} if
-     *         unknown.
-     */
-    public long getCurrentPosition() {
-        return mProvider.getCurrentPosition_impl();
-    }
-
-    /**
-     * Gets the buffered position, or {@link MediaPlayerBase#UNKNOWN_TIME} if unknown.
-     *
-     * @return the buffered position in ms, or {@link MediaPlayerBase#UNKNOWN_TIME}.
-     */
-    public long getBufferedPosition() {
-        return mProvider.getBufferedPosition_impl();
-    }
-
-    /**
-     * Gets the current buffering state of the player.
-     * During buffering, see {@link #getBufferedPosition()} for the quantifying the amount already
-     * buffered.
-     *
-     * @return the buffering state.
-     */
-    public @BuffState int getBufferingState() {
-        // TODO(jaewan): Implement this
-        return BUFFERING_STATE_UNKNOWN;
-    }
-
-    /**
-     * Get the playback speed.
-     *
-     * @return speed
-     */
-    public float getPlaybackSpeed() {
-        // TODO(jaewan): implement this (b/74093080)
-        return -1;
-    }
-
-    /**
-     * Set the playback speed.
-     */
-    public void setPlaybackSpeed(float speed) {
-        // TODO(jaewan): implement this (b/74093080)
-    }
-
-    /**
-     * Sets the data source missing helper. Helper will be used to provide default implementation of
-     * {@link MediaPlaylistAgent} when it isn't set by developer.
-     * <p>
-     * Default implementation of the {@link MediaPlaylistAgent} will call helper when a
-     * {@link MediaItem2} in the playlist doesn't have a {@link DataSourceDesc}. This may happen
-     * when
-     * <ul>
-     *      <li>{@link MediaItem2} specified by {@link #setPlaylist(List, MediaMetadata2)} doesn't
-     *          have {@link DataSourceDesc}</li>
-     *      <li>{@link MediaController2#addPlaylistItem(int, MediaItem2)} is called and accepted
-     *          by {@link SessionCallback#onCommandRequest(
-     *          MediaSession2, ControllerInfo, SessionCommand2)}.
-     *          In that case, an item would be added automatically without the data source.</li>
-     * </ul>
-     * <p>
-     * If it's not set, playback wouldn't happen for the item without data source descriptor.
-     * <p>
-     * The helper will be run on the executor that was specified by
-     * {@link Builder#setSessionCallback(Executor, SessionCallback)}.
-     *
-     * @param helper a data source missing helper.
-     * @throws IllegalStateException when the helper is set when the playlist agent is set
-     * @see #setPlaylist(List, MediaMetadata2)
-     * @see SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)
-     * @see SessionCommand2#COMMAND_CODE_PLAYLIST_ADD_ITEM
-     * @see SessionCommand2#COMMAND_CODE_PLAYLIST_REPLACE_ITEM
-     */
-    public void setOnDataSourceMissingHelper(@NonNull OnDataSourceMissingHelper helper) {
-        mProvider.setOnDataSourceMissingHelper_impl(helper);
-    }
-
-    /**
-     * Clears the data source missing helper.
-     *
-     * @see #setOnDataSourceMissingHelper(OnDataSourceMissingHelper)
-     */
-    public void clearOnDataSourceMissingHelper() {
-        mProvider.clearOnDataSourceMissingHelper_impl();
-    }
-
-    /**
-     * Returns the playlist from the {@link MediaPlaylistAgent}.
-     * <p>
-     * This list may differ with the list that was specified with
-     * {@link #setPlaylist(List, MediaMetadata2)} depending on the {@link MediaPlaylistAgent}
-     * implementation. Use media items returned here for other playlist agent APIs such as
-     * {@link MediaPlaylistAgent#skipToPlaylistItem(MediaItem2)}.
-     *
-     * @return playlist
-     * @see MediaPlaylistAgent#getPlaylist()
-     * @see SessionCallback#onPlaylistChanged(
-     *          MediaSession2, MediaPlaylistAgent, List, MediaMetadata2)
-     */
-    public List<MediaItem2> getPlaylist() {
-        return mProvider.getPlaylist_impl();
-    }
-
-    /**
-     * Sets a list of {@link MediaItem2} to the {@link MediaPlaylistAgent}. Ensure uniqueness of
-     * each {@link MediaItem2} in the playlist so the session can uniquely identity individual
-     * items.
-     * <p>
-     * This may be an asynchronous call, and {@link MediaPlaylistAgent} may keep the copy of the
-     * list. Wait for {@link SessionCallback#onPlaylistChanged(MediaSession2, MediaPlaylistAgent,
-     * List, MediaMetadata2)} to know the operation finishes.
-     * <p>
-     * You may specify a {@link MediaItem2} without {@link DataSourceDesc}. In that case,
-     * {@link MediaPlaylistAgent} has responsibility to dynamically query {@link DataSourceDesc}
-     * when such media item is ready for preparation or play. Default implementation needs
-     * {@link OnDataSourceMissingHelper} for such case.
-     *
-     * @param list A list of {@link MediaItem2} objects to set as a play list.
-     * @throws IllegalArgumentException if given list is {@code null}, or has duplicated media
-     * items.
-     * @see MediaPlaylistAgent#setPlaylist(List, MediaMetadata2)
-     * @see SessionCallback#onPlaylistChanged(
-     *          MediaSession2, MediaPlaylistAgent, List, MediaMetadata2)
-     * @see #setOnDataSourceMissingHelper
-     */
-    public void setPlaylist(@NonNull List<MediaItem2> list, @Nullable MediaMetadata2 metadata) {
-        mProvider.setPlaylist_impl(list, metadata);
-    }
-
-    /**
-     * Skips to the item in the playlist.
-     * <p>
-     * This calls {@link MediaPlaylistAgent#skipToPlaylistItem(MediaItem2)} and the behavior depends
-     * on the playlist agent implementation, especially with the shuffle/repeat mode.
-     *
-     * @param item The item in the playlist you want to play
-     * @see #getShuffleMode()
-     * @see #getRepeatMode()
-     */
-    public void skipToPlaylistItem(@NonNull MediaItem2 item) {
-        mProvider.skipToPlaylistItem_impl(item);
-    }
-
-    /**
-     * Skips to the previous item.
-     * <p>
-     * This calls {@link MediaPlaylistAgent#skipToPreviousItem()} and the behavior depends on the
-     * playlist agent implementation, especially with the shuffle/repeat mode.
-     *
-     * @see #getShuffleMode()
-     * @see #getRepeatMode()
-     **/
-    public void skipToPreviousItem() {
-        mProvider.skipToPreviousItem_impl();
-    }
-
-    /**
-     * Skips to the next item.
-     * <p>
-     * This calls {@link MediaPlaylistAgent#skipToNextItem()} and the behavior depends on the
-     * playlist agent implementation, especially with the shuffle/repeat mode.
-     *
-     * @see #getShuffleMode()
-     * @see #getRepeatMode()
-     */
-    public void skipToNextItem() {
-        mProvider.skipToNextItem_impl();
-    }
-
-    /**
-     * Gets the playlist metadata from the {@link MediaPlaylistAgent}.
-     *
-     * @return the playlist metadata
-     */
-    public MediaMetadata2 getPlaylistMetadata() {
-        return mProvider.getPlaylistMetadata_impl();
-    }
-
-    /**
-     * Adds the media item to the playlist at position index. Index equals or greater than
-     * the current playlist size will add the item at the end of the playlist.
-     * <p>
-     * This will not change the currently playing media item.
-     * If index is less than or equal to the current index of the play list,
-     * the current index of the play list will be incremented correspondingly.
-     *
-     * @param index the index you want to add
-     * @param item the media item you want to add
-     */
-    public void addPlaylistItem(int index, @NonNull MediaItem2 item) {
-        mProvider.addPlaylistItem_impl(index, item);
-    }
-
-    /**
-     * Removes the media item in the playlist.
-     * <p>
-     * If the item is the currently playing item of the playlist, current playback
-     * will be stopped and playback moves to next source in the list.
-     *
-     * @param item the media item you want to add
-     */
-    public void removePlaylistItem(@NonNull MediaItem2 item) {
-        mProvider.removePlaylistItem_impl(item);
-    }
-
-    /**
-     * Replaces the media item at index in the playlist. This can be also used to update metadata of
-     * an item.
-     *
-     * @param index the index of the item to replace
-     * @param item the new item
-     */
-    public void replacePlaylistItem(int index, @NonNull MediaItem2 item) {
-        mProvider.replacePlaylistItem_impl(index, item);
-    }
-
-    /**
-     * Return currently playing media item.
-     *
-     * @return currently playing media item
-     */
-    public MediaItem2 getCurrentMediaItem() {
-        // TODO(jaewan): Rename provider, and implement (b/74316764)
-        return mProvider.getCurrentPlaylistItem_impl();
-    }
-
-    /**
-     * Updates the playlist metadata to the {@link MediaPlaylistAgent}.
-     *
-     * @param metadata metadata of the playlist
-     */
-    public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) {
-        mProvider.updatePlaylistMetadata_impl(metadata);
-    }
-
-    /**
-     * Gets the repeat mode from the {@link MediaPlaylistAgent}.
-     *
-     * @return repeat mode
-     * @see MediaPlaylistAgent#REPEAT_MODE_NONE
-     * @see MediaPlaylistAgent#REPEAT_MODE_ONE
-     * @see MediaPlaylistAgent#REPEAT_MODE_ALL
-     * @see MediaPlaylistAgent#REPEAT_MODE_GROUP
-     */
-    public @RepeatMode int getRepeatMode() {
-        return mProvider.getRepeatMode_impl();
-    }
-
-    /**
-     * Sets the repeat mode to the {@link MediaPlaylistAgent}.
-     *
-     * @param repeatMode repeat mode
-     * @see MediaPlaylistAgent#REPEAT_MODE_NONE
-     * @see MediaPlaylistAgent#REPEAT_MODE_ONE
-     * @see MediaPlaylistAgent#REPEAT_MODE_ALL
-     * @see MediaPlaylistAgent#REPEAT_MODE_GROUP
-     */
-    public void setRepeatMode(@RepeatMode int repeatMode) {
-        mProvider.setRepeatMode_impl(repeatMode);
-    }
-
-    /**
-     * Gets the shuffle mode from the {@link MediaPlaylistAgent}.
-     *
-     * @return The shuffle mode
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_NONE
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_ALL
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_GROUP
-     */
-    public @ShuffleMode int getShuffleMode() {
-        return mProvider.getShuffleMode_impl();
-    }
-
-    /**
-     * Sets the shuffle mode to the {@link MediaPlaylistAgent}.
-     *
-     * @param shuffleMode The shuffle mode
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_NONE
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_ALL
-     * @see MediaPlaylistAgent#SHUFFLE_MODE_GROUP
-     */
-    public void setShuffleMode(@ShuffleMode int shuffleMode) {
-        mProvider.setShuffleMode_impl(shuffleMode);
-    }
-}
diff --git a/media/java/android/media/Rating2.java b/media/java/android/media/Rating2.java
deleted file mode 100644
index 9213190..0000000
--- a/media/java/android/media/Rating2.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.annotation.IntDef;
-import android.media.update.ApiLoader;
-import android.media.update.Rating2Provider;
-import android.os.Bundle;
-import android.util.Log;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * @hide
- * A class to encapsulate rating information used as content metadata.
- * A rating is defined by its rating style (see {@link #RATING_HEART},
- * {@link #RATING_THUMB_UP_DOWN}, {@link #RATING_3_STARS}, {@link #RATING_4_STARS},
- * {@link #RATING_5_STARS} or {@link #RATING_PERCENTAGE}) and the actual rating value (which may
- * be defined as "unrated"), both of which are defined when the rating instance is constructed
- * through one of the factory methods.
- */
-// New version of Rating with following change
-//   - Don't implement Parcelable for updatable support.
-public final class Rating2 {
-    /**
-     * @hide
-     */
-    @IntDef({RATING_NONE, RATING_HEART, RATING_THUMB_UP_DOWN, RATING_3_STARS, RATING_4_STARS,
-            RATING_5_STARS, RATING_PERCENTAGE})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface Style {}
-
-    /**
-     * @hide
-     */
-    @IntDef({RATING_3_STARS, RATING_4_STARS, RATING_5_STARS})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface StarStyle {}
-
-    /**
-     * Indicates a rating style is not supported. A Rating2 will never have this
-     * type, but can be used by other classes to indicate they do not support
-     * Rating2.
-     */
-    public final static int RATING_NONE = 0;
-
-    /**
-     * A rating style with a single degree of rating, "heart" vs "no heart". Can be used to
-     * indicate the content referred to is a favorite (or not).
-     */
-    public final static int RATING_HEART = 1;
-
-    /**
-     * A rating style for "thumb up" vs "thumb down".
-     */
-    public final static int RATING_THUMB_UP_DOWN = 2;
-
-    /**
-     * A rating style with 0 to 3 stars.
-     */
-    public final static int RATING_3_STARS = 3;
-
-    /**
-     * A rating style with 0 to 4 stars.
-     */
-    public final static int RATING_4_STARS = 4;
-
-    /**
-     * A rating style with 0 to 5 stars.
-     */
-    public final static int RATING_5_STARS = 5;
-
-    /**
-     * A rating style expressed as a percentage.
-     */
-    public final static int RATING_PERCENTAGE = 6;
-
-    private final Rating2Provider mProvider;
-
-    /**
-     * @hide
-     */
-    public Rating2(@NonNull Rating2Provider provider) {
-        mProvider = provider;
-    }
-
-    @Override
-    public String toString() {
-        return mProvider.toString_impl();
-    }
-
-    /**
-     * @hide
-     */
-    public Rating2Provider getProvider() {
-        return mProvider;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        return mProvider.equals_impl(obj);
-    }
-
-    @Override
-    public int hashCode() {
-        return mProvider.hashCode_impl();
-    }
-
-    /**
-     * Create an instance from bundle object, previoulsy created by {@link #toBundle()}
-     *
-     * @param bundle bundle
-     * @return new Rating2 instance or {@code null} for error
-     */
-    public static Rating2 fromBundle(@Nullable Bundle bundle) {
-        return ApiLoader.getProvider().fromBundle_Rating2(bundle);
-    }
-
-    /**
-     * Return bundle for this object to share across the process.
-     * @return bundle of this object
-     */
-    public Bundle toBundle() {
-        return mProvider.toBundle_impl();
-    }
-
-    /**
-     * Return a Rating2 instance with no rating.
-     * Create and return a new Rating2 instance with no rating known for the given
-     * rating style.
-     * @param ratingStyle one of {@link #RATING_HEART}, {@link #RATING_THUMB_UP_DOWN},
-     *    {@link #RATING_3_STARS}, {@link #RATING_4_STARS}, {@link #RATING_5_STARS},
-     *    or {@link #RATING_PERCENTAGE}.
-     * @return null if an invalid rating style is passed, a new Rating2 instance otherwise.
-     */
-    public static @Nullable Rating2 newUnratedRating(@Style int ratingStyle) {
-        return ApiLoader.getProvider().newUnratedRating_Rating2(ratingStyle);
-    }
-
-    /**
-     * Return a Rating2 instance with a heart-based rating.
-     * Create and return a new Rating2 instance with a rating style of {@link #RATING_HEART},
-     * and a heart-based rating.
-     * @param hasHeart true for a "heart selected" rating, false for "heart unselected".
-     * @return a new Rating2 instance.
-     */
-    public static @Nullable Rating2 newHeartRating(boolean hasHeart) {
-        return ApiLoader.getProvider().newHeartRating_Rating2(hasHeart);
-    }
-
-    /**
-     * Return a Rating2 instance with a thumb-based rating.
-     * Create and return a new Rating2 instance with a {@link #RATING_THUMB_UP_DOWN}
-     * rating style, and a "thumb up" or "thumb down" rating.
-     * @param thumbIsUp true for a "thumb up" rating, false for "thumb down".
-     * @return a new Rating2 instance.
-     */
-    public static @Nullable Rating2 newThumbRating(boolean thumbIsUp) {
-        return ApiLoader.getProvider().newThumbRating_Rating2(thumbIsUp);
-    }
-
-    /**
-     * Return a Rating2 instance with a star-based rating.
-     * Create and return a new Rating2 instance with one of the star-base rating styles
-     * and the given integer or fractional number of stars. Non integer values can for instance
-     * be used to represent an average rating value, which might not be an integer number of stars.
-     * @param starRatingStyle one of {@link #RATING_3_STARS}, {@link #RATING_4_STARS},
-     *     {@link #RATING_5_STARS}.
-     * @param starRating a number ranging from 0.0f to 3.0f, 4.0f or 5.0f according to
-     *     the rating style.
-     * @return null if the rating style is invalid, or the rating is out of range,
-     *     a new Rating2 instance otherwise.
-     */
-    public static @Nullable Rating2 newStarRating(
-            @StarStyle int starRatingStyle, float starRating) {
-        return ApiLoader.getProvider().newStarRating_Rating2(starRatingStyle, starRating);
-    }
-
-    /**
-     * Return a Rating2 instance with a percentage-based rating.
-     * Create and return a new Rating2 instance with a {@link #RATING_PERCENTAGE}
-     * rating style, and a rating of the given percentage.
-     * @param percent the value of the rating
-     * @return null if the rating is out of range, a new Rating2 instance otherwise.
-     */
-    public static @Nullable Rating2 newPercentageRating(float percent) {
-        return ApiLoader.getProvider().newPercentageRating_Rating2(percent);
-    }
-
-    /**
-     * Return whether there is a rating value available.
-     * @return true if the instance was not created with {@link #newUnratedRating(int)}.
-     */
-    public boolean isRated() {
-        return mProvider.isRated_impl();
-    }
-
-    /**
-     * Return the rating style.
-     * @return one of {@link #RATING_HEART}, {@link #RATING_THUMB_UP_DOWN},
-     *    {@link #RATING_3_STARS}, {@link #RATING_4_STARS}, {@link #RATING_5_STARS},
-     *    or {@link #RATING_PERCENTAGE}.
-     */
-    public @Style int getRatingStyle() {
-        return mProvider.getRatingStyle_impl();
-    }
-
-    /**
-     * Return whether the rating is "heart selected".
-     * @return true if the rating is "heart selected", false if the rating is "heart unselected",
-     *    if the rating style is not {@link #RATING_HEART} or if it is unrated.
-     */
-    public boolean hasHeart() {
-        return mProvider.hasHeart_impl();
-    }
-
-    /**
-     * Return whether the rating is "thumb up".
-     * @return true if the rating is "thumb up", false if the rating is "thumb down",
-     *    if the rating style is not {@link #RATING_THUMB_UP_DOWN} or if it is unrated.
-     */
-    public boolean isThumbUp() {
-        return mProvider.isThumbUp_impl();
-    }
-
-    /**
-     * Return the star-based rating value.
-     * @return a rating value greater or equal to 0.0f, or a negative value if the rating style is
-     *    not star-based, or if it is unrated.
-     */
-    public float getStarRating() {
-        return mProvider.getStarRating_impl();
-    }
-
-    /**
-     * Return the percentage-based rating value.
-     * @return a rating value greater or equal to 0.0f, or a negative value if the rating style is
-     *    not percentage-based, or if it is unrated.
-     */
-    public float getPercentRating() {
-        return mProvider.getPercentRating_impl();
-    }
-}
diff --git a/media/java/android/media/RemoteController.java b/media/java/android/media/RemoteController.java
index b6e3276..5e9eed7 100644
--- a/media/java/android/media/RemoteController.java
+++ b/media/java/android/media/RemoteController.java
@@ -20,7 +20,6 @@
 import android.app.ActivityManager;
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.Intent;
 import android.graphics.Bitmap;
 import android.media.session.MediaController;
 import android.media.session.MediaSession;
@@ -36,7 +35,6 @@
 import android.util.Log;
 import android.view.KeyEvent;
 
-import java.lang.ref.WeakReference;
 import java.util.List;
 
 /**
@@ -250,7 +248,7 @@
      * @throws IllegalArgumentException
      */
     public boolean sendMediaKeyEvent(KeyEvent keyEvent) throws IllegalArgumentException {
-        if (!KeyEvent.isMediaKey(keyEvent.getKeyCode())) {
+        if (!KeyEvent.isMediaSessionKey(keyEvent.getKeyCode())) {
             throw new IllegalArgumentException("not a media key event");
         }
         synchronized (mInfoLock) {
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java
index 436897f..874f21e 100644
--- a/media/java/android/media/RingtoneManager.java
+++ b/media/java/android/media/RingtoneManager.java
@@ -18,6 +18,7 @@
 
 import android.Manifest;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
@@ -1029,7 +1030,7 @@
      * @throws FileNotFoundException if the provided URI could not be opened.
      * @see #getDefaultUri
      */
-    public static AssetFileDescriptor openDefaultRingtoneUri(
+    public static @Nullable AssetFileDescriptor openDefaultRingtoneUri(
             @NonNull Context context, @NonNull Uri uri) throws FileNotFoundException {
         // Try cached ringtone first since the actual provider may not be
         // encryption aware, or it may be stored on CE media storage
diff --git a/media/java/android/media/SessionCommand2.java b/media/java/android/media/SessionCommand2.java
deleted file mode 100644
index fe86a3a..0000000
--- a/media/java/android/media/SessionCommand2.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.content.Context;
-import android.media.update.ApiLoader;
-import android.media.update.MediaSession2Provider;
-import android.media.MediaSession2.ControllerInfo;
-import android.media.MediaSession2.SessionCallback;
-import android.net.Uri;
-import android.os.Bundle;
-
-import java.util.List;
-
-/**
- * @hide
- * Define a command that a {@link MediaController2} can send to a {@link MediaSession2}.
- * <p>
- * If {@link #getCommandCode()} isn't {@link #COMMAND_CODE_CUSTOM}), it's predefined command.
- * If {@link #getCommandCode()} is {@link #COMMAND_CODE_CUSTOM}), it's custom command and
- * {@link #getCustomCommand()} shouldn't be {@code null}.
- */
-public final class SessionCommand2 {
-    /**
-     * Command code for the custom command which can be defined by string action in the
-     * {@link SessionCommand2}.
-     */
-    public static final int COMMAND_CODE_CUSTOM = 0;
-
-    /**
-     * Command code for {@link MediaController2#play()}.
-     * <p>
-     * Command would be sent directly to the player if the session doesn't reject the request
-     * through the {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo,
-     * SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYBACK_PLAY = 1;
-
-    /**
-     * Command code for {@link MediaController2#pause()}.
-     * <p>
-     * Command would be sent directly to the player if the session doesn't reject the request
-     * through the {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo,
-     * SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYBACK_PAUSE = 2;
-
-    /**
-     * Command code for {@link MediaController2#stop()}.
-     * <p>
-     * Command would be sent directly to the player if the session doesn't reject the request
-     * through the {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo,
-     * SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYBACK_STOP = 3;
-
-    /**
-     * Command code for {@link MediaController2#skipToNextItem()}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the {@link SessionCallback#onCommandRequest(
-     * MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_SKIP_NEXT_ITEM = 4;
-
-    /**
-     * Command code for {@link MediaController2#skipToPreviousItem()}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the {@link SessionCallback#onCommandRequest(
-     * MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_SKIP_PREV_ITEM = 5;
-
-    /**
-     * Command code for {@link MediaController2#prepare()}.
-     * <p>
-     * Command would be sent directly to the player if the session doesn't reject the request
-     * through the {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo,
-     * SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYBACK_PREPARE = 6;
-
-    /**
-     * Command code for {@link MediaController2#fastForward()}.
-     */
-    public static final int COMMAND_CODE_SESSION_FAST_FORWARD = 7;
-
-    /**
-     * Command code for {@link MediaController2#rewind()}.
-     */
-    public static final int COMMAND_CODE_SESSION_REWIND = 8;
-
-    /**
-     * Command code for {@link MediaController2#seekTo(long)}.
-     * <p>
-     * Command would be sent directly to the player if the session doesn't reject the request
-     * through the {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo,
-     * SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYBACK_SEEK_TO = 9;
-
-    /**
-     * Command code for both {@link MediaController2#setVolumeTo(int, int)}.
-     * <p>
-     * Command would set the device volume or send to the volume provider directly if the session
-     * doesn't reject the request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_SET_VOLUME = 10;
-
-    /**
-     * Command code for both {@link MediaController2#adjustVolume(int, int)}.
-     * <p>
-     * Command would adjust the device volume or send to the volume provider directly if the session
-     * doesn't reject the request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_ADJUST_VOLUME = 11;
-
-    /**
-     * Command code for {@link MediaController2#skipToPlaylistItem(MediaItem2)}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_SKIP_TO_PLAYLIST_ITEM = 12;
-
-    /**
-     * Command code for {@link MediaController2#setShuffleMode(int)}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_SET_SHUFFLE_MODE = 13;
-
-    /**
-     * Command code for {@link MediaController2#setRepeatMode(int)}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_SET_REPEAT_MODE = 14;
-
-    /**
-     * Command code for {@link MediaController2#addPlaylistItem(int, MediaItem2)}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_ADD_ITEM = 15;
-
-    /**
-     * Command code for {@link MediaController2#addPlaylistItem(int, MediaItem2)}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_REMOVE_ITEM = 16;
-
-    /**
-     * Command code for {@link MediaController2#replacePlaylistItem(int, MediaItem2)}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_REPLACE_ITEM = 17;
-
-    /**
-     * Command code for {@link MediaController2#getPlaylist()}. This will expose metadata
-     * information to the controller.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_GET_LIST = 18;
-
-    /**
-     * Command code for {@link MediaController2#setPlaylist(List, MediaMetadata2)}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_SET_LIST = 19;
-
-    /**
-     * Command code for {@link MediaController2#getPlaylistMetadata()}. This will expose
-     * metadata information to the controller.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_GET_LIST_METADATA = 20;
-
-    /**
-     * Command code for {@link MediaController2#updatePlaylistMetadata(MediaMetadata2)}.
-     * <p>
-     * Command would be sent directly to the playlist agent if the session doesn't reject the
-     * request through the
-     * {@link SessionCallback#onCommandRequest(MediaSession2, ControllerInfo, SessionCommand2)}.
-     */
-    public static final int COMMAND_CODE_PLAYLIST_SET_LIST_METADATA = 21;
-
-    /**
-     * Command code for {@link MediaController2#playFromMediaId(String, Bundle)}.
-     */
-    public static final int COMMAND_CODE_SESSION_PLAY_FROM_MEDIA_ID = 22;
-
-    /**
-     * Command code for {@link MediaController2#playFromUri(Uri, Bundle)}.
-     */
-    public static final int COMMAND_CODE_SESSION_PLAY_FROM_URI = 23;
-
-    /**
-     * Command code for {@link MediaController2#playFromSearch(String, Bundle)}.
-     */
-    public static final int COMMAND_CODE_SESSION_PLAY_FROM_SEARCH = 24;
-
-    /**
-     * Command code for {@link MediaController2#prepareFromMediaId(String, Bundle)}.
-     */
-    public static final int COMMAND_CODE_SESSION_PREPARE_FROM_MEDIA_ID = 25;
-
-    /**
-     * Command code for {@link MediaController2#prepareFromUri(Uri, Bundle)}.
-     */
-    public static final int COMMAND_CODE_SESSION_PREPARE_FROM_URI = 26;
-
-    /**
-     * Command code for {@link MediaController2#prepareFromSearch(String, Bundle)}.
-     */
-    public static final int COMMAND_CODE_SESSION_PREPARE_FROM_SEARCH = 27;
-
-    /**
-     * Command code for {@link MediaController2#setRating(String, Rating2)}.
-     */
-    public static final int COMMAND_CODE_SESSION_SET_RATING = 28;
-
-    // TODO(jaewan): Add javadoc
-    public static final int COMMAND_CODE_LIBRARY_GET_CHILDREN = 29;
-    public static final int COMMAND_CODE_LIBRARY_GET_ITEM = 30;
-    public static final int COMMAND_CODE_LIBRARY_GET_LIBRARY_ROOT = 31;
-    public static final int COMMAND_CODE_LIBRARY_GET_SEARCH_RESULT = 32;
-    public static final int COMMAND_CODE_LIBRARY_SEARCH = 33;
-    public static final int COMMAND_CODE_LIBRARY_SUBSCRIBE = 34;
-    public static final int COMMAND_CODE_LIBRARY_UNSUBSCRIBE = 35;
-
-    // TODO(jaewan): Rename and move provider
-    private final MediaSession2Provider.CommandProvider mProvider;
-
-    public SessionCommand2(int commandCode) {
-        mProvider = ApiLoader.getProvider().createMediaSession2Command(
-                this, commandCode, null, null);
-    }
-
-    public SessionCommand2(@NonNull String action, @Nullable Bundle extras) {
-        if (action == null) {
-            throw new IllegalArgumentException("action shouldn't be null");
-        }
-        mProvider = ApiLoader.getProvider().createMediaSession2Command(
-                this, COMMAND_CODE_CUSTOM, action, extras);
-    }
-
-    /**
-     * @hide
-     */
-    public MediaSession2Provider.CommandProvider getProvider() {
-        return mProvider;
-    }
-
-    public int getCommandCode() {
-        return mProvider.getCommandCode_impl();
-    }
-
-    public @Nullable String getCustomCommand() {
-        return mProvider.getCustomCommand_impl();
-    }
-
-    public @Nullable Bundle getExtras() {
-        return mProvider.getExtras_impl();
-    }
-
-    /**
-     * @return a new Bundle instance from the Command
-     * @hide
-     */
-    public Bundle toBundle() {
-        return mProvider.toBundle_impl();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (!(obj instanceof SessionCommand2)) {
-            return false;
-        }
-        return mProvider.equals_impl(((SessionCommand2) obj).mProvider);
-    }
-
-    @Override
-    public int hashCode() {
-        return mProvider.hashCode_impl();
-    }
-
-    /**
-     * @return a new Command instance from the Bundle
-     * @hide
-     */
-    public static SessionCommand2 fromBundle(@NonNull Bundle command) {
-        return ApiLoader.getProvider().fromBundle_MediaSession2Command(command);
-    }
-}
diff --git a/media/java/android/media/SessionCommandGroup2.java b/media/java/android/media/SessionCommandGroup2.java
deleted file mode 100644
index 399765e..0000000
--- a/media/java/android/media/SessionCommandGroup2.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.content.Context;
-import android.media.update.ApiLoader;
-import android.media.update.MediaSession2Provider;
-import android.os.Bundle;
-
-import java.util.Set;
-
-/**
- * @hide
- * Represent set of {@link SessionCommand2}.
- */
-public final class SessionCommandGroup2 {
-    // TODO(jaewan): Rename and move provider
-    private final MediaSession2Provider.CommandGroupProvider mProvider;
-
-    public SessionCommandGroup2() {
-        mProvider = ApiLoader.getProvider().createMediaSession2CommandGroup(this, null);
-    }
-
-    public SessionCommandGroup2(@Nullable SessionCommandGroup2 others) {
-        mProvider = ApiLoader.getProvider().createMediaSession2CommandGroup(this, others);
-    }
-
-    /**
-     * @hide
-     */
-    public SessionCommandGroup2(@NonNull MediaSession2Provider.CommandGroupProvider provider) {
-        mProvider = provider;
-    }
-
-    public void addCommand(@NonNull SessionCommand2 command) {
-        mProvider.addCommand_impl(command);
-    }
-
-    public void addCommand(int commandCode) {
-        // TODO(jaewna): Implement
-    }
-
-    public void addAllPredefinedCommands() {
-        mProvider.addAllPredefinedCommands_impl();
-    }
-
-    public void removeCommand(@NonNull SessionCommand2 command) {
-        mProvider.removeCommand_impl(command);
-    }
-
-    public void removeCommand(int commandCode) {
-        // TODO(jaewan): Implement.
-    }
-
-    public boolean hasCommand(@NonNull SessionCommand2 command) {
-        return mProvider.hasCommand_impl(command);
-    }
-
-    public boolean hasCommand(int code) {
-        return mProvider.hasCommand_impl(code);
-    }
-
-    public @NonNull
-    Set<SessionCommand2> getCommands() {
-        return mProvider.getCommands_impl();
-    }
-
-    /**
-     * @hide
-     */
-    public @NonNull MediaSession2Provider.CommandGroupProvider getProvider() {
-        return mProvider;
-    }
-
-    /**
-     * @return new bundle from the CommandGroup
-     * @hide
-     */
-    public @NonNull Bundle toBundle() {
-        return mProvider.toBundle_impl();
-    }
-
-    /**
-     * @return new instance of CommandGroup from the bundle
-     * @hide
-     */
-    public static @Nullable SessionCommandGroup2 fromBundle(Bundle commands) {
-        return ApiLoader.getProvider().fromBundle_MediaSession2CommandGroup(commands);
-    }
-}
diff --git a/media/java/android/media/SessionToken2.java b/media/java/android/media/SessionToken2.java
deleted file mode 100644
index f7d54f2..0000000
--- a/media/java/android/media/SessionToken2.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.content.Context;
-import android.media.session.MediaSessionManager;
-import android.media.update.ApiLoader;
-import android.media.update.SessionToken2Provider;
-import android.os.Bundle;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * @hide
- * Represents an ongoing {@link MediaSession2}.
- * If it's representing a session service, it may not be ongoing.
- * <p>
- * This may be passed to apps by the session owner to allow them to create a
- * {@link MediaController2} to communicate with the session.
- * <p>
- * It can be also obtained by {@link MediaSessionManager}.
- */
-// New version of MediaSession.Token for following reasons
-//   - Stop implementing Parcelable for updatable support
-//   - Represent session and library service (formerly browser service) in one class.
-//     Previously MediaSession.Token was for session and ComponentName was for service.
-public final class SessionToken2 {
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef(value = {TYPE_SESSION, TYPE_SESSION_SERVICE, TYPE_LIBRARY_SERVICE})
-    public @interface TokenType {
-    }
-
-    public static final int TYPE_SESSION = 0;
-    public static final int TYPE_SESSION_SERVICE = 1;
-    public static final int TYPE_LIBRARY_SERVICE = 2;
-
-    private final SessionToken2Provider mProvider;
-
-    // From the return value of android.os.Process.getUidForName(String) when error
-    private static final int UID_UNKNOWN = -1;
-
-    /**
-     * Constructor for the token. You can only create token for session service or library service
-     * to use by {@link MediaController2} or {@link MediaBrowser2}.
-     *
-     * @param context context
-     * @param packageName package name
-     * @param serviceName name of service. Can be {@code null} if it's not an service.
-     */
-    public SessionToken2(@NonNull Context context, @NonNull String packageName,
-            @NonNull String serviceName) {
-        this(context, packageName, serviceName, UID_UNKNOWN);
-    }
-
-    /**
-     * Constructor for the token. You can only create token for session service or library service
-     * to use by {@link MediaController2} or {@link MediaBrowser2}.
-     *
-     * @param context context
-     * @param packageName package name
-     * @param serviceName name of service. Can be {@code null} if it's not an service.
-     * @param uid uid of the app.
-     * @hide
-     */
-    public SessionToken2(@NonNull Context context, @NonNull String packageName,
-            @NonNull String serviceName, int uid) {
-        mProvider = ApiLoader.getProvider().createSessionToken2(
-                context, this, packageName, serviceName, uid);
-    }
-
-    /**
-     * Constructor for the token.
-     * @hide
-     */
-    public SessionToken2(@NonNull SessionToken2Provider provider) {
-        mProvider = provider;
-    }
-
-    @Override
-    public int hashCode() {
-        return mProvider.hashCode_impl();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        return mProvider.equals_impl(obj);
-    }
-
-    @Override
-    public String toString() {
-        return mProvider.toString_impl();
-    }
-
-    /**
-     * @hide
-     */
-    public SessionToken2Provider getProvider() {
-        return mProvider;
-    }
-
-    /**
-     * @return uid of the session
-     */
-    public int getUid() {
-        return mProvider.getUid_impl();
-    }
-
-    /**
-     * @return package name
-     */
-    public String getPackageName() {
-        return mProvider.getPackageName_impl();
-    }
-
-    /**
-     * @return id
-     */
-    public String getId() {
-        return mProvider.getId_imp();
-    }
-
-    /**
-     * @return type of the token
-     * @see #TYPE_SESSION
-     * @see #TYPE_SESSION_SERVICE
-     */
-    public @TokenType int getType() {
-        return mProvider.getType_impl();
-    }
-
-    /**
-     * Create a token from the bundle, exported by {@link #toBundle()}.
-     * @param bundle
-     * @return
-     */
-    public static SessionToken2 fromBundle(@NonNull Bundle bundle) {
-        return ApiLoader.getProvider().fromBundle_SessionToken2(bundle);
-    }
-
-    /**
-     * Create a {@link Bundle} from this token to share it across processes.
-     * @return Bundle
-     */
-    public Bundle toBundle() {
-        return mProvider.toBundle_impl();
-    }
-}
diff --git a/media/java/android/media/UriDataSourceDesc.java b/media/java/android/media/UriDataSourceDesc.java
new file mode 100644
index 0000000..6a83dab
--- /dev/null
+++ b/media/java/android/media/UriDataSourceDesc.java
@@ -0,0 +1,228 @@
+/*
+ * Copyright 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.media;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.content.Context;
+import android.net.Uri;
+
+import java.net.CookieHandler;
+import java.net.CookieManager;
+import java.net.HttpCookie;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @hide
+ * Structure of data source descriptor for sources using URI.
+ *
+ * Used by {@link MediaPlayer2#setDataSource(DataSourceDesc)},
+ * {@link MediaPlayer2#setNextDataSource(DataSourceDesc)} and
+ * {@link MediaPlayer2#setNextDataSources(List<DataSourceDesc>)}
+ * to set data source for playback.
+ *
+ * <p>Users should use {@link Builder} to change {@link UriDataSourceDesc}.
+ *
+ */
+public class UriDataSourceDesc extends DataSourceDesc {
+    private Uri mUri;
+    private Map<String, String> mHeader;
+    private List<HttpCookie> mCookies;
+    private Context mContext;
+
+    private UriDataSourceDesc() {
+    }
+
+    /**
+     * Return the Uri of this data source.
+     * @return the Uri of this data source
+     */
+    public Uri getUri() {
+        return mUri;
+    }
+
+    /**
+     * Return the Uri headers of this data source.
+     * @return the Uri headers of this data source
+     */
+    public Map<String, String> getHeaders() {
+        if (mHeader == null) {
+            return null;
+        }
+        return new HashMap<String, String>(mHeader);
+    }
+
+    /**
+     * Return the Uri cookies of this data source.
+     * @return the Uri cookies of this data source
+     */
+    public List<HttpCookie> getCookies() {
+        if (mCookies == null) {
+            return null;
+        }
+        return new ArrayList<HttpCookie>(mCookies);
+    }
+
+    /**
+     * Return the Context used for resolving the Uri of this data source.
+     * @return the Context used for resolving the Uri of this data source
+     */
+    public Context getContext() {
+        return mContext;
+    }
+
+    /**
+     * Builder class for {@link UriDataSourceDesc} objects.
+     * <p> Here is an example where <code>Builder</code> is used to define the
+     * {@link UriDataSourceDesc} to be used by a {@link MediaPlayer2} instance:
+     *
+     * <pre class="prettyprint">
+     * UriDataSourceDesc newDSD = new UriDataSourceDesc.Builder()
+     *         .setDataSource(context, uri, headers, cookies)
+     *         .setStartPosition(1000)
+     *         .setEndPosition(15000)
+     *         .build();
+     * mediaplayer2.setDataSourceDesc(newDSD);
+     * </pre>
+     */
+    public static class Builder extends BuilderBase<Builder> {
+        private Uri mUri;
+        private Map<String, String> mHeader;
+        private List<HttpCookie> mCookies;
+        private Context mContext;
+
+        /**
+         * Constructs a new Builder with the defaults.
+         */
+        public Builder() {
+            super();
+        }
+
+        /**
+         * Constructs a new Builder from a given {@link UriDataSourceDesc} instance
+         * @param dsd the {@link UriDataSourceDesc} object whose data will be reused
+         * in the new Builder.
+         */
+        public Builder(UriDataSourceDesc dsd) {
+            super(dsd);
+            if (dsd == null) {
+                return;  // use default
+            }
+            mUri = dsd.mUri;
+            mHeader = dsd.mHeader;
+            mCookies = dsd.mCookies;
+            mContext = dsd.mContext;
+        }
+
+        /**
+         * Combines all of the fields that have been set and return a new
+         * {@link UriDataSourceDesc} object. <code>IllegalStateException</code> will be
+         * thrown if there is conflict between fields.
+         *
+         * @return a new {@link UriDataSourceDesc} object
+         */
+        public @NonNull UriDataSourceDesc build() {
+            UriDataSourceDesc dsd = new UriDataSourceDesc();
+            super.build(dsd);
+            dsd.mUri = mUri;
+            dsd.mHeader = mHeader;
+            dsd.mCookies = mCookies;
+            dsd.mContext = mContext;
+
+            return dsd;
+        }
+
+        /**
+         * Sets the data source as a content Uri.
+         *
+         * @param context the Context to use when resolving the Uri
+         * @param uri the Content URI of the data you want to play
+         * @return the same Builder instance.
+         * @throws NullPointerException if context or uri is null.
+         */
+        public @NonNull Builder setDataSource(@NonNull Context context, @NonNull Uri uri) {
+            Media2Utils.checkArgument(context != null, "context cannot be null");
+            Media2Utils.checkArgument(uri != null, "uri cannot be null");
+            resetDataSource();
+            mUri = uri;
+            mContext = context;
+            return this;
+        }
+
+        /**
+         * Sets the data source as a content Uri.
+         *
+         * To provide cookies for the subsequent HTTP requests, you can install your own default
+         * cookie handler and use other variants of setDataSource APIs instead. Alternatively, you
+         * can use this API to pass the cookies as a list of HttpCookie. If the app has not
+         * installed a CookieHandler already, {@link MediaPlayer2} will create a CookieManager
+         * and populates its CookieStore with the provided cookies when this data source is passed
+         * to {@link MediaPlayer2}. If the app has installed its own handler already, the handler
+         * is required to be of CookieManager type such that {@link MediaPlayer2} can update the
+         * manager’s CookieStore.
+         *
+         *  <p><strong>Note</strong> that the cross domain redirection is allowed by default,
+         * but that can be changed with key/value pairs through the headers parameter with
+         * "android-allow-cross-domain-redirect" as the key and "0" or "1" as the value to
+         * disallow or allow cross domain redirection.
+         *
+         * @param context the Context to use when resolving the Uri
+         * @param uri the Content URI of the data you want to play
+         * @param headers the headers to be sent together with the request for the data
+         *                The headers must not include cookies. Instead, use the cookies param.
+         * @param cookies the cookies to be sent together with the request
+         * @return the same Builder instance.
+         * @throws NullPointerException if context or uri is null.
+         * @throws IllegalArgumentException if the cookie handler is not of CookieManager type
+         *                                  when cookies are provided.
+         */
+        public @NonNull Builder setDataSource(@NonNull Context context, @NonNull Uri uri,
+                @Nullable Map<String, String> headers, @Nullable List<HttpCookie> cookies) {
+            Media2Utils.checkArgument(context != null, "context cannot be null");
+            Media2Utils.checkArgument(uri != null, "uri cannot be null");
+            if (cookies != null) {
+                CookieHandler cookieHandler = CookieHandler.getDefault();
+                if (cookieHandler != null && !(cookieHandler instanceof CookieManager)) {
+                    throw new IllegalArgumentException(
+                            "The cookie handler has to be of CookieManager type "
+                            + "when cookies are provided.");
+                }
+            }
+
+            resetDataSource();
+            mUri = uri;
+            if (headers != null) {
+                mHeader = new HashMap<String, String>(headers);
+            }
+            if (cookies != null) {
+                mCookies = new ArrayList<HttpCookie>(cookies);
+            }
+            mContext = context;
+            return this;
+        }
+
+        private void resetDataSource() {
+            mUri = null;
+            mHeader = null;
+            mCookies = null;
+            mContext = null;
+        }
+    }
+}
diff --git a/media/java/android/media/VolumeProvider2.java b/media/java/android/media/VolumeProvider2.java
deleted file mode 100644
index 1a4608f..0000000
--- a/media/java/android/media/VolumeProvider2.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright 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.media;
-
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.media.update.ApiLoader;
-import android.media.update.VolumeProvider2Provider;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * @hide
- * Handles requests to adjust or set the volume on a session. This is also used
- * to push volume updates back to the session. The provider must call
- * {@link #setCurrentVolume(int)} each time the volume being provided changes.
- * <p>
- * You can set a volume provider on a session by calling
- * {@link MediaSession2#updatePlayer}.
- */
-// New version of VolumeProvider with following changes
-//   - Don't implement Parcelable for updatable support.
-public abstract class VolumeProvider2 {
-    /**
-     * @hide
-     */
-    @IntDef({VOLUME_CONTROL_FIXED, VOLUME_CONTROL_RELATIVE, VOLUME_CONTROL_ABSOLUTE})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface ControlType {}
-
-    /**
-     * The volume is fixed and can not be modified. Requests to change volume
-     * should be ignored.
-     */
-    public static final int VOLUME_CONTROL_FIXED = 0;
-
-    /**
-     * The volume control uses relative adjustment via
-     * {@link #onAdjustVolume(int)}. Attempts to set the volume to a specific
-     * value should be ignored.
-     */
-    public static final int VOLUME_CONTROL_RELATIVE = 1;
-
-    /**
-     * The volume control uses an absolute value. It may be adjusted using
-     * {@link #onAdjustVolume(int)} or set directly using
-     * {@link #onSetVolumeTo(int)}.
-     */
-    public static final int VOLUME_CONTROL_ABSOLUTE = 2;
-
-    private final VolumeProvider2Provider mProvider;
-
-    /**
-     * Create a new volume provider for handling volume events. You must specify
-     * the type of volume control, the maximum volume that can be used, and the
-     * current volume on the output.
-     *
-     * @param controlType The method for controlling volume that is used by this provider.
-     * @param maxVolume The maximum allowed volume.
-     * @param currentVolume The current volume on the output.
-     */
-    public VolumeProvider2(@ControlType int controlType, int maxVolume, int currentVolume) {
-        mProvider = ApiLoader.getProvider().createVolumeProvider2(
-                this, controlType, maxVolume, currentVolume);
-    }
-
-    /**
-     * @hide
-     */
-    public VolumeProvider2Provider getProvider() {
-        return mProvider;
-    }
-
-    /**
-     * Get the volume control type that this volume provider uses.
-     *
-     * @return The volume control type for this volume provider
-     */
-    @ControlType
-    public final int getControlType() {
-        return mProvider.getControlType_impl();
-    }
-
-    /**
-     * Get the maximum volume this provider allows.
-     *
-     * @return The max allowed volume.
-     */
-    public final int getMaxVolume() {
-        return mProvider.getMaxVolume_impl();
-    }
-
-    /**
-     * Gets the current volume. This will be the last value set by
-     * {@link #setCurrentVolume(int)}.
-     *
-     * @return The current volume.
-     */
-    public final int getCurrentVolume() {
-        return mProvider.getCurrentVolume_impl();
-    }
-
-    /**
-     * Notify the system that the current volume has been changed. This must be
-     * called every time the volume changes to ensure it is displayed properly.
-     *
-     * @param currentVolume The current volume on the output.
-     */
-    public final void setCurrentVolume(int currentVolume) {
-        mProvider.setCurrentVolume_impl(currentVolume);
-    }
-
-    /**
-     * Override to handle requests to set the volume of the current output.
-     * After the volume has been modified {@link #setCurrentVolume} must be
-     * called to notify the system.
-     *
-     * @param volume The volume to set the output to.
-     */
-    public void onSetVolumeTo(int volume) { }
-
-    /**
-     * Override to handle requests to adjust the volume of the current output.
-     * Direction will be one of {@link AudioManager#ADJUST_LOWER},
-     * {@link AudioManager#ADJUST_RAISE}, {@link AudioManager#ADJUST_SAME}.
-     * After the volume has been modified {@link #setCurrentVolume} must be
-     * called to notify the system.
-     *
-     * @param direction The direction to change the volume in.
-     */
-    public void onAdjustVolume(int direction) { }
-}
diff --git a/media/java/android/media/audiofx/Visualizer.java b/media/java/android/media/audiofx/Visualizer.java
index a7bdf4f..89a509f 100644
--- a/media/java/android/media/audiofx/Visualizer.java
+++ b/media/java/android/media/audiofx/Visualizer.java
@@ -18,11 +18,12 @@
 
 import android.annotation.UnsupportedAppUsage;
 import android.app.ActivityThread;
-import android.util.Log;
-import java.lang.ref.WeakReference;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
+import android.util.Log;
+
+import java.lang.ref.WeakReference;
 
 /**
  * The Visualizer class enables application to retrieve part of the currently playing audio for
@@ -455,7 +456,7 @@
      *   <li> Rfk, Ifk are respectively  the real and imaginary parts of the kth frequency
      *   component</li>
      *   <li> If Fs is the sampling frequency retuned by getSamplingRate() the kth frequency is:
-     *   (k*Fs)/(n/2) </li>
+     *   k * Fs / n </li>
      * </ul>
      * <table border="0" cellspacing="0" cellpadding="0">
      * <tr><td>Index </p></td>
@@ -476,9 +477,23 @@
      *     <td>Rf2 </p></td>
      *     <td>If2 </p></td>
      *     <td>... </p></td>
-     *     <td>Rf(n-1)/2 </p></td>
-     *     <td>If(n-1)/2 </p></td></tr>
+     *     <td>Rf(n/2-1) </p></td>
+     *     <td>If(n/2-1) </p></td></tr>
      * </table>
+     * <p>In order to obtain magnitude and phase values the following code can
+     * be used:
+     *    <pre class="prettyprint">
+     *       int n = fft.size();
+     *       float[] magnitudes = new float[n / 2 + 1];
+     *       float[] phases = new float[n / 2 + 1];
+     *       magnitudes[0] = (float)Math.abs(fft[0]);      // DC
+     *       magnitudes[n / 2] = (float)Math.abs(fft[1]);  // Nyquist
+     *       phases[0] = phases[n / 2] = 0;
+     *       for (int k = 1; k &lt; n / 2; k++) {
+     *           int i = k * 2;
+     *           magnitudes[k] = (float)Math.hypot(fft[i], fft[i + 1]);
+     *           phases[k] = (float)Math.atan2(fft[i + 1], fft[i]);
+     *       }</pre>
      * @param fft array of bytes where the FFT should be returned
      * @return {@link #SUCCESS} in case of success,
      * {@link #ERROR_NO_MEMORY}, {@link #ERROR_INVALID_OPERATION} or {@link #ERROR_DEAD_OBJECT}
@@ -561,25 +576,11 @@
          * <p>Data in the fft buffer is valid only within the scope of the callback.
          * Applications which need access to the fft data after returning from the callback
          * should make a copy of the data instead of holding a reference.
+         * <p>For the explanation of the fft data array layout, and the example
+         * code for processing it, please see the documentation for {@link #getFft(byte[])} method.
          *
-         * <p>In order to obtain magnitude and phase values the following formulas can
-         * be used:
-         *    <pre class="prettyprint">
-         *       for (int i = 0; i &lt; fft.size(); i += 2) {
-         *           float magnitude = (float)Math.hypot(fft[i], fft[i + 1]);
-         *           float phase = (float)Math.atan2(fft[i + 1], fft[i]);
-         *       }</pre>
          * @param visualizer Visualizer object on which the listener is registered.
          * @param fft array of bytes containing the frequency representation.
-         *    The fft array only contains the first half of the actual
-         *    FFT spectrum (frequencies up to Nyquist frequency), exploiting
-         *    the symmetry of the spectrum. For each frequencies bin <code>i</code>:
-         *    <ul>
-         *      <li>the element at index <code>2*i</code> in the array contains
-         *          the real part of a complex number,</li>
-         *      <li>the element at index <code>2*i+1</code> contains the imaginary
-         *          part of the complex number.</li>
-         *    </ul>
          * @param samplingRate sampling rate of the visualized audio.
          */
         void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate);
diff --git a/media/java/android/media/midi/MidiOutputPort.java b/media/java/android/media/midi/MidiOutputPort.java
index 511f6cd..5411e66 100644
--- a/media/java/android/media/midi/MidiOutputPort.java
+++ b/media/java/android/media/midi/MidiOutputPort.java
@@ -59,6 +59,8 @@
                     // read next event
                     int count = mInputStream.read(buffer);
                     if (count < 0) {
+                        // This is the exit condition as read() returning <0 indicates
+                        // that the pipe has been closed.
                         break;
                         // FIXME - inform receivers here?
                     }
@@ -81,10 +83,15 @@
                             Log.e(TAG, "Unknown packet type " + packetType);
                             break;
                     }
-                }
+                } // while (true)
             } catch (IOException e) {
                 // FIXME report I/O failure?
-                Log.e(TAG, "read failed", e);
+                // TODO: The comment above about the exit condition is not currently working
+                // as intended. The read from the closed pipe is throwing an error rather than
+                // returning <0, so this becomes (probably) not an error, but the exit case.
+                // This warrants further investigation;
+                // Silence the (probably) spurious error message.
+                // Log.e(TAG, "read failed", e);
             } finally {
                 IoUtils.closeQuietly(mInputStream);
             }
diff --git a/media/java/android/media/session/ISessionManager.aidl b/media/java/android/media/session/ISessionManager.aidl
index 3578c16..4ced7be 100644
--- a/media/java/android/media/session/ISessionManager.aidl
+++ b/media/java/android/media/session/ISessionManager.aidl
@@ -17,7 +17,6 @@
 
 import android.content.ComponentName;
 import android.media.IRemoteVolumeController;
-import android.media.ISessionTokensListener;
 import android.media.session.IActiveSessionsListener;
 import android.media.session.ICallback;
 import android.media.session.IOnMediaKeyListener;
@@ -55,12 +54,4 @@
 
     // MediaSession2
     boolean isTrusted(String controllerPackageName, int controllerPid, int controllerUid);
-    boolean createSession2(in Bundle sessionToken);
-    void destroySession2(in Bundle sessionToken);
-    List<Bundle> getSessionTokens(boolean activeSessionOnly, boolean sessionServiceOnly,
-            String packageName);
-
-    void addSessionTokensListener(in ISessionTokensListener listener, int userId,
-            String packageName);
-    void removeSessionTokensListener(in ISessionTokensListener listener, String packageName);
 }
diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java
index c4b82c3..b457357 100644
--- a/media/java/android/media/session/MediaController.java
+++ b/media/java/android/media/session/MediaController.java
@@ -149,7 +149,7 @@
         if (keyEvent == null) {
             throw new IllegalArgumentException("KeyEvent may not be null");
         }
-        if (!KeyEvent.isMediaKey(keyEvent.getKeyCode())) {
+        if (!KeyEvent.isMediaSessionKey(keyEvent.getKeyCode())) {
             return false;
         }
         try {
diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java
index 98f3fb2..d91cf87 100644
--- a/media/java/android/media/session/MediaSessionManager.java
+++ b/media/java/android/media/session/MediaSessionManager.java
@@ -26,11 +26,7 @@
 import android.content.Context;
 import android.media.AudioManager;
 import android.media.IRemoteVolumeController;
-import android.media.ISessionTokensListener;
-import android.media.MediaSession2;
-import android.media.SessionToken2;
 import android.media.browse.MediaBrowser;
-import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
@@ -44,10 +40,8 @@
 import android.view.KeyEvent;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
-import java.util.concurrent.Executor;
 
 /**
  * Provides support for interacting with {@link MediaSession media sessions}
@@ -75,8 +69,6 @@
 
     private final ArrayMap<OnActiveSessionsChangedListener, SessionsChangedWrapper> mListeners
             = new ArrayMap<OnActiveSessionsChangedListener, SessionsChangedWrapper>();
-    private final ArrayMap<OnSessionTokensChangedListener, SessionTokensChangedWrapper>
-            mSessionTokensListener = new ArrayMap<>();
     private final Object mLock = new Object();
     private final ISessionManager mService;
 
@@ -104,9 +96,15 @@
      * @return The binder object from the system
      * @hide
      */
+    @SystemApi
     public @NonNull ISession createSession(@NonNull MediaSession.CallbackStub cbStub,
-            @NonNull String tag, int userId) throws RemoteException {
-        return mService.createSession(mContext.getPackageName(), cbStub, tag, userId);
+            @NonNull String tag, int userId) {
+        try {
+            return mService.createSession(mContext.getPackageName(), cbStub, tag, userId);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+        return null;
     }
 
     /**
@@ -413,73 +411,6 @@
     }
 
     /**
-     * Called when a {@link MediaSession2} is created.
-     * @hide
-     */
-    public boolean createSession2(@NonNull SessionToken2 token) {
-        if (token == null) {
-            return false;
-        }
-        try {
-            return mService.createSession2(token.toBundle());
-        } catch (RemoteException e) {
-            Log.wtf(TAG, "Cannot communicate with the service.", e);
-        }
-        return false;
-    }
-
-    /**
-     * Called when a {@link MediaSession2} is destroyed.
-     * @hide
-     */
-    public void destroySession2(@NonNull SessionToken2 token) {
-        if (token == null) {
-            return;
-        }
-        try {
-            mService.destroySession2(token.toBundle());
-        } catch (RemoteException e) {
-            Log.wtf(TAG, "Cannot communicate with the service.", e);
-        }
-    }
-
-    /**
-     * @hide
-     * Get {@link List} of {@link SessionToken2} whose sessions are active now. This list represents
-     * active sessions regardless of whether they're {@link MediaSession2}.
-     * <p>
-     * This requires the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by the
-     * calling app. You may also retrieve this list if your app is an enabled notification listener
-     * using the {@link NotificationListenerService} APIs.
-     *
-     * @return list of tokens
-     */
-    public List<SessionToken2> getActiveSessionTokens() {
-        try {
-            List<Bundle> bundles = mService.getSessionTokens(
-                    /* activeSessionOnly */ true, /* sessionServiceOnly */ false,
-                    mContext.getOpPackageName());
-            return toTokenList(bundles);
-        } catch (RemoteException e) {
-            Log.wtf(TAG, "Cannot communicate with the service.", e);
-            return Collections.emptyList();
-        }
-    }
-
-    private static List<SessionToken2> toTokenList(List<Bundle> bundles) {
-        List<SessionToken2> tokens = new ArrayList<>();
-        if (bundles != null) {
-            for (int i = 0; i < bundles.size(); i++) {
-                SessionToken2 token = SessionToken2.fromBundle(bundles.get(i));
-                if (token != null) {
-                    tokens.add(token);
-                }
-            }
-        }
-        return tokens;
-    }
-
-    /**
      * Check if the global priority session is currently active. This can be
      * used to decide if media keys should be sent to the session or to the app.
      *
@@ -601,15 +532,6 @@
     }
 
     /**
-     * @hide
-     * Listens for changes to the {@link #getAllSessionTokens()}. This can be added
-     * using {@link #addOnActiveSessionsChangedListener}.
-     */
-    public interface OnSessionTokensChangedListener {
-        void onSessionTokensChanged(@NonNull List<SessionToken2> tokens);
-    }
-
-    /**
      * Listens the volume key long-presses.
      * @hide
      */
@@ -815,41 +737,6 @@
         }
     }
 
-    private static final class SessionTokensChangedWrapper {
-        private Context mContext;
-        private Executor mExecutor;
-        private OnSessionTokensChangedListener mListener;
-
-        public SessionTokensChangedWrapper(Context context, Executor executor,
-                OnSessionTokensChangedListener listener) {
-            mContext = context;
-            mExecutor = executor;
-            mListener = listener;
-        }
-
-        private final ISessionTokensListener.Stub mStub = new ISessionTokensListener.Stub() {
-            @Override
-            public void onSessionTokensChanged(final List<Bundle> bundles) {
-                final Executor executor = mExecutor;
-                if (executor != null) {
-                    executor.execute(() -> {
-                        final Context context = mContext;
-                        final OnSessionTokensChangedListener listener = mListener;
-                        if (context != null && listener != null) {
-                            listener.onSessionTokensChanged(toTokenList(bundles));
-                        }
-                    });
-                }
-            }
-        };
-
-        private void release() {
-            mListener = null;
-            mContext = null;
-            mExecutor = null;
-        }
-    }
-
     private static final class OnVolumeKeyLongPressListenerImpl
             extends IOnVolumeKeyLongPressListener.Stub {
         private OnVolumeKeyLongPressListener mListener;
diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java
index d9017b4..ff69779 100644
--- a/media/java/android/media/tv/TvInputService.java
+++ b/media/java/android/media/tv/TvInputService.java
@@ -59,9 +59,7 @@
 import com.android.internal.util.Preconditions;
 
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 /**
  * The TvInputService class represents a TV input or source such as HDMI or built-in tuner which
@@ -1400,7 +1398,7 @@
                 // ViewRootImpl always consumes the keys. In this case, the application loses
                 // a chance to handle media keys. Therefore, media keys are not dispatched to
                 // ViewRootImpl.
-                skipDispatchToOverlayView = KeyEvent.isMediaKey(keyEvent.getKeyCode())
+                skipDispatchToOverlayView = KeyEvent.isMediaSessionKey(keyEvent.getKeyCode())
                         || keyEvent.getKeyCode() == KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK;
             } else if (event instanceof MotionEvent) {
                 MotionEvent motionEvent = (MotionEvent) event;
diff --git a/media/java/android/media/update/ApiLoader.java b/media/java/android/media/update/ApiLoader.java
deleted file mode 100644
index 0c1d1a2..0000000
--- a/media/java/android/media/update/ApiLoader.java
+++ /dev/null
@@ -1,79 +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.media.update;
-
-import android.app.ActivityManager;
-import android.app.AppGlobals;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.os.Build;
-import android.os.RemoteException;
-import android.os.UserHandle;
-
-import com.android.internal.annotations.GuardedBy;
-
-import dalvik.system.PathClassLoader;
-
-import java.io.File;
-
-/**
- * @hide
- */
-public final class ApiLoader {
-    @GuardedBy("this")
-    private static StaticProvider sMediaUpdatable;
-
-    private static final String UPDATE_PACKAGE = "com.android.media.update";
-    private static final String UPDATE_CLASS = "com.android.media.update.ApiFactory";
-    private static final String UPDATE_METHOD = "initialize";
-    private static final boolean REGISTER_UPDATE_DEPENDENCY = true;
-
-    private ApiLoader() { }
-
-    public static StaticProvider getProvider() {
-        try {
-            return getMediaUpdatable();
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        } catch (NameNotFoundException | ReflectiveOperationException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    // TODO This method may do I/O; Ensure it does not violate (emit warnings in) strict mode.
-    private static synchronized StaticProvider getMediaUpdatable()
-            throws NameNotFoundException, ReflectiveOperationException, RemoteException {
-        if (sMediaUpdatable != null) return sMediaUpdatable;
-
-        // TODO Figure out when to use which package (query media update service)
-        int flags = Build.IS_DEBUGGABLE ? 0 : PackageManager.MATCH_SYSTEM_ONLY;
-        ApplicationInfo ai = AppGlobals.getPackageManager().getApplicationInfo(
-                UPDATE_PACKAGE, flags, UserHandle.myUserId());
-
-        if (REGISTER_UPDATE_DEPENDENCY) {
-            // Register a dependency to the updatable in order to be killed during updates
-            ActivityManager.getService().addPackageDependency(ai.packageName);
-        }
-
-        ClassLoader classLoader = new PathClassLoader(ai.sourceDir,
-                ai.nativeLibraryDir + File.pathSeparator + System.getProperty("java.library.path"),
-                ClassLoader.getSystemClassLoader().getParent());
-        return sMediaUpdatable = (StaticProvider) classLoader.loadClass(UPDATE_CLASS)
-                .getMethod(UPDATE_METHOD, ApplicationInfo.class).invoke(null, ai);
-    }
-}
diff --git a/media/java/android/media/update/MediaController2Provider.java b/media/java/android/media/update/MediaController2Provider.java
deleted file mode 100644
index 7234f7b..0000000
--- a/media/java/android/media/update/MediaController2Provider.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 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.media.update;
-
-import android.app.PendingIntent;
-import android.media.AudioAttributes;
-import android.media.MediaController2.PlaybackInfo;
-import android.media.MediaItem2;
-import android.media.MediaMetadata2;
-import android.media.SessionCommand2;
-import android.media.Rating2;
-import android.media.SessionToken2;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.ResultReceiver;
-
-import java.util.List;
-
-/**
- * @hide
- */
-public interface MediaController2Provider extends TransportControlProvider {
-    void initialize();
-
-    void close_impl();
-    SessionToken2 getSessionToken_impl();
-    boolean isConnected_impl();
-
-    PendingIntent getSessionActivity_impl();
-
-    void setVolumeTo_impl(int value, int flags);
-    void adjustVolume_impl(int direction, int flags);
-    PlaybackInfo getPlaybackInfo_impl();
-
-    void prepareFromUri_impl(Uri uri, Bundle extras);
-    void prepareFromSearch_impl(String query, Bundle extras);
-    void prepareFromMediaId_impl(String mediaId, Bundle extras);
-    void playFromSearch_impl(String query, Bundle extras);
-    void playFromUri_impl(Uri uri, Bundle extras);
-    void playFromMediaId_impl(String mediaId, Bundle extras);
-    void fastForward_impl();
-    void rewind_impl();
-
-    void setRating_impl(String mediaId, Rating2 rating);
-    void sendCustomCommand_impl(SessionCommand2 command, Bundle args, ResultReceiver cb);
-    List<MediaItem2> getPlaylist_impl();
-    void setPlaylist_impl(List<MediaItem2> list, MediaMetadata2 metadata);
-    MediaMetadata2 getPlaylistMetadata_impl();
-    void updatePlaylistMetadata_impl(MediaMetadata2 metadata);
-
-    void addPlaylistItem_impl(int index, MediaItem2 item);
-    void replacePlaylistItem_impl(int index, MediaItem2 item);
-    void removePlaylistItem_impl(MediaItem2 item);
-
-    int getPlayerState_impl();
-    long getCurrentPosition_impl();
-    float getPlaybackSpeed_impl();
-    long getBufferedPosition_impl();
-    MediaItem2 getCurrentMediaItem_impl();
-
-    interface PlaybackInfoProvider {
-        int getPlaybackType_impl();
-        AudioAttributes getAudioAttributes_impl();
-        int getControlType_impl();
-        int getMaxVolume_impl();
-        int getCurrentVolume_impl();
-    }
-}
diff --git a/media/java/android/media/update/MediaItem2Provider.java b/media/java/android/media/update/MediaItem2Provider.java
deleted file mode 100644
index 47db22f..0000000
--- a/media/java/android/media/update/MediaItem2Provider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 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.media.update;
-
-import android.media.DataSourceDesc;
-import android.media.MediaItem2;
-import android.media.MediaItem2.Builder;
-import android.media.MediaMetadata2;
-import android.os.Bundle;
-
-/**
- * @hide
- */
-public interface MediaItem2Provider {
-    Bundle toBundle_impl();
-    String toString_impl();
-    int getFlags_impl();
-    boolean isBrowsable_impl();
-    boolean isPlayable_impl();
-    void setMetadata_impl(MediaMetadata2 metadata);
-    MediaMetadata2 getMetadata_impl();
-    String getMediaId_impl();
-    DataSourceDesc getDataSourceDesc_impl();
-    boolean equals_impl(Object obj);
-
-    interface BuilderProvider {
-        Builder setMediaId_impl(String mediaId);
-        Builder setMetadata_impl(MediaMetadata2 metadata);
-        Builder setDataSourceDesc_impl(DataSourceDesc dataSourceDesc);
-        MediaItem2 build_impl();
-    }
-}
diff --git a/media/java/android/media/update/MediaMetadata2Provider.java b/media/java/android/media/update/MediaMetadata2Provider.java
deleted file mode 100644
index 22463e9..0000000
--- a/media/java/android/media/update/MediaMetadata2Provider.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package android.media.update;
-
-import android.graphics.Bitmap;
-import android.media.MediaMetadata2;
-import android.media.MediaMetadata2.Builder;
-import android.media.Rating2;
-import android.os.Bundle;
-
-import java.util.Set;
-
-/**
- * @hide
- */
-public interface MediaMetadata2Provider {
-    boolean containsKey_impl(String key);
-    CharSequence getText_impl(String key);
-    String getMediaId_impl();
-    String getString_impl(String key);
-    long getLong_impl(String key);
-    Rating2 getRating_impl(String key);
-    Bundle toBundle_impl();
-    Set<String> keySet_impl();
-    int size_impl();
-    Bitmap getBitmap_impl(String key);
-    float getFloat_impl(String key);
-    Bundle getExtras_impl();
-
-    interface BuilderProvider {
-        Builder putText_impl(String key, CharSequence value);
-        Builder putString_impl(String key, String value);
-        Builder putLong_impl(String key, long value);
-        Builder putRating_impl(String key, Rating2 value);
-        Builder putBitmap_impl(String key, Bitmap value);
-        Builder putFloat_impl(String key, float value);
-        Builder setExtras_impl(Bundle bundle);
-        MediaMetadata2 build_impl();
-    }
-}
diff --git a/media/java/android/media/update/MediaPlaylistAgentProvider.java b/media/java/android/media/update/MediaPlaylistAgentProvider.java
deleted file mode 100644
index e1522cf..0000000
--- a/media/java/android/media/update/MediaPlaylistAgentProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 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.media.update;
-
-import android.media.DataSourceDesc;
-import android.media.MediaItem2;
-import android.media.MediaMetadata2;
-import android.media.MediaPlaylistAgent.PlaylistEventCallback;
-
-import java.util.List;
-import java.util.concurrent.Executor;
-
-/**
- * @hide
- */
-public interface MediaPlaylistAgentProvider {
-    // final methods of MediaPlaylistAgent
-    void registerPlaylistEventCallback_impl(Executor executor, PlaylistEventCallback callback);
-    void unregisterPlaylistEventCallback_impl(PlaylistEventCallback callback);
-    void notifyPlaylistChanged_impl();
-    void notifyPlaylistMetadataChanged_impl();
-    void notifyShuffleModeChanged_impl();
-    void notifyRepeatModeChanged_impl();
-
-    // public methods of MediaPlaylistAgent
-    List<MediaItem2> getPlaylist_impl();
-    void setPlaylist_impl(List<MediaItem2> list, MediaMetadata2 metadata);
-    MediaMetadata2 getPlaylistMetadata_impl();
-    void updatePlaylistMetadata_impl(MediaMetadata2 metadata);
-    void addPlaylistItem_impl(int index, MediaItem2 item);
-    void removePlaylistItem_impl(MediaItem2 item);
-    void replacePlaylistItem_impl(int index, MediaItem2 item);
-    void skipToPlaylistItem_impl(MediaItem2 item);
-    void skipToPreviousItem_impl();
-    void skipToNextItem_impl();
-    int getRepeatMode_impl();
-    void setRepeatMode_impl(int repeatMode);
-    int getShuffleMode_impl();
-    void setShuffleMode_impl(int shuffleMode);
-    MediaItem2 getMediaItem_impl(DataSourceDesc dsd);
-}
diff --git a/media/java/android/media/update/MediaSession2Provider.java b/media/java/android/media/update/MediaSession2Provider.java
deleted file mode 100644
index 4751348..0000000
--- a/media/java/android/media/update/MediaSession2Provider.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 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.media.update;
-
-import android.app.PendingIntent;
-import android.media.AudioFocusRequest;
-import android.media.MediaItem2;
-import android.media.MediaMetadata2;
-import android.media.MediaPlayerBase;
-import android.media.MediaPlaylistAgent;
-import android.media.MediaSession2;
-import android.media.SessionCommand2;
-import android.media.MediaSession2.CommandButton;
-import android.media.MediaSession2.CommandButton.Builder;
-import android.media.SessionCommandGroup2;
-import android.media.MediaSession2.ControllerInfo;
-import android.media.MediaSession2.OnDataSourceMissingHelper;
-import android.media.MediaSession2.SessionCallback;
-import android.media.SessionToken2;
-import android.media.VolumeProvider2;
-import android.os.Bundle;
-import android.os.ResultReceiver;
-
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.Executor;
-
-/**
- * @hide
- */
-public interface MediaSession2Provider extends TransportControlProvider {
-    void close_impl();
-    void updatePlayer_impl(MediaPlayerBase player, MediaPlaylistAgent playlistAgent,
-            VolumeProvider2 volumeProvider);
-    MediaPlayerBase getPlayer_impl();
-    MediaMetadata2 getPlaylistMetadata_impl();
-    void updatePlaylistMetadata_impl(MediaMetadata2 metadata);
-    MediaPlaylistAgent getPlaylistAgent_impl();
-    VolumeProvider2 getVolumeProvider_impl();
-    SessionToken2 getToken_impl();
-    List<ControllerInfo> getConnectedControllers_impl();
-    void setCustomLayout_impl(ControllerInfo controller, List<CommandButton> layout);
-    void setAudioFocusRequest_impl(AudioFocusRequest afr);
-    void setAllowedCommands_impl(ControllerInfo controller, SessionCommandGroup2 commands);
-    void sendCustomCommand_impl(ControllerInfo controller, SessionCommand2 command, Bundle args,
-            ResultReceiver receiver);
-    void sendCustomCommand_impl(SessionCommand2 command, Bundle args);
-    void addPlaylistItem_impl(int index, MediaItem2 item);
-    void removePlaylistItem_impl(MediaItem2 item);
-    void replacePlaylistItem_impl(int index, MediaItem2 item);
-    List<MediaItem2> getPlaylist_impl();
-    void setPlaylist_impl(List<MediaItem2> list, MediaMetadata2 metadata);
-    MediaItem2 getCurrentPlaylistItem_impl();
-    void notifyError_impl(int errorCode, Bundle extras);
-    int getPlayerState_impl();
-    long getCurrentPosition_impl();
-    long getBufferedPosition_impl();
-    void setOnDataSourceMissingHelper_impl(OnDataSourceMissingHelper helper);
-    void clearOnDataSourceMissingHelper_impl();
-
-    // TODO(jaewan): Rename and move provider
-    interface CommandProvider {
-        int getCommandCode_impl();
-        String getCustomCommand_impl();
-        Bundle getExtras_impl();
-        Bundle toBundle_impl();
-
-        boolean equals_impl(Object ob);
-        int hashCode_impl();
-    }
-
-    // TODO(jaewan): Rename and move provider
-    interface CommandGroupProvider {
-        void addCommand_impl(SessionCommand2 command);
-        void addAllPredefinedCommands_impl();
-        void removeCommand_impl(SessionCommand2 command);
-        boolean hasCommand_impl(SessionCommand2 command);
-        boolean hasCommand_impl(int code);
-        Set<SessionCommand2> getCommands_impl();
-        Bundle toBundle_impl();
-    }
-
-    interface CommandButtonProvider {
-        SessionCommand2 getCommand_impl();
-        int getIconResId_impl();
-        String getDisplayName_impl();
-        Bundle getExtras_impl();
-        boolean isEnabled_impl();
-
-        interface BuilderProvider {
-            Builder setCommand_impl(SessionCommand2 command);
-            Builder setIconResId_impl(int resId);
-            Builder setDisplayName_impl(String displayName);
-            Builder setEnabled_impl(boolean enabled);
-            Builder setExtras_impl(Bundle extras);
-            CommandButton build_impl();
-        }
-    }
-
-    interface ControllerInfoProvider {
-        String getPackageName_impl();
-        int getUid_impl();
-        boolean isTrusted_impl();
-        int hashCode_impl();
-        boolean equals_impl(Object obj);
-        String toString_impl();
-    }
-
-    interface BuilderBaseProvider<T extends MediaSession2, C extends SessionCallback> {
-        void setPlayer_impl(MediaPlayerBase player);
-        void setPlaylistAgent_impl(MediaPlaylistAgent playlistAgent);
-        void setVolumeProvider_impl(VolumeProvider2 volumeProvider);
-        void setSessionActivity_impl(PendingIntent pi);
-        void setId_impl(String id);
-        void setSessionCallback_impl(Executor executor, C callback);
-        T build_impl();
-    }
-}
diff --git a/media/java/android/media/update/Rating2Provider.java b/media/java/android/media/update/Rating2Provider.java
deleted file mode 100644
index 28ad273..0000000
--- a/media/java/android/media/update/Rating2Provider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 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.media.update;
-
-import android.annotation.SystemApi;
-import android.os.Bundle;
-
-/**
- * @hide
- */
-public interface Rating2Provider {
-    String toString_impl();
-    boolean equals_impl(Object obj);
-    int hashCode_impl();
-    Bundle toBundle_impl();
-    boolean isRated_impl();
-    int getRatingStyle_impl();
-    boolean hasHeart_impl();
-    boolean isThumbUp_impl();
-    float getStarRating_impl();
-    float getPercentRating_impl();
-}
diff --git a/media/java/android/media/update/SessionToken2Provider.java b/media/java/android/media/update/SessionToken2Provider.java
deleted file mode 100644
index 95d6ce0..0000000
--- a/media/java/android/media/update/SessionToken2Provider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 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.media.update;
-
-import android.os.Bundle;
-
-/**
- * @hide
- */
-public interface SessionToken2Provider {
-    String getPackageName_impl();
-    String getId_imp();
-    int getType_impl();
-    int getUid_impl();
-    Bundle toBundle_impl();
-
-    int hashCode_impl();
-    boolean equals_impl(Object obj);
-    String toString_impl();
-}
diff --git a/media/java/android/media/update/StaticProvider.java b/media/java/android/media/update/StaticProvider.java
deleted file mode 100644
index ccb8c02..0000000
--- a/media/java/android/media/update/StaticProvider.java
+++ /dev/null
@@ -1,92 +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.media.update;
-
-import android.content.Context;
-import android.media.MediaController2;
-import android.media.MediaController2.ControllerCallback;
-import android.media.MediaItem2;
-import android.media.MediaMetadata2;
-import android.media.MediaPlaylistAgent;
-import android.media.MediaSession2;
-import android.media.MediaSession2.SessionCallback;
-import android.media.Rating2;
-import android.media.SessionCommand2;
-import android.media.SessionCommandGroup2;
-import android.media.SessionToken2;
-import android.media.VolumeProvider2;
-import android.media.update.MediaSession2Provider.BuilderBaseProvider;
-import android.media.update.MediaSession2Provider.CommandButtonProvider;
-import android.media.update.MediaSession2Provider.CommandGroupProvider;
-import android.media.update.MediaSession2Provider.CommandProvider;
-import android.media.update.MediaSession2Provider.ControllerInfoProvider;
-import android.os.Bundle;
-import android.os.IInterface;
-
-import java.util.concurrent.Executor;
-
-/**
- * Interface for connecting the public API to an updatable implementation.
- *
- * This interface provides access to constructors and static methods that are otherwise not directly
- * accessible via an implementation object.
- * @hide
- */
-public interface StaticProvider {
-    CommandProvider createMediaSession2Command(SessionCommand2 instance,
-            int commandCode, String action, Bundle extra);
-    SessionCommand2 fromBundle_MediaSession2Command(Bundle bundle);
-    CommandGroupProvider createMediaSession2CommandGroup(SessionCommandGroup2 instance,
-            SessionCommandGroup2 others);
-    SessionCommandGroup2 fromBundle_MediaSession2CommandGroup(Bundle bundle);
-    ControllerInfoProvider createMediaSession2ControllerInfo(Context context,
-            MediaSession2.ControllerInfo instance, int uid, int pid,
-            String packageName, IInterface callback);
-    CommandButtonProvider.BuilderProvider createMediaSession2CommandButtonBuilder(
-            MediaSession2.CommandButton.Builder instance);
-    BuilderBaseProvider<MediaSession2, SessionCallback> createMediaSession2Builder(
-            Context context, MediaSession2.Builder instance);
-
-    MediaController2Provider createMediaController2(Context context, MediaController2 instance,
-            SessionToken2 token, Executor executor, ControllerCallback callback);
-
-    SessionToken2Provider createSessionToken2(Context context, SessionToken2 instance,
-            String packageName, String serviceName, int uid);
-    SessionToken2 fromBundle_SessionToken2(Bundle bundle);
-
-    MediaItem2Provider.BuilderProvider createMediaItem2Builder(MediaItem2.Builder instance,
-            int flags);
-    MediaItem2 fromBundle_MediaItem2(Bundle bundle);
-
-    VolumeProvider2Provider createVolumeProvider2(VolumeProvider2 instance, int controlType,
-            int maxVolume, int currentVolume);
-
-    MediaMetadata2 fromBundle_MediaMetadata2(Bundle bundle);
-    MediaMetadata2Provider.BuilderProvider createMediaMetadata2Builder(
-            MediaMetadata2.Builder instance);
-    MediaMetadata2Provider.BuilderProvider createMediaMetadata2Builder(
-            MediaMetadata2.Builder instance, MediaMetadata2 source);
-
-    Rating2 newUnratedRating_Rating2(int ratingStyle);
-    Rating2 fromBundle_Rating2(Bundle bundle);
-    Rating2 newHeartRating_Rating2(boolean hasHeart);
-    Rating2 newThumbRating_Rating2(boolean thumbIsUp);
-    Rating2 newStarRating_Rating2(int starRatingStyle, float starRating);
-    Rating2 newPercentageRating_Rating2(float percent);
-
-    MediaPlaylistAgentProvider createMediaPlaylistAgent(MediaPlaylistAgent instance);
-}
diff --git a/media/java/android/media/update/TransportControlProvider.java b/media/java/android/media/update/TransportControlProvider.java
deleted file mode 100644
index d89a88a..0000000
--- a/media/java/android/media/update/TransportControlProvider.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 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.media.update;
-
-import android.media.MediaItem2;
-
-/**
- * @hide
- */
-public interface TransportControlProvider {
-    void play_impl();
-    void pause_impl();
-    void stop_impl();
-    void skipToPreviousItem_impl();
-    void skipToNextItem_impl();
-
-    void prepare_impl();
-    void seekTo_impl(long pos);
-    void skipToPlaylistItem_impl(MediaItem2 item);
-
-    int getRepeatMode_impl();
-    void setRepeatMode_impl(int repeatMode);
-    int getShuffleMode_impl();
-    void setShuffleMode_impl(int shuffleMode);
-}
diff --git a/media/java/android/media/update/VolumeProvider2Provider.java b/media/java/android/media/update/VolumeProvider2Provider.java
deleted file mode 100644
index 5b5cfd3..0000000
--- a/media/java/android/media/update/VolumeProvider2Provider.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 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.media.update;
-
-/**
- * @hide
- */
-public interface VolumeProvider2Provider {
-    int getControlType_impl();
-    int getMaxVolume_impl();
-    int getCurrentVolume_impl();
-    void setCurrentVolume_impl(int currentVolume);
-}
diff --git a/media/jni/Android.bp b/media/jni/Android.bp
index faf4301..e25e6a5 100644
--- a/media/jni/Android.bp
+++ b/media/jni/Android.bp
@@ -88,7 +88,7 @@
     name: "libmedia2_jni",
 
     srcs: [
-        "android_media_Media2DataSource.cpp",
+        "android_media_DataSourceCallback.cpp",
         "android_media_MediaMetricsJNI.cpp",
         "android_media_MediaPlayer2.cpp",
         "android_media_SyncParams.cpp",
diff --git a/media/jni/android_media_AudioPresentation.h b/media/jni/android_media_AudioPresentation.h
index 5306de6..a3adddd 100644
--- a/media/jni/android_media_AudioPresentation.h
+++ b/media/jni/android_media_AudioPresentation.h
@@ -14,173 +14,135 @@
  * limitations under the License.
  */
 
-#ifndef _ANDROID_MEDIA_AUDIO_PRESENTATION_H_
-#define _ANDROID_MEDIA_AUDIO_PRESENTATION_H_
+#ifndef _ANDROID_MEDIA_AUDIOPRESENTATION_H_
+#define _ANDROID_MEDIA_AUDIOPRESENTATION_H_
 
 #include "jni.h"
 
-#include <media/AudioPresentationInfo.h>
-#include <media/stagefright/foundation/ADebug.h>
-#include <media/stagefright/foundation/AMessage.h>
-
+#include <media/stagefright/foundation/ADebug.h>  // CHECK
+#include <media/stagefright/foundation/AudioPresentationInfo.h>
 #include <nativehelper/ScopedLocalRef.h>
 
 namespace android {
 
 struct JAudioPresentationInfo {
     struct fields_t {
-        jclass      clazz;
+        jclass      clazz = NULL;
         jmethodID   constructID;
 
         // list parameters
-        jclass listclazz;
+        jclass listClazz = NULL;
         jmethodID listConstructId;
         jmethodID listAddId;
 
+        // hashmap parameters
+        jclass hashMapClazz = NULL;
+        jmethodID hashMapConstructID;
+        jmethodID hashMapPutID;
+
+        // ulocale parameters
+        jclass ulocaleClazz = NULL;
+        jmethodID ulocaleConstructID;
+
         void init(JNIEnv *env) {
             jclass lclazz = env->FindClass("android/media/AudioPresentation");
-            if (lclazz == NULL) {
-                return;
-            }
-
+            CHECK(lclazz != NULL);
             clazz = (jclass)env->NewGlobalRef(lclazz);
-            if (clazz == NULL) {
-                return;
-            }
-
+            CHECK(clazz != NULL);
             constructID = env->GetMethodID(clazz, "<init>",
-                                "(IILandroid/icu/util/ULocale;IZZZLjava/util/Map;)V");
-            env->DeleteLocalRef(lclazz);
+                    "(IILandroid/icu/util/ULocale;IZZZLjava/util/Map;)V");
+            CHECK(constructID != NULL);
 
             // list objects
-            jclass llistclazz = env->FindClass("java/util/ArrayList");
-            CHECK(llistclazz != NULL);
-            listclazz = static_cast<jclass>(env->NewGlobalRef(llistclazz));
-            CHECK(listclazz != NULL);
-            listConstructId = env->GetMethodID(listclazz, "<init>", "()V");
+            jclass llistClazz = env->FindClass("java/util/ArrayList");
+            CHECK(llistClazz != NULL);
+            listClazz = static_cast<jclass>(env->NewGlobalRef(llistClazz));
+            CHECK(listClazz != NULL);
+            listConstructId = env->GetMethodID(listClazz, "<init>", "()V");
             CHECK(listConstructId != NULL);
-            listAddId = env->GetMethodID(listclazz, "add", "(Ljava/lang/Object;)Z");
+            listAddId = env->GetMethodID(listClazz, "add", "(Ljava/lang/Object;)Z");
             CHECK(listAddId != NULL);
-            env->DeleteLocalRef(llistclazz);
+
+            // hashmap objects
+            jclass lhashMapClazz = env->FindClass("java/util/HashMap");
+            CHECK(lhashMapClazz != NULL);
+            hashMapClazz = (jclass)env->NewGlobalRef(lhashMapClazz);
+            CHECK(hashMapClazz != NULL);
+            hashMapConstructID = env->GetMethodID(hashMapClazz, "<init>", "()V");
+            CHECK(hashMapConstructID != NULL);
+            hashMapPutID = env->GetMethodID(
+                    hashMapClazz,
+                    "put",
+                    "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
+            CHECK(hashMapPutID != NULL);
+
+            jclass lulocaleClazz = env->FindClass("android/icu/util/ULocale");
+            CHECK(lulocaleClazz != NULL);
+            ulocaleClazz = (jclass)env->NewGlobalRef(lulocaleClazz);
+            CHECK(ulocaleClazz != NULL);
+            ulocaleConstructID = env->GetMethodID(ulocaleClazz, "<init>", "(Ljava/lang/String;)V");
+            CHECK(ulocaleConstructID != NULL);
         }
 
         void exit(JNIEnv *env) {
-            env->DeleteGlobalRef(clazz);
-            clazz = NULL;
-            env->DeleteGlobalRef(listclazz);
-            listclazz = NULL;
+            env->DeleteGlobalRef(clazz); clazz = NULL;
+            env->DeleteGlobalRef(listClazz); listClazz = NULL;
+            env->DeleteGlobalRef(hashMapClazz); hashMapClazz = NULL;
+            env->DeleteGlobalRef(ulocaleClazz); ulocaleClazz = NULL;
         }
     };
 
-    static status_t ConvertMessageToMap(JNIEnv *env, const sp<AMessage> &msg, jobject *map) {
-        ScopedLocalRef<jclass> hashMapClazz(env, env->FindClass("java/util/HashMap"));
-
-        if (hashMapClazz.get() == NULL) {
-            return -EINVAL;
-        }
-        jmethodID hashMapConstructID =
-            env->GetMethodID(hashMapClazz.get(), "<init>", "()V");
-
-        if (hashMapConstructID == NULL) {
-            return -EINVAL;
-        }
-        jmethodID hashMapPutID =
-            env->GetMethodID(
-                    hashMapClazz.get(),
-                    "put",
-                    "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
-
-        if (hashMapPutID == NULL) {
-            return -EINVAL;
-        }
-
-        jobject hashMap = env->NewObject(hashMapClazz.get(), hashMapConstructID);
-
-        for (size_t i = 0; i < msg->countEntries(); ++i) {
-            AMessage::Type valueType;
-            const char *key = msg->getEntryNameAt(i, &valueType);
-
-            if (!strncmp(key, "android._", 9)) {
-                // don't expose private keys (starting with android._)
-                continue;
-            }
-            jobject valueObj = NULL;
-            AString val;
-            CHECK(msg->findString(key, &val));
-            valueObj = env->NewStringUTF(val.c_str());
-            if (valueObj != NULL) {
-                ScopedLocalRef<jclass> localeClazz(env, env->FindClass("android/icu/util/ULocale"));
-                if (localeClazz.get() == NULL) {
-                    return -EINVAL;
-                }
-                jmethodID localeConstructID =
-                        env->GetMethodID(localeClazz.get(), "<init>", "(Ljava/lang/String;)V");
-                if (localeConstructID == NULL) {
-                    return -EINVAL;
-                }
-                jstring jLanguage = env->NewStringUTF(key);
-                jobject jLocale = env->NewObject(localeClazz.get(), localeConstructID, jLanguage);
-                env->CallObjectMethod(hashMap, hashMapPutID, jLocale, valueObj);
-                env->DeleteLocalRef(jLocale); jLocale = NULL;
-                env->DeleteLocalRef(valueObj); valueObj = NULL;
-                env->DeleteLocalRef(jLanguage); jLanguage = NULL;
-            }
-        }
-
-        *map = hashMap;
-
-        return OK;
+    static jobject asJobject(JNIEnv *env, const fields_t& fields) {
+        return env->NewObject(fields.listClazz, fields.listConstructId);
     }
 
-    jobject asJobject(JNIEnv *env, const fields_t& fields, const AudioPresentationInfo &info) {
-        jobject list = env->NewObject(fields.listclazz, fields.listConstructId);
-
-        for (size_t i = 0; i < info.countPresentations(); ++i) {
-            const sp<AudioPresentation> &ap = info.getPresentation(i);
-            jobject jLabelObject;
-
-            sp<AMessage> labelMessage = new AMessage();
-            for (size_t i = 0; i < ap->mLabels.size(); ++i) {
-                labelMessage->setString(ap->mLabels.keyAt(i).string(),
-                                        ap->mLabels.valueAt(i).string());
+    static void addPresentations(JNIEnv *env, const fields_t& fields,
+                    const AudioPresentationCollection& presentations, jobject presentationsJObj) {
+        for (const auto& ap : presentations) {
+            ScopedLocalRef<jobject> jLabelObject = convertLabelsToMap(env, fields, ap.mLabels);
+            if (jLabelObject == nullptr) return;
+            ScopedLocalRef<jstring> jLanguage(env, env->NewStringUTF(ap.mLanguage.c_str()));
+            if (jLanguage == nullptr) return;
+            ScopedLocalRef<jobject> jLocale(env, env->NewObject(
+                            fields.ulocaleClazz, fields.ulocaleConstructID, jLanguage.get()));
+            ScopedLocalRef<jobject> jValueObj(env, env->NewObject(fields.clazz, fields.constructID,
+                            static_cast<jint>(ap.mPresentationId),
+                            static_cast<jint>(ap.mProgramId),
+                            jLocale.get(),
+                            static_cast<jint>(ap.mMasteringIndication),
+                            static_cast<jboolean>((ap.mAudioDescriptionAvailable == 1) ? 1 : 0),
+                            static_cast<jboolean>((ap.mSpokenSubtitlesAvailable == 1) ? 1 : 0),
+                            static_cast<jboolean>((ap.mDialogueEnhancementAvailable == 1) ? 1 : 0),
+                            jLabelObject.get()));
+            if (jValueObj != nullptr) {
+                env->CallBooleanMethod(presentationsJObj, fields.listAddId, jValueObj.get());
             }
-            if (ConvertMessageToMap(env, labelMessage, &jLabelObject) != OK) {
-                return NULL;
-            }
-            ScopedLocalRef<jclass> localeClazz(env, env->FindClass("android/icu/util/ULocale"));
-            if (localeClazz.get() == NULL) {
-                return NULL;
-            }
-            jmethodID localeConstructID =
-                    env->GetMethodID(localeClazz.get(), "<init>", "(Ljava/lang/String;)V");
-            if (localeConstructID == NULL) {
-                return NULL;
-            }
-            jstring jLanguage = env->NewStringUTF(ap->mLanguage.c_str());
-            jobject jLocale = env->NewObject(localeClazz.get(), localeConstructID, jLanguage);
-            jobject jValueObj = env->NewObject(fields.clazz, fields.constructID,
-                                static_cast<jint>(ap->mPresentationId),
-                                static_cast<jint>(ap->mProgramId),
-                                jLocale,
-                                static_cast<jint>(ap->mMasteringIndication),
-                                static_cast<jboolean>((ap->mAudioDescriptionAvailable == 1) ?
-                                    1 : 0),
-                                static_cast<jboolean>((ap->mSpokenSubtitlesAvailable == 1) ?
-                                    1 : 0),
-                                static_cast<jboolean>((ap->mDialogueEnhancementAvailable == 1) ?
-                                    1 : 0),
-                                jLabelObject);
-            if (jValueObj == NULL) {
-                env->DeleteLocalRef(jLanguage); jLanguage = NULL;
-                return NULL;
-            }
-
-            env->CallBooleanMethod(list, fields.listAddId, jValueObj);
-            env->DeleteLocalRef(jLocale); jLocale = NULL;
-            env->DeleteLocalRef(jValueObj); jValueObj = NULL;
-            env->DeleteLocalRef(jLanguage); jLanguage = NULL;
         }
-        return list;
+    }
+
+  private:
+    static ScopedLocalRef<jobject> convertLabelsToMap(
+            JNIEnv *env, const fields_t& fields, const std::map<std::string, std::string> &labels) {
+        ScopedLocalRef<jobject> nullMap(env, nullptr);
+        ScopedLocalRef<jobject> hashMap(env, env->NewObject(
+                        fields.hashMapClazz, fields.hashMapConstructID));
+        if (hashMap == nullptr) {
+            return nullMap;
+        }
+
+        for (const auto& label : labels) {
+            ScopedLocalRef<jstring> jLanguage(env, env->NewStringUTF(label.first.c_str()));
+            if (jLanguage == nullptr) return nullMap;
+            ScopedLocalRef<jobject> jLocale(env, env->NewObject(
+                            fields.ulocaleClazz,
+                            fields.ulocaleConstructID,
+                            jLanguage.get()));
+            if (jLocale == nullptr) return nullMap;
+            ScopedLocalRef<jobject> jValue(env, env->NewStringUTF(label.second.c_str()));
+            if (jValue == nullptr) return nullMap;
+            env->CallObjectMethod(hashMap.get(), fields.hashMapPutID, jLocale.get(), jValue.get());
+        }
+        return hashMap;
     }
 };
 }  // namespace android
diff --git a/media/jni/android_media_Media2DataSource.cpp b/media/jni/android_media_DataSourceCallback.cpp
similarity index 79%
rename from media/jni/android_media_Media2DataSource.cpp
rename to media/jni/android_media_DataSourceCallback.cpp
index b3434e9..c91d409 100644
--- a/media/jni/android_media_Media2DataSource.cpp
+++ b/media/jni/android_media_DataSourceCallback.cpp
@@ -15,10 +15,10 @@
  */
 
 //#define LOG_NDEBUG 0
-#define LOG_TAG "JMedia2DataSource-JNI"
+#define LOG_TAG "JDataSourceCallback-JNI"
 #include <utils/Log.h>
 
-#include "android_media_Media2DataSource.h"
+#include "android_media_DataSourceCallback.h"
 
 #include "log/log.h"
 #include "jni.h"
@@ -33,14 +33,14 @@
 
 static const size_t kBufferSize = 64 * 1024;
 
-JMedia2DataSource::JMedia2DataSource(JNIEnv* env, jobject source)
+JDataSourceCallback::JDataSourceCallback(JNIEnv* env, jobject source)
     : mJavaObjStatus(OK),
       mSizeIsCached(false),
       mCachedSize(0) {
-    mMedia2DataSourceObj = env->NewGlobalRef(source);
-    CHECK(mMedia2DataSourceObj != NULL);
+    mDataSourceCallbackObj = env->NewGlobalRef(source);
+    CHECK(mDataSourceCallbackObj != NULL);
 
-    ScopedLocalRef<jclass> media2DataSourceClass(env, env->GetObjectClass(mMedia2DataSourceObj));
+    ScopedLocalRef<jclass> media2DataSourceClass(env, env->GetObjectClass(mDataSourceCallbackObj));
     CHECK(media2DataSourceClass.get() != NULL);
 
     mReadAtMethod = env->GetMethodID(media2DataSourceClass.get(), "readAt", "(J[BII)I");
@@ -55,17 +55,17 @@
     CHECK(mByteArrayObj != NULL);
 }
 
-JMedia2DataSource::~JMedia2DataSource() {
+JDataSourceCallback::~JDataSourceCallback() {
     JNIEnv* env = JavaVMHelper::getJNIEnv();
-    env->DeleteGlobalRef(mMedia2DataSourceObj);
+    env->DeleteGlobalRef(mDataSourceCallbackObj);
     env->DeleteGlobalRef(mByteArrayObj);
 }
 
-status_t JMedia2DataSource::initCheck() const {
+status_t JDataSourceCallback::initCheck() const {
     return OK;
 }
 
-ssize_t JMedia2DataSource::readAt(off64_t offset, void *data, size_t size) {
+ssize_t JDataSourceCallback::readAt(off64_t offset, void *data, size_t size) {
     Mutex::Autolock lock(mLock);
 
     if (mJavaObjStatus != OK) {
@@ -76,7 +76,7 @@
     }
 
     JNIEnv* env = JavaVMHelper::getJNIEnv();
-    jint numread = env->CallIntMethod(mMedia2DataSourceObj, mReadAtMethod,
+    jint numread = env->CallIntMethod(mDataSourceCallbackObj, mReadAtMethod,
             (jlong)offset, mByteArrayObj, (jint)0, (jint)size);
     if (env->ExceptionCheck()) {
         ALOGW("An exception occurred in readAt()");
@@ -106,7 +106,7 @@
     return numread;
 }
 
-status_t JMedia2DataSource::getSize(off64_t* size) {
+status_t JDataSourceCallback::getSize(off64_t* size) {
     Mutex::Autolock lock(mLock);
 
     if (mJavaObjStatus != OK) {
@@ -118,7 +118,7 @@
     }
 
     JNIEnv* env = JavaVMHelper::getJNIEnv();
-    *size = env->CallLongMethod(mMedia2DataSourceObj, mGetSizeMethod);
+    *size = env->CallLongMethod(mDataSourceCallbackObj, mGetSizeMethod);
     if (env->ExceptionCheck()) {
         ALOGW("An exception occurred in getSize()");
         jniLogException(env, ANDROID_LOG_WARN, LOG_TAG);
@@ -139,20 +139,20 @@
     return OK;
 }
 
-void JMedia2DataSource::close() {
+void JDataSourceCallback::close() {
     Mutex::Autolock lock(mLock);
 
     JNIEnv* env = JavaVMHelper::getJNIEnv();
-    env->CallVoidMethod(mMedia2DataSourceObj, mCloseMethod);
+    env->CallVoidMethod(mDataSourceCallbackObj, mCloseMethod);
     // The closed state is effectively the same as an error state.
     mJavaObjStatus = UNKNOWN_ERROR;
 }
 
-String8 JMedia2DataSource::toString() {
-    return String8::format("JMedia2DataSource(pid %d, uid %d)", getpid(), getuid());
+String8 JDataSourceCallback::toString() {
+    return String8::format("JDataSourceCallback(pid %d, uid %d)", getpid(), getuid());
 }
 
-String8 JMedia2DataSource::getMIMEType() const {
+String8 JDataSourceCallback::getMIMEType() const {
     return String8("application/octet-stream");
 }
 
diff --git a/media/jni/android_media_Media2DataSource.h b/media/jni/android_media_DataSourceCallback.h
similarity index 80%
rename from media/jni/android_media_Media2DataSource.h
rename to media/jni/android_media_DataSourceCallback.h
index dc085f3..5bde682 100644
--- a/media/jni/android_media_Media2DataSource.h
+++ b/media/jni/android_media_DataSourceCallback.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef _ANDROID_MEDIA_MEDIA2DATASOURCE_H_
-#define _ANDROID_MEDIA_MEDIA2DATASOURCE_H_
+#ifndef _ANDROID_MEDIA_DATASOURCECALLBACK_H_
+#define _ANDROID_MEDIA_DATASOURCECALLBACK_H_
 
 #include "jni.h"
 
@@ -26,16 +26,16 @@
 
 namespace android {
 
-// The native counterpart to a Java android.media.Media2DataSource. It inherits from
+// The native counterpart to a Java android.media.DataSourceCallback. It inherits from
 // DataSource.
 //
 // If the java DataSource returns an error or throws an exception it
 // will be considered to be in a broken state, and the only further call this
 // will make is to close().
-class JMedia2DataSource : public DataSource {
+class JDataSourceCallback : public DataSource {
 public:
-    JMedia2DataSource(JNIEnv *env, jobject source);
-    virtual ~JMedia2DataSource();
+    JDataSourceCallback(JNIEnv *env, jobject source);
+    virtual ~JDataSourceCallback();
 
     virtual status_t initCheck() const override;
     virtual ssize_t readAt(off64_t offset, void *data, size_t size) override;
@@ -56,15 +56,15 @@
     bool mSizeIsCached;
     off64_t mCachedSize;
 
-    jobject mMedia2DataSourceObj;
+    jobject mDataSourceCallbackObj;
     jmethodID mReadAtMethod;
     jmethodID mGetSizeMethod;
     jmethodID mCloseMethod;
     jbyteArray mByteArrayObj;
 
-    DISALLOW_EVIL_CONSTRUCTORS(JMedia2DataSource);
+    DISALLOW_EVIL_CONSTRUCTORS(JDataSourceCallback);
 };
 
 }  // namespace android
 
-#endif  // _ANDROID_MEDIA_MEDIA2DATASOURCE_H_
+#endif  // _ANDROID_MEDIA_DATASOURCECALLBACK_H_
diff --git a/media/jni/android_media_MediaExtractor.cpp b/media/jni/android_media_MediaExtractor.cpp
index 15957c6..29238d3 100644
--- a/media/jni/android_media_MediaExtractor.cpp
+++ b/media/jni/android_media_MediaExtractor.cpp
@@ -18,6 +18,7 @@
 #define LOG_TAG "MediaExtractor-JNI"
 #include <utils/Log.h>
 
+#include "android_media_AudioPresentation.h"
 #include "android_media_MediaDataSource.h"
 #include "android_media_MediaExtractor.h"
 #include "android_media_MediaMetricsJNI.h"
@@ -56,6 +57,7 @@
 };
 
 static fields_t gFields;
+static JAudioPresentationInfo::fields_t gAudioPresentationFields;
 
 JMediaExtractor::JMediaExtractor(JNIEnv *env, jobject thiz)
     : mClass(NULL),
@@ -289,6 +291,10 @@
     return mImpl->getCachedDuration(durationUs, eos);
 }
 
+status_t JMediaExtractor::getAudioPresentations(size_t trackIdx,
+        AudioPresentationCollection *presentations) const {
+    return mImpl->getAudioPresentations(trackIdx, presentations);
+}
 }  // namespace android
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -668,6 +674,28 @@
     return JNI_TRUE;
 }
 
+static jobject android_media_MediaExtractor_getAudioPresentations(
+        JNIEnv *env, jobject thiz, jint trackIdx) {
+    sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz);
+    jobject presentationsJObj = JAudioPresentationInfo::asJobject(env, gAudioPresentationFields);
+    if (extractor == NULL) {
+        jniThrowException(env, "java/lang/IllegalStateException", NULL);
+        return presentationsJObj;
+    }
+    AudioPresentationCollection presentations;
+    status_t err = extractor->getAudioPresentations(trackIdx, &presentations);
+    if (err == ERROR_END_OF_STREAM || err == ERROR_UNSUPPORTED) {
+        return presentationsJObj;
+    } else if (err != OK) {
+        jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+        return presentationsJObj;
+    }
+
+    JAudioPresentationInfo::addPresentations(
+            env, gAudioPresentationFields, presentations, presentationsJObj);
+    return presentationsJObj;
+}
+
 static void android_media_MediaExtractor_native_init(JNIEnv *env) {
     jclass clazz = env->FindClass("android/media/MediaExtractor");
     CHECK(clazz != NULL);
@@ -683,6 +711,8 @@
 
     gFields.cryptoInfoSetPatternID =
         env->GetMethodID(clazz, "setPattern", "(II)V");
+
+    gAudioPresentationFields.init(env);
 }
 
 static void android_media_MediaExtractor_native_setup(
@@ -963,6 +993,9 @@
 
     {"native_getMetrics",          "()Landroid/os/PersistableBundle;",
       (void *)android_media_MediaExtractor_native_getMetrics},
+
+    { "native_getAudioPresentations", "(I)Ljava/util/List;",
+      (void *)android_media_MediaExtractor_getAudioPresentations },
 };
 
 int register_android_media_MediaExtractor(JNIEnv *env) {
diff --git a/media/jni/android_media_MediaExtractor.h b/media/jni/android_media_MediaExtractor.h
index aaa8421..baa779c 100644
--- a/media/jni/android_media_MediaExtractor.h
+++ b/media/jni/android_media_MediaExtractor.h
@@ -18,6 +18,7 @@
 #define _ANDROID_MEDIA_MEDIAEXTRACTOR_H_
 
 #include <media/stagefright/foundation/ABase.h>
+#include <media/stagefright/foundation/AudioPresentationInfo.h>
 #include <media/MediaSource.h>
 #include <media/DataSource.h>
 #include <utils/Errors.h>
@@ -66,6 +67,8 @@
     status_t getMetrics(Parcel *reply) const;
 
     bool getCachedDuration(int64_t *durationUs, bool *eos) const;
+    status_t getAudioPresentations(size_t trackIdx,
+            AudioPresentationCollection *presentations) const;
 
 protected:
     virtual ~JMediaExtractor();
diff --git a/media/jni/android_media_MediaPlayer2.cpp b/media/jni/android_media_MediaPlayer2.cpp
index f7de2e7..4567492 100644
--- a/media/jni/android_media_MediaPlayer2.cpp
+++ b/media/jni/android_media_MediaPlayer2.cpp
@@ -46,7 +46,7 @@
 #include "utils/KeyedVector.h"
 #include "utils/String8.h"
 #include "android_media_BufferingParams.h"
-#include "android_media_Media2DataSource.h"
+#include "android_media_DataSourceCallback.h"
 #include "android_media_MediaMetricsJNI.h"
 #include "android_media_PlaybackParams.h"
 #include "android_media_SyncParams.h"
@@ -423,7 +423,7 @@
         jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
         return;
     }
-    sp<DataSource> callbackDataSource = new JMedia2DataSource(env, dataSource);
+    sp<DataSource> callbackDataSource = new JDataSourceCallback(env, dataSource);
     sp<DataSourceDesc> dsd = new DataSourceDesc();
     dsd->mId = srcId;
     dsd->mType = DataSourceDesc::TYPE_CALLBACK;
@@ -1390,7 +1390,7 @@
     },
     {
         "nativeHandleDataSourceCallback",
-        "(ZJLandroid/media/Media2DataSource;JJ)V",
+        "(ZJLandroid/media/DataSourceCallback;JJ)V",
         (void *)android_media_MediaPlayer2_handleDataSourceCallback
     },
     {"nativePlayNextDataSource", "(J)V",                        (void *)android_media_MediaPlayer2_playNextDataSource},
diff --git a/media/proto/Android.bp b/media/proto/Android.bp
index 50d44c3..74fd525 100644
--- a/media/proto/Android.bp
+++ b/media/proto/Android.bp
@@ -7,6 +7,7 @@
     srcs: ["mediaplayer2.proto"],
     no_framework_libs: true,
     jarjar_rules: "jarjar-rules.txt",
+    sdk_version: "28",
 }
 
 cc_library_static {
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/SurfaceUtilsTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/SurfaceUtilsTest.java
new file mode 100644
index 0000000..f578e46
--- /dev/null
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/SurfaceUtilsTest.java
@@ -0,0 +1,44 @@
+/*
+ * 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.mediaframeworktest.unit;
+
+import android.graphics.ImageFormat;
+import android.hardware.camera2.utils.SurfaceUtils;
+import android.media.ImageReader;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.view.Surface;
+
+import junit.framework.Assert;
+
+public class SurfaceUtilsTest extends junit.framework.TestCase {
+
+    @SmallTest
+    public void testInvalidSurfaceException() {
+        ImageReader reader = ImageReader.newInstance(640, 480, ImageFormat.YUV_420_888, 1);
+        Surface surface = reader.getSurface();
+        surface.release();
+
+        try {
+            SurfaceUtils.isFlexibleConsumer(surface);
+            Assert.fail("unreachable");
+        } catch (UnsupportedOperationException e) {
+            // expected
+        }
+
+        reader.close();
+    }
+}
diff --git a/native/android/libandroid.map.txt b/native/android/libandroid.map.txt
index e7e8384..207508e 100644
--- a/native/android/libandroid.map.txt
+++ b/native/android/libandroid.map.txt
@@ -144,6 +144,7 @@
     AHardwareBuffer_describe; # introduced=26
     AHardwareBuffer_fromHardwareBuffer; # introduced=26
     AHardwareBuffer_getNativeHandle; # introduced=26
+    AHardwareBuffer_isSupported; # introduced=29
     AHardwareBuffer_lock; # introduced=26
     AHardwareBuffer_recvHandleFromUnixSocket; # introduced=26
     AHardwareBuffer_release; # introduced=26
diff --git a/native/webview/plat_support/draw_gl.h b/native/webview/plat_support/draw_gl.h
index c8434b6..de13ed0 100644
--- a/native/webview/plat_support/draw_gl.h
+++ b/native/webview/plat_support/draw_gl.h
@@ -43,9 +43,9 @@
   // Input: tells the draw function what action to perform.
   enum Mode {
     kModeDraw = 0,
-    kModeProcess,
-    kModeProcessNoContext,
-    kModeSync,
+    kModeProcess = 1,
+    kModeProcessNoContext = 2,
+    kModeSync = 3,
   } mode;
 
   // Input: current clip rect in surface coordinates. Reflects the current state
@@ -93,9 +93,9 @@
                                 AwDrawGLInfo* draw_info,
                                 void* spare);
 enum AwMapMode {
-  MAP_READ_ONLY,
-  MAP_WRITE_ONLY,
-  MAP_READ_WRITE,
+  MAP_READ_ONLY = 0,
+  MAP_WRITE_ONLY = 1,
+  MAP_READ_WRITE = 2,
 };
 
 // Called to create a GraphicBuffer
diff --git a/native/webview/plat_support/draw_gl_functor.cpp b/native/webview/plat_support/draw_gl_functor.cpp
index 7cb49da..e3e52b1 100644
--- a/native/webview/plat_support/draw_gl_functor.cpp
+++ b/native/webview/plat_support/draw_gl_functor.cpp
@@ -42,10 +42,10 @@
 class DrawGLFunctor : public Functor {
  public:
   explicit DrawGLFunctor(jlong view_context) : view_context_(view_context) {}
-  virtual ~DrawGLFunctor() {}
+  ~DrawGLFunctor() override {}
 
   // Functor
-  virtual status_t operator ()(int what, void* data) {
+  status_t operator ()(int what, void* data) override {
     using uirenderer::DrawGlInfo;
     if (!g_aw_drawgl_function) {
       ALOGE("Cannot draw: no DrawGL Function installed");
diff --git a/packages/CarSystemUI/Android.bp b/packages/CarSystemUI/Android.bp
index 8f13497..f244f9f 100644
--- a/packages/CarSystemUI/Android.bp
+++ b/packages/CarSystemUI/Android.bp
@@ -45,6 +45,7 @@
         "androidx.slice_slice-builders",
         "androidx.arch.core_core-runtime",
         "androidx.lifecycle_lifecycle-extensions",
+        "car-theme-lib-bp",
         "SystemUI-tags",
         "SystemUI-proto",
     ],
diff --git a/packages/SystemUI/res/anim/car_arrow_fade_in_rotate_down.xml b/packages/CarSystemUI/res/anim/car_arrow_fade_in_rotate_down.xml
similarity index 100%
rename from packages/SystemUI/res/anim/car_arrow_fade_in_rotate_down.xml
rename to packages/CarSystemUI/res/anim/car_arrow_fade_in_rotate_down.xml
diff --git a/packages/SystemUI/res/anim/car_arrow_fade_in_rotate_up.xml b/packages/CarSystemUI/res/anim/car_arrow_fade_in_rotate_up.xml
similarity index 100%
rename from packages/SystemUI/res/anim/car_arrow_fade_in_rotate_up.xml
rename to packages/CarSystemUI/res/anim/car_arrow_fade_in_rotate_up.xml
diff --git a/packages/SystemUI/res/anim/car_arrow_fade_out.xml b/packages/CarSystemUI/res/anim/car_arrow_fade_out.xml
similarity index 100%
rename from packages/SystemUI/res/anim/car_arrow_fade_out.xml
rename to packages/CarSystemUI/res/anim/car_arrow_fade_out.xml
diff --git a/packages/SystemUI/res/anim/car_user_switcher_close_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_close_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_close_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_close_animation.xml
index ed637a7..6f12338 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_close_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_close_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_close_icon_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_close_icon_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_close_icon_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_close_icon_animation.xml
index 227c981..9f8c12e 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_close_icon_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_close_icon_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_close_name_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_close_name_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_close_name_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_close_name_animation.xml
index 5901ff4..adc1f72 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_close_name_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_close_name_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_close_pages_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_close_pages_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_close_pages_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_close_pages_animation.xml
index 41cbe4b..dec5c05 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_close_pages_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_close_pages_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_close_pod_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_close_pod_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_close_pod_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_close_pod_animation.xml
index 341e7e0..986a9cb 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_close_pod_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_close_pod_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_open_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_open_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_open_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_open_animation.xml
index 6ae7413..80b38b3 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_open_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_open_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_open_icon_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_open_icon_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_open_icon_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_open_icon_animation.xml
index 06ac9e3..721376c 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_open_icon_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_open_icon_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_open_name_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_open_name_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_open_name_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_open_name_animation.xml
index 4baefb8..246099e 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_open_name_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_open_name_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_open_pages_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_open_pages_animation.xml
similarity index 93%
rename from packages/SystemUI/res/anim/car_user_switcher_open_pages_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_open_pages_animation.xml
index 2d0deb9..9a1c642 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_open_pages_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_open_pages_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/anim/car_user_switcher_open_pod_animation.xml b/packages/CarSystemUI/res/anim/car_user_switcher_open_pod_animation.xml
similarity index 95%
rename from packages/SystemUI/res/anim/car_user_switcher_open_pod_animation.xml
rename to packages/CarSystemUI/res/anim/car_user_switcher_open_pod_animation.xml
index 3315220..1414b66 100644
--- a/packages/SystemUI/res/anim/car_user_switcher_open_pod_animation.xml
+++ b/packages/CarSystemUI/res/anim/car_user_switcher_open_pod_animation.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/drawable/car_add_circle_round.xml b/packages/CarSystemUI/res/drawable/car_add_circle_round.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/car_add_circle_round.xml
rename to packages/CarSystemUI/res/drawable/car_add_circle_round.xml
diff --git a/packages/SystemUI/res/drawable/car_ic_add_white.xml b/packages/CarSystemUI/res/drawable/car_ic_add_white.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/car_ic_add_white.xml
rename to packages/CarSystemUI/res/drawable/car_ic_add_white.xml
diff --git a/packages/SystemUI/res/drawable/car_ic_arrow.xml b/packages/CarSystemUI/res/drawable/car_ic_arrow.xml
similarity index 94%
rename from packages/SystemUI/res/drawable/car_ic_arrow.xml
rename to packages/CarSystemUI/res/drawable/car_ic_arrow.xml
index d400ed8..cfacbf9 100644
--- a/packages/SystemUI/res/drawable/car_ic_arrow.xml
+++ b/packages/CarSystemUI/res/drawable/car_ic_arrow.xml
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ 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.
diff --git a/packages/SystemUI/res/drawable/car_ic_arrow_drop_up.xml b/packages/CarSystemUI/res/drawable/car_ic_arrow_drop_up.xml
similarity index 93%
rename from packages/SystemUI/res/drawable/car_ic_arrow_drop_up.xml
rename to packages/CarSystemUI/res/drawable/car_ic_arrow_drop_up.xml
index 33a512e..81e7262 100644
--- a/packages/SystemUI/res/drawable/car_ic_arrow_drop_up.xml
+++ b/packages/CarSystemUI/res/drawable/car_ic_arrow_drop_up.xml
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright (C) 2015 The Android Open Source Project
+  ~ 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.
diff --git a/packages/SystemUI/res/drawable/car_ic_hvac.xml b/packages/CarSystemUI/res/drawable/car_ic_hvac.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/car_ic_hvac.xml
rename to packages/CarSystemUI/res/drawable/car_ic_hvac.xml
diff --git a/packages/SystemUI/res/drawable/car_ic_keyboard_arrow_down.xml b/packages/CarSystemUI/res/drawable/car_ic_keyboard_arrow_down.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/car_ic_keyboard_arrow_down.xml
rename to packages/CarSystemUI/res/drawable/car_ic_keyboard_arrow_down.xml
diff --git a/packages/CarSystemUI/res/drawable/car_rounded_bg_bottom.xml b/packages/CarSystemUI/res/drawable/car_rounded_bg_bottom.xml
new file mode 100644
index 0000000..eb501e5
--- /dev/null
+++ b/packages/CarSystemUI/res/drawable/car_rounded_bg_bottom.xml
@@ -0,0 +1,27 @@
+<?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
+  -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <solid android:color="?android:attr/colorBackgroundFloating" />
+    <corners
+        android:bottomLeftRadius="@dimen/car_radius_3"
+        android:topLeftRadius="0dp"
+        android:bottomRightRadius="@dimen/car_radius_3"
+        android:topRightRadius="0dp"
+        />
+</shape>
diff --git a/packages/CarSystemUI/res/drawable/car_stat_sys_data_bluetooth_indicator.xml b/packages/CarSystemUI/res/drawable/car_stat_sys_data_bluetooth_indicator.xml
new file mode 100644
index 0000000..34578fe
--- /dev/null
+++ b/packages/CarSystemUI/res/drawable/car_stat_sys_data_bluetooth_indicator.xml
@@ -0,0 +1,28 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="17dp"
+        android:height="17dp"
+        android:viewportWidth="18.0"
+        android:viewportHeight="18.0">
+    <group
+        android:translateY="0.5"
+        android:translateX="0.5" >
+        <path
+            android:pathData="M9.57,8.5l2.79,-2.78c0.3,-0.3 0.3,-0.8 0,-1.1L9.04,1.29L9.02,1.27C8.7,0.98 8.21,1 7.91,1.31C7.78,1.45 7.71,1.64 7.71,1.84v4.79L4.69,3.61c-0.3,-0.3 -0.79,-0.3 -1.09,0s-0.3,0.79 0,1.09L7.39,8.5L3.6,12.29c-0.3,0.3 -0.3,0.79 0,1.09s0.79,0.3 1.09,0l3.01,-3.01v4.8c0,0.42 0.35,0.77 0.77,0.77c0.19,0 0.39,-0.07 0.53,-0.21l0.04,-0.04l3.32,-3.32c0.3,-0.3 0.3,-0.8 0,-1.1L9.57,8.5zM9.19,6.77v-3.2l1.6,1.6L9.19,6.77zM9.19,13.42v-3.2l1.6,1.6L9.19,13.42zM4.03,9.29c-0.44,0.44 -1.15,0.44 -1.58,0C2.02,8.86 2.02,8.16 2.45,7.72l0.01,-0.01C2.89,7.27 3.59,7.27 4.02,7.7l0.01,0.01C4.47,8.15 4.47,8.85 4.03,9.29zM14.44,7.71c0.44,0.44 0.44,1.15 0,1.58c-0.44,0.44 -1.15,0.44 -1.58,0c-0.44,-0.43 -0.44,-1.13 -0.01,-1.57l0.01,-0.01C13.3,7.28 14,7.27 14.43,7.7C14.44,7.7 14.44,7.71 14.44,7.71z"
+            android:fillColor="#FFFFFF"/>
+    </group>
+</vector>
diff --git a/packages/CarSystemUI/res/drawable/ic_mic_white.xml b/packages/CarSystemUI/res/drawable/ic_mic_white.xml
index f5a91b5..e1e389d 100644
--- a/packages/CarSystemUI/res/drawable/ic_mic_white.xml
+++ b/packages/CarSystemUI/res/drawable/ic_mic_white.xml
@@ -1,3 +1,19 @@
+<?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
+  -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="48dp"
         android:height="48dp"
diff --git a/packages/SystemUI/res/layout/car_facet_button.xml b/packages/CarSystemUI/res/layout/car_facet_button.xml
similarity index 97%
rename from packages/SystemUI/res/layout/car_facet_button.xml
rename to packages/CarSystemUI/res/layout/car_facet_button.xml
index ad86049..8e7ebad 100644
--- a/packages/SystemUI/res/layout/car_facet_button.xml
+++ b/packages/CarSystemUI/res/layout/car_facet_button.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 **
-** Copyright 2017, The Android Open Source Project
+** Copyright 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.
diff --git a/packages/SystemUI/res/layout/car_fullscreen_user_pod.xml b/packages/CarSystemUI/res/layout/car_fullscreen_user_pod.xml
similarity index 96%
rename from packages/SystemUI/res/layout/car_fullscreen_user_pod.xml
rename to packages/CarSystemUI/res/layout/car_fullscreen_user_pod.xml
index ee8d357..1d67286 100644
--- a/packages/SystemUI/res/layout/car_fullscreen_user_pod.xml
+++ b/packages/CarSystemUI/res/layout/car_fullscreen_user_pod.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-     Copyright (C) 2015 The Android Open Source Project
+     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.
diff --git a/packages/SystemUI/res/layout/car_fullscreen_user_switcher.xml b/packages/CarSystemUI/res/layout/car_fullscreen_user_switcher.xml
similarity index 96%
rename from packages/SystemUI/res/layout/car_fullscreen_user_switcher.xml
rename to packages/CarSystemUI/res/layout/car_fullscreen_user_switcher.xml
index c9f5148..6cd70d6 100644
--- a/packages/SystemUI/res/layout/car_fullscreen_user_switcher.xml
+++ b/packages/CarSystemUI/res/layout/car_fullscreen_user_switcher.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-     Copyright (C) 2015 The Android Open Source Project
+     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.
diff --git a/packages/SystemUI/res/layout/car_left_navigation_bar.xml b/packages/CarSystemUI/res/layout/car_left_navigation_bar.xml
similarity index 98%
rename from packages/SystemUI/res/layout/car_left_navigation_bar.xml
rename to packages/CarSystemUI/res/layout/car_left_navigation_bar.xml
index 02be457..141b28a 100644
--- a/packages/SystemUI/res/layout/car_left_navigation_bar.xml
+++ b/packages/CarSystemUI/res/layout/car_left_navigation_bar.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 **
-** Copyright 2016, The Android Open Source Project
+** Copyright 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.
diff --git a/packages/SystemUI/res/layout/car_left_navigation_bar_unprovisioned.xml b/packages/CarSystemUI/res/layout/car_left_navigation_bar_unprovisioned.xml
similarity index 100%
rename from packages/SystemUI/res/layout/car_left_navigation_bar_unprovisioned.xml
rename to packages/CarSystemUI/res/layout/car_left_navigation_bar_unprovisioned.xml
diff --git a/packages/SystemUI/res/layout/car_navigation_button.xml b/packages/CarSystemUI/res/layout/car_navigation_button.xml
similarity index 95%
rename from packages/SystemUI/res/layout/car_navigation_button.xml
rename to packages/CarSystemUI/res/layout/car_navigation_button.xml
index 4062eb8..6d8cca9 100644
--- a/packages/SystemUI/res/layout/car_navigation_button.xml
+++ b/packages/CarSystemUI/res/layout/car_navigation_button.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 **
-** Copyright 2016, The Android Open Source Project
+** Copyright 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.
diff --git a/packages/SystemUI/res/layout/car_qs_footer.xml b/packages/CarSystemUI/res/layout/car_qs_footer.xml
similarity index 98%
rename from packages/SystemUI/res/layout/car_qs_footer.xml
rename to packages/CarSystemUI/res/layout/car_qs_footer.xml
index 3afd4ea..6f19cfc 100644
--- a/packages/SystemUI/res/layout/car_qs_footer.xml
+++ b/packages/CarSystemUI/res/layout/car_qs_footer.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/layout/car_qs_panel.xml b/packages/CarSystemUI/res/layout/car_qs_panel.xml
similarity index 96%
rename from packages/SystemUI/res/layout/car_qs_panel.xml
rename to packages/CarSystemUI/res/layout/car_qs_panel.xml
index e7413de..dfa48c3 100644
--- a/packages/SystemUI/res/layout/car_qs_panel.xml
+++ b/packages/CarSystemUI/res/layout/car_qs_panel.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- 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.
diff --git a/packages/SystemUI/res/layout/car_left_navigation_bar.xml b/packages/CarSystemUI/res/layout/car_right_navigation_bar.xml
similarity index 98%
copy from packages/SystemUI/res/layout/car_left_navigation_bar.xml
copy to packages/CarSystemUI/res/layout/car_right_navigation_bar.xml
index 02be457..141b28a 100644
--- a/packages/SystemUI/res/layout/car_left_navigation_bar.xml
+++ b/packages/CarSystemUI/res/layout/car_right_navigation_bar.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 **
-** Copyright 2016, The Android Open Source Project
+** Copyright 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.
diff --git a/packages/SystemUI/res/layout/car_right_navigation_bar_unprovisioned.xml b/packages/CarSystemUI/res/layout/car_right_navigation_bar_unprovisioned.xml
similarity index 100%
rename from packages/SystemUI/res/layout/car_right_navigation_bar_unprovisioned.xml
rename to packages/CarSystemUI/res/layout/car_right_navigation_bar_unprovisioned.xml
diff --git a/packages/CarSystemUI/res/layout/car_volume_dialog.xml b/packages/CarSystemUI/res/layout/car_volume_dialog.xml
index c98740e..709797d 100644
--- a/packages/CarSystemUI/res/layout/car_volume_dialog.xml
+++ b/packages/CarSystemUI/res/layout/car_volume_dialog.xml
@@ -20,11 +20,9 @@
     android:id="@+id/volume_list"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="@android:color/black"
     android:minWidth="@dimen/volume_dialog_panel_width"
-    android:theme="@style/Theme.Car.DialogListView"
-    app:dividerEndMargin="@dimen/car_keyline_1"
-    app:dividerStartMargin="@dimen/car_keyline_1"
+    android:theme="@style/PagedListViewTheme"
     app:gutter="none"
     app:scrollBarEnabled="false"
+    app:listDividerColor="@color/list_divider_color"
     app:showPagedListViewDivider="true"/>
diff --git a/packages/CarSystemUI/res/values/colors.xml b/packages/CarSystemUI/res/values/colors.xml
index df8f8db..c510ab6 100644
--- a/packages/CarSystemUI/res/values/colors.xml
+++ b/packages/CarSystemUI/res/values/colors.xml
@@ -51,4 +51,6 @@
     <color name="car_grey_900">#ff212121</color>
 
     <color name="keyguard_button_text_color">@android:color/black</color>
+
+    <color name="list_divider_color">@*android:color/car_list_divider_light</color>
 </resources>
diff --git a/packages/SystemUI/res/values/colors_car.xml b/packages/CarSystemUI/res/values/colors_car.xml
similarity index 95%
rename from packages/SystemUI/res/values/colors_car.xml
rename to packages/CarSystemUI/res/values/colors_car.xml
index 49bfb25..2f720f5 100644
--- a/packages/SystemUI/res/values/colors_car.xml
+++ b/packages/CarSystemUI/res/values/colors_car.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 /*
- * Copyright 2017, The Android Open Source Project
+ * Copyright 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.
diff --git a/packages/SystemUI/res/values/dimens_car.xml b/packages/CarSystemUI/res/values/dimens_car.xml
similarity index 97%
rename from packages/SystemUI/res/values/dimens_car.xml
rename to packages/CarSystemUI/res/values/dimens_car.xml
index afbe176..c027f81 100644
--- a/packages/SystemUI/res/values/dimens_car.xml
+++ b/packages/CarSystemUI/res/values/dimens_car.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
- * Copyright (c) 2016, The Android Open Source Project
+ * 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.
diff --git a/packages/SystemUI/res/values/ids_car.xml b/packages/CarSystemUI/res/values/ids_car.xml
similarity index 100%
rename from packages/SystemUI/res/values/ids_car.xml
rename to packages/CarSystemUI/res/values/ids_car.xml
diff --git a/packages/SystemUI/res/values/integers_car.xml b/packages/CarSystemUI/res/values/integers_car.xml
similarity index 95%
rename from packages/SystemUI/res/values/integers_car.xml
rename to packages/CarSystemUI/res/values/integers_car.xml
index fc3623c..472c957 100644
--- a/packages/SystemUI/res/values/integers_car.xml
+++ b/packages/CarSystemUI/res/values/integers_car.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  Copyright (c) 2017, The Android Open Source Project
+  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.
diff --git a/packages/SystemUI/res/values/strings_car.xml b/packages/CarSystemUI/res/values/strings_car.xml
similarity index 96%
rename from packages/SystemUI/res/values/strings_car.xml
rename to packages/CarSystemUI/res/values/strings_car.xml
index 2890cf2..83e91c5 100644
--- a/packages/SystemUI/res/values/strings_car.xml
+++ b/packages/CarSystemUI/res/values/strings_car.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 /**
- * Copyright (c) 2016, The Android Open Source Project
+ * 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.
diff --git a/packages/CarSystemUI/res/values/styles.xml b/packages/CarSystemUI/res/values/styles.xml
index 7f4544a..0d95d30 100644
--- a/packages/CarSystemUI/res/values/styles.xml
+++ b/packages/CarSystemUI/res/values/styles.xml
@@ -41,15 +41,16 @@
         <item name="android:colorControlHighlight">@color/nav_bar_ripple_background_color</item>
     </style>
 
-    <style name="Theme.Car.DialogListView" parent="@style/Theme.Car.NoActionBar">
-        <item name="android:colorControlActivated">@color/car_accent</item>
-        <item name="listItemBackgroundColor">@android:color/black</item>
-    </style>
-
     <style name="NavigationBarButton">
         <item name="android:layout_height">96dp</item>
         <item name="android:layout_width">96dp</item>
         <item name="android:background">@drawable/nav_button_background</item>
     </style>
 
-</resources>
+    <style name="PagedListViewTheme" parent="@style/Theme.CarSupportWrapper.NoActionBar">
+        <item name="android:background">@*android:color/car_background</item>
+        <item name="listItemBackgroundColor">@*android:color/car_background</item>
+        <item name="dividerEndMargin">@dimen/car_keyline_1</item>
+        <item name="dividerStartMargin">@dimen/car_keyline_1</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/packages/CarSystemUI/res/xml/car_volume_items.xml b/packages/CarSystemUI/res/xml/car_volume_items.xml
index 8715946..922b1a7 100644
--- a/packages/CarSystemUI/res/xml/car_volume_items.xml
+++ b/packages/CarSystemUI/res/xml/car_volume_items.xml
@@ -23,8 +23,8 @@
         car:icon="@drawable/car_ic_music"/>
   <item car:usage="media"
         car:icon="@drawable/car_ic_music"/>
-  <item car:usage="voice_communication"
-        car:icon="@*android:drawable/ic_audio_ring_notif"/>
+  <item car:usage="assistance_navigation_guidance"
+        car:icon="@drawable/car_ic_navigation"/>
   <item car:usage="voice_communication_signalling"
         car:icon="@*android:drawable/ic_audio_ring_notif"/>
   <item car:usage="alarm"
@@ -43,8 +43,8 @@
         car:icon="@drawable/car_ic_notification"/>
   <item car:usage="assistance_accessibility"
         car:icon="@drawable/car_ic_notification"/>
-  <item car:usage="assistance_navigation_guidance"
-        car:icon="@drawable/car_ic_navigation"/>
+  <item car:usage="voice_communication"
+        car:icon="@*android:drawable/ic_audio_ring_notif"/>
   <item car:usage="assistance_sonification"
         car:icon="@drawable/car_ic_notification"/>
   <item car:usage="game"
diff --git a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIFactory.java b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIFactory.java
index dfe5704..f57f26d 100644
--- a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIFactory.java
+++ b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIFactory.java
@@ -28,6 +28,8 @@
 import com.android.systemui.statusbar.car.hvac.HvacController;
 import com.android.systemui.statusbar.notification.NotificationEntryManager;
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
+import com.android.systemui.volume.CarVolumeDialogComponent;
+import com.android.systemui.volume.VolumeDialogComponent;
 
 /**
  * Class factory to provide car specific SystemUI components.
@@ -39,6 +41,10 @@
         return new CarStatusBarKeyguardViewManager(context, viewMediatorCallback, lockPatternUtils);
     }
 
+    public VolumeDialogComponent createVolumeDialogComponent(SystemUI systemUi, Context context) {
+        return new CarVolumeDialogComponent(systemUi, context);
+    }
+
     @Override
     public void injectDependencies(ArrayMap<Object, DependencyProvider> providers,
         Context context) {
diff --git a/packages/SystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java b/packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java
similarity index 95%
rename from packages/SystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java
rename to packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java
index 50fefe9..0563418 100644
--- a/packages/SystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java
+++ b/packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 The Android Open Source Project
+ * 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.
@@ -11,8 +11,9 @@
  * 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
+ * limitations under the License.
  */
+
 package com.android.systemui.car;
 
 import android.content.Context;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFooter.java b/packages/CarSystemUI/src/com/android/systemui/qs/car/CarQSFooter.java
similarity index 90%
rename from packages/SystemUI/src/com/android/systemui/qs/car/CarQSFooter.java
rename to packages/CarSystemUI/src/com/android/systemui/qs/car/CarQSFooter.java
index 0389030..b74f199 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFooter.java
+++ b/packages/CarSystemUI/src/com/android/systemui/qs/car/CarQSFooter.java
@@ -1,16 +1,19 @@
 /*
- * Copyright (C) 2017 The Android Open Source Project
+ * 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
+ * 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.
+ * 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.systemui.qs.car;
 
 import android.content.Context;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFragment.java b/packages/CarSystemUI/src/com/android/systemui/qs/car/CarQSFragment.java
similarity index 94%
rename from packages/SystemUI/src/com/android/systemui/qs/car/CarQSFragment.java
rename to packages/CarSystemUI/src/com/android/systemui/qs/car/CarQSFragment.java
index 3e82c54..41c37d3 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/car/CarQSFragment.java
+++ b/packages/CarSystemUI/src/com/android/systemui/qs/car/CarQSFragment.java
@@ -1,16 +1,19 @@
 /*
- * Copyright (C) 2017 The Android Open Source Project
+ * 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
+ * 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.
+ * 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.systemui.qs.car;
 
 import android.animation.Animator;
@@ -223,7 +226,7 @@
 
     private void animateHeightChange(boolean opening) {
         // Animation in progress; cancel it to avoid contention.
-        if (mAnimatorSet != null){
+        if (mAnimatorSet != null) {
             mAnimatorSet.cancel();
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/car/CarStatusBarHeader.java b/packages/CarSystemUI/src/com/android/systemui/qs/car/CarStatusBarHeader.java
similarity index 81%
rename from packages/SystemUI/src/com/android/systemui/qs/car/CarStatusBarHeader.java
rename to packages/CarSystemUI/src/com/android/systemui/qs/car/CarStatusBarHeader.java
index 083a747..d5dd3c3 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/car/CarStatusBarHeader.java
+++ b/packages/CarSystemUI/src/com/android/systemui/qs/car/CarStatusBarHeader.java
@@ -1,16 +1,19 @@
 /*
- * Copyright (C) 2017 The Android Open Source Project
+ * 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
+ * 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.
+ * 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.systemui.qs.car;
 
 import android.content.Context;
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/AssitantButton.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/AssitantButton.java
new file mode 100644
index 0000000..5bf30ca
--- /dev/null
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/AssitantButton.java
@@ -0,0 +1,72 @@
+/*
+ * 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.systemui.statusbar.car;
+
+import static android.service.voice.VoiceInteractionSession.SHOW_SOURCE_ASSIST_GESTURE;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.os.Bundle;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.internal.app.AssistUtils;
+import com.android.internal.app.IVoiceInteractionSessionShowCallback;
+
+/**
+ * AssitantButton is a ui component that will trigger the Voice Interaction Service.
+ */
+public class AssitantButton extends CarFacetButton {
+
+    private static final String TAG = "CarFacetButton";
+    private IVoiceInteractionSessionShowCallback mShowCallback =
+            new IVoiceInteractionSessionShowCallback.Stub() {
+                @Override
+                public void onFailed() {
+                    Log.w(TAG, "Failed to show VoiceInteractionSession");
+                }
+
+                @Override
+                public void onShown() {
+                    Log.d(TAG, "IVoiceInteractionSessionShowCallback onShown()");
+                }
+            };
+
+    private static final String EXTRA_CAR_PUSH_TO_TALK =
+            "com.android.car.input.EXTRA_CAR_PUSH_TO_TALK";
+    private final AssistUtils mAssistUtils;
+
+    public AssitantButton(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        mAssistUtils = new AssistUtils(context);
+        setOnClickListener(v -> {
+            showAssistant();
+        });
+    }
+
+    private void showAssistant() {
+        final Bundle args = new Bundle();
+        args.putBoolean(EXTRA_CAR_PUSH_TO_TALK, true);
+        mAssistUtils.showSessionForActiveService(args,
+                SHOW_SOURCE_ASSIST_GESTURE, mShowCallback, /*activityToken=*/ null);
+    }
+
+    @Override
+    protected void setupIntents(TypedArray typedArray){
+        // left blank because for the assistant button Intent will not be passed from the layout.
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java
similarity index 98%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java
index fc39648..58f80a4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java
@@ -58,28 +58,31 @@
     private final Context mContext;
 
     private final BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter();
-    private BluetoothHeadsetClient mBluetoothHeadsetClient;
-
     private final ArrayList<BatteryStateChangeCallback> mChangeCallbacks = new ArrayList<>();
+    private BluetoothHeadsetClient mBluetoothHeadsetClient;
+    private final ServiceListener mHfpServiceListener = new ServiceListener() {
+        @Override
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            if (profile == BluetoothProfile.HEADSET_CLIENT) {
+                mBluetoothHeadsetClient = (BluetoothHeadsetClient) proxy;
+            }
+        }
 
+        @Override
+        public void onServiceDisconnected(int profile) {
+            if (profile == BluetoothProfile.HEADSET_CLIENT) {
+                mBluetoothHeadsetClient = null;
+            }
+        }
+    };
     private int mLevel;
-
-    /**
-     * An interface indicating the container of a View that will display what the information
-     * in the {@link CarBatteryController}.
-     */
-    public interface BatteryViewHandler {
-        void hideBatteryView();
-        void showBatteryView();
-    }
-
     private BatteryViewHandler mBatteryViewHandler;
 
     public CarBatteryController(Context context) {
         mContext = context;
 
         if (mAdapter == null) {
-           return;
+            return;
         }
 
         mAdapter.getProfileProxy(context.getApplicationContext(), mHfpServiceListener,
@@ -159,7 +162,7 @@
 
             }
             BluetoothDevice device =
-                    (BluetoothDevice)intent.getExtra(BluetoothDevice.EXTRA_DEVICE);
+                    (BluetoothDevice) intent.getExtra(BluetoothDevice.EXTRA_DEVICE);
             updateBatteryIcon(device, newState);
         }
     }
@@ -261,20 +264,14 @@
         }
     }
 
-    private final ServiceListener mHfpServiceListener = new ServiceListener() {
-        @Override
-        public void onServiceConnected(int profile, BluetoothProfile proxy) {
-            if (profile == BluetoothProfile.HEADSET_CLIENT) {
-                mBluetoothHeadsetClient = (BluetoothHeadsetClient) proxy;
-            }
-        }
+    /**
+     * An interface indicating the container of a View that will display what the information
+     * in the {@link CarBatteryController}.
+     */
+    public interface BatteryViewHandler {
+        void hideBatteryView();
 
-        @Override
-        public void onServiceDisconnected(int profile) {
-            if (profile == BluetoothProfile.HEADSET_CLIENT) {
-                mBluetoothHeadsetClient = null;
-            }
-        }
-    };
+        void showBatteryView();
+    }
 
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarFacetButton.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButton.java
similarity index 88%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/CarFacetButton.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButton.java
index bd32856..cea4ab0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarFacetButton.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButton.java
@@ -1,3 +1,19 @@
+/*
+ * 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.systemui.statusbar.car;
 
 import android.content.Context;
@@ -31,6 +47,7 @@
     private static final String EXTRA_FACET_PACKAGES = "packages";
     private static final String EXTRA_FACET_ID = "filter_id";
     private static final String EXTRA_FACET_LAUNCH_PICKER = "launch_picker";
+    private static final String TAG = "CarFacetButton";
 
     private Context mContext;
     private AlphaOptimizedImageButton mIcon;
@@ -51,12 +68,10 @@
     private float mSelectedAlpha = 1f;
     private float mUnselectedAlpha = 1f;
 
-
     public CarFacetButton(Context context, AttributeSet attrs) {
         super(context, attrs);
         mContext = context;
         View.inflate(context, R.layout.car_facet_button, this);
-
         // extract custom attributes
         TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CarFacetButton);
         setupIntents(typedArray);
@@ -64,13 +79,12 @@
         CarFacetButtonController carFacetButtonController = Dependency.get(
                 CarFacetButtonController.class);
         carFacetButtonController.addFacetButton(this);
-
     }
 
     /**
      * Reads the custom attributes to setup click handlers for this component.
      */
-    private void setupIntents(TypedArray typedArray) {
+    protected void setupIntents(TypedArray typedArray) {
         String intentString = typedArray.getString(R.styleable.CarFacetButton_intent);
         String longPressIntentString = typedArray.getString(R.styleable.CarFacetButton_longIntent);
         String categoryString = typedArray.getString(R.styleable.CarFacetButton_categories);
@@ -111,7 +125,6 @@
         }
     }
 
-
     private void setupIcons(TypedArray styledAttributes) {
         mSelectedAlpha = styledAttributes.getFloat(
                 R.styleable.CarFacetButton_selectedAlpha, mSelectedAlpha);
@@ -153,6 +166,9 @@
         return mFacetPackages;
     }
 
+    /**
+     * @return The list of component names.
+     */
     public String[] getComponentName() {
         if (mComponentNames == null) {
             return new String[0];
@@ -162,6 +178,7 @@
 
     /**
      * Updates the alpha of the icons to "selected" and shows the "More icon"
+     *
      * @param selected true if the view must be selected, false otherwise
      */
     public void setSelected(boolean selected) {
@@ -171,7 +188,8 @@
 
     /**
      * Updates the visual state to let the user know if it's been selected.
-     * @param selected true if should update the alpha of the icon to selected, false otherwise
+     *
+     * @param selected     true if should update the alpha of the icon to selected, false otherwise
      * @param showMoreIcon true if the "more icon" should be shown, false otherwise. Note this
      *                     is ignored if the attribute useMoreIcon is set to false
      */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarFacetButtonController.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButtonController.java
similarity index 87%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/CarFacetButtonController.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButtonController.java
index 20986ad..56db242 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarFacetButtonController.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButtonController.java
@@ -1,3 +1,19 @@
+/*
+ * 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.systemui.statusbar.car;
 
 import android.app.ActivityManager;
@@ -34,7 +50,6 @@
      * Add facet button to this controller. The expected use is for the facet button
      * to get a reference to this controller via {@link com.android.systemui.Dependency}
      * and self add.
-     * @param facetButton
      */
     public void addFacetButton(CarFacetButton facetButton) {
         String[] categories = facetButton.getCategories();
@@ -70,15 +85,16 @@
      * They will then be compared with the supplied StackInfo list.
      * The StackInfo is expected to be supplied in order of recency and StackInfo will only be used
      * for consideration if it has the same displayId as the CarFacetButtons.
-     * @param taskInfo of the currently running application
+     *
+     * @param stackInfoList of the currently running application
      */
     public void taskChanged(List<ActivityManager.StackInfo> stackInfoList) {
         int displayId = getDisplayId();
         ActivityManager.StackInfo validStackInfo = null;
-        for (ActivityManager.StackInfo stackInfo :stackInfoList) {
+        for (ActivityManager.StackInfo stackInfo : stackInfoList) {
             // If the display id is unknown or it matches the stack, it's valid for use
-            if ((displayId == -1 || displayId == stackInfo.displayId) &&
-                    stackInfo.topActivity != null) {
+            if ((displayId == -1 || displayId == stackInfo.displayId)
+                    && stackInfo.topActivity != null) {
                 validStackInfo = stackInfo;
                 break;
             }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarNavigationBarView.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarNavigationBarView.java
similarity index 100%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/CarNavigationBarView.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarNavigationBarView.java
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarNavigationButton.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarNavigationButton.java
similarity index 86%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/CarNavigationButton.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarNavigationButton.java
index 084c136..e640baa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarNavigationButton.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarNavigationButton.java
@@ -1,3 +1,19 @@
+/*
+ * 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.systemui.statusbar.car;
 
 import android.content.Context;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
similarity index 98%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
index 4bff5ba..2d90f8f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015 The Android Open Source Project
+ * 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.
@@ -35,6 +35,8 @@
 import com.android.systemui.classifier.FalsingLog;
 import com.android.systemui.classifier.FalsingManager;
 import com.android.systemui.fragments.FragmentHostManager;
+import com.android.systemui.plugins.qs.QS;
+import com.android.systemui.qs.car.CarQSFragment;
 import com.android.systemui.shared.system.ActivityManagerWrapper;
 import com.android.systemui.shared.system.TaskStackChangeListener;
 import com.android.systemui.statusbar.StatusBarState;
@@ -252,6 +254,11 @@
         addTemperatureViewToController(mStatusBarWindow);
     }
 
+    @Override
+    protected QS createDefaultQSFragment() {
+        return new CarQSFragment();
+    }
+
     private BatteryController createBatteryController() {
         mCarBatteryController = new CarBatteryController(mContext);
         mCarBatteryController.addBatteryViewHandler(this);
@@ -549,7 +556,7 @@
      */
     public void dismissKeyguard() {
         executeRunnableDismissingKeyguard(null/* runnable */, null /* cancelAction */,
-            true /* dismissShade */, true /* afterKeyguardGone */, true /* deferred */);
+                true /* dismissShade */, true /* afterKeyguardGone */, true /* deferred */);
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java
similarity index 70%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java
index d0f0629..8c6b9b0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java
@@ -1,3 +1,19 @@
+/*
+ * 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.systemui.statusbar.car;
 
 import android.content.Context;
@@ -16,13 +32,13 @@
             ViewMediatorCallback callback,
             LockPatternUtils lockPatternUtils) {
         super(context, callback, lockPatternUtils);
-        mShouldHideNavBar =context.getResources()
+        mShouldHideNavBar = context.getResources()
                 .getBoolean(R.bool.config_hideNavWhenKeyguardBouncerShown);
     }
 
     @Override
     protected void updateNavigationBarVisibility(boolean navBarVisible) {
-        if(!mShouldHideNavBar) {
+        if (!mShouldHideNavBar) {
             return;
         }
         CarStatusBar statusBar = (CarStatusBar) mStatusBar;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/ConnectedDeviceSignalController.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/ConnectedDeviceSignalController.java
similarity index 92%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/ConnectedDeviceSignalController.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/ConnectedDeviceSignalController.java
index f2923f7..3288927 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/ConnectedDeviceSignalController.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/ConnectedDeviceSignalController.java
@@ -1,3 +1,19 @@
+/*
+ * 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.systemui.statusbar.car;
 
 import static com.android.systemui.statusbar.phone.StatusBar.DEBUG;
@@ -29,7 +45,7 @@
  */
 public class ConnectedDeviceSignalController extends BroadcastReceiver implements
         BluetoothController.Callback {
-    private final static String TAG = "DeviceSignalCtlr";
+    private static final String TAG = "DeviceSignalCtlr";
 
     /**
      * The value that indicates if a network is unavailable. This value is according ot the
@@ -70,6 +86,21 @@
     private final SignalDrawable mSignalDrawable;
 
     private BluetoothHeadsetClient mBluetoothHeadsetClient;
+    private final ServiceListener mHfpServiceListener = new ServiceListener() {
+        @Override
+        public void onServiceConnected(int profile, BluetoothProfile proxy) {
+            if (profile == BluetoothProfile.HEADSET_CLIENT) {
+                mBluetoothHeadsetClient = (BluetoothHeadsetClient) proxy;
+            }
+        }
+
+        @Override
+        public void onServiceDisconnected(int profile) {
+            if (profile == BluetoothProfile.HEADSET_CLIENT) {
+                mBluetoothHeadsetClient = null;
+            }
+        }
+    };
 
     public ConnectedDeviceSignalController(Context context, View signalsView) {
         mContext = context;
@@ -87,7 +118,7 @@
                 new ScalingDrawableWrapper(mSignalDrawable, mIconScaleFactor));
 
         if (mAdapter == null) {
-          return;
+            return;
         }
 
         mAdapter.getProfileProxy(context.getApplicationContext(), mHfpServiceListener,
@@ -236,20 +267,4 @@
             mSignalsView.setVisibility(View.GONE);
         }
     }
-
-    private final ServiceListener mHfpServiceListener = new ServiceListener() {
-        @Override
-        public void onServiceConnected(int profile, BluetoothProfile proxy) {
-            if (profile == BluetoothProfile.HEADSET_CLIENT) {
-                mBluetoothHeadsetClient = (BluetoothHeadsetClient) proxy;
-            }
-        }
-
-        @Override
-        public void onServiceDisconnected(int profile) {
-            if (profile == BluetoothProfile.HEADSET_CLIENT) {
-                mBluetoothHeadsetClient = null;
-            }
-        }
-    };
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/DrivingStateHelper.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/DrivingStateHelper.java
similarity index 99%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/DrivingStateHelper.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/DrivingStateHelper.java
index 47941bf..730c3e3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/DrivingStateHelper.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/DrivingStateHelper.java
@@ -124,4 +124,4 @@
             Log.d(TAG, message);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java
similarity index 92%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java
index 2ebf5eb..23fe594 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015 The Android Open Source Project
+ * 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.
@@ -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
+ * limitations under the License.
  */
 
 package com.android.systemui.statusbar.car;
@@ -44,7 +44,7 @@
         // Initialize user grid.
         mUserGridView = container.findViewById(R.id.user_grid);
         GridLayoutManager layoutManager = new GridLayoutManager(context,
-            context.getResources().getInteger(R.integer.user_fullscreen_switcher_num_col));
+                context.getResources().getInteger(R.integer.user_fullscreen_switcher_num_col));
         mUserGridView.getRecyclerView().setLayoutManager(layoutManager);
         mUserGridView.buildAdapter();
         mUserGridView.setUserSelectionListener(this::onUserSelected);
@@ -54,7 +54,7 @@
         hide();
 
         mShortAnimDuration = container.getResources()
-            .getInteger(android.R.integer.config_shortAnimTime);
+                .getInteger(android.R.integer.config_shortAnimTime);
     }
 
     /**
@@ -108,4 +108,4 @@
                 });
 
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/SwitchToGuestTimer.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/SwitchToGuestTimer.java
similarity index 100%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/SwitchToGuestTimer.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/SwitchToGuestTimer.java
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
similarity index 91%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
index d802ed8..fb2b57b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.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
+ * limitations under the License.
  */
 
 package com.android.systemui.statusbar.car;
@@ -210,7 +210,7 @@
         public void onBindViewHolder(UserAdapterViewHolder holder, int position) {
             UserRecord userRecord = mUsers.get(position);
             RoundedBitmapDrawable circleIcon = RoundedBitmapDrawableFactory.create(mRes,
-                getUserRecordIcon(userRecord));
+                    getUserRecordIcon(userRecord));
             circleIcon.setCircular(true);
             holder.mUserAvatarImageView.setImageDrawable(circleIcon);
             holder.mUserNameTextView.setText(userRecord.mInfo.name);
@@ -254,13 +254,13 @@
 
         private void showMaxUserLimitReachedDialog() {
             AlertDialog maxUsersDialog = new Builder(mContext, R.style.Theme_Car_Dark_Dialog_Alert)
-                .setTitle(R.string.user_limit_reached_title)
-                .setMessage(getResources().getQuantityString(
-                    R.plurals.user_limit_reached_message,
-                    mCarUserManagerHelper.getMaxSupportedRealUsers(),
-                    mCarUserManagerHelper.getMaxSupportedRealUsers()))
-                .setPositiveButton(android.R.string.ok, null)
-                .create();
+                    .setTitle(R.string.user_limit_reached_title)
+                    .setMessage(getResources().getQuantityString(
+                            R.plurals.user_limit_reached_message,
+                            mCarUserManagerHelper.getMaxSupportedRealUsers(),
+                            mCarUserManagerHelper.getMaxSupportedRealUsers()))
+                    .setPositiveButton(android.R.string.ok, null)
+                    .create();
             // Sets window flags for the SysUI dialog
             SystemUIDialog.applyFlags(maxUsersDialog);
             maxUsersDialog.show();
@@ -268,17 +268,17 @@
 
         private void showConfirmAddUserDialog() {
             String message = mRes.getString(R.string.user_add_user_message_setup)
-                .concat(System.getProperty("line.separator"))
-                .concat(System.getProperty("line.separator"))
-                .concat(mRes.getString(R.string.user_add_user_message_update));
+                    .concat(System.getProperty("line.separator"))
+                    .concat(System.getProperty("line.separator"))
+                    .concat(mRes.getString(R.string.user_add_user_message_update));
 
             AlertDialog addUserDialog = new Builder(mContext, R.style.Theme_Car_Dark_Dialog_Alert)
-                .setTitle(R.string.user_add_user_title)
-                .setMessage(message)
-                .setNegativeButton(android.R.string.cancel, this)
-                .setPositiveButton(android.R.string.ok, this)
-                .setOnCancelListener(this)
-                .create();
+                    .setTitle(R.string.user_add_user_title)
+                    .setMessage(message)
+                    .setNegativeButton(android.R.string.cancel, this)
+                    .setPositiveButton(android.R.string.ok, this)
+                    .setOnCancelListener(this)
+                    .create();
             // Sets window flags for the SysUI dialog
             SystemUIDialog.applyFlags(addUserDialog);
             addUserDialog.show();
@@ -298,7 +298,7 @@
 
             if (userRecord.mIsAddUser) {
                 return UserIcons.convertToBitmap(mContext
-                    .getDrawable(R.drawable.car_add_circle_round));
+                        .getDrawable(R.drawable.car_add_circle_round));
             }
 
             return mCarUserManagerHelper.getUserIcon(userRecord.mInfo);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/hvac/HvacController.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/hvac/HvacController.java
similarity index 95%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/hvac/HvacController.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/hvac/HvacController.java
index 6c924e3..aec31ee 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/hvac/HvacController.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/hvac/HvacController.java
@@ -41,117 +41,13 @@
 public class HvacController {
 
     public static final String TAG = "HvacController";
-    public final static int BIND_TO_HVAC_RETRY_DELAY = 5000;
+    public static final int BIND_TO_HVAC_RETRY_DELAY = 5000;
 
     private Context mContext;
     private Handler mHandler;
     private Car mCar;
     private CarHvacManager mHvacManager;
     private HashMap<HvacKey, List<TemperatureView>> mTempComponents = new HashMap<>();
-
-    public HvacController(Context context) {
-        mContext = context;
-    }
-
-    /**
-     * Create connection to the Car service. Note: call backs from the Car service
-     * ({@link CarHvacManager}) will happen on the same thread this method was called from.
-     */
-    public void connectToCarService() {
-        mHandler = new Handler();
-        mCar = Car.createCar(mContext, mServiceConnection, mHandler);
-        if (mCar != null) {
-            // note: this connect call handles the retries
-            mCar.connect();
-        }
-    }
-
-    /**
-     * Registers callbacks and initializes components upon connection.
-     */
-    private ServiceConnection mServiceConnection = new ServiceConnection() {
-        @Override
-        public void onServiceConnected(ComponentName name, IBinder service) {
-            try {
-                service.linkToDeath(mRestart, 0);
-                mHvacManager = (CarHvacManager) mCar.getCarManager(Car.HVAC_SERVICE);
-                mHvacManager.registerCallback(mHardwareCallback);
-                initComponents();
-            } catch (Exception e) {
-                Log.e(TAG, "Failed to correctly connect to HVAC", e);
-            }
-        }
-
-        @Override
-        public void onServiceDisconnected(ComponentName name) {
-            destroyHvacManager();
-        }
-    };
-
-    private void destroyHvacManager() {
-        if (mHvacManager != null) {
-            mHvacManager.unregisterCallback(mHardwareCallback);
-            mHvacManager = null;
-        }
-    }
-
-    /**
-     * If the connection to car service goes away then restart it.
-     */
-    private final IBinder.DeathRecipient mRestart = new IBinder.DeathRecipient() {
-        @Override
-        public void binderDied() {
-            Log.d(TAG, "Death of HVAC triggering a restart");
-            if (mCar != null) {
-                mCar.disconnect();
-            }
-            destroyHvacManager();
-            mHandler.postDelayed(() -> mCar.connect(), BIND_TO_HVAC_RETRY_DELAY);
-        }
-    };
-
-    /**
-     * Add component to list and initialize it if the connection is up.
-     * @param temperatureView
-     */
-    public void addHvacTextView(TemperatureView temperatureView) {
-
-        HvacKey hvacKey = new HvacKey(temperatureView.getPropertyId(), temperatureView.getAreaId());
-        if (!mTempComponents.containsKey(hvacKey)) {
-            mTempComponents.put(hvacKey, new ArrayList<>());
-        }
-        mTempComponents.get(hvacKey).add(temperatureView);
-        initComponent(temperatureView);
-    }
-
-    private void initComponents() {
-        Iterator<Map.Entry<HvacKey, List<TemperatureView>>> iterator =
-                mTempComponents.entrySet().iterator();
-        while (iterator.hasNext()) {
-            Map.Entry<HvacKey, List<TemperatureView>> next = iterator.next();
-            List<TemperatureView> temperatureViews = next.getValue();
-            for (TemperatureView view : temperatureViews) {
-                initComponent(view);
-            }
-        }
-    }
-
-
-    private void initComponent(TemperatureView view) {
-        int id = view.getPropertyId();
-        int zone = view.getAreaId();
-        try {
-            if (mHvacManager == null || !mHvacManager.isPropertyAvailable(id, zone)) {
-                view.setTemp(Float.NaN);
-                return;
-            }
-            view.setTemp(mHvacManager.getFloatProperty(id, zone));
-        } catch (Exception e) {
-            view.setTemp(Float.NaN);
-            Log.e(TAG, "Failed to get value from hvac service", e);
-        }
-    }
-
     /**
      * Callback for getting changes from {@link CarHvacManager} and setting the UI elements to
      * match.
@@ -179,10 +75,109 @@
 
         @Override
         public void onErrorEvent(final int propertyId, final int zone) {
-            Log.d(TAG, "HVAC error event, propertyId: " + propertyId +
-                    " zone: " + zone);
+            Log.d(TAG, "HVAC error event, propertyId: " + propertyId
+                    + " zone: " + zone);
         }
     };
+    /**
+     * If the connection to car service goes away then restart it.
+     */
+    private final IBinder.DeathRecipient mRestart = new IBinder.DeathRecipient() {
+        @Override
+        public void binderDied() {
+            Log.d(TAG, "Death of HVAC triggering a restart");
+            if (mCar != null) {
+                mCar.disconnect();
+            }
+            destroyHvacManager();
+            mHandler.postDelayed(() -> mCar.connect(), BIND_TO_HVAC_RETRY_DELAY);
+        }
+    };
+    /**
+     * Registers callbacks and initializes components upon connection.
+     */
+    private ServiceConnection mServiceConnection = new ServiceConnection() {
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            try {
+                service.linkToDeath(mRestart, 0);
+                mHvacManager = (CarHvacManager) mCar.getCarManager(Car.HVAC_SERVICE);
+                mHvacManager.registerCallback(mHardwareCallback);
+                initComponents();
+            } catch (Exception e) {
+                Log.e(TAG, "Failed to correctly connect to HVAC", e);
+            }
+        }
+
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            destroyHvacManager();
+        }
+    };
+
+    public HvacController(Context context) {
+        mContext = context;
+    }
+
+    /**
+     * Create connection to the Car service. Note: call backs from the Car service
+     * ({@link CarHvacManager}) will happen on the same thread this method was called from.
+     */
+    public void connectToCarService() {
+        mHandler = new Handler();
+        mCar = Car.createCar(mContext, mServiceConnection, mHandler);
+        if (mCar != null) {
+            // note: this connect call handles the retries
+            mCar.connect();
+        }
+    }
+
+    private void destroyHvacManager() {
+        if (mHvacManager != null) {
+            mHvacManager.unregisterCallback(mHardwareCallback);
+            mHvacManager = null;
+        }
+    }
+
+    /**
+     * Add component to list and initialize it if the connection is up.
+     */
+    public void addHvacTextView(TemperatureView temperatureView) {
+
+        HvacKey hvacKey = new HvacKey(temperatureView.getPropertyId(), temperatureView.getAreaId());
+        if (!mTempComponents.containsKey(hvacKey)) {
+            mTempComponents.put(hvacKey, new ArrayList<>());
+        }
+        mTempComponents.get(hvacKey).add(temperatureView);
+        initComponent(temperatureView);
+    }
+
+    private void initComponents() {
+        Iterator<Map.Entry<HvacKey, List<TemperatureView>>> iterator =
+                mTempComponents.entrySet().iterator();
+        while (iterator.hasNext()) {
+            Map.Entry<HvacKey, List<TemperatureView>> next = iterator.next();
+            List<TemperatureView> temperatureViews = next.getValue();
+            for (TemperatureView view : temperatureViews) {
+                initComponent(view);
+            }
+        }
+    }
+
+    private void initComponent(TemperatureView view) {
+        int id = view.getPropertyId();
+        int zone = view.getAreaId();
+        try {
+            if (mHvacManager == null || !mHvacManager.isPropertyAvailable(id, zone)) {
+                view.setTemp(Float.NaN);
+                return;
+            }
+            view.setTemp(mHvacManager.getFloatProperty(id, zone));
+        } catch (Exception e) {
+            view.setTemp(Float.NaN);
+            Log.e(TAG, "Failed to get value from hvac service", e);
+        }
+    }
 
     /**
      * Removes all registered components. This is useful if you need to rebuild the UI since
@@ -200,7 +195,7 @@
         int mPropertyId;
         int mAreaId;
 
-        public HvacKey(int propertyId, int areaId) {
+        private HvacKey(int propertyId, int areaId) {
             mPropertyId = propertyId;
             mAreaId = areaId;
         }
@@ -210,8 +205,8 @@
             if (this == o) return true;
             if (o == null || getClass() != o.getClass()) return false;
             HvacKey hvacKey = (HvacKey) o;
-            return mPropertyId == hvacKey.mPropertyId &&
-                    mAreaId == hvacKey.mAreaId;
+            return mPropertyId == hvacKey.mPropertyId
+                    && mAreaId == hvacKey.mAreaId;
         }
 
         @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureTextView.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureTextView.java
similarity index 98%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureTextView.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureTextView.java
index 4d8ce43..507c60f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureTextView.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureTextView.java
@@ -40,7 +40,7 @@
     public TemperatureTextView(Context context, AttributeSet attrs) {
         super(context, attrs);
         TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.TemperatureView);
-        mAreaId = typedArray.getInt(R.styleable.TemperatureView_hvacAreaId,-1);
+        mAreaId = typedArray.getInt(R.styleable.TemperatureView_hvacAreaId, -1);
         mPropertyId = typedArray.getInt(R.styleable.TemperatureView_hvacPropertyId, -1);
         String format = typedArray.getString(R.styleable.TemperatureView_hvacTempFormat);
         mTempFormat = (format == null) ? "%.1f\u00B0" : format;
@@ -48,6 +48,7 @@
 
     /**
      * Formats the float for display
+     *
      * @param temp - The current temp or NaN
      */
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureView.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureView.java
similarity index 100%
rename from packages/SystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureView.java
rename to packages/CarSystemUI/src/com/android/systemui/statusbar/car/hvac/TemperatureView.java
diff --git a/packages/CarSystemUI/src/com/android/systemui/volume/CarVolumeDialogComponent.java b/packages/CarSystemUI/src/com/android/systemui/volume/CarVolumeDialogComponent.java
new file mode 100644
index 0000000..71cc19b
--- /dev/null
+++ b/packages/CarSystemUI/src/com/android/systemui/volume/CarVolumeDialogComponent.java
@@ -0,0 +1,36 @@
+/*
+ * 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.systemui.volume;
+
+import android.content.Context;
+
+import com.android.systemui.SystemUI;
+import com.android.systemui.plugins.VolumeDialog;
+
+/**
+ * Allows for adding car specific dialog when the volume dialog is created.
+ */
+public class CarVolumeDialogComponent extends VolumeDialogComponent {
+
+    public CarVolumeDialogComponent(SystemUI sysui, Context context) {
+        super(sysui, context);
+    }
+
+    protected VolumeDialog createDefault() {
+        return new CarVolumeDialogImpl(mContext);
+    }
+}
diff --git a/packages/CarSystemUI/src/com/android/systemui/volume/CarVolumeDialogImpl.java b/packages/CarSystemUI/src/com/android/systemui/volume/CarVolumeDialogImpl.java
new file mode 100644
index 0000000..12df263
--- /dev/null
+++ b/packages/CarSystemUI/src/com/android/systemui/volume/CarVolumeDialogImpl.java
@@ -0,0 +1,602 @@
+/*
+ * 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.systemui.volume;
+
+import android.animation.Animator;
+import android.animation.AnimatorInflater;
+import android.animation.AnimatorSet;
+import android.annotation.DrawableRes;
+import android.annotation.Nullable;
+import android.app.Dialog;
+import android.app.KeyguardManager;
+import android.car.Car;
+import android.car.CarNotConnectedException;
+import android.car.media.CarAudioManager;
+import android.car.media.ICarVolumeCallback;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.ServiceConnection;
+import android.content.res.TypedArray;
+import android.content.res.XmlResourceParser;
+import android.graphics.Color;
+import android.graphics.PixelFormat;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.media.AudioManager;
+import android.os.Debug;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.SparseArray;
+import android.util.Xml;
+import android.view.ContextThemeWrapper;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.SeekBar;
+import android.widget.SeekBar.OnSeekBarChangeListener;
+
+import androidx.car.widget.ListItem;
+import androidx.car.widget.ListItemAdapter;
+import androidx.car.widget.ListItemAdapter.BackgroundStyle;
+import androidx.car.widget.ListItemProvider.ListProvider;
+import androidx.car.widget.PagedListView;
+import androidx.car.widget.SeekbarListItem;
+
+import com.android.systemui.R;
+import com.android.systemui.plugins.VolumeDialog;
+
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Car version of the volume dialog.
+ *
+ * Methods ending in "H" must be called on the (ui) handler.
+ */
+public class CarVolumeDialogImpl implements VolumeDialog {
+
+    private static final String TAG = Util.logTag(CarVolumeDialogImpl.class);
+
+    private static final String XML_TAG_VOLUME_ITEMS = "carVolumeItems";
+    private static final String XML_TAG_VOLUME_ITEM = "item";
+    private static final int HOVERING_TIMEOUT = 16000;
+    private static final int NORMAL_TIMEOUT = 3000;
+    private static final int LISTVIEW_ANIMATION_DURATION_IN_MILLIS = 250;
+    private static final int DISMISS_DELAY_IN_MILLIS = 50;
+    private static final int ARROW_FADE_IN_START_DELAY_IN_MILLIS = 100;
+
+    private final Context mContext;
+    private final H mHandler = new H();
+    // All the volume items.
+    private final SparseArray<VolumeItem> mVolumeItems = new SparseArray<>();
+    // Available volume items in car audio manager.
+    private final List<VolumeItem> mAvailableVolumeItems = new ArrayList<>();
+    // Volume items in the PagedListView.
+    private final List<ListItem> mVolumeLineItems = new ArrayList<>();
+    private final KeyguardManager mKeyguard;
+    private Window mWindow;
+    private CustomDialog mDialog;
+    private PagedListView mListView;
+    private ListItemAdapter mPagedListAdapter;
+    private Car mCar;
+    private CarAudioManager mCarAudioManager;
+    private final ICarVolumeCallback mVolumeChangeCallback = new ICarVolumeCallback.Stub() {
+        @Override
+        public void onGroupVolumeChanged(int groupId, int flags) {
+            VolumeItem volumeItem = mAvailableVolumeItems.get(groupId);
+            int value = getSeekbarValue(mCarAudioManager, groupId);
+            // Do not update the progress if it is the same as before. When car audio manager sets
+            // its group volume caused by the seekbar progress changed, it also triggers this
+            // callback. Updating the seekbar at the same time could block the continuous seeking.
+            if (value != volumeItem.progress) {
+                volumeItem.listItem.setProgress(value);
+                volumeItem.progress = value;
+            }
+            if ((flags & AudioManager.FLAG_SHOW_UI) != 0) {
+                mHandler.obtainMessage(H.SHOW, Events.SHOW_REASON_VOLUME_CHANGED).sendToTarget();
+            }
+        }
+
+        @Override
+        public void onMasterMuteChanged(int flags) {
+            // ignored
+        }
+    };
+    private boolean mHovering;
+    private boolean mShowing;
+    private boolean mExpanded;
+    private final ServiceConnection mServiceConnection = new ServiceConnection() {
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            try {
+                mExpanded = false;
+                mCarAudioManager = (CarAudioManager) mCar.getCarManager(Car.AUDIO_SERVICE);
+                int volumeGroupCount = mCarAudioManager.getVolumeGroupCount();
+                // Populates volume slider items from volume groups to UI.
+                for (int groupId = 0; groupId < volumeGroupCount; groupId++) {
+                    VolumeItem volumeItem = getVolumeItemForUsages(
+                            mCarAudioManager.getUsagesForVolumeGroupId(groupId));
+                    mAvailableVolumeItems.add(volumeItem);
+                    // The first one is the default item.
+                    if (groupId == 0) {
+                        volumeItem.defaultItem = true;
+                        addSeekbarListItem(volumeItem, groupId,
+                                R.drawable.car_ic_keyboard_arrow_down,
+                                new ExpandIconListener());
+                    }
+                }
+
+                // If list is already initiated, update its content.
+                if (mPagedListAdapter != null) {
+                    mPagedListAdapter.notifyDataSetChanged();
+                }
+                mCarAudioManager.registerVolumeCallback(mVolumeChangeCallback.asBinder());
+            } catch (CarNotConnectedException e) {
+                Log.e(TAG, "Car is not connected!", e);
+            }
+        }
+
+        /**
+         * This does not get called when service is properly disconnected.
+         * So we need to also handle cleanups in destroy().
+         */
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            cleanupAudioManager();
+        }
+    };
+
+    public CarVolumeDialogImpl(Context context) {
+        mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme);
+        mKeyguard = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);
+        mCar = Car.createCar(mContext, mServiceConnection);
+    }
+
+    private static int getSeekbarValue(CarAudioManager carAudioManager, int volumeGroupId) {
+        try {
+            return carAudioManager.getGroupVolume(volumeGroupId);
+        } catch (CarNotConnectedException e) {
+            Log.e(TAG, "Car is not connected!", e);
+        }
+        return 0;
+    }
+
+    private static int getMaxSeekbarValue(CarAudioManager carAudioManager, int volumeGroupId) {
+        try {
+            return carAudioManager.getGroupMaxVolume(volumeGroupId);
+        } catch (CarNotConnectedException e) {
+            Log.e(TAG, "Car is not connected!", e);
+        }
+        return 0;
+    }
+
+    /**
+     * Build the volume window and connect to the CarService which registers with car audio
+     * manager.
+     */
+    @Override
+    public void init(int windowType, Callback callback) {
+        initDialog();
+
+        mCar.connect();
+    }
+
+    @Override
+    public void destroy() {
+        mHandler.removeCallbacksAndMessages(null);
+
+        cleanupAudioManager();
+        // unregisterVolumeCallback is not being called when disconnect car, so we manually cleanup
+        // audio manager beforehand.
+        mCar.disconnect();
+    }
+
+    private void initDialog() {
+        loadAudioUsageItems();
+        mVolumeLineItems.clear();
+        mDialog = new CustomDialog(mContext);
+
+        mHovering = false;
+        mShowing = false;
+        mExpanded = false;
+        mWindow = mDialog.getWindow();
+        mWindow.requestFeature(Window.FEATURE_NO_TITLE);
+        mWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+        mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND
+                | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
+        mWindow.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+                | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
+                | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
+                | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+                | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
+                | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
+        mWindow.setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY);
+        mWindow.setWindowAnimations(com.android.internal.R.style.Animation_Toast);
+        final WindowManager.LayoutParams lp = mWindow.getAttributes();
+        lp.format = PixelFormat.TRANSLUCENT;
+        lp.setTitle(VolumeDialogImpl.class.getSimpleName());
+        lp.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
+        lp.windowAnimations = -1;
+        mWindow.setAttributes(lp);
+        mWindow.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+
+        mDialog.setCanceledOnTouchOutside(true);
+        mDialog.setContentView(R.layout.car_volume_dialog);
+        mDialog.setOnShowListener(dialog -> {
+            mListView.setTranslationY(-mListView.getHeight());
+            mListView.setAlpha(0);
+            mListView.animate()
+                    .alpha(1)
+                    .translationY(0)
+                    .setDuration(LISTVIEW_ANIMATION_DURATION_IN_MILLIS)
+                    .setInterpolator(new SystemUIInterpolators.LogDecelerateInterpolator())
+                    .start();
+        });
+        mListView = (PagedListView) mWindow.findViewById(R.id.volume_list);
+        mListView.setOnHoverListener((v, event) -> {
+            int action = event.getActionMasked();
+            mHovering = (action == MotionEvent.ACTION_HOVER_ENTER)
+                    || (action == MotionEvent.ACTION_HOVER_MOVE);
+            rescheduleTimeoutH();
+            return true;
+        });
+
+        mPagedListAdapter = new ListItemAdapter(mContext, new ListProvider(mVolumeLineItems),
+                BackgroundStyle.PANEL);
+        mListView.setAdapter(mPagedListAdapter);
+        mListView.setMaxPages(PagedListView.UNLIMITED_PAGES);
+    }
+
+
+    private void showH(int reason) {
+        if (D.BUG) {
+            Log.d(TAG, "showH r=" + Events.DISMISS_REASONS[reason]);
+        }
+
+        mHandler.removeMessages(H.SHOW);
+        mHandler.removeMessages(H.DISMISS);
+        rescheduleTimeoutH();
+        // Refresh the data set before showing.
+        mPagedListAdapter.notifyDataSetChanged();
+        if (mShowing) {
+            return;
+        }
+        mShowing = true;
+
+        mDialog.show();
+        Events.writeEvent(mContext, Events.EVENT_SHOW_DIALOG, reason, mKeyguard.isKeyguardLocked());
+    }
+
+    private void rescheduleTimeoutH() {
+        mHandler.removeMessages(H.DISMISS);
+        final int timeout = computeTimeoutH();
+        mHandler.sendMessageDelayed(mHandler
+                .obtainMessage(H.DISMISS, Events.DISMISS_REASON_TIMEOUT), timeout);
+
+        if (D.BUG) {
+            Log.d(TAG, "rescheduleTimeout " + timeout + " " + Debug.getCaller());
+        }
+    }
+
+    private int computeTimeoutH() {
+        return mHovering ? HOVERING_TIMEOUT : NORMAL_TIMEOUT;
+    }
+
+    private void dismissH(int reason) {
+        if (D.BUG) {
+            Log.d(TAG, "dismissH r=" + Events.DISMISS_REASONS[reason]);
+        }
+
+        mHandler.removeMessages(H.DISMISS);
+        mHandler.removeMessages(H.SHOW);
+        if (!mShowing) {
+            return;
+        }
+
+        mListView.animate().cancel();
+
+        mListView.setTranslationY(0);
+        mListView.setAlpha(1);
+        mListView.animate()
+                .alpha(0)
+                .translationY(-mListView.getHeight())
+                .setDuration(LISTVIEW_ANIMATION_DURATION_IN_MILLIS)
+                .setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator())
+                .withEndAction(() -> mHandler.postDelayed(() -> {
+                    if (D.BUG) {
+                        Log.d(TAG, "mDialog.dismiss()");
+                    }
+                    mDialog.dismiss();
+                    mShowing = false;
+                }, DISMISS_DELAY_IN_MILLIS))
+                .start();
+
+        Events.writeEvent(mContext, Events.EVENT_DISMISS_DIALOG, reason);
+    }
+
+    private void loadAudioUsageItems() {
+        try (XmlResourceParser parser = mContext.getResources().getXml(R.xml.car_volume_items)) {
+            AttributeSet attrs = Xml.asAttributeSet(parser);
+            int type;
+            // Traverse to the first start tag
+            while ((type = parser.next()) != XmlResourceParser.END_DOCUMENT
+                    && type != XmlResourceParser.START_TAG) {
+                // Do Nothing (moving parser to start element)
+            }
+
+            if (!XML_TAG_VOLUME_ITEMS.equals(parser.getName())) {
+                throw new RuntimeException("Meta-data does not start with carVolumeItems tag");
+            }
+            int outerDepth = parser.getDepth();
+            int rank = 0;
+            while ((type = parser.next()) != XmlResourceParser.END_DOCUMENT
+                    && (type != XmlResourceParser.END_TAG || parser.getDepth() > outerDepth)) {
+                if (type == XmlResourceParser.END_TAG) {
+                    continue;
+                }
+                if (XML_TAG_VOLUME_ITEM.equals(parser.getName())) {
+                    TypedArray item = mContext.getResources().obtainAttributes(
+                            attrs, R.styleable.carVolumeItems_item);
+                    int usage = item.getInt(R.styleable.carVolumeItems_item_usage, -1);
+                    if (usage >= 0) {
+                        VolumeItem volumeItem = new VolumeItem();
+                        volumeItem.rank = rank;
+                        volumeItem.icon = item.getResourceId(R.styleable.carVolumeItems_item_icon,
+                                0);
+                        mVolumeItems.put(usage, volumeItem);
+                        rank++;
+                    }
+                    item.recycle();
+                }
+            }
+        } catch (XmlPullParserException | IOException e) {
+            Log.e(TAG, "Error parsing volume groups configuration", e);
+        }
+    }
+
+    private VolumeItem getVolumeItemForUsages(int[] usages) {
+        int rank = Integer.MAX_VALUE;
+        VolumeItem result = null;
+        for (int usage : usages) {
+            VolumeItem volumeItem = mVolumeItems.get(usage);
+            if (volumeItem.rank < rank) {
+                rank = volumeItem.rank;
+                result = volumeItem;
+            }
+        }
+        return result;
+    }
+
+    private SeekbarListItem addSeekbarListItem(VolumeItem volumeItem,
+            int volumeGroupId,
+            int supplementalIconId,
+            @Nullable View.OnClickListener supplementalIconOnClickListener) {
+        SeekbarListItem listItem = new SeekbarListItem(mContext);
+        listItem.setMax(getMaxSeekbarValue(mCarAudioManager, volumeGroupId));
+        int color = mContext.getResources().getColor(R.color.car_volume_dialog_tint);
+        int progress = getSeekbarValue(mCarAudioManager, volumeGroupId);
+        listItem.setProgress(progress);
+        listItem.setOnSeekBarChangeListener(new CarVolumeDialogImpl
+                .VolumeSeekBarChangeListener(volumeGroupId, mCarAudioManager));
+        Drawable primaryIcon = mContext.getResources().getDrawable(volumeItem.icon);
+        primaryIcon.mutate().setTint(color);
+        listItem.setPrimaryActionIcon(primaryIcon);
+        if (supplementalIconId != 0) {
+            Drawable supplementalIcon = mContext.getResources().getDrawable(supplementalIconId);
+            supplementalIcon.mutate().setTint(color);
+            listItem.setSupplementalIcon(supplementalIcon, true);
+            listItem.setSupplementalIconListener(supplementalIconOnClickListener);
+        } else {
+            listItem.setSupplementalEmptyIcon(true);
+            listItem.setSupplementalIconListener(null);
+        }
+
+        mVolumeLineItems.add(listItem);
+        volumeItem.listItem = listItem;
+        volumeItem.progress = progress;
+        return listItem;
+    }
+
+    private VolumeItem findVolumeItem(SeekbarListItem targetItem) {
+        for (int i = 0; i < mVolumeItems.size(); ++i) {
+            VolumeItem volumeItem = mVolumeItems.valueAt(i);
+            if (volumeItem.listItem == targetItem) {
+                return volumeItem;
+            }
+        }
+        return null;
+    }
+
+    private void cleanupAudioManager() {
+        try {
+            mCarAudioManager.unregisterVolumeCallback(mVolumeChangeCallback.asBinder());
+        } catch (CarNotConnectedException e) {
+            Log.e(TAG, "Car is not connected!", e);
+        }
+        mVolumeLineItems.clear();
+        mCarAudioManager = null;
+    }
+
+    /**
+     * Wrapper class which contains information of each volume group.
+     */
+    private static class VolumeItem {
+
+        private int rank;
+        private boolean defaultItem = false;
+        private @DrawableRes int icon;
+        private SeekbarListItem listItem;
+        private int progress;
+    }
+
+    private final class H extends Handler {
+
+        private static final int SHOW = 1;
+        private static final int DISMISS = 2;
+
+        private H() {
+            super(Looper.getMainLooper());
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case SHOW:
+                    showH(msg.arg1);
+                    break;
+                case DISMISS:
+                    dismissH(msg.arg1);
+                    break;
+                default:
+            }
+        }
+    }
+
+    private final class CustomDialog extends Dialog implements DialogInterface {
+
+        private CustomDialog(Context context) {
+            super(context, com.android.systemui.R.style.qs_theme);
+        }
+
+        @Override
+        public boolean dispatchTouchEvent(MotionEvent ev) {
+            rescheduleTimeoutH();
+            return super.dispatchTouchEvent(ev);
+        }
+
+        @Override
+        protected void onStart() {
+            super.setCanceledOnTouchOutside(true);
+            super.onStart();
+        }
+
+        @Override
+        protected void onStop() {
+            super.onStop();
+        }
+
+        @Override
+        public boolean onTouchEvent(MotionEvent event) {
+            if (isShowing()) {
+                if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
+                    mHandler.obtainMessage(
+                            H.DISMISS, Events.DISMISS_REASON_TOUCH_OUTSIDE).sendToTarget();
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
+
+    private final class ExpandIconListener implements View.OnClickListener {
+
+        @Override
+        public void onClick(final View v) {
+            mExpanded = !mExpanded;
+            Animator inAnimator;
+            if (mExpanded) {
+                for (int groupId = 0; groupId < mAvailableVolumeItems.size(); ++groupId) {
+                    // Adding the items which are not coming from the default item.
+                    VolumeItem volumeItem = mAvailableVolumeItems.get(groupId);
+                    if (volumeItem.defaultItem) {
+                        // Set progress here due to the progress of seekbar may not be updated.
+                        volumeItem.listItem.setProgress(volumeItem.progress);
+                    } else {
+                        addSeekbarListItem(volumeItem, groupId, 0, null);
+                    }
+                }
+                inAnimator = AnimatorInflater.loadAnimator(
+                        mContext, R.anim.car_arrow_fade_in_rotate_up);
+            } else {
+                // Only keeping the default stream if it is not expended.
+                Iterator itr = mVolumeLineItems.iterator();
+                while (itr.hasNext()) {
+                    SeekbarListItem seekbarListItem = (SeekbarListItem) itr.next();
+                    VolumeItem volumeItem = findVolumeItem(seekbarListItem);
+                    if (!volumeItem.defaultItem) {
+                        itr.remove();
+                    } else {
+                        // Set progress here due to the progress of seekbar may not be updated.
+                        seekbarListItem.setProgress(volumeItem.progress);
+                    }
+                }
+                inAnimator = AnimatorInflater.loadAnimator(
+                        mContext, R.anim.car_arrow_fade_in_rotate_down);
+            }
+
+            Animator outAnimator = AnimatorInflater.loadAnimator(
+                    mContext, R.anim.car_arrow_fade_out);
+            inAnimator.setStartDelay(ARROW_FADE_IN_START_DELAY_IN_MILLIS);
+            AnimatorSet animators = new AnimatorSet();
+            animators.playTogether(outAnimator, inAnimator);
+            animators.setTarget(v);
+            animators.start();
+            mPagedListAdapter.notifyDataSetChanged();
+        }
+    }
+
+    private final class VolumeSeekBarChangeListener implements OnSeekBarChangeListener {
+
+        private final int mVolumeGroupId;
+        private final CarAudioManager mCarAudioManager;
+
+        private VolumeSeekBarChangeListener(int volumeGroupId, CarAudioManager carAudioManager) {
+            mVolumeGroupId = volumeGroupId;
+            mCarAudioManager = carAudioManager;
+        }
+
+        @Override
+        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+            if (!fromUser) {
+                // For instance, if this event is originated from AudioService,
+                // we can ignore it as it has already been handled and doesn't need to be
+                // sent back down again.
+                return;
+            }
+            try {
+                if (mCarAudioManager == null) {
+                    Log.w(TAG, "Ignoring volume change event because the car isn't connected");
+                    return;
+                }
+                mAvailableVolumeItems.get(mVolumeGroupId).progress = progress;
+                mCarAudioManager.setGroupVolume(mVolumeGroupId, progress, 0);
+            } catch (CarNotConnectedException e) {
+                Log.e(TAG, "Car is not connected!", e);
+            }
+        }
+
+        @Override
+        public void onStartTrackingTouch(SeekBar seekBar) {
+        }
+
+        @Override
+        public void onStopTrackingTouch(SeekBar seekBar) {
+        }
+    }
+}
diff --git a/packages/CarrierDefaultApp/OWNERS b/packages/CarrierDefaultApp/OWNERS
index 7057ce6..aef6a3c 100644
--- a/packages/CarrierDefaultApp/OWNERS
+++ b/packages/CarrierDefaultApp/OWNERS
@@ -9,4 +9,5 @@
 jminjie@google.com
 satk@google.com
 shuoq@google.com
-refuhoo@google.com
\ No newline at end of file
+refuhoo@google.com
+nazaninb@google.com
\ No newline at end of file
diff --git a/packages/ExtServices/src/android/ext/services/notification/Assistant.java b/packages/ExtServices/src/android/ext/services/notification/Assistant.java
index 60153fc..0cad5af 100644
--- a/packages/ExtServices/src/android/ext/services/notification/Assistant.java
+++ b/packages/ExtServices/src/android/ext/services/notification/Assistant.java
@@ -19,8 +19,7 @@
 import static android.app.NotificationManager.IMPORTANCE_LOW;
 import static android.app.NotificationManager.IMPORTANCE_MIN;
 import static android.service.notification.Adjustment.KEY_IMPORTANCE;
-import static android.service.notification.NotificationListenerService.Ranking
-        .USER_SENTIMENT_NEGATIVE;
+import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -241,7 +240,7 @@
             signals.putCharSequenceArrayList(Adjustment.KEY_SMART_REPLIES, smartReplies);
         }
         if (Settings.Secure.getInt(getContentResolver(),
-                Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL, 0) == 1) {
+                Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL, 1) == 1) {
             if (mNotificationCategorizer.shouldSilence(entry)) {
                 final int importance = entry.getImportance() < IMPORTANCE_LOW
                         ? entry.getImportance() : IMPORTANCE_LOW;
@@ -355,6 +354,37 @@
     }
 
     @Override
+    public void onNotificationExpansionChanged(String key, boolean isUserAction,
+            boolean isExpanded) {
+        if (DEBUG) {
+            Log.i(TAG,
+                    "onNotificationExpansionChanged " + key + ", isUserAction =" + isUserAction
+                            + ", isExpanded = isExpanded");
+        }
+    }
+
+    @Override
+    public void onNotificationDirectReply(String key) {
+        if (DEBUG) Log.i(TAG, "onNotificationDirectReply " + key);
+    }
+
+    @Override
+    public void onSuggestedReplySent(String key, CharSequence reply, int source) {
+        if (DEBUG) {
+            Log.d(TAG, "onSuggestedReplySent() called with: key = [" + key + "], reply = [" + reply
+                    + "], source = [" + source + "]");
+        }
+    }
+
+    @Override
+    public void onActionClicked(String key, Notification.Action action, int source) {
+        if (DEBUG) {
+            Log.d(TAG, "onActionClicked() called with: key = [" + key + "], action = [" + action.title
+                    + "], source = [" + source + "]");
+        }
+    }
+
+    @Override
     public void onListenerConnected() {
         if (DEBUG) Log.i(TAG, "CONNECTED");
         try {
diff --git a/packages/ExtServices/src/android/ext/services/notification/SmartActionsHelper.java b/packages/ExtServices/src/android/ext/services/notification/SmartActionsHelper.java
index b2fc417..892267b 100644
--- a/packages/ExtServices/src/android/ext/services/notification/SmartActionsHelper.java
+++ b/packages/ExtServices/src/android/ext/services/notification/SmartActionsHelper.java
@@ -48,7 +48,7 @@
                     | Notification.FLAG_NO_CLEAR;
     private static final int MAX_ACTION_EXTRACTION_TEXT_LENGTH = 400;
     private static final int MAX_ACTIONS_PER_LINK = 1;
-    private static final int MAX_SMART_ACTIONS = Notification.MAX_ACTION_BUTTONS;
+    private static final int MAX_SMART_ACTIONS = 3;
     private static final int MAX_SUGGESTED_REPLIES = 3;
 
     private static final ConversationActions.TypeConfig TYPE_CONFIG =
@@ -81,12 +81,9 @@
         if (tcm == null) {
             return EMPTY_ACTION_LIST;
         }
-        Notification.Action[] actions = entry.getNotification().actions;
-        int numOfExistingActions = actions == null ? 0: actions.length;
-        int maxSmartActions = MAX_SMART_ACTIONS - numOfExistingActions;
         return suggestActionsFromText(
                 tcm,
-                getMostSalientActionText(entry.getNotification()), maxSmartActions);
+                getMostSalientActionText(entry.getNotification()), MAX_SMART_ACTIONS);
     }
 
     ArrayList<CharSequence> suggestReplies(
diff --git a/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java b/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
index 56feb47..87d6e4a 100644
--- a/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
+++ b/packages/FusedLocation/src/com/android/location/fused/FusedLocationProvider.java
@@ -16,27 +16,24 @@
 
 package com.android.location.fused;
 
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-
-import com.android.location.provider.LocationProviderBase;
-import com.android.location.provider.ProviderPropertiesUnbundled;
-import com.android.location.provider.ProviderRequestUnbundled;
-
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.location.Criteria;
-import android.location.LocationProvider;
-import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
 import android.os.UserHandle;
 import android.os.WorkSource;
 
+import com.android.location.provider.LocationProviderBase;
+import com.android.location.provider.ProviderPropertiesUnbundled;
+import com.android.location.provider.ProviderRequestUnbundled;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
 public class FusedLocationProvider extends LocationProviderBase implements FusionEngine.Callback {
     private static final String TAG = "FusedLocationProvider";
 
@@ -48,7 +45,6 @@
     private static final int MSG_DISABLE = 2;
     private static final int MSG_SET_REQUEST = 3;
 
-    private final Context mContext;
     private final FusionEngine mEngine;
 
     private static class RequestWrapper {
@@ -62,13 +58,12 @@
 
     public FusedLocationProvider(Context context) {
         super(TAG, PROPERTIES);
-        mContext = context;
         mEngine = new FusionEngine(context, Looper.myLooper());
 
         // listen for user change
         IntentFilter intentFilter = new IntentFilter();
         intentFilter.addAction(Intent.ACTION_USER_SWITCHED);
-        mContext.registerReceiverAsUser(new BroadcastReceiver() {
+        context.registerReceiverAsUser(new BroadcastReceiver() {
             @Override
             public void onReceive(Context context, Intent intent) {
                 String action = intent.getAction();
@@ -122,14 +117,4 @@
         // perform synchronously
         mEngine.dump(fd, pw, args);
     }
-
-    @Override
-    public int onGetStatus(Bundle extras) {
-        return LocationProvider.AVAILABLE;
-    }
-
-    @Override
-    public long onGetStatusUpdateTime() {
-        return 0;
-    }
 }
diff --git a/packages/PackageInstaller/Android.bp b/packages/PackageInstaller/Android.bp
deleted file mode 100644
index bc06cab..0000000
--- a/packages/PackageInstaller/Android.bp
+++ /dev/null
@@ -1,14 +0,0 @@
-android_app {
-    name: "PackageInstaller",
-
-    srcs: ["src/**/*.java"],
-
-    static_libs: [
-        "androidx.leanback_leanback",
-        "xz-java",
-    ],
-
-    certificate: "platform",
-    privileged: true,
-    platform_apis: true,
-}
\ No newline at end of file
diff --git a/services/tests/servicestests/test-apps/ConnTestApp/Android.mk b/packages/PackageInstaller/Android.mk
similarity index 67%
rename from services/tests/servicestests/test-apps/ConnTestApp/Android.mk
rename to packages/PackageInstaller/Android.mk
index 18b8c2d..ab5483c 100644
--- a/services/tests/servicestests/test-apps/ConnTestApp/Android.mk
+++ b/packages/PackageInstaller/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 The Android Open Source Project
+# 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.
@@ -16,17 +16,17 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE_TAGS := tests
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_COMPATIBILITY_SUITE := device-tests
+LOCAL_PACKAGE_NAME := PackageInstaller
 
-LOCAL_STATIC_JAVA_LIBRARIES := servicestests-aidl
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := ConnTestApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
 LOCAL_CERTIFICATE := platform
-LOCAL_DEX_PREOPT := false
-LOCAL_PROGUARD_ENABLED := disabled
+LOCAL_PRIVILEGED_MODULE := true
+LOCAL_PRIVATE_PLATFORM_APIS := true
 
-include $(BUILD_PACKAGE)
\ No newline at end of file
+LOCAL_STATIC_JAVA_LIBRARIES := xz-java
+LOCAL_STATIC_ANDROID_LIBRARIES := androidx.leanback_leanback
+
+include $(BUILD_PACKAGE)
+
+include $(call all-makefiles-under, $(LOCAL_PATH))
diff --git a/packages/PackageInstaller/AndroidManifest.xml b/packages/PackageInstaller/AndroidManifest.xml
index 4801f62..eb9ec82 100644
--- a/packages/PackageInstaller/AndroidManifest.xml
+++ b/packages/PackageInstaller/AndroidManifest.xml
@@ -2,6 +2,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="com.android.packageinstaller">
 
+    <original-package android:name="com.android.packageinstaller" />
+
     <uses-permission android:name="android.permission.MANAGE_USERS" />
     <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
     <uses-permission android:name="android.permission.DELETE_PACKAGES" />
diff --git a/packages/PrintSpooler/AndroidManifest.xml b/packages/PrintSpooler/AndroidManifest.xml
index 91e23dd..03eafc4 100644
--- a/packages/PrintSpooler/AndroidManifest.xml
+++ b/packages/PrintSpooler/AndroidManifest.xml
@@ -34,15 +34,23 @@
     <uses-permission android:name="com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS"/>
     <uses-permission android:name="android.permission.WAKE_LOCK"/>
     <uses-permission android:name="android.permission.START_PRINT_SERVICE_CONFIG_ACTIVITY"/>
-    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
     <uses-permission android:name="android.permission.READ_PRINT_SERVICES" />
     <uses-permission android:name="android.permission.READ_PRINT_SERVICE_RECOMMENDATIONS" />
 
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
+                     android:dataSentOffDevice="no"
+                     android:dataSharedWithThirdParty="no"
+                     android:dataUsedForMonetization="no"
+                     android:dataRetentionTime="unlimited"/>
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
+                     android:dataSentOffDevice="no"
+                     android:dataSharedWithThirdParty="no"
+                     android:dataUsedForMonetization="no"
+                     android:dataRetentionTime="unlimited"/>
+
     <application
         android:allowClearUserData="true"
         android:label="@string/app_label"
-        android:allowBackup= "false"
         android:supportsRtl="true">
 
         <service
diff --git a/packages/PrintSpooler/res/layout/print_activity.xml b/packages/PrintSpooler/res/layout/print_activity.xml
index 0ccf13e2..9e16f5e 100644
--- a/packages/PrintSpooler/res/layout/print_activity.xml
+++ b/packages/PrintSpooler/res/layout/print_activity.xml
@@ -107,7 +107,7 @@
         android:layout_height="wrap_content"
         android:layout_marginStart="16dip"
         android:elevation="@dimen/preview_controls_elevation"
-        android:tint="?android:attr/textColorPrimaryInverse"
+        android:tint="@android:color/white"
         android:background="@drawable/print_button">
     </ImageButton>
 
diff --git a/packages/SettingsLib/ActionButtonsPreference/Android.bp b/packages/SettingsLib/ActionButtonsPreference/Android.bp
new file mode 100644
index 0000000..e518e0b
--- /dev/null
+++ b/packages/SettingsLib/ActionButtonsPreference/Android.bp
@@ -0,0 +1,13 @@
+android_library {
+    name: "ActionButtonsPreference",
+
+    srcs: ["src/**/*.java"],
+    resource_dirs: ["res"],
+
+    static_libs: [
+          "androidx.preference_preference",
+    ],
+
+    sdk_version: "system_current",
+    min_sdk_version: "21",
+}
diff --git a/packages/SettingsLib/ActionButtonsPreference/AndroidManifest.xml b/packages/SettingsLib/ActionButtonsPreference/AndroidManifest.xml
new file mode 100644
index 0000000..4b9f1ab
--- /dev/null
+++ b/packages/SettingsLib/ActionButtonsPreference/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?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.settingslib.widget">
+
+    <uses-sdk android:minSdkVersion="21" />
+
+</manifest>
diff --git a/packages/SettingsLib/ActionButtonsPreference/res/layout/settings_action_buttons.xml b/packages/SettingsLib/ActionButtonsPreference/res/layout/settings_action_buttons.xml
new file mode 100644
index 0000000..4f47113
--- /dev/null
+++ b/packages/SettingsLib/ActionButtonsPreference/res/layout/settings_action_buttons.xml
@@ -0,0 +1,52 @@
+<?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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="8dp"
+    android:orientation="horizontal">
+
+    <Button
+        android:id="@+id/button1"
+        style="@style/SettingsActionButton"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"/>
+
+    <Button
+        android:id="@+id/button2"
+        style="@style/SettingsActionButton"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"/>
+
+    <Button
+        android:id="@+id/button3"
+        style="@style/SettingsActionButton"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"/>
+
+    <Button
+        android:id="@+id/button4"
+        style="@style/SettingsActionButton"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/packages/SettingsLib/ActionButtonsPreference/res/values/styles.xml b/packages/SettingsLib/ActionButtonsPreference/res/values/styles.xml
new file mode 100644
index 0000000..efa508d
--- /dev/null
+++ b/packages/SettingsLib/ActionButtonsPreference/res/values/styles.xml
@@ -0,0 +1,26 @@
+<?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.
+  -->
+
+<resources>
+    <style name="SettingsActionButton" parent="android:Widget.DeviceDefault.Button.Borderless.Colored">
+        <item name="android:drawablePadding">4dp</item>
+        <item name="android:drawableTint">@*android:color/btn_colored_borderless_text_material</item>
+        <item name="android:layout_marginEnd">8dp</item>
+        <item name="android:paddingTop">20dp</item>
+        <item name="android:paddingBottom">20dp</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/packages/SettingsLib/ActionButtonsPreference/src/com/android/settingslib/widget/ActionButtonsPreference.java b/packages/SettingsLib/ActionButtonsPreference/src/com/android/settingslib/widget/ActionButtonsPreference.java
new file mode 100644
index 0000000..8b46cc6
--- /dev/null
+++ b/packages/SettingsLib/ActionButtonsPreference/src/com/android/settingslib/widget/ActionButtonsPreference.java
@@ -0,0 +1,393 @@
+/*
+ * 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.settingslib.widget;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.StringRes;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+/**
+ * This preference provides a four buttons layout with Settings style.
+ * It looks like below
+ *
+ * --------------------------------------------------
+ * button1     | button2   | button3   | button4   |
+ * --------------------------------------------------
+ *
+ * User can set title / icon / click listener for each button.
+ *
+ * By default, four buttons are visible.
+ * However, there are two cases which button should be invisible(View.GONE).
+ *
+ * 1. User sets invisible for button. ex: ActionButtonPreference.setButton1Visible(false)
+ * 2. User doesn't set any title or icon for button.
+ */
+public class ActionButtonsPreference extends Preference {
+
+    private static final String TAG = "ActionButtonPreference";
+    private final ButtonInfo mButton1Info = new ButtonInfo();
+    private final ButtonInfo mButton2Info = new ButtonInfo();
+    private final ButtonInfo mButton3Info = new ButtonInfo();
+    private final ButtonInfo mButton4Info = new ButtonInfo();
+
+    public ActionButtonsPreference(Context context, AttributeSet attrs,
+            int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        init();
+    }
+
+    public ActionButtonsPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    public ActionButtonsPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public ActionButtonsPreference(Context context) {
+        super(context);
+        init();
+    }
+
+    private void init() {
+        setLayoutResource(R.layout.settings_action_buttons);
+        setSelectable(false);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+        holder.setDividerAllowedAbove(true);
+        holder.setDividerAllowedBelow(true);
+
+        mButton1Info.mButton = (Button) holder.findViewById(R.id.button1);
+        mButton2Info.mButton = (Button) holder.findViewById(R.id.button2);
+        mButton3Info.mButton = (Button) holder.findViewById(R.id.button3);
+        mButton4Info.mButton = (Button) holder.findViewById(R.id.button4);
+
+        mButton1Info.setUpButton();
+        mButton2Info.setUpButton();
+        mButton3Info.setUpButton();
+        mButton4Info.setUpButton();
+    }
+
+    /**
+     * Set the visibility state of button1.
+     */
+    public ActionButtonsPreference setButton1Visible(boolean isVisible) {
+        if (isVisible != mButton1Info.mIsVisible) {
+            mButton1Info.mIsVisible = isVisible;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the text to be displayed in button1.
+     */
+    public ActionButtonsPreference setButton1Text(@StringRes int textResId) {
+        final String newText = getContext().getString(textResId);
+        if (!TextUtils.equals(newText, mButton1Info.mText)) {
+            mButton1Info.mText = newText;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the drawable to be displayed above of text in button1.
+     */
+    public ActionButtonsPreference setButton1Icon(@DrawableRes int iconResId) {
+        if (iconResId == 0) {
+            return this;
+        }
+
+        final Drawable icon;
+        try {
+            icon = getContext().getDrawable(iconResId);
+            mButton1Info.mIcon = icon;
+            notifyChanged();
+        } catch (Resources.NotFoundException exception) {
+            Log.e(TAG, "Resource does not exist: " + iconResId);
+        }
+        return this;
+    }
+
+    /**
+     * Set the enabled state of button1.
+     */
+    public ActionButtonsPreference setButton1Enabled(boolean isEnabled) {
+        if (isEnabled != mButton1Info.mIsEnabled) {
+            mButton1Info.mIsEnabled = isEnabled;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Register a callback to be invoked when button1 is clicked.
+     */
+    public ActionButtonsPreference setButton1OnClickListener(
+            View.OnClickListener listener) {
+        if (listener != mButton1Info.mListener) {
+            mButton1Info.mListener = listener;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Set the visibility state of button2.
+     */
+    public ActionButtonsPreference setButton2Visible(boolean isVisible) {
+        if (isVisible != mButton2Info.mIsVisible) {
+            mButton2Info.mIsVisible = isVisible;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the text to be displayed in button2.
+     */
+    public ActionButtonsPreference setButton2Text(@StringRes int textResId) {
+        final String newText = getContext().getString(textResId);
+        if (!TextUtils.equals(newText, mButton2Info.mText)) {
+            mButton2Info.mText = newText;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the drawable to be displayed above of text in button2.
+     */
+    public ActionButtonsPreference setButton2Icon(@DrawableRes int iconResId) {
+        if (iconResId == 0) {
+            return this;
+        }
+
+        final Drawable icon;
+        try {
+            icon = getContext().getDrawable(iconResId);
+            mButton2Info.mIcon = icon;
+            notifyChanged();
+        } catch (Resources.NotFoundException exception) {
+            Log.e(TAG, "Resource does not exist: " + iconResId);
+        }
+        return this;
+    }
+
+    /**
+     * Set the enabled state of button2.
+     */
+    public ActionButtonsPreference setButton2Enabled(boolean isEnabled) {
+        if (isEnabled != mButton2Info.mIsEnabled) {
+            mButton2Info.mIsEnabled = isEnabled;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Register a callback to be invoked when button2 is clicked.
+     */
+    public ActionButtonsPreference setButton2OnClickListener(
+            View.OnClickListener listener) {
+        if (listener != mButton2Info.mListener) {
+            mButton2Info.mListener = listener;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Set the visibility state of button3.
+     */
+    public ActionButtonsPreference setButton3Visible(boolean isVisible) {
+        if (isVisible != mButton3Info.mIsVisible) {
+            mButton3Info.mIsVisible = isVisible;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the text to be displayed in button3.
+     */
+    public ActionButtonsPreference setButton3Text(@StringRes int textResId) {
+        final String newText = getContext().getString(textResId);
+        if (!TextUtils.equals(newText, mButton3Info.mText)) {
+            mButton3Info.mText = newText;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the drawable to be displayed above of text in button3.
+     */
+    public ActionButtonsPreference setButton3Icon(@DrawableRes int iconResId) {
+        if (iconResId == 0) {
+            return this;
+        }
+
+        final Drawable icon;
+        try {
+            icon = getContext().getDrawable(iconResId);
+            mButton3Info.mIcon = icon;
+            notifyChanged();
+        } catch (Resources.NotFoundException exception) {
+            Log.e(TAG, "Resource does not exist: " + iconResId);
+        }
+        return this;
+    }
+
+    /**
+     * Set the enabled state of button3.
+     */
+    public ActionButtonsPreference setButton3Enabled(boolean isEnabled) {
+        if (isEnabled != mButton3Info.mIsEnabled) {
+            mButton3Info.mIsEnabled = isEnabled;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Register a callback to be invoked when button3 is clicked.
+     */
+    public ActionButtonsPreference setButton3OnClickListener(
+            View.OnClickListener listener) {
+        if (listener != mButton3Info.mListener) {
+            mButton3Info.mListener = listener;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Set the visibility state of button4.
+     */
+    public ActionButtonsPreference setButton4Visible(boolean isVisible) {
+        if (isVisible != mButton4Info.mIsVisible) {
+            mButton4Info.mIsVisible = isVisible;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the text to be displayed in button4.
+     */
+    public ActionButtonsPreference setButton4Text(@StringRes int textResId) {
+        final String newText = getContext().getString(textResId);
+        if (!TextUtils.equals(newText, mButton4Info.mText)) {
+            mButton4Info.mText = newText;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Sets the drawable to be displayed above of text in button4.
+     */
+    public ActionButtonsPreference setButton4Icon(@DrawableRes int iconResId) {
+        if (iconResId == 0) {
+            return this;
+        }
+
+        final Drawable icon;
+        try {
+            icon = getContext().getDrawable(iconResId);
+            mButton4Info.mIcon = icon;
+            notifyChanged();
+        } catch (Resources.NotFoundException exception) {
+            Log.e(TAG, "Resource does not exist: " + iconResId);
+        }
+        return this;
+    }
+
+    /**
+     * Set the enabled state of button4.
+     */
+    public ActionButtonsPreference setButton4Enabled(boolean isEnabled) {
+        if (isEnabled != mButton4Info.mIsEnabled) {
+            mButton4Info.mIsEnabled = isEnabled;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    /**
+     * Register a callback to be invoked when button4 is clicked.
+     */
+    public ActionButtonsPreference setButton4OnClickListener(
+            View.OnClickListener listener) {
+        if (listener != mButton4Info.mListener) {
+            mButton4Info.mListener = listener;
+            notifyChanged();
+        }
+        return this;
+    }
+
+    static class ButtonInfo {
+        private Button mButton;
+        private CharSequence mText;
+        private Drawable mIcon;
+        private View.OnClickListener mListener;
+        private boolean mIsEnabled = true;
+        private boolean mIsVisible = true;
+
+        void setUpButton() {
+            mButton.setText(mText);
+            mButton.setOnClickListener(mListener);
+            mButton.setEnabled(mIsEnabled);
+            mButton.setCompoundDrawablesWithIntrinsicBounds(
+                    null /* left */, mIcon /* top */, null /* right */, null /* bottom */);
+
+            if (shouldBeVisible()) {
+                mButton.setVisibility(View.VISIBLE);
+            } else {
+                mButton.setVisibility(View.GONE);
+            }
+        }
+
+        /**
+         * By default, four buttons are visible.
+         * However, there are two cases which button should be invisible.
+         *
+         * 1. User set invisible for this button. ex: mIsVisible = false.
+         * 2. User didn't set any title or icon.
+         */
+        private boolean shouldBeVisible() {
+            return mIsVisible && (!TextUtils.isEmpty(mText) || mIcon != null);
+        }
+    }
+}
diff --git a/packages/SettingsLib/Android.bp b/packages/SettingsLib/Android.bp
index d1f140f..cc17b25 100644
--- a/packages/SettingsLib/Android.bp
+++ b/packages/SettingsLib/Android.bp
@@ -16,6 +16,8 @@
         "SettingsLibAppPreference",
         "SettingsLibSearchWidget",
         "SettingsLibSettingsSpinner",
+        "SettingsLayoutPreference",
+        "ActionButtonsPreference",
     ],
 
     // ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_SHARED_JAVA_LIBRARIES
diff --git a/packages/SettingsLib/SearchWidget/res/values-as/strings.xml b/packages/SettingsLib/SearchWidget/res/values-as/strings.xml
new file mode 100644
index 0000000..813e764
--- /dev/null
+++ b/packages/SettingsLib/SearchWidget/res/values-as/strings.xml
@@ -0,0 +1,21 @@
+<?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.
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="search_menu" msgid="1604061903696928905">"সন্ধান সম্পৰ্কীয় ছেটিংসমূহ"</string>
+</resources>
diff --git a/packages/SettingsLib/SettingsLayoutPreference/Android.bp b/packages/SettingsLib/SettingsLayoutPreference/Android.bp
new file mode 100644
index 0000000..489d360
--- /dev/null
+++ b/packages/SettingsLib/SettingsLayoutPreference/Android.bp
@@ -0,0 +1,13 @@
+android_library {
+    name: "SettingsLayoutPreference",
+
+    srcs: ["src/**/*.java"],
+    resource_dirs: ["res"],
+
+    static_libs: [
+          "androidx.preference_preference",
+    ],
+
+    sdk_version: "system_current",
+    min_sdk_version: "21",
+}
diff --git a/packages/SettingsLib/SettingsLayoutPreference/AndroidManifest.xml b/packages/SettingsLib/SettingsLayoutPreference/AndroidManifest.xml
new file mode 100644
index 0000000..4b9f1ab
--- /dev/null
+++ b/packages/SettingsLib/SettingsLayoutPreference/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?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.settingslib.widget">
+
+    <uses-sdk android:minSdkVersion="21" />
+
+</manifest>
diff --git a/packages/SettingsLib/SettingsLayoutPreference/res/layout/layout_preference_frame.xml b/packages/SettingsLib/SettingsLayoutPreference/res/layout/layout_preference_frame.xml
new file mode 100644
index 0000000..ee4ce49
--- /dev/null
+++ b/packages/SettingsLib/SettingsLayoutPreference/res/layout/layout_preference_frame.xml
@@ -0,0 +1,20 @@
+<?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.
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"/>
diff --git a/packages/SettingsLib/SettingsLayoutPreference/res/layout/settings_entity_header.xml b/packages/SettingsLib/SettingsLayoutPreference/res/layout/settings_entity_header.xml
new file mode 100644
index 0000000..01d9c00
--- /dev/null
+++ b/packages/SettingsLib/SettingsLayoutPreference/res/layout/settings_entity_header.xml
@@ -0,0 +1,105 @@
+<?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.
+  -->
+
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/entity_header"
+    style="@style/EntityHeader"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:id="@+id/entity_header_content"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerHorizontal="true"
+        android:gravity="center_horizontal"
+        android:orientation="vertical">
+
+        <ImageView
+            android:id="@+id/entity_header_icon"
+            android:layout_width="48dp"
+            android:layout_height="48dp"
+            android:scaleType="fitCenter"
+            android:antialias="true"/>
+
+        <TextView
+            android:id="@+id/entity_header_title"
+            style="@style/TextAppearance.EntityHeaderTitle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="false"
+            android:ellipsize="marquee"
+            android:textDirection="locale"
+            android:layout_marginTop="8dp"/>
+
+        <TextView
+            android:id="@+id/install_type"
+            style="@style/TextAppearance.EntityHeaderSummary"
+            android:visibility="gone"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/entity_header_summary"
+            style="@style/TextAppearance.EntityHeaderSummary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/entity_header_second_summary"
+            style="@style/TextAppearance.EntityHeaderSummary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"/>
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_centerVertical="true"
+        android:layout_alignParentEnd="true"
+        android:orientation="vertical">
+
+        <ImageButton
+            android:id="@android:id/button1"
+            style="?android:attr/actionOverflowButtonStyle"
+            android:layout_width="wrap_content"
+            android:layout_weight="1"
+            android:layout_height="0dp"
+            android:visibility="gone"
+            android:minWidth="24dp"
+            android:src="@null"
+            android:tint="?android:attr/colorAccent"/>
+
+        <ImageButton
+            android:id="@android:id/button2"
+            style="?android:attr/actionOverflowButtonStyle"
+            android:layout_width="wrap_content"
+            android:layout_weight="1"
+            android:layout_height="0dp"
+            android:visibility="gone"
+            android:minWidth="24dp"
+            android:src="@null"
+            android:tint="?android:attr/colorAccent"/>
+
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/packages/SettingsLib/SettingsLayoutPreference/res/values/styles.xml b/packages/SettingsLib/SettingsLayoutPreference/res/values/styles.xml
new file mode 100644
index 0000000..805744b
--- /dev/null
+++ b/packages/SettingsLib/SettingsLayoutPreference/res/values/styles.xml
@@ -0,0 +1,42 @@
+<?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.
+  -->
+
+<resources>
+    <style name="EntityHeader">
+        <item name="android:background">?android:attr/colorPrimaryDark</item>
+        <item name="android:paddingTop">24dp</item>
+        <item name="android:paddingBottom">16dp</item>
+        <item name="android:paddingEnd">16dp</item>
+    </style>
+
+    <style name="TextAppearance.EntityHeaderTitle"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:textSize">20sp</item>
+    </style>
+
+    <style name="TextAppearance.EntityHeaderSummary"
+           parent="@android:style/TextAppearance.Material.Body1">
+        <item name="android:textAlignment">viewStart</item>
+        <item name="android:textColor">?android:attr/textColorSecondary</item>
+        <item name="android:gravity">start</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:ellipsize">marquee</item>
+        <item name="android:textSize">14sp</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/packages/SettingsLib/SettingsLayoutPreference/src/com/android/settingslib/widget/LayoutPreference.java b/packages/SettingsLib/SettingsLayoutPreference/src/com/android/settingslib/widget/LayoutPreference.java
new file mode 100644
index 0000000..2a635b0
--- /dev/null
+++ b/packages/SettingsLib/SettingsLayoutPreference/src/com/android/settingslib/widget/LayoutPreference.java
@@ -0,0 +1,174 @@
+/*
+ * 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.settingslib.widget;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+import androidx.core.content.res.TypedArrayUtils;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+/**
+ * A preference can be simply customized a view by adding layout attribute in xml.
+ * User also can decide whether or not LayoutPreference allows above divider or below divider.
+ *
+ * For instances,
+ *
+ * <com.android.settingslib.widget.LayoutPreference
+ *      ...
+ *      android:layout="@layout/settings_entity_header"
+ *      xxxxxxx:allowDividerAbove="true"
+ *      xxxxxxx:allowDividerBelow="true"
+ *
+ */
+public class LayoutPreference extends Preference {
+
+    private final View.OnClickListener mClickListener = v -> performClick(v);
+    private boolean mAllowDividerAbove;
+    private boolean mAllowDividerBelow;
+    private View mRootView;
+
+    /**
+     * Constructs a new LayoutPreference with the given context's theme and the supplied
+     * attribute set.
+     *
+     * @param context The Context the view is running in, through which it can
+     *                access the current theme, resources, etc.
+     * @param attrs The attributes of the XML tag that is inflating the view.
+     */
+    public LayoutPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init(context, attrs, 0 /* defStyleAttr */);
+    }
+
+    /**
+     * Constructs a new LayoutPreference with the given context's theme, the supplied
+     * attribute set, and default style attribute.
+     *
+     * @param context The Context the view is running in, through which it can
+     *                access the current theme, resources, etc.
+     * @param attrs The attributes of the XML tag that is inflating the view.
+     * @param defStyleAttr An attribute in the current theme that contains a
+     *                     reference to a style resource that supplies default
+     *                     values for the view. Can be 0 to not look for
+     *                     defaults.
+     */
+    public LayoutPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init(context, attrs, defStyleAttr);
+    }
+
+    /**
+     * Constructs a new LayoutPreference with the given context's theme and a customized view id.
+     *
+     * @param context The Context the view is running in, through which it can
+     *                access the current theme, resources, etc.
+     * @param resource The view id which you expected to be inflated and show in preference.
+     */
+    public LayoutPreference(Context context, int resource) {
+        this(context, LayoutInflater.from(context).inflate(resource, null, false));
+    }
+
+    /**
+     * Constructs a new LayoutPreference with the given context's theme and a customized view.
+     *
+     * @param context The Context the view is running in, through which it can
+     *                access the current theme, resources, etc.
+     * @param view The view which you expected show in preference.
+     */
+    public LayoutPreference(Context context, View view) {
+        super(context);
+        setView(view);
+    }
+
+    private void init(Context context, AttributeSet attrs, int defStyleAttr) {
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Preference);
+        mAllowDividerAbove = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerAbove,
+                R.styleable.Preference_allowDividerAbove, false);
+        mAllowDividerBelow = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerBelow,
+                R.styleable.Preference_allowDividerBelow, false);
+        a.recycle();
+
+        a = context.obtainStyledAttributes(
+                attrs, R.styleable.Preference, defStyleAttr, 0);
+        int layoutResource = a.getResourceId(R.styleable.Preference_android_layout, 0);
+        if (layoutResource == 0) {
+            throw new IllegalArgumentException("LayoutPreference requires a layout to be defined");
+        }
+        a.recycle();
+
+        // Need to create view now so that findViewById can be called immediately.
+        final View view = LayoutInflater.from(getContext())
+                .inflate(layoutResource, null, false);
+        setView(view);
+    }
+
+    private void setView(View view) {
+        setLayoutResource(R.layout.layout_preference_frame);
+        mRootView = view;
+        setShouldDisableView(false);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        holder.itemView.setOnClickListener(mClickListener);
+
+        final boolean selectable = isSelectable();
+        holder.itemView.setFocusable(selectable);
+        holder.itemView.setClickable(selectable);
+        holder.setDividerAllowedAbove(mAllowDividerAbove);
+        holder.setDividerAllowedBelow(mAllowDividerBelow);
+
+        FrameLayout layout = (FrameLayout) holder.itemView;
+        layout.removeAllViews();
+        ViewGroup parent = (ViewGroup) mRootView.getParent();
+        if (parent != null) {
+            parent.removeView(mRootView);
+        }
+        layout.addView(mRootView);
+    }
+
+    /**
+     * Finds the view with the given ID.
+     *
+     * @param id the ID to search for
+     * @return a view with given ID if found, or {@code null} otherwise
+     */
+    public <T extends View> T findViewById(int id) {
+        return mRootView.findViewById(id);
+    }
+
+    /**
+     * LayoutPreference whether or not allows to set a below divider.
+     */
+    public void setAllowDividerBelow(boolean allowed) {
+        mAllowDividerBelow = allowed;
+    }
+
+    /**
+     * Return a value whether or not LayoutPreference allows to set a below divider.
+     */
+    public boolean isAllowDividerBelow() {
+        return mAllowDividerBelow;
+    }
+}
diff --git a/packages/SettingsLib/res/layout/preference_checkable_two_target.xml b/packages/SettingsLib/res/layout/preference_checkable_two_target.xml
new file mode 100644
index 0000000..1a47afc
--- /dev/null
+++ b/packages/SettingsLib/res/layout/preference_checkable_two_target.xml
@@ -0,0 +1,92 @@
+<?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.
+  -->
+
+<!-- Based off preference_material_settings.xml except that ripple on only on the left side. -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:background="@android:color/transparent"
+    android:clipToPadding="false">
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:background="?android:attr/selectableItemBackground"
+        android:gravity="start|center_vertical"
+        android:clipToPadding="false"
+        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+        <LinearLayout
+            android:id="@+id/checkbox_container"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="start|center_vertical"
+            android:minWidth="56dp"
+            android:orientation="horizontal"
+            android:clipToPadding="false"
+            android:paddingTop="4dp"
+            android:paddingBottom="4dp">
+            <include layout="@layout/preference_widget_checkbox" />
+        </LinearLayout>
+
+        <RelativeLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingTop="16dp"
+            android:paddingBottom="16dp">
+
+            <TextView
+                android:id="@android:id/title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:textAppearance="?android:attr/textAppearanceListItem"
+                android:ellipsize="marquee" />
+
+            <TextView
+                android:id="@android:id/summary"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@android:id/title"
+                android:layout_alignStart="@android:id/title"
+                android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+                android:textColor="?android:attr/textColorSecondary"
+                android:maxLines="10" />
+
+        </RelativeLayout>
+
+    </LinearLayout>
+
+    <include layout="@layout/preference_two_target_divider" />
+
+    <!-- Preference should place its actual preference widget here. -->
+    <LinearLayout
+        android:id="@android:id/widget_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="64dp"
+        android:gravity="center"
+        android:orientation="vertical" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index d34820c..1dd7838 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Kan nie skandeer vir netwerke nie"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Geen"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Gestoor"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Gedeaktiveer"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-opstelling het misluk"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Sal op grond van jou gebruik waarskynlik hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Sal waarskynlik hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Sal waarskynlik hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Tot <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Minder as <xliff:g id="THRESHOLD">%1$s</xliff:g> oor"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Minder as <xliff:g id="THRESHOLD">%1$s</xliff:g> oor (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Meer as <xliff:g id="TIME_REMAINING">%1$s</xliff:g> oor (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Vra elke keer"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Totdat jy dit afskakel"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Sopas"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Aansluitingprogram om opgedateerde grafikadrywer in ontwikkeling te gebruik"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Foonluidspreker"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index b595e2b..2ce5f44 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ለአውታረመረቦች መቃኘት አይቻልም"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"የለም"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"ተቀምጧል"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"ተሰናክሏል"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"የአይ.ፒ. ውቅረት መሰናከል"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"በአጠቃቀምዎ መሠረት እስከ <xliff:g id="TIME">%1$s</xliff:g> ገደማ መቆየት አለበት"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"እስከ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) ገደማ ድረስ መቆየት አለበት"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"እስከ <xliff:g id="TIME">%1$s</xliff:g> ገደማ መቆየት አለበት"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"እስከ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"ከ<xliff:g id="THRESHOLD">%1$s</xliff:g> ያነሰ ይቀራል"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"ከ<xliff:g id="THRESHOLD">%1$s</xliff:g> ያነሰ ይቀራል (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"ከ<xliff:g id="TIME_REMAINING">%1$s</xliff:g> በላይ ይቀራል (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ሁልጊዜ ጠይቅ"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"እስኪያጠፉት ድረስ"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ልክ አሁን"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"በግንባታ ላይ የተዘመነ የግራፊክስ ነጂን ለመጠቀም መተግበሪያን መርጠው ያስገቡ"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"የስልክ ድምጽ ማጉያ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index f8c2ba2..23f3a12 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"لا يمكن فحص الشبكات"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"بدون"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"تم الحفظ"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"غير مفعّلة"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"‏تعذّرت تهيئة عنوان IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"قد تكفي طاقة البطارية حتى حوالي الساعة <xliff:g id="TIME">%1$s</xliff:g> حسب استخدامك."</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"قد تكفي طاقة البطارية حتى حوالي الساعة <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"قد تكفي طاقة البطارية حتى حوالي الساعة <xliff:g id="TIME">%1$s</xliff:g>."</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"حتى <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"يتبقى أقل من <xliff:g id="THRESHOLD">%1$s</xliff:g>."</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"يتبقى أقل من <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"يتبقى أكثر من <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
@@ -451,4 +453,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"الطلب في كل مرة"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"إلى أن توقف الوضع يدويًا"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"للتو"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"فعِّل التطبيق لاستخدام برنامج تشغيل الرسومات المُحدَّث في تطوير البرامج."</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"مكبر صوت الهاتف"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index 72122c2..86d1459 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"নেটৱৰ্ক বিচাৰি স্কেন কৰিব পৰা নাই"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"নাই"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"ছেভ কৰি থোৱা নেটৱৰ্কসমূহ"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"নিষ্ক্ৰিয় হৈ আছে"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP কনফিগাৰেশ্বন বিফল হৈছে"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"আপোনাৰ ব্যৱহাৰৰ ওপৰত ভিত্তি কৰি বেটাৰি আনুমানিকভাৱে <xliff:g id="TIME">%1$s</xliff:g> লৈকে চলিব"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"বেটাৰি আনুমানিকভাৱে <xliff:g id="TIME">%1$s</xliff:g> লৈকে চলিব (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"বেটাৰি আনুমানিকভাৱে <xliff:g id="TIME">%1$s</xliff:g> লৈকে চলিব"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> পৰ্যন্ত"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>তকৈও কম সময় বাকী আছে"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>তকৈও কম সময় বাকী আছে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>তকৈও বেছি সময় বাকী আছে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"প্ৰতিবাৰতে সোধক"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"আপুনি অফ নকৰা পর্যন্ত"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"এই মাত্ৰ"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"বিকাশকাৰ্য চলি থকা আপডে\'টেড গ্ৰাফিক ড্ৰাইভাৰ ব্যৱহাৰ কৰিবলৈ এপ্ অপ্ট ইন কৰক"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ফ’নৰ স্পীকাৰ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index 23008e2..17d0ca6 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Şəbəkə axtarmaq olmur"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Heç biri"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Yadda saxlanılan"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Deaktiv"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP Konfiqurasiya Uğursuzluğu"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"İstifadəyə əsasən təxminən <xliff:g id="TIME">%1$s</xliff:g> olana qədər davam edəcək"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Təxminən <xliff:g id="TIME">%1$s</xliff:g> olana qədər davam edəcək (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Təxminən <xliff:g id="TIME">%1$s</xliff:g> olana qədər davam edəcək"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> olana qədər"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Qalan vaxt <xliff:g id="THRESHOLD">%1$s</xliff:g> və daha azdır"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Qalan vaxt <xliff:g id="THRESHOLD">%1$s</xliff:g> və daha azdır (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Qalan vaxt <xliff:g id="TIME_REMAINING">%1$s</xliff:g> və daha çoxdur (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Hər dəfə soruşun"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Deaktiv edənə qədər"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"İndicə"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Qrafik drayverdən istifadə etmək üçün tətbiq seçin"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefon spikeri"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 3ee8589..56052d2 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nije moguće skenirati mreže"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nema"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Sačuvano"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Onemogućeno"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP konfiguracija je otkazala"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Trajaće približno do <xliff:g id="TIME">%1$s</xliff:g> na osnovu korišćenja"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Trajaće približno do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Trajaće približno do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -448,4 +450,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Uvek pitaj"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Dok ne isključite"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Upravo"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Omogući aplikaciju za korišćenje upravljačkog programa grafičke katice u razvoju"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Zvučnik telefona"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index 64253bf..f2c2046 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Не атрымлiваецца выканаць сканаванне для сетак"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Няма"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Захавана"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Адключана"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Збой канфігурацыі IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Зараду хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g> пры цяперашнім узроўні выкарыстання"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Зараду (<xliff:g id="LEVEL">%2$s</xliff:g>) хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Зараду хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Да <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Засталося менш за <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Узровень зараду батарэі: <xliff:g id="LEVEL">%2$s</xliff:g> (хопіць менш чым на <xliff:g id="THRESHOLD">%1$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Узровень зараду батарэі: <xliff:g id="LEVEL">%2$s</xliff:g> (хопіць больш чым на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Заўсёды пытацца"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Пакуль не выключыце"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Зараз"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Выбраная праграма, якая выкарыстоўвае абноўлены драйвер графічнай сістэмы (падчас распрацоўкі)"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Дынамік тэлефона"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 668aa2d..5b8d6b8 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Не може да се сканира за мрежи"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Няма"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Запазено"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Деактивирани"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Неуспешно конфигуриране на IP адреса"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Следва да издържи приблизително до <xliff:g id="TIME">%1$s</xliff:g> въз основа на използването"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Следва да издържи приблизително до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Следва да издържи до около <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Остава/т по-малко от <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Остава/т по-малко от <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Остава/т повече от <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Да се пита винаги"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"До изключване"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Току-що"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Включване на приложението за използване на актуализирания графичен драйвер в разработка"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Високоговорител на телефона"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index c6eed2c..7efad99 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"নেটওয়ার্কগুলির জন্য স্ক্যান করা যাবে না"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"কোনো কিছুই নয়"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"সংরক্ষিত"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"অক্ষম হয়েছে"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP কনফিগারেশনের ব্যর্থতা"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"বর্তমান ব্যবহার অনুযায়ী আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> পর্যন্ত চলবে"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> পর্যন্ত চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> পর্যন্ত চলবে"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> পর্যন্ত"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> এর থেকেও কম বাকি আছে"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"আর <xliff:g id="THRESHOLD">%1$s</xliff:g>-এর কম চার্জ বাকি আছে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"আরও <xliff:g id="TIME_REMAINING">%1$s</xliff:g>-এর বেশি চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"প্রতিবার জিজ্ঞেস করা হবে"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"যতক্ষণ না আপনি বন্ধ করছেন"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"এখনই"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"ডেভলপমেন্টে আপডেট হওয়া গ্রাফিক্স ড্রাইভার ব্যবহার করতে অ্যাপ বেছে নিন"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ফেনের স্পিকার"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index 16179fb..92435f7 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Ne može skenirati mreže"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nema"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Sačuvano"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Onemogućeno"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Greška u konfiguraciji IP-a"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Trebala bi trajati otprilike do <xliff:g id="TIME">%1$s</xliff:g> na osnovu vaše upotrebe"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Trebala bi trajati do otprilike <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Trebala bi trajati otprilike do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -448,4 +450,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pitaj svaki put"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Dok ne isključite"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Upravo"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Prijavi aplikaciju za korištenje ažuriranog grafičkog drajvera u razvoju"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Zvučnik telefona"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index f906ea4..3182f16 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"No es poden cercar xarxes"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Cap"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Desat"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Desactivat"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Error de configuració d\'IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"La bateria hauria de durar aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g> segons l\'ús que en fas"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"La bateria hauria de durar aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"La bateria hauria de durar aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Fins a les <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Temps restant inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Temps restant inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Temps restant superior a <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pregunta sempre"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Fins que no ho desactivis"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Ara mateix"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Aplicació activada per utilitzar el controlador de gràfics actualitzat en desenvolupament"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Altaveu del telèfon"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index f9c8669..3785433 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nelze hledat sítě"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Žádné"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Uloženo"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Vypnuto"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Selhání konfigurace protokolu IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Při vašem obvyklém využití vydrží asi do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Vydrží asi do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Vydrží asi do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Zbývá méně než <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Zbývá méně než <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Zbývá více než <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pokaždé se zeptat"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Dokud tuto funkci nevypnete"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Právě teď"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Přihlaste aplikaci k použití vyvíjeného aktualizovaného grafického ovladače"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Reproduktor telefonu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 6b2bd98..eeeccee 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Der kan ikke søges efter netværk"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ingen"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Gemt"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Deaktiveret"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-konfigurationsfejl"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Bør holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g> baseret på dit forbrug"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Bør holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Bør holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Indtil <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Der er mindre end <xliff:g id="THRESHOLD">%1$s</xliff:g> tilbage"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Der er mindre end <xliff:g id="THRESHOLD">%1$s</xliff:g> tilbage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Der er mere end <xliff:g id="TIME_REMAINING">%1$s</xliff:g> tilbage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Spørg hver gang"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Indtil du deaktiverer"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Lige nu"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Tilvælg en app, der skal bruge den opdaterede grafikdriver under udvikling"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefonens højttaler"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index ad6f5f2..95f7416 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Netzwerkscan nicht möglich"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Keine"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Gespeichert"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Deaktiviert"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-Konfigurationsfehler"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Sollte basierend auf deiner Nutzung etwa bis <xliff:g id="TIME">%1$s</xliff:g> reichen"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Sollte etwa bis <xliff:g id="TIME">%1$s</xliff:g> reichen (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Sollte etwa bis <xliff:g id="TIME">%1$s</xliff:g> reichen"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Bis <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Weniger als <xliff:g id="THRESHOLD">%1$s</xliff:g> verbleibend"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Weniger als <xliff:g id="THRESHOLD">%1$s</xliff:g> verbleibend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mehr als <xliff:g id="TIME_REMAINING">%1$s</xliff:g> verbleibend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Jedes Mal fragen"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Bis zur Deaktivierung"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Gerade eben"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"App aktivieren, um den aktualisierten Grafiktreiber in der Entwicklung zu verwenden"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefon-Lautsprecher"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 5bfbf2c..310b6cf 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Δεν είναι δυνατή η σάρωση για δίκτυα"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Καμία"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Αποθηκευμένο"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Απενεργοποιημένο"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Αποτυχία διαμόρφωσης διεύθυνσης IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου, ανάλογα με τη χρήση σας"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Έως τις <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Απομένει/ουν λιγότερo/α από <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Απομένει/ουν λιγότερo/α από <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Απομένουν περισσότερα/ες από <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Να ερωτώμαι κάθε φορά"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Μέχρι την απενεργοποίηση"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Μόλις τώρα"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Επιλέξτε μια εφαρμογή για τη χρήση του ενημερωμένου προγράμματος οδήγησης γραφικών σε ανάπτυξη"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Ηχείο τηλεφώνου"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index f0eaeed..5b11d63 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Can\'t scan for networks"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"None"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Saved"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Disabled"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP Configuration Failure"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Until <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ask every time"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Until you turn off"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Just now"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Opt in app to use updated graphics driver in development"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Phone speaker"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index f0eaeed..5b11d63 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Can\'t scan for networks"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"None"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Saved"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Disabled"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP Configuration Failure"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Until <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ask every time"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Until you turn off"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Just now"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Opt in app to use updated graphics driver in development"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Phone speaker"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index f0eaeed..5b11d63 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Can\'t scan for networks"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"None"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Saved"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Disabled"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP Configuration Failure"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Until <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ask every time"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Until you turn off"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Just now"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Opt in app to use updated graphics driver in development"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Phone speaker"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index f0eaeed..5b11d63 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Can\'t scan for networks"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"None"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Saved"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Disabled"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP Configuration Failure"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Until <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ask every time"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Until you turn off"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Just now"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Opt in app to use updated graphics driver in development"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Phone speaker"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rXC/strings.xml b/packages/SettingsLib/res/values-en-rXC/strings.xml
index 6927fda..d7ed49a 100644
--- a/packages/SettingsLib/res/values-en-rXC/strings.xml
+++ b/packages/SettingsLib/res/values-en-rXC/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎Can\'t scan for networks‎‏‎‎‏‎"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‎‎‎‎‎None‎‏‎‎‏‎"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎‎‎Saved‎‏‎‎‏‎"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎Disabled‎‏‎‎‏‎"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‎‎‏‎‎‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎IP Configuration Failure‎‏‎‎‏‎"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‎Should last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ based on your usage‎‏‎‎‏‎"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‎‏‏‎‎‎‎‏‏‏‎‎Should last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‎‏‎Should last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‎Until ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‏‎‏‏‏‎‎‎‎‏‎Less than ‎‏‎‎‏‏‎<xliff:g id="THRESHOLD">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining‎‏‎‎‏‎"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎Less than ‎‏‎‎‏‏‎<xliff:g id="THRESHOLD">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‎More than ‎‏‎‎‏‏‎<xliff:g id="TIME_REMAINING">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‎‏‎Ask every time‎‏‎‎‏‎"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎Until you turn off‎‏‎‎‏‎"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‏‎‎Just now‎‏‎‎‏‎"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‏‏‎Opt in app to use updated graphcis driver in developement‎‏‎‎‏‎"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎Phone speaker‎‏‎‎‏‎"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 675084f..ecec63c 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"No se pueden buscar las redes."</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ninguna"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Guardada"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Inhabilitada"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Error de configuración IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Debería durar aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> según el uso"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Debería durar aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Debería durar aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Hasta <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Tiempo restante: más de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Preguntar siempre"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Hasta que lo desactives"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Recién"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Habilitar app para que use el controlador de gráficos actualizado en el desarrollo"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Altavoz del teléfono"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index b51b847..b8fdf30 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"No se puede buscar redes."</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ninguna"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Guardado"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Inhabilitado"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Error de configuración de IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Debería durar aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> según el uso"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Debería durar aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Debería durar aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Hasta: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Queda menos del <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Queda más del <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Preguntar siempre"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Hasta que se desactive"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Justo ahora"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Habilitar aplicación para usar controlador de gráficos actualizado en desarrollo"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Altavoz del teléfono"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index fb077be..1246626 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Võrke ei saa kontrollida"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Puudub"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Salvestatud"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Keelatud"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP seadistamise ebaõnnestumine"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Peaks teie kasutuse põhjal kestma kuni <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Peaks kestma kuni <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Peaks kestma kuni <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Kuni <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Jäänud on alla <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Jäänud on alla <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Jäänud on üle <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Küsi iga kord"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Kuni välja lülitate"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Äsja"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Lubage rakendus, et kasutada arenduses olevat värskendatud graafikadraiverit"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefoni kõlar"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index 3d3b8c3..68b4840 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Ezin dira sareak bilatu"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Bat ere ez"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Gordeta"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Desgaituta"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Ezin izan da konfiguratu IP helbidea"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Erabileraren arabera, ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> arte"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> baino gutxiago gelditzen dira"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> baino gutxiago gelditzen da (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> baino gehiago gelditzen da (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Galdetu beti"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Desaktibatu arte"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Oraintxe"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Hautatu zein aplikaziorekin erabili nahi duzun garatze-prozesuan dagoen grafikoen kontrolatzaile eguneratua"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefonoaren bozgorailua"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 0af118e..7882b056 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"اسکن شبکه‌ها امکان‌پذیر نیست"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"هیچ‌کدام"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"ذخیره‌شده"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"غیرفعال شد"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"‏پیکربندی IP انجام نشد"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"باتوجه به میزان مصرفتان، باید حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> شارژ داشته باشید"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"باید حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) شارژ داشته باشید"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"باید حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> شارژ داشته باشید"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"تا <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"کمتر از <xliff:g id="THRESHOLD">%1$s</xliff:g> باقی مانده"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"کمتر از <xliff:g id="THRESHOLD">%1$s</xliff:g> شارژ باقی مانده است (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"بیش از <xliff:g id="TIME_REMAINING">%1$s</xliff:g> شارژ باقی مانده است (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"هربار پرسیده شود"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"تا زمانی‌که آن را خاموش کنید"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"هم‌اکنون"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"برنامه انتخاب‌شده برای استفاده از درایور گرافیک به‌روزرسانی‌شده در برنامه‌نویس"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"بلندگوی تلفن"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index dde10d0d..1904c4d 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Verkkoja ei voi etsiä."</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ei mitään"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Tallennettu"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Pois käytöstä"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-kokoonpanovirhe"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Varaus loppuu käyttösi perusteella noin <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Varaus loppuu noin <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Varaus loppuu noin <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> saakka"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Alle <xliff:g id="THRESHOLD">%1$s</xliff:g> jäljellä"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Alle <xliff:g id="THRESHOLD">%1$s</xliff:g> jäljellä (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Yli <xliff:g id="TIME_REMAINING">%1$s</xliff:g> jäljellä (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Kysy aina"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Kunnes poistat sen käytöstä"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Äsken"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Lisää sovellus käyttämään päivitettyä grafiikkaohjainta kehitysvaiheessa"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Puhelimen kaiutin"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index 1257ea5..45b2872 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Impossible de rechercher des réseaux."</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Aucune"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Enregistré"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Désactivés"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Échec de configuration de l\'adresse IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g>, en fonction de votre usage"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Jusqu\'à <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Il reste plus de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Toujours demander"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Jusqu\'à la désactivation"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"À l\'instant"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Sélectionnez l\'application pour utiliser le pilote graphique mis à jour en mode de conception"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Haut-parleur du téléphone"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 444a52e..13361d7 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Impossible de rechercher des réseaux."</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Aucune"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Enregistré"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Désactivé"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Échec de configuration de l\'adresse IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Temps restant estimé en fonction de votre utilisation : <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Temps restant estimé : <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Temps restant estimé : <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Jusqu\'à <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Il reste plus de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Toujours demander"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Jusqu\'à la désactivation"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"À l\'instant"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Sélectionner une application pour le développement de laquelle utiliser le pilote graphique mis à jour"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Haut-parleur du téléphone"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 8df2697..e8cf009 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Non se poden explorar redes"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ningunha"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Gardada"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Desactivadas"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Erro na configuración de IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"En función do uso, debería durar aproximadamente ata a seguinte hora: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Debería durar aproximadamente ata a seguinte hora: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Debería durar aproximadamente ata a seguinte hora: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Ata: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tempo restante inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Tempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Tempo restante: máis de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Preguntar sempre"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Ata a desactivación"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Agora mesmo"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Subscribirse á aplicación para utilizar o controlador de gráficos actualizado en desenvolvemento"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Altofalante do teléfono"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index 4a92f2a..918920d 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"નેટવર્ક્સ માટે સ્કૅન કરી શકતા નથી"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"કોઈ નહીં"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"સાચવેલા"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"અક્ષમ કર્યો"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP કન્ફિગરેશન નિષ્ફળ"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"તમારા વપરાશના આધારે લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલવી જોઈએ"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલવી જોઈએ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલવી જોઈએ"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> સુધી"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> કરતાં ઓછો સમય બાકી છે"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> કરતાં ઓછો સમય બાકી છે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> કરતાં વધુ સમય બાકી છે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"દર વખતે પૂછો"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"તમે બંધ ન કરો ત્યાં સુધી"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"હમણાં જ"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"અપડેટ કરેલ ગ્રાફિક્સ ડ્રાઇવરનો ઉપયોગ કરવા માટે અ‍ૅપ પસંદ કરો"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ફોન સ્પીકર"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 6d88c35..890d036 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"नेटवर्क के लिए स्‍कैन नहीं कर सकता"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"कोई नहीं"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"सेव किया गया"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"अक्षम"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP कॉन्‍फ़िगरेशन की विफलता"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"आपके इस्तेमाल के हिसाब से बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> चलेगी"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> चलेगी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> चलेगी"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> तक"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> से कम समय बचा है"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> से कम बैटरी बची है (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> से ज़्यादा चलने लायक बैटरी बची है (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"हर बार पूछें"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"जब तक आप इसे बंद नहीं करते"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"अभी-अभी"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"डेवलपमेंट में अपडेट किए गए ग्राफ़िक्स ड्राइवर का इस्तेमाल करने के लिए ऐप्लिकेशन में ऑप्ट इन करें"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"फ़ोन स्पीकर"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 32c9a62..1464b91 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Skeniranje mreža nije moguće"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nema"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Spremljeno"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Onemogućeno"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Konfiguracija IP-a nije uspjela"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Otprilike bi trebalo trajati do <xliff:g id="TIME">%1$s</xliff:g> na temelju vaše upotrebe"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Otprilike bi trebalo trajati do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Otprilike bi trebalo trajati do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -448,4 +450,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pitaj svaki put"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Dok ne isključite"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Upravo sad"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Uključi aplikaciju za upotrebu ažuriranog upravljačkog programa u razvoju"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Zvučnik telefona"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index ed19267..c9fdd45 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nem lehet beolvasni a hálózatokat"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nincs"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Mentve"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Letiltva"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-konfigurációs hiba"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"A használat alapján nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Eddig: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Kevesebb mint <xliff:g id="THRESHOLD">%1$s</xliff:g> van hátra"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Kevesebb mint <xliff:g id="THRESHOLD">%1$s</xliff:g> van hátra (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Kevesebb mint <xliff:g id="TIME_REMAINING">%1$s</xliff:g> van hátra (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Mindig kérdezzen rá"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Kikapcsolásig"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Az imént"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"A frissített, fejlesztés alatt álló grafikus drivert használja a választott alkalmazás"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefon hangszórója"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index 6d516ea..3b13ed1 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Հնարավոր չէ սկանավորել ցանցերը"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ոչ մեկը"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Պահված է"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Անջատված"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP կարգավորման ձախողում"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Լիցքը պետք է, որ բավականացնի մոտ <xliff:g id="TIME">%1$s</xliff:g>՝ կախված օգտագործման եղանակից"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Լիցքը (<xliff:g id="LEVEL">%2$s</xliff:g>) պետք է, որ բավականացնի մոտ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Լիցքը պետք է, որ բավականացնի մոտ <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Մինչև <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Մնացել է <xliff:g id="THRESHOLD">%1$s</xliff:g>-ից պակաս"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Մնացել է <xliff:g id="THRESHOLD">%1$s</xliff:g>-ից պակաս (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Մնացել է ավելի քան <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Հարցնել ամեն անգամ"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Մինչև չանջատեք"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Հենց նոր"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Ընտրված հավելվածը, որը պետք է օգտագործի թարմացված գրաֆիկական սարքավարը մշակման ժամանակ"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Հեռախոսի բարձրախոս"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index a5f2317..4d1b2df 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Tidak dapat memindai jaringan"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Tidak ada"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Disimpan"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Nonaktif"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Kegagalan Konfigurasi IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Akan bertahan kira-kira sampai <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan Anda"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Akan bertahan kira-kira sampai <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Akan bertahan kira-kira sampai <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Hingga <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tersisa kurang dari <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Tersisa kurang dari <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Tersisa lebih dari <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Selalu tanya"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Sampai Anda menonaktifkannya"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Baru saja"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Ikut sertakan aplikasi untuk menggunakan driver grafis yang diupdate dalam pengembangan"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Speaker ponsel"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index 6cf09a6..600ffa4 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Ekki er hægt að leita að netum"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ekkert"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Vistað"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Óvirkt"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-stillingarvilla"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Ætti að endast til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g> miðað við notkun þína"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Ætti að endast til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Ætti að endast til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Til klukkan <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Minna en <xliff:g id="THRESHOLD">%1$s</xliff:g> eftir"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Minna en <xliff:g id="THRESHOLD">%1$s</xliff:g> eftir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Meira en <xliff:g id="TIME_REMAINING">%1$s</xliff:g> eftir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Spyrja í hvert skipti"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Þar til þú slekkur"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Rétt í þessu"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Velja að nota uppfærðan myndefnisrekil í þróun í forriti"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Símahátalari"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index a1b9b82..068aa91 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Impossibile cercare reti"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nessuna"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Salvata"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Disattivata"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Errore configurazione IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Tempo stimato rimanente in base al tuo utilizzo: <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Tempo stimato rimanente: <xliff:g id="TIME">%1$s</xliff:g> circa (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Tempo stimato rimanente: <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Fino alle ore <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tempo rimanente: meno di <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Tempo rimanente: meno di <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Tempo rimanente: più di <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Chiedi ogni volta"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Fino alla disattivazione"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Adesso"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Attiva l\'app per utilizzare il driver grafico aggiornato nella versione di sviluppo"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Altoparlante telefono"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index 1a50622..fa38f77 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"לא ניתן לסרוק לאיתור רשתות"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"ללא"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"נשמר"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"מושבת"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"‏כשל בתצורת IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"אמורה להחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g> על סמך השימוש במכשיר"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"אמורה להחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"אמורה להחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"עד <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"נותרו פחות מ-<xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"נותרו פחות מ-<xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"נותרו יותר מ-<xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"שאל בכל פעם"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"עד הכיבוי"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"הרגע"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"האפליקציה שנבחרה לשימוש במנהל ההתקן המעודכן לגרפיקה שבפיתוח"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"רמקול של טלפון"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 4c544af..9927654 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ネットワークをスキャンできません"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"なし"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"保存済み"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"無効"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP設定エラー"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"電池切れの推定時間: <xliff:g id="TIME">%1$s</xliff:g>(使用状況に基づく)"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"電池切れの推定時間: <xliff:g id="TIME">%1$s</xliff:g>(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"電池切れの推定時間: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> まで"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"残り時間: <xliff:g id="THRESHOLD">%1$s</xliff:g>未満"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"残り時間: <xliff:g id="THRESHOLD">%1$s</xliff:g>未満(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"残り時間: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>以上(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"毎回確認"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"OFF にするまで"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"たった今"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"更新したグラフィックス ドライバを開発に使用するオプトイン アプリ"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"スマートフォンのスピーカー"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index 92f3049..7ba0153 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ქსელების სკანირება არა არის შესაძლებელი"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"არცერთი"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"დამახსოვრებულია"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"გამორთულია"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP კონფიგურაციის შეფერხება"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"უნდა იმუშაოს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>, მოხმარების გათვალისწინებით"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"უნდა იმუშაოს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"უნდა იმუშაოს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g>-მდე"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"დარჩენილია <xliff:g id="THRESHOLD">%1$s</xliff:g>-ზე ნაკლები"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"დარჩენილია <xliff:g id="THRESHOLD">%1$s</xliff:g>-ზე ნაკლები დრო (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"დარჩენილია <xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ზე მეტი დრო (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ყოველთვის მკითხეთ"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"გამორთვამდე"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ახლახან"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"გააქტიურების აპი, რომელიც გამოიყენებს შემუშავების პროცესში მყოფ, განახლებულ გრაფიკულ დრაივერს"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ტელეფონის დინამიკი"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index b56c6fd..d5b4441 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Желілерді шолу мүмкін емес"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ешқандай"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Сақталды"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Өшірілген"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP конфигурациясының қатесі"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Пайдалануға байланысты шамамен <xliff:g id="TIME">%1$s</xliff:g> уақытқа жетеді"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Шамамен <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) уақытқа жетеді"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Шамамен <xliff:g id="TIME">%1$s</xliff:g> уақытқа жетеді"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> дейін"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> шамасынан аз қалды"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> шамасынан аз қалды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> шамасынан көп уақыт қалды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Әрдайым сұрау"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Өшірілгенге дейін"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Дәл қазір"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Әзірлеу барысында қолданба жаңартылған графика драйверін пайдаланады"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Телефон динамигі"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index 5860473..d1d1c76 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"មិន​អាច​វិភាគ​រក​បណ្ដាញ"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"គ្មាន"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"បាន​រក្សាទុក"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"បាន​បិទ"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"ការ​កំណត់​រចនាសម្ព័ន្ធ IP បរាជ័យ"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"គួរ​តែ​អាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g> ដោយផ្អែក​លើការ​ប្រើប្រាស់​របស់អ្នក"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"គួរ​តែ​អាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"គួរ​តែ​អាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"រហូតដល់​ម៉ោង <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"នៅ​សល់​តិច​ជាង <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"នៅសល់​តិចជាង <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"នៅសល់​ច្រើនជាង <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"សួរគ្រប់ពេល"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"រហូតទាល់តែ​អ្នកបិទ"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"អម្បាញ់មិញ"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"ភ្ជាប់កម្មវិធី​ ដើម្បី​ប្រើដ្រាយវើ​ក្រាហ្វិក​ដែលបាន​ដំឡើងជំនាន់​សម្រាប់​ការ​អភិវឌ្ឍ"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ឧបករណ៍​បំពង​សំឡេង​ទូរសព្ទ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 87e18e6..46759f5 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್‌ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"ಯಾವುದೂ ಇಲ್ಲ"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"ಉಳಿಸಲಾಗಿದೆ"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP ಕಾನ್ಫಿಗರೇಶನ್ ವಿಫಲತೆ"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"ನಿಮ್ಮ ಬಳಕೆ ಆಧರಿಸಿ <xliff:g id="TIME">%1$s</xliff:g> ಸಮಯದವರೆಗೆ ಫೋನ್‌ ರನ್‌ ಆಗಬೇಕು"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) ಸಮಯದವರೆಗೆ ಫೋನ್‌ ರನ್‌ ಆಗಬೇಕು"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"<xliff:g id="TIME">%1$s</xliff:g> ಸಮಯದವರೆಗೆ ಫೋನ್‌ ರನ್‌ ಆಗಬೇಕು"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> ರವರೆಗೆ"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ ಸಮಯ ಉಳಿದಿದೆ"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ಕ್ಕಿಂತ ಕಡಿಮೆ (<xliff:g id="LEVEL">%2$s</xliff:g>) ಬಾಕಿ"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ಕ್ಕಿಂತ ಹೆಚ್ಚು (<xliff:g id="LEVEL">%2$s</xliff:g>) ಬಾಕಿ"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ಪ್ರತಿ ಬಾರಿ ಕೇಳಿ"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"ನೀವು ಆಫ್ ಮಾಡುವವರೆಗೆ"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ಇದೀಗ"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾದ ಗ್ರಾಫಿಕ್‌ಗಳ ಡ್ರೈವರ್ ಬಳಸಲು ಆ್ಯಪ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ಫೋನ್ ಸ್ಪೀಕರ್"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 3333c0d..067175b 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"네트워크를 검색할 수 없습니다."</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"없음"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"저장됨"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"사용 중지됨"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP 설정 실패"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"사용량을 기준으로 약 <xliff:g id="TIME">%1$s</xliff:g>까지 사용 가능"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"약 <xliff:g id="TIME">%1$s</xliff:g>까지 사용 가능(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"약 <xliff:g id="TIME">%1$s</xliff:g>까지 사용 가능"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g>까지"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> 미만 남음"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> 미만 남음(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> 이상 남음(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -435,7 +437,7 @@
     <string name="cancel" msgid="6859253417269739139">"취소"</string>
     <string name="okay" msgid="1997666393121016642">"확인"</string>
     <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"켜기"</string>
-    <string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"알림 일시중지 사용 설정"</string>
+    <string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"방해 금지 모드 사용 설정"</string>
     <string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"사용 안함"</string>
     <string name="zen_interruption_level_priority" msgid="2078370238113347720">"중요 알림만"</string>
     <string name="zen_mode_and_condition" msgid="4927230238450354412">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"항상 확인"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"사용 중지할 때까지"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"조금 전"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"개발 중인 업데이트된 그래픽 드라이버를 사용할 앱을 선택하세요."</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"휴대전화 스피커"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index cbbc47c..8e994da 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Түйүндөрдү издөө мүмкүн эмес"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Жок"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Сакталды"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Өчүрүлгөн"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP конфигурациясы бузулду"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Колдонгонуңузга караганда болжол менен <xliff:g id="TIME">%1$s</xliff:g> кийин өчөт"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Болжол менен <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) кийин өчөт"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Болжол менен <xliff:g id="TIME">%1$s</xliff:g> кийин өчөт"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> чейин"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> жетпеген убакыт калды"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> жетпеген убакыт калды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ашыгыраак убакыт калды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ар дайым суралсын"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Бул функция өчүрүлгөнгө чейин"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Азыр эле"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Иштеп чыгууда жаңыртылган графикалык драйверлерди пайдалануу үчүн колдонмону кошуңуз"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Телефондун динамиги"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index 21e4679..7bf46c0 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ບໍ່ສາມາດກວດຫາເຄືອຂ່າຍໄດ້"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"ບໍ່ໃຊ້"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"ບັນ​ທຶກແລ້ວ"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"ປິດການນຳໃຊ້"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"ການ​ຕັ້ງ​ຄ່າ IP ລົ້ມ​ເຫຼວ"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"ຈົນກວ່າຈະຮອດ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"ຍັງເຫຼືອໜ້ອຍກວ່າ <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"ຍັງເຫຼືອໜ້ອຍກວ່າ <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"ຍັງເຫຼືອຫຼາຍກວ່າ <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ຖາມທຸກເທື່ອ"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"ຈົນກວ່າທ່ານຈະປິດ"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ຕອນນີ້"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"ເຂົ້າຮ່ວມແອັບເພື່ອໃຊ້ໄດຣເວີກຣາຟິກທີ່ອັບເດດແລ້ວໃນການພັດທະນາ"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ລຳໂພງໂທລະສັບ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index cbff9e7..9da3d52 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nepavyksta nuskaityti tinklų"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nėra"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Išsaugotas"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Neleidžiama"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP konfigūracijos triktis"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Pagal tai, kaip naudojama, turėtų išsikrauti maždaug po <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Turėtų išsikrauti maždaug po <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Turėtų išsikrauti maždaug po <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Iki <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Liko mažiau nei <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Liko mažiau nei <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Liko daugiau nei <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Klausti kaskart"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Kol išjungsite"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Ką tik"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Pasirinkti programą, kuri bus naudojama su atnaujinta kuriama grafikos tvarkykle"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefono garsiakalbis"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index d200828..2233468 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nevar skenēt tīklus"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nav"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Saglabāts"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Atspējots"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP konfigurācijas kļūme"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Ņemot vērā lietojumu, darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Līdz <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Atlikušais laiks — mazāk nekā <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Atlicis mazāk nekā <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Atlicis vairāk nekā <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -448,4 +450,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Vaicāt katru reizi"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Līdz brīdim, kad izslēgsiet"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Tikko"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Izvēlēties izmantot atjaunināto grafikas dzini šīs lietotnes izstrādē"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Tālruņa skaļrunis"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index db16847..534d154 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Не може да скенира за мрежи"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ниедна"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Зачувано"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Оневозможено"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Конфигурирањето ИП не успеа"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Треба да трае до околу <xliff:g id="TIME">%1$s</xliff:g> според вашето користење"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Треба да трае до околу <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Треба да трае до околу <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Уште помалку од <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Уште помалку од <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Уште повеќе од <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Секогаш прашувај"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Додека не го исклучите"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Неодамнешни"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Прифатете ја апликацијата за да се користи ажурираниот драјвер за графика во програмирање"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Телефонски звучник"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index c3af968..7a335cd 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"നെ‌റ്റ്‌വർക്കുകൾക്കായി സ്കാൻ ചെയ്യാനായില്ല"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"ഒന്നുമില്ല"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"സംരക്ഷിച്ചു"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"പ്രവർത്തനരഹിതമാക്കി"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP കോൺഫിഗറേഷൻ പരാജയം"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"നിങ്ങളുടെ ഉപയോഗത്തെ അടിസ്ഥാനമാക്കി ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> വരെ നീണ്ടുനിൽക്കേണ്ടതാണ്"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> വരെ നീണ്ടുനിൽക്കേണ്ടതാണ് (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> വരെ നീണ്ടുനിൽക്കേണ്ടതാണ്"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> വരെ"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-ൽ കുറവ് സമയം ശേഷിക്കുന്നു"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-ൽ കുറവ് സമയം ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ൽ കൂടുതൽ സമയം ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"എപ്പോഴും ചോദിക്കുക"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"നിങ്ങൾ ഓഫാക്കുന്നത് വരെ"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ഇപ്പോൾ"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"വികസനത്തിൽ, അപ്ഡേറ്റ് ചെയ്‌ത ഗ്രാഫിക്‌സ് ഡ്രൈവർ ഉപയോഗിക്കാൻ ഓപ്റ്റ് ഇൻ ചെയ്യുക"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ഫോൺ സ്‌പീക്കർ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index 8627e1b..4816643 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Сүлжээнүүдийг скан хийх боломжгүй"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Байхгүй"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Хадгалагдсан"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Идэвхгүйжүүлсэн"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP тохируулга амжилтгүй"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Таны хэрэглээнд тулгуурлан ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> хүртэл барих ёстой"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> хүртэл барих ёстой (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> хүртэл барих ёстой"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> хүртэл"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-с бага хугацаа үлдсэн"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-с бага хугацаа үлдсэн (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-с их хугацаа үлдсэн (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Тухай бүрт асуух"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Таныг унтраах хүртэл"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Дөнгөж сая"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Хөгжүүлэлтэд буй шинэчилсэн график драйверийг ашиглахын тулд аппад нэгдэх"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Утасны чанга яригч"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index cd7f175..8ebb182 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"नेटवर्कसाठी स्कॅन करू शकत नाही"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"काहीही नाही"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"सेव्ह केले"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"अक्षम"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP कॉन्फिगरेशन अयशस्वी"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"तुमच्या वापरावर अवलंबून सुमारे <xliff:g id="TIME">%1$s</xliff:g> पर्यंत टिकावी"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"सुमारे <xliff:g id="TIME">%1$s</xliff:g> पर्यंत टिकेल (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"सुमारे <xliff:g id="TIME">%1$s</xliff:g> पर्यंत टिकावी"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> पर्यंत"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> पेक्षा कमी शिल्लक आहे"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> पेक्षा कमी वेळ शिल्लक आहे (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> पेक्षा जास्त वेळ शिल्लक आहे (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"प्रत्येक वेळी विचारा"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"तुम्ही बंद करेपर्यंत"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"आत्ताच"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"अपडेट केलेले ग्राफिक ड्राइव्हर डेव्हलमेंटमध्ये वापरण्यासाठी अॅप निवडा"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"फोनचा स्पीकर"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index d0b2e12..3593882 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Tidak boleh mengimbas untuk rangkaian"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Tiada"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Disimpan"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Dinyahdayakan"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Kegagalan Konfigurasi IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Seharusnya boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan anda"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Seharusnya boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Seharusnya boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Hingga <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tinggal kurang daripada <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Kurang daripada <xliff:g id="THRESHOLD">%1$s</xliff:g> lagi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Lebih daripada <xliff:g id="TIME_REMAINING">%1$s</xliff:g> lagi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Tanya setiap kali"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Sehingga anda matikan"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Sebentar tadi"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Sertakan apl untuk menggunakan pemacu grafik yang dikemas kini dalam pembangunan"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Pembesar suara telefon"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index 5f5957c..7ac3742 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ကွန်ယက်များကို စကင်မလုပ်နိုင်ပါ"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"တစ်ခုမျှ မဟုတ်ပါ"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"သိမ်းဆည်းပြီး"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"ပိတ်ထားသည်"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP ပြုပြင်ခြင်း မအောင်မြင်ပါ"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"သင်၏ အသုံးပြုမှုအပေါ် အခြေခံ၍ <xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည်"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"<xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"<xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည်"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> အထိ"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ခန့်သာ ကျန်တော့သည်"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> အောက်သာ ကျန်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ကျော် ကျန်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"အမြဲမေးပါ"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"သင်ပိတ်လိုက်သည် အထိ"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ယခုလေးတင်"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"ဆော့ဖ်ဝဲရေးဆွဲမှုအတွင်း အပ်ဒိတ်လုပ်ထားသော ဂရပ်ဖစ်ဒရိုင်ဗာကို အသုံးပြုရန် အက်ပ်ကို ရွေးချယ်ပါ"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ဖုန်းစပီကာ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 3c240f8..ae9c5f2 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Kan ikke søke etter nettverk"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ingen"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Lagret"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Slått av"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-konfigurasjonsfeil"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Skal vare til omtrent <xliff:g id="TIME">%1$s</xliff:g>, basert på bruken din"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Skal vare til omtrent <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Skal vare til omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Til <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Mindre enn <xliff:g id="THRESHOLD">%1$s</xliff:g> gjenstår"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Mindre enn <xliff:g id="THRESHOLD">%1$s</xliff:g> gjenstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mer enn <xliff:g id="TIME_REMAINING">%1$s</xliff:g> gjenstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Spør hver gang"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Til du slår av"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Nå nettopp"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Velg app for å bruke en oppdatert grafikkdriver som er under utvikling"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefonhøyttaler"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index 1699870..0b4510fd 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"सञ्जालका लागि स्क्यान गर्न सक्दैन"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"कुनै पनि होइन"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"सुरक्षित गरियो"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"असक्षम पारियो"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP विन्यास असफल"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"तपाईंको प्रयोगका आधारमा लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्नु पर्छ"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"ब्याट्री लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्नु पर्छ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्नु पर्छ"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> सम्म"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> भन्दा कम समय बाँकी छ"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> भन्दा कम समय बाँकी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> भन्दा बढी समय बाँकी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"प्रत्येक पटक सोध्नुहोस्"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"तपाईंले निष्क्रिय नपार्दासम्म"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"अहिले भर्खरै"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"विकासको क्रममा अद्यावधिक गरिएको ग्राफिक ड्राइभर प्रयोग गर्न अप्ट इन गर्नुहोस्"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"फोनको स्पिकर"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 738df94..f227e1c 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Kan niet zoeken naar netwerken"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Geen"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Opgeslagen"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Uitgeschakeld"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-configuratie mislukt"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Is nog genoeg tot ongeveer <xliff:g id="TIME">%1$s</xliff:g> op basis van je gebruik"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Is nog genoeg tot ongeveer <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Is nog genoeg tot ongeveer <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Tot <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Minder dan <xliff:g id="THRESHOLD">%1$s</xliff:g> resterend"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Minder dan <xliff:g id="THRESHOLD">%1$s</xliff:g> resterend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Meer dan <xliff:g id="TIME_REMAINING">%1$s</xliff:g> resterend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Altijd vragen"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Totdat je uitschakelt"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Zojuist"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Meld een app aan om het geüpdatete grafische stuurprogramma in ontwikkeling te gebruiken"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefoonluidspreker"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index 2d39cc6..bf8493a 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ନେଟ୍‌ୱର୍କଗୁଡ଼ିକୁ ଖୋଜିପାରୁନାହିଁ"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"କିଛି ନାହିଁ"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"ସେଭ୍‌ ହୋଇଗଲା"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"ଅକ୍ଷମ ହୋଇଛି"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP କନଫିଗରେଶନ ବିଫଳ ହୋଇଛି"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"ଆପଣଙ୍କର ବ୍ୟବହାରକୁ ଆଧାର କରି ବ୍ୟାଟେରୀ <xliff:g id="TIME">%1$s</xliff:g> ପର୍ଯ୍ୟନ୍ତ ଚାଲିବ"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"ବ୍ୟାଟେରୀ ପାଖାପାଖି <xliff:g id="TIME">%1$s</xliff:g> ଚାଲିବ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"ବ୍ୟାଟେରୀ <xliff:g id="TIME">%1$s</xliff:g> ପର୍ଯ୍ୟନ୍ତ ଚାଲିବ"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> ପର୍ଯ୍ୟନ୍ତ"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>ରୁ କମ୍ ସମୟ ବଳକା ଅଛି"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ରୁ କମ୍ ସମୟ ବଳକା ଅଛି (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>ରୁ ଅଧିକ ସମୟ ବଳକା ଅଛି(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ପ୍ରତ୍ୟେକ ଥର ପଚାରନ୍ତୁ"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"ଆପଣ ବନ୍ଦ ନକରିବା ପର୍ଯ୍ୟନ୍ତ DND ଅନ୍‌ ରହିବ"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ଏହିକ୍ଷଣି"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"ଡେଭଲପ୍‍‍‍‍‍‍‍‍ମେଣ୍ଟରେ ଅପ୍‍‍‍‍‍‍‍ଡେଟ୍‍ ଗ୍ରାଫିକ୍ସ ଡ୍ରାଇଭର୍‍ ବ୍ୟବହାର କରିବାକୁ ଆପ୍ଟ ଇ‍ନ୍‍ ଅପ୍ଲିକେସନ୍‍"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ଫୋନ୍‍ ସ୍ପିକର୍‍"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 61f0447..f948a7e 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ਨੈਟਵਰਕਾਂ ਲਈ ਸਕੈਨ ਨਹੀਂ ਕਰ ਸਕਦਾ"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"ਕੋਈ ਨਹੀਂ"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"ਰੱਖਿਅਤ ਕੀਤਾ"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"ਅਯੋਗ ਬਣਾਇਆ"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP ਕੌਂਫਿਗਰੇਸ਼ਨ ਅਸਫਲਤਾ"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"ਤੁਹਾਡੀ ਵਰਤੋਂ ਦੇ ਆਧਾਰ \'ਤੇ ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਚੱਲੇਗਾ"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਚੱਲੇਗਾ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਚੱਲੇਗਾ"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> ਤੱਕ"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ਤੋਂ ਘੱਟ ਸਮਾਂ ਬਾਕੀ"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ਤੋਂ ਘੱਟ ਸਮਾਂ ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ਤੋਂ ਵੱਧ ਸਮਾਂ ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ਹਰ ਵਾਰ ਪੁੱਛੋ"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਬੰਦ ਨਹੀਂ ਕਰਦੇ"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ਹੁਣੇ ਹੀ"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"ਅੱਪਡੇਟ ਕੀਤੇ ਵਿਕਾਸ-ਅਧੀਨ ਗ੍ਰਾਫਿਕਸ ਡਰਾਈਵਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਐਪ ਦੀ ਚੋਣ ਕਰੋ"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ਫ਼ੋਨ ਦਾ ਸਪੀਕਰ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 519f82c..c75a894 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nie można wyszukać sieci."</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Brak"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Zapisana"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Wyłączona"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Błąd konfiguracji IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Na podstawie Twojego sposobu korzystania jeszcze około <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Powinno wystarczyć do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Powinno wystarczyć do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Pozostało mniej niż <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Pozostało mniej niż <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Pozostało ponad: <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Zawsze pytaj"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Dopóki nie wyłączysz"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Przed chwilą"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Wybierz aplikację, która ma używać opracowywanego sterownika grafiki"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Głośnik telefonu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 16844a2..c273f59 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Não é possível verificar a existência de redes"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nenhuma"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Salva"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Desativado"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Falha de configuração de IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g> com base no seu uso"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Até <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s)"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Perguntar sempre"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Até você desativar"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Agora"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Ative o app para usar o driver gráfico atualizado no desenvolvimento"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Alto-falante do smartphone"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index f01ddfa..26e4729 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Não é possível verificar redes"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nenhuma"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Guardada"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Desativado"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Falha de configuração de IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Deve durar até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g> com base na sua utilização."</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Deve durar até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Deve durar até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g>."</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Até à(s) <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Resta(m) menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>."</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Resta(m) menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Resta(m) mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Perguntar sempre"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Até ser desativado"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Agora mesmo"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Optar pela aplicação para utilizar a placa gráfica atualizada em desenvolvimento"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Altifalante do telemóvel"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 16844a2..c273f59 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Não é possível verificar a existência de redes"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Nenhuma"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Salva"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Desativado"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Falha de configuração de IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g> com base no seu uso"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Até <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s)"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Perguntar sempre"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Até você desativar"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Agora"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Ative o app para usar o driver gráfico atualizado no desenvolvimento"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Alto-falante do smartphone"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 8a7b440..94f4842 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nu se poate scana pentru rețele"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Niciuna"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Salvată"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Dezactivată"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Eroare de configurație IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"În baza utilizării, ar trebui să reziste până la aproximativ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Ar trebui să reziste până la <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Ar trebui să reziste până la <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Până la <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"a mai rămas mai puțin de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"A mai rămas mai puțin de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"A mai rămas mai mult de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -448,4 +450,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Întreabă de fiecare dată"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Până când dezactivați"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Chiar acum"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Aplicația pentru înscriere pentru a folosi driverul actualizat al plăcii grafice este în dezvoltare"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Difuzorul telefonului"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 31274d1..1c331d8 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Не удалось начать поиск сетей."</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Нет"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Сохранено"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Отключено"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Ошибка IP-конфигурации"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"При текущем уровне использования заряда хватит примерно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Заряда (<xliff:g id="LEVEL">%2$s</xliff:g>) хватит примерно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Заряда хватит примерно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Осталось менее <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Уровень заряда батареи: <xliff:g id="LEVEL">%2$s</xliff:g> (хватит менее чем на <xliff:g id="THRESHOLD">%1$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Уровень заряда батареи: <xliff:g id="LEVEL">%2$s</xliff:g> (хватит более чем на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Всегда спрашивать"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Пока вы не отключите"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Только что"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Приложение будет использовать обновленный драйвер графической системы (на стадии разработки)"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Встроенный динамик"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index b22e068..608ff7f 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ජාල සඳහා පරිලෝකනය කළ නොහැක"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"කිසිවක් නැත"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"සුරකින ලදි"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"අබලයි"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP වින්‍යාස කිරීම අසාර්ථකයි"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"ඔබේ භාවිතය මත පදනම්ව <xliff:g id="TIME">%1$s</xliff:g> පමන වන තෙක් තිබිය යුතුය"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) පමණ වන තෙක් තිබිය යුතුය"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"<xliff:g id="TIME">%1$s</xliff:g> පමණ වන තෙක් තිබිය යුතුය"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> දක්වා"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>ට වඩා අඩුවෙන් ඉතිරිව ඇත"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>ට වඩා අඩුවෙන් ඉතිරිය (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>ට වඩා වැඩියෙන් ඉතිරිය (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"සෑම විටම ඉල්ලන්න"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"ඔබ ක්‍රියාවිරහිත කරන තුරු"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"මේ දැන්"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"වැඩිදියුණු වෙමින් ඇති යාවත්කාලීන කළ චිත්‍රක ධාවකය භාවිත කිරීමට යෙදුමට ඇතුළු වන්න"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"දුරකථන ස්පීකරය"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 43923b8..2f76ef9 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Siete sa nedajú vyhľadávať"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Žiadne"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Uložené"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Vypnuté"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Zlyhanie konfigurácie adresy IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Mal by vydržať približne do <xliff:g id="TIME">%1$s</xliff:g> v závislosti od využitia"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Mal by vydržať približne <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Mal by vydržať približne do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Zostáva menej ako <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Zostáva menej ako <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Zostáva viac ako <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Vždy sa opýtať"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Dokiaľ túto funkciu nevypnete"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Teraz"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Prihlásiť aplikáciu, ktorá má používať aktualizovaný ovládač grafickej karty vo vývoji"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Reproduktor telefónu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 6d392fe..64124cb 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Ni mogoče iskati omrežij"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Brez"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Shranjeno"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Onemogočeno"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Konfiguracija IP-ja ni uspela"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Naprava bi morala glede na način uporabe delovati do približno <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Naprava bi morala delovati do približno <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Naprava bi morala delovati do približno <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Preostalo manj kot <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Preostanek: manj kot <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Preostali čas delovanja: manj kot <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Vedno vprašaj"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Dokler ne izklopite"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Pravkar"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Omogočena aplikacija za uporabo posodobljenega grafičnega gonilnika pri razvoju"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Zvočnik telefona"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index e05a019..25d575e 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Nuk mund të skanojë për rrjete"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Asnjë"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"U ruajt"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Të çaktivizuara"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Dështim në konfigurimin e IP-së"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Duhet të zgjasë deri në rreth <xliff:g id="TIME">%1$s</xliff:g> bazuar në përdorimin tënd"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Duhet të zgjasë deri në rreth <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Duhet të zgjasë deri në rreth <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Deri në <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Më pak se <xliff:g id="THRESHOLD">%1$s</xliff:g> të mbetura"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Mbeten më pak se <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mbeten më shumë se <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pyet çdo herë"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Deri sa ta çaktivizosh"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Pikërisht tani"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Prano aplikacionin për të përdorur drejtuesin e përditësuar të grafikës që është në zhvillim"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Altoparlanti i telefonit"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 371b909..b58b47c 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Није могуће скенирати мреже"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Нема"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Сачувано"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Онемогућено"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP конфигурација је отказала"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Трајаће приближно до <xliff:g id="TIME">%1$s</xliff:g> на основу коришћења"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Трајаће приближно до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Трајаће приближно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Преостало је мање од <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Преостало је мање од <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Преостало је више од <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -448,4 +450,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Увек питај"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Док не искључите"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Управо"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Омогући апликацију за коришћење управљачког програма графичке катице у развоју"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Звучник телефона"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index e6872bb..7198b84 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Det går inte att söka efter nätverk"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Ingen"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Sparat"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Inaktiverad"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP-konfigurationsfel"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Bör räcka ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g> utifrån din användning"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Bör räcka ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Bör räcka ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Till kl. <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Mindre än <xliff:g id="THRESHOLD">%1$s</xliff:g> återstår"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Mindre än <xliff:g id="THRESHOLD">%1$s</xliff:g> återstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mer än <xliff:g id="TIME_REMAINING">%1$s</xliff:g> återstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Fråga varje gång"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Tills du inaktiverar funktionen"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Nyss"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Välj om appen ska använda den uppdaterade grafikdrivrutinen under utveckling"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Mobilens högtalare"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 23efb91..657b54f 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Haiwezi kutambaza mitandao"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Hamna"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Imehifadhiwa"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Imezimwa"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Haikuweza Kusanidi IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Inapaswa kudumu hadi <xliff:g id="TIME">%1$s</xliff:g> kulingana na jinsi unavyoitumia"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Inapaswa kudumu kwa takribani <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Inapaswa kudumu hadi <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Hadi <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Zimesalia chini ya <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Zimesalia chini ya <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Zimesalia zaidi ya <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Uliza kila wakati"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Hadi utakapoizima"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Sasa hivi"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Chagua programu itakayotumia kiendeshaji cha michoro kilichosasishwa katika hatua ya kusanidi"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Spika ya simu"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index 53ba738..59b42d8 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"நெட்வொர்க்குகளுக்கு ஸ்கேன் செய்யப்படவில்லை"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"ஏதுமில்லை"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"சேமிக்கப்பட்டது"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"முடக்கப்பட்டது"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP உள்ளமைவில் தோல்வி"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"நீங்கள் பயன்படுத்துவதன் அடிப்படையில் <xliff:g id="TIME">%1$s</xliff:g> வரை உபயோகிக்க முடியும்"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"<xliff:g id="TIME">%1$s</xliff:g> வரை பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"<xliff:g id="TIME">%1$s</xliff:g> வரை பயன்படுத்த முடியும்"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> வரை"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>க்கும் குறைவாகவே பயன்படுத்த முடியும்"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>க்கும் குறைவாகவே பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>க்கும் மேல் பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ஒவ்வொரு முறையும் கேள்"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"ஆஃப் செய்யும் வரை"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"சற்றுமுன்"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"உருவாக்கத்திலுள்ள புதுப்பிக்கப்பட்ட கிராஃபிக்ஸ் டிரைவரைப் பயன்படுத்த ஆப்ஸைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"மொபைல் ஸ்பீக்கர்"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index c8c6b4c..af233da 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"నెట్‌వర్క్‌ల కోసం స్కాన్ చేయడం సాధ్యపడదు"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"ఏదీ లేదు"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"సేవ్ చేయబడింది"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"నిలిపివేయబడింది"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP కాన్ఫిగరేషన్ వైఫల్యం"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"మీ వినియోగం ఆధారంగా దాదాపు <xliff:g id="TIME">%1$s</xliff:g> వరకు ఉండాలి"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"దాదాపు <xliff:g id="TIME">%1$s</xliff:g> వరకు ఉండాలి (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"దాదాపు <xliff:g id="TIME">%1$s</xliff:g> వరకు ఉండాలి"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> వరకు"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> కంటే తక్కువ సమయం మిగిలి ఉంది"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> కంటే తక్కువ సమయం మిగిలి ఉంది (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> కంటే ఎక్కువ సమయం మిగిలి ఉంది (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ప్రతిసారి అడుగు"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"మీరు ఆఫ్‌ చేసే వరకు"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ఇప్పుడే"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"అభివృద్దిలో అప్‌డేట్‌ చేసిన గ్రాఫిక్ డ్రైవర్‌ను ఉపయోగించడానికి యాప్‌ని ప్రారంభించండి"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ఫోన్ స్పీకర్"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index d293d59..636c3f2 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ไม่สามารถสแกนหาเครือข่าย"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"ไม่มี"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"บันทึกแล้ว"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"ปิดอยู่"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"การกำหนดค่า IP ล้มเหลว"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"น่าจะใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g> เมื่อดูจากการใช้งานของคุณ"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"น่าจะใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"น่าจะใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"จนถึง <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"เหลืออีกไม่ถึง <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"เหลือเวลาอีกไม่ถึง <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"เหลือเวลามากกว่า <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ถามทุกครั้ง"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"จนกว่าคุณจะปิด"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"เมื่อสักครู่"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"เลือกใช้แอปเพื่อใช้ไดรเวอร์กราฟิกที่อัปเดตในการพัฒนา"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"ลำโพงโทรศัพท์"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 9da4561..1bcc36a 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Hindi makapag-scan ng mga network"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Wala"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Na-save"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Naka-disable"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Pagkabigo ng Configuration ng IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Tatagal dapat nang hanggang humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> batay sa iyong paggamit"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Tatagal dapat nang hanggang humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Tatagal hanggang mga <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Hanggang <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Wala nang <xliff:g id="THRESHOLD">%1$s</xliff:g> ang natitira"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Wala nang <xliff:g id="THRESHOLD">%1$s</xliff:g> ang natitira (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mahigit <xliff:g id="TIME_REMAINING">%1$s</xliff:g> pa ang natitira (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Magtanong palagi"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Hanggang sa i-off mo"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Ngayon lang"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"App sa pag-opt in para magamit ang na-update na graphics driver na ginagawa"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Speaker ng telepono"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 2d5cd7f..ff669f6 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Ağlar taranamıyor"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Yok"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Kaydedildi"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Devre dışı"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP Yapılandırması Hatası"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Kullanımınıza göre saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilmelidir"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilmelidir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilmelidir"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Şu saate kadar: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"En fazla <xliff:g id="THRESHOLD">%1$s</xliff:g> kaldı"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"En çok <xliff:g id="THRESHOLD">%1$s</xliff:g> kaldı (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"En az <xliff:g id="TIME_REMAINING">%1$s</xliff:g> kaldı (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Her zaman sor"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Siz kapatana kadar"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Az önce"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Güncellenmiş grafik sürücüsünü geliştirme ortamında kullanmak için uygulamayı kaydedin"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefon hoparlörü"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index 512ea86..2ded8c1 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Неможливо здійснити сканування мереж"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Немає"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Збережено"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Вимкнено"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Помилка конфігурації IP-адреси"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"На основі даних про використання, вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Залишилося менше ніж <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Залишилося менше ніж <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Залишилося понад <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -449,4 +451,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Запитувати щоразу"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Доки ви не вимкнете"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Щойно"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Вибраний додаток, який використовуватиме оновлений графічний драйвер під час розробки"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Динамік телефона"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 84ad3ed..7dc4690 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"نیٹ ورکس کیلئے اسکین نہيں کر سکتے ہیں"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"کوئی نہیں"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"محفوظ کردیا گیا"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"غیر فعال"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"‏IP کنفیگریشن کی ناکامی"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"آپ کے استعمال کی بنیاد پر تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> تک"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> سے کم باقی ہے"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> سے کم باقی ہے (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> سے زیادہ باقی ہے (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ہر بار پوچھیں"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"یہاں تک کہ آپ آف کر دیں"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"ابھی ابھی"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"ڈیولپمنٹ میں اپ ڈیٹ کردہ گرافکس ڈرائیور کو استعمال کرنے کے لیے ایپ آپٹ ان کریں"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"فون اسپیکر"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index af2ada5..5f92c9a 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Tarmoqlarni tekshirib chiqishni iloji bo‘lmadi"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Hech qanday"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Saqlandi"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"O‘chiq"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP manzilini sozlab bo‘lmadi"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Joriy holatda taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"<xliff:g id="TIME">%1$s</xliff:g> gacha"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>dan kamroq vaqt qoldi"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>dan kamroq vaqt qoldi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>dan ko‘proq vaqt qoldi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Har safar so‘ralsin"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Bekor qilinmaguncha"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Hozir"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Ilova yangilangan grafik drayverdan (hali ishlov jarayonida) foydalanadi"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Telefon karnayi"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index f454127..eb10fb1 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Không thể dò tìm mạng"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Không"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Đã lưu"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Đã tắt"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Lỗi cấu hình IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Sẽ hết pin cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g> dựa trên mức sử dụng của bạn"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Sẽ hết pin cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Sẽ hết pin cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Cho đến <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Còn lại không đến <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Còn lại không đến <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Còn lại hơn <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Luôn hỏi"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Cho đến khi bạn tắt"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Vừa xong"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Chọn ứng dụng để sử dụng trình điều khiển đồ họa được cập nhật trong giai đoạn phát triển"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Loa điện thoại"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 10a20be..7b14138 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"无法扫描网络"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"无"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"已保存"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"已停用"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP 配置失败"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"根据您的使用情况,估计大约还能用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"目前电量为 <xliff:g id="LEVEL">%2$s</xliff:g>,估计大约还能用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"估计大约还能用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"直到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"剩余电池续航时间不到 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"电量剩余使用时间不到 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"电量剩余使用时间超过 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"每次都询问"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"直到您将其关闭"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"刚刚"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"为应用启用更新后的显卡驱动,以在开发过程中使用"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"手机扬声器"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 1510545..48b6959 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"無法掃瞄網絡"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"無"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"已儲存"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"已停用"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP 設定失敗"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"根據您的使用情況,電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"還可用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"剩餘電量時間少於 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"還有少於 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"還有超過 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"每次都詢問"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"直至您關閉為止"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"剛剛"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"請選取應用程式,以在開發階段使用更新的顯示卡驅動程式"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"手機喇叭"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index 90c0d80..684569b 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"無法掃描網路"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"無"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"已儲存"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"已停用"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"IP 設定失敗"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"根據你的使用情形,預估可持續使用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"目前電量 <xliff:g id="LEVEL">%2$s</xliff:g>,預估還能持續使用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"預估還能持續使用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"還能持續使用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"電池可用時間不到 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"電池可用時間不到 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"電池可用時間超過 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"每次都詢問"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"直到你關閉為止"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"剛剛"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"選取要在開發階段使用最新版繪圖驅動程式的應用程式"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"手機喇叭"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index e4f9f4d7..d107a5a 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -21,6 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Ayikwazi ukuhlola amanethiwekhi"</string>
+    <string name="wifi_security_none" msgid="7985461072596594400">"Lutho"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Kulondoloziwe"</string>
     <string name="wifi_disabled_generic" msgid="4259794910584943386">"Akusebenzi"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Ukwehluleka kokulungiswa kwe-IP"</string>
@@ -374,6 +375,7 @@
     <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Kumele ihlale cishe kube ngu-<xliff:g id="TIME">%1$s</xliff:g> kusukela ekusetshenzisweni kwakho"</string>
     <string name="power_discharge_by" msgid="6453537733650125582">"Kumele ihlale cishe kube ngu-<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="107616694963545745">"Kumele ihlale cishe kube ngu-<xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Kuze kube ngu-<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Kusele okungaphansi kunokungu-<xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Ngaphansi kuka-<xliff:g id="THRESHOLD">%1$s</xliff:g> osele (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Ngaphezu kuka-<xliff:g id="TIME_REMAINING">%1$s</xliff:g> osele (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -447,4 +449,6 @@
     <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Buza njalo"</string>
     <string name="zen_mode_forever" msgid="2704305038191592967">"Uze uvale isikrini"</string>
     <string name="time_unit_just_now" msgid="6363336622778342422">"Khona manje"</string>
+    <string name="updated_gfx_driver_dev_opt_in_app_summary" msgid="5309913444094165199">"Uhlelo lokusebenza lokukhetha ukungena olungasebenzisa idrayivu yamagrafikhi ekuthuthukiseni"</string>
+    <string name="media_transfer_phone_device_name" msgid="1003823744105758574">"Isipikha sefoni"</string>
 </resources>
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
index d6c6491..9270d13 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
@@ -54,18 +54,17 @@
     private final Context mContext;
     private final BluetoothAdapter mLocalAdapter;
     private final LocalBluetoothProfileManager mProfileManager;
+    private final Object mProfileLock = new Object();
     BluetoothDevice mDevice;
     private long mHiSyncId;
     // Need this since there is no method for getting RSSI
     short mRssi;
     // mProfiles and mRemovedProfiles does not do swap() between main and sub device. It is
     // because current sub device is only for HearingAid and its profile is the same.
-    private final List<LocalBluetoothProfile> mProfiles =
-            Collections.synchronizedList(new ArrayList<>());
+    private final List<LocalBluetoothProfile> mProfiles = new ArrayList<>();
 
     // List of profiles that were previously in mProfiles, but have been removed
-    private final List<LocalBluetoothProfile> mRemovedProfiles =
-            Collections.synchronizedList(new ArrayList<>());
+    private final List<LocalBluetoothProfile> mRemovedProfiles = new ArrayList<>();
 
     // Device supports PANU but not NAP: remove PanProfile after device disconnects from NAP
     private boolean mLocalNapRoleConnected;
@@ -74,7 +73,7 @@
 
     private int mMessageRejectionCount;
 
-    private final Collection<Callback> mCallbacks = new ArrayList<Callback>();
+    private final Collection<Callback> mCallbacks = new ArrayList<>();
 
     // How many times user should reject the connection to make the choice persist.
     private final static int MESSAGE_REJECTION_COUNT_LIMIT_TO_PERSIST = 2;
@@ -134,36 +133,42 @@
             }
             return;
         }
-        if (newProfileState == BluetoothProfile.STATE_CONNECTED) {
-            if (profile instanceof MapProfile) {
-                profile.setPreferred(mDevice, true);
-            }
-            if (!mProfiles.contains(profile)) {
-                mRemovedProfiles.remove(profile);
-                mProfiles.add(profile);
-                if (profile instanceof PanProfile &&
-                        ((PanProfile) profile).isLocalRoleNap(mDevice)) {
-                    // Device doesn't support NAP, so remove PanProfile on disconnect
-                    mLocalNapRoleConnected = true;
+
+        synchronized (mProfileLock) {
+            if (newProfileState == BluetoothProfile.STATE_CONNECTED) {
+                if (profile instanceof MapProfile) {
+                    profile.setPreferred(mDevice, true);
                 }
+                if (!mProfiles.contains(profile)) {
+                    mRemovedProfiles.remove(profile);
+                    mProfiles.add(profile);
+                    if (profile instanceof PanProfile
+                            && ((PanProfile) profile).isLocalRoleNap(mDevice)) {
+                        // Device doesn't support NAP, so remove PanProfile on disconnect
+                        mLocalNapRoleConnected = true;
+                    }
+                }
+            } else if (profile instanceof MapProfile
+                    && newProfileState == BluetoothProfile.STATE_DISCONNECTED) {
+                profile.setPreferred(mDevice, false);
+            } else if (mLocalNapRoleConnected && profile instanceof PanProfile
+                    && ((PanProfile) profile).isLocalRoleNap(mDevice)
+                    && newProfileState == BluetoothProfile.STATE_DISCONNECTED) {
+                Log.d(TAG, "Removing PanProfile from device after NAP disconnect");
+                mProfiles.remove(profile);
+                mRemovedProfiles.add(profile);
+                mLocalNapRoleConnected = false;
             }
-        } else if (profile instanceof MapProfile &&
-                newProfileState == BluetoothProfile.STATE_DISCONNECTED) {
-            profile.setPreferred(mDevice, false);
-        } else if (mLocalNapRoleConnected && profile instanceof PanProfile &&
-                ((PanProfile) profile).isLocalRoleNap(mDevice) &&
-                newProfileState == BluetoothProfile.STATE_DISCONNECTED) {
-            Log.d(TAG, "Removing PanProfile from device after NAP disconnect");
-            mProfiles.remove(profile);
-            mRemovedProfiles.add(profile);
-            mLocalNapRoleConnected = false;
         }
+
         fetchActiveDevices();
     }
 
     public void disconnect() {
-        for (LocalBluetoothProfile profile : mProfiles) {
-            disconnect(profile);
+        synchronized (mProfileLock) {
+            for (LocalBluetoothProfile profile : mProfiles) {
+                disconnect(profile);
+            }
         }
         // Disconnect  PBAP server in case its connected
         // This is to ensure all the profiles are disconnected as some CK/Hs do not
@@ -203,6 +208,10 @@
         mHiSyncId = id;
     }
 
+    public boolean isHearingAidDevice() {
+        return mHiSyncId != BluetoothHearingAid.HI_SYNC_ID_INVALID;
+    }
+
     void onBondingDockConnect() {
         // Attempt to connect if UUIDs are available. Otherwise,
         // we will connect when the ACTION_UUID intent arrives.
@@ -210,32 +219,35 @@
     }
 
     private void connectWithoutResettingTimer(boolean connectAllProfiles) {
-        // Try to initialize the profiles if they were not.
-        if (mProfiles.isEmpty()) {
-            // if mProfiles is empty, then do not invoke updateProfiles. This causes a race
-            // condition with carkits during pairing, wherein RemoteDevice.UUIDs have been updated
-            // from bluetooth stack but ACTION.uuid is not sent yet.
-            // Eventually ACTION.uuid will be received which shall trigger the connection of the
-            // various profiles
-            // If UUIDs are not available yet, connect will be happen
-            // upon arrival of the ACTION_UUID intent.
-            Log.d(TAG, "No profiles. Maybe we will connect later");
-            return;
-        }
+        synchronized (mProfileLock) {
+            // Try to initialize the profiles if they were not.
+            if (mProfiles.isEmpty()) {
+                // if mProfiles is empty, then do not invoke updateProfiles. This causes a race
+                // condition with carkits during pairing, wherein RemoteDevice.UUIDs have been
+                // updated from bluetooth stack but ACTION.uuid is not sent yet.
+                // Eventually ACTION.uuid will be received which shall trigger the connection of the
+                // various profiles
+                // If UUIDs are not available yet, connect will be happen
+                // upon arrival of the ACTION_UUID intent.
+                Log.d(TAG, "No profiles. Maybe we will connect later");
+                return;
+            }
 
-        int preferredProfiles = 0;
-        for (LocalBluetoothProfile profile : mProfiles) {
-            if (connectAllProfiles ? profile.accessProfileEnabled() : profile.isAutoConnectable()) {
-                if (profile.isPreferred(mDevice)) {
-                    ++preferredProfiles;
-                    connectInt(profile);
+            int preferredProfiles = 0;
+            for (LocalBluetoothProfile profile : mProfiles) {
+                if (connectAllProfiles ? profile.accessProfileEnabled()
+                        : profile.isAutoConnectable()) {
+                    if (profile.isPreferred(mDevice)) {
+                        ++preferredProfiles;
+                        connectInt(profile);
+                    }
                 }
             }
-        }
-        if (BluetoothUtils.D) Log.d(TAG, "Preferred profiles = " + preferredProfiles);
+            if (BluetoothUtils.D) Log.d(TAG, "Preferred profiles = " + preferredProfiles);
 
-        if (preferredProfiles == 0) {
-            connectAutoConnectableProfiles();
+            if (preferredProfiles == 0) {
+                connectAutoConnectableProfiles();
+            }
         }
     }
 
@@ -244,10 +256,12 @@
             return;
         }
 
-        for (LocalBluetoothProfile profile : mProfiles) {
-            if (profile.isAutoConnectable()) {
-                profile.setPreferred(mDevice, true);
-                connectInt(profile);
+        synchronized (mProfileLock) {
+            for (LocalBluetoothProfile profile : mProfiles) {
+                if (profile.isAutoConnectable()) {
+                    profile.setPreferred(mDevice, true);
+                    connectInt(profile);
+                }
             }
         }
     }
@@ -515,14 +529,16 @@
      * @return Whether it is connected.
      */
     public boolean isConnected() {
-        for (LocalBluetoothProfile profile : mProfiles) {
-            int status = getProfileConnectionState(profile);
-            if (status == BluetoothProfile.STATE_CONNECTED) {
-                return true;
+        synchronized (mProfileLock) {
+            for (LocalBluetoothProfile profile : mProfiles) {
+                int status = getProfileConnectionState(profile);
+                if (status == BluetoothProfile.STATE_CONNECTED) {
+                    return true;
+                }
             }
-        }
 
-        return false;
+            return false;
+        }
     }
 
     public boolean isConnectedProfile(LocalBluetoothProfile profile) {
@@ -532,14 +548,16 @@
     }
 
     public boolean isBusy() {
-        for (LocalBluetoothProfile profile : mProfiles) {
-            int status = getProfileConnectionState(profile);
-            if (status == BluetoothProfile.STATE_CONNECTING
-                    || status == BluetoothProfile.STATE_DISCONNECTING) {
-                return true;
+        synchronized (mProfileLock) {
+            for (LocalBluetoothProfile profile : mProfiles) {
+                int status = getProfileConnectionState(profile);
+                if (status == BluetoothProfile.STATE_CONNECTING
+                        || status == BluetoothProfile.STATE_DISCONNECTING) {
+                    return true;
+                }
             }
+            return getBondState() == BluetoothDevice.BOND_BONDING;
         }
-        return getBondState() == BluetoothDevice.BOND_BONDING;
     }
 
     private boolean updateProfiles() {
@@ -554,8 +572,10 @@
          */
         processPhonebookAccess();
 
-        mProfileManager.updateProfiles(uuids, localUuids, mProfiles, mRemovedProfiles,
-                                       mLocalNapRoleConnected, mDevice);
+        synchronized (mProfileLock) {
+            mProfileManager.updateProfiles(uuids, localUuids, mProfiles, mRemovedProfiles,
+                    mLocalNapRoleConnected, mDevice);
+        }
 
         if (BluetoothUtils.D) {
             Log.e(TAG, "updating profiles for " + mDevice.getAliasName());
@@ -616,7 +636,9 @@
 
     void onBondingStateChanged(int bondState) {
         if (bondState == BluetoothDevice.BOND_NONE) {
-            mProfiles.clear();
+            synchronized (mProfileLock) {
+                mProfiles.clear();
+            }
             mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_UNKNOWN);
             mDevice.setMessageAccessPermission(BluetoothDevice.ACCESS_UNKNOWN);
             mDevice.setSimAccessPermission(BluetoothDevice.ACCESS_UNKNOWN);
@@ -646,9 +668,11 @@
     public List<LocalBluetoothProfile> getConnectableProfiles() {
         List<LocalBluetoothProfile> connectableProfiles =
                 new ArrayList<LocalBluetoothProfile>();
-        for (LocalBluetoothProfile profile : mProfiles) {
-            if (profile.accessProfileEnabled()) {
-                connectableProfiles.add(profile);
+        synchronized (mProfileLock) {
+            for (LocalBluetoothProfile profile : mProfiles) {
+                if (profile.accessProfileEnabled()) {
+                    connectableProfiles.add(profile);
+                }
             }
         }
         return connectableProfiles;
@@ -823,10 +847,12 @@
 
     public int getMaxConnectionState() {
         int maxState = BluetoothProfile.STATE_DISCONNECTED;
-        for (LocalBluetoothProfile profile : getProfiles()) {
-            int connectionStatus = getProfileConnectionState(profile);
-            if (connectionStatus > maxState) {
-                maxState = connectionStatus;
+        synchronized (mProfileLock) {
+            for (LocalBluetoothProfile profile : getProfiles()) {
+                int connectionStatus = getProfileConnectionState(profile);
+                if (connectionStatus > maxState) {
+                    maxState = connectionStatus;
+                }
             }
         }
         return maxState;
@@ -843,32 +869,34 @@
         boolean hfpConnected = true;         // HFP is connected
         boolean hearingAidConnected = true;  // Hearing Aid is connected
 
-        for (LocalBluetoothProfile profile : getProfiles()) {
-            int connectionStatus = getProfileConnectionState(profile);
+        synchronized (mProfileLock) {
+            for (LocalBluetoothProfile profile : getProfiles()) {
+                int connectionStatus = getProfileConnectionState(profile);
 
-            switch (connectionStatus) {
-                case BluetoothProfile.STATE_CONNECTING:
-                case BluetoothProfile.STATE_DISCONNECTING:
-                    return mContext.getString(
-                            BluetoothUtils.getConnectionStateSummary(connectionStatus));
+                switch (connectionStatus) {
+                    case BluetoothProfile.STATE_CONNECTING:
+                    case BluetoothProfile.STATE_DISCONNECTING:
+                        return mContext.getString(
+                                BluetoothUtils.getConnectionStateSummary(connectionStatus));
 
-                case BluetoothProfile.STATE_CONNECTED:
-                    profileConnected = true;
-                    break;
+                    case BluetoothProfile.STATE_CONNECTED:
+                        profileConnected = true;
+                        break;
 
-                case BluetoothProfile.STATE_DISCONNECTED:
-                    if (profile.isProfileReady()) {
-                        if ((profile instanceof A2dpProfile) ||
-                                (profile instanceof A2dpSinkProfile)) {
-                            a2dpConnected = false;
-                        } else if ((profile instanceof HeadsetProfile) ||
-                                (profile instanceof HfpClientProfile)) {
-                            hfpConnected = false;
-                        } else if (profile instanceof HearingAidProfile) {
-                            hearingAidConnected = false;
+                    case BluetoothProfile.STATE_DISCONNECTED:
+                        if (profile.isProfileReady()) {
+                            if (profile instanceof A2dpProfile
+                                    || profile instanceof A2dpSinkProfile) {
+                                a2dpConnected = false;
+                            } else if (profile instanceof HeadsetProfile
+                                    || profile instanceof HfpClientProfile) {
+                                hfpConnected = false;
+                            } else if (profile instanceof HearingAidProfile) {
+                                hearingAidConnected = false;
+                            }
                         }
-                    }
-                    break;
+                        break;
+                }
             }
         }
 
@@ -887,39 +915,24 @@
         int stringRes = R.string.bluetooth_pairing;
         //when profile is connected, information would be available
         if (profileConnected) {
+            // Set default string with battery level in device connected situation.
+            if (batteryLevelPercentageString != null) {
+                stringRes = R.string.bluetooth_battery_level;
+            }
+
+            // Set active string in following device connected situation.
+            //    1. Hearing Aid device active.
+            //    2. Headset device active with in-calling state.
+            //    3. A2DP device active without in-calling state.
             if (a2dpConnected || hfpConnected || hearingAidConnected) {
-                //contain battery information
-                if (batteryLevelPercentageString != null) {
-                    //device is in phone call
-                    if (com.android.settingslib.Utils.isAudioModeOngoingCall(mContext)) {
-                        if (mIsActiveDeviceHearingAid || mIsActiveDeviceHeadset) {
-                            stringRes = R.string.bluetooth_active_battery_level;
-                        } else {
-                            stringRes = R.string.bluetooth_battery_level;
-                        }
-                    } else {//device is not in phone call(ex. idle or playing media)
-                        //need to check if A2DP and HearingAid are exclusive
-                        if (mIsActiveDeviceHearingAid || mIsActiveDeviceA2dp) {
-                            stringRes = R.string.bluetooth_active_battery_level;
-                        } else {
-                            stringRes = R.string.bluetooth_battery_level;
-                        }
-                    }
-                } else {
-                    //no battery information
-                    if (com.android.settingslib.Utils.isAudioModeOngoingCall(mContext)) {
-                        if (mIsActiveDeviceHearingAid || mIsActiveDeviceHeadset) {
-                            stringRes = R.string.bluetooth_active_no_battery_level;
-                        }
-                    } else {
-                        if (mIsActiveDeviceHearingAid || mIsActiveDeviceA2dp) {
-                            stringRes = R.string.bluetooth_active_no_battery_level;
-                        }
-                    }
-                }
-            } else {//unknown profile with battery information
-                if (batteryLevelPercentageString != null) {
-                    stringRes = R.string.bluetooth_battery_level;
+                final boolean isOnCall =
+                        com.android.settingslib.Utils.isAudioModeOngoingCall(mContext);
+                if ((mIsActiveDeviceHearingAid)
+                        || (mIsActiveDeviceHeadset && isOnCall)
+                        || (mIsActiveDeviceA2dp && !isOnCall)) {
+                    stringRes = (batteryLevelPercentageString != null)
+                            ? R.string.bluetooth_active_battery_level
+                            : R.string.bluetooth_active_no_battery_level;
                 }
             }
         }
@@ -939,32 +952,34 @@
         boolean hfpNotConnected = false;        // HFP is preferred but not connected
         boolean hearingAidNotConnected = false; // Hearing Aid is preferred but not connected
 
-        for (LocalBluetoothProfile profile : getProfiles()) {
-            int connectionStatus = getProfileConnectionState(profile);
+        synchronized (mProfileLock) {
+            for (LocalBluetoothProfile profile : getProfiles()) {
+                int connectionStatus = getProfileConnectionState(profile);
 
-            switch (connectionStatus) {
-                case BluetoothProfile.STATE_CONNECTING:
-                case BluetoothProfile.STATE_DISCONNECTING:
-                    return mContext.getString(
-                            BluetoothUtils.getConnectionStateSummary(connectionStatus));
+                switch (connectionStatus) {
+                    case BluetoothProfile.STATE_CONNECTING:
+                    case BluetoothProfile.STATE_DISCONNECTING:
+                        return mContext.getString(
+                                BluetoothUtils.getConnectionStateSummary(connectionStatus));
 
-                case BluetoothProfile.STATE_CONNECTED:
-                    profileConnected = true;
-                    break;
+                    case BluetoothProfile.STATE_CONNECTED:
+                        profileConnected = true;
+                        break;
 
-                case BluetoothProfile.STATE_DISCONNECTED:
-                    if (profile.isProfileReady()) {
-                        if ((profile instanceof A2dpProfile) ||
-                                (profile instanceof A2dpSinkProfile)){
-                            a2dpNotConnected = true;
-                        } else if ((profile instanceof HeadsetProfile) ||
-                                (profile instanceof HfpClientProfile)) {
-                            hfpNotConnected = true;
-                        } else if (profile instanceof  HearingAidProfile) {
-                            hearingAidNotConnected = true;
+                    case BluetoothProfile.STATE_DISCONNECTED:
+                        if (profile.isProfileReady()) {
+                            if (profile instanceof A2dpProfile
+                                    || profile instanceof A2dpSinkProfile) {
+                                a2dpNotConnected = true;
+                            } else if (profile instanceof HeadsetProfile
+                                    || profile instanceof HfpClientProfile) {
+                                hfpNotConnected = true;
+                            } else if (profile instanceof HearingAidProfile) {
+                                hearingAidNotConnected = true;
+                            }
                         }
-                    }
-                    break;
+                        break;
+                }
             }
         }
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java
index f7f6589..3a62838 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java
@@ -50,7 +50,7 @@
     }
 
     public synchronized Collection<CachedBluetoothDevice> getCachedDevicesCopy() {
-        return new ArrayList<CachedBluetoothDevice>(mCachedDevices);
+        return new ArrayList<>(mCachedDevices);
     }
 
     public static boolean onDeviceDisappeared(CachedBluetoothDevice cachedDevice) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java b/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
index 8fac3fd..99d48d3 100644
--- a/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
+++ b/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
@@ -34,7 +34,7 @@
 
 import com.android.settingslib.R;
 
-import libcore.util.TimeZoneFinder;
+import libcore.timezone.TimeZoneFinder;
 
 import org.xmlpull.v1.XmlPullParserException;
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java b/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
index 92fd868..12b8efb 100644
--- a/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
+++ b/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
@@ -53,6 +53,8 @@
             "com.android.settings.category.ia.night_display";
     public static final String CATEGORY_PRIVACY =
             "com.android.settings.category.ia.privacy";
+    public static final String CATEGORY_ENTERPRISE_PRIVACY =
+            "com.android.settings.category.ia.enterprise_privacy";
 
     public static final Map<String, String> KEY_COMPAT_MAP;
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/ChartDataLoaderCompat.java b/packages/SettingsLib/src/com/android/settingslib/net/ChartDataLoaderCompat.java
deleted file mode 100644
index e9c5238..0000000
--- a/packages/SettingsLib/src/com/android/settingslib/net/ChartDataLoaderCompat.java
+++ /dev/null
@@ -1,152 +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.settingslib.net;
-
-import static android.net.NetworkStats.SET_DEFAULT;
-import static android.net.NetworkStats.SET_FOREGROUND;
-import static android.net.NetworkStats.TAG_NONE;
-import static android.net.NetworkStatsHistory.FIELD_RX_BYTES;
-import static android.net.NetworkStatsHistory.FIELD_TX_BYTES;
-import static android.text.format.DateUtils.HOUR_IN_MILLIS;
-
-import android.content.Context;
-import android.net.INetworkStatsSession;
-import android.net.NetworkStatsHistory;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
-import android.os.RemoteException;
-
-import androidx.loader.content.AsyncTaskLoader;
-
-import com.android.settingslib.AppItem;
-
-/**
- * Loader for historical chart data for both network and UID details.
- *
- * Deprecated in favor of {@link NetworkCycleChartDataLoader} and
- * {@link NetworkCycleDataForUidLoader}
- *
- * @deprecated
- */
-@Deprecated
-public class ChartDataLoaderCompat extends AsyncTaskLoader<ChartData> {
-    private static final String KEY_TEMPLATE = "template";
-    private static final String KEY_APP = "app";
-    private static final String KEY_FIELDS = "fields";
-
-    private final INetworkStatsSession mSession;
-    private final Bundle mArgs;
-
-    public static Bundle buildArgs(NetworkTemplate template, AppItem app) {
-        return buildArgs(template, app, FIELD_RX_BYTES | FIELD_TX_BYTES);
-    }
-
-    public static Bundle buildArgs(NetworkTemplate template, AppItem app, int fields) {
-        final Bundle args = new Bundle();
-        args.putParcelable(KEY_TEMPLATE, template);
-        args.putParcelable(KEY_APP, app);
-        args.putInt(KEY_FIELDS, fields);
-        return args;
-    }
-
-    public ChartDataLoaderCompat(Context context, INetworkStatsSession session, Bundle args) {
-        super(context);
-        mSession = session;
-        mArgs = args;
-    }
-
-    @Override
-    protected void onStartLoading() {
-        super.onStartLoading();
-        forceLoad();
-    }
-
-    @Override
-    public ChartData loadInBackground() {
-        final NetworkTemplate template = mArgs.getParcelable(KEY_TEMPLATE);
-        final AppItem app = mArgs.getParcelable(KEY_APP);
-        final int fields = mArgs.getInt(KEY_FIELDS);
-
-        try {
-            return loadInBackground(template, app, fields);
-        } catch (RemoteException e) {
-            // since we can't do much without history, and we don't want to
-            // leave with half-baked UI, we bail hard.
-            throw new RuntimeException("problem reading network stats", e);
-        }
-    }
-
-    private ChartData loadInBackground(NetworkTemplate template, AppItem app, int fields)
-            throws RemoteException {
-        final ChartData data = new ChartData();
-        data.network = mSession.getHistoryForNetwork(template, fields);
-
-        if (app != null) {
-            // load stats for current uid and template
-            final int size = app.uids.size();
-            for (int i = 0; i < size; i++) {
-                final int uid = app.uids.keyAt(i);
-                data.detailDefault = collectHistoryForUid(
-                        template, uid, SET_DEFAULT, data.detailDefault);
-                data.detailForeground = collectHistoryForUid(
-                        template, uid, SET_FOREGROUND, data.detailForeground);
-            }
-
-            if (size > 0) {
-                data.detail = new NetworkStatsHistory(data.detailForeground.getBucketDuration());
-                data.detail.recordEntireHistory(data.detailDefault);
-                data.detail.recordEntireHistory(data.detailForeground);
-            } else {
-                data.detailDefault = new NetworkStatsHistory(HOUR_IN_MILLIS);
-                data.detailForeground = new NetworkStatsHistory(HOUR_IN_MILLIS);
-                data.detail = new NetworkStatsHistory(HOUR_IN_MILLIS);
-            }
-        }
-
-        return data;
-    }
-
-    @Override
-    protected void onStopLoading() {
-        super.onStopLoading();
-        cancelLoad();
-    }
-
-    @Override
-    protected void onReset() {
-        super.onReset();
-        cancelLoad();
-    }
-
-    /**
-     * Collect {@link NetworkStatsHistory} for the requested UID, combining with
-     * an existing {@link NetworkStatsHistory} if provided.
-     */
-    private NetworkStatsHistory collectHistoryForUid(
-            NetworkTemplate template, int uid, int set, NetworkStatsHistory existing)
-            throws RemoteException {
-        final NetworkStatsHistory history = mSession.getHistoryForUid(
-                template, uid, set, TAG_NONE, FIELD_RX_BYTES | FIELD_TX_BYTES);
-
-        if (existing != null) {
-            existing.recordEntireHistory(history);
-            return existing;
-        } else {
-            return history;
-        }
-    }
-}
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
index 183d485..180b77e 100644
--- a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
@@ -32,30 +32,24 @@
 import android.net.INetworkStatsSession;
 import android.net.NetworkPolicy;
 import android.net.NetworkPolicyManager;
-import android.net.NetworkStatsHistory;
 import android.net.NetworkTemplate;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.text.format.DateUtils;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.util.Range;
 
 import com.android.internal.R;
-import com.android.internal.annotations.VisibleForTesting;
 
 import java.time.ZonedDateTime;
-import java.util.Date;
 import java.util.Iterator;
 import java.util.Locale;
 
 public class DataUsageController {
 
     private static final String TAG = "DataUsageController";
-    @VisibleForTesting
-    static final String DATA_USAGE_V2 = "settings_data_usage_v2";
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
     private static final int FIELDS = FIELD_RX_BYTES | FIELD_TX_BYTES;
     private static final StringBuilder PERIOD_BUILDER = new StringBuilder(50);
@@ -95,21 +89,6 @@
                 * mContext.getResources().getInteger(R.integer.default_data_warning_level_mb);
     }
 
-    @VisibleForTesting
-    @Deprecated
-    INetworkStatsSession getSession() {
-        if (mSession == null) {
-            try {
-                mSession = mStatsService.openSession();
-            } catch (RemoteException e) {
-                Log.w(TAG, "Failed to open stats session", e);
-            } catch (RuntimeException e) {
-                Log.w(TAG, "Failed to open stats session", e);
-            }
-        }
-        return mSession;
-    }
-
     public void setCallback(Callback callback) {
         mCallback = callback;
     }
@@ -149,13 +128,7 @@
             end = now;
             start = now - DateUtils.WEEK_IN_MILLIS * 4;
         }
-        final long totalBytes;
-        final long callStart = System.currentTimeMillis();
-        if (FeatureFlagUtils.isEnabled(mContext, DATA_USAGE_V2)) {
-            totalBytes = getUsageLevel(template, start, end);
-        } else {
-            totalBytes = getUsageLevel(template, start, end, now);
-        }
+        final long totalBytes = getUsageLevel(template, start, end);
         if (totalBytes < 0L) {
             return warn("no entry data");
         }
@@ -185,32 +158,7 @@
      * retrieving the data.
      */
     public long getHistoricalUsageLevel(NetworkTemplate template) {
-        if (FeatureFlagUtils.isEnabled(mContext, DATA_USAGE_V2)) {
-            return getUsageLevel(template, 0L /* start */, System.currentTimeMillis() /* end */);
-        } else {
-            final long now = System.currentTimeMillis();
-            return getUsageLevel(template, 0L /* start */, now /* end */, now);
-        }
-    }
-
-    @Deprecated
-    private long getUsageLevel(NetworkTemplate template, long start, long end, long now) {
-        final INetworkStatsSession session = getSession();
-        if (session != null) {
-            try {
-                final NetworkStatsHistory history =
-                    session.getHistoryForNetwork(template, FIELDS);
-                final NetworkStatsHistory.Entry entry = history.getValues(
-                        start, end, System.currentTimeMillis() /* now */, null /* recycle */);
-                if (entry != null) {
-                    return entry.rxBytes + entry.txBytes;
-                }
-                Log.w(TAG, "Failed to get data usage, no entry data");
-            } catch (RemoteException e) {
-                Log.w(TAG, "Failed to get data usage, remote call failed");
-            }
-        }
-        return -1L;
+        return getUsageLevel(template, 0L /* start */, System.currentTimeMillis() /* end */);
     }
 
     private long getUsageLevel(NetworkTemplate template, long start, long end) {
@@ -241,20 +189,6 @@
         return null;
     }
 
-    @Deprecated
-    private static String historyEntryToString(NetworkStatsHistory.Entry entry) {
-        return entry == null ? null : new StringBuilder("Entry[")
-                .append("bucketDuration=").append(entry.bucketDuration)
-                .append(",bucketStart=").append(entry.bucketStart)
-                .append(",activeTime=").append(entry.activeTime)
-                .append(",rxBytes=").append(entry.rxBytes)
-                .append(",rxPackets=").append(entry.rxPackets)
-                .append(",txBytes=").append(entry.txBytes)
-                .append(",txPackets=").append(entry.txPackets)
-                .append(",operations=").append(entry.operations)
-                .append(']').toString();
-    }
-
     private static String statsBucketToString(Bucket bucket) {
         return bucket == null ? null : new StringBuilder("Entry[")
             .append("bucketDuration=").append(bucket.getEndTimeStamp() - bucket.getStartTimeStamp())
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/SummaryForAllUidLoaderCompat.java b/packages/SettingsLib/src/com/android/settingslib/net/SummaryForAllUidLoaderCompat.java
deleted file mode 100644
index 82bb011..0000000
--- a/packages/SettingsLib/src/com/android/settingslib/net/SummaryForAllUidLoaderCompat.java
+++ /dev/null
@@ -1,87 +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.settingslib.net;
-
-import android.content.Context;
-import android.net.INetworkStatsSession;
-import android.net.NetworkStats;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
-import android.os.RemoteException;
-
-import androidx.loader.content.AsyncTaskLoader;
-
-/**
- * Deprecated in favor of {@link NetworkStatsDetailLoader}
- *
- * @deprecated
- */
-@Deprecated
-public class SummaryForAllUidLoaderCompat extends AsyncTaskLoader<NetworkStats> {
-    private static final String KEY_TEMPLATE = "template";
-    private static final String KEY_START = "start";
-    private static final String KEY_END = "end";
-
-    private final INetworkStatsSession mSession;
-    private final Bundle mArgs;
-
-    public static Bundle buildArgs(NetworkTemplate template, long start, long end) {
-        final Bundle args = new Bundle();
-        args.putParcelable(KEY_TEMPLATE, template);
-        args.putLong(KEY_START, start);
-        args.putLong(KEY_END, end);
-        return args;
-    }
-
-    public SummaryForAllUidLoaderCompat(Context context, INetworkStatsSession session,
-            Bundle args) {
-        super(context);
-        mSession = session;
-        mArgs = args;
-    }
-
-    @Override
-    protected void onStartLoading() {
-        super.onStartLoading();
-        forceLoad();
-    }
-
-    @Override
-    public NetworkStats loadInBackground() {
-        final NetworkTemplate template = mArgs.getParcelable(KEY_TEMPLATE);
-        final long start = mArgs.getLong(KEY_START);
-        final long end = mArgs.getLong(KEY_END);
-
-        try {
-            return mSession.getSummaryForAllUid(template, start, end, false);
-        } catch (RemoteException e) {
-            return null;
-        }
-    }
-
-    @Override
-    protected void onStopLoading() {
-        super.onStopLoading();
-        cancelLoad();
-    }
-
-    @Override
-    protected void onReset() {
-        super.onReset();
-        cancelLoad();
-    }
-}
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
index 22d5d83..4f81daf 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
@@ -154,8 +154,10 @@
     static final String KEY_CARRIER_NAME = "key_carrier_name";
     static final AtomicInteger sLastId = new AtomicInteger(0);
 
-    /**
-     * These values are matched in string arrays -- changes must be kept in sync
+    /*
+     * NOTE: These constants for security and PSK types are saved to the bundle in saveWifiState,
+     * and sent across IPC. The numeric values should remain stable, otherwise the changes will need
+     * to be synced with other unbundled users of this library.
      */
     public static final int SECURITY_NONE = 0;
     public static final int SECURITY_WEP = 1;
@@ -164,6 +166,7 @@
     public static final int SECURITY_OWE = 4;
     public static final int SECURITY_SAE = 5;
     public static final int SECURITY_EAP_SUITE_B = 6;
+    public static final int SECURITY_MAX_VAL = 7; // Has to be the last
 
     private static final int PSK_UNKNOWN = 0;
     private static final int PSK_WPA = 1;
diff --git a/packages/SettingsLib/tests/robotests/Android.mk b/packages/SettingsLib/tests/robotests/Android.mk
index d15a3ef..cfa067f 100644
--- a/packages/SettingsLib/tests/robotests/Android.mk
+++ b/packages/SettingsLib/tests/robotests/Android.mk
@@ -32,12 +32,13 @@
 
 include $(BUILD_PACKAGE)
 
-#############################################
-# SettingsLib Robolectric test target.      #
-#############################################
+############################################################
+# SettingsLib Robolectric test target.                     #
+############################################################
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := SettingsLibRoboTests
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
@@ -53,6 +54,9 @@
 
 LOCAL_MODULE_TAGS := optional
 
+# Generate test_config.properties
+include external/robolectric-shadows/gen_test_config.mk
+
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
 #############################################################
diff --git a/packages/SettingsLib/tests/robotests/config/robolectric.properties b/packages/SettingsLib/tests/robotests/config/robolectric.properties
index 6b5b8e5..fab7251 100644
--- a/packages/SettingsLib/tests/robotests/config/robolectric.properties
+++ b/packages/SettingsLib/tests/robotests/config/robolectric.properties
@@ -1,5 +1 @@
-manifest=frameworks/base/packages/SettingsLib/tests/robotests/AndroidManifest.xml
 sdk=NEWEST_SDK
-
-shadows=\
-   com.android.settingslib.testutils.shadow.ShadowXmlUtils
\ No newline at end of file
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/CustomEditTextPreferenceComaptTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/CustomEditTextPreferenceComaptTest.java
index 9ba9967..3a4e2e4 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/CustomEditTextPreferenceComaptTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/CustomEditTextPreferenceComaptTest.java
@@ -30,10 +30,11 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.util.ReflectionHelpers;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class CustomEditTextPreferenceComaptTest {
 
     @Mock
@@ -70,7 +71,7 @@
     }
 
     private static class TestPreference extends CustomEditTextPreferenceCompat {
-        public TestPreference(Context context) {
+        private TestPreference(Context context) {
             super(context);
         }
     }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/CustomEditTextPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/CustomEditTextPreferenceTest.java
index 9d7f59a..e94a06c 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/CustomEditTextPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/CustomEditTextPreferenceTest.java
@@ -30,10 +30,11 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.util.ReflectionHelpers;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class CustomEditTextPreferenceTest {
 
     @Mock
@@ -70,7 +71,7 @@
     }
 
     private static class TestPreference extends CustomEditTextPreference {
-        public TestPreference(Context context) {
+        private TestPreference(Context context) {
             super(context);
         }
     }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/DeviceInfoUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/DeviceInfoUtilsTest.java
index 19a916c..4e8af73 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/DeviceInfoUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/DeviceInfoUtilsTest.java
@@ -24,9 +24,10 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class DeviceInfoUtilsTest {
 
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java
index 36b70df..4d76331 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java
@@ -18,12 +18,13 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.R;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
@@ -36,20 +37,19 @@
 import android.provider.Settings;
 import android.view.MenuItem;
 
-import android.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
 /**
  * Tests for {@link HelpUtils}.
  */
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class HelpUtilsTest {
     private static final String TEST_HELP_URL = "intent:#Intent;action=com.android.test;end";
     private static final String PACKAGE_NAME_KEY = "package-name-key";
@@ -83,8 +83,6 @@
         when(mContext.getResources().getString(R.string.config_feedbackIntentNameKey))
                 .thenReturn(FEEDBACK_INTENT_NAME_KEY);
         when(mActivity.getPackageManager()).thenReturn(mPackageManager);
-
-
     }
 
     @Test
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java
index 88ac8ce..2b5a4e0 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedLockUtilsTest.java
@@ -25,8 +25,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.when;
 
@@ -44,11 +44,12 @@
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.Arrays;
 import java.util.Collections;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class RestrictedLockUtilsTest {
 
     @Mock
@@ -178,8 +179,7 @@
     public void checkIfKeyguardFeaturesAreDisabled_doesMatchAllowedFeature_unifiedManagedProfile() {
         UserInfo userInfo = setUpUser(mUserId, new ComponentName[] {mAdmin1});
         UserInfo profileInfo = setUpManagedProfile(mProfileId, new ComponentName[] {mAdmin2});
-        when(mUserManager.getProfiles(mUserId)).thenReturn(Arrays.asList(new UserInfo[] {
-                userInfo, profileInfo}));
+        when(mUserManager.getProfiles(mUserId)).thenReturn(Arrays.asList(userInfo, profileInfo));
 
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(mAdmin1, mUserId))
                 .thenReturn(KEYGUARD_DISABLE_FEATURES_NONE);
@@ -207,8 +207,7 @@
     public void checkIfKeyguardFeaturesAreDisabled_notMatchOtherFeatures_unifiedManagedProfile() {
         UserInfo userInfo = setUpUser(mUserId, new ComponentName[] {mAdmin1});
         UserInfo profileInfo = setUpManagedProfile(mProfileId, new ComponentName[] {mAdmin2});
-        when(mUserManager.getProfiles(mUserId)).thenReturn(Arrays.asList(new UserInfo[] {
-                userInfo, profileInfo}));
+        when(mUserManager.getProfiles(mUserId)).thenReturn(Arrays.asList(userInfo, profileInfo));
 
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(mAdmin1, mUserId))
                 .thenReturn(KEYGUARD_DISABLE_FEATURES_NONE);
@@ -231,8 +230,7 @@
     public void checkIfKeyguardFeaturesAreDisabled_onlyMatchesProfile_separateManagedProfile() {
         UserInfo userInfo = setUpUser(mUserId, new ComponentName[] {mAdmin1});
         UserInfo profileInfo = setUpManagedProfile(mProfileId, new ComponentName[] {mAdmin2});
-        when(mUserManager.getProfiles(mUserId)).thenReturn(Arrays.asList(new UserInfo[] {
-                userInfo, profileInfo}));
+        when(mUserManager.getProfiles(mUserId)).thenReturn(Arrays.asList(userInfo, profileInfo));
 
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(mAdmin1, mUserId))
                 .thenReturn(KEYGUARD_DISABLE_FEATURES_NONE);
@@ -268,8 +266,7 @@
     public void checkIfKeyguardFeaturesAreDisabled_onlyMatchesParent_profileParentPolicy() {
         UserInfo userInfo = setUpUser(mUserId, new ComponentName[] {mAdmin1});
         UserInfo profileInfo = setUpManagedProfile(mProfileId, new ComponentName[] {mAdmin2});
-        when(mUserManager.getProfiles(mUserId)).thenReturn(Arrays.asList(new UserInfo[] {
-                userInfo, profileInfo}));
+        when(mUserManager.getProfiles(mUserId)).thenReturn(Arrays.asList(userInfo, profileInfo));
 
         when(mProxy.getParentProfileInstance(any(DevicePolicyManager.class), any())
                 .getKeyguardDisabledFeatures(mAdmin2, mProfileId))
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedPreferenceHelperTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedPreferenceHelperTest.java
index 79d682d6..1b10c73 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedPreferenceHelperTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/RestrictedPreferenceHelperTest.java
@@ -16,7 +16,6 @@
 
 package com.android.settingslib;
 
-
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -35,8 +34,9 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class RestrictedPreferenceHelperTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/SettingsLibRobolectricTestRunner.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/SettingsLibRobolectricTestRunner.java
deleted file mode 100644
index ede248b..0000000
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/SettingsLibRobolectricTestRunner.java
+++ /dev/null
@@ -1,76 +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.settingslib;
-
-import android.annotation.NonNull;
-
-import org.junit.runners.model.InitializationError;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-import org.robolectric.manifest.AndroidManifest;
-import org.robolectric.res.Fs;
-import org.robolectric.res.ResourcePath;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-
-public class SettingsLibRobolectricTestRunner extends RobolectricTestRunner {
-
-    public SettingsLibRobolectricTestRunner(Class<?> testClass) throws InitializationError {
-        super(testClass);
-    }
-
-    /**
-     * We are going to create our own custom manifest so we can add multiple resource paths to it.
-     */
-    @Override
-    protected AndroidManifest getAppManifest(Config config) {
-        try {
-            // Using the manifest file's relative path, we can figure out the application directory.
-            final URL appRoot =
-                new URL("file:frameworks/base/packages/SettingsLib/tests/robotests");
-            final URL manifestPath = new URL(appRoot, "AndroidManifest.xml");
-            final URL resDir = new URL(appRoot, "res");
-            final URL assetsDir = new URL(appRoot, "assets");
-
-            return new AndroidManifest(Fs.fromURL(manifestPath), Fs.fromURL(resDir),
-                Fs.fromURL(assetsDir), "com.android.settingslib") {
-                @Override
-                public List<ResourcePath> getIncludedResourcePaths() {
-                    final List<ResourcePath> paths = super.getIncludedResourcePaths();
-                    paths.add(resourcePath("file:frameworks/base/packages/SettingsLib/AppPreference/res"));
-                    paths.add(resourcePath("file:frameworks/base/packages/SettingsLib/HelpUtils/res"));
-                    paths.add(resourcePath("file:frameworks/base/packages/SettingsLib/RestrictedLockUtils/res"));
-                    paths.add(resourcePath("file:frameworks/base/packages/SettingsLib/res"));
-                    paths.add(resourcePath("file:frameworks/base/core/res/res"));
-                    paths.add(resourcePath("file:out/soong/.intermediates/prebuilts/sdk/current/androidx/androidx.appcompat_appcompat-nodeps/android_common/aar/res/"));
-                    return paths;
-                }
-            };
-        } catch (MalformedURLException e) {
-            throw new RuntimeException("SettingsLibRobolectricTestRunner failure", e);
-        }
-    }
-
-    private static ResourcePath resourcePath(@NonNull String spec) {
-        try {
-            return new ResourcePath(null, Fs.fromURL(new URL(spec)), null);
-        } catch (MalformedURLException e) {
-            throw new RuntimeException("SettingsLibRobolectricTestRunner failure", e);
-        }
-    }
-}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/TetherUtilTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/TetherUtilTest.java
index e70baa1..0ca7791 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/TetherUtilTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/TetherUtilTest.java
@@ -32,12 +32,13 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
 import java.util.ArrayList;
 import java.util.List;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class TetherUtilTest {
 
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/TwoTargetPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/TwoTargetPreferenceTest.java
index c0b69f2..3f0ba13 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/TwoTargetPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/TwoTargetPreferenceTest.java
@@ -36,9 +36,10 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class TwoTargetPreferenceTest {
 
     private PreferenceViewHolder mViewHolder;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java
index 47e51f3..594d767 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java
@@ -22,12 +22,11 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.robolectric.Shadows.shadowOf;
 
 import android.app.ActivityManager;
 import android.content.ContentResolver;
@@ -50,20 +49,18 @@
 import org.mockito.ArgumentMatchers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowAudioManager;
 import org.robolectric.shadows.ShadowSettings;
 
 import java.util.HashMap;
 import java.util.Map;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
-@Config(shadows = {
-            UtilsTest.ShadowSecure.class,
-            UtilsTest.ShadowLocationManager.class})
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {UtilsTest.ShadowSecure.class, UtilsTest.ShadowLocationManager.class})
 public class UtilsTest {
     private static final double[] TEST_PERCENTAGES = {0, 0.4, 0.5, 0.6, 49, 49.3, 49.8, 50, 100};
     private static final String PERCENTAGE_0 = "0%";
@@ -72,7 +69,7 @@
     private static final String PERCENTAGE_50 = "50%";
     private static final String PERCENTAGE_100 = "100%";
 
-    private ShadowAudioManager mShadowAudioManager;
+    private AudioManager mAudioManager;
     private Context mContext;
     @Mock
     private LocationManager mLocationManager;
@@ -85,7 +82,7 @@
         mContext = spy(RuntimeEnvironment.application);
         when(mContext.getSystemService(Context.LOCATION_SERVICE)).thenReturn(mLocationManager);
         ShadowSecure.reset();
-        mShadowAudioManager = shadowOf(mContext.getSystemService(AudioManager.class));
+        mAudioManager = mContext.getSystemService(AudioManager.class);
     }
 
     @Test
@@ -205,28 +202,28 @@
 
     @Test
     public void isAudioModeOngoingCall_modeInCommunication_returnTrue() {
-        mShadowAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
+        mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
 
         assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue();
     }
 
     @Test
     public void isAudioModeOngoingCall_modeInCall_returnTrue() {
-        mShadowAudioManager.setMode(AudioManager.MODE_IN_CALL);
+        mAudioManager.setMode(AudioManager.MODE_IN_CALL);
 
         assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue();
     }
 
     @Test
     public void isAudioModeOngoingCall_modeRingtone_returnTrue() {
-        mShadowAudioManager.setMode(AudioManager.MODE_RINGTONE);
+        mAudioManager.setMode(AudioManager.MODE_RINGTONE);
 
         assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue();
     }
 
     @Test
     public void isAudioModeOngoingCall_modeNormal_returnFalse() {
-        mShadowAudioManager.setMode(AudioManager.MODE_NORMAL);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
 
         assertThat(Utils.isAudioModeOngoingCall(mContext)).isFalse();
     }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/accessibility/AccessibilityUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/accessibility/AccessibilityUtilsTest.java
index 152d024..44fdaec 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/accessibility/AccessibilityUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/accessibility/AccessibilityUtilsTest.java
@@ -23,14 +23,13 @@
 import android.os.UserHandle;
 import android.provider.Settings;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class AccessibilityUtilsTest {
 
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java
index b307b47..ccec175a 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java
@@ -41,7 +41,6 @@
 import android.os.UserHandle;
 import android.util.IconDrawableFactory;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.applications.ApplicationsState.AppEntry;
 import com.android.settingslib.applications.ApplicationsState.Callbacks;
 import com.android.settingslib.applications.ApplicationsState.Session;
@@ -55,6 +54,7 @@
 import org.mockito.Captor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
@@ -67,7 +67,7 @@
 import java.util.List;
 import java.util.UUID;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowUserManager.class,
         ApplicationsStateRoboTest.ShadowIconDrawableFactory.class,
         ApplicationsStateRoboTest.ShadowPackageManager.class})
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/DefaultAppInfoTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/DefaultAppInfoTest.java
index a92a2dd..50fad70 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/DefaultAppInfoTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/DefaultAppInfoTest.java
@@ -18,8 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyString;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -32,16 +32,15 @@
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class DefaultAppInfoTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ServiceListingTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ServiceListingTest.java
index d8c459c..f7fd25b 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ServiceListingTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ServiceListingTest.java
@@ -26,14 +26,13 @@
 import android.content.ComponentName;
 import android.provider.Settings;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class ServiceListingTest {
 
     private static final String TEST_SETTING = "testSetting";
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java
index 29831a8..c555cbe 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java
@@ -17,8 +17,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -32,7 +32,6 @@
 import android.content.res.Resources;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -40,26 +39,27 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowBluetoothAdapter.class})
 public class A2dpProfileTest {
 
     @Mock
-    Context mContext;
+    private Context mContext;
     @Mock
-    CachedBluetoothDeviceManager mDeviceManager;
+    private CachedBluetoothDeviceManager mDeviceManager;
     @Mock
-    LocalBluetoothProfileManager mProfileManager;
+    private LocalBluetoothProfileManager mProfileManager;
     @Mock
-    BluetoothDevice mDevice;
+    private BluetoothDevice mDevice;
     @Mock
-    BluetoothA2dp mBluetoothA2dp;
-    BluetoothProfile.ServiceListener mServiceListener;
+    private BluetoothA2dp mBluetoothA2dp;
+    private BluetoothProfile.ServiceListener mServiceListener;
 
-    A2dpProfile mProfile;
+    private A2dpProfile mProfile;
     private ShadowBluetoothAdapter mShadowBluetoothAdapter;
 
     @Before
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java
index 274fff8..976445e 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java
@@ -18,18 +18,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothA2dpSink;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothA2dpSink;
 import android.bluetooth.BluetoothProfile;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -37,11 +33,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowBluetoothAdapter.class})
 public class A2dpSinkProfileTest {
 
@@ -52,8 +49,6 @@
     @Mock
     private BluetoothA2dpSink mService;
     @Mock
-    private CachedBluetoothDevice mCachedBluetoothDevice;
-    @Mock
     private BluetoothDevice mBluetoothDevice;
     private BluetoothProfile.ServiceListener mServiceListener;
     private A2dpSinkProfile mProfile;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothEventManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothEventManagerTest.java
index c147d5e..27b8dfc 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothEventManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothEventManagerTest.java
@@ -29,20 +29,18 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.os.Handler;
 import android.os.UserHandle;
 import android.telephony.TelephonyManager;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class BluetoothEventManagerTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
index 07310bd..0eb6de9 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/BluetoothUtilsTest.java
@@ -21,14 +21,14 @@
 import android.graphics.drawable.Drawable;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.graph.BluetoothDeviceLayerDrawable;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class BluetoothUtilsTest {
 
     @Test
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 9c75491..47b1210 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
@@ -28,18 +28,17 @@
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
 import java.util.Collection;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class CachedBluetoothDeviceManagerTest {
     private final static String DEVICE_NAME_1 = "TestName_1";
     private final static String DEVICE_NAME_2 = "TestName_2";
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 41aadd6..4e5d38a 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
@@ -17,32 +17,29 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.robolectric.Shadows.shadowOf;
 
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.media.AudioManager;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowAudioManager;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class CachedBluetoothDeviceTest {
     private final static String DEVICE_NAME = "TestName";
     private final static String DEVICE_ALIAS = "TestAlias";
@@ -67,7 +64,7 @@
     @Mock
     private BluetoothDevice mSubDevice;
     private CachedBluetoothDevice mCachedDevice;
-    private ShadowAudioManager mShadowAudioManager;
+    private AudioManager mAudioManager;
     private Context mContext;
     private int mBatteryLevel = BluetoothDevice.BATTERY_LEVEL_UNKNOWN;
 
@@ -75,7 +72,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mShadowAudioManager = shadowOf(mContext.getSystemService(AudioManager.class));
+        mAudioManager = mContext.getSystemService(AudioManager.class);
         when(mDevice.getAddress()).thenReturn(DEVICE_ADDRESS);
         when(mHfpProfile.isProfileReady()).thenReturn(true);
         when(mA2dpProfile.isProfileReady()).thenReturn(true);
@@ -86,6 +83,17 @@
     }
 
     @Test
+    public void getConnectionSummary_testProfilesInactive_returnPairing() {
+        // Arrange:
+        //   Bond State: Bonding
+        when(mDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDING);
+
+        // Act & Assert:
+        //   Get "Pairing…" result without Battery Level.
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("Pairing…");
+    }
+
+    @Test
     public void getConnectionSummary_testSingleProfileConnectDisconnect() {
         // Test without battery level
         // Set PAN profile to be connected and test connection state summary
@@ -182,6 +190,49 @@
     }
 
     @Test
+    public void getConnectionSummary_testA2dpBatteryInactive_returnBattery() {
+        // Arrange:
+        //   1. Profile:       {A2DP, CONNECTED, Inactive}
+        //   2. Battery Level: 10
+        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
+        mBatteryLevel = 10;
+
+        // Act & Assert:
+        //   Get "10% battery" result without Battery Level.
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("10% battery");
+    }
+
+    @Test
+    public void getConnectionSummary_testA2dpInCall_returnNull() {
+        // Arrange:
+        //   1. Profile:       {A2DP, Connected, Active}
+        //   2. Audio Manager: In Call
+        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
+        mCachedDevice.onActiveDeviceChanged(true, BluetoothProfile.A2DP);
+        mAudioManager.setMode(AudioManager.MODE_IN_CALL);
+
+        // Act & Assert:
+        //   Get null result without Battery Level.
+        assertThat(mCachedDevice.getConnectionSummary()).isNull();
+    }
+
+    @Test
+    public void getConnectionSummary_testA2dpBatteryInCall_returnBattery() {
+        // Arrange:
+        //   1. Profile:       {A2DP, Connected, Active}
+        //   3. Battery Level: 10
+        //   2. Audio Manager: In Call
+        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
+        mCachedDevice.onActiveDeviceChanged(true, BluetoothProfile.A2DP);
+        mBatteryLevel = 10;
+        mAudioManager.setMode(AudioManager.MODE_IN_CALL);
+
+        // Act & Assert:
+        //   Get "10% battery" result with Battery Level 10.
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("10% battery");
+    }
+
+    @Test
     public void getConnectionSummary_testSingleProfileActiveDeviceHfp() {
         // Test without battery level
         // Set HFP profile to be connected and test connection state summary
@@ -190,14 +241,13 @@
 
         // Set device as Active for HFP and test connection state summary
         mCachedDevice.onAudioModeChanged();
-        mShadowAudioManager.setMode(AudioManager.MODE_IN_CALL);
+        mAudioManager.setMode(AudioManager.MODE_IN_CALL);
         mCachedDevice.onActiveDeviceChanged(true, BluetoothProfile.HEADSET);
         assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("Active");
 
         // Test with battery level
         mBatteryLevel = 10;
-        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo(
-                "Active, 10% battery");
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("Active, 10% battery");
 
         // Set HFP profile to be disconnected and test connection state summary
         updateProfileStatus(mHfpProfile, BluetoothProfile.STATE_DISCONNECTED);
@@ -216,6 +266,47 @@
     }
 
     @Test
+    public void getConnectionSummary_testHeadsetBatteryInactive_returnBattery() {
+        // Arrange:
+        //   1. Profile:       {HEADSET, CONNECTED, Inactive}
+        //   2. Battery Level: 10
+        updateProfileStatus(mHfpProfile, BluetoothProfile.STATE_CONNECTED);
+        mBatteryLevel = 10;
+
+        // Act & Assert:
+        //   Get "10% battery" result without Battery Level.
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("10% battery");
+    }
+
+    @Test
+    public void getConnectionSummary_testHeadsetWithoutInCall_returnNull() {
+        // Arrange:
+        //   1. Profile:       {HEADSET, Connected, Active}
+        //   2. Audio Manager: Normal (Without In Call)
+        updateProfileStatus(mHfpProfile, BluetoothProfile.STATE_CONNECTED);
+        mCachedDevice.onActiveDeviceChanged(true, BluetoothProfile.HEADSET);
+
+        // Act & Assert:
+        //   Get null result without Battery Level.
+        assertThat(mCachedDevice.getConnectionSummary()).isNull();
+    }
+
+    @Test
+    public void getConnectionSummary_testHeadsetBatteryWithoutInCall_returnBattery() {
+        // Arrange:
+        //   1. Profile:       {HEADSET, Connected, Active}
+        //   2. Battery Level: 10
+        //   3. Audio Manager: Normal (Without In Call)
+        updateProfileStatus(mHfpProfile, BluetoothProfile.STATE_CONNECTED);
+        mCachedDevice.onActiveDeviceChanged(true, BluetoothProfile.HEADSET);
+        mBatteryLevel = 10;
+
+        // Act & Assert:
+        //   Get "10% battery" result with Battery Level 10.
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("10% battery");
+    }
+
+    @Test
     public void getConnectionSummary_testSingleProfileActiveDeviceHearingAid() {
         // Test without battery level
         // Set Hearing Aid profile to be connected and test connection state summary
@@ -234,14 +325,41 @@
     }
 
     @Test
-    public void getConnectionSummary_testHearingAidInCall_active() {
+    public void getConnectionSummary_testHearingAidBatteryInactive_returnBattery() {
+        // Arrange:
+        //   1. Profile:       {HEARING_AID, CONNECTED, Inactive}
+        //   2. Battery Level: 10
+        updateProfileStatus(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED);
+        mBatteryLevel = 10;
+
+        // Act & Assert:
+        //   Get "10% battery" result without Battery Level.
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("10% battery");
+    }
+
+    @Test
+    public void getConnectionSummary_testHearingAidBatteryWithoutInCall_returnActiveBattery() {
+        // Arrange:
+        //   1. Profile:       {HEARING_AID, Connected, Active}
+        //   2. Battery Level: 10
+        //   3. Audio Manager: Normal (Without In Call)
+        updateProfileStatus(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED);
+        mCachedDevice.onActiveDeviceChanged(true, BluetoothProfile.HEARING_AID);
+        mBatteryLevel = 10;
+
+        // Act & Assert:
+        //   Get "Active, 10% battery" result with Battery Level 10.
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("Active, 10% battery");
+    }
+
+    @Test
+    public void getConnectionSummary_testHearingAidInCall_returnActive() {
         // Arrange:
         //   1. Profile:       {HEARING_AID, Connected, Active}
         //   2. Audio Manager: In Call
-        //   3. Battery Level: Unknown
         updateProfileStatus(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED);
         mCachedDevice.onActiveDeviceChanged(true, BluetoothProfile.HEARING_AID);
-        mShadowAudioManager.setMode(AudioManager.MODE_IN_CALL);
+        mAudioManager.setMode(AudioManager.MODE_IN_CALL);
 
         // Act & Assert:
         //   Get "Active" result without Battery Level.
@@ -249,14 +367,14 @@
     }
 
     @Test
-    public void getConnectionSummary_testHearingAidInCall_activeBattery10() {
+    public void getConnectionSummary_testHearingAidBatteryInCall_returnActiveBattery() {
         // Arrange:
         //   1. Profile:       {HEARING_AID, Connected, Active}
-        //   2. Audio Manager: In Call
-        //   3. Battery Level: 10
+        //   2. Battery Level: 10
+        //   3. Audio Manager: In Call
         updateProfileStatus(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED);
         mCachedDevice.onActiveDeviceChanged(true, BluetoothProfile.HEARING_AID);
-        mShadowAudioManager.setMode(AudioManager.MODE_IN_CALL);
+        mAudioManager.setMode(AudioManager.MODE_IN_CALL);
         mBatteryLevel = 10;
 
         // Act & Assert:
@@ -312,6 +430,23 @@
     }
 
     @Test
+    public void getConnectionSummary_testMultipleProfilesInactive_returnPairing() {
+        // Arrange:
+        //   1. Profile 1:  {A2DP, CONNECTED, Inactive}
+        //   2. Profile 2:  {HEADSET, CONNECTED, Inactive}
+        //   3. Profile 3:  {HEARING_AID, CONNECTED, Inactive}
+        //   4. Bond State: Bonding
+        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
+        updateProfileStatus(mHfpProfile, BluetoothProfile.STATE_CONNECTED);
+        updateProfileStatus(mHearingAidProfile, BluetoothProfile.STATE_CONNECTED);
+        when(mDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDING);
+
+        // Act & Assert:
+        //    Get "Pairing…" result without Battery Level.
+        assertThat(mCachedDevice.getConnectionSummary()).isEqualTo("Pairing…");
+    }
+
+    @Test
     public void getCarConnectionSummary_singleProfileConnectDisconnect() {
         // Test without battery level
         // Set PAN profile to be connected and test connection state summary
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java
index c0a1f0c..9adef82 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HeadsetProfileTest.java
@@ -11,7 +11,6 @@
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -19,11 +18,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowBluetoothAdapter.class})
 public class HeadsetProfileTest {
 
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 cb1b12d..2b5466c 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
@@ -29,16 +29,15 @@
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class HearingAidDeviceManagerTest {
     private final static long HISYNCID1 = 10;
     private final static long HISYNCID2 = 11;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java
index 187be0b..69c020d 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java
@@ -18,18 +18,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHeadsetClient;
 import android.bluetooth.BluetoothProfile;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -37,11 +33,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowBluetoothAdapter.class})
 public class HfpClientProfileTest {
 
@@ -52,8 +49,6 @@
     @Mock
     private BluetoothHeadsetClient mService;
     @Mock
-    private CachedBluetoothDevice mCachedBluetoothDevice;
-    @Mock
     private BluetoothDevice mBluetoothDevice;
     private BluetoothProfile.ServiceListener mServiceListener;
     private HfpClientProfile mProfile;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java
index c91ee22..f38af70 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java
@@ -18,18 +18,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHidDevice;
 import android.bluetooth.BluetoothProfile;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -37,11 +33,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowBluetoothAdapter.class})
 public class HidDeviceProfileTest {
 
@@ -52,8 +49,6 @@
     @Mock
     private BluetoothHidDevice mService;
     @Mock
-    private CachedBluetoothDevice mCachedBluetoothDevice;
-    @Mock
     private BluetoothDevice mBluetoothDevice;
     private BluetoothProfile.ServiceListener mServiceListener;
     private HidDeviceProfile mProfile;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManagerTest.java
index a3c3a54..5d5872e 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManagerTest.java
@@ -37,7 +37,6 @@
 import android.content.Intent;
 import android.os.ParcelUuid;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -45,6 +44,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
@@ -52,7 +52,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowBluetoothAdapter.class})
 public class LocalBluetoothProfileManagerTest {
     private final static long HISYNCID = 10;
@@ -270,13 +270,13 @@
         verify(mCachedBluetoothDevice).refresh();
     }
 
-    private List<Integer> generateList(int[] profile) {
-        if (profile == null) {
+    private List<Integer> generateList(int[] profiles) {
+        if (profiles == null) {
             return null;
         }
-        final List<Integer> profileList = new ArrayList<>(profile.length);
-        for(int i = 0; i < profile.length; i++) {
-            profileList.add(profile[i]);
+        final List<Integer> profileList = new ArrayList<>(profiles.length);
+        for (int profile : profiles) {
+            profileList.add(profile);
         }
         return profileList;
     }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java
index c4c48a8..6f66709 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java
@@ -18,18 +18,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothMapClient;
 import android.bluetooth.BluetoothProfile;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -37,11 +33,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowBluetoothAdapter.class})
 public class MapClientProfileTest {
 
@@ -52,8 +49,6 @@
     @Mock
     private BluetoothMapClient mService;
     @Mock
-    private CachedBluetoothDevice mCachedBluetoothDevice;
-    @Mock
     private BluetoothDevice mBluetoothDevice;
     private BluetoothProfile.ServiceListener mServiceListener;
     private MapClientProfile mProfile;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java
index e4a444c..b21ec9c3 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java
@@ -18,18 +18,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothPbapClient;
 import android.bluetooth.BluetoothProfile;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -37,12 +33,13 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowBluetoothAdapter.class)
 public class PbapClientProfileTest {
 
     @Mock
@@ -52,8 +49,6 @@
     @Mock
     private BluetoothPbapClient mService;
     @Mock
-    private CachedBluetoothDevice mCachedBluetoothDevice;
-    @Mock
     private BluetoothDevice mBluetoothDevice;
     private BluetoothProfile.ServiceListener mServiceListener;
     private PbapClientProfile mProfile;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java
index 9bb53ee..ec88034 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java
@@ -18,18 +18,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
-import android.bluetooth.BluetoothSap;
 import android.bluetooth.BluetoothProfile;
+import android.bluetooth.BluetoothSap;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
@@ -37,11 +33,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowBluetoothAdapter.class})
 public class SapProfileTest {
 
@@ -52,8 +49,6 @@
     @Mock
     private BluetoothSap mService;
     @Mock
-    private CachedBluetoothDevice mCachedBluetoothDevice;
-    @Mock
     private BluetoothDevice mBluetoothDevice;
     private BluetoothProfile.ServiceListener mServiceListener;
     private SapProfile mProfile;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java
index 4d7553c..28de191 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/AbstractPreferenceControllerTest.java
@@ -24,16 +24,15 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class AbstractPreferenceControllerTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java
index 4ec6fb2..8a0ae91 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java
@@ -27,7 +27,6 @@
 import android.content.Intent;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -35,13 +34,14 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
 import java.util.List;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class MetricsFeatureProviderTest {
     @Mock
     private LogWriter mLogWriter;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/SharedPreferenceLoggerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/SharedPreferenceLoggerTest.java
index 6285fcd..8f51dec 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/SharedPreferenceLoggerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/SharedPreferenceLoggerTest.java
@@ -17,8 +17,8 @@
 
 import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE;
 
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Matchers.anyInt;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
@@ -26,16 +26,15 @@
 import android.content.Context;
 import android.content.SharedPreferences;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class SharedPreferenceLoggerTest {
 
     private static final String TEST_TAG = "tag";
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixinTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixinTest.java
index b251c09..097db17 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixinTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/VisibilityLoggerMixinTest.java
@@ -17,10 +17,10 @@
 
 import static com.android.settingslib.core.instrumentation.Instrumentable.METRICS_CATEGORY_UNKNOWN;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
@@ -35,7 +35,6 @@
 import androidx.fragment.app.FragmentActivity;
 
 import com.android.internal.logging.nano.MetricsProto;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -43,10 +42,10 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.android.controller.ActivityController;
 
-
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class VisibilityLoggerMixinTest {
 
     @Mock
@@ -139,7 +138,7 @@
 
     private final class TestInstrumentable implements Instrumentable {
 
-        public static final int TEST_METRIC = 12345;
+        private static final int TEST_METRIC = 12345;
 
         @Override
         public int getMetricsCategory() {
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java
index 887c1d5..29e37e4 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java
@@ -28,7 +28,6 @@
 
 import androidx.lifecycle.LifecycleOwner;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.events.OnAttach;
 import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu;
 import com.android.settingslib.core.lifecycle.events.OnDestroy;
@@ -43,10 +42,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.android.controller.ActivityController;
 import org.robolectric.shadows.androidx.fragment.FragmentController;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class LifecycleTest {
 
     private LifecycleOwner mLifecycleOwner;
@@ -56,7 +56,7 @@
 
         final TestObserver mFragObserver;
 
-        public TestDialogFragment() {
+        private TestDialogFragment() {
             mFragObserver = new TestObserver();
             mLifecycle.addObserver(mFragObserver);
         }
@@ -236,11 +236,11 @@
     }
 
     private static class OptionItemAccepter implements LifecycleObserver, OnOptionsItemSelected {
-        public boolean wasCalled = false;
+        private boolean mWasCalled = false;
 
         @Override
         public boolean onOptionsItemSelected(MenuItem menuItem) {
-            wasCalled = true;
+            mWasCalled = true;
             return false;
         }
     }
@@ -258,14 +258,14 @@
         fragment.onPrepareOptionsMenu(null);
         fragment.onOptionsItemSelected(null);
 
-        assertThat(accepter.wasCalled).isFalse();
+        assertThat(accepter.mWasCalled).isFalse();
     }
 
     private class OnStartObserver implements LifecycleObserver, OnStart {
 
         private final Lifecycle mLifecycle;
 
-        public OnStartObserver(Lifecycle lifecycle) {
+        private OnStartObserver(Lifecycle lifecycle) {
             mLifecycle = lifecycle;
         }
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DeveloperOptionsPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DeveloperOptionsPreferenceControllerTest.java
index 9dd93b3a..6191a00 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DeveloperOptionsPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DeveloperOptionsPreferenceControllerTest.java
@@ -22,16 +22,15 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class DeveloperOptionsPreferenceControllerTest {
 
     private static final String TEST_KEY = "Test_pref_key";
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DevelopmentSettingsEnablerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DevelopmentSettingsEnablerTest.java
index a0fa6b5..3475ff7 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DevelopmentSettingsEnablerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DevelopmentSettingsEnablerTest.java
@@ -18,23 +18,19 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.os.UserManager;
 import android.content.Context;
+import android.os.UserManager;
 import android.provider.Settings;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
-import org.robolectric.shadows.ShadowUserManager;
-import org.robolectric.shadow.api.Shadow;
-
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowUserManager;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class DevelopmentSettingsEnablerTest {
 
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/EnableAdbPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/EnableAdbPreferenceControllerTest.java
index d7b23b0..e84a25c 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/EnableAdbPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/EnableAdbPreferenceControllerTest.java
@@ -32,17 +32,16 @@
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class EnableAdbPreferenceControllerTest {
     @Mock(answer = RETURNS_DEEP_STUBS)
     private PreferenceScreen mScreen;
@@ -150,7 +149,7 @@
     }
 
     class ConcreteEnableAdbPreferenceController extends AbstractEnableAdbPreferenceController {
-        public ConcreteEnableAdbPreferenceController(Context context) {
+        private ConcreteEnableAdbPreferenceController(Context context) {
             super(context);
         }
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/LogdSizePreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/LogdSizePreferenceControllerTest.java
index 2f78899..146be23 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/LogdSizePreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/LogdSizePreferenceControllerTest.java
@@ -45,16 +45,16 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class LogdSizePreferenceControllerTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/LogpersistPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/LogpersistPreferenceControllerTest.java
index ed128e0..d5afb4b 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/LogpersistPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/LogpersistPreferenceControllerTest.java
@@ -29,7 +29,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -37,9 +36,10 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class LogpersistPreferenceControllerTest {
 
     private LifecycleOwner mLifecycleOwner;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/SystemPropPokerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/SystemPropPokerTest.java
index 40db478..d1212fc 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/SystemPropPokerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/SystemPropPokerTest.java
@@ -27,16 +27,15 @@
 import android.os.IBinder;
 import android.os.Parcel;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.mockito.Spy;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class SystemPropPokerTest {
 
     @Spy
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/BluetoothAddressPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/BluetoothAddressPreferenceControllerTest.java
index 234b4d5..16de5f8 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/BluetoothAddressPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/BluetoothAddressPreferenceControllerTest.java
@@ -26,7 +26,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -34,11 +33,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class BluetoothAddressPreferenceControllerTest {
     @Mock
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/ConnectivityPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/ConnectivityPreferenceControllerTest.java
index aee956c..4444e63 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/ConnectivityPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/ConnectivityPreferenceControllerTest.java
@@ -30,7 +30,6 @@
 import android.content.IntentFilter;
 import android.os.Handler;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -39,8 +38,9 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class ConnectivityPreferenceControllerTest {
     @Mock
     private Context mContext;
@@ -91,8 +91,7 @@
     private static class ConcreteConnectivityPreferenceController
             extends AbstractConnectivityPreferenceController {
 
-
-        public ConcreteConnectivityPreferenceController(Context context,
+        private ConcreteConnectivityPreferenceController(Context context,
                 Lifecycle lifecycle) {
             super(context, lifecycle);
         }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/ImsStatusPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/ImsStatusPreferenceControllerTest.java
index 2b490ee..bd223bd 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/ImsStatusPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/ImsStatusPreferenceControllerTest.java
@@ -25,12 +25,10 @@
 import android.content.Context;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -38,11 +36,10 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.shadows.ShadowSubscriptionManager;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class ImsStatusPreferenceControllerTest {
     @Mock
     private Context mContext;
@@ -61,8 +58,9 @@
     }
 
     @Test
-    @Config(shadows = ShadowSubscriptionManager.class)
     public void testIsAvailable() {
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(1234);
+
         CarrierConfigManager carrierConfigManager = mock(CarrierConfigManager.class);
         doReturn(carrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
 
@@ -92,18 +90,10 @@
                 .that(imsStatusPreferenceController.isAvailable()).isFalse();
     }
 
-    @Implements(SubscriptionManager.class)
-    public static class ShadowSubscriptionManager {
-        @Implementation
-        public static int getDefaultDataSubscriptionId() {
-            return 1234;
-        }
-    }
-
     private static class ConcreteImsStatusPreferenceController
             extends AbstractImsStatusPreferenceController {
 
-        public ConcreteImsStatusPreferenceController(Context context,
+        private ConcreteImsStatusPreferenceController(Context context,
                 Lifecycle lifecycle) {
             super(context, lifecycle);
         }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/IpAddressPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/IpAddressPreferenceControllerTest.java
index 1d957c3..76a26d9 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/IpAddressPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/IpAddressPreferenceControllerTest.java
@@ -27,7 +27,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -35,11 +34,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.Arrays;
 import java.util.List;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class IpAddressPreferenceControllerTest {
     @Mock
     private Context mContext;
@@ -75,8 +75,7 @@
     private static class ConcreteIpAddressPreferenceController extends
             AbstractIpAddressPreferenceController {
 
-        public ConcreteIpAddressPreferenceController(Context context,
-                Lifecycle lifecycle) {
+        private ConcreteIpAddressPreferenceController(Context context, Lifecycle lifecycle) {
             super(context, lifecycle);
         }
     }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/SerialNumberPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/SerialNumberPreferenceControllerTest.java
index dc77400..5b71bdd 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/SerialNumberPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/SerialNumberPreferenceControllerTest.java
@@ -25,16 +25,15 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class SerialNumberPreferenceControllerTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/SimStatusImeiInfoPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/SimStatusImeiInfoPreferenceControllerTest.java
index eb77cb6..5252c6c 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/SimStatusImeiInfoPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/SimStatusImeiInfoPreferenceControllerTest.java
@@ -24,17 +24,16 @@
 import android.os.UserManager;
 import android.util.SparseBooleanArray;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {SimStatusImeiInfoPreferenceControllerTest.ShadowUserManager.class,
                 SimStatusImeiInfoPreferenceControllerTest.ShadowConnectivityManager.class})
 public class SimStatusImeiInfoPreferenceControllerTest {
@@ -106,7 +105,7 @@
 
         private final SparseBooleanArray mSupportedNetworkTypes = new SparseBooleanArray();
 
-        public void setNetworkSupported(int networkType, boolean supported) {
+        private void setNetworkSupported(int networkType, boolean supported) {
             mSupportedNetworkTypes.put(networkType, supported);
         }
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java
index 2e0348d..f09879b 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java
@@ -28,7 +28,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -36,9 +35,10 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.shadows.ShadowLooper;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class UptimePreferenceControllerTest {
     @Mock
     private Context mContext;
@@ -92,7 +92,7 @@
 
     private static class ConcreteUptimePreferenceController
             extends AbstractUptimePreferenceController {
-        public ConcreteUptimePreferenceController(Context context,
+        private ConcreteUptimePreferenceController(Context context,
                 Lifecycle lifecycle) {
             super(context, lifecycle);
         }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java
index 359ea77..74e5bf5 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java
@@ -33,7 +33,6 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -41,13 +40,14 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
 import java.util.Arrays;
 import java.util.List;
 
 @SuppressLint("HardwareIds")
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class WifiMacAddressPreferenceControllerTest {
     @Mock
     private Lifecycle mLifecycle;
@@ -197,7 +197,7 @@
     private static class ConcreteWifiMacAddressPreferenceController
             extends AbstractWifiMacAddressPreferenceController {
 
-        public ConcreteWifiMacAddressPreferenceController(Context context,
+        private ConcreteWifiMacAddressPreferenceController(Context context,
                 Lifecycle lifecycle) {
             super(context, lifecycle);
         }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/display/BrightnessUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/display/BrightnessUtilsTest.java
index ca621ca..c0924d9 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/display/BrightnessUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/display/BrightnessUtilsTest.java
@@ -20,12 +20,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class BrightnessUtilsTest {
 
     private static final int MIN = 1;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
index 59a3dd6..605c861 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
@@ -20,14 +20,13 @@
 
 import android.util.ArraySet;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.Set;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class CategoryKeyTest {
 
     @Test
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileTest.java
index 40e7386..b77670b 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileTest.java
@@ -13,15 +13,14 @@
 import android.os.Bundle;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class TileTest {
 
     private ActivityInfo mActivityInfo;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java
index 362ae4c..bbb4249 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java
@@ -54,7 +54,6 @@
 import android.util.Pair;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -62,12 +61,13 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class TileUtilsTest {
 
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java
index d0b6dab..2988905 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatterySaverUtilsTest.java
@@ -33,28 +33,26 @@
 import android.provider.Settings.Global;
 import android.provider.Settings.Secure;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
-
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class BatterySaverUtilsTest {
-    final int BATTERY_SAVER_THRESHOLD_1 = 15;
-    final int BATTERY_SAVER_THRESHOLD_2 = 20;
+    private static final int BATTERY_SAVER_THRESHOLD_1 = 15;
+    private static final int BATTERY_SAVER_THRESHOLD_2 = 20;
 
     @Mock
-    Context mMockContext;
+    private Context mMockContext;
 
     @Mock
-    ContentResolver mMockResolver;
+    private ContentResolver mMockResolver;
 
     @Mock
-    PowerManager mMockPowerManager;
+    private PowerManager mMockPowerManager;
 
     @Before
     public void setUp() throws Exception {
@@ -66,11 +64,11 @@
     }
 
     @Test
-    public void testSetPowerSaveMode_enable_firstCall_needWarning() throws Exception {
+    public void testSetPowerSaveMode_enable_firstCall_needWarning() {
         Secure.putString(mMockResolver, Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
         Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");
 
-        assertEquals(false, BatterySaverUtils.setPowerSaveMode(mMockContext, true, true));
+        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true)).isFalse();
 
         verify(mMockContext, times(1)).sendBroadcast(any(Intent.class));
         verify(mMockPowerManager, times(0)).setPowerSaveMode(anyBoolean());
@@ -83,11 +81,11 @@
     }
 
     @Test
-    public void testSetPowerSaveMode_enable_secondCall_needWarning() throws Exception {
+    public void testSetPowerSaveMode_enable_secondCall_needWarning() {
         Secure.putInt(mMockResolver, Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 1); // Already acked.
         Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");
 
-        assertEquals(true, BatterySaverUtils.setPowerSaveMode(mMockContext, true, true));
+        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true)).isTrue();
 
         verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
         verify(mMockPowerManager, times(1)).setPowerSaveMode(eq(true));
@@ -97,11 +95,11 @@
     }
 
     @Test
-    public void testSetPowerSaveMode_enable_thridCall_needWarning() throws Exception {
+    public void testSetPowerSaveMode_enable_thridCall_needWarning() {
         Secure.putInt(mMockResolver, Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 1); // Already acked.
         Secure.putInt(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, 1);
 
-        assertEquals(true, BatterySaverUtils.setPowerSaveMode(mMockContext, true, true));
+        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, true)).isTrue();
 
         verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
         verify(mMockPowerManager, times(1)).setPowerSaveMode(eq(true));
@@ -111,11 +109,11 @@
     }
 
     @Test
-    public void testSetPowerSaveMode_enable_firstCall_noWarning() throws Exception {
+    public void testSetPowerSaveMode_enable_firstCall_noWarning() {
         Secure.putString(mMockResolver, Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
         Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");
 
-        assertEquals(true, BatterySaverUtils.setPowerSaveMode(mMockContext, true, false));
+        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, true, false)).isTrue();
 
         verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
         verify(mMockPowerManager, times(1)).setPowerSaveMode(eq(true));
@@ -125,12 +123,12 @@
     }
 
     @Test
-    public void testSetPowerSaveMode_disable_firstCall_noWarning() throws Exception {
+    public void testSetPowerSaveMode_disable_firstCall_noWarning() {
         Secure.putString(mMockResolver, Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
         Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");
 
         // When disabling, needFirstTimeWarning doesn't matter.
-        assertEquals(true, BatterySaverUtils.setPowerSaveMode(mMockContext, false, false));
+        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, false, false)).isTrue();
 
         verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
         verify(mMockPowerManager, times(1)).setPowerSaveMode(eq(false));
@@ -141,12 +139,12 @@
     }
 
     @Test
-    public void testSetPowerSaveMode_disable_firstCall_needWarning() throws Exception {
+    public void testSetPowerSaveMode_disable_firstCall_needWarning() {
         Secure.putString(mMockResolver, Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
         Secure.putString(mMockResolver, Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT, "null");
 
         // When disabling, needFirstTimeWarning doesn't matter.
-        assertEquals(true, BatterySaverUtils.setPowerSaveMode(mMockContext, false, true));
+        assertThat(BatterySaverUtils.setPowerSaveMode(mMockContext, false, true)).isTrue();
 
         verify(mMockContext, times(0)).sendBroadcast(any(Intent.class));
         verify(mMockPowerManager, times(1)).setPowerSaveMode(eq(false));
@@ -157,7 +155,7 @@
     }
 
     @Test
-    public void testEnsureAutoBatterysaver_setNewPositiveValue_doNotOverwrite() throws Exception {
+    public void testEnsureAutoBatterysaver_setNewPositiveValue_doNotOverwrite() {
         Global.putInt(mMockResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
 
         BatterySaverUtils.ensureAutoBatterySaver(mMockContext, BATTERY_SAVER_THRESHOLD_1);
@@ -172,7 +170,7 @@
     }
 
     @Test
-    public void testSetAutoBatterySaverTriggerLevel_setSuppressSuggestion() throws Exception {
+    public void testSetAutoBatterySaverTriggerLevel_setSuppressSuggestion() {
         Global.putString(mMockResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, "null");
         Secure.putString(mMockResolver, Secure.SUPPRESS_AUTO_BATTERY_SAVER_SUGGESTION, "null");
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java
index 9b1fe5f..bbf807d2 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java
@@ -31,7 +31,6 @@
 import android.content.pm.PackageManager;
 import android.os.IDeviceIdleController;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowDefaultDialerManager;
 import com.android.settingslib.testutils.shadow.ShadowSmsApplication;
 
@@ -40,12 +39,13 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowPackageManager;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowDefaultDialerManager.class, ShadowSmsApplication.class})
 public class PowerWhitelistBackendTest {
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BatteryMeterDrawableBaseTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BatteryMeterDrawableBaseTest.java
index 49dde0e..35743c2 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BatteryMeterDrawableBaseTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BatteryMeterDrawableBaseTest.java
@@ -16,8 +16,8 @@
 
 package com.android.settingslib.graph;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
@@ -25,17 +25,16 @@
 import android.graphics.Canvas;
 import android.graphics.Paint;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.util.ReflectionHelpers;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class BatteryMeterDrawableBaseTest {
     private static final int CRITICAL_LEVEL = 5;
     private static final int PADDING = 5;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawableTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawableTest.java
index 5dbb5ca..1b350cc 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawableTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawableTest.java
@@ -22,14 +22,14 @@
 import android.graphics.drawable.VectorDrawable;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class BluetoothDeviceLayerDrawableTest {
     private static final int RES_ID = R.drawable.ic_bt_cellphone;
     private static final int BATTERY_LEVEL = 15;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtilCompatTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtilCompatTest.java
index fa64afe..b930aa6 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtilCompatTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtilCompatTest.java
@@ -25,26 +25,21 @@
 import android.view.inputmethod.InputMethodSubtype;
 import android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class InputMethodAndSubtypeUtilCompatTest {
 
     private static final HashSet<String> EMPTY_STRING_SET = new HashSet<>();
 
     private static HashSet<String> asHashSet(String... strings) {
-        HashSet<String> hashSet = new HashSet<>();
-        for (String s : strings) {
-            hashSet.add(s);
-        }
-        return hashSet;
+        return new HashSet<>(Arrays.asList(strings));
     }
 
     @Test
@@ -105,7 +100,6 @@
                 "ime0;subtype0;subtype1:ime1;subtype1;subtype2"))
                 .containsExactly("ime0", asHashSet("subtype0", "subtype1"),
                         "ime1", asHashSet("subtype1", "subtype2"));
-
     }
 
     @Test
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtilTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtilTest.java
index 03ab261..84606b4 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtilTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/inputmethod/InputMethodAndSubtypeUtilTest.java
@@ -25,26 +25,21 @@
 import android.view.inputmethod.InputMethodSubtype;
 import android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class InputMethodAndSubtypeUtilTest {
 
     private static final HashSet<String> EMPTY_STRING_SET = new HashSet<>();
 
     private static HashSet<String> asHashSet(String... strings) {
-        HashSet<String> hashSet = new HashSet<>();
-        for (String s : strings) {
-            hashSet.add(s);
-        }
-        return hashSet;
+        return new HashSet<>(Arrays.asList(strings));
     }
 
     @Test
@@ -103,7 +98,6 @@
                 "ime0;subtype0;subtype1:ime1;subtype1;subtype2"))
                 .containsExactly("ime0", asHashSet("subtype0", "subtype1"),
                         "ime1", asHashSet("subtype1", "subtype2"));
-
     }
 
     @Test
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java
index b00476b2..4b5e909 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java
@@ -18,10 +18,9 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.ByteArrayInputStream;
@@ -32,7 +31,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class LicenseHtmlGeneratorFromXmlTest {
     private static final String VALILD_XML_STRING =
             "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
@@ -92,8 +91,8 @@
 
     @Test
     public void testParseValidXmlStream() throws XmlPullParserException, IOException {
-        Map<String, String> fileNameToContentIdMap = new HashMap<String, String>();
-        Map<String, String> contentIdToFileContentMap = new HashMap<String, String>();
+        Map<String, String> fileNameToContentIdMap = new HashMap<>();
+        Map<String, String> contentIdToFileContentMap = new HashMap<>();
 
         LicenseHtmlGeneratorFromXml.parse(
                 new InputStreamReader(new ByteArrayInputStream(VALILD_XML_STRING.getBytes())),
@@ -107,8 +106,8 @@
 
     @Test(expected = XmlPullParserException.class)
     public void testParseInvalidXmlStream() throws XmlPullParserException, IOException {
-        Map<String, String> fileNameToContentIdMap = new HashMap<String, String>();
-        Map<String, String> contentIdToFileContentMap = new HashMap<String, String>();
+        Map<String, String> fileNameToContentIdMap = new HashMap<>();
+        Map<String, String> contentIdToFileContentMap = new HashMap<>();
 
         LicenseHtmlGeneratorFromXml.parse(
                 new InputStreamReader(new ByteArrayInputStream(INVALILD_XML_STRING.getBytes())),
@@ -117,8 +116,8 @@
 
     @Test
     public void testGenerateHtml() {
-        Map<String, String> fileNameToContentIdMap = new HashMap<String, String>();
-        Map<String, String> contentIdToFileContentMap = new HashMap<String, String>();
+        Map<String, String> fileNameToContentIdMap = new HashMap<>();
+        Map<String, String> contentIdToFileContentMap = new HashMap<>();
 
         fileNameToContentIdMap.put("/file0", "0");
         fileNameToContentIdMap.put("/file1", "0");
@@ -132,8 +131,8 @@
 
     @Test
     public void testGenerateHtmlWithCustomHeading() {
-        Map<String, String> fileNameToContentIdMap = new HashMap<String, String>();
-        Map<String, String> contentIdToFileContentMap = new HashMap<String, String>();
+        Map<String, String> fileNameToContentIdMap = new HashMap<>();
+        Map<String, String> contentIdToFileContentMap = new HashMap<>();
 
         fileNameToContentIdMap.put("/file0", "0");
         fileNameToContentIdMap.put("/file1", "0");
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlLoaderCompatTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlLoaderCompatTest.java
index c90de5f..e82bc06 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlLoaderCompatTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlLoaderCompatTest.java
@@ -20,14 +20,13 @@
 
 import android.content.Context;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
@@ -37,7 +36,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = LicenseHtmlLoaderCompatTest.ShadowLicenseHtmlLoaderCompat.class)
 public class LicenseHtmlLoaderCompatTest {
 
@@ -58,7 +57,7 @@
 
     @Test
     public void testLoadInBackground() {
-        ArrayList<File> xmlFiles = new ArrayList();
+        ArrayList<File> xmlFiles = new ArrayList<>();
         xmlFiles.add(new File("test.xml"));
         File cachedHtmlFile = new File("test.html");
 
@@ -69,7 +68,7 @@
 
     @Test
     public void testLoadInBackgroundWithNoVaildXmlFiles() {
-        ArrayList<File> xmlFiles = new ArrayList();
+        ArrayList<File> xmlFiles = new ArrayList<>();
         File cachedHtmlFile = new File("test.html");
 
         setupFakeData(xmlFiles, cachedHtmlFile, true, true);
@@ -79,7 +78,7 @@
 
     @Test
     public void testLoadInBackgroundWithNonOutdatedCachedHtmlFile() {
-        ArrayList<File> xmlFiles = new ArrayList();
+        ArrayList<File> xmlFiles = new ArrayList<>();
         xmlFiles.add(new File("test.xml"));
         File cachedHtmlFile = new File("test.html");
 
@@ -90,7 +89,7 @@
 
     @Test
     public void testLoadInBackgroundWithGenerateHtmlFileFailed() {
-        ArrayList<File> xmlFiles = new ArrayList();
+        ArrayList<File> xmlFiles = new ArrayList<>();
         xmlFiles.add(new File("test.xml"));
         File cachedHtmlFile = new File("test.html");
 
@@ -112,10 +111,10 @@
     @Implements(LicenseHtmlLoaderCompat.class)
     public static class ShadowLicenseHtmlLoaderCompat {
 
-        public static List<File> sValidXmlFiles;
-        public static File sCachedHtmlFile;
-        public static boolean sIsCachedHtmlFileOutdated;
-        public static boolean sGenerateHtmlFileSucceeded;
+        private static List<File> sValidXmlFiles;
+        private static File sCachedHtmlFile;
+        private static boolean sIsCachedHtmlFileOutdated;
+        private static boolean sGenerateHtmlFileSucceeded;
 
         @Resetter
         public static void reset() {
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/InjectedSettingTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/InjectedSettingTest.java
index c29481f..8c2e899 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/InjectedSettingTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/InjectedSettingTest.java
@@ -18,12 +18,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public final class InjectedSettingTest {
 
     private static final String TEST_STRING = "test";
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/RecentLocationAppsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/RecentLocationAppsTest.java
index 9c168f7..08d5367 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/RecentLocationAppsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/location/RecentLocationAppsTest.java
@@ -2,7 +2,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Matchers.isA;
+import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.when;
 
 import android.app.AppOpsManager;
@@ -17,20 +17,19 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class RecentLocationAppsTest {
 
     private static final int TEST_UID = 1234;
@@ -56,8 +55,6 @@
     private int mTestUserId;
     private RecentLocationApps mRecentLocationApps;
 
-
-
     @Before
     public void setUp() throws NameNotFoundException {
         MockitoAnnotations.initMocks(this);
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 50044f2..acf99a2 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
@@ -18,7 +18,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.anyInt;
 import static org.mockito.Mockito.anyLong;
@@ -35,23 +34,19 @@
 import android.net.ConnectivityManager;
 import android.net.INetworkStatsSession;
 import android.net.NetworkStatsHistory;
-import android.net.NetworkStatsHistory.Entry;
 import android.net.NetworkTemplate;
 import android.os.RemoteException;
 import android.telephony.TelephonyManager;
 import android.text.format.DateUtils;
-import android.util.FeatureFlagUtils;
-
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class DataUsageControllerTest {
 
     private static final String SUB_ID = "Test Subscriber";
@@ -62,16 +57,18 @@
     private TelephonyManager mTelephonyManager;
     @Mock
     private NetworkStatsManager mNetworkStatsManager;
-
+    @Mock
     private Context mContext;
+
     private DataUsageController mController;
     private NetworkStatsHistory mNetworkStatsHistory;
 
     @Before
     public void setUp() throws RemoteException {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mController = spy(new DataUsageController(mContext));
+        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+        when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
+        mController = new DataUsageController(mContext);
         mNetworkStatsHistory = spy(
                 new NetworkStatsHistory(DateUtils.DAY_IN_MILLIS /* bucketDuration */));
         doReturn(mNetworkStatsHistory)
@@ -80,78 +77,25 @@
     }
 
     @Test
-    public void getHistoricalUsageLevel_v1_noNetworkSession_shouldReturnNegative1() {
-        FeatureFlagUtils.setEnabled(mContext, DataUsageController.DATA_USAGE_V2, false);
-        doReturn(null).when(mController).getSession();
+    public void getHistoricalUsageLevel_shouldQuerySummaryForDevice() throws Exception {
 
-        assertThat(mController.getHistoricalUsageLevel(null /* template */)).isEqualTo(-1L);
-
-    }
-
-    @Test
-    public void getHistoriclUsageLevel_v1_noUsageData_shouldReturn0() {
-        FeatureFlagUtils.setEnabled(mContext, DataUsageController.DATA_USAGE_V2, false);
-        doReturn(mSession).when(mController).getSession();
-
-        assertThat(mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard()))
-                .isEqualTo(0L);
-
-    }
-
-    @Test
-    public void getHistoricalUsageLevel_v1_hasUsageData_shouldReturnTotalUsage() {
-        FeatureFlagUtils.setEnabled(mContext, DataUsageController.DATA_USAGE_V2, false);
-        doReturn(mSession).when(mController).getSession();
-        final long receivedBytes = 743823454L;
-        final long transmittedBytes = 16574289L;
-        final Entry entry = new Entry();
-        entry.bucketStart = 1521583200000L;
-        entry.rxBytes = receivedBytes;
-        entry.txBytes = transmittedBytes;
-        when(mNetworkStatsHistory.getValues(eq(0L), anyLong(), anyLong(), nullable(Entry.class)))
-                .thenReturn(entry);
-
-        assertThat(mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard()))
-                .isEqualTo(receivedBytes + transmittedBytes);
-
-    }
-
-    @Test
-    public void getHistoricalUsageLevel_v2_shouldQuerySummaryForDevice() throws Exception {
-        final Context context = mock(Context.class);
-        FeatureFlagUtils.setEnabled(context, DataUsageController.DATA_USAGE_V2, true);
-        when(context.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
-        when(context.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
-        final DataUsageController controller = new DataUsageController(context);
-
-        controller.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard());
+        mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard());
 
         verify(mNetworkStatsManager).querySummaryForDevice(eq(ConnectivityManager.TYPE_WIFI),
                 eq(SUB_ID), eq(0L) /* startTime */, anyLong() /* endTime */);
     }
 
     @Test
-    public void getHistoricalUsageLevel_v2NoUsageData_shouldReturn0() throws Exception {
-        final Context context = mock(Context.class);
-        FeatureFlagUtils.setEnabled(context, DataUsageController.DATA_USAGE_V2, true);
-        when(context.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
-        when(context.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
+    public void getHistoricalUsageLevel_noUsageData_shouldReturn0() throws Exception {
         when(mNetworkStatsManager.querySummaryForDevice(eq(ConnectivityManager.TYPE_WIFI),
                 eq(SUB_ID), eq(0L) /* startTime */, anyLong() /* endTime */))
                 .thenReturn(mock(NetworkStats.Bucket.class));
-        final DataUsageController controller = new DataUsageController(context);
-
-        assertThat(controller.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard()))
+        assertThat(mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard()))
             .isEqualTo(0L);
     }
 
     @Test
-    public void getHistoricalUsageLevel_v2HasUsageData_shouldReturnTotalUsage()
-            throws Exception {
-        final Context context = mock(Context.class);
-        FeatureFlagUtils.setEnabled(context, DataUsageController.DATA_USAGE_V2, true);
-        when(context.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
-        when(context.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
+    public void getHistoricalUsageLevel_hasUsageData_shouldReturnTotalUsage() throws Exception {
         final long receivedBytes = 743823454L;
         final long transmittedBytes = 16574289L;
         final NetworkStats.Bucket bucket = mock(NetworkStats.Bucket.class);
@@ -159,9 +103,8 @@
         when(bucket.getTxBytes()).thenReturn(transmittedBytes);
         when(mNetworkStatsManager.querySummaryForDevice(eq(ConnectivityManager.TYPE_WIFI),
                 eq(SUB_ID), eq(0L) /* startTime */, anyLong() /* endTime */)).thenReturn(bucket);
-        final DataUsageController controller = new DataUsageController(context);
 
-        assertThat(controller.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard()))
+        assertThat(mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard()))
                 .isEqualTo(receivedBytes + transmittedBytes);
     }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleChartDataLoaderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleChartDataLoaderTest.java
index 0a03631..011f234 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleChartDataLoaderTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleChartDataLoaderTest.java
@@ -27,15 +27,14 @@
 import android.os.RemoteException;
 import android.text.format.DateUtils;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class NetworkCycleChartDataLoaderTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataForUidLoaderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataForUidLoaderTest.java
index 2314f27..d915963 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataForUidLoaderTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataForUidLoaderTest.java
@@ -19,7 +19,7 @@
 import static android.app.usage.NetworkStats.Bucket.STATE_FOREGROUND;
 import static android.net.NetworkStats.TAG_NONE;
 
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
@@ -33,15 +33,14 @@
 import android.net.NetworkPolicyManager;
 import android.text.format.DateUtils;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class NetworkCycleDataForUidLoaderTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataLoaderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataLoaderTest.java
index 9d60a97..2d8ea12 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataLoaderTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataLoaderTest.java
@@ -16,8 +16,8 @@
 
 package com.android.settingslib.net;
 
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.nullable;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -37,20 +37,19 @@
 import android.text.format.DateUtils;
 import android.util.Range;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.time.ZonedDateTime;
 import java.util.Iterator;
 import java.util.List;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class NetworkCycleDataLoaderTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/EnableZenModeDialogTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/EnableZenModeDialogTest.java
index 89c319a..59d5674 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/EnableZenModeDialogTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/EnableZenModeDialogTest.java
@@ -16,11 +16,10 @@
 
 package com.android.settingslib.notification;
 
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.assertNull;
-import static junit.framework.Assert.assertTrue;
-
+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.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
@@ -38,16 +37,15 @@
 import android.service.notification.Condition;
 import android.view.LayoutInflater;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class EnableZenModeDialogTest {
     private EnableZenModeDialog mController;
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java
index 8147656..437c0d4 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/notification/ZenDurationDialogTest.java
@@ -25,27 +25,23 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.provider.Settings;
-import android.service.notification.Condition;
 import android.view.LayoutInflater;
 import android.view.View;
 
 import androidx.appcompat.app.AlertDialog;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class ZenDurationDialogTest {
     private ZenDurationDialog mController;
 
     private Context mContext;
     private LayoutInflater mLayoutInflater;
-    private Condition mCountdownCondition;
-    private Condition mAlarmCondition;
     private ContentResolver mContentResolver;
     private AlertDialog.Builder mBuilder;
 
@@ -102,7 +98,6 @@
                 ZenDurationDialog.ALWAYS_ASK_CONDITION_INDEX).rb.isChecked());
     }
 
-
     @Test
     public void testChooseAlwaysPromptSetting() {
         Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/suggestions/SuggestionControllerMixinCompatTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/suggestions/SuggestionControllerMixinCompatTest.java
index 449451a..ffaa7443 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/suggestions/SuggestionControllerMixinCompatTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/suggestions/SuggestionControllerMixinCompatTest.java
@@ -31,7 +31,6 @@
 import androidx.lifecycle.LifecycleOwner;
 import androidx.loader.app.LoaderManager;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.After;
@@ -40,10 +39,11 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowSuggestionController.class)
 public class SuggestionControllerMixinCompatTest {
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/suggestions/SuggestionControllerMixinTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/suggestions/SuggestionControllerMixinTest.java
index aac582f..4dc80f4 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/suggestions/SuggestionControllerMixinTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/suggestions/SuggestionControllerMixinTest.java
@@ -31,7 +31,6 @@
 
 import androidx.lifecycle.LifecycleOwner;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.After;
@@ -40,10 +39,11 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowSuggestionController.class)
 public class SuggestionControllerMixinTest {
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/testutils/shadow/ShadowDefaultDialerManager.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/testutils/shadow/ShadowDefaultDialerManager.java
index f4afdb1..3e91641 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/testutils/shadow/ShadowDefaultDialerManager.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/testutils/shadow/ShadowDefaultDialerManager.java
@@ -26,19 +26,19 @@
 @Implements(DefaultDialerManager.class)
 public class ShadowDefaultDialerManager {
 
-    private static String sDefaultDailer;
+    private static String sDefaultDialer;
 
     @Resetter
     public void reset() {
-        sDefaultDailer = null;
+        sDefaultDialer = null;
     }
 
     @Implementation
     public static String getDefaultDialerApplication(Context context) {
-        return sDefaultDailer;
+        return sDefaultDialer;
     }
 
     public static void setDefaultDialerApplication(String dialer) {
-        sDefaultDailer = dialer;
+        sDefaultDialer = dialer;
     }
 }
\ No newline at end of file
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/users/UserManagerHelperRoboTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/users/UserManagerHelperRoboTest.java
index 4705cd2..9a169d2 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/users/UserManagerHelperRoboTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/users/UserManagerHelperRoboTest.java
@@ -27,7 +27,6 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.testutils.shadow.ShadowActivityManager;
 
 import org.junit.After;
@@ -36,6 +35,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
@@ -45,7 +45,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 @Config(shadows = { ShadowActivityManager.class, UserManagerHelperRoboTest.ShadowUserHandle.class})
 public class UserManagerHelperRoboTest {
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/IconCacheTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/IconCacheTest.java
index 645dfa1..026ad47 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/IconCacheTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/IconCacheTest.java
@@ -30,14 +30,13 @@
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Icon;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class IconCacheTest {
     private Icon mIcon;
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
index 6a9579b..7ef31df 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
@@ -22,31 +22,30 @@
 
 import android.content.Context;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
 import java.time.Duration;
 import java.util.regex.Pattern;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class PowerUtilTest {
-    public static final String TEST_BATTERY_LEVEL_10 = "10%";
-    public static final long SEVENTEEN_MIN_MILLIS = Duration.ofMinutes(17).toMillis();
-    public static final long FIVE_MINUTES_MILLIS = Duration.ofMinutes(5).toMillis();
-    public static final long TEN_MINUTES_MILLIS = Duration.ofMinutes(10).toMillis();
-    public static final long THREE_DAYS_MILLIS = Duration.ofDays(3).toMillis();
-    public static final long THIRTY_HOURS_MILLIS = Duration.ofHours(30).toMillis();
-    public static final String NORMAL_CASE_EXPECTED_PREFIX = "Should last until about";
-    public static final String ENHANCED_SUFFIX = " based on your usage";
+    private static final String TEST_BATTERY_LEVEL_10 = "10%";
+    private static final long SEVENTEEN_MIN_MILLIS = Duration.ofMinutes(17).toMillis();
+    private static final long FIVE_MINUTES_MILLIS = Duration.ofMinutes(5).toMillis();
+    private static final long TEN_MINUTES_MILLIS = Duration.ofMinutes(10).toMillis();
+    private static final long THREE_DAYS_MILLIS = Duration.ofDays(3).toMillis();
+    private static final long THIRTY_HOURS_MILLIS = Duration.ofHours(30).toMillis();
+    private static final String NORMAL_CASE_EXPECTED_PREFIX = "Should last until about";
+    private static final String ENHANCED_SUFFIX = " based on your usage";
     // matches a time (ex: '1:15 PM', '2 AM', '23:00')
-    public static final String TIME_OF_DAY_REGEX = " (\\d)+:?(\\d)* ((AM)*)|((PM)*)";
+    private static final String TIME_OF_DAY_REGEX = " (\\d)+:?(\\d)* ((AM)*)|((PM)*)";
     // matches a percentage with parenthesis (ex: '(10%)')
-    public static final String PERCENTAGE_REGEX = " \\(\\d?\\d%\\)";
+    private static final String PERCENTAGE_REGEX = " \\(\\d?\\d%\\)";
 
     private Context mContext;
 
@@ -108,7 +107,6 @@
                         + "(" + PERCENTAGE_REGEX + "){0}")); // no percentage
     }
 
-
     @Test
     public void testGetBatteryRemainingStringFormatted_lessThanSevenMinutes_usesCorrectString() {
         String info = PowerUtil.getBatteryRemainingStringFormatted(mContext,
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/StringUtilTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/StringUtilTest.java
index e4bbbcb..8fbbfbb 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/StringUtilTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/StringUtilTest.java
@@ -25,14 +25,13 @@
 import android.text.format.DateUtils;
 import android.text.style.TtsSpan;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class StringUtilTest {
     private Context mContext;
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/ThreadUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/ThreadUtilsTest.java
index 1e066b1..26db124 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/ThreadUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/ThreadUtilsTest.java
@@ -15,28 +15,22 @@
  */
 package com.android.settingslib.utils;
 
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.fail;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.shadows.ShadowLooper;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class ThreadUtilsTest {
 
     @Test
     public void testMainThread() throws InterruptedException {
         assertThat(ThreadUtils.isMainThread()).isTrue();
-        Thread background = new Thread(new Runnable() {
-            public void run() {
-                assertThat(ThreadUtils.isMainThread()).isFalse();
-            }
-        });
+        Thread background = new Thread(() -> assertThat(ThreadUtils.isMainThread()).isFalse());
         background.start();
         background.join();
     }
@@ -44,13 +38,11 @@
     @Test
     public void testEnsureMainThread() throws InterruptedException {
         ThreadUtils.ensureMainThread();
-        Thread background = new Thread(new Runnable() {
-            public void run() {
-                try {
-                    ThreadUtils.ensureMainThread();
-                    fail("Should not pass ensureMainThread in a background thread");
-                } catch (RuntimeException e) {
-                }
+        Thread background = new Thread(() -> {
+            try {
+                ThreadUtils.ensureMainThread();
+                fail("Should not pass ensureMainThread in a background thread");
+            } catch (RuntimeException expected) {
             }
         });
         background.start();
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/ActionButtonsPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/ActionButtonsPreferenceTest.java
new file mode 100644
index 0000000..88fef08
--- /dev/null
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/ActionButtonsPreferenceTest.java
@@ -0,0 +1,281 @@
+/*
+ * 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.settingslib.widget;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.view.View;
+import android.widget.Button;
+
+import androidx.preference.PreferenceViewHolder;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class ActionButtonsPreferenceTest {
+
+    private Context mContext;
+    private View mRootView;
+    private ActionButtonsPreference mPref;
+    private PreferenceViewHolder mHolder;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mRootView = View.inflate(mContext, R.layout.settings_action_buttons, null /* parent */);
+        mHolder = PreferenceViewHolder.createInstanceForTests(mRootView);
+        mPref = new ActionButtonsPreference(mContext);
+    }
+
+    @Test
+    public void onBindViewHolder_setTitle_shouldShowButtonByDefault() {
+        mPref.setButton1Text(R.string.install_other_apps);
+        mPref.setButton2Text(R.string.install_other_apps);
+        mPref.setButton3Text(R.string.install_other_apps);
+        mPref.setButton4Text(R.string.install_other_apps);
+
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(mRootView.findViewById(R.id.button1).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button2).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button3).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button4).getVisibility())
+                .isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    public void onBindViewHolder_setIcon_shouldShowButtonByDefault() {
+        mPref.setButton1Icon(R.drawable.ic_plus);
+        mPref.setButton2Icon(R.drawable.ic_plus);
+        mPref.setButton3Icon(R.drawable.ic_plus);
+        mPref.setButton4Icon(R.drawable.ic_plus);
+
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(mRootView.findViewById(R.id.button1).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button2).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button3).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button4).getVisibility())
+                .isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    public void onBindViewHolder_notSetTitleOrIcon_shouldNotShowButtonByDefault() {
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(mRootView.findViewById(R.id.button1).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button2).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button3).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button4).getVisibility())
+                .isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void onBindViewHolder_setVisibleIsGoneAndSetTitle_shouldNotShowButton() {
+        mPref.setButton1Text(R.string.install_other_apps).setButton1Visible(false);
+        mPref.setButton2Text(R.string.install_other_apps).setButton2Visible(false);
+        mPref.setButton3Text(R.string.install_other_apps).setButton3Visible(false);
+        mPref.setButton4Text(R.string.install_other_apps).setButton4Visible(false);
+
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(mRootView.findViewById(R.id.button1).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button2).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button3).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button4).getVisibility())
+                .isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void onBindViewHolder_setVisibleIsGoneAndSetIcon_shouldNotShowButton() {
+        mPref.setButton1Icon(R.drawable.ic_plus).setButton1Visible(false);
+        mPref.setButton2Icon(R.drawable.ic_plus).setButton2Visible(false);
+        mPref.setButton3Icon(R.drawable.ic_plus).setButton3Visible(false);
+        mPref.setButton4Icon(R.drawable.ic_plus).setButton4Visible(false);
+
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(mRootView.findViewById(R.id.button1).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button2).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button3).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button4).getVisibility())
+                .isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void onBindViewHolder_setVisibility_shouldUpdateButtonVisibility() {
+        mPref.setButton1Text(R.string.install_other_apps).setButton1Visible(false);
+        mPref.setButton2Text(R.string.install_other_apps).setButton2Visible(false);
+        mPref.setButton3Text(R.string.install_other_apps).setButton3Visible(false);
+        mPref.setButton4Text(R.string.install_other_apps).setButton4Visible(false);
+
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(mRootView.findViewById(R.id.button1).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button2).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button3).getVisibility())
+                .isEqualTo(View.GONE);
+        assertThat(mRootView.findViewById(R.id.button4).getVisibility())
+                .isEqualTo(View.GONE);
+
+        mPref.setButton1Visible(true);
+        mPref.setButton2Visible(true);
+        mPref.setButton3Visible(true);
+        mPref.setButton4Visible(true);
+
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(mRootView.findViewById(R.id.button1).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button2).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button3).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(mRootView.findViewById(R.id.button4).getVisibility())
+                .isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    public void onBindViewHolder_setEnabled_shouldEnableButton() {
+        mPref.setButton1Enabled(true);
+        mPref.setButton2Enabled(false);
+        mPref.setButton3Enabled(true);
+        mPref.setButton4Enabled(false);
+
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(mRootView.findViewById(R.id.button1).isEnabled()).isTrue();
+        assertThat(mRootView.findViewById(R.id.button2).isEnabled()).isFalse();
+        assertThat(mRootView.findViewById(R.id.button3).isEnabled()).isTrue();
+        assertThat(mRootView.findViewById(R.id.button4).isEnabled()).isFalse();
+    }
+
+    @Test
+    public void onBindViewHolder_setText_shouldShowSameText() {
+        mPref.setButton1Text(R.string.install_other_apps);
+        mPref.setButton2Text(R.string.install_other_apps);
+        mPref.setButton3Text(R.string.install_other_apps);
+        mPref.setButton4Text(R.string.install_other_apps);
+
+        mPref.onBindViewHolder(mHolder);
+
+        assertThat(((Button) mRootView.findViewById(R.id.button1)).getText())
+                .isEqualTo(mContext.getText(R.string.install_other_apps));
+        assertThat(((Button) mRootView.findViewById(R.id.button2)).getText())
+                .isEqualTo(mContext.getText(R.string.install_other_apps));
+        assertThat(((Button) mRootView.findViewById(R.id.button3)).getText())
+                .isEqualTo(mContext.getText(R.string.install_other_apps));
+        assertThat(((Button) mRootView.findViewById(R.id.button4)).getText())
+                .isEqualTo(mContext.getText(R.string.install_other_apps));
+    }
+
+    @Test
+    public void onBindViewHolder_setButtonIcon_iconMustDisplayAboveText() {
+        mPref.setButton1Text(R.string.install_other_apps);
+        mPref.setButton1Icon(R.drawable.ic_plus);
+
+        mPref.onBindViewHolder(mHolder);
+        final Drawable[] drawablesAroundText =
+                ((Button) mRootView.findViewById(R.id.button1))
+                        .getCompoundDrawables();
+
+        assertThat(drawablesAroundText[1 /* top */]).isNotNull();
+    }
+
+    @Test
+    public void setButtonIcon_iconResourceIdIsZero_shouldNotDisplayIcon() {
+        mPref.setButton1Text(R.string.install_other_apps);
+        mPref.setButton1Icon(0);
+
+        mPref.onBindViewHolder(mHolder);
+        final Drawable[] drawablesAroundText =
+                ((Button) mRootView.findViewById(R.id.button1))
+                        .getCompoundDrawables();
+
+        assertThat(drawablesAroundText[1 /* top */]).isNull();
+    }
+
+    @Test
+    public void setButtonIcon_iconResourceIdNotExisting_shouldNotDisplayIconAndCrash() {
+        mPref.setButton1Text(R.string.install_other_apps);
+        mPref.setButton1Icon(999999999 /* not existing id */);
+        // Should not crash here
+        mPref.onBindViewHolder(mHolder);
+        final Drawable[] drawablesAroundText =
+                ((Button) mRootView.findViewById(R.id.button1))
+                        .getCompoundDrawables();
+
+        assertThat(drawablesAroundText[1 /* top */]).isNull();
+    }
+
+    public static ActionButtonsPreference createMock() {
+        final ActionButtonsPreference pref = mock(ActionButtonsPreference.class);
+        when(pref.setButton1Text(anyInt())).thenReturn(pref);
+        when(pref.setButton1Icon(anyInt())).thenReturn(pref);
+        when(pref.setButton1Enabled(anyBoolean())).thenReturn(pref);
+        when(pref.setButton1Visible(anyBoolean())).thenReturn(pref);
+        when(pref.setButton1OnClickListener(any(View.OnClickListener.class))).thenReturn(pref);
+
+        when(pref.setButton2Text(anyInt())).thenReturn(pref);
+        when(pref.setButton2Icon(anyInt())).thenReturn(pref);
+        when(pref.setButton2Enabled(anyBoolean())).thenReturn(pref);
+        when(pref.setButton2Visible(anyBoolean())).thenReturn(pref);
+        when(pref.setButton2OnClickListener(any(View.OnClickListener.class))).thenReturn(pref);
+
+        when(pref.setButton3Text(anyInt())).thenReturn(pref);
+        when(pref.setButton3Icon(anyInt())).thenReturn(pref);
+        when(pref.setButton3Enabled(anyBoolean())).thenReturn(pref);
+        when(pref.setButton3Visible(anyBoolean())).thenReturn(pref);
+        when(pref.setButton3OnClickListener(any(View.OnClickListener.class))).thenReturn(pref);
+
+        when(pref.setButton4Text(anyInt())).thenReturn(pref);
+        when(pref.setButton4Icon(anyInt())).thenReturn(pref);
+        when(pref.setButton4Enabled(anyBoolean())).thenReturn(pref);
+        when(pref.setButton4Visible(anyBoolean())).thenReturn(pref);
+        when(pref.setButton4OnClickListener(any(View.OnClickListener.class))).thenReturn(pref);
+        return pref;
+    }
+}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AnimatedImageViewTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AnimatedImageViewTest.java
index a00f12d..d41d511 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AnimatedImageViewTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AnimatedImageViewTest.java
@@ -22,14 +22,13 @@
 import android.graphics.drawable.AnimatedRotateDrawable;
 import android.view.View;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class AnimatedImageViewTest {
     private AnimatedImageView mAnimatedImageView;
 
@@ -47,5 +46,4 @@
         AnimatedRotateDrawable drawable = (AnimatedRotateDrawable) mAnimatedImageView.getDrawable();
         assertThat(drawable.isRunning()).isTrue();
     }
-
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceMixinCompatTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceMixinCompatTest.java
index e030005..601da051 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceMixinCompatTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceMixinCompatTest.java
@@ -18,7 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -29,7 +29,6 @@
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -37,9 +36,10 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class FooterPreferenceMixinCompatTest {
 
     @Mock
@@ -97,5 +97,4 @@
         verify(mScreen).removePreference(any(FooterPreference.class));
         verify(mScreen, times(2)).addPreference(any(FooterPreference.class));
     }
-
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceMixinTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceMixinTest.java
index 8817ff7..7ae5d2d 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceMixinTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceMixinTest.java
@@ -18,7 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -29,7 +29,6 @@
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -37,10 +36,10 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowApplication;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class FooterPreferenceMixinTest {
 
     @Mock
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceTest.java
index e0eceb4..0d2399e 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/FooterPreferenceTest.java
@@ -26,14 +26,14 @@
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class FooterPreferenceTest {
 
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/LayoutPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/LayoutPreferenceTest.java
new file mode 100644
index 0000000..99261a3
--- /dev/null
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/LayoutPreferenceTest.java
@@ -0,0 +1,90 @@
+/*
+ * 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.settingslib.widget;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+
+import androidx.preference.Preference.OnPreferenceClickListener;
+import androidx.preference.PreferenceViewHolder;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class LayoutPreferenceTest {
+
+    private LayoutPreference mPreference;
+    private PreferenceViewHolder mHolder;
+
+    @Before
+    public void setUp() {
+        final Context mContext = RuntimeEnvironment.application;
+        mPreference = new LayoutPreference(mContext, R.layout.settings_entity_header);
+        mHolder = PreferenceViewHolder.createInstanceForTests(LayoutInflater.from(mContext)
+                .inflate(R.layout.layout_preference_frame, null, false));
+    }
+
+    @Test
+    public void setOnPreferenceClickListener_layoutPreferenceShouldListenClickEvent() {
+        final OnPreferenceClickListener listener = mock(OnPreferenceClickListener.class);
+
+        mPreference.setOnPreferenceClickListener(listener);
+        mPreference.onBindViewHolder(mHolder);
+
+        mHolder.itemView.callOnClick();
+
+        verify(listener).onPreferenceClick(mPreference);
+        assertThat(mHolder.itemView.isFocusable()).isTrue();
+        assertThat(mHolder.itemView.isClickable()).isTrue();
+    }
+
+    @Test
+    public void setNonSelectable_viewShouldNotBeSelectable() {
+        mPreference.setSelectable(false);
+        mPreference.onBindViewHolder(mHolder);
+
+        assertThat(mHolder.itemView.isFocusable()).isFalse();
+        assertThat(mHolder.itemView.isClickable()).isFalse();
+    }
+
+    @Test
+    public void disableSomeView_shouldMaintainStateAfterBind() {
+        mPreference.findViewById(android.R.id.button1).setEnabled(false);
+        mPreference.findViewById(android.R.id.button2).setEnabled(true);
+
+        mPreference.onBindViewHolder(mHolder);
+
+        assertThat(mPreference.findViewById(android.R.id.button1).isEnabled()).isFalse();
+        assertThat(mPreference.findViewById(android.R.id.button2).isEnabled()).isTrue();
+    }
+
+    @Test
+    public void allowDividerBelow_shouldSaveCorrectDividerStatus() {
+        mPreference.setAllowDividerBelow(true);
+
+        assertThat(mPreference.isAllowDividerBelow()).isTrue();
+    }
+}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/apppreference/AppPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/apppreference/AppPreferenceTest.java
index 10c9dfb..da97cc8 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/apppreference/AppPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/apppreference/AppPreferenceTest.java
@@ -23,14 +23,13 @@
 
 import androidx.preference.PreferenceViewHolder;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class AppPreferenceTest {
 
     private Context mContext;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java
index 86443bd..c5cbea7 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/AccessPointPreferenceTest.java
@@ -25,16 +25,15 @@
 import android.content.Context;
 import android.graphics.drawable.ColorDrawable;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class AccessPointPreferenceTest {
 
     private Context mContext = RuntimeEnvironment.application;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/TimestampedScoredNetworkTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/TimestampedScoredNetworkTest.java
index f0e8c66..b059df1 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/TimestampedScoredNetworkTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/TimestampedScoredNetworkTest.java
@@ -22,15 +22,14 @@
 import android.net.WifiKey;
 import android.os.Parcel;
 
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.Date;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class TimestampedScoredNetworkTest {
   private TimestampedScoredNetwork impl;
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiUtilsTest.java
index 07c50fd..89960cb 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiUtilsTest.java
@@ -37,19 +37,19 @@
 import android.util.ArraySet;
 
 import com.android.settingslib.R;
-import com.android.settingslib.SettingsLibRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
 import java.util.ArrayList;
 import java.util.Set;
 
-@RunWith(SettingsLibRobolectricTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
 public class WifiUtilsTest {
     private static final String TEST_SSID = "\"test_ssid\"";
     private static final String TEST_BSSID = "00:00:00:00:00:00";
@@ -79,7 +79,7 @@
         Bundle bundle = new Bundle();
         ArrayList<ScanResult> scanResults = buildScanResultCache();
         bundle.putParcelableArray(AccessPoint.KEY_SCANRESULTS,
-                                  scanResults.toArray(new Parcelable[scanResults.size()]));
+                                  scanResults.toArray(new Parcelable[0]));
         AccessPoint ap = new AccessPoint(mContext, bundle);
 
         when(mockWifiNetworkScoreCache.getScoredNetwork(any(ScanResult.class)))
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
index cbb6e82..d1824d7 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
@@ -855,6 +855,10 @@
                 GlobalSettingsProto.MultiSim.SMS_PROMPT);
         p.end(multiSimToken);
 
+        dumpSetting(s, p,
+                Global.NATIVE_FLAGS_HEALTH_CHECK_ENABLED,
+                GlobalSettingsProto.NATIVE_FLAGS_HEALTH_CHECK_ENABLED);
+
         final long netstatsToken = p.start(GlobalSettingsProto.NETSTATS);
         dumpSetting(s, p,
                 Settings.Global.NETSTATS_ENABLED,
@@ -1302,6 +1306,9 @@
         dumpSetting(s, p,
                 Settings.Global.WARNING_TEMPERATURE,
                 GlobalSettingsProto.TemperatureWarning.WARNING_TEMPERATURE_LEVEL);
+        dumpSetting(s, p,
+                Settings.Global.USB_ALARM_TEMPERATURE,
+                GlobalSettingsProto.TemperatureWarning.USB_ALARM_TEMPERATURE_LEVEL);
         p.end(tempWarningToken);
 
         final long tetherToken = p.start(GlobalSettingsProto.TETHER);
@@ -1910,6 +1917,15 @@
                 SecureSettingsProto.Location.CHANGER);
         p.end(locationToken);
 
+        final long locationAccessCheckToken = p.start(SecureSettingsProto.LOCATION_ACCESS_CHECK);
+        dumpSetting(s, p,
+                Settings.Secure.LOCATION_ACCESS_CHECK_INTERVAL_MILLIS,
+                SecureSettingsProto.LocationAccessCheck.INTERVAL_MILLIS);
+        dumpSetting(s, p,
+                Settings.Secure.LOCATION_ACCESS_CHECK_DELAY_MILLIS,
+                SecureSettingsProto.LocationAccessCheck.DELAY_MILLIS);
+        p.end(locationAccessCheckToken);
+
         final long lockScreenToken = p.start(SecureSettingsProto.LOCK_SCREEN);
         // Settings.Secure.LOCK_BIOMETRIC_WEAK_FLAGS intentionally excluded since it's deprecated.
         // Settings.Secure.LOCK_PATTERN_ENABLED intentionally excluded since it's deprecated.
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index e0c4d72..00ea45c 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -185,6 +185,9 @@
     private static final Bundle NULL_SETTING_BUNDLE = Bundle.forPair(
             Settings.NameValueTable.VALUE, null);
 
+    public static final String RESULT_ROWS_DELETED = "result_rows_deleted";
+    public static final String RESULT_SETTINGS_LIST = "result_settings_list";
+
     // Overlay specified settings whitelisted for Instant Apps
     private static final Set<String> OVERLAY_ALLOWED_GLOBAL_INSTANT_APP_SETTINGS = new ArraySet<>();
     private static final Set<String> OVERLAY_ALLOWED_SYSTEM_INSTANT_APP_SETTINGS = new ArraySet<>();
@@ -460,6 +463,48 @@
                 break;
             }
 
+            case Settings.CALL_METHOD_DELETE_SYSTEM: {
+                int rows = deleteSystemSetting(name, requestingUserId) ? 1 : 0;
+                Bundle result = new Bundle();
+                result.putInt(RESULT_ROWS_DELETED, rows);
+                return result;
+            }
+
+            case Settings.CALL_METHOD_DELETE_SECURE: {
+                int rows = deleteSecureSetting(name, requestingUserId, false) ? 1 : 0;
+                Bundle result = new Bundle();
+                result.putInt(RESULT_ROWS_DELETED, rows);
+                return result;
+            }
+
+            case Settings.CALL_METHOD_DELETE_GLOBAL: {
+                int rows = deleteGlobalSetting(name, requestingUserId, false) ? 1 : 0;
+                Bundle result = new Bundle();
+                result.putInt(RESULT_ROWS_DELETED, rows);
+                return result;
+            }
+
+            case Settings.CALL_METHOD_LIST_SYSTEM: {
+                Bundle result = new Bundle();
+                result.putStringArrayList(RESULT_SETTINGS_LIST,
+                        buildSettingsList(getAllSystemSettings(requestingUserId, null)));
+                return result;
+            }
+
+            case Settings.CALL_METHOD_LIST_SECURE: {
+                Bundle result = new Bundle();
+                result.putStringArrayList(RESULT_SETTINGS_LIST,
+                        buildSettingsList(getAllSecureSettings(requestingUserId, null)));
+                return result;
+            }
+
+            case Settings.CALL_METHOD_LIST_GLOBAL: {
+                Bundle result = new Bundle();
+                result.putStringArrayList(RESULT_SETTINGS_LIST,
+                        buildSettingsList(getAllGlobalSettings(null)));
+                return result;
+            }
+
             default: {
                 Slog.w(LOG_TAG, "call() with invalid method: " + method);
             } break;
@@ -529,6 +574,20 @@
         }
     }
 
+    private ArrayList<String> buildSettingsList(Cursor cursor) {
+        final ArrayList<String> lines = new ArrayList<String>();
+        try {
+            while (cursor != null && cursor.moveToNext()) {
+                lines.add(cursor.getString(1) + "=" + cursor.getString(2));
+            }
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+        return lines;
+    }
+
     @Override
     public Uri insert(Uri uri, ContentValues values) {
         if (DEBUG) {
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsService.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsService.java
index 379cfc7..13537c4 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsService.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsService.java
@@ -19,8 +19,6 @@
 import android.app.ActivityManager;
 import android.content.IContentProvider;
 import android.content.pm.PackageManager;
-import android.database.Cursor;
-import android.net.Uri;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Process;
@@ -265,9 +263,6 @@
             }
             if (mUser < 0) {
                 mUser = UserHandle.USER_SYSTEM;
-            } else if (mVerb == CommandVerb.DELETE || mVerb == CommandVerb.LIST) {
-                perr.println("--user not supported for delete and list.");
-                return -1;
             }
             UserManager userManager = UserManager.get(mProvider.getContext());
             if (userManager.getUserInfo(mUser) == null) {
@@ -304,27 +299,22 @@
             return 0;
         }
 
-        private List<String> listForUser(IContentProvider provider, int userHandle, String table) {
-            final Uri uri = "system".equals(table) ? Settings.System.CONTENT_URI
-                    : "secure".equals(table) ? Settings.Secure.CONTENT_URI
-                    : "global".equals(table) ? Settings.Global.CONTENT_URI
-                    : null;
-            final ArrayList<String> lines = new ArrayList<String>();
-            if (uri == null) {
-                return lines;
+        List<String> listForUser(IContentProvider provider, int userHandle, String table) {
+            final String callListCommand;
+            if ("system".equals(table)) callListCommand = Settings.CALL_METHOD_LIST_SYSTEM;
+            else if ("secure".equals(table)) callListCommand = Settings.CALL_METHOD_LIST_SECURE;
+            else if ("global".equals(table)) callListCommand = Settings.CALL_METHOD_LIST_GLOBAL;
+            else {
+                getErrPrintWriter().println("Invalid table; no list performed");
+                throw new IllegalArgumentException("Invalid table " + table);
             }
+            final ArrayList<String> lines = new ArrayList<String>();
             try {
-                final Cursor cursor = provider.query(resolveCallingPackage(), uri, null, null,
-                        null);
-                try {
-                    while (cursor != null && cursor.moveToNext()) {
-                        lines.add(cursor.getString(1) + "=" + cursor.getString(2));
-                    }
-                } finally {
-                    if (cursor != null) {
-                        cursor.close();
-                    }
-                }
+                Bundle arg = new Bundle();
+                arg.putInt(Settings.CALL_METHOD_USER_KEY, userHandle);
+                Bundle result =
+                        provider.call(resolveCallingPackage(), callListCommand, null, arg);
+                lines.addAll(result.getStringArrayList(SettingsProvider.RESULT_SETTINGS_LIST));
                 Collections.sort(lines);
             } catch (RemoteException e) {
                 throw new RuntimeException("Failed in IPC", e);
@@ -392,22 +382,27 @@
 
         int deleteForUser(IContentProvider provider, int userHandle,
                 final String table, final String key) {
-            Uri targetUri;
-            if ("system".equals(table)) targetUri = Settings.System.getUriFor(key);
-            else if ("secure".equals(table)) targetUri = Settings.Secure.getUriFor(key);
-            else if ("global".equals(table)) targetUri = Settings.Global.getUriFor(key);
-            else {
+            final String callDeleteCommand;
+            if ("system".equals(table)) {
+                callDeleteCommand = Settings.CALL_METHOD_DELETE_SYSTEM;
+            } else if ("secure".equals(table)) {
+                callDeleteCommand = Settings.CALL_METHOD_DELETE_SECURE;
+            } else if ("global".equals(table)) {
+                callDeleteCommand = Settings.CALL_METHOD_DELETE_GLOBAL;
+            } else {
                 getErrPrintWriter().println("Invalid table; no delete performed");
                 throw new IllegalArgumentException("Invalid table " + table);
             }
 
-            int num = 0;
             try {
-                num = provider.delete(resolveCallingPackage(), targetUri, null, null);
+                Bundle arg = new Bundle();
+                arg.putInt(Settings.CALL_METHOD_USER_KEY, userHandle);
+                Bundle result =
+                        provider.call(resolveCallingPackage(), callDeleteCommand, key, arg);
+                return result.getInt(SettingsProvider.RESULT_ROWS_DELETED);
             } catch (RemoteException e) {
                 throw new RuntimeException("Failed in IPC", e);
             }
-            return num;
         }
 
         void resetForUser(IContentProvider provider, int userHandle,
@@ -473,12 +468,12 @@
                 pw.println("      Change the contents of KEY to VALUE.");
                 pw.println("      TAG to associate with the setting.");
                 pw.println("      {default} to set as the default, case-insensitive only for global/secure namespace");
-                pw.println("  delete NAMESPACE KEY");
+                pw.println("  delete [--user <USER_ID> | current] NAMESPACE KEY");
                 pw.println("      Delete the entry for KEY.");
                 pw.println("  reset [--user <USER_ID> | current] NAMESPACE {PACKAGE_NAME | RESET_MODE}");
                 pw.println("      Reset the global/secure table for a package with mode.");
                 pw.println("      RESET_MODE is one of {untrusted_defaults, untrusted_clear, trusted_defaults}, case-insensitive");
-                pw.println("  list NAMESPACE");
+                pw.println("  list [--user <USER_ID> | current] NAMESPACE");
                 pw.println("      Print all defined keys.");
                 pw.println("      NAMESPACE is one of {system, secure, global}, case-insensitive");
             }
diff --git a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java
index 572a924..183f599 100644
--- a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java
+++ b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java
@@ -32,9 +32,11 @@
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.util.Log;
-import java.util.concurrent.atomic.AtomicBoolean;
+
 import org.junit.Test;
 
+import java.util.concurrent.atomic.AtomicBoolean;
+
 /**
  * Tests for the SettingContentProvider.
  *
@@ -258,7 +260,7 @@
                     FAKE_SETTING_VALUE, false);
 
             // Reset the changes made by the "shell/root" package
-            resetToDefaultsViaShell(type, "shell");
+            resetToDefaultsViaShell(type, "com.android.shell");
             resetToDefaultsViaShell(type, "root");
 
             // Make sure the old APIs don't set defaults
@@ -272,7 +274,7 @@
                     FAKE_SETTING_VALUE_2, false);
 
             // Reset the changes made by this package
-            resetToDefaultsViaShell(type, "shell");
+            resetToDefaultsViaShell(type, "com.android.shell");
             resetToDefaultsViaShell(type, "root");
 
             // Make sure the old APIs don't set defaults
@@ -313,7 +315,7 @@
                     FAKE_SETTING_VALUE_2, "TOKEN2", false);
 
             // Reset settings associated with TOKEN1
-            resetToDefaultsViaShell(type, "shell", "TOKEN1");
+            resetToDefaultsViaShell(type, "com.android.shell", "TOKEN1");
             resetToDefaultsViaShell(type, "root", "TOKEN1");
 
             // Make sure TOKEN1 settings are reset
@@ -325,7 +327,7 @@
                     FAKE_SETTING_NAME_1));
 
             // Reset settings associated with TOKEN2
-            resetToDefaultsViaShell(type, "shell", "TOKEN2");
+            resetToDefaultsViaShell(type, "com.android.shell", "TOKEN2");
             resetToDefaultsViaShell(type, "root", "TOKEN2");
 
             // Make sure TOKEN2 settings are reset
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index 89690fb..83e8369 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -130,11 +130,13 @@
     <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
     <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
     <uses-permission android:name="android.permission.MANAGE_AUTO_FILL" />
+    <uses-permission android:name="android.permission.MANAGE_SMART_SUGGESTIONS" />
     <uses-permission android:name="android.permission.NETWORK_SETTINGS" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     <uses-permission android:name="android.permission.SET_TIME" />
     <uses-permission android:name="android.permission.SET_TIME_ZONE" />
     <uses-permission android:name="android.permission.DISABLE_HIDDEN_API_CHECKS" />
+    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
     <!-- Permission needed to rename bugreport notifications (so they're not shown as Shell) -->
     <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
     <!-- Permission needed to hold a wakelock in dumpstate.cpp (drop_root_user()) -->
diff --git a/packages/Shell/OWNERS b/packages/Shell/OWNERS
index 75c0391..6ba1fcb 100644
--- a/packages/Shell/OWNERS
+++ b/packages/Shell/OWNERS
@@ -1,10 +1,12 @@
+set noparent
+
+jsharkey@android.com
+felipeal@google.com
+nandana@google.com
 svetoslavganov@google.com
 hackbod@google.com
 yamasani@google.com
 moltmann@google.com
 toddke@google.com
-jsharkey@google.com
 cbrubaker@google.com
 omakoto@google.com
-nandana@google.com
-felipeal@google.com
diff --git a/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/misc/SystemServicesProxy.java
index f8b61cd..44354bc1 100644
--- a/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -302,11 +302,13 @@
     }
 
     /**
-     * Returns whether there is a soft nav bar.
+     * Returns whether there is a soft nav bar on specified display.
+     *
+     * @param displayId the id of display to check if there is a software navigation bar.
      */
-    public boolean hasSoftNavigationBar() {
+    public boolean hasSoftNavigationBar(int displayId) {
         try {
-            return mIwm.hasNavigationBar();
+            return mIwm.hasNavigationBar(displayId);
         } catch (RemoteException e) {
             e.printStackTrace();
         }
diff --git a/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/RecentsView.java
index dfa38ba..8723fb9 100644
--- a/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/RecentsView.java
+++ b/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/RecentsView.java
@@ -631,7 +631,8 @@
                     }
                 };
                 WindowManagerWrapper.getInstance().overridePendingAppTransitionMultiThumbFuture(
-                        future, animStartedListener, getHandler(), true /* scaleUp */);
+                        future, animStartedListener, getHandler(), true /* scaleUp */,
+                        getContext().getDisplayId());
                 MetricsLogger.action(mContext, MetricsEvent.ACTION_WINDOW_DOCK_DRAG_DROP,
                         event.task.getTopComponent().flattenToShortString());
             } else {
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/ActivityStarter.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/ActivityStarter.java
index f492208..4891e50 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/ActivityStarter.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/ActivityStarter.java
@@ -30,6 +30,12 @@
     int VERSION = 1;
 
     void startPendingIntentDismissingKeyguard(PendingIntent intent);
+
+    /**
+     * Similar to {@link #startPendingIntentDismissingKeyguard(PendingIntent, Runnable)}, but
+     * allow you to specify the callback that is executed after the intent is sent.
+     */
+    void startPendingIntentDismissingKeyguard(PendingIntent intent, Runnable intentSentCallback);
     void startActivity(Intent intent, boolean dismissShade);
     void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade);
     void startActivity(Intent intent, boolean dismissShade, Callback callback);
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/SensorManagerPlugin.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/SensorManagerPlugin.java
index ba4eb5f..88b8dd8 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/SensorManagerPlugin.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/SensorManagerPlugin.java
@@ -52,7 +52,9 @@
     }
 
     class Sensor {
-        public static int TYPE_WAKE_LOCK_SCREEN = 1;
+        public static final int TYPE_WAKE_LOCK_SCREEN = 1;
+        public static final int TYPE_WAKE_DISPLAY = 2;
+        public static final int TYPE_SWIPE = 3;
 
         int mType;
 
@@ -68,6 +70,7 @@
     class TriggerEvent {
         Sensor mSensor;
         int mVendorType;
+        float[] mValues;
 
         /**
          * Creates a trigger event
@@ -76,14 +79,30 @@
          *                   e.g. SINGLE_TAP = 1, DOUBLE_TAP = 2, etc.
          */
         public TriggerEvent(Sensor sensor, int vendorType) {
+            this(sensor, vendorType, null);
+        }
+
+        /**
+         * Creates a trigger event
+         * @param sensor The type of sensor, e.g. TYPE_WAKE_LOCK_SCREEN
+         * @param vendorType The vendor type, which should be unique for each type of sensor,
+         *                   e.g. SINGLE_TAP = 1, DOUBLE_TAP = 2, etc.
+         * @param values Values captured by the sensor.
+         */
+        public TriggerEvent(Sensor sensor, int vendorType, float[] values) {
             mSensor = sensor;
             mVendorType = vendorType;
+            mValues = values;
         }
 
         public Sensor getSensor() {
             return mSensor;
         }
 
+        public float[] getValues() {
+            return mValues;
+        }
+
         public int getVendorType() {
             return mVendorType;
         }
diff --git a/packages/SystemUI/res/anim/dismiss_all_shape_animation_1.xml b/packages/SystemUI/res/anim/dismiss_all_shape_animation_1.xml
deleted file mode 100644
index 3cc98d8..0000000
--- a/packages/SystemUI/res/anim/dismiss_all_shape_animation_1.xml
+++ /dev/null
@@ -1,22 +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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android" >
-    <objectAnimator
-        android:duration="500"
-        android:propertyXName="translateX"
-        android:propertyYName="translateY"
-        android:pathData="M 0,0 c 31.33333,0 156.66667,0 188,0 "
-        android:interpolator="@android:interpolator/fast_out_slow_in" />
-</set>
diff --git a/packages/SystemUI/res/anim/dismiss_all_shape_animation_2.xml b/packages/SystemUI/res/anim/dismiss_all_shape_animation_2.xml
deleted file mode 100644
index eda843d..0000000
--- a/packages/SystemUI/res/anim/dismiss_all_shape_animation_2.xml
+++ /dev/null
@@ -1,30 +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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="33"
-            android:propertyXName="translateX"
-            android:propertyYName="translateY"
-            android:pathData="M -12,18 L -12,18" />
-        <objectAnimator
-            android:duration="500"
-            android:propertyXName="translateX"
-            android:propertyYName="translateY"
-            android:pathData="M -12,18 c 31.33333,0 156.66667,0 188,0 "
-            android:interpolator="@android:interpolator/fast_out_slow_in" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/dismiss_all_shape_animation_3.xml b/packages/SystemUI/res/anim/dismiss_all_shape_animation_3.xml
deleted file mode 100644
index cab3d5c..0000000
--- a/packages/SystemUI/res/anim/dismiss_all_shape_animation_3.xml
+++ /dev/null
@@ -1,30 +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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="67"
-            android:propertyXName="translateX"
-            android:propertyYName="translateY"
-            android:pathData="M -24,36 L -24,36" />
-        <objectAnimator
-            android:duration="500"
-            android:propertyXName="translateX"
-            android:propertyYName="translateY"
-            android:pathData="M -24,36 c 31.33333,0 156.66667,0 188,0 "
-            android:interpolator="@android:interpolator/fast_out_slow_in" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1.xml b/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1.xml
deleted file mode 100644
index e435d9a..0000000
--- a/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1.xml
+++ /dev/null
@@ -1,31 +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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="150"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1"
-            android:valueTo="1"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="100"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1"
-            android:valueTo="0"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1_1.xml b/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1_1.xml
deleted file mode 100644
index e31a7db..0000000
--- a/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1_1.xml
+++ /dev/null
@@ -1,31 +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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="183"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1"
-            android:valueTo="1"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="100"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1"
-            android:valueTo="0"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1_2.xml b/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1_2.xml
deleted file mode 100644
index 2409612..0000000
--- a/packages/SystemUI/res/anim/dismiss_all_shape_animation_rectangle_path_1_2.xml
+++ /dev/null
@@ -1,31 +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.
--->
-<set xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="217"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1"
-            android:valueTo="1"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="100"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1"
-            android:valueTo="0"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/fab_elevation.xml b/packages/SystemUI/res/anim/fab_elevation.xml
deleted file mode 100644
index 2c76a86..0000000
--- a/packages/SystemUI/res/anim/fab_elevation.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="true" android:state_pressed="true">
-        <set>
-            <objectAnimator
-                android:duration="@android:integer/config_shortAnimTime"
-                android:propertyName="translationZ"
-                android:valueTo="@dimen/fab_press_translation_z"
-                android:valueType="floatType" />
-        </set>
-    </item>
-    <item>
-        <set>
-            <objectAnimator
-                android:duration="@android:integer/config_shortAnimTime"
-                android:propertyName="translationZ"
-                android:valueTo="0"
-                android:valueType="floatType" />
-        </set>
-    </item>
-</selector>
diff --git a/packages/SystemUI/res/anim/ic_landscape_to_rotate_arrows_animation.xml b/packages/SystemUI/res/anim/ic_landscape_to_rotate_arrows_animation.xml
deleted file mode 100644
index 8fdad80..0000000
--- a/packages/SystemUI/res/anim/ic_landscape_to_rotate_arrows_animation.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <objectAnimator
-        android:duration="616"
-        android:propertyName="rotation"
-        android:valueFrom="-90.0"
-        android:valueTo="0.0"
-        android:valueType="floatType"
-        android:interpolator="@android:interpolator/fast_out_slow_in" />
-</set>
diff --git a/packages/SystemUI/res/anim/ic_landscape_to_rotate_bottom_merged_animation.xml b/packages/SystemUI/res/anim/ic_landscape_to_rotate_bottom_merged_animation.xml
deleted file mode 100644
index 3c3c131..0000000
--- a/packages/SystemUI/res/anim/ic_landscape_to_rotate_bottom_merged_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="50"
-            android:propertyName="fillAlpha"
-            android:valueFrom="0.0"
-            android:valueTo="0.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="83"
-            android:propertyName="fillAlpha"
-            android:valueFrom="0.0"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_landscape_to_rotate_landscape_animation.xml b/packages/SystemUI/res/anim/ic_landscape_to_rotate_landscape_animation.xml
deleted file mode 100644
index 57132e1..0000000
--- a/packages/SystemUI/res/anim/ic_landscape_to_rotate_landscape_animation.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <objectAnimator
-        android:duration="466"
-        android:propertyName="scaleX"
-        android:valueFrom="1.0"
-        android:valueTo="0.909"
-        android:valueType="floatType"
-        android:interpolator="@interpolator/ic_landscape_to_rotate_animation_interpolator_0" />
-    <objectAnimator
-        android:duration="466"
-        android:propertyName="scaleY"
-        android:valueFrom="1.0"
-        android:valueTo="0.909"
-        android:valueType="floatType"
-        android:interpolator="@interpolator/ic_landscape_to_rotate_animation_interpolator_0" />
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="50"
-            android:propertyName="rotation"
-            android:valueFrom="0.0"
-            android:valueTo="0.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="400"
-            android:propertyName="rotation"
-            android:valueFrom="0.0"
-            android:valueTo="45.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/fast_out_slow_in" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_portrait_to_rotate_arrows_0_animation.xml b/packages/SystemUI/res/anim/ic_portrait_to_rotate_arrows_0_animation.xml
deleted file mode 100644
index ad2a5fa..0000000
--- a/packages/SystemUI/res/anim/ic_portrait_to_rotate_arrows_0_animation.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="116"
-            android:propertyName="scaleX"
-            android:valueFrom="1.0"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="333"
-            android:propertyName="scaleX"
-            android:valueFrom="1.0"
-            android:valueTo="0.9"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="116"
-            android:propertyName="scaleY"
-            android:valueFrom="1.0"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="333"
-            android:propertyName="scaleY"
-            android:valueFrom="1.0"
-            android:valueTo="0.9"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_portrait_to_rotate_arrows_animation.xml b/packages/SystemUI/res/anim/ic_portrait_to_rotate_arrows_animation.xml
deleted file mode 100644
index cdb7890..0000000
--- a/packages/SystemUI/res/anim/ic_portrait_to_rotate_arrows_animation.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <objectAnimator
-        android:duration="616"
-        android:propertyName="rotation"
-        android:valueFrom="0.0"
-        android:valueTo="-221.0"
-        android:valueType="floatType"
-        android:interpolator="@android:interpolator/fast_out_slow_in" />
-</set>
diff --git a/packages/SystemUI/res/anim/ic_portrait_to_rotate_bottom_merged_animation.xml b/packages/SystemUI/res/anim/ic_portrait_to_rotate_bottom_merged_animation.xml
deleted file mode 100644
index 46100b4..0000000
--- a/packages/SystemUI/res/anim/ic_portrait_to_rotate_bottom_merged_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="400"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1.0"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="83"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1.0"
-            android:valueTo="0.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_portrait_to_rotate_device_0_animation.xml b/packages/SystemUI/res/anim/ic_portrait_to_rotate_device_0_animation.xml
deleted file mode 100644
index 8f6d24d..0000000
--- a/packages/SystemUI/res/anim/ic_portrait_to_rotate_device_0_animation.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <objectAnimator
-        android:duration="400"
-        android:propertyName="rotation"
-        android:valueFrom="0.0"
-        android:valueTo="-135.0"
-        android:valueType="floatType"
-        android:interpolator="@android:interpolator/fast_out_slow_in" />
-</set>
diff --git a/packages/SystemUI/res/anim/ic_portrait_to_rotate_device_merged_animation.xml b/packages/SystemUI/res/anim/ic_portrait_to_rotate_device_merged_animation.xml
deleted file mode 100644
index 300ed530..0000000
--- a/packages/SystemUI/res/anim/ic_portrait_to_rotate_device_merged_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="66"
-            android:propertyName="pathData"
-            android:valueFrom="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
-            android:valueTo="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
-            android:valueType="pathType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="216"
-            android:propertyName="pathData"
-            android:valueFrom="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
-            android:valueTo="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
-            android:valueType="pathType"
-            android:interpolator="@android:interpolator/fast_out_slow_in" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_landscape_arrows_0_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_landscape_arrows_0_animation.xml
deleted file mode 100644
index ad2a5fa..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_landscape_arrows_0_animation.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="116"
-            android:propertyName="scaleX"
-            android:valueFrom="1.0"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="333"
-            android:propertyName="scaleX"
-            android:valueFrom="1.0"
-            android:valueTo="0.9"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="116"
-            android:propertyName="scaleY"
-            android:valueFrom="1.0"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="333"
-            android:propertyName="scaleY"
-            android:valueFrom="1.0"
-            android:valueTo="0.9"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_landscape_arrows_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_landscape_arrows_animation.xml
deleted file mode 100644
index c152152..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_landscape_arrows_animation.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <objectAnimator
-        android:duration="616"
-        android:propertyName="rotation"
-        android:valueFrom="0.0"
-        android:valueTo="-180.0"
-        android:valueType="floatType"
-        android:interpolator="@android:interpolator/fast_out_slow_in" />
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_landscape_bottom_merged_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_landscape_bottom_merged_animation.xml
deleted file mode 100644
index b2c1eb8..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_landscape_bottom_merged_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="200"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1.0"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="83"
-            android:propertyName="fillAlpha"
-            android:valueFrom="1.0"
-            android:valueTo="0.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_landscape_landscape_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_landscape_landscape_animation.xml
deleted file mode 100644
index 2a9bbe3..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_landscape_landscape_animation.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="116"
-            android:propertyName="scaleX"
-            android:valueFrom="0.909"
-            android:valueTo="0.909"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="166"
-            android:propertyName="scaleX"
-            android:valueFrom="0.909"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@interpolator/ic_rotate_to_landscape_animation_interpolator_0" />
-    </set>
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="116"
-            android:propertyName="scaleY"
-            android:valueFrom="0.909"
-            android:valueTo="0.909"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="166"
-            android:propertyName="scaleY"
-            android:valueFrom="0.909"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@interpolator/ic_rotate_to_landscape_animation_interpolator_0" />
-    </set>
-    <objectAnimator
-        android:duration="616"
-        android:propertyName="rotation"
-        android:valueFrom="45.0"
-        android:valueTo="0.0"
-        android:valueType="floatType"
-        android:interpolator="@android:interpolator/fast_out_slow_in" />
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_portrait_arrows_0_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_portrait_arrows_0_animation.xml
deleted file mode 100644
index ce26770..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_portrait_arrows_0_animation.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <objectAnimator
-        android:duration="466"
-        android:propertyName="scaleX"
-        android:valueFrom="0.9"
-        android:valueTo="1.0"
-        android:valueType="floatType"
-        android:interpolator="@interpolator/ic_rotate_to_portrait_animation_interpolator_0" />
-    <objectAnimator
-        android:duration="466"
-        android:propertyName="scaleY"
-        android:valueFrom="0.9"
-        android:valueTo="1.0"
-        android:valueType="floatType"
-        android:interpolator="@interpolator/ic_rotate_to_portrait_animation_interpolator_0" />
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_portrait_arrows_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_portrait_arrows_animation.xml
deleted file mode 100644
index 6e8941d..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_portrait_arrows_animation.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <objectAnimator
-        android:duration="616"
-        android:propertyName="rotation"
-        android:valueFrom="-221.0"
-        android:valueTo="0.0"
-        android:valueType="floatType"
-        android:interpolator="@android:interpolator/fast_out_slow_in" />
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_portrait_bottom_merged_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_portrait_bottom_merged_animation.xml
deleted file mode 100644
index 3c3c131..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_portrait_bottom_merged_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="50"
-            android:propertyName="fillAlpha"
-            android:valueFrom="0.0"
-            android:valueTo="0.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="83"
-            android:propertyName="fillAlpha"
-            android:valueFrom="0.0"
-            android:valueTo="1.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_portrait_device_0_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_portrait_device_0_animation.xml
deleted file mode 100644
index fd8e4f8..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_portrait_device_0_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="50"
-            android:propertyName="rotation"
-            android:valueFrom="-135.0"
-            android:valueTo="-135.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="400"
-            android:propertyName="rotation"
-            android:valueFrom="-135.0"
-            android:valueTo="0.0"
-            android:valueType="floatType"
-            android:interpolator="@android:interpolator/fast_out_slow_in" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_rotate_to_portrait_device_merged_animation.xml b/packages/SystemUI/res/anim/ic_rotate_to_portrait_device_merged_animation.xml
deleted file mode 100644
index a77a536..0000000
--- a/packages/SystemUI/res/anim/ic_rotate_to_portrait_device_merged_animation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<set
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <set
-        android:ordering="sequentially" >
-        <objectAnimator
-            android:duration="50"
-            android:propertyName="pathData"
-            android:valueFrom="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
-            android:valueTo="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
-            android:valueType="pathType"
-            android:interpolator="@android:interpolator/linear" />
-        <objectAnimator
-            android:duration="500"
-            android:propertyName="pathData"
-            android:valueFrom="M -3.34053039551,-22.9980926514 c -1.3207244873,-1.3207244873 -3.46876525879,-1.26383972168 -4.74829101563,0.125762939453 c 0.0,0.0 -14.8512420654,14.7411804199 -14.8512420654,14.7411804199 c -1.39259338379,1.392578125 -1.44947814941,3.54061889648 -0.125762939453,4.74827575684 c 0.0,0.0 26.4143981934,26.4144134521 26.4143981934,26.4144134521 c 1.3207244873,1.3207244873 3.46876525879,1.26382446289 4.74829101562,-0.125762939453 c 0.0,0.0 14.7381896973,-14.7381896973 14.7381896973,-14.7381896973 c 1.392578125,-1.39259338379 1.44947814941,-3.54061889648 0.125762939453,-4.74829101562 c 0.0,0.0 -26.3013458252,-26.417388916 -26.3013458252,-26.417388916 Z M 2.87156677246,16.9857940674 c 0.0,0.0 -19.7573547363,-19.7573699951 -19.7573547363,-19.7573699951 c 0.0,0.0 14.0142059326,-14.2142181396 14.0142059326,-14.2142181396 c 0.0,0.0 19.7573699951,19.7573699951 19.7573699951,19.7573699951 c 0.0,0.0 -14.0142211914,14.2142181396 -14.0142211914,14.2142181396 Z"
-            android:valueTo="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
-            android:valueType="pathType"
-            android:interpolator="@android:interpolator/fast_out_slow_in" />
-    </set>
-</set>
diff --git a/packages/SystemUI/res/anim/ic_signal_blink_1.xml b/packages/SystemUI/res/anim/ic_signal_blink_1.xml
deleted file mode 100644
index 64580d1..0000000
--- a/packages/SystemUI/res/anim/ic_signal_blink_1.xml
+++ /dev/null
@@ -1,38 +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.
--->
-<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
-    android:interpolator="@android:anim/linear_interpolator"
-    android:duration="@integer/carrier_network_change_anim_time"
-    android:repeatCount="-1">
-
-    <propertyValuesHolder
-        android:propertyName="fillColor"
-        android:valueType="colorType">
-        <keyframe
-            android:fraction="0.0"
-            android:value="?attr/fillColor"/>
-        <keyframe
-            android:fraction="0.32"
-            android:value="?attr/fillColor"/>
-        <keyframe
-            android:fraction="0.33"
-            android:value="?attr/backgroundColor"/>
-        <keyframe
-            android:fraction="1.0"
-            android:value="?attr/backgroundColor"/>
-    </propertyValuesHolder>
-
-</objectAnimator>
diff --git a/packages/SystemUI/res/anim/ic_signal_blink_2.xml b/packages/SystemUI/res/anim/ic_signal_blink_2.xml
deleted file mode 100644
index f055cd07..0000000
--- a/packages/SystemUI/res/anim/ic_signal_blink_2.xml
+++ /dev/null
@@ -1,44 +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.
--->
-<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
-    android:interpolator="@android:anim/linear_interpolator"
-    android:duration="@integer/carrier_network_change_anim_time"
-    android:repeatCount="-1">
-
-    <propertyValuesHolder
-        android:propertyName="fillColor"
-        android:valueType="colorType">
-        <keyframe
-            android:fraction="0.0"
-            android:value="?attr/backgroundColor"/>
-        <keyframe
-            android:fraction="0.32"
-            android:value="?attr/backgroundColor"/>
-        <keyframe
-            android:fraction="0.33"
-            android:value="?attr/fillColor"/>
-        <keyframe
-            android:fraction="0.66"
-            android:value="?attr/fillColor"/>
-        <keyframe
-            android:fraction="0.67"
-            android:value="?attr/backgroundColor"/>
-        <keyframe
-            android:fraction="1.0"
-            android:value="?attr/backgroundColor"/>
-    </propertyValuesHolder>
-
-</objectAnimator>
diff --git a/packages/SystemUI/res/anim/ic_signal_blink_3.xml b/packages/SystemUI/res/anim/ic_signal_blink_3.xml
deleted file mode 100644
index abcd774..0000000
--- a/packages/SystemUI/res/anim/ic_signal_blink_3.xml
+++ /dev/null
@@ -1,38 +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.
--->
-<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
-    android:interpolator="@android:anim/linear_interpolator"
-    android:duration="@integer/carrier_network_change_anim_time"
-    android:repeatCount="-1">
-
-    <propertyValuesHolder
-        android:propertyName="fillColor"
-        android:valueType="colorType">
-        <keyframe
-            android:fraction="0.0"
-            android:value="?attr/backgroundColor"/>
-        <keyframe
-            android:fraction="0.66"
-            android:value="?attr/backgroundColor"/>
-        <keyframe
-            android:fraction="0.67"
-            android:value="?attr/fillColor"/>
-        <keyframe
-            android:fraction="1.0"
-            android:value="?attr/fillColor"/>
-    </propertyValuesHolder>
-
-</objectAnimator>
diff --git a/packages/SystemUI/res/anim/system_out.xml b/packages/SystemUI/res/anim/system_out.xml
deleted file mode 100644
index 4717e47..0000000
--- a/packages/SystemUI/res/anim/system_out.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-    >
-    <alpha android:toAlpha="0.0" android:fromAlpha="1.0"
-        android:duration="@android:integer/config_longAnimTime" 
-        />
-</set>
diff --git a/packages/SystemUI/res/drawable/car_ic_music.xml b/packages/SystemUI/res/drawable/car_ic_music.xml
deleted file mode 100644
index f90cd69..0000000
--- a/packages/SystemUI/res/drawable/car_ic_music.xml
+++ /dev/null
@@ -1,30 +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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="56dp"
-    android:height="56dp"
-    android:viewportWidth="48"
-    android:viewportHeight="48">
-
-  <path
-      android:fillAlpha=".1"
-      android:strokeAlpha=".1"
-      android:pathData="M0 0h48v48H0z" />
-  <path
-      android:fillColor="@color/car_grey_50"
-      android:pathData="M24 2C14.06 2 6 10.06 6 20v14c0 3.31 2.69 6 6 6h6V24h-8v-4c0-7.73 6.27-14
-14-14s14 6.27 14 14v4h-8v16h6c3.31 0 6-2.69 6-6V20c0-9.94-8.06-18-18-18z" />
-</vector>
diff --git a/packages/SystemUI/res/drawable/car_ic_navigation.xml b/packages/SystemUI/res/drawable/car_ic_navigation.xml
deleted file mode 100644
index 328efa0..0000000
--- a/packages/SystemUI/res/drawable/car_ic_navigation.xml
+++ /dev/null
@@ -1,28 +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
-  -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="32dp"
-    android:height="37dp"
-    android:viewportWidth="32.0"
-    android:viewportHeight="37.0">
-  <path
-      android:pathData="M16.62,0.61L31.33,35.21C31.55,35.72 31.31,36.3 30.8,36.52C30.48,36.66 30.12,36.62 29.83,36.42L15.7,26.44L1.58,36.42C1.13,36.73 0.5,36.63 0.18,36.18C-0.02,35.89 -0.06,35.53 0.08,35.21L14.78,0.61C15,0.1 15.59,-0.14 16.1,0.08C16.33,0.18 16.52,0.37 16.62,0.61Z"
-      android:strokeColor="#00000000"
-      android:fillType="evenOdd"
-      android:fillColor="@color/car_grey_50"
-      android:strokeWidth="1"/>
-</vector>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/car_ic_notification.xml b/packages/SystemUI/res/drawable/car_ic_notification.xml
deleted file mode 100644
index 61d937b90..0000000
--- a/packages/SystemUI/res/drawable/car_ic_notification.xml
+++ /dev/null
@@ -1,28 +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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="56dp"
-    android:height="56dp"
-    android:viewportWidth="48"
-    android:viewportHeight="48">
-
-    <path
-        android:fillColor="#FFFFFF"
-        android:pathData="M24 44c2.21 0 4-1.79 4-4h-8c0 2.21 1.79 4 4
-4zm12-12V22c0-6.15-3.27-11.28-9-12.64V8c0-1.66-1.34-3-3-3s-3 1.34-3 3v1.36c-5.73
-1.36-9 6.49-9 12.64v10l-4 4v2h32v-2l-4-4zm-4 2H16V22c0-4.97 3.03-9 8-9s8 4.03 8
-9v12z" />
-</vector>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/car_ic_overview.xml b/packages/SystemUI/res/drawable/car_ic_overview.xml
deleted file mode 100644
index 4651dcb..0000000
--- a/packages/SystemUI/res/drawable/car_ic_overview.xml
+++ /dev/null
@@ -1,28 +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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="56dp"
-    android:height="56dp"
-    android:viewportWidth="48"
-    android:viewportHeight="48">
-
-    <path
-        android:pathData="M0 0h48v48H0z" />
-    <path
-        android:fillColor="#FFFFFFFF"
-        android:pathData="M24 4C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm0 36c-8.82
-0-16-7.18-16-16S15.18 8 24 8s16 7.18 16 16-7.18 16-16 16z" />
-</vector>
diff --git a/packages/SystemUI/res/drawable/car_rounded_bg_bottom.xml b/packages/SystemUI/res/drawable/car_rounded_bg_bottom.xml
deleted file mode 100644
index 25b449a..0000000
--- a/packages/SystemUI/res/drawable/car_rounded_bg_bottom.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-       android:shape="rectangle">
-    <solid android:color="?android:attr/colorBackgroundFloating" />
-    <corners
-        android:bottomLeftRadius="@dimen/car_radius_3"
-        android:topLeftRadius="0dp"
-        android:bottomRightRadius="@dimen/car_radius_3"
-        android:topRightRadius="0dp"
-        />
-</shape>
diff --git a/packages/SystemUI/res/drawable/dismiss_all_shape_animation.xml b/packages/SystemUI/res/drawable/dismiss_all_shape_animation.xml
deleted file mode 100644
index 9e71cbe..0000000
--- a/packages/SystemUI/res/drawable/dismiss_all_shape_animation.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/dismiss_all_shape" >
-    <target
-        android:name="3"
-        android:animation="@anim/dismiss_all_shape_animation_3" />
-    <target
-        android:name="rectangle_path_1_2"
-        android:animation="@anim/dismiss_all_shape_animation_rectangle_path_1_2" />
-    <target
-        android:name="2"
-        android:animation="@anim/dismiss_all_shape_animation_2" />
-    <target
-        android:name="rectangle_path_1_1"
-        android:animation="@anim/dismiss_all_shape_animation_rectangle_path_1_1" />
-    <target
-        android:name="1"
-        android:animation="@anim/dismiss_all_shape_animation_1" />
-    <target
-        android:name="rectangle_path_1"
-        android:animation="@anim/dismiss_all_shape_animation_rectangle_path_1" />
-</animated-vector>
diff --git a/packages/SystemUI/res/drawable/ic_notification_block.xml b/packages/SystemUI/res/drawable/ic_notification_block.xml
index 572e97b..27690740 100644
--- a/packages/SystemUI/res/drawable/ic_notification_block.xml
+++ b/packages/SystemUI/res/drawable/ic_notification_block.xml
@@ -20,6 +20,6 @@
         android:viewportHeight="24.0">
 
     <path
-        android:fillColor="#FFFFFFFF"
+        android:fillColor="#FF000000"
         android:pathData="M12.0,2.0C6.48,2.0 2.0,6.48 2.0,12.0s4.48,10.0 10.0,10.0 10.0,-4.48 10.0,-10.0S17.52,2.0 12.0,2.0zM4.0,12.0c0.0,-4.42 3.58,-8.0 8.0,-8.0 1.85,0.0 3.5,0.63 4.9,1.69L5.69,16.9C4.63,15.55 4.0,13.85 4.0,12.0zm8.0,8.0c-1.85,0.0 -3.55,-0.63 -4.9,-1.69L18.31,7.1C19.37,8.45 20.0,10.15 20.0,12.0c0.0,4.42 -3.58,8.0 -8.0,8.0z"/>
 </vector>
diff --git a/packages/SystemUI/res/layout/biometric_dialog.xml b/packages/SystemUI/res/layout/biometric_dialog.xml
index 5ca34b0..1e8cd5a 100644
--- a/packages/SystemUI/res/layout/biometric_dialog.xml
+++ b/packages/SystemUI/res/layout/biometric_dialog.xml
@@ -160,6 +160,15 @@
                         android:maxLines="2"
                         android:text="@string/biometric_dialog_confirm"
                         android:visibility="gone"/>
+                    <!-- Try Again Button -->
+                    <Button android:id="@+id/button_try_again"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        style="@*android:style/Widget.DeviceDefault.Button.Colored"
+                        android:gravity="center"
+                        android:maxLines="2"
+                        android:text="@string/biometric_dialog_try_again"
+                        android:visibility="gone"/>
                     <Space android:id="@+id/rightSpacer"
                         android:layout_width="12dip"
                         android:layout_height="match_parent"
diff --git a/packages/SystemUI/res/layout/car_navigation_bar.xml b/packages/SystemUI/res/layout/car_navigation_bar.xml
deleted file mode 100644
index d568d0d..0000000
--- a/packages/SystemUI/res/layout/car_navigation_bar.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 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.
-*/
--->
-
-<com.android.systemui.statusbar.car.CarNavigationBarView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:systemui="http://schemas.android.com/apk/res-auto"
-    android:layout_height="match_parent"
-    android:layout_width="match_parent"
-    android:background="@drawable/system_bar_background">
-
-    <LinearLayout
-        android:layout_height="match_parent"
-        android:layout_width="wrap_content"
-        android:orientation="horizontal"
-        android:id="@+id/nav_buttons"
-        android:gravity="left"
-        android:paddingLeft="30dp"
-        android:layout_weight="1"
-        android:animateLayoutChanges="true">
-
-        <com.android.systemui.statusbar.car.CarNavigationButton
-            android:id="@+id/home"
-            android:layout_height="match_parent"
-            android:layout_width="wrap_content"
-            systemui:intent="intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.HOME;launchFlags=0x14000000;end"
-            android:src="@drawable/car_ic_overview"
-            android:background="?android:attr/selectableItemBackground"
-            android:paddingLeft="30dp"
-            android:paddingRight="30dp"
-        />
-
-        <com.android.systemui.statusbar.car.CarNavigationButton
-            android:id="@+id/hvac"
-            android:layout_height="match_parent"
-            android:layout_width="wrap_content"
-            systemui:intent="intent:#Intent;action=android.car.intent.action.TOGGLE_HVAC_CONTROLS;end"
-            systemui:broadcast="true"
-            android:src="@drawable/car_ic_hvac"
-            android:background="?android:attr/selectableItemBackground"
-            android:paddingLeft="30dp"
-            android:paddingRight="30dp"
-        />
-    </LinearLayout>
-
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="right"
-        android:orientation="horizontal">
-
-        <com.android.keyguard.AlphaOptimizedImageButton
-            android:id="@+id/notifications"
-            android:layout_height="match_parent"
-            android:layout_width="wrap_content"
-            android:src="@drawable/car_ic_notification"
-            android:background="?android:attr/selectableItemBackground"
-            android:paddingLeft="20dp"
-            android:paddingRight="20dp"
-            android:alpha="0.7"
-        />
-
-        <com.android.systemui.statusbar.policy.Clock
-            android:id="@+id/clock"
-            android:textAppearance="@style/TextAppearance.StatusBar.Clock"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:singleLine="true"
-            android:paddingStart="@dimen/status_bar_clock_starting_padding"
-            android:paddingEnd="@dimen/status_bar_clock_end_padding"
-            android:gravity="center_vertical"
-            android:paddingRight="20dp"
-        />
-
-        <Space
-            android:layout_width="10dp"
-            android:layout_height="match_parent"/>
-
-    </LinearLayout>
-
-</com.android.systemui.statusbar.car.CarNavigationBarView>
-
diff --git a/packages/SystemUI/res/layout/car_navigation_bar_unprovisioned.xml b/packages/SystemUI/res/layout/car_navigation_bar_unprovisioned.xml
deleted file mode 100644
index 4ba6c06..0000000
--- a/packages/SystemUI/res/layout/car_navigation_bar_unprovisioned.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 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.
-*/
--->
-
-<com.android.systemui.statusbar.car.CarNavigationBarView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:systemui="http://schemas.android.com/apk/res-auto"
-    android:layout_height="match_parent"
-    android:layout_width="match_parent"
-    android:background="@drawable/system_bar_background">
-
-    <LinearLayout
-        android:layout_height="match_parent"
-        android:layout_width="wrap_content"
-        android:orientation="horizontal"
-        android:id="@+id/nav_buttons"
-        android:gravity="left"
-        android:paddingLeft="30dp"
-        android:layout_weight="1"
-        android:animateLayoutChanges="true">
-
-        <com.android.systemui.statusbar.car.CarNavigationButton
-            android:id="@+id/home"
-            android:layout_height="match_parent"
-            android:layout_width="wrap_content"
-            systemui:intent="intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.HOME;launchFlags=0x14000000;end"
-            android:src="@drawable/car_ic_overview"
-            android:background="?android:attr/selectableItemBackground"
-            android:paddingLeft="30dp"
-            android:paddingRight="30dp"
-        />
-
-        <com.android.systemui.statusbar.car.CarNavigationButton
-            android:id="@+id/hvac"
-            android:layout_height="match_parent"
-            android:layout_width="wrap_content"
-            systemui:intent="intent:#Intent;action=android.car.intent.action.TOGGLE_HVAC_CONTROLS;end"
-            systemui:broadcast="true"
-            android:src="@drawable/car_ic_hvac"
-            android:background="?android:attr/selectableItemBackground"
-            android:paddingLeft="30dp"
-            android:paddingRight="30dp"
-        />
-    </LinearLayout>
-</com.android.systemui.statusbar.car.CarNavigationBarView>
-
diff --git a/packages/SystemUI/res/layout/car_right_navigation_bar.xml b/packages/SystemUI/res/layout/car_right_navigation_bar.xml
deleted file mode 100644
index 91ba026..0000000
--- a/packages/SystemUI/res/layout/car_right_navigation_bar.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 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.
-*/
--->
-
-<com.android.systemui.statusbar.car.CarNavigationBarView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:systemui="http://schemas.android.com/apk/res-auto"
-    android:layout_height="match_parent"
-    android:layout_width="match_parent"
-    android:orientation="vertical"
-    android:background="@drawable/system_bar_background">
-
-    <LinearLayout
-        android:layout_height="match_parent"
-        android:layout_width="match_parent"
-        android:id="@+id/nav_buttons"
-        android:orientation="vertical"
-        android:gravity="top"
-        android:paddingTop="30dp"
-        android:layout_weight="1"
-        android:background="@drawable/system_bar_background"
-        android:animateLayoutChanges="true">
-
-        <com.android.systemui.statusbar.car.CarNavigationButton
-            android:id="@+id/home"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            systemui:intent="intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.HOME;launchFlags=0x14000000;end"
-            android:src="@drawable/car_ic_overview"
-            android:background="?android:attr/selectableItemBackground"
-            android:paddingTop="30dp"
-            android:paddingBottom="30dp"
-        />
-
-        <com.android.systemui.statusbar.car.CarNavigationButton
-            android:id="@+id/hvac"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            systemui:intent="intent:#Intent;action=android.car.intent.action.TOGGLE_HVAC_CONTROLS;end"
-            systemui:broadcast="true"
-            android:src="@drawable/car_ic_hvac"
-            android:background="?android:attr/selectableItemBackground"
-            android:paddingTop="30dp"
-            android:paddingBottom="30dp"
-        />
-
-    </LinearLayout>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="bottom"
-        android:orientation="vertical">
-
-        <com.android.keyguard.AlphaOptimizedImageButton
-            android:id="@+id/notifications"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:src="@drawable/car_ic_notification"
-            android:background="?android:attr/selectableItemBackground"
-            android:paddingTop="20dp"
-            android:paddingBottom="20dp"
-            android:alpha="0.7"
-        />
-
-
-        <com.android.systemui.statusbar.policy.Clock
-            android:id="@+id/clock"
-            android:textAppearance="@style/TextAppearance.StatusBar.Clock"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:singleLine="true"
-            android:paddingStart="@dimen/status_bar_clock_starting_padding"
-            android:paddingEnd="@dimen/status_bar_clock_end_padding"
-            android:gravity="center_horizontal"
-            android:paddingBottom="20dp"
-        />
-
-        <Space
-            android:layout_height="10dp"
-            android:layout_width="match_parent"/>
-
-    </LinearLayout>
-
-</com.android.systemui.statusbar.car.CarNavigationBarView>
diff --git a/packages/SystemUI/res/layout/car_status_bar_header.xml b/packages/SystemUI/res/layout/car_status_bar_header.xml
deleted file mode 100644
index f2ef301..0000000
--- a/packages/SystemUI/res/layout/car_status_bar_header.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<!-- Extends LinearLayout -->
-<com.android.systemui.qs.car.CarStatusBarHeader
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:systemui="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/header"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/car_qs_header_system_icons_area_height"
-    android:paddingStart="8dp"
-    android:paddingEnd="8dp" >
-
-    <include layout="@layout/system_icons"
-             android:layout_width="wrap_content"
-             android:layout_height="match_parent"
-             android:gravity="center_vertical|end"
-             android:layout_weight="1"
-    />
-
-    <com.android.systemui.statusbar.policy.Clock
-        android:id="@+id/clock"
-        android:textAppearance="@style/TextAppearance.StatusBar.Clock"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:singleLine="true"
-        android:paddingStart="@dimen/status_bar_clock_starting_padding"
-        android:paddingEnd="@dimen/status_bar_clock_end_padding"
-        android:gravity="center_vertical|end"
-    />
-</com.android.systemui.qs.car.CarStatusBarHeader>
diff --git a/packages/SystemUI/res/layout/car_top_navigation_bar.xml b/packages/SystemUI/res/layout/car_top_navigation_bar.xml
deleted file mode 100644
index e16014b..0000000
--- a/packages/SystemUI/res/layout/car_top_navigation_bar.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/**
-** Copyright 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.
-*/
--->
-
-<com.android.systemui.statusbar.car.CarNavigationBarView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_height="match_parent"
-    android:layout_width="match_parent"
-    android:background="@drawable/system_bar_background">
-
-    <com.android.systemui.statusbar.policy.Clock
-        android:id="@+id/clock"
-        android:textAppearance="@style/TextAppearance.StatusBar.Clock"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:singleLine="true"
-        android:paddingStart="@dimen/status_bar_clock_starting_padding"
-        android:paddingEnd="@dimen/status_bar_clock_end_padding"
-        android:gravity="center_vertical"
-    />
-
-</com.android.systemui.statusbar.car.CarNavigationBarView>
-
diff --git a/packages/SystemUI/res/layout/car_volume_dialog.xml b/packages/SystemUI/res/layout/car_volume_dialog.xml
deleted file mode 100644
index a6beaa1..0000000
--- a/packages/SystemUI/res/layout/car_volume_dialog.xml
+++ /dev/null
@@ -1,31 +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.
--->
-<androidx.car.widget.PagedListView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:background="@drawable/car_card_rounded_background"
-    android:id="@+id/volume_list"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:layout_marginStart="@dimen/car_margin"
-    android:layout_marginEnd="@dimen/car_margin"
-    android:minWidth="@dimen/volume_dialog_panel_width"
-    android:theme="@style/Theme.Car.NoActionBar"
-    app:dividerStartMargin="@dimen/car_keyline_1"
-    app:dividerEndMargin="@dimen/car_keyline_1"
-    app:gutter="none"
-    app:showPagedListViewDivider="true"
-    app:scrollBarEnabled="false" />
diff --git a/packages/SystemUI/res/layout/notification_info.xml b/packages/SystemUI/res/layout/notification_info.xml
index c86ebe7..d502baa 100644
--- a/packages/SystemUI/res/layout/notification_info.xml
+++ b/packages/SystemUI/res/layout/notification_info.xml
@@ -51,7 +51,7 @@
             android:layout_centerVertical="true"
             android:layout_toEndOf="@id/pkgicon" />
         <TextView
-            android:id="@+id/pkg_group_divider"
+            android:id="@+id/pkg_divider"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textAppearance="@*android:style/TextAppearance.Material.Notification.Info"
@@ -61,7 +61,7 @@
             android:layout_centerVertical="true"
             android:layout_toEndOf="@id/pkgname" />
         <TextView
-            android:id="@+id/group_name"
+            android:id="@+id/delegate_name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textAppearance="@*android:style/TextAppearance.Material.Notification.Info"
@@ -70,7 +70,7 @@
             android:ellipsize="end"
             android:maxLines="1"
             android:layout_centerVertical="true"
-            android:layout_toEndOf="@id/pkg_group_divider" />
+            android:layout_toEndOf="@id/pkg_divider" />
         <!-- 24 dp icon with 16 dp padding all around to mirror notification content margins -->
         <ImageButton
             android:id="@+id/info"
@@ -101,13 +101,39 @@
             android:layout_marginStart="@*android:dimen/notification_content_margin_start"
             android:layout_marginEnd="@*android:dimen/notification_content_margin_start"
             android:orientation="vertical">
-            <!-- Channel Name -->
-            <TextView
-                android:id="@+id/channel_name"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                style="@android:style/TextAppearance.Material.Notification.Title" />
+            <RelativeLayout
+                android:id="@+id/names"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content">
+                <TextView
+                    android:id="@+id/group_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textAppearance="@*android:style/TextAppearance.Material.Notification.Title"
+                    android:layout_marginStart="2dp"
+                    android:layout_marginEnd="2dp"
+                    android:ellipsize="end"
+                    android:maxLines="1"
+                    android:layout_centerVertical="true" />
+                <TextView
+                    android:id="@+id/pkg_group_divider"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textAppearance="@*android:style/TextAppearance.Material.Notification.Title"
+                    android:layout_marginStart="2dp"
+                    android:layout_marginEnd="2dp"
+                    android:text="@*android:string/notification_header_divider_symbol"
+                    android:layout_centerVertical="true"
+                    android:layout_toEndOf="@id/group_name" />
+                <!-- Channel Name -->
+                <TextView
+                    android:id="@+id/channel_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    style="@android:style/TextAppearance.Material.Notification.Title"
+                    android:layout_toEndOf="@id/pkg_group_divider"/>
+            </RelativeLayout>
             <!-- Question prompt -->
             <TextView
                 android:id="@+id/block_prompt"
@@ -118,6 +144,7 @@
 
         <!-- Settings and Done buttons -->
         <LinearLayout
+            android:id="@+id/block_or_minimize"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="@dimen/notification_guts_button_spacing"
@@ -152,13 +179,6 @@
                 android:layout_marginStart="@dimen/notification_guts_button_horizontal_spacing"
                 style="@style/TextAppearance.NotificationInfo.Button" />
             <TextView
-                android:id="@+id/toggle_silent"
-                android:text="@string/inline_silent_button_silent"
-                android:layout_width="wrap_content"
-                android:layout_height="match_parent"
-                android:layout_marginStart="@dimen/notification_guts_button_horizontal_spacing"
-                style="@style/TextAppearance.NotificationInfo.Button" />
-            <TextView
                 android:id="@+id/keep"
                 android:minWidth="48dp"
                 android:text="@string/inline_keep_button"
@@ -167,6 +187,44 @@
                 android:layout_marginStart="@dimen/notification_guts_button_horizontal_spacing"
                 style="@style/TextAppearance.NotificationInfo.Button"/>
         </LinearLayout>
+        <LinearLayout
+            android:id="@+id/interruptiveness_settings"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/notification_guts_button_spacing"
+            android:layout_marginStart="@dimen/notification_guts_button_side_margin"
+            android:layout_marginEnd="@dimen/notification_guts_button_side_margin"
+            android:gravity="center"
+            android:orientation="horizontal"
+            android:visibility="gone">
+            <TextView
+                android:id="@+id/int_block"
+                android:text="@string/inline_block_button"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:drawableTop="@drawable/ic_notification_block"
+                android:drawableTint="?android:attr/colorAccent"
+                android:layout_weight="1"
+                style="@style/TextAppearance.NotificationInfo.Button"/>
+            <TextView
+                android:id="@+id/int_silent"
+                android:text="@string/inline_minimize_button"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:drawableTop="@drawable/ic_notifications_silence"
+                android:drawableTint="?android:attr/colorAccent"
+                android:layout_weight="1"
+                style="@style/TextAppearance.NotificationInfo.Button"/>
+            <TextView
+                android:id="@+id/int_alert"
+                android:text="@string/inline_keep_button"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:drawableTop="@drawable/ic_notifications_alert"
+                android:drawableTint="?android:attr/colorAccent"
+                android:layout_weight="1"
+                style="@style/TextAppearance.NotificationInfo.Button"/>
+        </LinearLayout>
     </LinearLayout>
     <com.android.systemui.statusbar.notification.row.NotificationUndoLayout
         android:id="@+id/confirmation"
diff --git a/packages/SystemUI/res/layout/ongoing_privacy_dialog_content.xml b/packages/SystemUI/res/layout/ongoing_privacy_dialog_content.xml
index 2f7d486..bc15f2c4 100644
--- a/packages/SystemUI/res/layout/ongoing_privacy_dialog_content.xml
+++ b/packages/SystemUI/res/layout/ongoing_privacy_dialog_content.xml
@@ -26,9 +26,7 @@
         android:id="@+id/dialog_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical"
-        android:padding="@dimen/ongoing_appops_dialog_content_padding">
-
+        android:orientation="vertical" >
         <TextView
             android:id="@+id/title"
             android:layout_width="match_parent"
@@ -37,21 +35,29 @@
             android:textDirection="locale"
             android:textAppearance="@style/TextAppearance.AppOpsDialog.Title"
             android:textColor="@*android:color/text_color_primary"
-            android:paddingStart="@dimen/ongoing_appops_dialog_title_padding"
-            android:paddingEnd="@dimen/ongoing_appops_dialog_title_padding"
-            android:paddingBottom="@dimen/ongoing_appops_dialog_sep"
+            android:layout_marginStart="@dimen/ongoing_appops_dialog_title_margin_sides"
+            android:layout_marginEnd="@dimen/ongoing_appops_dialog_title_margin_sides"
+            android:layout_marginBottom="@dimen/ongoing_appops_dialog_title_margin_top_bottom"
+            android:layout_marginTop="@dimen/ongoing_appops_dialog_title_margin_top_bottom"
         />
 
         <LinearLayout
-            android:id="@+id/items_container"
+            android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:gravity="start"
-        />
+            android:layout_marginBottom="@dimen/ongoing_appops_dialog_items_bottom_margin" >
 
-        <include android:id="@+id/overflow" layout="@layout/ongoing_privacy_dialog_item"
-                 android:visibility="gone" />
+            <LinearLayout
+                android:id="@+id/items_container"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:gravity="start"
+            />
+
+            <include android:id="@+id/overflow" layout="@layout/ongoing_privacy_dialog_item"
+                     android:visibility="gone" />
+        </LinearLayout>
 
     </LinearLayout>
 
diff --git a/packages/SystemUI/res/layout/ongoing_privacy_dialog_item.xml b/packages/SystemUI/res/layout/ongoing_privacy_dialog_item.xml
index f05f7ba..ecfbfb4 100644
--- a/packages/SystemUI/res/layout/ongoing_privacy_dialog_item.xml
+++ b/packages/SystemUI/res/layout/ongoing_privacy_dialog_item.xml
@@ -17,37 +17,39 @@
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="@dimen/ongoing_appops_dialog_line_height"
+    android:layout_marginStart="@dimen/ongoing_appops_dialog_text_padding"
+    android:layout_marginEnd="@dimen/ongoing_appops_dialog_text_padding"
     android:fillViewport="true"
     android:orientation="horizontal"
-    android:layout_marginTop="@dimen/ongoing_appops_dialog_text_margin"
-    android:focusable="true" >
+    android:focusable="true"
+    android:layout_gravity="center_vertical">
 
     <ImageView
         android:id="@+id/app_icon"
-        android:layout_height="@dimen/ongoing_appops_dialog_icon_height"
-        android:layout_width="@dimen/ongoing_appops_dialog_icon_height"
+        android:layout_height="@dimen/ongoing_appops_dialog_app_icon_size"
+        android:layout_width="@dimen/ongoing_appops_dialog_app_icon_size"
+        android:layout_gravity="start|center_vertical"
     />
 
     <TextView
         android:id="@+id/app_name"
-        android:layout_height="@dimen/ongoing_appops_dialog_icon_height"
+        android:layout_height="match_parent"
         android:layout_width="0dp"
         android:layout_weight="1"
-        android:gravity="bottom|start"
+        android:gravity="start|center_vertical"
         android:textDirection="locale"
         android:textAppearance="@style/TextAppearance.AppOpsDialog.Item"
         android:textColor="@*android:color/text_color_primary"
-        android:paddingStart="@dimen/ongoing_appops_dialog_text_padding"
-        android:paddingEnd="@dimen/ongoing_appops_dialog_text_padding"
-
+        android:layout_marginStart="@dimen/ongoing_appops_dialog_text_padding"
     />
 
     <LinearLayout
         android:id="@+id/icons"
-        android:layout_height="@dimen/ongoing_appops_dialog_icon_height"
+        android:layout_height="match_parent"
         android:layout_width="wrap_content"
         android:gravity="end"
+        android:layout_gravity="end|center_vertical"
         android:visibility="gone"
     />
 </LinearLayout>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/smart_action_button.xml b/packages/SystemUI/res/layout/smart_action_button.xml
new file mode 100644
index 0000000..2716034
--- /dev/null
+++ b/packages/SystemUI/res/layout/smart_action_button.xml
@@ -0,0 +1,34 @@
+<!--
+  ~ 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
+  -->
+
+<!-- android:paddingHorizontal is set dynamically in SmartReplyView. -->
+<Button xmlns:android="http://schemas.android.com/apk/res/android"
+        style="@android:style/Widget.Material.Button"
+        android:stateListAnimator="@null"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="0dp"
+        android:minHeight="@dimen/smart_reply_button_min_height"
+        android:paddingVertical="@dimen/smart_reply_button_padding_vertical"
+        android:background="@drawable/smart_reply_button_background"
+        android:gravity="center"
+        android:fontFamily="roboto-medium"
+        android:textSize="@dimen/smart_reply_button_font_size"
+        android:lineSpacingExtra="@dimen/smart_reply_button_line_spacing_extra"
+        android:textColor="@color/smart_reply_button_text"
+        android:drawablePadding="@dimen/smart_action_button_icon_padding"
+        android:textStyle="normal"
+        android:ellipsize="none"/>
diff --git a/packages/SystemUI/res/layout/super_status_bar.xml b/packages/SystemUI/res/layout/super_status_bar.xml
index 0cc3c9e..34c208a 100644
--- a/packages/SystemUI/res/layout/super_status_bar.xml
+++ b/packages/SystemUI/res/layout/super_status_bar.xml
@@ -56,11 +56,6 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />
 
-    <ViewStub android:id="@+id/fullscreen_user_switcher_stub"
-              android:layout="@layout/car_fullscreen_user_switcher"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"/>
-
     <include layout="@layout/status_bar_expanded"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
diff --git a/packages/SystemUI/res/values/arrays_car.xml b/packages/SystemUI/res/values/arrays_car.xml
deleted file mode 100644
index 8c760fc..0000000
--- a/packages/SystemUI/res/values/arrays_car.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 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.
-*/
--->
-<resources>
-    <!-- These should be overriden in an overlay. The default implementation is empty.
-         There needs to be correspondence per index between these arrays, which means that if there
-         isn't a longpress action associated with a shortcut item, put in an empty item to make
-         sure everything lines up.
-    -->
-    <array name="car_facet_icons" />
-    <array name="car_facet_intent_uris" />
-    <array name="car_facet_longpress_intent_uris" />
-    <array name="car_facet_package_filters"/>
-    <array name="car_facet_category_filters"/>
-</resources>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index d8648fa..9e97cd8 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -464,4 +464,6 @@
     <string-array name="config_pluginWhitelist" translatable="false">
         <item>com.android.systemui</item>
     </string-array>
+
+    <integer name="ongoing_appops_dialog_max_apps">5</integer>
 </resources>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 07628c6..b0a519c 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -881,6 +881,7 @@
     <dimen name="smart_reply_button_stroke_width">1dp</dimen>
     <dimen name="smart_reply_button_font_size">14sp</dimen>
     <dimen name="smart_reply_button_line_spacing_extra">6sp</dimen> <!-- Total line height 20sp. -->
+    <dimen name="smart_action_button_icon_padding">10dp</dimen>
 
     <!-- A reasonable upper bound for the height of the smart reply button. The measuring code
             needs to start with a guess for the maximum size. Currently two-line smart reply buttons
@@ -944,14 +945,20 @@
     <dimen name="ongoing_appops_dialog_sep">16dp</dimen>
     <!--Padding around text items in Ongoing App Ops dialog -->
     <dimen name="ongoing_appops_dialog_text_padding">16dp</dimen>
-    <!-- Height of icons in Ongoing App Ops dialog. Both App Op icon and application icon -->
-    <dimen name="ongoing_appops_dialog_icon_height">28dp</dimen>
-    <!-- Margin between text lines in Ongoing App Ops dialog -->
-    <dimen name="ongoing_appops_dialog_text_margin">15dp</dimen>
-    <!-- Side padding of title in Ongoing App Ops dialog -->
-    <dimen name="ongoing_appops_dialog_title_padding">10dp</dimen>
-    <!-- Padding around Ongoing App Ops dialog content -->
-    <dimen name="ongoing_appops_dialog_content_padding">24dp</dimen>
+    <!-- Height and width of App Opp icons in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_icon_size">24dp</dimen>
+    <!-- Left margin of App Opp icons in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_icon_margin">8dp</dimen>
+    <!-- Height and width of Application icons in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_app_icon_size">32dp</dimen>
+    <!-- Height of line in Ongoing App Ops dialog-->
+    <dimen name="ongoing_appops_dialog_line_height">48dp</dimen>
+    <!-- Side margin of title in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_title_margin_sides">24dp</dimen>
+    <!-- Bottom margin of items in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_items_bottom_margin">24dp</dimen>
+    <!-- Top and bottom margin of title in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_title_margin_top_bottom">18dp</dimen>
     <!-- Side margins around the Ongoing App Ops chip-->
     <dimen name="ongoing_appops_chip_margin">12dp</dimen>
     <!-- Top and bottom margins around the Ongoing App Ops chip -->
@@ -967,9 +974,9 @@
     <!-- Radius of Ongoing App Ops chip corners -->
     <dimen name="ongoing_appops_chip_bg_corner_radius">12dp</dimen>
     <!-- Text size for Ongoing App Ops dialog title -->
-    <dimen name="ongoing_appops_dialog_title_size">24sp</dimen>
+    <dimen name="ongoing_appops_dialog_title_size">20sp</dimen>
     <!-- Text size for Ongoing App Ops dialog items -->
-    <dimen name="ongoing_appops_dialog_item_size">20sp</dimen>
+    <dimen name="ongoing_appops_dialog_item_size">16sp</dimen>
 
     <!-- How much a bubble is elevated -->
     <dimen name="bubble_elevation">8dp</dimen>
diff --git a/packages/SystemUI/res/values/ids.xml b/packages/SystemUI/res/values/ids.xml
index cd8ffa8..dac20b5 100644
--- a/packages/SystemUI/res/values/ids.xml
+++ b/packages/SystemUI/res/values/ids.xml
@@ -26,7 +26,6 @@
     <item type="id" name="height_animator_tag"/>
     <item type="id" name="x_animator_tag"/>
     <item type="id" name="y_animator_tag"/>
-    <item type="id" name="shadow_alpha_animator_tag"/>
     <item type="id" name="translation_x_animator_end_value_tag"/>
     <item type="id" name="translation_y_animator_end_value_tag"/>
     <item type="id" name="translation_z_animator_end_value_tag"/>
@@ -35,7 +34,6 @@
     <item type="id" name="alpha_animator_end_value_tag"/>
     <item type="id" name="top_inset_animator_end_value_tag"/>
     <item type="id" name="height_animator_end_value_tag"/>
-    <item type="id" name="shadow_alpha_animator_end_value_tag"/>
     <item type="id" name="x_animator_tag_end_value"/>
     <item type="id" name="y_animator_tag_end_value"/>
     <item type="id" name="translation_x_animator_start_value_tag"/>
@@ -46,7 +44,6 @@
     <item type="id" name="alpha_animator_start_value_tag"/>
     <item type="id" name="top_inset_animator_start_value_tag"/>
     <item type="id" name="height_animator_start_value_tag"/>
-    <item type="id" name="shadow_alpha_animator_start_value_tag"/>
     <item type="id" name="x_animator_tag_start_value"/>
     <item type="id" name="y_animator_tag_start_value"/>
     <item type="id" name="doze_saved_filter_tag"/>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 4a0bc9b..9917257 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -272,6 +272,8 @@
     <string name="accessibility_biometric_dialog_help_area">Help message area</string>
     <!-- Message shown when a biometric is authenticated, asking the user to confirm authentication [CHAR LIMIT=30] -->
     <string name="biometric_dialog_confirm">Confirm</string>
+    <!-- Button name on BiometricPrompt shown when a biometric is detected but not authenticated. Tapping the button resumes authentication [CHAR_LIMIT=30] -->
+    <string name="biometric_dialog_try_again">Try again</string>
 
     <!-- Message shown when the system-provided fingerprint dialog is shown, asking for authentication -->
     <string name="fingerprint_dialog_touch_sensor">Touch the fingerprint sensor</string>
@@ -700,6 +702,8 @@
     <string name="quick_settings_bluetooth_secondary_label_headset">Headset</string>
     <!-- QuickSettings: Bluetooth secondary label for an input/IO device being connected [CHAR LIMIT=20]-->
     <string name="quick_settings_bluetooth_secondary_label_input">Input</string>
+    <!-- QuickSettings: Bluetooth secondary label for a Hearing Aids device being connected [CHAR LIMIT=20]-->
+    <string name="quick_settings_bluetooth_secondary_label_hearing_aids">Hearing Aids</string>
     <!-- QuickSettings: Bluetooth secondary label shown when bluetooth is being enabled [CHAR LIMIT=NONE] -->
     <string name="quick_settings_bluetooth_secondary_label_transient">Turning on&#8230;</string>
     <!-- QuickSettings: Brightness [CHAR LIMIT=NONE] -->
@@ -1556,17 +1560,26 @@
     <!-- Notification inline controls: block notifications button -->
     <string name="inline_stop_button">Stop notifications</string>
 
+    <!-- Notification inline controls: button to block notifications from this channel [CHAR_LIMIT=35] -->
+    <string name="inline_block_button">Block</string>
+
     <!-- Notification inline controls: keep getting notifications button -->
     <string name="inline_keep_button">Keep showing</string>
 
     <!-- Notification inline controls: minimize notifications button -->
     <string name="inline_minimize_button">Minimize</string>
 
-    <!-- Notification inline controls: show notifications silently button [CHAR_LIMIT=25] -->
+    <!-- Notification inline controls: button to show notifications silently, without alerting the user [CHAR_LIMIT=35] -->
     <string name="inline_silent_button_silent">Show silently</string>
 
-    <!-- Notification inline controls: show and alert button [CHAR_LIMIT=25] -->
-    <string name="inline_silent_button_alert">Show and alert</string>
+    <!-- Notification inline controls: button to continue showing notifications silently [CHAR_LIMIT=35] -->
+    <string name="inline_silent_button_stay_silent">Stay silent</string>
+
+    <!-- Notification inline controls: button to make notifications alert the user [CHAR_LIMIT=35] -->
+    <string name="inline_silent_button_alert">Alert me</string>
+
+    <!-- Notification inline controls: button to continue alerting the user when notifications arrive [CHAR_LIMIT=35] -->
+    <string name="inline_silent_button_keep_alerting">Keep alerting</string>
 
     <!-- Notification Inline controls: continue receiving notifications prompt, app level -->
     <string name="inline_keep_showing_app">Keep showing notifications from this app?</string>
@@ -1574,6 +1587,9 @@
     <!-- Notification: Control panel: Label that displays when the app's notifications cannot be blocked. -->
     <string name="notification_unblockable_desc">These notifications can\'t be turned off</string>
 
+    <!-- Notification: Control panel: Label for the app that posted this notification, if it's not the package that the notification was posted for -->
+    <string name="notification_delegate_header">via <xliff:g id="app_name" example="YouTube">%1$s</xliff:g></string>
+
     <!-- Notification Inline controls: describes what the app is doing in the background [CHAR_LIMIT=NONE] -->
     <string name="appops_camera">This app is using the camera.</string>
     <!-- Notification Inline controls: describes what the app is doing in the background [CHAR_LIMIT=NONE] -->
@@ -2251,7 +2267,11 @@
     <string name="heap_dump_tile_name">Dump SysUI Heap</string>
 
     <!-- Text on chip for multiple apps using a single app op [CHAR LIMIT=10] -->
-    <string name="ongoing_privacy_chip_multiple_apps"><xliff:g id="num_apps" example="3">%d</xliff:g> apps</string>
+    <plurals name="ongoing_privacy_chip_multiple_apps">
+        <item quantity="one"><xliff:g id="num_apps" example="1">%d</xliff:g> app</item>
+        <item quantity="few"><xliff:g id="num_apps" example="3">%d</xliff:g> apps</item>
+        <item quantity="other"><xliff:g id="num_apps" example="3">%d</xliff:g> apps</item>
+    </plurals>
 
     <!-- Content description for ongoing privacy chip. Use with a single app [CHAR LIMIT=NONE]-->
     <string name="ongoing_privacy_chip_content_single_app"><xliff:g id="app" example="Example App">%1$s</xliff:g> is using your <xliff:g id="types_list" example="camera, location">%2$s</xliff:g>.</string>
@@ -2260,12 +2280,16 @@
     <string name="ongoing_privacy_chip_content_multiple_apps">Applications are using your <xliff:g id="types_list" example="camera, location">%s</xliff:g>.</string>
 
     <!-- Content description for ongoing privacy chip. Use with multiple apps using same app op[CHAR LIMIT=NONE]-->
-    <string name="ongoing_privacy_chip_content_multiple_apps_single_op"><xliff:g id="num_apps" example="3">%1$d</xliff:g> applications are using your <xliff:g id="type" example="camera">%2$s</xliff:g>.</string>
+    <plurals name="ongoing_privacy_chip_content_multiple_apps_single_op">
+        <item quantity="one"><xliff:g id="num_apps" example="1">%1$d</xliff:g> application is using your <xliff:g id="type" example="camera">%2$s</xliff:g>.</item>
+        <item quantity="few"><xliff:g id="num_apps" example="3">%1$d</xliff:g> applications are using your <xliff:g id="type" example="camera">%2$s</xliff:g>.</item>
+        <item quantity="other"><xliff:g id="num_apps" example="3">%1$d</xliff:g> applications are using your <xliff:g id="type" example="camera">%2$s</xliff:g>.</item>
+    </plurals>
 
     <!-- Action on Ongoing Privacy Dialog to dismiss [CHAR LIMIT=10]-->
     <string name="ongoing_privacy_dialog_cancel">Cancel</string>
 
-    <!-- Action on Ongoing Privacy Dialog to open privacy hub [CHAR LIMIT=15]-->
+    <!-- Action on Ongoing Privacy Dialog to open privacy hub [CHAR LIMIT=20]-->
     <string name="ongoing_privacy_dialog_open_settings">View details</string>
 
     <!-- Text for item in Ongoing Privacy Dialog title when only one app is using app ops [CHAR LIMIT=NONE] -->
@@ -2292,6 +2316,6 @@
     <!-- Text for indicating extra apps using app ops [CHAR LIMIT=NONE] -->
     <plurals name="ongoing_privacy_dialog_overflow_text">
         <item quantity="one"><xliff:g id="num_apps" example="1">%d</xliff:g> other app</item>
-        <item quantity="other"><xliff:g id="num_apps" example="3">%d</xliff:g> other app</item>
+        <item quantity="other"><xliff:g id="num_apps" example="3">%d</xliff:g> other apps</item>
     </plurals>
 </resources>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index e9aa1b6..fede934 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -262,7 +262,7 @@
 
     <style name="TextAppearance.AppOpsDialog.Item">
         <item name="android:textSize">@dimen/ongoing_appops_dialog_item_size</item>
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+        <item name="android:fontFamily">sans-serif</item>
     </style>
 
     <style name="BaseBrightnessDialogContainer" parent="@style/Theme.SystemUI">
diff --git a/packages/SystemUI/res/xml/car_volume_items.xml b/packages/SystemUI/res/xml/car_volume_items.xml
deleted file mode 100644
index 742dfdd..0000000
--- a/packages/SystemUI/res/xml/car_volume_items.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- *
- * Copyright 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.
-*/
--->
-
-<!--
-  Defines all possible items on car volume settings UI, keyed by usage.
-
-  This enables the CarSettings UI to associate VolumeGroups surfaced by
-  CarAudioManager.getVolumeGroupCount with renderable assets (ie: title, icon)
-  for presentation.
-
-  Order matters in this configuration. If one volume group contains multiple
-  audio usages, the first one appears in this file would be picked to be
-  presented on UI.
-
-  When overriding this configuration, please consult also the
-  car_volume_groups.xml, which is read by car audio service.
--->
-<carVolumeItems xmlns:car="http://schemas.android.com/apk/res-auto">
-  <item car:usage="unknown"
-        car:icon="@drawable/car_ic_music"/>
-  <item car:usage="media"
-        car:icon="@drawable/car_ic_music"/>
-  <item car:usage="voice_communication"
-        car:icon="@*android:drawable/ic_audio_ring_notif"/>
-  <item car:usage="voice_communication_signalling"
-        car:icon="@*android:drawable/ic_audio_ring_notif"/>
-  <item car:usage="alarm"
-        car:icon="@*android:drawable/ic_audio_alarm"/>
-  <item car:usage="notification"
-        car:icon="@drawable/car_ic_notification"/>
-  <item car:usage="notification_ringtone"
-        car:icon="@*android:drawable/ic_audio_ring_notif"/>
-  <item car:usage="notification_communication_request"
-        car:icon="@drawable/car_ic_notification"/>
-  <item car:usage="notification_communication_instant"
-        car:icon="@drawable/car_ic_notification"/>
-  <item car:usage="notification_communication_delayed"
-        car:icon="@drawable/car_ic_notification"/>
-  <item car:usage="notification_event"
-        car:icon="@drawable/car_ic_notification"/>
-  <item car:usage="assistance_accessibility"
-        car:icon="@drawable/car_ic_notification"/>
-  <item car:usage="assistance_navigation_guidance"
-        car:icon="@drawable/car_ic_navigation"/>
-  <item car:usage="assistance_sonification"
-        car:icon="@drawable/car_ic_notification"/>
-  <item car:usage="game"
-        car:icon="@drawable/car_ic_music"/>
-  <item car:usage="assistant"
-        car:icon="@drawable/car_ic_music"/>
-</carVolumeItems>
-
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl
index ece2bb9..f3bdbae 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl
@@ -71,4 +71,9 @@
      */
     void onStatusBarMotionEvent(in MotionEvent event) = 9;
 
+    /**
+     * Get the corner radius of windows in pixels.
+     */
+    float getWindowCornerRadius() = 10;
+
 }
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
index c7910f9..46ed715b 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
@@ -54,7 +54,6 @@
 import android.util.Log;
 import android.view.IRecentsAnimationController;
 import android.view.IRecentsAnimationRunner;
-
 import android.view.RemoteAnimationTarget;
 
 import com.android.internal.app.IVoiceInteractionManagerService;
@@ -480,4 +479,16 @@
             return false;
         }
     }
+
+    /**
+     * Returns true if the system supports freeform multi-window.
+     */
+    public boolean supportsFreeformMultiWindow(Context context) {
+        final boolean freeformDevOption = Settings.Global.getInt(context.getContentResolver(),
+                Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, 0) != 0;
+        return ActivityTaskManager.supportsMultiWindow(context)
+                && (context.getPackageManager().hasSystemFeature(
+                PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT)
+                || freeformDevOption);
+    }
 }
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityOptionsCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityOptionsCompat.java
index 7154f53..a6b66e7 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityOptionsCompat.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityOptionsCompat.java
@@ -18,6 +18,7 @@
 
 import static android.app.ActivityTaskManager.SPLIT_SCREEN_CREATE_MODE_BOTTOM_OR_RIGHT;
 import static android.app.ActivityTaskManager.SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
 
 import android.app.ActivityOptions;
@@ -41,6 +42,15 @@
         return options;
     }
 
+    /**
+     * @return ActivityOptions for starting a task in freeform.
+     */
+    public static ActivityOptions makeFreeformOptions() {
+        final ActivityOptions options = ActivityOptions.makeBasic();
+        options.setLaunchWindowingMode(WINDOWING_MODE_FREEFORM);
+        return options;
+    }
+
     public static ActivityOptions makeRemoteAnimation(
             RemoteAnimationAdapterCompat remoteAnimationAdapter) {
         return ActivityOptions.makeRemoteAnimation(remoteAnimationAdapter.getWrapped());
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplier.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplier.java
index 65c5220..a9cf857 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplier.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplier.java
@@ -83,6 +83,7 @@
         t.setWindowCrop(params.surface, params.windowCrop);
         t.setAlpha(params.surface, params.alpha);
         t.setLayer(params.surface, params.layer);
+        t.setCornerRadius(params.surface, params.cornerRadius);
         t.show(params.surface);
     }
 
@@ -98,12 +99,13 @@
          * @param windowCrop Crop to apply.
          */
         public SurfaceParams(SurfaceControlCompat surface, float alpha, Matrix matrix,
-                Rect windowCrop, int layer) {
+                Rect windowCrop, int layer, float cornerRadius) {
             this.surface = surface.mSurfaceControl;
             this.alpha = alpha;
             this.matrix = new Matrix(matrix);
             this.windowCrop = new Rect(windowCrop);
             this.layer = layer;
+            this.cornerRadius = cornerRadius;
         }
 
         final SurfaceControl surface;
@@ -111,5 +113,6 @@
         final Matrix matrix;
         final Rect windowCrop;
         final int layer;
+        final float cornerRadius;
     }
 }
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java
index 70258c2..2aba3fa 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java
@@ -20,7 +20,6 @@
 import android.graphics.Rect;
 import android.os.IBinder;
 import android.view.Surface;
-import android.view.SurfaceControl;
 import android.view.SurfaceControl.Transaction;
 
 public class TransactionCompat {
@@ -53,7 +52,7 @@
     }
 
     public TransactionCompat setSize(SurfaceControlCompat surfaceControl, int w, int h) {
-        mTransaction.setSize(surfaceControl.mSurfaceControl, w, h);
+        mTransaction.setBufferSize(surfaceControl.mSurfaceControl, w, h);
         return this;
     }
 
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/WindowManagerWrapper.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/WindowManagerWrapper.java
index 3191d14..8a251ae 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/WindowManagerWrapper.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/WindowManagerWrapper.java
@@ -17,6 +17,10 @@
 package com.android.systemui.shared.system;
 
 import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_BOTTOM;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_INVALID;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_LEFT;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_RIGHT;
 
 import android.app.WindowConfiguration;
 import android.graphics.Rect;
@@ -26,10 +30,6 @@
 import android.view.WindowManager;
 import android.view.WindowManagerGlobal;
 
-import static android.view.WindowManagerPolicyConstants.NAV_BAR_RIGHT;
-import static android.view.WindowManagerPolicyConstants.NAV_BAR_BOTTOM;
-import static android.view.WindowManagerPolicyConstants.NAV_BAR_LEFT;
-
 import com.android.systemui.shared.recents.view.AppTransitionAnimationSpecsFuture;
 import com.android.systemui.shared.recents.view.RecentsTransition;
 
@@ -62,7 +62,7 @@
     public static final int TRANSIT_KEYGUARD_OCCLUDE = WindowManager.TRANSIT_KEYGUARD_OCCLUDE;
     public static final int TRANSIT_KEYGUARD_UNOCCLUDE = WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
 
-    public static final int NAV_BAR_POS_INVALID = -1;
+    public static final int NAV_BAR_POS_INVALID = NAV_BAR_INVALID;
     public static final int NAV_BAR_POS_LEFT = NAV_BAR_LEFT;
     public static final int NAV_BAR_POS_RIGHT = NAV_BAR_RIGHT;
     public static final int NAV_BAR_POS_BOTTOM = NAV_BAR_BOTTOM;
@@ -101,23 +101,23 @@
      * Overrides a pending app transition.
      */
     public void overridePendingAppTransitionMultiThumbFuture(
-            AppTransitionAnimationSpecsFuture animationSpecFuture,
-            Runnable animStartedCallback, Handler animStartedCallbackHandler, boolean scaleUp) {
+            AppTransitionAnimationSpecsFuture animationSpecFuture, Runnable animStartedCallback,
+            Handler animStartedCallbackHandler, boolean scaleUp, int displayId) {
         try {
             WindowManagerGlobal.getWindowManagerService()
                     .overridePendingAppTransitionMultiThumbFuture(animationSpecFuture.getFuture(),
                             RecentsTransition.wrapStartedListener(animStartedCallbackHandler,
-                                    animStartedCallback), scaleUp);
+                                    animStartedCallback), scaleUp, displayId);
         } catch (RemoteException e) {
             Log.w(TAG, "Failed to override pending app transition (multi-thumbnail future): ", e);
         }
     }
 
     public void overridePendingAppTransitionRemote(
-            RemoteAnimationAdapterCompat remoteAnimationAdapter) {
+            RemoteAnimationAdapterCompat remoteAnimationAdapter, int displayId) {
         try {
             WindowManagerGlobal.getWindowManagerService().overridePendingAppTransitionRemote(
-                    remoteAnimationAdapter.getWrapped());
+                    remoteAnimationAdapter.getWrapped(), displayId);
         } catch (RemoteException e) {
             Log.w(TAG, "Failed to override pending app transition (remote): ", e);
         }
@@ -160,11 +160,13 @@
     }
 
     /**
-     * @return whether there is a soft nav bar.
+     * @param displayId the id of display to check if there is a software navigation bar.
+     *
+     * @return whether there is a soft nav bar on specific display.
      */
-    public boolean hasSoftNavigationBar() {
+    public boolean hasSoftNavigationBar(int displayId) {
         try {
-            return WindowManagerGlobal.getWindowManagerService().hasNavigationBar();
+            return WindowManagerGlobal.getWindowManagerService().hasNavigationBar(displayId);
         } catch (RemoteException e) {
             return false;
         }
@@ -177,9 +179,9 @@
      * @see #NAV_BAR_POS_BOTTOM
      * @see #NAV_BAR_POS_INVALID
      */
-    public int getNavBarPosition() {
+    public int getNavBarPosition(int displayId) {
         try {
-            return WindowManagerGlobal.getWindowManagerService().getNavBarPosition();
+            return WindowManagerGlobal.getWindowManagerService().getNavBarPosition(displayId);
         } catch (RemoteException e) {
             Log.w(TAG, "Failed to get nav bar position");
         }
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 6b0a7a9..b55aa5c 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -1531,10 +1531,11 @@
         }
         mHandler.removeCallbacks(mRetryFingerprintAuthentication);
         boolean shouldListenForFingerprint = shouldListenForFingerprint();
-        if (mFingerprintRunningState == BIOMETRIC_STATE_RUNNING && !shouldListenForFingerprint) {
+        boolean runningOrRestarting = mFingerprintRunningState == BIOMETRIC_STATE_RUNNING
+                || mFingerprintRunningState == BIOMETRIC_STATE_CANCELLING_RESTARTING;
+        if (runningOrRestarting && !shouldListenForFingerprint) {
             stopListeningForFingerprint();
-        } else if (mFingerprintRunningState != BIOMETRIC_STATE_RUNNING
-                && shouldListenForFingerprint) {
+        } else if (!runningOrRestarting && shouldListenForFingerprint) {
             startListeningForFingerprint();
         }
     }
@@ -1589,6 +1590,10 @@
             setFingerprintRunningState(BIOMETRIC_STATE_CANCELLING_RESTARTING);
             return;
         }
+        if (mFingerprintRunningState == BIOMETRIC_STATE_CANCELLING_RESTARTING) {
+            // Waiting for restart via handleFingerprintError().
+            return;
+        }
         if (DEBUG) Log.v(TAG, "startListeningForFingerprint()");
         int userId = ActivityManager.getCurrentUser();
         if (isUnlockWithFingerprintPossible(userId)) {
@@ -2418,6 +2423,8 @@
                     + getStrongAuthTracker().hasUserAuthenticatedSinceBoot());
             pw.println("    disabled(DPM)=" + isFingerprintDisabled(userId));
             pw.println("    possible=" + isUnlockWithFingerprintPossible(userId));
+            pw.println("    listening: actual=" + mFingerprintRunningState
+                    + " expected=" + (shouldListenForFingerprint() ? 1 : 0));
             pw.println("    strongAuthFlags=" + Integer.toHexString(strongAuthFlags));
             pw.println("    trustManaged=" + getUserTrustIsManaged(userId));
         }
diff --git a/packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java b/packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java
index e1b8dc8..9e7c5ba 100644
--- a/packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java
+++ b/packages/SystemUI/src/com/android/systemui/ActivityStarterDelegate.java
@@ -36,6 +36,15 @@
     }
 
     @Override
+    public void startPendingIntentDismissingKeyguard(PendingIntent intent,
+            Runnable intentSentCallback) {
+        if (mActualStarter == null) {
+            return;
+        }
+        mActualStarter.startPendingIntentDismissingKeyguard(intent, intentSentCallback);
+    }
+
+    @Override
     public void startActivity(Intent intent, boolean dismissShade) {
         if (mActualStarter == null) {
             return;
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
index 314a3c3..867c917 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
@@ -52,6 +52,7 @@
 import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
 import com.android.systemui.statusbar.phone.LockIcon;
 import com.android.systemui.statusbar.phone.LockscreenWallpaper;
+import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
 import com.android.systemui.statusbar.phone.NotificationIconAreaController;
 import com.android.systemui.statusbar.phone.ScrimController;
@@ -61,6 +62,7 @@
 import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
 import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
 import com.android.systemui.statusbar.policy.SmartReplyConstants;
+import com.android.systemui.volume.VolumeDialogComponent;
 
 import java.util.function.Consumer;
 
@@ -131,6 +133,10 @@
         return new QSTileHost(context, statusBar, iconController);
     }
 
+    public VolumeDialogComponent createVolumeDialogComponent(SystemUI systemUi, Context context) {
+        return new VolumeDialogComponent(systemUi, context);
+    }
+
     public void injectDependencies(ArrayMap<Object, DependencyProvider> providers,
             Context context) {
         providers.put(StatusBarStateController.class, StatusBarStateController::new);
@@ -138,6 +144,8 @@
                 () -> new NotificationLockscreenUserManagerImpl(context));
         providers.put(VisualStabilityManager.class, VisualStabilityManager::new);
         providers.put(NotificationGroupManager.class, NotificationGroupManager::new);
+        providers.put(NotificationGroupAlertTransferHelper.class,
+                NotificationGroupAlertTransferHelper::new);
         providers.put(NotificationMediaManager.class, () -> new NotificationMediaManager(context));
         providers.put(NotificationGutsManager.class, () -> new NotificationGutsManager(context));
         providers.put(AmbientPulseManager.class, () -> new AmbientPulseManager(context));
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogImpl.java b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogImpl.java
index c0047c0..a90a7d2 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogImpl.java
@@ -21,7 +21,7 @@
 import android.content.res.Configuration;
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricPrompt;
-import android.hardware.biometrics.IBiometricPromptReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -52,15 +52,20 @@
     private static final int MSG_BUTTON_NEGATIVE = 6;
     private static final int MSG_USER_CANCELED = 7;
     private static final int MSG_BUTTON_POSITIVE = 8;
+    private static final int MSG_BIOMETRIC_SHOW_TRY_AGAIN = 9;
+    private static final int MSG_TRY_AGAIN_PRESSED = 10;
 
     private Map<Integer, BiometricDialogView> mDialogs; // BiometricAuthenticator type, view
     private SomeArgs mCurrentDialogArgs;
     private BiometricDialogView mCurrentDialog;
     private WindowManager mWindowManager;
-    private IBiometricPromptReceiver mReceiver;
+    private IBiometricServiceReceiverInternal mReceiver;
     private boolean mDialogShowing;
     private Callback mCallback = new Callback();
 
+    private boolean mTryAgainShowing; // No good place to save state before config change :/
+    private boolean mConfirmShowing; // No good place to save state before config change :/
+
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -89,6 +94,15 @@
                 case MSG_BUTTON_POSITIVE:
                     handleButtonPositive();
                     break;
+                case MSG_BIOMETRIC_SHOW_TRY_AGAIN:
+                    handleShowTryAgain();
+                    break;
+                case MSG_TRY_AGAIN_PRESSED:
+                    handleTryAgainPressed();
+                    break;
+                default:
+                    Log.w(TAG, "Unknown message: " + msg.what);
+                    break;
             }
         }
     };
@@ -96,7 +110,7 @@
     private class Callback implements DialogViewCallback {
         @Override
         public void onUserCanceled() {
-            mHandler.obtainMessage(BiometricDialogImpl.MSG_USER_CANCELED).sendToTarget();
+            mHandler.obtainMessage(MSG_USER_CANCELED).sendToTarget();
         }
 
         @Override
@@ -107,12 +121,17 @@
 
         @Override
         public void onNegativePressed() {
-            mHandler.obtainMessage(BiometricDialogImpl.MSG_BUTTON_NEGATIVE).sendToTarget();
+            mHandler.obtainMessage(MSG_BUTTON_NEGATIVE).sendToTarget();
         }
 
         @Override
         public void onPositivePressed() {
-            mHandler.obtainMessage(BiometricDialogImpl.MSG_BUTTON_POSITIVE).sendToTarget();
+            mHandler.obtainMessage(MSG_BUTTON_POSITIVE).sendToTarget();
+        }
+
+        @Override
+        public void onTryAgainPressed() {
+            mHandler.obtainMessage(MSG_TRY_AGAIN_PRESSED).sendToTarget();
         }
     }
 
@@ -139,13 +158,14 @@
     }
 
     @Override
-    public void showBiometricDialog(Bundle bundle, IBiometricPromptReceiver receiver, int type,
-            boolean requireConfirmation, int userId) {
+    public void showBiometricDialog(Bundle bundle, IBiometricServiceReceiverInternal receiver,
+            int type, boolean requireConfirmation, int userId) {
         if (DEBUG) Log.d(TAG, "showBiometricDialog, type: " + type);
         // Remove these messages as they are part of the previous client
         mHandler.removeMessages(MSG_BIOMETRIC_ERROR);
         mHandler.removeMessages(MSG_BIOMETRIC_HELP);
         mHandler.removeMessages(MSG_BIOMETRIC_AUTHENTICATED);
+        mHandler.removeMessages(MSG_HIDE_DIALOG);
         SomeArgs args = SomeArgs.obtain();
         args.arg1 = bundle;
         args.arg2 = receiver;
@@ -179,6 +199,12 @@
         mHandler.obtainMessage(MSG_HIDE_DIALOG, false /* userCanceled */).sendToTarget();
     }
 
+    @Override
+    public void showBiometricTryAgain() {
+        if (DEBUG) Log.d(TAG, "showBiometricTryAgain");
+        mHandler.obtainMessage(MSG_BIOMETRIC_SHOW_TRY_AGAIN).sendToTarget();
+    }
+
     private void handleShowDialog(SomeArgs args, boolean skipAnimation) {
         mCurrentDialogArgs = args;
         final int type = args.argi1;
@@ -193,11 +219,13 @@
             Log.w(TAG, "Dialog already showing");
             return;
         }
-        mReceiver = (IBiometricPromptReceiver) args.arg2;
+        mReceiver = (IBiometricServiceReceiverInternal) args.arg2;
         mCurrentDialog.setBundle((Bundle)args.arg1);
         mCurrentDialog.setRequireConfirmation((boolean) args.arg3);
         mCurrentDialog.setUserId(args.argi2);
         mCurrentDialog.setSkipIntro(skipAnimation);
+        mCurrentDialog.setPendingTryAgain(mTryAgainShowing);
+        mCurrentDialog.setPendingConfirm(mConfirmShowing);
         mWindowManager.addView(mCurrentDialog, mCurrentDialog.getLayoutParams());
         mDialogShowing = true;
     }
@@ -209,7 +237,8 @@
                 mContext.getResources()
                         .getText(mCurrentDialog.getAuthenticatedAccessibilityResourceId()));
         if (mCurrentDialog.requiresConfirmation()) {
-            mCurrentDialog.showConfirmationButton();
+            mConfirmShowing = true;
+            mCurrentDialog.showConfirmationButton(true /* show */);
         } else {
             handleHideDialog(false /* userCanceled */);
         }
@@ -226,6 +255,7 @@
             if (DEBUG) Log.d(TAG, "Dialog already dismissed");
             return;
         }
+        mTryAgainShowing = false;
         mCurrentDialog.showErrorMessage(error);
     }
 
@@ -246,6 +276,8 @@
         }
         mReceiver = null;
         mDialogShowing = false;
+        mConfirmShowing = false;
+        mTryAgainShowing = false;
         mCurrentDialog.startDismiss();
     }
 
@@ -259,6 +291,7 @@
         } catch (RemoteException e) {
             Log.e(TAG, "Remote exception when handling negative button", e);
         }
+        mTryAgainShowing = false;
         handleHideDialog(false /* userCanceled */);
     }
 
@@ -272,13 +305,31 @@
         } catch (RemoteException e) {
             Log.e(TAG, "Remote exception when handling positive button", e);
         }
+        mConfirmShowing = false;
         handleHideDialog(false /* userCanceled */);
     }
 
     private void handleUserCanceled() {
+        mTryAgainShowing = false;
+        mConfirmShowing = false;
         handleHideDialog(true /* userCanceled */);
     }
 
+    private void handleShowTryAgain() {
+        mCurrentDialog.showTryAgainButton(true /* show */);
+        mTryAgainShowing = true;
+    }
+
+    private void handleTryAgainPressed() {
+        try {
+            mCurrentDialog.clearTemporaryMessage();
+            mTryAgainShowing = false;
+            mReceiver.onTryAgainPressed();
+        } catch (RemoteException e) {
+            Log.e(TAG, "RemoteException when handling try again", e);
+        }
+    }
+
     @Override
     protected void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java
index 38427ad..e085f23 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java
@@ -87,6 +87,9 @@
     protected boolean mRequireConfirmation;
     private int mUserId; // used to determine if we should show work background
 
+    private boolean mPendingShowTryAgain;
+    private boolean mPendingShowConfirm;
+
     protected abstract void updateIcon(int lastState, int newState);
     protected abstract int getHintStringResourceId();
     protected abstract int getAuthenticatedAccessibilityResourceId();
@@ -178,6 +181,7 @@
         final Button negative = mLayout.findViewById(R.id.button2);
         final Button positive = mLayout.findViewById(R.id.button1);
         final ImageView icon = mLayout.findViewById(R.id.biometric_icon);
+        final Button tryAgain = mLayout.findViewById(R.id.button_try_again);
 
         icon.setContentDescription(getResources().getString(getIconDescriptionResourceId()));
 
@@ -193,6 +197,11 @@
             mCallback.onPositivePressed();
         });
 
+        tryAgain.setOnClickListener((View v) -> {
+            showTryAgainButton(false /* show */);
+            mCallback.onTryAgainPressed();
+        });
+
         mLayout.setFocusableInTouchMode(true);
         mLayout.requestFocus();
     }
@@ -207,7 +216,6 @@
         final TextView subtitle = mLayout.findViewById(R.id.subtitle);
         final TextView description = mLayout.findViewById(R.id.description);
         final Button negative = mLayout.findViewById(R.id.button2);
-        final Button positive = mLayout.findViewById(R.id.button1);
         final ImageView backgroundView = mLayout.findViewById(R.id.background);
 
         if (mUserManager.isManagedProfile(mUserId)) {
@@ -233,8 +241,6 @@
         title.setText(titleText);
         title.setSelected(true);
 
-        positive.setVisibility(View.INVISIBLE);
-
         final CharSequence subtitleText = mBundle.getCharSequence(BiometricPrompt.KEY_SUBTITLE);
         if (TextUtils.isEmpty(subtitleText)) {
             subtitle.setVisibility(View.GONE);
@@ -243,7 +249,8 @@
             subtitle.setText(subtitleText);
         }
 
-        final CharSequence descriptionText = mBundle.getCharSequence(BiometricPrompt.KEY_DESCRIPTION);
+        final CharSequence descriptionText =
+                mBundle.getCharSequence(BiometricPrompt.KEY_DESCRIPTION);
         if (TextUtils.isEmpty(descriptionText)) {
             description.setVisibility(View.GONE);
         } else {
@@ -253,6 +260,9 @@
 
         negative.setText(mBundle.getCharSequence(BiometricPrompt.KEY_NEGATIVE_TEXT));
 
+        showTryAgainButton(mPendingShowTryAgain);
+        showConfirmationButton(mPendingShowConfirm);
+
         if (mWasForceRemoved || mSkipIntro) {
             // Show the dialog immediately
             mLayout.animate().cancel();
@@ -281,11 +291,17 @@
     public void startDismiss() {
         mAnimatingAway = true;
 
+        // This is where final cleanup should occur.
         final Runnable endActionRunnable = new Runnable() {
             @Override
             public void run() {
                 mWindowManager.removeView(BiometricDialogView.this);
                 mAnimatingAway = false;
+                // Set the icons / text back to normal state
+                handleClearMessage();
+                showTryAgainButton(false /* show */);
+                mPendingShowTryAgain = false;
+                mPendingShowConfirm = false;
             }
         };
 
@@ -345,9 +361,13 @@
         return mRequireConfirmation;
     }
 
-    public void showConfirmationButton() {
+    public void showConfirmationButton(boolean show) {
         final Button positive = mLayout.findViewById(R.id.button1);
-        positive.setVisibility(View.VISIBLE);
+        if (show) {
+            positive.setVisibility(View.VISIBLE);
+        } else {
+            positive.setVisibility(View.GONE);
+        }
     }
 
     public void setUserId(int userId) {
@@ -376,12 +396,18 @@
                 BiometricPrompt.HIDE_DIALOG_DELAY);
     }
 
+    public void clearTemporaryMessage() {
+        mHandler.removeMessages(MSG_CLEAR_MESSAGE);
+        mHandler.obtainMessage(MSG_CLEAR_MESSAGE).sendToTarget();
+    }
+
     public void showHelpMessage(String message) {
         showTemporaryMessage(message);
     }
 
     public void showErrorMessage(String error) {
         showTemporaryMessage(error);
+        showTryAgainButton(false /* show */);
         mCallback.onErrorShown();
     }
 
@@ -390,6 +416,25 @@
         mLastState = newState;
     }
 
+    public void showTryAgainButton(boolean show) {
+        final Button tryAgain = mLayout.findViewById(R.id.button_try_again);
+        if (show) {
+            tryAgain.setVisibility(View.VISIBLE);
+        } else {
+            tryAgain.setVisibility(View.GONE);
+        }
+    }
+
+    // Set the state before the window is attached, so we know if the dialog should be started
+    // with or without the button. This is because there's no good onPause signal
+    public void setPendingTryAgain(boolean show) {
+        mPendingShowTryAgain = show;
+    }
+
+    public void setPendingConfirm(boolean show) {
+        mPendingShowConfirm = show;
+    }
+
     public WindowManager.LayoutParams getLayoutParams() {
         final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT,
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/DialogViewCallback.java b/packages/SystemUI/src/com/android/systemui/biometrics/DialogViewCallback.java
index f388d9c..24fd22e 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/DialogViewCallback.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/DialogViewCallback.java
@@ -43,4 +43,9 @@
      * should be dismissed.
      */
     void onPositivePressed();
+
+    /**
+     * Invoked when the "try again" button is pressed.
+     */
+    void onTryAgainPressed();
 }
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
index e868f96..416cc59 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
@@ -23,10 +23,10 @@
 import static com.android.systemui.bubbles.BubbleMovementHelper.EDGE_OVERLAP;
 
 import android.app.Notification;
-import android.app.NotificationManager;
 import android.content.Context;
 import android.graphics.Point;
 import android.graphics.Rect;
+import android.provider.Settings;
 import android.service.notification.StatusBarNotification;
 import android.view.ViewGroup;
 import android.view.WindowManager;
@@ -57,6 +57,11 @@
     // When a bubble is dismissed, recreate it as a notification
     public static final boolean DEBUG_DEMOTE_TO_NOTIF = false;
 
+    // Secure settings
+    private static final String ENABLE_AUTO_BUBBLE_MESSAGES = "experiment_autobubble_messaging";
+    private static final String ENABLE_AUTO_BUBBLE_ONGOING = "experiment_autobubble_ongoing";
+    private static final String ENABLE_AUTO_BUBBLE_ALL = "experiment_autobubble_all";
+
     private Context mContext;
     private BubbleDismissListener mDismissListener;
     private BubbleStateChangeListener mStateChangeListener;
@@ -268,7 +273,7 @@
         for (BubbleView bv : mBubbles.values()) {
             NotificationData.Entry entry = bv.getEntry();
             if (entry != null) {
-                if (entry.row.isRemoved() || entry.isBubbleDismissed() || entry.row.isDismissed()) {
+                if (entry.isRowRemoved() || entry.isBubbleDismissed() || entry.isRowDismissed()) {
                     viewsToRemove.add(bv);
                 }
             }
@@ -318,11 +323,15 @@
     /**
      * Whether the notification should bubble or not.
      */
-    public static boolean shouldAutoBubble(NotificationData.Entry entry, int priority,
-            boolean canAppOverlay) {
-        if (!DEBUG_ENABLE_AUTO_BUBBLE || entry.isBubbleDismissed()) {
+    public static boolean shouldAutoBubble(Context context, NotificationData.Entry entry) {
+        if (entry.isBubbleDismissed()) {
             return false;
         }
+
+        boolean autoBubbleMessages = shouldAutoBubbleMessages(context) || DEBUG_ENABLE_AUTO_BUBBLE;
+        boolean autoBubbleOngoing = shouldAutoBubbleOngoing(context) || DEBUG_ENABLE_AUTO_BUBBLE;
+        boolean autoBubbleAll = shouldAutoBubbleAll(context) || DEBUG_ENABLE_AUTO_BUBBLE;
+
         StatusBarNotification n = entry.notification;
         boolean hasRemoteInput = false;
         if (n.getNotification().actions != null) {
@@ -333,12 +342,28 @@
                 }
             }
         }
+
         Class<? extends Notification.Style> style = n.getNotification().getNotificationStyle();
-        boolean shouldBubble = priority >= NotificationManager.IMPORTANCE_HIGH
-                || Notification.MessagingStyle.class.equals(style)
+        boolean isMessageType = Notification.MessagingStyle.class.equals(style)
                 || Notification.CATEGORY_MESSAGE.equals(n.getNotification().category)
-                || hasRemoteInput
-                || canAppOverlay;
-        return shouldBubble && !entry.isBubbleDismissed();
+                || hasRemoteInput;
+        return (isMessageType && autoBubbleMessages)
+                || (n.isOngoing() && autoBubbleOngoing)
+                || autoBubbleAll;
+    }
+
+    private static boolean shouldAutoBubbleMessages(Context context) {
+        return Settings.Secure.getInt(context.getContentResolver(),
+                ENABLE_AUTO_BUBBLE_MESSAGES, 0) != 0;
+    }
+
+    private static boolean shouldAutoBubbleOngoing(Context context) {
+        return Settings.Secure.getInt(context.getContentResolver(),
+                ENABLE_AUTO_BUBBLE_ONGOING, 0) != 0;
+    }
+
+    private static boolean shouldAutoBubbleAll(Context context) {
+        return Settings.Secure.getInt(context.getContentResolver(),
+                ENABLE_AUTO_BUBBLE_ALL, 0) != 0;
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
index 365dbda..e395c4c 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
@@ -481,7 +481,6 @@
         viewState.dimmed = false;
         viewState.dark = false;
         viewState.alpha = 1f;
-        viewState.shadowAlpha = 1f;
         viewState.notGoneIndex = -1;
         viewState.xTranslation = 0;
         viewState.yTranslation = 0;
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleView.java
index a79e047..6c47aac 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleView.java
@@ -120,7 +120,7 @@
      * @return the view to display when the bubble is expanded.
      */
     public ExpandableNotificationRow getRowView() {
-        return mEntry.row;
+        return mEntry.getRow();
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/car/CarSystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/car/CarSystemUIFactory.java
deleted file mode 100644
index 09c000b..0000000
--- a/packages/SystemUI/src/com/android/systemui/car/CarSystemUIFactory.java
+++ /dev/null
@@ -1,53 +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.systemui.car;
-
-import android.content.Context;
-import android.util.ArrayMap;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.keyguard.ViewMediatorCallback;
-import com.android.systemui.Dependency.DependencyProvider;
-import com.android.systemui.SystemUIFactory;
-import com.android.systemui.statusbar.NotificationMediaManager;
-import com.android.systemui.statusbar.car.CarFacetButtonController;
-import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager;
-import com.android.systemui.statusbar.car.hvac.HvacController;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
-import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
-
-/**
- * Class factory to provide car specific SystemUI components.
- */
-public class CarSystemUIFactory extends SystemUIFactory {
-
-    public StatusBarKeyguardViewManager createStatusBarKeyguardViewManager(Context context,
-            ViewMediatorCallback viewMediatorCallback, LockPatternUtils lockPatternUtils) {
-        return new CarStatusBarKeyguardViewManager(context, viewMediatorCallback, lockPatternUtils);
-    }
-
-    @Override
-    public void injectDependencies(ArrayMap<Object, DependencyProvider> providers,
-            Context context) {
-        super.injectDependencies(providers, context);
-        providers.put(NotificationEntryManager.class,
-                () -> new CarNotificationEntryManager(context));
-        providers.put(CarFacetButtonController.class, () -> new CarFacetButtonController(context));
-        providers.put(HvacController.class, () -> new HvacController(context));
-        providers.put(NotificationMediaManager.class,
-                () -> new CarNotificationMediaManager(context));
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
index 21b21d9..eda3c59 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
@@ -177,9 +177,22 @@
         log("state " + state);
     }
 
-    public static void traceWakeLockScreenWakeUp() {
+    /**
+     * Appends lock screen wake up event to the logs.
+     * @param wake if we're waking up or sleeping.
+     */
+    public static void traceLockScreenWakeUp(boolean wake) {
         if (!ENABLED) return;
-        log("wakeLockScreenWakeUp");
+        log("wakeLockScreenWakeUp " + wake);
+    }
+
+    /**
+     * Appends wake-display event to the logs.
+     * @param wake if we're waking up or sleeping.
+     */
+    public static void traceWakeDisplay(boolean wake) {
+        if (!ENABLED) return;
+        log("wakeLockScreenWakeUp " + wake);
     }
 
     public static void traceProximityResult(Context context, boolean near, long millis,
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java
index 01a2345..1dd31010 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java
@@ -24,20 +24,21 @@
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
-import android.os.Build;
 import android.os.Handler;
+import android.os.SystemProperties;
 import android.os.Trace;
 import android.os.UserHandle;
 import android.provider.Settings;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.systemui.Dependency;
 
 /**
  * Controls the screen brightness when dozing.
  */
 public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachine.Part,
         SensorEventListener {
+    private static final boolean DEBUG_AOD_BRIGHTNESS = SystemProperties
+            .getBoolean("debug.aod_brightness", false);
     protected static final String ACTION_AOD_BRIGHTNESS =
             "com.android.systemui.doze.AOD_BRIGHTNESS";
     protected static final String BRIGHTNESS_BUCKET = "brightness_bucket";
@@ -83,11 +84,9 @@
         mSensorToScrimOpacity = sensorToScrimOpacity;
 
         if (mDebuggable) {
-            Dependency.get(Dependency.BG_HANDLER).post(()-> {
-                IntentFilter filter = new IntentFilter();
-                filter.addAction(ACTION_AOD_BRIGHTNESS);
-                mContext.registerReceiverAsUser(this, UserHandle.ALL, filter, null, handler);
-            });
+            IntentFilter filter = new IntentFilter();
+            filter.addAction(ACTION_AOD_BRIGHTNESS);
+            mContext.registerReceiverAsUser(this, UserHandle.ALL, filter, null, handler);
         }
     }
 
@@ -97,7 +96,7 @@
         this(context, service, sensorManager, lightSensor, host, handler,
                 context.getResources().getInteger(
                         com.android.internal.R.integer.config_screenBrightnessDoze),
-                policy.screenBrightnessArray, policy.dimmingScrimArray, Build.IS_DEBUGGABLE);
+                policy.screenBrightnessArray, policy.dimmingScrimArray, DEBUG_AOD_BRIGHTNESS);
     }
 
     @Override
@@ -126,9 +125,7 @@
     private void onDestroy() {
         setLightSensorEnabled(false);
         if (mDebuggable) {
-            Dependency.get(Dependency.BG_HANDLER).post(()-> {
-                mContext.unregisterReceiver(this);
-            });
+            mContext.unregisterReceiver(this);
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
index 77f7ad4f..7e77843 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
@@ -16,6 +16,7 @@
 
 package com.android.systemui.doze;
 
+import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_DISPLAY;
 import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_LOCK_SCREEN;
 
 import android.annotation.AnyThread;
@@ -67,7 +68,6 @@
     private final AmbientDisplayConfiguration mConfig;
     private final WakeLock mWakeLock;
     private final Consumer<Boolean> mProxCallback;
-    private final Consumer<Boolean> mWakeScreenCallback;
     private final Callback mCallback;
 
     private final Handler mHandler = new Handler();
@@ -76,8 +76,7 @@
 
     public DozeSensors(Context context, AlarmManager alarmManager, SensorManager sensorManager,
             DozeParameters dozeParameters, AmbientDisplayConfiguration config, WakeLock wakeLock,
-            Callback callback, Consumer<Boolean> proxCallback,
-            Consumer<Boolean> wakeScreenCallback, AlwaysOnDisplayPolicy policy) {
+            Callback callback, Consumer<Boolean> proxCallback, AlwaysOnDisplayPolicy policy) {
         mContext = context;
         mAlarmManager = alarmManager;
         mSensorManager = sensorManager;
@@ -85,7 +84,6 @@
         mConfig = config;
         mWakeLock = wakeLock;
         mProxCallback = proxCallback;
-        mWakeScreenCallback = wakeScreenCallback;
         mResolver = mContext.getContentResolver();
 
         mSensors = new TriggerSensor[] {
@@ -123,7 +121,13 @@
                         DozeLog.PULSE_REASON_SENSOR_WAKE_LOCK_SCREEN,
                         false /* reports touch coordinates */,
                         false /* touchscreen */),
-                new WakeScreenSensor(),
+                new PluginTriggerSensor(
+                        new SensorManagerPlugin.Sensor(TYPE_WAKE_DISPLAY),
+                        Settings.Secure.DOZE_WAKE_SCREEN_GESTURE,
+                        true /* configured */,
+                        DozeLog.REASON_SENSOR_WAKE_UP,
+                        false /* reports touch coordinates */,
+                        false /* touchscreen */),
         };
 
         mProxSensor = new ProxSensor(policy);
@@ -395,8 +399,11 @@
                     screenX = event.values[0];
                     screenY = event.values[1];
                 }
-                mCallback.onSensorPulse(mPulseReason, sensorPerformsProxCheck, screenX, screenY);
-                updateListener();  // reregister, this sensor only fires once
+                mCallback.onSensorPulse(mPulseReason, sensorPerformsProxCheck, screenX, screenY,
+                        event.values);
+                if (!mRegistered) {
+                    updateListener();  // reregister, this sensor only fires once
+                }
             }));
         }
 
@@ -429,7 +436,16 @@
 
         private final SensorManagerPlugin.Sensor mPluginSensor;
         private final SensorManagerPlugin.TriggerEventListener mTriggerEventListener = (event) -> {
-            onTrigger(null);
+            DozeLog.traceSensor(mContext, mPulseReason);
+            mHandler.post(mWakeLock.wrap(() -> {
+                if (DEBUG) Log.d(TAG, "onTrigger: " + triggerEventToString(event));
+                mRegistered = false;
+                mCallback.onSensorPulse(mPulseReason, true /* sensorPerformsProxCheck */, -1, -1,
+                        event.getValues());
+                if (!mRegistered) {
+                    updateListener();  // reregister, this sensor only fires once
+                }
+            }));
         };
 
         PluginTriggerSensor(SensorManagerPlugin.Sensor sensor, String setting, boolean configured,
@@ -463,27 +479,17 @@
                     .append(", mSensor=").append(mPluginSensor).append("}").toString();
         }
 
-    }
-
-    private class WakeScreenSensor extends TriggerSensor {
-
-        WakeScreenSensor() {
-            super(findSensorWithType(mConfig.wakeScreenSensorType()),
-                    Settings.Secure.DOZE_WAKE_SCREEN_GESTURE, true /* configured */,
-                    DozeLog.REASON_SENSOR_WAKE_UP, false /* reportsTouchCoordinates */,
-                    false /* requiresTouchscreen */);
-        }
-
-        @Override
-        @AnyThread
-        public void onTrigger(TriggerEvent event) {
-            DozeLog.traceSensor(mContext, mPulseReason);
-            mHandler.post(mWakeLock.wrap(() -> {
-                if (DEBUG) Log.d(TAG, "onTrigger: " + triggerEventToString(event));
-                mRegistered = false;
-                mWakeScreenCallback.accept(event.values[0] > 0);
-                updateListener();  // reregister, this sensor only fires once
-            }));
+        private String triggerEventToString(SensorManagerPlugin.TriggerEvent event) {
+            if (event == null) return null;
+            final StringBuilder sb = new StringBuilder("PluginTriggerEvent[")
+                    .append(event.getSensor()).append(',')
+                    .append(event.getVendorType());
+            if (event.getValues() != null) {
+                for (int i = 0; i < event.getValues().length; i++) {
+                    sb.append(',').append(event.getValues()[i]);
+                }
+            }
+            return sb.append(']').toString();
         }
     }
 
@@ -494,11 +500,11 @@
          * @param pulseReason Requesting sensor, e.g. {@link DozeLog#PULSE_REASON_SENSOR_PICKUP}
          * @param sensorPerformedProxCheck true if the sensor already checked for FAR proximity.
          * @param screenX the location on the screen where the sensor fired or -1
-         *                if the sensor doesn't support reporting screen locations.
+ *                if the sensor doesn't support reporting screen locations.
          * @param screenY the location on the screen where the sensor fired or -1
-         *                if the sensor doesn't support reporting screen locations.
+         * @param rawValues raw values array from the event.
          */
         void onSensorPulse(int pulseReason, boolean sensorPerformedProxCheck,
-                float screenX, float screenY);
+                float screenX, float screenY, float[] rawValues);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
index d69b1bf..afe9a74 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
@@ -84,7 +84,7 @@
         mWakeLock = wakeLock;
         mAllowPulseTriggers = allowPulseTriggers;
         mDozeSensors = new DozeSensors(context, alarmManager, mSensorManager, dozeParameters,
-                config, wakeLock, this::onSensor, this::onProximityFar, this::onWakeScreen,
+                config, wakeLock, this::onSensor, this::onProximityFar,
                 dozeParameters.getPolicy());
         mUiModeManager = mContext.getSystemService(UiModeManager.class);
     }
@@ -124,13 +124,17 @@
     }
 
     private void onSensor(int pulseReason, boolean sensorPerformedProxCheck,
-            float screenX, float screenY) {
+            float screenX, float screenY, float[] rawValues) {
         boolean isDoubleTap = pulseReason == DozeLog.PULSE_REASON_SENSOR_DOUBLE_TAP;
         boolean isPickup = pulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP;
         boolean isLongPress = pulseReason == DozeLog.PULSE_REASON_SENSOR_LONG_PRESS;
         boolean isWakeLockScreen = pulseReason == DozeLog.PULSE_REASON_SENSOR_WAKE_LOCK_SCREEN;
+        boolean isWakeDisplay = pulseReason == DozeLog.REASON_SENSOR_WAKE_UP;
+        boolean wakeEvent = rawValues != null && rawValues.length > 0 && rawValues[0] != 0;
 
-        if (isLongPress) {
+        if (isWakeDisplay) {
+            onWakeScreen(wakeEvent);
+        } else if (isLongPress) {
             requestPulse(pulseReason, sensorPerformedProxCheck);
         } else {
             proximityCheckThenCall((result) -> {
@@ -141,7 +145,15 @@
                 if (isDoubleTap) {
                     mDozeHost.onDoubleTap(screenX, screenY);
                     mMachine.wakeUp();
-                } else if (isPickup || isWakeLockScreen) {
+                } else if (isWakeLockScreen) {
+                    if (wakeEvent) {
+                        mDozeHost.setPassiveInterrupt(true);
+                        mMachine.wakeUp();
+                        DozeLog.traceLockScreenWakeUp(wakeEvent);
+                    } else {
+                        if (DEBUG) Log.d(TAG, "Unpulsing");
+                    }
+                } else if (isPickup) {
                     mDozeHost.setPassiveInterrupt(true);
                     mMachine.wakeUp();
                 } else {
@@ -157,8 +169,6 @@
             final boolean withinVibrationThreshold =
                     timeSinceNotification < mDozeParameters.getPickupVibrationThreshold();
             DozeLog.tracePickupWakeUp(mContext, withinVibrationThreshold);
-        } else if (isWakeLockScreen) {
-            DozeLog.traceWakeLockScreenWakeUp();
         }
     }
 
@@ -174,6 +184,7 @@
             if (DEBUG) Log.i(TAG, "Prox changed, ignore touch = " + ignoreTouch);
             mDozeHost.onIgnoreTouchWhilePulsing(ignoreTouch);
         }
+
         if (far && (paused || pausing)) {
             if (DEBUG) Log.i(TAG, "Prox FAR, unpausing AOD");
             mMachine.requestState(DozeMachine.State.DOZE_AOD);
@@ -184,6 +195,7 @@
     }
 
     private void onWakeScreen(boolean wake) {
+        DozeLog.traceWakeDisplay(wake);
         DozeMachine.State state = mMachine.getState();
         boolean paused = (state == DozeMachine.State.DOZE_AOD_PAUSED);
         boolean pausing = (state == DozeMachine.State.DOZE_AOD_PAUSING);
@@ -194,13 +206,13 @@
                     // In pocket, drop event.
                     return;
                 }
-                if (pausing || paused) {
+                if (mMachine.getState() == DozeMachine.State.DOZE) {
                     mMachine.requestState(DozeMachine.State.DOZE_AOD);
                 }
             }, false /* alreadyPerformedProxCheck */, DozeLog.REASON_SENSOR_WAKE_UP);
         } else {
             if (!pausing && !paused) {
-                mMachine.requestState(DozeMachine.State.DOZE_AOD_PAUSING);
+                mMachine.requestState(DozeMachine.State.DOZE);
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeWallpaperState.java b/packages/SystemUI/src/com/android/systemui/doze/DozeWallpaperState.java
index 9a5a5b8..be504ef 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeWallpaperState.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeWallpaperState.java
@@ -23,6 +23,7 @@
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
 import com.android.systemui.statusbar.phone.DozeParameters;
 
 import java.io.PrintWriter;
@@ -80,11 +81,12 @@
         if (isAmbientMode != mIsAmbientMode) {
             mIsAmbientMode = isAmbientMode;
             try {
+                long duration = animated ? StackStateAnimator.ANIMATION_DURATION_WAKEUP : 0L;
                 if (DEBUG) {
                     Log.i(TAG, "AOD wallpaper state changed to: " + mIsAmbientMode
-                            + ", animated: " + animated);
+                            + ", animationDuration: " + duration);
                 }
-                mWallpaperManagerService.setInAmbientMode(mIsAmbientMode, animated);
+                mWallpaperManagerService.setInAmbientMode(mIsAmbientMode, duration);
             } catch (RemoteException e) {
                 // Cannot notify wallpaper manager service, but it's fine, let's just skip it.
                 Log.w(TAG, "Cannot notify state to WallpaperManagerService: " + mIsAmbientMode);
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
index dc7b1ef..268245b 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
@@ -326,8 +326,7 @@
         ArraySet<String> addedKeys = new ArraySet<String>();
         mHasLogoutButton = false;
         mHasLockdownButton = false;
-        mSeparatedEmergencyButtonEnabled = FeatureFlagUtils
-                .isEnabled(mContext, FeatureFlagUtils.EMERGENCY_DIAL_SHORTCUTS);
+        mSeparatedEmergencyButtonEnabled = true;
         for (int i = 0; i < defaultActions.length; i++) {
             String actionKey = defaultActions[i];
             if (addedKeys.contains(actionKey)) {
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
index e78951a..201c7e6 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
@@ -18,7 +18,6 @@
 
 import android.app.ActivityManager;
 import android.app.AlarmManager;
-import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
@@ -175,7 +174,7 @@
      * @param builder The slice builder.
      */
     protected void addZenMode(ListBuilder builder) {
-        if (!isDndSuppressingNotifications()) {
+        if (!isDndOn()) {
             return;
         }
         RowBuilder dndBuilder = new RowBuilder(mDndUri)
@@ -187,13 +186,10 @@
     }
 
     /**
-     * Return true if DND is enabled suppressing notifications.
+     * Return true if DND is enabled.
      */
-    protected boolean isDndSuppressingNotifications() {
-        boolean suppressingNotifications = (mZenModeController.getConfig().suppressedVisualEffects
-                & NotificationManager.Policy.SUPPRESSED_EFFECT_NOTIFICATION_LIST) != 0;
-        return mZenModeController.getZen() != Settings.Global.ZEN_MODE_OFF
-                && suppressingNotifications;
+    protected boolean isDndOn() {
+        return mZenModeController.getZen() != Settings.Global.ZEN_MODE_OFF;
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivity.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivity.java
index e447def..8495fd3 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMenuActivity.java
@@ -19,6 +19,8 @@
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.provider.Settings.ACTION_PICTURE_IN_PICTURE_SETTINGS;
+import static android.view.accessibility.AccessibilityManager.FLAG_CONTENT_CONTROLS;
+import static android.view.accessibility.AccessibilityManager.FLAG_CONTENT_ICONS;
 
 import static com.android.systemui.pip.phone.PipMenuActivityController.EXTRA_ACTIONS;
 import static com.android.systemui.pip.phone.PipMenuActivityController.EXTRA_ALLOW_TIMEOUT;
@@ -65,6 +67,7 @@
 import android.view.ViewConfiguration;
 import android.view.ViewGroup;
 import android.view.WindowManager.LayoutParams;
+import android.view.accessibility.AccessibilityManager;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -90,8 +93,8 @@
     public static final int MESSAGE_UPDATE_DISMISS_FRACTION = 5;
     public static final int MESSAGE_ANIMATION_ENDED = 6;
 
-    private static final long INITIAL_DISMISS_DELAY = 3500;
-    private static final long POST_INTERACTION_DISMISS_DELAY = 2000;
+    private static final int INITIAL_DISMISS_DELAY = 3500;
+    private static final int POST_INTERACTION_DISMISS_DELAY = 2000;
     private static final long MENU_FADE_DURATION = 125;
 
     private static final float MENU_BACKGROUND_ALPHA = 0.3f;
@@ -105,6 +108,7 @@
 
     private final List<RemoteAction> mActions = new ArrayList<>();
 
+    private AccessibilityManager mAccessibilityManager;
     private View mViewRoot;
     private Drawable mBackgroundDrawable;
     private View mMenuContainer;
@@ -194,6 +198,7 @@
         super.onCreate(savedInstanceState);
         setContentView(R.layout.pip_menu_activity);
 
+        mAccessibilityManager = getSystemService(AccessibilityManager.class);
         mBackgroundDrawable = new ColorDrawable(Color.BLACK);
         mBackgroundDrawable.setAlpha(0);
         mViewRoot = findViewById(R.id.background);
@@ -639,8 +644,10 @@
         mHandler.removeCallbacks(mFinishRunnable);
     }
 
-    private void repostDelayedFinish(long delay) {
+    private void repostDelayedFinish(int delay) {
+        int recommendedTimeout = mAccessibilityManager.getRecommendedTimeoutMillis(delay,
+                FLAG_CONTENT_ICONS | FLAG_CONTENT_CONTROLS);
         mHandler.removeCallbacks(mFinishRunnable);
-        mHandler.postDelayed(mFinishRunnable, delay);
+        mHandler.postDelayed(mFinishRunnable, recommendedTimeout);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
index 03a573e..6a9f24c 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
@@ -368,7 +368,7 @@
 
     private void onAccessibilityShowMenu() {
         mMenuController.showMenu(MENU_STATE_FULL, mMotionHelper.getBounds(),
-                mMovementBounds, false /* allowMenuTimeout */, willResizeMenu());
+                mMovementBounds, true /* allowMenuTimeout */, willResizeMenu());
     }
 
     private boolean handleTouchEvent(MotionEvent ev) {
diff --git a/packages/SystemUI/src/com/android/systemui/power/PowerUI.java b/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
index 35ae899..f054345 100644
--- a/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
+++ b/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
@@ -90,7 +90,7 @@
     private float[] mRecentTemps = new float[MAX_RECENT_TEMPS];
     private int mNumTemps;
     private long mNextLogTime;
-    private IThermalService mThermalService;
+    @VisibleForTesting IThermalService mThermalService;
 
     @VisibleForTesting int mBatteryLevel = 100;
     @VisibleForTesting int mBatteryStatus = BatteryManager.BATTERY_STATUS_UNKNOWN;
@@ -394,7 +394,7 @@
             // Enable push notifications of throttling from vendor thermal
             // management subsystem via thermalservice, in addition to our
             // usual polling, to react to temperature jumps more quickly.
-            IBinder b = ServiceManager.getService("thermalservice");
+            IBinder b = ServiceManager.getService(Context.THERMAL_SERVICE);
 
             if (b != null) {
                 mThermalService = IThermalService.Stub.asInterface(b);
@@ -411,13 +411,8 @@
 
         setNextLogTime();
 
-        // This initialization method may be called on a configuration change. Only one set of
-        // ongoing callbacks should be occurring, so remove any now. updateTemperatureWarning will
-        // schedule an ongoing callback.
-        mHandler.removeCallbacks(mUpdateTempCallback);
-
         // We have passed all of the checks, start checking the temp
-        updateTemperatureWarning();
+        mHandler.post(mUpdateTempCallback);
     }
 
     private void showThermalShutdownDialog() {
@@ -448,6 +443,8 @@
 
         logTemperatureStats();
 
+        // Remove any pending callbacks as we only want to enable one
+        mHandler.removeCallbacks(mUpdateTempCallback);
         mHandler.postDelayed(mUpdateTempCallback, TEMPERATURE_INTERVAL);
     }
 
@@ -553,11 +550,7 @@
     // Thermal event received from vendor thermal management subsystem
     private final class ThermalEventListener extends IThermalEventListener.Stub {
         @Override public void notifyThrottling(Temperature temp) {
-            // Trigger an update of the temperature warning.  Only one
-            // callback can be enabled at a time, so remove any existing
-            // callback; updateTemperatureWarning will schedule another one.
-            mHandler.removeCallbacks(mUpdateTempCallback);
-            updateTemperatureWarning();
+            mHandler.post(mUpdateTempCallback);
         }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt
index d3715d0..65ed889 100644
--- a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt
+++ b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyChip.kt
@@ -78,8 +78,9 @@
                 if (builder.app != null) {
                     text.setText(builder.app?.applicationName)
                 } else {
-                    text.text = context.getString(R.string.ongoing_privacy_chip_multiple_apps,
-                            builder.appsAndTypes.size)
+                    text.text = context.resources.getQuantityString(
+                            R.plurals.ongoing_privacy_chip_multiple_apps,
+                            builder.appsAndTypes.size, builder.appsAndTypes.size)
                 }
             }
         } else {
@@ -100,9 +101,9 @@
                         context.getString(R.string.ongoing_privacy_chip_content_single_app,
                                 builder.app?.applicationName, typesText)
             } else {
-                contentDescription = context.getString(
-                        R.string.ongoing_privacy_chip_content_multiple_apps_single_op,
-                        builder.appsAndTypes.size, typesText)
+                contentDescription = context.resources.getQuantityString(
+                        R.plurals.ongoing_privacy_chip_content_multiple_apps_single_op,
+                        builder.appsAndTypes.size, builder.appsAndTypes.size, typesText)
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt
index f6a95af..bbdae29 100644
--- a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt
+++ b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt
@@ -20,6 +20,7 @@
 import android.content.DialogInterface
 import android.content.Intent
 import android.content.res.ColorStateList
+import android.view.Gravity
 import android.view.LayoutInflater
 import android.view.View
 import android.widget.ImageView
@@ -34,13 +35,13 @@
     val dialogBuilder: PrivacyDialogBuilder
 ) {
 
-    val iconSize = context.resources.getDimensionPixelSize(
-            R.dimen.ongoing_appops_dialog_icon_height)
-    val iconColor = context.resources.getColor(
+    private val iconSize = context.resources.getDimensionPixelSize(
+            R.dimen.ongoing_appops_dialog_icon_size)
+    private val iconColor = context.resources.getColor(
             com.android.internal.R.color.text_color_primary, context.theme)
-    companion object {
-        private const val MAX_ITEMS = 10
-    }
+    private val iconMargin = context.resources.getDimensionPixelSize(
+            R.dimen.ongoing_appops_dialog_icon_margin)
+    private val MAX_ITEMS = context.resources.getInteger(R.integer.ongoing_appops_dialog_max_apps)
 
     fun createDialog(): Dialog {
         val builder = AlertDialog.Builder(context).apply {
@@ -105,6 +106,11 @@
         val appName = item.findViewById(R.id.app_name) as TextView
         val icons = item.findViewById(R.id.icons) as LinearLayout
 
+        var lp = LinearLayout.LayoutParams(iconSize, iconSize).apply {
+            gravity = Gravity.CENTER_VERTICAL
+            marginStart = iconMargin
+        }
+
         app.icon?.let {
             appIcon.setImageDrawable(it)
         }
@@ -117,7 +123,7 @@
                     imageTintList = ColorStateList.valueOf(iconColor)
                     setImageDrawable(it)
                 }
-                icons.addView(image, iconSize, LinearLayout.LayoutParams.WRAP_CONTENT)
+                icons.addView(image, lp)
             }
             icons.visibility = View.VISIBLE
         } else {
diff --git a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt
index 3fa3e8e..268462e 100644
--- a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt
+++ b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyItemController.kt
@@ -18,10 +18,14 @@
 
 import android.app.ActivityManager
 import android.app.AppOpsManager
+import android.content.BroadcastReceiver
 import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
 import android.os.Handler
 import android.os.UserHandle
 import android.os.UserManager
+import com.android.internal.annotations.VisibleForTesting
 import com.android.systemui.Dependency
 import com.android.systemui.appops.AppOpItem
 import com.android.systemui.appops.AppOpsController
@@ -33,25 +37,29 @@
                 AppOpsManager.OP_RECORD_AUDIO,
                 AppOpsManager.OP_COARSE_LOCATION,
                 AppOpsManager.OP_FINE_LOCATION)
+        val intents = listOf(Intent.ACTION_USER_FOREGROUND,
+                Intent.ACTION_MANAGED_PROFILE_ADDED,
+                Intent.ACTION_MANAGED_PROFILE_REMOVED)
+        const val TAG = "PrivacyItemController"
     }
 
     private var privacyList = emptyList<PrivacyItem>()
     private val appOpsController = Dependency.get(AppOpsController::class.java)
     private val userManager = context.getSystemService(UserManager::class.java)
-    private val currentUser = ActivityManager.getCurrentUser()
-    private val currentUserIds = userManager.getProfiles(currentUser).map { it.id }
+    private var currentUserIds = emptyList<Int>()
     private val bgHandler = Handler(Dependency.get(Dependency.BG_LOOPER))
     private val uiHandler = Dependency.get(Dependency.MAIN_HANDLER)
+    private var listening = false
+
     private val notifyChanges = Runnable {
         callback.privacyChanged(privacyList)
     }
+
     private val updateListAndNotifyChanges = Runnable {
         updatePrivacyList()
         uiHandler.post(notifyChanges)
     }
 
-    private var listening = false
-
     private val cb = object : AppOpsController.Callback {
         override fun onActiveStateChanged(
             code: Int,
@@ -61,12 +69,36 @@
         ) {
             val userId = UserHandle.getUserId(uid)
             if (userId in currentUserIds) {
-                update()
+                update(false)
             }
         }
     }
 
-    private fun update() {
+    @VisibleForTesting
+    internal var userSwitcherReceiver = Receiver()
+        set(value) {
+            context.unregisterReceiver(field)
+            field = value
+            registerReceiver()
+        }
+
+    init {
+        registerReceiver()
+    }
+
+    private fun registerReceiver() {
+        context.registerReceiverAsUser(userSwitcherReceiver, UserHandle.ALL, IntentFilter().apply {
+            intents.forEach {
+                addAction(it)
+            }
+        }, null, null)
+    }
+
+    private fun update(updateUsers: Boolean) {
+        if (updateUsers) {
+            val currentUser = ActivityManager.getCurrentUser()
+            currentUserIds = userManager.getProfiles(currentUser).map { it.id }
+        }
         bgHandler.post(updateListAndNotifyChanges)
     }
 
@@ -75,7 +107,7 @@
         listening = listen
         if (listening) {
             appOpsController.addCallback(OPS, cb)
-            update()
+            update(true)
         } else {
             appOpsController.removeCallback(OPS, cb)
         }
@@ -102,4 +134,12 @@
     interface Callback {
         fun privacyChanged(privacyItems: List<PrivacyItem>)
     }
+
+    internal inner class Receiver : BroadcastReceiver() {
+        override fun onReceive(context: Context?, intent: Intent?) {
+            if (intent?.action in intents) {
+                update(true)
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java b/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java
index 8b434a5..496aa0e 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java
@@ -323,7 +323,9 @@
             post(new Runnable() {
                 @Override
                 public void run() {
-                    handleShowingDetail(detail, x, y, false /* toggleQs */);
+                    if (isAttachedToWindow()) {
+                        handleShowingDetail(detail, x, y, false /* toggleQs */);
+                    }
                 }
             });
         }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java
index 591e9e0..9d2be39 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java
@@ -26,6 +26,7 @@
 import android.graphics.drawable.Drawable;
 import android.os.Build;
 import android.os.Handler;
+import android.provider.Settings;
 import android.service.quicksettings.TileService;
 import android.text.TextUtils;
 import android.util.ArraySet;
@@ -69,7 +70,8 @@
         mSpecs.clear();
         mFinished = false;
         // Enqueue jobs to fetch every system tile and then ever package tile.
-        addStockTiles(host);
+        addCurrentAndStockTiles(host);
+
         addPackageTiles(host);
     }
 
@@ -77,16 +79,28 @@
         return mFinished;
     }
 
-    private void addStockTiles(QSTileHost host) {
-        String possible = mContext.getString(R.string.quick_settings_tiles_stock);
+    private void addCurrentAndStockTiles(QSTileHost host) {
+        String stock = mContext.getString(R.string.quick_settings_tiles_stock);
+        String current = Settings.Secure.getString(mContext.getContentResolver(),
+                Settings.Secure.QS_TILES);
         final ArrayList<String> possibleTiles = new ArrayList<>();
-        possibleTiles.addAll(Arrays.asList(possible.split(",")));
-        if (Build.IS_DEBUGGABLE) {
+        if (current != null) {
+            // The setting QS_TILES is not populated immediately upon Factory Reset
+            possibleTiles.addAll(Arrays.asList(current.split(",")));
+        }
+        String[] stockSplit =  stock.split(",");
+        for (String spec : stockSplit) {
+            if (!current.contains(spec)) {
+                possibleTiles.add(spec);
+            }
+        }
+        if (Build.IS_DEBUGGABLE && !current.contains(GarbageMonitor.MemoryTile.TILE_SPEC)) {
             possibleTiles.add(GarbageMonitor.MemoryTile.TILE_SPEC);
         }
 
         final ArrayList<QSTile> tilesToAdd = new ArrayList<>();
         for (String spec : possibleTiles) {
+            // Only add current and stock tiles that can be created from QSFactoryImpl
             final QSTile tile = host.createTile(spec);
             if (tile == null) {
                 continue;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
index b2f6043..7d52f0b 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
@@ -114,7 +114,7 @@
         }
 
         // Broken tiles.
-        Log.w(TAG, "Bad tile spec: " + tileSpec);
+        Log.w(TAG, "No stock tile spec: " + tileSpec);
         return null;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java
index 0638998..3a96595d 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java
@@ -198,7 +198,8 @@
         mIcon.setIcon(state, allowAnimations);
         setContentDescription(state.contentDescription);
 
-        mAccessibilityClass = state.expandedAccessibilityClassName;
+        mAccessibilityClass =
+                state.state == Tile.STATE_UNAVAILABLE ? null : state.expandedAccessibilityClassName;
         if (state instanceof QSTile.BooleanState) {
             boolean newState = ((BooleanState) state).value;
             if (mTileState != newState) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
index c62a592..3ab1c21 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
@@ -205,7 +205,10 @@
             } else {
                 final BluetoothClass bluetoothClass = lastDevice.getBtClass();
                 if (bluetoothClass != null) {
-                    if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
+                    if (lastDevice.isHearingAidDevice()) {
+                        return mContext.getString(
+                                R.string.quick_settings_bluetooth_secondary_label_hearing_aids);
+                    } else if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
                         return mContext.getString(
                                 R.string.quick_settings_bluetooth_secondary_label_audio);
                     } else if (bluetoothClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
index 1b89324..12b6f67 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -43,6 +43,7 @@
 import android.util.Log;
 import android.view.MotionEvent;
 
+import com.android.internal.policy.ScreenDecorationsUtils;
 import com.android.systemui.Dependency;
 import com.android.systemui.Dumpable;
 import com.android.systemui.Prefs;
@@ -97,6 +98,7 @@
     private int mCurrentBoundedUserId = -1;
     private float mBackButtonAlpha;
     private MotionEvent mStatusBarGestureDownEvent;
+    private float mWindowCornerRadius;
 
     private ISystemUiProxy mSysUiProxy = new ISystemUiProxy.Stub() {
 
@@ -228,6 +230,18 @@
             }
         }
 
+        public float getWindowCornerRadius() {
+            if (!verifyCaller("getWindowCornerRadius")) {
+                return 0;
+            }
+            long token = Binder.clearCallingIdentity();
+            try {
+                return mWindowCornerRadius;
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
         private boolean verifyCaller(String reason) {
             final int callerId = Binder.getCallingUserHandle().getIdentifier();
             if (callerId != mCurrentBoundedUserId) {
@@ -334,6 +348,7 @@
                 .setPackage(mRecentsComponentName.getPackageName());
         mInteractionFlags = Prefs.getInt(mContext, Prefs.Key.QUICK_STEP_INTERACTION_FLAGS,
                 getDefaultInteractionFlags());
+        mWindowCornerRadius = ScreenDecorationsUtils.getWindowCornerRadius(mContext.getResources());
 
         // Listen for the package update changes.
         if (mDeviceProvisionedController.getCurrentUser() == UserHandle.USER_SYSTEM) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java b/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
index 216b940..f796793 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
@@ -219,7 +219,7 @@
             mLayout.findViewById(R.id.screen_pinning_text_area)
                     .setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
             View buttons = mLayout.findViewById(R.id.screen_pinning_buttons);
-            if (WindowManagerWrapper.getInstance().hasSoftNavigationBar()) {
+            if (WindowManagerWrapper.getInstance().hasSoftNavigationBar(mContext.getDisplayId())) {
                 buttons.setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
                 swapChildrenIfRtlAndVertical(buttons);
             } else {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java
index b6e88d6..bc38169 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.statusbar;
 
+import static com.android.systemui.statusbar.notification.NotificationData.Entry;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.os.Handler;
@@ -27,7 +29,7 @@
 import android.view.accessibility.AccessibilityEvent;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.systemui.statusbar.notification.NotificationData;
+import com.android.systemui.statusbar.notification.row.NotificationInflater.InflationFlag;
 
 import java.util.stream.Stream;
 
@@ -46,8 +48,7 @@
      * NotificationManagerService side, but we keep it to prevent the UI from looking weird and
      * will remove when possible. See {@link NotificationLifetimeExtender}
      */
-    protected final ArraySet<NotificationData.Entry> mExtendedLifetimeAlertEntries =
-            new ArraySet<>();
+    protected final ArraySet<Entry> mExtendedLifetimeAlertEntries = new ArraySet<>();
 
     protected NotificationSafeToRemoveCallback mNotificationLifetimeFinishedCallback;
     protected int mMinimumDisplayTime;
@@ -60,7 +61,7 @@
      * Adds the notification to be managed.
      * @param entry entry to show
      */
-    public void showNotification(@NonNull NotificationData.Entry entry) {
+    public void showNotification(@NonNull Entry entry) {
         if (Log.isLoggable(TAG, Log.VERBOSE)) {
             Log.v(TAG, "showNotification");
         }
@@ -111,8 +112,7 @@
             return;
         }
 
-        alertEntry.mEntry.row.sendAccessibilityEvent(
-                AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+        alertEntry.mEntry.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
         if (alert) {
             alertEntry.updateEntry(true /* updatePostTime */);
         }
@@ -139,7 +139,7 @@
      * @return the entry
      */
     @Nullable
-    public NotificationData.Entry getEntry(@NonNull String key) {
+    public Entry getEntry(@NonNull String key) {
         AlertEntry entry = mAlertEntries.get(key);
         return entry != null ? entry.mEntry : null;
     }
@@ -149,7 +149,7 @@
      * @return all entries
      */
     @NonNull
-    public Stream<NotificationData.Entry> getAllEntries() {
+    public Stream<Entry> getAllEntries() {
         return mAlertEntries.values().stream().map(headsUpEntry -> headsUpEntry.mEntry);
     }
 
@@ -170,15 +170,22 @@
     }
 
     /**
+     * Gets the flag corresponding to the notification content view this alert manager will show.
+     *
+     * @return flag corresponding to the content view
+     */
+    public abstract @InflationFlag int getContentFlag();
+
+    /**
      * Add a new entry and begin managing it.
      * @param entry the entry to add
      */
-    protected final void addAlertEntry(@NonNull NotificationData.Entry entry) {
+    protected final void addAlertEntry(@NonNull Entry entry) {
         AlertEntry alertEntry = createAlertEntry();
         alertEntry.setEntry(entry);
         mAlertEntries.put(entry.key, alertEntry);
         onAlertEntryAdded(alertEntry);
-        entry.row.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+        entry.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
     }
 
     /**
@@ -196,10 +203,10 @@
         if (alertEntry == null) {
             return;
         }
-        NotificationData.Entry entry = alertEntry.mEntry;
+        Entry entry = alertEntry.mEntry;
         mAlertEntries.remove(key);
         onAlertEntryRemoved(alertEntry);
-        entry.row.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+        entry.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
         alertEntry.reset();
         if (mExtendedLifetimeAlertEntries.contains(entry)) {
             if (mNotificationLifetimeFinishedCallback != null) {
@@ -243,12 +250,12 @@
     }
 
     @Override
-    public boolean shouldExtendLifetime(NotificationData.Entry entry) {
+    public boolean shouldExtendLifetime(Entry entry) {
         return !canRemoveImmediately(entry.key);
     }
 
     @Override
-    public void setShouldManageLifetime(NotificationData.Entry entry, boolean shouldExtend) {
+    public void setShouldManageLifetime(Entry entry, boolean shouldExtend) {
         if (shouldExtend) {
             mExtendedLifetimeAlertEntries.add(entry);
         } else {
@@ -258,17 +265,17 @@
     ///////////////////////////////////////////////////////////////////////////////////////////////
 
     protected class AlertEntry implements Comparable<AlertEntry> {
-        @Nullable public NotificationData.Entry mEntry;
+        @Nullable public Entry mEntry;
         public long mPostTime;
         public long mEarliestRemovaltime;
 
         @Nullable protected Runnable mRemoveAlertRunnable;
 
-        public void setEntry(@NonNull final NotificationData.Entry entry) {
+        public void setEntry(@NonNull final Entry entry) {
             setEntry(entry, () -> removeAlertEntry(entry.key));
         }
 
-        public void setEntry(@NonNull final NotificationData.Entry entry,
+        public void setEntry(@NonNull final Entry entry,
                 @Nullable Runnable removeAlertRunnable) {
             mEntry = entry;
             mRemoveAlertRunnable = removeAlertRunnable;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/AmbientPulseManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/AmbientPulseManager.java
index 21a33b0..8821679 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/AmbientPulseManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/AmbientPulseManager.java
@@ -26,13 +26,14 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.systemui.R;
 import com.android.systemui.statusbar.notification.NotificationData;
+import com.android.systemui.statusbar.notification.row.NotificationInflater.InflationFlag;
 
 /**
  * Manager which handles high priority notifications that should "pulse" in when the device is
  * dozing and/or in AOD.  The pulse uses the notification's ambient view and pops in briefly
  * before automatically dismissing the alert.
  */
-public final class AmbientPulseManager extends AlertingNotificationManager {
+public class AmbientPulseManager extends AlertingNotificationManager {
 
     protected final ArraySet<OnAmbientChangedListener> mListeners = new ArraySet<>();
     @VisibleForTesting
@@ -71,10 +72,14 @@
         topEntry.extendPulse();
     }
 
+    public @InflationFlag int getContentFlag() {
+        return FLAG_CONTENT_VIEW_AMBIENT;
+    }
+
     @Override
     protected void onAlertEntryAdded(AlertEntry alertEntry) {
         NotificationData.Entry entry = alertEntry.mEntry;
-        entry.row.setAmbientPulsing(true);
+        entry.setAmbientPulsing(true);
         for (OnAmbientChangedListener listener : mListeners) {
             listener.onAmbientStateChanged(entry, true);
         }
@@ -83,11 +88,11 @@
     @Override
     protected void onAlertEntryRemoved(AlertEntry alertEntry) {
         NotificationData.Entry entry = alertEntry.mEntry;
-        entry.row.setAmbientPulsing(false);
+        entry.setAmbientPulsing(false);
         for (OnAmbientChangedListener listener : mListeners) {
             listener.onAmbientStateChanged(entry, false);
         }
-        entry.row.freeContentViewWhenSafe(FLAG_CONTENT_VIEW_AMBIENT);
+        entry.freeContentViewWhenSafe(FLAG_CONTENT_VIEW_AMBIENT);
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index 0c8f487..8b93995 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -21,7 +21,7 @@
 import android.app.StatusBarManager;
 import android.content.ComponentName;
 import android.graphics.Rect;
-import android.hardware.biometrics.IBiometricPromptReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -96,6 +96,7 @@
     private static final int MSG_SHOW_CHARGING_ANIMATION       = 44 << MSG_SHIFT;
     private static final int MSG_SHOW_PINNING_TOAST_ENTER_EXIT = 45 << MSG_SHIFT;
     private static final int MSG_SHOW_PINNING_TOAST_ESCAPE     = 46 << MSG_SHIFT;
+    private static final int MSG_BIOMETRIC_TRY_AGAIN           = 47 << MSG_SHIFT;
 
     public static final int FLAG_EXCLUDE_NONE = 0;
     public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0;
@@ -163,12 +164,13 @@
 
         default void onRotationProposal(int rotation, boolean isValid) { }
 
-        default void showBiometricDialog(Bundle bundle, IBiometricPromptReceiver receiver,
+        default void showBiometricDialog(Bundle bundle, IBiometricServiceReceiverInternal receiver,
                 int type, boolean requireConfirmation, int userId) { }
         default void onBiometricAuthenticated() { }
         default void onBiometricHelp(String message) { }
         default void onBiometricError(String error) { }
         default void hideBiometricDialog() { }
+        default void showBiometricTryAgain() { }
     }
 
     @VisibleForTesting
@@ -523,8 +525,8 @@
     }
 
     @Override
-    public void showBiometricDialog(Bundle bundle, IBiometricPromptReceiver receiver, int type,
-            boolean requireConfirmation, int userId) {
+    public void showBiometricDialog(Bundle bundle, IBiometricServiceReceiverInternal receiver,
+            int type, boolean requireConfirmation, int userId) {
         synchronized (mLock) {
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = bundle;
@@ -565,6 +567,13 @@
         }
     }
 
+    @Override
+    public void showBiometricTryAgain() {
+        synchronized (mLock) {
+            mHandler.obtainMessage(MSG_BIOMETRIC_TRY_AGAIN).sendToTarget();
+        }
+    }
+
     private final class H extends Handler {
         private H(Looper l) {
             super(l);
@@ -774,7 +783,7 @@
                     for (int i = 0; i < mCallbacks.size(); i++) {
                         mCallbacks.get(i).showBiometricDialog(
                                 (Bundle) someArgs.arg1,
-                                (IBiometricPromptReceiver) someArgs.arg2,
+                                (IBiometricServiceReceiverInternal) someArgs.arg2,
                                 someArgs.argi1 /* type */,
                                 (boolean) someArgs.arg3 /* requireConfirmation */,
                                 someArgs.argi2 /* userId */);
@@ -816,6 +825,11 @@
                         mCallbacks.get(i).showPinningEscapeToast();
                     }
                     break;
+                case MSG_BIOMETRIC_TRY_AGAIN:
+                    for (int i = 0; i < mCallbacks.size(); i++) {
+                        mCallbacks.get(i).showBiometricTryAgain();
+                    }
+                    break;
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/DisplayNavigationBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/DisplayNavigationBarController.java
index 3b611a31..2f26109 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/DisplayNavigationBarController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/DisplayNavigationBarController.java
@@ -22,8 +22,11 @@
 import android.hardware.display.DisplayManager;
 import android.hardware.display.DisplayManager.DisplayListener;
 import android.os.Handler;
+import android.os.RemoteException;
+import android.util.Log;
 import android.util.SparseArray;
 import android.view.Display;
+import android.view.IWindowManager;
 import android.view.View;
 import android.view.WindowManagerGlobal;
 
@@ -34,6 +37,8 @@
  */
 public class DisplayNavigationBarController implements DisplayListener {
 
+    private static final String TAG = DisplayNavigationBarController.class.getName();
+
     private final Context mContext;
     private final Handler mHandler;
     private final DisplayManager mDisplayManager;
@@ -112,14 +117,23 @@
         }
 
         final int displayId = display.getDisplayId();
+        final IWindowManager wms = WindowManagerGlobal.getWindowManagerService();
+
+        try {
+            if (!wms.hasNavigationBar(displayId)) {
+                return;
+            }
+        } catch (RemoteException e) {
+            // Cannot get wms, just return with warning message.
+            Log.w(TAG, "Cannot get WindowManager.");
+            return;
+        }
         final Context externalDisplayContext = mContext.createDisplayContext(display);
-        NavigationBarFragment.create(externalDisplayContext,
-                (tag, fragment) -> {
-                    final NavigationBarFragment navBar = (NavigationBarFragment) fragment;
-                    // TODO(b/115978725): handle external nav bars sysuiVisibility
-                    navBar.setCurrentSysuiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
-                    mExternalNavigationBarMap.append(displayId, navBar);
-                }
-        );
+        NavigationBarFragment.create(externalDisplayContext, (tag, fragment) -> {
+            final NavigationBarFragment navBar = (NavigationBarFragment) fragment;
+            // TODO(b/115978725): handle external nav bars sysuiVisibility
+            navBar.setCurrentSysuiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
+            mExternalNavigationBarMap.append(displayId, navBar);
+        });
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/EmptyShadeView.java b/packages/SystemUI/src/com/android/systemui/statusbar/EmptyShadeView.java
index 745b2f9..b9684fc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/EmptyShadeView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/EmptyShadeView.java
@@ -27,7 +27,6 @@
 import com.android.systemui.R;
 import com.android.systemui.statusbar.notification.row.StackScrollerDecorView;
 import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
-import com.android.systemui.statusbar.notification.stack.StackScrollState;
 
 public class EmptyShadeView extends StackScrollerDecorView {
 
@@ -74,7 +73,7 @@
     }
 
     @Override
-    public ExpandableViewState createNewViewState(StackScrollState stackScrollState) {
+    public ExpandableViewState createExpandableViewState() {
         return new EmptyShadeViewState();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
index fc1e94a..f045548 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
@@ -199,7 +199,7 @@
             for (int i = 0; i < N; i++) {
                 final NotificationData.Entry entry = activeNotifications.get(i);
 
-                if (isMediaNotification(entry)) {
+                if (entry.isMediaNotification()) {
                     final MediaSession.Token token =
                             entry.notification.getNotification().extras.getParcelable(
                                     Notification.EXTRA_MEDIA_SESSION);
@@ -336,13 +336,6 @@
         return PlaybackState.STATE_NONE;
     }
 
-    private boolean isMediaNotification(NotificationData.Entry entry) {
-        // TODO: confirm that there's a valid media key
-        return entry.row.getExpandedContentView() != null
-                && entry.row.getExpandedContentView().findViewById(
-                        com.android.internal.R.id.media_actions) != null;
-    }
-
     private void clearCurrentMediaNotificationSession() {
         mMediaMetadata = null;
         if (mMediaController != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
index 8c53cc2..ecadf96 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
@@ -141,7 +141,7 @@
                 ActivityManager.getService().resumeAppSwitches();
             } catch (RemoteException e) {
             }
-            return mCallback.handleRemoteViewClick(pendingIntent, () -> {
+            return mCallback.handleRemoteViewClick(view, pendingIntent, () -> {
                 Pair<Intent, ActivityOptions> options = response.getLaunchOptions(view);
                 options.second.setLaunchWindowingMode(
                         WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY);
@@ -150,34 +150,42 @@
         }
 
         private void logActionClick(View view) {
+            Integer actionIndex = (Integer)
+                    view.getTag(com.android.internal.R.id.notification_action_index_tag);
+            if (actionIndex == null) {
+                Log.e(TAG, "Couldn't retrieve the actionIndex from the clicked button");
+                return;
+            }
             ViewParent parent = view.getParent();
-            String key = getNotificationKeyForParent(parent);
-            if (key == null) {
+            StatusBarNotification statusBarNotification = getNotificationForParent(parent);
+            if (statusBarNotification == null) {
                 Log.w(TAG, "Couldn't determine notification for click.");
                 return;
             }
-            int index = -1;
+            String key = statusBarNotification.getKey();
+            int buttonIndex = -1;
             // If this is a default template, determine the index of the button.
             if (view.getId() == com.android.internal.R.id.action0 &&
                     parent != null && parent instanceof ViewGroup) {
                 ViewGroup actionGroup = (ViewGroup) parent;
-                index = actionGroup.indexOfChild(view);
+                buttonIndex = actionGroup.indexOfChild(view);
             }
             final int count = mEntryManager.getNotificationData().getActiveNotifications().size();
             final int rank = mEntryManager.getNotificationData().getRank(key);
+            final Notification.Action action =
+                    statusBarNotification.getNotification().actions[actionIndex];
             final NotificationVisibility nv = NotificationVisibility.obtain(key, rank, count, true);
             try {
-                mBarService.onNotificationActionClick(key, index, nv);
+                mBarService.onNotificationActionClick(key, buttonIndex, action, nv, false);
             } catch (RemoteException e) {
                 // Ignore
             }
         }
 
-        private String getNotificationKeyForParent(ViewParent parent) {
+        private StatusBarNotification getNotificationForParent(ViewParent parent) {
             while (parent != null) {
                 if (parent instanceof ExpandableNotificationRow) {
-                    return ((ExpandableNotificationRow) parent)
-                            .getStatusBarNotification().getKey();
+                    return ((ExpandableNotificationRow) parent).getStatusBarNotification();
                 }
                 parent = parent.getParent();
             }
@@ -393,7 +401,7 @@
     }
 
     public boolean shouldKeepForRemoteInputHistory(NotificationData.Entry entry) {
-        if (entry.row == null || entry.row.isDismissed()) {
+        if (entry.isDismissed()) {
             return false;
         }
         if (!FORCE_REMOTE_INPUT_HISTORY) {
@@ -403,7 +411,7 @@
     }
 
     public boolean shouldKeepForSmartReplyHistory(NotificationData.Entry entry) {
-        if (entry.row == null || entry.row.isDismissed()) {
+        if (entry.isDismissed()) {
             return false;
         }
         if (!FORCE_REMOTE_INPUT_HISTORY) {
@@ -532,7 +540,7 @@
 
                 // Ensure the entry hasn't already been removed. This can happen if there is an
                 // inflation exception while updating the remote history
-                if (entry.row == null || entry.row.isRemoved()) {
+                if (entry.isRemoved()) {
                     return;
                 }
 
@@ -570,7 +578,7 @@
 
                 mEntryManager.updateNotification(newSbn, null);
 
-                if (entry.row == null || entry.row.isRemoved()) {
+                if (entry.isRemoved()) {
                     return;
                 }
 
@@ -593,7 +601,7 @@
     protected class RemoteInputActiveExtender extends RemoteInputExtender {
         @Override
         public boolean shouldExtendLifetime(@NonNull NotificationData.Entry entry) {
-            if (entry.row == null || entry.row.isDismissed()) {
+            if (entry.isDismissed()) {
                 return false;
             }
             return mRemoteInputController.isRemoteInputActive(entry);
@@ -658,11 +666,13 @@
          * Performs any special handling for a remote view click. The default behaviour can be
          * called through the defaultHandler parameter.
          *
+         * @param view
          * @param pendingIntent
          * @param defaultHandler
          * @return  true iff the click was handled
          */
-        boolean handleRemoteViewClick(PendingIntent pendingIntent, ClickHandler defaultHandler);
+        boolean handleRemoteViewClick(View view, PendingIntent pendingIntent,
+                ClickHandler defaultHandler);
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
index b3be714..ac4abfc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
@@ -47,7 +47,6 @@
 import com.android.systemui.statusbar.notification.stack.AnimationProperties;
 import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
-import com.android.systemui.statusbar.notification.stack.StackScrollState;
 import com.android.systemui.statusbar.notification.stack.ViewState;
 import com.android.systemui.statusbar.phone.NotificationIconContainer;
 
@@ -68,7 +67,6 @@
 
     private boolean mDark;
     private NotificationIconContainer mShelfIcons;
-    private ShelfState mShelfState;
     private int[] mTmp = new int[2];
     private boolean mHideBackground;
     private int mIconAppearTopPadding;
@@ -115,7 +113,6 @@
         setClipChildren(false);
         setClipToPadding(false);
         mShelfIcons.setIsStaticLayout(false);
-        mShelfState = new ShelfState();
         setBottomRoundness(1.0f, false /* animate */);
         initDimens();
     }
@@ -187,53 +184,53 @@
     }
 
     @Override
-    public ExpandableViewState createNewViewState(StackScrollState stackScrollState) {
-        return mShelfState;
+    public ExpandableViewState createExpandableViewState() {
+        return new ShelfState();
     }
 
-    public void updateState(StackScrollState resultState,
-            AmbientState ambientState) {
-        View lastView = ambientState.getLastVisibleBackgroundChild();
+    /** Update the state of the shelf. */
+    public void updateState(AmbientState ambientState) {
+        ExpandableView lastView = ambientState.getLastVisibleBackgroundChild();
+        ShelfState viewState = (ShelfState) getViewState();
         if (mShowNotificationShelf && lastView != null) {
             float maxShelfEnd = ambientState.getInnerHeight() + ambientState.getTopPadding()
                     + ambientState.getStackTranslation();
-            ExpandableViewState lastViewState = resultState.getViewStateForView(lastView);
+            ExpandableViewState lastViewState = lastView.getViewState();
             float viewEnd = lastViewState.yTranslation + lastViewState.height;
-            mShelfState.copyFrom(lastViewState);
-            mShelfState.height = getIntrinsicHeight();
+            viewState.copyFrom(lastViewState);
+            viewState.height = getIntrinsicHeight();
 
-            float awakenTranslation = Math.max(Math.min(viewEnd, maxShelfEnd) - mShelfState.height,
+            float awakenTranslation = Math.max(Math.min(viewEnd, maxShelfEnd) - viewState.height,
                     getFullyClosedTranslation());
             float darkTranslation = mAmbientState.getDarkTopPadding();
             float yRatio = mAmbientState.hasPulsingNotifications() ?
                     0 : mAmbientState.getDarkAmount();
-            mShelfState.yTranslation = MathUtils.lerp(awakenTranslation, darkTranslation, yRatio);
-            mShelfState.zTranslation = ambientState.getBaseZHeight();
+            viewState.yTranslation = MathUtils.lerp(awakenTranslation, darkTranslation, yRatio);
+            viewState.zTranslation = ambientState.getBaseZHeight();
             // For the small display size, it's not enough to make the icon not covered by
             // the top cutout so the denominator add the height of cutout.
             // Totally, (getIntrinsicHeight() * 2 + mCutoutHeight) should be smaller then
             // mAmbientState.getTopPadding().
-            float openedAmount = (mShelfState.yTranslation - getFullyClosedTranslation())
+            float openedAmount = (viewState.yTranslation - getFullyClosedTranslation())
                     / (getIntrinsicHeight() * 2 + mCutoutHeight);
             openedAmount = Math.min(1.0f, openedAmount);
-            mShelfState.openedAmount = openedAmount;
-            mShelfState.clipTopAmount = 0;
-            mShelfState.alpha = mAmbientState.hasPulsingNotifications() ? 0 : 1;
-            mShelfState.belowSpeedBump = mAmbientState.getSpeedBumpIndex() == 0;
-            mShelfState.shadowAlpha = 1.0f;
-            mShelfState.hideSensitive = false;
-            mShelfState.xTranslation = getTranslationX();
+            viewState.openedAmount = openedAmount;
+            viewState.clipTopAmount = 0;
+            viewState.alpha = mAmbientState.hasPulsingNotifications() ? 0 : 1;
+            viewState.belowSpeedBump = mAmbientState.getSpeedBumpIndex() == 0;
+            viewState.hideSensitive = false;
+            viewState.xTranslation = getTranslationX();
             if (mNotGoneIndex != -1) {
-                mShelfState.notGoneIndex = Math.min(mShelfState.notGoneIndex, mNotGoneIndex);
+                viewState.notGoneIndex = Math.min(viewState.notGoneIndex, mNotGoneIndex);
             }
-            mShelfState.hasItemsInStableShelf = lastViewState.inShelf;
-            mShelfState.hidden = !mAmbientState.isShadeExpanded()
-                    || mAmbientState.isQsCustomizerShowing();
-            mShelfState.maxShelfEnd = maxShelfEnd;
+            viewState.hasItemsInStableShelf = lastViewState.inShelf;
+            viewState.hidden = !mAmbientState.isShadeExpanded()
+                    || mAmbientState.isQsCustomizerShowing() || mAmbientState.isFullyDark();
+            viewState.maxShelfEnd = maxShelfEnd;
         } else {
-            mShelfState.hidden = true;
-            mShelfState.location = ExpandableViewState.LOCATION_GONE;
-            mShelfState.hasItemsInStableShelf = false;
+            viewState.hidden = true;
+            viewState.location = ExpandableViewState.LOCATION_GONE;
+            viewState.hasItemsInStableShelf = false;
         }
     }
 
@@ -262,7 +259,7 @@
         int notGoneIndex = 0;
         int colorOfViewBeforeLast = NO_COLOR;
         boolean backgroundForceHidden = false;
-        if (mHideBackground && !mShelfState.hasItemsInStableShelf) {
+        if (mHideBackground && !((ShelfState) getViewState()).hasItemsInStableShelf) {
             backgroundForceHidden = true;
         }
         int colorTwoBefore = NO_COLOR;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
index ea67736..daa2fd4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
@@ -51,6 +51,7 @@
 public class NotificationViewHierarchyManager {
     private static final String TAG = "NotificationViewHierarchyManager";
 
+    //TODO: change this top <Entry, List<Entry>>?
     private final HashMap<ExpandableNotificationRow, List<ExpandableNotificationRow>>
             mTmpChildOrderMap = new HashMap<>();
 
@@ -140,6 +141,7 @@
     /**
      * Updates the visual representation of the notifications.
      */
+    //TODO: Rewrite this to focus on Entries, or some other data object instead of views
     public void updateNotificationViews() {
         ArrayList<NotificationData.Entry> activeNotifications = mEntryManager.getNotificationData()
                 .getActiveNotifications();
@@ -148,12 +150,12 @@
         final int N = activeNotifications.size();
         for (int i = 0; i < N; i++) {
             NotificationData.Entry ent = activeNotifications.get(i);
-            if (ent.row.isDismissed() || ent.row.isRemoved()) {
+            if (ent.isRowDismissed() || ent.isRowRemoved()) {
                 // we don't want to update removed notifications because they could
                 // temporarily become children if they were isolated before.
                 continue;
             }
-            ent.row.setStatusBarState(mStatusBarStateListener.getCurrentState());
+            ent.getRow().setStatusBarState(mStatusBarStateListener.getCurrentState());
             boolean showAsBubble = ent.isBubble() && !ent.isBubbleDismissed()
                     && mStatusBarStateListener.getCurrentState() == SHADE;
             if (showAsBubble) {
@@ -175,20 +177,19 @@
             boolean deviceSensitive = devicePublic
                     && !mLockscreenUserManager.userAllowsPrivateNotificationsInPublic(
                     mLockscreenUserManager.getCurrentUserId());
-            ent.row.setSensitive(sensitive, deviceSensitive);
-            ent.row.setNeedsRedaction(needsRedaction);
-            if (mGroupManager.isChildInGroupWithSummary(ent.row.getStatusBarNotification())) {
-                ExpandableNotificationRow summary = mGroupManager.getGroupSummary(
-                        ent.row.getStatusBarNotification());
+            ent.getRow().setSensitive(sensitive, deviceSensitive);
+            ent.getRow().setNeedsRedaction(needsRedaction);
+            if (mGroupManager.isChildInGroupWithSummary(ent.notification)) {
+                NotificationData.Entry summary = mGroupManager.getGroupSummary(ent.notification);
                 List<ExpandableNotificationRow> orderedChildren =
-                        mTmpChildOrderMap.get(summary);
+                        mTmpChildOrderMap.get(summary.getRow());
                 if (orderedChildren == null) {
                     orderedChildren = new ArrayList<>();
-                    mTmpChildOrderMap.put(summary, orderedChildren);
+                    mTmpChildOrderMap.put(summary.getRow(), orderedChildren);
                 }
-                orderedChildren.add(ent.row);
+                orderedChildren.add(ent.getRow());
             } else {
-                toShow.add(ent.row);
+                toShow.add(ent.getRow());
             }
 
         }
@@ -391,19 +392,19 @@
                         && !row.isLowPriority()));
             }
 
-            entry.row.setOnAmbient(getShadeController().isDozing());
+            entry.getRow().setOnAmbient(getShadeController().isDozing());
             int userId = entry.notification.getUserId();
             boolean suppressedSummary = mGroupManager.isSummaryOfSuppressedGroup(
-                    entry.notification) && !entry.row.isRemoved();
+                    entry.notification) && !entry.isRowRemoved();
             boolean showOnKeyguard = mLockscreenUserManager.shouldShowOnKeyguard(entry
                     .notification);
             if (!showOnKeyguard) {
                 // min priority notifications should show if their summary is showing
                 if (mGroupManager.isChildInGroupWithSummary(entry.notification)) {
-                    ExpandableNotificationRow summary = mGroupManager.getLogicalGroupSummary(
+                    NotificationData.Entry summary = mGroupManager.getLogicalGroupSummary(
                             entry.notification);
                     if (summary != null && mLockscreenUserManager.shouldShowOnKeyguard(
-                            summary.getStatusBarNotification()))         {
+                            summary.notification))         {
                         showOnKeyguard = true;
                     }
                 }
@@ -411,16 +412,16 @@
             if (suppressedSummary
                     || mLockscreenUserManager.shouldHideNotifications(userId)
                     || (onKeyguard && !showOnKeyguard)) {
-                entry.row.setVisibility(View.GONE);
+                entry.getRow().setVisibility(View.GONE);
             } else {
-                boolean wasGone = entry.row.getVisibility() == View.GONE;
+                boolean wasGone = entry.getRow().getVisibility() == View.GONE;
                 if (wasGone) {
-                    entry.row.setVisibility(View.VISIBLE);
+                    entry.getRow().setVisibility(View.VISIBLE);
                 }
-                if (!isChildNotification && !entry.row.isRemoved()) {
+                if (!isChildNotification && !entry.getRow().isRemoved()) {
                     if (wasGone) {
                         // notify the scroller of a child addition
-                        mListContainer.generateAddAnimation(entry.row,
+                        mListContainer.generateAddAnimation(entry.getRow(),
                                 !showOnKeyguard /* fromMoreCard */);
                     }
                     visibleNotifications++;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java b/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java
index 929f43e..e8abcc2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java
@@ -250,16 +250,16 @@
         // Make a copy because closing the remote inputs will modify mOpen.
         ArrayList<NotificationData.Entry> list = new ArrayList<>(mOpen.size());
         for (int i = mOpen.size() - 1; i >= 0; i--) {
-            NotificationData.Entry item = mOpen.get(i).first.get();
-            if (item != null && item.row != null) {
-                list.add(item);
+            NotificationData.Entry entry = mOpen.get(i).first.get();
+            if (entry != null && entry.rowExists()) {
+                list.add(entry);
             }
         }
 
         for (int i = list.size() - 1; i >= 0; i--) {
-            NotificationData.Entry item = list.get(i);
-            if (item.row != null) {
-                item.row.closeRemoteInput();
+            NotificationData.Entry entry = list.get(i);
+            if (entry.rowExists()) {
+                entry.closeRemoteInput();
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java b/packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java
index 758c33a..f5d6904 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java
@@ -15,12 +15,15 @@
  */
 package com.android.systemui.statusbar;
 
+import android.app.Notification;
 import android.os.RemoteException;
 import android.util.ArraySet;
 
 import com.android.internal.statusbar.IStatusBarService;
+import com.android.internal.statusbar.NotificationVisibility;
 import com.android.systemui.Dependency;
 import com.android.systemui.statusbar.notification.NotificationData;
+import com.android.systemui.statusbar.notification.NotificationEntryManager;
 
 import java.util.Set;
 
@@ -32,6 +35,9 @@
     private IStatusBarService mBarService;
     private Set<String> mSendingKeys = new ArraySet<>();
     private Callback mCallback;
+    private final NotificationEntryManager mEntryManager =
+            Dependency.get(NotificationEntryManager.class);
+
 
     public SmartReplyController() {
         mBarService = Dependency.get(IStatusBarService.class);
@@ -41,12 +47,34 @@
         mCallback = callback;
     }
 
-    public void smartReplySent(NotificationData.Entry entry, int replyIndex, CharSequence reply) {
+    /**
+     * Notifies StatusBarService a smart reply is sent.
+     */
+    public void smartReplySent(NotificationData.Entry entry, int replyIndex, CharSequence reply,
+            boolean generatedByAssistant) {
         mCallback.onSmartReplySent(entry, reply);
         mSendingKeys.add(entry.key);
         try {
-            mBarService.onNotificationSmartReplySent(entry.notification.getKey(),
-                    replyIndex);
+            mBarService.onNotificationSmartReplySent(
+                    entry.notification.getKey(), replyIndex, reply, generatedByAssistant);
+        } catch (RemoteException e) {
+            // Nothing to do, system going down
+        }
+    }
+
+    /**
+     * Notifies StatusBarService a smart action is clicked.
+     */
+    public void smartActionClicked(
+            NotificationData.Entry entry, int actionIndex, Notification.Action action,
+            boolean generatedByAssistant) {
+        final int count = mEntryManager.getNotificationData().getActiveNotifications().size();
+        final int rank = mEntryManager.getNotificationData().getRank(entry.key);
+        final NotificationVisibility nv =
+                NotificationVisibility.obtain(entry.key, rank, count, true);
+        try {
+            mBarService.onNotificationActionClick(
+                    entry.key, actionIndex, action, nv, generatedByAssistant);
         } catch (RemoteException e) {
             // Nothing to do, system going down
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
index f0e5462..f899863 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
@@ -29,6 +29,7 @@
 import android.view.RemoteAnimationAdapter;
 import android.view.RemoteAnimationTarget;
 
+import com.android.internal.policy.ScreenDecorationsUtils;
 import com.android.systemui.Interpolators;
 import com.android.systemui.shared.system.SurfaceControlCompat;
 import com.android.systemui.shared.system.SyncRtSurfaceTransactionApplier;
@@ -55,6 +56,7 @@
     private final NotificationPanelView mNotificationPanel;
     private final NotificationListContainer mNotificationContainer;
     private final StatusBarWindowView mStatusBarWindow;
+    private final float mWindowCornerRadius;
     private Callback mCallback;
     private final Runnable mTimeoutRunnable = () -> {
         setAnimationPending(false);
@@ -72,6 +74,8 @@
         mNotificationContainer = container;
         mStatusBarWindow = statusBarWindow;
         mCallback = callback;
+        mWindowCornerRadius = ScreenDecorationsUtils
+                .getWindowCornerRadius(statusBarWindow.getResources());
     }
 
     public RemoteAnimationAdapter getLaunchAnimation(
@@ -124,6 +128,8 @@
         private final ExpandableNotificationRow mSourceNotification;
         private final ExpandAnimationParameters mParams;
         private final Rect mWindowCrop = new Rect();
+        private final float mNotificationCornerRadius;
+        private float mCornerRadius;
         private boolean mIsFullScreenLaunch = true;
         private final SyncRtSurfaceTransactionApplier mSyncRtTransactionApplier;
 
@@ -131,6 +137,8 @@
             mSourceNotification = sourceNofitication;
             mParams = new ExpandAnimationParameters();
             mSyncRtTransactionApplier = new SyncRtSurfaceTransactionApplier(mSourceNotification);
+            mNotificationCornerRadius = Math.max(mSourceNotification.getCurrentTopRoundness(),
+                    mSourceNotification.getCurrentBottomRoundness());
         }
 
         @Override
@@ -181,8 +189,7 @@
                     @Override
                     public void onAnimationUpdate(ValueAnimator animation) {
                         mParams.linearProgress = animation.getAnimatedFraction();
-                        float progress
-                                = Interpolators.FAST_OUT_SLOW_IN.getInterpolation(
+                        float progress = Interpolators.FAST_OUT_SLOW_IN.getInterpolation(
                                         mParams.linearProgress);
                         int newWidth = (int) MathUtils.lerp(notificationWidth,
                                 targetWidth, progress);
@@ -194,6 +201,8 @@
                                         + notificationHeight,
                                 primary.position.y + primary.sourceContainerBounds.bottom,
                                 progress);
+                        mCornerRadius = MathUtils.lerp(mNotificationCornerRadius,
+                                mWindowCornerRadius, progress);
                         applyParamsToWindow(primary);
                         applyParamsToNotification(mParams);
                         applyParamsToNotificationList(mParams);
@@ -259,7 +268,7 @@
             m.postTranslate(0, (float) (mParams.top - app.position.y));
             mWindowCrop.set(mParams.left, 0, mParams.right, mParams.getHeight());
             SurfaceParams params = new SurfaceParams(new SurfaceControlCompat(app.leash),
-                    1f /* alpha */, m, mWindowCrop, app.prefixOrderIndex);
+                    1f /* alpha */, m, mWindowCrop, app.prefixOrderIndex, mCornerRadius);
             mSyncRtTransactionApplier.scheduleApply(params);
         }
 
@@ -290,6 +299,10 @@
             return top;
         }
 
+        public int getBottom() {
+            return bottom;
+        }
+
         public int getWidth() {
             return right - left;
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingLayoutTransformState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingLayoutTransformState.java
index 314a31d..0a2e04f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingLayoutTransformState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingLayoutTransformState.java
@@ -250,23 +250,24 @@
                     otherChild = null;
                 }
             }
-            if (otherChild == null) {
+            if (otherChild == null && previousTranslation < 0) {
+                // Let's fade out as we approach the top of the screen. We can only do this if
+                // we're actually moving up
                 float distanceToTop = child.getTop() + child.getHeight() + previousTranslation;
                 transformationAmount = distanceToTop / child.getHeight();
                 transformationAmount = Math.max(0.0f, Math.min(1.0f, transformationAmount));
-                if (to) {
-                    transformationAmount = 1.0f - transformationAmount;
-                }
             }
             transformView(transformationAmount, to, child, otherChild, false, /* sameAsAny */
                     useLinearTransformation);
-            if (transformationAmount == 0.0f
-                    && otherGroup.getIsolatedMessage() == otherChild) {
+            boolean otherIsIsolated = otherGroup.getIsolatedMessage() == otherChild;
+            if (transformationAmount == 0.0f && otherIsIsolated) {
                 ownGroup.setTransformingImages(true);
             }
             if (otherChild == null) {
                 child.setTranslationY(previousTranslation);
                 setClippingDeactivated(child, true);
+            } else if (ownGroup.getIsolatedMessage() == child || otherIsIsolated) {
+                // We don't want to add any translation for the image that is transforming
             } else if (to) {
                 float totalTranslation = child.getTop() + ownGroup.getTop()
                         - otherChild.getTop() - otherChild.getTop();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationData.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationData.java
index da6d977..3f8583c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationData.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationData.java
@@ -64,6 +64,8 @@
 import com.android.systemui.statusbar.NotificationMediaManager;
 import com.android.systemui.statusbar.StatusBarIconView;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationGuts;
+import com.android.systemui.statusbar.notification.row.NotificationInflater.InflationFlag;
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
 import com.android.systemui.statusbar.phone.ShadeController;
 import com.android.systemui.statusbar.phone.StatusBar;
@@ -106,7 +108,6 @@
         public int importance;
         public StatusBarIconView icon;
         public StatusBarIconView expandedIcon;
-        public ExpandableNotificationRow row; // the outer expanded view
         private boolean interruption;
         public boolean autoRedacted; // whether the redacted notification was generated by us
         public int targetSdk;
@@ -119,6 +120,10 @@
         public List<Notification.Action> systemGeneratedSmartActions = Collections.emptyList();
         public CharSequence[] smartReplies = new CharSequence[0];
 
+        private Entry parent; // our parent (if we're in a group)
+        private ArrayList<Entry> children = new ArrayList<Entry>();
+        private ExpandableNotificationRow row; // the outer expanded view
+
         private int mCachedContrastColor = COLOR_INVALID;
         private int mCachedContrastColorIsFor = COLOR_INVALID;
         private InflationTask mRunningTask = null;
@@ -168,7 +173,6 @@
         public void populateFromRanking(@NonNull Ranking ranking) {
             channel = ranking.getChannel();
             audiblyAlerted = ranking.audiblyAlerted();
-            noisy = ranking.isNoisy();
             importance = ranking.getImportance();
             snoozeCriteria = ranking.getSnoozeCriteria();
             userSentiment = ranking.getUserSentiment();
@@ -212,6 +216,24 @@
             }
         }
 
+        public ExpandableNotificationRow getRow() {
+            return row;
+        }
+
+        //TODO: This will go away when we have a way to bind an entry to a row
+        public void setRow(ExpandableNotificationRow row) {
+            this.row = row;
+        }
+
+        @Nullable
+        public List<Entry> getChildren() {
+            if (children.size() <= 0) {
+                return null;
+            }
+
+            return children;
+        }
+
         public void notifyFullScreenIntentLaunched() {
             setInterruption();
             lastFullScreenIntentLaunchTime = SystemClock.elapsedRealtime();
@@ -409,6 +431,198 @@
                 initializationTime = time;
             }
         }
+
+        public void sendAccessibilityEvent(int eventType) {
+            if (row != null) {
+                row.sendAccessibilityEvent(eventType);
+            }
+        }
+
+        /**
+         * Used by NotificationMediaManager to determine... things
+         * @return {@code true} if we are a media notification
+         */
+        public boolean isMediaNotification() {
+            if (row == null) return false;
+
+            return row.isMediaRow();
+        }
+
+        /**
+         * We are a top level child if our parent is the list of notifications duh
+         * @return {@code true} if we're a top level notification
+         */
+        public boolean isTopLevelChild() {
+            return row != null && row.isTopLevelChild();
+        }
+
+        public void resetUserExpansion() {
+            if (row != null) row.resetUserExpansion();
+        }
+
+        public void freeContentViewWhenSafe(@InflationFlag int inflationFlag) {
+            if (row != null) row.freeContentViewWhenSafe(inflationFlag);
+        }
+
+        public void setAmbientPulsing(boolean pulsing) {
+            if (row != null) row.setAmbientPulsing(pulsing);
+        }
+
+        public boolean rowExists() {
+            return row != null;
+        }
+
+        public boolean isRowDismissed() {
+            return row != null && row.isDismissed();
+        }
+
+        public boolean isRowRemoved() {
+            return row != null && row.isRemoved();
+        }
+
+        /**
+         * @return {@code true} if the row is null or removed
+         */
+        public boolean isRemoved() {
+            //TODO: recycling invalidates this
+            return row == null || row.isRemoved();
+        }
+
+        /**
+         * @return {@code true} if the row is null or dismissed
+         */
+        public boolean isDismissed() {
+            //TODO: recycling
+            return row == null || row.isDismissed();
+        }
+
+        public boolean isRowPinned() {
+            return row != null && row.isPinned();
+        }
+
+        public void setRowPinned(boolean pinned) {
+            if (row != null) row.setPinned(pinned);
+        }
+
+        public boolean isRowAnimatingAway() {
+            return row != null && row.isHeadsUpAnimatingAway();
+        }
+
+        public boolean isRowHeadsUp() {
+            return row != null && row.isHeadsUp();
+        }
+
+        public void setHeadsUp(boolean shouldHeadsUp) {
+            if (row != null) row.setHeadsUp(shouldHeadsUp);
+        }
+
+        public boolean mustStayOnScreen() {
+            return row != null && row.mustStayOnScreen();
+        }
+
+        public void setHeadsUpIsVisible() {
+            if (row != null) row.setHeadsUpIsVisible();
+        }
+
+        //TODO: i'm imagining a world where this isn't just the row, but I could be rwong
+        public ExpandableNotificationRow getHeadsUpAnimationView() {
+            return row;
+        }
+
+        public void setUserLocked(boolean userLocked) {
+            if (row != null) row.setUserLocked(userLocked);
+        }
+
+        public void setUserExpanded(boolean userExpanded, boolean allowChildExpansion) {
+            if (row != null) row.setUserExpanded(userExpanded, allowChildExpansion);
+        }
+
+        public void setGroupExpansionChanging(boolean changing) {
+            if (row != null) row.setGroupExpansionChanging(changing);
+        }
+
+        public void notifyHeightChanged(boolean needsAnimation) {
+            if (row != null) row.notifyHeightChanged(needsAnimation);
+        }
+
+        public void closeRemoteInput() {
+            if (row != null) row.closeRemoteInput();
+        }
+
+        public boolean areChildrenExpanded() {
+            return row != null && row.areChildrenExpanded();
+        }
+
+        public boolean keepInParent() {
+            return row != null && row.keepInParent();
+        }
+
+        //TODO: probably less confusing to say "is group fully visible"
+        public boolean isGroupNotFullyVisible() {
+            return row == null || row.isGroupNotFullyVisible();
+        }
+
+        public NotificationGuts getGuts() {
+            if (row != null) return row.getGuts();
+            return null;
+        }
+
+        public boolean hasLowPriorityStateUpdated() {
+            return row != null && row.hasLowPriorityStateUpdated();
+        }
+
+        public void removeRow() {
+            if (row != null) row.setRemoved();
+        }
+
+        public boolean isSummaryWithChildren() {
+            return row != null && row.isSummaryWithChildren();
+        }
+
+        public void setKeepInParent(boolean keep) {
+            if (row != null) row.setKeepInParent(keep);
+        }
+
+        public void onDensityOrFontScaleChanged() {
+            if (row != null) row.onDensityOrFontScaleChanged();
+        }
+
+        public boolean areGutsExposed() {
+            return row != null && row.getGuts().isExposed();
+        }
+
+        public boolean isChildInGroup() {
+            return parent == null;
+        }
+
+        public void setLowPriorityStateUpdated(boolean updated) {
+            if (row != null) row.setLowPriorityStateUpdated(updated);
+        }
+
+        /**
+         * @return Can the underlying notification be cleared? This can be different from whether the
+         *         notification can be dismissed in case notifications are sensitive on the lockscreen.
+         * @see #canViewBeDismissed()
+         */
+        public boolean isClearable() {
+            if (notification == null || !notification.isClearable()) {
+                return false;
+            }
+            if (children.size() > 0) {
+                for (int i = 0; i < children.size(); i++) {
+                    Entry child =  children.get(i);
+                    if (!child.isClearable()) {
+                        return false;
+                    }
+                }
+            }
+            return true;
+        }
+
+        public boolean canViewBeDismissed() {
+            if (row == null) return true;
+            return row.canViewBeDismissed();
+        }
     }
 
     private final ArrayMap<String, Entry> mEntries = new ArrayMap<>();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
index ac0fe6e..70d144e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
@@ -24,7 +24,6 @@
 
 import android.annotation.Nullable;
 import android.app.Notification;
-import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.Context;
@@ -84,6 +83,7 @@
 import com.android.systemui.statusbar.notification.row.NotificationInflater.InflationFlag;
 import com.android.systemui.statusbar.notification.row.RowInflaterTask;
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
+import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
 import com.android.systemui.statusbar.phone.ShadeController;
 import com.android.systemui.statusbar.phone.StatusBar;
@@ -107,16 +107,18 @@
         VisualStabilityManager.Callback, BubbleController.BubbleDismissListener {
     private static final String TAG = "NotificationEntryMgr";
     protected static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-    protected static final boolean ENABLE_HEADS_UP = true;
-    protected static final String SETTING_HEADS_UP_TICKER = "ticker_gets_heads_up";
+    private static final boolean ENABLE_HEADS_UP = true;
+    private static final String SETTING_HEADS_UP_TICKER = "ticker_gets_heads_up";
 
-    protected final NotificationMessagingUtil mMessagingUtil;
+    private final NotificationMessagingUtil mMessagingUtil;
     protected final Context mContext;
     protected final HashMap<String, NotificationData.Entry> mPendingNotifications = new HashMap<>();
-    protected final NotificationClicker mNotificationClicker = new NotificationClicker();
+    private final NotificationClicker mNotificationClicker = new NotificationClicker();
 
     private final NotificationGroupManager mGroupManager =
             Dependency.get(NotificationGroupManager.class);
+    private final NotificationGroupAlertTransferHelper mGroupAlertTransferHelper =
+            Dependency.get(NotificationGroupAlertTransferHelper.class);
     private final NotificationGutsManager mGutsManager =
             Dependency.get(NotificationGutsManager.class);
     private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);
@@ -142,14 +144,15 @@
     private NotificationPresenter mPresenter;
     private Callback mCallback;
     protected PowerManager mPowerManager;
-    protected NotificationListenerService.RankingMap mLatestRankingMap;
+    private NotificationListenerService.RankingMap mLatestRankingMap;
     protected HeadsUpManager mHeadsUpManager;
     protected NotificationData mNotificationData;
-    protected ContentObserver mHeadsUpObserver;
+    private ContentObserver mHeadsUpObserver;
     protected boolean mUseHeadsUp = false;
-    protected boolean mDisableNotificationAlerts;
+    private boolean mDisableNotificationAlerts;
     protected NotificationListContainer mListContainer;
-    protected final ArrayList<NotificationLifetimeExtender> mNotificationLifetimeExtenders
+    @VisibleForTesting
+    final ArrayList<NotificationLifetimeExtender> mNotificationLifetimeExtenders
             = new ArrayList<>();
     private ExpandableNotificationRow.OnAppOpsClickListener mOnAppOpsClickListener;
     private NotificationViewHierarchyManager.StatusBarStateListener mStatusBarStateListener;
@@ -173,9 +176,12 @@
             }
 
             // Check if the notification is displaying the menu, if so slide notification back
-            if (row.getProvider() != null && row.getProvider().isMenuVisible()) {
+            if (isMenuVisible(row)) {
                 row.animateTranslateNotification(0);
                 return;
+            } else if (row.isChildInGroup() && isMenuVisible(row.getNotificationParent())) {
+                row.getNotificationParent().animateTranslateNotification(0);
+                return;
             }
 
             // Mark notification for one frame.
@@ -190,6 +196,10 @@
             mCallback.onNotificationClicked(sbn, row);
         }
 
+        private boolean isMenuVisible(ExpandableNotificationRow row) {
+            return row.getProvider() != null && row.getProvider().isMenuVisible();
+        }
+
         public void register(ExpandableNotificationRow row, StatusBarNotification sbn) {
             Notification notification = sbn.getNotification();
             if (notification.contentIntent != null || notification.fullScreenIntent != null) {
@@ -247,7 +257,8 @@
     }
 
     private void onPostInit() {
-        mGroupManager.setPendingEntries(mPendingNotifications);
+        mGroupAlertTransferHelper.setPendingEntries(mPendingNotifications);
+        mGroupManager.addOnGroupChangeListener(mGroupAlertTransferHelper);
     }
 
     /**
@@ -380,9 +391,9 @@
                 entry.notification.getUser().getIdentifier());
 
         final StatusBarNotification sbn = entry.notification;
-        if (entry.row != null) {
+        if (entry.rowExists()) {
             entry.reset();
-            updateNotification(entry, pmUser, sbn, entry.row);
+            updateNotification(entry, pmUser, sbn, entry.getRow());
         } else {
             new RowInflaterTask().inflate(mContext, parent, entry,
                     row -> {
@@ -481,22 +492,6 @@
         updateNotifications();
     }
 
-    /**
-     * Cancel this notification and tell the StatusBarManagerService / NotificationManagerService
-     * about the failure.
-     *
-     * WARNING: this will call back into us.  Don't hold any locks.
-     */
-    void handleNotificationError(StatusBarNotification n, String message) {
-        removeNotificationInternal(n.getKey(), null, true /* forceRemove */);
-        try {
-            mBarService.onNotificationError(n.getPackageName(), n.getTag(), n.getId(), n.getUid(),
-                    n.getInitialPid(), message, n.getUserId());
-        } catch (RemoteException ex) {
-            // The end is nigh.
-        }
-    }
-
     private void abortExistingInflation(String key) {
         if (mPendingNotifications.containsKey(key)) {
             NotificationData.Entry entry = mPendingNotifications.get(key);
@@ -509,13 +504,31 @@
         }
     }
 
+    /**
+     * Cancel this notification and tell the StatusBarManagerService / NotificationManagerService
+     * about the failure.
+     *
+     * WARNING: this will call back into us.  Don't hold any locks.
+     */
     @Override
-    public void handleInflationException(StatusBarNotification notification, Exception e) {
-        handleNotificationError(notification, e.getMessage());
+    public void handleInflationException(StatusBarNotification n, Exception e) {
+        removeNotificationInternal(n.getKey(), null, true /* forceRemove */);
+        try {
+            mBarService.onNotificationError(n.getPackageName(), n.getTag(), n.getId(), n.getUid(),
+                    n.getInitialPid(), e.getMessage(), n.getUserId());
+        } catch (RemoteException ex) {
+            // The end is nigh.
+        }
     }
 
     private void addEntry(NotificationData.Entry shadeEntry) {
-        addNotificationViews(shadeEntry);
+        if (shadeEntry == null) {
+            return;
+        }
+        // Add the expanded view and icon.
+        mNotificationData.add(shadeEntry);
+        tagForeground(shadeEntry.notification);
+        updateNotifications();
         mCallback.onNotificationAdded(shadeEntry);
     }
 
@@ -536,14 +549,14 @@
                 // Mark as seen immediately
                 setNotificationShown(entry.notification);
             } else {
-                entry.row.freeContentViewWhenSafe(FLAG_CONTENT_VIEW_HEADS_UP);
+                entry.freeContentViewWhenSafe(FLAG_CONTENT_VIEW_HEADS_UP);
             }
         }
         if ((inflatedFlags & FLAG_CONTENT_VIEW_AMBIENT) != 0) {
             if (shouldPulse(entry)) {
                 mAmbientPulseManager.showNotification(entry);
             } else {
-                entry.row.freeContentViewWhenSafe(FLAG_CONTENT_VIEW_AMBIENT);
+                entry.freeContentViewWhenSafe(FLAG_CONTENT_VIEW_AMBIENT);
             }
         }
     }
@@ -554,15 +567,20 @@
         mPendingNotifications.remove(entry.key);
         // If there was an async task started after the removal, we don't want to add it back to
         // the list, otherwise we might get leaks.
-        boolean isNew = mNotificationData.get(entry.key) == null;
-        if (isNew && !entry.row.isRemoved()) {
-            showAlertingView(entry, inflatedFlags);
-            addEntry(entry);
-        } else if (!isNew && entry.row.hasLowPriorityStateUpdated()) {
-            mVisualStabilityManager.onLowPriorityUpdated(entry);
-            mPresenter.updateNotificationViews();
+        if (!entry.isRowRemoved()) {
+            boolean isNew = mNotificationData.get(entry.key) == null;
+            if (isNew) {
+                showAlertingView(entry, inflatedFlags);
+                addEntry(entry);
+            } else {
+                if (entry.getRow().hasLowPriorityStateUpdated()) {
+                    mVisualStabilityManager.onLowPriorityUpdated(entry);
+                    mPresenter.updateNotificationViews();
+                }
+                mGroupAlertTransferHelper.onInflationFinished(entry);
+            }
         }
-        entry.row.setLowPriorityStateUpdated(false);
+        entry.setLowPriorityStateUpdated(false);
     }
 
     @Override
@@ -573,6 +591,7 @@
     private void removeNotificationInternal(String key,
             @Nullable NotificationListenerService.RankingMap ranking, boolean forceRemove) {
         abortExistingInflation(key);
+        mGroupAlertTransferHelper.cleanUpPendingAlertInfo(key);
 
         // Attempt to remove notifications from their alert managers (heads up, ambient pulse).
         // Though the remove itself may fail, it lets the manager know to remove as soon as
@@ -620,9 +639,9 @@
         getMediaManager().onNotificationRemoved(key);
         mForegroundServiceController.removeNotification(entry.notification);
 
-        if (entry.row != null) {
-            entry.row.setRemoved();
-            mListContainer.cleanUpViewState(entry.row);
+        if (entry.rowExists()) {
+            entry.removeRow();
+            mListContainer.cleanUpViewStateForEntry(entry);
         }
 
         // Let's remove the children if this was a summary
@@ -657,19 +676,19 @@
      */
     private void handleGroupSummaryRemoved(String key) {
         NotificationData.Entry entry = mNotificationData.get(key);
-        if (entry != null && entry.row != null
-                && entry.row.isSummaryWithChildren()) {
-            if (entry.notification.getOverrideGroupKey() != null && !entry.row.isDismissed()) {
+        if (entry != null && entry.rowExists() && entry.isSummaryWithChildren()) {
+            if (entry.notification.getOverrideGroupKey() != null && !entry.isRowDismissed()) {
                 // We don't want to remove children for autobundled notifications as they are not
                 // always cancelled. We only remove them if they were dismissed by the user.
                 return;
             }
-            List<ExpandableNotificationRow> notificationChildren =
-                    entry.row.getNotificationChildren();
-            for (int i = 0; i < notificationChildren.size(); i++) {
-                ExpandableNotificationRow row = notificationChildren.get(i);
-                NotificationData.Entry childEntry = row.getEntry();
-                boolean isForeground = (row.getStatusBarNotification().getNotification().flags
+            List<NotificationData.Entry> childEntries = entry.getChildren();
+            if (childEntries == null) {
+                return;
+            }
+            for (int i = 0; i < childEntries.size(); i++) {
+                NotificationData.Entry childEntry = childEntries.get(i);
+                boolean isForeground = (entry.notification.getNotification().flags
                         & Notification.FLAG_FOREGROUND_SERVICE) != 0;
                 boolean keepForReply =
                         getRemoteInputManager().shouldKeepForRemoteInputHistory(childEntry)
@@ -679,10 +698,10 @@
                     // a child we're keeping around for reply!
                     continue;
                 }
-                row.setKeepInParent(true);
+                entry.setKeepInParent(true);
                 // we need to set this state earlier as otherwise we might generate some weird
                 // animations
-                row.setRemoved();
+                entry.removeRow();
             }
         }
     }
@@ -692,15 +711,15 @@
                 mNotificationData.getNotificationsForCurrentUser();
         for (int i = 0; i < userNotifications.size(); i++) {
             NotificationData.Entry entry = userNotifications.get(i);
-            boolean exposedGuts = mGutsManager.getExposedGuts() != null
-                    && entry.row.getGuts() == mGutsManager.getExposedGuts();
-            entry.row.onDensityOrFontScaleChanged();
+            entry.onDensityOrFontScaleChanged();
+            boolean exposedGuts = entry.areGutsExposed();
             if (exposedGuts) {
-                mGutsManager.onDensityOrFontScaleChanged(entry.row);
+                mGutsManager.onDensityOrFontScaleChanged(entry);
             }
         }
     }
 
+    //TODO: This method associates a row with an entry, but eventually needs to not do that
     protected void updateNotification(NotificationData.Entry entry, PackageManager pmUser,
             StatusBarNotification sbn, ExpandableNotificationRow row) {
         boolean isLowPriority = mNotificationData.isAmbient(sbn.getKey());
@@ -723,8 +742,8 @@
         entry.setIconTag(R.id.icon_is_pre_L, entry.targetSdk < Build.VERSION_CODES.LOLLIPOP);
         entry.autoRedacted = entry.notification.getNotification().publicVersion == null;
 
-        entry.row = row;
-        entry.row.setOnActivatedListener(mPresenter);
+        entry.setRow(row);
+        row.setOnActivatedListener(mPresenter);
 
         boolean useIncreasedCollapsedHeight = mMessagingUtil.isImportantMessaging(sbn,
                 mNotificationData.getImportance(sbn.getKey()));
@@ -734,24 +753,18 @@
         row.setUseIncreasedHeadsUpHeight(useIncreasedHeadsUp);
         row.setEntry(entry);
 
-        row.updateInflationFlag(FLAG_CONTENT_VIEW_HEADS_UP, shouldHeadsUp(entry));
-        row.updateInflationFlag(FLAG_CONTENT_VIEW_AMBIENT, shouldPulse(entry));
+        if (shouldHeadsUp(entry)) {
+            row.updateInflationFlag(FLAG_CONTENT_VIEW_HEADS_UP, true /* shouldInflate */);
+        }
+        if (shouldPulse(entry)) {
+            row.updateInflationFlag(FLAG_CONTENT_VIEW_AMBIENT, true /* shouldInflate */);
+        }
         row.setNeedsRedaction(
                 Dependency.get(NotificationLockscreenUserManager.class).needsRedaction(entry));
         row.inflateViews();
     }
 
-    protected void addNotificationViews(NotificationData.Entry entry) {
-        if (entry == null) {
-            return;
-        }
-        // Add the expanded view and icon.
-        mNotificationData.add(entry);
-        tagForeground(entry.notification);
-        updateNotifications();
-    }
-
-    protected NotificationData.Entry createNotificationViews(
+    private NotificationData.Entry createNotificationViews(
             StatusBarNotification sbn, NotificationListenerService.Ranking ranking)
             throws InflationException {
         if (DEBUG) {
@@ -759,7 +772,7 @@
         }
 
         NotificationData.Entry entry = new NotificationData.Entry(sbn, ranking);
-        if (shouldAutoBubble(entry)) {
+        if (BubbleController.shouldAutoBubble(getContext(), entry)) {
             entry.setIsBubble(true);
         }
 
@@ -823,11 +836,11 @@
                 mNotificationData.getImportance(key));
 
         mPendingNotifications.put(key, shadeEntry);
-        mGroupManager.onPendingEntryAdded(shadeEntry);
+        mGroupAlertTransferHelper.onPendingEntryAdded(shadeEntry);
     }
 
     @VisibleForTesting
-    protected void tagForeground(StatusBarNotification notification) {
+    void tagForeground(StatusBarNotification notification) {
         ArraySet<Integer> activeOps = mForegroundServiceController.getAppOps(
                 notification.getUserId(), notification.getPackageName());
         if (activeOps != null) {
@@ -903,7 +916,7 @@
         if (!notification.isClearable()) {
             // The user may have performed a dismiss action on the notification, since it's
             // not clearable we should snap it back.
-            mListContainer.snapViewIfNeeded(entry.row);
+            mListContainer.snapViewIfNeeded(entry);
         }
 
         if (DEBUG) {
@@ -939,10 +952,12 @@
 
         // Has a copy of the current UI adjustments.
         ArrayMap<String, NotificationUiAdjustment> oldAdjustments = new ArrayMap<>();
+        ArrayMap<String, Integer> oldImportances = new ArrayMap<>();
         for (NotificationData.Entry entry : entries) {
             NotificationUiAdjustment adjustment =
                     NotificationUiAdjustment.extractFromNotificationEntry(entry);
             oldAdjustments.put(entry.key, adjustment);
+            oldImportances.put(entry.key, entry.importance);
         }
 
         // Populate notification entries from the new rankings.
@@ -956,15 +971,20 @@
 
             if (NotificationUiAdjustment.needReinflate(
                     oldAdjustments.get(entry.key), newAdjustment)) {
-                if (entry.row != null) {
+                if (entry.rowExists()) {
                     entry.reset();
                     PackageManager pmUser = StatusBar.getPackageManagerForUser(mContext,
                             entry.notification.getUser().getIdentifier());
-                    updateNotification(entry, pmUser, entry.notification, entry.row);
+                    updateNotification(entry, pmUser, entry.notification, entry.getRow());
                 } else {
                     // Once the RowInflaterTask is done, it will pick up the updated entry, so
                     // no-op here.
                 }
+            } else if (oldImportances.containsKey(entry.key)
+                    && entry.importance != oldImportances.get(entry.key)) {
+                if (entry.rowExists()) {
+                    entry.getRow().onNotificationRankingUpdated();
+                }
             }
         }
 
@@ -1084,7 +1104,7 @@
      * @param entry the entry to check
      * @return true if the entry should ambient pulse, false otherwise
      */
-    protected boolean shouldPulse(NotificationData.Entry entry) {
+    private boolean shouldPulse(NotificationData.Entry entry) {
         StatusBarNotification sbn = entry.notification;
 
         if (!getShadeController().isDozing()) {
@@ -1159,7 +1179,7 @@
         return true;
     }
 
-    protected void setNotificationShown(StatusBarNotification n) {
+    private void setNotificationShown(StatusBarNotification n) {
         setNotificationsShown(new String[]{n.getKey()});
     }
 
@@ -1171,7 +1191,7 @@
         }
     }
 
-    protected boolean isSnoozedPackage(StatusBarNotification sbn) {
+    private boolean isSnoozedPackage(StatusBarNotification sbn) {
         return mHeadsUpManager.isSnoozed(sbn.getPackageName());
     }
 
@@ -1200,17 +1220,6 @@
         }
     }
 
-
-    /**
-     * Whether a bubble is appropriate to auto-bubble or not.
-     */
-    private boolean shouldAutoBubble(NotificationData.Entry entry) {
-        int priority = mNotificationData.getImportance(entry.key);
-        NotificationChannel channel = mNotificationData.getChannel(entry.key);
-        boolean canAppOverlay = channel != null && channel.canOverlayApps();
-        return BubbleController.shouldAutoBubble(entry, priority, canAppOverlay);
-    }
-
     /**
      * Callback for NotificationEntryManager.
      */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
index 1f48c15..09eb8a1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationUtils.java
@@ -75,6 +75,6 @@
     /** Returns the value of the new interruption model setting. */
     public static boolean useNewInterruptionModel(Context context) {
         return Settings.Secure.getInt(context.getContentResolver(),
-                NOTIFICATION_NEW_INTERRUPTION_MODEL, 0) != 0;
+                NOTIFICATION_NEW_INTERRUPTION_MODEL, 1) != 0;
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/VisibilityLocationProvider.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/VisibilityLocationProvider.java
index 53ebe74..a194eef 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/VisibilityLocationProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/VisibilityLocationProvider.java
@@ -16,18 +16,16 @@
 
 package com.android.systemui.statusbar.notification;
 
-import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-
 /**
  * An object that can determine the visibility of a Notification.
  */
 public interface VisibilityLocationProvider {
 
     /**
-     * Returns whether an ExpandableNotificationRow is in a visible location or not.
+     * Returns whether an Entry is in a visible location or not.
      *
-     * @param row
+     * @param entry
      * @return true if row is in a visible location
      */
-    boolean isInVisibleLocation(ExpandableNotificationRow row);
+    boolean isInVisibleLocation(NotificationData.Entry entry);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/VisualStabilityManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/VisualStabilityManager.java
index 75613a4..fce7980 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/VisualStabilityManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/VisualStabilityManager.java
@@ -120,7 +120,7 @@
             return true;
         }
         if (mAllowedReorderViews.contains(row)
-                && !mVisibilityLocationProvider.isInVisibleLocation(row)) {
+                && !mVisibilityLocationProvider.isInVisibleLocation(row.getEntry())) {
             return true;
         }
         return false;
@@ -142,12 +142,12 @@
         if (isHeadsUp) {
             // Heads up notifications should in general be allowed to reorder if they are out of
             // view and stay at the current location if they aren't.
-            mAllowedReorderViews.add(entry.row);
+            mAllowedReorderViews.add(entry.getRow());
         }
     }
 
     public void onLowPriorityUpdated(NotificationData.Entry entry) {
-        mLowPriorityReorderingViews.add(entry.row);
+        mLowPriorityReorderingViews.add(entry.getRow());
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
index 5dfd5d0..87313b8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
@@ -115,7 +115,7 @@
             for (int i = 0; i < N; i++) {
                 NotificationData.Entry entry = activeNotifications.get(i);
                 String key = entry.notification.getKey();
-                boolean isVisible = mListContainer.isInVisibleLocation(entry.row);
+                boolean isVisible = mListContainer.isInVisibleLocation(entry);
                 NotificationVisibility visObj = NotificationVisibility.obtain(key, i, N, isVisible);
                 boolean previouslyVisible = mCurrentlyVisibleNotifications.contains(visObj);
                 if (isVisible) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
index 3380b38..7876b24 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
@@ -166,7 +166,6 @@
             updateOutlineAlpha();
         }
     };
-    private float mShadowAlpha = 1.0f;
     private FakeShadowView mFakeShadow;
     private int mCurrentBackgroundTint;
     private int mTargetTint;
@@ -479,7 +478,6 @@
         }
         float alpha = NotificationStackScrollLayout.BACKGROUND_ALPHA_DIMMED;
         alpha = (alpha + (1.0f - alpha) * mNormalBackgroundVisibilityAmount);
-        alpha *= mShadowAlpha;
         if (mFadeInFromDarkAnimator != null) {
             alpha *= mFadeInFromDarkAnimator.getAnimatedFraction();
         }
@@ -1094,19 +1092,6 @@
     }
 
     @Override
-    public float getShadowAlpha() {
-        return mShadowAlpha;
-    }
-
-    @Override
-    public void setShadowAlpha(float shadowAlpha) {
-        if (shadowAlpha != mShadowAlpha) {
-            mShadowAlpha = shadowAlpha;
-            updateOutlineAlpha();
-        }
-    }
-
-    @Override
     public void setFakeShadowIntensity(float shadowIntensity, float outlineAlpha, int shadowYEnd,
             int outlineTranslation) {
         boolean hiddenBefore = mShadowHidden;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
index b7bdc2e..69e698f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
@@ -17,22 +17,14 @@
 package com.android.systemui.statusbar.notification.row;
 
 import static com.android.systemui.statusbar.StatusBarState.SHADE;
-import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator
-        .ExpandAnimationParameters;
-import static com.android.systemui.statusbar.notification.row.NotificationContentView
-        .VISIBLE_TYPE_AMBIENT;
-import static com.android.systemui.statusbar.notification.row.NotificationContentView
-        .VISIBLE_TYPE_CONTRACTED;
-import static com.android.systemui.statusbar.notification.row.NotificationContentView
-        .VISIBLE_TYPE_HEADSUP;
-import static com.android.systemui.statusbar.notification.row.NotificationInflater
-        .FLAG_CONTENT_VIEW_AMBIENT;
-import static com.android.systemui.statusbar.notification.row.NotificationInflater
-        .FLAG_CONTENT_VIEW_HEADS_UP;
-import static com.android.systemui.statusbar.notification.row.NotificationInflater
-        .FLAG_CONTENT_VIEW_PUBLIC;
-import static com.android.systemui.statusbar.notification.row.NotificationInflater
-        .InflationCallback;
+import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator.ExpandAnimationParameters;
+import static com.android.systemui.statusbar.notification.row.NotificationContentView.VISIBLE_TYPE_AMBIENT;
+import static com.android.systemui.statusbar.notification.row.NotificationContentView.VISIBLE_TYPE_CONTRACTED;
+import static com.android.systemui.statusbar.notification.row.NotificationContentView.VISIBLE_TYPE_HEADSUP;
+import static com.android.systemui.statusbar.notification.row.NotificationInflater.FLAG_CONTENT_VIEW_AMBIENT;
+import static com.android.systemui.statusbar.notification.row.NotificationInflater.FLAG_CONTENT_VIEW_HEADS_UP;
+import static com.android.systemui.statusbar.notification.row.NotificationInflater.FLAG_CONTENT_VIEW_PUBLIC;
+import static com.android.systemui.statusbar.notification.row.NotificationInflater.InflationCallback;
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
@@ -104,7 +96,7 @@
 import com.android.systemui.statusbar.notification.stack.AnimationProperties;
 import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
 import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainer;
-import com.android.systemui.statusbar.notification.stack.StackScrollState;
+import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
 import com.android.systemui.statusbar.phone.StatusBar;
 import com.android.systemui.statusbar.policy.HeadsUpManager;
@@ -336,7 +328,6 @@
     private float mTranslationWhenRemoved;
     private boolean mWasChildInGroupWhenRemoved;
     private int mNotificationColorAmbient;
-    private NotificationViewState mNotificationViewState;
 
     private SystemNotificationAsyncTask mSystemNotificationAsyncTask =
             new SystemNotificationAsyncTask();
@@ -464,7 +455,7 @@
     }
 
     /**
-     * Inflate views based off the inflation flags set.  Inflation happens asynchronously.
+     * Inflate views based off the inflation flags set. Inflation happens asynchronously.
      */
     public void inflateViews() {
         mNotificationInflater.inflateNotificationViews();
@@ -511,6 +502,16 @@
     }
 
     /**
+     * Whether or not a content view should be inflated.
+     *
+     * @param flag the flag corresponding to the content view
+     * @return true if the flag is set, false otherwise
+     */
+    public boolean isInflationFlagSet(@InflationFlag int flag) {
+        return mNotificationInflater.isInflationFlagSet(flag);
+    }
+
+    /**
      * Caches whether or not this row contains a system notification. Note, this is only cached
      * once per notification as the packageInfo can't technically change for a notification row.
      */
@@ -587,6 +588,13 @@
         updateRippleAllowed();
     }
 
+    /** Called when the notification's ranking was changed (but nothing else changed). */
+    public void onNotificationRankingUpdated() {
+        if (mMenuRow != null) {
+            mMenuRow.onNotificationUpdated(mStatusBarNotification);
+        }
+    }
+
     @VisibleForTesting
     void updateShelfIconColor() {
         StatusBarIconView expandedIcon = mEntry.expandedIcon;
@@ -883,29 +891,32 @@
                 visualStabilityManager, callback);
     }
 
-    public void getChildrenStates(StackScrollState resultState,
-            AmbientState ambientState) {
+    /** Updates states of all children. */
+    public void updateChildrenStates(AmbientState ambientState) {
         if (mIsSummaryWithChildren) {
-            ExpandableViewState parentState = resultState.getViewStateForView(this);
-            mChildrenContainer.getState(resultState, parentState, ambientState);
+            ExpandableViewState parentState = getViewState();
+            mChildrenContainer.updateState(parentState, ambientState);
         }
     }
 
-    public void applyChildrenState(StackScrollState state) {
+    /** Applies children states. */
+    public void applyChildrenState() {
         if (mIsSummaryWithChildren) {
-            mChildrenContainer.applyState(state);
+            mChildrenContainer.applyState();
         }
     }
 
-    public void prepareExpansionChanged(StackScrollState state) {
+    /** Prepares expansion changed. */
+    public void prepareExpansionChanged() {
         if (mIsSummaryWithChildren) {
-            mChildrenContainer.prepareExpansionChanged(state);
+            mChildrenContainer.prepareExpansionChanged();
         }
     }
 
-    public void startChildAnimation(StackScrollState finalState, AnimationProperties properties) {
+    /** Starts child animations. */
+    public void startChildAnimation(AnimationProperties properties) {
         if (mIsSummaryWithChildren) {
-            mChildrenContainer.startAnimationToState(finalState, properties);
+            mChildrenContainer.startAnimationToState(properties);
         }
     }
 
@@ -1401,16 +1412,16 @@
 
     public void performDismiss(boolean fromAccessibility) {
         if (isOnlyChildInGroup()) {
-            ExpandableNotificationRow groupSummary =
+            NotificationData.Entry groupSummary =
                     mGroupManager.getLogicalGroupSummary(getStatusBarNotification());
             if (groupSummary.isClearable()) {
                 // If this is the only child in the group, dismiss the group, but don't try to show
                 // the blocking helper affordance!
-                groupSummary.performDismiss(fromAccessibility);
+                groupSummary.getRow().performDismiss(fromAccessibility);
             }
         }
         setDismissed(fromAccessibility);
-        if (isClearable()) {
+        if (mEntry.isClearable()) {
             // TODO: track dismiss sentiment
             if (mOnDismissRunnable != null) {
                 mOnDismissRunnable.run();
@@ -1997,7 +2008,8 @@
         float interpolation = Interpolators.FAST_OUT_SLOW_IN.getInterpolation(params.getProgress());
         int startClipTopAmount = params.getStartClipTopAmount();
         if (mNotificationParent != null) {
-            top -= mNotificationParent.getTranslationY();
+            float parentY = mNotificationParent.getTranslationY();
+            top -= parentY;
             mNotificationParent.setTranslationZ(translationZ);
             int parentStartClipTopAmount = params.getParentStartClipTopAmount();
             if (startClipTopAmount != 0) {
@@ -2007,8 +2019,12 @@
                 mNotificationParent.setClipTopAmount(clipTopAmount);
             }
             mNotificationParent.setExtraWidthForClipping(extraWidthForClipping);
-            mNotificationParent.setMinimumHeightForClipping(params.getHeight()
-                    + mNotificationParent.getActualHeight());
+            float clipBottom = Math.max(params.getBottom(),
+                    parentY + mNotificationParent.getActualHeight()
+                            - mNotificationParent.getClipBottomAmount());
+            float clipTop = Math.min(params.getTop(), parentY);
+            int minimumHeightForClipping = (int) (clipBottom - clipTop);
+            mNotificationParent.setMinimumHeightForClipping(minimumHeightForClipping);
         } else if (startClipTopAmount != 0) {
             int clipTopAmount = (int) MathUtils.lerp(startClipTopAmount, 0, interpolation);
             setClipTopAmount(clipTopAmount);
@@ -2036,7 +2052,7 @@
                     .setInterpolator(Interpolators.ALPHA_OUT);
             setAboveShelf(true);
             mExpandAnimationRunning = true;
-            mNotificationViewState.cancelAnimations(this);
+            getViewState().cancelAnimations(this);
             mNotificationLaunchHeight = AmbientState.getNotificationLaunchHeight(getContext());
         } else {
             mExpandAnimationRunning = false;
@@ -2063,6 +2079,8 @@
 
     private void setChildIsExpanding(boolean isExpanding) {
         mChildIsExpanding = isExpanding;
+        updateClipping();
+        invalidate();
     }
 
     @Override
@@ -2234,28 +2252,6 @@
         setRippleAllowed(allowed);
     }
 
-    /**
-     * @return Can the underlying notification be cleared? This can be different from whether the
-     *         notification can be dismissed in case notifications are sensitive on the lockscreen.
-     * @see #canViewBeDismissed()
-     */
-    public boolean isClearable() {
-        if (mStatusBarNotification == null || !mStatusBarNotification.isClearable()) {
-            return false;
-        }
-        if (mIsSummaryWithChildren) {
-            List<ExpandableNotificationRow> notificationChildren =
-                    mChildrenContainer.getNotificationChildren();
-            for (int i = 0; i < notificationChildren.size(); i++) {
-                ExpandableNotificationRow child = notificationChildren.get(i);
-                if (!child.isClearable()) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
     @Override
     public int getIntrinsicHeight() {
         if (isShownAsBubble()) {
@@ -2523,10 +2519,10 @@
     /**
      * @return Whether this view is allowed to be dismissed. Only valid for visible notifications as
      *         otherwise some state might not be updated. To request about the general clearability
-     *         see {@link #isClearable()}.
+     *         see {@link NotificationData.Entry#isClearable()}.
      */
     public boolean canViewBeDismissed() {
-        return isClearable() && (!shouldShowPublic() || !mSensitiveHiddenInGeneral);
+        return mEntry.isClearable() && (!shouldShowPublic() || !mSensitiveHiddenInGeneral);
     }
 
     private boolean shouldShowPublic() {
@@ -2935,13 +2931,8 @@
     }
 
     @Override
-    public ExpandableViewState createNewViewState(StackScrollState stackScrollState) {
-        mNotificationViewState = new NotificationViewState(stackScrollState);
-        return mNotificationViewState;
-    }
-
-    public NotificationViewState getViewState() {
-        return mNotificationViewState;
+    public ExpandableViewState createExpandableViewState() {
+        return new NotificationViewState();
     }
 
     @Override
@@ -2991,7 +2982,7 @@
                 return true;
             }
         } else if (child == mChildrenContainer) {
-            if (!mChildIsExpanding && (isClippingNeeded() || !hasNoRounding())) {
+            if (isClippingNeeded() || !hasNoRounding()) {
                 return true;
             }
         } else if (child instanceof NotificationGuts) {
@@ -3028,6 +3019,21 @@
         return mOnAmbient;
     }
 
+    //TODO: this logic can't depend on layout if we are recycling!
+    public boolean isMediaRow() {
+        return getExpandedContentView() != null
+                && getExpandedContentView().findViewById(
+                com.android.internal.R.id.media_actions) != null;
+    }
+
+    public boolean isTopLevelChild() {
+        return getParent() instanceof NotificationStackScrollLayout;
+    }
+
+    public boolean isGroupNotFullyVisible() {
+        return getClipTopAmount() > 0 || getTranslationY() < 0;
+    }
+
     public void setAboveShelf(boolean aboveShelf) {
         boolean wasAboveShelf = isAboveShelf();
         mAboveShelf = aboveShelf;
@@ -3036,14 +3042,7 @@
         }
     }
 
-    public static class NotificationViewState extends ExpandableViewState {
-
-        private final StackScrollState mOverallState;
-
-
-        private NotificationViewState(StackScrollState stackScrollState) {
-            mOverallState = stackScrollState;
-        }
+    private static class NotificationViewState extends ExpandableViewState {
 
         @Override
         public void applyToView(View view) {
@@ -3054,7 +3053,7 @@
                 }
                 handleFixedTranslationZ(row);
                 super.applyToView(view);
-                row.applyChildrenState(mOverallState);
+                row.applyChildrenState();
             }
         }
 
@@ -3085,7 +3084,7 @@
                 }
                 handleFixedTranslationZ(row);
                 super.animateTo(child, properties);
-                row.startChildAnimation(mOverallState, properties);
+                row.startChildAnimation(properties);
             }
         }
     }
@@ -3135,11 +3134,13 @@
         pw.print(", alpha: " + getAlpha());
         pw.print(", translation: " + getTranslation());
         pw.print(", removed: " + isRemoved());
-        pw.print(", privateShowing: " + (getShowingLayout() == mPrivateLayout));
+        NotificationContentView showingLayout = getShowingLayout();
+        pw.print(", privateShowing: " + (showingLayout == mPrivateLayout));
         pw.println();
+        showingLayout.dump(fd, pw, args);
         pw.print("    ");
-        if (mNotificationViewState != null) {
-            mNotificationViewState.dump(fd, pw, args);
+        if (getViewState() != null) {
+            getViewState().dump(fd, pw, args);
         } else {
             pw.print("no viewState!!!");
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
index a7aed5f..0efb130 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
@@ -115,12 +115,14 @@
         if (!mCustomOutline) {
             int translation = mShouldTranslateContents && !ignoreTranslation
                     ? (int) getTranslation() : 0;
-            left = Math.max(translation, 0);
+            int halfExtraWidth = (int) (mExtraWidthForClipping / 2.0f);
+            left = Math.max(translation, 0) - halfExtraWidth;
             top = mClipTopAmount + mBackgroundTop;
-            right = getWidth() + Math.min(translation, 0);
+            right = getWidth() + halfExtraWidth + Math.min(translation, 0);
             // If the top is rounded we want the bottom to be at most at the top roundness, in order
             // to avoid the shadow changing when scrolling up.
-            bottom = Math.max(getActualHeight() - mClipBottomAmount, (int) (top + topRoundness));
+            bottom = Math.max(mMinimumHeightForClipping,
+                    Math.max(getActualHeight() - mClipBottomAmount, (int) (top + topRoundness)));
         } else {
             left = mOutlineRect.left;
             top = mOutlineRect.top;
@@ -219,10 +221,12 @@
 
     public void setExtraWidthForClipping(float extraWidthForClipping) {
         mExtraWidthForClipping = extraWidthForClipping;
+        invalidate();
     }
 
     public void setMinimumHeightForClipping(int minimumHeightForClipping) {
         mMinimumHeightForClipping = minimumHeightForClipping;
+        invalidate();
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java
index 38d657b..1e8de07 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java
@@ -21,23 +21,27 @@
 import android.graphics.Paint;
 import android.graphics.Rect;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
+import androidx.annotation.Nullable;
+
 import com.android.systemui.Dumpable;
 import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
-import com.android.systemui.statusbar.notification.stack.StackScrollState;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * An abstract view for expandable views.
  */
 public abstract class ExpandableView extends FrameLayout implements Dumpable {
+    private static final String TAG = "ExpandableView";
 
     public static final float NO_ROUNDNESS = -1;
     protected OnHeightChangedListener mOnHeightChangedListener;
@@ -54,6 +58,7 @@
     private ViewGroup mTransientContainer;
     private boolean mInShelf;
     private boolean mTransformingInShelf;
+    @Nullable private ExpandableViewState mViewState;
 
     public ExpandableView(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -443,13 +448,6 @@
         return super.hasOverlappingRendering() && getActualHeight() <= getHeight();
     }
 
-    public float getShadowAlpha() {
-        return 0.0f;
-    }
-
-    public void setShadowAlpha(float shadowAlpha) {
-    }
-
     /**
      * @return an amount between -1 and 1 of increased padding that this child needs. 1 means it
      * needs a full increased padding while -1 means it needs no padding at all. For 0.0f the normal
@@ -518,10 +516,56 @@
 
     public void setActualHeightAnimating(boolean animating) {}
 
-    public ExpandableViewState createNewViewState(StackScrollState stackScrollState) {
+    protected ExpandableViewState createExpandableViewState() {
         return new ExpandableViewState();
     }
 
+    /** Sets {@link ExpandableViewState} to default state. */
+    public ExpandableViewState resetViewState() {
+        // TODO(http://b/119762423): Move the null check to getViewState().
+        if (mViewState == null) {
+            mViewState = createExpandableViewState();
+        }
+
+        // initialize with the default values of the view
+        mViewState.height = getIntrinsicHeight();
+        mViewState.gone = getVisibility() == View.GONE;
+        mViewState.alpha = 1f;
+        mViewState.notGoneIndex = -1;
+        mViewState.xTranslation = getTranslationX();
+        mViewState.hidden = false;
+        mViewState.scaleX = getScaleX();
+        mViewState.scaleY = getScaleY();
+        mViewState.inShelf = false;
+        mViewState.headsUpIsVisible = false;
+
+        // handling reset for child notifications
+        if (this instanceof ExpandableNotificationRow) {
+            ExpandableNotificationRow row = (ExpandableNotificationRow) this;
+            List<ExpandableNotificationRow> children = row.getNotificationChildren();
+            if (row.isSummaryWithChildren() && children != null) {
+                for (ExpandableNotificationRow childRow : children) {
+                    childRow.resetViewState();
+                }
+            }
+        }
+
+        return mViewState;
+    }
+
+    @Nullable public ExpandableViewState getViewState() {
+        return mViewState;
+    }
+
+    /** Applies internal {@link ExpandableViewState} to this view. */
+    public void applyViewState() {
+        if (mViewState == null) {
+            Log.wtf(TAG, "No child state was found when applying this state to the hostView");
+        } else if (!mViewState.gone) {
+            mViewState.applyToView(this);
+        }
+    }
+
     /**
      * @return whether the current view doesn't add height to the overall content. This means that
      * if it is added to a list of items, it's content will still have the same height.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
index 1f15ed0..311bf7a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
@@ -24,7 +24,6 @@
 
 import com.android.systemui.R;
 import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
-import com.android.systemui.statusbar.notification.stack.StackScrollState;
 
 public class FooterView extends StackScrollerDecorView {
     private final int mClearAllTopPadding;
@@ -87,7 +86,7 @@
     }
 
     @Override
-    public ExpandableViewState createNewViewState(StackScrollState stackScrollState) {
+    public ExpandableViewState createExpandableViewState() {
         return new FooterViewState();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
index fa3fa5b..689d6d5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
@@ -55,6 +55,10 @@
 import com.android.systemui.statusbar.policy.SmartReplyConstants;
 import com.android.systemui.statusbar.policy.SmartReplyView;
 
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.List;
+
 /**
  * A frame layout containing the actual payload of the notification, including the contracted,
  * expanded and heads up layout. This class is responsible for clipping the content and and
@@ -488,12 +492,12 @@
         if (child == null) {
             mExpandedChild = null;
             mExpandedWrapper = null;
-            if (mVisibleType == VISIBLE_TYPE_EXPANDED) {
-                mVisibleType = VISIBLE_TYPE_CONTRACTED;
-            }
             if (mTransformationStartVisibleType == VISIBLE_TYPE_EXPANDED) {
                 mTransformationStartVisibleType = UNDEFINED;
             }
+            if (mVisibleType == VISIBLE_TYPE_EXPANDED) {
+                selectLayout(false /* animate */, true /* force */);
+            }
             return;
         }
         addView(child);
@@ -526,12 +530,12 @@
         if (child == null) {
             mHeadsUpChild = null;
             mHeadsUpWrapper = null;
-            if (mVisibleType == VISIBLE_TYPE_HEADSUP) {
-                mVisibleType = VISIBLE_TYPE_CONTRACTED;
-            }
             if (mTransformationStartVisibleType == VISIBLE_TYPE_HEADSUP) {
                 mTransformationStartVisibleType = UNDEFINED;
             }
+            if (mVisibleType == VISIBLE_TYPE_HEADSUP) {
+                selectLayout(false /* animate */, true /* force */);
+            }
             return;
         }
         addView(child);
@@ -553,12 +557,12 @@
         if (child == null) {
             mAmbientChild = null;
             mAmbientWrapper = null;
-            if (mVisibleType == VISIBLE_TYPE_AMBIENT) {
-                mVisibleType = VISIBLE_TYPE_CONTRACTED;
-            }
             if (mTransformationStartVisibleType == VISIBLE_TYPE_AMBIENT) {
                 mTransformationStartVisibleType = UNDEFINED;
             }
+            if (mVisibleType == VISIBLE_TYPE_AMBIENT) {
+                selectLayout(false /* animate */, true /* force */);
+            }
             return;
         }
         addView(child);
@@ -1225,17 +1229,18 @@
         mOnContentViewInactiveListeners.clear();
         mBeforeN = entry.targetSdk < Build.VERSION_CODES.N;
         updateAllSingleLineViews();
+        ExpandableNotificationRow row = entry.getRow();
         if (mContractedChild != null) {
-            mContractedWrapper.onContentUpdated(entry.row);
+            mContractedWrapper.onContentUpdated(row);
         }
         if (mExpandedChild != null) {
-            mExpandedWrapper.onContentUpdated(entry.row);
+            mExpandedWrapper.onContentUpdated(row);
         }
         if (mHeadsUpChild != null) {
-            mHeadsUpWrapper.onContentUpdated(entry.row);
+            mHeadsUpWrapper.onContentUpdated(row);
         }
         if (mAmbientChild != null) {
-            mAmbientWrapper.onContentUpdated(entry.row);
+            mAmbientWrapper.onContentUpdated(row);
         }
         applyRemoteInputAndSmartReply(entry);
         updateLegacy();
@@ -1285,38 +1290,77 @@
             return;
         }
 
-        Notification notification = entry.notification.getNotification();
+        SmartRepliesAndActions smartRepliesAndActions =
+                chooseSmartRepliesAndActions(mSmartReplyConstants, entry);
 
-        Pair<RemoteInput, Notification.Action> remoteInputActionPair =
-                entry.notification.getNotification().findRemoteInputActionPair(false /*freeform */);
-        Pair<RemoteInput, Notification.Action> freeformRemoteInputActionPair =
-                notification.findRemoteInputActionPair(true /*freeform */);
+        applyRemoteInput(entry, smartRepliesAndActions.hasFreeformRemoteInput);
+        applySmartReplyView(smartRepliesAndActions, entry);
+    }
 
-        boolean enableAppGeneratedSmartReplies = (mSmartReplyConstants.isEnabled()
-                && (!mSmartReplyConstants.requiresTargetingP()
+    /**
+     * Chose what smart replies and smart actions to display. App generated suggestions take
+     * precedence. So if the app provides any smart replies, we don't show any
+     * replies or actions generated by the NotificationAssistantService (NAS), and if the app
+     * provides any smart actions we also don't show any NAS-generated replies or actions.
+     */
+    @VisibleForTesting
+    static SmartRepliesAndActions chooseSmartRepliesAndActions(
+            SmartReplyConstants smartReplyConstants,
+            final NotificationData.Entry entry) {
+        boolean enableAppGeneratedSmartReplies = (smartReplyConstants.isEnabled()
+                && (!smartReplyConstants.requiresTargetingP()
                 || entry.targetSdk >= Build.VERSION_CODES.P));
 
-        RemoteInput remoteInputWithChoices = null;
-        PendingIntent pendingIntentWithChoices= null;
-        CharSequence[] choices = null;
-        if (enableAppGeneratedSmartReplies
-                && remoteInputActionPair != null
-                && !ArrayUtils.isEmpty(remoteInputActionPair.first.getChoices())) {
-            // app generated smart replies
-            remoteInputWithChoices = remoteInputActionPair.first;
-            pendingIntentWithChoices = remoteInputActionPair.second.actionIntent;
-            choices = remoteInputActionPair.first.getChoices();
-        } else if (!ArrayUtils.isEmpty(entry.smartReplies)
-                && freeformRemoteInputActionPair != null
-                && freeformRemoteInputActionPair.second.getAllowGeneratedReplies()) {
-            // system generated smart replies
-            remoteInputWithChoices = freeformRemoteInputActionPair.first;
-            pendingIntentWithChoices = freeformRemoteInputActionPair.second.actionIntent;
-            choices = entry.smartReplies;
-        }
+        Notification notification = entry.notification.getNotification();
+        Pair<RemoteInput, Notification.Action> remoteInputActionPair =
+                notification.findRemoteInputActionPair(false /* freeform */);
+        Pair<RemoteInput, Notification.Action> freeformRemoteInputActionPair =
+                notification.findRemoteInputActionPair(true /* freeform */);
 
-        applyRemoteInput(entry, freeformRemoteInputActionPair != null);
-        applySmartReplyView(remoteInputWithChoices, pendingIntentWithChoices, entry, choices);
+        boolean appGeneratedSmartRepliesExist =
+                enableAppGeneratedSmartReplies
+                        && remoteInputActionPair != null
+                        && !ArrayUtils.isEmpty(remoteInputActionPair.first.getChoices())
+                        && remoteInputActionPair.second.actionIntent != null;
+
+        List<Notification.Action> appGeneratedSmartActions = notification.getContextualActions();
+        boolean appGeneratedSmartActionsExist = !appGeneratedSmartActions.isEmpty();
+
+        SmartReplyView.SmartReplies smartReplies = null;
+        SmartReplyView.SmartActions smartActions = null;
+        if (appGeneratedSmartRepliesExist) {
+            smartReplies = new SmartReplyView.SmartReplies(
+                    remoteInputActionPair.first.getChoices(),
+                    remoteInputActionPair.first,
+                    remoteInputActionPair.second.actionIntent,
+                    false /* fromAssistant */);
+        }
+        if (appGeneratedSmartActionsExist) {
+            smartActions = new SmartReplyView.SmartActions(appGeneratedSmartActions,
+                    false /* fromAssistant */);
+        }
+        // Apps didn't provide any smart replies / actions, use those from NAS (if any).
+        if (!appGeneratedSmartRepliesExist && !appGeneratedSmartActionsExist) {
+            boolean useGeneratedReplies = !ArrayUtils.isEmpty(entry.smartReplies)
+                    && freeformRemoteInputActionPair != null
+                    && freeformRemoteInputActionPair.second.getAllowGeneratedReplies()
+                    && freeformRemoteInputActionPair.second.actionIntent != null;
+            if (useGeneratedReplies) {
+                smartReplies = new SmartReplyView.SmartReplies(
+                        entry.smartReplies,
+                        freeformRemoteInputActionPair.first,
+                        freeformRemoteInputActionPair.second.actionIntent,
+                        true /* fromAssistant */);
+            }
+            boolean useSmartActions = !ArrayUtils.isEmpty(entry.systemGeneratedSmartActions)
+                    && notification.getAllowSystemGeneratedContextualActions();
+            if (useSmartActions) {
+                smartActions = new SmartReplyView.SmartActions(
+                        entry.systemGeneratedSmartActions, true /* fromAssistant */);
+            }
+        }
+        return new SmartRepliesAndActions(
+                smartReplies, smartActions, freeformRemoteInputActionPair != null);
     }
 
     private void applyRemoteInput(NotificationData.Entry entry, boolean hasFreeformRemoteInput) {
@@ -1418,28 +1462,29 @@
         return null;
     }
 
-    private void applySmartReplyView(RemoteInput remoteInput, PendingIntent pendingIntent,
-            NotificationData.Entry entry, CharSequence[] choices) {
+    private void applySmartReplyView(SmartRepliesAndActions smartRepliesAndActions,
+            NotificationData.Entry entry) {
         if (mExpandedChild != null) {
             mExpandedSmartReplyView =
-                    applySmartReplyView(mExpandedChild, remoteInput, pendingIntent, entry, choices);
-            if (mExpandedSmartReplyView != null && remoteInput != null
-                    && choices != null && choices.length > 0) {
-                mSmartReplyController.smartRepliesAdded(entry, choices.length);
+                    applySmartReplyView(mExpandedChild, smartRepliesAndActions, entry);
+            if (mExpandedSmartReplyView != null && smartRepliesAndActions.smartReplies != null) {
+                mSmartReplyController.smartRepliesAdded(
+                        entry, smartRepliesAndActions.smartReplies.choices.length);
             }
         }
     }
 
-    private SmartReplyView applySmartReplyView(
-            View view, RemoteInput remoteInput, PendingIntent pendingIntent,
-            NotificationData.Entry entry, CharSequence[] choices) {
+    private SmartReplyView applySmartReplyView(View view,
+            SmartRepliesAndActions smartRepliesAndActions, NotificationData.Entry entry) {
         View smartReplyContainerCandidate = view.findViewById(
                 com.android.internal.R.id.smart_reply_container);
         if (!(smartReplyContainerCandidate instanceof LinearLayout)) {
             return null;
         }
         LinearLayout smartReplyContainer = (LinearLayout) smartReplyContainerCandidate;
-        if (remoteInput == null || pendingIntent == null) {
+        // If there are no smart replies and no smart actions - early out.
+        if (smartRepliesAndActions.smartReplies == null
+                && smartRepliesAndActions.smartActions == null) {
             smartReplyContainer.setVisibility(View.GONE);
             return null;
         }
@@ -1468,9 +1513,15 @@
             }
         }
         if (smartReplyView != null) {
-            smartReplyView.setRepliesFromRemoteInput(remoteInput, pendingIntent,
-                    mSmartReplyController, entry, smartReplyContainer, choices
-            );
+            smartReplyView.resetSmartSuggestions(smartReplyContainer);
+            if (smartRepliesAndActions.smartReplies != null) {
+                smartReplyView.addRepliesFromRemoteInput(
+                        smartRepliesAndActions.smartReplies, mSmartReplyController, entry);
+            }
+            if (smartRepliesAndActions.smartActions != null) {
+                smartReplyView.addSmartActions(
+                        smartRepliesAndActions.smartActions, mSmartReplyController, entry);
+            }
             smartReplyContainer.setVisibility(View.VISIBLE);
         }
         return smartReplyView;
@@ -1870,4 +1921,41 @@
             mExpandedWrapper.setHeaderVisibleAmount(headerVisibleAmount);
         }
     }
+
+    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        pw.print("    ");
+        pw.print("contentView visibility: " + getVisibility());
+        pw.print(", alpha: " + getAlpha());
+        pw.print(", clipBounds: " + getClipBounds());
+        pw.print(", contentHeight: " + mContentHeight);
+        pw.print(", visibleType: " + mVisibleType);
+        View view = getViewForVisibleType(mVisibleType);
+        pw.print(", visibleView ");
+        if (view != null) {
+            pw.print(" visibility: " + view.getVisibility());
+            pw.print(", alpha: " + view.getAlpha());
+            pw.print(", clipBounds: " + view.getClipBounds());
+        } else {
+            pw.print("null");
+        }
+        pw.println();
+    }
+
+    @VisibleForTesting
+    static class SmartRepliesAndActions {
+        @Nullable
+        public final SmartReplyView.SmartReplies smartReplies;
+        @Nullable
+        public final SmartReplyView.SmartActions smartActions;
+        public final boolean hasFreeformRemoteInput;
+
+        SmartRepliesAndActions(
+                @Nullable SmartReplyView.SmartReplies smartReplies,
+                @Nullable SmartReplyView.SmartActions smartActions,
+                boolean hasFreeformRemoteInput) {
+            this.smartReplies = smartReplies;
+            this.smartActions = smartActions;
+            this.hasFreeformRemoteInput = hasFreeformRemoteInput;
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
index 37bf06e..3dc50ae 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
@@ -18,10 +18,7 @@
 import static android.app.AppOpsManager.OP_CAMERA;
 import static android.app.AppOpsManager.OP_RECORD_AUDIO;
 import static android.app.AppOpsManager.OP_SYSTEM_ALERT_WINDOW;
-import static android.service.notification.NotificationListenerService.Ranking
-        .USER_SENTIMENT_NEGATIVE;
-
-import static com.android.systemui.statusbar.notification.row.NotificationInfo.ACTION_NONE;
+import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE;
 
 import android.app.INotificationManager;
 import android.app.NotificationChannel;
@@ -43,7 +40,6 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.logging.nano.MetricsProto;
-import com.android.internal.statusbar.IStatusBarService;
 import com.android.systemui.Dependency;
 import com.android.systemui.Dumpable;
 import com.android.systemui.plugins.ActivityStarter;
@@ -86,7 +82,6 @@
     private final ActivityStarter mActivityStarter = Dependency.get(ActivityStarter.class);
 
     // which notification is currently being longpress-examined by the user
-    private final IStatusBarService mBarService;
     private NotificationGuts mNotificationGutsExposed;
     private NotificationMenuRowPlugin.MenuItem mGutsMenuItem;
     private NotificationSafeToRemoveCallback mNotificationLifetimeFinishedCallback;
@@ -103,8 +98,6 @@
 
         mAccessibilityManager = (AccessibilityManager)
                 mContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
-        mBarService = IStatusBarService.Stub.asInterface(
-                ServiceManager.getService(Context.STATUS_BAR_SERVICE));
     }
 
     public void setUpWithPresenter(NotificationPresenter presenter,
@@ -116,9 +109,9 @@
         mOnSettingsClickListener = onSettingsClick;
     }
 
-    public void onDensityOrFontScaleChanged(ExpandableNotificationRow row) {
-        setExposedGuts(row.getGuts());
-        bindGuts(row);
+    public void onDensityOrFontScaleChanged(NotificationData.Entry entry) {
+        setExposedGuts(entry.getGuts());
+        bindGuts(entry.getRow());
     }
 
     /**
@@ -191,13 +184,7 @@
             } else if (gutsView instanceof AppOpsInfo) {
                 initializeAppOpsInfo(row, (AppOpsInfo) gutsView);
             } else if (gutsView instanceof NotificationInfo) {
-                int action;
-                if (item instanceof NotificationMenuRow.NotificationInfoMenuItem) {
-                    action = ((NotificationMenuRow.NotificationInfoMenuItem) item).mAction;
-                } else {
-                    action = ACTION_NONE;
-                }
-                initializeNotificationInfo(row, (NotificationInfo) gutsView, action);
+                initializeNotificationInfo(row, (NotificationInfo) gutsView);
             }
             return true;
         } catch (Exception e) {
@@ -256,13 +243,11 @@
      * Sets up the {@link NotificationInfo} inside the notification row's guts.
      * @param row view to set up the guts for
      * @param notificationInfoView view to set up/bind within {@code row}
-     * @param action The action to take immediately upon binding, if any.
      */
     @VisibleForTesting
     void initializeNotificationInfo(
             final ExpandableNotificationRow row,
-            NotificationInfo notificationInfoView,
-            @NotificationInfo.NotificationInfoAction int action) throws Exception {
+            NotificationInfo notificationInfoView) throws Exception {
         NotificationGuts guts = row.getGuts();
         StatusBarNotification sbn = row.getStatusBarNotification();
         String packageName = sbn.getPackageName();
@@ -305,9 +290,7 @@
                 row.getIsNonblockable(),
                 isForBlockingHelper,
                 row.getEntry().userSentiment == USER_SENTIMENT_NEGATIVE,
-                row.getEntry().noisy,
-                row.getEntry().importance,
-                action);
+                row.getEntry().importance);
 
     }
 
@@ -441,8 +424,8 @@
     public boolean shouldExtendLifetime(NotificationData.Entry entry) {
         return entry != null
                 &&(mNotificationGutsExposed != null
-                    && entry.row.getGuts() != null
-                    && mNotificationGutsExposed == entry.row.getGuts()
+                    && entry.getGuts() != null
+                    && mNotificationGutsExposed == entry.getGuts()
                     && !mNotificationGutsExposed.isLeavebehind());
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInflater.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInflater.java
index e1c2f73..ef343fa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInflater.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInflater.java
@@ -100,17 +100,13 @@
 
     public static final int FLAG_CONTENT_VIEW_ALL = ~0;
 
-    // TODO: Heads up and ambient are always inflated as a temporary workaround.
-    // See http://b/117933032 and http://b/117894786
     /**
      * Content views that must be inflated at all times.
      */
     @InflationFlag
     private static final int REQUIRED_INFLATION_FLAGS =
             FLAG_CONTENT_VIEW_CONTRACTED
-            | FLAG_CONTENT_VIEW_EXPANDED
-            | FLAG_CONTENT_VIEW_HEADS_UP
-            | FLAG_CONTENT_VIEW_AMBIENT;
+            | FLAG_CONTENT_VIEW_EXPANDED;
 
     /**
      * The set of content views to inflate.
@@ -201,11 +197,12 @@
     }
 
     /**
-     * Add flags for which content views should be inflated in addition to those already set.
+     * Convenience method for setting multiple flags at once.
      *
      * @param flags a set of {@link InflationFlag} corresponding to content views that should be
      *              inflated
      */
+    @VisibleForTesting
     public void addInflationFlags(@InflationFlag int flags) {
         mInflationFlags |= flags;
     }
@@ -216,13 +213,12 @@
      * @param flag the {@link InflationFlag} corresponding to the view
      * @return true if the flag is set and view will be inflated, false o/w
      */
-    @VisibleForTesting
     public boolean isInflationFlagSet(@InflationFlag int flag) {
         return ((mInflationFlags & flag) != 0);
     }
 
     /**
-     * Inflate all views of this notification on a background thread. This is asynchronous and will
+     * Inflate views for set flags on a background thread. This is asynchronous and will
      * notify the callback once it's finished.
      */
     public void inflateNotificationViews() {
@@ -234,7 +230,7 @@
      * will notify the callback once it's finished.  If the content view is already inflated, this
      * will reinflate it.
      *
-     * @param reInflateFlags flags which views should be inflated.  Should be a subset of
+     * @param reInflateFlags flags which views should be inflated. Should be a subset of
      *                       {@link NotificationInflater#mInflationFlags} as only those will be
      *                       inflated/reinflated.
      */
@@ -701,7 +697,7 @@
                         && newView.getPackage() != null
                         && newView.getPackage().equals(oldView.getPackage())
                         && newView.getLayoutId() == oldView.getLayoutId()
-                        && !oldView.isReapplyDisallowed());
+                        && !oldView.hasFlags(RemoteViews.FLAG_REAPPLY_DISALLOWED));
     }
 
     public void setInflationCallback(InflationCallback callback) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
index 3a7091b..5329541 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
@@ -92,6 +92,7 @@
     private String mPackageName;
     private String mAppName;
     private int mAppUid;
+    private String mDelegatePkg;
     private int mNumUniqueChannelsInRow;
     private NotificationChannel mSingleNotificationChannel;
     private int mStartingChannelImportance;
@@ -103,7 +104,6 @@
     private AnimatorSet mExpandAnimation;
     private boolean mIsForeground;
     private boolean mIsDeviceProvisioned;
-    private boolean mIsNoisy;
 
     private CheckSaveListener mCheckSaveListener;
     private OnSettingsClickListener mOnSettingsClickListener;
@@ -185,15 +185,13 @@
             final OnAppSettingsClickListener onAppSettingsClick,
             boolean isDeviceProvisioned,
             boolean isNonblockable,
-            boolean isNoisy,
-            int importance,
-            @NotificationInfoAction int action)
+            int importance)
             throws RemoteException {
         bindNotification(pm, iNotificationManager, pkg, notificationChannel,
                 numUniqueChannelsInRow, sbn, checkSaveListener, onSettingsClick,
                 onAppSettingsClick, isDeviceProvisioned, isNonblockable,
-                false /* isBlockingHelper */, false /* isUserSentimentNegative */, isNoisy,
-                importance, action);
+                false /* isBlockingHelper */, false /* isUserSentimentNegative */,
+                importance);
     }
 
     public void bindNotification(
@@ -210,9 +208,7 @@
             boolean isNonblockable,
             boolean isForBlockingHelper,
             boolean isUserSentimentNegative,
-            boolean isNoisy,
-            int importance,
-            @NotificationInfoAction int action)
+            int importance)
             throws RemoteException {
         mINotificationManager = iNotificationManager;
         mMetricsLogger = Dependency.get(MetricsLogger.class);
@@ -235,8 +231,8 @@
                 (mSbn.getNotification().flags & Notification.FLAG_FOREGROUND_SERVICE) != 0;
         mIsForBlockingHelper = isForBlockingHelper;
         mAppUid = mSbn.getUid();
+        mDelegatePkg = mSbn.getOpPkg();
         mIsDeviceProvisioned = isDeviceProvisioned;
-        mIsNoisy = isNoisy;
 
         int numTotalChannels = mINotificationManager.getNumNotificationChannelsForPackage(
                 pkg, mAppUid, false /* includeDeleted */);
@@ -253,10 +249,6 @@
         bindHeader();
         bindPrompt();
         bindButtons();
-
-        if (action != ACTION_NONE) {
-            swapContent(action, false /* don't animate */);
-        }
     }
 
     private void bindHeader() throws RemoteException {
@@ -281,26 +273,8 @@
         ((ImageView) findViewById(R.id.pkgicon)).setImageDrawable(pkgicon);
         ((TextView) findViewById(R.id.pkgname)).setText(mAppName);
 
-        // Set group information if this channel has an associated group.
-        CharSequence groupName = null;
-        if (mSingleNotificationChannel != null && mSingleNotificationChannel.getGroup() != null) {
-            final NotificationChannelGroup notificationChannelGroup =
-                    mINotificationManager.getNotificationChannelGroupForPackage(
-                            mSingleNotificationChannel.getGroup(), mPackageName, mAppUid);
-            if (notificationChannelGroup != null) {
-                groupName = notificationChannelGroup.getName();
-            }
-        }
-        TextView groupNameView = findViewById(R.id.group_name);
-        TextView groupDividerView = findViewById(R.id.pkg_group_divider);
-        if (groupName != null) {
-            groupNameView.setText(groupName);
-            groupNameView.setVisibility(View.VISIBLE);
-            groupDividerView.setVisibility(View.VISIBLE);
-        } else {
-            groupNameView.setVisibility(View.GONE);
-            groupDividerView.setVisibility(View.GONE);
-        }
+        // Delegate
+        bindDelegate();
 
         // Settings button.
         final View settingsButton = findViewById(R.id.info);
@@ -320,9 +294,10 @@
         }
     }
 
-    private void bindPrompt() {
+    private void bindPrompt() throws RemoteException {
         final TextView blockPrompt = findViewById(R.id.block_prompt);
         bindName();
+        bindGroup();
         if (mIsNonblockable) {
             blockPrompt.setText(R.string.notification_unblockable_desc);
         } else {
@@ -345,6 +320,60 @@
         }
     }
 
+    private void bindDelegate() {
+        TextView delegateView = findViewById(R.id.delegate_name);
+        TextView dividerView = findViewById(R.id.pkg_divider);
+
+        CharSequence delegatePkg = null;
+        if (!TextUtils.equals(mPackageName, mDelegatePkg)) {
+            // this notification was posted by a delegate!
+            ApplicationInfo info;
+            try {
+                info = mPm.getApplicationInfo(
+                        mDelegatePkg,
+                        PackageManager.MATCH_UNINSTALLED_PACKAGES
+                                | PackageManager.MATCH_DISABLED_COMPONENTS
+                                | PackageManager.MATCH_DIRECT_BOOT_UNAWARE
+                                | PackageManager.MATCH_DIRECT_BOOT_AWARE);
+                if (info != null) {
+                    delegatePkg = String.valueOf(mPm.getApplicationLabel(info));
+                }
+            } catch (PackageManager.NameNotFoundException e) { }
+        }
+        if (delegatePkg != null) {
+            delegateView.setText(mContext.getResources().getString(
+                    R.string.notification_delegate_header, delegatePkg));
+            delegateView.setVisibility(View.VISIBLE);
+            dividerView.setVisibility(View.VISIBLE);
+        } else {
+            delegateView.setVisibility(View.GONE);
+            dividerView.setVisibility(View.GONE);
+        }
+    }
+
+    private void bindGroup() throws RemoteException {
+        // Set group information if this channel has an associated group.
+        CharSequence groupName = null;
+        if (mSingleNotificationChannel != null && mSingleNotificationChannel.getGroup() != null) {
+            final NotificationChannelGroup notificationChannelGroup =
+                    mINotificationManager.getNotificationChannelGroupForPackage(
+                            mSingleNotificationChannel.getGroup(), mPackageName, mAppUid);
+            if (notificationChannelGroup != null) {
+                groupName = notificationChannelGroup.getName();
+            }
+        }
+        TextView groupNameView = findViewById(R.id.group_name);
+        TextView groupDividerView = findViewById(R.id.pkg_group_divider);
+        if (groupName != null) {
+            groupNameView.setText(groupName);
+            groupNameView.setVisibility(View.VISIBLE);
+            groupDividerView.setVisibility(View.VISIBLE);
+        } else {
+            groupNameView.setVisibility(View.GONE);
+            groupDividerView.setVisibility(View.GONE);
+        }
+    }
+
     @VisibleForTesting
     void logBlockingHelperCounter(String counterTag) {
         if (mIsForBlockingHelper) {
@@ -378,54 +407,74 @@
     }
 
     private void bindButtons() {
-        // Set up stay-in-notification actions
-        View block =  findViewById(R.id.block);
-        TextView keep = findViewById(R.id.keep);
-        TextView silent = findViewById(R.id.toggle_silent);
-        View minimize = findViewById(R.id.minimize);
-
         findViewById(R.id.undo).setOnClickListener(mOnUndo);
-        block.setOnClickListener(mOnStopOrMinimizeNotifications);
-        keep.setOnClickListener(mOnKeepShowing);
-        silent.setOnClickListener(mOnToggleSilent);
-        minimize.setOnClickListener(mOnStopOrMinimizeNotifications);
 
-        if (mIsNonblockable) {
-            keep.setText(android.R.string.ok);
-            block.setVisibility(GONE);
-            silent.setVisibility(GONE);
-            minimize.setVisibility(GONE);
-        } else if (mIsForeground) {
-            block.setVisibility(GONE);
-            silent.setVisibility(GONE);
-            minimize.setVisibility(VISIBLE);
-        } else {
-            block.setVisibility(VISIBLE);
-            boolean showToggleSilent = mIsNoisy
-                    && NotificationUtils.useNewInterruptionModel(mContext);
-            silent.setVisibility(showToggleSilent ? VISIBLE : GONE);
+        boolean showInterruptivenessSettings =
+                !mIsNonblockable
+                        && !mIsForeground
+                        && !mIsForBlockingHelper
+                        && NotificationUtils.useNewInterruptionModel(mContext);
+        if (showInterruptivenessSettings) {
+            findViewById(R.id.block_or_minimize).setVisibility(GONE);
+            findViewById(R.id.interruptiveness_settings).setVisibility(VISIBLE);
+            View block = findViewById(R.id.int_block);
+            TextView silent = findViewById(R.id.int_silent);
+            TextView alert = findViewById(R.id.int_alert);
+
             boolean isCurrentlyAlerting =
                     mStartingChannelOrNotificationImportance >= IMPORTANCE_DEFAULT;
-            silent.setText(isCurrentlyAlerting
-                    ? R.string.inline_silent_button_silent
-                    : R.string.inline_silent_button_alert);
-            minimize.setVisibility(GONE);
-        }
 
-        // Set up app settings link (i.e. Customize)
-        TextView settingsLinkView = findViewById(R.id.app_settings);
-        Intent settingsIntent = getAppSettingsIntent(mPm, mPackageName, mSingleNotificationChannel,
-                mSbn.getId(), mSbn.getTag());
-        if (!mIsForBlockingHelper
-                && settingsIntent != null
-                && !TextUtils.isEmpty(mSbn.getNotification().getSettingsText())) {
-            settingsLinkView.setVisibility(VISIBLE);
-            settingsLinkView.setText(mContext.getString(R.string.notification_app_settings));
-            settingsLinkView.setOnClickListener((View view) -> {
-                mAppSettingsClickListener.onClick(view, settingsIntent);
-            });
+            block.setOnClickListener(mOnStopOrMinimizeNotifications);
+            if (isCurrentlyAlerting) {
+                silent.setOnClickListener(mOnToggleSilent);
+                silent.setText(R.string.inline_silent_button_silent);
+                alert.setOnClickListener(mOnKeepShowing);
+                alert.setText(R.string.inline_silent_button_keep_alerting);
+            } else {
+                silent.setOnClickListener(mOnKeepShowing);
+                silent.setText(R.string.inline_silent_button_stay_silent);
+                alert.setOnClickListener(mOnToggleSilent);
+                alert.setText(R.string.inline_silent_button_alert);
+            }
         } else {
-            settingsLinkView.setVisibility(View.GONE);
+            findViewById(R.id.block_or_minimize).setVisibility(VISIBLE);
+            findViewById(R.id.interruptiveness_settings).setVisibility(GONE);
+            View block = findViewById(R.id.block);
+            TextView keep = findViewById(R.id.keep);
+            View minimize = findViewById(R.id.minimize);
+
+            block.setOnClickListener(mOnStopOrMinimizeNotifications);
+            keep.setOnClickListener(mOnKeepShowing);
+            minimize.setOnClickListener(mOnStopOrMinimizeNotifications);
+
+            if (mIsNonblockable) {
+                keep.setText(android.R.string.ok);
+                block.setVisibility(GONE);
+                minimize.setVisibility(GONE);
+            } else if (mIsForeground) {
+                block.setVisibility(GONE);
+                minimize.setVisibility(VISIBLE);
+            } else {
+                block.setVisibility(VISIBLE);
+                minimize.setVisibility(GONE);
+            }
+
+            // Set up app settings link (i.e. Customize)
+            TextView settingsLinkView = findViewById(R.id.app_settings);
+            Intent settingsIntent = getAppSettingsIntent(mPm, mPackageName,
+                    mSingleNotificationChannel,
+                    mSbn.getId(), mSbn.getTag());
+            if (!mIsForBlockingHelper
+                    && settingsIntent != null
+                    && !TextUtils.isEmpty(mSbn.getNotification().getSettingsText())) {
+                settingsLinkView.setVisibility(VISIBLE);
+                settingsLinkView.setText(mContext.getString(R.string.notification_app_settings));
+                settingsLinkView.setOnClickListener((View view) -> {
+                    mAppSettingsClickListener.onClick(view, settingsIntent);
+                });
+            } else {
+                settingsLinkView.setVisibility(View.GONE);
+            }
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java
index c16b28f..50564e3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationMenuRow.java
@@ -17,9 +17,6 @@
 package com.android.systemui.statusbar.notification.row;
 
 import static com.android.systemui.SwipeHelper.SWIPED_FAR_ENOUGH_SIZE_FRACTION;
-import static com.android.systemui.statusbar.notification.row.NotificationInfo.ACTION_BLOCK;
-import static com.android.systemui.statusbar.notification.row.NotificationInfo.ACTION_NONE;
-import static com.android.systemui.statusbar.notification.row.NotificationInfo.ACTION_TOGGLE_SILENT;
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
@@ -46,7 +43,6 @@
 import com.android.systemui.statusbar.AlphaOptimizedImageView;
 import com.android.systemui.statusbar.notification.NotificationUtils;
 import com.android.systemui.statusbar.notification.row.NotificationGuts.GutsContent;
-import com.android.systemui.statusbar.notification.row.NotificationInfo.NotificationInfoAction;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
 
 import java.util.ArrayList;
@@ -73,7 +69,7 @@
 
     private Context mContext;
     private FrameLayout mMenuContainer;
-    private NotificationInfoMenuItem mInfoItem;
+    private NotificationMenuItem mInfoItem;
     private MenuItem mAppOpsItem;
     private MenuItem mSnoozeItem;
     private ArrayList<MenuItem> mLeftMenuItems;
@@ -248,36 +244,32 @@
         if (!isForeground) {
             // Only show snooze for non-foreground notifications
             mSnoozeItem = createSnoozeItem(mContext);
-            mLeftMenuItems.add(mSnoozeItem);
         }
-        mInfoItem = createInfoItem(mContext);
-        if (!NotificationUtils.useNewInterruptionModel(mContext)) {
-            mLeftMenuItems.add(mInfoItem);
-        }
-
         mAppOpsItem = createAppOpsItem(mContext);
-        mLeftMenuItems.add(mAppOpsItem);
-
         if (NotificationUtils.useNewInterruptionModel(mContext)) {
-            if (!mParent.getIsNonblockable()) {
-                mRightMenuItems.add(createBlockItem(mContext, mInfoItem.getGutsView()));
-            }
-            // TODO(kprevas): this is duplicated logic
-            // but it's currently spread across NotificationGutsManager and NotificationInfo.
-            // Try to consolidate and reuse here.
-            boolean canToggleSilent = !mParent.getIsNonblockable()
-                    && !isForeground
-                    && mParent.getEntry().noisy;
-            if (canToggleSilent) {
-                int channelImportance = mParent.getEntry().channel.getImportance();
-                int effectiveImportance =
-                        channelImportance == NotificationManager.IMPORTANCE_UNSPECIFIED
-                                ? mParent.getEntry().importance : channelImportance;
-                mRightMenuItems.add(createToggleSilentItem(mContext, mInfoItem.getGutsView(),
-                        effectiveImportance < NotificationManager.IMPORTANCE_DEFAULT));
-            }
+            int channelImportance = mParent.getEntry().channel.getImportance();
+            int effectiveImportance =
+                    channelImportance == NotificationManager.IMPORTANCE_UNSPECIFIED
+                            ? mParent.getEntry().importance : channelImportance;
+            mInfoItem = createInfoItem(mContext,
+                    effectiveImportance < NotificationManager.IMPORTANCE_DEFAULT);
         } else {
-            mRightMenuItems.addAll(mLeftMenuItems);
+            mInfoItem = createInfoItem(mContext);
+        }
+
+        if (!NotificationUtils.useNewInterruptionModel(mContext)) {
+            if (!isForeground) {
+                mRightMenuItems.add(mSnoozeItem);
+            }
+            mRightMenuItems.add(mInfoItem);
+            mRightMenuItems.add(mAppOpsItem);
+            mLeftMenuItems.addAll(mRightMenuItems);
+        } else {
+            mRightMenuItems.add(mInfoItem);
+            mRightMenuItems.add(mAppOpsItem);
+            if (!isForeground) {
+                mRightMenuItems.add(mSnoozeItem);
+            }
         }
 
         populateMenuViews();
@@ -367,6 +359,9 @@
     public void onSnapOpen() {
         mMenuSnapped = true;
         mMenuSnappedOnLeft = isMenuOnLeft();
+        if (mAlpha == 0f && mParent != null) {
+            fadeInMenu(mParent.getWidth());
+        }
         if (mMenuListener != null) {
             mMenuListener.onMenuShown(getParent());
         }
@@ -631,13 +626,24 @@
         return snooze;
     }
 
-    static NotificationInfoMenuItem createInfoItem(Context context) {
+    static NotificationMenuItem createInfoItem(Context context) {
         Resources res = context.getResources();
         String infoDescription = res.getString(R.string.notification_menu_gear_description);
         NotificationInfo infoContent = (NotificationInfo) LayoutInflater.from(context).inflate(
                 R.layout.notification_info, null, false);
-        return new NotificationInfoMenuItem(context, infoDescription, infoContent,
-                R.drawable.ic_settings, ACTION_NONE);
+        return new NotificationMenuItem(context, infoDescription, infoContent,
+                R.drawable.ic_settings);
+    }
+
+    static NotificationMenuItem createInfoItem(Context context, boolean isCurrentlySilent) {
+        Resources res = context.getResources();
+        String infoDescription = res.getString(R.string.notification_menu_gear_description);
+        NotificationInfo infoContent = (NotificationInfo) LayoutInflater.from(context).inflate(
+                R.layout.notification_info, null, false);
+        int iconResId = isCurrentlySilent
+                ? R.drawable.ic_notifications_alert
+                : R.drawable.ic_notifications_silence;
+        return new NotificationMenuItem(context, infoDescription, infoContent, iconResId);
     }
 
     static MenuItem createAppOpsItem(Context context) {
@@ -648,29 +654,6 @@
         return info;
     }
 
-    private static MenuItem createBlockItem(Context context, NotificationInfo gutsView) {
-        return new NotificationInfoMenuItem(
-                context,
-                context.getResources().getString(R.string.inline_stop_button),
-                gutsView,
-                R.drawable.ic_notification_block,
-                ACTION_BLOCK);
-    }
-
-    private static MenuItem createToggleSilentItem(Context context, NotificationInfo gutsView,
-            boolean isCurrentlySilent) {
-        return new NotificationInfoMenuItem(
-                context,
-                isCurrentlySilent
-                        ? context.getResources().getString(R.string.inline_silent_button_alert)
-                        : context.getResources().getString(R.string.inline_silent_button_silent),
-                gutsView,
-                isCurrentlySilent
-                        ? R.drawable.ic_notifications_alert
-                        : R.drawable.ic_notifications_silence,
-                ACTION_TOGGLE_SILENT);
-    }
-
     private void addMenuView(MenuItem item, ViewGroup parent) {
         View menuView = item.getMenuView();
         if (menuView != null) {
@@ -786,23 +769,4 @@
             return mContentDescription;
         }
     }
-
-    /** A {@link NotificationMenuItem} with an associated {@link NotificationInfoAction}. */
-    public static class NotificationInfoMenuItem extends NotificationMenuItem {
-
-        @NotificationInfoAction
-        int mAction;
-
-        public NotificationInfoMenuItem(Context context, String contentDescription,
-                NotificationInfo content, int iconResId,
-                @NotificationInfoAction int action) {
-            super(context, contentDescription, content, iconResId);
-            this.mAction = action;
-        }
-
-        @Override
-        public NotificationInfo getGutsView() {
-            return (NotificationInfo) super.getGutsView();
-        }
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
index ff1a6fc..670908f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
@@ -40,7 +40,7 @@
 
     private static final int NO_SECTION_BOUNDARY = -1;
 
-    private ArrayList<View> mDraggedViews = new ArrayList<>();
+    private ArrayList<ExpandableView> mDraggedViews = new ArrayList<>();
     private int mScrollY;
     private boolean mDimmed;
     private ActivatableNotificationView mActivatedChild;
@@ -131,7 +131,8 @@
         this.mScrollY = scrollY;
     }
 
-    public void onBeginDrag(View view) {
+    /** Call when dragging begins. */
+    public void onBeginDrag(ExpandableView view) {
         mDraggedViews.add(view);
     }
 
@@ -139,7 +140,7 @@
         mDraggedViews.remove(view);
     }
 
-    public ArrayList<View> getDraggedViews() {
+    public ArrayList<ExpandableView> getDraggedViews() {
         return mDraggedViews;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AnimationFilter.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AnimationFilter.java
index ba56a94..507cf07 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AnimationFilter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AnimationFilter.java
@@ -38,7 +38,6 @@
     boolean animateDimmed;
     boolean animateDark;
     boolean animateHideSensitive;
-    public boolean animateShadowAlpha;
     boolean hasDelays;
     boolean hasGoToFullShadeEvent;
     long customDelay;
@@ -100,11 +99,6 @@
         return this;
     }
 
-    public AnimationFilter animateShadowAlpha() {
-        animateShadowAlpha = true;
-        return this;
-    }
-
     public AnimationFilter animateY(View view) {
         animateYViews.add(view);
         return this;
@@ -157,7 +151,6 @@
         animateDimmed |= filter.animateDimmed;
         animateDark |= filter.animateDark;
         animateHideSensitive |= filter.animateHideSensitive;
-        animateShadowAlpha |= filter.animateShadowAlpha;
         hasDelays |= filter.hasDelays;
         mAnimatedProperties.addAll(filter.mAnimatedProperties);
     }
@@ -169,7 +162,6 @@
         animateYViews.clear();
         animateZ = false;
         animateHeight = false;
-        animateShadowAlpha = false;
         animateTopInset = false;
         animateDimmed = false;
         animateDark = false;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ExpandableViewState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ExpandableViewState.java
index 8c1a788..f28e556 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ExpandableViewState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ExpandableViewState.java
@@ -34,13 +34,10 @@
 
     private static final int TAG_ANIMATOR_HEIGHT = R.id.height_animator_tag;
     private static final int TAG_ANIMATOR_TOP_INSET = R.id.top_inset_animator_tag;
-    private static final int TAG_ANIMATOR_SHADOW_ALPHA = R.id.shadow_alpha_animator_tag;
     private static final int TAG_END_HEIGHT = R.id.height_animator_end_value_tag;
     private static final int TAG_END_TOP_INSET = R.id.top_inset_animator_end_value_tag;
-    private static final int TAG_END_SHADOW_ALPHA = R.id.shadow_alpha_animator_end_value_tag;
     private static final int TAG_START_HEIGHT = R.id.height_animator_start_value_tag;
     private static final int TAG_START_TOP_INSET = R.id.top_inset_animator_start_value_tag;
-    private static final int TAG_START_SHADOW_ALPHA = R.id.shadow_alpha_animator_start_value_tag;
 
     // These are flags such that we can create masks for filtering.
 
@@ -91,7 +88,6 @@
     public boolean dark;
     public boolean hideSensitive;
     public boolean belowSpeedBump;
-    public float shadowAlpha;
     public boolean inShelf;
 
     /**
@@ -125,7 +121,6 @@
             ExpandableViewState svs = (ExpandableViewState) viewState;
             height = svs.height;
             dimmed = svs.dimmed;
-            shadowAlpha = svs.shadowAlpha;
             dark = svs.dark;
             hideSensitive = svs.hideSensitive;
             belowSpeedBump = svs.belowSpeedBump;
@@ -153,14 +148,6 @@
                 expandableView.setActualHeight(newHeight, false /* notifyListeners */);
             }
 
-            float shadowAlpha = expandableView.getShadowAlpha();
-            float newShadowAlpha = this.shadowAlpha;
-
-            // apply shadowAlpha
-            if (shadowAlpha != newShadowAlpha) {
-                expandableView.setShadowAlpha(newShadowAlpha);
-            }
-
             // apply dimming
             expandableView.setDimmed(this.dimmed, false /* animate */);
 
@@ -205,13 +192,6 @@
             abortAnimation(child, TAG_ANIMATOR_HEIGHT);
         }
 
-        // start shadow alpha animation
-        if (this.shadowAlpha != expandableView.getShadowAlpha()) {
-            startShadowAlphaAnimation(expandableView, properties);
-        } else {
-            abortAnimation(child, TAG_ANIMATOR_SHADOW_ALPHA);
-        }
-
         // start top inset animation
         if (this.clipTopAmount != expandableView.getClipTopAmount()) {
             startInsetAnimation(expandableView, properties);
@@ -328,69 +308,6 @@
         child.setActualHeightAnimating(true);
     }
 
-    private void startShadowAlphaAnimation(final ExpandableView child,
-            AnimationProperties properties) {
-        Float previousStartValue = getChildTag(child, TAG_START_SHADOW_ALPHA);
-        Float previousEndValue = getChildTag(child, TAG_END_SHADOW_ALPHA);
-        float newEndValue = this.shadowAlpha;
-        if (previousEndValue != null && previousEndValue == newEndValue) {
-            return;
-        }
-        ValueAnimator previousAnimator = getChildTag(child, TAG_ANIMATOR_SHADOW_ALPHA);
-        AnimationFilter filter = properties.getAnimationFilter();
-        if (!filter.animateShadowAlpha) {
-            // just a local update was performed
-            if (previousAnimator != null) {
-                // we need to increase all animation keyframes of the previous animator by the
-                // relative change to the end value
-                PropertyValuesHolder[] values = previousAnimator.getValues();
-                float relativeDiff = newEndValue - previousEndValue;
-                float newStartValue = previousStartValue + relativeDiff;
-                values[0].setFloatValues(newStartValue, newEndValue);
-                child.setTag(TAG_START_SHADOW_ALPHA, newStartValue);
-                child.setTag(TAG_END_SHADOW_ALPHA, newEndValue);
-                previousAnimator.setCurrentPlayTime(previousAnimator.getCurrentPlayTime());
-                return;
-            } else {
-                // no new animation needed, let's just apply the value
-                child.setShadowAlpha(newEndValue);
-                return;
-            }
-        }
-
-        ValueAnimator animator = ValueAnimator.ofFloat(child.getShadowAlpha(), newEndValue);
-        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
-            @Override
-            public void onAnimationUpdate(ValueAnimator animation) {
-                child.setShadowAlpha((float) animation.getAnimatedValue());
-            }
-        });
-        animator.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
-        long newDuration = cancelAnimatorAndGetNewDuration(properties.duration, previousAnimator);
-        animator.setDuration(newDuration);
-        if (properties.delay > 0 && (previousAnimator == null
-                || previousAnimator.getAnimatedFraction() == 0)) {
-            animator.setStartDelay(properties.delay);
-        }
-        AnimatorListenerAdapter listener = properties.getAnimationFinishListener();
-        if (listener != null) {
-            animator.addListener(listener);
-        }
-        // remove the tag when the animation is finished
-        animator.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                child.setTag(TAG_ANIMATOR_SHADOW_ALPHA, null);
-                child.setTag(TAG_START_SHADOW_ALPHA, null);
-                child.setTag(TAG_END_SHADOW_ALPHA, null);
-            }
-        });
-        startAnimator(animator, listener);
-        child.setTag(TAG_ANIMATOR_SHADOW_ALPHA, animator);
-        child.setTag(TAG_START_SHADOW_ALPHA, child.getShadowAlpha());
-        child.setTag(TAG_END_SHADOW_ALPHA, newEndValue);
-    }
-
     private void startInsetAnimation(final ExpandableView child, AnimationProperties properties) {
         Integer previousStartValue = getChildTag(child, TAG_START_TOP_INSET);
         Integer previousEndValue = getChildTag(child, TAG_END_TOP_INSET);
@@ -476,10 +393,6 @@
         if (animator != null) {
             animator.cancel();
         }
-        animator = getChildTag(view, TAG_ANIMATOR_SHADOW_ALPHA);
-        if (animator != null) {
-            animator.cancel();
-        }
         animator = getChildTag(view, TAG_ANIMATOR_TOP_INSET);
         if (animator != null) {
             animator.cancel();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
index 74b4aa2a..0f38bd9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
@@ -274,7 +274,7 @@
         updateGroupOverflow();
         row.setContentTransformationAmount(0, false /* isLastChild */);
         // It doesn't make sense to keep old animations around, lets cancel them!
-        ExpandableNotificationRow.NotificationViewState viewState = row.getViewState();
+        ExpandableViewState viewState = row.getViewState();
         if (viewState != null) {
             viewState.cancelAnimations(row);
             row.cancelAppearDrawing();
@@ -562,12 +562,10 @@
 
     /**
      * Update the state of all its children based on a linear layout algorithm.
-     *  @param resultState the state to update
      * @param parentState the state of the parent
      * @param ambientState
      */
-    public void getState(StackScrollState resultState, ExpandableViewState parentState,
-            AmbientState ambientState) {
+    public void updateState(ExpandableViewState parentState, AmbientState ambientState) {
         int childCount = mChildren.size();
         int yPosition = mNotificationHeaderMargin + mCurrentHeaderTranslation;
         boolean firstChild = true;
@@ -605,7 +603,7 @@
                 firstChild = false;
             }
 
-            ExpandableViewState childState = resultState.getViewStateForView(child);
+            ExpandableViewState childState = child.getViewState();
             int intrinsicHeight = child.getIntrinsicHeight();
             childState.height = intrinsicHeight;
             childState.yTranslation = yPosition + launchTransitionCompensation;
@@ -639,7 +637,7 @@
         if (mOverflowNumber != null) {
             ExpandableNotificationRow overflowView = mChildren.get(Math.min(
                     getMaxAllowedVisibleChildren(true /* likeCollapsed */), childCount) - 1);
-            mGroupOverFlowState.copyFrom(resultState.getViewStateForView(overflowView));
+            mGroupOverFlowState.copyFrom(overflowView.getViewState());
 
             if (mContainingNotification.isOnAmbient()) {
                 mGroupOverFlowState.alpha = 0.0f;
@@ -724,7 +722,8 @@
         return NUMBER_OF_CHILDREN_WHEN_COLLAPSED;
     }
 
-    public void applyState(StackScrollState state) {
+    /** Applies state to children. */
+    public void applyState() {
         int childCount = mChildren.size();
         ViewState tmpState = new ViewState();
         float expandFraction = 0.0f;
@@ -737,7 +736,7 @@
                 && !mHideDividersDuringExpand);
         for (int i = 0; i < childCount; i++) {
             ExpandableNotificationRow child = mChildren.get(i);
-            ExpandableViewState viewState = state.getViewStateForView(child);
+            ExpandableViewState viewState = child.getViewState();
             viewState.applyToView(child);
 
             // layout the divider
@@ -799,14 +798,14 @@
      * This is called when the children expansion has changed and positions the children properly
      * for an appear animation.
      *
-     * @param state the new state we animate to
      */
-    public void prepareExpansionChanged(StackScrollState state) {
+    public void prepareExpansionChanged() {
         // TODO: do something that makes sense, like placing the invisible views correctly
         return;
     }
 
-    public void startAnimationToState(StackScrollState state, AnimationProperties properties) {
+    /** Animate to a given state. */
+    public void startAnimationToState(AnimationProperties properties) {
         int childCount = mChildren.size();
         ViewState tmpState = new ViewState();
         float expandFraction = getGroupExpandFraction();
@@ -816,7 +815,7 @@
                 && !mHideDividersDuringExpand);
         for (int i = childCount - 1; i >= 0; i--) {
             ExpandableNotificationRow child = mChildren.get(i);
-            ExpandableViewState viewState = state.getViewStateForView(child);
+            ExpandableViewState viewState = child.getViewState();
             viewState.animateTo(child, properties);
 
             // layout the divider
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationListContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationListContainer.java
index 4d100a4..f0a2653 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationListContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationListContainer.java
@@ -45,34 +45,31 @@
 
     /**
      * Change the position of child to a new location
-     *
-     * @param child the view to change the position for
+     *  @param child the view to change the position for
      * @param newIndex the new index
      */
-    void changeViewPosition(View child, int newIndex);
+    void changeViewPosition(ExpandableView child, int newIndex);
 
     /**
      * Called when a child was added to a group.
      *
      * @param row row of the group child that was added
      */
-    void notifyGroupChildAdded(View row);
+    void notifyGroupChildAdded(ExpandableView row);
 
     /**
      * Called when a child was removed from a group.
-     *
-     * @param row row of the child that was removed
+     *  @param row row of the child that was removed
      * @param childrenContainer ViewGroup of the group that the child was removed from
      */
-    void notifyGroupChildRemoved(View row, ViewGroup childrenContainer);
+    void notifyGroupChildRemoved(ExpandableView row, ViewGroup childrenContainer);
 
     /**
      * Generate an animation for an added child view.
-     *
-     * @param child The view to be added.
+     *  @param child The view to be added.
      * @param fromMoreCard Whether this add is coming from the "more" card on lockscreen.
      */
-    void generateAddAnimation(View child, boolean fromMoreCard);
+    void generateAddAnimation(ExpandableView child, boolean fromMoreCard);
 
     /**
      * Generate a child order changed event.
@@ -118,9 +115,9 @@
     /**
      * Handle snapping a non-dismissable row back if the user tried to dismiss it.
      *
-     * @param row row to snap back
+     * @param entry the entry whose row needs to snap back
      */
-    void snapViewIfNeeded(ExpandableNotificationRow row);
+    void snapViewIfNeeded(NotificationData.Entry entry);
 
     /**
      * Get the view parent for a notification entry. For example, NotificationStackScrollLayout.
@@ -149,9 +146,9 @@
      * Called when a notification is removed from the shade. This cleans up the state for a
      * given view.
      *
-     * @param view view to clean up view state for
+     * @param entry the entry whose view's view state needs to be cleaned up (say that 5 times fast)
      */
-    void cleanUpViewState(View view);
+    void cleanUpViewStateForEntry(NotificationData.Entry entry);
 
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
index c867a41..4f0831f1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
@@ -16,13 +16,12 @@
 
 package com.android.systemui.statusbar.notification.stack;
 
-import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout
-        .NUM_SECTIONS;
+import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.NUM_SECTIONS;
 
-import android.view.View;
-
+import com.android.systemui.statusbar.notification.NotificationData;
 import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.ExpandableView;
 import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
 
 import java.util.HashSet;
@@ -37,7 +36,7 @@
     private ActivatableNotificationView[] mLastInSectionViews;
     private ActivatableNotificationView[] mTmpFirstInSectionViews;
     private ActivatableNotificationView[] mTmpLastInSectionViews;
-    private HashSet<View> mAnimatedChildren;
+    private HashSet<ExpandableView> mAnimatedChildren;
     private Runnable mRoundingChangedCallback;
     private ExpandableNotificationRow mTrackedHeadsUp;
     private float mAppearFraction;
@@ -50,13 +49,13 @@
     }
 
     @Override
-    public void onHeadsUpPinned(ExpandableNotificationRow headsUp) {
-        updateView(headsUp, false /* animate */);
+    public void onHeadsUpPinned(NotificationData.Entry headsUp) {
+        updateView(headsUp.getRow(), false /* animate */);
     }
 
     @Override
-    public void onHeadsUpUnPinned(ExpandableNotificationRow headsUp) {
-        updateView(headsUp, true /* animate */);
+    public void onHeadsUpUnPinned(NotificationData.Entry headsUp) {
+        updateView(headsUp.getRow(), true /* animate */);
     }
 
     public void onHeadsupAnimatingAwayChanged(ExpandableNotificationRow row,
@@ -211,7 +210,7 @@
         return anyChanged;
     }
 
-    public void setAnimatedChildren(HashSet<View> animatedChildren) {
+    public void setAnimatedChildren(HashSet<ExpandableView> animatedChildren) {
         mAnimatedChildren = animatedChildren;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index ff31b261..5d640e0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -18,6 +18,8 @@
 
 import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator
         .ExpandAnimationParameters;
+import static com.android.systemui.statusbar.notification.stack.StackStateAnimator
+        .ANIMATION_DURATION_SWIPE;
 import static com.android.systemui.statusbar.phone.NotificationIconAreaController.LOW_PRIORITY;
 
 import android.animation.Animator;
@@ -208,18 +210,12 @@
      */
     protected final StackScrollAlgorithm mStackScrollAlgorithm;
 
-    /**
-     * The current State this Layout is in
-     */
-    private StackScrollState mCurrentStackScrollState = new StackScrollState(this);
     private final AmbientState mAmbientState;
     private NotificationGroupManager mGroupManager;
-    private HashSet<View> mChildrenToAddAnimated = new HashSet<>();
+    private HashSet<ExpandableView> mChildrenToAddAnimated = new HashSet<>();
     private ArrayList<View> mAddedHeadsUpChildren = new ArrayList<>();
-    private ArrayList<View> mChildrenToRemoveAnimated = new ArrayList<>();
-    private ArrayList<View> mSnappedBackChildren = new ArrayList<>();
-    private ArrayList<View> mDragAnimPendingChildren = new ArrayList<>();
-    private ArrayList<View> mChildrenChangingPositions = new ArrayList<>();
+    private ArrayList<ExpandableView> mChildrenToRemoveAnimated = new ArrayList<>();
+    private ArrayList<ExpandableView> mChildrenChangingPositions = new ArrayList<>();
     private HashSet<View> mFromMoreCardAdditions = new HashSet<>();
     private ArrayList<AnimationEvent> mAnimationEvents = new ArrayList<>();
     private ArrayList<View> mSwipedOutViews = new ArrayList<>();
@@ -277,7 +273,7 @@
     private boolean mDontReportNextOverScroll;
     private boolean mDontClampNextScroll;
     private boolean mNeedViewResizeAnimation;
-    private View mExpandedGroupView;
+    private ExpandableView mExpandedGroupView;
     private boolean mEverythingNeedsAnimation;
 
     /**
@@ -384,7 +380,7 @@
     private boolean mGroupExpandedForMeasure;
     private boolean mScrollable;
     private View mForcedScroll;
-    private View mNeedingPulseAnimation;
+    private ExpandableView mNeedingPulseAnimation;
 
     /**
      * @see #setDarkAmount(float, float)
@@ -602,12 +598,12 @@
             public void setRemoteInputActive(NotificationData.Entry entry,
                     boolean remoteInputActive) {
                 mHeadsUpManager.setRemoteInputActive(entry, remoteInputActive);
-                entry.row.notifyHeightChanged(true /* needsAnimation */);
+                entry.notifyHeightChanged(true /* needsAnimation */);
                 updateFooter();
             }
 
             public void lockScrollTo(NotificationData.Entry entry) {
-                NotificationStackScrollLayout.this.lockScrollTo(entry.row);
+                NotificationStackScrollLayout.this.lockScrollTo(entry.getRow());
             }
 
             public void requestDisallowLongPressAndDismiss() {
@@ -899,8 +895,10 @@
 
     @Override
     @ShadeViewRefactor(RefactorComponent.LAYOUT_ALGORITHM)
-    public boolean isInVisibleLocation(ExpandableNotificationRow row) {
-        ExpandableViewState childViewState = mCurrentStackScrollState.getViewStateForView(row);
+    public boolean isInVisibleLocation(NotificationData.Entry entry) {
+        ExpandableNotificationRow row = entry.getRow();
+        ExpandableViewState childViewState = row.getViewState();
+
         if (childViewState == null) {
             return false;
         }
@@ -946,7 +944,7 @@
                 ? 0
                 : mScroller.getCurrVelocity());
         mAmbientState.setScrollY(mOwnScrollY);
-        mStackScrollAlgorithm.getStackScrollState(mAmbientState, mCurrentStackScrollState);
+        mStackScrollAlgorithm.resetViewStates(mAmbientState);
         if (!isCurrentlyAnimating() && !mNeedsAnimation) {
             applyCurrentState();
         } else {
@@ -1215,12 +1213,12 @@
         if (topEntry == null) {
             return 0;
         }
-        ExpandableNotificationRow row = topEntry.row;
+        ExpandableNotificationRow row = topEntry.getRow();
         if (row.isChildInGroup()) {
-            final ExpandableNotificationRow groupSummary
+            final NotificationData.Entry groupSummary
                     = mGroupManager.getGroupSummary(row.getStatusBarNotification());
             if (groupSummary != null) {
-                row = groupSummary;
+                row = groupSummary.getRow();
             }
         }
         return row.getPinnedHeadsUpHeight();
@@ -1392,11 +1390,12 @@
                     && touchY >= top && touchY <= bottom && touchX >= left && touchX <= right) {
                 if (slidingChild instanceof ExpandableNotificationRow) {
                     ExpandableNotificationRow row = (ExpandableNotificationRow) slidingChild;
+                    NotificationData.Entry entry = row.getEntry();
                     if (!mIsExpanded && row.isHeadsUp() && row.isPinned()
-                            && mHeadsUpManager.getTopEntry().row != row
+                            && mHeadsUpManager.getTopEntry().getRow() != row
                             && mGroupManager.getGroupSummary(
-                            mHeadsUpManager.getTopEntry().row.getStatusBarNotification())
-                            != row) {
+                                mHeadsUpManager.getTopEntry().notification)
+                            != entry) {
                         continue;
                     }
                     return row.getViewAtPosition(touchY - childTop);
@@ -1526,7 +1525,8 @@
 
     @Override
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
-    public void snapViewIfNeeded(ExpandableNotificationRow child) {
+    public void snapViewIfNeeded(NotificationData.Entry entry) {
+        ExpandableNotificationRow child = entry.getRow();
         boolean animate = mIsExpanded || isPinnedHeadsUp(child);
         // If the child is showing the notification menu snap to that
         float targetLeft = child.getProvider().isMenuVisible() ? child.getTranslation() : 0;
@@ -1936,12 +1936,12 @@
      * @return the last child which has visibility unequal to GONE
      */
     @ShadeViewRefactor(RefactorComponent.COORDINATOR)
-    public View getLastChildNotGone() {
+    public ExpandableView getLastChildNotGone() {
         int childCount = getChildCount();
         for (int i = childCount - 1; i >= 0; i--) {
             View child = getChildAt(i);
             if (child.getVisibility() != View.GONE && child != mShelf) {
-                return child;
+                return (ExpandableView) child;
             }
         }
         return null;
@@ -2510,35 +2510,33 @@
         // we only call our internal methods if this is actually a removal and not just a
         // notification which becomes a child notification
         if (!mChildTransferInProgress) {
-            onViewRemovedInternal(child, this);
+            onViewRemovedInternal((ExpandableView) child, this);
         }
     }
 
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
     @Override
-    public void cleanUpViewState(View child) {
+    public void cleanUpViewStateForEntry(NotificationData.Entry entry) {
+        View child = entry.getRow();
         if (child == mSwipeHelper.getTranslatingParentView()) {
             mSwipeHelper.clearTranslatingParentView();
         }
-        mCurrentStackScrollState.removeViewStateForView(child);
     }
 
     @ShadeViewRefactor(RefactorComponent.COORDINATOR)
-    private void onViewRemovedInternal(View child, ViewGroup container) {
+    private void onViewRemovedInternal(ExpandableView child, ViewGroup container) {
         if (mChangePositionInProgress) {
             // This is only a position change, don't do anything special
             return;
         }
-        ExpandableView expandableView = (ExpandableView) child;
-        expandableView.setOnHeightChangedListener(null);
-        mCurrentStackScrollState.removeViewStateForView(child);
-        updateScrollStateForRemovedChild(expandableView);
+        child.setOnHeightChangedListener(null);
+        updateScrollStateForRemovedChild(child);
         boolean animationGenerated = generateRemoveAnimation(child);
         if (animationGenerated) {
             if (!mSwipedOutViews.contains(child)
-                    || Math.abs(expandableView.getTranslation()) != expandableView.getWidth()) {
+                    || Math.abs(child.getTranslation()) != child.getWidth()) {
                 container.addTransientView(child, 0);
-                expandableView.setTransientContainer(container);
+                child.setTransientContainer(container);
             }
         } else {
             mSwipedOutViews.remove(child);
@@ -2582,14 +2580,14 @@
      * @return Whether an animation was generated.
      */
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
-    private boolean generateRemoveAnimation(View child) {
+    private boolean generateRemoveAnimation(ExpandableView child) {
         if (removeRemovedChildFromHeadsUpChangeAnimations(child)) {
             mAddedHeadsUpChildren.remove(child);
             return false;
         }
         if (isClickedHeadsUp(child)) {
             // An animation is already running, add it transiently
-            mClearTransientViewsWhenFinished.add((ExpandableView) child);
+            mClearTransientViewsWhenFinished.add(child);
             return true;
         }
         if (mIsExpanded && mAnimationsEnabled && !isChildInInvisibleGroup(child)) {
@@ -2646,9 +2644,9 @@
     private boolean isChildInInvisibleGroup(View child) {
         if (child instanceof ExpandableNotificationRow) {
             ExpandableNotificationRow row = (ExpandableNotificationRow) child;
-            ExpandableNotificationRow groupSummary =
+            NotificationData.Entry groupSummary =
                     mGroupManager.getGroupSummary(row.getStatusBarNotification());
-            if (groupSummary != null && groupSummary != row) {
+            if (groupSummary != null && groupSummary.getRow() != row) {
                 return row.getVisibility() == View.INVISIBLE;
             }
         }
@@ -2763,13 +2761,17 @@
     @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
     public void onViewAdded(View child) {
         super.onViewAdded(child);
-        onViewAddedInternal(child);
+        onViewAddedInternal((ExpandableView) child);
     }
 
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
     private void updateFirstAndLastBackgroundViews() {
         NotificationSection firstSection = getFirstVisibleSection();
         NotificationSection lastSection = getLastVisibleSection();
+        ActivatableNotificationView previousFirstChild =
+                firstSection == null ? null : firstSection.getFirstVisibleChild();
+        ActivatableNotificationView previousLastChild =
+                lastSection == null ? null : lastSection.getLastVisibleChild();
 
         ActivatableNotificationView firstChild = getFirstChildWithBackground();
         ActivatableNotificationView lastChild = getLastChildWithBackground();
@@ -2777,10 +2779,8 @@
                 mSections[0], mSections[1], firstChild, lastChild);
 
         if (mAnimationsEnabled && mIsExpanded) {
-            mAnimateNextBackgroundTop =
-                    firstSection == null || firstChild != firstSection.getFirstVisibleChild();
-            mAnimateNextBackgroundBottom =
-                    lastSection == null || lastChild != lastSection.getLastVisibleChild();
+            mAnimateNextBackgroundTop = firstChild != previousFirstChild;
+            mAnimateNextBackgroundBottom = lastChild != previousLastChild;
             mAnimateNextSectionBoundsChange = sectionViewsChanged;
         } else {
             mAnimateNextBackgroundTop = false;
@@ -2831,31 +2831,28 @@
     }
 
     @ShadeViewRefactor(RefactorComponent.COORDINATOR)
-    private void onViewAddedInternal(View child) {
+    private void onViewAddedInternal(ExpandableView child) {
         updateHideSensitiveForChild(child);
-        ((ExpandableView) child).setOnHeightChangedListener(this);
+        child.setOnHeightChangedListener(this);
         generateAddAnimation(child, false /* fromMoreCard */);
         updateAnimationState(child);
         updateChronometerForChild(child);
     }
 
     @ShadeViewRefactor(RefactorComponent.COORDINATOR)
-    private void updateHideSensitiveForChild(View child) {
-        if (child instanceof ExpandableView) {
-            ExpandableView expandableView = (ExpandableView) child;
-            expandableView.setHideSensitiveForIntrinsicHeight(mAmbientState.isHideSensitive());
-        }
+    private void updateHideSensitiveForChild(ExpandableView child) {
+        child.setHideSensitiveForIntrinsicHeight(mAmbientState.isHideSensitive());
     }
 
     @Override
     @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
-    public void notifyGroupChildRemoved(View row, ViewGroup childrenContainer) {
+    public void notifyGroupChildRemoved(ExpandableView row, ViewGroup childrenContainer) {
         onViewRemovedInternal(row, childrenContainer);
     }
 
     @Override
     @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
-    public void notifyGroupChildAdded(View row) {
+    public void notifyGroupChildAdded(ExpandableView row) {
         onViewAddedInternal(row);
     }
 
@@ -2927,7 +2924,7 @@
 
     @Override
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
-    public void generateAddAnimation(View child, boolean fromMoreCard) {
+    public void generateAddAnimation(ExpandableView child, boolean fromMoreCard) {
         if (mIsExpanded && mAnimationsEnabled && !mChangePositionInProgress) {
             // Generate Animations
             mChildrenToAddAnimated.add(child);
@@ -2944,7 +2941,7 @@
 
     @Override
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
-    public void changeViewPosition(View child, int newIndex) {
+    public void changeViewPosition(ExpandableView child, int newIndex) {
         int currentIndex = indexOfChild(child);
 
         if (currentIndex == -1) {
@@ -2983,8 +2980,7 @@
         }
         if (!mAnimationEvents.isEmpty() || isCurrentlyAnimating()) {
             setAnimationRunning(true);
-            mStateAnimator.startAnimationForEvents(mAnimationEvents, mCurrentStackScrollState,
-                    mGoToFullShadeDelay);
+            mStateAnimator.startAnimationForEvents(mAnimationEvents, mGoToFullShadeDelay);
             mAnimationEvents.clear();
             updateBackground();
             updateViewShadows();
@@ -3001,8 +2997,6 @@
         generateChildRemovalEvents();
         generateChildAdditionEvents();
         generatePositionChangeEvents();
-        generateSnapBackEvents();
-        generateDragEvents();
         generateTopPaddingEvent();
         generateActivateEvent();
         generateDimmedEvent();
@@ -3033,7 +3027,7 @@
                     continue;
                 }
             } else {
-                ExpandableViewState viewState = mCurrentStackScrollState.getViewStateForView(row);
+                ExpandableViewState viewState = row.getViewState();
                 if (viewState == null) {
                     // A view state was never generated for this view, so we don't need to animate
                     // this. This may happen with notification children.
@@ -3098,26 +3092,8 @@
     }
 
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
-    private void generateSnapBackEvents() {
-        for (View child : mSnappedBackChildren) {
-            mAnimationEvents.add(new AnimationEvent(child,
-                    AnimationEvent.ANIMATION_TYPE_SNAP_BACK));
-        }
-        mSnappedBackChildren.clear();
-    }
-
-    @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
-    private void generateDragEvents() {
-        for (View child : mDragAnimPendingChildren) {
-            mAnimationEvents.add(new AnimationEvent(child,
-                    AnimationEvent.ANIMATION_TYPE_START_DRAG));
-        }
-        mDragAnimPendingChildren.clear();
-    }
-
-    @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
     private void generateChildRemovalEvents() {
-        for (View child : mChildrenToRemoveAnimated) {
+        for (ExpandableView child : mChildrenToRemoveAnimated) {
             boolean childWasSwipedOut = mSwipedOutViews.contains(child);
 
             // we need to know the view after this one
@@ -3159,7 +3135,7 @@
 
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
     private void generatePositionChangeEvents() {
-        for (View child : mChildrenChangingPositions) {
+        for (ExpandableView child : mChildrenChangingPositions) {
             mAnimationEvents.add(new AnimationEvent(child,
                     AnimationEvent.ANIMATION_TYPE_CHANGE_POSITION));
         }
@@ -3173,7 +3149,7 @@
 
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
     private void generateChildAdditionEvents() {
-        for (View child : mChildrenToAddAnimated) {
+        for (ExpandableView child : mChildrenToAddAnimated) {
             if (mFromMoreCardAdditions.contains(child)) {
                 mAnimationEvents.add(new AnimationEvent(child,
                         AnimationEvent.ANIMATION_TYPE_ADD,
@@ -3265,7 +3241,7 @@
 
     @ShadeViewRefactor(RefactorComponent.LAYOUT_ALGORITHM)
     protected StackScrollAlgorithm createStackScrollAlgorithm(Context context) {
-        return new StackScrollAlgorithm(context);
+        return new StackScrollAlgorithm(context, this);
     }
 
     /**
@@ -3930,6 +3906,11 @@
             mStatusBar.resetUserExpandedStates();
             clearTemporaryViews();
             clearUserLockedViews();
+            ArrayList<ExpandableView> draggedViews = mAmbientState.getDraggedViews();
+            if (draggedViews.size() > 0) {
+                draggedViews.clear();
+                updateContinuousShadowDrawing();
+            }
         }
     }
 
@@ -4209,7 +4190,12 @@
 
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
     private void applyCurrentState() {
-        mCurrentStackScrollState.apply();
+        int numChildren = getChildCount();
+        for (int i = 0; i < numChildren; i++) {
+            ExpandableView child = (ExpandableView) getChildAt(i);
+            child.applyViewState();
+        }
+
         if (mListener != null) {
             mListener.onChildLocationsChanged();
         }
@@ -4557,7 +4543,7 @@
     @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
     public void setGroupManager(NotificationGroupManager groupManager) {
         this.mGroupManager = groupManager;
-        mGroupManager.setOnGroupChangeListener(mOnGroupChangeListener);
+        mGroupManager.addOnGroupChangeListener(mOnGroupChangeListener);
     }
 
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
@@ -4677,6 +4663,11 @@
         mHeadsUpManager.setAnimationStateHandler(this::setHeadsUpGoingAwayAnimationsAllowed);
     }
 
+    public void generateHeadsUpAnimation(NotificationData.Entry entry, boolean isHeadsUp) {
+        ExpandableNotificationRow row = entry.getHeadsUpAnimationView();
+        generateHeadsUpAnimation(row, isHeadsUp);
+    }
+
     @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
     public void generateHeadsUpAnimation(ExpandableNotificationRow row, boolean isHeadsUp) {
         if (mAnimationsEnabled && (isHeadsUp || mHeadsUpGoingAwayAnimationsAllowed)) {
@@ -4948,8 +4939,7 @@
             if (!(child instanceof ExpandableNotificationRow)) {
                 pw.println("  " + child.getClass().getSimpleName());
                 // Notifications dump it's viewstate as part of their dump to support children
-                ExpandableViewState viewState = mCurrentStackScrollState.getViewStateForView(
-                        child);
+                ExpandableViewState viewState = child.getViewState();
                 if (viewState == null) {
                     pw.println("    no viewState!!!");
                 } else {
@@ -4960,12 +4950,19 @@
                 }
             }
         }
-        pw.println("  Transient Views: " + childCount);
         int transientViewCount = getTransientViewCount();
+        pw.println("  Transient Views: " + transientViewCount);
         for (int i = 0; i < transientViewCount; i++) {
             ExpandableView child = (ExpandableView) getTransientView(i);
             child.dump(fd, pw, args);
         }
+        ArrayList<ExpandableView> draggedViews = mAmbientState.getDraggedViews();
+        int draggedCount = draggedViews.size();
+        pw.println("  Dragged Views: " + draggedCount);
+        for (int i = 0; i < draggedCount; i++) {
+            ExpandableView child = (ExpandableView) draggedViews.get(i);
+            child.dump(fd, pw, args);
+        }
     }
 
     @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
@@ -5098,7 +5095,7 @@
             if (i == 0) {
                 endRunnable = animationFinishAction;
             }
-            dismissViewAnimated(view, endRunnable, totalDelay, 260);
+            dismissViewAnimated(view, endRunnable, totalDelay, ANIMATION_DURATION_SWIPE);
             currentDelay = Math.max(50, currentDelay - rowDelayDecrement);
             totalDelay += currentDelay;
         }
@@ -5280,7 +5277,6 @@
 
                 // ANIMATION_TYPE_ADD
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5289,7 +5285,6 @@
 
                 // ANIMATION_TYPE_REMOVE
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5298,7 +5293,6 @@
 
                 // ANIMATION_TYPE_REMOVE_SWIPED_OUT
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5307,22 +5301,12 @@
 
                 // ANIMATION_TYPE_TOP_PADDING_CHANGED
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
                         .animateDimmed()
                         .animateZ(),
 
-                // ANIMATION_TYPE_START_DRAG
-                new AnimationFilter()
-                        .animateShadowAlpha(),
-
-                // ANIMATION_TYPE_SNAP_BACK
-                new AnimationFilter()
-                        .animateShadowAlpha()
-                        .animateHeight(),
-
                 // ANIMATION_TYPE_ACTIVATED_CHILD
                 new AnimationFilter()
                         .animateZ(),
@@ -5334,7 +5318,6 @@
                 // ANIMATION_TYPE_CHANGE_POSITION
                 new AnimationFilter()
                         .animateAlpha() // maybe the children change positions
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5345,7 +5328,6 @@
 
                 // ANIMATION_TYPE_GO_TO_FULL_SHADE
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5359,7 +5341,6 @@
 
                 // ANIMATION_TYPE_VIEW_RESIZE
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5368,7 +5349,6 @@
                 // ANIMATION_TYPE_GROUP_EXPANSION_CHANGED
                 new AnimationFilter()
                         .animateAlpha()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5376,7 +5356,6 @@
 
                 // ANIMATION_TYPE_HEADS_UP_APPEAR
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5384,7 +5363,6 @@
 
                 // ANIMATION_TYPE_HEADS_UP_DISAPPEAR
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5393,7 +5371,6 @@
 
                 // ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5402,7 +5379,6 @@
 
                 // ANIMATION_TYPE_HEADS_UP_OTHER
                 new AnimationFilter()
-                        .animateShadowAlpha()
                         .animateHeight()
                         .animateTopInset()
                         .animateY()
@@ -5411,7 +5387,6 @@
                 // ANIMATION_TYPE_EVERYTHING
                 new AnimationFilter()
                         .animateAlpha()
-                        .animateShadowAlpha()
                         .animateDark()
                         .animateDimmed()
                         .animateHideSensitive()
@@ -5447,12 +5422,6 @@
                 // ANIMATION_TYPE_TOP_PADDING_CHANGED
                 StackStateAnimator.ANIMATION_DURATION_STANDARD,
 
-                // ANIMATION_TYPE_START_DRAG
-                StackStateAnimator.ANIMATION_DURATION_STANDARD,
-
-                // ANIMATION_TYPE_SNAP_BACK
-                StackStateAnimator.ANIMATION_DURATION_STANDARD,
-
                 // ANIMATION_TYPE_ACTIVATED_CHILD
                 StackStateAnimator.ANIMATION_DURATION_DIMMED_ACTIVATED,
 
@@ -5503,29 +5472,27 @@
         static final int ANIMATION_TYPE_REMOVE = 1;
         static final int ANIMATION_TYPE_REMOVE_SWIPED_OUT = 2;
         static final int ANIMATION_TYPE_TOP_PADDING_CHANGED = 3;
-        static final int ANIMATION_TYPE_START_DRAG = 4;
-        static final int ANIMATION_TYPE_SNAP_BACK = 5;
-        static final int ANIMATION_TYPE_ACTIVATED_CHILD = 6;
-        static final int ANIMATION_TYPE_DIMMED = 7;
-        static final int ANIMATION_TYPE_CHANGE_POSITION = 8;
-        static final int ANIMATION_TYPE_DARK = 9;
-        static final int ANIMATION_TYPE_GO_TO_FULL_SHADE = 10;
-        static final int ANIMATION_TYPE_HIDE_SENSITIVE = 11;
-        static final int ANIMATION_TYPE_VIEW_RESIZE = 12;
-        static final int ANIMATION_TYPE_GROUP_EXPANSION_CHANGED = 13;
-        static final int ANIMATION_TYPE_HEADS_UP_APPEAR = 14;
-        static final int ANIMATION_TYPE_HEADS_UP_DISAPPEAR = 15;
-        static final int ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK = 16;
-        static final int ANIMATION_TYPE_HEADS_UP_OTHER = 17;
-        static final int ANIMATION_TYPE_EVERYTHING = 18;
-        static final int ANIMATION_TYPE_PULSE_APPEAR = 19;
-        static final int ANIMATION_TYPE_PULSE_DISAPPEAR = 20;
+        static final int ANIMATION_TYPE_ACTIVATED_CHILD = 4;
+        static final int ANIMATION_TYPE_DIMMED = 5;
+        static final int ANIMATION_TYPE_CHANGE_POSITION = 6;
+        static final int ANIMATION_TYPE_DARK = 7;
+        static final int ANIMATION_TYPE_GO_TO_FULL_SHADE = 8;
+        static final int ANIMATION_TYPE_HIDE_SENSITIVE = 9;
+        static final int ANIMATION_TYPE_VIEW_RESIZE = 10;
+        static final int ANIMATION_TYPE_GROUP_EXPANSION_CHANGED = 11;
+        static final int ANIMATION_TYPE_HEADS_UP_APPEAR = 12;
+        static final int ANIMATION_TYPE_HEADS_UP_DISAPPEAR = 13;
+        static final int ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK = 14;
+        static final int ANIMATION_TYPE_HEADS_UP_OTHER = 15;
+        static final int ANIMATION_TYPE_EVERYTHING = 16;
+        static final int ANIMATION_TYPE_PULSE_APPEAR = 17;
+        static final int ANIMATION_TYPE_PULSE_DISAPPEAR = 18;
 
         static final int DARK_ANIMATION_ORIGIN_INDEX_ABOVE = -1;
         static final int DARK_ANIMATION_ORIGIN_INDEX_BELOW = -2;
 
         final long eventStartTime;
-        final View changingView;
+        final ExpandableView mChangingView;
         final int animationType;
         final AnimationFilter filter;
         final long length;
@@ -5533,21 +5500,21 @@
         int darkAnimationOriginIndex;
         boolean headsUpFromBottom;
 
-        AnimationEvent(View view, int type) {
+        AnimationEvent(ExpandableView view, int type) {
             this(view, type, LENGTHS[type]);
         }
 
-        AnimationEvent(View view, int type, AnimationFilter filter) {
+        AnimationEvent(ExpandableView view, int type, AnimationFilter filter) {
             this(view, type, LENGTHS[type], filter);
         }
 
-        AnimationEvent(View view, int type, long length) {
+        AnimationEvent(ExpandableView view, int type, long length) {
             this(view, type, length, FILTERS[type]);
         }
 
-        AnimationEvent(View view, int type, long length, AnimationFilter filter) {
+        AnimationEvent(ExpandableView view, int type, long length, AnimationFilter filter) {
             eventStartTime = AnimationUtils.currentAnimationTimeMillis();
-            changingView = view;
+            mChangingView = view;
             animationType = type;
             this.length = length;
             this.filter = filter;
@@ -5687,11 +5654,6 @@
 
             boolean isBlockingHelperShown = false;
 
-            if (mDragAnimPendingChildren.contains(view)) {
-                // We start the swipe and finish it in the same frame; we don't want a drag
-                // animation.
-                mDragAnimPendingChildren.remove(view);
-            }
             mAmbientState.onDragFinished(view);
             updateContinuousShadowDrawing();
 
@@ -5735,7 +5697,7 @@
                         && (parent.areGutsExposed()
                         || mSwipeHelper.getExposedMenuView() == parent
                         || (parent.getNotificationChildren().size() == 1
-                        && parent.isClearable()))) {
+                        && parent.getEntry().isClearable()))) {
                     // In this case the group is expanded and showing the menu for the
                     // group, further interaction should apply to the group, not any
                     // child notifications so we use the parent of the child. We also do the same
@@ -5750,12 +5712,8 @@
         public void onBeginDrag(View v) {
             mFalsingManager.onNotificatonStartDismissing();
             setSwipingInProgress(true);
-            mAmbientState.onBeginDrag(v);
+            mAmbientState.onBeginDrag((ExpandableView) v);
             updateContinuousShadowDrawing();
-            if (mAnimationsEnabled && (mIsExpanded || !isPinnedHeadsUp(v))) {
-                mDragAnimPendingChildren.add(v);
-                mNeedsAnimation = true;
-            }
             requestChildrenUpdate();
         }
 
@@ -5763,16 +5721,6 @@
         public void onChildSnappedBack(View animView, float targetLeft) {
             mAmbientState.onDragFinished(animView);
             updateContinuousShadowDrawing();
-            if (!mDragAnimPendingChildren.contains(animView)) {
-                if (mAnimationsEnabled) {
-                    mSnappedBackChildren.add(animView);
-                    mNeedsAnimation = true;
-                }
-                requestChildrenUpdate();
-            } else {
-                // We start the swipe and snap back in the same frame, we don't want any animation
-                mDragAnimPendingChildren.remove(animView);
-            }
             NotificationMenuRowPlugin menuRow = mSwipeHelper.getCurrentMenuRow();
             if (menuRow != null && targetLeft == 0) {
                 menuRow.resetMenu();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
index 8c13489..25fb7f9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
@@ -42,6 +42,7 @@
 public class StackScrollAlgorithm {
 
     private static final String LOG_TAG = "StackScrollAlgorithm";
+    private final ViewGroup mHostView;
 
     private int mPaddingBetweenElements;
     private int mIncreasedPaddingBetweenElements;
@@ -55,7 +56,8 @@
     private float mHeadsUpInset;
     private int mPinnedZTranslationExtra;
 
-    public StackScrollAlgorithm(Context context) {
+    public StackScrollAlgorithm(Context context, ViewGroup hostView) {
+        mHostView = hostView;
         initView(context);
     }
 
@@ -79,50 +81,59 @@
         mGapHeight = res.getDimensionPixelSize(R.dimen.notification_section_divider_height);
     }
 
-    public void getStackScrollState(AmbientState ambientState, StackScrollState resultState) {
+    /**
+     * Updates the state of all children in the hostview based on this algorithm.
+     */
+    public void resetViewStates(AmbientState ambientState) {
         // The state of the local variables are saved in an algorithmState to easily subdivide it
         // into multiple phases.
         StackScrollAlgorithmState algorithmState = mTempAlgorithmState;
 
         // First we reset the view states to their default values.
-        resultState.resetViewStates();
+        resetChildViewStates();
 
-        initAlgorithmState(resultState, algorithmState, ambientState);
+        initAlgorithmState(mHostView, algorithmState, ambientState);
 
-        updatePositionsForState(resultState, algorithmState, ambientState);
+        updatePositionsForState(algorithmState, ambientState);
 
-        updateZValuesForState(resultState, algorithmState, ambientState);
+        updateZValuesForState(algorithmState, ambientState);
 
-        updateHeadsUpStates(resultState, algorithmState, ambientState);
+        updateHeadsUpStates(algorithmState, ambientState);
 
-        handleDraggedViews(ambientState, resultState, algorithmState);
-        updateDimmedActivatedHideSensitive(ambientState, resultState, algorithmState);
-        updateClipping(resultState, algorithmState, ambientState);
-        updateSpeedBumpState(resultState, algorithmState, ambientState);
-        updateShelfState(resultState, ambientState);
-        getNotificationChildrenStates(resultState, algorithmState, ambientState);
+        updateDimmedActivatedHideSensitive(ambientState, algorithmState);
+        updateClipping(algorithmState, ambientState);
+        updateSpeedBumpState(algorithmState, ambientState);
+        updateShelfState(ambientState);
+        getNotificationChildrenStates(algorithmState, ambientState);
     }
 
-    private void getNotificationChildrenStates(StackScrollState resultState,
-            StackScrollAlgorithmState algorithmState,
+    private void resetChildViewStates() {
+        int numChildren = mHostView.getChildCount();
+        for (int i = 0; i < numChildren; i++) {
+            ExpandableView child = (ExpandableView) mHostView.getChildAt(i);
+            child.resetViewState();
+        }
+    }
+
+    private void getNotificationChildrenStates(StackScrollAlgorithmState algorithmState,
             AmbientState ambientState) {
         int childCount = algorithmState.visibleChildren.size();
         for (int i = 0; i < childCount; i++) {
             ExpandableView v = algorithmState.visibleChildren.get(i);
             if (v instanceof ExpandableNotificationRow) {
                 ExpandableNotificationRow row = (ExpandableNotificationRow) v;
-                row.getChildrenStates(resultState, ambientState);
+                row.updateChildrenStates(ambientState);
             }
         }
     }
 
-    private void updateSpeedBumpState(StackScrollState resultState,
-            StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
+    private void updateSpeedBumpState(StackScrollAlgorithmState algorithmState,
+            AmbientState ambientState) {
         int childCount = algorithmState.visibleChildren.size();
         int belowSpeedBump = ambientState.getSpeedBumpIndex();
         for (int i = 0; i < childCount; i++) {
-            View child = algorithmState.visibleChildren.get(i);
-            ExpandableViewState childViewState = resultState.getViewStateForView(child);
+            ExpandableView child = algorithmState.visibleChildren.get(i);
+            ExpandableViewState childViewState = child.getViewState();
 
             // The speed bump can also be gone, so equality needs to be taken when comparing
             // indices.
@@ -130,15 +141,16 @@
         }
 
     }
-    private void updateShelfState(StackScrollState resultState, AmbientState ambientState) {
+
+    private void updateShelfState(AmbientState ambientState) {
         NotificationShelf shelf = ambientState.getShelf();
         if (shelf != null) {
-            shelf.updateState(resultState, ambientState);
+            shelf.updateState(ambientState);
         }
     }
 
-    private void updateClipping(StackScrollState resultState,
-            StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
+    private void updateClipping(StackScrollAlgorithmState algorithmState,
+            AmbientState ambientState) {
         float drawStart = !ambientState.isOnKeyguard() ? ambientState.getTopPadding()
                 + ambientState.getStackTranslation() + ambientState.getExpandAnimationTopChange()
                 : 0;
@@ -147,7 +159,7 @@
         int childCount = algorithmState.visibleChildren.size();
         for (int i = 0; i < childCount; i++) {
             ExpandableView child = algorithmState.visibleChildren.get(i);
-            ExpandableViewState state = resultState.getViewStateForView(child);
+            ExpandableViewState state = child.getViewState();
             if (!child.mustStayOnScreen() || state.headsUpIsVisible) {
                 previousNotificationEnd = Math.max(drawStart, previousNotificationEnd);
                 previousNotificationStart = Math.max(drawStart, previousNotificationStart);
@@ -191,15 +203,15 @@
      * Updates the dimmed, activated and hiding sensitive states of the children.
      */
     private void updateDimmedActivatedHideSensitive(AmbientState ambientState,
-            StackScrollState resultState, StackScrollAlgorithmState algorithmState) {
+            StackScrollAlgorithmState algorithmState) {
         boolean dimmed = ambientState.isDimmed();
         boolean dark = ambientState.isFullyDark();
         boolean hideSensitive = ambientState.isHideSensitive();
         View activatedChild = ambientState.getActivatedChild();
         int childCount = algorithmState.visibleChildren.size();
         for (int i = 0; i < childCount; i++) {
-            View child = algorithmState.visibleChildren.get(i);
-            ExpandableViewState childViewState = resultState.getViewStateForView(child);
+            ExpandableView child = algorithmState.visibleChildren.get(i);
+            ExpandableViewState childViewState = child.getViewState();
             childViewState.dimmed = dimmed;
             childViewState.dark = dark;
             childViewState.hideSensitive = hideSensitive;
@@ -211,39 +223,9 @@
     }
 
     /**
-     * Handle the special state when views are being dragged
-     */
-    private void handleDraggedViews(AmbientState ambientState, StackScrollState resultState,
-            StackScrollAlgorithmState algorithmState) {
-        ArrayList<View> draggedViews = ambientState.getDraggedViews();
-        for (View draggedView : draggedViews) {
-            int childIndex = algorithmState.visibleChildren.indexOf(draggedView);
-            if (childIndex >= 0 && childIndex < algorithmState.visibleChildren.size() - 1) {
-                View nextChild = algorithmState.visibleChildren.get(childIndex + 1);
-                if (!draggedViews.contains(nextChild)) {
-                    // only if the view is not dragged itself we modify its state to be fully
-                    // visible
-                    ExpandableViewState viewState = resultState.getViewStateForView(
-                            nextChild);
-                    // The child below the dragged one must be fully visible
-                    if (ambientState.isShadeExpanded()) {
-                        viewState.shadowAlpha = 1;
-                        viewState.hidden = false;
-                    }
-                }
-
-                // Lets set the alpha to the one it currently has, as its currently being dragged
-                ExpandableViewState viewState = resultState.getViewStateForView(draggedView);
-                // The dragged child should keep the set alpha
-                viewState.alpha = draggedView.getAlpha();
-            }
-        }
-    }
-
-    /**
      * Initialize the algorithm state like updating the visible children.
      */
-    private void initAlgorithmState(StackScrollState resultState, StackScrollAlgorithmState state,
+    private void initAlgorithmState(ViewGroup hostView, StackScrollAlgorithmState state,
             AmbientState ambientState) {
         float bottomOverScroll = ambientState.getOverScrollAmount(false /* onTop */);
 
@@ -255,7 +237,6 @@
         state.scrollY = (int) (scrollY + bottomOverScroll);
 
         //now init the visible children and update paddings
-        ViewGroup hostView = resultState.getHostView();
         int childCount = hostView.getChildCount();
         state.visibleChildren.clear();
         state.visibleChildren.ensureCapacity(childCount);
@@ -280,7 +261,7 @@
                     // we need normal padding now, to be in sync with what the stack calculates
                     lastView = null;
                 }
-                notGoneIndex = updateNotGoneIndex(resultState, state, notGoneIndex, v);
+                notGoneIndex = updateNotGoneIndex(state, notGoneIndex, v);
                 float increasedPadding = v.getIncreasedPaddingAmount();
                 if (increasedPadding != 0.0f) {
                     state.paddingMap.put(v, increasedPadding);
@@ -313,13 +294,11 @@
                     ExpandableNotificationRow row = (ExpandableNotificationRow) v;
 
                     // handle the notgoneIndex for the children as well
-                    List<ExpandableNotificationRow> children =
-                            row.getNotificationChildren();
+                    List<ExpandableNotificationRow> children = row.getNotificationChildren();
                     if (row.isSummaryWithChildren() && children != null) {
                         for (ExpandableNotificationRow childRow : children) {
                             if (childRow.getVisibility() != View.GONE) {
-                                ExpandableViewState childState
-                                        = resultState.getViewStateForView(childRow);
+                                ExpandableViewState childState = childRow.getViewState();
                                 childState.notGoneIndex = notGoneIndex;
                                 notGoneIndex++;
                             }
@@ -332,8 +311,8 @@
         ExpandableNotificationRow expandingNotification = ambientState.getExpandingNotification();
         state.indexOfExpandingNotification = expandingNotification != null
                 ? expandingNotification.isChildInGroup()
-                    ? state.visibleChildren.indexOf(expandingNotification.getNotificationParent())
-                    : state.visibleChildren.indexOf(expandingNotification)
+                ? state.visibleChildren.indexOf(expandingNotification.getNotificationParent())
+                : state.visibleChildren.indexOf(expandingNotification)
                 : -1;
     }
 
@@ -353,10 +332,9 @@
         }
     }
 
-    private int updateNotGoneIndex(StackScrollState resultState,
-            StackScrollAlgorithmState state, int notGoneIndex,
+    private int updateNotGoneIndex(StackScrollAlgorithmState state, int notGoneIndex,
             ExpandableView v) {
-        ExpandableViewState viewState = resultState.getViewStateForView(v);
+        ExpandableViewState viewState = v.getViewState();
         viewState.notGoneIndex = notGoneIndex;
         state.visibleChildren.add(v);
         notGoneIndex++;
@@ -366,27 +344,27 @@
     /**
      * Determine the positions for the views. This is the main part of the algorithm.
      *
-     * @param resultState The result state to update if a change to the properties of a child occurs
      * @param algorithmState The state in which the current pass of the algorithm is currently in
-     * @param ambientState The current ambient state
+     * @param ambientState   The current ambient state
      */
-    private void updatePositionsForState(StackScrollState resultState,
-            StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
+    private void updatePositionsForState(StackScrollAlgorithmState algorithmState,
+            AmbientState ambientState) {
 
         // The y coordinate of the current child.
         float currentYPosition = -algorithmState.scrollY;
         int childCount = algorithmState.visibleChildren.size();
         for (int i = 0; i < childCount; i++) {
-            currentYPosition = updateChild(i, resultState, algorithmState, ambientState,
-                    currentYPosition);
+            currentYPosition = updateChild(i, algorithmState, ambientState, currentYPosition);
         }
     }
 
-    protected float updateChild(int i, StackScrollState resultState,
-            StackScrollAlgorithmState algorithmState, AmbientState ambientState,
+    protected float updateChild(
+            int i,
+            StackScrollAlgorithmState algorithmState,
+            AmbientState ambientState,
             float currentYPosition) {
         ExpandableView child = algorithmState.visibleChildren.get(i);
-        ExpandableViewState childViewState = resultState.getViewStateForView(child);
+        ExpandableViewState childViewState = child.getViewState();
         childViewState.location = ExpandableViewState.LOCATION_UNKNOWN;
         int paddingAfterChild = getPaddingAfterChild(algorithmState, child);
         int childHeight = getMaxAllowedChildHeight(child);
@@ -435,8 +413,8 @@
         return algorithmState.getPaddingAfterChild(child);
     }
 
-    private void updateHeadsUpStates(StackScrollState resultState,
-            StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
+    private void updateHeadsUpStates(StackScrollAlgorithmState algorithmState,
+            AmbientState ambientState) {
         int childCount = algorithmState.visibleChildren.size();
         ExpandableNotificationRow topHeadsUpEntry = null;
         for (int i = 0; i < childCount; i++) {
@@ -448,7 +426,7 @@
             if (!row.isHeadsUp()) {
                 break;
             }
-            ExpandableViewState childState = resultState.getViewStateForView(row);
+            ExpandableViewState childState = row.getViewState();
             if (topHeadsUpEntry == null && row.mustStayOnScreen() && !childState.headsUpIsVisible) {
                 topHeadsUpEntry = row;
                 childState.location = ExpandableViewState.LOCATION_FIRST_HUN;
@@ -470,7 +448,8 @@
                 childState.yTranslation = Math.max(childState.yTranslation, mHeadsUpInset);
                 childState.height = Math.max(row.getIntrinsicHeight(), childState.height);
                 childState.hidden = false;
-                ExpandableViewState topState = resultState.getViewStateForView(topHeadsUpEntry);
+                ExpandableViewState topState =
+                        topHeadsUpEntry == null ? null : topHeadsUpEntry.getViewState();
                 if (topState != null && !isTopEntry && (!mIsExpanded
                         || unmodifiedEndLocation < topState.yTranslation + topState.height)) {
                     // Ensure that a headsUp doesn't vertically extend further than the heads-up at
@@ -522,9 +501,8 @@
      * Clamp the height of the child down such that its end is at most on the beginning of
      * the shelf.
      *
-     * @param child
      * @param childViewState the view state of the child
-     * @param ambientState the ambient state
+     * @param ambientState   the ambient state
      */
     private void clampPositionToShelf(ExpandableView child,
             ExpandableViewState childViewState,
@@ -552,31 +530,31 @@
             ExpandableView expandableView = (ExpandableView) child;
             return expandableView.getIntrinsicHeight();
         }
-        return child == null? mCollapsedSize : child.getHeight();
+        return child == null ? mCollapsedSize : child.getHeight();
     }
 
     /**
      * Calculate the Z positions for all children based on the number of items in both stacks and
      * save it in the resultState
-     *  @param resultState The result state to update the zTranslation values
+     *
      * @param algorithmState The state in which the current pass of the algorithm is currently in
-     * @param ambientState The ambient state of the algorithm
+     * @param ambientState   The ambient state of the algorithm
      */
-    private void updateZValuesForState(StackScrollState resultState,
-            StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
+    private void updateZValuesForState(StackScrollAlgorithmState algorithmState,
+            AmbientState ambientState) {
         int childCount = algorithmState.visibleChildren.size();
         float childrenOnTop = 0.0f;
         for (int i = childCount - 1; i >= 0; i--) {
             childrenOnTop = updateChildZValue(i, childrenOnTop,
-                    resultState, algorithmState, ambientState);
+                    algorithmState, ambientState);
         }
     }
 
     protected float updateChildZValue(int i, float childrenOnTop,
-            StackScrollState resultState, StackScrollAlgorithmState algorithmState,
+            StackScrollAlgorithmState algorithmState,
             AmbientState ambientState) {
         ExpandableView child = algorithmState.visibleChildren.get(i);
-        ExpandableViewState childViewState = resultState.getViewStateForView(child);
+        ExpandableViewState childViewState = child.getViewState();
         int zDistanceBetweenElements = ambientState.getZDistanceBetweenElements();
         float baseZ = ambientState.getBaseZHeight();
         if (child.mustStayOnScreen() && !childViewState.headsUpIsVisible
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollState.java
deleted file mode 100644
index c03fd22..0000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollState.java
+++ /dev/null
@@ -1,118 +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 com.android.systemui.statusbar.notification.stack;
-
-import android.util.Log;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.notification.row.ExpandableView;
-
-import java.util.List;
-import java.util.WeakHashMap;
-
-/**
- * A state of a
- * {@link com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout} which
- * can be applied to a viewGroup.
- */
-public class StackScrollState {
-
-    private static final String CHILD_NOT_FOUND_TAG = "StackScrollStateNoSuchChild";
-
-    private final ViewGroup mHostView;
-    private WeakHashMap<ExpandableView, ExpandableViewState> mStateMap;
-
-    public StackScrollState(ViewGroup hostView) {
-        mHostView = hostView;
-        mStateMap = new WeakHashMap<>();
-    }
-
-    public ViewGroup getHostView() {
-        return mHostView;
-    }
-
-    public void resetViewStates() {
-        int numChildren = mHostView.getChildCount();
-        for (int i = 0; i < numChildren; i++) {
-            ExpandableView child = (ExpandableView) mHostView.getChildAt(i);
-            resetViewState(child);
-
-            // handling reset for child notifications
-            if (child instanceof ExpandableNotificationRow) {
-                ExpandableNotificationRow row = (ExpandableNotificationRow) child;
-                List<ExpandableNotificationRow> children =
-                        row.getNotificationChildren();
-                if (row.isSummaryWithChildren() && children != null) {
-                    for (ExpandableNotificationRow childRow : children) {
-                        resetViewState(childRow);
-                    }
-                }
-            }
-        }
-    }
-
-    private void resetViewState(ExpandableView view) {
-        ExpandableViewState viewState = mStateMap.get(view);
-        if (viewState == null) {
-            viewState = view.createNewViewState(this);
-            mStateMap.put(view, viewState);
-        }
-        // initialize with the default values of the view
-        viewState.height = view.getIntrinsicHeight();
-        viewState.gone = view.getVisibility() == View.GONE;
-        viewState.alpha = 1f;
-        viewState.shadowAlpha = 1f;
-        viewState.notGoneIndex = -1;
-        viewState.xTranslation = view.getTranslationX();
-        viewState.hidden = false;
-        viewState.scaleX = view.getScaleX();
-        viewState.scaleY = view.getScaleY();
-        viewState.inShelf = false;
-        viewState.headsUpIsVisible = false;
-    }
-
-    public ExpandableViewState getViewStateForView(View requestedView) {
-        return mStateMap.get(requestedView);
-    }
-
-    public void removeViewStateForView(View child) {
-        mStateMap.remove(child);
-    }
-
-    /**
-     * Apply the properties saved in {@link #mStateMap} to the children of the {@link #mHostView}.
-     * The properties are only applied if they effectively changed.
-     */
-    public void apply() {
-        int numChildren = mHostView.getChildCount();
-        for (int i = 0; i < numChildren; i++) {
-            ExpandableView child = (ExpandableView) mHostView.getChildAt(i);
-            ExpandableViewState state = mStateMap.get(child);
-            if (state == null) {
-                Log.wtf(CHILD_NOT_FOUND_TAG, "No child state was found when applying this state " +
-                        "to the hostView");
-                continue;
-            }
-            if (state.gone) {
-                continue;
-            }
-            state.applyToView(child);
-        }
-    }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
index a94401b..d690547 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
@@ -44,6 +44,7 @@
     public static final int ANIMATION_DURATION_WAKEUP = 500;
     public static final int ANIMATION_DURATION_GO_TO_FULL_SHADE = 448;
     public static final int ANIMATION_DURATION_APPEAR_DISAPPEAR = 464;
+    public static final int ANIMATION_DURATION_SWIPE = 260;
     public static final int ANIMATION_DURATION_DIMMED_ACTIVATED = 220;
     public static final int ANIMATION_DURATION_CLOSE_REMOTE_INPUT = 150;
     public static final int ANIMATION_DURATION_HEADS_UP_APPEAR = 550;
@@ -128,25 +129,25 @@
 
     public void startAnimationForEvents(
             ArrayList<NotificationStackScrollLayout.AnimationEvent> mAnimationEvents,
-            StackScrollState finalState, long additionalDelay) {
+            long additionalDelay) {
 
-        processAnimationEvents(mAnimationEvents, finalState);
+        processAnimationEvents(mAnimationEvents);
 
         int childCount = mHostLayout.getChildCount();
         mAnimationFilter.applyCombination(mNewEvents);
         mCurrentAdditionalDelay = additionalDelay;
         mCurrentLength = NotificationStackScrollLayout.AnimationEvent.combineLength(mNewEvents);
-        mCurrentLastNotAddedIndex = findLastNotAddedIndex(finalState);
+        mCurrentLastNotAddedIndex = findLastNotAddedIndex();
         for (int i = 0; i < childCount; i++) {
             final ExpandableView child = (ExpandableView) mHostLayout.getChildAt(i);
 
-            ExpandableViewState viewState = finalState.getViewStateForView(child);
+            ExpandableViewState viewState = child.getViewState();
             if (viewState == null || child.getVisibility() == View.GONE
-                    || applyWithoutAnimation(child, viewState, finalState)) {
+                    || applyWithoutAnimation(child, viewState)) {
                 continue;
             }
 
-            initAnimationProperties(finalState, child, viewState);
+            initAnimationProperties(child, viewState);
             viewState.animateTo(child, mAnimationProperties);
         }
         if (!isRunning()) {
@@ -159,7 +160,7 @@
         mNewAddChildren.clear();
     }
 
-    private void initAnimationProperties(StackScrollState finalState, ExpandableView child,
+    private void initAnimationProperties(ExpandableView child,
             ExpandableViewState viewState) {
         boolean wasAdded = mAnimationProperties.wasAdded(child);
         mAnimationProperties.duration = mCurrentLength;
@@ -171,10 +172,9 @@
                         || viewState.alpha != child.getAlpha()
                         || viewState.height != child.getActualHeight()
                         || viewState.clipTopAmount != child.getClipTopAmount()
-                        || viewState.dark != child.isDark()
-                        || viewState.shadowAlpha != child.getShadowAlpha())) {
+                        || viewState.dark != child.isDark())) {
             mAnimationProperties.delay = mCurrentAdditionalDelay
-                    + calculateChildAnimationDelay(viewState, finalState);
+                    + calculateChildAnimationDelay(viewState);
         }
     }
 
@@ -194,8 +194,7 @@
      *
      * @return true if no animation should be performed
      */
-    private boolean applyWithoutAnimation(ExpandableView child, ExpandableViewState viewState,
-            StackScrollState finalState) {
+    private boolean applyWithoutAnimation(ExpandableView child, ExpandableViewState viewState) {
         if (mShadeExpanded) {
             return false;
         }
@@ -215,12 +214,12 @@
         return true;
     }
 
-    private int findLastNotAddedIndex(StackScrollState finalState) {
+    private int findLastNotAddedIndex() {
         int childCount = mHostLayout.getChildCount();
         for (int i = childCount - 1; i >= 0; i--) {
             final ExpandableView child = (ExpandableView) mHostLayout.getChildAt(i);
 
-            ExpandableViewState viewState = finalState.getViewStateForView(child);
+            ExpandableViewState viewState = child.getViewState();
             if (viewState == null || child.getVisibility() == View.GONE) {
                 continue;
             }
@@ -231,8 +230,7 @@
         return -1;
     }
 
-    private long calculateChildAnimationDelay(ExpandableViewState viewState,
-            StackScrollState finalState) {
+    private long calculateChildAnimationDelay(ExpandableViewState viewState) {
         if (mAnimationFilter.hasGoToFullShadeEvent) {
             return calculateDelayGoToFullShade(viewState);
         }
@@ -245,8 +243,8 @@
             switch (event.animationType) {
                 case NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_ADD: {
                     int ownIndex = viewState.notGoneIndex;
-                    int changingIndex = finalState
-                            .getViewStateForView(event.changingView).notGoneIndex;
+                    int changingIndex =
+                            ((ExpandableView) (event.mChangingView)).getViewState().notGoneIndex;
                     int difference = Math.abs(ownIndex - changingIndex);
                     difference = Math.max(0, Math.min(DELAY_EFFECT_MAX_INDEX_DIFFERENCE,
                             difference - 1));
@@ -259,9 +257,9 @@
                 case NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_REMOVE: {
                     int ownIndex = viewState.notGoneIndex;
                     boolean noNextView = event.viewAfterChangingView == null;
-                    View viewAfterChangingView = noNextView
+                    ExpandableView viewAfterChangingView = noNextView
                             ? mHostLayout.getLastChildNotGone()
-                            : event.viewAfterChangingView;
+                            : (ExpandableView) event.viewAfterChangingView;
                     if (viewAfterChangingView == null) {
                         // This can happen when the last view in the list is removed.
                         // Since the shelf is still around and the only view, the code still goes
@@ -269,8 +267,7 @@
                         // have changed.
                         continue;
                     }
-                    int nextIndex = finalState
-                            .getViewStateForView(viewAfterChangingView).notGoneIndex;
+                    int nextIndex = viewAfterChangingView.getViewState().notGoneIndex;
                     if (ownIndex >= nextIndex) {
                         // we only have the view afterwards
                         ownIndex++;
@@ -352,20 +349,17 @@
     /**
      * Process the animationEvents for a new animation
      *
-     * @param animationEvents the animation events for the animation to perform
-     * @param finalState the final state to animate to
+     *  @param animationEvents the animation events for the animation to perform
      */
     private void processAnimationEvents(
-            ArrayList<NotificationStackScrollLayout.AnimationEvent> animationEvents,
-            StackScrollState finalState) {
+            ArrayList<NotificationStackScrollLayout.AnimationEvent> animationEvents) {
         for (NotificationStackScrollLayout.AnimationEvent event : animationEvents) {
-            final ExpandableView changingView = (ExpandableView) event.changingView;
+            final ExpandableView changingView = (ExpandableView) event.mChangingView;
             if (event.animationType ==
                     NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_ADD) {
 
                 // This item is added, initialize it's properties.
-                ExpandableViewState viewState = finalState
-                        .getViewStateForView(changingView);
+                ExpandableViewState viewState = changingView.getViewState();
                 if (viewState == null || viewState.gone) {
                     // The position for this child was never generated, let's continue.
                     continue;
@@ -382,12 +376,9 @@
 
                 // Find the amount to translate up. This is needed in order to understand the
                 // direction of the remove animation (either downwards or upwards)
-                ExpandableViewState viewState = finalState
-                        .getViewStateForView(event.viewAfterChangingView);
-                int actualHeight = changingView.getActualHeight();
                 // upwards by default
                 float translationDirection = -1.0f;
-                if (viewState != null) {
+                if (event.viewAfterChangingView != null) {
                     float ownPosition = changingView.getTranslationY();
                     if (changingView instanceof ExpandableNotificationRow
                             && event.viewAfterChangingView instanceof ExpandableNotificationRow) {
@@ -403,8 +394,11 @@
                             ownPosition = changingRow.getTranslationWhenRemoved();
                         }
                     }
+                    int actualHeight = changingView.getActualHeight();
                     // there was a view after this one, Approximate the distance the next child
                     // travelled
+                    ExpandableViewState viewState =
+                            ((ExpandableView) event.viewAfterChangingView).getViewState();
                     translationDirection = ((viewState.yTranslation
                             - (ownPosition + actualHeight / 2.0f)) * 2 /
                             actualHeight);
@@ -427,11 +421,11 @@
                 }
             } else if (event.animationType == NotificationStackScrollLayout
                     .AnimationEvent.ANIMATION_TYPE_GROUP_EXPANSION_CHANGED) {
-                ExpandableNotificationRow row = (ExpandableNotificationRow) event.changingView;
-                row.prepareExpansionChanged(finalState);
+                ExpandableNotificationRow row = (ExpandableNotificationRow) event.mChangingView;
+                row.prepareExpansionChanged();
             } else if (event.animationType == NotificationStackScrollLayout
                     .AnimationEvent.ANIMATION_TYPE_PULSE_APPEAR) {
-                ExpandableViewState viewState = finalState.getViewStateForView(changingView);
+                ExpandableViewState viewState = changingView.getViewState();
                 if (viewState != null) {
                     mTmpState.copyFrom(viewState);
                     mTmpState.yTranslation += mPulsingAppearingTranslation;
@@ -440,7 +434,7 @@
                 }
             } else if (event.animationType == NotificationStackScrollLayout
                     .AnimationEvent.ANIMATION_TYPE_PULSE_DISAPPEAR) {
-                ExpandableViewState viewState = finalState.getViewStateForView(changingView);
+                ExpandableViewState viewState = changingView.getViewState();
                 if (viewState != null) {
                     viewState.alpha = 0;
                     // We want to animate the alpha away before the view starts translating,
@@ -455,7 +449,7 @@
             } else if (event.animationType == NotificationStackScrollLayout
                     .AnimationEvent.ANIMATION_TYPE_HEADS_UP_APPEAR) {
                 // This item is added, initialize it's properties.
-                ExpandableViewState viewState = finalState.getViewStateForView(changingView);
+                ExpandableViewState viewState = changingView.getViewState();
                 mTmpState.copyFrom(viewState);
                 if (event.headsUpFromBottom) {
                     mTmpState.yTranslation = mHeadsUpAppearHeightBottom;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java
index 40f9f45..3c8cad7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java
@@ -143,9 +143,9 @@
     }
 
     @Override
-    public void onHeadsUpPinned(ExpandableNotificationRow headsUp) {
+    public void onHeadsUpPinned(NotificationData.Entry entry) {
         updateTopEntry();
-        updateHeader(headsUp.getEntry());
+        updateHeader(entry);
     }
 
     /** To count the distance from the window right boundary to scroller right boundary. The
@@ -298,9 +298,9 @@
     }
 
     @Override
-    public void onHeadsUpUnPinned(ExpandableNotificationRow headsUp) {
+    public void onHeadsUpUnPinned(NotificationData.Entry entry) {
         updateTopEntry();
-        updateHeader(headsUp.getEntry());
+        updateHeader(entry);
     }
 
     public void setExpandedHeight(float expandedHeight, float appearFraction) {
@@ -339,7 +339,7 @@
     }
 
     public void updateHeader(NotificationData.Entry entry) {
-        ExpandableNotificationRow row = entry.row;
+        ExpandableNotificationRow row = entry.getRow();
         float headerVisibleAmount = 1.0f;
         if (row.isPinned() || row.isHeadsUpAnimatingAway() || row == mTrackedChild) {
             headerVisibleAmount = mExpandFraction;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java
index 00d6b14..9faada0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java
@@ -304,18 +304,19 @@
             return;
         }
         if (hasPinnedHeadsUp()) {
-            ExpandableNotificationRow topEntry = getTopEntry().row;
+            NotificationData.Entry topEntry = getTopEntry();
             if (topEntry.isChildInGroup()) {
-                final ExpandableNotificationRow groupSummary
-                        = mGroupManager.getGroupSummary(topEntry.getStatusBarNotification());
+                final NotificationData.Entry groupSummary
+                        = mGroupManager.getGroupSummary(topEntry.notification);
                 if (groupSummary != null) {
                     topEntry = groupSummary;
                 }
             }
-            topEntry.getLocationOnScreen(mTmpTwoArray);
+            ExpandableNotificationRow topRow = topEntry.getRow();
+            topRow.getLocationOnScreen(mTmpTwoArray);
             int minX = mTmpTwoArray[0];
-            int maxX = mTmpTwoArray[0] + topEntry.getWidth();
-            int height = topEntry.getIntrinsicHeight();
+            int maxX = mTmpTwoArray[0] + topRow.getWidth();
+            int height = topRow.getIntrinsicHeight();
 
             info.setTouchableInsets(ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION);
             info.touchableRegion.set(minX, 0, maxX, mHeadsUpInset + height);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java
index be4df45..9c1c71a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java
@@ -84,8 +84,8 @@
                     // We might touch above the visible heads up child, but then we still would
                     // like to capture it.
                     NotificationData.Entry topEntry = mHeadsUpManager.getTopEntry();
-                    if (topEntry != null && topEntry.row.isPinned()) {
-                        mPickedChild = topEntry.row;
+                    if (topEntry != null && topEntry.isRowPinned()) {
+                        mPickedChild = topEntry.getRow();
                         mTouchingHeadsUpView = true;
                     }
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
index c0d1818..7d13679 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
@@ -227,6 +227,7 @@
             mShowingSoon = false;
             if (mExpansion == EXPANSION_VISIBLE) {
                 mKeyguardView.onResume();
+                mKeyguardView.resetSecurityContainer();
             }
             StatsLog.write(StatsLog.KEYGUARD_BOUNCER_STATE_CHANGED,
                 StatsLog.KEYGUARD_BOUNCER_STATE_CHANGED__STATE__SHOWN);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java
index d8280ba..a81b7e5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java
@@ -22,6 +22,7 @@
 import android.content.res.Resources;
 import android.util.MathUtils;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.keyguard.KeyguardStatusView;
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
@@ -229,6 +230,11 @@
                 - mBurnInPreventionOffsetX;
     }
 
+    @VisibleForTesting
+    void setPulsingPadding(int padding) {
+        mPulsingPadding = padding;
+    }
+
     public static class Result {
 
         /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBackAction.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBackAction.java
index 1002f9e..b83ebc7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBackAction.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBackAction.java
@@ -16,8 +16,6 @@
 
 package com.android.systemui.statusbar.phone;
 
-import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_HOME;
-
 import android.annotation.NonNull;
 import android.hardware.input.InputManager;
 import android.os.Handler;
@@ -35,10 +33,8 @@
  */
 public class NavigationBackAction extends NavigationGestureAction {
 
-    private static final String PULL_HOME_GO_BACK_PROP = "quickstepcontroller_homegoesback";
     private static final String BACK_AFTER_END_PROP =
             "quickstepcontroller_homegoesbackwhenend";
-    private static final String NAVBAR_EXPERIMENTS_DISABLED = "navbarexperiments_disabled";
     private static final long BACK_BUTTON_FADE_OUT_ALPHA = 60;
     private static final long BACK_GESTURE_POLL_TIMEOUT = 1000;
 
@@ -60,23 +56,13 @@
     }
 
     @Override
-    public int requiresTouchDownHitTarget() {
-        return HIT_TARGET_HOME;
-    }
-
-    @Override
-    public boolean requiresDragWithHitTarget() {
-        return true;
-    }
-
-    @Override
     public boolean canPerformAction() {
         return mProxySender.getBackButtonAlpha() > 0;
     }
 
     @Override
     public boolean isEnabled() {
-        return swipeHomeGoBackGestureEnabled();
+        return !getGlobalBoolean(NavigationPrototypeController.NAVBAR_EXPERIMENTS_DISABLED);
     }
 
     @Override
@@ -110,13 +96,8 @@
         mNavigationBarView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
     }
 
-    private boolean swipeHomeGoBackGestureEnabled() {
-        return !getGlobalBoolean(NAVBAR_EXPERIMENTS_DISABLED)
-                && getGlobalBoolean(PULL_HOME_GO_BACK_PROP);
-    }
-
     private boolean shouldExecuteBackOnUp() {
-        return !getGlobalBoolean(NAVBAR_EXPERIMENTS_DISABLED)
+        return !getGlobalBoolean(NavigationPrototypeController.NAVBAR_EXPERIMENTS_DISABLED)
                 && getGlobalBoolean(BACK_AFTER_END_PROP);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
index 0cf1b3d..8657003 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
@@ -56,7 +56,6 @@
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.Display;
-import android.view.Gravity;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -863,16 +862,9 @@
 
     public static View create(Context context, FragmentListener listener) {
         final int displayId = context.getDisplay().getDisplayId();
-        final boolean isDefaultDisplay = (displayId == Display.DEFAULT_DISPLAY);
-        final int height = isDefaultDisplay
-                ? LayoutParams.MATCH_PARENT
-                : context.getResources().getDimensionPixelSize(R.dimen.navigation_bar_height);
         WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
-                LayoutParams.MATCH_PARENT, height,
-                // TODO(b/117478341): Resolve one status bar/ navigation bar assumption
-                isDefaultDisplay
-                        ? WindowManager.LayoutParams.TYPE_NAVIGATION_BAR
-                        : WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL,
+                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
+                WindowManager.LayoutParams.TYPE_NAVIGATION_BAR,
                 WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING
                         | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                         | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
@@ -884,10 +876,6 @@
         lp.setTitle("NavigationBar" + displayId);
         lp.accessibilityTitle = context.getString(R.string.nav_bar);
         lp.windowAnimations = 0;
-        if (!isDefaultDisplay) {
-            lp.flags |= LayoutParams.PRIVATE_FLAG_IS_SCREEN_DECOR;
-            lp.gravity = Gravity.BOTTOM;
-        }
 
         View navigationBarView = LayoutInflater.from(context).inflate(
                 R.layout.navigation_bar_window, null);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index 2f58ca1..cd6e1d7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.phone;
 
 import static android.view.MotionEvent.ACTION_DOWN;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_INVALID;
 
 import static com.android.systemui.shared.system.NavigationBarCompat.FLAG_DISABLE_QUICK_SCRUB;
 import static com.android.systemui.shared.system.NavigationBarCompat.FLAG_SHOW_OVERVIEW_BUTTON;
@@ -77,6 +78,8 @@
 import com.android.systemui.shared.system.ActivityManagerWrapper;
 import com.android.systemui.shared.system.NavigationBarCompat;
 import com.android.systemui.shared.system.WindowManagerWrapper;
+import com.android.systemui.statusbar.phone.NavigationPrototypeController.GestureAction;
+import com.android.systemui.statusbar.phone.NavigationPrototypeController.OnPrototypeChangedListener;
 import com.android.systemui.statusbar.policy.DeadZone;
 import com.android.systemui.statusbar.policy.KeyButtonDrawable;
 
@@ -146,6 +149,8 @@
     private RecentsOnboarding mRecentsOnboarding;
     private NotificationPanelView mPanelView;
 
+    private NavigationPrototypeController mPrototypeController;
+    private NavigationGestureAction[] mDefaultGestureMap;
     private QuickScrubAction mQuickScrubAction;
     private QuickStepAction mQuickStepAction;
     private NavigationBackAction mBackAction;
@@ -261,6 +266,18 @@
         }
     };
 
+    private OnPrototypeChangedListener mPrototypeListener = new OnPrototypeChangedListener() {
+        @Override
+        public void onGestureRemap(int[] actions) {
+            updateNavigationGestures();
+        }
+
+        @Override
+        public void onBackButtonVisibilityChanged(boolean visible) {
+            getBackButton().setVisibility(visible ? VISIBLE : GONE);
+        }
+    };
+
     public NavigationBarView(Context context, AttributeSet attrs) {
         super(context, attrs);
 
@@ -309,6 +326,14 @@
         mQuickScrubAction = new QuickScrubAction(this, mOverviewProxyService);
         mQuickStepAction = new QuickStepAction(this, mOverviewProxyService);
         mBackAction = new NavigationBackAction(this, mOverviewProxyService);
+        mDefaultGestureMap = new NavigationGestureAction[] {
+                mQuickStepAction, null /* swipeDownAction*/, null /* swipeLeftAction */,
+                mQuickScrubAction
+        };
+
+        mPrototypeController = new NavigationPrototypeController(mHandler, mContext);
+        mPrototypeController.register();
+        mPrototypeController.setOnPrototypeChangedListener(mPrototypeListener);
     }
 
     public BarTransitions getBarTransitions() {
@@ -323,8 +348,32 @@
         mPanelView = panel;
         if (mGestureHelper instanceof QuickStepController) {
             ((QuickStepController) mGestureHelper).setComponents(this);
-            ((QuickStepController) mGestureHelper).setGestureActions(mQuickStepAction,
-                    null /* swipeDownAction*/, mBackAction, mQuickScrubAction);
+            updateNavigationGestures();
+        }
+    }
+
+    private void updateNavigationGestures() {
+        if (mGestureHelper instanceof QuickStepController) {
+            final int[] assignedMap = mPrototypeController.getGestureActionMap();
+            ((QuickStepController) mGestureHelper).setGestureActions(
+                    getNavigationActionFromType(assignedMap[0], mDefaultGestureMap[0]),
+                    getNavigationActionFromType(assignedMap[1], mDefaultGestureMap[1]),
+                    getNavigationActionFromType(assignedMap[2], mDefaultGestureMap[2]),
+                    getNavigationActionFromType(assignedMap[3], mDefaultGestureMap[3]));
+        }
+    }
+
+    private NavigationGestureAction getNavigationActionFromType(@GestureAction int actionType,
+            NavigationGestureAction defaultAction) {
+        switch(actionType) {
+            case NavigationPrototypeController.ACTION_QUICKSTEP:
+                return mQuickStepAction;
+            case NavigationPrototypeController.ACTION_QUICKSCRUB:
+                return mQuickScrubAction;
+            case NavigationPrototypeController.ACTION_BACK:
+                return mBackAction;
+            default:
+                return defaultAction;
         }
     }
 
@@ -902,9 +951,10 @@
     private void updateTaskSwitchHelper() {
         if (mGestureHelper == null) return;
         boolean isRtl = (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL);
-        int navBarPos = 0;
+        int navBarPos = NAV_BAR_INVALID;
         try {
-            navBarPos = WindowManagerGlobal.getWindowManagerService().getNavBarPosition();
+            navBarPos = WindowManagerGlobal.getWindowManagerService().getNavBarPosition(
+                    mDisplay.getDisplayId());
         } catch (RemoteException e) {
             Slog.e(TAG, "Failed to get nav bar position.", e);
         }
@@ -1042,6 +1092,7 @@
         if (mGestureHelper != null) {
             mGestureHelper.destroy();
         }
+        mPrototypeController.unregister();
         setUpSwipeUpOnboarding(false);
         for (int i = 0; i < mButtonDispatchers.size(); ++i) {
             mButtonDispatchers.valueAt(i).onDestroy();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationGestureAction.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationGestureAction.java
index 83067f6..a8d00c4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationGestureAction.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationGestureAction.java
@@ -127,6 +127,15 @@
     }
 
     /**
+     * Decide if the controller should not send the current motion event to launcher via
+     * {@link OverviewProxyService}
+     * @return if controller should not proxy
+     */
+    public boolean disableProxyEvents() {
+        return false;
+    }
+
+    /**
      * Tell if action is enabled. Compared to {@link #canPerformAction()} this is based on settings
      * if the action is disabled for a particular gesture. For example a back action can be enabled
      * however if there is nothing to back to then {@link #canPerformAction()} should return false.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationPrototypeController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationPrototypeController.java
new file mode 100644
index 0000000..e8c0bf1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationPrototypeController.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2008 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.systemui.statusbar.phone;
+
+import android.annotation.IntDef;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
+
+import android.util.Log;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Coordinates with the prototype settings plugin app that uses Settings.Global to allow different
+ * prototypes to run in the system. The class will handle communication changes from the settings
+ * app and call back to listeners.
+ */
+public class NavigationPrototypeController extends ContentObserver {
+    private static final String HIDE_BACK_BUTTON_SETTING = "quickstepcontroller_hideback";
+
+    static final String NAVBAR_EXPERIMENTS_DISABLED = "navbarexperiments_disabled";
+    private final String GESTURE_MATCH_SETTING = "quickstepcontroller_gesture_match_map";
+
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({ACTION_DEFAULT, ACTION_QUICKSTEP, ACTION_QUICKSCRUB, ACTION_BACK})
+    @interface GestureAction {}
+    static final int ACTION_DEFAULT = 0;
+    static final int ACTION_QUICKSTEP = 1;
+    static final int ACTION_QUICKSCRUB = 2;
+    static final int ACTION_BACK = 3;
+
+    private OnPrototypeChangedListener mListener;
+
+    /**
+     * Each index corresponds to a different action set in QuickStepController
+     * {@see updateSwipeLTRBackSetting}
+     */
+    private int[] mActionMap = new int[4];
+
+    private final Context mContext;
+
+    public NavigationPrototypeController(Handler handler, Context context) {
+        super(handler);
+        mContext = context;
+        updateSwipeLTRBackSetting();
+    }
+
+    public void setOnPrototypeChangedListener(OnPrototypeChangedListener listener) {
+        mListener = listener;
+    }
+
+    /**
+     * Observe all the settings to react to from prototype settings
+     */
+    public void register() {
+        registerObserver(HIDE_BACK_BUTTON_SETTING);
+        registerObserver(GESTURE_MATCH_SETTING);
+    }
+
+    /**
+     * Disable observing settings to react to from prototype settings
+     */
+    public void unregister() {
+        mContext.getContentResolver().unregisterContentObserver(this);
+    }
+
+    @Override
+    public void onChange(boolean selfChange, Uri uri) {
+        super.onChange(selfChange, uri);
+        if (!selfChange && mListener != null) {
+            try {
+                final String path = uri.getPath();
+                if (path.endsWith(GESTURE_MATCH_SETTING)) {
+                    // Get the settings gesture map corresponding to each action
+                    // {@see updateSwipeLTRBackSetting}
+                    updateSwipeLTRBackSetting();
+                    mListener.onGestureRemap(mActionMap);
+                } else if (path.endsWith(HIDE_BACK_BUTTON_SETTING)) {
+                    mListener.onBackButtonVisibilityChanged(
+                            !getGlobalBool(HIDE_BACK_BUTTON_SETTING));
+                }
+            } catch (SettingNotFoundException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    /**
+     * Retrieve the action map to apply to the quick step controller
+     * @return an action map
+     */
+    int[] getGestureActionMap() {
+        return mActionMap;
+    }
+
+    /**
+     * Since Settings.Global cannot pass arrays, use a string to represent each character as a
+     * gesture map to actions corresponding to {@see GestureAction}. The number is represented as:
+     * Number: [up] [down] [left] [right]
+     */
+    private void updateSwipeLTRBackSetting() {
+        String value = Settings.Global.getString(mContext.getContentResolver(),
+                GESTURE_MATCH_SETTING);
+        if (value != null) {
+            for (int i = 0; i < mActionMap.length; ++i) {
+                mActionMap[i] = Character.getNumericValue(value.charAt(i));
+            }
+        }
+    }
+
+    private boolean getGlobalBool(String name) throws SettingNotFoundException {
+        return Settings.Global.getInt(mContext.getContentResolver(), name) == 1;
+    }
+
+    private void registerObserver(String name) {
+        mContext.getContentResolver()
+                .registerContentObserver(Settings.Global.getUriFor(name), false, this);
+    }
+
+    public interface OnPrototypeChangedListener {
+        void onGestureRemap(@GestureAction int[] actions);
+        void onBackButtonVisibilityChanged(boolean visible);
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java
new file mode 100644
index 0000000..3e31fa0
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java
@@ -0,0 +1,490 @@
+/*
+ * 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.systemui.statusbar.phone;
+
+import android.annotation.NonNull;
+import android.app.Notification;
+import android.os.SystemClock;
+import android.service.notification.StatusBarNotification;
+import android.util.ArrayMap;
+
+import com.android.systemui.Dependency;
+import com.android.systemui.statusbar.AlertingNotificationManager;
+import com.android.systemui.statusbar.AmbientPulseManager;
+import com.android.systemui.statusbar.AmbientPulseManager.OnAmbientChangedListener;
+import com.android.systemui.statusbar.InflationTask;
+import com.android.systemui.statusbar.StatusBarStateController;
+import com.android.systemui.statusbar.StatusBarStateController.StateListener;
+import com.android.systemui.statusbar.notification.NotificationData.Entry;
+import com.android.systemui.statusbar.notification.row.NotificationInflater.AsyncInflationTask;
+import com.android.systemui.statusbar.notification.row.NotificationInflater.InflationFlag;
+import com.android.systemui.statusbar.phone.NotificationGroupManager.NotificationGroup;
+import com.android.systemui.statusbar.phone.NotificationGroupManager.OnGroupChangeListener;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
+import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Objects;
+
+/**
+ * A helper class dealing with the alert interactions between {@link NotificationGroupManager},
+ * {@link HeadsUpManager}, {@link AmbientPulseManager}. In particular, this class deals with keeping
+ * the correct notification in a group alerting based off the group suppression.
+ */
+public class NotificationGroupAlertTransferHelper implements OnGroupChangeListener,
+        OnHeadsUpChangedListener, OnAmbientChangedListener, StateListener {
+
+    private static final long ALERT_TRANSFER_TIMEOUT = 300;
+
+    /**
+     * The list of entries containing group alert metadata for each group. Keyed by group key.
+     */
+    private final ArrayMap<String, GroupAlertEntry> mGroupAlertEntries = new ArrayMap<>();
+
+    /**
+     * The list of entries currently inflating that should alert after inflation. Keyed by
+     * notification key.
+     */
+    private final ArrayMap<String, PendingAlertInfo> mPendingAlerts = new ArrayMap<>();
+
+    private HeadsUpManager mHeadsUpManager;
+    private final AmbientPulseManager mAmbientPulseManager =
+            Dependency.get(AmbientPulseManager.class);
+    private final NotificationGroupManager mGroupManager =
+            Dependency.get(NotificationGroupManager.class);
+
+    // TODO(b/119637830): It would be good if GroupManager already had all pending notifications as
+    // normal children (i.e. add notifications to GroupManager before inflation) so that we don't
+    // have to have this dependency. We'd also have to worry less about the suppression not being up
+    // to date.
+    /**
+     * Notifications that are currently inflating for the first time. Used to remove an incorrectly
+     * alerting notification faster.
+     */
+    private HashMap<String, Entry> mPendingNotifications;
+
+    private boolean mIsDozing;
+
+    public NotificationGroupAlertTransferHelper() {
+        Dependency.get(StatusBarStateController.class).addListener(this);
+    }
+
+    /**
+     * Whether or not a notification has transferred its alert state to the notification and
+     * the notification should alert after inflating.
+     *
+     * @param entry notification to check
+     * @return true if the entry was transferred to and should inflate + alert
+     */
+    public boolean isAlertTransferPending(@NonNull Entry entry) {
+        PendingAlertInfo alertInfo = mPendingAlerts.get(entry.key);
+        return alertInfo != null && alertInfo.isStillValid();
+    }
+
+    /**
+     * Removes any alerts pending on this entry. Note that this will not stop any inflation tasks
+     * started by a transfer, so this should only be used as clean-up for when inflation is stopped
+     * and the pending alert no longer needs to happen.
+     *
+     * @param key notification key that may have info that needs to be cleaned up
+     */
+    public void cleanUpPendingAlertInfo(@NonNull String key) {
+        mPendingAlerts.remove(key);
+    }
+
+    public void setHeadsUpManager(HeadsUpManager headsUpManager) {
+        mHeadsUpManager = headsUpManager;
+    }
+
+    public void setPendingEntries(HashMap<String, Entry> pendingNotifications) {
+        mPendingNotifications = pendingNotifications;
+    }
+
+    @Override
+    public void onStateChanged(int newState) {}
+
+    @Override
+    public void onDozingChanged(boolean isDozing) {
+        if (mIsDozing != isDozing) {
+            for (GroupAlertEntry groupAlertEntry : mGroupAlertEntries.values()) {
+                groupAlertEntry.mLastAlertTransferTime = 0;
+                groupAlertEntry.mAlertSummaryOnNextAddition = false;
+            }
+        }
+        mIsDozing = isDozing;
+    }
+
+    @Override
+    public void onGroupCreated(NotificationGroup group, String groupKey) {
+        mGroupAlertEntries.put(groupKey, new GroupAlertEntry(group));
+    }
+
+    @Override
+    public void onGroupRemoved(NotificationGroup group, String groupKey) {
+        mGroupAlertEntries.remove(groupKey);
+    }
+
+    @Override
+    public void onGroupSuppressionChanged(NotificationGroup group, boolean suppressed) {
+        AlertingNotificationManager alertManager = getActiveAlertManager();
+        if (suppressed) {
+            if (alertManager.isAlerting(group.summary.key)) {
+                handleSuppressedSummaryAlerted(group.summary, alertManager);
+            }
+        } else {
+            // Group summary can be null if we are no longer suppressed because the summary was
+            // removed. In that case, we don't need to alert the summary.
+            if (group.summary == null) {
+                return;
+            }
+            GroupAlertEntry groupAlertEntry = mGroupAlertEntries.get(mGroupManager.getGroupKey(
+                    group.summary.notification));
+            // Group is no longer suppressed. We should check if we need to transfer the alert
+            // back to the summary now that it's no longer suppressed.
+            if (groupAlertEntry.mAlertSummaryOnNextAddition) {
+                if (!alertManager.isAlerting(group.summary.key)) {
+                    alertNotificationWhenPossible(group.summary, alertManager);
+                }
+                groupAlertEntry.mAlertSummaryOnNextAddition = false;
+            } else {
+                checkShouldTransferBack(groupAlertEntry);
+            }
+        }
+    }
+
+    @Override
+    public void onAmbientStateChanged(Entry entry, boolean isAmbient) {
+        onAlertStateChanged(entry, isAmbient, mAmbientPulseManager);
+    }
+
+    @Override
+    public void onHeadsUpStateChanged(Entry entry, boolean isHeadsUp) {
+        onAlertStateChanged(entry, isHeadsUp, mHeadsUpManager);
+    }
+
+    private void onAlertStateChanged(Entry entry, boolean isAlerting,
+            AlertingNotificationManager alertManager) {
+        if (isAlerting && mGroupManager.isSummaryOfSuppressedGroup(entry.notification)) {
+            handleSuppressedSummaryAlerted(entry, alertManager);
+        }
+    }
+
+    /**
+     * Called when the entry's reinflation has finished. If there is an alert pending, we then
+     * show the alert.
+     *
+     * @param entry entry whose inflation has finished
+     */
+    public void onInflationFinished(@NonNull Entry entry) {
+        PendingAlertInfo alertInfo = mPendingAlerts.remove(entry.key);
+        if (alertInfo != null) {
+            if (alertInfo.isStillValid()) {
+                alertNotificationWhenPossible(entry, getActiveAlertManager());
+            } else {
+                // The transfer is no longer valid. Free the content.
+                entry.getRow().freeContentViewWhenSafe(alertInfo.mAlertManager.getContentFlag());
+            }
+        }
+    }
+
+    /**
+     * Called when a new notification has been posted but is not inflated yet. We use this to see
+     * as early as we can if we need to abort a transfer.
+     *
+     * @param entry entry that has been added
+     */
+    public void onPendingEntryAdded(@NonNull Entry entry) {
+        String groupKey = mGroupManager.getGroupKey(entry.notification);
+        GroupAlertEntry groupAlertEntry = mGroupAlertEntries.get(groupKey);
+        if (groupAlertEntry != null) {
+            checkShouldTransferBack(groupAlertEntry);
+        }
+    }
+
+    /**
+     * Gets the number of new notifications pending inflation that will be added to the group
+     * but currently aren't and should not alert.
+     *
+     * @param group group to check
+     * @return the number of new notifications that will be added to the group
+     */
+    private int getPendingChildrenNotAlerting(@NonNull NotificationGroup group) {
+        if (mPendingNotifications == null) {
+            return 0;
+        }
+        int number = 0;
+        Collection<Entry> values = mPendingNotifications.values();
+        for (Entry entry : values) {
+            if (isPendingNotificationInGroup(entry, group) && onlySummaryAlerts(entry)) {
+                number++;
+            }
+        }
+        return number;
+    }
+
+    /**
+     * Checks if the pending inflations will add children to this group.
+     *
+     * @param group group to check
+     * @return true if a pending notification will add to this group
+     */
+    private boolean pendingInflationsWillAddChildren(@NonNull NotificationGroup group) {
+        if (mPendingNotifications == null) {
+            return false;
+        }
+        Collection<Entry> values = mPendingNotifications.values();
+        for (Entry entry : values) {
+            if (isPendingNotificationInGroup(entry, group)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Checks if a new pending notification will be added to the group.
+     *
+     * @param entry pending notification
+     * @param group group to check
+     * @return true if the notification will add to the group, false o/w
+     */
+    private boolean isPendingNotificationInGroup(@NonNull Entry entry,
+            @NonNull NotificationGroup group) {
+        String groupKey = mGroupManager.getGroupKey(group.summary.notification);
+        return mGroupManager.isGroupChild(entry.notification)
+                && Objects.equals(mGroupManager.getGroupKey(entry.notification), groupKey)
+                && !group.children.containsKey(entry.key);
+    }
+
+    /**
+     * Handles the scenario where a summary that has been suppressed is alerted.  A suppressed
+     * summary should for all intents and purposes be invisible to the user and as a result should
+     * not alert.  When this is the case, it is our responsibility to pass the alert to the
+     * appropriate child which will be the representative notification alerting for the group.
+     *
+     * @param summary the summary that is suppressed and alerting
+     * @param alertManager the alert manager that manages the alerting summary
+     */
+    private void handleSuppressedSummaryAlerted(@NonNull Entry summary,
+            @NonNull AlertingNotificationManager alertManager) {
+        StatusBarNotification sbn = summary.notification;
+        GroupAlertEntry groupAlertEntry =
+                mGroupAlertEntries.get(mGroupManager.getGroupKey(sbn));
+        if (!mGroupManager.isSummaryOfSuppressedGroup(summary.notification)
+                || !alertManager.isAlerting(sbn.getKey())
+                || groupAlertEntry == null) {
+            return;
+        }
+
+        if (pendingInflationsWillAddChildren(groupAlertEntry.mGroup)) {
+            // New children will actually be added to this group, let's not transfer the alert.
+            return;
+        }
+
+        Entry child = mGroupManager.getLogicalChildren(summary.notification).iterator().next();
+        if (child != null) {
+            if (child.getRow().keepInParent()
+                    || child.isRowRemoved()
+                    || child.isRowDismissed()) {
+                // The notification is actually already removed. No need to alert it.
+                return;
+            }
+            if (!alertManager.isAlerting(child.key) && onlySummaryAlerts(summary)) {
+                groupAlertEntry.mLastAlertTransferTime = SystemClock.elapsedRealtime();
+            }
+            transferAlertState(summary, child, alertManager);
+        }
+    }
+
+    /**
+     * Transfers the alert state one entry to another. We remove the alert from the first entry
+     * immediately to have the incorrect one up as short as possible. The second should alert
+     * when possible.
+     *
+     * @param fromEntry entry to transfer alert from
+     * @param toEntry entry to transfer to
+     * @param alertManager alert manager for the alert type
+     */
+    private void transferAlertState(@NonNull Entry fromEntry, @NonNull Entry toEntry,
+            @NonNull AlertingNotificationManager alertManager) {
+        alertManager.removeNotification(fromEntry.key, true /* releaseImmediately */);
+        alertNotificationWhenPossible(toEntry, alertManager);
+    }
+
+    /**
+     * Determines if we need to transfer the alert back to the summary from the child and does
+     * so if needed.
+     *
+     * This can happen since notification groups are not delivered as a whole unit and it is
+     * possible we erroneously transfer the alert from the summary to the child even though
+     * more children are coming. Thus, if a child is added within a certain timeframe after we
+     * transfer, we back out and alert the summary again.
+     *
+     * @param groupAlertEntry group alert entry to check
+     */
+    private void checkShouldTransferBack(@NonNull GroupAlertEntry groupAlertEntry) {
+        if (SystemClock.elapsedRealtime() - groupAlertEntry.mLastAlertTransferTime
+                < ALERT_TRANSFER_TIMEOUT) {
+            Entry summary = groupAlertEntry.mGroup.summary;
+            AlertingNotificationManager alertManager = getActiveAlertManager();
+
+            if (!onlySummaryAlerts(summary)) {
+                return;
+            }
+            ArrayList<Entry> children = mGroupManager.getLogicalChildren(summary.notification);
+            int numChildren = children.size();
+            int numPendingChildren = getPendingChildrenNotAlerting(groupAlertEntry.mGroup);
+            numChildren += numPendingChildren;
+            if (numChildren <= 1) {
+                return;
+            }
+            boolean releasedChild = false;
+            for (int i = 0; i < children.size(); i++) {
+                Entry entry = children.get(i);
+                if (onlySummaryAlerts(entry) && alertManager.isAlerting(entry.key)) {
+                    releasedChild = true;
+                    alertManager.removeNotification(entry.key, true /* releaseImmediately */);
+                }
+                if (mPendingAlerts.containsKey(entry.key)) {
+                    // This is the child that would've been removed if it was inflated.
+                    releasedChild = true;
+                    mPendingAlerts.get(entry.key).mAbortOnInflation = true;
+                }
+            }
+            if (releasedChild && !alertManager.isAlerting(summary.key)) {
+                boolean notifyImmediately = (numChildren - numPendingChildren) > 1;
+                if (notifyImmediately) {
+                    alertNotificationWhenPossible(summary, alertManager);
+                } else {
+                    // Should wait until the pending child inflates before alerting.
+                    groupAlertEntry.mAlertSummaryOnNextAddition = true;
+                }
+                groupAlertEntry.mLastAlertTransferTime = 0;
+            }
+        }
+    }
+
+    /**
+     * Tries to alert the notification. If its content view is not inflated, we inflate and continue
+     * when the entry finishes inflating the view.
+     *
+     * @param entry entry to show
+     * @param alertManager alert manager for the alert type
+     */
+    private void alertNotificationWhenPossible(@NonNull Entry entry,
+            @NonNull AlertingNotificationManager alertManager) {
+        @InflationFlag int contentFlag = alertManager.getContentFlag();
+        if (!entry.getRow().isInflationFlagSet(contentFlag)) {
+            mPendingAlerts.put(entry.key, new PendingAlertInfo(entry, alertManager));
+            entry.getRow().updateInflationFlag(contentFlag, true /* shouldInflate */);
+            entry.getRow().inflateViews();
+            return;
+        }
+        if (alertManager.isAlerting(entry.key)) {
+            alertManager.updateNotification(entry.key, true /* alert */);
+        } else {
+            alertManager.showNotification(entry);
+        }
+    }
+
+    private AlertingNotificationManager getActiveAlertManager() {
+        return mIsDozing ? mAmbientPulseManager : mHeadsUpManager;
+    }
+
+    private boolean onlySummaryAlerts(Entry entry) {
+        return entry.notification.getNotification().getGroupAlertBehavior()
+                == Notification.GROUP_ALERT_SUMMARY;
+    }
+
+    /**
+     * Information about a pending alert used to determine if the alert is still needed when
+     * inflation completes.
+     */
+    private class PendingAlertInfo {
+        /**
+         * The alert manager when the transfer is initiated.
+         */
+        final AlertingNotificationManager mAlertManager;
+
+        /**
+         * The original notification when the transfer is initiated. This is used to determine if
+         * the transfer is still valid if the notification is updated.
+         */
+        final StatusBarNotification mOriginalNotification;
+        final Entry mEntry;
+
+        /**
+         * The notification is still pending inflation but we've decided that we no longer need
+         * the content view (e.g. suppression might have changed and we decided we need to transfer
+         * back). However, there is no way to abort just this inflation if other inflation requests
+         * have started (see {@link AsyncInflationTask#supersedeTask(InflationTask)}). So instead
+         * we just flag it as aborted and free when it's inflated.
+         */
+        boolean mAbortOnInflation;
+
+        PendingAlertInfo(Entry entry, AlertingNotificationManager alertManager) {
+            mOriginalNotification = entry.notification;
+            mEntry = entry;
+            mAlertManager = alertManager;
+        }
+
+        /**
+         * Whether or not the pending alert is still valid and should still alert after inflation.
+         *
+         * @return true if the pending alert should still occur, false o/w
+         */
+        private boolean isStillValid() {
+            if (mAbortOnInflation) {
+                // Notification is aborted due to the transfer being explicitly cancelled
+                return false;
+            }
+            if (mAlertManager != getActiveAlertManager()) {
+                // Alert manager has changed
+                return false;
+            }
+            if (mEntry.notification.getGroupKey() != mOriginalNotification.getGroupKey()) {
+                // Groups have changed
+                return false;
+            }
+            if (mEntry.notification.getNotification().isGroupSummary()
+                    != mOriginalNotification.getNotification().isGroupSummary()) {
+                // Notification has changed from group summary to not or vice versa
+                return false;
+            }
+            return true;
+        }
+    }
+
+    /**
+     * Contains alert metadata for the notification group used to determine when/how the alert
+     * should be transferred.
+     */
+    private static class GroupAlertEntry {
+        /**
+         * The time when the last alert transfer from summary to child happened.
+         */
+        long mLastAlertTransferTime;
+        boolean mAlertSummaryOnNextAddition;
+        final NotificationGroup mGroup;
+
+        GroupAlertEntry(NotificationGroup group) {
+            this.mGroup = group;
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
index 6b12dd9..448b5c3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
@@ -16,17 +16,12 @@
 
 package com.android.systemui.statusbar.phone;
 
-import android.app.Notification;
-import android.os.SystemClock;
+import android.annotation.Nullable;
 import android.service.notification.StatusBarNotification;
+import android.util.ArraySet;
 import android.util.Log;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.internal.annotations.VisibleForTesting;
 import com.android.systemui.Dependency;
-import com.android.systemui.statusbar.AlertingNotificationManager;
 import com.android.systemui.statusbar.AmbientPulseManager;
 import com.android.systemui.statusbar.AmbientPulseManager.OnAmbientChangedListener;
 import com.android.systemui.statusbar.StatusBarState;
@@ -40,9 +35,7 @@
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Objects;
 
@@ -53,23 +46,25 @@
         OnAmbientChangedListener, StateListener {
 
     private static final String TAG = "NotificationGroupManager";
-    private static final long ALERT_TRANSFER_TIMEOUT = 300;
     private final HashMap<String, NotificationGroup> mGroupMap = new HashMap<>();
-    private OnGroupChangeListener mListener;
+    private final ArraySet<OnGroupChangeListener> mListeners = new ArraySet<>();
     private int mBarState = -1;
     private HashMap<String, StatusBarNotification> mIsolatedEntries = new HashMap<>();
     private HeadsUpManager mHeadsUpManager;
     private AmbientPulseManager mAmbientPulseManager = Dependency.get(AmbientPulseManager.class);
-    private boolean mIsDozing;
     private boolean mIsUpdatingUnchangedGroup;
-    private HashMap<String, NotificationData.Entry> mPendingNotifications;
 
     public NotificationGroupManager() {
         Dependency.get(StatusBarStateController.class).addListener(this);
     }
 
-    public void setOnGroupChangeListener(OnGroupChangeListener listener) {
-        mListener = listener;
+    /**
+     * Add a listener for changes to groups.
+     *
+     * @param listener listener to add
+     */
+    public void addOnGroupChangeListener(OnGroupChangeListener listener) {
+        mListeners.add(listener);
     }
 
     public boolean isGroupExpanded(StatusBarNotification sbn) {
@@ -91,7 +86,9 @@
     private void setGroupExpanded(NotificationGroup group, boolean expanded) {
         group.expanded = expanded;
         if (group.summary != null) {
-            mListener.onGroupExpansionChanged(group.summary.row, expanded);
+            for (OnGroupChangeListener listener : mListeners) {
+                listener.onGroupExpansionChanged(group.summary.getRow(), expanded);
+            }
         }
     }
 
@@ -127,12 +124,15 @@
         if (group.children.isEmpty()) {
             if (group.summary == null) {
                 mGroupMap.remove(groupKey);
+                for (OnGroupChangeListener listener : mListeners) {
+                    listener.onGroupRemoved(group, groupKey);
+                }
             }
         }
     }
 
     public void onEntryAdded(final NotificationData.Entry added) {
-        if (added.row.isRemoved()) {
+        if (added.isRowRemoved()) {
             added.setDebugThrowable(new Throwable());
         }
         final StatusBarNotification sbn = added.notification;
@@ -142,23 +142,26 @@
         if (group == null) {
             group = new NotificationGroup();
             mGroupMap.put(groupKey, group);
+            for (OnGroupChangeListener listener : mListeners) {
+                listener.onGroupCreated(group, groupKey);
+            }
         }
         if (isGroupChild) {
             NotificationData.Entry existing = group.children.get(added.key);
             if (existing != null && existing != added) {
                 Throwable existingThrowable = existing.getDebugThrowable();
                 Log.wtf(TAG, "Inconsistent entries found with the same key " + added.key
-                        + "existing removed: " + existing.row.isRemoved()
+                        + "existing removed: " + existing.isRowRemoved()
                         + (existingThrowable != null
                                 ? Log.getStackTraceString(existingThrowable) + "\n": "")
-                        + " added removed" + added.row.isRemoved()
+                        + " added removed" + added.isRowRemoved()
                         , new Throwable());
             }
             group.children.put(added.key, added);
             updateSuppression(group);
         } else {
             group.summary = added;
-            group.expanded = added.row.areChildrenExpanded();
+            group.expanded = added.areChildrenExpanded();
             updateSuppression(group);
             if (!group.children.isEmpty()) {
                 ArrayList<NotificationData.Entry> childrenCopy
@@ -166,127 +169,13 @@
                 for (NotificationData.Entry child : childrenCopy) {
                     onEntryBecomingChild(child);
                 }
-                mListener.onGroupCreatedFromChildren(group);
-            }
-        }
-        cleanUpAlertStatesOnAdd(group, false /* addIsPending */);
-    }
-
-    public void onPendingEntryAdded(NotificationData.Entry shadeEntry) {
-        String groupKey = getGroupKey(shadeEntry.notification);
-        NotificationGroup group = mGroupMap.get(groupKey);
-        if (group != null) {
-            cleanUpAlertStatesOnAdd(group, true /* addIsPending */);
-        }
-    }
-
-    /**
-     * Set whether or not the device is dozing.  This allows the group manager to reset some
-     * specific alert state logic based off when the state changes.
-     * @param isDozing if the device is dozing.
-     */
-    @VisibleForTesting
-    public void setDozing(boolean isDozing) {
-        if (mIsDozing != isDozing) {
-            for (NotificationGroup group : mGroupMap.values()) {
-                group.lastAlertTransfer = 0;
-                group.alertSummaryOnNextAddition = false;
-            }
-        }
-        mIsDozing = isDozing;
-    }
-
-    /**
-     * Clean up the alert states when a new child was added.
-     * @param group The group where a view was added or will be added.
-     * @param addIsPending True if is the addition still pending or false has it already been added.
-     */
-    private void cleanUpAlertStatesOnAdd(NotificationGroup group, boolean addIsPending) {
-
-        AlertingNotificationManager alertManager =
-                mIsDozing ? mAmbientPulseManager : mHeadsUpManager;
-        if (!addIsPending && group.alertSummaryOnNextAddition) {
-            if (!alertManager.isAlerting(group.summary.key)) {
-                alertManager.showNotification(group.summary);
-            }
-            group.alertSummaryOnNextAddition = false;
-        }
-        // Because notification groups are not delivered as a whole unit, it may happen that a
-        // group child gets added quite a bit after the summary got posted. Our guidance is, that
-        // apps should always post the group summary as well and we'll hide it for them if the child
-        // is the only child in a group. Because of this, we also have to transfer alert to the
-        // child, otherwise the invisible summary would be alerted.
-        // This transfer to the child is not always correct in case the app has just posted another
-        // child in addition to the existing one, but it hasn't arrived in systemUI yet. In such
-        // a scenario we would transfer the alert to the old child and the wrong notification
-        // would be alerted. In order to avoid this, we'll recover from this issue and alert the
-        // summary again instead of the old child if it's within a certain timeout.
-        if (SystemClock.elapsedRealtime() - group.lastAlertTransfer < ALERT_TRANSFER_TIMEOUT) {
-            if (!onlySummaryAlerts(group.summary)) {
-                return;
-            }
-            int numChildren = group.children.size();
-            NotificationData.Entry isolatedChild = getIsolatedChild(getGroupKey(
-                    group.summary.notification));
-            int numPendingChildren = getPendingChildrenNotAlerting(group);
-            numChildren += numPendingChildren;
-            if (isolatedChild != null) {
-                numChildren++;
-            }
-            if (numChildren <= 1) {
-                return;
-            }
-            boolean releasedChild = false;
-            ArrayList<NotificationData.Entry> children = new ArrayList<>(group.children.values());
-            int size = children.size();
-            for (int i = 0; i < size; i++) {
-                NotificationData.Entry entry = children.get(i);
-                if (onlySummaryAlerts(entry) && alertManager.isAlerting(entry.key)) {
-                    releasedChild = true;
-                    alertManager.removeNotification(entry.key, true /* releaseImmediately */);
+                for (OnGroupChangeListener listener : mListeners) {
+                    listener.onGroupCreatedFromChildren(group);
                 }
             }
-            if (isolatedChild != null && onlySummaryAlerts(isolatedChild)
-                    && alertManager.isAlerting(isolatedChild.key)) {
-                releasedChild = true;
-                alertManager.removeNotification(isolatedChild.key, true /* releaseImmediately */);
-            }
-            if (releasedChild && !alertManager.isAlerting(group.summary.key)) {
-                boolean notifyImmediately = (numChildren - numPendingChildren) > 1;
-                if (notifyImmediately) {
-                    alertManager.showNotification(group.summary);
-                } else {
-                    group.alertSummaryOnNextAddition = true;
-                }
-                group.lastAlertTransfer = 0;
-            }
         }
     }
 
-    private int getPendingChildrenNotAlerting(NotificationGroup group) {
-        if (mPendingNotifications == null) {
-            return 0;
-        }
-        int number = 0;
-        String groupKey = getGroupKey(group.summary.notification);
-        Collection<NotificationData.Entry> values = mPendingNotifications.values();
-        for (NotificationData.Entry entry : values) {
-            if (!isGroupChild(entry.notification)) {
-                continue;
-            }
-            if (!Objects.equals(getGroupKey(entry.notification), groupKey)) {
-                continue;
-            }
-            if (group.children.containsKey(entry.key)) {
-                continue;
-            }
-            if (onlySummaryAlerts(entry)) {
-                number++;
-            }
-        }
-        return number;
-    }
-
     private void onEntryBecomingChild(NotificationData.Entry entry) {
         if (shouldIsolate(entry)) {
             isolateNotification(entry);
@@ -304,16 +193,12 @@
                         && group.summary.notification.getNotification().isGroupSummary()
                         && hasIsolatedChildren(group)));
         if (prevSuppressed != group.suppressed) {
-            if (group.suppressed) {
-                if (mHeadsUpManager.isAlerting(group.summary.key)) {
-                    handleSuppressedSummaryAlerted(group.summary, mHeadsUpManager);
-                } else if (mAmbientPulseManager.isAlerting(group.summary.key)) {
-                    handleSuppressedSummaryAlerted(group.summary, mAmbientPulseManager);
+            for (OnGroupChangeListener listener : mListeners) {
+                if (!mIsUpdatingUnchangedGroup) {
+                    listener.onGroupSuppressionChanged(group, group.suppressed);
+                    listener.onGroupsChanged();
                 }
             }
-            if (!mIsUpdatingUnchangedGroup && mListener != null) {
-                mListener.onGroupsChanged();
-            }
         }
     }
 
@@ -377,9 +262,9 @@
         if (!isOnlyChild(sbn)) {
             return false;
         }
-        ExpandableNotificationRow logicalGroupSummary = getLogicalGroupSummary(sbn);
+        NotificationData.Entry logicalGroupSummary = getLogicalGroupSummary(sbn);
         return logicalGroupSummary != null
-                && !logicalGroupSummary.getStatusBarNotification().equals(sbn);
+                && !logicalGroupSummary.notification.equals(sbn);
     }
 
     private int getTotalNumberOfChildren(StatusBarNotification sbn) {
@@ -453,7 +338,7 @@
      * Get the summary of a specified status bar notification. For isolated notification this return
      * itself.
      */
-    public ExpandableNotificationRow getGroupSummary(StatusBarNotification sbn) {
+    public NotificationData.Entry getGroupSummary(StatusBarNotification sbn) {
         return getGroupSummary(getGroupKey(sbn));
     }
 
@@ -462,17 +347,50 @@
      * but the logical summary, i.e when a child is isolated, it still returns the summary as if
      * it wasn't isolated.
      */
-    public ExpandableNotificationRow getLogicalGroupSummary(
-            StatusBarNotification sbn) {
+    public NotificationData.Entry getLogicalGroupSummary(StatusBarNotification sbn) {
         return getGroupSummary(sbn.getGroupKey());
     }
 
     @Nullable
-    private ExpandableNotificationRow getGroupSummary(String groupKey) {
+    private NotificationData.Entry getGroupSummary(String groupKey) {
         NotificationGroup group = mGroupMap.get(groupKey);
+        //TODO: see if this can become an Entry
         return group == null ? null
                 : group.summary == null ? null
-                        : group.summary.row;
+                        : group.summary;
+    }
+
+    /**
+     * Get the children that are logically in the summary's group, whether or not they are isolated.
+     *
+     * @param summary summary of a group
+     * @return list of the children
+     */
+    public ArrayList<NotificationData.Entry> getLogicalChildren(StatusBarNotification summary) {
+        NotificationGroup group = mGroupMap.get(summary.getGroupKey());
+        if (group == null) {
+            return null;
+        }
+        ArrayList<NotificationData.Entry> children = new ArrayList<>(group.children.values());
+        NotificationData.Entry isolatedChild = getIsolatedChild(summary.getGroupKey());
+        if (isolatedChild != null) {
+            children.add(isolatedChild);
+        }
+        return children;
+    }
+
+    /**
+     * Get the group key. May differ from the one in the notification due to the notification
+     * being temporarily isolated.
+     *
+     * @param sbn notification to check
+     * @return the key of the notification
+     */
+    public String getGroupKey(StatusBarNotification sbn) {
+        if (isIsolated(sbn)) {
+            return sbn.getKey();
+        }
+        return sbn.getGroupKey();
     }
 
     /** @return group expansion state after toggling. */
@@ -489,58 +407,58 @@
         return mIsolatedEntries.containsKey(sbn.getKey());
     }
 
-    private boolean isGroupSummary(StatusBarNotification sbn) {
+    /**
+     * Whether a notification is visually a group summary.
+     *
+     * @param sbn notification to check
+     * @return true if it is visually a group summary
+     */
+    public boolean isGroupSummary(StatusBarNotification sbn) {
         if (isIsolated(sbn)) {
             return true;
         }
         return sbn.getNotification().isGroupSummary();
     }
 
-    private boolean isGroupChild(StatusBarNotification sbn) {
+    /**
+     * Whether a notification is visually a group child.
+     *
+     * @param sbn notification to check
+     * @return true if it is visually a group child
+     */
+    public boolean isGroupChild(StatusBarNotification sbn) {
         if (isIsolated(sbn)) {
             return false;
         }
         return sbn.isGroup() && !sbn.getNotification().isGroupSummary();
     }
 
-    private String getGroupKey(StatusBarNotification sbn) {
-        if (isIsolated(sbn)) {
-            return sbn.getKey();
-        }
-        return sbn.getGroupKey();
-    }
-
     @Override
     public void onHeadsUpPinnedModeChanged(boolean inPinnedMode) {
     }
 
     @Override
-    public void onHeadsUpPinned(ExpandableNotificationRow headsUp) {
+    public void onHeadsUpPinned(NotificationData.Entry entry) {
     }
 
     @Override
-    public void onHeadsUpUnPinned(ExpandableNotificationRow headsUp) {
+    public void onHeadsUpUnPinned(NotificationData.Entry entry) {
     }
 
     @Override
     public void onAmbientStateChanged(NotificationData.Entry entry, boolean isAmbient) {
-        onAlertStateChanged(entry, isAmbient, mAmbientPulseManager);
+        onAlertStateChanged(entry, isAmbient);
     }
 
     @Override
     public void onHeadsUpStateChanged(NotificationData.Entry entry, boolean isHeadsUp) {
-        onAlertStateChanged(entry, isHeadsUp, mHeadsUpManager);
+        onAlertStateChanged(entry, isHeadsUp);
     }
 
-    private void onAlertStateChanged(NotificationData.Entry entry, boolean isAlerting,
-            AlertingNotificationManager alertManager) {
-        final StatusBarNotification sbn = entry.notification;
+    private void onAlertStateChanged(NotificationData.Entry entry, boolean isAlerting) {
         if (isAlerting) {
             if (shouldIsolate(entry)) {
                 isolateNotification(entry);
-            } else if (sbn.getNotification().isGroupSummary()
-                    && isGroupSuppressed(sbn.getGroupKey())){
-                handleSuppressedSummaryAlerted(entry, alertManager);
             }
         } else {
             stopIsolatingNotification(entry);
@@ -548,100 +466,6 @@
     }
 
     /**
-     * Handles the scenario where a summary that has been suppressed is alerted.  A suppressed
-     * summary should for all intents and purposes be invisible to the user and as a result should
-     * not alert.  When this is the case, it is our responsibility to pass the alert to the
-     * appropriate child which will be the representative notification alerting for the group.
-     * @param summary the summary that is suppressed and alerting
-     * @param alertManager the alert manager that manages the alerting summary
-     */
-    private void handleSuppressedSummaryAlerted(@NonNull NotificationData.Entry summary,
-            @NonNull AlertingNotificationManager alertManager) {
-        StatusBarNotification sbn = summary.notification;
-        if (!isGroupSuppressed(sbn.getGroupKey())
-                || !sbn.getNotification().isGroupSummary()
-                || !alertManager.isAlerting(sbn.getKey())) {
-            return;
-        }
-
-        // The parent of a suppressed group got alerted, lets alert the child!
-        NotificationGroup notificationGroup = mGroupMap.get(sbn.getGroupKey());
-
-        if (notificationGroup != null) {
-            if (pendingInflationsWillAddChildren(notificationGroup)) {
-                // New children will actually be added to this group, let's not transfer the alert.
-                return;
-            }
-
-            Iterator<NotificationData.Entry> iterator
-                    = notificationGroup.children.values().iterator();
-            NotificationData.Entry child = iterator.hasNext() ? iterator.next() : null;
-            if (child == null) {
-                child = getIsolatedChild(sbn.getGroupKey());
-            }
-            if (child != null) {
-                if (child.row.keepInParent() || child.row.isRemoved() || child.row.isDismissed()) {
-                    // the notification is actually already removed, no need to do alert on it.
-                    return;
-                }
-                transferAlertStateToChild(summary, child, alertManager);
-            }
-        }
-    }
-
-    /**
-     * Transfers the alert state from a given summary notification to the specified child.  The
-     * result is the child will now alert while the summary does not.
-     *
-     * @param summary the currently alerting summary notification
-     * @param child the child that should receive the alert
-     * @param alertManager the manager for the alert
-     */
-    private void transferAlertStateToChild(@NonNull NotificationData.Entry summary,
-            @NonNull NotificationData.Entry child,
-            @NonNull AlertingNotificationManager alertManager) {
-        NotificationGroup notificationGroup = mGroupMap.get(summary.notification.getGroupKey());
-        if (alertManager.isAlerting(child.key)) {
-            alertManager.updateNotification(child.key, true /* alert */);
-        } else {
-            if (onlySummaryAlerts(summary)) {
-                notificationGroup.lastAlertTransfer = SystemClock.elapsedRealtime();
-            }
-            alertManager.showNotification(child);
-        }
-        alertManager.removeNotification(summary.key, true /* releaseImmediately */);
-    }
-
-    private boolean onlySummaryAlerts(NotificationData.Entry entry) {
-        return entry.notification.getNotification().getGroupAlertBehavior()
-                == Notification.GROUP_ALERT_SUMMARY;
-    }
-
-    /**
-     * Check if the pending inflations will add children to this group.
-     * @param group The group to check.
-     */
-    private boolean pendingInflationsWillAddChildren(NotificationGroup group) {
-        if (mPendingNotifications == null) {
-            return false;
-        }
-        Collection<NotificationData.Entry> values = mPendingNotifications.values();
-        String groupKey = getGroupKey(group.summary.notification);
-        for (NotificationData.Entry entry : values) {
-            if (!isGroupChild(entry.notification)) {
-                continue;
-            }
-            if (!Objects.equals(getGroupKey(entry.notification), groupKey)) {
-                continue;
-            }
-            if (!group.children.containsKey(entry.key)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
      * Whether a notification that is normally part of a group should be temporarily isolated from
      * the group and put in their own group visually.  This generally happens when the notification
      * is alerting.
@@ -656,10 +480,7 @@
         if (!sbn.isGroup() || sbn.getNotification().isGroupSummary()) {
             return false;
         }
-        if (!mIsDozing && !mHeadsUpManager.isAlerting(entry.key)) {
-            return false;
-        }
-        if (mIsDozing && !mAmbientPulseManager.isAlerting(entry.key)) {
+        if (!mHeadsUpManager.isAlerting(entry.key) && !mAmbientPulseManager.isAlerting(entry.key)) {
             return false;
         }
         return (sbn.getNotification().fullScreenIntent != null
@@ -687,7 +508,9 @@
         // When the notification gets added afterwards it is already isolated and therefore
         // it doesn't lead to an update.
         updateSuppression(mGroupMap.get(entry.notification.getGroupKey()));
-        mListener.onGroupsChanged();
+        for (OnGroupChangeListener listener : mListeners) {
+            listener.onGroupsChanged();
+        }
     }
 
     /**
@@ -702,14 +525,15 @@
             onEntryRemovedInternal(entry, entry.notification);
             mIsolatedEntries.remove(sbn.getKey());
             onEntryAdded(entry);
-            mListener.onGroupsChanged();
+            for (OnGroupChangeListener listener : mListeners) {
+                listener.onGroupsChanged();
+            }
         }
     }
 
     private boolean isGroupNotFullyVisible(NotificationGroup notificationGroup) {
         return notificationGroup.summary == null
-                || notificationGroup.summary.row.getClipTopAmount() > 0
-                || notificationGroup.summary.row.getTranslationY() < 0;
+                || notificationGroup.summary.isGroupNotFullyVisible();
     }
 
     public void setHeadsUpManager(HeadsUpManager headsUpManager) {
@@ -729,20 +553,11 @@
         }
     }
 
-    public void setPendingEntries(HashMap<String, NotificationData.Entry> pendingNotifications) {
-        mPendingNotifications = pendingNotifications;
-    }
-
     @Override
     public void onStateChanged(int newState) {
         setStatusBarState(newState);
     }
 
-    @Override
-    public void onDozingChanged(boolean isDozing) {
-        setDozing(isDozing);
-    }
-
     public static class NotificationGroup {
         public final HashMap<String, NotificationData.Entry> children = new HashMap<>();
         public NotificationData.Entry summary;
@@ -751,12 +566,6 @@
          * Is this notification group suppressed, i.e its summary is hidden
          */
         public boolean suppressed;
-        /**
-         * The time when the last alert transfer from group to child happened, while the summary
-         * has the flags to alert up on its own.
-         */
-        public long lastAlertTransfer;
-        public boolean alertSummaryOnNextAddition;
 
         @Override
         public String toString() {
@@ -777,13 +586,39 @@
     }
 
     public interface OnGroupChangeListener {
+
+        /**
+         * A new group has been created.
+         *
+         * @param group the group that was created
+         * @param groupKey the group's key
+         */
+        default void onGroupCreated(NotificationGroup group, String groupKey) {}
+
+        /**
+         * A group has been removed.
+         *
+         * @param group the group that was removed
+         * @param groupKey the group's key
+         */
+        default void onGroupRemoved(NotificationGroup group, String groupKey) {}
+
+        /**
+         * The suppression of a group has changed.
+         *
+         * @param group the group that has changed
+         * @param suppressed true if the group is now suppressed, false o/w
+         */
+        default void onGroupSuppressionChanged(NotificationGroup group, boolean suppressed) {}
+
         /**
          * The expansion of a group has changed.
          *
          * @param changedRow the row for which the expansion has changed, which is also the summary
          * @param expanded a boolean indicating the new expanded state
          */
-        void onGroupExpansionChanged(ExpandableNotificationRow changedRow, boolean expanded);
+        default void onGroupExpansionChanged(ExpandableNotificationRow changedRow,
+                boolean expanded) {}
 
         /**
          * A group of children just received a summary notification and should therefore become
@@ -791,12 +626,12 @@
          *
          * @param group the group created
          */
-        void onGroupCreatedFromChildren(NotificationGroup group);
+        default void onGroupCreatedFromChildren(NotificationGroup group) {}
 
         /**
          * The groups have changed. This can happen if the isolation of a child has changes or if a
          * group became suppressed / unsuppressed
          */
-        void onGroupsChanged();
+        default void onGroupsChanged() {}
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
index 184766c..2d5d562 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
@@ -192,13 +192,13 @@
                 && !mEntryManager.getNotificationData().isHighPriority(entry.notification)) {
             return false;
         }
-        if (!StatusBar.isTopLevelChild(entry)) {
+        if (!entry.isTopLevelChild()) {
             return false;
         }
-        if (entry.row.getVisibility() == View.GONE) {
+        if (entry.getRow().getVisibility() == View.GONE) {
             return false;
         }
-        if (entry.row.isDismissed() && hideDismissed) {
+        if (entry.isRowDismissed() && hideDismissed) {
             return false;
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 851e6d0..33d176a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -2500,25 +2500,26 @@
     }
 
     @Override
-    public void onHeadsUpPinned(ExpandableNotificationRow headsUp) {
-        mNotificationStackScroller.generateHeadsUpAnimation(headsUp, true);
+    public void onHeadsUpPinned(NotificationData.Entry entry) {
+        mNotificationStackScroller.generateHeadsUpAnimation(entry.getHeadsUpAnimationView(), true);
     }
 
     @Override
-    public void onHeadsUpUnPinned(ExpandableNotificationRow headsUp) {
+    public void onHeadsUpUnPinned(NotificationData.Entry entry) {
 
         // When we're unpinning the notification via active edge they remain heads-upped,
         // we need to make sure that an animation happens in this case, otherwise the notification
         // will stick to the top without any interaction.
-        if (isFullyCollapsed() && headsUp.isHeadsUp()) {
-            mNotificationStackScroller.generateHeadsUpAnimation(headsUp, false);
-            headsUp.setHeadsUpIsVisible();
+        if (isFullyCollapsed() && entry.isRowHeadsUp()) {
+            mNotificationStackScroller.generateHeadsUpAnimation(
+                    entry.getHeadsUpAnimationView(), false);
+            entry.setHeadsUpIsVisible();
         }
     }
 
     @Override
     public void onHeadsUpStateChanged(NotificationData.Entry entry, boolean isHeadsUp) {
-        mNotificationStackScroller.generateHeadsUpAnimation(entry.row, isHeadsUp);
+        mNotificationStackScroller.generateHeadsUpAnimation(entry, isHeadsUp);
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubAction.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubAction.java
index 74744f1..2b202eb 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubAction.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickScrubAction.java
@@ -212,6 +212,11 @@
     }
 
     @Override
+    public boolean disableProxyEvents() {
+        return true;
+    }
+
+    @Override
     protected void onGestureStart(MotionEvent event) {
         updateHighlight();
         ObjectAnimator trackAnimator = ObjectAnimator.ofPropertyValuesHolder(this,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java
index 0eff4d4..4983618 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.phone;
 
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_BOTTOM;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_INVALID;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_LEFT;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_RIGHT;
 
@@ -30,9 +31,9 @@
 
 import android.annotation.Nullable;
 import android.content.Context;
-import android.content.res.Resources;
 import android.graphics.Canvas;
 import android.graphics.Matrix;
+import android.graphics.Rect;
 import android.os.RemoteException;
 import android.provider.Settings;
 import android.util.Log;
@@ -100,6 +101,7 @@
     private NavigationGestureAction mCurrentAction;
     private NavigationGestureAction[] mGestureActions = new NavigationGestureAction[MAX_GESTURES];
 
+    private final Rect mLastLayoutRect = new Rect();
     private final OverviewProxyService mOverviewEventSender;
     private final Context mContext;
     private final StatusBar mStatusBar;
@@ -107,7 +109,6 @@
     private final Matrix mTransformLocalMatrix = new Matrix();
 
     public QuickStepController(Context context) {
-        final Resources res = context.getResources();
         mContext = context;
         mStatusBar = SysUiServiceProvider.getComponent(context, StatusBar.class);
         mOverviewEventSender = Dependency.get(OverviewProxyService.class);
@@ -142,6 +143,8 @@
             if (action != null) {
                 action.setBarState(true, mNavBarPosition, mDragHPositive, mDragVPositive);
                 action.onDarkIntensityChange(mDarkIntensity);
+                action.onLayout(true /* changed */, mLastLayoutRect.left, mLastLayoutRect.top,
+                        mLastLayoutRect.right, mLastLayoutRect.bottom);
             }
         }
     }
@@ -182,6 +185,7 @@
 
         // Requires proxy and an active gesture or able to perform any gesture to continue
         if (mOverviewEventSender.getProxy() == null
+                || !mOverviewEventSender.shouldShowSwipeUpUI()
                 || (mCurrentAction == null && !canPerformAnyAction())) {
             return deadZoneConsumed;
         }
@@ -272,25 +276,21 @@
                         if (mDragVPositive ? (posV < touchDownV) : (posV > touchDownV)) {
                             // Swiping up gesture
                             tryToStartGesture(mGestureActions[ACTION_SWIPE_UP_INDEX],
-                                    false /* alignedWithNavBar */, false /* positiveDirection */,
-                                    event);
+                                    false /* alignedWithNavBar */, event);
                         } else {
                             // Swiping down gesture
                             tryToStartGesture(mGestureActions[ACTION_SWIPE_DOWN_INDEX],
-                                    false /* alignedWithNavBar */, true /* positiveDirection */,
-                                    event);
+                                    false /* alignedWithNavBar */, event);
                         }
                     } else if (exceededSwipeHorizontalTouchSlop) {
                         if (mDragHPositive ? (posH < touchDownH) : (posH > touchDownH)) {
                             // Swiping left (ltr) gesture
                             tryToStartGesture(mGestureActions[ACTION_SWIPE_LEFT_INDEX],
-                                    true /* alignedWithNavBar */, false /* positiveDirection */,
-                                    event);
+                                    true /* alignedWithNavBar */, event);
                         } else {
                             // Swiping right (ltr) gesture
                             tryToStartGesture(mGestureActions[ACTION_SWIPE_RIGHT_INDEX],
-                                    true /* alignedWithNavBar */, true /* positiveDirection */,
-                                    event);
+                                    true /* alignedWithNavBar */, event);
                         }
                     }
                 }
@@ -303,7 +303,6 @@
             case MotionEvent.ACTION_UP:
                 if (mCurrentAction != null) {
                     mCurrentAction.endGesture();
-                    mCurrentAction = null;
                 }
 
                 // Return the hit target back to its original position
@@ -326,6 +325,11 @@
         if (shouldProxyEvents(action)) {
             proxyMotionEvents(event);
         }
+
+        // Clear action when gesture and event proxy finishes
+        if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
+            mCurrentAction = null;
+        }
         return mCurrentAction != null || deadZoneConsumed;
     }
 
@@ -351,8 +355,7 @@
 
     private boolean shouldProxyEvents(int action) {
         final boolean actionValid = (mCurrentAction == null
-                || (mGestureActions[ACTION_SWIPE_UP_INDEX] != null
-                        && mGestureActions[ACTION_SWIPE_UP_INDEX].isActive()));
+                || !mCurrentAction.disableProxyEvents());
         if (actionValid && !mIsInScreenPinning) {
             // Allow down, cancel and up events, move and other events are passed if notifications
             // are not showing and disabled gestures (such as long press) are not executed
@@ -382,6 +385,7 @@
                 action.onLayout(changed, left, top, right, bottom);
             }
         }
+        mLastLayoutRect.set(left, top, right, bottom);
     }
 
     @Override
@@ -418,6 +422,9 @@
                 mDragHPositive = !isRTL;
                 mDragVPositive = true;
                 break;
+            case NAV_BAR_INVALID:
+                Log.e(TAG, "Invalid nav bar position");
+                break;
         }
 
         for (NavigationGestureAction action: mGestureActions) {
@@ -448,7 +455,7 @@
     }
 
     private void tryToStartGesture(NavigationGestureAction action, boolean alignedWithNavBar,
-            boolean positiveDirection, MotionEvent event) {
+            MotionEvent event) {
         if (action == null) {
             return;
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 8e61366..3ca077c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -22,6 +22,7 @@
 import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
 import static android.app.StatusBarManager.windowStateToString;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY;
+import static android.view.Display.DEFAULT_DISPLAY;
 
 import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_ASLEEP;
 import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWAKE;
@@ -160,7 +161,6 @@
 import com.android.systemui.qs.QSFragment;
 import com.android.systemui.qs.QSPanel;
 import com.android.systemui.qs.QSTileHost;
-import com.android.systemui.qs.car.CarQSFragment;
 import com.android.systemui.recents.Recents;
 import com.android.systemui.recents.ScreenPinningRequest;
 import com.android.systemui.shared.system.WindowManagerWrapper;
@@ -195,7 +195,6 @@
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
-import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
 import com.android.systemui.statusbar.phone.UnlockMethodCache.OnUnlockMethodChangedListener;
 import com.android.systemui.statusbar.policy.BatteryController;
 import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
@@ -474,8 +473,10 @@
                 return;
             }
             WallpaperInfo info = wallpaperManager.getWallpaperInfo(UserHandle.USER_CURRENT);
-            final boolean supportsAmbientMode = info != null &&
-                    info.supportsAmbientMode();
+            final boolean deviceSupportsAodWallpaper = mContext.getResources().getBoolean(
+                    com.android.internal.R.bool.config_dozeSupportsAodWallpaper);
+            final boolean supportsAmbientMode = deviceSupportsAodWallpaper
+                    && info != null && info.supportsAmbientMode();
 
             mStatusBarWindowController.setWallpaperSupportsAmbientMode(supportsAmbientMode);
             mScrimController.setWallpaperSupportsAmbientMode(supportsAmbientMode);
@@ -484,7 +485,7 @@
 
     private Runnable mLaunchTransitionEndRunnable;
     protected boolean mLaunchTransitionFadingAway;
-    private ExpandableNotificationRow mDraggedDownRow;
+    private NotificationData.Entry mDraggedDownEntry;
     private boolean mLaunchCameraOnScreenTurningOn;
     private boolean mLaunchCameraOnFinishedGoingToSleep;
     private int mLastCameraLaunchSource;
@@ -596,6 +597,7 @@
     @Override
     public void start() {
         mGroupManager = Dependency.get(NotificationGroupManager.class);
+        mGroupAlertTransferHelper = Dependency.get(NotificationGroupAlertTransferHelper.class);
         mVisualStabilityManager = Dependency.get(VisualStabilityManager.class);
         mNotificationLogger = Dependency.get(NotificationLogger.class);
         mRemoteInputManager = Dependency.get(NotificationRemoteInputManager.class);
@@ -720,7 +722,7 @@
         IWallpaperManager wallpaperManager = IWallpaperManager.Stub.asInterface(
                 ServiceManager.getService(Context.WALLPAPER_SERVICE));
         try {
-            wallpaperManager.setInAmbientMode(false /* ambientMode */, false /* animated */);
+            wallpaperManager.setInAmbientMode(false /* ambientMode */, 0L /* duration */);
         } catch (RemoteException e) {
             // Just pass, nothing critical.
         }
@@ -832,23 +834,17 @@
         mHeadsUpManager.addListener(this);
         mHeadsUpManager.addListener(mNotificationPanel);
         mHeadsUpManager.addListener(mGroupManager);
+        mHeadsUpManager.addListener(mGroupAlertTransferHelper);
         mHeadsUpManager.addListener(mVisualStabilityManager);
         mAmbientPulseManager.addListener(this);
         mAmbientPulseManager.addListener(mGroupManager);
+        mAmbientPulseManager.addListener(mGroupAlertTransferHelper);
         mNotificationPanel.setHeadsUpManager(mHeadsUpManager);
         mGroupManager.setHeadsUpManager(mHeadsUpManager);
+        mGroupAlertTransferHelper.setHeadsUpManager(mHeadsUpManager);
         putComponent(HeadsUpManager.class, mHeadsUpManager);
 
-
-        try {
-            boolean showNav = mWindowManagerService.hasNavigationBar();
-            if (DEBUG) Log.v(TAG, "hasNavigationBar=" + showNav);
-            if (showNav) {
-                createNavigationBar();
-            }
-        } catch (RemoteException ex) {
-            // no window manager? good luck with that
-        }
+        createNavigationBar();
 
         if (ENABLE_LOCKSCREEN_WALLPAPER) {
             mLockscreenWallpaper = new LockscreenWallpaper(mContext, this, mHandler);
@@ -923,8 +919,7 @@
                     Dependency.get(ExtensionController.class)
                             .newExtension(QS.class)
                             .withPlugin(QS.class)
-                            .withFeature(PackageManager.FEATURE_AUTOMOTIVE, CarQSFragment::new)
-                            .withDefault(QSFragment::new)
+                            .withDefault(this::createDefaultQSFragment)
                             .build());
             final QSTileHost qsh = SystemUIFactory.getInstance().createQSTileHost(mContext, this,
                     mIconController);
@@ -1012,6 +1007,10 @@
         ThreadedRenderer.overrideProperty("ambientRatio", String.valueOf(1.5f));
     }
 
+    protected QS createDefaultQSFragment() {
+        return new QSFragment();
+    }
+
     protected void setUpPresenter() {
         // Set up the initial notification state.
         mPresenter = new StatusBarNotificationPresenter(mContext, mNotificationPanel,
@@ -1057,13 +1056,24 @@
     }
 
     protected void createNavigationBar() {
-        mNavigationBarView = NavigationBarFragment.create(mContext, (tag, fragment) -> {
-            mNavigationBar = (NavigationBarFragment) fragment;
-            if (mLightBarController != null) {
-                mNavigationBar.setLightBarController(mLightBarController);
-            }
-            mNavigationBar.setCurrentSysuiVisibility(mSystemUiVisibility);
-        });
+        try {
+            // TODO(117478341): Move this into DisplayNavigationBarController#createNavigationBars
+            // for-loop. We will also move the whole navigation bar logic together.
+            final boolean showNav = mWindowManagerService.hasNavigationBar(DEFAULT_DISPLAY);
+            if (DEBUG) Log.v(TAG, "hasNavigationBar=" + showNav);
+            if (!showNav) return;
+
+            mNavigationBarView = NavigationBarFragment.create(mContext, (tag, fragment) -> {
+                mNavigationBar = (NavigationBarFragment) fragment;
+                if (mLightBarController != null) {
+                    mNavigationBar.setLightBarController(mLightBarController);
+                }
+                mNavigationBar.setCurrentSysuiVisibility(mSystemUiVisibility);
+            });
+        } catch (RemoteException ex) {
+            // no window manager? good luck with that
+        }
+        mNavigationBarController.createNavigationBars();
     }
 
     /**
@@ -1205,7 +1215,8 @@
         }
         int dockSide = WindowManagerProxy.getInstance().getDockSide();
         if (dockSide == WindowManager.DOCKED_INVALID) {
-            final int navbarPos = WindowManagerWrapper.getInstance().getNavBarPosition();
+            final int navbarPos = WindowManagerWrapper.getInstance().getNavBarPosition(
+                    mDisplay.getDisplayId());
             if (navbarPos == NAV_BAR_POS_INVALID) {
                 return false;
             }
@@ -1261,10 +1272,6 @@
         mQSPanel.clickTile(tile);
     }
 
-    public static boolean isTopLevelChild(Entry entry) {
-        return entry.row.getParent() instanceof NotificationStackScrollLayout;
-    }
-
     public boolean areNotificationsHidden() {
         return mZenController.areNotificationsHiddenInShade();
     }
@@ -1487,12 +1494,12 @@
     }
 
     @Override
-    public void onHeadsUpPinned(ExpandableNotificationRow headsUp) {
+    public void onHeadsUpPinned(NotificationData.Entry entry) {
         dismissVolumeDialog();
     }
 
     @Override
-    public void onHeadsUpUnPinned(ExpandableNotificationRow headsUp) {
+    public void onHeadsUpUnPinned(NotificationData.Entry entry) {
     }
 
     @Override
@@ -2247,7 +2254,8 @@
     private void notifyUiVisibilityChanged(int vis) {
         try {
             if (mLastDispatchedSystemUiVisibility != vis) {
-                mWindowManagerService.statusBarVisibilityChanged(vis);
+                // TODO (b/117478341): Resolve one status bar/ navigation bar assumption
+                mWindowManagerService.statusBarVisibilityChanged(Display.DEFAULT_DISPLAY, vis);
                 mLastDispatchedSystemUiVisibility = vis;
             }
         } catch (RemoteException ex) {
@@ -2600,9 +2608,7 @@
         final int notificationCount = activeNotifications.size();
         for (int i = 0; i < notificationCount; i++) {
             NotificationData.Entry entry = activeNotifications.get(i);
-            if (entry.row != null) {
-                entry.row.resetUserExpansion();
-            }
+            entry.resetUserExpansion();
         }
     }
 
@@ -3033,10 +3039,10 @@
             mStatusBarStateController.setState(StatusBarState.KEYGUARD);
         }
         updatePanelExpansionForKeyguard();
-        if (mDraggedDownRow != null) {
-            mDraggedDownRow.setUserLocked(false);
-            mDraggedDownRow.notifyHeightChanged(false  /* needsAnimation */);
-            mDraggedDownRow = null;
+        if (mDraggedDownEntry != null) {
+            mDraggedDownEntry.setUserLocked(false);
+            mDraggedDownEntry.notifyHeightChanged(false /* needsAnimation */);
+            mDraggedDownEntry = null;
         }
     }
 
@@ -3176,9 +3182,9 @@
             }
             long delay = mKeyguardMonitor.calculateGoingToFullShadeDelay();
             mNotificationPanel.animateToFullShade(delay);
-            if (mDraggedDownRow != null) {
-                mDraggedDownRow.setUserLocked(false);
-                mDraggedDownRow = null;
+            if (mDraggedDownEntry != null) {
+                mDraggedDownEntry.setUserLocked(false);
+                mDraggedDownEntry = null;
             }
 
             // TODO(115978725): Support animations on external nav bars.
@@ -3570,14 +3576,15 @@
 
         int userId = mLockscreenUserManager.getCurrentUserId();
         ExpandableNotificationRow row = null;
+        NotificationData.Entry entry = null;
         if (expandView instanceof ExpandableNotificationRow) {
-            row = (ExpandableNotificationRow) expandView;
-            row.setUserExpanded(true /* userExpanded */, true /* allowChildExpansion */);
+            entry = ((ExpandableNotificationRow) expandView).getEntry();
+            entry.setUserExpanded(true /* userExpanded */, true /* allowChildExpansion */);
             // Indicate that the group expansion is changing at this time -- this way the group
             // and children backgrounds / divider animations will look correct.
-            row.setGroupExpansionChanging(true);
-            if (row.getStatusBarNotification() != null) {
-                userId = row.getStatusBarNotification().getUserId();
+            entry.setGroupExpansionChanging(true);
+            if (entry.notification != null) {
+                userId = entry.notification.getUserId();
             }
         }
         boolean fullShadeNeedsBouncer = !mLockscreenUserManager.
@@ -3587,7 +3594,7 @@
         if (mLockscreenUserManager.isLockscreenPublicMode(userId) && fullShadeNeedsBouncer) {
             mStatusBarStateController.setLeaveOpenOnKeyguardHide(true);
             showBouncerIfKeyguard();
-            mDraggedDownRow = row;
+            mDraggedDownEntry = entry;
             mPendingRemoteInputView = null;
         } else {
             mNotificationPanel.animateToFullShade(0 /* delay */);
@@ -4105,6 +4112,8 @@
 
     protected NotificationGroupManager mGroupManager;
 
+    protected NotificationGroupAlertTransferHelper mGroupAlertTransferHelper;
+
 
     // for heads up notifications
     protected HeadsUpManagerPhone mHeadsUpManager;
@@ -4319,7 +4328,14 @@
         }, afterKeyguardGone);
     }
 
+    @Override
     public void startPendingIntentDismissingKeyguard(final PendingIntent intent) {
+        startPendingIntentDismissingKeyguard(intent, null);
+    }
+
+    @Override
+    public void startPendingIntentDismissingKeyguard(
+            final PendingIntent intent, @Nullable final Runnable intentSentCallback) {
         final boolean afterKeyguardGone = intent.isActivity()
                 && PreviewInflater.wouldLaunchResolverActivity(mContext, intent.getIntent(),
                 mLockscreenUserManager.getCurrentUserId());
@@ -4338,6 +4354,9 @@
             if (intent.isActivity()) {
                 mAssistManager.hideAssist();
             }
+            if (intentSentCallback != null) {
+                intentSentCallback.run();
+            }
         }, afterKeyguardGone);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
index edfc049..588c3a8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
@@ -418,7 +418,7 @@
             StatusBarNotification parentToCancel = null;
             if (shouldAutoCancel(sbn) && mGroupManager.isOnlyChildInGroup(sbn)) {
                 StatusBarNotification summarySbn =
-                        mGroupManager.getLogicalGroupSummary(sbn).getStatusBarNotification();
+                        mGroupManager.getLogicalGroupSummary(sbn).notification;
                 if (shouldAutoCancel(summarySbn)) {
                     parentToCancel = summarySbn;
                 }
@@ -591,7 +591,7 @@
     public void onExpandClicked(Entry clickedEntry, boolean nowExpanded) {
         mHeadsUpManager.setExpanded(clickedEntry, nowExpanded);
         if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD && nowExpanded) {
-            mShadeController.goToLockedShade(clickedEntry.row);
+            mShadeController.goToLockedShade(clickedEntry.getRow());
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java
index a743d41e..42c0dcc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java
@@ -206,7 +206,7 @@
     }
 
     @Override
-    public boolean handleRemoteViewClick(PendingIntent pendingIntent,
+    public boolean handleRemoteViewClick(View view, PendingIntent pendingIntent,
             NotificationRemoteInputManager.ClickHandler defaultHandler) {
         final boolean isActivity = pendingIntent.isActivity();
         if (isActivity) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java
index 62b6d91..158ee8a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java
@@ -283,7 +283,6 @@
         applyModalFlag(state);
         applyBrightness(state);
         applyHasTopUi(state);
-        applySleepToken(state);
         applyNotTouchable(state);
         if (mLp.copyFrom(mLpChanged) != 0) {
             mWindowManager.updateViewLayout(mStatusBarView, mLp);
@@ -328,14 +327,6 @@
         mHasTopUiChanged = isExpanded(state);
     }
 
-    private void applySleepToken(State state) {
-        if (state.dozing) {
-            mLpChanged.privateFlags |= LayoutParams.PRIVATE_FLAG_ACQUIRES_SLEEP_TOKEN;
-        } else {
-            mLpChanged.privateFlags &= ~LayoutParams.PRIVATE_FLAG_ACQUIRES_SLEEP_TOKEN;
-        }
-    }
-
     private void applyNotTouchable(State state) {
         if (state.notTouchable) {
             mLpChanged.flags |= LayoutParams.FLAG_NOT_TOUCHABLE;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index 978a72d..53e461d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -49,6 +49,7 @@
 import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
 import android.view.Window;
+import android.view.WindowInsetsController;
 import android.widget.FrameLayout;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -785,6 +786,11 @@
         @Override
         public void reportActivityRelaunched() {
         }
+
+        @Override
+        public WindowInsetsController getInsetsController() {
+            return null;
+        }
     };
 
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
index 8517d90..c2af95e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
@@ -165,7 +165,7 @@
         mClockVisibleByUser = bundle.getBoolean(VISIBLE_BY_USER, true);
         mShowSeconds = bundle.getBoolean(SHOW_SECONDS, false);
         if (bundle.containsKey(VISIBILITY)) {
-            setVisibility(bundle.getInt(VISIBILITY));
+            super.setVisibility(bundle.getInt(VISIBILITY));
         }
     }
 
@@ -203,6 +203,7 @@
 
         // Make sure we update to the current time
         updateClock();
+        updateClockVisibility();
         updateShowSeconds();
     }
 
@@ -247,6 +248,15 @@
         }
     };
 
+    @Override
+    public void setVisibility(int visibility) {
+        if (visibility == View.VISIBLE && !shouldBeVisible()) {
+            return;
+        }
+
+        super.setVisibility(visibility);
+    }
+
     public void setClockVisibleByUser(boolean visible) {
         mClockVisibleByUser = visible;
         updateClockVisibility();
@@ -257,11 +267,15 @@
         updateClockVisibility();
     }
 
+    private boolean shouldBeVisible() {
+        return mClockVisibleByPolicy && mClockVisibleByUser;
+    }
+
     private void updateClockVisibility() {
-        boolean visible = mClockVisibleByPolicy && mClockVisibleByUser;
+        boolean visible = shouldBeVisible();
         Dependency.get(IconLogger.class).onIconVisibility("clock", visible);
         int visibility = visible ? View.VISIBLE : View.GONE;
-        setVisibility(visibility);
+        super.setVisibility(visibility);
     }
 
     final void updateClock() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/EncryptionHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/EncryptionHelper.java
index 639e50c..9c099f9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/EncryptionHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/EncryptionHelper.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.policy;
 
-import android.os.SystemProperties;
+import android.sysprop.VoldProperties;
 
 /**
  * Helper for determining whether the phone is decrypted yet.
@@ -26,7 +26,7 @@
     public static final boolean IS_DATA_ENCRYPTED = isDataEncrypted();
 
     private static boolean isDataEncrypted() {
-        String voldState = SystemProperties.get("vold.decrypt");
+        String voldState = VoldProperties.decrypt().orElse("");
         return "1".equals(voldState) || "trigger_restart_min_framework".equals(voldState);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
index 6b83b70b..e7280643 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
@@ -33,6 +33,7 @@
 import com.android.systemui.statusbar.AlertingNotificationManager;
 import com.android.systemui.statusbar.notification.NotificationData;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationInflater.InflationFlag;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -122,24 +123,28 @@
         if (Log.isLoggable(TAG, Log.VERBOSE)) {
             Log.v(TAG, "setEntryPinned: " + isPinned);
         }
-        ExpandableNotificationRow row = headsUpEntry.mEntry.row;
-        if (row.isPinned() != isPinned) {
-            row.setPinned(isPinned);
+        NotificationData.Entry entry = headsUpEntry.mEntry;
+        if (entry.isRowPinned() != isPinned) {
+            entry.setRowPinned(isPinned);
             updatePinnedMode();
             for (OnHeadsUpChangedListener listener : mListeners) {
                 if (isPinned) {
-                    listener.onHeadsUpPinned(row);
+                    listener.onHeadsUpPinned(entry);
                 } else {
-                    listener.onHeadsUpUnPinned(row);
+                    listener.onHeadsUpUnPinned(entry);
                 }
             }
         }
     }
 
+    public @InflationFlag int getContentFlag() {
+        return FLAG_CONTENT_VIEW_HEADS_UP;
+    }
+
     @Override
     protected void onAlertEntryAdded(AlertEntry alertEntry) {
         NotificationData.Entry entry = alertEntry.mEntry;
-        entry.row.setHeadsUp(true);
+        entry.setHeadsUp(true);
         setEntryPinned((HeadsUpEntry) alertEntry, shouldHeadsUpBecomePinned(entry));
         for (OnHeadsUpChangedListener listener : mListeners) {
             listener.onHeadsUpStateChanged(entry, true);
@@ -149,12 +154,12 @@
     @Override
     protected void onAlertEntryRemoved(AlertEntry alertEntry) {
         NotificationData.Entry entry = alertEntry.mEntry;
-        entry.row.setHeadsUp(false);
+        entry.setHeadsUp(false);
         setEntryPinned((HeadsUpEntry) alertEntry, false /* isPinned */);
         for (OnHeadsUpChangedListener listener : mListeners) {
             listener.onHeadsUpStateChanged(entry, false);
         }
-        entry.row.freeContentViewWhenSafe(FLAG_CONTENT_VIEW_HEADS_UP);
+        entry.freeContentViewWhenSafe(FLAG_CONTENT_VIEW_HEADS_UP);
     }
 
     protected void updatePinnedMode() {
@@ -277,7 +282,7 @@
     private boolean hasPinnedNotificationInternal() {
         for (String key : mAlertEntries.keySet()) {
             AlertEntry entry = getHeadsUpEntry(key);
-            if (entry.mEntry.row.isPinned()) {
+            if (entry.mEntry.isRowPinned()) {
                 return true;
             }
         }
@@ -297,10 +302,9 @@
 
             // when the user unpinned all of HUNs by moving one HUN, all of HUNs should not stay
             // on the screen.
-            if (userUnPinned && entry.mEntry != null && entry.mEntry.row != null) {
-                ExpandableNotificationRow row = entry.mEntry.row;
-                if (row.mustStayOnScreen()) {
-                    row.setHeadsUpIsVisible();
+            if (userUnPinned && entry.mEntry != null) {
+                if (entry.mEntry.mustStayOnScreen()) {
+                    entry.mEntry.setHeadsUpIsVisible();
                 }
             }
         }
@@ -336,7 +340,7 @@
      */
     public void setExpanded(@NonNull NotificationData.Entry entry, boolean expanded) {
         HeadsUpEntry headsUpEntry = getHeadsUpEntry(entry.key);
-        if (headsUpEntry != null && entry.row.isPinned()) {
+        if (headsUpEntry != null && entry.isRowPinned()) {
             headsUpEntry.setExpanded(expanded);
         }
     }
@@ -360,15 +364,15 @@
 
         @Override
         protected boolean isSticky() {
-            return (mEntry.row.isPinned() && expanded)
+            return (mEntry.isRowPinned() && expanded)
                     || remoteInputActive || hasFullScreenIntent(mEntry);
         }
 
         @Override
         public int compareTo(@NonNull AlertEntry alertEntry) {
             HeadsUpEntry headsUpEntry = (HeadsUpEntry) alertEntry;
-            boolean isPinned = mEntry.row.isPinned();
-            boolean otherPinned = headsUpEntry.mEntry.row.isPinned();
+            boolean isPinned = mEntry.isRowPinned();
+            boolean otherPinned = headsUpEntry.mEntry.isRowPinned();
             if (isPinned && !otherPinned) {
                 return -1;
             } else if (!isPinned && otherPinned) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/OnHeadsUpChangedListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/OnHeadsUpChangedListener.java
index d434768..7ad547a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/OnHeadsUpChangedListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/OnHeadsUpChangedListener.java
@@ -33,12 +33,12 @@
     /**
      * A notification was just pinned to the top.
      */
-    default void onHeadsUpPinned(ExpandableNotificationRow headsUp) {}
+    default void onHeadsUpPinned(NotificationData.Entry entry) {}
 
     /**
      * A notification was just unpinned from the top.
      */
-    default void onHeadsUpUnPinned(ExpandableNotificationRow headsUp) {}
+    default void onHeadsUpUnPinned(NotificationData.Entry entry) {}
 
     /**
      * A notification just became a heads up or turned back to its normal state.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
index a485fa8..866015e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
@@ -245,7 +245,7 @@
     @Override
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
-        if (mEntry.row.isChangingPosition()) {
+        if (mEntry.getRow().isChangingPosition()) {
             if (getVisibility() == VISIBLE && mEditText.isFocusable()) {
                 mEditText.requestFocus();
             }
@@ -255,7 +255,7 @@
     @Override
     protected void onDetachedFromWindow() {
         super.onDetachedFromWindow();
-        if (mEntry.row.isChangingPosition() || isTemporarilyDetached()) {
+        if (mEntry.getRow().isChangingPosition() || isTemporarilyDetached()) {
             return;
         }
         mController.removeRemoteInput(mEntry, mToken);
@@ -495,7 +495,7 @@
         }
 
         private void defocusIfNeeded(boolean animate) {
-            if (mRemoteInputView != null && mRemoteInputView.mEntry.row.isChangingPosition()
+            if (mRemoteInputView != null && mRemoteInputView.mEntry.getRow().isChangingPosition()
                     || isTemporarilyDetached()) {
                 if (isTemporarilyDetached()) {
                     // We might get reattached but then the other one of HUN / expanded might steal
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java
index 42f1378..f36066c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java
@@ -1,6 +1,8 @@
 package com.android.systemui.statusbar.policy;
 
 import android.annotation.ColorInt;
+import android.annotation.NonNull;
+import android.app.Notification;
 import android.app.PendingIntent;
 import android.app.RemoteInput;
 import android.content.Context;
@@ -19,6 +21,7 @@
 import android.text.method.TransformationMethod;
 import android.util.AttributeSet;
 import android.util.Log;
+import android.util.Size;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -30,6 +33,7 @@
 import com.android.internal.util.ContrastColorUtil;
 import com.android.systemui.Dependency;
 import com.android.systemui.R;
+import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
 import com.android.systemui.statusbar.SmartReplyController;
 import com.android.systemui.statusbar.notification.NotificationData;
@@ -38,14 +42,15 @@
 
 import java.text.BreakIterator;
 import java.util.Comparator;
+import java.util.List;
 import java.util.PriorityQueue;
 
-/** View which displays smart reply buttons in notifications. */
+/** View which displays smart reply and smart actions buttons in notifications. */
 public class SmartReplyView extends ViewGroup {
 
     private static final String TAG = "SmartReplyView";
 
-    private static final int MEASURE_SPEC_ANY_WIDTH =
+    private static final int MEASURE_SPEC_ANY_LENGTH =
             MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
 
     private static final Comparator<View> DECREASING_MEASURED_WIDTH_WITHOUT_PADDING_COMPARATOR =
@@ -98,6 +103,8 @@
     private final int mStrokeWidth;
     private final double mMinStrokeContrast;
 
+    private ActivityStarter mActivityStarter;
+
     public SmartReplyView(Context context, AttributeSet attrs) {
         super(context, attrs);
         mConstants = Dependency.get(SmartReplyConstants.class);
@@ -168,19 +175,28 @@
                 Math.max(getChildCount(), 1), DECREASING_MEASURED_WIDTH_WITHOUT_PADDING_COMPARATOR);
     }
 
-    public void setRepliesFromRemoteInput(
-            RemoteInput remoteInput, PendingIntent pendingIntent,
-            SmartReplyController smartReplyController, NotificationData.Entry entry,
-            View smartReplyContainer, CharSequence[] choices) {
-        mSmartReplyContainer = smartReplyContainer;
+    /**
+     * Reset the smart suggestions view to allow adding new replies and actions.
+     */
+    public void resetSmartSuggestions(View newSmartReplyContainer) {
+        mSmartReplyContainer = newSmartReplyContainer;
         removeAllViews();
         mCurrentBackgroundColor = mDefaultBackgroundColor;
-        if (remoteInput != null && pendingIntent != null) {
-            if (choices != null) {
-                for (int i = 0; i < choices.length; ++i) {
+    }
+
+    /**
+     * Add smart replies to this view, using the provided {@link RemoteInput} and
+     * {@link PendingIntent} to respond when the user taps a smart reply. Only the replies that fit
+     * into the notification are shown.
+     */
+    public void addRepliesFromRemoteInput(
+            SmartReplies smartReplies,
+            SmartReplyController smartReplyController, NotificationData.Entry entry) {
+        if (smartReplies.remoteInput != null && smartReplies.pendingIntent != null) {
+            if (smartReplies.choices != null) {
+                for (int i = 0; i < smartReplies.choices.length; ++i) {
                     Button replyButton = inflateReplyButton(
-                            getContext(), this, i, choices[i], remoteInput, pendingIntent,
-                            smartReplyController, entry);
+                            getContext(), this, i, smartReplies, smartReplyController, entry);
                     addView(replyButton);
                 }
             }
@@ -188,6 +204,24 @@
         reallocateCandidateButtonQueueForSqueezing();
     }
 
+    /**
+     * Add smart actions to be shown next to smart replies. Only the actions that fit into the
+     * notification are shown.
+     */
+    public void addSmartActions(SmartActions smartActions,
+            SmartReplyController smartReplyController, NotificationData.Entry entry) {
+        int numSmartActions = smartActions.actions.size();
+        for (int n = 0; n < numSmartActions; n++) {
+            Notification.Action action = smartActions.actions.get(n);
+            if (action.actionIntent != null) {
+                Button actionButton = inflateActionButton(
+                        getContext(), this, n, smartActions, smartReplyController, entry);
+                addView(actionButton);
+            }
+        }
+        reallocateCandidateButtonQueueForSqueezing();
+    }
+
     public static SmartReplyView inflate(Context context, ViewGroup root) {
         return (SmartReplyView)
                 LayoutInflater.from(context).inflate(R.layout.smart_reply_view, root, false);
@@ -195,22 +229,25 @@
 
     @VisibleForTesting
     Button inflateReplyButton(Context context, ViewGroup root, int replyIndex,
-            CharSequence choice, RemoteInput remoteInput, PendingIntent pendingIntent,
-            SmartReplyController smartReplyController, NotificationData.Entry entry) {
+            SmartReplies smartReplies, SmartReplyController smartReplyController,
+            NotificationData.Entry entry) {
         Button b = (Button) LayoutInflater.from(context).inflate(
                 R.layout.smart_reply_button, root, false);
+        CharSequence choice = smartReplies.choices[replyIndex];
         b.setText(choice);
 
         OnDismissAction action = () -> {
-            smartReplyController.smartReplySent(entry, replyIndex, b.getText());
+            smartReplyController.smartReplySent(
+                    entry, replyIndex, b.getText(), smartReplies.fromAssistant);
             Bundle results = new Bundle();
-            results.putString(remoteInput.getResultKey(), choice.toString());
+            results.putString(smartReplies.remoteInput.getResultKey(), choice.toString());
             Intent intent = new Intent().addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
-            RemoteInput.addResultsToIntent(new RemoteInput[]{remoteInput}, intent, results);
+            RemoteInput.addResultsToIntent(new RemoteInput[]{smartReplies.remoteInput}, intent,
+                    results);
             RemoteInput.setResultsSource(intent, RemoteInput.SOURCE_CHOICE);
             entry.setHasSentReply();
             try {
-                pendingIntent.send(context, 0, intent);
+                smartReplies.pendingIntent.send(context, 0, intent);
             } catch (PendingIntent.CanceledException e) {
                 Log.w(TAG, "Unable to send smart reply", e);
             }
@@ -234,6 +271,54 @@
         return b;
     }
 
+    @VisibleForTesting
+    Button inflateActionButton(Context context, ViewGroup root, int actionIndex,
+            SmartActions smartActions, SmartReplyController smartReplyController,
+            NotificationData.Entry entry) {
+        Notification.Action action = smartActions.actions.get(actionIndex);
+        Button button = (Button) LayoutInflater.from(context).inflate(
+                R.layout.smart_action_button, root, false);
+        button.setText(action.title);
+
+        Drawable iconDrawable = action.getIcon().loadDrawable(context);
+        // Add the action icon to the Smart Action button.
+        Size newIconSize = calculateIconSizeFromSingleLineButton(context, root,
+                new Size(iconDrawable.getIntrinsicWidth(), iconDrawable.getIntrinsicHeight()));
+        iconDrawable.setBounds(0, 0, newIconSize.getWidth(), newIconSize.getHeight());
+        button.setCompoundDrawables(iconDrawable, null, null, null);
+
+        button.setOnClickListener(view ->
+                getActivityStarter().startPendingIntentDismissingKeyguard(
+                        action.actionIntent,
+                        () -> smartReplyController.smartActionClicked(
+                                entry, actionIndex, action, smartActions.fromAssistant)));
+
+        // TODO(b/119010281): handle accessibility
+
+        return button;
+    }
+
+    private static Size calculateIconSizeFromSingleLineButton(Context context, ViewGroup root,
+            Size originalIconSize) {
+        Button button = (Button) LayoutInflater.from(context).inflate(
+                R.layout.smart_action_button, root, false);
+        // Add simple text here to ensure the button displays one line of text.
+        button.setText("a");
+        return calculateIconSizeFromButtonHeight(button, originalIconSize);
+    }
+
+    // Given a button with text on a single line - we want to add an icon to that button. This
+    // method calculates the icon height to use to avoid making the button grow in height.
+    private static Size calculateIconSizeFromButtonHeight(Button button, Size originalIconSize) {
+        // A completely permissive measure spec should make the button text single-line.
+        button.measure(MEASURE_SPEC_ANY_LENGTH, MEASURE_SPEC_ANY_LENGTH);
+        int buttonHeight = button.getMeasuredHeight();
+        int newIconHeight = buttonHeight / 2;
+        int newIconWidth = (int) (originalIconSize.getWidth()
+                * ((double) newIconHeight) / originalIconSize.getHeight());
+        return new Size(newIconWidth, newIconHeight);
+    }
+
     @Override
     public LayoutParams generateLayoutParams(AttributeSet attrs) {
         return new LayoutParams(mContext, attrs);
@@ -277,7 +362,7 @@
 
             child.setPadding(buttonPaddingHorizontal, child.getPaddingTop(),
                     buttonPaddingHorizontal, child.getPaddingBottom());
-            child.measure(MEASURE_SPEC_ANY_WIDTH, heightMeasureSpec);
+            child.measure(MEASURE_SPEC_ANY_LENGTH, heightMeasureSpec);
 
             final int lineCount = ((Button) child).getLineCount();
             if (lineCount < 1 || lineCount > 2) {
@@ -437,6 +522,18 @@
         return (int) Math.ceil(optimalTextWidth);
     }
 
+    /**
+     * Returns the combined width of the left drawable (the action icon) and the padding between the
+     * drawable and the button text.
+     */
+    private int getLeftCompoundDrawableWidthWithPadding(Button button) {
+        Drawable[] drawables = button.getCompoundDrawables();
+        Drawable leftDrawable = drawables[0];
+        if (leftDrawable == null) return 0;
+
+        return leftDrawable.getBounds().width() + button.getCompoundDrawablePadding();
+    }
+
     private int squeezeButtonToTextWidth(Button button, int heightMeasureSpec, int textWidth) {
         int oldWidth = button.getMeasuredWidth();
         if (button.getPaddingLeft() != mDoubleLineButtonPaddingHorizontal) {
@@ -449,7 +546,8 @@
         button.setPadding(mDoubleLineButtonPaddingHorizontal, button.getPaddingTop(),
                 mDoubleLineButtonPaddingHorizontal, button.getPaddingBottom());
         final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(
-                2 * mDoubleLineButtonPaddingHorizontal + textWidth, MeasureSpec.AT_MOST);
+                2 * mDoubleLineButtonPaddingHorizontal + textWidth
+                      + getLeftCompoundDrawableWidthWithPadding(button), MeasureSpec.AT_MOST);
         button.measure(widthMeasureSpec, heightMeasureSpec);
 
         final int newWidth = button.getMeasuredWidth();
@@ -607,6 +705,13 @@
         button.setTextColor(textColor);
     }
 
+    private ActivityStarter getActivityStarter() {
+        if (mActivityStarter == null) {
+            mActivityStarter = Dependency.get(ActivityStarter.class);
+        }
+        return mActivityStarter;
+    }
+
     @VisibleForTesting
     static class LayoutParams extends ViewGroup.LayoutParams {
 
@@ -646,4 +751,40 @@
             return show;
         }
     }
+
+    /**
+     * Data class for smart replies.
+     */
+    public static class SmartReplies {
+        @NonNull
+        public final RemoteInput remoteInput;
+        @NonNull
+        public final PendingIntent pendingIntent;
+        @NonNull
+        public final CharSequence[] choices;
+        public final boolean fromAssistant;
+
+        public SmartReplies(CharSequence[] choices, RemoteInput remoteInput,
+                PendingIntent pendingIntent, boolean fromAssistant) {
+            this.choices = choices;
+            this.remoteInput = remoteInput;
+            this.pendingIntent = pendingIntent;
+            this.fromAssistant = fromAssistant;
+        }
+    }
+
+
+    /**
+     * Data class for smart actions.
+     */
+    public static class SmartActions {
+        @NonNull
+        public final List<Notification.Action> actions;
+        public final boolean fromAssistant;
+
+        public SmartActions(List<Notification.Action> actions, boolean fromAssistant) {
+            this.actions = actions;
+            this.fromAssistant = fromAssistant;
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/volume/CarVolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/CarVolumeDialogImpl.java
deleted file mode 100644
index 9b616e0..0000000
--- a/packages/SystemUI/src/com/android/systemui/volume/CarVolumeDialogImpl.java
+++ /dev/null
@@ -1,605 +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.systemui.volume;
-
-import android.animation.Animator;
-import android.animation.AnimatorInflater;
-import android.animation.AnimatorSet;
-import android.annotation.DrawableRes;
-import android.annotation.Nullable;
-import android.app.Dialog;
-import android.app.KeyguardManager;
-import android.car.Car;
-import android.car.CarNotConnectedException;
-import android.car.media.CarAudioManager;
-import android.car.media.ICarVolumeCallback;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.ServiceConnection;
-import android.content.res.TypedArray;
-import android.content.res.XmlResourceParser;
-import android.graphics.Color;
-import android.graphics.PixelFormat;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.media.AudioAttributes;
-import android.media.AudioManager;
-import android.os.Debug;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.Message;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.SparseArray;
-import android.util.Xml;
-import android.view.ContextThemeWrapper;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.SeekBar;
-import android.widget.SeekBar.OnSeekBarChangeListener;
-
-import androidx.car.widget.ListItem;
-import androidx.car.widget.ListItemAdapter;
-import androidx.car.widget.ListItemAdapter.BackgroundStyle;
-import androidx.car.widget.ListItemProvider.ListProvider;
-import androidx.car.widget.PagedListView;
-import androidx.car.widget.SeekbarListItem;
-
-import com.android.systemui.R;
-import com.android.systemui.plugins.VolumeDialog;
-
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Car version of the volume dialog.
- *
- * Methods ending in "H" must be called on the (ui) handler.
- */
-public class CarVolumeDialogImpl implements VolumeDialog {
-  private static final String TAG = Util.logTag(CarVolumeDialogImpl.class);
-
-  private static final String XML_TAG_VOLUME_ITEMS = "carVolumeItems";
-  private static final String XML_TAG_VOLUME_ITEM = "item";
-  private static final int HOVERING_TIMEOUT = 16000;
-  private static final int NORMAL_TIMEOUT = 3000;
-  private static final int LISTVIEW_ANIMATION_DURATION_IN_MILLIS = 250;
-  private static final int DISMISS_DELAY_IN_MILLIS = 50;
-  private static final int ARROW_FADE_IN_START_DELAY_IN_MILLIS = 100;
-
-  private final Context mContext;
-  private final H mHandler = new H();
-
-  private Window mWindow;
-  private CustomDialog mDialog;
-  private PagedListView mListView;
-  private ListItemAdapter mPagedListAdapter;
-  // All the volume items.
-  private final SparseArray<VolumeItem> mVolumeItems = new SparseArray<>();
-  // Available volume items in car audio manager.
-  private final List<VolumeItem> mAvailableVolumeItems = new ArrayList<>();
-  // Volume items in the PagedListView.
-  private final List<ListItem> mVolumeLineItems = new ArrayList<>();
-  private final KeyguardManager mKeyguard;
-
-  private Car mCar;
-  private CarAudioManager mCarAudioManager;
-
-  private boolean mHovering;
-  private boolean mShowing;
-  private boolean mExpanded;
-
-  public CarVolumeDialogImpl(Context context) {
-    mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme);
-    mKeyguard = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);
-    mCar = Car.createCar(mContext, mServiceConnection);
-  }
-
-  public void init(int windowType, Callback callback) {
-    initDialog();
-
-    mCar.connect();
-  }
-
-  @Override
-  public void destroy() {
-    mHandler.removeCallbacksAndMessages(null);
-
-    cleanupAudioManager();
-    // unregisterVolumeCallback is not being called when disconnect car, so we manually cleanup
-    // audio manager beforehand.
-    mCar.disconnect();
-  }
-
-  private void initDialog() {
-    loadAudioUsageItems();
-    mVolumeLineItems.clear();
-    mDialog = new CustomDialog(mContext);
-
-    mHovering = false;
-    mShowing = false;
-    mExpanded = false;
-    mWindow = mDialog.getWindow();
-    mWindow.requestFeature(Window.FEATURE_NO_TITLE);
-    mWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
-    mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND
-        | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
-    mWindow.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
-        | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
-        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
-        | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
-        | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
-        | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
-    mWindow.setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY);
-    mWindow.setWindowAnimations(com.android.internal.R.style.Animation_Toast);
-    final WindowManager.LayoutParams lp = mWindow.getAttributes();
-    lp.format = PixelFormat.TRANSLUCENT;
-    lp.setTitle(VolumeDialogImpl.class.getSimpleName());
-    lp.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
-    lp.windowAnimations = -1;
-    mWindow.setAttributes(lp);
-    mWindow.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-
-    mDialog.setCanceledOnTouchOutside(true);
-    mDialog.setContentView(R.layout.car_volume_dialog);
-    mDialog.setOnShowListener(dialog -> {
-      mListView.setTranslationY(-mListView.getHeight());
-      mListView.setAlpha(0);
-      mListView.animate()
-          .alpha(1)
-          .translationY(0)
-          .setDuration(LISTVIEW_ANIMATION_DURATION_IN_MILLIS)
-          .setInterpolator(new SystemUIInterpolators.LogDecelerateInterpolator())
-          .start();
-    });
-    mListView = (PagedListView) mWindow.findViewById(R.id.volume_list);
-    mListView.setOnHoverListener((v, event) -> {
-      int action = event.getActionMasked();
-      mHovering = (action == MotionEvent.ACTION_HOVER_ENTER)
-          || (action == MotionEvent.ACTION_HOVER_MOVE);
-      rescheduleTimeoutH();
-      return true;
-    });
-
-    mPagedListAdapter = new ListItemAdapter(mContext, new ListProvider(mVolumeLineItems),
-        BackgroundStyle.PANEL);
-    mListView.setAdapter(mPagedListAdapter);
-    mListView.setMaxPages(PagedListView.UNLIMITED_PAGES);
-  }
-
-  public void show(int reason) {
-    mHandler.obtainMessage(H.SHOW, reason).sendToTarget();
-  }
-
-  public void dismiss(int reason) {
-    mHandler.obtainMessage(H.DISMISS, reason).sendToTarget();
-  }
-
-  private void showH(int reason) {
-    if (D.BUG) {
-      Log.d(TAG, "showH r=" + Events.DISMISS_REASONS[reason]);
-    }
-
-    mHandler.removeMessages(H.SHOW);
-    mHandler.removeMessages(H.DISMISS);
-    rescheduleTimeoutH();
-    // Refresh the data set before showing.
-    mPagedListAdapter.notifyDataSetChanged();
-    if (mShowing) {
-      return;
-    }
-    mShowing = true;
-
-    mDialog.show();
-    Events.writeEvent(mContext, Events.EVENT_SHOW_DIALOG, reason, mKeyguard.isKeyguardLocked());
-  }
-
-  protected void rescheduleTimeoutH() {
-    mHandler.removeMessages(H.DISMISS);
-    final int timeout = computeTimeoutH();
-    mHandler.sendMessageDelayed(mHandler
-        .obtainMessage(H.DISMISS, Events.DISMISS_REASON_TIMEOUT), timeout);
-
-    if (D.BUG) {
-      Log.d(TAG, "rescheduleTimeout " + timeout + " " + Debug.getCaller());
-    }
-  }
-
-  private int computeTimeoutH() {
-    return mHovering ? HOVERING_TIMEOUT : NORMAL_TIMEOUT;
-  }
-
-  protected void dismissH(int reason) {
-    if (D.BUG) {
-      Log.d(TAG, "dismissH r=" + Events.DISMISS_REASONS[reason]);
-    }
-
-    mHandler.removeMessages(H.DISMISS);
-    mHandler.removeMessages(H.SHOW);
-    if (!mShowing) {
-      return;
-    }
-
-    mListView.animate().cancel();
-
-    mListView.setTranslationY(0);
-    mListView.setAlpha(1);
-    mListView.animate()
-        .alpha(0)
-        .translationY(-mListView.getHeight())
-        .setDuration(LISTVIEW_ANIMATION_DURATION_IN_MILLIS)
-        .setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator())
-        .withEndAction(() -> mHandler.postDelayed(() -> {
-          if (D.BUG) {
-            Log.d(TAG, "mDialog.dismiss()");
-          }
-          mDialog.dismiss();
-          mShowing = false;
-        }, DISMISS_DELAY_IN_MILLIS))
-        .start();
-
-    Events.writeEvent(mContext, Events.EVENT_DISMISS_DIALOG, reason);
-  }
-
-  public void dump(PrintWriter writer) {
-    writer.println(VolumeDialogImpl.class.getSimpleName() + " state:");
-    writer.print("  mShowing: "); writer.println(mShowing);
-  }
-
-  private void loadAudioUsageItems() {
-    try (XmlResourceParser parser = mContext.getResources().getXml(R.xml.car_volume_items)) {
-      AttributeSet attrs = Xml.asAttributeSet(parser);
-      int type;
-      // Traverse to the first start tag
-      while ((type=parser.next()) != XmlResourceParser.END_DOCUMENT
-          && type != XmlResourceParser.START_TAG) {
-      }
-
-      if (!XML_TAG_VOLUME_ITEMS.equals(parser.getName())) {
-        throw new RuntimeException("Meta-data does not start with carVolumeItems tag");
-      }
-      int outerDepth = parser.getDepth();
-      int rank = 0;
-      while ((type=parser.next()) != XmlResourceParser.END_DOCUMENT
-          && (type != XmlResourceParser.END_TAG || parser.getDepth() > outerDepth)) {
-        if (type == XmlResourceParser.END_TAG) {
-          continue;
-        }
-        if (XML_TAG_VOLUME_ITEM.equals(parser.getName())) {
-          TypedArray item = mContext.getResources().obtainAttributes(
-              attrs, R.styleable.carVolumeItems_item);
-          int usage = item.getInt(R.styleable.carVolumeItems_item_usage, -1);
-          if (usage >= 0) {
-            VolumeItem volumeItem = new VolumeItem();
-            volumeItem.usage = usage;
-            volumeItem.rank = rank;
-            volumeItem.icon = item.getResourceId(R.styleable.carVolumeItems_item_icon, 0);
-            mVolumeItems.put(usage, volumeItem);
-            rank++;
-          }
-          item.recycle();
-        }
-      }
-    } catch (XmlPullParserException | IOException e) {
-      Log.e(TAG, "Error parsing volume groups configuration", e);
-    }
-  }
-
-  private VolumeItem getVolumeItemForUsages(int[] usages) {
-    int rank = Integer.MAX_VALUE;
-    VolumeItem result = null;
-    for (int usage : usages) {
-      VolumeItem volumeItem = mVolumeItems.get(usage);
-      if (volumeItem.rank < rank) {
-        rank = volumeItem.rank;
-        result = volumeItem;
-      }
-    }
-    return result;
-  }
-
-  private static int getSeekbarValue(CarAudioManager carAudioManager, int volumeGroupId) {
-    try {
-      return carAudioManager.getGroupVolume(volumeGroupId);
-    } catch (CarNotConnectedException e) {
-      Log.e(TAG, "Car is not connected!", e);
-    }
-    return 0;
-  }
-
-  private static int getMaxSeekbarValue(CarAudioManager carAudioManager, int volumeGroupId) {
-    try {
-      return carAudioManager.getGroupMaxVolume(volumeGroupId);
-    } catch (CarNotConnectedException e) {
-      Log.e(TAG, "Car is not connected!", e);
-    }
-    return 0;
-  }
-
-  private SeekbarListItem addSeekbarListItem(VolumeItem volumeItem, int volumeGroupId,
-      int supplementalIconId, @Nullable View.OnClickListener supplementalIconOnClickListener) {
-    SeekbarListItem listItem = new SeekbarListItem(mContext);
-    listItem.setMax(getMaxSeekbarValue(mCarAudioManager, volumeGroupId));
-    int color = mContext.getResources().getColor(R.color.car_volume_dialog_tint);
-    int progress = getSeekbarValue(mCarAudioManager, volumeGroupId);
-    listItem.setProgress(progress);
-    listItem.setOnSeekBarChangeListener(
-        new CarVolumeDialogImpl.VolumeSeekBarChangeListener(volumeGroupId, mCarAudioManager));
-    Drawable primaryIcon = mContext.getResources().getDrawable(volumeItem.icon);
-    primaryIcon.mutate().setTint(color);
-    listItem.setPrimaryActionIcon(primaryIcon);
-    if (supplementalIconId != 0) {
-      Drawable supplementalIcon = mContext.getResources().getDrawable(supplementalIconId);
-      supplementalIcon.mutate().setTint(color);
-      listItem.setSupplementalIcon(supplementalIcon, true);
-      listItem.setSupplementalIconListener(supplementalIconOnClickListener);
-    } else {
-      listItem.setSupplementalEmptyIcon(true);
-      listItem.setSupplementalIconListener(null);
-    }
-
-    mVolumeLineItems.add(listItem);
-    volumeItem.listItem = listItem;
-    volumeItem.progress = progress;
-    return listItem;
-  }
-
-  private VolumeItem findVolumeItem(SeekbarListItem targetItem) {
-    for (int i = 0; i < mVolumeItems.size(); ++i) {
-      VolumeItem volumeItem = mVolumeItems.valueAt(i);
-      if (volumeItem.listItem == targetItem) {
-        return volumeItem;
-      }
-    }
-    return null;
-  }
-
-  private void cleanupAudioManager() {
-    try {
-      mCarAudioManager.unregisterVolumeCallback(mVolumeChangeCallback.asBinder());
-    } catch (CarNotConnectedException e) {
-      Log.e(TAG, "Car is not connected!", e);
-    }
-    mVolumeLineItems.clear();
-    mCarAudioManager = null;
-  }
-
-  private final class H extends Handler {
-    private static final int SHOW = 1;
-    private static final int DISMISS = 2;
-
-    public H() {
-      super(Looper.getMainLooper());
-    }
-
-    @Override
-    public void handleMessage(Message msg) {
-      switch (msg.what) {
-        case SHOW:
-          showH(msg.arg1);
-          break;
-        case DISMISS:
-          dismissH(msg.arg1);
-          break;
-        default:
-      }
-    }
-  }
-
-  private final class CustomDialog extends Dialog implements DialogInterface {
-    public CustomDialog(Context context) {
-      super(context, com.android.systemui.R.style.qs_theme);
-    }
-
-    @Override
-    public boolean dispatchTouchEvent(MotionEvent ev) {
-      rescheduleTimeoutH();
-      return super.dispatchTouchEvent(ev);
-    }
-
-    @Override
-    protected void onStart() {
-      super.setCanceledOnTouchOutside(true);
-      super.onStart();
-    }
-
-    @Override
-    protected void onStop() {
-      super.onStop();
-    }
-
-    @Override
-    public boolean onTouchEvent(MotionEvent event) {
-      if (isShowing()) {
-        if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
-          mHandler.obtainMessage(
-            H.DISMISS, Events.DISMISS_REASON_TOUCH_OUTSIDE).sendToTarget();
-          return true;
-        }
-      }
-      return false;
-    }
-  }
-
-  private final class ExpandIconListener implements View.OnClickListener {
-    @Override
-    public void onClick(final View v) {
-      mExpanded = !mExpanded;
-      Animator inAnimator;
-      if (mExpanded) {
-        for (int groupId = 0; groupId < mAvailableVolumeItems.size(); ++groupId) {
-          // Adding the items which are not coming from the default item.
-          VolumeItem volumeItem = mAvailableVolumeItems.get(groupId);
-          if (volumeItem.defaultItem) {
-            // Set progress here due to the progress of seekbar may not be updated.
-            volumeItem.listItem.setProgress(volumeItem.progress);
-          } else {
-            addSeekbarListItem(volumeItem, groupId, 0, null);
-          }
-        }
-        inAnimator = AnimatorInflater.loadAnimator(
-            mContext, R.anim.car_arrow_fade_in_rotate_up);
-      } else {
-        // Only keeping the default stream if it is not expended.
-        Iterator itr = mVolumeLineItems.iterator();
-        while (itr.hasNext()) {
-          SeekbarListItem seekbarListItem = (SeekbarListItem) itr.next();
-          VolumeItem volumeItem = findVolumeItem(seekbarListItem);
-          if (!volumeItem.defaultItem) {
-            itr.remove();
-          } else {
-            // Set progress here due to the progress of seekbar may not be updated.
-            seekbarListItem.setProgress(volumeItem.progress);
-          }
-        }
-        inAnimator = AnimatorInflater.loadAnimator(
-            mContext, R.anim.car_arrow_fade_in_rotate_down);
-      }
-
-      Animator outAnimator = AnimatorInflater.loadAnimator(
-          mContext, R.anim.car_arrow_fade_out);
-      inAnimator.setStartDelay(ARROW_FADE_IN_START_DELAY_IN_MILLIS);
-      AnimatorSet animators = new AnimatorSet();
-      animators.playTogether(outAnimator, inAnimator);
-      animators.setTarget(v);
-      animators.start();
-      mPagedListAdapter.notifyDataSetChanged();
-    }
-  }
-
-  private final class VolumeSeekBarChangeListener implements OnSeekBarChangeListener {
-    private final int mVolumeGroupId;
-    private final CarAudioManager mCarAudioManager;
-
-    private VolumeSeekBarChangeListener(int volumeGroupId, CarAudioManager carAudioManager) {
-      mVolumeGroupId = volumeGroupId;
-      mCarAudioManager = carAudioManager;
-    }
-
-    @Override
-    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
-      if (!fromUser) {
-        // For instance, if this event is originated from AudioService,
-        // we can ignore it as it has already been handled and doesn't need to be
-        // sent back down again.
-        return;
-      }
-      try {
-        if (mCarAudioManager == null) {
-          Log.w(TAG, "Ignoring volume change event because the car isn't connected");
-          return;
-        }
-        mAvailableVolumeItems.get(mVolumeGroupId).progress = progress;
-        mCarAudioManager.setGroupVolume(mVolumeGroupId, progress, 0);
-      } catch (CarNotConnectedException e) {
-        Log.e(TAG, "Car is not connected!", e);
-      }
-    }
-
-    @Override
-    public void onStartTrackingTouch(SeekBar seekBar) {}
-
-    @Override
-    public void onStopTrackingTouch(SeekBar seekBar) {}
-  }
-
-  private final ICarVolumeCallback mVolumeChangeCallback = new ICarVolumeCallback.Stub() {
-    @Override
-    public void onGroupVolumeChanged(int groupId, int flags) {
-      VolumeItem volumeItem = mAvailableVolumeItems.get(groupId);
-      int value = getSeekbarValue(mCarAudioManager, groupId);
-      // Do not update the progress if it is the same as before. When car audio manager sets its
-      // group volume caused by the seekbar progress changed, it also triggers this callback.
-      // Updating the seekbar at the same time could block the continuous seeking.
-      if (value != volumeItem.progress) {
-        volumeItem.listItem.setProgress(value);
-        volumeItem.progress = value;
-      }
-      if ((flags & AudioManager.FLAG_SHOW_UI) != 0) {
-        show(Events.SHOW_REASON_VOLUME_CHANGED);
-      }
-    }
-
-    @Override
-    public void onMasterMuteChanged(int flags) {
-      // ignored
-    }
-  };
-
-  private final ServiceConnection mServiceConnection = new ServiceConnection() {
-    @Override
-    public void onServiceConnected(ComponentName name, IBinder service) {
-      try {
-        mExpanded = false;
-        mCarAudioManager = (CarAudioManager) mCar.getCarManager(Car.AUDIO_SERVICE);
-        int volumeGroupCount = mCarAudioManager.getVolumeGroupCount();
-        // Populates volume slider items from volume groups to UI.
-        for (int groupId = 0; groupId < volumeGroupCount; groupId++) {
-          VolumeItem volumeItem = getVolumeItemForUsages(
-              mCarAudioManager.getUsagesForVolumeGroupId(groupId));
-          mAvailableVolumeItems.add(volumeItem);
-          // The first one is the default item.
-          if (groupId == 0) {
-            volumeItem.defaultItem = true;
-            addSeekbarListItem(volumeItem, groupId, R.drawable.car_ic_keyboard_arrow_down,
-                new ExpandIconListener());
-          }
-        }
-
-        // If list is already initiated, update its content.
-        if (mPagedListAdapter != null) {
-          mPagedListAdapter.notifyDataSetChanged();
-        }
-        mCarAudioManager.registerVolumeCallback(mVolumeChangeCallback.asBinder());
-      } catch (CarNotConnectedException e) {
-        Log.e(TAG, "Car is not connected!", e);
-      }
-    }
-
-    /**
-     * This does not get called when service is properly disconnected.
-     * So we need to also handle cleanups in destroy().
-     */
-    @Override
-    public void onServiceDisconnected(ComponentName name) {
-      cleanupAudioManager();
-    }
-  };
-
-  /**
-   * Wrapper class which contains information of each volume group.
-   */
-  private static class VolumeItem {
-    private @AudioAttributes.AttributeUsage int usage;
-    private int rank;
-    private boolean defaultItem = false;
-    private @DrawableRes int icon;
-    private SeekbarListItem listItem;
-    private int progress;
-  }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java
index 2861dff..0805677 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java
@@ -19,12 +19,10 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
-import android.content.pm.PackageManager;
 import android.content.res.Configuration;
 import android.media.AudioManager;
 import android.media.VolumePolicy;
 import android.os.Bundle;
-import android.os.Handler;
 import android.view.WindowManager.LayoutParams;
 
 import com.android.settingslib.applications.InterestingConfigChanges;
@@ -57,7 +55,7 @@
     public static final boolean DEFAULT_DO_NOT_DISTURB_WHEN_SILENT = false;
 
     private final SystemUI mSysui;
-    private final Context mContext;
+    protected final Context mContext;
     private final VolumeDialogControllerImpl mController;
     private final InterestingConfigChanges mConfigChanges = new InterestingConfigChanges(
             ActivityInfo.CONFIG_FONT_SCALE | ActivityInfo.CONFIG_LOCALE
@@ -70,7 +68,7 @@
             400    // vibrateToSilentDebounce
     );
 
-    public VolumeDialogComponent(SystemUI sysui, Context context, Handler handler) {
+    public VolumeDialogComponent(SystemUI sysui, Context context) {
         mSysui = sysui;
         mContext = context;
         mController = (VolumeDialogControllerImpl) Dependency.get(VolumeDialogController.class);
@@ -81,7 +79,6 @@
         Dependency.get(ExtensionController.class).newExtension(VolumeDialog.class)
                 .withPlugin(VolumeDialog.class)
                 .withDefault(this::createDefault)
-                .withFeature(PackageManager.FEATURE_AUTOMOTIVE, this::createCarDefault)
                 .withCallback(dialog -> {
                     if (mDialog != null) {
                         mDialog.destroy();
@@ -94,7 +91,7 @@
                 VOLUME_SILENT_DO_NOT_DISTURB);
     }
 
-    private VolumeDialog createDefault() {
+    protected VolumeDialog createDefault() {
         VolumeDialogImpl impl = new VolumeDialogImpl(mContext);
         impl.setStreamImportant(AudioManager.STREAM_SYSTEM, false);
         impl.setAutomute(true);
@@ -102,10 +99,6 @@
         return impl;
     }
 
-    private VolumeDialog createCarDefault() {
-        return new CarVolumeDialogImpl(mContext);
-    }
-
     @Override
     public void onTuningChanged(String key, String newValue) {
         if (VOLUME_DOWN_SILENT.equals(key)) {
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
index e4f37de..f8cf793 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
@@ -22,6 +22,7 @@
 
 import com.android.systemui.R;
 import com.android.systemui.SystemUI;
+import com.android.systemui.SystemUIFactory;
 import com.android.systemui.qs.tiles.DndTile;
 
 import java.io.FileDescriptor;
@@ -43,7 +44,9 @@
             mContext.getResources().getBoolean(R.bool.enable_safety_warning);
         mEnabled = enableVolumeUi || enableSafetyWarning;
         if (!mEnabled) return;
-        mVolumeComponent = new VolumeDialogComponent(this, mContext, null);
+
+        mVolumeComponent = SystemUIFactory.getInstance()
+                .createVolumeDialogComponent(this, mContext);
         mVolumeComponent.setEnableDialogs(enableVolumeUi, enableSafetyWarning);
         putComponent(VolumeComponent.class, getVolumeComponent());
         setDefaultVolumeController();
diff --git a/packages/SystemUI/tests/Android.mk b/packages/SystemUI/tests/Android.mk
index b32bf99..83ec33c 100644
--- a/packages/SystemUI/tests/Android.mk
+++ b/packages/SystemUI/tests/Android.mk
@@ -38,8 +38,6 @@
     android.test.runner \
     telephony-common \
     android.test.base \
-    android.car \
-    android.car.userlib
 
 LOCAL_AAPT_FLAGS := --extra-packages com.android.systemui:com.android.keyguard
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java
index 6ac4462..ec2319d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java
@@ -16,9 +16,8 @@
 
 package com.android.systemui.doze;
 
-import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -27,8 +26,8 @@
 import android.os.RemoteException;
 import android.support.test.filters.SmallTest;
 
-import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
 import com.android.systemui.statusbar.phone.DozeParameters;
 
 import org.junit.Before;
@@ -59,14 +58,14 @@
 
         mDozeWallpaperState.transitionTo(DozeMachine.State.UNINITIALIZED,
                 DozeMachine.State.DOZE_AOD);
-        verify(mIWallpaperManager).setInAmbientMode(eq(true), anyBoolean());
+        verify(mIWallpaperManager).setInAmbientMode(eq(true), anyLong());
         mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH);
-        verify(mIWallpaperManager).setInAmbientMode(eq(false), anyBoolean());
+        verify(mIWallpaperManager).setInAmbientMode(eq(false), anyLong());
 
         // Make sure we're sending false when AoD is off
         reset(mDozeParameters);
         mDozeWallpaperState.transitionTo(DozeMachine.State.FINISH, DozeMachine.State.DOZE_AOD);
-        verify(mIWallpaperManager).setInAmbientMode(eq(false), anyBoolean());
+        verify(mIWallpaperManager).setInAmbientMode(eq(false), anyLong());
     }
 
     @Test
@@ -78,10 +77,12 @@
 
         mDozeWallpaperState.transitionTo(DozeMachine.State.UNINITIALIZED,
                 DozeMachine.State.DOZE_AOD);
-        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(true));
+        verify(mIWallpaperManager).setInAmbientMode(eq(true),
+                eq((long) StackStateAnimator.ANIMATION_DURATION_WAKEUP));
 
         mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH);
-        verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(true));
+        verify(mIWallpaperManager).setInAmbientMode(eq(false),
+                eq((long) StackStateAnimator.ANIMATION_DURATION_WAKEUP));
     }
 
     @Test
@@ -93,24 +94,24 @@
 
         mDozeWallpaperState.transitionTo(DozeMachine.State.UNINITIALIZED,
                 DozeMachine.State.DOZE_AOD);
-        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(false));
+        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(0L));
 
         mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH);
-        verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(false));
+        verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(0L));
     }
 
     @Test
     public void testTransitionTo_requestPulseIsAmbientMode() throws RemoteException {
         mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE,
                 DozeMachine.State.DOZE_REQUEST_PULSE);
-        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(false));
+        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(0L));
     }
 
     @Test
     public void testTransitionTo_pulseIsAmbientMode() throws RemoteException {
         mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_REQUEST_PULSE,
                 DozeMachine.State.DOZE_PULSING);
-        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(false));
+        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(0L));
     }
 
     @Test
@@ -120,6 +121,7 @@
         reset(mIWallpaperManager);
         mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_PULSING,
                 DozeMachine.State.FINISH);
-        verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(true));
+        verify(mIWallpaperManager).setInAmbientMode(eq(false),
+                eq((long) StackStateAnimator.ANIMATION_DURATION_WAKEUP));
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java
index a26b1b5..0953951 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardSliceProviderTest.java
@@ -19,11 +19,9 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.app.AlarmManager;
 import android.content.ContentResolver;
@@ -34,10 +32,15 @@
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 import android.testing.TestableLooper.RunWithLooper;
-import android.util.Log;
+
+import androidx.slice.Slice;
+import androidx.slice.SliceItem;
+import androidx.slice.SliceProvider;
+import androidx.slice.SliceSpecs;
+import androidx.slice.builders.ListBuilder;
+import androidx.slice.core.SliceQuery;
 
 import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.policy.ZenModeController;
 
 import org.junit.Assert;
 import org.junit.Before;
@@ -50,13 +53,6 @@
 import java.util.HashSet;
 import java.util.concurrent.TimeUnit;
 
-import androidx.slice.Slice;
-import androidx.slice.SliceItem;
-import androidx.slice.SliceProvider;
-import androidx.slice.SliceSpecs;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.core.SliceQuery;
-
 @SmallTest
 @RunWith(AndroidTestingRunner.class)
 @RunWithLooper(setAsMainLooper = true)
@@ -164,7 +160,7 @@
         }
 
         @Override
-        protected boolean isDndSuppressingNotifications() {
+        protected boolean isDndOn() {
             return mIsZenMode;
         }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java b/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java
index b44630a..c28e74e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/power/PowerUITest.java
@@ -32,12 +32,14 @@
 import android.content.Intent;
 import android.os.BatteryManager;
 import android.os.HardwarePropertiesManager;
+import android.os.IThermalService;
 import android.os.PowerManager;
 import android.provider.Settings;
+import android.test.suitebuilder.annotation.SmallTest;
 import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
 import android.testing.TestableLooper.RunWithLooper;
 import android.testing.TestableResources;
-import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.systemui.R;
@@ -45,15 +47,16 @@
 import com.android.systemui.power.PowerUI.WarningsUI;
 import com.android.systemui.statusbar.phone.StatusBar;
 
-import java.time.Duration;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.time.Duration;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
 @RunWith(AndroidTestingRunner.class)
 @RunWithLooper
 @SmallTest
@@ -76,6 +79,7 @@
     private PowerUI mPowerUI;
     private EnhancedEstimates mEnhancedEstimates;
     @Mock private PowerManager mPowerManager;
+    @Mock private IThermalService mThermalServiceMock;
 
     @Before
     public void setup() {
@@ -124,6 +128,8 @@
         resources.addOverride(R.integer.config_warningTemperature, 55);
 
         mPowerUI.start();
+        // Guarantees mHandler has processed all messages.
+        TestableLooper.get(this).processAllMessages();
         verify(mMockWarnings).showHighTemperatureWarning();
     }
 
@@ -136,6 +142,8 @@
         resources.addOverride(R.integer.config_warningTemperature, 55);
 
         mPowerUI.start();
+        // Guarantees mHandler has processed all messages.
+        TestableLooper.get(this).processAllMessages();
         verify(mMockWarnings).showHighTemperatureWarning();
     }
 
@@ -541,5 +549,6 @@
         mPowerUI = new PowerUI();
         mPowerUI.mContext = mContext;
         mPowerUI.mComponents = mContext.getComponents();
+        mPowerUI.mThermalService = mThermalServiceMock;
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerTest.kt
index 48491d7..24bcca50 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/privacy/PrivacyItemControllerTest.kt
@@ -16,8 +16,12 @@
 
 package com.android.systemui.privacy
 
+import android.app.ActivityManager
 import android.app.AppOpsManager
+import android.content.Intent
 import android.os.Handler
+import android.os.UserHandle
+import android.os.UserManager
 import android.support.test.filters.SmallTest
 import android.testing.AndroidTestingRunner
 import android.testing.TestableLooper
@@ -34,9 +38,11 @@
 import org.mockito.ArgumentMatchers.anyList
 import org.mockito.ArgumentMatchers.eq
 import org.mockito.Mock
+import org.mockito.Mockito.atLeastOnce
 import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.never
+import org.mockito.Mockito.spy
 import org.mockito.Mockito.verify
-
 import org.mockito.MockitoAnnotations
 
 @RunWith(AndroidTestingRunner::class)
@@ -44,10 +50,18 @@
 @RunWithLooper
 class PrivacyItemControllerTest : SysuiTestCase() {
 
+    companion object {
+        val CURRENT_USER_ID = ActivityManager.getCurrentUser()
+        val OTHER_USER = UserHandle(CURRENT_USER_ID + 1)
+        const val TAG = "PrivacyItemControllerTest"
+    }
+
     @Mock
     private lateinit var appOpsController: AppOpsController
     @Mock
     private lateinit var callback: PrivacyItemController.Callback
+    @Mock
+    private lateinit var userManager: UserManager
 
     private lateinit var testableLooper: TestableLooper
     private lateinit var privacyItemController: PrivacyItemController
@@ -57,15 +71,17 @@
         MockitoAnnotations.initMocks(this)
         testableLooper = TestableLooper.get(this)
 
-        appOpsController = mDependency.injectMockDependency(AppOpsController:: class.java)
+        appOpsController = mDependency.injectMockDependency(AppOpsController::class.java)
         mDependency.injectTestDependency(Dependency.BG_LOOPER, testableLooper.looper)
         mDependency.injectTestDependency(Dependency.MAIN_HANDLER, Handler(testableLooper.looper))
+        mContext.addMockSystemService(UserManager::class.java, userManager)
 
         doReturn(listOf(AppOpItem(AppOpsManager.OP_CAMERA, 0, "", 0)))
                 .`when`(appOpsController).getActiveAppOpsForUser(anyInt())
 
         privacyItemController = PrivacyItemController(mContext, callback)
     }
+
     @Test
     fun testSetListeningTrue() {
         privacyItemController.setListening(true)
@@ -80,6 +96,38 @@
         privacyItemController.setListening(true)
         privacyItemController.setListening(false)
         verify(appOpsController).removeCallback(eq(PrivacyItemController.OPS),
-                any(AppOpsController.Callback:: class.java))
+                any(AppOpsController.Callback::class.java))
+    }
+
+    @Test
+    fun testRegisterReceiver_allUsers() {
+        val spiedContext = spy(mContext)
+        val itemController = PrivacyItemController(spiedContext, callback)
+
+        verify(spiedContext, atLeastOnce()).registerReceiverAsUser(
+                eq(itemController.userSwitcherReceiver), eq(UserHandle.ALL), any(), eq(null),
+                eq(null))
+        verify(spiedContext, never()).unregisterReceiver(eq(itemController.userSwitcherReceiver))
+    }
+
+    @Test
+    fun testReceiver_ACTION_USER_FOREGROUND() {
+        privacyItemController.userSwitcherReceiver.onReceive(context,
+                Intent(Intent.ACTION_USER_FOREGROUND))
+        verify(userManager).getProfiles(anyInt())
+    }
+
+    @Test
+    fun testReceiver_ACTION_MANAGED_PROFILE_ADDED() {
+        privacyItemController.userSwitcherReceiver.onReceive(context,
+                Intent(Intent.ACTION_MANAGED_PROFILE_ADDED))
+        verify(userManager).getProfiles(anyInt())
+    }
+
+    @Test
+    fun testReceiver_ACTION_MANAGED_PROFILE_REMOVED() {
+        privacyItemController.userSwitcherReceiver.onReceive(context,
+                Intent(Intent.ACTION_MANAGED_PROFILE_REMOVED))
+        verify(userManager).getProfiles(anyInt())
     }
 }
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java
deleted file mode 100644
index f89a932..0000000
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/car/CarQsFragmentTest.java
+++ /dev/null
@@ -1,89 +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.systemui.qs.car;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.mock;
-
-import android.content.Context;
-import android.support.test.filters.SmallTest;
-import android.testing.AndroidTestingRunner;
-import android.testing.LayoutInflaterBuilder;
-import android.testing.TestableLooper;
-import android.testing.TestableLooper.RunWithLooper;
-import android.view.View;
-import android.widget.FrameLayout;
-
-import com.android.keyguard.CarrierText;
-import com.android.systemui.Dependency;
-import com.android.systemui.SysuiBaseFragmentTest;
-import com.android.systemui.statusbar.CommandQueue;
-import com.android.systemui.statusbar.policy.Clock;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Tests for {@link CarQSFragment}.
- */
-@RunWith(AndroidTestingRunner.class)
-@RunWithLooper(setAsMainLooper = true)
-@SmallTest
-@Ignore
-public class CarQsFragmentTest extends SysuiBaseFragmentTest {
-    public CarQsFragmentTest() {
-        super(CarQSFragment.class);
-    }
-
-    @Before
-    public void initDependencies() {
-        mContext.addMockSystemService(Context.LAYOUT_INFLATER_SERVICE,
-                new LayoutInflaterBuilder(mContext)
-                        .replace("com.android.systemui.statusbar.policy.SplitClockView",
-                                FrameLayout.class)
-                        .replace("TextClock", View.class)
-                        .replace(CarrierText.class, View.class)
-                        .replace(Clock.class, View.class)
-                        .build());
-        mSysuiContext.putComponent(CommandQueue.class, mock(CommandQueue.class));
-        mDependency.injectTestDependency(Dependency.BG_LOOPER,
-                TestableLooper.get(this).getLooper());
-    }
-
-    @Test
-    @Ignore("Flaky")
-    public void testLayoutInflation() {
-        CarQSFragment fragment = (CarQSFragment) mFragment;
-        mFragments.dispatchResume();
-
-        assertNotNull(fragment.getHeader());
-        assertNotNull(fragment.getFooter());
-    }
-
-    @Test
-    @Ignore("Flaky")
-    public void testListening() {
-        CarQSFragment qs = (CarQSFragment) mFragment;
-        mFragments.dispatchResume();
-        processAllMessages();
-
-        qs.setListening(true);
-        processAllMessages();
-
-        qs.setListening(false);
-        processAllMessages();
-    }
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java
index f63d236..26fa20d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java
@@ -14,41 +14,76 @@
 
 package com.android.systemui.qs.customize;
 
-import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertTrue;
 
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.doAnswer;
+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 android.content.pm.PackageManager;
+import android.provider.Settings;
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 import android.testing.TestableLooper.RunWithLooper;
+import android.text.TextUtils;
+import android.util.ArraySet;
 
 import com.android.systemui.Dependency;
+import com.android.systemui.R;
 import com.android.systemui.SysuiTestCase;
+import com.android.systemui.plugins.qs.QSTile;
 import com.android.systemui.qs.QSTileHost;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
 
 @SmallTest
 @RunWith(AndroidTestingRunner.class)
 @RunWithLooper
 public class TileQueryHelperTest extends SysuiTestCase {
-    @Mock private TileQueryHelper.TileStateListener mListener;
-    @Mock private QSTileHost mQSTileHost;
+    private static final String CURRENT_TILES = "wifi,dnd,nfc";
+    private static final String ONLY_STOCK_TILES = "wifi,dnd";
+    private static final String WITH_OTHER_TILES = "wifi,dnd,other";
+    // Note no nfc in stock tiles
+    private static final String STOCK_TILES = "wifi,dnd,cell,battery";
+    private static final String ALL_TILES = "wifi,dnd,nfc,cell,battery";
+    private static final Set<String> FACTORY_TILES = new ArraySet<>();
 
+    static {
+        FACTORY_TILES.addAll(Arrays.asList(
+                new String[]{"wifi", "bt", "cell", "dnd", "inversion", "airplane", "work",
+                        "rotation", "flashlight", "location", "cast", "hotspot", "user", "battery",
+                        "saver", "night", "nfc"}));
+    }
+
+    @Mock
+    private TileQueryHelper.TileStateListener mListener;
+    @Mock
+    private QSTileHost mQSTileHost;
+    @Mock
+    private PackageManager mPackageManager;
+
+    private QSTile.State mState;
     private TestableLooper mBGLooper;
-
     private TileQueryHelper mTileQueryHelper;
 
     @Before
@@ -56,6 +91,23 @@
         MockitoAnnotations.initMocks(this);
         mBGLooper = TestableLooper.get(this);
         mDependency.injectTestDependency(Dependency.BG_LOOPER, mBGLooper.getLooper());
+        mContext.setMockPackageManager(mPackageManager);
+
+        mState = new QSTile.State();
+        doAnswer(invocation -> {
+                    String spec = (String) invocation.getArguments()[0];
+                    if (FACTORY_TILES.contains(spec)) {
+                        QSTile m = mock(QSTile.class);
+                        when(m.isAvailable()).thenReturn(true);
+                        when(m.getTileSpec()).thenReturn(spec);
+                        when(m.getState()).thenReturn(mState);
+                        return m;
+                    } else {
+                        return null;
+                    }
+                }
+        ).when(mQSTileHost).createTile(anyString());
+
         mTileQueryHelper = new TileQueryHelper(mContext, mListener);
     }
 
@@ -98,4 +150,72 @@
 
         assertTrue(mTileQueryHelper.isFinished());
     }
+
+    @Test
+    public void testQueryTiles_correctTilesAndOrderOnlyStockTiles() {
+        ArgumentCaptor<List<TileQueryHelper.TileInfo>> captor = ArgumentCaptor.forClass(List.class);
+
+        Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES,
+                ONLY_STOCK_TILES);
+        mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
+                STOCK_TILES);
+
+        mTileQueryHelper.queryTiles(mQSTileHost);
+
+        mBGLooper.processAllMessages();
+        waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+
+        verify(mListener, atLeastOnce()).onTilesChanged(captor.capture());
+        List<String> specs = new ArrayList<>();
+        for (TileQueryHelper.TileInfo t : captor.getValue()) {
+            specs.add(t.spec);
+        }
+        String tiles = TextUtils.join(",", specs);
+        assertThat(tiles, is(equalTo(STOCK_TILES)));
+    }
+
+    @Test
+    public void testQueryTiles_correctTilesAndOrderOtherFactoryTiles() {
+        ArgumentCaptor<List<TileQueryHelper.TileInfo>> captor = ArgumentCaptor.forClass(List.class);
+
+        Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES,
+                CURRENT_TILES);
+        mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
+                STOCK_TILES);
+
+        mTileQueryHelper.queryTiles(mQSTileHost);
+
+        mBGLooper.processAllMessages();
+        waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+
+        verify(mListener, atLeastOnce()).onTilesChanged(captor.capture());
+        List<String> specs = new ArrayList<>();
+        for (TileQueryHelper.TileInfo t : captor.getValue()) {
+            specs.add(t.spec);
+        }
+        String tiles = TextUtils.join(",", specs);
+        assertThat(tiles, is(equalTo(ALL_TILES)));
+    }
+
+    @Test
+    public void testQueryTiles_otherTileNotIncluded() {
+        ArgumentCaptor<List<TileQueryHelper.TileInfo>> captor = ArgumentCaptor.forClass(List.class);
+
+        Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES,
+                WITH_OTHER_TILES);
+        mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
+                STOCK_TILES);
+
+        mTileQueryHelper.queryTiles(mQSTileHost);
+
+        mBGLooper.processAllMessages();
+        waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+
+        verify(mListener, atLeastOnce()).onTilesChanged(captor.capture());
+        List<String> specs = new ArrayList<>();
+        for (TileQueryHelper.TileInfo t : captor.getValue()) {
+            specs.add(t.spec);
+        }
+        assertFalse(specs.contains("other"));
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/AlertingNotificationManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/AlertingNotificationManagerTest.java
index 8b41516..9d0556f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/AlertingNotificationManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/AlertingNotificationManagerTest.java
@@ -17,6 +17,8 @@
 
 package com.android.systemui.statusbar;
 
+import static com.android.systemui.statusbar.notification.row.NotificationInflater.FLAG_CONTENT_VIEW_CONTRACTED;
+
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
 
@@ -84,6 +86,11 @@
 
         @Override
         protected void onAlertEntryRemoved(AlertEntry alertEntry) {}
+
+        @Override
+        public int getContentFlag() {
+            return FLAG_CONTENT_VIEW_CONTRACTED;
+        }
     }
 
     protected AlertingNotificationManager createAlertingNotificationManager() {
@@ -113,7 +120,7 @@
         mTestHandler = Handler.createAsync(Looper.myLooper());
         mSbn = createNewNotification(0 /* id */);
         mEntry = new NotificationData.Entry(mSbn);
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
 
         mAlertingNotificationManager = createAlertingNotificationManager();
     }
@@ -164,7 +171,7 @@
         for (int i = 0; i < TEST_NUM_NOTIFICATIONS; i++) {
             StatusBarNotification sbn = createNewNotification(i);
             NotificationData.Entry entry = new NotificationData.Entry(sbn);
-            entry.row = mRow;
+            entry.setRow(mRow);
             mAlertingNotificationManager.showNotification(entry);
         }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
index d409e2b..b5d305d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
@@ -78,7 +78,7 @@
         mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME, 0, null, TEST_UID,
                 0, new Notification(), UserHandle.CURRENT, null, 0);
         mEntry = new NotificationData.Entry(mSbn);
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
 
         mRemoteInputManager.setUpWithPresenterForTest(mPresenter, mCallback,
                 mDelegate, mController);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
index aca1f90..9bed59b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
@@ -227,7 +227,7 @@
                 null /* overrideGroupKey */,
                 System.currentTimeMillis());
         NotificationData.Entry entry = new NotificationData.Entry(sbn);
-        entry.row = row;
+        entry.setRow(row);
         entry.createIcons(mContext, sbn);
         entry.channel = new NotificationChannel(
                 notification.getChannelId(), notification.getChannelId(), IMPORTANCE_DEFAULT);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
index 602e613..72d6cd8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
@@ -37,6 +37,7 @@
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper;
 import com.android.systemui.statusbar.notification.NotificationData;
+import com.android.systemui.statusbar.notification.NotificationData.Entry;
 import com.android.systemui.statusbar.notification.NotificationEntryManager;
 import com.android.systemui.statusbar.notification.VisualStabilityManager;
 import com.android.systemui.statusbar.notification.logging.NotificationLogger;
@@ -73,7 +74,7 @@
     @Mock private ShadeController mShadeController;
 
     private NotificationViewHierarchyManager mViewHierarchyManager;
-    private NotificationTestHelper mHelper = new NotificationTestHelper(mContext);;
+    private NotificationTestHelper mHelper = new NotificationTestHelper(mContext);
 
     @Before
     public void setUp() {
@@ -95,7 +96,7 @@
     private NotificationData.Entry createEntry() throws Exception {
         ExpandableNotificationRow row = mHelper.createRow();
         NotificationData.Entry entry = new NotificationData.Entry(row.getStatusBarNotification());
-        entry.row = row;
+        entry.setRow(row);
         return entry;
     }
 
@@ -108,9 +109,9 @@
         NotificationData.Entry entry2 = createEntry();
 
         // Set up the prior state to look like three top level notifications.
-        mListContainer.addContainerView(entry0.row);
-        mListContainer.addContainerView(entry1.row);
-        mListContainer.addContainerView(entry2.row);
+        mListContainer.addContainerView(entry0.getRow());
+        mListContainer.addContainerView(entry1.getRow());
+        mListContainer.addContainerView(entry2.getRow());
         when(mNotificationData.getActiveNotifications()).thenReturn(
                 Lists.newArrayList(entry0, entry1, entry2));
 
@@ -118,15 +119,15 @@
         when(mGroupManager.isChildInGroupWithSummary(entry0.notification)).thenReturn(false);
         when(mGroupManager.isChildInGroupWithSummary(entry1.notification)).thenReturn(true);
         when(mGroupManager.isChildInGroupWithSummary(entry2.notification)).thenReturn(true);
-        when(mGroupManager.getGroupSummary(entry1.notification)).thenReturn(entry0.row);
-        when(mGroupManager.getGroupSummary(entry2.notification)).thenReturn(entry0.row);
+        when(mGroupManager.getGroupSummary(entry1.notification)).thenReturn(entry0);
+        when(mGroupManager.getGroupSummary(entry2.notification)).thenReturn(entry0);
 
         // Run updateNotifications - the view hierarchy should be reorganized.
         mViewHierarchyManager.updateNotificationViews();
 
-        verify(mListContainer).notifyGroupChildAdded(entry1.row);
-        verify(mListContainer).notifyGroupChildAdded(entry2.row);
-        assertTrue(Lists.newArrayList(entry0.row).equals(mListContainer.mRows));
+        verify(mListContainer).notifyGroupChildAdded(entry1.getRow());
+        verify(mListContainer).notifyGroupChildAdded(entry2.getRow());
+        assertTrue(Lists.newArrayList(entry0.getRow()).equals(mListContainer.mRows));
     }
 
     @Test
@@ -135,11 +136,11 @@
         NotificationData.Entry entry0 = createEntry();
         NotificationData.Entry entry1 = createEntry();
         NotificationData.Entry entry2 = createEntry();
-        entry0.row.addChildNotification(entry1.row);
-        entry0.row.addChildNotification(entry2.row);
+        entry0.getRow().addChildNotification(entry1.getRow());
+        entry0.getRow().addChildNotification(entry2.getRow());
 
         // Set up the prior state to look like one top level notification.
-        mListContainer.addContainerView(entry0.row);
+        mListContainer.addContainerView(entry0.getRow());
         when(mNotificationData.getActiveNotifications()).thenReturn(
                 Lists.newArrayList(entry0, entry1, entry2));
 
@@ -152,10 +153,12 @@
         mViewHierarchyManager.updateNotificationViews();
 
         verify(mListContainer).notifyGroupChildRemoved(
-                entry1.row, entry0.row.getChildrenContainer());
+                entry1.getRow(), entry0.getRow().getChildrenContainer());
         verify(mListContainer).notifyGroupChildRemoved(
-                entry2.row, entry0.row.getChildrenContainer());
-        assertTrue(Lists.newArrayList(entry0.row, entry1.row, entry2.row).equals(mListContainer.mRows));
+                entry2.getRow(), entry0.getRow().getChildrenContainer());
+        assertTrue(
+                Lists.newArrayList(entry0.getRow(), entry1.getRow(), entry2.getRow())
+                        .equals(mListContainer.mRows));
     }
 
     @Test
@@ -163,10 +166,10 @@
         // Tests two top level notifications becoming a suppressed summary and a child.
         NotificationData.Entry entry0 = createEntry();
         NotificationData.Entry entry1 = createEntry();
-        entry0.row.addChildNotification(entry1.row);
+        entry0.getRow().addChildNotification(entry1.getRow());
 
         // Set up the prior state to look like a top level notification.
-        mListContainer.addContainerView(entry0.row);
+        mListContainer.addContainerView(entry0.getRow());
         when(mNotificationData.getActiveNotifications()).thenReturn(
                 Lists.newArrayList(entry0, entry1));
 
@@ -179,23 +182,23 @@
         mViewHierarchyManager.updateNotificationViews();
 
         verify(mListContainer).notifyGroupChildRemoved(
-                entry1.row, entry0.row.getChildrenContainer());
-        assertTrue(Lists.newArrayList(entry0.row, entry1.row).equals(mListContainer.mRows));
-        assertEquals(View.GONE, entry0.row.getVisibility());
-        assertEquals(View.VISIBLE, entry1.row.getVisibility());
+                entry1.getRow(), entry0.getRow().getChildrenContainer());
+        assertTrue(Lists.newArrayList(entry0.getRow(), entry1.getRow()).equals(mListContainer.mRows));
+        assertEquals(View.GONE, entry0.getRow().getVisibility());
+        assertEquals(View.VISIBLE, entry1.getRow().getVisibility());
     }
 
     @Test
     public void testUpdateNotificationViews_appOps() throws Exception {
         NotificationData.Entry entry0 = createEntry();
-        entry0.row = spy(entry0.row);
+        entry0.setRow(spy(entry0.getRow()));
         when(mNotificationData.getActiveNotifications()).thenReturn(
                 Lists.newArrayList(entry0));
-        mListContainer.addContainerView(entry0.row);
+        mListContainer.addContainerView(entry0.getRow());
 
         mViewHierarchyManager.updateNotificationViews();
 
-        verify(entry0.row, times(1)).showAppOpsIcons(any());
+        verify(entry0.getRow(), times(1)).showAppOpsIcons(any());
     }
 
     private class FakeListContainer implements NotificationListContainer {
@@ -206,19 +209,19 @@
         public void setChildTransferInProgress(boolean childTransferInProgress) {}
 
         @Override
-        public void changeViewPosition(View child, int newIndex) {
+        public void changeViewPosition(ExpandableView child, int newIndex) {
             mRows.remove(child);
             mRows.add(newIndex, child);
         }
 
         @Override
-        public void notifyGroupChildAdded(View row) {}
+        public void notifyGroupChildAdded(ExpandableView row) {}
 
         @Override
-        public void notifyGroupChildRemoved(View row, ViewGroup childrenContainer) {}
+        public void notifyGroupChildRemoved(ExpandableView row, ViewGroup childrenContainer) {}
 
         @Override
-        public void generateAddAnimation(View child, boolean fromMoreCard) {}
+        public void generateAddAnimation(ExpandableView child, boolean fromMoreCard) {}
 
         @Override
         public void generateChildOrderChangedEvent() {}
@@ -252,7 +255,7 @@
         public void setMaxDisplayedNotifications(int maxNotifications) {}
 
         @Override
-        public void snapViewIfNeeded(ExpandableNotificationRow row) {}
+        public void snapViewIfNeeded(Entry entry) {}
 
         @Override
         public ViewGroup getViewParentForNotification(NotificationData.Entry entry) {
@@ -271,10 +274,10 @@
         }
 
         @Override
-        public void cleanUpViewState(View view) {}
+        public void cleanUpViewStateForEntry(Entry entry) { }
 
         @Override
-        public boolean isInVisibleLocation(ExpandableNotificationRow row) {
+        public boolean isInVisibleLocation(Entry entry) {
             return true;
         }
 
@@ -286,5 +289,6 @@
         public boolean hasPulsingNotifications() {
             return false;
         }
+
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
index 1d977d8..76b992f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
@@ -16,18 +16,15 @@
 
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
+
 import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.isNull;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager;
 import android.app.Notification;
 import android.os.RemoteException;
 import android.os.UserHandle;
-import android.service.notification.NotificationListenerService;
 import android.service.notification.StatusBarNotification;
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
@@ -38,7 +35,6 @@
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.statusbar.notification.NotificationData;
 import com.android.systemui.statusbar.notification.NotificationEntryManager;
-import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -93,7 +89,7 @@
 
     @Test
     public void testSendSmartReply_updatesRemoteInput() {
-        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT);
+        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT, false);
 
         // Sending smart reply should make calls to NotificationEntryManager
         // to update the notification with reply and spinner.
@@ -103,11 +99,21 @@
 
     @Test
     public void testSendSmartReply_logsToStatusBar() throws RemoteException {
-        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT);
+        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT, false);
 
         // Check we log the result to the status bar service.
         verify(mIStatusBarService).onNotificationSmartReplySent(mSbn.getKey(),
-                TEST_CHOICE_INDEX);
+                TEST_CHOICE_INDEX, TEST_CHOICE_TEXT, false);
+    }
+
+
+    @Test
+    public void testSendSmartReply_logsToStatusBar_generatedByAssistant() throws RemoteException {
+        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT, true);
+
+        // Check we log the result to the status bar service.
+        verify(mIStatusBarService).onNotificationSmartReplySent(mSbn.getKey(),
+                TEST_CHOICE_INDEX, TEST_CHOICE_TEXT, true);
     }
 
     @Test
@@ -121,14 +127,14 @@
 
     @Test
     public void testSendSmartReply_reportsSending() {
-        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT);
+        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT, false);
 
         assertTrue(mSmartReplyController.isSendingSmartReply(mSbn.getKey()));
     }
 
     @Test
     public void testSendingSmartReply_afterRemove_shouldReturnFalse() {
-        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT);
+        mSmartReplyController.smartReplySent(mEntry, TEST_CHOICE_INDEX, TEST_CHOICE_TEXT, false);
         mSmartReplyController.stopSending(mEntry);
 
         assertFalse(mSmartReplyController.isSendingSmartReply(mSbn.getKey()));
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimatorTest.java
index 435ede4..5558393 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimatorTest.java
@@ -62,6 +62,7 @@
 
     @Before
     public void setUp() throws Exception {
+        when(mStatusBarWindowView.getResources()).thenReturn(mContext.getResources());
         when(mCallback.areLaunchAnimationsEnabled()).thenReturn(true);
         mLaunchAnimator = new ActivityLaunchAnimator(
                 mStatusBarWindowView,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationDataTest.java
index f59bfae..f94ba95 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationDataTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationDataTest.java
@@ -39,6 +39,7 @@
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.PendingIntent;
+import android.app.Person;
 import android.content.Intent;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
@@ -120,9 +121,9 @@
         when(mEnvironment.isDeviceProvisioned()).thenReturn(true);
         when(mEnvironment.isNotificationForCurrentProfiles(any())).thenReturn(true);
         mNotificationData = new TestableNotificationData();
-        Dependency.get(InitController.class).executePostInitTasks();
         mNotificationData.updateRanking(mock(NotificationListenerService.RankingMap.class));
         mRow = new NotificationTestHelper(getContext()).createRow();
+        Dependency.get(InitController.class).executePostInitTasks();
     }
 
     @Test
@@ -421,6 +422,33 @@
         assertEquals(snoozeCriterions, entry.snoozeCriteria);
     }
 
+    @Test
+    public void notificationDataEntry_testIsLastMessageFromReply() {
+        Person.Builder person = new Person.Builder()
+                .setName("name")
+                .setKey("abc")
+                .setUri("uri")
+                .setBot(true);
+
+        // EXTRA_MESSAGING_PERSON is the same Person as the sender in last message in EXTRA_MESSAGES
+        Bundle bundle = new Bundle();
+        bundle.putParcelable(Notification.EXTRA_MESSAGING_PERSON, person.build());
+        Bundle[] messagesBundle = new Bundle[]{ new Notification.MessagingStyle.Message(
+                "text", 0, person.build()).toBundle() };
+        bundle.putParcelableArray(Notification.EXTRA_MESSAGES, messagesBundle);
+
+        Notification notification = new Notification.Builder(mContext, "test")
+                .addExtras(bundle)
+                .build();
+        StatusBarNotification sbn = new StatusBarNotification("pkg", "pkg", 0, "tag", 0, 0,
+                notification, mContext.getUser(), "", 0);
+
+        NotificationData.Entry entry = new NotificationData.Entry(sbn);
+        entry.setHasSentReply();
+
+        assertTrue(entry.isLastMessageFromReply());
+    }
+
     private void initStatusBarNotification(boolean allowDuringSetup) {
         Bundle bundle = new Bundle();
         bundle.putBoolean(Notification.EXTRA_ALLOW_DURING_SETUP, allowDuringSetup);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
index d1fe5af..8706e21 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
@@ -262,14 +262,14 @@
                 NotificationData.Entry.class);
         verify(mCallback).onBindRow(entryCaptor.capture(), any(), eq(mSbn), any());
         NotificationData.Entry entry = entryCaptor.getValue();
-        verify(mRemoteInputManager).bindRow(entry.row);
+        verify(mRemoteInputManager).bindRow(entry.getRow());
 
         // Row content inflation:
         verify(mCallback).onNotificationAdded(entry);
         verify(mPresenter).updateNotificationViews();
 
         assertEquals(mEntryManager.getNotificationData().get(mSbn.getKey()), entry);
-        assertNotNull(entry.row);
+        assertNotNull(entry.getRow());
         assertEquals(mEntry.userSentiment,
                 NotificationListenerService.Ranking.USER_SENTIMENT_NEUTRAL);
     }
@@ -294,7 +294,7 @@
         verify(mPresenter).updateNotificationViews();
         verify(mForegroundServiceController).updateNotification(eq(mSbn), anyInt());
         verify(mCallback).onNotificationUpdated(mSbn);
-        assertNotNull(mEntry.row);
+        assertNotNull(mEntry.getRow());
         assertEquals(mEntry.userSentiment,
                 NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE);
     }
@@ -303,7 +303,7 @@
     public void testRemoveNotification() throws Exception {
         com.android.systemui.util.Assert.isNotMainThread();
 
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
         mEntryManager.getNotificationData().add(mEntry);
 
         mEntryManager.removeNotification(mSbn.getKey(), mRankingMap);
@@ -313,7 +313,7 @@
 
         verify(mMediaManager).onNotificationRemoved(mSbn.getKey());
         verify(mForegroundServiceController).removeNotification(mSbn);
-        verify(mListContainer).cleanUpViewState(mRow);
+        verify(mListContainer).cleanUpViewStateForEntry(mEntry);
         verify(mPresenter).updateNotificationViews();
         verify(mCallback).onNotificationRemoved(mSbn.getKey(), mSbn);
         verify(mRow).setRemoved();
@@ -332,7 +332,7 @@
         extenders.clear();
         extenders.add(extender);
 
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
         mEntryManager.getNotificationData().add(mEntry);
 
         mEntryManager.removeNotification(mSbn.getKey(), mRankingMap);
@@ -347,7 +347,7 @@
 
         when(mForegroundServiceController.getStandardLayoutKey(anyInt(), anyString()))
                 .thenReturn(mEntry.key);
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
         mEntryManager.getNotificationData().add(mEntry);
 
         mEntryManager.updateNotificationsForAppOp(
@@ -372,7 +372,7 @@
 
     @Test
     public void testAddNotificationExistingAppOps() {
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
         mEntryManager.getNotificationData().add(mEntry);
         ArraySet<Integer> expected = new ArraySet<>();
         expected.add(3);
@@ -395,7 +395,7 @@
 
     @Test
     public void testAdd_noExistingAppOps() {
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
         mEntryManager.getNotificationData().add(mEntry);
         when(mForegroundServiceController.getStandardLayoutKey(
                 mEntry.notification.getUserId(),
@@ -409,7 +409,7 @@
 
     @Test
     public void testAdd_existingAppOpsNotForegroundNoti() {
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
         mEntryManager.getNotificationData().add(mEntry);
         ArraySet<Integer> ops = new ArraySet<>();
         ops.add(3);
@@ -431,7 +431,7 @@
         when(mEnvironment.isDeviceProvisioned()).thenReturn(true);
         when(mEnvironment.isNotificationForCurrentProfiles(any())).thenReturn(true);
 
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
         mEntry.setInflationTask(mAsyncInflationTask);
         mEntryManager.getNotificationData().add(mEntry);
         setSmartActions(mEntry.key, new ArrayList<>(Arrays.asList(createAction())));
@@ -447,7 +447,7 @@
         when(mDeviceProvisionedController.isDeviceProvisioned()).thenReturn(true);
         when(mEnvironment.isNotificationForCurrentProfiles(any())).thenReturn(true);
 
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
         mEntryManager.getNotificationData().add(mEntry);
         setSmartActions(mEntry.key, null);
 
@@ -461,7 +461,7 @@
         when(mDeviceProvisionedController.isDeviceProvisioned()).thenReturn(true);
         when(mEnvironment.isNotificationForCurrentProfiles(any())).thenReturn(true);
 
-        mEntry.row = null;
+        mEntry.setRow(null);
         mEntryManager.getNotificationData().add(mEntry);
         setSmartActions(mEntry.key, new ArrayList<>(Arrays.asList(createAction())));
 
@@ -476,7 +476,7 @@
         when(mDeviceProvisionedController.isDeviceProvisioned()).thenReturn(true);
         when(mEnvironment.isNotificationForCurrentProfiles(any())).thenReturn(true);
 
-        mEntry.row = null;
+        mEntry.setRow(null);
         mEntryManager.mPendingNotifications.put(mEntry.key, mEntry);
         setSmartActions(mEntry.key, new ArrayList<>(Arrays.asList(createAction())));
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/VisualStabilityManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/VisualStabilityManagerTest.java
index ffb1c2d..f190979 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/VisualStabilityManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/VisualStabilityManagerTest.java
@@ -47,7 +47,7 @@
     public void setUp() {
         mVisualStabilityManager.setVisibilityLocationProvider(mLocationProvider);
         mEntry = new NotificationData.Entry(mock(StatusBarNotification.class));
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
index 1c7a8e8..3710fa8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
@@ -89,7 +89,7 @@
         mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME, 0, null, TEST_UID,
                 0, new Notification(), UserHandle.CURRENT, null, 0);
         mEntry = new NotificationData.Entry(mSbn);
-        mEntry.row = mRow;
+        mEntry.setRow(mRow);
 
         mLogger = new TestableNotificationLogger(mBarService);
         mLogger.setUpWithContainer(mListContainer);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
index bf8eb62..2da72e7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
@@ -53,7 +53,6 @@
 
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -140,10 +139,7 @@
         verify(row).updateShelfIconColor();
     }
 
-    // TODO: Ignoring as a temporary workaround until heads up views can be safely freed.
-    // See http://b/117933032
     @Test
-    @Ignore
     public void testFreeContentViewWhenSafe() throws Exception {
         ExpandableNotificationRow row = mNotificationTestHelper.createRow(FLAG_CONTENT_VIEW_ALL);
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.java
index c189c95..f0fa788 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.java
@@ -16,6 +16,9 @@
 
 package com.android.systemui.statusbar.notification.row;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertFalse;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyFloat;
 import static org.mockito.Mockito.doNothing;
@@ -28,29 +31,62 @@
 import static org.mockito.Mockito.when;
 
 import android.app.AppOpsManager;
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.app.RemoteInput;
+import android.content.Intent;
+import android.graphics.drawable.Icon;
+import android.service.notification.StatusBarNotification;
 import android.support.test.annotation.UiThreadTest;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 import android.util.ArraySet;
+import android.util.Pair;
 import android.view.NotificationHeaderView;
 import android.view.View;
 
+import com.android.systemui.R;
 import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.notification.NotificationData;
+import com.android.systemui.statusbar.policy.SmartReplyConstants;
 
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class NotificationContentViewTest extends SysuiTestCase {
 
+    private static final String TEST_ACTION = "com.android.SMART_REPLY_VIEW_ACTION";
+
     NotificationContentView mView;
 
+    @Mock
+    SmartReplyConstants mSmartReplyConstants;
+    @Mock
+    StatusBarNotification mStatusBarNotification;
+    @Mock
+    Notification mNotification;
+    NotificationData.Entry mEntry;
+    @Mock
+    RemoteInput mRemoteInput;
+    @Mock
+    RemoteInput mFreeFormRemoteInput;
+
+    private Icon mActionIcon;
+
+
     @Before
     @UiThreadTest
     public void setup() {
+        MockitoAnnotations.initMocks(this);
+
         mView = new NotificationContentView(mContext, null);
         ExpandableNotificationRow row = new ExpandableNotificationRow(mContext, null);
         ExpandableNotificationRow mockRow = spy(row);
@@ -67,6 +103,13 @@
 
         mView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
         mView.layout(0, 0, mView.getMeasuredWidth(), mView.getMeasuredHeight());
+
+        // Smart replies and actions
+        when(mNotification.getAllowSystemGeneratedContextualActions()).thenReturn(true);
+        when(mStatusBarNotification.getNotification()).thenReturn(mNotification);
+        mEntry = new NotificationData.Entry(mStatusBarNotification);
+        when(mSmartReplyConstants.isEnabled()).thenReturn(true);
+        mActionIcon = Icon.createWithResource(mContext, R.drawable.ic_person);
     }
 
     private View createViewWithHeight(int height) {
@@ -82,7 +125,7 @@
         mView.setDark(true, false, 0);
         mView.setDark(false, true, 0);
         mView.setHeadsUpAnimatingAway(true);
-        Assert.assertFalse(mView.isAnimatingVisibleType());
+        assertFalse(mView.isAnimatingVisibleType());
     }
 
     @Test
@@ -115,4 +158,189 @@
         verify(mockAmbient, never()).showAppOpsIcons(ops);
         verify(mockHeadsUp, times(1)).showAppOpsIcons(any());
     }
+
+    private void setupAppGeneratedReplies(CharSequence[] smartReplyTitles) {
+        Notification.Action freeFormAction =
+                new Notification.Action.Builder(null, "Freeform Test Action", null).build();
+        setupAppGeneratedReplies(smartReplyTitles, freeFormAction);
+    }
+
+    private void setupAppGeneratedReplies(
+            CharSequence[] smartReplyTitles,
+            Notification.Action freeFormRemoteInputAction) {
+        PendingIntent pendingIntent =
+                PendingIntent.getBroadcast(mContext, 0, new Intent(TEST_ACTION), 0);
+        Notification.Action action =
+                new Notification.Action.Builder(null, "Test Action", pendingIntent).build();
+        when(mRemoteInput.getChoices()).thenReturn(smartReplyTitles);
+        Pair<RemoteInput, Notification.Action> remoteInputActionPair =
+                Pair.create(mRemoteInput, action);
+        when(mNotification.findRemoteInputActionPair(false)).thenReturn(remoteInputActionPair);
+
+        Pair<RemoteInput, Notification.Action> freeFormRemoteInputActionPair =
+                Pair.create(mFreeFormRemoteInput, freeFormRemoteInputAction);
+        when(mNotification.findRemoteInputActionPair(true)).thenReturn(
+                freeFormRemoteInputActionPair);
+    }
+
+    @Test
+    public void chooseSmartRepliesAndActions_smartRepliesOff_noAppGeneratedSmartReplies() {
+        setupAppGeneratedReplies(new String[] {"Reply1", "Reply2"});
+        when(mSmartReplyConstants.isEnabled()).thenReturn(false);
+
+        NotificationContentView.SmartRepliesAndActions repliesAndActions =
+                NotificationContentView.chooseSmartRepliesAndActions(mSmartReplyConstants, mEntry);
+
+        assertThat(repliesAndActions.smartReplies).isNull();
+    }
+
+    @Test
+    public void chooseSmartRepliesAndActions_appGeneratedSmartReplies() {
+        CharSequence[] smartReplies = new String[] {"Reply1", "Reply2"};
+        setupAppGeneratedReplies(smartReplies);
+        when(mSmartReplyConstants.requiresTargetingP()).thenReturn(false);
+
+        NotificationContentView.SmartRepliesAndActions repliesAndActions =
+                NotificationContentView.chooseSmartRepliesAndActions(mSmartReplyConstants, mEntry);
+
+        assertThat(repliesAndActions.smartReplies.choices).isEqualTo(smartReplies);
+        assertThat(repliesAndActions.smartReplies.fromAssistant).isFalse();
+        assertThat(repliesAndActions.smartActions).isNull();
+    }
+
+    @Test
+    public void chooseSmartRepliesAndActions_appGeneratedSmartRepliesAndActions() {
+        CharSequence[] smartReplies = new String[] {"Reply1", "Reply2"};
+        setupAppGeneratedReplies(smartReplies);
+        when(mSmartReplyConstants.requiresTargetingP()).thenReturn(false);
+
+        List<Notification.Action> smartActions =
+                createActions(new String[] {"Test Action 1", "Test Action 2"});
+        when(mNotification.getContextualActions()).thenReturn(smartActions);
+
+        NotificationContentView.SmartRepliesAndActions repliesAndActions =
+                NotificationContentView.chooseSmartRepliesAndActions(mSmartReplyConstants, mEntry);
+
+        assertThat(repliesAndActions.smartReplies.choices).isEqualTo(smartReplies);
+        assertThat(repliesAndActions.smartReplies.fromAssistant).isFalse();
+        assertThat(repliesAndActions.smartActions.actions).isEqualTo(smartActions);
+        assertThat(repliesAndActions.smartActions.fromAssistant).isFalse();
+    }
+
+    @Test
+    public void chooseSmartRepliesAndActions_sysGeneratedSmartReplies() {
+        Notification.Action freeFormAction = createActionBuilder("Freeform Action")
+                .setAllowGeneratedReplies(true)
+                .build();
+        // Pass a null-array as app-generated smart replies, so that we use NAS-generated smart
+        // replies.
+        setupAppGeneratedReplies(null, freeFormAction);
+
+        mEntry.smartReplies =
+                new String[] {"Sys Smart Reply 1", "Sys Smart Reply 2"};
+        NotificationContentView.SmartRepliesAndActions repliesAndActions =
+                NotificationContentView.chooseSmartRepliesAndActions(mSmartReplyConstants, mEntry);
+
+        assertThat(repliesAndActions.smartReplies.choices).isEqualTo(mEntry.smartReplies);
+        assertThat(repliesAndActions.smartReplies.fromAssistant).isTrue();
+        assertThat(repliesAndActions.smartActions).isNull();
+    }
+
+    @Test
+    public void chooseSmartRepliesAndActions_noSysGeneratedSmartRepliesIfNotAllowed() {
+        Notification.Action freeFormAction = createActionBuilder("Freeform Action")
+                .setAllowGeneratedReplies(false)
+                .build();
+        // Pass a null-array as app-generated smart replies, so that we use NAS-generated smart
+        // replies.
+        setupAppGeneratedReplies(null, freeFormAction);
+
+        mEntry.smartReplies =
+                new String[] {"Sys Smart Reply 1", "Sys Smart Reply 2"};
+        NotificationContentView.SmartRepliesAndActions repliesAndActions =
+                NotificationContentView.chooseSmartRepliesAndActions(mSmartReplyConstants, mEntry);
+
+        assertThat(repliesAndActions.smartReplies).isNull();
+        assertThat(repliesAndActions.smartActions).isNull();
+    }
+
+    @Test
+    public void chooseSmartRepliesAndActions_sysGeneratedSmartActions() {
+        // Pass a null-array as app-generated smart replies, so that we use NAS-generated smart
+        // actions.
+        setupAppGeneratedReplies(null);
+
+        mEntry.systemGeneratedSmartActions =
+                createActions(new String[] {"Sys Smart Action 1", "Sys Smart Action 2"});
+        NotificationContentView.SmartRepliesAndActions repliesAndActions =
+                NotificationContentView.chooseSmartRepliesAndActions(mSmartReplyConstants, mEntry);
+
+        assertThat(repliesAndActions.smartReplies).isNull();
+        assertThat(repliesAndActions.smartActions.actions)
+                .isEqualTo(mEntry.systemGeneratedSmartActions);
+        assertThat(repliesAndActions.smartActions.fromAssistant).isTrue();
+    }
+
+    @Test
+    public void chooseSmartRepliesAndActions_appGenPreferredOverSysGen() {
+        Notification.Action freeFormAction = createActionBuilder("Freeform Action")
+                .setAllowGeneratedReplies(true)
+                .build();
+        CharSequence[] appGenSmartReplies = new String[] {"Reply1", "Reply2"};
+        // Pass a null-array as app-generated smart replies, so that we use NAS-generated smart
+        // replies.
+        setupAppGeneratedReplies(appGenSmartReplies, freeFormAction);
+        when(mSmartReplyConstants.requiresTargetingP()).thenReturn(false);
+
+        List<Notification.Action> appGenSmartActions =
+                createActions(new String[] {"Test Action 1", "Test Action 2"});
+        when(mNotification.getContextualActions()).thenReturn(appGenSmartActions);
+
+        mEntry.smartReplies = new String[] {"Sys Smart Reply 1", "Sys Smart Reply 2"};
+        mEntry.systemGeneratedSmartActions =
+                createActions(new String[] {"Sys Smart Action 1", "Sys Smart Action 2"});
+
+        NotificationContentView.SmartRepliesAndActions repliesAndActions =
+                NotificationContentView.chooseSmartRepliesAndActions(mSmartReplyConstants, mEntry);
+
+        assertThat(repliesAndActions.smartReplies.choices).isEqualTo(appGenSmartReplies);
+        assertThat(repliesAndActions.smartReplies.fromAssistant).isFalse();
+        assertThat(repliesAndActions.smartActions.actions).isEqualTo(appGenSmartActions);
+        assertThat(repliesAndActions.smartActions.fromAssistant).isFalse();
+    }
+
+    @Test
+    public void chooseSmartRepliesAndActions_disallowSysGenSmartActions() {
+        // Pass a null-array as app-generated smart replies, so that we use NAS-generated smart
+        // actions.
+        setupAppGeneratedReplies(null);
+
+        when(mNotification.getAllowSystemGeneratedContextualActions()).thenReturn(false);
+
+        mEntry.systemGeneratedSmartActions =
+                createActions(new String[] {"Sys Smart Action 1", "Sys Smart Action 2"});
+        NotificationContentView.SmartRepliesAndActions repliesAndActions =
+                NotificationContentView.chooseSmartRepliesAndActions(mSmartReplyConstants, mEntry);
+
+        assertThat(repliesAndActions.smartActions).isNull();
+        assertThat(repliesAndActions.smartReplies).isNull();
+    }
+
+    private Notification.Action.Builder createActionBuilder(String actionTitle) {
+        PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0,
+                new Intent(TEST_ACTION), 0);
+        return new Notification.Action.Builder(mActionIcon, actionTitle, pendingIntent);
+    }
+
+    private Notification.Action createAction(String actionTitle) {
+        return createActionBuilder(actionTitle).build();
+    }
+
+    private List<Notification.Action> createActions(String[] actionTitles) {
+        List<Notification.Action> actions = new ArrayList<>();
+        for (String title : actionTitles) {
+            actions.add(createAction(title));
+        }
+        return actions;
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
index 3d2ea70..766c5d2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
@@ -20,8 +20,7 @@
 import static android.app.AppOpsManager.OP_RECORD_AUDIO;
 import static android.app.AppOpsManager.OP_SYSTEM_ALERT_WINDOW;
 import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
-import static android.service.notification.NotificationListenerService.Ranking
-        .USER_SENTIMENT_NEGATIVE;
+import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE;
 
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.assertNull;
@@ -62,8 +61,7 @@
 import com.android.systemui.statusbar.NotificationTestHelper;
 import com.android.systemui.statusbar.notification.NotificationData;
 import com.android.systemui.statusbar.notification.NotificationEntryManager;
-import com.android.systemui.statusbar.notification.row.NotificationGutsManager
-        .OnSettingsClickListener;
+import com.android.systemui.statusbar.notification.row.NotificationGutsManager.OnSettingsClickListener;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
 import com.android.systemui.statusbar.policy.DeviceProvisionedController;
 
@@ -177,10 +175,17 @@
         NotificationMenuRowPlugin.MenuItem menuItem = createTestMenuItem(realRow);
 
         ExpandableNotificationRow row = spy(realRow);
+
         when(row.getWindowToken()).thenReturn(new Binder());
         when(row.getGuts()).thenReturn(guts);
         doNothing().when(row).inflateGuts();
 
+        NotificationData.Entry realEntry = realRow.getEntry();
+        NotificationData.Entry entry = spy(realEntry);
+
+        when(entry.getRow()).thenReturn(row);
+        when(entry.getGuts()).thenReturn(guts);
+
         mGutsManager.openGuts(row, 0, 0, menuItem);
         mTestableLooper.processAllMessages();
         verify(guts).openControls(
@@ -190,13 +195,19 @@
                 anyBoolean(),
                 any(Runnable.class));
 
+        // called once by mGutsManager.bindGuts() in mGutsManager.openGuts()
+        verify(row).setGutsView(any());
+
         row.onDensityOrFontScaleChanged();
-        mGutsManager.onDensityOrFontScaleChanged(row);
+        mGutsManager.onDensityOrFontScaleChanged(entry);
+
         mTestableLooper.processAllMessages();
 
         mGutsManager.closeAndSaveGuts(false, false, false, 0, 0, false);
 
         verify(guts).closeControls(anyBoolean(), anyBoolean(), anyInt(), anyInt(), anyBoolean());
+
+        // called again by mGutsManager.bindGuts(), in mGutsManager.onDensityOrFontScaleChanged()
         verify(row, times(2)).setGutsView(any());
     }
 
@@ -284,8 +295,7 @@
         when(row.getIsNonblockable()).thenReturn(false);
         StatusBarNotification statusBarNotification = row.getStatusBarNotification();
 
-        mGutsManager.initializeNotificationInfo(row, notificationInfoView,
-                NotificationInfo.ACTION_NONE);
+        mGutsManager.initializeNotificationInfo(row, notificationInfoView);
 
         verify(notificationInfoView).bindNotification(
                 any(PackageManager.class),
@@ -301,9 +311,7 @@
                 eq(false),
                 eq(true) /* isForBlockingHelper */,
                 eq(true) /* isUserSentimentNegative */,
-                eq(false) /*isNoisy */,
-                eq(0),
-                eq(NotificationInfo.ACTION_NONE));
+                eq(0));
     }
 
     @Test
@@ -315,8 +323,7 @@
         when(row.getIsNonblockable()).thenReturn(false);
         StatusBarNotification statusBarNotification = row.getStatusBarNotification();
 
-        mGutsManager.initializeNotificationInfo(row, notificationInfoView,
-                NotificationInfo.ACTION_NONE);
+        mGutsManager.initializeNotificationInfo(row, notificationInfoView);
 
         verify(notificationInfoView).bindNotification(
                 any(PackageManager.class),
@@ -332,41 +339,7 @@
                 eq(false),
                 eq(false) /* isForBlockingHelper */,
                 eq(true) /* isUserSentimentNegative */,
-                eq(false) /*isNoisy */,
-                eq(0),
-                eq(NotificationInfo.ACTION_NONE));
-    }
-
-    @Test
-    public void testInitializeNotificationInfoView_noisy() throws Exception {
-        NotificationInfo notificationInfoView = mock(NotificationInfo.class);
-        ExpandableNotificationRow row = spy(mHelper.createRow());
-        row.setBlockingHelperShowing(true);
-        row.getEntry().userSentiment = USER_SENTIMENT_NEGATIVE;
-        row.getEntry().noisy = true;
-        when(row.getIsNonblockable()).thenReturn(false);
-        StatusBarNotification statusBarNotification = row.getStatusBarNotification();
-
-        mGutsManager.initializeNotificationInfo(row, notificationInfoView,
-                NotificationInfo.ACTION_NONE);
-
-        verify(notificationInfoView).bindNotification(
-                any(PackageManager.class),
-                any(INotificationManager.class),
-                eq(statusBarNotification.getPackageName()),
-                any(NotificationChannel.class),
-                anyInt(),
-                eq(statusBarNotification),
-                any(NotificationInfo.CheckSaveListener.class),
-                any(NotificationInfo.OnSettingsClickListener.class),
-                any(NotificationInfo.OnAppSettingsClickListener.class),
-                eq(false),
-                eq(false),
-                eq(true) /* isForBlockingHelper */,
-                eq(true) /* isUserSentimentNegative */,
-                eq(true) /*isNoisy */,
-                eq(0),
-                eq(NotificationInfo.ACTION_NONE));
+                eq(0));
     }
 
     @Test
@@ -379,8 +352,7 @@
         when(row.getIsNonblockable()).thenReturn(false);
         StatusBarNotification statusBarNotification = row.getStatusBarNotification();
 
-        mGutsManager.initializeNotificationInfo(row, notificationInfoView,
-                NotificationInfo.ACTION_NONE);
+        mGutsManager.initializeNotificationInfo(row, notificationInfoView);
 
         verify(notificationInfoView).bindNotification(
                 any(PackageManager.class),
@@ -396,9 +368,7 @@
                 eq(false),
                 eq(true) /* isForBlockingHelper */,
                 eq(true) /* isUserSentimentNegative */,
-                eq(false) /*isNoisy */,
-                eq(IMPORTANCE_DEFAULT),
-                eq(NotificationInfo.ACTION_NONE));
+                eq(IMPORTANCE_DEFAULT));
     }
 
     @Test
@@ -411,8 +381,7 @@
         StatusBarNotification statusBarNotification = row.getStatusBarNotification();
         when(mDeviceProvisionedController.isDeviceProvisioned()).thenReturn(true);
 
-        mGutsManager.initializeNotificationInfo(row, notificationInfoView,
-                NotificationInfo.ACTION_NONE);
+        mGutsManager.initializeNotificationInfo(row, notificationInfoView);
 
         verify(notificationInfoView).bindNotification(
                 any(PackageManager.class),
@@ -428,9 +397,7 @@
                 eq(false),
                 eq(false) /* isForBlockingHelper */,
                 eq(true) /* isUserSentimentNegative */,
-                eq(false) /*isNoisy */,
-                eq(0),
-                eq(NotificationInfo.ACTION_NONE));
+                eq(0));
     }
 
     @Test
@@ -442,8 +409,7 @@
         when(row.getIsNonblockable()).thenReturn(false);
         StatusBarNotification statusBarNotification = row.getStatusBarNotification();
 
-        mGutsManager.initializeNotificationInfo(row, notificationInfoView,
-                NotificationInfo.ACTION_BLOCK);
+        mGutsManager.initializeNotificationInfo(row, notificationInfoView);
 
         verify(notificationInfoView).bindNotification(
                 any(PackageManager.class),
@@ -459,9 +425,7 @@
                 eq(false),
                 eq(true) /* isForBlockingHelper */,
                 eq(true) /* isUserSentimentNegative */,
-                eq(false) /*isNoisy */,
-                eq(0),
-                eq(NotificationInfo.ACTION_BLOCK));
+                eq(0));
     }
 
     @Test
@@ -470,7 +434,7 @@
         ExpandableNotificationRow row = spy(createTestNotificationRow());
         doReturn(guts).when(row).getGuts();
         NotificationData.Entry entry = row.getEntry();
-        entry.row = row;
+        entry.setRow(row);
         mGutsManager.setExposedGuts(guts);
 
         assertTrue(mGutsManager.shouldExtendLifetime(entry));
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInflaterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInflaterTest.java
index 0d2d345..d6b706d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInflaterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInflaterTest.java
@@ -117,10 +117,7 @@
         verify(mRow).onNotificationUpdated();
     }
 
-    // TODO: Ignoring as a temporary workaround until ambient views can be safely freed.
-    // See http://b/117894786
     @Test
-    @Ignore
     public void testInflationOnlyInflatesSetFlags() throws Exception {
         mNotificationInflater.updateInflationFlag(FLAG_CONTENT_VIEW_HEADS_UP,
                 true /* shouldInflate */);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java
index 1cc1c63..d28f017 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.java
@@ -50,12 +50,9 @@
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.NotificationChannelGroup;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
 import android.graphics.drawable.Drawable;
 import android.os.IBinder;
 import android.os.UserHandle;
@@ -86,8 +83,6 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.concurrent.CountDownLatch;
 
 @SmallTest
@@ -134,7 +129,7 @@
                 .thenReturn(packageInfo);
         final ApplicationInfo applicationInfo = new ApplicationInfo();
         applicationInfo.uid = TEST_UID;  // non-zero
-        when(mMockPackageManager.getApplicationInfo(anyString(), anyInt())).thenReturn(
+        when(mMockPackageManager.getApplicationInfo(eq(TEST_PACKAGE_NAME), anyInt())).thenReturn(
                 applicationInfo);
         final PackageInfo systemPackageInfo = new PackageInfo();
         systemPackageInfo.packageName = TEST_SYSTEM_PACKAGE_NAME;
@@ -187,7 +182,7 @@
         when(mMockPackageManager.getApplicationLabel(any())).thenReturn("App Name");
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final TextView textView = mNotificationInfo.findViewById(R.id.pkgname);
         assertTrue(textView.getText().toString().contains("App Name"));
         assertEquals(VISIBLE, mNotificationInfo.findViewById(R.id.header).getVisibility());
@@ -200,16 +195,47 @@
                 .thenReturn(iconDrawable);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final ImageView iconView = mNotificationInfo.findViewById(R.id.pkgicon);
         assertEquals(iconDrawable, iconView.getDrawable());
     }
 
     @Test
+    public void testBindNotification_noDelegate() throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
+        final TextView nameView = mNotificationInfo.findViewById(R.id.delegate_name);
+        assertEquals(GONE, nameView.getVisibility());
+        final TextView dividerView = mNotificationInfo.findViewById(R.id.pkg_divider);
+        assertEquals(GONE, dividerView.getVisibility());
+    }
+
+    @Test
+    public void testBindNotification_delegate() throws Exception {
+        mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, "other", 0, null, TEST_UID, 0,
+                new Notification(), UserHandle.CURRENT, null, 0);
+        final ApplicationInfo applicationInfo = new ApplicationInfo();
+        applicationInfo.uid = 7;  // non-zero
+        when(mMockPackageManager.getApplicationInfo(eq("other"), anyInt())).thenReturn(
+                applicationInfo);
+        when(mMockPackageManager.getApplicationLabel(any())).thenReturn("Other");
+
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
+        final TextView nameView = mNotificationInfo.findViewById(R.id.delegate_name);
+        assertEquals(VISIBLE, nameView.getVisibility());
+        assertTrue(nameView.getText().toString().contains("Other"));
+        final TextView dividerView = mNotificationInfo.findViewById(R.id.pkg_divider);
+        assertEquals(VISIBLE, dividerView.getVisibility());
+    }
+
+    @Test
     public void testBindNotification_GroupNameHiddenIfNoGroup() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final TextView groupNameView = mNotificationInfo.findViewById(R.id.group_name);
         assertEquals(GONE, groupNameView.getVisibility());
         final TextView groupDividerView = mNotificationInfo.findViewById(R.id.pkg_group_divider);
@@ -226,7 +252,7 @@
                 .thenReturn(notificationChannelGroup);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final TextView groupNameView = mNotificationInfo.findViewById(R.id.group_name);
         assertEquals(View.VISIBLE, groupNameView.getVisibility());
         assertEquals("Test Group Name", groupNameView.getText());
@@ -238,7 +264,7 @@
     public void testBindNotification_SetsTextChannelName() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final TextView textView = mNotificationInfo.findViewById(R.id.channel_name);
         assertEquals(TEST_CHANNEL_NAME, textView.getText());
     }
@@ -247,7 +273,7 @@
     public void testBindNotification_DefaultChannelDoesNotUseChannelName() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mDefaultNotificationChannel, 1, mSbn, null, null, null, true,
-                false, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                false, IMPORTANCE_DEFAULT);
         final TextView textView = mNotificationInfo.findViewById(R.id.channel_name);
         assertEquals(GONE, textView.getVisibility());
     }
@@ -260,7 +286,7 @@
                 eq(TEST_PACKAGE_NAME), eq(TEST_UID), anyBoolean())).thenReturn(10);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mDefaultNotificationChannel, 1, mSbn, null, null, null, true,
-                false, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                false, IMPORTANCE_DEFAULT);
         final TextView textView = mNotificationInfo.findViewById(R.id.channel_name);
         assertEquals(VISIBLE, textView.getVisibility());
     }
@@ -269,7 +295,7 @@
     public void testBindNotification_UnblockablePackageUsesChannelName() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final TextView textView = mNotificationInfo.findViewById(R.id.channel_name);
         assertEquals(VISIBLE, textView.getVisibility());
     }
@@ -278,62 +304,104 @@
     public void testBindNotification_BlockButton() throws Exception {
        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-               false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
-        final View block = mNotificationInfo.findViewById(R.id.block);
-        final View toggleSilent = mNotificationInfo.findViewById(R.id.toggle_silent);
-        final View minimize = mNotificationInfo.findViewById(R.id.minimize);
+               IMPORTANCE_DEFAULT);
+        final View block = mNotificationInfo.findViewById(R.id.int_block);
+        final View minimize = mNotificationInfo.findViewById(R.id.block_or_minimize);
         assertEquals(VISIBLE, block.getVisibility());
-        assertEquals(GONE, toggleSilent.getVisibility());
         assertEquals(GONE, minimize.getVisibility());
     }
 
     @Test
-    public void testBindNotification_SilenceButton() throws Exception {
+    public void testBindNotification_BlockButton_BlockHelper() throws Exception {
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                true /* isBlockingHelper */, false, IMPORTANCE_DEFAULT);
+        final View block = mNotificationInfo.findViewById(R.id.block);
+        final View interruptivenessSettings = mNotificationInfo.findViewById(
+                R.id.interruptiveness_settings);
+        assertEquals(VISIBLE, block.getVisibility());
+        assertEquals(GONE, interruptivenessSettings.getVisibility());
+    }
+
+    @Test
+    public void testBindNotification_SilenceButton_CurrentlyAlerting() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
-        final TextView toggleSilent = mNotificationInfo.findViewById(R.id.toggle_silent);
-        assertEquals(VISIBLE, toggleSilent.getVisibility());
+                IMPORTANCE_DEFAULT);
+        final TextView silent = mNotificationInfo.findViewById(R.id.int_silent);
+        assertEquals(VISIBLE, silent.getVisibility());
         assertEquals(
-                mContext.getString(R.string.inline_silent_button_silent), toggleSilent.getText());
+                mContext.getString(R.string.inline_silent_button_silent), silent.getText());
     }
 
     @Test
-    public void testBindNotification_UnSilenceButton() throws Exception {
+    public void testBindNotification_SilenceButton_CurrentlySilent() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_LOW, NotificationInfo.ACTION_NONE);
-        final TextView toggleSilent = mNotificationInfo.findViewById(R.id.toggle_silent);
-        assertEquals(VISIBLE, toggleSilent.getVisibility());
+                IMPORTANCE_LOW);
+        final TextView silent = mNotificationInfo.findViewById(R.id.int_silent);
+        assertEquals(VISIBLE, silent.getVisibility());
         assertEquals(
-                mContext.getString(R.string.inline_silent_button_alert), toggleSilent.getText());
+                mContext.getString(R.string.inline_silent_button_stay_silent),
+                silent.getText());
     }
 
     @Test
-    public void testBindNotification_SilenceButton_ChannelImportanceUnspecified() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED);
+    public void testBindNotification_AlertButton_CurrentlySilent() throws Exception {
+        mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
-        final TextView toggleSilent = mNotificationInfo.findViewById(R.id.toggle_silent);
-        assertEquals(VISIBLE, toggleSilent.getVisibility());
+                IMPORTANCE_LOW);
+        final TextView alert = mNotificationInfo.findViewById(R.id.int_alert);
+        assertEquals(VISIBLE, alert.getVisibility());
         assertEquals(
-                mContext.getString(R.string.inline_silent_button_silent), toggleSilent.getText());
+                mContext.getString(R.string.inline_silent_button_alert), alert.getText());
     }
 
     @Test
-    public void testBindNotification_UnSilenceButton_ChannelImportanceUnspecified()
-            throws Exception {
+    public void testBindNotification_UnSilenceButton_currentlyAlerting() throws Exception {
+        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
+        final TextView alert = mNotificationInfo.findViewById(R.id.int_alert);
+        assertEquals(VISIBLE, alert.getVisibility());
+        assertEquals(
+                mContext.getString(R.string.inline_silent_button_keep_alerting), alert.getText());
+    }
+
+    @Test
+    public void testBindNotification_ChannelImportanceUnspecified_NotifAlerting() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_LOW, NotificationInfo.ACTION_NONE);
-        final TextView toggleSilent = mNotificationInfo.findViewById(R.id.toggle_silent);
-        assertEquals(VISIBLE, toggleSilent.getVisibility());
+                IMPORTANCE_DEFAULT);
+        final TextView silent = mNotificationInfo.findViewById(R.id.int_silent);
+        final TextView alert = mNotificationInfo.findViewById(R.id.int_alert);
+        assertEquals(VISIBLE, silent.getVisibility());
+        assertEquals(VISIBLE, alert.getVisibility());
         assertEquals(
-                mContext.getString(R.string.inline_silent_button_alert), toggleSilent.getText());
+                mContext.getString(R.string.inline_silent_button_silent), silent.getText());
+        assertEquals(
+                mContext.getString(R.string.inline_silent_button_keep_alerting), alert.getText());
+    }
+
+    @Test
+    public void testBindNotification_ChannelImportanceUnspecified_NotifSilent() throws Exception {
+        mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED);
+        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_LOW);
+        final TextView silent = mNotificationInfo.findViewById(R.id.int_silent);
+        final TextView alert = mNotificationInfo.findViewById(R.id.int_alert);
+        assertEquals(VISIBLE, silent.getVisibility());
+        assertEquals(VISIBLE, alert.getVisibility());
+        assertEquals(
+                mContext.getString(R.string.inline_silent_button_stay_silent), silent.getText());
+        assertEquals(
+                mContext.getString(R.string.inline_silent_button_alert), alert.getText());
     }
 
     @Test
@@ -341,10 +409,13 @@
         mSbn.getNotification().flags = Notification.FLAG_FOREGROUND_SERVICE;
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final View block = mNotificationInfo.findViewById(R.id.block);
+        final View interruptivenessSettings = mNotificationInfo.findViewById(
+                R.id.interruptiveness_settings);
         final View minimize = mNotificationInfo.findViewById(R.id.minimize);
         assertEquals(GONE, block.getVisibility());
+        assertEquals(GONE, interruptivenessSettings.getVisibility());
         assertEquals(VISIBLE, minimize.getVisibility());
     }
 
@@ -356,7 +427,7 @@
                 (View v, NotificationChannel c, int appUid) -> {
                     assertEquals(mNotificationChannel, c);
                     latch.countDown();
-                }, null, true, false, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                }, null, true, false, IMPORTANCE_DEFAULT);
 
         final View settingsButton = mNotificationInfo.findViewById(R.id.info);
         settingsButton.performClick();
@@ -368,7 +439,7 @@
     public void testBindNotification_SettingsButtonInvisibleWhenNoClickListener() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final View settingsButton = mNotificationInfo.findViewById(R.id.info);
         assertTrue(settingsButton.getVisibility() != View.VISIBLE);
     }
@@ -380,7 +451,7 @@
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null,
                 (View v, NotificationChannel c, int appUid) -> {
                     assertEquals(mNotificationChannel, c);
-                }, null, false, false, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                }, null, false, false, IMPORTANCE_DEFAULT);
         final View settingsButton = mNotificationInfo.findViewById(R.id.info);
         assertTrue(settingsButton.getVisibility() != View.VISIBLE);
     }
@@ -389,11 +460,11 @@
     public void testBindNotification_SettingsButtonReappearsAfterSecondBind() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null,
                 (View v, NotificationChannel c, int appUid) -> {
-                }, null, true, false, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                }, null, true, false, IMPORTANCE_DEFAULT);
         final View settingsButton = mNotificationInfo.findViewById(R.id.info);
         assertEquals(View.VISIBLE, settingsButton.getVisibility());
     }
@@ -402,7 +473,7 @@
     public void testLogBlockingHelperCounter_doesntLogForNormalGutsView() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         mNotificationInfo.logBlockingHelperCounter("HowCanNotifsBeRealIfAppsArent");
         verify(mMetricsLogger, times(0)).count(anyString(), anyInt());
     }
@@ -411,7 +482,7 @@
     public void testLogBlockingHelperCounter_logsForBlockingHelper() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false, true,
-                true, true, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                true, true, IMPORTANCE_DEFAULT);
         mNotificationInfo.logBlockingHelperCounter("HowCanNotifsBeRealIfAppsArent");
         verify(mMetricsLogger, times(1)).count(anyString(), anyInt());
     }
@@ -424,7 +495,7 @@
                 (View v, NotificationChannel c, int appUid) -> {
                     assertEquals(null, c);
                     latch.countDown();
-                }, null, true, true, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                }, null, true, true, IMPORTANCE_DEFAULT);
 
         mNotificationInfo.findViewById(R.id.info).performClick();
         // Verify that listener was triggered.
@@ -437,7 +508,7 @@
             throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, MULTIPLE_CHANNEL_COUNT, mSbn, null, null,
-                null, true, true, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                null, true, true, IMPORTANCE_DEFAULT);
         final TextView channelNameView =
                 mNotificationInfo.findViewById(R.id.channel_name);
         assertEquals(GONE, channelNameView.getVisibility());
@@ -448,7 +519,7 @@
     public void testStopInvisibleIfBundleFromDifferentChannels() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, MULTIPLE_CHANNEL_COUNT, mSbn, null, null,
-                null, true, true, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                null, true, true, IMPORTANCE_DEFAULT);
         final TextView blockView = mNotificationInfo.findViewById(R.id.block);
         assertEquals(GONE, blockView.getVisibility());
     }
@@ -457,7 +528,7 @@
     public void testbindNotification_BlockingHelper() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, false, false,
-                true, true, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                true, true, IMPORTANCE_DEFAULT);
         final TextView view = mNotificationInfo.findViewById(R.id.block_prompt);
         assertEquals(View.VISIBLE, view.getVisibility());
         assertEquals(mContext.getString(R.string.inline_blocking_helper), view.getText());
@@ -467,7 +538,7 @@
     public void testbindNotification_UnblockableTextVisibleWhenAppUnblockable() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         final TextView view = mNotificationInfo.findViewById(R.id.block_prompt);
         assertEquals(View.VISIBLE, view.getVisibility());
         assertEquals(mContext.getString(R.string.notification_unblockable_desc),
@@ -478,7 +549,7 @@
     public void testBindNotification_DoesNotUpdateNotificationChannel() throws Exception {
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         mTestableLooper.processAllMessages();
         verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
                 anyString(), eq(TEST_UID), any());
@@ -489,9 +560,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         mTestableLooper.processAllMessages();
         verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
                 anyString(), eq(TEST_UID), any());
@@ -503,7 +574,7 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.findViewById(R.id.minimize).performClick();
         mTestableLooper.processAllMessages();
@@ -517,9 +588,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.toggle_silent).performClick();
+        mNotificationInfo.findViewById(R.id.int_silent).performClick();
         mTestableLooper.processAllMessages();
         verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
                 anyString(), eq(TEST_UID), any());
@@ -531,9 +602,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.toggle_silent).performClick();
+        mNotificationInfo.findViewById(R.id.int_alert).performClick();
         mTestableLooper.processAllMessages();
         verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
                 anyString(), eq(TEST_UID), any());
@@ -545,7 +616,7 @@
         int originalImportance = mNotificationChannel.getImportance();
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.handleCloseControls(true, false);
         mTestableLooper.processAllMessages();
@@ -560,7 +631,7 @@
         mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -578,10 +649,10 @@
                 TEST_PACKAGE_NAME, mNotificationChannel /* notificationChannel */,
                 10 /* numUniqueChannelsInRow */, mSbn, null /* checkSaveListener */,
                 null /* onSettingsClick */, null /* onAppSettingsClick */ ,
-                true, false /* isNonblockable */, false /* isNoisy */, IMPORTANCE_DEFAULT,
-                NotificationInfo.ACTION_NONE);
+                true, false /* isNonblockable */, IMPORTANCE_DEFAULT
+        );
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         waitForUndoButton();
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -600,10 +671,10 @@
                 TEST_PACKAGE_NAME, mNotificationChannel /* notificationChannel */,
                 10 /* numUniqueChannelsInRow */, mSbn, null /* checkSaveListener */,
                 null /* onSettingsClick */, null /* onAppSettingsClick */,
-                true, false /* isNonblockable */, false /* isNoisy */, IMPORTANCE_DEFAULT,
-                NotificationInfo.ACTION_NONE);
+                true, false /* isNonblockable */, IMPORTANCE_DEFAULT
+        );
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         waitForUndoButton();
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -622,8 +693,7 @@
                 null /* onSettingsClick */, null /* onAppSettingsClick */ ,
                 true /* provisioned */,
                 false /* isNonblockable */, true /* isForBlockingHelper */,
-                true /* isUserSentimentNegative */, false /* isNoisy */, IMPORTANCE_DEFAULT,
-                NotificationInfo.ACTION_NONE);
+                true /* isUserSentimentNegative */, IMPORTANCE_DEFAULT);
 
         NotificationGuts guts = spy(new NotificationGuts(mContext, null));
         when(guts.getWindowToken()).thenReturn(mock(IBinder.class));
@@ -651,8 +721,7 @@
                 10 /* numUniqueChannelsInRow */, mSbn, listener /* checkSaveListener */,
                 null /* onSettingsClick */, null /* onAppSettingsClick */ , true /* provisioned */,
                 false /* isNonblockable */, true /* isForBlockingHelper */,
-                true /* isUserSentimentNegative */, false /* isNoisy */, IMPORTANCE_DEFAULT,
-                NotificationInfo.ACTION_NONE);
+                true /* isUserSentimentNegative */, IMPORTANCE_DEFAULT);
 
         NotificationGuts guts = spy(new NotificationGuts(mContext, null));
         when(guts.getWindowToken()).thenReturn(mock(IBinder.class));
@@ -680,8 +749,8 @@
                 10 /* numUniqueChannelsInRow */, mSbn, listener /* checkSaveListener */,
                 null /* onSettingsClick */, null /* onAppSettingsClick */ ,
                 false /* isNonblockable */, true /* isForBlockingHelper */,
-                true, true /* isUserSentimentNegative */, false /* isNoisy */,
-                IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                true, true /* isUserSentimentNegative */,  /* isNoisy */
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.handleCloseControls(true /* save */, false /* force */);
 
@@ -700,8 +769,7 @@
                 null /* onSettingsClick */, null /* onAppSettingsClick */,
                 true /* provisioned */,
                 false /* isNonblockable */, true /* isForBlockingHelper */,
-                true /* isUserSentimentNegative */, false /* isNoisy */, IMPORTANCE_DEFAULT,
-                NotificationInfo.ACTION_NONE);
+                true /* isUserSentimentNegative */, IMPORTANCE_DEFAULT);
 
         mNotificationInfo.findViewById(R.id.block).performClick();
         mTestableLooper.processAllMessages();
@@ -724,7 +792,7 @@
                 true /* isForBlockingHelper */,
                 true,
                 false /* isUserSentimentNegative */,
-                false /* isNoisy */, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         NotificationGuts guts = mock(NotificationGuts.class);
         doCallRealMethod().when(guts).closeControls(anyInt(), anyInt(), anyBoolean(), anyBoolean());
         mNotificationInfo.setGutsParent(guts);
@@ -739,7 +807,7 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         mNotificationInfo.findViewById(R.id.block).performClick();
         waitForUndoButton();
 
@@ -753,9 +821,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         waitForUndoButton();
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -786,7 +854,7 @@
                 false /* isNonblockable */,
                 true /* isForBlockingHelper */,
                 true /* isUserSentimentNegative */,
-                false/* isNoisy */, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.findViewById(R.id.block).performClick();
         waitForUndoButton();
@@ -808,7 +876,7 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
         mNotificationInfo.findViewById(R.id.minimize).performClick();
         waitForUndoButton();
 
@@ -823,7 +891,7 @@
         mSbn.getNotification().flags = Notification.FLAG_FOREGROUND_SERVICE;
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.findViewById(R.id.minimize).performClick();
         waitForUndoButton();
@@ -844,7 +912,7 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -862,9 +930,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         waitForUndoButton();
         mNotificationInfo.findViewById(R.id.undo).performClick();
         waitForStopButton();
@@ -883,8 +951,8 @@
     public void testMinUndoDoesNotMinNotificationChannel() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.findViewById(R.id.minimize).performClick();
         waitForUndoButton();
@@ -906,9 +974,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.toggle_silent).performClick();
+        mNotificationInfo.findViewById(R.id.int_silent).performClick();
         waitForUndoButton();
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -927,9 +995,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.toggle_silent).performClick();
+        mNotificationInfo.findViewById(R.id.int_alert).performClick();
         waitForUndoButton();
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -949,9 +1017,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.toggle_silent).performClick();
+        mNotificationInfo.findViewById(R.id.int_silent).performClick();
         waitForUndoButton();
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -971,9 +1039,9 @@
         mNotificationChannel.setImportance(IMPORTANCE_UNSPECIFIED);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_LOW, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_LOW);
 
-        mNotificationInfo.findViewById(R.id.toggle_silent).performClick();
+        mNotificationInfo.findViewById(R.id.int_alert).performClick();
         waitForUndoButton();
         mNotificationInfo.handleCloseControls(true, false);
 
@@ -988,11 +1056,11 @@
     }
 
     @Test
-    public void testCloseControlsDoesNotUpdateiMinIfSaveIsFalse() throws Exception {
+    public void testCloseControlsDoesNotUpdateMinIfSaveIsFalse() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.findViewById(R.id.minimize).performClick();
         waitForUndoButton();
@@ -1007,10 +1075,10 @@
     public void testCloseControlsDoesNotUpdateIfSaveIsFalse() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         waitForUndoButton();
         mNotificationInfo.handleCloseControls(false, false);
 
@@ -1025,9 +1093,9 @@
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn,
                 (Runnable saveImportance, StatusBarNotification sbn) -> {
-                }, null, null, true, true, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                }, null, null, true, true, IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         mTestableLooper.processAllMessages();
         ensureNoUndoButton();
         mNotificationInfo.handleCloseControls(true, false);
@@ -1043,10 +1111,10 @@
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn,
                 (Runnable saveImportance, StatusBarNotification sbn) -> {
                     saveImportance.run();
-                }, null, null, true, false, false, IMPORTANCE_DEFAULT,
-                NotificationInfo.ACTION_NONE);
+                }, null, null, true, false, IMPORTANCE_DEFAULT
+        );
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         mTestableLooper.processAllMessages();
         verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
                 eq(TEST_PACKAGE_NAME), eq(TEST_UID), eq(mNotificationChannel));
@@ -1060,124 +1128,6 @@
     }
 
     @Test
-    public void testDisplaySettingsLink() throws Exception {
-        final CountDownLatch latch = new CountDownLatch(1);
-        final String settingsText = "work chats";
-        final ResolveInfo ri = new ResolveInfo();
-        ri.activityInfo = new ActivityInfo();
-        ri.activityInfo.packageName = TEST_PACKAGE_NAME;
-        ri.activityInfo.name = "something";
-        List<ResolveInfo> ris = new ArrayList<>();
-        ris.add(ri);
-        when(mMockPackageManager.queryIntentActivities(any(), anyInt())).thenReturn(ris);
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        Notification n = new Notification.Builder(mContext, mNotificationChannel.getId())
-                .setSettingsText(settingsText).build();
-        StatusBarNotification sbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME,
-                0, null, 0, 0, n, UserHandle.CURRENT, null, 0);
-
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, sbn, null, null,
-                (View v, Intent intent) -> {
-                    latch.countDown();
-                }, true, false, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
-        final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings);
-        assertEquals(View.VISIBLE, settingsLink.getVisibility());
-        settingsLink.performClick();
-        assertEquals(0, latch.getCount());
-    }
-
-    @Test
-    public void testDisplaySettingsLink_multipleChannels() throws Exception {
-        final CountDownLatch latch = new CountDownLatch(1);
-        final String settingsText = "work chats";
-        final ResolveInfo ri = new ResolveInfo();
-        ri.activityInfo = new ActivityInfo();
-        ri.activityInfo.packageName = TEST_PACKAGE_NAME;
-        ri.activityInfo.name = "something";
-        List<ResolveInfo> ris = new ArrayList<>();
-        ris.add(ri);
-        when(mMockPackageManager.queryIntentActivities(any(), anyInt())).thenReturn(ris);
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        Notification n = new Notification.Builder(mContext, mNotificationChannel.getId())
-                .setSettingsText(settingsText).build();
-        StatusBarNotification sbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME,
-                0, null, 0, 0, n, UserHandle.CURRENT, null, 0);
-
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, MULTIPLE_CHANNEL_COUNT, sbn, null, null,
-                (View v, Intent intent) -> {
-                    latch.countDown();
-                }, true, false, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
-        final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings);
-        assertEquals(View.VISIBLE, settingsLink.getVisibility());
-        settingsLink.performClick();
-        assertEquals(0, latch.getCount());
-    }
-
-    @Test
-    public void testNoSettingsLink_noHandlingActivity() throws Exception {
-        final String settingsText = "work chats";
-        when(mMockPackageManager.queryIntentActivities(any(), anyInt())).thenReturn(null);
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        Notification n = new Notification.Builder(mContext, mNotificationChannel.getId())
-                .setSettingsText(settingsText).build();
-        StatusBarNotification sbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME,
-                0, null, 0, 0, n, UserHandle.CURRENT, null, 0);
-
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, MULTIPLE_CHANNEL_COUNT, sbn, null, null,
-                null, true, false, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
-        final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings);
-        assertEquals(GONE, settingsLink.getVisibility());
-    }
-
-    @Test
-    public void testNoSettingsLink_noLinkText() throws Exception {
-        final ResolveInfo ri = new ResolveInfo();
-        ri.activityInfo = new ActivityInfo();
-        ri.activityInfo.packageName = TEST_PACKAGE_NAME;
-        ri.activityInfo.name = "something";
-        List<ResolveInfo> ris = new ArrayList<>();
-        ris.add(ri);
-        when(mMockPackageManager.queryIntentActivities(any(), anyInt())).thenReturn(ris);
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        Notification n = new Notification.Builder(mContext, mNotificationChannel.getId()).build();
-        StatusBarNotification sbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME,
-                0, null, 0, 0, n, UserHandle.CURRENT, null, 0);
-
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, sbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
-        final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings);
-        assertEquals(GONE, settingsLink.getVisibility());
-    }
-
-    @Test
-    public void testBindHeader_noSettingsLinkWhenIsForBlockingHelper() throws Exception {
-        final String settingsText = "work chats";
-        final ResolveInfo ri = new ResolveInfo();
-        ri.activityInfo = new ActivityInfo();
-        ri.activityInfo.packageName = TEST_PACKAGE_NAME;
-        ri.activityInfo.name = "something";
-        List<ResolveInfo> ris = new ArrayList<>();
-        ris.add(ri);
-        when(mMockPackageManager.queryIntentActivities(any(), anyInt())).thenReturn(ris);
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        Notification n = new Notification.Builder(mContext, mNotificationChannel.getId())
-                .setSettingsText(settingsText).build();
-        StatusBarNotification sbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME,
-                0, null, 0, 0, n, UserHandle.CURRENT, null, 0);
-
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, sbn, null, null, null, false, true,
-                true, true, false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
-        final TextView settingsLink = mNotificationInfo.findViewById(R.id.app_settings);
-        assertEquals(GONE, settingsLink.getVisibility());
-    }
-
-
-    @Test
     public void testWillBeRemovedReturnsFalseBeforeBind() throws Exception {
         assertFalse(mNotificationInfo.willBeRemoved());
     }
@@ -1188,7 +1138,7 @@
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                 TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                IMPORTANCE_DEFAULT);
 
         mNotificationInfo.findViewById(R.id.minimize).performClick();
         waitForUndoButton();
@@ -1200,10 +1150,10 @@
     public void testUndoText_block() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         waitForUndoButton();
         TextView confirmationText = mNotificationInfo.findViewById(R.id.confirmation_text);
         assertTrue(confirmationText.getText().toString().contains("won't see"));
@@ -1213,10 +1163,10 @@
     public void testUndoText_silence() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.toggle_silent).performClick();
+        mNotificationInfo.findViewById(R.id.int_silent).performClick();
         waitForUndoButton();
         TextView confirmationText = mNotificationInfo.findViewById(R.id.confirmation_text);
         assertEquals(mContext.getString(R.string.notification_channel_silenced),
@@ -1227,10 +1177,10 @@
     public void testUndoText_unsilence() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.toggle_silent).performClick();
+        mNotificationInfo.findViewById(R.id.int_alert).performClick();
         waitForUndoButton();
         TextView confirmationText = mNotificationInfo.findViewById(R.id.confirmation_text);
         assertEquals(mContext.getString(R.string.notification_channel_unsilenced),
@@ -1241,10 +1191,10 @@
     public void testNoHeaderOnConfirmation() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         waitForUndoButton();
         assertEquals(GONE, mNotificationInfo.findViewById(R.id.header).getVisibility());
     }
@@ -1253,69 +1203,13 @@
     public void testHeaderOnUndo() throws Exception {
         mNotificationChannel.setImportance(IMPORTANCE_LOW);
         mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, true,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_NONE);
+                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
+                IMPORTANCE_DEFAULT);
 
-        mNotificationInfo.findViewById(R.id.block).performClick();
+        mNotificationInfo.findViewById(R.id.int_block).performClick();
         waitForUndoButton();
         mNotificationInfo.findViewById(R.id.undo).performClick();
         waitForStopButton();
         assertEquals(VISIBLE, mNotificationInfo.findViewById(R.id.header).getVisibility());
     }
-
-    @Test
-    public void testBindNotificationWithInitialBlockAction() throws Exception {
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                false, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_BLOCK);
-        waitForUndoButton();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields()
-                & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_NONE, updated.getValue().getImportance());
-    }
-
-    @Test
-    public void testBindNotificationWithInitialSilenceAction() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_DEFAULT, NotificationInfo.ACTION_TOGGLE_SILENT);
-        waitForUndoButton();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields()
-                & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_LOW, updated.getValue().getImportance());
-    }
-
-    @Test
-    public void testBindNotificationWithInitialUnSilenceAction() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
-                TEST_PACKAGE_NAME, mNotificationChannel, 1, mSbn, null, null, null, true, false,
-                true, IMPORTANCE_LOW, NotificationInfo.ACTION_TOGGLE_SILENT);
-        waitForUndoButton();
-        mNotificationInfo.handleCloseControls(true, false);
-
-        mTestableLooper.processAllMessages();
-        ArgumentCaptor<NotificationChannel> updated =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), eq(TEST_UID), updated.capture());
-        assertTrue((updated.getValue().getUserLockedFields()
-                & USER_LOCKED_IMPORTANCE) != 0);
-        assertEquals(IMPORTANCE_HIGH, updated.getValue().getImportance());
-    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationMenuRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationMenuRowTest.java
index 18dd1fd..51492da 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationMenuRowTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationMenuRowTest.java
@@ -18,14 +18,14 @@
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
 
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 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.mockito.Mockito.doNothing;
 
-import android.app.Notification;
+import android.app.NotificationChannel;
 import android.service.notification.StatusBarNotification;
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
@@ -35,6 +35,7 @@
 import android.view.ViewGroup;
 
 import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
+import com.android.systemui.statusbar.notification.NotificationData;
 import com.android.systemui.utils.leaks.LeakCheckedTest;
 
 import org.junit.Before;
@@ -47,15 +48,22 @@
 @SmallTest
 public class NotificationMenuRowTest extends LeakCheckedTest {
 
+    private ExpandableNotificationRow mRow;
+
     @Before
     public void setup() {
         injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
+        mRow = mock(ExpandableNotificationRow.class);
+        NotificationData.Entry entry = new NotificationData.Entry(
+                mock(StatusBarNotification.class));
+        entry.channel = mock(NotificationChannel.class);
+        when(mRow.getEntry()).thenReturn(entry);
     }
 
     @Test
     public void testAttachDetach() {
         NotificationMenuRowPlugin row = new NotificationMenuRow(mContext);
-        row.createMenu(null, null);
+        row.createMenu(mRow, null);
         ViewUtils.attachView(row.getMenuView());
         TestableLooper.get(this).processAllMessages();
         ViewUtils.detachView(row.getMenuView());
@@ -65,9 +73,9 @@
     @Test
     public void testRecreateMenu() {
         NotificationMenuRowPlugin row = new NotificationMenuRow(mContext);
-        row.createMenu(null, null);
+        row.createMenu(mRow, null);
         assertTrue(row.getMenuView() != null);
-        row.createMenu(null, null);
+        row.createMenu(mRow, null);
         assertTrue(row.getMenuView() != null);
     }
 
@@ -81,12 +89,7 @@
     @Test
     public void testNoAppOpsInSlowSwipe() {
         NotificationMenuRow row = new NotificationMenuRow(mContext);
-        Notification n = mock(Notification.class);
-        StatusBarNotification sbn = mock(StatusBarNotification.class);
-        when(sbn.getNotification()).thenReturn(n);
-        ExpandableNotificationRow parent = mock(ExpandableNotificationRow.class);
-        when(parent.getStatusBarNotification()).thenReturn(sbn);
-        row.createMenu(parent, null);
+        row.createMenu(mRow, null);
 
         ViewGroup container = (ViewGroup) row.getMenuView();
         // one for snooze and one for noti blocking
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
index a4a111a..662e016 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
@@ -26,11 +26,11 @@
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper.RunWithLooper;
-import android.view.View;
 
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.statusbar.NotificationTestHelper;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.ExpandableView;
 
 import org.junit.Assert;
 import org.junit.Before;
@@ -45,7 +45,7 @@
 public class NotificationRoundnessManagerTest extends SysuiTestCase {
 
     private NotificationRoundnessManager mRoundnessManager = new NotificationRoundnessManager();
-    private HashSet<View> mAnimatedChildren = new HashSet<>();
+    private HashSet<ExpandableView> mAnimatedChildren = new HashSet<>();
     private Runnable mRoundnessCallback = mock(Runnable.class);
     private ExpandableNotificationRow mFirst;
     private ExpandableNotificationRow mSecond;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
index 74ce5f6..e65e806 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
@@ -325,7 +325,9 @@
 
         // add notification
         ExpandableNotificationRow row = mock(ExpandableNotificationRow.class);
-        when(row.isClearable()).thenReturn(true);
+        NotificationData.Entry entry = mock(NotificationData.Entry.class);
+        when(row.getEntry()).thenReturn(entry);
+        when(entry.isClearable()).thenReturn(true);
         mStackScroller.addContainerView(row);
 
         mStackScroller.onUpdateRowStates();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
index 93d8aad..d99e46d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
@@ -40,7 +40,7 @@
 import org.mockito.Mockito;
 
 @RunWith(AndroidTestingRunner.class)
-@RunWithLooper(setAsMainLooper = true)
+@RunWithLooper()
 @SmallTest
 public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java
index 10b0d83..c99e766 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java
@@ -81,12 +81,12 @@
         mFirst.setPinned(true);
         when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(true);
         when(mHeadsUpManager.getTopEntry()).thenReturn(mFirst.getEntry());
-        mHeadsUpAppearanceController.onHeadsUpPinned(mFirst);
+        mHeadsUpAppearanceController.onHeadsUpPinned(mFirst.getEntry());
         Assert.assertEquals(mFirst.getEntry(), mHeadsUpStatusBarView.getShowingEntry());
 
         mFirst.setPinned(false);
         when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(false);
-        mHeadsUpAppearanceController.onHeadsUpUnPinned(mFirst);
+        mHeadsUpAppearanceController.onHeadsUpUnPinned(mFirst.getEntry());
         Assert.assertEquals(null, mHeadsUpStatusBarView.getShowingEntry());
     }
 
@@ -95,12 +95,12 @@
         mFirst.setPinned(true);
         when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(true);
         when(mHeadsUpManager.getTopEntry()).thenReturn(mFirst.getEntry());
-        mHeadsUpAppearanceController.onHeadsUpPinned(mFirst);
+        mHeadsUpAppearanceController.onHeadsUpPinned(mFirst.getEntry());
         Assert.assertTrue(mHeadsUpAppearanceController.isShown());
 
         mFirst.setPinned(false);
         when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(false);
-        mHeadsUpAppearanceController.onHeadsUpUnPinned(mFirst);
+        mHeadsUpAppearanceController.onHeadsUpUnPinned(mFirst.getEntry());
         Assert.assertFalse(mHeadsUpAppearanceController.isShown());
     }
 
@@ -109,12 +109,12 @@
         mFirst.setPinned(true);
         when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(true);
         when(mHeadsUpManager.getTopEntry()).thenReturn(mFirst.getEntry());
-        mHeadsUpAppearanceController.onHeadsUpPinned(mFirst);
+        mHeadsUpAppearanceController.onHeadsUpPinned(mFirst.getEntry());
         Assert.assertEquals(mFirst.getHeaderVisibleAmount(), 0.0f, 0.0f);
 
         mFirst.setPinned(false);
         when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(false);
-        mHeadsUpAppearanceController.onHeadsUpUnPinned(mFirst);
+        mHeadsUpAppearanceController.onHeadsUpUnPinned(mFirst.getEntry());
         Assert.assertEquals(mFirst.getHeaderVisibleAmount(), 1.0f, 0.0f);
     }
 
@@ -125,12 +125,12 @@
         mFirst.setPinned(true);
         when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(true);
         when(mHeadsUpManager.getTopEntry()).thenReturn(mFirst.getEntry());
-        mHeadsUpAppearanceController.onHeadsUpPinned(mFirst);
+        mHeadsUpAppearanceController.onHeadsUpPinned(mFirst.getEntry());
         Assert.assertEquals(View.INVISIBLE, mOperatorNameView.getVisibility());
 
         mFirst.setPinned(false);
         when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(false);
-        mHeadsUpAppearanceController.onHeadsUpUnPinned(mFirst);
+        mHeadsUpAppearanceController.onHeadsUpUnPinned(mFirst.getEntry());
         Assert.assertEquals(View.VISIBLE, mOperatorNameView.getVisibility());
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhoneTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhoneTest.java
index 1070795..44deb10 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhoneTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhoneTest.java
@@ -97,7 +97,7 @@
     @Test
     public void testCanRemoveImmediately_notTopEntry() {
         NotificationData.Entry laterEntry = new NotificationData.Entry(createNewNotification(1));
-        laterEntry.row = mRow;
+        laterEntry.setRow(mRow);
         mHeadsUpManager.showNotification(mEntry);
         mHeadsUpManager.showNotification(laterEntry);
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java
index f8ad298..31014b8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java
@@ -37,7 +37,6 @@
     private static final int EMPTY_MARGIN = 0;
     private static final int EMPTY_HEIGHT = 0;
     private static final boolean SECURE_LOCKED = false;
-    private static final boolean PULSING_NO = false;
     private static final float ZERO_DRAG = 0.f;
     private static final float OPAQUE = 1.f;
     private static final float TRANSPARENT = 0.f;
@@ -48,6 +47,7 @@
     private float mPanelExpansion;
     private int mKeyguardStatusHeight;
     private float mDark;
+    private boolean mPulsing;
 
     @Before
     public void setUp() {
@@ -171,6 +171,156 @@
         assertThat(mClockPosition.clockAlpha).isEqualTo(TRANSPARENT);
     }
 
+    @Test
+    public void notifPositionMiddleOfScreenOnAOD() {
+        // GIVEN on AOD and both stack scroll and clock have 0 height
+        givenAOD();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = EMPTY_HEIGHT;
+        // WHEN the position algorithm is run
+        positionClock();
+        // THEN the notif padding is half of the screen (SCREEN_HEIGHT / 2).
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1000);
+    }
+
+    @Test
+    public void notifPositionIndependentOfKeyguardStatusHeightOnAOD() {
+        // GIVEN on AOD and clock has a nonzero height
+        givenAOD();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = 100;
+        // WHEN the position algorithm is run
+        positionClock();
+        // THEN the notif padding is half of the screen (SCREEN_HEIGHT / 2).
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1000);
+    }
+
+    @Test
+    public void notifPositionWithLargeClockOnAOD() {
+        // GIVEN on AOD and clock has a nonzero height
+        givenAOD();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = SCREEN_HEIGHT;
+        // WHEN the position algorithm is run
+        positionClock();
+        // THEN the notif padding is, unfortunately, the entire screen.
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(SCREEN_HEIGHT);
+    }
+
+    @Test
+    public void notifPositionWhilePulsingOnAOD() {
+        // GIVEN on AOD and pulsing
+        givenAOD();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = EMPTY_HEIGHT;
+        mPulsing = true;
+        mClockPositionAlgorithm.setPulsingPadding(200);
+        // WHEN the clock position algorithm is run
+        positionClock();
+        // THEN the notif padding doesn't adjust for pulsing.
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1000);
+    }
+
+    @Test
+    public void notifPositionMiddleOfScreenOnLockScreen() {
+        // GIVEN on lock screen and both stack scroll and clock have 0 height
+        givenLockScreen();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = EMPTY_HEIGHT;
+        // WHEN the position algorithm is run
+        positionClock();
+        // THEN the notif padding is half of the screen (SCREEN_HEIGHT / 2).
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1000);
+    }
+
+    @Test
+    public void notifPositionAdjustsForStackHeightOnLockScreen() {
+        // GIVEN on lock screen and stack scroller has a nonzero height
+        givenLockScreen();
+        mNotificationStackHeight = 500;
+        mKeyguardStatusHeight = EMPTY_HEIGHT;
+        // WHEN the position algorithm is run
+        positionClock();
+        // THEN the notif padding adjusts for the expanded notif stack.
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(750);
+    }
+
+    @Test
+    public void notifPositionAdjustsForClockHeightOnLockScreen() {
+        // GIVEN on lock screen and stack scroller has a nonzero height
+        givenLockScreen();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = 200;
+        // WHEN the position algorithm is run
+        positionClock();
+        // THEN the notif padding adjusts for both clock and notif stack.
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1000);
+    }
+
+    @Test
+    public void notifPositionAdjustsForStackHeightAndClockHeightOnLockScreen() {
+        // GIVEN on lock screen and stack scroller has a nonzero height
+        givenLockScreen();
+        mNotificationStackHeight = 500;
+        mKeyguardStatusHeight = 200;
+        // WHEN the position algorithm is run
+        positionClock();
+        // THEN the notif padding adjusts for both clock and notif stack.
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(810);
+    }
+
+    @Test
+    public void notifPositionWithLargeClockOnLockScreen() {
+        // GIVEN on lock screen and clock has a nonzero height
+        givenLockScreen();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = SCREEN_HEIGHT;
+        // WHEN the position algorithm is run
+        positionClock();
+        // THEN the notif padding is half of the screen (SCREEN_HEIGHT / 2).
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1000);
+    }
+
+    @Test
+    public void notifPositionWithFullDragOnLockScreen() {
+        // GIVEN the lock screen is dragged up
+        givenLockScreen();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = EMPTY_HEIGHT;
+        mPanelExpansion = 0.f;
+        // WHEN the clock position algorithm is run
+        positionClock();
+        // THEN the notif padding is zero.
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(0);
+    }
+
+    @Test
+    public void notifPositionWithLargeClockFullDragOnLockScreen() {
+        // GIVEN the lock screen is dragged up and a full screen clock
+        givenLockScreen();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = SCREEN_HEIGHT;
+        mPanelExpansion = 0.f;
+        // WHEN the clock position algorithm is run
+        positionClock();
+        // THEN the notif padding is zero.
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(0);
+    }
+
+    @Test
+    public void notifPositionWhilePulsingOnLockScreen() {
+        // GIVEN on lock screen and pulsing
+        givenLockScreen();
+        mNotificationStackHeight = EMPTY_HEIGHT;
+        mKeyguardStatusHeight = EMPTY_HEIGHT;
+        mPulsing = true;
+        mClockPositionAlgorithm.setPulsingPadding(200);
+        // WHEN the clock position algorithm is run
+        positionClock();
+        // THEN the notif padding adjusts for pulsing.
+        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1200);
+    }
+
     private void givenAOD() {
         mPanelExpansion = 1.f;
         mDark = 1.f;
@@ -184,7 +334,7 @@
     private void positionClock() {
         mClockPositionAlgorithm.setup(EMPTY_MARGIN, SCREEN_HEIGHT, mNotificationStackHeight,
                 mPanelExpansion, SCREEN_HEIGHT, mKeyguardStatusHeight, mDark, SECURE_LOCKED,
-                PULSING_NO, ZERO_DRAG);
+                mPulsing, ZERO_DRAG);
         mClockPositionAlgorithm.run(mClockPosition);
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
index 003d058..9e2db91 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
@@ -22,27 +22,25 @@
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
 import android.testing.LeakCheck.Tracker;
+import android.testing.TestableLooper.RunWithLooper;
 import android.view.Display;
 import android.view.WindowManager;
+import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener;
 
 import com.android.systemui.Dependency;
-
-import com.android.systemui.recents.OverviewProxyService;
 import com.android.systemui.SysuiBaseFragmentTest;
+import com.android.systemui.recents.OverviewProxyService;
 import com.android.systemui.recents.Recents;
 import com.android.systemui.stackdivider.Divider;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
 
-import android.testing.TestableLooper.RunWithLooper;
-import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 @RunWith(AndroidTestingRunner.class)
-@RunWithLooper(setAsMainLooper = true)
+@RunWithLooper()
 @SmallTest
 public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java
new file mode 100644
index 0000000..c3bc511
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java
@@ -0,0 +1,277 @@
+/*
+ * 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.systemui.statusbar.phone;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Notification;
+import android.service.notification.StatusBarNotification;
+import android.support.test.filters.SmallTest;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.AmbientPulseManager;
+import com.android.systemui.statusbar.notification.NotificationData;
+import com.android.systemui.statusbar.notification.NotificationData.Entry;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+import java.util.HashMap;
+
+@SmallTest
+@RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper
+public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
+
+    private NotificationGroupAlertTransferHelper mGroupAlertTransferHelper;
+    private NotificationGroupManager mGroupManager;
+    private AmbientPulseManager mAmbientPulseManager;
+    private HeadsUpManager mHeadsUpManager;
+    private final HashMap<String, Entry> mPendingEntries = new HashMap<>();
+    private final NotificationGroupTestHelper mGroupTestHelper =
+            new NotificationGroupTestHelper(mContext);
+
+
+    @Before
+    public void setup() {
+        mAmbientPulseManager = new AmbientPulseManager(mContext);
+        mDependency.injectTestDependency(AmbientPulseManager.class, mAmbientPulseManager);
+        mHeadsUpManager = new HeadsUpManager(mContext) {};
+
+        mGroupManager = new NotificationGroupManager();
+        mDependency.injectTestDependency(NotificationGroupManager.class, mGroupManager);
+        mGroupManager.setHeadsUpManager(mHeadsUpManager);
+
+        mGroupAlertTransferHelper = new NotificationGroupAlertTransferHelper();
+        mGroupAlertTransferHelper.setHeadsUpManager(mHeadsUpManager);
+        mGroupAlertTransferHelper.setPendingEntries(mPendingEntries);
+
+        mGroupManager.addOnGroupChangeListener(mGroupAlertTransferHelper);
+        mHeadsUpManager.addListener(mGroupAlertTransferHelper);
+        mAmbientPulseManager.addListener(mGroupAlertTransferHelper);
+    }
+
+    @Test
+    public void testSuppressedSummaryHeadsUpTransfersToChild() {
+        Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
+        mHeadsUpManager.showNotification(summaryEntry);
+        Entry childEntry = mGroupTestHelper.createChildNotification();
+
+        // Summary will be suppressed because there is only one child.
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        // A suppressed summary should transfer its alert state to the child.
+        assertFalse(mHeadsUpManager.isAlerting(summaryEntry.key));
+        assertTrue(mHeadsUpManager.isAlerting(childEntry.key));
+    }
+
+    @Test
+    public void testSuppressedSummaryHeadsUpTransfersToChildButBackAgain() {
+        NotificationData.Entry summaryEntry =
+                mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
+        NotificationData.Entry childEntry =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        NotificationData.Entry childEntry2 =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        mHeadsUpManager.showNotification(summaryEntry);
+        // Trigger a transfer of alert state from summary to child.
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        // Add second child notification so that summary is no longer suppressed.
+        mPendingEntries.put(childEntry2.key, childEntry2);
+        mGroupAlertTransferHelper.onPendingEntryAdded(childEntry2);
+        mGroupManager.onEntryAdded(childEntry2);
+
+        // The alert state should transfer back to the summary as there is now more than one
+        // child and the summary should no longer be suppressed.
+        assertTrue(mHeadsUpManager.isAlerting(summaryEntry.key));
+        assertFalse(mHeadsUpManager.isAlerting(childEntry.key));
+    }
+
+    @Test
+    public void testSuppressedSummaryHeadsUpDoesntTransferBackOnDozingChanged() {
+        NotificationData.Entry summaryEntry =
+                mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
+        NotificationData.Entry childEntry =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        NotificationData.Entry childEntry2 =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        mHeadsUpManager.showNotification(summaryEntry);
+        // Trigger a transfer of alert state from summary to child.
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        // Set dozing to true.
+        mGroupAlertTransferHelper.onDozingChanged(true);
+
+        // Add second child notification so that summary is no longer suppressed.
+        mPendingEntries.put(childEntry2.key, childEntry2);
+        mGroupAlertTransferHelper.onPendingEntryAdded(childEntry2);
+        mGroupManager.onEntryAdded(childEntry2);
+
+        // Dozing changed so no reason to re-alert summary.
+        assertFalse(mHeadsUpManager.isAlerting(summaryEntry.key));
+    }
+
+    @Test
+    public void testSuppressedSummaryHeadsUpTransferDoesNotAlertChildIfUninflated() {
+        Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
+        mHeadsUpManager.showNotification(summaryEntry);
+        Entry childEntry = mGroupTestHelper.createChildNotification();
+        when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
+            .thenReturn(false);
+
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        // Alert is immediately removed from summary, but we do not show child yet either as its
+        // content is not inflated.
+        assertFalse(mHeadsUpManager.isAlerting(summaryEntry.key));
+        assertFalse(mHeadsUpManager.isAlerting(childEntry.key));
+        assertTrue(mGroupAlertTransferHelper.isAlertTransferPending(childEntry));
+    }
+
+    @Test
+    public void testSuppressedSummaryHeadsUpTransferAlertsChildOnInflation() {
+        Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
+        mHeadsUpManager.showNotification(summaryEntry);
+        Entry childEntry = mGroupTestHelper.createChildNotification();
+        when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
+            .thenReturn(false);
+
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
+            .thenReturn(true);
+        mGroupAlertTransferHelper.onInflationFinished(childEntry);
+
+        // Alert is immediately removed from summary, and we show child as its content is inflated.
+        assertFalse(mHeadsUpManager.isAlerting(summaryEntry.key));
+        assertTrue(mHeadsUpManager.isAlerting(childEntry.key));
+    }
+
+    @Test
+    public void testSuppressedSummaryHeadsUpTransferBackAbortsChildInflation() {
+        NotificationData.Entry summaryEntry =
+                mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
+        NotificationData.Entry childEntry =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
+            .thenReturn(false);
+        NotificationData.Entry childEntry2 =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        mHeadsUpManager.showNotification(summaryEntry);
+        // Trigger a transfer of alert state from summary to child.
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        // Add second child notification so that summary is no longer suppressed.
+        mPendingEntries.put(childEntry2.key, childEntry2);
+        mGroupAlertTransferHelper.onPendingEntryAdded(childEntry2);
+        mGroupManager.onEntryAdded(childEntry2);
+
+        // Child entry finishes its inflation.
+        when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
+            .thenReturn(true);
+        mGroupAlertTransferHelper.onInflationFinished(childEntry);
+
+        verify(childEntry.getRow(), times(1)).freeContentViewWhenSafe(mHeadsUpManager
+            .getContentFlag());
+        assertFalse(mHeadsUpManager.isAlerting(childEntry.key));
+    }
+
+    @Test
+    public void testCleanUpPendingAlertInfo() {
+        NotificationData.Entry summaryEntry =
+                mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
+        NotificationData.Entry childEntry =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
+            .thenReturn(false);
+        mHeadsUpManager.showNotification(summaryEntry);
+        // Trigger a transfer of alert state from summary to child.
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        mGroupAlertTransferHelper.cleanUpPendingAlertInfo(childEntry.key);
+
+        assertFalse(mGroupAlertTransferHelper.isAlertTransferPending(childEntry));
+    }
+
+    @Test
+    public void testUpdateGroupChangeDoesNotTransfer() {
+        NotificationData.Entry summaryEntry =
+                mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
+        NotificationData.Entry childEntry =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
+            .thenReturn(false);
+        mHeadsUpManager.showNotification(summaryEntry);
+        // Trigger a transfer of alert state from summary to child.
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        // Notify that entry changed groups.
+        StatusBarNotification oldNotification = childEntry.notification;
+        StatusBarNotification newSbn = spy(childEntry.notification.clone());
+        doReturn("other_group").when(newSbn).getGroupKey();
+        childEntry.notification = newSbn;
+        mGroupManager.onEntryUpdated(childEntry, oldNotification);
+
+        assertFalse(mGroupAlertTransferHelper.isAlertTransferPending(childEntry));
+    }
+
+    @Test
+    public void testUpdateChildToSummaryDoesNotTransfer() {
+        NotificationData.Entry summaryEntry =
+                mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
+        NotificationData.Entry childEntry =
+                mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
+        when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
+            .thenReturn(false);
+        mHeadsUpManager.showNotification(summaryEntry);
+        // Trigger a transfer of alert state from summary to child.
+        mGroupManager.onEntryAdded(summaryEntry);
+        mGroupManager.onEntryAdded(childEntry);
+
+        // Update that child to a summary.
+        StatusBarNotification oldNotification = childEntry.notification;
+        childEntry.notification = mGroupTestHelper.createSummaryNotification(
+                Notification.GROUP_ALERT_SUMMARY).notification;
+        mGroupManager.onEntryUpdated(childEntry, oldNotification);
+
+        assertFalse(mGroupAlertTransferHelper.isAlertTransferPending(childEntry));
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupManagerTest.java
index 464f74b..b0bd1fb 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupManagerTest.java
@@ -21,25 +21,15 @@
 import static junit.framework.Assert.assertTrue;
 
 import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.verify;
 
-import android.app.ActivityManager;
-import android.app.Notification;
-import android.os.UserHandle;
-import android.service.notification.StatusBarNotification;
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 
-import com.android.systemui.R;
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.statusbar.AmbientPulseManager;
 import com.android.systemui.statusbar.notification.NotificationData;
-import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.phone.NotificationGroupManager.OnGroupChangeListener;
 import com.android.systemui.statusbar.policy.HeadsUpManager;
 
 import org.junit.Before;
@@ -58,11 +48,9 @@
     @Rule
     public MockitoRule rule = MockitoJUnit.rule();
 
-    private static final String TEST_CHANNEL_ID = "test_channel";
-    private static final String TEST_GROUP_ID = "test_group";
-    private static final String TEST_PACKAGE_NAME = "test_pkg";
     private NotificationGroupManager mGroupManager;
-    private int mId = 0;
+    private final NotificationGroupTestHelper mGroupTestHelper =
+            new NotificationGroupTestHelper(mContext);
 
     @Mock HeadsUpManager mHeadsUpManager;
     @Mock AmbientPulseManager mAmbientPulseManager;
@@ -77,13 +65,12 @@
     private void initializeGroupManager() {
         mGroupManager = new NotificationGroupManager();
         mGroupManager.setHeadsUpManager(mHeadsUpManager);
-        mGroupManager.setOnGroupChangeListener(mock(OnGroupChangeListener.class));
     }
 
     @Test
     public void testIsOnlyChildInGroup() {
-        NotificationData.Entry childEntry = createChildNotification();
-        NotificationData.Entry summaryEntry = createSummaryNotification();
+        NotificationData.Entry childEntry = mGroupTestHelper.createChildNotification();
+        NotificationData.Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
 
         mGroupManager.onEntryAdded(summaryEntry);
         mGroupManager.onEntryAdded(childEntry);
@@ -93,36 +80,36 @@
 
     @Test
     public void testIsChildInGroupWithSummary() {
-        NotificationData.Entry childEntry = createChildNotification();
-        NotificationData.Entry summaryEntry = createSummaryNotification();
+        NotificationData.Entry childEntry = mGroupTestHelper.createChildNotification();
+        NotificationData.Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
 
         mGroupManager.onEntryAdded(summaryEntry);
         mGroupManager.onEntryAdded(childEntry);
-        mGroupManager.onEntryAdded(createChildNotification());
+        mGroupManager.onEntryAdded(mGroupTestHelper.createChildNotification());
 
         assertTrue(mGroupManager.isChildInGroupWithSummary(childEntry.notification));
     }
 
     @Test
     public void testIsSummaryOfGroupWithChildren() {
-        NotificationData.Entry childEntry = createChildNotification();
-        NotificationData.Entry summaryEntry = createSummaryNotification();
+        NotificationData.Entry childEntry = mGroupTestHelper.createChildNotification();
+        NotificationData.Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
 
         mGroupManager.onEntryAdded(summaryEntry);
         mGroupManager.onEntryAdded(childEntry);
-        mGroupManager.onEntryAdded(createChildNotification());
+        mGroupManager.onEntryAdded(mGroupTestHelper.createChildNotification());
 
         assertTrue(mGroupManager.isSummaryOfGroup(summaryEntry.notification));
-        assertEquals(summaryEntry.row, mGroupManager.getGroupSummary(childEntry.notification));
+        assertEquals(summaryEntry, mGroupManager.getGroupSummary(childEntry.notification));
     }
 
     @Test
     public void testRemoveChildFromGroupWithSummary() {
-        NotificationData.Entry childEntry = createChildNotification();
-        NotificationData.Entry summaryEntry = createSummaryNotification();
+        NotificationData.Entry childEntry = mGroupTestHelper.createChildNotification();
+        NotificationData.Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
         mGroupManager.onEntryAdded(summaryEntry);
         mGroupManager.onEntryAdded(childEntry);
-        mGroupManager.onEntryAdded(createChildNotification());
+        mGroupManager.onEntryAdded(mGroupTestHelper.createChildNotification());
 
         mGroupManager.onEntryRemoved(childEntry);
 
@@ -131,11 +118,11 @@
 
     @Test
     public void testRemoveSummaryFromGroupWithSummary() {
-        NotificationData.Entry childEntry = createChildNotification();
-        NotificationData.Entry summaryEntry = createSummaryNotification();
+        NotificationData.Entry childEntry = mGroupTestHelper.createChildNotification();
+        NotificationData.Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
         mGroupManager.onEntryAdded(summaryEntry);
         mGroupManager.onEntryAdded(childEntry);
-        mGroupManager.onEntryAdded(createChildNotification());
+        mGroupManager.onEntryAdded(mGroupTestHelper.createChildNotification());
 
         mGroupManager.onEntryRemoved(summaryEntry);
 
@@ -145,162 +132,35 @@
 
     @Test
     public void testHeadsUpEntryIsIsolated() {
-        NotificationData.Entry childEntry = createChildNotification();
-        NotificationData.Entry summaryEntry = createSummaryNotification();
+        NotificationData.Entry childEntry = mGroupTestHelper.createChildNotification();
+        NotificationData.Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
         mGroupManager.onEntryAdded(summaryEntry);
         mGroupManager.onEntryAdded(childEntry);
-        mGroupManager.onEntryAdded(createChildNotification());
+        mGroupManager.onEntryAdded(mGroupTestHelper.createChildNotification());
         when(mHeadsUpManager.isAlerting(childEntry.key)).thenReturn(true);
 
         mGroupManager.onHeadsUpStateChanged(childEntry, true);
 
         // Child entries that are heads upped should be considered separate groups visually even if
         // they are the same group logically
-        assertEquals(childEntry.row, mGroupManager.getGroupSummary(childEntry.notification));
-        assertEquals(summaryEntry.row,
-                mGroupManager.getLogicalGroupSummary(childEntry.notification));
+        assertEquals(childEntry, mGroupManager.getGroupSummary(childEntry.notification));
+        assertEquals(summaryEntry, mGroupManager.getLogicalGroupSummary(childEntry.notification));
     }
 
     @Test
     public void testAmbientPulseEntryIsIsolated() {
-        mGroupManager.setDozing(true);
-        NotificationData.Entry childEntry = createChildNotification();
-        NotificationData.Entry summaryEntry = createSummaryNotification();
+        NotificationData.Entry childEntry = mGroupTestHelper.createChildNotification();
+        NotificationData.Entry summaryEntry = mGroupTestHelper.createSummaryNotification();
         mGroupManager.onEntryAdded(summaryEntry);
         mGroupManager.onEntryAdded(childEntry);
-        mGroupManager.onEntryAdded(createChildNotification());
+        mGroupManager.onEntryAdded(mGroupTestHelper.createChildNotification());
         when(mAmbientPulseManager.isAlerting(childEntry.key)).thenReturn(true);
 
         mGroupManager.onAmbientStateChanged(childEntry, true);
 
         // Child entries that are heads upped should be considered separate groups visually even if
         // they are the same group logically
-        assertEquals(childEntry.row, mGroupManager.getGroupSummary(childEntry.notification));
-        assertEquals(summaryEntry.row,
-                mGroupManager.getLogicalGroupSummary(childEntry.notification));
-    }
-
-    @Test
-    public void testSuppressedSummaryHeadsUpTransfersToChild() {
-        NotificationData.Entry summaryEntry = createSummaryNotification();
-        when(mHeadsUpManager.isAlerting(summaryEntry.key)).thenReturn(true);
-        NotificationData.Entry childEntry = createChildNotification();
-
-        // Summary will be suppressed because there is only one child.
-        mGroupManager.onEntryAdded(summaryEntry);
-        mGroupManager.onEntryAdded(childEntry);
-
-        // A suppressed summary should transfer its heads up state to the child.
-        verify(mHeadsUpManager, never()).showNotification(summaryEntry);
-        verify(mHeadsUpManager).showNotification(childEntry);
-    }
-
-    @Test
-    public void testSuppressedSummaryHeadsUpTransfersToChildButBackAgain() {
-        mHeadsUpManager = new HeadsUpManager(mContext) {};
-        mGroupManager.setHeadsUpManager(mHeadsUpManager);
-        NotificationData.Entry summaryEntry =
-                createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
-        NotificationData.Entry childEntry =
-                createChildNotification(Notification.GROUP_ALERT_SUMMARY);
-        NotificationData.Entry childEntry2 =
-                createChildNotification(Notification.GROUP_ALERT_SUMMARY);
-        mHeadsUpManager.showNotification(summaryEntry);
-        // Trigger a transfer of heads up state from summary to child.
-        mGroupManager.onEntryAdded(summaryEntry);
-        mGroupManager.onEntryAdded(childEntry);
-
-        // Add second child notification so that summary is no longer suppressed.
-        mGroupManager.onEntryAdded(childEntry2);
-
-        // The heads up state should transfer back to the summary as there is now more than one
-        // child and the summary should no longer be suppressed.
-        assertTrue(mHeadsUpManager.isAlerting(summaryEntry.key));
-        assertFalse(mHeadsUpManager.isAlerting(childEntry.key));
-    }
-
-    @Test
-    public void testSuppressedSummaryAmbientPulseTransfersToChild() {
-        mGroupManager.setDozing(true);
-        NotificationData.Entry summaryEntry = createSummaryNotification();
-        when(mAmbientPulseManager.isAlerting(summaryEntry.key)).thenReturn(true);
-        NotificationData.Entry childEntry = createChildNotification();
-
-        // Summary will be suppressed because there is only one child.
-        mGroupManager.onEntryAdded(summaryEntry);
-        mGroupManager.onEntryAdded(childEntry);
-
-        // A suppressed summary should transfer its ambient state to the child.
-        verify(mAmbientPulseManager, never()).showNotification(summaryEntry);
-        verify(mAmbientPulseManager).showNotification(childEntry);
-    }
-
-    @Test
-    public void testSuppressedSummaryAmbientPulseTransfersToChildButBackAgain() {
-        mGroupManager.setDozing(true);
-        mAmbientPulseManager = new AmbientPulseManager(mContext);
-        mDependency.injectTestDependency(AmbientPulseManager.class, mAmbientPulseManager);
-        initializeGroupManager();
-        NotificationData.Entry summaryEntry =
-                createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
-        NotificationData.Entry childEntry =
-                createChildNotification(Notification.GROUP_ALERT_SUMMARY);
-        NotificationData.Entry childEntry2 =
-                createChildNotification(Notification.GROUP_ALERT_SUMMARY);
-        mAmbientPulseManager.showNotification(summaryEntry);
-        // Trigger a transfer of ambient state from summary to child.
-        mGroupManager.onEntryAdded(summaryEntry);
-        mGroupManager.onEntryAdded(childEntry);
-
-        // Add second child notification so that summary is no longer suppressed.
-        mGroupManager.onEntryAdded(childEntry2);
-
-        // The ambient state should transfer back to the summary as there is now more than one
-        // child and the summary should no longer be suppressed.
-        assertTrue(mAmbientPulseManager.isAlerting(summaryEntry.key));
-        assertFalse(mAmbientPulseManager.isAlerting(childEntry.key));
-    }
-
-    private NotificationData.Entry createSummaryNotification() {
-        return createSummaryNotification(Notification.GROUP_ALERT_ALL);
-    }
-
-    private NotificationData.Entry createSummaryNotification(int groupAlertBehavior) {
-        return createEntry(true, groupAlertBehavior);
-    }
-
-    private NotificationData.Entry createChildNotification() {
-        return createChildNotification(Notification.GROUP_ALERT_ALL);
-    }
-
-    private NotificationData.Entry createChildNotification(int groupAlertBehavior) {
-        return createEntry(false, groupAlertBehavior);
-    }
-
-    private NotificationData.Entry createEntry(boolean isSummary, int groupAlertBehavior) {
-        Notification notif = new Notification.Builder(mContext, TEST_CHANNEL_ID)
-                .setContentTitle("Title")
-                .setSmallIcon(R.drawable.ic_person)
-                .setGroupAlertBehavior(groupAlertBehavior)
-                .setGroupSummary(isSummary)
-                .setGroup(TEST_GROUP_ID)
-                .build();
-        StatusBarNotification sbn = new StatusBarNotification(
-                TEST_PACKAGE_NAME /* pkg */,
-                TEST_PACKAGE_NAME,
-                mId++,
-                null /* tag */,
-                0, /* uid */
-                0 /* initialPid */,
-                notif,
-                new UserHandle(ActivityManager.getCurrentUser()),
-                null /* overrideGroupKey */,
-                0 /* postTime */);
-        NotificationData.Entry entry = new NotificationData.Entry(sbn);
-        ExpandableNotificationRow row = mock(ExpandableNotificationRow.class);
-        entry.row = row;
-        when(row.getEntry()).thenReturn(entry);
-        when(row.getStatusBarNotification()).thenReturn(sbn);
-        return entry;
+        assertEquals(childEntry, mGroupManager.getGroupSummary(childEntry.notification));
+        assertEquals(summaryEntry, mGroupManager.getLogicalGroupSummary(childEntry.notification));
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupTestHelper.java
new file mode 100644
index 0000000..7ad68eb
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupTestHelper.java
@@ -0,0 +1,90 @@
+/*
+ * 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.systemui.statusbar.phone;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.app.ActivityManager;
+import android.app.Notification;
+import android.content.Context;
+import android.os.UserHandle;
+import android.service.notification.StatusBarNotification;
+
+import com.android.systemui.R;
+import com.android.systemui.statusbar.notification.NotificationData;
+import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+
+/**
+ * Helper class for creating groups/summaries without having to inflate them.
+ */
+public final class NotificationGroupTestHelper {
+    private static final String TEST_CHANNEL_ID = "test_channel";
+    private static final String TEST_GROUP_ID = "test_group";
+    private static final String TEST_PACKAGE_NAME = "test_pkg";
+    private int mId = 0;
+    private final Context mContext;
+
+    public NotificationGroupTestHelper(Context context) {
+        mContext = context;
+    }
+
+    public NotificationData.Entry createSummaryNotification() {
+        return createSummaryNotification(Notification.GROUP_ALERT_ALL);
+    }
+
+    public NotificationData.Entry createSummaryNotification(int groupAlertBehavior) {
+        return createEntry(true, groupAlertBehavior);
+    }
+
+    public NotificationData.Entry createChildNotification() {
+        return createChildNotification(Notification.GROUP_ALERT_ALL);
+    }
+
+    public NotificationData.Entry createChildNotification(int groupAlertBehavior) {
+        return createEntry(false, groupAlertBehavior);
+    }
+
+    public NotificationData.Entry createEntry(boolean isSummary, int groupAlertBehavior) {
+        Notification notif = new Notification.Builder(mContext, TEST_CHANNEL_ID)
+                .setContentTitle("Title")
+                .setSmallIcon(R.drawable.ic_person)
+                .setGroupAlertBehavior(groupAlertBehavior)
+                .setGroupSummary(isSummary)
+                .setGroup(TEST_GROUP_ID)
+                .build();
+        StatusBarNotification sbn = new StatusBarNotification(
+                TEST_PACKAGE_NAME /* pkg */,
+                TEST_PACKAGE_NAME,
+                mId++,
+                null /* tag */,
+                0, /* uid */
+                0 /* initialPid */,
+                notif,
+                new UserHandle(ActivityManager.getCurrentUser()),
+                null /* overrideGroupKey */,
+                0 /* postTime */);
+        NotificationData.Entry entry = new NotificationData.Entry(sbn);
+        ExpandableNotificationRow row = mock(ExpandableNotificationRow.class);
+        entry.setRow(row);
+        when(row.getEntry()).thenReturn(entry);
+        when(row.getStatusBarNotification()).thenReturn(sbn);
+        when(row.isInflationFlagSet(anyInt())).thenReturn(true);
+        return entry;
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/QuickStepControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/QuickStepControllerTest.java
index 4177cd1..1783d0c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/QuickStepControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/QuickStepControllerTest.java
@@ -38,12 +38,12 @@
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
-import android.content.Context;
 import com.android.systemui.R;
 import com.android.systemui.recents.OverviewProxyService;
 import com.android.systemui.shared.recents.IOverviewProxy;
 import com.android.systemui.SysuiTestCase;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
@@ -78,6 +78,7 @@
         mProxyService = mock(OverviewProxyService.class);
         mProxy = mock(IOverviewProxy.Stub.class);
         doReturn(mProxy).when(mProxyService).getProxy();
+        doReturn(true).when(mProxyService).shouldShowSwipeUpUI();
         mDependency.injectTestDependency(OverviewProxyService.class, mProxyService);
 
         mStatusBar = mock(StatusBar.class);
@@ -106,6 +107,18 @@
     }
 
     @Test
+    public void testNoGesturesWhenSwipeUpDisabled() throws Exception {
+        doReturn(false).when(mProxyService).shouldShowSwipeUpUI();
+        mController.setGestureActions(mockAction(true), null /* swipeDownAction */,
+                null /* swipeLeftAction */, null /* swipeRightAction */);
+
+        MotionEvent ev = event(MotionEvent.ACTION_DOWN, 1, 1);
+        assertFalse(mController.onInterceptTouchEvent(ev));
+        verify(mNavigationBarView, never()).requestUnbufferedDispatch(ev);
+        assertNull(mController.getCurrentAction());
+    }
+
+    @Test
     public void testHasActionDetectGesturesTouchdown() throws Exception {
         MotionEvent ev = event(MotionEvent.ACTION_DOWN, 1, 1);
 
@@ -395,6 +408,7 @@
         verify(mProxy, times(1)).onQuickScrubStart();
         verify(mProxyService, times(1)).notifyQuickScrubStarted();
         verify(mNavigationBarView, times(1)).updateSlippery();
+        verify(mProxy, never()).onMotionEvent(moveEvent1);
 
         // Move again for scrub
         MotionEvent moveEvent2 = event(MotionEvent.ACTION_MOVE, 200, y);
@@ -402,6 +416,7 @@
         assertEquals(action, mController.getCurrentAction());
         verify(action, times(1)).onGestureMove(200, y);
         verify(mProxy, times(1)).onQuickScrubProgress(1f / 2);
+        verify(mProxy, never()).onMotionEvent(moveEvent2);
 
         // Action up
         MotionEvent upEvent = event(MotionEvent.ACTION_UP, 1, y);
@@ -409,6 +424,7 @@
         assertNull(mController.getCurrentAction());
         verify(action, times(1)).onGestureEnd();
         verify(mProxy, times(1)).onQuickScrubEnd();
+        verify(mProxy, never()).onMotionEvent(upEvent);
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
index 24baa7d..59a4937 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
@@ -16,6 +16,7 @@
 
 import static org.junit.Assert.assertFalse;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import android.app.Notification;
 import android.app.StatusBarManager;
@@ -46,7 +47,7 @@
 
 @SmallTest
 @RunWith(AndroidTestingRunner.class)
-@RunWithLooper(setAsMainLooper = true)
+@RunWithLooper()
 public class StatusBarNotificationPresenterTest extends SysuiTestCase {
 
 
@@ -63,9 +64,11 @@
         mContext.putComponent(CommandQueue.class, mCommandQueue);
         mDependency.injectTestDependency(ShadeController.class, mShadeController);
 
+        StatusBarWindowView statusBarWindowView = mock(StatusBarWindowView.class);
+        when(statusBarWindowView.getResources()).thenReturn(mContext.getResources());
         mStatusBar = new StatusBarNotificationPresenter(mContext,
                 mock(NotificationPanelView.class), mock(HeadsUpManagerPhone.class),
-                mock(StatusBarWindowView.class), mock(NotificationListContainerViewGroup.class),
+                statusBarWindowView, mock(NotificationListContainerViewGroup.class),
                 mock(DozeScrimController.class), mock(ScrimController.class),
                 mock(ActivityLaunchAnimator.Callback.class));
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index 7dc858f..e9e8eb7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -209,11 +209,11 @@
                 mNotificationLogger, mVisualStabilityManager, mViewHierarchyManager,
                 mEntryManager, mScrimController, mBiometricUnlockController,
                 mKeyguardViewMediator, mRemoteInputManager, mock(NotificationGroupManager.class),
-                mock(FalsingManager.class), mock(StatusBarWindowController.class),
-                mock(NotificationIconAreaController.class), mock(DozeScrimController.class),
-                mock(NotificationShelf.class), mLockscreenUserManager,
-                mCommandQueue,
-                mNotificationPresenter, mock(BubbleController.class));
+                mock(NotificationGroupAlertTransferHelper.class), mock(FalsingManager.class),
+                mock(StatusBarWindowController.class), mock(NotificationIconAreaController.class),
+                mock(DozeScrimController.class), mock(NotificationShelf.class),
+                mLockscreenUserManager, mCommandQueue, mNotificationPresenter,
+                mock(BubbleController.class));
         mStatusBar.mContext = mContext;
         mStatusBar.mComponents = mContext.getComponents();
         mStatusBar.putComponent(StatusBar.class, mStatusBar);
@@ -634,6 +634,7 @@
                 KeyguardViewMediator keyguardViewMediator,
                 NotificationRemoteInputManager notificationRemoteInputManager,
                 NotificationGroupManager notificationGroupManager,
+                NotificationGroupAlertTransferHelper notificationGroupAlertTransferHelper,
                 FalsingManager falsingManager,
                 StatusBarWindowController statusBarWindowController,
                 NotificationIconAreaController notificationIconAreaController,
@@ -662,6 +663,7 @@
             mKeyguardViewMediator = keyguardViewMediator;
             mRemoteInputManager = notificationRemoteInputManager;
             mGroupManager = notificationGroupManager;
+            mGroupAlertTransferHelper = notificationGroupAlertTransferHelper;
             mFalsingManager = falsingManager;
             mStatusBarWindowController = statusBarWindowController;
             mNotificationIconAreaController = notificationIconAreaController;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java
index 4534ebe..df7aeab 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java
@@ -22,7 +22,9 @@
 import static junit.framework.Assert.assertTrue;
 import static junit.framework.Assert.fail;
 
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -32,6 +34,8 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
 import android.service.notification.StatusBarNotification;
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
@@ -41,14 +45,14 @@
 import android.widget.Button;
 import android.widget.LinearLayout;
 
-import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
 import com.android.systemui.R;
 import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.notification.NotificationData;
+import com.android.systemui.plugins.ActivityStarter;
+import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
 import com.android.systemui.statusbar.SmartReplyController;
+import com.android.systemui.statusbar.notification.NotificationData;
 import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
-
-import java.util.concurrent.atomic.AtomicReference;
+import com.android.systemui.statusbar.phone.ShadeController;
 
 import org.junit.After;
 import org.junit.Before;
@@ -57,6 +61,11 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
+
 @RunWith(AndroidTestingRunner.class)
 @TestableLooper.RunWithLooper
 @SmallTest
@@ -67,6 +76,10 @@
     private static final String[] TEST_CHOICES = new String[]{"Hello", "What's up?", "I'm here"};
     private static final String TEST_NOTIFICATION_KEY = "akey";
 
+    private static final String[] TEST_ACTION_TITLES = new String[]{
+            "First action", "Open something", "Action"
+    };
+
     private static final int WIDTH_SPEC = MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY);
     private static final int HEIGHT_SPEC = MeasureSpec.makeMeasureSpec(400, MeasureSpec.AT_MOST);
 
@@ -74,6 +87,8 @@
     private SmartReplyView mView;
     private View mContainer;
 
+    private Icon mActionIcon;
+
     private int mSingleLinePaddingHorizontal;
     private int mDoubleLinePaddingHorizontal;
     private int mSpacing;
@@ -82,12 +97,16 @@
     private NotificationData.Entry mEntry;
     private Notification mNotification;
 
+    @Mock ActivityStarter mActivityStarter;
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mReceiver = new BlockingQueueIntentReceiver();
         mContext.registerReceiver(mReceiver, new IntentFilter(TEST_ACTION));
         mDependency.get(KeyguardDismissUtil.class).setDismissHandler(action -> action.onDismiss());
+        mDependency.injectMockDependency(ShadeController.class);
+        mDependency.injectTestDependency(ActivityStarter.class, mActivityStarter);
 
         mContainer = new View(mContext, null);
         mView = SmartReplyView.inflate(mContext, null);
@@ -108,6 +127,8 @@
         when(sbn.getNotification()).thenReturn(mNotification);
         when(sbn.getKey()).thenReturn(TEST_NOTIFICATION_KEY);
         mEntry = new NotificationData.Entry(sbn);
+
+        mActionIcon = Icon.createWithResource(mContext, R.drawable.ic_person);
     }
 
     @After
@@ -117,7 +138,7 @@
 
     @Test
     public void testSendSmartReply_intentContainsResultsAndSource() throws InterruptedException {
-        setRepliesFromRemoteInput(TEST_CHOICES);
+        setSmartReplies(TEST_CHOICES);
 
         mView.getChildAt(2).performClick();
 
@@ -130,7 +151,7 @@
     @Test
     public void testSendSmartReply_keyguardCancelled() throws InterruptedException {
         mDependency.get(KeyguardDismissUtil.class).setDismissHandler(action -> {});
-        setRepliesFromRemoteInput(TEST_CHOICES);
+        setSmartReplies(TEST_CHOICES);
 
         mView.getChildAt(2).performClick();
 
@@ -141,7 +162,7 @@
     public void testSendSmartReply_waitsForKeyguard() throws InterruptedException {
         AtomicReference<OnDismissAction> actionRef = new AtomicReference<>();
         mDependency.get(KeyguardDismissUtil.class).setDismissHandler(actionRef::set);
-        setRepliesFromRemoteInput(TEST_CHOICES);
+        setSmartReplies(TEST_CHOICES);
 
         mView.getChildAt(2).performClick();
 
@@ -159,15 +180,24 @@
 
     @Test
     public void testSendSmartReply_controllerCalled() {
-        setRepliesFromRemoteInput(TEST_CHOICES);
+        setSmartReplies(TEST_CHOICES);
         mView.getChildAt(2).performClick();
-        verify(mLogger).smartReplySent(mEntry, 2, TEST_CHOICES[2]);
+        verify(mLogger).smartReplySent(mEntry, 2, TEST_CHOICES[2],
+                false /* generatedByAsssitant */);
+    }
+
+    @Test
+    public void testSendSmartReply_controllerCalled_generatedByAssistant() {
+        setSmartReplies(TEST_CHOICES, true);
+        mView.getChildAt(2).performClick();
+        verify(mLogger).smartReplySent(mEntry, 2, TEST_CHOICES[2],
+                true /* generatedByAsssitant */);
     }
 
     @Test
     public void testSendSmartReply_hidesContainer() {
         mContainer.setVisibility(View.VISIBLE);
-        setRepliesFromRemoteInput(TEST_CHOICES);
+        setSmartReplies(TEST_CHOICES);
         mView.getChildAt(0).performClick();
         assertEquals(View.GONE, mContainer.getVisibility());
     }
@@ -198,7 +228,7 @@
         ViewGroup expectedView = buildExpectedView(choices, 1);
         expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
 
         assertEqualMeasures(expectedView, mView);
@@ -217,7 +247,7 @@
         expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
                 10 + expectedView.getMeasuredHeight());
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
         mView.layout(10, 10, 10 + mView.getMeasuredWidth(), 10 + mView.getMeasuredHeight());
 
@@ -235,7 +265,7 @@
         ViewGroup expectedView = buildExpectedView(choices, 2);
         expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
 
         assertEqualMeasures(expectedView, mView);
@@ -254,7 +284,7 @@
         expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
                 10 + expectedView.getMeasuredHeight());
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
         mView.layout(10, 10, 10 + mView.getMeasuredWidth(), 10 + mView.getMeasuredHeight());
 
@@ -273,7 +303,7 @@
         ViewGroup expectedView = buildExpectedView(new CharSequence[]{"Hi", "Bye"}, 1);
         expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
 
         assertEqualMeasures(expectedView, mView);
@@ -293,7 +323,7 @@
         expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
                 10 + expectedView.getMeasuredHeight());
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
         mView.layout(10, 10, 10 + mView.getMeasuredWidth(), 10 + mView.getMeasuredHeight());
 
@@ -313,7 +343,7 @@
                 new CharSequence[]{"Short", "Short", "Looooooong \nreplyyyyy"}, 2);
         expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(
                 MeasureSpec.makeMeasureSpec(expectedView.getMeasuredWidth(), MeasureSpec.AT_MOST),
                 MeasureSpec.UNSPECIFIED);
@@ -335,7 +365,7 @@
         expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
                 10 + expectedView.getMeasuredHeight());
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(
                 MeasureSpec.makeMeasureSpec(expectedView.getMeasuredWidth(), MeasureSpec.AT_MOST),
                 MeasureSpec.UNSPECIFIED);
@@ -359,7 +389,7 @@
         expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
                 10 + expectedView.getMeasuredHeight());
 
-        setRepliesFromRemoteInput(choices);
+        setSmartReplies(choices);
         mView.measure(
                 MeasureSpec.makeMeasureSpec(expectedView.getMeasuredWidth(), MeasureSpec.AT_MOST),
                 MeasureSpec.UNSPECIFIED);
@@ -371,15 +401,57 @@
         assertReplyButtonHidden(mView.getChildAt(2));
     }
 
-    private void setRepliesFromRemoteInput(CharSequence[] choices) {
+    private void setSmartReplies(CharSequence[] choices) {
+        setSmartReplies(choices, false);
+    }
+
+    private void setSmartReplies(CharSequence[] choices, boolean fromAssistant) {
         PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0,
                 new Intent(TEST_ACTION), 0);
         RemoteInput input = new RemoteInput.Builder(TEST_RESULT_KEY).setChoices(choices).build();
-        mView.setRepliesFromRemoteInput(input, pendingIntent, mLogger, mEntry, mContainer, choices);
+        SmartReplyView.SmartReplies smartReplies =
+                new SmartReplyView.SmartReplies(choices, input, pendingIntent, fromAssistant);
+        mView.resetSmartSuggestions(mContainer);
+        mView.addRepliesFromRemoteInput(smartReplies, mLogger, mEntry);
+    }
+
+    private Notification.Action createAction(String actionTitle) {
+        PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0,
+                new Intent(TEST_ACTION), 0);
+        return new Notification.Action.Builder(mActionIcon, actionTitle, pendingIntent).build();
+    }
+
+    private List<Notification.Action> createActions(String[] actionTitles) {
+        List<Notification.Action> actions = new ArrayList<>();
+        for (String title : actionTitles) {
+            actions.add(createAction(title));
+        }
+        return actions;
+    }
+
+    private void setSmartActions(String[] actionTitles) {
+        mView.resetSmartSuggestions(mContainer);
+        mView.addSmartActions(
+                new SmartReplyView.SmartActions(createActions(actionTitles), false),
+                mLogger,
+                mEntry);
+    }
+
+    private void setSmartRepliesAndActions(CharSequence[] choices, String[] actionTitles) {
+        setSmartReplies(choices);
+        mView.addSmartActions(
+                new SmartReplyView.SmartActions(createActions(actionTitles), false),
+                mLogger,
+                mEntry);
+    }
+
+    private ViewGroup buildExpectedView(CharSequence[] choices, int lineCount) {
+        return buildExpectedView(choices, lineCount, new ArrayList<>());
     }
 
     /** Builds a {@link ViewGroup} whose measures and layout mirror a {@link SmartReplyView}. */
-    private ViewGroup buildExpectedView(CharSequence[] choices, int lineCount) {
+    private ViewGroup buildExpectedView(
+            CharSequence[] choices, int lineCount, List<Notification.Action> actions) {
         LinearLayout layout = new LinearLayout(mContext);
         layout.setOrientation(LinearLayout.HORIZONTAL);
 
@@ -401,10 +473,31 @@
                 return null;
         }
 
+        // Add smart replies
         Button previous = null;
+        SmartReplyView.SmartReplies smartReplies =
+                new SmartReplyView.SmartReplies(choices, null, null, false);
         for (int i = 0; i < choices.length; ++i) {
-            Button current = mView.inflateReplyButton(mContext, mView, i, choices[i],
-                    null, null, null, null);
+            Button current = mView.inflateReplyButton(mContext, mView, i, smartReplies,
+                    null, null);
+            current.setPadding(paddingHorizontal, current.getPaddingTop(), paddingHorizontal,
+                    current.getPaddingBottom());
+            if (previous != null) {
+                ViewGroup.MarginLayoutParams lp =
+                        (ViewGroup.MarginLayoutParams) previous.getLayoutParams();
+                if (isRtl) {
+                    lp.leftMargin = mSpacing;
+                } else {
+                    lp.rightMargin = mSpacing;
+                }
+            }
+            layout.addView(current);
+            previous = current;
+        }
+
+        // Add smart actions
+        for (int i = 0; i < actions.size(); ++i) {
+            Button current = inflateActionButton(actions.get(i));
             current.setPadding(paddingHorizontal, current.getPaddingTop(), paddingHorizontal,
                     current.getPaddingBottom());
             if (previous != null) {
@@ -455,4 +548,257 @@
         assertEquals(expected.getPaddingRight(), actual.getPaddingRight());
         assertEquals(expected.getPaddingBottom(), actual.getPaddingBottom());
     }
+
+
+    // =============================================================================================
+    // ============================= Smart Action tests ============================================
+    // =============================================================================================
+
+    @Test
+    public void testTapSmartAction_waitsForKeyguard() throws InterruptedException {
+        setSmartActions(TEST_ACTION_TITLES);
+
+        mView.getChildAt(2).performClick();
+
+        verify(mActivityStarter, times(1)).startPendingIntentDismissingKeyguard(any(), any());
+    }
+
+    @Test
+    public void testMeasure_shortSmartActions() {
+        String[] actions = new String[] {"Hi", "Hello", "Bye"};
+        // All choices should be displayed as SINGLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(new CharSequence[0], 1, createActions(actions));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        setSmartActions(actions);
+        mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        assertEqualMeasures(expectedView, mView);
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(2), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testLayout_shortSmartActions() {
+        String[] actions = new String[] {"Hi", "Hello", "Bye"};
+        // All choices should be displayed as SINGLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(new CharSequence[0], 1, createActions(actions));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
+                10 + expectedView.getMeasuredHeight());
+
+        setSmartActions(actions);
+        mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        mView.layout(10, 10, 10 + mView.getMeasuredWidth(), 10 + mView.getMeasuredHeight());
+
+        assertEqualLayouts(expectedView, mView);
+        assertEqualLayouts(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertEqualLayouts(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertEqualLayouts(expectedView.getChildAt(2), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testMeasure_smartActionWithTwoLines() {
+        String[] actions = new String[] {"Hi", "Hello\neveryone", "Bye"};
+
+        // All actions should be displayed as DOUBLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(new CharSequence[0], 2, createActions(actions));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        setSmartActions(actions);
+        mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        assertEqualMeasures(expectedView, mView);
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(2), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testLayout_smartActionWithTwoLines() {
+        String[] actions = new String[] {"Hi", "Hello\neveryone", "Bye"};
+
+        // All actions should be displayed as DOUBLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(new CharSequence[0], 2, createActions(actions));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
+                10 + expectedView.getMeasuredHeight());
+
+        setSmartActions(actions);
+        mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        mView.layout(10, 10, 10 + mView.getMeasuredWidth(), 10 + mView.getMeasuredHeight());
+
+        assertEqualLayouts(expectedView, mView);
+        assertEqualLayouts(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertEqualLayouts(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertEqualLayouts(expectedView.getChildAt(2), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testMeasure_smartActionWithThreeLines() {
+        String[] actions = new String[] {"Hi", "Hello\nevery\nbody", "Bye"};
+
+        // The action with three lines should NOT be displayed. All other actions should be
+        // displayed as SINGLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(new CharSequence[0], 1,
+                createActions(new String[]{"Hi", "Bye"}));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        setSmartActions(actions);
+        mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        assertEqualMeasures(expectedView, mView);
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertReplyButtonHidden(mView.getChildAt(1));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(1), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testLayout_smartActionWithThreeLines() {
+        String[] actions = new String[] {"Hi", "Hello\nevery\nbody", "Bye"};
+
+        // The action with three lines should NOT be displayed. All other actions should be
+        // displayed as SINGLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(new CharSequence[0], 1,
+                createActions(new String[]{"Hi", "Bye"}));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
+                10 + expectedView.getMeasuredHeight());
+
+        setSmartActions(actions);
+        mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        mView.layout(10, 10, 10 + mView.getMeasuredWidth(), 10 + mView.getMeasuredHeight());
+
+        assertEqualLayouts(expectedView, mView);
+        assertEqualLayouts(expectedView.getChildAt(0), mView.getChildAt(0));
+        // We don't care about mView.getChildAt(1)'s layout because it's hidden (see
+        // testMeasure_smartActionWithThreeLines).
+        assertEqualLayouts(expectedView.getChildAt(1), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testMeasure_squeezeLongestSmartAction() {
+        String[] actions = new String[] {"Short", "Short", "Looooooong replyyyyy"};
+
+        // All actions should be displayed as DOUBLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(new CharSequence[0], 2,
+                createActions(new String[] {"Short", "Short", "Looooooong \nreplyyyyy"}));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        setSmartActions(actions);
+        mView.measure(
+                MeasureSpec.makeMeasureSpec(expectedView.getMeasuredWidth(), MeasureSpec.AT_MOST),
+                MeasureSpec.UNSPECIFIED);
+
+        assertEqualMeasures(expectedView, mView);
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(2), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testLayout_squeezeLongestSmartAction() {
+        String[] actions = new String[] {"Short", "Short", "Looooooong replyyyyy"};
+
+        // All actions should be displayed as DOUBLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(new CharSequence[0], 2,
+                createActions(new String[] {"Short", "Short", "Looooooong \nreplyyyyy"}));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
+                10 + expectedView.getMeasuredHeight());
+
+        setSmartActions(actions);
+        mView.measure(
+                MeasureSpec.makeMeasureSpec(expectedView.getMeasuredWidth(), MeasureSpec.AT_MOST),
+                MeasureSpec.UNSPECIFIED);
+        mView.layout(10, 10, 10 + mView.getMeasuredWidth(), 10 + mView.getMeasuredHeight());
+
+        assertEqualLayouts(expectedView, mView);
+        assertEqualLayouts(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertEqualLayouts(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertEqualLayouts(expectedView.getChildAt(2), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testMeasure_dropLongestSmartAction() {
+        String[] actions = new String[] {"Short", "Short", "LooooooongUnbreakableReplyyyyy"};
+
+        // Short actions should be shown as single line views
+        ViewGroup expectedView = buildExpectedView(
+                new CharSequence[0], 1, createActions(new String[] {"Short", "Short"}));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+        expectedView.layout(10, 10, 10 + expectedView.getMeasuredWidth(),
+                10 + expectedView.getMeasuredHeight());
+
+        setSmartActions(actions);
+        mView.measure(
+                MeasureSpec.makeMeasureSpec(expectedView.getMeasuredWidth(), MeasureSpec.AT_MOST),
+                MeasureSpec.UNSPECIFIED);
+        mView.layout(10, 10, 10 + mView.getMeasuredWidth(), 10 + mView.getMeasuredHeight());
+
+        assertEqualLayouts(expectedView, mView);
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertReplyButtonHidden(mView.getChildAt(2));
+    }
+
+    private Button inflateActionButton(Notification.Action action) {
+        return mView.inflateActionButton(getContext(), mView, 0,
+                new SmartReplyView.SmartActions(Collections.singletonList(action), false),
+                mLogger, mEntry);
+    }
+
+    @Test
+    public void testInflateActionButton_smartActionIconSingleLineSizeForTwoLineButton() {
+        // Ensure smart action icons are the same size regardless of the number of text rows in the
+        // button.
+        Button singleLineButton = inflateActionButton(createAction("One line"));
+        Button doubleLineButton = inflateActionButton(createAction("Two\nlines"));
+        Drawable singleLineDrawable = singleLineButton.getCompoundDrawables()[0]; // left drawable
+        Drawable doubleLineDrawable = doubleLineButton.getCompoundDrawables()[0]; // left drawable
+        assertEquals(singleLineDrawable.getBounds().width(),
+                     doubleLineDrawable.getBounds().width());
+        assertEquals(singleLineDrawable.getBounds().height(),
+                     doubleLineDrawable.getBounds().height());
+    }
+
+    @Test
+    public void testMeasure_shortChoicesAndActions() {
+        CharSequence[] choices = new String[] {"Hi", "Hello"};
+        String[] actions = new String[] {"Bye"};
+        // All choices should be displayed as SINGLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(choices, 1, createActions(actions));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        setSmartRepliesAndActions(choices, actions);
+        mView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        assertEqualMeasures(expectedView, mView);
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(2), mView.getChildAt(2));
+    }
+
+    @Test
+    public void testMeasure_choicesAndActionsSqueezeLongestAction() {
+        CharSequence[] choices = new String[] {"Short", "Short"};
+        String[] actions = new String[] {"Looooooong replyyyyy"};
+
+        // All actions should be displayed as DOUBLE-line smart action buttons.
+        ViewGroup expectedView = buildExpectedView(choices, 2,
+                createActions(new String[] {"Looooooong \nreplyyyyy"}));
+        expectedView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+
+        setSmartRepliesAndActions(choices, actions);
+        mView.measure(
+                MeasureSpec.makeMeasureSpec(expectedView.getMeasuredWidth(), MeasureSpec.AT_MOST),
+                MeasureSpec.UNSPECIFIED);
+
+        assertEqualMeasures(expectedView, mView);
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(0), mView.getChildAt(0));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(1), mView.getChildAt(1));
+        assertReplyButtonShownWithEqualMeasures(expectedView.getChildAt(2), mView.getChildAt(2));
+    }
 }
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk b/packages/overlays/AdaptiveIconChangeOverlay/Android.mk
similarity index 88%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
copy to packages/overlays/AdaptiveIconChangeOverlay/Android.mk
index e642a68..6e3b8cb 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
+++ b/packages/overlays/AdaptiveIconChangeOverlay/Android.mk
@@ -17,14 +17,14 @@
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_RRO_THEME := ExperimentNavigationBarSlim
+LOCAL_RRO_THEME := SquareIcon
 LOCAL_CERTIFICATE := platform
 
 LOCAL_SRC_FILES := $(call all-subdir-java-files)
 
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 
-LOCAL_PACKAGE_NAME := ExperimentNavigationBarSlimOverlay
+LOCAL_PACKAGE_NAME := SquareIconOverlay
 LOCAL_SDK_VERSION := current
 
-include $(BUILD_RRO_PACKAGE)
\ No newline at end of file
+include $(BUILD_RRO_PACKAGE)
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml b/packages/overlays/AdaptiveIconChangeOverlay/AndroidManifest.xml
similarity index 72%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
copy to packages/overlays/AdaptiveIconChangeOverlay/AndroidManifest.xml
index a1bd582..33da510 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
+++ b/packages/overlays/AdaptiveIconChangeOverlay/AndroidManifest.xml
@@ -16,12 +16,12 @@
  */
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.internal.experiment.navbar.slim"
-        android:versionCode="1"
-        android:versionName="1.0">
+    package="com.android.theme.icon.square"
+    android:versionCode="1"
+    android:versionName="1.0">
     <overlay android:targetPackage="android"
-        android:category="com.android.internal.experiment_navbar_slim"
+        android:category="android.theme.customization.adaptive_icon_shape"
         android:priority="1"/>
 
-    <application android:label="@string/experiment_navigationbar_overlay" android:hasCode="false"/>
-</manifest>
\ No newline at end of file
+    <application android:label="@string/square_icon_overlay" android:hasCode="false"/>
+</manifest>
diff --git a/packages/overlays/AdaptiveIconChangeOverlay/res/values/config.xml b/packages/overlays/AdaptiveIconChangeOverlay/res/values/config.xml
new file mode 100644
index 0000000..54623f5
--- /dev/null
+++ b/packages/overlays/AdaptiveIconChangeOverlay/res/values/config.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Specifies the path that is used by AdaptiveIconDrawable class to crop launcher icons. -->
+    <string name="config_icon_mask" translatable="false">"M50,0L100,0 100,100 0,100 0,0z"</string>
+    <!-- Flag indicating whether round icons should be parsed from the application manifest. -->
+    <bool name="config_useRoundIcon">false</bool>
+
+</resources>
+
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/packages/overlays/AdaptiveIconChangeOverlay/res/values/strings.xml
similarity index 84%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
copy to packages/overlays/AdaptiveIconChangeOverlay/res/values/strings.xml
index 5ca9d15..64b7d0d 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/packages/overlays/AdaptiveIconChangeOverlay/res/values/strings.xml
@@ -17,6 +17,7 @@
  */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
-</resources>
\ No newline at end of file
+    <!-- Square icon overlay [DO NOT TRANSLATE] -->
+    <string name="square_icon_overlay">Square Icons</string>
+
+</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk b/packages/overlays/ExperimentNavigationBarDefaultOverlay/Android.mk
similarity index 88%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
copy to packages/overlays/ExperimentNavigationBarDefaultOverlay/Android.mk
index e642a68..ecad420 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
+++ b/packages/overlays/ExperimentNavigationBarDefaultOverlay/Android.mk
@@ -17,14 +17,14 @@
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_RRO_THEME := ExperimentNavigationBarSlim
+LOCAL_RRO_THEME := ExperimentNavigationBarDefault
 LOCAL_CERTIFICATE := platform
 
 LOCAL_SRC_FILES := $(call all-subdir-java-files)
 
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 
-LOCAL_PACKAGE_NAME := ExperimentNavigationBarSlimOverlay
+LOCAL_PACKAGE_NAME := ExperimentNavigationBarDefaultOverlay
 LOCAL_SDK_VERSION := current
 
 include $(BUILD_RRO_PACKAGE)
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml b/packages/overlays/ExperimentNavigationBarDefaultOverlay/AndroidManifest.xml
similarity index 92%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
copy to packages/overlays/ExperimentNavigationBarDefaultOverlay/AndroidManifest.xml
index a1bd582..1639fc5 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
+++ b/packages/overlays/ExperimentNavigationBarDefaultOverlay/AndroidManifest.xml
@@ -16,11 +16,11 @@
  */
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.internal.experiment.navbar.slim"
+        package="com.android.internal.experiment.navbar.default"
         android:versionCode="1"
         android:versionName="1.0">
     <overlay android:targetPackage="android"
-        android:category="com.android.internal.experiment_navbar_slim"
+        android:category="com.android.internal.experiment_navbar_default"
         android:priority="1"/>
 
     <application android:label="@string/experiment_navigationbar_overlay" android:hasCode="false"/>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml b/packages/overlays/ExperimentNavigationBarDefaultOverlay/res/values/config.xml
similarity index 70%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml
copy to packages/overlays/ExperimentNavigationBarDefaultOverlay/res/values/config.xml
index 4c3571a..d8b69cd 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml
+++ b/packages/overlays/ExperimentNavigationBarDefaultOverlay/res/values/config.xml
@@ -17,12 +17,8 @@
  */
 -->
 <resources>
-    <!-- Height of the bottom navigation / system bar. -->
-    <dimen name="navigation_bar_height">36dp</dimen>
-    <!-- Width of the navigation bar when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_width">36dp</dimen>
     <!-- Height of the bottom navigation / system bar frame; navigation buttons height. -->
-    <dimen name="navigation_bar_frame_width">36dp</dimen>
+    <dimen name="navigation_bar_frame_width">48dp</dimen>
     <!-- Width of the navigation bar frame when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_frame_height">36dp</dimen>
+    <dimen name="navigation_bar_frame_height">48dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/packages/overlays/ExperimentNavigationBarDefaultOverlay/res/values/strings.xml
similarity index 88%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
copy to packages/overlays/ExperimentNavigationBarDefaultOverlay/res/values/strings.xml
index 5ca9d15..c933290 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/packages/overlays/ExperimentNavigationBarDefaultOverlay/res/values/strings.xml
@@ -18,5 +18,5 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
+    <string name="experiment_navigationbar_overlay">Default Navigation Bar Experiment (48dp)</string>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarFloatingOverlay/AndroidManifest.xml b/packages/overlays/ExperimentNavigationBarFloatingOverlay/AndroidManifest.xml
index b4b2b16..b4cc34f 100644
--- a/packages/overlays/ExperimentNavigationBarFloatingOverlay/AndroidManifest.xml
+++ b/packages/overlays/ExperimentNavigationBarFloatingOverlay/AndroidManifest.xml
@@ -16,7 +16,7 @@
  */
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.internal.experiment.navbar.floating"
+        package="com.android.internal.experiment.navbar.type.floating"
         android:versionCode="1"
         android:versionName="1.0">
     <overlay android:targetPackage="android"
diff --git a/packages/overlays/ExperimentNavigationBarFloatingOverlay/res/values/config.xml b/packages/overlays/ExperimentNavigationBarFloatingOverlay/res/values/config.xml
index 6a58453..30bca3c 100644
--- a/packages/overlays/ExperimentNavigationBarFloatingOverlay/res/values/config.xml
+++ b/packages/overlays/ExperimentNavigationBarFloatingOverlay/res/values/config.xml
@@ -21,8 +21,4 @@
     <dimen name="navigation_bar_height">0dp</dimen>
     <!-- Width of the navigation bar when it is placed vertically on the screen -->
     <dimen name="navigation_bar_width">0dp</dimen>
-    <!-- Height of the bottom navigation / system bar frame; navigation buttons height. -->
-    <dimen name="navigation_bar_frame_height">48dp</dimen>
-    <!-- Width of the navigation bar frame when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_frame_width">48dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk b/packages/overlays/ExperimentNavigationBarSlim24Overlay/Android.mk
similarity index 88%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
copy to packages/overlays/ExperimentNavigationBarSlim24Overlay/Android.mk
index e642a68..58cf134 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
+++ b/packages/overlays/ExperimentNavigationBarSlim24Overlay/Android.mk
@@ -17,14 +17,14 @@
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_RRO_THEME := ExperimentNavigationBarSlim
+LOCAL_RRO_THEME := ExperimentNavigationBarSlim24
 LOCAL_CERTIFICATE := platform
 
 LOCAL_SRC_FILES := $(call all-subdir-java-files)
 
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 
-LOCAL_PACKAGE_NAME := ExperimentNavigationBarSlimOverlay
+LOCAL_PACKAGE_NAME := ExperimentNavigationBarSlimOverlay24
 LOCAL_SDK_VERSION := current
 
 include $(BUILD_RRO_PACKAGE)
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/AndroidManifest.xml
similarity index 93%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/AndroidManifest.xml
index a1bd582..aee543a 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim24Overlay/AndroidManifest.xml
@@ -16,11 +16,11 @@
  */
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.internal.experiment.navbar.slim"
+        package="com.android.internal.experiment.navbar.slim24"
         android:versionCode="1"
         android:versionName="1.0">
     <overlay android:targetPackage="android"
-        android:category="com.android.internal.experiment_navbar_slim"
+        android:category="com.android.internal.experiment_navbar_slim24"
         android:priority="1"/>
 
     <application android:label="@string/experiment_navigationbar_overlay" android:hasCode="false"/>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-af/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-af/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-af/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-af/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-am/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-am/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-am/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-am/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ar/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ar/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ar/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ar/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-az/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-az/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-az/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-az/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-b+sr+Latn/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-b+sr+Latn/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-b+sr+Latn/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-b+sr+Latn/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-be/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-be/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-be/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-be/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-bg/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-bg/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-bg/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-bg/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-bs/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-bs/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-bs/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-bs/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ca/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ca/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ca/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ca/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-cs/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-cs/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-cs/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-cs/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-da/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-da/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-da/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-da/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-de/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-de/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-de/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-de/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-el/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-el/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-el/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-el/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rAU/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rAU/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rAU/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rAU/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rCA/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rCA/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rCA/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rCA/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rGB/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rGB/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rGB/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rGB/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rIN/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rIN/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rIN/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rIN/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rXC/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rXC/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-en-rXC/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-en-rXC/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-es-rUS/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-es-rUS/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-es-rUS/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-es-rUS/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-es/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-es/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-es/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-es/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-et/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-et/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-et/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-et/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-eu/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-eu/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-eu/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-eu/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-fa/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-fa/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-fa/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-fa/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-fi/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-fi/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-fi/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-fi/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-fr-rCA/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-fr-rCA/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-fr-rCA/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-fr-rCA/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-fr/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-fr/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-fr/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-fr/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-gl/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-gl/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-gl/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-gl/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-hi/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-hi/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-hi/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-hi/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-hr/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-hr/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-hr/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-hr/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-hu/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-hu/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-hu/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-hu/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-hy/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-hy/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-hy/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-hy/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-in/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-in/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-in/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-in/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-is/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-is/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-is/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-is/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-it/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-it/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-it/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-it/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-iw/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-iw/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-iw/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-iw/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ja/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ja/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ja/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ja/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ka/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ka/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ka/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ka/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-kk/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-kk/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-kk/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-kk/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-km/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-km/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-km/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-km/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ko/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ko/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ko/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ko/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ky/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ky/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ky/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ky/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-lo/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-lo/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-lo/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-lo/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-lt/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-lt/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-lt/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-lt/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-lv/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-lv/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-lv/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-lv/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-mk/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-mk/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-mk/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-mk/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-mn/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-mn/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-mn/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-mn/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-mr/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-mr/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-mr/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-mr/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ms/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ms/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ms/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ms/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-my/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-my/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-my/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-my/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-nb/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-nb/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-nb/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-nb/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-nl/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-nl/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-nl/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-nl/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pl/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-pl/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pl/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-pl/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pt-rBR/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-pt-rBR/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pt-rBR/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-pt-rBR/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pt-rPT/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-pt-rPT/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pt-rPT/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-pt-rPT/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pt/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-pt/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pt/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-pt/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ro/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ro/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ro/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ro/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ru/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ru/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ru/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ru/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sk/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sk/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sk/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sk/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sl/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sl/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sl/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sl/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sq/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sq/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sq/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sq/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sr/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sr/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sr/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sr/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sv/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sv/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sv/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sv/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sw/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sw/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-sw/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-sw/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-th/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-th/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-th/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-th/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-tl/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-tl/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-tl/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-tl/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-tr/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-tr/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-tr/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-tr/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-uk/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-uk/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-uk/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-uk/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ur/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ur/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ur/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-ur/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-uz/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-uz/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-uz/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-uz/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-vi/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-vi/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-vi/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-vi/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-zh-rCN/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-zh-rCN/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-zh-rCN/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-zh-rCN/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-zh-rHK/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-zh-rHK/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-zh-rHK/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-zh-rHK/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-zh-rTW/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-zh-rTW/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-zh-rTW/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-zh-rTW/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-zu/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-zu/strings.xml
similarity index 100%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-zu/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values-zu/strings.xml
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values/config.xml
similarity index 82%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml
copy to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values/config.xml
index 4c3571a..58c653d 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values/config.xml
@@ -18,11 +18,11 @@
 -->
 <resources>
     <!-- Height of the bottom navigation / system bar. -->
-    <dimen name="navigation_bar_height">36dp</dimen>
+    <dimen name="navigation_bar_height">24dp</dimen>
     <!-- Width of the navigation bar when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_width">36dp</dimen>
+    <dimen name="navigation_bar_width">24dp</dimen>
     <!-- Height of the bottom navigation / system bar frame; navigation buttons height. -->
-    <dimen name="navigation_bar_frame_width">36dp</dimen>
+    <dimen name="navigation_bar_frame_width">24dp</dimen>
     <!-- Width of the navigation bar frame when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_frame_height">36dp</dimen>
+    <dimen name="navigation_bar_frame_height">24dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values/strings.xml
similarity index 95%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
copy to packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values/strings.xml
index 5ca9d15..670bc55 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim24Overlay/res/values/strings.xml
@@ -18,5 +18,5 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
+    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment (24dp)</string>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk b/packages/overlays/ExperimentNavigationBarSlim32Overlay/Android.mk
similarity index 88%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
rename to packages/overlays/ExperimentNavigationBarSlim32Overlay/Android.mk
index e642a68..7ebbb74 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
+++ b/packages/overlays/ExperimentNavigationBarSlim32Overlay/Android.mk
@@ -17,14 +17,14 @@
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_RRO_THEME := ExperimentNavigationBarSlim
+LOCAL_RRO_THEME := ExperimentNavigationBarSlim32
 LOCAL_CERTIFICATE := platform
 
 LOCAL_SRC_FILES := $(call all-subdir-java-files)
 
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 
-LOCAL_PACKAGE_NAME := ExperimentNavigationBarSlimOverlay
+LOCAL_PACKAGE_NAME := ExperimentNavigationBarSlimOverlay32
 LOCAL_SDK_VERSION := current
 
 include $(BUILD_RRO_PACKAGE)
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml b/packages/overlays/ExperimentNavigationBarSlim32Overlay/AndroidManifest.xml
similarity index 93%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
copy to packages/overlays/ExperimentNavigationBarSlim32Overlay/AndroidManifest.xml
index a1bd582..10cf6a1 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim32Overlay/AndroidManifest.xml
@@ -16,11 +16,11 @@
  */
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.internal.experiment.navbar.slim"
+        package="com.android.internal.experiment.navbar.slim32"
         android:versionCode="1"
         android:versionName="1.0">
     <overlay android:targetPackage="android"
-        android:category="com.android.internal.experiment_navbar_slim"
+        android:category="com.android.internal.experiment_navbar_slim32"
         android:priority="1"/>
 
     <application android:label="@string/experiment_navigationbar_overlay" android:hasCode="false"/>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml b/packages/overlays/ExperimentNavigationBarSlim32Overlay/res/values/config.xml
similarity index 82%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml
copy to packages/overlays/ExperimentNavigationBarSlim32Overlay/res/values/config.xml
index 4c3571a..00dd8fe 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim32Overlay/res/values/config.xml
@@ -18,11 +18,11 @@
 -->
 <resources>
     <!-- Height of the bottom navigation / system bar. -->
-    <dimen name="navigation_bar_height">36dp</dimen>
+    <dimen name="navigation_bar_height">32dp</dimen>
     <!-- Width of the navigation bar when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_width">36dp</dimen>
+    <dimen name="navigation_bar_width">32dp</dimen>
     <!-- Height of the bottom navigation / system bar frame; navigation buttons height. -->
-    <dimen name="navigation_bar_frame_width">36dp</dimen>
+    <dimen name="navigation_bar_frame_width">32dp</dimen>
     <!-- Width of the navigation bar frame when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_frame_height">36dp</dimen>
+    <dimen name="navigation_bar_frame_height">32dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/packages/overlays/ExperimentNavigationBarSlim32Overlay/res/values/strings.xml
similarity index 95%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
rename to packages/overlays/ExperimentNavigationBarSlim32Overlay/res/values/strings.xml
index 5ca9d15..b48661c 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim32Overlay/res/values/strings.xml
@@ -18,5 +18,5 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
+    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment (32dp)</string>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk b/packages/overlays/ExperimentNavigationBarSlim40Overlay/Android.mk
similarity index 88%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
copy to packages/overlays/ExperimentNavigationBarSlim40Overlay/Android.mk
index e642a68..28354e3 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/Android.mk
+++ b/packages/overlays/ExperimentNavigationBarSlim40Overlay/Android.mk
@@ -17,14 +17,14 @@
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_RRO_THEME := ExperimentNavigationBarSlim
+LOCAL_RRO_THEME := ExperimentNavigationBarSlim40
 LOCAL_CERTIFICATE := platform
 
 LOCAL_SRC_FILES := $(call all-subdir-java-files)
 
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 
-LOCAL_PACKAGE_NAME := ExperimentNavigationBarSlimOverlay
+LOCAL_PACKAGE_NAME := ExperimentNavigationBarSlimOverlay40
 LOCAL_SDK_VERSION := current
 
 include $(BUILD_RRO_PACKAGE)
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml b/packages/overlays/ExperimentNavigationBarSlim40Overlay/AndroidManifest.xml
similarity index 93%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
copy to packages/overlays/ExperimentNavigationBarSlim40Overlay/AndroidManifest.xml
index a1bd582..ce8133f 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/AndroidManifest.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim40Overlay/AndroidManifest.xml
@@ -16,11 +16,11 @@
  */
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.internal.experiment.navbar.slim"
+        package="com.android.internal.experiment.navbar.slim40"
         android:versionCode="1"
         android:versionName="1.0">
     <overlay android:targetPackage="android"
-        android:category="com.android.internal.experiment_navbar_slim"
+        android:category="com.android.internal.experiment_navbar_slim40"
         android:priority="1"/>
 
     <application android:label="@string/experiment_navigationbar_overlay" android:hasCode="false"/>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml b/packages/overlays/ExperimentNavigationBarSlim40Overlay/res/values/config.xml
similarity index 82%
rename from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml
rename to packages/overlays/ExperimentNavigationBarSlim40Overlay/res/values/config.xml
index 4c3571a..4e65f33 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/config.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim40Overlay/res/values/config.xml
@@ -18,11 +18,11 @@
 -->
 <resources>
     <!-- Height of the bottom navigation / system bar. -->
-    <dimen name="navigation_bar_height">36dp</dimen>
+    <dimen name="navigation_bar_height">40dp</dimen>
     <!-- Width of the navigation bar when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_width">36dp</dimen>
+    <dimen name="navigation_bar_width">40dp</dimen>
     <!-- Height of the bottom navigation / system bar frame; navigation buttons height. -->
-    <dimen name="navigation_bar_frame_width">36dp</dimen>
+    <dimen name="navigation_bar_frame_width">40dp</dimen>
     <!-- Width of the navigation bar frame when it is placed vertically on the screen -->
-    <dimen name="navigation_bar_frame_height">36dp</dimen>
+    <dimen name="navigation_bar_frame_height">40dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/packages/overlays/ExperimentNavigationBarSlim40Overlay/res/values/strings.xml
similarity index 95%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
copy to packages/overlays/ExperimentNavigationBarSlim40Overlay/res/values/strings.xml
index 5ca9d15..8fe3a5c 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/packages/overlays/ExperimentNavigationBarSlim40Overlay/res/values/strings.xml
@@ -18,5 +18,5 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
+    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment (40dp)</string>
 </resources>
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-as/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-as/strings.xml
deleted file mode 100644
index 8cce570..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-as/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"লাহী নেভিগে’শ্বন বাৰ সম্পৰীক্ষা"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-bn/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-bn/strings.xml
deleted file mode 100644
index c0ab3b1..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-bn/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"স্লিম নেভিগেশন বার সম্পর্কিত পরীক্ষা"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-gu/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-gu/strings.xml
deleted file mode 100644
index 96418ae..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-gu/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"સ્લિમ નૅવિગેશન બારનો પ્રયોગ"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-kn/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-kn/strings.xml
deleted file mode 100644
index ccdddea..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-kn/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"ಸ್ಲಿಮ್ ನ್ಯಾವಿಗೇಷನ್ ಬಾರ್ ಪ್ರಯೋಗ"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ml/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ml/strings.xml
deleted file mode 100644
index b65afe3..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ml/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"സ്ലിം നാവിഗേഷൻ ബാർ പരീക്ഷണം"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ne/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ne/strings.xml
deleted file mode 100644
index 6022b7f..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ne/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"पातलो नेभिगेसन पट्टीको परीक्षण"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-or/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-or/strings.xml
deleted file mode 100644
index 1db9783..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-or/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"ସ୍ଲିମ୍‍ ନାଭିଗେସନ୍‍ ବାର୍‍‍‍‍‍ର ପ୍ରୟୋଗ"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pa/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pa/strings.xml
deleted file mode 100644
index a782f46..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-pa/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"ਸਲਿਮ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਪੱਟੀ ਪ੍ਰਯੋਗ"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-si/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-si/strings.xml
deleted file mode 100644
index a1abb64..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-si/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"සිහින් සංචාලන තීරු අත්දැකීම"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ta/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ta/strings.xml
deleted file mode 100644
index 9e95c38..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-ta/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"மெலிதான வழிசெலுத்துதல் பட்டி சோதனை"</string>
-</resources>
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-te/strings.xml b/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-te/strings.xml
deleted file mode 100644
index d273ab7..0000000
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values-te/strings.xml
+++ /dev/null
@@ -1,23 +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.
- */
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="experiment_navigationbar_overlay" msgid="6953777362606036161">"సన్నని నావిగేషన్ పట్టీ ప్రయోగం"</string>
-</resources>
diff --git a/proto/src/wifi.proto b/proto/src/wifi.proto
index 11963d2..1fda074 100644
--- a/proto/src/wifi.proto
+++ b/proto/src/wifi.proto
@@ -482,6 +482,9 @@
 
   // Total wifi link layer usage data over the logging duration in ms.
   optional WifiLinkLayerUsageStats wifi_link_layer_usage_stats = 125;
+
+  // Multiple lists of timestamped link layer stats with labels to represent whether wifi is usable
+  repeated WifiUsabilityStats wifi_usability_stats_list = 126;
 }
 
 // Information that gets logged for every WiFi connection.
@@ -1690,4 +1693,74 @@
   // Total time the wifi radio spent doing hotspot 2.0 scans and GAS exchange
   // in ms over the logging duration.
   optional int64 radio_hs20_scan_time_ms = 10;
+}
+
+message WifiUsabilityStatsEntry {
+  // Absolute milliseconds from device boot when these stats were sampled
+  optional int64 time_stamp_ms = 1;
+
+  // The RSSI at the sample time
+  optional int32 rssi = 2;
+
+  // Link speed at the sample time in Mbps
+  optional int32 link_speed_mbps = 3;
+
+  // The total number of tx success counted from the last radio chip reset
+  optional int64 total_tx_success = 4;
+
+  // The total number of MPDU data packet retries counted from the last radio chip reset
+  optional int64 total_tx_retries = 5;
+
+  // The total number of tx bad counted from the last radio chip reset
+  optional int64 total_tx_bad = 6;
+
+  // The total number of rx success counted from the last radio chip reset
+  optional int64 total_rx_success = 7;
+
+  // The total time the wifi radio is on in ms counted from the last radio chip reset
+  optional int64 total_radio_on_time_ms = 8;
+
+  // The total time the wifi radio is doing tx in ms counted from the last radio chip reset
+  optional int64 total_radio_tx_time_ms = 9;
+
+  // The total time the wifi radio is doing rx in ms counted from the last radio chip reset
+  optional int64 total_radio_rx_time_ms = 10;
+
+  // The total time spent on all types of scans in ms counted from the last radio chip reset
+  optional int64 total_scan_time_ms = 11;
+
+  // The total time spent on nan scans in ms counted from the last radio chip reset
+  optional int64 total_nan_scan_time_ms = 12;
+
+  // The total time spent on background scans in ms counted from the last radio chip reset
+  optional int64 total_background_scan_time_ms = 13;
+
+  // The total time spent on roam scans in ms counted from the last radio chip reset
+  optional int64 total_roam_scan_time_ms = 14;
+
+  // The total time spent on pno scans in ms counted from the last radio chip reset
+  optional int64 total_pno_scan_time_ms = 15;
+
+  // The total time spent on hotspot2.0 scans and GAS exchange in ms counted from the last radio
+  // chip reset
+  optional int64 total_hotspot_2_scan_time_ms = 16;
+}
+
+message WifiUsabilityStats {
+  enum Label {
+    // Default label
+    LABEL_UNKNOWN = 0;
+
+    // Wifi is usable
+    LABEL_GOOD = 1;
+
+    // Wifi is unusable
+    LABEL_BAD = 2;
+  }
+
+  // The current wifi usability state
+  optional Label label = 1;
+
+  // The list of timestamped wifi usability stats
+  repeated WifiUsabilityStatsEntry stats = 2;
 }
\ No newline at end of file
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 5c189ce..d5decce 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -1832,8 +1832,8 @@
         updateMagnificationLocked(userState);
         scheduleUpdateFingerprintGestureHandling(userState);
         scheduleUpdateInputFilter(userState);
-        scheduleUpdateClientsIfNeededLocked(userState);
         updateRelevantEventsLocked(userState);
+        scheduleUpdateClientsIfNeededLocked(userState);
         updateAccessibilityButtonTargetsLocked(userState);
     }
 
diff --git a/services/accessibility/java/com/android/server/accessibility/MagnificationGestureHandler.java b/services/accessibility/java/com/android/server/accessibility/MagnificationGestureHandler.java
index 8d691ff..12e7376 100644
--- a/services/accessibility/java/com/android/server/accessibility/MagnificationGestureHandler.java
+++ b/services/accessibility/java/com/android/server/accessibility/MagnificationGestureHandler.java
@@ -273,33 +273,6 @@
 
     private void dispatchTransformedEvent(MotionEvent event, MotionEvent rawEvent,
             int policyFlags) {
-        if (DEBUG_ALL) Slog.i(LOG_TAG, "dispatchTransformedEvent(event = " + event + ")");
-
-        // If the touchscreen event is within the magnified portion of the screen we have
-        // to change its location to be where the user thinks he is poking the
-        // UI which may have been magnified and panned.
-        if (mMagnificationController.isMagnifying()
-                && event.isFromSource(SOURCE_TOUCHSCREEN)
-                && mMagnificationController.magnificationRegionContains(
-                        event.getX(), event.getY())) {
-            final float scale = mMagnificationController.getScale();
-            final float scaledOffsetX = mMagnificationController.getOffsetX();
-            final float scaledOffsetY = mMagnificationController.getOffsetY();
-            final int pointerCount = event.getPointerCount();
-            PointerCoords[] coords = getTempPointerCoordsWithMinSize(pointerCount);
-            PointerProperties[] properties = getTempPointerPropertiesWithMinSize(
-                    pointerCount);
-            for (int i = 0; i < pointerCount; i++) {
-                event.getPointerCoords(i, coords[i]);
-                coords[i].x = (coords[i].x - scaledOffsetX) / scale;
-                coords[i].y = (coords[i].y - scaledOffsetY) / scale;
-                event.getPointerProperties(i, properties[i]);
-            }
-            event = MotionEvent.obtain(event.getDownTime(),
-                    event.getEventTime(), event.getAction(), pointerCount, properties,
-                    coords, 0, 0, 1.0f, 1.0f, event.getDeviceId(), 0, event.getSource(),
-                    event.getFlags());
-        }
         if (DEBUG_EVENT_STREAM) {
             storeEventInto(mDebugOutputEventHistory, event);
             try {
diff --git a/services/art-profile b/services/art-profile
index bdd49de..af9d7a9 100644
--- a/services/art-profile
+++ b/services/art-profile
@@ -18849,7 +18849,7 @@
 PLcom/android/server/wm/WindowManagerService;->onSystemUiStarted()V
 PLcom/android/server/wm/WindowManagerService;->openSession(Landroid/view/IWindowSessionCallback;Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;)Landroid/view/IWindowSession;
 PLcom/android/server/wm/WindowManagerService;->overridePendingAppTransition(Ljava/lang/String;IILandroid/os/IRemoteCallback;)V
-PLcom/android/server/wm/WindowManagerService;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;)V
+PLcom/android/server/wm/WindowManagerService;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;I)V
 PLcom/android/server/wm/WindowManagerService;->performBootTimeout()V
 PLcom/android/server/wm/WindowManagerService;->performEnableScreen()V
 PLcom/android/server/wm/WindowManagerService;->postWindowRemoveCleanupLocked(Lcom/android/server/wm/WindowState;)V
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
index 17d8ea7..0da07ae 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
@@ -18,11 +18,13 @@
 
 import static android.Manifest.permission.MANAGE_AUTO_FILL;
 import static android.content.Context.AUTOFILL_MANAGER_SERVICE;
+import static android.util.DebugUtils.flagsToString;
 
 import static com.android.server.autofill.Helper.sDebug;
 import static com.android.server.autofill.Helper.sFullScreenMode;
 import static com.android.server.autofill.Helper.sVerbose;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
@@ -72,9 +74,12 @@
 import com.android.server.FgThread;
 import com.android.server.LocalServices;
 import com.android.server.autofill.ui.AutoFillUI;
+import com.android.server.intelligence.IntelligenceManagerInternal;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -95,6 +100,27 @@
 
     private static final Object sLock = AutofillManagerService.class;
 
+
+    /**
+     * IME supports Smart Suggestions.
+     */
+    // NOTE: must be public because of flagsToString()
+    public static final int FLAG_SMART_SUGGESTION_IME = 0x1;
+
+    /**
+     * System supports Smarts Suggestions (as a popup-window similar to standard Autofill).
+     */
+    // NOTE: must be public because of flagsToString()
+    public static final int FLAG_SMART_SUGGESTION_SYSTEM = 0x2;
+
+    /** @hide */
+    @IntDef(flag = true, prefix = { "FLAG_SMART_SUGGESTION_" }, value = {
+            FLAG_SMART_SUGGESTION_IME,
+            FLAG_SMART_SUGGESTION_SYSTEM
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    @interface SmartSuggestionMode {}
+
     static final String RECEIVER_BUNDLE_EXTRA_SESSIONS = "sessions";
 
     private static final char COMPAT_PACKAGE_DELIMITER = ':';
@@ -102,7 +128,6 @@
     private static final char COMPAT_PACKAGE_URL_IDS_BLOCK_BEGIN = '[';
     private static final char COMPAT_PACKAGE_URL_IDS_BLOCK_END = ']';
 
-
     /**
      * Maximum number of partitions that can be allowed in a session.
      *
@@ -130,6 +155,7 @@
 
     private final AutofillCompatState mAutofillCompatState = new AutofillCompatState();
     private final LocalService mLocalService = new LocalService();
+    final IntelligenceManagerInternal mIntelligenceManagerInternal;
 
     private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
         @Override
@@ -149,17 +175,21 @@
         }
     };
 
-    // TODO(b/117779333): move to superclass / create super-class for ShellCommand
+    /**
+     * Supported modes for Augmented Autofill Smart Suggestions.
+     */
     @GuardedBy("mLock")
-    private boolean mAllowInstantService;
+    private int mSupportedSmartSuggestionModes;
 
     public AutofillManagerService(Context context) {
         super(context, UserManager.DISALLOW_AUTOFILL);
         mUi = new AutoFillUI(ActivityThread.currentActivityThread().getSystemUiContext());
+        mIntelligenceManagerInternal = LocalServices.getService(IntelligenceManagerInternal.class);
 
         setLogLevelFromSettings();
         setMaxPartitionsFromSettings();
         setMaxVisibleDatasetsFromSettings();
+        setSmartSuggestionEmulationFromSettings();
 
         final IntentFilter filter = new IntentFilter();
         filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
@@ -186,6 +216,9 @@
         resolver.registerContentObserver(Settings.Global.getUriFor(
                 Settings.Global.AUTOFILL_MAX_VISIBLE_DATASETS), false, observer,
                 UserHandle.USER_ALL);
+        resolver.registerContentObserver(Settings.Global.getUriFor(
+                Settings.Global.AUTOFILL_SMART_SUGGESTION_EMULATION_FLAGS), false, observer,
+                UserHandle.USER_ALL);
     }
 
     @Override // from AbstractMasterSystemService
@@ -200,6 +233,9 @@
             case Settings.Global.AUTOFILL_MAX_VISIBLE_DATASETS:
                 setMaxVisibleDatasetsFromSettings();
                 break;
+            case Settings.Global.AUTOFILL_SMART_SUGGESTION_EMULATION_FLAGS:
+                setSmartSuggestionEmulationFromSettings();
+                break;
             default:
                 Slog.w(TAG, "Unexpected property (" + property + "); updating cache instead");
                 // fall through
@@ -231,6 +267,11 @@
         addCompatibilityModeRequestsLocked(service, userId);
     }
 
+    @Override // from AbstractMasterSystemService
+    protected void enforceCallingPermissionForManagement() {
+        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+    }
+
     @Override // from SystemService
     public void onStart() {
         publishBinderService(AUTOFILL_MANAGER_SERVICE, new AutoFillManagerServiceStub());
@@ -243,10 +284,14 @@
         mUi.hideAll(null);
     }
 
+    @SmartSuggestionMode int getSupportedSmartSuggestionModesLocked() {
+        return mSupportedSmartSuggestionModes;
+    }
+
     // Called by Shell command.
     void destroySessions(@UserIdInt int userId, IResultReceiver receiver) {
         Slog.i(TAG, "destroySessions() for userId " + userId);
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
 
         synchronized (mLock) {
             if (userId != UserHandle.USER_ALL) {
@@ -269,7 +314,7 @@
     // Called by Shell command.
     void listSessions(int userId, IResultReceiver receiver) {
         Slog.i(TAG, "listSessions() for userId " + userId);
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
 
         final Bundle resultData = new Bundle();
         final ArrayList<String> sessions = new ArrayList<>();
@@ -296,7 +341,7 @@
     // Called by Shell command.
     void reset() {
         Slog.i(TAG, "reset()");
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
 
         synchronized (mLock) {
             visitServicesLocked((s) -> s.destroyLocked());
@@ -307,7 +352,7 @@
     // Called by Shell command.
     void setLogLevel(int level) {
         Slog.i(TAG, "setLogLevel(): " + level);
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
 
         final long token = Binder.clearCallingIdentity();
         try {
@@ -344,7 +389,7 @@
 
     // Called by Shell command.
     int getLogLevel() {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
 
         synchronized (mLock) {
             if (sVerbose) return AutofillManager.FLAG_ADD_CLIENT_VERBOSE;
@@ -355,7 +400,7 @@
 
     // Called by Shell command.
     int getMaxPartitions() {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
 
         synchronized (mLock) {
             return sPartitionMaxCount;
@@ -364,8 +409,8 @@
 
     // Called by Shell command.
     void setMaxPartitions(int max) {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
         Slog.i(TAG, "setMaxPartitions(): " + max);
+        enforceCallingPermissionForManagement();
 
         final long token = Binder.clearCallingIdentity();
         try {
@@ -389,7 +434,7 @@
 
     // Called by Shell command.
     int getMaxVisibleDatasets() {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
 
         synchronized (sLock) {
             return sVisibleDatasetsMaxCount;
@@ -398,8 +443,8 @@
 
     // Called by Shell command.
     void setMaxVisibleDatasets(int max) {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
         Slog.i(TAG, "setMaxVisibleDatasets(): " + max);
+        enforceCallingPermissionForManagement();
 
         final long token = Binder.clearCallingIdentity();
         try {
@@ -420,10 +465,23 @@
         }
     }
 
+    private void setSmartSuggestionEmulationFromSettings() {
+        final int flags = Settings.Global.getInt(getContext().getContentResolver(),
+                Settings.Global.AUTOFILL_SMART_SUGGESTION_EMULATION_FLAGS, 0);
+        if (sDebug) {
+            Slog.d(TAG, "setSmartSuggestionEmulationFromSettings(): "
+                    + smartSuggestionFlagsToString(flags));
+        }
+
+        synchronized (mLock) {
+            mSupportedSmartSuggestionModes = flags;
+        }
+    }
+
     // Called by Shell command.
     void getScore(@Nullable String algorithmName, @NonNull String value1,
             @NonNull String value2, @NonNull RemoteCallback callback) {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
 
         final FieldClassificationStrategy strategy =
                 new FieldClassificationStrategy(getContext(), UserHandle.USER_CURRENT);
@@ -434,33 +492,16 @@
 
     // Called by Shell command.
     Boolean getFullScreenMode() {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
         return sFullScreenMode;
     }
 
     // Called by Shell command.
     void setFullScreenMode(@Nullable Boolean mode) {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
+        enforceCallingPermissionForManagement();
         sFullScreenMode = mode;
     }
 
-    // Called by Shell command.
-    boolean getAllowInstantService() {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
-        synchronized (mLock) {
-            return mAllowInstantService;
-        }
-    }
-
-    // Called by Shell command.
-    void setAllowInstantService(boolean mode) {
-        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);
-        Slog.i(TAG, "setAllowInstantService(): " + mode);
-        synchronized (mLock) {
-            mAllowInstantService = mode;
-        }
-    }
-
     private void setLoggingLevelsLocked(boolean debug, boolean verbose) {
         com.android.server.autofill.Helper.sDebug = debug;
         android.view.autofill.Helper.sDebug = debug;
@@ -610,6 +651,10 @@
         }
     }
 
+    static String smartSuggestionFlagsToString(int flags) {
+        return flagsToString(AutofillManagerService.class, "FLAG_SMART_SUGGESTION_", flags);
+    }
+
     private final class LocalService extends AutofillManagerInternal {
         @Override
         public void onBackKeyPressed() {
@@ -1157,7 +1202,10 @@
                     mAutofillCompatState.dump(prefix, pw);
                     pw.print("from settings: ");
                     pw.println(getWhitelistedCompatModePackagesFromSettings());
-                    pw.print("Allow instant service: "); pw.println(mAllowInstantService);
+                    if (mSupportedSmartSuggestionModes != 0) {
+                        pw.print("Smart Suggestion modes: ");
+                        pw.println(smartSuggestionFlagsToString(mSupportedSmartSuggestionModes));
+                    }
                     if (showHistory) {
                         pw.println(); pw.println("Requests history:"); pw.println();
                         mRequestsHistory.reverseDump(fd, pw, args);
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
index 67ccc9b..0df99d4 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
@@ -73,6 +73,7 @@
 import com.android.server.AbstractPerUserSystemService;
 import com.android.server.LocalServices;
 import com.android.server.autofill.AutofillManagerService.AutofillCompatState;
+import com.android.server.autofill.AutofillManagerService.SmartSuggestionMode;
 import com.android.server.autofill.ui.AutoFillUI;
 
 import java.io.PrintWriter;
@@ -268,8 +269,8 @@
         pruneAbandonedSessionsLocked();
 
         final Session newSession = createSessionByTokenLocked(activityToken, taskId, uid,
-                appCallbackToken, hasCallback, componentName, compatMode, bindInstantServiceAllowed,
-                flags);
+                appCallbackToken, hasCallback, componentName, compatMode,
+                bindInstantServiceAllowed, flags);
         if (newSession == null) {
             return NO_SESSION;
         }
@@ -823,6 +824,12 @@
         return true;
     }
 
+    @GuardedBy("mLock")
+    @SmartSuggestionMode int getSupportedSmartSuggestionModesLocked() {
+        // TODO(b/111330312): once we support IME, we need to set it per-user (OR'ed with master)
+        return mMaster.getSupportedSmartSuggestionModesLocked();
+    }
+
     @Override
     @GuardedBy("mLock")
     protected void dumpLocked(String prefix, PrintWriter pw) {
@@ -962,6 +969,9 @@
                 if (sDebug) Slog.d(TAG, "destroyFinishedSessionsLocked(): " + session.id);
                 session.forceRemoveSelfLocked();
             }
+            else {
+                session.destroyAugmentedAutofillWindowsLocked();
+            }
         }
     }
 
diff --git a/services/autofill/java/com/android/server/autofill/RemoteFillService.java b/services/autofill/java/com/android/server/autofill/RemoteFillService.java
index 9aa9d7c..af65759 100644
--- a/services/autofill/java/com/android/server/autofill/RemoteFillService.java
+++ b/services/autofill/java/com/android/server/autofill/RemoteFillService.java
@@ -40,9 +40,9 @@
 import android.text.format.DateUtils;
 import android.util.Slog;
 
-import com.android.server.AbstractRemoteService;
+import com.android.server.AbstractSinglePendingRequestRemoteService;
 
-final class RemoteFillService extends AbstractRemoteService {
+final class RemoteFillService extends AbstractSinglePendingRequestRemoteService<RemoteFillService> {
 
     private static final long TIMEOUT_IDLE_BIND_MILLIS = 5 * DateUtils.SECOND_IN_MILLIS;
     private static final long TIMEOUT_REMOTE_REQUEST_MILLIS = 5 * DateUtils.SECOND_IN_MILLIS;
@@ -69,8 +69,8 @@
         mCallbacks = callbacks;
     }
 
-    @Override
-    protected void onConnectedStateChanged(boolean state) {
+    @Override // from AbstractRemoteService
+    protected void handleOnConnectedStateChanged(boolean state) {
         if (mAutoFillService == null) {
             Slog.w(mTag, "onConnectedStateChanged(): null service");
             return;
@@ -82,18 +82,18 @@
         }
     }
 
-    @Override
+    @Override // from AbstractRemoteService
     protected IInterface getServiceInterface(IBinder service) {
         mAutoFillService = IAutoFillService.Stub.asInterface(service);
         return mAutoFillService;
     }
 
-    @Override
+    @Override // from AbstractRemoteService
     protected long getTimeoutIdleBindMillis() {
         return TIMEOUT_IDLE_BIND_MILLIS;
     }
 
-    @Override
+    @Override // from AbstractRemoteService
     protected long getRemoteRequestMillis() {
         return TIMEOUT_REMOTE_REQUEST_MILLIS;
     }
@@ -136,6 +136,19 @@
         scheduleRequest(new PendingSaveRequest(request, this));
     }
 
+    private boolean handleResponseCallbackCommon(
+            @NonNull PendingRequest<RemoteFillService> pendingRequest) {
+        if (isDestroyed()) return false;
+
+        if (mPendingRequest == pendingRequest) {
+            mPendingRequest = null;
+        }
+        if (mPendingRequest == null) {
+            scheduleUnbind();
+        }
+        return true;
+    }
+
     private void dispatchOnFillRequestSuccess(@NonNull PendingFillRequest pendingRequest,
             @Nullable FillResponse response, int requestFlags) {
         mHandler.post(() -> {
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index 1ff1acd..4c64507 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -25,6 +25,9 @@
 import static android.view.autofill.AutofillManager.ACTION_VIEW_EXITED;
 
 import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
+import static com.android.server.autofill.AutofillManagerService.FLAG_SMART_SUGGESTION_IME;
+import static com.android.server.autofill.AutofillManagerService.FLAG_SMART_SUGGESTION_SYSTEM;
+import static com.android.server.autofill.AutofillManagerService.smartSuggestionFlagsToString;
 import static com.android.server.autofill.Helper.getNumericValue;
 import static com.android.server.autofill.Helper.sDebug;
 import static com.android.server.autofill.Helper.sVerbose;
@@ -93,8 +96,11 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.util.ArrayUtils;
 import com.android.server.AbstractRemoteService;
+import com.android.server.autofill.AutofillManagerService.SmartSuggestionMode;
 import com.android.server.autofill.ui.AutoFillUI;
 import com.android.server.autofill.ui.PendingUi;
+import com.android.server.intelligence.IntelligenceManagerInternal;
+import com.android.server.intelligence.IntelligenceManagerInternal.AugmentedAutofillCallback;
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
@@ -242,6 +248,10 @@
     @GuardedBy("mLock")
     private final SparseArray<LogMaker> mRequestLogs = new SparseArray<>(1);
 
+    @GuardedBy("mLock")
+    @Nullable
+    private AugmentedAutofillCallback mAugmentedAutofillCallback;
+
     /**
      * Receiver of assist data from the app's {@link Activity}.
      */
@@ -892,7 +902,7 @@
 
     // VultureCallback
     @Override
-    public void onServiceDied(AbstractRemoteService service) {
+    public void onServiceDied(AbstractRemoteService<? extends AbstractRemoteService<?>> service) {
         Slog.w(TAG, "removing session because service died");
         forceRemoveSelfLocked();
     }
@@ -2497,15 +2507,83 @@
         processResponseLocked(newResponse, newClientState, 0);
     }
 
+    @GuardedBy("mLock")
     private void processNullResponseLocked(int flags) {
-        if (sVerbose) Slog.v(TAG, "canceling session " + id + " when server returned null");
         if ((flags & FLAG_MANUAL_REQUEST) != 0) {
             getUiForShowing().showError(R.string.autofill_error_cannot_autofill, this);
         }
         mService.resetLastResponse();
-        // Nothing to be done, but need to notify client.
-        notifyUnavailableToClient(AutofillManager.STATE_FINISHED);
-        removeSelf();
+
+        // The default autofill service cannot fullfill the request, let's check if the intelligence
+        // service can.
+        mAugmentedAutofillCallback = triggerAugmentedAutofillLocked();
+        if (mAugmentedAutofillCallback == null) {
+            if (sVerbose) {
+                Slog.v(TAG, "canceling session " + id + " when server returned null and there is no"
+                        + " AugmentedAutofill for user");
+            }
+            // Nothing to be done, but need to notify client.
+            notifyUnavailableToClient(AutofillManager.STATE_FINISHED);
+            removeSelf();
+        } else {
+            // TODO(b/111330312, b/119638958): must set internal state so when user focus other
+            // fields it does not generate a new call to the standard autofill service (right now
+            // it does). Must also add CTS tests to exercise this scenario.
+            if (sVerbose) {
+                Slog.v(TAG, "keeping session " + id + " when server returned null but "
+                        + "there is an AugmentedAutofill for user");
+            }
+        }
+    }
+
+    /**
+     * Tries to trigger Augmented Autofill when the standard service could not fulfill a request.
+     *
+     * @return callback to the Augmented Autofill service, or {@code null} if not supported.
+     */
+    // TODO(b/111330312): might need to call it in other places, like when the service returns a
+    // non-null response but without datasets (for example, just SaveInfo)
+    @GuardedBy("mLock")
+    private AugmentedAutofillCallback triggerAugmentedAutofillLocked() {
+        // Check if Smart Suggestions is supported...
+        final @SmartSuggestionMode int supportedModes = mService
+                .getSupportedSmartSuggestionModesLocked();
+        if (supportedModes == 0) return null;
+
+        // ...then if the service is set for the user
+        final IntelligenceManagerInternal intelligenceManagerInternal = mService
+                .getMaster().mIntelligenceManagerInternal;
+        if (intelligenceManagerInternal == null) return null;
+
+        // Define which mode will be used
+        final int mode;
+        if ((supportedModes & FLAG_SMART_SUGGESTION_IME) != 0) {
+            // TODO(b/111330312): support it :-)
+            Slog.w(TAG, "Smart Suggestions on IME not supported yet");
+            return null;
+        } else if ((supportedModes & FLAG_SMART_SUGGESTION_SYSTEM) != 0) {
+            mode = FLAG_SMART_SUGGESTION_SYSTEM;
+        } else {
+            Slog.w(TAG, "Unsupported Smart Suggestion Mode: " + supportedModes);
+            return null;
+        }
+
+        if (mCurrentViewId == null) {
+            Slog.w(TAG, "triggerAugmentedAutofillLocked(): no view currently focused");
+            return null;
+        }
+
+        if (sVerbose) {
+            Slog.v(TAG, "calling IntelligenseService on view " + mCurrentViewId
+                    + " using suggestion mode " + smartSuggestionFlagsToString(mode)
+                    + " when server returned null for session " + this.id);
+        }
+
+        // TODO(b/111330312): we might need to add a new state in the AutofillManager to optimize
+        // furgher AFM -> AFMS calls.
+        // TODO(b/119638958): add CTS tests
+        return intelligenceManagerInternal.requestAutofill(mService.getUserId(), mClient,
+                mActivityToken, this.id, mCurrentViewId);
     }
 
     @GuardedBy("mLock")
@@ -2786,6 +2864,9 @@
         pw.print(prefix); pw.print("mSaveOnAllViewsInvisible: "); pw.println(
                 mSaveOnAllViewsInvisible);
         pw.print(prefix); pw.print("mSelectedDatasetIds: "); pw.println(mSelectedDatasetIds);
+        if (mAugmentedAutofillCallback != null) {
+            pw.print(prefix); pw.println("has AugmentedAutofillCallback");
+        }
         mRemoteFillService.dump(prefix, pw);
     }
 
@@ -2957,6 +3038,14 @@
                 Slog.e(TAG, "Error notifying client to finish session", e);
             }
         }
+        destroyAugmentedAutofillWindowsLocked();
+    }
+
+    @GuardedBy("mLock")
+    void destroyAugmentedAutofillWindowsLocked() {
+        if (mAugmentedAutofillCallback != null) {
+            mAugmentedAutofillCallback.destroy();
+        }
     }
 
     /**
diff --git a/services/backup/OWNERS b/services/backup/OWNERS
index 645723e..d1dbbff 100644
--- a/services/backup/OWNERS
+++ b/services/backup/OWNERS
@@ -1,7 +1,5 @@
 anniemeng@google.com
-artikz@google.com
 brufino@google.com
 bryanmawhinney@google.com
 ctate@google.com
 jorlow@google.com
-mkarpinski@google.com
diff --git a/services/backup/java/com/android/server/backup/BackupAgentTimeoutParameters.java b/services/backup/java/com/android/server/backup/BackupAgentTimeoutParameters.java
index df46d260b..2bca34d 100644
--- a/services/backup/java/com/android/server/backup/BackupAgentTimeoutParameters.java
+++ b/services/backup/java/com/android/server/backup/BackupAgentTimeoutParameters.java
@@ -16,12 +16,15 @@
 
 package com.android.server.backup;
 
+import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING;
+
 import android.content.ContentResolver;
 import android.os.Handler;
 import android.provider.Settings;
 import android.util.KeyValueListParser;
 import android.util.KeyValueSettingObserver;
 import android.util.Slog;
+
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 
@@ -137,7 +140,7 @@
 
     public long getKvBackupAgentTimeoutMillis() {
         synchronized (mLock) {
-            if (BackupManagerService.DEBUG_SCHEDULING) {
+            if (DEBUG_SCHEDULING) {
                 Slog.v(TAG, "getKvBackupAgentTimeoutMillis(): " + mKvBackupAgentTimeoutMillis);
             }
             return mKvBackupAgentTimeoutMillis;
@@ -146,7 +149,7 @@
 
     public long getFullBackupAgentTimeoutMillis() {
         synchronized (mLock) {
-            if (BackupManagerService.DEBUG_SCHEDULING) {
+            if (DEBUG_SCHEDULING) {
                 Slog.v(TAG, "getFullBackupAgentTimeoutMillis(): " + mFullBackupAgentTimeoutMillis);
             }
             return mFullBackupAgentTimeoutMillis;
@@ -155,7 +158,7 @@
 
     public long getSharedBackupAgentTimeoutMillis() {
         synchronized (mLock) {
-            if (BackupManagerService.DEBUG_SCHEDULING) {
+            if (DEBUG_SCHEDULING) {
                 Slog.v(
                         TAG,
                         "getSharedBackupAgentTimeoutMillis(): " + mSharedBackupAgentTimeoutMillis);
@@ -166,7 +169,7 @@
 
     public long getRestoreAgentTimeoutMillis() {
         synchronized (mLock) {
-            if (BackupManagerService.DEBUG_SCHEDULING) {
+            if (DEBUG_SCHEDULING) {
                 Slog.v(TAG, "getRestoreAgentTimeoutMillis(): " + mRestoreAgentTimeoutMillis);
             }
             return mRestoreAgentTimeoutMillis;
@@ -175,7 +178,7 @@
 
     public long getRestoreAgentFinishedTimeoutMillis() {
         synchronized (mLock) {
-            if (BackupManagerService.DEBUG_SCHEDULING) {
+            if (DEBUG_SCHEDULING) {
                 Slog.v(
                         TAG,
                         "getRestoreAgentFinishedTimeoutMillis(): "
@@ -187,7 +190,7 @@
 
     public long getQuotaExceededTimeoutMillis() {
         synchronized (mLock) {
-            if (BackupManagerService.DEBUG_SCHEDULING) {
+            if (DEBUG_SCHEDULING) {
                 Slog.v(
                         TAG,
                         "getQuotaExceededTimeoutMillis(): "
diff --git a/services/backup/java/com/android/server/backup/BackupManagerConstants.java b/services/backup/java/com/android/server/backup/BackupManagerConstants.java
index ec21961..785d3ca 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerConstants.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerConstants.java
@@ -16,6 +16,8 @@
 
 package com.android.server.backup;
 
+import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING;
+
 import android.app.AlarmManager;
 import android.content.ContentResolver;
 import android.os.Handler;
@@ -24,6 +26,7 @@
 import android.util.KeyValueListParser;
 import android.util.KeyValueSettingObserver;
 import android.util.Slog;
+
 import com.android.internal.annotations.VisibleForTesting;
 
 /**
@@ -151,7 +154,7 @@
     // group the calls of these methods in a block syncrhonized on
     // a reference of this object.
     public synchronized long getKeyValueBackupIntervalMilliseconds() {
-        if (BackupManagerService.DEBUG_SCHEDULING) {
+        if (DEBUG_SCHEDULING) {
             Slog.v(
                     TAG,
                     "getKeyValueBackupIntervalMilliseconds(...) returns "
@@ -161,7 +164,7 @@
     }
 
     public synchronized long getKeyValueBackupFuzzMilliseconds() {
-        if (BackupManagerService.DEBUG_SCHEDULING) {
+        if (DEBUG_SCHEDULING) {
             Slog.v(
                     TAG,
                     "getKeyValueBackupFuzzMilliseconds(...) returns "
@@ -171,7 +174,7 @@
     }
 
     public synchronized boolean getKeyValueBackupRequireCharging() {
-        if (BackupManagerService.DEBUG_SCHEDULING) {
+        if (DEBUG_SCHEDULING) {
             Slog.v(
                     TAG,
                     "getKeyValueBackupRequireCharging(...) returns "
@@ -181,7 +184,7 @@
     }
 
     public synchronized int getKeyValueBackupRequiredNetworkType() {
-        if (BackupManagerService.DEBUG_SCHEDULING) {
+        if (DEBUG_SCHEDULING) {
             Slog.v(
                     TAG,
                     "getKeyValueBackupRequiredNetworkType(...) returns "
@@ -191,7 +194,7 @@
     }
 
     public synchronized long getFullBackupIntervalMilliseconds() {
-        if (BackupManagerService.DEBUG_SCHEDULING) {
+        if (DEBUG_SCHEDULING) {
             Slog.v(
                     TAG,
                     "getFullBackupIntervalMilliseconds(...) returns "
@@ -201,14 +204,14 @@
     }
 
     public synchronized boolean getFullBackupRequireCharging() {
-        if (BackupManagerService.DEBUG_SCHEDULING) {
+        if (DEBUG_SCHEDULING) {
             Slog.v(TAG, "getFullBackupRequireCharging(...) returns " + mFullBackupRequireCharging);
         }
         return mFullBackupRequireCharging;
     }
 
     public synchronized int getFullBackupRequiredNetworkType() {
-        if (BackupManagerService.DEBUG_SCHEDULING) {
+        if (DEBUG_SCHEDULING) {
             Slog.v(
                     TAG,
                     "getFullBackupRequiredNetworkType(...) returns "
@@ -219,7 +222,7 @@
 
     /** Returns an array of package names that should be notified whenever a backup finishes. */
     public synchronized String[] getBackupFinishedNotificationReceivers() {
-        if (BackupManagerService.DEBUG_SCHEDULING) {
+        if (DEBUG_SCHEDULING) {
             Slog.v(
                     TAG,
                     "getBackupFinishedNotificationReceivers(...) returns "
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index 7621ada..0b06f28 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 The Android Open Source Project
+ * 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.
@@ -16,239 +16,62 @@
 
 package com.android.server.backup;
 
-import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_BACKUP_IN_FOREGROUND;
-
-import static com.android.server.backup.internal.BackupHandler.MSG_BACKUP_OPERATION_TIMEOUT;
-import static com.android.server.backup.internal.BackupHandler.MSG_FULL_CONFIRMATION_TIMEOUT;
-import static com.android.server.backup.internal.BackupHandler.MSG_OP_COMPLETE;
-import static com.android.server.backup.internal.BackupHandler.MSG_REQUEST_BACKUP;
-import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_OPERATION_TIMEOUT;
-import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_SESSION_TIMEOUT;
-import static com.android.server.backup.internal.BackupHandler.MSG_RETRY_CLEAR;
-import static com.android.server.backup.internal.BackupHandler.MSG_RUN_ADB_BACKUP;
-import static com.android.server.backup.internal.BackupHandler.MSG_RUN_ADB_RESTORE;
-import static com.android.server.backup.internal.BackupHandler.MSG_RUN_CLEAR;
-import static com.android.server.backup.internal.BackupHandler.MSG_RUN_RESTORE;
-import static com.android.server.backup.internal.BackupHandler.MSG_SCHEDULE_BACKUP_PACKAGE;
-
 import android.annotation.Nullable;
 import android.app.ActivityManager;
-import android.app.AlarmManager;
-import android.app.AppGlobals;
-import android.app.IActivityManager;
-import android.app.IBackupAgent;
-import android.app.PendingIntent;
-import android.app.backup.BackupAgent;
-import android.app.backup.BackupManager;
-import android.app.backup.BackupManagerMonitor;
-import android.app.backup.FullBackup;
-import android.app.backup.IBackupManager;
 import android.app.backup.IBackupManagerMonitor;
 import android.app.backup.IBackupObserver;
 import android.app.backup.IFullBackupRestoreObserver;
 import android.app.backup.IRestoreSession;
 import android.app.backup.ISelectBackupTransportCallback;
-import android.content.ActivityNotFoundException;
-import android.content.BroadcastReceiver;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.IPackageManager;
-import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Binder;
-import android.os.Bundle;
 import android.os.Environment;
-import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.IBinder;
-import android.os.Message;
 import android.os.ParcelFileDescriptor;
-import android.os.PowerManager;
-import android.os.PowerManager.ServiceType;
-import android.os.PowerSaveState;
-import android.os.Process;
 import android.os.RemoteException;
-import android.os.SELinux;
-import android.os.ServiceManager;
-import android.os.SystemClock;
 import android.os.Trace;
 import android.os.UserHandle;
-import android.os.WorkSource;
-import android.os.storage.IStorageManager;
-import android.os.storage.StorageManager;
 import android.provider.Settings;
 import android.text.TextUtils;
-import android.util.ArraySet;
-import android.util.AtomicFile;
-import android.util.EventLog;
-import android.util.Pair;
 import android.util.Slog;
-import android.util.SparseArray;
 
-import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.backup.IBackupTransport;
-import com.android.internal.util.DumpUtils;
-import com.android.internal.util.Preconditions;
-import com.android.server.AppWidgetBackupBridge;
-import com.android.server.EventLogTags;
 import com.android.server.SystemConfig;
 import com.android.server.SystemService;
-import com.android.server.backup.fullbackup.FullBackupEntry;
-import com.android.server.backup.fullbackup.PerformFullTransportBackupTask;
-import com.android.server.backup.internal.BackupHandler;
-import com.android.server.backup.internal.ClearDataObserver;
-import com.android.server.backup.internal.OnTaskFinishedListener;
-import com.android.server.backup.internal.Operation;
-import com.android.server.backup.internal.PerformInitializeTask;
-import com.android.server.backup.internal.ProvisionedObserver;
-import com.android.server.backup.internal.RunBackupReceiver;
-import com.android.server.backup.internal.RunInitializeReceiver;
-import com.android.server.backup.keyvalue.BackupRequest;
-import com.android.server.backup.params.AdbBackupParams;
-import com.android.server.backup.params.AdbParams;
-import com.android.server.backup.params.AdbRestoreParams;
-import com.android.server.backup.params.BackupParams;
-import com.android.server.backup.params.ClearParams;
-import com.android.server.backup.params.ClearRetryParams;
-import com.android.server.backup.params.RestoreParams;
-import com.android.server.backup.restore.ActiveRestoreSession;
-import com.android.server.backup.restore.PerformUnifiedRestoreTask;
-import com.android.server.backup.transport.TransportClient;
-import com.android.server.backup.transport.TransportNotRegisteredException;
-import com.android.server.backup.utils.AppBackupUtils;
-import com.android.server.backup.utils.BackupManagerMonitorUtils;
-import com.android.server.backup.utils.BackupObserverUtils;
-import com.android.server.backup.utils.SparseArrayUtils;
 
-import com.google.android.collect.Sets;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.RandomAccessFile;
-import java.security.SecureRandom;
-import java.text.SimpleDateFormat;
-import java.util.ArrayDeque;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Queue;
-import java.util.Random;
 import java.util.Set;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.atomic.AtomicInteger;
 
-/** System service that performs backup/restore operations. */
+/**
+ * Definition of the system service that performs backup/restore operations.
+ *
+ * <p>This class is responsible for handling user-aware operations and acts as a delegator, routing
+ * incoming calls to the appropriate per-user {@link UserBackupManagerService} to handle the
+ * corresponding backup/restore operation.
+ */
 public class BackupManagerService {
     public static final String TAG = "BackupManagerService";
     public static final boolean DEBUG = true;
     public static final boolean MORE_DEBUG = false;
     public static final boolean DEBUG_SCHEDULING = true;
 
-    // File containing backup-enabled state.  Contains a single byte;
-    // nonzero == enabled.  File missing or contains a zero byte == disabled.
+    // File containing backup-enabled state. Contains a single byte to denote enabled status.
+    // Nonzero is enabled; file missing or a zero byte is disabled.
     private static final String BACKUP_ENABLE_FILE = "backup_enabled";
 
-    // Persistently track the need to do a full init.
-    private static final String INIT_SENTINEL_FILE_NAME = "_need_init_";
-
-    // System-private key used for backing up an app's widget state.  Must
-    // begin with U+FFxx by convention (we reserve all keys starting
-    // with U+FF00 or higher for system use).
-    public static final String KEY_WIDGET_STATE = "\uffed\uffedwidget";
-
-    // Name and current contents version of the full-backup manifest file
-    //
-    // Manifest version history:
-    //
-    // 1 : initial release
-    public static final String BACKUP_MANIFEST_FILENAME = "_manifest";
-    public static final int BACKUP_MANIFEST_VERSION = 1;
-
-    // External archive format version history:
-    //
-    // 1 : initial release
-    // 2 : no format change per se; version bump to facilitate PBKDF2 version skew detection
-    // 3 : introduced "_meta" metadata file; no other format change per se
-    // 4 : added support for new device-encrypted storage locations
-    // 5 : added support for key-value packages
-    public static final int BACKUP_FILE_VERSION = 5;
-    public static final String BACKUP_FILE_HEADER_MAGIC = "ANDROID BACKUP\n";
-    public static final String BACKUP_METADATA_FILENAME = "_meta";
-    public static final int BACKUP_METADATA_VERSION = 1;
-    public static final int BACKUP_WIDGET_METADATA_TOKEN = 0x01FFED01;
-
-    private static final int CURRENT_ANCESTRAL_RECORD_VERSION = 1;
-
-    // Round-robin queue for scheduling full backup passes.
-    private static final int SCHEDULE_FILE_VERSION = 1;
-
-    public static final String SETTINGS_PACKAGE = "com.android.providers.settings";
-    public static final String SHARED_BACKUP_AGENT_PACKAGE = "com.android.sharedstoragebackup";
-
-    // Pseudoname that we use for the Package Manager metadata "package".
-    public static final String PACKAGE_MANAGER_SENTINEL = "@pm@";
-
-    // Retry interval for clear/init when the transport is unavailable
-    private static final long TRANSPORT_RETRY_INTERVAL = 1 * AlarmManager.INTERVAL_HOUR;
-
-    public static final String RUN_BACKUP_ACTION = "android.app.backup.intent.RUN";
-    public static final String RUN_INITIALIZE_ACTION = "android.app.backup.intent.INIT";
-    public static final String BACKUP_FINISHED_ACTION = "android.intent.action.BACKUP_FINISHED";
-    public static final String BACKUP_FINISHED_PACKAGE_EXTRA = "packageName";
-
-    // Bookkeeping of in-flight operations. The operation token is the index of the entry in the
-    // pending operations list.
-    public static final int OP_PENDING = 0;
-    private static final int OP_ACKNOWLEDGED = 1;
-    private static final int OP_TIMEOUT = -1;
-
-    // Waiting for backup agent to respond during backup operation.
-    public static final int OP_TYPE_BACKUP_WAIT = 0;
-
-    // Waiting for backup agent to respond during restore operation.
-    public static final int OP_TYPE_RESTORE_WAIT = 1;
-
-    // An entire backup operation spanning multiple packages.
-    public static final int OP_TYPE_BACKUP = 2;
-
-    // Time delay for initialization operations that can be delayed so as not to consume too much
-    // CPU on bring-up and increase time-to-UI.
-    private static final long INITIALIZATION_DELAY_MILLIS = 3000;
-
-    // Timeout interval for deciding that a bind or clear-data has taken too long
-    private static final long TIMEOUT_INTERVAL = 10 * 1000;
-
-    // User confirmation timeout for a full backup/restore operation.  It's this long in
-    // order to give them time to enter the backup password.
-    private static final long TIMEOUT_FULL_CONFIRMATION = 60 * 1000;
-
-    // If an app is busy when we want to do a full-data backup, how long to defer the retry.
-    // This is fuzzed, so there are two parameters; backoff_min + Rand[0, backoff_fuzz)
-    private static final long BUSY_BACKOFF_MIN_MILLIS = 1000 * 60 * 60;  // one hour
-    private static final int BUSY_BACKOFF_FUZZ = 1000 * 60 * 60 * 2;  // two hours
-
     // The published binder is a singleton Trampoline object that calls through to the proper code.
     // This indirection lets us turn down the heavy implementation object on the fly without
     // disturbing binders that have been cached elsewhere in the system.
@@ -302,483 +125,25 @@
                 transportManager);
     }
 
-    private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
-    private final TransportManager mTransportManager;
+    private UserBackupManagerService mUserBackupManagerService;
 
-    private Context mContext;
-    private PackageManager mPackageManager;
-    private IPackageManager mPackageManagerBinder;
-    private IActivityManager mActivityManager;
-    private PowerManager mPowerManager;
-    private AlarmManager mAlarmManager;
-    private IStorageManager mStorageManager;
-    private BackupManagerConstants mConstants;
-    private PowerManager.WakeLock mWakelock;
-    private BackupHandler mBackupHandler;
-
-    private IBackupManager mBackupManagerBinder;
-
-    private boolean mEnabled;   // access to this is synchronized on 'this'
-    private boolean mProvisioned;
-    private boolean mAutoRestore;
-
-    private PendingIntent mRunBackupIntent;
-    private PendingIntent mRunInitIntent;
-
-    private final ArraySet<String> mPendingInits = new ArraySet<>();  // transport names
-
-    // map UIDs to the set of participating packages under that UID
-    private final SparseArray<HashSet<String>> mBackupParticipants = new SparseArray<>();
-
-    // Backups that we haven't started yet.  Keys are package names.
-    private HashMap<String, BackupRequest> mPendingBackups = new HashMap<>();
-
-    // locking around the pending-backup management
-    private final Object mQueueLock = new Object();
-
-    // The thread performing the sequence of queued backups binds to each app's agent
-    // in succession.  Bind notifications are asynchronously delivered through the
-    // Activity Manager; use this lock object to signal when a requested binding has
-    // completed.
-    private final Object mAgentConnectLock = new Object();
-    private IBackupAgent mConnectedAgent;
-    private volatile boolean mConnecting;
-
-    private volatile boolean mBackupRunning;
-    private volatile long mLastBackupPass;
-
-    // A similar synchronization mechanism around clearing apps' data for restore
-    private final Object mClearDataLock = new Object();
-    private volatile boolean mClearingData;
-
-    // Used by ADB.
-    private final BackupPasswordManager mBackupPasswordManager;
-    private final SparseArray<AdbParams> mAdbBackupRestoreConfirmations = new SparseArray<>();
-    private final SecureRandom mRng = new SecureRandom();
-
-    // Time when we post the transport registration operation
-    private final long mRegisterTransportsRequestedTime;
-
-    @GuardedBy("mQueueLock")
-    private PerformFullTransportBackupTask mRunningFullBackupTask;
-
-    @GuardedBy("mQueueLock")
-    private ArrayList<FullBackupEntry> mFullBackupQueue;
-
-    @GuardedBy("mPendingRestores")
-    private boolean mIsRestoreInProgress;
-
-    @GuardedBy("mPendingRestores")
-    private final Queue<PerformUnifiedRestoreTask> mPendingRestores = new ArrayDeque<>();
-
-    private ActiveRestoreSession mActiveRestoreSession;
-
-    // Watch the device provisioning operation during setup
-    private ContentObserver mProvisionedObserver;
-
-    /**
-     * mCurrentOperations contains the list of currently active operations.
-     *
-     * If type of operation is OP_TYPE_WAIT, it are waiting for an ack or timeout.
-     * An operation wraps a BackupRestoreTask within it.
-     * It's the responsibility of this task to remove the operation from this array.
-     *
-     * A BackupRestore task gets notified of ack/timeout for the operation via
-     * BackupRestoreTask#handleCancel, BackupRestoreTask#operationComplete and notifyAll called
-     * on the mCurrentOpLock.
-     * {@link BackupManagerService#waitUntilOperationComplete(int)} is
-     * used in various places to 'wait' for notifyAll and detect change of pending state of an
-     * operation. So typically, an operation will be removed from this array by:
-     * - BackupRestoreTask#handleCancel and
-     * - BackupRestoreTask#operationComplete OR waitUntilOperationComplete. Do not remove at both
-     * these places because waitUntilOperationComplete relies on the operation being present to
-     * determine its completion status.
-     *
-     * If type of operation is OP_BACKUP, it is a task running backups. It provides a handle to
-     * cancel backup tasks.
-     */
-    @GuardedBy("mCurrentOpLock")
-    private final SparseArray<Operation> mCurrentOperations = new SparseArray<>();
-    private final Object mCurrentOpLock = new Object();
-    private final Random mTokenGenerator = new Random();
-    final AtomicInteger mNextToken = new AtomicInteger();
-
-    // Where we keep our journal files and other bookkeeping.
-    private File mBaseStateDir;
-    private File mDataDir;
-    private File mJournalDir;
-    @Nullable
-    private DataChangedJournal mJournal;
-    private File mFullBackupScheduleFile;
-
-    // Keep a log of all the apps we've ever backed up.
-    private ProcessedPackagesJournal mProcessedPackagesJournal;
-
-    private File mTokenFile;
-    private Set<String> mAncestralPackages = null;
-    private long mAncestralToken = 0;
-    private long mCurrentToken = 0;
-
-    @VisibleForTesting
+    /** Instantiate a new instance of {@link BackupManagerService}. */
     public BackupManagerService(
             Context context,
-            Trampoline parent,
+            Trampoline trampoline,
             HandlerThread backupThread,
             File baseStateDir,
             File dataDir,
             TransportManager transportManager) {
-        mContext = context;
-        mPackageManager = context.getPackageManager();
-        mPackageManagerBinder = AppGlobals.getPackageManager();
-        mActivityManager = ActivityManager.getService();
-
-        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
-        mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
-        mStorageManager = IStorageManager.Stub.asInterface(ServiceManager.getService("mount"));
-
-        mBackupManagerBinder = Trampoline.asInterface(parent.asBinder());
-
-        mAgentTimeoutParameters = new
-                BackupAgentTimeoutParameters(Handler.getMain(), mContext.getContentResolver());
-        mAgentTimeoutParameters.start();
-
-        // spin up the backup/restore handler thread
-        mBackupHandler = new BackupHandler(this, backupThread.getLooper());
-
-        // Set up our bookkeeping
-        final ContentResolver resolver = context.getContentResolver();
-        mProvisioned = Settings.Global.getInt(resolver,
-                Settings.Global.DEVICE_PROVISIONED, 0) != 0;
-        mAutoRestore = Settings.Secure.getInt(resolver,
-                Settings.Secure.BACKUP_AUTO_RESTORE, 1) != 0;
-
-        mProvisionedObserver = new ProvisionedObserver(this, mBackupHandler);
-        resolver.registerContentObserver(
-                Settings.Global.getUriFor(Settings.Global.DEVICE_PROVISIONED),
-                false, mProvisionedObserver);
-
-        mBaseStateDir = baseStateDir;
-        mBaseStateDir.mkdirs();
-        if (!SELinux.restorecon(mBaseStateDir)) {
-            Slog.e(TAG, "SELinux restorecon failed on " + mBaseStateDir);
-        }
-
-        mDataDir = dataDir;
-
-        mBackupPasswordManager = new BackupPasswordManager(mContext, mBaseStateDir, mRng);
-
-        // Alarm receivers for scheduled backups & initialization operations
-        BroadcastReceiver mRunBackupReceiver = new RunBackupReceiver(this);
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(RUN_BACKUP_ACTION);
-        context.registerReceiver(mRunBackupReceiver, filter,
-                android.Manifest.permission.BACKUP, null);
-
-        BroadcastReceiver mRunInitReceiver = new RunInitializeReceiver(this);
-        filter = new IntentFilter();
-        filter.addAction(RUN_INITIALIZE_ACTION);
-        context.registerReceiver(mRunInitReceiver, filter,
-                android.Manifest.permission.BACKUP, null);
-
-        Intent backupIntent = new Intent(RUN_BACKUP_ACTION);
-        backupIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
-        mRunBackupIntent = PendingIntent.getBroadcast(context, 0, backupIntent, 0);
-
-        Intent initIntent = new Intent(RUN_INITIALIZE_ACTION);
-        initIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
-        mRunInitIntent = PendingIntent.getBroadcast(context, 0, initIntent, 0);
-
-        // Set up the backup-request journaling
-        mJournalDir = new File(mBaseStateDir, "pending");
-        mJournalDir.mkdirs();   // creates mBaseStateDir along the way
-        mJournal = null;        // will be created on first use
-
-        mConstants = new BackupManagerConstants(mBackupHandler, mContext.getContentResolver());
-        // We are observing changes to the constants throughout the lifecycle of BMS. This is
-        // because we reference the constants in multiple areas of BMS, which otherwise would
-        // require frequent starting and stopping.
-        mConstants.start();
-
-        // Set up the various sorts of package tracking we do
-        mFullBackupScheduleFile = new File(mBaseStateDir, "fb-schedule");
-        initPackageTracking();
-
-        // Build our mapping of uid to backup client services.  This implicitly
-        // schedules a backup pass on the Package Manager metadata the first
-        // time anything needs to be backed up.
-        synchronized (mBackupParticipants) {
-            addPackageParticipantsLocked(null);
-        }
-
-        mTransportManager = transportManager;
-        mTransportManager.setOnTransportRegisteredListener(this::onTransportRegistered);
-        mRegisterTransportsRequestedTime = SystemClock.elapsedRealtime();
-        mBackupHandler.postDelayed(
-                mTransportManager::registerTransports, INITIALIZATION_DELAY_MILLIS);
-
-        // Now that we know about valid backup participants, parse any leftover journal files into
-        // the pending backup set
-        mBackupHandler.postDelayed(this::parseLeftoverJournals, INITIALIZATION_DELAY_MILLIS);
-
-        // Power management
-        mWakelock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*backup*");
+        mUserBackupManagerService =
+                new UserBackupManagerService(
+                        context, trampoline, backupThread, baseStateDir, dataDir, transportManager);
     }
 
-
-    public BackupManagerConstants getConstants() {
-        return mConstants;
-    }
-
-    public BackupAgentTimeoutParameters getAgentTimeoutParameters() {
-        return mAgentTimeoutParameters;
-    }
-
-    public Context getContext() {
-        return mContext;
-    }
-
-    public void setContext(Context context) {
-        mContext = context;
-    }
-
-    public PackageManager getPackageManager() {
-        return mPackageManager;
-    }
-
-    public void setPackageManager(PackageManager packageManager) {
-        mPackageManager = packageManager;
-    }
-
-    public IPackageManager getPackageManagerBinder() {
-        return mPackageManagerBinder;
-    }
-
-    public void setPackageManagerBinder(IPackageManager packageManagerBinder) {
-        mPackageManagerBinder = packageManagerBinder;
-    }
-
-    public IActivityManager getActivityManager() {
-        return mActivityManager;
-    }
-
-    public void setActivityManager(IActivityManager activityManager) {
-        mActivityManager = activityManager;
-    }
-
-    public AlarmManager getAlarmManager() {
-        return mAlarmManager;
-    }
-
-    public void setAlarmManager(AlarmManager alarmManager) {
-        mAlarmManager = alarmManager;
-    }
-
+    // TODO(b/118520567): Remove when tests are modified to use per-user instance.
     @VisibleForTesting
-    void setPowerManager(PowerManager powerManager) {
-        mPowerManager = powerManager;
-    }
-
-    public void setBackupManagerBinder(IBackupManager backupManagerBinder) {
-        mBackupManagerBinder = backupManagerBinder;
-    }
-
-    public TransportManager getTransportManager() {
-        return mTransportManager;
-    }
-
-    public boolean isEnabled() {
-        return mEnabled;
-    }
-
-    public void setEnabled(boolean enabled) {
-        mEnabled = enabled;
-    }
-
-    public boolean isProvisioned() {
-        return mProvisioned;
-    }
-
-    public void setProvisioned(boolean provisioned) {
-        mProvisioned = provisioned;
-    }
-
-    public PowerManager.WakeLock getWakelock() {
-        return mWakelock;
-    }
-
-    /**
-     * Sets the {@link WorkSource} of the {@link PowerManager.WakeLock} returned by {@link
-     * #getWakelock()}.
-     */
-    @VisibleForTesting
-    public void setWorkSource(@Nullable WorkSource workSource) {
-        // TODO: This is for testing, unfortunately WakeLock is final and WorkSource is not exposed
-        mWakelock.setWorkSource(workSource);
-    }
-
-    public void setWakelock(PowerManager.WakeLock wakelock) {
-        mWakelock = wakelock;
-    }
-
-    public Handler getBackupHandler() {
-        return mBackupHandler;
-    }
-
-    public void setBackupHandler(BackupHandler backupHandler) {
-        mBackupHandler = backupHandler;
-    }
-
-    public PendingIntent getRunInitIntent() {
-        return mRunInitIntent;
-    }
-
-    public void setRunInitIntent(PendingIntent runInitIntent) {
-        mRunInitIntent = runInitIntent;
-    }
-
-    public HashMap<String, BackupRequest> getPendingBackups() {
-        return mPendingBackups;
-    }
-
-    public void setPendingBackups(
-            HashMap<String, BackupRequest> pendingBackups) {
-        mPendingBackups = pendingBackups;
-    }
-
-    public Object getQueueLock() {
-        return mQueueLock;
-    }
-
-    public boolean isBackupRunning() {
-        return mBackupRunning;
-    }
-
-    public void setBackupRunning(boolean backupRunning) {
-        mBackupRunning = backupRunning;
-    }
-
-    public long getLastBackupPass() {
-        return mLastBackupPass;
-    }
-
-    public void setLastBackupPass(long lastBackupPass) {
-        mLastBackupPass = lastBackupPass;
-    }
-
-    public Object getClearDataLock() {
-        return mClearDataLock;
-    }
-
-    public boolean isClearingData() {
-        return mClearingData;
-    }
-
-    public void setClearingData(boolean clearingData) {
-        mClearingData = clearingData;
-    }
-
-    public boolean isRestoreInProgress() {
-        return mIsRestoreInProgress;
-    }
-
-    public void setRestoreInProgress(boolean restoreInProgress) {
-        mIsRestoreInProgress = restoreInProgress;
-    }
-
-    public Queue<PerformUnifiedRestoreTask> getPendingRestores() {
-        return mPendingRestores;
-    }
-
-    public ActiveRestoreSession getActiveRestoreSession() {
-        return mActiveRestoreSession;
-    }
-
-    public void setActiveRestoreSession(
-            ActiveRestoreSession activeRestoreSession) {
-        mActiveRestoreSession = activeRestoreSession;
-    }
-
-    public SparseArray<Operation> getCurrentOperations() {
-        return mCurrentOperations;
-    }
-
-    public Object getCurrentOpLock() {
-        return mCurrentOpLock;
-    }
-
-    public SparseArray<AdbParams> getAdbBackupRestoreConfirmations() {
-        return mAdbBackupRestoreConfirmations;
-    }
-
-    public File getBaseStateDir() {
-        return mBaseStateDir;
-    }
-
-    public void setBaseStateDir(File baseStateDir) {
-        mBaseStateDir = baseStateDir;
-    }
-
-    public File getDataDir() {
-        return mDataDir;
-    }
-
-    public void setDataDir(File dataDir) {
-        mDataDir = dataDir;
-    }
-
-    @Nullable
-    public DataChangedJournal getJournal() {
-        return mJournal;
-    }
-
-    public void setJournal(@Nullable DataChangedJournal journal) {
-        mJournal = journal;
-    }
-
-    public SecureRandom getRng() {
-        return mRng;
-    }
-
-    public Set<String> getAncestralPackages() {
-        return mAncestralPackages;
-    }
-
-    public void setAncestralPackages(Set<String> ancestralPackages) {
-        mAncestralPackages = ancestralPackages;
-    }
-
-    public long getAncestralToken() {
-        return mAncestralToken;
-    }
-
-    public void setAncestralToken(long ancestralToken) {
-        mAncestralToken = ancestralToken;
-    }
-
-    public long getCurrentToken() {
-        return mCurrentToken;
-    }
-
-    public void setCurrentToken(long currentToken) {
-        mCurrentToken = currentToken;
-    }
-
-    public ArraySet<String> getPendingInits() {
-        return mPendingInits;
-    }
-
-    /** Clear all pending transport initializations. */
-    public void clearPendingInits() {
-        mPendingInits.clear();
-    }
-
-    public PerformFullTransportBackupTask getRunningFullBackupTask() {
-        return mRunningFullBackupTask;
-    }
-
-    public void setRunningFullBackupTask(
-            PerformFullTransportBackupTask runningFullBackupTask) {
-        mRunningFullBackupTask = runningFullBackupTask;
+    void setUserBackupManagerService(UserBackupManagerService userBackupManagerService) {
+        mUserBackupManagerService = userBackupManagerService;
     }
 
     /**
@@ -819,2091 +184,93 @@
         Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
     }
 
-    /**
-     *  Utility: build a new random integer token. The low bits are the ordinal of the operation for
-     *  near-time uniqueness, and the upper bits are random for app-side unpredictability.
+    /*
+     * The following methods are implementations of IBackupManager methods called from Trampoline.
+     * They delegate to the appropriate per-user instance of UserBackupManagerService to perform the
+     * action on the passed in user. Currently this is a straight redirection (see TODO).
      */
-    public int generateRandomIntegerToken() {
-        int token = mTokenGenerator.nextInt();
-        if (token < 0) token = -token;
-        token &= ~0xFF;
-        token |= (mNextToken.incrementAndGet() & 0xFF);
-        return token;
+    // TODO (b/118520567): Take in user id and call per-user instance of UserBackupManagerService.
+
+    // ---------------------------------------------
+    // BACKUP AGENT OPERATIONS
+    // ---------------------------------------------
+
+    /**
+     * An app's backup agent calls this method to let the service know that there's new data to
+     * backup for their app {@code packageName}. Only used for apps participating in key-value
+     * backup.
+     */
+    public void dataChanged(String packageName) {
+        mUserBackupManagerService.dataChanged(packageName);
     }
 
     /**
-     * Construct a backup agent instance for the metadata pseudopackage. This is a process-local
-     * non-lifecycle agent instance, so we manually set up the context topology for it.
+     * Callback: a requested backup agent has been instantiated. This should only be called from the
+     * {@link ActivityManager}.
      */
-    public BackupAgent makeMetadataAgent() {
-        PackageManagerBackupAgent pmAgent = new PackageManagerBackupAgent(mPackageManager);
-        pmAgent.attach(mContext);
-        pmAgent.onCreate();
-        return pmAgent;
+    public void agentConnected(String packageName, IBinder agentBinder) {
+        mUserBackupManagerService.agentConnected(packageName, agentBinder);
     }
 
     /**
-     * Same as {@link #makeMetadataAgent()} but with explicit package-set configuration.
+     * Callback: a backup agent has failed to come up, or has unexpectedly quit. This should only be
+     * called from the {@link ActivityManager}.
      */
-    public PackageManagerBackupAgent makeMetadataAgent(List<PackageInfo> packages) {
-        PackageManagerBackupAgent pmAgent =
-                new PackageManagerBackupAgent(mPackageManager, packages);
-        pmAgent.attach(mContext);
-        pmAgent.onCreate();
-        return pmAgent;
-    }
-
-    private void initPackageTracking() {
-        if (MORE_DEBUG) Slog.v(TAG, "` tracking");
-
-        // Remember our ancestral dataset
-        mTokenFile = new File(mBaseStateDir, "ancestral");
-        try (DataInputStream tokenStream = new DataInputStream(new BufferedInputStream(
-                new FileInputStream(mTokenFile)))) {
-            int version = tokenStream.readInt();
-            if (version == CURRENT_ANCESTRAL_RECORD_VERSION) {
-                mAncestralToken = tokenStream.readLong();
-                mCurrentToken = tokenStream.readLong();
-
-                int numPackages = tokenStream.readInt();
-                if (numPackages >= 0) {
-                    mAncestralPackages = new HashSet<>();
-                    for (int i = 0; i < numPackages; i++) {
-                        String pkgName = tokenStream.readUTF();
-                        mAncestralPackages.add(pkgName);
-                    }
-                }
-            }
-        } catch (FileNotFoundException fnf) {
-            // Probably innocuous
-            Slog.v(TAG, "No ancestral data");
-        } catch (IOException e) {
-            Slog.w(TAG, "Unable to read token file", e);
-        }
-
-        mProcessedPackagesJournal = new ProcessedPackagesJournal(mBaseStateDir);
-        mProcessedPackagesJournal.init();
-
-        synchronized (mQueueLock) {
-            // Resume the full-data backup queue
-            mFullBackupQueue = readFullBackupSchedule();
-        }
-
-        // Register for broadcasts about package install, etc., so we can
-        // update the provider list.
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_PACKAGE_ADDED);
-        filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
-        filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
-        filter.addDataScheme("package");
-        mContext.registerReceiver(mBroadcastReceiver, filter);
-        // Register for events related to sdcard installation.
-        IntentFilter sdFilter = new IntentFilter();
-        sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
-        sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
-        mContext.registerReceiver(mBroadcastReceiver, sdFilter);
-    }
-
-    private ArrayList<FullBackupEntry> readFullBackupSchedule() {
-        boolean changed = false;
-        ArrayList<FullBackupEntry> schedule = null;
-        List<PackageInfo> apps =
-                PackageManagerBackupAgent.getStorableApplications(mPackageManager);
-
-        if (mFullBackupScheduleFile.exists()) {
-            try (FileInputStream fstream = new FileInputStream(mFullBackupScheduleFile);
-                 BufferedInputStream bufStream = new BufferedInputStream(fstream);
-                 DataInputStream in = new DataInputStream(bufStream)) {
-                int version = in.readInt();
-                if (version != SCHEDULE_FILE_VERSION) {
-                    Slog.e(TAG, "Unknown backup schedule version " + version);
-                    return null;
-                }
-
-                final int numPackages = in.readInt();
-                schedule = new ArrayList<>(numPackages);
-
-                // HashSet instead of ArraySet specifically because we want the eventual
-                // lookups against O(hundreds) of entries to be as fast as possible, and
-                // we discard the set immediately after the scan so the extra memory
-                // overhead is transient.
-                HashSet<String> foundApps = new HashSet<>(numPackages);
-
-                for (int i = 0; i < numPackages; i++) {
-                    String pkgName = in.readUTF();
-                    long lastBackup = in.readLong();
-                    foundApps.add(pkgName); // all apps that we've addressed already
-                    try {
-                        PackageInfo pkg = mPackageManager.getPackageInfo(pkgName, 0);
-                        if (AppBackupUtils.appGetsFullBackup(pkg)
-                                && AppBackupUtils.appIsEligibleForBackup(
-                                pkg.applicationInfo, mPackageManager)) {
-                            schedule.add(new FullBackupEntry(pkgName, lastBackup));
-                        } else {
-                            if (DEBUG) {
-                                Slog.i(TAG, "Package " + pkgName
-                                        + " no longer eligible for full backup");
-                            }
-                        }
-                    } catch (NameNotFoundException e) {
-                        if (DEBUG) {
-                            Slog.i(TAG, "Package " + pkgName
-                                    + " not installed; dropping from full backup");
-                        }
-                    }
-                }
-
-                // New apps can arrive "out of band" via OTA and similar, so we also need to
-                // scan to make sure that we're tracking all full-backup candidates properly
-                for (PackageInfo app : apps) {
-                    if (AppBackupUtils.appGetsFullBackup(app)
-                            && AppBackupUtils.appIsEligibleForBackup(
-                            app.applicationInfo, mPackageManager)) {
-                        if (!foundApps.contains(app.packageName)) {
-                            if (MORE_DEBUG) {
-                                Slog.i(TAG, "New full backup app " + app.packageName + " found");
-                            }
-                            schedule.add(new FullBackupEntry(app.packageName, 0));
-                            changed = true;
-                        }
-                    }
-                }
-
-                Collections.sort(schedule);
-            } catch (Exception e) {
-                Slog.e(TAG, "Unable to read backup schedule", e);
-                mFullBackupScheduleFile.delete();
-                schedule = null;
-            }
-        }
-
-        if (schedule == null) {
-            // no prior queue record, or unable to read it.  Set up the queue
-            // from scratch.
-            changed = true;
-            schedule = new ArrayList<>(apps.size());
-            for (PackageInfo info : apps) {
-                if (AppBackupUtils.appGetsFullBackup(info) && AppBackupUtils.appIsEligibleForBackup(
-                        info.applicationInfo, mPackageManager)) {
-                    schedule.add(new FullBackupEntry(info.packageName, 0));
-                }
-            }
-        }
-
-        if (changed) {
-            writeFullBackupScheduleAsync();
-        }
-        return schedule;
-    }
-
-    private Runnable mFullBackupScheduleWriter = new Runnable() {
-        @Override
-        public void run() {
-            synchronized (mQueueLock) {
-                try {
-                    ByteArrayOutputStream bufStream = new ByteArrayOutputStream(4096);
-                    DataOutputStream bufOut = new DataOutputStream(bufStream);
-                    bufOut.writeInt(SCHEDULE_FILE_VERSION);
-
-                    // version 1:
-                    //
-                    // [int] # of packages in the queue = N
-                    // N * {
-                    //     [utf8] package name
-                    //     [long] last backup time for this package
-                    //     }
-                    int numPackages = mFullBackupQueue.size();
-                    bufOut.writeInt(numPackages);
-
-                    for (int i = 0; i < numPackages; i++) {
-                        FullBackupEntry entry = mFullBackupQueue.get(i);
-                        bufOut.writeUTF(entry.packageName);
-                        bufOut.writeLong(entry.lastBackup);
-                    }
-                    bufOut.flush();
-
-                    AtomicFile af = new AtomicFile(mFullBackupScheduleFile);
-                    FileOutputStream out = af.startWrite();
-                    out.write(bufStream.toByteArray());
-                    af.finishWrite(out);
-                } catch (Exception e) {
-                    Slog.e(TAG, "Unable to write backup schedule!", e);
-                }
-            }
-        }
-    };
-
-    private void writeFullBackupScheduleAsync() {
-        mBackupHandler.removeCallbacks(mFullBackupScheduleWriter);
-        mBackupHandler.post(mFullBackupScheduleWriter);
-    }
-
-    private void parseLeftoverJournals() {
-        ArrayList<DataChangedJournal> journals = DataChangedJournal.listJournals(mJournalDir);
-        for (DataChangedJournal journal : journals) {
-            if (!journal.equals(mJournal)) {
-                try {
-                    journal.forEach(packageName -> {
-                        Slog.i(TAG, "Found stale backup journal, scheduling");
-                        if (MORE_DEBUG) Slog.i(TAG, "  " + packageName);
-                        dataChangedImpl(packageName);
-                    });
-                } catch (IOException e) {
-                    Slog.e(TAG, "Can't read " + journal, e);
-                }
-            }
-        }
-    }
-
-    /** Used for generating random salts or passwords. */
-    public byte[] randomBytes(int bits) {
-        byte[] array = new byte[bits / 8];
-        mRng.nextBytes(array);
-        return array;
-    }
-
-    /** For adb backup/restore. */
-    public boolean setBackupPassword(String currentPw, String newPw) {
-        return mBackupPasswordManager.setBackupPassword(currentPw, newPw);
-    }
-
-    /** For adb backup/restore. */
-    public boolean hasBackupPassword() {
-        return mBackupPasswordManager.hasBackupPassword();
-    }
-
-    /** For adb backup/restore. */
-    public boolean backupPasswordMatches(String currentPw) {
-        return mBackupPasswordManager.backupPasswordMatches(currentPw);
+    public void agentDisconnected(String packageName) {
+        mUserBackupManagerService.agentDisconnected(packageName);
     }
 
     /**
-     * Maintain persistent state around whether need to do an initialize operation. This will lock
-     * on {@link #getQueueLock()}.
+     * Used by a currently-active backup agent to notify the service that it has completed its given
+     * outstanding asynchronous backup/restore operation.
      */
-    public void recordInitPending(
-            boolean isPending, String transportName, String transportDirName) {
-        synchronized (mQueueLock) {
-            if (MORE_DEBUG) {
-                Slog.i(TAG, "recordInitPending(" + isPending + ") on transport " + transportName);
-            }
-
-            File stateDir = new File(mBaseStateDir, transportDirName);
-            File initPendingFile = new File(stateDir, INIT_SENTINEL_FILE_NAME);
-
-            if (isPending) {
-                // We need an init before we can proceed with sending backup data.
-                // Record that with an entry in our set of pending inits, as well as
-                // journaling it via creation of a sentinel file.
-                mPendingInits.add(transportName);
-                try {
-                    (new FileOutputStream(initPendingFile)).close();
-                } catch (IOException ioe) {
-                    // Something is badly wrong with our permissions; just try to move on
-                }
-            } else {
-                // No more initialization needed; wipe the journal and reset our state.
-                initPendingFile.delete();
-                mPendingInits.remove(transportName);
-            }
-        }
+    public void opComplete(int token, long result) {
+        mUserBackupManagerService.opComplete(token, result);
     }
 
-    /**
-     * Reset all of our bookkeeping because the backend data has been wiped (for example due to idle
-     * expiry), so we must re-upload all saved settings.
-     */
-    public void resetBackupState(File stateFileDir) {
-        synchronized (mQueueLock) {
-            mProcessedPackagesJournal.reset();
+    // ---------------------------------------------
+    // TRANSPORT OPERATIONS
+    // ---------------------------------------------
 
-            mCurrentToken = 0;
-            writeRestoreTokens();
-
-            // Remove all the state files
-            for (File sf : stateFileDir.listFiles()) {
-                // ... but don't touch the needs-init sentinel
-                if (!sf.getName().equals(INIT_SENTINEL_FILE_NAME)) {
-                    sf.delete();
-                }
-            }
-        }
-
-        // Enqueue a new backup of every participant
-        synchronized (mBackupParticipants) {
-            final int numParticipants = mBackupParticipants.size();
-            for (int i = 0; i < numParticipants; i++) {
-                HashSet<String> participants = mBackupParticipants.valueAt(i);
-                if (participants != null) {
-                    for (String packageName : participants) {
-                        dataChangedImpl(packageName);
-                    }
-                }
-            }
-        }
-    }
-
-    private void onTransportRegistered(String transportName, String transportDirName) {
-        if (DEBUG) {
-            long timeMs = SystemClock.elapsedRealtime() - mRegisterTransportsRequestedTime;
-            Slog.d(TAG, "Transport " + transportName + " registered " + timeMs
-                    + "ms after first request (delay = " + INITIALIZATION_DELAY_MILLIS + "ms)");
-        }
-
-        File stateDir = new File(mBaseStateDir, transportDirName);
-        stateDir.mkdirs();
-
-        File initSentinel = new File(stateDir, INIT_SENTINEL_FILE_NAME);
-        if (initSentinel.exists()) {
-            synchronized (mQueueLock) {
-                mPendingInits.add(transportName);
-
-                // TODO: pick a better starting time than now + 1 minute
-                long delay = 1000 * 60; // one minute, in milliseconds
-                mAlarmManager.set(AlarmManager.RTC_WAKEUP,
-                        System.currentTimeMillis() + delay, mRunInitIntent);
-            }
-        }
-    }
-
-    // ----- Track installation/removal of packages -----
-    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
-        public void onReceive(Context context, Intent intent) {
-            if (MORE_DEBUG) Slog.d(TAG, "Received broadcast " + intent);
-
-            String action = intent.getAction();
-            boolean replacing = false;
-            boolean added = false;
-            boolean changed = false;
-            Bundle extras = intent.getExtras();
-            String[] pkgList = null;
-            if (Intent.ACTION_PACKAGE_ADDED.equals(action)
-                    || Intent.ACTION_PACKAGE_REMOVED.equals(action)
-                    || Intent.ACTION_PACKAGE_CHANGED.equals(action)) {
-                Uri uri = intent.getData();
-                if (uri == null) {
-                    return;
-                }
-                final String pkgName = uri.getSchemeSpecificPart();
-                if (pkgName != null) {
-                    pkgList = new String[]{pkgName};
-                }
-                changed = Intent.ACTION_PACKAGE_CHANGED.equals(action);
-
-                // At package-changed we only care about looking at new transport states
-                if (changed) {
-                    final String[] components =
-                            intent.getStringArrayExtra(Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST);
-
-                    if (MORE_DEBUG) {
-                        Slog.i(TAG, "Package " + pkgName + " changed; rechecking");
-                        for (int i = 0; i < components.length; i++) {
-                            Slog.i(TAG, "   * " + components[i]);
-                        }
-                    }
-
-                    mBackupHandler.post(
-                            () -> mTransportManager.onPackageChanged(pkgName, components));
-                    return; // nothing more to do in the PACKAGE_CHANGED case
-                }
-
-                added = Intent.ACTION_PACKAGE_ADDED.equals(action);
-                replacing = extras.getBoolean(Intent.EXTRA_REPLACING, false);
-            } else if (Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action)) {
-                added = true;
-                pkgList = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST);
-            } else if (Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) {
-                added = false;
-                pkgList = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST);
-            }
-
-            if (pkgList == null || pkgList.length == 0) {
-                return;
-            }
-
-            final int uid = extras.getInt(Intent.EXTRA_UID);
-            if (added) {
-                synchronized (mBackupParticipants) {
-                    if (replacing) {
-                        // This is the package-replaced case; we just remove the entry
-                        // under the old uid and fall through to re-add.  If an app
-                        // just added key/value backup participation, this picks it up
-                        // as a known participant.
-                        removePackageParticipantsLocked(pkgList, uid);
-                    }
-                    addPackageParticipantsLocked(pkgList);
-                }
-                // If they're full-backup candidates, add them there instead
-                final long now = System.currentTimeMillis();
-                for (final String packageName : pkgList) {
-                    try {
-                        PackageInfo app = mPackageManager.getPackageInfo(packageName, 0);
-                        if (AppBackupUtils.appGetsFullBackup(app)
-                                && AppBackupUtils.appIsEligibleForBackup(
-                                app.applicationInfo, mPackageManager)) {
-                            enqueueFullBackup(packageName, now);
-                            scheduleNextFullBackupJob(0);
-                        } else {
-                            // The app might have just transitioned out of full-data into
-                            // doing key/value backups, or might have just disabled backups
-                            // entirely.  Make sure it is no longer in the full-data queue.
-                            synchronized (mQueueLock) {
-                                dequeueFullBackupLocked(packageName);
-                            }
-                            writeFullBackupScheduleAsync();
-                        }
-
-                        mBackupHandler.post(
-                                () -> mTransportManager.onPackageAdded(packageName));
-
-                    } catch (NameNotFoundException e) {
-                        // doesn't really exist; ignore it
-                        if (DEBUG) {
-                            Slog.w(TAG, "Can't resolve new app " + packageName);
-                        }
-                    }
-                }
-
-                // Whenever a package is added or updated we need to update
-                // the package metadata bookkeeping.
-                dataChangedImpl(PACKAGE_MANAGER_SENTINEL);
-            } else {
-                if (replacing) {
-                    // The package is being updated.  We'll receive a PACKAGE_ADDED shortly.
-                } else {
-                    // Outright removal.  In the full-data case, the app will be dropped
-                    // from the queue when its (now obsolete) name comes up again for
-                    // backup.
-                    synchronized (mBackupParticipants) {
-                        removePackageParticipantsLocked(pkgList, uid);
-                    }
-                }
-                for (final String pkgName : pkgList) {
-                    mBackupHandler.post(
-                            () -> mTransportManager.onPackageRemoved(pkgName));
-                }
-            }
-        }
-    };
-
-    // Add the backup agents in the given packages to our set of known backup participants.
-    // If 'packageNames' is null, adds all backup agents in the whole system.
-    private void addPackageParticipantsLocked(String[] packageNames) {
-        // Look for apps that define the android:backupAgent attribute
-        List<PackageInfo> targetApps = allAgentPackages();
-        if (packageNames != null) {
-            if (MORE_DEBUG) Slog.v(TAG, "addPackageParticipantsLocked: #" + packageNames.length);
-            for (String packageName : packageNames) {
-                addPackageParticipantsLockedInner(packageName, targetApps);
-            }
-        } else {
-            if (MORE_DEBUG) Slog.v(TAG, "addPackageParticipantsLocked: all");
-            addPackageParticipantsLockedInner(null, targetApps);
-        }
-    }
-
-    private void addPackageParticipantsLockedInner(String packageName,
-            List<PackageInfo> targetPkgs) {
-        if (MORE_DEBUG) {
-            Slog.v(TAG, "Examining " + packageName + " for backup agent");
-        }
-
-        for (PackageInfo pkg : targetPkgs) {
-            if (packageName == null || pkg.packageName.equals(packageName)) {
-                int uid = pkg.applicationInfo.uid;
-                HashSet<String> set = mBackupParticipants.get(uid);
-                if (set == null) {
-                    set = new HashSet<>();
-                    mBackupParticipants.put(uid, set);
-                }
-                set.add(pkg.packageName);
-                if (MORE_DEBUG) Slog.v(TAG, "Agent found; added");
-
-                // Schedule a backup for it on general principles
-                if (MORE_DEBUG) Slog.i(TAG, "Scheduling backup for new app " + pkg.packageName);
-                Message msg = mBackupHandler
-                        .obtainMessage(MSG_SCHEDULE_BACKUP_PACKAGE, pkg.packageName);
-                mBackupHandler.sendMessage(msg);
-            }
-        }
-    }
-
-    // Remove the given packages' entries from our known active set.
-    private void removePackageParticipantsLocked(String[] packageNames, int oldUid) {
-        if (packageNames == null) {
-            Slog.w(TAG, "removePackageParticipants with null list");
-            return;
-        }
-
-        if (MORE_DEBUG) {
-            Slog.v(TAG, "removePackageParticipantsLocked: uid=" + oldUid
-                    + " #" + packageNames.length);
-        }
-        for (String pkg : packageNames) {
-            // Known previous UID, so we know which package set to check
-            HashSet<String> set = mBackupParticipants.get(oldUid);
-            if (set != null && set.contains(pkg)) {
-                removePackageFromSetLocked(set, pkg);
-                if (set.isEmpty()) {
-                    if (MORE_DEBUG) Slog.v(TAG, "  last one of this uid; purging set");
-                    mBackupParticipants.remove(oldUid);
-                }
-            }
-        }
-    }
-
-    private void removePackageFromSetLocked(final HashSet<String> set,
-            final String packageName) {
-        if (set.contains(packageName)) {
-            // Found it.  Remove this one package from the bookkeeping, and
-            // if it's the last participating app under this uid we drop the
-            // (now-empty) set as well.
-            // Note that we deliberately leave it 'known' in the "ever backed up"
-            // bookkeeping so that its current-dataset data will be retrieved
-            // if the app is subsequently reinstalled
-            if (MORE_DEBUG) Slog.v(TAG, "  removing participant " + packageName);
-            set.remove(packageName);
-            mPendingBackups.remove(packageName);
-        }
-    }
-
-    // Returns the set of all applications that define an android:backupAgent attribute
-    private List<PackageInfo> allAgentPackages() {
-        // !!! TODO: cache this and regenerate only when necessary
-        int flags = PackageManager.GET_SIGNING_CERTIFICATES;
-        List<PackageInfo> packages = mPackageManager.getInstalledPackages(flags);
-        int numPackages = packages.size();
-        for (int a = numPackages - 1; a >= 0; a--) {
-            PackageInfo pkg = packages.get(a);
-            try {
-                ApplicationInfo app = pkg.applicationInfo;
-                if (((app.flags & ApplicationInfo.FLAG_ALLOW_BACKUP) == 0)
-                        || app.backupAgentName == null
-                        || (app.flags & ApplicationInfo.FLAG_FULL_BACKUP_ONLY) != 0) {
-                    packages.remove(a);
-                } else {
-                    // we will need the shared library path, so look that up and store it here.
-                    // This is used implicitly when we pass the PackageInfo object off to
-                    // the Activity Manager to launch the app for backup/restore purposes.
-                    app = mPackageManager.getApplicationInfo(pkg.packageName,
-                            PackageManager.GET_SHARED_LIBRARY_FILES);
-                    pkg.applicationInfo.sharedLibraryFiles = app.sharedLibraryFiles;
-                }
-            } catch (NameNotFoundException e) {
-                packages.remove(a);
-            }
-        }
-        return packages;
-    }
-
-    /**
-     * Called from the backup tasks: record that the given app has been successfully backed up at
-     * least once. This includes both key/value and full-data backups through the transport.
-     */
-    public void logBackupComplete(String packageName) {
-        if (packageName.equals(PACKAGE_MANAGER_SENTINEL)) return;
-
-        for (String receiver : mConstants.getBackupFinishedNotificationReceivers()) {
-            final Intent notification = new Intent();
-            notification.setAction(BACKUP_FINISHED_ACTION);
-            notification.setPackage(receiver);
-            notification.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES
-                    | Intent.FLAG_RECEIVER_FOREGROUND);
-            notification.putExtra(BACKUP_FINISHED_PACKAGE_EXTRA, packageName);
-            mContext.sendBroadcastAsUser(notification, UserHandle.OWNER);
-        }
-
-        mProcessedPackagesJournal.addPackage(packageName);
-    }
-
-    /**
-     * Persistently record the current and ancestral backup tokens, as well as the set of packages
-     * with data available in the ancestral dataset.
-     */
-    public void writeRestoreTokens() {
-        try (RandomAccessFile af = new RandomAccessFile(mTokenFile, "rwd")) {
-            // First, the version number of this record, for futureproofing
-            af.writeInt(CURRENT_ANCESTRAL_RECORD_VERSION);
-
-            // Write the ancestral and current tokens
-            af.writeLong(mAncestralToken);
-            af.writeLong(mCurrentToken);
-
-            // Now write the set of ancestral packages
-            if (mAncestralPackages == null) {
-                af.writeInt(-1);
-            } else {
-                af.writeInt(mAncestralPackages.size());
-                if (DEBUG) Slog.v(TAG, "Ancestral packages:  " + mAncestralPackages.size());
-                for (String pkgName : mAncestralPackages) {
-                    af.writeUTF(pkgName);
-                    if (MORE_DEBUG) Slog.v(TAG, "   " + pkgName);
-                }
-            }
-        } catch (IOException e) {
-            Slog.w(TAG, "Unable to write token file:", e);
-        }
-    }
-
-    /** Fires off a backup agent, blocking until it attaches or times out. */
-    @Nullable
-    public IBackupAgent bindToAgentSynchronous(ApplicationInfo app, int mode) {
-        IBackupAgent agent = null;
-        synchronized (mAgentConnectLock) {
-            mConnecting = true;
-            mConnectedAgent = null;
-            try {
-                if (mActivityManager.bindBackupAgent(app.packageName, mode,
-                        UserHandle.USER_OWNER)) {
-                    Slog.d(TAG, "awaiting agent for " + app);
-
-                    // success; wait for the agent to arrive
-                    // only wait 10 seconds for the bind to happen
-                    long timeoutMark = System.currentTimeMillis() + TIMEOUT_INTERVAL;
-                    while (mConnecting && mConnectedAgent == null
-                            && (System.currentTimeMillis() < timeoutMark)) {
-                        try {
-                            mAgentConnectLock.wait(5000);
-                        } catch (InterruptedException e) {
-                            // just bail
-                            Slog.w(TAG, "Interrupted: " + e);
-                            mConnecting = false;
-                            mConnectedAgent = null;
-                        }
-                    }
-
-                    // if we timed out with no connect, abort and move on
-                    if (mConnecting) {
-                        Slog.w(TAG, "Timeout waiting for agent " + app);
-                        mConnectedAgent = null;
-                    }
-                    if (DEBUG) Slog.i(TAG, "got agent " + mConnectedAgent);
-                    agent = mConnectedAgent;
-                }
-            } catch (RemoteException e) {
-                // can't happen - ActivityManager is local
-            }
-        }
-        if (agent == null) {
-            try {
-                mActivityManager.clearPendingBackup();
-            } catch (RemoteException e) {
-                // can't happen - ActivityManager is local
-            }
-        }
-        return agent;
-    }
-
-    /** Unbind from a backup agent. */
-    public void unbindAgent(ApplicationInfo app) {
-        try {
-            mActivityManager.unbindBackupAgent(app);
-        } catch (RemoteException e) {
-            // Can't happen - activity manager is local
-        }
-    }
-
-    /**
-     * Clear an application's data, blocking until the operation completes or times out. If {@code
-     * keepSystemState} is {@code true}, we intentionally do not clear system state that would
-     * ordinarily also be cleared, because we aren't actually wiping the app back to empty; we're
-     * bringing it into the actual expected state related to the already-restored notification state
-     * etc.
-     */
-    public void clearApplicationDataSynchronous(String packageName, boolean keepSystemState) {
-        // Don't wipe packages marked allowClearUserData=false
-        try {
-            PackageInfo info = mPackageManager.getPackageInfo(packageName, 0);
-            if ((info.applicationInfo.flags & ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA) == 0) {
-                if (MORE_DEBUG) {
-                    Slog.i(TAG, "allowClearUserData=false so not wiping "
-                            + packageName);
-                }
-                return;
-            }
-        } catch (NameNotFoundException e) {
-            Slog.w(TAG, "Tried to clear data for " + packageName + " but not found");
-            return;
-        }
-
-        ClearDataObserver observer = new ClearDataObserver(this);
-
-        synchronized (mClearDataLock) {
-            mClearingData = true;
-            try {
-                mActivityManager.clearApplicationUserData(
-                        packageName, keepSystemState, observer, 0);
-            } catch (RemoteException e) {
-                // can't happen because the activity manager is in this process
-            }
-
-            // only wait 10 seconds for the clear data to happen
-            long timeoutMark = System.currentTimeMillis() + TIMEOUT_INTERVAL;
-            while (mClearingData && (System.currentTimeMillis() < timeoutMark)) {
-                try {
-                    mClearDataLock.wait(5000);
-                } catch (InterruptedException e) {
-                    // won't happen, but still.
-                    mClearingData = false;
-                }
-            }
-        }
-    }
-
-    /**
-     * Get the restore-set token for the best-available restore set for this {@code packageName}:
-     * the active set if possible, else the ancestral one. Returns zero if none available.
-     */
-    public long getAvailableRestoreToken(String packageName) {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "getAvailableRestoreToken");
-
-        long token = mAncestralToken;
-        synchronized (mQueueLock) {
-            if (mCurrentToken != 0 && mProcessedPackagesJournal.hasBeenProcessed(packageName)) {
-                if (MORE_DEBUG) {
-                    Slog.i(TAG, "App in ever-stored, so using current token");
-                }
-                token = mCurrentToken;
-            }
-        }
-        if (MORE_DEBUG) Slog.i(TAG, "getAvailableRestoreToken() == " + token);
-        return token;
-    }
-
-    /**
-     * Requests a backup for the inputted {@code packages}.
-     *
-     * @see #requestBackup(String[], IBackupObserver, IBackupManagerMonitor, int).
-     */
-    public int requestBackup(String[] packages, IBackupObserver observer, int flags) {
-        return requestBackup(packages, observer, null, flags);
-    }
-
-    /**
-     * Requests a backup for the inputted {@code packages} with a specified {@link
-     * IBackupManagerMonitor}.
-     */
-    public int requestBackup(String[] packages, IBackupObserver observer,
-            IBackupManagerMonitor monitor, int flags) {
-        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "requestBackup");
-
-        if (packages == null || packages.length < 1) {
-            Slog.e(TAG, "No packages named for backup request");
-            BackupObserverUtils.sendBackupFinished(observer, BackupManager.ERROR_TRANSPORT_ABORTED);
-            monitor = BackupManagerMonitorUtils.monitorEvent(monitor,
-                    BackupManagerMonitor.LOG_EVENT_ID_NO_PACKAGES,
-                    null, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT, null);
-            throw new IllegalArgumentException("No packages are provided for backup");
-        }
-
-        if (!mEnabled || !mProvisioned) {
-            Slog.i(TAG, "Backup requested but e=" + mEnabled + " p=" + mProvisioned);
-            BackupObserverUtils.sendBackupFinished(observer,
-                    BackupManager.ERROR_BACKUP_NOT_ALLOWED);
-            final int logTag = mProvisioned
-                    ? BackupManagerMonitor.LOG_EVENT_ID_BACKUP_DISABLED
-                    : BackupManagerMonitor.LOG_EVENT_ID_DEVICE_NOT_PROVISIONED;
-            monitor = BackupManagerMonitorUtils.monitorEvent(monitor, logTag, null,
-                    BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY, null);
-            return BackupManager.ERROR_BACKUP_NOT_ALLOWED;
-        }
-
-        final TransportClient transportClient;
-        final String transportDirName;
-        try {
-            transportDirName =
-                    mTransportManager.getTransportDirName(
-                            mTransportManager.getCurrentTransportName());
-            transportClient =
-                    mTransportManager.getCurrentTransportClientOrThrow("BMS.requestBackup()");
-        } catch (TransportNotRegisteredException e) {
-            BackupObserverUtils.sendBackupFinished(observer, BackupManager.ERROR_TRANSPORT_ABORTED);
-            monitor = BackupManagerMonitorUtils.monitorEvent(monitor,
-                    BackupManagerMonitor.LOG_EVENT_ID_TRANSPORT_IS_NULL,
-                    null, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT, null);
-            return BackupManager.ERROR_TRANSPORT_ABORTED;
-        }
-
-        OnTaskFinishedListener listener =
-                caller -> mTransportManager.disposeOfTransportClient(transportClient, caller);
-
-        ArrayList<String> fullBackupList = new ArrayList<>();
-        ArrayList<String> kvBackupList = new ArrayList<>();
-        for (String packageName : packages) {
-            if (PACKAGE_MANAGER_SENTINEL.equals(packageName)) {
-                kvBackupList.add(packageName);
-                continue;
-            }
-            try {
-                PackageInfo packageInfo = mPackageManager.getPackageInfo(packageName,
-                        PackageManager.GET_SIGNING_CERTIFICATES);
-                if (!AppBackupUtils.appIsEligibleForBackup(packageInfo.applicationInfo,
-                        mPackageManager)) {
-                    BackupObserverUtils.sendBackupOnPackageResult(observer, packageName,
-                            BackupManager.ERROR_BACKUP_NOT_ALLOWED);
-                    continue;
-                }
-                if (AppBackupUtils.appGetsFullBackup(packageInfo)) {
-                    fullBackupList.add(packageInfo.packageName);
-                } else {
-                    kvBackupList.add(packageInfo.packageName);
-                }
-            } catch (NameNotFoundException e) {
-                BackupObserverUtils.sendBackupOnPackageResult(observer, packageName,
-                        BackupManager.ERROR_PACKAGE_NOT_FOUND);
-            }
-        }
-        EventLog.writeEvent(EventLogTags.BACKUP_REQUESTED, packages.length, kvBackupList.size(),
-                fullBackupList.size());
-        if (MORE_DEBUG) {
-            Slog.i(TAG, "Backup requested for " + packages.length + " packages, of them: "
-                    + fullBackupList.size() + " full backups, " + kvBackupList.size()
-                    + " k/v backups");
-        }
-
-        boolean nonIncrementalBackup = (flags & BackupManager.FLAG_NON_INCREMENTAL_BACKUP) != 0;
-
-        Message msg = mBackupHandler.obtainMessage(MSG_REQUEST_BACKUP);
-        msg.obj = new BackupParams(transportClient, transportDirName, kvBackupList, fullBackupList,
-                observer, monitor, listener, true, nonIncrementalBackup);
-        mBackupHandler.sendMessage(msg);
-        return BackupManager.SUCCESS;
-    }
-
-    /** Cancel all running backups. */
-    public void cancelBackups() {
-        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "cancelBackups");
-        if (MORE_DEBUG) {
-            Slog.i(TAG, "cancelBackups() called.");
-        }
-        final long oldToken = Binder.clearCallingIdentity();
-        try {
-            List<Integer> operationsToCancel = new ArrayList<>();
-            synchronized (mCurrentOpLock) {
-                for (int i = 0; i < mCurrentOperations.size(); i++) {
-                    Operation op = mCurrentOperations.valueAt(i);
-                    int token = mCurrentOperations.keyAt(i);
-                    if (op.type == OP_TYPE_BACKUP) {
-                        operationsToCancel.add(token);
-                    }
-                }
-            }
-            for (Integer token : operationsToCancel) {
-                handleCancel(token, true /* cancelAll */);
-            }
-            // We don't want the backup jobs to kick in any time soon.
-            // Reschedules them to run in the distant future.
-            KeyValueBackupJob.schedule(mContext, BUSY_BACKOFF_MIN_MILLIS, mConstants);
-            FullBackupJob.schedule(mContext, 2 * BUSY_BACKOFF_MIN_MILLIS, mConstants);
-        } finally {
-            Binder.restoreCallingIdentity(oldToken);
-        }
-    }
-
-    /** Schedule a timeout message for the operation identified by {@code token}. */
-    public void prepareOperationTimeout(int token, long interval, BackupRestoreTask callback,
-            int operationType) {
-        if (operationType != OP_TYPE_BACKUP_WAIT && operationType != OP_TYPE_RESTORE_WAIT) {
-            Slog.wtf(TAG, "prepareOperationTimeout() doesn't support operation "
-                    + Integer.toHexString(token) + " of type " + operationType);
-            return;
-        }
-        if (MORE_DEBUG) {
-            Slog.v(TAG, "starting timeout: token=" + Integer.toHexString(token)
-                    + " interval=" + interval + " callback=" + callback);
-        }
-
-        synchronized (mCurrentOpLock) {
-            mCurrentOperations.put(token, new Operation(OP_PENDING, callback, operationType));
-            Message msg = mBackupHandler.obtainMessage(getMessageIdForOperationType(operationType),
-                    token, 0, callback);
-            mBackupHandler.sendMessageDelayed(msg, interval);
-        }
-    }
-
-    private int getMessageIdForOperationType(int operationType) {
-        switch (operationType) {
-            case OP_TYPE_BACKUP_WAIT:
-                return MSG_BACKUP_OPERATION_TIMEOUT;
-            case OP_TYPE_RESTORE_WAIT:
-                return MSG_RESTORE_OPERATION_TIMEOUT;
-            default:
-                Slog.wtf(TAG, "getMessageIdForOperationType called on invalid operation type: "
-                        + operationType);
-                return -1;
-        }
-    }
-
-    /**
-     * Add an operation to the list of currently running operations. Used for cancellation,
-     * completion and timeout callbacks that act on the operation via the {@code token}.
-     */
-    public void putOperation(int token, Operation operation) {
-        if (MORE_DEBUG) {
-            Slog.d(TAG, "Adding operation token=" + Integer.toHexString(token) + ", operation type="
-                    + operation.type);
-        }
-        synchronized (mCurrentOpLock) {
-            mCurrentOperations.put(token, operation);
-        }
-    }
-
-    /**
-     * Remove an operation from the list of currently running operations. An operation is removed
-     * when it is completed, cancelled, or timed out, and thus no longer running.
-     */
-    public void removeOperation(int token) {
-        if (MORE_DEBUG) {
-            Slog.d(TAG, "Removing operation token=" + Integer.toHexString(token));
-        }
-        synchronized (mCurrentOpLock) {
-            if (mCurrentOperations.get(token) == null) {
-                Slog.w(TAG, "Duplicate remove for operation. token="
-                        + Integer.toHexString(token));
-            }
-            mCurrentOperations.remove(token);
-        }
-    }
-
-    /** Block until we received an operation complete message (from the agent or cancellation). */
-    public boolean waitUntilOperationComplete(int token) {
-        if (MORE_DEBUG) {
-            Slog.i(TAG, "Blocking until operation complete for "
-                    + Integer.toHexString(token));
-        }
-        int finalState = OP_PENDING;
-        Operation op = null;
-        synchronized (mCurrentOpLock) {
-            while (true) {
-                op = mCurrentOperations.get(token);
-                if (op == null) {
-                    // mysterious disappearance: treat as success with no callback
-                    break;
-                } else {
-                    if (op.state == OP_PENDING) {
-                        try {
-                            mCurrentOpLock.wait();
-                        } catch (InterruptedException e) {
-                        }
-                        // When the wait is notified we loop around and recheck the current state
-                    } else {
-                        if (MORE_DEBUG) {
-                            Slog.d(TAG, "Unblocked waiting for operation token="
-                                    + Integer.toHexString(token));
-                        }
-                        // No longer pending; we're done
-                        finalState = op.state;
-                        break;
-                    }
-                }
-            }
-        }
-
-        removeOperation(token);
-        if (op != null) {
-            mBackupHandler.removeMessages(getMessageIdForOperationType(op.type));
-        }
-        if (MORE_DEBUG) {
-            Slog.v(TAG, "operation " + Integer.toHexString(token)
-                    + " complete: finalState=" + finalState);
-        }
-        return finalState == OP_ACKNOWLEDGED;
-    }
-
-    /** Cancel the operation associated with {@code token}. */
-    public void handleCancel(int token, boolean cancelAll) {
-        // Notify any synchronous waiters
-        Operation op = null;
-        synchronized (mCurrentOpLock) {
-            op = mCurrentOperations.get(token);
-            if (MORE_DEBUG) {
-                if (op == null) {
-                    Slog.w(TAG, "Cancel of token " + Integer.toHexString(token)
-                            + " but no op found");
-                }
-            }
-            int state = (op != null) ? op.state : OP_TIMEOUT;
-            if (state == OP_ACKNOWLEDGED) {
-                // The operation finished cleanly, so we have nothing more to do.
-                if (DEBUG) {
-                    Slog.w(TAG, "Operation already got an ack."
-                            + "Should have been removed from mCurrentOperations.");
-                }
-                op = null;
-                mCurrentOperations.delete(token);
-            } else if (state == OP_PENDING) {
-                if (DEBUG) Slog.v(TAG, "Cancel: token=" + Integer.toHexString(token));
-                op.state = OP_TIMEOUT;
-                // Can't delete op from mCurrentOperations here. waitUntilOperationComplete may be
-                // called after we receive cancel here. We need this op's state there.
-
-                // Remove all pending timeout messages of types OP_TYPE_BACKUP_WAIT and
-                // OP_TYPE_RESTORE_WAIT. On the other hand, OP_TYPE_BACKUP cannot time out and
-                // doesn't require cancellation.
-                if (op.type == OP_TYPE_BACKUP_WAIT || op.type == OP_TYPE_RESTORE_WAIT) {
-                    mBackupHandler.removeMessages(getMessageIdForOperationType(op.type));
-                }
-            }
-            mCurrentOpLock.notifyAll();
-        }
-
-        // If there's a TimeoutHandler for this event, call it
-        if (op != null && op.callback != null) {
-            if (MORE_DEBUG) {
-                Slog.v(TAG, "   Invoking cancel on " + op.callback);
-            }
-            op.callback.handleCancel(cancelAll);
-        }
-    }
-
-    /** Returns {@code true} if a backup is currently running, else returns {@code false}. */
-    public boolean isBackupOperationInProgress() {
-        synchronized (mCurrentOpLock) {
-            for (int i = 0; i < mCurrentOperations.size(); i++) {
-                Operation op = mCurrentOperations.valueAt(i);
-                if (op.type == OP_TYPE_BACKUP && op.state == OP_PENDING) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-    /** Unbind the backup agent and kill the app if it's a non-system app. */
-    public void tearDownAgentAndKill(ApplicationInfo app) {
-        if (app == null) {
-            // Null means the system package, so just quietly move on.  :)
-            return;
-        }
-
-        try {
-            // unbind and tidy up even on timeout or failure, just in case
-            mActivityManager.unbindBackupAgent(app);
-
-            // The agent was running with a stub Application object, so shut it down.
-            // !!! We hardcode the confirmation UI's package name here rather than use a
-            //     manifest flag!  TODO something less direct.
-            if (app.uid >= Process.FIRST_APPLICATION_UID
-                    && !app.packageName.equals("com.android.backupconfirm")) {
-                if (MORE_DEBUG) Slog.d(TAG, "Killing agent host process");
-                mActivityManager.killApplicationProcess(app.processName, app.uid);
-            } else {
-                if (MORE_DEBUG) Slog.d(TAG, "Not killing after operation: " + app.processName);
-            }
-        } catch (RemoteException e) {
-            Slog.d(TAG, "Lost app trying to shut down");
-        }
-    }
-
-    /** For adb backup/restore. */
-    public boolean deviceIsEncrypted() {
-        try {
-            return mStorageManager.getEncryptionState()
-                    != StorageManager.ENCRYPTION_STATE_NONE
-                    && mStorageManager.getPasswordType()
-                    != StorageManager.CRYPT_TYPE_DEFAULT;
-        } catch (Exception e) {
-            // If we can't talk to the storagemanager service we have a serious problem; fail
-            // "secure" i.e. assuming that the device is encrypted.
-            Slog.e(TAG, "Unable to communicate with storagemanager service: " + e.getMessage());
-            return true;
-        }
-    }
-
-    // ----- Full-data backup scheduling -----
-
-    /**
-     * Schedule a job to tell us when it's a good time to run a full backup
-     */
-    public void scheduleNextFullBackupJob(long transportMinLatency) {
-        synchronized (mQueueLock) {
-            if (mFullBackupQueue.size() > 0) {
-                // schedule the next job at the point in the future when the least-recently
-                // backed up app comes due for backup again; or immediately if it's already
-                // due.
-                final long upcomingLastBackup = mFullBackupQueue.get(0).lastBackup;
-                final long timeSinceLast = System.currentTimeMillis() - upcomingLastBackup;
-                final long interval = mConstants.getFullBackupIntervalMilliseconds();
-                final long appLatency = (timeSinceLast < interval) ? (interval - timeSinceLast) : 0;
-                final long latency = Math.max(transportMinLatency, appLatency);
-                Runnable r = new Runnable() {
-                    @Override
-                    public void run() {
-                        FullBackupJob.schedule(mContext, latency, mConstants);
-                    }
-                };
-                mBackupHandler.postDelayed(r, 2500);
-            } else {
-                if (DEBUG_SCHEDULING) {
-                    Slog.i(TAG, "Full backup queue empty; not scheduling");
-                }
-            }
-        }
-    }
-
-    /**
-     * Remove a package from the full-data queue.
-     */
-    @GuardedBy("mQueueLock")
-    private void dequeueFullBackupLocked(String packageName) {
-        final int numPackages = mFullBackupQueue.size();
-        for (int i = numPackages - 1; i >= 0; i--) {
-            final FullBackupEntry e = mFullBackupQueue.get(i);
-            if (packageName.equals(e.packageName)) {
-                mFullBackupQueue.remove(i);
-            }
-        }
-    }
-
-    /**
-     * Enqueue full backup for the given app, with a note about when it last ran.
-     */
-    public void enqueueFullBackup(String packageName, long lastBackedUp) {
-        FullBackupEntry newEntry = new FullBackupEntry(packageName, lastBackedUp);
-        synchronized (mQueueLock) {
-            // First, sanity check that we aren't adding a duplicate.  Slow but
-            // straightforward; we'll have at most on the order of a few hundred
-            // items in this list.
-            dequeueFullBackupLocked(packageName);
-
-            // This is also slow but easy for modest numbers of apps: work backwards
-            // from the end of the queue until we find an item whose last backup
-            // time was before this one, then insert this new entry after it.  If we're
-            // adding something new we don't bother scanning, and just prepend.
-            int which = -1;
-            if (lastBackedUp > 0) {
-                for (which = mFullBackupQueue.size() - 1; which >= 0; which--) {
-                    final FullBackupEntry entry = mFullBackupQueue.get(which);
-                    if (entry.lastBackup <= lastBackedUp) {
-                        mFullBackupQueue.add(which + 1, newEntry);
-                        break;
-                    }
-                }
-            }
-            if (which < 0) {
-                // this one is earlier than any existing one, so prepend
-                mFullBackupQueue.add(0, newEntry);
-            }
-        }
-        writeFullBackupScheduleAsync();
-    }
-
-    private boolean fullBackupAllowable(String transportName) {
-        if (!mTransportManager.isTransportRegistered(transportName)) {
-            Slog.w(TAG, "Transport not registered; full data backup not performed");
-            return false;
-        }
-
-        // Don't proceed unless we have already established package metadata
-        // for the current dataset via a key/value backup pass.
-        try {
-            String transportDirName = mTransportManager.getTransportDirName(transportName);
-            File stateDir = new File(mBaseStateDir, transportDirName);
-            File pmState = new File(stateDir, PACKAGE_MANAGER_SENTINEL);
-            if (pmState.length() <= 0) {
-                if (DEBUG) {
-                    Slog.i(TAG, "Full backup requested but dataset not yet initialized");
-                }
-                return false;
-            }
-        } catch (Exception e) {
-            Slog.w(TAG, "Unable to get transport name: " + e.getMessage());
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Conditions are right for a full backup operation, so run one.  The model we use is
-     * to perform one app backup per scheduled job execution, and to reschedule the job
-     * with zero latency as long as conditions remain right and we still have work to do.
-     *
-     * <p>This is the "start a full backup operation" entry point called by the scheduled job.
-     *
-     * @return Whether ongoing work will continue.  The return value here will be passed
-     * along as the return value to the scheduled job's onStartJob() callback.
-     */
-    public boolean beginFullBackup(FullBackupJob scheduledJob) {
-        final long now = System.currentTimeMillis();
-        final long fullBackupInterval;
-        final long keyValueBackupInterval;
-        synchronized (mConstants) {
-            fullBackupInterval = mConstants.getFullBackupIntervalMilliseconds();
-            keyValueBackupInterval = mConstants.getKeyValueBackupIntervalMilliseconds();
-        }
-        FullBackupEntry entry = null;
-        long latency = fullBackupInterval;
-
-        if (!mEnabled || !mProvisioned) {
-            // Backups are globally disabled, so don't proceed.  We also don't reschedule
-            // the job driving automatic backups; that job will be scheduled again when
-            // the user enables backup.
-            if (MORE_DEBUG) {
-                Slog.i(TAG, "beginFullBackup but e=" + mEnabled
-                        + " p=" + mProvisioned + "; ignoring");
-            }
-            return false;
-        }
-
-        // Don't run the backup if we're in battery saver mode, but reschedule
-        // to try again in the not-so-distant future.
-        final PowerSaveState result =
-                mPowerManager.getPowerSaveState(ServiceType.FULL_BACKUP);
-        if (result.batterySaverEnabled) {
-            if (DEBUG) Slog.i(TAG, "Deferring scheduled full backups in battery saver mode");
-            FullBackupJob.schedule(mContext, keyValueBackupInterval, mConstants);
-            return false;
-        }
-
-        if (DEBUG_SCHEDULING) {
-            Slog.i(TAG, "Beginning scheduled full backup operation");
-        }
-
-        // Great; we're able to run full backup jobs now.  See if we have any work to do.
-        synchronized (mQueueLock) {
-            if (mRunningFullBackupTask != null) {
-                Slog.e(TAG, "Backup triggered but one already/still running!");
-                return false;
-            }
-
-            // At this point we think that we have work to do, but possibly not right now.
-            // Any exit without actually running backups will also require that we
-            // reschedule the job.
-            boolean runBackup = true;
-            boolean headBusy;
-
-            do {
-                // Recheck each time, because culling due to ineligibility may
-                // have emptied the queue.
-                if (mFullBackupQueue.size() == 0) {
-                    // no work to do so just bow out
-                    if (DEBUG) {
-                        Slog.i(TAG, "Backup queue empty; doing nothing");
-                    }
-                    runBackup = false;
-                    break;
-                }
-
-                headBusy = false;
-
-                String transportName = mTransportManager.getCurrentTransportName();
-                if (!fullBackupAllowable(transportName)) {
-                    if (MORE_DEBUG) {
-                        Slog.i(TAG, "Preconditions not met; not running full backup");
-                    }
-                    runBackup = false;
-                    // Typically this means we haven't run a key/value backup yet.  Back off
-                    // full-backup operations by the key/value job's run interval so that
-                    // next time we run, we are likely to be able to make progress.
-                    latency = keyValueBackupInterval;
-                }
-
-                if (runBackup) {
-                    entry = mFullBackupQueue.get(0);
-                    long timeSinceRun = now - entry.lastBackup;
-                    runBackup = (timeSinceRun >= fullBackupInterval);
-                    if (!runBackup) {
-                        // It's too early to back up the next thing in the queue, so bow out
-                        if (MORE_DEBUG) {
-                            Slog.i(TAG, "Device ready but too early to back up next app");
-                        }
-                        // Wait until the next app in the queue falls due for a full data backup
-                        latency = fullBackupInterval - timeSinceRun;
-                        break;  // we know we aren't doing work yet, so bail.
-                    }
-
-                    try {
-                        PackageInfo appInfo = mPackageManager.getPackageInfo(entry.packageName, 0);
-                        if (!AppBackupUtils.appGetsFullBackup(appInfo)) {
-                            // The head app isn't supposed to get full-data backups [any more];
-                            // so we cull it and force a loop around to consider the new head
-                            // app.
-                            if (MORE_DEBUG) {
-                                Slog.i(TAG, "Culling package " + entry.packageName
-                                        + " in full-backup queue but not eligible");
-                            }
-                            mFullBackupQueue.remove(0);
-                            headBusy = true; // force the while() condition
-                            continue;
-                        }
-
-                        final int privFlags = appInfo.applicationInfo.privateFlags;
-                        headBusy = (privFlags & PRIVATE_FLAG_BACKUP_IN_FOREGROUND) == 0
-                                && mActivityManager.isAppForeground(appInfo.applicationInfo.uid);
-
-                        if (headBusy) {
-                            final long nextEligible = System.currentTimeMillis()
-                                    + BUSY_BACKOFF_MIN_MILLIS
-                                    + mTokenGenerator.nextInt(BUSY_BACKOFF_FUZZ);
-                            if (DEBUG_SCHEDULING) {
-                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                                Slog.i(TAG, "Full backup time but " + entry.packageName
-                                        + " is busy; deferring to "
-                                        + sdf.format(new Date(nextEligible)));
-                            }
-                            // This relocates the app's entry from the head of the queue to
-                            // its order-appropriate position further down, so upon looping
-                            // a new candidate will be considered at the head.
-                            enqueueFullBackup(entry.packageName, nextEligible - fullBackupInterval);
-                        }
-                    } catch (NameNotFoundException nnf) {
-                        // So, we think we want to back this up, but it turns out the package
-                        // in question is no longer installed.  We want to drop it from the
-                        // queue entirely and move on, but if there's nothing else in the queue
-                        // we should bail entirely.  headBusy cannot have been set to true yet.
-                        runBackup = (mFullBackupQueue.size() > 1);
-                    } catch (RemoteException e) {
-                        // Cannot happen; the Activity Manager is in the same process
-                    }
-                }
-            } while (headBusy);
-
-            if (!runBackup) {
-                if (DEBUG_SCHEDULING) {
-                    Slog.i(TAG, "Nothing pending full backup; rescheduling +" + latency);
-                }
-                final long deferTime = latency;     // pin for the closure
-                mBackupHandler.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        FullBackupJob.schedule(mContext, deferTime, mConstants);
-                    }
-                });
-                return false;
-            }
-
-            // Okay, the top thing is ready for backup now.  Do it.
-            mFullBackupQueue.remove(0);
-            CountDownLatch latch = new CountDownLatch(1);
-            String[] pkg = new String[]{entry.packageName};
-            mRunningFullBackupTask = PerformFullTransportBackupTask.newWithCurrentTransport(
-                    this,
-                    /* observer */ null,
-                    pkg,
-                    /* updateSchedule */ true,
-                    scheduledJob,
-                    latch,
-                    /* backupObserver */ null,
-                    /* monitor */ null,
-                    /* userInitiated */ false,
-                    "BMS.beginFullBackup()");
-            // Acquiring wakelock for PerformFullTransportBackupTask before its start.
-            mWakelock.acquire();
-            (new Thread(mRunningFullBackupTask)).start();
-        }
-
-        return true;
-    }
-
-    /**
-     * The job scheduler says our constraints don't hold anymore, so tear down any ongoing backup
-     * task right away.
-     */
-    public void endFullBackup() {
-        // offload the mRunningFullBackupTask.handleCancel() call to another thread,
-        // as we might have to wait for mCancelLock
-        Runnable endFullBackupRunnable = new Runnable() {
-            @Override
-            public void run() {
-                PerformFullTransportBackupTask pftbt = null;
-                synchronized (mQueueLock) {
-                    if (mRunningFullBackupTask != null) {
-                        pftbt = mRunningFullBackupTask;
-                    }
-                }
-                if (pftbt != null) {
-                    if (DEBUG_SCHEDULING) {
-                        Slog.i(TAG, "Telling running backup to stop");
-                    }
-                    pftbt.handleCancel(true);
-                }
-            }
-        };
-        new Thread(endFullBackupRunnable, "end-full-backup").start();
-    }
-
-    /** Used by both incremental and full restore to restore widget data. */
-    public void restoreWidgetData(String packageName, byte[] widgetData) {
-        // Apply the restored widget state and generate the ID update for the app
-        // TODO: http://b/22388012
-        if (MORE_DEBUG) {
-            Slog.i(TAG, "Incorporating restored widget data");
-        }
-        AppWidgetBackupBridge.restoreWidgetState(packageName, widgetData, UserHandle.USER_SYSTEM);
-    }
-
-    // *****************************
-    // NEW UNIFIED RESTORE IMPLEMENTATION
-    // *****************************
-
-    /** Schedule a backup pass for {@code packageName}. */
-    public void dataChangedImpl(String packageName) {
-        HashSet<String> targets = dataChangedTargets(packageName);
-        dataChangedImpl(packageName, targets);
-    }
-
-    private void dataChangedImpl(String packageName, HashSet<String> targets) {
-        // Record that we need a backup pass for the caller.  Since multiple callers
-        // may share a uid, we need to note all candidates within that uid and schedule
-        // a backup pass for each of them.
-        if (targets == null) {
-            Slog.w(TAG, "dataChanged but no participant pkg='" + packageName + "'"
-                    + " uid=" + Binder.getCallingUid());
-            return;
-        }
-
-        synchronized (mQueueLock) {
-            // Note that this client has made data changes that need to be backed up
-            if (targets.contains(packageName)) {
-                // Add the caller to the set of pending backups.  If there is
-                // one already there, then overwrite it, but no harm done.
-                BackupRequest req = new BackupRequest(packageName);
-                if (mPendingBackups.put(packageName, req) == null) {
-                    if (MORE_DEBUG) Slog.d(TAG, "Now staging backup of " + packageName);
-
-                    // Journal this request in case of crash.  The put()
-                    // operation returned null when this package was not already
-                    // in the set; we want to avoid touching the disk redundantly.
-                    writeToJournalLocked(packageName);
-                }
-            }
-        }
-
-        // ...and schedule a backup pass if necessary
-        KeyValueBackupJob.schedule(mContext, mConstants);
-    }
-
-    // Note: packageName is currently unused, but may be in the future
-    private HashSet<String> dataChangedTargets(String packageName) {
-        // If the caller does not hold the BACKUP permission, it can only request a
-        // backup of its own data.
-        if ((mContext.checkPermission(android.Manifest.permission.BACKUP, Binder.getCallingPid(),
-                Binder.getCallingUid())) == PackageManager.PERMISSION_DENIED) {
-            synchronized (mBackupParticipants) {
-                return mBackupParticipants.get(Binder.getCallingUid());
-            }
-        }
-
-        // a caller with full permission can ask to back up any participating app
-        if (PACKAGE_MANAGER_SENTINEL.equals(packageName)) {
-            return Sets.newHashSet(PACKAGE_MANAGER_SENTINEL);
-        } else {
-            synchronized (mBackupParticipants) {
-                return SparseArrayUtils.union(mBackupParticipants);
-            }
-        }
-    }
-
-    private void writeToJournalLocked(String str) {
-        try {
-            if (mJournal == null) mJournal = DataChangedJournal.newJournal(mJournalDir);
-            mJournal.addPackage(str);
-        } catch (IOException e) {
-            Slog.e(TAG, "Can't write " + str + " to backup journal", e);
-            mJournal = null;
-        }
-    }
-
-    // ----- IBackupManager binder interface -----
-
-    /** Sent from an app's backup agent to let the service know that there's new data to backup. */
-    public void dataChanged(final String packageName) {
-        final int callingUserHandle = UserHandle.getCallingUserId();
-        if (callingUserHandle != UserHandle.USER_SYSTEM) {
-            // TODO: http://b/22388012
-            // App is running under a non-owner user profile.  For now, we do not back
-            // up data from secondary user profiles.
-            // TODO: backups for all user profiles although don't add backup for profiles
-            // without adding admin control in DevicePolicyManager.
-            if (MORE_DEBUG) {
-                Slog.v(TAG, "dataChanged(" + packageName + ") ignored because it's user "
-                        + callingUserHandle);
-            }
-            return;
-        }
-
-        final HashSet<String> targets = dataChangedTargets(packageName);
-        if (targets == null) {
-            Slog.w(TAG, "dataChanged but no participant pkg='" + packageName + "'"
-                    + " uid=" + Binder.getCallingUid());
-            return;
-        }
-
-        mBackupHandler.post(new Runnable() {
-            public void run() {
-                dataChangedImpl(packageName, targets);
-            }
-        });
-    }
-
-    /** Run an initialize operation for the given transport. */
+    /** Run an initialize operation for the given transports {@code transportNames}. */
     public void initializeTransports(String[] transportNames, IBackupObserver observer) {
-        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP,
-                "initializeTransport");
-        Slog.v(TAG, "initializeTransport(): " + Arrays.asList(transportNames));
-
-        final long oldId = Binder.clearCallingIdentity();
-        try {
-            mWakelock.acquire();
-            OnTaskFinishedListener listener = caller -> mWakelock.release();
-            mBackupHandler.post(
-                    new PerformInitializeTask(this, transportNames, observer, listener));
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
+        mUserBackupManagerService.initializeTransports(transportNames, observer);
     }
 
-    /** Clear the given package's backup data from the current transport. */
+    /**
+     * Clear the given package {@code packageName}'s backup data from the transport {@code
+     * transportName}.
+     */
     public void clearBackupData(String transportName, String packageName) {
-        if (DEBUG) Slog.v(TAG, "clearBackupData() of " + packageName + " on " + transportName);
-        PackageInfo info;
-        try {
-            info = mPackageManager.getPackageInfo(packageName,
-                    PackageManager.GET_SIGNING_CERTIFICATES);
-        } catch (NameNotFoundException e) {
-            Slog.d(TAG, "No such package '" + packageName + "' - not clearing backup data");
-            return;
-        }
-
-        // If the caller does not hold the BACKUP permission, it can only request a
-        // wipe of its own backed-up data.
-        Set<String> apps;
-        if ((mContext.checkPermission(android.Manifest.permission.BACKUP, Binder.getCallingPid(),
-                Binder.getCallingUid())) == PackageManager.PERMISSION_DENIED) {
-            apps = mBackupParticipants.get(Binder.getCallingUid());
-        } else {
-            // a caller with full permission can ask to back up any participating app
-            // !!! TODO: allow data-clear of ANY app?
-            if (MORE_DEBUG) Slog.v(TAG, "Privileged caller, allowing clear of other apps");
-            apps = mProcessedPackagesJournal.getPackagesCopy();
-        }
-
-        if (apps.contains(packageName)) {
-            // found it; fire off the clear request
-            if (MORE_DEBUG) Slog.v(TAG, "Found the app - running clear process");
-            mBackupHandler.removeMessages(MSG_RETRY_CLEAR);
-            synchronized (mQueueLock) {
-                TransportClient transportClient =
-                        mTransportManager
-                                .getTransportClient(transportName, "BMS.clearBackupData()");
-                if (transportClient == null) {
-                    // transport is currently unregistered -- make sure to retry
-                    Message msg = mBackupHandler.obtainMessage(MSG_RETRY_CLEAR,
-                            new ClearRetryParams(transportName, packageName));
-                    mBackupHandler.sendMessageDelayed(msg, TRANSPORT_RETRY_INTERVAL);
-                    return;
-                }
-                long oldId = Binder.clearCallingIdentity();
-                OnTaskFinishedListener listener =
-                        caller ->
-                                mTransportManager.disposeOfTransportClient(transportClient, caller);
-                mWakelock.acquire();
-                Message msg = mBackupHandler.obtainMessage(
-                        MSG_RUN_CLEAR,
-                        new ClearParams(transportClient, info, listener));
-                mBackupHandler.sendMessage(msg);
-                Binder.restoreCallingIdentity(oldId);
-            }
-        }
+        mUserBackupManagerService.clearBackupData(transportName, packageName);
     }
 
-    /**
-     * Run a backup pass immediately for any applications that have declared that they have pending
-     * updates.
-     */
-    public void backupNow() {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, "backupNow");
-
-        long oldId = Binder.clearCallingIdentity();
-        try {
-            final PowerSaveState result =
-                    mPowerManager.getPowerSaveState(ServiceType.KEYVALUE_BACKUP);
-            if (result.batterySaverEnabled) {
-                if (DEBUG) Slog.v(TAG, "Not running backup while in battery save mode");
-                KeyValueBackupJob.schedule(mContext, mConstants);   // try again in several hours
-            } else {
-                if (DEBUG) Slog.v(TAG, "Scheduling immediate backup pass");
-                synchronized (mQueueLock) {
-                    // Fire the intent that kicks off the whole shebang...
-                    try {
-                        mRunBackupIntent.send();
-                    } catch (PendingIntent.CanceledException e) {
-                        // should never happen
-                        Slog.e(TAG, "run-backup intent cancelled!");
-                    }
-
-                    // ...and cancel any pending scheduled job, because we've just superseded it
-                    KeyValueBackupJob.cancel(mContext);
-                }
-            }
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
-    }
-
-    /** Returns {@code true} if the system user has gone through SUW. */
-    public boolean deviceIsProvisioned() {
-        final ContentResolver resolver = mContext.getContentResolver();
-        return (Settings.Global.getInt(resolver, Settings.Global.DEVICE_PROVISIONED, 0) != 0);
-    }
-
-    /**
-     * Used by 'adb backup' to run a backup pass for packages supplied via the command line, writing
-     * the resulting data stream to the supplied {@code fd}. This method is synchronous and does not
-     * return to the caller until the backup has been completed. It requires on-screen confirmation
-     * by the user.
-     */
-    public void adbBackup(ParcelFileDescriptor fd, boolean includeApks, boolean includeObbs,
-            boolean includeShared, boolean doWidgets, boolean doAllApps, boolean includeSystem,
-            boolean compress, boolean doKeyValue, String[] pkgList) {
-        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "adbBackup");
-
-        final int callingUserHandle = UserHandle.getCallingUserId();
-        // TODO: http://b/22388012
-        if (callingUserHandle != UserHandle.USER_SYSTEM) {
-            throw new IllegalStateException("Backup supported only for the device owner");
-        }
-
-        // Validate
-        if (!doAllApps) {
-            if (!includeShared) {
-                // If we're backing up shared data (sdcard or equivalent), then we can run
-                // without any supplied app names.  Otherwise, we'd be doing no work, so
-                // report the error.
-                if (pkgList == null || pkgList.length == 0) {
-                    throw new IllegalArgumentException(
-                            "Backup requested but neither shared nor any apps named");
-                }
-            }
-        }
-
-        long oldId = Binder.clearCallingIdentity();
-        try {
-            // Doesn't make sense to do a full backup prior to setup
-            if (!deviceIsProvisioned()) {
-                Slog.i(TAG, "Backup not supported before setup");
-                return;
-            }
-
-            if (DEBUG) {
-                Slog.v(TAG, "Requesting backup: apks=" + includeApks + " obb=" + includeObbs
-                        + " shared=" + includeShared + " all=" + doAllApps + " system="
-                        + includeSystem + " includekeyvalue=" + doKeyValue + " pkgs=" + pkgList);
-            }
-            Slog.i(TAG, "Beginning adb backup...");
-
-            AdbBackupParams params = new AdbBackupParams(fd, includeApks, includeObbs,
-                    includeShared, doWidgets, doAllApps, includeSystem, compress, doKeyValue,
-                    pkgList);
-            final int token = generateRandomIntegerToken();
-            synchronized (mAdbBackupRestoreConfirmations) {
-                mAdbBackupRestoreConfirmations.put(token, params);
-            }
-
-            // start up the confirmation UI
-            if (DEBUG) Slog.d(TAG, "Starting backup confirmation UI, token=" + token);
-            if (!startConfirmationUi(token, FullBackup.FULL_BACKUP_INTENT_ACTION)) {
-                Slog.e(TAG, "Unable to launch backup confirmation UI");
-                mAdbBackupRestoreConfirmations.delete(token);
-                return;
-            }
-
-            // make sure the screen is lit for the user interaction
-            mPowerManager.userActivity(SystemClock.uptimeMillis(),
-                    PowerManager.USER_ACTIVITY_EVENT_OTHER,
-                    0);
-
-            // start the confirmation countdown
-            startConfirmationTimeout(token, params);
-
-            // wait for the backup to be performed
-            if (DEBUG) Slog.d(TAG, "Waiting for backup completion...");
-            waitForCompletion(params);
-        } finally {
-            try {
-                fd.close();
-            } catch (IOException e) {
-                Slog.e(TAG, "IO error closing output for adb backup: " + e.getMessage());
-            }
-            Binder.restoreCallingIdentity(oldId);
-            Slog.d(TAG, "Adb backup processing complete.");
-        }
-    }
-
-    /** Run a full backup pass for the given packages. Used by 'adb shell bmgr'. */
-    public void fullTransportBackup(String[] pkgNames) {
-        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP,
-                "fullTransportBackup");
-
-        final int callingUserHandle = UserHandle.getCallingUserId();
-        // TODO: http://b/22388012
-        if (callingUserHandle != UserHandle.USER_SYSTEM) {
-            throw new IllegalStateException("Restore supported only for the device owner");
-        }
-
-        String transportName = mTransportManager.getCurrentTransportName();
-        if (!fullBackupAllowable(transportName)) {
-            Slog.i(TAG, "Full backup not currently possible -- key/value backup not yet run?");
-        } else {
-            if (DEBUG) {
-                Slog.d(TAG, "fullTransportBackup()");
-            }
-
-            final long oldId = Binder.clearCallingIdentity();
-            try {
-                CountDownLatch latch = new CountDownLatch(1);
-                Runnable task = PerformFullTransportBackupTask.newWithCurrentTransport(
-                        this,
-                        /* observer */ null,
-                        pkgNames,
-                        /* updateSchedule */ false,
-                        /* runningJob */ null,
-                        latch,
-                        /* backupObserver */ null,
-                        /* monitor */ null,
-                        /* userInitiated */ false,
-                        "BMS.fullTransportBackup()");
-                // Acquiring wakelock for PerformFullTransportBackupTask before its start.
-                mWakelock.acquire();
-                (new Thread(task, "full-transport-master")).start();
-                do {
-                    try {
-                        latch.await();
-                        break;
-                    } catch (InterruptedException e) {
-                        // Just go back to waiting for the latch to indicate completion
-                    }
-                } while (true);
-
-                // We just ran a backup on these packages, so kick them to the end of the queue
-                final long now = System.currentTimeMillis();
-                for (String pkg : pkgNames) {
-                    enqueueFullBackup(pkg, now);
-                }
-            } finally {
-                Binder.restoreCallingIdentity(oldId);
-            }
-        }
-
-        if (DEBUG) {
-            Slog.d(TAG, "Done with full transport backup.");
-        }
-    }
-
-    /**
-     * Used by 'adb restore' to run a restore pass, blocking until completion. Requires user
-     * confirmation.
-     */
-    public void adbRestore(ParcelFileDescriptor fd) {
-        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "adbRestore");
-
-        final int callingUserHandle = UserHandle.getCallingUserId();
-        // TODO: http://b/22388012
-        if (callingUserHandle != UserHandle.USER_SYSTEM) {
-            throw new IllegalStateException("Restore supported only for the device owner");
-        }
-
-        long oldId = Binder.clearCallingIdentity();
-
-        try {
-            // Check whether the device has been provisioned -- we don't handle
-            // full restores prior to completing the setup process.
-            if (!deviceIsProvisioned()) {
-                Slog.i(TAG, "Full restore not permitted before setup");
-                return;
-            }
-
-            Slog.i(TAG, "Beginning restore...");
-
-            AdbRestoreParams params = new AdbRestoreParams(fd);
-            final int token = generateRandomIntegerToken();
-            synchronized (mAdbBackupRestoreConfirmations) {
-                mAdbBackupRestoreConfirmations.put(token, params);
-            }
-
-            // start up the confirmation UI
-            if (DEBUG) Slog.d(TAG, "Starting restore confirmation UI, token=" + token);
-            if (!startConfirmationUi(token, FullBackup.FULL_RESTORE_INTENT_ACTION)) {
-                Slog.e(TAG, "Unable to launch restore confirmation");
-                mAdbBackupRestoreConfirmations.delete(token);
-                return;
-            }
-
-            // make sure the screen is lit for the user interaction
-            mPowerManager.userActivity(SystemClock.uptimeMillis(),
-                    PowerManager.USER_ACTIVITY_EVENT_OTHER,
-                    0);
-
-            // start the confirmation countdown
-            startConfirmationTimeout(token, params);
-
-            // wait for the restore to be performed
-            if (DEBUG) Slog.d(TAG, "Waiting for restore completion...");
-            waitForCompletion(params);
-        } finally {
-            try {
-                fd.close();
-            } catch (IOException e) {
-                Slog.w(TAG, "Error trying to close fd after adb restore: " + e);
-            }
-            Binder.restoreCallingIdentity(oldId);
-            Slog.i(TAG, "adb restore processing complete.");
-        }
-    }
-
-    private boolean startConfirmationUi(int token, String action) {
-        try {
-            Intent confIntent = new Intent(action);
-            confIntent.setClassName("com.android.backupconfirm",
-                    "com.android.backupconfirm.BackupRestoreConfirmation");
-            confIntent.putExtra(FullBackup.CONF_TOKEN_INTENT_EXTRA, token);
-            confIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-            mContext.startActivityAsUser(confIntent, UserHandle.SYSTEM);
-        } catch (ActivityNotFoundException e) {
-            return false;
-        }
-        return true;
-    }
-
-    private void startConfirmationTimeout(int token, AdbParams params) {
-        if (MORE_DEBUG) {
-            Slog.d(TAG, "Posting conf timeout msg after "
-                    + TIMEOUT_FULL_CONFIRMATION + " millis");
-        }
-        Message msg = mBackupHandler.obtainMessage(MSG_FULL_CONFIRMATION_TIMEOUT,
-                token, 0, params);
-        mBackupHandler.sendMessageDelayed(msg, TIMEOUT_FULL_CONFIRMATION);
-    }
-
-    private void waitForCompletion(AdbParams params) {
-        synchronized (params.latch) {
-            while (!params.latch.get()) {
-                try {
-                    params.latch.wait();
-                } catch (InterruptedException e) { /* never interrupted */ }
-            }
-        }
-    }
-
-    /** Called when adb backup/restore has completed. */
-    public void signalAdbBackupRestoreCompletion(AdbParams params) {
-        synchronized (params.latch) {
-            params.latch.set(true);
-            params.latch.notifyAll();
-        }
-    }
-
-    /**
-     * Confirm that the previously-requested full backup/restore operation can proceed. This is used
-     * to require a user-facing disclosure about the operation.
-     */
-    public void acknowledgeAdbBackupOrRestore(int token, boolean allow,
-            String curPassword, String encPpassword, IFullBackupRestoreObserver observer) {
-        if (DEBUG) {
-            Slog.d(TAG, "acknowledgeAdbBackupOrRestore : token=" + token
-                    + " allow=" + allow);
-        }
-
-        // TODO: possibly require not just this signature-only permission, but even
-        // require that the specific designated confirmation-UI app uid is the caller?
-        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP,
-                "acknowledgeAdbBackupOrRestore");
-
-        long oldId = Binder.clearCallingIdentity();
-        try {
-
-            AdbParams params;
-            synchronized (mAdbBackupRestoreConfirmations) {
-                params = mAdbBackupRestoreConfirmations.get(token);
-                if (params != null) {
-                    mBackupHandler.removeMessages(MSG_FULL_CONFIRMATION_TIMEOUT, params);
-                    mAdbBackupRestoreConfirmations.delete(token);
-
-                    if (allow) {
-                        final int verb = params instanceof AdbBackupParams
-                                ? MSG_RUN_ADB_BACKUP
-                                : MSG_RUN_ADB_RESTORE;
-
-                        params.observer = observer;
-                        params.curPassword = curPassword;
-
-                        params.encryptPassword = encPpassword;
-
-                        if (MORE_DEBUG) Slog.d(TAG, "Sending conf message with verb " + verb);
-                        mWakelock.acquire();
-                        Message msg = mBackupHandler.obtainMessage(verb, params);
-                        mBackupHandler.sendMessage(msg);
-                    } else {
-                        Slog.w(TAG, "User rejected full backup/restore operation");
-                        // indicate completion without having actually transferred any data
-                        signalAdbBackupRestoreCompletion(params);
-                    }
-                } else {
-                    Slog.w(TAG, "Attempted to ack full backup/restore with invalid token");
-                }
-            }
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
-    }
-
-    /** User-configurable enabling/disabling of backups. */
-    public void setBackupEnabled(boolean enable) {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "setBackupEnabled");
-
-        Slog.i(TAG, "Backup enabled => " + enable);
-
-        long oldId = Binder.clearCallingIdentity();
-        try {
-            boolean wasEnabled = mEnabled;
-            synchronized (this) {
-                writeBackupEnableState(enable, UserHandle.USER_SYSTEM);
-                mEnabled = enable;
-            }
-
-            synchronized (mQueueLock) {
-                if (enable && !wasEnabled && mProvisioned) {
-                    // if we've just been enabled, start scheduling backup passes
-                    KeyValueBackupJob.schedule(mContext, mConstants);
-                    scheduleNextFullBackupJob(0);
-                } else if (!enable) {
-                    // No longer enabled, so stop running backups
-                    if (MORE_DEBUG) Slog.i(TAG, "Opting out of backup");
-
-                    KeyValueBackupJob.cancel(mContext);
-
-                    // This also constitutes an opt-out, so we wipe any data for
-                    // this device from the backend.  We start that process with
-                    // an alarm in order to guarantee wakelock states.
-                    if (wasEnabled && mProvisioned) {
-                        // NOTE: we currently flush every registered transport, not just
-                        // the currently-active one.
-                        List<String> transportNames = new ArrayList<>();
-                        List<String> transportDirNames = new ArrayList<>();
-                        mTransportManager.forEachRegisteredTransport(
-                                name -> {
-                                    final String dirName;
-                                    try {
-                                        dirName =
-                                                mTransportManager
-                                                        .getTransportDirName(name);
-                                    } catch (TransportNotRegisteredException e) {
-                                        // Should never happen
-                                        Slog.e(TAG, "Unexpected unregistered transport", e);
-                                        return;
-                                    }
-                                    transportNames.add(name);
-                                    transportDirNames.add(dirName);
-                                });
-
-                        // build the set of transports for which we are posting an init
-                        for (int i = 0; i < transportNames.size(); i++) {
-                            recordInitPending(
-                                    true,
-                                    transportNames.get(i),
-                                    transportDirNames.get(i));
-                        }
-                        mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
-                                mRunInitIntent);
-                    }
-                }
-            }
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
-    }
-
-    /** Enable/disable automatic restore of app data at install time. */
-    public void setAutoRestore(boolean doAutoRestore) {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "setAutoRestore");
-
-        Slog.i(TAG, "Auto restore => " + doAutoRestore);
-
-        final long oldId = Binder.clearCallingIdentity();
-        try {
-            synchronized (this) {
-                Settings.Secure.putInt(mContext.getContentResolver(),
-                        Settings.Secure.BACKUP_AUTO_RESTORE, doAutoRestore ? 1 : 0);
-                mAutoRestore = doAutoRestore;
-            }
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
-    }
-
-    /** Mark the backup service as having been provisioned. */
-    public void setBackupProvisioned(boolean available) {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "setBackupProvisioned");
-        /*
-         * This is now a no-op; provisioning is simply the device's own setup state.
-         */
-    }
-
-    /** Report whether the backup mechanism is currently enabled. */
-    public boolean isBackupEnabled() {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "isBackupEnabled");
-        return mEnabled;    // no need to synchronize just to read it
-    }
-
-    /** Report the name of the currently active transport. */
+    /** Return the name of the currently active transport. */
     public String getCurrentTransport() {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "getCurrentTransport");
-        String currentTransport = mTransportManager.getCurrentTransportName();
-        if (MORE_DEBUG) Slog.v(TAG, "... getCurrentTransport() returning " + currentTransport);
-        return currentTransport;
+        return mUserBackupManagerService.getCurrentTransport();
     }
 
     /**
      * Returns the {@link ComponentName} of the host service of the selected transport or {@code
      * null} if no transport selected or if the transport selected is not registered.
      */
-    @Nullable
     public ComponentName getCurrentTransportComponent() {
-        mContext.enforceCallingOrSelfPermission(
-                android.Manifest.permission.BACKUP, "getCurrentTransportComponent");
-        long oldId = Binder.clearCallingIdentity();
-        try {
-            return mTransportManager.getCurrentTransportComponent();
-        } catch (TransportNotRegisteredException e) {
-            return null;
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
+        return mUserBackupManagerService.getCurrentTransportComponent();
     }
 
     /** Report all known, available backup transports by name. */
     public String[] listAllTransports() {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "listAllTransports");
-
-        return mTransportManager.getRegisteredTransportNames();
+        return mUserBackupManagerService.listAllTransports();
     }
 
-    /** Report all known, available backup transports by component. */
+    /** Report all known, available backup transports by {@link ComponentName}. */
     public ComponentName[] listAllTransportComponents() {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "listAllTransportComponents");
-        return mTransportManager.getRegisteredTransportComponents();
+        return mUserBackupManagerService.listAllTransportComponents();
     }
 
     /** Report all system whitelisted transports. */
     public String[] getTransportWhitelist() {
-        // No permission check, intentionally.
-        Set<ComponentName> whitelistedComponents = mTransportManager.getTransportWhitelist();
-        String[] whitelistedTransports = new String[whitelistedComponents.size()];
-        int i = 0;
-        for (ComponentName component : whitelistedComponents) {
-            whitelistedTransports[i] = component.flattenToShortString();
-            i++;
-        }
-        return whitelistedTransports;
+        return mUserBackupManagerService.getTransportWhitelist();
     }
 
     /**
@@ -2915,18 +282,17 @@
      * @param transportComponent The identity of the transport being described.
      * @param name A {@link String} with the new name for the transport. This is NOT for
      *     identification. MUST NOT be {@code null}.
-     * @param configurationIntent An {@link Intent} that can be passed to
-     *     {@link Context#startActivity} in order to launch the transport's configuration UI. It may
-     *     be {@code null} if the transport does not offer any user-facing configuration UI.
+     * @param configurationIntent An {@link Intent} that can be passed to {@link
+     *     Context#startActivity} in order to launch the transport's configuration UI. It may be
+     *     {@code null} if the transport does not offer any user-facing configuration UI.
      * @param currentDestinationString A {@link String} describing the destination to which the
      *     transport is currently sending data. MUST NOT be {@code null}.
-     * @param dataManagementIntent An {@link Intent} that can be passed to
-     *     {@link Context#startActivity} in order to launch the transport's data-management UI. It
-     *     may be {@code null} if the transport does not offer any user-facing data
-     *     management UI.
+     * @param dataManagementIntent An {@link Intent} that can be passed to {@link
+     *     Context#startActivity} in order to launch the transport's data-management UI. It may be
+     *     {@code null} if the transport does not offer any user-facing data management UI.
      * @param dataManagementLabel A {@link String} to be used as the label for the transport's data
-     *     management affordance. This MUST be {@code null} when dataManagementIntent is
-     *     {@code null} and MUST NOT be {@code null} when dataManagementIntent is not {@code null}.
+     *     management affordance. This MUST be {@code null} when dataManagementIntent is {@code
+     *     null} and MUST NOT be {@code null} when dataManagementIntent is not {@code null}.
      * @throws SecurityException If the UID of the calling process differs from the package UID of
      *     {@code transportComponent} or if the caller does NOT have BACKUP permission.
      */
@@ -2936,9 +302,8 @@
             @Nullable Intent configurationIntent,
             String currentDestinationString,
             @Nullable Intent dataManagementIntent,
-            @Nullable String dataManagementLabel) {
-        updateTransportAttributes(
-                Binder.getCallingUid(),
+            String dataManagementLabel) {
+        mUserBackupManagerService.updateTransportAttributes(
                 transportComponent,
                 name,
                 configurationIntent,
@@ -2947,73 +312,16 @@
                 dataManagementLabel);
     }
 
-    @VisibleForTesting
-    void updateTransportAttributes(
-            int callingUid,
-            ComponentName transportComponent,
-            String name,
-            @Nullable Intent configurationIntent,
-            String currentDestinationString,
-            @Nullable Intent dataManagementIntent,
-            @Nullable String dataManagementLabel) {
-        mContext.enforceCallingOrSelfPermission(
-                android.Manifest.permission.BACKUP, "updateTransportAttributes");
-
-        Preconditions.checkNotNull(transportComponent, "transportComponent can't be null");
-        Preconditions.checkNotNull(name, "name can't be null");
-        Preconditions.checkNotNull(
-                currentDestinationString, "currentDestinationString can't be null");
-        Preconditions.checkArgument(
-                (dataManagementIntent == null) == (dataManagementLabel == null),
-                "dataManagementLabel should be null iff dataManagementIntent is null");
-
-        try {
-            int transportUid =
-                    mContext.getPackageManager()
-                            .getPackageUid(transportComponent.getPackageName(), 0);
-            if (callingUid != transportUid) {
-                throw new SecurityException("Only the transport can change its description");
-            }
-        } catch (NameNotFoundException e) {
-            throw new SecurityException("Transport package not found", e);
-        }
-
-        final long oldId = Binder.clearCallingIdentity();
-        try {
-            mTransportManager.updateTransportAttributes(
-                    transportComponent,
-                    name,
-                    configurationIntent,
-                    currentDestinationString,
-                    dataManagementIntent,
-                    dataManagementLabel);
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
-    }
-
     /**
-     * Selects transport {@code transportName} and returns previously selected transport.
+     * Selects transport {@code transportName} and returns the previously selected transport.
      *
      * @deprecated Use {@link #selectBackupTransportAsync(ComponentName,
-     * ISelectBackupTransportCallback)} instead.
+     *     ISelectBackupTransportCallback)} instead.
      */
     @Deprecated
     @Nullable
     public String selectBackupTransport(String transportName) {
-        mContext.enforceCallingOrSelfPermission(
-                android.Manifest.permission.BACKUP, "selectBackupTransport");
-
-        final long oldId = Binder.clearCallingIdentity();
-        try {
-            String previousTransportName = mTransportManager.selectTransport(transportName);
-            updateStateForTransport(transportName);
-            Slog.v(TAG, "selectBackupTransport(transport = " + transportName
-                    + "): previous transport = " + previousTransportName);
-            return previousTransportName;
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
+        return mUserBackupManagerService.selectBackupTransport(transportName);
     }
 
     /**
@@ -3022,70 +330,7 @@
      */
     public void selectBackupTransportAsync(
             ComponentName transportComponent, ISelectBackupTransportCallback listener) {
-        mContext.enforceCallingOrSelfPermission(
-                android.Manifest.permission.BACKUP, "selectBackupTransportAsync");
-
-        final long oldId = Binder.clearCallingIdentity();
-        try {
-            String transportString = transportComponent.flattenToShortString();
-            Slog.v(TAG, "selectBackupTransportAsync(transport = " + transportString + ")");
-            mBackupHandler.post(
-                    () -> {
-                        String transportName = null;
-                        int result =
-                                mTransportManager.registerAndSelectTransport(transportComponent);
-                        if (result == BackupManager.SUCCESS) {
-                            try {
-                                transportName =
-                                        mTransportManager.getTransportName(transportComponent);
-                                updateStateForTransport(transportName);
-                            } catch (TransportNotRegisteredException e) {
-                                Slog.e(TAG, "Transport got unregistered");
-                                result = BackupManager.ERROR_TRANSPORT_UNAVAILABLE;
-                            }
-                        }
-
-                        try {
-                            if (transportName != null) {
-                                listener.onSuccess(transportName);
-                            } else {
-                                listener.onFailure(result);
-                            }
-                        } catch (RemoteException e) {
-                            Slog.e(TAG, "ISelectBackupTransportCallback listener not available");
-                        }
-                    });
-        } finally {
-            Binder.restoreCallingIdentity(oldId);
-        }
-    }
-
-    private void updateStateForTransport(String newTransportName) {
-        // Publish the name change
-        Settings.Secure.putString(mContext.getContentResolver(),
-                Settings.Secure.BACKUP_TRANSPORT, newTransportName);
-
-        // And update our current-dataset bookkeeping
-        String callerLogString = "BMS.updateStateForTransport()";
-        TransportClient transportClient =
-                mTransportManager.getTransportClient(newTransportName, callerLogString);
-        if (transportClient != null) {
-            try {
-                IBackupTransport transport = transportClient.connectOrThrow(callerLogString);
-                mCurrentToken = transport.getCurrentRestoreSet();
-            } catch (Exception e) {
-                // Oops.  We can't know the current dataset token, so reset and figure it out
-                // when we do the next k/v backup operation on this transport.
-                mCurrentToken = 0;
-                Slog.w(TAG, "Transport " + newTransportName + " not available: current token = 0");
-            }
-            mTransportManager.disposeOfTransportClient(transportClient, callerLogString);
-        } else {
-            Slog.w(TAG, "Transport " + newTransportName + " not registered: current token = 0");
-            // The named transport isn't registered, so we can't know what its current dataset token
-            // is. Reset as above.
-            mCurrentToken = 0;
-        }
+        mUserBackupManagerService.selectBackupTransportAsync(transportComponent, listener);
     }
 
     /**
@@ -3094,18 +339,7 @@
      * returns {@code null}.
      */
     public Intent getConfigurationIntent(String transportName) {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "getConfigurationIntent");
-        try {
-            Intent intent = mTransportManager.getTransportConfigurationIntent(transportName);
-            if (MORE_DEBUG) {
-                Slog.d(TAG, "getConfigurationIntent() returning intent " + intent);
-            }
-            return intent;
-        } catch (TransportNotRegisteredException e) {
-            Slog.e(TAG, "Unable to get configuration intent from transport: " + e.getMessage());
-            return null;
-        }
+        return mUserBackupManagerService.getConfigurationIntent(transportName);
     }
 
     /**
@@ -3118,36 +352,12 @@
      * @return The current destination string or null if the transport is not registered.
      */
     public String getDestinationString(String transportName) {
-        mContext.enforceCallingOrSelfPermission(
-                android.Manifest.permission.BACKUP, "getDestinationString");
-
-        try {
-            String string = mTransportManager.getTransportCurrentDestinationString(transportName);
-            if (MORE_DEBUG) {
-                Slog.d(TAG, "getDestinationString() returning " + string);
-            }
-            return string;
-        } catch (TransportNotRegisteredException e) {
-            Slog.e(TAG, "Unable to get destination string from transport: " + e.getMessage());
-            return null;
-        }
+        return mUserBackupManagerService.getDestinationString(transportName);
     }
 
     /** Supply the manage-data intent for the given transport. */
     public Intent getDataManagementIntent(String transportName) {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "getDataManagementIntent");
-
-        try {
-            Intent intent = mTransportManager.getTransportDataManagementIntent(transportName);
-            if (MORE_DEBUG) {
-                Slog.d(TAG, "getDataManagementIntent() returning intent " + intent);
-            }
-            return intent;
-        } catch (TransportNotRegisteredException e) {
-            Slog.e(TAG, "Unable to get management intent from transport: " + e.getMessage());
-            return null;
-        }
+        return mUserBackupManagerService.getDataManagementIntent(transportName);
     }
 
     /**
@@ -3155,443 +365,202 @@
      * transport.
      */
     public String getDataManagementLabel(String transportName) {
-        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                "getDataManagementLabel");
+        return mUserBackupManagerService.getDataManagementLabel(transportName);
+    }
 
-        try {
-            String label = mTransportManager.getTransportDataManagementLabel(transportName);
-            if (MORE_DEBUG) {
-                Slog.d(TAG, "getDataManagementLabel() returning " + label);
-            }
-            return label;
-        } catch (TransportNotRegisteredException e) {
-            Slog.e(TAG, "Unable to get management label from transport: " + e.getMessage());
-            return null;
-        }
+    // ---------------------------------------------
+    // SETTINGS OPERATIONS
+    // ---------------------------------------------
+
+    /** Enable/disable the backup service. This is user-configurable via backup settings. */
+    public void setBackupEnabled(boolean enable) {
+        mUserBackupManagerService.setBackupEnabled(enable);
+    }
+
+    /** Enable/disable automatic restore of app data at install time. */
+    public void setAutoRestore(boolean autoRestore) {
+        mUserBackupManagerService.setAutoRestore(autoRestore);
+    }
+
+    /** Mark the backup service as having been provisioned (device has gone through SUW). */
+    public void setBackupProvisioned(boolean provisioned) {
+        mUserBackupManagerService.setBackupProvisioned(provisioned);
     }
 
     /**
-     * Callback: a requested backup agent has been instantiated. This should only be called from the
-     * {@link ActivityManager}.
+     * Return {@code true} if the backup mechanism is currently enabled, else returns {@code false}.
      */
-    public void agentConnected(String packageName, IBinder agentBinder) {
-        synchronized (mAgentConnectLock) {
-            if (Binder.getCallingUid() == Process.SYSTEM_UID) {
-                Slog.d(TAG, "agentConnected pkg=" + packageName + " agent=" + agentBinder);
-                IBackupAgent agent = IBackupAgent.Stub.asInterface(agentBinder);
-                mConnectedAgent = agent;
-                mConnecting = false;
-            } else {
-                Slog.w(TAG, "Non-system process uid=" + Binder.getCallingUid()
-                        + " claiming agent connected");
-            }
-            mAgentConnectLock.notifyAll();
-        }
+    public boolean isBackupEnabled() {
+        return mUserBackupManagerService.isBackupEnabled();
+    }
+
+    // ---------------------------------------------
+    // BACKUP OPERATIONS
+    // ---------------------------------------------
+
+    /** Checks if the given package {@code packageName} is eligible for backup. */
+    public boolean isAppEligibleForBackup(String packageName) {
+        return mUserBackupManagerService.isAppEligibleForBackup(packageName);
     }
 
     /**
-     * Callback: a backup agent has failed to come up, or has unexpectedly quit. If the agent failed
-     * to come up in the first place, the agentBinder argument will be {@code null}. This should
-     * only be called from the {@link ActivityManager}.
+     * Returns from the inputted packages {@code packages}, the ones that are eligible for backup.
      */
-    public void agentDisconnected(String packageName) {
-        // TODO: handle backup being interrupted
-        synchronized (mAgentConnectLock) {
-            if (Binder.getCallingUid() == Process.SYSTEM_UID) {
-                mConnectedAgent = null;
-                mConnecting = false;
-            } else {
-                Slog.w(TAG, "Non-system process uid=" + Binder.getCallingUid()
-                        + " claiming agent disconnected");
-            }
-            mAgentConnectLock.notifyAll();
-        }
+    public String[] filterAppsEligibleForBackup(String[] packages) {
+        return mUserBackupManagerService.filterAppsEligibleForBackup(packages);
     }
 
     /**
-     * An application being installed will need a restore pass, then the {@link PackageManager} will
-     * need to be told when the restore is finished.
+     * Run a backup pass immediately for any key-value backup applications that have declared that
+     * they have pending updates.
+     */
+    public void backupNow() {
+        mUserBackupManagerService.backupNow();
+    }
+
+    /**
+     * Requests a backup for the inputted {@code packages} with a specified callback {@link
+     * IBackupManagerMonitor} for receiving events during the operation.
+     */
+    public int requestBackup(
+            String[] packages, IBackupObserver observer, IBackupManagerMonitor monitor, int flags) {
+        return mUserBackupManagerService.requestBackup(packages, observer, monitor, flags);
+    }
+
+    /** Cancel all running backup operations. */
+    public void cancelBackups() {
+        mUserBackupManagerService.cancelBackups();
+    }
+
+    /**
+     * Used by the {@link JobScheduler} to run a full backup when conditions are right. The model we
+     * use is to perform one app backup per scheduled job execution, and to reschedule the job with
+     * zero latency as long as conditions remain right and we still have work to do.
+     *
+     * @return Whether ongoing work will continue. The return value here will be passed along as the
+     *     return value to the callback {@link JobService#onStartJob(JobParameters)}.
+     */
+    public boolean beginFullBackup(FullBackupJob scheduledJob) {
+        return mUserBackupManagerService.beginFullBackup(scheduledJob);
+    }
+
+    /**
+     * Used by the {@link JobScheduler} to end the current full backup task when conditions are no
+     * longer met for running the full backup job.
+     */
+    public void endFullBackup() {
+        mUserBackupManagerService.endFullBackup();
+    }
+
+    /**
+     * Run a full backup pass for the given packages {@code packageNames}. Used by 'adb shell bmgr'.
+     */
+    public void fullTransportBackup(String[] packageNames) {
+        mUserBackupManagerService.fullTransportBackup(packageNames);
+    }
+
+    // ---------------------------------------------
+    // RESTORE OPERATIONS
+    // ---------------------------------------------
+
+    /**
+     * Used to run a restore pass for an application that is being installed. This should only be
+     * called from the {@link PackageManager}.
      */
     public void restoreAtInstall(String packageName, int token) {
-        if (Binder.getCallingUid() != Process.SYSTEM_UID) {
-            Slog.w(TAG, "Non-system process uid=" + Binder.getCallingUid()
-                    + " attemping install-time restore");
-            return;
-        }
-
-        boolean skip = false;
-
-        long restoreSet = getAvailableRestoreToken(packageName);
-        if (DEBUG) {
-            Slog.v(TAG, "restoreAtInstall pkg=" + packageName
-                    + " token=" + Integer.toHexString(token)
-                    + " restoreSet=" + Long.toHexString(restoreSet));
-        }
-        if (restoreSet == 0) {
-            if (MORE_DEBUG) Slog.i(TAG, "No restore set");
-            skip = true;
-        }
-
-        TransportClient transportClient =
-                mTransportManager.getCurrentTransportClient("BMS.restoreAtInstall()");
-        if (transportClient == null) {
-            if (DEBUG) Slog.w(TAG, "No transport client");
-            skip = true;
-        }
-
-        if (!mAutoRestore) {
-            if (DEBUG) {
-                Slog.w(TAG, "Non-restorable state: auto=" + mAutoRestore);
-            }
-            skip = true;
-        }
-
-        if (!skip) {
-            try {
-                // okay, we're going to attempt a restore of this package from this restore set.
-                // The eventual message back into the Package Manager to run the post-install
-                // steps for 'token' will be issued from the restore handling code.
-
-                mWakelock.acquire();
-
-                OnTaskFinishedListener listener = caller -> {
-                    mTransportManager.disposeOfTransportClient(transportClient, caller);
-                    mWakelock.release();
-                };
-
-                if (MORE_DEBUG) {
-                    Slog.d(TAG, "Restore at install of " + packageName);
-                }
-                Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
-                msg.obj =
-                        RestoreParams.createForRestoreAtInstall(
-                                transportClient,
-                                /* observer */ null,
-                                /* monitor */ null,
-                                restoreSet,
-                                packageName,
-                                token,
-                                listener);
-                mBackupHandler.sendMessage(msg);
-            } catch (Exception e) {
-                // Calling into the transport broke; back off and proceed with the installation.
-                Slog.e(TAG, "Unable to contact transport: " + e.getMessage());
-                skip = true;
-            }
-        }
-
-        if (skip) {
-            // Auto-restore disabled or no way to attempt a restore
-
-            if (transportClient != null) {
-                mTransportManager.disposeOfTransportClient(
-                        transportClient, "BMS.restoreAtInstall()");
-            }
-
-            // Tell the PackageManager to proceed with the post-install handling for this package.
-            if (DEBUG) Slog.v(TAG, "Finishing install immediately");
-            try {
-                mPackageManagerBinder.finishPackageInstall(token, false);
-            } catch (RemoteException e) { /* can't happen */ }
-        }
-    }
-
-    /** Hand off a restore session. */
-    public IRestoreSession beginRestoreSession(String packageName, String transport) {
-        if (DEBUG) {
-            Slog.v(TAG, "beginRestoreSession: pkg=" + packageName
-                    + " transport=" + transport);
-        }
-
-        boolean needPermission = true;
-        if (transport == null) {
-            transport = mTransportManager.getCurrentTransportName();
-
-            if (packageName != null) {
-                PackageInfo app = null;
-                try {
-                    app = mPackageManager.getPackageInfo(packageName, 0);
-                } catch (NameNotFoundException nnf) {
-                    Slog.w(TAG, "Asked to restore nonexistent pkg " + packageName);
-                    throw new IllegalArgumentException("Package " + packageName + " not found");
-                }
-
-                if (app.applicationInfo.uid == Binder.getCallingUid()) {
-                    // So: using the current active transport, and the caller has asked
-                    // that its own package will be restored.  In this narrow use case
-                    // we do not require the caller to hold the permission.
-                    needPermission = false;
-                }
-            }
-        }
-
-        if (needPermission) {
-            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
-                    "beginRestoreSession");
-        } else {
-            if (DEBUG) Slog.d(TAG, "restoring self on current transport; no permission needed");
-        }
-
-        synchronized (this) {
-            if (mActiveRestoreSession != null) {
-                Slog.i(TAG, "Restore session requested but one already active");
-                return null;
-            }
-            if (mBackupRunning) {
-                Slog.i(TAG, "Restore session requested but currently running backups");
-                return null;
-            }
-            mActiveRestoreSession = new ActiveRestoreSession(this, packageName, transport);
-            mBackupHandler.sendEmptyMessageDelayed(MSG_RESTORE_SESSION_TIMEOUT,
-                    mAgentTimeoutParameters.getRestoreAgentTimeoutMillis());
-        }
-        return mActiveRestoreSession;
-    }
-
-    /** Clear the specified restore session. */
-    public void clearRestoreSession(ActiveRestoreSession currentSession) {
-        synchronized (this) {
-            if (currentSession != mActiveRestoreSession) {
-                Slog.e(TAG, "ending non-current restore session");
-            } else {
-                if (DEBUG) Slog.v(TAG, "Clearing restore session and halting timeout");
-                mActiveRestoreSession = null;
-                mBackupHandler.removeMessages(MSG_RESTORE_SESSION_TIMEOUT);
-            }
-        }
+        mUserBackupManagerService.restoreAtInstall(packageName, token);
     }
 
     /**
-     * Note that a currently-active backup agent has notified us that it has completed the given
-     * outstanding asynchronous backup/restore operation.
+     * Begin a restore for the specified package {@code packageName} using the specified transport
+     * {@code transportName}.
      */
-    public void opComplete(int token, long result) {
-        if (MORE_DEBUG) {
-            Slog.v(TAG, "opComplete: " + Integer.toHexString(token) + " result=" + result);
-        }
-        Operation op = null;
-        synchronized (mCurrentOpLock) {
-            op = mCurrentOperations.get(token);
-            if (op != null) {
-                if (op.state == OP_TIMEOUT) {
-                    // The operation already timed out, and this is a late response.  Tidy up
-                    // and ignore it; we've already dealt with the timeout.
-                    op = null;
-                    mCurrentOperations.delete(token);
-                } else if (op.state == OP_ACKNOWLEDGED) {
-                    if (DEBUG) {
-                        Slog.w(TAG, "Received duplicate ack for token="
-                                + Integer.toHexString(token));
-                    }
-                    op = null;
-                    mCurrentOperations.remove(token);
-                } else if (op.state == OP_PENDING) {
-                    // Can't delete op from mCurrentOperations. waitUntilOperationComplete can be
-                    // called after we we receive this call.
-                    op.state = OP_ACKNOWLEDGED;
-                }
-            }
-            mCurrentOpLock.notifyAll();
-        }
-
-        // The completion callback, if any, is invoked on the handler
-        if (op != null && op.callback != null) {
-            Pair<BackupRestoreTask, Long> callbackAndResult = Pair.create(op.callback, result);
-            Message msg = mBackupHandler.obtainMessage(MSG_OP_COMPLETE, callbackAndResult);
-            mBackupHandler.sendMessage(msg);
-        }
+    public IRestoreSession beginRestoreSession(String packageName, String transportName) {
+        return mUserBackupManagerService.beginRestoreSession(packageName, transportName);
     }
 
-    /** Checks if the package is eligible for backup. */
-    public boolean isAppEligibleForBackup(String packageName) {
-        mContext.enforceCallingOrSelfPermission(
-                android.Manifest.permission.BACKUP, "isAppEligibleForBackup");
-
-        long oldToken = Binder.clearCallingIdentity();
-        try {
-            String callerLogString = "BMS.isAppEligibleForBackup";
-            TransportClient transportClient =
-                    mTransportManager.getCurrentTransportClient(callerLogString);
-            boolean eligible =
-                    AppBackupUtils.appIsRunningAndEligibleForBackupWithTransport(
-                            transportClient, packageName, mPackageManager);
-            if (transportClient != null) {
-                mTransportManager.disposeOfTransportClient(transportClient, callerLogString);
-            }
-            return eligible;
-        } finally {
-            Binder.restoreCallingIdentity(oldToken);
-        }
+    /**
+     * Get the restore-set token for the best-available restore set for this {@code packageName}:
+     * the active set if possible, else the ancestral one. Returns zero if none available.
+     */
+    public long getAvailableRestoreToken(String packageName) {
+        return mUserBackupManagerService.getAvailableRestoreToken(packageName);
     }
 
-    /** Returns the inputted packages that are eligible for backup. */
-    public String[] filterAppsEligibleForBackup(String[] packages) {
-        mContext.enforceCallingOrSelfPermission(
-                android.Manifest.permission.BACKUP, "filterAppsEligibleForBackup");
+    // ---------------------------------------------
+    // ADB BACKUP/RESTORE OPERATIONS
+    // ---------------------------------------------
 
-        long oldToken = Binder.clearCallingIdentity();
-        try {
-            String callerLogString = "BMS.filterAppsEligibleForBackup";
-            TransportClient transportClient =
-                    mTransportManager.getCurrentTransportClient(callerLogString);
-            List<String> eligibleApps = new LinkedList<>();
-            for (String packageName : packages) {
-                if (AppBackupUtils
-                        .appIsRunningAndEligibleForBackupWithTransport(
-                                transportClient, packageName, mPackageManager)) {
-                    eligibleApps.add(packageName);
-                }
-            }
-            if (transportClient != null) {
-                mTransportManager.disposeOfTransportClient(transportClient, callerLogString);
-            }
-            return eligibleApps.toArray(new String[eligibleApps.size()]);
-        } finally {
-            Binder.restoreCallingIdentity(oldToken);
-        }
+    /** Sets the backup password used when running adb backup. */
+    public boolean setBackupPassword(String currentPassword, String newPassword) {
+        return mUserBackupManagerService.setBackupPassword(currentPassword, newPassword);
     }
 
+    /** Returns {@code true} if adb backup was run with a password, else returns {@code false}. */
+    public boolean hasBackupPassword() {
+        return mUserBackupManagerService.hasBackupPassword();
+    }
+
+    /**
+     * Used by 'adb backup' to run a backup pass for packages {@code packageNames} supplied via the
+     * command line, writing the resulting data stream to the supplied {@code fd}. This method is
+     * synchronous and does not return to the caller until the backup has been completed. It
+     * requires on-screen confirmation by the user.
+     */
+    public void adbBackup(
+            ParcelFileDescriptor fd,
+            boolean includeApks,
+            boolean includeObbs,
+            boolean includeShared,
+            boolean doWidgets,
+            boolean doAllApps,
+            boolean includeSystem,
+            boolean doCompress,
+            boolean doKeyValue,
+            String[] packageNames) {
+        mUserBackupManagerService.adbBackup(
+                fd,
+                includeApks,
+                includeObbs,
+                includeShared,
+                doWidgets,
+                doAllApps,
+                includeSystem,
+                doCompress,
+                doKeyValue,
+                packageNames);
+    }
+
+    /**
+     * Used by 'adb restore' to run a restore pass reading from the supplied {@code fd}. This method
+     * is synchronous and does not return to the caller until the restore has been completed. It
+     * requires on-screen confirmation by the user.
+     */
+    public void adbRestore(ParcelFileDescriptor fd) {
+        mUserBackupManagerService.adbRestore(fd);
+    }
+
+    /**
+     * Confirm that the previously requested adb backup/restore operation can proceed. This is used
+     * to require a user-facing disclosure about the operation.
+     */
+    public void acknowledgeAdbBackupOrRestore(
+            int token,
+            boolean allow,
+            String currentPassword,
+            String encryptionPassword,
+            IFullBackupRestoreObserver observer) {
+        mUserBackupManagerService.acknowledgeAdbBackupOrRestore(
+                token, allow, currentPassword, encryptionPassword, observer);
+    }
+
+    // ---------------------------------------------
+    //  SERVICE OPERATIONS
+    // ---------------------------------------------
+
     /** Prints service state for 'dumpsys backup'. */
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
-        if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, TAG, pw)) return;
-
-        long identityToken = Binder.clearCallingIdentity();
-        try {
-            if (args != null) {
-                for (String arg : args) {
-                    if ("-h".equals(arg)) {
-                        pw.println("'dumpsys backup' optional arguments:");
-                        pw.println("  -h       : this help text");
-                        pw.println("  a[gents] : dump information about defined backup agents");
-                        return;
-                    } else if ("agents".startsWith(arg)) {
-                        dumpAgents(pw);
-                        return;
-                    } else if ("transportclients".equals(arg.toLowerCase())) {
-                        mTransportManager.dumpTransportClients(pw);
-                        return;
-                    } else if ("transportstats".equals(arg.toLowerCase())) {
-                        mTransportManager.dumpTransportStats(pw);
-                        return;
-                    }
-                }
-            }
-            dumpInternal(pw);
-        } finally {
-            Binder.restoreCallingIdentity(identityToken);
-        }
-    }
-
-    private void dumpAgents(PrintWriter pw) {
-        List<PackageInfo> agentPackages = allAgentPackages();
-        pw.println("Defined backup agents:");
-        for (PackageInfo pkg : agentPackages) {
-            pw.print("  ");
-            pw.print(pkg.packageName);
-            pw.println(':');
-            pw.print("      ");
-            pw.println(pkg.applicationInfo.backupAgentName);
-        }
-    }
-
-    private void dumpInternal(PrintWriter pw) {
-        synchronized (mQueueLock) {
-            pw.println("Backup Manager is " + (mEnabled ? "enabled" : "disabled")
-                    + " / " + (!mProvisioned ? "not " : "") + "provisioned / "
-                    + (this.mPendingInits.size() == 0 ? "not " : "") + "pending init");
-            pw.println("Auto-restore is " + (mAutoRestore ? "enabled" : "disabled"));
-            if (mBackupRunning) pw.println("Backup currently running");
-            pw.println(isBackupOperationInProgress() ? "Backup in progress" : "No backups running");
-            pw.println("Last backup pass started: " + mLastBackupPass
-                    + " (now = " + System.currentTimeMillis() + ')');
-            pw.println("  next scheduled: " + KeyValueBackupJob.nextScheduled());
-
-            pw.println("Transport whitelist:");
-            for (ComponentName transport : mTransportManager.getTransportWhitelist()) {
-                pw.print("    ");
-                pw.println(transport.flattenToShortString());
-            }
-
-            pw.println("Available transports:");
-            final String[] transports = listAllTransports();
-            if (transports != null) {
-                for (String t : transports) {
-                    pw.println((t.equals(mTransportManager.getCurrentTransportName()) ? "  * "
-                            : "    ") + t);
-                    try {
-                        File dir = new File(mBaseStateDir,
-                                mTransportManager.getTransportDirName(t));
-                        pw.println("       destination: "
-                                + mTransportManager.getTransportCurrentDestinationString(t));
-                        pw.println("       intent: "
-                                + mTransportManager.getTransportConfigurationIntent(t));
-                        for (File f : dir.listFiles()) {
-                            pw.println(
-                                    "       " + f.getName() + " - " + f.length() + " state bytes");
-                        }
-                    } catch (Exception e) {
-                        Slog.e(TAG, "Error in transport", e);
-                        pw.println("        Error: " + e);
-                    }
-                }
-            }
-
-            mTransportManager.dumpTransportClients(pw);
-
-            pw.println("Pending init: " + mPendingInits.size());
-            for (String s : mPendingInits) {
-                pw.println("    " + s);
-            }
-
-            pw.print("Ancestral: ");
-            pw.println(Long.toHexString(mAncestralToken));
-            pw.print("Current:   ");
-            pw.println(Long.toHexString(mCurrentToken));
-
-            int numPackages = mBackupParticipants.size();
-            pw.println("Participants:");
-            for (int i = 0; i < numPackages; i++) {
-                int uid = mBackupParticipants.keyAt(i);
-                pw.print("  uid: ");
-                pw.println(uid);
-                HashSet<String> participants = mBackupParticipants.valueAt(i);
-                for (String app : participants) {
-                    pw.println("    " + app);
-                }
-            }
-
-            pw.println("Ancestral packages: "
-                    + (mAncestralPackages == null ? "none" : mAncestralPackages.size()));
-            if (mAncestralPackages != null) {
-                for (String pkg : mAncestralPackages) {
-                    pw.println("    " + pkg);
-                }
-            }
-
-            Set<String> processedPackages = mProcessedPackagesJournal.getPackagesCopy();
-            pw.println("Ever backed up: " + processedPackages.size());
-            for (String pkg : processedPackages) {
-                pw.println("    " + pkg);
-            }
-
-            pw.println("Pending key/value backup: " + mPendingBackups.size());
-            for (BackupRequest req : mPendingBackups.values()) {
-                pw.println("    " + req);
-            }
-
-            pw.println("Full backup queue:" + mFullBackupQueue.size());
-            for (FullBackupEntry entry : mFullBackupQueue) {
-                pw.print("    ");
-                pw.print(entry.lastBackup);
-                pw.print(" : ");
-                pw.println(entry.packageName);
-            }
-        }
-    }
-
-
-    public IBackupManager getBackupManagerBinder() {
-        return mBackupManagerBinder;
+        mUserBackupManagerService.dump(fd, pw, args);
     }
 
     private static boolean backupSettingMigrated(int userId) {
@@ -3619,7 +588,7 @@
         return false;
     }
 
-    private static void writeBackupEnableState(boolean enable, int userId) {
+    static void writeBackupEnableState(boolean enable, int userId) {
         File base = new File(Environment.getDataDirectory(), "backup");
         File enableFile = new File(base, BACKUP_ENABLE_FILE);
         File stage = new File(base, BACKUP_ENABLE_FILE + "-stage");
diff --git a/services/backup/java/com/android/server/backup/KeyValueAdbBackupEngine.java b/services/backup/java/com/android/server/backup/KeyValueAdbBackupEngine.java
index 125c225..92c2ee4 100644
--- a/services/backup/java/com/android/server/backup/KeyValueAdbBackupEngine.java
+++ b/services/backup/java/com/android/server/backup/KeyValueAdbBackupEngine.java
@@ -5,7 +5,8 @@
 import static android.os.ParcelFileDescriptor.MODE_READ_WRITE;
 import static android.os.ParcelFileDescriptor.MODE_TRUNCATE;
 
-import static com.android.server.backup.BackupManagerService.OP_TYPE_BACKUP_WAIT;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.OP_TYPE_BACKUP_WAIT;
 
 import android.app.ApplicationThreadConstants;
 import android.app.IBackupAgent;
@@ -50,7 +51,7 @@
     private static final String BACKUP_KEY_VALUE_BACKUP_DATA_FILENAME_SUFFIX = ".data";
     private static final String BACKUP_KEY_VALUE_NEW_STATE_FILENAME_SUFFIX = ".new";
 
-    private BackupManagerService mBackupManagerService;
+    private UserBackupManagerService mBackupManagerService;
     private final PackageManager mPackageManager;
     private final OutputStream mOutput;
     private final PackageInfo mCurrentPackage;
@@ -66,7 +67,7 @@
     private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
 
     public KeyValueAdbBackupEngine(OutputStream output, PackageInfo packageInfo,
-            BackupManagerService backupManagerService, PackageManager packageManager,
+            UserBackupManagerService backupManagerService, PackageManager packageManager,
             File baseStateDir, File dataDir) {
         mOutput = output;
         mCurrentPackage = packageInfo;
@@ -85,7 +86,7 @@
         mNewStateName = new File(mStateDir,
                 pkg + BACKUP_KEY_VALUE_NEW_STATE_FILENAME_SUFFIX);
 
-        mManifestFile = new File(mDataDir, BackupManagerService.BACKUP_MANIFEST_FILENAME);
+        mManifestFile = new File(mDataDir, BACKUP_MANIFEST_FILENAME);
         mAgentTimeoutParameters = Preconditions.checkNotNull(
                 backupManagerService.getAgentTimeoutParameters(),
                 "Timeout parameters cannot be null");
diff --git a/services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java b/services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java
index bb14576..bed520e 100644
--- a/services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java
+++ b/services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java
@@ -39,7 +39,7 @@
     private static final String TAG = "KeyValueAdbRestoreEngine";
     private static final boolean DEBUG = false;
 
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
     private final File mDataDir;
 
     FileMetadata mInfo;
@@ -48,7 +48,7 @@
     IBackupAgent mAgent;
     int mToken;
 
-    public KeyValueAdbRestoreEngine(BackupManagerService backupManagerService,
+    public KeyValueAdbRestoreEngine(UserBackupManagerService backupManagerService,
             File dataDir, FileMetadata info, ParcelFileDescriptor inFD, IBackupAgent agent,
             int token) {
         mBackupManagerService = backupManagerService;
diff --git a/services/backup/java/com/android/server/backup/KeyValueBackupJob.java b/services/backup/java/com/android/server/backup/KeyValueBackupJob.java
index c805783..f2e7435 100644
--- a/services/backup/java/com/android/server/backup/KeyValueBackupJob.java
+++ b/services/backup/java/com/android/server/backup/KeyValueBackupJob.java
@@ -16,6 +16,8 @@
 
 package com.android.server.backup;
 
+import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING;
+
 import android.app.AlarmManager;
 import android.app.job.JobInfo;
 import android.app.job.JobParameters;
@@ -71,7 +73,7 @@
             if (delay <= 0) {
                 delay = interval + new Random().nextInt((int) fuzz);
             }
-            if (BackupManagerService.DEBUG_SCHEDULING) {
+            if (DEBUG_SCHEDULING) {
                 Slog.v(TAG, "Scheduling k/v pass in " + (delay / 1000 / 60) + " minutes");
             }
             JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, sKeyValueJobService)
diff --git a/services/backup/java/com/android/server/backup/ProcessedPackagesJournal.java b/services/backup/java/com/android/server/backup/ProcessedPackagesJournal.java
index b5db5e2..edc2379 100644
--- a/services/backup/java/com/android/server/backup/ProcessedPackagesJournal.java
+++ b/services/backup/java/com/android/server/backup/ProcessedPackagesJournal.java
@@ -23,8 +23,8 @@
 import java.io.BufferedInputStream;
 import java.io.DataInputStream;
 import java.io.EOFException;
-import java.io.FileInputStream;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.RandomAccessFile;
 import java.util.HashSet;
@@ -46,7 +46,7 @@
 final class ProcessedPackagesJournal {
     private static final String TAG = "ProcessedPackagesJournal";
     private static final String JOURNAL_FILE_NAME = "processed";
-    private static final boolean DEBUG = BackupManagerService.DEBUG || false;
+    private static final boolean DEBUG = BackupManagerService.DEBUG;
 
     // using HashSet instead of ArraySet since we expect 100-500 elements range
     @GuardedBy("mProcessedPackages")
diff --git a/services/backup/java/com/android/server/backup/Trampoline.java b/services/backup/java/com/android/server/backup/Trampoline.java
index 32fd7e0..59629aa 100644
--- a/services/backup/java/com/android/server/backup/Trampoline.java
+++ b/services/backup/java/com/android/server/backup/Trampoline.java
@@ -42,18 +42,20 @@
 import android.os.Trace;
 import android.os.UserHandle;
 import android.util.Slog;
+
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.util.DumpUtils;
+
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.IOException;
 import java.io.PrintWriter;
 
 /**
- * A proxy to BackupManagerService implementation.
+ * A proxy to the {@link BackupManagerService} implementation.
  *
- * <p>This is an external interface to the BackupManagerService which is being accessed via
- * published binder (see BackupManagerService$Lifecycle). This lets us turn down the heavy
+ * <p>This is an external interface to the {@link BackupManagerService} which is being accessed via
+ * published binder {@link BackupManagerService.Lifecycle}. This lets us turn down the heavy
  * implementation object on the fly without disturbing binders that have been cached somewhere in
  * the system.
  *
@@ -143,7 +145,7 @@
     }
 
     /**
-     * Called from {@link BackupManagerService$Lifecycle} when the system user is unlocked. Attempts
+     * Called from {@link BackupManagerService.Lifecycle} when the system user is unlocked. Attempts
      * to initialize {@link BackupManagerService} and set backup state for the system user.
      *
      * @see BackupManagerService#unlockSystemUser()
diff --git a/services/backup/java/com/android/server/backup/UserBackupManagerService.java b/services/backup/java/com/android/server/backup/UserBackupManagerService.java
new file mode 100644
index 0000000..fe16afe
--- /dev/null
+++ b/services/backup/java/com/android/server/backup/UserBackupManagerService.java
@@ -0,0 +1,3501 @@
+/*
+ * 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.backup;
+
+import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_BACKUP_IN_FOREGROUND;
+
+import static com.android.server.backup.BackupManagerService.DEBUG;
+import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING;
+import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
+import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.internal.BackupHandler.MSG_BACKUP_OPERATION_TIMEOUT;
+import static com.android.server.backup.internal.BackupHandler.MSG_FULL_CONFIRMATION_TIMEOUT;
+import static com.android.server.backup.internal.BackupHandler.MSG_OP_COMPLETE;
+import static com.android.server.backup.internal.BackupHandler.MSG_REQUEST_BACKUP;
+import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_OPERATION_TIMEOUT;
+import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_SESSION_TIMEOUT;
+import static com.android.server.backup.internal.BackupHandler.MSG_RETRY_CLEAR;
+import static com.android.server.backup.internal.BackupHandler.MSG_RUN_ADB_BACKUP;
+import static com.android.server.backup.internal.BackupHandler.MSG_RUN_ADB_RESTORE;
+import static com.android.server.backup.internal.BackupHandler.MSG_RUN_CLEAR;
+import static com.android.server.backup.internal.BackupHandler.MSG_RUN_RESTORE;
+import static com.android.server.backup.internal.BackupHandler.MSG_SCHEDULE_BACKUP_PACKAGE;
+
+import android.annotation.Nullable;
+import android.app.ActivityManager;
+import android.app.AlarmManager;
+import android.app.AppGlobals;
+import android.app.IActivityManager;
+import android.app.IBackupAgent;
+import android.app.PendingIntent;
+import android.app.backup.BackupAgent;
+import android.app.backup.BackupManager;
+import android.app.backup.BackupManagerMonitor;
+import android.app.backup.FullBackup;
+import android.app.backup.IBackupManager;
+import android.app.backup.IBackupManagerMonitor;
+import android.app.backup.IBackupObserver;
+import android.app.backup.IFullBackupRestoreObserver;
+import android.app.backup.IRestoreSession;
+import android.app.backup.ISelectBackupTransportCallback;
+import android.content.ActivityNotFoundException;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.IPackageManager;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.ParcelFileDescriptor;
+import android.os.PowerManager;
+import android.os.PowerManager.ServiceType;
+import android.os.PowerSaveState;
+import android.os.Process;
+import android.os.RemoteException;
+import android.os.SELinux;
+import android.os.ServiceManager;
+import android.os.SystemClock;
+import android.os.UserHandle;
+import android.os.WorkSource;
+import android.os.storage.IStorageManager;
+import android.os.storage.StorageManager;
+import android.provider.Settings;
+import android.util.ArraySet;
+import android.util.AtomicFile;
+import android.util.EventLog;
+import android.util.Pair;
+import android.util.Slog;
+import android.util.SparseArray;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.backup.IBackupTransport;
+import com.android.internal.util.DumpUtils;
+import com.android.internal.util.Preconditions;
+import com.android.server.AppWidgetBackupBridge;
+import com.android.server.EventLogTags;
+import com.android.server.backup.fullbackup.FullBackupEntry;
+import com.android.server.backup.fullbackup.PerformFullTransportBackupTask;
+import com.android.server.backup.internal.BackupHandler;
+import com.android.server.backup.internal.ClearDataObserver;
+import com.android.server.backup.internal.OnTaskFinishedListener;
+import com.android.server.backup.internal.Operation;
+import com.android.server.backup.internal.PerformInitializeTask;
+import com.android.server.backup.internal.ProvisionedObserver;
+import com.android.server.backup.internal.RunBackupReceiver;
+import com.android.server.backup.internal.RunInitializeReceiver;
+import com.android.server.backup.keyvalue.BackupRequest;
+import com.android.server.backup.params.AdbBackupParams;
+import com.android.server.backup.params.AdbParams;
+import com.android.server.backup.params.AdbRestoreParams;
+import com.android.server.backup.params.BackupParams;
+import com.android.server.backup.params.ClearParams;
+import com.android.server.backup.params.ClearRetryParams;
+import com.android.server.backup.params.RestoreParams;
+import com.android.server.backup.restore.ActiveRestoreSession;
+import com.android.server.backup.restore.PerformUnifiedRestoreTask;
+import com.android.server.backup.transport.TransportClient;
+import com.android.server.backup.transport.TransportNotRegisteredException;
+import com.android.server.backup.utils.AppBackupUtils;
+import com.android.server.backup.utils.BackupManagerMonitorUtils;
+import com.android.server.backup.utils.BackupObserverUtils;
+import com.android.server.backup.utils.SparseArrayUtils;
+
+import com.google.android.collect.Sets;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileDescriptor;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.RandomAccessFile;
+import java.security.SecureRandom;
+import java.text.SimpleDateFormat;
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Queue;
+import java.util.Random;
+import java.util.Set;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/** System service that performs backup/restore operations. */
+public class UserBackupManagerService {
+    // File containing backup-enabled state.  Contains a single byte;
+    // nonzero == enabled.  File missing or contains a zero byte == disabled.
+    private static final String BACKUP_ENABLE_FILE = "backup_enabled";
+
+    // Persistently track the need to do a full init.
+    private static final String INIT_SENTINEL_FILE_NAME = "_need_init_";
+
+    // System-private key used for backing up an app's widget state.  Must
+    // begin with U+FFxx by convention (we reserve all keys starting
+    // with U+FF00 or higher for system use).
+    public static final String KEY_WIDGET_STATE = "\uffed\uffedwidget";
+
+    // Name and current contents version of the full-backup manifest file
+    //
+    // Manifest version history:
+    //
+    // 1 : initial release
+    public static final String BACKUP_MANIFEST_FILENAME = "_manifest";
+    public static final int BACKUP_MANIFEST_VERSION = 1;
+
+    // External archive format version history:
+    //
+    // 1 : initial release
+    // 2 : no format change per se; version bump to facilitate PBKDF2 version skew detection
+    // 3 : introduced "_meta" metadata file; no other format change per se
+    // 4 : added support for new device-encrypted storage locations
+    // 5 : added support for key-value packages
+    public static final int BACKUP_FILE_VERSION = 5;
+    public static final String BACKUP_FILE_HEADER_MAGIC = "ANDROID BACKUP\n";
+    public static final String BACKUP_METADATA_FILENAME = "_meta";
+    public static final int BACKUP_METADATA_VERSION = 1;
+    public static final int BACKUP_WIDGET_METADATA_TOKEN = 0x01FFED01;
+
+    private static final int CURRENT_ANCESTRAL_RECORD_VERSION = 1;
+
+    // Round-robin queue for scheduling full backup passes.
+    private static final int SCHEDULE_FILE_VERSION = 1;
+
+    public static final String SETTINGS_PACKAGE = "com.android.providers.settings";
+    public static final String SHARED_BACKUP_AGENT_PACKAGE = "com.android.sharedstoragebackup";
+
+    // Pseudoname that we use for the Package Manager metadata "package".
+    public static final String PACKAGE_MANAGER_SENTINEL = "@pm@";
+
+    // Retry interval for clear/init when the transport is unavailable
+    private static final long TRANSPORT_RETRY_INTERVAL = 1 * AlarmManager.INTERVAL_HOUR;
+
+    public static final String RUN_BACKUP_ACTION = "android.app.backup.intent.RUN";
+    public static final String RUN_INITIALIZE_ACTION = "android.app.backup.intent.INIT";
+    public static final String BACKUP_FINISHED_ACTION = "android.intent.action.BACKUP_FINISHED";
+    public static final String BACKUP_FINISHED_PACKAGE_EXTRA = "packageName";
+
+    // Bookkeeping of in-flight operations. The operation token is the index of the entry in the
+    // pending operations list.
+    public static final int OP_PENDING = 0;
+    private static final int OP_ACKNOWLEDGED = 1;
+    private static final int OP_TIMEOUT = -1;
+
+    // Waiting for backup agent to respond during backup operation.
+    public static final int OP_TYPE_BACKUP_WAIT = 0;
+
+    // Waiting for backup agent to respond during restore operation.
+    public static final int OP_TYPE_RESTORE_WAIT = 1;
+
+    // An entire backup operation spanning multiple packages.
+    public static final int OP_TYPE_BACKUP = 2;
+
+    // Time delay for initialization operations that can be delayed so as not to consume too much
+    // CPU on bring-up and increase time-to-UI.
+    private static final long INITIALIZATION_DELAY_MILLIS = 3000;
+
+    // Timeout interval for deciding that a bind or clear-data has taken too long
+    private static final long TIMEOUT_INTERVAL = 10 * 1000;
+
+    // User confirmation timeout for a full backup/restore operation.  It's this long in
+    // order to give them time to enter the backup password.
+    private static final long TIMEOUT_FULL_CONFIRMATION = 60 * 1000;
+
+    // If an app is busy when we want to do a full-data backup, how long to defer the retry.
+    // This is fuzzed, so there are two parameters; backoff_min + Rand[0, backoff_fuzz)
+    private static final long BUSY_BACKOFF_MIN_MILLIS = 1000 * 60 * 60;  // one hour
+    private static final int BUSY_BACKOFF_FUZZ = 1000 * 60 * 60 * 2;  // two hours
+
+    private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
+    private final TransportManager mTransportManager;
+
+    private Context mContext;
+    private PackageManager mPackageManager;
+    private IPackageManager mPackageManagerBinder;
+    private IActivityManager mActivityManager;
+    private PowerManager mPowerManager;
+    private AlarmManager mAlarmManager;
+    private IStorageManager mStorageManager;
+    private BackupManagerConstants mConstants;
+    private PowerManager.WakeLock mWakelock;
+    private BackupHandler mBackupHandler;
+
+    private IBackupManager mBackupManagerBinder;
+
+    private boolean mEnabled;   // access to this is synchronized on 'this'
+    private boolean mProvisioned;
+    private boolean mAutoRestore;
+
+    private PendingIntent mRunBackupIntent;
+    private PendingIntent mRunInitIntent;
+
+    private final ArraySet<String> mPendingInits = new ArraySet<>();  // transport names
+
+    // map UIDs to the set of participating packages under that UID
+    private final SparseArray<HashSet<String>> mBackupParticipants = new SparseArray<>();
+
+    // Backups that we haven't started yet.  Keys are package names.
+    private HashMap<String, BackupRequest> mPendingBackups = new HashMap<>();
+
+    // locking around the pending-backup management
+    private final Object mQueueLock = new Object();
+
+    // The thread performing the sequence of queued backups binds to each app's agent
+    // in succession.  Bind notifications are asynchronously delivered through the
+    // Activity Manager; use this lock object to signal when a requested binding has
+    // completed.
+    private final Object mAgentConnectLock = new Object();
+    private IBackupAgent mConnectedAgent;
+    private volatile boolean mConnecting;
+
+    private volatile boolean mBackupRunning;
+    private volatile long mLastBackupPass;
+
+    // A similar synchronization mechanism around clearing apps' data for restore
+    private final Object mClearDataLock = new Object();
+    private volatile boolean mClearingData;
+
+    // Used by ADB.
+    private final BackupPasswordManager mBackupPasswordManager;
+    private final SparseArray<AdbParams> mAdbBackupRestoreConfirmations = new SparseArray<>();
+    private final SecureRandom mRng = new SecureRandom();
+
+    // Time when we post the transport registration operation
+    private final long mRegisterTransportsRequestedTime;
+
+    @GuardedBy("mQueueLock")
+    private PerformFullTransportBackupTask mRunningFullBackupTask;
+
+    @GuardedBy("mQueueLock")
+    private ArrayList<FullBackupEntry> mFullBackupQueue;
+
+    @GuardedBy("mPendingRestores")
+    private boolean mIsRestoreInProgress;
+
+    @GuardedBy("mPendingRestores")
+    private final Queue<PerformUnifiedRestoreTask> mPendingRestores = new ArrayDeque<>();
+
+    private ActiveRestoreSession mActiveRestoreSession;
+
+    // Watch the device provisioning operation during setup
+    private ContentObserver mProvisionedObserver;
+
+    /**
+     * mCurrentOperations contains the list of currently active operations.
+     *
+     * If type of operation is OP_TYPE_WAIT, it are waiting for an ack or timeout.
+     * An operation wraps a BackupRestoreTask within it.
+     * It's the responsibility of this task to remove the operation from this array.
+     *
+     * A BackupRestore task gets notified of ack/timeout for the operation via
+     * BackupRestoreTask#handleCancel, BackupRestoreTask#operationComplete and notifyAll called
+     * on the mCurrentOpLock.
+     * {@link UserBackupManagerService#waitUntilOperationComplete(int)} is
+     * used in various places to 'wait' for notifyAll and detect change of pending state of an
+     * operation. So typically, an operation will be removed from this array by:
+     * - BackupRestoreTask#handleCancel and
+     * - BackupRestoreTask#operationComplete OR waitUntilOperationComplete. Do not remove at both
+     * these places because waitUntilOperationComplete relies on the operation being present to
+     * determine its completion status.
+     *
+     * If type of operation is OP_BACKUP, it is a task running backups. It provides a handle to
+     * cancel backup tasks.
+     */
+    @GuardedBy("mCurrentOpLock")
+    private final SparseArray<Operation> mCurrentOperations = new SparseArray<>();
+    private final Object mCurrentOpLock = new Object();
+    private final Random mTokenGenerator = new Random();
+    final AtomicInteger mNextToken = new AtomicInteger();
+
+    // Where we keep our journal files and other bookkeeping.
+    private File mBaseStateDir;
+    private File mDataDir;
+    private File mJournalDir;
+    @Nullable
+    private DataChangedJournal mJournal;
+    private File mFullBackupScheduleFile;
+
+    // Keep a log of all the apps we've ever backed up.
+    private ProcessedPackagesJournal mProcessedPackagesJournal;
+
+    private File mTokenFile;
+    private Set<String> mAncestralPackages = null;
+    private long mAncestralToken = 0;
+    private long mCurrentToken = 0;
+
+    @VisibleForTesting
+    public UserBackupManagerService(
+            Context context,
+            Trampoline parent,
+            HandlerThread backupThread,
+            File baseStateDir,
+            File dataDir,
+            TransportManager transportManager) {
+        mContext = context;
+        mPackageManager = context.getPackageManager();
+        mPackageManagerBinder = AppGlobals.getPackageManager();
+        mActivityManager = ActivityManager.getService();
+
+        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+        mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+        mStorageManager = IStorageManager.Stub.asInterface(ServiceManager.getService("mount"));
+
+        mBackupManagerBinder = Trampoline.asInterface(parent.asBinder());
+
+        mAgentTimeoutParameters = new
+                BackupAgentTimeoutParameters(Handler.getMain(), mContext.getContentResolver());
+        mAgentTimeoutParameters.start();
+
+        // spin up the backup/restore handler thread
+        mBackupHandler = new BackupHandler(this, backupThread.getLooper());
+
+        // Set up our bookkeeping
+        final ContentResolver resolver = context.getContentResolver();
+        mProvisioned = Settings.Global.getInt(resolver,
+                Settings.Global.DEVICE_PROVISIONED, 0) != 0;
+        mAutoRestore = Settings.Secure.getInt(resolver,
+                Settings.Secure.BACKUP_AUTO_RESTORE, 1) != 0;
+
+        mProvisionedObserver = new ProvisionedObserver(this, mBackupHandler);
+        resolver.registerContentObserver(
+                Settings.Global.getUriFor(Settings.Global.DEVICE_PROVISIONED),
+                false, mProvisionedObserver);
+
+        mBaseStateDir = baseStateDir;
+        mBaseStateDir.mkdirs();
+        if (!SELinux.restorecon(mBaseStateDir)) {
+            Slog.e(TAG, "SELinux restorecon failed on " + mBaseStateDir);
+        }
+
+        mDataDir = dataDir;
+
+        mBackupPasswordManager = new BackupPasswordManager(mContext, mBaseStateDir, mRng);
+
+        // Alarm receivers for scheduled backups & initialization operations
+        BroadcastReceiver mRunBackupReceiver = new RunBackupReceiver(this);
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(RUN_BACKUP_ACTION);
+        context.registerReceiver(mRunBackupReceiver, filter,
+                android.Manifest.permission.BACKUP, null);
+
+        BroadcastReceiver mRunInitReceiver = new RunInitializeReceiver(this);
+        filter = new IntentFilter();
+        filter.addAction(RUN_INITIALIZE_ACTION);
+        context.registerReceiver(mRunInitReceiver, filter,
+                android.Manifest.permission.BACKUP, null);
+
+        Intent backupIntent = new Intent(RUN_BACKUP_ACTION);
+        backupIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
+        mRunBackupIntent = PendingIntent.getBroadcast(context, 0, backupIntent, 0);
+
+        Intent initIntent = new Intent(RUN_INITIALIZE_ACTION);
+        initIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
+        mRunInitIntent = PendingIntent.getBroadcast(context, 0, initIntent, 0);
+
+        // Set up the backup-request journaling
+        mJournalDir = new File(mBaseStateDir, "pending");
+        mJournalDir.mkdirs();   // creates mBaseStateDir along the way
+        mJournal = null;        // will be created on first use
+
+        mConstants = new BackupManagerConstants(mBackupHandler, mContext.getContentResolver());
+        // We are observing changes to the constants throughout the lifecycle of BMS. This is
+        // because we reference the constants in multiple areas of BMS, which otherwise would
+        // require frequent starting and stopping.
+        mConstants.start();
+
+        // Set up the various sorts of package tracking we do
+        mFullBackupScheduleFile = new File(mBaseStateDir, "fb-schedule");
+        initPackageTracking();
+
+        // Build our mapping of uid to backup client services.  This implicitly
+        // schedules a backup pass on the Package Manager metadata the first
+        // time anything needs to be backed up.
+        synchronized (mBackupParticipants) {
+            addPackageParticipantsLocked(null);
+        }
+
+        mTransportManager = transportManager;
+        mTransportManager.setOnTransportRegisteredListener(this::onTransportRegistered);
+        mRegisterTransportsRequestedTime = SystemClock.elapsedRealtime();
+        mBackupHandler.postDelayed(
+                mTransportManager::registerTransports, INITIALIZATION_DELAY_MILLIS);
+
+        // Now that we know about valid backup participants, parse any leftover journal files into
+        // the pending backup set
+        mBackupHandler.postDelayed(this::parseLeftoverJournals, INITIALIZATION_DELAY_MILLIS);
+
+        // Power management
+        mWakelock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*backup*");
+    }
+
+
+    public BackupManagerConstants getConstants() {
+        return mConstants;
+    }
+
+    public BackupAgentTimeoutParameters getAgentTimeoutParameters() {
+        return mAgentTimeoutParameters;
+    }
+
+    public Context getContext() {
+        return mContext;
+    }
+
+    public void setContext(Context context) {
+        mContext = context;
+    }
+
+    public PackageManager getPackageManager() {
+        return mPackageManager;
+    }
+
+    public void setPackageManager(PackageManager packageManager) {
+        mPackageManager = packageManager;
+    }
+
+    public IPackageManager getPackageManagerBinder() {
+        return mPackageManagerBinder;
+    }
+
+    public void setPackageManagerBinder(IPackageManager packageManagerBinder) {
+        mPackageManagerBinder = packageManagerBinder;
+    }
+
+    public IActivityManager getActivityManager() {
+        return mActivityManager;
+    }
+
+    public void setActivityManager(IActivityManager activityManager) {
+        mActivityManager = activityManager;
+    }
+
+    public AlarmManager getAlarmManager() {
+        return mAlarmManager;
+    }
+
+    public void setAlarmManager(AlarmManager alarmManager) {
+        mAlarmManager = alarmManager;
+    }
+
+    @VisibleForTesting
+    void setPowerManager(PowerManager powerManager) {
+        mPowerManager = powerManager;
+    }
+
+    public void setBackupManagerBinder(IBackupManager backupManagerBinder) {
+        mBackupManagerBinder = backupManagerBinder;
+    }
+
+    public TransportManager getTransportManager() {
+        return mTransportManager;
+    }
+
+    public boolean isEnabled() {
+        return mEnabled;
+    }
+
+    public void setEnabled(boolean enabled) {
+        mEnabled = enabled;
+    }
+
+    public boolean isProvisioned() {
+        return mProvisioned;
+    }
+
+    public void setProvisioned(boolean provisioned) {
+        mProvisioned = provisioned;
+    }
+
+    public PowerManager.WakeLock getWakelock() {
+        return mWakelock;
+    }
+
+    /**
+     * Sets the {@link WorkSource} of the {@link PowerManager.WakeLock} returned by {@link
+     * #getWakelock()}.
+     */
+    @VisibleForTesting
+    public void setWorkSource(@Nullable WorkSource workSource) {
+        // TODO: This is for testing, unfortunately WakeLock is final and WorkSource is not exposed
+        mWakelock.setWorkSource(workSource);
+    }
+
+    public void setWakelock(PowerManager.WakeLock wakelock) {
+        mWakelock = wakelock;
+    }
+
+    public Handler getBackupHandler() {
+        return mBackupHandler;
+    }
+
+    public void setBackupHandler(BackupHandler backupHandler) {
+        mBackupHandler = backupHandler;
+    }
+
+    public PendingIntent getRunInitIntent() {
+        return mRunInitIntent;
+    }
+
+    public void setRunInitIntent(PendingIntent runInitIntent) {
+        mRunInitIntent = runInitIntent;
+    }
+
+    public HashMap<String, BackupRequest> getPendingBackups() {
+        return mPendingBackups;
+    }
+
+    public void setPendingBackups(
+            HashMap<String, BackupRequest> pendingBackups) {
+        mPendingBackups = pendingBackups;
+    }
+
+    public Object getQueueLock() {
+        return mQueueLock;
+    }
+
+    public boolean isBackupRunning() {
+        return mBackupRunning;
+    }
+
+    public void setBackupRunning(boolean backupRunning) {
+        mBackupRunning = backupRunning;
+    }
+
+    public long getLastBackupPass() {
+        return mLastBackupPass;
+    }
+
+    public void setLastBackupPass(long lastBackupPass) {
+        mLastBackupPass = lastBackupPass;
+    }
+
+    public Object getClearDataLock() {
+        return mClearDataLock;
+    }
+
+    public boolean isClearingData() {
+        return mClearingData;
+    }
+
+    public void setClearingData(boolean clearingData) {
+        mClearingData = clearingData;
+    }
+
+    public boolean isRestoreInProgress() {
+        return mIsRestoreInProgress;
+    }
+
+    public void setRestoreInProgress(boolean restoreInProgress) {
+        mIsRestoreInProgress = restoreInProgress;
+    }
+
+    public Queue<PerformUnifiedRestoreTask> getPendingRestores() {
+        return mPendingRestores;
+    }
+
+    public ActiveRestoreSession getActiveRestoreSession() {
+        return mActiveRestoreSession;
+    }
+
+    public void setActiveRestoreSession(
+            ActiveRestoreSession activeRestoreSession) {
+        mActiveRestoreSession = activeRestoreSession;
+    }
+
+    public SparseArray<Operation> getCurrentOperations() {
+        return mCurrentOperations;
+    }
+
+    public Object getCurrentOpLock() {
+        return mCurrentOpLock;
+    }
+
+    public SparseArray<AdbParams> getAdbBackupRestoreConfirmations() {
+        return mAdbBackupRestoreConfirmations;
+    }
+
+    public File getBaseStateDir() {
+        return mBaseStateDir;
+    }
+
+    public void setBaseStateDir(File baseStateDir) {
+        mBaseStateDir = baseStateDir;
+    }
+
+    public File getDataDir() {
+        return mDataDir;
+    }
+
+    public void setDataDir(File dataDir) {
+        mDataDir = dataDir;
+    }
+
+    @Nullable
+    public DataChangedJournal getJournal() {
+        return mJournal;
+    }
+
+    public void setJournal(@Nullable DataChangedJournal journal) {
+        mJournal = journal;
+    }
+
+    public SecureRandom getRng() {
+        return mRng;
+    }
+
+    public Set<String> getAncestralPackages() {
+        return mAncestralPackages;
+    }
+
+    public void setAncestralPackages(Set<String> ancestralPackages) {
+        mAncestralPackages = ancestralPackages;
+    }
+
+    public long getAncestralToken() {
+        return mAncestralToken;
+    }
+
+    public void setAncestralToken(long ancestralToken) {
+        mAncestralToken = ancestralToken;
+    }
+
+    public long getCurrentToken() {
+        return mCurrentToken;
+    }
+
+    public void setCurrentToken(long currentToken) {
+        mCurrentToken = currentToken;
+    }
+
+    public ArraySet<String> getPendingInits() {
+        return mPendingInits;
+    }
+
+    /** Clear all pending transport initializations. */
+    public void clearPendingInits() {
+        mPendingInits.clear();
+    }
+
+    public PerformFullTransportBackupTask getRunningFullBackupTask() {
+        return mRunningFullBackupTask;
+    }
+
+    public void setRunningFullBackupTask(
+            PerformFullTransportBackupTask runningFullBackupTask) {
+        mRunningFullBackupTask = runningFullBackupTask;
+    }
+
+    /**
+     *  Utility: build a new random integer token. The low bits are the ordinal of the operation for
+     *  near-time uniqueness, and the upper bits are random for app-side unpredictability.
+     */
+    public int generateRandomIntegerToken() {
+        int token = mTokenGenerator.nextInt();
+        if (token < 0) token = -token;
+        token &= ~0xFF;
+        token |= (mNextToken.incrementAndGet() & 0xFF);
+        return token;
+    }
+
+    /**
+     * Construct a backup agent instance for the metadata pseudopackage. This is a process-local
+     * non-lifecycle agent instance, so we manually set up the context topology for it.
+     */
+    public BackupAgent makeMetadataAgent() {
+        PackageManagerBackupAgent pmAgent = new PackageManagerBackupAgent(mPackageManager);
+        pmAgent.attach(mContext);
+        pmAgent.onCreate();
+        return pmAgent;
+    }
+
+    /**
+     * Same as {@link #makeMetadataAgent()} but with explicit package-set configuration.
+     */
+    public PackageManagerBackupAgent makeMetadataAgent(List<PackageInfo> packages) {
+        PackageManagerBackupAgent pmAgent =
+                new PackageManagerBackupAgent(mPackageManager, packages);
+        pmAgent.attach(mContext);
+        pmAgent.onCreate();
+        return pmAgent;
+    }
+
+    private void initPackageTracking() {
+        if (MORE_DEBUG) Slog.v(TAG, "` tracking");
+
+        // Remember our ancestral dataset
+        mTokenFile = new File(mBaseStateDir, "ancestral");
+        try (DataInputStream tokenStream = new DataInputStream(new BufferedInputStream(
+                new FileInputStream(mTokenFile)))) {
+            int version = tokenStream.readInt();
+            if (version == CURRENT_ANCESTRAL_RECORD_VERSION) {
+                mAncestralToken = tokenStream.readLong();
+                mCurrentToken = tokenStream.readLong();
+
+                int numPackages = tokenStream.readInt();
+                if (numPackages >= 0) {
+                    mAncestralPackages = new HashSet<>();
+                    for (int i = 0; i < numPackages; i++) {
+                        String pkgName = tokenStream.readUTF();
+                        mAncestralPackages.add(pkgName);
+                    }
+                }
+            }
+        } catch (FileNotFoundException fnf) {
+            // Probably innocuous
+            Slog.v(TAG, "No ancestral data");
+        } catch (IOException e) {
+            Slog.w(TAG, "Unable to read token file", e);
+        }
+
+        mProcessedPackagesJournal = new ProcessedPackagesJournal(mBaseStateDir);
+        mProcessedPackagesJournal.init();
+
+        synchronized (mQueueLock) {
+            // Resume the full-data backup queue
+            mFullBackupQueue = readFullBackupSchedule();
+        }
+
+        // Register for broadcasts about package install, etc., so we can
+        // update the provider list.
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(Intent.ACTION_PACKAGE_ADDED);
+        filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+        filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
+        filter.addDataScheme("package");
+        mContext.registerReceiver(mBroadcastReceiver, filter);
+        // Register for events related to sdcard installation.
+        IntentFilter sdFilter = new IntentFilter();
+        sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
+        sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
+        mContext.registerReceiver(mBroadcastReceiver, sdFilter);
+    }
+
+    private ArrayList<FullBackupEntry> readFullBackupSchedule() {
+        boolean changed = false;
+        ArrayList<FullBackupEntry> schedule = null;
+        List<PackageInfo> apps =
+                PackageManagerBackupAgent.getStorableApplications(mPackageManager);
+
+        if (mFullBackupScheduleFile.exists()) {
+            try (FileInputStream fstream = new FileInputStream(mFullBackupScheduleFile);
+                 BufferedInputStream bufStream = new BufferedInputStream(fstream);
+                 DataInputStream in = new DataInputStream(bufStream)) {
+                int version = in.readInt();
+                if (version != SCHEDULE_FILE_VERSION) {
+                    Slog.e(TAG, "Unknown backup schedule version " + version);
+                    return null;
+                }
+
+                final int numPackages = in.readInt();
+                schedule = new ArrayList<>(numPackages);
+
+                // HashSet instead of ArraySet specifically because we want the eventual
+                // lookups against O(hundreds) of entries to be as fast as possible, and
+                // we discard the set immediately after the scan so the extra memory
+                // overhead is transient.
+                HashSet<String> foundApps = new HashSet<>(numPackages);
+
+                for (int i = 0; i < numPackages; i++) {
+                    String pkgName = in.readUTF();
+                    long lastBackup = in.readLong();
+                    foundApps.add(pkgName); // all apps that we've addressed already
+                    try {
+                        PackageInfo pkg = mPackageManager.getPackageInfo(pkgName, 0);
+                        if (AppBackupUtils.appGetsFullBackup(pkg)
+                                && AppBackupUtils.appIsEligibleForBackup(
+                                pkg.applicationInfo, mPackageManager)) {
+                            schedule.add(new FullBackupEntry(pkgName, lastBackup));
+                        } else {
+                            if (DEBUG) {
+                                Slog.i(TAG, "Package " + pkgName
+                                        + " no longer eligible for full backup");
+                            }
+                        }
+                    } catch (NameNotFoundException e) {
+                        if (DEBUG) {
+                            Slog.i(TAG, "Package " + pkgName
+                                    + " not installed; dropping from full backup");
+                        }
+                    }
+                }
+
+                // New apps can arrive "out of band" via OTA and similar, so we also need to
+                // scan to make sure that we're tracking all full-backup candidates properly
+                for (PackageInfo app : apps) {
+                    if (AppBackupUtils.appGetsFullBackup(app)
+                            && AppBackupUtils.appIsEligibleForBackup(
+                            app.applicationInfo, mPackageManager)) {
+                        if (!foundApps.contains(app.packageName)) {
+                            if (MORE_DEBUG) {
+                                Slog.i(TAG, "New full backup app " + app.packageName + " found");
+                            }
+                            schedule.add(new FullBackupEntry(app.packageName, 0));
+                            changed = true;
+                        }
+                    }
+                }
+
+                Collections.sort(schedule);
+            } catch (Exception e) {
+                Slog.e(TAG, "Unable to read backup schedule", e);
+                mFullBackupScheduleFile.delete();
+                schedule = null;
+            }
+        }
+
+        if (schedule == null) {
+            // no prior queue record, or unable to read it.  Set up the queue
+            // from scratch.
+            changed = true;
+            schedule = new ArrayList<>(apps.size());
+            for (PackageInfo info : apps) {
+                if (AppBackupUtils.appGetsFullBackup(info) && AppBackupUtils.appIsEligibleForBackup(
+                        info.applicationInfo, mPackageManager)) {
+                    schedule.add(new FullBackupEntry(info.packageName, 0));
+                }
+            }
+        }
+
+        if (changed) {
+            writeFullBackupScheduleAsync();
+        }
+        return schedule;
+    }
+
+    private Runnable mFullBackupScheduleWriter = new Runnable() {
+        @Override
+        public void run() {
+            synchronized (mQueueLock) {
+                try {
+                    ByteArrayOutputStream bufStream = new ByteArrayOutputStream(4096);
+                    DataOutputStream bufOut = new DataOutputStream(bufStream);
+                    bufOut.writeInt(SCHEDULE_FILE_VERSION);
+
+                    // version 1:
+                    //
+                    // [int] # of packages in the queue = N
+                    // N * {
+                    //     [utf8] package name
+                    //     [long] last backup time for this package
+                    //     }
+                    int numPackages = mFullBackupQueue.size();
+                    bufOut.writeInt(numPackages);
+
+                    for (int i = 0; i < numPackages; i++) {
+                        FullBackupEntry entry = mFullBackupQueue.get(i);
+                        bufOut.writeUTF(entry.packageName);
+                        bufOut.writeLong(entry.lastBackup);
+                    }
+                    bufOut.flush();
+
+                    AtomicFile af = new AtomicFile(mFullBackupScheduleFile);
+                    FileOutputStream out = af.startWrite();
+                    out.write(bufStream.toByteArray());
+                    af.finishWrite(out);
+                } catch (Exception e) {
+                    Slog.e(TAG, "Unable to write backup schedule!", e);
+                }
+            }
+        }
+    };
+
+    private void writeFullBackupScheduleAsync() {
+        mBackupHandler.removeCallbacks(mFullBackupScheduleWriter);
+        mBackupHandler.post(mFullBackupScheduleWriter);
+    }
+
+    private void parseLeftoverJournals() {
+        ArrayList<DataChangedJournal> journals = DataChangedJournal.listJournals(mJournalDir);
+        for (DataChangedJournal journal : journals) {
+            if (!journal.equals(mJournal)) {
+                try {
+                    journal.forEach(packageName -> {
+                        Slog.i(TAG, "Found stale backup journal, scheduling");
+                        if (MORE_DEBUG) Slog.i(TAG, "  " + packageName);
+                        dataChangedImpl(packageName);
+                    });
+                } catch (IOException e) {
+                    Slog.e(TAG, "Can't read " + journal, e);
+                }
+            }
+        }
+    }
+
+    /** Used for generating random salts or passwords. */
+    public byte[] randomBytes(int bits) {
+        byte[] array = new byte[bits / 8];
+        mRng.nextBytes(array);
+        return array;
+    }
+
+    /** For adb backup/restore. */
+    public boolean setBackupPassword(String currentPw, String newPw) {
+        return mBackupPasswordManager.setBackupPassword(currentPw, newPw);
+    }
+
+    /** For adb backup/restore. */
+    public boolean hasBackupPassword() {
+        return mBackupPasswordManager.hasBackupPassword();
+    }
+
+    /** For adb backup/restore. */
+    public boolean backupPasswordMatches(String currentPw) {
+        return mBackupPasswordManager.backupPasswordMatches(currentPw);
+    }
+
+    /**
+     * Maintain persistent state around whether need to do an initialize operation. This will lock
+     * on {@link #getQueueLock()}.
+     */
+    public void recordInitPending(
+            boolean isPending, String transportName, String transportDirName) {
+        synchronized (mQueueLock) {
+            if (MORE_DEBUG) {
+                Slog.i(TAG, "recordInitPending(" + isPending + ") on transport " + transportName);
+            }
+
+            File stateDir = new File(mBaseStateDir, transportDirName);
+            File initPendingFile = new File(stateDir, INIT_SENTINEL_FILE_NAME);
+
+            if (isPending) {
+                // We need an init before we can proceed with sending backup data.
+                // Record that with an entry in our set of pending inits, as well as
+                // journaling it via creation of a sentinel file.
+                mPendingInits.add(transportName);
+                try {
+                    (new FileOutputStream(initPendingFile)).close();
+                } catch (IOException ioe) {
+                    // Something is badly wrong with our permissions; just try to move on
+                }
+            } else {
+                // No more initialization needed; wipe the journal and reset our state.
+                initPendingFile.delete();
+                mPendingInits.remove(transportName);
+            }
+        }
+    }
+
+    /**
+     * Reset all of our bookkeeping because the backend data has been wiped (for example due to idle
+     * expiry), so we must re-upload all saved settings.
+     */
+    public void resetBackupState(File stateFileDir) {
+        synchronized (mQueueLock) {
+            mProcessedPackagesJournal.reset();
+
+            mCurrentToken = 0;
+            writeRestoreTokens();
+
+            // Remove all the state files
+            for (File sf : stateFileDir.listFiles()) {
+                // ... but don't touch the needs-init sentinel
+                if (!sf.getName().equals(INIT_SENTINEL_FILE_NAME)) {
+                    sf.delete();
+                }
+            }
+        }
+
+        // Enqueue a new backup of every participant
+        synchronized (mBackupParticipants) {
+            final int numParticipants = mBackupParticipants.size();
+            for (int i = 0; i < numParticipants; i++) {
+                HashSet<String> participants = mBackupParticipants.valueAt(i);
+                if (participants != null) {
+                    for (String packageName : participants) {
+                        dataChangedImpl(packageName);
+                    }
+                }
+            }
+        }
+    }
+
+    private void onTransportRegistered(String transportName, String transportDirName) {
+        if (DEBUG) {
+            long timeMs = SystemClock.elapsedRealtime() - mRegisterTransportsRequestedTime;
+            Slog.d(TAG, "Transport " + transportName + " registered " + timeMs
+                    + "ms after first request (delay = " + INITIALIZATION_DELAY_MILLIS + "ms)");
+        }
+
+        File stateDir = new File(mBaseStateDir, transportDirName);
+        stateDir.mkdirs();
+
+        File initSentinel = new File(stateDir, INIT_SENTINEL_FILE_NAME);
+        if (initSentinel.exists()) {
+            synchronized (mQueueLock) {
+                mPendingInits.add(transportName);
+
+                // TODO: pick a better starting time than now + 1 minute
+                long delay = 1000 * 60; // one minute, in milliseconds
+                mAlarmManager.set(AlarmManager.RTC_WAKEUP,
+                        System.currentTimeMillis() + delay, mRunInitIntent);
+            }
+        }
+    }
+
+    // ----- Track installation/removal of packages -----
+    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+        public void onReceive(Context context, Intent intent) {
+            if (MORE_DEBUG) Slog.d(TAG, "Received broadcast " + intent);
+
+            String action = intent.getAction();
+            boolean replacing = false;
+            boolean added = false;
+            boolean changed = false;
+            Bundle extras = intent.getExtras();
+            String[] pkgList = null;
+            if (Intent.ACTION_PACKAGE_ADDED.equals(action)
+                    || Intent.ACTION_PACKAGE_REMOVED.equals(action)
+                    || Intent.ACTION_PACKAGE_CHANGED.equals(action)) {
+                Uri uri = intent.getData();
+                if (uri == null) {
+                    return;
+                }
+                final String pkgName = uri.getSchemeSpecificPart();
+                if (pkgName != null) {
+                    pkgList = new String[]{pkgName};
+                }
+                changed = Intent.ACTION_PACKAGE_CHANGED.equals(action);
+
+                // At package-changed we only care about looking at new transport states
+                if (changed) {
+                    final String[] components =
+                            intent.getStringArrayExtra(Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST);
+
+                    if (MORE_DEBUG) {
+                        Slog.i(TAG, "Package " + pkgName + " changed; rechecking");
+                        for (int i = 0; i < components.length; i++) {
+                            Slog.i(TAG, "   * " + components[i]);
+                        }
+                    }
+
+                    mBackupHandler.post(
+                            () -> mTransportManager.onPackageChanged(pkgName, components));
+                    return; // nothing more to do in the PACKAGE_CHANGED case
+                }
+
+                added = Intent.ACTION_PACKAGE_ADDED.equals(action);
+                replacing = extras.getBoolean(Intent.EXTRA_REPLACING, false);
+            } else if (Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action)) {
+                added = true;
+                pkgList = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST);
+            } else if (Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) {
+                added = false;
+                pkgList = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST);
+            }
+
+            if (pkgList == null || pkgList.length == 0) {
+                return;
+            }
+
+            final int uid = extras.getInt(Intent.EXTRA_UID);
+            if (added) {
+                synchronized (mBackupParticipants) {
+                    if (replacing) {
+                        // This is the package-replaced case; we just remove the entry
+                        // under the old uid and fall through to re-add.  If an app
+                        // just added key/value backup participation, this picks it up
+                        // as a known participant.
+                        removePackageParticipantsLocked(pkgList, uid);
+                    }
+                    addPackageParticipantsLocked(pkgList);
+                }
+                // If they're full-backup candidates, add them there instead
+                final long now = System.currentTimeMillis();
+                for (final String packageName : pkgList) {
+                    try {
+                        PackageInfo app = mPackageManager.getPackageInfo(packageName, 0);
+                        if (AppBackupUtils.appGetsFullBackup(app)
+                                && AppBackupUtils.appIsEligibleForBackup(
+                                app.applicationInfo, mPackageManager)) {
+                            enqueueFullBackup(packageName, now);
+                            scheduleNextFullBackupJob(0);
+                        } else {
+                            // The app might have just transitioned out of full-data into
+                            // doing key/value backups, or might have just disabled backups
+                            // entirely.  Make sure it is no longer in the full-data queue.
+                            synchronized (mQueueLock) {
+                                dequeueFullBackupLocked(packageName);
+                            }
+                            writeFullBackupScheduleAsync();
+                        }
+
+                        mBackupHandler.post(
+                                () -> mTransportManager.onPackageAdded(packageName));
+
+                    } catch (NameNotFoundException e) {
+                        // doesn't really exist; ignore it
+                        if (DEBUG) {
+                            Slog.w(TAG, "Can't resolve new app " + packageName);
+                        }
+                    }
+                }
+
+                // Whenever a package is added or updated we need to update
+                // the package metadata bookkeeping.
+                dataChangedImpl(PACKAGE_MANAGER_SENTINEL);
+            } else {
+                if (replacing) {
+                    // The package is being updated.  We'll receive a PACKAGE_ADDED shortly.
+                } else {
+                    // Outright removal.  In the full-data case, the app will be dropped
+                    // from the queue when its (now obsolete) name comes up again for
+                    // backup.
+                    synchronized (mBackupParticipants) {
+                        removePackageParticipantsLocked(pkgList, uid);
+                    }
+                }
+                for (final String pkgName : pkgList) {
+                    mBackupHandler.post(
+                            () -> mTransportManager.onPackageRemoved(pkgName));
+                }
+            }
+        }
+    };
+
+    // Add the backup agents in the given packages to our set of known backup participants.
+    // If 'packageNames' is null, adds all backup agents in the whole system.
+    private void addPackageParticipantsLocked(String[] packageNames) {
+        // Look for apps that define the android:backupAgent attribute
+        List<PackageInfo> targetApps = allAgentPackages();
+        if (packageNames != null) {
+            if (MORE_DEBUG) Slog.v(TAG, "addPackageParticipantsLocked: #" + packageNames.length);
+            for (String packageName : packageNames) {
+                addPackageParticipantsLockedInner(packageName, targetApps);
+            }
+        } else {
+            if (MORE_DEBUG) Slog.v(TAG, "addPackageParticipantsLocked: all");
+            addPackageParticipantsLockedInner(null, targetApps);
+        }
+    }
+
+    private void addPackageParticipantsLockedInner(String packageName,
+            List<PackageInfo> targetPkgs) {
+        if (MORE_DEBUG) {
+            Slog.v(TAG, "Examining " + packageName + " for backup agent");
+        }
+
+        for (PackageInfo pkg : targetPkgs) {
+            if (packageName == null || pkg.packageName.equals(packageName)) {
+                int uid = pkg.applicationInfo.uid;
+                HashSet<String> set = mBackupParticipants.get(uid);
+                if (set == null) {
+                    set = new HashSet<>();
+                    mBackupParticipants.put(uid, set);
+                }
+                set.add(pkg.packageName);
+                if (MORE_DEBUG) Slog.v(TAG, "Agent found; added");
+
+                // Schedule a backup for it on general principles
+                if (MORE_DEBUG) Slog.i(TAG, "Scheduling backup for new app " + pkg.packageName);
+                Message msg = mBackupHandler
+                        .obtainMessage(MSG_SCHEDULE_BACKUP_PACKAGE, pkg.packageName);
+                mBackupHandler.sendMessage(msg);
+            }
+        }
+    }
+
+    // Remove the given packages' entries from our known active set.
+    private void removePackageParticipantsLocked(String[] packageNames, int oldUid) {
+        if (packageNames == null) {
+            Slog.w(TAG, "removePackageParticipants with null list");
+            return;
+        }
+
+        if (MORE_DEBUG) {
+            Slog.v(TAG, "removePackageParticipantsLocked: uid=" + oldUid
+                    + " #" + packageNames.length);
+        }
+        for (String pkg : packageNames) {
+            // Known previous UID, so we know which package set to check
+            HashSet<String> set = mBackupParticipants.get(oldUid);
+            if (set != null && set.contains(pkg)) {
+                removePackageFromSetLocked(set, pkg);
+                if (set.isEmpty()) {
+                    if (MORE_DEBUG) Slog.v(TAG, "  last one of this uid; purging set");
+                    mBackupParticipants.remove(oldUid);
+                }
+            }
+        }
+    }
+
+    private void removePackageFromSetLocked(final HashSet<String> set,
+            final String packageName) {
+        if (set.contains(packageName)) {
+            // Found it.  Remove this one package from the bookkeeping, and
+            // if it's the last participating app under this uid we drop the
+            // (now-empty) set as well.
+            // Note that we deliberately leave it 'known' in the "ever backed up"
+            // bookkeeping so that its current-dataset data will be retrieved
+            // if the app is subsequently reinstalled
+            if (MORE_DEBUG) Slog.v(TAG, "  removing participant " + packageName);
+            set.remove(packageName);
+            mPendingBackups.remove(packageName);
+        }
+    }
+
+    // Returns the set of all applications that define an android:backupAgent attribute
+    private List<PackageInfo> allAgentPackages() {
+        // !!! TODO: cache this and regenerate only when necessary
+        int flags = PackageManager.GET_SIGNING_CERTIFICATES;
+        List<PackageInfo> packages = mPackageManager.getInstalledPackages(flags);
+        int numPackages = packages.size();
+        for (int a = numPackages - 1; a >= 0; a--) {
+            PackageInfo pkg = packages.get(a);
+            try {
+                ApplicationInfo app = pkg.applicationInfo;
+                if (((app.flags & ApplicationInfo.FLAG_ALLOW_BACKUP) == 0)
+                        || app.backupAgentName == null
+                        || (app.flags & ApplicationInfo.FLAG_FULL_BACKUP_ONLY) != 0) {
+                    packages.remove(a);
+                } else {
+                    // we will need the shared library path, so look that up and store it here.
+                    // This is used implicitly when we pass the PackageInfo object off to
+                    // the Activity Manager to launch the app for backup/restore purposes.
+                    app = mPackageManager.getApplicationInfo(pkg.packageName,
+                            PackageManager.GET_SHARED_LIBRARY_FILES);
+                    pkg.applicationInfo.sharedLibraryFiles = app.sharedLibraryFiles;
+                    pkg.applicationInfo.sharedLibraryInfos = app.sharedLibraryInfos;
+                }
+            } catch (NameNotFoundException e) {
+                packages.remove(a);
+            }
+        }
+        return packages;
+    }
+
+    /**
+     * Called from the backup tasks: record that the given app has been successfully backed up at
+     * least once. This includes both key/value and full-data backups through the transport.
+     */
+    public void logBackupComplete(String packageName) {
+        if (packageName.equals(PACKAGE_MANAGER_SENTINEL)) return;
+
+        for (String receiver : mConstants.getBackupFinishedNotificationReceivers()) {
+            final Intent notification = new Intent();
+            notification.setAction(BACKUP_FINISHED_ACTION);
+            notification.setPackage(receiver);
+            notification.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES
+                    | Intent.FLAG_RECEIVER_FOREGROUND);
+            notification.putExtra(BACKUP_FINISHED_PACKAGE_EXTRA, packageName);
+            mContext.sendBroadcastAsUser(notification, UserHandle.OWNER);
+        }
+
+        mProcessedPackagesJournal.addPackage(packageName);
+    }
+
+    /**
+     * Persistently record the current and ancestral backup tokens, as well as the set of packages
+     * with data available in the ancestral dataset.
+     */
+    public void writeRestoreTokens() {
+        try (RandomAccessFile af = new RandomAccessFile(mTokenFile, "rwd")) {
+            // First, the version number of this record, for futureproofing
+            af.writeInt(CURRENT_ANCESTRAL_RECORD_VERSION);
+
+            // Write the ancestral and current tokens
+            af.writeLong(mAncestralToken);
+            af.writeLong(mCurrentToken);
+
+            // Now write the set of ancestral packages
+            if (mAncestralPackages == null) {
+                af.writeInt(-1);
+            } else {
+                af.writeInt(mAncestralPackages.size());
+                if (DEBUG) Slog.v(TAG, "Ancestral packages:  " + mAncestralPackages.size());
+                for (String pkgName : mAncestralPackages) {
+                    af.writeUTF(pkgName);
+                    if (MORE_DEBUG) Slog.v(TAG, "   " + pkgName);
+                }
+            }
+        } catch (IOException e) {
+            Slog.w(TAG, "Unable to write token file:", e);
+        }
+    }
+
+    /** Fires off a backup agent, blocking until it attaches or times out. */
+    @Nullable
+    public IBackupAgent bindToAgentSynchronous(ApplicationInfo app, int mode) {
+        IBackupAgent agent = null;
+        synchronized (mAgentConnectLock) {
+            mConnecting = true;
+            mConnectedAgent = null;
+            try {
+                if (mActivityManager.bindBackupAgent(app.packageName, mode,
+                        UserHandle.USER_OWNER)) {
+                    Slog.d(TAG, "awaiting agent for " + app);
+
+                    // success; wait for the agent to arrive
+                    // only wait 10 seconds for the bind to happen
+                    long timeoutMark = System.currentTimeMillis() + TIMEOUT_INTERVAL;
+                    while (mConnecting && mConnectedAgent == null
+                            && (System.currentTimeMillis() < timeoutMark)) {
+                        try {
+                            mAgentConnectLock.wait(5000);
+                        } catch (InterruptedException e) {
+                            // just bail
+                            Slog.w(TAG, "Interrupted: " + e);
+                            mConnecting = false;
+                            mConnectedAgent = null;
+                        }
+                    }
+
+                    // if we timed out with no connect, abort and move on
+                    if (mConnecting) {
+                        Slog.w(TAG, "Timeout waiting for agent " + app);
+                        mConnectedAgent = null;
+                    }
+                    if (DEBUG) Slog.i(TAG, "got agent " + mConnectedAgent);
+                    agent = mConnectedAgent;
+                }
+            } catch (RemoteException e) {
+                // can't happen - ActivityManager is local
+            }
+        }
+        if (agent == null) {
+            try {
+                mActivityManager.clearPendingBackup();
+            } catch (RemoteException e) {
+                // can't happen - ActivityManager is local
+            }
+        }
+        return agent;
+    }
+
+    /** Unbind from a backup agent. */
+    public void unbindAgent(ApplicationInfo app) {
+        try {
+            mActivityManager.unbindBackupAgent(app);
+        } catch (RemoteException e) {
+            // Can't happen - activity manager is local
+        }
+    }
+
+    /**
+     * Clear an application's data, blocking until the operation completes or times out. If {@code
+     * keepSystemState} is {@code true}, we intentionally do not clear system state that would
+     * ordinarily also be cleared, because we aren't actually wiping the app back to empty; we're
+     * bringing it into the actual expected state related to the already-restored notification state
+     * etc.
+     */
+    public void clearApplicationDataSynchronous(String packageName, boolean keepSystemState) {
+        // Don't wipe packages marked allowClearUserData=false
+        try {
+            PackageInfo info = mPackageManager.getPackageInfo(packageName, 0);
+            if ((info.applicationInfo.flags & ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA) == 0) {
+                if (MORE_DEBUG) {
+                    Slog.i(TAG, "allowClearUserData=false so not wiping "
+                            + packageName);
+                }
+                return;
+            }
+        } catch (NameNotFoundException e) {
+            Slog.w(TAG, "Tried to clear data for " + packageName + " but not found");
+            return;
+        }
+
+        ClearDataObserver observer = new ClearDataObserver(this);
+
+        synchronized (mClearDataLock) {
+            mClearingData = true;
+            try {
+                mActivityManager.clearApplicationUserData(
+                        packageName, keepSystemState, observer, 0);
+            } catch (RemoteException e) {
+                // can't happen because the activity manager is in this process
+            }
+
+            // only wait 10 seconds for the clear data to happen
+            long timeoutMark = System.currentTimeMillis() + TIMEOUT_INTERVAL;
+            while (mClearingData && (System.currentTimeMillis() < timeoutMark)) {
+                try {
+                    mClearDataLock.wait(5000);
+                } catch (InterruptedException e) {
+                    // won't happen, but still.
+                    mClearingData = false;
+                }
+            }
+        }
+    }
+
+    /**
+     * Get the restore-set token for the best-available restore set for this {@code packageName}:
+     * the active set if possible, else the ancestral one. Returns zero if none available.
+     */
+    public long getAvailableRestoreToken(String packageName) {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "getAvailableRestoreToken");
+
+        long token = mAncestralToken;
+        synchronized (mQueueLock) {
+            if (mCurrentToken != 0 && mProcessedPackagesJournal.hasBeenProcessed(packageName)) {
+                if (MORE_DEBUG) {
+                    Slog.i(TAG, "App in ever-stored, so using current token");
+                }
+                token = mCurrentToken;
+            }
+        }
+        if (MORE_DEBUG) Slog.i(TAG, "getAvailableRestoreToken() == " + token);
+        return token;
+    }
+
+    /**
+     * Requests a backup for the inputted {@code packages}.
+     *
+     * @see #requestBackup(String[], IBackupObserver, IBackupManagerMonitor, int).
+     */
+    public int requestBackup(String[] packages, IBackupObserver observer, int flags) {
+        return requestBackup(packages, observer, null, flags);
+    }
+
+    /**
+     * Requests a backup for the inputted {@code packages} with a specified {@link
+     * IBackupManagerMonitor}.
+     */
+    public int requestBackup(String[] packages, IBackupObserver observer,
+            IBackupManagerMonitor monitor, int flags) {
+        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "requestBackup");
+
+        if (packages == null || packages.length < 1) {
+            Slog.e(TAG, "No packages named for backup request");
+            BackupObserverUtils.sendBackupFinished(observer, BackupManager.ERROR_TRANSPORT_ABORTED);
+            monitor = BackupManagerMonitorUtils.monitorEvent(monitor,
+                    BackupManagerMonitor.LOG_EVENT_ID_NO_PACKAGES,
+                    null, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT, null);
+            throw new IllegalArgumentException("No packages are provided for backup");
+        }
+
+        if (!mEnabled || !mProvisioned) {
+            Slog.i(TAG, "Backup requested but e=" + mEnabled + " p=" + mProvisioned);
+            BackupObserverUtils.sendBackupFinished(observer,
+                    BackupManager.ERROR_BACKUP_NOT_ALLOWED);
+            final int logTag = mProvisioned
+                    ? BackupManagerMonitor.LOG_EVENT_ID_BACKUP_DISABLED
+                    : BackupManagerMonitor.LOG_EVENT_ID_DEVICE_NOT_PROVISIONED;
+            monitor = BackupManagerMonitorUtils.monitorEvent(monitor, logTag, null,
+                    BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY, null);
+            return BackupManager.ERROR_BACKUP_NOT_ALLOWED;
+        }
+
+        final TransportClient transportClient;
+        final String transportDirName;
+        try {
+            transportDirName =
+                    mTransportManager.getTransportDirName(
+                            mTransportManager.getCurrentTransportName());
+            transportClient =
+                    mTransportManager.getCurrentTransportClientOrThrow("BMS.requestBackup()");
+        } catch (TransportNotRegisteredException e) {
+            BackupObserverUtils.sendBackupFinished(observer, BackupManager.ERROR_TRANSPORT_ABORTED);
+            monitor = BackupManagerMonitorUtils.monitorEvent(monitor,
+                    BackupManagerMonitor.LOG_EVENT_ID_TRANSPORT_IS_NULL,
+                    null, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT, null);
+            return BackupManager.ERROR_TRANSPORT_ABORTED;
+        }
+
+        OnTaskFinishedListener listener =
+                caller -> mTransportManager.disposeOfTransportClient(transportClient, caller);
+
+        ArrayList<String> fullBackupList = new ArrayList<>();
+        ArrayList<String> kvBackupList = new ArrayList<>();
+        for (String packageName : packages) {
+            if (PACKAGE_MANAGER_SENTINEL.equals(packageName)) {
+                kvBackupList.add(packageName);
+                continue;
+            }
+            try {
+                PackageInfo packageInfo = mPackageManager.getPackageInfo(packageName,
+                        PackageManager.GET_SIGNING_CERTIFICATES);
+                if (!AppBackupUtils.appIsEligibleForBackup(packageInfo.applicationInfo,
+                        mPackageManager)) {
+                    BackupObserverUtils.sendBackupOnPackageResult(observer, packageName,
+                            BackupManager.ERROR_BACKUP_NOT_ALLOWED);
+                    continue;
+                }
+                if (AppBackupUtils.appGetsFullBackup(packageInfo)) {
+                    fullBackupList.add(packageInfo.packageName);
+                } else {
+                    kvBackupList.add(packageInfo.packageName);
+                }
+            } catch (NameNotFoundException e) {
+                BackupObserverUtils.sendBackupOnPackageResult(observer, packageName,
+                        BackupManager.ERROR_PACKAGE_NOT_FOUND);
+            }
+        }
+        EventLog.writeEvent(EventLogTags.BACKUP_REQUESTED, packages.length, kvBackupList.size(),
+                fullBackupList.size());
+        if (MORE_DEBUG) {
+            Slog.i(TAG, "Backup requested for " + packages.length + " packages, of them: "
+                    + fullBackupList.size() + " full backups, " + kvBackupList.size()
+                    + " k/v backups");
+        }
+
+        boolean nonIncrementalBackup = (flags & BackupManager.FLAG_NON_INCREMENTAL_BACKUP) != 0;
+
+        Message msg = mBackupHandler.obtainMessage(MSG_REQUEST_BACKUP);
+        msg.obj = new BackupParams(transportClient, transportDirName, kvBackupList, fullBackupList,
+                observer, monitor, listener, true, nonIncrementalBackup);
+        mBackupHandler.sendMessage(msg);
+        return BackupManager.SUCCESS;
+    }
+
+    /** Cancel all running backups. */
+    public void cancelBackups() {
+        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "cancelBackups");
+        if (MORE_DEBUG) {
+            Slog.i(TAG, "cancelBackups() called.");
+        }
+        final long oldToken = Binder.clearCallingIdentity();
+        try {
+            List<Integer> operationsToCancel = new ArrayList<>();
+            synchronized (mCurrentOpLock) {
+                for (int i = 0; i < mCurrentOperations.size(); i++) {
+                    Operation op = mCurrentOperations.valueAt(i);
+                    int token = mCurrentOperations.keyAt(i);
+                    if (op.type == OP_TYPE_BACKUP) {
+                        operationsToCancel.add(token);
+                    }
+                }
+            }
+            for (Integer token : operationsToCancel) {
+                handleCancel(token, true /* cancelAll */);
+            }
+            // We don't want the backup jobs to kick in any time soon.
+            // Reschedules them to run in the distant future.
+            KeyValueBackupJob.schedule(mContext, BUSY_BACKOFF_MIN_MILLIS, mConstants);
+            FullBackupJob.schedule(mContext, 2 * BUSY_BACKOFF_MIN_MILLIS, mConstants);
+        } finally {
+            Binder.restoreCallingIdentity(oldToken);
+        }
+    }
+
+    /** Schedule a timeout message for the operation identified by {@code token}. */
+    public void prepareOperationTimeout(int token, long interval, BackupRestoreTask callback,
+            int operationType) {
+        if (operationType != OP_TYPE_BACKUP_WAIT && operationType != OP_TYPE_RESTORE_WAIT) {
+            Slog.wtf(TAG, "prepareOperationTimeout() doesn't support operation "
+                    + Integer.toHexString(token) + " of type " + operationType);
+            return;
+        }
+        if (MORE_DEBUG) {
+            Slog.v(TAG, "starting timeout: token=" + Integer.toHexString(token)
+                    + " interval=" + interval + " callback=" + callback);
+        }
+
+        synchronized (mCurrentOpLock) {
+            mCurrentOperations.put(token, new Operation(OP_PENDING, callback, operationType));
+            Message msg = mBackupHandler.obtainMessage(getMessageIdForOperationType(operationType),
+                    token, 0, callback);
+            mBackupHandler.sendMessageDelayed(msg, interval);
+        }
+    }
+
+    private int getMessageIdForOperationType(int operationType) {
+        switch (operationType) {
+            case OP_TYPE_BACKUP_WAIT:
+                return MSG_BACKUP_OPERATION_TIMEOUT;
+            case OP_TYPE_RESTORE_WAIT:
+                return MSG_RESTORE_OPERATION_TIMEOUT;
+            default:
+                Slog.wtf(TAG, "getMessageIdForOperationType called on invalid operation type: "
+                        + operationType);
+                return -1;
+        }
+    }
+
+    /**
+     * Add an operation to the list of currently running operations. Used for cancellation,
+     * completion and timeout callbacks that act on the operation via the {@code token}.
+     */
+    public void putOperation(int token, Operation operation) {
+        if (MORE_DEBUG) {
+            Slog.d(TAG, "Adding operation token=" + Integer.toHexString(token) + ", operation type="
+                    + operation.type);
+        }
+        synchronized (mCurrentOpLock) {
+            mCurrentOperations.put(token, operation);
+        }
+    }
+
+    /**
+     * Remove an operation from the list of currently running operations. An operation is removed
+     * when it is completed, cancelled, or timed out, and thus no longer running.
+     */
+    public void removeOperation(int token) {
+        if (MORE_DEBUG) {
+            Slog.d(TAG, "Removing operation token=" + Integer.toHexString(token));
+        }
+        synchronized (mCurrentOpLock) {
+            if (mCurrentOperations.get(token) == null) {
+                Slog.w(TAG, "Duplicate remove for operation. token="
+                        + Integer.toHexString(token));
+            }
+            mCurrentOperations.remove(token);
+        }
+    }
+
+    /** Block until we received an operation complete message (from the agent or cancellation). */
+    public boolean waitUntilOperationComplete(int token) {
+        if (MORE_DEBUG) {
+            Slog.i(TAG, "Blocking until operation complete for "
+                    + Integer.toHexString(token));
+        }
+        int finalState = OP_PENDING;
+        Operation op = null;
+        synchronized (mCurrentOpLock) {
+            while (true) {
+                op = mCurrentOperations.get(token);
+                if (op == null) {
+                    // mysterious disappearance: treat as success with no callback
+                    break;
+                } else {
+                    if (op.state == OP_PENDING) {
+                        try {
+                            mCurrentOpLock.wait();
+                        } catch (InterruptedException e) {
+                        }
+                        // When the wait is notified we loop around and recheck the current state
+                    } else {
+                        if (MORE_DEBUG) {
+                            Slog.d(TAG, "Unblocked waiting for operation token="
+                                    + Integer.toHexString(token));
+                        }
+                        // No longer pending; we're done
+                        finalState = op.state;
+                        break;
+                    }
+                }
+            }
+        }
+
+        removeOperation(token);
+        if (op != null) {
+            mBackupHandler.removeMessages(getMessageIdForOperationType(op.type));
+        }
+        if (MORE_DEBUG) {
+            Slog.v(TAG, "operation " + Integer.toHexString(token)
+                    + " complete: finalState=" + finalState);
+        }
+        return finalState == OP_ACKNOWLEDGED;
+    }
+
+    /** Cancel the operation associated with {@code token}. */
+    public void handleCancel(int token, boolean cancelAll) {
+        // Notify any synchronous waiters
+        Operation op = null;
+        synchronized (mCurrentOpLock) {
+            op = mCurrentOperations.get(token);
+            if (MORE_DEBUG) {
+                if (op == null) {
+                    Slog.w(TAG, "Cancel of token " + Integer.toHexString(token)
+                            + " but no op found");
+                }
+            }
+            int state = (op != null) ? op.state : OP_TIMEOUT;
+            if (state == OP_ACKNOWLEDGED) {
+                // The operation finished cleanly, so we have nothing more to do.
+                if (DEBUG) {
+                    Slog.w(TAG, "Operation already got an ack."
+                            + "Should have been removed from mCurrentOperations.");
+                }
+                op = null;
+                mCurrentOperations.delete(token);
+            } else if (state == OP_PENDING) {
+                if (DEBUG) Slog.v(TAG, "Cancel: token=" + Integer.toHexString(token));
+                op.state = OP_TIMEOUT;
+                // Can't delete op from mCurrentOperations here. waitUntilOperationComplete may be
+                // called after we receive cancel here. We need this op's state there.
+
+                // Remove all pending timeout messages of types OP_TYPE_BACKUP_WAIT and
+                // OP_TYPE_RESTORE_WAIT. On the other hand, OP_TYPE_BACKUP cannot time out and
+                // doesn't require cancellation.
+                if (op.type == OP_TYPE_BACKUP_WAIT || op.type == OP_TYPE_RESTORE_WAIT) {
+                    mBackupHandler.removeMessages(getMessageIdForOperationType(op.type));
+                }
+            }
+            mCurrentOpLock.notifyAll();
+        }
+
+        // If there's a TimeoutHandler for this event, call it
+        if (op != null && op.callback != null) {
+            if (MORE_DEBUG) {
+                Slog.v(TAG, "   Invoking cancel on " + op.callback);
+            }
+            op.callback.handleCancel(cancelAll);
+        }
+    }
+
+    /** Returns {@code true} if a backup is currently running, else returns {@code false}. */
+    public boolean isBackupOperationInProgress() {
+        synchronized (mCurrentOpLock) {
+            for (int i = 0; i < mCurrentOperations.size(); i++) {
+                Operation op = mCurrentOperations.valueAt(i);
+                if (op.type == OP_TYPE_BACKUP && op.state == OP_PENDING) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    /** Unbind the backup agent and kill the app if it's a non-system app. */
+    public void tearDownAgentAndKill(ApplicationInfo app) {
+        if (app == null) {
+            // Null means the system package, so just quietly move on.  :)
+            return;
+        }
+
+        try {
+            // unbind and tidy up even on timeout or failure, just in case
+            mActivityManager.unbindBackupAgent(app);
+
+            // The agent was running with a stub Application object, so shut it down.
+            // !!! We hardcode the confirmation UI's package name here rather than use a
+            //     manifest flag!  TODO something less direct.
+            if (app.uid >= Process.FIRST_APPLICATION_UID
+                    && !app.packageName.equals("com.android.backupconfirm")) {
+                if (MORE_DEBUG) Slog.d(TAG, "Killing agent host process");
+                mActivityManager.killApplicationProcess(app.processName, app.uid);
+            } else {
+                if (MORE_DEBUG) Slog.d(TAG, "Not killing after operation: " + app.processName);
+            }
+        } catch (RemoteException e) {
+            Slog.d(TAG, "Lost app trying to shut down");
+        }
+    }
+
+    /** For adb backup/restore. */
+    public boolean deviceIsEncrypted() {
+        try {
+            return mStorageManager.getEncryptionState()
+                    != StorageManager.ENCRYPTION_STATE_NONE
+                    && mStorageManager.getPasswordType()
+                    != StorageManager.CRYPT_TYPE_DEFAULT;
+        } catch (Exception e) {
+            // If we can't talk to the storagemanager service we have a serious problem; fail
+            // "secure" i.e. assuming that the device is encrypted.
+            Slog.e(TAG, "Unable to communicate with storagemanager service: " + e.getMessage());
+            return true;
+        }
+    }
+
+    // ----- Full-data backup scheduling -----
+
+    /**
+     * Schedule a job to tell us when it's a good time to run a full backup
+     */
+    public void scheduleNextFullBackupJob(long transportMinLatency) {
+        synchronized (mQueueLock) {
+            if (mFullBackupQueue.size() > 0) {
+                // schedule the next job at the point in the future when the least-recently
+                // backed up app comes due for backup again; or immediately if it's already
+                // due.
+                final long upcomingLastBackup = mFullBackupQueue.get(0).lastBackup;
+                final long timeSinceLast = System.currentTimeMillis() - upcomingLastBackup;
+                final long interval = mConstants.getFullBackupIntervalMilliseconds();
+                final long appLatency = (timeSinceLast < interval) ? (interval - timeSinceLast) : 0;
+                final long latency = Math.max(transportMinLatency, appLatency);
+                Runnable r = new Runnable() {
+                    @Override
+                    public void run() {
+                        FullBackupJob.schedule(mContext, latency, mConstants);
+                    }
+                };
+                mBackupHandler.postDelayed(r, 2500);
+            } else {
+                if (DEBUG_SCHEDULING) {
+                    Slog.i(TAG, "Full backup queue empty; not scheduling");
+                }
+            }
+        }
+    }
+
+    /**
+     * Remove a package from the full-data queue.
+     */
+    @GuardedBy("mQueueLock")
+    private void dequeueFullBackupLocked(String packageName) {
+        final int numPackages = mFullBackupQueue.size();
+        for (int i = numPackages - 1; i >= 0; i--) {
+            final FullBackupEntry e = mFullBackupQueue.get(i);
+            if (packageName.equals(e.packageName)) {
+                mFullBackupQueue.remove(i);
+            }
+        }
+    }
+
+    /**
+     * Enqueue full backup for the given app, with a note about when it last ran.
+     */
+    public void enqueueFullBackup(String packageName, long lastBackedUp) {
+        FullBackupEntry newEntry = new FullBackupEntry(packageName, lastBackedUp);
+        synchronized (mQueueLock) {
+            // First, sanity check that we aren't adding a duplicate.  Slow but
+            // straightforward; we'll have at most on the order of a few hundred
+            // items in this list.
+            dequeueFullBackupLocked(packageName);
+
+            // This is also slow but easy for modest numbers of apps: work backwards
+            // from the end of the queue until we find an item whose last backup
+            // time was before this one, then insert this new entry after it.  If we're
+            // adding something new we don't bother scanning, and just prepend.
+            int which = -1;
+            if (lastBackedUp > 0) {
+                for (which = mFullBackupQueue.size() - 1; which >= 0; which--) {
+                    final FullBackupEntry entry = mFullBackupQueue.get(which);
+                    if (entry.lastBackup <= lastBackedUp) {
+                        mFullBackupQueue.add(which + 1, newEntry);
+                        break;
+                    }
+                }
+            }
+            if (which < 0) {
+                // this one is earlier than any existing one, so prepend
+                mFullBackupQueue.add(0, newEntry);
+            }
+        }
+        writeFullBackupScheduleAsync();
+    }
+
+    private boolean fullBackupAllowable(String transportName) {
+        if (!mTransportManager.isTransportRegistered(transportName)) {
+            Slog.w(TAG, "Transport not registered; full data backup not performed");
+            return false;
+        }
+
+        // Don't proceed unless we have already established package metadata
+        // for the current dataset via a key/value backup pass.
+        try {
+            String transportDirName = mTransportManager.getTransportDirName(transportName);
+            File stateDir = new File(mBaseStateDir, transportDirName);
+            File pmState = new File(stateDir, PACKAGE_MANAGER_SENTINEL);
+            if (pmState.length() <= 0) {
+                if (DEBUG) {
+                    Slog.i(TAG, "Full backup requested but dataset not yet initialized");
+                }
+                return false;
+            }
+        } catch (Exception e) {
+            Slog.w(TAG, "Unable to get transport name: " + e.getMessage());
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Conditions are right for a full backup operation, so run one.  The model we use is
+     * to perform one app backup per scheduled job execution, and to reschedule the job
+     * with zero latency as long as conditions remain right and we still have work to do.
+     *
+     * <p>This is the "start a full backup operation" entry point called by the scheduled job.
+     *
+     * @return Whether ongoing work will continue.  The return value here will be passed
+     * along as the return value to the scheduled job's onStartJob() callback.
+     */
+    public boolean beginFullBackup(FullBackupJob scheduledJob) {
+        final long now = System.currentTimeMillis();
+        final long fullBackupInterval;
+        final long keyValueBackupInterval;
+        synchronized (mConstants) {
+            fullBackupInterval = mConstants.getFullBackupIntervalMilliseconds();
+            keyValueBackupInterval = mConstants.getKeyValueBackupIntervalMilliseconds();
+        }
+        FullBackupEntry entry = null;
+        long latency = fullBackupInterval;
+
+        if (!mEnabled || !mProvisioned) {
+            // Backups are globally disabled, so don't proceed.  We also don't reschedule
+            // the job driving automatic backups; that job will be scheduled again when
+            // the user enables backup.
+            if (MORE_DEBUG) {
+                Slog.i(TAG, "beginFullBackup but e=" + mEnabled
+                        + " p=" + mProvisioned + "; ignoring");
+            }
+            return false;
+        }
+
+        // Don't run the backup if we're in battery saver mode, but reschedule
+        // to try again in the not-so-distant future.
+        final PowerSaveState result =
+                mPowerManager.getPowerSaveState(ServiceType.FULL_BACKUP);
+        if (result.batterySaverEnabled) {
+            if (DEBUG) Slog.i(TAG, "Deferring scheduled full backups in battery saver mode");
+            FullBackupJob.schedule(mContext, keyValueBackupInterval, mConstants);
+            return false;
+        }
+
+        if (DEBUG_SCHEDULING) {
+            Slog.i(TAG, "Beginning scheduled full backup operation");
+        }
+
+        // Great; we're able to run full backup jobs now.  See if we have any work to do.
+        synchronized (mQueueLock) {
+            if (mRunningFullBackupTask != null) {
+                Slog.e(TAG, "Backup triggered but one already/still running!");
+                return false;
+            }
+
+            // At this point we think that we have work to do, but possibly not right now.
+            // Any exit without actually running backups will also require that we
+            // reschedule the job.
+            boolean runBackup = true;
+            boolean headBusy;
+
+            do {
+                // Recheck each time, because culling due to ineligibility may
+                // have emptied the queue.
+                if (mFullBackupQueue.size() == 0) {
+                    // no work to do so just bow out
+                    if (DEBUG) {
+                        Slog.i(TAG, "Backup queue empty; doing nothing");
+                    }
+                    runBackup = false;
+                    break;
+                }
+
+                headBusy = false;
+
+                String transportName = mTransportManager.getCurrentTransportName();
+                if (!fullBackupAllowable(transportName)) {
+                    if (MORE_DEBUG) {
+                        Slog.i(TAG, "Preconditions not met; not running full backup");
+                    }
+                    runBackup = false;
+                    // Typically this means we haven't run a key/value backup yet.  Back off
+                    // full-backup operations by the key/value job's run interval so that
+                    // next time we run, we are likely to be able to make progress.
+                    latency = keyValueBackupInterval;
+                }
+
+                if (runBackup) {
+                    entry = mFullBackupQueue.get(0);
+                    long timeSinceRun = now - entry.lastBackup;
+                    runBackup = (timeSinceRun >= fullBackupInterval);
+                    if (!runBackup) {
+                        // It's too early to back up the next thing in the queue, so bow out
+                        if (MORE_DEBUG) {
+                            Slog.i(TAG, "Device ready but too early to back up next app");
+                        }
+                        // Wait until the next app in the queue falls due for a full data backup
+                        latency = fullBackupInterval - timeSinceRun;
+                        break;  // we know we aren't doing work yet, so bail.
+                    }
+
+                    try {
+                        PackageInfo appInfo = mPackageManager.getPackageInfo(entry.packageName, 0);
+                        if (!AppBackupUtils.appGetsFullBackup(appInfo)) {
+                            // The head app isn't supposed to get full-data backups [any more];
+                            // so we cull it and force a loop around to consider the new head
+                            // app.
+                            if (MORE_DEBUG) {
+                                Slog.i(TAG, "Culling package " + entry.packageName
+                                        + " in full-backup queue but not eligible");
+                            }
+                            mFullBackupQueue.remove(0);
+                            headBusy = true; // force the while() condition
+                            continue;
+                        }
+
+                        final int privFlags = appInfo.applicationInfo.privateFlags;
+                        headBusy = (privFlags & PRIVATE_FLAG_BACKUP_IN_FOREGROUND) == 0
+                                && mActivityManager.isAppForeground(appInfo.applicationInfo.uid);
+
+                        if (headBusy) {
+                            final long nextEligible = System.currentTimeMillis()
+                                    + BUSY_BACKOFF_MIN_MILLIS
+                                    + mTokenGenerator.nextInt(BUSY_BACKOFF_FUZZ);
+                            if (DEBUG_SCHEDULING) {
+                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                                Slog.i(TAG, "Full backup time but " + entry.packageName
+                                        + " is busy; deferring to "
+                                        + sdf.format(new Date(nextEligible)));
+                            }
+                            // This relocates the app's entry from the head of the queue to
+                            // its order-appropriate position further down, so upon looping
+                            // a new candidate will be considered at the head.
+                            enqueueFullBackup(entry.packageName, nextEligible - fullBackupInterval);
+                        }
+                    } catch (NameNotFoundException nnf) {
+                        // So, we think we want to back this up, but it turns out the package
+                        // in question is no longer installed.  We want to drop it from the
+                        // queue entirely and move on, but if there's nothing else in the queue
+                        // we should bail entirely.  headBusy cannot have been set to true yet.
+                        runBackup = (mFullBackupQueue.size() > 1);
+                    } catch (RemoteException e) {
+                        // Cannot happen; the Activity Manager is in the same process
+                    }
+                }
+            } while (headBusy);
+
+            if (!runBackup) {
+                if (DEBUG_SCHEDULING) {
+                    Slog.i(TAG, "Nothing pending full backup; rescheduling +" + latency);
+                }
+                final long deferTime = latency;     // pin for the closure
+                mBackupHandler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        FullBackupJob.schedule(mContext, deferTime, mConstants);
+                    }
+                });
+                return false;
+            }
+
+            // Okay, the top thing is ready for backup now.  Do it.
+            mFullBackupQueue.remove(0);
+            CountDownLatch latch = new CountDownLatch(1);
+            String[] pkg = new String[]{entry.packageName};
+            mRunningFullBackupTask = PerformFullTransportBackupTask.newWithCurrentTransport(
+                    this,
+                    /* observer */ null,
+                    pkg,
+                    /* updateSchedule */ true,
+                    scheduledJob,
+                    latch,
+                    /* backupObserver */ null,
+                    /* monitor */ null,
+                    /* userInitiated */ false,
+                    "BMS.beginFullBackup()");
+            // Acquiring wakelock for PerformFullTransportBackupTask before its start.
+            mWakelock.acquire();
+            (new Thread(mRunningFullBackupTask)).start();
+        }
+
+        return true;
+    }
+
+    /**
+     * The job scheduler says our constraints don't hold anymore, so tear down any ongoing backup
+     * task right away.
+     */
+    public void endFullBackup() {
+        // offload the mRunningFullBackupTask.handleCancel() call to another thread,
+        // as we might have to wait for mCancelLock
+        Runnable endFullBackupRunnable = new Runnable() {
+            @Override
+            public void run() {
+                PerformFullTransportBackupTask pftbt = null;
+                synchronized (mQueueLock) {
+                    if (mRunningFullBackupTask != null) {
+                        pftbt = mRunningFullBackupTask;
+                    }
+                }
+                if (pftbt != null) {
+                    if (DEBUG_SCHEDULING) {
+                        Slog.i(TAG, "Telling running backup to stop");
+                    }
+                    pftbt.handleCancel(true);
+                }
+            }
+        };
+        new Thread(endFullBackupRunnable, "end-full-backup").start();
+    }
+
+    /** Used by both incremental and full restore to restore widget data. */
+    public void restoreWidgetData(String packageName, byte[] widgetData) {
+        // Apply the restored widget state and generate the ID update for the app
+        // TODO: http://b/22388012
+        if (MORE_DEBUG) {
+            Slog.i(TAG, "Incorporating restored widget data");
+        }
+        AppWidgetBackupBridge.restoreWidgetState(packageName, widgetData, UserHandle.USER_SYSTEM);
+    }
+
+    // *****************************
+    // NEW UNIFIED RESTORE IMPLEMENTATION
+    // *****************************
+
+    /** Schedule a backup pass for {@code packageName}. */
+    public void dataChangedImpl(String packageName) {
+        HashSet<String> targets = dataChangedTargets(packageName);
+        dataChangedImpl(packageName, targets);
+    }
+
+    private void dataChangedImpl(String packageName, HashSet<String> targets) {
+        // Record that we need a backup pass for the caller.  Since multiple callers
+        // may share a uid, we need to note all candidates within that uid and schedule
+        // a backup pass for each of them.
+        if (targets == null) {
+            Slog.w(TAG, "dataChanged but no participant pkg='" + packageName + "'"
+                    + " uid=" + Binder.getCallingUid());
+            return;
+        }
+
+        synchronized (mQueueLock) {
+            // Note that this client has made data changes that need to be backed up
+            if (targets.contains(packageName)) {
+                // Add the caller to the set of pending backups.  If there is
+                // one already there, then overwrite it, but no harm done.
+                BackupRequest req = new BackupRequest(packageName);
+                if (mPendingBackups.put(packageName, req) == null) {
+                    if (MORE_DEBUG) Slog.d(TAG, "Now staging backup of " + packageName);
+
+                    // Journal this request in case of crash.  The put()
+                    // operation returned null when this package was not already
+                    // in the set; we want to avoid touching the disk redundantly.
+                    writeToJournalLocked(packageName);
+                }
+            }
+        }
+
+        // ...and schedule a backup pass if necessary
+        KeyValueBackupJob.schedule(mContext, mConstants);
+    }
+
+    // Note: packageName is currently unused, but may be in the future
+    private HashSet<String> dataChangedTargets(String packageName) {
+        // If the caller does not hold the BACKUP permission, it can only request a
+        // backup of its own data.
+        if ((mContext.checkPermission(android.Manifest.permission.BACKUP, Binder.getCallingPid(),
+                Binder.getCallingUid())) == PackageManager.PERMISSION_DENIED) {
+            synchronized (mBackupParticipants) {
+                return mBackupParticipants.get(Binder.getCallingUid());
+            }
+        }
+
+        // a caller with full permission can ask to back up any participating app
+        if (PACKAGE_MANAGER_SENTINEL.equals(packageName)) {
+            return Sets.newHashSet(PACKAGE_MANAGER_SENTINEL);
+        } else {
+            synchronized (mBackupParticipants) {
+                return SparseArrayUtils.union(mBackupParticipants);
+            }
+        }
+    }
+
+    private void writeToJournalLocked(String str) {
+        try {
+            if (mJournal == null) mJournal = DataChangedJournal.newJournal(mJournalDir);
+            mJournal.addPackage(str);
+        } catch (IOException e) {
+            Slog.e(TAG, "Can't write " + str + " to backup journal", e);
+            mJournal = null;
+        }
+    }
+
+    // ----- IBackupManager binder interface -----
+
+    /** Sent from an app's backup agent to let the service know that there's new data to backup. */
+    public void dataChanged(final String packageName) {
+        final int callingUserHandle = UserHandle.getCallingUserId();
+        if (callingUserHandle != UserHandle.USER_SYSTEM) {
+            // TODO: http://b/22388012
+            // App is running under a non-owner user profile.  For now, we do not back
+            // up data from secondary user profiles.
+            // TODO: backups for all user profiles although don't add backup for profiles
+            // without adding admin control in DevicePolicyManager.
+            if (MORE_DEBUG) {
+                Slog.v(TAG, "dataChanged(" + packageName + ") ignored because it's user "
+                        + callingUserHandle);
+            }
+            return;
+        }
+
+        final HashSet<String> targets = dataChangedTargets(packageName);
+        if (targets == null) {
+            Slog.w(TAG, "dataChanged but no participant pkg='" + packageName + "'"
+                    + " uid=" + Binder.getCallingUid());
+            return;
+        }
+
+        mBackupHandler.post(new Runnable() {
+            public void run() {
+                dataChangedImpl(packageName, targets);
+            }
+        });
+    }
+
+    /** Run an initialize operation for the given transport. */
+    public void initializeTransports(String[] transportNames, IBackupObserver observer) {
+        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP,
+                "initializeTransport");
+        Slog.v(TAG, "initializeTransport(): " + Arrays.asList(transportNames));
+
+        final long oldId = Binder.clearCallingIdentity();
+        try {
+            mWakelock.acquire();
+            OnTaskFinishedListener listener = caller -> mWakelock.release();
+            mBackupHandler.post(
+                    new PerformInitializeTask(this, transportNames, observer, listener));
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    /** Clear the given package's backup data from the current transport. */
+    public void clearBackupData(String transportName, String packageName) {
+        if (DEBUG) Slog.v(TAG, "clearBackupData() of " + packageName + " on " + transportName);
+        PackageInfo info;
+        try {
+            info = mPackageManager.getPackageInfo(packageName,
+                    PackageManager.GET_SIGNING_CERTIFICATES);
+        } catch (NameNotFoundException e) {
+            Slog.d(TAG, "No such package '" + packageName + "' - not clearing backup data");
+            return;
+        }
+
+        // If the caller does not hold the BACKUP permission, it can only request a
+        // wipe of its own backed-up data.
+        Set<String> apps;
+        if ((mContext.checkPermission(android.Manifest.permission.BACKUP, Binder.getCallingPid(),
+                Binder.getCallingUid())) == PackageManager.PERMISSION_DENIED) {
+            apps = mBackupParticipants.get(Binder.getCallingUid());
+        } else {
+            // a caller with full permission can ask to back up any participating app
+            // !!! TODO: allow data-clear of ANY app?
+            if (MORE_DEBUG) Slog.v(TAG, "Privileged caller, allowing clear of other apps");
+            apps = mProcessedPackagesJournal.getPackagesCopy();
+        }
+
+        if (apps.contains(packageName)) {
+            // found it; fire off the clear request
+            if (MORE_DEBUG) Slog.v(TAG, "Found the app - running clear process");
+            mBackupHandler.removeMessages(MSG_RETRY_CLEAR);
+            synchronized (mQueueLock) {
+                TransportClient transportClient =
+                        mTransportManager
+                                .getTransportClient(transportName, "BMS.clearBackupData()");
+                if (transportClient == null) {
+                    // transport is currently unregistered -- make sure to retry
+                    Message msg = mBackupHandler.obtainMessage(MSG_RETRY_CLEAR,
+                            new ClearRetryParams(transportName, packageName));
+                    mBackupHandler.sendMessageDelayed(msg, TRANSPORT_RETRY_INTERVAL);
+                    return;
+                }
+                long oldId = Binder.clearCallingIdentity();
+                OnTaskFinishedListener listener =
+                        caller ->
+                                mTransportManager.disposeOfTransportClient(transportClient, caller);
+                mWakelock.acquire();
+                Message msg = mBackupHandler.obtainMessage(
+                        MSG_RUN_CLEAR,
+                        new ClearParams(transportClient, info, listener));
+                mBackupHandler.sendMessage(msg);
+                Binder.restoreCallingIdentity(oldId);
+            }
+        }
+    }
+
+    /**
+     * Run a backup pass immediately for any applications that have declared that they have pending
+     * updates.
+     */
+    public void backupNow() {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, "backupNow");
+
+        long oldId = Binder.clearCallingIdentity();
+        try {
+            final PowerSaveState result =
+                    mPowerManager.getPowerSaveState(ServiceType.KEYVALUE_BACKUP);
+            if (result.batterySaverEnabled) {
+                if (DEBUG) Slog.v(TAG, "Not running backup while in battery save mode");
+                KeyValueBackupJob.schedule(mContext, mConstants);   // try again in several hours
+            } else {
+                if (DEBUG) Slog.v(TAG, "Scheduling immediate backup pass");
+                synchronized (mQueueLock) {
+                    // Fire the intent that kicks off the whole shebang...
+                    try {
+                        mRunBackupIntent.send();
+                    } catch (PendingIntent.CanceledException e) {
+                        // should never happen
+                        Slog.e(TAG, "run-backup intent cancelled!");
+                    }
+
+                    // ...and cancel any pending scheduled job, because we've just superseded it
+                    KeyValueBackupJob.cancel(mContext);
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    /** Returns {@code true} if the system user has gone through SUW. */
+    public boolean deviceIsProvisioned() {
+        final ContentResolver resolver = mContext.getContentResolver();
+        return (Settings.Global.getInt(resolver, Settings.Global.DEVICE_PROVISIONED, 0) != 0);
+    }
+
+    /**
+     * Used by 'adb backup' to run a backup pass for packages supplied via the command line, writing
+     * the resulting data stream to the supplied {@code fd}. This method is synchronous and does not
+     * return to the caller until the backup has been completed. It requires on-screen confirmation
+     * by the user.
+     */
+    public void adbBackup(ParcelFileDescriptor fd, boolean includeApks, boolean includeObbs,
+            boolean includeShared, boolean doWidgets, boolean doAllApps, boolean includeSystem,
+            boolean compress, boolean doKeyValue, String[] pkgList) {
+        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "adbBackup");
+
+        final int callingUserHandle = UserHandle.getCallingUserId();
+        // TODO: http://b/22388012
+        if (callingUserHandle != UserHandle.USER_SYSTEM) {
+            throw new IllegalStateException("Backup supported only for the device owner");
+        }
+
+        // Validate
+        if (!doAllApps) {
+            if (!includeShared) {
+                // If we're backing up shared data (sdcard or equivalent), then we can run
+                // without any supplied app names.  Otherwise, we'd be doing no work, so
+                // report the error.
+                if (pkgList == null || pkgList.length == 0) {
+                    throw new IllegalArgumentException(
+                            "Backup requested but neither shared nor any apps named");
+                }
+            }
+        }
+
+        long oldId = Binder.clearCallingIdentity();
+        try {
+            // Doesn't make sense to do a full backup prior to setup
+            if (!deviceIsProvisioned()) {
+                Slog.i(TAG, "Backup not supported before setup");
+                return;
+            }
+
+            if (DEBUG) {
+                Slog.v(TAG, "Requesting backup: apks=" + includeApks + " obb=" + includeObbs
+                        + " shared=" + includeShared + " all=" + doAllApps + " system="
+                        + includeSystem + " includekeyvalue=" + doKeyValue + " pkgs=" + pkgList);
+            }
+            Slog.i(TAG, "Beginning adb backup...");
+
+            AdbBackupParams params = new AdbBackupParams(fd, includeApks, includeObbs,
+                    includeShared, doWidgets, doAllApps, includeSystem, compress, doKeyValue,
+                    pkgList);
+            final int token = generateRandomIntegerToken();
+            synchronized (mAdbBackupRestoreConfirmations) {
+                mAdbBackupRestoreConfirmations.put(token, params);
+            }
+
+            // start up the confirmation UI
+            if (DEBUG) Slog.d(TAG, "Starting backup confirmation UI, token=" + token);
+            if (!startConfirmationUi(token, FullBackup.FULL_BACKUP_INTENT_ACTION)) {
+                Slog.e(TAG, "Unable to launch backup confirmation UI");
+                mAdbBackupRestoreConfirmations.delete(token);
+                return;
+            }
+
+            // make sure the screen is lit for the user interaction
+            mPowerManager.userActivity(SystemClock.uptimeMillis(),
+                    PowerManager.USER_ACTIVITY_EVENT_OTHER,
+                    0);
+
+            // start the confirmation countdown
+            startConfirmationTimeout(token, params);
+
+            // wait for the backup to be performed
+            if (DEBUG) Slog.d(TAG, "Waiting for backup completion...");
+            waitForCompletion(params);
+        } finally {
+            try {
+                fd.close();
+            } catch (IOException e) {
+                Slog.e(TAG, "IO error closing output for adb backup: " + e.getMessage());
+            }
+            Binder.restoreCallingIdentity(oldId);
+            Slog.d(TAG, "Adb backup processing complete.");
+        }
+    }
+
+    /** Run a full backup pass for the given packages. Used by 'adb shell bmgr'. */
+    public void fullTransportBackup(String[] pkgNames) {
+        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP,
+                "fullTransportBackup");
+
+        final int callingUserHandle = UserHandle.getCallingUserId();
+        // TODO: http://b/22388012
+        if (callingUserHandle != UserHandle.USER_SYSTEM) {
+            throw new IllegalStateException("Restore supported only for the device owner");
+        }
+
+        String transportName = mTransportManager.getCurrentTransportName();
+        if (!fullBackupAllowable(transportName)) {
+            Slog.i(TAG, "Full backup not currently possible -- key/value backup not yet run?");
+        } else {
+            if (DEBUG) {
+                Slog.d(TAG, "fullTransportBackup()");
+            }
+
+            final long oldId = Binder.clearCallingIdentity();
+            try {
+                CountDownLatch latch = new CountDownLatch(1);
+                Runnable task = PerformFullTransportBackupTask.newWithCurrentTransport(
+                        this,
+                        /* observer */ null,
+                        pkgNames,
+                        /* updateSchedule */ false,
+                        /* runningJob */ null,
+                        latch,
+                        /* backupObserver */ null,
+                        /* monitor */ null,
+                        /* userInitiated */ false,
+                        "BMS.fullTransportBackup()");
+                // Acquiring wakelock for PerformFullTransportBackupTask before its start.
+                mWakelock.acquire();
+                (new Thread(task, "full-transport-master")).start();
+                do {
+                    try {
+                        latch.await();
+                        break;
+                    } catch (InterruptedException e) {
+                        // Just go back to waiting for the latch to indicate completion
+                    }
+                } while (true);
+
+                // We just ran a backup on these packages, so kick them to the end of the queue
+                final long now = System.currentTimeMillis();
+                for (String pkg : pkgNames) {
+                    enqueueFullBackup(pkg, now);
+                }
+            } finally {
+                Binder.restoreCallingIdentity(oldId);
+            }
+        }
+
+        if (DEBUG) {
+            Slog.d(TAG, "Done with full transport backup.");
+        }
+    }
+
+    /**
+     * Used by 'adb restore' to run a restore pass, blocking until completion. Requires user
+     * confirmation.
+     */
+    public void adbRestore(ParcelFileDescriptor fd) {
+        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "adbRestore");
+
+        final int callingUserHandle = UserHandle.getCallingUserId();
+        // TODO: http://b/22388012
+        if (callingUserHandle != UserHandle.USER_SYSTEM) {
+            throw new IllegalStateException("Restore supported only for the device owner");
+        }
+
+        long oldId = Binder.clearCallingIdentity();
+
+        try {
+            // Check whether the device has been provisioned -- we don't handle
+            // full restores prior to completing the setup process.
+            if (!deviceIsProvisioned()) {
+                Slog.i(TAG, "Full restore not permitted before setup");
+                return;
+            }
+
+            Slog.i(TAG, "Beginning restore...");
+
+            AdbRestoreParams params = new AdbRestoreParams(fd);
+            final int token = generateRandomIntegerToken();
+            synchronized (mAdbBackupRestoreConfirmations) {
+                mAdbBackupRestoreConfirmations.put(token, params);
+            }
+
+            // start up the confirmation UI
+            if (DEBUG) Slog.d(TAG, "Starting restore confirmation UI, token=" + token);
+            if (!startConfirmationUi(token, FullBackup.FULL_RESTORE_INTENT_ACTION)) {
+                Slog.e(TAG, "Unable to launch restore confirmation");
+                mAdbBackupRestoreConfirmations.delete(token);
+                return;
+            }
+
+            // make sure the screen is lit for the user interaction
+            mPowerManager.userActivity(SystemClock.uptimeMillis(),
+                    PowerManager.USER_ACTIVITY_EVENT_OTHER,
+                    0);
+
+            // start the confirmation countdown
+            startConfirmationTimeout(token, params);
+
+            // wait for the restore to be performed
+            if (DEBUG) Slog.d(TAG, "Waiting for restore completion...");
+            waitForCompletion(params);
+        } finally {
+            try {
+                fd.close();
+            } catch (IOException e) {
+                Slog.w(TAG, "Error trying to close fd after adb restore: " + e);
+            }
+            Binder.restoreCallingIdentity(oldId);
+            Slog.i(TAG, "adb restore processing complete.");
+        }
+    }
+
+    private boolean startConfirmationUi(int token, String action) {
+        try {
+            Intent confIntent = new Intent(action);
+            confIntent.setClassName("com.android.backupconfirm",
+                    "com.android.backupconfirm.BackupRestoreConfirmation");
+            confIntent.putExtra(FullBackup.CONF_TOKEN_INTENT_EXTRA, token);
+            confIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
+            mContext.startActivityAsUser(confIntent, UserHandle.SYSTEM);
+        } catch (ActivityNotFoundException e) {
+            return false;
+        }
+        return true;
+    }
+
+    private void startConfirmationTimeout(int token, AdbParams params) {
+        if (MORE_DEBUG) {
+            Slog.d(TAG, "Posting conf timeout msg after "
+                    + TIMEOUT_FULL_CONFIRMATION + " millis");
+        }
+        Message msg = mBackupHandler.obtainMessage(MSG_FULL_CONFIRMATION_TIMEOUT,
+                token, 0, params);
+        mBackupHandler.sendMessageDelayed(msg, TIMEOUT_FULL_CONFIRMATION);
+    }
+
+    private void waitForCompletion(AdbParams params) {
+        synchronized (params.latch) {
+            while (!params.latch.get()) {
+                try {
+                    params.latch.wait();
+                } catch (InterruptedException e) { /* never interrupted */ }
+            }
+        }
+    }
+
+    /** Called when adb backup/restore has completed. */
+    public void signalAdbBackupRestoreCompletion(AdbParams params) {
+        synchronized (params.latch) {
+            params.latch.set(true);
+            params.latch.notifyAll();
+        }
+    }
+
+    /**
+     * Confirm that the previously-requested full backup/restore operation can proceed. This is used
+     * to require a user-facing disclosure about the operation.
+     */
+    public void acknowledgeAdbBackupOrRestore(int token, boolean allow,
+            String curPassword, String encPpassword, IFullBackupRestoreObserver observer) {
+        if (DEBUG) {
+            Slog.d(TAG, "acknowledgeAdbBackupOrRestore : token=" + token
+                    + " allow=" + allow);
+        }
+
+        // TODO: possibly require not just this signature-only permission, but even
+        // require that the specific designated confirmation-UI app uid is the caller?
+        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP,
+                "acknowledgeAdbBackupOrRestore");
+
+        long oldId = Binder.clearCallingIdentity();
+        try {
+
+            AdbParams params;
+            synchronized (mAdbBackupRestoreConfirmations) {
+                params = mAdbBackupRestoreConfirmations.get(token);
+                if (params != null) {
+                    mBackupHandler.removeMessages(MSG_FULL_CONFIRMATION_TIMEOUT, params);
+                    mAdbBackupRestoreConfirmations.delete(token);
+
+                    if (allow) {
+                        final int verb = params instanceof AdbBackupParams
+                                ? MSG_RUN_ADB_BACKUP
+                                : MSG_RUN_ADB_RESTORE;
+
+                        params.observer = observer;
+                        params.curPassword = curPassword;
+
+                        params.encryptPassword = encPpassword;
+
+                        if (MORE_DEBUG) Slog.d(TAG, "Sending conf message with verb " + verb);
+                        mWakelock.acquire();
+                        Message msg = mBackupHandler.obtainMessage(verb, params);
+                        mBackupHandler.sendMessage(msg);
+                    } else {
+                        Slog.w(TAG, "User rejected full backup/restore operation");
+                        // indicate completion without having actually transferred any data
+                        signalAdbBackupRestoreCompletion(params);
+                    }
+                } else {
+                    Slog.w(TAG, "Attempted to ack full backup/restore with invalid token");
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    /** User-configurable enabling/disabling of backups. */
+    public void setBackupEnabled(boolean enable) {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "setBackupEnabled");
+
+        Slog.i(TAG, "Backup enabled => " + enable);
+
+        long oldId = Binder.clearCallingIdentity();
+        try {
+            boolean wasEnabled = mEnabled;
+            synchronized (this) {
+                // TODO(b/118520567): Clean up writing backup enabled logic.
+                BackupManagerService.writeBackupEnableState(enable, UserHandle.USER_SYSTEM);
+                mEnabled = enable;
+            }
+
+            synchronized (mQueueLock) {
+                if (enable && !wasEnabled && mProvisioned) {
+                    // if we've just been enabled, start scheduling backup passes
+                    KeyValueBackupJob.schedule(mContext, mConstants);
+                    scheduleNextFullBackupJob(0);
+                } else if (!enable) {
+                    // No longer enabled, so stop running backups
+                    if (MORE_DEBUG) Slog.i(TAG, "Opting out of backup");
+
+                    KeyValueBackupJob.cancel(mContext);
+
+                    // This also constitutes an opt-out, so we wipe any data for
+                    // this device from the backend.  We start that process with
+                    // an alarm in order to guarantee wakelock states.
+                    if (wasEnabled && mProvisioned) {
+                        // NOTE: we currently flush every registered transport, not just
+                        // the currently-active one.
+                        List<String> transportNames = new ArrayList<>();
+                        List<String> transportDirNames = new ArrayList<>();
+                        mTransportManager.forEachRegisteredTransport(
+                                name -> {
+                                    final String dirName;
+                                    try {
+                                        dirName =
+                                                mTransportManager
+                                                        .getTransportDirName(name);
+                                    } catch (TransportNotRegisteredException e) {
+                                        // Should never happen
+                                        Slog.e(TAG, "Unexpected unregistered transport", e);
+                                        return;
+                                    }
+                                    transportNames.add(name);
+                                    transportDirNames.add(dirName);
+                                });
+
+                        // build the set of transports for which we are posting an init
+                        for (int i = 0; i < transportNames.size(); i++) {
+                            recordInitPending(
+                                    true,
+                                    transportNames.get(i),
+                                    transportDirNames.get(i));
+                        }
+                        mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
+                                mRunInitIntent);
+                    }
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    /** Enable/disable automatic restore of app data at install time. */
+    public void setAutoRestore(boolean doAutoRestore) {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "setAutoRestore");
+
+        Slog.i(TAG, "Auto restore => " + doAutoRestore);
+
+        final long oldId = Binder.clearCallingIdentity();
+        try {
+            synchronized (this) {
+                Settings.Secure.putInt(mContext.getContentResolver(),
+                        Settings.Secure.BACKUP_AUTO_RESTORE, doAutoRestore ? 1 : 0);
+                mAutoRestore = doAutoRestore;
+            }
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    /** Mark the backup service as having been provisioned. */
+    public void setBackupProvisioned(boolean available) {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "setBackupProvisioned");
+        /*
+         * This is now a no-op; provisioning is simply the device's own setup state.
+         */
+    }
+
+    /** Report whether the backup mechanism is currently enabled. */
+    public boolean isBackupEnabled() {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "isBackupEnabled");
+        return mEnabled;    // no need to synchronize just to read it
+    }
+
+    /** Report the name of the currently active transport. */
+    public String getCurrentTransport() {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "getCurrentTransport");
+        String currentTransport = mTransportManager.getCurrentTransportName();
+        if (MORE_DEBUG) Slog.v(TAG, "... getCurrentTransport() returning " + currentTransport);
+        return currentTransport;
+    }
+
+    /**
+     * Returns the {@link ComponentName} of the host service of the selected transport or {@code
+     * null} if no transport selected or if the transport selected is not registered.
+     */
+    @Nullable
+    public ComponentName getCurrentTransportComponent() {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.BACKUP, "getCurrentTransportComponent");
+        long oldId = Binder.clearCallingIdentity();
+        try {
+            return mTransportManager.getCurrentTransportComponent();
+        } catch (TransportNotRegisteredException e) {
+            return null;
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    /** Report all known, available backup transports by name. */
+    public String[] listAllTransports() {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "listAllTransports");
+
+        return mTransportManager.getRegisteredTransportNames();
+    }
+
+    /** Report all known, available backup transports by component. */
+    public ComponentName[] listAllTransportComponents() {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "listAllTransportComponents");
+        return mTransportManager.getRegisteredTransportComponents();
+    }
+
+    /** Report all system whitelisted transports. */
+    public String[] getTransportWhitelist() {
+        // No permission check, intentionally.
+        Set<ComponentName> whitelistedComponents = mTransportManager.getTransportWhitelist();
+        String[] whitelistedTransports = new String[whitelistedComponents.size()];
+        int i = 0;
+        for (ComponentName component : whitelistedComponents) {
+            whitelistedTransports[i] = component.flattenToShortString();
+            i++;
+        }
+        return whitelistedTransports;
+    }
+
+    /**
+     * Update the attributes of the transport identified by {@code transportComponent}. If the
+     * specified transport has not been bound at least once (for registration), this call will be
+     * ignored. Only the host process of the transport can change its description, otherwise a
+     * {@link SecurityException} will be thrown.
+     *
+     * @param transportComponent The identity of the transport being described.
+     * @param name A {@link String} with the new name for the transport. This is NOT for
+     *     identification. MUST NOT be {@code null}.
+     * @param configurationIntent An {@link Intent} that can be passed to
+     *     {@link Context#startActivity} in order to launch the transport's configuration UI. It may
+     *     be {@code null} if the transport does not offer any user-facing configuration UI.
+     * @param currentDestinationString A {@link String} describing the destination to which the
+     *     transport is currently sending data. MUST NOT be {@code null}.
+     * @param dataManagementIntent An {@link Intent} that can be passed to
+     *     {@link Context#startActivity} in order to launch the transport's data-management UI. It
+     *     may be {@code null} if the transport does not offer any user-facing data
+     *     management UI.
+     * @param dataManagementLabel A {@link String} to be used as the label for the transport's data
+     *     management affordance. This MUST be {@code null} when dataManagementIntent is
+     *     {@code null} and MUST NOT be {@code null} when dataManagementIntent is not {@code null}.
+     * @throws SecurityException If the UID of the calling process differs from the package UID of
+     *     {@code transportComponent} or if the caller does NOT have BACKUP permission.
+     */
+    public void updateTransportAttributes(
+            ComponentName transportComponent,
+            String name,
+            @Nullable Intent configurationIntent,
+            String currentDestinationString,
+            @Nullable Intent dataManagementIntent,
+            @Nullable String dataManagementLabel) {
+        updateTransportAttributes(
+                Binder.getCallingUid(),
+                transportComponent,
+                name,
+                configurationIntent,
+                currentDestinationString,
+                dataManagementIntent,
+                dataManagementLabel);
+    }
+
+    @VisibleForTesting
+    void updateTransportAttributes(
+            int callingUid,
+            ComponentName transportComponent,
+            String name,
+            @Nullable Intent configurationIntent,
+            String currentDestinationString,
+            @Nullable Intent dataManagementIntent,
+            @Nullable String dataManagementLabel) {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.BACKUP, "updateTransportAttributes");
+
+        Preconditions.checkNotNull(transportComponent, "transportComponent can't be null");
+        Preconditions.checkNotNull(name, "name can't be null");
+        Preconditions.checkNotNull(
+                currentDestinationString, "currentDestinationString can't be null");
+        Preconditions.checkArgument(
+                (dataManagementIntent == null) == (dataManagementLabel == null),
+                "dataManagementLabel should be null iff dataManagementIntent is null");
+
+        try {
+            int transportUid =
+                    mContext.getPackageManager()
+                            .getPackageUid(transportComponent.getPackageName(), 0);
+            if (callingUid != transportUid) {
+                throw new SecurityException("Only the transport can change its description");
+            }
+        } catch (NameNotFoundException e) {
+            throw new SecurityException("Transport package not found", e);
+        }
+
+        final long oldId = Binder.clearCallingIdentity();
+        try {
+            mTransportManager.updateTransportAttributes(
+                    transportComponent,
+                    name,
+                    configurationIntent,
+                    currentDestinationString,
+                    dataManagementIntent,
+                    dataManagementLabel);
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    /**
+     * Selects transport {@code transportName} and returns previously selected transport.
+     *
+     * @deprecated Use {@link #selectBackupTransportAsync(ComponentName,
+     * ISelectBackupTransportCallback)} instead.
+     */
+    @Deprecated
+    @Nullable
+    public String selectBackupTransport(String transportName) {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.BACKUP, "selectBackupTransport");
+
+        final long oldId = Binder.clearCallingIdentity();
+        try {
+            String previousTransportName = mTransportManager.selectTransport(transportName);
+            updateStateForTransport(transportName);
+            Slog.v(TAG, "selectBackupTransport(transport = " + transportName
+                    + "): previous transport = " + previousTransportName);
+            return previousTransportName;
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    /**
+     * Selects transport {@code transportComponent} asynchronously and notifies {@code listener}
+     * with the result upon completion.
+     */
+    public void selectBackupTransportAsync(
+            ComponentName transportComponent, ISelectBackupTransportCallback listener) {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.BACKUP, "selectBackupTransportAsync");
+
+        final long oldId = Binder.clearCallingIdentity();
+        try {
+            String transportString = transportComponent.flattenToShortString();
+            Slog.v(TAG, "selectBackupTransportAsync(transport = " + transportString + ")");
+            mBackupHandler.post(
+                    () -> {
+                        String transportName = null;
+                        int result =
+                                mTransportManager.registerAndSelectTransport(transportComponent);
+                        if (result == BackupManager.SUCCESS) {
+                            try {
+                                transportName =
+                                        mTransportManager.getTransportName(transportComponent);
+                                updateStateForTransport(transportName);
+                            } catch (TransportNotRegisteredException e) {
+                                Slog.e(TAG, "Transport got unregistered");
+                                result = BackupManager.ERROR_TRANSPORT_UNAVAILABLE;
+                            }
+                        }
+
+                        try {
+                            if (transportName != null) {
+                                listener.onSuccess(transportName);
+                            } else {
+                                listener.onFailure(result);
+                            }
+                        } catch (RemoteException e) {
+                            Slog.e(TAG, "ISelectBackupTransportCallback listener not available");
+                        }
+                    });
+        } finally {
+            Binder.restoreCallingIdentity(oldId);
+        }
+    }
+
+    private void updateStateForTransport(String newTransportName) {
+        // Publish the name change
+        Settings.Secure.putString(mContext.getContentResolver(),
+                Settings.Secure.BACKUP_TRANSPORT, newTransportName);
+
+        // And update our current-dataset bookkeeping
+        String callerLogString = "BMS.updateStateForTransport()";
+        TransportClient transportClient =
+                mTransportManager.getTransportClient(newTransportName, callerLogString);
+        if (transportClient != null) {
+            try {
+                IBackupTransport transport = transportClient.connectOrThrow(callerLogString);
+                mCurrentToken = transport.getCurrentRestoreSet();
+            } catch (Exception e) {
+                // Oops.  We can't know the current dataset token, so reset and figure it out
+                // when we do the next k/v backup operation on this transport.
+                mCurrentToken = 0;
+                Slog.w(TAG, "Transport " + newTransportName + " not available: current token = 0");
+            }
+            mTransportManager.disposeOfTransportClient(transportClient, callerLogString);
+        } else {
+            Slog.w(TAG, "Transport " + newTransportName + " not registered: current token = 0");
+            // The named transport isn't registered, so we can't know what its current dataset token
+            // is. Reset as above.
+            mCurrentToken = 0;
+        }
+    }
+
+    /**
+     * Supply the configuration intent for the given transport. If the name is not one of the
+     * available transports, or if the transport does not supply any configuration UI, the method
+     * returns {@code null}.
+     */
+    public Intent getConfigurationIntent(String transportName) {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "getConfigurationIntent");
+        try {
+            Intent intent = mTransportManager.getTransportConfigurationIntent(transportName);
+            if (MORE_DEBUG) {
+                Slog.d(TAG, "getConfigurationIntent() returning intent " + intent);
+            }
+            return intent;
+        } catch (TransportNotRegisteredException e) {
+            Slog.e(TAG, "Unable to get configuration intent from transport: " + e.getMessage());
+            return null;
+        }
+    }
+
+    /**
+     * Supply the current destination string for the given transport. If the name is not one of the
+     * registered transports the method will return null.
+     *
+     * <p>This string is used VERBATIM as the summary text of the relevant Settings item.
+     *
+     * @param transportName The name of the registered transport.
+     * @return The current destination string or null if the transport is not registered.
+     */
+    public String getDestinationString(String transportName) {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.BACKUP, "getDestinationString");
+
+        try {
+            String string = mTransportManager.getTransportCurrentDestinationString(transportName);
+            if (MORE_DEBUG) {
+                Slog.d(TAG, "getDestinationString() returning " + string);
+            }
+            return string;
+        } catch (TransportNotRegisteredException e) {
+            Slog.e(TAG, "Unable to get destination string from transport: " + e.getMessage());
+            return null;
+        }
+    }
+
+    /** Supply the manage-data intent for the given transport. */
+    public Intent getDataManagementIntent(String transportName) {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "getDataManagementIntent");
+
+        try {
+            Intent intent = mTransportManager.getTransportDataManagementIntent(transportName);
+            if (MORE_DEBUG) {
+                Slog.d(TAG, "getDataManagementIntent() returning intent " + intent);
+            }
+            return intent;
+        } catch (TransportNotRegisteredException e) {
+            Slog.e(TAG, "Unable to get management intent from transport: " + e.getMessage());
+            return null;
+        }
+    }
+
+    /**
+     * Supply the menu label for affordances that fire the manage-data intent for the given
+     * transport.
+     */
+    public String getDataManagementLabel(String transportName) {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                "getDataManagementLabel");
+
+        try {
+            String label = mTransportManager.getTransportDataManagementLabel(transportName);
+            if (MORE_DEBUG) {
+                Slog.d(TAG, "getDataManagementLabel() returning " + label);
+            }
+            return label;
+        } catch (TransportNotRegisteredException e) {
+            Slog.e(TAG, "Unable to get management label from transport: " + e.getMessage());
+            return null;
+        }
+    }
+
+    /**
+     * Callback: a requested backup agent has been instantiated. This should only be called from the
+     * {@link ActivityManager}.
+     */
+    public void agentConnected(String packageName, IBinder agentBinder) {
+        synchronized (mAgentConnectLock) {
+            if (Binder.getCallingUid() == Process.SYSTEM_UID) {
+                Slog.d(TAG, "agentConnected pkg=" + packageName + " agent=" + agentBinder);
+                IBackupAgent agent = IBackupAgent.Stub.asInterface(agentBinder);
+                mConnectedAgent = agent;
+                mConnecting = false;
+            } else {
+                Slog.w(TAG, "Non-system process uid=" + Binder.getCallingUid()
+                        + " claiming agent connected");
+            }
+            mAgentConnectLock.notifyAll();
+        }
+    }
+
+    /**
+     * Callback: a backup agent has failed to come up, or has unexpectedly quit. If the agent failed
+     * to come up in the first place, the agentBinder argument will be {@code null}. This should
+     * only be called from the {@link ActivityManager}.
+     */
+    public void agentDisconnected(String packageName) {
+        // TODO: handle backup being interrupted
+        synchronized (mAgentConnectLock) {
+            if (Binder.getCallingUid() == Process.SYSTEM_UID) {
+                mConnectedAgent = null;
+                mConnecting = false;
+            } else {
+                Slog.w(TAG, "Non-system process uid=" + Binder.getCallingUid()
+                        + " claiming agent disconnected");
+            }
+            mAgentConnectLock.notifyAll();
+        }
+    }
+
+    /**
+     * An application being installed will need a restore pass, then the {@link PackageManager} will
+     * need to be told when the restore is finished.
+     */
+    public void restoreAtInstall(String packageName, int token) {
+        if (Binder.getCallingUid() != Process.SYSTEM_UID) {
+            Slog.w(TAG, "Non-system process uid=" + Binder.getCallingUid()
+                    + " attemping install-time restore");
+            return;
+        }
+
+        boolean skip = false;
+
+        long restoreSet = getAvailableRestoreToken(packageName);
+        if (DEBUG) {
+            Slog.v(TAG, "restoreAtInstall pkg=" + packageName
+                    + " token=" + Integer.toHexString(token)
+                    + " restoreSet=" + Long.toHexString(restoreSet));
+        }
+        if (restoreSet == 0) {
+            if (MORE_DEBUG) Slog.i(TAG, "No restore set");
+            skip = true;
+        }
+
+        TransportClient transportClient =
+                mTransportManager.getCurrentTransportClient("BMS.restoreAtInstall()");
+        if (transportClient == null) {
+            if (DEBUG) Slog.w(TAG, "No transport client");
+            skip = true;
+        }
+
+        if (!mAutoRestore) {
+            if (DEBUG) {
+                Slog.w(TAG, "Non-restorable state: auto=" + mAutoRestore);
+            }
+            skip = true;
+        }
+
+        if (!skip) {
+            try {
+                // okay, we're going to attempt a restore of this package from this restore set.
+                // The eventual message back into the Package Manager to run the post-install
+                // steps for 'token' will be issued from the restore handling code.
+
+                mWakelock.acquire();
+
+                OnTaskFinishedListener listener = caller -> {
+                    mTransportManager.disposeOfTransportClient(transportClient, caller);
+                    mWakelock.release();
+                };
+
+                if (MORE_DEBUG) {
+                    Slog.d(TAG, "Restore at install of " + packageName);
+                }
+                Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
+                msg.obj =
+                        RestoreParams.createForRestoreAtInstall(
+                                transportClient,
+                                /* observer */ null,
+                                /* monitor */ null,
+                                restoreSet,
+                                packageName,
+                                token,
+                                listener);
+                mBackupHandler.sendMessage(msg);
+            } catch (Exception e) {
+                // Calling into the transport broke; back off and proceed with the installation.
+                Slog.e(TAG, "Unable to contact transport: " + e.getMessage());
+                skip = true;
+            }
+        }
+
+        if (skip) {
+            // Auto-restore disabled or no way to attempt a restore
+
+            if (transportClient != null) {
+                mTransportManager.disposeOfTransportClient(
+                        transportClient, "BMS.restoreAtInstall()");
+            }
+
+            // Tell the PackageManager to proceed with the post-install handling for this package.
+            if (DEBUG) Slog.v(TAG, "Finishing install immediately");
+            try {
+                mPackageManagerBinder.finishPackageInstall(token, false);
+            } catch (RemoteException e) { /* can't happen */ }
+        }
+    }
+
+    /** Hand off a restore session. */
+    public IRestoreSession beginRestoreSession(String packageName, String transport) {
+        if (DEBUG) {
+            Slog.v(TAG, "beginRestoreSession: pkg=" + packageName
+                    + " transport=" + transport);
+        }
+
+        boolean needPermission = true;
+        if (transport == null) {
+            transport = mTransportManager.getCurrentTransportName();
+
+            if (packageName != null) {
+                PackageInfo app = null;
+                try {
+                    app = mPackageManager.getPackageInfo(packageName, 0);
+                } catch (NameNotFoundException nnf) {
+                    Slog.w(TAG, "Asked to restore nonexistent pkg " + packageName);
+                    throw new IllegalArgumentException("Package " + packageName + " not found");
+                }
+
+                if (app.applicationInfo.uid == Binder.getCallingUid()) {
+                    // So: using the current active transport, and the caller has asked
+                    // that its own package will be restored.  In this narrow use case
+                    // we do not require the caller to hold the permission.
+                    needPermission = false;
+                }
+            }
+        }
+
+        if (needPermission) {
+            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP,
+                    "beginRestoreSession");
+        } else {
+            if (DEBUG) Slog.d(TAG, "restoring self on current transport; no permission needed");
+        }
+
+        synchronized (this) {
+            if (mActiveRestoreSession != null) {
+                Slog.i(TAG, "Restore session requested but one already active");
+                return null;
+            }
+            if (mBackupRunning) {
+                Slog.i(TAG, "Restore session requested but currently running backups");
+                return null;
+            }
+            mActiveRestoreSession = new ActiveRestoreSession(this, packageName, transport);
+            mBackupHandler.sendEmptyMessageDelayed(MSG_RESTORE_SESSION_TIMEOUT,
+                    mAgentTimeoutParameters.getRestoreAgentTimeoutMillis());
+        }
+        return mActiveRestoreSession;
+    }
+
+    /** Clear the specified restore session. */
+    public void clearRestoreSession(ActiveRestoreSession currentSession) {
+        synchronized (this) {
+            if (currentSession != mActiveRestoreSession) {
+                Slog.e(TAG, "ending non-current restore session");
+            } else {
+                if (DEBUG) Slog.v(TAG, "Clearing restore session and halting timeout");
+                mActiveRestoreSession = null;
+                mBackupHandler.removeMessages(MSG_RESTORE_SESSION_TIMEOUT);
+            }
+        }
+    }
+
+    /**
+     * Note that a currently-active backup agent has notified us that it has completed the given
+     * outstanding asynchronous backup/restore operation.
+     */
+    public void opComplete(int token, long result) {
+        if (MORE_DEBUG) {
+            Slog.v(TAG, "opComplete: " + Integer.toHexString(token) + " result=" + result);
+        }
+        Operation op = null;
+        synchronized (mCurrentOpLock) {
+            op = mCurrentOperations.get(token);
+            if (op != null) {
+                if (op.state == OP_TIMEOUT) {
+                    // The operation already timed out, and this is a late response.  Tidy up
+                    // and ignore it; we've already dealt with the timeout.
+                    op = null;
+                    mCurrentOperations.delete(token);
+                } else if (op.state == OP_ACKNOWLEDGED) {
+                    if (DEBUG) {
+                        Slog.w(TAG, "Received duplicate ack for token="
+                                + Integer.toHexString(token));
+                    }
+                    op = null;
+                    mCurrentOperations.remove(token);
+                } else if (op.state == OP_PENDING) {
+                    // Can't delete op from mCurrentOperations. waitUntilOperationComplete can be
+                    // called after we we receive this call.
+                    op.state = OP_ACKNOWLEDGED;
+                }
+            }
+            mCurrentOpLock.notifyAll();
+        }
+
+        // The completion callback, if any, is invoked on the handler
+        if (op != null && op.callback != null) {
+            Pair<BackupRestoreTask, Long> callbackAndResult = Pair.create(op.callback, result);
+            Message msg = mBackupHandler.obtainMessage(MSG_OP_COMPLETE, callbackAndResult);
+            mBackupHandler.sendMessage(msg);
+        }
+    }
+
+    /** Checks if the package is eligible for backup. */
+    public boolean isAppEligibleForBackup(String packageName) {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.BACKUP, "isAppEligibleForBackup");
+
+        long oldToken = Binder.clearCallingIdentity();
+        try {
+            String callerLogString = "BMS.isAppEligibleForBackup";
+            TransportClient transportClient =
+                    mTransportManager.getCurrentTransportClient(callerLogString);
+            boolean eligible =
+                    AppBackupUtils.appIsRunningAndEligibleForBackupWithTransport(
+                            transportClient, packageName, mPackageManager);
+            if (transportClient != null) {
+                mTransportManager.disposeOfTransportClient(transportClient, callerLogString);
+            }
+            return eligible;
+        } finally {
+            Binder.restoreCallingIdentity(oldToken);
+        }
+    }
+
+    /** Returns the inputted packages that are eligible for backup. */
+    public String[] filterAppsEligibleForBackup(String[] packages) {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.BACKUP, "filterAppsEligibleForBackup");
+
+        long oldToken = Binder.clearCallingIdentity();
+        try {
+            String callerLogString = "BMS.filterAppsEligibleForBackup";
+            TransportClient transportClient =
+                    mTransportManager.getCurrentTransportClient(callerLogString);
+            List<String> eligibleApps = new LinkedList<>();
+            for (String packageName : packages) {
+                if (AppBackupUtils
+                        .appIsRunningAndEligibleForBackupWithTransport(
+                                transportClient, packageName, mPackageManager)) {
+                    eligibleApps.add(packageName);
+                }
+            }
+            if (transportClient != null) {
+                mTransportManager.disposeOfTransportClient(transportClient, callerLogString);
+            }
+            return eligibleApps.toArray(new String[eligibleApps.size()]);
+        } finally {
+            Binder.restoreCallingIdentity(oldToken);
+        }
+    }
+
+    /** Prints service state for 'dumpsys backup'. */
+    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, TAG, pw)) return;
+
+        long identityToken = Binder.clearCallingIdentity();
+        try {
+            if (args != null) {
+                for (String arg : args) {
+                    if ("-h".equals(arg)) {
+                        pw.println("'dumpsys backup' optional arguments:");
+                        pw.println("  -h       : this help text");
+                        pw.println("  a[gents] : dump information about defined backup agents");
+                        return;
+                    } else if ("agents".startsWith(arg)) {
+                        dumpAgents(pw);
+                        return;
+                    } else if ("transportclients".equals(arg.toLowerCase())) {
+                        mTransportManager.dumpTransportClients(pw);
+                        return;
+                    } else if ("transportstats".equals(arg.toLowerCase())) {
+                        mTransportManager.dumpTransportStats(pw);
+                        return;
+                    }
+                }
+            }
+            dumpInternal(pw);
+        } finally {
+            Binder.restoreCallingIdentity(identityToken);
+        }
+    }
+
+    private void dumpAgents(PrintWriter pw) {
+        List<PackageInfo> agentPackages = allAgentPackages();
+        pw.println("Defined backup agents:");
+        for (PackageInfo pkg : agentPackages) {
+            pw.print("  ");
+            pw.print(pkg.packageName);
+            pw.println(':');
+            pw.print("      ");
+            pw.println(pkg.applicationInfo.backupAgentName);
+        }
+    }
+
+    private void dumpInternal(PrintWriter pw) {
+        synchronized (mQueueLock) {
+            pw.println("Backup Manager is " + (mEnabled ? "enabled" : "disabled")
+                    + " / " + (!mProvisioned ? "not " : "") + "provisioned / "
+                    + (this.mPendingInits.size() == 0 ? "not " : "") + "pending init");
+            pw.println("Auto-restore is " + (mAutoRestore ? "enabled" : "disabled"));
+            if (mBackupRunning) pw.println("Backup currently running");
+            pw.println(isBackupOperationInProgress() ? "Backup in progress" : "No backups running");
+            pw.println("Last backup pass started: " + mLastBackupPass
+                    + " (now = " + System.currentTimeMillis() + ')');
+            pw.println("  next scheduled: " + KeyValueBackupJob.nextScheduled());
+
+            pw.println("Transport whitelist:");
+            for (ComponentName transport : mTransportManager.getTransportWhitelist()) {
+                pw.print("    ");
+                pw.println(transport.flattenToShortString());
+            }
+
+            pw.println("Available transports:");
+            final String[] transports = listAllTransports();
+            if (transports != null) {
+                for (String t : transports) {
+                    pw.println((t.equals(mTransportManager.getCurrentTransportName()) ? "  * "
+                            : "    ") + t);
+                    try {
+                        File dir = new File(mBaseStateDir,
+                                mTransportManager.getTransportDirName(t));
+                        pw.println("       destination: "
+                                + mTransportManager.getTransportCurrentDestinationString(t));
+                        pw.println("       intent: "
+                                + mTransportManager.getTransportConfigurationIntent(t));
+                        for (File f : dir.listFiles()) {
+                            pw.println(
+                                    "       " + f.getName() + " - " + f.length() + " state bytes");
+                        }
+                    } catch (Exception e) {
+                        Slog.e(TAG, "Error in transport", e);
+                        pw.println("        Error: " + e);
+                    }
+                }
+            }
+
+            mTransportManager.dumpTransportClients(pw);
+
+            pw.println("Pending init: " + mPendingInits.size());
+            for (String s : mPendingInits) {
+                pw.println("    " + s);
+            }
+
+            pw.print("Ancestral: ");
+            pw.println(Long.toHexString(mAncestralToken));
+            pw.print("Current:   ");
+            pw.println(Long.toHexString(mCurrentToken));
+
+            int numPackages = mBackupParticipants.size();
+            pw.println("Participants:");
+            for (int i = 0; i < numPackages; i++) {
+                int uid = mBackupParticipants.keyAt(i);
+                pw.print("  uid: ");
+                pw.println(uid);
+                HashSet<String> participants = mBackupParticipants.valueAt(i);
+                for (String app : participants) {
+                    pw.println("    " + app);
+                }
+            }
+
+            pw.println("Ancestral packages: "
+                    + (mAncestralPackages == null ? "none" : mAncestralPackages.size()));
+            if (mAncestralPackages != null) {
+                for (String pkg : mAncestralPackages) {
+                    pw.println("    " + pkg);
+                }
+            }
+
+            Set<String> processedPackages = mProcessedPackagesJournal.getPackagesCopy();
+            pw.println("Ever backed up: " + processedPackages.size());
+            for (String pkg : processedPackages) {
+                pw.println("    " + pkg);
+            }
+
+            pw.println("Pending key/value backup: " + mPendingBackups.size());
+            for (BackupRequest req : mPendingBackups.values()) {
+                pw.println("    " + req);
+            }
+
+            pw.println("Full backup queue:" + mFullBackupQueue.size());
+            for (FullBackupEntry entry : mFullBackupQueue) {
+                pw.print("    ");
+                pw.print(entry.lastBackup);
+                pw.print(" : ");
+                pw.println(entry.packageName);
+            }
+        }
+    }
+
+
+    public IBackupManager getBackupManagerBinder() {
+        return mBackupManagerBinder;
+    }
+}
diff --git a/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDb.java b/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDb.java
new file mode 100644
index 0000000..9f6c03a
--- /dev/null
+++ b/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDb.java
@@ -0,0 +1,59 @@
+/*
+ * 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.server.backup.encryption.storage;
+
+import android.content.Context;
+
+/**
+ * Backup encryption SQLite database. All instances are threadsafe.
+ *
+ * <p>The database is automatically opened when accessing one of the tables. After the caller is
+ * done they must call {@link #close()}.
+ */
+public class BackupEncryptionDb {
+    private final BackupEncryptionDbHelper mHelper;
+
+    /** A new instance, using the storage defined by {@code context}. */
+    public static BackupEncryptionDb newInstance(Context context) {
+        BackupEncryptionDbHelper helper = new BackupEncryptionDbHelper(context);
+        helper.setWriteAheadLoggingEnabled(true);
+        return new BackupEncryptionDb(helper);
+    }
+
+    private BackupEncryptionDb(BackupEncryptionDbHelper helper) {
+        mHelper = helper;
+    }
+
+    public TertiaryKeysTable getTertiaryKeysTable() {
+        return new TertiaryKeysTable(mHelper);
+    }
+
+    /** Deletes the database. */
+    public void clear() throws EncryptionDbException {
+        mHelper.resetDatabase();
+    }
+
+    /**
+     * Closes the database if it is open.
+     *
+     * <p>After calling this, the caller may access one of the tables again which will automatically
+     * reopen the database.
+     */
+    public void close() {
+        mHelper.close();
+    }
+}
diff --git a/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDbContract.java b/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDbContract.java
new file mode 100644
index 0000000..5e8a8d9
--- /dev/null
+++ b/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDbContract.java
@@ -0,0 +1,41 @@
+/*
+ * 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.server.backup.encryption.storage;
+
+import android.provider.BaseColumns;
+
+/** Contract for the backup encryption database. Describes tables present. */
+class BackupEncryptionDbContract {
+    /**
+     * Table containing tertiary keys belonging to the user. Tertiary keys are wrapped by a
+     * secondary key, which never leaves {@code AndroidKeyStore} (a provider for {@link
+     * java.security.KeyStore}). Each application has a tertiary key, which is used to encrypt the
+     * backup data.
+     */
+    static class TertiaryKeysEntry implements BaseColumns {
+        static final String TABLE_NAME = "tertiary_keys";
+
+        /** Alias of the secondary key used to wrap the tertiary key. */
+        static final String COLUMN_NAME_SECONDARY_KEY_ALIAS = "secondary_key_alias";
+
+        /** Name of the package to which the tertiary key belongs. */
+        static final String COLUMN_NAME_PACKAGE_NAME = "package_name";
+
+        /** Encrypted bytes of the tertiary key. */
+        static final String COLUMN_NAME_WRAPPED_KEY_BYTES = "wrapped_key_bytes";
+    }
+}
diff --git a/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDbHelper.java b/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDbHelper.java
new file mode 100644
index 0000000..c706342
--- /dev/null
+++ b/services/backup/java/com/android/server/backup/encryption/storage/BackupEncryptionDbHelper.java
@@ -0,0 +1,102 @@
+/*
+ * 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.server.backup.encryption.storage;
+
+import static com.android.server.backup.encryption.storage.BackupEncryptionDbContract.TertiaryKeysEntry;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteException;
+import android.database.sqlite.SQLiteOpenHelper;
+
+/** Helper for creating an instance of the backup encryption database. */
+class BackupEncryptionDbHelper extends SQLiteOpenHelper {
+    private static final int DATABASE_VERSION = 1;
+    static final String DATABASE_NAME = "backupencryption.db";
+
+    private static final String SQL_CREATE_TERTIARY_KEYS_ENTRY =
+            "CREATE TABLE "
+                    + TertiaryKeysEntry.TABLE_NAME
+                    + " ( "
+                    + TertiaryKeysEntry._ID
+                    + " INTEGER PRIMARY KEY,"
+                    + TertiaryKeysEntry.COLUMN_NAME_SECONDARY_KEY_ALIAS
+                    + " TEXT,"
+                    + TertiaryKeysEntry.COLUMN_NAME_PACKAGE_NAME
+                    + " TEXT,"
+                    + TertiaryKeysEntry.COLUMN_NAME_WRAPPED_KEY_BYTES
+                    + " BLOB,"
+                    + "UNIQUE("
+                    + TertiaryKeysEntry.COLUMN_NAME_SECONDARY_KEY_ALIAS
+                    + ","
+                    + TertiaryKeysEntry.COLUMN_NAME_PACKAGE_NAME
+                    + "))";
+
+    private static final String SQL_DROP_TERTIARY_KEYS_ENTRY =
+            "DROP TABLE IF EXISTS " + TertiaryKeysEntry.TABLE_NAME;
+
+    BackupEncryptionDbHelper(Context context) {
+        super(context, DATABASE_NAME, /*factory=*/ null, DATABASE_VERSION);
+    }
+
+    public void resetDatabase() throws EncryptionDbException {
+        SQLiteDatabase db = getWritableDatabaseSafe();
+        db.execSQL(SQL_DROP_TERTIARY_KEYS_ENTRY);
+        onCreate(db);
+    }
+
+    @Override
+    public void onCreate(SQLiteDatabase db) {
+        db.execSQL(SQL_CREATE_TERTIARY_KEYS_ENTRY);
+    }
+
+    @Override
+    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+        db.execSQL(SQL_DROP_TERTIARY_KEYS_ENTRY);
+        onCreate(db);
+    }
+
+    @Override
+    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+        db.execSQL(SQL_DROP_TERTIARY_KEYS_ENTRY);
+        onCreate(db);
+    }
+
+    /**
+     * Calls {@link #getWritableDatabase()}, but catches the unchecked {@link SQLiteException} and
+     * rethrows {@link EncryptionDbException}.
+     */
+    public SQLiteDatabase getWritableDatabaseSafe() throws EncryptionDbException {
+        try {
+            return super.getWritableDatabase();
+        } catch (SQLiteException e) {
+            throw new EncryptionDbException(e);
+        }
+    }
+
+    /**
+     * Calls {@link #getReadableDatabase()}, but catches the unchecked {@link SQLiteException} and
+     * rethrows {@link EncryptionDbException}.
+     */
+    public SQLiteDatabase getReadableDatabaseSafe() throws EncryptionDbException {
+        try {
+            return super.getReadableDatabase();
+        } catch (SQLiteException e) {
+            throw new EncryptionDbException(e);
+        }
+    }
+}
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/services/backup/java/com/android/server/backup/encryption/storage/EncryptionDbException.java
similarity index 66%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to services/backup/java/com/android/server/backup/encryption/storage/EncryptionDbException.java
index 27d25b8..82f7dea 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/services/backup/java/com/android/server/backup/encryption/storage/EncryptionDbException.java
@@ -13,12 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.server.backup.encryption.storage;
+
+import java.io.IOException;
+
+/** Thrown when there is a problem reading or writing the encryption database. */
+public class EncryptionDbException extends IOException {
+    public EncryptionDbException(Throwable cause) {
+        super(cause);
+    }
 }
diff --git a/services/backup/java/com/android/server/backup/encryption/storage/TertiaryKey.java b/services/backup/java/com/android/server/backup/encryption/storage/TertiaryKey.java
new file mode 100644
index 0000000..39a2c6e
--- /dev/null
+++ b/services/backup/java/com/android/server/backup/encryption/storage/TertiaryKey.java
@@ -0,0 +1,52 @@
+/*
+ * 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.server.backup.encryption.storage;
+
+/** Wrapped bytes of a tertiary key. */
+public class TertiaryKey {
+    private final String mSecondaryKeyAlias;
+    private final String mPackageName;
+    private final byte[] mWrappedKeyBytes;
+
+    /**
+     * Creates a new instance.
+     *
+     * @param secondaryKeyAlias Alias of the secondary used to wrap the key.
+     * @param packageName The package name of the app to which the key belongs.
+     * @param wrappedKeyBytes The wrapped key bytes.
+     */
+    public TertiaryKey(String secondaryKeyAlias, String packageName, byte[] wrappedKeyBytes) {
+        mSecondaryKeyAlias = secondaryKeyAlias;
+        mPackageName = packageName;
+        mWrappedKeyBytes = wrappedKeyBytes;
+    }
+
+    /** Returns the alias of the secondary key used to wrap this tertiary key. */
+    public String getSecondaryKeyAlias() {
+        return mSecondaryKeyAlias;
+    }
+
+    /** Returns the package name of the application this key relates to. */
+    public String getPackageName() {
+        return mPackageName;
+    }
+
+    /** Returns the wrapped bytes of the key. */
+    public byte[] getWrappedKeyBytes() {
+        return mWrappedKeyBytes;
+    }
+}
diff --git a/services/backup/java/com/android/server/backup/encryption/storage/TertiaryKeysTable.java b/services/backup/java/com/android/server/backup/encryption/storage/TertiaryKeysTable.java
new file mode 100644
index 0000000..d8d40c4
--- /dev/null
+++ b/services/backup/java/com/android/server/backup/encryption/storage/TertiaryKeysTable.java
@@ -0,0 +1,134 @@
+/*
+ * 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.server.backup.encryption.storage;
+
+import static com.android.server.backup.encryption.storage.BackupEncryptionDbContract.TertiaryKeysEntry;
+
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.util.ArrayMap;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.Optional;
+
+/** Database table for storing and retrieving tertiary keys. */
+public class TertiaryKeysTable {
+    private final BackupEncryptionDbHelper mHelper;
+
+    TertiaryKeysTable(BackupEncryptionDbHelper helper) {
+        mHelper = helper;
+    }
+
+    /**
+     * Adds the {@code tertiaryKey} to the database.
+     *
+     * @return The primary key of the inserted row if successful, -1 otherwise.
+     */
+    public long addKey(TertiaryKey tertiaryKey) throws EncryptionDbException {
+        SQLiteDatabase db = mHelper.getWritableDatabaseSafe();
+        ContentValues values = new ContentValues();
+        values.put(
+                TertiaryKeysEntry.COLUMN_NAME_SECONDARY_KEY_ALIAS,
+                tertiaryKey.getSecondaryKeyAlias());
+        values.put(TertiaryKeysEntry.COLUMN_NAME_PACKAGE_NAME, tertiaryKey.getPackageName());
+        values.put(
+                TertiaryKeysEntry.COLUMN_NAME_WRAPPED_KEY_BYTES, tertiaryKey.getWrappedKeyBytes());
+        return db.replace(TertiaryKeysEntry.TABLE_NAME, /*nullColumnHack=*/ null, values);
+    }
+
+    /** Gets the key wrapped by {@code secondaryKeyAlias} for app with {@code packageName}. */
+    public Optional<TertiaryKey> getKey(String secondaryKeyAlias, String packageName)
+            throws EncryptionDbException {
+        SQLiteDatabase db = mHelper.getReadableDatabaseSafe();
+        String[] projection = {
+            TertiaryKeysEntry._ID,
+            TertiaryKeysEntry.COLUMN_NAME_SECONDARY_KEY_ALIAS,
+            TertiaryKeysEntry.COLUMN_NAME_PACKAGE_NAME,
+            TertiaryKeysEntry.COLUMN_NAME_WRAPPED_KEY_BYTES
+        };
+        String selection =
+                TertiaryKeysEntry.COLUMN_NAME_SECONDARY_KEY_ALIAS
+                        + " = ? AND "
+                        + TertiaryKeysEntry.COLUMN_NAME_PACKAGE_NAME
+                        + " = ?";
+        String[] selectionArguments = {secondaryKeyAlias, packageName};
+
+        try (Cursor cursor =
+                db.query(
+                        TertiaryKeysEntry.TABLE_NAME,
+                        projection,
+                        selection,
+                        selectionArguments,
+                        /*groupBy=*/ null,
+                        /*having=*/ null,
+                        /*orderBy=*/ null)) {
+            int count = cursor.getCount();
+            if (count == 0) {
+                return Optional.empty();
+            }
+
+            cursor.moveToFirst();
+            byte[] wrappedKeyBytes =
+                    cursor.getBlob(
+                            cursor.getColumnIndexOrThrow(
+                                    TertiaryKeysEntry.COLUMN_NAME_WRAPPED_KEY_BYTES));
+            return Optional.of(new TertiaryKey(secondaryKeyAlias, packageName, wrappedKeyBytes));
+        }
+    }
+
+    /** Returns all keys wrapped with {@code tertiaryKeyAlias} as an unmodifiable map. */
+    public Map<String, TertiaryKey> getAllKeys(String secondaryKeyAlias)
+            throws EncryptionDbException {
+        SQLiteDatabase db = mHelper.getReadableDatabaseSafe();
+        String[] projection = {
+            TertiaryKeysEntry._ID,
+            TertiaryKeysEntry.COLUMN_NAME_SECONDARY_KEY_ALIAS,
+            TertiaryKeysEntry.COLUMN_NAME_PACKAGE_NAME,
+            TertiaryKeysEntry.COLUMN_NAME_WRAPPED_KEY_BYTES
+        };
+        String selection = TertiaryKeysEntry.COLUMN_NAME_SECONDARY_KEY_ALIAS + " = ?";
+        String[] selectionArguments = {secondaryKeyAlias};
+
+        Map<String, TertiaryKey> keysByPackageName = new ArrayMap<>();
+        try (Cursor cursor =
+                db.query(
+                        TertiaryKeysEntry.TABLE_NAME,
+                        projection,
+                        selection,
+                        selectionArguments,
+                        /*groupBy=*/ null,
+                        /*having=*/ null,
+                        /*orderBy=*/ null)) {
+            while (cursor.moveToNext()) {
+                String packageName =
+                        cursor.getString(
+                                cursor.getColumnIndexOrThrow(
+                                        TertiaryKeysEntry.COLUMN_NAME_PACKAGE_NAME));
+                byte[] wrappedKeyBytes =
+                        cursor.getBlob(
+                                cursor.getColumnIndexOrThrow(
+                                        TertiaryKeysEntry.COLUMN_NAME_WRAPPED_KEY_BYTES));
+                keysByPackageName.put(
+                        packageName,
+                        new TertiaryKey(secondaryKeyAlias, packageName, wrappedKeyBytes));
+            }
+        }
+        return Collections.unmodifiableMap(keysByPackageName);
+    }
+}
diff --git a/services/backup/java/com/android/server/backup/fullbackup/AppMetadataBackupWriter.java b/services/backup/java/com/android/server/backup/fullbackup/AppMetadataBackupWriter.java
index 94365d7..bace1aa 100644
--- a/services/backup/java/com/android/server/backup/fullbackup/AppMetadataBackupWriter.java
+++ b/services/backup/java/com/android/server/backup/fullbackup/AppMetadataBackupWriter.java
@@ -1,10 +1,10 @@
 package com.android.server.backup.fullbackup;
 
-import static com.android.server.backup.BackupManagerService.BACKUP_MANIFEST_VERSION;
-import static com.android.server.backup.BackupManagerService.BACKUP_METADATA_VERSION;
-import static com.android.server.backup.BackupManagerService.BACKUP_WIDGET_METADATA_TOKEN;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_VERSION;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_VERSION;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_WIDGET_METADATA_TOKEN;
 
 import android.annotation.Nullable;
 import android.app.backup.FullBackup;
diff --git a/services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java b/services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java
index c9f7218..5e92339 100644
--- a/services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java
+++ b/services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java
@@ -16,13 +16,13 @@
 
 package com.android.server.backup.fullbackup;
 
-import static com.android.server.backup.BackupManagerService.BACKUP_MANIFEST_FILENAME;
-import static com.android.server.backup.BackupManagerService.BACKUP_METADATA_FILENAME;
 import static com.android.server.backup.BackupManagerService.DEBUG;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.OP_TYPE_BACKUP_WAIT;
-import static com.android.server.backup.BackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.OP_TYPE_BACKUP_WAIT;
+import static com.android.server.backup.UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 
 import android.app.ApplicationThreadConstants;
 import android.app.IBackupAgent;
@@ -39,8 +39,8 @@
 import com.android.internal.util.Preconditions;
 import com.android.server.AppWidgetBackupBridge;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.BackupRestoreTask;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.remote.RemoteCall;
 import com.android.server.backup.utils.FullBackupUtils;
 
@@ -53,7 +53,7 @@
  * and emitting it to the designated OutputStream.
  */
 public class FullBackupEngine {
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
     OutputStream mOutput;
     FullBackupPreflight mPreflightHook;
     BackupRestoreTask mTimeoutMonitor;
@@ -164,24 +164,21 @@
         }
 
         /**
-         * Don't write apks for forward-locked apps or system-bundled apps that are not upgraded.
+         * Don't write apks for system-bundled apps that are not upgraded.
          */
         private boolean shouldWriteApk(
                 ApplicationInfo applicationInfo, boolean includeApks, boolean isSharedStorage) {
-            boolean isForwardLocked =
-                    (applicationInfo.privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0;
             boolean isSystemApp = (applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
             boolean isUpdatedSystemApp =
                     (applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
             return includeApks
                     && !isSharedStorage
-                    && !isForwardLocked
                     && (!isSystemApp || isUpdatedSystemApp);
         }
     }
 
     public FullBackupEngine(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             OutputStream output,
             FullBackupPreflight preflightHook,
             PackageInfo pkg,
diff --git a/services/backup/java/com/android/server/backup/fullbackup/FullBackupObbConnection.java b/services/backup/java/com/android/server/backup/fullbackup/FullBackupObbConnection.java
index bc7d9fc..e142537 100644
--- a/services/backup/java/com/android/server/backup/fullbackup/FullBackupObbConnection.java
+++ b/services/backup/java/com/android/server/backup/fullbackup/FullBackupObbConnection.java
@@ -17,8 +17,8 @@
 package com.android.server.backup.fullbackup;
 
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.OP_TYPE_BACKUP_WAIT;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.OP_TYPE_BACKUP_WAIT;
 
 import android.app.backup.IBackupManager;
 import android.content.ComponentName;
@@ -34,7 +34,7 @@
 import com.android.internal.backup.IObbBackupService;
 import com.android.internal.util.Preconditions;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.utils.FullBackupUtils;
 
 import java.io.IOException;
@@ -45,11 +45,11 @@
  */
 public class FullBackupObbConnection implements ServiceConnection {
 
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
     volatile IObbBackupService mService;
     private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
 
-    public FullBackupObbConnection(BackupManagerService backupManagerService) {
+    public FullBackupObbConnection(UserBackupManagerService backupManagerService) {
         this.backupManagerService = backupManagerService;
         mService = null;
         mAgentTimeoutParameters = Preconditions.checkNotNull(
diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java
index 44edabc..43a80c4 100644
--- a/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java
+++ b/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java
@@ -16,13 +16,13 @@
 
 package com.android.server.backup.fullbackup;
 
-import static com.android.server.backup.BackupPasswordManager.PBKDF_CURRENT;
-import static com.android.server.backup.BackupManagerService.BACKUP_FILE_HEADER_MAGIC;
-import static com.android.server.backup.BackupManagerService.BACKUP_FILE_VERSION;
 import static com.android.server.backup.BackupManagerService.DEBUG;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.BackupPasswordManager.PBKDF_CURRENT;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_FILE_HEADER_MAGIC;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_FILE_VERSION;
+import static com.android.server.backup.UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 
 import android.app.backup.IFullBackupRestoreObserver;
 import android.content.pm.ApplicationInfo;
@@ -37,7 +37,7 @@
 import com.android.server.AppWidgetBackupBridge;
 import com.android.server.backup.BackupRestoreTask;
 import com.android.server.backup.KeyValueAdbBackupEngine;
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.utils.AppBackupUtils;
 import com.android.server.backup.utils.PasswordUtils;
 
@@ -66,7 +66,7 @@
  */
 public class PerformAdbBackupTask extends FullBackupTask implements BackupRestoreTask {
 
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
     FullBackupEngine mBackupEngine;
     final AtomicBoolean mLatch;
 
@@ -86,7 +86,7 @@
     String mEncryptPassword;
     private final int mCurrentOpToken;
 
-    public PerformAdbBackupTask(BackupManagerService backupManagerService,
+    public PerformAdbBackupTask(UserBackupManagerService backupManagerService,
             ParcelFileDescriptor fd, IFullBackupRestoreObserver observer,
             boolean includeApks, boolean includeObbs, boolean includeShared, boolean doWidgets,
             String curPassword, String encryptPassword, boolean doAllApps, boolean doSystem,
diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
index 755095e..5b449c5 100644
--- a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
+++ b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
@@ -19,9 +19,9 @@
 import static com.android.server.backup.BackupManagerService.DEBUG;
 import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.OP_PENDING;
-import static com.android.server.backup.BackupManagerService.OP_TYPE_BACKUP;
-import static com.android.server.backup.BackupManagerService.OP_TYPE_BACKUP_WAIT;
+import static com.android.server.backup.UserBackupManagerService.OP_PENDING;
+import static com.android.server.backup.UserBackupManagerService.OP_TYPE_BACKUP;
+import static com.android.server.backup.UserBackupManagerService.OP_TYPE_BACKUP_WAIT;
 
 import android.annotation.Nullable;
 import android.app.IBackupAgent;
@@ -45,10 +45,10 @@
 import com.android.internal.util.Preconditions;
 import com.android.server.EventLogTags;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.BackupRestoreTask;
 import com.android.server.backup.FullBackupJob;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.internal.OnTaskFinishedListener;
 import com.android.server.backup.internal.Operation;
 import com.android.server.backup.remote.RemoteCall;
@@ -97,7 +97,7 @@
  */
 public class PerformFullTransportBackupTask extends FullBackupTask implements BackupRestoreTask {
     public static PerformFullTransportBackupTask newWithCurrentTransport(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             IFullBackupRestoreObserver observer,
             String[] whichPackages,
             boolean updateSchedule,
@@ -128,7 +128,7 @@
 
     private static final String TAG = "PFTBT";
 
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
     private final Object mCancelLock = new Object();
 
     ArrayList<PackageInfo> mPackages;
@@ -150,7 +150,7 @@
     private final int mCurrentOpToken;
     private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
 
-    public PerformFullTransportBackupTask(BackupManagerService backupManagerService,
+    public PerformFullTransportBackupTask(UserBackupManagerService backupManagerService,
             TransportClient transportClient,
             IFullBackupRestoreObserver observer,
             String[] whichPackages, boolean updateSchedule,
diff --git a/services/backup/java/com/android/server/backup/internal/BackupHandler.java b/services/backup/java/com/android/server/backup/internal/BackupHandler.java
index f66d8cc..ba153bf 100644
--- a/services/backup/java/com/android/server/backup/internal/BackupHandler.java
+++ b/services/backup/java/com/android/server/backup/internal/BackupHandler.java
@@ -35,10 +35,10 @@
 import com.android.internal.util.Preconditions;
 import com.android.server.EventLogTags;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.BackupRestoreTask;
 import com.android.server.backup.DataChangedJournal;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.fullbackup.PerformAdbBackupTask;
 import com.android.server.backup.fullbackup.PerformFullTransportBackupTask;
 import com.android.server.backup.keyvalue.BackupRequest;
@@ -84,10 +84,10 @@
     public static final int MSG_BACKUP_RESTORE_STEP = 20;
     public static final int MSG_OP_COMPLETE = 21;
 
-    private final BackupManagerService backupManagerService;
+    private final UserBackupManagerService backupManagerService;
     private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
 
-    public BackupHandler(BackupManagerService backupManagerService, Looper looper) {
+    public BackupHandler(UserBackupManagerService backupManagerService, Looper looper) {
         super(looper);
         this.backupManagerService = backupManagerService;
         mAgentTimeoutParameters = Preconditions.checkNotNull(
diff --git a/services/backup/java/com/android/server/backup/internal/ClearDataObserver.java b/services/backup/java/com/android/server/backup/internal/ClearDataObserver.java
index b0b8037..396f369 100644
--- a/services/backup/java/com/android/server/backup/internal/ClearDataObserver.java
+++ b/services/backup/java/com/android/server/backup/internal/ClearDataObserver.java
@@ -18,13 +18,13 @@
 
 import android.content.pm.IPackageDataObserver;
 
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 
 public class ClearDataObserver extends IPackageDataObserver.Stub {
 
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
 
-    public ClearDataObserver(BackupManagerService backupManagerService) {
+    public ClearDataObserver(UserBackupManagerService backupManagerService) {
         this.backupManagerService = backupManagerService;
     }
 
diff --git a/services/backup/java/com/android/server/backup/internal/PerformClearTask.java b/services/backup/java/com/android/server/backup/internal/PerformClearTask.java
index d028104..5ffa795 100644
--- a/services/backup/java/com/android/server/backup/internal/PerformClearTask.java
+++ b/services/backup/java/com/android/server/backup/internal/PerformClearTask.java
@@ -22,20 +22,20 @@
 import android.util.Slog;
 
 import com.android.internal.backup.IBackupTransport;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.transport.TransportClient;
 
 import java.io.File;
 
 public class PerformClearTask implements Runnable {
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
     private final TransportManager mTransportManager;
     private final TransportClient mTransportClient;
     private final PackageInfo mPackage;
     private final OnTaskFinishedListener mListener;
 
-    PerformClearTask(BackupManagerService backupManagerService,
+    PerformClearTask(UserBackupManagerService backupManagerService,
             TransportClient transportClient, PackageInfo packageInfo,
             OnTaskFinishedListener listener) {
         mBackupManagerService = backupManagerService;
diff --git a/services/backup/java/com/android/server/backup/internal/PerformInitializeTask.java b/services/backup/java/com/android/server/backup/internal/PerformInitializeTask.java
index 1ef740d..6b78fbf 100644
--- a/services/backup/java/com/android/server/backup/internal/PerformInitializeTask.java
+++ b/services/backup/java/com/android/server/backup/internal/PerformInitializeTask.java
@@ -30,8 +30,8 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.backup.IBackupTransport;
 import com.android.server.EventLogTags;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.transport.TransportClient;
 
 import java.io.File;
@@ -49,7 +49,7 @@
  * operation was successful then it's {@link BackupTransport#TRANSPORT_OK}.
  */
 public class PerformInitializeTask implements Runnable {
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
     private final TransportManager mTransportManager;
     private final String[] mQueue;
     private final File mBaseStateDir;
@@ -57,7 +57,7 @@
     @Nullable private IBackupObserver mObserver;
 
     public PerformInitializeTask(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             String[] transportNames,
             @Nullable IBackupObserver observer,
             OnTaskFinishedListener listener) {
@@ -72,7 +72,7 @@
 
     @VisibleForTesting
     PerformInitializeTask(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             TransportManager transportManager,
             String[] transportNames,
             @Nullable IBackupObserver observer,
diff --git a/services/backup/java/com/android/server/backup/internal/ProvisionedObserver.java b/services/backup/java/com/android/server/backup/internal/ProvisionedObserver.java
index 69720d4..7e2ac796 100644
--- a/services/backup/java/com/android/server/backup/internal/ProvisionedObserver.java
+++ b/services/backup/java/com/android/server/backup/internal/ProvisionedObserver.java
@@ -23,15 +23,15 @@
 import android.os.Handler;
 import android.util.Slog;
 
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.KeyValueBackupJob;
+import com.android.server.backup.UserBackupManagerService;
 
 public class ProvisionedObserver extends ContentObserver {
 
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
 
     public ProvisionedObserver(
-            BackupManagerService backupManagerService, Handler handler) {
+            UserBackupManagerService backupManagerService, Handler handler) {
         super(handler);
         this.backupManagerService = backupManagerService;
     }
diff --git a/services/backup/java/com/android/server/backup/internal/RunBackupReceiver.java b/services/backup/java/com/android/server/backup/internal/RunBackupReceiver.java
index 6f574ca..2a5d913 100644
--- a/services/backup/java/com/android/server/backup/internal/RunBackupReceiver.java
+++ b/services/backup/java/com/android/server/backup/internal/RunBackupReceiver.java
@@ -18,8 +18,8 @@
 
 import static com.android.server.backup.BackupManagerService.DEBUG;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.RUN_BACKUP_ACTION;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.RUN_BACKUP_ACTION;
 import static com.android.server.backup.internal.BackupHandler.MSG_RUN_BACKUP;
 
 import android.app.PendingIntent;
@@ -29,13 +29,13 @@
 import android.os.Message;
 import android.util.Slog;
 
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 
 public class RunBackupReceiver extends BroadcastReceiver {
 
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
 
-    public RunBackupReceiver(BackupManagerService backupManagerService) {
+    public RunBackupReceiver(UserBackupManagerService backupManagerService) {
         this.backupManagerService = backupManagerService;
     }
 
diff --git a/services/backup/java/com/android/server/backup/internal/RunInitializeReceiver.java b/services/backup/java/com/android/server/backup/internal/RunInitializeReceiver.java
index 548c580..38870cb 100644
--- a/services/backup/java/com/android/server/backup/internal/RunInitializeReceiver.java
+++ b/services/backup/java/com/android/server/backup/internal/RunInitializeReceiver.java
@@ -17,8 +17,8 @@
 package com.android.server.backup.internal;
 
 import static com.android.server.backup.BackupManagerService.DEBUG;
-import static com.android.server.backup.BackupManagerService.RUN_INITIALIZE_ACTION;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.RUN_INITIALIZE_ACTION;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -27,12 +27,12 @@
 import android.util.ArraySet;
 import android.util.Slog;
 
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 
 public class RunInitializeReceiver extends BroadcastReceiver {
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
 
-    public RunInitializeReceiver(BackupManagerService backupManagerService) {
+    public RunInitializeReceiver(UserBackupManagerService backupManagerService) {
         mBackupManagerService = backupManagerService;
     }
 
diff --git a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupReporter.java b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupReporter.java
index bb8a1d1..535c7cb 100644
--- a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupReporter.java
+++ b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupReporter.java
@@ -30,6 +30,7 @@
 import com.android.server.EventLogTags;
 import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.DataChangedJournal;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.remote.RemoteResult;
 import com.android.server.backup.utils.BackupManagerMonitorUtils;
 import com.android.server.backup.utils.BackupObserverUtils;
@@ -54,7 +55,7 @@
 public class KeyValueBackupReporter {
     @VisibleForTesting static final String TAG = "KeyValueBackupTask";
     private static final boolean DEBUG = BackupManagerService.DEBUG;
-    @VisibleForTesting static final boolean MORE_DEBUG = BackupManagerService.MORE_DEBUG || false;
+    @VisibleForTesting static final boolean MORE_DEBUG = BackupManagerService.MORE_DEBUG;
 
     static void onNewThread(String threadName) {
         if (DEBUG) {
@@ -62,12 +63,12 @@
         }
     }
 
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
     private final IBackupObserver mObserver;
     @Nullable private IBackupManagerMonitor mMonitor;
 
     KeyValueBackupReporter(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             IBackupObserver observer,
             @Nullable IBackupManagerMonitor monitor) {
         mBackupManagerService = backupManagerService;
diff --git a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java
index d6f2a87..f39d795 100644
--- a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java
+++ b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java
@@ -22,9 +22,9 @@
 import static android.os.ParcelFileDescriptor.MODE_READ_WRITE;
 import static android.os.ParcelFileDescriptor.MODE_TRUNCATE;
 
-import static com.android.server.backup.BackupManagerService.KEY_WIDGET_STATE;
-import static com.android.server.backup.BackupManagerService.OP_PENDING;
-import static com.android.server.backup.BackupManagerService.OP_TYPE_BACKUP;
+import static com.android.server.backup.UserBackupManagerService.KEY_WIDGET_STATE;
+import static com.android.server.backup.UserBackupManagerService.OP_PENDING;
+import static com.android.server.backup.UserBackupManagerService.OP_TYPE_BACKUP;
 
 import android.annotation.IntDef;
 import android.annotation.Nullable;
@@ -35,7 +35,6 @@
 import android.app.backup.BackupManager;
 import android.app.backup.BackupTransport;
 import android.app.backup.IBackupCallback;
-import android.app.backup.IBackupManager;
 import android.app.backup.IBackupManagerMonitor;
 import android.app.backup.IBackupObserver;
 import android.content.pm.ApplicationInfo;
@@ -55,11 +54,11 @@
 import com.android.internal.util.Preconditions;
 import com.android.server.AppWidgetBackupBridge;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.BackupRestoreTask;
 import com.android.server.backup.DataChangedJournal;
 import com.android.server.backup.KeyValueBackupJob;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.fullbackup.PerformFullTransportBackupTask;
 import com.android.server.backup.internal.OnTaskFinishedListener;
 import com.android.server.backup.internal.Operation;
@@ -95,12 +94,12 @@
  * <p>A few definitions:
  *
  * <ul>
- *   <li>State directory: {@link BackupManagerService#getBaseStateDir()}/&lt;transport&gt;
+ *   <li>State directory: {@link UserBackupManagerService#getBaseStateDir()}/&lt;transport&gt;
  *   <li>State file: {@link
- *       BackupManagerService#getBaseStateDir()}/&lt;transport&gt;/&lt;package&gt;<br>
+ *       UserBackupManagerService#getBaseStateDir()}/&lt;transport&gt;/&lt;package&gt;<br>
  *       Represents the state of the backup data for a specific package in the current dataset.
- *   <li>Stage directory: {@link BackupManagerService#getDataDir()}
- *   <li>Stage file: {@link BackupManagerService#getDataDir()}/&lt;package&gt;.data<br>
+ *   <li>Stage directory: {@link UserBackupManagerService#getDataDir()}
+ *   <li>Stage file: {@link UserBackupManagerService#getDataDir()}/&lt;package&gt;.data<br>
  *       Contains staged data that the agents wrote via {@link BackupDataOutput}, to be transmitted
  *       to the transport.
  * </ul>
@@ -112,7 +111,7 @@
  * of incremental choice. If non-incremental, PM will only be backed-up if specified in the queue,
  * and if it's the case it will be re-positioned at the head of the queue.
  *
- * <p>Before starting, this task will register itself in {@link BackupManagerService} current
+ * <p>Before starting, this task will register itself in {@link UserBackupManagerService} current
  * operations.
  *
  * <p>In summary, this task will for each package:
@@ -121,7 +120,7 @@
  *   <li>Bind to its {@link IBackupAgent}.
  *   <li>Request transport quota and flags.
  *   <li>Call {@link IBackupAgent#doBackup(ParcelFileDescriptor, ParcelFileDescriptor,
- *       ParcelFileDescriptor, long, int, IBackupManager, int)} via {@link RemoteCall} passing the
+ *       ParcelFileDescriptor, long, IBackupCallback, int)} via {@link RemoteCall} passing the
  *       old state file descriptor (read), the backup data file descriptor (write), the new state
  *       file descriptor (write), the quota and the transport flags. This will call {@link
  *       BackupAgent#onBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor)} with
@@ -131,7 +130,7 @@
  *       <ul>
  *         <li>Agent response.
  *         <li>Agent time-out (specified via {@link
- *             BackupManagerService#getAgentTimeoutParameters()}.
+ *             UserBackupManagerService#getAgentTimeoutParameters()}.
  *         <li>External cancellation or thread interrupt.
  *       </ul>
  *   <li>Unbind the agent.
@@ -149,11 +148,11 @@
  *   <li>Mark data-changed for the remaining packages in the queue (skipped packages).
  *   <li>Delete the {@link DataChangedJournal} provided. Note that this should not be the current
  *       journal.
- *   <li>Set {@link BackupManagerService} current token as {@link
+ *   <li>Set {@link UserBackupManagerService} current token as {@link
  *       IBackupTransport#getCurrentRestoreSet()}, if applicable.
  *   <li>Add the transport to the list of transports pending initialization ({@link
- *       BackupManagerService#getPendingInits()}) and kick-off initialization if the transport ever
- *       returned {@link BackupTransport#TRANSPORT_NOT_INITIALIZED}.
+ *       UserBackupManagerService#getPendingInits()}) and kick-off initialization if the transport
+ *       ever returned {@link BackupTransport#TRANSPORT_NOT_INITIALIZED}.
  *   <li>Unregister the task in current operations.
  *   <li>Release the wakelock.
  *   <li>Kick-off {@link PerformFullTransportBackupTask} if a list of full-backup packages was
@@ -174,7 +173,7 @@
     private static final int THREAD_PRIORITY = Process.THREAD_PRIORITY_BACKGROUND;
     private static final AtomicInteger THREAD_COUNT = new AtomicInteger();
     private static final String BLANK_STATE_FILE_NAME = "blank_state";
-    private static final String PM_PACKAGE = BackupManagerService.PACKAGE_MANAGER_SENTINEL;
+    private static final String PM_PACKAGE = UserBackupManagerService.PACKAGE_MANAGER_SENTINEL;
     @VisibleForTesting public static final String STAGING_FILE_SUFFIX = ".data";
     @VisibleForTesting public static final String NEW_STATE_FILE_SUFFIX = ".new";
 
@@ -182,7 +181,7 @@
      * Creates a new {@link KeyValueBackupTask} for key-value backup operation, spins up a new
      * dedicated thread and kicks off the operation in it.
      *
-     * @param backupManagerService The {@link BackupManagerService} system service.
+     * @param backupManagerService The {@link UserBackupManagerService} instance.
      * @param transportClient The {@link TransportClient} that contains the transport used for the
      *     operation.
      * @param transportDirName The value of {@link IBackupTransport#transportDirName()} for the
@@ -201,7 +200,7 @@
      * @return The {@link KeyValueBackupTask} that was started.
      */
     public static KeyValueBackupTask start(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             TransportClient transportClient,
             String transportDirName,
             List<String> queue,
@@ -232,7 +231,7 @@
         return task;
     }
 
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
     private final PackageManager mPackageManager;
     private final TransportManager mTransportManager;
     private final TransportClient mTransportClient;
@@ -289,7 +288,7 @@
 
     @VisibleForTesting
     public KeyValueBackupTask(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             TransportClient transportClient,
             String transportDirName,
             List<String> queue,
diff --git a/services/backup/java/com/android/server/backup/remote/ServiceBackupCallback.java b/services/backup/java/com/android/server/backup/remote/ServiceBackupCallback.java
index 28d85a6..bfc97ae 100644
--- a/services/backup/java/com/android/server/backup/remote/ServiceBackupCallback.java
+++ b/services/backup/java/com/android/server/backup/remote/ServiceBackupCallback.java
@@ -20,12 +20,12 @@
 import android.app.backup.IBackupManager;
 import android.os.RemoteException;
 
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 
 /**
  * An implementation of {@link IBackupCallback} that routes the result to {@link
- * BackupManagerService} via {@link IBackupManager#opComplete(int, long)} passing the token provided
- * in the constructor.
+ * UserBackupManagerService} via {@link IBackupManager#opComplete(int, long)} passing the token
+ * provided in the constructor.
  */
 public class ServiceBackupCallback extends IBackupCallback.Stub {
     private final IBackupManager mBackupManager;
diff --git a/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java b/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java
index 140dded..e273b32 100644
--- a/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java
+++ b/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java
@@ -36,8 +36,8 @@
 import android.os.PowerManager;
 import android.util.Slog;
 
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.internal.OnTaskFinishedListener;
 import com.android.server.backup.params.RestoreGetSetsParams;
 import com.android.server.backup.params.RestoreParams;
@@ -53,14 +53,14 @@
 
     private final TransportManager mTransportManager;
     private final String mTransportName;
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
     @Nullable private final String mPackageName;
     public RestoreSet[] mRestoreSets = null;
     boolean mEnded = false;
     boolean mTimedOut = false;
 
     public ActiveRestoreSession(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             @Nullable String packageName,
             String transportName) {
         mBackupManagerService = backupManagerService;
@@ -405,10 +405,10 @@
     // Posted to the handler to tear down a restore session in a cleanly synchronized way
     public class EndRestoreRunnable implements Runnable {
 
-        BackupManagerService mBackupManager;
+        UserBackupManagerService mBackupManager;
         ActiveRestoreSession mSession;
 
-        public EndRestoreRunnable(BackupManagerService manager, ActiveRestoreSession session) {
+        public EndRestoreRunnable(UserBackupManagerService manager, ActiveRestoreSession session) {
             mBackupManager = manager;
             mSession = session;
         }
diff --git a/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedLatch.java b/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedLatch.java
index a8c7ce6..e4890e0 100644
--- a/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedLatch.java
+++ b/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedLatch.java
@@ -23,8 +23,8 @@
 
 import com.android.internal.util.Preconditions;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.BackupRestoreTask;
+import com.android.server.backup.UserBackupManagerService;
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -35,12 +35,12 @@
 public class AdbRestoreFinishedLatch implements BackupRestoreTask {
 
     private static final String TAG = "AdbRestoreFinishedLatch";
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
     final CountDownLatch mLatch;
     private final int mCurrentOpToken;
     private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
 
-    public AdbRestoreFinishedLatch(BackupManagerService backupManagerService,
+    public AdbRestoreFinishedLatch(UserBackupManagerService backupManagerService,
             int currentOpToken) {
         this.backupManagerService = backupManagerService;
         mLatch = new CountDownLatch(1);
diff --git a/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedRunnable.java b/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedRunnable.java
index dc7044e..184a6d0 100644
--- a/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedRunnable.java
+++ b/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedRunnable.java
@@ -3,7 +3,7 @@
 import android.app.IBackupAgent;
 import android.os.RemoteException;
 
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 
 /**
  * Runner that can be placed on a separate thread to do in-process invocation of the "restore
@@ -13,10 +13,10 @@
 
     private final IBackupAgent mAgent;
     private final int mToken;
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
 
     AdbRestoreFinishedRunnable(IBackupAgent agent, int token,
-            BackupManagerService backupManagerService) {
+            UserBackupManagerService backupManagerService) {
         mAgent = agent;
         mToken = token;
         mBackupManagerService = backupManagerService;
diff --git a/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java b/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java
index 1084f52..0d26ea5 100644
--- a/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java
+++ b/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java
@@ -16,13 +16,13 @@
 
 package com.android.server.backup.restore;
 
-import static com.android.server.backup.BackupManagerService.BACKUP_MANIFEST_FILENAME;
-import static com.android.server.backup.BackupManagerService.BACKUP_METADATA_FILENAME;
 import static com.android.server.backup.BackupManagerService.DEBUG;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.OP_TYPE_RESTORE_WAIT;
-import static com.android.server.backup.BackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.OP_TYPE_RESTORE_WAIT;
+import static com.android.server.backup.UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_OPERATION_TIMEOUT;
 
 import android.app.ApplicationThreadConstants;
@@ -44,10 +44,10 @@
 import com.android.internal.util.Preconditions;
 import com.android.server.LocalServices;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.BackupRestoreTask;
 import com.android.server.backup.FileMetadata;
 import com.android.server.backup.KeyValueAdbRestoreEngine;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.fullbackup.FullBackupObbConnection;
 import com.android.server.backup.utils.BytesReadListener;
 import com.android.server.backup.utils.FullBackupRestoreObserverUtils;
@@ -57,7 +57,6 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -68,7 +67,7 @@
  */
 public class FullRestoreEngine extends RestoreEngine {
 
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
     // Task in charge of monitoring timeouts
     private final BackupRestoreTask mMonitorTask;
 
@@ -129,7 +128,7 @@
     private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
     final boolean mIsAdbRestore;
 
-    public FullRestoreEngine(BackupManagerService backupManagerService,
+    public FullRestoreEngine(UserBackupManagerService backupManagerService,
             BackupRestoreTask monitorTask, IFullBackupRestoreObserver observer,
             IBackupManagerMonitor monitor, PackageInfo onlyPackage, boolean allowApks,
             boolean allowObbs, int ephemeralOpToken, boolean isAdbRestore) {
diff --git a/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java b/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java
index 32dbad9..c904256 100644
--- a/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java
+++ b/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java
@@ -16,18 +16,15 @@
 
 package com.android.server.backup.restore;
 
-import static com.android.server.backup.BackupManagerService.BACKUP_FILE_HEADER_MAGIC;
-import static com.android.server.backup.BackupManagerService.BACKUP_FILE_VERSION;
 import static com.android.server.backup.BackupManagerService.DEBUG;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.OP_TYPE_RESTORE_WAIT;
-import static com.android.server.backup.BackupManagerService.SETTINGS_PACKAGE;
-import static com.android.server.backup.BackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 import static com.android.server.backup.BackupManagerService.TAG;
 import static com.android.server.backup.BackupPasswordManager.PBKDF_CURRENT;
 import static com.android.server.backup.BackupPasswordManager.PBKDF_FALLBACK;
-import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_OPERATION_TIMEOUT;
-
+import static com.android.server.backup.UserBackupManagerService.BACKUP_FILE_HEADER_MAGIC;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_FILE_VERSION;
+import static com.android.server.backup.UserBackupManagerService.SETTINGS_PACKAGE;
+import static com.android.server.backup.UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 
 import android.app.IBackupAgent;
 import android.app.backup.BackupAgent;
@@ -36,15 +33,12 @@
 import android.content.pm.Signature;
 import android.os.Environment;
 import android.os.ParcelFileDescriptor;
-import android.os.RemoteException;
 import android.util.Slog;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.Preconditions;
-import com.android.server.LocalServices;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
-import com.android.server.backup.PackageManagerBackupAgent;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.fullbackup.FullBackupObbConnection;
 import com.android.server.backup.utils.FullBackupRestoreObserverUtils;
 import com.android.server.backup.utils.PasswordUtils;
@@ -72,7 +66,7 @@
 
 public class PerformAdbRestoreTask implements Runnable {
 
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
     private final ParcelFileDescriptor mInputFile;
     private final String mCurrentPassword;
     private final String mDecryptPassword;
@@ -106,7 +100,7 @@
     // Packages we've already wiped data on when restoring their first file
     private final HashSet<String> mClearedPackages = new HashSet<>();
 
-    public PerformAdbRestoreTask(BackupManagerService backupManagerService,
+    public PerformAdbRestoreTask(UserBackupManagerService backupManagerService,
             ParcelFileDescriptor fd, String curPassword, String decryptPassword,
             IFullBackupRestoreObserver observer, AtomicBoolean latch) {
         this.mBackupManagerService = backupManagerService;
diff --git a/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java b/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java
index 580f70a..f7efad6 100644
--- a/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java
+++ b/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java
@@ -17,12 +17,12 @@
 package com.android.server.backup.restore;
 
 import static com.android.server.backup.BackupManagerService.DEBUG;
-import static com.android.server.backup.BackupManagerService.KEY_WIDGET_STATE;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.OP_TYPE_RESTORE_WAIT;
-import static com.android.server.backup.BackupManagerService.PACKAGE_MANAGER_SENTINEL;
-import static com.android.server.backup.BackupManagerService.SETTINGS_PACKAGE;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.KEY_WIDGET_STATE;
+import static com.android.server.backup.UserBackupManagerService.OP_TYPE_RESTORE_WAIT;
+import static com.android.server.backup.UserBackupManagerService.PACKAGE_MANAGER_SENTINEL;
+import static com.android.server.backup.UserBackupManagerService.SETTINGS_PACKAGE;
 import static com.android.server.backup.internal.BackupHandler.MSG_BACKUP_RESTORE_STEP;
 import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_OPERATION_TIMEOUT;
 import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_SESSION_TIMEOUT;
@@ -40,8 +40,8 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.PackageManagerInternal;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.PackageManagerInternal;
 import android.os.Bundle;
 import android.os.Message;
 import android.os.ParcelFileDescriptor;
@@ -62,8 +62,8 @@
 import com.android.server.backup.BackupUtils;
 import com.android.server.backup.PackageManagerBackupAgent;
 import com.android.server.backup.PackageManagerBackupAgent.Metadata;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.internal.OnTaskFinishedListener;
 import com.android.server.backup.transport.TransportClient;
 import com.android.server.backup.utils.AppBackupUtils;
@@ -80,7 +80,7 @@
 
 public class PerformUnifiedRestoreTask implements BackupRestoreTask {
 
-    private BackupManagerService backupManagerService;
+    private UserBackupManagerService backupManagerService;
     private final TransportManager mTransportManager;
     // Transport client we're working with to do the restore
     private final TransportClient mTransportClient;
@@ -164,7 +164,7 @@
     // This task can assume that the wakelock is properly held for it and doesn't have to worry
     // about releasing it.
     public PerformUnifiedRestoreTask(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             TransportClient transportClient,
             IRestoreObserver observer,
             IBackupManagerMonitor monitor,
diff --git a/services/backup/java/com/android/server/backup/restore/RestoreFileRunnable.java b/services/backup/java/com/android/server/backup/restore/RestoreFileRunnable.java
index 635b6d6..c4aa2d7 100644
--- a/services/backup/java/com/android/server/backup/restore/RestoreFileRunnable.java
+++ b/services/backup/java/com/android/server/backup/restore/RestoreFileRunnable.java
@@ -21,7 +21,7 @@
 import android.os.RemoteException;
 
 import com.android.server.backup.FileMetadata;
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 
 import java.io.IOException;
 
@@ -35,9 +35,9 @@
     private final FileMetadata mInfo;
     private final ParcelFileDescriptor mSocket;
     private final int mToken;
-    private final BackupManagerService mBackupManagerService;
+    private final UserBackupManagerService mBackupManagerService;
 
-    RestoreFileRunnable(BackupManagerService backupManagerService, IBackupAgent agent,
+    RestoreFileRunnable(UserBackupManagerService backupManagerService, IBackupAgent agent,
             FileMetadata info, ParcelFileDescriptor socket, int token) throws IOException {
         mAgent = agent;
         mInfo = info;
diff --git a/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java b/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java
index c933833..e465c7e 100644
--- a/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java
+++ b/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java
@@ -17,8 +17,8 @@
 package com.android.server.backup.utils;
 
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 
 import android.annotation.Nullable;
 import android.app.backup.BackupTransport;
diff --git a/services/backup/java/com/android/server/backup/utils/TarBackupReader.java b/services/backup/java/com/android/server/backup/utils/TarBackupReader.java
index 6dd5284..0f4b681 100644
--- a/services/backup/java/com/android/server/backup/utils/TarBackupReader.java
+++ b/services/backup/java/com/android/server/backup/utils/TarBackupReader.java
@@ -34,14 +34,14 @@
 import static android.app.backup.BackupManagerMonitor.LOG_EVENT_ID_VERSIONS_MATCH;
 import static android.app.backup.BackupManagerMonitor.LOG_EVENT_ID_VERSION_OF_BACKUP_OLDER;
 
-import static com.android.server.backup.BackupManagerService.BACKUP_MANIFEST_FILENAME;
-import static com.android.server.backup.BackupManagerService.BACKUP_MANIFEST_VERSION;
-import static com.android.server.backup.BackupManagerService.BACKUP_METADATA_FILENAME;
-import static com.android.server.backup.BackupManagerService.BACKUP_WIDGET_METADATA_TOKEN;
 import static com.android.server.backup.BackupManagerService.DEBUG;
 import static com.android.server.backup.BackupManagerService.MORE_DEBUG;
-import static com.android.server.backup.BackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 import static com.android.server.backup.BackupManagerService.TAG;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_VERSION;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_WIDGET_METADATA_TOKEN;
+import static com.android.server.backup.UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 
 import android.app.backup.BackupAgent;
 import android.app.backup.BackupManagerMonitor;
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 6174300..784d398 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -32,6 +32,10 @@
         "android.hardware.tv.cec-V1.0-java",
     ],
 
+    required: [
+        "gps_debug.conf",
+    ],
+
     static_libs: [
         "time_zone_distro",
         "time_zone_distro_installer",
@@ -69,3 +73,9 @@
     name: "services.core",
     static_libs: ["services.core.priorityboosted"],
 }
+
+
+prebuilt_etc {
+    name: "gps_debug.conf",
+    src: "java/com/android/server/location/gps_debug.conf",
+}
diff --git a/services/core/java/com/android/server/AbstractMasterSystemService.java b/services/core/java/com/android/server/AbstractMasterSystemService.java
index 9c1e3cd..1759ce1 100644
--- a/services/core/java/com/android/server/AbstractMasterSystemService.java
+++ b/services/core/java/com/android/server/AbstractMasterSystemService.java
@@ -93,6 +93,12 @@
     public boolean debug = false;
 
     /**
+     * Whether the service is allowed to bind to an instant-app.
+     */
+    @GuardedBy("mLock")
+    protected boolean mAllowInstantService;
+
+    /**
      * Users disabled due to {@link UserManager} restrictions, or {@code null} if the service cannot
      * be disabled through {@link UserManager}.
      */
@@ -176,6 +182,47 @@
     }
 
     /**
+     * Gets whether the service is allowed to bind to an instant-app.
+     *
+     * <p>Typically called by {@code ShellCommand} during CTS tests.
+     *
+     * @throws SecurityException if caller is not allowed to manage this service's settings.
+     */
+    public final boolean getAllowInstantService() {
+        enforceCallingPermissionForManagement();
+        synchronized (mLock) {
+            return mAllowInstantService;
+        }
+    }
+
+    /**
+     * Sets whether the service is allowed to bind to an instant-app.
+     *
+     * <p>Typically called by {@code ShellCommand} during CTS tests.
+     *
+     * @throws SecurityException if caller is not allowed to manage this service's settings.
+     */
+    public final void setAllowInstantService(boolean mode) {
+        Slog.i(mTag, "setAllowInstantService(): " + mode);
+        enforceCallingPermissionForManagement();
+        synchronized (mLock) {
+            mAllowInstantService = mode;
+        }
+    }
+
+    /**
+     * Asserts that the caller has permissions to manage this service.
+     *
+     * <p>Typically called by {@code ShellCommand} implementations.
+     *
+     * @throws UnsupportedOperationException if subclass doesn't override it.
+     * @throws SecurityException if caller is not allowed to manage this service's settings.
+     */
+    protected void enforceCallingPermissionForManagement() {
+        throw new UnsupportedOperationException("Not implemented by " + getClass());
+    }
+
+    /**
      * Creates a new service that will be added to the cache.
      *
      * @param resolvedUserId the resolved user id for the service.
@@ -362,6 +409,7 @@
             pw.print(prefix); pw.print("Debug: "); pw.print(realDebug);
             pw.print(" Verbose: "); pw.println(realVerbose);
             pw.print(prefix); pw.print("Disabled users: "); pw.println(mDisabledUsers);
+            pw.print(prefix); pw.print("Allow instant service: "); pw.println(mAllowInstantService);
             pw.print(prefix); pw.print("Settings property: "); pw.println(
                     getServiceSettingsProperty());
             pw.print(prefix); pw.print("Cached services: ");
diff --git a/services/core/java/com/android/server/AbstractMultiplePendingRequestsRemoteService.java b/services/core/java/com/android/server/AbstractMultiplePendingRequestsRemoteService.java
new file mode 100644
index 0000000..f532b22
--- /dev/null
+++ b/services/core/java/com/android/server/AbstractMultiplePendingRequestsRemoteService.java
@@ -0,0 +1,96 @@
+/*
+ * 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.server;
+
+import android.annotation.NonNull;
+import android.content.ComponentName;
+import android.content.Context;
+import android.util.Slog;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+/**
+ * Base class representing a remote service that can queue multiple pending requests while not
+ * bound.
+ *
+ * @param <S> the concrete remote service class
+ *
+ * @hide
+ */
+public abstract class AbstractMultiplePendingRequestsRemoteService<
+        S extends AbstractMultiplePendingRequestsRemoteService<S>>
+        extends AbstractRemoteService<S> {
+
+    private final int mInitialCapacity;
+
+    protected ArrayList<PendingRequest<S>> mPendingRequests;
+
+    public AbstractMultiplePendingRequestsRemoteService(@NonNull Context context,
+            @NonNull String serviceInterface, @NonNull ComponentName componentName, int userId,
+            @NonNull VultureCallback callback, boolean bindInstantServiceAllowed, boolean verbose,
+            int initialCapacity) {
+        super(context, serviceInterface, componentName, userId, callback, bindInstantServiceAllowed,
+                verbose);
+        mInitialCapacity = initialCapacity;
+    }
+
+    @Override // from AbstractRemoteService
+    void handlePendingRequests() {
+        if (mPendingRequests != null) {
+            final int size = mPendingRequests.size();
+            if (mVerbose) Slog.v(mTag, "Sending " + size + " pending requests");
+            for (int i = 0; i < size; i++) {
+                mPendingRequests.get(i).run();
+            }
+            mPendingRequests = null;
+        }
+    }
+
+    @Override // from AbstractRemoteService
+    protected void handleOnDestroy() {
+        if (mPendingRequests != null) {
+            final int size = mPendingRequests.size();
+            if (mVerbose) Slog.v(mTag, "Canceling " + size + " pending requests");
+            for (int i = 0; i < size; i++) {
+                mPendingRequests.get(i).cancel();
+            }
+            mPendingRequests = null;
+        }
+    }
+
+    @Override // from AbstractRemoteService
+    public void dump(@NonNull String prefix, @NonNull PrintWriter pw) {
+        super.dump(prefix, pw);
+
+        pw.append(prefix).append("initialCapacity=").append(String.valueOf(mInitialCapacity))
+                .println();
+        final int size = mPendingRequests == null ? 0 : mPendingRequests.size();
+        pw.append(prefix).append("pendingRequests=").append(String.valueOf(size)).println();
+    }
+
+    @Override // from AbstractRemoteService
+    void handlePendingRequestWhileUnBound(@NonNull PendingRequest<S> pendingRequest) {
+        if (mPendingRequests == null) {
+            mPendingRequests = new ArrayList<>(mInitialCapacity);
+        }
+        mPendingRequests.add(pendingRequest);
+        if (mVerbose) {
+            Slog.v(mTag, "queued " + mPendingRequests.size() + " requests; last=" + pendingRequest);
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/AbstractPerUserSystemService.java b/services/core/java/com/android/server/AbstractPerUserSystemService.java
index b37888f..001d85f 100644
--- a/services/core/java/com/android/server/AbstractPerUserSystemService.java
+++ b/services/core/java/com/android/server/AbstractPerUserSystemService.java
@@ -108,7 +108,8 @@
      * <p>Typically called when the service {@link Settings} property or {@link UserManager}
      * restriction changed, which includes the initial creation of the service.
      *
-     * <p>Subclasses can extend this method to provide extra initialization.
+     * <p>Subclasses can extend this method to provide extra initialization, like clearing up
+     * previous state.
      *
      * @param disabled whether the service is disabled (due to {@link UserManager} restrictions).
      *
@@ -163,6 +164,20 @@
     }
 
     /**
+     * Gets the user associated with this service.
+     */
+    public final @UserIdInt int getUserId() {
+        return mUserId;
+    }
+
+    /**
+     * Gets the master service.
+     */
+    public final M getMaster() {
+        return mMaster;
+    }
+
+    /**
      * Gets this UID of the remote service this service binds to, or {@code -1} if the service is
      * disabled.
      */
diff --git a/services/core/java/com/android/server/AbstractRemoteService.java b/services/core/java/com/android/server/AbstractRemoteService.java
index 181d7fd..f636487 100644
--- a/services/core/java/com/android/server/AbstractRemoteService.java
+++ b/services/core/java/com/android/server/AbstractRemoteService.java
@@ -45,13 +45,20 @@
  *
  * <p>All state of this class is modified on a handler thread.
  *
+ * <p><b>NOTE: </b>this class should not be extended directly, you should extend either
+ * {@link AbstractSinglePendingRequestRemoteService} or
+ * {@link AbstractMultiplePendingRequestsRemoteService}.
+ *
  * <p>See {@code com.android.server.autofill.RemoteFillService} for a concrete
  * (no pun intended) example of how to use it.
  *
+ * @param <S> the concrete remote service class
+ *
  * @hide
  */
 //TODO(b/117779333): improve javadoc above instead of using Autofill as an example
-public abstract class AbstractRemoteService implements DeathRecipient {
+public abstract class AbstractRemoteService<S extends AbstractRemoteService<S>>
+        implements DeathRecipient {
 
     private static final int MSG_UNBIND = 1;
 
@@ -64,8 +71,6 @@
     protected final Handler mHandler;
     protected final ComponentName mComponentName;
 
-    protected PendingRequest<? extends AbstractRemoteService> mPendingRequest;
-
     private final Context mContext;
     private final Intent mIntent;
     private final VultureCallback mVultureCallback;
@@ -88,10 +93,11 @@
          *
          * @param service service that died!
          */
-        void onServiceDied(AbstractRemoteService service);
+        void onServiceDied(AbstractRemoteService<? extends AbstractRemoteService<?>> service);
     }
 
-    public AbstractRemoteService(@NonNull Context context, @NonNull String serviceInterface,
+    // NOTE: must be package-protected so this class is not extend outside
+    AbstractRemoteService(@NonNull Context context, @NonNull String serviceInterface,
             @NonNull ComponentName componentName, int userId, @NonNull VultureCallback callback,
             boolean bindInstantServiceAllowed, boolean verbose) {
         mContext = context;
@@ -118,12 +124,25 @@
         return mDestroyed;
     }
 
+    private void handleOnConnectedStateChangedInternal(boolean connected) {
+        if (connected) {
+            handlePendingRequests();
+        }
+        handleOnConnectedStateChanged(connected);
+    }
+
     /**
-     * Callback called when the system connected / disconnected to the service.
+     * Handles the pending requests when the connection it bounds to the remote service.
+     */
+    abstract void handlePendingRequests();
+
+    /**
+     * Callback called when the system connected / disconnected to the service and the pending
+     * requests have been handled.
      *
      * @param state {@code true} when connected, {@code false} when disconnected.
      */
-    protected void onConnectedStateChanged(boolean state) {
+    protected void handleOnConnectedStateChanged(boolean state) {
     }
 
     /**
@@ -144,14 +163,18 @@
 
     private void handleDestroy() {
         if (checkIfDestroyed()) return;
-        if (mPendingRequest != null) {
-            mPendingRequest.cancel();
-            mPendingRequest = null;
-        }
-        ensureUnbound();
+        handleOnDestroy();
+        handleEnsureUnbound();
         mDestroyed = true;
     }
 
+    /**
+     * Clears the state when this object is destroyed.
+     *
+     * <p>Typically used to cancel the pending requests.
+     */
+    protected abstract void handleOnDestroy();
+
     @Override // from DeathRecipient
     public void binderDied() {
         mHandler.sendMessage(obtainMessage(AbstractRemoteService::handleBinderDied, this));
@@ -183,9 +206,7 @@
         pw.append(prefix).append(tab).append("destroyed=")
                 .append(String.valueOf(mDestroyed)).println();
         pw.append(prefix).append(tab).append("bound=")
-                .append(String.valueOf(isBound())).println();
-        pw.append(prefix).append(tab).append("hasPendingRequest=")
-                .append(String.valueOf(mPendingRequest != null)).println();
+                .append(String.valueOf(handleIsBound())).println();
         pw.append(prefix).append("mBindInstantServiceAllowed=").println(mBindInstantServiceAllowed);
         pw.append(prefix).append("idleTimeout=")
             .append(Long.toString(getTimeoutIdleBindMillis() / 1000)).append("s").println();
@@ -194,7 +215,7 @@
         pw.println();
     }
 
-    protected void scheduleRequest(PendingRequest<? extends AbstractRemoteService> pendingRequest) {
+    protected void scheduleRequest(@NonNull PendingRequest<S> pendingRequest) {
         mHandler.sendMessage(obtainMessage(
                 AbstractRemoteService::handlePendingRequest, this, pendingRequest));
     }
@@ -205,6 +226,9 @@
 
     protected void scheduleUnbind() {
         cancelScheduledUnbind();
+        // TODO(b/111276913): implement "permanent binding"
+        // TODO(b/117779333): make sure it's unbound if the service settings changing (right now
+        // it's not)
         mHandler.sendMessageDelayed(obtainMessage(AbstractRemoteService::handleUnbind, this)
                 .setWhat(MSG_UNBIND), getTimeoutIdleBindMillis());
     }
@@ -212,19 +236,20 @@
     private void handleUnbind() {
         if (checkIfDestroyed()) return;
 
-        ensureUnbound();
+        handleEnsureUnbound();
     }
 
-    private void handlePendingRequest(
-            PendingRequest<? extends AbstractRemoteService> pendingRequest) {
+    /**
+     * Handles a request, either processing it right now when bound, or saving it to be handled when
+     * bound.
+     */
+    protected final void handlePendingRequest(@NonNull PendingRequest<S> pendingRequest) {
         if (checkIfDestroyed() || mCompleted) return;
 
-        if (!isBound()) {
-            if (mPendingRequest != null) {
-                mPendingRequest.cancel();
-            }
-            mPendingRequest = pendingRequest;
-            ensureBound();
+        if (!handleIsBound()) {
+            if (mVerbose) Slog.v(mTag, "handlePendingRequest(): queuing" + pendingRequest);
+            handlePendingRequestWhileUnBound(pendingRequest);
+            handleEnsureBound();
         } else {
             if (mVerbose) Slog.v(mTag, "handlePendingRequest(): " + pendingRequest);
             pendingRequest.run();
@@ -234,12 +259,17 @@
         }
     }
 
-    private boolean isBound() {
+    /**
+     * Defines what to do with a request that arrives while not bound to the service.
+     */
+    abstract void handlePendingRequestWhileUnBound(@NonNull PendingRequest<S> pendingRequest);
+
+    private boolean handleIsBound() {
         return mServiceInterface != null;
     }
 
-    private void ensureBound() {
-        if (isBound() || mBinding) return;
+    private void handleEnsureBound() {
+        if (handleIsBound() || mBinding) return;
 
         if (mVerbose) Slog.v(mTag, "ensureBound()");
         mBinding = true;
@@ -250,7 +280,7 @@
         }
 
         final boolean willBind = mContext.bindServiceAsUser(mIntent, mServiceConnection, flags,
-                new UserHandle(mUserId));
+                mHandler, new UserHandle(mUserId));
 
         if (!willBind) {
             Slog.w(mTag, "could not bind to " + mIntent + " using flags " + flags);
@@ -262,13 +292,13 @@
         }
     }
 
-    private void ensureUnbound() {
-        if (!isBound() && !mBinding) return;
+    private void handleEnsureUnbound() {
+        if (!handleIsBound() && !mBinding) return;
 
         if (mVerbose) Slog.v(mTag, "ensureUnbound()");
         mBinding = false;
-        if (isBound()) {
-            onConnectedStateChanged(false);
+        if (handleIsBound()) {
+            handleOnConnectedStateChangedInternal(false);
             if (mServiceInterface != null) {
                 mServiceInterface.asBinder().unlinkToDeath(this, 0);
                 mServiceInterface = null;
@@ -280,6 +310,7 @@
     private class RemoteServiceConnection implements ServiceConnection {
         @Override
         public void onServiceConnected(ComponentName name, IBinder service) {
+            if (mVerbose) Slog.v(mTag, "onServiceConnected()");
             if (mDestroyed || !mBinding) {
                 // This is abnormal. Unbinding the connection has been requested already.
                 Slog.wtf(mTag, "onServiceConnected() was dispatched after unbindService.");
@@ -293,15 +324,7 @@
                 handleBinderDied();
                 return;
             }
-            onConnectedStateChanged(true);
-
-            if (mPendingRequest != null) {
-                final PendingRequest<? extends AbstractRemoteService> pendingRequest =
-                        mPendingRequest;
-                mPendingRequest = null;
-                handlePendingRequest(pendingRequest);
-            }
-
+            handleOnConnectedStateChangedInternal(true);
             mServiceDied = false;
         }
 
@@ -322,25 +345,12 @@
         return mDestroyed;
     }
 
-    protected boolean handleResponseCallbackCommon(
-            PendingRequest<? extends AbstractRemoteService> pendingRequest) {
-        if (isDestroyed()) return false;
-
-        if (mPendingRequest == pendingRequest) {
-            mPendingRequest = null;
-        }
-        if (mPendingRequest == null) {
-            scheduleUnbind();
-        }
-        return true;
-    }
-
     /**
      * Base class for the requests serviced by the remote service.
      *
      * @param <S> the remote service class
      */
-    public abstract static class PendingRequest<S extends AbstractRemoteService>
+    public abstract static class PendingRequest<S extends AbstractRemoteService<S>>
             implements Runnable {
         protected final String mTag = getClass().getSimpleName();
         protected final Object mLock = new Object();
diff --git a/services/core/java/com/android/server/AbstractSinglePendingRequestRemoteService.java b/services/core/java/com/android/server/AbstractSinglePendingRequestRemoteService.java
new file mode 100644
index 0000000..8e1f540
--- /dev/null
+++ b/services/core/java/com/android/server/AbstractSinglePendingRequestRemoteService.java
@@ -0,0 +1,82 @@
+/*
+ * 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.server;
+
+import android.annotation.NonNull;
+import android.content.ComponentName;
+import android.content.Context;
+import android.util.Slog;
+
+import java.io.PrintWriter;
+
+/**
+ * Base class representing a remote service that can have only one pending requests while not bound.
+ *
+ * <p>If another request is received while not bound, the previous one will be canceled.
+ *
+ * @param <S> the concrete remote service class
+ *
+ * @hide
+ */
+public abstract class AbstractSinglePendingRequestRemoteService<
+        S extends AbstractSinglePendingRequestRemoteService<S>> extends AbstractRemoteService<S> {
+
+    protected PendingRequest<S> mPendingRequest;
+
+    public AbstractSinglePendingRequestRemoteService(@NonNull Context context,
+            @NonNull String serviceInterface, @NonNull ComponentName componentName, int userId,
+            @NonNull VultureCallback callback, boolean bindInstantServiceAllowed,
+            boolean verbose) {
+        super(context, serviceInterface, componentName, userId, callback, bindInstantServiceAllowed,
+                verbose);
+    }
+
+    @Override // from AbstractRemoteService
+    void handlePendingRequests() {
+        if (mPendingRequest != null) {
+            final PendingRequest<S> pendingRequest = mPendingRequest;
+            mPendingRequest = null;
+            handlePendingRequest(pendingRequest);
+        }
+    }
+
+    @Override // from AbstractRemoteService
+    protected void handleOnDestroy() {
+        if (mPendingRequest != null) {
+            mPendingRequest.cancel();
+            mPendingRequest = null;
+        }
+    }
+
+    @Override // from AbstractRemoteService
+    public void dump(@NonNull String prefix, @NonNull PrintWriter pw) {
+        super.dump(prefix, pw);
+        pw.append(prefix).append("hasPendingRequest=")
+                .append(String.valueOf(mPendingRequest != null)).println();
+    }
+
+    @Override // from AbstractRemoteService
+    void handlePendingRequestWhileUnBound(@NonNull PendingRequest<S> pendingRequest) {
+        if (mPendingRequest != null) {
+            if (mVerbose) {
+                Slog.v(mTag, "handlePendingRequestWhileUnBound(): cancelling " + mPendingRequest);
+            }
+            mPendingRequest.cancel();
+        }
+        mPendingRequest = pendingRequest;
+    }
+}
diff --git a/services/core/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java
index 356a4da..8d912fa 100644
--- a/services/core/java/com/android/server/AppOpsService.java
+++ b/services/core/java/com/android/server/AppOpsService.java
@@ -692,7 +692,7 @@
                     }
                 });
 
-        if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) {
+        if (!StorageManager.hasIsolatedStorage()) {
             StorageManagerInternal storageManagerInternal = LocalServices.getService(
                     StorageManagerInternal.class);
             storageManagerInternal.addExternalStoragePolicy(
diff --git a/services/core/java/com/android/server/BinderCallsStatsService.java b/services/core/java/com/android/server/BinderCallsStatsService.java
index dd96075..01716a0 100644
--- a/services/core/java/com/android/server/BinderCallsStatsService.java
+++ b/services/core/java/com/android/server/BinderCallsStatsService.java
@@ -56,6 +56,7 @@
         private static final String SETTINGS_DETAILED_TRACKING_KEY = "detailed_tracking";
         private static final String SETTINGS_UPLOAD_DATA_KEY = "upload_data";
         private static final String SETTINGS_SAMPLING_INTERVAL_KEY = "sampling_interval";
+        private static final String SETTINGS_MAX_CALL_STATS_KEY = "max_call_stats_count";
 
         private boolean mEnabled;
         private final Uri mUri = Settings.Global.getUriFor(Settings.Global.BINDER_CALLS_STATS);
@@ -97,6 +98,9 @@
             mBinderCallsStats.setSamplingInterval(mParser.getInt(
                     SETTINGS_SAMPLING_INTERVAL_KEY,
                     BinderCallsStats.PERIODIC_SAMPLING_INTERVAL_DEFAULT));
+            mBinderCallsStats.setMaxBinderCallStats(mParser.getInt(
+                    SETTINGS_MAX_CALL_STATS_KEY,
+                    BinderCallsStats.MAX_BINDER_CALL_STATS_COUNT_DEFAULT));
 
 
             final boolean enabled =
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 74c8023..bb3b9f7 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -894,10 +894,18 @@
         intentFilter.addAction(Intent.ACTION_USER_REMOVED);
         intentFilter.addAction(Intent.ACTION_USER_UNLOCKED);
         mContext.registerReceiverAsUser(
-                mUserIntentReceiver, UserHandle.ALL, intentFilter, null, null);
+                mIntentReceiver, UserHandle.ALL, intentFilter, null, null);
         mContext.registerReceiverAsUser(mUserPresentReceiver, UserHandle.SYSTEM,
                 new IntentFilter(Intent.ACTION_USER_PRESENT), null, null);
 
+        // Listen to package add and removal events for all users.
+        intentFilter = new IntentFilter();
+        intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
+        intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+        intentFilter.addDataScheme("package");
+        mContext.registerReceiverAsUser(
+                mIntentReceiver, UserHandle.ALL, intentFilter, null, null);
+
         try {
             mNMS.registerObserver(mTethering);
             mNMS.registerObserver(mDataActivityObserver);
@@ -1659,6 +1667,24 @@
                 loge("Error parsing ip address in validation event");
             }
         }
+
+        @Override
+        public void onDnsEvent(int netId, int eventType, int returnCode, String hostname,
+                String[] ipAddresses, int ipAddressesCount, long timestamp, int uid) {
+            NetworkAgentInfo nai = getNetworkAgentInfoForNetId(netId);
+            // Netd event only allow registrants from system. Each NetworkMonitor thread is under
+            // the caller thread of registerNetworkAgent. Thus, it's not allowed to register netd
+            // event callback for certain nai. e.g. cellular. Register here to pass to
+            // NetworkMonitor instead.
+            // TODO: Move the Dns Event to NetworkMonitor. Use Binder.clearCallingIdentity() in
+            // registerNetworkAgent to have NetworkMonitor created with system process as design
+            // expectation. Also, NetdEventListenerService only allow one callback from each
+            // caller type. Need to re-factor NetdEventListenerService to allow multiple
+            // NetworkMonitor registrants.
+            if (nai != null && nai.satisfies(mDefaultRequest)) {
+                nai.networkMonitor.sendMessage(NetworkMonitor.EVENT_DNS_NOTIFICATION, returnCode);
+            }
+        }
     };
 
     @VisibleForTesting
@@ -2073,12 +2099,7 @@
         return new MockableSystemProperties();
     }
 
-    private void updateTcpBufferSizes(NetworkAgentInfo nai) {
-        if (isDefaultNetwork(nai) == false) {
-            return;
-        }
-
-        String tcpBufferSizes = nai.linkProperties.getTcpBufferSizes();
+    private void updateTcpBufferSizes(String tcpBufferSizes) {
         String[] values = null;
         if (tcpBufferSizes != null) {
             values = tcpBufferSizes.split(",");
@@ -4155,6 +4176,7 @@
     }
 
     private void onUserAdded(int userId) {
+        mPermissionMonitor.onUserAdded(userId);
         synchronized (mVpns) {
             final int vpnsSize = mVpns.size();
             for (int i = 0; i < vpnsSize; i++) {
@@ -4165,6 +4187,7 @@
     }
 
     private void onUserRemoved(int userId) {
+        mPermissionMonitor.onUserRemoved(userId);
         synchronized (mVpns) {
             final int vpnsSize = mVpns.size();
             for (int i = 0; i < vpnsSize; i++) {
@@ -4174,6 +4197,22 @@
         }
     }
 
+    private void onPackageAdded(String packageName, int uid) {
+        if (TextUtils.isEmpty(packageName) || uid < 0) {
+            Slog.wtf(TAG, "Invalid package in onPackageAdded: " + packageName + " | " + uid);
+            return;
+        }
+        mPermissionMonitor.onPackageAdded(packageName, uid);
+    }
+
+    private void onPackageRemoved(String packageName, int uid) {
+        if (TextUtils.isEmpty(packageName) || uid < 0) {
+            Slog.wtf(TAG, "Invalid package in onPackageRemoved: " + packageName + " | " + uid);
+            return;
+        }
+        mPermissionMonitor.onPackageRemoved(uid);
+    }
+
     private void onUserUnlocked(int userId) {
         synchronized (mVpns) {
             // User present may be sent because of an unlock, which might mean an unlocked keystore.
@@ -4185,11 +4224,15 @@
         }
     }
 
-    private BroadcastReceiver mUserIntentReceiver = new BroadcastReceiver() {
+    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             final String action = intent.getAction();
             final int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
+            final int uid = intent.getIntExtra(Intent.EXTRA_UID, -1);
+            final Uri packageData = intent.getData();
+            final String packageName =
+                    packageData != null ? packageData.getSchemeSpecificPart() : null;
             if (userId == UserHandle.USER_NULL) return;
 
             if (Intent.ACTION_USER_STARTED.equals(action)) {
@@ -4202,6 +4245,10 @@
                 onUserRemoved(userId);
             } else if (Intent.ACTION_USER_UNLOCKED.equals(action)) {
                 onUserUnlocked(userId);
+            } else if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
+                onPackageAdded(packageName, uid);
+            } else if (Intent.ACTION_PACKAGE_REMOVED.equals(action)) {
+                onPackageRemoved(packageName, uid);
             }
         }
     };
@@ -4728,8 +4775,8 @@
         updateUids(nai, null, nai.networkCapabilities);
     }
 
-    private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties oldLp) {
-        LinkProperties newLp = new LinkProperties(networkAgent.linkProperties);
+    private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties newLp,
+            LinkProperties oldLp) {
         int netId = networkAgent.network.netId;
 
         // The NetworkAgentInfo does not know whether clatd is running on its network or not. Before
@@ -4744,7 +4791,9 @@
 //        for (LinkProperties lp : newLp.getStackedLinks()) {
 //            updateMtu(lp, null);
 //        }
-        updateTcpBufferSizes(networkAgent);
+        if (isDefaultNetwork(networkAgent)) {
+            updateTcpBufferSizes(newLp.getTcpBufferSizes());
+        }
 
         updateRoutes(newLp, oldLp, netId);
         updateDnses(newLp, oldLp, netId);
@@ -4754,8 +4803,6 @@
         // updateDnses will fetch the private DNS configuration from DnsManager.
         mDnsManager.updatePrivateDnsStatus(netId, newLp);
 
-        // Start or stop clat accordingly to network state.
-        networkAgent.updateClat(mNMS);
         if (isDefaultNetwork(networkAgent)) {
             handleApplyDefaultProxy(newLp.getHttpProxy());
         } else {
@@ -4766,8 +4813,12 @@
             synchronized (networkAgent) {
                 networkAgent.linkProperties = newLp;
             }
+            // Start or stop clat accordingly to network state.
+            networkAgent.updateClat(mNMS);
             notifyIfacesChangedForNetworkStats();
-            notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED);
+            if (networkAgent.everConnected) {
+                notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED);
+            }
         }
 
         mKeepaliveTracker.handleCheckKeepalivesStillValid(networkAgent);
@@ -5072,13 +5123,7 @@
                     "; created=" + nai.created +
                     "; everConnected=" + nai.everConnected);
         }
-        LinkProperties oldLp = nai.linkProperties;
-        synchronized (nai) {
-            nai.linkProperties = newLp;
-        }
-        if (nai.everConnected) {
-            updateLinkProperties(nai, oldLp);
-        }
+        updateLinkProperties(nai, newLp, new LinkProperties(nai.linkProperties));
     }
 
     private void sendUpdatedScoreToFactories(NetworkAgentInfo nai) {
@@ -5239,7 +5284,7 @@
 
         notifyLockdownVpn(newNetwork);
         handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
-        updateTcpBufferSizes(newNetwork);
+        updateTcpBufferSizes(newNetwork.linkProperties.getTcpBufferSizes());
         mDnsManager.setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
         notifyIfacesChangedForNetworkStats();
     }
@@ -5654,7 +5699,8 @@
             }
 
             handlePerNetworkPrivateDnsConfig(networkAgent, mDnsManager.getPrivateDnsConfig());
-            updateLinkProperties(networkAgent, null);
+            updateLinkProperties(networkAgent, new LinkProperties(networkAgent.linkProperties),
+                    null);
 
             networkAgent.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_CONNECTED);
             scheduleUnvalidatedPrompt(networkAgent);
diff --git a/services/core/java/com/android/server/ExtconStateObserver.java b/services/core/java/com/android/server/ExtconStateObserver.java
index 6b561c7..92f30ff 100644
--- a/services/core/java/com/android/server/ExtconStateObserver.java
+++ b/services/core/java/com/android/server/ExtconStateObserver.java
@@ -21,7 +21,6 @@
 import android.util.Slog;
 
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 
 /**
@@ -36,31 +35,18 @@
     private static final boolean LOG = false;
 
     /**
-     * Parses the current state from the state file for {@code extconInfo} and calls {@link
-     * #updateState(ExtconInfo, String, Object)}
+     * Parses the current state from the state file for {@code extconInfo}.
      *
-     * @param extconInfo the extconInfo to update state for
+     * @param extconInfo the extconInfo to parse state for
      * @see #parseState(ExtconInfo, String)
      * @see ExtconInfo#getStatePath()
      */
-    public void updateStateFromFile(ExtconInfo extconInfo) {
+    @Nullable
+    public S parseStateFromFile(ExtconInfo extconInfo) throws IOException {
         String statePath = extconInfo.getStatePath();
-        try {
-            S state =
-                    parseState(
-                            extconInfo,
-                            FileUtils.readTextFile(new File(statePath), 0, null).trim());
-            if (state != null) {
-                updateState(extconInfo, extconInfo.getName(), state);
-            }
-        } catch (FileNotFoundException e) {
-            Slog.w(TAG, statePath + " not found while attempting to determine initial state", e);
-        } catch (IOException e) {
-            Slog.e(
-                    TAG,
-                    "Error reading " + statePath + " while attempting to determine initial state ",
-                    e);
-        }
+        return parseState(
+                extconInfo,
+                FileUtils.readTextFile(new File(statePath), 0, null).trim());
     }
 
     @Override
diff --git a/services/core/java/com/android/server/IpSecService.java b/services/core/java/com/android/server/IpSecService.java
index 8c25917..126bf65 100644
--- a/services/core/java/com/android/server/IpSecService.java
+++ b/services/core/java/com/android/server/IpSecService.java
@@ -24,6 +24,7 @@
 import static android.system.OsConstants.EINVAL;
 import static android.system.OsConstants.IPPROTO_UDP;
 import static android.system.OsConstants.SOCK_DGRAM;
+
 import static com.android.internal.util.Preconditions.checkNotNull;
 
 import android.annotation.NonNull;
@@ -62,6 +63,8 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.Preconditions;
 
+import libcore.io.IoUtils;
+
 import java.io.FileDescriptor;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -73,8 +76,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import libcore.io.IoUtils;
-
 /**
  * A service to manage multiple clients that want to access the IpSec API. The service is
  * responsible for maintaining a list of clients and managing the resources (and related quotas)
@@ -621,7 +622,8 @@
                                 mConfig.getDestinationAddress(),
                                 spi,
                                 mConfig.getMarkValue(),
-                                mConfig.getMarkMask());
+                                mConfig.getMarkMask(),
+                                mConfig.getXfrmInterfaceId());
             } catch (RemoteException | ServiceSpecificException e) {
                 Log.e(TAG, "Failed to delete SA with ID: " + mResourceId, e);
             }
@@ -683,7 +685,8 @@
                     mSrvConfig
                             .getNetdInstance()
                             .ipSecDeleteSecurityAssociation(
-                                    uid, mSourceAddress, mDestinationAddress, mSpi, 0, 0);
+                                    uid, mSourceAddress, mDestinationAddress, mSpi, 0 /* mark */,
+                                    0 /* mask */, 0 /* if_id */);
                 }
             } catch (ServiceSpecificException | RemoteException e) {
                 Log.e(TAG, "Failed to delete SPI reservation with ID: " + mResourceId, e);
@@ -795,6 +798,8 @@
         private final int mIkey;
         private final int mOkey;
 
+        private final int mIfId;
+
         TunnelInterfaceRecord(
                 int resourceId,
                 String interfaceName,
@@ -802,7 +807,8 @@
                 String localAddr,
                 String remoteAddr,
                 int ikey,
-                int okey) {
+                int okey,
+                int intfId) {
             super(resourceId);
 
             mInterfaceName = interfaceName;
@@ -811,6 +817,7 @@
             mRemoteAddress = remoteAddr;
             mIkey = ikey;
             mOkey = okey;
+            mIfId = intfId;
         }
 
         /** always guarded by IpSecService#this */
@@ -821,7 +828,7 @@
             //       Delete global policies
             try {
                 final INetd netd = mSrvConfig.getNetdInstance();
-                netd.removeVirtualTunnelInterface(mInterfaceName);
+                netd.ipSecRemoveTunnelInterface(mInterfaceName);
 
                 for (int selAddrFamily : ADDRESS_FAMILIES) {
                     netd.ipSecDeleteSecurityPolicy(
@@ -829,13 +836,15 @@
                             selAddrFamily,
                             IpSecManager.DIRECTION_OUT,
                             mOkey,
-                            0xffffffff);
+                            0xffffffff,
+                            mIfId);
                     netd.ipSecDeleteSecurityPolicy(
                             uid,
                             selAddrFamily,
                             IpSecManager.DIRECTION_IN,
                             mIkey,
-                            0xffffffff);
+                            0xffffffff,
+                            mIfId);
                 }
             } catch (ServiceSpecificException | RemoteException e) {
                 Log.e(
@@ -877,6 +886,10 @@
             return mOkey;
         }
 
+        public int getIfId() {
+            return mIfId;
+        }
+
         @Override
         protected ResourceTracker getResourceTracker() {
             return getUserRecord().mTunnelQuotaTracker;
@@ -1223,7 +1236,8 @@
                     OsConstants.UDP_ENCAP,
                     OsConstants.UDP_ENCAP_ESPINUDP);
 
-            mSrvConfig.getNetdInstance().ipSecSetEncapSocketOwner(sockFd, callingUid);
+            mSrvConfig.getNetdInstance().ipSecSetEncapSocketOwner(
+                        new ParcelFileDescriptor(sockFd), callingUid);
             if (port != 0) {
                 Log.v(TAG, "Binding to port " + port);
                 Os.bind(sockFd, INADDR_ANY, port);
@@ -1286,7 +1300,7 @@
             //       Add inbound/outbound global policies
             //              (use reqid = 0)
             final INetd netd = mSrvConfig.getNetdInstance();
-            netd.addVirtualTunnelInterface(intfName, localAddr, remoteAddr, ikey, okey);
+            netd.ipSecAddTunnelInterface(intfName, localAddr, remoteAddr, ikey, okey, resourceId);
 
             for (int selAddrFamily : ADDRESS_FAMILIES) {
                 // Always send down correct local/remote addresses for template.
@@ -1298,7 +1312,8 @@
                         remoteAddr,
                         0,
                         okey,
-                        0xffffffff);
+                        0xffffffff,
+                        resourceId);
                 netd.ipSecAddSecurityPolicy(
                         callerUid,
                         selAddrFamily,
@@ -1307,7 +1322,8 @@
                         localAddr,
                         0,
                         ikey,
-                        0xffffffff);
+                        0xffffffff,
+                        resourceId);
             }
 
             userRecord.mTunnelInterfaceRecords.put(
@@ -1320,7 +1336,8 @@
                                     localAddr,
                                     remoteAddr,
                                     ikey,
-                                    okey),
+                                    okey,
+                                    resourceId),
                             binder));
             return new IpSecTunnelInterfaceResponse(IpSecManager.Status.OK, resourceId, intfName);
         } catch (RemoteException e) {
@@ -1523,6 +1540,9 @@
                 throw new IllegalArgumentException(
                         "Invalid IpSecTransform.mode: " + config.getMode());
         }
+
+        config.setMarkValue(0);
+        config.setMarkMask(0);
     }
 
     private static final String TUNNEL_OP = AppOpsManager.OPSTR_MANAGE_IPSEC_TUNNELS;
@@ -1584,7 +1604,8 @@
                         (authCrypt != null) ? authCrypt.getTruncationLengthBits() : 0,
                         encapType,
                         encapLocalPort,
-                        encapRemotePort);
+                        encapRemotePort,
+                        c.getXfrmInterfaceId());
     }
 
     /**
@@ -1676,7 +1697,7 @@
         mSrvConfig
                 .getNetdInstance()
                 .ipSecApplyTransportModeTransform(
-                        socket.getFileDescriptor(),
+                        socket,
                         callingUid,
                         direction,
                         c.getSourceAddress(),
@@ -1695,7 +1716,7 @@
             throws RemoteException {
         mSrvConfig
                 .getNetdInstance()
-                .ipSecRemoveTransportModeTransform(socket.getFileDescriptor());
+                .ipSecRemoveTransportModeTransform(socket);
     }
 
     /**
@@ -1740,27 +1761,48 @@
                         : tunnelInterfaceInfo.getIkey();
 
         try {
-            c.setMarkValue(mark);
-            c.setMarkMask(0xffffffff);
+            // Default to using the invalid SPI of 0 for inbound SAs. This allows policies to skip
+            // SPI matching as part of the template resolution.
+            int spi = IpSecManager.INVALID_SECURITY_PARAMETER_INDEX;
+            c.setXfrmInterfaceId(tunnelInterfaceInfo.getIfId());
+
+            // TODO: enable this when UPDSA supports updating marks. Adding kernel support upstream
+            //     (and backporting) would allow us to narrow the mark space, and ensure that the SA
+            //     and SPs have matching marks (as VTI are meant to be built).
+            // Currently update does nothing with marks. Leave empty (defaulting to 0) to ensure the
+            //     config matches the actual allocated resources in the kernel.
+            // All SAs will have zero marks (from creation time), and any policy that matches the
+            //     same src/dst could match these SAs. Non-IpSecService governed processes that
+            //     establish floating policies with the same src/dst may result in undefined
+            //     behavior. This is generally limited to vendor code due to the permissions
+            //     (CAP_NET_ADMIN) required.
+            //
+            // c.setMarkValue(mark);
+            // c.setMarkMask(0xffffffff);
 
             if (direction == IpSecManager.DIRECTION_OUT) {
                 // Set output mark via underlying network (output only)
                 c.setNetwork(tunnelInterfaceInfo.getUnderlyingNetwork());
 
-                // If outbound, also add SPI to the policy.
-                for (int selAddrFamily : ADDRESS_FAMILIES) {
-                    mSrvConfig
-                            .getNetdInstance()
-                            .ipSecUpdateSecurityPolicy(
-                                    callingUid,
-                                    selAddrFamily,
-                                    direction,
-                                    tunnelInterfaceInfo.getLocalAddress(),
-                                    tunnelInterfaceInfo.getRemoteAddress(),
-                                    transformInfo.getSpiRecord().getSpi(),
-                                    mark,
-                                    0xffffffff);
-                }
+                // Set outbound SPI only. We want inbound to use any valid SA (old, new) on rekeys,
+                // but want to guarantee outbound packets are sent over the new SA.
+                spi = transformInfo.getSpiRecord().getSpi();
+            }
+
+            // Always update the policy with the relevant XFRM_IF_ID
+            for (int selAddrFamily : ADDRESS_FAMILIES) {
+                mSrvConfig
+                        .getNetdInstance()
+                        .ipSecUpdateSecurityPolicy(
+                                callingUid,
+                                selAddrFamily,
+                                direction,
+                                transformInfo.getConfig().getSourceAddress(),
+                                transformInfo.getConfig().getDestinationAddress(),
+                                spi, // If outbound, also add SPI to the policy.
+                                mark, // Must always set policy mark; ikey/okey for VTIs
+                                0xffffffff,
+                                c.getXfrmInterfaceId());
             }
 
             // Update SA with tunnel mark (ikey or okey based on direction)
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 046442a..cc7bf33 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -17,8 +17,8 @@
 package com.android.server;
 
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static android.provider.Settings.Global.LOCATION_DISABLE_STATUS_CALLBACKS;
 
-import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.ActivityManager;
@@ -84,7 +84,6 @@
 import com.android.internal.os.BackgroundThread;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.DumpUtils;
-import com.android.internal.util.Preconditions;
 import com.android.server.location.ActivityRecognitionProxy;
 import com.android.server.location.GeocoderProxy;
 import com.android.server.location.GeofenceManager;
@@ -113,7 +112,6 @@
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.NoSuchElementException;
-import java.util.Objects;
 import java.util.Set;
 
 /**
@@ -2990,7 +2988,7 @@
         ArrayList<Receiver> deadReceivers = null;
         ArrayList<UpdateRecord> deadUpdateRecords = null;
 
-        // Broadcast location or status to all listeners
+        // Broadcast location to all listeners
         for (UpdateRecord r : records) {
             Receiver receiver = r.mReceiver;
             boolean receiverDead = false;
@@ -3049,14 +3047,19 @@
                 }
             }
 
-            long prevStatusUpdateTime = r.mLastStatusBroadcast;
-            if ((newStatusUpdateTime > prevStatusUpdateTime) &&
-                    (prevStatusUpdateTime != 0 || status != LocationProvider.AVAILABLE)) {
+            // TODO: location provider status callbacks have been disabled and deprecated, and are
+            // guarded behind this setting now. should be removed completely post-Q
+            if (Settings.Global.getInt(mContext.getContentResolver(),
+                    LOCATION_DISABLE_STATUS_CALLBACKS, 1) == 0) {
+                long prevStatusUpdateTime = r.mLastStatusBroadcast;
+                if ((newStatusUpdateTime > prevStatusUpdateTime)
+                        && (prevStatusUpdateTime != 0 || status != LocationProvider.AVAILABLE)) {
 
-                r.mLastStatusBroadcast = newStatusUpdateTime;
-                if (!receiver.callStatusChangedLocked(provider, status, extras)) {
-                    receiverDead = true;
-                    Slog.w(TAG, "RemoteException calling onStatusChanged on " + receiver);
+                    r.mLastStatusBroadcast = newStatusUpdateTime;
+                    if (!receiver.callStatusChangedLocked(provider, status, extras)) {
+                        receiverDead = true;
+                        Slog.w(TAG, "RemoteException calling onStatusChanged on " + receiver);
+                    }
                 }
             }
 
@@ -3276,7 +3279,6 @@
             // we don't leave anything dangling.
             clearTestProviderEnabled(provider, opPackageName);
             clearTestProviderLocation(provider, opPackageName);
-            clearTestProviderStatus(provider, opPackageName);
 
             MockProvider mockProvider = mMockProviders.remove(provider);
             if (mockProvider == null) {
@@ -3408,63 +3410,6 @@
         }
     }
 
-    @Override
-    public void clearTestProviderStatus(String provider, String opPackageName) {
-        if (!canCallerAccessMockLocation(opPackageName)) {
-            return;
-        }
-
-        synchronized (mLock) {
-            MockProvider mockProvider = mMockProviders.get(provider);
-            if (mockProvider == null) {
-                throw new IllegalArgumentException("Provider \"" + provider + "\" unknown");
-            }
-            mockProvider.clearStatus();
-        }
-    }
-
-    @Override
-    public PendingIntent createManageLocationPermissionIntent(String packageName,
-            String permission) {
-        Preconditions.checkNotNull(packageName);
-        Preconditions.checkArgument(permission.equals(Manifest.permission.ACCESS_FINE_LOCATION)
-                || permission.equals(Manifest.permission.ACCESS_COARSE_LOCATION)
-                || permission.equals(Manifest.permission.ACCESS_BACKGROUND_LOCATION));
-
-        int callingUid = Binder.getCallingUid();
-        long token = Binder.clearCallingIdentity();
-        try {
-            String locProvider = getNetworkProviderPackage();
-            if (locProvider == null) {
-                return null;
-            }
-
-            PackageInfo locProviderInfo;
-            try {
-                locProviderInfo = mContext.getPackageManager().getPackageInfo(
-                        locProvider, PackageManager.MATCH_DIRECT_BOOT_AUTO);
-            } catch (NameNotFoundException e) {
-                Log.e(TAG, "Could not resolve " + locProvider, e);
-                return null;
-            }
-
-            if (locProviderInfo.applicationInfo.uid != callingUid) {
-                throw new SecurityException("Only " + locProvider + " can call this API");
-            }
-
-            Intent intent = new Intent(Intent.ACTION_MANAGE_APP_PERMISSION);
-            intent.putExtra(Intent.EXTRA_PACKAGE_NAME, packageName);
-            intent.putExtra(Intent.EXTRA_PERMISSION_NAME, permission);
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-
-            return PendingIntent.getActivity(mContext,
-                    Objects.hash(packageName, permission), intent,
-                    PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
-        } finally {
-            Binder.restoreCallingIdentity(token);
-        }
-    }
-
     private void log(String log) {
         if (Log.isLoggable(TAG, Log.VERBOSE)) {
             Slog.d(TAG, log);
diff --git a/services/core/java/com/android/server/LooperStatsService.java b/services/core/java/com/android/server/LooperStatsService.java
index 2dee3a0..c563ad2 100644
--- a/services/core/java/com/android/server/LooperStatsService.java
+++ b/services/core/java/com/android/server/LooperStatsService.java
@@ -141,6 +141,7 @@
         if (mEnabled != enabled) {
             mEnabled = enabled;
             mStats.reset();
+            mStats.setAddDebugEntries(enabled);
             Looper.setObserver(enabled ? mStats : null);
         }
     }
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index 92d8d73..87a42fa 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -1328,40 +1328,12 @@
         modifyInterfaceForward(false, fromIface, toIface);
     }
 
-    private void modifyNat(String action, String internalInterface, String externalInterface)
-            throws SocketException {
-        final Command cmd = new Command("nat", action, internalInterface, externalInterface);
-
-        final NetworkInterface internalNetworkInterface = NetworkInterface.getByName(
-                internalInterface);
-        if (internalNetworkInterface == null) {
-            cmd.appendArg("0");
-        } else {
-            // Don't touch link-local routes, as link-local addresses aren't routable,
-            // kernel creates link-local routes on all interfaces automatically
-            List<InterfaceAddress> interfaceAddresses = excludeLinkLocal(
-                    internalNetworkInterface.getInterfaceAddresses());
-            cmd.appendArg(interfaceAddresses.size());
-            for (InterfaceAddress ia : interfaceAddresses) {
-                InetAddress addr = NetworkUtils.getNetworkPart(
-                        ia.getAddress(), ia.getNetworkPrefixLength());
-                cmd.appendArg(addr.getHostAddress() + "/" + ia.getNetworkPrefixLength());
-            }
-        }
-
-        try {
-            mConnector.execute(cmd);
-        } catch (NativeDaemonConnectorException e) {
-            throw e.rethrowAsParcelableException();
-        }
-    }
-
     @Override
     public void enableNat(String internalInterface, String externalInterface) {
         mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
         try {
-            modifyNat("enable", internalInterface, externalInterface);
-        } catch (SocketException e) {
+            mNetdService.tetherAddForward(internalInterface, externalInterface);
+        } catch (RemoteException | ServiceSpecificException e) {
             throw new IllegalStateException(e);
         }
     }
@@ -1370,8 +1342,8 @@
     public void disableNat(String internalInterface, String externalInterface) {
         mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
         try {
-            modifyNat("disable", internalInterface, externalInterface);
-        } catch (SocketException e) {
+            mNetdService.tetherRemoveForward(internalInterface, externalInterface);
+        } catch (RemoteException | ServiceSpecificException e) {
             throw new IllegalStateException(e);
         }
     }
diff --git a/services/core/java/com/android/server/RuntimeService.java b/services/core/java/com/android/server/RuntimeService.java
new file mode 100644
index 0000000..ccfac80
--- /dev/null
+++ b/services/core/java/com/android/server/RuntimeService.java
@@ -0,0 +1,173 @@
+/*
+ * 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.server;
+
+import android.content.Context;
+import android.os.Binder;
+import android.service.runtime.DebugEntryProto;
+import android.service.runtime.RuntimeServiceInfoProto;
+import android.util.Slog;
+import android.util.proto.ProtoOutputStream;
+
+import libcore.timezone.TimeZoneDataFiles;
+import libcore.util.CoreLibraryDebug;
+import libcore.util.DebugInfo;
+
+import com.android.internal.util.DumpUtils;
+import com.android.timezone.distro.DistroException;
+import com.android.timezone.distro.DistroVersion;
+import com.android.timezone.distro.FileUtils;
+import com.android.timezone.distro.TimeZoneDistro;
+
+import java.io.File;
+import java.io.FileDescriptor;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * This service exists only as a "dumpsys" target which reports information about the status of the
+ * runtime and related libraries.
+ */
+public class RuntimeService extends Binder {
+
+    private static final String TAG = "RuntimeService";
+
+    private final Context mContext;
+
+    public RuntimeService(Context context) {
+        mContext = context;
+    }
+
+    @Override
+    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, TAG, pw)) {
+            return;
+        }
+
+        boolean protoFormat = hasOption(args, "--proto");
+        ProtoOutputStream proto = null;
+
+        DebugInfo coreLibraryDebugInfo = CoreLibraryDebug.getDebugInfo();
+        addTimeZoneApkDebugInfo(coreLibraryDebugInfo);
+
+        if (protoFormat) {
+            proto = new ProtoOutputStream(fd);
+            reportTimeZoneInfoProto(coreLibraryDebugInfo, proto);
+        } else {
+            reportTimeZoneInfo(coreLibraryDebugInfo, pw);
+        }
+
+        if (protoFormat) {
+            proto.flush();
+        }
+    }
+
+    /** Returns {@code true} if {@code args} contains {@code arg}. */
+    private static boolean hasOption(String[] args, String arg) {
+        for (String opt : args) {
+            if (arg.equals(opt)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Add information to {@link DebugInfo} about the time zone data supplied by the
+     * "Time zone updates via APK" feature.
+     */
+    private static void addTimeZoneApkDebugInfo(DebugInfo coreLibraryDebugInfo) {
+        // Add /data tz data set using the DistroVersion class (which libcore cannot use).
+        // This update mechanism will be removed after the time zone APEX is launched so this
+        // untidiness will disappear with it.
+        String debugKeyPrefix = "core_library.timezone.data_";
+        String versionFileName = TimeZoneDataFiles.getDataTimeZoneFile(
+                TimeZoneDistro.DISTRO_VERSION_FILE_NAME);
+        addDistroVersionDebugInfo(versionFileName, debugKeyPrefix, coreLibraryDebugInfo);
+    }
+
+    /**
+     * Prints {@code coreLibraryDebugInfo} to {@code pw}.
+     *
+     * <p>If you change this method, make sure to modify
+     * {@link #reportTimeZoneInfoProto(DebugInfo, ProtoOutputStream)} as well.
+     */
+    private static void reportTimeZoneInfo(DebugInfo coreLibraryDebugInfo,
+            PrintWriter pw) {
+        pw.println("Core Library Debug Info: ");
+        for (DebugInfo.DebugEntry debugEntry : coreLibraryDebugInfo.getDebugEntries()) {
+            pw.print(debugEntry.getKey());
+            pw.print(": \"");
+            pw.print(debugEntry.getStringValue());
+            pw.println("\"");
+        }
+    }
+
+    /**
+     * Adds {@code coreLibraryDebugInfo} to {@code protoStream}.
+     *
+     * <p>If you change this method, make sure to modify
+     * {@link #reportTimeZoneInfo(DebugInfo, PrintWriter)}.
+     */
+    private static void reportTimeZoneInfoProto(
+            DebugInfo coreLibraryDebugInfo, ProtoOutputStream protoStream) {
+        for (DebugInfo.DebugEntry debugEntry : coreLibraryDebugInfo.getDebugEntries()) {
+            long entryToken = protoStream.start(RuntimeServiceInfoProto.DEBUG_ENTRY);
+            protoStream.write(DebugEntryProto.KEY, debugEntry.getKey());
+            protoStream.write(DebugEntryProto.STRING_VALUE, debugEntry.getStringValue());
+            protoStream.end(entryToken);
+        }
+    }
+
+    /**
+     * Adds version information to {@code debugInfo} from the distro_version file that may exist
+     * at {@code distroVersionFileName}. If the file does not exist or cannot be read this is
+     * reported as debug information too.
+     */
+    private static void addDistroVersionDebugInfo(String distroVersionFileName,
+            String debugKeyPrefix, DebugInfo debugInfo) {
+        File file = new File(distroVersionFileName);
+        String statusKey = debugKeyPrefix + "status";
+        if (file.exists()) {
+            try {
+                byte[] versionBytes =
+                        FileUtils.readBytes(file, DistroVersion.DISTRO_VERSION_FILE_LENGTH);
+                DistroVersion distroVersion = DistroVersion.fromBytes(versionBytes);
+                String formatVersionString = distroVersion.formatMajorVersion + "."
+                        + distroVersion.formatMinorVersion;
+                debugInfo.addStringEntry(statusKey, "OK")
+                        .addStringEntry(debugKeyPrefix + "formatVersion", formatVersionString)
+                        .addStringEntry(debugKeyPrefix + "rulesVersion",
+                                distroVersion.rulesVersion)
+                        .addStringEntry(debugKeyPrefix + "revision",
+                                distroVersion.revision);
+            } catch (IOException | DistroException e) {
+                debugInfo.addStringEntry(statusKey, "ERROR");
+                debugInfo.addStringEntry(debugKeyPrefix + "exception_class",
+                        e.getClass().getName());
+                debugInfo.addStringEntry(debugKeyPrefix + "exception_msg", e.getMessage());
+                logMessage("Error reading " + file, e);
+            }
+        } else {
+            debugInfo.addStringEntry(statusKey, "NOT_FOUND");
+        }
+    }
+
+    private static void logMessage(String msg, Throwable t) {
+        Slog.v(TAG, msg, t);
+    }
+}
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 923ac00..390126c 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -99,6 +99,7 @@
 import android.os.storage.VolumeRecord;
 import android.provider.MediaStore;
 import android.provider.Settings;
+import android.sysprop.VoldProperties;
 import android.text.TextUtils;
 import android.text.format.DateUtils;
 import android.util.ArrayMap;
@@ -183,8 +184,7 @@
     private static final String ZRAM_ENABLED_PROPERTY =
             "persist.sys.zram_enabled";
 
-    private static final boolean ENABLE_ISOLATED_STORAGE = SystemProperties
-            .getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false);
+    private static final boolean ENABLE_ISOLATED_STORAGE = StorageManager.hasIsolatedStorage();
 
     public static class Lifecycle extends SystemService {
         private StorageManagerService mStorageManagerService;
@@ -1016,7 +1016,7 @@
 
         // On an encrypted device we can't see system properties yet, so pull
         // the system locale out of the mount service.
-        if ("".equals(SystemProperties.get("vold.encrypt_progress"))) {
+        if ("".equals(VoldProperties.encrypt_progress().orElse(""))) {
             copyLocaleFromMountService();
         }
     }
@@ -2686,24 +2686,35 @@
     class AppFuseMountScope extends AppFuseBridge.MountScope {
         boolean opened = false;
 
-        public AppFuseMountScope(int uid, int pid, int mountId) {
-            super(uid, pid, mountId);
+        public AppFuseMountScope(int uid, int mountId) {
+            super(uid, mountId);
         }
 
         @Override
         public ParcelFileDescriptor open() throws NativeDaemonConnectorException {
             try {
                 return new ParcelFileDescriptor(
-                        mVold.mountAppFuse(uid, Process.myPid(), mountId));
+                        mVold.mountAppFuse(uid, mountId));
             } catch (Exception e) {
                 throw new NativeDaemonConnectorException("Failed to mount", e);
             }
         }
 
         @Override
+        public ParcelFileDescriptor openFile(int mountId, int fileId, int flags)
+                throws NativeDaemonConnectorException {
+            try {
+                return new ParcelFileDescriptor(
+                        mVold.openAppFuseFile(uid, mountId, fileId, flags));
+            } catch (Exception e) {
+                throw new NativeDaemonConnectorException("Failed to open", e);
+            }
+        }
+
+        @Override
         public void close() throws Exception {
             if (opened) {
-                mVold.unmountAppFuse(uid, Process.myPid(), mountId);
+                mVold.unmountAppFuse(uid, mountId);
                 opened = false;
             }
         }
@@ -2713,7 +2724,6 @@
     public @Nullable AppFuseMount mountProxyFileDescriptorBridge() {
         Slog.v(TAG, "mountProxyFileDescriptorBridge");
         final int uid = Binder.getCallingUid();
-        final int pid = Binder.getCallingPid();
 
         while (true) {
             synchronized (mAppFuseLock) {
@@ -2727,7 +2737,7 @@
                     final int name = mNextAppFuseName++;
                     try {
                         return new AppFuseMount(
-                            name, mAppFuseBridge.addBridge(new AppFuseMountScope(uid, pid, name)));
+                            name, mAppFuseBridge.addBridge(new AppFuseMountScope(uid, name)));
                     } catch (FuseUnavailableMountException e) {
                         if (newlyCreated) {
                             // If newly created bridge fails, it's a real error.
@@ -2748,14 +2758,13 @@
     public @Nullable ParcelFileDescriptor openProxyFileDescriptor(
             int mountId, int fileId, int mode) {
         Slog.v(TAG, "mountProxyFileDescriptor");
-        final int pid = Binder.getCallingPid();
         try {
             synchronized (mAppFuseLock) {
                 if (mAppFuseBridge == null) {
                     Slog.e(TAG, "FuseBridge has not been created");
                     return null;
                 }
-                return mAppFuseBridge.openFile(pid, mountId, fileId, mode);
+                return mAppFuseBridge.openFile(mountId, fileId, mode);
             }
         } catch (FuseUnavailableMountException | InterruptedException error) {
             Slog.v(TAG, "The mount point has already been invalid", error);
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index f0b472b..a2cbfaa 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -47,6 +47,7 @@
 import android.telephony.SignalStrength;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
+import android.telephony.emergency.EmergencyNumber;
 import android.util.LocalLog;
 import android.util.StatsLog;
 
@@ -1664,6 +1665,14 @@
     }
 
     @Override
+    public void notifyEmergencyNumberList(List<EmergencyNumber> emergencyNumberList) {
+        // TODO checkPermission, modify Listener constent documentation
+        // TODO implement multisim emergency number list update in listener
+        // TODO implement PhoneStateListenerTest
+    }
+
+
+    @Override
     public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
         final IndentingPrintWriter pw = new IndentingPrintWriter(writer, "  ");
 
diff --git a/services/core/java/com/android/server/WallpaperUpdateReceiver.java b/services/core/java/com/android/server/WallpaperUpdateReceiver.java
new file mode 100644
index 0000000..629e882
--- /dev/null
+++ b/services/core/java/com/android/server/WallpaperUpdateReceiver.java
@@ -0,0 +1,62 @@
+/*
+ * 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.server;
+
+import android.app.ActivityThread;
+import android.app.WallpaperManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.AsyncTask;
+import android.util.Slog;
+
+/**
+ * Receiver responsible for updating the wallpaper when the device
+ * configuration has changed.
+ *
+ * @hide
+ */
+public class WallpaperUpdateReceiver extends BroadcastReceiver {
+
+    private static final String TAG = "WallpaperUpdateReceiver";
+    private static final boolean DEBUG = false;
+
+    @Override
+    public void onReceive(final Context context, final Intent intent) {
+        if (DEBUG) Slog.d(TAG, "onReceive: " + intent);
+
+        if (intent != null && Intent.ACTION_DEVICE_CUSTOMIZATION_READY.equals(intent.getAction())) {
+            AsyncTask.execute(this::updateWallpaper);
+        }
+    }
+
+    private void updateWallpaper() {
+        try {
+            ActivityThread currentActivityThread = ActivityThread.currentActivityThread();
+            Context uiContext = currentActivityThread.getSystemUiContext();
+            WallpaperManager wallpaperManager = WallpaperManager.getInstance(uiContext);
+            if (DEBUG) Slog.d(TAG, "Set customized default_wallpaper.");
+            Bitmap blank = Bitmap.createBitmap(1, 1, Bitmap.Config.ALPHA_8);
+            // set a blank wallpaper to force a redraw of default_wallpaper
+            wallpaperManager.setBitmap(blank);
+            wallpaperManager.setResource(com.android.internal.R.drawable.default_wallpaper);
+        } catch (Exception e) {
+            Slog.w(TAG, "Failed to customize system wallpaper." + e);
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/Watchdog.java b/services/core/java/com/android/server/Watchdog.java
index d1b56e9..e80e9e1 100644
--- a/services/core/java/com/android/server/Watchdog.java
+++ b/services/core/java/com/android/server/Watchdog.java
@@ -105,6 +105,7 @@
         "android.hardware.camera.provider@2.4::ICameraProvider",
         "android.hardware.graphics.allocator@2.0::IAllocator",
         "android.hardware.graphics.composer@2.1::IComposer",
+        "android.hardware.health@2.0::IHealth",
         "android.hardware.media.omx@1.0::IOmx",
         "android.hardware.media.omx@1.0::IOmxStore",
         "android.hardware.sensors@1.0::ISensors",
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index c660cc6..a19e928 100644
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -1702,8 +1702,11 @@
                     s.app.whitelistManager = true;
                 }
                 // This could have made the service more important.
-                mAm.updateLruProcessLocked(s.app, s.app.hasClientActivities()
-                        || s.app.treatLikeActivity, b.client);
+                mAm.updateLruProcessLocked(s.app,
+                        (callerApp.hasActivitiesOrRecentTasks() && s.app.hasClientActivities())
+                                || (callerApp.getCurProcState() <= ActivityManager.PROCESS_STATE_TOP
+                                        && (flags & Context.BIND_TREAT_LIKE_ACTIVITY) != 0),
+                        b.client);
                 mAm.updateOomAdjLocked(s.app, true);
             }
 
@@ -1787,6 +1790,32 @@
         }
     }
 
+    void updateServiceGroupLocked(IServiceConnection connection, int group, int importance) {
+        final IBinder binder = connection.asBinder();
+        if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "updateServiceGroup: conn=" + binder);
+        final ArrayList<ConnectionRecord> clist = mServiceConnections.get(binder);
+        if (clist == null) {
+            throw new IllegalArgumentException("Could not find connection for "
+                    + connection.asBinder());
+        }
+        for (int i = clist.size() - 1; i >= 0; i--) {
+            final ConnectionRecord crec = clist.get(i);
+            final ServiceRecord srec = crec.binding.service;
+            if (srec != null && srec.app != null
+                    && (srec.serviceInfo.flags & ServiceInfo.FLAG_ISOLATED_PROCESS) != 0) {
+                if (group > 0) {
+                    srec.app.connectionService = srec;
+                    srec.app.connectionGroup = group;
+                    srec.app.connectionImportance = importance;
+                } else {
+                    srec.app.connectionService = null;
+                    srec.app.connectionGroup = 0;
+                    srec.app.connectionImportance = 0;
+                }
+            }
+        }
+    }
+
     boolean unbindServiceLocked(IServiceConnection connection) {
         IBinder binder = connection.asBinder();
         if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "unbindService: conn=" + binder);
diff --git a/services/core/java/com/android/server/am/ActivityManagerConstants.java b/services/core/java/com/android/server/am/ActivityManagerConstants.java
index 5c77f0a..8571ae6 100644
--- a/services/core/java/com/android/server/am/ActivityManagerConstants.java
+++ b/services/core/java/com/android/server/am/ActivityManagerConstants.java
@@ -16,6 +16,8 @@
 
 package com.android.server.am;
 
+import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_POWER_QUICK;
+
 import android.content.ContentResolver;
 import android.database.ContentObserver;
 import android.net.Uri;
@@ -26,8 +28,6 @@
 
 import java.io.PrintWriter;
 
-import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_POWER_QUICK;
-
 /**
  * Settings constants that can modify the activity manager's behavior.
  */
@@ -222,6 +222,10 @@
     // Controlled by Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED
     volatile boolean mFlagActivityStartsLoggingEnabled;
 
+    // Indicates whether the background activity starts is enabled.
+    // Controlled by Settings.Global.BACKGROUND_ACTIVITY_STARTS_ENABLED
+    volatile boolean mFlagBackgroundActivityStartsEnabled;
+
     private final ActivityManagerService mService;
     private ContentResolver mResolver;
     private final KeyValueListParser mParser = new KeyValueListParser(',');
@@ -256,6 +260,10 @@
     private static final Uri ACTIVITY_STARTS_LOGGING_ENABLED_URI = Settings.Global.getUriFor(
                 Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED);
 
+    private static final Uri BACKGROUND_ACTIVITY_STARTS_ENABLED_URI =
+                Settings.Global.getUriFor(
+                        Settings.Global.BACKGROUND_ACTIVITY_STARTS_ENABLED);
+
     public ActivityManagerConstants(ActivityManagerService service, Handler handler) {
         super(handler);
         mService = service;
@@ -266,8 +274,10 @@
         mResolver = resolver;
         mResolver.registerContentObserver(ACTIVITY_MANAGER_CONSTANTS_URI, false, this);
         mResolver.registerContentObserver(ACTIVITY_STARTS_LOGGING_ENABLED_URI, false, this);
+        mResolver.registerContentObserver(BACKGROUND_ACTIVITY_STARTS_ENABLED_URI, false, this);
         updateConstants();
         updateActivityStartsLoggingEnabled();
+        updateBackgroundActivityStartsEnabled();
     }
 
     public void setOverrideMaxCachedProcesses(int value) {
@@ -290,6 +300,8 @@
             updateConstants();
         } else if (ACTIVITY_STARTS_LOGGING_ENABLED_URI.equals(uri)) {
             updateActivityStartsLoggingEnabled();
+        } else if (BACKGROUND_ACTIVITY_STARTS_ENABLED_URI.equals(uri)) {
+            updateBackgroundActivityStartsEnabled();
         }
     }
 
@@ -373,6 +385,11 @@
                 Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED, 0) == 1;
     }
 
+    private void updateBackgroundActivityStartsEnabled() {
+        mFlagBackgroundActivityStartsEnabled = Settings.Global.getInt(mResolver,
+                Settings.Global.BACKGROUND_ACTIVITY_STARTS_ENABLED, 1) == 1;
+    }
+
     private void updateMaxCachedProcesses() {
         CUR_MAX_CACHED_PROCESSES = mOverrideMaxCachedProcesses < 0
                 ? MAX_CACHED_PROCESSES : mOverrideMaxCachedProcesses;
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 4e417ba..8842f41 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -272,6 +272,7 @@
 import android.os.WorkSource;
 import android.os.storage.StorageManager;
 import android.provider.Settings;
+import android.sysprop.VoldProperties;
 import android.text.TextUtils;
 import android.text.format.DateUtils;
 import android.text.style.SuggestionSpan;
@@ -328,6 +329,7 @@
 import com.android.server.AppOpsService;
 import com.android.server.AttributeCache;
 import com.android.server.DeviceIdleController;
+import com.android.server.DisplayThread;
 import com.android.server.IntentResolver;
 import com.android.server.IoThread;
 import com.android.server.LocalServices;
@@ -497,6 +499,18 @@
     private static final int MINIMUM_MEMORY_GROWTH_THRESHOLD = 10 * 1000; // 10 MB
 
     /**
+     * The number of binder proxies we need to have before we start warning and
+     * dumping debug info.
+     */
+    private static final int BINDER_PROXY_HIGH_WATERMARK = 6000;
+
+    /**
+     * Low watermark that needs to be met before we consider dumping info again,
+     * after already hitting the high watermark.
+     */
+    private static final int BINDER_PROXY_LOW_WATERMARK = 5500;
+
+    /**
      * State indicating that there is no need for any blocking for network.
      */
     @VisibleForTesting
@@ -653,16 +667,50 @@
     final class PidMap {
         private final SparseArray<ProcessRecord> mPidMap = new SparseArray<>();
 
+        /**
+         * Puts the process record in the map.
+         * <p>NOTE: Callers should avoid acquiring the mPidsSelfLocked lock before calling this
+         * method.
+         */
         void put(int key, ProcessRecord value) {
-            mPidMap.put(key, value);
+            synchronized (this) {
+                mPidMap.put(key, value);
+            }
             mAtmInternal.onProcessMapped(key, value.getWindowProcessController());
         }
 
+        /**
+         * Removes the process record from the map.
+         * <p>NOTE: Callers should avoid acquiring the mPidsSelfLocked lock before calling this
+         * method.
+         */
         void remove(int pid) {
-            mPidMap.remove(pid);
+            synchronized (this) {
+                mPidMap.remove(pid);
+            }
             mAtmInternal.onProcessUnMapped(pid);
         }
 
+        /**
+         * Removes the process record from the map if it has a thread.
+         * <p>NOTE: Callers should avoid acquiring the mPidsSelfLocked lock before calling this
+         * method.
+         */
+        boolean removeIfNoThread(int pid) {
+            boolean removed = false;
+            synchronized (this) {
+                final ProcessRecord app = get(pid);
+                if (app != null && app.thread == null) {
+                    mPidMap.remove(pid);
+                    removed = true;
+                }
+            }
+            if (removed) {
+                mAtmInternal.onProcessUnMapped(pid);
+            }
+            return removed;
+        }
+
         ProcessRecord get(int pid) {
             return mPidMap.get(pid);
         }
@@ -1876,9 +1924,7 @@
                 app.getWindowProcessController().setPid(MY_PID);
                 app.maxAdj = ProcessList.SYSTEM_ADJ;
                 app.makeActive(mSystemThread.getApplicationThread(), mProcessStats);
-                synchronized (mPidsSelfLocked) {
-                    mPidsSelfLocked.put(app.pid, app);
-                }
+                mPidsSelfLocked.put(app.pid, app);
                 mProcessList.updateLruProcessLocked(app, false, null);
                 updateOomAdjLocked();
             }
@@ -2250,7 +2296,8 @@
         mIntentFirewall = new IntentFirewall(new IntentFirewallInterface(), mHandler);
 
         mActivityTaskManager = atm;
-        mActivityTaskManager.setActivityManagerService(mIntentFirewall, mPendingIntentController);
+        mActivityTaskManager.initialize(mIntentFirewall, mPendingIntentController,
+                DisplayThread.get().getLooper());
         mAtmInternal = LocalServices.getService(ActivityTaskManagerInternal.class);
 
         mProcessCpuThread = new Thread("CpuTracker") {
@@ -4240,14 +4287,7 @@
 
     private final void processStartTimedOutLocked(ProcessRecord app) {
         final int pid = app.pid;
-        boolean gone = false;
-        synchronized (mPidsSelfLocked) {
-            ProcessRecord knownApp = mPidsSelfLocked.get(pid);
-            if (knownApp != null && knownApp.thread == null) {
-                mPidsSelfLocked.remove(pid);
-                gone = true;
-            }
-        }
+        boolean gone = mPidsSelfLocked.removeIfNoThread(pid);
 
         if (gone) {
             Slog.w(TAG, "Process " + app + " failed to attach");
@@ -4360,7 +4400,6 @@
 
         EventLog.writeEvent(EventLogTags.AM_PROC_BOUND, app.userId, app.pid, app.processName);
 
-        app.makeActive(thread, mProcessStats);
         app.curAdj = app.setAdj = app.verifiedAdj = ProcessList.INVALID_ADJ;
         app.setCurrentSchedulingGroup(app.setSchedGroup = ProcessList.SCHED_GROUP_DEFAULT);
         app.forcingToImportant = null;
@@ -4567,6 +4606,10 @@
                 profilerInfo.closeFd();
                 profilerInfo = null;
             }
+
+            // Make app active after binding application or client may be running requests (e.g
+            // starting activities) before it is ready.
+            app.makeActive(thread, mProcessStats);
             checkTime(startTime, "attachApplicationLocked: immediately after bindApplication");
             mProcessList.updateLruProcessLocked(app, false, null);
             checkTime(startTime, "attachApplicationLocked: after updateLruProcessLocked");
@@ -4765,8 +4808,8 @@
             SystemProperties.set("sys.boot_completed", "1");
 
             // And trigger dev.bootcomplete if we are not showing encryption progress
-            if (!"trigger_restart_min_framework".equals(SystemProperties.get("vold.decrypt"))
-                    || "".equals(SystemProperties.get("vold.encrypt_progress"))) {
+            if (!"trigger_restart_min_framework".equals(VoldProperties.decrypt().orElse(""))
+                    || "".equals(VoldProperties.encrypt_progress().orElse(""))) {
                 SystemProperties.set("dev.bootcomplete", "1");
             }
             mUserController.sendBootCompleted(
@@ -8477,7 +8520,8 @@
             mAtmInternal.resumeTopActivities(false /* scheduleIdle */);
             mUserController.sendUserSwitchBroadcasts(-1, currentUserId);
 
-            BinderInternal.nSetBinderProxyCountWatermarks(6000,5500);
+            BinderInternal.nSetBinderProxyCountWatermarks(BINDER_PROXY_HIGH_WATERMARK,
+                    BINDER_PROXY_LOW_WATERMARK);
             BinderInternal.nSetBinderProxyCountEnabled(true);
             BinderInternal.setBinderProxyCountCallback(
                     new BinderInternal.BinderProxyLimitListener() {
@@ -9207,26 +9251,41 @@
                 }
                 dumpAssociationsLocked(fd, pw, args, opti, dumpAll, dumpClient, dumpPackage);
             }
+            if (dumpPackage == null) {
+                pw.println();
+                if (dumpAll) {
+                    pw.println("-------------------------------------------------------------------------------");
+                }
+                mOomAdjProfiler.dump(pw);
+                pw.println();
+                if (dumpAll) {
+                    pw.println("-------------------------------------------------------------------------------");
+                }
+                dumpLmkLocked(pw);
+            }
+            pw.println();
+            if (dumpAll) {
+                pw.println("-------------------------------------------------------------------------------");
+            }
+            dumpLruLocked(pw, dumpPackage);
             pw.println();
             if (dumpAll) {
                 pw.println("-------------------------------------------------------------------------------");
             }
             dumpProcessesLocked(fd, pw, args, opti, dumpAll, dumpPackage, dumpAppId);
+        }
+        if (dumpPackage == null) {
+            // Intentionally dropping the lock for this, because dumpBinderProxies() will make many
+            // outgoing binder calls to retrieve interface descriptors; while that is system code,
+            // there is nothing preventing an app from overriding this implementation by talking to
+            // the binder driver directly, and hang up system_server in the process. So, dump
+            // without locks held, and even then only when there is an unreasonably large number of
+            // proxies in the first place.
             pw.println();
             if (dumpAll) {
                 pw.println("-------------------------------------------------------------------------------");
             }
-            mOomAdjProfiler.dump(pw);
-            pw.println();
-            if (dumpAll) {
-                pw.println("-------------------------------------------------------------------------------");
-            }
-            dumpBinderProxies(pw);
-            pw.println();
-            if (dumpAll) {
-                pw.println("-------------------------------------------------------------------------------");
-            }
-            dumpLmkLocked(pw);
+            dumpBinderProxies(pw, BINDER_PROXY_HIGH_WATERMARK /* minToDump */);
         }
     }
 
@@ -9366,7 +9425,7 @@
                         cmd, fd, pw, args, opti, true /* dumpAll */, dumpClient, dumpPackage);
             } else if ("binder-proxies".equals(cmd)) {
                 if (opti >= args.length) {
-                    dumpBinderProxies(pw);
+                    dumpBinderProxies(pw, 0 /* minToDump */);
                 } else {
                     String uid = args[opti];
                     opti++;
@@ -9421,6 +9480,10 @@
                 synchronized (this) {
                     dumpLmkLocked(pw);
                 }
+            } else if ("lru".equals(cmd)) {
+                synchronized (this) {
+                    dumpLruLocked(pw, null);
+                }
             } else if ("permissions".equals(cmd) || "perm".equals(cmd)) {
                 synchronized (this) {
                     dumpPermissionsLocked(fd, pw, args, opti, true, null);
@@ -9698,17 +9761,109 @@
                 }
                 pw.println();
             }
-            pw.println();
             return true;
         }
         return false;
     }
 
-    void dumpBinderProxies(PrintWriter pw) {
-        dumpBinderProxyInterfaceCounts(pw,
-                "Top proxy interface names held by SYSTEM");
+    void dumpBinderProxies(PrintWriter pw, int minCountToDumpInterfaces) {
+        pw.println("ACTIVITY MANAGER BINDER PROXY STATE (dumpsys activity binder-proxies)");
+        final int proxyCount = BinderProxy.getProxyCount();
+        if (proxyCount >= minCountToDumpInterfaces) {
+            dumpBinderProxyInterfaceCounts(pw,
+                    "Top proxy interface names held by SYSTEM");
+        } else {
+            pw.print("Not dumping proxy interface counts because size ("
+                    + Integer.toString(proxyCount) + ") looks reasonable");
+            pw.println();
+        }
         dumpBinderProxiesCounts(pw,
-                "Counts of Binder Proxies held by SYSTEM");
+                "  Counts of Binder Proxies held by SYSTEM");
+    }
+
+    void dumpLruEntryLocked(PrintWriter pw, int index, ProcessRecord proc) {
+        pw.print("    #");
+        pw.print(index);
+        pw.print(": ");
+        pw.print(ProcessList.makeOomAdjString(proc.setAdj));
+        pw.print(" ");
+        pw.print(ProcessList.makeProcStateString(proc.getCurProcState()));
+        pw.print(" ");
+        pw.print(proc.toShortString());
+        pw.print(" ");
+        if (proc.hasActivitiesOrRecentTasks() || proc.hasClientActivities()
+                || proc.treatLikeActivity) {
+            pw.print(" activity=");
+            boolean printed = false;
+            if (proc.hasActivities()) {
+                pw.print("activities");
+                printed = true;
+            }
+            if (proc.hasRecentTasks()) {
+                if (printed) {
+                    pw.print("|");
+                }
+                pw.print("recents");
+                printed = true;
+            }
+            if (proc.hasClientActivities()) {
+                if (printed) {
+                    pw.print("|");
+                }
+                pw.print("client");
+                printed = true;
+            }
+            if (proc.treatLikeActivity) {
+                if (printed) {
+                    pw.print("|");
+                }
+                pw.print("treated");
+            }
+        }
+        pw.println();
+    }
+
+    // TODO: Move to ProcessList?
+    void dumpLruLocked(PrintWriter pw, String dumpPackage) {
+        pw.println("ACTIVITY MANAGER LRU PROCESSES (dumpsys activity lru)");
+        final int N = mProcessList.mLruProcesses.size();
+        int i;
+        boolean first = true;
+        for (i = N - 1; i >= mProcessList.mLruProcessActivityStart; i--) {
+            final ProcessRecord r = mProcessList.mLruProcesses.get(i);
+            if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
+                continue;
+            }
+            if (first) {
+                pw.println("  Activities:");
+                first = false;
+            }
+            dumpLruEntryLocked(pw, i, r);
+        }
+        first = true;
+        for (; i >= mProcessList.mLruProcessServiceStart; i--) {
+            final ProcessRecord r = mProcessList.mLruProcesses.get(i);
+            if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
+                continue;
+            }
+            if (first) {
+                pw.println("  Services:");
+                first = false;
+            }
+            dumpLruEntryLocked(pw, i, r);
+        }
+        first = true;
+        for (; i >= 0; i--) {
+            final ProcessRecord r = mProcessList.mLruProcesses.get(i);
+            if (dumpPackage != null && !r.pkgList.containsKey(dumpPackage)) {
+                continue;
+            }
+            if (first) {
+                pw.println("  Other:");
+                first = false;
+            }
+            dumpLruEntryLocked(pw, i, r);
+        }
     }
 
     // TODO: Move to ProcessList?
@@ -12984,11 +13139,8 @@
             return true;
         } else if (app.pid > 0 && app.pid != MY_PID) {
             // Goodbye!
-            boolean removed;
-            synchronized (mPidsSelfLocked) {
-                mPidsSelfLocked.remove(app.pid);
-                mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app);
-            }
+            mPidsSelfLocked.remove(app.pid);
+            mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app);
             mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid);
             if (app.isolated) {
                 mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid);
@@ -13214,6 +13366,12 @@
         }
     }
 
+    public void updateServiceGroup(IServiceConnection connection, int group, int importance) {
+        synchronized (this) {
+            mServices.updateServiceGroupLocked(connection, group, importance);
+        }
+    }
+
     public boolean unbindService(IServiceConnection connection) {
         synchronized (this) {
             return mServices.unbindServiceLocked(connection);
@@ -17398,8 +17556,11 @@
         int stepCached = 0;
         int stepEmpty = 0;
         int numCached = 0;
+        int numCachedExtraGroup = 0;
         int numEmpty = 0;
         int numTrimming = 0;
+        int lastCachedGroup = 0;
+        int lastCachedGroupUid = 0;
 
         mNumNonCachedProcs = 0;
         mNumCachedHiddenProcs = 0;
@@ -17523,7 +17684,21 @@
                     case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT:
                         mNumCachedHiddenProcs++;
                         numCached++;
-                        if (numCached > cachedProcessLimit) {
+                        if (app.connectionGroup != 0) {
+                            if (lastCachedGroupUid == app.uid
+                                    && lastCachedGroup == app.connectionGroup) {
+                                // If this process is the next in the same group, we don't
+                                // want it to count against our limit of the number of cached
+                                // processes, so bump up the group count to account for it.
+                                numCachedExtraGroup++;
+                            } else {
+                                lastCachedGroupUid = app.uid;
+                                lastCachedGroup = app.connectionGroup;
+                            }
+                        } else {
+                            lastCachedGroupUid = lastCachedGroup = 0;
+                        }
+                        if ((numCached - numCachedExtraGroup) > cachedProcessLimit) {
                             app.kill("cached #" + numCached, true);
                         }
                         break;
@@ -18762,7 +18937,6 @@
                     if (memoryStat == null) {
                         continue;
                     }
-                    // TODO(rslawik): Delete RSS high-water mark field.
                     ProcessMemoryState processMemoryState =
                             new ProcessMemoryState(uid,
                                     r.processName,
@@ -18772,7 +18946,6 @@
                                     memoryStat.rssInBytes,
                                     memoryStat.cacheInBytes,
                                     memoryStat.swapInBytes,
-                                    memoryStat.rssHighWatermarkInBytes,
                                     memoryStat.startTimeNanos);
                     processMemoryStates.add(processMemoryState);
                 }
@@ -19054,6 +19227,10 @@
             return mConstants.mFlagActivityStartsLoggingEnabled;
         }
 
+        public boolean isBackgroundActivityStartsEnabled() {
+            return mConstants.mFlagBackgroundActivityStartsEnabled;
+        }
+
         public void reportCurKeyguardUsageEvent(boolean keyguardShowing) {
             synchronized(ActivityManagerService.this) {
                 ActivityManagerService.this.reportGlobalUsageEventLocked(keyguardShowing
@@ -19194,7 +19371,7 @@
 
         @Override
         public boolean isAppStorageSandboxed(int pid, int uid) {
-            if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) {
+            if (!StorageManager.hasIsolatedStorage()) {
                 return false;
             }
             if (uid == SHELL_UID || uid == ROOT_UID) {
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index 8f8d5ab..67a4d14 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -2853,6 +2853,9 @@
             pw.println("    provider [COMP_SPEC]: provider client-side state");
             pw.println("    s[ervices] [COMP_SPEC ...]: service state");
             pw.println("    as[sociations]: tracked app associations");
+            pw.println("    lmk: stats on low memory killer");
+            pw.println("    lru: raw LRU process list");
+            pw.println("    binder-proxies: stats on binder objects and IPCs");
             pw.println("    settings: currently applied config settings");
             pw.println("    service [COMP_SPEC]: service client-side state");
             pw.println("    package [PACKAGE_NAME]: all state related to given package");
diff --git a/services/core/java/com/android/server/am/AssistDataRequester.java b/services/core/java/com/android/server/am/AssistDataRequester.java
index 395b0da..09df7e20 100644
--- a/services/core/java/com/android/server/am/AssistDataRequester.java
+++ b/services/core/java/com/android/server/am/AssistDataRequester.java
@@ -19,6 +19,7 @@
 import static android.app.ActivityManager.ASSIST_CONTEXT_FULL;
 import static android.app.AppOpsManager.MODE_ALLOWED;
 import static android.app.AppOpsManager.OP_NONE;
+
 import static com.android.server.wm.ActivityTaskManagerInternal.ASSIST_KEY_RECEIVER_EXTRAS;
 
 import android.app.ActivityTaskManager;
@@ -82,7 +83,9 @@
          * is true.
          */
         @GuardedBy("mCallbacksLock")
-        void onAssistDataReceivedLocked(Bundle data, int activityIndex, int activityCount);
+        default void onAssistDataReceivedLocked(Bundle data, int activityIndex, int activityCount) {
+            // Do nothing
+        }
 
         /**
          * Called when we receive asynchronous assist screenshot. This call is only made if
@@ -92,7 +95,9 @@
          * {@link #canHandleReceivedAssistDataLocked()} is true.
          */
         @GuardedBy("mCallbacksLock")
-        void onAssistScreenshotReceivedLocked(Bitmap screenshot);
+        default void onAssistScreenshotReceivedLocked(Bitmap screenshot) {
+            // Do nothing
+        }
 
         /**
          * Called when there is no more pending assist data or screenshots for the last request.
@@ -130,10 +135,39 @@
     }
 
     /**
+     * Request that autofill data be loaded asynchronously. The resulting data will be provided
+     * through the {@link AssistDataRequesterCallbacks}.
+     *
+     * See {@link #requestData(List, boolean, boolean, boolean, boolean, boolean, int, String)}.
+     */
+    public void requestAutofillData(List<IBinder> activityTokens, int callingUid,
+            String callingPackage) {
+        requestData(activityTokens, true /* requestAutofillData */,
+                true /* fetchData */, false /* fetchScreenshot */,
+                true /* allowFetchData */, false /* allowFetchScreenshot */,
+                callingUid, callingPackage);
+    }
+
+    /**
+     * Request that assist data be loaded asynchronously. The resulting data will be provided
+     * through the {@link AssistDataRequesterCallbacks}.
+     *
+     * See {@link #requestData(List, boolean, boolean, boolean, boolean, boolean, int, String)}.
+     */
+    public void requestAssistData(List<IBinder> activityTokens, final boolean fetchData,
+            final boolean fetchScreenshot, boolean allowFetchData, boolean allowFetchScreenshot,
+            int callingUid, String callingPackage) {
+        requestData(activityTokens, false /* requestAutofillData */, fetchData, fetchScreenshot,
+                allowFetchData, allowFetchScreenshot, callingUid, callingPackage);
+    }
+
+    /**
      * Request that assist data be loaded asynchronously. The resulting data will be provided
      * through the {@link AssistDataRequesterCallbacks}.
      *
      * @param activityTokens the list of visible activities
+     * @param requestAutofillData if true, will fetch the autofill data, otherwise, will fetch the
+     *     assist context data
      * @param fetchData whether or not to fetch the assist data, only applies if the caller is
      *     allowed to fetch the assist data, and the current activity allows assist data to be
      *     fetched from it
@@ -145,9 +179,9 @@
      * @param allowFetchScreenshot to be joined with other checks, determines whether or not the
      *     requester is allowed to fetch the assist screenshot
      */
-    public void requestAssistData(List<IBinder> activityTokens, final boolean fetchData,
-            final boolean fetchScreenshot, boolean allowFetchData, boolean allowFetchScreenshot,
-            int callingUid, String callingPackage) {
+    private void requestData(List<IBinder> activityTokens, final boolean requestAutofillData,
+            final boolean fetchData, final boolean fetchScreenshot, boolean allowFetchData,
+            boolean allowFetchScreenshot, int callingUid, String callingPackage) {
         // TODO(b/34090158): Known issue, if the assist data is not allowed on the current activity,
         //                   then no assist data is requested for any of the other activities
 
@@ -187,9 +221,13 @@
                         Bundle receiverExtras = new Bundle();
                         receiverExtras.putInt(KEY_RECEIVER_EXTRA_INDEX, i);
                         receiverExtras.putInt(KEY_RECEIVER_EXTRA_COUNT, numActivities);
-                        if (ActivityTaskManager.getService().requestAssistContextExtras(
-                                ASSIST_CONTEXT_FULL, this, receiverExtras, topActivity,
-                                /* focused= */ i == 0, /* newSessionId= */ i == 0)) {
+                        boolean result = requestAutofillData
+                                ? ActivityTaskManager.getService().requestAutofillData(this,
+                                        receiverExtras, topActivity, 0 /* flags */)
+                                : ActivityTaskManager.getService().requestAssistContextExtras(
+                                        ASSIST_CONTEXT_FULL, this, receiverExtras, topActivity,
+                                        /* focused= */ i == 0, /* newSessionId= */ i == 0);
+                        if (result) {
                             mPendingDataCount++;
                         } else if (i == 0) {
                             // Wasn't allowed... given that, let's not do the screenshot either.
diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
index 2541352..24543b7 100644
--- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
+++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
@@ -25,10 +25,12 @@
 import android.net.wifi.WifiActivityEnergyInfo;
 import android.os.BatteryStats;
 import android.os.Parcelable;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SynchronousResultReceiver;
 import android.os.SystemClock;
+import android.os.ThreadLocalWorkSource;
 import android.telephony.ModemActivityInfo;
 import android.telephony.TelephonyManager;
 import android.util.IntArray;
@@ -43,11 +45,9 @@
 import libcore.util.EmptyArray;
 
 import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
@@ -74,7 +74,12 @@
     private final ScheduledExecutorService mExecutorService =
             Executors.newSingleThreadScheduledExecutor(
                     (ThreadFactory) r -> {
-                        Thread t = new Thread(r, "batterystats-worker");
+                        Thread t = new Thread(
+                                () -> {
+                                    ThreadLocalWorkSource.setUid(Process.myUid());
+                                    r.run();
+                                },
+                                "batterystats-worker");
                         t.setPriority(Thread.NORM_PRIORITY);
                         return t;
                     });
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index a0977be..8c39d75 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -58,8 +58,9 @@
 /**
  * BROADCASTS
  *
- * We keep two broadcast queues and associated bookkeeping, one for those at
- * foreground priority, and one for normal (background-priority) broadcasts.
+ * We keep three broadcast queues and associated bookkeeping, one for those at
+ * foreground priority, and one for normal (background-priority) broadcasts, and one to
+ * offload special broadcasts that we know take a long time, such as BOOT_COMPLETED.
  */
 public final class BroadcastQueue {
     private static final String TAG = "BroadcastQueue";
diff --git a/services/core/java/com/android/server/am/ConnectionRecord.java b/services/core/java/com/android/server/am/ConnectionRecord.java
index bfa3f66..aa76b3d 100644
--- a/services/core/java/com/android/server/am/ConnectionRecord.java
+++ b/services/core/java/com/android/server/am/ConnectionRecord.java
@@ -48,7 +48,7 @@
     boolean serviceDead;            // Well is it?
 
     // Please keep the following two enum list synced.
-    private static int[] BIND_ORIG_ENUMS = new int[] {
+    private static final int[] BIND_ORIG_ENUMS = new int[] {
             Context.BIND_AUTO_CREATE,
             Context.BIND_DEBUG_UNBIND,
             Context.BIND_NOT_FOREGROUND,
@@ -65,7 +65,7 @@
             Context.BIND_SHOWING_UI,
             Context.BIND_NOT_VISIBLE,
     };
-    private static int[] BIND_PROTO_ENUMS = new int[] {
+    private static final int[] BIND_PROTO_ENUMS = new int[] {
             ConnectionRecordProto.AUTO_CREATE,
             ConnectionRecordProto.DEBUG_UNBIND,
             ConnectionRecordProto.NOT_FG,
diff --git a/services/core/java/com/android/server/am/MemoryStatUtil.java b/services/core/java/com/android/server/am/MemoryStatUtil.java
index cc3da1c..90fe30c 100644
--- a/services/core/java/com/android/server/am/MemoryStatUtil.java
+++ b/services/core/java/com/android/server/am/MemoryStatUtil.java
@@ -49,13 +49,8 @@
     private static final boolean DEVICE_HAS_PER_APP_MEMCG =
             SystemProperties.getBoolean("ro.config.per_app_memcg", false);
 
-    /** Path to check if device has memcg */
-    private static final String MEMCG_TEST_PATH = "/dev/memcg/apps/memory.stat";
     /** Path to memory stat file for logging app start memory state */
     private static final String MEMORY_STAT_FILE_FMT = "/dev/memcg/apps/uid_%d/pid_%d/memory.stat";
-    /** Path to memory max usage file for logging app memory state */
-    private static final String MEMORY_MAX_USAGE_FILE_FMT =
-            "/dev/memcg/apps/uid_%d/pid_%d/memory.max_usage_in_bytes";
     /** Path to procfs stat file for logging app start memory state */
     private static final String PROC_STAT_FILE_FMT = "/proc/%d/stat";
     /** Path to procfs status file for logging app memory state */
@@ -98,14 +93,7 @@
     @Nullable
     static MemoryStat readMemoryStatFromMemcg(int uid, int pid) {
         final String statPath = String.format(Locale.US, MEMORY_STAT_FILE_FMT, uid, pid);
-        MemoryStat stat = parseMemoryStatFromMemcg(readFileContents(statPath));
-        if (stat == null) {
-            return null;
-        }
-        String maxUsagePath = String.format(Locale.US, MEMORY_MAX_USAGE_FILE_FMT, uid, pid);
-        stat.rssHighWatermarkInBytes = parseMemoryMaxUsageFromMemCg(
-                readFileContents(maxUsagePath));
-        return stat;
+        return parseMemoryStatFromMemcg(readFileContents(statPath));
     }
 
     /**
@@ -116,12 +104,7 @@
     @Nullable
     public static MemoryStat readMemoryStatFromProcfs(int pid) {
         final String statPath = String.format(Locale.US, PROC_STAT_FILE_FMT, pid);
-        MemoryStat stat = parseMemoryStatFromProcfs(readFileContents(statPath));
-        if (stat == null) {
-            return null;
-        }
-        stat.rssHighWatermarkInBytes = readRssHighWaterMarkFromProcfs(pid);
-        return stat;
+        return parseMemoryStatFromProcfs(readFileContents(statPath));
     }
 
     /**
@@ -185,19 +168,6 @@
         return memoryStat;
     }
 
-    @VisibleForTesting
-    static long parseMemoryMaxUsageFromMemCg(String memoryMaxUsageContents) {
-        if (memoryMaxUsageContents == null || memoryMaxUsageContents.isEmpty()) {
-            return 0;
-        }
-        try {
-            return Long.parseLong(memoryMaxUsageContents);
-        } catch (NumberFormatException e) {
-            Slog.e(TAG, "Failed to parse value", e);
-            return 0;
-        }
-    }
-
     /**
      * Parses relevant statistics out from the contents of the /proc/pid/stat file in procfs.
      */
@@ -258,8 +228,6 @@
         public long cacheInBytes;
         /** Number of bytes of swap usage */
         public long swapInBytes;
-        /** Number of bytes of peak anonymous and swap cache memory */
-        public long rssHighWatermarkInBytes;
         /** Device time when the processes started. */
         public long startTimeNanos;
     }
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 84b364b..62f1009 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -27,7 +27,6 @@
 import static android.os.Process.getTotalMemory;
 import static android.os.Process.killProcessQuiet;
 import static android.os.Process.startWebView;
-import static android.os.storage.StorageManager.PROP_ISOLATED_STORAGE;
 
 import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_LRU;
 import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_PROCESSES;
@@ -50,6 +49,7 @@
 import android.app.AppProtoEnums;
 import android.app.IApplicationThread;
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageManager;
@@ -72,6 +72,7 @@
 import android.os.SystemProperties;
 import android.os.Trace;
 import android.os.UserHandle;
+import android.os.storage.StorageManager;
 import android.os.storage.StorageManagerInternal;
 import android.text.TextUtils;
 import android.util.EventLog;
@@ -1245,10 +1246,8 @@
         long startTime = SystemClock.elapsedRealtime();
         if (app.pid > 0 && app.pid != ActivityManagerService.MY_PID) {
             checkSlow(startTime, "startProcess: removing from pids map");
-            synchronized (mService.mPidsSelfLocked) {
-                mService.mPidsSelfLocked.remove(app.pid);
-                mService.mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app);
-            }
+            mService.mPidsSelfLocked.remove(app.pid);
+            mService.mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app);
             checkSlow(startTime, "startProcess: done removing from pids map");
             app.setPid(0);
         }
@@ -1280,8 +1279,7 @@
                     final IPackageManager pm = AppGlobals.getPackageManager();
                     permGids = pm.getPackageGids(app.info.packageName,
                             MATCH_DIRECT_BOOT_AUTO, app.userId);
-                    if (SystemProperties.getBoolean(PROP_ISOLATED_STORAGE, false)
-                            && mountExtStorageFull) {
+                    if (StorageManager.hasIsolatedStorage() && mountExtStorageFull) {
                         mountExternal = Zygote.MOUNT_EXTERNAL_FULL;
                     } else {
                         StorageManagerInternal storageManagerInternal = LocalServices.getService(
@@ -1767,8 +1765,8 @@
             mService.cleanUpApplicationRecordLocked(oldApp, false, false, -1,
                     true /*replacingPid*/);
         }
+        mService.mPidsSelfLocked.put(pid, app);
         synchronized (mService.mPidsSelfLocked) {
-            mService.mPidsSelfLocked.put(pid, app);
             if (!procAttached) {
                 Message msg = mService.mHandler.obtainMessage(PROC_START_TIMEOUT_MSG);
                 msg.obj = app;
@@ -1928,10 +1926,8 @@
                 .pendingStart)) {
             int pid = app.pid;
             if (pid > 0) {
-                synchronized (mService.mPidsSelfLocked) {
-                    mService.mPidsSelfLocked.remove(pid);
-                    mService.mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app);
-                }
+                mService.mPidsSelfLocked.remove(pid);
+                mService.mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app);
                 mService.mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid);
                 if (app.isolated) {
                     mService.mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid);
@@ -2204,7 +2200,7 @@
 
     @GuardedBy("mService")
     int updateLruProcessInternalLocked(ProcessRecord app, long now, int index,
-            String what, Object obj, ProcessRecord srcApp) {
+            int lruSeq, String what, Object obj, ProcessRecord srcApp) {
         app.lastActivityTime = now;
 
         if (app.hasActivitiesOrRecentTasks()) {
@@ -2225,7 +2221,7 @@
             return index;
         }
 
-        if (lrui >= mLruProcessActivityStart) {
+        if (lrui >= mLruProcessActivityStart && index < mLruProcessActivityStart) {
             // Don't want to touch dependent processes that are hosting activities.
             return index;
         }
@@ -2237,6 +2233,7 @@
         if (DEBUG_LRU) Slog.d(TAG_LRU, "Moving dep from " + lrui + " to " + index
                 + " in LRU list: " + app);
         mLruProcesses.add(index, app);
+        app.lruSeq = lruSeq;
         return index;
     }
 
@@ -2345,9 +2342,11 @@
         */
 
         int nextIndex;
+        int nextActivityIndex = -1;
         if (hasActivity) {
             final int N = mLruProcesses.size();
-            if ((!app.hasActivities() || app.hasRecentTasks())
+            nextIndex = mLruProcessServiceStart;
+            if (!app.hasActivitiesOrRecentTasks() && !app.treatLikeActivity
                     && mLruProcessActivityStart < (N - 1)) {
                 // Process doesn't have activities, but has clients with
                 // activities...  move it up, but one below the top (the top
@@ -2355,36 +2354,92 @@
                 if (DEBUG_LRU) Slog.d(TAG_LRU,
                         "Adding to second-top of LRU activity list: " + app);
                 mLruProcesses.add(N - 1, app);
-                // To keep it from spamming the LRU list (by making a bunch of clients),
-                // we will push down any other entries owned by the app.
+                // If this process is part of a group, need to pull up any other processes
+                // in that group to be with it.
                 final int uid = app.info.uid;
-                for (int i = N - 2; i > mLruProcessActivityStart; i--) {
-                    ProcessRecord subProc = mLruProcesses.get(i);
-                    if (subProc.info.uid == uid) {
-                        // We want to push this one down the list.  If the process after
-                        // it is for the same uid, however, don't do so, because we don't
-                        // want them internally to be re-ordered.
-                        if (mLruProcesses.get(i - 1).info.uid != uid) {
-                            if (DEBUG_LRU) Slog.d(TAG_LRU,
-                                    "Pushing uid " + uid + " swapping at " + i + ": "
-                                            + mLruProcesses.get(i) + " : "
-                                            + mLruProcesses.get(i - 1));
-                            ProcessRecord tmp = mLruProcesses.get(i);
-                            mLruProcesses.set(i, mLruProcesses.get(i - 1));
-                            mLruProcesses.set(i - 1, tmp);
-                            i--;
+                int endIndex = N - 2;
+                nextActivityIndex = N - 2;
+                if (app.connectionGroup > 0) {
+                    int endImportance = app.connectionImportance;
+                    for (int i = endIndex; i >= mLruProcessActivityStart; i--) {
+                        final ProcessRecord subProc = mLruProcesses.get(i);
+                        if (subProc.info.uid == uid
+                                && subProc.connectionGroup == subProc.connectionGroup) {
+                            if (i == endIndex && subProc.connectionImportance >= endImportance) {
+                                // This process is already in the group, and its importance
+                                // is not as strong as the process before it, so it keep it
+                                // correctly positioned in the group.
+                                endIndex--;
+                                endImportance = subProc.connectionImportance;
+                            } else {
+                                // We want to pull this up to be with the rest of the group,
+                                // and order within the group by importance.
+                                boolean moved = false;
+                                for (int pos = N - 1; pos > endIndex; pos--) {
+                                    final ProcessRecord posProc = mLruProcesses.get(pos);
+                                    if (subProc.connectionImportance
+                                            <= posProc.connectionImportance) {
+                                        mLruProcesses.remove(i);
+                                        mLruProcesses.add(pos, subProc);
+                                        moved = true;
+                                        endIndex--;
+                                        break;
+                                    }
+                                }
+                                if (!moved) {
+                                    // Goes to the end of the group.
+                                    mLruProcesses.remove(i);
+                                    mLruProcesses.add(endIndex - 1, subProc);
+                                    endIndex--;
+                                    endImportance = subProc.connectionImportance;
+                                }
+                            }
                         }
-                    } else {
-                        // A gap, we can stop here.
-                        break;
+                    }
+
+                }
+                // To keep it from spamming the LRU list (by making a bunch of clients),
+                // we will distribute other entries owned by it to be in-between other apps.
+                for (int i = endIndex; i >= mLruProcessActivityStart; i--) {
+                    final ProcessRecord subProc = mLruProcesses.get(i);
+                    if (subProc.info.uid != uid) {
+                        // This is a different app...  if we have gone through some of the
+                        // target app, pull this up to be before them.
+                        if (i < endIndex) {
+                            mLruProcesses.remove(i);
+                            mLruProcesses.add(endIndex, subProc);
+                        }
+                        // Find the end of the next group of processes for target app.  This
+                        // is after any entries of different apps (so we don't change the existing
+                        // relative order of apps) and then after the next last group of processes
+                        // of the target app.
+                        for (endIndex--; endIndex >= mLruProcessActivityStart; endIndex--) {
+                            final ProcessRecord endProc = mLruProcesses.get(endIndex);
+                            if (endProc.info.uid == uid) {
+                                break;
+                            }
+                        }
+                        if (endIndex >= mLruProcessActivityStart) {
+                            final ProcessRecord endProc = mLruProcesses.get(endIndex);
+                            for (endIndex--; endIndex >= mLruProcessActivityStart; endIndex--) {
+                                final ProcessRecord nextEndProc = mLruProcesses.get(endIndex);
+                                if (nextEndProc.info.uid != uid
+                                        || nextEndProc.connectionGroup != endProc.connectionGroup) {
+                                    break;
+                                }
+                            }
+                        }
+                        if (i > endIndex) {
+                            i = endIndex;
+                        }
                     }
                 }
             } else {
                 // Process has activities, put it at the very tipsy-top.
                 if (DEBUG_LRU) Slog.d(TAG_LRU, "Adding to top of LRU activity list: " + app);
                 mLruProcesses.add(app);
+                nextActivityIndex = mLruProcesses.size() - 1;
             }
-            nextIndex = mLruProcessServiceStart;
         } else if (hasService) {
             // Process has services, put it at the top of the service list.
             if (DEBUG_LRU) Slog.d(TAG_LRU, "Adding to top of LRU service list: " + app);
@@ -2416,6 +2471,8 @@
             mLruProcessServiceStart++;
         }
 
+        app.lruSeq = mLruSeq;
+
         // If the app is currently using a content provider or service,
         // bump those processes as well.
         for (int j = app.connections.size() - 1; j >= 0; j--) {
@@ -2423,17 +2480,27 @@
             if (cr.binding != null && !cr.serviceDead && cr.binding.service != null
                     && cr.binding.service.app != null
                     && cr.binding.service.app.lruSeq != mLruSeq
+                    && (cr.flags & Context.BIND_REDUCTION_FLAGS) == 0
                     && !cr.binding.service.app.isPersistent()) {
-                nextIndex = updateLruProcessInternalLocked(cr.binding.service.app,
-                        now,
-                        nextIndex,
-                        "service connection", cr, app);
+                if (cr.binding.service.app.hasClientActivities()) {
+                    if (nextActivityIndex >= 0) {
+                        nextActivityIndex = updateLruProcessInternalLocked(cr.binding.service.app,
+                                now,
+                                nextActivityIndex, mLruSeq,
+                                "service connection", cr, app);
+                    }
+                } else {
+                    nextIndex = updateLruProcessInternalLocked(cr.binding.service.app,
+                            now,
+                            nextIndex, mLruSeq,
+                            "service connection", cr, app);
+                }
             }
         }
         for (int j = app.conProviders.size() - 1; j >= 0; j--) {
             ContentProviderRecord cpr = app.conProviders.get(j).provider;
             if (cpr.proc != null && cpr.proc.lruSeq != mLruSeq && !cpr.proc.isPersistent()) {
-                nextIndex = updateLruProcessInternalLocked(cpr.proc, now, nextIndex,
+                nextIndex = updateLruProcessInternalLocked(cpr.proc, now, nextIndex, mLruSeq,
                         "provider reference", cpr, app);
             }
         }
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index faf8561..013de93 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -155,6 +155,9 @@
     int pssStatType;            // The type of stat collection that we are currently requesting
     int savedPriority;          // Previous priority value if we're switching to non-SCHED_OTHER
     int renderThreadTid;        // TID for RenderThread
+    ServiceRecord connectionService; // Service that applied current connectionGroup/Importance
+    int connectionGroup;        // Last group set by a connection
+    int connectionImportance;   // Last importance set by a connection
     boolean serviceb;           // Process currently is on the service B list
     boolean serviceHighRam;     // We are forcing to service B list due to its RAM use
     boolean notCachedSinceIdle; // Has this process not been in a cached state since last idle?
@@ -396,6 +399,11 @@
                     pw.print(" hasAboveClient="); pw.print(hasAboveClient);
                     pw.print(" treatLikeActivity="); pw.println(treatLikeActivity);
         }
+        if (connectionService != null || connectionGroup != 0) {
+            pw.print(prefix); pw.print("connectionGroup="); pw.print(connectionGroup);
+            pw.print(" Importance="); pw.print(connectionImportance);
+            pw.print(" Service="); pw.println(connectionService);
+        }
         if (hasTopUi() || hasOverlayUi() || runningRemoteAnimation) {
             pw.print(prefix); pw.print("hasTopUi="); pw.print(hasTopUi());
                     pw.print(" hasOverlayUi="); pw.print(hasOverlayUi());
diff --git a/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java b/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java
index a5848ca..4c4a090 100644
--- a/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java
+++ b/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java
@@ -65,6 +65,7 @@
     // permission in the corresponding .te file your feature belongs to.
     @VisibleForTesting
     static final String[] sGlobalSettings = new String[] {
+            Settings.Global.NATIVE_FLAGS_HEALTH_CHECK_ENABLED,
     };
 
     @VisibleForTesting
diff --git a/services/core/java/com/android/server/am/TEST_MAPPING b/services/core/java/com/android/server/am/TEST_MAPPING
index b817669..48b4145 100644
--- a/services/core/java/com/android/server/am/TEST_MAPPING
+++ b/services/core/java/com/android/server/am/TEST_MAPPING
@@ -1,17 +1,6 @@
 {
   "presubmit": [
     {
-      "name": "CtsActivityManagerDeviceTestCases",
-      "options": [
-        {
-          "include-annotation": "android.platform.test.annotations.Presubmit"
-        },
-        {
-          "exclude-annotation": "android.support.test.filters.FlakyTest"
-        }
-      ]
-    },
-    {
       "name": "CtsActivityManagerDeviceSdk25TestCases",
       "options": [
         {
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 67d27c9..6cde4ad 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -649,6 +649,9 @@
     private String mEnabledSurroundFormats;
     private boolean mSurroundModeChanged;
 
+    @GuardedBy("mSettingsLock")
+    private int mAssistantUid;
+
     // Intent "extra" data keys.
     public static final String CONNECT_INTENT_KEY_PORT_NAME = "portName";
     public static final String CONNECT_INTENT_KEY_STATE = "state";
@@ -1079,6 +1082,10 @@
             AudioSystem.setForceUse(AudioSystem.FOR_DOCK, forDock);
             sendEncodedSurroundMode(mContentResolver, "onAudioServerDied");
             sendEnabledSurroundFormats(mContentResolver, true);
+            updateAssistantUId(true);
+        }
+        synchronized (mAccessibilityServiceUidsLock) {
+            AudioSystem.setA11yServicesUids(mAccessibilityServiceUids);
         }
         synchronized (mHdmiClientLock) {
             if (mHdmiManager != null && mHdmiTvClient != null) {
@@ -1404,6 +1411,39 @@
         }
     }
 
+    @GuardedBy("mSettingsLock")
+    private void updateAssistantUId(boolean forceUpdate) {
+        int assistantUid = 0;
+
+        // Consider assistants in the following order of priority:
+        // 1) voice interaction service
+        // 2) assistant
+        String assistantName = Settings.Secure.getStringForUser(
+                        mContentResolver,
+                        Settings.Secure.VOICE_INTERACTION_SERVICE, UserHandle.USER_CURRENT);
+        if (TextUtils.isEmpty(assistantName)) {
+            assistantName = Settings.Secure.getStringForUser(
+                    mContentResolver,
+                    Settings.Secure.ASSISTANT, UserHandle.USER_CURRENT);
+        }
+        if (!TextUtils.isEmpty(assistantName)) {
+            String packageName = ComponentName.unflattenFromString(assistantName).getPackageName();
+            if (!TextUtils.isEmpty(packageName)) {
+                try {
+                    assistantUid = mContext.getPackageManager().getPackageUid(packageName, 0);
+                } catch (PackageManager.NameNotFoundException e) {
+                    Log.e(TAG,
+                            "updateAssistantUId() could not find UID for package: " + packageName);
+                }
+            }
+        }
+
+        if (assistantUid != mAssistantUid || forceUpdate) {
+            AudioSystem.setAssistantUid(assistantUid);
+            mAssistantUid = assistantUid;
+        }
+    }
+
     private void readPersistedSettings() {
         final ContentResolver cr = mContentResolver;
 
@@ -1447,6 +1487,7 @@
             readDockAudioSettings(cr);
             sendEncodedSurroundMode(cr, "readPersistedSettings");
             sendEnabledSurroundFormats(cr, true);
+            updateAssistantUId(true);
         }
 
         mMuteAffectedStreams = System.getIntForUser(cr,
@@ -5811,6 +5852,9 @@
                     mContentResolver, Settings.Global.ENCODED_SURROUND_OUTPUT_ENABLED_FORMATS);
             mContentResolver.registerContentObserver(Settings.Global.getUriFor(
                     Settings.Global.ENCODED_SURROUND_OUTPUT_ENABLED_FORMATS), false, this);
+
+            mContentResolver.registerContentObserver(Settings.Secure.getUriFor(
+                    Settings.Secure.VOICE_INTERACTION_SERVICE), false, this);
         }
 
         @Override
@@ -5832,6 +5876,7 @@
                 updateMasterMono(mContentResolver);
                 updateEncodedSurroundOutput();
                 sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged);
+                updateAssistantUId(false);
             }
         }
 
@@ -7658,6 +7703,7 @@
                         mAccessibilityServiceUids = uids.toArray();
                     }
                 }
+                AudioSystem.setA11yServicesUids(mAccessibilityServiceUids);
             }
         }
     }
diff --git a/services/core/java/com/android/server/biometrics/AuthenticationClient.java b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
index 2c2d404..eaa7a83 100644
--- a/services/core/java/com/android/server/biometrics/AuthenticationClient.java
+++ b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
@@ -19,19 +19,11 @@
 import android.content.Context;
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
-import android.hardware.biometrics.BiometricPrompt;
-import android.hardware.biometrics.IBiometricPromptReceiver;
-import android.os.Bundle;
-import android.os.Handler;
 import android.os.IBinder;
-import android.os.Looper;
 import android.os.RemoteException;
 import android.security.KeyStore;
-import android.text.TextUtils;
 import android.util.Slog;
 
-import com.android.internal.statusbar.IStatusBarService;
-
 import java.util.ArrayList;
 
 /**
@@ -39,88 +31,15 @@
  */
 public abstract class AuthenticationClient extends ClientMonitor {
     private long mOpId;
-    private Handler mHandler;
 
     public abstract int handleFailedAttempt();
     public abstract void resetFailedAttempts();
-    public abstract String getErrorString(int error, int vendorCode);
-    public abstract String getAcquiredString(int acquireInfo, int vendorCode);
-    /**
-      * @return one of {@link #TYPE_FINGERPRINT} {@link #TYPE_IRIS} or {@link #TYPE_FACE}
-      */
-    public abstract int getBiometricType();
 
     public static final int LOCKOUT_NONE = 0;
     public static final int LOCKOUT_TIMED = 1;
     public static final int LOCKOUT_PERMANENT = 2;
 
     private final boolean mRequireConfirmation;
-    // Callback mechanism received from the client
-    // (BiometricPrompt -> BiometricPromptService -> <Biometric>Service -> AuthenticationClient)
-    private IBiometricPromptReceiver mDialogReceiverFromClient;
-    private Bundle mBundle;
-    private IStatusBarService mStatusBarService;
-    private boolean mInLockout;
-    private TokenEscrow mEscrow;
-    protected boolean mDialogDismissed;
-
-    /**
-     * Container that holds the identifier and authToken. For biometrics that require user
-     * confirmation, these should not be sent to their final destinations until the user confirms.
-     */
-    class TokenEscrow {
-        final BiometricAuthenticator.Identifier mIdentifier;
-        final ArrayList<Byte> mToken;
-
-        TokenEscrow(BiometricAuthenticator.Identifier identifier, ArrayList<Byte> token) {
-            mIdentifier = identifier;
-            mToken = token;
-        }
-
-        BiometricAuthenticator.Identifier getIdentifier() {
-            return mIdentifier;
-        }
-
-        ArrayList<Byte> getToken() {
-            return mToken;
-        }
-    }
-
-    // Receives events from SystemUI and handles them before forwarding them to BiometricDialog
-    protected IBiometricPromptReceiver mDialogReceiver = new IBiometricPromptReceiver.Stub() {
-        @Override // binder call
-        public void onDialogDismissed(int reason) {
-            if (mBundle != null && mDialogReceiverFromClient != null) {
-                try {
-                    if (reason != BiometricPrompt.DISMISSED_REASON_POSITIVE) {
-                        // Positive button is used by passive modalities as a "confirm" button,
-                        // do not send to client
-                        mDialogReceiverFromClient.onDialogDismissed(reason);
-                    }
-                    if (reason == BiometricPrompt.DISMISSED_REASON_USER_CANCEL) {
-                        onError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_USER_CANCELED,
-                                0 /* vendorCode */);
-                    } else if (reason == BiometricPrompt.DISMISSED_REASON_POSITIVE) {
-                        // Have the service send the token to KeyStore, and send onAuthenticated
-                        // to the application.
-                        if (mEscrow != null) {
-                            if (DEBUG) Slog.d(getLogTag(), "Confirmed");
-                            addTokenToKeyStore(mEscrow.getToken());
-                            notifyClientAuthenticationSucceeded(mEscrow.getIdentifier());
-                            mEscrow = null;
-                            onAuthenticationConfirmed();
-                        } else {
-                            Slog.e(getLogTag(), "Escrow is null!!!");
-                        }
-                    }
-                    mDialogDismissed = true;
-                } catch (RemoteException e) {
-                    Slog.e(getLogTag(), "Remote exception", e);
-                }
-                stop(true /* initiatedByClient */);
-            }
-        }
-    };
 
     /**
      * This method is called when authentication starts.
@@ -133,25 +52,13 @@
      */
     public abstract void onStop();
 
-    /**
-     * This method is called when biometric authentication was confirmed by the user. The client
-     * should be removed.
-     */
-    public abstract void onAuthenticationConfirmed();
-
     public AuthenticationClient(Context context, Metrics metrics,
             BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
             BiometricServiceBase.ServiceListener listener, int targetUserId, int groupId, long opId,
-            boolean restricted, String owner, Bundle bundle,
-            IBiometricPromptReceiver dialogReceiver, IStatusBarService statusBarService,
-            boolean requireConfirmation) {
+            boolean restricted, String owner, int cookie, boolean requireConfirmation) {
         super(context, metrics, daemon, halDeviceId, token, listener, targetUserId, groupId,
-                restricted, owner);
+                restricted, owner, cookie);
         mOpId = opId;
-        mBundle = bundle;
-        mDialogReceiverFromClient = dialogReceiver;
-        mStatusBarService = statusBarService;
-        mHandler = new Handler(Looper.getMainLooper());
         mRequireConfirmation = requireConfirmation;
     }
 
@@ -164,175 +71,99 @@
         stop(false /* initiatedByClient */);
     }
 
-    @Override
-    public boolean onAcquired(int acquiredInfo, int vendorCode) {
-        // If the dialog is showing, the client doesn't need to receive onAcquired messages.
-        if (mBundle != null) {
-            try {
-                if (acquiredInfo != BiometricConstants.BIOMETRIC_ACQUIRED_GOOD) {
-                    mStatusBarService.onBiometricHelp(getAcquiredString(acquiredInfo, vendorCode));
-                }
-                return false; // acquisition continues
-            } catch (RemoteException e) {
-                Slog.e(getLogTag(), "Remote exception when sending acquired message", e);
-                return true; // client failed
-            } finally {
-                // Good scans will keep the device awake
-                if (acquiredInfo == BiometricConstants.BIOMETRIC_ACQUIRED_GOOD) {
-                    notifyUserActivity();
-                }
-            }
-        } else {
-            return super.onAcquired(acquiredInfo, vendorCode);
-        }
-    }
-
-    @Override
-    public boolean onError(long deviceId, int error, int vendorCode) {
-        if (mDialogDismissed) {
-            // If user cancels authentication, the application has already received the
-            // ERROR_USER_CANCELED message from onDialogDismissed()
-            // and stopped the biometric hardware, so there is no need to send a
-            // ERROR_CANCELED message.
-            return true;
-        }
-        if (mBundle != null && error != BiometricConstants.BIOMETRIC_ERROR_USER_CANCELED) {
-            try {
-                mStatusBarService.onBiometricError(getErrorString(error, vendorCode));
-            } catch (RemoteException e) {
-                Slog.e(getLogTag(), "Remote exception when sending error", e);
-            }
-        }
-        return super.onError(deviceId, error, vendorCode);
-    }
-
-    public void setTitleIfEmpty(CharSequence title) {
-        if (TextUtils.isEmpty(mBundle.getCharSequence(BiometricPrompt.KEY_TITLE))) {
-            mBundle.putCharSequence(BiometricPrompt.KEY_TITLE, title);
-        }
-    }
-
     public boolean isBiometricPrompt() {
-        return mBundle != null;
+        return getCookie() != 0;
     }
 
-    private void notifyClientAuthenticationSucceeded(BiometricAuthenticator.Identifier identifier)
-            throws RemoteException {
-        final BiometricServiceBase.ServiceListener listener = getListener();
-        // Explicitly have if/else here to make it super obvious in case the code is
-        // touched in the future.
-        if (!getIsRestricted()) {
-            listener.onAuthenticationSucceeded(
-                    getHalDeviceId(), identifier, getTargetUserId());
-        } else {
-            listener.onAuthenticationSucceeded(
-                    getHalDeviceId(), null, getTargetUserId());
-        }
-    }
-
-    private void addTokenToKeyStore(ArrayList<Byte> token) {
-        // Send the token to KeyStore
-        final byte[] byteToken = new byte[token.size()];
-        for (int i = 0; i < token.size(); i++) {
-            byteToken[i] = token.get(i);
-        }
-        KeyStore.getInstance().addAuthToken(byteToken);
+    public boolean getRequireConfirmation() {
+        return mRequireConfirmation;
     }
 
     @Override
     public boolean onAuthenticated(BiometricAuthenticator.Identifier identifier,
             boolean authenticated, ArrayList<Byte> token) {
-        if (authenticated) {
-            mAlreadyDone = true;
-            if (mRequireConfirmation) {
-                // Store the token so it can be sent to keystore after the user presses confirm
-                mEscrow = new TokenEscrow(identifier, token);
-            } else {
-                addTokenToKeyStore(token);
-            }
-        }
+        final BiometricServiceBase.ServiceListener listener = getListener();
 
+        mMetricsLogger.action(mMetrics.actionBiometricAuth(), authenticated);
         boolean result = false;
 
-        // If the biometric dialog is showing, notify authentication succeeded
-        if (mBundle != null) {
-            try {
-                if (authenticated) {
-                    mStatusBarService.onBiometricAuthenticated();
-                } else {
-                    mStatusBarService.onBiometricHelp(getContext().getResources().getString(
-                            com.android.internal.R.string.biometric_not_recognized));
+        try {
+            if (authenticated) {
+                mAlreadyDone = true;
+                if (DEBUG) Slog.v(getLogTag(), "onAuthenticated(" + getOwnerString()
+                        + ", ID:" + identifier.getBiometricId()
+                        + ", isBP: " + isBiometricPrompt()
+                        + ", listener: " + listener
+                        + ", requireConfirmation: " + mRequireConfirmation);
+                if (listener != null) {
+                    vibrateSuccess();
                 }
-            } catch (RemoteException e) {
-                Slog.e(getLogTag(), "Failed to notify Authenticated:", e);
-            }
-        }
+                result = true;
+                resetFailedAttempts();
+                onStop();
 
-        final BiometricServiceBase.ServiceListener listener = getListener();
-        if (listener != null) {
-            try {
-                mMetricsLogger.action(mMetrics.actionBiometricAuth(), authenticated);
-                if (!authenticated) {
-                    listener.onAuthenticationFailed(getHalDeviceId());
-                } else {
-                    if (DEBUG) {
-                        Slog.v(getLogTag(), "onAuthenticated(owner=" + getOwnerString()
-                                + ", id=" + identifier.getBiometricId());
-                    }
-                    if (!mRequireConfirmation) {
-                        notifyClientAuthenticationSucceeded(identifier);
-                    }
+                final byte[] byteToken = new byte[token.size()];
+                for (int i = 0; i < token.size(); i++) {
+                    byteToken[i] = token.get(i);
                 }
-            } catch (RemoteException e) {
-                Slog.w(getLogTag(), "Failed to notify Authenticated:", e);
-                result = true; // client failed
-            }
-        } else {
-            result = true; // client not listening
-        }
-        if (!authenticated) {
-            if (listener != null) {
-                vibrateError();
-            }
-            // allow system-defined limit of number of attempts before giving up
-            int lockoutMode =  handleFailedAttempt();
-            if (lockoutMode != LOCKOUT_NONE) {
-                try {
-                    mInLockout = true;
-                    Slog.w(getLogTag(), "Forcing lockout (fp driver code should do this!), mode(" +
-                            lockoutMode + ")");
+                if (isBiometricPrompt() && listener != null) {
+                    // BiometricService will add the token to keystore
+                    listener.onAuthenticationSucceededInternal(mRequireConfirmation, byteToken);
+                } else if (!isBiometricPrompt() && listener != null) {
+                    KeyStore.getInstance().addAuthToken(byteToken);
+                    try {
+                        // Explicitly have if/else here to make it super obvious in case the code is
+                        // touched in the future.
+                        if (!getIsRestricted()) {
+                            listener.onAuthenticationSucceeded(
+                                    getHalDeviceId(), identifier, getTargetUserId());
+                        } else {
+                            listener.onAuthenticationSucceeded(
+                                    getHalDeviceId(), null, getTargetUserId());
+                        }
+                    } catch (RemoteException e) {
+                        Slog.e(getLogTag(), "Remote exception", e);
+                    }
+                } else {
+                    // Client not listening
+                    Slog.w(getLogTag(), "Client not listening");
+                    result = true;
+                }
+            } else {
+                if (listener != null) {
+                    vibrateError();
+                }
+                // Allow system-defined limit of number of attempts before giving up
+                final int lockoutMode = handleFailedAttempt();
+                if (lockoutMode != LOCKOUT_NONE) {
+                    Slog.w(getLogTag(), "Forcing lockout (driver code should do this!), mode("
+                            + lockoutMode + ")");
                     stop(false);
-                    int errorCode = lockoutMode == LOCKOUT_TIMED ?
-                            BiometricConstants.BIOMETRIC_ERROR_LOCKOUT :
-                            BiometricConstants.BIOMETRIC_ERROR_LOCKOUT_PERMANENT;
-
-                    // Send the lockout message to the system dialog
-                    if (mBundle != null) {
-                        mStatusBarService.onBiometricError(
-                                getErrorString(errorCode, 0 /* vendorCode */));
-                        mHandler.postDelayed(() -> {
-                            try {
-                                listener.onError(getHalDeviceId(), errorCode, 0 /* vendorCode */);
-                            } catch (RemoteException e) {
-                                Slog.w(getLogTag(), "RemoteException while sending error");
-                            }
-                        }, BiometricPrompt.HIDE_DIALOG_DELAY);
-                    } else {
-                        listener.onError(getHalDeviceId(), errorCode, 0 /* vendorCode */);
+                    final int errorCode = lockoutMode == LOCKOUT_TIMED
+                            ? BiometricConstants.BIOMETRIC_ERROR_LOCKOUT
+                            : BiometricConstants.BIOMETRIC_ERROR_LOCKOUT_PERMANENT;
+                    if (listener != null) {
+                        listener.onError(getHalDeviceId(), errorCode, 0 /* vendorCode */,
+                                getCookie());
                     }
-                } catch (RemoteException e) {
-                    Slog.w(getLogTag(), "Failed to notify lockout:", e);
+                } else {
+                    // Don't send onAuthenticationFailed if we're in lockout, it causes a
+                    // janky UI on Keyguard/BiometricPrompt since "authentication failed"
+                    // will show briefly and be replaced by "device locked out" message.
+                    if (listener != null) {
+                        if (isBiometricPrompt()) {
+                            listener.onAuthenticationFailedInternal(getCookie(),
+                                    getRequireConfirmation());
+                        } else {
+                            listener.onAuthenticationFailed(getHalDeviceId());
+                        }
+                    }
                 }
+                result |= lockoutMode != LOCKOUT_NONE; // in a lockout mode
             }
-            result |= lockoutMode != LOCKOUT_NONE; // in a lockout mode
-        } else {
-            if (listener != null) {
-                vibrateSuccess();
-            }
-            // we have a valid biometric that doesn't require confirmation, done
-            result |= !mRequireConfirmation;
-            resetFailedAttempts();
-            onStop();
+        } catch (RemoteException e) {
+            Slog.e(getLogTag(), "Remote exception", e);
+            result = true;
         }
         return result;
     }
@@ -353,16 +184,6 @@
                 return result;
             }
             if (DEBUG) Slog.w(getLogTag(), "client " + getOwnerString() + " is authenticating...");
-
-            // If authenticating with system dialog, show the dialog
-            if (mBundle != null) {
-                try {
-                    mStatusBarService.showBiometricDialog(mBundle, mDialogReceiver,
-                            getBiometricType(), mRequireConfirmation, getTargetUserId());
-                } catch (RemoteException e) {
-                    Slog.e(getLogTag(), "Unable to show biometric dialog", e);
-                }
-            }
         } catch (RemoteException e) {
             Slog.e(getLogTag(), "startAuthentication failed", e);
             return ERROR_ESRCH;
@@ -390,18 +211,6 @@
         } catch (RemoteException e) {
             Slog.e(getLogTag(), "stopAuthentication failed", e);
             return ERROR_ESRCH;
-        } finally {
-            // If the user already cancelled authentication (via some interaction with the
-            // dialog, we do not need to hide it since it's already hidden.
-            // If the device is in lockout, don't hide the dialog - it will automatically hide
-            // after BiometricPrompt.HIDE_DIALOG_DELAY
-            if (mBundle != null && !mDialogDismissed && !mInLockout) {
-                try {
-                    mStatusBarService.hideBiometricDialog();
-                } catch (RemoteException e) {
-                    Slog.e(getLogTag(), "Unable to hide biometric dialog", e);
-                }
-            }
         }
 
         mAlreadyCancelled = true;
diff --git a/services/core/java/com/android/server/biometrics/BiometricService.java b/services/core/java/com/android/server/biometrics/BiometricService.java
index 5f09189..add55ea 100644
--- a/services/core/java/com/android/server/biometrics/BiometricService.java
+++ b/services/core/java/com/android/server/biometrics/BiometricService.java
@@ -19,9 +19,17 @@
 import static android.Manifest.permission.USE_BIOMETRIC;
 import static android.Manifest.permission.USE_BIOMETRIC_INTERNAL;
 import static android.Manifest.permission.USE_FINGERPRINT;
+import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_IRIS;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_NONE;
 
 import android.app.ActivityManager;
+import android.app.ActivityTaskManager;
 import android.app.AppOpsManager;
+import android.app.IActivityTaskManager;
+import android.app.TaskStackListener;
 import android.app.UserSwitchObserver;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -32,9 +40,9 @@
 import android.hardware.biometrics.BiometricPrompt;
 import android.hardware.biometrics.BiometricSourceType;
 import android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback;
-import android.hardware.biometrics.IBiometricPromptReceiver;
 import android.hardware.biometrics.IBiometricService;
 import android.hardware.biometrics.IBiometricServiceReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.face.FaceManager;
 import android.hardware.face.IFaceService;
 import android.hardware.fingerprint.FingerprintManager;
@@ -50,14 +58,21 @@
 import android.os.ServiceManager;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.security.KeyStore;
+import android.text.TextUtils;
 import android.util.Pair;
 import android.util.Slog;
 
 import com.android.internal.R;
+import com.android.internal.statusbar.IStatusBarService;
 import com.android.server.SystemService;
 
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.Random;
 
 /**
  * System service that arbitrates the modality for BiometricPrompt to use.
@@ -66,32 +81,10 @@
 
     private static final String TAG = "BiometricService";
 
-    /**
-     * No biometric methods or nothing has been enrolled.
-     * Move/expose these in BiometricPrompt if we ever want to allow applications to "blacklist"
-     * modalities when calling authenticate().
-     */
-    private static final int BIOMETRIC_NONE = 0;
-
-    /**
-     * Constant representing fingerprint.
-     */
-    private static final int BIOMETRIC_FINGERPRINT = 1 << 0;
-
-    /**
-     * Constant representing iris.
-     */
-    private static final int BIOMETRIC_IRIS = 1 << 1;
-
-    /**
-     * Constant representing face.
-     */
-    private static final int BIOMETRIC_FACE = 1 << 2;
-
     private static final int[] FEATURE_ID = {
-            BIOMETRIC_FINGERPRINT,
-            BIOMETRIC_IRIS,
-            BIOMETRIC_FACE
+        TYPE_FINGERPRINT,
+        TYPE_IRIS,
+        TYPE_FACE
     };
 
     private final AppOpsManager mAppOps;
@@ -242,10 +235,367 @@
      */
     private final class BiometricServiceWrapper extends IBiometricService.Stub {
 
+        /**
+         * Authentication either just called and we have not transitioned to the CALLED state, or
+         * authentication terminated (success or error).
+         */
+        private static final int STATE_AUTH_IDLE = 0;
+        /**
+         * Authentication was called and we are waiting for the <Biometric>Services to return their
+         * cookies before starting the hardware and showing the BiometricPrompt.
+         */
+        private static final int STATE_AUTH_CALLED = 1;
+        /**
+         * Authentication started, BiometricPrompt is showing and the hardware is authenticating.
+         */
+        private static final int STATE_AUTH_STARTED = 2;
+        /**
+         * Authentication is paused, waiting for the user to press "try again" button. Since the
+         * try again button requires us to cancel authentication, this represents the state where
+         * ERROR_CANCELED is not received yet.
+         */
+        private static final int STATE_AUTH_PAUSED = 3;
+        /**
+         * Same as above, except the ERROR_CANCELED has been received.
+         */
+        private static final int STATE_AUTH_PAUSED_CANCELED = 4;
+        /**
+         * Authentication is successful, but we're waiting for the user to press "confirm" button.
+         */
+        private static final int STATE_AUTH_PENDING_CONFIRM = 5;
+
+        final class AuthSession {
+            // Map of Authenticator/Cookie pairs. We expect to receive the cookies back from
+            // <Biometric>Services before we can start authenticating. Pairs that have been returned
+            // are moved to mModalitiesMatched.
+            final HashMap<Integer, Integer> mModalitiesWaiting;
+            // Pairs that have been matched.
+            final HashMap<Integer, Integer> mModalitiesMatched = new HashMap<>();
+
+            // The following variables are passed to authenticateInternal, which initiates the
+            // appropriate <Biometric>Services.
+            final IBinder mToken;
+            final long mSessionId;
+            final int mUserId;
+            // Original receiver from BiometricPrompt.
+            final IBiometricServiceReceiver mClientReceiver;
+            final String mOpPackageName;
+            // Info to be shown on BiometricDialog when all cookies are returned.
+            final Bundle mBundle;
+            final int mCallingUid;
+            final int mCallingPid;
+            final int mCallingUserId;
+            // Continue authentication with the same modality/modalities after "try again" is
+            // pressed
+            final int mModality;
+
+            // The current state, which can be either idle, called, or started
+            private int mState = STATE_AUTH_IDLE;
+            // For explicit confirmation, do not send to keystore until the user has confirmed
+            // the authentication.
+            byte[] mTokenEscrow;
+
+            AuthSession(HashMap<Integer, Integer> modalities, IBinder token, long sessionId,
+                    int userId, IBiometricServiceReceiver receiver, String opPackageName,
+                    Bundle bundle, int callingUid, int callingPid, int callingUserId,
+                    int modality) {
+                mModalitiesWaiting = modalities;
+                mToken = token;
+                mSessionId = sessionId;
+                mUserId = userId;
+                mClientReceiver = receiver;
+                mOpPackageName = opPackageName;
+                mBundle = bundle;
+                mCallingUid = callingUid;
+                mCallingPid = callingPid;
+                mCallingUserId = callingUserId;
+                mModality = modality;
+            }
+
+            boolean containsCookie(int cookie) {
+                if (mModalitiesWaiting != null && mModalitiesWaiting.containsValue(cookie)) {
+                    return true;
+                }
+                if (mModalitiesMatched != null && mModalitiesMatched.containsValue(cookie)) {
+                    return true;
+                }
+                return false;
+            }
+        }
+
+        final class BiometricTaskStackListener extends TaskStackListener {
+            @Override
+            public void onTaskStackChanged() {
+                try {
+                    final List<ActivityManager.RunningTaskInfo> runningTasks =
+                            mActivityTaskManager.getTasks(1);
+                    if (!runningTasks.isEmpty()) {
+                        final String topPackage = runningTasks.get(0).topActivity.getPackageName();
+                        if (mCurrentAuthSession != null
+                                && !topPackage.contentEquals(mCurrentAuthSession.mOpPackageName)
+                                && mCurrentAuthSession.mState != STATE_AUTH_STARTED) {
+                            // We only care about this state, since <Biometric>Service will
+                            // cancel any client that's still in STATE_AUTH_STARTED
+                            mStatusBarService.hideBiometricDialog();
+                            mActivityTaskManager.unregisterTaskStackListener(mTaskStackListener);
+                            mCurrentAuthSession.mClientReceiver.onError(
+                                    BiometricConstants.BIOMETRIC_ERROR_CANCELED,
+                                    getContext().getString(
+                                            com.android.internal.R.string.biometric_error_canceled)
+                            );
+                            mCurrentAuthSession.mState = STATE_AUTH_IDLE;
+                            mCurrentAuthSession = null;
+                        }
+                    }
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Unable to get running tasks", e);
+                }
+            }
+        }
+
+        private final IActivityTaskManager mActivityTaskManager = getContext().getSystemService(
+                ActivityTaskManager.class).getService();
+        private final IStatusBarService mStatusBarService = IStatusBarService.Stub.asInterface(
+                ServiceManager.getService(Context.STATUS_BAR_SERVICE));
+        private final BiometricTaskStackListener mTaskStackListener =
+                new BiometricTaskStackListener();
+        private final Random mRandom = new Random();
+
+        // The current authentication session, null if idle/done. We need to track both the current
+        // and pending sessions since errors may be sent to either.
+        private AuthSession mCurrentAuthSession;
+        private AuthSession mPendingAuthSession;
+
+        // Wrap the client's receiver so we can do things with the BiometricDialog first
+        private final IBiometricServiceReceiverInternal mInternalReceiver =
+                new IBiometricServiceReceiverInternal.Stub() {
+            @Override
+            public void onAuthenticationSucceeded(boolean requireConfirmation, byte[] token)
+                    throws RemoteException {
+                try {
+                    if (!requireConfirmation) {
+                        mActivityTaskManager.unregisterTaskStackListener(mTaskStackListener);
+                        KeyStore.getInstance().addAuthToken(token);
+                        mCurrentAuthSession.mClientReceiver.onAuthenticationSucceeded();
+                        mCurrentAuthSession.mState = STATE_AUTH_IDLE;
+                        mCurrentAuthSession = null;
+                    } else {
+                        // Store the auth token and submit it to keystore after the confirmation
+                        // button has been pressed.
+                        mCurrentAuthSession.mTokenEscrow = token;
+                        mCurrentAuthSession.mState = STATE_AUTH_PENDING_CONFIRM;
+                    }
+
+                    // Notify SysUI that the biometric has been authenticated. SysUI already knows
+                    // the implicit/explicit state and will react accordingly.
+                    mStatusBarService.onBiometricAuthenticated();
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Remote exception", e);
+                }
+            }
+
+            @Override
+            public void onAuthenticationFailed(int cookie, boolean requireConfirmation)
+                    throws RemoteException {
+                try {
+                    mStatusBarService.onBiometricHelp(getContext().getResources().getString(
+                            com.android.internal.R.string.biometric_not_recognized));
+                    if (requireConfirmation) {
+                        mCurrentAuthSession.mState = STATE_AUTH_PAUSED;
+                        mStatusBarService.showBiometricTryAgain();
+                        // Cancel authentication. Skip the token/package check since we are
+                        // cancelling from system server. The interface is permission protected so
+                        // this is fine.
+                        cancelInternal(null /* token */, null /* package */,
+                                false /* fromClient */);
+                    }
+                    mCurrentAuthSession.mClientReceiver.onAuthenticationFailed();
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Remote exception", e);
+                }
+            }
+
+            @Override
+            public void onError(int cookie, int error, String message) throws RemoteException {
+                Slog.d(TAG, "Error: " + error + " cookie: " + cookie);
+                // Errors can either be from the current auth session or the pending auth session.
+                // The pending auth session may receive errors such as ERROR_LOCKOUT before
+                // it becomes the current auth session. Similarly, the current auth session may
+                // receive errors such as ERROR_CANCELED while the pending auth session is preparing
+                // to be started. Thus we must match error messages with their cookies to be sure
+                // of their intended receivers.
+                try {
+                    if (mCurrentAuthSession != null && mCurrentAuthSession.containsCookie(cookie)) {
+                        if (mCurrentAuthSession.mState == STATE_AUTH_STARTED) {
+                            mStatusBarService.onBiometricError(message);
+                            mActivityTaskManager.unregisterTaskStackListener(mTaskStackListener);
+                            if (error == BiometricConstants.BIOMETRIC_ERROR_CANCELED) {
+                                    mCurrentAuthSession.mClientReceiver.onError(error, message);
+                                    mCurrentAuthSession.mState = STATE_AUTH_IDLE;
+                                    mCurrentAuthSession = null;
+                                    mStatusBarService.hideBiometricDialog();
+                            } else {
+                                // Send errors after the dialog is dismissed.
+                                mHandler.postDelayed(() -> {
+                                    try {
+                                        mCurrentAuthSession.mClientReceiver.onError(error, message);
+                                        mCurrentAuthSession.mState = STATE_AUTH_IDLE;
+                                        mCurrentAuthSession = null;
+                                    } catch (RemoteException e) {
+                                        Slog.e(TAG, "Remote exception", e);
+                                    }
+                                }, BiometricPrompt.HIDE_DIALOG_DELAY);
+                            }
+                        } else if (mCurrentAuthSession.mState == STATE_AUTH_PAUSED
+                                || mCurrentAuthSession.mState == STATE_AUTH_PAUSED_CANCELED) {
+                            if (mCurrentAuthSession.mState == STATE_AUTH_PAUSED
+                                    && error == BiometricConstants.BIOMETRIC_ERROR_CANCELED) {
+                                // Skip the first ERROR_CANCELED message when this happens, since
+                                // "try again" requires us to cancel authentication but keep
+                                // the prompt showing.
+                                mCurrentAuthSession.mState = STATE_AUTH_PAUSED_CANCELED;
+                            } else {
+                                // In the "try again" state, we should forward canceled errors to
+                                // the client and and clean up.
+                                mCurrentAuthSession.mClientReceiver.onError(error, message);
+                                mStatusBarService.onBiometricError(message);
+                                mActivityTaskManager.unregisterTaskStackListener(
+                                        mTaskStackListener);
+                                mCurrentAuthSession.mState = STATE_AUTH_IDLE;
+                                mCurrentAuthSession = null;
+                            }
+                        } else {
+                            Slog.e(TAG, "Impossible session error state: "
+                                    + mCurrentAuthSession.mState);
+                        }
+                    } else if (mPendingAuthSession != null
+                            && mPendingAuthSession.containsCookie(cookie)) {
+                        if (mPendingAuthSession.mState == STATE_AUTH_CALLED) {
+                            mPendingAuthSession.mClientReceiver.onError(error, message);
+                            mPendingAuthSession.mState = STATE_AUTH_IDLE;
+                            mPendingAuthSession = null;
+                        } else {
+                            Slog.e(TAG, "Impossible pending session error state: "
+                                    + mPendingAuthSession.mState);
+                        }
+                    }
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Remote exception", e);
+                }
+            }
+
+            @Override
+            public void onAcquired(int acquiredInfo, String message) throws RemoteException {
+                if (acquiredInfo != BiometricConstants.BIOMETRIC_ACQUIRED_GOOD) {
+                    try {
+                        mStatusBarService.onBiometricHelp(message);
+                    } catch (RemoteException e) {
+                        Slog.e(TAG, "Remote exception", e);
+                    }
+                }
+            }
+
+            @Override
+            public void onDialogDismissed(int reason) throws RemoteException {
+                if (reason != BiometricPrompt.DISMISSED_REASON_POSITIVE) {
+                    // Positive button is used by passive modalities as a "confirm" button,
+                    // do not send to client
+                    mCurrentAuthSession.mClientReceiver.onDialogDismissed(reason);
+                    // Cancel authentication. Skip the token/package check since we are cancelling
+                    // from system server. The interface is permission protected so this is fine.
+                    cancelInternal(null /* token */, null /* package */, false /* fromClient */);
+                }
+                if (reason == BiometricPrompt.DISMISSED_REASON_USER_CANCEL) {
+                    mCurrentAuthSession.mClientReceiver.onError(
+                            BiometricConstants.BIOMETRIC_ERROR_USER_CANCELED,
+                            getContext().getString(
+                                    com.android.internal.R.string.biometric_error_user_canceled));
+                } else if (reason == BiometricPrompt.DISMISSED_REASON_POSITIVE) {
+                    // Have the service send the token to KeyStore, and send onAuthenticated
+                    // to the application
+                    KeyStore.getInstance().addAuthToken(mCurrentAuthSession.mTokenEscrow);
+                    mCurrentAuthSession.mClientReceiver.onAuthenticationSucceeded();
+                }
+                mActivityTaskManager.unregisterTaskStackListener(mTaskStackListener);
+                mCurrentAuthSession.mState = STATE_AUTH_IDLE;
+                mCurrentAuthSession = null;
+            }
+
+            @Override
+            public void onTryAgainPressed() {
+                Slog.d(TAG, "onTryAgainPressed");
+                // No need to check permission, since it can only be invoked by SystemUI
+                // (or system server itself).
+                mHandler.post(() -> {
+                    authenticateInternal(mCurrentAuthSession.mToken,
+                            mCurrentAuthSession.mSessionId,
+                            mCurrentAuthSession.mUserId,
+                            mCurrentAuthSession.mClientReceiver,
+                            mCurrentAuthSession.mOpPackageName,
+                            mCurrentAuthSession.mBundle,
+                            mCurrentAuthSession.mCallingUid,
+                            mCurrentAuthSession.mCallingPid,
+                            mCurrentAuthSession.mCallingUserId,
+                            mCurrentAuthSession.mModality);
+                });
+            }
+        };
+
+        @Override // Binder call
+        public void onReadyForAuthentication(int cookie, boolean requireConfirmation, int userId) {
+            checkInternalPermission();
+
+            Iterator it = mPendingAuthSession.mModalitiesWaiting.entrySet().iterator();
+            while (it.hasNext()) {
+                Map.Entry<Integer, Integer> pair = (Map.Entry) it.next();
+                if (pair.getValue() == cookie) {
+                    mPendingAuthSession.mModalitiesMatched.put(pair.getKey(), pair.getValue());
+                    mPendingAuthSession.mModalitiesWaiting.remove(pair.getKey());
+                    Slog.d(TAG, "Matched cookie: " + cookie + ", "
+                            + mPendingAuthSession.mModalitiesWaiting.size() + " remaining");
+                    break;
+                }
+            }
+
+            if (mPendingAuthSession.mModalitiesWaiting.isEmpty()) {
+                final boolean mContinuing = mCurrentAuthSession != null
+                        && mCurrentAuthSession.mState == STATE_AUTH_PAUSED;
+                mCurrentAuthSession = mPendingAuthSession;
+                mPendingAuthSession = null;
+
+                mCurrentAuthSession.mState = STATE_AUTH_STARTED;
+                try {
+                    int modality = TYPE_NONE;
+                    it = mCurrentAuthSession.mModalitiesMatched.entrySet().iterator();
+                    while (it.hasNext()) {
+                        Map.Entry<Integer, Integer> pair = (Map.Entry) it.next();
+                        if (pair.getKey() == TYPE_FINGERPRINT) {
+                            mFingerprintService.startPreparedClient(pair.getValue());
+                        } else if (pair.getKey() == TYPE_IRIS) {
+                            Slog.e(TAG, "Iris unsupported");
+                        } else if (pair.getKey() == TYPE_FACE) {
+                            mFaceService.startPreparedClient(pair.getValue());
+                        } else {
+                            Slog.e(TAG, "Unknown modality: " + pair.getKey());
+                        }
+                        modality |= pair.getKey();
+                    }
+
+                    if (!mContinuing) {
+                        mStatusBarService.showBiometricDialog(mCurrentAuthSession.mBundle,
+                                mInternalReceiver, modality, requireConfirmation, userId);
+                        mActivityTaskManager.registerTaskStackListener(mTaskStackListener);
+                    }
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Remote exception", e);
+                }
+            }
+        }
+
         @Override // Binder call
         public void authenticate(IBinder token, long sessionId, int userId,
-                IBiometricServiceReceiver receiver, int flags, String opPackageName,
-                Bundle bundle, IBiometricPromptReceiver dialogReceiver) throws RemoteException {
+                IBiometricServiceReceiver receiver, String opPackageName, Bundle bundle)
+                throws RemoteException {
             final int callingUid = Binder.getCallingUid();
             final int callingPid = Binder.getCallingPid();
             final int callingUserId = UserHandle.getCallingUserId();
@@ -261,16 +611,45 @@
                 checkInternalPermission();
             }
 
-            if (token == null || receiver == null || opPackageName == null || bundle == null
-                    || dialogReceiver == null) {
+            if (token == null || receiver == null || opPackageName == null || bundle == null) {
                 Slog.e(TAG, "Unable to authenticate, one or more null arguments");
                 return;
             }
 
             // Check the usage of this in system server. Need to remove this check if it becomes
             // a public API.
-            if (bundle.getBoolean(BiometricPrompt.KEY_USE_DEFAULT_TITLE, false)) {
+            final boolean useDefaultTitle =
+                    bundle.getBoolean(BiometricPrompt.KEY_USE_DEFAULT_TITLE, false);
+            if (useDefaultTitle) {
                 checkInternalPermission();
+                // Set the default title if necessary
+                try {
+                    if (useDefaultTitle) {
+                        final List<ActivityManager.RunningAppProcessInfo> procs =
+                                ActivityManager.getService().getRunningAppProcesses();
+                        for (int i = 0; i < procs.size(); i++) {
+                            final ActivityManager.RunningAppProcessInfo info = procs.get(i);
+                            if (info.uid == callingUid
+                                    && info.importance == IMPORTANCE_FOREGROUND) {
+                                PackageManager pm = getContext().getPackageManager();
+                                final CharSequence label = pm.getApplicationLabel(
+                                        pm.getApplicationInfo(info.processName,
+                                                PackageManager.GET_META_DATA));
+                                final String title = getContext()
+                                        .getString(R.string.biometric_dialog_default_title, label);
+                                if (TextUtils.isEmpty(
+                                        bundle.getCharSequence(BiometricPrompt.KEY_TITLE))) {
+                                    bundle.putCharSequence(BiometricPrompt.KEY_TITLE, title);
+                                }
+                                break;
+                            }
+                        }
+                    }
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Remote exception", e);
+                } catch (PackageManager.NameNotFoundException e) {
+                    Slog.e(TAG, "Name not found", e);
+                }
             }
 
             mHandler.post(() -> {
@@ -285,13 +664,13 @@
                                 getContext().getString(R.string.biometric_error_hw_unavailable);
                         switch (error) {
                             case BiometricConstants.BIOMETRIC_ERROR_HW_NOT_PRESENT:
-                                receiver.onError(0 /* deviceId */, error, hardwareUnavailable);
+                                receiver.onError(error, hardwareUnavailable);
                                 break;
                             case BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE:
-                                receiver.onError(0 /* deviceId */, error, hardwareUnavailable);
+                                receiver.onError(error, hardwareUnavailable);
                                 break;
                             case BiometricConstants.BIOMETRIC_ERROR_NO_BIOMETRICS:
-                                receiver.onError(0 /* deviceId */, error,
+                                receiver.onError(error,
                                         getErrorString(modality, error, 0 /* vendorCode */));
                                 break;
                             default:
@@ -304,60 +683,91 @@
                     return;
                 }
 
-                // Actually start authentication
                 mCurrentModality = modality;
-                try {
-                    // No polymorphism :(
-                    if (mCurrentModality == BIOMETRIC_FINGERPRINT) {
-                        mFingerprintService.authenticateFromService(token, sessionId, userId,
-                                receiver, flags, opPackageName, bundle, dialogReceiver,
-                                callingUid, callingPid, callingUserId);
-                    } else if (mCurrentModality == BIOMETRIC_IRIS) {
-                        Slog.w(TAG, "Unsupported modality");
-                    } else if (mCurrentModality == BIOMETRIC_FACE) {
-                        mFaceService.authenticateFromService(true /* requireConfirmation */,
-                                token, sessionId, userId, receiver, flags, opPackageName,
-                                bundle, dialogReceiver, callingUid, callingPid, callingUserId);
-                    } else {
-                        Slog.w(TAG, "Unsupported modality");
-                    }
-                } catch (RemoteException e) {
-                    Slog.e(TAG, "Unable to start authentication", e);
-                }
+
+                // Actually start authentication
+                authenticateInternal(token, sessionId, userId, receiver, opPackageName, bundle,
+                        callingUid, callingPid, callingUserId, modality);
             });
         }
 
+        /**
+         * authenticate() (above) which is called from BiometricPrompt determines which
+         * modality/modalities to start authenticating with. authenticateInternal() should only be
+         * used for:
+         * 1) Preparing <Biometric>Services for authentication when BiometricPrompt#authenticate is,
+         *    invoked, shortly after which BiometricPrompt is shown and authentication starts
+         * 2) Preparing <Biometric>Services for authentication when BiometricPrompt is already shown
+         *    and the user has pressed "try again"
+         */
+        private void authenticateInternal(IBinder token, long sessionId, int userId,
+                IBiometricServiceReceiver receiver, String opPackageName, Bundle bundle,
+                int callingUid, int callingPid, int callingUserId, int modality) {
+            try {
+                // Generate random cookies to pass to the services that should prepare to start
+                // authenticating. Store the cookie here and wait for all services to "ack"
+                // with the cookie. Once all cookies are received, we can show the prompt
+                // and let the services start authenticating. The cookie should be non-zero.
+                final int cookie = mRandom.nextInt(Integer.MAX_VALUE - 1) + 1;
+                Slog.d(TAG, "Creating auth session. Modality: " + modality
+                        + ", cookie: " + cookie);
+                final HashMap<Integer, Integer> authenticators = new HashMap<>();
+                authenticators.put(modality, cookie);
+                mPendingAuthSession = new AuthSession(authenticators, token, sessionId, userId,
+                        receiver, opPackageName, bundle, callingUid, callingPid, callingUserId,
+                        modality);
+                mPendingAuthSession.mState = STATE_AUTH_CALLED;
+                // No polymorphism :(
+                if ((modality & TYPE_FINGERPRINT) != 0) {
+                    mFingerprintService.prepareForAuthentication(token, sessionId, userId,
+                            mInternalReceiver, opPackageName, cookie,
+                            callingUid, callingPid, callingUserId);
+                }
+                if ((modality & TYPE_IRIS) != 0) {
+                    Slog.w(TAG, "Iris unsupported");
+                }
+                if ((modality & TYPE_FACE) != 0) {
+                    mFaceService.prepareForAuthentication(true /* requireConfirmation */,
+                            token, sessionId, userId, mInternalReceiver, opPackageName,
+                            cookie, callingUid, callingPid, callingUserId);
+                }
+            } catch (RemoteException e) {
+                Slog.e(TAG, "Unable to start authentication", e);
+            }
+        }
+
         @Override // Binder call
         public void cancelAuthentication(IBinder token, String opPackageName)
                 throws RemoteException {
             checkPermission();
-
             if (token == null || opPackageName == null) {
                 Slog.e(TAG, "Unable to cancel, one or more null arguments");
                 return;
             }
 
-            final int callingUid = Binder.getCallingUid();
-            final int callingPid = Binder.getCallingPid();
-            final int callingUserId = UserHandle.getCallingUserId();
+            // We need to check the current authenticators state. If we're pending confirm
+            // or idle, we need to dismiss the dialog and send an ERROR_CANCELED to the client,
+            // since we won't be getting an onError from the driver.
+            if (mCurrentAuthSession != null && mCurrentAuthSession.mState != STATE_AUTH_STARTED) {
+                mHandler.post(() -> {
+                    try {
+                        // Send error to client
+                        mCurrentAuthSession.mClientReceiver.onError(
+                                BiometricConstants.BIOMETRIC_ERROR_CANCELED,
+                                getContext().getString(
+                                        com.android.internal.R.string.biometric_error_user_canceled)
+                        );
 
-            mHandler.post(() -> {
-                try {
-                    if (mCurrentModality == BIOMETRIC_FINGERPRINT) {
-                        mFingerprintService.cancelAuthenticationFromService(token, opPackageName,
-                                callingUid, callingPid, callingUserId);
-                    } else if (mCurrentModality == BIOMETRIC_IRIS) {
-                        Slog.w(TAG, "Unsupported modality");
-                    } else if (mCurrentModality == BIOMETRIC_FACE) {
-                        mFaceService.cancelAuthenticationFromService(token, opPackageName,
-                                callingUid, callingPid, callingUserId);
-                    } else {
-                        Slog.w(TAG, "Unsupported modality");
+                        mCurrentAuthSession.mState = STATE_AUTH_IDLE;
+                        mCurrentAuthSession = null;
+                        mStatusBarService.hideBiometricDialog();
+                    } catch (RemoteException e) {
+                        Slog.e(TAG, "Remote exception", e);
                     }
-                } catch (RemoteException e) {
-                    Slog.e(TAG, "Unable to cancel authentication");
-                }
-            });
+                });
+            } else {
+                cancelInternal(token, opPackageName, true /* fromClient */);
+            }
         }
 
         @Override // Binder call
@@ -402,6 +812,31 @@
                 Binder.restoreCallingIdentity(ident);
             }
         }
+
+        void cancelInternal(IBinder token, String opPackageName, boolean fromClient) {
+            final int callingUid = Binder.getCallingUid();
+            final int callingPid = Binder.getCallingPid();
+            final int callingUserId = UserHandle.getCallingUserId();
+            mHandler.post(() -> {
+                try {
+                    // TODO: For multiple modalities, send a single ERROR_CANCELED only when all
+                    // drivers have canceled authentication.
+                    if ((mCurrentModality & TYPE_FINGERPRINT) != 0) {
+                        mFingerprintService.cancelAuthenticationFromService(token, opPackageName,
+                                callingUid, callingPid, callingUserId, fromClient);
+                    }
+                    if ((mCurrentModality & TYPE_IRIS) != 0) {
+                        Slog.w(TAG, "Iris unsupported");
+                    }
+                    if ((mCurrentModality & TYPE_FACE) != 0) {
+                        mFaceService.cancelAuthenticationFromService(token, opPackageName,
+                                callingUid, callingPid, callingUserId, fromClient);
+                    }
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Unable to cancel authentication");
+                }
+            });
+        }
     }
 
     private void checkAppOp(String opPackageName, int callingUid) {
@@ -413,7 +848,7 @@
     }
 
     private void checkInternalPermission() {
-        getContext().enforceCallingPermission(USE_BIOMETRIC_INTERNAL,
+        getContext().enforceCallingOrSelfPermission(USE_BIOMETRIC_INTERNAL,
                 "Must have USE_BIOMETRIC_INTERNAL permission");
     }
 
@@ -490,16 +925,19 @@
      * returns errors through the callback (no biometric feature, hardware not detected, no
      * templates enrolled, etc). This service must not start authentication if errors are sent.
      *
-     * @Returns A pair [Modality, Error] with Modality being one of {@link #BIOMETRIC_NONE},
-     * {@link #BIOMETRIC_FINGERPRINT}, {@link #BIOMETRIC_IRIS}, {@link #BIOMETRIC_FACE}
+     * @Returns A pair [Modality, Error] with Modality being one of
+     * {@link BiometricAuthenticator#TYPE_NONE},
+     * {@link BiometricAuthenticator#TYPE_FINGERPRINT},
+     * {@link BiometricAuthenticator#TYPE_IRIS},
+     * {@link BiometricAuthenticator#TYPE_FACE}
      * and the error containing one of the {@link BiometricConstants} errors.
      */
     private Pair<Integer, Integer> checkAndGetBiometricModality(int callingUid) {
-        int modality = BIOMETRIC_NONE;
+        int modality = TYPE_NONE;
 
         // No biometric features, send error
         if (mAuthenticators.isEmpty()) {
-            return new Pair<>(BIOMETRIC_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_NOT_PRESENT);
+            return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_NOT_PRESENT);
         }
 
         // Assuming that authenticators are listed in priority-order, the rest of this function
@@ -512,13 +950,13 @@
         boolean hasTemplatesEnrolled = false;
         boolean enabledForApps = false;
 
-        int firstHwAvailable = BIOMETRIC_NONE;
+        int firstHwAvailable = TYPE_NONE;
         for (int i = 0; i < mAuthenticators.size(); i++) {
             modality = mAuthenticators.get(i).getType();
             BiometricAuthenticator authenticator = mAuthenticators.get(i).getAuthenticator();
             if (authenticator.isHardwareDetected()) {
                 isHardwareDetected = true;
-                if (firstHwAvailable == BIOMETRIC_NONE) {
+                if (firstHwAvailable == TYPE_NONE) {
                     // Store the first one since we want to return the error in correct priority
                     // order.
                     firstHwAvailable = modality;
@@ -538,13 +976,13 @@
 
         // Check error conditions
         if (!isHardwareDetected) {
-            return new Pair<>(BIOMETRIC_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+            return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
         } else if (!hasTemplatesEnrolled) {
             // Return the modality here so the correct error string can be sent. This error is
             // preferred over !enabledForApps
             return new Pair<>(firstHwAvailable, BiometricConstants.BIOMETRIC_ERROR_NO_BIOMETRICS);
         } else if (!enabledForApps) {
-            return new Pair<>(BIOMETRIC_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+            return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
         }
 
         return new Pair<>(modality, BiometricConstants.BIOMETRIC_SUCCESS);
@@ -552,11 +990,11 @@
 
     private boolean isEnabledForApp(int modality) {
         switch(modality) {
-            case BIOMETRIC_FINGERPRINT:
+            case TYPE_FINGERPRINT:
                 return true;
-            case BIOMETRIC_IRIS:
+            case TYPE_IRIS:
                 return true;
-            case BIOMETRIC_FACE:
+            case TYPE_FACE:
                 return mSettingObserver.getFaceEnabledForApps();
             default:
                 Slog.w(TAG, "Unsupported modality: " + modality);
@@ -566,12 +1004,12 @@
 
     private String getErrorString(int type, int error, int vendorCode) {
         switch (type) {
-            case BIOMETRIC_FINGERPRINT:
+            case TYPE_FINGERPRINT:
                 return FingerprintManager.getErrorString(getContext(), error, vendorCode);
-            case BIOMETRIC_IRIS:
+            case TYPE_IRIS:
                 Slog.w(TAG, "Modality not supported");
                 return null; // not supported
-            case BIOMETRIC_FACE:
+            case TYPE_FACE:
                 return FaceManager.getErrorString(getContext(), error, vendorCode);
             default:
                 Slog.w(TAG, "Unable to get error string for modality: " + type);
@@ -581,12 +1019,12 @@
 
     private BiometricAuthenticator getAuthenticator(int type) {
         switch (type) {
-            case BIOMETRIC_FINGERPRINT:
+            case TYPE_FINGERPRINT:
                 return (FingerprintManager)
                         getContext().getSystemService(Context.FINGERPRINT_SERVICE);
-            case BIOMETRIC_IRIS:
+            case TYPE_IRIS:
                 return null;
-            case BIOMETRIC_FACE:
+            case TYPE_FACE:
                 return (FaceManager)
                         getContext().getSystemService(Context.FACE_SERVICE);
             default:
@@ -596,11 +1034,11 @@
 
     private boolean hasFeature(int type) {
         switch (type) {
-            case BIOMETRIC_FINGERPRINT:
+            case TYPE_FINGERPRINT:
                 return mHasFeatureFingerprint;
-            case BIOMETRIC_IRIS:
+            case TYPE_IRIS:
                 return mHasFeatureIris;
-            case BIOMETRIC_FACE:
+            case TYPE_FACE:
                 return mHasFeatureFace;
             default:
                 return false;
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
index 74d742a..9649ccd 100644
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
@@ -16,7 +16,6 @@
 
 package com.android.server.biometrics;
 
-import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
 import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND_SERVICE;
 
 import android.app.ActivityManager;
@@ -36,8 +35,9 @@
 import android.content.pm.UserInfo;
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
-import android.hardware.biometrics.IBiometricPromptReceiver;
+import android.hardware.biometrics.IBiometricService;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.fingerprint.Fingerprint;
 import android.os.Binder;
 import android.os.Bundle;
@@ -56,7 +56,6 @@
 import android.util.SparseBooleanArray;
 import android.util.SparseIntArray;
 
-import com.android.internal.R;
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.statusbar.IStatusBarService;
 import com.android.server.SystemService;
@@ -106,6 +105,7 @@
     protected final AppOpsManager mAppOps;
     protected final H mHandler = new H();
 
+    private IBiometricService mBiometricService;
     private ClientMonitor mCurrentClient;
     private ClientMonitor mPendingClient;
     private PerformanceStats mPerformanceStats;
@@ -223,12 +223,9 @@
 
         public AuthenticationClientImpl(Context context, DaemonWrapper daemon, long halDeviceId,
                 IBinder token, ServiceListener listener, int targetUserId, int groupId, long opId,
-                boolean restricted, String owner, Bundle bundle,
-                IBiometricPromptReceiver dialogReceiver,
-                IStatusBarService statusBarService, boolean requireConfirmation) {
-            super(context, getMetrics(), daemon, halDeviceId, token, listener,
-                    targetUserId, groupId, opId, restricted, owner, bundle, dialogReceiver,
-                    statusBarService, requireConfirmation);
+                boolean restricted, String owner, int cookie, boolean requireConfirmation) {
+            super(context, getMetrics(), daemon, halDeviceId, token, listener, targetUserId,
+                    groupId, opId, restricted, owner, cookie, requireConfirmation);
         }
 
         @Override
@@ -279,11 +276,6 @@
             }
             return AuthenticationClient.LOCKOUT_NONE;
         }
-
-        @Override
-        public void onAuthenticationConfirmed() {
-            removeClient(mCurrentClient);
-        }
     }
 
     protected class EnrollClientImpl extends EnrollClient {
@@ -345,18 +337,28 @@
         default void onEnrollResult(BiometricAuthenticator.Identifier identifier,
                 int remaining) throws RemoteException {};
 
-        void onAcquired(long deviceId, int acquiredInfo, int vendorCode)
-                throws RemoteException;
+        void onAcquired(long deviceId, int acquiredInfo, int vendorCode) throws RemoteException;
 
-        void onAuthenticationSucceeded(long deviceId,
-                BiometricAuthenticator.Identifier biometric, int userId)
-                throws RemoteException;
+        default void onAuthenticationSucceeded(long deviceId,
+                BiometricAuthenticator.Identifier biometric, int userId) throws RemoteException {
+            throw new UnsupportedOperationException("Stub!");
+        }
 
-        void onAuthenticationFailed(long deviceId)
-                throws RemoteException;
+        default void onAuthenticationSucceededInternal(boolean requireConfirmation, byte[] token)
+                throws RemoteException {
+            throw new UnsupportedOperationException("Stub!");
+        }
 
-        void onError(long deviceId, int error, int vendorCode)
-                throws RemoteException;
+        default void onAuthenticationFailed(long deviceId) throws RemoteException {
+            throw new UnsupportedOperationException("Stub!");
+        }
+
+        default void onAuthenticationFailedInternal(int cookie, boolean requireConfirmation)
+                throws RemoteException {
+            throw new UnsupportedOperationException("Stub!");
+        }
+
+        void onError(long deviceId, int error, int vendorCode, int cookie) throws RemoteException;
 
         default void onRemoved(BiometricAuthenticator.Identifier identifier,
                 int remaining) throws RemoteException {};
@@ -366,6 +368,37 @@
     }
 
     /**
+     * Wraps the callback interface from Service -> BiometricPrompt
+     */
+    protected abstract class BiometricServiceListener implements ServiceListener {
+        private IBiometricServiceReceiverInternal mWrapperReceiver;
+
+        public BiometricServiceListener(IBiometricServiceReceiverInternal wrapperReceiver) {
+            mWrapperReceiver = wrapperReceiver;
+        }
+
+        public IBiometricServiceReceiverInternal getWrapperReceiver() {
+            return mWrapperReceiver;
+        }
+
+        @Override
+        public void onAuthenticationSucceededInternal(boolean requireConfirmation, byte[] token)
+                throws RemoteException {
+            if (getWrapperReceiver() != null) {
+                getWrapperReceiver().onAuthenticationSucceeded(requireConfirmation, token);
+            }
+        }
+
+        @Override
+        public void onAuthenticationFailedInternal(int cookie, boolean requireConfirmation)
+                throws RemoteException {
+            if (getWrapperReceiver() != null) {
+                getWrapperReceiver().onAuthenticationFailed(cookie, requireConfirmation);
+            }
+        }
+    }
+
+    /**
      * Wraps a portion of the interface from Service -> Daemon that is used by the ClientMonitor
      * subclasses.
      */
@@ -706,30 +739,6 @@
         }
 
         mHandler.post(() -> {
-            if (client.isBiometricPrompt()) {
-                try {
-                    final List<ActivityManager.RunningAppProcessInfo> procs =
-                            ActivityManager.getService().getRunningAppProcesses();
-                    for (int i = 0; i < procs.size(); i++) {
-                        final ActivityManager.RunningAppProcessInfo info = procs.get(i);
-                        if (info.uid == callingUid && info.importance == IMPORTANCE_FOREGROUND) {
-                            PackageManager pm = getContext().getPackageManager();
-                            final CharSequence label = pm.getApplicationLabel(
-                                    pm.getApplicationInfo(info.processName,
-                                            PackageManager.GET_META_DATA));
-                            final String title = getContext()
-                                    .getString(R.string.biometric_dialog_default_title, label);
-                            client.setTitleIfEmpty(title);
-                            break;
-                        }
-                    }
-                } catch (RemoteException e) {
-                    Slog.e(getTag(), "Unable to get application name", e);
-                } catch (PackageManager.NameNotFoundException e) {
-                    Slog.e(getTag(), "Unable to get application name", e);
-                }
-            }
-
             mMetricsLogger.histogram(getMetrics().tagAuthToken(), opId != 0L ? 1 : 0);
 
             // Get performance stats object for this user.
@@ -751,29 +760,37 @@
         final int callingUid = Binder.getCallingUid();
         final int callingPid = Binder.getCallingPid();
         final int callingUserId = UserHandle.getCallingUserId();
-        cancelAuthenticationInternal(token, opPackageName, callingUid, callingPid, callingUserId);
+        cancelAuthenticationInternal(token, opPackageName, callingUid, callingPid, callingUserId,
+                true /* fromClient */);
     }
 
     protected void cancelAuthenticationInternal(final IBinder token, final String opPackageName,
-            int callingUid, int callingPid, int callingUserId) {
-        if (!canUseBiometric(opPackageName, true /* foregroundOnly */, callingUid, callingPid,
-                callingUserId)) {
-            if (DEBUG) Slog.v(getTag(), "cancelAuthentication(): reject " + opPackageName);
-            return;
+            int callingUid, int callingPid, int callingUserId, boolean fromClient) {
+        if (fromClient) {
+            // Only check this if cancel was called from the client (app). If cancel was called
+            // from BiometricService, it means the dialog was dismissed due to user interaction.
+            if (!canUseBiometric(opPackageName, true /* foregroundOnly */, callingUid, callingPid,
+                    callingUserId)) {
+                if (DEBUG) Slog.v(getTag(), "cancelAuthentication(): reject " + opPackageName);
+                return;
+            }
         }
 
         mHandler.post(() -> {
             ClientMonitor client = mCurrentClient;
             if (client instanceof AuthenticationClient) {
-                if (client.getToken() == token) {
-                    if (DEBUG) Slog.v(getTag(), "stop client " + client.getOwnerString());
+                if (client.getToken() == token || !fromClient) {
+                    if (DEBUG) Slog.v(getTag(), "Stopping client " + client.getOwnerString()
+                            + ", fromClient: " + fromClient);
+                    // If cancel was from BiometricService, it means the dialog was dismissed
+                    // and authentication should be canceled.
                     client.stop(client.getToken() == token);
                 } else {
-                    if (DEBUG) Slog.v(getTag(), "can't stop client "
-                            + client.getOwnerString() + " since tokens don't match");
+                    if (DEBUG) Slog.v(getTag(), "Can't stop client " + client.getOwnerString()
+                            + " since tokens don't match. fromClient: " + fromClient);
                 }
             } else if (client != null) {
-                if (DEBUG) Slog.v(getTag(), "can't cancel non-authenticating client "
+                if (DEBUG) Slog.v(getTag(), "Can't cancel non-authenticating client "
                         + client.getOwnerString());
             }
         });
@@ -805,8 +822,7 @@
 
         int lockoutMode = getLockoutMode();
         if (lockoutMode != AuthenticationClient.LOCKOUT_NONE) {
-            Slog.v(getTag(), "In lockout mode(" + lockoutMode +
-                    ") ; disallowing authentication");
+            Slog.v(getTag(), "In lockout mode(" + lockoutMode + ") ; disallowing authentication");
             int errorCode = lockoutMode == AuthenticationClient.LOCKOUT_TIMED ?
                     BiometricConstants.BIOMETRIC_ERROR_LOCKOUT :
                     BiometricConstants.BIOMETRIC_ERROR_LOCKOUT_PERMANENT;
@@ -919,7 +935,6 @@
         if (currentClient != null) {
             if (DEBUG) Slog.v(getTag(), "request stop current client " +
                     currentClient.getOwnerString());
-
             // This check only matters for FingerprintService, since enumerate may call back
             // multiple times.
             if (currentClient instanceof FingerprintService.EnumerateClientImpl ||
@@ -940,17 +955,51 @@
             mHandler.removeCallbacks(mResetClientState);
             mHandler.postDelayed(mResetClientState, CANCEL_TIMEOUT_LIMIT);
         } else if (newClient != null) {
-            mCurrentClient = newClient;
-            if (DEBUG) Slog.v(getTag(), "starting client "
-                    + newClient.getClass().getSuperclass().getSimpleName()
-                    + "(" + newClient.getOwnerString() + ")"
-                    + ", initiatedByClient = " + initiatedByClient);
-            notifyClientActiveCallbacks(true);
+            // For BiometricPrompt clients, do not start until
+            // <Biometric>Service#startPreparedClient is called. BiometricService waits until all
+            // modalities are ready before initiating authentication.
+            if (newClient instanceof AuthenticationClient) {
+                AuthenticationClient client = (AuthenticationClient) newClient;
+                if (client.isBiometricPrompt()) {
+                    if (DEBUG) Slog.v(getTag(), "Returning cookie: " + client.getCookie());
+                    mCurrentClient = newClient;
+                    if (mBiometricService == null) {
+                        mBiometricService = IBiometricService.Stub.asInterface(
+                                ServiceManager.getService(Context.BIOMETRIC_SERVICE));
+                    }
+                    try {
+                        mBiometricService.onReadyForAuthentication(client.getCookie(),
+                                client.getRequireConfirmation(), client.getTargetUserId());
+                    } catch (RemoteException e) {
+                        Slog.e(getTag(), "Remote exception", e);
+                    }
+                    return;
+                }
+            }
 
-            newClient.start();
+            // We are not a BiometricPrompt client, start the client immediately
+            mCurrentClient = newClient;
+            startCurrentClient(mCurrentClient.getCookie());
         }
     }
 
+    protected void startCurrentClient(int cookie) {
+        if (mCurrentClient == null) {
+            Slog.e(getTag(), "Trying to start null client!");
+            return;
+        }
+        if (DEBUG) Slog.v(getTag(), "starting client "
+                + mCurrentClient.getClass().getSuperclass().getSimpleName()
+                + "(" + mCurrentClient.getOwnerString() + ")"
+                + " cookie: " + cookie + "/" + mCurrentClient.getCookie());
+        if (cookie != mCurrentClient.getCookie()) {
+            Slog.e(getTag(), "Mismatched cookie");
+            return;
+        }
+        notifyClientActiveCallbacks(true);
+        mCurrentClient.start();
+    }
+
     protected void removeClient(ClientMonitor client) {
         if (client != null) {
             client.destroy();
diff --git a/services/core/java/com/android/server/biometrics/ClientMonitor.java b/services/core/java/com/android/server/biometrics/ClientMonitor.java
index 22b7418..d19aff6 100644
--- a/services/core/java/com/android/server/biometrics/ClientMonitor.java
+++ b/services/core/java/com/android/server/biometrics/ClientMonitor.java
@@ -58,6 +58,9 @@
 
     private IBinder mToken;
     private BiometricServiceBase.ServiceListener mListener;
+    // Currently only used for authentication client. The cookie generated by BiometricService
+    // is never 0.
+    private final int mCookie;
 
     protected final MetricsLogger mMetricsLogger;
     protected final Metrics mMetrics;
@@ -80,7 +83,7 @@
     public ClientMonitor(Context context, Metrics metrics,
             BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
             BiometricServiceBase.ServiceListener listener, int userId, int groupId,
-            boolean restricted, String owner) {
+            boolean restricted, String owner, int cookie) {
         mContext = context;
         mMetrics = metrics;
         mDaemon = daemon;
@@ -91,6 +94,7 @@
         mGroupId = groupId;
         mIsRestricted = restricted;
         mOwner = owner;
+        mCookie = cookie;
         mSuccessVibrationEffect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
         mErrorVibrationEffect = VibrationEffect.get(VibrationEffect.EFFECT_DOUBLE_CLICK);
         mMetricsLogger = new MetricsLogger();
@@ -107,6 +111,10 @@
         return mMetrics.logTag();
     }
 
+    public int getCookie() {
+        return mCookie;
+    }
+
     /**
      * Contacts the biometric's HAL to start the client.
      * @return 0 on success, errno from driver on failure
@@ -174,7 +182,7 @@
     public boolean onError(long deviceId, int error, int vendorCode) {
         try {
             if (mListener != null) {
-                mListener.onError(deviceId, error, vendorCode);
+                mListener.onError(deviceId, error, vendorCode, getCookie());
             }
         } catch (RemoteException e) {
             Slog.w(getLogTag(), "Failed to invoke sendError", e);
@@ -197,10 +205,15 @@
 
     @Override
     public void binderDied() {
+        // If the current client dies we should cancel the current operation.
+        Slog.e(getLogTag(), "Binder died, cancelling client");
+        try {
+            getDaemonWrapper().cancel();
+        } catch (RemoteException e) {
+            Slog.e(getLogTag(), "Remote exception", e);
+        }
         mToken = null;
         mListener = null;
-        onError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE,
-                0 /* vendorCode */);
     }
 
     @Override
diff --git a/services/core/java/com/android/server/biometrics/EnrollClient.java b/services/core/java/com/android/server/biometrics/EnrollClient.java
index 76dc5a9..f858ef5 100644
--- a/services/core/java/com/android/server/biometrics/EnrollClient.java
+++ b/services/core/java/com/android/server/biometrics/EnrollClient.java
@@ -40,7 +40,7 @@
             BiometricServiceBase.ServiceListener listener, int userId, int groupId,
             byte[] cryptoToken, boolean restricted, String owner, BiometricUtils utils) {
         super(context, metrics, daemon, halDeviceId, token, listener, userId, groupId, restricted,
-                owner);
+                owner, 0 /* cookie */);
         mBiometricUtils = utils;
         mCryptoToken = Arrays.copyOf(cryptoToken, cryptoToken.length);
     }
diff --git a/services/core/java/com/android/server/biometrics/EnumerateClient.java b/services/core/java/com/android/server/biometrics/EnumerateClient.java
index 47dc7ff..df6220c 100644
--- a/services/core/java/com/android/server/biometrics/EnumerateClient.java
+++ b/services/core/java/com/android/server/biometrics/EnumerateClient.java
@@ -34,7 +34,7 @@
             BiometricServiceBase.ServiceListener listener, int groupId, int userId,
             boolean restricted, String owner) {
         super(context, metrics, daemon, halDeviceId, token, listener, userId, groupId, restricted,
-                owner);
+                owner, 0 /* cookie */);
     }
 
     @Override
diff --git a/services/core/java/com/android/server/biometrics/RemovalClient.java b/services/core/java/com/android/server/biometrics/RemovalClient.java
index 15b3773..be233ec 100644
--- a/services/core/java/com/android/server/biometrics/RemovalClient.java
+++ b/services/core/java/com/android/server/biometrics/RemovalClient.java
@@ -37,7 +37,7 @@
             BiometricServiceBase.ServiceListener listener, int biometricId, int groupId, int userId,
             boolean restricted, String owner, BiometricUtils utils) {
         super(context, metrics, daemon, halDeviceId, token, listener, userId, groupId, restricted,
-                owner);
+                owner, 0 /* cookie */);
         mBiometricId = biometricId;
         mBiometricUtils = utils;
     }
diff --git a/services/core/java/com/android/server/biometrics/face/FaceService.java b/services/core/java/com/android/server/biometrics/face/FaceService.java
index 7aa2e47..557af04 100644
--- a/services/core/java/com/android/server/biometrics/face/FaceService.java
+++ b/services/core/java/com/android/server/biometrics/face/FaceService.java
@@ -27,9 +27,8 @@
 import android.content.pm.UserInfo;
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
-import android.hardware.biometrics.IBiometricPromptReceiver;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
-import android.hardware.biometrics.IBiometricServiceReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.biometrics.face.V1_0.IBiometricsFace;
 import android.hardware.biometrics.face.V1_0.IBiometricsFaceClientCallback;
 import android.hardware.biometrics.face.V1_0.Status;
@@ -38,7 +37,6 @@
 import android.hardware.face.IFaceService;
 import android.hardware.face.IFaceServiceReceiver;
 import android.os.Binder;
-import android.os.Bundle;
 import android.os.Environment;
 import android.os.IBinder;
 import android.os.RemoteException;
@@ -50,7 +48,6 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.logging.MetricsLogger;
-import com.android.internal.statusbar.IStatusBarService;
 import com.android.internal.util.DumpUtils;
 import com.android.server.SystemServerInitThreadPool;
 import com.android.server.biometrics.BiometricServiceBase;
@@ -89,27 +86,9 @@
         public FaceAuthClient(Context context,
                 DaemonWrapper daemon, long halDeviceId, IBinder token,
                 ServiceListener listener, int targetUserId, int groupId, long opId,
-                boolean restricted, String owner, Bundle bundle,
-                IBiometricPromptReceiver dialogReceiver, IStatusBarService statusBarService,
-                boolean requireConfirmation) {
+                boolean restricted, String owner, int cookie, boolean requireConfirmation) {
             super(context, daemon, halDeviceId, token, listener, targetUserId, groupId, opId,
-                    restricted, owner, bundle, dialogReceiver, statusBarService,
-                    requireConfirmation);
-        }
-
-        @Override
-        public String getErrorString(int error, int vendorCode) {
-            return FaceManager.getErrorString(getContext(), error, vendorCode);
-        }
-
-        @Override
-        public String getAcquiredString(int acquireInfo, int vendorCode) {
-            return FaceManager.getAcquiredString(getContext(), acquireInfo, vendorCode);
-        }
-
-        @Override
-        public int getBiometricType() {
-            return BiometricAuthenticator.TYPE_FACE;
+                    restricted, owner, cookie, requireConfirmation);
         }
     }
 
@@ -162,28 +141,33 @@
             final AuthenticationClientImpl client = new FaceAuthClient(getContext(),
                     mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver),
                     mCurrentUserId, 0 /* groupId */, opId, restricted, opPackageName,
-                    null /* bundle */, null /* dialogReceiver */, mStatusBarService,
-                    false /* requireConfirmation */);
+                    0 /* cookie */, false /* requireConfirmation */);
             authenticateInternal(client, opId, opPackageName);
         }
 
         @Override // Binder call
-        public void authenticateFromService(boolean requireConfirmation, IBinder token, long opId,
-                int groupId, IBiometricServiceReceiver receiver, int flags,
-                String opPackageName, Bundle bundle, IBiometricPromptReceiver dialogReceiver,
-                int callingUid, int callingPid, int callingUserId) {
+        public void prepareForAuthentication(boolean requireConfirmation, IBinder token, long opId,
+                int groupId, IBiometricServiceReceiverInternal wrapperReceiver,
+                String opPackageName, int cookie, int callingUid, int callingPid,
+                int callingUserId) {
             checkPermission(USE_BIOMETRIC_INTERNAL);
             final boolean restricted = true; // BiometricPrompt is always restricted
             final AuthenticationClientImpl client = new FaceAuthClient(getContext(),
                     mDaemonWrapper, mHalDeviceId, token,
-                    new BiometricPromptServiceListenerImpl(receiver),
-                    mCurrentUserId, 0 /* groupId */, opId, restricted, opPackageName,
-                    bundle, dialogReceiver, mStatusBarService, true /* requireConfirmation */);
+                    new BiometricPromptServiceListenerImpl(wrapperReceiver),
+                    mCurrentUserId, 0 /* groupId */, opId, restricted, opPackageName, cookie,
+                    true /* requireConfirmation */);
             authenticateInternal(client, opId, opPackageName, callingUid, callingPid,
                     callingUserId);
         }
 
         @Override // Binder call
+        public void startPreparedClient(int cookie) {
+            checkPermission(MANAGE_BIOMETRIC);
+            startCurrentClient(cookie);
+        }
+
+        @Override // Binder call
         public void cancelAuthentication(final IBinder token, final String opPackageName) {
             checkPermission(USE_BIOMETRIC_INTERNAL);
             cancelAuthenticationInternal(token, opPackageName);
@@ -191,10 +175,10 @@
 
         @Override // Binder call
         public void cancelAuthenticationFromService(final IBinder token, final String opPackageName,
-                int callingUid, int callingPid, int callingUserId) {
+                int callingUid, int callingPid, int callingUserId, boolean fromClient) {
             checkPermission(USE_BIOMETRIC_INTERNAL);
-            cancelAuthenticationInternal(token, opPackageName,
-                    callingUid, callingPid, callingUserId);
+            cancelAuthenticationInternal(token, opPackageName, callingUid, callingPid,
+                    callingUserId, fromClient);
         }
 
         @Override // Binder call
@@ -405,12 +389,9 @@
      * Receives callbacks from the ClientMonitor implementations. The results are forwarded to
      * BiometricPrompt.
      */
-    private class BiometricPromptServiceListenerImpl implements ServiceListener {
-
-        private IBiometricServiceReceiver mBiometricServiceReceiver;
-
-        public BiometricPromptServiceListenerImpl(IBiometricServiceReceiver receiver) {
-            mBiometricServiceReceiver = receiver;
+    private class BiometricPromptServiceListenerImpl extends BiometricServiceListener {
+        BiometricPromptServiceListenerImpl(IBiometricServiceReceiverInternal wrapperReceiver) {
+            super(wrapperReceiver);
         }
 
         @Override
@@ -419,32 +400,18 @@
             /**
              * Map the acquired codes onto existing {@link BiometricConstants} acquired codes.
              */
-            if (mBiometricServiceReceiver != null) {
-                mBiometricServiceReceiver.onAcquired(deviceId,
+            if (getWrapperReceiver() != null) {
+                getWrapperReceiver().onAcquired(
                         FaceManager.getMappedAcquiredInfo(acquiredInfo, vendorCode),
                         FaceManager.getAcquiredString(getContext(), acquiredInfo, vendorCode));
             }
         }
 
         @Override
-        public void onAuthenticationSucceeded(long deviceId,
-                BiometricAuthenticator.Identifier biometric, int userId) throws RemoteException {
-            if (mBiometricServiceReceiver != null) {
-                mBiometricServiceReceiver.onAuthenticationSucceeded(deviceId);
-            }
-        }
-
-        @Override
-        public void onAuthenticationFailed(long deviceId) throws RemoteException {
-            if (mBiometricServiceReceiver != null) {
-                mBiometricServiceReceiver.onAuthenticationFailed(deviceId);
-            }
-        }
-
-        @Override
-        public void onError(long deviceId, int error, int vendorCode) throws RemoteException {
-            if (mBiometricServiceReceiver != null) {
-                mBiometricServiceReceiver.onError(deviceId, error,
+        public void onError(long deviceId, int error, int vendorCode, int cookie)
+                throws RemoteException {
+            if (getWrapperReceiver() != null) {
+                getWrapperReceiver().onError(cookie, error,
                         FaceManager.getErrorString(getContext(), error, vendorCode));
             }
         }
@@ -455,7 +422,6 @@
      * the FaceManager.
      */
     private class ServiceListenerImpl implements ServiceListener {
-
         private IFaceServiceReceiver mFaceServiceReceiver;
 
         public ServiceListenerImpl(IFaceServiceReceiver receiver) {
@@ -501,7 +467,8 @@
         }
 
         @Override
-        public void onError(long deviceId, int error, int vendorCode) throws RemoteException {
+        public void onError(long deviceId, int error, int vendorCode, int cookie)
+                throws RemoteException {
             if (mFaceServiceReceiver != null) {
                 mFaceServiceReceiver.onError(deviceId, error, vendorCode);
             }
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
index b0b788f..6a5bc61 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
@@ -30,9 +30,8 @@
 import android.content.pm.UserInfo;
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
-import android.hardware.biometrics.IBiometricPromptReceiver;
-import android.hardware.biometrics.IBiometricServiceReceiver;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
 import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprintClientCallback;
 import android.hardware.fingerprint.Fingerprint;
@@ -42,7 +41,6 @@
 import android.hardware.fingerprint.IFingerprintServiceReceiver;
 import android.os.Binder;
 import android.os.Build;
-import android.os.Bundle;
 import android.os.Environment;
 import android.os.IBinder;
 import android.os.RemoteException;
@@ -55,7 +53,6 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.logging.MetricsLogger;
-import com.android.internal.statusbar.IStatusBarService;
 import com.android.internal.util.DumpUtils;
 import com.android.server.SystemServerInitThreadPool;
 import com.android.server.biometrics.AuthenticationClient;
@@ -109,27 +106,10 @@
         public FingerprintAuthClient(Context context,
                 DaemonWrapper daemon, long halDeviceId, IBinder token,
                 ServiceListener listener, int targetUserId, int groupId, long opId,
-                boolean restricted, String owner, Bundle bundle,
-                IBiometricPromptReceiver dialogReceiver, IStatusBarService statusBarService,
+                boolean restricted, String owner, int cookie,
                 boolean requireConfirmation) {
             super(context, daemon, halDeviceId, token, listener, targetUserId, groupId, opId,
-                    restricted, owner, bundle, dialogReceiver, statusBarService,
-                    requireConfirmation);
-        }
-
-        @Override
-        public String getErrorString(int error, int vendorCode) {
-            return FingerprintManager.getErrorString(getContext(), error, vendorCode);
-        }
-
-        @Override
-        public String getAcquiredString(int acquireInfo, int vendorCode) {
-            return FingerprintManager.getAcquiredString(getContext(), acquireInfo, vendorCode);
-        }
-
-        @Override
-        public int getBiometricType() {
-            return BiometricAuthenticator.TYPE_FINGERPRINT;
+                    restricted, owner, cookie, requireConfirmation);
         }
     }
 
@@ -182,38 +162,44 @@
             final boolean restricted = isRestricted();
             final AuthenticationClientImpl client = new FingerprintAuthClient(getContext(),
                     mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver),
-                    mCurrentUserId, groupId, opId, restricted, opPackageName, null /* bundle */,
-                    null /* dialogReceiver */, mStatusBarService, false /* requireConfirmation */);
+                    mCurrentUserId, groupId, opId, restricted, opPackageName,
+                    0 /* cookie */, false /* requireConfirmation */);
             authenticateInternal(client, opId, opPackageName);
         }
 
         @Override // Binder call
-        public void authenticateFromService(IBinder token, long opId, int groupId,
-                IBiometricServiceReceiver receiver, int flags, String opPackageName,
-                Bundle bundle, IBiometricPromptReceiver dialogReceiver,
-                int callingUid, int callingPid, int callingUserId) {
+        public void prepareForAuthentication(IBinder token, long opId, int groupId,
+                IBiometricServiceReceiverInternal wrapperReceiver, String opPackageName,
+                int cookie, int callingUid, int callingPid, int callingUserId) {
             checkPermission(MANAGE_BIOMETRIC);
             final boolean restricted = true; // BiometricPrompt is always restricted
             final AuthenticationClientImpl client = new FingerprintAuthClient(getContext(),
                     mDaemonWrapper, mHalDeviceId, token,
-                    new BiometricPromptServiceListenerImpl(receiver),
-                    mCurrentUserId, groupId, opId, restricted, opPackageName, bundle,
-                    dialogReceiver, mStatusBarService, false /* requireConfirmation */);
+                    new BiometricPromptServiceListenerImpl(wrapperReceiver),
+                    mCurrentUserId, groupId, opId, restricted, opPackageName, cookie,
+                    false /* requireConfirmation */);
             authenticateInternal(client, opId, opPackageName, callingUid, callingPid,
                     callingUserId);
         }
 
         @Override // Binder call
+        public void startPreparedClient(int cookie) {
+            checkPermission(MANAGE_BIOMETRIC);
+            startCurrentClient(cookie);
+        }
+
+
+        @Override // Binder call
         public void cancelAuthentication(final IBinder token, final String opPackageName) {
             cancelAuthenticationInternal(token, opPackageName);
         }
 
         @Override // Binder call
         public void cancelAuthenticationFromService(final IBinder token, final String opPackageName,
-                int callingUid, int callingPid, int callingUserId) {
+                int callingUid, int callingPid, int callingUserId, boolean fromClient) {
             checkPermission(MANAGE_BIOMETRIC);
-            cancelAuthenticationInternal(token, opPackageName,
-                    callingUid, callingPid, callingUserId);
+            cancelAuthenticationInternal(token, opPackageName, callingUid, callingPid,
+                    callingUserId, fromClient);
         }
 
         @Override // Binder call
@@ -388,43 +374,25 @@
      * Receives callbacks from the ClientMonitor implementations. The results are forwarded to
      * BiometricPrompt.
      */
-    private class BiometricPromptServiceListenerImpl implements ServiceListener {
-
-        private IBiometricServiceReceiver mBiometricServiceReceiver;
-
-        public BiometricPromptServiceListenerImpl(IBiometricServiceReceiver receiver) {
-            mBiometricServiceReceiver = receiver;
+    private class BiometricPromptServiceListenerImpl extends BiometricServiceListener {
+        BiometricPromptServiceListenerImpl(IBiometricServiceReceiverInternal wrapperReceiver) {
+            super(wrapperReceiver);
         }
 
         @Override
         public void onAcquired(long deviceId, int acquiredInfo, int vendorCode)
                 throws RemoteException {
-            if (mBiometricServiceReceiver != null) {
-                mBiometricServiceReceiver.onAcquired(deviceId, acquiredInfo,
-                        FingerprintManager.getAcquiredString(
+            if (getWrapperReceiver() != null) {
+                getWrapperReceiver().onAcquired(acquiredInfo, FingerprintManager.getAcquiredString(
                             getContext(), acquiredInfo, vendorCode));
             }
         }
 
         @Override
-        public void onAuthenticationSucceeded(long deviceId,
-                BiometricAuthenticator.Identifier biometric, int userId) throws RemoteException {
-            if (mBiometricServiceReceiver != null) {
-                mBiometricServiceReceiver.onAuthenticationSucceeded(deviceId);
-            }
-        }
-
-        @Override
-        public void onAuthenticationFailed(long deviceId) throws RemoteException {
-            if (mBiometricServiceReceiver != null) {
-                mBiometricServiceReceiver.onAuthenticationFailed(deviceId);
-            }
-        }
-
-        @Override
-        public void onError(long deviceId, int error, int vendorCode) throws RemoteException {
-            if (mBiometricServiceReceiver != null) {
-                mBiometricServiceReceiver.onError(deviceId, error,
+        public void onError(long deviceId, int error, int vendorCode, int cookie)
+                throws RemoteException {
+            if (getWrapperReceiver() != null) {
+                getWrapperReceiver().onError(cookie, error,
                         FingerprintManager.getErrorString(getContext(), error, vendorCode));
             }
         }
@@ -435,7 +403,6 @@
      * the FingerprintManager.
      */
     private class ServiceListenerImpl implements ServiceListener {
-
         private IFingerprintServiceReceiver mFingerprintServiceReceiver;
 
         public ServiceListenerImpl(IFingerprintServiceReceiver receiver) {
@@ -483,7 +450,8 @@
         }
 
         @Override
-        public void onError(long deviceId, int error, int vendorCode) throws RemoteException {
+        public void onError(long deviceId, int error, int vendorCode, int cookie)
+                throws RemoteException {
             if (mFingerprintServiceReceiver != null) {
                 mFingerprintServiceReceiver.onError(deviceId, error, vendorCode);
             }
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
index c3e3842..bf95210 100644
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -72,6 +72,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.Protocol;
+import com.android.internal.util.RingBufferIndices;
 import com.android.internal.util.State;
 import com.android.internal.util.StateMachine;
 import com.android.server.connectivity.DnsManager.PrivateDnsConfig;
@@ -99,7 +100,7 @@
     private static final String TAG = NetworkMonitor.class.getSimpleName();
     private static final boolean DBG  = true;
     private static final boolean VDBG = false;
-
+    private static final boolean VDBG_STALL = Log.isLoggable(TAG, Log.DEBUG);
     // Default configuration values for captive portal detection probes.
     // TODO: append a random length parameter to the default HTTPS url.
     // TODO: randomize browser version ids in the default User-Agent String.
@@ -116,6 +117,15 @@
     private static final int SOCKET_TIMEOUT_MS = 10000;
     private static final int PROBE_TIMEOUT_MS  = 3000;
 
+    // Default configuration values for data stall detection.
+    private static final int DEFAULT_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD = 5;
+    private static final int DEFAULT_DATA_STALL_MIN_EVALUATE_TIME_MS = 60 * 1000;
+    private static final int DEFAULT_DATA_STALL_VALID_DNS_TIME_THRESHOLD_MS = 30 * 60 * 1000;
+
+    private static final int DATA_STALL_EVALUATION_TYPE_DNS = 1;
+    private static final int DEFAULT_DATA_STALL_EVALUATION_TYPES =
+            (1 << DATA_STALL_EVALUATION_TYPE_DNS);
+
     static enum EvaluationResult {
         VALIDATED(true),
         CAPTIVE_PORTAL(false);
@@ -233,6 +243,12 @@
      */
     public static final int CMD_PROBE_COMPLETE = BASE + 16;
 
+    /**
+     * ConnectivityService notifies NetworkMonitor of DNS query responses event.
+     * arg1 = returncode in OnDnsEvent which indicates the response code for the DNS query.
+     */
+    public static final int EVENT_DNS_NOTIFICATION = BASE + 17;
+
     // Start mReevaluateDelayMs at this value and double.
     private static final int INITIAL_REEVALUATE_DELAY_MS = 1000;
     private static final int MAX_REEVALUATE_DELAY_MS = 10*60*1000;
@@ -297,6 +313,7 @@
     private final State mCaptivePortalState = new CaptivePortalState();
     private final State mEvaluatingPrivateDnsState = new EvaluatingPrivateDnsState();
     private final State mProbingState = new ProbingState();
+    private final State mWaitingForNextProbeState = new WaitingForNextProbeState();
 
     private CustomIntentReceiver mLaunchCaptivePortalAppBroadcastReceiver = null;
 
@@ -314,6 +331,12 @@
     private int mReevaluateDelayMs = INITIAL_REEVALUATE_DELAY_MS;
     private int mEvaluateAttempts = 0;
     private volatile int mProbeToken = 0;
+    private final int mConsecutiveDnsTimeoutThreshold;
+    private final int mDataStallMinEvaluateTime;
+    private final int mDataStallValidDnsTimeThreshold;
+    private final int mDataStallEvaluationType;
+    private final DnsStallDetector mDnsStallDetector;
+    private long mLastProbeTime;
 
     public NetworkMonitor(Context context, Handler handler, NetworkAgentInfo networkAgentInfo,
             NetworkRequest defaultRequest) {
@@ -346,6 +369,7 @@
         addState(mMaybeNotifyState, mDefaultState);
             addState(mEvaluatingState, mMaybeNotifyState);
                 addState(mProbingState, mEvaluatingState);
+                addState(mWaitingForNextProbeState, mEvaluatingState);
             addState(mCaptivePortalState, mMaybeNotifyState);
         addState(mEvaluatingPrivateDnsState, mDefaultState);
         addState(mValidatedState, mDefaultState);
@@ -359,6 +383,12 @@
         mCaptivePortalFallbackUrls = makeCaptivePortalFallbackUrls();
         mCaptivePortalFallbackSpecs = makeCaptivePortalFallbackProbeSpecs();
         mRandom = deps.getRandom();
+        // TODO: Evaluate to move data stall configuration to a specific class.
+        mConsecutiveDnsTimeoutThreshold = getConsecutiveDnsTimeoutThreshold();
+        mDnsStallDetector = new DnsStallDetector(mConsecutiveDnsTimeoutThreshold);
+        mDataStallMinEvaluateTime = getDataStallMinEvaluateTime();
+        mDataStallValidDnsTimeThreshold = getDataStallValidDnsTimeThreshold();
+        mDataStallEvaluationType = getDataStallEvalutionType();
 
         start();
     }
@@ -507,6 +537,9 @@
                     sendMessage(CMD_EVALUATE_PRIVATE_DNS);
                     break;
                 }
+                case EVENT_DNS_NOTIFICATION:
+                    mDnsStallDetector.accumulateConsecutiveDnsTimeoutCount(message.arg1);
+                    break;
                 default:
                     break;
             }
@@ -537,6 +570,13 @@
                 case CMD_EVALUATE_PRIVATE_DNS:
                     transitionTo(mEvaluatingPrivateDnsState);
                     break;
+                case EVENT_DNS_NOTIFICATION:
+                    mDnsStallDetector.accumulateConsecutiveDnsTimeoutCount(message.arg1);
+                    if (isDataStall()) {
+                        validationLog("Suspecting data stall, reevaluate");
+                        transitionTo(mEvaluatingState);
+                    }
+                    break;
                 default:
                     return NOT_HANDLED;
             }
@@ -839,6 +879,11 @@
 
         @Override
         public void enter() {
+            if (mEvaluateAttempts >= BLAME_FOR_EVALUATION_ATTEMPTS) {
+                //Don't continue to blame UID forever.
+                TrafficStats.clearThreadStatsUid();
+            }
+
             final int token = ++mProbeToken;
             mThread = new Thread(() -> sendMessage(obtainMessage(CMD_PROBE_COMPLETE, token, 0,
                     isCaptivePortal())));
@@ -856,6 +901,7 @@
 
                     final CaptivePortalProbeResult probeResult =
                             (CaptivePortalProbeResult) message.obj;
+                    mLastProbeTime = SystemClock.elapsedRealtime();
                     if (probeResult.isSuccessful()) {
                         // Transit EvaluatingPrivateDnsState to get to Validated
                         // state (even if no Private DNS validation required).
@@ -865,28 +911,16 @@
                         mLastPortalProbeResult = probeResult;
                         transitionTo(mCaptivePortalState);
                     } else {
-                        final Message msg = obtainMessage(CMD_REEVALUATE, ++mReevaluateToken, 0);
-                        sendMessageDelayed(msg, mReevaluateDelayMs);
                         logNetworkEvent(NetworkEvent.NETWORK_VALIDATION_FAILED);
                         notifyNetworkTestResultInvalid(probeResult.redirectUrl);
-                        if (mEvaluateAttempts >= BLAME_FOR_EVALUATION_ATTEMPTS) {
-                            // Don't continue to blame UID forever.
-                            TrafficStats.clearThreadStatsUid();
-                        }
-                        mReevaluateDelayMs *= 2;
-                        if (mReevaluateDelayMs > MAX_REEVALUATE_DELAY_MS) {
-                            mReevaluateDelayMs = MAX_REEVALUATE_DELAY_MS;
-                        }
+                        transitionTo(mWaitingForNextProbeState);
                     }
                     return HANDLED;
-                case CMD_REEVALUATE:
-                    // Leave the event to EvaluatingState. Defer this message will result in reset
-                    // of mReevaluateDelayMs and mEvaluateAttempts.
-                case CMD_NETWORK_DISCONNECTED:
+                case EVENT_DNS_NOTIFICATION:
+                    // Leave the event to DefaultState to record correct dns timestamp.
                     return NOT_HANDLED;
                 default:
-                    // TODO: Some events may able to handle in this state, instead of deferring to
-                    // next state.
+                    // Wait for probe result and defer events to next state by default.
                     deferMessage(message);
                     return HANDLED;
             }
@@ -901,6 +935,29 @@
         }
     }
 
+    // Being in the WaitingForNextProbeState indicates that evaluating probes failed and state is
+    // transited from ProbingState. This ensures that the state machine is only in ProbingState
+    // while a probe is in progress, not while waiting to perform the next probe. That allows
+    // ProbingState to defer most messages until the probe is complete, which keeps the code simple
+    // and matches the pre-Q behaviour where probes were a blocking operation performed on the state
+    // machine thread.
+    private class WaitingForNextProbeState extends State {
+        @Override
+        public void enter() {
+            final Message msg = obtainMessage(CMD_REEVALUATE, ++mReevaluateToken, 0);
+            sendMessageDelayed(msg, mReevaluateDelayMs);
+            mReevaluateDelayMs *= 2;
+            if (mReevaluateDelayMs > MAX_REEVALUATE_DELAY_MS) {
+                mReevaluateDelayMs = MAX_REEVALUATE_DELAY_MS;
+            }
+        }
+
+        @Override
+        public boolean processMessage(Message message) {
+            return NOT_HANDLED;
+        }
+    }
+
     // Limits the list of IP addresses returned by getAllByName or tried by openConnection to at
     // most one per address family. This ensures we only wait up to 20 seconds for TCP connections
     // to complete, regardless of how many IP addresses a host has.
@@ -947,6 +1004,29 @@
                 Settings.Global.CAPTIVE_PORTAL_HTTPS_URL, DEFAULT_HTTPS_URL);
     }
 
+    private int getConsecutiveDnsTimeoutThreshold() {
+        return mDependencies.getSetting(mContext,
+                Settings.Global.DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD,
+                DEFAULT_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD);
+    }
+
+    private int getDataStallMinEvaluateTime() {
+        return mDependencies.getSetting(mContext,
+                Settings.Global.DATA_STALL_MIN_EVALUATE_INTERVAL,
+                DEFAULT_DATA_STALL_MIN_EVALUATE_TIME_MS);
+    }
+
+    private int getDataStallValidDnsTimeThreshold() {
+        return mDependencies.getSetting(mContext,
+                Settings.Global.DATA_STALL_VALID_DNS_TIME_THRESHOLD,
+                DEFAULT_DATA_STALL_VALID_DNS_TIME_THRESHOLD_MS);
+    }
+
+    private int getDataStallEvalutionType() {
+        return mDependencies.getSetting(mContext, Settings.Global.DATA_STALL_EVALUATION_TYPE,
+                DEFAULT_DATA_STALL_EVALUATION_TYPES);
+    }
+
     // Static for direct access by ConnectivityService
     public static String getCaptivePortalServerHttpUrl(Context context) {
         return getCaptivePortalServerHttpUrl(Dependencies.DEFAULT, context);
@@ -1462,4 +1542,127 @@
 
         public static final Dependencies DEFAULT = new Dependencies();
     }
+
+    /**
+     * Methods in this class perform no locking because all accesses are performed on the state
+     * machine's thread. Need to consider the thread safety if it ever could be accessed outside the
+     * state machine.
+     */
+    @VisibleForTesting
+    protected class DnsStallDetector {
+        private static final int DEFAULT_DNS_LOG_SIZE = 50;
+        private int mConsecutiveTimeoutCount = 0;
+        private int mSize;
+        final DnsResult[] mDnsEvents;
+        final RingBufferIndices mResultIndices;
+
+        DnsStallDetector(int size) {
+            mSize = Math.max(DEFAULT_DNS_LOG_SIZE, size);
+            mDnsEvents = new DnsResult[mSize];
+            mResultIndices = new RingBufferIndices(mSize);
+        }
+
+        @VisibleForTesting
+        protected void accumulateConsecutiveDnsTimeoutCount(int code) {
+            final DnsResult result = new DnsResult(code);
+            mDnsEvents[mResultIndices.add()] = result;
+            if (result.isTimeout()) {
+                mConsecutiveTimeoutCount++;
+            } else {
+                // Keep the event in mDnsEvents without clearing it so that there are logs to do the
+                // simulation and analysis.
+                mConsecutiveTimeoutCount = 0;
+            }
+        }
+
+        private boolean isDataStallSuspected(int timeoutCountThreshold, int validTime) {
+            if (timeoutCountThreshold <= 0) {
+                Log.wtf(TAG, "Timeout count threshold should be larger than 0.");
+                return false;
+            }
+
+            // Check if the consecutive timeout count reach the threshold or not.
+            if (mConsecutiveTimeoutCount < timeoutCountThreshold) {
+                return false;
+            }
+
+            // Check if the target dns event index is valid or not.
+            final int firstConsecutiveTimeoutIndex =
+                    mResultIndices.indexOf(mResultIndices.size() - timeoutCountThreshold);
+
+            // If the dns timeout events happened long time ago, the events are meaningless for
+            // data stall evaluation. Thus, check if the first consecutive timeout dns event
+            // considered in the evaluation happened in defined threshold time.
+            final long now = SystemClock.elapsedRealtime();
+            final long firstTimeoutTime = now - mDnsEvents[firstConsecutiveTimeoutIndex].mTimeStamp;
+            return (firstTimeoutTime < validTime);
+        }
+
+        int getConsecutiveTimeoutCount() {
+            return mConsecutiveTimeoutCount;
+        }
+    }
+
+    private static class DnsResult {
+        // TODO: Need to move the DNS return code definition to a specific class once unify DNS
+        // response code is done.
+        private static final int RETURN_CODE_DNS_TIMEOUT = 255;
+
+        private final long mTimeStamp;
+        private final int mReturnCode;
+
+        DnsResult(int code) {
+            mTimeStamp = SystemClock.elapsedRealtime();
+            mReturnCode = code;
+        }
+
+        private boolean isTimeout() {
+            return mReturnCode == RETURN_CODE_DNS_TIMEOUT;
+        }
+    }
+
+
+    @VisibleForTesting
+    protected DnsStallDetector getDnsStallDetector() {
+        return mDnsStallDetector;
+    }
+
+    private boolean dataStallEvaluateTypeEnabled(int type) {
+        return (mDataStallEvaluationType & (1 << type)) != 0;
+    }
+
+    @VisibleForTesting
+    protected long getLastProbeTime() {
+        return mLastProbeTime;
+    }
+
+    @VisibleForTesting
+    protected boolean isDataStall() {
+        boolean result = false;
+        // Reevaluation will generate traffic. Thus, set a minimal reevaluation timer to limit the
+        // possible traffic cost in metered network.
+        if (mNetworkAgentInfo.networkCapabilities.isMetered()
+                && (SystemClock.elapsedRealtime() - getLastProbeTime()
+                < mDataStallMinEvaluateTime)) {
+            return false;
+        }
+
+        // Check dns signal. Suspect it may be a data stall if both :
+        // 1. The number of consecutive DNS query timeouts > mConsecutiveDnsTimeoutThreshold.
+        // 2. Those consecutive DNS queries happened in the last mValidDataStallDnsTimeThreshold ms.
+        if (dataStallEvaluateTypeEnabled(DATA_STALL_EVALUATION_TYPE_DNS)) {
+            if (mDnsStallDetector.isDataStallSuspected(mConsecutiveDnsTimeoutThreshold,
+                    mDataStallValidDnsTimeThreshold)) {
+                result = true;
+                logNetworkEvent(NetworkEvent.NETWORK_CONSECUTIVE_DNS_TIMEOUT_FOUND);
+            }
+        }
+
+        if (VDBG_STALL) {
+            log("isDataStall: result=" + result + ", consecutive dns timeout count="
+                    + mDnsStallDetector.getConsecutiveTimeoutCount());
+        }
+
+        return result;
+    }
 }
diff --git a/services/core/java/com/android/server/connectivity/PermissionMonitor.java b/services/core/java/com/android/server/connectivity/PermissionMonitor.java
index 94c94a5..420b23e 100644
--- a/services/core/java/com/android/server/connectivity/PermissionMonitor.java
+++ b/services/core/java/com/android/server/connectivity/PermissionMonitor.java
@@ -27,10 +27,7 @@
 import static android.os.Process.SYSTEM_UID;
 
 import android.annotation.NonNull;
-import android.content.BroadcastReceiver;
 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.PackageManager;
@@ -42,7 +39,6 @@
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -64,15 +60,14 @@
 public class PermissionMonitor {
     private static final String TAG = "PermissionMonitor";
     private static final boolean DBG = true;
-    private static final Boolean SYSTEM = Boolean.TRUE;
-    private static final Boolean NETWORK = Boolean.FALSE;
+    protected static final Boolean SYSTEM = Boolean.TRUE;
+    protected static final Boolean NETWORK = Boolean.FALSE;
     private static final int VERSION_Q = Build.VERSION_CODES.Q;
 
     private final Context mContext;
     private final PackageManager mPackageManager;
     private final UserManager mUserManager;
     private final INetworkManagementService mNetd;
-    private final BroadcastReceiver mIntentReceiver;
 
     // Values are User IDs.
     private final Set<Integer> mUsers = new HashSet<>();
@@ -85,26 +80,6 @@
         mPackageManager = context.getPackageManager();
         mUserManager = UserManager.get(context);
         mNetd = netd;
-        mIntentReceiver = new BroadcastReceiver() {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                String action = intent.getAction();
-                int user = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
-                int appUid = intent.getIntExtra(Intent.EXTRA_UID, INVALID_UID);
-                Uri appData = intent.getData();
-                String appName = appData != null ? appData.getSchemeSpecificPart() : null;
-
-                if (Intent.ACTION_USER_ADDED.equals(action)) {
-                    onUserAdded(user);
-                } else if (Intent.ACTION_USER_REMOVED.equals(action)) {
-                    onUserRemoved(user);
-                } else if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
-                    onAppAdded(appName, appUid);
-                } else if (Intent.ACTION_PACKAGE_REMOVED.equals(action)) {
-                    onAppRemoved(appUid);
-                }
-            }
-        };
     }
 
     // Intended to be called only once at startup, after the system is ready. Installs a broadcast
@@ -112,17 +87,6 @@
     public synchronized void startMonitoring() {
         log("Monitoring");
 
-        IntentFilter intentFilter = new IntentFilter();
-        intentFilter.addAction(Intent.ACTION_USER_ADDED);
-        intentFilter.addAction(Intent.ACTION_USER_REMOVED);
-        mContext.registerReceiverAsUser(mIntentReceiver, UserHandle.ALL, intentFilter, null, null);
-
-        intentFilter = new IntentFilter();
-        intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
-        intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
-        intentFilter.addDataScheme("package");
-        mContext.registerReceiverAsUser(mIntentReceiver, UserHandle.ALL, intentFilter, null, null);
-
         List<PackageInfo> apps = mPackageManager.getInstalledPackages(GET_PERMISSIONS);
         if (apps == null) {
             loge("No apps");
@@ -260,7 +224,14 @@
         }
     }
 
-    private synchronized void onUserAdded(int user) {
+    /**
+     * Called when a user is added. See {link #ACTION_USER_ADDED}.
+     *
+     * @param user The integer userHandle of the added user. See {@link #EXTRA_USER_HANDLE}.
+     *
+     * @hide
+     */
+    public synchronized void onUserAdded(int user) {
         if (user < 0) {
             loge("Invalid user in onUserAdded: " + user);
             return;
@@ -272,7 +243,14 @@
         update(users, mApps, true);
     }
 
-    private synchronized void onUserRemoved(int user) {
+    /**
+     * Called when an user is removed. See {link #ACTION_USER_REMOVED}.
+     *
+     * @param user The integer userHandle of the removed user. See {@link #EXTRA_USER_HANDLE}.
+     *
+     * @hide
+     */
+    public synchronized void onUserRemoved(int user) {
         if (user < 0) {
             loge("Invalid user in onUserRemoved: " + user);
             return;
@@ -284,8 +262,8 @@
         update(users, mApps, false);
     }
 
-
-    private Boolean highestPermissionForUid(Boolean currentPermission, String name) {
+    @VisibleForTesting
+    protected Boolean highestPermissionForUid(Boolean currentPermission, String name) {
         if (currentPermission == SYSTEM) {
             return currentPermission;
         }
@@ -303,33 +281,39 @@
         return currentPermission;
     }
 
-    private synchronized void onAppAdded(String appName, int appUid) {
-        if (TextUtils.isEmpty(appName) || appUid < 0) {
-            loge("Invalid app in onAppAdded: " + appName + " | " + appUid);
-            return;
-        }
-
+    /**
+     * Called when a package is added. See {link #ACTION_PACKAGE_ADDED}.
+     *
+     * @param packageName The name of the new package.
+     * @param uid The uid of the new package.
+     *
+     * @hide
+     */
+    public synchronized void onPackageAdded(String packageName, int uid) {
         // If multiple packages share a UID (cf: android:sharedUserId) and ask for different
         // permissions, don't downgrade (i.e., if it's already SYSTEM, leave it as is).
-        final Boolean permission = highestPermissionForUid(mApps.get(appUid), appName);
-        if (permission != mApps.get(appUid)) {
-            mApps.put(appUid, permission);
+        final Boolean permission = highestPermissionForUid(mApps.get(uid), packageName);
+        if (permission != mApps.get(uid)) {
+            mApps.put(uid, permission);
 
             Map<Integer, Boolean> apps = new HashMap<>();
-            apps.put(appUid, permission);
+            apps.put(uid, permission);
             update(mUsers, apps, true);
         }
     }
 
-    private synchronized void onAppRemoved(int appUid) {
-        if (appUid < 0) {
-            loge("Invalid app in onAppRemoved: " + appUid);
-            return;
-        }
+    /**
+     * Called when a package is removed. See {link #ACTION_PACKAGE_REMOVED}.
+     *
+     * @param uid containing the integer uid previously assigned to the package.
+     *
+     * @hide
+     */
+    public synchronized void onPackageRemoved(int uid) {
         Map<Integer, Boolean> apps = new HashMap<>();
 
         Boolean permission = null;
-        String[] packages = mPackageManager.getPackagesForUid(appUid);
+        String[] packages = mPackageManager.getPackagesForUid(uid);
         if (packages != null && packages.length > 0) {
             for (String name : packages) {
                 permission = highestPermissionForUid(permission, name);
@@ -341,16 +325,16 @@
                 }
             }
         }
-        if (permission == mApps.get(appUid)) {
+        if (permission == mApps.get(uid)) {
             // The permissions of this UID have not changed. Nothing to do.
             return;
         } else if (permission != null) {
-            mApps.put(appUid, permission);
-            apps.put(appUid, permission);
+            mApps.put(uid, permission);
+            apps.put(uid, permission);
             update(mUsers, apps, true);
         } else {
-            mApps.remove(appUid);
-            apps.put(appUid, NETWORK);  // doesn't matter which permission we pick here
+            mApps.remove(uid);
+            apps.put(uid, NETWORK);  // doesn't matter which permission we pick here
             update(mUsers, apps, false);
         }
     }
diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java
index a8f7259..3c14393 100644
--- a/services/core/java/com/android/server/connectivity/Tethering.java
+++ b/services/core/java/com/android/server/connectivity/Tethering.java
@@ -23,24 +23,18 @@
 import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
 import static android.net.ConnectivityManager.EXTRA_ACTIVE_LOCAL_ONLY;
 import static android.net.ConnectivityManager.EXTRA_ACTIVE_TETHER;
-import static android.net.ConnectivityManager.EXTRA_ADD_TETHER_TYPE;
 import static android.net.ConnectivityManager.EXTRA_AVAILABLE_TETHER;
 import static android.net.ConnectivityManager.EXTRA_ERRORED_TETHER;
 import static android.net.ConnectivityManager.EXTRA_NETWORK_INFO;
-import static android.net.ConnectivityManager.EXTRA_PROVISION_CALLBACK;
-import static android.net.ConnectivityManager.EXTRA_REM_TETHER_TYPE;
-import static android.net.ConnectivityManager.EXTRA_RUN_PROVISION;
-import static android.net.ConnectivityManager.EXTRA_SET_ALARM;
-import static android.net.ConnectivityManager.TETHER_ERROR_MASTER_ERROR;
-import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
-import static android.net.ConnectivityManager.TETHER_ERROR_SERVICE_UNAVAIL;
-import static android.net.ConnectivityManager.TETHER_ERROR_UNKNOWN_IFACE;
-import static android.net.ConnectivityManager.TETHER_ERROR_UNAVAIL_IFACE;
 import static android.net.ConnectivityManager.TETHERING_BLUETOOTH;
 import static android.net.ConnectivityManager.TETHERING_INVALID;
 import static android.net.ConnectivityManager.TETHERING_USB;
 import static android.net.ConnectivityManager.TETHERING_WIFI;
-import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
+import static android.net.ConnectivityManager.TETHER_ERROR_MASTER_ERROR;
+import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
+import static android.net.ConnectivityManager.TETHER_ERROR_SERVICE_UNAVAIL;
+import static android.net.ConnectivityManager.TETHER_ERROR_UNAVAIL_IFACE;
+import static android.net.ConnectivityManager.TETHER_ERROR_UNKNOWN_IFACE;
 import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_INTERFACE_NAME;
 import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_MODE;
 import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_STATE;
@@ -50,6 +44,7 @@
 import static android.net.wifi.WifiManager.IFACE_IP_MODE_UNSPECIFIED;
 import static android.net.wifi.WifiManager.WIFI_AP_STATE_DISABLED;
 import static android.telephony.CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED;
+
 import static com.android.server.ConnectivityService.SHORT_ARG;
 
 import android.app.Notification;
@@ -60,7 +55,6 @@
 import android.bluetooth.BluetoothProfile;
 import android.bluetooth.BluetoothProfile.ServiceListener;
 import android.content.BroadcastReceiver;
-import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -68,7 +62,6 @@
 import android.hardware.usb.UsbManager;
 import android.net.INetworkPolicyManager;
 import android.net.INetworkStatsService;
-import android.net.ip.IpServer;
 import android.net.IpPrefix;
 import android.net.LinkAddress;
 import android.net.LinkProperties;
@@ -76,7 +69,7 @@
 import android.net.NetworkInfo;
 import android.net.NetworkState;
 import android.net.NetworkUtils;
-import android.net.RouteInfo;
+import android.net.ip.IpServer;
 import android.net.util.InterfaceSet;
 import android.net.util.PrefixUtils;
 import android.net.util.SharedLog;
@@ -89,15 +82,12 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.Parcel;
-import android.os.PersistableBundle;
 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.provider.Settings;
-import android.telephony.CarrierConfigManager;
 import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.Log;
@@ -113,6 +103,7 @@
 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;
@@ -123,8 +114,6 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
-import java.net.Inet4Address;
-import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -145,18 +134,12 @@
     private final static boolean DBG = false;
     private final static boolean VDBG = false;
 
-    protected static final String DISABLE_PROVISIONING_SYSPROP_KEY = "net.tethering.noprovisioning";
-
     private static final Class[] messageClasses = {
             Tethering.class, TetherMasterSM.class, IpServer.class
     };
     private static final SparseArray<String> sMagicDecoderRing =
             MessageUtils.findMessageNames(messageClasses);
 
-    // {@link ComponentName} of the Service used to run tether provisioning.
-    private static final ComponentName TETHER_SERVICE = ComponentName.unflattenFromString(Resources
-            .getSystem().getString(com.android.internal.R.string.config_wifi_tether_enable));
-
     private static class TetherState {
         public final IpServer ipServer;
         public int lastState;
@@ -191,7 +174,6 @@
     private final INetworkStatsService mStatsService;
     private final INetworkPolicyManager mPolicyManager;
     private final Looper mLooper;
-    private final MockableSystemProperties mSystemProperties;
     private final StateMachine mTetherMasterSM;
     private final OffloadController mOffloadController;
     private final UpstreamNetworkMonitor mUpstreamNetworkMonitor;
@@ -200,6 +182,7 @@
     private final HashSet<IpServer> mForwardedDownstreams;
     private final VersionedBroadcastListener mCarrierConfigChange;
     private final TetheringDependencies mDeps;
+    private final EntitlementManager mEntitlementMgr;
 
     private volatile TetheringConfiguration mConfig;
     private InterfaceSet mCurrentUpstreamIfaceSet;
@@ -220,7 +203,6 @@
         mStatsService = statsService;
         mPolicyManager = policyManager;
         mLooper = looper;
-        mSystemProperties = systemProperties;
         mDeps = deps;
 
         mPublicSync = new Object();
@@ -241,12 +223,13 @@
 
         IntentFilter filter = new IntentFilter();
         filter.addAction(ACTION_CARRIER_CONFIG_CHANGED);
+        mEntitlementMgr = mDeps.getEntitlementManager(mContext, mLog, systemProperties);
         mCarrierConfigChange = new VersionedBroadcastListener(
                 "CarrierConfigChangeListener", mContext, smHandler, filter,
                 (Intent ignored) -> {
                     mLog.log("OBSERVED carrier config change");
                     updateConfiguration();
-                    reevaluateSimCardProvisioning();
+                    mEntitlementMgr.reevaluateSimCardProvisioning();
                 });
 
         mStateReceiver = new StateReceiver();
@@ -289,6 +272,7 @@
     private void updateConfiguration() {
         mConfig = new TetheringConfiguration(mContext, mLog);
         mUpstreamNetworkMonitor.updateMobileRequiresDun(mConfig.isDunRequired);
+        mEntitlementMgr.updateConfiguration(mConfig);
     }
 
     private void maybeUpdateConfiguration() {
@@ -354,83 +338,54 @@
     }
 
     public void startTethering(int type, ResultReceiver receiver, boolean showProvisioningUi) {
-        if (!isTetherProvisioningRequired()) {
+        mEntitlementMgr.startTethering(type);
+        if (!mEntitlementMgr.isTetherProvisioningRequired()) {
             enableTetheringInternal(type, true, receiver);
             return;
         }
 
+        final ResultReceiver proxyReceiver = getProxyReceiver(type, receiver);
         if (showProvisioningUi) {
-            runUiTetherProvisioningAndEnable(type, receiver);
+            mEntitlementMgr.runUiTetherProvisioningAndEnable(type, proxyReceiver);
         } else {
-            runSilentTetherProvisioningAndEnable(type, receiver);
+            mEntitlementMgr.runSilentTetherProvisioningAndEnable(type, proxyReceiver);
         }
     }
 
     public void stopTethering(int type) {
         enableTetheringInternal(type, false, null);
-        if (isTetherProvisioningRequired()) {
-            cancelTetherProvisioningRechecks(type);
+        mEntitlementMgr.stopTethering(type);
+        if (mEntitlementMgr.isTetherProvisioningRequired()) {
+            // There are lurking bugs where the notion of "provisioning required" or
+            // "tethering supported" may change without notifying tethering properly, then
+            // tethering can't shutdown correctly.
+            // TODO: cancel re-check all the time
+            if (mDeps.isTetheringSupported()) {
+                mEntitlementMgr.cancelTetherProvisioningRechecks(type);
+            }
         }
     }
 
     /**
-     * Check if the device requires a provisioning check in order to enable tethering.
-     *
-     * @return a boolean - {@code true} indicating tether provisioning is required by the carrier.
-     */
-    @VisibleForTesting
-    protected boolean isTetherProvisioningRequired() {
-        final TetheringConfiguration cfg = mConfig;
-        if (mSystemProperties.getBoolean(DISABLE_PROVISIONING_SYSPROP_KEY, false)
-                || cfg.provisioningApp.length == 0) {
-            return false;
-        }
-        if (carrierConfigAffirmsEntitlementCheckNotRequired()) {
-            return false;
-        }
-        return (cfg.provisioningApp.length == 2);
-    }
-
-    // The logic here is aimed solely at confirming that a CarrierConfig exists
-    // and affirms that entitlement checks are not required.
-    //
-    // TODO: find a better way to express this, or alter the checking process
-    // entirely so that this is more intuitive.
-    private boolean carrierConfigAffirmsEntitlementCheckNotRequired() {
-        // Check carrier config for entitlement checks
-        final CarrierConfigManager configManager = (CarrierConfigManager) mContext
-             .getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        if (configManager == null) return false;
-
-        final PersistableBundle carrierConfig = configManager.getConfig();
-        if (carrierConfig == null) return false;
-
-        // A CarrierConfigManager was found and it has a config.
-        final boolean isEntitlementCheckRequired = carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL);
-        return !isEntitlementCheckRequired;
-    }
-
-    /**
      * Enables or disables tethering for the given type. This should only be called once
      * provisioning has succeeded or is not necessary. It will also schedule provisioning rechecks
      * for the specified interface.
      */
     private void enableTetheringInternal(int type, boolean enable, ResultReceiver receiver) {
-        boolean isProvisioningRequired = enable && isTetherProvisioningRequired();
+        boolean isProvisioningRequired = enable && mEntitlementMgr.isTetherProvisioningRequired();
         int result;
         switch (type) {
             case TETHERING_WIFI:
                 result = setWifiTethering(enable);
                 if (isProvisioningRequired && result == TETHER_ERROR_NO_ERROR) {
-                    scheduleProvisioningRechecks(type);
+                    mEntitlementMgr.scheduleProvisioningRechecks(type);
                 }
                 sendTetherResult(receiver, result);
                 break;
             case TETHERING_USB:
                 result = setUsbTethering(enable);
                 if (isProvisioningRequired && result == TETHER_ERROR_NO_ERROR) {
-                    scheduleProvisioningRechecks(type);
+                    mEntitlementMgr.scheduleProvisioningRechecks(type);
                 }
                 sendTetherResult(receiver, result);
                 break;
@@ -489,32 +444,14 @@
                         ? TETHER_ERROR_NO_ERROR
                         : TETHER_ERROR_MASTER_ERROR;
                 sendTetherResult(receiver, result);
-                if (enable && isTetherProvisioningRequired()) {
-                    scheduleProvisioningRechecks(TETHERING_BLUETOOTH);
+                if (enable && mEntitlementMgr.isTetherProvisioningRequired()) {
+                    mEntitlementMgr.scheduleProvisioningRechecks(TETHERING_BLUETOOTH);
                 }
                 adapter.closeProfileProxy(BluetoothProfile.PAN, proxy);
             }
         }, BluetoothProfile.PAN);
     }
 
-    private void runUiTetherProvisioningAndEnable(int type, ResultReceiver receiver) {
-        ResultReceiver proxyReceiver = getProxyReceiver(type, receiver);
-        sendUiTetherProvisionIntent(type, proxyReceiver);
-    }
-
-    private void sendUiTetherProvisionIntent(int type, ResultReceiver receiver) {
-        Intent intent = new Intent(Settings.ACTION_TETHER_PROVISIONING);
-        intent.putExtra(EXTRA_ADD_TETHER_TYPE, type);
-        intent.putExtra(EXTRA_PROVISION_CALLBACK, receiver);
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        final long ident = Binder.clearCallingIdentity();
-        try {
-            mContext.startActivityAsUser(intent, UserHandle.CURRENT);
-        } finally {
-            Binder.restoreCallingIdentity(ident);
-        }
-    }
-
     /**
      * Creates a proxy {@link ResultReceiver} which enables tethering if the provisioning result
      * is successful before firing back up to the wrapped receiver.
@@ -546,62 +483,6 @@
         return receiverForSending;
     }
 
-    private void scheduleProvisioningRechecks(int type) {
-        Intent intent = new Intent();
-        intent.putExtra(EXTRA_ADD_TETHER_TYPE, type);
-        intent.putExtra(EXTRA_SET_ALARM, true);
-        intent.setComponent(TETHER_SERVICE);
-        final long ident = Binder.clearCallingIdentity();
-        try {
-            mContext.startServiceAsUser(intent, UserHandle.CURRENT);
-        } finally {
-            Binder.restoreCallingIdentity(ident);
-        }
-    }
-
-    private void runSilentTetherProvisioningAndEnable(int type, ResultReceiver receiver) {
-        ResultReceiver proxyReceiver = getProxyReceiver(type, receiver);
-        sendSilentTetherProvisionIntent(type, proxyReceiver);
-    }
-
-    private void sendSilentTetherProvisionIntent(int type, ResultReceiver receiver) {
-        Intent intent = new Intent();
-        intent.putExtra(EXTRA_ADD_TETHER_TYPE, type);
-        intent.putExtra(EXTRA_RUN_PROVISION, true);
-        intent.putExtra(EXTRA_PROVISION_CALLBACK, receiver);
-        intent.setComponent(TETHER_SERVICE);
-        final long ident = Binder.clearCallingIdentity();
-        try {
-            mContext.startServiceAsUser(intent, UserHandle.CURRENT);
-        } finally {
-            Binder.restoreCallingIdentity(ident);
-        }
-    }
-
-    private void cancelTetherProvisioningRechecks(int type) {
-        if (mDeps.isTetheringSupported()) {
-            Intent intent = new Intent();
-            intent.putExtra(EXTRA_REM_TETHER_TYPE, type);
-            intent.setComponent(TETHER_SERVICE);
-            final long ident = Binder.clearCallingIdentity();
-            try {
-                mContext.startServiceAsUser(intent, UserHandle.CURRENT);
-            } finally {
-                Binder.restoreCallingIdentity(ident);
-            }
-        }
-    }
-
-    // Used by the SIM card change observation code.
-    // TODO: De-duplicate with above code, where possible.
-    private void startProvisionIntent(int tetherType) {
-        final Intent startProvIntent = new Intent();
-        startProvIntent.putExtra(EXTRA_ADD_TETHER_TYPE, tetherType);
-        startProvIntent.putExtra(EXTRA_RUN_PROVISION, true);
-        startProvIntent.setComponent(TETHER_SERVICE);
-        mContext.startServiceAsUser(startProvIntent, UserHandle.CURRENT);
-    }
-
     public int tether(String iface) {
         return tether(iface, IpServer.STATE_TETHERED);
     }
@@ -1166,30 +1047,6 @@
         return false;
     }
 
-    private void reevaluateSimCardProvisioning() {
-        if (!mConfig.hasMobileHotspotProvisionApp()) return;
-        if (carrierConfigAffirmsEntitlementCheckNotRequired()) return;
-
-        ArrayList<Integer> tethered = new ArrayList<>();
-        synchronized (mPublicSync) {
-            for (int i = 0; i < mTetherStates.size(); i++) {
-                TetherState tetherState = mTetherStates.valueAt(i);
-                if (tetherState.lastState != IpServer.STATE_TETHERED) {
-                    continue;  // Skip interfaces that aren't tethered.
-                }
-                String iface = mTetherStates.keyAt(i);
-                int interfaceType = ifaceNameToType(iface);
-                if (interfaceType != TETHERING_INVALID) {
-                    tethered.add(interfaceType);
-                }
-            }
-        }
-
-        for (int tetherType : tethered) {
-            startProvisionIntent(tetherType);
-        }
-    }
-
     class TetherMasterSM extends StateMachine {
         private static final int BASE_MASTER                    = Protocol.BASE_TETHERING;
         // an interface SM has requested Tethering/Local Hotspot
diff --git a/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java b/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java
new file mode 100644
index 0000000..a4e3e1d
--- /dev/null
+++ b/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java
@@ -0,0 +1,224 @@
+/*
+ * 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.server.connectivity.tethering;
+
+import static android.net.ConnectivityManager.EXTRA_ADD_TETHER_TYPE;
+import static android.net.ConnectivityManager.EXTRA_PROVISION_CALLBACK;
+import static android.net.ConnectivityManager.EXTRA_REM_TETHER_TYPE;
+import static android.net.ConnectivityManager.EXTRA_RUN_PROVISION;
+import static android.net.ConnectivityManager.EXTRA_SET_ALARM;
+
+import static com.android.internal.R.string.config_wifi_tether_enable;
+
+import android.annotation.Nullable;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.net.util.SharedLog;
+import android.os.Binder;
+import android.os.PersistableBundle;
+import android.os.ResultReceiver;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.util.ArraySet;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.connectivity.MockableSystemProperties;
+
+/**
+ * This class encapsulates entitlement/provisioning mechanics
+ * provisioning check only applies to the use of the mobile network as an upstream
+ *
+ * @hide
+ */
+public class EntitlementManager {
+    private static final String TAG = EntitlementManager.class.getSimpleName();
+
+    // {@link ComponentName} of the Service used to run tether provisioning.
+    private static final ComponentName TETHER_SERVICE = ComponentName.unflattenFromString(
+            Resources.getSystem().getString(config_wifi_tether_enable));
+    protected static final String DISABLE_PROVISIONING_SYSPROP_KEY = "net.tethering.noprovisioning";
+
+    // The ArraySet contains enabled downstream types, ex:
+    // {@link ConnectivityManager.TETHERING_WIFI}
+    // {@link ConnectivityManager.TETHERING_USB}
+    // {@link ConnectivityManager.TETHERING_BLUETOOTH}
+    @GuardedBy("mCurrentTethers")
+    private final ArraySet<Integer> mCurrentTethers;
+    private final Context mContext;
+    private final MockableSystemProperties mSystemProperties;
+    private final SharedLog mLog;
+    @Nullable
+    private TetheringConfiguration mConfig;
+
+    public EntitlementManager(Context ctx, SharedLog log,
+            MockableSystemProperties systemProperties) {
+        mContext = ctx;
+        mLog = log;
+        mCurrentTethers = new ArraySet<Integer>();
+        mSystemProperties = systemProperties;
+    }
+
+    /**
+     * Pass a new TetheringConfiguration instance each time when
+     * Tethering#updateConfiguration() is called.
+     */
+    public void updateConfiguration(TetheringConfiguration conf) {
+        mConfig = conf;
+    }
+
+    /**
+     * Tell EntitlementManager that a given type of tethering has been enabled
+     *
+     * @param type Tethering type
+     */
+    public void startTethering(int type) {
+        synchronized (mCurrentTethers) {
+            mCurrentTethers.add(type);
+        }
+    }
+
+    /**
+     * Tell EntitlementManager that a given type of tethering has been disabled
+     *
+     * @param type Tethering type
+     */
+    public void stopTethering(int type) {
+        synchronized (mCurrentTethers) {
+            mCurrentTethers.remove(type);
+        }
+    }
+
+    /**
+     * Check if the device requires a provisioning check in order to enable tethering.
+     *
+     * @return a boolean - {@code true} indicating tether provisioning is required by the carrier.
+     */
+    @VisibleForTesting
+    public boolean isTetherProvisioningRequired() {
+        if (mSystemProperties.getBoolean(DISABLE_PROVISIONING_SYSPROP_KEY, false)
+                || mConfig.provisioningApp.length == 0) {
+            return false;
+        }
+        if (carrierConfigAffirmsEntitlementCheckNotRequired()) {
+            return false;
+        }
+        return (mConfig.provisioningApp.length == 2);
+    }
+
+    /**
+     * Re-check tethering provisioning for enabled downstream tether types.
+     * Reference ConnectivityManager.TETHERING_{@code *} for each tether type.
+     */
+    public void reevaluateSimCardProvisioning() {
+        if (!mConfig.hasMobileHotspotProvisionApp()) return;
+        if (carrierConfigAffirmsEntitlementCheckNotRequired()) return;
+
+        final ArraySet<Integer> reevaluateType;
+        synchronized (mCurrentTethers) {
+            reevaluateType = new ArraySet<Integer>(mCurrentTethers);
+        }
+        for (Integer type : reevaluateType) {
+            startProvisionIntent(type);
+        }
+    }
+
+    // The logic here is aimed solely at confirming that a CarrierConfig exists
+    // and affirms that entitlement checks are not required.
+    //
+    // TODO: find a better way to express this, or alter the checking process
+    // entirely so that this is more intuitive.
+    private boolean carrierConfigAffirmsEntitlementCheckNotRequired() {
+        // Check carrier config for entitlement checks
+        final CarrierConfigManager configManager = (CarrierConfigManager) mContext
+                .getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        if (configManager == null) return false;
+
+        final PersistableBundle carrierConfig = configManager.getConfig();
+        if (carrierConfig == null) return false;
+
+        // A CarrierConfigManager was found and it has a config.
+        final boolean isEntitlementCheckRequired = carrierConfig.getBoolean(
+                CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL);
+        return !isEntitlementCheckRequired;
+    }
+
+    public void runSilentTetherProvisioningAndEnable(int type, ResultReceiver receiver) {
+        Intent intent = new Intent();
+        intent.putExtra(EXTRA_ADD_TETHER_TYPE, type);
+        intent.putExtra(EXTRA_RUN_PROVISION, true);
+        intent.putExtra(EXTRA_PROVISION_CALLBACK, receiver);
+        intent.setComponent(TETHER_SERVICE);
+        final long ident = Binder.clearCallingIdentity();
+        try {
+            mContext.startServiceAsUser(intent, UserHandle.CURRENT);
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    public void runUiTetherProvisioningAndEnable(int type, ResultReceiver receiver) {
+        Intent intent = new Intent(Settings.ACTION_TETHER_PROVISIONING);
+        intent.putExtra(EXTRA_ADD_TETHER_TYPE, type);
+        intent.putExtra(EXTRA_PROVISION_CALLBACK, receiver);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        final long ident = Binder.clearCallingIdentity();
+        try {
+            mContext.startActivityAsUser(intent, UserHandle.CURRENT);
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    // Used by the SIM card change observation code.
+    // TODO: De-duplicate with above code, where possible.
+    private void startProvisionIntent(int tetherType) {
+        final Intent startProvIntent = new Intent();
+        startProvIntent.putExtra(EXTRA_ADD_TETHER_TYPE, tetherType);
+        startProvIntent.putExtra(EXTRA_RUN_PROVISION, true);
+        startProvIntent.setComponent(TETHER_SERVICE);
+        mContext.startServiceAsUser(startProvIntent, UserHandle.CURRENT);
+    }
+
+    public void scheduleProvisioningRechecks(int type) {
+        Intent intent = new Intent();
+        intent.putExtra(EXTRA_ADD_TETHER_TYPE, type);
+        intent.putExtra(EXTRA_SET_ALARM, true);
+        intent.setComponent(TETHER_SERVICE);
+        final long ident = Binder.clearCallingIdentity();
+        try {
+            mContext.startServiceAsUser(intent, UserHandle.CURRENT);
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    public void cancelTetherProvisioningRechecks(int type) {
+        Intent intent = new Intent();
+        intent.putExtra(EXTRA_REM_TETHER_TYPE, type);
+        intent.setComponent(TETHER_SERVICE);
+        final long ident = Binder.clearCallingIdentity();
+        try {
+            mContext.startServiceAsUser(intent, UserHandle.CURRENT);
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/connectivity/tethering/TetheringDependencies.java b/services/core/java/com/android/server/connectivity/tethering/TetheringDependencies.java
index 8b40069..d56b167 100644
--- a/services/core/java/com/android/server/connectivity/tethering/TetheringDependencies.java
+++ b/services/core/java/com/android/server/connectivity/tethering/TetheringDependencies.java
@@ -17,19 +17,13 @@
 package com.android.server.connectivity.tethering;
 
 import android.content.Context;
-import android.net.INetd;
 import android.net.NetworkRequest;
-import android.net.dhcp.DhcpServer;
-import android.net.dhcp.DhcpServingParams;
 import android.net.ip.IpServer;
-import android.net.ip.RouterAdvertisementDaemon;
-import android.net.util.InterfaceParams;
-import android.net.util.NetdService;
-import android.os.Handler;
 import android.net.util.SharedLog;
-import android.os.Looper;
+import android.os.Handler;
 
 import com.android.internal.util.StateMachine;
+import com.android.server.connectivity.MockableSystemProperties;
 
 import java.util.ArrayList;
 
@@ -65,4 +59,9 @@
     public NetworkRequest getDefaultNetworkRequest() {
         return null;
     }
+
+    public EntitlementManager getEntitlementManager(Context ctx, SharedLog log,
+            MockableSystemProperties systemProperties) {
+        return new EntitlementManager(ctx, log, systemProperties);
+    }
 }
diff --git a/services/core/java/com/android/server/display/ColorFade.java b/services/core/java/com/android/server/display/ColorFade.java
index 33525fd..f2c539c 100644
--- a/services/core/java/com/android/server/display/ColorFade.java
+++ b/services/core/java/com/android/server/display/ColorFade.java
@@ -16,16 +16,7 @@
 
 package com.android.server.display;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.FloatBuffer;
-
 import android.content.Context;
-import android.graphics.PixelFormat;
 import android.graphics.SurfaceTexture;
 import android.hardware.display.DisplayManagerInternal;
 import android.hardware.display.DisplayManagerInternal.DisplayTransactionListener;
@@ -34,20 +25,29 @@
 import android.opengl.EGLContext;
 import android.opengl.EGLDisplay;
 import android.opengl.EGLSurface;
-import android.opengl.GLES20;
 import android.opengl.GLES11Ext;
+import android.opengl.GLES20;
 import android.util.Slog;
 import android.view.DisplayInfo;
-import android.view.Surface.OutOfResourcesException;
 import android.view.Surface;
+import android.view.Surface.OutOfResourcesException;
 import android.view.SurfaceControl;
+import android.view.SurfaceControl.Transaction;
 import android.view.SurfaceSession;
 
-import libcore.io.Streams;
-
 import com.android.server.LocalServices;
 import com.android.server.policy.WindowManagerPolicy;
 
+import libcore.io.Streams;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
 /**
  * <p>
  * Animates a screen transition from on to off or off to on by applying
@@ -569,37 +569,31 @@
             mSurfaceSession = new SurfaceSession();
         }
 
-        SurfaceControl.openTransaction();
-        try {
-            if (mSurfaceControl == null) {
-                try {
-                    int flags;
-                    if (mMode == MODE_FADE) {
-                        flags = SurfaceControl.FX_SURFACE_DIM | SurfaceControl.HIDDEN;
-                    } else {
-                        flags = SurfaceControl.OPAQUE | SurfaceControl.HIDDEN;
-                    }
-                    mSurfaceControl = new SurfaceControl.Builder(mSurfaceSession)
-                            .setName("ColorFade")
-                            .setSize(mDisplayWidth, mDisplayHeight)
-                            .setFlags(flags)
-                            .build();
-                } catch (OutOfResourcesException ex) {
-                    Slog.e(TAG, "Unable to create surface.", ex);
-                    return false;
+        if (mSurfaceControl == null) {
+            Transaction t = new Transaction();
+            try {
+                final SurfaceControl.Builder builder =
+                        new SurfaceControl.Builder(mSurfaceSession).setName("ColorFade");
+                if (mMode == MODE_FADE) {
+                    builder.setColorLayer(true);
+                } else {
+                    builder.setBufferSize(mDisplayWidth, mDisplayHeight);
                 }
-
-                mSurfaceControl.setLayerStack(mDisplayLayerStack);
-                mSurfaceControl.setSize(mDisplayWidth, mDisplayHeight);
-                mSurface = new Surface();
-                mSurface.copyFrom(mSurfaceControl);
-
-                mSurfaceLayout = new NaturalSurfaceLayout(mDisplayManagerInternal,
-                        mDisplayId, mSurfaceControl);
-                mSurfaceLayout.onDisplayTransaction();
+                mSurfaceControl = builder.build();
+            } catch (OutOfResourcesException ex) {
+                Slog.e(TAG, "Unable to create surface.", ex);
+                return false;
             }
-        } finally {
-            SurfaceControl.closeTransaction();
+
+            t.setLayerStack(mSurfaceControl, mDisplayLayerStack);
+            t.setWindowCrop(mSurfaceControl, mDisplayWidth, mDisplayHeight);
+            mSurface = new Surface();
+            mSurface.copyFrom(mSurfaceControl);
+
+            mSurfaceLayout = new NaturalSurfaceLayout(mDisplayManagerInternal,
+                    mDisplayId, mSurfaceControl);
+            mSurfaceLayout.onDisplayTransaction(t);
+            t.apply();
         }
         return true;
     }
@@ -746,7 +740,7 @@
         }
 
         @Override
-        public void onDisplayTransaction() {
+        public void onDisplayTransaction(Transaction t) {
             synchronized (this) {
                 if (mSurfaceControl == null) {
                     return;
@@ -755,21 +749,21 @@
                 DisplayInfo displayInfo = mDisplayManagerInternal.getDisplayInfo(mDisplayId);
                 switch (displayInfo.rotation) {
                     case Surface.ROTATION_0:
-                        mSurfaceControl.setPosition(0, 0);
-                        mSurfaceControl.setMatrix(1, 0, 0, 1);
+                        t.setPosition(mSurfaceControl, 0, 0);
+                        t.setMatrix(mSurfaceControl, 1, 0, 0, 1);
                         break;
                     case Surface.ROTATION_90:
-                        mSurfaceControl.setPosition(0, displayInfo.logicalHeight);
-                        mSurfaceControl.setMatrix(0, -1, 1, 0);
+                        t.setPosition(mSurfaceControl, 0, displayInfo.logicalHeight);
+                        t.setMatrix(mSurfaceControl, 0, -1, 1, 0);
                         break;
                     case Surface.ROTATION_180:
-                        mSurfaceControl.setPosition(displayInfo.logicalWidth,
+                        t.setPosition(mSurfaceControl, displayInfo.logicalWidth,
                                 displayInfo.logicalHeight);
-                        mSurfaceControl.setMatrix(-1, 0, 0, -1);
+                        t.setMatrix(mSurfaceControl, -1, 0, 0, -1);
                         break;
                     case Surface.ROTATION_270:
-                        mSurfaceControl.setPosition(displayInfo.logicalWidth, 0);
-                        mSurfaceControl.setMatrix(0, 1, -1, 0);
+                        t.setPosition(mSurfaceControl, displayInfo.logicalWidth, 0);
+                        t.setMatrix(mSurfaceControl, 0, 1, -1, 0);
                         break;
                 }
             }
diff --git a/services/core/java/com/android/server/display/DisplayDevice.java b/services/core/java/com/android/server/display/DisplayDevice.java
index 7bfe9ce..6ee5665 100644
--- a/services/core/java/com/android/server/display/DisplayDevice.java
+++ b/services/core/java/com/android/server/display/DisplayDevice.java
@@ -225,6 +225,8 @@
         viewport.deviceHeight = isRotated ? info.width : info.height;
 
         viewport.uniqueId = info.uniqueId;
+        // TODO(b/112898898) Use an actual port here.
+        viewport.physicalPort = null;
     }
 
     /**
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index e70460a..360a7d1 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -247,9 +247,6 @@
     // device).
     private Point mStableDisplaySize = new Point();
 
-    // Whether the system has finished booting or not.
-    private boolean mSystemReady;
-
     // The top inset of the default display.
     // This gets persisted so that the boot animation knows how to transition from the display's
     // full size to the size configured by the user. Right now we only persist and animate the top
@@ -322,8 +319,6 @@
         PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
         mGlobalDisplayBrightness = pm.getDefaultScreenBrightnessSetting();
         mCurrentUserId = UserHandle.USER_SYSTEM;
-
-        mSystemReady = false;
     }
 
     public void setupSchedulerPolicies() {
@@ -413,10 +408,6 @@
         synchronized (mSyncRoot) {
             mSafeMode = safeMode;
             mOnlyCore = onlyCore;
-            mSystemReady = true;
-            // Just in case the top inset changed before the system was ready. At this point, any
-            // relevant configuration should be in place.
-            recordTopInsetLocked(mLogicalDisplays.get(Display.DEFAULT_DISPLAY));
         }
 
         mHandler.sendEmptyMessage(MSG_REGISTER_ADDITIONAL_DISPLAY_ADAPTERS);
@@ -506,7 +497,7 @@
 
         // List is self-synchronized copy-on-write.
         for (DisplayTransactionListener listener : mDisplayTransactionListeners) {
-            listener.onDisplayTransaction();
+            listener.onDisplayTransaction(t);
         }
     }
 
@@ -1065,10 +1056,7 @@
     }
 
     private void recordTopInsetLocked(@Nullable LogicalDisplay d) {
-        // We must only persist the inset after boot has completed, otherwise we will end up
-        // overwriting the persisted value before the masking flag has been loaded from the
-        // resource overlay.
-        if (!mSystemReady || d == null) {
+        if (d == null) {
             return;
         }
         int topInset = d.getInsets().top;
diff --git a/services/core/java/com/android/server/display/LogicalDisplay.java b/services/core/java/com/android/server/display/LogicalDisplay.java
index 6f726e6..9566598 100644
--- a/services/core/java/com/android/server/display/LogicalDisplay.java
+++ b/services/core/java/com/android/server/display/LogicalDisplay.java
@@ -57,8 +57,6 @@
  * </p>
  */
 final class LogicalDisplay {
-    private static final String PROP_MASKING_INSET_TOP = "persist.sys.displayinset.top";
-
     private final DisplayInfo mBaseDisplayInfo = new DisplayInfo();
 
     // The layer stack we use when the display has been blanked to prevent any
diff --git a/services/core/java/com/android/server/input/ConfigurationProcessor.java b/services/core/java/com/android/server/input/ConfigurationProcessor.java
new file mode 100644
index 0000000..970e86a
--- /dev/null
+++ b/services/core/java/com/android/server/input/ConfigurationProcessor.java
@@ -0,0 +1,121 @@
+/*
+ * 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.server.input;
+
+import android.text.TextUtils;
+import android.util.Pair;
+import android.util.Slog;
+import android.util.Xml;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.XmlUtils;
+
+import org.xmlpull.v1.XmlPullParser;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
+
+
+class ConfigurationProcessor {
+    private static final String TAG = "ConfigurationProcessor";
+
+    static List<String> processExcludedDeviceNames(InputStream xml) throws Exception {
+        List<String> names = new ArrayList<>();
+        try (InputStreamReader confReader = new InputStreamReader(xml)) {
+            XmlPullParser parser = Xml.newPullParser();
+            parser.setInput(confReader);
+            XmlUtils.beginDocument(parser, "devices");
+            while (true) {
+                XmlUtils.nextElement(parser);
+                if (!"device".equals(parser.getName())) {
+                    break;
+                }
+                String name = parser.getAttributeValue(null, "name");
+                if (name != null) {
+                    names.add(name);
+                }
+            }
+        }
+        return names;
+    }
+
+    /**
+     * Parse the configuration for input port associations.
+     *
+     * Configuration format:
+     * <code>
+     * &lt;ports>
+     *     &lt;port display="0" input="usb-xhci-hcd.0.auto-1.4.3/input0" />
+     *     &lt;port display="1" input="usb-xhci-hcd.0.auto-1.4.2/input0" />
+     * &lt;/ports>
+     * </code>
+     *
+     * In this example, any input device that has physical port of
+     * "usb-xhci-hcd.0.auto-1.4.3/input0" will be associated with a display
+     * that has the physical port "0". If such a display does not exist, the input device
+     * will be disabled and no input events will be dispatched from that input device until a
+     * matching display appears. Likewise, an input device that has port "..1.4.2.." will have
+     * its input events forwarded to a display that has physical port of "1".
+     *
+     * Note: display port must be a numeric value, and this is checked at runtime for validity.
+     * At the same time, it is specified as a string for simplicity.
+     *
+     * Note: do not confuse "display id" with "display port".
+     * The "display port" is the physical port on which the display is connected. This could
+     * be something like HDMI0, HDMI1, etc. For virtual displays, "display port" will be null.
+     * The "display id" is a way to identify a particular display, and is not a stable API.
+     * All displays, including virtual ones, will have a display id.
+     *
+     * Return the pairs of associations. The first item in the pair is the input port,
+     * the second item in the pair is the display port.
+     */
+    @VisibleForTesting
+    static List<Pair<String, String>> processInputPortAssociations(InputStream xml)
+            throws Exception {
+        List<Pair<String, String>> associations = new ArrayList<>();
+        try (InputStreamReader confReader = new InputStreamReader(xml)) {
+            XmlPullParser parser = Xml.newPullParser();
+            parser.setInput(confReader);
+            XmlUtils.beginDocument(parser, "ports");
+
+            while (true) {
+                XmlUtils.nextElement(parser);
+                String entryName = parser.getName();
+                if (!"port".equals(entryName)) {
+                    break;
+                }
+                String inputPort = parser.getAttributeValue(null, "input");
+                String displayPort = parser.getAttributeValue(null, "display");
+                if (TextUtils.isEmpty(inputPort) || TextUtils.isEmpty(displayPort)) {
+                    // This is likely an error by an OEM during device configuration
+                    Slog.wtf(TAG, "Ignoring incomplete entry");
+                    continue;
+                }
+                try {
+                    Integer.parseUnsignedInt(displayPort);
+                } catch (NumberFormatException e) {
+                    Slog.wtf(TAG, "Display port should be an integer");
+                    continue;
+                }
+                associations.add(new Pair<>(inputPort, displayPort));
+            }
+        }
+        return associations;
+    }
+}
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index 3a31c9c..d96b6cb 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -64,18 +64,18 @@
 import android.provider.Settings.SettingNotFoundException;
 import android.text.TextUtils;
 import android.util.Log;
+import android.util.Pair;
 import android.util.Slog;
 import android.util.SparseArray;
-import android.util.Xml;
 import android.view.Display;
 import android.view.IInputFilter;
 import android.view.IInputFilterHost;
 import android.view.IWindow;
-import android.view.InputChannel;
 import android.view.InputApplicationHandle;
-import android.view.InputWindowHandle;
+import android.view.InputChannel;
 import android.view.InputDevice;
 import android.view.InputEvent;
+import android.view.InputWindowHandle;
 import android.view.KeyEvent;
 import android.view.PointerIcon;
 import android.view.Surface;
@@ -97,14 +97,13 @@
 import libcore.io.IoUtils;
 import libcore.io.Streams;
 
-import org.xmlpull.v1.XmlPullParser;
-
 import java.io.File;
 import java.io.FileDescriptor;
+import java.io.FileInputStream;
 import java.io.FileNotFoundException;
-import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.util.ArrayList;
@@ -124,6 +123,7 @@
     static final boolean DEBUG = false;
 
     private static final String EXCLUDED_DEVICES_PATH = "etc/excluded-input-devices.xml";
+    private static final String PORT_ASSOCIATIONS_PATH = "etc/input-port-associations.xml";
 
     private static final int MSG_DELIVER_INPUT_DEVICES_CHANGED = 1;
     private static final int MSG_SWITCH_KEYBOARD_LAYOUT = 2;
@@ -1443,25 +1443,10 @@
         }
     }
 
-    public void setInputWindows(InputWindowHandle[] windowHandles, int displayId) {
-        nativeSetInputWindows(mPtr, windowHandles, displayId);
-    }
-
     public void setFocusedApplication(int displayId, InputApplicationHandle application) {
         nativeSetFocusedApplication(mPtr, displayId, application);
     }
 
-    public void setFocusedWindow(InputWindowHandle focusedWindowHandle) {
-        final IWindow newFocusedWindow =
-            focusedWindowHandle != null ? focusedWindowHandle.clientWindow : null;
-        if (mFocusedWindow != newFocusedWindow) {
-            if (mFocusedWindowHasCapture) {
-                setPointerCapture(false);
-            }
-            mFocusedWindow = newFocusedWindow;
-        }
-    }
-
     public void setFocusedDisplay(int displayId) {
         nativeSetFocusedDisplay(mPtr, displayId);
     }
@@ -1799,11 +1784,22 @@
         mWindowManagerCallbacks.notifyInputChannelBroken(token);
     }
 
+    // Native callback
+    private void notifyFocusChanged(IBinder token) {
+        if (mFocusedWindow != token) {
+            if (mFocusedWindowHasCapture) {
+                setPointerCapture(false);
+            }
+            if (token instanceof IWindow) {
+                mFocusedWindow = (IWindow) token;
+            }
+        }
+    }
+
     // Native callback.
-    private long notifyANR(InputApplicationHandle inputApplicationHandle,
-            IBinder token, String reason) {
+    private long notifyANR(IBinder token, String reason) {
         return mWindowManagerCallbacks.notifyANR(
-                inputApplicationHandle, token, reason);
+                token, reason);
     }
 
     // Native callback.
@@ -1834,14 +1830,12 @@
     }
 
     // Native callback.
-    private long interceptKeyBeforeDispatching(IBinder focus,
-            KeyEvent event, int policyFlags) {
+    private long interceptKeyBeforeDispatching(IBinder focus, KeyEvent event, int policyFlags) {
         return mWindowManagerCallbacks.interceptKeyBeforeDispatching(focus, event, policyFlags);
     }
 
     // Native callback.
-    private KeyEvent dispatchUnhandledKey(IBinder focus,
-            KeyEvent event, int policyFlags) {
+    private KeyEvent dispatchUnhandledKey(IBinder focus, KeyEvent event, int policyFlags) {
         return mWindowManagerCallbacks.dispatchUnhandledKey(focus, event, policyFlags);
     }
 
@@ -1858,11 +1852,9 @@
     }
 
     // Native callback.
-    private String[] getExcludedDeviceNames() {
-        ArrayList<String> names = new ArrayList<String>();
-
+    private static String[] getExcludedDeviceNames() {
+        List<String> names = new ArrayList<>();
         // Read partner-provided list of excluded input devices
-        XmlPullParser parser = null;
         // Environment.getRootDirectory() is a fancy way of saying ANDROID_ROOT or "/system".
         final File[] baseDirs = {
             Environment.getRootDirectory(),
@@ -1870,33 +1862,52 @@
         };
         for (File baseDir: baseDirs) {
             File confFile = new File(baseDir, EXCLUDED_DEVICES_PATH);
-            FileReader confreader = null;
             try {
-                confreader = new FileReader(confFile);
-                parser = Xml.newPullParser();
-                parser.setInput(confreader);
-                XmlUtils.beginDocument(parser, "devices");
-
-                while (true) {
-                    XmlUtils.nextElement(parser);
-                    if (!"device".equals(parser.getName())) {
-                        break;
-                    }
-                    String name = parser.getAttributeValue(null, "name");
-                    if (name != null) {
-                        names.add(name);
-                    }
-                }
+                InputStream stream = new FileInputStream(confFile);
+                names.addAll(ConfigurationProcessor.processExcludedDeviceNames(stream));
             } catch (FileNotFoundException e) {
                 // It's ok if the file does not exist.
             } catch (Exception e) {
-                Slog.e(TAG, "Exception while parsing '" + confFile.getAbsolutePath() + "'", e);
-            } finally {
-                try { if (confreader != null) confreader.close(); } catch (IOException e) { }
+                Slog.e(TAG, "Could not parse '" + confFile.getAbsolutePath() + "'", e);
             }
         }
+        return names.toArray(new String[0]);
+    }
 
-        return names.toArray(new String[names.size()]);
+    /**
+     * Flatten a list of pairs into a list, with value positioned directly next to the key
+     * @return Flattened list
+     */
+    private static <T> List<T> flatten(@NonNull List<Pair<T, T>> pairs) {
+        List<T> list = new ArrayList<>(pairs.size() * 2);
+        for (Pair<T, T> pair : pairs) {
+            list.add(pair.first);
+            list.add(pair.second);
+        }
+        return list;
+    }
+
+    /**
+     * Ports are highly platform-specific, so only allow these to be specified in the vendor
+     * directory.
+     */
+    // Native callback
+    private static String[] getInputPortAssociations() {
+        File baseDir = Environment.getVendorDirectory();
+        File confFile = new File(baseDir, PORT_ASSOCIATIONS_PATH);
+
+        try {
+            InputStream stream = new FileInputStream(confFile);
+            List<Pair<String, String>> associations =
+                    ConfigurationProcessor.processInputPortAssociations(stream);
+            List<String> associationList = flatten(associations);
+            return associationList.toArray(new String[0]);
+        } catch (FileNotFoundException e) {
+            // Most of the time, file will not exist, which is expected.
+        } catch (Exception e) {
+            Slog.e(TAG, "Could not parse '" + confFile.getAbsolutePath() + "'", e);
+        }
+        return new String[0];
     }
 
     // Native callback.
@@ -1993,8 +2004,7 @@
 
         public void notifyInputChannelBroken(IBinder token);
 
-        public long notifyANR(InputApplicationHandle inputApplicationHandle,
-                IBinder token, String reason);
+        public long notifyANR(IBinder token, String reason);
 
         public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags);
 
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index 9d5d65d..a8da968 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -94,6 +94,7 @@
 import android.service.vr.IVrStateCallbacks;
 import android.text.TextUtils;
 import android.text.style.SuggestionSpan;
+import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.AtomicFile;
 import android.util.EventLog;
@@ -179,7 +180,6 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.WeakHashMap;
@@ -321,7 +321,7 @@
     // All known input methods.  mMethodMap also serves as the global
     // lock for this class.
     final ArrayList<InputMethodInfo> mMethodList = new ArrayList<>();
-    final HashMap<String, InputMethodInfo> mMethodMap = new HashMap<>();
+    final ArrayMap<String, InputMethodInfo> mMethodMap = new ArrayMap<>();
     private final LruCache<SuggestionSpan, InputMethodInfo> mSecureSuggestionSpans =
             new LruCache<>(SECURE_SUGGESTION_SPANS_MAX_SIZE);
     private final InputMethodSubtypeSwitchingController mSwitchingController;
@@ -457,7 +457,7 @@
         }
     }
 
-    final HashMap<IBinder, ClientState> mClients = new HashMap<>();
+    final ArrayMap<IBinder, ClientState> mClients = new ArrayMap<>();
 
     /**
      * Set once the system is ready to run third party code.
@@ -553,8 +553,8 @@
     private InputMethodSubtype mCurrentSubtype;
 
     // This list contains the pairs of InputMethodInfo and InputMethodSubtype.
-    private final HashMap<InputMethodInfo, ArrayList<InputMethodSubtype>>
-            mShortcutInputMethodsAndSubtypes = new HashMap<>();
+    private final ArrayMap<InputMethodInfo, ArrayList<InputMethodSubtype>>
+            mShortcutInputMethodsAndSubtypes = new ArrayMap<>();
 
     // Was the keyguard locked when this client became current?
     private boolean mCurClientInKeyguard;
@@ -1781,7 +1781,9 @@
         final int callerPid = Binder.getCallingPid();
         synchronized (mMethodMap) {
             // TODO: Optimize this linear search.
-            for (ClientState state : mClients.values()) {
+            final int numClients = mClients.size();
+            for (int i = 0; i < numClients; ++i) {
+                final ClientState state = mClients.valueAt(i);
                 if (state.uid == callerUid && state.pid == callerPid
                         && state.selfReportedDisplayId == selfReportedDisplayId) {
                     throw new SecurityException("uid=" + callerUid + "/pid=" + callerPid
@@ -2192,8 +2194,9 @@
 
     void clearCurMethodLocked() {
         if (mCurMethod != null) {
-            for (ClientState cs : mClients.values()) {
-                clearClientSessionLocked(cs);
+            final int numClients = mClients.size();
+            for (int i = 0; i < numClients; ++i) {
+                clearClientSessionLocked(mClients.valueAt(i));
             }
 
             finishSessionLocked(mEnabledSession);
@@ -2417,8 +2420,9 @@
                         .setContentText(summary)
                         .setContentIntent(mImeSwitchPendingIntent);
                 try {
+                    // TODO(b/120076400): Figure out what is the best behavior
                     if ((mNotificationManager != null)
-                            && !mIWindowManager.hasNavigationBar()) {
+                            && !mIWindowManager.hasNavigationBar(DEFAULT_DISPLAY)) {
                         if (DEBUG) {
                             Slog.d(TAG, "--- show notification: label =  " + summary);
                         }
@@ -3670,7 +3674,7 @@
                         | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS),
                 mSettings.getCurrentUserId());
 
-        final HashMap<String, List<InputMethodSubtype>> additionalSubtypeMap =
+        final ArrayMap<String, List<InputMethodSubtype>> additionalSubtypeMap =
                 mFileManager.getAllAdditionalInputMethodSubtypes();
         for (int i = 0; i < services.size(); ++i) {
             ResolveInfo ri = services.get(i);
@@ -3824,19 +3828,15 @@
         if (DEBUG) Slog.v(TAG, "Current IME: " + lastInputMethodId);
 
         synchronized (mMethodMap) {
-            final HashMap<InputMethodInfo, List<InputMethodSubtype>> immis =
-                    mSettings.getExplicitlyOrImplicitlyEnabledInputMethodsAndSubtypeListLocked(
-                            mContext);
-            if (immis == null || immis.size() == 0) {
+            final List<ImeSubtypeListItem> imList =
+                    mSwitchingController.getSortedInputMethodAndSubtypeListLocked(
+                            showAuxSubtypes, isScreenLocked);
+            if (imList.isEmpty()) {
                 return;
             }
 
             hideInputMethodMenuLocked();
 
-            final List<ImeSubtypeListItem> imList =
-                    mSwitchingController.getSortedInputMethodAndSubtypeListLocked(
-                            showAuxSubtypes, isScreenLocked);
-
             if (lastInputMethodSubtypeId == NOT_A_SUBTYPE_ID) {
                 final InputMethodSubtype currentSubtype = getCurrentInputMethodSubtypeLocked();
                 if (currentSubtype != null) {
@@ -4310,10 +4310,10 @@
         private static final String ATTR_IS_AUXILIARY = "isAuxiliary";
         private static final String ATTR_IS_ASCII_CAPABLE = "isAsciiCapable";
         private final AtomicFile mAdditionalInputMethodSubtypeFile;
-        private final HashMap<String, InputMethodInfo> mMethodMap;
-        private final HashMap<String, List<InputMethodSubtype>> mAdditionalSubtypesMap =
-                new HashMap<>();
-        public InputMethodFileManager(HashMap<String, InputMethodInfo> methodMap, int userId) {
+        private final ArrayMap<String, InputMethodInfo> mMethodMap;
+        private final ArrayMap<String, List<InputMethodSubtype>> mAdditionalSubtypesMap =
+                new ArrayMap<>();
+        InputMethodFileManager(ArrayMap<String, InputMethodInfo> methodMap, int userId) {
             if (methodMap == null) {
                 throw new NullPointerException("methodMap is null");
             }
@@ -4365,15 +4365,15 @@
             }
         }
 
-        public HashMap<String, List<InputMethodSubtype>> getAllAdditionalInputMethodSubtypes() {
+        public ArrayMap<String, List<InputMethodSubtype>> getAllAdditionalInputMethodSubtypes() {
             synchronized (mMethodMap) {
                 return mAdditionalSubtypesMap;
             }
         }
 
         private static void writeAdditionalInputMethodSubtypes(
-                HashMap<String, List<InputMethodSubtype>> allSubtypes, AtomicFile subtypesFile,
-                HashMap<String, InputMethodInfo> methodMap) {
+                ArrayMap<String, List<InputMethodSubtype>> allSubtypes, AtomicFile subtypesFile,
+                ArrayMap<String, InputMethodInfo> methodMap) {
             // Safety net for the case that this function is called before methodMap is set.
             final boolean isSetMethodMap = methodMap != null && methodMap.size() > 0;
             FileOutputStream fos = null;
@@ -4427,7 +4427,7 @@
         }
 
         private static void readAdditionalInputMethodSubtypes(
-                HashMap<String, List<InputMethodSubtype>> allSubtypes, AtomicFile subtypesFile) {
+                ArrayMap<String, List<InputMethodSubtype>> allSubtypes, AtomicFile subtypesFile) {
             if (allSubtypes == null || subtypesFile == null) return;
             allSubtypes.clear();
             try (final FileInputStream fis = subtypesFile.openRead()) {
@@ -4625,7 +4625,9 @@
                 info.dump(p, "    ");
             }
             p.println("  Clients:");
-            for (ClientState ci : mClients.values()) {
+            final int numClients = mClients.size();
+            for (int i = 0; i < numClients; ++i) {
+                final ClientState ci = mClients.valueAt(i);
                 p.println("  Client " + ci + ":");
                 p.println("    client=" + ci.client);
                 p.println("    inputContext=" + ci.inputContext);
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java b/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java
index 77b2fee..b13c307 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.text.TextUtils;
+import android.util.ArraySet;
 import android.util.Log;
 import android.util.Printer;
 import android.util.Slog;
@@ -31,13 +32,9 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Objects;
-import java.util.TreeMap;
 
 /**
  * InputMethodSubtypeSwitchingController controls the switching behavior of the subtypes.
@@ -113,6 +110,7 @@
          *   <li>{@link #mIsSystemLocale}</li>
          *   <li>{@link #mIsSystemLanguage}</li>
          *   <li>{@link #mSubtypeName}</li>
+         *   <li>{@link #mImi} with {@link InputMethodInfo#getId()}</li>
          * </ol>
          * Note: this class has a natural ordering that is inconsistent with {@link #equals(Object).
          * This method doesn't compare {@link #mSubtypeId} but {@link #equals(Object)} does.
@@ -137,7 +135,11 @@
             if (result != 0) {
                 return result;
             }
-            return compareNullableCharSequences(mSubtypeName, other.mSubtypeName);
+            result = compareNullableCharSequences(mSubtypeName, other.mSubtypeName);
+            if (result != 0) {
+                return result;
+            }
+            return mImi.getId().compareTo(other.mImi.getId());
         }
 
         @Override
@@ -179,31 +181,10 @@
             mSystemLocaleStr = locale != null ? locale.toString() : "";
         }
 
-        private final TreeMap<InputMethodInfo, List<InputMethodSubtype>> mSortedImmis =
-                new TreeMap<>(
-                        new Comparator<InputMethodInfo>() {
-                            @Override
-                            public int compare(InputMethodInfo imi1, InputMethodInfo imi2) {
-                                if (imi2 == null)
-                                    return 0;
-                                if (imi1 == null)
-                                    return 1;
-                                if (mPm == null) {
-                                    return imi1.getId().compareTo(imi2.getId());
-                                }
-                                CharSequence imiId1 = imi1.loadLabel(mPm) + "/" + imi1.getId();
-                                CharSequence imiId2 = imi2.loadLabel(mPm) + "/" + imi2.getId();
-                                return imiId1.toString().compareTo(imiId2.toString());
-                            }
-                        });
-
         public List<ImeSubtypeListItem> getSortedInputMethodAndSubtypeList(
                 boolean includeAuxiliarySubtypes, boolean isScreenLocked) {
-            final ArrayList<ImeSubtypeListItem> imList = new ArrayList<>();
-            final HashMap<InputMethodInfo, List<InputMethodSubtype>> immis =
-                    mSettings.getExplicitlyOrImplicitlyEnabledInputMethodsAndSubtypeListLocked(
-                            mContext);
-            if (immis == null || immis.size() == 0) {
+            final ArrayList<InputMethodInfo> imis = mSettings.getEnabledInputMethodListLocked();
+            if (imis.isEmpty()) {
                 return Collections.emptyList();
             }
             if (isScreenLocked && includeAuxiliarySubtypes) {
@@ -212,14 +193,13 @@
                 }
                 includeAuxiliarySubtypes = false;
             }
-            mSortedImmis.clear();
-            mSortedImmis.putAll(immis);
-            for (InputMethodInfo imi : mSortedImmis.keySet()) {
-                if (imi == null) {
-                    continue;
-                }
-                List<InputMethodSubtype> explicitlyOrImplicitlyEnabledSubtypeList = immis.get(imi);
-                HashSet<String> enabledSubtypeSet = new HashSet<>();
+            final ArrayList<ImeSubtypeListItem> imList = new ArrayList<>();
+            final int numImes = imis.size();
+            for (int i = 0; i < numImes; ++i) {
+                final InputMethodInfo imi = imis.get(i);
+                final List<InputMethodSubtype> explicitlyOrImplicitlyEnabledSubtypeList =
+                        mSettings.getEnabledInputMethodSubtypeListLocked(mContext, imi, true);
+                final ArraySet<String> enabledSubtypeSet = new ArraySet<>();
                 for (InputMethodSubtype subtype : explicitlyOrImplicitlyEnabledSubtypeList) {
                     enabledSubtypeSet.add(String.valueOf(subtype.hashCode()));
                 }
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
index 154e8b3..8e3f351 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
@@ -31,6 +31,7 @@
 import android.os.RemoteException;
 import android.provider.Settings;
 import android.text.TextUtils;
+import android.util.ArrayMap;
 import android.util.Pair;
 import android.util.Printer;
 import android.util.Slog;
@@ -45,7 +46,6 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Locale;
@@ -473,7 +473,7 @@
         final int numSubtypes = subtypes.size();
 
         // Handle overridesImplicitlyEnabledSubtype mechanism.
-        final HashMap<String, InputMethodSubtype> applicableModeAndSubtypesMap = new HashMap<>();
+        final ArrayMap<String, InputMethodSubtype> applicableModeAndSubtypesMap = new ArrayMap<>();
         for (int i = 0; i < numSubtypes; ++i) {
             // scan overriding implicitly enabled subtypes.
             final InputMethodSubtype subtype = subtypes.get(i);
@@ -488,8 +488,8 @@
             return new ArrayList<>(applicableModeAndSubtypesMap.values());
         }
 
-        final HashMap<String, ArrayList<InputMethodSubtype>> nonKeyboardSubtypesMap =
-                new HashMap<>();
+        final ArrayMap<String, ArrayList<InputMethodSubtype>> nonKeyboardSubtypesMap =
+                new ArrayMap<>();
         final ArrayList<InputMethodSubtype> keyboardSubtypes = new ArrayList<>();
 
         for (int i = 0; i < numSubtypes; ++i) {
@@ -761,12 +761,12 @@
 
         private final Resources mRes;
         private final ContentResolver mResolver;
-        private final HashMap<String, InputMethodInfo> mMethodMap;
+        private final ArrayMap<String, InputMethodInfo> mMethodMap;
 
         /**
          * On-memory data store to emulate when {@link #mCopyOnWrite} is {@code true}.
          */
-        private final HashMap<String, String> mCopyOnWriteDataStore = new HashMap<>();
+        private final ArrayMap<String, String> mCopyOnWriteDataStore = new ArrayMap<>();
 
         private boolean mCopyOnWrite = false;
         @NonNull
@@ -812,7 +812,7 @@
 
         public InputMethodSettings(
                 Resources res, ContentResolver resolver,
-                HashMap<String, InputMethodInfo> methodMap, ArrayList<InputMethodInfo> methodList,
+                ArrayMap<String, InputMethodInfo> methodMap, ArrayList<InputMethodInfo> methodList,
                 @UserIdInt int userId, boolean copyOnWrite) {
             mRes = res;
             mResolver = resolver;
@@ -1277,17 +1277,6 @@
             }
         }
 
-        public HashMap<InputMethodInfo, List<InputMethodSubtype>>
-                getExplicitlyOrImplicitlyEnabledInputMethodsAndSubtypeListLocked(Context context) {
-            HashMap<InputMethodInfo, List<InputMethodSubtype>> enabledInputMethodAndSubtypes =
-                    new HashMap<>();
-            for (InputMethodInfo imi: getEnabledInputMethodListLocked()) {
-                enabledInputMethodAndSubtypes.put(
-                        imi, getEnabledInputMethodSubtypeListLocked(context, imi, true));
-            }
-            return enabledInputMethodAndSubtypes;
-        }
-
         public void dumpLocked(final Printer pw, final String prefix) {
             pw.println(prefix + "mCurrentUserId=" + mCurrentUserId);
             pw.println(prefix + "mCurrentProfileIds=" + Arrays.toString(mCurrentProfileIds));
diff --git a/services/core/java/com/android/server/inputmethod/LocaleUtils.java b/services/core/java/com/android/server/inputmethod/LocaleUtils.java
index 4958ece..7a6853a 100644
--- a/services/core/java/com/android/server/inputmethod/LocaleUtils.java
+++ b/services/core/java/com/android/server/inputmethod/LocaleUtils.java
@@ -22,10 +22,10 @@
 import android.icu.util.ULocale;
 import android.os.LocaleList;
 import android.text.TextUtils;
+import android.util.ArrayMap;
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 
@@ -155,7 +155,7 @@
         }
 
         final int numPreferredLocales = preferredLocales.size();
-        final HashMap<String, ScoreEntry> scoreboard = new HashMap<>();
+        final ArrayMap<String, ScoreEntry> scoreboard = new ArrayMap<>();
         final byte[] score = new byte[numPreferredLocales];
         final ULocale[] preferredULocaleCache = new ULocale[numPreferredLocales];
 
@@ -197,7 +197,11 @@
             }
         }
 
-        final ScoreEntry[] result = scoreboard.values().toArray(new ScoreEntry[scoreboard.size()]);
+        final int numEntries = scoreboard.size();
+        final ScoreEntry[] result = new ScoreEntry[numEntries];
+        for (int i = 0; i < numEntries; ++i) {
+            result[i] = scoreboard.valueAt(i);
+        }
         Arrays.sort(result);
         for (final ScoreEntry entry : result) {
             dest.add(sources.get(entry.mIndex));
diff --git a/services/core/java/com/android/server/intelligence/IntelligenceManagerInternal.java b/services/core/java/com/android/server/intelligence/IntelligenceManagerInternal.java
index 0ed56ff..d5be26a 100644
--- a/services/core/java/com/android/server/intelligence/IntelligenceManagerInternal.java
+++ b/services/core/java/com/android/server/intelligence/IntelligenceManagerInternal.java
@@ -15,19 +15,66 @@
  */
 package com.android.server.intelligence;
 
+import android.annotation.NonNull;
 import android.annotation.UserIdInt;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.view.autofill.AutofillId;
+import android.view.autofill.IAutoFillManagerClient;
 
 /**
  * Intelligence Manager local system service interface.
  *
  * @hide Only for use within the system server.
  */
+//TODO(b/111276913): rename once the final name is defined
 public abstract class IntelligenceManagerInternal {
 
     /**
      * Checks whether the given {@code uid} owns the
-     * {@link android.service.intelligence.IntelligenceService} implementation associated with the
-     * given {@code userId}.
+     * {@link android.service.intelligence.SmartSuggestionsService} implementation associated with
+     * the given {@code userId}.
      */
     public abstract boolean isIntelligenceServiceForUser(int uid, @UserIdInt int userId);
+
+    /**
+     * Notifies the intelligence service of new assist data for the given activity.
+     *
+     * @return {@code false} if there was no service set for the given user
+     */
+    public abstract boolean sendActivityAssistData(@UserIdInt int userId,
+            @NonNull IBinder activityToken, @NonNull Bundle data);
+
+    /**
+     * Asks the intelligence service to provide Augmented Autofill for a given activity.
+     *
+     * @param userId user handle
+     * @param client binder used to communicate with the activity that originated this request.
+     * @param activityToken activity that originated this request.
+     * @param autofillSessionId autofill session id (must be used on {@code client} calls.
+     * @param focusedId id of the the field that triggered this request.
+     *
+     * @return {@code false} if the service cannot handle this request, {@code true} otherwise.
+     * <b>NOTE: </b> it must return right away; typically it will return {@code false} if the
+     * service is disabled (or the activity blacklisted).
+     */
+    public abstract AugmentedAutofillCallback requestAutofill(@UserIdInt int userId,
+            @NonNull IAutoFillManagerClient client, @NonNull IBinder activityToken,
+            int autofillSessionId, @NonNull AutofillId focusedId);
+
+    /**
+     * Callback used by the Autofill Session to communicate with the Augmented Autofill service.
+     */
+    public interface AugmentedAutofillCallback {
+        // TODO(b/111330312): this method is calling when the Autofill session is destroyed, the
+        // main reason being the cases where user tap HOME.
+        // Right now it's completely destroying the UI, but we need to decide whether / how to
+        // properly recover it later (for example, if the user switches back to the activity,
+        // should it be restored? Right not it kind of is, because Autofill's Session trigger a
+        // new FillRequest, which in turn triggers the Augmented Autofill request again)
+        /**
+         * Destroys the Autofill UI.
+         */
+        void destroy();
+    }
 }
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java
index 9e6e381..d5e4681 100644
--- a/services/core/java/com/android/server/location/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/GnssLocationProvider.java
@@ -97,8 +97,8 @@
  *
  * {@hide}
  */
-public class GnssLocationProvider implements LocationProviderInterface, InjectNtpTimeCallback,
-        GnssSatelliteBlacklistCallback {
+public class GnssLocationProvider extends LocationProviderInterface
+        implements InjectNtpTimeCallback, GnssSatelliteBlacklistCallback {
 
     private static final String TAG = "GnssLocationProvider";
 
diff --git a/services/core/java/com/android/server/location/LocationProviderInterface.java b/services/core/java/com/android/server/location/LocationProviderInterface.java
index 6f09232..6785964 100644
--- a/services/core/java/com/android/server/location/LocationProviderInterface.java
+++ b/services/core/java/com/android/server/location/LocationProviderInterface.java
@@ -16,33 +16,63 @@
 
 package com.android.server.location;
 
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
+import android.location.LocationProvider;
+import android.os.Bundle;
+import android.os.WorkSource;
 
 import com.android.internal.location.ProviderProperties;
 import com.android.internal.location.ProviderRequest;
 
-
-import android.os.Bundle;
-import android.os.WorkSource;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
 
 /**
  * Location Manager's interface for location providers.
  * @hide
  */
-public interface LocationProviderInterface {
-    public String getName();
+public abstract class LocationProviderInterface {
 
-    public void enable();
-    public void disable();
-    public boolean isEnabled();
-    public void setRequest(ProviderRequest request, WorkSource source);
+    /** Get name. */
+    public abstract String getName();
 
-    public void dump(FileDescriptor fd, PrintWriter pw, String[] args);
+    /** Enable. */
+    public abstract void enable();
 
-    // --- deprecated (but still supported) ---
-    public ProviderProperties getProperties();
-    public int getStatus(Bundle extras);
-    public long getStatusUpdateTime();
-    public boolean sendExtraCommand(String command, Bundle extras);
+    /** Disable. */
+    public abstract void disable();
+
+    /** Is enabled. */
+    public abstract boolean isEnabled();
+
+    /** Set request. */
+    public abstract void setRequest(ProviderRequest request, WorkSource source);
+
+    /** dump. */
+    public abstract void dump(FileDescriptor fd, PrintWriter pw, String[] args);
+
+    /** Get properties. */
+    public abstract ProviderProperties getProperties();
+
+    /**
+     * Get status.
+     *
+     * @deprecated Will be removed in a future release.
+     */
+    @Deprecated
+    public int getStatus(Bundle extras) {
+        return LocationProvider.AVAILABLE;
+    }
+
+    /**
+     * Get status update time.
+     *
+     * @deprecated Will be removed in a future release.
+     */
+    @Deprecated
+    public long getStatusUpdateTime() {
+        return 0;
+    }
+
+    /** Send extra command. */
+    public abstract boolean sendExtraCommand(String command, Bundle extras);
 }
diff --git a/services/core/java/com/android/server/location/LocationProviderProxy.java b/services/core/java/com/android/server/location/LocationProviderProxy.java
index bb86b48..b408414 100644
--- a/services/core/java/com/android/server/location/LocationProviderProxy.java
+++ b/services/core/java/com/android/server/location/LocationProviderProxy.java
@@ -41,7 +41,7 @@
 /**
  * Proxy for ILocationProvider implementations.
  */
-public class LocationProviderProxy implements LocationProviderInterface {
+public class LocationProviderProxy extends LocationProviderInterface {
     private static final String TAG = "LocationProviderProxy";
     private static final boolean D = LocationManagerService.D;
 
diff --git a/services/core/java/com/android/server/location/MockProvider.java b/services/core/java/com/android/server/location/MockProvider.java
index 8578761..145aee3 100644
--- a/services/core/java/com/android/server/location/MockProvider.java
+++ b/services/core/java/com/android/server/location/MockProvider.java
@@ -25,31 +25,31 @@
 import android.util.Log;
 import android.util.PrintWriterPrinter;
 
+import com.android.internal.location.ProviderProperties;
+import com.android.internal.location.ProviderRequest;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 
-import com.android.internal.location.ProviderProperties;
-import com.android.internal.location.ProviderRequest;
-
 /**
  * A mock location provider used by LocationManagerService to implement test providers.
  *
  * {@hide}
  */
-public class MockProvider implements LocationProviderInterface {
+public class MockProvider extends LocationProviderInterface {
     private final String mName;
     private final ProviderProperties mProperties;
     private final ILocationManager mLocationManager;
 
     private final Location mLocation;
-    private final Bundle mExtras = new Bundle();
+
+    private boolean mHasLocation;
+    private boolean mEnabled;
+
 
     private int mStatus;
     private long mStatusUpdateTime;
-    private boolean mHasLocation;
-    private boolean mHasStatus;
-    private boolean mEnabled;
+    private Bundle mExtras;
 
     private static final String TAG = "MockProvider";
 
@@ -61,6 +61,10 @@
         mLocationManager = locationManager;
         mProperties = properties;
         mLocation = new Location(name);
+
+        mStatus = LocationProvider.AVAILABLE;
+        mStatusUpdateTime = 0L;
+        mExtras = null;
     }
 
     @Override
@@ -90,13 +94,12 @@
 
     @Override
     public int getStatus(Bundle extras) {
-        if (mHasStatus) {
+        if (mExtras != null) {
             extras.clear();
             extras.putAll(mExtras);
-            return mStatus;
-        } else {
-            return LocationProvider.AVAILABLE;
         }
+
+        return mStatus;
     }
 
     @Override
@@ -120,19 +123,14 @@
         mHasLocation = false;
     }
 
+    /**
+     * @deprecated Will be removed in a future release.
+     */
+    @Deprecated
     public void setStatus(int status, Bundle extras, long updateTime) {
         mStatus = status;
         mStatusUpdateTime = updateTime;
-        mExtras.clear();
-        if (extras != null) {
-            mExtras.putAll(extras);
-        }
-        mHasStatus = true;
-    }
-
-    public void clearStatus() {
-        mHasStatus = false;
-        mStatusUpdateTime = 0;
+        mExtras = extras;
     }
 
     @Override
@@ -145,9 +143,6 @@
         pw.println(prefix + "mHasLocation=" + mHasLocation);
         pw.println(prefix + "mLocation:");
         mLocation.dump(new PrintWriterPrinter(pw), prefix + "  ");
-        pw.println(prefix + "mHasStatus=" + mHasStatus);
-        pw.println(prefix + "mStatus=" + mStatus);
-        pw.println(prefix + "mStatusUpdateTime=" + mStatusUpdateTime);
         pw.println(prefix + "mExtras=" + mExtras);
     }
 
diff --git a/services/core/java/com/android/server/location/PassiveProvider.java b/services/core/java/com/android/server/location/PassiveProvider.java
index 71bae07..99c9214 100644
--- a/services/core/java/com/android/server/location/PassiveProvider.java
+++ b/services/core/java/com/android/server/location/PassiveProvider.java
@@ -16,22 +16,20 @@
 
 package com.android.server.location;
 
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-
-import com.android.internal.location.ProviderProperties;
-import com.android.internal.location.ProviderRequest;
-
 import android.location.Criteria;
 import android.location.ILocationManager;
 import android.location.Location;
 import android.location.LocationManager;
-import android.location.LocationProvider;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.WorkSource;
 import android.util.Log;
 
+import com.android.internal.location.ProviderProperties;
+import com.android.internal.location.ProviderRequest;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
 
 /**
  * A passive location provider reports locations received from other providers
@@ -40,7 +38,7 @@
  *
  * {@hide}
  */
-public class PassiveProvider implements LocationProviderInterface {
+public class PassiveProvider extends LocationProviderInterface {
     private static final String TAG = "PassiveProvider";
 
     private static final ProviderProperties PROPERTIES = new ProviderProperties(
@@ -78,20 +76,6 @@
     }
 
     @Override
-    public int getStatus(Bundle extras) {
-        if (mReportLocation) {
-            return LocationProvider.AVAILABLE;
-        } else {
-            return LocationProvider.TEMPORARILY_UNAVAILABLE;
-        }
-    }
-
-    @Override
-    public long getStatusUpdateTime() {
-        return -1;
-    }
-
-    @Override
     public void setRequest(ProviderRequest request, WorkSource source) {
         mReportLocation = request.reportLocation;
     }
diff --git a/services/core/java/com/android/server/location/gps_debug.conf b/services/core/java/com/android/server/location/gps_debug.conf
new file mode 100644
index 0000000..34ce96f
--- /dev/null
+++ b/services/core/java/com/android/server/location/gps_debug.conf
@@ -0,0 +1,52 @@
+# Sample file for use for on device debug override only
+# Prefer frameworks/base/core/res/res/values/config.xml and
+# frameworks/base/core/res/res/values-mcc*-mnc*/config.xml
+
+################################
+##### AGPS server settings #####
+################################
+# FOR SUPL SUPPORT, set the following
+# SUPL_HOST=supl.google.com or IP
+# SUPL_PORT=7275
+
+# supl version 2.0
+# SUPL_VER=0x20000
+
+#SUPL_MODE is a bit mask set in config.xml per carrier by default.
+#If it is uncommented here, this value will overwrite the value from
+#config.xml.
+#MSA=0X2
+#MSB=0X1
+#SUPL_MODE=1
+
+# Emergency SUPL, 1=enable, 0=disable
+#SUPL_ES=0
+
+#Choose PDN for Emergency SUPL
+#1 - Use emergency PDN
+#0 - Use regular SUPL PDN for Emergency SUPL
+#USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0
+
+####################################
+#  LTE Positioning Profile Settings
+####################################
+# 0: Enable RRLP on LTE(Default)
+# 1: Enable LPP_User_Plane on LTE
+# 2: Enable LPP_Control_Plane
+# 3: Enable both LPP_User_Plane and LPP_Control_Plane
+#LPP_PROFILE = 2
+
+##################################################
+# Select Positioning Protocol on A-GLONASS system
+##################################################
+# 0x1: RRC CPlane
+# 0x2: RRLP UPlane
+# 0x4: LLP Uplane
+#A_GLONASS_POS_PROTOCOL_SELECT = 0
+
+# Below bit mask configures how GPS functionalities
+# should be locked when user turns off GPS on Settings
+# Set bit 0x1 if MO GPS functionalities are to be locked
+# Set bit 0x2 if NI GPS functionalities are to be locked
+# default - non is locked for backward compatibility
+#GPS_LOCK = 0
diff --git a/services/core/java/com/android/server/locksettings/SP800Derive.java b/services/core/java/com/android/server/locksettings/SP800Derive.java
new file mode 100644
index 0000000..77561fc
--- /dev/null
+++ b/services/core/java/com/android/server/locksettings/SP800Derive.java
@@ -0,0 +1,82 @@
+/*
+ * 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.server.locksettings;
+
+import java.nio.ByteBuffer;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+
+/**
+ * Implementation of NIST SP800-108
+ * "Recommendation for Key Derivation Using Pseudorandom Functions"
+ * Hardcoded:
+ * [PRF=HMAC_SHA256]
+ * [CTRLOCATION=BEFORE_FIXED]
+ * [RLEN=32_BITS]
+ * L = 256
+ * L suffix: 32 bits
+ */
+class SP800Derive {
+    private final byte[] mKeyBytes;
+
+    SP800Derive(byte[] keyBytes) {
+        mKeyBytes = keyBytes;
+    }
+
+    private Mac getMac() {
+        try {
+            final Mac m = Mac.getInstance("HmacSHA256");
+            m.init(new SecretKeySpec(mKeyBytes, m.getAlgorithm()));
+            return m;
+        } catch (InvalidKeyException | NoSuchAlgorithmException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static void update32(Mac m, int v) {
+        m.update(ByteBuffer.allocate(Integer.BYTES).putInt(v).array());
+    }
+
+    /**
+     *  Generate output from a single, fixed input.
+     */
+    public byte[] fixedInput(byte[] fixedInput) {
+        final Mac m = getMac();
+        update32(m, 1); // Hardwired counter value
+        m.update(fixedInput);
+        return m.doFinal();
+    }
+
+    /**
+     * Generate output from a label and context. We add a length field at the end of the context to
+     * disambiguate it from the length even in the presence of zero bytes.
+     */
+    public byte[] withContext(byte[] label, byte[] context) {
+        final Mac m = getMac();
+        // Hardwired counter value: 1
+        update32(m, 1); // Hardwired counter value
+        m.update(label);
+        m.update((byte) 0);
+        m.update(context);
+        update32(m, context.length * 8); // Disambiguate context
+        update32(m, 256); // Hardwired output length
+        return m.doFinal();
+    }
+}
diff --git a/services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java b/services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java
index 596daeb..d32c299 100644
--- a/services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java
+++ b/services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java
@@ -26,9 +26,9 @@
 import android.hardware.weaver.V1_0.WeaverReadResponse;
 import android.hardware.weaver.V1_0.WeaverReadStatus;
 import android.hardware.weaver.V1_0.WeaverStatus;
-import android.security.GateKeeper;
 import android.os.RemoteException;
 import android.os.UserManager;
+import android.security.GateKeeper;
 import android.service.gatekeeper.GateKeeperResponse;
 import android.service.gatekeeper.IGateKeeperService;
 import android.util.ArrayMap;
@@ -102,7 +102,8 @@
     private static final int INVALID_WEAVER_SLOT = -1;
 
     private static final byte SYNTHETIC_PASSWORD_VERSION_V1 = 1;
-    private static final byte SYNTHETIC_PASSWORD_VERSION = 2;
+    private static final byte SYNTHETIC_PASSWORD_VERSION_V2 = 2;
+    private static final byte SYNTHETIC_PASSWORD_VERSION_V3 = 3;
     private static final byte SYNTHETIC_PASSWORD_PASSWORD_BASED = 0;
     private static final byte SYNTHETIC_PASSWORD_TOKEN_BASED = 1;
 
@@ -128,6 +129,8 @@
     private static final byte[] PERSONALISATION_WEAVER_PASSWORD = "weaver-pwd".getBytes();
     private static final byte[] PERSONALISATION_WEAVER_KEY = "weaver-key".getBytes();
     private static final byte[] PERSONALISATION_WEAVER_TOKEN = "weaver-token".getBytes();
+    private static final byte[] PERSONALISATION_CONTEXT =
+        "android-synthetic-password-personalization-context".getBytes();
 
     static class AuthenticationResult {
         public AuthenticationToken authToken;
@@ -136,6 +139,7 @@
     }
 
     static class AuthenticationToken {
+        private final byte mVersion;
         /*
          * Here is the relationship between all three fields:
          * P0 and P1 are two randomly-generated blocks. P1 is stored on disk but P0 is not.
@@ -146,29 +150,38 @@
         private @Nullable byte[] P1;
         private @NonNull String syntheticPassword;
 
+        AuthenticationToken(byte version) {
+            mVersion = version;
+        }
+
+        private byte[] derivePassword(byte[] personalization) {
+            if (mVersion == SYNTHETIC_PASSWORD_VERSION_V3) {
+                return (new SP800Derive(syntheticPassword.getBytes()))
+                    .withContext(personalization, PERSONALISATION_CONTEXT);
+            } else {
+                return SyntheticPasswordCrypto.personalisedHash(personalization,
+                        syntheticPassword.getBytes());
+            }
+        }
+
         public String deriveKeyStorePassword() {
-            return bytesToHex(SyntheticPasswordCrypto.personalisedHash(
-                    PERSONALIZATION_KEY_STORE_PASSWORD, syntheticPassword.getBytes()));
+            return bytesToHex(derivePassword(PERSONALIZATION_KEY_STORE_PASSWORD));
         }
 
         public byte[] deriveGkPassword() {
-            return SyntheticPasswordCrypto.personalisedHash(PERSONALIZATION_SP_GK_AUTH,
-                    syntheticPassword.getBytes());
+            return derivePassword(PERSONALIZATION_SP_GK_AUTH);
         }
 
         public byte[] deriveDiskEncryptionKey() {
-            return SyntheticPasswordCrypto.personalisedHash(PERSONALIZATION_FBE_KEY,
-                    syntheticPassword.getBytes());
+            return derivePassword(PERSONALIZATION_FBE_KEY);
         }
 
         public byte[] deriveVendorAuthSecret() {
-            return SyntheticPasswordCrypto.personalisedHash(PERSONALIZATION_AUTHSECRET_KEY,
-                    syntheticPassword.getBytes());
+            return derivePassword(PERSONALIZATION_AUTHSECRET_KEY);
         }
 
         public byte[] derivePasswordHashFactor() {
-            return SyntheticPasswordCrypto.personalisedHash(PERSONALIZATION_PASSWORD_HASH,
-                    syntheticPassword.getBytes());
+            return derivePassword(PERSONALIZATION_PASSWORD_HASH);
         }
 
         private void initialize(byte[] P0, byte[] P1) {
@@ -185,7 +198,7 @@
         }
 
         protected static AuthenticationToken create() {
-            AuthenticationToken result = new AuthenticationToken();
+            AuthenticationToken result = new AuthenticationToken(SYNTHETIC_PASSWORD_VERSION_V3);
             result.initialize(secureRandom(SYNTHETIC_PASSWORD_LENGTH),
                     secureRandom(SYNTHETIC_PASSWORD_LENGTH));
             return result;
@@ -802,7 +815,16 @@
         }
         byte[] content = createSPBlob(getHandleName(handle), secret, applicationId, sid);
         byte[] blob = new byte[content.length + 1 + 1];
-        blob[0] = SYNTHETIC_PASSWORD_VERSION;
+        /*
+         * We can upgrade from v1 to v2 because that's just a change in the way that
+         * the SP is stored. However, we can't upgrade to v3 because that is a change
+         * in the way that passwords are derived from the SP.
+         */
+        if (authToken.mVersion == SYNTHETIC_PASSWORD_VERSION_V3) {
+            blob[0] = SYNTHETIC_PASSWORD_VERSION_V3;
+        } else {
+            blob[0] = SYNTHETIC_PASSWORD_VERSION_V2;
+        }
         blob[1] = type;
         System.arraycopy(content, 0, blob, 2, content.length);
         saveState(SP_BLOB_NAME, blob, handle, userId);
@@ -940,7 +962,9 @@
             return null;
         }
         final byte version = blob[0];
-        if (version != SYNTHETIC_PASSWORD_VERSION && version != SYNTHETIC_PASSWORD_VERSION_V1) {
+        if (version != SYNTHETIC_PASSWORD_VERSION_V3
+                && version != SYNTHETIC_PASSWORD_VERSION_V2
+                && version != SYNTHETIC_PASSWORD_VERSION_V1) {
             throw new RuntimeException("Unknown blob version");
         }
         if (blob[1] != type) {
@@ -958,7 +982,7 @@
             Log.e(TAG, "Fail to decrypt SP for user " + userId);
             return null;
         }
-        AuthenticationToken result = new AuthenticationToken();
+        AuthenticationToken result = new AuthenticationToken(version);
         if (type == SYNTHETIC_PASSWORD_TOKEN_BASED) {
             if (!loadEscrowData(result, userId)) {
                 Log.e(TAG, "User is not escrowable: " + userId);
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index 9d402b3..93b6620 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -16,10 +16,7 @@
 
 package com.android.server.media;
 
-import static android.media.SessionToken2.TYPE_SESSION;
-
 import android.app.ActivityManager;
-import android.app.AppGlobals;
 import android.app.INotificationManager;
 import android.app.KeyguardManager;
 import android.app.PendingIntent;
@@ -30,7 +27,6 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.UserInfo;
@@ -40,9 +36,6 @@
 import android.media.AudioSystem;
 import android.media.IAudioService;
 import android.media.IRemoteVolumeController;
-import android.media.ISessionTokensListener;
-import android.media.MediaController2;
-import android.media.SessionToken2;
 import android.media.session.IActiveSessionsListener;
 import android.media.session.ICallback;
 import android.media.session.IOnMediaKeyListener;
@@ -68,7 +61,6 @@
 import android.provider.Settings;
 import android.speech.RecognizerIntent;
 import android.text.TextUtils;
-import android.util.ArrayMap;
 import android.util.Log;
 import android.util.Slog;
 import android.util.SparseArray;
@@ -85,15 +77,12 @@
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
 
 /**
  * System implementation of MediaSessionManager
  */
 public class MediaSessionService extends SystemService implements Monitor {
     private static final String TAG = "MediaSessionService";
-    static final boolean USE_MEDIA2_APIS = false; // TODO: Change this to true when we're ready.
     static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
     // Leave log for key event always.
     private static final boolean DEBUG_KEY_EVENT = true;
@@ -113,7 +102,6 @@
     private final PowerManager.WakeLock mMediaEventWakeLock;
     private final int mLongPressTimeout;
     private final INotificationManager mNotificationManager;
-    private final IPackageManager mPackageManager;
 
     private KeyguardManager mKeyguardManager;
     private IAudioService mAudioService;
@@ -131,13 +119,6 @@
     // better way to handle this.
     private IRemoteVolumeController mRvc;
 
-    // MediaSession2 support
-    // TODO(jaewan): Support multi-user and managed profile. (b/73597722)
-    // TODO(jaewan): Make it priority list for handling volume/media key. (b/73760382)
-    private final Map<SessionToken2, MediaController2> mSessionRecords = new ArrayMap<>();
-
-    private final List<SessionTokensListenerRecord> mSessionTokensListeners = new ArrayList<>();
-
     public MediaSessionService(Context context) {
         super(context);
         mSessionManagerImpl = new SessionManagerImpl();
@@ -146,7 +127,6 @@
         mLongPressTimeout = ViewConfiguration.getLongPressTimeout();
         mNotificationManager = INotificationManager.Stub.asInterface(
                 ServiceManager.getService(Context.NOTIFICATION_SERVICE));
-        mPackageManager = AppGlobals.getPackageManager();
     }
 
     @Override
@@ -645,20 +625,6 @@
         return mUserRecords.get(fullUserId);
     }
 
-    void destroySession2Internal(SessionToken2 token) {
-        synchronized (mLock) {
-            boolean notifySessionTokensUpdated = false;
-            if (token.getType() == SessionToken2.TYPE_SESSION) {
-                notifySessionTokensUpdated |= removeSessionRecordLocked(token);
-            } else {
-                notifySessionTokensUpdated |= addSessionRecordLocked(token);
-            }
-            if (notifySessionTokensUpdated) {
-                postSessionTokensUpdated(UserHandle.getUserId(token.getUid()));
-            }
-        }
-    }
-
     /**
      * Information about a full user and its corresponding managed profiles.
      *
@@ -957,7 +923,7 @@
         @Override
         public void dispatchMediaKeyEvent(String packageName, boolean asSystemService,
                 KeyEvent keyEvent, boolean needWakeLock) {
-            if (keyEvent == null || !KeyEvent.isMediaKey(keyEvent.getKeyCode())) {
+            if (keyEvent == null || !KeyEvent.isMediaSessionKey(keyEvent.getKeyCode())) {
                 Log.w(TAG, "Attempted to dispatch null or non-media key event.");
                 return;
             }
@@ -1417,163 +1383,6 @@
             }
         }
 
-        /**
-         * Called when a {@link android.media.MediaSession2} instance is created.
-         * <p>
-         * This does two things.
-         *   1. Keep the newly created session in the service
-         *   2. Do sanity check to ensure unique id per package, and return result
-         *
-         * @param sessionToken SessionToken2 object in bundled form
-         * @return {@code true} if the session's id isn't used by the package now. {@code false}
-         *     otherwise.
-         */
-        @Override
-        public boolean createSession2(Bundle sessionToken) {
-            if (!USE_MEDIA2_APIS) {
-                return false;
-            }
-            final int uid = Binder.getCallingUid();
-            final SessionToken2 token = SessionToken2.fromBundle(sessionToken);
-            if (token == null || token.getUid() != uid) {
-                Log.w(TAG, "onSessionCreated failed, expected caller uid=" + token.getUid()
-                        + " but from uid=" + uid);
-            }
-            if (DEBUG) {
-                Log.d(TAG, "createSession2: " + token);
-            }
-            synchronized (mLock) {
-                MediaController2 controller = mSessionRecords.get(token);
-                if (controller != null && controller.isConnected()) {
-                    return false;
-                }
-                Context context = getContext();
-                controller = new MediaController2(context, token, context.getMainExecutor(),
-                        new ControllerCallback(token));
-                if (addSessionRecordLocked(token, controller)) {
-                    postSessionTokensUpdated(UserHandle.getUserId(token.getUid()));
-                }
-                return true;
-            }
-        }
-
-        /**
-         * Called when a {@link android.media.MediaSession2} instance is closed. (i.e. destroyed)
-         * <p>
-         * Ideally service should know that a session is destroyed through the
-         * {@link android.media.MediaController2.ControllerCallback#onDisconnected()}, which is
-         * asynchronous call. However, we also need synchronous way together to address timing
-         * issue. If the package recreates the session almost immediately, which happens commonly
-         * for tests, service will reject the creation through {@link #onSessionCreated(Bundle)}
-         * if the service hasn't notified previous destroy yet. This synchronous API will address
-         * the issue.
-         *
-         * @param sessionToken SessionToken2 object in bundled form
-         */
-        @Override
-        public void destroySession2(Bundle sessionToken) {
-            if (!USE_MEDIA2_APIS) {
-                return;
-            }
-            final int uid = Binder.getCallingUid();
-            final SessionToken2 token = SessionToken2.fromBundle(sessionToken);
-            if (token == null || token.getUid() != uid) {
-                Log.w(TAG, "onSessionDestroyed failed, expected caller uid=" + token.getUid()
-                        + " but from uid=" + uid);
-            }
-            if (DEBUG) {
-                Log.d(TAG, "destroySession2 " + token);
-            }
-            destroySession2Internal(token);
-        }
-
-        // TODO(jaewan): Make this API take userId as an argument (b/73597722)
-        @Override
-        public List<Bundle> getSessionTokens(boolean activeSessionOnly,
-                boolean sessionServiceOnly, String packageName) throws RemoteException {
-            if (!USE_MEDIA2_APIS) {
-                return null;
-            }
-            final int pid = Binder.getCallingPid();
-            final int uid = Binder.getCallingUid();
-            final long token = Binder.clearCallingIdentity();
-
-            List<Bundle> tokens = new ArrayList<>();
-            try {
-                verifySessionsRequest2(UserHandle.getUserId(uid), packageName, pid, uid);
-                synchronized (mLock) {
-                    for (Map.Entry<SessionToken2, MediaController2> record
-                            : mSessionRecords.entrySet()) {
-                        boolean isSessionService = (record.getKey().getType() != TYPE_SESSION);
-                        boolean isActive = record.getValue() != null;
-                        if ((activeSessionOnly && !isActive)
-                                || (sessionServiceOnly && !isSessionService)) {
-                            continue;
-                        }
-                        tokens.add(record.getKey().toBundle());
-                    }
-                }
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
-            return tokens;
-        }
-
-        @Override
-        public void addSessionTokensListener(ISessionTokensListener listener, int userId,
-                String packageName) throws RemoteException {
-            if (!USE_MEDIA2_APIS) {
-                return;
-            }
-            final int pid = Binder.getCallingPid();
-            final int uid = Binder.getCallingUid();
-            final long token = Binder.clearCallingIdentity();
-            try {
-                int resolvedUserId = verifySessionsRequest2(userId, packageName, pid, uid);
-                synchronized (mLock) {
-                    final SessionTokensListenerRecord record =
-                            new SessionTokensListenerRecord(listener, resolvedUserId);
-                    try {
-                        listener.asBinder().linkToDeath(record, 0);
-                    } catch (RemoteException e) {
-                    }
-                    mSessionTokensListeners.add(record);
-                }
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
-        }
-
-        // TODO(jaewan): Make this API take userId as an argument (b/73597722)
-        @Override
-        public void removeSessionTokensListener(ISessionTokensListener listener,
-                String packageName) throws RemoteException {
-            if (!USE_MEDIA2_APIS) {
-                return;
-            }
-            final int pid = Binder.getCallingPid();
-            final int uid = Binder.getCallingUid();
-            final long token = Binder.clearCallingIdentity();
-            try {
-                verifySessionsRequest2(UserHandle.getUserId(uid), packageName, pid, uid);
-                synchronized (mLock) {
-                    IBinder listenerBinder = listener.asBinder();
-                    for (SessionTokensListenerRecord record : mSessionTokensListeners) {
-                        if (listenerBinder.equals(record.mListener.asBinder())) {
-                            try {
-                                listenerBinder.unlinkToDeath(record, 0);
-                            } catch (NoSuchElementException e) {
-                            }
-                            mSessionTokensListeners.remove(record);
-                            break;
-                        }
-                    }
-                }
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
-        }
-
         // For MediaSession
         private int verifySessionsRequest(ComponentName componentName, int userId, final int pid,
                 final int uid) {
@@ -1594,23 +1403,6 @@
             return resolvedUserId;
         }
 
-        // For MediaSession2
-        private int verifySessionsRequest2(int targetUserId, String callerPackageName,
-                int callerPid, int callerUid) throws RemoteException {
-            // Check that they can make calls on behalf of the user and get the final user id.
-            int resolvedUserId = ActivityManager.handleIncomingUser(callerPid, callerUid,
-                    targetUserId, true /* allowAll */, true /* requireFull */, "getSessionTokens",
-                    callerPackageName);
-            // Check if they have the permissions or their component is
-            // enabled for the user they're calling from.
-            if (!hasMediaControlPermission(
-                    resolvedUserId, callerPackageName, callerPid, callerUid)) {
-                throw new SecurityException("Missing permission to control media.");
-            }
-            return resolvedUserId;
-        }
-
-        // For MediaSession2
         private boolean hasMediaControlPermission(int resolvedUserId, String packageName,
                 int pid, int uid) throws RemoteException {
             // Allow API calls from the System UI
@@ -2014,7 +1806,6 @@
     final class MessageHandler extends Handler {
         private static final int MSG_SESSIONS_CHANGED = 1;
         private static final int MSG_VOLUME_INITIAL_DOWN = 2;
-        private static final int MSG_SESSIONS_TOKENS_CHANGED = 3;
         private final SparseArray<Integer> mIntegerCache = new SparseArray<>();
 
         @Override
@@ -2033,9 +1824,6 @@
                         }
                     }
                     break;
-                case MSG_SESSIONS_TOKENS_CHANGED:
-                    pushSessionTokensChanged((int) msg.obj);
-                    break;
             }
         }
 
@@ -2050,86 +1838,4 @@
             obtainMessage(MSG_SESSIONS_CHANGED, userIdInteger).sendToTarget();
         }
     }
-
-    private class ControllerCallback extends MediaController2.ControllerCallback {
-
-        private final SessionToken2 mToken;
-
-        ControllerCallback(SessionToken2 token) {
-            mToken = token;
-        }
-
-        @Override
-        public void onDisconnected(MediaController2 controller) {
-            destroySession2Internal(mToken);
-        }
-    };
-
-    private final class SessionTokensListenerRecord implements IBinder.DeathRecipient {
-        private final ISessionTokensListener mListener;
-        private final int mUserId;
-
-        public SessionTokensListenerRecord(ISessionTokensListener listener, int userId) {
-            mListener = listener;
-            // TODO(jaewan): should userId be mapped through mFullUserIds? (b/73597722)
-            mUserId = userId;
-        }
-
-        @Override
-        public void binderDied() {
-            synchronized (mLock) {
-                mSessionTokensListeners.remove(this);
-            }
-        }
-    }
-
-    private void postSessionTokensUpdated(int userId) {
-        mHandler.obtainMessage(MessageHandler.MSG_SESSIONS_TOKENS_CHANGED, userId).sendToTarget();
-    }
-
-    private void pushSessionTokensChanged(int userId) {
-        synchronized (mLock) {
-            List<Bundle> tokens = new ArrayList<>();
-            for (SessionToken2 token : mSessionRecords.keySet()) {
-                if (UserHandle.getUserId(token.getUid()) == userId) {
-                    tokens.add(token.toBundle());
-                }
-            }
-
-            for (SessionTokensListenerRecord record : mSessionTokensListeners) {
-                // TODO(jaewan): Should userId be mapped through mFullUserIds? (b/73760382)
-                if (record.mUserId == userId || record.mUserId == UserHandle.USER_ALL) {
-                    try {
-                        record.mListener.onSessionTokensChanged(tokens);
-                    } catch (RemoteException e) {
-                        Log.w(TAG, "Failed to notify session tokens changed", e);
-                    }
-                }
-            }
-        }
-    }
-
-    private boolean addSessionRecordLocked(SessionToken2 token) {
-        return addSessionRecordLocked(token, null);
-    }
-
-    private boolean addSessionRecordLocked(SessionToken2 token, MediaController2 controller) {
-        if (mSessionRecords.containsKey(token) && mSessionRecords.get(token) == controller) {
-            // The key/value pair already exists, no need to update.
-            return false;
-        }
-
-        mSessionRecords.put(token, controller);
-        return true;
-    }
-
-    private boolean removeSessionRecordLocked(SessionToken2 token) {
-        if (!mSessionRecords.containsKey(token)) {
-            // The key is already removed, no need to remove.
-            return false;
-        }
-
-        mSessionRecords.remove(token);
-        return true;
-    }
 }
diff --git a/services/core/java/com/android/server/net/NetworkPolicyLogger.java b/services/core/java/com/android/server/net/NetworkPolicyLogger.java
index 4f4b6bf..4bd8f45 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyLogger.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyLogger.java
@@ -64,6 +64,7 @@
     private static final int EVENT_UID_FIREWALL_RULE_CHANGED = 11;
     private static final int EVENT_FIREWALL_CHAIN_ENABLED = 12;
     private static final int EVENT_UPDATE_METERED_RESTRICTED_PKGS = 13;
+    private static final int EVENT_APP_IDLE_WL_CHANGED = 14;
 
     static final int NTWK_BLOCKED_POWER = 0;
     static final int NTWK_ALLOWED_NON_METERED = 1;
@@ -145,6 +146,13 @@
         }
     }
 
+    void appIdleWlChanged(int uid, boolean isWhitelisted) {
+        synchronized (mLock) {
+            if (LOGD) Slog.d(TAG, getAppIdleWlChangedLog(uid, isWhitelisted));
+            mEventsBuffer.appIdleWlChanged(uid, isWhitelisted);
+        }
+    }
+
     void paroleStateChanged(boolean paroleOn) {
         synchronized (mLock) {
             if (LOGD) Slog.d(TAG, getParoleStateChanged(paroleOn));
@@ -259,6 +267,10 @@
         return "App idle state of uid " + uid + ": " + idle;
     }
 
+    private static String getAppIdleWlChangedLog(int uid, boolean isWhitelisted) {
+        return "App idle whitelist state of uid " + uid + ": " + isWhitelisted;
+    }
+
     private static String getParoleStateChanged(boolean paroleOn) {
         return "Parole state: " + paroleOn;
     }
@@ -409,6 +421,17 @@
             data.timeStamp = System.currentTimeMillis();
         }
 
+        public void appIdleWlChanged(int uid, boolean isWhitelisted) {
+            final Data data = getNextSlot();
+            if (data == null) return;
+
+            data.reset();
+            data.type = EVENT_APP_IDLE_WL_CHANGED;
+            data.ifield1 = uid;
+            data.bfield1 = isWhitelisted;
+            data.timeStamp = System.currentTimeMillis();
+        }
+
         public void paroleStateChanged(boolean paroleOn) {
             final Data data = getNextSlot();
             if (data == null) return;
@@ -487,6 +510,8 @@
                     return getDeviceIdleModeEnabled(data.bfield1);
                 case EVENT_APP_IDLE_STATE_CHANGED:
                     return getAppIdleChangedLog(data.ifield1, data.bfield1);
+                case EVENT_APP_IDLE_WL_CHANGED:
+                    return getAppIdleWlChangedLog(data.ifield1, data.bfield1);
                 case EVENT_PAROLE_STATE_CHANGED:
                     return getParoleStateChanged(data.bfield1);
                 case EVENT_TEMP_POWER_SAVE_WL_CHANGED:
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerInternal.java b/services/core/java/com/android/server/net/NetworkPolicyManagerInternal.java
index 099671d..7f650ee 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerInternal.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerInternal.java
@@ -105,6 +105,12 @@
     public abstract void onAdminDataAvailable();
 
     /**
+     * Control if a UID should be whitelisted even if it's in app idle mode. Other restrictions may
+     * still be in effect.
+     */
+    public abstract void setAppIdleWhitelist(int uid, boolean shouldWhitelist);
+
+    /**
      * Sets a list of packages which are restricted by admin from accessing metered data.
      *
      * @param packageNames the list of restricted packages.
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index d799642..0d6dadf 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -464,6 +464,10 @@
     @GuardedBy("mUidRulesFirstLock")
     final SparseBooleanArray mFirewallChainStates = new SparseBooleanArray();
 
+    // "Power save mode" is the concept used in the DeviceIdleController that includes various
+    // features including Doze and Battery Saver. It include Battery Saver, but "power save mode"
+    // and "battery saver" are not equivalent.
+
     /**
      * UIDs that have been white-listed to always be able to have network access
      * in power save mode, except device idle (doze) still applies.
@@ -484,6 +488,13 @@
     private final SparseBooleanArray mPowerSaveTempWhitelistAppIds = new SparseBooleanArray();
 
     /**
+     * UIDs that have been white-listed temporarily to be able to have network access despite being
+     * idle. Other power saving restrictions still apply.
+     */
+    @GuardedBy("mUidRulesFirstLock")
+    private final SparseBooleanArray mAppIdleTempWhitelistAppIds = new SparseBooleanArray();
+
+    /**
      * UIDs that have been initially white-listed by system to avoid restricted background.
      */
     @GuardedBy("mUidRulesFirstLock")
@@ -543,7 +554,7 @@
 
     final Handler mHandler;
     @VisibleForTesting
-    public final Handler mUidEventHandler;
+    final Handler mUidEventHandler;
 
     private final ServiceThread mUidEventThread;
 
@@ -1454,7 +1465,7 @@
     }
 
     @VisibleForTesting
-    public void updateNetworks() throws InterruptedException {
+    void updateNetworks() throws InterruptedException {
         updateNetworksInternal();
         final CountDownLatch latch = new CountDownLatch(1);
         mHandler.post(() -> {
@@ -1499,7 +1510,7 @@
      * @return cycleDay to use in the mobile NetworkPolicy.
      */
     @VisibleForTesting
-    public int getCycleDayFromCarrierConfig(@Nullable PersistableBundle config,
+    int getCycleDayFromCarrierConfig(@Nullable PersistableBundle config,
             int fallbackCycleDay) {
         if (config == null) {
             return fallbackCycleDay;
@@ -1531,7 +1542,7 @@
      * @return warningBytes to use in the mobile NetworkPolicy.
      */
     @VisibleForTesting
-    public long getWarningBytesFromCarrierConfig(@Nullable PersistableBundle config,
+    long getWarningBytesFromCarrierConfig(@Nullable PersistableBundle config,
             long fallbackWarningBytes) {
         if (config == null) {
             return fallbackWarningBytes;
@@ -1564,7 +1575,7 @@
      * @return limitBytes to use in the mobile NetworkPolicy.
      */
     @VisibleForTesting
-    public long getLimitBytesFromCarrierConfig(@Nullable PersistableBundle config,
+    long getLimitBytesFromCarrierConfig(@Nullable PersistableBundle config,
             long fallbackLimitBytes) {
         if (config == null) {
             return fallbackLimitBytes;
@@ -2028,7 +2039,7 @@
     }
 
     @VisibleForTesting
-    public NetworkPolicy buildDefaultMobilePolicy(int subId, String subscriberId) {
+    NetworkPolicy buildDefaultMobilePolicy(int subId, String subscriberId) {
         final NetworkTemplate template = buildTemplateMobileAll(subscriberId);
         final RecurrenceRule cycleRule = NetworkPolicy
                 .buildRule(ZonedDateTime.now().getDayOfMonth(), ZoneId.systemDefault());
@@ -3372,6 +3383,20 @@
                     fout.decreaseIndent();
                 }
 
+                size = mAppIdleTempWhitelistAppIds.size();
+                if (size > 0) {
+                    fout.println("App idle whitelist app ids:");
+                    fout.increaseIndent();
+                    for (int i = 0; i < size; i++) {
+                        fout.print("UID=");
+                        fout.print(mAppIdleTempWhitelistAppIds.keyAt(i));
+                        fout.print(": ");
+                        fout.print(mAppIdleTempWhitelistAppIds.valueAt(i));
+                        fout.println();
+                    }
+                    fout.decreaseIndent();
+                }
+
                 size = mDefaultRestrictBackgroundWhitelistUids.size();
                 if (size > 0) {
                     fout.println("Default restrict background whitelist uids:");
@@ -3464,7 +3489,7 @@
     }
 
     @VisibleForTesting
-    public boolean isUidForeground(int uid) {
+    boolean isUidForeground(int uid) {
         synchronized (mUidRulesFirstLock) {
             return isUidStateForeground(
                     mUidState.get(uid, ActivityManager.PROCESS_STATE_CACHED_EMPTY));
@@ -3640,12 +3665,15 @@
     }
 
     /**
+     * Returns whether a uid is whitelisted from power saving restrictions (eg: Battery Saver, Doze
+     * mode, and app idle).
+     *
      * @param deviceIdleMode if true then we don't consider
      *        {@link #mPowerSaveWhitelistExceptIdleAppIds} for checking if the {@param uid} is
      *        whitelisted.
      */
     @GuardedBy("mUidRulesFirstLock")
-    private boolean isWhitelistedBatterySaverUL(int uid, boolean deviceIdleMode) {
+    private boolean isWhitelistedFromPowerSaveUL(int uid, boolean deviceIdleMode) {
         final int appId = UserHandle.getAppId(uid);
         boolean isWhitelisted = mPowerSaveTempWhitelistAppIds.get(appId)
                 || mPowerSaveWhitelistAppIds.get(appId);
@@ -3660,7 +3688,7 @@
     @GuardedBy("mUidRulesFirstLock")
     private void updateRulesForWhitelistedPowerSaveUL(int uid, boolean enabled, int chain) {
         if (enabled) {
-            final boolean isWhitelisted = isWhitelistedBatterySaverUL(uid,
+            final boolean isWhitelisted = isWhitelistedFromPowerSaveUL(uid,
                     chain == FIREWALL_CHAIN_DOZABLE);
             if (isWhitelisted || isUidForegroundOnRestrictPowerUL(uid)) {
                 setUidFirewallRule(chain, uid, FIREWALL_RULE_ALLOW);
@@ -3712,8 +3740,10 @@
             if (!mPowerSaveTempWhitelistAppIds.get(appId) && isUidIdle(uid)
                     && !isUidForegroundOnRestrictPowerUL(uid)) {
                 setUidFirewallRule(FIREWALL_CHAIN_STANDBY, uid, FIREWALL_RULE_DENY);
+                if (LOGD) Log.d(TAG, "updateRuleForAppIdleUL DENY " + uid);
             } else {
                 setUidFirewallRule(FIREWALL_CHAIN_STANDBY, uid, FIREWALL_RULE_DEFAULT);
+                if (LOGD) Log.d(TAG, "updateRuleForAppIdleUL " + uid + " to DEFAULT");
             }
         } finally {
             Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
@@ -3896,7 +3926,61 @@
         return UserHandle.isApp(uid) && hasInternetPermissions(uid);
     }
 
-    private boolean isUidIdle(int uid) {
+    /**
+     * Set whether or not an app should be whitelisted for network access while in app idle. Other
+     * power saving restrictions may still apply.
+     */
+    @VisibleForTesting
+    void setAppIdleWhitelist(int uid, boolean shouldWhitelist) {
+        mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
+
+        synchronized (mUidRulesFirstLock) {
+            if (mAppIdleTempWhitelistAppIds.get(uid) == shouldWhitelist) {
+                // No change.
+                return;
+            }
+
+            final long token = Binder.clearCallingIdentity();
+            try {
+                mLogger.appIdleWlChanged(uid, shouldWhitelist);
+                if (shouldWhitelist) {
+                    mAppIdleTempWhitelistAppIds.put(uid, true);
+                } else {
+                    mAppIdleTempWhitelistAppIds.delete(uid);
+                }
+                updateRuleForAppIdleUL(uid);
+                updateRulesForPowerRestrictionsUL(uid);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+    }
+
+    /** Return the list of UIDs currently in the app idle whitelist. */
+    @VisibleForTesting
+    int[] getAppIdleWhitelist() {
+        mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
+
+        synchronized (mUidRulesFirstLock) {
+            final int len = mAppIdleTempWhitelistAppIds.size();
+            int[] uids = new int[len];
+            for (int i = 0; i < len; ++i) {
+                uids[i] = mAppIdleTempWhitelistAppIds.keyAt(i);
+            }
+            return uids;
+        }
+    }
+
+    /** Returns if the UID is currently considered idle. */
+    @VisibleForTesting
+    boolean isUidIdle(int uid) {
+        synchronized (mUidRulesFirstLock) {
+            if (mAppIdleTempWhitelistAppIds.get(uid)) {
+                // UID is temporarily whitelisted.
+                return false;
+            }
+        }
+
         final String[] packages = mContext.getPackageManager().getPackagesForUid(uid);
         final int userId = UserHandle.getUserId(uid);
 
@@ -3940,6 +4024,7 @@
         mPowerSaveWhitelistExceptIdleAppIds.delete(uid);
         mPowerSaveWhitelistAppIds.delete(uid);
         mPowerSaveTempWhitelistAppIds.delete(uid);
+        mAppIdleTempWhitelistAppIds.delete(uid);
 
         // ...then update iptables asynchronously.
         mHandler.obtainMessage(MSG_RESET_FIREWALL_RULES_BY_UID, uid, 0).sendToTarget();
@@ -3984,7 +4069,7 @@
      * <li>@{code bw_happy_box}: UIDs added to this chain have access (whitelist), unless they're
      *     also blacklisted.
      * <li>@{code bw_data_saver}: when enabled (through {@link #setRestrictBackground(boolean)}),
-     *     no UIDs other those whitelisted will have access.
+     *     no UIDs other than those whitelisted will have access.
      * <ul>
      *
      * <p>The @{code bw_penalty_box} and @{code bw_happy_box} are primarily managed through the
@@ -4194,7 +4279,7 @@
         final boolean restrictMode = isIdle || mRestrictPower || mDeviceIdleMode;
         final boolean isForeground = isUidForegroundOnRestrictPowerUL(uid);
 
-        final boolean isWhitelisted = isWhitelistedBatterySaverUL(uid, mDeviceIdleMode);
+        final boolean isWhitelisted = isWhitelistedFromPowerSaveUL(uid, mDeviceIdleMode);
         final int oldRule = oldUidRules & MASK_ALL_NETWORKS;
         int newRule = RULE_NONE;
 
@@ -4761,13 +4846,13 @@
     }
 
     @VisibleForTesting
-    public void addIdleHandler(IdleHandler handler) {
+    void addIdleHandler(IdleHandler handler) {
         mHandler.getLooper().getQueue().addIdleHandler(handler);
     }
 
     @GuardedBy("mUidRulesFirstLock")
     @VisibleForTesting
-    public void updateRestrictBackgroundByLowPowerModeUL(final PowerSaveState result) {
+    void updateRestrictBackgroundByLowPowerModeUL(final PowerSaveState result) {
         mRestrictBackgroundPowerState = result;
 
         boolean restrictBackground = result.batterySaverEnabled;
@@ -5023,6 +5108,11 @@
         }
 
         @Override
+        public void setAppIdleWhitelist(int uid, boolean shouldWhitelist) {
+            NetworkPolicyManagerService.this.setAppIdleWhitelist(uid, shouldWhitelist);
+        }
+
+        @Override
         public void setMeteredRestrictedPackages(Set<String> packageNames, int userId) {
             setMeteredRestrictedPackagesInternal(packageNames, userId);
         }
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerShellCommand.java b/services/core/java/com/android/server/net/NetworkPolicyManagerShellCommand.java
index 56d41c5..156c01d 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerShellCommand.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerShellCommand.java
@@ -78,6 +78,8 @@
         pw.println("    Adds a UID to the whitelist for restrict background usage.");
         pw.println("  add restrict-background-blacklist UID");
         pw.println("    Adds a UID to the blacklist for restrict background usage.");
+        pw.println("  add app-idle-whitelist UID");
+        pw.println("    Adds a UID to the temporary app idle whitelist.");
         pw.println("  get restrict-background");
         pw.println("    Gets the global restrict background usage status.");
         pw.println("  list wifi-networks [true|false]");
@@ -92,6 +94,8 @@
         pw.println("    Removes a UID from the whitelist for restrict background usage.");
         pw.println("  remove restrict-background-blacklist UID");
         pw.println("    Removes a UID from the blacklist for restrict background usage.");
+        pw.println("  remove app-idle-whitelist UID");
+        pw.println("    Removes a UID from the temporary app idle whitelist.");
         pw.println("  set metered-network ID [undefined|true|false]");
         pw.println("    Toggles whether the given wi-fi network is metered.");
         pw.println("  set restrict-background BOOLEAN");
@@ -142,6 +146,8 @@
             return -1;
         }
         switch(type) {
+            case "app-idle-whitelist":
+                return listAppIdleWhitelist();
             case "wifi-networks":
                 return listWifiNetworks();
             case "restrict-background-whitelist":
@@ -165,6 +171,8 @@
                 return addRestrictBackgroundWhitelist();
             case "restrict-background-blacklist":
                 return addRestrictBackgroundBlacklist();
+            case "app-idle-whitelist":
+                return addAppIdleWhitelist();
         }
         pw.println("Error: unknown add type '" + type + "'");
         return -1;
@@ -182,14 +190,20 @@
                 return removeRestrictBackgroundWhitelist();
             case "restrict-background-blacklist":
                 return removeRestrictBackgroundBlacklist();
+            case "app-idle-whitelist":
+                return removeAppIdleWhitelist();
         }
         pw.println("Error: unknown remove type '" + type + "'");
         return -1;
     }
 
     private int listUidPolicies(String msg, int policy) throws RemoteException {
-        final PrintWriter pw = getOutPrintWriter();
         final int[] uids = mInterface.getUidsWithPolicy(policy);
+        return listUidList(msg, uids);
+    }
+
+    private int listUidList(String msg, int[] uids) {
+        final PrintWriter pw = getOutPrintWriter();
         pw.print(msg); pw.print(": ");
         if (uids.length == 0) {
             pw.println("none");
@@ -214,6 +228,12 @@
                 POLICY_REJECT_METERED_BACKGROUND);
     }
 
+    private int listAppIdleWhitelist() throws RemoteException {
+        final PrintWriter pw = getOutPrintWriter();
+        final int[] uids = mInterface.getAppIdleWhitelist();
+        return listUidList("App Idle whitelisted UIDs", uids);
+    }
+
     private int getRestrictBackground() throws RemoteException {
         final PrintWriter pw = getOutPrintWriter();
         pw.print("Restrict background status: ");
@@ -277,6 +297,23 @@
         return resetUidPolicy("not blacklisted", POLICY_REJECT_METERED_BACKGROUND);
     }
 
+    private int setAppIdleWhitelist(boolean isWhitelisted) {
+        final int uid = getUidFromNextArg();
+        if (uid < 0) {
+            return uid;
+        }
+        mInterface.setAppIdleWhitelist(uid, isWhitelisted);
+        return 0;
+    }
+
+    private int addAppIdleWhitelist() throws RemoteException {
+        return setAppIdleWhitelist(true);
+    }
+
+    private int removeAppIdleWhitelist() throws RemoteException {
+        return setAppIdleWhitelist(false);
+    }
+
     private int listWifiNetworks() {
         final PrintWriter pw = getOutPrintWriter();
         final String arg = getNextArg();
diff --git a/services/core/java/com/android/server/notification/NotificationDelegate.java b/services/core/java/com/android/server/notification/NotificationDelegate.java
index decdac6..84bb13e 100644
--- a/services/core/java/com/android/server/notification/NotificationDelegate.java
+++ b/services/core/java/com/android/server/notification/NotificationDelegate.java
@@ -16,6 +16,7 @@
 
 package com.android.server.notification;
 
+import android.app.Notification;
 import android.service.notification.NotificationStats;
 
 import com.android.internal.statusbar.NotificationVisibility;
@@ -26,7 +27,7 @@
     void onNotificationClick(int callingUid, int callingPid, String key,
             NotificationVisibility nv);
     void onNotificationActionClick(int callingUid, int callingPid, String key, int actionIndex,
-            NotificationVisibility nv);
+            Notification.Action action, NotificationVisibility nv, boolean generatedByAssistant);
     void onNotificationClear(int callingUid, int callingPid,
             String pkg, String tag, int id, int userId, String key,
             @NotificationStats.DismissalSurface int dismissalSurface,
@@ -45,5 +46,15 @@
     void onNotificationDirectReplied(String key);
     void onNotificationSettingsViewed(String key);
     void onNotificationSmartRepliesAdded(String key, int replyCount);
-    void onNotificationSmartReplySent(String key, int replyIndex);
+
+    /**
+     * Notifies a smart reply is sent.
+     *
+     * @param key the notification key
+     * @param clickedIndex the index of clicked reply
+     * @param reply the reply that is sent
+     * @param generatedByAssistant specifies is the reply generated by NAS
+     */
+    void onNotificationSmartReplySent(String key, int clickedIndex, CharSequence reply,
+            boolean generatedByAssistant);
 }
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 32990ce..25a1626 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -198,6 +198,7 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.notification.SystemNotificationChannels;
 import com.android.internal.os.BackgroundThread;
+import com.android.internal.os.SomeArgs;
 import com.android.internal.statusbar.NotificationVisibility;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.DumpUtils;
@@ -206,6 +207,7 @@
 import com.android.internal.util.XmlUtils;
 import com.android.server.DeviceIdleController;
 import com.android.server.EventLogTags;
+import com.android.server.IoThread;
 import com.android.server.LocalServices;
 import com.android.server.SystemService;
 import com.android.server.lights.Light;
@@ -246,6 +248,7 @@
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
+import java.util.function.BiConsumer;
 import java.util.function.Predicate;
 
 /** {@hide} */
@@ -263,11 +266,12 @@
 
     // message codes
     static final int MESSAGE_DURATION_REACHED = 2;
-    static final int MESSAGE_SAVE_POLICY_FILE = 3;
+    // 3: removed to a different handler
     static final int MESSAGE_SEND_RANKING_UPDATE = 4;
     static final int MESSAGE_LISTENER_HINTS_CHANGED = 5;
     static final int MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED = 6;
     static final int MESSAGE_FINISH_TOKEN_TIMEOUT = 7;
+    static final int MESSAGE_ON_PACKAGE_CHANGED = 8;
 
     // ranking thread messages
     private static final int MESSAGE_RECONSIDER_RANKING = 1000;
@@ -411,7 +415,7 @@
     private NotificationAssistants mAssistants;
     private ConditionProviders mConditionProviders;
     private NotificationUsageStats mUsageStats;
-    private boolean mLockScreenAllowSecureNotifications;
+    private boolean mLockScreenAllowSecureNotifications = true;
 
     private static final int MY_UID = Process.myUid();
     private static final int MY_PID = Process.myPid();
@@ -424,6 +428,7 @@
     private GroupHelper mGroupHelper;
     private int mAutoGroupAtCount;
     private boolean mIsTelevision;
+    private boolean mIsAutomotive;
 
     private MetricsLogger mMetricsLogger;
     private Predicate<String> mAllowedManagedServicePackages;
@@ -569,7 +574,7 @@
             mListeners.migrateToXml();
             mAssistants.migrateToXml();
             mConditionProviders.migrateToXml();
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         mAssistants.ensureAssistant();
@@ -599,31 +604,28 @@
         }
     }
 
-    public void savePolicyFile() {
-        mHandler.removeMessages(MESSAGE_SAVE_POLICY_FILE);
-        mHandler.sendEmptyMessage(MESSAGE_SAVE_POLICY_FILE);
-    }
-
     private void handleSavePolicyFile() {
-        if (DBG) Slog.d(TAG, "handleSavePolicyFile");
-        synchronized (mPolicyFile) {
-            final FileOutputStream stream;
-            try {
-                stream = mPolicyFile.startWrite();
-            } catch (IOException e) {
-                Slog.w(TAG, "Failed to save policy file", e);
-                return;
-            }
+        IoThread.getHandler().post(() -> {
+            if (DBG) Slog.d(TAG, "handleSavePolicyFile");
+            synchronized (mPolicyFile) {
+                final FileOutputStream stream;
+                try {
+                    stream = mPolicyFile.startWrite();
+                } catch (IOException e) {
+                    Slog.w(TAG, "Failed to save policy file", e);
+                    return;
+                }
 
-            try {
-                writePolicyXml(stream, false /*forBackup*/);
-                mPolicyFile.finishWrite(stream);
-            } catch (IOException e) {
-                Slog.w(TAG, "Failed to save policy file, restoring backup", e);
-                mPolicyFile.failWrite(stream);
+                try {
+                    writePolicyXml(stream, false /*forBackup*/);
+                    mPolicyFile.finishWrite(stream);
+                } catch (IOException e) {
+                    Slog.w(TAG, "Failed to save policy file, restoring backup", e);
+                    mPolicyFile.failWrite(stream);
+                }
             }
-        }
-        BackupManager.dataChanged(getContext().getPackageName());
+            BackupManager.dataChanged(getContext().getPackageName());
+        });
     }
 
     private void writePolicyXml(OutputStream stream, boolean forBackup) throws IOException {
@@ -751,7 +753,8 @@
 
         @Override
         public void onNotificationActionClick(int callingUid, int callingPid, String key,
-                int actionIndex, NotificationVisibility nv) {
+                int actionIndex, Notification.Action action, NotificationVisibility nv,
+                boolean generatedByAssistant) {
             exitIdle();
             synchronized (mNotificationLock) {
                 NotificationRecord r = mNotificationsByKey.get(key);
@@ -771,6 +774,8 @@
                         nv.rank, nv.count);
                 nv.recycle();
                 reportUserInteraction(r);
+                mAssistants.notifyAssistantActionClicked(
+                        r.sbn, actionIndex, action, generatedByAssistant);
             }
         }
 
@@ -887,6 +892,7 @@
                     EventLogTags.writeNotificationExpansion(key,
                             userAction ? 1 : 0, expanded ? 1 : 0,
                             r.getLifespanMs(now), r.getFreshnessMs(now), r.getExposureMs(now));
+                    mAssistants.notifyAssistantExpansionChangedLocked(r.sbn, userAction, expanded);
                 }
             }
         }
@@ -902,6 +908,7 @@
                             .setCategory(MetricsEvent.NOTIFICATION_DIRECT_REPLY_ACTION)
                             .setType(MetricsEvent.TYPE_ACTION));
                     reportUserInteraction(r);
+                    mAssistants.notifyAssistantNotificationDirectReplyLocked(r.sbn);
                 }
             }
         }
@@ -917,7 +924,8 @@
         }
 
         @Override
-        public void onNotificationSmartReplySent(String key, int replyIndex) {
+        public void onNotificationSmartReplySent(String key, int replyIndex, CharSequence reply,
+                boolean generatedByAssistant) {
             synchronized (mNotificationLock) {
                 NotificationRecord r = mNotificationsByKey.get(key);
                 if (r != null) {
@@ -927,6 +935,8 @@
                     mMetricsLogger.write(logMaker);
                     // Treat clicking on a smart reply as a user interaction.
                     reportUserInteraction(r);
+                    mAssistants.notifyAssistantSuggestedReplySent(
+                            r.sbn, reply, generatedByAssistant);
                 }
             }
         }
@@ -1124,12 +1134,7 @@
                     }
                 }
 
-                mListeners.onPackagesChanged(removingPackage, pkgList, uidList);
-                mAssistants.onPackagesChanged(removingPackage, pkgList, uidList);
-                mConditionProviders.onPackagesChanged(removingPackage, pkgList, uidList);
-                mPreferencesHelper.onPackagesChanged(
-                        removingPackage, changeUserId, pkgList, uidList);
-                savePolicyFile();
+                mHandler.scheduleOnPackageChanged(removingPackage, changeUserId, pkgList, uidList);
             }
         }
     };
@@ -1196,7 +1201,7 @@
                 mListeners.onUserRemoved(userId);
                 mConditionProviders.onUserRemoved(userId);
                 mAssistants.onUserRemoved(userId);
-                savePolicyFile();
+                handleSavePolicyFile();
             } else if (action.equals(Intent.ACTION_USER_UNLOCKED)) {
                 final int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, USER_NULL);
                 mUserProfiles.updateCache(context);
@@ -1384,6 +1389,11 @@
     }
 
     @VisibleForTesting
+    void setIsAutomotive(boolean isAutomotive) {
+        mIsAutomotive = isAutomotive;
+    }
+
+    @VisibleForTesting
     void setIsTelevision(boolean isTelevision) {
         mIsTelevision = isTelevision;
     }
@@ -1447,7 +1457,7 @@
         mZenModeHelper.addCallback(new ZenModeHelper.Callback() {
             @Override
             public void onConfigChanged() {
-                savePolicyFile();
+                handleSavePolicyFile();
             }
 
             @Override
@@ -1539,6 +1549,9 @@
 
         mIsTelevision = mPackageManagerClient.hasSystemFeature(FEATURE_LEANBACK)
                 || mPackageManagerClient.hasSystemFeature(FEATURE_TELEVISION);
+
+        mIsAutomotive =
+                mPackageManagerClient.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE, 0);
     }
 
     @Override
@@ -1746,7 +1759,7 @@
                     modifiedChannel, NOTIFICATION_CHANNEL_OR_GROUP_UPDATED);
         }
 
-        savePolicyFile();
+        handleSavePolicyFile();
     }
 
     private void maybeNotifyChannelOwner(String pkg, int uid, NotificationChannel preUpdate,
@@ -2214,7 +2227,7 @@
                 Slog.w(TAG, "Can't notify app about app block change", e);
             }
 
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         /**
@@ -2271,7 +2284,7 @@
         public void setShowBadge(String pkg, int uid, boolean showBadge) {
             checkCallerIsSystem();
             mPreferencesHelper.setShowBadge(pkg, uid, showBadge);
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         @Override
@@ -2287,7 +2300,7 @@
                 if (info != null) {
                     mPreferencesHelper.setNotificationDelegate(
                             callingPkg, callingUid, delegate, info.uid);
-                    savePolicyFile();
+                    handleSavePolicyFile();
                 }
             } catch (RemoteException e) {
                 // :(
@@ -2298,7 +2311,7 @@
         public void revokeNotificationDelegate(String callingPkg) {
             checkCallerIsSameApp(callingPkg);
             mPreferencesHelper.revokeNotificationDelegate(callingPkg, Binder.getCallingUid());
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         @Override
@@ -2333,7 +2346,7 @@
                 NotificationChannelGroup group) throws RemoteException {
             enforceSystemOrSystemUI("Caller not system or systemui");
             createNotificationChannelGroup(pkg, uid, group, false, false);
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         @Override
@@ -2346,7 +2359,7 @@
                 final NotificationChannelGroup group = groups.get(i);
                 createNotificationChannelGroup(pkg, Binder.getCallingUid(), group, true, false);
             }
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         private void createNotificationChannelsImpl(String pkg, int uid,
@@ -2364,7 +2377,7 @@
                         mPreferencesHelper.getNotificationChannel(pkg, uid, channel.getId(), false),
                         NOTIFICATION_CHANNEL_OR_GROUP_ADDED);
             }
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         @Override
@@ -2409,7 +2422,7 @@
                     UserHandle.getUserHandleForUid(callingUid),
                     mPreferencesHelper.getNotificationChannel(pkg, callingUid, channelId, true),
                     NOTIFICATION_CHANNEL_OR_GROUP_DELETED);
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         @Override
@@ -2451,7 +2464,7 @@
                 mListeners.notifyNotificationChannelGroupChanged(
                         pkg, UserHandle.getUserHandleForUid(callingUid), groupToDelete,
                         NOTIFICATION_CHANNEL_OR_GROUP_DELETED);
-                savePolicyFile();
+                handleSavePolicyFile();
             }
         }
 
@@ -2584,7 +2597,7 @@
                         true, UserHandle.getCallingUserId(), packages, uids);
             }
 
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
 
@@ -3372,7 +3385,7 @@
                 final ByteArrayInputStream bais = new ByteArrayInputStream(payload);
                 try {
                     readPolicyXml(bais, true /*forRestore*/);
-                    savePolicyFile();
+                    handleSavePolicyFile();
                 } catch (NumberFormatException | XmlPullParserException | IOException e) {
                     Slog.w(TAG, "applyRestore: error reading payload", e);
                 }
@@ -3413,7 +3426,7 @@
                                     .setPackage(pkg)
                                     .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY),
                             UserHandle.of(userId), null);
-                    savePolicyFile();
+                    handleSavePolicyFile();
                 }
             } finally {
                 Binder.restoreCallingIdentity(identity);
@@ -3557,7 +3570,7 @@
                                     .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY),
                             UserHandle.of(userId), null);
 
-                    savePolicyFile();
+                    handleSavePolicyFile();
                 }
             } finally {
                 Binder.restoreCallingIdentity(identity);
@@ -3583,7 +3596,7 @@
                                     .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY),
                             UserHandle.of(userId), null);
 
-                    savePolicyFile();
+                    handleSavePolicyFile();
                 }
             } finally {
                 Binder.restoreCallingIdentity(identity);
@@ -3666,7 +3679,7 @@
             verifyPrivilegedListener(token, user, false);
             createNotificationChannelGroup(
                     pkg, getUidForPackageAndUser(pkg, user), group, false, true);
-            savePolicyFile();
+            handleSavePolicyFile();
         }
 
         @Override
@@ -3715,7 +3728,7 @@
             }
             if (allow != mLockScreenAllowSecureNotifications) {
                 mLockScreenAllowSecureNotifications = allow;
-                savePolicyFile();
+                handleSavePolicyFile();
             }
         }
 
@@ -4238,18 +4251,7 @@
 
         // Fix the notification as best we can.
         try {
-            final ApplicationInfo ai = mPackageManagerClient.getApplicationInfoAsUser(
-                    pkg, PackageManager.MATCH_DEBUG_TRIAGED_MISSING,
-                    (userId == UserHandle.USER_ALL) ? USER_SYSTEM : userId);
-            Notification.addFieldsFromContext(ai, notification);
-
-            int canColorize = mPackageManagerClient.checkPermission(
-                    android.Manifest.permission.USE_COLORIZED_NOTIFICATIONS, pkg);
-            if (canColorize == PERMISSION_GRANTED) {
-                notification.flags |= Notification.FLAG_CAN_COLORIZE;
-            } else {
-                notification.flags &= ~Notification.FLAG_CAN_COLORIZE;
-            }
+            fixNotification(notification, pkg, userId);
 
         } catch (NameNotFoundException e) {
             Slog.e(TAG, "Cannot create a context for sending app", e);
@@ -4350,6 +4352,33 @@
         mHandler.post(new EnqueueNotificationRunnable(userId, r));
     }
 
+    @VisibleForTesting
+    protected void fixNotification(Notification notification, String pkg, int userId)
+            throws NameNotFoundException {
+        final ApplicationInfo ai = mPackageManagerClient.getApplicationInfoAsUser(
+                pkg, PackageManager.MATCH_DEBUG_TRIAGED_MISSING,
+                (userId == UserHandle.USER_ALL) ? USER_SYSTEM : userId);
+        Notification.addFieldsFromContext(ai, notification);
+
+        int canColorize = mPackageManagerClient.checkPermission(
+                android.Manifest.permission.USE_COLORIZED_NOTIFICATIONS, pkg);
+        if (canColorize == PERMISSION_GRANTED) {
+            notification.flags |= Notification.FLAG_CAN_COLORIZE;
+        } else {
+            notification.flags &= ~Notification.FLAG_CAN_COLORIZE;
+        }
+
+        if (ai.targetSdkVersion >= Build.VERSION_CODES.Q) {
+            int fullscreenIntentPermission = mPackageManagerClient.checkPermission(
+                    android.Manifest.permission.USE_FULL_SCREEN_INTENT, pkg);
+            if (fullscreenIntentPermission != PERMISSION_GRANTED) {
+                notification.fullScreenIntent = null;
+                Log.w(TAG, "Package " + pkg +
+                        ": Use of fullScreenIntent requires the USE_FULL_SCREEN_INTENT permission");
+            }
+        }
+    }
+
     private void doChannelWarningToast(CharSequence toastText) {
         Binder.withCleanCallingIdentity(() -> {
             final int defaultWarningEnabled = Build.IS_DEBUGGABLE ? 1 : 0;
@@ -4398,19 +4427,20 @@
      *
      * Has side effects.
      */
-    private boolean checkDisqualifyingFeatures(int userId, int callingUid, int id, String tag,
+    private boolean checkDisqualifyingFeatures(int userId, int uid, int id, String tag,
             NotificationRecord r, boolean isAutogroup) {
         final String pkg = r.sbn.getPackageName();
         final boolean isSystemNotification =
-                isUidSystemOrPhone(callingUid) || ("android".equals(pkg));
+                isUidSystemOrPhone(uid) || ("android".equals(pkg));
         final boolean isNotificationFromListener = mListeners.isListenerPackage(pkg);
 
         // Limit the number of notifications that any given package except the android
         // package or a registered listener can enqueue.  Prevents DOS attacks and deals with leaks.
         if (!isSystemNotification && !isNotificationFromListener) {
             synchronized (mNotificationLock) {
+                final int callingUid = Binder.getCallingUid();
                 if (mNotificationsByKey.get(r.sbn.getKey()) == null
-                        && isCallerInstantApp(pkg, Binder.getCallingUid(), userId)) {
+                        && isCallerInstantApp(callingUid, userId)) {
                     // Ephemeral apps have some special constraints for notifications.
                     // They are not allowed to create new notifications however they are allowed to
                     // update notifications created by the system (e.g. a foreground service
@@ -4457,7 +4487,7 @@
                 Slog.d(TAG, "Ignored enqueue for snoozed notification " + r.getKey());
             }
             mSnoozeHelper.update(userId, r);
-            savePolicyFile();
+            handleSavePolicyFile();
             return false;
         }
 
@@ -4588,7 +4618,7 @@
                 mSnoozeHelper.snooze(r, mDuration);
             }
             r.recordSnoozed();
-            savePolicyFile();
+            handleSavePolicyFile();
         }
     }
 
@@ -4666,7 +4696,7 @@
                     if (mReason != REASON_SNOOZED) {
                         final boolean wasSnoozed = mSnoozeHelper.cancel(mUserId, mPkg, mTag, mId);
                         if (wasSnoozed) {
-                            savePolicyFile();
+                            handleSavePolicyFile();
                         }
                     }
                 }
@@ -4729,7 +4759,7 @@
                 mRankingHelper.extractSignals(r);
                 // tell the assistant service about the notification
                 if (mAssistants.isEnabled()) {
-                    mAssistants.onNotificationEnqueued(r);
+                    mAssistants.onNotificationEnqueuedLocked(r);
                     mHandler.postDelayed(new PostNotificationRunnable(r.getKey()),
                             DELAY_FOR_ASSISTANT_TIME);
                 } else {
@@ -5110,7 +5140,9 @@
 
         // Should this notification make noise, vibe, or use the LED?
         final boolean aboveThreshold =
-                record.getImportance() >= NotificationManager.IMPORTANCE_DEFAULT;
+                mIsAutomotive
+                        ? record.getImportance() > NotificationManager.IMPORTANCE_DEFAULT
+                        : record.getImportance() >= NotificationManager.IMPORTANCE_DEFAULT;
 
         // Remember if this notification already owns the notification channels.
         boolean wasBeep = key != null && key.equals(mSoundNotificationKey);
@@ -5681,6 +5713,16 @@
         }
     }
 
+    private void handleOnPackageChanged(boolean removingPackage, int changeUserId,
+            String[] pkgList, int[] uidList) {
+        mListeners.onPackagesChanged(removingPackage, pkgList, uidList);
+        mAssistants.onPackagesChanged(removingPackage, pkgList, uidList);
+        mConditionProviders.onPackagesChanged(removingPackage, pkgList, uidList);
+        mPreferencesHelper.onPackagesChanged(
+                removingPackage, changeUserId, pkgList, uidList);
+        handleSavePolicyFile();
+    }
+
     protected class WorkerHandler extends Handler
     {
         public WorkerHandler(Looper looper) {
@@ -5693,13 +5735,10 @@
             switch (msg.what)
             {
                 case MESSAGE_DURATION_REACHED:
-                    handleDurationReached((ToastRecord)msg.obj);
+                    handleDurationReached((ToastRecord) msg.obj);
                     break;
                 case MESSAGE_FINISH_TOKEN_TIMEOUT:
-                    handleKillTokenTimeout((ToastRecord)msg.obj);
-                    break;
-                case MESSAGE_SAVE_POLICY_FILE:
-                    handleSavePolicyFile();
+                    handleKillTokenTimeout((ToastRecord) msg.obj);
                     break;
                 case MESSAGE_SEND_RANKING_UPDATE:
                     handleSendRankingUpdate();
@@ -5710,6 +5749,12 @@
                 case MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED:
                     handleListenerInterruptionFilterChanged(msg.arg1);
                     break;
+                case MESSAGE_ON_PACKAGE_CHANGED:
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    handleOnPackageChanged((boolean) args.arg1, args.argi1, (String[]) args.arg2,
+                            (int[]) args.arg3);
+                    args.recycle();
+                    break;
             }
         }
 
@@ -5725,6 +5770,16 @@
                 sendMessage(Message.obtain(this, cancelRunnable));
             }
         }
+
+        protected void scheduleOnPackageChanged(boolean removingPackage, int changeUserId,
+                String[] pkgList, int[] uidList) {
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = removingPackage;
+            args.argi1 = changeUserId;
+            args.arg2 = pkgList;
+            args.arg3 = uidList;
+            sendMessage(Message.obtain(this, MESSAGE_ON_PACKAGE_CHANGED, args));
+        }
     }
 
     private final class RankingHandlerWorker extends Handler implements RankingHandler
@@ -6202,7 +6257,7 @@
             Slog.d(TAG, String.format("unsnooze event(%s, %s)", key, listenerName));
         }
         mSnoozeHelper.repost(key);
-        savePolicyFile();
+        handleSavePolicyFile();
     }
 
     @GuardedBy("mNotificationLock")
@@ -6521,24 +6576,28 @@
     }
 
     @VisibleForTesting
-    boolean isCallerInstantApp(String pkg, int callingUid, int userId) {
+    boolean isCallerInstantApp(int callingUid, int userId) {
         // System is always allowed to act for ephemeral apps.
         if (isUidSystemOrPhone(callingUid)) {
             return false;
         }
 
-        mAppOps.checkPackage(callingUid, pkg);
-
         try {
+            final String[] pkgs = mPackageManager.getPackagesForUid(callingUid);
+            if (pkgs == null) {
+                throw new SecurityException("Unknown uid " + callingUid);
+            }
+            final String pkg = pkgs[0];
+            mAppOps.checkPackage(callingUid, pkg);
+
             ApplicationInfo ai = mPackageManager.getApplicationInfo(pkg, 0, userId);
             if (ai == null) {
                 throw new SecurityException("Unknown package " + pkg);
             }
             return ai.isInstantApp();
         } catch (RemoteException re) {
-            throw new SecurityException("Unknown package " + pkg, re);
+            throw new SecurityException("Unknown uid " + callingUid, re);
         }
-
     }
 
     private void checkCallerIsSameApp(String pkg) {
@@ -6842,38 +6901,96 @@
             }
         }
 
-        public void onNotificationEnqueued(final NotificationRecord r) {
+        @GuardedBy("mNotificationLock")
+        private void onNotificationEnqueuedLocked(final NotificationRecord r) {
             final StatusBarNotification sbn = r.sbn;
-            TrimCache trimCache = new TrimCache(sbn);
-
-            // There should be only one, but it's a list, so while we enforce
-            // singularity elsewhere, we keep it general here, to avoid surprises.
-            for (final ManagedServiceInfo info : NotificationAssistants.this.getServices()) {
-                boolean sbnVisible = isVisibleToListener(sbn, info)
-                        && info.isSameUser(r.getUserId());
-                if (!sbnVisible) {
-                    continue;
-                }
-
-                final StatusBarNotification sbnToPost =  trimCache.ForListener(info);
-                mHandler.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        notifyEnqueued(info, sbnToPost, r.getChannel());
-                    }
-                });
-            }
+            notifyAssistantLocked(
+                    sbn,
+                    true /* sameUserOnly */,
+                    (assistant, sbnHolder) -> {
+                        try {
+                            assistant.onNotificationEnqueuedWithChannel(sbnHolder, r.getChannel());
+                        } catch (RemoteException ex) {
+                            Log.e(TAG, "unable to notify assistant (enqueued): " + assistant, ex);
+                        }
+                    });
         }
 
-        private void notifyEnqueued(final ManagedServiceInfo info,
-                final StatusBarNotification sbn, final NotificationChannel channel) {
-            final INotificationListener assistant = (INotificationListener) info.service;
-            StatusBarNotificationHolder sbnHolder = new StatusBarNotificationHolder(sbn);
-            try {
-                assistant.onNotificationEnqueuedWithChannel(sbnHolder, channel);
-            } catch (RemoteException ex) {
-                Log.e(TAG, "unable to notify assistant (enqueued): " + assistant, ex);
-            }
+        @GuardedBy("mNotificationLock")
+        void notifyAssistantExpansionChangedLocked(
+                final StatusBarNotification sbn,
+                final boolean isUserAction,
+                final boolean isExpanded) {
+            final String key = sbn.getKey();
+            notifyAssistantLocked(
+                    sbn,
+                    false /* sameUserOnly */,
+                    (assistant, sbnHolder) -> {
+                        try {
+                            assistant.onNotificationExpansionChanged(key, isUserAction, isExpanded);
+                        } catch (RemoteException ex) {
+                            Log.e(TAG, "unable to notify assistant (expanded): " + assistant, ex);
+                        }
+                    });
+        }
+
+        @GuardedBy("mNotificationLock")
+        void notifyAssistantNotificationDirectReplyLocked(
+                final StatusBarNotification sbn) {
+            final String key = sbn.getKey();
+            notifyAssistantLocked(
+                    sbn,
+                    false /* sameUserOnly */,
+                    (assistant, sbnHolder) -> {
+                        try {
+                            assistant.onNotificationDirectReply(key);
+                        } catch (RemoteException ex) {
+                            Log.e(TAG, "unable to notify assistant (expanded): " + assistant, ex);
+                        }
+                    });
+        }
+
+        @GuardedBy("mNotificationLock")
+        void notifyAssistantSuggestedReplySent(
+                final StatusBarNotification sbn, CharSequence reply, boolean generatedByAssistant) {
+            final String key = sbn.getKey();
+            notifyAssistantLocked(
+                    sbn,
+                    false /* sameUserOnly */,
+                    (assistant, sbnHolder) -> {
+                        try {
+                            assistant.onSuggestedReplySent(
+                                    key,
+                                    reply,
+                                    generatedByAssistant
+                                            ? NotificationAssistantService.SOURCE_FROM_ASSISTANT
+                                            : NotificationAssistantService.SOURCE_FROM_APP);
+                        } catch (RemoteException ex) {
+                            Log.e(TAG, "unable to notify assistant (snoozed): " + assistant, ex);
+                        }
+                    });
+        }
+
+        @GuardedBy("mNotificationLock")
+        void notifyAssistantActionClicked(
+                final StatusBarNotification sbn, int actionIndex, Notification.Action action,
+                boolean generatedByAssistant) {
+            final String key = sbn.getKey();
+            notifyAssistantLocked(
+                    sbn,
+                    false /* sameUserOnly */,
+                    (assistant, sbnHolder) -> {
+                        try {
+                            assistant.onActionClicked(
+                                    key,
+                                    action,
+                                    generatedByAssistant
+                                            ? NotificationAssistantService.SOURCE_FROM_ASSISTANT
+                                            : NotificationAssistantService.SOURCE_FROM_APP);
+                        } catch (RemoteException ex) {
+                            Log.e(TAG, "unable to notify assistant (snoozed): " + assistant, ex);
+                        }
+                    });
         }
 
         /**
@@ -6881,30 +6998,49 @@
          * context
          */
         @GuardedBy("mNotificationLock")
-        public void notifyAssistantSnoozedLocked(final StatusBarNotification sbn,
-                final String snoozeCriterionId) {
-            TrimCache trimCache = new TrimCache(sbn);
-            for (final ManagedServiceInfo info : getServices()) {
-                boolean sbnVisible = isVisibleToListener(sbn, info);
-                if (!sbnVisible) {
-                    continue;
-                }
-                final StatusBarNotification sbnToPost =  trimCache.ForListener(info);
-                mHandler.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        final INotificationListener assistant =
-                                (INotificationListener) info.service;
-                        StatusBarNotificationHolder sbnHolder
-                                = new StatusBarNotificationHolder(sbnToPost);
+        private void notifyAssistantSnoozedLocked(
+                final StatusBarNotification sbn, final String snoozeCriterionId) {
+            notifyAssistantLocked(
+                    sbn,
+                    false /* sameUserOnly */,
+                    (assistant, sbnHolder) -> {
                         try {
                             assistant.onNotificationSnoozedUntilContext(
                                     sbnHolder, snoozeCriterionId);
                         } catch (RemoteException ex) {
                             Log.e(TAG, "unable to notify assistant (snoozed): " + assistant, ex);
                         }
-                    }
-                });
+                    });
+        }
+
+        /**
+         * Notifies the assistant something about the specified notification, only assistant
+         * that is visible to the notification will be notified.
+         *
+         * @param sbn          the notification object that the update is about.
+         * @param sameUserOnly should the update  be sent to the assistant in the same user only.
+         * @param callback     the callback that provides the assistant to be notified, executed
+         *                     in WorkerHandler.
+         */
+        @GuardedBy("mNotificationLock")
+        private void notifyAssistantLocked(
+                final StatusBarNotification sbn,
+                boolean sameUserOnly,
+                BiConsumer<INotificationListener, StatusBarNotificationHolder> callback) {
+            TrimCache trimCache = new TrimCache(sbn);
+            // There should be only one, but it's a list, so while we enforce
+            // singularity elsewhere, we keep it general here, to avoid surprises.
+            for (final ManagedServiceInfo info : NotificationAssistants.this.getServices()) {
+                boolean sbnVisible = isVisibleToListener(sbn, info)
+                        && (!sameUserOnly || info.isSameUser(sbn.getUserId()));
+                if (!sbnVisible) {
+                    continue;
+                }
+                final INotificationListener assistant = (INotificationListener) info.service;
+                final StatusBarNotification sbnToPost = trimCache.ForListener(info);
+                final StatusBarNotificationHolder sbnHolder =
+                        new StatusBarNotificationHolder(sbnToPost);
+                mHandler.post(() -> callback.accept(assistant, sbnHolder));
             }
         }
 
diff --git a/services/core/java/com/android/server/notification/PreferencesHelper.java b/services/core/java/com/android/server/notification/PreferencesHelper.java
index fd65ebe..eb46d53 100644
--- a/services/core/java/com/android/server/notification/PreferencesHelper.java
+++ b/services/core/java/com/android/server/notification/PreferencesHelper.java
@@ -1015,10 +1015,8 @@
 
     private boolean channelIsLive(PackagePreferences pkgPref, NotificationChannel channel) {
         // Channel is in a group that's blocked
-        if (!TextUtils.isEmpty(channel.getGroup())) {
-            if (pkgPref.groups.get(channel.getGroup()).isBlocked()) {
-                return false;
-            }
+        if (isGroupBlocked(pkgPref.pkg, pkgPref.uid, channel.getGroup())) {
+            return false;
         }
 
         // Channel is deleted or is blocked
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index f279af0..94d276c 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -309,6 +309,7 @@
             newConfig = mConfig.copy();
             ZenRule rule = new ZenRule();
             populateZenRule(automaticZenRule, rule, true);
+            newConfig.automaticRules.put(rule.id, rule);
             if (setConfigLocked(newConfig, reason, rule.component, true)) {
                 return rule.id;
             } else {
diff --git a/services/core/java/com/android/server/oemlock/OemLock.java b/services/core/java/com/android/server/oemlock/OemLock.java
index ee70c29..352884b 100644
--- a/services/core/java/com/android/server/oemlock/OemLock.java
+++ b/services/core/java/com/android/server/oemlock/OemLock.java
@@ -19,6 +19,9 @@
 import android.annotation.Nullable;
 
 abstract class OemLock {
+    @Nullable
+    abstract String getLockName();
+
     abstract void setOemUnlockAllowedByCarrier(boolean allowed, @Nullable byte[] signature);
     abstract boolean isOemUnlockAllowedByCarrier();
 
diff --git a/services/core/java/com/android/server/oemlock/OemLockService.java b/services/core/java/com/android/server/oemlock/OemLockService.java
index a6200bf..6e82c24 100644
--- a/services/core/java/com/android/server/oemlock/OemLockService.java
+++ b/services/core/java/com/android/server/oemlock/OemLockService.java
@@ -113,6 +113,19 @@
      */
     private final IBinder mService = new IOemLockService.Stub() {
         @Override
+        @Nullable
+        public String getLockName() {
+            enforceManageCarrierOemUnlockPermission();
+
+            final long token = Binder.clearCallingIdentity();
+            try {
+                return mOemLock.getLockName();
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
+        @Override
         public void setOemUnlockAllowedByCarrier(boolean allowed, @Nullable byte[] signature) {
             enforceManageCarrierOemUnlockPermission();
             enforceUserIsAdmin();
diff --git a/services/core/java/com/android/server/oemlock/PersistentDataBlockLock.java b/services/core/java/com/android/server/oemlock/PersistentDataBlockLock.java
index d9362d4..a1c27d6 100644
--- a/services/core/java/com/android/server/oemlock/PersistentDataBlockLock.java
+++ b/services/core/java/com/android/server/oemlock/PersistentDataBlockLock.java
@@ -40,6 +40,12 @@
     }
 
     @Override
+    @Nullable
+    String getLockName() {
+        return "";
+    }
+
+    @Override
     void setOemUnlockAllowedByCarrier(boolean allowed, @Nullable byte[] signature) {
         // Note: this implementation does not require a signature
         if (signature != null) {
diff --git a/services/core/java/com/android/server/oemlock/VendorLock.java b/services/core/java/com/android/server/oemlock/VendorLock.java
index 1b9de36..37540d0 100644
--- a/services/core/java/com/android/server/oemlock/VendorLock.java
+++ b/services/core/java/com/android/server/oemlock/VendorLock.java
@@ -22,8 +22,6 @@
 import android.hardware.oemlock.V1_0.OemLockSecureStatus;
 import android.hardware.oemlock.V1_0.OemLockStatus;
 import android.os.RemoteException;
-import android.os.UserHandle;
-import android.os.UserManager;
 import android.util.Slog;
 
 import java.util.ArrayList;
@@ -55,14 +53,49 @@
     }
 
     @Override
+    @Nullable
+    String getLockName() {
+        final Integer[] requestStatus = new Integer[1];
+        final String[] lockName = new String[1];
+
+        try {
+            mOemLock.getName((status, name) -> {
+                requestStatus[0] = status;
+                lockName[0] = name;
+            });
+        } catch (RemoteException e) {
+            Slog.e(TAG, "Failed to get name from HAL", e);
+            throw e.rethrowFromSystemServer();
+        }
+
+        switch (requestStatus[0]) {
+            case OemLockStatus.OK:
+                // Success
+                return lockName[0];
+
+            case OemLockStatus.FAILED:
+                Slog.e(TAG, "Failed to get OEM lock name.");
+                return null;
+
+            default:
+                Slog.e(TAG, "Unknown return value indicates code is out of sync with HAL");
+                return null;
+        }
+    }
+
+    @Override
     void setOemUnlockAllowedByCarrier(boolean allowed, @Nullable byte[] signature) {
         try {
-            switch (mOemLock.setOemUnlockAllowedByCarrier(allowed, toByteArrayList(signature))) {
+            ArrayList<Byte> signatureBytes = toByteArrayList(signature);
+            switch (mOemLock.setOemUnlockAllowedByCarrier(allowed, signatureBytes)) {
                 case OemLockSecureStatus.OK:
                     Slog.i(TAG, "Updated carrier allows OEM lock state to: " + allowed);
                     return;
 
                 case OemLockSecureStatus.INVALID_SIGNATURE:
+                    if (signatureBytes.isEmpty()) {
+                        throw new IllegalArgumentException("Signature required for carrier unlock");
+                    }
                     throw new SecurityException(
                             "Invalid signature used in attempt to carrier unlock");
 
@@ -154,9 +187,9 @@
         }
     }
 
-    private ArrayList toByteArrayList(byte[] data) {
+    private ArrayList<Byte> toByteArrayList(byte[] data) {
         if (data == null) {
-            return null;
+            return new ArrayList<Byte>();
         }
         ArrayList<Byte> result = new ArrayList<Byte>(data.length);
         for (final byte b : data) {
diff --git a/services/core/java/com/android/server/om/IdmapManager.java b/services/core/java/com/android/server/om/IdmapManager.java
index 731e6bc..6d59827 100644
--- a/services/core/java/com/android/server/om/IdmapManager.java
+++ b/services/core/java/com/android/server/om/IdmapManager.java
@@ -46,7 +46,7 @@
  * Note: this class is subclassed in the OMS unit tests, and hence not marked as final.
  */
 class IdmapManager {
-    private static final boolean FEATURE_FLAG_IDMAP2 = false;
+    private static final boolean FEATURE_FLAG_IDMAP2 = true;
 
     private final Installer mInstaller;
     private IIdmap2 mIdmap2Service;
diff --git a/services/core/java/com/android/server/om/OverlayManagerService.java b/services/core/java/com/android/server/om/OverlayManagerService.java
index f1b03d1..d471904 100644
--- a/services/core/java/com/android/server/om/OverlayManagerService.java
+++ b/services/core/java/com/android/server/om/OverlayManagerService.java
@@ -22,14 +22,11 @@
 import static android.content.Intent.ACTION_PACKAGE_REMOVED;
 import static android.content.Intent.ACTION_USER_ADDED;
 import static android.content.Intent.ACTION_USER_REMOVED;
-import static android.content.pm.PackageManager.GET_SHARED_LIBRARY_FILES;
-import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
 import static android.content.pm.PackageManager.SIGNATURE_MATCH;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.ActivityManager;
-import android.app.ActivityThread;
 import android.app.IActivityManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -37,7 +34,6 @@
 import android.content.IntentFilter;
 import android.content.om.IOverlayManager;
 import android.content.om.OverlayInfo;
-import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManagerInternal;
@@ -59,11 +55,9 @@
 import android.util.Slog;
 import android.util.SparseArray;
 
-import com.android.internal.util.ConcurrentUtils;
 import com.android.server.FgThread;
 import com.android.server.IoThread;
 import com.android.server.LocalServices;
-import com.android.server.SystemServerInitThreadPool;
 import com.android.server.SystemService;
 import com.android.server.pm.Installer;
 import com.android.server.pm.UserManagerService;
@@ -84,8 +78,6 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
@@ -228,8 +220,6 @@
 
     private final AtomicBoolean mPersistSettingsScheduled = new AtomicBoolean(false);
 
-    private Future<?> mInitCompleteSignal;
-
     public OverlayManagerService(@NonNull final Context context,
             @NonNull final Installer installer) {
         super(context);
@@ -241,29 +231,28 @@
         mSettings = new OverlayManagerSettings();
         mImpl = new OverlayManagerServiceImpl(mPackageManager, im, mSettings,
                 getDefaultOverlayPackages(), new OverlayChangeListener());
-        mInitCompleteSignal = SystemServerInitThreadPool.get().submit(() -> {
-            final IntentFilter packageFilter = new IntentFilter();
-            packageFilter.addAction(ACTION_PACKAGE_ADDED);
-            packageFilter.addAction(ACTION_PACKAGE_CHANGED);
-            packageFilter.addAction(ACTION_PACKAGE_REMOVED);
-            packageFilter.addDataScheme("package");
-            getContext().registerReceiverAsUser(new PackageReceiver(), UserHandle.ALL,
-                    packageFilter, null, null);
 
-            final IntentFilter userFilter = new IntentFilter();
-            userFilter.addAction(ACTION_USER_ADDED);
-            userFilter.addAction(ACTION_USER_REMOVED);
-            getContext().registerReceiverAsUser(new UserReceiver(), UserHandle.ALL,
-                    userFilter, null, null);
+        final IntentFilter packageFilter = new IntentFilter();
+        packageFilter.addAction(ACTION_PACKAGE_ADDED);
+        packageFilter.addAction(ACTION_PACKAGE_CHANGED);
+        packageFilter.addAction(ACTION_PACKAGE_REMOVED);
+        packageFilter.addDataScheme("package");
+        getContext().registerReceiverAsUser(new PackageReceiver(), UserHandle.ALL,
+                packageFilter, null, null);
 
-            restoreSettings();
+        final IntentFilter userFilter = new IntentFilter();
+        userFilter.addAction(ACTION_USER_ADDED);
+        userFilter.addAction(ACTION_USER_REMOVED);
+        getContext().registerReceiverAsUser(new UserReceiver(), UserHandle.ALL,
+                userFilter, null, null);
 
-            initIfNeeded();
-            onSwitchUser(UserHandle.USER_SYSTEM);
+        restoreSettings();
 
-            publishBinderService(Context.OVERLAY_SERVICE, mService);
-            publishLocalService(OverlayManagerService.class, this);
-        }, "Init OverlayManagerService");
+        initIfNeeded();
+        onSwitchUser(UserHandle.USER_SYSTEM);
+
+        publishBinderService(Context.OVERLAY_SERVICE, mService);
+        publishLocalService(OverlayManagerService.class, this);
     }
 
     @Override
@@ -271,32 +260,6 @@
         // Intentionally left empty.
     }
 
-    @Override
-    public void onBootPhase(int phase) {
-        if (phase == PHASE_SYSTEM_SERVICES_READY && mInitCompleteSignal != null) {
-            ConcurrentUtils.waitForFutureNoInterrupt(mInitCompleteSignal,
-                    "Wait for OverlayManagerService init");
-            mInitCompleteSignal = null;
-        }
-    }
-
-    public void updateSystemUiContext() {
-        if (mInitCompleteSignal != null) {
-            ConcurrentUtils.waitForFutureNoInterrupt(mInitCompleteSignal,
-                    "Wait for OverlayManagerService init");
-            mInitCompleteSignal = null;
-        }
-
-        final ApplicationInfo ai;
-        try {
-            ai = mPackageManager.mPackageManager.getApplicationInfo("android",
-                    GET_SHARED_LIBRARY_FILES, UserHandle.USER_SYSTEM);
-        } catch (RemoteException e) {
-            throw e.rethrowAsRuntimeException();
-        }
-        ActivityThread.currentActivityThread().handleSystemApplicationInfoChanged(ai);
-    }
-
     private void initIfNeeded() {
         final UserManager um = getContext().getSystemService(UserManager.class);
         final List<UserInfo> users = um.getUsers(true /*excludeDying*/);
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index b490381..7f1fb6c 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -310,7 +310,7 @@
                             .setPackage(packageName),
                     user);
             if (Settings.Global.getInt(mContext.getContentResolver(),
-                    Settings.Global.SHOW_HIDDEN_LAUNCHER_ICON_APPS_ENABLED, 0) == 0) {
+                    Settings.Global.SHOW_HIDDEN_LAUNCHER_ICON_APPS_ENABLED, 1) == 0) {
                 return launcherActivities;
             }
 
diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java
index 5810e30..b52c021 100644
--- a/services/core/java/com/android/server/pm/OtaDexoptService.java
+++ b/services/core/java/com/android/server/pm/OtaDexoptService.java
@@ -333,9 +333,7 @@
         PackageDexOptimizer optimizer = new OTADexoptPackageDexOptimizer(
                 collectingInstaller, mPackageManagerService.mInstallLock, mContext);
 
-        String[] libraryDependencies = pkg.usesLibraryFiles;
-
-        optimizer.performDexOpt(pkg, libraryDependencies,
+        optimizer.performDexOpt(pkg, pkg.usesLibraryInfos,
                 null /* ISAs */,
                 null /* CompilerStats.PackageStats */,
                 mPackageManagerService.getDexManager().getPackageUseInfoOrDefault(pkg.packageName),
diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
index 95d2154..093b85e 100644
--- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java
+++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
@@ -16,10 +16,33 @@
 
 package com.android.server.pm;
 
+import static android.content.pm.ApplicationInfo.HIDDEN_API_ENFORCEMENT_DISABLED;
+
+import static com.android.server.pm.Installer.DEXOPT_BOOTCOMPLETE;
+import static com.android.server.pm.Installer.DEXOPT_DEBUGGABLE;
+import static com.android.server.pm.Installer.DEXOPT_ENABLE_HIDDEN_API_CHECKS;
+import static com.android.server.pm.Installer.DEXOPT_FORCE;
+import static com.android.server.pm.Installer.DEXOPT_GENERATE_APP_IMAGE;
+import static com.android.server.pm.Installer.DEXOPT_GENERATE_COMPACT_DEX;
+import static com.android.server.pm.Installer.DEXOPT_IDLE_BACKGROUND_JOB;
+import static com.android.server.pm.Installer.DEXOPT_PROFILE_GUIDED;
+import static com.android.server.pm.Installer.DEXOPT_PUBLIC;
+import static com.android.server.pm.Installer.DEXOPT_SECONDARY_DEX;
+import static com.android.server.pm.Installer.DEXOPT_STORAGE_CE;
+import static com.android.server.pm.Installer.DEXOPT_STORAGE_DE;
+import static com.android.server.pm.InstructionSets.getAppDexInstructionSets;
+import static com.android.server.pm.InstructionSets.getDexCodeInstructionSets;
+import static com.android.server.pm.PackageManagerService.WATCHDOG_TIMEOUT;
+import static com.android.server.pm.PackageManagerServiceCompilerMapping.getReasonName;
+
+import static dalvik.system.DexFile.getSafeModeCompilerFilter;
+import static dalvik.system.DexFile.isProfileGuidedCompilerFilter;
+
 import android.annotation.Nullable;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageParser;
+import android.content.pm.SharedLibraryInfo;
 import android.content.pm.dex.ArtManager;
 import android.content.pm.dex.DexMetadataHelper;
 import android.os.FileUtils;
@@ -40,6 +63,8 @@
 import com.android.server.pm.dex.DexoptUtils;
 import com.android.server.pm.dex.PackageDexUsage;
 
+import dalvik.system.DexFile;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -47,32 +72,6 @@
 import java.util.List;
 import java.util.Map;
 
-import dalvik.system.DexFile;
-
-import static android.content.pm.ApplicationInfo.HIDDEN_API_ENFORCEMENT_DISABLED;
-
-import static com.android.server.pm.Installer.DEXOPT_BOOTCOMPLETE;
-import static com.android.server.pm.Installer.DEXOPT_DEBUGGABLE;
-import static com.android.server.pm.Installer.DEXOPT_PROFILE_GUIDED;
-import static com.android.server.pm.Installer.DEXOPT_PUBLIC;
-import static com.android.server.pm.Installer.DEXOPT_SECONDARY_DEX;
-import static com.android.server.pm.Installer.DEXOPT_FORCE;
-import static com.android.server.pm.Installer.DEXOPT_STORAGE_CE;
-import static com.android.server.pm.Installer.DEXOPT_STORAGE_DE;
-import static com.android.server.pm.Installer.DEXOPT_IDLE_BACKGROUND_JOB;
-import static com.android.server.pm.Installer.DEXOPT_ENABLE_HIDDEN_API_CHECKS;
-import static com.android.server.pm.Installer.DEXOPT_GENERATE_COMPACT_DEX;
-import static com.android.server.pm.Installer.DEXOPT_GENERATE_APP_IMAGE;
-import static com.android.server.pm.InstructionSets.getAppDexInstructionSets;
-import static com.android.server.pm.InstructionSets.getDexCodeInstructionSets;
-
-import static com.android.server.pm.PackageManagerService.WATCHDOG_TIMEOUT;
-
-import static com.android.server.pm.PackageManagerServiceCompilerMapping.getReasonName;
-
-import static dalvik.system.DexFile.getSafeModeCompilerFilter;
-import static dalvik.system.DexFile.isProfileGuidedCompilerFilter;
-
 /**
  * Helper class for running dexopt command on packages.
  */
@@ -129,7 +128,7 @@
      * <p>Calls to {@link com.android.server.pm.Installer#dexopt} on {@link #mInstaller} are
      * synchronized on {@link #mInstallLock}.
      */
-    int performDexOpt(PackageParser.Package pkg, String[] sharedLibraries,
+    int performDexOpt(PackageParser.Package pkg, List<SharedLibraryInfo> sharedLibraries,
             String[] instructionSets, CompilerStats.PackageStats packageStats,
             PackageDexUsage.PackageUseInfo packageUseInfo, DexoptOptions options) {
         if (pkg.applicationInfo.uid == -1) {
@@ -155,7 +154,8 @@
      * It assumes the install lock is held.
      */
     @GuardedBy("mInstallLock")
-    private int performDexOptLI(PackageParser.Package pkg, String[] sharedLibraries,
+    private int performDexOptLI(PackageParser.Package pkg,
+            List<SharedLibraryInfo> sharedLibraries,
             String[] targetInstructionSets, CompilerStats.PackageStats packageStats,
             PackageDexUsage.PackageUseInfo packageUseInfo, DexoptOptions options) {
         final String[] instructionSets = targetInstructionSets != null ?
@@ -542,8 +542,7 @@
         // The flag isDexoptInstallWithDexMetadata applies only on installs when we know that
         // the user does not have an existing profile.
         boolean isProfileGuidedFilter = isProfileGuidedCompilerFilter(compilerFilter);
-        boolean isPublic = !info.isForwardLocked() &&
-                (!isProfileGuidedFilter || options.isDexoptInstallWithDexMetadata());
+        boolean isPublic = !isProfileGuidedFilter || options.isDexoptInstallWithDexMetadata();
         int profileFlag = isProfileGuidedFilter ? DEXOPT_PROFILE_GUIDED : 0;
         // Some apps are executed with restrictions on hidden API usage. If this app is one
         // of them, pass a flag to dexopt to enable the same restrictions during compilation.
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index 1a5b86c..2e9a71a 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -455,12 +455,6 @@
                         + "to use the PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS flag");
             }
 
-            if ((params.installFlags & PackageManager.INSTALL_FORWARD_LOCK) != 0
-                    || (params.installFlags & PackageManager.INSTALL_EXTERNAL) != 0) {
-                throw new IllegalArgumentException(
-                        "New installs into ASEC containers no longer supported");
-            }
-
             // Defensively resize giant app icons
             if (params.appIcon != null) {
                 final ActivityManager am = (ActivityManager) mContext.getSystemService(
@@ -487,21 +481,10 @@
                 if (!PackageHelper.fitsOnInternal(mContext, params)) {
                     throw new IOException("No suitable internal storage available");
                 }
-
-            } else if ((params.installFlags & PackageManager.INSTALL_EXTERNAL) != 0) {
-                if (!PackageHelper.fitsOnExternal(mContext, params)) {
-                    throw new IOException("No suitable external storage available");
-                }
-
-            } else if ((params.installFlags & PackageManager.INSTALL_FORCE_VOLUME_UUID) != 0) {
-                // For now, installs to adopted media are treated as internal from
-                // an install flag point-of-view.
-                params.setInstallFlagsInternal();
-
             } else {
                 // For now, installs to adopted media are treated as internal from
                 // an install flag point-of-view.
-                params.setInstallFlagsInternal();
+                params.installFlags |= PackageManager.INSTALL_INTERNAL;
 
                 // Resolve best location for install, based on combination of
                 // requested install flags, delta size, and manifest settings.
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 9856a2b..dab4e79 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -43,7 +43,6 @@
 import static android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED;
 import static android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED;
 import static android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET;
-import static android.content.pm.PackageManager.INSTALL_EXTERNAL;
 import static android.content.pm.PackageManager.INSTALL_FAILED_ALREADY_EXISTS;
 import static android.content.pm.PackageManager.INSTALL_FAILED_DUPLICATE_PACKAGE;
 import static android.content.pm.PackageManager.INSTALL_FAILED_DUPLICATE_PERMISSION;
@@ -54,12 +53,12 @@
 import static android.content.pm.PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
 import static android.content.pm.PackageManager.INSTALL_FAILED_MISSING_SHARED_LIBRARY;
 import static android.content.pm.PackageManager.INSTALL_FAILED_PACKAGE_CHANGED;
-import static android.content.pm.PackageManager.INSTALL_FAILED_REPLACE_COULDNT_DELETE;
 import static android.content.pm.PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE;
 import static android.content.pm.PackageManager.INSTALL_FAILED_TEST_ONLY;
 import static android.content.pm.PackageManager.INSTALL_FAILED_UPDATE_INCOMPATIBLE;
 import static android.content.pm.PackageManager.INSTALL_FAILED_VERSION_DOWNGRADE;
 import static android.content.pm.PackageManager.INSTALL_INTERNAL;
+import static android.content.pm.PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES;
 import static android.content.pm.PackageManager.INSTALL_SUCCEEDED;
 import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS;
 import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK;
@@ -118,8 +117,7 @@
 import static com.android.server.pm.PackageManagerServiceUtils.verifySignatures;
 import static com.android.server.pm.permission.PermissionsState.PERMISSION_OPERATION_FAILURE;
 import static com.android.server.pm.permission.PermissionsState.PERMISSION_OPERATION_SUCCESS;
-import static com.android.server.pm.permission.PermissionsState
-        .PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED;
+import static com.android.server.pm.permission.PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED;
 
 import android.Manifest;
 import android.annotation.IntDef;
@@ -199,6 +197,7 @@
 import android.content.pm.Signature;
 import android.content.pm.SuspendDialogInfo;
 import android.content.pm.UserInfo;
+import android.content.pm.UsesPermissionInfo;
 import android.content.pm.VerifierDeviceIdentity;
 import android.content.pm.VerifierInfo;
 import android.content.pm.VersionedPackage;
@@ -315,8 +314,7 @@
 import com.android.server.pm.dex.PackageDexUsage;
 import com.android.server.pm.permission.BasePermission;
 import com.android.server.pm.permission.DefaultPermissionGrantPolicy;
-import com.android.server.pm.permission.DefaultPermissionGrantPolicy
-        .DefaultPermissionGrantedCallback;
+import com.android.server.pm.permission.DefaultPermissionGrantPolicy.DefaultPermissionGrantedCallback;
 import com.android.server.pm.permission.PermissionManagerInternal;
 import com.android.server.pm.permission.PermissionManagerInternal.PermissionCallback;
 import com.android.server.pm.permission.PermissionManagerService;
@@ -375,6 +373,7 @@
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.BiConsumer;
+import java.util.function.Consumer;
 import java.util.function.Predicate;
 
 /**
@@ -646,9 +645,6 @@
     /** Directory where installed application's 32-bit native libraries are copied. */
     private static final File sAppLib32InstallDir =
             new File(Environment.getDataDirectory(), "app-lib");
-    /** Directory where code and non-resource assets of forward-locked applications are stored */
-    private static final File sDrmAppPrivateInstallDir =
-            new File(Environment.getDataDirectory(), "app-private");
 
     // ----------------------------------------------------------------
 
@@ -1811,12 +1807,10 @@
                             firstUserIds, firstInstantUserIds);
                 }
 
-                // Send broadcast package appeared if forward locked/external for all users
-                // treat asec-hosted packages like removable media on upgrade
-                if (res.pkg.isForwardLocked() || isExternal(res.pkg)) {
+                // Send broadcast package appeared if external for all users
+                if (isExternal(res.pkg)) {
                     if (DEBUG_INSTALL) {
-                        Slog.i(TAG, "upgrading pkg " + res.pkg
-                                + " is ASEC-hosted -> AVAILABLE");
+                        Slog.i(TAG, "upgrading pkg " + res.pkg + " is external");
                     }
                     final int[] uidArray = new int[]{res.pkg.applicationInfo.uid};
                     ArrayList<String> pkgList = new ArrayList<>(1);
@@ -2233,7 +2227,7 @@
             for (int i = 0; i < builtInLibCount; i++) {
                 String name = libConfig.keyAt(i);
                 String path = libConfig.valueAt(i);
-                addSharedLibraryLPw(path, null, name, SharedLibraryInfo.VERSION_UNDEFINED,
+                addSharedLibraryLPw(path, null, null, name, SharedLibraryInfo.VERSION_UNDEFINED,
                         SharedLibraryInfo.TYPE_BUILTIN, PLATFORM_PACKAGE_NAME, 0);
             }
             // Builtin libraries cannot encode their dependency where they are
@@ -2629,10 +2623,6 @@
                         SystemClock.uptimeMillis());
                 scanDirTracedLI(sAppInstallDir, 0, scanFlags | SCAN_REQUIRE_KNOWN, 0);
 
-                scanDirTracedLI(sDrmAppPrivateInstallDir, mDefParseFlags
-                        | PackageParser.PARSE_FORWARD_LOCK,
-                        scanFlags | SCAN_REQUIRE_KNOWN, 0);
-
                 // Remove disable package settings for updated system apps that were
                 // removed via an OTA. If the update is no longer present, remove the
                 // app completely. Otherwise, revoke their system privileges.
@@ -4844,7 +4834,8 @@
                     }
 
                     SharedLibraryInfo resLibInfo = new SharedLibraryInfo(libInfo.getPath(),
-                            libInfo.getPackageName(), libInfo.getName(), libInfo.getLongVersion(),
+                            libInfo.getPackageName(), libInfo.getAllCodePaths(),
+                            libInfo.getName(), libInfo.getLongVersion(),
                             libInfo.getType(), libInfo.getDeclaringPackage(),
                             getPackagesUsingSharedLibraryLPr(libInfo, flags, userId),
                             (libInfo.getDependencies() == null
@@ -5406,7 +5397,7 @@
         synchronized (mPackages) {
             Signature[] s1;
             Signature[] s2;
-            Object obj = mSettings.getUserIdLPr(uid1);
+            Object obj = mSettings.getSettingLPr(uid1);
             if (obj != null) {
                 if (obj instanceof SharedUserSetting) {
                     if (isCallerInstantApp) {
@@ -5425,7 +5416,7 @@
             } else {
                 return PackageManager.SIGNATURE_UNKNOWN_PACKAGE;
             }
-            obj = mSettings.getUserIdLPr(uid2);
+            obj = mSettings.getSettingLPr(uid2);
             if (obj != null) {
                 if (obj instanceof SharedUserSetting) {
                     if (isCallerInstantApp) {
@@ -5484,7 +5475,7 @@
         // reader
         synchronized (mPackages) {
             final PackageParser.SigningDetails signingDetails;
-            final Object obj = mSettings.getUserIdLPr(uid);
+            final Object obj = mSettings.getSettingLPr(uid);
             if (obj != null) {
                 if (obj instanceof SharedUserSetting) {
                     final boolean isCallerInstantApp = getInstantAppPackageName(callingUid) != null;
@@ -5597,7 +5588,7 @@
         uid = UserHandle.getAppId(uid);
         // reader
         synchronized (mPackages) {
-            Object obj = mSettings.getUserIdLPr(uid);
+            Object obj = mSettings.getSettingLPr(uid);
             if (obj instanceof SharedUserSetting) {
                 if (isCallerInstantApp) {
                     return null;
@@ -5633,7 +5624,7 @@
             return null;
         }
         synchronized (mPackages) {
-            Object obj = mSettings.getUserIdLPr(UserHandle.getAppId(uid));
+            Object obj = mSettings.getSettingLPr(UserHandle.getAppId(uid));
             if (obj instanceof SharedUserSetting) {
                 final SharedUserSetting sus = (SharedUserSetting) obj;
                 return sus.name + ":" + sus.userId;
@@ -5661,7 +5652,7 @@
         synchronized (mPackages) {
             for (int i = uids.length - 1; i >= 0; i--) {
                 final int uid = uids[i];
-                Object obj = mSettings.getUserIdLPr(UserHandle.getAppId(uid));
+                Object obj = mSettings.getSettingLPr(UserHandle.getAppId(uid));
                 if (obj instanceof SharedUserSetting) {
                     final SharedUserSetting sus = (SharedUserSetting) obj;
                     names[i] = "shared:" + sus.name;
@@ -5710,7 +5701,7 @@
             return 0;
         }
         synchronized (mPackages) {
-            Object obj = mSettings.getUserIdLPr(UserHandle.getAppId(uid));
+            Object obj = mSettings.getSettingLPr(UserHandle.getAppId(uid));
             if (obj instanceof SharedUserSetting) {
                 final SharedUserSetting sus = (SharedUserSetting) obj;
                 return sus.pkgFlags;
@@ -5732,7 +5723,7 @@
             return 0;
         }
         synchronized (mPackages) {
-            Object obj = mSettings.getUserIdLPr(UserHandle.getAppId(uid));
+            Object obj = mSettings.getSettingLPr(UserHandle.getAppId(uid));
             if (obj instanceof SharedUserSetting) {
                 final SharedUserSetting sus = (SharedUserSetting) obj;
                 return sus.pkgPrivateFlags;
@@ -5755,7 +5746,7 @@
         uid = UserHandle.getAppId(uid);
         // reader
         synchronized (mPackages) {
-            Object obj = mSettings.getUserIdLPr(uid);
+            Object obj = mSettings.getSettingLPr(uid);
             if (obj instanceof SharedUserSetting) {
                 final SharedUserSetting sus = (SharedUserSetting) obj;
                 final Iterator<PackageSetting> it = sus.packages.iterator();
@@ -6395,7 +6386,7 @@
                 callingUid = mIsolatedOwners.get(callingUid);
             }
             final int appId = UserHandle.getAppId(callingUid);
-            final Object obj = mSettings.getUserIdLPr(appId);
+            final Object obj = mSettings.getSettingLPr(appId);
             if (obj instanceof PackageSetting) {
                 final PackageSetting ps = (PackageSetting) obj;
                 final boolean isInstantApp = ps.getInstantApp(UserHandle.getUserId(callingUid));
@@ -8630,7 +8621,7 @@
                     + "; " + pkgSetting.codePathString + " --> " + pkg.codePath);
 
             final InstallArgs args = createInstallArgsForExisting(
-                    packageFlagsToInstallFlags(pkgSetting), pkgSetting.codePathString,
+                    pkgSetting.codePathString,
                     pkgSetting.resourcePathString, getAppDexInstructionSets(pkgSetting));
             args.cleanUpResourcesLI();
             synchronized (mPackages) {
@@ -8703,7 +8694,7 @@
                         + "; " + pkgSetting.versionCode + " --> " + pkg.getLongVersionCode()
                         + "; " + pkgSetting.codePathString + " --> " + pkg.codePath);
                 InstallArgs args = createInstallArgsForExisting(
-                        packageFlagsToInstallFlags(pkgSetting), pkgSetting.codePathString,
+                        pkgSetting.codePathString,
                         pkgSetting.resourcePathString, getAppDexInstructionSets(pkgSetting));
                 synchronized (mInstallLock) {
                     args.cleanUpResourcesLI();
@@ -8725,7 +8716,13 @@
                 | SCAN_UPDATE_SIGNATURE, currentTime, user);
         if (scanResult.success) {
             synchronized (mPackages) {
-                commitScanResultLocked(scanResult);
+                try {
+                    prepareScanResultLocked(scanResult);
+                    commitScanResultLocked(scanResult);
+                } catch (PackageManagerException e) {
+                    unprepareScanResultLocked(scanResult);
+                    throw e;
+                }
             }
         }
 
@@ -9225,7 +9222,7 @@
                     mDexManager.getPackageUseInfoOrDefault(depPackage.packageName), libraryOptions);
             }
         }
-        return pdo.performDexOpt(p, p.usesLibraryFiles, instructionSets,
+        return pdo.performDexOpt(p, p.usesLibraryInfos, instructionSets,
                 getOrCreateCompilerPackageStats(p),
                 mDexManager.getPackageUseInfoOrDefault(p.packageName), options);
     }
@@ -9628,7 +9625,6 @@
     @GuardedBy("mPackages")
     private void addSharedLibraryLPr(PackageParser.Package pkg, Set<String> usesLibraryFiles,
             SharedLibraryInfo libInfo, PackageParser.Package changingLib) {
-
         if (libInfo.getPath() != null) {
             usesLibraryFiles.add(libInfo.getPath());
             return;
@@ -10125,7 +10121,37 @@
                 }
             }
             for (ScanResult result : results) {
-                commitScanResultLocked(result);
+                try {
+                    prepareScanResultLocked(result);
+                    commitScanResultLocked(result);
+                } catch (PackageManagerException e) {
+                    unprepareScanResultLocked(result);
+                    throw e;
+                }
+            }
+        }
+    }
+
+    /** Prepares the system to commit a {@link ScanResult} in a way that will not fail. */
+    private void prepareScanResultLocked(@NonNull ScanResult result)
+            throws PackageManagerException {
+        if (!result.existingSettingCopied) {
+            // THROWS: when we can't allocate a user id. add call to check if there's
+            // enough space to ensure we won't throw; otherwise, don't modify state
+            mSettings.registerAppIdLPw(result.pkgSetting);
+        }
+    }
+
+    /**
+     * Reverts any changes to the system that were made by
+     * {@link #prepareScanResultLocked(ScanResult)}
+     */
+    private void unprepareScanResultLocked(@NonNull ScanResult result) {
+        if (!result.existingSettingCopied) {
+            // iff we've acquired an app ID for a new package setting, remove it so that it can be
+            // acquired by another request.
+            if (result.pkgSetting.appId > 0) {
+                mSettings.removeAppIdLPw(result.pkgSetting.appId);
             }
         }
     }
@@ -10164,10 +10190,6 @@
             if (originalPkgSetting != null) {
                 mSettings.addRenamedPackageLPw(pkg.packageName, originalPkgSetting.name);
             }
-            // THROWS: when we can't allocate a user id. add call to check if there's
-            // enough space to ensure we won't throw; otherwise, don't modify state
-            mSettings.addUserToSettingLPw(pkgSetting);
-
             if (originalPkgSetting != null && (scanFlags & SCAN_CHECK_ONLY) == 0) {
                 mTransferedPackages.add(originalPkgSetting.name);
             }
@@ -10278,12 +10300,21 @@
                         compareSignatures(
                             signatureCheckPs.sharedUser.signatures.mSigningDetails.signatures,
                             pkg.mSigningDetails.signatures) != PackageManager.SIGNATURE_MATCH) {
-                        // Treat mismatched signatures on system packages using a shared UID as
-                        // fatal for the system overall, rather than just failing to install
-                        // whichever package happened to be scanned later.
-                        throw new IllegalStateException(
-                                "Signature mismatch on system package " + pkg.packageName
-                                + " for shared user " + pkgSetting.sharedUser);
+                        if (SystemProperties.getInt("ro.product.first_api_level", 0) <= 28) {
+                            // Mismatched signatures is an error and silently skipping system
+                            // packages will likely break the device in unforeseen ways. However,
+                            // we allow the device to boot anyway because, prior to P, vendors were
+                            // not expecting the platform to crash in this situation.
+                            throw new PackageManagerException(
+                                    INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES,
+                                    "Signature mismatch for shared user: " + pkgSetting.sharedUser);
+                        } else {
+                            // Treat mismatched signatures on system packages using a shared UID as
+                            // fatal for the system overall, rather than just failing to install
+                            // whichever package happened to be scanned later.
+                            throw new IllegalStateException("Signature mismatch on system package "
+                                + pkg.packageName + " for shared user " + pkgSetting.sharedUser);
+                        }
                     }
 
                     signatureCheckPs.sharedUser.signatures.mSigningDetails = pkg.mSigningDetails;
@@ -11221,11 +11252,32 @@
                     }
                 }
             }
+
+            // Check permission usage info requirements.
+            if (pkg.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.Q) {
+                for (UsesPermissionInfo upi : pkg.usesPermissionInfos) {
+                    if (!mPermissionManager.isPermissionUsageInfoRequired(upi.getPermission())) {
+                        continue;
+                    }
+                    if (upi.getDataSentOffDevice() == UsesPermissionInfo.USAGE_UNDEFINED
+                            || upi.getDataSharedWithThirdParty()
+                                == UsesPermissionInfo.USAGE_UNDEFINED
+                            || upi.getDataUsedForMonetization()
+                                == UsesPermissionInfo.USAGE_UNDEFINED
+                            || upi.getDataRetention() == UsesPermissionInfo.RETENTION_UNDEFINED) {
+                        // STOPSHIP: Make this throw
+                        Slog.wtf(TAG, "Package " + pkg.packageName + " does not provide usage "
+                                + "information for permission " + upi.getPermission()
+                                + ". This will be a fatal error in Q.");
+                    }
+                }
+            }
         }
     }
 
-    private boolean addSharedLibraryLPw(String path, String apk, String name, long version,
-            int type, String declaringPackageName, long declaringVersionCode) {
+    private boolean addSharedLibraryLPw(String path, String apk, List<String> codePaths,
+            String name, long version, int type, String declaringPackageName,
+            long declaringVersionCode) {
         LongSparseArray<SharedLibraryInfo> versionedLib = mSharedLibraries.get(name);
         if (versionedLib == null) {
             versionedLib = new LongSparseArray<>();
@@ -11236,7 +11288,7 @@
         } else if (versionedLib.indexOfKey(version) >= 0) {
             return false;
         }
-        SharedLibraryInfo libraryInfo = new SharedLibraryInfo(path, apk, name,
+        SharedLibraryInfo libraryInfo = new SharedLibraryInfo(path, apk, codePaths, name,
                 version, type, new VersionedPackage(declaringPackageName, declaringVersionCode),
                 null, null);
         versionedLib.put(version, libraryInfo);
@@ -11323,10 +11375,17 @@
             if (pkg.staticSharedLibName != null) {
                 // Static shared libs don't allow renaming as they have synthetic package
                 // names to allow install of multiple versions, so use name from manifest.
-                if (addSharedLibraryLPw(null, pkg.packageName, pkg.staticSharedLibName,
+                if (addSharedLibraryLPw(null, pkg.packageName, pkg.getAllCodePaths(),
+                        pkg.staticSharedLibName,
                         pkg.staticSharedLibVersion, SharedLibraryInfo.TYPE_STATIC,
                         pkg.manifestPackageName, pkg.getLongVersionCode())) {
                     hasStaticSharedLibs = true;
+                    // Shared libraries for the package need to be updated.
+                    try {
+                        updateSharedLibrariesLPr(pkg, null);
+                    } catch (PackageManagerException e) {
+                        Slog.e(TAG, "updateSharedLibrariesLPr failed: ", e);
+                    }
                 } else {
                     Slog.w(TAG, "Package " + pkg.packageName + " library "
                                 + pkg.staticSharedLibName + " already exists; skipping");
@@ -11368,13 +11427,19 @@
                             allowed = true;
                         }
                         if (allowed) {
-                            if (!addSharedLibraryLPw(null, pkg.packageName, name,
-                                    SharedLibraryInfo.VERSION_UNDEFINED,
+                            if (!addSharedLibraryLPw(null, pkg.packageName, pkg.getAllCodePaths(),
+                                    name, SharedLibraryInfo.VERSION_UNDEFINED,
                                     SharedLibraryInfo.TYPE_DYNAMIC,
                                     pkg.packageName, pkg.getLongVersionCode())) {
                                 Slog.w(TAG, "Package " + pkg.packageName + " library "
                                         + name + " already exists; skipping");
                             }
+                            // Shared libraries for the package need to be updated.
+                            try {
+                                updateSharedLibrariesLPr(pkg, null);
+                            } catch (PackageManagerException e) {
+                                Slog.e(TAG, "updateSharedLibrariesLPr failed: ", e);
+                            }
                         } else {
                             Slog.w(TAG, "Package " + pkg.packageName + " declares lib "
                                     + name + " that is not declared on system image; skipping");
@@ -11522,11 +11587,8 @@
         // pass once we've determined ABI below.
         setNativeLibraryPaths(pkg, sAppLib32InstallDir);
 
-        // We would never need to extract libs for forward-locked and external packages,
-        // since the container service will do it for us. We shouldn't attempt to
-        // extract libs from system app when it was not updated.
-        if (pkg.isForwardLocked() || pkg.applicationInfo.isExternalAsec() ||
-                (isSystemApp(pkg) && !pkg.isUpdatedSystemApp())) {
+        // We shouldn't attempt to extract libs from system app when it was not updated.
+        if (isSystemApp(pkg) && !pkg.isUpdatedSystemApp()) {
             extractLibs = false;
         }
 
@@ -11867,7 +11929,6 @@
         final String codePath = pkg.codePath;
         final File codeFile = new File(codePath);
         final boolean bundledApp = info.isSystemApp() && !info.isUpdatedSystemApp();
-        final boolean asecApp = info.isForwardLocked() || info.isExternalAsec();
 
         info.nativeLibraryRootDir = null;
         info.nativeLibraryRootRequiresIsa = false;
@@ -11896,9 +11957,6 @@
                     info.secondaryNativeLibraryDir = Environment.buildPath(new File(apkRoot),
                             secondaryLibDir, apkName).getAbsolutePath();
                 }
-            } else if (asecApp) {
-                info.nativeLibraryRootDir = new File(codeFile.getParentFile(), LIB_DIR_NAME)
-                        .getAbsolutePath();
             } else {
                 final String apkName = deriveCodePathName(codePath);
                 info.nativeLibraryRootDir = new File(appLib32InstallDir, apkName)
@@ -13482,7 +13540,7 @@
             }
 
             Signature[] callerSignature;
-            Object obj = mSettings.getUserIdLPr(callingUid);
+            Object obj = mSettings.getSettingLPr(callingUid);
             if (obj != null) {
                 if (obj instanceof SharedUserSetting) {
                     callerSignature =
@@ -14007,7 +14065,6 @@
         private int installLocationPolicy(PackageInfoLite pkgLite) {
             String packageName = pkgLite.packageName;
             int installLocation = pkgLite.installLocation;
-            boolean onSd = (installFlags & PackageManager.INSTALL_EXTERNAL) != 0;
             // reader
             synchronized (mPackages) {
                 // Currently installed package which the new package is attempting to replace or
@@ -14060,16 +14117,8 @@
                     if ((installFlags & PackageManager.INSTALL_REPLACE_EXISTING) != 0) {
                         // Check for updated system application.
                         if ((installedPkg.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
-                            if (onSd) {
-                                Slog.w(TAG, "Cannot install update to system app on sdcard");
-                                return PackageHelper.RECOMMEND_FAILED_INVALID_LOCATION;
-                            }
                             return PackageHelper.RECOMMEND_INSTALL_INTERNAL;
                         } else {
-                            if (onSd) {
-                                // Install flag overrides everything.
-                                return PackageHelper.RECOMMEND_INSTALL_EXTERNAL;
-                            }
                             // If current upgrade specifies particular preference
                             if (installLocation == PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY) {
                                 // Application explicitly specified internal.
@@ -14090,11 +14139,6 @@
                     }
                 }
             }
-            // All the special cases have been taken care of.
-            // Return result based on recommended install location.
-            if (onSd) {
-                return PackageHelper.RECOMMEND_INSTALL_EXTERNAL;
-            }
             return pkgLite.recommendedInstallLocation;
         }
 
@@ -14111,70 +14155,59 @@
             if (origin.staged) {
                 if (origin.file != null) {
                     installFlags |= PackageManager.INSTALL_INTERNAL;
-                    installFlags &= ~PackageManager.INSTALL_EXTERNAL;
                 } else {
                     throw new IllegalStateException("Invalid stage location");
                 }
             }
 
-            final boolean onSd = (installFlags & PackageManager.INSTALL_EXTERNAL) != 0;
             final boolean onInt = (installFlags & PackageManager.INSTALL_INTERNAL) != 0;
             final boolean ephemeral = (installFlags & PackageManager.INSTALL_INSTANT_APP) != 0;
             PackageInfoLite pkgLite = null;
 
-            if (onInt && onSd) {
-                // Check if both bits are set.
-                Slog.w(TAG, "Conflicting flags specified for installing on both internal and external");
-                ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
-            } else if (onSd && ephemeral) {
-                Slog.w(TAG,  "Conflicting flags specified for installing ephemeral on external");
-                ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
-            } else {
-                pkgLite = PackageManagerServiceUtils.getMinimalPackageInfo(mContext,
-                        origin.resolvedPath, installFlags, packageAbiOverride);
 
-                if (DEBUG_INSTANT && ephemeral) {
-                    Slog.v(TAG, "pkgLite for install: " + pkgLite);
+            pkgLite = PackageManagerServiceUtils.getMinimalPackageInfo(mContext,
+                    origin.resolvedPath, installFlags, packageAbiOverride);
+
+            if (DEBUG_INSTANT && ephemeral) {
+                Slog.v(TAG, "pkgLite for install: " + pkgLite);
+            }
+
+            /*
+             * If we have too little free space, try to free cache
+             * before giving up.
+             */
+            if (!origin.staged && pkgLite.recommendedInstallLocation
+                    == PackageHelper.RECOMMEND_FAILED_INSUFFICIENT_STORAGE) {
+                // TODO: focus freeing disk space on the target device
+                final StorageManager storage = StorageManager.from(mContext);
+                final long lowThreshold = storage.getStorageLowBytes(
+                        Environment.getDataDirectory());
+
+                final long sizeBytes = PackageManagerServiceUtils.calculateInstalledSize(
+                        origin.resolvedPath, packageAbiOverride);
+                if (sizeBytes >= 0) {
+                    try {
+                        mInstaller.freeCache(null, sizeBytes + lowThreshold, 0, 0);
+                        pkgLite = PackageManagerServiceUtils.getMinimalPackageInfo(mContext,
+                                origin.resolvedPath, installFlags, packageAbiOverride);
+                    } catch (InstallerException e) {
+                        Slog.w(TAG, "Failed to free cache", e);
+                    }
                 }
 
                 /*
-                 * If we have too little free space, try to free cache
-                 * before giving up.
+                 * The cache free must have deleted the file we downloaded to install.
+                 *
+                 * TODO: fix the "freeCache" call to not delete the file we care about.
                  */
-                if (!origin.staged && pkgLite.recommendedInstallLocation
-                        == PackageHelper.RECOMMEND_FAILED_INSUFFICIENT_STORAGE) {
-                    // TODO: focus freeing disk space on the target device
-                    final StorageManager storage = StorageManager.from(mContext);
-                    final long lowThreshold = storage.getStorageLowBytes(
-                            Environment.getDataDirectory());
-
-                    final long sizeBytes = PackageManagerServiceUtils.calculateInstalledSize(
-                            origin.resolvedPath, packageAbiOverride);
-                    if (sizeBytes >= 0) {
-                        try {
-                            mInstaller.freeCache(null, sizeBytes + lowThreshold, 0, 0);
-                            pkgLite = PackageManagerServiceUtils.getMinimalPackageInfo(mContext,
-                                    origin.resolvedPath, installFlags, packageAbiOverride);
-                        } catch (InstallerException e) {
-                            Slog.w(TAG, "Failed to free cache", e);
-                        }
-                    }
-
-                    /*
-                     * The cache free must have deleted the file we
-                     * downloaded to install.
-                     *
-                     * TODO: fix the "freeCache" call to not delete
-                     *       the file we care about.
-                     */
-                    if (pkgLite.recommendedInstallLocation
-                            == PackageHelper.RECOMMEND_FAILED_INVALID_URI) {
-                        pkgLite.recommendedInstallLocation
+                if (pkgLite.recommendedInstallLocation
+                        == PackageHelper.RECOMMEND_FAILED_INVALID_URI) {
+                    pkgLite.recommendedInstallLocation
                             = PackageHelper.RECOMMEND_FAILED_INSUFFICIENT_STORAGE;
-                    }
                 }
             }
 
+
             if (ret == PackageManager.INSTALL_SUCCEEDED) {
                 int loc = pkgLite.recommendedInstallLocation;
                 if (loc == PackageHelper.RECOMMEND_FAILED_INVALID_LOCATION) {
@@ -14194,24 +14227,21 @@
                     loc = installLocationPolicy(pkgLite);
                     if (loc == PackageHelper.RECOMMEND_FAILED_VERSION_DOWNGRADE) {
                         ret = PackageManager.INSTALL_FAILED_VERSION_DOWNGRADE;
-                    } else if (!onSd && !onInt) {
+                    } else if (!onInt) {
                         // Override install location with flags
                         if (loc == PackageHelper.RECOMMEND_INSTALL_EXTERNAL) {
                             // Set the flag to install on external media.
-                            installFlags |= PackageManager.INSTALL_EXTERNAL;
                             installFlags &= ~PackageManager.INSTALL_INTERNAL;
                         } else if (loc == PackageHelper.RECOMMEND_INSTALL_EPHEMERAL) {
                             if (DEBUG_INSTANT) {
                                 Slog.v(TAG, "...setting INSTALL_EPHEMERAL install flag");
                             }
                             installFlags |= PackageManager.INSTALL_INSTANT_APP;
-                            installFlags &= ~(PackageManager.INSTALL_EXTERNAL
-                                    |PackageManager.INSTALL_INTERNAL);
+                            installFlags &= ~PackageManager.INSTALL_INTERNAL;
                         } else {
                             // Make sure the flag for installing on external
                             // media is unset
                             installFlags |= PackageManager.INSTALL_INTERNAL;
-                            installFlags &= ~PackageManager.INSTALL_EXTERNAL;
                         }
                     }
                 }
@@ -14395,7 +14425,7 @@
      * Create args that describe an existing installed package. Typically used
      * when cleaning up old installs, or used as a move source.
      */
-    private InstallArgs createInstallArgsForExisting(int installFlags, String codePath,
+    private InstallArgs createInstallArgsForExisting(String codePath,
             String resourcePath, String[] instructionSets) {
         return new FileInstallArgs(codePath, resourcePath, instructionSets);
     }
@@ -14487,14 +14517,6 @@
             return PackageManager.INSTALL_SUCCEEDED;
         }
 
-        protected boolean isFwdLocked() {
-            return (installFlags & PackageManager.INSTALL_FORWARD_LOCK) != 0;
-        }
-
-        protected boolean isExternalAsec() {
-            return (installFlags & PackageManager.INSTALL_EXTERNAL) != 0;
-        }
-
         protected boolean isEphemeral() {
             return (installFlags & PackageManager.INSTALL_INSTANT_APP) != 0;
         }
@@ -14522,7 +14544,7 @@
     }
 
     /**
-     * Logic to handle installation of non-ASEC applications, including copying
+     * Logic to handle installation of new applications, including copying
      * and renaming logic.
      */
     class FileInstallArgs extends InstallArgs {
@@ -14544,9 +14566,6 @@
                     params.grantedRuntimePermissions,
                     params.traceMethod, params.traceCookie, params.signingDetails,
                     params.installReason, params.mParentInstallParams);
-            if (isFwdLocked()) {
-                throw new IllegalArgumentException("Forward locking only supported in ASEC");
-            }
         }
 
         /** Existing install */
@@ -15201,8 +15220,11 @@
         }
     }
     private static class ReconcileFailure extends PackageManagerException {
-        public ReconcileFailure(String message) {
-            super("Invalid reconcile request: " + message);
+        ReconcileFailure(String message) {
+            super("Reconcile failed: " + message);
+        }
+        ReconcileFailure(int reason, String message) {
+            super(reason, "Reconcile failed: " + message);
         }
     }
 
@@ -15221,10 +15243,12 @@
         @PackageManager.InstallFlags
         public final int installFlags;
         public final InstallArgs installArgs;
+        public final DeletePackageAction deletePackageAction;
 
         private ReconciledPackage(InstallArgs installArgs, PackageSetting pkgSetting,
                 UserHandle installForUser, PackageInstalledInfo installResult, int installFlags,
-                String volumeUuid, PrepareResult prepareResult, ScanResult scanResult) {
+                String volumeUuid, PrepareResult prepareResult, ScanResult scanResult,
+                DeletePackageAction deletePackageAction) {
             this.installArgs = installArgs;
             this.pkgSetting = pkgSetting;
             this.installForUser = installForUser;
@@ -15233,6 +15257,7 @@
             this.volumeUuid = volumeUuid;
             this.prepareResult = prepareResult;
             this.scanResult = scanResult;
+            this.deletePackageAction = deletePackageAction;
         }
     }
 
@@ -15245,14 +15270,30 @@
             final ScanResult scanResult = request.scannedPackages.get(installPackageName);
             final InstallArgs installArgs = request.installArgs.get(installPackageName);
             final PackageInstalledInfo res = request.installResults.get(installPackageName);
+            final PrepareResult prepareResult = request.preparedPackages.get(installPackageName);
             if (scanResult == null || installArgs == null || res == null) {
                 throw new ReconcileFailure(
                         "inputs not balanced; missing argument for " + installPackageName);
             }
+            final DeletePackageAction deletePackageAction;
+            // we only want to try to delete for non system apps
+            if (prepareResult.replace && !prepareResult.system) {
+                deletePackageAction = mayDeletePackageLocked(res.removedInfo,
+                        prepareResult.originalPs, prepareResult.disabledPs,
+                        prepareResult.childPackageSettings);
+                if (deletePackageAction == null) {
+                    throw new ReconcileFailure(
+                            PackageManager.INSTALL_FAILED_REPLACE_COULDNT_DELETE,
+                            "May not delete " + installPackageName + " to replace");
+                }
+            } else {
+                deletePackageAction = null;
+            }
             result.put(installPackageName,
                     new ReconciledPackage(installArgs, scanResult.pkgSetting, installArgs.getUser(),
                             res, installArgs.installFlags, installArgs.volumeUuid,
-                            request.preparedPackages.get(installPackageName), scanResult));
+                            request.preparedPackages.get(installPackageName), scanResult,
+                            deletePackageAction));
         }
         return result;
     }
@@ -15277,7 +15318,7 @@
                         // We didn't need to disable the .apk as a current system package,
                         // which means we are replacing another update that is already
                         // installed.  We need to make sure to delete the older one's .apk.
-                        res.removedInfo.args = createInstallArgsForExisting(0,
+                        res.removedInfo.args = createInstallArgsForExisting(
                                 oldPackage.applicationInfo.getCodePath(),
                                 oldPackage.applicationInfo.getResourcePath(),
                                 getAppDexInstructionSets(oldPackage.applicationInfo));
@@ -15324,29 +15365,29 @@
                     final boolean killApp = (scanRequest.scanFlags & SCAN_DONT_KILL_APP) == 0;
                     final int deleteFlags = PackageManager.DELETE_KEEP_DATA
                             | (killApp ? 0 : PackageManager.DELETE_DONT_KILL_APP);
-                    // First delete the existing package while retaining the data directory
-                    if (!deletePackageLIF(packageName, null, true, request.mAllUsers, deleteFlags,
-                            res.removedInfo, true, pkg)) {
-                        // If the existing package wasn't successfully deleted
-                        res.setError(INSTALL_FAILED_REPLACE_COULDNT_DELETE,
-                                "replaceNonSystemPackageLI");
-                        return false;
-                    } else {
-                        // Successfully deleted the old package; proceed with replace.
-
-                        // If deleted package lived in a container, give users a chance to
-                        // relinquish resources before killing.
-                        if (oldPackage.isForwardLocked() || isExternal(oldPackage)) {
-                            if (DEBUG_INSTALL) {
-                                Slog.i(TAG, "upgrading pkg " + oldPackage
-                                        + " is ASEC-hosted -> UNAVAILABLE");
-                            }
-                            final int[] uidArray = new int[]{oldPackage.applicationInfo.uid};
-                            final ArrayList<String> pkgList = new ArrayList<>(1);
-                            pkgList.add(oldPackage.applicationInfo.packageName);
-                            sendResourcesChangedBroadcast(false, true, pkgList, uidArray, null);
+                    try {
+                        executeDeletePackageLIF(reconciledPkg.deletePackageAction, packageName,
+                                null, true, request.mAllUsers, deleteFlags, true, pkg);
+                    } catch (SystemDeleteException e) {
+                        if (Build.IS_ENG) {
+                            throw new RuntimeException("Unexpected failure", e);
+                            // ignore; not possible for non-system app
                         }
                     }
+                    // Successfully deleted the old package; proceed with replace.
+
+                    // If deleted package lived in a container, give users a chance to
+                    // relinquish resources before killing.
+                    if (oldPackage.isForwardLocked() || isExternal(oldPackage)) {
+                        if (DEBUG_INSTALL) {
+                            Slog.i(TAG, "upgrading pkg " + oldPackage
+                                    + " is ASEC-hosted -> UNAVAILABLE");
+                        }
+                        final int[] uidArray = new int[]{oldPackage.applicationInfo.uid};
+                        final ArrayList<String> pkgList = new ArrayList<>(1);
+                        pkgList.add(oldPackage.applicationInfo.packageName);
+                        sendResourcesChangedBroadcast(false, true, pkgList, uidArray, null);
+                    }
 
                     // Update the in-memory copy of the previous code paths.
                     PackageSetting ps1 = mSettings.mPackages.get(
@@ -15400,8 +15441,10 @@
 
 
             try {
+                prepareScanResultLocked(scanResult);
                 commitScanResultLocked(scanResult);
             } catch (PackageManagerException e) {
+                unprepareScanResultLocked(scanResult);
                 res.setReturnCode(INSTALL_FAILED_INTERNAL_ERROR);
                 res.setError("Package couldn't be installed in " + pkg.codePath, e);
                 return false;
@@ -15556,8 +15599,6 @@
      */
     private void executePostCommitSteps(CommitRequest commitRequest) {
         for (ReconciledPackage reconciledPkg : commitRequest.reconciledPackages.values()) {
-            final boolean forwardLocked =
-                    ((reconciledPkg.installFlags & PackageManager.INSTALL_FORWARD_LOCK) != 0);
             final boolean instantApp =
                     ((reconciledPkg.installFlags & PackageManager.INSTALL_INSTANT_APP) != 0);
             final PackageParser.Package pkg = reconciledPkg.pkgSetting.pkg;
@@ -15590,10 +15631,8 @@
             //     This update happens in place!
             //
             // We only need to dexopt if the package meets ALL of the following conditions:
-            //   1) it is not forward locked.
-            //   2) it is not on on an external ASEC container.
-            //   3) it is not an instant app or if it is then dexopt is enabled via gservices.
-            //   4) it is not debuggable.
+            //   1) it is not an instant app or if it is then dexopt is enabled via gservices.
+            //   2) it is not debuggable.
             //
             // Note that we do not dexopt instant apps by default. dexopt can take some time to
             // complete, so we skip this step during installation. Instead, we'll take extra time
@@ -15601,9 +15640,8 @@
             // continuous progress to the useur instead of mysteriously blocking somewhere in the
             // middle of running an instant app. The default behaviour can be overridden
             // via gservices.
-            final boolean performDexopt = !forwardLocked
-                    && !pkg.applicationInfo.isExternalAsec()
-                    && (!instantApp || Global.getInt(mContext.getContentResolver(),
+            final boolean performDexopt =
+                    (!instantApp || Global.getInt(mContext.getContentResolver(),
                     Global.INSTANT_APP_DEXOPT_ENABLED, 0) != 0)
                     && ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) == 0);
 
@@ -15617,7 +15655,7 @@
                         REASON_INSTALL,
                         DexoptOptions.DEXOPT_BOOT_COMPLETE
                                 | DexoptOptions.DEXOPT_INSTALL_WITH_DEX_METADATA_FILE);
-                mPackageDexOptimizer.performDexOpt(pkg, pkg.usesLibraryFiles,
+                mPackageDexOptimizer.performDexOpt(pkg, pkg.usesLibraryInfos,
                         null /* instructionSets */,
                         getOrCreateCompilerPackageStats(pkg),
                         mDexManager.getPackageUseInfoOrDefault(packageName),
@@ -15698,7 +15736,6 @@
                     // Parse old package
                     boolean oldExternal = isExternal(oldPackage);
                     int oldParseFlags = mDefParseFlags | PackageParser.PARSE_CHATTY
-                            | (oldPackage.isForwardLocked() ? PackageParser.PARSE_FORWARD_LOCK : 0)
                             | (oldExternal ? PackageParser.PARSE_EXTERNAL_STORAGE : 0);
                     int oldScanFlags = SCAN_UPDATE_SIGNATURE | SCAN_UPDATE_TIME;
                     try {
@@ -15758,13 +15795,16 @@
         @Nullable
         public final String renamedPackage;
         public final PackageFreezer freezer;
+        public final PackageSetting originalPs;
+        public final PackageSetting disabledPs;
+        public final PackageSetting[] childPackageSettings;
 
         private PrepareResult(int installReason, String volumeUuid,
                 String installerPackageName, UserHandle user, boolean replace, int scanFlags,
                 int parseFlags, PackageParser.Package existingPackage,
                 PackageParser.Package packageToScan, boolean clearCodeCache, boolean system,
-                String renamedPackage,
-                PackageFreezer freezer) {
+                String renamedPackage, PackageFreezer freezer, PackageSetting originalPs,
+                PackageSetting disabledPs, PackageSetting[] childPackageSettings) {
             this.installReason = installReason;
             this.volumeUuid = volumeUuid;
             this.installerPackageName = installerPackageName;
@@ -15778,6 +15818,9 @@
             this.system = system;
             this.renamedPackage = renamedPackage;
             this.freezer = freezer;
+            this.originalPs = originalPs;
+            this.disabledPs = disabledPs;
+            this.childPackageSettings = childPackageSettings;
         }
     }
 
@@ -15816,9 +15859,7 @@
         final String installerPackageName = args.installerPackageName;
         final String volumeUuid = args.volumeUuid;
         final File tmpPackageFile = new File(args.getCodePath());
-        final boolean forwardLocked = ((installFlags & PackageManager.INSTALL_FORWARD_LOCK) != 0);
-        final boolean onExternal = (((installFlags & PackageManager.INSTALL_EXTERNAL) != 0)
-                || (args.volumeUuid != null));
+        final boolean onExternal = args.volumeUuid != null;
         final boolean instantApp = ((installFlags & PackageManager.INSTALL_INSTANT_APP) != 0);
         final boolean fullApp = ((installFlags & PackageManager.INSTALL_FULL_APP) != 0);
         final boolean forceSdk = ((installFlags & PackageManager.INSTALL_FORCE_SDK) != 0);
@@ -15845,16 +15886,14 @@
         if (DEBUG_INSTALL) Slog.d(TAG, "installPackageLI: path=" + tmpPackageFile);
 
         // Sanity check
-        if (instantApp && (forwardLocked || onExternal)) {
-            Slog.i(TAG, "Incompatible ephemeral install; fwdLocked=" + forwardLocked
-                    + " external=" + onExternal);
+        if (instantApp && onExternal) {
+            Slog.i(TAG, "Incompatible ephemeral install; external=" + onExternal);
             throw new PrepareFailure(PackageManager.INSTALL_FAILED_INSTANT_APP_INVALID);
         }
 
         // Retrieve PackageSettings and parse package
         @ParseFlags final int parseFlags = mDefParseFlags | PackageParser.PARSE_CHATTY
                 | PackageParser.PARSE_ENFORCE_CODE
-                | (forwardLocked ? PackageParser.PARSE_FORWARD_LOCK : 0)
                 | (onExternal ? PackageParser.PARSE_EXTERNAL_STORAGE : 0)
                 | (forceSdk ? PackageParser.PARSE_FORCE_SDK : 0);
 
@@ -16199,7 +16238,7 @@
                 pkg.applicationInfo.secondaryCpuAbi = ps.secondaryCpuAbiString;
             }
 
-        } else if (!forwardLocked && !pkg.applicationInfo.isExternalAsec()) {
+        } else {
             // Enable SCAN_NO_DEX flag to skip dexopt at a later stage
             scanFlags |= SCAN_NO_DEX;
 
@@ -16285,7 +16324,9 @@
             String targetVolumeUuid = volumeUuid;
             int targetScanFlags = scanFlags;
             int targetParseFlags = parseFlags;
-
+            final PackageSetting ps;
+            final PackageSetting disabledPs;
+            final PackageSetting[] childPackages;
             if (replace) {
                 targetVolumeUuid = null;
                 if (pkg.applicationInfo.isStaticSharedLibrary()) {
@@ -16305,7 +16346,6 @@
                 final boolean isInstantApp = (scanFlags & SCAN_AS_INSTANT_APP) != 0;
 
                 final PackageParser.Package oldPackage;
-                final PackageSetting ps;
                 final String pkgName11 = pkg.packageName;
                 final int[] allUsers;
                 final int[] installedUsers;
@@ -16332,6 +16372,7 @@
                     }
 
                     ps = mSettings.mPackages.get(pkgName11);
+                    disabledPs = mSettings.getDisabledSystemPkgLPr(ps);
 
                     // verify signatures are valid
                     final KeySetManagerService ksms = mSettings.mKeySetManagerService;
@@ -16428,49 +16469,52 @@
                     res.removedInfo.installReasons.put(userId, ps.getInstallReason(userId));
                 }
 
-                final int childCount = (oldPackage.childPackages != null)
-                        ? oldPackage.childPackages.size() : 0;
-                for (int i = 0; i < childCount; i++) {
-                    boolean childPackageUpdated = false;
-                    PackageParser.Package childPkg = oldPackage.childPackages.get(i);
-                    final PackageSetting childPs = mSettings.getPackageLPr(childPkg.packageName);
-                    if (res.addedChildPackages != null) {
-                        PackageInstalledInfo childRes = res.addedChildPackages.get(
-                                childPkg.packageName);
-                        if (childRes != null) {
-                            childRes.removedInfo.uid = childPkg.applicationInfo.uid;
-                            childRes.removedInfo.removedPackage = childPkg.packageName;
-                            if (childPs != null) {
-                                childRes.removedInfo.installerPackageName =
-                                        childPs.installerPackageName;
-                            }
-                            childRes.removedInfo.isUpdate = true;
-                            childRes.removedInfo.installReasons = res.removedInfo.installReasons;
-                            childPackageUpdated = true;
-                        }
-                    }
-                    if (!childPackageUpdated) {
-                        PackageRemovedInfo childRemovedRes = new PackageRemovedInfo(this);
-                        childRemovedRes.removedPackage = childPkg.packageName;
-                        if (childPs != null) {
-                            childRemovedRes.installerPackageName = childPs.installerPackageName;
-                        }
-                        childRemovedRes.isUpdate = false;
-                        childRemovedRes.dataRemoved = true;
-                        synchronized (mPackages) {
-                            if (childPs != null) {
-                                childRemovedRes.origUsers = childPs.queryInstalledUsers(allUsers,
-                                        true);
+                childPackages = mSettings.getChildSettingsLPr(ps);
+                if (childPackages != null) {
+                    for (PackageSetting childPs : childPackages) {
+                        boolean childPackageUpdated = false;
+                        PackageParser.Package childPkg = (childPs == null) ? null : childPs.pkg;
+                        if (res.addedChildPackages != null) {
+                            PackageInstalledInfo childRes = res.addedChildPackages.get(
+                                    childPkg.packageName);
+                            if (childRes != null) {
+                                childRes.removedInfo.uid = childPkg.applicationInfo.uid;
+                                childRes.removedInfo.removedPackage = childPkg.packageName;
+                                if (childPs != null) {
+                                    childRes.removedInfo.installerPackageName =
+                                            childPs.installerPackageName;
+                                }
+                                childRes.removedInfo.isUpdate = true;
+                                childRes.removedInfo.installReasons =
+                                        res.removedInfo.installReasons;
+                                childPackageUpdated = true;
                             }
                         }
-                        if (res.removedInfo.removedChildPackages == null) {
-                            res.removedInfo.removedChildPackages = new ArrayMap<>();
+                        if (!childPackageUpdated) {
+                            PackageRemovedInfo childRemovedRes = new PackageRemovedInfo(this);
+                            childRemovedRes.removedPackage = childPkg.packageName;
+                            if (childPs != null) {
+                                childRemovedRes.installerPackageName = childPs.installerPackageName;
+                            }
+                            childRemovedRes.isUpdate = false;
+                            childRemovedRes.dataRemoved = true;
+                            synchronized (mPackages) {
+                                if (childPs != null) {
+                                    childRemovedRes.origUsers = childPs.queryInstalledUsers(
+                                            allUsers,
+                                            true);
+                                }
+                            }
+                            if (res.removedInfo.removedChildPackages == null) {
+                                res.removedInfo.removedChildPackages = new ArrayMap<>();
+                            }
+                            res.removedInfo.removedChildPackages.put(childPkg.packageName,
+                                    childRemovedRes);
                         }
-                        res.removedInfo.removedChildPackages.put(childPkg.packageName,
-                                childRemovedRes);
                     }
                 }
 
+
                 sysPkg = (isSystemApp(oldPackage));
                 if (sysPkg) {
                     // Set the system/privileged/oem/vendor/product flags as needed
@@ -16513,6 +16557,9 @@
 
                 }
             } else { // new package install
+                ps = null;
+                childPackages = null;
+                disabledPs = null;
                 replace = false;
                 existingPackage = null;
                 // Remember this for later, in case we need to rollback this install
@@ -16543,9 +16590,11 @@
             }
             // we're passing the freezer back to be closed in a later phase of install
             shouldCloseFreezerBeforeReturn = false;
+
             return new PrepareResult(args.installReason, targetVolumeUuid, installerPackageName,
                     args.user, replace, targetScanFlags, targetParseFlags, existingPackage, pkg,
-                    replace /* clearCodeCache */, sysPkg, renamedPackage, freezer);
+                    replace /* clearCodeCache */, sysPkg, renamedPackage, freezer,
+                    ps, disabledPs, childPackages);
         } finally {
             if (shouldCloseFreezerBeforeReturn) {
                 freezer.close();
@@ -16731,19 +16780,6 @@
         return (ps.pkgFlags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
     }
 
-    private int packageFlagsToInstallFlags(PackageSetting ps) {
-        int installFlags = 0;
-        if (isExternal(ps) && TextUtils.isEmpty(ps.volumeUuid)) {
-            // This existing package was an external ASEC install when we have
-            // the external flag without a UUID
-            installFlags |= PackageManager.INSTALL_EXTERNAL;
-        }
-        if (ps.isForwardLocked()) {
-            installFlags |= PackageManager.INSTALL_FORWARD_LOCK;
-        }
-        return installFlags;
-    }
-
     private VersionInfo getSettingsVersionForPackage(PackageParser.Package pkg) {
         if (isExternal(pkg)) {
             if (TextUtils.isEmpty(pkg.volumeUuid)) {
@@ -16759,9 +16795,6 @@
     private void deleteTempPackageFiles() {
         final FilenameFilter filter =
                 (dir, name) -> name.startsWith("vmdl") && name.endsWith(".tmp");
-        for (File file : sDrmAppPrivateInstallDir.listFiles(filter)) {
-            file.delete();
-        }
     }
 
     @Override
@@ -17511,34 +17544,20 @@
     /*
      * Tries to delete system package.
      */
-    private boolean deleteSystemPackageLIF(PackageParser.Package deletedPkg,
-            PackageSetting deletedPs, int[] allUserHandles, int flags, PackageRemovedInfo outInfo,
-            boolean writeSettings) {
-        if (deletedPs.parentPackageName != null) {
-            Slog.w(TAG, "Attempt to delete child system package " + deletedPkg.packageName);
-            return false;
-        }
-
+    private void deleteSystemPackageLIF(DeletePackageAction action,
+            PackageParser.Package deletedPkg, PackageSetting deletedPs, int[] allUserHandles,
+            int flags, PackageRemovedInfo outInfo, boolean writeSettings)
+            throws SystemDeleteException {
         final boolean applyUserRestrictions
                 = (allUserHandles != null) && (outInfo.origUsers != null);
-        final PackageSetting disabledPs;
         // Confirm if the system package has been updated
         // An updated system app can be deleted. This will also have to restore
         // the system pkg from system partition
         // reader
-        synchronized (mPackages) {
-            disabledPs = mSettings.getDisabledSystemPkgLPr(deletedPs.name);
-        }
-
+        final PackageSetting disabledPs = action.disabledPs;
         if (DEBUG_REMOVE) Slog.d(TAG, "deleteSystemPackageLI: newPs=" + deletedPkg.packageName
                 + " disabledPs=" + disabledPs);
-
-        if (disabledPs == null) {
-            Slog.w(TAG, "Attempt to delete unknown system package "+ deletedPkg.packageName);
-            return false;
-        } else if (DEBUG_REMOVE) {
-            Slog.d(TAG, "Deleting system pkg from data partition");
-        }
+        Slog.d(TAG, "Deleting system pkg from data partition");
 
         if (DEBUG_REMOVE) {
             if (applyUserRestrictions) {
@@ -17576,11 +17595,8 @@
             flags |= PackageManager.DELETE_KEEP_DATA;
         }
 
-        boolean ret = deleteInstalledPackageLIF(deletedPs, true, flags, allUserHandles,
+        deleteInstalledPackageLIF(deletedPs, true, flags, allUserHandles,
                 outInfo, writeSettings, disabledPs.pkg);
-        if (!ret) {
-            return false;
-        }
 
         // writer
         synchronized (mPackages) {
@@ -17597,25 +17613,25 @@
         // Install the system package
         if (DEBUG_REMOVE) Slog.d(TAG, "Re-installing system package: " + disabledPs);
         try {
-            installPackageFromSystemLIF(disabledPs.codePathString, false, allUserHandles,
+            installPackageFromSystemLIF(disabledPs.codePathString, allUserHandles,
                     outInfo.origUsers, deletedPs.getPermissionsState(), writeSettings);
         } catch (PackageManagerException e) {
             Slog.w(TAG, "Failed to restore system package:" + deletedPkg.packageName + ": "
                     + e.getMessage());
-            return false;
+            // TODO(patb): can we avoid this; throw would come from scan...
+            throw new SystemDeleteException(e);
         } finally {
             if (disabledPs.pkg.isStub) {
                 mSettings.disableSystemPackageLPw(disabledPs.name, true /*replaced*/);
             }
         }
-        return true;
     }
 
     /**
      * Installs a package that's already on the system partition.
      */
     private PackageParser.Package installPackageFromSystemLIF(@NonNull String codePathString,
-            boolean isPrivileged, @Nullable int[] allUserHandles, @Nullable int[] origUserHandles,
+            @Nullable int[] allUserHandles, @Nullable int[] origUserHandles,
             @Nullable PermissionsState origPermissionState, boolean writeSettings)
                     throws PackageManagerException {
         @ParseFlags int parseFlags =
@@ -17623,7 +17639,7 @@
                 | PackageParser.PARSE_MUST_BE_APK
                 | PackageParser.PARSE_IS_SYSTEM_DIR;
         @ScanFlags int scanFlags = SCAN_AS_SYSTEM;
-        if (isPrivileged || locationIsPrivileged(codePathString)) {
+        if (locationIsPrivileged(codePathString)) {
             scanFlags |= SCAN_AS_PRIVILEGED;
         }
         if (locationIsOem(codePathString)) {
@@ -17699,7 +17715,7 @@
         return pkg;
     }
 
-    private boolean deleteInstalledPackageLIF(PackageSetting ps,
+    private void deleteInstalledPackageLIF(PackageSetting ps,
             boolean deleteCodeAndResources, int flags, int[] allUserHandles,
             PackageRemovedInfo outInfo, boolean writeSettings,
             PackageParser.Package replacingPackage) {
@@ -17714,9 +17730,6 @@
                 for (int i = 0; i < childCount; i++) {
                     String childPackageName = ps.childPackageNames.get(i);
                     PackageSetting childPs = mSettings.mPackages.get(childPackageName);
-                    if (childPs == null) {
-                        return false;
-                    }
                     PackageRemovedInfo childInfo = outInfo.removedChildPackages.get(
                             childPackageName);
                     if (childInfo != null) {
@@ -17752,13 +17765,11 @@
         // Delete application code and resources only for parent packages
         if (ps.parentPackageName == null) {
             if (deleteCodeAndResources && (outInfo != null)) {
-                outInfo.args = createInstallArgsForExisting(packageFlagsToInstallFlags(ps),
+                outInfo.args = createInstallArgsForExisting(
                         ps.codePathString, ps.resourcePathString, getAppDexInstructionSets(ps));
                 if (DEBUG_SD_INSTALL) Slog.i(TAG, "args=" + outInfo.args);
             }
         }
-
-        return true;
     }
 
     @Override
@@ -17814,26 +17825,59 @@
 
     private static class DeletePackageAction {
         public final PackageSetting deletingPs;
+        public final PackageSetting disabledPs;
+        public final PackageRemovedInfo outInfo;
 
-        private DeletePackageAction(PackageSetting deletingPs) {
+        private DeletePackageAction(PackageSetting deletingPs, PackageSetting disabledPs,
+                PackageRemovedInfo outInfo) {
             this.deletingPs = deletingPs;
+            this.disabledPs = disabledPs;
+            this.outInfo = outInfo;
         }
     }
 
     /**
-     * @return a {@link DeletePackageAction} if the provided package may be deleted, {@code null}
-     * otherwise.
+     * @return a {@link DeletePackageAction} if the provided package and related state may be
+     * deleted, {@code null} otherwise.
      */
     @Nullable
-    private DeletePackageAction mayDeletePackageLIF(@NonNull String packageName) {
-        synchronized (mPackages) {
-            final PackageSetting ps;
-            ps = mSettings.mPackages.get(packageName);
-            if (ps == null) {
+    @GuardedBy("mPackages")
+    private static DeletePackageAction mayDeletePackageLocked(
+            PackageRemovedInfo outInfo, PackageSetting ps, @Nullable PackageSetting disabledPs,
+            @Nullable PackageSetting[] children) {
+        if (ps == null) {
+            return null;
+        }
+        if (isSystemApp(ps)) {
+            if (ps.parentPackageName != null) {
+                Slog.w(TAG, "Attempt to delete child system package " + ps.pkg.packageName);
                 return null;
             }
-            return new DeletePackageAction(ps);
+
+            // Confirm if the system package has been updated
+            // An updated system app can be deleted. This will also have to restore
+            // the system pkg from system partition
+            // reader
+            if (disabledPs == null) {
+                Slog.w(TAG,
+                        "Attempt to delete unknown system package " + ps.pkg.packageName);
+                return null;
+            }
         }
+        final int parentReferenceCount =
+                (ps.childPackageNames != null) ? ps.childPackageNames.size() : 0;
+        final int childCount = children != null ? children.length : 0;
+        if (childCount != parentReferenceCount) {
+            return null;
+        }
+        if (childCount != 0 && outInfo != null && outInfo.removedChildPackages != null) {
+            for (PackageSetting child : children) {
+                if (child == null || !ps.childPackageNames.contains(child.name)) {
+                    return null;
+                }
+            }
+        }
+        return new DeletePackageAction(ps, disabledPs, outInfo);
     }
 
     /*
@@ -17843,22 +17887,43 @@
             boolean deleteCodeAndResources, int[] allUserHandles, int flags,
             PackageRemovedInfo outInfo, boolean writeSettings,
             PackageParser.Package replacingPackage) {
-        final DeletePackageAction action = mayDeletePackageLIF(packageName);
+        final DeletePackageAction action;
+        synchronized (mPackages) {
+            final PackageSetting ps = mSettings.mPackages.get(packageName);
+            final PackageSetting disabledPs = mSettings.getDisabledSystemPkgLPr(ps);
+            PackageSetting[] children = mSettings.getChildSettingsLPr(ps);
+            action = mayDeletePackageLocked(outInfo, ps, disabledPs, children);
+        }
         if (null == action) {
             return false;
         }
 
         if (DEBUG_REMOVE) Slog.d(TAG, "deletePackageLI: " + packageName + " user " + user);
 
-        return executeDeletePackageLIF(action, packageName, user, deleteCodeAndResources,
-                allUserHandles, flags, outInfo, writeSettings, replacingPackage);
+        try {
+            executeDeletePackageLIF(action, packageName, user, deleteCodeAndResources,
+                    allUserHandles, flags, writeSettings, replacingPackage);
+        } catch (SystemDeleteException e) {
+            return false;
+        }
+        return true;
     }
 
-    private boolean executeDeletePackageLIF(DeletePackageAction action,
+    private static class SystemDeleteException extends Exception {
+        public final PackageManagerException reason;
+
+        private SystemDeleteException(PackageManagerException reason) {
+            this.reason = reason;
+        }
+    }
+
+    /** Deletes a package. Only throws when install of a disabled package fails. */
+    private void executeDeletePackageLIF(DeletePackageAction action,
             String packageName, UserHandle user, boolean deleteCodeAndResources,
-            int[] allUserHandles, int flags, PackageRemovedInfo outInfo,
-            boolean writeSettings, PackageParser.Package replacingPackage) {
+            int[] allUserHandles, int flags, boolean writeSettings,
+            PackageParser.Package replacingPackage) throws SystemDeleteException {
         final PackageSetting ps = action.deletingPs;
+        final PackageRemovedInfo outInfo = action.outInfo;
         final boolean systemApp = isSystemApp(ps);
         synchronized (mPackages) {
 
@@ -17874,7 +17939,7 @@
                 clearPackageStateForUserLIF(ps, removedUserId, outInfo);
                 markPackageUninstalledForUserLPw(ps, user);
                 scheduleWritePackageRestrictionsLocked(user);
-                return true;
+                return;
             }
         }
 
@@ -17903,7 +17968,7 @@
                     if (DEBUG_REMOVE) Slog.d(TAG, "Still installed by other users");
                     clearPackageStateForUserLIF(ps, user.getIdentifier(), outInfo);
                     scheduleWritePackageRestrictionsLocked(user);
-                    return true;
+                    return;
                 } else {
                     // We need to set it back to 'installed' so the uninstall
                     // broadcasts will be sent correctly.
@@ -17919,7 +17984,7 @@
                 if (DEBUG_REMOVE) Slog.d(TAG, "Deleting system app");
                 clearPackageStateForUserLIF(ps, user.getIdentifier(), outInfo);
                 scheduleWritePackageRestrictionsLocked(user);
-                return true;
+                return;
             }
         }
 
@@ -17944,15 +18009,15 @@
         }
 
         // TODO(b/109941548): break reasons for ret = false out into mayDelete method
-        final boolean ret;
         if (systemApp) {
             if (DEBUG_REMOVE) Slog.d(TAG, "Removing system package: " + ps.name);
             // When an updated system application is deleted we delete the existing resources
             // as well and fall back to existing code in system partition
-            ret = deleteSystemPackageLIF(ps.pkg, ps, allUserHandles, flags, outInfo, writeSettings);
+            deleteSystemPackageLIF(
+                    action, ps.pkg, ps, allUserHandles, flags, outInfo, writeSettings);
         } else {
             if (DEBUG_REMOVE) Slog.d(TAG, "Removing non-system package: " + ps.name);
-            ret = deleteInstalledPackageLIF(ps, deleteCodeAndResources, flags, allUserHandles,
+            deleteInstalledPackageLIF(ps, deleteCodeAndResources, flags, allUserHandles,
                     outInfo, writeSettings, replacingPackage);
         }
 
@@ -18001,8 +18066,6 @@
                 }
             }
         }
-
-        return ret;
     }
 
     @GuardedBy("mPackages")
@@ -18463,7 +18526,7 @@
 
     @GuardedBy("mPackages")
     private int getUidTargetSdkVersionLockedLPr(int uid) {
-        Object obj = mSettings.getUserIdLPr(uid);
+        Object obj = mSettings.getSettingLPr(uid);
         if (obj instanceof SharedUserSetting) {
             final SharedUserSetting sus = (SharedUserSetting) obj;
             int vers = Build.VERSION_CODES.CUR_DEVELOPMENT;
@@ -19728,7 +19791,7 @@
                                 enableSystemPackageLPw(deletedPkg);
                             }
                             installPackageFromSystemLIF(deletedPkg.codePath,
-                                    false /*isPrivileged*/, null /*allUserHandles*/,
+                                    /*isPrivileged*/ null /*allUserHandles*/,
                                     null /*origUserHandles*/, null /*origPermissionsState*/,
                                     true /*writeSettings*/);
                         } catch (PackageManagerException pme) {
@@ -20082,7 +20145,7 @@
                 if (Process.isIsolated(uid)) {
                     return Zygote.MOUNT_EXTERNAL_NONE;
                 }
-                if (SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) {
+                if (StorageManager.hasIsolatedStorage()) {
                     return checkUidPermission(WRITE_MEDIA_STORAGE, uid) == PERMISSION_GRANTED
                             ? Zygote.MOUNT_EXTERNAL_FULL
                             : Zygote.MOUNT_EXTERNAL_WRITE;
@@ -21684,7 +21747,6 @@
         final StorageManager storage = mContext.getSystemService(StorageManager.class);
         final PackageManager pm = mContext.getPackageManager();
 
-        final boolean currentAsec;
         final String currentVolumeUuid;
         final File codeFile;
         final String installerPackageName;
@@ -21718,22 +21780,13 @@
                         "3rd party apps are not allowed on internal storage");
             }
 
-            if (pkg.applicationInfo.isExternalAsec()) {
-                currentAsec = true;
-                currentVolumeUuid = StorageManager.UUID_PRIMARY_PHYSICAL;
-            } else if (pkg.applicationInfo.isForwardLocked()) {
-                currentAsec = true;
-                currentVolumeUuid = "forward_locked";
-            } else {
-                currentAsec = false;
-                currentVolumeUuid = ps.volumeUuid;
+            currentVolumeUuid = ps.volumeUuid;
 
-                final File probe = new File(pkg.codePath);
-                final File probeOat = new File(probe, "oat");
-                if (!probe.isDirectory() || !probeOat.isDirectory()) {
-                    throw new PackageManagerException(MOVE_FAILED_INTERNAL_ERROR,
-                            "Move only supported for modern cluster style installs");
-                }
+            final File probe = new File(pkg.codePath);
+            final File probeOat = new File(probe, "oat");
+            if (!probe.isDirectory() || !probeOat.isDirectory()) {
+                throw new PackageManagerException(MOVE_FAILED_INTERNAL_ERROR,
+                        "Move only supported for modern cluster style installs");
             }
 
             if (Objects.equals(currentVolumeUuid, volumeUuid)) {
@@ -21770,12 +21823,11 @@
         final boolean moveCompleteApp;
         final File measurePath;
 
+        installFlags = INSTALL_INTERNAL;
         if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, volumeUuid)) {
-            installFlags = INSTALL_INTERNAL;
-            moveCompleteApp = !currentAsec;
+            moveCompleteApp = true;
             measurePath = Environment.getDataAppDirectory(volumeUuid);
         } else if (Objects.equals(StorageManager.UUID_PRIMARY_PHYSICAL, volumeUuid)) {
-            installFlags = INSTALL_EXTERNAL;
             moveCompleteApp = false;
             measurePath = storage.getPrimaryPhysicalVolume().getPath();
         } else {
@@ -21787,9 +21839,6 @@
                         "Move location not mounted private volume");
             }
 
-            Preconditions.checkState(!currentAsec);
-
-            installFlags = INSTALL_INTERNAL;
             moveCompleteApp = true;
             measurePath = Environment.getDataAppDirectory(volumeUuid);
         }
@@ -22574,7 +22623,7 @@
         private SigningDetails getSigningDetails(int uid) {
             synchronized (mPackages) {
                 final int appId = UserHandle.getAppId(uid);
-                final Object obj = mSettings.getUserIdLPr(appId);
+                final Object obj = mSettings.getSettingLPr(appId);
                 if (obj != null) {
                     if (obj instanceof SharedUserSetting) {
                         return ((SharedUserSetting) obj).signatures.mSigningDetails;
@@ -23167,6 +23216,45 @@
                 throws IOException {
             PackageManagerService.this.freeStorage(volumeUuid, bytes, storageFlags);
         }
+
+        @Override
+        public void forEachPackage(Consumer<PackageParser.Package> actionLocked) {
+            PackageManagerService.this.forEachPackage(actionLocked);
+        }
+
+        @Override
+        public ArraySet<String> getEnabledComponents(String packageName, int userId) {
+            synchronized (mPackages) {
+                PackageSetting setting = mSettings.getPackageLPr(packageName);
+                if (setting == null) {
+                    return new ArraySet<>();
+                }
+                return setting.getEnabledComponents(userId);
+            }
+        }
+
+        @Override
+        public ArraySet<String> getDisabledComponents(String packageName, int userId) {
+            synchronized (mPackages) {
+                PackageSetting setting = mSettings.getPackageLPr(packageName);
+                if (setting == null) {
+                    return new ArraySet<>();
+                }
+                return setting.getDisabledComponents(userId);
+            }
+        }
+
+        @Override
+        public @PackageManager.EnabledState int getApplicationEnabledState(
+                String packageName, int userId) {
+            synchronized (mPackages) {
+                PackageSetting setting = mSettings.getPackageLPr(packageName);
+                if (setting == null) {
+                    return COMPONENT_ENABLED_STATE_DEFAULT;
+                }
+                return setting.getEnabled(userId);
+            }
+        }
     }
 
     @GuardedBy("mPackages")
@@ -23289,6 +23377,15 @@
         }
     }
 
+    void forEachPackage(Consumer<PackageParser.Package> actionLocked) {
+        synchronized (mPackages) {
+            int numPackages = mPackages.size();
+            for (int i = 0; i < numPackages; i++) {
+                actionLocked.accept(mPackages.valueAt(i));
+            }
+        }
+    }
+
     private static void enforceSystemOrPhoneCaller(String tag) {
         int callingUid = Binder.getCallingUid();
         if (callingUid != Process.PHONE_UID && callingUid != Process.SYSTEM_UID) {
@@ -23576,6 +23673,30 @@
         return mProtectedPackages.isPackageStateProtected(userId, packageName);
     }
 
+    @Override
+    public void sendDeviceCustomizationReadyBroadcast() {
+        mContext.enforceCallingPermission(Manifest.permission.SEND_DEVICE_CUSTOMIZATION_READY,
+                "sendDeviceCustomizationReadyBroadcast");
+
+        final long ident = Binder.clearCallingIdentity();
+        try {
+            final Intent intent = new Intent(Intent.ACTION_DEVICE_CUSTOMIZATION_READY);
+            intent.setFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
+            final IActivityManager am = ActivityManager.getService();
+            final String[] requiredPermissions = {
+                Manifest.permission.RECEIVE_DEVICE_CUSTOMIZATION_READY,
+            };
+            try {
+                am.broadcastIntent(null, intent, null, null, 0, null, null, requiredPermissions,
+                        android.app.AppOpsManager.OP_NONE, null, false, false, UserHandle.USER_ALL);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+    }
+
     static class ActiveInstallSession {
         private final String mPackageName;
         private final File mStagedDir;
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index 31711e5..77f8c3a 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -2193,9 +2193,6 @@
         boolean replaceExisting = true;
         while ((opt = getNextOption()) != null) {
             switch (opt) {
-                case "-l":
-                    sessionParams.installFlags |= PackageManager.INSTALL_FORWARD_LOCK;
-                    break;
                 case "-r": // ignore
                     break;
                 case "-R":
@@ -2210,9 +2207,6 @@
                 case "-t":
                     sessionParams.installFlags |= PackageManager.INSTALL_ALLOW_TEST;
                     break;
-                case "-s":
-                    sessionParams.installFlags |= PackageManager.INSTALL_EXTERNAL;
-                    break;
                 case "-f":
                     sessionParams.installFlags |= PackageManager.INSTALL_INTERNAL;
                     break;
@@ -2821,7 +2815,8 @@
         pw.println("       [--install-reason 0/1/2/3/4] [--originating-uri URI]");
         pw.println("       [--referrer URI] [--abi ABI_NAME] [--force-sdk]");
         pw.println("       [--preload] [--instantapp] [--full] [--dont-kill]");
-        pw.println("       [--force-uuid internal|UUID] [--pkg PACKAGE] [-S BYTES] [PATH|-]");
+        pw.println("       [--force-uuid internal|UUID] [--pkg PACKAGE] [-S BYTES] [--apex]");
+        pw.println("       [PATH|-]");
         pw.println("    Install an application.  Must provide the apk data to install, either as a");
         pw.println("    file path or '-' to read from stdin.  Options are:");
         pw.println("      -l: forward lock application");
@@ -2850,13 +2845,14 @@
         pw.println("      --force-uuid: force install on to disk volume with given UUID");
         pw.println("      --force-sdk: allow install even when existing app targets platform");
         pw.println("          codename but new one targets a final API level");
+        pw.println("      --apex: install an .apex file, not an .apk");
         pw.println("");
         pw.println("  install-create [-lrtsfdg] [-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]");
         pw.println("       [--preload] [--instantapp] [--full] [--dont-kill]");
-        pw.println("       [--force-uuid internal|UUID] [--pkg PACKAGE] [-S BYTES]");
+        pw.println("       [--force-uuid internal|UUID] [--pkg PACKAGE] [--apex] [-S BYTES]");
         pw.println("       [--multi-package]");
         pw.println("    Like \"install\", but starts an install session.  Use \"install-write\"");
         pw.println("    to push data into the session, and \"install-commit\" to finish.");
diff --git a/services/core/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java
index b850613..2c2cc7e 100644
--- a/services/core/java/com/android/server/pm/PackageSetting.java
+++ b/services/core/java/com/android/server/pm/PackageSetting.java
@@ -152,10 +152,6 @@
         return (pkgPrivateFlags & ApplicationInfo.PRIVATE_FLAG_PRODUCT_SERVICES) != 0;
     }
 
-    public boolean isForwardLocked() {
-        return (pkgPrivateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0;
-    }
-
     public boolean isSystem() {
         return (pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0;
     }
diff --git a/services/core/java/com/android/server/pm/SettingBase.java b/services/core/java/com/android/server/pm/SettingBase.java
index 239dc99..fbf5439 100644
--- a/services/core/java/com/android/server/pm/SettingBase.java
+++ b/services/core/java/com/android/server/pm/SettingBase.java
@@ -64,7 +64,6 @@
                 | ApplicationInfo.PRIVATE_FLAG_VENDOR
                 | ApplicationInfo.PRIVATE_FLAG_PRODUCT
                 | ApplicationInfo.PRIVATE_FLAG_PRODUCT_SERVICES
-                | ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK
                 | ApplicationInfo.PRIVATE_FLAG_REQUIRED_FOR_SYSTEM_USER);
     }
 }
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 6009bd3..c524dba 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -381,11 +381,9 @@
     final SparseArray<CrossProfileIntentResolver> mCrossProfileIntentResolvers =
             new SparseArray<CrossProfileIntentResolver>();
 
-    final ArrayMap<String, SharedUserSetting> mSharedUsers =
-            new ArrayMap<String, SharedUserSetting>();
-    private final ArrayList<Object> mUserIds = new ArrayList<Object>();
-    private final SparseArray<Object> mOtherUserIds =
-            new SparseArray<Object>();
+    final ArrayMap<String, SharedUserSetting> mSharedUsers = new ArrayMap<>();
+    private final ArrayList<SettingBase> mAppIds = new ArrayList<>();
+    private final SparseArray<SettingBase> mOtherAppIds = new SparseArray<>();
 
     // For reading/writing settings file.
     private final ArrayList<Signature> mPastSignatures =
@@ -519,7 +517,7 @@
         SharedUserSetting s = mSharedUsers.get(name);
         if (s == null && create) {
             s = new SharedUserSetting(name, pkgFlags, pkgPrivateFlags);
-            s.userId = newUserIdLPw(s);
+            s.userId = acquireAndRegisterNewAppIdLPw(s);
             if (s.userId < 0) {
                 // < 0 means we couldn't assign a userid; throw exception
                 throw new PackageManagerException(INSTALL_FAILED_INSUFFICIENT_STORAGE,
@@ -612,7 +610,7 @@
                 cpuAbiOverrideString, vc, pkgFlags, pkgPrivateFlags, parentPackageName,
                 childPackageNames, 0 /*userId*/, usesStaticLibraries, usesStaticLibraryNames);
         p.appId = uid;
-        if (addUserIdLPw(uid, p, name)) {
+        if (registerExistingAppIdLPw(uid, p, name)) {
             mPackages.put(name, p);
             return p;
         }
@@ -635,7 +633,7 @@
         }
         s = new SharedUserSetting(name, pkgFlags, pkgPrivateFlags);
         s.userId = uid;
-        if (addUserIdLPw(uid, s, name)) {
+        if (registerExistingAppIdLPw(uid, s, name)) {
             mSharedUsers.put(name, s);
             return s;
         }
@@ -885,13 +883,13 @@
      * Registers a user ID with the system. Potentially allocates a new user ID.
      * @throws PackageManagerException If a user ID could not be allocated.
      */
-    void addUserToSettingLPw(PackageSetting p) throws PackageManagerException {
+    void registerAppIdLPw(PackageSetting p) throws PackageManagerException {
         if (p.appId == 0) {
             // Assign new user ID
-            p.appId = newUserIdLPw(p);
+            p.appId = acquireAndRegisterNewAppIdLPw(p);
         } else {
             // Add new setting to list of user IDs
-            addUserIdLPw(p.appId, p, p.name);
+            registerExistingAppIdLPw(p.appId, p, p.name);
         }
         if (p.appId < 0) {
             PackageManagerService.reportSettingsProblem(Log.WARN,
@@ -972,14 +970,14 @@
 
         // If the we know about this user id, we have to update it as it
         // has to point to the same PackageSetting instance as the package.
-        Object userIdPs = getUserIdLPr(p.appId);
+        Object userIdPs = getSettingLPr(p.appId);
         if (sharedUser == null) {
             if (userIdPs != null && userIdPs != p) {
-                replaceUserIdLPw(p.appId, p);
+                replaceAppIdLPw(p.appId, p);
             }
         } else {
             if (userIdPs != null && userIdPs != sharedUser) {
-                replaceUserIdLPw(p.appId, sharedUser);
+                replaceAppIdLPw(p.appId, sharedUser);
             }
         }
 
@@ -1083,11 +1081,11 @@
                 p.sharedUser.removePackage(p);
                 if (p.sharedUser.packages.size() == 0) {
                     mSharedUsers.remove(p.sharedUser.name);
-                    removeUserIdLPw(p.sharedUser.userId);
+                    removeAppIdLPw(p.sharedUser.userId);
                     return p.sharedUser.userId;
                 }
             } else {
-                removeUserIdLPw(p.appId);
+                removeAppIdLPw(p.appId);
                 return p.appId;
             }
         }
@@ -1115,65 +1113,69 @@
         mInstallerPackages.remove(packageName);
     }
 
-    private boolean addUserIdLPw(int uid, Object obj, Object name) {
-        if (uid > Process.LAST_APPLICATION_UID) {
+    /** Returns true if the requested AppID was valid and not already registered. */
+    private boolean registerExistingAppIdLPw(int appId, SettingBase obj, Object name) {
+        if (appId > Process.LAST_APPLICATION_UID) {
             return false;
         }
 
-        if (uid >= Process.FIRST_APPLICATION_UID) {
-            int N = mUserIds.size();
-            final int index = uid - Process.FIRST_APPLICATION_UID;
-            while (index >= N) {
-                mUserIds.add(null);
-                N++;
+        if (appId >= Process.FIRST_APPLICATION_UID) {
+            int size = mAppIds.size();
+            final int index = appId - Process.FIRST_APPLICATION_UID;
+            // fill the array until our index becomes valid
+            while (index >= size) {
+                mAppIds.add(null);
+                size++;
             }
-            if (mUserIds.get(index) != null) {
+            if (mAppIds.get(index) != null) {
                 PackageManagerService.reportSettingsProblem(Log.ERROR,
-                        "Adding duplicate user id: " + uid
+                        "Adding duplicate app id: " + appId
                         + " name=" + name);
                 return false;
             }
-            mUserIds.set(index, obj);
+            mAppIds.set(index, obj);
         } else {
-            if (mOtherUserIds.get(uid) != null) {
+            if (mOtherAppIds.get(appId) != null) {
                 PackageManagerService.reportSettingsProblem(Log.ERROR,
-                        "Adding duplicate shared id: " + uid
+                        "Adding duplicate shared id: " + appId
                                 + " name=" + name);
                 return false;
             }
-            mOtherUserIds.put(uid, obj);
+            mOtherAppIds.put(appId, obj);
         }
         return true;
     }
 
-    public Object getUserIdLPr(int uid) {
-        if (uid >= Process.FIRST_APPLICATION_UID) {
-            final int N = mUserIds.size();
-            final int index = uid - Process.FIRST_APPLICATION_UID;
-            return index < N ? mUserIds.get(index) : null;
+    /** Gets the setting associated with the provided App ID */
+    public SettingBase getSettingLPr(int appId) {
+        if (appId >= Process.FIRST_APPLICATION_UID) {
+            final int size = mAppIds.size();
+            final int index = appId - Process.FIRST_APPLICATION_UID;
+            return index < size ? mAppIds.get(index) : null;
         } else {
-            return mOtherUserIds.get(uid);
+            return mOtherAppIds.get(appId);
         }
     }
 
-    private void removeUserIdLPw(int uid) {
-        if (uid >= Process.FIRST_APPLICATION_UID) {
-            final int N = mUserIds.size();
-            final int index = uid - Process.FIRST_APPLICATION_UID;
-            if (index < N) mUserIds.set(index, null);
+    /** Unregisters the provided app ID. */
+    void removeAppIdLPw(int appId) {
+        if (appId >= Process.FIRST_APPLICATION_UID) {
+            final int size = mAppIds.size();
+            final int index = appId - Process.FIRST_APPLICATION_UID;
+            if (index < size) mAppIds.set(index, null);
         } else {
-            mOtherUserIds.remove(uid);
+            mOtherAppIds.remove(appId);
         }
-        setFirstAvailableUid(uid+1);
+        setFirstAvailableUid(appId + 1);
     }
 
-    private void replaceUserIdLPw(int uid, Object obj) {
-        if (uid >= Process.FIRST_APPLICATION_UID) {
-            final int N = mUserIds.size();
-            final int index = uid - Process.FIRST_APPLICATION_UID;
-            if (index < N) mUserIds.set(index, obj);
+    private void replaceAppIdLPw(int appId, SettingBase obj) {
+        if (appId >= Process.FIRST_APPLICATION_UID) {
+            final int size = mAppIds.size();
+            final int index = appId - Process.FIRST_APPLICATION_UID;
+            if (index < size) mAppIds.set(index, obj);
         } else {
-            mOtherUserIds.put(uid, obj);
+            mOtherAppIds.put(appId, obj);
         }
     }
 
@@ -3157,7 +3159,7 @@
         for (int i = 0; i < N; i++) {
             final PackageSetting p = mPendingPackages.get(i);
             final int sharedUserId = p.getSharedUserId();
-            final Object idObj = getUserIdLPr(sharedUserId);
+            final Object idObj = getSettingLPr(sharedUserId);
             if (idObj instanceof SharedUserSetting) {
                 final SharedUserSetting sharedUser = (SharedUserSetting) idObj;
                 p.sharedUser = sharedUser;
@@ -3202,7 +3204,7 @@
         final Iterator<PackageSetting> disabledIt = mDisabledSysPackages.values().iterator();
         while (disabledIt.hasNext()) {
             final PackageSetting disabledPs = disabledIt.next();
-            final Object id = getUserIdLPr(disabledPs.appId);
+            final Object id = getSettingLPr(disabledPs.appId);
             if (id != null && id instanceof SharedUserSetting) {
                 disabledPs.sharedUser = (SharedUserSetting) id;
             }
@@ -3656,7 +3658,6 @@
 
     private static int PRE_M_APP_INFO_FLAG_HIDDEN = 1<<27;
     private static int PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE = 1<<28;
-    private static int PRE_M_APP_INFO_FLAG_FORWARD_LOCK = 1<<29;
     private static int PRE_M_APP_INFO_FLAG_PRIVILEGED = 1<<30;
 
     private void readPackageLPw(XmlPullParser parser) throws XmlPullParserException, IOException {
@@ -3756,15 +3757,11 @@
                     if ((pkgFlags & PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE) != 0) {
                         pkgPrivateFlags |= ApplicationInfo.PRIVATE_FLAG_CANT_SAVE_STATE;
                     }
-                    if ((pkgFlags & PRE_M_APP_INFO_FLAG_FORWARD_LOCK) != 0) {
-                        pkgPrivateFlags |= ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK;
-                    }
                     if ((pkgFlags & PRE_M_APP_INFO_FLAG_PRIVILEGED) != 0) {
                         pkgPrivateFlags |= ApplicationInfo.PRIVATE_FLAG_PRIVILEGED;
                     }
                     pkgFlags &= ~(PRE_M_APP_INFO_FLAG_HIDDEN
                             | PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE
-                            | PRE_M_APP_INFO_FLAG_FORWARD_LOCK
                             | PRE_M_APP_INFO_FLAG_PRIVILEGED);
                 } else {
                     // For backward compatibility
@@ -4206,24 +4203,24 @@
         }
     }
 
-    // Returns -1 if we could not find an available UserId to assign
-    private int newUserIdLPw(Object obj) {
+    /** Returns a new AppID or -1 if we could not find an available AppID to assign */
+    private int acquireAndRegisterNewAppIdLPw(SettingBase obj) {
         // Let's be stupidly inefficient for now...
-        final int N = mUserIds.size();
-        for (int i = mFirstAvailableUid; i < N; i++) {
-            if (mUserIds.get(i) == null) {
-                mUserIds.set(i, obj);
+        final int size = mAppIds.size();
+        for (int i = mFirstAvailableUid; i < size; i++) {
+            if (mAppIds.get(i) == null) {
+                mAppIds.set(i, obj);
                 return Process.FIRST_APPLICATION_UID + i;
             }
         }
 
         // None left?
-        if (N > (Process.LAST_APPLICATION_UID-Process.FIRST_APPLICATION_UID)) {
+        if (size > (Process.LAST_APPLICATION_UID - Process.FIRST_APPLICATION_UID)) {
             return -1;
         }
 
-        mUserIds.add(obj);
-        return Process.FIRST_APPLICATION_UID + N;
+        mAppIds.add(obj);
+        return Process.FIRST_APPLICATION_UID + size;
     }
 
     public VerifierDeviceIdentity getVerifierDeviceIdentityLPw() {
@@ -4258,11 +4255,48 @@
         return false;
     }
 
+    /**
+     * Returns the disabled {@link PackageSetting} for the provided package name if one exists,
+     * {@code null} otherwise.
+     */
+    @Nullable
     public PackageSetting getDisabledSystemPkgLPr(String name) {
         PackageSetting ps = mDisabledSysPackages.get(name);
         return ps;
     }
 
+    /**
+     * Returns the disabled {@link PackageSetting} for the provided enabled {@link PackageSetting}
+     * if one exists, {@code null} otherwise.
+     */
+    @Nullable
+    public PackageSetting getDisabledSystemPkgLPr(PackageSetting enabledPackageSetting) {
+        if (enabledPackageSetting == null) {
+            return null;
+        }
+        return getDisabledSystemPkgLPr(enabledPackageSetting.name);
+    }
+
+    /**
+     * Fetches an array of the child {@link PackageSetting}s for all child package names referenced
+     * by the provided parent {@link PackageSetting} or {@code null} if no children are referenced.
+     *
+     * Note: Any child packages not found will be null in the returned array.
+     */
+    @Nullable
+    public PackageSetting[] getChildSettingsLPr(PackageSetting parentPackageSetting) {
+        if (parentPackageSetting == null || !parentPackageSetting.hasChildPackages()) {
+            return null;
+        }
+        final int childCount = parentPackageSetting.childPackageNames.size();
+        PackageSetting[] children =
+                new PackageSetting[childCount];
+        for (int i = 0; i < childCount; i++) {
+            children[i] = mPackages.get(parentPackageSetting.childPackageNames.get(i));
+        }
+        return children;
+    }
+
     boolean isEnabledAndMatchLPr(ComponentInfo componentInfo, int flags, int userId) {
         final PackageSetting ps = mPackages.get(componentInfo.packageName);
         if (ps == null) return false;
@@ -4428,7 +4462,6 @@
             ApplicationInfo.PRIVATE_FLAG_CANT_SAVE_STATE, "CANT_SAVE_STATE",
             ApplicationInfo.PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE, "DEFAULT_TO_DEVICE_PROTECTED_STORAGE",
             ApplicationInfo.PRIVATE_FLAG_DIRECT_BOOT_AWARE, "DIRECT_BOOT_AWARE",
-            ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK, "FORWARD_LOCK",
             ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS, "HAS_DOMAIN_URLS",
             ApplicationInfo.PRIVATE_FLAG_HIDDEN, "HIDDEN",
             ApplicationInfo.PRIVATE_FLAG_INSTANT, "EPHEMERAL",
diff --git a/services/core/java/com/android/server/pm/ShareTargetInfo.java b/services/core/java/com/android/server/pm/ShareTargetInfo.java
new file mode 100644
index 0000000..9e8b73e
--- /dev/null
+++ b/services/core/java/com/android/server/pm/ShareTargetInfo.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 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.server.pm;
+
+import android.text.TextUtils;
+
+/**
+ * Represents a Share Target definition, read from the application's manifest (shortcuts.xml)
+ */
+class ShareTargetInfo {
+    static class TargetData {
+        final String mScheme;
+        final String mHost;
+        final String mPort;
+        final String mPath;
+        final String mPathPattern;
+        final String mPathPrefix;
+        final String mMimeType;
+
+        TargetData(String scheme, String host, String port, String path, String pathPattern,
+                String pathPrefix, String mimeType) {
+            mScheme = scheme;
+            mHost = host;
+            mPort = port;
+            mPath = path;
+            mPathPattern = pathPattern;
+            mPathPrefix = pathPrefix;
+            mMimeType = mimeType;
+        }
+
+        public void toStringInner(StringBuilder strBuilder) {
+            if (!TextUtils.isEmpty(mScheme)) {
+                strBuilder.append(" scheme=").append(mScheme);
+            }
+            if (!TextUtils.isEmpty(mHost)) {
+                strBuilder.append(" host=").append(mHost);
+            }
+            if (!TextUtils.isEmpty(mPort)) {
+                strBuilder.append(" port=").append(mPort);
+            }
+            if (!TextUtils.isEmpty(mPath)) {
+                strBuilder.append(" path=").append(mPath);
+            }
+            if (!TextUtils.isEmpty(mPathPattern)) {
+                strBuilder.append(" pathPattern=").append(mPathPattern);
+            }
+            if (!TextUtils.isEmpty(mPathPrefix)) {
+                strBuilder.append(" pathPrefix=").append(mPathPrefix);
+            }
+            if (!TextUtils.isEmpty(mMimeType)) {
+                strBuilder.append(" mimeType=").append(mMimeType);
+            }
+        }
+
+        @Override
+        public String toString() {
+            StringBuilder strBuilder = new StringBuilder();
+            toStringInner(strBuilder);
+            return strBuilder.toString();
+        }
+    }
+
+    final TargetData[] mTargetData;
+    final String mTargetClass;
+    final String[] mCategories;
+
+    ShareTargetInfo(TargetData[] data, String targetClass, String[] categories) {
+        mTargetData = data;
+        mTargetClass = targetClass;
+        mCategories = categories;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder strBuilder = new StringBuilder();
+        strBuilder.append("targetClass=").append(mTargetClass);
+        for (int i = 0; i < mTargetData.length; i++) {
+            strBuilder.append(" data={");
+            mTargetData[i].toStringInner(strBuilder);
+            strBuilder.append("}");
+        }
+        for (int i = 0; i < mCategories.length; i++) {
+            strBuilder.append(" category=").append(mCategories[i]);
+        }
+
+        return strBuilder.toString();
+    }
+}
diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java
index 92e261a..83f0fde 100644
--- a/services/core/java/com/android/server/pm/ShortcutPackage.java
+++ b/services/core/java/com/android/server/pm/ShortcutPackage.java
@@ -111,6 +111,11 @@
     final private ArrayMap<String, ShortcutInfo> mShortcuts = new ArrayMap<>();
 
     /**
+     * All the share targets from the package
+     */
+    private final ArrayList<ShareTargetInfo> mShareTargets = new ArrayList<>(0);
+
+    /**
      * # of times the package has called rate-limited APIs.
      */
     private int mApiCallCount;
@@ -739,15 +744,16 @@
         List<ShortcutInfo> newManifestShortcutList = null;
         try {
             newManifestShortcutList = ShortcutParser.parseShortcuts(mShortcutUser.mService,
-                    getPackageName(), getPackageUserId());
+                    getPackageName(), getPackageUserId(), mShareTargets);
         } catch (IOException|XmlPullParserException e) {
             Slog.e(TAG, "Failed to load shortcuts from AndroidManifest.xml.", e);
         }
         final int manifestShortcutSize = newManifestShortcutList == null ? 0
                 : newManifestShortcutList.size();
         if (ShortcutService.DEBUG) {
-            Slog.d(TAG, String.format("Package %s has %d manifest shortcut(s)",
-                    getPackageName(), manifestShortcutSize));
+            Slog.d(TAG,
+                    String.format("Package %s has %d manifest shortcut(s), and %d share target(s)",
+                            getPackageName(), manifestShortcutSize, mShareTargets.size()));
         }
         if (isNewApp && (manifestShortcutSize == 0)) {
             // If it's a new app, and it doesn't have manifest shortcuts, then nothing to do.
@@ -1657,6 +1663,11 @@
         return new ArrayList<>(mShortcuts.values());
     }
 
+    @VisibleForTesting
+    List<ShareTargetInfo> getAllShareTargetsForTest() {
+        return new ArrayList<>(mShareTargets);
+    }
+
     @Override
     public void verifyStates() {
         super.verifyStates();
diff --git a/services/core/java/com/android/server/pm/ShortcutParser.java b/services/core/java/com/android/server/pm/ShortcutParser.java
index 866c46c..90f08c3 100644
--- a/services/core/java/com/android/server/pm/ShortcutParser.java
+++ b/services/core/java/com/android/server/pm/ShortcutParser.java
@@ -15,6 +15,7 @@
  */
 package com.android.server.pm;
 
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.content.ComponentName;
@@ -55,10 +56,14 @@
     private static final String TAG_SHORTCUT = "shortcut";
     private static final String TAG_INTENT = "intent";
     private static final String TAG_CATEGORIES = "categories";
+    private static final String TAG_SHARE_TARGET = "share-target";
+    private static final String TAG_DATA = "data";
+    private static final String TAG_CATEGORY = "category";
 
     @Nullable
-    public static List<ShortcutInfo> parseShortcuts(ShortcutService service,
-            String packageName, @UserIdInt int userId) throws IOException, XmlPullParserException {
+    public static List<ShortcutInfo> parseShortcuts(ShortcutService service, String packageName,
+            @UserIdInt int userId, @NonNull List<ShareTargetInfo> outShareTargets)
+            throws IOException, XmlPullParserException {
         if (ShortcutService.DEBUG) {
             Slog.d(TAG, String.format("Scanning package %s for manifest shortcuts on user %d",
                     packageName, userId));
@@ -69,6 +74,7 @@
         }
 
         List<ShortcutInfo> result = null;
+        outShareTargets.clear();
 
         try {
             final int size = activities.size();
@@ -82,8 +88,8 @@
                         service.getActivityInfoWithMetadata(
                         activityInfoNoMetadata.getComponentName(), userId);
                 if (activityInfoWithMetadata != null) {
-                    result = parseShortcutsOneFile(
-                            service, activityInfoWithMetadata, packageName, userId, result);
+                    result = parseShortcutsOneFile(service, activityInfoWithMetadata, packageName,
+                            userId, result, outShareTargets);
                 }
             }
         } catch (RuntimeException e) {
@@ -99,7 +105,8 @@
     private static List<ShortcutInfo> parseShortcutsOneFile(
             ShortcutService service,
             ActivityInfo activityInfo, String packageName, @UserIdInt int userId,
-            List<ShortcutInfo> result) throws IOException, XmlPullParserException {
+            List<ShortcutInfo> result, @NonNull List<ShareTargetInfo> outShareTargets)
+            throws IOException, XmlPullParserException {
         if (ShortcutService.DEBUG) {
             Slog.d(TAG, String.format(
                     "Checking main activity %s", activityInfo.getComponentName()));
@@ -126,9 +133,19 @@
             // after parsing <intent>.  We keep the current one in here.
             ShortcutInfo currentShortcut = null;
 
+            // We instantiate ShareTargetInfo at <share-target>, but add it to outShareTargets at
+            // </share-target>, after parsing <data> and <category>. We keep the current one here.
+            ShareTargetInfo currentShareTarget = null;
+
+            // Keeps parsed categories for both ShortcutInfo and ShareTargetInfo
             Set<String> categories = null;
+
+            // Keeps parsed intents for ShortcutInfo
             final ArrayList<Intent> intents = new ArrayList<>();
 
+            // Keeps parsed data fields for ShareTargetInfo
+            final ArrayList<ShareTargetInfo.TargetData> dataList = new ArrayList<>();
+
             outer:
             while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
                     && (type != XmlPullParser.END_TAG || parser.getDepth() > 0)) {
@@ -194,6 +211,32 @@
                     continue;
                 }
 
+                // When a share-target tag is closing, publish.
+                if ((type == XmlPullParser.END_TAG) && (depth == 2)
+                        && (TAG_SHARE_TARGET.equals(tag))) {
+                    if (currentShareTarget == null) {
+                        // ShareTarget was invalid.
+                        continue;
+                    }
+                    final ShareTargetInfo sti = currentShareTarget;
+                    currentShareTarget = null; // Make sure to null out for the next iteration.
+
+                    if (categories == null || categories.isEmpty() || dataList.isEmpty()) {
+                        // Incomplete ShareTargetInfo.
+                        continue;
+                    }
+
+                    final ShareTargetInfo newShareTarget = new ShareTargetInfo(
+                            dataList.toArray(new ShareTargetInfo.TargetData[dataList.size()]),
+                            sti.mTargetClass, categories.toArray(new String[categories.size()]));
+                    outShareTargets.add(newShareTarget);
+                    if (ShortcutService.DEBUG) {
+                        Slog.d(TAG, "ShareTarget added: " + newShareTarget.toString());
+                    }
+                    categories = null;
+                    dataList.clear();
+                }
+
                 // Otherwise, just look at start tags.
                 if (type != XmlPullParser.START_TAG) {
                     continue;
@@ -224,6 +267,17 @@
                     categories = null;
                     continue;
                 }
+                if (depth == 2 && TAG_SHARE_TARGET.equals(tag)) {
+                    final ShareTargetInfo sti = parseShareTargetAttributes(service, attrs);
+                    if (sti == null) {
+                        // ShareTarget was invalid.
+                        continue;
+                    }
+                    currentShareTarget = sti;
+                    categories = null;
+                    dataList.clear();
+                    continue;
+                }
                 if (depth == 3 && TAG_INTENT.equals(tag)) {
                     if ((currentShortcut == null)
                             || !currentShortcut.isEnabled()) {
@@ -258,6 +312,34 @@
                     categories.add(name);
                     continue;
                 }
+                if (depth == 3 && TAG_CATEGORY.equals(tag)) {
+                    if ((currentShareTarget == null)) {
+                        continue;
+                    }
+                    final String name = parseCategory(service, attrs);
+                    if (TextUtils.isEmpty(name)) {
+                        Log.e(TAG, "Empty category found. activity=" + activity);
+                        continue;
+                    }
+
+                    if (categories == null) {
+                        categories = new ArraySet<>();
+                    }
+                    categories.add(name);
+                    continue;
+                }
+                if (depth == 3 && TAG_DATA.equals(tag)) {
+                    if ((currentShareTarget == null)) {
+                        continue;
+                    }
+                    final ShareTargetInfo.TargetData data = parseShareTargetData(service, attrs);
+                    if (data == null) {
+                        Log.e(TAG, "Invalid data tag found. activity=" + activity);
+                        continue;
+                    }
+                    dataList.add(data);
+                    continue;
+                }
 
                 Log.w(TAG, String.format("Invalid tag '%s' found at depth %d", tag, depth));
             }
@@ -369,4 +451,57 @@
                 null, // bitmap path
                 disabledReason);
     }
+
+    private static String parseCategory(ShortcutService service, AttributeSet attrs) {
+        final TypedArray sa = service.mContext.getResources().obtainAttributes(attrs,
+                R.styleable.IntentCategory);
+        try {
+            if (sa.getType(R.styleable.IntentCategory_name) != TypedValue.TYPE_STRING) {
+                Log.w(TAG, "android:name must be string literal.");
+                return null;
+            }
+            return sa.getString(R.styleable.IntentCategory_name);
+        } finally {
+            sa.recycle();
+        }
+    }
+
+    private static ShareTargetInfo parseShareTargetAttributes(ShortcutService service,
+            AttributeSet attrs) {
+        final TypedArray sa = service.mContext.getResources().obtainAttributes(attrs,
+                R.styleable.Intent);
+        try {
+            String targetClass = sa.getString(R.styleable.Intent_targetClass);
+            if (TextUtils.isEmpty(targetClass)) {
+                Log.w(TAG, "android:targetClass must be provided.");
+                return null;
+            }
+            return new ShareTargetInfo(null, targetClass, null);
+        } finally {
+            sa.recycle();
+        }
+    }
+
+    private static ShareTargetInfo.TargetData parseShareTargetData(ShortcutService service,
+            AttributeSet attrs) {
+        final TypedArray sa = service.mContext.getResources().obtainAttributes(attrs,
+                R.styleable.AndroidManifestData);
+        try {
+            if (sa.getType(R.styleable.AndroidManifestData_mimeType) != TypedValue.TYPE_STRING) {
+                Log.w(TAG, "android:mimeType must be string literal.");
+                return null;
+            }
+            String scheme = sa.getString(R.styleable.AndroidManifestData_scheme);
+            String host = sa.getString(R.styleable.AndroidManifestData_host);
+            String port = sa.getString(R.styleable.AndroidManifestData_port);
+            String path = sa.getString(R.styleable.AndroidManifestData_path);
+            String pathPattern = sa.getString(R.styleable.AndroidManifestData_pathPattern);
+            String pathPrefix = sa.getString(R.styleable.AndroidManifestData_pathPrefix);
+            String mimeType = sa.getString(R.styleable.AndroidManifestData_mimeType);
+            return new ShareTargetInfo.TargetData(scheme, host, port, path, pathPattern, pathPrefix,
+                    mimeType);
+        } finally {
+            sa.recycle();
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
index b9c3048..2b773f4 100644
--- a/services/core/java/com/android/server/pm/ShortcutService.java
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
@@ -41,8 +41,8 @@
 import android.content.pm.LauncherApps.ShortcutQuery;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.PackageManagerInternal;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.PackageManagerInternal;
 import android.content.pm.ParceledListSlice;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ShortcutInfo;
@@ -98,8 +98,8 @@
 import com.android.internal.util.DumpUtils;
 import com.android.internal.util.FastXmlSerializer;
 import com.android.internal.util.Preconditions;
-import com.android.server.LocalServices;
 import com.android.internal.util.StatLogger;
+import com.android.server.LocalServices;
 import com.android.server.SystemService;
 import com.android.server.pm.ShortcutUser.PackageWithUser;
 
@@ -1172,7 +1172,7 @@
                 return true;
             }
         }
-        
+
         // If the local copy says the user is locked, check with AM for the actual state, since
         // the user might just have been unlocked.
         // Note we just don't use isUserUnlockingOrUnlocked() here, because it'll return false
diff --git a/services/core/java/com/android/server/pm/ShortcutUser.java b/services/core/java/com/android/server/pm/ShortcutUser.java
index 505e4ee..1fd9b69 100644
--- a/services/core/java/com/android/server/pm/ShortcutUser.java
+++ b/services/core/java/com/android/server/pm/ShortcutUser.java
@@ -294,13 +294,14 @@
      */
     public void detectLocaleChange() {
         final String currentLocales = mService.injectGetLocaleTagsForUser(mUserId);
-        if (getKnownLocales().equals(currentLocales)) {
+        if (!TextUtils.isEmpty(mKnownLocales) && mKnownLocales.equals(currentLocales)) {
             return;
         }
         if (ShortcutService.DEBUG) {
-            Slog.d(TAG, "Locale changed from " + currentLocales + " to " + mKnownLocales
+            Slog.d(TAG, "Locale changed from " + mKnownLocales + " to " + currentLocales
                     + " for user " + mUserId);
         }
+
         mKnownLocales = currentLocales;
 
         forAllPackages(pkg -> {
diff --git a/services/core/java/com/android/server/pm/dex/DexoptUtils.java b/services/core/java/com/android/server/pm/dex/DexoptUtils.java
index 9a12a2f..93ee44c 100644
--- a/services/core/java/com/android/server/pm/dex/DexoptUtils.java
+++ b/services/core/java/com/android/server/pm/dex/DexoptUtils.java
@@ -17,6 +17,7 @@
 package com.android.server.pm.dex;
 
 import android.content.pm.ApplicationInfo;
+import android.content.pm.SharedLibraryInfo;
 import android.util.Slog;
 import android.util.SparseArray;
 
@@ -29,6 +30,11 @@
 public final class DexoptUtils {
     private static final String TAG = "DexoptUtils";
 
+    // Shared libraries have more or less followed PCL behavior due to the way
+    // they were added to the classpath pre Q.
+    private static final String SHARED_LIBRARY_LOADER_TYPE =
+            ClassLoaderFactory.getPathClassLoaderName();
+
     private DexoptUtils() {}
 
     /**
@@ -62,12 +68,15 @@
      * android.app.ActivityThread, boolean, ApplicationInfo, List, List)}.
      */
     public static String[] getClassLoaderContexts(ApplicationInfo info,
-            String[] sharedLibraries, boolean[] pathsWithCode) {
+            List<SharedLibraryInfo> sharedLibraries, boolean[] pathsWithCode) {
         // The base class loader context contains only the shared library.
-        String sharedLibrariesClassPath = encodeClasspath(sharedLibraries);
-        String baseApkContextClassLoader = encodeClassLoader(
-                sharedLibrariesClassPath, info.classLoaderName);
+        String sharedLibrariesContext = "";
+        if (sharedLibraries != null) {
+            sharedLibrariesContext = encodeSharedLibraries(sharedLibraries);
+        }
 
+        String baseApkContextClassLoader = encodeClassLoader(
+                "", info.classLoaderName, sharedLibrariesContext);
         if (info.getSplitCodePaths() == null) {
             // The application has no splits.
             return new String[] {baseApkContextClassLoader};
@@ -81,11 +90,10 @@
         // The splits have an implicit dependency on the base apk.
         // This means that we have to add the base apk file in addition to the shared libraries.
         String baseApkName = new File(info.getBaseCodePath()).getName();
-        String sharedLibrariesAndBaseClassPath =
-                encodeClasspath(sharedLibrariesClassPath, baseApkName);
+        String baseClassPath = baseApkName;
 
         // The result is stored in classLoaderContexts.
-        // Index 0 is the class loaded context for the base apk.
+        // Index 0 is the class loader context for the base apk.
         // Index `i` is the class loader context encoding for split `i`.
         String[] classLoaderContexts = new String[/*base apk*/ 1 + splitRelativeCodePaths.length];
         classLoaderContexts[0] = pathsWithCode[0] ? baseApkContextClassLoader : null;
@@ -94,10 +102,14 @@
             // If the app didn't request for the splits to be loaded in isolation or if it does not
             // declare inter-split dependencies, then all the splits will be loaded in the base
             // apk class loader (in the order of their definition).
-            String classpath = sharedLibrariesAndBaseClassPath;
+            String classpath = baseClassPath;
             for (int i = 1; i < classLoaderContexts.length; i++) {
-                classLoaderContexts[i] = pathsWithCode[i]
-                        ? encodeClassLoader(classpath, info.classLoaderName) : null;
+                if (pathsWithCode[i]) {
+                    classLoaderContexts[i] = encodeClassLoader(
+                            classpath, info.classLoaderName, sharedLibrariesContext);
+                } else {
+                    classLoaderContexts[i] = null;
+                }
                 // Note that the splits with no code are not removed from the classpath computation.
                 // i.e. split_n might get the split_n-1 in its classpath dependency even
                 // if split_n-1 has no code.
@@ -124,7 +136,7 @@
                         info.splitClassLoaderNames[i]);
             }
             String splitDependencyOnBase = encodeClassLoader(
-                    sharedLibrariesAndBaseClassPath, info.classLoaderName);
+                    baseClassPath, info.classLoaderName);
             SparseArray<int[]> splitDependencies = info.splitDependencies;
 
             // Note that not all splits have dependencies (e.g. configuration splits)
@@ -149,7 +161,8 @@
                     // any dependency. In this case its context equals its declared class loader.
                     classLoaderContexts[i] = classLoaderContexts[i] == null
                             ? splitClassLoader
-                            : encodeClassLoaderChain(splitClassLoader, classLoaderContexts[i]);
+                            : encodeClassLoaderChain(splitClassLoader, classLoaderContexts[i])
+                                    + sharedLibrariesContext;
                 } else {
                     // This is a split without code, it has no dependency and it is not compiled.
                     // Its context will be null.
@@ -207,6 +220,31 @@
         return splitContext;
     }
 
+    private static String encodeSharedLibrary(SharedLibraryInfo sharedLibrary) {
+        List<String> paths = sharedLibrary.getAllCodePaths();
+        String classLoaderSpec = encodeClassLoader(
+                encodeClasspath(paths.toArray(new String[paths.size()])),
+                SHARED_LIBRARY_LOADER_TYPE);
+        if (sharedLibrary.getDependencies() != null) {
+            classLoaderSpec += encodeSharedLibraries(sharedLibrary.getDependencies());
+        }
+        return classLoaderSpec;
+    }
+
+    private static String encodeSharedLibraries(List<SharedLibraryInfo> sharedLibraries) {
+        String sharedLibrariesContext = "{";
+        boolean first = true;
+        for (SharedLibraryInfo info : sharedLibraries) {
+            if (!first) {
+                sharedLibrariesContext += "#";
+            }
+            first = false;
+            sharedLibrariesContext += encodeSharedLibrary(info);
+        }
+        sharedLibrariesContext += "}";
+        return sharedLibrariesContext;
+    }
+
     /**
      * Encodes the shared libraries classpathElements in a format accepted by dexopt.
      * NOTE: Keep this in sync with the dexopt expectations! Right now that is
@@ -258,6 +296,14 @@
     }
 
     /**
+     * Same as above, but appends {@param sharedLibraries} to the result.
+     */
+    private static String encodeClassLoader(String classpath, String classLoaderName,
+            String sharedLibraries) {
+        return encodeClassLoader(classpath, classLoaderName) + sharedLibraries;
+    }
+
+    /**
      * Links to dependencies together in a format accepted by dexopt.
      * For the special case when either of cl1 or cl2 equals
      * {@link PackageDexOptimizer#SKIP_SHARED_LIBRARY_CHECK}, the method returns the same. This
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 e194d15..2d583ca3 100644
--- a/services/core/java/com/android/server/pm/permission/BasePermission.java
+++ b/services/core/java/com/android/server/pm/permission/BasePermission.java
@@ -105,6 +105,8 @@
      */
     private boolean perUser;
 
+    boolean usageInfoRequired;
+
     public BasePermission(String _name, String _sourcePackageName, @PermissionType int _type) {
         name = _name;
         sourcePackageName = _sourcePackageName;
@@ -351,6 +353,7 @@
         }
         if (bp.perm == p) {
             bp.protectionLevel = p.info.protectionLevel;
+            bp.usageInfoRequired = p.info.usageInfoRequired;
         }
         if (PackageManagerService.DEBUG_PACKAGE_SCANNING && r != null) {
             Log.d(TAG, "  Permissions: " + r);
@@ -430,6 +433,7 @@
         permissionInfo.packageName = sourcePackageName;
         permissionInfo.nonLocalizedLabel = name;
         permissionInfo.protectionLevel = protectionLevel;
+        permissionInfo.usageInfoRequired = usageInfoRequired;
         return permissionInfo;
     }
 
@@ -458,6 +462,7 @@
         bp.protectionLevel = readInt(parser, null, "protection",
                 PermissionInfo.PROTECTION_NORMAL);
         bp.protectionLevel = PermissionInfo.fixProtectionLevel(bp.protectionLevel);
+        bp.usageInfoRequired = readInt(parser, null, "usageInfoRequired", 0) != 0;
         if (dynamic) {
             final PermissionInfo pi = new PermissionInfo();
             pi.packageName = sourcePackage.intern();
@@ -465,6 +470,7 @@
             pi.icon = readInt(parser, null, "icon", 0);
             pi.nonLocalizedLabel = parser.getAttributeValue(null, "label");
             pi.protectionLevel = bp.protectionLevel;
+            pi.usageInfoRequired = bp.usageInfoRequired;
             bp.pendingPermissionInfo = pi;
         }
         out.put(bp.name, bp);
@@ -497,6 +503,7 @@
         if (protectionLevel != PermissionInfo.PROTECTION_NORMAL) {
             serializer.attribute(null, "protection", Integer.toString(protectionLevel));
         }
+        serializer.attribute(null, "usageInfoRequired", usageInfoRequired ? "1" : "0");
         if (type == BasePermission.TYPE_DYNAMIC) {
             final PermissionInfo pi = perm != null ? perm.info : pendingPermissionInfo;
             if (pi != null) {
@@ -533,6 +540,7 @@
         if (!compareStrings(pi1.nonLocalizedLabel, pi2.nonLocalizedLabel)) return false;
         // We'll take care of setting this one.
         if (!compareStrings(pi1.packageName, pi2.packageName)) return false;
+        if (pi1.usageInfoRequired != pi2.usageInfoRequired) return false;
         // These are not currently stored in settings.
         //if (!compareStrings(pi1.group, pi2.group)) return false;
         //if (!compareStrings(pi1.nonLocalizedDescription, pi2.nonLocalizedDescription)) return false;
@@ -580,6 +588,8 @@
             pw.print("    enforced=");
             pw.println(readEnforced);
         }
+        pw.print("    usageInfoRequired=");
+        pw.println(usageInfoRequired);
         return true;
     }
 }
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 774134c..51619cf 100644
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -46,7 +46,6 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.storage.StorageManager;
 import android.permission.PermissionManager;
@@ -144,6 +143,11 @@
         LOCATION_PERMISSIONS.add(Manifest.permission.ACCESS_COARSE_LOCATION);
     }
 
+    private static final Set<String> ACTIVITY_RECOGNITION_PERMISSIONS = new ArraySet<>();
+    static {
+        ACTIVITY_RECOGNITION_PERMISSIONS.add(Manifest.permission.ACTIVITY_RECOGNITION);
+    }
+
     private static final Set<String> COARSE_LOCATION_PERMISSIONS = new ArraySet<>();
     static {
         COARSE_LOCATION_PERMISSIONS.add(Manifest.permission.ACCESS_COARSE_LOCATION);
@@ -184,7 +188,7 @@
     private static final Set<String> STORAGE_PERMISSIONS = new ArraySet<>();
     static {
         // STOPSHIP(b/112545973): remove once feature enabled by default
-        if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) {
+        if (!StorageManager.hasIsolatedStorage()) {
             STORAGE_PERMISSIONS.add(Manifest.permission.READ_EXTERNAL_STORAGE);
             STORAGE_PERMISSIONS.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
         }
@@ -193,20 +197,17 @@
     private static final Set<String> MEDIA_AURAL_PERMISSIONS = new ArraySet<>();
     static {
         // STOPSHIP(b/112545973): remove once feature enabled by default
-        if (SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) {
+        if (StorageManager.hasIsolatedStorage()) {
             MEDIA_AURAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_AUDIO);
-            MEDIA_AURAL_PERMISSIONS.add(Manifest.permission.WRITE_MEDIA_AUDIO);
         }
     }
 
     private static final Set<String> MEDIA_VISUAL_PERMISSIONS = new ArraySet<>();
     static {
         // STOPSHIP(b/112545973): remove once feature enabled by default
-        if (SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) {
-            MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_IMAGES);
-            MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.WRITE_MEDIA_IMAGES);
+        if (StorageManager.hasIsolatedStorage()) {
             MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_VIDEO);
-            MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.WRITE_MEDIA_VIDEO);
+            MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_IMAGES);
         }
     }
 
@@ -627,7 +628,7 @@
                         PHONE_PERMISSIONS, SMS_PERMISSIONS, CAMERA_PERMISSIONS,
                         SENSORS_PERMISSIONS, STORAGE_PERMISSIONS);
                 grantSystemFixedPermissionsToSystemPackage(packageName, userId,
-                        LOCATION_PERMISSIONS);
+                        LOCATION_PERMISSIONS, ACTIVITY_RECOGNITION_PERMISSIONS);
             }
         }
 
@@ -1057,6 +1058,17 @@
             return;
         }
 
+        // Intersect the requestedPermissions for a factory image with that of its current update
+        // in case the latter one removed a <uses-permission>
+        String[] requestedByNonSystemPackage = getPackageInfo(pkg.packageName).requestedPermissions;
+        int size = requestedPermissions.length;
+        for (int i = 0; i < size; i++) {
+            if (!ArrayUtils.contains(requestedByNonSystemPackage, requestedPermissions[i])) {
+                requestedPermissions[i] = null;
+            }
+        }
+        requestedPermissions = ArrayUtils.filterNotNull(requestedPermissions, String[]::new);
+
         PackageManager pm = mContext.getPackageManager();
         final ArraySet<String> permissions = new ArraySet<>(permissionsWithoutSplits);
         ApplicationInfo applicationInfo = pkg.applicationInfo;
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerInternal.java b/services/core/java/com/android/server/pm/permission/PermissionManagerInternal.java
index ec15c16..189d0f4 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerInternal.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerInternal.java
@@ -181,4 +181,9 @@
 
     /** HACK HACK methods to allow for partial migration of data to the PermissionManager class */
     public abstract @Nullable BasePermission getPermissionTEMP(@NonNull String permName);
-}
\ No newline at end of file
+
+    /**
+     * Returns {@code true} if {@code permName} has {@code usageInfoRequired} set.
+     */
+    public abstract boolean isPermissionUsageInfoRequired(@NonNull String permName);
+}
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 c5d38db..4406fdd 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -2644,5 +2644,12 @@
                 return mSettings.getPermissionLocked(permName);
             }
         }
+        @Override
+        public boolean isPermissionUsageInfoRequired(String permName) {
+            synchronized (PermissionManagerService.this.mLock) {
+                BasePermission bp = mSettings.getPermissionLocked(permName);
+                return bp != null && bp.usageInfoRequired;
+            }
+        }
     }
 }
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 282746a..3ba1155 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -20,13 +20,7 @@
 import static android.Manifest.permission.SYSTEM_ALERT_WINDOW;
 import static android.app.AppOpsManager.OP_SYSTEM_ALERT_WINDOW;
 import static android.app.AppOpsManager.OP_TOAST_WINDOW;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
-import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
-import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 import static android.content.Context.CONTEXT_RESTRICTED;
 import static android.content.Context.DISPLAY_SERVICE;
 import static android.content.Context.WINDOW_SERVICE;
@@ -35,61 +29,28 @@
 import static android.content.pm.PackageManager.FEATURE_WATCH;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.content.res.Configuration.EMPTY;
-import static android.content.res.Configuration.UI_MODE_TYPE_CAR;
-import static android.content.res.Configuration.UI_MODE_TYPE_MASK;
 import static android.os.Build.VERSION_CODES.M;
 import static android.os.Build.VERSION_CODES.O;
 import static android.provider.Settings.Secure.VOLUME_HUSH_OFF;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.INVALID_DISPLAY;
 import static android.view.Display.STATE_OFF;
-import static android.view.WindowManager.DOCKED_LEFT;
-import static android.view.WindowManager.DOCKED_RIGHT;
-import static android.view.WindowManager.DOCKED_TOP;
-import static android.view.WindowManager.INPUT_CONSUMER_NAVIGATION;
 import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
 import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
 import static android.view.WindowManager.LayoutParams.FIRST_SYSTEM_WINDOW;
-import static android.view.WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON;
-import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
-import static android.view.WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
-import static android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_ATTACHED_IN_DECOR;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
 import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
 import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
-import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
-import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
 import static android.view.WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;
 import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW;
 import static android.view.WindowManager.LayoutParams.LAST_SYSTEM_WINDOW;
 import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
-import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT;
-import static android.view.WindowManager.LayoutParams.MATCH_PARENT;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_ACQUIRES_SLEEP_TOKEN;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_STATUS_BAR_VISIBLE_TRANSPARENT;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_SCREEN_DECOR;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SYSTEM_ERROR;
-import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
-import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_JUMPCUT;
-import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_ROTATE;
-import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS;
-import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING;
-import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
-import static android.view.WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST;
 import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
-import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_BOOT_PROGRESS;
 import static android.view.WindowManager.LayoutParams.TYPE_DISPLAY_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
@@ -106,19 +67,13 @@
 import static android.view.WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;
 import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
 import static android.view.WindowManager.LayoutParams.TYPE_QS_DIALOG;
-import static android.view.WindowManager.LayoutParams.TYPE_SCREENSHOT;
 import static android.view.WindowManager.LayoutParams.TYPE_SEARCH_BAR;
-import static android.view.WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL;
-import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
-import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
-import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
 import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION;
-import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
 import static android.view.WindowManager.LayoutParams.isSystemAlertWindowType;
@@ -132,25 +87,15 @@
 import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.CAMERA_LENS_UNCOVERED;
 import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_CLOSED;
 import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_OPEN;
-import static com.android.server.wm.WindowManagerPolicyProto.FOCUSED_APP_TOKEN;
-import static com.android.server.wm.WindowManagerPolicyProto.FOCUSED_WINDOW;
-import static com.android.server.wm.WindowManagerPolicyProto.FORCE_STATUS_BAR;
-import static com.android.server.wm.WindowManagerPolicyProto.FORCE_STATUS_BAR_FROM_KEYGUARD;
 import static com.android.server.wm.WindowManagerPolicyProto.KEYGUARD_DELEGATE;
 import static com.android.server.wm.WindowManagerPolicyProto.KEYGUARD_DRAW_COMPLETE;
 import static com.android.server.wm.WindowManagerPolicyProto.KEYGUARD_OCCLUDED;
 import static com.android.server.wm.WindowManagerPolicyProto.KEYGUARD_OCCLUDED_CHANGED;
 import static com.android.server.wm.WindowManagerPolicyProto.KEYGUARD_OCCLUDED_PENDING;
-import static com.android.server.wm.WindowManagerPolicyProto.LAST_SYSTEM_UI_FLAGS;
-import static com.android.server.wm.WindowManagerPolicyProto.NAVIGATION_BAR;
 import static com.android.server.wm.WindowManagerPolicyProto.ORIENTATION;
-import static com.android.server.wm.WindowManagerPolicyProto.ORIENTATION_LISTENER;
 import static com.android.server.wm.WindowManagerPolicyProto.ROTATION;
 import static com.android.server.wm.WindowManagerPolicyProto.ROTATION_MODE;
 import static com.android.server.wm.WindowManagerPolicyProto.SCREEN_ON_FULLY;
-import static com.android.server.wm.WindowManagerPolicyProto.STATUS_BAR;
-import static com.android.server.wm.WindowManagerPolicyProto.TOP_FULLSCREEN_OPAQUE_OR_DIMMING_WINDOW;
-import static com.android.server.wm.WindowManagerPolicyProto.TOP_FULLSCREEN_OPAQUE_WINDOW;
 import static com.android.server.wm.WindowManagerPolicyProto.WINDOW_MANAGER_DRAW_COMPLETE;
 
 import android.annotation.Nullable;
@@ -158,12 +103,10 @@
 import android.app.ActivityManagerInternal;
 import android.app.ActivityOptions;
 import android.app.ActivityTaskManager;
-import android.app.ActivityThread;
 import android.app.AppOpsManager;
 import android.app.IUiModeManager;
 import android.app.ProgressDialog;
 import android.app.SearchManager;
-import android.app.StatusBarManager;
 import android.app.UiModeManager;
 import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
@@ -181,15 +124,12 @@
 import android.content.res.TypedArray;
 import android.database.ContentObserver;
 import android.graphics.PixelFormat;
-import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.hardware.display.DisplayManager;
 import android.hardware.hdmi.HdmiControlManager;
 import android.hardware.hdmi.HdmiPlaybackClient;
 import android.hardware.hdmi.HdmiPlaybackClient.OneTouchPlayCallback;
-import android.hardware.input.InputManager;
 import android.hardware.input.InputManagerInternal;
-import android.hardware.power.V1_0.PowerHint;
 import android.media.AudioAttributes;
 import android.media.AudioManager;
 import android.media.AudioManagerInternal;
@@ -202,7 +142,6 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.IDeviceIdleController;
-import android.os.Looper;
 import android.os.Message;
 import android.os.PowerManager;
 import android.os.PowerManagerInternal;
@@ -224,7 +163,6 @@
 import android.service.vr.IPersistentVrStateCallbacks;
 import android.speech.RecognizerIntent;
 import android.telecom.TelecomManager;
-import android.util.ArraySet;
 import android.util.EventLog;
 import android.util.Log;
 import android.util.LongSparseArray;
@@ -234,21 +172,13 @@
 import android.util.SparseArray;
 import android.util.proto.ProtoOutputStream;
 import android.view.Display;
-import android.view.DisplayCutout;
-import android.view.Gravity;
 import android.view.HapticFeedbackConstants;
-import android.view.IApplicationToken;
 import android.view.IWindowManager;
-import android.view.InputChannel;
 import android.view.InputDevice;
-import android.view.InputEvent;
-import android.view.InputEventReceiver;
 import android.view.KeyCharacterMap;
 import android.view.KeyCharacterMap.FallbackAction;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
-import android.view.PointerIcon;
-import android.view.Surface;
 import android.view.View;
 import android.view.ViewConfiguration;
 import android.view.WindowManager;
@@ -263,8 +193,6 @@
 
 import com.android.internal.R;
 import com.android.internal.accessibility.AccessibilityShortcutController;
-import com.android.internal.annotations.GuardedBy;
-import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.internal.policy.IKeyguardDismissCallback;
@@ -272,9 +200,10 @@
 import com.android.internal.policy.PhoneWindow;
 import com.android.internal.statusbar.IStatusBarService;
 import com.android.internal.util.ArrayUtils;
-import com.android.internal.util.ScreenShapeHelper;
 import com.android.internal.util.ScreenshotHelper;
 import com.android.internal.widget.PointerLocationView;
+import com.android.server.ExtconStateObserver;
+import com.android.server.ExtconUEventObserver;
 import com.android.server.GestureLauncherService;
 import com.android.server.LocalServices;
 import com.android.server.SystemServiceManager;
@@ -287,18 +216,17 @@
 import com.android.server.wm.ActivityTaskManagerInternal;
 import com.android.server.wm.ActivityTaskManagerInternal.SleepToken;
 import com.android.server.wm.AppTransition;
-import com.android.server.wm.DisplayFrames;
 import com.android.server.wm.DisplayPolicy;
 import com.android.server.wm.DisplayRotation;
-import com.android.server.wm.WindowFrames;
 import com.android.server.wm.WindowManagerInternal;
 import com.android.server.wm.WindowManagerInternal.AppTransitionListener;
-import com.android.server.wm.utils.InsetUtils;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.HashSet;
 import java.util.List;
 
 /**
@@ -310,11 +238,9 @@
  */
 public class PhoneWindowManager implements WindowManagerPolicy {
     static final String TAG = "WindowManager";
-    static final boolean DEBUG = false;
     static final boolean localLOGV = false;
     static final boolean DEBUG_INPUT = false;
     static final boolean DEBUG_KEYGUARD = false;
-    static final boolean DEBUG_LAYOUT = false;
     static final boolean DEBUG_SPLASH_SCREEN = false;
     static final boolean DEBUG_WAKEUP = false;
     static final boolean SHOW_SPLASH_SCREENS = true;
@@ -326,8 +252,6 @@
     // Whether to allow devices placed in vr headset viewers to have an alternative Home intent.
     static final boolean ENABLE_VR_HEADSET_HOME_CAPTURE = true;
 
-    static final boolean ALTERNATE_CAR_MODE_NAV_SIZE = false;
-
     static final int SHORT_PRESS_POWER_NOTHING = 0;
     static final int SHORT_PRESS_POWER_GO_TO_SLEEP = 1;
     static final int SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP = 2;
@@ -369,13 +293,6 @@
 
     static final int PENDING_KEY_NULL = -1;
 
-    // Controls navigation bar opacity depending on which workspace stacks are currently
-    // visible.
-    // Nav bar is always opaque when either the freeform stack or docked stack is visible.
-    static final int NAV_BAR_OPAQUE_WHEN_FREEFORM_OR_DOCKED = 0;
-    // Nav bar is always translucent when the freeform stack is visible, otherwise always opaque.
-    static final int NAV_BAR_TRANSLUCENT_WHEN_FREEFORM_OPAQUE_OTHERWISE = 1;
-
     static public final String SYSTEM_DIALOG_REASON_KEY = "reason";
     static public final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions";
     static public final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
@@ -383,33 +300,11 @@
     static public final String SYSTEM_DIALOG_REASON_ASSIST = "assist";
     static public final String SYSTEM_DIALOG_REASON_SCREENSHOT = "screenshot";
 
-    /**
-     * These are the system UI flags that, when changing, can cause the layout
-     * of the screen to change.
-     */
-    static final int SYSTEM_UI_CHANGING_LAYOUT =
-              View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
-            | View.SYSTEM_UI_FLAG_FULLSCREEN
-            | View.STATUS_BAR_TRANSLUCENT
-            | View.NAVIGATION_BAR_TRANSLUCENT
-            | View.STATUS_BAR_TRANSPARENT
-            | View.NAVIGATION_BAR_TRANSPARENT;
-
     private static final AudioAttributes VIBRATION_ATTRIBUTES = new AudioAttributes.Builder()
             .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
             .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
             .build();
 
-    // The panic gesture may become active only after the keyguard is dismissed and the immersive
-    // app shows again. If that doesn't happen for 30s we drop the gesture.
-    private static final long PANIC_GESTURE_EXPIRATION = 30000;
-
-    private static final String SYSUI_PACKAGE = "com.android.systemui";
-    private static final String SYSUI_SCREENSHOT_SERVICE =
-            "com.android.systemui.screenshot.TakeScreenshotService";
-    private static final String SYSUI_SCREENSHOT_ERROR_RECEIVER =
-            "com.android.systemui.screenshot.ScreenshotServiceErrorReceiver";
-
     /**
      * Keyguard stuff
      */
@@ -498,16 +393,7 @@
     private AccessibilityShortcutController mAccessibilityShortcutController;
 
     boolean mSafeMode;
-    private final ArraySet<WindowState> mScreenDecorWindows = new ArraySet<>();
-    WindowState mStatusBar = null;
-    private final int[] mStatusBarHeightForRotation = new int[4];
-    WindowState mNavigationBar = null;
-    @NavigationBarPosition
-    int mNavigationBarPosition = NAV_BAR_BOTTOM;
-    int[] mNavigationBarHeightForRotationDefault = new int[4];
-    int[] mNavigationBarWidthForRotationDefault = new int[4];
-    int[] mNavigationBarHeightForRotationInCarMode = new int[4];
-    int[] mNavigationBarWidthForRotationInCarMode = new int[4];
+    private WindowState mKeyguardCandidate = null;
 
     private LongSparseArray<IShortcutService> mShortcutKeyServices = new LongSparseArray<>();
 
@@ -588,7 +474,6 @@
     int mShortPressOnSleepBehavior;
     int mShortPressOnWindowBehavior;
     boolean mHasSoftInput = false;
-    boolean mTranslucentDecorEnabled = true;
     boolean mUseTvRouting;
     int mVeryLongPressTimeout;
     boolean mAllowStartActivityForLongPressOnPowerDuringSetup;
@@ -597,74 +482,12 @@
     private boolean mHandleVolumeKeysInWM;
 
     int mPointerLocationMode = 0; // guarded by mLock
-
-    // The windows we were told about in focusChanged.
-    WindowState mFocusedWindow;
-    WindowState mLastFocusedWindow;
-
-    IApplicationToken mFocusedApp;
-
     PointerLocationView mPointerLocationView;
 
-    // During layout, the layer at which the doc window is placed.
-    int mDockLayer;
-    // During layout, this is the layer of the status bar.
-    int mStatusBarLayer;
-    int mLastSystemUiFlags;
-    // Bits that we are in the process of clearing, so we want to prevent
-    // them from being set by applications until everything has been updated
-    // to have them clear.
-    int mResettingSystemUiFlags = 0;
-    // Bits that we are currently always keeping cleared.
-    int mForceClearedSystemUiFlags = 0;
-    int mLastFullscreenStackSysUiFlags;
-    int mLastDockedStackSysUiFlags;
-    final Rect mNonDockedStackBounds = new Rect();
-    final Rect mDockedStackBounds = new Rect();
-    final Rect mLastNonDockedStackBounds = new Rect();
-    final Rect mLastDockedStackBounds = new Rect();
-
-    // What we last reported to system UI about whether the compatibility
-    // menu needs to be displayed.
-    boolean mLastFocusNeedsMenu = false;
-    // If nonzero, a panic gesture was performed at that time in uptime millis and is still pending.
-    private long mPendingPanicGestureUptime;
-
-    InputConsumer mInputConsumer = null;
-
-    private static final Rect sTmpDisplayCutoutSafeExceptMaybeBarsRect = new Rect();
-    private static final Rect sTmpRect = new Rect();
-    private static final Rect sTmpDockedFrame = new Rect();
-    private static final Rect sTmpNavFrame = new Rect();
-    private static final Rect sTmpLastParentFrame = new Rect();
-
-    WindowState mTopFullscreenOpaqueWindowState;
-    WindowState mTopFullscreenOpaqueOrDimmingWindowState;
-    WindowState mTopDockedOpaqueWindowState;
-    WindowState mTopDockedOpaqueOrDimmingWindowState;
-    boolean mTopIsFullscreen;
-    boolean mForceStatusBar;
-    boolean mForceStatusBarFromKeyguard;
-    private boolean mForceStatusBarTransparent;
-    int mNavBarOpacityMode = NAV_BAR_OPAQUE_WHEN_FREEFORM_OR_DOCKED;
-    boolean mForcingShowNavBar;
-    int mForcingShowNavBarLayer;
-
     private boolean mPendingKeyguardOccluded;
     private boolean mKeyguardOccludedChanged;
     private boolean mNotifyUserActivity;
 
-    boolean mShowingDream;
-    private boolean mLastShowingDream;
-    boolean mDreamingLockscreen;
-    boolean mDreamingSleepTokenNeeded;
-    private boolean mWindowSleepTokenNeeded;
-    private boolean mLastWindowSleepTokenNeeded;
-
-    @GuardedBy("mHandler")
-    private SleepToken mWindowSleepToken;
-
-    SleepToken mDreamingSleepToken;
     SleepToken mScreenOffSleepToken;
     volatile boolean mKeyguardOccluded;
     Intent mHomeIntent;
@@ -677,10 +500,9 @@
     boolean mPendingCapsLockToggle;
     int mMetaState;
     int mInitialMetaState;
-    boolean mForceShowSystemBars;
 
     // support for activating the lock screen while the screen is on
-    boolean mAllowLockscreenWhenOn;
+    private HashSet<Integer> mAllowLockscreenWhenOnDisplays = new HashSet<>();
     int mLockScreenTimeout;
     boolean mLockScreenTimerActive;
 
@@ -701,7 +523,6 @@
     Display mDefaultDisplay;
     DisplayRotation mDefaultDisplayRotation;
     DisplayPolicy mDefaultDisplayPolicy;
-    WindowOrientationListener mDefaultOrientationListener;
 
     // What we do when the user long presses on home
     private int mLongPressOnHomeBehavior;
@@ -778,10 +599,6 @@
 
     private boolean mAodShowing;
 
-    // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
-    private NavigationBarExperiments mExperiments = new NavigationBarExperiments();
-    // EXPERIMENT END
-
     private static final int MSG_ENABLE_POINTER_LOCATION = 1;
     private static final int MSG_DISABLE_POINTER_LOCATION = 2;
     private static final int MSG_DISPATCH_MEDIA_KEY_WITH_WAKE_LOCK = 3;
@@ -795,25 +612,19 @@
     private static final int MSG_LAUNCH_VOICE_ASSIST_WITH_WAKE_LOCK = 12;
     private static final int MSG_POWER_DELAYED_PRESS = 13;
     private static final int MSG_POWER_LONG_PRESS = 14;
-    private static final int MSG_UPDATE_DREAMING_SLEEP_TOKEN = 15;
-    private static final int MSG_REQUEST_TRANSIENT_BARS = 16;
-    private static final int MSG_SHOW_PICTURE_IN_PICTURE_MENU = 17;
-    private static final int MSG_BACK_LONG_PRESS = 18;
-    private static final int MSG_DISPOSE_INPUT_CONSUMER = 19;
-    private static final int MSG_ACCESSIBILITY_SHORTCUT = 20;
-    private static final int MSG_BUGREPORT_TV = 21;
-    private static final int MSG_ACCESSIBILITY_TV = 22;
-    private static final int MSG_DISPATCH_BACK_KEY_TO_AUTOFILL = 23;
-    private static final int MSG_SYSTEM_KEY_PRESS = 24;
-    private static final int MSG_HANDLE_ALL_APPS = 25;
-    private static final int MSG_LAUNCH_ASSIST = 26;
-    private static final int MSG_LAUNCH_ASSIST_LONG_PRESS = 27;
-    private static final int MSG_POWER_VERY_LONG_PRESS = 28;
-    private static final int MSG_NOTIFY_USER_ACTIVITY = 29;
-    private static final int MSG_RINGER_TOGGLE_CHORD = 30;
-
-    private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS = 0;
-    private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION = 1;
+    private static final int MSG_SHOW_PICTURE_IN_PICTURE_MENU = 15;
+    private static final int MSG_BACK_LONG_PRESS = 16;
+    private static final int MSG_ACCESSIBILITY_SHORTCUT = 17;
+    private static final int MSG_BUGREPORT_TV = 18;
+    private static final int MSG_ACCESSIBILITY_TV = 19;
+    private static final int MSG_DISPATCH_BACK_KEY_TO_AUTOFILL = 20;
+    private static final int MSG_SYSTEM_KEY_PRESS = 21;
+    private static final int MSG_HANDLE_ALL_APPS = 22;
+    private static final int MSG_LAUNCH_ASSIST = 23;
+    private static final int MSG_LAUNCH_ASSIST_LONG_PRESS = 24;
+    private static final int MSG_POWER_VERY_LONG_PRESS = 25;
+    private static final int MSG_NOTIFY_USER_ACTIVITY = 26;
+    private static final int MSG_RINGER_TOGGLE_CHORD = 27;
 
     private class PolicyHandler extends Handler {
         @Override
@@ -873,25 +684,12 @@
                 case MSG_POWER_VERY_LONG_PRESS:
                     powerVeryLongPress();
                     break;
-                case MSG_UPDATE_DREAMING_SLEEP_TOKEN:
-                    updateDreamingSleepToken(msg.arg1 != 0);
-                    break;
-                case MSG_REQUEST_TRANSIENT_BARS:
-                    WindowState targetBar = (msg.arg1 == MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS) ?
-                            mStatusBar : mNavigationBar;
-                    if (targetBar != null) {
-                        requestTransientBars(targetBar);
-                    }
-                    break;
                 case MSG_SHOW_PICTURE_IN_PICTURE_MENU:
                     showPictureInPictureMenuInternal();
                     break;
                 case MSG_BACK_LONG_PRESS:
                     backLongPress();
                     break;
-                case MSG_DISPOSE_INPUT_CONSUMER:
-                    disposeInputConsumer((InputConsumer) msg.obj);
-                    break;
                 case MSG_ACCESSIBILITY_SHORTCUT:
                     accessibilityShortcutActivated();
                     break;
@@ -963,14 +761,8 @@
                     Settings.Secure.DEFAULT_INPUT_METHOD), false, this,
                     UserHandle.USER_ALL);
             resolver.registerContentObserver(Settings.Secure.getUriFor(
-                    Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS), false, this,
-                    UserHandle.USER_ALL);
-            resolver.registerContentObserver(Settings.Secure.getUriFor(
                     Settings.Secure.VOLUME_HUSH_GESTURE), false, this,
                     UserHandle.USER_ALL);
-            resolver.registerContentObserver(Settings.Global.getUriFor(
-                    Settings.Global.POLICY_CONTROL), false, this,
-                    UserHandle.USER_ALL);
             resolver.registerContentObserver(Settings.Secure.getUriFor(
                     Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED), false, this,
                     UserHandle.USER_ALL);
@@ -1009,45 +801,6 @@
         }
     };
 
-    private final StatusBarController mStatusBarController = new StatusBarController();
-
-    private final BarController mNavigationBarController = new BarController("NavigationBar",
-            View.NAVIGATION_BAR_TRANSIENT,
-            View.NAVIGATION_BAR_UNHIDE,
-            View.NAVIGATION_BAR_TRANSLUCENT,
-            StatusBarManager.WINDOW_NAVIGATION_BAR,
-            FLAG_TRANSLUCENT_NAVIGATION,
-            View.NAVIGATION_BAR_TRANSPARENT);
-
-    private final BarController.OnBarVisibilityChangedListener mNavBarVisibilityListener =
-            new BarController.OnBarVisibilityChangedListener() {
-        @Override
-        public void onBarVisibilityChanged(boolean visible) {
-            mAccessibilityManager.notifyAccessibilityButtonVisibilityChanged(visible);
-        }
-    };
-
-    private final Runnable mAcquireSleepTokenRunnable = () -> {
-        if (mWindowSleepToken != null) {
-            return;
-        }
-        mWindowSleepToken = mActivityTaskManagerInternal.acquireSleepToken("WindowSleepToken",
-                DEFAULT_DISPLAY);
-    };
-
-    private final Runnable mReleaseSleepTokenRunnable = () -> {
-        if (mWindowSleepToken == null) {
-            return;
-        }
-        mWindowSleepToken.release();
-        mWindowSleepToken = null;
-    };
-
-    private ImmersiveModeConfirmation mImmersiveModeConfirmation;
-
-    @VisibleForTesting
-    SystemGesturesPointerEventListener mSystemGestures;
-
     private void handleRingerChordGesture() {
         if (mRingerToggleChord == VOLUME_HUSH_OFF) {
             return;
@@ -1147,14 +900,7 @@
             mHandler.removeMessages(MSG_POWER_DELAYED_PRESS);
         }
 
-        // Detect user pressing the power button in panic when an application has
-        // taken over the whole screen.
-        boolean panic = mImmersiveModeConfirmation.onPowerKeyDown(interactive,
-                SystemClock.elapsedRealtime(), isImmersiveMode(mLastSystemUiFlags),
-                isNavBarEmpty(mLastSystemUiFlags));
-        if (panic) {
-            mHandler.post(mHiddenNavPanic);
-        }
+        mWindowManagerFuncs.onPowerKeyDown(interactive);
 
         // Abort possibly stuck animations.
         mHandler.post(mWindowManagerFuncs::triggerAnimationFailsafe);
@@ -1497,12 +1243,6 @@
         mAccessibilityShortcutController.performAccessibilityShortcut();
     }
 
-    private void disposeInputConsumer(InputConsumer inputConsumer) {
-        if (inputConsumer != null) {
-            inputConsumer.dismiss();
-        }
-    }
-
     private void sleepPress() {
         if (mShortPressOnSleepBehavior == SHORT_PRESS_SLEEP_GO_TO_SLEEP_AND_GO_HOME) {
             launchHomeFromHotKey(DEFAULT_DISPLAY, false /* awakenDreams */,
@@ -1640,9 +1380,7 @@
 
         @Override
         public void run() {
-            mScreenshotHelper.takeScreenshot(mScreenshotType,
-                    mStatusBar != null && mStatusBar.isVisibleLw(),
-                    mNavigationBar != null && mNavigationBar.isVisibleLw(), mHandler);
+            mDefaultDisplayPolicy.takeScreenshot(mScreenshotType);
         }
     }
 
@@ -1670,7 +1408,8 @@
                 mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 0) != 0;
     }
 
-    boolean isUserSetupComplete() {
+    @Override
+    public boolean isUserSetupComplete() {
         boolean isSetupComplete = Settings.Secure.getIntForUser(mContext.getContentResolver(),
                 Settings.Secure.USER_SETUP_COMPLETE, 0, UserHandle.USER_CURRENT) != 0;
         if (mHasFeatureLeanback) {
@@ -1928,7 +1667,6 @@
         mDefaultDisplay = displayContentInfo.getDisplay();
         mDefaultDisplayRotation = displayContentInfo.getDisplayRotation();
         mDefaultDisplayPolicy = mDefaultDisplayRotation.getDisplayPolicy();
-        mDefaultOrientationListener = mDefaultDisplayRotation.getOrientationListener();
     }
 
     /** {@inheritDoc} */
@@ -2025,8 +1763,6 @@
                 com.android.internal.R.bool.config_lidControlsScreenLock);
         mLidControlsSleep = mContext.getResources().getBoolean(
                 com.android.internal.R.bool.config_lidControlsSleep);
-        mTranslucentDecorEnabled = mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_enableTranslucentDecor);
 
         mAllowTheaterModeWakeFromKey = mContext.getResources().getBoolean(
                 com.android.internal.R.bool.config_allowTheaterModeWakeFromKey);
@@ -2104,76 +1840,6 @@
         filter = new IntentFilter(Intent.ACTION_USER_SWITCHED);
         context.registerReceiver(mMultiuserReceiver, filter);
 
-        // monitor for system gestures
-        // TODO(multi-display): Needs to be display specific.
-        mSystemGestures = new SystemGesturesPointerEventListener(context,
-                new SystemGesturesPointerEventListener.Callbacks() {
-                    @Override
-                    public void onSwipeFromTop() {
-                        if (mStatusBar != null) {
-                            requestTransientBars(mStatusBar);
-                        }
-                    }
-                    @Override
-                    public void onSwipeFromBottom() {
-                        if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_BOTTOM) {
-                            requestTransientBars(mNavigationBar);
-                        }
-                    }
-                    @Override
-                    public void onSwipeFromRight() {
-                        if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_RIGHT) {
-                            requestTransientBars(mNavigationBar);
-                        }
-                    }
-                    @Override
-                    public void onSwipeFromLeft() {
-                        if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_LEFT) {
-                            requestTransientBars(mNavigationBar);
-                        }
-                    }
-                    @Override
-                    public void onFling(int duration) {
-                        if (mPowerManagerInternal != null) {
-                            mPowerManagerInternal.powerHint(
-                                    PowerHint.INTERACTION, duration);
-                        }
-                    }
-                    @Override
-                    public void onDebug() {
-                        // no-op
-                    }
-                    @Override
-                    public void onDown() {
-                        mDefaultOrientationListener.onTouchStart();
-                    }
-                    @Override
-                    public void onUpOrCancel() {
-                        mDefaultOrientationListener.onTouchEnd();
-                    }
-                    @Override
-                    public void onMouseHoverAtTop() {
-                        mHandler.removeMessages(MSG_REQUEST_TRANSIENT_BARS);
-                        Message msg = mHandler.obtainMessage(MSG_REQUEST_TRANSIENT_BARS);
-                        msg.arg1 = MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS;
-                        mHandler.sendMessageDelayed(msg, 500);
-                    }
-                    @Override
-                    public void onMouseHoverAtBottom() {
-                        mHandler.removeMessages(MSG_REQUEST_TRANSIENT_BARS);
-                        Message msg = mHandler.obtainMessage(MSG_REQUEST_TRANSIENT_BARS);
-                        msg.arg1 = MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION;
-                        mHandler.sendMessageDelayed(msg, 500);
-                    }
-                    @Override
-                    public void onMouseLeaveFromEdge() {
-                        mHandler.removeMessages(MSG_REQUEST_TRANSIENT_BARS);
-                    }
-                });
-        mImmersiveModeConfirmation = new ImmersiveModeConfirmation(mContext);
-        //TODO (b/111365687) : make system context per display.
-        mWindowManagerFuncs.registerPointerEventListener(mSystemGestures, DEFAULT_DISPLAY);
-
         mVibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
         mLongPressVibePattern = getLongIntArray(mContext.getResources(),
                 com.android.internal.R.array.config_longPressVibePattern);
@@ -2196,8 +1862,6 @@
             finishedGoingToSleep(WindowManagerPolicy.OFF_BECAUSE_OF_USER);
         }
 
-        mWindowManagerInternal.registerAppTransitionListener(
-                mStatusBarController.getAppTransitionListener());
         mWindowManagerInternal.registerAppTransitionListener(new AppTransitionListener() {
             @Override
             public int onAppTransitionStartingLocked(int transit, IBinder openToken,
@@ -2252,16 +1916,6 @@
         if (mContext.getPackageManager().hasSystemFeature(FEATURE_PICTURE_IN_PICTURE)) {
             mShortPressOnWindowBehavior = SHORT_PRESS_WINDOW_PICTURE_IN_PICTURE;
         }
-
-        mNavBarOpacityMode = res.getInteger(
-                com.android.internal.R.integer.config_navBarOpacityMode);
-    }
-
-    /**
-     * @return whether the navigation bar can be hidden, e.g. the device has a navigation bar
-     */
-    private boolean canHideNavigationBar() {
-        return mDefaultDisplayPolicy.hasNavigationBar();
     }
 
     public void updateSettings() {
@@ -2319,12 +1973,6 @@
                 mHasSoftInput = hasSoftInput;
                 updateRotation = true;
             }
-            if (mImmersiveModeConfirmation != null) {
-                mImmersiveModeConfirmation.loadSetting(mCurrentUserId);
-            }
-        }
-        synchronized (mWindowManagerFuncs.getWindowManagerLock()) {
-            PolicyControl.reloadFromSetting(mContext);
         }
         if (updateRotation) {
             updateRotation(true);
@@ -2533,84 +2181,6 @@
         return mContext.checkCallingOrSelfPermission(INTERNAL_SYSTEM_WINDOW) != PERMISSION_GRANTED;
     }
 
-    @Override
-    public void adjustWindowParamsLw(WindowState win, WindowManager.LayoutParams attrs,
-            boolean hasStatusBarServicePermission) {
-
-        final boolean isScreenDecor = (attrs.privateFlags & PRIVATE_FLAG_IS_SCREEN_DECOR) != 0;
-        if (mScreenDecorWindows.contains(win)) {
-            if (!isScreenDecor) {
-                // No longer has the flag set, so remove from the set.
-                mScreenDecorWindows.remove(win);
-            }
-        } else if (isScreenDecor && hasStatusBarServicePermission) {
-            mScreenDecorWindows.add(win);
-        }
-
-        switch (attrs.type) {
-            case TYPE_SYSTEM_OVERLAY:
-            case TYPE_SECURE_SYSTEM_OVERLAY:
-                // These types of windows can't receive input events.
-                attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
-                        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
-                attrs.flags &= ~WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
-                break;
-            case TYPE_DREAM:
-            case TYPE_WALLPAPER:
-                // Dreams and wallpapers don't have an app window token and can thus not be
-                // letterboxed. Hence always let them extend under the cutout.
-                attrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
-                break;
-            case TYPE_STATUS_BAR:
-
-                // If the Keyguard is in a hidden state (occluded by another window), we force to
-                // remove the wallpaper and keyguard flag so that any change in-flight after setting
-                // the keyguard as occluded wouldn't set these flags again.
-                // See {@link #processKeyguardSetHiddenResultLw}.
-                if (mKeyguardOccluded) {
-                    attrs.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
-                    attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
-                }
-                break;
-
-            case TYPE_SCREENSHOT:
-                attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
-                break;
-
-            case TYPE_TOAST:
-                // While apps should use the dedicated toast APIs to add such windows
-                // it possible legacy apps to add the window directly. Therefore, we
-                // make windows added directly by the app behave as a toast as much
-                // as possible in terms of timeout and animation.
-                if (attrs.hideTimeoutMilliseconds < 0
-                        || attrs.hideTimeoutMilliseconds > TOAST_WINDOW_TIMEOUT) {
-                    attrs.hideTimeoutMilliseconds = TOAST_WINDOW_TIMEOUT;
-                }
-                attrs.windowAnimations = com.android.internal.R.style.Animation_Toast;
-                break;
-        }
-
-        if (attrs.type != TYPE_STATUS_BAR) {
-            // The status bar is the only window allowed to exhibit keyguard behavior.
-            attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
-        }
-    }
-
-    private int getImpliedSysUiFlagsForLayout(LayoutParams attrs) {
-        int impliedFlags = 0;
-        if ((attrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0) {
-            impliedFlags |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
-        }
-        final boolean forceWindowDrawsStatusBarBackground =
-                (attrs.privateFlags & PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND) != 0;
-        if ((attrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0
-                || forceWindowDrawsStatusBarBackground
-                        && attrs.height == MATCH_PARENT && attrs.width == MATCH_PARENT) {
-            impliedFlags |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
-        }
-        return impliedFlags;
-    }
-
     void readLidState() {
         mDefaultDisplayPolicy.setLidState(mWindowManagerFuncs.getLidState());
     }
@@ -2657,161 +2227,10 @@
     }
 
     @Override
-    public void onOverlayChangedLw(DisplayContentInfo displayContentInfo) {
-        onConfigurationChanged(displayContentInfo);
-    }
-
-    @Override
-    public void onConfigurationChanged(DisplayContentInfo displayContentInfo) {
-        final DisplayRotation displayRotation = displayContentInfo.getDisplayRotation();
-        // TODO(multi-display): Define policy for secondary displays.
-        if (!displayRotation.isDefaultDisplay) {
-            return;
-        }
-
-        final Context uiContext = getSystemUiContext();
-        final Resources res = uiContext.getResources();
-        final int portraitRotation = displayRotation.getPortraitRotation();
-        final int upsideDownRotation = displayRotation.getUpsideDownRotation();
-        final int landscapeRotation = displayRotation.getLandscapeRotation();
-        final int seascapeRotation = displayRotation.getSeascapeRotation();
-
-        mStatusBarHeightForRotation[portraitRotation] =
-                mStatusBarHeightForRotation[upsideDownRotation] = res.getDimensionPixelSize(
-                                com.android.internal.R.dimen.status_bar_height_portrait);
-        mStatusBarHeightForRotation[landscapeRotation] =
-                mStatusBarHeightForRotation[seascapeRotation] = res.getDimensionPixelSize(
-                        com.android.internal.R.dimen.status_bar_height_landscape);
-
-        // Height of the navigation bar when presented horizontally at bottom
-        mNavigationBarHeightForRotationDefault[portraitRotation] =
-        mNavigationBarHeightForRotationDefault[upsideDownRotation] =
-                res.getDimensionPixelSize(com.android.internal.R.dimen.navigation_bar_height);
-        mNavigationBarHeightForRotationDefault[landscapeRotation] =
-        mNavigationBarHeightForRotationDefault[seascapeRotation] = res.getDimensionPixelSize(
-                com.android.internal.R.dimen.navigation_bar_height_landscape);
-
-        // Width of the navigation bar when presented vertically along one side
-        mNavigationBarWidthForRotationDefault[portraitRotation] =
-        mNavigationBarWidthForRotationDefault[upsideDownRotation] =
-        mNavigationBarWidthForRotationDefault[landscapeRotation] =
-        mNavigationBarWidthForRotationDefault[seascapeRotation] =
-                res.getDimensionPixelSize(com.android.internal.R.dimen.navigation_bar_width);
-
-        if (ALTERNATE_CAR_MODE_NAV_SIZE) {
-            // Height of the navigation bar when presented horizontally at bottom
-            mNavigationBarHeightForRotationInCarMode[portraitRotation] =
-            mNavigationBarHeightForRotationInCarMode[upsideDownRotation] =
-                    res.getDimensionPixelSize(
-                            com.android.internal.R.dimen.navigation_bar_height_car_mode);
-            mNavigationBarHeightForRotationInCarMode[landscapeRotation] =
-            mNavigationBarHeightForRotationInCarMode[seascapeRotation] = res.getDimensionPixelSize(
-                    com.android.internal.R.dimen.navigation_bar_height_landscape_car_mode);
-
-            // Width of the navigation bar when presented vertically along one side
-            mNavigationBarWidthForRotationInCarMode[portraitRotation] =
-            mNavigationBarWidthForRotationInCarMode[upsideDownRotation] =
-            mNavigationBarWidthForRotationInCarMode[landscapeRotation] =
-            mNavigationBarWidthForRotationInCarMode[seascapeRotation] =
-                    res.getDimensionPixelSize(
-                            com.android.internal.R.dimen.navigation_bar_width_car_mode);
-        }
-
-        // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
-        mExperiments.onConfigurationChanged(uiContext);
-        // EXPERIMENT END
-    }
-
-    @VisibleForTesting
-    Context getSystemUiContext() {
-        return ActivityThread.currentActivityThread().getSystemUiContext();
-    }
-
-    @Override
     public int getMaxWallpaperLayer() {
         return getWindowLayerFromTypeLw(TYPE_STATUS_BAR);
     }
 
-    private int getNavigationBarWidth(int rotation, int uiMode) {
-        if (ALTERNATE_CAR_MODE_NAV_SIZE && (uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) {
-            return mNavigationBarWidthForRotationInCarMode[rotation];
-        } else {
-            return mNavigationBarWidthForRotationDefault[rotation];
-        }
-    }
-
-    @Override
-    public int getNonDecorDisplayWidth(int fullWidth, int fullHeight, int rotation, int uiMode,
-            int displayId, DisplayCutout displayCutout) {
-        int width = fullWidth;
-        // TODO(multi-display): Support navigation bar on secondary displays.
-        if (displayId == DEFAULT_DISPLAY && mDefaultDisplayPolicy.hasNavigationBar()) {
-            // For a basic navigation bar, when we are in landscape mode we place
-            // the navigation bar to the side.
-            if (mDefaultDisplayPolicy.navigationBarCanMove() && fullWidth > fullHeight) {
-                width -= getNavigationBarWidth(rotation, uiMode);
-            }
-        }
-        if (displayCutout != null) {
-            width -= displayCutout.getSafeInsetLeft() + displayCutout.getSafeInsetRight();
-        }
-        return width;
-    }
-
-    private int getNavigationBarHeight(int rotation, int uiMode) {
-        if (ALTERNATE_CAR_MODE_NAV_SIZE && (uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) {
-            return mNavigationBarHeightForRotationInCarMode[rotation];
-        } else {
-            return mNavigationBarHeightForRotationDefault[rotation];
-        }
-    }
-
-    @Override
-    public int getNonDecorDisplayHeight(int fullWidth, int fullHeight, int rotation, int uiMode,
-            int displayId, DisplayCutout displayCutout) {
-        int height = fullHeight;
-        // TODO(multi-display): Support navigation bar on secondary displays.
-        if (displayId == DEFAULT_DISPLAY && mDefaultDisplayPolicy.hasNavigationBar()) {
-            // For a basic navigation bar, when we are in portrait mode we place
-            // the navigation bar to the bottom.
-            if (!mDefaultDisplayPolicy.navigationBarCanMove() || fullWidth < fullHeight) {
-                height -= getNavigationBarHeight(rotation, uiMode);
-            }
-        }
-        if (displayCutout != null) {
-            height -= displayCutout.getSafeInsetTop() + displayCutout.getSafeInsetBottom();
-        }
-        return height;
-    }
-
-    @Override
-    public int getConfigDisplayWidth(int fullWidth, int fullHeight, int rotation, int uiMode,
-            int displayId, DisplayCutout displayCutout) {
-        return getNonDecorDisplayWidth(fullWidth, fullHeight, rotation, uiMode, displayId,
-                displayCutout);
-    }
-
-    @Override
-    public int getConfigDisplayHeight(int fullWidth, int fullHeight, int rotation, int uiMode,
-            int displayId, DisplayCutout displayCutout) {
-        // There is a separate status bar at the top of the display.  We don't count that as part
-        // of the fixed decor, since it can hide; however, for purposes of configurations,
-        // we do want to exclude it since applications can't generally use that part
-        // of the screen.
-        // TODO(multi-display): Support status bars on secondary displays.
-        if (displayId == DEFAULT_DISPLAY) {
-            int statusBarHeight = mStatusBarHeightForRotation[rotation];
-            if (displayCutout != null) {
-                // If there is a cutout, it may already have accounted for some part of the status
-                // bar height.
-                statusBarHeight = Math.max(0, statusBarHeight - displayCutout.getSafeInsetTop());
-            }
-            return getNonDecorDisplayHeight(fullWidth, fullHeight, rotation, uiMode, displayId,
-                    displayCutout) - statusBarHeight;
-        }
-        return fullHeight;
-    }
-
     @Override
     public boolean isKeyguardHostWindow(WindowManager.LayoutParams attrs) {
         return attrs.type == TYPE_STATUS_BAR;
@@ -3051,251 +2470,6 @@
         return context.createDisplayContext(targetDisplay);
     }
 
-    /**
-     * Preflight adding a window to the system.
-     *
-     * Currently enforces that three window types are singletons:
-     * <ul>
-     * <li>STATUS_BAR_TYPE</li>
-     * <li>KEYGUARD_TYPE</li>
-     * </ul>
-     *
-     * @param win The window to be added
-     * @param attrs Information about the window to be added
-     *
-     * @return If ok, WindowManagerImpl.ADD_OKAY.  If too many singletons,
-     * WindowManagerImpl.ADD_MULTIPLE_SINGLETON
-     */
-    @Override
-    public int prepareAddWindowLw(WindowState win, WindowManager.LayoutParams attrs) {
-
-        if ((attrs.privateFlags & PRIVATE_FLAG_IS_SCREEN_DECOR) != 0) {
-            mContext.enforceCallingOrSelfPermission(
-                    android.Manifest.permission.STATUS_BAR_SERVICE,
-                    "PhoneWindowManager");
-            mScreenDecorWindows.add(win);
-        }
-
-        switch (attrs.type) {
-            case TYPE_STATUS_BAR:
-                mContext.enforceCallingOrSelfPermission(
-                        android.Manifest.permission.STATUS_BAR_SERVICE,
-                        "PhoneWindowManager");
-                if (mStatusBar != null) {
-                    if (mStatusBar.isAlive()) {
-                        return WindowManagerGlobal.ADD_MULTIPLE_SINGLETON;
-                    }
-                }
-                mStatusBar = win;
-                mStatusBarController.setWindow(win);
-                setKeyguardOccludedLw(mKeyguardOccluded, true /* force */);
-                break;
-            case TYPE_NAVIGATION_BAR:
-                mContext.enforceCallingOrSelfPermission(
-                        android.Manifest.permission.STATUS_BAR_SERVICE,
-                        "PhoneWindowManager");
-                if (mNavigationBar != null) {
-                    if (mNavigationBar.isAlive()) {
-                        return WindowManagerGlobal.ADD_MULTIPLE_SINGLETON;
-                    }
-                }
-                mNavigationBar = win;
-                mNavigationBarController.setWindow(win);
-                mNavigationBarController.setOnBarVisibilityChangedListener(
-                        mNavBarVisibilityListener, true);
-                if (DEBUG_LAYOUT) Slog.i(TAG, "NAVIGATION BAR: " + mNavigationBar);
-                break;
-            case TYPE_NAVIGATION_BAR_PANEL:
-            case TYPE_STATUS_BAR_PANEL:
-            case TYPE_STATUS_BAR_SUB_PANEL:
-            case TYPE_VOICE_INTERACTION_STARTING:
-                mContext.enforceCallingOrSelfPermission(
-                        android.Manifest.permission.STATUS_BAR_SERVICE,
-                        "PhoneWindowManager");
-                break;
-        }
-        return ADD_OKAY;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void removeWindowLw(WindowState win) {
-        if (mStatusBar == win) {
-            mStatusBar = null;
-            mStatusBarController.setWindow(null);
-        } else if (mNavigationBar == win) {
-            mNavigationBar = null;
-            mNavigationBarController.setWindow(null);
-        }
-        if (mLastFocusedWindow == win) {
-            mLastFocusedWindow = null;
-        }
-        mScreenDecorWindows.remove(win);
-    }
-
-    static final boolean PRINT_ANIM = false;
-
-    /** {@inheritDoc} */
-    @Override
-    public int selectAnimationLw(WindowState win, int transit) {
-        if (PRINT_ANIM) Log.i(TAG, "selectAnimation in " + win
-              + ": transit=" + transit);
-        if (win == mStatusBar) {
-            final boolean isKeyguard = (win.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0;
-            final boolean expanded = win.getAttrs().height == MATCH_PARENT
-                    && win.getAttrs().width == MATCH_PARENT;
-            if (isKeyguard || expanded) {
-                return -1;
-            }
-            if (transit == TRANSIT_EXIT
-                    || transit == TRANSIT_HIDE) {
-                return R.anim.dock_top_exit;
-            } else if (transit == TRANSIT_ENTER
-                    || transit == TRANSIT_SHOW) {
-                return R.anim.dock_top_enter;
-            }
-        } else if (win == mNavigationBar) {
-            if (win.getAttrs().windowAnimations != 0) {
-                return 0;
-            }
-            // This can be on either the bottom or the right or the left.
-            if (mNavigationBarPosition == NAV_BAR_BOTTOM) {
-                if (transit == TRANSIT_EXIT
-                        || transit == TRANSIT_HIDE) {
-                    if (isKeyguardShowingAndNotOccluded()) {
-                        return R.anim.dock_bottom_exit_keyguard;
-                    } else {
-                        return R.anim.dock_bottom_exit;
-                    }
-                } else if (transit == TRANSIT_ENTER
-                        || transit == TRANSIT_SHOW) {
-                    return R.anim.dock_bottom_enter;
-                }
-            } else if (mNavigationBarPosition == NAV_BAR_RIGHT) {
-                if (transit == TRANSIT_EXIT
-                        || transit == TRANSIT_HIDE) {
-                    return R.anim.dock_right_exit;
-                } else if (transit == TRANSIT_ENTER
-                        || transit == TRANSIT_SHOW) {
-                    return R.anim.dock_right_enter;
-                }
-            } else if (mNavigationBarPosition == NAV_BAR_LEFT) {
-                if (transit == TRANSIT_EXIT
-                        || transit == TRANSIT_HIDE) {
-                    return R.anim.dock_left_exit;
-                } else if (transit == TRANSIT_ENTER
-                        || transit == TRANSIT_SHOW) {
-                    return R.anim.dock_left_enter;
-                }
-            }
-        } else if (win.getAttrs().type == TYPE_DOCK_DIVIDER) {
-            return selectDockedDividerAnimationLw(win, transit);
-        }
-
-        if (transit == TRANSIT_PREVIEW_DONE) {
-            if (win.hasAppShownWindows()) {
-                if (PRINT_ANIM) Log.i(TAG, "**** STARTING EXIT");
-                return com.android.internal.R.anim.app_starting_exit;
-            }
-        } else if (win.getAttrs().type == TYPE_DREAM && mDreamingLockscreen
-                && transit == TRANSIT_ENTER) {
-            // Special case: we are animating in a dream, while the keyguard
-            // is shown.  We don't want an animation on the dream, because
-            // we need it shown immediately with the keyguard animating away
-            // to reveal it.
-            return -1;
-        }
-
-        return 0;
-    }
-
-    private int selectDockedDividerAnimationLw(WindowState win, int transit) {
-        int insets = mWindowManagerFuncs.getDockedDividerInsetsLw();
-
-        // If the divider is behind the navigation bar, don't animate.
-        final Rect frame = win.getFrameLw();
-        final boolean behindNavBar = mNavigationBar != null
-                && ((mNavigationBarPosition == NAV_BAR_BOTTOM
-                        && frame.top + insets >= mNavigationBar.getFrameLw().top)
-                || (mNavigationBarPosition == NAV_BAR_RIGHT
-                        && frame.left + insets >= mNavigationBar.getFrameLw().left)
-                || (mNavigationBarPosition == NAV_BAR_LEFT
-                        && frame.right - insets <= mNavigationBar.getFrameLw().right));
-        final boolean landscape = frame.height() > frame.width();
-        final boolean offscreenLandscape = landscape && (frame.right - insets <= 0
-                || frame.left + insets >= win.getDisplayFrameLw().right);
-        final boolean offscreenPortrait = !landscape && (frame.top - insets <= 0
-                || frame.bottom + insets >= win.getDisplayFrameLw().bottom);
-        final boolean offscreen = offscreenLandscape || offscreenPortrait;
-        if (behindNavBar || offscreen) {
-            return 0;
-        }
-        if (transit == TRANSIT_ENTER || transit == TRANSIT_SHOW) {
-            return R.anim.fade_in;
-        } else if (transit == TRANSIT_EXIT) {
-            return R.anim.fade_out;
-        } else {
-            return 0;
-        }
-    }
-
-    @Override
-    public void selectRotationAnimationLw(int anim[]) {
-        // If the screen is off or non-interactive, force a jumpcut.
-        final boolean forceJumpcut = !mDefaultDisplayPolicy.isScreenOnFully() || !okToAnimate();
-        if (PRINT_ANIM) Slog.i(TAG, "selectRotationAnimation mTopFullscreen="
-                + mTopFullscreenOpaqueWindowState + " rotationAnimation="
-                + (mTopFullscreenOpaqueWindowState == null ?
-                        "0" : mTopFullscreenOpaqueWindowState.getAttrs().rotationAnimation)
-                + " forceJumpcut=" + forceJumpcut);
-        if (forceJumpcut) {
-            anim[0] = R.anim.rotation_animation_jump_exit;
-            anim[1] = R.anim.rotation_animation_enter;
-            return;
-        }
-        if (mTopFullscreenOpaqueWindowState != null) {
-            int animationHint = mTopFullscreenOpaqueWindowState.getRotationAnimationHint();
-            if (animationHint < 0 && mTopIsFullscreen) {
-                animationHint = mTopFullscreenOpaqueWindowState.getAttrs().rotationAnimation;
-            }
-            switch (animationHint) {
-                case ROTATION_ANIMATION_CROSSFADE:
-                case ROTATION_ANIMATION_SEAMLESS: // Crossfade is fallback for seamless.
-                    anim[0] = R.anim.rotation_animation_xfade_exit;
-                    anim[1] = R.anim.rotation_animation_enter;
-                    break;
-                case ROTATION_ANIMATION_JUMPCUT:
-                    anim[0] = R.anim.rotation_animation_jump_exit;
-                    anim[1] = R.anim.rotation_animation_enter;
-                    break;
-                case ROTATION_ANIMATION_ROTATE:
-                default:
-                    anim[0] = anim[1] = 0;
-                    break;
-            }
-        } else {
-            anim[0] = anim[1] = 0;
-        }
-    }
-
-    @Override
-    public boolean validateRotationAnimationLw(int exitAnimId, int enterAnimId,
-            boolean forceDefault) {
-        switch (exitAnimId) {
-            case R.anim.rotation_animation_xfade_exit:
-            case R.anim.rotation_animation_jump_exit:
-                // These are the only cases that matter.
-                if (forceDefault) {
-                    return false;
-                }
-                int anim[] = new int[2];
-                selectRotationAnimationLw(anim);
-                return (exitAnimId == anim[0] && enterAnimId == anim[1]);
-            default:
-                return true;
-        }
-    }
-
     @Override
     public Animation createHiddenByKeyguardExit(boolean onWallpaper,
             boolean goingToNotificationShade) {
@@ -4170,77 +3344,6 @@
         }
     }
 
-    private final Runnable mClearHideNavigationFlag = new Runnable() {
-        @Override
-        public void run() {
-            synchronized (mWindowManagerFuncs.getWindowManagerLock()) {
-                // Clear flags.
-                mForceClearedSystemUiFlags &=
-                        ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
-            }
-            mWindowManagerFuncs.reevaluateStatusBarVisibility();
-        }
-    };
-
-    /**
-     * Input handler used while nav bar is hidden.  Captures any touch on the screen,
-     * to determine when the nav bar should be shown and prevent applications from
-     * receiving those touches.
-     */
-    final class HideNavInputEventReceiver extends InputEventReceiver {
-        public HideNavInputEventReceiver(InputChannel inputChannel, Looper looper) {
-            super(inputChannel, looper);
-        }
-
-        @Override
-        public void onInputEvent(InputEvent event) {
-            boolean handled = false;
-            try {
-                if (event instanceof MotionEvent
-                        && (event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
-                    final MotionEvent motionEvent = (MotionEvent)event;
-                    if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
-                        // When the user taps down, we re-show the nav bar.
-                        boolean changed = false;
-                        synchronized (mWindowManagerFuncs.getWindowManagerLock()) {
-                            if (mInputConsumer == null) {
-                                return;
-                            }
-                            // Any user activity always causes us to show the
-                            // navigation controls, if they had been hidden.
-                            // We also clear the low profile and only content
-                            // flags so that tapping on the screen will atomically
-                            // restore all currently hidden screen decorations.
-                            int newVal = mResettingSystemUiFlags |
-                                    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
-                                    View.SYSTEM_UI_FLAG_LOW_PROFILE |
-                                    View.SYSTEM_UI_FLAG_FULLSCREEN;
-                            if (mResettingSystemUiFlags != newVal) {
-                                mResettingSystemUiFlags = newVal;
-                                changed = true;
-                            }
-                            // We don't allow the system's nav bar to be hidden
-                            // again for 1 second, to prevent applications from
-                            // spamming us and keeping it from being shown.
-                            newVal = mForceClearedSystemUiFlags |
-                                    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
-                            if (mForceClearedSystemUiFlags != newVal) {
-                                mForceClearedSystemUiFlags = newVal;
-                                changed = true;
-                                mHandler.postDelayed(mClearHideNavigationFlag, 1000);
-                            }
-                        }
-                        if (changed) {
-                            mWindowManagerFuncs.reevaluateStatusBarVisibility();
-                        }
-                    }
-                }
-            } finally {
-                finishInputEvent(event, handled);
-            }
-        }
-    }
-
     @Override
     public void setRecentsVisibilityLw(boolean visible) {
         mRecentsVisible = visible;
@@ -4256,1177 +3359,9 @@
         mNavBarVirtualKeyHapticFeedbackEnabled = enabled;
     }
 
-    @Override
-    public int adjustSystemUiVisibilityLw(int visibility) {
-        mStatusBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
-        mNavigationBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
-
-        // Reset any bits in mForceClearingStatusBarVisibility that
-        // are now clear.
-        mResettingSystemUiFlags &= visibility;
-        // Clear any bits in the new visibility that are currently being
-        // force cleared, before reporting it.
-        return visibility & ~mResettingSystemUiFlags
-                & ~mForceClearedSystemUiFlags;
-    }
-
-    @Override
-    // TODO: Should probably be moved into DisplayFrames.
-    public boolean getLayoutHintLw(LayoutParams attrs, Rect taskBounds,
-            DisplayFrames displayFrames, boolean floatingStack, Rect outFrame,
-            Rect outContentInsets, Rect outStableInsets,
-            Rect outOutsets, DisplayCutout.ParcelableWrapper outDisplayCutout) {
-        final int fl = PolicyControl.getWindowFlags(null, attrs);
-        final int pfl = attrs.privateFlags;
-        final int requestedSysUiVis = PolicyControl.getSystemUiVisibility(null, attrs);
-        final int sysUiVis = requestedSysUiVis | getImpliedSysUiFlagsForLayout(attrs);
-        final int displayRotation = displayFrames.mRotation;
-
-        final boolean useOutsets = outOutsets != null && shouldUseOutsets(attrs, fl);
-        if (useOutsets) {
-            int outset = ScreenShapeHelper.getWindowOutsetBottomPx(mContext.getResources());
-            if (outset > 0) {
-                if (displayRotation == Surface.ROTATION_0) {
-                    outOutsets.bottom += outset;
-                } else if (displayRotation == Surface.ROTATION_90) {
-                    outOutsets.right += outset;
-                } else if (displayRotation == Surface.ROTATION_180) {
-                    outOutsets.top += outset;
-                } else if (displayRotation == Surface.ROTATION_270) {
-                    outOutsets.left += outset;
-                }
-            }
-        }
-
-        final boolean layoutInScreen = (fl & FLAG_LAYOUT_IN_SCREEN) != 0;
-        final boolean layoutInScreenAndInsetDecor = layoutInScreen &&
-                (fl & FLAG_LAYOUT_INSET_DECOR) != 0;
-        final boolean screenDecor = (pfl & PRIVATE_FLAG_IS_SCREEN_DECOR) != 0;
-
-        if (layoutInScreenAndInsetDecor && !screenDecor) {
-            if ((sysUiVis & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0) {
-                outFrame.set(displayFrames.mUnrestricted);
-            } else {
-                outFrame.set(displayFrames.mRestricted);
-            }
-
-            final Rect sf;
-            if (floatingStack) {
-                sf = null;
-            } else {
-                sf = displayFrames.mStable;
-            }
-
-            final Rect cf;
-            if (floatingStack) {
-                cf = null;
-            } else if ((sysUiVis & View.SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0) {
-                if ((fl & FLAG_FULLSCREEN) != 0) {
-                    cf = displayFrames.mStableFullscreen;
-                } else {
-                    cf = displayFrames.mStable;
-                }
-            } else if ((fl & FLAG_FULLSCREEN) != 0 || (fl & FLAG_LAYOUT_IN_OVERSCAN) != 0) {
-                cf = displayFrames.mOverscan;
-            } else {
-                cf = displayFrames.mCurrent;
-            }
-
-            if (taskBounds != null) {
-                outFrame.intersect(taskBounds);
-            }
-            InsetUtils.insetsBetweenFrames(outFrame, cf, outContentInsets);
-            InsetUtils.insetsBetweenFrames(outFrame, sf, outStableInsets);
-            outDisplayCutout.set(displayFrames.mDisplayCutout.calculateRelativeTo(outFrame)
-                    .getDisplayCutout());
-            return mForceShowSystemBars;
-        } else {
-            if (layoutInScreen) {
-                outFrame.set(displayFrames.mUnrestricted);
-            } else {
-                outFrame.set(displayFrames.mStable);
-            }
-            if (taskBounds != null) {
-                outFrame.intersect(taskBounds);
-            }
-
-            outContentInsets.setEmpty();
-            outStableInsets.setEmpty();
-            outDisplayCutout.set(DisplayCutout.NO_CUTOUT);
-            return mForceShowSystemBars;
-        }
-    }
-
-    private boolean shouldUseOutsets(WindowManager.LayoutParams attrs, int fl) {
-        return attrs.type == TYPE_WALLPAPER || (fl & (WindowManager.LayoutParams.FLAG_FULLSCREEN
-                | WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN)) != 0;
-    }
-
     /** {@inheritDoc} */
     @Override
-    public void beginLayoutLw(DisplayFrames displayFrames, int uiMode) {
-        displayFrames.onBeginLayout();
-        // TODO(multi-display): This doesn't seem right...Maybe only apply to default display?
-        mSystemGestures.screenWidth = displayFrames.mUnrestricted.width();
-        mSystemGestures.screenHeight = displayFrames.mUnrestricted.height();
-        mDockLayer = 0x10000000;
-        mStatusBarLayer = -1;
-
-        if (displayFrames.mDisplayId == DEFAULT_DISPLAY) {
-            // For purposes of putting out fake window up to steal focus, we will
-            // drive nav being hidden only by whether it is requested.
-            final int sysui = mLastSystemUiFlags;
-            boolean navVisible = (sysui & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
-            boolean navTranslucent = (sysui
-                    & (View.NAVIGATION_BAR_TRANSLUCENT | View.NAVIGATION_BAR_TRANSPARENT)) != 0;
-            boolean immersive = (sysui & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0;
-            boolean immersiveSticky = (sysui & View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) != 0;
-            boolean navAllowedHidden = immersive || immersiveSticky;
-            navTranslucent &= !immersiveSticky;  // transient trumps translucent
-            boolean isKeyguardShowing = isStatusBarKeyguard() && !mKeyguardOccluded;
-            if (!isKeyguardShowing) {
-                navTranslucent &= areTranslucentBarsAllowed();
-            }
-            boolean statusBarForcesShowingNavigation = !isKeyguardShowing && mStatusBar != null
-                    && (mStatusBar.getAttrs().privateFlags
-                            & PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION) != 0;
-
-            // When the navigation bar isn't visible, we put up a fake input window to catch all
-            // touch events. This way we can detect when the user presses anywhere to bring back the
-            // nav bar and ensure the application doesn't see the event.
-            if (navVisible || navAllowedHidden) {
-                if (mInputConsumer != null) {
-                    mHandler.sendMessage(
-                            mHandler.obtainMessage(MSG_DISPOSE_INPUT_CONSUMER, mInputConsumer));
-                    mInputConsumer = null;
-                }
-            } else if (mInputConsumer == null && mStatusBar != null && canHideNavigationBar()) {
-                mInputConsumer = mWindowManagerFuncs.createInputConsumer(mHandler.getLooper(),
-                        INPUT_CONSUMER_NAVIGATION,
-                        (channel, looper) -> new HideNavInputEventReceiver(channel, looper),
-                        displayFrames.mDisplayId);
-                // As long as mInputConsumer is active, hover events are not dispatched to the app
-                // and the pointer icon is likely to become stale. Hide it to avoid confusion.
-                InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_NULL);
-            }
-
-            // For purposes of positioning and showing the nav bar, if we have decided that it can't
-            // be hidden (because of the screen aspect ratio), then take that into account.
-            navVisible |= !canHideNavigationBar();
-
-            boolean updateSysUiVisibility = layoutNavigationBar(displayFrames, uiMode, navVisible,
-                    navTranslucent, navAllowedHidden, statusBarForcesShowingNavigation);
-            if (DEBUG_LAYOUT) Slog.i(TAG, "mDock rect:" + displayFrames.mDock);
-            updateSysUiVisibility |= layoutStatusBar(displayFrames, sysui, isKeyguardShowing);
-            if (updateSysUiVisibility) {
-                updateSystemUiVisibilityLw();
-            }
-        }
-        layoutScreenDecorWindows(displayFrames);
-
-        if (displayFrames.mDisplayCutoutSafe.top > displayFrames.mUnrestricted.top) {
-            // Make sure that the zone we're avoiding for the cutout is at least as tall as the
-            // status bar; otherwise fullscreen apps will end up cutting halfway into the status
-            // bar.
-            displayFrames.mDisplayCutoutSafe.top = Math.max(displayFrames.mDisplayCutoutSafe.top,
-                    displayFrames.mStable.top);
-        }
-    }
-
-    private void layoutScreenDecorWindows(DisplayFrames displayFrames) {
-        if (mScreenDecorWindows.isEmpty()) {
-            return;
-        }
-
-        sTmpRect.setEmpty();
-        sTmpDockedFrame.set(displayFrames.mDock);
-
-        final int displayId = displayFrames.mDisplayId;
-        final Rect dockFrame = displayFrames.mDock;
-        final int displayHeight = displayFrames.mDisplayHeight;
-        final int displayWidth = displayFrames.mDisplayWidth;
-
-        for (int i = mScreenDecorWindows.size() - 1; i >= 0; --i) {
-            final WindowState w = mScreenDecorWindows.valueAt(i);
-            if (w.getDisplayId() != displayId || !w.isVisibleLw()) {
-                // Skip if not on the same display or not visible.
-                continue;
-            }
-
-            w.getWindowFrames().setFrames(sTmpDockedFrame /* parentFrame */,
-                    sTmpDockedFrame /* displayFrame */, sTmpDockedFrame /* overscanFrame */,
-                    sTmpDockedFrame /* contentFrame */, sTmpDockedFrame /* visibleFrame */,
-                    sTmpRect /* decorFrame */, sTmpDockedFrame /* stableFrame */,
-                    sTmpDockedFrame /* outsetFrame */);
-            w.getWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
-            w.computeFrameLw();
-            final Rect frame = w.getFrameLw();
-
-            if (frame.left <= 0 && frame.top <= 0) {
-                // Docked at left or top.
-                if (frame.bottom >= displayHeight) {
-                    // Docked left.
-                    dockFrame.left = Math.max(frame.right, dockFrame.left);
-                } else if (frame.right >= displayWidth ) {
-                    // Docked top.
-                    dockFrame.top = Math.max(frame.bottom, dockFrame.top);
-                } else {
-                    Slog.w(TAG, "layoutScreenDecorWindows: Ignoring decor win=" + w
-                            + " not docked on left or top of display. frame=" + frame
-                            + " displayWidth=" + displayWidth + " displayHeight=" + displayHeight);
-                }
-            } else if (frame.right >= displayWidth && frame.bottom >= displayHeight) {
-                // Docked at right or bottom.
-                if (frame.top <= 0) {
-                    // Docked right.
-                    dockFrame.right = Math.min(frame.left, dockFrame.right);
-                } else if (frame.left <= 0) {
-                    // Docked bottom.
-                    dockFrame.bottom = Math.min(frame.top, dockFrame.bottom);
-                } else {
-                    Slog.w(TAG, "layoutScreenDecorWindows: Ignoring decor win=" + w
-                            + " not docked on right or bottom" + " of display. frame=" + frame
-                            + " displayWidth=" + displayWidth + " displayHeight=" + displayHeight);
-                }
-            } else {
-                // Screen decor windows are required to be docked on one of the sides of the screen.
-                Slog.w(TAG, "layoutScreenDecorWindows: Ignoring decor win=" + w
-                        + " not docked on one of the sides of the display. frame=" + frame
-                        + " displayWidth=" + displayWidth + " displayHeight=" + displayHeight);
-            }
-        }
-
-        displayFrames.mRestricted.set(dockFrame);
-        displayFrames.mCurrent.set(dockFrame);
-        displayFrames.mVoiceContent.set(dockFrame);
-        displayFrames.mSystem.set(dockFrame);
-        displayFrames.mContent.set(dockFrame);
-        displayFrames.mRestrictedOverscan.set(dockFrame);
-    }
-
-    private boolean layoutStatusBar(DisplayFrames displayFrames, int sysui,
-            boolean isKeyguardShowing) {
-        // decide where the status bar goes ahead of time
-        if (mStatusBar == null) {
-            return false;
-        }
-        // apply any navigation bar insets
-        sTmpRect.setEmpty();
-        mStatusBar.getWindowFrames().setFrames(displayFrames.mUnrestricted /* parentFrame */,
-                displayFrames.mUnrestricted /* displayFrame */,
-                displayFrames.mStable /* overscanFrame */, displayFrames.mStable /* contentFrame */,
-                displayFrames.mStable /* visibleFrame */, sTmpRect /* decorFrame */,
-                displayFrames.mStable /* stableFrame */, displayFrames.mStable /* outsetFrame */);
-        mStatusBar.getWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
-        mStatusBarLayer = mStatusBar.getSurfaceLayer();
-
-        // Let the status bar determine its size.
-        mStatusBar.computeFrameLw();
-
-        // For layout, the status bar is always at the top with our fixed height.
-        displayFrames.mStable.top = displayFrames.mUnrestricted.top
-                + mStatusBarHeightForRotation[displayFrames.mRotation];
-        // Make sure the status bar covers the entire cutout height
-        displayFrames.mStable.top = Math.max(displayFrames.mStable.top,
-                displayFrames.mDisplayCutoutSafe.top);
-
-        // Tell the bar controller where the collapsed status bar content is
-        sTmpRect.set(mStatusBar.getContentFrameLw());
-        sTmpRect.intersect(displayFrames.mDisplayCutoutSafe);
-        sTmpRect.top = mStatusBar.getContentFrameLw().top;  // Ignore top display cutout inset
-        sTmpRect.bottom = displayFrames.mStable.top;  // Use collapsed status bar size
-        mStatusBarController.setContentFrame(sTmpRect);
-
-        boolean statusBarTransient = (sysui & View.STATUS_BAR_TRANSIENT) != 0;
-        boolean statusBarTranslucent = (sysui
-                & (View.STATUS_BAR_TRANSLUCENT | View.STATUS_BAR_TRANSPARENT)) != 0;
-        if (!isKeyguardShowing) {
-            statusBarTranslucent &= areTranslucentBarsAllowed();
-        }
-
-        // If the status bar is hidden, we don't want to cause windows behind it to scroll.
-        if (mStatusBar.isVisibleLw() && !statusBarTransient) {
-            // Status bar may go away, so the screen area it occupies is available to apps but just
-            // covering them when the status bar is visible.
-            final Rect dockFrame = displayFrames.mDock;
-            dockFrame.top = displayFrames.mStable.top;
-            displayFrames.mContent.set(dockFrame);
-            displayFrames.mVoiceContent.set(dockFrame);
-            displayFrames.mCurrent.set(dockFrame);
-
-            if (DEBUG_LAYOUT) Slog.v(TAG, "Status bar: " + String.format(
-                    "dock=%s content=%s cur=%s", dockFrame.toString(),
-                    displayFrames.mContent.toString(), displayFrames.mCurrent.toString()));
-
-            if (!mStatusBar.isAnimatingLw() && !statusBarTranslucent
-                    && !mStatusBarController.wasRecentlyTranslucent()) {
-                // If the opaque status bar is currently requested to be visible, and not in the
-                // process of animating on or off, then we can tell the app that it is covered by it.
-                displayFrames.mSystem.top = displayFrames.mStable.top;
-            }
-        }
-        return mStatusBarController.checkHiddenLw();
-    }
-
-    private boolean layoutNavigationBar(DisplayFrames displayFrames, int uiMode, boolean navVisible,
-            boolean navTranslucent, boolean navAllowedHidden,
-            boolean statusBarForcesShowingNavigation) {
-        if (mNavigationBar == null) {
-            return false;
-        }
-
-        final Rect navigationFrame = sTmpNavFrame;
-        boolean transientNavBarShowing = mNavigationBarController.isTransientShowing();
-        // Force the navigation bar to its appropriate place and size. We need to do this directly,
-        // instead of relying on it to bubble up from the nav bar, because this needs to change
-        // atomically with screen rotations.
-        final int rotation = displayFrames.mRotation;
-        final int displayHeight = displayFrames.mDisplayHeight;
-        final int displayWidth = displayFrames.mDisplayWidth;
-        final Rect dockFrame = displayFrames.mDock;
-        mNavigationBarPosition = navigationBarPosition(displayWidth, displayHeight, rotation);
-
-        final Rect cutoutSafeUnrestricted = sTmpRect;
-        cutoutSafeUnrestricted.set(displayFrames.mUnrestricted);
-        cutoutSafeUnrestricted.intersectUnchecked(displayFrames.mDisplayCutoutSafe);
-
-        if (mNavigationBarPosition == NAV_BAR_BOTTOM) {
-            // It's a system nav bar or a portrait screen; nav bar goes on bottom.
-            final int top = cutoutSafeUnrestricted.bottom
-                    - getNavigationBarHeight(rotation, uiMode);
-            // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
-            final int topNavBar = cutoutSafeUnrestricted.bottom
-                    - mExperiments.getNavigationBarFrameHeight();
-            navigationFrame.set(0, topNavBar, displayWidth, displayFrames.mUnrestricted.bottom);
-            // EXPERIMENT END
-            displayFrames.mStable.bottom = displayFrames.mStableFullscreen.bottom = top;
-            if (transientNavBarShowing) {
-                mNavigationBarController.setBarShowingLw(true);
-            } else if (navVisible) {
-                mNavigationBarController.setBarShowingLw(true);
-                dockFrame.bottom = displayFrames.mRestricted.bottom
-                        = displayFrames.mRestrictedOverscan.bottom = top;
-            } else {
-                // We currently want to hide the navigation UI - unless we expanded the status bar.
-                mNavigationBarController.setBarShowingLw(statusBarForcesShowingNavigation);
-            }
-            if (navVisible && !navTranslucent && !navAllowedHidden
-                    && !mNavigationBar.isAnimatingLw()
-                    && !mNavigationBarController.wasRecentlyTranslucent()) {
-                // If the opaque nav bar is currently requested to be visible and not in the process
-                // of animating on or off, then we can tell the app that it is covered by it.
-                displayFrames.mSystem.bottom = top;
-            }
-        } else if (mNavigationBarPosition == NAV_BAR_RIGHT) {
-            // Landscape screen; nav bar goes to the right.
-            final int left = cutoutSafeUnrestricted.right
-                    - getNavigationBarWidth(rotation, uiMode);
-            // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
-            final int leftNavBar = cutoutSafeUnrestricted.right
-                    - mExperiments.getNavigationBarFrameWidth();
-            navigationFrame.set(leftNavBar, 0, displayFrames.mUnrestricted.right, displayHeight);
-            // EXPERIMENT END
-            displayFrames.mStable.right = displayFrames.mStableFullscreen.right = left;
-            if (transientNavBarShowing) {
-                mNavigationBarController.setBarShowingLw(true);
-            } else if (navVisible) {
-                mNavigationBarController.setBarShowingLw(true);
-                dockFrame.right = displayFrames.mRestricted.right
-                        = displayFrames.mRestrictedOverscan.right = left;
-            } else {
-                // We currently want to hide the navigation UI - unless we expanded the status bar.
-                mNavigationBarController.setBarShowingLw(statusBarForcesShowingNavigation);
-            }
-            if (navVisible && !navTranslucent && !navAllowedHidden
-                    && !mNavigationBar.isAnimatingLw()
-                    && !mNavigationBarController.wasRecentlyTranslucent()) {
-                // If the nav bar is currently requested to be visible, and not in the process of
-                // animating on or off, then we can tell the app that it is covered by it.
-                displayFrames.mSystem.right = left;
-            }
-        } else if (mNavigationBarPosition == NAV_BAR_LEFT) {
-            // Seascape screen; nav bar goes to the left.
-            final int right = cutoutSafeUnrestricted.left
-                    + getNavigationBarWidth(rotation, uiMode);
-            // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
-            final int rightNavBar = cutoutSafeUnrestricted.left
-                    + mExperiments.getNavigationBarFrameWidth();
-            navigationFrame.set(displayFrames.mUnrestricted.left, 0, rightNavBar, displayHeight);
-            // EXPERIMENT END
-            displayFrames.mStable.left = displayFrames.mStableFullscreen.left = right;
-            if (transientNavBarShowing) {
-                mNavigationBarController.setBarShowingLw(true);
-            } else if (navVisible) {
-                mNavigationBarController.setBarShowingLw(true);
-                dockFrame.left = displayFrames.mRestricted.left =
-                        displayFrames.mRestrictedOverscan.left = right;
-            } else {
-                // We currently want to hide the navigation UI - unless we expanded the status bar.
-                mNavigationBarController.setBarShowingLw(statusBarForcesShowingNavigation);
-            }
-            if (navVisible && !navTranslucent && !navAllowedHidden
-                    && !mNavigationBar.isAnimatingLw()
-                    && !mNavigationBarController.wasRecentlyTranslucent()) {
-                // If the nav bar is currently requested to be visible, and not in the process of
-                // animating on or off, then we can tell the app that it is covered by it.
-                displayFrames.mSystem.left = right;
-            }
-        }
-
-        // Make sure the content and current rectangles are updated to account for the restrictions
-        // from the navigation bar.
-        displayFrames.mCurrent.set(dockFrame);
-        displayFrames.mVoiceContent.set(dockFrame);
-        displayFrames.mContent.set(dockFrame);
-        mStatusBarLayer = mNavigationBar.getSurfaceLayer();
-        // And compute the final frame.
-        sTmpRect.setEmpty();
-        mNavigationBar.getWindowFrames().setFrames(navigationFrame /* parentFrame */,
-                navigationFrame /* displayFrame */, navigationFrame /* overscanFrame */,
-                displayFrames.mDisplayCutoutSafe /* contentFrame */,
-                navigationFrame /* visibleFrame */, sTmpRect /* decorFrame */,
-                navigationFrame /* stableFrame */,
-                displayFrames.mDisplayCutoutSafe /* outsetFrame */);
-        mNavigationBar.getWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
-        mNavigationBar.computeFrameLw();
-        mNavigationBarController.setContentFrame(mNavigationBar.getContentFrameLw());
-
-        if (DEBUG_LAYOUT) Slog.i(TAG, "mNavigationBar frame: " + navigationFrame);
-        return mNavigationBarController.checkHiddenLw();
-    }
-
-    @NavigationBarPosition
-    private int navigationBarPosition(int displayWidth, int displayHeight, int displayRotation) {
-        if (mDefaultDisplayPolicy.navigationBarCanMove() && displayWidth > displayHeight) {
-            if (displayRotation == Surface.ROTATION_270) {
-                return NAV_BAR_LEFT;
-            } else {
-                return NAV_BAR_RIGHT;
-            }
-        }
-        return NAV_BAR_BOTTOM;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public int getSystemDecorLayerLw() {
-        if (mStatusBar != null && mStatusBar.isVisibleLw()) {
-            return mStatusBar.getSurfaceLayer();
-        }
-
-        if (mNavigationBar != null && mNavigationBar.isVisibleLw()) {
-            return mNavigationBar.getSurfaceLayer();
-        }
-
-        return 0;
-    }
-
-    private void setAttachedWindowFrames(WindowState win, int fl, int adjust, WindowState attached,
-            boolean insetDecors, Rect pf, Rect df, Rect of, Rect cf, Rect vf,
-            DisplayFrames displayFrames) {
-        if (!win.isInputMethodTarget() && attached.isInputMethodTarget()) {
-            // Here's a special case: if the child window is not the 'dock window'
-            // or input method target, and the window it is attached to is below
-            // the dock window, then the frames we computed for the window it is
-            // attached to can not be used because the dock is effectively part
-            // of the underlying window and the attached window is floating on top
-            // of the whole thing. So, we ignore the attached window and explicitly
-            // compute the frames that would be appropriate without the dock.
-            vf.set(displayFrames.mDock);
-            cf.set(displayFrames.mDock);
-            of.set(displayFrames.mDock);
-            df.set(displayFrames.mDock);
-        } else {
-            // The effective display frame of the attached window depends on whether it is taking
-            // care of insetting its content. If not, we need to use the parent's content frame so
-            // that the entire window is positioned within that content. Otherwise we can use the
-            // overscan frame and let the attached window take care of positioning its content
-            // appropriately.
-            if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
-                // Set the content frame of the attached window to the parent's decor frame
-                // (same as content frame when IME isn't present) if specifically requested by
-                // setting {@link WindowManager.LayoutParams#FLAG_LAYOUT_ATTACHED_IN_DECOR} flag.
-                // Otherwise, use the overscan frame.
-                cf.set((fl & FLAG_LAYOUT_ATTACHED_IN_DECOR) != 0
-                        ? attached.getContentFrameLw() : attached.getOverscanFrameLw());
-            } else {
-                // If the window is resizing, then we want to base the content frame on our attached
-                // content frame to resize...however, things can be tricky if the attached window is
-                // NOT in resize mode, in which case its content frame will be larger.
-                // Ungh. So to deal with that, make sure the content frame we end up using is not
-                // covering the IM dock.
-                cf.set(attached.getContentFrameLw());
-                if (attached.isVoiceInteraction()) {
-                    cf.intersectUnchecked(displayFrames.mVoiceContent);
-                } else if (win.isInputMethodTarget() || attached.isInputMethodTarget()) {
-                    cf.intersectUnchecked(displayFrames.mContent);
-                }
-            }
-            df.set(insetDecors ? attached.getDisplayFrameLw() : cf);
-            of.set(insetDecors ? attached.getOverscanFrameLw() : cf);
-            vf.set(attached.getVisibleFrameLw());
-        }
-        // The LAYOUT_IN_SCREEN flag is used to determine whether the attached window should be
-        // positioned relative to its parent or the entire screen.
-        pf.set((fl & FLAG_LAYOUT_IN_SCREEN) == 0 ? attached.getFrameLw() : df);
-    }
-
-    private void applyStableConstraints(int sysui, int fl, Rect r, DisplayFrames displayFrames) {
-        if ((sysui & View.SYSTEM_UI_FLAG_LAYOUT_STABLE) == 0) {
-            return;
-        }
-        // If app is requesting a stable layout, don't let the content insets go below the stable
-        // values.
-        if ((fl & FLAG_FULLSCREEN) != 0) {
-            r.intersectUnchecked(displayFrames.mStableFullscreen);
-        } else {
-            r.intersectUnchecked(displayFrames.mStable);
-        }
-    }
-
-    private boolean canReceiveInput(WindowState win) {
-        boolean notFocusable =
-                (win.getAttrs().flags & WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) != 0;
-        boolean altFocusableIm =
-                (win.getAttrs().flags & WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) != 0;
-        boolean notFocusableForIm = notFocusable ^ altFocusableIm;
-        return !notFocusableForIm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void layoutWindowLw(WindowState win, WindowState attached, DisplayFrames displayFrames) {
-        // We've already done the navigation bar, status bar, and all screen decor windows. If the
-        // status bar can receive input, we need to layout it again to accommodate for the IME
-        // window.
-        if ((win == mStatusBar && !canReceiveInput(win)) || win == mNavigationBar
-                || mScreenDecorWindows.contains(win)) {
-            return;
-        }
-        final WindowManager.LayoutParams attrs = win.getAttrs();
-        final boolean isDefaultDisplay = win.isDefaultDisplay();
-
-        final int type = attrs.type;
-        final int fl = PolicyControl.getWindowFlags(win, attrs);
-        final int pfl = attrs.privateFlags;
-        final int sim = attrs.softInputMode;
-        final int requestedSysUiFl = PolicyControl.getSystemUiVisibility(null, attrs);
-        final int sysUiFl = requestedSysUiFl | getImpliedSysUiFlagsForLayout(attrs);
-
-        final WindowFrames windowFrames = win.getWindowFrames();
-
-        windowFrames.setHasOutsets(false);
-        sTmpLastParentFrame.set(windowFrames.mParentFrame);
-        final Rect pf = windowFrames.mParentFrame;
-        final Rect df = windowFrames.mDisplayFrame;
-        final Rect of = windowFrames.mOverscanFrame;
-        final Rect cf = windowFrames.mContentFrame;
-        final Rect vf = windowFrames.mVisibleFrame;
-        final Rect dcf = windowFrames.mDecorFrame;
-        final Rect sf = windowFrames.mStableFrame;
-        dcf.setEmpty();
-        windowFrames.setParentFrameWasClippedByDisplayCutout(false);
-        windowFrames.setDisplayCutout(displayFrames.mDisplayCutout);
-
-        final boolean hasNavBar = (isDefaultDisplay && mDefaultDisplayPolicy.hasNavigationBar()
-                && mNavigationBar != null && mNavigationBar.isVisibleLw());
-
-        final int adjust = sim & SOFT_INPUT_MASK_ADJUST;
-
-        final boolean requestedFullscreen = (fl & FLAG_FULLSCREEN) != 0
-                || (requestedSysUiFl & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0;
-
-        final boolean layoutInScreen = (fl & FLAG_LAYOUT_IN_SCREEN) == FLAG_LAYOUT_IN_SCREEN;
-        final boolean layoutInsetDecor = (fl & FLAG_LAYOUT_INSET_DECOR) == FLAG_LAYOUT_INSET_DECOR;
-
-        sf.set(displayFrames.mStable);
-
-        if (type == TYPE_INPUT_METHOD) {
-            vf.set(displayFrames.mDock);
-            cf.set(displayFrames.mDock);
-            of.set(displayFrames.mDock);
-            df.set(displayFrames.mDock);
-            windowFrames.mParentFrame.set(displayFrames.mDock);
-            // IM dock windows layout below the nav bar...
-            pf.bottom = df.bottom = of.bottom = displayFrames.mUnrestricted.bottom;
-            // ...with content insets above the nav bar
-            cf.bottom = vf.bottom = displayFrames.mStable.bottom;
-            // TODO (b/111364446): Support showing IME on non-default displays
-            if (mStatusBar != null && mFocusedWindow == mStatusBar && canReceiveInput(mStatusBar)) {
-                // The status bar forces the navigation bar while it's visible. Make sure the IME
-                // avoids the navigation bar in that case.
-                if (mNavigationBarPosition == NAV_BAR_RIGHT) {
-                    pf.right = df.right = of.right = cf.right = vf.right =
-                            displayFrames.mStable.right;
-                } else if (mNavigationBarPosition == NAV_BAR_LEFT) {
-                    pf.left = df.left = of.left = cf.left = vf.left = displayFrames.mStable.left;
-                }
-            }
-
-            // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
-            // Offset the ime to avoid overlapping with the nav bar
-            mExperiments.offsetWindowFramesForNavBar(mNavigationBarPosition, win);
-            // EXPERIMENT END
-
-            // IM dock windows always go to the bottom of the screen.
-            attrs.gravity = Gravity.BOTTOM;
-            mDockLayer = win.getSurfaceLayer();
-        } else if (type == TYPE_VOICE_INTERACTION) {
-            of.set(displayFrames.mUnrestricted);
-            df.set(displayFrames.mUnrestricted);
-            pf.set(displayFrames.mUnrestricted);
-            if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
-                cf.set(displayFrames.mDock);
-            } else {
-                cf.set(displayFrames.mContent);
-            }
-            if (adjust != SOFT_INPUT_ADJUST_NOTHING) {
-                vf.set(displayFrames.mCurrent);
-            } else {
-                vf.set(cf);
-            }
-        } else if (type == TYPE_WALLPAPER) {
-           layoutWallpaper(displayFrames, pf, df, of, cf);
-        } else if (win == mStatusBar) {
-            of.set(displayFrames.mUnrestricted);
-            df.set(displayFrames.mUnrestricted);
-            pf.set(displayFrames.mUnrestricted);
-            cf.set(displayFrames.mStable);
-            vf.set(displayFrames.mStable);
-
-            if (adjust == SOFT_INPUT_ADJUST_RESIZE) {
-                cf.bottom = displayFrames.mContent.bottom;
-            } else {
-                cf.bottom = displayFrames.mDock.bottom;
-                vf.bottom = displayFrames.mContent.bottom;
-            }
-        } else {
-            dcf.set(displayFrames.mSystem);
-            final boolean inheritTranslucentDecor =
-                    (attrs.privateFlags & PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR) != 0;
-            final boolean isAppWindow =
-                    type >= FIRST_APPLICATION_WINDOW && type <= LAST_APPLICATION_WINDOW;
-            final boolean topAtRest =
-                    win == mTopFullscreenOpaqueWindowState && !win.isAnimatingLw();
-            if (isAppWindow && !inheritTranslucentDecor && !topAtRest) {
-                if ((sysUiFl & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0
-                        && (fl & FLAG_FULLSCREEN) == 0
-                        && (fl & FLAG_TRANSLUCENT_STATUS) == 0
-                        && (fl & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) == 0
-                        && (pfl & PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND) == 0) {
-                    // Ensure policy decor includes status bar
-                    dcf.top = displayFrames.mStable.top;
-                }
-                if ((fl & FLAG_TRANSLUCENT_NAVIGATION) == 0
-                        && (sysUiFl & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0
-                        && (fl & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) == 0) {
-                    // Ensure policy decor includes navigation bar
-                    dcf.bottom = displayFrames.mStable.bottom;
-                    dcf.right = displayFrames.mStable.right;
-                }
-            }
-
-            if (layoutInScreen && layoutInsetDecor) {
-                if (DEBUG_LAYOUT) Slog.v(TAG, "layoutWindowLw(" + attrs.getTitle()
-                            + "): IN_SCREEN, INSET_DECOR");
-                // This is the case for a normal activity window: we want it to cover all of the
-                // screen space, and it can take care of moving its contents to account for screen
-                // decorations that intrude into that space.
-                if (attached != null) {
-                    // If this window is attached to another, our display
-                    // frame is the same as the one we are attached to.
-                    setAttachedWindowFrames(win, fl, adjust, attached, true, pf, df, of, cf, vf,
-                            displayFrames);
-                } else {
-                    if (type == TYPE_STATUS_BAR_PANEL || type == TYPE_STATUS_BAR_SUB_PANEL) {
-                        // Status bar panels are the only windows who can go on top of the status
-                        // bar. They are protected by the STATUS_BAR_SERVICE permission, so they
-                        // have the same privileges as the status bar itself.
-                        //
-                        // However, they should still dodge the navigation bar if it exists.
-
-                        pf.left = df.left = of.left = hasNavBar
-                                ? displayFrames.mDock.left : displayFrames.mUnrestricted.left;
-                        pf.top = df.top = of.top = displayFrames.mUnrestricted.top;
-                        pf.right = df.right = of.right = hasNavBar
-                                ? displayFrames.mRestricted.right
-                                : displayFrames.mUnrestricted.right;
-                        pf.bottom = df.bottom = of.bottom = hasNavBar
-                                ? displayFrames.mRestricted.bottom
-                                : displayFrames.mUnrestricted.bottom;
-
-                        if (DEBUG_LAYOUT) Slog.v(TAG, "Laying out status bar window: " + pf);
-                    } else if ((fl & FLAG_LAYOUT_IN_OVERSCAN) != 0
-                            && type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW) {
-                        // Asking to layout into the overscan region, so give it that pure
-                        // unrestricted area.
-                        of.set(displayFrames.mOverscan);
-                        df.set(displayFrames.mOverscan);
-                        pf.set(displayFrames.mOverscan);
-                    } else if ((sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
-                            && (type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW
-                            || type == TYPE_VOLUME_OVERLAY)) {
-                        // Asking for layout as if the nav bar is hidden, lets the application
-                        // extend into the unrestricted overscan screen area. We only do this for
-                        // application windows and certain system windows to ensure no window that
-                        // can be above the nav bar can do this.
-                        df.set(displayFrames.mOverscan);
-                        pf.set(displayFrames.mOverscan);
-                        // We need to tell the app about where the frame inside the overscan is, so
-                        // it can inset its content by that amount -- it didn't ask to actually
-                        // extend itself into the overscan region.
-                        of.set(displayFrames.mUnrestricted);
-                    } else {
-                        df.set(displayFrames.mRestrictedOverscan);
-                        pf.set(displayFrames.mRestrictedOverscan);
-                        // We need to tell the app about where the frame inside the overscan
-                        // is, so it can inset its content by that amount -- it didn't ask
-                        // to actually extend itself into the overscan region.
-                        of.set(displayFrames.mUnrestricted);
-                    }
-
-                    if ((fl & FLAG_FULLSCREEN) == 0) {
-                        if (win.isVoiceInteraction()) {
-                            cf.set(displayFrames.mVoiceContent);
-                        } else {
-                            if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
-                                cf.set(displayFrames.mDock);
-                            } else {
-                                cf.set(displayFrames.mContent);
-                            }
-                        }
-                    } else {
-                        // Full screen windows are always given a layout that is as if the status
-                        // bar and other transient decors are gone. This is to avoid bad states when
-                        // moving from a window that is not hiding the status bar to one that is.
-                        cf.set(displayFrames.mRestricted);
-                    }
-                    applyStableConstraints(sysUiFl, fl, cf, displayFrames);
-                    if (adjust != SOFT_INPUT_ADJUST_NOTHING) {
-                        vf.set(displayFrames.mCurrent);
-                    } else {
-                        vf.set(cf);
-                    }
-
-                    // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
-                    mExperiments.offsetWindowFramesForNavBar(mNavigationBarPosition, win);
-                    // EXPERIMENT END
-                }
-            } else if (layoutInScreen || (sysUiFl
-                    & (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
-                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)) != 0) {
-                if (DEBUG_LAYOUT) Slog.v(TAG, "layoutWindowLw(" + attrs.getTitle()
-                        + "): IN_SCREEN");
-                // A window that has requested to fill the entire screen just
-                // gets everything, period.
-                if (type == TYPE_STATUS_BAR_PANEL || type == TYPE_STATUS_BAR_SUB_PANEL) {
-                    cf.set(displayFrames.mUnrestricted);
-                    of.set(displayFrames.mUnrestricted);
-                    df.set(displayFrames.mUnrestricted);
-                    pf.set(displayFrames.mUnrestricted);
-                    if (hasNavBar) {
-                        pf.left = df.left = of.left = cf.left = displayFrames.mDock.left;
-                        pf.right = df.right = of.right = cf.right = displayFrames.mRestricted.right;
-                        pf.bottom = df.bottom = of.bottom = cf.bottom =
-                                displayFrames.mRestricted.bottom;
-                    }
-                    if (DEBUG_LAYOUT) Slog.v(TAG, "Laying out IN_SCREEN status bar window: " + pf);
-                } else if (type == TYPE_NAVIGATION_BAR || type == TYPE_NAVIGATION_BAR_PANEL) {
-                    // The navigation bar has Real Ultimate Power.
-                    of.set(displayFrames.mUnrestricted);
-                    df.set(displayFrames.mUnrestricted);
-                    pf.set(displayFrames.mUnrestricted);
-                    if (DEBUG_LAYOUT) Slog.v(TAG, "Laying out navigation bar window: " + pf);
-                } else if ((type == TYPE_SECURE_SYSTEM_OVERLAY || type == TYPE_SCREENSHOT)
-                        && ((fl & FLAG_FULLSCREEN) != 0)) {
-                    // Fullscreen secure system overlays get what they ask for. Screenshot region
-                    // selection overlay should also expand to full screen.
-                    cf.set(displayFrames.mOverscan);
-                    of.set(displayFrames.mOverscan);
-                    df.set(displayFrames.mOverscan);
-                    pf.set(displayFrames.mOverscan);
-                } else if (type == TYPE_BOOT_PROGRESS) {
-                    // Boot progress screen always covers entire display.
-                    cf.set(displayFrames.mOverscan);
-                    of.set(displayFrames.mOverscan);
-                    df.set(displayFrames.mOverscan);
-                    pf.set(displayFrames.mOverscan);
-                } else if ((fl & FLAG_LAYOUT_IN_OVERSCAN) != 0
-                        && type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW) {
-                    // Asking to layout into the overscan region, so give it that pure unrestricted
-                    // area.
-                    cf.set(displayFrames.mOverscan);
-                    of.set(displayFrames.mOverscan);
-                    df.set(displayFrames.mOverscan);
-                    pf.set(displayFrames.mOverscan);
-                } else if ((sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
-                        && (type == TYPE_STATUS_BAR
-                            || type == TYPE_TOAST
-                            || type == TYPE_DOCK_DIVIDER
-                            || type == TYPE_VOICE_INTERACTION_STARTING
-                            || (type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW))) {
-                    // Asking for layout as if the nav bar is hidden, lets the
-                    // application extend into the unrestricted screen area.  We
-                    // only do this for application windows (or toasts) to ensure no window that
-                    // can be above the nav bar can do this.
-                    // XXX This assumes that an app asking for this will also
-                    // ask for layout in only content.  We can't currently figure out
-                    // what the screen would be if only laying out to hide the nav bar.
-                    cf.set(displayFrames.mUnrestricted);
-                    of.set(displayFrames.mUnrestricted);
-                    df.set(displayFrames.mUnrestricted);
-                    pf.set(displayFrames.mUnrestricted);
-                } else if ((sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) != 0) {
-                    of.set(displayFrames.mRestricted);
-                    df.set(displayFrames.mRestricted);
-                    pf.set(displayFrames.mRestricted);
-                    if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
-                        cf.set(displayFrames.mDock);
-                    } else {
-                        cf.set(displayFrames.mContent);
-                    }
-                } else {
-                    cf.set(displayFrames.mRestricted);
-                    of.set(displayFrames.mRestricted);
-                    df.set(displayFrames.mRestricted);
-                    pf.set(displayFrames.mRestricted);
-                }
-
-                applyStableConstraints(sysUiFl, fl, cf,displayFrames);
-
-                if (adjust != SOFT_INPUT_ADJUST_NOTHING) {
-                    vf.set(displayFrames.mCurrent);
-                } else {
-                    vf.set(cf);
-                }
-            } else if (attached != null) {
-                if (DEBUG_LAYOUT) Slog.v(TAG, "layoutWindowLw(" + attrs.getTitle()
-                        + "): attached to " + attached);
-                // A child window should be placed inside of the same visible
-                // frame that its parent had.
-                setAttachedWindowFrames(win, fl, adjust, attached, false, pf, df, of, cf, vf,
-                        displayFrames);
-            } else {
-                if (DEBUG_LAYOUT) Slog.v(TAG, "layoutWindowLw(" + attrs.getTitle() +
-                        "): normal window");
-                // Otherwise, a normal window must be placed inside the content
-                // of all screen decorations.
-                if (type == TYPE_STATUS_BAR_PANEL) {
-                    // Status bar panels can go on
-                    // top of the status bar. They are protected by the STATUS_BAR_SERVICE
-                    // permission, so they have the same privileges as the status bar itself.
-                    cf.set(displayFrames.mRestricted);
-                    of.set(displayFrames.mRestricted);
-                    df.set(displayFrames.mRestricted);
-                    pf.set(displayFrames.mRestricted);
-                } else if (type == TYPE_TOAST || type == TYPE_SYSTEM_ALERT) {
-                    // These dialogs are stable to interim decor changes.
-                    cf.set(displayFrames.mStable);
-                    of.set(displayFrames.mStable);
-                    df.set(displayFrames.mStable);
-                    pf.set(displayFrames.mStable);
-                } else {
-                    pf.set(displayFrames.mContent);
-                    if (win.isVoiceInteraction()) {
-                        cf.set(displayFrames.mVoiceContent);
-                        of.set(displayFrames.mVoiceContent);
-                        df.set(displayFrames.mVoiceContent);
-                    } else if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
-                        cf.set(displayFrames.mDock);
-                        of.set(displayFrames.mDock);
-                        df.set(displayFrames.mDock);
-                    } else {
-                        cf.set(displayFrames.mContent);
-                        of.set(displayFrames.mContent);
-                        df.set(displayFrames.mContent);
-                    }
-                    if (adjust != SOFT_INPUT_ADJUST_NOTHING) {
-                        vf.set(displayFrames.mCurrent);
-                    } else {
-                        vf.set(cf);
-                    }
-                }
-            }
-        }
-
-        final int cutoutMode = attrs.layoutInDisplayCutoutMode;
-        final boolean attachedInParent = attached != null && !layoutInScreen;
-        final boolean requestedHideNavigation =
-                (requestedSysUiFl & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0;
-
-        // TYPE_BASE_APPLICATION windows are never considered floating here because they don't get
-        // cropped / shifted to the displayFrame in WindowState.
-        final boolean floatingInScreenWindow = !attrs.isFullscreen() && layoutInScreen
-                && type != TYPE_BASE_APPLICATION;
-
-        // Ensure that windows with a DEFAULT or NEVER display cutout mode are laid out in
-        // the cutout safe zone.
-        if (cutoutMode != LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS) {
-            final Rect displayCutoutSafeExceptMaybeBars = sTmpDisplayCutoutSafeExceptMaybeBarsRect;
-            displayCutoutSafeExceptMaybeBars.set(displayFrames.mDisplayCutoutSafe);
-            if (layoutInScreen && layoutInsetDecor && !requestedFullscreen
-                    && cutoutMode == LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT) {
-                // At the top we have the status bar, so apps that are
-                // LAYOUT_IN_SCREEN | LAYOUT_INSET_DECOR but not FULLSCREEN
-                // already expect that there's an inset there and we don't need to exclude
-                // the window from that area.
-                displayCutoutSafeExceptMaybeBars.top = Integer.MIN_VALUE;
-            }
-            if (layoutInScreen && layoutInsetDecor && !requestedHideNavigation
-                    && cutoutMode == LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT) {
-                // Same for the navigation bar.
-                switch (mNavigationBarPosition) {
-                    case NAV_BAR_BOTTOM:
-                        displayCutoutSafeExceptMaybeBars.bottom = Integer.MAX_VALUE;
-                        break;
-                    case NAV_BAR_RIGHT:
-                        displayCutoutSafeExceptMaybeBars.right = Integer.MAX_VALUE;
-                        break;
-                    case NAV_BAR_LEFT:
-                        displayCutoutSafeExceptMaybeBars.left = Integer.MIN_VALUE;
-                        break;
-                }
-            }
-            if (type == TYPE_INPUT_METHOD && mNavigationBarPosition == NAV_BAR_BOTTOM) {
-                // The IME can always extend under the bottom cutout if the navbar is there.
-                displayCutoutSafeExceptMaybeBars.bottom = Integer.MAX_VALUE;
-            }
-            // Windows that are attached to a parent and laid out in said parent already avoid
-            // the cutout according to that parent and don't need to be further constrained.
-            // Floating IN_SCREEN windows get what they ask for and lay out in the full screen.
-            // They will later be cropped or shifted using the displayFrame in WindowState,
-            // which prevents overlap with the DisplayCutout.
-            if (!attachedInParent && !floatingInScreenWindow) {
-                sTmpRect.set(pf);
-                pf.intersectUnchecked(displayCutoutSafeExceptMaybeBars);
-                windowFrames.setParentFrameWasClippedByDisplayCutout(!sTmpRect.equals(pf));
-            }
-            // Make sure that NO_LIMITS windows clipped to the display don't extend under the
-            // cutout.
-            df.intersectUnchecked(displayCutoutSafeExceptMaybeBars);
-        }
-
-        // Content should never appear in the cutout.
-        cf.intersectUnchecked(displayFrames.mDisplayCutoutSafe);
-
-        // TYPE_SYSTEM_ERROR is above the NavigationBar so it can't be allowed to extend over it.
-        // Also, we don't allow windows in multi-window mode to extend out of the screen.
-        if ((fl & FLAG_LAYOUT_NO_LIMITS) != 0 && type != TYPE_SYSTEM_ERROR
-                && !win.isInMultiWindowMode()) {
-            df.left = df.top = -10000;
-            df.right = df.bottom = 10000;
-            if (type != TYPE_WALLPAPER) {
-                of.left = of.top = cf.left = cf.top = vf.left = vf.top = -10000;
-                of.right = of.bottom = cf.right = cf.bottom = vf.right = vf.bottom = 10000;
-            }
-        }
-
-        // If the device has a chin (e.g. some watches), a dead area at the bottom of the screen we
-        // need to provide information to the clients that want to pretend that you can draw there.
-        // We only want to apply outsets to certain types of windows. For example, we never want to
-        // apply the outsets to floating dialogs, because they wouldn't make sense there.
-        final boolean useOutsets = shouldUseOutsets(attrs, fl);
-        if (isDefaultDisplay && useOutsets) {
-            final Rect osf = windowFrames.mOutsetFrame;
-            osf.set(cf.left, cf.top, cf.right, cf.bottom);
-            windowFrames.setHasOutsets(true);
-            int outset = ScreenShapeHelper.getWindowOutsetBottomPx(mContext.getResources());
-            if (outset > 0) {
-                int rotation = displayFrames.mRotation;
-                if (rotation == Surface.ROTATION_0) {
-                    osf.bottom += outset;
-                } else if (rotation == Surface.ROTATION_90) {
-                    osf.right += outset;
-                } else if (rotation == Surface.ROTATION_180) {
-                    osf.top -= outset;
-                } else if (rotation == Surface.ROTATION_270) {
-                    osf.left -= outset;
-                }
-                if (DEBUG_LAYOUT) Slog.v(TAG, "applying bottom outset of " + outset
-                        + " with rotation " + rotation + ", result: " + osf);
-            }
-        }
-
-        if (DEBUG_LAYOUT) Slog.v(TAG, "Compute frame " + attrs.getTitle()
-                + ": sim=#" + Integer.toHexString(sim)
-                + " attach=" + attached + " type=" + type
-                + String.format(" flags=0x%08x", fl)
-                + " pf=" + pf.toShortString() + " df=" + df.toShortString()
-                + " of=" + of.toShortString()
-                + " cf=" + cf.toShortString() + " vf=" + vf.toShortString()
-                + " dcf=" + dcf.toShortString()
-                + " sf=" + sf.toShortString()
-                + " osf=" + windowFrames.mOutsetFrame.toShortString() + " " + win);
-
-        if (!sTmpLastParentFrame.equals(pf)) {
-            windowFrames.setContentChanged(true);
-        }
-
-        win.computeFrameLw();
-        // Dock windows carve out the bottom of the screen, so normal windows
-        // can't appear underneath them.
-        if (type == TYPE_INPUT_METHOD && win.isVisibleLw()
-                && !win.getGivenInsetsPendingLw()) {
-            offsetInputMethodWindowLw(win, displayFrames);
-        }
-        if (type == TYPE_VOICE_INTERACTION && win.isVisibleLw()
-                && !win.getGivenInsetsPendingLw()) {
-            offsetVoiceInputWindowLw(win, displayFrames);
-        }
-    }
-
-    private void layoutWallpaper(DisplayFrames displayFrames, Rect pf, Rect df, Rect of, Rect cf) {
-        // The wallpaper has Real Ultimate Power, but we want to tell it about the overscan area.
-        df.set(displayFrames.mOverscan);
-        pf.set(displayFrames.mOverscan);
-        cf.set(displayFrames.mUnrestricted);
-        of.set(displayFrames.mUnrestricted);
-    }
-
-    private void offsetInputMethodWindowLw(WindowState win, DisplayFrames displayFrames) {
-        int top = Math.max(win.getDisplayFrameLw().top, win.getContentFrameLw().top);
-        top += win.getGivenContentInsetsLw().top;
-        displayFrames.mContent.bottom = Math.min(displayFrames.mContent.bottom, top);
-        displayFrames.mVoiceContent.bottom = Math.min(displayFrames.mVoiceContent.bottom, top);
-        top = win.getVisibleFrameLw().top;
-        top += win.getGivenVisibleInsetsLw().top;
-        displayFrames.mCurrent.bottom = Math.min(displayFrames.mCurrent.bottom, top);
-        if (DEBUG_LAYOUT) Slog.v(TAG, "Input method: mDockBottom="
-                + displayFrames.mDock.bottom + " mContentBottom="
-                + displayFrames.mContent.bottom + " mCurBottom=" + displayFrames.mCurrent.bottom);
-    }
-
-    private void offsetVoiceInputWindowLw(WindowState win, DisplayFrames displayFrames) {
-        int top = Math.max(win.getDisplayFrameLw().top, win.getContentFrameLw().top);
-        top += win.getGivenContentInsetsLw().top;
-        displayFrames.mVoiceContent.bottom = Math.min(displayFrames.mVoiceContent.bottom, top);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void beginPostLayoutPolicyLw(int displayWidth, int displayHeight) {
-        mTopFullscreenOpaqueWindowState = null;
-        mTopFullscreenOpaqueOrDimmingWindowState = null;
-        mTopDockedOpaqueWindowState = null;
-        mTopDockedOpaqueOrDimmingWindowState = null;
-        mForceStatusBar = false;
-        mForceStatusBarFromKeyguard = false;
-        mForceStatusBarTransparent = false;
-        mForcingShowNavBar = false;
-        mForcingShowNavBarLayer = -1;
-
-        mAllowLockscreenWhenOn = false;
-        mShowingDream = false;
-        mWindowSleepTokenNeeded = false;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void applyPostLayoutPolicyLw(WindowState win, WindowManager.LayoutParams attrs,
-            WindowState attached, WindowState imeTarget) {
-        final boolean affectsSystemUi = win.canAffectSystemUiFlags();
-        if (DEBUG_LAYOUT) Slog.i(TAG, "Win " + win + ": affectsSystemUi=" + affectsSystemUi);
-        applyKeyguardPolicyLw(win, imeTarget);
-        final int fl = PolicyControl.getWindowFlags(win, attrs);
-        if (mTopFullscreenOpaqueWindowState == null && affectsSystemUi
-                && attrs.type == TYPE_INPUT_METHOD) {
-            mForcingShowNavBar = true;
-            mForcingShowNavBarLayer = win.getSurfaceLayer();
-        }
-        if (attrs.type == TYPE_STATUS_BAR) {
-            if ((attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
-                mForceStatusBarFromKeyguard = true;
-            }
-            if ((attrs.privateFlags & PRIVATE_FLAG_FORCE_STATUS_BAR_VISIBLE_TRANSPARENT) != 0) {
-                mForceStatusBarTransparent = true;
-            }
-        }
-
-        boolean appWindow = attrs.type >= FIRST_APPLICATION_WINDOW
-                && attrs.type < FIRST_SYSTEM_WINDOW;
-        final int windowingMode = win.getWindowingMode();
-        final boolean inFullScreenOrSplitScreenSecondaryWindowingMode =
-                windowingMode == WINDOWING_MODE_FULLSCREEN
-                        || windowingMode == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
-        if (mTopFullscreenOpaqueWindowState == null && affectsSystemUi) {
-            if ((fl & FLAG_FORCE_NOT_FULLSCREEN) != 0) {
-                mForceStatusBar = true;
-            }
-            if (attrs.type == TYPE_DREAM) {
-                // If the lockscreen was showing when the dream started then wait
-                // for the dream to draw before hiding the lockscreen.
-                if (!mDreamingLockscreen
-                        || (win.isVisibleLw() && win.hasDrawnLw())) {
-                    mShowingDream = true;
-                    appWindow = true;
-                }
-            }
-
-            // For app windows that are not attached, we decide if all windows in the app they
-            // represent should be hidden or if we should hide the lockscreen. For attached app
-            // windows we defer the decision to the window it is attached to.
-            if (appWindow && attached == null) {
-                if (attrs.isFullscreen() && inFullScreenOrSplitScreenSecondaryWindowingMode) {
-                    if (DEBUG_LAYOUT) Slog.v(TAG, "Fullscreen window: " + win);
-                    mTopFullscreenOpaqueWindowState = win;
-                    if (mTopFullscreenOpaqueOrDimmingWindowState == null) {
-                        mTopFullscreenOpaqueOrDimmingWindowState = win;
-                    }
-                    if ((fl & FLAG_ALLOW_LOCK_WHILE_SCREEN_ON) != 0) {
-                        mAllowLockscreenWhenOn = true;
-                    }
-                }
-            }
-        }
-
-        // Voice interaction overrides both top fullscreen and top docked.
-        if (affectsSystemUi && win.getAttrs().type == TYPE_VOICE_INTERACTION) {
-            if (mTopFullscreenOpaqueWindowState == null) {
-                mTopFullscreenOpaqueWindowState = win;
-                if (mTopFullscreenOpaqueOrDimmingWindowState == null) {
-                    mTopFullscreenOpaqueOrDimmingWindowState = win;
-                }
-            }
-            if (mTopDockedOpaqueWindowState == null) {
-                mTopDockedOpaqueWindowState = win;
-                if (mTopDockedOpaqueOrDimmingWindowState == null) {
-                    mTopDockedOpaqueOrDimmingWindowState = win;
-                }
-            }
-        }
-
-        // Keep track of the window if it's dimming but not necessarily fullscreen.
-        if (mTopFullscreenOpaqueOrDimmingWindowState == null && affectsSystemUi
-                && win.isDimming() && inFullScreenOrSplitScreenSecondaryWindowingMode) {
-            mTopFullscreenOpaqueOrDimmingWindowState = win;
-        }
-
-        // We need to keep track of the top "fullscreen" opaque window for the docked stack
-        // separately, because both the "real fullscreen" opaque window and the one for the docked
-        // stack can control View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.
-        if (mTopDockedOpaqueWindowState == null && affectsSystemUi && appWindow && attached == null
-                && attrs.isFullscreen() && windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
-            mTopDockedOpaqueWindowState = win;
-            if (mTopDockedOpaqueOrDimmingWindowState == null) {
-                mTopDockedOpaqueOrDimmingWindowState = win;
-            }
-        }
-
-        // Also keep track of any windows that are dimming but not necessarily fullscreen in the
-        // docked stack.
-        if (mTopDockedOpaqueOrDimmingWindowState == null && affectsSystemUi && win.isDimming()
-                && windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
-            mTopDockedOpaqueOrDimmingWindowState = win;
-        }
-
-        // Take note if a window wants to acquire a sleep token.
-        if ((attrs.privateFlags & PRIVATE_FLAG_ACQUIRES_SLEEP_TOKEN) != 0
-                && win.canAcquireSleepToken()) {
-            mWindowSleepTokenNeeded = true;
-        }
-    }
-
-    private void applyKeyguardPolicyLw(WindowState win, WindowState imeTarget) {
+    public void applyKeyguardPolicyLw(WindowState win, WindowState imeTarget) {
         if (canBeHiddenByKeyguardLw(win)) {
             if (shouldBeHiddenByKeyguard(win, imeTarget)) {
                 win.hideLw(false /* doAnimation */);
@@ -5438,148 +3373,9 @@
 
     /** {@inheritDoc} */
     @Override
-    public int finishPostLayoutPolicyLw() {
-        int changes = 0;
-        boolean topIsFullscreen = false;
-
-        final WindowManager.LayoutParams lp = (mTopFullscreenOpaqueWindowState != null)
-                ? mTopFullscreenOpaqueWindowState.getAttrs()
-                : null;
-
-        // If we are not currently showing a dream then remember the current
-        // lockscreen state.  We will use this to determine whether the dream
-        // started while the lockscreen was showing and remember this state
-        // while the dream is showing.
-        if (!mShowingDream) {
-            mDreamingLockscreen = isKeyguardShowingAndNotOccluded();
-            if (mDreamingSleepTokenNeeded) {
-                mDreamingSleepTokenNeeded = false;
-                mHandler.obtainMessage(MSG_UPDATE_DREAMING_SLEEP_TOKEN, 0, 1).sendToTarget();
-            }
-        } else {
-            if (!mDreamingSleepTokenNeeded) {
-                mDreamingSleepTokenNeeded = true;
-                mHandler.obtainMessage(MSG_UPDATE_DREAMING_SLEEP_TOKEN, 1, 1).sendToTarget();
-            }
-        }
-
-        if (mStatusBar != null) {
-            if (DEBUG_LAYOUT) Slog.i(TAG, "force=" + mForceStatusBar
-                    + " forcefkg=" + mForceStatusBarFromKeyguard
-                    + " top=" + mTopFullscreenOpaqueWindowState);
-            boolean shouldBeTransparent = mForceStatusBarTransparent
-                    && !mForceStatusBar
-                    && !mForceStatusBarFromKeyguard;
-            if (!shouldBeTransparent) {
-                mStatusBarController.setShowTransparent(false /* transparent */);
-            } else if (!mStatusBar.isVisibleLw()) {
-                mStatusBarController.setShowTransparent(true /* transparent */);
-            }
-
-            boolean statusBarForcesShowingNavigation
-                    = (mStatusBar.getAttrs().privateFlags
-                            & PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION) != 0;
-            boolean topAppHidesStatusBar = topAppHidesStatusBar();
-            if (mForceStatusBar || mForceStatusBarFromKeyguard || mForceStatusBarTransparent
-                    || statusBarForcesShowingNavigation) {
-                if (DEBUG_LAYOUT) Slog.v(TAG, "Showing status bar: forced");
-                if (mStatusBarController.setBarShowingLw(true)) {
-                    changes |= FINISH_LAYOUT_REDO_LAYOUT;
-                }
-                // Maintain fullscreen layout until incoming animation is complete.
-                topIsFullscreen = mTopIsFullscreen && mStatusBar.isAnimatingLw();
-                // Transient status bar is not allowed if status bar is on lockscreen or status bar
-                // is expecting the navigation keys from the user.
-                if ((mForceStatusBarFromKeyguard || statusBarForcesShowingNavigation)
-                        && mStatusBarController.isTransientShowing()) {
-                    mStatusBarController.updateVisibilityLw(false /*transientAllowed*/,
-                            mLastSystemUiFlags, mLastSystemUiFlags);
-                }
-            } else if (mTopFullscreenOpaqueWindowState != null) {
-                topIsFullscreen = topAppHidesStatusBar;
-                // The subtle difference between the window for mTopFullscreenOpaqueWindowState
-                // and mTopIsFullscreen is that mTopIsFullscreen is set only if the window
-                // has the FLAG_FULLSCREEN set.  Not sure if there is another way that to be the
-                // case though.
-                if (mStatusBarController.isTransientShowing()) {
-                    if (mStatusBarController.setBarShowingLw(true)) {
-                        changes |= FINISH_LAYOUT_REDO_LAYOUT;
-                    }
-                } else if (topIsFullscreen
-                        && !mWindowManagerInternal.isStackVisible(WINDOWING_MODE_FREEFORM)
-                        && !mWindowManagerInternal.isStackVisible(
-                                WINDOWING_MODE_SPLIT_SCREEN_PRIMARY)) {
-                    if (DEBUG_LAYOUT) Slog.v(TAG, "** HIDING status bar");
-                    if (mStatusBarController.setBarShowingLw(false)) {
-                        changes |= FINISH_LAYOUT_REDO_LAYOUT;
-                    } else {
-                        if (DEBUG_LAYOUT) Slog.v(TAG, "Status bar already hiding");
-                    }
-                } else {
-                    if (DEBUG_LAYOUT) Slog.v(TAG, "** SHOWING status bar: top is not fullscreen");
-                    if (mStatusBarController.setBarShowingLw(true)) {
-                        changes |= FINISH_LAYOUT_REDO_LAYOUT;
-                    }
-                    topAppHidesStatusBar = false;
-                }
-            }
-            mStatusBarController.setTopAppHidesStatusBar(topAppHidesStatusBar);
-        }
-
-        if (mTopIsFullscreen != topIsFullscreen) {
-            if (!topIsFullscreen) {
-                // Force another layout when status bar becomes fully shown.
-                changes |= FINISH_LAYOUT_REDO_LAYOUT;
-            }
-            mTopIsFullscreen = topIsFullscreen;
-        }
-
-        if ((updateSystemUiVisibilityLw()&SYSTEM_UI_CHANGING_LAYOUT) != 0) {
-            // If the navigation bar has been hidden or shown, we need to do another
-            // layout pass to update that window.
-            changes |= FINISH_LAYOUT_REDO_LAYOUT;
-        }
-
-        if (mShowingDream != mLastShowingDream) {
-            mLastShowingDream = mShowingDream;
-            mWindowManagerFuncs.notifyShowingDreamChanged();
-        }
-
-        updateWindowSleepToken();
-
-        // update since mAllowLockscreenWhenOn might have changed
-        updateLockScreenTimeout();
-        return changes;
-    }
-
-    private void updateWindowSleepToken() {
-        if (mWindowSleepTokenNeeded && !mLastWindowSleepTokenNeeded) {
-            mHandler.removeCallbacks(mReleaseSleepTokenRunnable);
-            mHandler.post(mAcquireSleepTokenRunnable);
-        } else if (!mWindowSleepTokenNeeded && mLastWindowSleepTokenNeeded) {
-            mHandler.removeCallbacks(mAcquireSleepTokenRunnable);
-            mHandler.post(mReleaseSleepTokenRunnable);
-        }
-        mLastWindowSleepTokenNeeded = mWindowSleepTokenNeeded;
-    }
-
-    /**
-     * @return Whether the top app should hide the statusbar based on the top fullscreen opaque
-     *         window.
-     */
-    private boolean topAppHidesStatusBar() {
-        if (mTopFullscreenOpaqueWindowState == null) {
-            return false;
-        }
-        final int fl = PolicyControl.getWindowFlags(null,
-                mTopFullscreenOpaqueWindowState.getAttrs());
-        if (localLOGV) {
-            Slog.d(TAG, "frame: " + mTopFullscreenOpaqueWindowState.getFrameLw());
-            Slog.d(TAG, "attr: " + mTopFullscreenOpaqueWindowState.getAttrs()
-                    + " lp.flags=0x" + Integer.toHexString(fl));
-        }
-        return (fl & LayoutParams.FLAG_FULLSCREEN) != 0
-                || (mLastSystemUiFlags & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0;
+    public void setKeyguardCandidateLw(WindowState win) {
+        mKeyguardCandidate = win;
+        setKeyguardOccludedLw(mKeyguardOccluded, true /* force */);
     }
 
     /**
@@ -5595,19 +3391,19 @@
         if (!isOccluded && changed && showing) {
             mKeyguardOccluded = false;
             mKeyguardDelegate.setOccluded(false, true /* animate */);
-            if (mStatusBar != null) {
-                mStatusBar.getAttrs().privateFlags |= PRIVATE_FLAG_KEYGUARD;
+            if (mKeyguardCandidate != null) {
+                mKeyguardCandidate.getAttrs().privateFlags |= PRIVATE_FLAG_KEYGUARD;
                 if (!mKeyguardDelegate.hasLockscreenWallpaper()) {
-                    mStatusBar.getAttrs().flags |= FLAG_SHOW_WALLPAPER;
+                    mKeyguardCandidate.getAttrs().flags |= FLAG_SHOW_WALLPAPER;
                 }
             }
             return true;
         } else if (isOccluded && changed && showing) {
             mKeyguardOccluded = true;
             mKeyguardDelegate.setOccluded(true, false /* animate */);
-            if (mStatusBar != null) {
-                mStatusBar.getAttrs().privateFlags &= ~PRIVATE_FLAG_KEYGUARD;
-                mStatusBar.getAttrs().flags &= ~FLAG_SHOW_WALLPAPER;
+            if (mKeyguardCandidate != null) {
+                mKeyguardCandidate.getAttrs().privateFlags &= ~PRIVATE_FLAG_KEYGUARD;
+                mKeyguardCandidate.getAttrs().flags &= ~FLAG_SHOW_WALLPAPER;
             }
             return true;
         } else if (changed) {
@@ -5619,28 +3415,6 @@
         }
     }
 
-    private boolean isStatusBarKeyguard() {
-        return mStatusBar != null
-                && (mStatusBar.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0;
-    }
-
-    @Override
-    public boolean allowAppAnimationsLw() {
-        return !mShowingDream;
-    }
-
-    @Override
-    public int focusChangedLw(WindowState lastFocus, WindowState newFocus) {
-        mFocusedWindow = newFocus;
-        mLastFocusedWindow = lastFocus;
-        if ((updateSystemUiVisibilityLw() & SYSTEM_UI_CHANGING_LAYOUT) != 0) {
-            // If the navigation bar has been hidden or shown, we need to do another
-            // layout pass to update that window.
-            return FINISH_LAYOUT_REDO_LAYOUT;
-        }
-        return 0;
-    }
-
     /** {@inheritDoc} */
     @Override
     public void notifyLidSwitchChanged(long whenNanos, boolean lidOpen) {
@@ -5707,7 +3481,7 @@
                 char[] buf = new char[15];
                 int n = reader.read(buf);
                 if (n > 1) {
-                    plugged = 0 != Integer.parseInt(new String(buf, 0, n-1));
+                    plugged = 0 != Integer.parseInt(new String(buf, 0, n - 1));
                 }
             } catch (IOException ex) {
                 Slog.w(TAG, "Couldn't read hdmi state from " + filename + ": " + ex);
@@ -5721,6 +3495,10 @@
                     }
                 }
             }
+        } else if (ExtconUEventObserver.extconExists()) {
+            HdmiVideoExtconUEventObserver observer = new HdmiVideoExtconUEventObserver();
+            plugged = observer.init();
+            mHDMIObserver = observer;
         }
         // This dance forces the code in setHdmiPlugged to run.
         // Always do this so the sticky intent is stuck (to false) if there is no hdmi.
@@ -6462,57 +4240,11 @@
                 // current user.
                 mSettingsObserver.onChange(false);
                 mDefaultDisplayRotation.onUserSwitch();
-
-                // force a re-application of focused window sysui visibility.
-                // the window may never have been shown for this user
-                // e.g. the keyguard when going through the new-user setup flow
-                synchronized (mWindowManagerFuncs.getWindowManagerLock()) {
-                    mLastSystemUiFlags = 0;
-                    updateSystemUiVisibilityLw();
-                }
+                mWindowManagerFuncs.onUserSwitched();
             }
         }
     };
 
-    private final Runnable mHiddenNavPanic = new Runnable() {
-        @Override
-        public void run() {
-            synchronized (mWindowManagerFuncs.getWindowManagerLock()) {
-                if (!isUserSetupComplete()) {
-                    // Swipe-up for navigation bar is disabled during setup
-                    return;
-                }
-                mPendingPanicGestureUptime = SystemClock.uptimeMillis();
-                if (!isNavBarEmpty(mLastSystemUiFlags)) {
-                    mNavigationBarController.showTransient();
-                }
-            }
-        }
-    };
-
-    private void requestTransientBars(WindowState swipeTarget) {
-        synchronized (mWindowManagerFuncs.getWindowManagerLock()) {
-            if (!isUserSetupComplete()) {
-                // Swipe-up for navigation bar is disabled during setup
-                return;
-            }
-            boolean sb = mStatusBarController.checkShowTransientBarLw();
-            boolean nb = mNavigationBarController.checkShowTransientBarLw()
-                    && !isNavBarEmpty(mLastSystemUiFlags);
-            if (sb || nb) {
-                // Don't show status bar when swiping on already visible navigation bar
-                if (!nb && swipeTarget == mNavigationBar) {
-                    if (DEBUG) Slog.d(TAG, "Not showing transient bar, wrong swipe target");
-                    return;
-                }
-                if (sb) mStatusBarController.showTransient();
-                if (nb) mNavigationBarController.showTransient();
-                mImmersiveModeConfirmation.confirmCurrentPrompt();
-                updateSystemUiVisibilityLw();
-            }
-        }
-    }
-
     // Called on the PowerManager's Notifier thread.
     @Override
     public void startedGoingToSleep(int why) {
@@ -6845,11 +4577,6 @@
     }
 
     @Override
-    public boolean isShowingDreamLw() {
-        return mShowingDream;
-    }
-
-    @Override
     public void startKeyguardExitAnimation(long startTime, long fadeoutDuration) {
         if (mKeyguardDelegate != null) {
             if (DEBUG_KEYGUARD) Slog.d(TAG, "PWM.startKeyguardExitAnimation");
@@ -6857,85 +4584,6 @@
         }
     }
 
-    @Override
-    public void getStableInsetsLw(int displayRotation, int displayWidth, int displayHeight,
-            DisplayCutout displayCutout, Rect outInsets) {
-        outInsets.setEmpty();
-
-        // Navigation bar and status bar.
-        getNonDecorInsetsLw(displayRotation, displayWidth, displayHeight, displayCutout, outInsets);
-        outInsets.top = Math.max(outInsets.top, mStatusBarHeightForRotation[displayRotation]);
-    }
-
-    @Override
-    public void getNonDecorInsetsLw(int displayRotation, int displayWidth, int displayHeight,
-            DisplayCutout displayCutout, Rect outInsets) {
-        outInsets.setEmpty();
-
-        // Only navigation bar
-        if (mDefaultDisplayPolicy.hasNavigationBar()) {
-            int position = navigationBarPosition(displayWidth, displayHeight, displayRotation);
-            if (position == NAV_BAR_BOTTOM) {
-                outInsets.bottom = getNavigationBarHeight(displayRotation, mUiMode);
-            } else if (position == NAV_BAR_RIGHT) {
-                outInsets.right = getNavigationBarWidth(displayRotation, mUiMode);
-            } else if (position == NAV_BAR_LEFT) {
-                outInsets.left = getNavigationBarWidth(displayRotation, mUiMode);
-            }
-        }
-
-        if (displayCutout != null) {
-            outInsets.left += displayCutout.getSafeInsetLeft();
-            outInsets.top += displayCutout.getSafeInsetTop();
-            outInsets.right += displayCutout.getSafeInsetRight();
-            outInsets.bottom += displayCutout.getSafeInsetBottom();
-        }
-    }
-
-    @Override
-    public boolean isNavBarForcedShownLw(WindowState windowState) {
-        return mForceShowSystemBars;
-    }
-
-    @Override
-    public int getNavBarPosition() {
-        // TODO(multi-display): Support system decor on secondary displays.
-        return mNavigationBarPosition;
-    }
-
-    @Override
-    public boolean isDockSideAllowed(int dockSide, int originalDockSide, int displayWidth,
-            int displayHeight, int displayRotation) {
-        final int barPosition = navigationBarPosition(displayWidth, displayHeight, displayRotation);
-        return isDockSideAllowed(dockSide, originalDockSide, barPosition,
-                mDefaultDisplayPolicy.navigationBarCanMove());
-    }
-
-    @VisibleForTesting
-    static boolean isDockSideAllowed(int dockSide, int originalDockSide,
-            int navBarPosition, boolean navigationBarCanMove) {
-        if (dockSide == DOCKED_TOP) {
-            return true;
-        }
-
-        if (navigationBarCanMove) {
-            // Only allow the dockside opposite to the nav bar position in landscape
-            return dockSide == DOCKED_LEFT && navBarPosition == NAV_BAR_RIGHT
-                    || dockSide == DOCKED_RIGHT && navBarPosition == NAV_BAR_LEFT;
-        }
-
-        // Side is the same as original side
-        if (dockSide == originalDockSide) {
-            return true;
-        }
-
-        // Only if original docked side was top in portrait will allow left for landscape
-        if (dockSide == DOCKED_LEFT && originalDockSide == DOCKED_TOP) {
-            return true;
-        }
-        return false;
-    }
-
     void sendCloseSystemWindows() {
         PhoneWindow.sendCloseSystemWindows(mContext, null);
     }
@@ -7002,9 +4650,6 @@
             }
         }
 
-        mSystemGestures.systemReady();
-        mImmersiveModeConfirmation.systemReady();
-
         mAutofillManagerInternal = LocalServices.getService(AutofillManagerInternal.class);
     }
 
@@ -7166,10 +4811,22 @@
         mHandler.post(mScreenLockTimeout);
     }
 
+    // TODO (b/113840485): Move this logic to DisplayPolicy when lockscreen supports multi-display.
+    @Override
+    public void setAllowLockscreenWhenOn(int displayId, boolean allow) {
+        if (allow) {
+            mAllowLockscreenWhenOnDisplays.add(displayId);
+        } else {
+            mAllowLockscreenWhenOnDisplays.remove(displayId);
+        }
+        updateLockScreenTimeout();
+    }
+
     private void updateLockScreenTimeout() {
         synchronized (mScreenLockTimeout) {
-            final boolean enable = (mAllowLockscreenWhenOn && mDefaultDisplayPolicy.isAwake() &&
-                    mKeyguardDelegate != null && mKeyguardDelegate.isSecure(mCurrentUserId));
+            final boolean enable = !mAllowLockscreenWhenOnDisplays.isEmpty()
+                    && mDefaultDisplayPolicy.isAwake()
+                    && mKeyguardDelegate != null && mKeyguardDelegate.isSecure(mCurrentUserId);
             if (mLockScreenTimerActive != enable) {
                 if (enable) {
                     if (localLOGV) Log.v(TAG, "setting lockscreen timer");
@@ -7185,21 +4842,6 @@
     }
 
     // TODO (multidisplay): Support multiple displays in WindowManagerPolicy.
-    private void updateDreamingSleepToken(boolean acquire) {
-        if (acquire) {
-            if (mDreamingSleepToken == null) {
-                mDreamingSleepToken = mActivityTaskManagerInternal.acquireSleepToken(
-                        "Dream", DEFAULT_DISPLAY);
-            }
-        } else {
-            if (mDreamingSleepToken != null) {
-                mDreamingSleepToken.release();
-                mDreamingSleepToken = null;
-            }
-        }
-    }
-
-    // TODO (multidisplay): Support multiple displays in WindowManagerPolicy.
     private void updateScreenOffSleepToken(boolean acquire) {
         if (acquire) {
             if (mScreenOffSleepToken == null) {
@@ -7247,6 +4889,11 @@
         }
     }
 
+    @Override
+    public int getUiMode() {
+        return mUiMode;
+    }
+
     void updateRotation(boolean alwaysSendConfiguration) {
         try {
             // Set orientation on WindowManager.
@@ -7503,380 +5150,6 @@
         }
     }
 
-    private int updateSystemUiVisibilityLw() {
-        // If there is no window focused, there will be nobody to handle the events
-        // anyway, so just hang on in whatever state we're in until things settle down.
-        WindowState winCandidate = mFocusedWindow != null ? mFocusedWindow
-                : mTopFullscreenOpaqueWindowState;
-        if (winCandidate == null) {
-            return 0;
-        }
-
-        // The immersive mode confirmation should never affect the system bar visibility, otherwise
-        // it will unhide the navigation bar and hide itself.
-        if (winCandidate.getAttrs().token == mImmersiveModeConfirmation.getWindowToken()) {
-
-            // The immersive mode confirmation took the focus from mLastFocusedWindow which was
-            // controlling the system ui visibility. So if mLastFocusedWindow can still receive
-            // keys, we let it keep controlling the visibility.
-            final boolean lastFocusCanReceiveKeys =
-                    (mLastFocusedWindow != null && mLastFocusedWindow.canReceiveKeys());
-            winCandidate = isStatusBarKeyguard() ? mStatusBar
-                    : lastFocusCanReceiveKeys ? mLastFocusedWindow
-                    : mTopFullscreenOpaqueWindowState;
-            if (winCandidate == null) {
-                return 0;
-            }
-        }
-        final WindowState win = winCandidate;
-        if ((win.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0 && mKeyguardOccluded) {
-            // We are updating at a point where the keyguard has gotten
-            // focus, but we were last in a state where the top window is
-            // hiding it.  This is probably because the keyguard as been
-            // shown while the top window was displayed, so we want to ignore
-            // it here because this is just a very transient change and it
-            // will quickly lose focus once it correctly gets hidden.
-            return 0;
-        }
-
-        int tmpVisibility = PolicyControl.getSystemUiVisibility(win, null)
-                & ~mResettingSystemUiFlags
-                & ~mForceClearedSystemUiFlags;
-        if (mForcingShowNavBar && win.getSurfaceLayer() < mForcingShowNavBarLayer) {
-            tmpVisibility &= ~PolicyControl.adjustClearableFlags(win, View.SYSTEM_UI_CLEARABLE_FLAGS);
-        }
-
-        final int fullscreenVisibility = updateLightStatusBarLw(0 /* vis */,
-                mTopFullscreenOpaqueWindowState, mTopFullscreenOpaqueOrDimmingWindowState);
-        final int dockedVisibility = updateLightStatusBarLw(0 /* vis */,
-                mTopDockedOpaqueWindowState, mTopDockedOpaqueOrDimmingWindowState);
-        mWindowManagerFuncs.getStackBounds(
-                WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, mNonDockedStackBounds);
-        mWindowManagerFuncs.getStackBounds(
-                WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_STANDARD, mDockedStackBounds);
-        final int visibility = updateSystemBarsLw(win, mLastSystemUiFlags, tmpVisibility);
-        final int diff = visibility ^ mLastSystemUiFlags;
-        final int fullscreenDiff = fullscreenVisibility ^ mLastFullscreenStackSysUiFlags;
-        final int dockedDiff = dockedVisibility ^ mLastDockedStackSysUiFlags;
-        final boolean needsMenu = win.getNeedsMenuLw(mTopFullscreenOpaqueWindowState);
-        if (diff == 0 && fullscreenDiff == 0 && dockedDiff == 0 && mLastFocusNeedsMenu == needsMenu
-                && mFocusedApp == win.getAppToken()
-                && mLastNonDockedStackBounds.equals(mNonDockedStackBounds)
-                && mLastDockedStackBounds.equals(mDockedStackBounds)) {
-            return 0;
-        }
-        mLastSystemUiFlags = visibility;
-        mLastFullscreenStackSysUiFlags = fullscreenVisibility;
-        mLastDockedStackSysUiFlags = dockedVisibility;
-        mLastFocusNeedsMenu = needsMenu;
-        mFocusedApp = win.getAppToken();
-        final Rect fullscreenStackBounds = new Rect(mNonDockedStackBounds);
-        final Rect dockedStackBounds = new Rect(mDockedStackBounds);
-        mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    StatusBarManagerInternal statusbar = getStatusBarManagerInternal();
-                    if (statusbar != null) {
-                        statusbar.setSystemUiVisibility(visibility, fullscreenVisibility,
-                                dockedVisibility, 0xffffffff, fullscreenStackBounds,
-                                dockedStackBounds, win.toString());
-                        statusbar.topAppWindowChanged(needsMenu);
-                    }
-                }
-            });
-        return diff;
-    }
-
-    private int updateLightStatusBarLw(int vis, WindowState opaque, WindowState opaqueOrDimming) {
-        final boolean onKeyguard = isStatusBarKeyguard() && !mKeyguardOccluded;
-        final WindowState statusColorWin = onKeyguard ? mStatusBar : opaqueOrDimming;
-        if (statusColorWin != null && (statusColorWin == opaque || onKeyguard)) {
-            // If the top fullscreen-or-dimming window is also the top fullscreen, respect
-            // its light flag.
-            vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
-            vis |= PolicyControl.getSystemUiVisibility(statusColorWin, null)
-                    & View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
-        } else if (statusColorWin != null && statusColorWin.isDimming()) {
-            // Otherwise if it's dimming, clear the light flag.
-            vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
-        }
-        return vis;
-    }
-
-    @VisibleForTesting
-    @Nullable
-    static WindowState chooseNavigationColorWindowLw(WindowState opaque,
-            WindowState opaqueOrDimming, WindowState imeWindow,
-            @NavigationBarPosition int navBarPosition) {
-        // If the IME window is visible and FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS is set, then IME
-        // window can be navigation color window.
-        final boolean imeWindowCanNavColorWindow = imeWindow != null
-                && imeWindow.isVisibleLw()
-                && navBarPosition == NAV_BAR_BOTTOM
-                && (PolicyControl.getWindowFlags(imeWindow, null)
-                & WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0;
-
-        if (opaque != null && opaqueOrDimming == opaque) {
-            // If the top fullscreen-or-dimming window is also the top fullscreen, respect it
-            // unless IME window is also eligible, since currently the IME window is always show
-            // above the opaque fullscreen app window, regardless of the IME target window.
-            // TODO(b/31559891): Maybe we need to revisit this condition once b/31559891 is fixed.
-            return imeWindowCanNavColorWindow ? imeWindow : opaque;
-        }
-
-        if (opaqueOrDimming == null || !opaqueOrDimming.isDimming()) {
-            // No dimming window is involved. Determine the result only with the IME window.
-            return imeWindowCanNavColorWindow ? imeWindow : null;
-        }
-
-        if (!imeWindowCanNavColorWindow) {
-            // No IME window is involved. Determine the result only with opaqueOrDimming.
-            return opaqueOrDimming;
-        }
-
-        // The IME window and the dimming window are competing.  Check if the dimming window can be
-        // IME target or not.
-        if (LayoutParams.mayUseInputMethod(PolicyControl.getWindowFlags(opaqueOrDimming, null))) {
-            // The IME window is above the dimming window.
-            return imeWindow;
-        } else {
-            // The dimming window is above the IME window.
-            return opaqueOrDimming;
-        }
-    }
-
-    @VisibleForTesting
-    static int updateLightNavigationBarLw(int vis, WindowState opaque, WindowState opaqueOrDimming,
-            WindowState imeWindow, WindowState navColorWin) {
-
-        if (navColorWin != null) {
-            if (navColorWin == imeWindow || navColorWin == opaque) {
-                // Respect the light flag.
-                vis &= ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
-                vis |= PolicyControl.getSystemUiVisibility(navColorWin, null)
-                        & View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
-            } else if (navColorWin == opaqueOrDimming && navColorWin.isDimming()) {
-                // Clear the light flag for dimming window.
-                vis &= ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
-            }
-        }
-        return vis;
-    }
-
-    private int updateSystemBarsLw(WindowState win, int oldVis, int vis) {
-        final boolean dockedStackVisible =
-                mWindowManagerInternal.isStackVisible(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
-        final boolean freeformStackVisible =
-                mWindowManagerInternal.isStackVisible(WINDOWING_MODE_FREEFORM);
-        final boolean resizing = mWindowManagerInternal.isDockedDividerResizing();
-
-        // We need to force system bars when the docked stack is visible, when the freeform stack
-        // is visible but also when we are resizing for the transitions when docked stack
-        // visibility changes.
-        mForceShowSystemBars = dockedStackVisible || freeformStackVisible || resizing;
-        final boolean forceOpaqueStatusBar = mForceShowSystemBars && !mForceStatusBarFromKeyguard;
-
-        // apply translucent bar vis flags
-        WindowState fullscreenTransWin = isStatusBarKeyguard() && !mKeyguardOccluded
-                ? mStatusBar
-                : mTopFullscreenOpaqueWindowState;
-        vis = mStatusBarController.applyTranslucentFlagLw(fullscreenTransWin, vis, oldVis);
-        vis = mNavigationBarController.applyTranslucentFlagLw(fullscreenTransWin, vis, oldVis);
-        final int dockedVis = mStatusBarController.applyTranslucentFlagLw(
-                mTopDockedOpaqueWindowState, 0, 0);
-
-        final boolean fullscreenDrawsStatusBarBackground =
-                drawsStatusBarBackground(vis, mTopFullscreenOpaqueWindowState);
-        final boolean dockedDrawsStatusBarBackground =
-                drawsStatusBarBackground(dockedVis, mTopDockedOpaqueWindowState);
-
-        // prevent status bar interaction from clearing certain flags
-        int type = win.getAttrs().type;
-        boolean statusBarHasFocus = type == TYPE_STATUS_BAR;
-        if (statusBarHasFocus && !isStatusBarKeyguard()) {
-            int flags = View.SYSTEM_UI_FLAG_FULLSCREEN
-                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
-                    | View.SYSTEM_UI_FLAG_IMMERSIVE
-                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
-                    | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
-            if (mKeyguardOccluded) {
-                flags |= View.STATUS_BAR_TRANSLUCENT | View.NAVIGATION_BAR_TRANSLUCENT;
-            }
-            vis = (vis & ~flags) | (oldVis & flags);
-        }
-
-        if (fullscreenDrawsStatusBarBackground && dockedDrawsStatusBarBackground) {
-            vis |= View.STATUS_BAR_TRANSPARENT;
-            vis &= ~View.STATUS_BAR_TRANSLUCENT;
-        } else if ((!areTranslucentBarsAllowed() && fullscreenTransWin != mStatusBar)
-                || forceOpaqueStatusBar) {
-            vis &= ~(View.STATUS_BAR_TRANSLUCENT | View.STATUS_BAR_TRANSPARENT);
-        }
-
-        vis = configureNavBarOpacity(vis, dockedStackVisible, freeformStackVisible, resizing);
-
-        // update status bar
-        boolean immersiveSticky =
-                (vis & View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) != 0;
-        final boolean hideStatusBarWM =
-                mTopFullscreenOpaqueWindowState != null
-                && (PolicyControl.getWindowFlags(mTopFullscreenOpaqueWindowState, null)
-                        & WindowManager.LayoutParams.FLAG_FULLSCREEN) != 0;
-        final boolean hideStatusBarSysui =
-                (vis & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0;
-        final boolean hideNavBarSysui =
-                (vis & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0;
-
-        final boolean transientStatusBarAllowed = mStatusBar != null
-                && (statusBarHasFocus || (!mForceShowSystemBars
-                        && (hideStatusBarWM || (hideStatusBarSysui && immersiveSticky))));
-
-        final boolean transientNavBarAllowed = mNavigationBar != null
-                && !mForceShowSystemBars && hideNavBarSysui && immersiveSticky;
-
-        final long now = SystemClock.uptimeMillis();
-        final boolean pendingPanic = mPendingPanicGestureUptime != 0
-                && now - mPendingPanicGestureUptime <= PANIC_GESTURE_EXPIRATION;
-        if (pendingPanic && hideNavBarSysui && !isStatusBarKeyguard()
-                && mDefaultDisplayPolicy.isKeyguardDrawComplete()) {
-            // The user performed the panic gesture recently, we're about to hide the bars,
-            // we're no longer on the Keyguard and the screen is ready. We can now request the bars.
-            mPendingPanicGestureUptime = 0;
-            mStatusBarController.showTransient();
-            if (!isNavBarEmpty(vis)) {
-                mNavigationBarController.showTransient();
-            }
-        }
-
-        final boolean denyTransientStatus = mStatusBarController.isTransientShowRequested()
-                && !transientStatusBarAllowed && hideStatusBarSysui;
-        final boolean denyTransientNav = mNavigationBarController.isTransientShowRequested()
-                && !transientNavBarAllowed;
-        if (denyTransientStatus || denyTransientNav || mForceShowSystemBars) {
-            // clear the clearable flags instead
-            clearClearableFlagsLw();
-            vis &= ~View.SYSTEM_UI_CLEARABLE_FLAGS;
-        }
-
-        final boolean immersive = (vis & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0;
-        immersiveSticky = (vis & View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) != 0;
-        final boolean navAllowedHidden = immersive || immersiveSticky;
-
-        if (hideNavBarSysui && !navAllowedHidden
-                && getWindowLayerLw(win) > getWindowLayerFromTypeLw(TYPE_INPUT_CONSUMER)) {
-            // We can't hide the navbar from this window otherwise the input consumer would not get
-            // the input events.
-            vis = (vis & ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
-        }
-
-        vis = mStatusBarController.updateVisibilityLw(transientStatusBarAllowed, oldVis, vis);
-
-        // update navigation bar
-        boolean oldImmersiveMode = isImmersiveMode(oldVis);
-        boolean newImmersiveMode = isImmersiveMode(vis);
-        if (win != null && oldImmersiveMode != newImmersiveMode) {
-            final String pkg = win.getOwningPackage();
-            mImmersiveModeConfirmation.immersiveModeChangedLw(pkg, newImmersiveMode,
-                    isUserSetupComplete(), isNavBarEmpty(win.getSystemUiVisibility()));
-        }
-
-        vis = mNavigationBarController.updateVisibilityLw(transientNavBarAllowed, oldVis, vis);
-
-        final WindowState navColorWin = chooseNavigationColorWindowLw(
-                mTopFullscreenOpaqueWindowState, mTopFullscreenOpaqueOrDimmingWindowState,
-                mWindowManagerFuncs.getInputMethodWindowLw(), mNavigationBarPosition);
-        vis = updateLightNavigationBarLw(vis, mTopFullscreenOpaqueWindowState,
-                mTopFullscreenOpaqueOrDimmingWindowState,
-                mWindowManagerFuncs.getInputMethodWindowLw(), navColorWin);
-
-        return vis;
-    }
-
-    private boolean drawsStatusBarBackground(int vis, WindowState win) {
-        if (!mStatusBarController.isTransparentAllowed(win)) {
-            return false;
-        }
-        if (win == null) {
-            return true;
-        }
-
-        final boolean drawsSystemBars =
-                (win.getAttrs().flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0;
-        final boolean forceDrawsSystemBars =
-                (win.getAttrs().privateFlags & PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND) != 0;
-
-        return forceDrawsSystemBars || drawsSystemBars && (vis & View.STATUS_BAR_TRANSLUCENT) == 0;
-    }
-
-    /**
-     * @return the current visibility flags with the nav-bar opacity related flags toggled based
-     *         on the nav bar opacity rules chosen by {@link #mNavBarOpacityMode}.
-     */
-    private int configureNavBarOpacity(int visibility, boolean dockedStackVisible,
-            boolean freeformStackVisible, boolean isDockedDividerResizing) {
-        if (mNavBarOpacityMode == NAV_BAR_OPAQUE_WHEN_FREEFORM_OR_DOCKED) {
-            if (dockedStackVisible || freeformStackVisible || isDockedDividerResizing) {
-                visibility = setNavBarOpaqueFlag(visibility);
-            }
-        } else if (mNavBarOpacityMode == NAV_BAR_TRANSLUCENT_WHEN_FREEFORM_OPAQUE_OTHERWISE) {
-            if (isDockedDividerResizing) {
-                visibility = setNavBarOpaqueFlag(visibility);
-            } else if (freeformStackVisible) {
-                visibility = setNavBarTranslucentFlag(visibility);
-            } else {
-                visibility = setNavBarOpaqueFlag(visibility);
-            }
-        }
-
-        if (!areTranslucentBarsAllowed()) {
-            visibility &= ~View.NAVIGATION_BAR_TRANSLUCENT;
-        }
-        return visibility;
-    }
-
-    private int setNavBarOpaqueFlag(int visibility) {
-        return visibility &= ~(View.NAVIGATION_BAR_TRANSLUCENT | View.NAVIGATION_BAR_TRANSPARENT);
-    }
-
-    private int setNavBarTranslucentFlag(int visibility) {
-        visibility &= ~View.NAVIGATION_BAR_TRANSPARENT;
-        return visibility |= View.NAVIGATION_BAR_TRANSLUCENT;
-    }
-
-    private void clearClearableFlagsLw() {
-        int newVal = mResettingSystemUiFlags | View.SYSTEM_UI_CLEARABLE_FLAGS;
-        if (newVal != mResettingSystemUiFlags) {
-            mResettingSystemUiFlags = newVal;
-            mWindowManagerFuncs.reevaluateStatusBarVisibility();
-        }
-    }
-
-    private boolean isImmersiveMode(int vis) {
-        final int flags = View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
-        return mNavigationBar != null
-                && (vis & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0
-                && (vis & flags) != 0
-                && canHideNavigationBar();
-    }
-
-    private static boolean isNavBarEmpty(int systemUiFlags) {
-        final int disableNavigationBar = (View.STATUS_BAR_DISABLE_HOME
-                | View.STATUS_BAR_DISABLE_BACK
-                | View.STATUS_BAR_DISABLE_RECENT);
-
-        return (systemUiFlags & disableNavigationBar) == disableNavigationBar;
-    }
-
-    /**
-     * @return whether the navigation or status bar can be made translucent
-     *
-     * This should return true unless touch exploration is not enabled or
-     * R.boolean.config_enableTranslucentDecor is false.
-     */
-    private boolean areTranslucentBarsAllowed() {
-        return mTranslucentDecorEnabled;
-    }
-
     // Use this instead of checking config_showNavigationBar so that it can be consistently
     // overridden by qemu.hw.mainkeys in the emulator.
     @Override
@@ -7919,44 +5192,8 @@
     }
 
     @Override
-    public boolean shouldRotateSeamlessly(DisplayRotation displayRotation, int oldRotation,
-            int newRotation) {
-        // For the upside down rotation we don't rotate seamlessly as the navigation
-        // bar moves position.
-        // Note most apps (using orientation:sensor or user as opposed to fullSensor)
-        // will not enter the reverse portrait orientation, so actually the
-        // orientation won't change at all.
-        if (oldRotation == displayRotation.getUpsideDownRotation()
-                || newRotation == displayRotation.getUpsideDownRotation()) {
-            return false;
-        }
-        // If the navigation bar can't change sides, then it will
-        // jump when we change orientations and we don't rotate
-        // seamlessly.
-        if (!displayRotation.getDisplayPolicy().navigationBarCanMove()) {
-            return false;
-        }
-
-        final WindowState w = mTopFullscreenOpaqueWindowState;
-        if (w != mFocusedWindow) {
-            return false;
-        }
-
-        // We only enable seamless rotation if the top window has requested
-        // it and is in the fullscreen opaque state. Seamless rotation
-        // requires freezing various Surface states and won't work well
-        // with animations, so we disable it in the animation case for now.
-        if (w != null && !w.isAnimatingLw() &&
-                w.getAttrs().rotationAnimation == ROTATION_ANIMATION_SEAMLESS) {
-            return true;
-        }
-        return false;
-    }
-
-    @Override
     public void writeToProto(ProtoOutputStream proto, long fieldId) {
         final long token = proto.start(fieldId);
-        proto.write(LAST_SYSTEM_UI_FLAGS, mLastSystemUiFlags);
         proto.write(ROTATION_MODE, mDefaultDisplayRotation.getUserRotationMode());
         proto.write(ROTATION, mDefaultDisplayRotation.getUserRotation());
         proto.write(ORIENTATION, mDefaultDisplayRotation.getCurrentAppOrientation());
@@ -7964,30 +5201,9 @@
         proto.write(KEYGUARD_DRAW_COMPLETE, mDefaultDisplayPolicy.isKeyguardDrawComplete());
         proto.write(WINDOW_MANAGER_DRAW_COMPLETE,
                 mDefaultDisplayPolicy.isWindowManagerDrawComplete());
-        if (mFocusedApp != null) {
-            proto.write(FOCUSED_APP_TOKEN, mFocusedApp.toString());
-        }
-        if (mFocusedWindow != null) {
-            mFocusedWindow.writeIdentifierToProto(proto, FOCUSED_WINDOW);
-        }
-        if (mTopFullscreenOpaqueWindowState != null) {
-            mTopFullscreenOpaqueWindowState.writeIdentifierToProto(
-                    proto, TOP_FULLSCREEN_OPAQUE_WINDOW);
-        }
-        if (mTopFullscreenOpaqueOrDimmingWindowState != null) {
-            mTopFullscreenOpaqueOrDimmingWindowState.writeIdentifierToProto(
-                    proto, TOP_FULLSCREEN_OPAQUE_OR_DIMMING_WINDOW);
-        }
         proto.write(KEYGUARD_OCCLUDED, mKeyguardOccluded);
         proto.write(KEYGUARD_OCCLUDED_CHANGED, mKeyguardOccludedChanged);
         proto.write(KEYGUARD_OCCLUDED_PENDING, mPendingKeyguardOccluded);
-        proto.write(FORCE_STATUS_BAR, mForceStatusBar);
-        proto.write(FORCE_STATUS_BAR_FROM_KEYGUARD, mForceStatusBarFromKeyguard);
-        mStatusBarController.writeToProto(proto, STATUS_BAR);
-        mNavigationBarController.writeToProto(proto, NAVIGATION_BAR);
-        if (mDefaultOrientationListener != null) {
-            mDefaultOrientationListener.writeToProto(proto, ORIENTATION_LISTENER);
-        }
         if (mKeyguardDelegate != null) {
             mKeyguardDelegate.writeToProto(proto, KEYGUARD_DELEGATE);
         }
@@ -8001,19 +5217,6 @@
                 pw.print(" mSystemBooted="); pw.println(mSystemBooted);
         pw.print(prefix); pw.print("mCameraLensCoverState=");
                 pw.println(WindowManagerFuncs.cameraLensStateToString(mCameraLensCoverState));
-        if (mLastSystemUiFlags != 0 || mResettingSystemUiFlags != 0
-                || mForceClearedSystemUiFlags != 0) {
-            pw.print(prefix); pw.print("mLastSystemUiFlags=0x");
-                    pw.print(Integer.toHexString(mLastSystemUiFlags));
-                    pw.print(" mResettingSystemUiFlags=0x");
-                    pw.print(Integer.toHexString(mResettingSystemUiFlags));
-                    pw.print(" mForceClearedSystemUiFlags=0x");
-                    pw.println(Integer.toHexString(mForceClearedSystemUiFlags));
-        }
-        if (mLastFocusNeedsMenu) {
-            pw.print(prefix); pw.print("mLastFocusNeedsMenu=");
-                    pw.println(mLastFocusNeedsMenu);
-        }
         pw.print(prefix); pw.print("mWakeGestureEnabledSetting=");
                 pw.println(mWakeGestureEnabledSetting);
 
@@ -8076,50 +5279,11 @@
             final int key = mDisplayHomeButtonHandlers.keyAt(i);
             pw.println(mDisplayHomeButtonHandlers.get(key));
         }
-        pw.print(prefix); pw.print("mDockLayer="); pw.print(mDockLayer);
-                pw.print(" mStatusBarLayer="); pw.println(mStatusBarLayer);
-        pw.print(prefix); pw.print("mShowingDream="); pw.print(mShowingDream);
-                pw.print(" mDreamingLockscreen="); pw.print(mDreamingLockscreen);
-                pw.print(" mDreamingSleepToken="); pw.println(mDreamingSleepToken);
-        if (mStatusBar != null) {
-            pw.print(prefix); pw.print("mStatusBar=");
-                    pw.print(mStatusBar); pw.print(" isStatusBarKeyguard=");
-                    pw.println(isStatusBarKeyguard());
-        }
-        if (mNavigationBar != null) {
-            pw.print(prefix); pw.print("mNavigationBar=");
-                    pw.println(mNavigationBar);
-        }
-        if (mFocusedWindow != null) {
-            pw.print(prefix); pw.print("mFocusedWindow=");
-                    pw.println(mFocusedWindow);
-        }
-        if (mFocusedApp != null) {
-            pw.print(prefix); pw.print("mFocusedApp=");
-                    pw.println(mFocusedApp);
-        }
-        if (mTopFullscreenOpaqueWindowState != null) {
-            pw.print(prefix); pw.print("mTopFullscreenOpaqueWindowState=");
-                    pw.println(mTopFullscreenOpaqueWindowState);
-        }
-        if (mTopFullscreenOpaqueOrDimmingWindowState != null) {
-            pw.print(prefix); pw.print("mTopFullscreenOpaqueOrDimmingWindowState=");
-                    pw.println(mTopFullscreenOpaqueOrDimmingWindowState);
-        }
-        if (mForcingShowNavBar) {
-            pw.print(prefix); pw.print("mForcingShowNavBar=");
-                    pw.println(mForcingShowNavBar); pw.print( "mForcingShowNavBarLayer=");
-                    pw.println(mForcingShowNavBarLayer);
-        }
-        pw.print(prefix); pw.print("mTopIsFullscreen="); pw.print(mTopIsFullscreen);
-                pw.print(" mKeyguardOccluded="); pw.println(mKeyguardOccluded);
-        pw.print(prefix);
-                pw.print("mKeyguardOccludedChanged="); pw.print(mKeyguardOccludedChanged);
+        pw.print(prefix); pw.print("mKeyguardOccluded="); pw.print(mKeyguardOccluded);
+                pw.print(" mKeyguardOccludedChanged="); pw.print(mKeyguardOccludedChanged);
                 pw.print(" mPendingKeyguardOccluded="); pw.println(mPendingKeyguardOccluded);
-        pw.print(prefix); pw.print("mForceStatusBar="); pw.print(mForceStatusBar);
-                pw.print(" mForceStatusBarFromKeyguard=");
-                pw.println(mForceStatusBarFromKeyguard);
-        pw.print(prefix); pw.print("mAllowLockscreenWhenOn="); pw.print(mAllowLockscreenWhenOn);
+        pw.print(prefix); pw.print("mAllowLockscreenWhenOnDisplays=");
+                pw.print(!mAllowLockscreenWhenOnDisplays.isEmpty());
                 pw.print(" mLockScreenTimeout="); pw.print(mLockScreenTimeout);
                 pw.print(" mLockScreenTimerActive="); pw.println(mLockScreenTimerActive);
         if (mHasFeatureLeanback) {
@@ -8132,16 +5296,10 @@
         }
 
         mGlobalKeyManager.dump(prefix, pw);
-        mStatusBarController.dump(pw, prefix);
-        mNavigationBarController.dump(pw, prefix);
-        PolicyControl.dump(prefix, pw);
 
         if (mWakeGestureListener != null) {
             mWakeGestureListener.dump(pw, prefix);
         }
-        if (mDefaultOrientationListener != null) {
-            mDefaultOrientationListener.dump(pw, prefix);
-        }
         if (mBurnInProtectionHelper != null) {
             mBurnInProtectionHelper.dump(prefix, pw);
         }
@@ -8303,11 +5461,6 @@
     }
 
     @Override
-    public void onLockTaskStateChangedLw(int lockTaskState) {
-        mImmersiveModeConfirmation.onLockTaskModeChangedLw(lockTaskState);
-    }
-
-    @Override
     public boolean setAodShowing(boolean aodShowing) {
         if (mAodShowing != aodShowing) {
             mAodShowing = aodShowing;
@@ -8315,4 +5468,40 @@
         }
         return false;
     }
+
+    private class HdmiVideoExtconUEventObserver extends ExtconStateObserver<Boolean> {
+        private static final String HDMI_EXIST = "HDMI=1";
+        private final ExtconInfo mHdmi = new ExtconInfo("hdmi");
+
+        private boolean init() {
+            boolean plugged = false;
+            try {
+                plugged = parseStateFromFile(mHdmi);
+            } catch (FileNotFoundException e) {
+                Slog.w(TAG, mHdmi.getStatePath()
+                        + " not found while attempting to determine initial state", e);
+            } catch (IOException e) {
+                Slog.e(
+                        TAG,
+                        "Error reading " + mHdmi.getStatePath()
+                                + " while attempting to determine initial state",
+                        e);
+            }
+            startObserving(mHdmi);
+            return plugged;
+        }
+
+        @Override
+        public void updateState(ExtconInfo extconInfo, String eventName, Boolean state) {
+            mDefaultDisplayPolicy.setHdmiPlugged(state);
+        }
+
+        @Override
+        public Boolean parseState(ExtconInfo extconIfno, String state) {
+            // extcon event state changes from kernel4.9
+            // new state will be like STATE=HDMI=1
+            return state.contains(HDMI_EXIST);
+        }
+    }
+
 }
diff --git a/services/core/java/com/android/server/policy/StatusBarController.java b/services/core/java/com/android/server/policy/StatusBarController.java
deleted file mode 100644
index e6e4d7f..0000000
--- a/services/core/java/com/android/server/policy/StatusBarController.java
+++ /dev/null
@@ -1,127 +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 com.android.server.policy;
-
-import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
-import static android.view.WindowManager.LayoutParams.MATCH_PARENT;
-import static com.android.server.wm.WindowManagerInternal.AppTransitionListener;
-
-import android.app.StatusBarManager;
-import android.os.IBinder;
-import android.os.SystemClock;
-import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.AnimationSet;
-import android.view.animation.Interpolator;
-import android.view.animation.TranslateAnimation;
-
-import com.android.server.LocalServices;
-import com.android.server.statusbar.StatusBarManagerInternal;
-
-/**
- * Implements status bar specific behavior.
- */
-public class StatusBarController extends BarController {
-
-    private final AppTransitionListener mAppTransitionListener
-            = new AppTransitionListener() {
-
-        @Override
-        public void onAppTransitionPendingLocked() {
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    StatusBarManagerInternal statusbar = getStatusBarInternal();
-                    if (statusbar != null) {
-                        statusbar.appTransitionPending();
-                    }
-                }
-            });
-        }
-
-        @Override
-        public int onAppTransitionStartingLocked(int transit, IBinder openToken,
-                IBinder closeToken, long duration, long statusBarAnimationStartTime,
-                long statusBarAnimationDuration) {
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    StatusBarManagerInternal statusbar = getStatusBarInternal();
-                    if (statusbar != null) {
-                        statusbar.appTransitionStarting(statusBarAnimationStartTime,
-                                statusBarAnimationDuration);
-                    }
-                }
-            });
-            return 0;
-        }
-
-        @Override
-        public void onAppTransitionCancelledLocked(int transit) {
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    StatusBarManagerInternal statusbar = getStatusBarInternal();
-                    if (statusbar != null) {
-                        statusbar.appTransitionCancelled();
-                    }
-                }
-            });
-        }
-
-        @Override
-        public void onAppTransitionFinishedLocked(IBinder token) {
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    StatusBarManagerInternal statusbar = LocalServices.getService(
-                            StatusBarManagerInternal.class);
-                    if (statusbar != null) {
-                        statusbar.appTransitionFinished();
-                    }
-                }
-            });
-        }
-    };
-
-    public StatusBarController() {
-        super("StatusBar",
-                View.STATUS_BAR_TRANSIENT,
-                View.STATUS_BAR_UNHIDE,
-                View.STATUS_BAR_TRANSLUCENT,
-                StatusBarManager.WINDOW_STATUS_BAR,
-                FLAG_TRANSLUCENT_STATUS,
-                View.STATUS_BAR_TRANSPARENT);
-    }
-
-
-    public void setTopAppHidesStatusBar(boolean hidesStatusBar) {
-        StatusBarManagerInternal statusbar = getStatusBarInternal();
-        if (statusbar != null) {
-            statusbar.setTopAppHidesStatusBar(hidesStatusBar);
-        }
-    }
-
-    @Override
-    protected boolean skipAnimation() {
-        return mWin.getAttrs().height == MATCH_PARENT;
-    }
-
-    public AppTransitionListener getAppTransitionListener() {
-        return mAppTransitionListener;
-    }
-}
diff --git a/services/core/java/com/android/server/policy/WindowManagerPolicy.java b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
index e1c4acf..3d474e3 100644
--- a/services/core/java/com/android/server/policy/WindowManagerPolicy.java
+++ b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
@@ -65,7 +65,6 @@
 
 import android.annotation.IntDef;
 import android.annotation.Nullable;
-import android.app.ActivityManager;
 import android.app.WindowConfiguration;
 import android.content.Context;
 import android.content.res.CompatibilityInfo;
@@ -78,7 +77,6 @@
 import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
 import android.view.Display;
-import android.view.DisplayCutout;
 import android.view.IApplicationToken;
 import android.view.IWindowManager;
 import android.view.InputEventReceiver;
@@ -90,7 +88,6 @@
 
 import com.android.internal.policy.IKeyguardDismissCallback;
 import com.android.internal.policy.IShortcutService;
-import com.android.server.wm.DisplayFrames;
 import com.android.server.wm.DisplayRotation;
 import com.android.server.wm.WindowFrames;
 
@@ -173,11 +170,6 @@
     void onKeyguardOccludedChangedLw(boolean occluded);
 
     /**
-     * Called when the resource overlays change.
-     */
-    default void onOverlayChangedLw(DisplayContentInfo displayContentInfo) {}
-
-    /**
      * Interface to the Window Manager state associated with a particular
      * window.  You can hold on to an instance of this interface from the call
      * to prepareAddWindow() until removeWindow().
@@ -526,11 +518,6 @@
         public static final int CAMERA_LENS_COVERED = 1;
 
         /**
-         * Ask the window manager to re-evaluate the system UI flags.
-         */
-        public void reevaluateStatusBarVisibility();
-
-        /**
          * Add a input consumer which will consume all input events going to any window below it.
          */
         public InputConsumer createInputConsumer(Looper looper, String name,
@@ -573,22 +560,12 @@
         void unregisterPointerEventListener(PointerEventListener listener, int displayId);
 
         /**
-         * @return The content insets of the docked divider window.
-         */
-        int getDockedDividerInsetsLw();
-
-        /**
          * Retrieves the {@param outBounds} from the stack matching the {@param windowingMode} and
          * {@param activityType}.
          */
         void getStackBounds(int windowingMode, int activityType, Rect outBounds);
 
         /**
-         * Notifies window manager that {@link #isShowingDreamLw} has changed.
-         */
-        void notifyShowingDreamChanged();
-
-        /**
          * @return The currently active input method window.
          */
         WindowState getInputMethodWindowLw();
@@ -648,7 +625,15 @@
          */
         void onKeyguardShowingAndNotOccludedChanged();
 
-        DisplayContentInfo getDefaultDisplayContentInfo();
+        /**
+         * Notifies window manager that power key is being pressed.
+         */
+        void onPowerKeyDown(boolean isScreenOn);
+
+        /**
+         * Notifies window manager that user is switched.
+         */
+        void onUserSwitched();
     }
 
     /**
@@ -735,17 +720,6 @@
     public boolean checkShowToOwnerOnly(WindowManager.LayoutParams attrs);
 
     /**
-     * Sanitize the layout parameters coming from a client.  Allows the policy
-     * to do things like ensure that windows of a specific type can't take
-     * input focus.
-     *
-     * @param attrs The window layout parameters to be modified.  These values
-     * are modified in-place.
-     */
-    public void adjustWindowParamsLw(WindowState win, WindowManager.LayoutParams attrs,
-            boolean hasStatusBarServicePermission);
-
-    /**
      * After the window manager has computed the current configuration based
      * on its knowledge of the display and input devices, it gives the policy
      * a chance to adjust the information contained in it.  If you want to
@@ -941,40 +915,6 @@
     public int getMaxWallpaperLayer();
 
     /**
-     * Return the display width available after excluding any screen
-     * decorations that could never be removed in Honeycomb. That is, system bar or
-     * button bar.
-     */
-    public int getNonDecorDisplayWidth(int fullWidth, int fullHeight, int rotation,
-            int uiMode, int displayId, DisplayCutout displayCutout);
-
-    /**
-     * Return the display height available after excluding any screen
-     * decorations that could never be removed in Honeycomb. That is, system bar or
-     * button bar.
-     */
-    public int getNonDecorDisplayHeight(int fullWidth, int fullHeight, int rotation,
-            int uiMode, int displayId, DisplayCutout displayCutout);
-
-    /**
-     * Return the available screen width that we should report for the
-     * configuration.  This must be no larger than
-     * {@link #getNonDecorDisplayWidth(int, int, int, int, int, DisplayCutout)}; it may be smaller
-     * than that to account for more transient decoration like a status bar.
-     */
-    public int getConfigDisplayWidth(int fullWidth, int fullHeight, int rotation,
-            int uiMode, int displayId, DisplayCutout displayCutout);
-
-    /**
-     * Return the available screen height that we should report for the
-     * configuration.  This must be no larger than
-     * {@link #getNonDecorDisplayHeight(int, int, int, int, int, DisplayCutout)}; it may be smaller
-     * than that to account for more transient decoration like a status bar.
-     */
-    public int getConfigDisplayHeight(int fullWidth, int fullHeight, int rotation,
-            int uiMode, int displayId, DisplayCutout displayCutout);
-
-    /**
      * Return whether the given window can become the Keyguard window. Typically returns true for
      * the StatusBar.
      */
@@ -1013,65 +953,11 @@
             int logo, int windowFlags, Configuration overrideConfig, int displayId);
 
     /**
-     * Prepare for a window being added to the window manager.  You can throw an
-     * exception here to prevent the window being added, or do whatever setup
-     * you need to keep track of the window.
+     * Set or clear a window which can behave as the keyguard.
      *
-     * @param win The window being added.
-     * @param attrs The window's LayoutParams.
-     *
-     * @return {@link WindowManagerGlobal#ADD_OKAY} if the add can proceed, else an
-     *         error code to abort the add.
+     * @param win The window which can behave as the keyguard.
      */
-    public int prepareAddWindowLw(WindowState win,
-            WindowManager.LayoutParams attrs);
-
-    /**
-     * Called when a window is being removed from a window manager.  Must not
-     * throw an exception -- clean up as much as possible.
-     *
-     * @param win The window being removed.
-     */
-    public void removeWindowLw(WindowState win);
-
-    /**
-     * Control the animation to run when a window's state changes.  Return a
-     * non-0 number to force the animation to a specific resource ID, or 0
-     * to use the default animation.
-     *
-     * @param win The window that is changing.
-     * @param transit What is happening to the window: {@link #TRANSIT_ENTER},
-     *                {@link #TRANSIT_EXIT}, {@link #TRANSIT_SHOW}, or
-     *                {@link #TRANSIT_HIDE}.
-     *
-     * @return Resource ID of the actual animation to use, or 0 for none.
-     */
-    public int selectAnimationLw(WindowState win, int transit);
-
-    /**
-     * Determine the animation to run for a rotation transition based on the
-     * top fullscreen windows {@link WindowManager.LayoutParams#rotationAnimation}
-     * and whether it is currently fullscreen and frontmost.
-     *
-     * @param anim The exiting animation resource id is stored in anim[0], the
-     * entering animation resource id is stored in anim[1].
-     */
-    public void selectRotationAnimationLw(int anim[]);
-
-    /**
-     * Validate whether the current top fullscreen has specified the same
-     * {@link WindowManager.LayoutParams#rotationAnimation} value as that
-     * being passed in from the previous top fullscreen window.
-     *
-     * @param exitAnimId exiting resource id from the previous window.
-     * @param enterAnimId entering resource id from the previous window.
-     * @param forceDefault For rotation animations only, if true ignore the
-     * animation values and just return false.
-     * @return true if the previous values are still valid, false if they
-     * should be replaced with the default.
-     */
-    public boolean validateRotationAnimationLw(int exitAnimId, int enterAnimId,
-            boolean forceDefault);
+    void setKeyguardCandidateLw(@Nullable WindowState win);
 
     /**
      * Create and return an animation to re-display a window that was force hidden by Keyguard.
@@ -1148,100 +1034,21 @@
     public KeyEvent dispatchUnhandledKey(WindowState win, KeyEvent event, int policyFlags);
 
     /**
-     * Called when layout of the windows is about to start.
+     * Apply the keyguard policy to a specific window.
      *
-     * @param displayFrames frames of the display we are doing layout on.
-     * @param uiMode The current uiMode in configuration.
+     * @param win The window to apply the keyguard policy.
+     * @param imeTarget The current IME target window.
      */
-    default void beginLayoutLw(DisplayFrames displayFrames, int uiMode) {}
+    void applyKeyguardPolicyLw(WindowState win, WindowState imeTarget);
 
     /**
-     * Returns the bottom-most layer of the system decor, above which no policy decor should
-     * be applied.
-     */
-    public int getSystemDecorLayerLw();
-
-    /**
-     * Called for each window attached to the window manager as layout is proceeding. The
-     * implementation of this function must take care of setting the window's frame, either here or
-     * in finishLayout().
+     * Called when the state of allow-lockscreen-when-on of the display is changed. See
+     * {@link WindowManager.LayoutParams#FLAG_ALLOW_LOCK_WHILE_SCREEN_ON}
      *
-     * @param win The window being positioned.
-     * @param attached For sub-windows, the window it is attached to; this
-     *                 window will already have had layoutWindow() called on it
-     *                 so you can use its Rect.  Otherwise null.
-     * @param displayFrames The display frames.
+     * @param displayId The ID of the display.
+     * @param allow Whether the display allows showing lockscreen when it is on.
      */
-    default void layoutWindowLw(
-            WindowState win, WindowState attached, DisplayFrames displayFrames) {}
-
-    /**
-     * Return the layout hints for a newly added window. These values are computed on the
-     * most recent layout, so they are not guaranteed to be correct.
-     *
-     * @param attrs The LayoutParams of the window.
-     * @param taskBounds The bounds of the task this window is on or {@code null} if no task is
-     *                   associated with the window.
-     * @param displayFrames display frames.
-     * @param floatingStack Whether the window's stack is floating.
-     * @param outFrame The frame of the window.
-     * @param outContentInsets The areas covered by system windows, expressed as positive insets.
-     * @param outStableInsets The areas covered by stable system windows irrespective of their
-     *                        current visibility. Expressed as positive insets.
-     * @param outOutsets The areas that are not real display, but we would like to treat as such.
-     * @param outDisplayCutout The area that has been cut away from the display.
-     * @return Whether to always consume the navigation bar.
-     *         See {@link #isNavBarForcedShownLw(WindowState)}.
-     */
-    default boolean getLayoutHintLw(WindowManager.LayoutParams attrs, Rect taskBounds,
-            DisplayFrames displayFrames, boolean floatingStack,
-            Rect outFrame, Rect outContentInsets, Rect outStableInsets, Rect outOutsets,
-            DisplayCutout.ParcelableWrapper outDisplayCutout) {
-        return false;
-    }
-
-    /**
-     * Called following layout of all windows before each window has policy applied.
-     *
-     * @param displayWidth The current full width of the screen.
-     * @param displayHeight The current full height of the screen.
-     */
-    public void beginPostLayoutPolicyLw(int displayWidth, int displayHeight);
-
-    /**
-     * Called following layout of all window to apply policy to each window.
-     *
-     * @param win The window being positioned.
-     * @param attrs The LayoutParams of the window.
-     * @param attached For sub-windows, the window it is attached to. Otherwise null.
-     */
-    public void applyPostLayoutPolicyLw(WindowState win,
-            WindowManager.LayoutParams attrs, WindowState attached, WindowState imeTarget);
-
-    /**
-     * Called following layout of all windows and after policy has been applied
-     * to each window. If in this function you do
-     * something that may have modified the animation state of another window,
-     * be sure to return non-zero in order to perform another pass through layout.
-     *
-     * @return Return any bit set of {@link #FINISH_LAYOUT_REDO_LAYOUT},
-     * {@link #FINISH_LAYOUT_REDO_CONFIG}, {@link #FINISH_LAYOUT_REDO_WALLPAPER},
-     * or {@link #FINISH_LAYOUT_REDO_ANIM}.
-     */
-    public int finishPostLayoutPolicyLw();
-
-    /**
-     * Return true if it is okay to perform animations for an app transition
-     * that is about to occur. You may return false for this if, for example,
-     * the dream window is currently displayed so the switch should happen
-     * immediately.
-     */
-    public boolean allowAppAnimationsLw();
-
-    /**
-     * A new window has been focused.
-     */
-    public int focusChangedLw(WindowState lastFocus, WindowState newFocus);
+    void setAllowLockscreenWhenOn(int displayId, boolean allow);
 
     /**
      * Called when the device has started waking up.
@@ -1430,8 +1237,6 @@
      */
     public boolean isKeyguardDrawnLw();
 
-    public boolean isShowingDreamLw();
-
     /**
      * Called when the system is mostly done booting to set whether
      * the system should go into safe mode.
@@ -1491,14 +1296,6 @@
     public void keepScreenOnStoppedLw();
 
     /**
-     * Called when a new system UI visibility is being reported, allowing
-     * the policy to adjust what is actually reported.
-     * @param visibility The raw visibility reported by the status bar.
-     * @return The new desired visibility.
-     */
-    public int adjustSystemUiVisibilityLw(int visibility);
-
-    /**
      * Called by System UI to notify of changes to the visibility of Recents.
      */
     public void setRecentsVisibilityLw(boolean visible);
@@ -1548,6 +1345,16 @@
     public void showGlobalActions();
 
     /**
+     * Returns whether the user setup is complete.
+     */
+    boolean isUserSetupComplete();
+
+    /**
+     * Returns the current UI mode.
+     */
+    int getUiMode();
+
+    /**
      * Called when the current user changes. Guaranteed to be called before the broadcast
      * of the new user id is made to all listeners.
      *
@@ -1602,69 +1409,6 @@
     public void startKeyguardExitAnimation(long startTime, long fadeoutDuration);
 
     /**
-     * Calculates the stable insets without running a layout.
-     *
-     * @param displayRotation the current display rotation
-     * @param displayWidth the current display width
-     * @param displayHeight the current display height
-     * @param displayCutout the current display cutout
-     * @param outInsets the insets to return
-     */
-    public void getStableInsetsLw(int displayRotation, int displayWidth, int displayHeight,
-            DisplayCutout displayCutout, Rect outInsets);
-
-
-    /**
-     * @return true if the navigation bar is forced to stay visible
-     */
-    public boolean isNavBarForcedShownLw(WindowState win);
-
-    /**
-     * @return The side of the screen where navigation bar is positioned.
-     * @see #NAV_BAR_LEFT
-     * @see #NAV_BAR_RIGHT
-     * @see #NAV_BAR_BOTTOM
-     */
-    @NavigationBarPosition
-    int getNavBarPosition();
-
-    /**
-     * Calculates the insets for the areas that could never be removed in Honeycomb, i.e. system
-     * bar or button bar. See {@link #getNonDecorDisplayWidth}.
-     *
-     * @param displayRotation the current display rotation
-     * @param displayWidth the current display width
-     * @param displayHeight the current display height
-     * @param displayCutout the current display cutout
-     * @param outInsets the insets to return
-     */
-    public void getNonDecorInsetsLw(int displayRotation, int displayWidth, int displayHeight,
-            DisplayCutout displayCutout, Rect outInsets);
-
-    /**
-     * @param displayRotation the current display rotation
-     * @param displayWidth the current display width
-     * @param displayHeight the current display height
-     * @param dockSide the dockside asking if allowed
-     * @param originalDockSide the side that was original docked to in split screen
-     * @return True if a specified {@param dockSide} is allowed on the current device, or false
-     *         otherwise. It is guaranteed that at least one dock side for a particular orientation
-     *         is allowed, so for example, if DOCKED_RIGHT is not allowed, DOCKED_LEFT is allowed.
-     *         If navigation bar is movable then the docked side would bias towards the
-     *         {@param originalDockSide}.
-     */
-    public boolean isDockSideAllowed(int dockSide, int originalDockSide, int displayWidth,
-            int displayHeight, int displayRotation);
-
-    /**
-     * Called when the configuration has changed, and it's safe to load new values from resources.
-     */
-    public void onConfigurationChanged(DisplayContentInfo displayContentInfo);
-
-    public boolean shouldRotateSeamlessly(DisplayRotation displayRotation,
-            int oldRotation, int newRotation);
-
-    /**
      * Called when System UI has been started.
      */
     void onSystemUiStarted();
@@ -1697,17 +1441,6 @@
     public void requestUserActivityNotification();
 
     /**
-     * Called when the state of lock task mode changes. This should be used to disable immersive
-     * mode confirmation.
-     *
-     * @param lockTaskState the new lock task mode state. One of
-     *                      {@link ActivityManager#LOCK_TASK_MODE_NONE},
-     *                      {@link ActivityManager#LOCK_TASK_MODE_LOCKED},
-     *                      {@link ActivityManager#LOCK_TASK_MODE_PINNED}.
-     */
-    void onLockTaskStateChangedLw(int lockTaskState);
-
-    /**
      * Updates the flag about whether AOD is showing.
      *
      * @return whether the value was changed.
diff --git a/services/core/java/com/android/server/power/ThermalManagerService.java b/services/core/java/com/android/server/power/ThermalManagerService.java
index 812fd82..07bebad 100644
--- a/services/core/java/com/android/server/power/ThermalManagerService.java
+++ b/services/core/java/com/android/server/power/ThermalManagerService.java
@@ -16,6 +16,7 @@
 
 package com.android.server.power;
 
+import android.annotation.Nullable;
 import android.content.Context;
 import android.hardware.thermal.V1_0.ThermalStatus;
 import android.hardware.thermal.V1_0.ThermalStatusCode;
@@ -26,12 +27,20 @@
 import android.os.HwBinder;
 import android.os.IThermalEventListener;
 import android.os.IThermalService;
+import android.os.IThermalStatusListener;
 import android.os.PowerManager;
+import android.os.Process;
 import android.os.RemoteCallbackList;
 import android.os.RemoteException;
+import android.os.ResultReceiver;
+import android.os.ShellCallback;
+import android.os.ShellCommand;
+import android.os.Temperature;
+import android.util.ArrayMap;
 import android.util.Slog;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.DumpUtils;
 import com.android.server.FgThread;
 import com.android.server.SystemService;
@@ -39,6 +48,7 @@
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 import java.util.NoSuchElementException;
 
@@ -51,210 +61,164 @@
 public class ThermalManagerService extends SystemService {
     private static final String TAG = ThermalManagerService.class.getSimpleName();
 
-    /** Registered observers of the thermal changed events. Cookie is used to store type */
+    /** Lock to protect listen list. */
+    private final Object mLock = new Object();
+
+    /**
+     * Registered observers of the thermal events. Cookie is used to store type as Integer, null
+     * means no filter.
+     */
     @GuardedBy("mLock")
     private final RemoteCallbackList<IThermalEventListener> mThermalEventListeners =
             new RemoteCallbackList<>();
 
-    /** Lock to protect HAL handles and listen list. */
-    private final Object mLock = new Object();
-
-    /** Newly registered callback. */
+    /** Registered observers of the thermal status. */
     @GuardedBy("mLock")
-    private IThermalEventListener mNewListenerCallback = null;
+    private final RemoteCallbackList<IThermalStatusListener> mThermalStatusListeners =
+            new RemoteCallbackList<>();
 
-    /** Newly registered callback type, null means not filter type. */
+    /** Current thermal status */
     @GuardedBy("mLock")
-    private Integer mNewListenerType = null;
+    private int mStatus;
+
+    /** If override status takes effect*/
+    @GuardedBy("mLock")
+    private boolean mIsStatusOverride;
+
+    /** Current thermal map, key as name */
+    @GuardedBy("mLock")
+    private ArrayMap<String, Temperature> mTemperatureMap = new ArrayMap<>();
 
     /** Local PMS handle. */
     private final PowerManager mPowerManager;
 
-    /** Proxy object for the Thermal HAL 2.0 service. */
+    /** HAL wrapper. */
+    private ThermalHalWrapper mHalWrapper;
+
+    /** Hal ready. */
     @GuardedBy("mLock")
-    private android.hardware.thermal.V2_0.IThermal mThermalHal20 = null;
+    private boolean mHalReady;
 
-    /** Proxy object for the Thermal HAL 1.1 service. */
-    @GuardedBy("mLock")
-    private android.hardware.thermal.V1_1.IThermal mThermalHal11 = null;
-
-    /** Cookie for matching the right end point. */
-    private static final int THERMAL_HAL_DEATH_COOKIE = 5612;
-
-    /** HWbinder callback for Thermal HAL 2.0. */
-    private final IThermalChangedCallback.Stub mThermalCallback20 =
-            new IThermalChangedCallback.Stub() {
-                @Override
-                public void notifyThrottling(
-                        android.hardware.thermal.V2_0.Temperature temperature) {
-                    android.os.Temperature thermalSvcTemp = new android.os.Temperature(
-                            temperature.value, temperature.type, temperature.name,
-                            temperature.throttlingStatus);
-                    final long token = Binder.clearCallingIdentity();
-                    try {
-                        notifyThrottlingImpl(thermalSvcTemp);
-                    } finally {
-                        Binder.restoreCallingIdentity(token);
-                    }
-                }
-            };
-
-    /** HWbinder callback for Thermal HAL 1.1. */
-    private final IThermalCallback.Stub mThermalCallback11 =
-            new IThermalCallback.Stub() {
-                @Override
-                public void notifyThrottling(boolean isThrottling,
-                        android.hardware.thermal.V1_0.Temperature temperature) {
-                    android.os.Temperature thermalSvcTemp = new android.os.Temperature(
-                            temperature.currentValue, temperature.type, temperature.name,
-                            isThrottling ? ThrottlingSeverity.SEVERE : ThrottlingSeverity.NONE);
-                    final long token = Binder.clearCallingIdentity();
-                    try {
-                        notifyThrottlingImpl(thermalSvcTemp);
-                    } finally {
-                        Binder.restoreCallingIdentity(token);
-                    }
-                }
-            };
+    /** Invalid throttling status */
+    private static final int INVALID_THROTTLING = Integer.MIN_VALUE;
 
     public ThermalManagerService(Context context) {
+        this(context, null);
+    }
+
+    @VisibleForTesting
+    ThermalManagerService(Context context, @Nullable ThermalHalWrapper halWrapper) {
         super(context);
         mPowerManager = context.getSystemService(PowerManager.class);
+        mHalWrapper = halWrapper;
+        // Initialize to invalid to send status onActivityManagerReady
+        mStatus = INVALID_THROTTLING;
     }
 
-    private void setNewListener(IThermalEventListener listener, Integer type) {
-        synchronized (mLock) {
-            mNewListenerCallback = listener;
-            mNewListenerType = type;
+    @Override
+    public void onStart() {
+        publishBinderService(Context.THERMAL_SERVICE, mService);
+    }
+
+    @Override
+    public void onBootPhase(int phase) {
+        if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
+            onActivityManagerReady();
         }
     }
 
-    private void clearNewListener() {
+    private void onActivityManagerReady() {
         synchronized (mLock) {
-            mNewListenerCallback = null;
-            mNewListenerType = null;
-        }
-    }
-
-    private final IThermalService.Stub mService = new IThermalService.Stub() {
-        @Override
-        public void registerThermalEventListener(IThermalEventListener listener) {
-            synchronized (mLock) {
-                mThermalEventListeners.register(listener, null);
-                // Notify its callback after new client registered.
-                setNewListener(listener, null);
-                long token = Binder.clearCallingIdentity();
-                try {
-                    notifyCurrentTemperaturesLocked();
-                } finally {
-                    Binder.restoreCallingIdentity(token);
-                    clearNewListener();
+            // Connect to HAL and post to listeners.
+            boolean halConnected = (mHalWrapper != null);
+            if (!halConnected) {
+                mHalWrapper = new ThermalHal20Wrapper();
+                halConnected = mHalWrapper.connectToHal();
+                if (!halConnected) {
+                    mHalWrapper = new ThermalHal11Wrapper();
+                    halConnected = mHalWrapper.connectToHal();
                 }
             }
-        }
-
-        @Override
-        public void registerThermalEventListenerWithType(IThermalEventListener listener, int type) {
-            synchronized (mLock) {
-                mThermalEventListeners.register(listener, new Integer(type));
-                setNewListener(listener, new Integer(type));
-                // Notify its callback after new client registered.
-                long token = Binder.clearCallingIdentity();
-                try {
-                    notifyCurrentTemperaturesLocked();
-                } finally {
-                    Binder.restoreCallingIdentity(token);
-                    clearNewListener();
-                }
+            mHalWrapper.setCallback(this::onTemperatureChangedCallback);
+            if (!halConnected) {
+                return;
             }
-        }
-
-        @Override
-        public void unregisterThermalEventListener(IThermalEventListener listener) {
-            synchronized (mLock) {
-                long token = Binder.clearCallingIdentity();
-                try {
-                    mThermalEventListeners.unregister(listener);
-                } finally {
-                    Binder.restoreCallingIdentity(token);
-                }
+            List<Temperature> temperatures = mHalWrapper.getCurrentTemperatures(false,
+                    0);
+            final int count = temperatures.size();
+            for (int i = 0; i < count; i++) {
+                onTemperatureChanged(temperatures.get(i), false);
             }
+            onTemperatureMapChangedLocked();
+            mHalReady = halConnected /* true */;
         }
-
-        @Override
-        public List<android.os.Temperature> getCurrentTemperatures() {
-            List<android.os.Temperature> ret;
-            long token = Binder.clearCallingIdentity();
-            try {
-                ret = getCurrentTemperaturesInternal(false, 0 /* not used */);
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
-            return ret;
-        }
-
-        @Override
-        public List<android.os.Temperature> getCurrentTemperaturesWithType(int type) {
-            List<android.os.Temperature> ret;
-            long token = Binder.clearCallingIdentity();
-            try {
-                ret = getCurrentTemperaturesInternal(true, type);
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
-            return ret;
-        }
-
-        @Override
-        protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
-            if (!DumpUtils.checkDumpPermission(getContext(), TAG, pw)) return;
-            pw.println("ThermalEventListeners dump:");
-            synchronized (mLock) {
-                mThermalEventListeners.dump(pw, "\t");
-                pw.println("ThermalHAL 1.1 connected: " + (mThermalHal11 != null ? "yes" : "no"));
-                pw.println("ThermalHAL 2.0 connected: " + (mThermalHal20 != null ? "yes" : "no"));
-            }
-        }
-    };
-
-    private List<android.os.Temperature> getCurrentTemperaturesInternal(boolean shouldFilter,
-            int type) {
-        List<android.os.Temperature> ret = new ArrayList<>();
-        synchronized (mLock) {
-            if (mThermalHal20 == null) {
-                return ret;
-            }
-            try {
-                mThermalHal20.getCurrentTemperatures(shouldFilter, type,
-                        (ThermalStatus status,
-                                ArrayList<android.hardware.thermal.V2_0.Temperature>
-                                        temperatures) -> {
-                            if (ThermalStatusCode.SUCCESS == status.code) {
-                                for (android.hardware.thermal.V2_0.Temperature
-                                        temperature : temperatures) {
-                                    ret.add(new android.os.Temperature(
-                                            temperature.value, temperature.type, temperature.name,
-                                            temperature.throttlingStatus));
-                                }
-                            } else {
-                                Slog.e(TAG,
-                                        "Couldn't get temperatures because of HAL error: "
-                                                + status.debugMessage);
-                            }
-
-                        });
-            } catch (RemoteException e) {
-                Slog.e(TAG, "Couldn't getCurrentTemperatures, reconnecting...", e);
-                connectToHalLocked();
-                // Post to listeners after reconnect to HAL.
-                notifyCurrentTemperaturesLocked();
-            }
-        }
-        return ret;
     }
 
-    private void notifyListener(android.os.Temperature temperature, IThermalEventListener listener,
-            Integer type) {
+    private void postStatusListener(IThermalStatusListener listener) {
+        final boolean thermalCallbackQueued = FgThread.getHandler().post(() -> {
+            try {
+                listener.onStatusChange(mStatus);
+            } catch (RemoteException | RuntimeException e) {
+                Slog.e(TAG, "Thermal callback failed to call", e);
+            }
+        });
+        if (!thermalCallbackQueued) {
+            Slog.e(TAG, "Thermal callback failed to queue");
+        }
+    }
+
+    private void notifyStatusListenersLocked() {
+        if (!Temperature.isValidStatus(mStatus)) {
+            return;
+        }
+        final int length = mThermalStatusListeners.beginBroadcast();
+        try {
+            for (int i = 0; i < length; i++) {
+                final IThermalStatusListener listener =
+                        mThermalStatusListeners.getBroadcastItem(i);
+                postStatusListener(listener);
+            }
+        } finally {
+            mThermalStatusListeners.finishBroadcast();
+        }
+    }
+
+    private void onTemperatureMapChangedLocked() {
+        int newStatus = INVALID_THROTTLING;
+        final int count = mTemperatureMap.size();
+        for (int i = 0; i < count; i++) {
+            Temperature t = mTemperatureMap.valueAt(i);
+            if (t.getStatus() >= newStatus) {
+                newStatus = t.getStatus();
+            }
+        }
+        // Do not update if override from shell
+        if (!mIsStatusOverride) {
+            setStatusLocked(newStatus);
+        }
+    }
+
+    private void setStatusLocked(int newStatus) {
+        if (newStatus != mStatus) {
+            mStatus = newStatus;
+            notifyStatusListenersLocked();
+        }
+    }
+
+    private void postEventListenerCurrentTemperatures(IThermalEventListener listener,
+            @Nullable Integer type) {
+        synchronized (mLock) {
+            final int count = mTemperatureMap.size();
+            for (int i = 0; i < count; i++) {
+                postEventListener(mTemperatureMap.valueAt(i), listener,
+                        type);
+            }
+        }
+    }
+
+    private void postEventListener(Temperature temperature,
+            IThermalEventListener listener,
+            @Nullable Integer type) {
         // Skip if listener registered with a different type
         if (type != null && type != temperature.getType()) {
             return;
@@ -271,120 +235,534 @@
         }
     }
 
-    private void notifyThrottlingImpl(android.os.Temperature temperature) {
+    private void notifyEventListenersLocked(Temperature temperature) {
+        final int length = mThermalEventListeners.beginBroadcast();
+        try {
+            for (int i = 0; i < length; i++) {
+                final IThermalEventListener listener =
+                        mThermalEventListeners.getBroadcastItem(i);
+                final Integer type =
+                        (Integer) mThermalEventListeners.getBroadcastCookie(i);
+                postEventListener(temperature, listener, type);
+            }
+        } finally {
+            mThermalEventListeners.finishBroadcast();
+        }
+    }
+
+    private void onTemperatureChanged(Temperature temperature, boolean sendStatus) {
         synchronized (mLock) {
             // Thermal Shutdown for Skin temperature
-            if (temperature.getStatus() == android.os.Temperature.THROTTLING_SHUTDOWN
-                    && temperature.getType() == android.os.Temperature.TYPE_SKIN) {
+            if (temperature.getStatus() == Temperature.THROTTLING_SHUTDOWN
+                    && temperature.getType() == Temperature.TYPE_SKIN) {
+                mPowerManager.shutdown(false, PowerManager.SHUTDOWN_THERMAL_STATE, false);
+            }
+
+            Temperature old = mTemperatureMap.put(temperature.getName(), temperature);
+            if (old != null) {
+                if (old.getStatus() != temperature.getStatus()) {
+                    notifyEventListenersLocked(temperature);
+                }
+            } else {
+                notifyEventListenersLocked(temperature);
+            }
+            if (sendStatus) {
+                onTemperatureMapChangedLocked();
+            }
+        }
+    }
+
+    /* HwBinder callback **/
+    private void onTemperatureChangedCallback(Temperature temperature) {
+        final long token = Binder.clearCallingIdentity();
+        try {
+            onTemperatureChanged(temperature, true);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    private void dumpTemperaturesLocked(PrintWriter pw, String prefix,
+            Collection<Temperature> temperatures) {
+        for (Temperature t : temperatures) {
+            pw.print(prefix);
+            String out = String.format("Name: %s, Type: %d, Status: %d, Value: %f",
+                    t.getName(),
+                    t.getType(),
+                    t.getStatus(),
+                    t.getValue()
+            );
+            pw.println(out);
+        }
+    }
+
+    @VisibleForTesting
+    final IThermalService.Stub mService = new IThermalService.Stub() {
+        @Override
+        public boolean registerThermalEventListener(IThermalEventListener listener) {
+            synchronized (mLock) {
                 final long token = Binder.clearCallingIdentity();
                 try {
-                    mPowerManager.shutdown(false, PowerManager.SHUTDOWN_THERMAL_STATE, false);
+                    if (!mThermalEventListeners.register(listener, null)) {
+                        return false;
+                    }
+                    if (mHalReady) {
+                        // Notify its callback after new client registered.
+                        postEventListenerCurrentTemperatures(listener, null);
+                    }
+                    return true;
                 } finally {
                     Binder.restoreCallingIdentity(token);
                 }
             }
-
-            if (mNewListenerCallback != null) {
-                // Only notify current newly added callback.
-                notifyListener(temperature, mNewListenerCallback, mNewListenerType);
-            } else {
-                final int length = mThermalEventListeners.beginBroadcast();
-                try {
-                    for (int i = 0; i < length; i++) {
-                        final IThermalEventListener listener =
-                                mThermalEventListeners.getBroadcastItem(i);
-                        final Integer type = (Integer) mThermalEventListeners.getBroadcastCookie(i);
-                        notifyListener(temperature, listener, type);
-                    }
-                } finally {
-                    mThermalEventListeners.finishBroadcast();
-                }
-            }
         }
-    }
 
-    @Override
-    public void onStart() {
-        publishBinderService(Context.THERMAL_SERVICE, mService);
-    }
-
-    @Override
-    public void onBootPhase(int phase) {
-        if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
-            onActivityManagerReady();
-        }
-    }
-
-    private void notifyCurrentTemperaturesCallbackLocked(ThermalStatus status,
-            ArrayList<android.hardware.thermal.V2_0.Temperature> temperatures) {
-        if (ThermalStatusCode.SUCCESS != status.code) {
-            Slog.e(TAG, "Couldn't get temperatures because of HAL error: "
-                    + status.debugMessage);
-            return;
-        }
-        for (android.hardware.thermal.V2_0.Temperature temperature : temperatures) {
-            android.os.Temperature thermal_svc_temp =
-                    new android.os.Temperature(
-                            temperature.value, temperature.type,
-                            temperature.name,
-                            temperature.throttlingStatus);
-            notifyThrottlingImpl(thermal_svc_temp);
-        }
-    }
-
-    private void notifyCurrentTemperaturesLocked() {
-        if (mThermalHal20 == null) {
-            return;
-        }
-        try {
-            mThermalHal20.getCurrentTemperatures(false, 0,
-                    this::notifyCurrentTemperaturesCallbackLocked);
-        } catch (RemoteException e) {
-            Slog.e(TAG, "Couldn't get temperatures, reconnecting...", e);
-            connectToHalLocked();
-        }
-    }
-
-    private void onActivityManagerReady() {
-        synchronized (mLock) {
-            connectToHalLocked();
-            // Post to listeners after connect to HAL.
-            notifyCurrentTemperaturesLocked();
-        }
-    }
-
-    final class DeathRecipient implements HwBinder.DeathRecipient {
         @Override
-        public void serviceDied(long cookie) {
-            if (cookie == THERMAL_HAL_DEATH_COOKIE) {
-                Slog.e(TAG, "Thermal HAL service died cookie: " + cookie);
+        public boolean registerThermalEventListenerWithType(IThermalEventListener listener,
+                int type) {
+            synchronized (mLock) {
+                final long token = Binder.clearCallingIdentity();
+                try {
+                    if (!mThermalEventListeners.register(listener, new Integer(type))) {
+                        return false;
+                    }
+                    if (mHalReady) {
+                        // Notify its callback after new client registered.
+                        postEventListenerCurrentTemperatures(listener, new Integer(type));
+                    }
+                    return true;
+                } finally {
+                    Binder.restoreCallingIdentity(token);
+                }
+            }
+        }
+
+        @Override
+        public boolean unregisterThermalEventListener(IThermalEventListener listener) {
+            synchronized (mLock) {
+                final long token = Binder.clearCallingIdentity();
+                try {
+                    return mThermalEventListeners.unregister(listener);
+                } finally {
+                    Binder.restoreCallingIdentity(token);
+                }
+            }
+        }
+
+        @Override
+        public List<Temperature> getCurrentTemperatures() {
+            final long token = Binder.clearCallingIdentity();
+            try {
+                if (!mHalReady) {
+                    return new ArrayList<>();
+                }
+                return mHalWrapper.getCurrentTemperatures(false, 0 /* not used */);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
+        @Override
+        public List<Temperature> getCurrentTemperaturesWithType(int type) {
+            final long token = Binder.clearCallingIdentity();
+            try {
+                if (!mHalReady) {
+                    return new ArrayList<>();
+                }
+                return mHalWrapper.getCurrentTemperatures(true, type);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
+        @Override
+        public boolean registerThermalStatusListener(IThermalStatusListener listener) {
+            synchronized (mLock) {
+                // Notify its callback after new client registered.
+                final long token = Binder.clearCallingIdentity();
+                try {
+                    if (!mThermalStatusListeners.register(listener)) {
+                        return false;
+                    }
+                    if (mHalReady) {
+                        // Notify its callback after new client registered.
+                        postStatusListener(listener);
+                    }
+                    return true;
+                } finally {
+                    Binder.restoreCallingIdentity(token);
+                }
+            }
+        }
+
+        @Override
+        public boolean unregisterThermalStatusListener(IThermalStatusListener listener) {
+            synchronized (mLock) {
+                final long token = Binder.clearCallingIdentity();
+                try {
+                    return mThermalStatusListeners.unregister(listener);
+                } finally {
+                    Binder.restoreCallingIdentity(token);
+                }
+            }
+        }
+
+        @Override
+        public int getCurrentThermalStatus() {
+            synchronized (mLock) {
+                final long token = Binder.clearCallingIdentity();
+                try {
+                    return Temperature.isValidStatus(mStatus) ? mStatus
+                            : Temperature.THROTTLING_NONE;
+                } finally {
+                    Binder.restoreCallingIdentity(token);
+                }
+            }
+        }
+
+        @Override
+        public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+            if (!DumpUtils.checkDumpPermission(getContext(), TAG, pw)) {
+                return;
+            }
+            final long token = Binder.clearCallingIdentity();
+            try {
                 synchronized (mLock) {
-                    connectToHalLocked();
-                    // Post to listeners after reconnect to HAL.
-                    notifyCurrentTemperaturesLocked();
+                    pw.println("ThermalEventListeners:");
+                    mThermalEventListeners.dump(pw, "\t");
+                    pw.println("ThermalStatusListeners:");
+                    mThermalStatusListeners.dump(pw, "\t");
+                    pw.println("Thermal Status: " + Integer.toString(mStatus));
+                    pw.println("Cached temperatures:");
+                    dumpTemperaturesLocked(pw, "\t", mTemperatureMap.values());
+                    pw.println("HAL Ready: " + Boolean.toString(mHalReady));
+                    if (mHalReady) {
+                        pw.println("HAL connection:");
+                        mHalWrapper.dump(pw, "\t");
+                        pw.println("Current temperatures from HAL:");
+                        dumpTemperaturesLocked(pw, "\t",
+                                mHalWrapper.getCurrentTemperatures(false, 0));
+                    }
+                }
+
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
+        private boolean isCallerShell() {
+            final int callingUid = Binder.getCallingUid();
+            return callingUid == Process.SHELL_UID || callingUid == Process.ROOT_UID;
+        }
+
+        @Override
+        public void onShellCommand(FileDescriptor in, FileDescriptor out,
+                FileDescriptor err, String[] args, ShellCallback callback,
+                ResultReceiver resultReceiver) {
+            if (!isCallerShell()) {
+                Slog.w(TAG, "Only shell is allowed to call thermalservice shell commands");
+                return;
+            }
+            (new ThermalShellCommand()).exec(
+                    this, in, out, err, args, callback, resultReceiver);
+        }
+
+    };
+
+    class ThermalShellCommand extends ShellCommand {
+        @Override
+        public int onCommand(String cmd) {
+            switch(cmd != null ? cmd : "") {
+                case "override-status":
+                    return runOverrideStatus();
+                case "reset":
+                    return runReset();
+                default:
+                    return handleDefaultCommands(cmd);
+            }
+        }
+
+        private int runReset() {
+            final long token = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    mIsStatusOverride = false;
+                    onTemperatureMapChangedLocked();
+                    return 0;
+                }
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
+        private int runOverrideStatus() {
+            final long token = Binder.clearCallingIdentity();
+            try {
+                final PrintWriter pw = getOutPrintWriter();
+                int status;
+                try {
+                    status = Integer.parseInt(getNextArgRequired());
+                } catch (RuntimeException ex) {
+                    pw.println("Error: " + ex.toString());
+                    return -1;
+                }
+                if (!Temperature.isValidStatus(status)) {
+                    pw.println("Invalid status: " + Integer.toString(status));
+                    return -1;
+                }
+                synchronized (mLock) {
+                    mIsStatusOverride = true;
+                    setStatusLocked(status);
+                }
+                return 0;
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
+        @Override
+        public void onHelp() {
+            final PrintWriter pw = getOutPrintWriter();
+            pw.println("Thermal service (thermalservice) commands:");
+            pw.println("  help");
+            pw.println("    Print this help text.");
+            pw.println("");
+            pw.println("  override-status STATUS");
+            pw.println("    sets and locks the thermal status of the device to STATUS.");
+            pw.println("    status code is defined in android.os.Temperature.");
+            pw.println("  reset");
+            pw.println("    unlocks the thermal status of the device.");
+            pw.println();
+        }
+    }
+
+    abstract static class ThermalHalWrapper {
+        protected static final String TAG = ThermalHalWrapper.class.getSimpleName();
+
+        /** Lock to protect HAL handle. */
+        protected final Object mHalLock = new Object();
+
+        @FunctionalInterface
+        interface TemperatureChangedCallback {
+            void onValues(Temperature temperature);
+        }
+
+        /** Temperature callback. */
+        protected TemperatureChangedCallback mCallback;
+
+        /** Cookie for matching the right end point. */
+        protected static final int THERMAL_HAL_DEATH_COOKIE = 5612;
+
+        @VisibleForTesting
+        protected void setCallback(TemperatureChangedCallback cb) {
+            mCallback = cb;
+        }
+
+        protected abstract List<Temperature> getCurrentTemperatures(boolean shouldFilter,
+                int type);
+
+        protected abstract boolean connectToHal();
+
+        protected abstract void dump(PrintWriter pw, String prefix);
+
+        protected void resendCurrentTemperatures() {
+            synchronized (mHalLock) {
+                List<Temperature> temperatures = getCurrentTemperatures(false, 0);
+                final int count = temperatures.size();
+                for (int i = 0; i < count; i++) {
+                    mCallback.onValues(temperatures.get(i));
+                }
+            }
+        }
+
+        final class DeathRecipient implements HwBinder.DeathRecipient {
+            @Override
+            public void serviceDied(long cookie) {
+                if (cookie == THERMAL_HAL_DEATH_COOKIE) {
+                    Slog.e(TAG, "Thermal HAL service died cookie: " + cookie);
+                    synchronized (mHalLock) {
+                        connectToHal();
+                        // Post to listeners after reconnect to HAL.
+                        resendCurrentTemperatures();
+                    }
                 }
             }
         }
     }
 
-    private void connectToHalLocked() {
-        try {
-            mThermalHal20 = android.hardware.thermal.V2_0.IThermal.getService();
-            mThermalHal20.linkToDeath(new DeathRecipient(), THERMAL_HAL_DEATH_COOKIE);
-            mThermalHal20.registerThermalChangedCallback(mThermalCallback20, false,
-                    0 /* not used */);
-        } catch (NoSuchElementException | RemoteException e) {
-            Slog.e(TAG, "Thermal HAL 2.0 service not connected, trying 1.1.");
-            mThermalHal20 = null;
-            try {
-                mThermalHal11 = android.hardware.thermal.V1_1.IThermal.getService();
-                mThermalHal11.linkToDeath(new DeathRecipient(), THERMAL_HAL_DEATH_COOKIE);
-                mThermalHal11.registerThermalCallback(mThermalCallback11);
-            } catch (NoSuchElementException | RemoteException e2) {
-                Slog.e(TAG,
-                        "Thermal HAL 1.1 service not connected, no thermal call back "
-                                + "will be called.");
-                mThermalHal11 = null;
+    static class ThermalHal11Wrapper extends ThermalHalWrapper {
+        /** Proxy object for the Thermal HAL 1.1 service. */
+        @GuardedBy("mHalLock")
+        private android.hardware.thermal.V1_1.IThermal mThermalHal11 = null;
+
+        /** HWbinder callback for Thermal HAL 1.1. */
+        private final IThermalCallback.Stub mThermalCallback11 =
+                new IThermalCallback.Stub() {
+                    @Override
+                    public void notifyThrottling(boolean isThrottling,
+                            android.hardware.thermal.V1_0.Temperature temperature) {
+                        Temperature thermalSvcTemp = new Temperature(
+                                temperature.currentValue, temperature.type, temperature.name,
+                                isThrottling ? ThrottlingSeverity.SEVERE
+                                        : ThrottlingSeverity.NONE);
+                        final long token = Binder.clearCallingIdentity();
+                        try {
+                            mCallback.onValues(thermalSvcTemp);
+                        } finally {
+                            Binder.restoreCallingIdentity(token);
+                        }
+                    }
+                };
+
+        @Override
+        protected List<Temperature> getCurrentTemperatures(boolean shouldFilter,
+                int type) {
+            synchronized (mHalLock) {
+                List<Temperature> ret = new ArrayList<>();
+                if (mThermalHal11 == null) {
+                    return ret;
+                }
+                try {
+                    mThermalHal11.getTemperatures(
+                            (ThermalStatus status,
+                                    ArrayList<android.hardware.thermal.V1_0.Temperature>
+                                            temperatures) -> {
+                                if (ThermalStatusCode.SUCCESS == status.code) {
+                                    for (android.hardware.thermal.V1_0.Temperature
+                                            temperature : temperatures) {
+                                        if (shouldFilter && type != temperature.type) {
+                                            continue;
+                                        }
+                                        // Thermal HAL 1.1 doesn't report current throttling status
+                                        ret.add(new Temperature(
+                                                temperature.currentValue, temperature.type,
+                                                temperature.name,
+                                                Temperature.THROTTLING_NONE));
+                                    }
+                                } else {
+                                    Slog.e(TAG,
+                                            "Couldn't get temperatures because of HAL error: "
+                                                    + status.debugMessage);
+                                }
+
+                            });
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Couldn't getCurrentTemperatures, reconnecting...", e);
+                    connectToHal();
+                }
+                return ret;
+            }
+        }
+
+        @Override
+        protected boolean connectToHal() {
+            synchronized (mHalLock) {
+                try {
+                    mThermalHal11 = android.hardware.thermal.V1_1.IThermal.getService();
+                    mThermalHal11.linkToDeath(new DeathRecipient(),
+                            THERMAL_HAL_DEATH_COOKIE);
+                    mThermalHal11.registerThermalCallback(mThermalCallback11);
+                } catch (NoSuchElementException | RemoteException e) {
+                    Slog.e(TAG,
+                            "Thermal HAL 1.1 service not connected, no thermal call back will be "
+                                    + "called.");
+                    mThermalHal11 = null;
+                }
+                return (mThermalHal11 != null);
+            }
+        }
+
+        @Override
+        protected void dump(PrintWriter pw, String prefix) {
+            synchronized (mHalLock) {
+                pw.print(prefix);
+                pw.println("ThermalHAL 1.1 connected: " + (mThermalHal11 != null ? "yes"
+                        : "no"));
+            }
+        }
+    }
+
+    static class ThermalHal20Wrapper extends ThermalHalWrapper {
+        /** Proxy object for the Thermal HAL 2.0 service. */
+        @GuardedBy("mHalLock")
+        private android.hardware.thermal.V2_0.IThermal mThermalHal20 = null;
+
+        /** HWbinder callback for Thermal HAL 2.0. */
+        private final IThermalChangedCallback.Stub mThermalCallback20 =
+                new IThermalChangedCallback.Stub() {
+                    @Override
+                    public void notifyThrottling(
+                            android.hardware.thermal.V2_0.Temperature temperature) {
+                        Temperature thermalSvcTemp = new Temperature(
+                                temperature.value, temperature.type, temperature.name,
+                                temperature.throttlingStatus);
+                        final long token = Binder.clearCallingIdentity();
+                        try {
+                            mCallback.onValues(thermalSvcTemp);
+                        } finally {
+                            Binder.restoreCallingIdentity(token);
+                        }
+                    }
+                };
+
+        @Override
+        protected List<Temperature> getCurrentTemperatures(boolean shouldFilter,
+                int type) {
+            synchronized (mHalLock) {
+                List<Temperature> ret = new ArrayList<>();
+                if (mThermalHal20 == null) {
+                    return ret;
+                }
+                try {
+                    mThermalHal20.getCurrentTemperatures(shouldFilter, type,
+                            (ThermalStatus status,
+                                    ArrayList<android.hardware.thermal.V2_0.Temperature>
+                                            temperatures) -> {
+                                if (ThermalStatusCode.SUCCESS == status.code) {
+                                    for (android.hardware.thermal.V2_0.Temperature
+                                            temperature : temperatures) {
+                                        ret.add(new Temperature(
+                                                temperature.value, temperature.type,
+                                                temperature.name,
+                                                temperature.throttlingStatus));
+                                    }
+                                } else {
+                                    Slog.e(TAG,
+                                            "Couldn't get temperatures because of HAL error: "
+                                                    + status.debugMessage);
+                                }
+
+                            });
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Couldn't getCurrentTemperatures, reconnecting...", e);
+                    connectToHal();
+                }
+                return ret;
+            }
+        }
+
+        @Override
+        protected boolean connectToHal() {
+            synchronized (mHalLock) {
+                try {
+                    mThermalHal20 = android.hardware.thermal.V2_0.IThermal.getService();
+                    mThermalHal20.linkToDeath(new DeathRecipient(), THERMAL_HAL_DEATH_COOKIE);
+                    mThermalHal20.registerThermalChangedCallback(mThermalCallback20, false,
+                            0 /* not used */);
+                } catch (NoSuchElementException | RemoteException e) {
+                    Slog.e(TAG, "Thermal HAL 2.0 service not connected, trying 1.1.");
+                    mThermalHal20 = null;
+                }
+                return (mThermalHal20 != null);
+            }
+        }
+
+        @Override
+        protected void dump(PrintWriter pw, String prefix) {
+            synchronized (mHalLock) {
+                pw.print(prefix);
+                pw.println("ThermalHAL 2.0 connected: " + (mThermalHal20 != null ? "yes"
+                        : "no"));
             }
         }
     }
diff --git a/services/core/java/com/android/server/role/RemoteRoleControllerService.java b/services/core/java/com/android/server/role/RemoteRoleControllerService.java
index 7d34270..cb89780 100644
--- a/services/core/java/com/android/server/role/RemoteRoleControllerService.java
+++ b/services/core/java/com/android/server/role/RemoteRoleControllerService.java
@@ -48,6 +48,7 @@
     static final boolean DEBUG = false;
     private static final String LOG_TAG = RemoteRoleControllerService.class.getSimpleName();
 
+    // TODO: STOPSHIP: This isn't the right thread, as we are also using it to write to disk.
     @NonNull
     private static final Handler sCallbackHandler = BackgroundThread.getHandler();
 
@@ -219,7 +220,7 @@
             private final IRoleManagerCallback mCallback;
 
             @NonNull
-            private final Runnable mTimeoutRunnable = () -> notifyCallback(false);
+            private final Runnable mTimeoutRunnable = this::notifyTimeout;
 
             private boolean mCallbackNotified;
 
@@ -244,6 +245,12 @@
             }
 
             @WorkerThread
+            private void notifyTimeout() {
+                Slog.e(LOG_TAG, "Call timed out, calling onFailure()");
+                notifyCallback(false);
+            }
+
+            @WorkerThread
             private void notifyCallback(boolean success) {
                 if (mCallbackNotified) {
                     return;
diff --git a/services/core/java/com/android/server/role/RoleManagerService.java b/services/core/java/com/android/server/role/RoleManagerService.java
index d01e762..b5ad235 100644
--- a/services/core/java/com/android/server/role/RoleManagerService.java
+++ b/services/core/java/com/android/server/role/RoleManagerService.java
@@ -30,21 +30,32 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManagerInternal;
+import android.content.pm.Signature;
+import android.os.ResultReceiver;
+import android.os.ShellCallback;
 import android.os.UserHandle;
 import android.os.UserManagerInternal;
 import android.text.TextUtils;
 import android.util.ArraySet;
+import android.util.PackageUtils;
 import android.util.Slog;
 import android.util.SparseArray;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.BitUtils;
+import com.android.internal.util.CollectionUtils;
+import com.android.internal.util.FunctionalUtils;
 import com.android.internal.util.Preconditions;
 import com.android.server.LocalServices;
 import com.android.server.SystemService;
 
+import java.io.ByteArrayOutputStream;
+import java.io.FileDescriptor;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
@@ -96,7 +107,7 @@
         intentFilter.addAction(Intent.ACTION_USER_REMOVED);
         getContext().registerReceiverAsUser(new BroadcastReceiver() {
             @Override
-            public void onReceive(Context context, Intent intent) {
+            public void onReceive(@NonNull Context context, @NonNull Intent intent) {
                 if (TextUtils.equals(intent.getAction(), Intent.ACTION_USER_REMOVED)) {
                     int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
                     onRemoveUser(userId);
@@ -114,13 +125,19 @@
 
     @Override
     public void onStartUser(@UserIdInt int userId) {
+        RoleUserState userState;
         synchronized (mLock) {
-            //TODO only call into PermissionController if it or system upgreaded (for boot time)
-            getUserStateLocked(userId);
+            userState = getUserStateLocked(userId);
         }
-        //TODO consider calling grants only when certain conditions are met
-        // such as OS or PermissionController upgrade
-        if (RemoteRoleControllerService.DEBUG) {
+        String packagesHash = computeComponentStateHash(userId);
+        String lastGrantPackagesHash;
+        synchronized (mLock) {
+            lastGrantPackagesHash = userState.getLastGrantPackagesHashLocked();
+        }
+        boolean needGrant = !Objects.equals(packagesHash, lastGrantPackagesHash);
+        if (needGrant) {
+            // Some vital packages state has changed since last role grant
+            // Run grants again
             Slog.i(LOG_TAG, "Granting default permissions...");
             CompletableFuture<Void> result = new CompletableFuture<>();
             getControllerService(userId).onGrantDefaultRoles(
@@ -129,7 +146,6 @@
                         public void onSuccess() {
                             result.complete(null);
                         }
-
                         @Override
                         public void onFailure() {
                             result.completeExceptionally(new RuntimeException());
@@ -137,19 +153,54 @@
                     });
             try {
                 result.get(5, TimeUnit.SECONDS);
+                synchronized (mLock) {
+                    userState.setLastGrantPackagesHashLocked(packagesHash);
+                }
             } catch (InterruptedException | ExecutionException | TimeoutException e) {
                 Slog.e(LOG_TAG, "Failed to grant defaults for user " + userId, e);
             }
+        } else if (RemoteRoleControllerService.DEBUG) {
+            Slog.i(LOG_TAG, "Already ran grants for package state " + packagesHash);
         }
     }
 
+    @Nullable
+    private String computeComponentStateHash(@UserIdInt int userId) {
+        PackageManagerInternal pm = LocalServices.getService(PackageManagerInternal.class);
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+        pm.forEachPackage(FunctionalUtils.uncheckExceptions(pkg -> {
+            out.write(pkg.packageName.getBytes());
+            out.write(BitUtils.toBytes(pkg.getLongVersionCode()));
+            out.write(pm.getApplicationEnabledState(pkg.packageName, userId));
+
+            ArraySet<String> enabledComponents =
+                    pm.getEnabledComponents(pkg.packageName, userId);
+            int numComponents = CollectionUtils.size(enabledComponents);
+            for (int i = 0; i < numComponents; i++) {
+                out.write(enabledComponents.valueAt(i).getBytes());
+            }
+
+            ArraySet<String> disabledComponents =
+                    pm.getDisabledComponents(pkg.packageName, userId);
+            numComponents = CollectionUtils.size(disabledComponents);
+            for (int i = 0; i < numComponents; i++) {
+                out.write(disabledComponents.valueAt(i).getBytes());
+            }
+            for (Signature signature : pkg.mSigningDetails.signatures) {
+                out.write(signature.toByteArray());
+            }
+        }));
+
+        return PackageUtils.computeSha256Digest(out.toByteArray());
+    }
+
     @GuardedBy("mLock")
     @NonNull
     private RoleUserState getUserStateLocked(@UserIdInt int userId) {
         RoleUserState userState = mUserStates.get(userId);
         if (userState == null) {
-            userState = new RoleUserState(userId);
-            userState.readSyncLocked();
+            userState = RoleUserState.newInstanceLocked(userId);
             mUserStates.put(userId, userState);
         }
         return userState;
@@ -284,12 +335,26 @@
         }
 
         @Override
+        public void setRoleNamesFromController(@NonNull List<String> roleNames) {
+            Preconditions.checkNotNull(roleNames, "roleNames cannot be null");
+            getContext().enforceCallingOrSelfPermission(
+                    RoleManager.PERMISSION_MANAGE_ROLES_FROM_CONTROLLER,
+                    "setRoleNamesFromController");
+
+            int userId = UserHandle.getCallingUserId();
+            synchronized (mLock) {
+                RoleUserState userState = getUserStateLocked(userId);
+                userState.setRoleNamesLocked(roleNames);
+            }
+        }
+
+        @Override
         public boolean addRoleHolderFromController(@NonNull String roleName,
                 @NonNull String packageName) {
             Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty");
             Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty");
             getContext().enforceCallingOrSelfPermission(
-                    RoleManager.PERMISSION_MANAGE_ROLE_HOLDERS_FROM_CONTROLLER,
+                    RoleManager.PERMISSION_MANAGE_ROLES_FROM_CONTROLLER,
                     "addRoleHolderFromController");
 
             int userId = UserHandle.getCallingUserId();
@@ -305,7 +370,7 @@
             Preconditions.checkStringNotEmpty(roleName, "roleName cannot be null or empty");
             Preconditions.checkStringNotEmpty(packageName, "packageName cannot be null or empty");
             getContext().enforceCallingOrSelfPermission(
-                    RoleManager.PERMISSION_MANAGE_ROLE_HOLDERS_FROM_CONTROLLER,
+                    RoleManager.PERMISSION_MANAGE_ROLES_FROM_CONTROLLER,
                     "removeRoleHolderFromController");
 
             int userId = UserHandle.getCallingUserId();
@@ -320,5 +385,13 @@
             return ActivityManager.handleIncomingUser(getCallingPid(), getCallingUid(), userId,
                     false, true, name, null);
         }
+
+        @Override
+        public void onShellCommand(@Nullable FileDescriptor in, @Nullable FileDescriptor out,
+                @Nullable FileDescriptor err, @NonNull String[] args,
+                @Nullable ShellCallback callback, @NonNull ResultReceiver resultReceiver) {
+            new RoleManagerShellCommand(this).exec(this, in, out, err, args, callback,
+                    resultReceiver);
+        }
     }
 }
diff --git a/services/core/java/com/android/server/role/RoleManagerShellCommand.java b/services/core/java/com/android/server/role/RoleManagerShellCommand.java
new file mode 100644
index 0000000..336b311
--- /dev/null
+++ b/services/core/java/com/android/server/role/RoleManagerShellCommand.java
@@ -0,0 +1,140 @@
+/*
+ * 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.server.role;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.role.IRoleManager;
+import android.app.role.IRoleManagerCallback;
+import android.os.RemoteException;
+import android.os.ShellCommand;
+import android.os.UserHandle;
+
+import java.io.PrintWriter;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+
+class RoleManagerShellCommand extends ShellCommand {
+
+    @NonNull
+    private final IRoleManager mRoleManager;
+
+    RoleManagerShellCommand(@NonNull IRoleManager roleManager) {
+        mRoleManager = roleManager;
+    }
+
+    private class Callback extends IRoleManagerCallback.Stub {
+
+        @NonNull
+        private final CompletableFuture<Void> mResult = new CompletableFuture<>();
+
+        public int waitForResult() {
+            try {
+                mResult.get(5, TimeUnit.SECONDS);
+                return 0;
+            } catch (Exception e) {
+                getErrPrintWriter().println("Error: " + e.toString());
+                return -1;
+            }
+        }
+
+        @Override
+        public void onSuccess() {
+            mResult.complete(null);
+        }
+
+        @Override
+        public void onFailure() {
+            mResult.completeExceptionally(new RuntimeException("Failed"));
+        }
+    }
+
+    @Override
+    public int onCommand(@Nullable String cmd) {
+        if (cmd == null) {
+            return handleDefaultCommands(cmd);
+        }
+
+        PrintWriter pw = getOutPrintWriter();
+        try {
+            switch (cmd) {
+                case "add-role-holder":
+                    return runAddRoleHolder();
+                case "remove-role-holder":
+                    return runRemoveRoleHolder();
+                case "clear-role-holders":
+                    return runClearRoleHolders();
+                default:
+                    return handleDefaultCommands(cmd);
+            }
+        } catch (RemoteException e) {
+            pw.println("Remote exception: " + e);
+        }
+        return -1;
+    }
+
+    private int getUserIdMaybe() {
+        int userId = UserHandle.USER_SYSTEM;
+        String option = getNextOption();
+        if (option != null && option.equals("--user")) {
+            userId = UserHandle.parseUserArg(getNextArgRequired());
+        }
+        return userId;
+    }
+
+    private int runAddRoleHolder() throws RemoteException {
+        int userId = getUserIdMaybe();
+        String roleName = getNextArgRequired();
+        String packageName = getNextArgRequired();
+
+        Callback callback = new Callback();
+        mRoleManager.addRoleHolderAsUser(roleName, packageName, userId, callback);
+        return callback.waitForResult();
+    }
+
+    private int runRemoveRoleHolder() throws RemoteException {
+        int userId = getUserIdMaybe();
+        String roleName = getNextArgRequired();
+        String packageName = getNextArgRequired();
+
+        Callback callback = new Callback();
+        mRoleManager.removeRoleHolderAsUser(roleName, packageName, userId, callback);
+        return callback.waitForResult();
+    }
+
+    private int runClearRoleHolders() throws RemoteException {
+        int userId = getUserIdMaybe();
+        String roleName = getNextArgRequired();
+
+        Callback callback = new Callback();
+        mRoleManager.clearRoleHoldersAsUser(roleName, userId, callback);
+        return callback.waitForResult();
+    }
+
+    @Override
+    public void onHelp() {
+        PrintWriter pw = getOutPrintWriter();
+        pw.println("Role manager (role) commands:");
+        pw.println("  help");
+        pw.println("    Print this help text.");
+        pw.println();
+        pw.println("  add-role-holder [--user USER_ID] ROLE PACKAGE");
+        pw.println("  remove-role-holder [--user USER_ID] ROLE PACKAGE");
+        pw.println("  clear-role-holders [--user USER_ID] ROLE");
+        pw.println();
+    }
+}
diff --git a/services/core/java/com/android/server/role/RoleUserState.java b/services/core/java/com/android/server/role/RoleUserState.java
index becc962..3e3e156 100644
--- a/services/core/java/com/android/server/role/RoleUserState.java
+++ b/services/core/java/com/android/server/role/RoleUserState.java
@@ -31,6 +31,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.os.BackgroundThread;
+import com.android.internal.util.CollectionUtils;
 import com.android.internal.util.function.pooled.PooledLambda;
 
 import libcore.io.IoUtils;
@@ -45,6 +46,8 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * Stores the state of roles for a user.
@@ -62,6 +65,7 @@
     private static final String TAG_HOLDER = "holder";
     private static final String ATTRIBUTE_VERSION = "version";
     private static final String ATTRIBUTE_NAME = "name";
+    private static final String ATTRIBUTE_PACKAGES_HASH = "packagesHash";
 
     @UserIdInt
     private final int mUserId;
@@ -69,19 +73,39 @@
     @GuardedBy("RoleManagerService.mLock")
     private int mVersion = VERSION_UNDEFINED;
 
+    @GuardedBy("RoleManagerService.mLock")
+    @Nullable
+    private String mLastGrantPackagesHash;
+
     /**
      * Maps role names to its holders' package names. The values should never be null.
      */
     @GuardedBy("RoleManagerService.mLock")
-    private ArrayMap<String, ArraySet<String>> mRoles = null;
+    @NonNull
+    private ArrayMap<String, ArraySet<String>> mRoles = new ArrayMap<>();
 
     @GuardedBy("RoleManagerService.mLock")
     private boolean mDestroyed;
 
+    @NonNull
     private final Handler mWriteHandler = new Handler(BackgroundThread.getHandler().getLooper());
 
-    public RoleUserState(@UserIdInt int userId) {
+    private RoleUserState(@UserIdInt int userId) {
         mUserId = userId;
+
+        readSyncLocked();
+    }
+
+    /**
+     * Create a new instance of user state, and read its state from disk if previously persisted.
+     *
+     * @param userId the user id for the new user state
+     *
+     * @return the new user state
+     */
+    @GuardedBy("RoleManagerService.mLock")
+    public static RoleUserState newInstanceLocked(@UserIdInt int userId) {
+        return new RoleUserState(userId);
     }
 
     /**
@@ -101,7 +125,36 @@
     @GuardedBy("RoleManagerService.mLock")
     public void setVersionLocked(int version) {
         throwIfDestroyedLocked();
+        if (mVersion == version) {
+            return;
+        }
         mVersion = version;
+        writeAsyncLocked();
+    }
+
+    /**
+     * Get the hash representing the state of packages during the last time initial grants was run.
+     *
+     * @return the hash representing the state of packages
+     */
+    @GuardedBy("RoleManagerService.mLock")
+    public String getLastGrantPackagesHashLocked() {
+        return mLastGrantPackagesHash;
+    }
+
+    /**
+     * Set the hash representing the state of packages during the last time initial grants was run.
+     *
+     * @param lastGrantPackagesHash the hash representing the state of packages
+     */
+    @GuardedBy("RoleManagerService.mLock")
+    public void setLastGrantPackagesHashLocked(@Nullable String lastGrantPackagesHash) {
+        throwIfDestroyedLocked();
+        if (Objects.equals(mLastGrantPackagesHash, lastGrantPackagesHash)) {
+            return;
+        }
+        mLastGrantPackagesHash = lastGrantPackagesHash;
+        writeAsyncLocked();
     }
 
     /**
@@ -132,6 +185,41 @@
     }
 
     /**
+     * Set the names of all available roles.
+     *
+     * @param roleNames the names of all the available roles
+     */
+    @GuardedBy("RoleManagerService.mLock")
+    public void setRoleNamesLocked(@NonNull List<String> roleNames) {
+        throwIfDestroyedLocked();
+        boolean changed = false;
+        for (int i = mRoles.size() - 1; i >= 0; i--) {
+            String roleName = mRoles.keyAt(i);
+            if (!roleNames.contains(roleName)) {
+                ArraySet<String> packageNames = mRoles.valueAt(i);
+                if (!packageNames.isEmpty()) {
+                    Slog.e(LOG_TAG, "Holders of a removed role should have been cleaned up, role: "
+                            + roleName + ", holders: " + packageNames);
+                }
+                mRoles.removeAt(i);
+                changed = true;
+            }
+        }
+        int roleNamesSize = roleNames.size();
+        for (int i = 0; i < roleNamesSize; i++) {
+            String roleName = roleNames.get(i);
+            if (!mRoles.containsKey(roleName)) {
+                mRoles.put(roleName, new ArraySet<>());
+                Slog.i(LOG_TAG, "Added new role: " + roleName);
+                changed = true;
+            }
+        }
+        if (changed) {
+            writeAsyncLocked();
+        }
+    }
+
+    /**
      * Add a holder to a role.
      *
      * @param roleName the name of the role to add the holder to
@@ -146,9 +234,14 @@
         throwIfDestroyedLocked();
         ArraySet<String> roleHolders = mRoles.get(roleName);
         if (roleHolders == null) {
+            Slog.e(LOG_TAG, "Cannot add role holder for unknown role, role: " + roleName
+                    + ", package: " + packageName);
             return false;
         }
-        roleHolders.add(packageName);
+        boolean changed = roleHolders.add(packageName);
+        if (changed) {
+            writeAsyncLocked();
+        }
         return true;
     }
 
@@ -167,9 +260,14 @@
         throwIfDestroyedLocked();
         ArraySet<String> roleHolders = mRoles.get(roleName);
         if (roleHolders == null) {
+            Slog.e(LOG_TAG, "Cannot remove role holder for unknown role, role: " + roleName
+                    + ", package: " + packageName);
             return false;
         }
-        roleHolders.remove(packageName);
+        boolean changed = roleHolders.remove(packageName);
+        if (changed) {
+            writeAsyncLocked();
+        }
         return true;
     }
 
@@ -177,27 +275,30 @@
      * Schedule writing the state to file.
      */
     @GuardedBy("RoleManagerService.mLock")
-    public void writeAsyncLocked() {
+    private void writeAsyncLocked() {
         throwIfDestroyedLocked();
-        int version = mVersion;
+
         ArrayMap<String, ArraySet<String>> roles = new ArrayMap<>();
-        for (int i = 0, size = mRoles.size(); i < size; ++i) {
+        for (int i = 0, size = CollectionUtils.size(mRoles); i < size; ++i) {
             String roleName = mRoles.keyAt(i);
             ArraySet<String> roleHolders = mRoles.valueAt(i);
             roleHolders = new ArraySet<>(roleHolders);
             roles.put(roleName, roleHolders);
         }
+
         mWriteHandler.removeCallbacksAndMessages(null);
-        mWriteHandler.sendMessage(PooledLambda.obtainMessage(
-                RoleUserState::writeSync, this, version, roles));
+        // TODO: Throttle writes.
+        mWriteHandler.sendMessage(PooledLambda.obtainMessage(RoleUserState::writeSync, this,
+                mVersion, mLastGrantPackagesHash, roles));
     }
 
     @WorkerThread
-    private void writeSync(int version, @NonNull ArrayMap<String, ArraySet<String>> roles) {
-        AtomicFile destination = new AtomicFile(getFile(mUserId), "roles-" + mUserId);
+    private void writeSync(int version, @Nullable String packagesHash,
+            @NonNull ArrayMap<String, ArraySet<String>> roles) {
+        AtomicFile atomicFile = new AtomicFile(getFile(mUserId), "roles-" + mUserId);
         FileOutputStream out = null;
         try {
-            out = destination.startWrite();
+            out = atomicFile.startWrite();
 
             XmlSerializer serializer = Xml.newSerializer();
             serializer.setOutput(out, StandardCharsets.UTF_8.name());
@@ -205,14 +306,15 @@
                     "http://xmlpull.org/v1/doc/features.html#indent-output", true);
             serializer.startDocument(null, true);
 
-            serializeRoles(serializer, version, roles);
+            serializeRoles(serializer, version, packagesHash, roles);
 
             serializer.endDocument();
-            destination.finishWrite(out);
-        } catch (Throwable t) {
-            // Any error while writing is fatal.
-            Slog.wtf(LOG_TAG, "Failed to write roles file, restoring backup", t);
-            destination.failWrite(out);
+            atomicFile.finishWrite(out);
+        } catch (IllegalArgumentException | IllegalStateException | IOException e) {
+            Slog.wtf(LOG_TAG, "Failed to write roles.xml, restoring backup", e);
+            if (out != null) {
+                atomicFile.failWrite(out);
+            }
         } finally {
             IoUtils.closeQuietly(out);
         }
@@ -220,17 +322,26 @@
 
     @WorkerThread
     private void serializeRoles(@NonNull XmlSerializer serializer, int version,
-            @NonNull ArrayMap<String, ArraySet<String>> roles) throws IOException {
+            @Nullable String packagesHash, @NonNull ArrayMap<String, ArraySet<String>> roles)
+            throws IOException {
         serializer.startTag(null, TAG_ROLES);
+
         serializer.attribute(null, ATTRIBUTE_VERSION, Integer.toString(version));
+
+        if (packagesHash != null) {
+            serializer.attribute(null, ATTRIBUTE_PACKAGES_HASH, packagesHash);
+        }
+
         for (int i = 0, size = roles.size(); i < size; ++i) {
             String roleName = roles.keyAt(i);
             ArraySet<String> roleHolders = roles.valueAt(i);
+
             serializer.startTag(null, TAG_ROLE);
             serializer.attribute(null, ATTRIBUTE_NAME, roleName);
             serializeRoleHolders(serializer, roleHolders);
             serializer.endTag(null, TAG_ROLE);
         }
+
         serializer.endTag(null, TAG_ROLES);
     }
 
@@ -239,6 +350,7 @@
             @NonNull ArraySet<String> roleHolders) throws IOException {
         for (int i = 0, size = roleHolders.size(); i < size; ++i) {
             String roleHolder = roleHolders.valueAt(i);
+
             serializer.startTag(null, TAG_HOLDER);
             serializer.attribute(null, ATTRIBUTE_NAME, roleHolder);
             serializer.endTag(null, TAG_HOLDER);
@@ -249,57 +361,53 @@
      * Read the state from file.
      */
     @GuardedBy("RoleManagerService.mLock")
-    public void readSyncLocked() {
-        if (mRoles != null) {
-            throw new IllegalStateException("This RoleUserState has already read the XML file");
-        }
+    private void readSyncLocked() {
         File file = getFile(mUserId);
-        FileInputStream in;
-        try {
-            in = new AtomicFile(file).openRead();
-        } catch (FileNotFoundException e) {
-            Slog.i(LOG_TAG, "No roles file found");
-            return;
-        }
-
-        try {
+        try (FileInputStream in = new AtomicFile(file).openRead()) {
             XmlPullParser parser = Xml.newPullParser();
             parser.setInput(in, null);
             parseXmlLocked(parser);
+        } catch (FileNotFoundException e) {
+            Slog.i(LOG_TAG, "roles.xml not found");
         } catch (XmlPullParserException | IOException e) {
-            throw new IllegalStateException("Failed to parse roles file: " + file , e);
-        } finally {
-            IoUtils.closeQuietly(in);
+            throw new IllegalStateException("Failed to parse roles.xml: " + file, e);
         }
     }
 
     private void parseXmlLocked(@NonNull XmlPullParser parser) throws IOException,
             XmlPullParserException {
-        int outerDepth = parser.getDepth();
         int type;
+        int depth;
+        int innerDepth = parser.getDepth() + 1;
         while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
-                && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
-            if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                && ((depth = parser.getDepth()) >= innerDepth || type != XmlPullParser.END_TAG)) {
+            if (depth > innerDepth || type != XmlPullParser.START_TAG) {
                 continue;
             }
+
             if (parser.getName().equals(TAG_ROLES)) {
                 parseRolesLocked(parser);
                 return;
             }
         }
+        Slog.w(LOG_TAG, "Missing <" + TAG_ROLES + "> in roles.xml");
     }
 
     private void parseRolesLocked(@NonNull XmlPullParser parser) throws IOException,
             XmlPullParserException {
         mVersion = Integer.parseInt(parser.getAttributeValue(null, ATTRIBUTE_VERSION));
-        mRoles = new ArrayMap<>();
-        int outerDepth = parser.getDepth();
+        mLastGrantPackagesHash = parser.getAttributeValue(null, ATTRIBUTE_PACKAGES_HASH);
+        mRoles.clear();
+
         int type;
+        int depth;
+        int innerDepth = parser.getDepth() + 1;
         while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
-                && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
-            if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                && ((depth = parser.getDepth()) >= innerDepth || type != XmlPullParser.END_TAG)) {
+            if (depth > innerDepth || type != XmlPullParser.START_TAG) {
                 continue;
             }
+
             if (parser.getName().equals(TAG_ROLE)) {
                 String roleName = parser.getAttributeValue(null, ATTRIBUTE_NAME);
                 ArraySet<String> roleHolders = parseRoleHoldersLocked(parser);
@@ -312,18 +420,22 @@
     private ArraySet<String> parseRoleHoldersLocked(@NonNull XmlPullParser parser)
             throws IOException, XmlPullParserException {
         ArraySet<String> roleHolders = new ArraySet<>();
-        int outerDepth = parser.getDepth();
+
         int type;
+        int depth;
+        int innerDepth = parser.getDepth() + 1;
         while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
-                && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
-            if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                && ((depth = parser.getDepth()) >= innerDepth || type != XmlPullParser.END_TAG)) {
+            if (depth > innerDepth || type != XmlPullParser.START_TAG) {
                 continue;
             }
+
             if (parser.getName().equals(TAG_HOLDER)) {
                 String roleHolder = parser.getAttributeValue(null, ATTRIBUTE_NAME);
                 roleHolders.add(roleHolder);
             }
         }
+
         return roleHolders;
     }
 
diff --git a/services/core/java/com/android/server/stats/StatsCompanionService.java b/services/core/java/com/android/server/stats/StatsCompanionService.java
index d2ca850..f0ebb75 100644
--- a/services/core/java/com/android/server/stats/StatsCompanionService.java
+++ b/services/core/java/com/android/server/stats/StatsCompanionService.java
@@ -51,6 +51,7 @@
 import android.os.BatteryStats;
 import android.os.BatteryStatsInternal;
 import android.os.Binder;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Environment;
 import android.os.FileUtils;
@@ -198,6 +199,7 @@
             "zygote64",
     };
 
+    private static final int CPU_TIME_PER_THREAD_FREQ_NUM_FREQUENCIES = 8;
 
     static final class CompanionHandler extends Handler {
         CompanionHandler(Looper looper) {
@@ -1077,7 +1079,7 @@
             e.writeLong(processMemoryState.rssInBytes);
             e.writeLong(processMemoryState.cacheInBytes);
             e.writeLong(processMemoryState.swapInBytes);
-            e.writeLong(processMemoryState.rssHighWatermarkInBytes);
+            e.writeLong(0);  // unused
             e.writeLong(processMemoryState.startTimeNanos);
             pulledData.add(e);
         }
@@ -1086,6 +1088,7 @@
     private void pullNativeProcessMemoryState(
             int tagId, long elapsedNanos, long wallClockNanos,
             List<StatsLogEventWrapper> pulledData) {
+        final List<String> processNames = Arrays.asList(MEMORY_INTERESTING_NATIVE_PROCESSES);
         int[] pids = getPidsForCommands(MEMORY_INTERESTING_NATIVE_PROCESSES);
         for (int i = 0; i < pids.length; i++) {
             int pid = pids[i];
@@ -1095,13 +1098,19 @@
             }
             int uid = getUidForPid(pid);
             String processName = readCmdlineFromProcfs(pid);
+            // Sometimes we get here processName that is not included in the whitelist. It comes
+            // from forking the zygote for an app. We can ignore that sample because this process
+            // is collected by ProcessMemoryState.
+            if (!processNames.contains(processName)) {
+                continue;
+            }
             StatsLogEventWrapper e = new StatsLogEventWrapper(tagId, elapsedNanos, wallClockNanos);
             e.writeInt(uid);
             e.writeString(processName);
             e.writeLong(memoryStat.pgfault);
             e.writeLong(memoryStat.pgmajfault);
             e.writeLong(memoryStat.rssInBytes);
-            e.writeLong(memoryStat.rssHighWatermarkInBytes);
+            e.writeLong(0);  // unused
             e.writeLong(memoryStat.startTimeNanos);
             pulledData.add(e);
         }
@@ -1515,6 +1524,21 @@
         pulledData.add(e);
     }
 
+    private void pullBuildInformation(int tagId,
+            long elapsedNanos, long wallClockNanos, List<StatsLogEventWrapper> pulledData) {
+        StatsLogEventWrapper e = new StatsLogEventWrapper(tagId, elapsedNanos, wallClockNanos);
+        e.writeString(Build.FINGERPRINT);
+        e.writeString(Build.BRAND);
+        e.writeString(Build.PRODUCT);
+        e.writeString(Build.DEVICE);
+        e.writeString(Build.VERSION.RELEASE);
+        e.writeString(Build.ID);
+        e.writeString(Build.VERSION.INCREMENTAL);
+        e.writeString(Build.TYPE);
+        e.writeString(Build.TAGS);
+        pulledData.add(e);
+    }
+
     private BatteryStatsHelper getBatteryStatsHelper() {
         if (mBatteryStatsHelper == null) {
             final long callingToken = Binder.clearCallingIdentity();
@@ -1630,24 +1654,27 @@
         if (this.mKernelCpuThreadReader == null) {
             return;
         }
-        KernelCpuThreadReader.ProcessCpuUsage processCpuUsage = this.mKernelCpuThreadReader
-                .getCurrentProcessCpuUsage();
-        if (processCpuUsage == null) {
+        ArrayList<KernelCpuThreadReader.ProcessCpuUsage> processCpuUsages =
+                this.mKernelCpuThreadReader.getProcessCpuUsageByUids();
+        if (processCpuUsages == null) {
             return;
         }
         int[] cpuFrequencies = mKernelCpuThreadReader.getCpuFrequenciesKhz();
-        for (KernelCpuThreadReader.ThreadCpuUsage threadCpuUsage
-                : processCpuUsage.threadCpuUsages) {
-            if (threadCpuUsage.usageTimesMillis.length != cpuFrequencies.length) {
-                Slog.w(TAG, "Unexpected number of usage times,"
-                        + " expected " + cpuFrequencies.length
-                        + " but got " + threadCpuUsage.usageTimesMillis.length);
-                continue;
-            }
-
-            for (int i = 0; i < threadCpuUsage.usageTimesMillis.length; i++) {
-                // Do not report CPU usage at a frequency when it's zero
-                if (threadCpuUsage.usageTimesMillis[i] == 0) {
+        if (cpuFrequencies.length != CPU_TIME_PER_THREAD_FREQ_NUM_FREQUENCIES) {
+            Slog.w(TAG, "Expected " + CPU_TIME_PER_THREAD_FREQ_NUM_FREQUENCIES
+                    + " frequencies, but got " + cpuFrequencies.length);
+            return;
+        }
+        for (int i = 0; i < processCpuUsages.size(); i++) {
+            KernelCpuThreadReader.ProcessCpuUsage processCpuUsage = processCpuUsages.get(i);
+            ArrayList<KernelCpuThreadReader.ThreadCpuUsage> threadCpuUsages =
+                    processCpuUsage.threadCpuUsages;
+            for (int j = 0; j < threadCpuUsages.size(); j++) {
+                KernelCpuThreadReader.ThreadCpuUsage threadCpuUsage = threadCpuUsages.get(j);
+                if (threadCpuUsage.usageTimesMillis.length != cpuFrequencies.length) {
+                    Slog.w(TAG, "Unexpected number of usage times,"
+                            + " expected " + cpuFrequencies.length
+                            + " but got " + threadCpuUsage.usageTimesMillis.length);
                     continue;
                 }
 
@@ -1658,8 +1685,10 @@
                 e.writeInt(threadCpuUsage.threadId);
                 e.writeString(processCpuUsage.processName);
                 e.writeString(threadCpuUsage.threadName);
-                e.writeInt(cpuFrequencies[i]);
-                e.writeInt(threadCpuUsage.usageTimesMillis[i]);
+                for (int k = 0; k < CPU_TIME_PER_THREAD_FREQ_NUM_FREQUENCIES; k++) {
+                    e.writeInt(cpuFrequencies[k]);
+                    e.writeInt(threadCpuUsage.usageTimesMillis[k]);
+                }
                 pulledData.add(e);
             }
         }
@@ -1803,6 +1832,10 @@
                 pullPowerProfile(tagId, elapsedNanos, wallClockNanos, ret);
                 break;
             }
+            case StatsLog.BUILD_INFORMATION: {
+                pullBuildInformation(tagId, elapsedNanos, wallClockNanos, ret);
+                break;
+            }
             case StatsLog.PROCESS_CPU_TIME: {
                 pullProcessCpuTime(tagId, elapsedNanos, wallClockNanos, ret);
                 break;
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java
index 095eaa5..a66f0ca 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java
@@ -44,36 +44,42 @@
      */
     void showPictureInPictureMenu();
 
-    void setWindowState(int window, int state);
+    void setWindowState(int displayId, int window, int state);
 
     /**
      * Notifies the status bar that an app transition is pending to delay applying some flags with
      * visual impact until {@link #appTransitionReady} is called.
+     *
+     * @param displayId the ID of the display which has this event.
      */
-    void appTransitionPending();
+    void appTransitionPending(int displayId);
 
     /**
      * Notifies the status bar that a pending app transition has been cancelled.
+     *
+     * @param displayId the ID of the display which has this event.
      */
-    void appTransitionCancelled();
+    void appTransitionCancelled(int displayId);
 
     /**
      * Notifies the status bar that an app transition is now being executed.
      *
+     * @param displayId the ID of the display which has this event.
      * @param statusBarAnimationsStartTime the desired start time for all visual animations in the
      *        status bar caused by this app transition in uptime millis
      * @param statusBarAnimationsDuration the duration for all visual animations in the status
      *        bar caused by this app transition in millis
      */
-    void appTransitionStarting(long statusBarAnimationsStartTime, long statusBarAnimationsDuration);
+    void appTransitionStarting(int displayId, long statusBarAnimationsStartTime,
+            long statusBarAnimationsDuration);
 
     void startAssist(Bundle args);
     void onCameraLaunchGestureDetected(int source);
-    void topAppWindowChanged(boolean menuVisible);
-    void setSystemUiVisibility(int vis, int fullscreenStackVis, int dockedStackVis, int mask,
-            Rect fullscreenBounds, Rect dockedBounds, String cause);
+    void topAppWindowChanged(int displayId, boolean menuVisible);
+    void setSystemUiVisibility(int displayId, int vis, int fullscreenStackVis, int dockedStackVis,
+            int mask, Rect fullscreenBounds, Rect dockedBounds, String cause);
     void toggleSplitScreen();
-    void appTransitionFinished();
+    void appTransitionFinished(int displayId);
 
     void toggleRecentApps();
 
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
index 3e07ebe..e645b84 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
@@ -19,11 +19,12 @@
 import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
 
 import android.app.ActivityThread;
+import android.app.Notification;
 import android.app.StatusBarManager;
 import android.content.ComponentName;
 import android.content.Context;
 import android.graphics.Rect;
-import android.hardware.biometrics.IBiometricPromptReceiver;
+import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
@@ -39,6 +40,7 @@
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.Slog;
+import android.view.Display;
 
 import com.android.internal.R;
 import com.android.internal.statusbar.IStatusBar;
@@ -237,14 +239,22 @@
         }
 
         @Override
-        public void topAppWindowChanged(boolean menuVisible) {
+        public void topAppWindowChanged(int displayId, boolean menuVisible) {
+            if (displayId != Display.DEFAULT_DISPLAY) {
+                // TODO (b/117478341): Resolve one status bar/ navigation bar assumption
+                return;
+            }
             StatusBarManagerService.this.topAppWindowChanged(menuVisible);
         }
 
         @Override
-        public void setSystemUiVisibility(int vis, int fullscreenStackVis, int dockedStackVis,
-                int mask,
-                Rect fullscreenBounds, Rect dockedBounds, String cause) {
+        public void setSystemUiVisibility(int displayId, int vis, int fullscreenStackVis,
+                int dockedStackVis, int mask, Rect fullscreenBounds, Rect dockedBounds,
+                String cause) {
+            if (displayId != Display.DEFAULT_DISPLAY) {
+                // TODO (b/117478341): Resolve one status bar/ navigation bar assumption
+                return;
+            }
             StatusBarManagerService.this.setSystemUiVisibility(vis, fullscreenStackVis,
                     dockedStackVis, mask, fullscreenBounds, dockedBounds, cause);
         }
@@ -259,8 +269,13 @@
             }
         }
 
-        public void appTransitionFinished() {
+        @Override
+        public void appTransitionFinished(int displayId) {
             enforceStatusBarService();
+            if (displayId != Display.DEFAULT_DISPLAY) {
+                // TODO (b/117478341): Resolve one status bar/ navigation bar assumption
+                return;
+            }
             if (mBar != null) {
                 try {
                     mBar.appTransitionFinished();
@@ -358,7 +373,11 @@
         }
 
         @Override
-        public void setWindowState(int window, int state) {
+        public void setWindowState(int displayId, int window, int state) {
+            if (displayId != Display.DEFAULT_DISPLAY) {
+                // TODO (b/117478341): Resolve one status bar/ navigation bar assumption
+                return;
+            }
             if (mBar != null) {
                 try {
                     mBar.setWindowState(window, state);
@@ -367,7 +386,11 @@
         }
 
         @Override
-        public void appTransitionPending() {
+        public void appTransitionPending(int displayId) {
+            if (displayId != Display.DEFAULT_DISPLAY) {
+                // TODO (b/117478341): Resolve one status bar/ navigation bar assumption
+                return;
+            }
             if (mBar != null) {
                 try {
                     mBar.appTransitionPending();
@@ -376,7 +399,11 @@
         }
 
         @Override
-        public void appTransitionCancelled() {
+        public void appTransitionCancelled(int displayId) {
+            if (displayId != Display.DEFAULT_DISPLAY) {
+                // TODO (b/117478341): Resolve one status bar/ navigation bar assumption
+                return;
+            }
             if (mBar != null) {
                 try {
                     mBar.appTransitionCancelled();
@@ -385,8 +412,12 @@
         }
 
         @Override
-        public void appTransitionStarting(long statusBarAnimationsStartTime,
+        public void appTransitionStarting(int displayId, long statusBarAnimationsStartTime,
                 long statusBarAnimationsDuration) {
+            if (displayId != Display.DEFAULT_DISPLAY) {
+                // TODO (b/117478341): Resolve one status bar/ navigation bar assumption
+                return;
+            }
             if (mBar != null) {
                 try {
                     mBar.appTransitionStarting(
@@ -567,8 +598,8 @@
     }
 
     @Override
-    public void showBiometricDialog(Bundle bundle, IBiometricPromptReceiver receiver, int type,
-            boolean requireConfirmation, int userId) {
+    public void showBiometricDialog(Bundle bundle, IBiometricServiceReceiverInternal receiver,
+            int type, boolean requireConfirmation, int userId) {
         enforceBiometricDialog();
         if (mBar != null) {
             try {
@@ -623,6 +654,17 @@
     }
 
     @Override
+    public void showBiometricTryAgain() {
+        enforceBiometricDialog();
+        if (mBar != null) {
+            try {
+                mBar.showBiometricTryAgain();
+            } catch (RemoteException ex) {
+            }
+        }
+    }
+
+    @Override
     public void disable(int what, IBinder token, String pkg) {
         disableForUser(what, token, pkg, mCurrentUserId);
     }
@@ -1050,14 +1092,16 @@
     }
 
     @Override
-    public void onNotificationActionClick(String key, int actionIndex, NotificationVisibility nv) {
+    public void onNotificationActionClick(
+            String key, int actionIndex, Notification.Action action, NotificationVisibility nv,
+            boolean generatedByAssistant) {
         enforceStatusBarService();
         final int callingUid = Binder.getCallingUid();
         final int callingPid = Binder.getCallingPid();
         long identity = Binder.clearCallingIdentity();
         try {
             mNotificationDelegate.onNotificationActionClick(callingUid, callingPid, key,
-                    actionIndex, nv);
+                    actionIndex, action, nv, generatedByAssistant);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -1147,12 +1191,14 @@
     }
 
     @Override
-    public void onNotificationSmartReplySent(String key, int replyIndex)
+    public void onNotificationSmartReplySent(
+            String key, int replyIndex, CharSequence reply, boolean generatedByAssistant)
             throws RemoteException {
         enforceStatusBarService();
         long identity = Binder.clearCallingIdentity();
         try {
-            mNotificationDelegate.onNotificationSmartReplySent(key, replyIndex);
+            mNotificationDelegate.onNotificationSmartReplySent(key, replyIndex, reply,
+                    generatedByAssistant);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
diff --git a/services/core/java/com/android/server/storage/AppFuseBridge.java b/services/core/java/com/android/server/storage/AppFuseBridge.java
index 6a0b648..9d6a647 100644
--- a/services/core/java/com/android/server/storage/AppFuseBridge.java
+++ b/services/core/java/com/android/server/storage/AppFuseBridge.java
@@ -16,6 +16,7 @@
 
 package com.android.server.storage;
 
+import android.os.FileUtils;
 import android.os.ParcelFileDescriptor;
 import android.system.ErrnoException;
 import android.system.Os;
@@ -25,8 +26,6 @@
 import com.android.internal.util.Preconditions;
 import com.android.server.NativeDaemonConnectorException;
 import libcore.io.IoUtils;
-import java.io.File;
-import java.io.FileNotFoundException;
 import java.util.concurrent.CountDownLatch;
 
 /**
@@ -87,7 +86,7 @@
         }
     }
 
-    public ParcelFileDescriptor openFile(int pid, int mountId, int fileId, int mode)
+    public ParcelFileDescriptor openFile(int mountId, int fileId, int mode)
             throws FuseUnavailableMountException, InterruptedException {
         final MountScope scope;
         synchronized (this) {
@@ -96,17 +95,14 @@
                 throw new FuseUnavailableMountException(mountId);
             }
         }
-        if (scope.pid != pid) {
-            throw new SecurityException("PID does not match");
-        }
         final boolean result = scope.waitForMount();
         if (result == false) {
             throw new FuseUnavailableMountException(mountId);
         }
         try {
-            return ParcelFileDescriptor.open(
-                    new File(scope.mountPoint, String.valueOf(fileId)), mode);
-        } catch (FileNotFoundException error) {
+            int flags = FileUtils.translateModePfdToPosix(mode);
+            return scope.openFile(mountId, fileId, flags);
+        } catch (NativeDaemonConnectorException error) {
             throw new FuseUnavailableMountException(mountId);
         }
     }
@@ -131,17 +127,13 @@
 
     public static abstract class MountScope implements AutoCloseable {
         public final int uid;
-        public final int pid;
         public final int mountId;
-        public final File mountPoint;
         private final CountDownLatch mMounted = new CountDownLatch(1);
         private boolean mMountResult = false;
 
-        public MountScope(int uid, int pid, int mountId) {
+        public MountScope(int uid, int mountId) {
             this.uid = uid;
-            this.pid = pid;
             this.mountId = mountId;
-            this.mountPoint = new File(String.format(APPFUSE_MOUNT_NAME_TEMPLATE,  uid, mountId));
         }
 
         @GuardedBy("AppFuseBridge.this")
@@ -159,6 +151,8 @@
         }
 
         public abstract ParcelFileDescriptor open() throws NativeDaemonConnectorException;
+        public abstract ParcelFileDescriptor openFile(int mountId, int fileId, int flags)
+                throws NativeDaemonConnectorException;
     }
 
     private native long native_new();
diff --git a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
index 5ce8145..c8a68b4 100644
--- a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
+++ b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
@@ -28,18 +28,22 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.service.textclassifier.IConversationActionsCallback;
 import android.service.textclassifier.ITextClassificationCallback;
 import android.service.textclassifier.ITextClassifierService;
+import android.service.textclassifier.ITextLanguageCallback;
 import android.service.textclassifier.ITextLinksCallback;
 import android.service.textclassifier.ITextSelectionCallback;
 import android.service.textclassifier.TextClassifierService;
 import android.util.Slog;
 import android.util.SparseArray;
+import android.view.textclassifier.ConversationActions;
 import android.view.textclassifier.SelectionEvent;
 import android.view.textclassifier.TextClassification;
 import android.view.textclassifier.TextClassificationContext;
 import android.view.textclassifier.TextClassificationManager;
 import android.view.textclassifier.TextClassificationSessionId;
+import android.view.textclassifier.TextLanguage;
 import android.view.textclassifier.TextLinks;
 import android.view.textclassifier.TextSelection;
 
@@ -210,6 +214,50 @@
     }
 
     @Override
+    public void onDetectLanguage(
+            TextClassificationSessionId sessionId,
+            TextLanguage.Request request,
+            ITextLanguageCallback callback) throws RemoteException {
+        Preconditions.checkNotNull(request);
+        Preconditions.checkNotNull(callback);
+
+        synchronized (mLock) {
+            UserState userState = getCallingUserStateLocked();
+            if (!userState.bindLocked()) {
+                callback.onFailure();
+            } else if (userState.isBoundLocked()) {
+                userState.mService.onDetectLanguage(sessionId, request, callback);
+            } else {
+                userState.mPendingRequests.add(new PendingRequest(
+                        () -> onDetectLanguage(sessionId, request, callback),
+                        callback::onFailure, callback.asBinder(), this, userState));
+            }
+        }
+    }
+
+    @Override
+    public void onSuggestConversationActions(
+            TextClassificationSessionId sessionId,
+            ConversationActions.Request request,
+            IConversationActionsCallback callback) throws RemoteException {
+        Preconditions.checkNotNull(request);
+        Preconditions.checkNotNull(callback);
+
+        synchronized (mLock) {
+            UserState userState = getCallingUserStateLocked();
+            if (!userState.bindLocked()) {
+                callback.onFailure();
+            } else if (userState.isBoundLocked()) {
+                userState.mService.onSuggestConversationActions(sessionId, request, callback);
+            } else {
+                userState.mPendingRequests.add(new PendingRequest(
+                        () -> onSuggestConversationActions(sessionId, request, callback),
+                        callback::onFailure, callback.asBinder(), this, userState));
+            }
+        }
+    }
+
+    @Override
     public void onCreateTextClassificationSession(
             TextClassificationContext classificationContext, TextClassificationSessionId sessionId)
             throws RemoteException {
@@ -354,7 +402,7 @@
             throws RemoteException {
         try {
             final int uid = context.getPackageManager()
-                    .getPackageUid(packageName, 0);
+                    .getPackageUidAsUser(packageName, UserHandle.getCallingUserId());
             Preconditions.checkArgument(Binder.getCallingUid() == uid);
         } catch (IllegalArgumentException | NullPointerException |
                 PackageManager.NameNotFoundException e) {
diff --git a/services/core/java/com/android/server/timezone/RulesManagerService.java b/services/core/java/com/android/server/timezone/RulesManagerService.java
index c4d2851..4b413e5 100644
--- a/services/core/java/com/android/server/timezone/RulesManagerService.java
+++ b/services/core/java/com/android/server/timezone/RulesManagerService.java
@@ -48,8 +48,8 @@
 import java.util.concurrent.atomic.AtomicBoolean;
 import libcore.icu.ICU;
 import libcore.timezone.TzDataSetVersion;
-import libcore.util.TimeZoneFinder;
-import libcore.util.ZoneInfoDB;
+import libcore.timezone.TimeZoneFinder;
+import libcore.timezone.ZoneInfoDB;
 
 import static android.app.timezone.RulesState.DISTRO_STATUS_INSTALLED;
 import static android.app.timezone.RulesState.DISTRO_STATUS_NONE;
diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java
index d5e59c8..1163d39 100644
--- a/services/core/java/com/android/server/tv/TvInputManagerService.java
+++ b/services/core/java/com/android/server/tv/TvInputManagerService.java
@@ -626,7 +626,7 @@
         updateServiceConnectionLocked(serviceState.component, userId);
     }
 
-    private void createSessionInternalLocked(ITvInputService service, IBinder sessionToken,
+    private boolean createSessionInternalLocked(ITvInputService service, IBinder sessionToken,
             int userId) {
         UserState userState = getOrCreateUserStateLocked(userId);
         SessionState sessionState = userState.sessionStateMap.get(sessionToken);
@@ -638,6 +638,7 @@
         // Set up a callback to send the session token.
         ITvInputSessionCallback callback = new SessionCallback(sessionState, channels);
 
+        boolean created = true;
         // Create a session. When failed, send a null token immediately.
         try {
             if (sessionState.isRecordingSession) {
@@ -647,11 +648,12 @@
             }
         } catch (RemoteException e) {
             Slog.e(TAG, "error in createSession", e);
-            removeSessionStateLocked(sessionToken, userId);
             sendSessionTokenToClientLocked(sessionState.client, sessionState.inputId, null,
                     null, sessionState.seq);
+            created = false;
         }
         channels[1].dispose();
+        return created;
     }
 
     private void sendSessionTokenToClientLocked(ITvInputClient client, String inputId,
@@ -1193,8 +1195,10 @@
                     serviceState.sessionTokens.add(sessionToken);
 
                     if (serviceState.service != null) {
-                        createSessionInternalLocked(serviceState.service, sessionToken,
-                                resolvedUserId);
+                        if (!createSessionInternalLocked(serviceState.service, sessionToken,
+                                resolvedUserId)) {
+                            removeSessionStateLocked(sessionToken, resolvedUserId);
+                        }
                     } else {
                         updateServiceConnectionLocked(info.getComponent(), resolvedUserId);
                     }
@@ -2282,9 +2286,17 @@
                     }
                 }
 
+                List<IBinder> tokensToBeRemoved = new ArrayList<>();
+
                 // And create sessions, if any.
                 for (IBinder sessionToken : serviceState.sessionTokens) {
-                    createSessionInternalLocked(serviceState.service, sessionToken, mUserId);
+                    if (!createSessionInternalLocked(serviceState.service, sessionToken, mUserId)) {
+                        tokensToBeRemoved.add(sessionToken);
+                    }
+                }
+
+                for (IBinder sessionToken : tokensToBeRemoved) {
+                    removeSessionStateLocked(sessionToken, mUserId);
                 }
 
                 for (TvInputState inputState : userState.inputMap.values()) {
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/services/core/java/com/android/server/updates/ConversationActionsInstallReceiver.java
similarity index 62%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to services/core/java/com/android/server/updates/ConversationActionsInstallReceiver.java
index 27d25b8..7310af3 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/services/core/java/com/android/server/updates/ConversationActionsInstallReceiver.java
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.server.updates;
+
+public class ConversationActionsInstallReceiver extends ConfigUpdateInstallReceiver {
+
+    public ConversationActionsInstallReceiver() {
+        super(
+                "/data/misc/textclassifier/",
+                "actions_suggestions.model",
+                "metadata/actions_suggestions",
+                "version");
+    }
 }
diff --git a/services/core/java/com/android/server/updates/LangIdInstallReceiver.java b/services/core/java/com/android/server/updates/LangIdInstallReceiver.java
index dfe02ec..05dad21 100644
--- a/services/core/java/com/android/server/updates/LangIdInstallReceiver.java
+++ b/services/core/java/com/android/server/updates/LangIdInstallReceiver.java
@@ -21,8 +21,8 @@
     public LangIdInstallReceiver() {
         super(
             "/data/misc/textclassifier/",
-            "textclassifier.langid.model",
-            "metadata/langid",
+            "lang_id.model",
+            "metadata/lang_id",
             "version");
     }
 }
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index 479f427..cfec8ef 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -18,6 +18,7 @@
 
 import static android.app.WallpaperManager.FLAG_LOCK;
 import static android.app.WallpaperManager.FLAG_SYSTEM;
+import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AUTO;
 import static android.os.ParcelFileDescriptor.MODE_CREATE;
 import static android.os.ParcelFileDescriptor.MODE_READ_ONLY;
 import static android.os.ParcelFileDescriptor.MODE_READ_WRITE;
@@ -56,6 +57,7 @@
 import android.graphics.BitmapRegionDecoder;
 import android.graphics.Color;
 import android.graphics.Rect;
+import android.hardware.display.DisplayManager;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Environment;
@@ -86,7 +88,6 @@
 import android.util.Xml;
 import android.view.Display;
 import android.view.IWindowManager;
-import android.view.WindowManager;
 
 import com.android.internal.R;
 import com.android.internal.content.PackageMonitor;
@@ -118,6 +119,7 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.function.Consumer;
 
 public class WallpaperManagerService extends IWallpaperManager.Stub
         implements IWallpaperManagerService {
@@ -484,6 +486,8 @@
     private void generateCrop(WallpaperData wallpaper) {
         boolean success = false;
 
+        // Only generate crop for default display.
+        final WallpaperData.DisplayData wpData = getDisplayDataOrCreate(wallpaper, DEFAULT_DISPLAY);
         Rect cropHint = new Rect(wallpaper.cropHint);
 
         if (DEBUG) {
@@ -491,7 +495,7 @@
                     + Integer.toHexString(wallpaper.whichPending)
                     + " to " + wallpaper.cropFile.getName()
                     + " crop=(" + cropHint.width() + 'x' + cropHint.height()
-                    + ") dim=(" + wallpaper.width + 'x' + wallpaper.height + ')');
+                    + ") dim=(" + wpData.mWidth + 'x' + wpData.mHeight + ')');
         }
 
         // Analyse the source; needed in multiple cases
@@ -530,11 +534,11 @@
             }
 
             // scale if the crop height winds up not matching the recommended metrics
-            needScale = (wallpaper.height != cropHint.height());
+            needScale = (wpData.mHeight != cropHint.height());
 
             if (DEBUG) {
                 Slog.v(TAG, "crop: w=" + cropHint.width() + " h=" + cropHint.height());
-                Slog.v(TAG, "dims: w=" + wallpaper.width + " h=" + wallpaper.height);
+                Slog.v(TAG, "dims: w=" + wpData.mWidth + " h=" + wpData.mHeight);
                 Slog.v(TAG, "meas: w=" + options.outWidth + " h=" + options.outHeight);
                 Slog.v(TAG, "crop?=" + needCrop + " scale?=" + needScale);
             }
@@ -564,7 +568,7 @@
                     // just let the decode take care of it because we also want to remap where the
                     // cropHint rectangle lies in the decoded [super]rect.
                     final BitmapFactory.Options scaler;
-                    final int actualScale = cropHint.height() / wallpaper.height;
+                    final int actualScale = cropHint.height() / wpData.mHeight;
                     int scale = 1;
                     while (2*scale < actualScale) {
                         scale *= 2;
@@ -590,17 +594,18 @@
                         cropHint.offsetTo(0, 0);
                         cropHint.right /= scale;    // adjust by downsampling factor
                         cropHint.bottom /= scale;
-                        final float heightR = ((float)wallpaper.height) / ((float)cropHint.height());
+                        final float heightR =
+                                ((float) wpData.mHeight) / ((float) cropHint.height());
                         if (DEBUG) {
                             Slog.v(TAG, "scale " + heightR + ", extracting " + cropHint);
                         }
                         final int destWidth = (int)(cropHint.width() * heightR);
                         final Bitmap finalCrop = Bitmap.createScaledBitmap(cropped,
-                                destWidth, wallpaper.height, true);
+                                destWidth, wpData.mHeight, true);
                         if (DEBUG) {
                             Slog.v(TAG, "Final extract:");
-                            Slog.v(TAG, "  dims: w=" + wallpaper.width
-                                    + " h=" + wallpaper.height);
+                            Slog.v(TAG, "  dims: w=" + wpData.mWidth
+                                    + " h=" + wpData.mHeight);
                             Slog.v(TAG, "   out: w=" + finalCrop.getWidth()
                                     + " h=" + finalCrop.getHeight());
                         }
@@ -640,6 +645,43 @@
     final IPackageManager mIPackageManager;
     final MyPackageMonitor mMonitor;
     final AppOpsManager mAppOpsManager;
+
+    private final DisplayManager mDisplayManager;
+    private final DisplayManager.DisplayListener mDisplayListener =
+            new DisplayManager.DisplayListener() {
+
+        @Override
+        public void onDisplayAdded(int displayId) {
+            synchronized (mLock) {
+                if (mLastWallpaper != null) {
+                    final WallpaperConnection.DisplayConnector connector =
+                            mLastWallpaper.connection.getDisplayConnectorOrCreate(displayId);
+                    if (connector == null) return;
+
+                    connector.connectLocked(mLastWallpaper.connection, mLastWallpaper);
+                }
+            }
+        }
+
+        @Override
+        public void onDisplayRemoved(int displayId) {
+            synchronized (mLock) {
+                if (mLastWallpaper != null) {
+                    final WallpaperConnection.DisplayConnector connector =
+                            mLastWallpaper.connection.getDisplayConnectorOrCreate(displayId);
+                    if (connector == null) return;
+                    connector.disconnectLocked();
+                    mLastWallpaper.connection.removeDisplayConnector(displayId);
+                    mLastWallpaper.removeDisplayData(displayId);
+                }
+            }
+        }
+
+        @Override
+        public void onDisplayChanged(int displayId) {
+        }
+    };
+
     /**
      * Map of color listeners per user id.
      * The key will be the id of a user or UserHandle.USER_ALL - for wildcard listeners.
@@ -738,16 +780,23 @@
         private RemoteCallbackList<IWallpaperManagerCallback> callbacks
                 = new RemoteCallbackList<IWallpaperManagerCallback>();
 
-        int width = -1;
-        int height = -1;
+        private static final class DisplayData {
+            int mWidth = -1;
+            int mHeight = -1;
+            final Rect mPadding = new Rect(0, 0, 0, 0);
+            final int mDisplayId;
+
+            DisplayData(int displayId) {
+                mDisplayId = displayId;
+            }
+        }
+        private SparseArray<DisplayData> mDisplayDatas = new SparseArray<>();
 
         /**
          * The crop hint supplied for displaying a subset of the source image
          */
         final Rect cropHint = new Rect(0, 0, 0, 0);
 
-        final Rect padding = new Rect(0, 0, 0, 0);
-
         WallpaperData(int userId, String inputFileName, String cropFileName) {
             this.userId = userId;
             final File wallpaperDir = getWallpaperDir(userId);
@@ -763,6 +812,44 @@
         boolean sourceExists() {
             return wallpaperFile.exists();
         }
+
+        void removeDisplayData(int displayId) {
+            mDisplayDatas.remove(displayId);
+        }
+    }
+
+    private WallpaperData.DisplayData getDisplayDataOrCreate(WallpaperData data, int displayId) {
+        WallpaperData.DisplayData wpdData = data.mDisplayDatas.get(displayId);
+        if (wpdData == null) {
+            wpdData = new WallpaperData.DisplayData(displayId);
+            ensureSaneWallpaperDisplaySize(wpdData, displayId);
+            data.mDisplayDatas.append(displayId, wpdData);
+        }
+        return wpdData;
+    }
+
+    private void ensureSaneWallpaperDisplaySize(WallpaperData.DisplayData wpdData,
+            int displayId) {
+        // We always want to have some reasonable width hint.
+        final int baseSize = getMaximumSizeDimension(displayId);
+        if (wpdData.mWidth < baseSize) {
+            wpdData.mWidth = baseSize;
+        }
+        if (wpdData.mHeight < baseSize) {
+            wpdData.mHeight = baseSize;
+        }
+    }
+
+    private int getMaximumSizeDimension(int displayId) {
+        Display display = mDisplayManager.getDisplay(displayId);
+        return display.getMaximumSizeDimension();
+    }
+
+    void forEachDisplayData(WallpaperData data, Consumer<WallpaperData.DisplayData> action) {
+        for (int i = data.mDisplayDatas.size() - 1; i >= 0; i--) {
+            final WallpaperData.DisplayData wpdData = data.mDisplayDatas.valueAt(i);
+            action.accept(wpdData);
+        }
     }
 
     int makeWallpaperIdLocked() {
@@ -775,20 +862,98 @@
     class WallpaperConnection extends IWallpaperConnection.Stub
             implements ServiceConnection {
 
+        /**
+         * Collect needed info for a display.
+         */
+        private final class DisplayConnector {
+            final int mDisplayId;
+            final Binder mToken = new Binder();
+            IWallpaperEngine mEngine;
+            boolean mDimensionsChanged;
+            boolean mPaddingChanged;
+
+            DisplayConnector(int displayId) {
+                mDisplayId = displayId;
+            }
+
+            void ensureStatusHandled() {
+                final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(mWallpaper,
+                        mDisplayId);
+                if (mDimensionsChanged) {
+                    try {
+                        mEngine.setDesiredSize(wpdData.mWidth, wpdData.mHeight);
+                    } catch (RemoteException e) {
+                        Slog.w(TAG, "Failed to set wallpaper dimensions", e);
+                    }
+                    mDimensionsChanged = false;
+                }
+                if (mPaddingChanged) {
+                    try {
+                        mEngine.setDisplayPadding(wpdData.mPadding);
+                    } catch (RemoteException e) {
+                        Slog.w(TAG, "Failed to set wallpaper padding", e);
+                    }
+                    mPaddingChanged = false;
+                }
+            }
+
+            void connectLocked(WallpaperConnection connection, WallpaperData wallpaper) {
+                if (DEBUG) Slog.v(TAG, "Adding window token: " + mToken);
+                try {
+                    mIWindowManager.addWindowToken(mToken, TYPE_WALLPAPER, mDisplayId);
+                } catch (RemoteException e) {
+                    Slog.e(TAG, "Failed add wallpaper window token on display " + mDisplayId, e);
+                    return;
+                }
+
+                final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(wallpaper,
+                        mDisplayId);
+                try {
+                    connection.mService.attach(connection, mToken, TYPE_WALLPAPER, false,
+                            wpdData.mWidth, wpdData.mHeight,
+                            wpdData.mPadding, mDisplayId);
+                } catch (RemoteException e) {
+                    Slog.w(TAG, "Failed attaching wallpaper on display", e);
+                    if (mLastWallpaper != null && !mLastWallpaper.wallpaperUpdating
+                            && connection.getConnectedEngineSize() == 0) {
+                        bindWallpaperComponentLocked(null /* componentName */, false /* force */,
+                                false /* fromUser */, wallpaper, null /* reply */);
+                    }
+                }
+            }
+
+            void disconnectLocked() {
+                if (DEBUG) Slog.v(TAG, "Removing window token: " + mToken);
+                try {
+                    mIWindowManager.removeWindowToken(mToken, mDisplayId);
+                } catch (RemoteException e) {
+                }
+                try {
+                    if (mEngine != null) {
+                        mEngine.destroy();
+                    }
+                } catch (RemoteException e) {
+                }
+                mEngine = null;
+            }
+        }
+
+        /**
+         * A map for each display.
+         * Use {@link #getDisplayConnectorOrCreate(int displayId)} to ensure the display is usable.
+         */
+        private SparseArray<DisplayConnector> mDisplayConnector = new SparseArray<>();
+
         /** Time in milliseconds until we expect the wallpaper to reconnect (unless we're in the
          *  middle of an update). If exceeded, the wallpaper gets reset to the system default. */
         private static final long WALLPAPER_RECONNECT_TIMEOUT_MS = 10000;
 
         final WallpaperInfo mInfo;
-        final Binder mToken = new Binder();
         IWallpaperService mService;
-        IWallpaperEngine mEngine;
         WallpaperData mWallpaper;
+        final int mClientUid;
         IRemoteCallback mReply;
 
-        boolean mDimensionsChanged = false;
-        boolean mPaddingChanged = false;
-
         private Runnable mResetRunnable = () -> {
             synchronized (mLock) {
                 if (mShuttingDown) {
@@ -809,9 +974,64 @@
             }
         };
 
-        public WallpaperConnection(WallpaperInfo info, WallpaperData wallpaper) {
+        WallpaperConnection(WallpaperInfo info, WallpaperData wallpaper, int clientUid) {
             mInfo = info;
             mWallpaper = wallpaper;
+            mClientUid = clientUid;
+            initDisplayState();
+        }
+
+        private void initDisplayState() {
+            final Display[] displays = mDisplayManager.getDisplays();
+            for (Display display : displays) {
+                if (isUsableDisplay(display)) {
+                    final int displayId = display.getDisplayId();
+                    mDisplayConnector.append(displayId, new DisplayConnector(displayId));
+                }
+            }
+        }
+
+        // TODO(b/115486823) Support the system decorations change at runtime.
+        private boolean isUsableDisplay(Display display) {
+            return display != null &&  display.hasAccess(mClientUid)
+                    // TODO(b/114338689) Use WindowManager.supportsSystemDecorations when ready
+                    && (display.supportsSystemDecorations()
+                            || display.getDisplayId() == DEFAULT_DISPLAY);
+        }
+
+        void forEachDisplayConnector(Consumer<DisplayConnector> action) {
+            for (int i = mDisplayConnector.size() - 1; i >= 0; i--) {
+                final DisplayConnector connector = mDisplayConnector.valueAt(i);
+                action.accept(connector);
+            }
+        }
+
+        int getConnectedEngineSize() {
+            int engineSize = 0;
+            for (int i = mDisplayConnector.size() - 1; i >= 0; i--) {
+                final DisplayConnector connector = mDisplayConnector.valueAt(i);
+                if (connector.mEngine != null) engineSize++;
+            }
+            return engineSize;
+        }
+
+        DisplayConnector getDisplayConnectorOrCreate(int displayId) {
+            DisplayConnector connector = mDisplayConnector.get(displayId);
+            if (connector == null) {
+                final Display display = mDisplayManager.getDisplay(displayId);
+                if (isUsableDisplay(display)) {
+                    connector = new DisplayConnector(displayId);
+                    mDisplayConnector.append(displayId, connector);
+                }
+            }
+            return connector;
+        }
+
+        void removeDisplayConnector(int displayId) {
+            final DisplayConnector connector = mDisplayConnector.get(displayId);
+            if (connector != null) {
+                mDisplayConnector.remove(displayId);
+            }
         }
 
         @Override
@@ -839,7 +1059,7 @@
                             + mWallpaper.wallpaperComponent);
                 }
                 mService = null;
-                mEngine = null;
+                forEachDisplayConnector(connector -> connector.mEngine = null);
                 if (mWallpaper.connection == this) {
                     // There is an inherent ordering race between this callback and the
                     // package monitor that receives notice that a package is being updated,
@@ -863,7 +1083,8 @@
             fgHandler.removeCallbacks(mResetRunnable);
             fgHandler.postDelayed(mResetRunnable, WALLPAPER_RECONNECT_TIMEOUT_MS);
             if (DEBUG_LIVE) {
-                Slog.i(TAG, "Started wallpaper reconnect timeout for " + mWallpaper.wallpaperComponent);
+                Slog.i(TAG,
+                        "Started wallpaper reconnect timeout for " + mWallpaper.wallpaperComponent);
             }
         }
 
@@ -943,38 +1164,38 @@
         }
 
         @Override
-        public void attachEngine(IWallpaperEngine engine) {
+        public void attachEngine(IWallpaperEngine engine, int displayId) {
             synchronized (mLock) {
-                mEngine = engine;
-                if (mDimensionsChanged) {
+                final DisplayConnector connector = getDisplayConnectorOrCreate(displayId);
+                if (connector == null) {
                     try {
-                        mEngine.setDesiredSize(mWallpaper.width, mWallpaper.height);
+                        engine.destroy();
                     } catch (RemoteException e) {
-                        Slog.w(TAG, "Failed to set wallpaper dimensions", e);
+                        Slog.w(TAG, "Failed to destroy engine", e);
                     }
-                    mDimensionsChanged = false;
+                    return;
                 }
-                if (mPaddingChanged) {
+                connector.mEngine = engine;
+                connector.ensureStatusHandled();
+
+                // TODO(multi-display) TBD.
+                if (mInfo != null && mInfo.supportsAmbientMode() && displayId == DEFAULT_DISPLAY) {
                     try {
-                        mEngine.setDisplayPadding(mWallpaper.padding);
-                    } catch (RemoteException e) {
-                        Slog.w(TAG, "Failed to set wallpaper padding", e);
-                    }
-                    mPaddingChanged = false;
-                }
-                if (mInfo != null && mInfo.supportsAmbientMode()) {
-                    try {
-                        mEngine.setInAmbientMode(mInAmbientMode, false /* animated */);
+                        connector.mEngine.setInAmbientMode(mInAmbientMode, 0L /* duration */);
                     } catch (RemoteException e) {
                         Slog.w(TAG, "Failed to set ambient mode state", e);
                     }
                 }
-                try {
-                    // This will trigger onComputeColors in the wallpaper engine.
-                    // It's fine to be locked in here since the binder is oneway.
-                    mEngine.requestWallpaperColors();
-                } catch (RemoteException e) {
-                    Slog.w(TAG, "Failed to request wallpaper colors", e);
+                // TODO(multi-display) So far, we have shared the same wallpaper on each display.
+                // Once we have multiple wallpapers on multiple displays, please complete here.
+                if (displayId == DEFAULT_DISPLAY) {
+                    try {
+                        // This will trigger onComputeColors in the wallpaper engine.
+                        // It's fine to be locked in here since the binder is oneway.
+                        connector.mEngine.requestWallpaperColors();
+                    } catch (RemoteException e) {
+                        Slog.w(TAG, "Failed to request wallpaper colors", e);
+                    }
                 }
             }
         }
@@ -1162,6 +1383,8 @@
                 ServiceManager.getService(Context.WINDOW_SERVICE));
         mIPackageManager = AppGlobals.getPackageManager();
         mAppOpsManager = (AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE);
+        mDisplayManager = mContext.getSystemService(DisplayManager.class);
+        mDisplayManager.registerDisplayListener(mDisplayListener, null /* handler */);
         mMonitor = new MyPackageMonitor();
         mColorsChangedListeners = new SparseArray<>();
     }
@@ -1396,7 +1619,7 @@
                     wallpaper.wallpaperComponent = wallpaper.nextWallpaperComponent;
                     final WallpaperData fallback = new WallpaperData(wallpaper.userId,
                             WALLPAPER_LOCK_ORIG, WALLPAPER_LOCK_CROP);
-                    ensureSaneWallpaperData(fallback);
+                    ensureSaneWallpaperData(fallback, DEFAULT_DISPLAY);
                     bindWallpaperComponentLocked(mImageWallpaper, true, false, fallback, reply);
                     mWaitingForUnlock = true;
                 }
@@ -1541,7 +1764,15 @@
         return false;
     }
 
-    public void setDimensionHints(int width, int height, String callingPackage)
+    private boolean isValidDisplay(int displayId) {
+        return mDisplayManager.getDisplay(displayId) != null;
+    }
+
+    /**
+     * Sets the dimension hint for the wallpaper. These hints indicate the desired
+     * minimum width and height for the wallpaper in a particular display.
+     */
+    public void setDimensionHints(int width, int height, String callingPackage, int displayId)
             throws RemoteException {
         checkPermission(android.Manifest.permission.SET_WALLPAPER_HINTS);
         if (!isWallpaperSupported(callingPackage)) {
@@ -1554,80 +1785,113 @@
                 throw new IllegalArgumentException("width and height must be > 0");
             }
 
-            if (width != wallpaper.width || height != wallpaper.height) {
-                wallpaper.width = width;
-                wallpaper.height = height;
-                saveSettingsLocked(userId);
+            if (!isValidDisplay(displayId)) {
+                throw new IllegalArgumentException("Cannot find display with id=" + displayId);
+            }
+
+            final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(wallpaper, displayId);
+            if (width != wpdData.mWidth || height != wpdData.mHeight) {
+                wpdData.mWidth = width;
+                wpdData.mHeight = height;
+                if (displayId == DEFAULT_DISPLAY) saveSettingsLocked(userId);
                 if (mCurrentUserId != userId) return; // Don't change the properties now
                 if (wallpaper.connection != null) {
-                    if (wallpaper.connection.mEngine != null) {
+                    final WallpaperConnection.DisplayConnector connector = wallpaper.connection
+                            .getDisplayConnectorOrCreate(displayId);
+                    final IWallpaperEngine engine = connector != null ? connector.mEngine : null;
+                    if (engine != null) {
                         try {
-                            wallpaper.connection.mEngine.setDesiredSize(
-                                    width, height);
+                            engine.setDesiredSize(width, height);
                         } catch (RemoteException e) {
                         }
                         notifyCallbacksLocked(wallpaper);
-                    } else if (wallpaper.connection.mService != null) {
+                    } else if (wallpaper.connection.mService != null && connector != null) {
                         // We've attached to the service but the engine hasn't attached back to us
                         // yet. This means it will be created with the previous dimensions, so we
                         // need to update it to the new dimensions once it attaches.
-                        wallpaper.connection.mDimensionsChanged = true;
+                        connector.mDimensionsChanged = true;
                     }
                 }
             }
         }
     }
 
-    public int getWidthHint() throws RemoteException {
+    /**
+     * Returns the desired minimum width for the wallpaper in a particular display.
+     */
+    public int getWidthHint(int displayId) throws RemoteException {
         synchronized (mLock) {
+            if (!isValidDisplay(displayId)) {
+                throw new IllegalArgumentException("Cannot find display with id=" + displayId);
+            }
             WallpaperData wallpaper = mWallpaperMap.get(UserHandle.getCallingUserId());
             if (wallpaper != null) {
-                return wallpaper.width;
+                final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(wallpaper,
+                        displayId);
+                return wpdData.mWidth;
             } else {
                 return 0;
             }
         }
     }
 
-    public int getHeightHint() throws RemoteException {
+    /**
+     * Returns the desired minimum height for the wallpaper in a particular display.
+     */
+    public int getHeightHint(int displayId) throws RemoteException {
         synchronized (mLock) {
+            if (!isValidDisplay(displayId)) {
+                throw new IllegalArgumentException("Cannot find display with id=" + displayId);
+            }
             WallpaperData wallpaper = mWallpaperMap.get(UserHandle.getCallingUserId());
             if (wallpaper != null) {
-                return wallpaper.height;
+                final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(wallpaper,
+                        displayId);
+                return wpdData.mHeight;
             } else {
                 return 0;
             }
         }
     }
 
-    public void setDisplayPadding(Rect padding, String callingPackage) {
+    /**
+     * Sets extra padding that we would like the wallpaper to have outside of the display.
+     */
+    public void setDisplayPadding(Rect padding, String callingPackage, int displayId) {
         checkPermission(android.Manifest.permission.SET_WALLPAPER_HINTS);
         if (!isWallpaperSupported(callingPackage)) {
             return;
         }
         synchronized (mLock) {
+            if (!isValidDisplay(displayId)) {
+                throw new IllegalArgumentException("Cannot find display with id=" + displayId);
+            }
             int userId = UserHandle.getCallingUserId();
             WallpaperData wallpaper = getWallpaperSafeLocked(userId, FLAG_SYSTEM);
             if (padding.left < 0 || padding.top < 0 || padding.right < 0 || padding.bottom < 0) {
                 throw new IllegalArgumentException("padding must be positive: " + padding);
             }
 
-            if (!padding.equals(wallpaper.padding)) {
-                wallpaper.padding.set(padding);
-                saveSettingsLocked(userId);
+            final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(wallpaper, displayId);
+            if (!padding.equals(wpdData.mPadding)) {
+                wpdData.mPadding.set(padding);
+                if (displayId == DEFAULT_DISPLAY) saveSettingsLocked(userId);
                 if (mCurrentUserId != userId) return; // Don't change the properties now
                 if (wallpaper.connection != null) {
-                    if (wallpaper.connection.mEngine != null) {
+                    final WallpaperConnection.DisplayConnector connector = wallpaper.connection
+                            .getDisplayConnectorOrCreate(displayId);
+                    final IWallpaperEngine engine = connector != null ? connector.mEngine : null;
+                    if (engine != null) {
                         try {
-                            wallpaper.connection.mEngine.setDisplayPadding(padding);
+                            engine.setDisplayPadding(padding);
                         } catch (RemoteException e) {
                         }
                         notifyCallbacksLocked(wallpaper);
-                    } else if (wallpaper.connection.mService != null) {
+                    } else if (wallpaper.connection.mService != null && connector != null) {
                         // We've attached to the service but the engine hasn't attached back to us
                         // yet. This means it will be created with the previous dimensions, so we
                         // need to update it to the new dimensions once it attaches.
-                        wallpaper.connection.mPaddingChanged = true;
+                        connector.mPaddingChanged = true;
                     }
                 }
             }
@@ -1675,10 +1939,13 @@
                 // user switch)
                 return null;
             }
+            // Only for default display.
+            final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(wallpaper,
+                    DEFAULT_DISPLAY);
             try {
                 if (outParams != null) {
-                    outParams.putInt("width", wallpaper.width);
-                    outParams.putInt("height", wallpaper.height);
+                    outParams.putInt("width", wpdData.mWidth);
+                    outParams.putInt("height", wpdData.mHeight);
                 }
                 if (cb != null) {
                     wallpaper.callbacks.register(cb);
@@ -1756,14 +2023,22 @@
         }
     }
 
-    public void setInAmbientMode(boolean inAmbienMode, boolean animated) {
+    /**
+     * TODO(b/115486823) Extends this method with specific display.
+     * Propagate ambient state to wallpaper engine.
+     *
+     * @param inAmbientMode {@code true} when in ambient mode, {@code false} otherwise.
+     * @param animationDuration Duration of the animation, or 0 when immediate.
+     */
+    public void setInAmbientMode(boolean inAmbientMode, long animationDuration) {
         final IWallpaperEngine engine;
         synchronized (mLock) {
-            mInAmbientMode = inAmbienMode;
+            mInAmbientMode = inAmbientMode;
             final WallpaperData data = mWallpaperMap.get(mCurrentUserId);
             if (data != null && data.connection != null && data.connection.mInfo != null
                     && data.connection.mInfo.supportsAmbientMode()) {
-                engine = data.connection.mEngine;
+                // TODO(b/115486823) Extends this method with specific display.
+                engine = data.connection.getDisplayConnectorOrCreate(DEFAULT_DISPLAY).mEngine;
             } else {
                 engine = null;
             }
@@ -1771,7 +2046,7 @@
 
         if (engine != null) {
             try {
-                engine.setInAmbientMode(inAmbienMode, animated);
+                engine.setInAmbientMode(inAmbientMode, animationDuration);
             } catch (RemoteException e) {
                 // Cannot talk to wallpaper engine.
             }
@@ -1898,10 +2173,14 @@
         // We know a-priori that there is no lock-only wallpaper currently
         WallpaperData lockWP = new WallpaperData(userId,
                 WALLPAPER_LOCK_ORIG, WALLPAPER_LOCK_CROP);
+        final WallpaperData.DisplayData lockWPDData = getDisplayDataOrCreate(lockWP,
+                DEFAULT_DISPLAY);
+        final WallpaperData.DisplayData sysWPDData = getDisplayDataOrCreate(sysWP,
+                DEFAULT_DISPLAY);
         lockWP.wallpaperId = sysWP.wallpaperId;
         lockWP.cropHint.set(sysWP.cropHint);
-        lockWP.width = sysWP.width;
-        lockWP.height = sysWP.height;
+        lockWPDData.mWidth = sysWPDData.mWidth;
+        lockWPDData.mHeight = sysWPDData.mHeight;
         lockWP.allowBackup = sysWP.allowBackup;
         lockWP.primaryColors = sysWP.primaryColors;
 
@@ -2071,7 +2350,7 @@
                 return false;
             }
             if (!android.Manifest.permission.BIND_WALLPAPER.equals(si.permission)) {
-                String msg = "Selected service does not require "
+                String msg = "Selected service does not have "
                         + android.Manifest.permission.BIND_WALLPAPER
                         + ": " + componentName;
                 if (fromUser) {
@@ -2123,9 +2402,27 @@
                 }
             }
 
+            if (wi != null && wi.supportsAmbientMode()) {
+                final int hasPrivilege = mIPackageManager.checkPermission(
+                        android.Manifest.permission.AMBIENT_WALLPAPER, wi.getPackageName(),
+                        serviceUserId);
+                if (hasPrivilege != PackageManager.PERMISSION_GRANTED) {
+                    String msg = "Selected service does not have "
+                            + android.Manifest.permission.AMBIENT_WALLPAPER
+                            + ": " + componentName;
+                    if (fromUser) {
+                        throw new SecurityException(msg);
+                    }
+                    Slog.w(TAG, msg);
+                    return false;
+                }
+            }
+
             // Bind the service!
             if (DEBUG) Slog.v(TAG, "Binding to:" + componentName);
-            WallpaperConnection newConn = new WallpaperConnection(wi, wallpaper);
+            final int componentUid = mIPackageManager.getPackageUid(componentName.getPackageName(),
+                    MATCH_DIRECT_BOOT_AUTO, wallpaper.userId);
+            WallpaperConnection newConn = new WallpaperConnection(wi, wallpaper, componentUid);
             intent.setComponent(componentName);
             intent.putExtra(Intent.EXTRA_CLIENT_LABEL,
                     com.android.internal.R.string.wallpaper_binding_label);
@@ -2152,14 +2449,8 @@
             wallpaper.wallpaperComponent = componentName;
             wallpaper.connection = newConn;
             newConn.mReply = reply;
-            try {
-                if (wallpaper.userId == mCurrentUserId) {
-                    if (DEBUG)
-                        Slog.v(TAG, "Adding window token: " + newConn.mToken);
-                    mIWindowManager.addWindowToken(newConn.mToken, TYPE_WALLPAPER, DEFAULT_DISPLAY);
-                    mLastWallpaper = wallpaper;
-                }
-            } catch (RemoteException e) {
+            if (wallpaper.userId == mCurrentUserId) {
+                mLastWallpaper = wallpaper;
             }
         } catch (RemoteException e) {
             String msg = "Remote exception for " + componentName + "\n" + e;
@@ -2181,22 +2472,12 @@
                 }
                 wallpaper.connection.mReply = null;
             }
-            if (wallpaper.connection.mEngine != null) {
-                try {
-                    wallpaper.connection.mEngine.destroy();
-                } catch (RemoteException e) {
-                }
-            }
             mContext.unbindService(wallpaper.connection);
-            try {
-                if (DEBUG)
-                    Slog.v(TAG, "Removing window token: " + wallpaper.connection.mToken);
-                mIWindowManager.removeWindowToken(wallpaper.connection.mToken, DEFAULT_DISPLAY);
-            } catch (RemoteException e) {
-            }
+            wallpaper.connection.forEachDisplayConnector(connector -> connector.disconnectLocked());
             wallpaper.connection.mService = null;
-            wallpaper.connection.mEngine = null;
+            wallpaper.connection.mDisplayConnector.clear();
             wallpaper.connection = null;
+            if (wallpaper == mLastWallpaper) mLastWallpaper = null;
         }
     }
 
@@ -2206,16 +2487,7 @@
     }
 
     void attachServiceLocked(WallpaperConnection conn, WallpaperData wallpaper) {
-        try {
-            conn.mService.attach(conn, conn.mToken,
-                    TYPE_WALLPAPER, false,
-                    wallpaper.width, wallpaper.height, wallpaper.padding);
-        } catch (RemoteException e) {
-            Slog.w(TAG, "Failed attaching wallpaper; clearing", e);
-            if (!wallpaper.wallpaperUpdating) {
-                bindWallpaperComponentLocked(null, false, false, wallpaper, null);
-            }
-        }
+        conn.forEachDisplayConnector(connector-> connector.connectLocked(conn, wallpaper));
     }
 
     private void notifyCallbacksLocked(WallpaperData wallpaper) {
@@ -2324,27 +2596,29 @@
         if (DEBUG) {
             Slog.v(TAG, "writeWallpaperAttributes id=" + wallpaper.wallpaperId);
         }
+        final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(wallpaper,
+                DEFAULT_DISPLAY);
         out.startTag(null, tag);
         out.attribute(null, "id", Integer.toString(wallpaper.wallpaperId));
-        out.attribute(null, "width", Integer.toString(wallpaper.width));
-        out.attribute(null, "height", Integer.toString(wallpaper.height));
+        out.attribute(null, "width", Integer.toString(wpdData.mWidth));
+        out.attribute(null, "height", Integer.toString(wpdData.mHeight));
 
         out.attribute(null, "cropLeft", Integer.toString(wallpaper.cropHint.left));
         out.attribute(null, "cropTop", Integer.toString(wallpaper.cropHint.top));
         out.attribute(null, "cropRight", Integer.toString(wallpaper.cropHint.right));
         out.attribute(null, "cropBottom", Integer.toString(wallpaper.cropHint.bottom));
 
-        if (wallpaper.padding.left != 0) {
-            out.attribute(null, "paddingLeft", Integer.toString(wallpaper.padding.left));
+        if (wpdData.mPadding.left != 0) {
+            out.attribute(null, "paddingLeft", Integer.toString(wpdData.mPadding.left));
         }
-        if (wallpaper.padding.top != 0) {
-            out.attribute(null, "paddingTop", Integer.toString(wallpaper.padding.top));
+        if (wpdData.mPadding.top != 0) {
+            out.attribute(null, "paddingTop", Integer.toString(wpdData.mPadding.top));
         }
-        if (wallpaper.padding.right != 0) {
-            out.attribute(null, "paddingRight", Integer.toString(wallpaper.padding.right));
+        if (wpdData.mPadding.right != 0) {
+            out.attribute(null, "paddingRight", Integer.toString(wpdData.mPadding.right));
         }
-        if (wallpaper.padding.bottom != 0) {
-            out.attribute(null, "paddingBottom", Integer.toString(wallpaper.padding.bottom));
+        if (wpdData.mPadding.bottom != 0) {
+            out.attribute(null, "paddingBottom", Integer.toString(wpdData.mPadding.bottom));
         }
 
         if (wallpaper.primaryColors != null) {
@@ -2447,14 +2721,14 @@
                     wallpaper = new WallpaperData(userId,
                             WALLPAPER_LOCK_ORIG, WALLPAPER_LOCK_CROP);
                     mLockWallpaperMap.put(userId, wallpaper);
-                    ensureSaneWallpaperData(wallpaper);
+                    ensureSaneWallpaperData(wallpaper, DEFAULT_DISPLAY);
                 } else {
                     // sanity fallback: we're in bad shape, but establishing a known
                     // valid system+lock WallpaperData will keep us from dying.
                     Slog.wtf(TAG, "Didn't find wallpaper in non-lock case!");
                     wallpaper = new WallpaperData(userId, WALLPAPER, WALLPAPER_CROP);
                     mWallpaperMap.put(userId, wallpaper);
-                    ensureSaneWallpaperData(wallpaper);
+                    ensureSaneWallpaperData(wallpaper, DEFAULT_DISPLAY);
                 }
             }
         }
@@ -2483,6 +2757,8 @@
             }
         }
         boolean success = false;
+        final WallpaperData.DisplayData wpdData = getDisplayDataOrCreate(wallpaper,
+                DEFAULT_DISPLAY);
         try {
             stream = new FileInputStream(file);
             XmlPullParser parser = Xml.newPullParser();
@@ -2509,8 +2785,8 @@
                         }
 
                         if (DEBUG) {
-                            Slog.v(TAG, "mWidth:" + wallpaper.width);
-                            Slog.v(TAG, "mHeight:" + wallpaper.height);
+                            Slog.v(TAG, "mWidth:" + wpdData.mWidth);
+                            Slog.v(TAG, "mHeight:" + wpdData.mHeight);
                             Slog.v(TAG, "cropRect:" + wallpaper.cropHint);
                             Slog.v(TAG, "primaryColors:" + wallpaper.primaryColors);
                             Slog.v(TAG, "mName:" + wallpaper.name);
@@ -2546,10 +2822,10 @@
         IoUtils.closeQuietly(stream);
 
         if (!success) {
-            wallpaper.width = -1;
-            wallpaper.height = -1;
+            wpdData.mWidth = -1;
+            wpdData.mHeight = -1;
             wallpaper.cropHint.set(0, 0, 0, 0);
-            wallpaper.padding.set(0, 0, 0, 0);
+            wpdData.mPadding.set(0, 0, 0, 0);
             wallpaper.name = "";
 
             mLockWallpaperMap.remove(userId);
@@ -2563,26 +2839,22 @@
             }
         }
 
-        ensureSaneWallpaperData(wallpaper);
+        ensureSaneWallpaperData(wallpaper, DEFAULT_DISPLAY);
         WallpaperData lockWallpaper = mLockWallpaperMap.get(userId);
         if (lockWallpaper != null) {
-            ensureSaneWallpaperData(lockWallpaper);
+            ensureSaneWallpaperData(lockWallpaper, DEFAULT_DISPLAY);
         }
     }
 
-    private void ensureSaneWallpaperData(WallpaperData wallpaper) {
-        // We always want to have some reasonable width hint.
-        int baseSize = getMaximumSizeDimension();
-        if (wallpaper.width < baseSize) {
-            wallpaper.width = baseSize;
-        }
-        if (wallpaper.height < baseSize) {
-            wallpaper.height = baseSize;
-        }
-        // and crop, if not previously specified
-        if (wallpaper.cropHint.width() <= 0
-                || wallpaper.cropHint.height() <= 0) {
-            wallpaper.cropHint.set(0, 0, wallpaper.width, wallpaper.height);
+    private void ensureSaneWallpaperData(WallpaperData wallpaper, int displayId) {
+        final WallpaperData.DisplayData size = getDisplayDataOrCreate(wallpaper, displayId);
+
+        if (displayId == DEFAULT_DISPLAY) {
+            // crop, if not previously specified
+            if (wallpaper.cropHint.width() <= 0
+                    || wallpaper.cropHint.height() <= 0) {
+                wallpaper.cropHint.set(0, 0, size.mWidth, size.mHeight);
+            }
         }
     }
 
@@ -2598,19 +2870,20 @@
             wallpaper.wallpaperId = makeWallpaperIdLocked();
         }
 
+        final WallpaperData.DisplayData wpData = getDisplayDataOrCreate(wallpaper, DEFAULT_DISPLAY);
+
         if (!keepDimensionHints) {
-            wallpaper.width = Integer.parseInt(parser.getAttributeValue(null, "width"));
-            wallpaper.height = Integer.parseInt(parser
-                    .getAttributeValue(null, "height"));
+            wpData.mWidth = Integer.parseInt(parser.getAttributeValue(null, "width"));
+            wpData.mHeight = Integer.parseInt(parser.getAttributeValue(null, "height"));
         }
         wallpaper.cropHint.left = getAttributeInt(parser, "cropLeft", 0);
         wallpaper.cropHint.top = getAttributeInt(parser, "cropTop", 0);
         wallpaper.cropHint.right = getAttributeInt(parser, "cropRight", 0);
         wallpaper.cropHint.bottom = getAttributeInt(parser, "cropBottom", 0);
-        wallpaper.padding.left = getAttributeInt(parser, "paddingLeft", 0);
-        wallpaper.padding.top = getAttributeInt(parser, "paddingTop", 0);
-        wallpaper.padding.right = getAttributeInt(parser, "paddingRight", 0);
-        wallpaper.padding.bottom = getAttributeInt(parser, "paddingBottom", 0);
+        wpData.mPadding.left = getAttributeInt(parser, "paddingLeft", 0);
+        wpData.mPadding.top = getAttributeInt(parser, "paddingTop", 0);
+        wpData.mPadding.right = getAttributeInt(parser, "paddingRight", 0);
+        wpData.mPadding.bottom = getAttributeInt(parser, "paddingBottom", 0);
         int colorsCount = getAttributeInt(parser, "colorsCount", 0);
         if (colorsCount > 0) {
             Color primary = null, secondary = null, tertiary = null;
@@ -2633,12 +2906,6 @@
         wallpaper.allowBackup = "true".equals(parser.getAttributeValue(null, "backup"));
     }
 
-    private int getMaximumSizeDimension() {
-        WindowManager wm = (WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE);
-        Display d = wm.getDefaultDisplay();
-        return d.getMaximumSizeDimension();
-    }
-
     // Called by SystemBackupAgent after files are restored to disk.
     public void settingsRestored() {
         // Verify caller is the system
@@ -2678,7 +2945,7 @@
                 if (DEBUG) Slog.v(TAG, "settingsRestored: success=" + success
                         + " id=" + wallpaper.wallpaperId);
                 if (success) {
-                    generateCrop(wallpaper);    // based on the new image + metadata
+                    generateCrop(wallpaper); // based on the new image + metadata
                     bindWallpaperComponentLocked(wallpaper.nextWallpaperComponent, true, false,
                             wallpaper, null);
                 }
@@ -2783,12 +3050,16 @@
                 WallpaperData wallpaper = mWallpaperMap.valueAt(i);
                 pw.print(" User "); pw.print(wallpaper.userId);
                     pw.print(": id="); pw.println(wallpaper.wallpaperId);
-                pw.print("  mWidth=");
-                    pw.print(wallpaper.width);
-                    pw.print(" mHeight=");
-                    pw.println(wallpaper.height);
+                forEachDisplayData(wallpaper, wpSize -> {
+                    pw.print("  displayId=");
+                    pw.println(wpSize.mDisplayId);
+                    pw.print("  mWidth=");
+                    pw.print(wpSize.mWidth);
+                    pw.print("  mHeight=");
+                    pw.println(wpSize.mHeight);
+                    pw.print("  mPadding="); pw.println(wpSize.mPadding);
+                });
                 pw.print("  mCropHint="); pw.println(wallpaper.cropHint);
-                pw.print("  mPadding="); pw.println(wallpaper.padding);
                 pw.print("  mName=");  pw.println(wallpaper.name);
                 pw.print("  mAllowBackup="); pw.println(wallpaper.allowBackup);
                 pw.print("  mWallpaperComponent="); pw.println(wallpaper.wallpaperComponent);
@@ -2801,12 +3072,16 @@
                         pw.print("    mInfo.component=");
                         pw.println(conn.mInfo.getComponent());
                     }
-                    pw.print("    mToken=");
-                    pw.println(conn.mToken);
+                    conn.forEachDisplayConnector(connector -> {
+                        pw.print("    mDisplayId=");
+                        pw.println(connector.mDisplayId);
+                        pw.print("    mToken=");
+                        pw.println(connector.mToken);
+                        pw.print("    mEngine=");
+                        pw.println(connector.mEngine);
+                    });
                     pw.print("    mService=");
                     pw.println(conn.mService);
-                    pw.print("    mEngine=");
-                    pw.println(conn.mEngine);
                     pw.print("    mLastDiedTime=");
                     pw.println(wallpaper.lastDiedTime - SystemClock.uptimeMillis());
                 }
@@ -2815,11 +3090,15 @@
             for (int i = 0; i < mLockWallpaperMap.size(); i++) {
                 WallpaperData wallpaper = mLockWallpaperMap.valueAt(i);
                 pw.print(" User "); pw.print(wallpaper.userId);
-                    pw.print(": id="); pw.println(wallpaper.wallpaperId);
-                pw.print("  mWidth="); pw.print(wallpaper.width);
-                    pw.print(" mHeight="); pw.println(wallpaper.height);
+                pw.print(": id="); pw.println(wallpaper.wallpaperId);
+                forEachDisplayData(wallpaper, wpSize -> {
+                    pw.print("  displayId=");
+                    pw.println(wpSize.mDisplayId);
+                    pw.print("  mWidth="); pw.print(wpSize.mWidth);
+                    pw.print("  mHeight="); pw.println(wpSize.mHeight);
+                    pw.print("  mPadding="); pw.println(wpSize.mPadding);
+                });
                 pw.print("  mCropHint="); pw.println(wallpaper.cropHint);
-                pw.print("  mPadding="); pw.println(wallpaper.padding);
                 pw.print("  mName=");  pw.println(wallpaper.name);
                 pw.print("  mAllowBackup="); pw.println(wallpaper.allowBackup);
             }
diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java
index e4d1cfe..fe0b5c2 100644
--- a/services/core/java/com/android/server/wm/AccessibilityController.java
+++ b/services/core/java/com/android/server/wm/AccessibilityController.java
@@ -16,9 +16,9 @@
 
 package com.android.server.wm;
 
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
 import static android.view.WindowManager.LayoutParams.TYPE_MAGNIFICATION_OVERLAY;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY;
 
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
@@ -706,7 +706,7 @@
                         mWindowManager.getDefaultDisplay().getRealSize(mTempPoint);
                         surfaceControl = mService.getDefaultDisplayContentLocked().makeOverlay()
                                 .setName(SURFACE_TITLE)
-                                .setSize(mTempPoint.x, mTempPoint.y) // not a typo
+                                .setBufferSize(mTempPoint.x, mTempPoint.y) // not a typo
                                 .setFormat(PixelFormat.TRANSLUCENT)
                                 .build();
                     } catch (OutOfResourcesException oore) {
@@ -784,7 +784,7 @@
                 public void updateSize() {
                     synchronized (mService.mGlobalLock) {
                         mWindowManager.getDefaultDisplay().getRealSize(mTempPoint);
-                        mSurfaceControl.setSize(mTempPoint.x, mTempPoint.y);
+                        mSurfaceControl.setBufferSize(mTempPoint.x, mTempPoint.y);
                         invalidate(mDirtyRect);
                     }
                 }
diff --git a/services/core/java/com/android/server/wm/ActivityDisplay.java b/services/core/java/com/android/server/wm/ActivityDisplay.java
index 751ae0d..7bf2c94 100644
--- a/services/core/java/com/android/server/wm/ActivityDisplay.java
+++ b/services/core/java/com/android/server/wm/ActivityDisplay.java
@@ -39,8 +39,6 @@
 import static com.android.server.am.ActivityDisplayProto.RESUMED_ACTIVITY;
 import static com.android.server.am.ActivityDisplayProto.STACKS;
 import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
-import static com.android.server.wm.ActivityStackSupervisor.FindTaskResult;
-import static com.android.server.wm.ActivityStackSupervisor.TAG_STATES;
 import static com.android.server.wm.ActivityStackSupervisor.TAG_TASKS;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_STACK;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_STATES;
@@ -48,6 +46,8 @@
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_STACK;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
+import static com.android.server.wm.RootActivityContainer.FindTaskResult;
+import static com.android.server.wm.RootActivityContainer.TAG_STATES;
 
 import android.annotation.Nullable;
 import android.app.ActivityOptions;
@@ -84,7 +84,8 @@
      */
     private static int sNextFreeStackId = 0;
 
-    private ActivityStackSupervisor mSupervisor;
+    private ActivityTaskManagerService mService;
+    private RootActivityContainer mRootActivityContainer;
     /** Actual Display this object tracks. */
     int mDisplayId;
     Display mDisplay;
@@ -141,8 +142,9 @@
 
     private final FindTaskResult mTmpFindTaskResult = new FindTaskResult();
 
-    ActivityDisplay(ActivityStackSupervisor supervisor, Display display) {
-        mSupervisor = supervisor;
+    ActivityDisplay(RootActivityContainer root, Display display) {
+        mRootActivityContainer = root;
+        mService = root.mService;
         mDisplayId = display.getDisplayId();
         mDisplay = display;
         mWindowContainerController = createWindowContainerController();
@@ -168,7 +170,7 @@
         if (displayId != DEFAULT_DISPLAY) {
             final int displayState = mDisplay.getState();
             if (displayState == Display.STATE_OFF && mOffToken == null) {
-                mOffToken = mSupervisor.mService.acquireSleepToken("Display-off", displayId);
+                mOffToken = mService.acquireSleepToken("Display-off", displayId);
             } else if (displayState == Display.STATE_ON && mOffToken != null) {
                 mOffToken.release();
                 mOffToken = null;
@@ -179,6 +181,11 @@
         mWindowContainerController.onDisplayChanged();
     }
 
+    @Override
+    public void onInitializeOverrideConfiguration(Configuration config) {
+        getOverrideConfiguration().updateFrom(config);
+    }
+
     void addChild(ActivityStack stack, int position) {
         if (position == POSITION_BOTTOM) {
             position = 0;
@@ -189,7 +196,7 @@
                 + " to displayId=" + mDisplayId + " position=" + position);
         addStackReferenceIfNeeded(stack);
         positionChildAt(stack, position);
-        mSupervisor.mService.updateSleepIfNeededLocked();
+        mService.updateSleepIfNeededLocked();
     }
 
     void removeChild(ActivityStack stack) {
@@ -201,7 +208,7 @@
         }
         removeStackReferenceIfNeeded(stack);
         releaseSelfIfNeeded();
-        mSupervisor.mService.updateSleepIfNeededLocked();
+        mService.updateSleepIfNeededLocked();
         onStackOrderChanged();
     }
 
@@ -252,7 +259,7 @@
             final ActivityStack currentFocusedStack = getFocusedStack();
             if (currentFocusedStack != prevFocusedStack) {
                 mLastFocusedStack = prevFocusedStack;
-                EventLogTags.writeAmFocusedStack(mSupervisor.mCurrentUser, mDisplayId,
+                EventLogTags.writeAmFocusedStack(mRootActivityContainer.mCurrentUser, mDisplayId,
                         currentFocusedStack == null ? -1 : currentFocusedStack.getStackId(),
                         mLastFocusedStack == null ? -1 : mLastFocusedStack.getStackId(),
                         updateLastFocusedStackReason);
@@ -267,6 +274,9 @@
             mWindowContainerController.positionChildAt(stack.getWindowContainerController(),
                     insertPosition, includingParents);
         }
+        if (!wasContained) {
+            stack.setParent(this);
+        }
         onStackOrderChanged();
     }
 
@@ -406,10 +416,10 @@
             }
         }
 
-        final ActivityTaskManagerService service = mSupervisor.mService;
-        if (!isWindowingModeSupported(windowingMode, service.mSupportsMultiWindow,
-                service.mSupportsSplitScreenMultiWindow, service.mSupportsFreeformWindowManagement,
-                service.mSupportsPictureInPicture, activityType)) {
+        if (!isWindowingModeSupported(windowingMode, mService.mSupportsMultiWindow,
+                mService.mSupportsSplitScreenMultiWindow,
+                mService.mSupportsFreeformWindowManagement, mService.mSupportsPictureInPicture,
+                activityType)) {
             throw new IllegalArgumentException("Can't create stack for unsupported windowingMode="
                     + windowingMode);
         }
@@ -422,10 +432,12 @@
     <T extends ActivityStack> T createStackUnchecked(int windowingMode, int activityType,
             int stackId, boolean onTop) {
         if (windowingMode == WINDOWING_MODE_PINNED) {
-            return (T) new PinnedActivityStack(this, stackId, mSupervisor, onTop);
+            return (T) new PinnedActivityStack(this, stackId,
+                    mRootActivityContainer.mStackSupervisor, onTop);
         }
-        return (T) new ActivityStack(
-                        this, stackId, mSupervisor, windowingMode, activityType, onTop);
+        return (T) new ActivityStack(this, stackId,
+                mRootActivityContainer.mStackSupervisor, windowingMode, activityType,
+                onTop);
     }
 
     /**
@@ -540,7 +552,7 @@
         for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
             final ActivityStack stack = mStacks.get(stackNdx);
             // TODO(b/111541062): Check if resumed activity on this display instead
-            if (!mSupervisor.isTopDisplayFocusedStack(stack)
+            if (!mRootActivityContainer.isTopDisplayFocusedStack(stack)
                     && stack.getResumedActivity() != null) {
                 if (DEBUG_STATES) Slog.d(TAG_STATES, "pauseBackStacks: stack=" + stack +
                         " mResumedActivity=" + stack.getResumedActivity());
@@ -605,7 +617,7 @@
                 if (stack.getWindowingMode() != windowingMode) {
                     continue;
                 }
-                mSupervisor.removeStack(stack);
+                mRootActivityContainer.mStackSupervisor.removeStack(stack);
             }
         }
     }
@@ -620,7 +632,7 @@
             for (int i = mStacks.size() - 1; i >= 0; --i) {
                 final ActivityStack stack = mStacks.get(i);
                 if (stack.getActivityType() == activityType) {
-                    mSupervisor.removeStack(stack);
+                    mRootActivityContainer.mStackSupervisor.removeStack(stack);
                 }
             }
         }
@@ -682,7 +694,7 @@
     }
 
     private void onSplitScreenModeDismissed() {
-        mSupervisor.mWindowManager.deferSurfaceLayout();
+        mRootActivityContainer.mWindowManager.deferSurfaceLayout();
         try {
             // Adjust the windowing mode of any stack in secondary split-screen to fullscreen.
             for (int i = mStacks.size() - 1; i >= 0; --i) {
@@ -692,7 +704,7 @@
                 }
                 otherStack.setWindowingMode(WINDOWING_MODE_UNDEFINED, false /* animate */,
                         false /* showRecents */, false /* enteringSplitScreenMode */,
-                        true /* deferEnsuringVisibility */);
+                        true /* deferEnsuringVisibility */, false /* creating */);
             }
         } finally {
             final ActivityStack topFullscreenStack =
@@ -706,12 +718,12 @@
                 mHomeStack.moveToFront("onSplitScreenModeDismissed");
                 topFullscreenStack.moveToFront("onSplitScreenModeDismissed");
             }
-            mSupervisor.mWindowManager.continueSurfaceLayout();
+            mRootActivityContainer.mWindowManager.continueSurfaceLayout();
         }
     }
 
     private void onSplitScreenModeActivated() {
-        mSupervisor.mWindowManager.deferSurfaceLayout();
+        mRootActivityContainer.mWindowManager.deferSurfaceLayout();
         try {
             // Adjust the windowing mode of any affected by split-screen to split-screen secondary.
             for (int i = mStacks.size() - 1; i >= 0; --i) {
@@ -722,10 +734,11 @@
                 }
                 otherStack.setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY,
                         false /* animate */, false /* showRecents */,
-                        true /* enteringSplitScreenMode */, true /* deferEnsuringVisibility */);
+                        true /* enteringSplitScreenMode */, true /* deferEnsuringVisibility */,
+                        false /* creating */);
             }
         } finally {
-            mSupervisor.mWindowManager.continueSurfaceLayout();
+            mRootActivityContainer.mWindowManager.continueSurfaceLayout();
         }
     }
 
@@ -820,11 +833,10 @@
     int validateWindowingMode(int windowingMode, @Nullable ActivityRecord r,
         @Nullable TaskRecord task, int activityType) {
         // Make sure the windowing mode we are trying to use makes sense for what is supported.
-        final ActivityTaskManagerService service = mSupervisor.mService;
-        boolean supportsMultiWindow = service.mSupportsMultiWindow;
-        boolean supportsSplitScreen = service.mSupportsSplitScreenMultiWindow;
-        boolean supportsFreeform = service.mSupportsFreeformWindowManagement;
-        boolean supportsPip = service.mSupportsPictureInPicture;
+        boolean supportsMultiWindow = mService.mSupportsMultiWindow;
+        boolean supportsSplitScreen = mService.mSupportsSplitScreenMultiWindow;
+        boolean supportsFreeform = mService.mSupportsFreeformWindowManagement;
+        boolean supportsPip = mService.mSupportsPictureInPicture;
         if (supportsMultiWindow) {
             if (task != null) {
                 supportsMultiWindow = task.isResizeable();
@@ -928,7 +940,7 @@
         // This activity can be considered the top running activity if we are not considering
         // the locked state, the keyguard isn't locked, or we can show when locked.
         if (topRunning != null && considerKeyguardState
-                && mSupervisor.getKeyguardController().isKeyguardLocked()
+                && mRootActivityContainer.mStackSupervisor.getKeyguardController().isKeyguardLocked()
                 && !topRunning.canShowWhenLocked()) {
             return null;
         }
@@ -1006,7 +1018,7 @@
 
     @Override
     protected ConfigurationContainer getParent() {
-        return mSupervisor;
+        return mRootActivityContainer;
     }
 
     boolean isPrivate() {
@@ -1039,8 +1051,8 @@
         // released (no more ActivityStack). But, we cannot release it at that moment or the
         // related WindowContainer and WindowContainerController will also be removed. So, we
         // set display as removed after reparenting stack finished.
-        final ActivityDisplay toDisplay = mSupervisor.getDefaultDisplay();
-        mSupervisor.beginDeferResume();
+        final ActivityDisplay toDisplay = mRootActivityContainer.getDefaultDisplay();
+        mRootActivityContainer.mStackSupervisor.beginDeferResume();
         try {
             int numStacks = mStacks.size();
             // Keep the order from bottom to top.
@@ -1066,7 +1078,7 @@
                 numStacks = mStacks.size();
             }
         } finally {
-            mSupervisor.endDeferResume();
+            mRootActivityContainer.mStackSupervisor.endDeferResume();
         }
         mRemoved = true;
 
@@ -1078,9 +1090,9 @@
         releaseSelfIfNeeded();
 
         if (!mAllSleepTokens.isEmpty()) {
-            mSupervisor.mSleepTokens.removeAll(mAllSleepTokens);
+            mRootActivityContainer.mSleepTokens.removeAll(mAllSleepTokens);
             mAllSleepTokens.clear();
-            mSupervisor.mService.updateSleepIfNeededLocked();
+            mService.updateSleepIfNeededLocked();
         }
     }
 
@@ -1088,8 +1100,9 @@
         if (mStacks.isEmpty() && mRemoved) {
             mWindowContainerController.removeContainer();
             mWindowContainerController = null;
-            mSupervisor.removeChild(this);
-            mSupervisor.getKeyguardController().onDisplayRemoved(mDisplayId);
+            mRootActivityContainer.removeChild(this);
+            mRootActivityContainer.mStackSupervisor
+                    .getKeyguardController().onDisplayRemoved(mDisplayId);
         }
     }
 
@@ -1118,7 +1131,7 @@
 
     boolean shouldSleep() {
         return (mStacks.isEmpty() || !mAllSleepTokens.isEmpty())
-                && (mSupervisor.mService.mRunningVoice == null);
+                && (mService.mRunningVoice == null);
     }
 
     void setFocusedApp(ActivityRecord r, boolean moveFocusNow) {
@@ -1209,7 +1222,7 @@
 
     @Nullable
     ActivityRecord getHomeActivity() {
-        return getHomeActivityForUser(mSupervisor.mCurrentUser);
+        return getHomeActivityForUser(mRootActivityContainer.mCurrentUser);
     }
 
     @Nullable
@@ -1229,7 +1242,7 @@
             for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
                 final ActivityRecord r = activities.get(activityNdx);
                 if (r.isActivityTypeHome()
-                        && ((userId == UserHandle.USER_ALL) || (r.userId == userId))) {
+                        && ((userId == UserHandle.USER_ALL) || (r.mUserId == userId))) {
                     return r;
                 }
             }
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLaunchObserver.java b/services/core/java/com/android/server/wm/ActivityMetricsLaunchObserver.java
index e3133ef..eff0f75 100644
--- a/services/core/java/com/android/server/wm/ActivityMetricsLaunchObserver.java
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLaunchObserver.java
@@ -42,7 +42,7 @@
  * It must then transition to either {@code CANCELLED} with {@link #onActivityLaunchCancelled}
  * or into {@code FINISHED} with {@link #onActivityLaunchFinished}. These are terminal states.
  *
- * Note that the {@link ActivityRecord} provided as a parameter to some state transitions isn't
+ * Note that the {@code ActivityRecordProto} provided as a parameter to some state transitions isn't
  * necessarily the same within a single launch sequence: it is only the top-most activity at the
  * time (if any). Trampoline activities coalesce several activity starts into a single launch
  * sequence.
@@ -94,6 +94,14 @@
     public static final int TEMPERATURE_HOT = 3;
 
     /**
+     * Typedef marker that a {@code byte[]} actually contains an
+     * <a href="proto/android/server/activitymanagerservice.proto">ActivityRecordProto</a>
+     * in the protobuf format.
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @interface ActivityRecordProto {}
+
+    /**
      * Notifies the observer that a new launch sequence has begun as a result of a new intent.
      *
      * Once a launch sequence begins, the resolved activity will either subsequently start with
@@ -135,7 +143,7 @@
      * Multiple calls to this method cannot occur without first terminating the current
      * launch sequence.
      */
-    public void onActivityLaunched(@NonNull ActivityRecord activity,
+    public void onActivityLaunched(@NonNull @ActivityRecordProto byte[] activity,
                                    @Temperature int temperature);
 
     /**
@@ -157,7 +165,7 @@
      *          in the case of a trampoline, multiple activities could've been started
      *          and only the latest activity is reported here.
      */
-    public void onActivityLaunchCancelled(@Nullable ActivityRecord abortingActivity);
+    public void onActivityLaunchCancelled(@Nullable @ActivityRecordProto byte[] abortingActivity);
 
     /**
      * Notifies the observer that the current launch sequence has been successfully finished.
@@ -178,5 +186,5 @@
      *          and only the latest activity that was top-most during first-frame drawn
      *          is reported here.
      */
-    public void onActivityLaunchFinished(@NonNull ActivityRecord finalActivity);
+    public void onActivityLaunchFinished(@NonNull @ActivityRecordProto byte[] finalActivity);
 }
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLaunchObserverRegistry.java b/services/core/java/com/android/server/wm/ActivityMetricsLaunchObserverRegistry.java
new file mode 100644
index 0000000..fa90dc5
--- /dev/null
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLaunchObserverRegistry.java
@@ -0,0 +1,60 @@
+/*
+ * 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.server.wm;
+
+import android.annotation.NonNull;
+
+/**
+ * Multi-cast delegate implementation for {@link ActivityMetricsLaunchObserver}.
+ *
+ * <br/><br/>
+ * This enables multiple launch observers to subscribe to {@link ActivityMetricsLogger}
+ * independently of each other.
+ *
+ * <br/><br/>
+ * Some callbacks in {@link ActivityMetricsLaunchObserver} have a {@code byte[]}
+ * parameter; this array is reused by all the registered observers, so it must not be written to
+ * (i.e. all observers must treat any array parameters as immutable).
+ *
+ * <br /><br />
+ * Multi-cast invocations occurs sequentially in-order of registered observers.
+ */
+public interface ActivityMetricsLaunchObserverRegistry {
+    /**
+     * Register an extra launch observer to receive the multi-cast.
+     *
+     * <br /><br />
+     * Multi-cast invocation happens in the same order the observers were registered. For example,
+     * <pre>
+     *     registerLaunchObserver(A)
+     *     registerLaunchObserver(B)
+     *
+     *     obs.onIntentFailed() ->
+     *       A.onIntentFailed()
+     *       B.onIntentFailed()
+     * </pre>
+     */
+    void registerLaunchObserver(@NonNull ActivityMetricsLaunchObserver launchObserver);
+
+    /**
+     * Unregister an existing launch observer. It will not receive the multi-cast in the future.
+     *
+     * <br /><br />
+     * This does nothing if this observer was not already registered.
+     */
+    void unregisterLaunchObserver(@NonNull ActivityMetricsLaunchObserver launchObserver);
+}
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
index 1c08d03..12690a9 100644
--- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
@@ -99,10 +99,12 @@
 import android.util.SparseIntArray;
 import android.util.StatsLog;
 import android.util.TimeUtils;
+import android.util.proto.ProtoOutputStream;
 
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.os.BackgroundThread;
 import com.android.internal.os.SomeArgs;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.server.LocalServices;
 
 /**
@@ -168,7 +170,8 @@
      * Due to the global single concurrent launch sequence, all calls to this observer must be made
      * in-order on the same thread to fulfill the "happens-before" guarantee in LaunchObserver.
      */
-    private final ActivityMetricsLaunchObserver mLaunchObserver = null;
+    private final LaunchObserverRegistryImpl mLaunchObserver;
+    @VisibleForTesting static final int LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE = 512;
 
     private final class H extends Handler {
 
@@ -251,7 +254,7 @@
             type = getTransitionType(info);
             processRecord = findProcessForActivity(launchedActivity);
             processName = launchedActivity.processName;
-            userId = launchedActivity.userId;
+            userId = launchedActivity.mUserId;
             launchedActivityShortComponentName = launchedActivity.shortComponentName;
             activityRecordIdHashCode = System.identityHashCode(launchedActivity);
             this.windowsFullyDrawnDelayMs = windowsFullyDrawnDelayMs;
@@ -263,6 +266,7 @@
         mSupervisor = supervisor;
         mContext = context;
         mHandler = new H(looper);
+        mLaunchObserver = new LaunchObserverRegistryImpl(looper);
     }
 
     void logWindowState() {
@@ -277,7 +281,8 @@
         mLastLogTimeSecs = now;
 
         mWindowState = WINDOW_STATE_INVALID;
-        ActivityStack stack = mSupervisor.getTopDisplayFocusedStack();
+        ActivityStack stack =
+                mSupervisor.mRootActivityContainer.getTopDisplayFocusedStack();
         if (stack == null) {
             return;
         }
@@ -289,7 +294,7 @@
 
         @WindowingMode int windowingMode = stack.getWindowingMode();
         if (windowingMode == WINDOWING_MODE_PINNED) {
-            stack = mSupervisor.findStackBehind(stack);
+            stack = mSupervisor.mRootActivityContainer.findStackBehind(stack);
             windowingMode = stack.getWindowingMode();
         }
         switch (windowingMode) {
@@ -515,7 +520,7 @@
         if (info.launchedActivity != activityRecord) {
             return;
         }
-        final TaskRecord t = activityRecord.getTask();
+        final TaskRecord t = activityRecord.getTaskRecord();
         final SomeArgs args = SomeArgs.obtain();
         args.arg1 = t;
         args.arg2 = activityRecord;
@@ -850,9 +855,10 @@
         builder.addTaggedData(FIELD_TARGET_UID_HAS_ANY_VISIBLE_WINDOW,
                 targetUidHasAnyVisibleWindow ? 1 : 0);
         builder.addTaggedData(FIELD_TARGET_WHITELIST_TAG, targetWhitelistTag);
-        builder.addTaggedData(FIELD_TARGET_SHORT_COMPONENT_NAME, r.shortComponentName);
         builder.addTaggedData(FIELD_COMING_FROM_PENDING_INTENT, comingFromPendingIntent ? 1 : 0);
-        builder.addTaggedData(FIELD_INTENT_ACTION, intent.getAction());
+        if (intent != null) {
+            builder.addTaggedData(FIELD_INTENT_ACTION, intent.getAction());
+        }
         if (callerApp != null) {
             builder.addTaggedData(FIELD_PROCESS_RECORD_PROCESS_NAME, callerApp.mName);
             builder.addTaggedData(FIELD_PROCESS_RECORD_CUR_PROC_STATE,
@@ -881,29 +887,34 @@
                         (nowUptime - callerApp.getWhenUnimportant()));
             }
         }
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_LAUNCH_MODE, r.info.launchMode);
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_TARGET_ACTIVITY, r.info.targetActivity);
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_FLAGS, r.info.flags);
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_REAL_ACTIVITY, r.realActivity.toShortString());
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_SHORT_COMPONENT_NAME, r.shortComponentName);
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_PROCESS_NAME, r.processName);
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_IS_FULLSCREEN, r.fullscreen ? 1 : 0);
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_IS_NO_DISPLAY, r.noDisplay ? 1 : 0);
-        if (r.lastVisibleTime != 0) {
-            builder.addTaggedData(FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_VISIBLE,
-                    (nowUptime - r.lastVisibleTime));
-        }
-        if (r.resultTo != null) {
-            builder.addTaggedData(FIELD_ACTIVITY_RECORD_RESULT_TO_PKG_NAME, r.resultTo.packageName);
-            builder.addTaggedData(FIELD_ACTIVITY_RECORD_RESULT_TO_SHORT_COMPONENT_NAME,
-                    r.resultTo.shortComponentName);
-        }
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_IS_VISIBLE, r.visible ? 1 : 0);
-        builder.addTaggedData(FIELD_ACTIVITY_RECORD_IS_VISIBLE_IGNORING_KEYGUARD,
-                r.visibleIgnoringKeyguard ? 1 : 0);
-        if (r.lastLaunchTime != 0) {
-            builder.addTaggedData(FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_LAUNCH,
-                    (nowUptime - r.lastLaunchTime));
+        if (r != null) {
+            builder.addTaggedData(FIELD_TARGET_SHORT_COMPONENT_NAME, r.shortComponentName);
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_LAUNCH_MODE, r.info.launchMode);
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_TARGET_ACTIVITY, r.info.targetActivity);
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_FLAGS, r.info.flags);
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_REAL_ACTIVITY,
+                    r.mActivityComponent.toShortString());
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_SHORT_COMPONENT_NAME, r.shortComponentName);
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_PROCESS_NAME, r.processName);
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_IS_FULLSCREEN, r.fullscreen ? 1 : 0);
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_IS_NO_DISPLAY, r.noDisplay ? 1 : 0);
+            if (r.lastVisibleTime != 0) {
+                builder.addTaggedData(FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_VISIBLE,
+                        (nowUptime - r.lastVisibleTime));
+            }
+            if (r.resultTo != null) {
+                builder.addTaggedData(FIELD_ACTIVITY_RECORD_RESULT_TO_PKG_NAME,
+                        r.resultTo.packageName);
+                builder.addTaggedData(FIELD_ACTIVITY_RECORD_RESULT_TO_SHORT_COMPONENT_NAME,
+                        r.resultTo.shortComponentName);
+            }
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_IS_VISIBLE, r.visible ? 1 : 0);
+            builder.addTaggedData(FIELD_ACTIVITY_RECORD_IS_VISIBLE_IGNORING_KEYGUARD,
+                    r.visibleIgnoringKeyguard ? 1 : 0);
+            if (r.lastLaunchTime != 0) {
+                builder.addTaggedData(FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_LAUNCH,
+                        (nowUptime - r.lastLaunchTime));
+            }
         }
         mMetricsLogger.write(builder);
     }
@@ -993,12 +1004,19 @@
         }
     }
 
+    public ActivityMetricsLaunchObserverRegistry getLaunchObserverRegistry() {
+        return mLaunchObserver;
+    }
+
     /** Notify the {@link ActivityMetricsLaunchObserver} that a new launch sequence has begun. */
     private void launchObserverNotifyIntentStarted(Intent intent) {
-        if (mLaunchObserver != null) {
-            // Beginning a launch is timing sensitive and so should be observed as soon as possible.
-            mLaunchObserver.onIntentStarted(intent);
-        }
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER,
+                "MetricsLogger:launchObserverNotifyIntentStarted");
+
+        // Beginning a launch is timing sensitive and so should be observed as soon as possible.
+        mLaunchObserver.onIntentStarted(intent);
+
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
     }
 
     /**
@@ -1007,9 +1025,12 @@
      * intent being delivered to the top running activity.
      */
     private void launchObserverNotifyIntentFailed() {
-        if (mLaunchObserver != null) {
-            mLaunchObserver.onIntentFailed();
-        }
+       Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER,
+                "MetricsLogger:launchObserverNotifyIntentFailed");
+
+        mLaunchObserver.onIntentFailed();
+
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
     }
 
     /**
@@ -1017,14 +1038,17 @@
      * has started.
      */
     private void launchObserverNotifyActivityLaunched(WindowingModeTransitionInfo info) {
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER,
+                "MetricsLogger:launchObserverNotifyActivityLaunched");
+
         @ActivityMetricsLaunchObserver.Temperature int temperature =
                 convertTransitionTypeToLaunchObserverTemperature(getTransitionType(info));
 
-        if (mLaunchObserver != null) {
-            // Beginning a launch is timing sensitive and so should be observed as soon as possible.
-            mLaunchObserver.onActivityLaunched(info.launchedActivity,
-                                               temperature);
-        }
+        // Beginning a launch is timing sensitive and so should be observed as soon as possible.
+        mLaunchObserver.onActivityLaunched(convertActivityRecordToProto(info.launchedActivity),
+                                           temperature);
+
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
     }
 
     /**
@@ -1032,11 +1056,15 @@
      * cancelled.
      */
     private void launchObserverNotifyActivityLaunchCancelled(WindowingModeTransitionInfo info) {
-        final ActivityRecord launchedActivity = info != null ? info.launchedActivity : null;
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER,
+                "MetricsLogger:launchObserverNotifyActivityLaunchCancelled");
 
-        if (mLaunchObserver != null) {
-            mLaunchObserver.onActivityLaunchCancelled(launchedActivity);
-        }
+        final @ActivityMetricsLaunchObserver.ActivityRecordProto byte[] activityRecordProto =
+                info != null ? convertActivityRecordToProto(info.launchedActivity) : null;
+
+        mLaunchObserver.onActivityLaunchCancelled(activityRecordProto);
+
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
     }
 
     /**
@@ -1044,11 +1072,34 @@
      * has fully finished (successfully).
      */
     private void launchObserverNotifyActivityLaunchFinished(WindowingModeTransitionInfo info) {
-        final ActivityRecord launchedActivity = info.launchedActivity;
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER,
+                "MetricsLogger:launchObserverNotifyActivityLaunchFinished");
 
-        if (mLaunchObserver != null) {
-            mLaunchObserver.onActivityLaunchFinished(launchedActivity);
-        }
+        mLaunchObserver.onActivityLaunchFinished(
+                convertActivityRecordToProto(info.launchedActivity));
+
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
+    }
+
+    @VisibleForTesting
+    static @ActivityMetricsLaunchObserver.ActivityRecordProto byte[]
+            convertActivityRecordToProto(ActivityRecord record) {
+        // May take non-negligible amount of time to convert ActivityRecord into a proto,
+        // so track the time.
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER,
+                "MetricsLogger:convertActivityRecordToProto");
+
+        // There does not appear to be a way to 'reset' a ProtoOutputBuffer stream,
+        // so create a new one every time.
+        final ProtoOutputStream protoOutputStream =
+                new ProtoOutputStream(LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE);
+        // Write this data out as the top-most ActivityRecordProto (i.e. it is not a sub-object).
+        record.writeToProto(protoOutputStream);
+        final byte[] bytes = protoOutputStream.getBytes();
+
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
+
+        return bytes;
     }
 
     private static @ActivityMetricsLaunchObserver.Temperature int
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index c43e64e..255a003 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -18,7 +18,17 @@
 
 import static android.app.ActivityManager.LOCK_TASK_MODE_NONE;
 import static android.app.ActivityManager.TaskDescription.ATTR_TASKDESCRIPTION_PREFIX;
+import static android.app.ActivityOptions.ANIM_CLIP_REVEAL;
+import static android.app.ActivityOptions.ANIM_CUSTOM;
+import static android.app.ActivityOptions.ANIM_NONE;
+import static android.app.ActivityOptions.ANIM_OPEN_CROSS_PROFILE_APPS;
+import static android.app.ActivityOptions.ANIM_REMOTE_ANIMATION;
+import static android.app.ActivityOptions.ANIM_SCALE_UP;
 import static android.app.ActivityOptions.ANIM_SCENE_TRANSITION;
+import static android.app.ActivityOptions.ANIM_THUMBNAIL_ASPECT_SCALE_DOWN;
+import static android.app.ActivityOptions.ANIM_THUMBNAIL_ASPECT_SCALE_UP;
+import static android.app.ActivityOptions.ANIM_THUMBNAIL_SCALE_DOWN;
+import static android.app.ActivityOptions.ANIM_THUMBNAIL_SCALE_UP;
 import static android.app.ActivityTaskManager.INVALID_STACK_ID;
 import static android.app.ActivityTaskManager.INVALID_TASK_ID;
 import static android.app.AppOpsManager.MODE_ALLOWED;
@@ -63,6 +73,7 @@
 import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE;
 import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION;
 import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
 import static android.content.pm.ActivityInfo.isFixedOrientationLandscape;
 import static android.content.pm.ActivityInfo.isFixedOrientationPortrait;
 import static android.content.res.Configuration.EMPTY;
@@ -111,12 +122,18 @@
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_FREE_RESIZE;
 import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_NONE;
-import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE;
+import static com.android.server.wm.ActivityTaskManagerService
+        .RELAUNCH_REASON_WINDOWING_MODE_RESIZE;
 import static com.android.server.wm.IdentifierProto.HASH_CODE;
 import static com.android.server.wm.IdentifierProto.TITLE;
 import static com.android.server.wm.IdentifierProto.USER_ID;
 import static com.android.server.wm.TaskPersister.DEBUG;
 import static com.android.server.wm.TaskPersister.IMAGE_EXTENSION;
+import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ADD_REMOVE;
+import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ORIENTATION;
+import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STARTING_WINDOW;
+import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_TOKEN_MOVEMENT;
+import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 
 import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
 import static org.xmlpull.v1.XmlPullParser.END_TAG;
@@ -147,6 +164,7 @@
 import android.content.res.CompatibilityInfo;
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
+import android.graphics.GraphicBuffer;
 import android.graphics.Rect;
 import android.os.Binder;
 import android.os.Build;
@@ -167,11 +185,14 @@
 import android.util.Slog;
 import android.util.TimeUtils;
 import android.util.proto.ProtoOutputStream;
+import android.view.AppTransitionAnimationSpec;
+import android.view.IAppTransitionAnimationSpecsFuture;
 import android.view.IApplicationToken;
 import android.view.RemoteAnimationDefinition;
 import android.view.WindowManager.LayoutParams;
 
 import com.android.internal.R;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.ResolverActivity;
 import com.android.internal.content.ReferrerIntent;
 import com.android.internal.util.XmlUtils;
@@ -200,7 +221,7 @@
 /**
  * An entry in the history stack, representing an activity.
  */
-final class ActivityRecord extends ConfigurationContainer implements AppWindowContainerListener {
+final class ActivityRecord extends ConfigurationContainer {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "ActivityRecord" : TAG_ATM;
     private static final String TAG_CONFIGURATION = TAG + POSTFIX_CONFIGURATION;
     private static final String TAG_SAVED_STATE = TAG + POSTFIX_SAVED_STATE;
@@ -223,18 +244,20 @@
     private static final String ATTR_COMPONENTSPECIFIED = "component_specified";
     static final String ACTIVITY_ICON_SUFFIX = "_activity_icon_";
 
-    final ActivityTaskManagerService service; // owner
+    final ActivityTaskManagerService mAtmService; // owner
     final IApplicationToken.Stub appToken; // window manager token
-    AppWindowContainerController mWindowContainerController;
+    // TODO: Remove after unification
+    AppWindowToken mAppWindowToken;
+
     final ActivityInfo info; // all about me
     // TODO: This is duplicated state already contained in info.applicationInfo - remove
     ApplicationInfo appInfo; // information about activity's app
     final int launchedFromPid; // always the pid who started the activity.
     final int launchedFromUid; // always the uid who started the activity.
     final String launchedFromPackage; // always the package who started the activity.
-    final int userId;          // Which user is this running for?
+    final int mUserId;          // Which user is this running for?
     final Intent intent;    // the original intent that generated us
-    final ComponentName realActivity;  // the intent component, or target of an alias.
+    final ComponentName mActivityComponent;  // the intent component, or target of an alias.
     final String shortComponentName; // the short component name of the intent
     final String resolvedType; // as per original caller;
     final String packageName; // the package implementing intent's component
@@ -322,6 +345,7 @@
 
     private boolean inHistory;  // are we in the history stack?
     final ActivityStackSupervisor mStackSupervisor;
+    final RootActivityContainer mRootActivityContainer;
 
     static final int STARTING_WINDOW_NOT_SHOWN = 0;
     static final int STARTING_WINDOW_SHOWN = 1;
@@ -383,14 +407,14 @@
                 pw.print(" processName="); pw.println(processName);
         pw.print(prefix); pw.print("launchedFromUid="); pw.print(launchedFromUid);
                 pw.print(" launchedFromPackage="); pw.print(launchedFromPackage);
-                pw.print(" userId="); pw.println(userId);
+                pw.print(" userId="); pw.println(mUserId);
         pw.print(prefix); pw.print("app="); pw.println(app);
         pw.print(prefix); pw.println(intent.toInsecureStringWithClip());
         pw.print(prefix); pw.print("frontOfTask="); pw.print(frontOfTask);
                 pw.print(" task="); pw.println(task);
         pw.print(prefix); pw.print("taskAffinity="); pw.println(taskAffinity);
-        pw.print(prefix); pw.print("realActivity=");
-                pw.println(realActivity.flattenToShortString());
+        pw.print(prefix); pw.print("mActivityComponent=");
+                pw.println(mActivityComponent.flattenToShortString());
         if (appInfo != null) {
             pw.print(prefix); pw.print("baseDir="); pw.println(appInfo.sourceDir);
             if (!Objects.equals(appInfo.sourceDir, appInfo.publicSourceDir)) {
@@ -620,7 +644,7 @@
                     "Reporting activity moved to display" + ", activityRecord=" + this
                             + ", displayId=" + displayId + ", config=" + config);
 
-            service.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
+            mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
                     MoveToDisplayItem.obtain(displayId, config));
         } catch (RemoteException e) {
             // If process died, whatever.
@@ -638,7 +662,7 @@
             if (DEBUG_CONFIGURATION) Slog.v(TAG, "Sending new config to " + this + ", config: "
                     + config);
 
-            service.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
+            mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
                     ActivityConfigurationChangeItem.obtain(config));
         } catch (RemoteException e) {
             // If process died, whatever.
@@ -665,7 +689,7 @@
 
     private void scheduleMultiWindowModeChanged(Configuration overrideConfig) {
         try {
-            service.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
+            mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
                     MultiWindowModeChangeItem.obtain(mLastReportedMultiWindowMode, overrideConfig));
         } catch (Exception e) {
             // If process died, I don't care.
@@ -696,7 +720,7 @@
 
     private void schedulePictureInPictureModeChanged(Configuration overrideConfig) {
         try {
-            service.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
+            mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
                     PipModeChangeItem.obtain(mLastReportedPictureInPictureMode,
                             overrideConfig));
         } catch (Exception e) {
@@ -717,10 +741,10 @@
 
     @Override
     protected ConfigurationContainer getParent() {
-        return getTask();
+        return getTaskRecord();
     }
 
-    TaskRecord getTask() {
+    TaskRecord getTaskRecord() {
         return task;
     }
 
@@ -741,12 +765,12 @@
      * @param reparenting   Whether we're in the middle of reparenting.
      */
     void setTask(TaskRecord task, boolean reparenting) {
-        // Do nothing if the {@link TaskRecord} is the same as the current {@link getTask}.
-        if (task != null && task == getTask()) {
+        // Do nothing if the {@link TaskRecord} is the same as the current {@link getTaskRecord}.
+        if (task != null && task == getTaskRecord()) {
             return;
         }
 
-        final ActivityStack oldStack = getStack();
+        final ActivityStack oldStack = getActivityStack();
         final ActivityStack newStack = task != null ? task.getStack() : null;
 
         // Inform old stack (if present) of activity removal and new stack (if set) of activity
@@ -769,10 +793,16 @@
     }
 
     /**
-     * See {@link AppWindowContainerController#setWillCloseOrEnterPip(boolean)}
+     * Notifies AWT that this app is waiting to pause in order to determine if it will enter PIP.
+     * This information helps AWT know that the app is in the process of pausing before it gets the
+     * signal on the WM side.
      */
     void setWillCloseOrEnterPip(boolean willCloseOrEnterPip) {
-        getWindowContainerController().setWillCloseOrEnterPip(willCloseOrEnterPip);
+        if (mAppWindowToken == null) {
+            return;
+        }
+
+        mAppWindowToken.setWillCloseOrEnterPip(willCloseOrEnterPip);
     }
 
     static class Token extends IApplicationToken.Stub {
@@ -789,7 +819,7 @@
                 return null;
             }
             ActivityRecord r = token.weakActivity.get();
-            if (r == null || r.getStack() == null) {
+            if (r == null || r.getActivityStack() == null) {
                 return null;
             }
             return r;
@@ -822,7 +852,7 @@
     }
 
     boolean isResolverActivity() {
-        return ResolverActivity.class.getName().equals(realActivity.getClassName());
+        return ResolverActivity.class.getName().equals(mActivityComponent.getClassName());
     }
 
     boolean isResolverOrChildActivity() {
@@ -831,7 +861,7 @@
         }
         try {
             return ResolverActivity.class.isAssignableFrom(
-                    Object.class.getClassLoader().loadClass(realActivity.getClassName()));
+                    Object.class.getClassLoader().loadClass(mActivityComponent.getClassName()));
         } catch (ClassNotFoundException e) {
             return false;
         }
@@ -843,13 +873,14 @@
             ActivityRecord _resultTo, String _resultWho, int _reqCode, boolean _componentSpecified,
             boolean _rootVoiceInteraction, ActivityStackSupervisor supervisor,
             ActivityOptions options, ActivityRecord sourceRecord) {
-        service = _service;
+        mAtmService = _service;
+        mRootActivityContainer = _service.mRootActivityContainer;
         appToken = new Token(this, _intent);
         info = aInfo;
         launchedFromPid = _launchedFromPid;
         launchedFromUid = _launchedFromUid;
         launchedFromPackage = _launchedFromPackage;
-        userId = UserHandle.getUserId(aInfo.applicationInfo.uid);
+        mUserId = UserHandle.getUserId(aInfo.applicationInfo.uid);
         intent = _intent;
         shortComponentName = _intent.getComponent().flattenToShortString();
         resolvedType = _resolvedType;
@@ -886,9 +917,9 @@
                 || (aInfo.targetActivity.equals(_intent.getComponent().getClassName())
                 && (aInfo.launchMode == LAUNCH_MULTIPLE
                 || aInfo.launchMode == LAUNCH_SINGLE_TOP))) {
-            realActivity = _intent.getComponent();
+            mActivityComponent = _intent.getComponent();
         } else {
-            realActivity = new ComponentName(aInfo.packageName, aInfo.targetActivity);
+            mActivityComponent = new ComponentName(aInfo.packageName, aInfo.targetActivity);
         }
         taskAffinity = aInfo.taskAffinity;
         stateNotNeeded = (aInfo.flags & FLAG_STATE_NOT_NEEDED) != 0;
@@ -927,7 +958,7 @@
         launchMode = aInfo.launchMode;
 
         Entry ent = AttributeCache.instance().get(packageName,
-                realTheme, com.android.internal.R.styleable.Window, userId);
+                realTheme, com.android.internal.R.styleable.Window, mUserId);
 
         if (ent != null) {
             fullscreen = !ActivityInfo.isTranslucentOrFloating(ent.array);
@@ -991,13 +1022,9 @@
         return hasProcess() && app.hasThread();
     }
 
-    AppWindowContainerController getWindowContainerController() {
-        return mWindowContainerController;
-    }
-
-    void createWindowContainer() {
-        if (mWindowContainerController != null) {
-            throw new IllegalArgumentException("Window container=" + mWindowContainerController
+    void createAppWindowToken() {
+        if (mAppWindowToken != null) {
+            throw new IllegalArgumentException("App Window Token=" + mAppWindowToken
                     + " already created for r=" + this);
         }
 
@@ -1010,12 +1037,31 @@
         // Make sure override configuration is up-to-date before using to create window controller.
         updateOverrideConfiguration();
 
-        mWindowContainerController = new AppWindowContainerController(taskController, appToken,
-                realActivity, this, Integer.MAX_VALUE /* add on top */, info.screenOrientation,
-                fullscreen, (info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0, info.configChanges,
-                task.voiceSession != null, mLaunchTaskBehind, isAlwaysFocusable(),
-                appInfo.targetSdkVersion, mRotationAnimationHint,
-                ActivityTaskManagerService.getInputDispatchingTimeoutLocked(this) * 1000000L);
+        // TODO: remove after unification
+        mAppWindowToken = mAtmService.mWindowManager.mRoot.getAppWindowToken(appToken.asBinder());
+        if (mAppWindowToken != null) {
+            // TODO: Should this throw an exception instead?
+            Slog.w(TAG, "Attempted to add existing app token: " + appToken);
+        } else {
+            final Task container = taskController.mContainer;
+            if (container == null) {
+                throw new IllegalArgumentException("AppWindowContainerController: invalid "
+                        + " controller=" + taskController);
+            }
+            mAppWindowToken = createAppWindow(mAtmService.mWindowManager, appToken,
+                    task.voiceSession != null, container.getDisplayContent(),
+                    ActivityTaskManagerService.getInputDispatchingTimeoutLocked(this)
+                            * 1000000L, fullscreen,
+                    (info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0, appInfo.targetSdkVersion,
+                    info.screenOrientation, mRotationAnimationHint, info.configChanges,
+                    mLaunchTaskBehind, isAlwaysFocusable());
+            if (DEBUG_TOKEN_MOVEMENT || DEBUG_ADD_REMOVE) {
+                Slog.v(TAG, "addAppToken: "
+                        + mAppWindowToken + " controller=" + taskController + " at "
+                        + Integer.MAX_VALUE);
+            }
+            container.addChild(mAppWindowToken, Integer.MAX_VALUE /* add on top */);
+        }
 
         task.addActivityToTop(this);
 
@@ -1026,17 +1072,51 @@
         mLastReportedPictureInPictureMode = inPinnedWindowingMode();
     }
 
+    boolean addStartingWindow(String pkg, int theme, CompatibilityInfo compatInfo,
+            CharSequence nonLocalizedLabel, int labelRes, int icon, int logo, int windowFlags,
+            IBinder transferFrom, boolean newTask, boolean taskSwitch, boolean processRunning,
+            boolean allowTaskSnapshot, boolean activityCreated, boolean fromRecents) {
+        if (DEBUG_STARTING_WINDOW) {
+            Slog.v(TAG, "setAppStartingWindow: token=" + appToken
+                    + " pkg=" + pkg + " transferFrom=" + transferFrom + " newTask=" + newTask
+                    + " taskSwitch=" + taskSwitch + " processRunning=" + processRunning
+                    + " allowTaskSnapshot=" + allowTaskSnapshot);
+        }
+        if (mAppWindowToken == null) {
+            Slog.w(TAG_WM, "Attempted to set icon of non-existing app token: " + appToken);
+            return false;
+        }
+        return mAppWindowToken.addStartingWindow(pkg, theme, compatInfo, nonLocalizedLabel,
+                labelRes, icon, logo, windowFlags, transferFrom, newTask, taskSwitch,
+                processRunning, allowTaskSnapshot, activityCreated, fromRecents);
+    }
+
+    // TODO: Remove after unification
+    @VisibleForTesting
+    AppWindowToken createAppWindow(WindowManagerService service, IApplicationToken token,
+            boolean voiceInteraction, DisplayContent dc, long inputDispatchingTimeoutNanos,
+            boolean fullscreen, boolean showForAllUsers, int targetSdk, int orientation,
+            int rotationAnimationHint, int configChanges, boolean launchTaskBehind,
+            boolean alwaysFocusable) {
+        return new AppWindowToken(service, token, mActivityComponent, voiceInteraction, dc,
+                inputDispatchingTimeoutNanos, fullscreen, showForAllUsers, targetSdk, orientation,
+                rotationAnimationHint, configChanges, launchTaskBehind, alwaysFocusable,
+                this);
+    }
+
     void removeWindowContainer() {
-        // Do not try to remove a window container if we have already removed it.
-        if (mWindowContainerController == null) {
+        if (mAtmService.mWindowManager.mRoot == null) return;
+
+        final DisplayContent dc = mAtmService.mWindowManager.mRoot.getDisplayContent(
+                getDisplayId());
+        if (dc == null) {
+            Slog.w(TAG, "removeWindowContainer: Attempted to remove token: "
+                    + appToken + " from non-existing displayId=" + getDisplayId());
             return;
         }
-
         // Resume key dispatching if it is currently paused before we remove the container.
         resumeKeyDispatchingLocked();
-
-        mWindowContainerController.removeContainer(getDisplayId());
-        mWindowContainerController = null;
+        dc.removeAppToken(appToken.asBinder());
     }
 
     /**
@@ -1044,6 +1124,10 @@
      * should ensure that the {@param newTask} is not already the parent of this activity.
      */
     void reparent(TaskRecord newTask, int position, String reason) {
+        if (mAppWindowToken == null) {
+            Slog.w(TAG, "reparent: Attempted to reparent non-existing app token: " + appToken);
+            return;
+        }
         final TaskRecord prevTask = task;
         if (prevTask == newTask) {
             throw new IllegalArgumentException(reason + ": task=" + newTask
@@ -1059,8 +1143,7 @@
                     + " r=" + this + " (" + prevTask.getStackId() + ")");
         }
 
-        // Must reparent first in window manager
-        mWindowContainerController.reparent(newTask.getWindowContainerController(), position);
+        mAppWindowToken.reparent(newTask.getWindowContainerController(), position);
 
         // Reparenting prevents informing the parent stack of activity removal in the case that
         // the new stack has the same parent. we must manually signal here if this is not the case.
@@ -1110,7 +1193,7 @@
      */
     private boolean canLaunchAssistActivity(String packageName) {
         final ComponentName assistComponent =
-                service.mActiveVoiceInteractionServiceComponent;
+                mAtmService.mActiveVoiceInteractionServiceComponent;
         if (assistComponent != null) {
             return assistComponent.getPackageName().equals(packageName);
         }
@@ -1130,8 +1213,8 @@
                 // We only allow home activities to be resizeable if they explicitly requested it.
                 info.resizeMode = RESIZE_MODE_UNRESIZEABLE;
             }
-        } else if (realActivity.getClassName().contains(LEGACY_RECENTS_PACKAGE_NAME)
-                || service.getRecentTasks().isRecentsComponent(realActivity, appInfo.uid)) {
+        } else if (mActivityComponent.getClassName().contains(LEGACY_RECENTS_PACKAGE_NAME)
+                || mAtmService.getRecentTasks().isRecentsComponent(mActivityComponent, appInfo.uid)) {
             activityType = ACTIVITY_TYPE_RECENTS;
         } else if (options != null && options.getLaunchActivityType() == ACTIVITY_TYPE_ASSISTANT
                 && canLaunchAssistActivity(launchedFromPackage)) {
@@ -1149,16 +1232,16 @@
     /**
      * @return Stack value from current task, null if there is no task.
      */
-    <T extends ActivityStack> T getStack() {
+    <T extends ActivityStack> T getActivityStack() {
         return task != null ? (T) task.getStack() : null;
     }
 
     int getStackId() {
-        return getStack() != null ? getStack().mStackId : INVALID_STACK_ID;
+        return getActivityStack() != null ? getActivityStack().mStackId : INVALID_STACK_ID;
     }
 
     ActivityDisplay getDisplay() {
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         return stack != null ? stack.getDisplay() : null;
     }
 
@@ -1189,7 +1272,7 @@
     }
 
     boolean isInStackLocked() {
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         return stack != null && stack.isInStackLocked(this) != null;
     }
 
@@ -1200,7 +1283,7 @@
     }
 
     boolean isFocusable() {
-        return mStackSupervisor.isFocusable(this, isAlwaysFocusable());
+        return mRootActivityContainer.isFocusable(this, isAlwaysFocusable());
     }
 
     boolean isResizeable() {
@@ -1219,7 +1302,7 @@
      * @return whether this activity supports PiP multi-window and can be put in the pinned stack.
      */
     boolean supportsPictureInPicture() {
-        return service.mSupportsPictureInPicture && isActivityTypeStandardOrUndefined()
+        return mAtmService.mSupportsPictureInPicture && isActivityTypeStandardOrUndefined()
                 && info.supportsPictureInPicture();
     }
 
@@ -1232,7 +1315,7 @@
         // An activity can not be docked even if it is considered resizeable because it only
         // supports picture-in-picture mode but has a non-resizeable resizeMode
         return super.supportsSplitScreenWindowingMode()
-                && service.mSupportsSplitScreenMultiWindow && supportsResizeableMultiWindow();
+                && mAtmService.mSupportsSplitScreenMultiWindow && supportsResizeableMultiWindow();
     }
 
     /**
@@ -1240,16 +1323,16 @@
      *         stack.
      */
     boolean supportsFreeform() {
-        return service.mSupportsFreeformWindowManagement && supportsResizeableMultiWindow();
+        return mAtmService.mSupportsFreeformWindowManagement && supportsResizeableMultiWindow();
     }
 
     /**
      * @return whether this activity supports non-PiP multi-window.
      */
     private boolean supportsResizeableMultiWindow() {
-        return service.mSupportsMultiWindow && !isActivityTypeHome()
+        return mAtmService.mSupportsMultiWindow && !isActivityTypeHome()
                 && (ActivityInfo.isResizeableMode(info.resizeMode)
-                        || service.mForceResizableActivities);
+                        || mAtmService.mForceResizableActivities);
     }
 
     /**
@@ -1260,7 +1343,7 @@
      *         secondary screen.
      */
     boolean canBeLaunchedOnDisplay(int displayId) {
-        return service.mStackSupervisor.canPlaceEntityOnDisplay(displayId, launchedFromPid,
+        return mAtmService.mStackSupervisor.canPlaceEntityOnDisplay(displayId, launchedFromPid,
                 launchedFromUid, info);
     }
 
@@ -1281,13 +1364,13 @@
         }
 
         // Check to see if we are in VR mode, and disallow PiP if so
-        if (service.shouldDisableNonVrUiLocked()) {
+        if (mAtmService.shouldDisableNonVrUiLocked()) {
             return false;
         }
 
-        boolean isKeyguardLocked = service.isKeyguardLocked();
+        boolean isKeyguardLocked = mAtmService.isKeyguardLocked();
         boolean isCurrentAppLocked =
-                service.getLockTaskModeState() != LOCK_TASK_MODE_NONE;
+                mAtmService.getLockTaskModeState() != LOCK_TASK_MODE_NONE;
         final ActivityDisplay display = getDisplay();
         boolean hasPinnedStack = display != null && display.hasPinnedStack();
         // Don't return early if !isNotLocked, since we want to throw an exception if the activity
@@ -1328,7 +1411,7 @@
      * @return Whether AppOps allows this package to enter picture-in-picture.
      */
     private boolean checkEnterPictureInPictureAppOpsState() {
-        return service.getAppOpsService().checkOperation(
+        return mAtmService.getAppOpsService().checkOperation(
                 OP_PICTURE_IN_PICTURE, appInfo.uid, packageName) == MODE_ALLOWED;
     }
 
@@ -1345,15 +1428,15 @@
             return false;
         }
 
-        final TaskRecord task = getTask();
-        final ActivityStack stack = getStack();
+        final TaskRecord task = getTaskRecord();
+        final ActivityStack stack = getActivityStack();
         if (stack == null) {
             Slog.w(TAG, "moveActivityStackToFront: invalid task or stack: activity="
                     + this + " task=" + task);
             return false;
         }
 
-        if (mStackSupervisor.getTopResumedActivity() == this) {
+        if (mRootActivityContainer.getTopResumedActivity() == this) {
             if (DEBUG_FOCUS) {
                 Slog.d(TAG_FOCUS, "moveActivityStackToFront: already on top, activity=" + this);
             }
@@ -1366,9 +1449,9 @@
 
         stack.moveToFront(reason, task);
         // Report top activity change to tracking services and WM
-        if (mStackSupervisor.getTopResumedActivity() == this) {
+        if (mRootActivityContainer.getTopResumedActivity() == this) {
             // TODO(b/111361570): Support multiple focused apps in WM
-            service.setResumedActivityUncheckLocked(this, reason);
+            mAtmService.setResumedActivityUncheckLocked(this, reason);
         }
         return true;
     }
@@ -1378,7 +1461,7 @@
      *         {@link LayoutParams#FLAG_DISMISS_KEYGUARD} set
      */
     boolean hasDismissKeyguardWindows() {
-        return service.mWindowManager.containsDismissKeyguardWindow(appToken);
+        return mAtmService.mWindowManager.containsDismissKeyguardWindow(appToken);
     }
 
     void makeFinishingLocked() {
@@ -1390,14 +1473,14 @@
             clearOptionsLocked();
         }
 
-        if (service != null) {
-            service.getTaskChangeNotificationController().notifyTaskStackChanged();
+        if (mAtmService != null) {
+            mAtmService.getTaskChangeNotificationController().notifyTaskStackChanged();
         }
     }
 
     UriPermissionOwner getUriPermissionsLocked() {
         if (uriPermissions == null) {
-            uriPermissions = new UriPermissionOwner(service.mUgmInternal, this);
+            uriPermissions = new UriPermissionOwner(mAtmService.mUgmInternal, this);
         }
         return uriPermissions;
     }
@@ -1439,8 +1522,8 @@
     }
 
     final boolean isSleeping() {
-        final ActivityStack stack = getStack();
-        return stack != null ? stack.shouldSleepActivities() : service.isSleepingLocked();
+        final ActivityStack stack = getActivityStack();
+        return stack != null ? stack.shouldSleepActivities() : mAtmService.isSleepingLocked();
     }
 
     /**
@@ -1449,8 +1532,8 @@
      */
     final void deliverNewIntentLocked(int callingUid, Intent intent, String referrer) {
         // The activity now gets access to the data associated with this Intent.
-        service.mUgmInternal.grantUriPermissionFromIntent(callingUid, packageName,
-                intent, getUriPermissionsLocked(), userId);
+        mAtmService.mUgmInternal.grantUriPermissionFromIntent(callingUid, packageName,
+                intent, getUriPermissionsLocked(), mUserId);
         final ReferrerIntent rintent = new ReferrerIntent(intent, referrer);
         boolean unsent = true;
         final boolean isTopActivityWhileSleeping = isTopRunningActivity() && isSleeping();
@@ -1464,7 +1547,7 @@
             try {
                 ArrayList<ReferrerIntent> ar = new ArrayList<>(1);
                 ar.add(rintent);
-                service.getLifecycleManager().scheduleTransaction(
+                mAtmService.getLifecycleManager().scheduleTransaction(
                         app.getThread(), appToken, NewIntentItem.obtain(ar, mState == PAUSED));
                 unsent = false;
             } catch (RemoteException e) {
@@ -1490,7 +1573,7 @@
     void applyOptionsLocked() {
         if (pendingOptions != null
                 && pendingOptions.getAnimationType() != ANIM_SCENE_TRANSITION) {
-            mWindowContainerController.applyOptionsLocked(pendingOptions, intent);
+            applyOptionsLocked(pendingOptions, intent);
             if (task == null) {
                 clearOptionsLocked(false /* withAbort */);
             } else {
@@ -1500,6 +1583,104 @@
         }
     }
 
+    /**
+     * Apply override app transition base on options & animation type.
+     */
+    void applyOptionsLocked(ActivityOptions pendingOptions, Intent intent) {
+        final int animationType = pendingOptions.getAnimationType();
+        final DisplayContent displayContent = mAppWindowToken.getDisplayContent();
+        switch (animationType) {
+            case ANIM_CUSTOM:
+                displayContent.mAppTransition.overridePendingAppTransition(
+                        pendingOptions.getPackageName(),
+                        pendingOptions.getCustomEnterResId(),
+                        pendingOptions.getCustomExitResId(),
+                        pendingOptions.getOnAnimationStartListener());
+                break;
+            case ANIM_CLIP_REVEAL:
+                displayContent.mAppTransition.overridePendingAppTransitionClipReveal(
+                        pendingOptions.getStartX(), pendingOptions.getStartY(),
+                        pendingOptions.getWidth(), pendingOptions.getHeight());
+                if (intent.getSourceBounds() == null) {
+                    intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
+                            pendingOptions.getStartY(),
+                            pendingOptions.getStartX() + pendingOptions.getWidth(),
+                            pendingOptions.getStartY() + pendingOptions.getHeight()));
+                }
+                break;
+            case ANIM_SCALE_UP:
+                displayContent.mAppTransition.overridePendingAppTransitionScaleUp(
+                        pendingOptions.getStartX(), pendingOptions.getStartY(),
+                        pendingOptions.getWidth(), pendingOptions.getHeight());
+                if (intent.getSourceBounds() == null) {
+                    intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
+                            pendingOptions.getStartY(),
+                            pendingOptions.getStartX() + pendingOptions.getWidth(),
+                            pendingOptions.getStartY() + pendingOptions.getHeight()));
+                }
+                break;
+            case ANIM_THUMBNAIL_SCALE_UP:
+            case ANIM_THUMBNAIL_SCALE_DOWN:
+                final boolean scaleUp = (animationType == ANIM_THUMBNAIL_SCALE_UP);
+                final GraphicBuffer buffer = pendingOptions.getThumbnail();
+                displayContent.mAppTransition.overridePendingAppTransitionThumb(buffer,
+                        pendingOptions.getStartX(), pendingOptions.getStartY(),
+                        pendingOptions.getOnAnimationStartListener(),
+                        scaleUp);
+                if (intent.getSourceBounds() == null && buffer != null) {
+                    intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
+                            pendingOptions.getStartY(),
+                            pendingOptions.getStartX() + buffer.getWidth(),
+                            pendingOptions.getStartY() + buffer.getHeight()));
+                }
+                break;
+            case ANIM_THUMBNAIL_ASPECT_SCALE_UP:
+            case ANIM_THUMBNAIL_ASPECT_SCALE_DOWN:
+                final AppTransitionAnimationSpec[] specs = pendingOptions.getAnimSpecs();
+                final IAppTransitionAnimationSpecsFuture specsFuture =
+                        pendingOptions.getSpecsFuture();
+                if (specsFuture != null) {
+                    // TODO(multidisplay): Shouldn't be really used anymore from next CL.
+                    displayContent.mAppTransition.overridePendingAppTransitionMultiThumbFuture(
+                            specsFuture, pendingOptions.getOnAnimationStartListener(),
+                            animationType == ANIM_THUMBNAIL_ASPECT_SCALE_UP);
+                } else if (animationType == ANIM_THUMBNAIL_ASPECT_SCALE_DOWN
+                        && specs != null) {
+                    displayContent.mAppTransition.overridePendingAppTransitionMultiThumb(
+                            specs, pendingOptions.getOnAnimationStartListener(),
+                            pendingOptions.getAnimationFinishedListener(), false);
+                } else {
+                    displayContent.mAppTransition.overridePendingAppTransitionAspectScaledThumb(
+                            pendingOptions.getThumbnail(),
+                            pendingOptions.getStartX(), pendingOptions.getStartY(),
+                            pendingOptions.getWidth(), pendingOptions.getHeight(),
+                            pendingOptions.getOnAnimationStartListener(),
+                            (animationType == ANIM_THUMBNAIL_ASPECT_SCALE_UP));
+                    if (intent.getSourceBounds() == null) {
+                        intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
+                                pendingOptions.getStartY(),
+                                pendingOptions.getStartX() + pendingOptions.getWidth(),
+                                pendingOptions.getStartY() + pendingOptions.getHeight()));
+                    }
+                }
+                break;
+            case ANIM_OPEN_CROSS_PROFILE_APPS:
+                displayContent.mAppTransition
+                        .overridePendingAppTransitionStartCrossProfileApps();
+                break;
+            case ANIM_REMOTE_ANIMATION:
+                // TODO(multidisplay): Will pass displayId and adjust dependencies from next CL.
+                displayContent.mAppTransition.overridePendingAppTransitionRemote(
+                        pendingOptions.getRemoteAnimationAdapter());
+                break;
+            case ANIM_NONE:
+                break;
+            default:
+                Slog.e(TAG_WM, "applyOptionsLocked: Unknown animationType=" + animationType);
+                break;
+        }
+    }
+
     ActivityOptions getOptionsForTargetActivityLocked() {
         return pendingOptions != null ? pendingOptions.forTargetActivity() : null;
     }
@@ -1532,8 +1713,11 @@
         if (!keysPaused) {
             keysPaused = true;
 
-            if (mWindowContainerController != null) {
-                mWindowContainerController.pauseKeyDispatching();
+            // TODO: remove the check after unification with AppWindowToken. The DC check is not
+            // needed after no mock mAppWindowToken in tests.
+            if (mAppWindowToken != null && mAppWindowToken.getDisplayContent() != null) {
+                mAppWindowToken.getDisplayContent().getInputMonitor().pauseDispatchingLw(
+                        mAppWindowToken);
             }
         }
     }
@@ -1542,8 +1726,11 @@
         if (keysPaused) {
             keysPaused = false;
 
-            if (mWindowContainerController != null) {
-                mWindowContainerController.resumeKeyDispatching();
+            // TODO: remove the check after unification with AppWindowToken. The DC check is not
+            // needed after no mock mAppWindowToken in tests.
+            if (mAppWindowToken != null && mAppWindowToken.getDisplayContent() != null) {
+                mAppWindowToken.getDisplayContent().getInputMonitor().resumeDispatchingLw(
+                        mAppWindowToken);
             }
         }
     }
@@ -1565,11 +1752,16 @@
     }
 
     void setVisibility(boolean visible) {
-        mWindowContainerController.setVisibility(visible, mDeferHidingClient);
+        if (mAppWindowToken == null) {
+            Slog.w(TAG_WM, "Attempted to set visibility of non-existing app token: "
+                    + appToken);
+            return;
+        }
+        mAppWindowToken.setVisibility(visible, mDeferHidingClient);
         mStackSupervisor.getActivityMetricsLogger().notifyVisibilityChanged(this);
     }
 
-    // TODO: Look into merging with #setVisibility()
+    // TODO: Look into merging with #commitVisibility()
     void setVisible(boolean newVisible) {
         visible = newVisible;
         mDeferHidingClient = !visible && mDeferHidingClient;
@@ -1589,7 +1781,7 @@
 
         mState = state;
 
-        final TaskRecord parent = getTask();
+        final TaskRecord parent = getTaskRecord();
 
         if (parent != null) {
             parent.onActivityStateChanged(this, state, reason);
@@ -1599,7 +1791,12 @@
         // an indication that the Surface will eventually be destroyed.
         // This however isn't necessarily true if we are going to sleep.
         if (state == STOPPING && !isSleeping()) {
-            mWindowContainerController.notifyAppStopping();
+            if (mAppWindowToken == null) {
+                Slog.w(TAG_WM, "Attempted to notify stopping on non-existing app token: "
+                        + appToken);
+                return;
+            }
+            mAppWindowToken.detachChildren();
         }
     }
 
@@ -1637,7 +1834,12 @@
     }
 
     void notifyAppResumed(boolean wasStopped) {
-        mWindowContainerController.notifyAppResumed(wasStopped);
+        if (mAppWindowToken == null) {
+            Slog.w(TAG_WM, "Attempted to notify resumed of non-existing app token: "
+                    + appToken);
+            return;
+        }
+        mAppWindowToken.notifyAppResumed(wasStopped);
     }
 
     void notifyUnknownVisibilityLaunched() {
@@ -1645,7 +1847,10 @@
         // No display activities never add a window, so there is no point in waiting them for
         // relayout.
         if (!noDisplay) {
-            mWindowContainerController.notifyUnknownVisibilityLaunched();
+            if (mAppWindowToken != null) {
+                mAppWindowToken.getDisplayContent().mUnknownAppVisibilityController
+                        .notifyLaunched(mAppWindowToken);
+            }
         }
     }
 
@@ -1674,7 +1879,7 @@
         // If this activity is paused, tell it to now show its window.
         if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY,
                 "Making visible and scheduling visibility: " + this);
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         try {
             if (stack.mTranslucentActivityWaiting != null) {
                 updateOptionsLocked(returningOptions);
@@ -1702,13 +1907,13 @@
     void makeClientVisible() {
         mClientVisibilityDeferred = false;
         try {
-            service.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
+            mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
                     WindowVisibilityItem.obtain(true /* showWindow */));
             if (shouldPauseWhenBecomingVisible()) {
                 // An activity must be in the {@link PAUSING} state for the system to validate
                 // the move to {@link PAUSED}.
                 setState(PAUSING, "makeVisibleIfNeeded");
-                service.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
+                mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
                         PauseActivityItem.obtain(finishing, false /* userLeaving */,
                                 configChangeFlags, false /* dontReport */));
             }
@@ -1726,7 +1931,7 @@
         // paused state. We also avoid doing this for the activity the stack supervisor
         // considers the resumed activity, as normal means will bring the activity from STOPPED
         // to RESUMED. Adding PAUSING in this scenario will lead to double lifecycles.
-        if (!isState(STOPPED, STOPPING) || getStack().mTranslucentActivityWaiting != null
+        if (!isState(STOPPED, STOPPING) || getActivityStack().mTranslucentActivityWaiting != null
                 || isResumedActivityOnDisplay()) {
             return false;
         }
@@ -1789,8 +1994,8 @@
 
         if (isActivityTypeHome()) {
             WindowProcessController app = task.mActivities.get(0).app;
-            if (hasProcess() && app != service.mHomeProcess) {
-                service.mHomeProcess = app;
+            if (hasProcess() && app != mAtmService.mHomeProcess) {
+                mAtmService.mHomeProcess = app;
             }
         }
 
@@ -1805,7 +2010,7 @@
         mStackSupervisor.reportResumedActivityLocked(this);
 
         resumeKeyDispatchingLocked();
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         mStackSupervisor.mNoAnimActivities.clear();
 
         // Mark the point when the activity is resuming
@@ -1831,7 +2036,7 @@
 
     final void activityStoppedLocked(Bundle newIcicle, PersistableBundle newPersistentState,
             CharSequence description) {
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         if (mState != STOPPING) {
             Slog.i(TAG, "Activity reported stop, but no longer stopping: " + this);
             stack.mHandler.removeMessages(STOP_TIMEOUT_MSG, this);
@@ -1839,7 +2044,7 @@
         }
         if (newPersistentState != null) {
             persistentState = newPersistentState;
-            service.notifyTaskPersisterLocked(task, false);
+            mAtmService.notifyTaskPersisterLocked(task, false);
         }
         if (DEBUG_SAVED_STATE) Slog.i(TAG_SAVED_STATE, "Saving icicle of " + this + ": " + icicle);
 
@@ -1857,16 +2062,18 @@
             stopped = true;
             setState(STOPPED, "activityStoppedLocked");
 
-            mWindowContainerController.notifyAppStopped();
+            if (mAppWindowToken != null) {
+                mAppWindowToken.notifyAppStopped();
+            }
 
             if (finishing) {
                 clearOptionsLocked();
             } else {
                 if (deferRelaunchUntilPaused) {
                     stack.destroyActivityLocked(this, true /* removeFromApp */, "stop-config");
-                    mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mRootActivityContainer.resumeFocusedStacksTopActivities();
                 } else {
-                    mStackSupervisor.updatePreviousProcessLocked(this);
+                    mRootActivityContainer.updatePreviousProcess(this);
                 }
             }
         }
@@ -1887,7 +2094,7 @@
             return false;
         }
 
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         if (stack == null) {
             return false;
         }
@@ -1900,7 +2107,7 @@
 
     void finishLaunchTickingLocked() {
         launchTickTime = 0;
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         if (stack != null) {
             stack.mHandler.removeMessages(LAUNCH_TICK_MSG);
         }
@@ -1918,14 +2125,33 @@
 
     public void startFreezingScreenLocked(WindowProcessController app, int configChanges) {
         if (mayFreezeScreenLocked(app)) {
-            mWindowContainerController.startFreezingScreen(configChanges);
+            if (mAppWindowToken == null) {
+                Slog.w(TAG_WM,
+                        "Attempted to freeze screen with non-existing app token: " + appToken);
+                return;
+            }
+
+            if (configChanges == 0 && mAppWindowToken.okToDisplay()) {
+                if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Skipping set freeze of " + appToken);
+                return;
+            }
+
+            mAppWindowToken.startFreezingScreen();
         }
     }
 
     public void stopFreezingScreenLocked(boolean force) {
         if (force || frozenBeforeDestroy) {
             frozenBeforeDestroy = false;
-            mWindowContainerController.stopFreezingScreen(force);
+            if (mAppWindowToken == null) {
+                return;
+            }
+            if (DEBUG_ORIENTATION) {
+                Slog.v(TAG_WM, "Clear freezing of " + appToken + ": hidden="
+                        + mAppWindowToken.isHidden() + " freezing="
+                        + mAppWindowToken.isFreezingScreen());
+            }
+            mAppWindowToken.stopFreezingScreen(true, force);
         }
     }
 
@@ -1937,17 +2163,20 @@
                     info.windowsFullyDrawnDelayMs);
         }
     }
-    @Override
+
+    /**
+     * Called when the starting window for this container is drawn.
+     */
     public void onStartingWindowDrawn(long timestamp) {
-        synchronized (service.mGlobalLock) {
+        synchronized (mAtmService.mGlobalLock) {
             mStackSupervisor.getActivityMetricsLogger().notifyStartingWindowDrawn(
                     getWindowingMode(), timestamp);
         }
     }
 
-    @Override
+    /** Called when the windows associated app window container are drawn. */
     public void onWindowsDrawn(boolean drawn, long timestamp) {
-        synchronized (service.mGlobalLock) {
+        synchronized (mAtmService.mGlobalLock) {
             mDrawn = drawn;
             if (!drawn) {
                 return;
@@ -1965,9 +2194,9 @@
         }
     }
 
-    @Override
+    /** Called when the windows associated app window container are visible. */
     public void onWindowsVisible() {
-        synchronized (service.mGlobalLock) {
+        synchronized (mAtmService.mGlobalLock) {
             mStackSupervisor.reportActivityVisibleLocked(this);
             if (DEBUG_SWITCH) Log.v(TAG_SWITCH, "windowsVisibleLocked(): " + this);
             if (!nowVisible) {
@@ -1994,25 +2223,32 @@
                     mStackSupervisor.processStoppingActivitiesLocked(null /* idleActivity */,
                             false /* remove */, true /* processPausingActivities */);
                 }
-                service.scheduleAppGcsLocked();
+                mAtmService.scheduleAppGcsLocked();
             }
         }
     }
 
-    @Override
+    /** Called when the windows associated app window container are no longer visible. */
     public void onWindowsGone() {
-        synchronized (service.mGlobalLock) {
+        synchronized (mAtmService.mGlobalLock) {
             if (DEBUG_SWITCH) Log.v(TAG_SWITCH, "windowsGone(): " + this);
             nowVisible = false;
         }
     }
 
-    @Override
+    /**
+     * Called when the key dispatching to a window associated with the app window container
+     * timed-out.
+     *
+     * @param reason The reason for the key dispatching time out.
+     * @param windowPid The pid of the window key dispatching timed out on.
+     * @return True if input dispatching should be aborted.
+     */
     public boolean keyDispatchingTimedOut(String reason, int windowPid) {
         ActivityRecord anrActivity;
         WindowProcessController anrApp;
         boolean windowFromSameProcessAsActivity;
-        synchronized (service.mGlobalLock) {
+        synchronized (mAtmService.mGlobalLock) {
             anrActivity = getWaitingHistoryRecordLocked();
             anrApp = app;
             windowFromSameProcessAsActivity =
@@ -2020,13 +2256,13 @@
         }
 
         if (windowFromSameProcessAsActivity) {
-            return service.mAmInternal.inputDispatchingTimedOut(anrApp.mOwner,
+            return mAtmService.mAmInternal.inputDispatchingTimedOut(anrApp.mOwner,
                     anrActivity.shortComponentName, anrActivity.appInfo, shortComponentName,
                     app, false, reason);
         } else {
             // In this case another process added windows using this activity token. So, we call the
             // generic service input dispatch timed out method so that the right process is blamed.
-            return service.mAmInternal.inputDispatchingTimedOut(
+            return mAtmService.mAmInternal.inputDispatchingTimedOut(
                     windowPid, false /* aboveSystem */, reason) < 0;
         }
     }
@@ -2036,7 +2272,7 @@
         // another activity to start or has stopped, then the key dispatching
         // timeout should not be caused by this.
         if (mStackSupervisor.mActivitiesWaitingForVisibleActivity.contains(this) || stopped) {
-            final ActivityStack stack = mStackSupervisor.getTopDisplayFocusedStack();
+            final ActivityStack stack = mRootActivityContainer.getTopDisplayFocusedStack();
             // Try to use the one which is closest to top.
             ActivityRecord r = stack.getResumedActivity();
             if (r == null) {
@@ -2053,14 +2289,14 @@
     public boolean okToShowLocked() {
         // We cannot show activities when the device is locked and the application is not
         // encryption aware.
-        if (!StorageManager.isUserKeyUnlocked(userId)
+        if (!StorageManager.isUserKeyUnlocked(mUserId)
                 && !info.applicationInfo.isEncryptionAware()) {
             return false;
         }
 
         return (info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0
-                || (mStackSupervisor.isCurrentProfileLocked(userId)
-                && service.mAmInternal.isUserRunning(userId, 0 /* flags */));
+                || (mStackSupervisor.isCurrentProfileLocked(mUserId)
+                && mAtmService.mAmInternal.isUserRunning(mUserId, 0 /* flags */));
     }
 
     /**
@@ -2107,13 +2343,13 @@
 
     static ActivityRecord isInStackLocked(IBinder token) {
         final ActivityRecord r = ActivityRecord.forTokenLocked(token);
-        return (r != null) ? r.getStack().isInStackLocked(r) : null;
+        return (r != null) ? r.getActivityStack().isInStackLocked(r) : null;
     }
 
     static ActivityStack getStackLocked(IBinder token) {
         final ActivityRecord r = ActivityRecord.isInStackLocked(token);
         if (r != null) {
-            return r.getStack();
+            return r.getActivityStack();
         }
         return null;
     }
@@ -2123,7 +2359,7 @@
      *         {@link android.view.Display#INVALID_DISPLAY} if not attached.
      */
     int getDisplayId() {
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         if (stack == null) {
             return INVALID_DISPLAY;
         }
@@ -2135,7 +2371,7 @@
             // This would be redundant.
             return false;
         }
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         if (stack == null || this == stack.getResumedActivity() || this == stack.mPausingActivity
                 || !haveState || !stopped) {
             // We're not ready for this kind of thing.
@@ -2161,7 +2397,7 @@
             final File iconFile = new File(TaskPersister.getUserImagesDir(task.userId),
                     iconFilename);
             final String iconFilePath = iconFile.getAbsolutePath();
-            service.getRecentTasks().saveImage(icon, iconFilePath);
+            mAtmService.getRecentTasks().saveImage(icon, iconFilePath);
             _taskDescription.setIconFilename(iconFilePath);
         }
         taskDescription = _taskDescription;
@@ -2183,7 +2419,7 @@
 
     void showStartingWindow(ActivityRecord prev, boolean newTask, boolean taskSwitch,
             boolean fromRecents) {
-        if (mWindowContainerController == null) {
+        if (mAppWindowToken == null) {
             return;
         }
         if (mTaskOverlay) {
@@ -2197,8 +2433,8 @@
         }
 
         final CompatibilityInfo compatInfo =
-                service.compatibilityInfoForPackageLocked(info.applicationInfo);
-        final boolean shown = mWindowContainerController.addStartingWindow(packageName, theme,
+                mAtmService.compatibilityInfoForPackageLocked(info.applicationInfo);
+        final boolean shown = addStartingWindow(packageName, theme,
                 compatInfo, nonLocalizedLabel, labelRes, icon, logo, windowFlags,
                 prev != null ? prev.appToken : null, newTask, taskSwitch, isProcessRunning(),
                 allowTaskSnapshot(),
@@ -2213,34 +2449,62 @@
         if (mStartingWindowState == STARTING_WINDOW_SHOWN && behindFullscreenActivity) {
             if (DEBUG_VISIBILITY) Slog.w(TAG_VISIBILITY, "Found orphaned starting window " + this);
             mStartingWindowState = STARTING_WINDOW_REMOVED;
-            mWindowContainerController.removeStartingWindow();
+            mAppWindowToken.removeStartingWindow();
         }
     }
 
     int getRequestedOrientation() {
-        return mWindowContainerController.getOrientation();
+        return getOrientation();
     }
 
     void setRequestedOrientation(int requestedOrientation) {
         final int displayId = getDisplayId();
         final Configuration displayConfig =
-                mStackSupervisor.getDisplayOverrideConfiguration(displayId);
+                mRootActivityContainer.getDisplayOverrideConfiguration(displayId);
 
-        final Configuration config = mWindowContainerController.setOrientation(requestedOrientation,
+        final Configuration config = setOrientation(requestedOrientation,
                 displayId, displayConfig, mayFreezeScreenLocked(app));
         if (config != null) {
             frozenBeforeDestroy = true;
-            if (!service.updateDisplayOverrideConfigurationLocked(config, this,
+            if (!mAtmService.updateDisplayOverrideConfigurationLocked(config, this,
                     false /* deferResume */, displayId)) {
-                mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                mRootActivityContainer.resumeFocusedStacksTopActivities();
             }
         }
-        service.getTaskChangeNotificationController().notifyActivityRequestedOrientationChanged(
+        mAtmService.getTaskChangeNotificationController().notifyActivityRequestedOrientationChanged(
                 task.taskId, requestedOrientation);
     }
 
+    Configuration setOrientation(int requestedOrientation, int displayId,
+            Configuration displayConfig, boolean freezeScreenIfNeeded) {
+        if (mAppWindowToken == null) {
+            Slog.w(TAG_WM,
+                    "Attempted to set orientation of non-existing app token: " + appToken);
+            return null;
+        }
+
+        mAppWindowToken.setOrientation(requestedOrientation);
+
+        final IBinder binder = freezeScreenIfNeeded ? appToken.asBinder() : null;
+        return mAtmService.mWindowManager.updateOrientationFromAppTokens(displayConfig, binder,
+                displayId);
+    }
+
+    int getOrientation() {
+        if (mAppWindowToken == null) {
+            return SCREEN_ORIENTATION_UNSPECIFIED;
+        }
+
+        return mAppWindowToken.getOrientationIgnoreVisibility();
+    }
+
     void setDisablePreviewScreenshots(boolean disable) {
-        mWindowContainerController.setDisablePreviewScreenshots(disable);
+        if (mAppWindowToken == null) {
+            Slog.w(TAG_WM, "Attempted to set disable screenshots of non-existing app"
+                    + " token: " + appToken);
+            return;
+        }
+        mAppWindowToken.setDisablePreviewScreenshots(disable);
     }
 
     /**
@@ -2279,7 +2543,7 @@
 
         // Bounds changed...update configuration to match.
         if (!matchParentBounds()) {
-            task.computeOverrideConfiguration(mTmpConfig, updatedBounds, null /* insetBounds */,
+            task.computeOverrideConfiguration(mTmpConfig, updatedBounds,
                     false /* overrideWidth */, false /* overrideHeight */);
         }
 
@@ -2288,8 +2552,8 @@
 
     /** Returns true if the configuration is compatible with this activity. */
     boolean isConfigurationCompatible(Configuration config) {
-        final int orientation = mWindowContainerController != null
-                ? mWindowContainerController.getOrientation() : info.screenOrientation;
+        final int orientation = mAppWindowToken != null
+                ? getOrientation() : info.screenOrientation;
         if (isFixedOrientationPortrait(orientation)
                 && config.orientation != ORIENTATION_PORTRAIT) {
             return false;
@@ -2308,7 +2572,7 @@
     private void computeBounds(Rect outBounds) {
         outBounds.setEmpty();
         final float maxAspectRatio = info.maxAspectRatio;
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         if (task == null || stack == null || task.inMultiWindowMode() || maxAspectRatio == 0
                 || isInVrUiMode(getConfiguration())) {
             // We don't set override configuration if that activity task isn't fullscreen. I.e. the
@@ -2354,7 +2618,7 @@
         // bounds would end up too small.
         outBounds.set(0, 0, maxActivityWidth + appBounds.left, maxActivityHeight + appBounds.top);
 
-        if (service.mWindowManager.getNavBarPosition() == NAV_BAR_LEFT) {
+        if (mAtmService.mWindowManager.getNavBarPosition(getDisplayId()) == NAV_BAR_LEFT) {
             // Position the activity frame on the opposite side of the nav bar.
             outBounds.left = appBounds.right - maxActivityWidth;
             outBounds.right = appBounds.right;
@@ -2390,7 +2654,7 @@
      */
     boolean ensureActivityConfiguration(int globalChanges, boolean preserveWindow,
             boolean ignoreStopState) {
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         if (stack.mConfigWillChange) {
             if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
                     "Skipping config check (will change): " + this);
@@ -2453,7 +2717,7 @@
         // Update last reported values.
         final Configuration newMergedOverrideConfig = getMergedOverrideConfiguration();
 
-        setLastReportedConfiguration(service.getGlobalConfiguration(), newMergedOverrideConfig);
+        setLastReportedConfiguration(mAtmService.getGlobalConfiguration(), newMergedOverrideConfig);
 
         if (mState == INITIALIZING) {
             // No need to relaunch or schedule new config for activity that hasn't been launched
@@ -2507,7 +2771,7 @@
             final boolean hasResizeChange = hasResizeChange(changes & ~info.getRealConfigChanged());
             if (hasResizeChange) {
                 final boolean isDragResizing =
-                        getTask().getWindowContainerController().isDragResizing();
+                        getTaskRecord().getWindowContainerController().isDragResizing();
                 mRelaunchReason = isDragResizing ? RELAUNCH_REASON_FREE_RESIZE
                         : RELAUNCH_REASON_WINDOWING_MODE_RESIZE;
             } else {
@@ -2640,7 +2904,7 @@
     }
 
     void relaunchActivityLocked(boolean andResume, boolean preserveWindow) {
-        if (service.mSuppressResizeConfigChanges && preserveWindow) {
+        if (mAtmService.mSuppressResizeConfigChanges && preserveWindow) {
             configChangeFlags = 0;
             return;
         }
@@ -2656,7 +2920,7 @@
                         + " newIntents=" + pendingNewIntents + " andResume=" + andResume
                         + " preserveWindow=" + preserveWindow);
         EventLog.writeEvent(andResume ? AM_RELAUNCH_RESUME_ACTIVITY
-                        : AM_RELAUNCH_ACTIVITY, userId, System.identityHashCode(this),
+                        : AM_RELAUNCH_ACTIVITY, mUserId, System.identityHashCode(this),
                 task.taskId, shortComponentName);
 
         startFreezingScreenLocked(app, 0);
@@ -2669,7 +2933,7 @@
             mStackSupervisor.activityRelaunchingLocked(this);
             final ClientTransactionItem callbackItem = ActivityRelaunchItem.obtain(pendingResults,
                     pendingNewIntents, configChangeFlags,
-                    new MergedConfiguration(service.getGlobalConfiguration(),
+                    new MergedConfiguration(mAtmService.getGlobalConfiguration(),
                             getMergedOverrideConfiguration()),
                     preserveWindow);
             final ActivityLifecycleItem lifecycleItem;
@@ -2682,7 +2946,7 @@
             final ClientTransaction transaction = ClientTransaction.obtain(app.getThread(), appToken);
             transaction.addCallback(callbackItem);
             transaction.setLifecycleStateRequest(lifecycleItem);
-            service.getLifecycleManager().scheduleTransaction(transaction);
+            mAtmService.getLifecycleManager().scheduleTransaction(transaction);
             // Note: don't need to call pauseIfSleepingLocked() here, because the caller will only
             // request resume if this activity is currently resumed, which implies we aren't
             // sleeping.
@@ -2696,9 +2960,9 @@
             }
             results = null;
             newIntents = null;
-            service.getAppWarningsLocked().onResumeActivity(this);
+            mAtmService.getAppWarningsLocked().onResumeActivity(this);
         } else {
-            final ActivityStack stack = getStack();
+            final ActivityStack stack = getActivityStack();
             if (stack != null) {
                 stack.mHandler.removeMessages(PAUSE_TIMEOUT_MSG, this);
             }
@@ -2713,7 +2977,7 @@
     private boolean isProcessRunning() {
         WindowProcessController proc = app;
         if (proc == null) {
-            proc = service.mProcessNames.get(processName, info.applicationInfo.uid);
+            proc = mAtmService.mProcessNames.get(processName, info.applicationInfo.uid);
         }
         return proc != null && proc.hasThread();
     }
@@ -2757,7 +3021,7 @@
             out.attribute(null, ATTR_RESOLVEDTYPE, resolvedType);
         }
         out.attribute(null, ATTR_COMPONENTSPECIFIED, String.valueOf(componentSpecified));
-        out.attribute(null, ATTR_USERID, String.valueOf(userId));
+        out.attribute(null, ATTR_USERID, String.valueOf(mUserId));
 
         if (taskDescription != null) {
             taskDescription.saveToXml(out);
@@ -2867,7 +3131,7 @@
 
     void setShowWhenLocked(boolean showWhenLocked) {
         mShowWhenLocked = showWhenLocked;
-        mStackSupervisor.ensureActivitiesVisibleLocked(null, 0 /* configChanges */,
+        mRootActivityContainer.ensureActivitiesVisible(null, 0 /* configChanges */,
                 false /* preserveWindows */);
     }
 
@@ -2880,7 +3144,7 @@
      */
     boolean canShowWhenLocked() {
         return !inPinnedWindowingMode() && (mShowWhenLocked
-                || service.mWindowManager.containsShowWhenLockedWindow(appToken));
+                || mAtmService.mWindowManager.containsShowWhenLockedWindow(appToken));
     }
 
     void setTurnScreenOn(boolean turnScreenOn) {
@@ -2895,7 +3159,7 @@
      * @return true if the screen can be turned on, false otherwise.
      */
     boolean canTurnScreenOn() {
-        final ActivityStack stack = getStack();
+        final ActivityStack stack = getActivityStack();
         return mTurnScreenOn && stack != null &&
                 stack.checkKeyguardVisibility(this, true /* shouldBeVisible */, true /* isTop */);
     }
@@ -2905,7 +3169,7 @@
     }
 
     boolean isTopRunningActivity() {
-        return mStackSupervisor.topRunningActivityLocked() == this;
+        return mRootActivityContainer.topRunningActivity() == this;
     }
 
     /**
@@ -2918,7 +3182,12 @@
     }
 
     void registerRemoteAnimations(RemoteAnimationDefinition definition) {
-        mWindowContainerController.registerRemoteAnimations(definition);
+        if (mAppWindowToken == null) {
+            Slog.w(TAG_WM, "Attempted to register remote animations with non-existing app"
+                    + " token: " + appToken);
+            return;
+        }
+        mAppWindowToken.registerRemoteAnimations(definition);
     }
 
     @Override
@@ -2931,7 +3200,7 @@
         sb.append("ActivityRecord{");
         sb.append(Integer.toHexString(System.identityHashCode(this)));
         sb.append(" u");
-        sb.append(userId);
+        sb.append(mUserId);
         sb.append(' ');
         sb.append(intent.getComponent().flattenToShortString());
         stringName = sb.toString();
@@ -2941,13 +3210,16 @@
     void writeIdentifierToProto(ProtoOutputStream proto, long fieldId) {
         final long token = proto.start(fieldId);
         proto.write(HASH_CODE, System.identityHashCode(this));
-        proto.write(USER_ID, userId);
+        proto.write(USER_ID, mUserId);
         proto.write(TITLE, intent.getComponent().flattenToShortString());
         proto.end(token);
     }
 
-    public void writeToProto(ProtoOutputStream proto, long fieldId) {
-        final long token = proto.start(fieldId);
+    /**
+     * Write all fields to an {@code ActivityRecordProto}. This assumes the
+     * {@code ActivityRecordProto} is the outer-most proto data.
+     */
+    void writeToProto(ProtoOutputStream proto) {
         super.writeToProto(proto, CONFIGURATION_CONTAINER, false /* trim */);
         writeIdentifierToProto(proto, IDENTIFIER);
         proto.write(STATE, mState.toString());
@@ -2957,6 +3229,11 @@
             proto.write(PROC_ID, app.getPid());
         }
         proto.write(TRANSLUCENT, !fullscreen);
+    }
+
+    public void writeToProto(ProtoOutputStream proto, long fieldId) {
+        final long token = proto.start(fieldId);
+        writeToProto(proto);
         proto.end(token);
     }
 }
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index 7fcee3db..3ccede0 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -63,7 +63,6 @@
 import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
 import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
 import static com.android.server.wm.ActivityStack.ActivityState.STOPPING;
-import static com.android.server.wm.ActivityStackSupervisor.FindTaskResult;
 import static com.android.server.wm.ActivityStackSupervisor.PAUSE_IMMEDIATELY;
 import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
 import static com.android.server.wm.ActivityStackSupervisor.REMOVE_FROM_RECENTS;
@@ -103,6 +102,7 @@
 import static com.android.server.wm.ActivityTaskManagerService.H.FIRST_ACTIVITY_STACK_MSG;
 import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_FREE_RESIZE;
 import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE;
+import static com.android.server.wm.RootActivityContainer.FindTaskResult;
 
 import static java.lang.Integer.MAX_VALUE;
 
@@ -233,14 +233,41 @@
     }
 
     @Override
-    protected ConfigurationContainer getParent() {
+    protected ActivityDisplay getParent() {
         return getDisplay();
     }
 
+    void setParent(ActivityDisplay parent) {
+        ActivityDisplay current = getParent();
+        if (current != parent) {
+            mDisplayId = parent.mDisplayId;
+            onParentChanged();
+        }
+    }
+
     @Override
     protected void onParentChanged() {
+        ActivityDisplay display = getParent();
+        if (display != null) {
+            // Rotations are relative to the display. This means if there are 2 displays rotated
+            // differently (eg. 2 monitors with one landscape and one portrait), moving a stack
+            // from one to the other could look like a rotation change. To prevent this
+            // apparent rotation change (and corresponding bounds rotation), pretend like our
+            // current rotation is already the same as the new display.
+            // Note, if ActivityStack or related logic ever gets nested, this logic will need
+            // to move to onConfigurationChanged.
+            getConfiguration().windowConfiguration.setRotation(
+                    display.getWindowConfiguration().getRotation());
+        }
         super.onParentChanged();
-        mStackSupervisor.updateUIDsPresentOnDisplay();
+        if (display != null && inSplitScreenPrimaryWindowingMode()) {
+            // If we created a docked stack we want to resize it so it resizes all other stacks
+            // in the system.
+            getStackDockedModeBounds(null, null, mTmpRect2, mTmpRect3);
+            mStackSupervisor.resizeDockedStackLocked(
+                    getOverrideBounds(), mTmpRect2, mTmpRect2, null, null, PRESERVE_WINDOWS);
+        }
+        mRootActivityContainer.updateUIDsPresentOnDisplay();
     }
 
     enum ActivityState {
@@ -353,7 +380,9 @@
 
     private final SparseArray<Rect> mTmpBounds = new SparseArray<>();
     private final SparseArray<Rect> mTmpInsetBounds = new SparseArray<>();
+    private final Rect mTmpRect = new Rect();
     private final Rect mTmpRect2 = new Rect();
+    private final Rect mTmpRect3 = new Rect();
     private final ActivityOptions mTmpOptions = ActivityOptions.makeBasic();
 
     /** List for processing through a set of activities */
@@ -361,6 +390,7 @@
 
     /** Run all ActivityStacks through this */
     protected final ActivityStackSupervisor mStackSupervisor;
+    protected final RootActivityContainer mRootActivityContainer;
 
     private boolean mTopActivityOccludesKeyguard;
     private ActivityRecord mTopDismissingKeyguardActivity;
@@ -460,6 +490,7 @@
             int windowingMode, int activityType, boolean onTop) {
         mStackSupervisor = supervisor;
         mService = supervisor.mService;
+        mRootActivityContainer = mService.mRootActivityContainer;
         mHandler = new ActivityStackHandler(supervisor.mLooper);
         mWindowManager = mService.mWindowManager;
         mStackId = stackId;
@@ -469,15 +500,17 @@
         // stacks on a wrong display.
         mDisplayId = display.mDisplayId;
         setActivityType(activityType);
-        setWindowingMode(windowingMode);
         mWindowContainerController = createStackWindowController(display.mDisplayId, onTop,
                 mTmpRect2);
-        postAddToDisplay(display, mTmpRect2.isEmpty() ? null : mTmpRect2, onTop);
+        setWindowingMode(windowingMode, false /* animate */, false /* showRecents */,
+                false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */,
+                true /* creating */);
+        display.addChild(this, onTop ? POSITION_TOP : POSITION_BOTTOM);
     }
 
     T createStackWindowController(int displayId, boolean onTop, Rect outBounds) {
         return (T) new StackWindowController(mStackId, this, displayId, onTop, outBounds,
-                mStackSupervisor.mWindowManager);
+                mRootActivityContainer.mWindowManager);
     }
 
     T getWindowContainerController() {
@@ -501,11 +534,11 @@
             if (DEBUG_STACK) Slog.v(TAG_STACK, "set resumed activity to:" + record + " reason:"
                     + reason);
             setResumedActivity(record, reason + " - onActivityStateChanged");
-            if (record == mStackSupervisor.getTopResumedActivity()) {
+            if (record == mRootActivityContainer.getTopResumedActivity()) {
                 // TODO(b/111361570): Support multiple focused apps in WM
                 mService.setResumedActivityUncheckLocked(record, reason);
             }
-            mStackSupervisor.mRecentTasks.add(record.getTask());
+            mStackSupervisor.mRecentTasks.add(record.getTaskRecord());
         }
     }
 
@@ -514,21 +547,85 @@
         final int prevWindowingMode = getWindowingMode();
         final boolean prevIsAlwaysOnTop = isAlwaysOnTop();
         final ActivityDisplay display = getDisplay();
+        final int prevRotation = getWindowConfiguration().getRotation();
+        final int prevDensity = getConfiguration().densityDpi;
+        final int prevScreenW = getConfiguration().screenWidthDp;
+        final int prevScreenH = getConfiguration().screenHeightDp;
 
-        getBounds(mTmpRect2);
-        final boolean hasNewBounds = display != null && getWindowContainerController() != null
-                && getWindowContainerController().updateBoundsForConfigChange(
-                        newParentConfig, getConfiguration(), mTmpRect2);
+        getBounds(mTmpRect); // previous bounds
 
         super.onConfigurationChanged(newParentConfig);
         if (display == null) {
-          return;
+            return;
+        }
+
+        // Update bounds if applicable
+        boolean hasNewOverrideBounds = false;
+        // Use override windowing mode to prevent extra bounds changes if inheriting the mode.
+        if (getOverrideWindowingMode() == WINDOWING_MODE_PINNED) {
+            // Pinned calculation already includes rotation
+            mTmpRect2.set(mTmpRect);
+            hasNewOverrideBounds = getWindowContainerController().mContainer
+                            .calculatePinnedBoundsForConfigChange(mTmpRect2);
+        } else {
+            final int newRotation = getWindowConfiguration().getRotation();
+            if (!matchParentBounds()) {
+                // If the parent (display) has rotated, rotate our bounds to best-fit where their
+                // bounds were on the pre-rotated display.
+                if (prevRotation != newRotation) {
+                    mTmpRect2.set(mTmpRect);
+                    getDisplay().getWindowContainerController().mContainer
+                            .rotateBounds(newParentConfig.windowConfiguration.getBounds(),
+                                    prevRotation, newRotation, mTmpRect2);
+                    hasNewOverrideBounds = true;
+                }
+
+                // If entering split screen or if something about the available split area changes,
+                // recalculate the split windows to match the new configuration.
+                if (prevRotation != newRotation
+                        || prevDensity != getConfiguration().densityDpi
+                        || prevWindowingMode != getWindowingMode()
+                        || prevScreenW != getConfiguration().screenWidthDp
+                        || prevScreenH != getConfiguration().screenHeightDp) {
+                    // Use override windowing mode to prevent extra bounds changes if inheriting
+                    // the mode.
+                    if (getOverrideWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY
+                            || getOverrideWindowingMode()
+                            == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY) {
+                        mTmpRect2.set(mTmpRect);
+                        getWindowContainerController().mContainer
+                                .calculateDockedBoundsForConfigChange(newParentConfig, mTmpRect2);
+                        hasNewOverrideBounds = true;
+                    }
+                }
+            }
+        }
+        if (getWindowingMode() != prevWindowingMode) {
+            // Use override windowing mode to prevent extra bounds changes if inheriting the mode.
+            if (getOverrideWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
+                getStackDockedModeBounds(null, null, mTmpRect2, mTmpRect3);
+                // immediately resize so docked bounds are available in onSplitScreenModeActivated
+                resize(mTmpRect2, null /* tempTaskBounds */, null /* tempTaskInsetBounds */);
+            } else if (getOverrideWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY) {
+                Rect dockedBounds = display.getSplitScreenPrimaryStack().getBounds();
+                final boolean isMinimizedDock = getDisplay().getWindowContainerController()
+                        .mContainer.getDockedDividerController().isMinimizedDock();
+                if (isMinimizedDock) {
+                    TaskRecord topTask = display.getSplitScreenPrimaryStack().topTask();
+                    if (topTask != null) {
+                        dockedBounds = topTask.getBounds();
+                    }
+                }
+                getStackDockedModeBounds(dockedBounds, null, mTmpRect2, mTmpRect3);
+                hasNewOverrideBounds = true;
+            }
         }
         if (prevWindowingMode != getWindowingMode()) {
             display.onStackWindowingModeChanged(this);
         }
-        if (hasNewBounds) {
-            resize(mTmpRect2, null /* tempTaskBounds */, null /* tempTaskInsetBounds */);
+        if (hasNewOverrideBounds) {
+            mRootActivityContainer.resizeStack(this, mTmpRect2, null, null, PRESERVE_WINDOWS,
+                    true /* allowResizeInDockedMode */, true /* deferResume */);
         }
         if (prevIsAlwaysOnTop != isAlwaysOnTop()) {
             // Since always on top is only on when the stack is freeform or pinned, the state
@@ -541,7 +638,8 @@
     @Override
     public void setWindowingMode(int windowingMode) {
         setWindowingMode(windowingMode, false /* animate */, false /* showRecents */,
-                false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */);
+                false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */,
+                false /* creating */);
     }
 
     /**
@@ -569,10 +667,10 @@
      * @param enteringSplitScreenMode {@code true} if entering split mode.
      * @param deferEnsuringVisibility Whether visibility updates are deferred. This is set when
      *         many operations (which can effect visibility) are being performed in bulk.
+     * @param creating {@code true} if this is being run during ActivityStack construction.
      */
     void setWindowingMode(int preferredWindowingMode, boolean animate, boolean showRecents,
-            boolean enteringSplitScreenMode, boolean deferEnsuringVisibility) {
-        final boolean creating = mWindowContainerController == null;
+            boolean enteringSplitScreenMode, boolean deferEnsuringVisibility, boolean creating) {
         final int currentMode = getWindowingMode();
         final int currentOverrideMode = getOverrideWindowingMode();
         final ActivityDisplay display = getDisplay();
@@ -615,9 +713,11 @@
                 // doesn't support split-screen mode, go ahead an dismiss split-screen and display a
                 // warning toast about it.
                 mService.getTaskChangeNotificationController().notifyActivityDismissingDockedStack();
-                display.getSplitScreenPrimaryStack().setWindowingMode(WINDOWING_MODE_UNDEFINED,
+                final ActivityStack primarySplitStack = display.getSplitScreenPrimaryStack();
+                primarySplitStack.setWindowingMode(WINDOWING_MODE_UNDEFINED,
                         false /* animate */, false /* showRecents */,
-                        false /* enteringSplitScreenMode */, true /* deferEnsuringVisibility */);
+                        false /* enteringSplitScreenMode */, true /* deferEnsuringVisibility */,
+                        primarySplitStack == this ? creating : false);
             }
         }
 
@@ -721,8 +821,8 @@
         }
 
         if (!deferEnsuringVisibility) {
-            mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, PRESERVE_WINDOWS);
-            mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+            mRootActivityContainer.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS);
+            mRootActivityContainer.resumeFocusedStacksTopActivities();
         }
     }
 
@@ -746,7 +846,8 @@
         // the new display below
         mTmpRect2.setEmpty();
         mWindowContainerController.reparent(activityDisplay.mDisplayId, mTmpRect2, onTop);
-        postAddToDisplay(activityDisplay, mTmpRect2.isEmpty() ? null : mTmpRect2, onTop);
+        setBounds(mTmpRect2.isEmpty() ? null : mTmpRect2);
+        activityDisplay.addChild(this, onTop ? POSITION_TOP : POSITION_BOTTOM);
         if (!displayRemoved) {
             postReparent();
         }
@@ -755,39 +856,14 @@
     /** Resume next focusable stack after reparenting to another display. */
     void postReparent() {
         adjustFocusToNextFocusableStack("reparent", true /* allowFocusSelf */);
-        mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+        mRootActivityContainer.resumeFocusedStacksTopActivities();
         // Update visibility of activities before notifying WM. This way it won't try to resize
         // windows that are no longer visible.
-        mStackSupervisor.ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */,
+        mRootActivityContainer.ensureActivitiesVisible(null /* starting */, 0 /* configChanges */,
                 !PRESERVE_WINDOWS);
     }
 
     /**
-     * Updates internal state after adding to new display.
-     * @param activityDisplay New display to which this stack was attached.
-     * @param bounds Updated bounds.
-     */
-    private void postAddToDisplay(ActivityDisplay activityDisplay, Rect bounds, boolean onTop) {
-        if (mDisplayId != activityDisplay.mDisplayId) {
-            // rotations are relative to the display, so pretend like our current rotation is
-            // the same as the new display so we don't try to rotate bounds.
-            getConfiguration().windowConfiguration.setRotation(
-                    activityDisplay.getWindowConfiguration().getRotation());
-        }
-        mDisplayId = activityDisplay.mDisplayId;
-        setBounds(bounds);
-        onParentChanged();
-
-        activityDisplay.addChild(this, onTop ? POSITION_TOP : POSITION_BOTTOM);
-        if (inSplitScreenPrimaryWindowingMode()) {
-            // If we created a docked stack we want to resize it so it resizes all other stacks
-            // in the system.
-            mStackSupervisor.resizeDockedStackLocked(
-                    getOverrideBounds(), null, null, null, null, PRESERVE_WINDOWS);
-        }
-    }
-
-    /**
      * Updates the inner state of the stack to remove it from its current parent, so it can be
      * either destroyed completely or re-parented.
      */
@@ -808,16 +884,17 @@
     }
 
     ActivityDisplay getDisplay() {
-        return mStackSupervisor.getActivityDisplay(mDisplayId);
+        return mRootActivityContainer.getActivityDisplay(mDisplayId);
     }
 
     /**
-     * @see #getStackDockedModeBounds(Rect, Rect, Rect, boolean)
+     * @see #getStackDockedModeBounds(Rect, Rect, Rect, Rect)
      */
-    void getStackDockedModeBounds(Rect currentTempTaskBounds, Rect outStackBounds,
-            Rect outTempTaskBounds, boolean ignoreVisibility) {
-        mWindowContainerController.getStackDockedModeBounds(currentTempTaskBounds,
-                outStackBounds, outTempTaskBounds, ignoreVisibility);
+    void getStackDockedModeBounds(Rect dockedBounds, Rect currentTempTaskBounds,
+            Rect outStackBounds, Rect outTempTaskBounds) {
+        mWindowContainerController.getStackDockedModeBounds(getParent().getConfiguration(),
+                dockedBounds, currentTempTaskBounds,
+                outStackBounds, outTempTaskBounds);
     }
 
     void prepareFreezingTaskBounds() {
@@ -959,7 +1036,7 @@
     }
 
     /**
-     * This is a simplified version of topRunningActivityLocked that provides a number of
+     * This is a simplified version of topRunningActivity that provides a number of
      * optional skip-over modes.  It is intended for use with the ActivityController hook only.
      *
      * @param token If non-null, any history records matching this token will be skipped.
@@ -1029,8 +1106,8 @@
         if (r == null) {
             return null;
         }
-        final TaskRecord task = r.getTask();
-        final ActivityStack stack = r.getStack();
+        final TaskRecord task = r.getTaskRecord();
+        final ActivityStack stack = r.getActivityStack();
         if (stack != null && task.mActivities.contains(r) && mTaskHistory.contains(task)) {
             if (stack != this) Slog.w(TAG,
                     "Illegal state! task does not point to stack it is in.");
@@ -1161,7 +1238,7 @@
 
     boolean isFocusable() {
         final ActivityRecord r = topRunningActivityLocked();
-        return mStackSupervisor.isFocusable(this, r != null && r.isFocusable());
+        return mRootActivityContainer.isFocusable(this, r != null && r.isFocusable());
     }
 
     boolean isFocusableAndVisible() {
@@ -1205,7 +1282,7 @@
 
             // Overlays should not be considered as the task's logical top activity.
             final ActivityRecord r = task.getTopActivity(false /* includeOverlays */);
-            if (r == null || r.finishing || r.userId != userId ||
+            if (r == null || r.finishing || r.mUserId != userId ||
                     r.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE) {
                 if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Skipping " + task + ": mismatch root " + r);
                 continue;
@@ -1232,7 +1309,7 @@
 
             if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Comparing existing cls="
                     + taskIntent.getComponent().flattenToShortString()
-                    + "/aff=" + r.getTask().rootAffinity + " to new cls="
+                    + "/aff=" + r.getTaskRecord().rootAffinity + " to new cls="
                     + intent.getComponent().flattenToShortString() + "/aff=" + info.taskAffinity);
             // TODO Refactor to remove duplications. Check if logic can be simplified.
             if (taskIntent != null && taskIntent.getComponent() != null &&
@@ -1291,7 +1368,7 @@
                 if (!r.okToShowLocked()) {
                     continue;
                 }
-                if (!r.finishing && r.userId == userId) {
+                if (!r.finishing && r.mUserId == userId) {
                     if (compareIntentFilters) {
                         if (r.intent.filterEquals(intent)) {
                             return r;
@@ -1323,7 +1400,7 @@
             final TaskRecord task = mTaskHistory.get(i);
 
             if (task.okToShowLocked()) {
-                if (DEBUG_TASKS) Slog.d(TAG_TASKS, "switchUserLocked: stack=" + getStackId() +
+                if (DEBUG_TASKS) Slog.d(TAG_TASKS, "switchUser: stack=" + getStackId() +
                         " moving " + task + " to top");
                 mTaskHistory.remove(i);
                 mTaskHistory.add(task);
@@ -1375,7 +1452,7 @@
             for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
                 final ActivityRecord ar = activities.get(activityNdx);
 
-                if ((userId == ar.userId) && packageName.equals(ar.packageName)) {
+                if ((userId == ar.mUserId) && packageName.equals(ar.packageName)) {
                     ar.updateApplicationInfo(aInfo);
                 }
             }
@@ -1461,7 +1538,7 @@
 
     private boolean containsActivityFromStack(List<ActivityRecord> rs) {
         for (ActivityRecord r : rs) {
-            if (r.getStack() == this) {
+            if (r.getActivityStack() == this) {
                 return true;
             }
         }
@@ -1512,7 +1589,7 @@
         if (prev == null) {
             if (resuming == null) {
                 Slog.wtf(TAG, "Trying to pause when nothing is resumed");
-                mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                mRootActivityContainer.resumeFocusedStacksTopActivities();
             }
             return false;
         }
@@ -1529,7 +1606,7 @@
         mLastNoHistoryActivity = (prev.intent.getFlags() & Intent.FLAG_ACTIVITY_NO_HISTORY) != 0
                 || (prev.info.flags & ActivityInfo.FLAG_NO_HISTORY) != 0 ? prev : null;
         prev.setState(PAUSING, "startPausingLocked");
-        prev.getTask().touchActiveTime();
+        prev.getTaskRecord().touchActiveTime();
         clearLaunchTime(prev);
 
         mService.updateCpuStats();
@@ -1537,7 +1614,7 @@
         if (prev.attachedToProcess()) {
             if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Enqueueing pending pause: " + prev);
             try {
-                EventLogTags.writeAmPauseActivity(prev.userId, System.identityHashCode(prev),
+                EventLogTags.writeAmPauseActivity(prev.mUserId, System.identityHashCode(prev),
                         prev.shortComponentName, "userLeaving=" + userLeaving);
                 mService.updateUsageStats(prev, false);
 
@@ -1590,7 +1667,7 @@
             // pause, so just treat it as being paused now.
             if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Activity not running, resuming next.");
             if (resuming == null) {
-                mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                mRootActivityContainer.resumeFocusedStacksTopActivities();
             }
             return false;
         }
@@ -1615,7 +1692,7 @@
                 return;
             } else {
                 EventLog.writeEvent(EventLogTags.AM_FAILED_TO_PAUSE,
-                        r.userId, System.identityHashCode(r), r.shortComponentName,
+                        r.mUserId, System.identityHashCode(r), r.shortComponentName,
                         mPausingActivity != null
                             ? mPausingActivity.shortComponentName : "(none)");
                 if (r.isState(PAUSING)) {
@@ -1629,7 +1706,7 @@
                 }
             }
         }
-        mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+        mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
     }
 
     private void completePauseLocked(boolean resumeNext, ActivityRecord resuming) {
@@ -1682,9 +1759,9 @@
         }
 
         if (resumeNext) {
-            final ActivityStack topStack = mStackSupervisor.getTopDisplayFocusedStack();
+            final ActivityStack topStack = mRootActivityContainer.getTopDisplayFocusedStack();
             if (!topStack.shouldSleepOrShutDownActivities()) {
-                mStackSupervisor.resumeFocusedStacksTopActivitiesLocked(topStack, prev, null);
+                mRootActivityContainer.resumeFocusedStacksTopActivities(topStack, prev, null);
             } else {
                 checkReadyForSleep();
                 ActivityRecord top = topStack.topRunningActivityLocked();
@@ -1693,7 +1770,7 @@
                     // something. Also if the top activity on the stack is not the just paused
                     // activity, we need to go ahead and resume it to ensure we complete an
                     // in-flight app switch.
-                    mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mRootActivityContainer.resumeFocusedStacksTopActivities();
                 }
             }
         }
@@ -1724,7 +1801,7 @@
             mStackSupervisor.mAppVisibilitiesChangedSinceLastPause = false;
         }
 
-        mStackSupervisor.ensureActivitiesVisibleLocked(resuming, 0, !PRESERVE_WINDOWS);
+        mRootActivityContainer.ensureActivitiesVisible(resuming, 0, !PRESERVE_WINDOWS);
     }
 
     private void addToStopping(ActivityRecord r, boolean scheduleIdle, boolean idleDelayed) {
@@ -1936,7 +2013,7 @@
     /**
      * Ensure visibility with an option to also update the configuration of visible activities.
      * @see #ensureActivitiesVisibleLocked(ActivityRecord, int, boolean)
-     * @see ActivityStackSupervisor#ensureActivitiesVisibleLocked(ActivityRecord, int, boolean)
+     * @see RootActivityContainer#ensureActivitiesVisible(ActivityRecord, int, boolean)
      */
     // TODO: Should be re-worked based on the fact that each task as a stack in most cases.
     final void ensureActivitiesVisibleLocked(ActivityRecord starting, int configChanges,
@@ -1957,7 +2034,7 @@
             boolean aboveTop = top != null;
             final boolean stackShouldBeVisible = shouldBeVisible(starting);
             boolean behindFullscreenActivity = !stackShouldBeVisible;
-            boolean resumeNextActivity = mStackSupervisor.isTopDisplayFocusedStack(this)
+            boolean resumeNextActivity = mRootActivityContainer.isTopDisplayFocusedStack(this)
                     && (isInStackLocked(starting) == null);
             final boolean isTopNotPinnedStack =
                     isAttached() && getDisplay().isTopNotPinnedStack(this);
@@ -2368,7 +2445,7 @@
      *
      * NOTE: It is not safe to call this method directly as it can cause an activity in a
      *       non-focused stack to be resumed.
-     *       Use {@link ActivityStackSupervisor#resumeFocusedStacksTopActivitiesLocked} to resume the
+     *       Use {@link RootActivityContainer#resumeFocusedStacksTopActivities} to resume the
      *       right activity for the current system state.
      */
     @GuardedBy("mService")
@@ -2438,7 +2515,7 @@
             return false;
         }
 
-        mStackSupervisor.cancelInitializingActivities();
+        mRootActivityContainer.cancelInitializingActivities();
 
         // Remember how we'll process this pause/resume situation, and ensure
         // that the state is reset however we wind up proceeding.
@@ -2461,7 +2538,6 @@
             executeAppTransition(options);
             if (DEBUG_STATES) Slog.d(TAG_STATES,
                     "resumeTopActivityLocked: Top activity resumed " + next);
-            if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
             return false;
         }
 
@@ -2469,15 +2545,20 @@
         // activity is paused, well that is the state we want.
         if (shouldSleepOrShutDownActivities()
                 && mLastPausedActivity == next
-                && mStackSupervisor.allPausedActivitiesComplete()) {
+                && mRootActivityContainer.allPausedActivitiesComplete()) {
             // If the current top activity may be able to occlude keyguard but the occluded state
             // has not been set, update visibility and check again if we should continue to resume.
             boolean nothingToResume = true;
-            if (!mService.mShuttingDown && !mTopActivityOccludesKeyguard
-                    && next.canShowWhenLocked()) {
-                ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */,
-                        !PRESERVE_WINDOWS);
-                nothingToResume = shouldSleepActivities();
+            if (!mService.mShuttingDown) {
+                final boolean canShowWhenLocked = !mTopActivityOccludesKeyguard
+                        && next.canShowWhenLocked();
+                final boolean mayDismissKeyguard = mTopDismissingKeyguardActivity != next
+                        && next.hasDismissKeyguardWindows();
+                if (canShowWhenLocked || mayDismissKeyguard) {
+                    ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */,
+                            !PRESERVE_WINDOWS);
+                    nothingToResume = shouldSleepActivities();
+                }
             }
             if (nothingToResume) {
                 // Make sure we have executed any pending transitions, since there
@@ -2485,7 +2566,6 @@
                 executeAppTransition(options);
                 if (DEBUG_STATES) Slog.d(TAG_STATES,
                         "resumeTopActivityLocked: Going to sleep and all paused");
-                if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
                 return false;
             }
         }
@@ -2493,10 +2573,9 @@
         // Make sure that the user who owns this activity is started.  If not,
         // we will just leave it as is because someone should be bringing
         // another user's activities to the top of the stack.
-        if (!mService.mAmInternal.hasStartedUserState(next.userId)) {
+        if (!mService.mAmInternal.hasStartedUserState(next.mUserId)) {
             Slog.w(TAG, "Skipping resume of top activity " + next
-                    + ": user " + next.userId + " is stopped");
-            if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
+                    + ": user " + next.mUserId + " is stopped");
             return false;
         }
 
@@ -2510,10 +2589,9 @@
         if (DEBUG_SWITCH) Slog.v(TAG_SWITCH, "Resuming " + next);
 
         // If we are currently pausing an activity, then don't do anything until that is done.
-        if (!mStackSupervisor.allPausedActivitiesComplete()) {
+        if (!mRootActivityContainer.allPausedActivitiesComplete()) {
             if (DEBUG_SWITCH || DEBUG_PAUSE || DEBUG_STATES) Slog.v(TAG_PAUSE,
                     "resumeTopActivityLocked: Skip resume: some activity pausing.");
-            if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
             return false;
         }
 
@@ -2560,7 +2638,6 @@
                 next.app.updateProcessInfo(false /* updateServiceConnectionActivities */,
                         true /* updateLru */, true /* activityChange */, false /* updateOomAdj */);
             }
-            if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
             if (lastResumed != null) {
                 lastResumed.setWillCloseOrEnterPip(true);
             }
@@ -2575,7 +2652,6 @@
             executeAppTransition(options);
             if (DEBUG_STATES) Slog.d(TAG_STATES,
                     "resumeTopActivityLocked: Top activity resumed (dontWaitForPause) " + next);
-            if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
             return true;
         }
 
@@ -2593,7 +2669,7 @@
 
         if (prev != null && prev != next) {
             if (!mStackSupervisor.mActivitiesWaitingForVisibleActivity.contains(prev)
-                    && next != null && !next.nowVisible) {
+                    && !next.nowVisible) {
                 mStackSupervisor.mActivitiesWaitingForVisibleActivity.add(prev);
                 if (DEBUG_SWITCH) Slog.v(TAG_SWITCH,
                         "Resuming top, waiting visible to hide: " + prev);
@@ -2626,7 +2702,7 @@
         // considered stopped.
         try {
             AppGlobals.getPackageManager().setPackageStoppedState(
-                    next.packageName, false, next.userId); /* TODO: Verify if correct userid */
+                    next.packageName, false, next.mUserId); /* TODO: Verify if correct userid */
         } catch (RemoteException e1) {
         } catch (IllegalArgumentException e) {
             Slog.w(TAG, "Failed trying to unstop package "
@@ -2647,7 +2723,7 @@
                     dwc.prepareAppTransition(TRANSIT_NONE, false);
                 } else {
                     dwc.prepareAppTransition(
-                            prev.getTask() == next.getTask() ? TRANSIT_ACTIVITY_CLOSE
+                            prev.getTaskRecord() == next.getTaskRecord() ? TRANSIT_ACTIVITY_CLOSE
                                     : TRANSIT_TASK_CLOSE, false);
                 }
                 prev.setVisibility(false);
@@ -2659,7 +2735,7 @@
                     dwc.prepareAppTransition(TRANSIT_NONE, false);
                 } else {
                     dwc.prepareAppTransition(
-                            prev.getTask() == next.getTask() ? TRANSIT_ACTIVITY_OPEN
+                            prev.getTaskRecord() == next.getTaskRecord() ? TRANSIT_ACTIVITY_OPEN
                                     : next.mLaunchTaskBehind ? TRANSIT_TASK_OPEN_BEHIND
                                             : TRANSIT_TASK_OPEN, false);
                 }
@@ -2734,7 +2810,7 @@
                 // result of invisible window resize.
                 // TODO: Remove this once visibilities are set correctly immediately when
                 // starting an activity.
-                notUpdated = !mStackSupervisor.ensureVisibilityAndConfig(next, mDisplayId,
+                notUpdated = !mRootActivityContainer.ensureVisibilityAndConfig(next, mDisplayId,
                         true /* markFrozenIfConfigChanged */, false /* deferResume */);
             }
 
@@ -2756,7 +2832,6 @@
                     next.setVisibility(true);
                 }
                 next.completeResumeLocked();
-                if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
                 return true;
             }
 
@@ -2783,8 +2858,8 @@
                 // Clear app token stopped state in window manager if needed.
                 next.notifyAppResumed(next.stopped);
 
-                EventLog.writeEvent(EventLogTags.AM_RESUME_ACTIVITY, next.userId,
-                        System.identityHashCode(next), next.getTask().taskId,
+                EventLog.writeEvent(EventLogTags.AM_RESUME_ACTIVITY, next.mUserId,
+                        System.identityHashCode(next), next.getTaskRecord().taskId,
                         next.shortComponentName);
 
                 next.sleeping = false;
@@ -2819,7 +2894,6 @@
                             false /* taskSwitch */);
                 }
                 mStackSupervisor.startSpecificActivityLocked(next, true, false);
-                if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
                 return true;
             }
 
@@ -2833,7 +2907,6 @@
                 Slog.w(TAG, "Exception thrown during resume of " + next, e);
                 requestFinishActivityLocked(next.appToken, Activity.RESULT_CANCELED, null,
                         "resume-exception", true);
-                if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
                 return true;
             }
         } else {
@@ -2851,7 +2924,6 @@
             mStackSupervisor.startSpecificActivityLocked(next, true, true);
         }
 
-        if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
         return true;
     }
 
@@ -2862,7 +2934,7 @@
             // Try to move focus to the next visible stack with a running activity if this
             // stack is not covering the entire screen or is on a secondary display (with no home
             // stack).
-            return mStackSupervisor.resumeFocusedStacksTopActivitiesLocked(nextFocusedStack, prev,
+            return mRootActivityContainer.resumeFocusedStacksTopActivities(nextFocusedStack, prev,
                     null /* targetOptions */);
         }
 
@@ -2870,8 +2942,7 @@
         ActivityOptions.abort(options);
         if (DEBUG_STATES) Slog.d(TAG_STATES,
                 "resumeTopActivityInNextFocusableStack: " + reason + ", go home");
-        if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
-        return mStackSupervisor.resumeHomeActivity(prev, reason, mDisplayId);
+        return mRootActivityContainer.resumeHomeActivity(prev, reason, mDisplayId);
     }
 
     /** Returns the position the input task should be placed in this stack. */
@@ -2937,7 +3008,7 @@
 
     void startActivityLocked(ActivityRecord r, ActivityRecord focusedTopActivity,
             boolean newTask, boolean keepCurTransition, ActivityOptions options) {
-        TaskRecord rTask = r.getTask();
+        TaskRecord rTask = r.getTaskRecord();
         final int taskId = rTask.taskId;
         // mLaunchTaskBehind tasks get placed at the back of the task stack.
         if (!r.mLaunchTaskBehind && (taskForIdLocked(taskId) == null || newTask)) {
@@ -2963,7 +3034,7 @@
                     if (!startIt) {
                         if (DEBUG_ADD_REMOVE) Slog.i(TAG, "Adding activity " + r + " to task "
                                 + task, new RuntimeException("here").fillInStackTrace());
-                        r.createWindowContainer();
+                        r.createAppWindowToken();
                         ActivityOptions.abort(options);
                         return;
                     }
@@ -2978,7 +3049,7 @@
 
         // If we are not placing the new activity frontmost, we do not want to deliver the
         // onUserLeaving callback to the actual frontmost activity
-        final TaskRecord activityTask = r.getTask();
+        final TaskRecord activityTask = r.getTaskRecord();
         if (task == activityTask && mTaskHistory.indexOf(task) != (mTaskHistory.size() - 1)) {
             mStackSupervisor.mUserLeaving = false;
             if (DEBUG_USER_LEAVING) Slog.v(TAG_USER_LEAVING,
@@ -2993,9 +3064,10 @@
         // TODO: Need to investigate if it is okay for the controller to already be created by the
         // time we get to this point. I think it is, but need to double check.
         // Use test in b/34179495 to trace the call path.
-        if (r.getWindowContainerController() == null) {
-            r.createWindowContainer();
+        if (r.mAppWindowToken == null) {
+            r.createAppWindowToken();
         }
+
         task.setFrontOfTask();
 
         if (!isHomeOrRecentsStack() || numActivities() > 0) {
@@ -3050,12 +3122,12 @@
                 // "has the same starting icon" as the next one.  This allows the
                 // window manager to keep the previous window it had previously
                 // created, if it still had one.
-                TaskRecord prevTask = r.getTask();
+                TaskRecord prevTask = r.getTaskRecord();
                 ActivityRecord prev = prevTask.topRunningActivityWithStartingWindowLocked();
                 if (prev != null) {
                     // We don't want to reuse the previous starting preview if:
                     // (1) The current activity is in a different task.
-                    if (prev.getTask() != prevTask) {
+                    if (prev.getTaskRecord() != prevTask) {
                         prev = null;
                     }
                     // (2) The current activity is already displayed.
@@ -3088,7 +3160,7 @@
             return false;
         }
         final ActivityStack targetStack = toFrontTask != null
-                ? toFrontTask.getStack() : toFrontActivity.getStack();
+                ? toFrontTask.getStack() : toFrontActivity.getActivityStack();
         if (targetStack != null && targetStack.isActivityTypeAssistant()) {
             // Ensure the task/activity being brought forward is not the assistant
             return false;
@@ -3098,7 +3170,7 @@
 
     private boolean isTaskSwitch(ActivityRecord r,
             ActivityRecord topFocusedActivity) {
-        return topFocusedActivity != null && r.getTask() != topFocusedActivity.getTask();
+        return topFocusedActivity != null && r.getTaskRecord() != topFocusedActivity.getTaskRecord();
     }
 
     /**
@@ -3165,16 +3237,16 @@
                         !mTaskHistory.isEmpty() && !mTaskHistory.get(0).mActivities.isEmpty() ?
                                 mTaskHistory.get(0).mActivities.get(0) : null;
                 if (bottom != null && target.taskAffinity != null
-                        && target.taskAffinity.equals(bottom.getTask().affinity)) {
+                        && target.taskAffinity.equals(bottom.getTaskRecord().affinity)) {
                     // If the activity currently at the bottom has the
                     // same task affinity as the one we are moving,
                     // then merge it into the same task.
-                    targetTask = bottom.getTask();
+                    targetTask = bottom.getTaskRecord();
                     if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Start pushing activity " + target
                             + " out to bottom task " + targetTask);
                 } else {
                     targetTask = createTaskRecord(
-                            mStackSupervisor.getNextTaskIdForUserLocked(target.userId),
+                            mStackSupervisor.getNextTaskIdForUserLocked(target.mUserId),
                             target.info, null, null, null, false);
                     targetTask.affinityIntent = target.intent;
                     if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Start pushing activity " + target
@@ -3368,7 +3440,7 @@
             ActivityRecord newActivity) {
         final boolean forceReset =
                 (newActivity.info.flags & ActivityInfo.FLAG_CLEAR_TASK_ON_LAUNCH) != 0;
-        final TaskRecord task = taskTop.getTask();
+        final TaskRecord task = taskTop.getTaskRecord();
 
         /** False until we evaluate the TaskRecord associated with taskTop. Switches to true
          * for remaining tasks. Used for later tasks to reparent to task. */
@@ -3417,7 +3489,7 @@
 
         if (callingUid > 0) {
             mService.mUgmInternal.grantUriPermissionFromIntent(callingUid, r.packageName,
-                    data, r.getUriPermissionsLocked(), r.userId);
+                    data, r.getUriPermissionsLocked(), r.mUserId);
         }
 
         if (DEBUG_RESULTS) Slog.v(TAG, "Send activity result to " + r
@@ -3456,7 +3528,7 @@
     }
 
     private void adjustFocusedActivityStack(ActivityRecord r, String reason) {
-        if (!mStackSupervisor.isTopDisplayFocusedStack(this) ||
+        if (!mRootActivityContainer.isTopDisplayFocusedStack(this) ||
                 ((mResumedActivity != r) && (mResumedActivity != null))) {
             return;
         }
@@ -3465,7 +3537,7 @@
         final String myReason = reason + " adjustFocus";
 
         if (next == r) {
-            final ActivityRecord top = mStackSupervisor.topRunningActivityLocked();
+            final ActivityRecord top = mRootActivityContainer.topRunningActivity();
             if (top != null) {
                 top.moveFocusableActivityToTop(myReason);
             }
@@ -3479,7 +3551,7 @@
 
         // Task is not guaranteed to be non-null. For example, destroying the
         // {@link ActivityRecord} will disassociate the task from the activity.
-        final TaskRecord task = r.getTask();
+        final TaskRecord task = r.getTaskRecord();
 
         if (task == null) {
             throw new IllegalStateException("activity no longer associated with task:" + r);
@@ -3489,7 +3561,7 @@
         final ActivityStack nextFocusableStack = adjustFocusToNextFocusableStack(myReason);
         if (nextFocusableStack != null) {
             final ActivityRecord top = nextFocusableStack.topRunningActivityLocked();
-            if (top != null && top == mStackSupervisor.getTopResumedActivity()) {
+            if (top != null && top == mRootActivityContainer.getTopResumedActivity()) {
                 // TODO(b/111361570): Remove this and update focused app per-display in
                 // WindowManager every time an activity becomes resumed in
                 // ActivityTaskManagerService#setResumedActivityUncheckLocked().
@@ -3517,7 +3589,7 @@
      */
     private ActivityStack adjustFocusToNextFocusableStack(String reason, boolean allowFocusSelf) {
         final ActivityStack stack =
-                mStackSupervisor.getNextFocusableStackLocked(this, !allowFocusSelf);
+                mRootActivityContainer.getNextFocusableStack(this, !allowFocusSelf);
         final String myReason = reason + " adjustFocusToNextFocusableStack";
         if (stack == null) {
             return null;
@@ -3571,7 +3643,7 @@
                     r.setVisible(false);
                 }
                 EventLogTags.writeAmStopActivity(
-                        r.userId, System.identityHashCode(r), r.shortComponentName);
+                        r.mUserId, System.identityHashCode(r), r.shortComponentName);
                 mService.getLifecycleManager().scheduleTransaction(r.app.getThread(), r.appToken,
                         StopActivityItem.obtain(r.visible, r.configChangeFlags));
                 if (shouldSleepOrShutDownActivities()) {
@@ -3647,7 +3719,7 @@
         }
         Slog.w(TAG, "  Force finishing activity "
                 + r.intent.getComponent().flattenToShortString());
-        finishedTask = r.getTask();
+        finishedTask = r.getTaskRecord();
         int taskNdx = mTaskHistory.indexOf(finishedTask);
         final TaskRecord task = finishedTask;
         int activityNdx = task.mActivities.indexOf(r);
@@ -3721,7 +3793,7 @@
     }
 
     final boolean finishActivityAffinityLocked(ActivityRecord r) {
-        ArrayList<ActivityRecord> activities = r.getTask().mActivities;
+        ArrayList<ActivityRecord> activities = r.getTaskRecord().mActivities;
         for (int index = activities.indexOf(r); index >= 0; --index) {
             ActivityRecord cur = activities.get(index);
             if (!Objects.equals(cur.taskAffinity, r.taskAffinity)) {
@@ -3739,15 +3811,15 @@
             if (DEBUG_RESULTS) Slog.v(TAG_RESULTS, "Adding result to " + resultTo
                     + " who=" + r.resultWho + " req=" + r.requestCode
                     + " res=" + resultCode + " data=" + resultData);
-            if (resultTo.userId != r.userId) {
+            if (resultTo.mUserId != r.mUserId) {
                 if (resultData != null) {
-                    resultData.prepareToLeaveUser(r.userId);
+                    resultData.prepareToLeaveUser(r.mUserId);
                 }
             }
             if (r.info.applicationInfo.uid > 0) {
                 mService.mUgmInternal.grantUriPermissionFromIntent(r.info.applicationInfo.uid,
                         resultTo.packageName, resultData,
-                        resultTo.getUriPermissionsLocked(), resultTo.userId);
+                        resultTo.getUriPermissionsLocked(), resultTo.mUserId);
             }
             resultTo.addResultLocked(r, r.resultWho, r.requestCode, resultCode, resultData);
             r.resultTo = null;
@@ -3785,9 +3857,9 @@
         mWindowManager.deferSurfaceLayout();
         try {
             r.makeFinishingLocked();
-            final TaskRecord task = r.getTask();
+            final TaskRecord task = r.getTaskRecord();
             EventLog.writeEvent(EventLogTags.AM_FINISH_ACTIVITY,
-                    r.userId, System.identityHashCode(r),
+                    r.mUserId, System.identityHashCode(r),
                     task.taskId, r.shortComponentName, reason);
             final ArrayList<ActivityRecord> activities = task.mActivities;
             final int index = activities.indexOf(r);
@@ -3920,7 +3992,7 @@
 
         r.setState(FINISHING, "finishCurrentActivityLocked");
         final boolean finishingInNonFocusedStackOrNoRunning = mode == FINISH_AFTER_VISIBLE
-                && prevState == PAUSED && (r.getStack() != display.getFocusedStack()
+                && prevState == PAUSED && (r.getActivityStack() != display.getFocusedStack()
                         || (next == null && display.topRunningActivity() == null));
 
         if (mode == FINISH_IMMEDIATELY
@@ -3938,11 +4010,11 @@
                 // stack, need to make something visible in its place. Also if the display does not
                 // have running activity, the configuration may need to be updated for restoring
                 // original orientation of the display.
-                mStackSupervisor.ensureVisibilityAndConfig(next, mDisplayId,
+                mRootActivityContainer.ensureVisibilityAndConfig(next, mDisplayId,
                         false /* markFrozenIfConfigChanged */, true /* deferResume */);
             }
             if (activityRemoved) {
-                mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                mRootActivityContainer.resumeFocusedStacksTopActivities();
             }
             if (DEBUG_CONTAINERS) Slog.d(TAG_CONTAINERS,
                     "destroyActivityLocked: finishCurrentActivityLocked r=" + r +
@@ -3955,7 +4027,7 @@
         if (DEBUG_ALL) Slog.v(TAG, "Enqueueing pending finish: " + r);
         mStackSupervisor.mFinishingActivities.add(r);
         r.resumeKeyDispatchingLocked();
-        mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+        mRootActivityContainer.resumeFocusedStacksTopActivities();
         return r;
     }
 
@@ -3996,15 +4068,15 @@
     boolean shouldUpRecreateTaskLocked(ActivityRecord srec, String destAffinity) {
         // Basic case: for simple app-centric recents, we need to recreate
         // the task if the affinity has changed.
-        if (srec == null || srec.getTask().affinity == null ||
-                !srec.getTask().affinity.equals(destAffinity)) {
+        if (srec == null || srec.getTaskRecord().affinity == null ||
+                !srec.getTaskRecord().affinity.equals(destAffinity)) {
             return true;
         }
         // Document-centric case: an app may be split in to multiple documents;
         // they need to re-create their task if this current activity is the root
         // of a document, unless simply finishing it will return them to the the
         // correct app behind.
-        final TaskRecord task = srec.getTask();
+        final TaskRecord task = srec.getTaskRecord();
         if (srec.frontOfTask && task.getBaseIntent() != null && task.getBaseIntent().isDocument()) {
             // Okay, this activity is at the root of its task.  What to do, what to do...
             if (!inFrontOfStandardStack()) {
@@ -4028,7 +4100,7 @@
 
     final boolean navigateUpToLocked(ActivityRecord srec, Intent destIntent, int resultCode,
             Intent resultData) {
-        final TaskRecord task = srec.getTask();
+        final TaskRecord task = srec.getTaskRecord();
         final ArrayList<ActivityRecord> activities = task.mActivities;
         final int start = activities.indexOf(srec);
         if (!mTaskHistory.contains(task) || (start < 0)) {
@@ -4093,7 +4165,7 @@
                 try {
                     ActivityInfo aInfo = AppGlobals.getPackageManager().getActivityInfo(
                             destIntent.getComponent(), ActivityManagerService.STOCK_PM_FLAGS,
-                            srec.userId);
+                            srec.mUserId);
                     // TODO(b/64750076): Check if calling pid should really be -1.
                     final int res = mService.getActivityStartController()
                             .obtainStarter(destIntent, "navigateUpTo")
@@ -4210,7 +4282,7 @@
         if (DEBUG_APP) Slog.v(TAG_APP, "Clearing app during remove for activity " + r);
         r.app = null;
         r.removeWindowContainer();
-        final TaskRecord task = r.getTask();
+        final TaskRecord task = r.getTaskRecord();
         final boolean lastActivity = task != null ? task.removeActivity(r) : false;
         // If we are removing the last activity in the task, not including task overlay activities,
         // then fall through into the block below to remove the entire task itself
@@ -4297,7 +4369,7 @@
             }
         }
         if (activityRemoved) {
-            mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+            mRootActivityContainer.resumeFocusedStacksTopActivities();
         }
     }
 
@@ -4374,8 +4446,8 @@
         }
 
         EventLog.writeEvent(EventLogTags.AM_DESTROY_ACTIVITY,
-                r.userId, System.identityHashCode(r),
-                r.getTask().taskId, r.shortComponentName, reason);
+                r.mUserId, System.identityHashCode(r),
+                r.getTaskRecord().taskId, r.shortComponentName, reason);
 
         boolean removedFromHistory = false;
 
@@ -4488,7 +4560,7 @@
             }
         }
 
-        mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+        mRootActivityContainer.resumeFocusedStacksTopActivities();
     }
 
     private void removeHistoryRecordsForAppLocked(ArrayList<ActivityRecord> list,
@@ -4574,8 +4646,8 @@
                         if (!r.finishing) {
                             Slog.w(TAG, "Force removing " + r + ": app died, no saved state");
                             EventLog.writeEvent(EventLogTags.AM_FINISH_ACTIVITY,
-                                    r.userId, System.identityHashCode(r),
-                                    r.getTask().taskId, r.shortComponentName,
+                                    r.mUserId, System.identityHashCode(r),
+                                    r.getTaskRecord().taskId, r.shortComponentName,
                                     "proc died without state saved");
                             if (r.getState() == RESUMED) {
                                 mService.updateUsageStats(r, false);
@@ -4632,7 +4704,7 @@
                 task.mLastTimeMoved *= -1;
             }
         }
-        mStackSupervisor.invalidateTaskLayers();
+        mRootActivityContainer.invalidateTaskLayers();
     }
 
     final void moveTaskToFrontLocked(TaskRecord tr, boolean noAnimation, ActivityOptions options,
@@ -4674,7 +4746,7 @@
             final ActivityRecord top = tr.getTopActivity();
             if (top == null || !top.okToShowLocked()) {
                 if (top != null) {
-                    mStackSupervisor.mRecentTasks.add(top.getTask());
+                    mStackSupervisor.mRecentTasks.add(top.getTaskRecord());
                 }
                 ActivityOptions.abort(options);
                 return;
@@ -4708,7 +4780,7 @@
                 topActivity.supportsEnterPipOnTaskSwitch = true;
             }
 
-            mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+            mRootActivityContainer.resumeFocusedStacksTopActivities();
             EventLog.writeEvent(EventLogTags.AM_TASK_TO_FRONT, tr.userId, tr.taskId);
 
             mService.getTaskChangeNotificationController().notifyTaskMovedToFront(tr.taskId);
@@ -4780,7 +4852,7 @@
             return true;
         }
 
-        mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+        mRootActivityContainer.resumeFocusedStacksTopActivities();
         return true;
     }
 
@@ -4789,7 +4861,7 @@
         final String strData = data != null ? data.toSafeString() : null;
 
         EventLog.writeEvent(tag,
-                r.userId, System.identityHashCode(r), task.taskId,
+                r.mUserId, System.identityHashCode(r), task.taskId,
                 r.shortComponentName, r.intent.getAction(),
                 r.intent.getType(), strData, r.intent.getFlags());
     }
@@ -4802,15 +4874,15 @@
             return;
         }
 
-        final TaskRecord startTask = start.getTask();
+        final TaskRecord startTask = start.getTaskRecord();
         boolean behindFullscreen = false;
         boolean updatedConfig = false;
 
         for (int taskIndex = mTaskHistory.indexOf(startTask); taskIndex >= 0; --taskIndex) {
             final TaskRecord task = mTaskHistory.get(taskIndex);
             final ArrayList<ActivityRecord> activities = task.mActivities;
-            int activityIndex =
-                    (start.getTask() == task) ? activities.indexOf(start) : activities.size() - 1;
+            int activityIndex = (start.getTaskRecord() == task)
+                    ? activities.indexOf(start) : activities.size() - 1;
             for (; activityIndex >= 0; --activityIndex) {
                 final ActivityRecord r = activities.get(activityIndex);
                 updatedConfig |= r.ensureActivityConfiguration(0 /* globalChanges */,
@@ -4827,7 +4899,7 @@
         if (updatedConfig) {
             // Ensure the resumed state of the focus activity if we updated the configuration of
             // any activity.
-            mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+            mRootActivityContainer.resumeFocusedStacksTopActivities();
         }
     }
 
@@ -4872,9 +4944,12 @@
                 }
             }
 
-            mTmpBounds.put(task.taskId, task.getOverrideBounds());
-            if (tempTaskInsetBounds != null) {
-                mTmpInsetBounds.put(task.taskId, tempTaskInsetBounds);
+            if (task.hasDisplayedBounds()) {
+                mTmpBounds.put(task.taskId, task.getDisplayedBounds());
+                mTmpInsetBounds.put(task.taskId, task.getOverrideBounds());
+            } else {
+                mTmpBounds.put(task.taskId, task.getOverrideBounds());
+                mTmpInsetBounds.put(task.taskId, null);
             }
         }
 
@@ -4974,10 +5049,10 @@
                 ActivityRecord r = mTmpActivities.remove(0);
                 final boolean sameComponent =
                         (r.packageName.equals(packageName) && (filterByClasses == null
-                                || filterByClasses.contains(r.realActivity.getClassName())))
-                        || (packageName == null && r.userId == userId);
-                if ((userId == UserHandle.USER_ALL || r.userId == userId)
-                        && (sameComponent || r.getTask() == lastTask)
+                                || filterByClasses.contains(r.mActivityComponent.getClassName())))
+                        || (packageName == null && r.mUserId == userId);
+                if ((userId == UserHandle.USER_ALL || r.mUserId == userId)
+                        && (sameComponent || r.getTaskRecord() == lastTask)
                         && (r.app == null || evenPersistent || !r.app.isPersistent())) {
                     if (!doit) {
                         if (r.finishing) {
@@ -4988,11 +5063,11 @@
                         return true;
                     }
                     if (r.isActivityTypeHome()) {
-                        if (homeActivity != null && homeActivity.equals(r.realActivity)) {
+                        if (homeActivity != null && homeActivity.equals(r.mActivityComponent)) {
                             Slog.i(TAG, "Skip force-stop again " + r);
                             continue;
                         } else {
-                            homeActivity = r.realActivity;
+                            homeActivity = r.mActivityComponent;
                         }
                     }
                     didSomething = true;
@@ -5003,7 +5078,7 @@
                         }
                         r.app = null;
                     }
-                    lastTask = r.getTask();
+                    lastTask = r.getTaskRecord();
                     finishActivityLocked(r, Activity.RESULT_CANCELED, null, "force-stop",
                             true);
                 }
@@ -5019,7 +5094,7 @@
      */
     void getRunningTasks(List<TaskRecord> tasksOut, @ActivityType int ignoreActivityType,
             @WindowingMode int ignoreWindowingMode, int callingUid, boolean allowed) {
-        boolean focusedStack = mStackSupervisor.getTopDisplayFocusedStack() == this;
+        boolean focusedStack = mRootActivityContainer.getTopDisplayFocusedStack() == this;
         boolean topTask = true;
         for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
             final TaskRecord task = mTaskHistory.get(taskNdx);
@@ -5084,7 +5159,7 @@
         return removeHistoryRecordsForAppLocked(app);
     }
 
-    void handleAppCrashLocked(WindowProcessController app) {
+    void handleAppCrash(WindowProcessController app) {
         for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
             final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities;
             for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
@@ -5231,7 +5306,7 @@
             // We only need to adjust focused stack if this stack is in focus and we are not in the
             // process of moving the task to the top of the stack that will be focused.
             if (mode != REMOVE_TASK_MODE_MOVING_TO_TOP
-                    && mStackSupervisor.isTopDisplayFocusedStack(this)) {
+                    && mRootActivityContainer.isTopDisplayFocusedStack(this)) {
                 String myReason = reason + " leftTaskHistoryEmpty";
                 if (!inMultiWindowMode() || adjustFocusToNextFocusableStack(myReason) == null) {
                     getDisplay().moveHomeStackToFront(myReason);
@@ -5337,7 +5412,7 @@
         // The task might have already been running and its visibility needs to be synchronized with
         // the visibility of the stack / windows.
         ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
-        mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+        mRootActivityContainer.resumeFocusedStacksTopActivities();
     }
 
     private ActivityStack preAddTask(TaskRecord task, String reason, boolean toTop) {
@@ -5404,7 +5479,7 @@
         moveToFront(reason);
         // If the original state is resumed, there is no state change to update focused app.
         // So here makes sure the activity focus is set if it is the top.
-        if (origState == RESUMED && r == mStackSupervisor.getTopResumedActivity()) {
+        if (origState == RESUMED && r == mRootActivityContainer.getTopResumedActivity()) {
             // TODO(b/111361570): Support multiple focused apps in WM
             mService.setResumedActivityUncheckLocked(r, reason);
         }
diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
index 082f521..f3c5630 100644
--- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
@@ -25,28 +25,18 @@
 import static android.app.ActivityManager.START_FLAG_NATIVE_DEBUGGING;
 import static android.app.ActivityManager.START_FLAG_TRACK_ALLOCATION;
 import static android.app.ActivityManager.START_TASK_TO_FRONT;
-import static android.app.ActivityTaskManager.INVALID_STACK_ID;
-import static android.app.ActivityTaskManager.INVALID_TASK_ID;
 import static android.app.ITaskStackListener.FORCED_RESIZEABLE_REASON_SECONDARY_DISPLAY;
 import static android.app.ITaskStackListener.FORCED_RESIZEABLE_REASON_SPLIT_SCREEN;
 import static android.app.WaitResult.INVALID_DELAY;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
-import static android.app.WindowConfiguration.activityTypeToString;
-import static android.app.WindowConfiguration.windowingModeToString;
-import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
-import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_INSTANCE;
-import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_TASK;
 import static android.content.pm.PackageManager.NOTIFY_PACKAGE_USE_ACTIVITY;
 import static android.content.pm.PackageManager.PERMISSION_DENIED;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
@@ -59,26 +49,13 @@
 import static android.view.Display.TYPE_VIRTUAL;
 import static android.view.WindowManager.TRANSIT_DOCK_TASK_FROM_RECENTS;
 
-import static com.android.server.am.ActivityStackSupervisorProto.CONFIGURATION_CONTAINER;
-import static com.android.server.am.ActivityStackSupervisorProto.DISPLAYS;
-import static com.android.server.am.ActivityStackSupervisorProto.FOCUSED_STACK_ID;
-import static com.android.server.am.ActivityStackSupervisorProto.IS_HOME_RECENTS_COMPONENT;
-import static com.android.server.am.ActivityStackSupervisorProto.KEYGUARD_CONTROLLER;
-import static com.android.server.am.ActivityStackSupervisorProto.PENDING_ACTIVITIES;
-import static com.android.server.am.ActivityStackSupervisorProto.RESUMED_ACTIVITY;
-import static com.android.server.wm.ActivityStack.ActivityState.DESTROYED;
-import static com.android.server.wm.ActivityStack.ActivityState.INITIALIZING;
 import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
 import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
-import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
-import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
-import static com.android.server.wm.ActivityStack.ActivityState.STOPPING;
 import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_MOVING;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_ALL;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_IDLE;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_PAUSE;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RECENTS;
-import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RELEASE;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_STACK;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_STATES;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_SWITCH;
@@ -86,9 +63,7 @@
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_IDLE;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_PAUSE;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_RECENTS;
-import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_RELEASE;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_STACK;
-import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_STATES;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_SWITCH;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_TASKS;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
@@ -96,6 +71,10 @@
 import static com.android.server.wm.ActivityTaskManagerService.ANIMATE;
 import static com.android.server.wm.ActivityTaskManagerService.H.FIRST_SUPERVISOR_STACK_MSG;
 import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_NONE;
+import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_ONLY;
+import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS;
+import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE;
+import static com.android.server.wm.RootActivityContainer.TAG_STATES;
 import static com.android.server.wm.TaskRecord.LOCK_TASK_AUTH_LAUNCHABLE;
 import static com.android.server.wm.TaskRecord.LOCK_TASK_AUTH_LAUNCHABLE_PRIV;
 import static com.android.server.wm.TaskRecord.LOCK_TASK_AUTH_WHITELISTED;
@@ -103,27 +82,15 @@
 import static com.android.server.wm.TaskRecord.REPARENT_LEAVE_STACK_IN_PLACE;
 import static com.android.server.wm.TaskRecord.REPARENT_MOVE_STACK_TO_FRONT;
 
-import static java.lang.Integer.MAX_VALUE;
-
 import android.Manifest;
-import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.annotation.UserIdInt;
 import android.app.Activity;
 import android.app.ActivityManager;
-import android.app.ActivityManager.RunningTaskInfo;
-import android.app.ActivityManager.StackInfo;
 import android.app.ActivityManagerInternal;
 import android.app.ActivityOptions;
-import android.app.AppGlobals;
 import android.app.AppOpsManager;
 import android.app.ProfilerInfo;
 import android.app.ResultInfo;
 import android.app.WaitResult;
-import android.app.WindowConfiguration;
-import android.app.WindowConfiguration.ActivityType;
-import android.app.WindowConfiguration.WindowingMode;
 import android.app.servertransaction.ActivityLifecycleItem;
 import android.app.servertransaction.ClientTransaction;
 import android.app.servertransaction.LaunchActivityItem;
@@ -139,17 +106,10 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.UserInfo;
 import android.content.res.Configuration;
-import android.content.res.Resources;
 import android.graphics.Rect;
-import android.hardware.display.DisplayManager;
-import android.hardware.display.DisplayManager.DisplayListener;
-import android.hardware.display.DisplayManagerInternal;
-import android.hardware.power.V1_0.PowerHint;
 import android.os.Binder;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Debug;
-import android.os.FactoryTest;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
@@ -163,20 +123,13 @@
 import android.os.UserManager;
 import android.os.WorkSource;
 import android.provider.MediaStore;
-import android.service.voice.IVoiceInteractionSession;
 import android.util.ArrayMap;
 import android.util.ArraySet;
-import android.util.DisplayMetrics;
 import android.util.EventLog;
-import android.util.IntArray;
 import android.util.MergedConfiguration;
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.SparseIntArray;
-import android.util.TimeUtils;
-import android.util.proto.ProtoOutputStream;
-import android.view.Display;
-import android.view.DisplayInfo;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
@@ -185,34 +138,28 @@
 import com.android.internal.os.logging.MetricsLoggerWrapper;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.function.pooled.PooledLambda;
-import com.android.server.LocalServices;
 import com.android.server.am.ActivityManagerService;
-import com.android.server.am.AppTimeTracker;
 import com.android.server.am.EventLogTags;
 import com.android.server.am.UserState;
-import com.android.server.wm.ActivityStack.ActivityState;
-import com.android.server.wm.ActivityTaskManagerInternal.SleepToken;
 
 import java.io.FileDescriptor;
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 
-public class ActivityStackSupervisor extends ConfigurationContainer implements DisplayListener,
-        RecentTasks.Callbacks, RootWindowContainerListener {
+// TODO: This class has become a dumping ground. Let's
+// - Move things relating to the hierarchy to RootWindowContainer
+// - Move things relating to activity life cycles to maybe a new class called ActivityLifeCycler
+// - Move interface things to ActivityTaskManagerService.
+// - All other little things to other files.
+public class ActivityStackSupervisor implements RecentTasks.Callbacks {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "ActivityStackSupervisor" : TAG_ATM;
     private static final String TAG_IDLE = TAG + POSTFIX_IDLE;
     private static final String TAG_PAUSE = TAG + POSTFIX_PAUSE;
     private static final String TAG_RECENTS = TAG + POSTFIX_RECENTS;
-    private static final String TAG_RELEASE = TAG + POSTFIX_RELEASE;
     private static final String TAG_STACK = TAG + POSTFIX_STACK;
     private static final String TAG_SWITCH = TAG + POSTFIX_SWITCH;
-    static final String TAG_STATES = TAG + POSTFIX_STATES;
     static final String TAG_TASKS = TAG + POSTFIX_TASKS;
 
     /** How long we wait until giving up on the last activity telling us it is idle. */
@@ -233,12 +180,6 @@
     static final int REPORT_MULTI_WINDOW_MODE_CHANGED_MSG = FIRST_SUPERVISOR_STACK_MSG + 14;
     static final int REPORT_PIP_MODE_CHANGED_MSG = FIRST_SUPERVISOR_STACK_MSG + 15;
 
-    private static final String VIRTUAL_DISPLAY_BASE_NAME = "ActivityViewVirtualDisplay";
-
-    // Used to indicate if an object (e.g. stack) that we are trying to get
-    // should be created if it doesn't exist already.
-    static final boolean CREATE_IF_NEEDED = true;
-
     // Used to indicate that windows of activities should be preserved during the resize.
     static final boolean PRESERVE_WINDOWS = true;
 
@@ -270,25 +211,6 @@
     private Rect mPendingTempOtherTaskBounds;
     private Rect mPendingTempOtherTaskInsetBounds;
 
-    /**
-     * The modes which affect which tasks are returned when calling
-     * {@link ActivityStackSupervisor#anyTaskForIdLocked(int)}.
-     */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({
-            MATCH_TASK_IN_STACKS_ONLY,
-            MATCH_TASK_IN_STACKS_OR_RECENT_TASKS,
-            MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE
-    })
-    public @interface AnyTaskForIdMatchTaskMode {}
-    // Match only tasks in the current stacks
-    static final int MATCH_TASK_IN_STACKS_ONLY = 0;
-    // Match either tasks in the current stacks, or in the recent tasks if not found in the stacks
-    static final int MATCH_TASK_IN_STACKS_OR_RECENT_TASKS = 1;
-    // Match either tasks in the current stacks, or in the recent tasks, restoring it to the
-    // provided stack id
-    static final int MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE = 2;
-
     // Activity actions an app cannot start if it uses a permission which is not granted.
     private static final ArrayMap<String, String> ACTION_TO_RUNTIME_PERMISSION =
             new ArrayMap<>();
@@ -315,20 +237,20 @@
     /** The number of distinct task ids that can be assigned to the tasks of a single user */
     private static final int MAX_TASK_IDS_PER_USER = UserHandle.PER_USER_RANGE;
 
-    ActivityTaskManagerService mService;
+    final ActivityTaskManagerService mService;
+    RootActivityContainer mRootActivityContainer;
 
     /** The historial list of recent tasks including inactive tasks */
     RecentTasks mRecentTasks;
 
     /** Helper class to abstract out logic for fetching the set of currently running tasks */
-    private RunningTasks mRunningTasks;
+    RunningTasks mRunningTasks;
 
     final ActivityStackSupervisorHandler mHandler;
     final Looper mLooper;
 
     /** Short cut */
     WindowManagerService mWindowManager;
-    DisplayManager mDisplayManager;
 
      /** Common synchronization logic used to save things to disks. */
     PersisterQueue mPersisterQueue;
@@ -341,9 +263,6 @@
      */
     private final SparseIntArray mCurTaskIdForUser = new SparseIntArray(20);
 
-    /** The current user */
-    int mCurrentUser;
-
     /** List of activities that are waiting for a new activity to become visible before completing
      * whatever operation they are supposed to do. */
     // TODO: Remove mActivitiesWaitingForVisibleActivity list and just remove activity from
@@ -392,9 +311,6 @@
      * is being brought in front of us. */
     boolean mUserLeaving = false;
 
-    /** Set when a power hint has started, but not ended. */
-    private boolean mPowerHintSent;
-
     /**
      * We don't want to allow the device to go to sleep while in the process
      * of launching an activity.  This is primarily to allow alarm intent
@@ -410,29 +326,6 @@
      */
     PowerManager.WakeLock mGoingToSleep;
 
-    /**
-     * A list of tokens that cause the top activity to be put to sleep.
-     * They are used by components that may hide and block interaction with underlying
-     * activities.
-     */
-    final ArrayList<SleepToken> mSleepTokens = new ArrayList<>();
-
-    /** Stack id of the front stack when user switched, indexed by userId. */
-    SparseIntArray mUserStackInFront = new SparseIntArray(2);
-
-    /** Reference to default display so we can quickly look it up. */
-    private ActivityDisplay mDefaultDisplay;
-
-    /**
-     * List of displays which contain activities, sorted by z-order.
-     * The last entry in the list is the topmost.
-     */
-    private final ArrayList<ActivityDisplay> mActivityDisplays = new ArrayList<>();
-
-    private final SparseArray<IntArray> mDisplayAccessUIDs = new SparseArray<>();
-
-    private DisplayManagerInternal mDisplayManagerInternal;
-
     /** Used to keep resumeTopActivityUncheckedLocked() from being entered recursively */
     boolean inResumeTopActivity;
 
@@ -443,50 +336,8 @@
     private final Rect tempRect = new Rect();
     private final ActivityOptions mTmpOptions = ActivityOptions.makeBasic();
 
-    // The default minimal size that will be used if the activity doesn't specify its minimal size.
-    // It will be calculated when the default display gets added.
-    int mDefaultMinSizeOfResizeableTaskDp = -1;
-
-    // Whether tasks have moved and we need to rank the tasks before next OOM scoring
-    private boolean mTaskLayersChanged = true;
-
     private ActivityMetricsLogger mActivityMetricsLogger;
 
-    private final ArrayList<ActivityRecord> mTmpActivityList = new ArrayList<>();
-
-    @Override
-    protected int getChildCount() {
-        return mActivityDisplays.size();
-    }
-
-    @Override
-    protected ActivityDisplay getChildAt(int index) {
-        return mActivityDisplays.get(index);
-    }
-
-    @Override
-    protected ConfigurationContainer getParent() {
-        return null;
-    }
-
-    Configuration getDisplayOverrideConfiguration(int displayId) {
-        final ActivityDisplay activityDisplay = getActivityDisplayOrCreateLocked(displayId);
-        if (activityDisplay == null) {
-            throw new IllegalArgumentException("No display found with id: " + displayId);
-        }
-
-        return activityDisplay.getOverrideConfiguration();
-    }
-
-    void setDisplayOverrideConfiguration(Configuration overrideConfiguration, int displayId) {
-        final ActivityDisplay activityDisplay = getActivityDisplayOrCreateLocked(displayId);
-        if (activityDisplay == null) {
-            throw new IllegalArgumentException("No display found with id: " + displayId);
-        }
-
-        activityDisplay.onOverrideConfigurationChanged(overrideConfiguration);
-    }
-
     /** Check if placing task or activity on specified display is allowed. */
     boolean canPlaceEntityOnDisplay(int displayId, int callingPid, int callingUid,
             ActivityInfo activityInfo) {
@@ -508,44 +359,6 @@
     }
 
     /**
-     * Check if configuration of specified display matches current global config.
-     * Used to check if we can put a non-resizeable activity on a secondary display and it will get
-     * the same config as on the default display.
-     * @param displayId Id of the display to check.
-     * @return {@code true} if configuration matches.
-     */
-    private boolean displayConfigMatchesGlobal(int displayId) {
-        if (displayId == DEFAULT_DISPLAY) {
-            return true;
-        }
-        if (displayId == INVALID_DISPLAY) {
-            return false;
-        }
-        final ActivityDisplay targetDisplay = getActivityDisplayOrCreateLocked(displayId);
-        if (targetDisplay == null) {
-            throw new IllegalArgumentException("No display found with id: " + displayId);
-        }
-        return getConfiguration().equals(targetDisplay.getConfiguration());
-    }
-
-    static class FindTaskResult {
-        ActivityRecord mRecord;
-        boolean mIdealMatch;
-
-        void clear() {
-            mRecord = null;
-            mIdealMatch = false;
-        }
-
-        void setTo(FindTaskResult result) {
-            mRecord = result.mRecord;
-            mIdealMatch = result.mIdealMatch;
-        }
-    }
-
-    private final FindTaskResult mTmpFindTaskResult = new FindTaskResult();
-
-    /**
      * Used to keep track whether app visibilities got changed since the last pause. Useful to
      * determine whether to invoke the task stack change listener after pausing.
      */
@@ -565,11 +378,6 @@
      */
     private boolean mAllowDockedStackResize = true;
 
-    /**
-     * Is dock currently minimized.
-     */
-    boolean mIsDockMinimized;
-
     private KeyguardController mKeyguardController;
 
     private PowerManager mPowerManager;
@@ -577,8 +385,6 @@
 
     private boolean mInitialized;
 
-    private RootWindowContainerController mWindowContainerController;
-
     /**
      * Description of a request to start a new activity, which has been held
      * due to app switches being disabled.
@@ -617,16 +423,6 @@
         mHandler = new ActivityStackSupervisorHandler(looper);
     }
 
-    @VisibleForTesting
-    void setService(ActivityTaskManagerService service) {
-        mService = service;
-    }
-
-    @VisibleForTesting
-    void setWindowContainerController(RootWindowContainerController controller) {
-        mWindowContainerController = controller;
-    }
-
     public void initialize() {
         if (mInitialized) {
             return;
@@ -634,7 +430,9 @@
 
         mInitialized = true;
         mRunningTasks = createRunningTasks();
-        mActivityMetricsLogger = new ActivityMetricsLogger(this, mService.mContext, mHandler.getLooper());
+
+        mActivityMetricsLogger = new ActivityMetricsLogger(this, mService.mContext,
+                mHandler.getLooper());
         mKeyguardController = new KeyguardController(mService, this);
 
         mPersisterQueue = new PersisterQueue();
@@ -681,321 +479,16 @@
     void setWindowManager(WindowManagerService wm) {
         mWindowManager = wm;
         getKeyguardController().setWindowManager(wm);
-        setWindowContainerController(new RootWindowContainerController(this));
-
-        mDisplayManager = mService.mContext.getSystemService(DisplayManager.class);
-        mDisplayManager.registerDisplayListener(this, mHandler);
-        mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
-
-        final Display[] displays = mDisplayManager.getDisplays();
-        for (int displayNdx = 0; displayNdx < displays.length; ++displayNdx) {
-            final Display display = displays[displayNdx];
-            final ActivityDisplay activityDisplay = new ActivityDisplay(this, display);
-            if (activityDisplay.mDisplayId == DEFAULT_DISPLAY) {
-                mDefaultDisplay = activityDisplay;
-            }
-            addChild(activityDisplay, ActivityDisplay.POSITION_TOP);
-        }
-        calculateDefaultMinimalSizeOfResizeableTasks();
-
-        final ActivityDisplay defaultDisplay = getDefaultDisplay();
-
-        defaultDisplay.getOrCreateStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
-        positionChildAt(defaultDisplay, ActivityDisplay.POSITION_TOP);
-    }
-
-    /** Change the z-order of the given display. */
-    private void positionChildAt(ActivityDisplay display, int position) {
-        if (position >= mActivityDisplays.size()) {
-            position = mActivityDisplays.size() - 1;
-        } else if (position < 0) {
-            position = 0;
-        }
-
-        if (mActivityDisplays.isEmpty()) {
-            mActivityDisplays.add(display);
-        } else if (mActivityDisplays.get(position) != display) {
-            mActivityDisplays.remove(display);
-            mActivityDisplays.add(position, display);
-        }
-    }
-
-    @Override
-    public void onChildPositionChanged(DisplayWindowController childController, int position) {
-        // Assume AM lock is held from positionChildAt of controller in each hierarchy.
-        final ActivityDisplay display = getActivityDisplay(childController.getDisplayId());
-        if (display != null) {
-            positionChildAt(display, position);
-        }
-    }
-
-    ActivityStack getTopDisplayFocusedStack() {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityStack focusedStack = mActivityDisplays.get(i).getFocusedStack();
-            if (focusedStack != null) {
-                return focusedStack;
-            }
-        }
-        return null;
-    }
-
-    ActivityRecord getTopResumedActivity() {
-        final ActivityStack focusedStack = getTopDisplayFocusedStack();
-        if (focusedStack == null) {
-            return null;
-        }
-        final ActivityRecord resumedActivity = focusedStack.getResumedActivity();
-        if (resumedActivity != null && resumedActivity.app != null) {
-            return resumedActivity;
-        }
-        // The top focused stack might not have a resumed activity yet - look on all displays in
-        // focus order.
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityDisplay display = mActivityDisplays.get(i);
-            final ActivityRecord resumedActivityOnDisplay = display.getResumedActivity();
-            if (resumedActivityOnDisplay != null) {
-                return resumedActivityOnDisplay;
-            }
-        }
-        return null;
-    }
-
-    boolean isFocusable(ConfigurationContainer container, boolean alwaysFocusable) {
-        if (container.inSplitScreenPrimaryWindowingMode() && mIsDockMinimized) {
-            return false;
-        }
-
-        return container.getWindowConfiguration().canReceiveKeys() || alwaysFocusable;
-    }
-
-    boolean isTopDisplayFocusedStack(ActivityStack stack) {
-        return stack != null && stack == getTopDisplayFocusedStack();
     }
 
     void moveRecentsStackToFront(String reason) {
-        final ActivityStack recentsStack = getDefaultDisplay().getStack(
+        final ActivityStack recentsStack = mRootActivityContainer.getDefaultDisplay().getStack(
                 WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_RECENTS);
         if (recentsStack != null) {
             recentsStack.moveToFront(reason);
         }
     }
 
-    boolean resumeHomeActivity(ActivityRecord prev, String reason, int displayId) {
-        if (!mService.isBooting() && !mService.isBooted()) {
-            // Not ready yet!
-            return false;
-        }
-
-        if (displayId == INVALID_DISPLAY) {
-            displayId = DEFAULT_DISPLAY;
-        }
-
-        final ActivityRecord r = getActivityDisplay(displayId).getHomeActivity();
-        final String myReason = reason + " resumeHomeActivity";
-
-        // Only resume home activity if isn't finishing.
-        if (r != null && !r.finishing) {
-            r.moveFocusableActivityToTop(myReason);
-            return resumeFocusedStacksTopActivitiesLocked(r.getStack(), prev, null);
-        }
-        return startHomeOnDisplay(mCurrentUser, myReason, displayId);
-    }
-
-    /**
-     * Check if home activity start should be allowed on a display.
-     * @param homeInfo {@code ActivityInfo} of the home activity that is going to be launched.
-     * @param displayId The id of the target display.
-     * @param allowInstrumenting Whether launching home should be allowed if being instrumented.
-     * @return {@code true} if allow to launch, {@code false} otherwise.
-     */
-    boolean canStartHomeOnDisplay(ActivityInfo homeInfo, int displayId,
-            boolean allowInstrumenting) {
-        if (mService.mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL
-                && mService.mTopAction == null) {
-            // We are running in factory test mode, but unable to find the factory test app, so
-            // just sit around displaying the error message and don't try to start anything.
-            return false;
-        }
-
-        final WindowProcessController app =
-                mService.getProcessController(homeInfo.processName, homeInfo.applicationInfo.uid);
-        if (!allowInstrumenting && app != null && app.isInstrumenting()) {
-            // Don't do this if the home app is currently being instrumented.
-            return false;
-        }
-
-        if (displayId == DEFAULT_DISPLAY || (displayId != INVALID_DISPLAY
-                && displayId == mService.mVr2dDisplayId)) {
-            // No restrictions to default display or vr 2d display.
-            return true;
-        }
-
-        final ActivityDisplay display = getActivityDisplay(displayId);
-        if (display == null || display.isRemoved() || !display.supportsSystemDecorations()) {
-            // Can't launch home on display that doesn't support system decorations.
-            return false;
-        }
-
-        final boolean supportMultipleInstance = homeInfo.launchMode != LAUNCH_SINGLE_TASK
-                && homeInfo.launchMode != LAUNCH_SINGLE_INSTANCE
-                && homeInfo.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.Q;
-        if (!supportMultipleInstance) {
-            // Can't launch home on other displays if it requested to be single instance. Also we
-            // don't allow home applications that target before Q to have multiple home activity
-            // instances because they may not be expected to have multiple home scenario and
-            // haven't explicitly request for single instance.
-            return false;
-        }
-
-        return true;
-    }
-
-    TaskRecord anyTaskForIdLocked(int id) {
-        return anyTaskForIdLocked(id, MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE);
-    }
-
-    TaskRecord anyTaskForIdLocked(int id, @AnyTaskForIdMatchTaskMode int matchMode) {
-        return anyTaskForIdLocked(id, matchMode, null, !ON_TOP);
-    }
-
-    /**
-     * Returns a {@link TaskRecord} for the input id if available. {@code null} otherwise.
-     * @param id Id of the task we would like returned.
-     * @param matchMode The mode to match the given task id in.
-     * @param aOptions The activity options to use for restoration. Can be null.
-     * @param onTop If the stack for the task should be the topmost on the display.
-     */
-    TaskRecord anyTaskForIdLocked(int id, @AnyTaskForIdMatchTaskMode int matchMode,
-            @Nullable ActivityOptions aOptions, boolean onTop) {
-        // If options are set, ensure that we are attempting to actually restore a task
-        if (matchMode != MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE && aOptions != null) {
-            throw new IllegalArgumentException("Should not specify activity options for non-restore"
-                    + " lookup");
-        }
-
-        int numDisplays = mActivityDisplays.size();
-        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                final TaskRecord task = stack.taskForIdLocked(id);
-                if (task == null) {
-                    continue;
-                }
-                if (aOptions != null) {
-                    // Resolve the stack the task should be placed in now based on options
-                    // and reparent if needed.
-                    final ActivityStack launchStack = getLaunchStack(null, aOptions, task, onTop);
-                    if (launchStack != null && stack != launchStack) {
-                        final int reparentMode = onTop
-                                ? REPARENT_MOVE_STACK_TO_FRONT : REPARENT_LEAVE_STACK_IN_PLACE;
-                        task.reparent(launchStack, onTop, reparentMode, ANIMATE, DEFER_RESUME,
-                                "anyTaskForIdLocked");
-                    }
-                }
-                return task;
-            }
-        }
-
-        // If we are matching stack tasks only, return now
-        if (matchMode == MATCH_TASK_IN_STACKS_ONLY) {
-            return null;
-        }
-
-        // Otherwise, check the recent tasks and return if we find it there and we are not restoring
-        // the task from recents
-        if (DEBUG_RECENTS) Slog.v(TAG_RECENTS, "Looking for task id=" + id + " in recents");
-        final TaskRecord task = mRecentTasks.getTask(id);
-
-        if (task == null) {
-            if (DEBUG_RECENTS) {
-                Slog.d(TAG_RECENTS, "\tDidn't find task id=" + id + " in recents");
-            }
-
-            return null;
-        }
-
-        if (matchMode == MATCH_TASK_IN_STACKS_OR_RECENT_TASKS) {
-            return task;
-        }
-
-        // Implicitly, this case is MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE
-        if (!restoreRecentTaskLocked(task, aOptions, onTop)) {
-            if (DEBUG_RECENTS) Slog.w(TAG_RECENTS,
-                    "Couldn't restore task id=" + id + " found in recents");
-            return null;
-        }
-        if (DEBUG_RECENTS) Slog.w(TAG_RECENTS, "Restored task id=" + id + " from in recents");
-        return task;
-    }
-
-    ActivityRecord isInAnyStackLocked(IBinder token) {
-        int numDisplays = mActivityDisplays.size();
-        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                final ActivityRecord r = stack.isInStackLocked(token);
-                if (r != null) {
-                    return r;
-                }
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Detects whether we should show a lock screen in front of this task for a locked user.
-     * <p>
-     * We'll do this if either of the following holds:
-     * <ul>
-     *   <li>The top activity explicitly belongs to {@param userId}.</li>
-     *   <li>The top activity returns a result to an activity belonging to {@param userId}.</li>
-     * </ul>
-     *
-     * @return {@code true} if the top activity looks like it belongs to {@param userId}.
-     */
-    private boolean taskTopActivityIsUser(TaskRecord task, @UserIdInt int userId) {
-        // To handle the case that work app is in the task but just is not the top one.
-        final ActivityRecord activityRecord = task.getTopActivity();
-        final ActivityRecord resultTo = (activityRecord != null ? activityRecord.resultTo : null);
-
-        return (activityRecord != null && activityRecord.userId == userId)
-                || (resultTo != null && resultTo.userId == userId);
-    }
-
-    /**
-     * Find all visible task stacks containing {@param userId} and intercept them with an activity
-     * to block out the contents and possibly start a credential-confirming intent.
-     *
-     * @param userId user handle for the locked managed profile.
-     */
-    void lockAllProfileTasks(@UserIdInt int userId) {
-        mWindowManager.deferSurfaceLayout();
-        try {
-            for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-                final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-                for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                    final ActivityStack stack = display.getChildAt(stackNdx);
-                    final List<TaskRecord> tasks = stack.getAllTasks();
-                    for (int taskNdx = tasks.size() - 1; taskNdx >= 0; taskNdx--) {
-                        final TaskRecord task = tasks.get(taskNdx);
-
-                        // Check the task for a top activity belonging to userId, or returning a
-                        // result to an activity belonging to userId. Example case: a document
-                        // picker for personal files, opened by a work app, should still get locked.
-                        if (taskTopActivityIsUser(task, userId)) {
-                            mService.getTaskChangeNotificationController().notifyTaskProfileLocked(
-                                    task.taskId, userId);
-                        }
-                    }
-                }
-            }
-        } finally {
-            mWindowManager.continueSurfaceLayout();
-        }
-    }
-
     void setNextTaskIdForUserLocked(int taskId, int userId) {
         final int currentTaskId = mCurTaskIdForUser.get(userId, -1);
         if (taskId > currentTaskId) {
@@ -1019,7 +512,7 @@
         // was 10, user 0 could only have taskIds 0 to 9, user 1: 10 to 19, user 2: 20 to 29, so on.
         int candidateTaskId = nextTaskIdForUser(currentTaskId, userId);
         while (mRecentTasks.containsTaskId(candidateTaskId, userId)
-                || anyTaskForIdLocked(
+                || mRootActivityContainer.anyTaskForId(
                         candidateTaskId, MATCH_TASK_IN_STACKS_OR_RECENT_TASKS) != null) {
             candidateTaskId = nextTaskIdForUser(candidateTaskId, userId);
             if (candidateTaskId == currentTaskId) {
@@ -1034,145 +527,6 @@
         return candidateTaskId;
     }
 
-    boolean attachApplicationLocked(WindowProcessController app) throws RemoteException {
-        final String processName = app.mName;
-        boolean didSomething = false;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                if (!isTopDisplayFocusedStack(stack)) {
-                    continue;
-                }
-                stack.getAllRunningVisibleActivitiesLocked(mTmpActivityList);
-                final ActivityRecord top = stack.topRunningActivityLocked();
-                final int size = mTmpActivityList.size();
-                for (int i = 0; i < size; i++) {
-                    final ActivityRecord activity = mTmpActivityList.get(i);
-                    if (activity.app == null && app.mUid == activity.info.applicationInfo.uid
-                            && processName.equals(activity.processName)) {
-                        try {
-                            if (realStartActivityLocked(activity, app,
-                                    top == activity /* andResume */, true /* checkConfig */)) {
-                                didSomething = true;
-                            }
-                        } catch (RemoteException e) {
-                            Slog.w(TAG, "Exception in new application when starting activity "
-                                    + top.intent.getComponent().flattenToShortString(), e);
-                            throw e;
-                        }
-                    }
-                }
-            }
-        }
-        if (!didSomething) {
-            ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
-        }
-        return didSomething;
-    }
-
-    boolean allResumedActivitiesIdle() {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            // TODO(b/117135575): Check resumed activities on all visible stacks.
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            if (display.isSleeping()) {
-                // No resumed activities while display is sleeping.
-                continue;
-            }
-
-            // If the focused stack is not null or not empty, there should have some activities
-            // resuming or resumed. Make sure these activities are idle.
-            final ActivityStack stack = display.getFocusedStack();
-            if (stack == null || stack.numActivities() == 0) {
-                continue;
-            }
-            final ActivityRecord resumedActivity = stack.getResumedActivity();
-            if (resumedActivity == null || !resumedActivity.idle) {
-                if (DEBUG_STATES) {
-                    Slog.d(TAG_STATES, "allResumedActivitiesIdle: stack="
-                            + stack.mStackId + " " + resumedActivity + " not idle");
-                }
-                return false;
-            }
-        }
-        // Send launch end powerhint when idle
-        sendPowerHintForLaunchEndIfNeeded();
-        return true;
-    }
-
-    private boolean allResumedActivitiesVisible() {
-        boolean foundResumed = false;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                final ActivityRecord r = stack.getResumedActivity();
-                if (r != null) {
-                    if (!r.nowVisible || mActivitiesWaitingForVisibleActivity.contains(r)) {
-                        return false;
-                    }
-                    foundResumed = true;
-                }
-            }
-        }
-        return foundResumed;
-    }
-
-    private void executeAppTransitionForAllDisplay() {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            display.getWindowContainerController().executeAppTransition();
-        }
-    }
-
-    /**
-     * Pause all activities in either all of the stacks or just the back stacks.
-     * @param userLeaving Passed to pauseActivity() to indicate whether to call onUserLeaving().
-     * @param resuming The resuming activity.
-     * @param dontWait The resuming activity isn't going to wait for all activities to be paused
-     *                 before resuming.
-     * @return true if any activity was paused as a result of this call.
-     */
-    boolean pauseBackStacks(boolean userLeaving, ActivityRecord resuming, boolean dontWait) {
-        boolean someActivityPaused = false;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            someActivityPaused |= mActivityDisplays.get(displayNdx)
-                    .pauseBackStacks(userLeaving, resuming, dontWait);
-        }
-        return someActivityPaused;
-    }
-
-    boolean allPausedActivitiesComplete() {
-        boolean pausing = true;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                final ActivityRecord r = stack.mPausingActivity;
-                if (r != null && !r.isState(PAUSED, STOPPED, STOPPING)) {
-                    if (DEBUG_STATES) {
-                        Slog.d(TAG_STATES,
-                                "allPausedActivitiesComplete: r=" + r + " state=" + r.getState());
-                        pausing = false;
-                    } else {
-                        return false;
-                    }
-                }
-            }
-        }
-        return pausing;
-    }
-
-    void cancelInitializingActivities() {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.cancelInitializingActivities();
-            }
-        }
-    }
-
     void waitActivityVisible(ComponentName name, WaitResult result, long startTimeMs) {
         final WaitInfo waitInfo = new WaitInfo(name, result, startTimeMs);
         mWaitingForActivityVisible.add(waitInfo);
@@ -1186,7 +540,7 @@
         mActivitiesWaitingForVisibleActivity.remove(r);
 
         for (int i = mWaitingForActivityVisible.size() - 1; i >= 0; --i) {
-            if (mWaitingForActivityVisible.get(i).matches(r.realActivity)) {
+            if (mWaitingForActivityVisible.get(i).matches(r.mActivityComponent)) {
                 mWaitingForActivityVisible.remove(i);
             }
         }
@@ -1200,7 +554,7 @@
         boolean changed = false;
         for (int i = mWaitingForActivityVisible.size() - 1; i >= 0; --i) {
             final WaitInfo w = mWaitingForActivityVisible.get(i);
-            if (w.matches(r.realActivity)) {
+            if (w.matches(r.mActivityComponent)) {
                 final WaitResult result = w.getResult();
                 changed = true;
                 result.timeout = false;
@@ -1234,7 +588,7 @@
                 // Unlike START_TASK_TO_FRONT, When an intent is delivered to top, there
                 // will be no followup launch signals. Assign the result and launched component.
                 if (result == START_DELIVERED_TO_TOP) {
-                    w.who = r.realActivity;
+                    w.who = r.mActivityComponent;
                 }
             }
         }
@@ -1263,24 +617,6 @@
         }
     }
 
-    ActivityRecord topRunningActivityLocked() {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityRecord topActivity = mActivityDisplays.get(i).topRunningActivity();
-            if (topActivity != null) {
-                return topActivity;
-            }
-        }
-        return null;
-    }
-
-    @VisibleForTesting
-    void getRunningTasks(int maxNum, List<RunningTaskInfo> list,
-            @ActivityType int ignoreActivityType, @WindowingMode int ignoreWindowingMode,
-            int callingUid, boolean allowed) {
-        mRunningTasks.getTasks(maxNum, list, ignoreActivityType, ignoreWindowingMode,
-                mActivityDisplays, callingUid, allowed);
-    }
-
     ActivityInfo resolveActivity(Intent intent, ResolveInfo rInfo, int startFlags,
             ProfilerInfo profilerInfo) {
         final ActivityInfo aInfo = rInfo != null ? rInfo.activityInfo : null;
@@ -1326,31 +662,29 @@
 
     ResolveInfo resolveIntent(Intent intent, String resolvedType, int userId, int flags,
             int filterCallingUid) {
-        synchronized (mService.mGlobalLock) {
-            try {
-                Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "resolveIntent");
-                int modifiedFlags = flags
-                        | PackageManager.MATCH_DEFAULT_ONLY | ActivityManagerService.STOCK_PM_FLAGS;
-                if (intent.isWebIntent()
-                            || (intent.getFlags() & Intent.FLAG_ACTIVITY_MATCH_EXTERNAL) != 0) {
-                    modifiedFlags |= PackageManager.MATCH_INSTANT;
-                }
-
-                // In order to allow cross-profile lookup, we clear the calling identity here.
-                // Note the binder identity won't affect the result, but filterCallingUid will.
-
-                // Cross-user/profile call check are done at the entry points
-                // (e.g. AMS.startActivityAsUser).
-                final long token = Binder.clearCallingIdentity();
-                try {
-                    return mService.getPackageManagerInternalLocked().resolveIntent(
-                            intent, resolvedType, modifiedFlags, userId, true, filterCallingUid);
-                } finally {
-                    Binder.restoreCallingIdentity(token);
-                }
-            } finally {
-                Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
+        try {
+            Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "resolveIntent");
+            int modifiedFlags = flags
+                    | PackageManager.MATCH_DEFAULT_ONLY | ActivityManagerService.STOCK_PM_FLAGS;
+            if (intent.isWebIntent()
+                        || (intent.getFlags() & Intent.FLAG_ACTIVITY_MATCH_EXTERNAL) != 0) {
+                modifiedFlags |= PackageManager.MATCH_INSTANT;
             }
+
+            // In order to allow cross-profile lookup, we clear the calling identity here.
+            // Note the binder identity won't affect the result, but filterCallingUid will.
+
+            // Cross-user/profile call check are done at the entry points
+            // (e.g. AMS.startActivityAsUser).
+            final long token = Binder.clearCallingIdentity();
+            try {
+                return mService.getPackageManagerInternalLocked().resolveIntent(
+                        intent, resolvedType, modifiedFlags, userId, true, filterCallingUid);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        } finally {
+            Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
         }
     }
 
@@ -1360,10 +694,10 @@
         return resolveActivity(intent, rInfo, startFlags, profilerInfo);
     }
 
-    private boolean realStartActivityLocked(ActivityRecord r, WindowProcessController proc,
+    boolean realStartActivityLocked(ActivityRecord r, WindowProcessController proc,
             boolean andResume, boolean checkConfig) throws RemoteException {
 
-        if (!allPausedActivitiesComplete()) {
+        if (!mRootActivityContainer.allPausedActivitiesComplete()) {
             // While there are activities pausing we skipping starting any new activities until
             // pauses are complete. NOTE: that we also do this for activities that are starting in
             // the paused state because they will first be resumed then paused on the client side.
@@ -1373,7 +707,7 @@
             return false;
         }
 
-        final TaskRecord task = r.getTask();
+        final TaskRecord task = r.getTaskRecord();
         final ActivityStack stack = task.getStack();
 
         beginDeferResume();
@@ -1398,11 +732,11 @@
                 // Deferring resume here because we're going to launch new activity shortly.
                 // We don't want to perform a redundant launch of the same record while ensuring
                 // configurations and trying to resume top activity of focused stack.
-                ensureVisibilityAndConfig(r, r.getDisplayId(),
+                mRootActivityContainer.ensureVisibilityAndConfig(r, r.getDisplayId(),
                         false /* markFrozenIfConfigChanged */, true /* deferResume */);
             }
 
-            if (r.getStack().checkKeyguardVisibility(r, true /* shouldBeVisible */,
+            if (r.getActivityStack().checkKeyguardVisibility(r, true /* shouldBeVisible */,
                     true /* isTop */)) {
                 // We only set the visibility to true if the activity is allowed to be visible
                 // based on
@@ -1414,7 +748,7 @@
 
             final int applicationInfoUid =
                     (r.info.applicationInfo != null) ? r.info.applicationInfo.uid : -1;
-            if ((r.userId != proc.mUserId) || (r.appInfo.uid != applicationInfoUid)) {
+            if ((r.mUserId != proc.mUserId) || (r.appInfo.uid != applicationInfoUid)) {
                 Slog.wtf(TAG,
                         "User ID for activity changing for " + r
                                 + " appInfo.uid=" + r.appInfo.uid
@@ -1455,7 +789,7 @@
                 if (DEBUG_SWITCH) Slog.v(TAG_SWITCH,
                         "Launching: " + r + " icicle=" + r.icicle + " with results=" + results
                                 + " newIntents=" + newIntents + " andResume=" + andResume);
-                EventLog.writeEvent(EventLogTags.AM_RESTART_ACTIVITY, r.userId,
+                EventLog.writeEvent(EventLogTags.AM_RESTART_ACTIVITY, r.mUserId,
                         System.identityHashCode(r), task.taskId, r.shortComponentName);
                 if (r.isActivityTypeHome()) {
                     // Home process is the root process of the task.
@@ -1568,7 +902,7 @@
         // launching the initial activity (that is, home), so that it can have
         // a chance to initialize itself while in the background, making the
         // switch back to it faster and look better.
-        if (isTopDisplayFocusedStack(stack)) {
+        if (mRootActivityContainer.isTopDisplayFocusedStack(stack)) {
             mService.getActivityStartController().startSetupActivity();
         }
 
@@ -1581,47 +915,6 @@
         return true;
     }
 
-    /**
-     * Ensure all activities visibility, update orientation and configuration.
-     *
-     * @param starting The currently starting activity or {@code null} if there is none.
-     * @param displayId The id of the display where operation is executed.
-     * @param markFrozenIfConfigChanged Whether to set {@link ActivityRecord#frozenBeforeDestroy} to
-     *                                  {@code true} if config changed.
-     * @param deferResume Whether to defer resume while updating config.
-     * @return 'true' if starting activity was kept or wasn't provided, 'false' if it was relaunched
-     *         because of configuration update.
-     */
-    boolean ensureVisibilityAndConfig(ActivityRecord starting, int displayId,
-            boolean markFrozenIfConfigChanged, boolean deferResume) {
-        // First ensure visibility without updating the config just yet. We need this to know what
-        // activities are affecting configuration now.
-        // Passing null here for 'starting' param value, so that visibility of actual starting
-        // activity will be properly updated.
-        ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */,
-                false /* preserveWindows */, false /* notifyClients */);
-
-        if (displayId == INVALID_DISPLAY) {
-            // The caller didn't provide a valid display id, skip updating config.
-            return true;
-        }
-
-        // Force-update the orientation from the WindowManager, since we need the true configuration
-        // to send to the client now.
-        final Configuration config = mWindowManager.updateOrientationFromAppTokens(
-                getDisplayOverrideConfiguration(displayId),
-                starting != null && starting.mayFreezeScreenLocked(starting.app)
-                        ? starting.appToken : null,
-                displayId, true /* forceUpdate */);
-        if (starting != null && markFrozenIfConfigChanged && config != null) {
-            starting.frozenBeforeDestroy = true;
-        }
-
-        // Update the configuration of the activities on the display.
-        return mService.updateDisplayOverrideConfigurationLocked(config, starting, deferResume,
-                displayId);
-    }
-
     private void logIfTransactionTooLarge(Intent intent, Bundle icicle) {
         int extrasSize = 0;
         if (intent != null) {
@@ -1677,47 +970,6 @@
         mService.mH.sendMessage(msg);
     }
 
-    void sendPowerHintForLaunchStartIfNeeded(boolean forceSend, ActivityRecord targetActivity) {
-        boolean sendHint = forceSend;
-
-        if (!sendHint) {
-            // Send power hint if we don't know what we're launching yet
-            sendHint = targetActivity == null || targetActivity.app == null;
-        }
-
-        if (!sendHint) { // targetActivity != null
-            // Send power hint when the activity's process is different than the current resumed
-            // activity on all displays, or if there are no resumed activities in the system.
-            boolean noResumedActivities = true;
-            boolean allFocusedProcessesDiffer = true;
-            for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
-                final ActivityDisplay activityDisplay = mActivityDisplays.get(displayNdx);
-                final ActivityRecord resumedActivity = activityDisplay.getResumedActivity();
-                final WindowProcessController resumedActivityProcess =
-                    resumedActivity == null ? null : resumedActivity.app;
-
-                noResumedActivities &= resumedActivityProcess == null;
-                if (resumedActivityProcess != null) {
-                    allFocusedProcessesDiffer &= !resumedActivityProcess.equals(targetActivity.app);
-                }
-            }
-            sendHint = noResumedActivities || allFocusedProcessesDiffer;
-        }
-
-        if (sendHint && mService.mPowerManagerInternal != null) {
-            mService.mPowerManagerInternal.powerHint(PowerHint.LAUNCH, 1);
-            mPowerHintSent = true;
-        }
-    }
-
-    void sendPowerHintForLaunchEndIfNeeded() {
-        // Trigger launch power hint if activity is launched
-        if (mPowerHintSent && mService.mPowerManagerInternal != null) {
-            mService.mPowerManagerInternal.powerHint(PowerHint.LAUNCH, 0);
-            mPowerHintSent = false;
-        }
-    }
-
     boolean checkStartAnyActivityPermission(Intent intent, ActivityInfo aInfo, String resultWho,
             int requestCode, int callingPid, int callingUid, String callingPackage,
             boolean ignoreTargetSecurity, boolean launchingInTask,
@@ -1796,7 +1048,8 @@
             return true;
         }
 
-        final ActivityDisplay activityDisplay = getActivityDisplayOrCreateLocked(launchDisplayId);
+        final ActivityDisplay activityDisplay =
+                mRootActivityContainer.getActivityDisplayOrCreate(launchDisplayId);
         if (activityDisplay == null || activityDisplay.isRemoved()) {
             Slog.w(TAG, "Launch on display check: display not found");
             return false;
@@ -1858,21 +1111,6 @@
         return false;
     }
 
-    /** Update lists of UIDs that are present on displays and have access to them. */
-    void updateUIDsPresentOnDisplay() {
-        mDisplayAccessUIDs.clear();
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay activityDisplay = mActivityDisplays.get(displayNdx);
-            // Only bother calculating the whitelist for private displays
-            if (activityDisplay.isPrivate()) {
-                mDisplayAccessUIDs.append(
-                        activityDisplay.mDisplayId, activityDisplay.getPresentUIDs());
-            }
-        }
-        // Store updated lists in DisplayManager. Callers from outside of AM should get them there.
-        mDisplayManagerInternal.setDisplayAccessUIDs(mDisplayAccessUIDs);
-    }
-
     UserInfo getUserInfo(int userId) {
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -2024,7 +1262,8 @@
 
             // Check if able to finish booting when device is booting and all resumed activities
             // are idle.
-            if ((mService.isBooting() && allResumedActivitiesIdle()) || fromTimeout) {
+            if ((mService.isBooting() && mRootActivityContainer.allResumedActivitiesIdle())
+                    || fromTimeout) {
                 booting = checkFinishBootingLocked();
             }
 
@@ -2033,7 +1272,7 @@
             r.mRelaunchReason = RELAUNCH_REASON_NONE;
         }
 
-        if (allResumedActivitiesIdle()) {
+        if (mRootActivityContainer.allResumedActivitiesIdle()) {
             if (r != null) {
                 mService.scheduleAppGcsLocked();
             }
@@ -2046,7 +1285,7 @@
                 }
                 mLaunchingActivity.release();
             }
-            ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+            mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
         }
 
         // Atomically retrieve all of the other things to do.
@@ -2067,7 +1306,7 @@
         // waiting for the next one to start.
         for (int i = 0; i < NS; i++) {
             r = stops.get(i);
-            final ActivityStack stack = r.getStack();
+            final ActivityStack stack = r.getActivityStack();
             if (stack != null) {
                 if (r.finishing) {
                     stack.finishCurrentActivityLocked(r, ActivityStack.FINISH_IMMEDIATELY, false,
@@ -2082,7 +1321,7 @@
         // waiting for the next one to start.
         for (int i = 0; i < NF; i++) {
             r = finishes.get(i);
-            final ActivityStack stack = r.getStack();
+            final ActivityStack stack = r.getActivityStack();
             if (stack != null) {
                 activityRemoved |= stack.destroyActivityLocked(r, true, "finish-idle");
             }
@@ -2102,186 +1341,13 @@
         //mWindowManager.dump();
 
         if (activityRemoved) {
-            resumeFocusedStacksTopActivitiesLocked();
+            mRootActivityContainer.resumeFocusedStacksTopActivities();
         }
 
         return r;
     }
 
-    boolean handleAppDiedLocked(WindowProcessController app) {
-        boolean hasVisibleActivities = false;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                hasVisibleActivities |= stack.handleAppDiedLocked(app);
-            }
-        }
-        return hasVisibleActivities;
-    }
-
-    void closeSystemDialogsLocked() {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.closeSystemDialogsLocked();
-            }
-        }
-    }
-
-    void removeUserLocked(int userId) {
-        mUserStackInFront.delete(userId);
-    }
-
-    /**
-     * Update the last used stack id for non-current user (current user's last
-     * used stack is the focused stack)
-     */
-    void updateUserStackLocked(int userId, ActivityStack stack) {
-        if (userId != mCurrentUser) {
-            mUserStackInFront.put(userId, stack != null ? stack.getStackId()
-                    : getDefaultDisplay().getHomeStack().mStackId);
-        }
-    }
-
-    /**
-     * @return true if some activity was finished (or would have finished if doit were true).
-     */
-    boolean finishDisabledPackageActivitiesLocked(String packageName, Set<String> filterByClasses,
-            boolean doit, boolean evenPersistent, int userId) {
-        boolean didSomething = false;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                if (stack.finishDisabledPackageActivitiesLocked(
-                        packageName, filterByClasses, doit, evenPersistent, userId)) {
-                    didSomething = true;
-                }
-            }
-        }
-        return didSomething;
-    }
-
-    void updatePreviousProcessLocked(ActivityRecord r) {
-        // Now that this process has stopped, we may want to consider
-        // it to be the previous app to try to keep around in case
-        // the user wants to return to it.
-
-        // First, found out what is currently the foreground app, so that
-        // we don't blow away the previous app if this activity is being
-        // hosted by the process that is actually still the foreground.
-        WindowProcessController fgApp = null;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                if (isTopDisplayFocusedStack(stack)) {
-                    final ActivityRecord resumedActivity = stack.getResumedActivity();
-                    if (resumedActivity != null) {
-                        fgApp = resumedActivity.app;
-                    } else if (stack.mPausingActivity != null) {
-                        fgApp = stack.mPausingActivity.app;
-                    }
-                    break;
-                }
-            }
-        }
-
-        // Now set this one as the previous process, only if that really
-        // makes sense to.
-        if (r.hasProcess() && fgApp != null && r.app != fgApp
-                && r.lastVisibleTime > mService.mPreviousProcessVisibleTime
-                && r.app != mService.mHomeProcess) {
-            mService.mPreviousProcess = r.app;
-            mService.mPreviousProcessVisibleTime = r.lastVisibleTime;
-        }
-    }
-
-    boolean resumeFocusedStacksTopActivitiesLocked() {
-        return resumeFocusedStacksTopActivitiesLocked(null, null, null);
-    }
-
-    boolean resumeFocusedStacksTopActivitiesLocked(
-            ActivityStack targetStack, ActivityRecord target, ActivityOptions targetOptions) {
-
-        if (!readyToResume()) {
-            return false;
-        }
-
-        if (targetStack != null && (targetStack.isTopStackOnDisplay()
-                || getTopDisplayFocusedStack() == targetStack)) {
-            return targetStack.resumeTopActivityUncheckedLocked(target, targetOptions);
-        }
-
-        // Resume all top activities in focused stacks on all displays.
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            final ActivityStack focusedStack = display.getFocusedStack();
-            if (focusedStack == null) {
-                continue;
-            }
-            final ActivityRecord r = focusedStack.topRunningActivityLocked();
-            if (r == null || !r.isState(RESUMED)) {
-                focusedStack.resumeTopActivityUncheckedLocked(null, null);
-            } else if (r.isState(RESUMED)) {
-                // Kick off any lingering app transitions form the MoveTaskToFront operation.
-                focusedStack.executeAppTransition(targetOptions);
-            }
-        }
-
-        return false;
-    }
-
-    void updateActivityApplicationInfoLocked(ApplicationInfo aInfo) {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.updateActivityApplicationInfoLocked(aInfo);
-            }
-        }
-    }
-
-    /**
-     * Finish the topmost activities in all stacks that belong to the crashed app.
-     * @param app The app that crashed.
-     * @param reason Reason to perform this action.
-     * @return The task id that was finished in this stack, or INVALID_TASK_ID if none was finished.
-     */
-    int finishTopCrashedActivitiesLocked(WindowProcessController app, String reason) {
-        TaskRecord finishedTask = null;
-        ActivityStack focusedStack = getTopDisplayFocusedStack();
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            // It is possible that request to finish activity might also remove its task and stack,
-            // so we need to be careful with indexes in the loop and check child count every time.
-            for (int stackNdx = 0; stackNdx < display.getChildCount(); ++stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                final TaskRecord t = stack.finishTopCrashedActivityLocked(app, reason);
-                if (stack == focusedStack || finishedTask == null) {
-                    finishedTask = t;
-                }
-            }
-        }
-        return finishedTask != null ? finishedTask.taskId : INVALID_TASK_ID;
-    }
-
-    void finishVoiceTask(IVoiceInteractionSession session) {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            final int numStacks = display.getChildCount();
-            for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.finishVoiceTask(session);
-            }
-        }
-    }
-
-    /**
-     * This doesn't just find a task, it also moves the task to front.
-     */
+    /** This doesn't just find a task, it also moves the task to front. */
     void findTaskToMoveToFront(TaskRecord task, int flags, ActivityOptions options, String reason,
             boolean forceNonResizeable) {
         ActivityStack currentStack = task.getStack();
@@ -2301,7 +1367,8 @@
             final Rect bounds = options.getLaunchBounds();
             task.updateOverrideConfiguration(bounds);
 
-            ActivityStack stack = getLaunchStack(null, options, task, ON_TOP);
+            ActivityStack stack =
+                    mRootActivityContainer.getLaunchStack(null, options, task, ON_TOP);
 
             if (stack != currentStack) {
                 moveHomeStackToFrontIfNeeded(flags, stack.getDisplay(), reason);
@@ -2313,7 +1380,7 @@
                 // still need moveTaskToFrontLocked() below for any transition settings.
             }
             if (stack.resizeStackWithLaunchBounds()) {
-                resizeStackLocked(stack, bounds, null /* tempTaskBounds */,
+                mRootActivityContainer.resizeStack(stack, bounds, null /* tempTaskBounds */,
                         null /* tempTaskInsetBounds */, !PRESERVE_WINDOWS,
                         true /* allowResizeInDockedMode */, !DEFER_RESUME);
             } else {
@@ -2366,387 +1433,22 @@
         return mLaunchParamsController;
     }
 
-    protected <T extends ActivityStack> T getStack(int stackId) {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final T stack = mActivityDisplays.get(i).getStack(stackId);
-            if (stack != null) {
-                return stack;
-            }
-        }
-        return null;
+    private void deferUpdateRecentsHomeStackBounds() {
+        mRootActivityContainer.deferUpdateBounds(ACTIVITY_TYPE_RECENTS);
+        mRootActivityContainer.deferUpdateBounds(ACTIVITY_TYPE_HOME);
     }
 
-    /** @see ActivityDisplay#getStack(int, int) */
-    private <T extends ActivityStack> T getStack(int windowingMode, int activityType) {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final T stack = mActivityDisplays.get(i).getStack(windowingMode, activityType);
-            if (stack != null) {
-                return stack;
-            }
-        }
-        return null;
-    }
-
-    int resolveActivityType(@Nullable ActivityRecord r, @Nullable ActivityOptions options,
-            @Nullable TaskRecord task) {
-        // Preference is given to the activity type for the activity then the task since the type
-        // once set shouldn't change.
-        int activityType = r != null ? r.getActivityType() : ACTIVITY_TYPE_UNDEFINED;
-        if (activityType == ACTIVITY_TYPE_UNDEFINED && task != null) {
-            activityType = task.getActivityType();
-        }
-        if (activityType != ACTIVITY_TYPE_UNDEFINED) {
-            return activityType;
-        }
-        if (options != null) {
-            activityType = options.getLaunchActivityType();
-        }
-        return activityType != ACTIVITY_TYPE_UNDEFINED ? activityType : ACTIVITY_TYPE_STANDARD;
-    }
-
-    <T extends ActivityStack> T getLaunchStack(@Nullable ActivityRecord r,
-            @Nullable ActivityOptions options, @Nullable TaskRecord candidateTask, boolean onTop) {
-        return getLaunchStack(r, options, candidateTask, onTop, null /* launchParams */);
-    }
-
-    /**
-     * Returns the right stack to use for launching factoring in all the input parameters.
-     *
-     * @param r The activity we are trying to launch. Can be null.
-     * @param options The activity options used to the launch. Can be null.
-     * @param candidateTask The possible task the activity might be launched in. Can be null.
-     * @params launchParams The resolved launch params to use.
-     *
-     * @return The stack to use for the launch or INVALID_STACK_ID.
-     */
-    <T extends ActivityStack> T getLaunchStack(@Nullable ActivityRecord r,
-            @Nullable ActivityOptions options, @Nullable TaskRecord candidateTask, boolean onTop,
-            @Nullable LaunchParamsController.LaunchParams launchParams) {
-        int taskId = INVALID_TASK_ID;
-        int displayId = INVALID_DISPLAY;
-        //Rect bounds = null;
-
-        // We give preference to the launch preference in activity options.
-        if (options != null) {
-            taskId = options.getLaunchTaskId();
-        }
-
-        // First preference for stack goes to the task Id set in the activity options. Use the stack
-        // associated with that if possible.
-        if (taskId != INVALID_TASK_ID) {
-            // Temporarily set the task id to invalid in case in re-entry.
-            options.setLaunchTaskId(INVALID_TASK_ID);
-            final TaskRecord task = anyTaskForIdLocked(taskId,
-                    MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE, options, onTop);
-            options.setLaunchTaskId(taskId);
-            if (task != null) {
-                return task.getStack();
-            }
-        }
-
-        final int activityType = resolveActivityType(r, options, candidateTask);
-        T stack;
-
-        // Next preference for stack goes to the display Id set the candidate display.
-        if (launchParams != null) {
-            displayId = launchParams.mPreferredDisplayId;
-        }
-        if (displayId != INVALID_DISPLAY && canLaunchOnDisplay(r, displayId)) {
-            if (r != null) {
-                stack = (T) getValidLaunchStackOnDisplay(displayId, r, candidateTask, options,
-                        launchParams);
-                if (stack != null) {
-                    return stack;
-                }
-            }
-            final ActivityDisplay display = getActivityDisplayOrCreateLocked(displayId);
-            if (display != null) {
-                stack = display.getOrCreateStack(r, options, candidateTask, activityType, onTop);
-                if (stack != null) {
-                    return stack;
-                }
-            }
-        }
-
-        // Give preference to the stack and display of the input task and activity if they match the
-        // mode we want to launch into.
-        stack = null;
-        ActivityDisplay display = null;
-        if (candidateTask != null) {
-            stack = candidateTask.getStack();
-        }
-        if (stack == null && r != null) {
-            stack = r.getStack();
-        }
-        if (stack != null) {
-            display = stack.getDisplay();
-            if (display != null && canLaunchOnDisplay(r, display.mDisplayId)) {
-                int windowingMode = launchParams != null ? launchParams.mWindowingMode
-                        : WindowConfiguration.WINDOWING_MODE_UNDEFINED;
-                if (windowingMode == WindowConfiguration.WINDOWING_MODE_UNDEFINED) {
-                    windowingMode = display.resolveWindowingMode(r, options, candidateTask,
-                            activityType);
-                }
-                if (stack.isCompatible(windowingMode, activityType)) {
-                    return stack;
-                }
-                if (windowingMode == WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY
-                        && display.getSplitScreenPrimaryStack() == stack
-                        && candidateTask == stack.topTask()) {
-                    // This is a special case when we try to launch an activity that is currently on
-                    // top of split-screen primary stack, but is targeting split-screen secondary.
-                    // In this case we don't want to move it to another stack.
-                    // TODO(b/78788972): Remove after differentiating between preferred and required
-                    // launch options.
-                    return stack;
-                }
-            }
-        }
-
-        if (display == null || !canLaunchOnDisplay(r, display.mDisplayId)) {
-            display = getDefaultDisplay();
-        }
-
-        return display.getOrCreateStack(r, options, candidateTask, activityType, onTop);
-    }
-
-    /** @return true if activity record is null or can be launched on provided display. */
-    private boolean canLaunchOnDisplay(ActivityRecord r, int displayId) {
-        if (r == null) {
-            return true;
-        }
-        return r.canBeLaunchedOnDisplay(displayId);
-    }
-
-    /**
-     * Get a topmost stack on the display, that is a valid launch stack for specified activity.
-     * If there is no such stack, new dynamic stack can be created.
-     * @param displayId Target display.
-     * @param r Activity that should be launched there.
-     * @param candidateTask The possible task the activity might be put in.
-     * @return Existing stack if there is a valid one, new dynamic stack if it is valid or null.
-     */
-    private ActivityStack getValidLaunchStackOnDisplay(int displayId, @NonNull ActivityRecord r,
-            @Nullable TaskRecord candidateTask, @Nullable ActivityOptions options,
-            @Nullable LaunchParamsController.LaunchParams launchParams) {
-        final ActivityDisplay activityDisplay = getActivityDisplayOrCreateLocked(displayId);
-        if (activityDisplay == null) {
-            throw new IllegalArgumentException(
-                    "Display with displayId=" + displayId + " not found.");
-        }
-
-        if (!r.canBeLaunchedOnDisplay(displayId)) {
-            return null;
-        }
-
-        // If {@code r} is already in target display and its task is the same as the candidate task,
-        // the intention should be getting a launch stack for the reusable activity, so we can use
-        // the existing stack.
-        if (r.getDisplayId() == displayId && r.getTask() == candidateTask) {
-            return candidateTask.getStack();
-        }
-
-        // Return the topmost valid stack on the display.
-        for (int i = activityDisplay.getChildCount() - 1; i >= 0; --i) {
-            final ActivityStack stack = activityDisplay.getChildAt(i);
-            if (isValidLaunchStack(stack, displayId, r)) {
-                return stack;
-            }
-        }
-
-        // If there is no valid stack on the external display - check if new dynamic stack will do.
-        if (displayId != DEFAULT_DISPLAY) {
-            final int windowingMode;
-            if (launchParams != null) {
-                // When launch params is not null, we always defer to its windowing mode. Sometimes
-                // it could be unspecified, which indicates it should inherit windowing mode from
-                // display.
-                windowingMode = launchParams.mWindowingMode;
-            } else {
-                windowingMode = options != null ? options.getLaunchWindowingMode()
-                        : r.getWindowingMode();
-            }
-            return activityDisplay.createStack(
-                    windowingMode,
-                    options != null ? options.getLaunchActivityType() : r.getActivityType(),
-                    true /*onTop*/);
-        }
-
-        Slog.w(TAG, "getValidLaunchStackOnDisplay: can't launch on displayId " + displayId);
-        return null;
-    }
-
-    ActivityStack getValidLaunchStackOnDisplay(int displayId, @NonNull ActivityRecord r,
-            @Nullable ActivityOptions options,
-            @Nullable LaunchParamsController.LaunchParams launchParams) {
-        return getValidLaunchStackOnDisplay(displayId, r, null /* candidateTask */, options,
-                launchParams);
-    }
-
-    // TODO: Can probably be consolidated into getLaunchStack()...
-    private boolean isValidLaunchStack(ActivityStack stack, int displayId, ActivityRecord r) {
-        switch (stack.getActivityType()) {
-            case ACTIVITY_TYPE_HOME: return r.isActivityTypeHome();
-            case ACTIVITY_TYPE_RECENTS: return r.isActivityTypeRecents();
-            case ACTIVITY_TYPE_ASSISTANT: return r.isActivityTypeAssistant();
-        }
-        // There is a 1-to-1 relationship between stack and task when not in
-        // primary split-windowing mode.
-        if (stack.getWindowingMode() != WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
-            return false;
-        } else {
-            return r.supportsSplitScreenWindowingMode();
-        }
-    }
-
-    /**
-     * Get next focusable stack in the system. This will search through the stack on the same
-     * display as the current focused stack, looking for a focusable and visible stack, different
-     * from the target stack. If no valid candidates will be found, it will then go through all
-     * displays and stacks in last-focused order.
-     *
-     * @param currentFocus The stack that previously had focus.
-     * @param ignoreCurrent If we should ignore {@param currentFocus} when searching for next
-     *                     candidate.
-     * @return Next focusable {@link ActivityStack}, {@code null} if not found.
-     */
-    ActivityStack getNextFocusableStackLocked(@NonNull ActivityStack currentFocus,
-            boolean ignoreCurrent) {
-        // First look for next focusable stack on the same display
-        final ActivityDisplay preferredDisplay = currentFocus.getDisplay();
-        final ActivityStack preferredFocusableStack = preferredDisplay.getNextFocusableStack(
-                currentFocus, ignoreCurrent);
-        if (preferredFocusableStack != null) {
-            return preferredFocusableStack;
-        }
-        if (preferredDisplay.supportsSystemDecorations()) {
-            // Stop looking for focusable stack on other displays because the preferred display
-            // supports system decorations. Home activity would be launched on the same display if
-            // no focusable stack found.
-            return null;
-        }
-
-        // Now look through all displays
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityDisplay display = mActivityDisplays.get(i);
-            if (display == preferredDisplay) {
-                // We've already checked this one
-                continue;
-            }
-            final ActivityStack nextFocusableStack = display.getNextFocusableStack(currentFocus,
-                    ignoreCurrent);
-            if (nextFocusableStack != null) {
-                return nextFocusableStack;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Get next valid stack for launching provided activity in the system. This will search across
-     * displays and stacks in last-focused order for a focusable and visible stack, except those
-     * that are on a currently focused display.
-     *
-     * @param r The activity that is being launched.
-     * @param currentFocus The display that previously had focus and thus needs to be ignored when
-     *                     searching for the next candidate.
-     * @return Next valid {@link ActivityStack}, null if not found.
-     */
-    ActivityStack getNextValidLaunchStackLocked(@NonNull ActivityRecord r, int currentFocus) {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityDisplay display = mActivityDisplays.get(i);
-            if (display.mDisplayId == currentFocus) {
-                continue;
-            }
-            final ActivityStack stack = getValidLaunchStackOnDisplay(display.mDisplayId, r,
-                    null /* options */, null /* launchParams */);
-            if (stack != null) {
-                return stack;
-            }
-        }
-        return null;
-    }
-
-    ActivityRecord getDefaultDisplayHomeActivity() {
-        return getDefaultDisplayHomeActivityForUser(mCurrentUser);
-    }
-
-    ActivityRecord getDefaultDisplayHomeActivityForUser(int userId) {
-        return getActivityDisplay(DEFAULT_DISPLAY).getHomeActivityForUser(userId);
-    }
-
-    void resizeStackLocked(ActivityStack stack, Rect bounds, Rect tempTaskBounds,
-            Rect tempTaskInsetBounds, boolean preserveWindows, boolean allowResizeInDockedMode,
-            boolean deferResume) {
-
-        if (stack.inSplitScreenPrimaryWindowingMode()) {
-            resizeDockedStackLocked(bounds, tempTaskBounds, tempTaskInsetBounds, null, null,
-                    preserveWindows, deferResume);
-            return;
-        }
-
-        final boolean splitScreenActive = getDefaultDisplay().hasSplitScreenPrimaryStack();
-        if (!allowResizeInDockedMode
-                && !stack.getWindowConfiguration().tasksAreFloating() && splitScreenActive) {
-            // If the docked stack exists, don't resize non-floating stacks independently of the
-            // size computed from the docked stack size (otherwise they will be out of sync)
-            return;
-        }
-
-        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeStack_" + stack.mStackId);
-        mWindowManager.deferSurfaceLayout();
-        try {
-            if (stack.affectedBySplitScreenResize()) {
-                if (bounds == null && stack.inSplitScreenWindowingMode()) {
-                    // null bounds = fullscreen windowing mode...at least for now.
-                    stack.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
-                } else if (splitScreenActive) {
-                    // If we are in split-screen mode and this stack support split-screen, then
-                    // it should be split-screen secondary mode. i.e. adjacent to the docked stack.
-                    stack.setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
-                }
-            }
-            stack.resize(bounds, tempTaskBounds, tempTaskInsetBounds);
-            if (!deferResume) {
-                stack.ensureVisibleActivitiesConfigurationLocked(
-                        stack.topRunningActivityLocked(), preserveWindows);
-            }
-        } finally {
-            mWindowManager.continueSurfaceLayout();
-            Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
-        }
-    }
-
-    void deferUpdateRecentsHomeStackBounds() {
-        deferUpdateBounds(ACTIVITY_TYPE_RECENTS);
-        deferUpdateBounds(ACTIVITY_TYPE_HOME);
-    }
-
-    void deferUpdateBounds(int activityType) {
-        final ActivityStack stack = getStack(WINDOWING_MODE_UNDEFINED, activityType);
-        if (stack != null) {
-            stack.deferUpdateBounds();
-        }
-    }
-
-    void continueUpdateRecentsHomeStackBounds() {
-        continueUpdateBounds(ACTIVITY_TYPE_RECENTS);
-        continueUpdateBounds(ACTIVITY_TYPE_HOME);
-    }
-
-    void continueUpdateBounds(int activityType) {
-        final ActivityStack stack = getStack(WINDOWING_MODE_UNDEFINED, activityType);
-        if (stack != null) {
-            stack.continueUpdateBounds();
-        }
+    private void continueUpdateRecentsHomeStackBounds() {
+        mRootActivityContainer.continueUpdateBounds(ACTIVITY_TYPE_RECENTS);
+        mRootActivityContainer.continueUpdateBounds(ACTIVITY_TYPE_HOME);
     }
 
     void notifyAppTransitionDone() {
         continueUpdateRecentsHomeStackBounds();
         for (int i = mResizingTasksDuringAnimation.size() - 1; i >= 0; i--) {
             final int taskId = mResizingTasksDuringAnimation.valueAt(i);
-            final TaskRecord task = anyTaskForIdLocked(taskId, MATCH_TASK_IN_STACKS_ONLY);
+            final TaskRecord task =
+                    mRootActivityContainer.anyTaskForId(taskId, MATCH_TASK_IN_STACKS_ONLY);
             if (task != null) {
                 task.setTaskDockedResizing(false);
             }
@@ -2765,7 +1467,8 @@
         try {
             final int windowingMode = fromStack.getWindowingMode();
             final boolean inPinnedWindowingMode = windowingMode == WINDOWING_MODE_PINNED;
-            final ActivityDisplay toDisplay = getActivityDisplay(toDisplayId);
+            final ActivityDisplay toDisplay =
+                    mRootActivityContainer.getActivityDisplay(toDisplayId);
 
             if (windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
                 // Tell the display we are exiting split-screen mode.
@@ -2822,8 +1525,8 @@
                 }
             }
 
-            ensureActivitiesVisibleLocked(null, 0, PRESERVE_WINDOWS);
-            resumeFocusedStacksTopActivitiesLocked();
+            mRootActivityContainer.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS);
+            mRootActivityContainer.resumeFocusedStacksTopActivities();
         } finally {
             mAllowDockedStackResize = true;
             mWindowManager.continueSurfaceLayout();
@@ -2869,7 +1572,7 @@
                 false /* deferResume */);
     }
 
-    private void resizeDockedStackLocked(Rect dockedBounds, Rect tempDockedTaskBounds,
+    void resizeDockedStackLocked(Rect dockedBounds, Rect tempDockedTaskBounds,
             Rect tempDockedTaskInsetBounds, Rect tempOtherTaskBounds, Rect tempOtherTaskInsetBounds,
             boolean preserveWindows, boolean deferResume) {
 
@@ -2878,7 +1581,8 @@
             return;
         }
 
-        final ActivityStack stack = getDefaultDisplay().getSplitScreenPrimaryStack();
+        final ActivityStack stack =
+                mRootActivityContainer.getDefaultDisplay().getSplitScreenPrimaryStack();
         if (stack == null) {
             Slog.w(TAG, "resizeDockedStackLocked: docked stack not found");
             return;
@@ -2917,11 +1621,11 @@
                 // static stacks need to be adjusted so they don't overlap with the docked stack.
                 // We get the bounds to use from window manager which has been adjusted for any
                 // screen controls and is also the same for all stacks.
-                final ActivityDisplay display = getDefaultDisplay();
+                final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
                 final Rect otherTaskRect = new Rect();
                 for (int i = display.getChildCount() - 1; i >= 0; --i) {
                     final ActivityStack current = display.getChildAt(i);
-                    if (current.getWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
+                    if (!current.inSplitScreenSecondaryWindowingMode()) {
                         continue;
                     }
                     if (!current.affectedBySplitScreenResize()) {
@@ -2932,14 +1636,13 @@
                         // interaction.
                         continue;
                     }
-                    // Need to set windowing mode here before we try to get the dock bounds.
-                    current.setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
-                    current.getStackDockedModeBounds(
+                    current.getStackDockedModeBounds(dockedBounds,
                             tempOtherTaskBounds /* currentTempTaskBounds */,
                             tempRect /* outStackBounds */,
-                            otherTaskRect /* outTempTaskBounds */, true /* ignoreVisibility */);
+                            otherTaskRect /* outTempTaskBounds */);
 
-                    resizeStackLocked(current, !tempRect.isEmpty() ? tempRect : null,
+                    mRootActivityContainer.resizeStack(current,
+                            !tempRect.isEmpty() ? tempRect : null,
                             !otherTaskRect.isEmpty() ? otherTaskRect : tempOtherTaskBounds,
                             tempOtherTaskInsetBounds, preserveWindows,
                             true /* allowResizeInDockedMode */, deferResume);
@@ -2957,7 +1660,8 @@
 
     void resizePinnedStackLocked(Rect pinnedBounds, Rect tempPinnedTaskBounds) {
         // TODO(multi-display): Pinned stack display should be passed in.
-        final PinnedActivityStack stack = getDefaultDisplay().getPinnedStack();
+        final PinnedActivityStack stack =
+                mRootActivityContainer.getDefaultDisplay().getPinnedStack();
         if (stack == null) {
             Slog.w(TAG, "resizePinnedStackLocked: pinned stack not found");
             return;
@@ -3038,22 +1742,6 @@
     }
 
     /**
-     * Removes stacks in the input windowing modes from the system if they are of activity type
-     * ACTIVITY_TYPE_STANDARD or ACTIVITY_TYPE_UNDEFINED
-     */
-    void removeStacksInWindowingModes(int... windowingModes) {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            mActivityDisplays.get(i).removeStacksInWindowingModes(windowingModes);
-        }
-    }
-
-    void removeStacksWithActivityTypes(int... activityTypes) {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            mActivityDisplays.get(i).removeStacksWithActivityTypes(activityTypes);
-        }
-    }
-
-    /**
      * See {@link #removeTaskByIdLocked(int, boolean, boolean, boolean)}
      */
     boolean removeTaskByIdLocked(int taskId, boolean killProcess, boolean removeFromRecents,
@@ -3074,7 +1762,8 @@
      */
     boolean removeTaskByIdLocked(int taskId, boolean killProcess, boolean removeFromRecents,
             boolean pauseImmediately, String reason) {
-        final TaskRecord tr = anyTaskForIdLocked(taskId, MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
+        final TaskRecord tr =
+                mRootActivityContainer.anyTaskForId(taskId, MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
         if (tr != null) {
             tr.removeTaskActivitiesLocked(pauseImmediately, reason);
             cleanUpRemovedTaskLocked(tr, killProcess, removeFromRecents);
@@ -3163,7 +1852,8 @@
      * @return true if the task has been restored successfully.
      */
     boolean restoreRecentTaskLocked(TaskRecord task, ActivityOptions aOptions, boolean onTop) {
-        final ActivityStack stack = getLaunchStack(null, aOptions, task, onTop);
+        final ActivityStack stack =
+                mRootActivityContainer.getLaunchStack(null, aOptions, task, onTop);
         final ActivityStack currentStack = task.getStack();
         if (currentStack != null) {
             // Task has already been restored once. See if we need to do anything more
@@ -3183,7 +1873,7 @@
                 "Added restored task=" + task + " to stack=" + stack);
         final ArrayList<ActivityRecord> activities = task.mActivities;
         for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
-            activities.get(activityNdx).createWindowContainer();
+            activities.get(activityNdx).createAppWindowToken();
         }
         return true;
     }
@@ -3205,39 +1895,6 @@
     }
 
     /**
-     * Move stack with all its existing content to specified display.
-     * @param stackId Id of stack to move.
-     * @param displayId Id of display to move stack to.
-     * @param onTop Indicates whether container should be place on top or on bottom.
-     */
-    void moveStackToDisplayLocked(int stackId, int displayId, boolean onTop) {
-        final ActivityDisplay activityDisplay = getActivityDisplayOrCreateLocked(displayId);
-        if (activityDisplay == null) {
-            throw new IllegalArgumentException("moveStackToDisplayLocked: Unknown displayId="
-                    + displayId);
-        }
-        final ActivityStack stack = getStack(stackId);
-        if (stack == null) {
-            throw new IllegalArgumentException("moveStackToDisplayLocked: Unknown stackId="
-                    + stackId);
-        }
-
-        final ActivityDisplay currentDisplay = stack.getDisplay();
-        if (currentDisplay == null) {
-            throw new IllegalStateException("moveStackToDisplayLocked: Stack with stack=" + stack
-                    + " is not attached to any display.");
-        }
-
-        if (currentDisplay.mDisplayId == displayId) {
-            throw new IllegalArgumentException("Trying to move stack=" + stack
-                    + " to its current displayId=" + displayId);
-        }
-
-        stack.reparent(activityDisplay, onTop, false /* displayRemoved */);
-        // TODO(multi-display): resize stacks properly if moved from split-screen.
-    }
-
-    /**
      * Returns the reparent target stack, creating the stack if necessary.  This call also enforces
      * the various checks on tasks that are going to be reparented from one stack to another.
      */
@@ -3289,159 +1946,6 @@
         return stack;
     }
 
-    boolean moveTopStackActivityToPinnedStackLocked(int stackId, Rect destBounds) {
-        final ActivityStack stack = getStack(stackId);
-        if (stack == null) {
-            throw new IllegalArgumentException(
-                    "moveTopStackActivityToPinnedStackLocked: Unknown stackId=" + stackId);
-        }
-
-        final ActivityRecord r = stack.topRunningActivityLocked();
-        if (r == null) {
-            Slog.w(TAG, "moveTopStackActivityToPinnedStackLocked: No top running activity"
-                    + " in stack=" + stack);
-            return false;
-        }
-
-        if (!mService.mForceResizableActivities && !r.supportsPictureInPicture()) {
-            Slog.w(TAG,
-                    "moveTopStackActivityToPinnedStackLocked: Picture-In-Picture not supported for "
-                            + " r=" + r);
-            return false;
-        }
-
-        moveActivityToPinnedStackLocked(r, null /* sourceBounds */, 0f /* aspectRatio */,
-                "moveTopActivityToPinnedStack");
-        return true;
-    }
-
-    void moveActivityToPinnedStackLocked(ActivityRecord r, Rect sourceHintBounds, float aspectRatio,
-            String reason) {
-
-        mWindowManager.deferSurfaceLayout();
-
-        final ActivityDisplay display = r.getStack().getDisplay();
-        PinnedActivityStack stack = display.getPinnedStack();
-
-        // This will clear the pinned stack by moving an existing task to the full screen stack,
-        // ensuring only one task is present.
-        if (stack != null) {
-            moveTasksToFullscreenStackLocked(stack, !ON_TOP);
-        }
-
-        // Need to make sure the pinned stack exist so we can resize it below...
-        stack = display.getOrCreateStack(WINDOWING_MODE_PINNED, r.getActivityType(), ON_TOP);
-
-        // Calculate the target bounds here before the task is reparented back into pinned windowing
-        // mode (which will reset the saved bounds)
-        final Rect destBounds = stack.getDefaultPictureInPictureBounds(aspectRatio);
-
-        try {
-            final TaskRecord task = r.getTask();
-            // Resize the pinned stack to match the current size of the task the activity we are
-            // going to be moving is currently contained in. We do this to have the right starting
-            // animation bounds for the pinned stack to the desired bounds the caller wants.
-            resizeStackLocked(stack, task.getOverrideBounds(), null /* tempTaskBounds */,
-                    null /* tempTaskInsetBounds */, !PRESERVE_WINDOWS,
-                    true /* allowResizeInDockedMode */, !DEFER_RESUME);
-
-            if (task.mActivities.size() == 1) {
-                // Defer resume until below, and do not schedule PiP changes until we animate below
-                task.reparent(stack, ON_TOP, REPARENT_MOVE_STACK_TO_FRONT, !ANIMATE, DEFER_RESUME,
-                        false /* schedulePictureInPictureModeChange */, reason);
-            } else {
-                // There are multiple activities in the task and moving the top activity should
-                // reveal/leave the other activities in their original task.
-
-                // Currently, we don't support reparenting activities across tasks in two different
-                // stacks, so instead, just create a new task in the same stack, reparent the
-                // activity into that task, and then reparent the whole task to the new stack. This
-                // ensures that all the necessary work to migrate states in the old and new stacks
-                // is also done.
-                final TaskRecord newTask = task.getStack().createTaskRecord(
-                        getNextTaskIdForUserLocked(r.userId), r.info, r.intent, null, null, true);
-                r.reparent(newTask, MAX_VALUE, "moveActivityToStack");
-
-                // Defer resume until below, and do not schedule PiP changes until we animate below
-                newTask.reparent(stack, ON_TOP, REPARENT_MOVE_STACK_TO_FRONT, !ANIMATE,
-                        DEFER_RESUME, false /* schedulePictureInPictureModeChange */, reason);
-            }
-
-            // Reset the state that indicates it can enter PiP while pausing after we've moved it
-            // to the pinned stack
-            r.supportsEnterPipOnTaskSwitch = false;
-        } finally {
-            mWindowManager.continueSurfaceLayout();
-        }
-
-        stack.animateResizePinnedStack(sourceHintBounds, destBounds, -1 /* animationDuration */,
-                true /* fromFullscreen */);
-
-        // Update the visibility of all activities after the they have been reparented to the new
-        // stack.  This MUST run after the animation above is scheduled to ensure that the windows
-        // drawn signal is scheduled after the bounds animation start call on the bounds animator
-        // thread.
-        ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
-        resumeFocusedStacksTopActivitiesLocked();
-
-        mService.getTaskChangeNotificationController().notifyActivityPinned(r);
-    }
-
-    ActivityRecord findTaskLocked(ActivityRecord r, int preferredDisplayId) {
-        if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Looking for task of " + r);
-        mTmpFindTaskResult.clear();
-
-        // Looking up task on preferred display first
-        final ActivityDisplay preferredDisplay = getActivityDisplay(preferredDisplayId);
-        if (preferredDisplay != null) {
-            preferredDisplay.findTaskLocked(r, true /* isPreferredDisplay */, mTmpFindTaskResult);
-            if (mTmpFindTaskResult.mIdealMatch) {
-                return mTmpFindTaskResult.mRecord;
-            }
-        }
-
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            if (display.mDisplayId == preferredDisplayId) {
-                continue;
-            }
-
-            display.findTaskLocked(r, false /* isPreferredDisplay */, mTmpFindTaskResult);
-            if (mTmpFindTaskResult.mIdealMatch) {
-                return mTmpFindTaskResult.mRecord;
-            }
-        }
-
-        if (DEBUG_TASKS && mTmpFindTaskResult.mRecord == null) Slog.d(TAG_TASKS, "No task found");
-        return mTmpFindTaskResult.mRecord;
-    }
-
-    ActivityRecord findActivityLocked(Intent intent, ActivityInfo info,
-            boolean compareIntentFilters) {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                final ActivityRecord ar = stack.findActivityLocked(
-                        intent, info, compareIntentFilters);
-                if (ar != null) {
-                    return ar;
-                }
-            }
-        }
-        return null;
-    }
-
-    boolean hasAwakeDisplay() {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            if (!display.shouldSleep()) {
-                return true;
-            }
-        }
-        return false;
-    }
-
     void goingToSleepLocked() {
         scheduleSleepTimeout();
         if (!mGoingToSleep.isHeld()) {
@@ -3455,24 +1959,19 @@
             }
         }
 
-        applySleepTokensLocked(false /* applyToStacks */);
+        mRootActivityContainer.applySleepTokens(false /* applyToStacks */);
 
         checkReadyForSleepLocked(true /* allowDelay */);
     }
 
-    void prepareForShutdownLocked() {
-        for (int i = 0; i < mActivityDisplays.size(); i++) {
-            createSleepTokenLocked("shutdown", mActivityDisplays.get(i).mDisplayId);
-        }
-    }
-
     boolean shutdownLocked(int timeout) {
         goingToSleepLocked();
 
         boolean timedout = false;
         final long endTime = System.currentTimeMillis() + timeout;
         while (true) {
-            if (!putStacksToSleepLocked(true /* allowDelay */, true /* shuttingDown */)) {
+            if (!mRootActivityContainer.putStacksToSleep(
+                    true /* allowDelay */, true /* shuttingDown */)) {
                 long timeRemaining = endTime - System.currentTimeMillis();
                 if (timeRemaining > 0) {
                     try {
@@ -3502,54 +2001,9 @@
         }
     }
 
-    void applySleepTokensLocked(boolean applyToStacks) {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            // Set the sleeping state of the display.
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            final boolean displayShouldSleep = display.shouldSleep();
-            if (displayShouldSleep == display.isSleeping()) {
-                continue;
-            }
-            display.setIsSleeping(displayShouldSleep);
-
-            if (!applyToStacks) {
-                continue;
-            }
-
-            // Set the sleeping state of the stacks on the display.
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                if (displayShouldSleep) {
-                    stack.goToSleepIfPossible(false /* shuttingDown */);
-                } else {
-                    stack.awakeFromSleepingLocked();
-                    if (stack.isFocusedStackOnDisplay() && !getKeyguardController()
-                            .isKeyguardOrAodShowing(display.mDisplayId)) {
-                        // If the keyguard is unlocked - resume immediately.
-                        // It is possible that the display will not be awake at the time we
-                        // process the keyguard going away, which can happen before the sleep token
-                        // is released. As a result, it is important we resume the activity here.
-                        resumeFocusedStacksTopActivitiesLocked();
-                    }
-                }
-            }
-
-            if (displayShouldSleep || mGoingToSleepActivities.isEmpty()) {
-                continue;
-            }
-            // The display is awake now, so clean up the going to sleep list.
-            for (Iterator<ActivityRecord> it = mGoingToSleepActivities.iterator(); it.hasNext(); ) {
-                final ActivityRecord r = it.next();
-                if (r.getDisplayId() == display.mDisplayId) {
-                    it.remove();
-                }
-            }
-        }
-    }
-
     void activitySleptLocked(ActivityRecord r) {
         mGoingToSleepActivities.remove(r);
-        final ActivityStack s = r.getStack();
+        final ActivityStack s = r.getActivityStack();
         if (s != null) {
             s.checkReadyForSleep();
         } else {
@@ -3563,12 +2017,13 @@
             return;
         }
 
-        if (!putStacksToSleepLocked(allowDelay, false /* shuttingDown */)) {
+        if (!mRootActivityContainer.putStacksToSleep(
+                allowDelay, false /* shuttingDown */)) {
             return;
         }
 
         // Send launch end powerhint before going sleep
-        sendPowerHintForLaunchEndIfNeeded();
+        mRootActivityContainer.sendPowerHintForLaunchEndIfNeeded();
 
         removeSleepTimeouts();
 
@@ -3580,55 +2035,27 @@
         }
     }
 
-    // Tries to put all activity stacks to sleep. Returns true if all stacks were
-    // successfully put to sleep.
-    private boolean putStacksToSleepLocked(boolean allowDelay, boolean shuttingDown) {
-        boolean allSleep = true;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                if (allowDelay) {
-                    allSleep &= stack.goToSleepIfPossible(shuttingDown);
-                } else {
-                    stack.goToSleep();
-                }
-            }
-        }
-        return allSleep;
-    }
-
     boolean reportResumedActivityLocked(ActivityRecord r) {
         // A resumed activity cannot be stopping. remove from list
         mStoppingActivities.remove(r);
 
-        final ActivityStack stack = r.getStack();
-        if (isTopDisplayFocusedStack(stack)) {
+        final ActivityStack stack = r.getActivityStack();
+        if (mRootActivityContainer.isTopDisplayFocusedStack(stack)) {
             mService.updateUsageStats(r, true);
         }
         if (stack.getDisplay().allResumedActivitiesComplete()) {
-            ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+            mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
             // Make sure activity & window visibility should be identical
             // for all displays in this stage.
-            executeAppTransitionForAllDisplay();
+            mRootActivityContainer.executeAppTransitionForAllDisplay();
             return true;
         }
         return false;
     }
 
-    void handleAppCrashLocked(WindowProcessController app) {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.handleAppCrashLocked(app);
-            }
-        }
-    }
-
     // Called when WindowManager has finished animating the launchingBehind activity to the back.
     private void handleLaunchTaskBehindCompleteLocked(ActivityRecord r) {
-        final TaskRecord task = r.getTask();
+        final TaskRecord task = r.getTaskRecord();
         final ActivityStack stack = task.getStack();
 
         r.mLaunchTaskBehind = false;
@@ -3640,7 +2067,7 @@
         // task has been shown briefly
         final ActivityRecord top = stack.getTopActivity();
         if (top != null) {
-            top.getTask().touchActiveTime();
+            top.getTaskRecord().touchActiveTime();
         }
     }
 
@@ -3648,157 +2075,9 @@
         mHandler.obtainMessage(LAUNCH_TASK_BEHIND_COMPLETE, token).sendToTarget();
     }
 
-    /**
-     * Make sure that all activities that need to be visible in the system actually are and update
-     * their configuration.
-     */
-    void ensureActivitiesVisibleLocked(ActivityRecord starting, int configChanges,
-            boolean preserveWindows) {
-        ensureActivitiesVisibleLocked(starting, configChanges, preserveWindows,
-                true /* notifyClients */);
-    }
-
-    /**
-     * @see #ensureActivitiesVisibleLocked(ActivityRecord, int, boolean)
-     */
-    void ensureActivitiesVisibleLocked(ActivityRecord starting, int configChanges,
-            boolean preserveWindows, boolean notifyClients) {
-        getKeyguardController().beginActivityVisibilityUpdate();
-        try {
-            // First the front stacks. In case any are not fullscreen and are in front of home.
-            for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-                final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-                for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                    final ActivityStack stack = display.getChildAt(stackNdx);
-                    stack.ensureActivitiesVisibleLocked(starting, configChanges, preserveWindows,
-                            notifyClients);
-                }
-            }
-        } finally {
-            getKeyguardController().endActivityVisibilityUpdate();
-        }
-    }
-
-    void addStartingWindowsForVisibleActivities(boolean taskSwitch) {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.addStartingWindowsForVisibleActivities(taskSwitch);
-            }
-        }
-    }
-
-    void invalidateTaskLayers() {
-        mTaskLayersChanged = true;
-    }
-
-    void rankTaskLayersIfNeeded() {
-        if (!mTaskLayersChanged) {
-            return;
-        }
-        mTaskLayersChanged = false;
-        for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); displayNdx++) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            int baseLayer = 0;
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                baseLayer += stack.rankTaskLayers(baseLayer);
-            }
-        }
-    }
-
-    void clearOtherAppTimeTrackers(AppTimeTracker except) {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.clearOtherAppTimeTrackers(except);
-            }
-        }
-    }
-
-    void scheduleDestroyAllActivities(WindowProcessController app, String reason) {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.scheduleDestroyActivities(app, reason);
-            }
-        }
-    }
-
-    void releaseSomeActivitiesLocked(WindowProcessController app, String reason) {
-        // Tasks is non-null only if two or more tasks are found.
-        ArraySet<TaskRecord> tasks = app.getReleaseSomeActivitiesTasks();
-        if (tasks == null) {
-            if (DEBUG_RELEASE) Slog.d(TAG_RELEASE, "Didn't find two or more tasks to release");
-            return;
-        }
-        // If we have activities in multiple tasks that are in a position to be destroyed,
-        // let's iterate through the tasks and release the oldest one.
-        final int numDisplays = mActivityDisplays.size();
-        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            final int stackCount = display.getChildCount();
-            // Step through all stacks starting from behind, to hit the oldest things first.
-            for (int stackNdx = 0; stackNdx < stackCount; stackNdx++) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                // Try to release activities in this stack; if we manage to, we are done.
-                if (stack.releaseSomeActivitiesLocked(app, tasks, reason) > 0) {
-                    return;
-                }
-            }
-        }
-    }
-
-    boolean switchUserLocked(int userId, UserState uss) {
-        final int focusStackId = getTopDisplayFocusedStack().getStackId();
-        // We dismiss the docked stack whenever we switch users.
-        final ActivityStack dockedStack = getDefaultDisplay().getSplitScreenPrimaryStack();
-        if (dockedStack != null) {
-            moveTasksToFullscreenStackLocked(dockedStack, dockedStack.isFocusedStackOnDisplay());
-        }
-        // Also dismiss the pinned stack whenever we switch users. Removing the pinned stack will
-        // also cause all tasks to be moved to the fullscreen stack at a position that is
-        // appropriate.
-        removeStacksInWindowingModes(WINDOWING_MODE_PINNED);
-
-        mUserStackInFront.put(mCurrentUser, focusStackId);
-        final int restoreStackId =
-                mUserStackInFront.get(userId, getDefaultDisplay().getHomeStack().mStackId);
-        mCurrentUser = userId;
-
-        mStartingUsers.add(uss);
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                stack.switchUserLocked(userId);
-                TaskRecord task = stack.topTask();
-                if (task != null) {
-                    stack.positionChildWindowContainerAtTop(task);
-                }
-            }
-        }
-
-        ActivityStack stack = getStack(restoreStackId);
-        if (stack == null) {
-            stack = getDefaultDisplay().getHomeStack();
-        }
-        final boolean homeInFront = stack.isActivityTypeHome();
-        if (stack.isOnHomeDisplay()) {
-            stack.moveToFront("switchUserOnHomeDisplay");
-        } else {
-            // Stack was moved to another display while user was swapped out.
-            resumeHomeActivity(null, "switchUserOnOtherDisplay", DEFAULT_DISPLAY);
-        }
-        return homeInFront;
-    }
-
     /** Checks whether the userid is a profile of the current user. */
     boolean isCurrentProfileLocked(int userId) {
-        if (userId == mCurrentUser) return true;
+        if (userId == mRootActivityContainer.mCurrentUser) return true;
         return mService.mAmInternal.isCurrentProfile(userId);
     }
 
@@ -3823,7 +2102,7 @@
             boolean remove, boolean processPausingActivities) {
         ArrayList<ActivityRecord> stops = null;
 
-        final boolean nowVisible = allResumedActivitiesVisible();
+        final boolean nowVisible = mRootActivityContainer.allResumedActivitiesVisible();
         for (int activityNdx = mStoppingActivities.size() - 1; activityNdx >= 0; --activityNdx) {
             ActivityRecord s = mStoppingActivities.get(activityNdx);
             boolean waitingVisible = mActivitiesWaitingForVisibleActivity.contains(s);
@@ -3843,7 +2122,7 @@
                 }
             }
             if (remove) {
-                final ActivityStack stack = s.getStack();
+                final ActivityStack stack = s.getActivityStack();
                 final boolean shouldSleepOrShutDown = stack != null
                         ? stack.shouldSleepOrShutDownActivities()
                         : mService.isSleepingOrShuttingDownLocked();
@@ -3873,134 +2152,26 @@
         return stops;
     }
 
-    void validateTopActivitiesLocked() {
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                final ActivityRecord r = stack.topRunningActivityLocked();
-                final ActivityState state = r == null ? DESTROYED : r.getState();
-                if (isTopDisplayFocusedStack(stack)) {
-                    if (r == null) Slog.e(TAG,
-                            "validateTop...: null top activity, stack=" + stack);
-                    else {
-                        final ActivityRecord pausing = stack.mPausingActivity;
-                        if (pausing != null && pausing == r) Slog.e(TAG,
-                                "validateTop...: top stack has pausing activity r=" + r
-                                + " state=" + state);
-                        if (state != INITIALIZING && state != RESUMED) Slog.e(TAG,
-                                "validateTop...: activity in front not resumed r=" + r
-                                + " state=" + state);
-                    }
-                } else {
-                    final ActivityRecord resumed = stack.getResumedActivity();
-                    if (resumed != null && resumed == r) Slog.e(TAG,
-                            "validateTop...: back stack has resumed activity r=" + r
-                            + " state=" + state);
-                    if (r != null && (state == INITIALIZING || state == RESUMED)) Slog.e(TAG,
-                            "validateTop...: activity in back resumed r=" + r + " state=" + state);
-                }
-            }
-        }
-    }
-
-    public void dumpDisplays(PrintWriter pw) {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityDisplay display = mActivityDisplays.get(i);
-            pw.print("[id:" + display.mDisplayId + " stacks:");
-            display.dumpStacks(pw);
-            pw.print("]");
-        }
-    }
-
     public void dump(PrintWriter pw, String prefix) {
         pw.println();
         pw.println("ActivityStackSupervisor state:");
-        pw.print(prefix);
-        pw.println("topDisplayFocusedStack=" + getTopDisplayFocusedStack());
+        mRootActivityContainer.dump(pw, prefix);
         pw.print(prefix);
         pw.println("mCurTaskIdForUser=" + mCurTaskIdForUser);
-        pw.print(prefix); pw.println("mUserStackInFront=" + mUserStackInFront);
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityDisplay display = mActivityDisplays.get(i);
-            display.dump(pw, prefix);
-        }
+        pw.println(prefix + "mUserStackInFront=" + mRootActivityContainer.mUserStackInFront);
         if (!mWaitingForActivityVisible.isEmpty()) {
-            pw.print(prefix); pw.println("mWaitingForActivityVisible=");
+            pw.println(prefix + "mWaitingForActivityVisible=");
             for (int i = 0; i < mWaitingForActivityVisible.size(); ++i) {
-                pw.print(prefix); pw.print(prefix); mWaitingForActivityVisible.get(i).dump(pw, prefix);
+                pw.print(prefix + prefix); mWaitingForActivityVisible.get(i).dump(pw, prefix);
             }
         }
         pw.print(prefix); pw.print("isHomeRecentsComponent=");
-        pw.print(mRecentTasks.isRecentsComponentHomeActivity(mCurrentUser));
+        pw.print(mRecentTasks.isRecentsComponentHomeActivity(mRootActivityContainer.mCurrentUser));
 
         getKeyguardController().dump(pw, prefix);
         mService.getLockTaskController().dump(pw, prefix);
     }
 
-    public void writeToProto(ProtoOutputStream proto, long fieldId) {
-        final long token = proto.start(fieldId);
-        super.writeToProto(proto, CONFIGURATION_CONTAINER, false /* trim */);
-        for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
-            final ActivityDisplay activityDisplay = mActivityDisplays.get(displayNdx);
-            activityDisplay.writeToProto(proto, DISPLAYS);
-        }
-        getKeyguardController().writeToProto(proto, KEYGUARD_CONTROLLER);
-        // TODO(b/111541062): Update tests to look for resumed activities on all displays
-        final ActivityStack focusedStack = getTopDisplayFocusedStack();
-        if (focusedStack != null) {
-            proto.write(FOCUSED_STACK_ID, focusedStack.mStackId);
-            final ActivityRecord focusedActivity = focusedStack.getDisplay().getResumedActivity();
-            if (focusedActivity != null) {
-                focusedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
-            }
-        } else {
-            proto.write(FOCUSED_STACK_ID, INVALID_STACK_ID);
-        }
-        proto.write(IS_HOME_RECENTS_COMPONENT,
-                mRecentTasks.isRecentsComponentHomeActivity(mCurrentUser));
-        mService.getActivityStartController().writeToProto(proto, PENDING_ACTIVITIES);
-        proto.end(token);
-    }
-
-    /**
-     * Dump all connected displays' configurations.
-     * @param prefix Prefix to apply to each line of the dump.
-     */
-    void dumpDisplayConfigs(PrintWriter pw, String prefix) {
-        pw.print(prefix); pw.println("Display override configurations:");
-        final int displayCount = mActivityDisplays.size();
-        for (int i = 0; i < displayCount; i++) {
-            final ActivityDisplay activityDisplay = mActivityDisplays.get(i);
-            pw.print(prefix); pw.print("  "); pw.print(activityDisplay.mDisplayId); pw.print(": ");
-                    pw.println(activityDisplay.getOverrideConfiguration());
-        }
-    }
-
-    /**
-     * Dumps the activities matching the given {@param name} in the either the focused stack
-     * or all visible stacks if {@param dumpVisibleStacks} is true.
-     */
-    ArrayList<ActivityRecord> getDumpActivitiesLocked(String name, boolean dumpVisibleStacksOnly,
-            boolean dumpFocusedStackOnly) {
-        if (dumpFocusedStackOnly) {
-            return getTopDisplayFocusedStack().getDumpActivitiesLocked(name);
-        } else {
-            ArrayList<ActivityRecord> activities = new ArrayList<>();
-            int numDisplays = mActivityDisplays.size();
-            for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
-                final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-                for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                    final ActivityStack stack = display.getChildAt(stackNdx);
-                    if (!dumpVisibleStacksOnly || stack.shouldBeVisible(null)) {
-                        activities.addAll(stack.getDumpActivitiesLocked(name));
-                    }
-                }
-            }
-            return activities;
-        }
-    }
-
     static boolean printThisActivity(PrintWriter pw, ActivityRecord activity, String dumpPackage,
             boolean needSep, String prefix) {
         if (activity != null) {
@@ -4016,73 +2187,6 @@
         return false;
     }
 
-    boolean dumpActivitiesLocked(FileDescriptor fd, PrintWriter pw, boolean dumpAll,
-            boolean dumpClient, String dumpPackage) {
-        boolean printed = false;
-        boolean needSep = false;
-        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
-            ActivityDisplay activityDisplay = mActivityDisplays.get(displayNdx);
-            pw.print("Display #"); pw.print(activityDisplay.mDisplayId);
-                    pw.println(" (activities from top to bottom):");
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                pw.println();
-                pw.println("  Stack #" + stack.mStackId
-                        + ": type=" + activityTypeToString(stack.getActivityType())
-                        + " mode=" + windowingModeToString(stack.getWindowingMode()));
-                pw.println("  isSleeping=" + stack.shouldSleepActivities());
-                pw.println("  mBounds=" + stack.getOverrideBounds());
-
-                printed |= stack.dumpActivitiesLocked(fd, pw, dumpAll, dumpClient, dumpPackage,
-                        needSep);
-
-                printed |= dumpHistoryList(fd, pw, stack.mLRUActivities, "    ", "Run", false,
-                        !dumpAll, false, dumpPackage, true,
-                        "    Running activities (most recent first):", null);
-
-                needSep = printed;
-                boolean pr = printThisActivity(pw, stack.mPausingActivity, dumpPackage, needSep,
-                        "    mPausingActivity: ");
-                if (pr) {
-                    printed = true;
-                    needSep = false;
-                }
-                pr = printThisActivity(pw, stack.getResumedActivity(), dumpPackage, needSep,
-                        "    mResumedActivity: ");
-                if (pr) {
-                    printed = true;
-                    needSep = false;
-                }
-                if (dumpAll) {
-                    pr = printThisActivity(pw, stack.mLastPausedActivity, dumpPackage, needSep,
-                            "    mLastPausedActivity: ");
-                    if (pr) {
-                        printed = true;
-                        needSep = true;
-                    }
-                    printed |= printThisActivity(pw, stack.mLastNoHistoryActivity, dumpPackage,
-                            needSep, "    mLastNoHistoryActivity: ");
-                }
-                needSep = printed;
-            }
-            printThisActivity(pw, activityDisplay.getResumedActivity(), dumpPackage, needSep,
-                    " ResumedActivity:");
-        }
-
-        printed |= dumpHistoryList(fd, pw, mFinishingActivities, "  ", "Fin", false, !dumpAll,
-                false, dumpPackage, true, "  Activities waiting to finish:", null);
-        printed |= dumpHistoryList(fd, pw, mStoppingActivities, "  ", "Stop", false, !dumpAll,
-                false, dumpPackage, true, "  Activities waiting to stop:", null);
-        printed |= dumpHistoryList(fd, pw, mActivitiesWaitingForVisibleActivity, "  ", "Wait",
-                false, !dumpAll, false, dumpPackage, true,
-                "  Activities waiting for another to become visible:", null);
-        printed |= dumpHistoryList(fd, pw, mGoingToSleepActivities, "  ", "Sleep", false, !dumpAll,
-                false, dumpPackage, true, "  Activities waiting to sleep:", null);
-
-        return printed;
-    }
-
     static boolean dumpHistoryList(FileDescriptor fd, PrintWriter pw, List<ActivityRecord> list,
             String prefix, String label, boolean complete, boolean brief, boolean client,
             String dumpPackage, boolean needNL, String header, TaskRecord lastTask) {
@@ -4108,8 +2212,8 @@
                 pw.println(header);
                 header = null;
             }
-            if (lastTask != r.getTask()) {
-                lastTask = r.getTask();
+            if (lastTask != r.getTaskRecord()) {
+                lastTask = r.getTaskRecord();
                 pw.print(prefix);
                 pw.print(full ? "* " : "  ");
                 pw.println(lastTask);
@@ -4192,294 +2296,6 @@
         mHandler.sendEmptyMessageDelayed(SLEEP_TIMEOUT_MSG, SLEEP_TIMEOUT);
     }
 
-    @Override
-    public void onDisplayAdded(int displayId) {
-        if (DEBUG_STACK) Slog.v(TAG, "Display added displayId=" + displayId);
-        synchronized (mService.mGlobalLock) {
-            getActivityDisplayOrCreateLocked(displayId);
-            // Do not start home before booting, or it may accidentally finish booting before it
-            // starts. Instead, we expect home activities to be launched when the system is ready
-            // (ActivityManagerService#systemReady).
-            if (mService.isBooted() || mService.isBooting()) {
-                startHomeOnDisplay(mCurrentUser, "displayAdded", displayId);
-            }
-        }
-    }
-
-    @Override
-    public void onDisplayRemoved(int displayId) {
-        if (DEBUG_STACK) Slog.v(TAG, "Display removed displayId=" + displayId);
-        if (displayId == DEFAULT_DISPLAY) {
-            throw new IllegalArgumentException("Can't remove the primary display.");
-        }
-
-        synchronized (mService.mGlobalLock) {
-            final ActivityDisplay activityDisplay = getActivityDisplay(displayId);
-            if (activityDisplay == null) {
-                return;
-            }
-
-            activityDisplay.remove();
-        }
-    }
-
-    @Override
-    public void onDisplayChanged(int displayId) {
-        if (DEBUG_STACK) Slog.v(TAG, "Display changed displayId=" + displayId);
-        synchronized (mService.mGlobalLock) {
-            final ActivityDisplay activityDisplay = getActivityDisplay(displayId);
-            if (activityDisplay != null) {
-                activityDisplay.onDisplayChanged();
-            }
-        }
-    }
-
-    /** Check if display with specified id is added to the list. */
-    boolean isDisplayAdded(int displayId) {
-        return getActivityDisplayOrCreateLocked(displayId) != null;
-    }
-
-    // TODO: Look into consolidating with getActivityDisplayOrCreateLocked()
-    ActivityDisplay getActivityDisplay(int displayId) {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityDisplay activityDisplay = mActivityDisplays.get(i);
-            if (activityDisplay.mDisplayId == displayId) {
-                return activityDisplay;
-            }
-        }
-        return null;
-    }
-
-    // TODO(multi-display): Look at all callpoints to make sure they make sense in multi-display.
-    ActivityDisplay getDefaultDisplay() {
-        return mDefaultDisplay;
-    }
-
-    /**
-     * Get an existing instance of {@link ActivityDisplay} or create new if there is a
-     * corresponding record in display manager.
-     */
-    // TODO: Look into consolidating with getActivityDisplay()
-    ActivityDisplay getActivityDisplayOrCreateLocked(int displayId) {
-        ActivityDisplay activityDisplay = getActivityDisplay(displayId);
-        if (activityDisplay != null) {
-            return activityDisplay;
-        }
-        if (mDisplayManager == null) {
-            // The system isn't fully initialized yet.
-            return null;
-        }
-        final Display display = mDisplayManager.getDisplay(displayId);
-        if (display == null) {
-            // The display is not registered in DisplayManager.
-            return null;
-        }
-        // The display hasn't been added to ActivityManager yet, create a new record now.
-        activityDisplay = new ActivityDisplay(this, display);
-        addChild(activityDisplay, ActivityDisplay.POSITION_BOTTOM);
-        return activityDisplay;
-    }
-
-    /**
-     * Get an existing instance of {@link ActivityDisplay} that has the given uniqueId. Unique ID is
-     * defined in {@link DisplayInfo#uniqueId}.
-     *
-     * @param uniqueId the unique ID of the display
-     * @return the {@link ActivityDisplay} or {@code null} if nothing is found.
-     */
-    ActivityDisplay getActivityDisplay(String uniqueId) {
-        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
-            final ActivityDisplay display = mActivityDisplays.get(i);
-            final boolean isValid = display.mDisplay.isValid();
-            if (isValid && display.mDisplay.getUniqueId().equals(uniqueId)) {
-                return display;
-            }
-        }
-
-        return null;
-    }
-
-    boolean startHomeOnAllDisplays(int userId, String reason) {
-        boolean homeStarted = false;
-        for (int i = mActivityDisplays.size() - 1; i >= 0; i--) {
-            final int displayId = mActivityDisplays.get(i).mDisplayId;
-            homeStarted |= startHomeOnDisplay(userId, reason, displayId);
-        }
-        return homeStarted;
-    }
-
-    /**
-     * This starts home activity on displays that can have system decorations and only if the
-     * home activity can have multiple instances.
-     */
-    boolean startHomeOnDisplay(int userId, String reason, int displayId) {
-        final Intent homeIntent = mService.getHomeIntent();
-        final ActivityInfo aInfo = resolveHomeActivity(userId, homeIntent);
-        if (aInfo == null) {
-            return false;
-        }
-
-        if (!canStartHomeOnDisplay(aInfo, displayId, false /* allowInstrumenting */)) {
-            return false;
-        }
-
-        // Update the reason for ANR debugging to verify if the user activity is the one that
-        // actually launched.
-        final String myReason = reason + ":" + userId + ":" + UserHandle.getUserId(
-                aInfo.applicationInfo.uid);
-        mService.getActivityStartController().startHomeActivity(homeIntent, aInfo, myReason,
-                displayId);
-        return true;
-    }
-
-    /**
-     * This resolves the home activity info and updates the home component of the given intent.
-     * @return the home activity info if any.
-     */
-    private ActivityInfo resolveHomeActivity(int userId, Intent homeIntent) {
-        final int flags = ActivityManagerService.STOCK_PM_FLAGS;
-        final ComponentName comp = homeIntent.getComponent();
-        ActivityInfo aInfo = null;
-        try {
-            if (comp != null) {
-                // Factory test.
-                aInfo = AppGlobals.getPackageManager().getActivityInfo(comp, flags, userId);
-            } else {
-                final String resolvedType =
-                        homeIntent.resolveTypeIfNeeded(mService.mContext.getContentResolver());
-                final ResolveInfo info = AppGlobals.getPackageManager()
-                        .resolveIntent(homeIntent, resolvedType, flags, userId);
-                if (info != null) {
-                    aInfo = info.activityInfo;
-                }
-            }
-        } catch (RemoteException e) {
-            // ignore
-        }
-
-        if (aInfo == null) {
-            Slog.wtf(TAG, "No home screen found for " + homeIntent, new Throwable());
-            return null;
-        }
-
-        homeIntent.setComponent(new ComponentName(aInfo.applicationInfo.packageName, aInfo.name));
-        aInfo = new ActivityInfo(aInfo);
-        aInfo.applicationInfo = mService.getAppInfoForUser(aInfo.applicationInfo, userId);
-        homeIntent.setFlags(homeIntent.getFlags() | FLAG_ACTIVITY_NEW_TASK);
-        return aInfo;
-    }
-
-    @VisibleForTesting
-    void addChild(ActivityDisplay activityDisplay, int position) {
-        positionChildAt(activityDisplay, position);
-        mWindowContainerController.positionChildAt(
-                activityDisplay.getWindowContainerController(), position);
-    }
-
-    void removeChild(ActivityDisplay activityDisplay) {
-        // The caller must tell the controller of {@link ActivityDisplay} to release its container
-        // {@link DisplayContent}. That is done in {@link ActivityDisplay#releaseSelfIfNeeded}).
-        mActivityDisplays.remove(activityDisplay);
-    }
-
-    private void calculateDefaultMinimalSizeOfResizeableTasks() {
-        final Resources res = mService.mContext.getResources();
-        final float minimalSize = res.getDimension(
-                com.android.internal.R.dimen.default_minimal_size_resizable_task);
-        final DisplayMetrics dm = res.getDisplayMetrics();
-
-        mDefaultMinSizeOfResizeableTaskDp = (int) (minimalSize / dm.density);
-    }
-
-    SleepToken createSleepTokenLocked(String tag, int displayId) {
-        final ActivityDisplay display = getActivityDisplay(displayId);
-        if (display == null) {
-            throw new IllegalArgumentException("Invalid display: " + displayId);
-        }
-
-        final SleepTokenImpl token = new SleepTokenImpl(tag, displayId);
-        mSleepTokens.add(token);
-        display.mAllSleepTokens.add(token);
-        return token;
-    }
-
-    private void removeSleepTokenLocked(SleepTokenImpl token) {
-        mSleepTokens.remove(token);
-
-        final ActivityDisplay display = getActivityDisplay(token.mDisplayId);
-        if (display != null) {
-            display.mAllSleepTokens.remove(token);
-            if (display.mAllSleepTokens.isEmpty()) {
-                mService.updateSleepIfNeededLocked();
-            }
-        }
-    }
-
-    private StackInfo getStackInfo(ActivityStack stack) {
-        final int displayId = stack.mDisplayId;
-        final ActivityDisplay display = getActivityDisplay(displayId);
-        StackInfo info = new StackInfo();
-        stack.getWindowContainerBounds(info.bounds);
-        info.displayId = displayId;
-        info.stackId = stack.mStackId;
-        info.userId = stack.mCurrentUser;
-        info.visible = stack.shouldBeVisible(null);
-        // A stack might be not attached to a display.
-        info.position = display != null ? display.getIndexOf(stack) : 0;
-        info.configuration.setTo(stack.getConfiguration());
-
-        ArrayList<TaskRecord> tasks = stack.getAllTasks();
-        final int numTasks = tasks.size();
-        int[] taskIds = new int[numTasks];
-        String[] taskNames = new String[numTasks];
-        Rect[] taskBounds = new Rect[numTasks];
-        int[] taskUserIds = new int[numTasks];
-        for (int i = 0; i < numTasks; ++i) {
-            final TaskRecord task = tasks.get(i);
-            taskIds[i] = task.taskId;
-            taskNames[i] = task.origActivity != null ? task.origActivity.flattenToString()
-                    : task.realActivity != null ? task.realActivity.flattenToString()
-                    : task.getTopActivity() != null ? task.getTopActivity().packageName
-                    : "unknown";
-            taskBounds[i] = new Rect();
-            task.getWindowContainerBounds(taskBounds[i]);
-            taskUserIds[i] = task.userId;
-        }
-        info.taskIds = taskIds;
-        info.taskNames = taskNames;
-        info.taskBounds = taskBounds;
-        info.taskUserIds = taskUserIds;
-
-        final ActivityRecord top = stack.topRunningActivityLocked();
-        info.topActivity = top != null ? top.intent.getComponent() : null;
-        return info;
-    }
-
-    StackInfo getStackInfo(int stackId) {
-        ActivityStack stack = getStack(stackId);
-        if (stack != null) {
-            return getStackInfo(stack);
-        }
-        return null;
-    }
-
-    StackInfo getStackInfo(int windowingMode, int activityType) {
-        final ActivityStack stack = getStack(windowingMode, activityType);
-        return (stack != null) ? getStackInfo(stack) : null;
-    }
-
-    ArrayList<StackInfo> getAllStackInfosLocked() {
-        ArrayList<StackInfo> list = new ArrayList<>();
-        for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
-            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
-                final ActivityStack stack = display.getChildAt(stackNdx);
-                list.add(getStackInfo(stack));
-            }
-        }
-        return list;
-    }
-
     void handleNonResizableTaskIfNeeded(TaskRecord task, int preferredWindowingMode,
             int preferredDisplayId, ActivityStack actualStack) {
         handleNonResizableTaskIfNeeded(task, preferredWindowingMode, preferredDisplayId,
@@ -4554,7 +2370,7 @@
         mWindowManager.notifyAppRelaunchingFinished(token);
         final ActivityRecord r = ActivityRecord.isInStackLocked(token);
         if (r != null) {
-            if (r.getStack().shouldSleepOrShutDownActivities()) {
+            if (r.getActivityStack().shouldSleepOrShutDownActivities()) {
                 r.setSleeping(true, true);
             }
         }
@@ -4625,21 +2441,6 @@
         }
     }
 
-    void setDockedStackMinimized(boolean minimized) {
-        // Get currently focused stack before setting mIsDockMinimized. We do this because if
-        // split-screen is active, primary stack will not be focusable (see #isFocusable) while
-        // still occluding other stacks. This will cause getTopDisplayFocusedStack() to return null.
-        final ActivityStack current = getTopDisplayFocusedStack();
-        mIsDockMinimized = minimized;
-        if (mIsDockMinimized) {
-            if (current.inSplitScreenPrimaryWindowingMode()) {
-                // The primary split-screen stack can't be focused while it is minimize, so move
-                // focus to something else.
-                current.adjustFocusToNextFocusableStack("setDockedStackMinimized");
-            }
-        }
-    }
-
     void wakeUp(String reason) {
         mPowerManager.wakeUp(SystemClock.uptimeMillis(), "android.server.am:TURN_ON:" + reason);
     }
@@ -4658,10 +2459,8 @@
         mDeferResumeCount--;
     }
 
-    /**
-     * @return True if resume can be called.
-     */
-    private boolean readyToResume() {
+    /** @return True if resume can be called. */
+    boolean readyToResume() {
         return mDeferResumeCount == 0;
     }
 
@@ -4713,7 +2512,7 @@
                 } break;
                 case RESUME_TOP_ACTIVITY_MSG: {
                     synchronized (mService.mGlobalLock) {
-                        resumeFocusedStacksTopActivitiesLocked();
+                        mRootActivityContainer.resumeFocusedStacksTopActivities();
                     }
                 } break;
                 case SLEEP_TIMEOUT_MSG: {
@@ -4749,19 +2548,6 @@
         }
     }
 
-    ActivityStack findStackBehind(ActivityStack stack) {
-        final ActivityDisplay display = getActivityDisplay(stack.mDisplayId);
-        if (display != null) {
-            for (int i = display.getChildCount() - 1; i >= 0; i--) {
-                if (display.getChildAt(i) == stack && i > 0) {
-                    return display.getChildAt(i - 1);
-                }
-            }
-        }
-        throw new IllegalStateException("Failed to find a stack behind stack=" + stack
-                + " in=" + display);
-    }
-
     /**
      * Puts a task into resizing mode during the next app transition.
      *
@@ -4806,8 +2592,8 @@
                 mWindowManager.prepareAppTransition(TRANSIT_DOCK_TASK_FROM_RECENTS, false);
             }
 
-            task = anyTaskForIdLocked(taskId, MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE,
-                    activityOptions, ON_TOP);
+            task = mRootActivityContainer.anyTaskForId(taskId,
+                    MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE, activityOptions, ON_TOP);
             if (task == null) {
                 continueUpdateRecentsHomeStackBounds();
                 mWindowManager.executeAppTransition();
@@ -4820,7 +2606,8 @@
                 // from whatever is started from the recents activity, so move the home stack
                 // forward.
                 // TODO (b/115289124): Multi-display supports for recents.
-                getDefaultDisplay().moveHomeStackToFront("startActivityFromRecents");
+                mRootActivityContainer.getDefaultDisplay().moveHomeStackToFront(
+                        "startActivityFromRecents");
             }
 
             // If the user must confirm credentials (e.g. when first launching a work app and the
@@ -4829,7 +2616,8 @@
                     && task.getRootActivity() != null) {
                 final ActivityRecord targetActivity = task.getTopActivity();
 
-                sendPowerHintForLaunchStartIfNeeded(true /* forceSend */, targetActivity);
+                mRootActivityContainer.sendPowerHintForLaunchStartIfNeeded(
+                        true /* forceSend */, targetActivity);
                 mActivityMetricsLogger.notifyActivityLaunching(task.intent);
                 try {
                     mService.moveTaskToFrontLocked(task.taskId, 0, options,
@@ -4882,35 +2670,6 @@
     }
 
     /**
-     * @return a list of activities which are the top ones in each visible stack. The first
-     * entry will be the focused activity.
-     */
-    List<IBinder> getTopVisibleActivities() {
-        final ArrayList<IBinder> topActivityTokens = new ArrayList<>();
-        final ActivityStack topFocusedStack = getTopDisplayFocusedStack();
-        // Traverse all displays.
-        for (int i = mActivityDisplays.size() - 1; i >= 0; i--) {
-            final ActivityDisplay display = mActivityDisplays.get(i);
-            // Traverse all stacks on a display.
-            for (int j = display.getChildCount() - 1; j >= 0; --j) {
-                final ActivityStack stack = display.getChildAt(j);
-                // Get top activity from a visible stack and add it to the list.
-                if (stack.shouldBeVisible(null /* starting */)) {
-                    final ActivityRecord top = stack.getTopActivity();
-                    if (top != null) {
-                        if (stack == topFocusedStack) {
-                            topActivityTokens.add(0, top.appToken);
-                        } else {
-                            topActivityTokens.add(top.appToken);
-                        }
-                    }
-                }
-            }
-        }
-        return topActivityTokens;
-    }
-
-    /**
      * Internal container to store a match qualifier alongside a WaitResult.
      */
     static class WaitInfo {
@@ -4948,30 +2707,4 @@
             mResult.dump(pw, prefix);
         }
     }
-
-    private final class SleepTokenImpl extends SleepToken {
-        private final String mTag;
-        private final long mAcquireTime;
-        private final int mDisplayId;
-
-        public SleepTokenImpl(String tag, int displayId) {
-            mTag = tag;
-            mDisplayId = displayId;
-            mAcquireTime = SystemClock.uptimeMillis();
-        }
-
-        @Override
-        public void release() {
-            synchronized (mService.mGlobalLock) {
-                removeSleepTokenLocked(this);
-            }
-        }
-
-        @Override
-        public String toString() {
-            return "{\"" + mTag + "\", display " + mDisplayId
-                    + ", acquire at " + TimeUtils.formatUptime(mAcquireTime) + "}";
-        }
-    }
-
 }
diff --git a/services/core/java/com/android/server/wm/ActivityStartInterceptor.java b/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
index ee5a43c..b8442a8 100644
--- a/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
+++ b/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
@@ -70,6 +70,7 @@
 
     private final ActivityTaskManagerService mService;
     private final ActivityStackSupervisor mSupervisor;
+    private final RootActivityContainer mRootActivityContainer;
     private final Context mServiceContext;
 
     // UserManager cannot be final as it's not ready when this class is instantiated during boot
@@ -102,14 +103,15 @@
 
     ActivityStartInterceptor(
             ActivityTaskManagerService service, ActivityStackSupervisor supervisor) {
-        this(service, supervisor, service.mContext);
+        this(service, supervisor, service.mRootActivityContainer, service.mContext);
     }
 
     @VisibleForTesting
     ActivityStartInterceptor(ActivityTaskManagerService service, ActivityStackSupervisor supervisor,
-            Context context) {
+            RootActivityContainer root, Context context) {
         mService = service;
         mSupervisor = supervisor;
+        mRootActivityContainer = root;
         mServiceContext = context;
     }
 
@@ -279,11 +281,11 @@
             mActivityOptions = ActivityOptions.makeBasic();
         }
 
-        ActivityRecord homeActivityRecord = mSupervisor.getDefaultDisplayHomeActivity();
-        if (homeActivityRecord != null && homeActivityRecord.getTask() != null) {
-            // Showing credential confirmation activity in home task to avoid stopping multi-windowed
-            // mode after showing the full-screen credential confirmation activity.
-            mActivityOptions.setLaunchTaskId(homeActivityRecord.getTask().taskId);
+        ActivityRecord homeActivityRecord = mRootActivityContainer.getDefaultDisplayHomeActivity();
+        if (homeActivityRecord != null && homeActivityRecord.getTaskRecord() != null) {
+            // Showing credential confirmation activity in home task to avoid stopping
+            // multi-windowed mode after showing the full-screen credential confirmation activity.
+            mActivityOptions.setLaunchTaskId(homeActivityRecord.getTaskRecord().taskId);
         }
 
         final UserInfo parent = mUserManager.getProfileParent(mUserId);
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index d4c1bca..bc2136e 100644
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -98,6 +98,7 @@
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.SystemClock;
 import android.os.Trace;
@@ -108,6 +109,7 @@
 import android.util.EventLog;
 import android.util.Pools.SynchronizedPool;
 import android.util.Slog;
+import android.widget.Toast;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.HeavyWeightSwitcherActivity;
@@ -137,6 +139,7 @@
     private static final int INVALID_LAUNCH_MODE = -1;
 
     private final ActivityTaskManagerService mService;
+    private final RootActivityContainer mRootActivityContainer;
     private final ActivityStackSupervisor mSupervisor;
     private final ActivityStartInterceptor mInterceptor;
     private final ActivityStartController mController;
@@ -421,6 +424,7 @@
             ActivityStackSupervisor supervisor, ActivityStartInterceptor interceptor) {
         mController = controller;
         mService = service;
+        mRootActivityContainer = service.mRootActivityContainer;
         mSupervisor = supervisor;
         mInterceptor = interceptor;
         reset(true);
@@ -617,7 +621,7 @@
         ActivityRecord sourceRecord = null;
         ActivityRecord resultRecord = null;
         if (resultTo != null) {
-            sourceRecord = mSupervisor.isInAnyStackLocked(resultTo);
+            sourceRecord = mRootActivityContainer.isInAnyStack(resultTo);
             if (DEBUG_RESULTS) Slog.v(TAG_RESULTS,
                     "Will send result to " + resultTo + " " + sourceRecord);
             if (sourceRecord != null) {
@@ -674,7 +678,7 @@
         }
 
         if (err == ActivityManager.START_SUCCESS && sourceRecord != null
-                && sourceRecord.getTask().voiceSession != null) {
+                && sourceRecord.getTaskRecord().voiceSession != null) {
             // If this activity is being launched as part of a voice session, we need
             // to ensure that it is safe to do so.  If the upcoming activity will also
             // be part of the voice session, we can only launch it if it has explicitly
@@ -714,7 +718,8 @@
             }
         }
 
-        final ActivityStack resultStack = resultRecord == null ? null : resultRecord.getStack();
+        final ActivityStack resultStack = resultRecord == null
+                ? null : resultRecord.getActivityStack();
 
         if (err != START_SUCCESS) {
             if (resultRecord != null) {
@@ -731,6 +736,13 @@
         abort |= !mService.mIntentFirewall.checkStartActivity(intent, callingUid,
                 callingPid, resolvedType, aInfo.applicationInfo);
 
+        // not sure if we need to create START_ABORTED_BACKGROUND so for now piggybacking
+        // on START_ABORTED
+        if (!abort) {
+            abort |= shouldAbortBackgroundActivityStart(callingUid, callingPackage, realCallingUid,
+                    callerApp);
+        }
+
         // Merge the two options bundles, while realCallerOptions takes precedence.
         ActivityOptions checkedOptions = options != null
                 ? options.getOptions(intent, aInfo, callerApp, mSupervisor) : null;
@@ -774,6 +786,8 @@
             // We pretend to the caller that it was really started, but
             // they will just get a cancel result.
             ActivityOptions.abort(checkedOptions);
+            maybeLogActivityStart(callingUid, callingPackage, realCallingUid, intent, callerApp,
+                    null /*r*/, originatingPendingIntent, true /*abortedStart*/);
             return START_ABORTED;
         }
 
@@ -811,7 +825,8 @@
                         null /*profilerInfo*/);
 
                 if (DEBUG_PERMISSIONS_REVIEW) {
-                    final ActivityStack focusedStack = mSupervisor.getTopDisplayFocusedStack();
+                    final ActivityStack focusedStack =
+                            mRootActivityContainer.getTopDisplayFocusedStack();
                     Slog.i(TAG, "START u" + userId + " {" + intent.toShortString(true, true,
                             true, false) + "} from uid " + callingUid + " on display "
                             + (focusedStack == null ? DEFAULT_DISPLAY : focusedStack.mDisplayId));
@@ -847,7 +862,7 @@
             r.appTimeTracker = sourceRecord.appTimeTracker;
         }
 
-        final ActivityStack stack = mSupervisor.getTopDisplayFocusedStack();
+        final ActivityStack stack = mRootActivityContainer.getTopDisplayFocusedStack();
 
         // If we are starting an activity that is not from the same uid as the currently resumed
         // one, check whether app switches are allowed.
@@ -866,19 +881,60 @@
         mController.doPendingActivityLaunches(false);
 
         maybeLogActivityStart(callingUid, callingPackage, realCallingUid, intent, callerApp, r,
-                originatingPendingIntent);
+                originatingPendingIntent, false /*abortedStart*/);
 
         return startActivity(r, sourceRecord, voiceSession, voiceInteractor, startFlags,
                 true /* doResume */, checkedOptions, inTask, outActivity);
     }
 
+    private boolean shouldAbortBackgroundActivityStart(int callingUid, final String callingPackage,
+            int realCallingUid, WindowProcessController callerApp) {
+        if (mService.isBackgroundActivityStartsEnabled()) {
+            return false;
+        }
+        // don't abort for the most important UIDs
+        if (callingUid == Process.ROOT_UID || callingUid == Process.SYSTEM_UID) {
+            return false;
+        }
+        // don't abort if the callerApp has any visible activity
+        if (callerApp != null && callerApp.hasForegroundActivities()) {
+            return false;
+        }
+        // don't abort if the callingUid is in the foreground
+        if (isUidForeground(callingUid)) {
+            return false;
+        }
+        // don't abort if the realCallingUid is in the foreground and callingUid isn't
+        if ((realCallingUid != callingUid) && isUidForeground(realCallingUid)) {
+            return false;
+        }
+        // don't abort if the caller has the same uid as the recents component
+        if (mSupervisor.mRecentTasks.isCallerRecents(callingUid)) {
+            return false;
+        }
+        // anything that has fallen through will currently be aborted
+        // TODO: remove this toast after feature development is done
+        mService.mUiHandler.post(() -> {
+            Toast.makeText(mService.mContext,
+                    "Blocking background activity start for " + callingPackage,
+                    Toast.LENGTH_SHORT).show();
+        });
+        return true;
+    }
+
+    /** Returns true if uid has a visible window or its process is in top or persistent state. */
+    private boolean isUidForeground(int uid) {
+        return (mService.getUidStateLocked(uid) <= ActivityManager.PROCESS_STATE_TOP)
+            || mService.mWindowManager.isAnyWindowVisibleForUid(uid);
+    }
+
     private void maybeLogActivityStart(int callingUid, String callingPackage, int realCallingUid,
             Intent intent, WindowProcessController callerApp, ActivityRecord r,
-            PendingIntentRecord originatingPendingIntent) {
+            PendingIntentRecord originatingPendingIntent, boolean abortedStart) {
         boolean callerAppHasForegroundActivity =
                 callerApp != null && callerApp.hasForegroundActivities();
         if (!mService.isActivityStartsLoggingEnabled() || callerAppHasForegroundActivity
-                || r == null) {
+                || (!abortedStart && r == null)) {
             // skip logging in this case
             return;
         }
@@ -894,8 +950,8 @@
             final boolean realCallingUidHasAnyVisibleWindow = (callingUid == realCallingUid)
                     ? callingUidHasAnyVisibleWindow
                     : mService.mWindowManager.isAnyWindowVisibleForUid(realCallingUid);
-            final String targetPackage = r.packageName;
-            final int targetUid = (r.appInfo != null) ? r.appInfo.uid : -1;
+            final String targetPackage = (r != null) ? r.packageName : null;
+            final int targetUid = (r!= null) ? ((r.appInfo != null) ? r.appInfo.uid : -1) : -1;
             final int targetUidProcState = mService.getUidStateLocked(targetUid);
             final boolean targetUidHasAnyVisibleWindow = (targetUid != -1)
                     ? mService.mWindowManager.isAnyWindowVisibleForUid(targetUid)
@@ -1063,7 +1119,7 @@
         ActivityInfo aInfo = mSupervisor.resolveActivity(intent, rInfo, startFlags, profilerInfo);
 
         synchronized (mService.mGlobalLock) {
-            final ActivityStack stack = mSupervisor.getTopDisplayFocusedStack();
+            final ActivityStack stack = mRootActivityContainer.getTopDisplayFocusedStack();
             stack.mConfigWillChange = globalConfig != null
                     && mService.getGlobalConfiguration().diff(globalConfig) != 0;
             if (DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
@@ -1179,7 +1235,7 @@
                     }
                     case START_DELIVERED_TO_TOP: {
                         outResult.timeout = false;
-                        outResult.who = r.realActivity;
+                        outResult.who = r.mActivityComponent;
                         outResult.totalTime = 0;
                         break;
                     }
@@ -1188,11 +1244,12 @@
                         // in the resumed state.
                         if (r.nowVisible && r.isState(RESUMED)) {
                             outResult.timeout = false;
-                            outResult.who = r.realActivity;
+                            outResult.who = r.mActivityComponent;
                             outResult.totalTime = 0;
                         } else {
                             final long startTimeMs = SystemClock.uptimeMillis();
-                            mSupervisor.waitActivityVisible(r.realActivity, outResult, startTimeMs);
+                            mSupervisor.waitActivityVisible(
+                                    r.mActivityComponent, outResult, startTimeMs);
                             // Note: the timeout variable is not currently not ever set.
                             do {
                                 try {
@@ -1238,7 +1295,7 @@
             result = startActivityUnchecked(r, sourceRecord, voiceSession, voiceInteractor,
                     startFlags, doResume, options, inTask, outActivity);
         } finally {
-            final ActivityStack currentStack = r.getStack();
+            final ActivityStack currentStack = r.getActivityStack();
             startedActivityStack = currentStack != null ? currentStack : mTargetStack;
 
             if (ActivityManager.isStartResultSuccessful(result)) {
@@ -1249,7 +1306,8 @@
                     final ActivityRecord currentTop =
                             startedActivityStack.topRunningActivityLocked();
                     if (currentTop != null && currentTop.shouldUpdateConfigForDisplayChanged()) {
-                        mSupervisor.ensureVisibilityAndConfig(currentTop, currentTop.getDisplayId(),
+                        mRootActivityContainer.ensureVisibilityAndConfig(
+                                currentTop, currentTop.getDisplayId(),
                                 true /* markFrozenIfConfigChanged */, false /* deferResume */);
                     }
                 }
@@ -1257,7 +1315,7 @@
                 // If we are not able to proceed, disassociate the activity from the task.
                 // Leaving an activity in an incomplete state can lead to issues, such as
                 // performing operations without a window container.
-                final ActivityStack stack = mStartActivity.getStack();
+                final ActivityStack stack = mStartActivity.getActivityStack();
                 if (stack != null) {
                     stack.finishActivityLocked(mStartActivity, RESULT_CANCELED,
                             null /* intentResultData */, "startActivity", true /* oomAdj */);
@@ -1284,7 +1342,7 @@
         // Do not start home activity if it cannot be launched on preferred display. We are not
         // doing this in ActivityStackSupervisor#canPlaceEntityOnDisplay because it might
         // fallback to launch on other displays.
-        if (r.isActivityTypeHome() && !mSupervisor.canStartHomeOnDisplay(r.info,
+        if (r.isActivityTypeHome() && !mRootActivityContainer.canStartHomeOnDisplay(r.info,
                 mPreferredDisplayId, true /* allowInstrumenting */)) {
             Slog.w(TAG, "Cannot launch home on display " + mPreferredDisplayId);
             return START_CANCELED;
@@ -1302,7 +1360,8 @@
             // When the flags NEW_TASK and CLEAR_TASK are set, then the task gets reused but
             // still needs to be a lock task mode violation since the task gets cleared out and
             // the device would otherwise leave the locked task.
-            if (mService.getLockTaskController().isLockTaskModeViolation(reusedActivity.getTask(),
+            if (mService.getLockTaskController().isLockTaskModeViolation(
+                    reusedActivity.getTaskRecord(),
                     (mLaunchFlags & (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK))
                             == (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK))) {
                 Slog.e(TAG, "startActivityUnchecked: Attempt to violate Lock Task Mode");
@@ -1319,14 +1378,14 @@
             // If mStartActivity does not have a task associated with it, associate it with the
             // reused activity's task. Do not do so if we're clearing top and resetting for a
             // standard launchMode activity.
-            if (mStartActivity.getTask() == null && !clearTopAndResetStandardLaunchMode) {
-                mStartActivity.setTask(reusedActivity.getTask());
+            if (mStartActivity.getTaskRecord() == null && !clearTopAndResetStandardLaunchMode) {
+                mStartActivity.setTask(reusedActivity.getTaskRecord());
             }
 
-            if (reusedActivity.getTask().intent == null) {
+            if (reusedActivity.getTaskRecord().intent == null) {
                 // This task was started because of movement of the activity based on affinity...
                 // Now that we are actually launching it, we can assign the base intent.
-                reusedActivity.getTask().setIntent(mStartActivity);
+                reusedActivity.getTaskRecord().setIntent(mStartActivity);
             }
 
             // This code path leads to delivering a new intent, we want to make sure we schedule it
@@ -1335,7 +1394,7 @@
             if ((mLaunchFlags & FLAG_ACTIVITY_CLEAR_TOP) != 0
                     || isDocumentLaunchesIntoExisting(mLaunchFlags)
                     || isLaunchModeOneOf(LAUNCH_SINGLE_INSTANCE, LAUNCH_SINGLE_TASK)) {
-                final TaskRecord task = reusedActivity.getTask();
+                final TaskRecord task = reusedActivity.getTaskRecord();
 
                 // In this situation we want to remove all activities from the task up to the one
                 // being started. In most cases this means we are resetting the task to its initial
@@ -1347,7 +1406,7 @@
                 // the {@code ActivityRecord} removing its reference to the {@code TaskRecord}. The
                 // task reference is needed in the call below to
                 // {@link setTargetStackAndMoveToFrontIfNeeded}.
-                if (reusedActivity.getTask() == null) {
+                if (reusedActivity.getTaskRecord() == null) {
                     reusedActivity.setTask(task);
                 }
 
@@ -1355,13 +1414,14 @@
                     if (top.frontOfTask) {
                         // Activity aliases may mean we use different intents for the top activity,
                         // so make sure the task now has the identity of the new intent.
-                        top.getTask().setIntent(mStartActivity);
+                        top.getTaskRecord().setIntent(mStartActivity);
                     }
                     deliverNewIntent(top);
                 }
             }
 
-            mSupervisor.sendPowerHintForLaunchStartIfNeeded(false /* forceSend */, reusedActivity);
+            mRootActivityContainer.sendPowerHintForLaunchStartIfNeeded
+                    (false /* forceSend */, reusedActivity);
 
             reusedActivity = setTargetStackAndMoveToFrontIfNeeded(reusedActivity);
 
@@ -1401,7 +1461,7 @@
 
         if (mStartActivity.packageName == null) {
             final ActivityStack sourceStack = mStartActivity.resultTo != null
-                    ? mStartActivity.resultTo.getStack() : null;
+                    ? mStartActivity.resultTo.getActivityStack() : null;
             if (sourceStack != null) {
                 sourceStack.sendActivityResultLocked(-1 /* callingUid */, mStartActivity.resultTo,
                         mStartActivity.resultWho, mStartActivity.requestCode, RESULT_CANCELED,
@@ -1413,12 +1473,12 @@
 
         // If the activity being launched is the same as the one currently at the top, then
         // we need to check if it should only be launched once.
-        final ActivityStack topStack = mSupervisor.getTopDisplayFocusedStack();
+        final ActivityStack topStack = mRootActivityContainer.getTopDisplayFocusedStack();
         final ActivityRecord topFocused = topStack.getTopActivity();
         final ActivityRecord top = topStack.topRunningNonDelayedActivityLocked(mNotTop);
         final boolean dontStart = top != null && mStartActivity.resultTo == null
-                && top.realActivity.equals(mStartActivity.realActivity)
-                && top.userId == mStartActivity.userId
+                && top.mActivityComponent.equals(mStartActivity.mActivityComponent)
+                && top.mUserId == mStartActivity.mUserId
                 && top.attachedToProcess()
                 && ((mLaunchFlags & FLAG_ACTIVITY_SINGLE_TOP) != 0
                 || isLaunchModeOneOf(LAUNCH_SINGLE_TOP, LAUNCH_SINGLE_TASK))
@@ -1430,7 +1490,7 @@
             // For paranoia, make sure we have correctly resumed the top activity.
             topStack.mLastPausedActivity = null;
             if (mDoResume) {
-                mSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                mRootActivityContainer.resumeFocusedStacksTopActivities();
             }
             ActivityOptions.abort(mOptions);
             if ((mStartFlags & START_FLAG_ONLY_IF_NEEDED) != 0) {
@@ -1443,7 +1503,7 @@
 
             // Don't use mStartActivity.task to show the toast. We're not starting a new activity
             // but reusing 'top'. Fields in mStartActivity may not be fully initialized.
-            mSupervisor.handleNonResizableTaskIfNeeded(top.getTask(), preferredWindowingMode,
+            mSupervisor.handleNonResizableTaskIfNeeded(top.getTaskRecord(), preferredWindowingMode,
                     mPreferredDisplayId, topStack);
 
             return START_DELIVERED_TO_TOP;
@@ -1451,7 +1511,7 @@
 
         boolean newTask = false;
         final TaskRecord taskToAffiliate = (mLaunchTaskBehind && mSourceRecord != null)
-                ? mSourceRecord.getTask() : null;
+                ? mSourceRecord.getTaskRecord() : null;
 
         // Should this be considered a new task?
         int result = START_SUCCESS;
@@ -1473,25 +1533,26 @@
         }
 
         mService.mUgmInternal.grantUriPermissionFromIntent(mCallingUid, mStartActivity.packageName,
-                mIntent, mStartActivity.getUriPermissionsLocked(), mStartActivity.userId);
+                mIntent, mStartActivity.getUriPermissionsLocked(), mStartActivity.mUserId);
         mService.getPackageManagerInternalLocked().grantEphemeralAccess(
-                mStartActivity.userId, mIntent, UserHandle.getAppId(mStartActivity.appInfo.uid),
+                mStartActivity.mUserId, mIntent, UserHandle.getAppId(mStartActivity.appInfo.uid),
                 UserHandle.getAppId(mCallingUid));
         if (newTask) {
-            EventLog.writeEvent(EventLogTags.AM_CREATE_TASK, mStartActivity.userId,
-                    mStartActivity.getTask().taskId);
+            EventLog.writeEvent(EventLogTags.AM_CREATE_TASK, mStartActivity.mUserId,
+                    mStartActivity.getTaskRecord().taskId);
         }
         ActivityStack.logStartActivity(
-                EventLogTags.AM_CREATE_ACTIVITY, mStartActivity, mStartActivity.getTask());
+                EventLogTags.AM_CREATE_ACTIVITY, mStartActivity, mStartActivity.getTaskRecord());
         mTargetStack.mLastPausedActivity = null;
 
-        mSupervisor.sendPowerHintForLaunchStartIfNeeded(false /* forceSend */, mStartActivity);
+        mRootActivityContainer.sendPowerHintForLaunchStartIfNeeded(
+                false /* forceSend */, mStartActivity);
 
         mTargetStack.startActivityLocked(mStartActivity, topFocused, newTask, mKeepCurTransition,
                 mOptions);
         if (mDoResume) {
             final ActivityRecord topTaskActivity =
-                    mStartActivity.getTask().topRunningActivityLocked();
+                    mStartActivity.getTaskRecord().topRunningActivityLocked();
             if (!mTargetStack.isFocusable()
                     || (topTaskActivity != null && topTaskActivity.mTaskOverlay
                     && mStartActivity != topTaskActivity)) {
@@ -1512,19 +1573,19 @@
                 // task stack to be focusable, then ensure that we now update the focused stack
                 // accordingly.
                 if (mTargetStack.isFocusable()
-                        && !mSupervisor.isTopDisplayFocusedStack(mTargetStack)) {
+                        && !mRootActivityContainer.isTopDisplayFocusedStack(mTargetStack)) {
                     mTargetStack.moveToFront("startActivityUnchecked");
                 }
-                mSupervisor.resumeFocusedStacksTopActivitiesLocked(mTargetStack, mStartActivity,
-                        mOptions);
+                mRootActivityContainer.resumeFocusedStacksTopActivities(
+                        mTargetStack, mStartActivity, mOptions);
             }
         } else if (mStartActivity != null) {
-            mSupervisor.mRecentTasks.add(mStartActivity.getTask());
+            mSupervisor.mRecentTasks.add(mStartActivity.getTaskRecord());
         }
-        mSupervisor.updateUserStackLocked(mStartActivity.userId, mTargetStack);
+        mRootActivityContainer.updateUserStack(mStartActivity.mUserId, mTargetStack);
 
-        mSupervisor.handleNonResizableTaskIfNeeded(mStartActivity.getTask(), preferredWindowingMode,
-                mPreferredDisplayId, mTargetStack);
+        mSupervisor.handleNonResizableTaskIfNeeded(mStartActivity.getTaskRecord(),
+                preferredWindowingMode, mPreferredDisplayId, mTargetStack);
 
         return START_SUCCESS;
     }
@@ -1642,7 +1703,7 @@
             if (mOptions.getLaunchTaskId() != -1 && mOptions.getTaskOverlay()) {
                 r.mTaskOverlay = true;
                 if (!mOptions.canTaskOverlayResume()) {
-                    final TaskRecord task = mSupervisor.anyTaskForIdLocked(
+                    final TaskRecord task = mRootActivityContainer.anyTaskForId(
                             mOptions.getLaunchTaskId());
                     final ActivityRecord top = task != null ? task.getTopActivity() : null;
                     if (top != null && !top.isState(RESUMED)) {
@@ -1678,10 +1739,10 @@
         if ((startFlags & START_FLAG_ONLY_IF_NEEDED) != 0) {
             ActivityRecord checkedCaller = sourceRecord;
             if (checkedCaller == null) {
-                checkedCaller = mSupervisor.getTopDisplayFocusedStack()
+                checkedCaller = mRootActivityContainer.getTopDisplayFocusedStack()
                         .topRunningNonDelayedActivityLocked(mNotTop);
             }
-            if (!checkedCaller.realActivity.equals(r.realActivity)) {
+            if (!checkedCaller.mActivityComponent.equals(r.mActivityComponent)) {
                 // Caller is not the same as launcher, so always needed.
                 mStartFlags &= ~START_FLAG_ONLY_IF_NEEDED;
             }
@@ -1692,7 +1753,7 @@
 
     private void sendNewTaskResultRequestIfNeeded() {
         final ActivityStack sourceStack = mStartActivity.resultTo != null
-                ? mStartActivity.resultTo.getStack() : null;
+                ? mStartActivity.resultTo.getActivityStack() : null;
         if (sourceStack != null && (mLaunchFlags & FLAG_ACTIVITY_NEW_TASK) != 0) {
             // For whatever reason this activity is being launched into a new task...
             // yet the caller has requested a result back.  Well, that is pretty messed up,
@@ -1796,7 +1857,7 @@
             return;
         }
         if (!mSourceRecord.finishing) {
-            mSourceStack = mSourceRecord.getStack();
+            mSourceStack = mSourceRecord.getActivityStack();
             return;
         }
 
@@ -1814,7 +1875,7 @@
             // example, if this method is being called for processing a pending activity launch, it
             // is possible that the activity has been removed from the task after the launch was
             // enqueued.
-            final TaskRecord sourceTask = mSourceRecord.getTask();
+            final TaskRecord sourceTask = mSourceRecord.getTaskRecord();
             mNewTaskIntent = sourceTask != null ? sourceTask.intent : null;
         }
         mSourceRecord = null;
@@ -1840,26 +1901,28 @@
         putIntoExistingTask &= mInTask == null && mStartActivity.resultTo == null;
         ActivityRecord intentActivity = null;
         if (mOptions != null && mOptions.getLaunchTaskId() != -1) {
-            final TaskRecord task = mSupervisor.anyTaskForIdLocked(mOptions.getLaunchTaskId());
+            final TaskRecord task = mRootActivityContainer.anyTaskForId(mOptions.getLaunchTaskId());
             intentActivity = task != null ? task.getTopActivity() : null;
         } else if (putIntoExistingTask) {
             if (LAUNCH_SINGLE_INSTANCE == mLaunchMode) {
                 // There can be one and only one instance of single instance activity in the
                 // history, and it is always in its own unique task, so we do a special search.
-               intentActivity = mSupervisor.findActivityLocked(mIntent, mStartActivity.info,
+               intentActivity = mRootActivityContainer.findActivity(mIntent, mStartActivity.info,
                        mStartActivity.isActivityTypeHome());
             } else if ((mLaunchFlags & FLAG_ACTIVITY_LAUNCH_ADJACENT) != 0) {
                 // For the launch adjacent case we only want to put the activity in an existing
                 // task if the activity already exists in the history.
-                intentActivity = mSupervisor.findActivityLocked(mIntent, mStartActivity.info,
+                intentActivity = mRootActivityContainer.findActivity(mIntent, mStartActivity.info,
                         !(LAUNCH_SINGLE_TASK == mLaunchMode));
             } else {
                 // Otherwise find the best task to put the activity in.
-                intentActivity = mSupervisor.findTaskLocked(mStartActivity, mPreferredDisplayId);
+                intentActivity =
+                        mRootActivityContainer.findTask(mStartActivity, mPreferredDisplayId);
             }
         }
 
-        if (mStartActivity.isActivityTypeHome() && intentActivity != null
+        if (intentActivity != null
+                && (mStartActivity.isActivityTypeHome() || intentActivity.isActivityTypeHome())
                 && intentActivity.getDisplayId() != mPreferredDisplayId) {
             // Do not reuse home activity on other displays.
             intentActivity = null;
@@ -1875,7 +1938,7 @@
      * @return {@link ActivityRecord} brought to front.
      */
     private ActivityRecord setTargetStackAndMoveToFrontIfNeeded(ActivityRecord intentActivity) {
-        mTargetStack = intentActivity.getStack();
+        mTargetStack = intentActivity.getActivityStack();
         mTargetStack.mLastPausedActivity = null;
         // If the target task is not in the front, then we need to bring it to the front...
         // except...  well, with SINGLE_TASK_LAUNCH it's not entirely clear. We'd like to have
@@ -1886,9 +1949,9 @@
             final ActivityStack focusStack = mTargetStack.getDisplay().getFocusedStack();
             final ActivityRecord curTop = (focusStack == null)
                     ? null : focusStack.topRunningNonDelayedActivityLocked(mNotTop);
-            final TaskRecord topTask = curTop != null ? curTop.getTask() : null;
+            final TaskRecord topTask = curTop != null ? curTop.getTaskRecord() : null;
             differentTopTask = topTask != null
-                    && (topTask != intentActivity.getTask() || topTask != focusStack.topTask());
+                    && (topTask != intentActivity.getTaskRecord() || topTask != focusStack.topTask());
         } else {
             // The existing task should always be different from those in other displays.
             differentTopTask = true;
@@ -1897,10 +1960,11 @@
         if (differentTopTask && !mAvoidMoveToFront) {
             mStartActivity.intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
             if (mSourceRecord == null || (mSourceStack.getTopActivity() != null &&
-                    mSourceStack.getTopActivity().getTask() == mSourceRecord.getTask())) {
+                    mSourceStack.getTopActivity().getTaskRecord()
+                            == mSourceRecord.getTaskRecord())) {
                 // We really do want to push this one into the user's face, right now.
                 if (mLaunchTaskBehind && mSourceRecord != null) {
-                    intentActivity.setTaskToAffiliateWith(mSourceRecord.getTask());
+                    intentActivity.setTaskToAffiliateWith(mSourceRecord.getTaskRecord());
                 }
 
                 // If the launch flags carry both NEW_TASK and CLEAR_TASK, the task's activities
@@ -1914,8 +1978,8 @@
                             == (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK);
                 if (!willClearTask) {
                     final ActivityStack launchStack = getLaunchStack(
-                            mStartActivity, mLaunchFlags, mStartActivity.getTask(), mOptions);
-                    final TaskRecord intentTask = intentActivity.getTask();
+                            mStartActivity, mLaunchFlags, mStartActivity.getTaskRecord(), mOptions);
+                    final TaskRecord intentTask = intentActivity.getTaskRecord();
                     if (launchStack == null || launchStack == mTargetStack) {
                         // We only want to move to the front, if we aren't going to launch on a
                         // different stack. If we launch on a different stack, we will put the
@@ -1945,7 +2009,7 @@
                         // Target and computed stacks are on different displays and we've
                         // found a matching task - move the existing instance to that display and
                         // move it to front.
-                        intentActivity.getTask().reparent(launchStack, ON_TOP,
+                        intentActivity.getTaskRecord().reparent(launchStack, ON_TOP,
                                 REPARENT_MOVE_STACK_TO_FRONT, ANIMATE, DEFER_RESUME,
                                 "reparentToDisplay");
                         mMovedToFront = true;
@@ -1955,7 +2019,7 @@
                         // For example, the activity may have been initially started with an intent
                         // which placed it in the fullscreen stack. To ensure the proper handling of
                         // the activity based on home stack assumptions, we must move it over.
-                        intentActivity.getTask().reparent(launchStack, ON_TOP,
+                        intentActivity.getTaskRecord().reparent(launchStack, ON_TOP,
                                 REPARENT_MOVE_STACK_TO_FRONT, ANIMATE, DEFER_RESUME,
                                 "reparentingHome");
                         mMovedToFront = true;
@@ -1971,14 +2035,14 @@
         }
         // Need to update mTargetStack because if task was moved out of it, the original stack may
         // be destroyed.
-        mTargetStack = intentActivity.getStack();
+        mTargetStack = intentActivity.getActivityStack();
         if (!mMovedToFront && mDoResume) {
             if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Bring to front target: " + mTargetStack
                     + " from " + intentActivity);
             mTargetStack.moveToFront("intentActivityFound");
         }
 
-        mSupervisor.handleNonResizableTaskIfNeeded(intentActivity.getTask(),
+        mSupervisor.handleNonResizableTaskIfNeeded(intentActivity.getTaskRecord(),
                 WINDOWING_MODE_UNDEFINED, DEFAULT_DISPLAY, mTargetStack);
 
         // If the caller has requested that the target task be reset, then do so.
@@ -2000,14 +2064,14 @@
             // launching another activity.
             // TODO(b/36119896):  We shouldn't trigger activity launches in this path since we are
             // already launching one.
-            final TaskRecord task = intentActivity.getTask();
+            final TaskRecord task = intentActivity.getTaskRecord();
             task.performClearTaskLocked();
             mReuseTask = task;
             mReuseTask.setIntent(mStartActivity);
         } else if ((mLaunchFlags & FLAG_ACTIVITY_CLEAR_TOP) != 0
                 || isLaunchModeOneOf(LAUNCH_SINGLE_INSTANCE, LAUNCH_SINGLE_TASK)) {
-            ActivityRecord top = intentActivity.getTask().performClearTaskLocked(mStartActivity,
-                    mLaunchFlags);
+            final ActivityRecord top = intentActivity.getTaskRecord().performClearTaskLocked(
+                    mStartActivity, mLaunchFlags);
             if (top == null) {
                 // A special case: we need to start the activity because it is not currently
                 // running, and the caller has asked to clear the current task to have this
@@ -2019,7 +2083,7 @@
                 // Now pretend like this activity is being started by the top of its task, so it
                 // is put in the right place.
                 mSourceRecord = intentActivity;
-                final TaskRecord task = mSourceRecord.getTask();
+                final TaskRecord task = mSourceRecord.getTaskRecord();
                 if (task != null && task.getStack() == null) {
                     // Target stack got cleared when we all activities were removed above.
                     // Go ahead and reset it.
@@ -2029,19 +2093,21 @@
                             !mLaunchTaskBehind /* toTop */, "startActivityUnchecked");
                 }
             }
-        } else if (mStartActivity.realActivity.equals(intentActivity.getTask().realActivity)) {
+        } else if (mStartActivity.mActivityComponent.equals(
+                intentActivity.getTaskRecord().realActivity)) {
             // In this case the top activity on the task is the same as the one being launched,
             // so we take that as a request to bring the task to the foreground. If the top
             // activity in the task is the root activity, deliver this new intent to it if it
             // desires.
             if (((mLaunchFlags & FLAG_ACTIVITY_SINGLE_TOP) != 0
                         || LAUNCH_SINGLE_TOP == mLaunchMode)
-                    && intentActivity.realActivity.equals(mStartActivity.realActivity)) {
+                    && intentActivity.mActivityComponent.equals(
+                            mStartActivity.mActivityComponent)) {
                 if (intentActivity.frontOfTask) {
-                    intentActivity.getTask().setIntent(mStartActivity);
+                    intentActivity.getTaskRecord().setIntent(mStartActivity);
                 }
                 deliverNewIntent(intentActivity);
-            } else if (!intentActivity.getTask().isSameIntentFilter(mStartActivity)) {
+            } else if (!intentActivity.getTaskRecord().isSameIntentFilter(mStartActivity)) {
                 // In this case we are launching the root activity of the task, but with a
                 // different intent. We should start a new instance on top.
                 mAddingToTask = true;
@@ -2054,23 +2120,23 @@
             // current task.
             mAddingToTask = true;
             mSourceRecord = intentActivity;
-        } else if (!intentActivity.getTask().rootWasReset) {
+        } else if (!intentActivity.getTaskRecord().rootWasReset) {
             // In this case we are launching into an existing task that has not yet been started
             // from its front door. The current task has been brought to the front. Ideally,
             // we'd probably like to place this new task at the bottom of its stack, but that's
             // a little hard to do with the current organization of the code so for now we'll
             // just drop it.
-            intentActivity.getTask().setIntent(mStartActivity);
+            intentActivity.getTaskRecord().setIntent(mStartActivity);
         }
     }
 
     private void resumeTargetStackIfNeeded() {
         if (mDoResume) {
-            mSupervisor.resumeFocusedStacksTopActivitiesLocked(mTargetStack, null, mOptions);
+            mRootActivityContainer.resumeFocusedStacksTopActivities(mTargetStack, null, mOptions);
         } else {
             ActivityOptions.abort(mOptions);
         }
-        mSupervisor.updateUserStackLocked(mStartActivity.userId, mTargetStack);
+        mRootActivityContainer.updateUserStack(mStartActivity.mUserId, mTargetStack);
     }
 
     private int setTaskFromReuseOrCreateNewTask(TaskRecord taskToAffiliate) {
@@ -2081,16 +2147,16 @@
 
         if (mReuseTask == null) {
             final TaskRecord task = mTargetStack.createTaskRecord(
-                    mSupervisor.getNextTaskIdForUserLocked(mStartActivity.userId),
+                    mSupervisor.getNextTaskIdForUserLocked(mStartActivity.mUserId),
                     mNewTaskInfo != null ? mNewTaskInfo : mStartActivity.info,
                     mNewTaskIntent != null ? mNewTaskIntent : mIntent, mVoiceSession,
                     mVoiceInteractor, !mLaunchTaskBehind /* toTop */, mStartActivity, mSourceRecord,
                     mOptions);
             addOrReparentStartingActivity(task, "setTaskFromReuseOrCreateNewTask - mReuseTask");
-            updateBounds(mStartActivity.getTask(), mLaunchParams.mBounds);
+            updateBounds(mStartActivity.getTaskRecord(), mLaunchParams.mBounds);
 
             if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Starting new activity " + mStartActivity
-                    + " in new task " + mStartActivity.getTask());
+                    + " in new task " + mStartActivity.getTaskRecord());
         } else {
             addOrReparentStartingActivity(mReuseTask, "setTaskFromReuseOrCreateNewTask");
         }
@@ -2099,7 +2165,8 @@
             mStartActivity.setTaskToAffiliateWith(taskToAffiliate);
         }
 
-        if (mService.getLockTaskController().isLockTaskModeViolation(mStartActivity.getTask())) {
+        if (mService.getLockTaskController().isLockTaskModeViolation(
+                mStartActivity.getTaskRecord())) {
             Slog.e(TAG, "Attempted Lock Task Mode violation mStartActivity=" + mStartActivity);
             return START_RETURN_LOCK_TASK_MODE_VIOLATION;
         }
@@ -2115,20 +2182,21 @@
             return;
         }
 
-        ActivityStack.logStartActivity(AM_NEW_INTENT, activity, activity.getTask());
+        ActivityStack.logStartActivity(AM_NEW_INTENT, activity, activity.getTaskRecord());
         activity.deliverNewIntentLocked(mCallingUid, mStartActivity.intent,
                 mStartActivity.launchedFromPackage);
         mIntentDelivered = true;
     }
 
     private int setTaskFromSourceRecord() {
-        if (mService.getLockTaskController().isLockTaskModeViolation(mSourceRecord.getTask())) {
+        if (mService.getLockTaskController().isLockTaskModeViolation(
+                mSourceRecord.getTaskRecord())) {
             Slog.e(TAG, "Attempted Lock Task Mode violation mStartActivity=" + mStartActivity);
             return START_RETURN_LOCK_TASK_MODE_VIOLATION;
         }
 
-        final TaskRecord sourceTask = mSourceRecord.getTask();
-        final ActivityStack sourceStack = mSourceRecord.getStack();
+        final TaskRecord sourceTask = mSourceRecord.getTaskRecord();
+        final ActivityStack sourceStack = mSourceRecord.getActivityStack();
         // We only want to allow changing stack in two cases:
         // 1. If the target task is not the top one. Otherwise we would move the launching task to
         //    the other side, rather than show two side by side.
@@ -2138,19 +2206,19 @@
         final boolean moveStackAllowed = sourceStack.topTask() != sourceTask
                 || !mStartActivity.canBeLaunchedOnDisplay(targetDisplayId);
         if (moveStackAllowed) {
-            mTargetStack = getLaunchStack(mStartActivity, mLaunchFlags, mStartActivity.getTask(),
-                    mOptions);
+            mTargetStack = getLaunchStack(mStartActivity, mLaunchFlags,
+                    mStartActivity.getTaskRecord(), mOptions);
             // If target stack is not found now - we can't just rely on the source stack, as it may
             // be not suitable. Let's check other displays.
             if (mTargetStack == null && targetDisplayId != sourceStack.mDisplayId) {
                 // Can't use target display, lets find a stack on the source display.
-                mTargetStack = mSupervisor.getValidLaunchStackOnDisplay(
+                mTargetStack = mRootActivityContainer.getValidLaunchStackOnDisplay(
                         sourceStack.mDisplayId, mStartActivity, mOptions, mLaunchParams);
             }
             if (mTargetStack == null) {
                 // There are no suitable stacks on the target and source display(s). Look on all
                 // displays.
-                mTargetStack = mSupervisor.getNextValidLaunchStackLocked(
+                mTargetStack = mRootActivityContainer.getNextValidLaunchStack(
                         mStartActivity, -1 /* currentFocus */);
             }
         }
@@ -2176,12 +2244,12 @@
             ActivityRecord top = sourceTask.performClearTaskLocked(mStartActivity, mLaunchFlags);
             mKeepCurTransition = true;
             if (top != null) {
-                ActivityStack.logStartActivity(AM_NEW_INTENT, mStartActivity, top.getTask());
+                ActivityStack.logStartActivity(AM_NEW_INTENT, mStartActivity, top.getTaskRecord());
                 deliverNewIntent(top);
                 // For paranoia, make sure we have correctly resumed the top activity.
                 mTargetStack.mLastPausedActivity = null;
                 if (mDoResume) {
-                    mSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mRootActivityContainer.resumeFocusedStacksTopActivities();
                 }
                 ActivityOptions.abort(mOptions);
                 return START_DELIVERED_TO_TOP;
@@ -2192,14 +2260,14 @@
             // stack if so.
             final ActivityRecord top = sourceTask.findActivityInHistoryLocked(mStartActivity);
             if (top != null) {
-                final TaskRecord task = top.getTask();
+                final TaskRecord task = top.getTaskRecord();
                 task.moveActivityToFrontLocked(top);
                 top.updateOptionsLocked(mOptions);
                 ActivityStack.logStartActivity(AM_NEW_INTENT, mStartActivity, task);
                 deliverNewIntent(top);
                 mTargetStack.mLastPausedActivity = null;
                 if (mDoResume) {
-                    mSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mRootActivityContainer.resumeFocusedStacksTopActivities();
                 }
                 return START_DELIVERED_TO_TOP;
             }
@@ -2209,7 +2277,8 @@
         // the same task as the one that is starting it.
         addOrReparentStartingActivity(sourceTask, "setTaskFromSourceRecord");
         if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Starting new activity " + mStartActivity
-                + " in existing task " + mStartActivity.getTask() + " from source " + mSourceRecord);
+                + " in existing task " + mStartActivity.getTaskRecord()
+                + " from source " + mSourceRecord);
         return START_SUCCESS;
     }
 
@@ -2226,8 +2295,8 @@
         // Check whether we should actually launch the new activity in to the task,
         // or just reuse the current activity on top.
         ActivityRecord top = mInTask.getTopActivity();
-        if (top != null && top.realActivity.equals(mStartActivity.realActivity)
-                && top.userId == mStartActivity.userId) {
+        if (top != null && top.mActivityComponent.equals(mStartActivity.mActivityComponent)
+                && top.mUserId == mStartActivity.mUserId) {
             if ((mLaunchFlags & FLAG_ACTIVITY_SINGLE_TOP) != 0
                     || isLaunchModeOneOf(LAUNCH_SINGLE_TOP, LAUNCH_SINGLE_TASK)) {
                 mTargetStack.moveTaskToFrontLocked(mInTask, mNoAnimation, mOptions,
@@ -2253,7 +2322,8 @@
 
         if (!mLaunchParams.mBounds.isEmpty()) {
             // TODO: Shouldn't we already know what stack to use by the time we get here?
-            ActivityStack stack = mSupervisor.getLaunchStack(null, null, mInTask, ON_TOP);
+            ActivityStack stack = mRootActivityContainer.getLaunchStack(
+                    null, null, mInTask, ON_TOP);
             if (stack != mInTask.getStack()) {
                 mInTask.reparent(stack, ON_TOP, REPARENT_KEEP_STACK_AT_FRONT, !ANIMATE,
                         DEFER_RESUME, "inTaskToFront");
@@ -2268,7 +2338,7 @@
 
         addOrReparentStartingActivity(mInTask, "setTaskFromInTask");
         if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Starting new activity " + mStartActivity
-                + " in explicit task " + mStartActivity.getTask());
+                + " in explicit task " + mStartActivity.getTaskRecord());
 
         return START_SUCCESS;
     }
@@ -2294,17 +2364,18 @@
             mTargetStack.moveToFront("addingToTopTask");
         }
         final ActivityRecord prev = mTargetStack.getTopActivity();
-        final TaskRecord task = (prev != null) ? prev.getTask() : mTargetStack.createTaskRecord(
-                mSupervisor.getNextTaskIdForUserLocked(mStartActivity.userId), mStartActivity.info,
+        final TaskRecord task = (prev != null)
+                ? prev.getTaskRecord() : mTargetStack.createTaskRecord(
+                mSupervisor.getNextTaskIdForUserLocked(mStartActivity.mUserId), mStartActivity.info,
                 mIntent, null, null, true, mStartActivity, mSourceRecord, mOptions);
         addOrReparentStartingActivity(task, "setTaskToCurrentTopOrCreateNewTask");
         mTargetStack.positionChildWindowContainerAtTop(task);
         if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Starting new activity " + mStartActivity
-                + " in new guessed " + mStartActivity.getTask());
+                + " in new guessed " + mStartActivity.getTaskRecord());
     }
 
     private void addOrReparentStartingActivity(TaskRecord parent, String reason) {
-        if (mStartActivity.getTask() == null || mStartActivity.getTask() == parent) {
+        if (mStartActivity.getTaskRecord() == null || mStartActivity.getTaskRecord() == parent) {
             parent.addActivityToTop(mStartActivity);
         } else {
             mStartActivity.reparent(parent, parent.mActivities.size() /* top */, reason);
@@ -2340,14 +2411,14 @@
 
     private ActivityStack computeStackFocus(ActivityRecord r, boolean newTask, int launchFlags,
             ActivityOptions aOptions) {
-        final TaskRecord task = r.getTask();
+        final TaskRecord task = r.getTaskRecord();
         ActivityStack stack = getLaunchStack(r, launchFlags, task, aOptions);
         if (stack != null) {
             return stack;
         }
 
         final ActivityStack currentStack = task != null ? task.getStack() : null;
-        final ActivityStack focusedStack = mSupervisor.getTopDisplayFocusedStack();
+        final ActivityStack focusedStack = mRootActivityContainer.getTopDisplayFocusedStack();
         if (currentStack != null) {
             if (focusedStack != currentStack) {
                 if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS,
@@ -2368,18 +2439,18 @@
 
         if (mPreferredDisplayId != DEFAULT_DISPLAY) {
             // Try to put the activity in a stack on a secondary display.
-            stack = mSupervisor.getValidLaunchStackOnDisplay(mPreferredDisplayId, r, aOptions,
-                    mLaunchParams);
+            stack = mRootActivityContainer.getValidLaunchStackOnDisplay(
+                    mPreferredDisplayId, r, aOptions, mLaunchParams);
             if (stack == null) {
                 // If source display is not suitable - look for topmost valid stack in the system.
                 if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS,
                         "computeStackFocus: Can't launch on mPreferredDisplayId="
                                 + mPreferredDisplayId + ", looking on all displays.");
-                stack = mSupervisor.getNextValidLaunchStackLocked(r, mPreferredDisplayId);
+                stack = mRootActivityContainer.getNextValidLaunchStack(r, mPreferredDisplayId);
             }
         }
         if (stack == null) {
-            stack = mSupervisor.getLaunchStack(r, aOptions, task, ON_TOP);
+            stack = mRootActivityContainer.getLaunchStack(r, aOptions, task, ON_TOP);
         }
         if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, "computeStackFocus: New stack r="
                 + r + " stackId=" + stack.mStackId);
@@ -2389,7 +2460,7 @@
     /** Check if provided activity record can launch in currently focused stack. */
     // TODO: This method can probably be consolidated into getLaunchStack() below.
     private boolean canLaunchIntoFocusedStack(ActivityRecord r, boolean newTask) {
-        final ActivityStack focusedStack = mSupervisor.getTopDisplayFocusedStack();
+        final ActivityStack focusedStack = mRootActivityContainer.getTopDisplayFocusedStack();
         final boolean canUseFocusedStack;
         if (focusedStack.isActivityTypeAssistant()) {
             canUseFocusedStack = r.isActivityTypeAssistant();
@@ -2435,14 +2506,14 @@
             // full resolution.
             mLaunchParams.mPreferredDisplayId =
                     mPreferredDisplayId != DEFAULT_DISPLAY ? mPreferredDisplayId : INVALID_DISPLAY;
-            final ActivityStack stack = mSupervisor.getLaunchStack(r, aOptions, task, ON_TOP,
-                    mLaunchParams);
+            final ActivityStack stack =
+                    mRootActivityContainer.getLaunchStack(r, aOptions, task, ON_TOP, mLaunchParams);
             mLaunchParams.mPreferredDisplayId = mPreferredDisplayId;
             return stack;
         }
         // Otherwise handle adjacent launch.
 
-        final ActivityStack focusedStack = mSupervisor.getTopDisplayFocusedStack();
+        final ActivityStack focusedStack = mRootActivityContainer.getTopDisplayFocusedStack();
         // The parent activity doesn't want to launch the activity on top of itself, but
         // instead tries to put it onto other side in side-by-side mode.
         final ActivityStack parentStack = task != null ? task.getStack(): focusedStack;
@@ -2460,7 +2531,8 @@
             if (parentStack != null && parentStack.inSplitScreenPrimaryWindowingMode()) {
                 // If parent was in docked stack, the natural place to launch another activity
                 // will be fullscreen, so it can appear alongside the docked window.
-                final int activityType = mSupervisor.resolveActivityType(r, mOptions, task);
+                final int activityType =
+                        mRootActivityContainer.resolveActivityType(r, mOptions, task);
                 return parentStack.getDisplay().getOrCreateStack(
                         WINDOWING_MODE_SPLIT_SCREEN_SECONDARY, activityType, ON_TOP);
             } else {
@@ -2468,10 +2540,10 @@
                 // and if yes, we will launch into that stack. If not, we just put the new
                 // activity into parent's stack, because we can't find a better place.
                 final ActivityStack dockedStack =
-                        mSupervisor.getDefaultDisplay().getSplitScreenPrimaryStack();
+                        mRootActivityContainer.getDefaultDisplay().getSplitScreenPrimaryStack();
                 if (dockedStack != null && !dockedStack.shouldBeVisible(r)) {
                     // There is a docked stack, but it isn't visible, so we can't launch into that.
-                    return mSupervisor.getLaunchStack(r, aOptions, task, ON_TOP);
+                    return mRootActivityContainer.getLaunchStack(r, aOptions, task, ON_TOP);
                 } else {
                     return dockedStack;
                 }
@@ -2659,7 +2731,7 @@
         prefix = prefix + "  ";
         pw.print(prefix);
         pw.print("mCurrentUser=");
-        pw.println(mSupervisor.mCurrentUser);
+        pw.println(mRootActivityContainer.mCurrentUser);
         pw.print(prefix);
         pw.print("mLastStartReason=");
         pw.println(mLastStartReason);
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
index d665592..0cdbedb 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
@@ -473,4 +473,6 @@
     public abstract void setProfileApp(String profileApp);
     public abstract void setProfileProc(WindowProcessController wpc);
     public abstract void setProfilerInfo(ProfilerInfo profilerInfo);
+
+    public abstract ActivityMetricsLaunchObserverRegistry getLaunchObserverRegistry();
 }
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 1d00075..0967afd 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -91,8 +91,6 @@
         .PACKAGE;
 import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_DESTROYING;
 import static com.android.server.wm.ActivityStackSupervisor.DEFER_RESUME;
-import static com.android.server.wm.ActivityStackSupervisor.MATCH_TASK_IN_STACKS_ONLY;
-import static com.android.server.wm.ActivityStackSupervisor.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS;
 import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
 import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
 import static com.android.server.wm.ActivityStackSupervisor.REMOVE_FROM_RECENTS;
@@ -122,6 +120,8 @@
 import static com.android.server.wm.ActivityTaskManagerService.UiHandler.DISMISS_DIALOG_UI_MSG;
 import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE;
 import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_ORIGINAL_POSITION;
+import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_ONLY;
+import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS;
 import static com.android.server.wm.TaskRecord.LOCK_TASK_AUTH_DONT_LOCK;
 import static com.android.server.wm.TaskRecord.REPARENT_KEEP_STACK_AT_FRONT;
 import static com.android.server.wm.TaskRecord.REPARENT_LEAVE_STACK_IN_PLACE;
@@ -190,6 +190,7 @@
 import android.os.IBinder;
 import android.os.IUserManager;
 import android.os.LocaleList;
+import android.os.Looper;
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.os.PowerManager;
@@ -246,7 +247,6 @@
 import com.android.internal.util.function.pooled.PooledLambda;
 import com.android.server.AppOpsService;
 import com.android.server.AttributeCache;
-import com.android.server.DisplayThread;
 import com.android.server.LocalServices;
 import com.android.server.SystemService;
 import com.android.server.SystemServiceManager;
@@ -341,7 +341,8 @@
     ActivityManagerInternal mAmInternal;
     UriGrantsManagerInternal mUgmInternal;
     private PackageManagerInternal mPmInternal;
-    private ActivityTaskManagerInternal mInternal;
+    @VisibleForTesting
+    final ActivityTaskManagerInternal mInternal;
     PowerManagerInternal mPowerManagerInternal;
     private UsageStatsManagerInternal mUsageStatsInternal;
 
@@ -351,6 +352,7 @@
     /* Global service lock used by the package the owns this service. */
     final WindowManagerGlobalLock mGlobalLock = new WindowManagerGlobalLock();
     ActivityStackSupervisor mStackSupervisor;
+    RootActivityContainer mRootActivityContainer;
     WindowManagerService mWindowManager;
     private UserManagerService mUserManager;
     private AppOpsService mAppOpsService;
@@ -643,6 +645,7 @@
         mSystemThread = ActivityThread.currentActivityThread();
         mUiContext = mSystemThread.getSystemUiContext();
         mLifecycleManager = new ClientLifecycleManager();
+        mInternal = new LocalService();
         GL_ES_VERSION = SystemProperties.getInt("ro.opengles.version", GL_ES_VERSION_UNDEFINED);
     }
 
@@ -750,9 +753,9 @@
         return mGlobalLock;
     }
 
-    public void setActivityManagerService(IntentFirewall intentFirewall,
-            PendingIntentController intentController) {
-        mH = new H();
+    public void initialize(IntentFirewall intentFirewall, PendingIntentController intentController,
+            Looper looper) {
+        mH = new H(looper);
         mUiHandler = new UiHandler();
         mIntentFirewall = intentFirewall;
         final File systemDir = SystemServiceManager.ensureSystemDir();
@@ -764,7 +767,8 @@
         mTempConfig.setLocales(LocaleList.getDefault());
         mConfigurationSeq = mTempConfig.seq = 1;
         mStackSupervisor = createStackSupervisor();
-        mStackSupervisor.onConfigurationChanged(mTempConfig);
+        mRootActivityContainer = new RootActivityContainer(this);
+        mRootActivityContainer.onConfigurationChanged(mTempConfig);
 
         mTaskChangeNotificationController =
                 new TaskChangeNotificationController(mGlobalLock, mStackSupervisor, mH);
@@ -799,6 +803,7 @@
             mWindowManager = wm;
             mLockTaskController.setWindowManager(wm);
             mStackSupervisor.setWindowManager(wm);
+            mRootActivityContainer.setWindowManager(wm);
         }
     }
 
@@ -893,7 +898,6 @@
     }
 
     private void start() {
-        mInternal = new LocalService();
         LocalServices.addService(ActivityTaskManagerInternal.class, mInternal);
     }
 
@@ -1254,7 +1258,7 @@
                 sourceToken = resultTo;
             }
 
-            sourceRecord = mStackSupervisor.isInAnyStackLocked(sourceToken);
+            sourceRecord = mRootActivityContainer.isInAnyStack(sourceToken);
             if (sourceRecord == null) {
                 throw new SecurityException("Called with bad activity token: " + sourceToken);
             }
@@ -1438,7 +1442,7 @@
                 return true;
             }
             // Keep track of the root activity of the task before we finish it
-            TaskRecord tr = r.getTask();
+            final TaskRecord tr = r.getTaskRecord();
             ActivityRecord rootR = tr.getRootActivity();
             if (rootR == null) {
                 Slog.w(TAG, "Finishing task with all activities already finished");
@@ -1453,7 +1457,7 @@
             // We should consolidate.
             if (mController != null) {
                 // Find the first activity that is not finishing.
-                ActivityRecord next = r.getStack().topRunningActivityLocked(token, 0);
+                final ActivityRecord next = r.getActivityStack().topRunningActivityLocked(token, 0);
                 if (next != null) {
                     // ask watcher if this is allowed
                     boolean resumeOK = true;
@@ -1515,7 +1519,7 @@
 
                 // Do not allow task to finish if last task in lockTask mode. Launchable priv-apps
                 // can finish.
-                final TaskRecord task = r.getTask();
+                final TaskRecord task = r.getTaskRecord();
                 if (getLockTaskController().activityBlockedFromFinish(r)) {
                     return false;
                 }
@@ -1798,7 +1802,7 @@
                 }
                 final boolean translucentChanged = r.changeWindowTranslucency(true);
                 if (translucentChanged) {
-                    mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+                    mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
                 }
                 mWindowManager.setAppFullscreen(token, true);
                 return translucentChanged;
@@ -1818,7 +1822,7 @@
                 if (r == null) {
                     return false;
                 }
-                final TaskRecord task = r.getTask();
+                final TaskRecord task = r.getTaskRecord();
                 int index = task.mActivities.lastIndexOf(r);
                 if (index > 0) {
                     ActivityRecord under = task.mActivities.get(index - 1);
@@ -1826,9 +1830,9 @@
                 }
                 final boolean translucentChanged = r.changeWindowTranslucency(false);
                 if (translucentChanged) {
-                    r.getStack().convertActivityToTranslucent(r);
+                    r.getActivityStack().convertActivityToTranslucent(r);
                 }
-                mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+                mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
                 mWindowManager.setAppFullscreen(token, false);
                 return translucentChanged;
             }
@@ -1841,9 +1845,9 @@
     public void notifyActivityDrawn(IBinder token) {
         if (DEBUG_VISIBILITY) Slog.d(TAG_VISIBILITY, "notifyActivityDrawn: token=" + token);
         synchronized (mGlobalLock) {
-            ActivityRecord r = mStackSupervisor.isInAnyStackLocked(token);
+            ActivityRecord r = mRootActivityContainer.isInAnyStack(token);
             if (r != null) {
-                r.getStack().notifyActivityDrawnLocked(r);
+                r.getActivityStack().notifyActivityDrawnLocked(r);
             }
         }
     }
@@ -1878,7 +1882,7 @@
             synchronized (mGlobalLock) {
                 ActivityStack focusedStack = getTopDisplayFocusedStack();
                 if (focusedStack != null) {
-                    return mStackSupervisor.getStackInfo(focusedStack.mStackId);
+                    return mRootActivityContainer.getStackInfo(focusedStack.mStackId);
                 }
                 return null;
             }
@@ -1894,14 +1898,14 @@
         final long callingId = Binder.clearCallingIdentity();
         try {
             synchronized (mGlobalLock) {
-                final ActivityStack stack = mStackSupervisor.getStack(stackId);
+                final ActivityStack stack = mRootActivityContainer.getStack(stackId);
                 if (stack == null) {
                     Slog.w(TAG, "setFocusedStack: No stack with id=" + stackId);
                     return;
                 }
                 final ActivityRecord r = stack.topRunningActivityLocked();
                 if (r != null && r.moveFocusableActivityToTop("setFocusedStack")) {
-                    mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mRootActivityContainer.resumeFocusedStacksTopActivities();
                 }
             }
         } finally {
@@ -1916,14 +1920,14 @@
         final long callingId = Binder.clearCallingIdentity();
         try {
             synchronized (mGlobalLock) {
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId,
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId,
                         MATCH_TASK_IN_STACKS_ONLY);
                 if (task == null) {
                     return;
                 }
                 final ActivityRecord r = task.topRunningActivityLocked();
                 if (r != null && r.moveFocusableActivityToTop("setFocusedTask")) {
-                    mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mRootActivityContainer.resumeFocusedStacksTopActivities();
                 }
             }
         } finally {
@@ -1963,7 +1967,7 @@
         synchronized (mGlobalLock) {
             final ActivityRecord srec = ActivityRecord.forTokenLocked(token);
             if (srec != null) {
-                return srec.getStack().shouldUpRecreateTaskLocked(srec, destAffinity);
+                return srec.getActivityStack().shouldUpRecreateTaskLocked(srec, destAffinity);
             }
         }
         return false;
@@ -1976,7 +1980,8 @@
         synchronized (mGlobalLock) {
             final ActivityRecord r = ActivityRecord.forTokenLocked(token);
             if (r != null) {
-                return r.getStack().navigateUpToLocked(r, destIntent, resultCode, resultData);
+                return r.getActivityStack().navigateUpToLocked(
+                        r, destIntent, resultCode, resultData);
             }
             return false;
         }
@@ -2008,7 +2013,7 @@
             final long origId = Binder.clearCallingIdentity();
             try {
                 int taskId = ActivityRecord.getTaskForActivityLocked(token, !nonRoot);
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId);
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId);
                 if (task != null) {
                     return ActivityRecord.getStackLocked(token).moveTaskToBackLocked(taskId);
                 }
@@ -2026,7 +2031,7 @@
         Rect rect = new Rect();
         try {
             synchronized (mGlobalLock) {
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId,
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId,
                         MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
                 if (task == null) {
                     Slog.w(TAG, "getTaskBounds: taskId=" + taskId + " not found");
@@ -2057,7 +2062,7 @@
         synchronized (mGlobalLock) {
             enforceCallerIsRecentsOrHasPermission(
                     MANAGE_ACTIVITY_STACKS, "getTaskDescription()");
-            final TaskRecord tr = mStackSupervisor.anyTaskForIdLocked(id,
+            final TaskRecord tr = mRootActivityContainer.anyTaskForId(id,
                     MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
             if (tr != null) {
                 return tr.lastTaskDescription;
@@ -2077,7 +2082,7 @@
         synchronized (mGlobalLock) {
             final long ident = Binder.clearCallingIdentity();
             try {
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId,
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId,
                         MATCH_TASK_IN_STACKS_ONLY);
                 if (task == null) {
                     Slog.w(TAG, "setTaskWindowingMode: No task for id=" + taskId);
@@ -2166,7 +2171,7 @@
         }
         final long origId = Binder.clearCallingIdentity();
         try {
-            final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId);
+            final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId);
             if (task == null) {
                 Slog.d(TAG, "Could not find task for id: "+ taskId);
                 SafeActivityOptions.abort(options);
@@ -2283,7 +2288,7 @@
 
             final boolean allowed = isGetTasksAllowed("getTasks", Binder.getCallingPid(),
                     callingUid);
-            mStackSupervisor.getRunningTasks(maxNum, list, ignoreActivityType,
+            mRootActivityContainer.getRunningTasks(maxNum, list, ignoreActivityType,
                     ignoreWindowingMode, callingUid, allowed);
         }
 
@@ -2296,7 +2301,7 @@
             final long origId = Binder.clearCallingIdentity();
             ActivityRecord r = ActivityRecord.isInStackLocked(token);
             if (r != null) {
-                r.getStack().finishSubActivityLocked(r, resultWho, requestCode);
+                r.getActivityStack().finishSubActivityLocked(r, resultWho, requestCode);
             }
             Binder.restoreCallingIdentity(origId);
         }
@@ -2319,7 +2324,7 @@
         synchronized (mGlobalLock) {
             final long ident = Binder.clearCallingIdentity();
             try {
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId);
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId);
                 if (task == null) {
                     Slog.w(TAG, "moveTaskToStack: No task for id=" + taskId);
                     return;
@@ -2328,7 +2333,7 @@
                 if (DEBUG_STACK) Slog.d(TAG_STACK, "moveTaskToStack: moving task=" + taskId
                         + " to stackId=" + stackId + " toTop=" + toTop);
 
-                final ActivityStack stack = mStackSupervisor.getStack(stackId);
+                final ActivityStack stack = mRootActivityContainer.getStack(stackId);
                 if (stack == null) {
                     throw new IllegalStateException(
                             "moveTaskToStack: No stack for stackId=" + stackId);
@@ -2358,7 +2363,7 @@
         try {
             synchronized (mGlobalLock) {
                 if (animate) {
-                    final PinnedActivityStack stack = mStackSupervisor.getStack(stackId);
+                    final PinnedActivityStack stack = mRootActivityContainer.getStack(stackId);
                     if (stack == null) {
                         Slog.w(TAG, "resizeStack: stackId " + stackId + " not found.");
                         return;
@@ -2370,12 +2375,12 @@
                     stack.animateResizePinnedStack(null /* sourceHintBounds */, destBounds,
                             animationDuration, false /* fromFullscreen */);
                 } else {
-                    final ActivityStack stack = mStackSupervisor.getStack(stackId);
+                    final ActivityStack stack = mRootActivityContainer.getStack(stackId);
                     if (stack == null) {
                         Slog.w(TAG, "resizeStack: stackId " + stackId + " not found.");
                         return;
                     }
-                    mStackSupervisor.resizeStackLocked(stack, destBounds,
+                    mRootActivityContainer.resizeStack(stack, destBounds,
                             null /* tempTaskBounds */, null /* tempTaskInsetBounds */,
                             preserveWindows, allowResizeInDockedMode, !DEFER_RESUME);
                 }
@@ -2409,7 +2414,7 @@
         synchronized (mGlobalLock) {
             final long ident = Binder.clearCallingIdentity();
             try {
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId,
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId,
                         MATCH_TASK_IN_STACKS_ONLY);
                 if (task == null) {
                     Slog.w(TAG, "setTaskWindowingModeSplitScreenPrimary: No task for id=" + taskId);
@@ -2430,7 +2435,8 @@
                     stack.moveToFront("setTaskWindowingModeSplitScreenPrimary", task);
                 }
                 stack.setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, animate, showRecents,
-                        false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */);
+                        false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */,
+                        false /* creating */);
                 return windowingMode != task.getWindowingMode();
             } finally {
                 Binder.restoreCallingIdentity(ident);
@@ -2450,7 +2456,7 @@
         synchronized (mGlobalLock) {
             final long ident = Binder.clearCallingIdentity();
             try {
-                mStackSupervisor.removeStacksInWindowingModes(windowingModes);
+                mRootActivityContainer.removeStacksInWindowingModes(windowingModes);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -2465,7 +2471,7 @@
         synchronized (mGlobalLock) {
             final long ident = Binder.clearCallingIdentity();
             try {
-                mStackSupervisor.removeStacksWithActivityTypes(activityTypes);
+                mRootActivityContainer.removeStacksWithActivityTypes(activityTypes);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -2496,7 +2502,7 @@
         long ident = Binder.clearCallingIdentity();
         try {
             synchronized (mGlobalLock) {
-                return mStackSupervisor.getAllStackInfosLocked();
+                return mRootActivityContainer.getAllStackInfos();
             }
         } finally {
             Binder.restoreCallingIdentity(ident);
@@ -2509,7 +2515,7 @@
         long ident = Binder.clearCallingIdentity();
         try {
             synchronized (mGlobalLock) {
-                return mStackSupervisor.getStackInfo(windowingMode, activityType);
+                return mRootActivityContainer.getStackInfo(windowingMode, activityType);
             }
         } finally {
             Binder.restoreCallingIdentity(ident);
@@ -2540,7 +2546,7 @@
             if (r == null) {
                 return;
             }
-            startLockTaskModeLocked(r.getTask(), false /* isSystemCaller */);
+            startLockTaskModeLocked(r.getTaskRecord(), false /* isSystemCaller */);
         }
     }
 
@@ -2551,7 +2557,7 @@
         long ident = Binder.clearCallingIdentity();
         try {
             synchronized (mGlobalLock) {
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId,
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId,
                         MATCH_TASK_IN_STACKS_ONLY);
                 if (task == null) {
                     return;
@@ -2573,7 +2579,7 @@
             if (r == null) {
                 return;
             }
-            stopLockTaskModeInternal(r.getTask(), false /* isSystemCaller */);
+            stopLockTaskModeInternal(r.getTaskRecord(), false /* isSystemCaller */);
         }
     }
 
@@ -2593,7 +2599,7 @@
             return;
         }
 
-        final ActivityStack stack = mStackSupervisor.getTopDisplayFocusedStack();
+        final ActivityStack stack = mRootActivityContainer.getTopDisplayFocusedStack();
         if (stack == null || task != stack.topTask()) {
             throw new IllegalArgumentException("Invalid task, not in foreground");
         }
@@ -2608,7 +2614,7 @@
         long ident = Binder.clearCallingIdentity();
         try {
             // When a task is locked, dismiss the pinned stack if it exists
-            mStackSupervisor.removeStacksInWindowingModes(WINDOWING_MODE_PINNED);
+            mRootActivityContainer.removeStacksInWindowingModes(WINDOWING_MODE_PINNED);
 
             getLockTaskController().startLockTaskMode(task, isSystemCaller, callingUid);
         } finally {
@@ -2666,7 +2672,7 @@
             ActivityRecord r = ActivityRecord.isInStackLocked(token);
             if (r != null) {
                 r.setTaskDescription(td);
-                final TaskRecord task = r.getTask();
+                final TaskRecord task = r.getTaskRecord();
                 task.updateTaskDescription();
                 mTaskChangeNotificationController.notifyTaskDescriptionChanged(task.taskId, td);
             }
@@ -2710,7 +2716,7 @@
             try {
                 // TODO: VI Consider treating local voice interactions and voice tasks
                 // differently here
-                mStackSupervisor.finishVoiceTask(session);
+                mRootActivityContainer.finishVoiceTask(session);
             } finally {
                 Binder.restoreCallingIdentity(origId);
             }
@@ -2722,7 +2728,7 @@
     public boolean isTopOfTask(IBinder token) {
         synchronized (mGlobalLock) {
             ActivityRecord r = ActivityRecord.isInStackLocked(token);
-            return r != null && r.getTask().getTopActivity() == r;
+            return r != null && r.getTaskRecord().getTopActivity() == r;
         }
     }
 
@@ -2761,8 +2767,8 @@
             }
             if (structure != null) {
                 // Pre-fill the task/activity component for all assist data receivers
-                structure.setTaskId(pae.activity.getTask().taskId);
-                structure.setActivityComponent(pae.activity.realActivity);
+                structure.setTaskId(pae.activity.getTaskRecord().taskId);
+                structure.setActivityComponent(pae.activity.mActivityComponent);
                 structure.setHomeActivity(pae.isHome);
             }
             pae.haveResult = true;
@@ -2870,9 +2876,9 @@
                                     + ainfo.applicationInfo.uid + ", calling uid=" + callingUid);
                 }
 
-                final ActivityStack stack = r.getStack();
+                final ActivityStack stack = r.getActivityStack();
                 final TaskRecord task = stack.createTaskRecord(
-                        mStackSupervisor.getNextTaskIdForUserLocked(r.userId), ainfo, intent,
+                        mStackSupervisor.getNextTaskIdForUserLocked(r.mUserId), ainfo, intent,
                         null /* voiceSession */, null /* voiceInteractor */, !ON_TOP);
                 if (!mRecentTasks.addToBottom(task)) {
                     // The app has too many tasks already and we can't add any more
@@ -2900,7 +2906,7 @@
     @Override
     public void setTaskResizeable(int taskId, int resizeableMode) {
         synchronized (mGlobalLock) {
-            final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(
+            final TaskRecord task = mRootActivityContainer.anyTaskForId(
                     taskId, MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
             if (task == null) {
                 Slog.w(TAG, "setTaskResizeable: taskId=" + taskId + " not found");
@@ -2916,7 +2922,7 @@
         long ident = Binder.clearCallingIdentity();
         try {
             synchronized (mGlobalLock) {
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId,
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId,
                         MATCH_TASK_IN_STACKS_ONLY);
                 if (task == null) {
                     Slog.w(TAG, "resizeTask: taskId=" + taskId + " not found");
@@ -2968,7 +2974,7 @@
                 if (r == null) {
                     return false;
                 }
-                return r.getStack().safelyDestroyActivityLocked(r, "app-req");
+                return r.getActivityStack().safelyDestroyActivityLocked(r, "app-req");
             } finally {
                 Binder.restoreCallingIdentity(origId);
             }
@@ -2981,7 +2987,7 @@
             final long origId = Binder.clearCallingIdentity();
             try {
                 final WindowProcessController app = getProcessController(appInt);
-                mStackSupervisor.releaseSomeActivitiesLocked(app, "low-mem");
+                mRootActivityContainer.releaseSomeActivitiesLocked(app, "low-mem");
             } finally {
                 Binder.restoreCallingIdentity(origId);
             }
@@ -3075,7 +3081,7 @@
         synchronized (mGlobalLock) {
             final long ident = Binder.clearCallingIdentity();
             try {
-                final ActivityStack stack = mStackSupervisor.getStack(stackId);
+                final ActivityStack stack = mRootActivityContainer.getStack(stackId);
                 if (stack == null) {
                     Slog.w(TAG, "removeStack: No stack with id=" + stackId);
                     return;
@@ -3100,7 +3106,7 @@
             try {
                 if (DEBUG_STACK) Slog.d(TAG_STACK, "moveStackToDisplay: moving stackId=" + stackId
                         + " to displayId=" + displayId);
-                mStackSupervisor.moveStackToDisplayLocked(stackId, displayId, ON_TOP);
+                mRootActivityContainer.moveStackToDisplay(stackId, displayId, ON_TOP);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -3118,7 +3124,7 @@
                             "exitFreeformMode: No activity record matching token=" + token);
                 }
 
-                final ActivityStack stack = r.getStack();
+                final ActivityStack stack = r.getActivityStack();
                 if (stack == null || !stack.inFreeformWindowingMode()) {
                     throw new IllegalStateException(
                             "exitFreeformMode: You can only go fullscreen from freeform.");
@@ -3404,7 +3410,7 @@
             if (activity == null) {
                 return false;
             }
-            userId = activity.userId;
+            userId = activity.mUserId;
         }
         return !DevicePolicyCache.getInstance().getScreenCaptureDisabled(userId);
     }
@@ -3562,13 +3568,13 @@
             try {
                 if (DEBUG_STACK) Slog.d(TAG_STACK, "positionTaskInStack: positioning task="
                         + taskId + " in stackId=" + stackId + " at position=" + position);
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId);
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId);
                 if (task == null) {
                     throw new IllegalArgumentException("positionTaskInStack: no task for id="
                             + taskId);
                 }
 
-                final ActivityStack stack = mStackSupervisor.getStack(stackId);
+                final ActivityStack stack = mRootActivityContainer.getStack(stackId);
 
                 if (stack == null) {
                     throw new IllegalArgumentException("positionTaskInStack: no stack for id="
@@ -3623,7 +3629,7 @@
         try {
             synchronized (mGlobalLock) {
                 final ActivityStack stack =
-                        mStackSupervisor.getDefaultDisplay().getSplitScreenPrimaryStack();
+                        mRootActivityContainer.getDefaultDisplay().getSplitScreenPrimaryStack();
                 if (stack == null) {
                     Slog.w(TAG, "dismissSplitScreenMode: primary split-screen stack not found.");
                     return;
@@ -3633,7 +3639,7 @@
                     // Caller wants the current split-screen primary stack to be the top stack after
                     // it goes fullscreen, so move it to the front.
                     stack.moveToFront("dismissSplitScreenMode");
-                } else if (mStackSupervisor.isTopDisplayFocusedStack(stack)) {
+                } else if (mRootActivityContainer.isTopDisplayFocusedStack(stack)) {
                     // In this case the current split-screen primary stack shouldn't be the top
                     // stack after it goes fullscreen, but it current has focus, so we move the
                     // focus to the top-most split-screen secondary stack next to it.
@@ -3664,7 +3670,7 @@
         try {
             synchronized (mGlobalLock) {
                 final PinnedActivityStack stack =
-                        mStackSupervisor.getDefaultDisplay().getPinnedStack();
+                        mRootActivityContainer.getDefaultDisplay().getPinnedStack();
                 if (stack == null) {
                     Slog.w(TAG, "dismissPip: pinned stack not found.");
                     return;
@@ -3706,7 +3712,7 @@
         synchronized (mGlobalLock) {
             final long origId = Binder.clearCallingIdentity();
             try {
-                final ActivityStack stack = mStackSupervisor.getStack(fromStackId);
+                final ActivityStack stack = mRootActivityContainer.getStack(fromStackId);
                 if (stack != null){
                     if (!stack.isActivityTypeStandardOrUndefined()) {
                         throw new IllegalArgumentException(
@@ -3741,7 +3747,7 @@
 
             long ident = Binder.clearCallingIdentity();
             try {
-                return mStackSupervisor.moveTopStackActivityToPinnedStackLocked(stackId, bounds);
+                return mRootActivityContainer.moveTopStackActivityToPinnedStack(stackId);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -3778,14 +3784,14 @@
     }
 
     private boolean isInPictureInPictureMode(ActivityRecord r) {
-        if (r == null || r.getStack() == null || !r.inPinnedWindowingMode()
-                || r.getStack().isInStackLocked(r) == null) {
+        if (r == null || r.getActivityStack() == null || !r.inPinnedWindowingMode()
+                || r.getActivityStack().isInStackLocked(r) == null) {
             return false;
         }
 
         // If we are animating to fullscreen then we have already dispatched the PIP mode
         // changed, so we should reflect that check here as well.
-        final PinnedActivityStack stack = r.getStack();
+        final PinnedActivityStack stack = r.getActivityStack();
         final PinnedStackWindowController windowController = stack.getWindowContainerController();
         return !windowController.isAnimatingBoundsToFullscreen();
     }
@@ -3819,9 +3825,9 @@
                         // Adjust the source bounds by the insets for the transition down
                         final Rect sourceBounds = new Rect(
                                 r.pictureInPictureArgs.getSourceRectHint());
-                        mStackSupervisor.moveActivityToPinnedStackLocked(
+                        mRootActivityContainer.moveActivityToPinnedStack(
                                 r, sourceBounds, aspectRatio, "enterPictureInPictureMode");
-                        final PinnedActivityStack stack = r.getStack();
+                        final PinnedActivityStack stack = r.getActivityStack();
                         stack.setPictureInPictureAspectRatio(aspectRatio);
                         stack.setPictureInPictureActions(actions);
                         MetricsLoggerWrapper.logPictureInPictureEnter(mContext, r.appInfo.uid,
@@ -3865,7 +3871,7 @@
                     // If the activity is already in picture-in-picture, update the pinned stack now
                     // if it is not already expanding to fullscreen. Otherwise, the arguments will
                     // be used the next time the activity enters PiP
-                    final PinnedActivityStack stack = r.getStack();
+                    final PinnedActivityStack stack = r.getActivityStack();
                     if (!stack.isAnimatingBoundsToFullscreen()) {
                         stack.setPictureInPictureAspectRatio(
                                 r.pictureInPictureArgs.getAspectRatio());
@@ -3923,8 +3929,8 @@
         }
 
         if (params.hasSetAspectRatio()
-                && !mWindowManager.isValidPictureInPictureAspectRatio(r.getStack().mDisplayId,
-                params.getAspectRatio())) {
+                && !mWindowManager.isValidPictureInPictureAspectRatio(
+                        r.getActivityStack().mDisplayId, params.getAspectRatio())) {
             final float minAspectRatio = mContext.getResources().getFloat(
                     com.android.internal.R.dimen.config_pictureInPictureMinAspectRatio);
             final float maxAspectRatio = mContext.getResources().getFloat(
@@ -4010,7 +4016,7 @@
         }
 
         int err;
-        if ((err = vrService.hasVrPackage(packageName, r.userId)) !=
+        if ((err = vrService.hasVrPackage(packageName, r.mUserId)) !=
                 VrManagerInternal.NO_ERROR) {
             return err;
         }
@@ -4040,7 +4046,7 @@
             if (ActivityRecord.forTokenLocked(callingActivity) != activity) {
                 throw new SecurityException("Only focused activity can call startVoiceInteraction");
             }
-            if (mRunningVoice != null || activity.getTask().voiceSession != null
+            if (mRunningVoice != null || activity.getTaskRecord().voiceSession != null
                     || activity.voiceSession != null) {
                 Slog.w(TAG, "Already in a voice interaction, cannot start new voice interaction");
                 return;
@@ -4098,7 +4104,7 @@
 
         synchronized (mGlobalLock) {
             // Check if display is initialized in AM.
-            if (!mStackSupervisor.isDisplayAdded(displayId)) {
+            if (!mRootActivityContainer.isDisplayAdded(displayId)) {
                 // Call might come when display is not yet added or has already been removed.
                 if (DEBUG_CONFIGURATION) {
                     Slog.w(TAG, "Trying to update display configuration for non-existing displayId="
@@ -4188,7 +4194,7 @@
         final long ident = Binder.clearCallingIdentity();
         try {
             synchronized (mGlobalLock) {
-                final TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId,
+                final TaskRecord task = mRootActivityContainer.anyTaskForId(taskId,
                         MATCH_TASK_IN_STACKS_ONLY);
                 if (task == null) {
                     Slog.w(TAG, "cancelTaskWindowTransition: taskId=" + taskId + " not found");
@@ -4208,7 +4214,7 @@
         try {
             final TaskRecord task;
             synchronized (mGlobalLock) {
-                task = mStackSupervisor.anyTaskForIdLocked(taskId,
+                task = mRootActivityContainer.anyTaskForId(taskId,
                         MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
                 if (task == null) {
                     Slog.w(TAG, "getTaskSnapshot: taskId=" + taskId + " not found");
@@ -4250,7 +4256,7 @@
             if (mLastResumedActivity == null) {
                 return getCurrentUserId();
             }
-            return mLastResumedActivity.userId;
+            return mLastResumedActivity.mUserId;
         }
     }
 
@@ -4428,9 +4434,9 @@
         if (r.requestedVrComponent != null && r.getDisplayId() != DEFAULT_DISPLAY) {
             Slog.i(TAG, "Moving " + r.shortComponentName + " from stack " + r.getStackId()
                     + " to main stack for VR");
-            final ActivityStack stack = mStackSupervisor.getDefaultDisplay().getOrCreateStack(
+            final ActivityStack stack = mRootActivityContainer.getDefaultDisplay().getOrCreateStack(
                     WINDOWING_MODE_FULLSCREEN, r.getActivityType(), true /* toTop */);
-            moveTaskToStack(r.getTask().taskId, stack.mStackId, true /* toTop */);
+            moveTaskToStack(r.getTaskRecord().taskId, stack.mStackId, true /* toTop */);
         }
         mH.post(() -> {
             if (!mVrController.onVrModeChanged(r)) {
@@ -4442,7 +4448,7 @@
                 if (disableNonVrUi) {
                     // If we are in a VR mode where Picture-in-Picture mode is unsupported,
                     // then remove the pinned stack.
-                    mStackSupervisor.removeStacksInWindowingModes(WINDOWING_MODE_PINNED);
+                    mRootActivityContainer.removeStacksInWindowingModes(WINDOWING_MODE_PINNED);
                 }
             }
         });
@@ -4494,7 +4500,7 @@
     }
 
     ActivityStack getTopDisplayFocusedStack() {
-        return mStackSupervisor.getTopDisplayFocusedStack();
+        return mRootActivityContainer.getTopDisplayFocusedStack();
     }
 
     /** Pokes the task persister. */
@@ -4506,6 +4512,21 @@
         return mKeyguardController.isKeyguardLocked();
     }
 
+    /**
+     * Clears launch params for the given package.
+     * @param packageNames the names of the packages of which the launch params are to be cleared
+     */
+    @Override
+    public void clearLaunchParamsForPackages(List<String> packageNames) {
+        mAmInternal.enforceCallingPermission(Manifest.permission.MANAGE_ACTIVITY_STACKS,
+                "clearLaunchParamsForPackages");
+        synchronized (mGlobalLock) {
+            for (int i = 0; i < packageNames.size(); ++i) {
+                mStackSupervisor.mLaunchParamsPersister.removeRecordForPackage(packageNames.get(i));
+            }
+        }
+    }
+
     void dumpLastANRLocked(PrintWriter pw) {
         pw.println("ACTIVITY MANAGER LAST ANR (dumpsys activity lastanr)");
         if (mLastANRState == null) {
@@ -4555,12 +4576,12 @@
             int opti, boolean dumpAll, boolean dumpClient, String dumpPackage, String header) {
         pw.println(header);
 
-        boolean printedAnything = mStackSupervisor.dumpActivitiesLocked(fd, pw, dumpAll, dumpClient,
+        boolean printedAnything = mRootActivityContainer.dumpActivities(fd, pw, dumpAll, dumpClient,
                 dumpPackage);
         boolean needSep = printedAnything;
 
         boolean printed = ActivityStackSupervisor.printThisActivity(pw,
-                mStackSupervisor.getTopResumedActivity(),  dumpPackage, needSep,
+                mRootActivityContainer.getTopResumedActivity(),  dumpPackage, needSep,
                 "  ResumedActivity: ");
         if (printed) {
             printedAnything = true;
@@ -4582,7 +4603,7 @@
 
     void dumpActivityContainersLocked(PrintWriter pw) {
         pw.println("ACTIVITY MANAGER STARTER (dumpsys activity containers)");
-        mStackSupervisor.dumpChildrenNames(pw, " ");
+        mRootActivityContainer.dumpChildrenNames(pw, " ");
         pw.println(" ");
     }
 
@@ -4606,7 +4627,7 @@
         ArrayList<ActivityRecord> activities;
 
         synchronized (mGlobalLock) {
-            activities = mStackSupervisor.getDumpActivitiesLocked(name, dumpVisibleStacksOnly,
+            activities = mRootActivityContainer.getDumpActivities(name, dumpVisibleStacksOnly,
                     dumpFocusedStackOnly);
         }
 
@@ -4626,7 +4647,7 @@
             }
             needSep = true;
             synchronized (mGlobalLock) {
-                final TaskRecord task = r.getTask();
+                final TaskRecord task = r.getTaskRecord();
                 if (lastTask != task) {
                     lastTask = task;
                     pw.print("TASK "); pw.print(lastTask.affinity);
@@ -4681,7 +4702,7 @@
     }
 
     void writeSleepStateToProto(ProtoOutputStream proto) {
-        for (ActivityTaskManagerInternal.SleepToken st : mStackSupervisor.mSleepTokens) {
+        for (ActivityTaskManagerInternal.SleepToken st : mRootActivityContainer.mSleepTokens) {
             proto.write(ActivityManagerServiceDumpProcessesProto.SleepStatus.SLEEP_TOKENS,
                     st.toString());
         }
@@ -4726,7 +4747,7 @@
      * also corresponds to the merged configuration of the default display.
      */
     Configuration getGlobalConfiguration() {
-        return mStackSupervisor.getConfiguration();
+        return mRootActivityContainer.getConfiguration();
     }
 
     boolean updateConfigurationLocked(Configuration values, ActivityRecord starting,
@@ -4858,7 +4879,7 @@
         mTempConfig.seq = increaseConfigurationSeqLocked();
 
         // Update stored global config and notify everyone about the change.
-        mStackSupervisor.onConfigurationChanged(mTempConfig);
+        mRootActivityContainer.onConfigurationChanged(mTempConfig);
 
         Slog.i(TAG, "Config changes=" + Integer.toHexString(changes) + " " + mTempConfig);
         // TODO(multi-display): Update UsageEvents#Event to include displayId.
@@ -4905,7 +4926,7 @@
 
         // Override configuration of the default display duplicates global config, so we need to
         // update it also. This will also notify WindowManager about changes.
-        performDisplayOverrideConfigUpdate(mStackSupervisor.getConfiguration(), deferResume,
+        performDisplayOverrideConfigUpdate(mRootActivityContainer.getConfiguration(), deferResume,
                 DEFAULT_DISPLAY);
 
         return changes;
@@ -4959,12 +4980,12 @@
 
     private int performDisplayOverrideConfigUpdate(Configuration values, boolean deferResume,
             int displayId) {
-        mTempConfig.setTo(mStackSupervisor.getDisplayOverrideConfiguration(displayId));
+        mTempConfig.setTo(mRootActivityContainer.getDisplayOverrideConfiguration(displayId));
         final int changes = mTempConfig.updateFrom(values);
         if (changes != 0) {
             Slog.i(TAG, "Override config changes=" + Integer.toHexString(changes) + " "
                     + mTempConfig + " for displayId=" + displayId);
-            mStackSupervisor.setDisplayOverrideConfiguration(mTempConfig, displayId);
+            mRootActivityContainer.setDisplayOverrideConfiguration(mTempConfig, displayId);
 
             final boolean isDensityChange = (changes & ActivityInfo.CONFIG_DENSITY) != 0;
             if (isDensityChange && displayId == DEFAULT_DISPLAY) {
@@ -5014,6 +5035,10 @@
         return mAmInternal.isActivityStartsLoggingEnabled();
     }
 
+    boolean isBackgroundActivityStartsEnabled() {
+        return mAmInternal.isBackgroundActivityStartsEnabled();
+    }
+
     void enableScreenAfterBoot(boolean booted) {
         EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_ENABLE_SCREEN,
                 SystemClock.uptimeMillis());
@@ -5086,7 +5111,7 @@
 
     /** Update AMS states when an activity is resumed. */
     void setResumedActivityUncheckLocked(ActivityRecord r, String reason) {
-        final TaskRecord task = r.getTask();
+        final TaskRecord task = r.getTaskRecord();
         if (task.isActivityTypeStandard()) {
             if (mCurAppTimeTracker != r.appTimeTracker) {
                 // We are switching app tracking.  Complete the current one.
@@ -5094,7 +5119,7 @@
                     mCurAppTimeTracker.stop();
                     mH.obtainMessage(
                             REPORT_TIME_TRACKER_MSG, mCurAppTimeTracker).sendToTarget();
-                    mStackSupervisor.clearOtherAppTimeTrackers(r.appTimeTracker);
+                    mRootActivityContainer.clearOtherAppTimeTrackers(r.appTimeTracker);
                     mCurAppTimeTracker = null;
                 }
                 if (r.appTimeTracker != null) {
@@ -5118,7 +5143,7 @@
             if (mLastResumedActivity != null) {
                 final IVoiceInteractionSession session;
 
-                final TaskRecord lastResumedActivityTask = mLastResumedActivity.getTask();
+                final TaskRecord lastResumedActivityTask = mLastResumedActivity.getTaskRecord();
                 if (lastResumedActivityTask != null
                         && lastResumedActivityTask.voiceSession != null) {
                     session = lastResumedActivityTask.voiceSession;
@@ -5136,8 +5161,8 @@
             }
         }
 
-        if (mLastResumedActivity != null && r.userId != mLastResumedActivity.userId) {
-            mAmInternal.sendForegroundProfileChanged(r.userId);
+        if (mLastResumedActivity != null && r.mUserId != mLastResumedActivity.mUserId) {
+            mAmInternal.sendForegroundProfileChanged(r.mUserId);
         }
         updateResumedAppTrace(r);
         mLastResumedActivity = r;
@@ -5148,21 +5173,22 @@
         applyUpdateVrModeLocked(r);
 
         EventLogTags.writeAmSetResumedActivity(
-                r == null ? -1 : r.userId,
+                r == null ? -1 : r.mUserId,
                 r == null ? "NULL" : r.shortComponentName,
                 reason);
     }
 
     ActivityTaskManagerInternal.SleepToken acquireSleepToken(String tag, int displayId) {
         synchronized (mGlobalLock) {
-            final ActivityTaskManagerInternal.SleepToken token = mStackSupervisor.createSleepTokenLocked(tag, displayId);
+            final ActivityTaskManagerInternal.SleepToken token =
+                    mRootActivityContainer.createSleepToken(tag, displayId);
             updateSleepIfNeededLocked();
             return token;
         }
     }
 
     void updateSleepIfNeededLocked() {
-        final boolean shouldSleep = !mStackSupervisor.hasAwakeDisplay();
+        final boolean shouldSleep = !mRootActivityContainer.hasAwakeDisplay();
         final boolean wasSleeping = mSleeping;
         boolean updateOomAdj = false;
 
@@ -5178,7 +5204,7 @@
                 mTopProcessState = ActivityManager.PROCESS_STATE_TOP;
                 mStackSupervisor.comeOutOfSleepIfNeededLocked();
             }
-            mStackSupervisor.applySleepTokensLocked(true /* applyToStacks */);
+            mRootActivityContainer.applySleepTokens(true /* applyToStacks */);
             if (wasSleeping) {
                 updateOomAdj = true;
             }
@@ -5209,7 +5235,8 @@
 
     void updateUsageStats(ActivityRecord component, boolean resumed) {
         final Message m = PooledLambda.obtainMessage(ActivityManagerInternal::updateUsageStats,
-                mAmInternal, component.realActivity, component.app.mUid, component.userId, resumed);
+                mAmInternal, component.mActivityComponent, component.app.mUid, component.mUserId,
+                resumed);
         mH.sendMessage(m);
     }
 
@@ -5244,7 +5271,7 @@
         mHeavyWeightProcess = root.app;
         final Message m = PooledLambda.obtainMessage(
                 ActivityTaskManagerService::postHeavyWeightProcessNotification, this,
-                root.app, root.intent, root.userId);
+                root.app, root.intent, root.mUserId);
         mH.sendMessage(m);
     }
 
@@ -5354,7 +5381,7 @@
 
     // TODO(b/111541062): Update app time tracking to make it aware of multiple resumed activities
     private void startTimeTrackingFocusedActivityLocked() {
-        final ActivityRecord resumedActivity = mStackSupervisor.getTopResumedActivity();
+        final ActivityRecord resumedActivity = mRootActivityContainer.getTopResumedActivity();
         if (!mSleeping && mCurAppTimeTracker != null && resumedActivity != null) {
             mCurAppTimeTracker.start(resumedActivity.packageName);
         }
@@ -5379,7 +5406,7 @@
     /** Applies latest configuration and/or visibility updates if needed. */
     private boolean ensureConfigAndVisibilityAfterUpdate(ActivityRecord starting, int changes) {
         boolean kept = true;
-        final ActivityStack mainStack = mStackSupervisor.getTopDisplayFocusedStack();
+        final ActivityStack mainStack = mRootActivityContainer.getTopDisplayFocusedStack();
         // mainStack is null during startup.
         if (mainStack != null) {
             if (changes != 0 && starting == null) {
@@ -5394,7 +5421,7 @@
                         false /* preserveWindow */);
                 // And we need to make sure at this point that all other activities
                 // are made visible with the correct configuration.
-                mStackSupervisor.ensureActivitiesVisibleLocked(starting, changes,
+                mRootActivityContainer.ensureActivitiesVisible(starting, changes,
                         !PRESERVE_WINDOWS);
             }
         }
@@ -5566,8 +5593,8 @@
         static final int FIRST_ACTIVITY_STACK_MSG = 100;
         static final int FIRST_SUPERVISOR_STACK_MSG = 200;
 
-        public H() {
-            super(DisplayThread.get().getLooper());
+        H(Looper looper) {
+            super(looper);
         }
 
         @Override
@@ -5610,9 +5637,9 @@
         @Override
         public ComponentName getHomeActivityForUser(int userId) {
             synchronized (mGlobalLock) {
-                ActivityRecord homeActivity =
-                        mStackSupervisor.getDefaultDisplayHomeActivityForUser(userId);
-                return homeActivity == null ? null : homeActivity.realActivity;
+                final ActivityRecord homeActivity =
+                        mRootActivityContainer.getDefaultDisplayHomeActivityForUser(userId);
+                return homeActivity == null ? null : homeActivity.mActivityComponent;
             }
         }
 
@@ -5649,14 +5676,14 @@
         @Override
         public List<IBinder> getTopVisibleActivities() {
             synchronized (mGlobalLock) {
-                return mStackSupervisor.getTopVisibleActivities();
+                return mRootActivityContainer.getTopVisibleActivities();
             }
         }
 
         @Override
         public void notifyDockedStackMinimizedChanged(boolean minimized) {
             synchronized (mGlobalLock) {
-                mStackSupervisor.setDockedStackMinimized(minimized);
+                mRootActivityContainer.setDockedStackMinimized(minimized);
             }
         }
 
@@ -5737,7 +5764,7 @@
                 // We might change the visibilities here, so prepare an empty app transition which
                 // might be overridden later if we actually change visibilities.
                 final ActivityDisplay activityDisplay =
-                        mStackSupervisor.getActivityDisplay(displayId);
+                        mRootActivityContainer.getActivityDisplay(displayId);
                 if (activityDisplay == null) {
                     return;
                 }
@@ -5746,7 +5773,7 @@
                 if (!wasTransitionSet) {
                     dwc.prepareAppTransition(TRANSIT_NONE, false /* alwaysKeepCurrent */);
                 }
-                mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+                mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
 
                 // If there was a transition set already we don't want to interfere with it as we
                 // might be starting it too early.
@@ -5763,7 +5790,7 @@
         public void notifyKeyguardTrustedChanged() {
             synchronized (mGlobalLock) {
                 if (mKeyguardController.isKeyguardShowing(DEFAULT_DISPLAY)) {
-                    mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+                    mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
                 }
             }
         }
@@ -5790,7 +5817,7 @@
                             "setFocusedActivity: No activity record matching token=" + token);
                 }
                 if (r.moveFocusableActivityToTop("setFocusedActivity")) {
-                    mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mRootActivityContainer.resumeFocusedStacksTopActivities();
                 }
             }
         }
@@ -5941,7 +5968,7 @@
         public boolean shuttingDown(boolean booted, int timeout) {
             synchronized (mGlobalLock) {
                 mShuttingDown = true;
-                mStackSupervisor.prepareForShutdownLocked();
+                mRootActivityContainer.prepareForShutdown();
                 updateEventDispatchingLocked(booted);
                 notifyTaskPersisterLocked(null, true);
                 return mStackSupervisor.shutdownLocked(timeout);
@@ -6048,7 +6075,7 @@
         @Override
         public void onPackageReplaced(ApplicationInfo aInfo) {
             synchronized (mGlobalLock) {
-                mStackSupervisor.updateActivityApplicationInfoLocked(aInfo);
+                mRootActivityContainer.updateActivityApplicationInfo(aInfo);
             }
         }
 
@@ -6078,7 +6105,7 @@
             mH.post(() -> {
                 synchronized (mGlobalLock) {
                     final ActivityDisplay activityDisplay =
-                            mStackSupervisor.getActivityDisplay(displayId);
+                            mRootActivityContainer.getActivityDisplay(displayId);
                     if (activityDisplay == null) {
                         // Call might come when display is not yet added or has been removed.
                         if (DEBUG_CONFIGURATION) {
@@ -6106,9 +6133,9 @@
                 int requestCode, int resultCode, Intent data) {
             synchronized (mGlobalLock) {
                 final ActivityRecord r = ActivityRecord.isInStackLocked(activityToken);
-                if (r != null && r.getStack() != null) {
-                    r.getStack().sendActivityResultLocked(callingUid, r, resultWho, requestCode,
-                            resultCode, data);
+                if (r != null && r.getActivityStack() != null) {
+                    r.getActivityStack().sendActivityResultLocked(callingUid, r, resultWho,
+                            requestCode, resultCode, data);
                 }
             }
         }
@@ -6161,14 +6188,14 @@
         @Override
         public boolean startHomeActivity(int userId, String reason) {
             synchronized (mGlobalLock) {
-                return mStackSupervisor.startHomeOnDisplay(userId, reason, DEFAULT_DISPLAY);
+                return mRootActivityContainer.startHomeOnDisplay(userId, reason, DEFAULT_DISPLAY);
             }
         }
 
         @Override
         public boolean startHomeOnAllDisplays(int userId, String reason) {
             synchronized (mGlobalLock) {
-                return mStackSupervisor.startHomeOnAllDisplays(userId, reason);
+                return mRootActivityContainer.startHomeOnAllDisplays(userId, reason);
             }
         }
 
@@ -6232,7 +6259,7 @@
                 Runnable finishInstrumentationCallback) {
             synchronized (mGlobalLock) {
                 // Remove this application's activities from active lists.
-                boolean hasVisibleActivities = mStackSupervisor.handleAppDiedLocked(wpc);
+                boolean hasVisibleActivities = mRootActivityContainer.handleAppDied(wpc);
 
                 wpc.clearRecentTasks();
                 wpc.clearActivities();
@@ -6244,12 +6271,12 @@
                 mWindowManager.deferSurfaceLayout();
                 try {
                     if (!restarting && hasVisibleActivities
-                            && !mStackSupervisor.resumeFocusedStacksTopActivitiesLocked()) {
+                            && !mRootActivityContainer.resumeFocusedStacksTopActivities()) {
                         // If there was nothing to resume, and we are not already restarting this
                         // process, but there is a visible activity that is hosted by the process...
                         // then make sure all visible activities are running, taking care of
                         // restarting this process.
-                        mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+                        mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
                     }
                 } finally {
                     mWindowManager.continueSurfaceLayout();
@@ -6278,7 +6305,7 @@
                     }
                     mWindowManager.closeSystemDialogs(reason);
 
-                    mStackSupervisor.closeSystemDialogsLocked();
+                    mRootActivityContainer.closeSystemDialogs();
                 }
                 // Call into AM outside the synchronized block.
                 mAmInternal.broadcastCloseSystemDialogs(reason);
@@ -6292,9 +6319,9 @@
                 String packageName, Set<String> disabledClasses, int userId, boolean booted) {
             synchronized (mGlobalLock) {
                 // Clean-up disabled activities.
-                if (mStackSupervisor.finishDisabledPackageActivitiesLocked(
+                if (mRootActivityContainer.finishDisabledPackageActivities(
                         packageName, disabledClasses, true, false, userId) && booted) {
-                    mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mRootActivityContainer.resumeFocusedStacksTopActivities();
                     mStackSupervisor.scheduleIdleLocked();
                 }
 
@@ -6311,7 +6338,7 @@
 
                 boolean didSomething =
                         getActivityStartController().clearPendingActivityLaunches(packageName);
-                didSomething |= mStackSupervisor.finishDisabledPackageActivitiesLocked(packageName,
+                didSomething |= mRootActivityContainer.finishDisabledPackageActivities(packageName,
                         null, doit, evenPersistent, userId);
                 return didSomething;
             }
@@ -6320,7 +6347,7 @@
         @Override
         public void resumeTopActivities(boolean scheduleIdle) {
             synchronized (mGlobalLock) {
-                mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                mRootActivityContainer.resumeFocusedStacksTopActivities();
                 if (scheduleIdle) {
                     mStackSupervisor.scheduleIdleLocked();
                 }
@@ -6337,7 +6364,7 @@
         @Override
         public boolean attachApplication(WindowProcessController wpc) throws RemoteException {
             synchronized (mGlobalLock) {
-                return mStackSupervisor.attachApplicationLocked(wpc);
+                return mRootActivityContainer.attachApplication(wpc);
             }
         }
 
@@ -6359,7 +6386,7 @@
                             // Showing launcher to avoid user entering credential twice.
                             startHomeActivity(currentUserId, "notifyLockedProfile");
                         }
-                        mStackSupervisor.lockAllProfileTasks(userId);
+                        mRootActivityContainer.lockAllProfileTasks(userId);
                     }
                 } finally {
                     Binder.restoreCallingIdentity(ident);
@@ -6380,9 +6407,9 @@
                     ActivityOptions activityOptions = options != null
                             ? new ActivityOptions(options) : ActivityOptions.makeBasic();
                     final ActivityRecord homeActivity =
-                            mStackSupervisor.getDefaultDisplayHomeActivity();
+                            mRootActivityContainer.getDefaultDisplayHomeActivity();
                     if (homeActivity != null) {
-                        activityOptions.setLaunchTaskId(homeActivity.getTask().taskId);
+                        activityOptions.setLaunchTaskId(homeActivity.getTaskRecord().taskId);
                     }
                     mContext.startActivityAsUser(intent, activityOptions.toBundle(),
                             UserHandle.CURRENT);
@@ -6397,7 +6424,7 @@
             synchronized (mGlobalLock) {
                 // The output proto of "activity --proto activities"
                 // is ActivityManagerServiceDumpActivitiesProto
-                mStackSupervisor.writeToProto(proto,
+                mRootActivityContainer.writeToProto(proto,
                         ActivityManagerServiceDumpActivitiesProto.ACTIVITY_STACK_SUPERVISOR);
             }
         }
@@ -6492,7 +6519,7 @@
                 }
                 if (dumpPackage == null) {
                     pw.println("  mGlobalConfiguration: " + getGlobalConfiguration());
-                    mStackSupervisor.dumpDisplayConfigs(pw, "  ");
+                    mRootActivityContainer.dumpDisplayConfigs(pw, "  ");
                 }
                 if (dumpAll) {
                     if (dumpPackage == null) {
@@ -6520,7 +6547,7 @@
                 if (dumpPackage == null) {
                     pw.println("  mWakefulness="
                             + PowerManagerInternal.wakefulnessToString(wakefulness));
-                    pw.println("  mSleepTokens=" + mStackSupervisor.mSleepTokens);
+                    pw.println("  mSleepTokens=" + mRootActivityContainer.mSleepTokens);
                     if (mRunningVoice != null) {
                         pw.println("  mRunningVoice=" + mRunningVoice);
                         pw.println("  mVoiceWakeLock" + mVoiceWakeLock);
@@ -6647,14 +6674,14 @@
         @Override
         public boolean canGcNow() {
             synchronized (mGlobalLock) {
-                return isSleeping() || mStackSupervisor.allResumedActivitiesIdle();
+                return isSleeping() || mRootActivityContainer.allResumedActivitiesIdle();
             }
         }
 
         @Override
         public WindowProcessController getTopApp() {
             synchronized (mGlobalLock) {
-                final ActivityRecord top = mStackSupervisor.getTopResumedActivity();
+                final ActivityRecord top = mRootActivityContainer.getTopResumedActivity();
                 return top != null ? top.app : null;
             }
         }
@@ -6662,8 +6689,8 @@
         @Override
         public void rankTaskLayersIfNeeded() {
             synchronized (mGlobalLock) {
-                if (mStackSupervisor != null) {
-                    mStackSupervisor.rankTaskLayersIfNeeded();
+                if (mRootActivityContainer != null) {
+                    mRootActivityContainer.rankTaskLayersIfNeeded();
                 }
             }
         }
@@ -6671,35 +6698,35 @@
         @Override
         public void scheduleDestroyAllActivities(String reason) {
             synchronized (mGlobalLock) {
-                mStackSupervisor.scheduleDestroyAllActivities(null, reason);
+                mRootActivityContainer.scheduleDestroyAllActivities(null, reason);
             }
         }
 
         @Override
         public void removeUser(int userId) {
             synchronized (mGlobalLock) {
-                mStackSupervisor.removeUserLocked(userId);
+                mRootActivityContainer.removeUser(userId);
             }
         }
 
         @Override
         public boolean switchUser(int userId, UserState userState) {
             synchronized (mGlobalLock) {
-                return mStackSupervisor.switchUserLocked(userId, userState);
+                return mRootActivityContainer.switchUser(userId, userState);
             }
         }
 
         @Override
         public void onHandleAppCrash(WindowProcessController wpc) {
             synchronized (mGlobalLock) {
-                mStackSupervisor.handleAppCrashLocked(wpc);
+                mRootActivityContainer.handleAppCrash(wpc);
             }
         }
 
         @Override
         public int finishTopCrashedActivities(WindowProcessController crashedApp, String reason) {
             synchronized (mGlobalLock) {
-                return mStackSupervisor.finishTopCrashedActivitiesLocked(crashedApp, reason);
+                return mRootActivityContainer.finishTopCrashedActivities(crashedApp, reason);
             }
         }
 
@@ -6869,5 +6896,12 @@
                 mProfilerInfo = profilerInfo;
             }
         }
+
+        @Override
+        public ActivityMetricsLaunchObserverRegistry getLaunchObserverRegistry() {
+            synchronized (mGlobalLock) {
+                return mStackSupervisor.getActivityMetricsLogger().getLaunchObserverRegistry();
+            }
+        }
     }
-}
\ No newline at end of file
+}
diff --git a/services/core/java/com/android/server/wm/AppTaskImpl.java b/services/core/java/com/android/server/wm/AppTaskImpl.java
index 04fef02..441c593 100644
--- a/services/core/java/com/android/server/wm/AppTaskImpl.java
+++ b/services/core/java/com/android/server/wm/AppTaskImpl.java
@@ -16,8 +16,8 @@
 
 package com.android.server.wm;
 
-import static com.android.server.wm.ActivityStackSupervisor.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS;
 import static com.android.server.wm.ActivityStackSupervisor.REMOVE_FROM_RECENTS;
+import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS;
 
 import android.app.ActivityManager;
 import android.app.IAppTask;
@@ -77,7 +77,7 @@
         synchronized (mService.mGlobalLock) {
             long origId = Binder.clearCallingIdentity();
             try {
-                TaskRecord tr = mService.mStackSupervisor.anyTaskForIdLocked(mTaskId,
+                TaskRecord tr = mService.mRootActivityContainer.anyTaskForId(mTaskId,
                         MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
                 if (tr == null) {
                     throw new IllegalArgumentException("Unable to find task ID " + mTaskId);
@@ -115,7 +115,7 @@
         TaskRecord tr;
         IApplicationThread appThread;
         synchronized (mService.mGlobalLock) {
-            tr = mService.mStackSupervisor.anyTaskForIdLocked(mTaskId,
+            tr = mService.mRootActivityContainer.anyTaskForId(mTaskId,
                     MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
             if (tr == null) {
                 throw new IllegalArgumentException("Unable to find task ID " + mTaskId);
@@ -143,7 +143,7 @@
         synchronized (mService.mGlobalLock) {
             long origId = Binder.clearCallingIdentity();
             try {
-                TaskRecord tr = mService.mStackSupervisor.anyTaskForIdLocked(mTaskId,
+                TaskRecord tr = mService.mRootActivityContainer.anyTaskForId(mTaskId,
                         MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
                 if (tr == null) {
                     throw new IllegalArgumentException("Unable to find task ID " + mTaskId);
diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java
index 94a47dd..bf00ffb 100644
--- a/services/core/java/com/android/server/wm/AppTransitionController.java
+++ b/services/core/java/com/android/server/wm/AppTransitionController.java
@@ -51,7 +51,6 @@
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 import static com.android.server.wm.WindowManagerService.H.NOTIFY_APP_TRANSITION_STARTING;
 
-import android.app.WindowConfiguration;
 import android.os.Trace;
 import android.util.ArraySet;
 import android.util.Slog;
@@ -83,7 +82,7 @@
     AppTransitionController(WindowManagerService service, DisplayContent displayContent) {
         mService = service;
         mDisplayContent = displayContent;
-        mWallpaperControllerLocked = new WallpaperController(mService);
+        mWallpaperControllerLocked = mDisplayContent.mWallpaperController;
     }
 
     /**
@@ -97,16 +96,17 @@
         Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "AppTransitionReady");
 
         if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "**** GOOD TO GO");
-        int transit = mDisplayContent.mAppTransition.getAppTransition();
+        final AppTransition appTransition = mDisplayContent.mAppTransition;
+        int transit = appTransition.getAppTransition();
         if (mDisplayContent.mSkipAppTransitionAnimation && !isKeyguardGoingAwayTransit(transit)) {
             transit = WindowManager.TRANSIT_UNSET;
         }
         mDisplayContent.mSkipAppTransitionAnimation = false;
         mDisplayContent.mNoAnimationNotifyOnTransitionFinished.clear();
 
-        mDisplayContent.mAppTransition.removeAppTransitionTimeoutCallbacks();
+        appTransition.removeAppTransitionTimeoutCallbacks();
 
-        mService.mRoot.mWallpaperMayChange = false;
+        mDisplayContent.mWallpaperMayChange = false;
 
         int i;
         for (i = 0; i < appsCount; i++) {
@@ -121,7 +121,7 @@
         // Adjust wallpaper before we pull the lower/upper target, since pending changes
         // (like the clearAnimatingFlags() above) might affect wallpaper target result.
         // Or, the opening app window should be a wallpaper target.
-        mWallpaperControllerLocked.adjustWallpaperWindowsForAppTransitionIfNeeded(mDisplayContent,
+        mWallpaperControllerLocked.adjustWallpaperWindowsForAppTransitionIfNeeded(
                 mDisplayContent.mOpeningApps);
 
         // Determine if closing and opening app token sets are wallpaper targets, in which case
@@ -142,7 +142,7 @@
         // done behind a dream window.
         final ArraySet<Integer> activityTypes = collectActivityTypes(mDisplayContent.mOpeningApps,
                 mDisplayContent.mClosingApps);
-        final boolean allowAnimations = mService.mPolicy.allowAppAnimationsLw();
+        final boolean allowAnimations = mDisplayContent.getDisplayPolicy().allowAppAnimationsLw();
         final AppWindowToken animLpToken = allowAnimations
                 ? findAnimLayoutParamsToken(transit, activityTypes)
                 : null;
@@ -166,15 +166,15 @@
             handleClosingApps(transit, animLp, voiceInteraction);
             handleOpeningApps(transit, animLp, voiceInteraction);
 
-            mDisplayContent.mAppTransition.setLastAppTransition(transit, topOpeningApp,
+            appTransition.setLastAppTransition(transit, topOpeningApp,
                     topClosingApp);
 
-            final int flags = mDisplayContent.mAppTransition.getTransitFlags();
-            layoutRedo = mDisplayContent.mAppTransition.goodToGo(transit, topOpeningApp,
+            final int flags = appTransition.getTransitFlags();
+            layoutRedo = appTransition.goodToGo(transit, topOpeningApp,
                     topClosingApp, mDisplayContent.mOpeningApps, mDisplayContent.mClosingApps);
             handleNonAppWindowsInTransition(transit, flags);
-            mDisplayContent.mAppTransition.postAnimationCallback();
-            mDisplayContent.mAppTransition.clear();
+            appTransition.postAnimationCallback();
+            appTransition.clear();
         } finally {
             mService.mSurfaceAnimationRunner.continueStartingAnimations();
         }
@@ -255,8 +255,8 @@
     }
 
     /**
-     * @return The set of {@link WindowConfiguration.ActivityType}s contained in the set of apps in
-     *         {@code array1} and {@code array2}.
+     * @return The set of {@link android.app.WindowConfiguration.ActivityType}s contained in the set
+     *         of apps in {@code array1} and {@code array2}.
      */
     private static ArraySet<Integer> collectActivityTypes(ArraySet<AppWindowToken> array1,
             ArraySet<AppWindowToken> array2) {
@@ -305,7 +305,7 @@
             AppWindowToken wtoken = openingApps.valueAt(i);
             if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "Now opening app" + wtoken);
 
-            if (!wtoken.setVisibility(animLp, true, transit, false, voiceInteraction)) {
+            if (!wtoken.commitVisibility(animLp, true, transit, false, voiceInteraction)) {
                 // This token isn't going to be animating. Add it to the list of tokens to
                 // be notified of app transition complete since the notification will not be
                 // sent be the app window animator.
@@ -341,7 +341,7 @@
             if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "Now closing app " + wtoken);
             // TODO: Do we need to add to mNoAnimationNotifyOnTransitionFinished like above if not
             //       animating?
-            wtoken.setVisibility(animLp, false, transit, false, voiceInteraction);
+            wtoken.commitVisibility(animLp, false, transit, false, voiceInteraction);
             wtoken.updateReportedVisibilityLocked();
             // Force the allDrawn flag, because we want to start
             // this guy's animations regardless of whether it's
@@ -350,9 +350,8 @@
             wtoken.deferClearAllDrawn = false;
             // Ensure that apps that are mid-starting are also scheduled to have their
             // starting windows removed after the animation is complete
-            if (wtoken.startingWindow != null && !wtoken.startingWindow.mAnimatingExit
-                    && wtoken.getController() != null) {
-                wtoken.getController().removeStartingWindow();
+            if (wtoken.startingWindow != null && !wtoken.startingWindow.mAnimatingExit) {
+                wtoken.removeStartingWindow();
             }
 
             if (mDisplayContent.mAppTransition.isNextAppTransitionThumbnailDown()) {
diff --git a/services/core/java/com/android/server/wm/AppWarnings.java b/services/core/java/com/android/server/wm/AppWarnings.java
index 0436857..6c3fbc1 100644
--- a/services/core/java/com/android/server/wm/AppWarnings.java
+++ b/services/core/java/com/android/server/wm/AppWarnings.java
@@ -123,7 +123,8 @@
 
         // TODO(b/75318890): Need to move this to when the app actually crashes.
         if (/*ActivityManager.isRunningInTestHarness()
-                &&*/ !mAlwaysShowUnsupportedCompileSdkWarningActivities.contains(r.realActivity)) {
+                &&*/ !mAlwaysShowUnsupportedCompileSdkWarningActivities.contains(
+                        r.mActivityComponent)) {
             // Don't show warning if we are running in a test harness and we don't have to always
             // show for this activity.
             return;
diff --git a/services/core/java/com/android/server/wm/AppWindowContainerController.java b/services/core/java/com/android/server/wm/AppWindowContainerController.java
deleted file mode 100644
index bd1460a..0000000
--- a/services/core/java/com/android/server/wm/AppWindowContainerController.java
+++ /dev/null
@@ -1,914 +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.wm;
-
-import static android.app.ActivityOptions.ANIM_CLIP_REVEAL;
-import static android.app.ActivityOptions.ANIM_CUSTOM;
-import static android.app.ActivityOptions.ANIM_NONE;
-import static android.app.ActivityOptions.ANIM_OPEN_CROSS_PROFILE_APPS;
-import static android.app.ActivityOptions.ANIM_REMOTE_ANIMATION;
-import static android.app.ActivityOptions.ANIM_SCALE_UP;
-import static android.app.ActivityOptions.ANIM_THUMBNAIL_ASPECT_SCALE_DOWN;
-import static android.app.ActivityOptions.ANIM_THUMBNAIL_ASPECT_SCALE_UP;
-import static android.app.ActivityOptions.ANIM_THUMBNAIL_SCALE_DOWN;
-import static android.app.ActivityOptions.ANIM_THUMBNAIL_SCALE_UP;
-import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
-import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
-import static android.view.WindowManager.TRANSIT_DOCK_TASK_FROM_RECENTS;
-import static android.view.WindowManager.TRANSIT_UNSET;
-
-import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ADD_REMOVE;
-import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_APP_TRANSITIONS;
-import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ORIENTATION;
-import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STARTING_WINDOW;
-import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_TOKEN_MOVEMENT;
-import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_VISIBILITY;
-import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
-
-import android.app.ActivityManager.TaskSnapshot;
-import android.app.ActivityOptions;
-import android.content.Intent;
-import android.content.ComponentName;
-import android.content.res.CompatibilityInfo;
-import android.content.res.Configuration;
-import android.graphics.GraphicBuffer;
-import android.graphics.Rect;
-import android.os.Debug;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.Message;
-import android.util.Slog;
-import android.view.AppTransitionAnimationSpec;
-import android.view.IAppTransitionAnimationSpecsFuture;
-import android.view.IApplicationToken;
-import android.view.RemoteAnimationDefinition;
-import android.view.WindowManager;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.server.AttributeCache;
-import com.android.server.policy.WindowManagerPolicy.StartingSurface;
-
-/**
- * Controller for the app window token container. This is created by activity manager to link
- * activity records to the app window token container they use in window manager.
- *
- * Test class: {@link AppWindowContainerControllerTests}
- */
-public class AppWindowContainerController
-        extends WindowContainerController<AppWindowToken, AppWindowContainerListener> {
-
-    private static final int STARTING_WINDOW_TYPE_NONE = 0;
-    private static final int STARTING_WINDOW_TYPE_SNAPSHOT = 1;
-    private static final int STARTING_WINDOW_TYPE_SPLASH_SCREEN = 2;
-
-    private final IApplicationToken mToken;
-    private final Handler mHandler;
-
-    private final class H extends Handler {
-        public static final int NOTIFY_WINDOWS_DRAWN = 1;
-        public static final int NOTIFY_STARTING_WINDOW_DRAWN = 2;
-        public static final int NOTIFY_WINDOWS_NOTDRAWN = 3;
-
-        public H(Looper looper) {
-            super(looper);
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case NOTIFY_WINDOWS_DRAWN:
-                    if (mListener == null) {
-                        return;
-                    }
-                    if (DEBUG_VISIBILITY) Slog.v(TAG_WM, "Reporting drawn in "
-                            + AppWindowContainerController.this.mToken);
-                    mListener.onWindowsDrawn(true /* drawn */, msg.getWhen());
-                    break;
-                case NOTIFY_STARTING_WINDOW_DRAWN:
-                    if (mListener == null) {
-                        return;
-                    }
-                    if (DEBUG_VISIBILITY) Slog.v(TAG_WM, "Reporting starting window drawn in "
-                            + AppWindowContainerController.this.mToken);
-                    mListener.onStartingWindowDrawn(msg.getWhen());
-                    break;
-                case NOTIFY_WINDOWS_NOTDRAWN:
-                    if (mListener == null) {
-                        return;
-                    }
-                    if (DEBUG_VISIBILITY) Slog.v(TAG_WM, "Reporting not drawn in "
-                            + AppWindowContainerController.this.mToken);
-                    mListener.onWindowsDrawn(false /* drawn */, msg.getWhen());
-                    break;
-                default:
-                    break;
-            }
-        }
-    }
-
-    private final Runnable mOnWindowsVisible = () -> {
-        if (mListener == null) {
-            return;
-        }
-        if (DEBUG_VISIBILITY) Slog.v(TAG_WM, "Reporting visible in "
-                + AppWindowContainerController.this.mToken);
-        mListener.onWindowsVisible();
-    };
-
-    private final Runnable mOnWindowsGone = () -> {
-        if (mListener == null) {
-            return;
-        }
-        if (DEBUG_VISIBILITY) Slog.v(TAG_WM, "Reporting gone in "
-                + AppWindowContainerController.this.mToken);
-        mListener.onWindowsGone();
-    };
-
-    private final Runnable mAddStartingWindow = new Runnable() {
-
-        @Override
-        public void run() {
-            final StartingData startingData;
-            final AppWindowToken container;
-
-            synchronized (mGlobalLock) {
-                if (mContainer == null) {
-                    if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "mContainer was null while trying to"
-                            + " add starting window");
-                    return;
-                }
-
-                // There can only be one adding request, silly caller!
-                mService.mAnimationHandler.removeCallbacks(this);
-
-                startingData = mContainer.startingData;
-                container = mContainer;
-            }
-
-            if (startingData == null) {
-                // Animation has been canceled... do nothing.
-                if (DEBUG_STARTING_WINDOW)
-                    Slog.v(TAG_WM, "startingData was nulled out before handling"
-                            + " mAddStartingWindow: " + mContainer);
-                return;
-            }
-
-            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Add starting "
-                    + AppWindowContainerController.this + ": startingData="
-                    + container.startingData);
-
-            StartingSurface surface = null;
-            try {
-                surface = startingData.createStartingSurface(container);
-            } catch (Exception e) {
-                Slog.w(TAG_WM, "Exception when adding starting window", e);
-            }
-            if (surface != null) {
-                boolean abort = false;
-                synchronized (mGlobalLock) {
-                    // If the window was successfully added, then
-                    // we need to remove it.
-                    if (container.removed || container.startingData == null) {
-                        if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM,
-                                "Aborted starting " + container
-                                        + ": removed=" + container.removed
-                                        + " startingData=" + container.startingData);
-                        container.startingWindow = null;
-                        container.startingData = null;
-                        abort = true;
-                    } else {
-                        container.startingSurface = surface;
-                    }
-                    if (DEBUG_STARTING_WINDOW && !abort) Slog.v(TAG_WM,
-                            "Added starting " + mContainer
-                                    + ": startingWindow="
-                                    + container.startingWindow + " startingView="
-                                    + container.startingSurface);
-                }
-                if (abort) {
-                    surface.remove();
-                }
-            } else if (DEBUG_STARTING_WINDOW) {
-                Slog.v(TAG_WM, "Surface returned was null: " + mContainer);
-            }
-        }
-    };
-
-    public AppWindowContainerController(TaskWindowContainerController taskController,
-            IApplicationToken token, ComponentName activityComponent,
-            AppWindowContainerListener listener, int index, int requestedOrientation,
-            boolean fullscreen, boolean showForAllUsers, int configChanges,
-            boolean voiceInteraction, boolean launchTaskBehind, boolean alwaysFocusable,
-            int targetSdkVersion, int rotationAnimationHint, long inputDispatchingTimeoutNanos) {
-        this(taskController, token, activityComponent, listener, index, requestedOrientation,
-                fullscreen, showForAllUsers, configChanges, voiceInteraction, launchTaskBehind,
-                alwaysFocusable, targetSdkVersion, rotationAnimationHint,
-                inputDispatchingTimeoutNanos, WindowManagerService.getInstance());
-    }
-
-    public AppWindowContainerController(TaskWindowContainerController taskController,
-            IApplicationToken token, ComponentName activityComponent,
-            AppWindowContainerListener listener, int index, int requestedOrientation,
-            boolean fullscreen, boolean showForAllUsers, int configChanges,
-            boolean voiceInteraction, boolean launchTaskBehind, boolean alwaysFocusable,
-            int targetSdkVersion, int rotationAnimationHint, long inputDispatchingTimeoutNanos,
-            WindowManagerService service) {
-        super(listener, service);
-        mHandler = new H(service.mH.getLooper());
-        mToken = token;
-        synchronized (mGlobalLock) {
-            AppWindowToken atoken = mRoot.getAppWindowToken(mToken.asBinder());
-            if (atoken != null) {
-                // TODO: Should this throw an exception instead?
-                Slog.w(TAG_WM, "Attempted to add existing app token: " + mToken);
-                return;
-            }
-
-            final Task task = taskController.mContainer;
-            if (task == null) {
-                throw new IllegalArgumentException("AppWindowContainerController: invalid "
-                        + " controller=" + taskController);
-            }
-
-            atoken = createAppWindow(mService, token, activityComponent, voiceInteraction,
-                    task.getDisplayContent(), inputDispatchingTimeoutNanos, fullscreen,
-                    showForAllUsers, targetSdkVersion, requestedOrientation, rotationAnimationHint,
-                    configChanges, launchTaskBehind, alwaysFocusable, this);
-            if (DEBUG_TOKEN_MOVEMENT || DEBUG_ADD_REMOVE) Slog.v(TAG_WM, "addAppToken: " + atoken
-                    + " controller=" + taskController + " at " + index);
-            task.addChild(atoken, index);
-        }
-    }
-
-    @VisibleForTesting
-    AppWindowToken createAppWindow(WindowManagerService service, IApplicationToken token,
-            ComponentName component, boolean voiceInteraction, DisplayContent dc,
-            long inputDispatchingTimeoutNanos, boolean fullscreen, boolean showForAllUsers,
-            int targetSdk, int orientation, int rotationAnimationHint, int configChanges,
-            boolean launchTaskBehind, boolean alwaysFocusable,
-            AppWindowContainerController controller) {
-        return new AppWindowToken(service, token, component, voiceInteraction, dc,
-                inputDispatchingTimeoutNanos, fullscreen, showForAllUsers, targetSdk, orientation,
-                rotationAnimationHint, configChanges, launchTaskBehind, alwaysFocusable,
-                controller);
-    }
-
-    public void removeContainer(int displayId) {
-        synchronized (mGlobalLock) {
-            final DisplayContent dc = mRoot.getDisplayContent(displayId);
-            if (dc == null) {
-                Slog.w(TAG_WM, "removeAppToken: Attempted to remove binder token: "
-                        + mToken + " from non-existing displayId=" + displayId);
-                return;
-            }
-            dc.removeAppToken(mToken.asBinder());
-            super.removeContainer();
-        }
-    }
-
-    @Override
-    public void removeContainer() {
-        throw new UnsupportedOperationException("Use removeContainer(displayId) instead.");
-    }
-
-    public void reparent(TaskWindowContainerController taskController, int position) {
-        synchronized (mGlobalLock) {
-            if (DEBUG_ADD_REMOVE) Slog.i(TAG_WM, "reparent: moving app token=" + mToken
-                    + " to task=" + taskController + " at " + position);
-            if (mContainer == null) {
-                if (DEBUG_ADD_REMOVE) Slog.i(TAG_WM,
-                        "reparent: could not find app token=" + mToken);
-                return;
-            }
-            final Task task = taskController.mContainer;
-            if (task == null) {
-                throw new IllegalArgumentException("reparent: could not find task="
-                        + taskController);
-            }
-            mContainer.reparent(task, position);
-            mContainer.getDisplayContent().layoutAndAssignWindowLayersIfNeeded();
-        }
-    }
-
-    public Configuration setOrientation(int requestedOrientation, int displayId,
-            Configuration displayConfig, boolean freezeScreenIfNeeded) {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                Slog.w(TAG_WM,
-                        "Attempted to set orientation of non-existing app token: " + mToken);
-                return null;
-            }
-
-            mContainer.setOrientation(requestedOrientation);
-
-            final IBinder binder = freezeScreenIfNeeded ? mToken.asBinder() : null;
-            return mService.updateOrientationFromAppTokens(displayConfig, binder, displayId);
-
-        }
-    }
-
-    public int getOrientation() {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                return SCREEN_ORIENTATION_UNSPECIFIED;
-            }
-
-            return mContainer.getOrientationIgnoreVisibility();
-        }
-    }
-
-    public void setDisablePreviewScreenshots(boolean disable) {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                Slog.w(TAG_WM, "Attempted to set disable screenshots of non-existing app"
-                        + " token: " + mToken);
-                return;
-            }
-            mContainer.setDisablePreviewScreenshots(disable);
-        }
-    }
-
-    public void setVisibility(boolean visible, boolean deferHidingClient) {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                Slog.w(TAG_WM, "Attempted to set visibility of non-existing app token: "
-                        + mToken);
-                return;
-            }
-
-            final AppWindowToken wtoken = mContainer;
-            final AppTransition appTransition = mContainer.getDisplayContent().mAppTransition;
-
-            // Don't set visibility to false if we were already not visible. This prevents WM from
-            // adding the app to the closing app list which doesn't make sense for something that is
-            // already not visible. However, set visibility to true even if we are already visible.
-            // This makes sure the app is added to the opening apps list so that the right
-            // transition can be selected.
-            // TODO: Probably a good idea to separate the concept of opening/closing apps from the
-            // concept of setting visibility...
-            if (!visible && wtoken.hiddenRequested) {
-
-                if (!deferHidingClient && wtoken.mDeferHidingClient) {
-                    // We previously deferred telling the client to hide itself when visibility was
-                    // initially set to false. Now we would like it to hide, so go ahead and set it.
-                    wtoken.mDeferHidingClient = deferHidingClient;
-                    wtoken.setClientHidden(true);
-                }
-                return;
-            }
-
-            if (DEBUG_APP_TRANSITIONS || DEBUG_ORIENTATION) Slog.v(TAG_WM, "setAppVisibility("
-                    + mToken + ", visible=" + visible + "): " + appTransition
-                    + " hidden=" + wtoken.isHidden() + " hiddenRequested="
-                    + wtoken.hiddenRequested + " Callers=" + Debug.getCallers(6));
-
-            final DisplayContent displayContent = mContainer.getDisplayContent();
-            displayContent.mOpeningApps.remove(wtoken);
-            displayContent.mClosingApps.remove(wtoken);
-            wtoken.waitingToShow = false;
-            wtoken.hiddenRequested = !visible;
-            wtoken.mDeferHidingClient = deferHidingClient;
-
-            if (!visible) {
-                // If the app is dead while it was visible, we kept its dead window on screen.
-                // Now that the app is going invisible, we can remove it. It will be restarted
-                // if made visible again.
-                wtoken.removeDeadWindows();
-            } else {
-                if (!appTransition.isTransitionSet()
-                        && appTransition.isReady()) {
-                    // Add the app mOpeningApps if transition is unset but ready. This means
-                    // we're doing a screen freeze, and the unfreeze will wait for all opening
-                    // apps to be ready.
-                    displayContent.mOpeningApps.add(wtoken);
-                }
-                wtoken.startingMoved = false;
-                // If the token is currently hidden (should be the common case), or has been
-                // stopped, then we need to set up to wait for its windows to be ready.
-                if (wtoken.isHidden() || wtoken.mAppStopped) {
-                    wtoken.clearAllDrawn();
-
-                    // If the app was already visible, don't reset the waitingToShow state.
-                    if (wtoken.isHidden()) {
-                        wtoken.waitingToShow = true;
-                    }
-                }
-
-                // In the case where we are making an app visible but holding off for a transition,
-                // we still need to tell the client to make its windows visible so they get drawn.
-                // Otherwise, we will wait on performing the transition until all windows have been
-                // drawn, they never will be, and we are sad.
-                wtoken.setClientHidden(false);
-
-                wtoken.requestUpdateWallpaperIfNeeded();
-
-                if (DEBUG_ADD_REMOVE) Slog.v(TAG_WM, "No longer Stopped: " + wtoken);
-                wtoken.mAppStopped = false;
-
-                mContainer.transferStartingWindowFromHiddenAboveTokenIfNeeded();
-            }
-
-            // If we are preparing an app transition, then delay changing
-            // the visibility of this token until we execute that transition.
-            if (wtoken.okToAnimate() && appTransition.isTransitionSet()) {
-                wtoken.inPendingTransaction = true;
-                if (visible) {
-                    displayContent.mOpeningApps.add(wtoken);
-                    wtoken.mEnteringAnimation = true;
-                } else {
-                    displayContent.mClosingApps.add(wtoken);
-                    wtoken.mEnteringAnimation = false;
-                }
-                if (appTransition.getAppTransition()
-                        == WindowManager.TRANSIT_TASK_OPEN_BEHIND) {
-                    // We're launchingBehind, add the launching activity to mOpeningApps.
-                    final WindowState win = mContainer.getDisplayContent().findFocusedWindow();
-                    if (win != null) {
-                        final AppWindowToken focusedToken = win.mAppToken;
-                        if (focusedToken != null) {
-                            if (DEBUG_APP_TRANSITIONS) Slog.d(TAG_WM, "TRANSIT_TASK_OPEN_BEHIND, "
-                                    + " adding " + focusedToken + " to mOpeningApps");
-                            // Force animation to be loaded.
-                            focusedToken.setHidden(true);
-                            displayContent.mOpeningApps.add(focusedToken);
-                        }
-                    }
-                }
-                return;
-            }
-
-            wtoken.setVisibility(null, visible, TRANSIT_UNSET, true, wtoken.mVoiceInteraction);
-            wtoken.updateReportedVisibilityLocked();
-        }
-    }
-
-    /**
-     * Notifies that we launched an app that might be visible or not visible depending on what kind
-     * of Keyguard flags it's going to set on its windows.
-     */
-    public void notifyUnknownVisibilityLaunched() {
-        synchronized (mGlobalLock) {
-            if (mContainer != null) {
-                mContainer.getDisplayContent().mUnknownAppVisibilityController.notifyLaunched(
-                        mContainer);
-            }
-        }
-    }
-
-    public boolean addStartingWindow(String pkg, int theme, CompatibilityInfo compatInfo,
-            CharSequence nonLocalizedLabel, int labelRes, int icon, int logo, int windowFlags,
-            IBinder transferFrom, boolean newTask, boolean taskSwitch, boolean processRunning,
-            boolean allowTaskSnapshot, boolean activityCreated, boolean fromRecents) {
-        synchronized (mGlobalLock) {
-            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "setAppStartingWindow: token=" + mToken
-                    + " pkg=" + pkg + " transferFrom=" + transferFrom + " newTask=" + newTask
-                    + " taskSwitch=" + taskSwitch + " processRunning=" + processRunning
-                    + " allowTaskSnapshot=" + allowTaskSnapshot);
-
-            if (mContainer == null) {
-                Slog.w(TAG_WM, "Attempted to set icon of non-existing app token: " + mToken);
-                return false;
-            }
-
-            // If the display is frozen, we won't do anything until the actual window is
-            // displayed so there is no reason to put in the starting window.
-            if (!mContainer.okToDisplay()) {
-                return false;
-            }
-
-            if (mContainer.startingData != null) {
-                return false;
-            }
-
-            final WindowState mainWin = mContainer.findMainWindow();
-            if (mainWin != null && mainWin.mWinAnimator.getShown()) {
-                // App already has a visible window...why would you want a starting window?
-                return false;
-            }
-
-            final TaskSnapshot snapshot = mService.mTaskSnapshotController.getSnapshot(
-                    mContainer.getTask().mTaskId, mContainer.getTask().mUserId,
-                    false /* restoreFromDisk */, false /* reducedResolution */);
-            final int type = getStartingWindowType(newTask, taskSwitch, processRunning,
-                    allowTaskSnapshot, activityCreated, fromRecents, snapshot);
-
-            if (type == STARTING_WINDOW_TYPE_SNAPSHOT) {
-                return createSnapshot(snapshot);
-            }
-
-            // If this is a translucent window, then don't show a starting window -- the current
-            // effect (a full-screen opaque starting window that fades away to the real contents
-            // when it is ready) does not work for this.
-            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Checking theme of starting window: 0x"
-                    + Integer.toHexString(theme));
-            if (theme != 0) {
-                AttributeCache.Entry ent = AttributeCache.instance().get(pkg, theme,
-                        com.android.internal.R.styleable.Window, mService.mCurrentUserId);
-                if (ent == null) {
-                    // Whoops!  App doesn't exist. Um. Okay. We'll just pretend like we didn't
-                    // see that.
-                    return false;
-                }
-                final boolean windowIsTranslucent = ent.array.getBoolean(
-                        com.android.internal.R.styleable.Window_windowIsTranslucent, false);
-                final boolean windowIsFloating = ent.array.getBoolean(
-                        com.android.internal.R.styleable.Window_windowIsFloating, false);
-                final boolean windowShowWallpaper = ent.array.getBoolean(
-                        com.android.internal.R.styleable.Window_windowShowWallpaper, false);
-                final boolean windowDisableStarting = ent.array.getBoolean(
-                        com.android.internal.R.styleable.Window_windowDisablePreview, false);
-                if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Translucent=" + windowIsTranslucent
-                        + " Floating=" + windowIsFloating
-                        + " ShowWallpaper=" + windowShowWallpaper);
-                if (windowIsTranslucent) {
-                    return false;
-                }
-                if (windowIsFloating || windowDisableStarting) {
-                    return false;
-                }
-                if (windowShowWallpaper) {
-                    if (mContainer.getDisplayContent().mWallpaperController.getWallpaperTarget()
-                            == null) {
-                        // If this theme is requesting a wallpaper, and the wallpaper
-                        // is not currently visible, then this effectively serves as
-                        // an opaque window and our starting window transition animation
-                        // can still work.  We just need to make sure the starting window
-                        // is also showing the wallpaper.
-                        windowFlags |= FLAG_SHOW_WALLPAPER;
-                    } else {
-                        return false;
-                    }
-                }
-            }
-
-            if (mContainer.transferStartingWindow(transferFrom)) {
-                return true;
-            }
-
-            // There is no existing starting window, and we don't want to create a splash screen, so
-            // that's it!
-            if (type != STARTING_WINDOW_TYPE_SPLASH_SCREEN) {
-                return false;
-            }
-
-            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Creating SplashScreenStartingData");
-            mContainer.startingData = new SplashScreenStartingData(mService, pkg, theme,
-                    compatInfo, nonLocalizedLabel, labelRes, icon, logo, windowFlags,
-                    mContainer.getMergedOverrideConfiguration());
-            scheduleAddStartingWindow();
-        }
-        return true;
-    }
-
-    private int getStartingWindowType(boolean newTask, boolean taskSwitch, boolean processRunning,
-            boolean allowTaskSnapshot, boolean activityCreated, boolean fromRecents,
-            TaskSnapshot snapshot) {
-        if (mContainer.getDisplayContent().mAppTransition.getAppTransition()
-                == TRANSIT_DOCK_TASK_FROM_RECENTS) {
-            // TODO(b/34099271): Remove this statement to add back the starting window and figure
-            // out why it causes flickering, the starting window appears over the thumbnail while
-            // the docked from recents transition occurs
-            return STARTING_WINDOW_TYPE_NONE;
-        } else if (newTask || !processRunning || (taskSwitch && !activityCreated)) {
-            return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
-        } else if (taskSwitch && allowTaskSnapshot) {
-            return snapshot == null ? STARTING_WINDOW_TYPE_NONE
-                    : snapshotOrientationSameAsTask(snapshot) || fromRecents
-                            ? STARTING_WINDOW_TYPE_SNAPSHOT : STARTING_WINDOW_TYPE_SPLASH_SCREEN;
-        } else {
-            return STARTING_WINDOW_TYPE_NONE;
-        }
-    }
-
-    void scheduleAddStartingWindow() {
-        // Note: we really want to do sendMessageAtFrontOfQueue() because we
-        // want to process the message ASAP, before any other queued
-        // messages.
-        if (!mService.mAnimationHandler.hasCallbacks(mAddStartingWindow)) {
-            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Enqueueing ADD_STARTING");
-            mService.mAnimationHandler.postAtFrontOfQueue(mAddStartingWindow);
-        }
-    }
-
-    private boolean createSnapshot(TaskSnapshot snapshot) {
-        if (snapshot == null) {
-            return false;
-        }
-
-        if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Creating SnapshotStartingData");
-        mContainer.startingData = new SnapshotStartingData(mService, snapshot);
-        scheduleAddStartingWindow();
-        return true;
-    }
-
-    private boolean snapshotOrientationSameAsTask(TaskSnapshot snapshot) {
-        if (snapshot == null) {
-            return false;
-        }
-        return mContainer.getTask().getConfiguration().orientation == snapshot.getOrientation();
-    }
-
-    public void removeStartingWindow() {
-        synchronized (mGlobalLock) {
-            if (mContainer.startingWindow == null) {
-                if (mContainer.startingData != null) {
-                    // Starting window has not been added yet, but it is scheduled to be added.
-                    // Go ahead and cancel the request.
-                    if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM,
-                            "Clearing startingData for token=" + mContainer);
-                    mContainer.startingData = null;
-                }
-                return;
-            }
-
-            final StartingSurface surface;
-            if (mContainer.startingData != null) {
-                surface = mContainer.startingSurface;
-                mContainer.startingData = null;
-                mContainer.startingSurface = null;
-                mContainer.startingWindow = null;
-                mContainer.startingDisplayed = false;
-                if (surface == null) {
-                    if (DEBUG_STARTING_WINDOW) {
-                        Slog.v(TAG_WM, "startingWindow was set but startingSurface==null, couldn't "
-                                + "remove");
-                    }
-                    return;
-                }
-            } else {
-                if (DEBUG_STARTING_WINDOW) {
-                    Slog.v(TAG_WM, "Tried to remove starting window but startingWindow was null:"
-                            + mContainer);
-                }
-                return;
-            }
-
-            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Schedule remove starting " + mContainer
-                    + " startingWindow=" + mContainer.startingWindow
-                    + " startingView=" + mContainer.startingSurface
-                    + " Callers=" + Debug.getCallers(5));
-
-            // Use the same thread to remove the window as we used to add it, as otherwise we end up
-            // with things in the view hierarchy being called from different threads.
-            mService.mAnimationHandler.post(() -> {
-                if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Removing startingView=" + surface);
-                try {
-                    surface.remove();
-                } catch (Exception e) {
-                    Slog.w(TAG_WM, "Exception when removing starting window", e);
-                }
-            });
-        }
-    }
-
-    public void pauseKeyDispatching() {
-        synchronized (mGlobalLock) {
-            if (mContainer != null) {
-                mContainer.getDisplayContent().getInputMonitor().pauseDispatchingLw(mContainer);
-            }
-        }
-    }
-
-    public void resumeKeyDispatching() {
-        synchronized (mGlobalLock) {
-            if (mContainer != null) {
-                mContainer.getDisplayContent().getInputMonitor().resumeDispatchingLw(mContainer);
-            }
-        }
-    }
-
-    public void notifyAppResumed(boolean wasStopped) {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                Slog.w(TAG_WM, "Attempted to notify resumed of non-existing app token: " + mToken);
-                return;
-            }
-            mContainer.notifyAppResumed(wasStopped);
-        }
-    }
-
-    public void notifyAppStopping() {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                Slog.w(TAG_WM, "Attempted to notify stopping on non-existing app token: "
-                        + mToken);
-                return;
-            }
-            mContainer.detachChildren();
-        }
-    }
-
-    public void notifyAppStopped() {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                Slog.w(TAG_WM, "Attempted to notify stopped of non-existing app token: "
-                        + mToken);
-                return;
-            }
-            mContainer.notifyAppStopped();
-        }
-    }
-
-    public void startFreezingScreen(int configChanges) {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                Slog.w(TAG_WM,
-                        "Attempted to freeze screen with non-existing app token: " + mContainer);
-                return;
-            }
-
-            if (configChanges == 0 && mContainer.okToDisplay()) {
-                if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Skipping set freeze of " + mToken);
-                return;
-            }
-
-            mContainer.startFreezingScreen();
-        }
-    }
-
-    public void stopFreezingScreen(boolean force) {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                return;
-            }
-            if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Clear freezing of " + mToken + ": hidden="
-                    + mContainer.isHidden() + " freezing=" + mContainer.isFreezingScreen());
-            mContainer.stopFreezingScreen(true, force);
-        }
-    }
-
-    public void registerRemoteAnimations(RemoteAnimationDefinition definition) {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                Slog.w(TAG_WM, "Attempted to register remote animations with non-existing app"
-                        + " token: " + mToken);
-                return;
-            }
-            mContainer.registerRemoteAnimations(definition);
-        }
-    }
-
-    void reportStartingWindowDrawn() {
-        mHandler.sendMessage(mHandler.obtainMessage(H.NOTIFY_STARTING_WINDOW_DRAWN));
-    }
-
-    void reportWindowsDrawn() {
-        mHandler.sendMessage(mHandler.obtainMessage(H.NOTIFY_WINDOWS_DRAWN));
-    }
-
-    void reportWindowsNotDrawn() {
-        mHandler.sendMessage(mHandler.obtainMessage(H.NOTIFY_WINDOWS_NOTDRAWN));
-    }
-
-    void reportWindowsVisible() {
-        mHandler.post(mOnWindowsVisible);
-    }
-
-    void reportWindowsGone() {
-        mHandler.post(mOnWindowsGone);
-    }
-
-    /** Calls directly into activity manager so window manager lock shouldn't held. */
-    boolean keyDispatchingTimedOut(String reason, int windowPid) {
-        return mListener != null && mListener.keyDispatchingTimedOut(reason, windowPid);
-    }
-
-    /**
-     * Apply override app transition base on options & animation type.
-     */
-    public void applyOptionsLocked(ActivityOptions pendingOptions, Intent intent) {
-        synchronized (mGlobalLock) {
-            final int animationType = pendingOptions.getAnimationType();
-            final DisplayContent displayContent = mContainer.getDisplayContent();
-            switch (animationType) {
-                case ANIM_CUSTOM:
-                    displayContent.mAppTransition.overridePendingAppTransition(
-                            pendingOptions.getPackageName(),
-                            pendingOptions.getCustomEnterResId(),
-                            pendingOptions.getCustomExitResId(),
-                            pendingOptions.getOnAnimationStartListener());
-                    break;
-                case ANIM_CLIP_REVEAL:
-                    displayContent.mAppTransition.overridePendingAppTransitionClipReveal(
-                            pendingOptions.getStartX(), pendingOptions.getStartY(),
-                            pendingOptions.getWidth(), pendingOptions.getHeight());
-                    if (intent.getSourceBounds() == null) {
-                        intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
-                                pendingOptions.getStartY(),
-                                pendingOptions.getStartX() + pendingOptions.getWidth(),
-                                pendingOptions.getStartY() + pendingOptions.getHeight()));
-                    }
-                    break;
-                case ANIM_SCALE_UP:
-                    displayContent.mAppTransition.overridePendingAppTransitionScaleUp(
-                            pendingOptions.getStartX(), pendingOptions.getStartY(),
-                            pendingOptions.getWidth(), pendingOptions.getHeight());
-                    if (intent.getSourceBounds() == null) {
-                        intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
-                                pendingOptions.getStartY(),
-                                pendingOptions.getStartX() + pendingOptions.getWidth(),
-                                pendingOptions.getStartY() + pendingOptions.getHeight()));
-                    }
-                    break;
-                case ANIM_THUMBNAIL_SCALE_UP:
-                case ANIM_THUMBNAIL_SCALE_DOWN:
-                    final boolean scaleUp = (animationType == ANIM_THUMBNAIL_SCALE_UP);
-                    final GraphicBuffer buffer = pendingOptions.getThumbnail();
-                    displayContent.mAppTransition.overridePendingAppTransitionThumb(buffer,
-                            pendingOptions.getStartX(), pendingOptions.getStartY(),
-                            pendingOptions.getOnAnimationStartListener(),
-                            scaleUp);
-                    if (intent.getSourceBounds() == null && buffer != null) {
-                        intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
-                                pendingOptions.getStartY(),
-                                pendingOptions.getStartX() + buffer.getWidth(),
-                                pendingOptions.getStartY() + buffer.getHeight()));
-                    }
-                    break;
-                case ANIM_THUMBNAIL_ASPECT_SCALE_UP:
-                case ANIM_THUMBNAIL_ASPECT_SCALE_DOWN:
-                    final AppTransitionAnimationSpec[] specs = pendingOptions.getAnimSpecs();
-                    final IAppTransitionAnimationSpecsFuture specsFuture =
-                            pendingOptions.getSpecsFuture();
-                    if (specsFuture != null) {
-                        // TODO(multidisplay): Shouldn't be really used anymore from next CL.
-                        displayContent.mAppTransition.overridePendingAppTransitionMultiThumbFuture(
-                                specsFuture, pendingOptions.getOnAnimationStartListener(),
-                                animationType == ANIM_THUMBNAIL_ASPECT_SCALE_UP);
-                    } else if (animationType == ANIM_THUMBNAIL_ASPECT_SCALE_DOWN
-                            && specs != null) {
-                        displayContent.mAppTransition.overridePendingAppTransitionMultiThumb(
-                                specs, pendingOptions.getOnAnimationStartListener(),
-                                pendingOptions.getAnimationFinishedListener(), false);
-                    } else {
-                        displayContent.mAppTransition.overridePendingAppTransitionAspectScaledThumb(
-                                pendingOptions.getThumbnail(),
-                                pendingOptions.getStartX(), pendingOptions.getStartY(),
-                                pendingOptions.getWidth(), pendingOptions.getHeight(),
-                                pendingOptions.getOnAnimationStartListener(),
-                                (animationType == ANIM_THUMBNAIL_ASPECT_SCALE_UP));
-                        if (intent.getSourceBounds() == null) {
-                            intent.setSourceBounds(new Rect(pendingOptions.getStartX(),
-                                    pendingOptions.getStartY(),
-                                    pendingOptions.getStartX() + pendingOptions.getWidth(),
-                                    pendingOptions.getStartY() + pendingOptions.getHeight()));
-                        }
-                    }
-                    break;
-                case ANIM_OPEN_CROSS_PROFILE_APPS:
-                    displayContent.mAppTransition
-                            .overridePendingAppTransitionStartCrossProfileApps();
-                    break;
-                case ANIM_REMOTE_ANIMATION:
-                    // TODO(multidisplay): Will pass displayId and adjust dependencies from next CL.
-                    displayContent.mAppTransition.overridePendingAppTransitionRemote(
-                            pendingOptions.getRemoteAnimationAdapter());
-                    break;
-                case ANIM_NONE:
-                    break;
-                default:
-                    Slog.e(TAG_WM, "applyOptionsLocked: Unknown animationType=" + animationType);
-                    break;
-            }
-        }
-    }
-
-    /**
-     * Notifies AWT that this app is waiting to pause in order to determine if it will enter PIP.
-     * This information helps AWT know that the app is in the process of pausing before it gets the
-     * signal on the WM side.
-     */
-    public void setWillCloseOrEnterPip(boolean willCloseOrEnterPip) {
-        synchronized (mGlobalLock) {
-            if (mContainer == null) {
-                return;
-            }
-
-            mContainer.setWillCloseOrEnterPip(willCloseOrEnterPip);
-        }
-    }
-
-    @Override
-    public String toString() {
-        return "AppWindowContainerController{"
-                + " token=" + mToken
-                + " mContainer=" + mContainer
-                + " mListener=" + mListener
-                + "}";
-    }
-}
diff --git a/services/core/java/com/android/server/wm/AppWindowContainerListener.java b/services/core/java/com/android/server/wm/AppWindowContainerListener.java
deleted file mode 100644
index ad27669..0000000
--- a/services/core/java/com/android/server/wm/AppWindowContainerListener.java
+++ /dev/null
@@ -1,42 +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.wm;
-
-/** Interface used by the creator of the controller to listen to changes with the container. */
-public interface AppWindowContainerListener extends WindowContainerListener {
-    /** Called when the windows associated app window container drawn state changes. */
-    void onWindowsDrawn(boolean drawn, long timestamp);
-    /** Called when the windows associated app window container are visible. */
-    void onWindowsVisible();
-    /** Called when the windows associated app window container are no longer visible. */
-    void onWindowsGone();
-
-    /**
-     * Called when the starting window for this container is drawn.
-     */
-    void onStartingWindowDrawn(long timestamp);
-
-    /**
-     * Called when the key dispatching to a window associated with the app window container
-     * timed-out.
-     *
-     * @param reason The reason for the key dispatching time out.
-     * @param windowPid The pid of the window key dispatching timed out on.
-     * @return True if input dispatching should be aborted.
-     */
-    boolean keyDispatchingTimedOut(String reason, int windowPid);
-}
diff --git a/services/core/java/com/android/server/wm/AppWindowThumbnail.java b/services/core/java/com/android/server/wm/AppWindowThumbnail.java
index 729f89b..bb38f30 100644
--- a/services/core/java/com/android/server/wm/AppWindowThumbnail.java
+++ b/services/core/java/com/android/server/wm/AppWindowThumbnail.java
@@ -16,13 +16,13 @@
 
 package com.android.server.wm;
 
+import static com.android.server.wm.AppWindowThumbnailProto.HEIGHT;
+import static com.android.server.wm.AppWindowThumbnailProto.SURFACE_ANIMATOR;
+import static com.android.server.wm.AppWindowThumbnailProto.WIDTH;
 import static com.android.server.wm.WindowManagerDebugConfig.SHOW_TRANSACTIONS;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 import static com.android.server.wm.WindowManagerService.MAX_ANIMATION_DURATION;
-import static com.android.server.wm.AppWindowThumbnailProto.HEIGHT;
-import static com.android.server.wm.AppWindowThumbnailProto.SURFACE_ANIMATOR;
-import static com.android.server.wm.AppWindowThumbnailProto.WIDTH;
 
 import android.graphics.GraphicBuffer;
 import android.graphics.PixelFormat;
@@ -53,7 +53,8 @@
 
     AppWindowThumbnail(Transaction t, AppWindowToken appToken, GraphicBuffer thumbnailHeader) {
         mAppToken = appToken;
-        mSurfaceAnimator = new SurfaceAnimator(this, this::onAnimationFinished, appToken.mService);
+        mSurfaceAnimator =
+                new SurfaceAnimator(this, this::onAnimationFinished, appToken.mWmService);
         mWidth = thumbnailHeader.getWidth();
         mHeight = thumbnailHeader.getHeight();
 
@@ -65,7 +66,7 @@
         // this to the task.
         mSurfaceControl = appToken.makeSurface()
                 .setName("thumbnail anim: " + appToken.toString())
-                .setSize(mWidth, mHeight)
+                .setBufferSize(mWidth, mHeight)
                 .setFormat(PixelFormat.TRANSLUCENT)
                 .setMetadata(appToken.windowType,
                         window != null ? window.mOwnerUid : Binder.getCallingUid())
@@ -93,11 +94,11 @@
 
     void startAnimation(Transaction t, Animation anim, Point position) {
         anim.restrictDuration(MAX_ANIMATION_DURATION);
-        anim.scaleCurrentDuration(mAppToken.mService.getTransitionAnimationScaleLocked());
+        anim.scaleCurrentDuration(mAppToken.mWmService.getTransitionAnimationScaleLocked());
         mSurfaceAnimator.startAnimation(t, new LocalAnimationAdapter(
                 new WindowAnimationSpec(anim, position,
                         mAppToken.getDisplayContent().mAppTransition.canSkipFirstFrame()),
-                mAppToken.mService.mSurfaceAnimationRunner), false /* hidden */);
+                mAppToken.mWmService.mSurfaceAnimationRunner), false /* hidden */);
     }
 
     private void onAnimationFinished() {
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index 92944a0..c458c94 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -28,10 +28,12 @@
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD;
 import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
+import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
 import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
+import static android.view.WindowManager.TRANSIT_DOCK_TASK_FROM_RECENTS;
 import static android.view.WindowManager.TRANSIT_UNSET;
 import static android.view.WindowManager.TRANSIT_WALLPAPER_OPEN;
 
@@ -81,7 +83,9 @@
 
 import android.annotation.CallSuper;
 import android.app.Activity;
+import android.app.ActivityManager;
 import android.content.ComponentName;
+import android.content.res.CompatibilityInfo;
 import android.content.res.Configuration;
 import android.graphics.GraphicBuffer;
 import android.graphics.Point;
@@ -90,6 +94,7 @@
 import android.os.Debug;
 import android.os.IBinder;
 import android.os.RemoteException;
+import android.os.SystemClock;
 import android.os.Trace;
 import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
@@ -106,6 +111,8 @@
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ToBooleanFunction;
+import com.android.server.AttributeCache;
+import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.policy.WindowManagerPolicy.StartingSurface;
 import com.android.server.wm.WindowManagerService.H;
 
@@ -121,7 +128,8 @@
  * Version of WindowToken that is specifically for a particular application (or
  * really activity) that is displaying windows.
  */
-class AppWindowToken extends WindowToken implements WindowManagerService.AppFreezeListener {
+class AppWindowToken extends WindowToken implements WindowManagerService.AppFreezeListener,
+        ConfigurationContainerListener {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "AppWindowToken" : TAG_WM;
 
     /**
@@ -226,6 +234,9 @@
 
     private Task mLastParent;
 
+    // TODO: Remove after unification
+    ActivityRecord mActivityRecord;
+
     /**
      * See {@link #canTurnScreenOn()}
      */
@@ -273,14 +284,20 @@
     /** Whether this token needs to create mAnimationBoundsLayer for cropping animations. */
     boolean mNeedsAnimationBoundsLayer;
 
+    private static final int STARTING_WINDOW_TYPE_NONE = 0;
+    private static final int STARTING_WINDOW_TYPE_SNAPSHOT = 1;
+    private static final int STARTING_WINDOW_TYPE_SPLASH_SCREEN = 2;
+
     AppWindowToken(WindowManagerService service, IApplicationToken token,
             ComponentName activityComponent, boolean voiceInteraction, DisplayContent dc,
             long inputDispatchingTimeoutNanos, boolean fullscreen, boolean showForAllUsers,
             int targetSdk, int orientation, int rotationAnimationHint, int configChanges,
             boolean launchTaskBehind, boolean alwaysFocusable,
-            AppWindowContainerController controller) {
+            ActivityRecord activityRecord) {
         this(service, token, activityComponent, voiceInteraction, dc, fullscreen);
-        setController(controller);
+        // TODO: remove after unification
+        mActivityRecord = activityRecord;
+        mActivityRecord.registerConfigurationChangeListener(this);
         mInputDispatchingTimeoutNanos = inputDispatchingTimeoutNanos;
         mShowForAllUsers = showForAllUsers;
         mTargetSdk = targetSdk;
@@ -304,7 +321,7 @@
         mActivityComponent = activityComponent;
         mVoiceInteraction = voiceInteraction;
         mFillsParent = fillsParent;
-        mInputApplicationHandle = new InputApplicationHandle(this);
+        mInputApplicationHandle = new InputApplicationHandle(appToken.asBinder());
     }
 
     void onFirstWindowDrawn(WindowState win, WindowStateAnimator winAnimator) {
@@ -320,9 +337,7 @@
             // it from behind the starting window, so there is no need for it to also be doing its
             // own stuff.
             win.cancelAnimation();
-            if (getController() != null) {
-                getController().removeStartingWindow();
-            }
+            removeStartingWindow();
         }
         updateReportedVisibilityLocked();
     }
@@ -360,16 +375,9 @@
         }
         if (DEBUG_VISIBILITY) Slog.v(TAG, "VIS " + this + ": interesting="
                 + numInteresting + " visible=" + numVisible);
-        final AppWindowContainerController controller = getController();
         if (nowDrawn != reportedDrawn) {
-            if (nowDrawn) {
-                if (controller != null) {
-                    controller.reportWindowsDrawn();
-                }
-            } else {
-                if (controller != null) {
-                    controller.reportWindowsNotDrawn();
-                }
+            if (mActivityRecord != null) {
+                mActivityRecord.onWindowsDrawn(nowDrawn, SystemClock.uptimeMillis());
             }
             reportedDrawn = nowDrawn;
         }
@@ -377,16 +385,36 @@
             if (DEBUG_VISIBILITY) Slog.v(TAG,
                     "Visibility changed in " + this + ": vis=" + nowVisible);
             reportedVisible = nowVisible;
-            if (controller != null) {
+            if (mActivityRecord != null) {
                 if (nowVisible) {
-                    controller.reportWindowsVisible();
+                    onWindowsVisible();
                 } else {
-                    controller.reportWindowsGone();
+                    onWindowsGone();
                 }
             }
         }
     }
 
+    private void onWindowsGone() {
+        if (mActivityRecord == null) {
+            return;
+        }
+        if (DEBUG_VISIBILITY) {
+            Slog.v(TAG_WM, "Reporting gone in " + mActivityRecord.appToken);
+        }
+        mActivityRecord.onWindowsGone();
+    }
+
+    private void onWindowsVisible() {
+        if (mActivityRecord == null) {
+            return;
+        }
+        if (DEBUG_VISIBILITY) {
+            Slog.v(TAG_WM, "Reporting visible in " + mActivityRecord.appToken);
+        }
+        mActivityRecord.onWindowsVisible();
+    }
+
     boolean isClientHidden() {
         return mClientHidden;
     }
@@ -401,7 +429,116 @@
         sendAppVisibilityToClients();
     }
 
-    boolean setVisibility(WindowManager.LayoutParams lp,
+    void setVisibility(boolean visible, boolean deferHidingClient) {
+        final AppTransition appTransition = getDisplayContent().mAppTransition;
+
+        // Don't set visibility to false if we were already not visible. This prevents WM from
+        // adding the app to the closing app list which doesn't make sense for something that is
+        // already not visible. However, set visibility to true even if we are already visible.
+        // This makes sure the app is added to the opening apps list so that the right
+        // transition can be selected.
+        // TODO: Probably a good idea to separate the concept of opening/closing apps from the
+        // concept of setting visibility...
+        if (!visible && hiddenRequested) {
+
+            if (!deferHidingClient && mDeferHidingClient) {
+                // We previously deferred telling the client to hide itself when visibility was
+                // initially set to false. Now we would like it to hide, so go ahead and set it.
+                mDeferHidingClient = deferHidingClient;
+                setClientHidden(true);
+            }
+            return;
+        }
+
+        if (DEBUG_APP_TRANSITIONS || DEBUG_ORIENTATION) {
+            Slog.v(TAG_WM, "setAppVisibility("
+                    + appToken + ", visible=" + visible + "): " + appTransition
+                    + " hidden=" + isHidden() + " hiddenRequested="
+                    + hiddenRequested + " Callers=" + Debug.getCallers(6));
+        }
+
+        final DisplayContent displayContent = getDisplayContent();
+        displayContent.mOpeningApps.remove(this);
+        displayContent.mClosingApps.remove(this);
+        waitingToShow = false;
+        hiddenRequested = !visible;
+        mDeferHidingClient = deferHidingClient;
+
+        if (!visible) {
+            // If the app is dead while it was visible, we kept its dead window on screen.
+            // Now that the app is going invisible, we can remove it. It will be restarted
+            // if made visible again.
+            removeDeadWindows();
+        } else {
+            if (!appTransition.isTransitionSet()
+                    && appTransition.isReady()) {
+                // Add the app mOpeningApps if transition is unset but ready. This means
+                // we're doing a screen freeze, and the unfreeze will wait for all opening
+                // apps to be ready.
+                displayContent.mOpeningApps.add(this);
+            }
+            startingMoved = false;
+            // If the token is currently hidden (should be the common case), or has been
+            // stopped, then we need to set up to wait for its windows to be ready.
+            if (isHidden() || mAppStopped) {
+                clearAllDrawn();
+
+                // If the app was already visible, don't reset the waitingToShow state.
+                if (isHidden()) {
+                    waitingToShow = true;
+                }
+            }
+
+            // In the case where we are making an app visible but holding off for a transition,
+            // we still need to tell the client to make its windows visible so they get drawn.
+            // Otherwise, we will wait on performing the transition until all windows have been
+            // drawn, they never will be, and we are sad.
+            setClientHidden(false);
+
+            requestUpdateWallpaperIfNeeded();
+
+            if (DEBUG_ADD_REMOVE) Slog.v(TAG_WM, "No longer Stopped: " + this);
+            mAppStopped = false;
+
+            transferStartingWindowFromHiddenAboveTokenIfNeeded();
+        }
+
+        // If we are preparing an app transition, then delay changing
+        // the visibility of this token until we execute that transition.
+        if (okToAnimate() && appTransition.isTransitionSet()) {
+            inPendingTransaction = true;
+            if (visible) {
+                displayContent.mOpeningApps.add(this);
+                mEnteringAnimation = true;
+            } else {
+                displayContent.mClosingApps.add(this);
+                mEnteringAnimation = false;
+            }
+            if (appTransition.getAppTransition()
+                    == WindowManager.TRANSIT_TASK_OPEN_BEHIND) {
+                // We're launchingBehind, add the launching activity to mOpeningApps.
+                final WindowState win = getDisplayContent().findFocusedWindow();
+                if (win != null) {
+                    final AppWindowToken focusedToken = win.mAppToken;
+                    if (focusedToken != null) {
+                        if (DEBUG_APP_TRANSITIONS) {
+                            Slog.d(TAG_WM, "TRANSIT_TASK_OPEN_BEHIND, "
+                                    + " adding " + focusedToken + " to mOpeningApps");
+                        }
+                        // Force animation to be loaded.
+                        focusedToken.setHidden(true);
+                        displayContent.mOpeningApps.add(focusedToken);
+                    }
+                }
+            }
+            return;
+        }
+
+        commitVisibility(null, visible, TRANSIT_UNSET, true, mVoiceInteraction);
+        updateReportedVisibilityLocked();
+    }
+
+    boolean commitVisibility(WindowManager.LayoutParams lp,
             boolean visible, int transit, boolean performLayout, boolean isVoiceInteraction) {
 
         boolean delayed = false;
@@ -417,7 +554,8 @@
         // * or this is an opening app and windows are being replaced.
         boolean visibilityChanged = false;
         if (isHidden() == visible || (isHidden() && mIsExiting) || (visible && waitingForReplacement())) {
-            final AccessibilityController accessibilityController = mService.mAccessibilityController;
+            final AccessibilityController accessibilityController =
+                    mWmService.mAccessibilityController;
             boolean changed = false;
             if (DEBUG_APP_TRANSITIONS) Slog.v(TAG_WM,
                     "Changing app " + this + " hidden=" + isHidden() + " performLayout=" + performLayout);
@@ -458,18 +596,20 @@
 
                 // We are becoming visible, so better freeze the screen with the windows that are
                 // getting visible so we also wait for them.
-                forAllWindows(mService::makeWindowFreezingScreenIfNeededLocked, true);
+                forAllWindows(mWmService::makeWindowFreezingScreenIfNeededLocked, true);
             }
 
-            if (DEBUG_APP_TRANSITIONS) Slog.v(TAG_WM, "setVisibility: " + this
-                    + ": hidden=" + isHidden() + " hiddenRequested=" + hiddenRequested);
+            if (DEBUG_APP_TRANSITIONS) {
+                Slog.v(TAG_WM, "commitVisibility: " + this
+                        + ": hidden=" + isHidden() + " hiddenRequested=" + hiddenRequested);
+            }
 
             if (changed) {
                 getDisplayContent().getInputMonitor().setUpdateInputWindowsNeededLw();
                 if (performLayout) {
-                    mService.updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES,
+                    mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES,
                             false /*updateInputWindows*/);
-                    mService.mWindowPlacerLocked.performSurfacePlacement();
+                    mWmService.mWindowPlacerLocked.performSurfacePlacement();
                 }
                 getDisplayContent().getInputMonitor().updateInputWindowsLw(false /*force*/);
             }
@@ -496,13 +636,13 @@
                 // The token was made immediately visible, there will be no entrance animation.
                 // We need to inform the client the enter animation was finished.
                 mEnteringAnimation = true;
-                mService.mActivityManagerAppTransitionNotifier.onAppTransitionFinishedLocked(token);
+                mWmService.mActivityManagerAppTransitionNotifier.onAppTransitionFinishedLocked(
+                        token);
             }
 
-            // If we're becoming visible, immediately change client visibility as well although it
-            // usually gets changed in AppWindowContainerController.setVisibility already. However,
-            // there seem to be some edge cases where we change our visibility but client visibility
-            // never gets updated.
+            // If we're becoming visible, immediately change client visibility as well. there seem
+            // to be some edge cases where we change our visibility but client visibility never gets
+            // updated.
             // If we're becoming invisible, update the client visibility if we are not running an
             // animation. Otherwise, we'll update client visibility in onAnimationFinished.
             if (visible || !isReallyAnimating()) {
@@ -520,7 +660,7 @@
 
                 // Take the screenshot before possibly hiding the WSA, otherwise the screenshot
                 // will not be taken.
-                mService.mTaskSnapshotController.notifyAppVisibilityChanged(this, visible);
+                mWmService.mTaskSnapshotController.notifyAppVisibilityChanged(this, visible);
             }
 
             // If we are hidden but there is no delay needed we immediately
@@ -596,11 +736,6 @@
         return getWindowConfiguration().canReceiveKeys() || mAlwaysFocusable;
     }
 
-    AppWindowContainerController getController() {
-        final WindowContainerController controller = super.getController();
-        return controller != null ? (AppWindowContainerController) controller : null;
-    }
-
     @Override
     boolean isVisible() {
         // If the app token isn't hidden then it is considered visible and there is no need to check
@@ -637,11 +772,11 @@
 
         if (DEBUG_APP_TRANSITIONS) Slog.v(TAG_WM, "Removing app token: " + this);
 
-        boolean delayed = setVisibility(null, false, TRANSIT_UNSET, true, mVoiceInteraction);
+        boolean delayed = commitVisibility(null, false, TRANSIT_UNSET, true, mVoiceInteraction);
 
         getDisplayContent().mOpeningApps.remove(this);
         getDisplayContent().mUnknownAppVisibilityController.appRemovedOrHidden(this);
-        mService.mTaskSnapshotController.onAppRemoved(this);
+        mWmService.mTaskSnapshotController.onAppRemoved(this);
         waitingToShow = false;
         if (getDisplayContent().mClosingApps.contains(this)) {
             delayed = true;
@@ -656,8 +791,8 @@
         if (DEBUG_ADD_REMOVE || DEBUG_TOKEN_MOVEMENT) Slog.v(TAG_WM, "removeAppToken: "
                 + this + " delayed=" + delayed + " Callers=" + Debug.getCallers(4));
 
-        if (startingData != null && getController() != null) {
-            getController().removeStartingWindow();
+        if (startingData != null) {
+            removeStartingWindow();
         }
 
         // If this window was animating, then we need to ensure that the app transition notifies
@@ -694,7 +829,7 @@
             if (DEBUG_FOCUS_LIGHT) Slog.v(TAG_WM, "Removing focused app token:" + this
                    + " displayId=" + dc.getDisplayId());
             dc.setFocusedApp(null);
-            mService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, true /*updateInputWindows*/);
+            mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, true /*updateInputWindows*/);
         }
 
         if (!delayed) {
@@ -768,9 +903,7 @@
         mAppStopped = true;
         destroySurfaces();
         // Remove any starting window that was added for this app if they are still around.
-        if (getController() != null) {
-            getController().removeStartingWindow();
-        }
+        removeStartingWindow();
     }
 
     void clearAllDrawn() {
@@ -826,9 +959,7 @@
         // TODO: Something smells about the code below...Is there a better way?
         if (startingWindow == win) {
             if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Notify removed startingWindow " + win);
-            if (getController() != null) {
-                getController().removeStartingWindow();
-            }
+            removeStartingWindow();
         } else if (mChildren.size() == 0) {
             // If this is the last window and we had requested a starting transition window,
             // well there is no point now.
@@ -845,9 +976,7 @@
             // we need to get rid of the starting transition.
             if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Last window, removing starting window "
                     + win);
-            if (getController() != null) {
-                getController().removeStartingWindow();
-            }
+            removeStartingWindow();
         }
     }
 
@@ -1014,13 +1143,17 @@
 
         // if we got a replacement window, reset the timeout to give drawing more time
         if (gotReplacementWindow) {
-            mService.scheduleWindowReplacementTimeouts(this);
+            mWmService.scheduleWindowReplacementTimeouts(this);
         }
         checkKeyguardFlagsChanged();
     }
 
     @Override
     void removeChild(WindowState child) {
+        if (!mChildren.contains(child)) {
+            // This can be true when testing.
+            return;
+        }
         super.removeChild(child);
         checkKeyguardFlagsChanged();
         updateLetterboxSurface(child);
@@ -1042,6 +1175,20 @@
         }
     }
 
+    void reparent(TaskWindowContainerController taskController, int position) {
+        if (DEBUG_ADD_REMOVE) {
+            Slog.i(TAG_WM, "reparent: moving app token=" + this
+                    + " to task=" + taskController + " at " + position);
+        }
+        final Task task = taskController.mContainer;
+        if (task == null) {
+            throw new IllegalArgumentException("reparent: could not find task="
+                    + taskController);
+        }
+        reparent(task, position);
+        getDisplayContent().layoutAndAssignWindowLayersIfNeeded();
+    }
+
     void reparent(Task task, int position) {
         final Task currentTask = getTask();
         if (task == currentTask) {
@@ -1081,8 +1228,12 @@
         super.onDisplayChanged(dc);
         if (prevDc != null && prevDc.mFocusedApp == this) {
             prevDc.setFocusedApp(null);
-            if (dc.getTopStack().getTopChild().getTopChild() == this) {
-                dc.setFocusedApp(this);
+            final TaskStack stack = dc.getTopStack();
+            if (stack != null) {
+                final Task task = stack.getTopChild();
+                if (task != null && task.getTopChild() == this) {
+                    dc.setFocusedApp(this);
+                }
             }
         }
     }
@@ -1122,7 +1273,7 @@
             final WindowState win = mChildren.get(i);
             win.onUnfreezeBounds();
         }
-        mService.mWindowPlacerLocked.performSurfacePlacement();
+        mWmService.mWindowPlacerLocked.performSurfacePlacement();
     }
 
     void setAppLayoutChanges(int changes, String reason) {
@@ -1130,7 +1281,7 @@
             final DisplayContent dc = getDisplayContent();
             dc.pendingLayoutChanges |= changes;
             if (DEBUG_LAYOUT_REPEATS) {
-                mService.mWindowPlacerLocked.debugLayoutRepeats(reason, dc.pendingLayoutChanges);
+                mWmService.mWindowPlacerLocked.debugLayoutRepeats(reason, dc.pendingLayoutChanges);
             }
         }
     }
@@ -1151,12 +1302,12 @@
         if (!hiddenRequested) {
             if (!mFreezingScreen) {
                 mFreezingScreen = true;
-                mService.registerAppFreezeListener(this);
-                mService.mAppsFreezingScreen++;
-                if (mService.mAppsFreezingScreen == 1) {
-                    mService.startFreezingDisplayLocked(0, 0, getDisplayContent());
-                    mService.mH.removeMessages(H.APP_FREEZE_TIMEOUT);
-                    mService.mH.sendEmptyMessageDelayed(H.APP_FREEZE_TIMEOUT, 2000);
+                mWmService.registerAppFreezeListener(this);
+                mWmService.mAppsFreezingScreen++;
+                if (mWmService.mAppsFreezingScreen == 1) {
+                    mWmService.startFreezingDisplayLocked(0, 0, getDisplayContent());
+                    mWmService.mH.removeMessages(H.APP_FREEZE_TIMEOUT);
+                    mWmService.mH.sendEmptyMessageDelayed(H.APP_FREEZE_TIMEOUT, 2000);
                 }
             }
             final int count = mChildren.size();
@@ -1181,15 +1332,15 @@
         if (force || unfrozeWindows) {
             if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "No longer freezing: " + this);
             mFreezingScreen = false;
-            mService.unregisterAppFreezeListener(this);
-            mService.mAppsFreezingScreen--;
-            mService.mLastFinishedFreezeSource = this;
+            mWmService.unregisterAppFreezeListener(this);
+            mWmService.mAppsFreezingScreen--;
+            mWmService.mLastFinishedFreezeSource = this;
         }
         if (unfreezeSurfaceNow) {
             if (unfrozeWindows) {
-                mService.mWindowPlacerLocked.performSurfacePlacement();
+                mWmService.mWindowPlacerLocked.performSurfacePlacement();
             }
-            mService.stopFreezingDisplayLocked();
+            mWmService.stopFreezingDisplayLocked();
         }
     }
 
@@ -1280,10 +1431,10 @@
                 // pending opening apps.
                 getDisplayContent().mOpeningApps.remove(this);
 
-                mService.updateFocusedWindowLocked(
+                mWmService.updateFocusedWindowLocked(
                         UPDATE_FOCUS_WILL_PLACE_SURFACES, true /*updateInputWindows*/);
                 getDisplayContent().setLayoutNeeded();
-                mService.mWindowPlacerLocked.performSurfacePlacement();
+                mWmService.mWindowPlacerLocked.performSurfacePlacement();
             } finally {
                 Binder.restoreCallingIdentity(origId);
             }
@@ -1296,9 +1447,7 @@
             startingData = fromToken.startingData;
             fromToken.startingData = null;
             fromToken.startingMoved = true;
-            if (getController() != null) {
-                getController().scheduleAddStartingWindow();
-            }
+            scheduleAddStartingWindow();
             return true;
         }
 
@@ -1455,7 +1604,7 @@
                 if (mDisplayContent != null) {
                     mDisplayContent.setLayoutNeeded();
                 }
-                mService.mH.obtainMessage(NOTIFY_ACTIVITY_DRAWN, token).sendToTarget();
+                mWmService.mH.obtainMessage(NOTIFY_ACTIVITY_DRAWN, token).sendToTarget();
 
                 // Notify the pinned stack upon all windows drawn. If there was an animation in
                 // progress then this signal will resume that animation.
@@ -1467,6 +1616,10 @@
         }
     }
 
+    boolean keyDispatchingTimedOut(String reason, int windowPid) {
+        return mActivityRecord != null && mActivityRecord.keyDispatchingTimedOut(reason, windowPid);
+    }
+
     /**
      * Updated this app token tracking states for interesting and drawn windows based on the window.
      *
@@ -1485,8 +1638,8 @@
             return false;
         }
 
-        if (mLastTransactionSequence != mService.mTransactionSequence) {
-            mLastTransactionSequence = mService.mTransactionSequence;
+        if (mLastTransactionSequence != mWmService.mTransactionSequence) {
+            mLastTransactionSequence = mWmService.mTransactionSequence;
             mNumDrawnWindows = 0;
             startingDisplayed = false;
 
@@ -1529,8 +1682,8 @@
                     }
                 }
             } else if (w.isDrawnLw()) {
-                if (getController() != null) {
-                    getController().reportStartingWindowDrawn();
+                if (mActivityRecord != null) {
+                    mActivityRecord.onStartingWindowDrawn(SystemClock.uptimeMillis());
                 }
                 startingDisplayed = true;
             }
@@ -1597,6 +1750,266 @@
         return this;
     }
 
+    boolean addStartingWindow(String pkg, int theme, CompatibilityInfo compatInfo,
+            CharSequence nonLocalizedLabel, int labelRes, int icon, int logo, int windowFlags,
+            IBinder transferFrom, boolean newTask, boolean taskSwitch, boolean processRunning,
+            boolean allowTaskSnapshot, boolean activityCreated, boolean fromRecents) {
+        // If the display is frozen, we won't do anything until the actual window is
+        // displayed so there is no reason to put in the starting window.
+        if (!okToDisplay()) {
+            return false;
+        }
+
+        if (startingData != null) {
+            return false;
+        }
+
+        final WindowState mainWin = findMainWindow();
+        if (mainWin != null && mainWin.mWinAnimator.getShown()) {
+            // App already has a visible window...why would you want a starting window?
+            return false;
+        }
+
+        final ActivityManager.TaskSnapshot snapshot =
+                mWmService.mTaskSnapshotController.getSnapshot(
+                        getTask().mTaskId, getTask().mUserId,
+                        false /* restoreFromDisk */, false /* reducedResolution */);
+        final int type = getStartingWindowType(newTask, taskSwitch, processRunning,
+                allowTaskSnapshot, activityCreated, fromRecents, snapshot);
+
+        if (type == STARTING_WINDOW_TYPE_SNAPSHOT) {
+            return createSnapshot(snapshot);
+        }
+
+        // If this is a translucent window, then don't show a starting window -- the current
+        // effect (a full-screen opaque starting window that fades away to the real contents
+        // when it is ready) does not work for this.
+        if (DEBUG_STARTING_WINDOW) {
+            Slog.v(TAG, "Checking theme of starting window: 0x" + Integer.toHexString(theme));
+        }
+        if (theme != 0) {
+            AttributeCache.Entry ent = AttributeCache.instance().get(pkg, theme,
+                    com.android.internal.R.styleable.Window,
+                    mWmService.mCurrentUserId);
+            if (ent == null) {
+                // Whoops!  App doesn't exist. Um. Okay. We'll just pretend like we didn't
+                // see that.
+                return false;
+            }
+            final boolean windowIsTranslucent = ent.array.getBoolean(
+                    com.android.internal.R.styleable.Window_windowIsTranslucent, false);
+            final boolean windowIsFloating = ent.array.getBoolean(
+                    com.android.internal.R.styleable.Window_windowIsFloating, false);
+            final boolean windowShowWallpaper = ent.array.getBoolean(
+                    com.android.internal.R.styleable.Window_windowShowWallpaper, false);
+            final boolean windowDisableStarting = ent.array.getBoolean(
+                    com.android.internal.R.styleable.Window_windowDisablePreview, false);
+            if (DEBUG_STARTING_WINDOW) {
+                Slog.v(TAG, "Translucent=" + windowIsTranslucent
+                        + " Floating=" + windowIsFloating
+                        + " ShowWallpaper=" + windowShowWallpaper);
+            }
+            if (windowIsTranslucent) {
+                return false;
+            }
+            if (windowIsFloating || windowDisableStarting) {
+                return false;
+            }
+            if (windowShowWallpaper) {
+                if (getDisplayContent().mWallpaperController
+                        .getWallpaperTarget() == null) {
+                    // If this theme is requesting a wallpaper, and the wallpaper
+                    // is not currently visible, then this effectively serves as
+                    // an opaque window and our starting window transition animation
+                    // can still work.  We just need to make sure the starting window
+                    // is also showing the wallpaper.
+                    windowFlags |= FLAG_SHOW_WALLPAPER;
+                } else {
+                    return false;
+                }
+            }
+
+            if (transferStartingWindow(transferFrom)) {
+                return true;
+            }
+
+            // There is no existing starting window, and we don't want to create a splash screen, so
+            // that's it!
+            if (type != STARTING_WINDOW_TYPE_SPLASH_SCREEN) {
+                return false;
+            }
+
+            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Creating SplashScreenStartingData");
+            startingData = new SplashScreenStartingData(mWmService, pkg,
+                    theme, compatInfo, nonLocalizedLabel, labelRes, icon, logo, windowFlags,
+                    getMergedOverrideConfiguration());
+            scheduleAddStartingWindow();
+        }
+        return true;
+    }
+
+
+    private boolean createSnapshot(ActivityManager.TaskSnapshot snapshot) {
+        if (snapshot == null) {
+            return false;
+        }
+
+        if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Creating SnapshotStartingData");
+        startingData = new SnapshotStartingData(mWmService, snapshot);
+        scheduleAddStartingWindow();
+        return true;
+    }
+
+    void scheduleAddStartingWindow() {
+        // Note: we really want to do sendMessageAtFrontOfQueue() because we
+        // want to process the message ASAP, before any other queued
+        // messages.
+        if (!mWmService.mAnimationHandler.hasCallbacks(mAddStartingWindow)) {
+            if (DEBUG_STARTING_WINDOW) Slog.v(TAG, "Enqueueing ADD_STARTING");
+            mWmService.mAnimationHandler.postAtFrontOfQueue(mAddStartingWindow);
+        }
+    }
+
+    private final Runnable mAddStartingWindow = new Runnable() {
+
+        @Override
+        public void run() {
+            synchronized (mWmService.mGlobalLock) {
+                // There can only be one adding request, silly caller!
+                mWmService.mAnimationHandler.removeCallbacks(this);
+            }
+
+            if (startingData == null) {
+                // Animation has been canceled... do nothing.
+                if (DEBUG_STARTING_WINDOW) {
+                    Slog.v(TAG, "startingData was nulled out before handling"
+                            + " mAddStartingWindow: " + AppWindowToken.this);
+                }
+                return;
+            }
+
+            if (DEBUG_STARTING_WINDOW) {
+                Slog.v(TAG, "Add starting " + this + ": startingData=" + startingData);
+            }
+
+            WindowManagerPolicy.StartingSurface surface = null;
+            try {
+                surface = startingData.createStartingSurface(AppWindowToken.this);
+            } catch (Exception e) {
+                Slog.w(TAG, "Exception when adding starting window", e);
+            }
+            if (surface != null) {
+                boolean abort = false;
+                synchronized (mWmService.mGlobalLock) {
+                    // If the window was successfully added, then
+                    // we need to remove it.
+                    if (removed || startingData == null) {
+                        if (DEBUG_STARTING_WINDOW) {
+                            Slog.v(TAG, "Aborted starting " + AppWindowToken.this
+                                    + ": removed=" + removed + " startingData=" + startingData);
+                        }
+                        startingWindow = null;
+                        startingData = null;
+                        abort = true;
+                    } else {
+                        startingSurface = surface;
+                    }
+                    if (DEBUG_STARTING_WINDOW && !abort) {
+                        Slog.v(TAG, "Added starting " + AppWindowToken.this + ": startingWindow="
+                                + startingWindow + " startingView=" + startingSurface);
+                    }
+                }
+                if (abort) {
+                    surface.remove();
+                }
+            } else if (DEBUG_STARTING_WINDOW) {
+                Slog.v(TAG, "Surface returned was null: " + AppWindowToken.this);
+            }
+        }
+    };
+
+    private int getStartingWindowType(boolean newTask, boolean taskSwitch, boolean processRunning,
+            boolean allowTaskSnapshot, boolean activityCreated, boolean fromRecents,
+            ActivityManager.TaskSnapshot snapshot) {
+        if (getDisplayContent().mAppTransition.getAppTransition()
+                == TRANSIT_DOCK_TASK_FROM_RECENTS) {
+            // TODO(b/34099271): Remove this statement to add back the starting window and figure
+            // out why it causes flickering, the starting window appears over the thumbnail while
+            // the docked from recents transition occurs
+            return STARTING_WINDOW_TYPE_NONE;
+        } else if (newTask || !processRunning || (taskSwitch && !activityCreated)) {
+            return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
+        } else if (taskSwitch && allowTaskSnapshot) {
+            return snapshot == null ? STARTING_WINDOW_TYPE_NONE
+                    : snapshotOrientationSameAsTask(snapshot) || fromRecents
+                            ? STARTING_WINDOW_TYPE_SNAPSHOT : STARTING_WINDOW_TYPE_SPLASH_SCREEN;
+        } else {
+            return STARTING_WINDOW_TYPE_NONE;
+        }
+    }
+
+
+    private boolean snapshotOrientationSameAsTask(ActivityManager.TaskSnapshot snapshot) {
+        if (snapshot == null) {
+            return false;
+        }
+        return getTask().getConfiguration().orientation == snapshot.getOrientation();
+    }
+
+    void removeStartingWindow() {
+        if (startingWindow == null) {
+            if (startingData != null) {
+                // Starting window has not been added yet, but it is scheduled to be added.
+                // Go ahead and cancel the request.
+                if (DEBUG_STARTING_WINDOW) {
+                    Slog.v(TAG_WM, "Clearing startingData for token=" + this);
+                }
+                startingData = null;
+            }
+            return;
+        }
+
+        final WindowManagerPolicy.StartingSurface surface;
+        if (startingData != null) {
+            surface = startingSurface;
+            startingData = null;
+            startingSurface = null;
+            startingWindow = null;
+            startingDisplayed = false;
+            if (surface == null) {
+                if (DEBUG_STARTING_WINDOW) {
+                    Slog.v(TAG_WM, "startingWindow was set but startingSurface==null, couldn't "
+                            + "remove");
+                }
+                return;
+            }
+        } else {
+            if (DEBUG_STARTING_WINDOW) {
+                Slog.v(TAG_WM, "Tried to remove starting window but startingWindow was null:"
+                        + this);
+            }
+            return;
+        }
+
+        if (DEBUG_STARTING_WINDOW) {
+            Slog.v(TAG_WM, "Schedule remove starting " + this
+                    + " startingWindow=" + startingWindow
+                    + " startingView=" + startingSurface
+                    + " Callers=" + Debug.getCallers(5));
+        }
+
+        // Use the same thread to remove the window as we used to add it, as otherwise we end up
+        // with things in the view hierarchy being called from different threads.
+        mWmService.mAnimationHandler.post(() -> {
+            if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Removing startingView=" + surface);
+            try {
+                surface.remove();
+            } catch (Exception e) {
+                Slog.w(TAG_WM, "Exception when removing starting window", e);
+            }
+        });
+    }
+
     @Override
     boolean fillsParent() {
         return mFillsParent;
@@ -1643,7 +2056,7 @@
         final boolean containsShowWhenLocked = containsShowWhenLockedWindow();
         if (containsDismissKeyguard != mLastContainsDismissKeyguardWindow
                 || containsShowWhenLocked != mLastContainsShowWhenLockedWindow) {
-            mService.notifyKeyguardFlagsChanged(null /* callback */,
+            mWmService.notifyKeyguardFlagsChanged(null /* callback */,
                     getDisplayContent().getDisplayId());
         }
         mLastContainsDismissKeyguardWindow = containsDismissKeyguard;
@@ -1750,10 +2163,8 @@
         if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM) Slog.i(TAG, "Creating animation bounds layer");
         final SurfaceControl.Builder builder = makeAnimationLeash()
                 .setParent(getAnimationLeashParent())
-                .setName(getSurfaceControl() + " - animation-bounds")
-                .setSize(getSurfaceWidth(), getSurfaceHeight());
+                .setName(getSurfaceControl() + " - animation-bounds");
         final SurfaceControl boundsLayer = builder.build();
-        t.setWindowCrop(boundsLayer, getSurfaceWidth(), getSurfaceHeight());
         t.show(boundsLayer);
         return boundsLayer;
     }
@@ -1767,9 +2178,9 @@
         final TaskStack stack = getStack();
         final Task task = getTask();
         if (task != null && task.inFreeformWindowingMode()) {
-            task.getRelativePosition(outPosition);
+            task.getRelativeDisplayedPosition(outPosition);
         } else if (stack != null) {
-            stack.getRelativePosition(outPosition);
+            stack.getRelativeDisplayedPosition(outPosition);
         }
 
         // Always use stack bounds in order to have the ability to animate outside the task region.
@@ -1782,10 +2193,22 @@
         outBounds.offsetTo(0, 0);
     }
 
+    @Override
+    Rect getDisplayedBounds() {
+        final Task task = getTask();
+        if (task != null) {
+            final Rect overrideDisplayedBounds = task.getOverrideDisplayedBounds();
+            if (!overrideDisplayedBounds.isEmpty()) {
+                return overrideDisplayedBounds;
+            }
+        }
+        return getBounds();
+    }
+
     boolean applyAnimationLocked(WindowManager.LayoutParams lp, int transit, boolean enter,
             boolean isVoiceInteraction) {
 
-        if (mService.mDisableTransitionAnimation || !shouldAnimate(transit)) {
+        if (mWmService.mDisableTransitionAnimation || !shouldAnimate(transit)) {
             if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM) {
                 Slog.v(TAG_WM, "applyAnimation: transition animation is disabled or skipped."
                         + " atoken=" + this);
@@ -1819,7 +2242,7 @@
                                     getDisplayContent().mAppTransition.canSkipFirstFrame(),
                                     appStackClipMode,
                                     true /* isAppAnimation */),
-                            mService.mSurfaceAnimationRunner);
+                            mWmService.mSurfaceAnimationRunner);
                     if (a.getZAdjustment() == Animation.ZORDER_TOP) {
                         mNeedsZBoost = true;
                     }
@@ -1902,7 +2325,7 @@
             final int containingWidth = frame.width();
             final int containingHeight = frame.height();
             a.initialize(containingWidth, containingHeight, width, height);
-            a.scaleCurrentDuration(mService.getTransitionAnimationScaleLocked());
+            a.scaleCurrentDuration(mWmService.getTransitionAnimationScaleLocked());
         }
         return a;
     }
@@ -2107,7 +2530,7 @@
             return;
         }
         final Rect frame = win.getFrameLw();
-        final int thumbnailDrawableRes = getTask().mUserId == mService.mCurrentUserId
+        final int thumbnailDrawableRes = getTask().mUserId == mWmService.mCurrentUserId
                 ? R.drawable.ic_account_circle
                 : R.drawable.ic_corp_badge;
         final GraphicBuffer thumbnail =
@@ -2211,9 +2634,6 @@
         if (mPendingRelaunchCount != 0) {
             pw.print(prefix); pw.print("mPendingRelaunchCount="); pw.println(mPendingRelaunchCount);
         }
-        if (getController() != null) {
-            pw.print(prefix); pw.print("controller="); pw.println(getController());
-        }
         if (mRemovingFromDisplay) {
             pw.println(prefix + "mRemovingFromDisplay=" + mRemovingFromDisplay);
         }
diff --git a/services/core/java/com/android/server/policy/BarController.java b/services/core/java/com/android/server/wm/BarController.java
similarity index 90%
rename from services/core/java/com/android/server/policy/BarController.java
rename to services/core/java/com/android/server/wm/BarController.java
index 14c985c..a335fa2 100644
--- a/services/core/java/com/android/server/policy/BarController.java
+++ b/services/core/java/com/android/server/wm/BarController.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * 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.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.policy;
+package com.android.server.wm;
 
 import static com.android.server.wm.BarControllerProto.STATE;
 import static com.android.server.wm.BarControllerProto.TRANSIENT_STATE;
@@ -30,7 +30,7 @@
 import android.view.WindowManager;
 
 import com.android.server.LocalServices;
-import com.android.server.policy.WindowManagerPolicy.WindowState;
+import com.android.server.UiThread;
 import com.android.server.statusbar.StatusBarManagerInternal;
 
 import java.io.PrintWriter;
@@ -59,7 +59,7 @@
     private final int mTranslucentWmFlag;
     protected final Handler mHandler;
     private final Object mServiceAquireLock = new Object();
-    protected StatusBarManagerInternal mStatusBarInternal;
+    private StatusBarManagerInternal mStatusBarInternal;
 
     protected WindowState mWin;
     private int mState = StatusBarManager.WINDOW_STATE_SHOWING;
@@ -73,7 +73,7 @@
 
     private OnBarVisibilityChangedListener mVisibilityChangeListener;
 
-    public BarController(String tag, int transientFlag, int unhideFlag, int translucentFlag,
+    BarController(String tag, int transientFlag, int unhideFlag, int translucentFlag,
             int statusBarManagerId, int translucentWmFlag, int transparentFlag) {
         mTag = "BarController." + tag;
         mTransientFlag = transientFlag;
@@ -85,7 +85,7 @@
         mHandler = new BarHandler();
     }
 
-    public void setWindow(WindowState win) {
+    void setWindow(WindowState win) {
         mWin = win;
     }
 
@@ -94,11 +94,11 @@
      *
      * This is used to determine if letterboxes interfere with the display of such content.
      */
-    public void setContentFrame(Rect frame) {
+    void setContentFrame(Rect frame) {
         mContentFrame.set(frame);
     }
 
-    public void setShowTransparent(boolean transparent) {
+    void setShowTransparent(boolean transparent) {
         if (transparent != mShowTransparent) {
             mShowTransparent = transparent;
             mSetUnHideFlagWhenNextTransparent = transparent;
@@ -106,27 +106,27 @@
         }
     }
 
-    public void showTransient() {
+    void showTransient() {
         if (mWin != null) {
             setTransientBarState(TRANSIENT_BAR_SHOW_REQUESTED);
         }
     }
 
-    public boolean isTransientShowing() {
+    boolean isTransientShowing() {
         return mTransientBarState == TRANSIENT_BAR_SHOWING;
     }
 
-    public boolean isTransientShowRequested() {
+    boolean isTransientShowRequested() {
         return mTransientBarState == TRANSIENT_BAR_SHOW_REQUESTED;
     }
 
-    public boolean wasRecentlyTranslucent() {
+    boolean wasRecentlyTranslucent() {
         return (SystemClock.uptimeMillis() - mLastTranslucent) < TRANSLUCENT_ANIMATION_DELAY_MS;
     }
 
-    public void adjustSystemUiVisibilityLw(int oldVis, int vis) {
-        if (mWin != null && mTransientBarState == TRANSIENT_BAR_SHOWING &&
-                (vis & mTransientFlag) == 0) {
+    void adjustSystemUiVisibilityLw(int oldVis, int vis) {
+        if (mWin != null && mTransientBarState == TRANSIENT_BAR_SHOWING
+                && (vis & mTransientFlag) == 0) {
             // sysui requests hide
             setTransientBarState(TRANSIENT_BAR_HIDING);
             setBarShowingLw(false);
@@ -136,7 +136,7 @@
         }
     }
 
-    public int applyTranslucentFlagLw(WindowState win, int vis, int oldVis) {
+    int applyTranslucentFlagLw(WindowState win, int vis, int oldVis) {
         if (mWin != null) {
             if (win != null && (win.getAttrs().privateFlags
                     & WindowManager.LayoutParams.PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR) == 0) {
@@ -164,7 +164,7 @@
         return win == null || !win.isLetterboxedOverlappingWith(mContentFrame);
     }
 
-    public boolean setBarShowingLw(final boolean show) {
+    boolean setBarShowingLw(final boolean show) {
         if (mWin == null) return false;
         if (show && mTransientBarState == TRANSIENT_BAR_HIDING) {
             mPendingShow = true;
@@ -227,7 +227,7 @@
                 public void run() {
                     StatusBarManagerInternal statusbar = getStatusBarInternal();
                     if (statusbar != null) {
-                        statusbar.setWindowState(mStatusBarManagerId, state);
+                        statusbar.setWindowState(mWin.getDisplayId(), mStatusBarManagerId, state);
                     }
                 }
             });
@@ -236,7 +236,7 @@
         return false;
     }
 
-    public boolean checkHiddenLw() {
+    boolean checkHiddenLw() {
         if (mWin != null && mWin.isDrawnLw()) {
             if (!mWin.isVisibleLw() && !mWin.isAnimatingLw()) {
                 updateStateLw(StatusBarManager.WINDOW_STATE_HIDDEN);
@@ -254,7 +254,7 @@
         return false;
     }
 
-    public boolean checkShowTransientBarLw() {
+    boolean checkShowTransientBarLw() {
         if (mTransientBarState == TRANSIENT_BAR_SHOWING) {
             if (DEBUG) Slog.d(mTag, "Not showing transient bar, already shown");
             return false;
@@ -272,7 +272,7 @@
         }
     }
 
-    public int updateVisibilityLw(boolean transientAllowed, int oldVis, int vis) {
+    int updateVisibilityLw(boolean transientAllowed, int oldVis, int vis) {
         if (mWin == null) return vis;
         if (isTransientShowing() || isTransientShowRequested()) { // transient bar requested
             if (transientAllowed) {
@@ -296,8 +296,8 @@
             vis |= mTransientFlag;  // ignore clear requests until transition completes
             vis &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;  // never show transient bars in low profile
         }
-        if ((vis & mTranslucentFlag) != 0 || (oldVis & mTranslucentFlag) != 0 ||
-                ((vis | oldVis) & mTransparentFlag) != 0) {
+        if ((vis & mTranslucentFlag) != 0 || (oldVis & mTranslucentFlag) != 0
+                || ((vis | oldVis) & mTransparentFlag) != 0) {
             mLastTranslucent = SystemClock.uptimeMillis();
         }
         return vis;
@@ -330,14 +330,14 @@
         throw new IllegalArgumentException("Unknown state " + state);
     }
 
-    public void writeToProto(ProtoOutputStream proto, long fieldId) {
+    void writeToProto(ProtoOutputStream proto, long fieldId) {
         final long token = proto.start(fieldId);
         proto.write(STATE, mState);
         proto.write(TRANSIENT_STATE, mTransientBarState);
         proto.end(token);
     }
 
-    public void dump(PrintWriter pw, String prefix) {
+    void dump(PrintWriter pw, String prefix) {
         if (mWin != null) {
             pw.print(prefix); pw.println(mTag);
             pw.print(prefix); pw.print("  "); pw.print("mState"); pw.print('=');
@@ -349,6 +349,10 @@
     }
 
     private class BarHandler extends Handler {
+        BarHandler() {
+            super(UiThread.getHandler().getLooper());
+        }
+
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
diff --git a/services/core/java/com/android/server/wm/BlackFrame.java b/services/core/java/com/android/server/wm/BlackFrame.java
index 9633864..c90f5bf 100644
--- a/services/core/java/com/android/server/wm/BlackFrame.java
+++ b/services/core/java/com/android/server/wm/BlackFrame.java
@@ -48,7 +48,6 @@
 
             surface = dc.makeOverlay()
                     .setName("BlackSurface")
-                    .setSize(w, h)
                     .setColorLayer(true)
                     .setParent(null) // TODO: Work-around for b/69259549
                     .build();
diff --git a/services/core/java/com/android/server/wm/CircularDisplayMask.java b/services/core/java/com/android/server/wm/CircularDisplayMask.java
index 2a216ab..c3d6211 100644
--- a/services/core/java/com/android/server/wm/CircularDisplayMask.java
+++ b/services/core/java/com/android/server/wm/CircularDisplayMask.java
@@ -69,7 +69,7 @@
         try {
             ctrl = dc.makeOverlay()
                     .setName("CircularDisplayMask")
-                    .setSize(mScreenSize.x, mScreenSize.y) // not a typo
+                    .setBufferSize(mScreenSize.x, mScreenSize.y) // not a typo
                     .setFormat(PixelFormat.TRANSLUCENT)
                     .build();
 
diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java
index cc14afc..aea071f 100644
--- a/services/core/java/com/android/server/wm/Dimmer.java
+++ b/services/core/java/com/android/server/wm/Dimmer.java
@@ -131,7 +131,7 @@
                 if (!mDimming) {
                     dimAnimatable.getPendingTransaction().destroy(mDimLayer);
                 }
-            }, mHost.mService);
+            }, mHost.mWmService);
         }
     }
 
@@ -308,7 +308,6 @@
             return false;
         } else {
             // TODO: Once we use geometry from hierarchy this falls away.
-            t.setSize(mDimState.mDimLayer, bounds.width(), bounds.height());
             t.setPosition(mDimState.mDimLayer, bounds.left, bounds.top);
             t.setWindowCrop(mDimState.mDimLayer, bounds.width(), bounds.height());
             if (!mDimState.isVisible) {
@@ -334,7 +333,7 @@
             SurfaceControl.Transaction t, float startAlpha, float endAlpha) {
         mSurfaceAnimatorStarter.startAnimation(animator, t, new LocalAnimationAdapter(
                 new AlphaAnimationSpec(startAlpha, endAlpha, getDimDuration(container)),
-                mHost.mService.mSurfaceAnimationRunner), false /* hidden */);
+                mHost.mWmService.mSurfaceAnimationRunner), false /* hidden */);
     }
 
     private long getDimDuration(WindowContainer container) {
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 4b93986..05e8267 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -29,6 +29,7 @@
 import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.FLAG_PRIVATE;
+import static android.view.InsetsState.TYPE_IME;
 import static android.view.Surface.ROTATION_0;
 import static android.view.Surface.ROTATION_180;
 import static android.view.Surface.ROTATION_270;
@@ -78,7 +79,6 @@
 import static com.android.server.wm.DisplayContentProto.ROTATION;
 import static com.android.server.wm.DisplayContentProto.SCREEN_ROTATION_ANIMATION;
 import static com.android.server.wm.DisplayContentProto.STACKS;
-import static com.android.server.wm.DisplayContentProto.SURFACE_SIZE;
 import static com.android.server.wm.DisplayContentProto.WINDOW_CONTAINER;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ADD_REMOVE;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_APP_TRANSITIONS;
@@ -100,6 +100,7 @@
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 import static com.android.server.wm.WindowManagerService.CUSTOM_SCREEN_ROTATION;
+import static com.android.server.wm.WindowManagerService.H.REPORT_HARD_KEYBOARD_STATUS_CHANGE;
 import static com.android.server.wm.WindowManagerService.H.REPORT_LOSING_FOCUS;
 import static com.android.server.wm.WindowManagerService.H.SEND_NEW_CONFIGURATION;
 import static com.android.server.wm.WindowManagerService.H.UPDATE_DOCKED_STACK_DIVIDER;
@@ -124,6 +125,7 @@
 import android.annotation.CallSuper;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.content.pm.PackageManager;
 import android.content.res.CompatibilityInfo;
 import android.content.res.Configuration;
@@ -151,16 +153,19 @@
 import android.view.Gravity;
 import android.view.InputChannel;
 import android.view.InputDevice;
+import android.view.InsetsState.InternalInsetType;
 import android.view.MagnificationSpec;
 import android.view.Surface;
 import android.view.SurfaceControl;
 import android.view.SurfaceControl.Transaction;
 import android.view.SurfaceSession;
+import android.view.View;
 import android.view.WindowManager;
 import android.view.WindowManagerPolicyConstants.PointerEventListener;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ToBooleanFunction;
+import com.android.internal.util.function.TriConsumer;
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.wm.utils.DisplayRotationUtil;
 import com.android.server.wm.utils.RotationCache;
@@ -182,9 +187,6 @@
 /**
  * Utility class for keeping track of the WindowStates and other pertinent contents of a
  * particular Display.
- *
- * IMPORTANT: No method from this class should ever be used without holding
- * WindowManagerService.mWindowMap.
  */
 class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowContainer>
         implements WindowManagerPolicy.DisplayContentInfo {
@@ -207,21 +209,21 @@
 
     /** The containers below are the only child containers the display can have. */
     // Contains all window containers that are related to apps (Activities)
-    private final TaskStackContainers mTaskStackContainers = new TaskStackContainers(mService);
+    private final TaskStackContainers mTaskStackContainers = new TaskStackContainers(mWmService);
     // Contains all non-app window containers that should be displayed above the app containers
     // (e.g. Status bar)
     private final AboveAppWindowContainers mAboveAppWindowsContainers =
-            new AboveAppWindowContainers("mAboveAppWindowsContainers", mService);
+            new AboveAppWindowContainers("mAboveAppWindowsContainers", mWmService);
     // Contains all non-app window containers that should be displayed below the app containers
     // (e.g. Wallpaper).
     private final NonAppWindowContainers mBelowAppWindowsContainers =
-            new NonAppWindowContainers("mBelowAppWindowsContainers", mService);
+            new NonAppWindowContainers("mBelowAppWindowsContainers", mWmService);
     // Contains all IME window containers. Note that the z-ordering of the IME windows will depend
     // on the IME target. We mainly have this container grouping so we can keep track of all the IME
     // window containers together and move them in-sync if/when needed. We use a subclass of
     // WindowContainer which is omitted from screen magnification, as the IME is never magnified.
     private final NonMagnifiableWindowContainers mImeWindowsContainers =
-            new NonMagnifiableWindowContainers("mImeWindowsContainers", mService);
+            new NonMagnifiableWindowContainers("mImeWindowsContainers", mWmService);
 
     private WindowState mTmpWindow;
     private WindowState mTmpWindow2;
@@ -289,7 +291,8 @@
      * @see WindowManagerService#createWatermarkInTransaction()
      */
     final DisplayMetrics mRealDisplayMetrics = new DisplayMetrics();
-    /** @see #computeCompatSmallestWidth(boolean, int, int, int, int) */
+
+    /** @see #computeCompatSmallestWidth(boolean, int, int, int, DisplayCutout) */
     private final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics();
 
     /**
@@ -353,6 +356,14 @@
     int pendingLayoutChanges;
     int mDeferredRotationPauseCount;
 
+    /**
+     * Used to gate application window layout until we have sent the complete configuration.
+     * TODO: There are still scenarios where we may be out of sync with the client. Ideally
+     *       we want to replace this flag with a mechanism that will confirm the configuration
+     *       applied by the client is the one expected by the system server.
+     */
+    boolean mWaitingForConfig;
+
     // TODO(multi-display): remove some of the usages.
     @VisibleForTesting
     boolean isDefaultDisplay;
@@ -414,6 +425,8 @@
 
     WallpaperController mWallpaperController;
 
+    boolean mWallpaperMayChange = false;
+
     private final SurfaceSession mSession = new SurfaceSession();
 
     /**
@@ -461,14 +474,6 @@
     private SurfaceControl mWindowingLayer;
 
     /**
-     * Specifies the size of the surfaces in {@link #mOverlayLayer} and {@link #mWindowingLayer}.
-     * <p>
-     * For these surfaces currently we use a surface based on the larger of width or height so we
-     * don't have to resize when rotating the display.
-     */
-    private int mSurfaceSize;
-
-    /**
      * Sequence number for the current layout pass.
      */
     int mLayoutSeq = 0;
@@ -506,6 +511,13 @@
 
     private final PointerEventDispatcher mPointerEventDispatcher;
 
+    private final InsetsStateController mInsetsStateController;
+
+    // Last systemUiVisibility we received from status bar.
+    private int mLastStatusBarVisibility = 0;
+    // Last systemUiVisibility we dispatched to windows.
+    private int mLastDispatchedSystemUiVisibility = 0;
+
     private final Consumer<WindowState> mUpdateWindowsForAnimator = w -> {
         WindowStateAnimator winAnimator = w.mWinAnimator;
         final AppWindowToken atoken = w.mAppToken;
@@ -514,7 +526,7 @@
                 if (w.performShowLocked()) {
                     pendingLayoutChanges |= FINISH_LAYOUT_REDO_ANIM;
                     if (DEBUG_LAYOUT_REPEATS) {
-                        mService.mWindowPlacerLocked.debugLayoutRepeats(
+                        mWmService.mWindowPlacerLocked.debugLayoutRepeats(
                                 "updateWindowsAndWallpaperLocked 5", pendingLayoutChanges);
                     }
                 }
@@ -545,7 +557,7 @@
 
     private final Consumer<WindowState> mScheduleToastTimeout = w -> {
         final int lostFocusUid = mTmpWindow.mOwnerUid;
-        final Handler handler = mService.mH;
+        final Handler handler = mWmService.mH;
         if (w.mAttrs.type == TYPE_TOAST && w.mOwnerUid == lostFocusUid) {
             if (!handler.hasMessages(WINDOW_HIDE_TIMEOUT, w)) {
                 handler.sendMessageDelayed(handler.obtainMessage(WINDOW_HIDE_TIMEOUT, w),
@@ -607,7 +619,7 @@
     private final Consumer<WindowState> mPerformLayout = w -> {
         // Don't do layout of a window if it is not visible, or soon won't be visible, to avoid
         // wasting time and funky changes while a window is animating away.
-        final boolean gone = (mTmpWindow != null && mService.mPolicy.canBeHiddenByKeyguardLw(w))
+        final boolean gone = (mTmpWindow != null && mWmService.mPolicy.canBeHiddenByKeyguardLw(w))
                 || w.isGoneForLayoutLw();
 
         if (DEBUG_LAYOUT && !w.mLayoutAttached) {
@@ -647,7 +659,7 @@
                 w.mLayoutNeeded = false;
                 w.prelayout();
                 final boolean firstLayout = !w.isLaidOut();
-                mService.mPolicy.layoutWindowLw(w, null, mDisplayFrames);
+                getDisplayPolicy().layoutWindowLw(w, null, mDisplayFrames);
                 w.mLayoutSeq = mLayoutSeq;
 
                 // If this is the first layout, we need to initialize the last inset values as
@@ -675,7 +687,7 @@
             // If this view is GONE, then skip it -- keep the current frame, and let the caller
             // know so they can ignore it if they want.  (We do the normal layout for INVISIBLE
             // windows, since that means "perform layout as normal, just don't display").
-            if (mTmpWindow != null && mService.mPolicy.canBeHiddenByKeyguardLw(w)) {
+            if (mTmpWindow != null && mWmService.mPolicy.canBeHiddenByKeyguardLw(w)) {
                 return;
             }
             if ((w.mViewVisibility != GONE && w.mRelayoutCalled) || !w.mHaveFrame
@@ -686,7 +698,7 @@
                 }
                 w.mLayoutNeeded = false;
                 w.prelayout();
-                mService.mPolicy.layoutWindowLw(w, w.getParentWindow(), mDisplayFrames);
+                getDisplayPolicy().layoutWindowLw(w, w.getParentWindow(), mDisplayFrames);
                 w.mLayoutSeq = mLayoutSeq;
                 if (DEBUG_LAYOUT) Slog.v(TAG, " LAYOUT: mFrame=" + w.getFrameLw()
                         + " mContainingFrame=" + w.getContainingFrame()
@@ -706,14 +718,14 @@
     };
 
     private final Consumer<WindowState> mApplyPostLayoutPolicy =
-            w -> mService.mPolicy.applyPostLayoutPolicyLw(w, w.mAttrs, w.getParentWindow(),
+            w -> getDisplayPolicy().applyPostLayoutPolicyLw(w, w.mAttrs, w.getParentWindow(),
                     mInputMethodTarget);
 
     private final Consumer<WindowState> mApplySurfaceChangesTransaction = w -> {
-        final WindowSurfacePlacer surfacePlacer = mService.mWindowPlacerLocked;
+        final WindowSurfacePlacer surfacePlacer = mWmService.mWindowPlacerLocked;
         final boolean obscuredChanged = w.mObscured !=
                 mTmpApplySurfaceChangesTransactionState.obscured;
-        final RootWindowContainer root = mService.mRoot;
+        final RootWindowContainer root = mWmService.mRoot;
 
         // Update effect.
         w.mObscured = mTmpApplySurfaceChangesTransactionState.obscured;
@@ -751,8 +763,7 @@
             }
         }
 
-        if (isDefaultDisplay && obscuredChanged && w.isVisibleLw()
-                && mWallpaperController.isWallpaperTarget(w)) {
+        if (obscuredChanged && w.isVisibleLw() && mWallpaperController.isWallpaperTarget(w)) {
             // This is the wallpaper target and its obscured state changed... make sure the
             // current wallpaper's visibility has been updated accordingly.
             mWallpaperController.updateWallpaperVisibility();
@@ -784,7 +795,7 @@
                 if ((w.mAttrs.flags & FLAG_SHOW_WALLPAPER) != 0) {
                     if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
                             "First draw done in potential wallpaper target " + w);
-                    root.mWallpaperMayChange = true;
+                    mWallpaperMayChange = true;
                     pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
                     if (DEBUG_LAYOUT_REPEATS) {
                         surfacePlacer.debugLayoutRepeats(
@@ -805,7 +816,7 @@
         }
 
         if (!mLosingFocus.isEmpty() && w.isFocused() && w.isDisplayedLw()) {
-            mService.mH.obtainMessage(REPORT_LOSING_FOCUS, this).sendToTarget();
+            mWmService.mH.obtainMessage(REPORT_LOSING_FOCUS, this).sendToTarget();
         }
 
         w.updateResizingWindowIfNeeded();
@@ -816,11 +827,10 @@
      * initialize direct children.
      * @param display May not be null.
      * @param service You know.
-     * @param wallpaperController wallpaper windows controller used to adjust the positioning of the
-     *                            wallpaper windows in the window list.
+     * @param controller The controller for the display container.
      */
     DisplayContent(Display display, WindowManagerService service,
-            WallpaperController wallpaperController, DisplayWindowController controller) {
+            DisplayWindowController controller) {
         super(service);
         setController(controller);
         if (service.mRoot.getDisplayContent(display.getDisplayId()) != null) {
@@ -831,22 +841,13 @@
 
         mDisplay = display;
         mDisplayId = display.getDisplayId();
-        mWallpaperController = wallpaperController;
+        mWallpaperController = new WallpaperController(mWmService, this);
         display.getDisplayInfo(mDisplayInfo);
         display.getMetrics(mDisplayMetrics);
         isDefaultDisplay = mDisplayId == DEFAULT_DISPLAY;
         mDisplayFrames = new DisplayFrames(mDisplayId, mDisplayInfo,
                 calculateDisplayCutoutForRotation(mDisplayInfo.rotation));
         initializeDisplayBaseInfo();
-        mDisplayPolicy = new DisplayPolicy(service);
-        mDisplayRotation = new DisplayRotation(service, this);
-        if (isDefaultDisplay) {
-            // The policy may be invoked right after here, so it requires the necessary default
-            // fields of this display content.
-            mService.mPolicy.setDefaultDisplay(this);
-        }
-        mDividerControllerLocked = new DockedStackDividerController(service, this);
-        mPinnedStackControllerLocked = new PinnedStackController(service, this);
 
         mAppTransition = new AppTransition(service.mContext, service, this);
         mAppTransition.registerListenerLocked(service.mActivityManagerAppTransitionNotifier);
@@ -857,18 +858,31 @@
         mBoundsAnimationController = new BoundsAnimationController(service.mContext,
                 mAppTransition, SurfaceAnimationThread.getHandler(), animationHandler);
 
-        // We use this as our arbitrary surface size for buffer-less parents
-        // that don't impose cropping on their children. It may need to be larger
-        // than the display size because fullscreen windows can be shifted offscreen
-        // due to surfaceInsets. 2 times the largest display dimension feels like an
-        // appropriately arbitrary number. Eventually we would like to give SurfaceFlinger
-        // layers the ability to match their parent sizes and be able to skip
-        // such arbitrary size settings.
-        mSurfaceSize = Math.max(mBaseDisplayHeight, mBaseDisplayWidth) * 2;
+        if (mWmService.mInputManager != null) {
+            final InputChannel inputChannel = mWmService.mInputManager.monitorInput("Display "
+                    + mDisplayId, mDisplayId);
+            mPointerEventDispatcher = inputChannel != null
+                    ? new PointerEventDispatcher(inputChannel) : null;
+        } else {
+            mPointerEventDispatcher = null;
+        }
+        mDisplayPolicy = new DisplayPolicy(service, this);
+        mDisplayRotation = new DisplayRotation(service, this);
+        if (isDefaultDisplay) {
+            // The policy may be invoked right after here, so it requires the necessary default
+            // fields of this display content.
+            mWmService.mPolicy.setDefaultDisplay(this);
+        }
+        if (mWmService.mDisplayReady) {
+            mDisplayPolicy.onConfigurationChanged();
+        }
+        if (mWmService.mSystemReady) {
+            mDisplayPolicy.systemReady();
+        }
+        mDividerControllerLocked = new DockedStackDividerController(service, this);
+        mPinnedStackControllerLocked = new PinnedStackController(service, this);
 
-        final SurfaceControl.Builder b = mService.makeSurfaceBuilder(mSession)
-                .setSize(mSurfaceSize, mSurfaceSize)
-                .setOpaque(true);
+        final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(mSession).setOpaque(true);
         mWindowingLayer = b.setName("Display Root").build();
         mOverlayLayer = b.setName("Display Overlays").build();
 
@@ -887,28 +901,20 @@
         super.addChild(mImeWindowsContainers, null);
 
         // Add itself as a child to the root container.
-        mService.mRoot.addChild(this, null);
+        mWmService.mRoot.addChild(this, null);
 
         // TODO(b/62541591): evaluate whether this is the best spot to declare the
         // {@link DisplayContent} ready for use.
         mDisplayReady = true;
 
-        mService.mAnimator.addDisplayLocked(mDisplayId);
+        mWmService.mAnimator.addDisplayLocked(mDisplayId);
         mInputMonitor = new InputMonitor(service, mDisplayId);
-
-        if (mService.mInputManager != null) {
-            final InputChannel inputChannel = mService.mInputManager.monitorInput("Display "
-                    + mDisplayId, mDisplayId);
-            mPointerEventDispatcher = inputChannel != null
-                    ? new PointerEventDispatcher(inputChannel) : null;
-        } else {
-            mPointerEventDispatcher = null;
-        }
+        mInsetsStateController = new InsetsStateController(this);
     }
 
     boolean isReady() {
         // The display is ready when the system and the individual display are both ready.
-        return mService.mDisplayReady && mDisplayReady;
+        return mWmService.mDisplayReady && mDisplayReady;
     }
 
     int getDisplayId() {
@@ -928,7 +934,7 @@
     }
 
     private void addWindowToken(IBinder binder, WindowToken token) {
-        final DisplayContent dc = mService.mRoot.getWindowTokenDisplay(token);
+        final DisplayContent dc = mWmService.mRoot.getWindowTokenDisplay(token);
         if (dc != null) {
             // We currently don't support adding a window token to the display if the display
             // already has the binder mapped to another token. If there is a use case for supporting
@@ -1040,6 +1046,23 @@
         return mDisplayRotation;
     }
 
+    /**
+     * Marks a window as providing insets for the rest of the windows in the system.
+     *
+     * @param type The type of inset this window provides.
+     * @param win The window.
+     * @param frameProvider Function to compute the frame, or {@code null} if the just the frame of
+     *                      the window should be taken.
+     */
+    void setInsetProvider(@InternalInsetType int type, WindowState win,
+            @Nullable TriConsumer<DisplayFrames, WindowState, Rect> frameProvider) {
+        mInsetsStateController.getSourceProvider(type).setWindow(win, frameProvider);
+    }
+
+    InsetsStateController getInsetsStateController() {
+        return mInsetsStateController;
+    }
+
     @VisibleForTesting
     void setDisplayRotation(DisplayRotation displayRotation) {
         mDisplayRotation = displayRotation;
@@ -1117,7 +1140,7 @@
 
     /** Notify the configuration change of this display. */
     void sendNewConfiguration() {
-        mService.mH.obtainMessage(SEND_NEW_CONFIGURATION, this).sendToTarget();
+        mWmService.mH.obtainMessage(SEND_NEW_CONFIGURATION, this).sendToTarget();
     }
 
     /**
@@ -1192,7 +1215,7 @@
             }
 
             screenRotationAnimation =
-                    mService.mAnimator.getScreenRotationAnimationLocked(mDisplayId);
+                    mWmService.mAnimator.getScreenRotationAnimationLocked(mDisplayId);
             if (screenRotationAnimation != null && screenRotationAnimation.isAnimating()) {
                 // Rotation updates cannot be performed while the previous rotation change
                 // animation is still in progress.  Skip this update.  We will try updating
@@ -1200,7 +1223,7 @@
                 if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Deferring rotation, animation in progress.");
                 return false;
             }
-            if (mService.mDisplayFrozen) {
+            if (mWmService.mDisplayFrozen) {
                 // Even if the screen rotation animation has finished (e.g. isAnimating
                 // returns false), there is still some time where we haven't yet unfrozen
                 // the display. We also need to abort rotation here.
@@ -1210,7 +1233,7 @@
             }
         }
 
-        if (!mService.mDisplayEnabled) {
+        if (!mWmService.mDisplayEnabled) {
             // No point choosing a rotation if the display is not enabled.
             if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Deferring rotation, display is not enabled.");
             return false;
@@ -1223,7 +1246,7 @@
         if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Computed rotation=" + rotation + " for display id="
                 + mDisplayId + " based on lastOrientation=" + lastOrientation
                 + " and oldRotation=" + oldRotation);
-        boolean mayRotateSeamlessly = mService.mPolicy.shouldRotateSeamlessly(mDisplayRotation,
+        boolean mayRotateSeamlessly = mDisplayPolicy.shouldRotateSeamlessly(mDisplayRotation,
                 oldRotation, rotation);
 
         if (mayRotateSeamlessly) {
@@ -1241,8 +1264,8 @@
             if (hasPinnedStack()) {
                 mayRotateSeamlessly = false;
             }
-            for (int i = 0; i < mService.mSessions.size(); i++) {
-                if (mService.mSessions.valueAt(i).hasAlertWindowSurfaces()) {
+            for (int i = 0; i < mWmService.mSessions.size(); i++) {
+                if (mWmService.mSessions.valueAt(i).hasAlertWindowSurfaces()) {
                     mayRotateSeamlessly = false;
                     break;
                 }
@@ -1274,29 +1297,29 @@
                 + (oldAltOrientation ? " (alt)" : "") + ", lastOrientation=" + lastOrientation);
 
         if (DisplayContent.deltaRotation(rotation, oldRotation) != 2) {
-            mService.mWaitingForConfig = true;
+            mWaitingForConfig = true;
         }
 
         mRotation = rotation;
         mAltOrientation = altOrientation;
 
-        mService.mWindowsFreezingScreen = WINDOWS_FREEZING_SCREENS_ACTIVE;
-        mService.mH.sendNewMessageDelayed(WindowManagerService.H.WINDOW_FREEZE_TIMEOUT,
+        mWmService.mWindowsFreezingScreen = WINDOWS_FREEZING_SCREENS_ACTIVE;
+        mWmService.mH.sendNewMessageDelayed(WindowManagerService.H.WINDOW_FREEZE_TIMEOUT,
                 this, WINDOW_FREEZE_TIMEOUT_DURATION);
 
         setLayoutNeeded();
         final int[] anim = new int[2];
-        mService.mPolicy.selectRotationAnimationLw(anim);
+        mDisplayPolicy.selectRotationAnimationLw(anim);
 
         if (!rotateSeamlessly) {
-            mService.startFreezingDisplayLocked(anim[0], anim[1], this);
+            mWmService.startFreezingDisplayLocked(anim[0], anim[1], this);
             // startFreezingDisplayLocked can reset the ScreenRotationAnimation.
         } else {
             // The screen rotation animation uses a screenshot to freeze the screen
             // while windows resize underneath.
             // When we are rotating seamlessly, we allow the elements to transition
             // to their rotated state independently and without a freeze required.
-            mService.startSeamlessRotation();
+            mWmService.startSeamlessRotation();
         }
 
         return true;
@@ -1311,9 +1334,9 @@
      */
     void applyRotationLocked(final int oldRotation, final int rotation) {
         mDisplayRotation.setRotation(rotation);
-        final boolean rotateSeamlessly = mService.isRotatingSeamlessly();
+        final boolean rotateSeamlessly = mWmService.isRotatingSeamlessly();
         ScreenRotationAnimation screenRotationAnimation = rotateSeamlessly
-                ? null : mService.mAnimator.getScreenRotationAnimationLocked(mDisplayId);
+                ? null : mWmService.mAnimator.getScreenRotationAnimationLocked(mDisplayId);
         // We need to update our screen size information to match the new rotation. If the rotation
         // has actually changed then this method will return true and, according to the comment at
         // the top of the method, the caller is obligated to call computeNewConfigurationLocked().
@@ -1326,9 +1349,9 @@
         if (CUSTOM_SCREEN_ROTATION && screenRotationAnimation != null
                 && screenRotationAnimation.hasScreenshot()) {
             if (screenRotationAnimation.setRotation(getPendingTransaction(), rotation,
-                    MAX_ANIMATION_DURATION, mService.getTransitionAnimationScaleLocked(),
+                    MAX_ANIMATION_DURATION, mWmService.getTransitionAnimationScaleLocked(),
                     mDisplayInfo.logicalWidth, mDisplayInfo.logicalHeight)) {
-                mService.scheduleAnimationLocked();
+                mWmService.scheduleAnimationLocked();
             }
         }
 
@@ -1337,27 +1360,27 @@
                     rotateSeamlessly);
         }, true /* traverseTopToBottom */);
 
-        mService.mDisplayManagerInternal.performTraversal(getPendingTransaction());
+        mWmService.mDisplayManagerInternal.performTraversal(getPendingTransaction());
         scheduleAnimation();
 
         forAllWindows(w -> {
             if (w.mHasSurface && !rotateSeamlessly) {
                 if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Set mOrientationChanging of " + w);
                 w.setOrientationChanging(true);
-                mService.mRoot.mOrientationChangeComplete = false;
+                mWmService.mRoot.mOrientationChangeComplete = false;
                 w.mLastFreezeDuration = 0;
             }
             w.mReportOrientationChanged = true;
         }, true /* traverseTopToBottom */);
 
         if (rotateSeamlessly) {
-            mService.mH.sendNewMessageDelayed(WindowManagerService.H.SEAMLESS_ROTATION_TIMEOUT,
+            mWmService.mH.sendNewMessageDelayed(WindowManagerService.H.SEAMLESS_ROTATION_TIMEOUT,
                     this, SEAMLESS_ROTATION_TIMEOUT_DURATION);
         }
 
-        for (int i = mService.mRotationWatchers.size() - 1; i >= 0; i--) {
+        for (int i = mWmService.mRotationWatchers.size() - 1; i >= 0; i--) {
             final WindowManagerService.RotationWatcher rotationWatcher
-                    = mService.mRotationWatchers.get(i);
+                    = mWmService.mRotationWatchers.get(i);
             if (rotationWatcher.mDisplayId == mDisplayId) {
                 try {
                     rotationWatcher.mWatcher.onRotationChanged(rotation);
@@ -1370,9 +1393,9 @@
         // TODO (multi-display): Magnification is supported only for the default display.
         // Announce rotation only if we will not animate as we already have the
         // windows in final state. Otherwise, we make this call at the rotation end.
-        if (screenRotationAnimation == null && mService.mAccessibilityController != null
+        if (screenRotationAnimation == null && mWmService.mAccessibilityController != null
                 && isDefaultDisplay) {
-            mService.mAccessibilityController.onRotationChangedLocked(this);
+            mWmService.mAccessibilityController.onRotationChangedLocked(this);
         }
     }
 
@@ -1406,9 +1429,9 @@
                 Slog.d(TAG,
                         "Registering PointerEventListener for DisplayId: " + mDisplayId);
             }
-            mTapDetector = new TaskTapPointerEventListener(mService, this);
+            mTapDetector = new TaskTapPointerEventListener(mWmService, this);
             registerPointerEventListener(mTapDetector);
-            registerPointerEventListener(mService.mMousePositionTracker);
+            registerPointerEventListener(mWmService.mMousePositionTracker);
         }
     }
 
@@ -1445,10 +1468,10 @@
         final WmDisplayCutout wmDisplayCutout = calculateDisplayCutoutForRotation(mRotation);
         final DisplayCutout displayCutout = wmDisplayCutout.getDisplayCutout();
 
-        final int appWidth = mService.mPolicy.getNonDecorDisplayWidth(dw, dh, mRotation, uiMode,
-                mDisplayId, displayCutout);
-        final int appHeight = mService.mPolicy.getNonDecorDisplayHeight(dw, dh, mRotation, uiMode,
-                mDisplayId, displayCutout);
+        final int appWidth = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, mRotation, uiMode,
+                displayCutout);
+        final int appHeight = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, mRotation, uiMode,
+                displayCutout);
         mDisplayInfo.rotation = mRotation;
         mDisplayInfo.logicalWidth = dw;
         mDisplayInfo.logicalHeight = dh;
@@ -1473,7 +1496,7 @@
         // because we don't want letter-/pillar-boxing during resize.
         final DisplayInfo overrideDisplayInfo = mShouldOverrideDisplayConfiguration
                 ? mDisplayInfo : null;
-        mService.mDisplayManagerInternal.setDisplayInfoOverrideFromWindowManager(mDisplayId,
+        mWmService.mDisplayManagerInternal.setDisplayInfoOverrideFromWindowManager(mDisplayId,
                 overrideDisplayInfo);
 
         mBaseDisplayRect.set(0, 0, dw, dh);
@@ -1527,13 +1550,13 @@
 
         final float density = mDisplayMetrics.density;
         config.screenWidthDp =
-                (int)(mService.mPolicy.getConfigDisplayWidth(dw, dh, displayInfo.rotation,
-                        config.uiMode, mDisplayId, displayInfo.displayCutout) / density);
+                (int)(mDisplayPolicy.getConfigDisplayWidth(dw, dh, displayInfo.rotation,
+                        config.uiMode, displayInfo.displayCutout) / density);
         config.screenHeightDp =
-                (int)(mService.mPolicy.getConfigDisplayHeight(dw, dh, displayInfo.rotation,
-                        config.uiMode, mDisplayId, displayInfo.displayCutout) / density);
+                (int)(mDisplayPolicy.getConfigDisplayHeight(dw, dh, displayInfo.rotation,
+                        config.uiMode, displayInfo.displayCutout) / density);
 
-        mService.mPolicy.getNonDecorInsetsLw(displayInfo.rotation, dw, dh,
+        mDisplayPolicy.getNonDecorInsetsLw(displayInfo.rotation, dw, dh,
                 displayInfo.displayCutout, mTmpRect);
         final int leftInset = mTmpRect.left;
         final int topInset = mTmpRect.top;
@@ -1544,8 +1567,8 @@
         final boolean rotated = (displayInfo.rotation == Surface.ROTATION_90
                 || displayInfo.rotation == Surface.ROTATION_270);
 
-        computeSizeRangesAndScreenLayout(displayInfo, mDisplayId, rotated, config.uiMode, dw, dh,
-                density, config);
+        computeSizeRangesAndScreenLayout(displayInfo, rotated, config.uiMode, dw, dh, density,
+                config);
 
         config.screenLayout = (config.screenLayout & ~Configuration.SCREENLAYOUT_ROUND_MASK)
                 | ((displayInfo.flags & Display.FLAG_ROUND) != 0
@@ -1555,14 +1578,14 @@
         config.compatScreenWidthDp = (int)(config.screenWidthDp / mCompatibleScreenScale);
         config.compatScreenHeightDp = (int)(config.screenHeightDp / mCompatibleScreenScale);
         config.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, config.uiMode, dw,
-                dh, displayInfo.displayCutout, mDisplayId);
+                dh, displayInfo.displayCutout);
         config.densityDpi = displayInfo.logicalDensityDpi;
 
         config.colorMode =
-                ((displayInfo.isHdr() && mService.hasHdrSupport())
+                ((displayInfo.isHdr() && mWmService.hasHdrSupport())
                         ? Configuration.COLOR_MODE_HDR_YES
                         : Configuration.COLOR_MODE_HDR_NO)
-                        | (displayInfo.isWideColorGamut() && mService.hasWideColorGamutSupport()
+                        | (displayInfo.isWideColorGamut() && mWmService.hasWideColorGamutSupport()
                         ? Configuration.COLOR_MODE_WIDE_COLOR_GAMUT_YES
                         : Configuration.COLOR_MODE_WIDE_COLOR_GAMUT_NO);
 
@@ -1574,7 +1597,7 @@
 
         int keyboardPresence = 0;
         int navigationPresence = 0;
-        final InputDevice[] devices = mService.mInputManager.getInputDevices();
+        final InputDevice[] devices = mWmService.mInputManager.getInputDevices();
         final int len = devices != null ? devices.length : 0;
         for (int i = 0; i < len; i++) {
             InputDevice device = devices[i];
@@ -1585,7 +1608,7 @@
                         WindowManagerPolicy.PRESENCE_INTERNAL;
 
                 // TODO(multi-display): Configure on per-display basis.
-                if (mService.mIsTouchDevice) {
+                if (mWmService.mIsTouchDevice) {
                     if ((sources & InputDevice.SOURCE_TOUCHSCREEN) ==
                             InputDevice.SOURCE_TOUCHSCREEN) {
                         config.touchscreen = Configuration.TOUCHSCREEN_FINGER;
@@ -1610,7 +1633,7 @@
             }
         }
 
-        if (config.navigation == Configuration.NAVIGATION_NONAV && mService.mHasPermanentDpad) {
+        if (config.navigation == Configuration.NAVIGATION_NONAV && mWmService.mHasPermanentDpad) {
             config.navigation = Configuration.NAVIGATION_DPAD;
             navigationPresence |= WindowManagerPolicy.PRESENCE_INTERNAL;
         }
@@ -1618,21 +1641,23 @@
         // Determine whether a hard keyboard is available and enabled.
         // TODO(multi-display): Should the hardware keyboard be tied to a display or to a device?
         boolean hardKeyboardAvailable = config.keyboard != Configuration.KEYBOARD_NOKEYS;
-        if (hardKeyboardAvailable != mService.mHardKeyboardAvailable) {
-            mService.mHardKeyboardAvailable = hardKeyboardAvailable;
-            mService.mH.removeMessages(WindowManagerService.H.REPORT_HARD_KEYBOARD_STATUS_CHANGE);
-            mService.mH.sendEmptyMessage(WindowManagerService.H.REPORT_HARD_KEYBOARD_STATUS_CHANGE);
+        if (hardKeyboardAvailable != mWmService.mHardKeyboardAvailable) {
+            mWmService.mHardKeyboardAvailable = hardKeyboardAvailable;
+            mWmService.mH.removeMessages(REPORT_HARD_KEYBOARD_STATUS_CHANGE);
+            mWmService.mH.sendEmptyMessage(REPORT_HARD_KEYBOARD_STATUS_CHANGE);
         }
 
+        mDisplayPolicy.updateConfigurationDependentBehaviors();
+
         // Let the policy update hidden states.
         config.keyboardHidden = Configuration.KEYBOARDHIDDEN_NO;
         config.hardKeyboardHidden = Configuration.HARDKEYBOARDHIDDEN_NO;
         config.navigationHidden = Configuration.NAVIGATIONHIDDEN_NO;
-        mService.mPolicy.adjustConfigurationLw(config, keyboardPresence, navigationPresence);
+        mWmService.mPolicy.adjustConfigurationLw(config, keyboardPresence, navigationPresence);
     }
 
     private int computeCompatSmallestWidth(boolean rotated, int uiMode, int dw, int dh,
-            DisplayCutout displayCutout, int displayId) {
+            DisplayCutout displayCutout) {
         mTmpDisplayMetrics.setTo(mDisplayMetrics);
         final DisplayMetrics tmpDm = mTmpDisplayMetrics;
         final int unrotDw, unrotDh;
@@ -1644,22 +1669,22 @@
             unrotDh = dh;
         }
         int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, uiMode, tmpDm, unrotDw, unrotDh,
-                displayCutout, displayId);
+                displayCutout);
         sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, uiMode, tmpDm, unrotDh, unrotDw,
-                displayCutout, displayId);
+                displayCutout);
         sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, uiMode, tmpDm, unrotDw, unrotDh,
-                displayCutout, displayId);
+                displayCutout);
         sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, uiMode, tmpDm, unrotDh, unrotDw,
-                displayCutout, displayId);
+                displayCutout);
         return sw;
     }
 
     private int reduceCompatConfigWidthSize(int curSize, int rotation, int uiMode,
-            DisplayMetrics dm, int dw, int dh, DisplayCutout displayCutout, int displayId) {
-        dm.noncompatWidthPixels = mService.mPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode,
-                displayId, displayCutout);
-        dm.noncompatHeightPixels = mService.mPolicy.getNonDecorDisplayHeight(dw, dh, rotation,
-                uiMode, displayId, displayCutout);
+            DisplayMetrics dm, int dw, int dh, DisplayCutout displayCutout) {
+        dm.noncompatWidthPixels = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode,
+                displayCutout);
+        dm.noncompatHeightPixels = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode,
+                displayCutout);
         float scale = CompatibilityInfo.computeCompatibleScaling(dm, null);
         int size = (int)(((dm.noncompatWidthPixels / scale) / dm.density) + .5f);
         if (curSize == 0 || size < curSize) {
@@ -1668,8 +1693,8 @@
         return curSize;
     }
 
-    private void computeSizeRangesAndScreenLayout(DisplayInfo displayInfo, int displayId,
-            boolean rotated, int uiMode, int dw, int dh, float density, Configuration outConfig) {
+    private void computeSizeRangesAndScreenLayout(DisplayInfo displayInfo, boolean rotated,
+            int uiMode, int dw, int dh, float density, Configuration outConfig) {
 
         // We need to determine the smallest width that will occur under normal
         // operation.  To this, start with the base screen size and compute the
@@ -1687,34 +1712,28 @@
         displayInfo.smallestNominalAppHeight = 1<<30;
         displayInfo.largestNominalAppWidth = 0;
         displayInfo.largestNominalAppHeight = 0;
-        adjustDisplaySizeRanges(displayInfo, displayId, Surface.ROTATION_0, uiMode, unrotDw,
-                unrotDh);
-        adjustDisplaySizeRanges(displayInfo, displayId, Surface.ROTATION_90, uiMode, unrotDh,
-                unrotDw);
-        adjustDisplaySizeRanges(displayInfo, displayId, Surface.ROTATION_180, uiMode, unrotDw,
-                unrotDh);
-        adjustDisplaySizeRanges(displayInfo, displayId, Surface.ROTATION_270, uiMode, unrotDh,
-                unrotDw);
+        adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_0, uiMode, unrotDw, unrotDh);
+        adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_90, uiMode, unrotDh, unrotDw);
+        adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_180, uiMode, unrotDw, unrotDh);
+        adjustDisplaySizeRanges(displayInfo, Surface.ROTATION_270, uiMode, unrotDh, unrotDw);
         int sl = Configuration.resetScreenLayout(outConfig.screenLayout);
         sl = reduceConfigLayout(sl, Surface.ROTATION_0, density, unrotDw, unrotDh, uiMode,
-                displayInfo.displayCutout, displayId);
+                displayInfo.displayCutout);
         sl = reduceConfigLayout(sl, Surface.ROTATION_90, density, unrotDh, unrotDw, uiMode,
-                displayInfo.displayCutout, displayId);
+                displayInfo.displayCutout);
         sl = reduceConfigLayout(sl, Surface.ROTATION_180, density, unrotDw, unrotDh, uiMode,
-                displayInfo.displayCutout, displayId);
+                displayInfo.displayCutout);
         sl = reduceConfigLayout(sl, Surface.ROTATION_270, density, unrotDh, unrotDw, uiMode,
-                displayInfo.displayCutout, displayId);
+                displayInfo.displayCutout);
         outConfig.smallestScreenWidthDp = (int)(displayInfo.smallestNominalAppWidth / density);
         outConfig.screenLayout = sl;
     }
 
     private int reduceConfigLayout(int curLayout, int rotation, float density, int dw, int dh,
-            int uiMode, DisplayCutout displayCutout, int displayId) {
+            int uiMode, DisplayCutout displayCutout) {
         // Get the app screen size at this rotation.
-        int w = mService.mPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode, displayId,
-                displayCutout);
-        int h = mService.mPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode, displayId,
-                displayCutout);
+        int w = mDisplayPolicy.getNonDecorDisplayWidth(dw, dh, rotation, uiMode, displayCutout);
+        int h = mDisplayPolicy.getNonDecorDisplayHeight(dw, dh, rotation, uiMode, displayCutout);
 
         // Compute the screen layout size class for this rotation.
         int longSize = w;
@@ -1729,20 +1748,20 @@
         return Configuration.reduceScreenLayout(curLayout, longSize, shortSize);
     }
 
-    private void adjustDisplaySizeRanges(DisplayInfo displayInfo, int displayId, int rotation,
+    private void adjustDisplaySizeRanges(DisplayInfo displayInfo, int rotation,
             int uiMode, int dw, int dh) {
         final DisplayCutout displayCutout = calculateDisplayCutoutForRotation(
                 rotation).getDisplayCutout();
-        final int width = mService.mPolicy.getConfigDisplayWidth(dw, dh, rotation, uiMode,
-                displayId, displayCutout);
+        final int width = mDisplayPolicy.getConfigDisplayWidth(dw, dh, rotation, uiMode,
+                displayCutout);
         if (width < displayInfo.smallestNominalAppWidth) {
             displayInfo.smallestNominalAppWidth = width;
         }
         if (width > displayInfo.largestNominalAppWidth) {
             displayInfo.largestNominalAppWidth = width;
         }
-        final int height = mService.mPolicy.getConfigDisplayHeight(dw, dh, rotation, uiMode,
-                displayId, displayCutout);
+        final int height = mDisplayPolicy.getConfigDisplayHeight(dw, dh, rotation, uiMode,
+                displayCutout);
         if (height < displayInfo.smallestNominalAppHeight) {
             displayInfo.smallestNominalAppHeight = height;
         }
@@ -1887,18 +1906,15 @@
     @Override
     public void onConfigurationChanged(Configuration newParentConfig) {
         super.onConfigurationChanged(newParentConfig);
+        if (mDisplayPolicy != null) {
+            mDisplayPolicy.onConfigurationChanged();
+        }
 
         // If there was no pinned stack, we still need to notify the controller of the display info
         // update as a result of the config change.
         if (mPinnedStackControllerLocked != null && !hasPinnedStack()) {
             mPinnedStackControllerLocked.onDisplayInfoChanged(getDisplayInfo());
         }
-
-        // The display size information is heavily dependent on the resources in the current
-        // configuration, so we need to reconfigure it every time the configuration changes.
-        // See {@link #configureDisplayPolicy}...sigh...
-        mService.reconfigureDisplayLocked(this);
-
     }
 
     /**
@@ -1934,7 +1950,7 @@
     @Override
     void onAppTransitionDone() {
         super.onAppTransitionDone();
-        mService.mWindowsChanged = true;
+        mWmService.mWindowsChanged = true;
     }
 
     /**
@@ -1986,9 +2002,9 @@
 
     @Override
     int getOrientation() {
-        final WindowManagerPolicy policy = mService.mPolicy;
+        final WindowManagerPolicy policy = mWmService.mPolicy;
 
-        if (mService.mDisplayFrozen) {
+        if (mWmService.mDisplayFrozen) {
             if (mLastWindowForcedOrientation != SCREEN_ORIENTATION_UNSPECIFIED) {
                 if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Display id=" + mDisplayId
                         + " is frozen, return " + mLastWindowForcedOrientation);
@@ -2029,7 +2045,7 @@
     }
 
     void initializeDisplayBaseInfo() {
-        final DisplayManagerInternal displayManagerInternal = mService.mDisplayManagerInternal;
+        final DisplayManagerInternal displayManagerInternal = mWmService.mDisplayManagerInternal;
         if (displayManagerInternal != null) {
             // Bootstrap the default logical display from the display manager.
             final DisplayInfo newDisplayInfo = displayManagerInternal.getDisplayInfo(mDisplayId);
@@ -2052,7 +2068,7 @@
      */
     private void updateBaseDisplayMetricsIfNeeded() {
         // Get real display metrics without overrides from WM.
-        mService.mDisplayManagerInternal.getNonOverrideDisplayInfo(mDisplayId, mDisplayInfo);
+        mWmService.mDisplayManagerInternal.getNonOverrideDisplayInfo(mDisplayId, mDisplayInfo);
         final int orientation = mDisplayInfo.rotation;
         final boolean rotated = (orientation == ROTATION_90 || orientation == ROTATION_270);
         final int newWidth = rotated ? mDisplayInfo.logicalHeight : mDisplayInfo.logicalWidth;
@@ -2081,7 +2097,7 @@
             mInitialDisplayHeight = newHeight;
             mInitialDisplayDensity = newDensity;
             mInitialDisplayCutout = newCutout;
-            mService.reconfigureDisplayLocked(this);
+            mWmService.reconfigureDisplayLocked(this);
         }
     }
 
@@ -2132,9 +2148,9 @@
     void setForcedDensity(int density, int userId) {
         final boolean clear = density == mInitialDisplayDensity;
         final boolean updateCurrent = userId == UserHandle.USER_CURRENT;
-        if (mService.mCurrentUserId == userId || updateCurrent) {
+        if (mWmService.mCurrentUserId == userId || updateCurrent) {
             mBaseDisplayDensity = density;
-            mService.reconfigureDisplayLocked(this);
+            mWmService.reconfigureDisplayLocked(this);
         }
         if (updateCurrent) {
             // We are applying existing settings so no need to save it again.
@@ -2144,7 +2160,7 @@
         if (density == mInitialDisplayDensity) {
             density = 0;
         }
-        mService.mDisplayWindowSettings.setForcedDensity(this, density, userId);
+        mWmService.mDisplayWindowSettings.setForcedDensity(this, density, userId);
     }
 
     /** @param mode {@link #FORCE_SCALING_MODE_AUTO} or {@link #FORCE_SCALING_MODE_DISABLED}. */
@@ -2155,9 +2171,9 @@
 
         mDisplayScalingDisabled = (mode != FORCE_SCALING_MODE_AUTO);
         Slog.i(TAG_WM, "Using display scaling mode: " + (mDisplayScalingDisabled ? "off" : "auto"));
-        mService.reconfigureDisplayLocked(this);
+        mWmService.reconfigureDisplayLocked(this);
 
-        mService.mDisplayWindowSettings.setForcedScalingMode(this, mode);
+        mWmService.mDisplayWindowSettings.setForcedScalingMode(this, mode);
     }
 
     /** If the given width and height equal to initial size, the setting will be cleared. */
@@ -2174,12 +2190,12 @@
 
         Slog.i(TAG_WM, "Using new display size: " + width + "x" + height);
         updateBaseDisplayMetrics(width, height, mBaseDisplayDensity);
-        mService.reconfigureDisplayLocked(this);
+        mWmService.reconfigureDisplayLocked(this);
 
         if (clear) {
             width = height = 0;
         }
-        mService.mDisplayWindowSettings.setForcedSize(this, width, height);
+        mWmService.mDisplayWindowSettings.setForcedSize(this, width, height);
     }
 
     void getStableRect(Rect out) {
@@ -2190,7 +2206,7 @@
         if (DEBUG_STACK) Slog.d(TAG_WM, "Create new stackId=" + stackId + " on displayId="
                 + mDisplayId);
 
-        final TaskStack stack = new TaskStack(mService, stackId, controller);
+        final TaskStack stack = new TaskStack(mWmService, stackId, controller);
         mTaskStackContainers.addStackToDisplay(stack, onTop);
         return stack;
     }
@@ -2346,7 +2362,7 @@
     @Override
     void switchUser() {
         super.switchUser();
-        mService.mWindowsChanged = true;
+        mWmService.mWindowsChanged = true;
     }
 
     private void resetAnimationBackgroundAnimator() {
@@ -2374,15 +2390,15 @@
             mUnknownAppVisibilityController.clear();
             mAppTransition.removeAppTransitionTimeoutCallbacks();
             handleAnimatingStoppedAndTransition();
-            mService.stopFreezingDisplayLocked();
+            mWmService.stopFreezingDisplayLocked();
             super.removeImmediately();
             if (DEBUG_DISPLAY) Slog.v(TAG_WM, "Removing display=" + this);
             if (mPointerEventDispatcher != null && mTapDetector != null) {
                 unregisterPointerEventListener(mTapDetector);
-                unregisterPointerEventListener(mService.mMousePositionTracker);
+                unregisterPointerEventListener(mWmService.mMousePositionTracker);
                 mTapDetector = null;
             }
-            mService.mAnimator.removeDisplayLocked(mDisplayId);
+            mWmService.mAnimator.removeDisplayLocked(mDisplayId);
             mWindowingLayer.release();
             mOverlayLayer.release();
         } finally {
@@ -2390,8 +2406,8 @@
             mRemovingDisplay = false;
         }
 
-        mInputMonitor.onRemoved();
-        mService.mWindowPlacerLocked.requestTraversal();
+        mDisplayPolicy.onDisplayRemoved();
+        mWmService.mWindowPlacerLocked.requestTraversal();
     }
 
     /** Returns true if a removal action is still being deferred. */
@@ -2468,7 +2484,7 @@
         final boolean imeVisible = imeWin != null && imeWin.isVisibleLw() && imeWin.isDisplayedLw()
                 && !mDividerControllerLocked.isImeHideRequested();
         final boolean dockVisible = isStackVisible(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
-        final TaskStack imeTargetStack = mService.getImeFocusStackLocked();
+        final TaskStack imeTargetStack = mWmService.getImeFocusStackLocked();
         final int imeDockSide = (dockVisible && imeTargetStack != null) ?
                 imeTargetStack.getDockSide() : DOCKED_INVALID;
         final boolean imeOnTop = (imeDockSide == DOCKED_TOP);
@@ -2595,13 +2611,12 @@
         mDisplayInfo.writeToProto(proto, DISPLAY_INFO);
         proto.write(ROTATION, mRotation);
         final ScreenRotationAnimation screenRotationAnimation =
-                mService.mAnimator.getScreenRotationAnimationLocked(mDisplayId);
+                mWmService.mAnimator.getScreenRotationAnimationLocked(mDisplayId);
         if (screenRotationAnimation != null) {
             screenRotationAnimation.writeToProto(proto, SCREEN_ROTATION_ANIMATION);
         }
         mDisplayFrames.writeToProto(proto, DISPLAY_FRAMES);
         mAppTransition.writeToProto(proto, APP_TRANSITION);
-        proto.write(SURFACE_SIZE, mSurfaceSize);
         if (mFocusedApp != null) {
             mFocusedApp.writeNameToProto(proto, FOCUSED_APP);
         }
@@ -2665,6 +2680,13 @@
             }
         }
         pw.print("  mFocusedApp="); pw.println(mFocusedApp);
+        if (mLastStatusBarVisibility != 0) {
+            pw.print("  mLastStatusBarVisibility=0x");
+            pw.println(Integer.toHexString(mLastStatusBarVisibility));
+        }
+
+        pw.println();
+        mWallpaperController.dump(pw, "  ");
 
         pw.println();
         pw.println(prefix + "Application tokens in top down Z order:");
@@ -2715,6 +2737,8 @@
         mDisplayRotation.dump(prefix, pw);
         pw.println();
         mInputMonitor.dump(pw, "  ");
+        pw.println();
+        mInsetsStateController.dump(prefix, pw);
     }
 
     @Override
@@ -2832,11 +2856,11 @@
         }
 
         if (imWindowChanged) {
-            mService.mWindowsChanged = true;
+            mWmService.mWindowsChanged = true;
             setLayoutNeeded();
         }
 
-        if (DEBUG_FOCUS_LIGHT || mService.localLOGV) Slog.v(TAG_WM, "Changing focus from "
+        if (DEBUG_FOCUS_LIGHT || mWmService.localLOGV) Slog.v(TAG_WM, "Changing focus from "
                 + mCurrentFocus + " to " + newFocus + " displayId=" + getDisplayId()
                 + " Callers=" + Debug.getCallers(4));
         final WindowState oldFocus = mCurrentFocus;
@@ -2855,9 +2879,7 @@
             }
         }
 
-        // System UI is only shown on the default display.
-        int focusChanged = isDefaultDisplay
-                ? mService.mPolicy.focusChangedLw(oldFocus, newFocus) : 0;
+        int focusChanged = getDisplayPolicy().focusChangedLw(oldFocus, newFocus);
 
         if (imWindowChanged && oldFocus != mInputMethodWindow) {
             // Focus of the input method window changed. Perform layout if needed.
@@ -2877,7 +2899,7 @@
             if (mode == UPDATE_FOCUS_PLACING_SURFACES) {
                 performLayout(true /*initial*/, updateInputWindows);
             } else if (mode == UPDATE_FOCUS_REMOVING_FOCUS) {
-                mService.mRoot.performSurfacePlacement(false);
+                mWmService.mRoot.performSurfacePlacement(false);
             }
         }
 
@@ -2942,16 +2964,16 @@
     // moving containers or resizing them. Need to investigate the best way to have it automatically
     // happen so we don't run into issues with programmers forgetting to do it.
     void layoutAndAssignWindowLayersIfNeeded() {
-        mService.mWindowsChanged = true;
+        mWmService.mWindowsChanged = true;
         setLayoutNeeded();
 
-        if (!mService.updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES,
+        if (!mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES,
                 false /*updateInputWindows*/)) {
             assignWindowLayers(false /* setLayoutNeeded */);
         }
 
         mInputMonitor.setUpdateInputWindowsNeededLw();
-        mService.mWindowPlacerLocked.performSurfacePlacement();
+        mWmService.mWindowPlacerLocked.performSurfacePlacement();
         mInputMonitor.updateInputWindowsLw(false /*force*/);
     }
 
@@ -2964,14 +2986,14 @@
             if (wsa.mSurfaceController == null) {
                 return;
             }
-            if (!mService.mSessions.contains(wsa.mSession)) {
+            if (!mWmService.mSessions.contains(wsa.mSession)) {
                 Slog.w(TAG_WM, "LEAKED SURFACE (session doesn't exist): "
                         + w + " surface=" + wsa.mSurfaceController
                         + " token=" + w.mToken
                         + " pid=" + w.mSession.mPid
                         + " uid=" + w.mSession.mUid);
                 wsa.destroySurface();
-                mService.mForceRemoves.add(w);
+                mWmService.mForceRemoves.add(w);
                 mTmpWindow = w;
             } else if (w.mAppToken != null && w.mAppToken.isClientHidden()) {
                 Slog.w(TAG_WM, "LEAKED SURFACE (app token hidden): "
@@ -2995,10 +3017,12 @@
         // Update display configuration for IME process.
         if (mInputMethodWindow != null) {
             final int imePid = mInputMethodWindow.mSession.mPid;
-            mService.mAtmInternal.onImeWindowSetOnDisplay(imePid,
+            mWmService.mAtmInternal.onImeWindowSetOnDisplay(imePid,
                     mInputMethodWindow.getDisplayId());
         }
         computeImeTarget(true /* updateImeTarget */);
+        mInsetsStateController.getSourceProvider(TYPE_IME).setWindow(win,
+                null /* frameProvider */);
     }
 
     /**
@@ -3214,7 +3238,7 @@
      * Starts the Keyguard exit animation on all windows that don't belong to an app token.
      */
     void startKeyguardExitOnNonAppWindows(boolean onWallpaper, boolean goingToShade) {
-        final WindowManagerPolicy policy = mService.mPolicy;
+        final WindowManagerPolicy policy = mWmService.mPolicy;
         forAllWindows(w -> {
             if (w.mAppToken == null && policy.canBeHiddenByKeyguardLw(w)
                     && w.wouldBeVisibleIfPolicyIgnored() && !w.isVisible()) {
@@ -3243,7 +3267,7 @@
                 } else if (w.mAttrs.type == TYPE_WALLPAPER) {
                     mHaveWallpaper = true;
                 } else if (w.mAttrs.type == TYPE_STATUS_BAR) {
-                    mHaveKeyguard = mService.mPolicy.isKeyguardDrawnLw();
+                    mHaveKeyguard = mWmService.mPolicy.isKeyguardDrawnLw();
                 }
             }
             return false;
@@ -3256,28 +3280,28 @@
 
         // if the wallpaper service is disabled on the device, we're never going to have
         // wallpaper, don't bother waiting for it
-        boolean wallpaperEnabled = mService.mContext.getResources().getBoolean(
+        boolean wallpaperEnabled = mWmService.mContext.getResources().getBoolean(
                 com.android.internal.R.bool.config_enableWallpaperService)
-                && mService.mContext.getResources().getBoolean(
+                && mWmService.mContext.getResources().getBoolean(
                         com.android.internal.R.bool.config_checkWallpaperAtBoot)
-                && !mService.mOnlyCore;
+                && !mWmService.mOnlyCore;
 
         if (DEBUG_SCREEN_ON || DEBUG_BOOT) Slog.i(TAG_WM,
-                "******** booted=" + mService.mSystemBooted
-                + " msg=" + mService.mShowingBootMessages
+                "******** booted=" + mWmService.mSystemBooted
+                + " msg=" + mWmService.mShowingBootMessages
                 + " haveBoot=" + mHaveBootMsg + " haveApp=" + mHaveApp
                 + " haveWall=" + mHaveWallpaper + " wallEnabled=" + wallpaperEnabled
                 + " haveKeyguard=" + mHaveKeyguard);
 
         // If we are turning on the screen to show the boot message, don't do it until the boot
         // message is actually displayed.
-        if (!mService.mSystemBooted && !mHaveBootMsg) {
+        if (!mWmService.mSystemBooted && !mHaveBootMsg) {
             return true;
         }
 
         // If we are turning on the screen after the boot is completed normally, don't do so until
         // we have the application and wallpaper.
-        if (mService.mSystemBooted
+        if (mWmService.mSystemBooted
                 && ((!mHaveApp && !mHaveKeyguard) || (wallpaperEnabled && !mHaveWallpaper))) {
             return true;
         }
@@ -3324,6 +3348,31 @@
         return win != null;
     }
 
+    void statusBarVisibilityChanged(int visibility) {
+        mLastStatusBarVisibility = visibility;
+        visibility = getDisplayPolicy().adjustSystemUiVisibilityLw(visibility);
+        updateStatusBarVisibilityLocked(visibility);
+    }
+
+    private boolean updateStatusBarVisibilityLocked(int visibility) {
+        if (mLastDispatchedSystemUiVisibility == visibility) {
+            return false;
+        }
+        final int globalDiff = (visibility ^ mLastDispatchedSystemUiVisibility)
+                // We are only interested in differences of one of the
+                // clearable flags...
+                & View.SYSTEM_UI_CLEARABLE_FLAGS
+                // ...if it has actually been cleared.
+                & ~visibility;
+
+        mLastDispatchedSystemUiVisibility = visibility;
+        if (isDefaultDisplay) {
+            mWmService.mInputManager.setSystemUiVisibility(visibility);
+        }
+        updateSystemUiVisibility(visibility, globalDiff);
+        return true;
+    }
+
     void updateSystemUiVisibility(int visibility, int globalDiff) {
         forAllWindows(w -> {
             try {
@@ -3344,9 +3393,16 @@
         }, true /* traverseTopToBottom */);
     }
 
+    void reevaluateStatusBarVisibility() {
+        int visibility = getDisplayPolicy().adjustSystemUiVisibilityLw(mLastStatusBarVisibility);
+        if (updateStatusBarVisibilityLocked(visibility)) {
+            mWmService.mWindowPlacerLocked.requestTraversal();
+        }
+    }
+
     void onWindowFreezeTimeout() {
         Slog.w(TAG_WM, "Window freeze timeout expired.");
-        mService.mWindowsFreezingScreen = WINDOWS_FREEZING_SCREENS_TIMEOUT;
+        mWmService.mWindowsFreezingScreen = WINDOWS_FREEZING_SCREENS_TIMEOUT;
 
         forAllWindows(w -> {
             if (!w.getOrientationChanging()) {
@@ -3354,31 +3410,28 @@
             }
             w.orientationChangeTimedOut();
             w.mLastFreezeDuration = (int)(SystemClock.elapsedRealtime()
-                    - mService.mDisplayFreezeTime);
+                    - mWmService.mDisplayFreezeTime);
             Slog.w(TAG_WM, "Force clearing orientation change: " + w);
         }, true /* traverseTopToBottom */);
-        mService.mWindowPlacerLocked.performSurfacePlacement();
+        mWmService.mWindowPlacerLocked.performSurfacePlacement();
     }
 
     void waitForAllWindowsDrawn() {
-        final WindowManagerPolicy policy = mService.mPolicy;
+        final WindowManagerPolicy policy = mWmService.mPolicy;
         forAllWindows(w -> {
             final boolean keyguard = policy.isKeyguardHostWindow(w.mAttrs);
             if (w.isVisibleLw() && (w.mAppToken != null || keyguard)) {
                 w.mWinAnimator.mDrawState = DRAW_PENDING;
                 // Force add to mResizingWindows.
                 w.resetLastContentInsets();
-                mService.mWaitingForDrawn.add(w);
+                mWmService.mWaitingForDrawn.add(w);
             }
         }, true /* traverseTopToBottom */);
     }
 
     // TODO: Super crazy long method that should be broken down...
     void applySurfaceChangesTransaction(boolean recoveringMemory) {
-
-        final int dw = mDisplayInfo.logicalWidth;
-        final int dh = mDisplayInfo.logicalHeight;
-        final WindowSurfacePlacer surfacePlacer = mService.mWindowPlacerLocked;
+        final WindowSurfacePlacer surfacePlacer = mWmService.mWindowPlacerLocked;
 
         mTmpUpdateAllDrawn.clear();
 
@@ -3394,12 +3447,8 @@
             if (DEBUG_LAYOUT_REPEATS) surfacePlacer.debugLayoutRepeats("On entry to LockedInner",
                     pendingLayoutChanges);
 
-            // TODO(multi-display): For now adjusting wallpaper only on primary display to avoid
-            // the wallpaper window jumping across displays.
-            // Remove check for default display when there will be support for multiple wallpaper
-            // targets (on different displays).
-            if (isDefaultDisplay && (pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0) {
-                mWallpaperController.adjustWallpaperWindows(this);
+            if ((pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0) {
+                mWallpaperController.adjustWallpaperWindows();
             }
 
             if ((pendingLayoutChanges & FINISH_LAYOUT_REDO_CONFIG) != 0) {
@@ -3424,13 +3473,12 @@
             // FIRST AND ONE HALF LOOP: Make WindowManagerPolicy think it is animating.
             pendingLayoutChanges = 0;
 
-            if (isDefaultDisplay) {
-                mService.mPolicy.beginPostLayoutPolicyLw(dw, dh);
-                forAllWindows(mApplyPostLayoutPolicy, true /* traverseTopToBottom */);
-                pendingLayoutChanges |= mService.mPolicy.finishPostLayoutPolicyLw();
-                if (DEBUG_LAYOUT_REPEATS) surfacePlacer.debugLayoutRepeats(
-                        "after finishPostLayoutPolicyLw", pendingLayoutChanges);
-            }
+            mDisplayPolicy.beginPostLayoutPolicyLw();
+            forAllWindows(mApplyPostLayoutPolicy, true /* traverseTopToBottom */);
+            pendingLayoutChanges |= mDisplayPolicy.finishPostLayoutPolicyLw();
+            if (DEBUG_LAYOUT_REPEATS) surfacePlacer.debugLayoutRepeats(
+                    "after finishPostLayoutPolicyLw", pendingLayoutChanges);
+                mInsetsStateController.onPostLayout();
         } while (pendingLayoutChanges != 0);
 
         mTmpApplySurfaceChangesTransactionState.reset();
@@ -3440,7 +3488,7 @@
         prepareSurfaces();
 
         mLastHasContent = mTmpApplySurfaceChangesTransactionState.displayHasContent;
-        mService.mDisplayManagerInternal.setDisplayProperties(mDisplayId,
+        mWmService.mDisplayManagerInternal.setDisplayProperties(mDisplayId,
                 mLastHasContent,
                 mTmpApplySurfaceChangesTransactionState.preferredRefreshRate,
                 mTmpApplySurfaceChangesTransactionState.preferredModeId,
@@ -3449,7 +3497,7 @@
         final boolean wallpaperVisible = mWallpaperController.isWallpaperVisible();
         if (wallpaperVisible != mLastWallpaperVisible) {
             mLastWallpaperVisible = wallpaperVisible;
-            mService.mWallpaperVisibilityListeners.notifyWallpaperVisibilityChanged(this);
+            mWmService.mWallpaperVisibilityListeners.notifyWallpaperVisibilityChanged(this);
         }
 
         while (!mTmpUpdateAllDrawn.isEmpty()) {
@@ -3498,10 +3546,6 @@
         }
     }
 
-    int getSurfaceSize() {
-        return mSurfaceSize;
-    }
-
     void performLayout(boolean initial, boolean updateInputWindows) {
         if (!isLayoutNeeded()) {
             return;
@@ -3520,12 +3564,7 @@
         // TODO: Not sure if we really need to set the rotation here since we are updating from the
         // display info above...
         mDisplayFrames.mRotation = mRotation;
-        mService.mPolicy.beginLayoutLw(mDisplayFrames, getConfiguration().uiMode);
-        if (isDefaultDisplay) {
-            // Not needed on non-default displays.
-            mService.mSystemDecorLayer = mService.mPolicy.getSystemDecorLayerLw();
-            mService.mScreenRect.set(0, 0, dw, dh);
-        }
+        mDisplayPolicy.beginLayoutLw(mDisplayFrames, getConfiguration().uiMode);
 
         int seq = mLayoutSeq + 1;
         if (seq < 0) seq = 0;
@@ -3556,7 +3595,7 @@
             mInputMonitor.updateInputWindowsLw(false /*force*/);
         }
 
-        mService.mH.sendEmptyMessage(UPDATE_DOCKED_STACK_DIVIDER);
+        mWmService.mH.sendEmptyMessage(UPDATE_DOCKED_STACK_DIVIDER);
     }
 
     /**
@@ -3566,7 +3605,7 @@
      * @param config of the output bitmap
      */
     Bitmap screenshotDisplayLocked(Bitmap.Config config) {
-        if (!mService.mPolicy.isScreenOn()) {
+        if (!mWmService.mPolicy.isScreenOn()) {
             if (DEBUG_SCREENSHOT) {
                 Slog.i(TAG_WM, "Attempted to take screenshot while display was off.");
             }
@@ -3594,7 +3633,7 @@
         convertCropForSurfaceFlinger(frame, rot, dw, dh);
 
         final ScreenRotationAnimation screenRotationAnimation =
-                mService.mAnimator.getScreenRotationAnimationLocked(DEFAULT_DISPLAY);
+                mWmService.mAnimator.getScreenRotationAnimationLocked(DEFAULT_DISPLAY);
         final boolean inRotation = screenRotationAnimation != null &&
                 screenRotationAnimation.isAnimating();
         if (DEBUG_SCREENSHOT && inRotation) Slog.v(TAG_WM, "Taking screenshot while rotating");
@@ -3649,11 +3688,12 @@
             }
             mTmpWindow = w;
             w.setDisplayLayoutNeeded();
-            mService.markForSeamlessRotation(w, false);
+            w.finishSeamlessRotation(true /* timeout */);
+            mWmService.markForSeamlessRotation(w, false);
         }, true /* traverseTopToBottom */);
 
         if (mTmpWindow != null) {
-            mService.mWindowPlacerLocked.performSurfacePlacement();
+            mWmService.mWindowPlacerLocked.performSurfacePlacement();
         }
     }
 
@@ -3681,20 +3721,20 @@
     @Override
     void onDescendantOverrideConfigurationChanged() {
         setLayoutNeeded();
-        mService.requestTraversal();
+        mWmService.requestTraversal();
     }
 
     boolean okToDisplay() {
         if (mDisplayId == DEFAULT_DISPLAY) {
-            return !mService.mDisplayFrozen
-                    && mService.mDisplayEnabled && mService.mPolicy.isScreenOn();
+            return !mWmService.mDisplayFrozen
+                    && mWmService.mDisplayEnabled && mWmService.mPolicy.isScreenOn();
         }
         return mDisplayInfo.state == Display.STATE_ON;
     }
 
     boolean okToAnimate() {
         return okToDisplay() &&
-                (mDisplayId != DEFAULT_DISPLAY || mService.mPolicy.okToAnimate());
+                (mDisplayId != DEFAULT_DISPLAY || mWmService.mPolicy.okToAnimate());
     }
 
     static final class TaskForResizePointSearchResult {
@@ -3912,7 +3952,7 @@
             } else if (stack == mSplitScreenPrimaryStack) {
                 mSplitScreenPrimaryStack = null;
                 // Re-set the split-screen create mode whenever the split-screen stack is removed.
-                mService.setDockedStackCreateStateLocked(
+                mWmService.setDockedStackCreateStateLocked(
                         SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT, null /* initialBounds */);
                 mDividerControllerLocked.notifyDockedStackExistsChanged(false);
             }
@@ -4130,7 +4170,7 @@
             }
 
             final int orientation = super.getOrientation();
-            boolean isCar = mService.mContext.getPackageManager().hasSystemFeature(
+            boolean isCar = mWmService.mContext.getPackageManager().hasSystemFeature(
                     PackageManager.FEATURE_AUTOMOTIVE);
             if (isCar) {
                 // In a car, you cannot physically rotate the screen, so it doesn't make sense to
@@ -4311,10 +4351,10 @@
                 wt.assignLayer(t, j);
                 wt.assignChildLayers(t);
 
-                int layer = mService.mPolicy.getWindowLayerFromTypeLw(
+                int layer = mWmService.mPolicy.getWindowLayerFromTypeLw(
                         wt.windowType, wt.mOwnerCanManageAppTokens);
 
-                if (needAssignIme && layer >= mService.mPolicy.getWindowLayerFromTypeLw(
+                if (needAssignIme && layer >= mWmService.mPolicy.getWindowLayerFromTypeLw(
                                 TYPE_INPUT_METHOD_DIALOG, true)) {
                     imeContainer.assignRelativeLayer(t, wt.getSurfaceControl(), -1);
                     needAssignIme = false;
@@ -4337,9 +4377,9 @@
          */
         private final Comparator<WindowToken> mWindowComparator = (token1, token2) ->
                 // Tokens with higher base layer are z-ordered on-top.
-                mService.mPolicy.getWindowLayerFromTypeLw(token1.windowType,
+                mWmService.mPolicy.getWindowLayerFromTypeLw(token1.windowType,
                         token1.mOwnerCanManageAppTokens)
-                < mService.mPolicy.getWindowLayerFromTypeLw(token2.windowType,
+                < mWmService.mPolicy.getWindowLayerFromTypeLw(token2.windowType,
                         token2.mOwnerCanManageAppTokens) ? -1 : 1;
 
         private final Predicate<WindowState> mGetOrientingWindow = w -> {
@@ -4369,7 +4409,7 @@
 
         @Override
         int getOrientation() {
-            final WindowManagerPolicy policy = mService.mPolicy;
+            final WindowManagerPolicy policy = mWmService.mPolicy;
             // Find a window requesting orientation.
             final WindowState win = getWindow(mGetOrientingWindow);
 
@@ -4377,7 +4417,7 @@
                 final int req = win.mAttrs.screenOrientation;
                 if (policy.isKeyguardHostWindow(win.mAttrs)) {
                     mLastKeyguardForcedOrientation = req;
-                    if (mService.mKeyguardGoingAway) {
+                    if (mWmService.mKeyguardGoingAway) {
                         // Keyguard can't affect the orientation if it is going away...
                         mLastWindowForcedOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
                         return SCREEN_ORIENTATION_UNSET;
@@ -4435,7 +4475,7 @@
     };
 
     SurfaceControl.Builder makeSurface(SurfaceSession s) {
-        return mService.makeSurfaceBuilder(s)
+        return mWmService.makeSurfaceBuilder(s)
                 .setParent(mWindowingLayer);
     }
 
@@ -4447,9 +4487,7 @@
     @Override
     SurfaceControl.Builder makeChildSurface(WindowContainer child) {
         SurfaceSession s = child != null ? child.getSession() : getSession();
-        final SurfaceControl.Builder b = mService.makeSurfaceBuilder(s);
-        b.setSize(mSurfaceSize, mSurfaceSize);
-
+        final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(s);
         if (child == null) {
             return b;
         }
@@ -4465,7 +4503,7 @@
      * and other potpourii.
      */
     SurfaceControl.Builder makeOverlay() {
-        return mService.makeSurfaceBuilder(mSession)
+        return mWmService.makeSurfaceBuilder(mSession)
             .setParent(mOverlayLayer);
     }
 
@@ -4555,7 +4593,7 @@
      * However we need child windows of the applications to be above the IME (Text drag handles).
      * This is a non-strictly hierarcical layering and we need to break out of the Z ordering
      * somehow. We do this by relatively ordering children of the target to the IME in cooperation
-     * with {@link #WindowState#assignLayer}
+     * with {@link WindowState#assignLayer}
      */
     void assignRelativeLayerForImeTargetChild(SurfaceControl.Transaction t, WindowContainer child) {
         child.assignRelativeLayer(t, mImeWindowsContainers.getSurfaceControl(), 1);
@@ -4564,7 +4602,7 @@
     @Override
     void prepareSurfaces() {
         final ScreenRotationAnimation screenRotationAnimation =
-                mService.mAnimator.getScreenRotationAnimationLocked(mDisplayId);
+                mWmService.mAnimator.getScreenRotationAnimationLocked(mDisplayId);
         if (screenRotationAnimation != null && screenRotationAnimation.isAnimating()) {
             screenRotationAnimation.getEnterTransformation().getMatrix().getValues(mTmpFloats);
             mPendingTransaction.setMatrix(mWindowingLayer,
@@ -4652,7 +4690,7 @@
                         + mDisplayId + " Callers=" + Debug.getCallers(5));
             }
             mAppTransition.setReady();
-            mService.mWindowPlacerLocked.requestTraversal();
+            mWmService.mWindowPlacerLocked.requestTraversal();
         }
     }
 
@@ -4679,10 +4717,10 @@
             Slog.v(TAG_WM, "Wallpaper layer changed: assigning layers + relayout");
         }
         computeImeTarget(true /* updateImeTarget */);
-        mService.mRoot.mWallpaperMayChange = true;
+        mWallpaperMayChange = true;
         // Since the window list has been rebuilt, focus might have to be recomputed since the
         // actual order of windows might have changed again.
-        mService.mFocusMayChange = true;
+        mWmService.mFocusMayChange = true;
 
         pendingLayoutChanges |= changes;
     }
@@ -4695,7 +4733,19 @@
         return mDisplay.supportsSystemDecorations()
                 // TODO (b/111363427): Remove this and set the new FLAG_SHOULD_SHOW_LAUNCHER flag
                 // (b/114338689) whenever vr 2d display id is set.
-                || mDisplayId == mService.mVr2dDisplayId
-                || mService.mForceDesktopModeOnExternalDisplays;
+                || mDisplayId == mWmService.mVr2dDisplayId
+                || mWmService.mForceDesktopModeOnExternalDisplays;
+    }
+
+     /**
+     * Re-parent the DisplayContent's top surfaces, {@link #mWindowingLayer} and
+     * {@link #mOverlayLayer} to the specified surfaceControl.
+     *
+     * @param surfaceControlHandle The handle for the new SurfaceControl, where the DisplayContent's
+     *                             surfaces will be re-parented to.
+     */
+    void reparentDisplayContent(IBinder surfaceControlHandle) {
+        mPendingTransaction.reparent(mWindowingLayer, surfaceControlHandle)
+                .reparent(mOverlayLayer, surfaceControlHandle);
     }
 }
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 9151ddf..581cec9 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -16,20 +16,144 @@
 
 package com.android.server.wm;
 
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+import static android.content.res.Configuration.UI_MODE_TYPE_CAR;
+import static android.content.res.Configuration.UI_MODE_TYPE_MASK;
+import static android.view.InsetsState.TYPE_TOP_BAR;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.WindowManager.INPUT_CONSUMER_NAVIGATION;
+import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
+import static android.view.WindowManager.LayoutParams.FIRST_SYSTEM_WINDOW;
+import static android.view.WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON;
+import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+import static android.view.WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
+import static android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_ATTACHED_IN_DECOR;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
+import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
+import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
+import static android.view.WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;
+import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW;
+import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_STATUS_BAR_VISIBLE_TRANSPARENT;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_SCREEN_DECOR;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION;
+import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
+import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_JUMPCUT;
+import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_ROTATE;
+import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS;
+import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING;
+import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
+import static android.view.WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST;
+import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_BOOT_PROGRESS;
+import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
+import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
+import static android.view.WindowManager.LayoutParams.TYPE_INPUT_CONSUMER;
+import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
+import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
+import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL;
+import static android.view.WindowManager.LayoutParams.TYPE_SCREENSHOT;
+import static android.view.WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
+import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
+import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL;
+import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
+import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
+import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
+import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION;
+import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION_STARTING;
+import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
+import static android.view.WindowManagerGlobal.ADD_OKAY;
 import static android.view.WindowManagerPolicyConstants.ACTION_HDMI_PLUGGED;
 import static android.view.WindowManagerPolicyConstants.EXTRA_HDMI_PLUGGED_STATE;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_BOTTOM;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_LEFT;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_RIGHT;
+
+import static com.android.server.policy.PhoneWindowManager.TOAST_WINDOW_TIMEOUT;
+import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
+import static com.android.server.policy.WindowManagerPolicy.TRANSIT_ENTER;
+import static com.android.server.policy.WindowManagerPolicy.TRANSIT_EXIT;
+import static com.android.server.policy.WindowManagerPolicy.TRANSIT_HIDE;
+import static com.android.server.policy.WindowManagerPolicy.TRANSIT_PREVIEW_DONE;
+import static com.android.server.policy.WindowManagerPolicy.TRANSIT_SHOW;
 import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT;
+import static com.android.server.wm.ActivityTaskManagerInternal.SleepToken;
+import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM;
+import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_SCREEN_ON;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
+import static com.android.server.wm.WindowManagerService.localLOGV;
 
+import android.annotation.Nullable;
+import android.app.ActivityManager;
+import android.app.ActivityThread;
+import android.app.StatusBarManager;
+import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources;
+import android.graphics.Rect;
+import android.hardware.input.InputManager;
+import android.hardware.power.V1_0.PowerHint;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.UserHandle;
+import android.util.ArraySet;
+import android.util.PrintWriterPrinter;
 import android.util.Slog;
+import android.view.DisplayCutout;
+import android.view.Gravity;
+import android.view.IApplicationToken;
+import android.view.InputChannel;
+import android.view.InputDevice;
+import android.view.InputEvent;
+import android.view.InputEventReceiver;
+import android.view.InsetsState;
+import android.view.MotionEvent;
+import android.view.PointerIcon;
+import android.view.Surface;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.WindowManager.LayoutParams;
+import android.view.WindowManagerGlobal;
+import android.view.WindowManagerPolicyConstants;
+import android.view.accessibility.AccessibilityManager;
 
+import com.android.internal.R;
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.ScreenShapeHelper;
+import com.android.internal.util.ScreenshotHelper;
+import com.android.server.LocalServices;
+import com.android.server.UiThread;
+import com.android.server.policy.WindowManagerPolicy;
+import com.android.server.policy.WindowManagerPolicy.InputConsumer;
+import com.android.server.policy.WindowManagerPolicy.NavigationBarPosition;
 import com.android.server.policy.WindowManagerPolicy.ScreenOnListener;
 import com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs;
+import com.android.server.policy.WindowOrientationListener;
+import com.android.server.statusbar.StatusBarManagerInternal;
+import com.android.server.wm.utils.InsetUtils;
 
 import java.io.PrintWriter;
 
@@ -38,12 +162,61 @@
  */
 public class DisplayPolicy {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "DisplayPolicy" : TAG_WM;
+    private static final boolean DEBUG = false;
+
+    private static final boolean ALTERNATE_CAR_MODE_NAV_SIZE = false;
+
+    // The panic gesture may become active only after the keyguard is dismissed and the immersive
+    // app shows again. If that doesn't happen for 30s we drop the gesture.
+    private static final long PANIC_GESTURE_EXPIRATION = 30000;
+
+    // Controls navigation bar opacity depending on which workspace stacks are currently
+    // visible.
+    // Nav bar is always opaque when either the freeform stack or docked stack is visible.
+    private static final int NAV_BAR_OPAQUE_WHEN_FREEFORM_OR_DOCKED = 0;
+    // Nav bar is always translucent when the freeform stack is visible, otherwise always opaque.
+    private static final int NAV_BAR_TRANSLUCENT_WHEN_FREEFORM_OPAQUE_OTHERWISE = 1;
+
+    /**
+     * These are the system UI flags that, when changing, can cause the layout
+     * of the screen to change.
+     */
+    private static final int SYSTEM_UI_CHANGING_LAYOUT =
+            View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+                    | View.SYSTEM_UI_FLAG_FULLSCREEN
+                    | View.STATUS_BAR_TRANSLUCENT
+                    | View.NAVIGATION_BAR_TRANSLUCENT
+                    | View.STATUS_BAR_TRANSPARENT
+                    | View.NAVIGATION_BAR_TRANSPARENT;
 
     private final WindowManagerService mService;
+    private final Context mContext;
+    private final DisplayContent mDisplayContent;
     private final Object mLock;
+    private final Handler mHandler;
 
     private final boolean mCarDockEnablesAccelerometer;
     private final boolean mDeskDockEnablesAccelerometer;
+    private final boolean mTranslucentDecorEnabled;
+    private final AccessibilityManager mAccessibilityManager;
+    private final ImmersiveModeConfirmation mImmersiveModeConfirmation;
+    private final ScreenshotHelper mScreenshotHelper;
+
+    private final Object mServiceAcquireLock = new Object();
+    private StatusBarManagerInternal mStatusBarManagerInternal;
+
+    private StatusBarManagerInternal getStatusBarManagerInternal() {
+        synchronized (mServiceAcquireLock) {
+            if (mStatusBarManagerInternal == null) {
+                mStatusBarManagerInternal =
+                        LocalServices.getService(StatusBarManagerInternal.class);
+            }
+            return mStatusBarManagerInternal;
+        }
+    }
+
+    @VisibleForTesting
+    private final SystemGesturesPointerEventListener mSystemGestures;
 
     private volatile int mLidState = LID_ABSENT;
     private volatile int mDockMode = Intent.EXTRA_DOCK_STATE_UNDOCKED;
@@ -64,32 +237,311 @@
     private volatile boolean mKeyguardDrawComplete;
     private volatile boolean mWindowManagerDrawComplete;
 
-    DisplayPolicy(WindowManagerService service) {
+    private final ArraySet<WindowState> mScreenDecorWindows = new ArraySet<>();
+    private WindowState mStatusBar = null;
+    private final int[] mStatusBarHeightForRotation = new int[4];
+    private WindowState mNavigationBar = null;
+    @NavigationBarPosition
+    private int mNavigationBarPosition = NAV_BAR_BOTTOM;
+    private int[] mNavigationBarHeightForRotationDefault = new int[4];
+    private int[] mNavigationBarWidthForRotationDefault = new int[4];
+    private int[] mNavigationBarHeightForRotationInCarMode = new int[4];
+    private int[] mNavigationBarWidthForRotationInCarMode = new int[4];
+
+    private final StatusBarController mStatusBarController = new StatusBarController();
+
+    private final BarController mNavigationBarController = new BarController("NavigationBar",
+            View.NAVIGATION_BAR_TRANSIENT,
+            View.NAVIGATION_BAR_UNHIDE,
+            View.NAVIGATION_BAR_TRANSLUCENT,
+            StatusBarManager.WINDOW_NAVIGATION_BAR,
+            FLAG_TRANSLUCENT_NAVIGATION,
+            View.NAVIGATION_BAR_TRANSPARENT);
+
+    private final BarController.OnBarVisibilityChangedListener mNavBarVisibilityListener =
+            new BarController.OnBarVisibilityChangedListener() {
+                @Override
+                public void onBarVisibilityChanged(boolean visible) {
+                    if (mAccessibilityManager == null) {
+                        return;
+                    }
+                    mAccessibilityManager.notifyAccessibilityButtonVisibilityChanged(visible);
+                }
+            };
+
+    // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
+    private NavigationBarExperiments mExperiments = new NavigationBarExperiments();
+    // EXPERIMENT END
+
+    @GuardedBy("mHandler")
+    private SleepToken mDreamingSleepToken;
+
+    @GuardedBy("mHandler")
+    private SleepToken mWindowSleepToken;
+
+    private final Runnable mAcquireSleepTokenRunnable;
+    private final Runnable mReleaseSleepTokenRunnable;
+
+    // The windows we were told about in focusChanged.
+    private WindowState mFocusedWindow;
+    private WindowState mLastFocusedWindow;
+
+    IApplicationToken mFocusedApp;
+
+    int mLastSystemUiFlags;
+    // Bits that we are in the process of clearing, so we want to prevent
+    // them from being set by applications until everything has been updated
+    // to have them clear.
+    private int mResettingSystemUiFlags = 0;
+    // Bits that we are currently always keeping cleared.
+    private int mForceClearedSystemUiFlags = 0;
+    private int mLastFullscreenStackSysUiFlags;
+    private int mLastDockedStackSysUiFlags;
+    private final Rect mNonDockedStackBounds = new Rect();
+    private final Rect mDockedStackBounds = new Rect();
+    private final Rect mLastNonDockedStackBounds = new Rect();
+    private final Rect mLastDockedStackBounds = new Rect();
+
+    // What we last reported to system UI about whether the compatibility
+    // menu needs to be displayed.
+    private boolean mLastFocusNeedsMenu = false;
+    // If nonzero, a panic gesture was performed at that time in uptime millis and is still pending.
+    private long mPendingPanicGestureUptime;
+
+    private static final Rect sTmpDisplayCutoutSafeExceptMaybeBarsRect = new Rect();
+    private static final Rect sTmpRect = new Rect();
+    private static final Rect sTmpDockedFrame = new Rect();
+    private static final Rect sTmpNavFrame = new Rect();
+    private static final Rect sTmpLastParentFrame = new Rect();
+
+    private WindowState mTopFullscreenOpaqueWindowState;
+    private WindowState mTopFullscreenOpaqueOrDimmingWindowState;
+    private WindowState mTopDockedOpaqueWindowState;
+    private WindowState mTopDockedOpaqueOrDimmingWindowState;
+    private boolean mTopIsFullscreen;
+    private boolean mForceStatusBar;
+    private boolean mForceStatusBarFromKeyguard;
+    private boolean mForceStatusBarTransparent;
+    private int mNavBarOpacityMode = NAV_BAR_OPAQUE_WHEN_FREEFORM_OR_DOCKED;
+    private boolean mForcingShowNavBar;
+    private int mForcingShowNavBarLayer;
+    private boolean mForceShowSystemBars;
+
+    private boolean mShowingDream;
+    private boolean mLastShowingDream;
+    private boolean mDreamingLockscreen;
+    private boolean mDreamingSleepTokenNeeded;
+    private boolean mWindowSleepTokenNeeded;
+    private boolean mLastWindowSleepTokenNeeded;
+    private boolean mAllowLockscreenWhenOn;
+
+    private InputConsumer mInputConsumer = null;
+
+    // -------- PolicyHandler --------
+    private static final int MSG_UPDATE_DREAMING_SLEEP_TOKEN = 1;
+    private static final int MSG_REQUEST_TRANSIENT_BARS = 2;
+    private static final int MSG_DISPOSE_INPUT_CONSUMER = 3;
+
+    private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS = 0;
+    private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION = 1;
+
+    private class PolicyHandler extends Handler {
+
+        PolicyHandler(Looper looper) {
+            super(looper);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_UPDATE_DREAMING_SLEEP_TOKEN:
+                    updateDreamingSleepToken(msg.arg1 != 0);
+                    break;
+                case MSG_REQUEST_TRANSIENT_BARS:
+                    WindowState targetBar = (msg.arg1 == MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS)
+                            ? mStatusBar : mNavigationBar;
+                    if (targetBar != null) {
+                        requestTransientBars(targetBar);
+                    }
+                    break;
+                case MSG_DISPOSE_INPUT_CONSUMER:
+                    disposeInputConsumer((InputConsumer) msg.obj);
+                    break;
+            }
+        }
+    }
+
+    DisplayPolicy(WindowManagerService service, DisplayContent displayContent) {
         mService = service;
+        mContext = displayContent.isDefaultDisplay ? service.mContext
+                : service.mContext.createDisplayContext(displayContent.getDisplay());
+        mDisplayContent = displayContent;
         mLock = service.getWindowManagerLock();
-        mCarDockEnablesAccelerometer = service.mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_carDockEnablesAccelerometer);
-        mDeskDockEnablesAccelerometer = service.mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_deskDockEnablesAccelerometer);
+
+        final Resources r = mContext.getResources();
+        mCarDockEnablesAccelerometer = r.getBoolean(R.bool.config_carDockEnablesAccelerometer);
+        mDeskDockEnablesAccelerometer = r.getBoolean(R.bool.config_deskDockEnablesAccelerometer);
+        mTranslucentDecorEnabled = r.getBoolean(R.bool.config_enableTranslucentDecor);
+        updateConfigurationDependentBehaviors();
+
+        mAccessibilityManager = (AccessibilityManager) mContext.getSystemService(
+                Context.ACCESSIBILITY_SERVICE);
+        if (!displayContent.isDefaultDisplay) {
+            mAwake = true;
+            mScreenOnEarly = true;
+            mScreenOnFully = true;
+        }
+
+        final Looper looper = UiThread.getHandler().getLooper();
+        mHandler = new PolicyHandler(looper);
+        mSystemGestures = new SystemGesturesPointerEventListener(mContext, mHandler,
+                new SystemGesturesPointerEventListener.Callbacks() {
+                    @Override
+                    public void onSwipeFromTop() {
+                        if (mStatusBar != null) {
+                            requestTransientBars(mStatusBar);
+                        }
+                    }
+
+                    @Override
+                    public void onSwipeFromBottom() {
+                        if (mNavigationBar != null
+                                && mNavigationBarPosition == NAV_BAR_BOTTOM) {
+                            requestTransientBars(mNavigationBar);
+                        }
+                    }
+
+                    @Override
+                    public void onSwipeFromRight() {
+                        if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_RIGHT) {
+                            requestTransientBars(mNavigationBar);
+                        }
+                    }
+
+                    @Override
+                    public void onSwipeFromLeft() {
+                        if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_LEFT) {
+                            requestTransientBars(mNavigationBar);
+                        }
+                    }
+
+                    @Override
+                    public void onFling(int duration) {
+                        if (mService.mPowerManagerInternal != null) {
+                            mService.mPowerManagerInternal.powerHint(
+                                    PowerHint.INTERACTION, duration);
+                        }
+                    }
+
+                    @Override
+                    public void onDebug() {
+                        // no-op
+                    }
+
+                    private WindowOrientationListener getOrientationListener() {
+                        final DisplayRotation rotation = mDisplayContent.getDisplayRotation();
+                        return rotation != null ? rotation.getOrientationListener() : null;
+                    }
+
+                    @Override
+                    public void onDown() {
+                        final WindowOrientationListener listener = getOrientationListener();
+                        if (listener != null) {
+                            listener.onTouchStart();
+                        }
+                    }
+
+                    @Override
+                    public void onUpOrCancel() {
+                        final WindowOrientationListener listener = getOrientationListener();
+                        if (listener != null) {
+                            listener.onTouchEnd();
+                        }
+                    }
+
+                    @Override
+                    public void onMouseHoverAtTop() {
+                        mHandler.removeMessages(MSG_REQUEST_TRANSIENT_BARS);
+                        Message msg = mHandler.obtainMessage(MSG_REQUEST_TRANSIENT_BARS);
+                        msg.arg1 = MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS;
+                        mHandler.sendMessageDelayed(msg, 500 /* delayMillis */);
+                    }
+
+                    @Override
+                    public void onMouseHoverAtBottom() {
+                        mHandler.removeMessages(MSG_REQUEST_TRANSIENT_BARS);
+                        Message msg = mHandler.obtainMessage(MSG_REQUEST_TRANSIENT_BARS);
+                        msg.arg1 = MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION;
+                        mHandler.sendMessageDelayed(msg, 500 /* delayMillis */);
+                    }
+
+                    @Override
+                    public void onMouseLeaveFromEdge() {
+                        mHandler.removeMessages(MSG_REQUEST_TRANSIENT_BARS);
+                    }
+                });
+        displayContent.registerPointerEventListener(mSystemGestures);
+        displayContent.mAppTransition.registerListenerLocked(
+                mStatusBarController.getAppTransitionListener());
+        mImmersiveModeConfirmation = new ImmersiveModeConfirmation(mContext, looper,
+                mService.mVrModeEnabled);
+        mAcquireSleepTokenRunnable = () -> {
+            if (mWindowSleepToken != null) {
+                return;
+            }
+            final int displayId = displayContent.getDisplayId();
+            mWindowSleepToken = service.mAtmInternal.acquireSleepToken(
+                    "WindowSleepTokenOnDisplay" + displayId, displayId);
+        };
+        mReleaseSleepTokenRunnable = () -> {
+            if (mWindowSleepToken == null) {
+                return;
+            }
+            mWindowSleepToken.release();
+            mWindowSleepToken = null;
+        };
+
+        // TODO: Make it can take screenshot on external display
+        mScreenshotHelper = displayContent.isDefaultDisplay
+                ? new ScreenshotHelper(mContext) : null;
+    }
+
+    void systemReady() {
+        mSystemGestures.systemReady();
+    }
+
+    private int getDisplayId() {
+        return mDisplayContent.getDisplayId();
+    }
+
+    void onDisplayRemoved() {
+        mDisplayContent.unregisterPointerEventListener(mSystemGestures);
     }
 
     void configure(int width, int height, int shortSizeDp) {
         // Allow the navigation bar to move on non-square small devices (phones).
         mNavigationBarCanMove = width != height && shortSizeDp < 600;
 
-        mHasNavigationBar = mService.mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_showNavigationBar);
+        if (mDisplayContent.isDefaultDisplay) {
+            mHasNavigationBar = mContext.getResources().getBoolean(R.bool.config_showNavigationBar);
 
-        // Allow a system property to override this. Used by the emulator.
-        // See also hasNavigationBar().
-        String navBarOverride = SystemProperties.get("qemu.hw.mainkeys");
-        if ("1".equals(navBarOverride)) {
-            mHasNavigationBar = false;
-        } else if ("0".equals(navBarOverride)) {
-            mHasNavigationBar = true;
+            // Allow a system property to override this. Used by the emulator.
+            // See also hasNavigationBar().
+            String navBarOverride = SystemProperties.get("qemu.hw.mainkeys");
+            if ("1".equals(navBarOverride)) {
+                mHasNavigationBar = false;
+            } else if ("0".equals(navBarOverride)) {
+                mHasNavigationBar = true;
+            }
+        } else {
+            mHasNavigationBar = mDisplayContent.getDisplay().supportsSystemDecorations();
         }
     }
 
+    void updateConfigurationDependentBehaviors() {
+        mNavBarOpacityMode = mContext.getResources().getInteger(R.integer.config_navBarOpacityMode);
+    }
+
     public void setHdmiPlugged(boolean plugged) {
         setHdmiPlugged(plugged, false /* force */);
     }
@@ -101,7 +553,7 @@
             final Intent intent = new Intent(ACTION_HDMI_PLUGGED);
             intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
             intent.putExtra(EXTRA_HDMI_PLUGGED_STATE, plugged);
-            mService.mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
+            mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
         }
     }
 
@@ -244,17 +696,2653 @@
         return true;
     }
 
+    /**
+     * Sanitize the layout parameters coming from a client.  Allows the policy
+     * to do things like ensure that windows of a specific type can't take
+     * input focus.
+     *
+     * @param attrs The window layout parameters to be modified.  These values
+     * are modified in-place.
+     */
+    public void adjustWindowParamsLw(WindowState win, WindowManager.LayoutParams attrs,
+            boolean hasStatusBarServicePermission) {
+
+        final boolean isScreenDecor = (attrs.privateFlags & PRIVATE_FLAG_IS_SCREEN_DECOR) != 0;
+        if (mScreenDecorWindows.contains(win)) {
+            if (!isScreenDecor) {
+                // No longer has the flag set, so remove from the set.
+                mScreenDecorWindows.remove(win);
+            }
+        } else if (isScreenDecor && hasStatusBarServicePermission) {
+            mScreenDecorWindows.add(win);
+        }
+
+        switch (attrs.type) {
+            case TYPE_SYSTEM_OVERLAY:
+            case TYPE_SECURE_SYSTEM_OVERLAY:
+                // These types of windows can't receive input events.
+                attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+                        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
+                attrs.flags &= ~WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
+                break;
+            case TYPE_DREAM:
+            case TYPE_WALLPAPER:
+                // Dreams and wallpapers don't have an app window token and can thus not be
+                // letterboxed. Hence always let them extend under the cutout.
+                attrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+                break;
+            case TYPE_STATUS_BAR:
+
+                // If the Keyguard is in a hidden state (occluded by another window), we force to
+                // remove the wallpaper and keyguard flag so that any change in-flight after setting
+                // the keyguard as occluded wouldn't set these flags again.
+                // See {@link #processKeyguardSetHiddenResultLw}.
+                if (mService.mPolicy.isKeyguardOccluded()) {
+                    attrs.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
+                    attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
+                }
+                break;
+
+            case TYPE_SCREENSHOT:
+                attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+                break;
+
+            case TYPE_TOAST:
+                // While apps should use the dedicated toast APIs to add such windows
+                // it possible legacy apps to add the window directly. Therefore, we
+                // make windows added directly by the app behave as a toast as much
+                // as possible in terms of timeout and animation.
+                if (attrs.hideTimeoutMilliseconds < 0
+                        || attrs.hideTimeoutMilliseconds > TOAST_WINDOW_TIMEOUT) {
+                    attrs.hideTimeoutMilliseconds = TOAST_WINDOW_TIMEOUT;
+                }
+                attrs.windowAnimations = com.android.internal.R.style.Animation_Toast;
+                break;
+        }
+
+        if (attrs.type != TYPE_STATUS_BAR) {
+            // The status bar is the only window allowed to exhibit keyguard behavior.
+            attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD;
+        }
+    }
+
+    /**
+     * Preflight adding a window to the system.
+     *
+     * Currently enforces that three window types are singletons per display:
+     * <ul>
+     * <li>{@link WindowManager.LayoutParams#TYPE_STATUS_BAR}</li>
+     * <li>{@link WindowManager.LayoutParams#TYPE_NAVIGATION_BAR}</li>
+     * </ul>
+     *
+     * @param win The window to be added
+     * @param attrs Information about the window to be added
+     *
+     * @return If ok, WindowManagerImpl.ADD_OKAY.  If too many singletons,
+     * WindowManagerImpl.ADD_MULTIPLE_SINGLETON
+     */
+    public int prepareAddWindowLw(WindowState win, WindowManager.LayoutParams attrs) {
+
+        if ((attrs.privateFlags & PRIVATE_FLAG_IS_SCREEN_DECOR) != 0) {
+            mContext.enforceCallingOrSelfPermission(
+                    android.Manifest.permission.STATUS_BAR_SERVICE,
+                    "DisplayPolicy");
+            mScreenDecorWindows.add(win);
+        }
+
+        switch (attrs.type) {
+            case TYPE_STATUS_BAR:
+                mContext.enforceCallingOrSelfPermission(
+                        android.Manifest.permission.STATUS_BAR_SERVICE,
+                        "DisplayPolicy");
+                if (mStatusBar != null) {
+                    if (mStatusBar.isAlive()) {
+                        return WindowManagerGlobal.ADD_MULTIPLE_SINGLETON;
+                    }
+                }
+                mStatusBar = win;
+                mStatusBarController.setWindow(win);
+                if (mDisplayContent.isDefaultDisplay) {
+                    mService.mPolicy.setKeyguardCandidateLw(win);
+                }
+                mDisplayContent.setInsetProvider(TYPE_TOP_BAR, win,
+                        (displayFrames, windowState, rect) -> {
+                            rect.top = 0;
+                            rect.bottom = getStatusBarHeight(displayFrames);
+                        });
+                break;
+            case TYPE_NAVIGATION_BAR:
+                mContext.enforceCallingOrSelfPermission(
+                        android.Manifest.permission.STATUS_BAR_SERVICE,
+                        "DisplayPolicy");
+                if (mNavigationBar != null) {
+                    if (mNavigationBar.isAlive()) {
+                        return WindowManagerGlobal.ADD_MULTIPLE_SINGLETON;
+                    }
+                }
+                mNavigationBar = win;
+                mNavigationBarController.setWindow(win);
+                mNavigationBarController.setOnBarVisibilityChangedListener(
+                        mNavBarVisibilityListener, true);
+                mDisplayContent.setInsetProvider(InsetsState.TYPE_NAVIGATION_BAR,
+                        win, null /* frameProvider */);
+                if (DEBUG_LAYOUT) Slog.i(TAG, "NAVIGATION BAR: " + mNavigationBar);
+                break;
+            case TYPE_NAVIGATION_BAR_PANEL:
+            case TYPE_STATUS_BAR_PANEL:
+            case TYPE_STATUS_BAR_SUB_PANEL:
+            case TYPE_VOICE_INTERACTION_STARTING:
+                mContext.enforceCallingOrSelfPermission(
+                        android.Manifest.permission.STATUS_BAR_SERVICE,
+                        "DisplayPolicy");
+                break;
+        }
+        return ADD_OKAY;
+    }
+
+    /**
+     * Called when a window is being removed from a window manager.  Must not
+     * throw an exception -- clean up as much as possible.
+     *
+     * @param win The window being removed.
+     */
+    public void removeWindowLw(WindowState win) {
+        if (mStatusBar == win) {
+            mStatusBar = null;
+            mStatusBarController.setWindow(null);
+            if (mDisplayContent.isDefaultDisplay) {
+                mService.mPolicy.setKeyguardCandidateLw(null);
+            }
+            mDisplayContent.setInsetProvider(TYPE_TOP_BAR, null, null);
+        } else if (mNavigationBar == win) {
+            mNavigationBar = null;
+            mNavigationBarController.setWindow(null);
+            mDisplayContent.setInsetProvider(InsetsState.TYPE_NAVIGATION_BAR, null, null);
+        }
+        if (mLastFocusedWindow == win) {
+            mLastFocusedWindow = null;
+        }
+        mScreenDecorWindows.remove(win);
+    }
+
+    private int getStatusBarHeight(DisplayFrames displayFrames) {
+        return Math.max(mStatusBarHeightForRotation[displayFrames.mRotation],
+                displayFrames.mDisplayCutoutSafe.top);
+    }
+
+    /**
+     * Control the animation to run when a window's state changes.  Return a
+     * non-0 number to force the animation to a specific resource ID, or 0
+     * to use the default animation.
+     *
+     * @param win The window that is changing.
+     * @param transit What is happening to the window:
+     *                {@link com.android.server.policy.WindowManagerPolicy#TRANSIT_ENTER},
+     *                {@link com.android.server.policy.WindowManagerPolicy#TRANSIT_EXIT},
+     *                {@link com.android.server.policy.WindowManagerPolicy#TRANSIT_SHOW}, or
+     *                {@link com.android.server.policy.WindowManagerPolicy#TRANSIT_HIDE}.
+     *
+     * @return Resource ID of the actual animation to use, or 0 for none.
+     */
+    public int selectAnimationLw(WindowState win, int transit) {
+        if (DEBUG_ANIM) Slog.i(TAG, "selectAnimation in " + win
+                + ": transit=" + transit);
+        if (win == mStatusBar) {
+            final boolean isKeyguard = (win.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0;
+            final boolean expanded = win.getAttrs().height == MATCH_PARENT
+                    && win.getAttrs().width == MATCH_PARENT;
+            if (isKeyguard || expanded) {
+                return -1;
+            }
+            if (transit == TRANSIT_EXIT
+                    || transit == TRANSIT_HIDE) {
+                return R.anim.dock_top_exit;
+            } else if (transit == TRANSIT_ENTER
+                    || transit == TRANSIT_SHOW) {
+                return R.anim.dock_top_enter;
+            }
+        } else if (win == mNavigationBar) {
+            if (win.getAttrs().windowAnimations != 0) {
+                return 0;
+            }
+            // This can be on either the bottom or the right or the left.
+            if (mNavigationBarPosition == NAV_BAR_BOTTOM) {
+                if (transit == TRANSIT_EXIT
+                        || transit == TRANSIT_HIDE) {
+                    if (mService.mPolicy.isKeyguardShowingAndNotOccluded()) {
+                        return R.anim.dock_bottom_exit_keyguard;
+                    } else {
+                        return R.anim.dock_bottom_exit;
+                    }
+                } else if (transit == TRANSIT_ENTER
+                        || transit == TRANSIT_SHOW) {
+                    return R.anim.dock_bottom_enter;
+                }
+            } else if (mNavigationBarPosition == NAV_BAR_RIGHT) {
+                if (transit == TRANSIT_EXIT
+                        || transit == TRANSIT_HIDE) {
+                    return R.anim.dock_right_exit;
+                } else if (transit == TRANSIT_ENTER
+                        || transit == TRANSIT_SHOW) {
+                    return R.anim.dock_right_enter;
+                }
+            } else if (mNavigationBarPosition == NAV_BAR_LEFT) {
+                if (transit == TRANSIT_EXIT
+                        || transit == TRANSIT_HIDE) {
+                    return R.anim.dock_left_exit;
+                } else if (transit == TRANSIT_ENTER
+                        || transit == TRANSIT_SHOW) {
+                    return R.anim.dock_left_enter;
+                }
+            }
+        } else if (win.getAttrs().type == TYPE_DOCK_DIVIDER) {
+            return selectDockedDividerAnimationLw(win, transit);
+        }
+
+        if (transit == TRANSIT_PREVIEW_DONE) {
+            if (win.hasAppShownWindows()) {
+                if (DEBUG_ANIM) Slog.i(TAG, "**** STARTING EXIT");
+                return R.anim.app_starting_exit;
+            }
+        } else if (win.getAttrs().type == TYPE_DREAM && mDreamingLockscreen
+                && transit == TRANSIT_ENTER) {
+            // Special case: we are animating in a dream, while the keyguard
+            // is shown.  We don't want an animation on the dream, because
+            // we need it shown immediately with the keyguard animating away
+            // to reveal it.
+            return -1;
+        }
+
+        return 0;
+    }
+
+    private int selectDockedDividerAnimationLw(WindowState win, int transit) {
+        int insets = mDisplayContent.getDockedDividerController().getContentInsets();
+
+        // If the divider is behind the navigation bar, don't animate.
+        final Rect frame = win.getFrameLw();
+        final boolean behindNavBar = mNavigationBar != null
+                && ((mNavigationBarPosition == NAV_BAR_BOTTOM
+                && frame.top + insets >= mNavigationBar.getFrameLw().top)
+                || (mNavigationBarPosition == NAV_BAR_RIGHT
+                && frame.left + insets >= mNavigationBar.getFrameLw().left)
+                || (mNavigationBarPosition == NAV_BAR_LEFT
+                && frame.right - insets <= mNavigationBar.getFrameLw().right));
+        final boolean landscape = frame.height() > frame.width();
+        final boolean offscreenLandscape = landscape && (frame.right - insets <= 0
+                || frame.left + insets >= win.getDisplayFrameLw().right);
+        final boolean offscreenPortrait = !landscape && (frame.top - insets <= 0
+                || frame.bottom + insets >= win.getDisplayFrameLw().bottom);
+        final boolean offscreen = offscreenLandscape || offscreenPortrait;
+        if (behindNavBar || offscreen) {
+            return 0;
+        }
+        if (transit == TRANSIT_ENTER || transit == TRANSIT_SHOW) {
+            return R.anim.fade_in;
+        } else if (transit == TRANSIT_EXIT) {
+            return R.anim.fade_out;
+        } else {
+            return 0;
+        }
+    }
+
+    /**
+     * Determine the animation to run for a rotation transition based on the
+     * top fullscreen windows {@link WindowManager.LayoutParams#rotationAnimation}
+     * and whether it is currently fullscreen and frontmost.
+     *
+     * @param anim The exiting animation resource id is stored in anim[0], the
+     * entering animation resource id is stored in anim[1].
+     */
+    public void selectRotationAnimationLw(int anim[]) {
+        // If the screen is off or non-interactive, force a jumpcut.
+        final boolean forceJumpcut = !mScreenOnFully || !mService.mPolicy.okToAnimate();
+        if (DEBUG_ANIM) Slog.i(TAG, "selectRotationAnimation mTopFullscreen="
+                + mTopFullscreenOpaqueWindowState + " rotationAnimation="
+                + (mTopFullscreenOpaqueWindowState == null
+                ? "0" : mTopFullscreenOpaqueWindowState.getAttrs().rotationAnimation)
+                + " forceJumpcut=" + forceJumpcut);
+        if (forceJumpcut) {
+            anim[0] = R.anim.rotation_animation_jump_exit;
+            anim[1] = R.anim.rotation_animation_enter;
+            return;
+        }
+        if (mTopFullscreenOpaqueWindowState != null) {
+            int animationHint = mTopFullscreenOpaqueWindowState.getRotationAnimationHint();
+            if (animationHint < 0 && mTopIsFullscreen) {
+                animationHint = mTopFullscreenOpaqueWindowState.getAttrs().rotationAnimation;
+            }
+            switch (animationHint) {
+                case ROTATION_ANIMATION_CROSSFADE:
+                case ROTATION_ANIMATION_SEAMLESS: // Crossfade is fallback for seamless.
+                    anim[0] = R.anim.rotation_animation_xfade_exit;
+                    anim[1] = R.anim.rotation_animation_enter;
+                    break;
+                case ROTATION_ANIMATION_JUMPCUT:
+                    anim[0] = R.anim.rotation_animation_jump_exit;
+                    anim[1] = R.anim.rotation_animation_enter;
+                    break;
+                case ROTATION_ANIMATION_ROTATE:
+                default:
+                    anim[0] = anim[1] = 0;
+                    break;
+            }
+        } else {
+            anim[0] = anim[1] = 0;
+        }
+    }
+
+    /**
+     * Validate whether the current top fullscreen has specified the same
+     * {@link WindowManager.LayoutParams#rotationAnimation} value as that
+     * being passed in from the previous top fullscreen window.
+     *
+     * @param exitAnimId exiting resource id from the previous window.
+     * @param enterAnimId entering resource id from the previous window.
+     * @param forceDefault For rotation animations only, if true ignore the
+     * animation values and just return false.
+     * @return true if the previous values are still valid, false if they
+     * should be replaced with the default.
+     */
+    public boolean validateRotationAnimationLw(int exitAnimId, int enterAnimId,
+            boolean forceDefault) {
+        switch (exitAnimId) {
+            case R.anim.rotation_animation_xfade_exit:
+            case R.anim.rotation_animation_jump_exit:
+                // These are the only cases that matter.
+                if (forceDefault) {
+                    return false;
+                }
+                int anim[] = new int[2];
+                selectRotationAnimationLw(anim);
+                return (exitAnimId == anim[0] && enterAnimId == anim[1]);
+            default:
+                return true;
+        }
+    }
+
+    /**
+     * Called when a new system UI visibility is being reported, allowing
+     * the policy to adjust what is actually reported.
+     * @param visibility The raw visibility reported by the status bar.
+     * @return The new desired visibility.
+     */
+    public int adjustSystemUiVisibilityLw(int visibility) {
+        mStatusBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
+        mNavigationBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
+
+        // Reset any bits in mForceClearingStatusBarVisibility that
+        // are now clear.
+        mResettingSystemUiFlags &= visibility;
+        // Clear any bits in the new visibility that are currently being
+        // force cleared, before reporting it.
+        return visibility & ~mResettingSystemUiFlags
+                & ~mForceClearedSystemUiFlags;
+    }
+
+    /**
+     * @return true if the navigation bar is forced to stay visible
+     */
+    public boolean isNavBarForcedShownLw(WindowState windowState) {
+        return mForceShowSystemBars;
+    }
+
+    // TODO: Should probably be moved into DisplayFrames.
+    /**
+     * Return the layout hints for a newly added window. These values are computed on the
+     * most recent layout, so they are not guaranteed to be correct.
+     *
+     * @param attrs The LayoutParams of the window.
+     * @param taskBounds The bounds of the task this window is on or {@code null} if no task is
+     *                   associated with the window.
+     * @param displayFrames display frames.
+     * @param floatingStack Whether the window's stack is floating.
+     * @param outFrame The frame of the window.
+     * @param outContentInsets The areas covered by system windows, expressed as positive insets.
+     * @param outStableInsets The areas covered by stable system windows irrespective of their
+     *                        current visibility. Expressed as positive insets.
+     * @param outOutsets The areas that are not real display, but we would like to treat as such.
+     * @param outDisplayCutout The area that has been cut away from the display.
+     * @return Whether to always consume the navigation bar.
+     *         See {@link #isNavBarForcedShownLw(WindowState)}.
+     */
+    public boolean getLayoutHintLw(LayoutParams attrs, Rect taskBounds,
+            DisplayFrames displayFrames, boolean floatingStack, Rect outFrame,
+            Rect outContentInsets, Rect outStableInsets,
+            Rect outOutsets, DisplayCutout.ParcelableWrapper outDisplayCutout) {
+        final int fl = PolicyControl.getWindowFlags(null, attrs);
+        final int pfl = attrs.privateFlags;
+        final int requestedSysUiVis = PolicyControl.getSystemUiVisibility(null, attrs);
+        final int sysUiVis = requestedSysUiVis | getImpliedSysUiFlagsForLayout(attrs);
+        final int displayRotation = displayFrames.mRotation;
+
+        final boolean useOutsets = outOutsets != null && shouldUseOutsets(attrs, fl);
+        if (useOutsets) {
+            int outset = ScreenShapeHelper.getWindowOutsetBottomPx(mContext.getResources());
+            if (outset > 0) {
+                if (displayRotation == Surface.ROTATION_0) {
+                    outOutsets.bottom += outset;
+                } else if (displayRotation == Surface.ROTATION_90) {
+                    outOutsets.right += outset;
+                } else if (displayRotation == Surface.ROTATION_180) {
+                    outOutsets.top += outset;
+                } else if (displayRotation == Surface.ROTATION_270) {
+                    outOutsets.left += outset;
+                }
+            }
+        }
+
+        final boolean layoutInScreen = (fl & FLAG_LAYOUT_IN_SCREEN) != 0;
+        final boolean layoutInScreenAndInsetDecor = layoutInScreen
+                && (fl & FLAG_LAYOUT_INSET_DECOR) != 0;
+        final boolean screenDecor = (pfl & PRIVATE_FLAG_IS_SCREEN_DECOR) != 0;
+
+        if (layoutInScreenAndInsetDecor && !screenDecor) {
+            if ((sysUiVis & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0) {
+                outFrame.set(displayFrames.mUnrestricted);
+            } else {
+                outFrame.set(displayFrames.mRestricted);
+            }
+
+            final Rect sf;
+            if (floatingStack) {
+                sf = null;
+            } else {
+                sf = displayFrames.mStable;
+            }
+
+            final Rect cf;
+            if (floatingStack) {
+                cf = null;
+            } else if ((sysUiVis & View.SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0) {
+                if ((fl & FLAG_FULLSCREEN) != 0) {
+                    cf = displayFrames.mStableFullscreen;
+                } else {
+                    cf = displayFrames.mStable;
+                }
+            } else if ((fl & FLAG_FULLSCREEN) != 0 || (fl & FLAG_LAYOUT_IN_OVERSCAN) != 0) {
+                cf = displayFrames.mOverscan;
+            } else {
+                cf = displayFrames.mCurrent;
+            }
+
+            if (taskBounds != null) {
+                outFrame.intersect(taskBounds);
+            }
+            InsetUtils.insetsBetweenFrames(outFrame, cf, outContentInsets);
+            InsetUtils.insetsBetweenFrames(outFrame, sf, outStableInsets);
+            outDisplayCutout.set(displayFrames.mDisplayCutout.calculateRelativeTo(outFrame)
+                    .getDisplayCutout());
+            return mForceShowSystemBars;
+        } else {
+            if (layoutInScreen) {
+                outFrame.set(displayFrames.mUnrestricted);
+            } else {
+                outFrame.set(displayFrames.mStable);
+            }
+            if (taskBounds != null) {
+                outFrame.intersect(taskBounds);
+            }
+
+            outContentInsets.setEmpty();
+            outStableInsets.setEmpty();
+            outDisplayCutout.set(DisplayCutout.NO_CUTOUT);
+            return mForceShowSystemBars;
+        }
+    }
+
+    private static int getImpliedSysUiFlagsForLayout(LayoutParams attrs) {
+        int impliedFlags = 0;
+        if ((attrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0) {
+            impliedFlags |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
+        }
+        final boolean forceWindowDrawsStatusBarBackground =
+                (attrs.privateFlags & PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND) != 0;
+        if ((attrs.flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0
+                || forceWindowDrawsStatusBarBackground
+                && attrs.height == MATCH_PARENT && attrs.width == MATCH_PARENT) {
+            impliedFlags |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
+        }
+        return impliedFlags;
+    }
+
+    private static boolean shouldUseOutsets(WindowManager.LayoutParams attrs, int fl) {
+        return attrs.type == TYPE_WALLPAPER || (fl & (WindowManager.LayoutParams.FLAG_FULLSCREEN
+                | WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN)) != 0;
+    }
+
+    private final Runnable mClearHideNavigationFlag = new Runnable() {
+        @Override
+        public void run() {
+            synchronized (mLock) {
+                mForceClearedSystemUiFlags &= ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
+                mDisplayContent.reevaluateStatusBarVisibility();
+            }
+        }
+    };
+
+    /**
+     * Input handler used while nav bar is hidden.  Captures any touch on the screen,
+     * to determine when the nav bar should be shown and prevent applications from
+     * receiving those touches.
+     */
+    private final class HideNavInputEventReceiver extends InputEventReceiver {
+        HideNavInputEventReceiver(InputChannel inputChannel, Looper looper) {
+            super(inputChannel, looper);
+        }
+
+        @Override
+        public void onInputEvent(InputEvent event) {
+            try {
+                if (event instanceof MotionEvent
+                        && (event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
+                    final MotionEvent motionEvent = (MotionEvent) event;
+                    if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
+                        // When the user taps down, we re-show the nav bar.
+                        boolean changed = false;
+                        synchronized (mLock) {
+                            if (mInputConsumer == null) {
+                                return;
+                            }
+                            // Any user activity always causes us to show the
+                            // navigation controls, if they had been hidden.
+                            // We also clear the low profile and only content
+                            // flags so that tapping on the screen will atomically
+                            // restore all currently hidden screen decorations.
+                            int newVal = mResettingSystemUiFlags
+                                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+                                    | View.SYSTEM_UI_FLAG_LOW_PROFILE
+                                    | View.SYSTEM_UI_FLAG_FULLSCREEN;
+                            if (mResettingSystemUiFlags != newVal) {
+                                mResettingSystemUiFlags = newVal;
+                                changed = true;
+                            }
+                            // We don't allow the system's nav bar to be hidden
+                            // again for 1 second, to prevent applications from
+                            // spamming us and keeping it from being shown.
+                            newVal = mForceClearedSystemUiFlags
+                                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
+                            if (mForceClearedSystemUiFlags != newVal) {
+                                mForceClearedSystemUiFlags = newVal;
+                                changed = true;
+                                mHandler.postDelayed(mClearHideNavigationFlag, 1000);
+                            }
+                            if (changed) {
+                                mDisplayContent.reevaluateStatusBarVisibility();
+                            }
+                        }
+                    }
+                }
+            } finally {
+                finishInputEvent(event, false /* handled */);
+            }
+        }
+    }
+
+    /**
+     * Called when layout of the windows is about to start.
+     *
+     * @param displayFrames frames of the display we are doing layout on.
+     * @param uiMode The current uiMode in configuration.
+     */
+    public void beginLayoutLw(DisplayFrames displayFrames, int uiMode) {
+        displayFrames.onBeginLayout();
+        mSystemGestures.screenWidth = displayFrames.mUnrestricted.width();
+        mSystemGestures.screenHeight = displayFrames.mUnrestricted.height();
+
+        // For purposes of putting out fake window up to steal focus, we will
+        // drive nav being hidden only by whether it is requested.
+        final int sysui = mLastSystemUiFlags;
+        boolean navVisible = (sysui & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
+        boolean navTranslucent = (sysui
+                & (View.NAVIGATION_BAR_TRANSLUCENT | View.NAVIGATION_BAR_TRANSPARENT)) != 0;
+        boolean immersive = (sysui & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0;
+        boolean immersiveSticky = (sysui & View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) != 0;
+        boolean navAllowedHidden = immersive || immersiveSticky;
+        navTranslucent &= !immersiveSticky;  // transient trumps translucent
+        boolean isKeyguardShowing = isStatusBarKeyguard()
+                && !mService.mPolicy.isKeyguardOccluded();
+        if (!isKeyguardShowing) {
+            navTranslucent &= areTranslucentBarsAllowed();
+        }
+        boolean statusBarForcesShowingNavigation = !isKeyguardShowing && mStatusBar != null
+                && (mStatusBar.getAttrs().privateFlags
+                & PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION) != 0;
+
+        // When the navigation bar isn't visible, we put up a fake input window to catch all
+        // touch events. This way we can detect when the user presses anywhere to bring back the
+        // nav bar and ensure the application doesn't see the event.
+        if (navVisible || navAllowedHidden) {
+            if (mInputConsumer != null) {
+                mHandler.sendMessage(
+                        mHandler.obtainMessage(MSG_DISPOSE_INPUT_CONSUMER, mInputConsumer));
+                mInputConsumer = null;
+            }
+        } else if (mInputConsumer == null && mStatusBar != null && canHideNavigationBar()) {
+            mInputConsumer = mService.createInputConsumer(mHandler.getLooper(),
+                    INPUT_CONSUMER_NAVIGATION,
+                    HideNavInputEventReceiver::new,
+                    displayFrames.mDisplayId);
+            // As long as mInputConsumer is active, hover events are not dispatched to the app
+            // and the pointer icon is likely to become stale. Hide it to avoid confusion.
+            InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_NULL);
+        }
+
+        // For purposes of positioning and showing the nav bar, if we have decided that it can't
+        // be hidden (because of the screen aspect ratio), then take that into account.
+        navVisible |= !canHideNavigationBar();
+
+        boolean updateSysUiVisibility = layoutNavigationBar(displayFrames, uiMode, navVisible,
+                navTranslucent, navAllowedHidden, statusBarForcesShowingNavigation);
+        if (DEBUG_LAYOUT) Slog.i(TAG, "mDock rect:" + displayFrames.mDock);
+        updateSysUiVisibility |= layoutStatusBar(displayFrames, sysui, isKeyguardShowing);
+        if (updateSysUiVisibility) {
+            updateSystemUiVisibilityLw();
+        }
+        layoutScreenDecorWindows(displayFrames);
+
+        if (displayFrames.mDisplayCutoutSafe.top > displayFrames.mUnrestricted.top) {
+            // Make sure that the zone we're avoiding for the cutout is at least as tall as the
+            // status bar; otherwise fullscreen apps will end up cutting halfway into the status
+            // bar.
+            displayFrames.mDisplayCutoutSafe.top = Math.max(displayFrames.mDisplayCutoutSafe.top,
+                    displayFrames.mStable.top);
+        }
+    }
+
+    private void layoutScreenDecorWindows(DisplayFrames displayFrames) {
+        if (mScreenDecorWindows.isEmpty()) {
+            return;
+        }
+
+        sTmpRect.setEmpty();
+        sTmpDockedFrame.set(displayFrames.mDock);
+
+        final int displayId = displayFrames.mDisplayId;
+        final Rect dockFrame = displayFrames.mDock;
+        final int displayHeight = displayFrames.mDisplayHeight;
+        final int displayWidth = displayFrames.mDisplayWidth;
+
+        for (int i = mScreenDecorWindows.size() - 1; i >= 0; --i) {
+            final WindowState w = mScreenDecorWindows.valueAt(i);
+            if (w.getDisplayId() != displayId || !w.isVisibleLw()) {
+                // Skip if not on the same display or not visible.
+                continue;
+            }
+
+            w.getWindowFrames().setFrames(sTmpDockedFrame /* parentFrame */,
+                    sTmpDockedFrame /* displayFrame */, sTmpDockedFrame /* overscanFrame */,
+                    sTmpDockedFrame /* contentFrame */, sTmpDockedFrame /* visibleFrame */,
+                    sTmpRect /* decorFrame */, sTmpDockedFrame /* stableFrame */,
+                    sTmpDockedFrame /* outsetFrame */);
+            w.getWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
+            w.computeFrameLw();
+            final Rect frame = w.getFrameLw();
+
+            if (frame.left <= 0 && frame.top <= 0) {
+                // Docked at left or top.
+                if (frame.bottom >= displayHeight) {
+                    // Docked left.
+                    dockFrame.left = Math.max(frame.right, dockFrame.left);
+                } else if (frame.right >= displayWidth) {
+                    // Docked top.
+                    dockFrame.top = Math.max(frame.bottom, dockFrame.top);
+                } else {
+                    Slog.w(TAG, "layoutScreenDecorWindows: Ignoring decor win=" + w
+                            + " not docked on left or top of display. frame=" + frame
+                            + " displayWidth=" + displayWidth + " displayHeight=" + displayHeight);
+                }
+            } else if (frame.right >= displayWidth && frame.bottom >= displayHeight) {
+                // Docked at right or bottom.
+                if (frame.top <= 0) {
+                    // Docked right.
+                    dockFrame.right = Math.min(frame.left, dockFrame.right);
+                } else if (frame.left <= 0) {
+                    // Docked bottom.
+                    dockFrame.bottom = Math.min(frame.top, dockFrame.bottom);
+                } else {
+                    Slog.w(TAG, "layoutScreenDecorWindows: Ignoring decor win=" + w
+                            + " not docked on right or bottom" + " of display. frame=" + frame
+                            + " displayWidth=" + displayWidth + " displayHeight=" + displayHeight);
+                }
+            } else {
+                // Screen decor windows are required to be docked on one of the sides of the screen.
+                Slog.w(TAG, "layoutScreenDecorWindows: Ignoring decor win=" + w
+                        + " not docked on one of the sides of the display. frame=" + frame
+                        + " displayWidth=" + displayWidth + " displayHeight=" + displayHeight);
+            }
+        }
+
+        displayFrames.mRestricted.set(dockFrame);
+        displayFrames.mCurrent.set(dockFrame);
+        displayFrames.mVoiceContent.set(dockFrame);
+        displayFrames.mSystem.set(dockFrame);
+        displayFrames.mContent.set(dockFrame);
+        displayFrames.mRestrictedOverscan.set(dockFrame);
+    }
+
+    private boolean layoutStatusBar(DisplayFrames displayFrames, int sysui,
+            boolean isKeyguardShowing) {
+        // decide where the status bar goes ahead of time
+        if (mStatusBar == null) {
+            return false;
+        }
+        // apply any navigation bar insets
+        sTmpRect.setEmpty();
+        mStatusBar.getWindowFrames().setFrames(displayFrames.mUnrestricted /* parentFrame */,
+                displayFrames.mUnrestricted /* displayFrame */,
+                displayFrames.mStable /* overscanFrame */, displayFrames.mStable /* contentFrame */,
+                displayFrames.mStable /* visibleFrame */, sTmpRect /* decorFrame */,
+                displayFrames.mStable /* stableFrame */, displayFrames.mStable /* outsetFrame */);
+        mStatusBar.getWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
+
+        // Let the status bar determine its size.
+        mStatusBar.computeFrameLw();
+
+        // For layout, the status bar is always at the top with our fixed height.
+        displayFrames.mStable.top = displayFrames.mUnrestricted.top
+                + mStatusBarHeightForRotation[displayFrames.mRotation];
+        // Make sure the status bar covers the entire cutout height
+        displayFrames.mStable.top = Math.max(displayFrames.mStable.top,
+                displayFrames.mDisplayCutoutSafe.top);
+
+        // Tell the bar controller where the collapsed status bar content is
+        sTmpRect.set(mStatusBar.getContentFrameLw());
+        sTmpRect.intersect(displayFrames.mDisplayCutoutSafe);
+        sTmpRect.top = mStatusBar.getContentFrameLw().top;  // Ignore top display cutout inset
+        sTmpRect.bottom = displayFrames.mStable.top;  // Use collapsed status bar size
+        mStatusBarController.setContentFrame(sTmpRect);
+
+        boolean statusBarTransient = (sysui & View.STATUS_BAR_TRANSIENT) != 0;
+        boolean statusBarTranslucent = (sysui
+                & (View.STATUS_BAR_TRANSLUCENT | View.STATUS_BAR_TRANSPARENT)) != 0;
+        if (!isKeyguardShowing) {
+            statusBarTranslucent &= areTranslucentBarsAllowed();
+        }
+
+        // If the status bar is hidden, we don't want to cause windows behind it to scroll.
+        if (mStatusBar.isVisibleLw() && !statusBarTransient) {
+            // Status bar may go away, so the screen area it occupies is available to apps but just
+            // covering them when the status bar is visible.
+            final Rect dockFrame = displayFrames.mDock;
+            dockFrame.top = displayFrames.mStable.top;
+            displayFrames.mContent.set(dockFrame);
+            displayFrames.mVoiceContent.set(dockFrame);
+            displayFrames.mCurrent.set(dockFrame);
+
+            if (DEBUG_LAYOUT) Slog.v(TAG, "Status bar: " + String.format(
+                    "dock=%s content=%s cur=%s", dockFrame.toString(),
+                    displayFrames.mContent.toString(), displayFrames.mCurrent.toString()));
+
+            if (!mStatusBar.isAnimatingLw() && !statusBarTranslucent
+                    && !mStatusBarController.wasRecentlyTranslucent()) {
+                // If the opaque status bar is currently requested to be visible, and not in the
+                // process of animating on or off, then we can tell the app that it is covered by
+                // it.
+                displayFrames.mSystem.top = displayFrames.mStable.top;
+            }
+        }
+        return mStatusBarController.checkHiddenLw();
+    }
+
+    private boolean layoutNavigationBar(DisplayFrames displayFrames, int uiMode, boolean navVisible,
+            boolean navTranslucent, boolean navAllowedHidden,
+            boolean statusBarForcesShowingNavigation) {
+        if (mNavigationBar == null) {
+            return false;
+        }
+
+        final Rect navigationFrame = sTmpNavFrame;
+        boolean transientNavBarShowing = mNavigationBarController.isTransientShowing();
+        // Force the navigation bar to its appropriate place and size. We need to do this directly,
+        // instead of relying on it to bubble up from the nav bar, because this needs to change
+        // atomically with screen rotations.
+        final int rotation = displayFrames.mRotation;
+        final int displayHeight = displayFrames.mDisplayHeight;
+        final int displayWidth = displayFrames.mDisplayWidth;
+        final Rect dockFrame = displayFrames.mDock;
+        mNavigationBarPosition = navigationBarPosition(displayWidth, displayHeight, rotation);
+
+        final Rect cutoutSafeUnrestricted = sTmpRect;
+        cutoutSafeUnrestricted.set(displayFrames.mUnrestricted);
+        cutoutSafeUnrestricted.intersectUnchecked(displayFrames.mDisplayCutoutSafe);
+
+        if (mNavigationBarPosition == NAV_BAR_BOTTOM) {
+            // It's a system nav bar or a portrait screen; nav bar goes on bottom.
+            final int top = cutoutSafeUnrestricted.bottom
+                    - getNavigationBarHeight(rotation, uiMode);
+            // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
+            final int topNavBar = cutoutSafeUnrestricted.bottom
+                    - mExperiments.getNavigationBarFrameHeight();
+            navigationFrame.set(0, topNavBar, displayWidth, displayFrames.mUnrestricted.bottom);
+            // EXPERIMENT END
+            displayFrames.mStable.bottom = displayFrames.mStableFullscreen.bottom = top;
+            if (transientNavBarShowing) {
+                mNavigationBarController.setBarShowingLw(true);
+            } else if (navVisible) {
+                mNavigationBarController.setBarShowingLw(true);
+                dockFrame.bottom = displayFrames.mRestricted.bottom =
+                        displayFrames.mRestrictedOverscan.bottom = top;
+            } else {
+                // We currently want to hide the navigation UI - unless we expanded the status bar.
+                mNavigationBarController.setBarShowingLw(statusBarForcesShowingNavigation);
+            }
+            if (navVisible && !navTranslucent && !navAllowedHidden
+                    && !mNavigationBar.isAnimatingLw()
+                    && !mNavigationBarController.wasRecentlyTranslucent()) {
+                // If the opaque nav bar is currently requested to be visible and not in the process
+                // of animating on or off, then we can tell the app that it is covered by it.
+                displayFrames.mSystem.bottom = top;
+            }
+        } else if (mNavigationBarPosition == NAV_BAR_RIGHT) {
+            // Landscape screen; nav bar goes to the right.
+            final int left = cutoutSafeUnrestricted.right
+                    - getNavigationBarWidth(rotation, uiMode);
+            // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
+            final int leftNavBar = cutoutSafeUnrestricted.right
+                    - mExperiments.getNavigationBarFrameWidth();
+            navigationFrame.set(leftNavBar, 0, displayFrames.mUnrestricted.right, displayHeight);
+            // EXPERIMENT END
+            displayFrames.mStable.right = displayFrames.mStableFullscreen.right = left;
+            if (transientNavBarShowing) {
+                mNavigationBarController.setBarShowingLw(true);
+            } else if (navVisible) {
+                mNavigationBarController.setBarShowingLw(true);
+                dockFrame.right = displayFrames.mRestricted.right =
+                        displayFrames.mRestrictedOverscan.right = left;
+            } else {
+                // We currently want to hide the navigation UI - unless we expanded the status bar.
+                mNavigationBarController.setBarShowingLw(statusBarForcesShowingNavigation);
+            }
+            if (navVisible && !navTranslucent && !navAllowedHidden
+                    && !mNavigationBar.isAnimatingLw()
+                    && !mNavigationBarController.wasRecentlyTranslucent()) {
+                // If the nav bar is currently requested to be visible, and not in the process of
+                // animating on or off, then we can tell the app that it is covered by it.
+                displayFrames.mSystem.right = left;
+            }
+        } else if (mNavigationBarPosition == NAV_BAR_LEFT) {
+            // Seascape screen; nav bar goes to the left.
+            final int right = cutoutSafeUnrestricted.left
+                    + getNavigationBarWidth(rotation, uiMode);
+            // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
+            final int rightNavBar = cutoutSafeUnrestricted.left
+                    + mExperiments.getNavigationBarFrameWidth();
+            navigationFrame.set(displayFrames.mUnrestricted.left, 0, rightNavBar, displayHeight);
+            // EXPERIMENT END
+            displayFrames.mStable.left = displayFrames.mStableFullscreen.left = right;
+            if (transientNavBarShowing) {
+                mNavigationBarController.setBarShowingLw(true);
+            } else if (navVisible) {
+                mNavigationBarController.setBarShowingLw(true);
+                dockFrame.left = displayFrames.mRestricted.left =
+                        displayFrames.mRestrictedOverscan.left = right;
+            } else {
+                // We currently want to hide the navigation UI - unless we expanded the status bar.
+                mNavigationBarController.setBarShowingLw(statusBarForcesShowingNavigation);
+            }
+            if (navVisible && !navTranslucent && !navAllowedHidden
+                    && !mNavigationBar.isAnimatingLw()
+                    && !mNavigationBarController.wasRecentlyTranslucent()) {
+                // If the nav bar is currently requested to be visible, and not in the process of
+                // animating on or off, then we can tell the app that it is covered by it.
+                displayFrames.mSystem.left = right;
+            }
+        }
+
+        // Make sure the content and current rectangles are updated to account for the restrictions
+        // from the navigation bar.
+        displayFrames.mCurrent.set(dockFrame);
+        displayFrames.mVoiceContent.set(dockFrame);
+        displayFrames.mContent.set(dockFrame);
+        // And compute the final frame.
+        sTmpRect.setEmpty();
+        mNavigationBar.getWindowFrames().setFrames(navigationFrame /* parentFrame */,
+                navigationFrame /* displayFrame */, navigationFrame /* overscanFrame */,
+                displayFrames.mDisplayCutoutSafe /* contentFrame */,
+                navigationFrame /* visibleFrame */, sTmpRect /* decorFrame */,
+                navigationFrame /* stableFrame */,
+                displayFrames.mDisplayCutoutSafe /* outsetFrame */);
+        mNavigationBar.getWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
+        mNavigationBar.computeFrameLw();
+        mNavigationBarController.setContentFrame(mNavigationBar.getContentFrameLw());
+
+        if (DEBUG_LAYOUT) Slog.i(TAG, "mNavigationBar frame: " + navigationFrame);
+        return mNavigationBarController.checkHiddenLw();
+    }
+
+    private void setAttachedWindowFrames(WindowState win, int fl, int adjust, WindowState attached,
+            boolean insetDecors, Rect pf, Rect df, Rect of, Rect cf, Rect vf,
+            DisplayFrames displayFrames) {
+        if (!win.isInputMethodTarget() && attached.isInputMethodTarget()) {
+            // Here's a special case: if the child window is not the 'dock window'
+            // or input method target, and the window it is attached to is below
+            // the dock window, then the frames we computed for the window it is
+            // attached to can not be used because the dock is effectively part
+            // of the underlying window and the attached window is floating on top
+            // of the whole thing. So, we ignore the attached window and explicitly
+            // compute the frames that would be appropriate without the dock.
+            vf.set(displayFrames.mDock);
+            cf.set(displayFrames.mDock);
+            of.set(displayFrames.mDock);
+            df.set(displayFrames.mDock);
+        } else {
+            // The effective display frame of the attached window depends on whether it is taking
+            // care of insetting its content. If not, we need to use the parent's content frame so
+            // that the entire window is positioned within that content. Otherwise we can use the
+            // overscan frame and let the attached window take care of positioning its content
+            // appropriately.
+            if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
+                // Set the content frame of the attached window to the parent's decor frame
+                // (same as content frame when IME isn't present) if specifically requested by
+                // setting {@link WindowManager.LayoutParams#FLAG_LAYOUT_ATTACHED_IN_DECOR} flag.
+                // Otherwise, use the overscan frame.
+                cf.set((fl & FLAG_LAYOUT_ATTACHED_IN_DECOR) != 0
+                        ? attached.getContentFrameLw() : attached.getOverscanFrameLw());
+            } else {
+                // If the window is resizing, then we want to base the content frame on our attached
+                // content frame to resize...however, things can be tricky if the attached window is
+                // NOT in resize mode, in which case its content frame will be larger.
+                // Ungh. So to deal with that, make sure the content frame we end up using is not
+                // covering the IM dock.
+                cf.set(attached.getContentFrameLw());
+                if (attached.isVoiceInteraction()) {
+                    cf.intersectUnchecked(displayFrames.mVoiceContent);
+                } else if (win.isInputMethodTarget() || attached.isInputMethodTarget()) {
+                    cf.intersectUnchecked(displayFrames.mContent);
+                }
+            }
+            df.set(insetDecors ? attached.getDisplayFrameLw() : cf);
+            of.set(insetDecors ? attached.getOverscanFrameLw() : cf);
+            vf.set(attached.getVisibleFrameLw());
+        }
+        // The LAYOUT_IN_SCREEN flag is used to determine whether the attached window should be
+        // positioned relative to its parent or the entire screen.
+        pf.set((fl & FLAG_LAYOUT_IN_SCREEN) == 0 ? attached.getFrameLw() : df);
+    }
+
+    private void applyStableConstraints(int sysui, int fl, Rect r, DisplayFrames displayFrames) {
+        if ((sysui & View.SYSTEM_UI_FLAG_LAYOUT_STABLE) == 0) {
+            return;
+        }
+        // If app is requesting a stable layout, don't let the content insets go below the stable
+        // values.
+        if ((fl & FLAG_FULLSCREEN) != 0) {
+            r.intersectUnchecked(displayFrames.mStableFullscreen);
+        } else {
+            r.intersectUnchecked(displayFrames.mStable);
+        }
+    }
+
+    private boolean canReceiveInput(WindowState win) {
+        boolean notFocusable =
+                (win.getAttrs().flags & WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) != 0;
+        boolean altFocusableIm =
+                (win.getAttrs().flags & WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) != 0;
+        boolean notFocusableForIm = notFocusable ^ altFocusableIm;
+        return !notFocusableForIm;
+    }
+
+    /**
+     * Called for each window attached to the window manager as layout is proceeding. The
+     * implementation of this function must take care of setting the window's frame, either here or
+     * in finishLayout().
+     *
+     * @param win The window being positioned.
+     * @param attached For sub-windows, the window it is attached to; this
+     *                 window will already have had layoutWindow() called on it
+     *                 so you can use its Rect.  Otherwise null.
+     * @param displayFrames The display frames.
+     */
+    public void layoutWindowLw(WindowState win, WindowState attached, DisplayFrames displayFrames) {
+        // We've already done the navigation bar, status bar, and all screen decor windows. If the
+        // status bar can receive input, we need to layout it again to accommodate for the IME
+        // window.
+        if ((win == mStatusBar && !canReceiveInput(win)) || win == mNavigationBar
+                || mScreenDecorWindows.contains(win)) {
+            return;
+        }
+        final WindowManager.LayoutParams attrs = win.getAttrs();
+        final boolean isDefaultDisplay = win.isDefaultDisplay();
+
+        final int type = attrs.type;
+        final int fl = PolicyControl.getWindowFlags(win, attrs);
+        final int pfl = attrs.privateFlags;
+        final int sim = attrs.softInputMode;
+        final int requestedSysUiFl = PolicyControl.getSystemUiVisibility(null, attrs);
+        final int sysUiFl = requestedSysUiFl | getImpliedSysUiFlagsForLayout(attrs);
+
+        final WindowFrames windowFrames = win.getWindowFrames();
+
+        windowFrames.setHasOutsets(false);
+        sTmpLastParentFrame.set(windowFrames.mParentFrame);
+        final Rect pf = windowFrames.mParentFrame;
+        final Rect df = windowFrames.mDisplayFrame;
+        final Rect of = windowFrames.mOverscanFrame;
+        final Rect cf = windowFrames.mContentFrame;
+        final Rect vf = windowFrames.mVisibleFrame;
+        final Rect dcf = windowFrames.mDecorFrame;
+        final Rect sf = windowFrames.mStableFrame;
+        dcf.setEmpty();
+        windowFrames.setParentFrameWasClippedByDisplayCutout(false);
+        windowFrames.setDisplayCutout(displayFrames.mDisplayCutout);
+
+        final boolean hasNavBar = hasNavigationBar() && mNavigationBar != null
+                && mNavigationBar.isVisibleLw();
+
+        final int adjust = sim & SOFT_INPUT_MASK_ADJUST;
+
+        final boolean requestedFullscreen = (fl & FLAG_FULLSCREEN) != 0
+                || (requestedSysUiFl & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0;
+
+        final boolean layoutInScreen = (fl & FLAG_LAYOUT_IN_SCREEN) == FLAG_LAYOUT_IN_SCREEN;
+        final boolean layoutInsetDecor = (fl & FLAG_LAYOUT_INSET_DECOR) == FLAG_LAYOUT_INSET_DECOR;
+
+        sf.set(displayFrames.mStable);
+
+        if (type == TYPE_INPUT_METHOD) {
+            vf.set(displayFrames.mDock);
+            cf.set(displayFrames.mDock);
+            of.set(displayFrames.mDock);
+            df.set(displayFrames.mDock);
+            windowFrames.mParentFrame.set(displayFrames.mDock);
+            // IM dock windows layout below the nav bar...
+            pf.bottom = df.bottom = of.bottom = displayFrames.mUnrestricted.bottom;
+            // ...with content insets above the nav bar
+            cf.bottom = vf.bottom = displayFrames.mStable.bottom;
+            if (mStatusBar != null && mFocusedWindow == mStatusBar && canReceiveInput(mStatusBar)) {
+                // The status bar forces the navigation bar while it's visible. Make sure the IME
+                // avoids the navigation bar in that case.
+                if (mNavigationBarPosition == NAV_BAR_RIGHT) {
+                    pf.right = df.right = of.right = cf.right = vf.right =
+                            displayFrames.mStable.right;
+                } else if (mNavigationBarPosition == NAV_BAR_LEFT) {
+                    pf.left = df.left = of.left = cf.left = vf.left = displayFrames.mStable.left;
+                }
+            }
+
+            // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
+            // Offset the ime to avoid overlapping with the nav bar
+            mExperiments.offsetWindowFramesForNavBar(mNavigationBarPosition, win);
+            // EXPERIMENT END
+
+            // IM dock windows always go to the bottom of the screen.
+            attrs.gravity = Gravity.BOTTOM;
+        } else if (type == TYPE_VOICE_INTERACTION) {
+            of.set(displayFrames.mUnrestricted);
+            df.set(displayFrames.mUnrestricted);
+            pf.set(displayFrames.mUnrestricted);
+            if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
+                cf.set(displayFrames.mDock);
+            } else {
+                cf.set(displayFrames.mContent);
+            }
+            if (adjust != SOFT_INPUT_ADJUST_NOTHING) {
+                vf.set(displayFrames.mCurrent);
+            } else {
+                vf.set(cf);
+            }
+        } else if (type == TYPE_WALLPAPER) {
+            layoutWallpaper(displayFrames, pf, df, of, cf);
+        } else if (win == mStatusBar) {
+            of.set(displayFrames.mUnrestricted);
+            df.set(displayFrames.mUnrestricted);
+            pf.set(displayFrames.mUnrestricted);
+            cf.set(displayFrames.mStable);
+            vf.set(displayFrames.mStable);
+
+            if (adjust == SOFT_INPUT_ADJUST_RESIZE) {
+                cf.bottom = displayFrames.mContent.bottom;
+            } else {
+                cf.bottom = displayFrames.mDock.bottom;
+                vf.bottom = displayFrames.mContent.bottom;
+            }
+        } else {
+            dcf.set(displayFrames.mSystem);
+            final boolean inheritTranslucentDecor =
+                    (attrs.privateFlags & PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR) != 0;
+            final boolean isAppWindow =
+                    type >= FIRST_APPLICATION_WINDOW && type <= LAST_APPLICATION_WINDOW;
+            final boolean topAtRest =
+                    win == mTopFullscreenOpaqueWindowState && !win.isAnimatingLw();
+            if (isAppWindow && !inheritTranslucentDecor && !topAtRest) {
+                if ((sysUiFl & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0
+                        && (fl & FLAG_FULLSCREEN) == 0
+                        && (fl & FLAG_TRANSLUCENT_STATUS) == 0
+                        && (fl & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) == 0
+                        && (pfl & PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND) == 0) {
+                    // Ensure policy decor includes status bar
+                    dcf.top = displayFrames.mStable.top;
+                }
+                if ((fl & FLAG_TRANSLUCENT_NAVIGATION) == 0
+                        && (sysUiFl & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0
+                        && (fl & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) == 0) {
+                    // Ensure policy decor includes navigation bar
+                    dcf.bottom = displayFrames.mStable.bottom;
+                    dcf.right = displayFrames.mStable.right;
+                }
+            }
+
+            if (layoutInScreen && layoutInsetDecor) {
+                if (DEBUG_LAYOUT) Slog.v(TAG, "layoutWindowLw(" + attrs.getTitle()
+                        + "): IN_SCREEN, INSET_DECOR");
+                // This is the case for a normal activity window: we want it to cover all of the
+                // screen space, and it can take care of moving its contents to account for screen
+                // decorations that intrude into that space.
+                if (attached != null) {
+                    // If this window is attached to another, our display
+                    // frame is the same as the one we are attached to.
+                    setAttachedWindowFrames(win, fl, adjust, attached, true, pf, df, of, cf, vf,
+                            displayFrames);
+                } else {
+                    if (type == TYPE_STATUS_BAR_PANEL || type == TYPE_STATUS_BAR_SUB_PANEL) {
+                        // Status bar panels are the only windows who can go on top of the status
+                        // bar. They are protected by the STATUS_BAR_SERVICE permission, so they
+                        // have the same privileges as the status bar itself.
+                        //
+                        // However, they should still dodge the navigation bar if it exists.
+
+                        pf.left = df.left = of.left = hasNavBar
+                                ? displayFrames.mDock.left : displayFrames.mUnrestricted.left;
+                        pf.top = df.top = of.top = displayFrames.mUnrestricted.top;
+                        pf.right = df.right = of.right = hasNavBar
+                                ? displayFrames.mRestricted.right
+                                : displayFrames.mUnrestricted.right;
+                        pf.bottom = df.bottom = of.bottom = hasNavBar
+                                ? displayFrames.mRestricted.bottom
+                                : displayFrames.mUnrestricted.bottom;
+
+                        if (DEBUG_LAYOUT) Slog.v(TAG, "Laying out status bar window: " + pf);
+                    } else if ((fl & FLAG_LAYOUT_IN_OVERSCAN) != 0
+                            && type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW) {
+                        // Asking to layout into the overscan region, so give it that pure
+                        // unrestricted area.
+                        of.set(displayFrames.mOverscan);
+                        df.set(displayFrames.mOverscan);
+                        pf.set(displayFrames.mOverscan);
+                    } else if ((sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
+                            && (type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW
+                            || type == TYPE_VOLUME_OVERLAY)) {
+                        // Asking for layout as if the nav bar is hidden, lets the application
+                        // extend into the unrestricted overscan screen area. We only do this for
+                        // application windows and certain system windows to ensure no window that
+                        // can be above the nav bar can do this.
+                        df.set(displayFrames.mOverscan);
+                        pf.set(displayFrames.mOverscan);
+                        // We need to tell the app about where the frame inside the overscan is, so
+                        // it can inset its content by that amount -- it didn't ask to actually
+                        // extend itself into the overscan region.
+                        of.set(displayFrames.mUnrestricted);
+                    } else {
+                        df.set(displayFrames.mRestrictedOverscan);
+                        pf.set(displayFrames.mRestrictedOverscan);
+                        // We need to tell the app about where the frame inside the overscan
+                        // is, so it can inset its content by that amount -- it didn't ask
+                        // to actually extend itself into the overscan region.
+                        of.set(displayFrames.mUnrestricted);
+                    }
+
+                    if ((fl & FLAG_FULLSCREEN) == 0) {
+                        if (win.isVoiceInteraction()) {
+                            cf.set(displayFrames.mVoiceContent);
+                        } else {
+                            if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
+                                cf.set(displayFrames.mDock);
+                            } else {
+                                cf.set(displayFrames.mContent);
+                            }
+                        }
+                    } else {
+                        // Full screen windows are always given a layout that is as if the status
+                        // bar and other transient decors are gone. This is to avoid bad states when
+                        // moving from a window that is not hiding the status bar to one that is.
+                        cf.set(displayFrames.mRestricted);
+                    }
+                    applyStableConstraints(sysUiFl, fl, cf, displayFrames);
+                    if (adjust != SOFT_INPUT_ADJUST_NOTHING) {
+                        vf.set(displayFrames.mCurrent);
+                    } else {
+                        vf.set(cf);
+                    }
+
+                    // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
+                    mExperiments.offsetWindowFramesForNavBar(mNavigationBarPosition, win);
+                    // EXPERIMENT END
+                }
+            } else if (layoutInScreen || (sysUiFl
+                    & (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)) != 0) {
+                if (DEBUG_LAYOUT) Slog.v(TAG, "layoutWindowLw(" + attrs.getTitle()
+                        + "): IN_SCREEN");
+                // A window that has requested to fill the entire screen just
+                // gets everything, period.
+                if (type == TYPE_STATUS_BAR_PANEL || type == TYPE_STATUS_BAR_SUB_PANEL) {
+                    cf.set(displayFrames.mUnrestricted);
+                    of.set(displayFrames.mUnrestricted);
+                    df.set(displayFrames.mUnrestricted);
+                    pf.set(displayFrames.mUnrestricted);
+                    if (hasNavBar) {
+                        pf.left = df.left = of.left = cf.left = displayFrames.mDock.left;
+                        pf.right = df.right = of.right = cf.right = displayFrames.mRestricted.right;
+                        pf.bottom = df.bottom = of.bottom = cf.bottom =
+                                displayFrames.mRestricted.bottom;
+                    }
+                    if (DEBUG_LAYOUT) Slog.v(TAG, "Laying out IN_SCREEN status bar window: " + pf);
+                } else if (type == TYPE_NAVIGATION_BAR || type == TYPE_NAVIGATION_BAR_PANEL) {
+                    // The navigation bar has Real Ultimate Power.
+                    of.set(displayFrames.mUnrestricted);
+                    df.set(displayFrames.mUnrestricted);
+                    pf.set(displayFrames.mUnrestricted);
+                    if (DEBUG_LAYOUT) Slog.v(TAG, "Laying out navigation bar window: " + pf);
+                } else if ((type == TYPE_SECURE_SYSTEM_OVERLAY || type == TYPE_SCREENSHOT)
+                        && ((fl & FLAG_FULLSCREEN) != 0)) {
+                    // Fullscreen secure system overlays get what they ask for. Screenshot region
+                    // selection overlay should also expand to full screen.
+                    cf.set(displayFrames.mOverscan);
+                    of.set(displayFrames.mOverscan);
+                    df.set(displayFrames.mOverscan);
+                    pf.set(displayFrames.mOverscan);
+                } else if (type == TYPE_BOOT_PROGRESS) {
+                    // Boot progress screen always covers entire display.
+                    cf.set(displayFrames.mOverscan);
+                    of.set(displayFrames.mOverscan);
+                    df.set(displayFrames.mOverscan);
+                    pf.set(displayFrames.mOverscan);
+                } else if ((fl & FLAG_LAYOUT_IN_OVERSCAN) != 0
+                        && type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW) {
+                    // Asking to layout into the overscan region, so give it that pure unrestricted
+                    // area.
+                    cf.set(displayFrames.mOverscan);
+                    of.set(displayFrames.mOverscan);
+                    df.set(displayFrames.mOverscan);
+                    pf.set(displayFrames.mOverscan);
+                } else if ((sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
+                        && (type == TYPE_STATUS_BAR
+                        || type == TYPE_TOAST
+                        || type == TYPE_DOCK_DIVIDER
+                        || type == TYPE_VOICE_INTERACTION_STARTING
+                        || (type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW))) {
+                    // Asking for layout as if the nav bar is hidden, lets the
+                    // application extend into the unrestricted screen area.  We
+                    // only do this for application windows (or toasts) to ensure no window that
+                    // can be above the nav bar can do this.
+                    // XXX This assumes that an app asking for this will also
+                    // ask for layout in only content.  We can't currently figure out
+                    // what the screen would be if only laying out to hide the nav bar.
+                    cf.set(displayFrames.mUnrestricted);
+                    of.set(displayFrames.mUnrestricted);
+                    df.set(displayFrames.mUnrestricted);
+                    pf.set(displayFrames.mUnrestricted);
+                } else if ((sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) != 0) {
+                    of.set(displayFrames.mRestricted);
+                    df.set(displayFrames.mRestricted);
+                    pf.set(displayFrames.mRestricted);
+                    if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
+                        cf.set(displayFrames.mDock);
+                    } else {
+                        cf.set(displayFrames.mContent);
+                    }
+                } else {
+                    cf.set(displayFrames.mRestricted);
+                    of.set(displayFrames.mRestricted);
+                    df.set(displayFrames.mRestricted);
+                    pf.set(displayFrames.mRestricted);
+                }
+
+                applyStableConstraints(sysUiFl, fl, cf, displayFrames);
+
+                if (adjust != SOFT_INPUT_ADJUST_NOTHING) {
+                    vf.set(displayFrames.mCurrent);
+                } else {
+                    vf.set(cf);
+                }
+            } else if (attached != null) {
+                if (DEBUG_LAYOUT) Slog.v(TAG, "layoutWindowLw(" + attrs.getTitle()
+                        + "): attached to " + attached);
+                // A child window should be placed inside of the same visible
+                // frame that its parent had.
+                setAttachedWindowFrames(win, fl, adjust, attached, false, pf, df, of, cf, vf,
+                        displayFrames);
+            } else {
+                if (DEBUG_LAYOUT) Slog.v(TAG, "layoutWindowLw(" + attrs.getTitle()
+                        + "): normal window");
+                // Otherwise, a normal window must be placed inside the content
+                // of all screen decorations.
+                if (type == TYPE_STATUS_BAR_PANEL) {
+                    // Status bar panels can go on
+                    // top of the status bar. They are protected by the STATUS_BAR_SERVICE
+                    // permission, so they have the same privileges as the status bar itself.
+                    cf.set(displayFrames.mRestricted);
+                    of.set(displayFrames.mRestricted);
+                    df.set(displayFrames.mRestricted);
+                    pf.set(displayFrames.mRestricted);
+                } else if (type == TYPE_TOAST || type == TYPE_SYSTEM_ALERT) {
+                    // These dialogs are stable to interim decor changes.
+                    cf.set(displayFrames.mStable);
+                    of.set(displayFrames.mStable);
+                    df.set(displayFrames.mStable);
+                    pf.set(displayFrames.mStable);
+                } else {
+                    pf.set(displayFrames.mContent);
+                    if (win.isVoiceInteraction()) {
+                        cf.set(displayFrames.mVoiceContent);
+                        of.set(displayFrames.mVoiceContent);
+                        df.set(displayFrames.mVoiceContent);
+                    } else if (adjust != SOFT_INPUT_ADJUST_RESIZE) {
+                        cf.set(displayFrames.mDock);
+                        of.set(displayFrames.mDock);
+                        df.set(displayFrames.mDock);
+                    } else {
+                        cf.set(displayFrames.mContent);
+                        of.set(displayFrames.mContent);
+                        df.set(displayFrames.mContent);
+                    }
+                    if (adjust != SOFT_INPUT_ADJUST_NOTHING) {
+                        vf.set(displayFrames.mCurrent);
+                    } else {
+                        vf.set(cf);
+                    }
+                }
+            }
+        }
+
+        final int cutoutMode = attrs.layoutInDisplayCutoutMode;
+        final boolean attachedInParent = attached != null && !layoutInScreen;
+        final boolean requestedHideNavigation =
+                (requestedSysUiFl & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0;
+
+        // TYPE_BASE_APPLICATION windows are never considered floating here because they don't get
+        // cropped / shifted to the displayFrame in WindowState.
+        final boolean floatingInScreenWindow = !attrs.isFullscreen() && layoutInScreen
+                && type != TYPE_BASE_APPLICATION;
+
+        // Ensure that windows with a DEFAULT or NEVER display cutout mode are laid out in
+        // the cutout safe zone.
+        if (cutoutMode != LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS) {
+            final Rect displayCutoutSafeExceptMaybeBars = sTmpDisplayCutoutSafeExceptMaybeBarsRect;
+            displayCutoutSafeExceptMaybeBars.set(displayFrames.mDisplayCutoutSafe);
+            if (layoutInScreen && layoutInsetDecor && !requestedFullscreen
+                    && cutoutMode == LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT) {
+                // At the top we have the status bar, so apps that are
+                // LAYOUT_IN_SCREEN | LAYOUT_INSET_DECOR but not FULLSCREEN
+                // already expect that there's an inset there and we don't need to exclude
+                // the window from that area.
+                displayCutoutSafeExceptMaybeBars.top = Integer.MIN_VALUE;
+            }
+            if (layoutInScreen && layoutInsetDecor && !requestedHideNavigation
+                    && cutoutMode == LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT) {
+                // Same for the navigation bar.
+                switch (mNavigationBarPosition) {
+                    case NAV_BAR_BOTTOM:
+                        displayCutoutSafeExceptMaybeBars.bottom = Integer.MAX_VALUE;
+                        break;
+                    case NAV_BAR_RIGHT:
+                        displayCutoutSafeExceptMaybeBars.right = Integer.MAX_VALUE;
+                        break;
+                    case NAV_BAR_LEFT:
+                        displayCutoutSafeExceptMaybeBars.left = Integer.MIN_VALUE;
+                        break;
+                }
+            }
+            if (type == TYPE_INPUT_METHOD && mNavigationBarPosition == NAV_BAR_BOTTOM) {
+                // The IME can always extend under the bottom cutout if the navbar is there.
+                displayCutoutSafeExceptMaybeBars.bottom = Integer.MAX_VALUE;
+            }
+            // Windows that are attached to a parent and laid out in said parent already avoid
+            // the cutout according to that parent and don't need to be further constrained.
+            // Floating IN_SCREEN windows get what they ask for and lay out in the full screen.
+            // They will later be cropped or shifted using the displayFrame in WindowState,
+            // which prevents overlap with the DisplayCutout.
+            if (!attachedInParent && !floatingInScreenWindow) {
+                sTmpRect.set(pf);
+                pf.intersectUnchecked(displayCutoutSafeExceptMaybeBars);
+                windowFrames.setParentFrameWasClippedByDisplayCutout(!sTmpRect.equals(pf));
+            }
+            // Make sure that NO_LIMITS windows clipped to the display don't extend under the
+            // cutout.
+            df.intersectUnchecked(displayCutoutSafeExceptMaybeBars);
+        }
+
+        // Content should never appear in the cutout.
+        cf.intersectUnchecked(displayFrames.mDisplayCutoutSafe);
+
+        // TYPE_SYSTEM_ERROR is above the NavigationBar so it can't be allowed to extend over it.
+        // Also, we don't allow windows in multi-window mode to extend out of the screen.
+        if ((fl & FLAG_LAYOUT_NO_LIMITS) != 0 && type != TYPE_SYSTEM_ERROR
+                && !win.isInMultiWindowMode()) {
+            df.left = df.top = -10000;
+            df.right = df.bottom = 10000;
+            if (type != TYPE_WALLPAPER) {
+                of.left = of.top = cf.left = cf.top = vf.left = vf.top = -10000;
+                of.right = of.bottom = cf.right = cf.bottom = vf.right = vf.bottom = 10000;
+            }
+        }
+
+        // If the device has a chin (e.g. some watches), a dead area at the bottom of the screen we
+        // need to provide information to the clients that want to pretend that you can draw there.
+        // We only want to apply outsets to certain types of windows. For example, we never want to
+        // apply the outsets to floating dialogs, because they wouldn't make sense there.
+        final boolean useOutsets = shouldUseOutsets(attrs, fl);
+        if (isDefaultDisplay && useOutsets) {
+            final Rect osf = windowFrames.mOutsetFrame;
+            osf.set(cf.left, cf.top, cf.right, cf.bottom);
+            windowFrames.setHasOutsets(true);
+            int outset = ScreenShapeHelper.getWindowOutsetBottomPx(mContext.getResources());
+            if (outset > 0) {
+                int rotation = displayFrames.mRotation;
+                if (rotation == Surface.ROTATION_0) {
+                    osf.bottom += outset;
+                } else if (rotation == Surface.ROTATION_90) {
+                    osf.right += outset;
+                } else if (rotation == Surface.ROTATION_180) {
+                    osf.top -= outset;
+                } else if (rotation == Surface.ROTATION_270) {
+                    osf.left -= outset;
+                }
+                if (DEBUG_LAYOUT) Slog.v(TAG, "applying bottom outset of " + outset
+                        + " with rotation " + rotation + ", result: " + osf);
+            }
+        }
+
+        if (DEBUG_LAYOUT) Slog.v(TAG, "Compute frame " + attrs.getTitle()
+                + ": sim=#" + Integer.toHexString(sim)
+                + " attach=" + attached + " type=" + type
+                + String.format(" flags=0x%08x", fl)
+                + " pf=" + pf.toShortString() + " df=" + df.toShortString()
+                + " of=" + of.toShortString()
+                + " cf=" + cf.toShortString() + " vf=" + vf.toShortString()
+                + " dcf=" + dcf.toShortString()
+                + " sf=" + sf.toShortString()
+                + " osf=" + windowFrames.mOutsetFrame.toShortString() + " " + win);
+
+        if (!sTmpLastParentFrame.equals(pf)) {
+            windowFrames.setContentChanged(true);
+        }
+
+        win.computeFrameLw();
+        // Dock windows carve out the bottom of the screen, so normal windows
+        // can't appear underneath them.
+        if (type == TYPE_INPUT_METHOD && win.isVisibleLw()
+                && !win.getGivenInsetsPendingLw()) {
+            offsetInputMethodWindowLw(win, displayFrames);
+        }
+        if (type == TYPE_VOICE_INTERACTION && win.isVisibleLw()
+                && !win.getGivenInsetsPendingLw()) {
+            offsetVoiceInputWindowLw(win, displayFrames);
+        }
+    }
+
+    private void layoutWallpaper(DisplayFrames displayFrames, Rect pf, Rect df, Rect of, Rect cf) {
+        // The wallpaper has Real Ultimate Power, but we want to tell it about the overscan area.
+        df.set(displayFrames.mOverscan);
+        pf.set(displayFrames.mOverscan);
+        cf.set(displayFrames.mUnrestricted);
+        of.set(displayFrames.mUnrestricted);
+    }
+
+    private void offsetInputMethodWindowLw(WindowState win, DisplayFrames displayFrames) {
+        int top = Math.max(win.getDisplayFrameLw().top, win.getContentFrameLw().top);
+        top += win.getGivenContentInsetsLw().top;
+        displayFrames.mContent.bottom = Math.min(displayFrames.mContent.bottom, top);
+        displayFrames.mVoiceContent.bottom = Math.min(displayFrames.mVoiceContent.bottom, top);
+        top = win.getVisibleFrameLw().top;
+        top += win.getGivenVisibleInsetsLw().top;
+        displayFrames.mCurrent.bottom = Math.min(displayFrames.mCurrent.bottom, top);
+        if (DEBUG_LAYOUT) Slog.v(TAG, "Input method: mDockBottom="
+                + displayFrames.mDock.bottom + " mContentBottom="
+                + displayFrames.mContent.bottom + " mCurBottom=" + displayFrames.mCurrent.bottom);
+    }
+
+    private void offsetVoiceInputWindowLw(WindowState win, DisplayFrames displayFrames) {
+        int top = Math.max(win.getDisplayFrameLw().top, win.getContentFrameLw().top);
+        top += win.getGivenContentInsetsLw().top;
+        displayFrames.mVoiceContent.bottom = Math.min(displayFrames.mVoiceContent.bottom, top);
+    }
+
+    /**
+     * Called following layout of all windows before each window has policy applied.
+     */
+    public void beginPostLayoutPolicyLw() {
+        mTopFullscreenOpaqueWindowState = null;
+        mTopFullscreenOpaqueOrDimmingWindowState = null;
+        mTopDockedOpaqueWindowState = null;
+        mTopDockedOpaqueOrDimmingWindowState = null;
+        mForceStatusBar = false;
+        mForceStatusBarFromKeyguard = false;
+        mForceStatusBarTransparent = false;
+        mForcingShowNavBar = false;
+        mForcingShowNavBarLayer = -1;
+
+        mAllowLockscreenWhenOn = false;
+        mShowingDream = false;
+        mWindowSleepTokenNeeded = false;
+    }
+
+    /**
+     * Called following layout of all window to apply policy to each window.
+     *
+     * @param win The window being positioned.
+     * @param attrs The LayoutParams of the window.
+     * @param attached For sub-windows, the window it is attached to. Otherwise null.
+     */
+    public void applyPostLayoutPolicyLw(WindowState win, WindowManager.LayoutParams attrs,
+            WindowState attached, WindowState imeTarget) {
+        final boolean affectsSystemUi = win.canAffectSystemUiFlags();
+        if (DEBUG_LAYOUT) Slog.i(TAG, "Win " + win + ": affectsSystemUi=" + affectsSystemUi);
+        mService.mPolicy.applyKeyguardPolicyLw(win, imeTarget);
+        final int fl = PolicyControl.getWindowFlags(win, attrs);
+        if (mTopFullscreenOpaqueWindowState == null && affectsSystemUi
+                && attrs.type == TYPE_INPUT_METHOD) {
+            mForcingShowNavBar = true;
+            mForcingShowNavBarLayer = win.getSurfaceLayer();
+        }
+        if (attrs.type == TYPE_STATUS_BAR) {
+            if ((attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) {
+                mForceStatusBarFromKeyguard = true;
+            }
+            if ((attrs.privateFlags & PRIVATE_FLAG_FORCE_STATUS_BAR_VISIBLE_TRANSPARENT) != 0) {
+                mForceStatusBarTransparent = true;
+            }
+        }
+
+        boolean appWindow = attrs.type >= FIRST_APPLICATION_WINDOW
+                && attrs.type < FIRST_SYSTEM_WINDOW;
+        final int windowingMode = win.getWindowingMode();
+        final boolean inFullScreenOrSplitScreenSecondaryWindowingMode =
+                windowingMode == WINDOWING_MODE_FULLSCREEN
+                        || windowingMode == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
+        if (mTopFullscreenOpaqueWindowState == null && affectsSystemUi) {
+            if ((fl & FLAG_FORCE_NOT_FULLSCREEN) != 0) {
+                mForceStatusBar = true;
+            }
+            if (attrs.type == TYPE_DREAM) {
+                // If the lockscreen was showing when the dream started then wait
+                // for the dream to draw before hiding the lockscreen.
+                if (!mDreamingLockscreen
+                        || (win.isVisibleLw() && win.hasDrawnLw())) {
+                    mShowingDream = true;
+                    appWindow = true;
+                }
+            }
+
+            // For app windows that are not attached, we decide if all windows in the app they
+            // represent should be hidden or if we should hide the lockscreen. For attached app
+            // windows we defer the decision to the window it is attached to.
+            if (appWindow && attached == null) {
+                if (attrs.isFullscreen() && inFullScreenOrSplitScreenSecondaryWindowingMode) {
+                    if (DEBUG_LAYOUT) Slog.v(TAG, "Fullscreen window: " + win);
+                    mTopFullscreenOpaqueWindowState = win;
+                    if (mTopFullscreenOpaqueOrDimmingWindowState == null) {
+                        mTopFullscreenOpaqueOrDimmingWindowState = win;
+                    }
+                    if ((fl & FLAG_ALLOW_LOCK_WHILE_SCREEN_ON) != 0) {
+                        mAllowLockscreenWhenOn = true;
+                    }
+                }
+            }
+        }
+
+        // Voice interaction overrides both top fullscreen and top docked.
+        if (affectsSystemUi && win.getAttrs().type == TYPE_VOICE_INTERACTION) {
+            if (mTopFullscreenOpaqueWindowState == null) {
+                mTopFullscreenOpaqueWindowState = win;
+                if (mTopFullscreenOpaqueOrDimmingWindowState == null) {
+                    mTopFullscreenOpaqueOrDimmingWindowState = win;
+                }
+            }
+            if (mTopDockedOpaqueWindowState == null) {
+                mTopDockedOpaqueWindowState = win;
+                if (mTopDockedOpaqueOrDimmingWindowState == null) {
+                    mTopDockedOpaqueOrDimmingWindowState = win;
+                }
+            }
+        }
+
+        // Keep track of the window if it's dimming but not necessarily fullscreen.
+        if (mTopFullscreenOpaqueOrDimmingWindowState == null && affectsSystemUi
+                && win.isDimming() && inFullScreenOrSplitScreenSecondaryWindowingMode) {
+            mTopFullscreenOpaqueOrDimmingWindowState = win;
+        }
+
+        // We need to keep track of the top "fullscreen" opaque window for the docked stack
+        // separately, because both the "real fullscreen" opaque window and the one for the docked
+        // stack can control View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.
+        if (mTopDockedOpaqueWindowState == null && affectsSystemUi && appWindow && attached == null
+                && attrs.isFullscreen() && windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
+            mTopDockedOpaqueWindowState = win;
+            if (mTopDockedOpaqueOrDimmingWindowState == null) {
+                mTopDockedOpaqueOrDimmingWindowState = win;
+            }
+        }
+
+        // Also keep track of any windows that are dimming but not necessarily fullscreen in the
+        // docked stack.
+        if (mTopDockedOpaqueOrDimmingWindowState == null && affectsSystemUi && win.isDimming()
+                && windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
+            mTopDockedOpaqueOrDimmingWindowState = win;
+        }
+    }
+
+    /**
+     * Called following layout of all windows and after policy has been applied
+     * to each window. If in this function you do
+     * something that may have modified the animation state of another window,
+     * be sure to return non-zero in order to perform another pass through layout.
+     *
+     * @return Return any bit set of
+     *         {@link WindowManagerPolicy#FINISH_LAYOUT_REDO_LAYOUT},
+     *         {@link WindowManagerPolicy#FINISH_LAYOUT_REDO_CONFIG},
+     *         {@link WindowManagerPolicy#FINISH_LAYOUT_REDO_WALLPAPER}, or
+     *         {@link WindowManagerPolicy#FINISH_LAYOUT_REDO_ANIM}.
+     */
+    public int finishPostLayoutPolicyLw() {
+        int changes = 0;
+        boolean topIsFullscreen = false;
+
+        // If we are not currently showing a dream then remember the current
+        // lockscreen state.  We will use this to determine whether the dream
+        // started while the lockscreen was showing and remember this state
+        // while the dream is showing.
+        if (!mShowingDream) {
+            mDreamingLockscreen = mService.mPolicy.isKeyguardShowingAndNotOccluded();
+            if (mDreamingSleepTokenNeeded) {
+                mDreamingSleepTokenNeeded = false;
+                mHandler.obtainMessage(MSG_UPDATE_DREAMING_SLEEP_TOKEN, 0, 1).sendToTarget();
+            }
+        } else {
+            if (!mDreamingSleepTokenNeeded) {
+                mDreamingSleepTokenNeeded = true;
+                mHandler.obtainMessage(MSG_UPDATE_DREAMING_SLEEP_TOKEN, 1, 1).sendToTarget();
+            }
+        }
+
+        if (mStatusBar != null) {
+            if (DEBUG_LAYOUT) Slog.i(TAG, "force=" + mForceStatusBar
+                    + " forcefkg=" + mForceStatusBarFromKeyguard
+                    + " top=" + mTopFullscreenOpaqueWindowState);
+            boolean shouldBeTransparent = mForceStatusBarTransparent
+                    && !mForceStatusBar
+                    && !mForceStatusBarFromKeyguard;
+            if (!shouldBeTransparent) {
+                mStatusBarController.setShowTransparent(false /* transparent */);
+            } else if (!mStatusBar.isVisibleLw()) {
+                mStatusBarController.setShowTransparent(true /* transparent */);
+            }
+
+            boolean statusBarForcesShowingNavigation =
+                    (mStatusBar.getAttrs().privateFlags
+                            & PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION) != 0;
+            boolean topAppHidesStatusBar = topAppHidesStatusBar();
+            if (mForceStatusBar || mForceStatusBarFromKeyguard || mForceStatusBarTransparent
+                    || statusBarForcesShowingNavigation) {
+                if (DEBUG_LAYOUT) Slog.v(TAG, "Showing status bar: forced");
+                if (mStatusBarController.setBarShowingLw(true)) {
+                    changes |= FINISH_LAYOUT_REDO_LAYOUT;
+                }
+                // Maintain fullscreen layout until incoming animation is complete.
+                topIsFullscreen = mTopIsFullscreen && mStatusBar.isAnimatingLw();
+                // Transient status bar is not allowed if status bar is on lockscreen or status bar
+                // is expecting the navigation keys from the user.
+                if ((mForceStatusBarFromKeyguard || statusBarForcesShowingNavigation)
+                        && mStatusBarController.isTransientShowing()) {
+                    mStatusBarController.updateVisibilityLw(false /*transientAllowed*/,
+                            mLastSystemUiFlags, mLastSystemUiFlags);
+                }
+            } else if (mTopFullscreenOpaqueWindowState != null) {
+                topIsFullscreen = topAppHidesStatusBar;
+                // The subtle difference between the window for mTopFullscreenOpaqueWindowState
+                // and mTopIsFullscreen is that mTopIsFullscreen is set only if the window
+                // has the FLAG_FULLSCREEN set.  Not sure if there is another way that to be the
+                // case though.
+                if (mStatusBarController.isTransientShowing()) {
+                    if (mStatusBarController.setBarShowingLw(true)) {
+                        changes |= FINISH_LAYOUT_REDO_LAYOUT;
+                    }
+                } else if (topIsFullscreen
+                        && !mDisplayContent.isStackVisible(WINDOWING_MODE_FREEFORM)
+                        && !mDisplayContent.isStackVisible(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY)) {
+                    if (DEBUG_LAYOUT) Slog.v(TAG, "** HIDING status bar");
+                    if (mStatusBarController.setBarShowingLw(false)) {
+                        changes |= FINISH_LAYOUT_REDO_LAYOUT;
+                    } else {
+                        if (DEBUG_LAYOUT) Slog.v(TAG, "Status bar already hiding");
+                    }
+                } else {
+                    if (DEBUG_LAYOUT) Slog.v(TAG, "** SHOWING status bar: top is not fullscreen");
+                    if (mStatusBarController.setBarShowingLw(true)) {
+                        changes |= FINISH_LAYOUT_REDO_LAYOUT;
+                    }
+                    topAppHidesStatusBar = false;
+                }
+            }
+            mStatusBarController.setTopAppHidesStatusBar(topAppHidesStatusBar);
+        }
+
+        if (mTopIsFullscreen != topIsFullscreen) {
+            if (!topIsFullscreen) {
+                // Force another layout when status bar becomes fully shown.
+                changes |= FINISH_LAYOUT_REDO_LAYOUT;
+            }
+            mTopIsFullscreen = topIsFullscreen;
+        }
+
+        if ((updateSystemUiVisibilityLw() & SYSTEM_UI_CHANGING_LAYOUT) != 0) {
+            // If the navigation bar has been hidden or shown, we need to do another
+            // layout pass to update that window.
+            changes |= FINISH_LAYOUT_REDO_LAYOUT;
+        }
+
+        if (mShowingDream != mLastShowingDream) {
+            mLastShowingDream = mShowingDream;
+            mService.notifyShowingDreamChanged();
+        }
+
+        updateWindowSleepToken();
+
+        mService.mPolicy.setAllowLockscreenWhenOn(getDisplayId(), mAllowLockscreenWhenOn);
+        return changes;
+    }
+
+    private void updateWindowSleepToken() {
+        if (mWindowSleepTokenNeeded && !mLastWindowSleepTokenNeeded) {
+            mHandler.removeCallbacks(mReleaseSleepTokenRunnable);
+            mHandler.post(mAcquireSleepTokenRunnable);
+        } else if (!mWindowSleepTokenNeeded && mLastWindowSleepTokenNeeded) {
+            mHandler.removeCallbacks(mAcquireSleepTokenRunnable);
+            mHandler.post(mReleaseSleepTokenRunnable);
+        }
+        mLastWindowSleepTokenNeeded = mWindowSleepTokenNeeded;
+    }
+
+    /**
+     * @return Whether the top app should hide the statusbar based on the top fullscreen opaque
+     *         window.
+     */
+    private boolean topAppHidesStatusBar() {
+        if (mTopFullscreenOpaqueWindowState == null) {
+            return false;
+        }
+        final int fl = PolicyControl.getWindowFlags(null,
+                mTopFullscreenOpaqueWindowState.getAttrs());
+        if (localLOGV) {
+            Slog.d(TAG, "frame: " + mTopFullscreenOpaqueWindowState.getFrameLw());
+            Slog.d(TAG, "attr: " + mTopFullscreenOpaqueWindowState.getAttrs()
+                    + " lp.flags=0x" + Integer.toHexString(fl));
+        }
+        return (fl & LayoutParams.FLAG_FULLSCREEN) != 0
+                || (mLastSystemUiFlags & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0;
+    }
+
+    /**
+     * Called when the resource overlays change.
+     */
+    public void onOverlayChangedLw() {
+        onConfigurationChanged();
+    }
+
+    /**
+     * Called when the configuration has changed, and it's safe to load new values from resources.
+     */
+    public void onConfigurationChanged() {
+        final DisplayRotation displayRotation = mDisplayContent.getDisplayRotation();
+
+        final Context uiContext = getSystemUiContext();
+        final Resources res = uiContext.getResources();
+        final int portraitRotation = displayRotation.getPortraitRotation();
+        final int upsideDownRotation = displayRotation.getUpsideDownRotation();
+        final int landscapeRotation = displayRotation.getLandscapeRotation();
+        final int seascapeRotation = displayRotation.getSeascapeRotation();
+
+        mStatusBarHeightForRotation[portraitRotation] =
+        mStatusBarHeightForRotation[upsideDownRotation] =
+                res.getDimensionPixelSize(R.dimen.status_bar_height_portrait);
+        mStatusBarHeightForRotation[landscapeRotation] =
+        mStatusBarHeightForRotation[seascapeRotation] =
+                res.getDimensionPixelSize(R.dimen.status_bar_height_landscape);
+
+        // Height of the navigation bar when presented horizontally at bottom
+        mNavigationBarHeightForRotationDefault[portraitRotation] =
+        mNavigationBarHeightForRotationDefault[upsideDownRotation] =
+                res.getDimensionPixelSize(R.dimen.navigation_bar_height);
+        mNavigationBarHeightForRotationDefault[landscapeRotation] =
+        mNavigationBarHeightForRotationDefault[seascapeRotation] =
+                res.getDimensionPixelSize(R.dimen.navigation_bar_height_landscape);
+
+        // Width of the navigation bar when presented vertically along one side
+        mNavigationBarWidthForRotationDefault[portraitRotation] =
+        mNavigationBarWidthForRotationDefault[upsideDownRotation] =
+        mNavigationBarWidthForRotationDefault[landscapeRotation] =
+        mNavigationBarWidthForRotationDefault[seascapeRotation] =
+                res.getDimensionPixelSize(R.dimen.navigation_bar_width);
+
+        if (ALTERNATE_CAR_MODE_NAV_SIZE) {
+            // Height of the navigation bar when presented horizontally at bottom
+            mNavigationBarHeightForRotationInCarMode[portraitRotation] =
+            mNavigationBarHeightForRotationInCarMode[upsideDownRotation] =
+                    res.getDimensionPixelSize(R.dimen.navigation_bar_height_car_mode);
+            mNavigationBarHeightForRotationInCarMode[landscapeRotation] =
+            mNavigationBarHeightForRotationInCarMode[seascapeRotation] =
+                    res.getDimensionPixelSize(R.dimen.navigation_bar_height_landscape_car_mode);
+
+            // Width of the navigation bar when presented vertically along one side
+            mNavigationBarWidthForRotationInCarMode[portraitRotation] =
+            mNavigationBarWidthForRotationInCarMode[upsideDownRotation] =
+            mNavigationBarWidthForRotationInCarMode[landscapeRotation] =
+            mNavigationBarWidthForRotationInCarMode[seascapeRotation] =
+                    res.getDimensionPixelSize(R.dimen.navigation_bar_width_car_mode);
+        }
+
+        // EXPERIMENT TODO(b/113952590): Remove once experiment in bug is completed
+        mExperiments.onConfigurationChanged(uiContext);
+        // EXPERIMENT END
+    }
+
+    @VisibleForTesting
+    Context getSystemUiContext() {
+        final Context uiContext = ActivityThread.currentActivityThread().getSystemUiContext();
+        return mDisplayContent.isDefaultDisplay
+                ? uiContext : uiContext.createDisplayContext(mDisplayContent.getDisplay());
+    }
+
+    private int getNavigationBarWidth(int rotation, int uiMode) {
+        if (ALTERNATE_CAR_MODE_NAV_SIZE && (uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) {
+            return mNavigationBarWidthForRotationInCarMode[rotation];
+        } else {
+            return mNavigationBarWidthForRotationDefault[rotation];
+        }
+    }
+
+    /**
+     * Return the display width available after excluding any screen
+     * decorations that could never be removed in Honeycomb. That is, system bar or
+     * button bar.
+     */
+    public int getNonDecorDisplayWidth(int fullWidth, int fullHeight, int rotation, int uiMode,
+            DisplayCutout displayCutout) {
+        int width = fullWidth;
+        if (hasNavigationBar()) {
+            // For a basic navigation bar, when we are in landscape mode we place
+            // the navigation bar to the side.
+            if (navigationBarCanMove() && fullWidth > fullHeight) {
+                width -= getNavigationBarWidth(rotation, uiMode);
+            }
+        }
+        if (displayCutout != null) {
+            width -= displayCutout.getSafeInsetLeft() + displayCutout.getSafeInsetRight();
+        }
+        return width;
+    }
+
+    private int getNavigationBarHeight(int rotation, int uiMode) {
+        if (ALTERNATE_CAR_MODE_NAV_SIZE && (uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) {
+            return mNavigationBarHeightForRotationInCarMode[rotation];
+        } else {
+            return mNavigationBarHeightForRotationDefault[rotation];
+        }
+    }
+
+    /**
+     * Return the display height available after excluding any screen
+     * decorations that could never be removed in Honeycomb. That is, system bar or
+     * button bar.
+     */
+    public int getNonDecorDisplayHeight(int fullWidth, int fullHeight, int rotation, int uiMode,
+            DisplayCutout displayCutout) {
+        int height = fullHeight;
+        if (hasNavigationBar()) {
+            // For a basic navigation bar, when we are in portrait mode we place
+            // the navigation bar to the bottom.
+            if (!navigationBarCanMove() || fullWidth < fullHeight) {
+                height -= getNavigationBarHeight(rotation, uiMode);
+            }
+        }
+        if (displayCutout != null) {
+            height -= displayCutout.getSafeInsetTop() + displayCutout.getSafeInsetBottom();
+        }
+        return height;
+    }
+
+    /**
+     * Return the available screen width that we should report for the
+     * configuration.  This must be no larger than
+     * {@link #getNonDecorDisplayWidth(int, int, int, int, DisplayCutout)}; it may be smaller
+     * than that to account for more transient decoration like a status bar.
+     */
+    public int getConfigDisplayWidth(int fullWidth, int fullHeight, int rotation, int uiMode,
+            DisplayCutout displayCutout) {
+        return getNonDecorDisplayWidth(fullWidth, fullHeight, rotation, uiMode, displayCutout);
+    }
+
+    /**
+     * Return the available screen height that we should report for the
+     * configuration.  This must be no larger than
+     * {@link #getNonDecorDisplayHeight(int, int, int, int, DisplayCutout)}; it may be smaller
+     * than that to account for more transient decoration like a status bar.
+     */
+    public int getConfigDisplayHeight(int fullWidth, int fullHeight, int rotation, int uiMode,
+            DisplayCutout displayCutout) {
+        // There is a separate status bar at the top of the display.  We don't count that as part
+        // of the fixed decor, since it can hide; however, for purposes of configurations,
+        // we do want to exclude it since applications can't generally use that part
+        // of the screen.
+        int statusBarHeight = mStatusBarHeightForRotation[rotation];
+        if (displayCutout != null) {
+            // If there is a cutout, it may already have accounted for some part of the status
+            // bar height.
+            statusBarHeight = Math.max(0, statusBarHeight - displayCutout.getSafeInsetTop());
+        }
+        return getNonDecorDisplayHeight(fullWidth, fullHeight, rotation, uiMode, displayCutout)
+                - statusBarHeight;
+    }
+
+    boolean isShowingDreamLw() {
+        return mShowingDream;
+    }
+
+    /**
+     * Calculates the stable insets without running a layout.
+     *
+     * @param displayRotation the current display rotation
+     * @param displayWidth the current display width
+     * @param displayHeight the current display height
+     * @param displayCutout the current display cutout
+     * @param outInsets the insets to return
+     */
+    public void getStableInsetsLw(int displayRotation, int displayWidth, int displayHeight,
+            DisplayCutout displayCutout, Rect outInsets) {
+        outInsets.setEmpty();
+
+        // Navigation bar and status bar.
+        getNonDecorInsetsLw(displayRotation, displayWidth, displayHeight, displayCutout, outInsets);
+        outInsets.top = Math.max(outInsets.top, mStatusBarHeightForRotation[displayRotation]);
+    }
+
+    /**
+     * Calculates the insets for the areas that could never be removed in Honeycomb, i.e. system
+     * bar or button bar. See {@link #getNonDecorDisplayWidth}.
+     *
+     * @param displayRotation the current display rotation
+     * @param displayWidth the current display width
+     * @param displayHeight the current display height
+     * @param displayCutout the current display cutout
+     * @param outInsets the insets to return
+     */
+    public void getNonDecorInsetsLw(int displayRotation, int displayWidth, int displayHeight,
+            DisplayCutout displayCutout, Rect outInsets) {
+        outInsets.setEmpty();
+
+        // Only navigation bar
+        if (hasNavigationBar()) {
+            final int uiMode = mService.mPolicy.getUiMode();
+            int position = navigationBarPosition(displayWidth, displayHeight, displayRotation);
+            if (position == NAV_BAR_BOTTOM) {
+                outInsets.bottom = getNavigationBarHeight(displayRotation, uiMode);
+            } else if (position == NAV_BAR_RIGHT) {
+                outInsets.right = getNavigationBarWidth(displayRotation, uiMode);
+            } else if (position == NAV_BAR_LEFT) {
+                outInsets.left = getNavigationBarWidth(displayRotation, uiMode);
+            }
+        }
+
+        if (displayCutout != null) {
+            outInsets.left += displayCutout.getSafeInsetLeft();
+            outInsets.top += displayCutout.getSafeInsetTop();
+            outInsets.right += displayCutout.getSafeInsetRight();
+            outInsets.bottom += displayCutout.getSafeInsetBottom();
+        }
+    }
+
+    @NavigationBarPosition
+    int navigationBarPosition(int displayWidth, int displayHeight, int displayRotation) {
+        if (navigationBarCanMove() && displayWidth > displayHeight) {
+            if (displayRotation == Surface.ROTATION_270) {
+                return NAV_BAR_LEFT;
+            } else if (displayRotation == Surface.ROTATION_90) {
+                return NAV_BAR_RIGHT;
+            }
+        }
+        return NAV_BAR_BOTTOM;
+    }
+
+    /**
+     * @return The side of the screen where navigation bar is positioned.
+     * @see WindowManagerPolicyConstants#NAV_BAR_LEFT
+     * @see WindowManagerPolicyConstants#NAV_BAR_RIGHT
+     * @see WindowManagerPolicyConstants#NAV_BAR_BOTTOM
+     */
+    @NavigationBarPosition
+    public int getNavBarPosition() {
+        return mNavigationBarPosition;
+    }
+
+    /**
+     * A new window has been focused.
+     */
+    public int focusChangedLw(WindowState lastFocus, WindowState newFocus) {
+        mFocusedWindow = newFocus;
+        mLastFocusedWindow = lastFocus;
+        if ((updateSystemUiVisibilityLw() & SYSTEM_UI_CHANGING_LAYOUT) != 0) {
+            // If the navigation bar has been hidden or shown, we need to do another
+            // layout pass to update that window.
+            return FINISH_LAYOUT_REDO_LAYOUT;
+        }
+        return 0;
+    }
+
+    /**
+     * Return true if it is okay to perform animations for an app transition
+     * that is about to occur. You may return false for this if, for example,
+     * the dream window is currently displayed so the switch should happen
+     * immediately.
+     */
+    public boolean allowAppAnimationsLw() {
+        return !mShowingDream;
+    }
+
+    private void updateDreamingSleepToken(boolean acquire) {
+        if (acquire) {
+            final int displayId = getDisplayId();
+            if (mDreamingSleepToken == null) {
+                mDreamingSleepToken = mService.mAtmInternal.acquireSleepToken(
+                        "DreamOnDisplay" + displayId, displayId);
+            }
+        } else {
+            if (mDreamingSleepToken != null) {
+                mDreamingSleepToken.release();
+                mDreamingSleepToken = null;
+            }
+        }
+    }
+
+    private void requestTransientBars(WindowState swipeTarget) {
+        synchronized (mLock) {
+            if (!mService.mPolicy.isUserSetupComplete()) {
+                // Swipe-up for navigation bar is disabled during setup
+                return;
+            }
+            boolean sb = mStatusBarController.checkShowTransientBarLw();
+            boolean nb = mNavigationBarController.checkShowTransientBarLw()
+                    && !isNavBarEmpty(mLastSystemUiFlags);
+            if (sb || nb) {
+                // Don't show status bar when swiping on already visible navigation bar
+                if (!nb && swipeTarget == mNavigationBar) {
+                    if (DEBUG) Slog.d(TAG, "Not showing transient bar, wrong swipe target");
+                    return;
+                }
+                if (sb) mStatusBarController.showTransient();
+                if (nb) mNavigationBarController.showTransient();
+                mImmersiveModeConfirmation.confirmCurrentPrompt();
+                updateSystemUiVisibilityLw();
+            }
+        }
+    }
+
+    private void disposeInputConsumer(InputConsumer inputConsumer) {
+        if (inputConsumer != null) {
+            inputConsumer.dismiss();
+        }
+    }
+
+    private boolean isStatusBarKeyguard() {
+        return mStatusBar != null
+                && (mStatusBar.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0;
+    }
+
+    private boolean isKeyguardOccluded() {
+        // TODO (b/113840485): Handle per display keyguard.
+        return mService.mPolicy.isKeyguardOccluded();
+    }
+
+    void resetSystemUiVisibilityLw() {
+        mLastSystemUiFlags = 0;
+        updateSystemUiVisibilityLw();
+    }
+
+    private int updateSystemUiVisibilityLw() {
+        // If there is no window focused, there will be nobody to handle the events
+        // anyway, so just hang on in whatever state we're in until things settle down.
+        WindowState winCandidate = mFocusedWindow != null ? mFocusedWindow
+                : mTopFullscreenOpaqueWindowState;
+        if (winCandidate == null) {
+            return 0;
+        }
+
+        // The immersive mode confirmation should never affect the system bar visibility, otherwise
+        // it will unhide the navigation bar and hide itself.
+        if (winCandidate.getAttrs().token == mImmersiveModeConfirmation.getWindowToken()) {
+
+            // The immersive mode confirmation took the focus from mLastFocusedWindow which was
+            // controlling the system ui visibility. So if mLastFocusedWindow can still receive
+            // keys, we let it keep controlling the visibility.
+            final boolean lastFocusCanReceiveKeys =
+                    (mLastFocusedWindow != null && mLastFocusedWindow.canReceiveKeys());
+            winCandidate = isStatusBarKeyguard() ? mStatusBar
+                    : lastFocusCanReceiveKeys ? mLastFocusedWindow
+                            : mTopFullscreenOpaqueWindowState;
+            if (winCandidate == null) {
+                return 0;
+            }
+        }
+        final WindowState win = winCandidate;
+        if ((win.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0 && isKeyguardOccluded()) {
+            // We are updating at a point where the keyguard has gotten
+            // focus, but we were last in a state where the top window is
+            // hiding it.  This is probably because the keyguard as been
+            // shown while the top window was displayed, so we want to ignore
+            // it here because this is just a very transient change and it
+            // will quickly lose focus once it correctly gets hidden.
+            return 0;
+        }
+
+        mDisplayContent.getInsetsStateController().onBarControllingWindowChanged(
+                mTopFullscreenOpaqueWindowState);
+
+        int tmpVisibility = PolicyControl.getSystemUiVisibility(win, null)
+                & ~mResettingSystemUiFlags
+                & ~mForceClearedSystemUiFlags;
+        if (mForcingShowNavBar && win.getSurfaceLayer() < mForcingShowNavBarLayer) {
+            tmpVisibility
+                    &= ~PolicyControl.adjustClearableFlags(win, View.SYSTEM_UI_CLEARABLE_FLAGS);
+        }
+
+        final int fullscreenVisibility = updateLightStatusBarLw(0 /* vis */,
+                mTopFullscreenOpaqueWindowState, mTopFullscreenOpaqueOrDimmingWindowState);
+        final int dockedVisibility = updateLightStatusBarLw(0 /* vis */,
+                mTopDockedOpaqueWindowState, mTopDockedOpaqueOrDimmingWindowState);
+        mService.getStackBounds(
+                WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, mNonDockedStackBounds);
+        mService.getStackBounds(
+                WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_STANDARD, mDockedStackBounds);
+        final int visibility = updateSystemBarsLw(win, mLastSystemUiFlags, tmpVisibility);
+        final int diff = visibility ^ mLastSystemUiFlags;
+        final int fullscreenDiff = fullscreenVisibility ^ mLastFullscreenStackSysUiFlags;
+        final int dockedDiff = dockedVisibility ^ mLastDockedStackSysUiFlags;
+        final boolean needsMenu = win.getNeedsMenuLw(mTopFullscreenOpaqueWindowState);
+        if (diff == 0 && fullscreenDiff == 0 && dockedDiff == 0 && mLastFocusNeedsMenu == needsMenu
+                && mFocusedApp == win.getAppToken()
+                && mLastNonDockedStackBounds.equals(mNonDockedStackBounds)
+                && mLastDockedStackBounds.equals(mDockedStackBounds)) {
+            return 0;
+        }
+        mLastSystemUiFlags = visibility;
+        mLastFullscreenStackSysUiFlags = fullscreenVisibility;
+        mLastDockedStackSysUiFlags = dockedVisibility;
+        mLastFocusNeedsMenu = needsMenu;
+        mFocusedApp = win.getAppToken();
+        final Rect fullscreenStackBounds = new Rect(mNonDockedStackBounds);
+        final Rect dockedStackBounds = new Rect(mDockedStackBounds);
+        mHandler.post(() -> {
+            StatusBarManagerInternal statusBar = getStatusBarManagerInternal();
+            if (statusBar != null) {
+                final int displayId = getDisplayId();
+                statusBar.setSystemUiVisibility(displayId, visibility, fullscreenVisibility,
+                        dockedVisibility, 0xffffffff, fullscreenStackBounds,
+                        dockedStackBounds, win.toString());
+                statusBar.topAppWindowChanged(displayId, needsMenu);
+            }
+        });
+        return diff;
+    }
+
+    private int updateLightStatusBarLw(int vis, WindowState opaque, WindowState opaqueOrDimming) {
+        final boolean onKeyguard = isStatusBarKeyguard() && !isKeyguardOccluded();
+        final WindowState statusColorWin = onKeyguard ? mStatusBar : opaqueOrDimming;
+        if (statusColorWin != null && (statusColorWin == opaque || onKeyguard)) {
+            // If the top fullscreen-or-dimming window is also the top fullscreen, respect
+            // its light flag.
+            vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
+            vis |= PolicyControl.getSystemUiVisibility(statusColorWin, null)
+                    & View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
+        } else if (statusColorWin != null && statusColorWin.isDimming()) {
+            // Otherwise if it's dimming, clear the light flag.
+            vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
+        }
+        return vis;
+    }
+
+    @VisibleForTesting
+    @Nullable
+    static WindowState chooseNavigationColorWindowLw(WindowState opaque,
+            WindowState opaqueOrDimming, WindowState imeWindow,
+            @NavigationBarPosition int navBarPosition) {
+        // If the IME window is visible and FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS is set, then IME
+        // window can be navigation color window.
+        final boolean imeWindowCanNavColorWindow = imeWindow != null
+                && imeWindow.isVisibleLw()
+                && navBarPosition == NAV_BAR_BOTTOM
+                && (PolicyControl.getWindowFlags(imeWindow, null)
+                & WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0;
+
+        if (opaque != null && opaqueOrDimming == opaque) {
+            // If the top fullscreen-or-dimming window is also the top fullscreen, respect it
+            // unless IME window is also eligible, since currently the IME window is always show
+            // above the opaque fullscreen app window, regardless of the IME target window.
+            // TODO(b/31559891): Maybe we need to revisit this condition once b/31559891 is fixed.
+            return imeWindowCanNavColorWindow ? imeWindow : opaque;
+        }
+
+        if (opaqueOrDimming == null || !opaqueOrDimming.isDimming()) {
+            // No dimming window is involved. Determine the result only with the IME window.
+            return imeWindowCanNavColorWindow ? imeWindow : null;
+        }
+
+        if (!imeWindowCanNavColorWindow) {
+            // No IME window is involved. Determine the result only with opaqueOrDimming.
+            return opaqueOrDimming;
+        }
+
+        // The IME window and the dimming window are competing.  Check if the dimming window can be
+        // IME target or not.
+        if (LayoutParams.mayUseInputMethod(PolicyControl.getWindowFlags(opaqueOrDimming, null))) {
+            // The IME window is above the dimming window.
+            return imeWindow;
+        } else {
+            // The dimming window is above the IME window.
+            return opaqueOrDimming;
+        }
+    }
+
+    @VisibleForTesting
+    static int updateLightNavigationBarLw(int vis, WindowState opaque, WindowState opaqueOrDimming,
+            WindowState imeWindow, WindowState navColorWin) {
+
+        if (navColorWin != null) {
+            if (navColorWin == imeWindow || navColorWin == opaque) {
+                // Respect the light flag.
+                vis &= ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
+                vis |= PolicyControl.getSystemUiVisibility(navColorWin, null)
+                        & View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
+            } else if (navColorWin == opaqueOrDimming && navColorWin.isDimming()) {
+                // Clear the light flag for dimming window.
+                vis &= ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
+            }
+        }
+        return vis;
+    }
+
+    private int updateSystemBarsLw(WindowState win, int oldVis, int vis) {
+        final boolean dockedStackVisible =
+                mDisplayContent.isStackVisible(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+        final boolean freeformStackVisible =
+                mDisplayContent.isStackVisible(WINDOWING_MODE_FREEFORM);
+        final boolean resizing = mDisplayContent.getDockedDividerController().isResizing();
+
+        // We need to force system bars when the docked stack is visible, when the freeform stack
+        // is visible but also when we are resizing for the transitions when docked stack
+        // visibility changes.
+        mForceShowSystemBars = dockedStackVisible || freeformStackVisible || resizing;
+        final boolean forceOpaqueStatusBar = mForceShowSystemBars && !mForceStatusBarFromKeyguard;
+
+        // apply translucent bar vis flags
+        WindowState fullscreenTransWin = isStatusBarKeyguard() && !isKeyguardOccluded()
+                ? mStatusBar
+                : mTopFullscreenOpaqueWindowState;
+        vis = mStatusBarController.applyTranslucentFlagLw(fullscreenTransWin, vis, oldVis);
+        vis = mNavigationBarController.applyTranslucentFlagLw(fullscreenTransWin, vis, oldVis);
+        final int dockedVis = mStatusBarController.applyTranslucentFlagLw(
+                mTopDockedOpaqueWindowState, 0, 0);
+
+        final boolean fullscreenDrawsStatusBarBackground =
+                drawsStatusBarBackground(vis, mTopFullscreenOpaqueWindowState);
+        final boolean dockedDrawsStatusBarBackground =
+                drawsStatusBarBackground(dockedVis, mTopDockedOpaqueWindowState);
+
+        // prevent status bar interaction from clearing certain flags
+        int type = win.getAttrs().type;
+        boolean statusBarHasFocus = type == TYPE_STATUS_BAR;
+        if (statusBarHasFocus && !isStatusBarKeyguard()) {
+            int flags = View.SYSTEM_UI_FLAG_FULLSCREEN
+                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+                    | View.SYSTEM_UI_FLAG_IMMERSIVE
+                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+                    | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
+            if (isKeyguardOccluded()) {
+                flags |= View.STATUS_BAR_TRANSLUCENT | View.NAVIGATION_BAR_TRANSLUCENT;
+            }
+            vis = (vis & ~flags) | (oldVis & flags);
+        }
+
+        if (fullscreenDrawsStatusBarBackground && dockedDrawsStatusBarBackground) {
+            vis |= View.STATUS_BAR_TRANSPARENT;
+            vis &= ~View.STATUS_BAR_TRANSLUCENT;
+        } else if ((!areTranslucentBarsAllowed() && fullscreenTransWin != mStatusBar)
+                || forceOpaqueStatusBar) {
+            vis &= ~(View.STATUS_BAR_TRANSLUCENT | View.STATUS_BAR_TRANSPARENT);
+        }
+
+        vis = configureNavBarOpacity(vis, dockedStackVisible, freeformStackVisible, resizing);
+
+        // update status bar
+        boolean immersiveSticky =
+                (vis & View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) != 0;
+        final boolean hideStatusBarWM =
+                mTopFullscreenOpaqueWindowState != null
+                        && (PolicyControl.getWindowFlags(mTopFullscreenOpaqueWindowState, null)
+                        & WindowManager.LayoutParams.FLAG_FULLSCREEN) != 0;
+        final boolean hideStatusBarSysui =
+                (vis & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0;
+        final boolean hideNavBarSysui =
+                (vis & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0;
+
+        final boolean transientStatusBarAllowed = mStatusBar != null
+                && (statusBarHasFocus || (!mForceShowSystemBars
+                && (hideStatusBarWM || (hideStatusBarSysui && immersiveSticky))));
+
+        final boolean transientNavBarAllowed = mNavigationBar != null
+                && !mForceShowSystemBars && hideNavBarSysui && immersiveSticky;
+
+        final long now = SystemClock.uptimeMillis();
+        final boolean pendingPanic = mPendingPanicGestureUptime != 0
+                && now - mPendingPanicGestureUptime <= PANIC_GESTURE_EXPIRATION;
+        final DisplayPolicy defaultDisplayPolicy =
+                mService.getDefaultDisplayContentLocked().getDisplayPolicy();
+        if (pendingPanic && hideNavBarSysui && !isStatusBarKeyguard()
+                // TODO (b/111955725): Show keyguard presentation on all external displays
+                && defaultDisplayPolicy.isKeyguardDrawComplete()) {
+            // The user performed the panic gesture recently, we're about to hide the bars,
+            // we're no longer on the Keyguard and the screen is ready. We can now request the bars.
+            mPendingPanicGestureUptime = 0;
+            mStatusBarController.showTransient();
+            if (!isNavBarEmpty(vis)) {
+                mNavigationBarController.showTransient();
+            }
+        }
+
+        final boolean denyTransientStatus = mStatusBarController.isTransientShowRequested()
+                && !transientStatusBarAllowed && hideStatusBarSysui;
+        final boolean denyTransientNav = mNavigationBarController.isTransientShowRequested()
+                && !transientNavBarAllowed;
+        if (denyTransientStatus || denyTransientNav || mForceShowSystemBars) {
+            // clear the clearable flags instead
+            clearClearableFlagsLw();
+            vis &= ~View.SYSTEM_UI_CLEARABLE_FLAGS;
+        }
+
+        final boolean immersive = (vis & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0;
+        immersiveSticky = (vis & View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) != 0;
+        final boolean navAllowedHidden = immersive || immersiveSticky;
+
+        if (hideNavBarSysui && !navAllowedHidden
+                && mService.mPolicy.getWindowLayerLw(win)
+                        > mService.mPolicy.getWindowLayerFromTypeLw(TYPE_INPUT_CONSUMER)) {
+            // We can't hide the navbar from this window otherwise the input consumer would not get
+            // the input events.
+            vis = (vis & ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
+        }
+
+        vis = mStatusBarController.updateVisibilityLw(transientStatusBarAllowed, oldVis, vis);
+
+        // update navigation bar
+        boolean oldImmersiveMode = isImmersiveMode(oldVis);
+        boolean newImmersiveMode = isImmersiveMode(vis);
+        if (oldImmersiveMode != newImmersiveMode) {
+            final String pkg = win.getOwningPackage();
+            mImmersiveModeConfirmation.immersiveModeChangedLw(pkg, newImmersiveMode,
+                    mService.mPolicy.isUserSetupComplete(),
+                    isNavBarEmpty(win.getSystemUiVisibility()));
+        }
+
+        vis = mNavigationBarController.updateVisibilityLw(transientNavBarAllowed, oldVis, vis);
+
+        final WindowState navColorWin = chooseNavigationColorWindowLw(
+                mTopFullscreenOpaqueWindowState, mTopFullscreenOpaqueOrDimmingWindowState,
+                mDisplayContent.mInputMethodWindow, mNavigationBarPosition);
+        vis = updateLightNavigationBarLw(vis, mTopFullscreenOpaqueWindowState,
+                mTopFullscreenOpaqueOrDimmingWindowState,
+                mDisplayContent.mInputMethodWindow, navColorWin);
+
+        return vis;
+    }
+
+    private boolean drawsStatusBarBackground(int vis, WindowState win) {
+        if (!mStatusBarController.isTransparentAllowed(win)) {
+            return false;
+        }
+        if (win == null) {
+            return true;
+        }
+
+        final boolean drawsSystemBars =
+                (win.getAttrs().flags & FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) != 0;
+        final boolean forceDrawsSystemBars =
+                (win.getAttrs().privateFlags & PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND) != 0;
+
+        return forceDrawsSystemBars || drawsSystemBars && (vis & View.STATUS_BAR_TRANSLUCENT) == 0;
+    }
+
+    /**
+     * @return the current visibility flags with the nav-bar opacity related flags toggled based
+     *         on the nav bar opacity rules chosen by {@link #mNavBarOpacityMode}.
+     */
+    private int configureNavBarOpacity(int visibility, boolean dockedStackVisible,
+            boolean freeformStackVisible, boolean isDockedDividerResizing) {
+        if (mNavBarOpacityMode == NAV_BAR_OPAQUE_WHEN_FREEFORM_OR_DOCKED) {
+            if (dockedStackVisible || freeformStackVisible || isDockedDividerResizing) {
+                visibility = setNavBarOpaqueFlag(visibility);
+            }
+        } else if (mNavBarOpacityMode == NAV_BAR_TRANSLUCENT_WHEN_FREEFORM_OPAQUE_OTHERWISE) {
+            if (isDockedDividerResizing) {
+                visibility = setNavBarOpaqueFlag(visibility);
+            } else if (freeformStackVisible) {
+                visibility = setNavBarTranslucentFlag(visibility);
+            } else {
+                visibility = setNavBarOpaqueFlag(visibility);
+            }
+        }
+
+        if (!areTranslucentBarsAllowed()) {
+            visibility &= ~View.NAVIGATION_BAR_TRANSLUCENT;
+        }
+        return visibility;
+    }
+
+    private int setNavBarOpaqueFlag(int visibility) {
+        return visibility & ~(View.NAVIGATION_BAR_TRANSLUCENT | View.NAVIGATION_BAR_TRANSPARENT);
+    }
+
+    private int setNavBarTranslucentFlag(int visibility) {
+        visibility &= ~View.NAVIGATION_BAR_TRANSPARENT;
+        return visibility | View.NAVIGATION_BAR_TRANSLUCENT;
+    }
+
+    private void clearClearableFlagsLw() {
+        int newVal = mResettingSystemUiFlags | View.SYSTEM_UI_CLEARABLE_FLAGS;
+        if (newVal != mResettingSystemUiFlags) {
+            mResettingSystemUiFlags = newVal;
+            mDisplayContent.reevaluateStatusBarVisibility();
+        }
+    }
+
+    private boolean isImmersiveMode(int vis) {
+        final int flags = View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
+        return mNavigationBar != null
+                && (vis & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0
+                && (vis & flags) != 0
+                && canHideNavigationBar();
+    }
+
+    /**
+     * @return whether the navigation bar can be hidden, e.g. the device has a navigation bar
+     */
+    private boolean canHideNavigationBar() {
+        return hasNavigationBar();
+    }
+
+    private static boolean isNavBarEmpty(int systemUiFlags) {
+        final int disableNavigationBar = (View.STATUS_BAR_DISABLE_HOME
+                | View.STATUS_BAR_DISABLE_BACK
+                | View.STATUS_BAR_DISABLE_RECENT);
+
+        return (systemUiFlags & disableNavigationBar) == disableNavigationBar;
+    }
+
+    /**
+     * @return whether the navigation or status bar can be made translucent
+     *
+     * This should return true unless touch exploration is not enabled or
+     * R.boolean.config_enableTranslucentDecor is false.
+     */
+    private boolean areTranslucentBarsAllowed() {
+        return mTranslucentDecorEnabled;
+    }
+
+    boolean shouldRotateSeamlessly(DisplayRotation displayRotation, int oldRotation,
+            int newRotation) {
+        // For the upside down rotation we don't rotate seamlessly as the navigation
+        // bar moves position.
+        // Note most apps (using orientation:sensor or user as opposed to fullSensor)
+        // will not enter the reverse portrait orientation, so actually the
+        // orientation won't change at all.
+        if (oldRotation == displayRotation.getUpsideDownRotation()
+                || newRotation == displayRotation.getUpsideDownRotation()) {
+            return false;
+        }
+        // If the navigation bar can't change sides, then it will
+        // jump when we change orientations and we don't rotate
+        // seamlessly.
+        if (!navigationBarCanMove()) {
+            return false;
+        }
+
+        final WindowState w = mTopFullscreenOpaqueWindowState;
+        if (w != mFocusedWindow) {
+            return false;
+        }
+
+        // We only enable seamless rotation if the top window has requested
+        // it and is in the fullscreen opaque state. Seamless rotation
+        // requires freezing various Surface states and won't work well
+        // with animations, so we disable it in the animation case for now.
+        if (w != null && !w.isAnimatingLw()
+                && w.getAttrs().rotationAnimation == ROTATION_ANIMATION_SEAMLESS) {
+            return true;
+        }
+        return false;
+    }
+
+    private final Runnable mHiddenNavPanic = new Runnable() {
+        @Override
+        public void run() {
+            synchronized (mLock) {
+                if (!mService.mPolicy.isUserSetupComplete()) {
+                    // Swipe-up for navigation bar is disabled during setup
+                    return;
+                }
+                mPendingPanicGestureUptime = SystemClock.uptimeMillis();
+                if (!isNavBarEmpty(mLastSystemUiFlags)) {
+                    mNavigationBarController.showTransient();
+                }
+            }
+        }
+    };
+
+    void onPowerKeyDown(boolean isScreenOn) {
+        // Detect user pressing the power button in panic when an application has
+        // taken over the whole screen.
+        boolean panic = mImmersiveModeConfirmation.onPowerKeyDown(isScreenOn,
+                SystemClock.elapsedRealtime(), isImmersiveMode(mLastSystemUiFlags),
+                isNavBarEmpty(mLastSystemUiFlags));
+        if (panic) {
+            mHandler.post(mHiddenNavPanic);
+        }
+    }
+
+    void onVrStateChangedLw(boolean enabled) {
+        mImmersiveModeConfirmation.onVrStateChangedLw(enabled);
+    }
+
+    /**
+     * Called when the state of lock task mode changes. This should be used to disable immersive
+     * mode confirmation.
+     *
+     * @param lockTaskState the new lock task mode state. One of
+     *                      {@link ActivityManager#LOCK_TASK_MODE_NONE},
+     *                      {@link ActivityManager#LOCK_TASK_MODE_LOCKED},
+     *                      {@link ActivityManager#LOCK_TASK_MODE_PINNED}.
+     */
+    public void onLockTaskStateChangedLw(int lockTaskState) {
+        mImmersiveModeConfirmation.onLockTaskModeChangedLw(lockTaskState);
+    }
+
+    /**
+     * Request a screenshot be taken.
+     *
+     * @param screenshotType The type of screenshot, for example either
+     *                       {@link WindowManager#TAKE_SCREENSHOT_FULLSCREEN} or
+     *                       {@link WindowManager#TAKE_SCREENSHOT_SELECTED_REGION}
+     */
+    public void takeScreenshot(int screenshotType) {
+        if (mScreenshotHelper != null) {
+            mScreenshotHelper.takeScreenshot(screenshotType,
+                    mStatusBar != null && mStatusBar.isVisibleLw(),
+                    mNavigationBar != null && mNavigationBar.isVisibleLw(), mHandler);
+        }
+    }
+
     void dump(String prefix, PrintWriter pw) {
-        pw.println(prefix + "DisplayPolicy");
-        pw.print(prefix + "  mCarDockEnablesAccelerometer=" + mCarDockEnablesAccelerometer);
-        pw.println(" mDeskDockEnablesAccelerometer=" + mDeskDockEnablesAccelerometer);
-        pw.print(prefix + "  mDockMode=" + Intent.dockStateToString(mDockMode));
-        pw.println(" mLidState=" + WindowManagerFuncs.lidStateToString(mLidState));
-        pw.print(prefix + "  mAwake=" + mAwake);
-        pw.print(" mScreenOnEarly=" + mScreenOnEarly);
-        pw.println(" mScreenOnFully=" + mScreenOnFully);
-        pw.print(prefix + "  mKeyguardDrawComplete=" + mKeyguardDrawComplete);
-        pw.println(" mWindowManagerDrawComplete=" + mWindowManagerDrawComplete);
-        pw.println(prefix + "  mHdmiPlugged=" + mHdmiPlugged);
+        pw.print(prefix); pw.print("DisplayPolicy");
+        prefix += "  ";
+        pw.print(prefix);
+        pw.print("mCarDockEnablesAccelerometer="); pw.print(mCarDockEnablesAccelerometer);
+        pw.print(" mDeskDockEnablesAccelerometer=");
+        pw.println(mDeskDockEnablesAccelerometer);
+        pw.print(prefix); pw.print("mDockMode="); pw.print(Intent.dockStateToString(mDockMode));
+        pw.print(" mLidState="); pw.println(WindowManagerFuncs.lidStateToString(mLidState));
+        pw.print(prefix); pw.print("mAwake="); pw.print(mAwake);
+        pw.print(" mScreenOnEarly="); pw.print(mScreenOnEarly);
+        pw.print(" mScreenOnFully="); pw.println(mScreenOnFully);
+        pw.print(prefix); pw.print("mKeyguardDrawComplete="); pw.print(mKeyguardDrawComplete);
+        pw.print(" mWindowManagerDrawComplete="); pw.println(mWindowManagerDrawComplete);
+        pw.print(prefix); pw.print("mHdmiPlugged="); pw.println(mHdmiPlugged);
+        if (mLastSystemUiFlags != 0 || mResettingSystemUiFlags != 0
+                || mForceClearedSystemUiFlags != 0) {
+            pw.print(prefix); pw.print("mLastSystemUiFlags=0x");
+            pw.print(Integer.toHexString(mLastSystemUiFlags));
+            pw.print(" mResettingSystemUiFlags=0x");
+            pw.print(Integer.toHexString(mResettingSystemUiFlags));
+            pw.print(" mForceClearedSystemUiFlags=0x");
+            pw.println(Integer.toHexString(mForceClearedSystemUiFlags));
+        }
+        if (mLastFocusNeedsMenu) {
+            pw.print(prefix); pw.print("mLastFocusNeedsMenu="); pw.println(mLastFocusNeedsMenu);
+        }
+        pw.print(prefix); pw.print("mShowingDream="); pw.print(mShowingDream);
+        pw.print(" mDreamingLockscreen="); pw.print(mDreamingLockscreen);
+        pw.print(" mDreamingSleepToken="); pw.println(mDreamingSleepToken);
+        if (mStatusBar != null) {
+            pw.print(prefix); pw.print("mStatusBar="); pw.print(mStatusBar);
+                    pw.print(" isStatusBarKeyguard="); pw.println(isStatusBarKeyguard());
+        }
+        if (mNavigationBar != null) {
+            pw.print(prefix); pw.print("mNavigationBar="); pw.println(mNavigationBar);
+        }
+        if (mFocusedWindow != null) {
+            pw.print(prefix); pw.print("mFocusedWindow="); pw.println(mFocusedWindow);
+        }
+        if (mFocusedApp != null) {
+            pw.print(prefix); pw.print("mFocusedApp="); pw.println(mFocusedApp);
+        }
+        if (mTopFullscreenOpaqueWindowState != null) {
+            pw.print(prefix); pw.print("mTopFullscreenOpaqueWindowState=");
+            pw.println(mTopFullscreenOpaqueWindowState);
+        }
+        if (mTopFullscreenOpaqueOrDimmingWindowState != null) {
+            pw.print(prefix); pw.print("mTopFullscreenOpaqueOrDimmingWindowState=");
+            pw.println(mTopFullscreenOpaqueOrDimmingWindowState);
+        }
+        if (mForcingShowNavBar) {
+            pw.print(prefix); pw.print("mForcingShowNavBar="); pw.println(mForcingShowNavBar);
+            pw.print(prefix); pw.print("mForcingShowNavBarLayer=");
+            pw.println(mForcingShowNavBarLayer);
+        }
+        pw.print(prefix); pw.print("mTopIsFullscreen="); pw.print(mTopIsFullscreen);
+        pw.print(prefix); pw.print("mForceStatusBar="); pw.print(mForceStatusBar);
+        pw.print(" mForceStatusBarFromKeyguard="); pw.println(mForceStatusBarFromKeyguard);
+        pw.print(prefix); pw.print("mAllowLockscreenWhenOn="); pw.println(mAllowLockscreenWhenOn);
+        mStatusBarController.dump(pw, prefix);
+        mNavigationBarController.dump(pw, prefix);
+
+        pw.print(prefix); pw.println("Looper state:");
+        mHandler.getLooper().dump(new PrintWriterPrinter(pw), prefix + "  ");
     }
 }
diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java
index 6ab7090..7aabc15 100644
--- a/services/core/java/com/android/server/wm/DisplayRotation.java
+++ b/services/core/java/com/android/server/wm/DisplayRotation.java
@@ -21,6 +21,7 @@
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 
+import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -30,6 +31,7 @@
 import android.content.res.Resources;
 import android.database.ContentObserver;
 import android.hardware.power.V1_0.PowerHint;
+import android.net.Uri;
 import android.os.Handler;
 import android.os.SystemProperties;
 import android.os.UserHandle;
@@ -57,6 +59,7 @@
     private final WindowManagerService mService;
     private final DisplayContent mDisplayContent;
     private final DisplayPolicy mDisplayPolicy;
+    private final DisplayWindowSettings mDisplayWindowSettings;
     private final Context mContext;
     private final Object mLock;
 
@@ -71,10 +74,6 @@
     private StatusBarManagerInternal mStatusBarManagerInternal;
     private SettingsObserver mSettingsObserver;
 
-    // Default display does not rotate, apps that require non-default orientation will have to
-    // have the orientation emulated.
-    private boolean mForceDefaultOrientation;
-
     private int mCurrentAppOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
 
     @VisibleForTesting
@@ -93,6 +92,13 @@
     private int mUserRotationMode = WindowManagerPolicy.USER_ROTATION_FREE;
     private int mUserRotation = Surface.ROTATION_0;
 
+    /**
+     * A flag to indicate if the display rotation should be fixed to user specified rotation
+     * regardless of all other states (including app requrested orientation). {@code true} the
+     * display rotation should be fixed to user specified rotation, {@code false} otherwise.
+     */
+    private boolean mFixedToUserRotation;
+
     private int mDemoHdmiRotation;
     private int mDemoRotation;
     private boolean mDemoHdmiRotationLock;
@@ -100,15 +106,17 @@
 
     DisplayRotation(WindowManagerService service, DisplayContent displayContent) {
         this(service, displayContent, displayContent.getDisplayPolicy(),
-                service.mContext, service.getWindowManagerLock());
+                service.mDisplayWindowSettings, service.mContext, service.getWindowManagerLock());
     }
 
     @VisibleForTesting
     DisplayRotation(WindowManagerService service, DisplayContent displayContent,
-            DisplayPolicy displayPolicy, Context context, Object lock) {
+            DisplayPolicy displayPolicy, DisplayWindowSettings displayWindowSettings,
+            Context context, Object lock) {
         mService = service;
         mDisplayContent = displayContent;
         mDisplayPolicy = displayPolicy;
+        mDisplayWindowSettings = displayWindowSettings;
         mContext = context;
         mLock = lock;
         isDefaultDisplay = displayContent.isDefaultDisplay;
@@ -204,12 +212,19 @@
         // so if the orientation is forced, we need to respect that no matter what.
         final boolean isTv = mContext.getPackageManager().hasSystemFeature(
                 PackageManager.FEATURE_LEANBACK);
-        mForceDefaultOrientation = ((longSizeDp >= 960 && shortSizeDp >= 720) || isCar || isTv) &&
-                res.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation) &&
-                // For debug purposes the next line turns this feature off with:
-                // $ adb shell setprop config.override_forced_orient true
-                // $ adb shell wm size reset
-                !"true".equals(SystemProperties.get("config.override_forced_orient"));
+        final boolean forceDefaultOrientationInRes =
+                res.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation);
+        final boolean forceDefaultOrienation =
+                ((longSizeDp >= 960 && shortSizeDp >= 720) || isCar || isTv)
+                        && forceDefaultOrientationInRes
+                        // For debug purposes the next line turns this feature off with:
+                        // $ adb shell setprop config.override_forced_orient true
+                        // $ adb shell wm size reset
+                        && !"true".equals(SystemProperties.get("config.override_forced_orient"));
+        // Configuration says we force to use the default orientation. We can fall back to fix
+        // rotation to only user rotation. As long as OEM doesn't change user rotation then the
+        // rotation of this display is effectively stuck at 0 deg.
+        setFixedToUserRotation(forceDefaultOrienation);
     }
 
     void setRotation(int rotation) {
@@ -227,7 +242,14 @@
         }
     }
 
-    void restoreUserRotation(int userRotationMode, int userRotation) {
+    void restoreSettings(int userRotationMode, int userRotation,
+            boolean fixedToUserRotation) {
+        mFixedToUserRotation = fixedToUserRotation;
+
+        // We will retrieve user rotation and user rotation mode from settings for default display.
+        if (isDefaultDisplay) {
+            return;
+        }
         if (userRotationMode != WindowManagerPolicy.USER_ROTATION_FREE
                 && userRotationMode != WindowManagerPolicy.USER_ROTATION_LOCKED) {
             Slog.w(TAG, "Trying to restore an invalid user rotation mode " + userRotationMode
@@ -243,6 +265,18 @@
         mUserRotation = userRotation;
     }
 
+    void setFixedToUserRotation(boolean fixedToUserRotation) {
+        if (mFixedToUserRotation == fixedToUserRotation) {
+            return;
+        }
+
+        mFixedToUserRotation = fixedToUserRotation;
+        mDisplayWindowSettings.setFixedToUserRotation(mDisplayContent,
+                fixedToUserRotation);
+        mService.updateRotation(true /* alwaysSendConfiguration */,
+                false /* forceRelayout */);
+    }
+
     private void setUserRotation(int userRotationMode, int userRotation) {
         if (isDefaultDisplay) {
             // We'll be notified via settings listener, so we don't need to update internal values.
@@ -265,7 +299,7 @@
             mUserRotation = userRotation;
             changed = true;
         }
-        mService.mDisplayWindowSettings.setUserRotation(mDisplayContent, userRotationMode,
+        mDisplayWindowSettings.setUserRotation(mDisplayContent, userRotationMode,
                 userRotation);
         if (changed) {
             mService.updateRotation(true /* alwaysSendConfiguration */,
@@ -291,9 +325,8 @@
                 Settings.System.ACCELEROMETER_ROTATION, 0, UserHandle.USER_CURRENT) == 0;
     }
 
-    /** @return true if com.android.internal.R.bool#config_forceDefaultOrientation is true. */
-    boolean isDefaultOrientationForced() {
-        return mForceDefaultOrientation;
+    boolean isFixedToUserRotation() {
+        return mFixedToUserRotation;
     }
 
     public int getLandscapeRotation() {
@@ -399,6 +432,12 @@
      * screen is switched off.
      */
     private boolean needSensorRunning() {
+        if (mFixedToUserRotation) {
+            // We are sure we only respect user rotation settings, so we are sure we will not
+            // support sensor rotation.
+            return false;
+        }
+
         if (mSupportAutoRotation) {
             if (mCurrentAppOrientation == ActivityInfo.SCREEN_ORIENTATION_SENSOR
                     || mCurrentAppOrientation == ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR
@@ -459,8 +498,8 @@
                         );
         }
 
-        if (mForceDefaultOrientation) {
-            return Surface.ROTATION_0;
+        if (mFixedToUserRotation) {
+            return mUserRotation;
         }
 
         int sensorRotation = mOrientationListener != null
@@ -701,8 +740,8 @@
         // demo, hdmi, vr, etc mode.
 
         // Determine if the rotation is currently forced.
-        if (mForceDefaultOrientation) {
-            return false; // Rotation is forced to default orientation.
+        if (mFixedToUserRotation) {
+            return false; // Rotation is forced to user settings.
         }
 
         final int lidState = mDisplayPolicy.getLidState();
@@ -844,9 +883,9 @@
         pw.print(prefix + "  mPortraitRotation=" + Surface.rotationToString(mPortraitRotation));
         pw.println(" mUpsideDownRotation=" + Surface.rotationToString(mUpsideDownRotation));
 
-        pw.print(prefix + "  mSupportAutoRotation=" + mSupportAutoRotation);
+        pw.println(prefix + "  mSupportAutoRotation=" + mSupportAutoRotation);
         if (mOrientationListener != null) {
-            pw.print(" mOrientationSensorEnabled=" + mOrientationListener.mEnabled);
+            mOrientationListener.dump(pw, prefix + "  ");
         }
         pw.println();
 
@@ -861,6 +900,7 @@
         pw.print(" mDemoHdmiRotationLock=" + mDemoHdmiRotationLock);
         pw.println(" mUndockedHdmiRotation=" + Surface.rotationToString(mUndockedHdmiRotation));
         pw.println(prefix + "  mLidOpenRotation=" + Surface.rotationToString(mLidOpenRotation));
+        pw.println(prefix + "  mFixedToUserRotation=" + mFixedToUserRotation);
     }
 
     private class OrientationListener extends WindowOrientationListener {
@@ -945,4 +985,10 @@
             }
         }
     }
+
+    @VisibleForTesting
+    interface ContentObserverRegister {
+        void registerContentObserver(Uri uri, boolean notifyForDescendants,
+                ContentObserver observer, @UserIdInt int userHandle);
+    }
 }
diff --git a/services/core/java/com/android/server/wm/DisplayWindowController.java b/services/core/java/com/android/server/wm/DisplayWindowController.java
index 864f7e1..55b3def 100644
--- a/services/core/java/com/android/server/wm/DisplayWindowController.java
+++ b/services/core/java/com/android/server/wm/DisplayWindowController.java
@@ -90,7 +90,7 @@
     public void onOverrideConfigurationChanged(Configuration overrideConfiguration) {
         synchronized (mGlobalLock) {
             if (mContainer != null) {
-                mContainer.mService.setNewDisplayOverrideConfiguration(overrideConfiguration,
+                mContainer.mWmService.setNewDisplayOverrideConfiguration(overrideConfiguration,
                         mContainer);
             }
         }
diff --git a/services/core/java/com/android/server/wm/DisplayWindowSettings.java b/services/core/java/com/android/server/wm/DisplayWindowSettings.java
index f7dfd3f..45d77de 100644
--- a/services/core/java/com/android/server/wm/DisplayWindowSettings.java
+++ b/services/core/java/com/android/server/wm/DisplayWindowSettings.java
@@ -80,6 +80,7 @@
         private boolean mShouldShowWithInsecureKeyguard = false;
         private boolean mShouldShowSystemDecors = false;
         private boolean mShouldShowIme = false;
+        private boolean mFixedToUserRotation;
 
         private Entry(String name) {
             mName = name;
@@ -97,7 +98,8 @@
                     && mRemoveContentMode == REMOVE_CONTENT_MODE_UNDEFINED
                     && !mShouldShowWithInsecureKeyguard
                     && !mShouldShowSystemDecors
-                    && !mShouldShowIme;
+                    && !mShouldShowIme
+                    && !mFixedToUserRotation;
         }
     }
 
@@ -186,6 +188,13 @@
         writeSettingsIfNeeded(entry, displayInfo);
     }
 
+    void setFixedToUserRotation(DisplayContent displayContent, boolean fixedToUserRotation) {
+        final DisplayInfo displayInfo = displayContent.getDisplayInfo();
+        final Entry entry = getOrCreateEntry(displayInfo);
+        entry.mFixedToUserRotation = fixedToUserRotation;
+        writeSettingsIfNeeded(entry, displayInfo);
+    }
+
     private int getWindowingModeLocked(Entry entry, int displayId) {
         int windowingMode = entry != null ? entry.mWindowingMode
                 : WindowConfiguration.WINDOWING_MODE_UNDEFINED;
@@ -331,7 +340,8 @@
         displayInfo.overscanRight = entry.mOverscanRight;
         displayInfo.overscanBottom = entry.mOverscanBottom;
 
-        dc.getDisplayRotation().restoreUserRotation(entry.mUserRotationMode, entry.mUserRotation);
+        dc.getDisplayRotation().restoreSettings(entry.mUserRotationMode,
+                entry.mUserRotation, entry.mFixedToUserRotation);
 
         if (entry.mForcedDensity != 0) {
             dc.mBaseDisplayDensity = entry.mForcedDensity;
@@ -458,6 +468,8 @@
                     "shouldShowWithInsecureKeyguard");
             entry.mShouldShowSystemDecors = getBooleanAttribute(parser, "shouldShowSystemDecors");
             entry.mShouldShowIme = getBooleanAttribute(parser, "shouldShowIme");
+            entry.mFixedToUserRotation = getBooleanAttribute(parser,
+                    "fixedToUserRotation");
             mEntries.put(name, entry);
         }
         XmlUtils.skipCurrentTag(parser);
@@ -541,6 +553,10 @@
                 if (entry.mShouldShowIme) {
                     out.attribute(null, "shouldShowIme", Boolean.toString(entry.mShouldShowIme));
                 }
+                if (entry.mFixedToUserRotation) {
+                    out.attribute(null, "fixedToUserRotation",
+                            Boolean.toString(entry.mFixedToUserRotation));
+                }
                 out.endTag(null, "display");
             }
 
diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java
index 6daf2f5..7ea88bb 100644
--- a/services/core/java/com/android/server/wm/DockedStackDividerController.java
+++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java
@@ -28,6 +28,8 @@
 import static android.view.WindowManager.DOCKED_RIGHT;
 import static android.view.WindowManager.DOCKED_TOP;
 import static android.view.WindowManager.TRANSIT_NONE;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_LEFT;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_RIGHT;
 
 import static com.android.server.wm.AppTransition.DEFAULT_APP_TRANSITION_DURATION;
 import static com.android.server.wm.AppTransition.TOUCH_RESPONSE_INTERPOLATOR;
@@ -52,6 +54,7 @@
 import android.view.animation.Interpolator;
 import android.view.animation.PathInterpolator;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.policy.DividerSnapAlgorithm;
 import com.android.internal.policy.DockedDividerUtils;
 import com.android.server.LocalServices;
@@ -184,8 +187,8 @@
                     .calculateNonDismissingSnapTarget(position).position;
             DockedDividerUtils.calculateBoundsForPosition(snappedPosition, dockSide, mTmpRect,
                     mTmpRect2.width(), mTmpRect2.height(), getContentWidth());
-            mService.mPolicy.getStableInsetsLw(rotation, mTmpRect2.width(), mTmpRect2.height(),
-                    displayCutout, mTmpRect3);
+            mDisplayContent.getDisplayPolicy().getStableInsetsLw(rotation, mTmpRect2.width(),
+                    mTmpRect2.height(), displayCutout, mTmpRect3);
             mService.intersectDisplayInsetBounds(mTmpRect2, mTmpRect3, mTmpRect);
             minWidth = Math.min(mTmpRect.width(), minWidth);
         }
@@ -227,32 +230,31 @@
         return DOCKED_INVALID;
     }
 
-    void getHomeStackBoundsInDockedMode(Rect outBounds) {
-        final DisplayInfo di = mDisplayContent.getDisplayInfo();
-        mService.mPolicy.getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
-                di.displayCutout, mTmpRect);
+    void getHomeStackBoundsInDockedMode(Configuration parentConfig, int dockSide, Rect outBounds) {
+        final DisplayCutout displayCutout = mDisplayContent.getDisplayInfo().displayCutout;
+        final int displayWidth = parentConfig.windowConfiguration.getBounds().width();
+        final int displayHeight = parentConfig.windowConfiguration.getBounds().height();
+        mDisplayContent.getDisplayPolicy().getStableInsetsLw(
+                parentConfig.windowConfiguration.getRotation(), displayWidth, displayHeight,
+                displayCutout, mTmpRect);
         int dividerSize = mDividerWindowWidth - 2 * mDividerInsets;
-        Configuration configuration = mDisplayContent.getConfiguration();
         // The offset in the left (landscape)/top (portrait) is calculated with the minimized
         // offset value with the divider size and any system insets in that direction.
-        if (configuration.orientation == Configuration.ORIENTATION_PORTRAIT) {
+        if (parentConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
             outBounds.set(0, mTaskHeightInMinimizedMode + dividerSize + mTmpRect.top,
-                    di.logicalWidth, di.logicalHeight);
+                    displayWidth, displayHeight);
         } else {
-            // In landscape also inset the left/right side with the statusbar height to match the
+            // In landscape also inset the left/right side with the status bar height to match the
             // minimized size height in portrait mode.
-            final TaskStack stack = mDisplayContent.getSplitScreenPrimaryStackIgnoringVisibility();
             final int primaryTaskWidth = mTaskHeightInMinimizedMode + dividerSize + mTmpRect.top;
             int left = mTmpRect.left;
-            int right = di.logicalWidth - mTmpRect.right;
-            if (stack != null) {
-                if (stack.getDockSide() == DOCKED_LEFT) {
-                    left += primaryTaskWidth;
-                } else if (stack.getDockSide() == DOCKED_RIGHT) {
-                    right -= primaryTaskWidth;
-                }
+            int right = displayWidth - mTmpRect.right;
+            if (dockSide == DOCKED_LEFT) {
+                left += primaryTaskWidth;
+            } else if (dockSide == DOCKED_RIGHT) {
+                right -= primaryTaskWidth;
             }
-            outBounds.set(left, 0, right, di.logicalHeight);
+            outBounds.set(left, 0, right, displayHeight);
         }
     }
 
@@ -280,16 +282,16 @@
                     : mDisplayContent.mBaseDisplayHeight;
             final DisplayCutout displayCutout =
                     mDisplayContent.calculateDisplayCutoutForRotation(rotation).getDisplayCutout();
-            mService.mPolicy.getStableInsetsLw(rotation, dw, dh, displayCutout, mTmpRect);
+            final DisplayPolicy displayPolicy =  mDisplayContent.getDisplayPolicy();
+            displayPolicy.getStableInsetsLw(rotation, dw, dh, displayCutout, mTmpRect);
             config.unset();
             config.orientation = (dw <= dh) ? ORIENTATION_PORTRAIT : ORIENTATION_LANDSCAPE;
 
-            final int displayId = mDisplayContent.getDisplayId();
-            final int appWidth = mService.mPolicy.getNonDecorDisplayWidth(dw, dh, rotation,
-                baseConfig.uiMode, displayId, displayCutout);
-            final int appHeight = mService.mPolicy.getNonDecorDisplayHeight(dw, dh, rotation,
-                baseConfig.uiMode, displayId, displayCutout);
-            mService.mPolicy.getNonDecorInsetsLw(rotation, dw, dh, displayCutout, mTmpRect);
+            final int appWidth = displayPolicy.getNonDecorDisplayWidth(dw, dh, rotation,
+                    baseConfig.uiMode, displayCutout);
+            final int appHeight = displayPolicy.getNonDecorDisplayHeight(dw, dh, rotation,
+                    baseConfig.uiMode, displayCutout);
+            displayPolicy.getNonDecorInsetsLw(rotation, dw, dh, displayCutout, mTmpRect);
             final int leftInset = mTmpRect.left;
             final int topInset = mTmpRect.top;
 
@@ -297,10 +299,10 @@
                     leftInset + appWidth /*right*/, topInset + appHeight /*bottom*/);
 
             final float density = mDisplayContent.getDisplayMetrics().density;
-            config.screenWidthDp = (int) (mService.mPolicy.getConfigDisplayWidth(dw, dh,
-                    rotation, baseConfig.uiMode, displayId, displayCutout) / density);
-            config.screenHeightDp = (int) (mService.mPolicy.getConfigDisplayHeight(dw, dh,
-                    rotation, baseConfig.uiMode, displayId, displayCutout) / density);
+            config.screenWidthDp = (int) (displayPolicy.getConfigDisplayWidth(dw, dh, rotation,
+                    baseConfig.uiMode, displayCutout) / density);
+            config.screenHeightDp = (int) (displayPolicy.getConfigDisplayHeight(dw, dh, rotation,
+                    baseConfig.uiMode, displayCutout) / density);
             final Context rotationContext = mService.mContext.createConfigurationContext(config);
             mSnapAlgorithmForRotation[rotation] = new DividerSnapAlgorithm(
                     rotationContext.getResources(), dw, dh, getContentWidth(),
@@ -466,8 +468,32 @@
      * @return true if the side provided is valid
      */
     boolean canPrimaryStackDockTo(int dockSide, Rect parentRect, int rotation) {
-        return mService.mPolicy.isDockSideAllowed(dockSide, mOriginalDockedSide,
-                parentRect.width(), parentRect.height(), rotation);
+        final DisplayPolicy policy = mDisplayContent.getDisplayPolicy();
+        return isDockSideAllowed(dockSide, mOriginalDockedSide,
+                policy.navigationBarPosition(parentRect.width(), parentRect.height(), rotation),
+                policy.navigationBarCanMove());
+    }
+
+    @VisibleForTesting
+    static boolean isDockSideAllowed(int dockSide, int originalDockSide, int navBarPosition,
+            boolean navigationBarCanMove) {
+        if (dockSide == DOCKED_TOP) {
+            return true;
+        }
+
+        if (navigationBarCanMove) {
+            // Only allow the dockside opposite to the nav bar position in landscape
+            return dockSide == DOCKED_LEFT && navBarPosition == NAV_BAR_RIGHT
+                    || dockSide == DOCKED_RIGHT && navBarPosition == NAV_BAR_LEFT;
+        }
+
+        // Side is the same as original side
+        if (dockSide == originalDockSide) {
+            return true;
+        }
+
+        // Only if original docked side was top in portrait will allow left for landscape
+        return dockSide == DOCKED_LEFT && originalDockSide == DOCKED_TOP;
     }
 
     void notifyDockedStackExistsChanged(boolean exists) {
diff --git a/services/core/java/com/android/server/wm/DragDropController.java b/services/core/java/com/android/server/wm/DragDropController.java
index 7ed078a..a667d67 100644
--- a/services/core/java/com/android/server/wm/DragDropController.java
+++ b/services/core/java/com/android/server/wm/DragDropController.java
@@ -31,13 +31,12 @@
 import android.view.Display;
 import android.view.IWindow;
 import android.view.SurfaceControl;
-import android.view.SurfaceControl.Transaction;
 import android.view.SurfaceSession;
 import android.view.View;
 
 import com.android.internal.util.Preconditions;
-import android.view.InputWindowHandle;
 import com.android.server.wm.WindowManagerInternal.IDragDropCallback;
+
 import java.util.concurrent.atomic.AtomicReference;
 
 /**
@@ -71,11 +70,18 @@
             new IDragDropCallback() {});
 
     boolean dragDropActiveLocked() {
-        return mDragState != null;
+        return mDragState != null && !mDragState.isClosing();
     }
 
-    InputWindowHandle getInputWindowHandleLocked() {
-        return mDragState.getInputWindowHandle();
+    void showInputSurface(SurfaceControl.Transaction t, int displayId) {
+        mDragState.showInputSurface(t, displayId);
+    }
+
+    void hideInputSurface(SurfaceControl.Transaction t, int displayId) {
+        if (mDragState != null) {
+            // TODO: Are we guaranteed to get here?
+            mDragState.hideInputSurface(t, displayId);
+        }
     }
 
     void registerCallback(IDragDropCallback callback) {
diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java
index a379266..607ee76 100644
--- a/services/core/java/com/android/server/wm/DragState.java
+++ b/services/core/java/com/android/server/wm/DragState.java
@@ -31,23 +31,24 @@
 import android.annotation.Nullable;
 import android.content.ClipData;
 import android.content.ClipDescription;
-import android.content.Context;
 import android.graphics.Point;
+import android.graphics.Rect;
 import android.hardware.input.InputManager;
+import android.os.Binder;
 import android.os.Build;
 import android.os.IBinder;
 import android.os.Process;
 import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.os.IUserManager;
 import android.os.UserManagerInternal;
 import android.util.Slog;
 import android.view.Display;
 import android.view.DragEvent;
+import android.view.InputApplicationHandle;
 import android.view.InputChannel;
 import android.view.InputDevice;
+import android.view.InputWindowHandle;
 import android.view.PointerIcon;
 import android.view.SurfaceControl;
 import android.view.View;
@@ -57,8 +58,6 @@
 
 import com.android.internal.view.IDragAndDropPermissions;
 import com.android.server.LocalServices;
-import android.view.InputApplicationHandle;
-import android.view.InputWindowHandle;
 
 import java.util.ArrayList;
 
@@ -118,6 +117,17 @@
     private final Interpolator mCubicEaseOutInterpolator = new DecelerateInterpolator(1.5f);
     private Point mDisplaySize = new Point();
 
+    // A surface used to catch input events for the drag-and-drop operation.
+    SurfaceControl mInputSurface;
+
+    private final Rect mTmpClipRect = new Rect();
+
+    /**
+     * Whether we are finishing this drag and drop. This starts with {@code false}, and is set to
+     * {@code true} when {@link #closeLocked()} is called.
+     */
+    private boolean mIsClosing;
+
     DragState(WindowManagerService service, DragDropController controller, IBinder token,
             SurfaceControl surface, int flags, IBinder localWin) {
         mService = service;
@@ -127,6 +137,46 @@
         mFlags = flags;
         mLocalWin = localWin;
         mNotifiedWindows = new ArrayList<WindowState>();
+
+    }
+
+    boolean isClosing() {
+        return mIsClosing;
+    }
+
+    void hideInputSurface(SurfaceControl.Transaction t, int displayId) {
+        if (displayId != mDisplayContent.getDisplayId()) {
+            return;
+        }
+
+        if (mInputSurface != null) {
+            t.hide(mInputSurface);
+        }
+    }
+
+    void showInputSurface(SurfaceControl.Transaction t, int displayId) {
+        if (displayId != mDisplayContent.getDisplayId()) {
+            return;
+        }
+
+        if (mInputSurface == null) {
+            mInputSurface = mService.makeSurfaceBuilder(mService.mRoot.getDisplayContent(displayId)
+                    .getSession()).setContainerLayer(true)
+                    .setName("Drag and Drop Input Consumer").build();
+        }
+        final InputWindowHandle h = getInputWindowHandle();
+        if (h == null) {
+            Slog.w(TAG_WM, "Drag is in progress but there is no "
+                    + "drag window handle.");
+            return;
+        }
+
+        t.show(mInputSurface);
+        t.setInputWindowInfo(mInputSurface, h);
+        t.setLayer(mInputSurface, Integer.MAX_VALUE);
+
+        mTmpClipRect.set(0, 0, mDisplaySize.x, mDisplaySize.y);
+        t.setWindowCrop(mInputSurface, mTmpClipRect);
     }
 
     /**
@@ -134,6 +184,7 @@
      * DragDropController#mDragState becomes null.
      */
     void closeLocked() {
+        mIsClosing = true;
         // Unregister the input interceptor.
         if (mInputInterceptor != null) {
             if (DEBUG_DRAG)
@@ -218,7 +269,7 @@
             mInputEventReceiver = new DragInputEventReceiver(mClientChannel,
                     mService.mH.getLooper(), mDragDropController);
 
-            mDragApplicationHandle = new InputApplicationHandle(null);
+            mDragApplicationHandle = new InputApplicationHandle(new Binder());
             mDragApplicationHandle.name = "drag";
             mDragApplicationHandle.dispatchingTimeoutNanos =
                     WindowManagerService.DEFAULT_INPUT_DISPATCHING_TIMEOUT_NANOS;
@@ -226,7 +277,7 @@
             mDragWindowHandle = new InputWindowHandle(mDragApplicationHandle, null,
                     display.getDisplayId());
             mDragWindowHandle.name = "drag";
-            mDragWindowHandle.inputChannel = mServerChannel;
+            mDragWindowHandle.token = mServerChannel.getToken();
             mDragWindowHandle.layer = getDragLayerLocked();
             mDragWindowHandle.layoutParamsFlags = 0;
             mDragWindowHandle.layoutParamsType = WindowManager.LayoutParams.TYPE_DRAG;
diff --git a/services/core/java/com/android/server/wm/EmulatorDisplayOverlay.java b/services/core/java/com/android/server/wm/EmulatorDisplayOverlay.java
index fddf6ca..7cb4a43 100644
--- a/services/core/java/com/android/server/wm/EmulatorDisplayOverlay.java
+++ b/services/core/java/com/android/server/wm/EmulatorDisplayOverlay.java
@@ -16,7 +16,6 @@
 
 package com.android.server.wm;
 
-
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 
@@ -32,7 +31,6 @@
 import android.view.Surface;
 import android.view.Surface.OutOfResourcesException;
 import android.view.SurfaceControl;
-import android.view.SurfaceSession;
 
 class EmulatorDisplayOverlay {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "EmulatorDisplayOverlay" : TAG_WM;
@@ -59,7 +57,7 @@
         try {
             ctrl = dc.makeOverlay()
                     .setName("EmulatorDisplayOverlay")
-                    .setSize(mScreenSize.x, mScreenSize.y)
+                    .setBufferSize(mScreenSize.x, mScreenSize.y)
                     .setFormat(PixelFormat.TRANSLUCENT)
                     .build();
             ctrl.setLayer(zOrder);
diff --git a/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java b/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
similarity index 81%
rename from services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java
rename to services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
index 4aa2446..3d20501 100644
--- a/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java
+++ b/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * 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.
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-package com.android.server.policy;
+package com.android.server.wm;
 
 import static android.app.ActivityManager.LOCK_TASK_MODE_LOCKED;
 import static android.app.ActivityManager.LOCK_TASK_MODE_NONE;
+import static android.view.Display.DEFAULT_DISPLAY;
 
 import android.animation.ArgbEvaluator;
 import android.animation.ValueAnimator;
@@ -32,16 +33,14 @@
 import android.os.Binder;
 import android.os.Handler;
 import android.os.IBinder;
+import android.os.Looper;
 import android.os.Message;
-import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
-import android.service.vr.IVrManager;
-import android.service.vr.IVrStateCallbacks;
 import android.util.DisplayMetrics;
 import android.util.Slog;
+import android.view.Display;
 import android.view.Gravity;
 import android.view.MotionEvent;
 import android.view.View;
@@ -55,7 +54,6 @@
 import android.widget.FrameLayout;
 
 import com.android.internal.R;
-import com.android.server.vr.VrManagerService;
 
 /**
  *  Helper to manage showing/hiding a confirmation prompt when the navigation bar is hidden
@@ -67,30 +65,34 @@
     private static final boolean DEBUG_SHOW_EVERY_TIME = false; // super annoying, use with caution
     private static final String CONFIRMED = "confirmed";
 
+    private static boolean sConfirmed;
+
     private final Context mContext;
     private final H mHandler;
     private final long mShowDelayMs;
     private final long mPanicThresholdMs;
     private final IBinder mWindowToken = new Binder();
 
-    private boolean mConfirmed;
     private ClingWindowView mClingWindow;
     private long mPanicTime;
     private WindowManager mWindowManager;
-    private int mCurrentUserId;
     // Local copy of vr mode enabled state, to avoid calling into VrManager with
     // the lock held.
-    boolean mVrModeEnabled = false;
+    private boolean mVrModeEnabled;
     private int mLockTaskState = LOCK_TASK_MODE_NONE;
 
-    public ImmersiveModeConfirmation(Context context) {
-        mContext = ActivityThread.currentActivityThread().getSystemUiContext();
-        mHandler = new H();
+    ImmersiveModeConfirmation(Context context, Looper looper, boolean vrModeEnabled) {
+        final Display display = context.getDisplay();
+        final Context uiContext = ActivityThread.currentActivityThread().getSystemUiContext();
+        mContext = display.getDisplayId() == DEFAULT_DISPLAY
+                ? uiContext : uiContext.createDisplayContext(display);
+        mHandler = new H(looper);
         mShowDelayMs = getNavBarExitDuration() * 3;
         mPanicThresholdMs = context.getResources()
                 .getInteger(R.integer.config_immersive_mode_confirmation_panic);
         mWindowManager = (WindowManager)
                 mContext.getSystemService(Context.WINDOW_SERVICE);
+        mVrModeEnabled = vrModeEnabled;
     }
 
     private long getNavBarExitDuration() {
@@ -98,57 +100,46 @@
         return exit != null ? exit.getDuration() : 0;
     }
 
-    public void loadSetting(int currentUserId) {
-        mConfirmed = false;
-        mCurrentUserId = currentUserId;
-        if (DEBUG) Slog.d(TAG, String.format("loadSetting() mCurrentUserId=%d", mCurrentUserId));
+    static boolean loadSetting(int currentUserId, Context context) {
+        final boolean wasConfirmed = sConfirmed;
+        sConfirmed = false;
+        if (DEBUG) Slog.d(TAG, String.format("loadSetting() currentUserId=%d", currentUserId));
         String value = null;
         try {
-            value = Settings.Secure.getStringForUser(mContext.getContentResolver(),
+            value = Settings.Secure.getStringForUser(context.getContentResolver(),
                     Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS,
                     UserHandle.USER_CURRENT);
-            mConfirmed = CONFIRMED.equals(value);
-            if (DEBUG) Slog.d(TAG, "Loaded mConfirmed=" + mConfirmed);
+            sConfirmed = CONFIRMED.equals(value);
+            if (DEBUG) Slog.d(TAG, "Loaded sConfirmed=" + sConfirmed);
         } catch (Throwable t) {
             Slog.w(TAG, "Error loading confirmations, value=" + value, t);
         }
+        return sConfirmed != wasConfirmed;
     }
 
-    private void saveSetting() {
+    private static void saveSetting(Context context) {
         if (DEBUG) Slog.d(TAG, "saveSetting()");
         try {
-            final String value = mConfirmed ? CONFIRMED : null;
-            Settings.Secure.putStringForUser(mContext.getContentResolver(),
+            final String value = sConfirmed ? CONFIRMED : null;
+            Settings.Secure.putStringForUser(context.getContentResolver(),
                     Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS,
                     value,
                     UserHandle.USER_CURRENT);
             if (DEBUG) Slog.d(TAG, "Saved value=" + value);
         } catch (Throwable t) {
-            Slog.w(TAG, "Error saving confirmations, mConfirmed=" + mConfirmed, t);
+            Slog.w(TAG, "Error saving confirmations, sConfirmed=" + sConfirmed, t);
         }
     }
 
-    void systemReady() {
-        IVrManager vrManager = IVrManager.Stub.asInterface(
-                ServiceManager.getService(Context.VR_SERVICE));
-        if (vrManager != null) {
-            try {
-                vrManager.registerListener(mVrStateCallbacks);
-                mVrModeEnabled = vrManager.getVrModeState();
-            } catch (RemoteException re) {
-            }
-        }
-    }
-
-    public void immersiveModeChangedLw(String pkg, boolean isImmersiveMode,
+    void immersiveModeChangedLw(String pkg, boolean isImmersiveMode,
             boolean userSetupComplete, boolean navBarEmpty) {
         mHandler.removeMessages(H.SHOW);
         if (isImmersiveMode) {
             final boolean disabled = PolicyControl.disableImmersiveConfirmation(pkg);
-            if (DEBUG) Slog.d(TAG, String.format("immersiveModeChanged() disabled=%s mConfirmed=%s",
-                    disabled, mConfirmed));
+            if (DEBUG) Slog.d(TAG, String.format("immersiveModeChanged() disabled=%s sConfirmed=%s",
+                    disabled, sConfirmed));
             if (!disabled
-                    && (DEBUG_SHOW_EVERY_TIME || !mConfirmed)
+                    && (DEBUG_SHOW_EVERY_TIME || !sConfirmed)
                     && userSetupComplete
                     && !mVrModeEnabled
                     && !navBarEmpty
@@ -161,7 +152,7 @@
         }
     }
 
-    public boolean onPowerKeyDown(boolean isScreenOn, long time, boolean inImmersiveMode,
+    boolean onPowerKeyDown(boolean isScreenOn, long time, boolean inImmersiveMode,
             boolean navBarEmpty) {
         if (!isScreenOn && (time - mPanicTime < mPanicThresholdMs)) {
             // turning the screen back on within the panic threshold
@@ -176,7 +167,7 @@
         return false;
     }
 
-    public void confirmCurrentPrompt() {
+    void confirmCurrentPrompt() {
         if (mClingWindow != null) {
             if (DEBUG) Slog.d(TAG, "confirmCurrentPrompt()");
             mHandler.post(mConfirm);
@@ -191,16 +182,14 @@
         }
     }
 
-    public WindowManager.LayoutParams getClingWindowLayoutParams() {
+    private WindowManager.LayoutParams getClingWindowLayoutParams() {
         final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT,
                 ViewGroup.LayoutParams.MATCH_PARENT,
                 WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL,
-                0
-                        | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
+                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                         | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
-                        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
-                ,
+                        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
                 PixelFormat.TRANSLUCENT);
         lp.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
         lp.setTitle("ImmersiveModeConfirmation");
@@ -209,7 +198,7 @@
         return lp;
     }
 
-    public FrameLayout.LayoutParams getBubbleLayoutParams() {
+    private FrameLayout.LayoutParams getBubbleLayoutParams() {
         return new FrameLayout.LayoutParams(
                 mContext.getResources().getDimensionPixelSize(
                         R.dimen.immersive_mode_cling_width),
@@ -220,7 +209,7 @@
     /**
      * @return the window token that's used by all ImmersiveModeConfirmation windows.
      */
-    public IBinder getWindowToken() {
+    IBinder getWindowToken() {
         return mWindowToken;
     }
 
@@ -272,7 +261,7 @@
             }
         };
 
-        public ClingWindowView(Context context, Runnable confirm) {
+        ClingWindowView(Context context, Runnable confirm) {
             super(context);
             mConfirm = confirm;
             setBackground(mColor);
@@ -295,7 +284,7 @@
             mClingLayout = (ViewGroup)
                     View.inflate(getContext(), R.layout.immersive_mode_cling, null);
 
-            final Button ok = (Button) mClingLayout.findViewById(R.id.ok);
+            final Button ok = mClingLayout.findViewById(R.id.ok);
             ok.setOnClickListener(new OnClickListener() {
                 @Override
                 public void onClick(View v) {
@@ -359,8 +348,7 @@
 
         // we will be hiding the nav bar, so layout as if it's already hidden
         mClingWindow.setSystemUiVisibility(
-                View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
-              | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+                View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
 
         // show the confirmation
         WindowManager.LayoutParams lp = getClingWindowLayoutParams();
@@ -371,9 +359,9 @@
         @Override
         public void run() {
             if (DEBUG) Slog.d(TAG, "mConfirm.run()");
-            if (!mConfirmed) {
-                mConfirmed = true;
-                saveSetting();
+            if (!sConfirmed) {
+                sConfirmed = true;
+                saveSetting(mContext);
             }
             handleHide();
         }
@@ -383,6 +371,10 @@
         private static final int SHOW = 1;
         private static final int HIDE = 2;
 
+        H(Looper looper) {
+            super(looper);
+        }
+
         @Override
         public void handleMessage(Message msg) {
             switch(msg.what) {
@@ -396,16 +388,13 @@
         }
     }
 
-    private final IVrStateCallbacks mVrStateCallbacks = new IVrStateCallbacks.Stub() {
-        @Override
-        public void onVrStateChanged(boolean enabled) throws RemoteException {
-            mVrModeEnabled = enabled;
-            if (mVrModeEnabled) {
-                mHandler.removeMessages(H.SHOW);
-                mHandler.sendEmptyMessage(H.HIDE);
-            }
+    void onVrStateChangedLw(boolean enabled) {
+        mVrModeEnabled = enabled;
+        if (mVrModeEnabled) {
+            mHandler.removeMessages(H.SHOW);
+            mHandler.sendEmptyMessage(H.HIDE);
         }
-    };
+    }
 
     void onLockTaskModeChangedLw(int lockTaskState) {
         mLockTaskState = lockTaskState;
diff --git a/services/core/java/com/android/server/wm/InputConsumerImpl.java b/services/core/java/com/android/server/wm/InputConsumerImpl.java
index 49bedc9..4df5a0b 100644
--- a/services/core/java/com/android/server/wm/InputConsumerImpl.java
+++ b/services/core/java/com/android/server/wm/InputConsumerImpl.java
@@ -16,6 +16,8 @@
 
 package com.android.server.wm;
 
+import android.graphics.Rect;
+import android.os.Binder;
 import android.os.IBinder;
 import android.os.Process;
 import android.os.RemoteException;
@@ -25,6 +27,8 @@
 
 import android.view.InputApplicationHandle;
 import android.view.InputWindowHandle;
+import android.view.SurfaceControl;
+import android.util.Slog;
 
 import java.io.PrintWriter;
 
@@ -39,6 +43,9 @@
     final int mClientPid;
     final UserHandle mClientUser;
 
+    final SurfaceControl mInputSurface;
+    Rect mTmpClipRect = new Rect();
+
     InputConsumerImpl(WindowManagerService service, IBinder token, String name,
             InputChannel inputChannel, int clientPid, UserHandle clientUser, int displayId) {
         mService = service;
@@ -58,14 +65,14 @@
         }
         mService.mInputManager.registerInputChannel(mServerChannel, null);
 
-        mApplicationHandle = new InputApplicationHandle(null);
+        mApplicationHandle = new InputApplicationHandle(new Binder());
         mApplicationHandle.name = name;
         mApplicationHandle.dispatchingTimeoutNanos =
                 WindowManagerService.DEFAULT_INPUT_DISPATCHING_TIMEOUT_NANOS;
 
         mWindowHandle = new InputWindowHandle(mApplicationHandle, null, displayId);
         mWindowHandle.name = name;
-        mWindowHandle.inputChannel = mServerChannel;
+        mWindowHandle.token = mServerChannel.getToken();
         mWindowHandle.layoutParamsType = WindowManager.LayoutParams.TYPE_INPUT_CONSUMER;
         mWindowHandle.layer = getLayerLw(mWindowHandle.layoutParamsType);
         mWindowHandle.layoutParamsFlags = 0;
@@ -80,6 +87,10 @@
         mWindowHandle.ownerUid = Process.myUid();
         mWindowHandle.inputFeatures = 0;
         mWindowHandle.scaleFactor = 1.0f;
+
+        mInputSurface = mService.makeSurfaceBuilder(mService.mRoot.getDisplayContent(displayId)
+                .getSession()).setContainerLayer(true).setName("Input Consumer " + name)
+                .build();
     }
 
     void linkToDeathRecipient() {
@@ -102,12 +113,33 @@
         mToken.unlinkToDeath(this, 0);
     }
 
-    void layout(int dw, int dh) {
-        mWindowHandle.touchableRegion.set(0, 0, dw, dh);
-        mWindowHandle.frameLeft = 0;
-        mWindowHandle.frameTop = 0;
-        mWindowHandle.frameRight = dw;
-        mWindowHandle.frameBottom = dh;
+    void layout(SurfaceControl.Transaction t, int dw, int dh) {
+        t.setPosition(mInputSurface, 0, 0);
+
+        mTmpClipRect.set(0, 0, dw, dh);
+        t.setWindowCrop(mInputSurface, mTmpClipRect);
+    }
+
+    void layout(SurfaceControl.Transaction t, Rect r) {
+        t.setPosition(mInputSurface, r.left, r.top);
+        mTmpClipRect.set(0, 0, r.width(), r.height());
+        t.setWindowCrop(mInputSurface, mTmpClipRect);
+    }
+
+    void hide(SurfaceControl.Transaction t) {
+        t.hide(mInputSurface);
+    }
+
+    void show(SurfaceControl.Transaction t, WindowState w) {
+        t.show(mInputSurface);
+        t.setInputWindowInfo(mInputSurface, mWindowHandle);
+        t.setRelativeLayer(mInputSurface, w.getSurfaceControl(), 1);
+    }
+
+    void show(SurfaceControl.Transaction t, int layer) {
+        t.show(mInputSurface);
+        t.setInputWindowInfo(mInputSurface, mWindowHandle);
+        t.setLayer(mInputSurface, layer);
     }
 
     private int getLayerLw(int windowType) {
diff --git a/services/core/java/com/android/server/wm/InputManagerCallback.java b/services/core/java/com/android/server/wm/InputManagerCallback.java
index 92ea1a9..639ed02 100644
--- a/services/core/java/com/android/server/wm/InputManagerCallback.java
+++ b/services/core/java/com/android/server/wm/InputManagerCallback.java
@@ -6,21 +6,16 @@
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 
-import android.app.ActivityManager;
 import android.os.Debug;
 import android.os.IBinder;
-import android.os.RemoteException;
 import android.util.Slog;
+import android.view.InputApplicationHandle;
 import android.view.KeyEvent;
 import android.view.WindowManager;
 
-import android.view.InputApplicationHandle;
 import com.android.server.input.InputManagerService;
-import android.view.InputWindowHandle;
-import android.view.InputChannel;
 
 import java.io.PrintWriter;
-import java.util.HashMap;
 
 final class InputManagerCallback implements InputManagerService.WindowManagerCallbacks {
     private final WindowManagerService mService;
@@ -72,8 +67,7 @@
      * Called by the InputManager.
      */
     @Override
-    public long notifyANR(InputApplicationHandle inputApplicationHandle,
-            IBinder token, String reason) {
+    public long notifyANR(IBinder token, String reason) {
         AppWindowToken appWindowToken = null;
         WindowState windowState = null;
         boolean aboveSystem = false;
@@ -84,9 +78,6 @@
                     appWindowToken = windowState.mAppToken;
                 }
             }
-            if (appWindowToken == null && inputApplicationHandle != null) {
-                appWindowToken = (AppWindowToken)inputApplicationHandle.appWindowToken;
-            }
 
             if (windowState != null) {
                 Slog.i(TAG_WM, "Input event dispatching timed out "
@@ -116,9 +107,7 @@
         if (appWindowToken != null && appWindowToken.appToken != null) {
             // Notify the activity manager about the timeout and let it decide whether
             // to abort dispatching or keep waiting.
-            final AppWindowContainerController controller = appWindowToken.getController();
-            final boolean abort = controller != null
-                    && controller.keyDispatchingTimedOut(reason,
+            final boolean abort = appWindowToken.keyDispatchingTimedOut(reason,
                     (windowState != null) ? windowState.mSession.mPid : -1);
             if (!abort) {
                 // The activity manager declined to abort dispatching.
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index 61bc4e4..88b22cb 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -40,14 +40,12 @@
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.Slog;
+import android.view.InputApplicationHandle;
 import android.view.InputChannel;
 import android.view.InputEventReceiver;
-import android.view.KeyEvent;
-import android.view.WindowManager;
-import android.view.InputApplicationHandle;
 import android.view.InputWindowHandle;
+import android.view.SurfaceControl;
 
-import com.android.server.input.InputManagerService;
 import com.android.server.policy.WindowManagerPolicy;
 
 import java.io.PrintWriter;
@@ -64,9 +62,8 @@
     // When true, need to call updateInputWindowsLw().
     private boolean mUpdateInputWindowsNeeded = true;
 
-    // Array of window handles to provide to the input dispatcher.
-    private InputWindowHandle[] mInputWindowHandles;
-    private int mInputWindowHandleCount;
+    // Currently focused input window handle.
+    private InputWindowHandle mFocusedInputWindowHandle;
 
     private boolean mDisableWallpaperTouchEvents;
     private final Rect mTmpRect = new Rect();
@@ -75,6 +72,8 @@
 
     private int mDisplayId;
 
+    SurfaceControl.Transaction mInputTransaction = new SurfaceControl.Transaction();
+
     /**
      * The set of input consumer added to the window manager by name, which consumes input events
      * for the windows below it.
@@ -129,6 +128,7 @@
     private boolean disposeInputConsumer(InputConsumerImpl consumer) {
         if (consumer != null) {
             consumer.disposeChannelsLw();
+            consumer.hide(mInputTransaction);
             return true;
         }
         return false;
@@ -140,7 +140,16 @@
 
     void layoutInputConsumers(int dw, int dh) {
         for (int i = mInputConsumers.size() - 1; i >= 0; i--) {
-            mInputConsumers.valueAt(i).layout(dw, dh);
+            mInputConsumers.valueAt(i).layout(mInputTransaction, dw, dh);
+        }
+    }
+
+    // The visibility of the input consumers is recomputed each time we
+    // update the input windows. We use a model where consumers begin invisible
+    // (set so by this function) and must meet some condition for visibility on each update.
+    void resetInputConsumers(SurfaceControl.Transaction t) {
+        for (int i = mInputConsumers.size() - 1; i >= 0; i--) {
+            mInputConsumers.valueAt(i).hide(t);
         }
     }
 
@@ -180,18 +189,7 @@
     }
 
 
-    private void addInputWindowHandle(final InputWindowHandle windowHandle) {
-        if (mInputWindowHandles == null) {
-            mInputWindowHandles = new InputWindowHandle[16];
-        }
-        if (mInputWindowHandleCount >= mInputWindowHandles.length) {
-            mInputWindowHandles = Arrays.copyOf(mInputWindowHandles,
-                    mInputWindowHandleCount * 2);
-        }
-        mInputWindowHandles[mInputWindowHandleCount++] = windowHandle;
-    }
-
-    void addInputWindowHandle(final InputWindowHandle inputWindowHandle,
+    void populateInputWindowHandle(final InputWindowHandle inputWindowHandle,
             final WindowState child, int flags, final int type, final boolean isVisible,
             final boolean hasFocus, final boolean hasWallpaper) {
         // Add a window to our list of input windows.
@@ -217,6 +215,11 @@
         inputWindowHandle.frameRight = frame.right;
         inputWindowHandle.frameBottom = frame.bottom;
 
+        // Surface insets are hardcoded to be the same in all directions
+        // and we could probably deprecate the "left/right/top/bottom" concept.
+        // we avoid reintroducing this concept by just choosing one of them here.
+        inputWindowHandle.surfaceInset = child.getAttrs().surfaceInsets.left;
+
         if (child.mGlobalScale != 1) {
             // If we are scaling the window, input coordinates need
             // to be inversely scaled to map from what is on screen
@@ -230,12 +233,9 @@
             Slog.d(TAG_WM, "addInputWindowHandle: "
                     + child + ", " + inputWindowHandle);
         }
-        addInputWindowHandle(inputWindowHandle);
-    }
 
-    private void clearInputWindowHandlesLw() {
-        while (mInputWindowHandleCount != 0) {
-            mInputWindowHandles[--mInputWindowHandleCount] = null;
+        if (hasFocus) {
+            mFocusedInputWindowHandle = inputWindowHandle;
         }
     }
 
@@ -264,14 +264,9 @@
             if (DEBUG_DRAG) {
                 Log.d(TAG_WM, "Inserting drag window");
             }
-            final InputWindowHandle dragWindowHandle =
-                    mService.mDragDropController.getInputWindowHandleLocked();
-            if (dragWindowHandle == null) {
-                Slog.w(TAG_WM, "Drag is in progress but there is no "
-                        + "drag window handle.");
-            } else if (dragWindowHandle.displayId == mDisplayId) {
-                addInputWindowHandle(dragWindowHandle);
-            }
+            mService.mDragDropController.showInputSurface(mInputTransaction, mDisplayId);
+        } else {
+            mService.mDragDropController.hideInputSurface(mInputTransaction, mDisplayId);
         }
 
         final boolean inPositioning = mService.mTaskPositioningController.isPositioningLocked();
@@ -279,14 +274,9 @@
             if (DEBUG_TASK_POSITIONING) {
                 Log.d(TAG_WM, "Inserting window handle for repositioning");
             }
-            final InputWindowHandle dragWindowHandle =
-                    mService.mTaskPositioningController.getDragWindowHandleLocked();
-            if (dragWindowHandle == null) {
-                Slog.e(TAG_WM,
-                        "Repositioning is in progress but there is no drag window handle.");
-            } else if (dragWindowHandle.displayId == mDisplayId) {
-                addInputWindowHandle(dragWindowHandle);
-            }
+            mService.mTaskPositioningController.showInputSurface(mInputTransaction, mDisplayId);
+        } else {
+            mService.mTaskPositioningController.hideInputSurface(mInputTransaction, mDisplayId);
         }
 
         // Add all windows on the default display.
@@ -365,12 +355,6 @@
         }
     }
 
-    void onRemoved() {
-        // If DisplayContent removed, we need find a way to remove window handles of this display
-        // from InputDispatcher, so pass an empty InputWindowHandles to remove them.
-        mService.mInputManager.setInputWindows(mInputWindowHandles, mDisplayId);
-    }
-
     private final class UpdateInputForAllWindowsConsumer implements Consumer<WindowState> {
         InputConsumerImpl navInputConsumer;
         InputConsumerImpl pipInputConsumer;
@@ -401,19 +385,19 @@
             mTmpRect.setEmpty();
             mDisableWallpaperTouchEvents = false;
             this.inDrag = inDrag;
-            wallpaperController = mService.mRoot.mWallpaperController;
+            final DisplayContent dc = mService.mRoot.getDisplayContent(mDisplayId);
+            wallpaperController = dc.mWallpaperController;
 
-            mService.mRoot.getDisplayContent(mDisplayId).forAllWindows(this,
+            resetInputConsumers(mInputTransaction);
+
+            dc.forAllWindows(this,
                     true /* traverseTopToBottom */);
+
             if (mAddWallpaperInputConsumerHandle) {
-                // No visible wallpaper found, add the wallpaper input consumer at the end.
-                addInputWindowHandle(wallpaperInputConsumer.mWindowHandle);
+                wallpaperInputConsumer.show(mInputTransaction, 0);
             }
 
-            // Send windows to native code.
-            mService.mInputManager.setInputWindows(mInputWindowHandles, mDisplayId);
-
-            clearInputWindowHandlesLw();
+            mInputTransaction.apply();
 
             Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);
         }
@@ -423,7 +407,7 @@
             final InputChannel inputChannel = w.mInputChannel;
             final InputWindowHandle inputWindowHandle = w.mInputWindowHandle;
             if (inputChannel == null || inputWindowHandle == null || w.mRemoved
-                    || w.canReceiveTouchInput()) {
+                    || w.cantReceiveTouchInput()) {
                 // Skip this window because it cannot possibly receive input.
                 return;
             }
@@ -441,41 +425,36 @@
                         && recentsAnimationController.shouldApplyInputConsumer(w.mAppToken)) {
                     if (recentsAnimationController.updateInputConsumerForApp(
                             recentsAnimationInputConsumer.mWindowHandle, hasFocus)) {
-                        addInputWindowHandle(recentsAnimationInputConsumer.mWindowHandle);
+                        recentsAnimationInputConsumer.show(mInputTransaction, w);
                         mAddRecentsAnimationInputConsumerHandle = false;
                     }
-                    // If the target app window does not yet exist, then we don't add the input
-                    // consumer window, but also don't add the app window below.
-                    return;
                 }
             }
 
             if (w.inPinnedWindowingMode()) {
-                if (mAddPipInputConsumerHandle
-                        && (inputWindowHandle.layer <= pipInputConsumer.mWindowHandle.layer)) {
+                if (mAddPipInputConsumerHandle) {
                     // Update the bounds of the Pip input consumer to match the window bounds.
                     w.getBounds(mTmpRect);
+                    pipInputConsumer.layout(mInputTransaction, mTmpRect);
+
+                    // The touchable region is relative to the surface top-left
+                    mTmpRect.offsetTo(0, 0);
                     pipInputConsumer.mWindowHandle.touchableRegion.set(mTmpRect);
-                    addInputWindowHandle(pipInputConsumer.mWindowHandle);
+                    pipInputConsumer.show(mInputTransaction, w);
                     mAddPipInputConsumerHandle = false;
                 }
-                // TODO: Fix w.canReceiveTouchInput() to handle this case
-                if (!hasFocus) {
-                    // Skip this pinned stack window if it does not have focus
-                    return;
-                }
             }
 
             if (mAddInputConsumerHandle
                     && inputWindowHandle.layer <= navInputConsumer.mWindowHandle.layer) {
-                addInputWindowHandle(navInputConsumer.mWindowHandle);
+                navInputConsumer.show(mInputTransaction, w);
                 mAddInputConsumerHandle = false;
             }
 
             if (mAddWallpaperInputConsumerHandle) {
                 if (w.mAttrs.type == TYPE_WALLPAPER && w.isVisibleLw()) {
                     // Add the wallpaper input consumer above the first visible wallpaper.
-                    addInputWindowHandle(wallpaperInputConsumer.mWindowHandle);
+                    wallpaperInputConsumer.show(mInputTransaction, w);
                     mAddWallpaperInputConsumerHandle = false;
                 }
             }
@@ -493,8 +472,13 @@
                 mService.mDragDropController.sendDragStartedIfNeededLocked(w);
             }
 
-            addInputWindowHandle(
+            populateInputWindowHandle(
                     inputWindowHandle, w, flags, type, isVisible, hasFocus, hasWallpaper);
+
+            if (w.mWinAnimator.hasSurface()) {
+                mInputTransaction.setInputWindowInfo(
+                        w.mWinAnimator.mSurfaceController.mSurfaceControl, inputWindowHandle);
+            }
         }
     }
 }
diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
new file mode 100644
index 0000000..282838f
--- /dev/null
+++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
@@ -0,0 +1,179 @@
+/*
+ * 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.server.wm;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.graphics.Point;
+import android.graphics.Rect;
+import android.util.proto.ProtoOutputStream;
+import android.view.SurfaceControl;
+import android.view.SurfaceControl.Transaction;
+import android.view.InsetsSource;
+import android.view.InsetsSourceControl;
+
+import com.android.internal.util.function.TriConsumer;
+import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
+
+import java.io.PrintWriter;
+
+/**
+ * Controller for a specific inset source on the server. It's called provider as it provides the
+ * {@link InsetsSource} to the client that uses it in {@link InsetsSourceConsumer}.
+ */
+class InsetsSourceProvider {
+
+    private final Rect mTmpRect = new Rect();
+    private final @NonNull InsetsSource mSource;
+    private final DisplayContent mDisplayContent;
+    private final InsetsStateController mStateController;
+    private @Nullable InsetsSourceControl mControl;
+    private @Nullable WindowState mControllingWin;
+    private @Nullable ControlAdapter mAdapter;
+    private WindowState mWin;
+    private TriConsumer<DisplayFrames, WindowState, Rect> mFrameProvider;
+
+    InsetsSourceProvider(InsetsSource source, InsetsStateController stateController,
+            DisplayContent displayContent) {
+        mSource = source;
+        mDisplayContent = displayContent;
+        mStateController = stateController;
+    }
+
+    InsetsSource getSource() {
+        return mSource;
+    }
+
+    /**
+     * Updates the window that currently backs this source.
+     *
+     * @param win The window that links to this source.
+     * @param frameProvider Based on display frame state and the window, calculates the resulting
+     *                      frame that should be reported to clients.
+     */
+    void setWindow(@Nullable WindowState win,
+            @Nullable TriConsumer<DisplayFrames, WindowState, Rect> frameProvider) {
+        if (mWin != null) {
+            mWin.setInsetProvider(null);
+        }
+        mWin = win;
+        mFrameProvider = frameProvider;
+        if (win == null) {
+            mSource.setVisible(false);
+            mSource.setFrame(new Rect());
+        } else {
+            mSource.setVisible(true);
+            mWin.setInsetProvider(this);
+        }
+    }
+
+    /**
+     * Called when a layout pass has occurred.
+     */
+    void onPostLayout() {
+        if (mWin == null) {
+            return;
+        }
+
+        mTmpRect.set(mWin.getFrameLw());
+        if (mFrameProvider != null) {
+            mFrameProvider.accept(mWin.getDisplayContent().mDisplayFrames, mWin, mTmpRect);
+        } else {
+            mTmpRect.inset(mWin.mGivenContentInsets);
+        }
+        mSource.setFrame(mTmpRect);
+        mSource.setVisible(mWin.isVisible() && !mWin.mGivenInsetsPending);
+
+    }
+
+    void updateControlForTarget(@Nullable WindowState target) {
+        if (target == mControllingWin) {
+            return;
+        }
+        if (target == null) {
+            revokeControl();
+            return;
+        }
+        mAdapter = new ControlAdapter();
+        mWin.startAnimation(mDisplayContent.getPendingTransaction(), mAdapter,
+                false /* TODO hidden */);
+        mControllingWin = target;
+        mControl = new InsetsSourceControl(mSource.getType(), mAdapter.mCapturedLeash);
+    }
+
+    InsetsSourceControl getControl() {
+        return mControl;
+    }
+
+    void revokeControl() {
+        if (mControllingWin != null) {
+
+            // Cancelling the animation will invoke onAnimationCancelled, resetting all the fields.
+            mWin.cancelAnimation();
+        }
+    }
+
+    private class ControlAdapter implements AnimationAdapter {
+
+        private SurfaceControl mCapturedLeash;
+
+        @Override
+        public boolean getShowWallpaper() {
+            return false;
+        }
+
+        @Override
+        public int getBackgroundColor() {
+            return 0;
+        }
+
+        @Override
+        public void startAnimation(SurfaceControl animationLeash, Transaction t,
+                OnAnimationFinishedCallback finishCallback) {
+            mCapturedLeash = animationLeash;
+            t.setPosition(mCapturedLeash, mSource.getFrame().left, mSource.getFrame().top);
+        }
+
+        @Override
+        public void onAnimationCancelled(SurfaceControl animationLeash) {
+            if (mAdapter == this) {
+                mStateController.notifyControlRevoked(mControllingWin, InsetsSourceProvider.this);
+                mControl = null;
+                mControllingWin = null;
+                mAdapter = null;
+            }
+        }
+
+        @Override
+        public long getDurationHint() {
+            return 0;
+        }
+
+        @Override
+        public long getStatusBarTransitionsStartTime() {
+            return 0;
+        }
+
+        @Override
+        public void dump(PrintWriter pw, String prefix) {
+        }
+
+        @Override
+        public void writeToProto(ProtoOutputStream proto) {
+        }
+    };
+}
diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java
new file mode 100644
index 0000000..592b7fb
--- /dev/null
+++ b/services/core/java/com/android/server/wm/InsetsStateController.java
@@ -0,0 +1,206 @@
+/*
+ * 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.server.wm;
+
+import static android.view.InsetsState.TYPE_IME;
+import static android.view.InsetsState.TYPE_NAVIGATION_BAR;
+import static android.view.InsetsState.TYPE_TOP_BAR;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import android.util.SparseArray;
+import android.view.InsetsSourceControl;
+import android.view.InsetsState;
+import android.view.ViewRootImpl;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.function.Consumer;
+
+/**
+ * Manages global window inset state in the system represented by {@link InsetsState}.
+ */
+class InsetsStateController {
+
+    private final InsetsState mLastState = new InsetsState();
+    private final InsetsState mState = new InsetsState();
+    private final DisplayContent mDisplayContent;
+
+    private final ArrayMap<Integer, InsetsSourceProvider> mControllers = new ArrayMap<>();
+    private final ArrayMap<WindowState, ArrayList<Integer>> mWinControlTypeMap = new ArrayMap<>();
+    private final SparseArray<WindowState> mTypeWinControlMap = new SparseArray<>();
+    private final ArraySet<WindowState> mPendingControlChanged = new ArraySet<>();
+
+    private final Consumer<WindowState> mDispatchInsetsChanged = w -> {
+        if (w.isVisible()) {
+            w.notifyInsetsChanged();
+        }
+    };
+
+    InsetsStateController(DisplayContent displayContent) {
+        mDisplayContent = displayContent;
+    }
+
+    /**
+     * When dispatching window state to the client, we'll need to exclude the source that represents
+     * the window that is being dispatched.
+     *
+     * @param target The client we dispatch the state to.
+     * @return The state stripped of the necessary information.
+     */
+    InsetsState getInsetsForDispatch(WindowState target) {
+        final InsetsSourceProvider provider = target.getInsetProvider();
+        if (provider == null) {
+            return mState;
+        }
+
+        final InsetsState state = new InsetsState();
+        state.set(mState);
+        final int type = provider.getSource().getType();
+        state.removeSource(type);
+
+        // Navigation bar doesn't get influenced by anything else
+        if (type == TYPE_NAVIGATION_BAR) {
+            state.removeSource(TYPE_IME);
+            state.removeSource(TYPE_TOP_BAR);
+        }
+        return state;
+    }
+
+    @Nullable InsetsSourceControl[] getControlsForDispatch(WindowState target) {
+        ArrayList<Integer> controlled = mWinControlTypeMap.get(target);
+        if (controlled == null) {
+            return null;
+        }
+        final int size = controlled.size();
+        final InsetsSourceControl[] result = new InsetsSourceControl[size];
+        for (int i = 0; i < size; i++) {
+            result[i] = mControllers.get(controlled.get(i)).getControl();
+        }
+        return result;
+    }
+
+    /**
+     * @return The provider of a specific type.
+     */
+    InsetsSourceProvider getSourceProvider(int type) {
+        return mControllers.computeIfAbsent(type,
+                key -> new InsetsSourceProvider(mState.getSource(key), this, mDisplayContent));
+    }
+
+    /**
+     * Called when a layout pass has occurred.
+     */
+    void onPostLayout() {
+        for (int i = mControllers.size() - 1; i>= 0; i--) {
+            mControllers.valueAt(i).onPostLayout();
+        }
+        if (!mLastState.equals(mState)) {
+            mLastState.set(mState, true /* copySources */);
+            notifyInsetsChanged();
+        }
+    }
+
+    void onImeTargetChanged(@Nullable WindowState imeTarget) {
+        onControlChanged(TYPE_IME, imeTarget);
+        notifyPendingInsetsControlChanged();
+    }
+
+    /**
+     * Called when the top opaque fullscreen window that is able to control the system bars changes.
+     *
+     * @param controllingWindow The window that is now able to control the system bars appearance
+     *                          and visibility.
+     */
+    void onBarControllingWindowChanged(@Nullable WindowState controllingWindow) {
+        // TODO: Apply policy that determines whether controllingWindow is able to control system
+        // bars
+
+        // TODO: Depending on the form factor, mapping is different
+        onControlChanged(TYPE_TOP_BAR, controllingWindow);
+        onControlChanged(TYPE_NAVIGATION_BAR, controllingWindow);
+        notifyPendingInsetsControlChanged();
+    }
+
+    void notifyControlRevoked(@NonNull WindowState previousControllingWin,
+            InsetsSourceProvider provider) {
+        removeFromControlMaps(previousControllingWin, provider.getSource().getType());
+    }
+
+    private void onControlChanged(int type, @Nullable WindowState win) {
+        if (!ViewRootImpl.USE_NEW_INSETS) {
+            return;
+        }
+        final WindowState previous = mTypeWinControlMap.get(type);
+        if (win == previous) {
+            return;
+        }
+        final InsetsSourceProvider controller = mControllers.get(type);
+        if (controller == null) {
+            return;
+        }
+        controller.updateControlForTarget(win);
+        if (previous != null) {
+            removeFromControlMaps(previous, type);
+            mPendingControlChanged.add(previous);
+        }
+        if (win != null) {
+            addToControlMaps(win, type);
+            mPendingControlChanged.add(win);
+        }
+    }
+
+    private void removeFromControlMaps(@NonNull WindowState win, int type) {
+        final ArrayList<Integer> array = mWinControlTypeMap.get(win);
+        if (array == null) {
+            return;
+        }
+        array.remove((Integer) type);
+        if (array.isEmpty()) {
+            mWinControlTypeMap.remove(win);
+        }
+        mTypeWinControlMap.remove(type);
+    }
+
+    private void addToControlMaps(@NonNull WindowState win, int type) {
+        final ArrayList<Integer> array = mWinControlTypeMap.computeIfAbsent(win,
+                key -> new ArrayList<>());
+        array.add(type);
+        mTypeWinControlMap.put(type, win);
+    }
+
+    private void notifyPendingInsetsControlChanged() {
+        mDisplayContent.mWmService.mAnimator.addAfterPrepareSurfacesRunnable(() -> {
+            for (int i = mPendingControlChanged.size() - 1; i >= 0; i--) {
+                final WindowState controllingWin = mPendingControlChanged.valueAt(i);
+                controllingWin.notifyInsetsControlChanged();
+            }
+            mPendingControlChanged.clear();
+        });
+    }
+
+    private void notifyInsetsChanged() {
+        mDisplayContent.forAllWindows(mDispatchInsetsChanged, true /* traverseTopToBottom */);
+    }
+
+    void dump(String prefix, PrintWriter pw) {
+        pw.println(prefix + "WindowInsetsStateController");
+        mState.dump(prefix + "  ", pw);
+    }
+}
diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java
index c91af73..4ef3513 100644
--- a/services/core/java/com/android/server/wm/KeyguardController.java
+++ b/services/core/java/com/android/server/wm/KeyguardController.java
@@ -72,6 +72,7 @@
     private int mVisibilityTransactionDepth;
     private final SparseArray<KeyguardDisplayState> mDisplayStates = new SparseArray<>();
     private final ActivityTaskManagerService mService;
+    private RootActivityContainer mRootActivityContainer;
 
     KeyguardController(ActivityTaskManagerService service,
             ActivityStackSupervisor stackSupervisor) {
@@ -81,6 +82,7 @@
 
     void setWindowManager(WindowManagerService windowManager) {
         mWindowManager = windowManager;
+        mRootActivityContainer = mService.mRootActivityContainer;
     }
 
     /**
@@ -146,7 +148,7 @@
                 mDismissalRequested = false;
             }
         }
-        mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+        mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
         updateKeyguardSleepToken();
     }
 
@@ -172,16 +174,17 @@
         mWindowManager.deferSurfaceLayout();
         try {
             setKeyguardGoingAway(true);
-            mStackSupervisor.getDefaultDisplay().getWindowContainerController()
+            mRootActivityContainer.getDefaultDisplay().getWindowContainerController()
                     .prepareAppTransition(TRANSIT_KEYGUARD_GOING_AWAY,
                             false /* alwaysKeepCurrent */, convertTransitFlags(flags),
                             false /* forceOverride */);
             updateKeyguardSleepToken();
 
             // Some stack visibility might change (e.g. docked stack)
-            mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
-            mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
-            mStackSupervisor.addStartingWindowsForVisibleActivities(true /* taskSwitch */);
+            mRootActivityContainer.resumeFocusedStacksTopActivities();
+            mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
+            mRootActivityContainer.addStartingWindowsForVisibleActivities(
+                    true /* taskSwitch */);
             mWindowManager.executeAppTransition();
         } finally {
             Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "keyguardGoingAway: surfaceLayout");
@@ -277,8 +280,9 @@
 
     private void visibilitiesUpdated() {
         boolean requestDismissKeyguard = false;
-        for (int displayNdx = mStackSupervisor.getChildCount() - 1; displayNdx >= 0; displayNdx--) {
-            final ActivityDisplay display = mStackSupervisor.getChildAt(displayNdx);
+        for (int displayNdx = mRootActivityContainer.getChildCount() - 1;
+             displayNdx >= 0; displayNdx--) {
+            final ActivityDisplay display = mRootActivityContainer.getChildAt(displayNdx);
             final KeyguardDisplayState state = getDisplay(display.mDisplayId);
             state.visibilitiesUpdated(this, display);
             requestDismissKeyguard |= state.mRequestDismissKeyguard;
@@ -298,12 +302,12 @@
         if (isKeyguardLocked()) {
             mWindowManager.deferSurfaceLayout();
             try {
-                mStackSupervisor.getDefaultDisplay().getWindowContainerController()
+                mRootActivityContainer.getDefaultDisplay().getWindowContainerController()
                         .prepareAppTransition(resolveOccludeTransit(),
                                 false /* alwaysKeepCurrent */, 0 /* flags */,
                                 true /* forceOverride */);
                 updateKeyguardSleepToken();
-                mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+                mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
                 mWindowManager.executeAppTransition();
             } finally {
                 mWindowManager.continueSurfaceLayout();
@@ -319,21 +323,23 @@
         // We only allow dismissing Keyguard via the flag when Keyguard is secure for legacy
         // reasons, because that's how apps used to dismiss Keyguard in the secure case. In the
         // insecure case, we actually show it on top of the lockscreen. See #canShowWhileOccluded.
-        if (mWindowManager.isKeyguardSecure()) {
-            mWindowManager.dismissKeyguard(null /* callback */, null /* message */);
-            mDismissalRequested = true;
+        if (!mWindowManager.isKeyguardSecure()) {
+            return;
+        }
 
-            // If we are about to unocclude the Keyguard, but we can dismiss it without security,
-            // we immediately dismiss the Keyguard so the activity gets shown without a flicker.
-            final DisplayWindowController dwc =
-                    mStackSupervisor.getDefaultDisplay().getWindowContainerController();
-            if (mKeyguardShowing && canDismissKeyguard()
-                    && dwc.getPendingAppTransition() == TRANSIT_KEYGUARD_UNOCCLUDE) {
-                dwc.prepareAppTransition(mBeforeUnoccludeTransit, false /* alwaysKeepCurrent */,
-                        0 /* flags */, true /* forceOverride */);
-                mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
-                mWindowManager.executeAppTransition();
-            }
+        mWindowManager.dismissKeyguard(null /* callback */, null /* message */);
+        mDismissalRequested = true;
+
+        // If we are about to unocclude the Keyguard, but we can dismiss it without security,
+        // we immediately dismiss the Keyguard so the activity gets shown without a flicker.
+        final DisplayWindowController dwc =
+                mRootActivityContainer.getDefaultDisplay().getWindowContainerController();
+        if (mKeyguardShowing && canDismissKeyguard()
+                && dwc.getPendingAppTransition() == TRANSIT_KEYGUARD_UNOCCLUDE) {
+            dwc.prepareAppTransition(mBeforeUnoccludeTransit, false /* alwaysKeepCurrent */,
+                    0 /* flags */, true /* forceOverride */);
+            mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
+            mWindowManager.executeAppTransition();
         }
     }
 
@@ -350,7 +356,7 @@
 
     private int resolveOccludeTransit() {
         final DisplayWindowController dwc =
-                mStackSupervisor.getDefaultDisplay().getWindowContainerController();
+                mRootActivityContainer.getDefaultDisplay().getWindowContainerController();
         if (mBeforeUnoccludeTransit != TRANSIT_UNSET
                 && dwc.getPendingAppTransition() == TRANSIT_KEYGUARD_UNOCCLUDE
                 // TODO(b/113840485): Handle app transition for individual display.
@@ -377,7 +383,8 @@
             // show on top of the lock screen. In this can we want to dismiss the docked
             // stack since it will be complicated/risky to try to put the activity on top
             // of the lock screen in the right fullscreen configuration.
-            final ActivityStack stack = mStackSupervisor.getDefaultDisplay().getSplitScreenPrimaryStack();
+            final ActivityStack stack =
+                    mRootActivityContainer.getDefaultDisplay().getSplitScreenPrimaryStack();
             if (stack == null) {
                 return;
             }
@@ -387,8 +394,9 @@
     }
 
     private void updateKeyguardSleepToken() {
-        for (int displayNdx = mStackSupervisor.getChildCount() - 1; displayNdx >= 0; displayNdx--) {
-            final ActivityDisplay display = mStackSupervisor.getChildAt(displayNdx);
+        for (int displayNdx = mRootActivityContainer.getChildCount() - 1;
+             displayNdx >= 0; displayNdx--) {
+            final ActivityDisplay display = mRootActivityContainer.getChildAt(displayNdx);
             final KeyguardDisplayState state = getDisplay(display.mDisplayId);
             if (isKeyguardOrAodShowing(display.mDisplayId) && state.mSleepToken == null) {
                 state.acquiredSleepToken();
diff --git a/services/core/java/com/android/server/wm/LaunchObserverRegistryImpl.java b/services/core/java/com/android/server/wm/LaunchObserverRegistryImpl.java
new file mode 100644
index 0000000..93e2d8d
--- /dev/null
+++ b/services/core/java/com/android/server/wm/LaunchObserverRegistryImpl.java
@@ -0,0 +1,162 @@
+/*
+ * 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.server.wm;
+
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+
+import com.android.internal.os.BackgroundThread;
+import com.android.internal.util.function.pooled.PooledLambda;
+
+import java.util.ArrayList;
+
+/**
+ * Multi-cast implementation of {@link ActivityMetricsLaunchObserver}.
+ *
+ * <br /><br />
+ * If this class is called through the {@link ActivityMetricsLaunchObserver} interface,
+ * then the call is forwarded to all registered observers at the time.
+ *
+ * <br /><br />
+ * All calls are invoked asynchronously in-order on a background thread. This fulfills the
+ * sequential ordering guarantee in {@link ActivityMetricsLaunchObserverRegistry}.
+ *
+ * @see ActivityTaskManagerInternal#getLaunchObserverRegistry()
+ */
+class LaunchObserverRegistryImpl implements
+        ActivityMetricsLaunchObserverRegistry, ActivityMetricsLaunchObserver {
+    private final ArrayList<ActivityMetricsLaunchObserver> mList = new ArrayList<>();
+
+    /**
+     * All calls are posted to a handler because:
+     *
+     * 1. We don't know how long the observer will take to handle this call and we don't want
+     *    to block the WM critical section on it.
+     * 2. We don't know the lock ordering of the observer so we don't want to expose a chance
+     *    of deadlock.
+     */
+    private final Handler mHandler;
+
+    public LaunchObserverRegistryImpl(Looper looper) {
+        mHandler = new Handler(looper);
+    }
+
+    @Override
+    public void registerLaunchObserver(ActivityMetricsLaunchObserver launchObserver) {
+        mHandler.sendMessage(PooledLambda.obtainMessage(
+                LaunchObserverRegistryImpl::handleRegisterLaunchObserver, this, launchObserver));
+    }
+
+    @Override
+    public void unregisterLaunchObserver(ActivityMetricsLaunchObserver launchObserver) {
+        mHandler.sendMessage(PooledLambda.obtainMessage(
+                LaunchObserverRegistryImpl::handleUnregisterLaunchObserver, this, launchObserver));
+    }
+
+    @Override
+    public void onIntentStarted(Intent intent) {
+        mHandler.sendMessage(PooledLambda.obtainMessage(
+                LaunchObserverRegistryImpl::handleOnIntentStarted, this, intent));
+    }
+
+    @Override
+    public void onIntentFailed() {
+        mHandler.sendMessage(PooledLambda.obtainMessage(
+                LaunchObserverRegistryImpl::handleOnIntentFailed, this));
+    }
+
+    @Override
+    public void onActivityLaunched(
+            @ActivityRecordProto byte[] activity,
+            int temperature) {
+        mHandler.sendMessage(PooledLambda.obtainMessage(
+                LaunchObserverRegistryImpl::handleOnActivityLaunched,
+                this, activity, temperature));
+    }
+
+    @Override
+    public void onActivityLaunchCancelled(
+        @ActivityRecordProto byte[] activity) {
+        mHandler.sendMessage(PooledLambda.obtainMessage(
+                LaunchObserverRegistryImpl::handleOnActivityLaunchCancelled, this, activity));
+    }
+
+    @Override
+    public void onActivityLaunchFinished(
+        @ActivityRecordProto byte[] activity) {
+        mHandler.sendMessage(PooledLambda.obtainMessage(
+                LaunchObserverRegistryImpl::handleOnActivityLaunchFinished, this, activity));
+    }
+
+    // Use PooledLambda.obtainMessage to invoke below methods. Every method reference must be
+    // unbound (i.e. not capture any variables explicitly or implicitly) to fulfill the
+    // singleton-lambda requirement.
+
+    private void handleRegisterLaunchObserver(ActivityMetricsLaunchObserver observer) {
+        mList.add(observer);
+    }
+
+    private void handleUnregisterLaunchObserver(ActivityMetricsLaunchObserver observer) {
+        mList.remove(observer);
+    }
+
+    private void handleOnIntentStarted(Intent intent) {
+        // Traverse start-to-end to meet the registerLaunchObserver multi-cast order guarantee.
+        for (int i = 0; i < mList.size(); i++) {
+             ActivityMetricsLaunchObserver o = mList.get(i);
+             o.onIntentStarted(intent);
+        }
+    }
+
+    private void handleOnIntentFailed() {
+        // Traverse start-to-end to meet the registerLaunchObserver multi-cast order guarantee.
+        for (int i = 0; i < mList.size(); i++) {
+             ActivityMetricsLaunchObserver o = mList.get(i);
+             o.onIntentFailed();
+        }
+    }
+
+    private void handleOnActivityLaunched(
+            @ActivityRecordProto byte[] activity,
+            @Temperature int temperature) {
+        // Traverse start-to-end to meet the registerLaunchObserver multi-cast order guarantee.
+        for (int i = 0; i < mList.size(); i++) {
+             ActivityMetricsLaunchObserver o = mList.get(i);
+             o.onActivityLaunched(activity, temperature);
+        }
+    }
+
+    private void handleOnActivityLaunchCancelled(
+            @ActivityRecordProto byte[] activity) {
+        // Traverse start-to-end to meet the registerLaunchObserver multi-cast order guarantee.
+        for (int i = 0; i < mList.size(); i++) {
+             ActivityMetricsLaunchObserver o = mList.get(i);
+             o.onActivityLaunchCancelled(activity);
+        }
+    }
+
+    private void handleOnActivityLaunchFinished(
+            @ActivityRecordProto byte[] activity) {
+        // Traverse start-to-end to meet the registerLaunchObserver multi-cast order guarantee.
+        for (int i = 0; i < mList.size(); i++) {
+            ActivityMetricsLaunchObserver o = mList.get(i);
+            o.onActivityLaunchFinished(activity);
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/wm/LaunchParamsPersister.java b/services/core/java/com/android/server/wm/LaunchParamsPersister.java
index 72d5143..3062d34 100644
--- a/services/core/java/com/android/server/wm/LaunchParamsPersister.java
+++ b/services/core/java/com/android/server/wm/LaunchParamsPersister.java
@@ -223,7 +223,8 @@
     private boolean saveTaskToLaunchParam(TaskRecord task, PersistableLaunchParams params) {
         final ActivityStack<?> stack = task.getStack();
         final int displayId = stack.mDisplayId;
-        final ActivityDisplay display = mSupervisor.getActivityDisplay(displayId);
+        final ActivityDisplay display =
+                mSupervisor.mRootActivityContainer.getActivityDisplay(displayId);
         final DisplayInfo info = new DisplayInfo();
         display.mDisplay.getDisplayInfo(info);
 
@@ -245,8 +246,8 @@
     }
 
     void getLaunchParams(TaskRecord task, ActivityRecord activity, LaunchParams outParams) {
-        final ComponentName name = task != null ? task.realActivity : activity.realActivity;
-        final int userId = task != null ? task.userId : activity.userId;
+        final ComponentName name = task != null ? task.realActivity : activity.mActivityComponent;
+        final int userId = task != null ? task.userId : activity.mUserId;
 
         outParams.reset();
         Map<ComponentName, PersistableLaunchParams> map = mMap.get(userId);
@@ -259,7 +260,7 @@
             return;
         }
 
-        final ActivityDisplay display = mSupervisor.getActivityDisplay(
+        final ActivityDisplay display = mSupervisor.mRootActivityContainer.getActivityDisplay(
                 persistableParams.mDisplayUniqueId);
         if (display != null) {
             outParams.mPreferredDisplayId =  display.mDisplayId;
@@ -268,7 +269,7 @@
         outParams.mBounds.set(persistableParams.mBounds);
     }
 
-    private void onPackageRemoved(String packageName) {
+    void removeRecordForPackage(String packageName) {
         final List<File> fileToDelete = new ArrayList<>();
         for (int i = 0; i < mMap.size(); ++i) {
             int userId = mMap.keyAt(i);
@@ -309,7 +310,7 @@
 
         @Override
         public void onPackageRemoved(String packageName) {
-            LaunchParamsPersister.this.onPackageRemoved(packageName);
+            removeRecordForPackage(packageName);
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/Letterbox.java b/services/core/java/com/android/server/wm/Letterbox.java
index b49d304..1a2aa2f 100644
--- a/services/core/java/com/android/server/wm/Letterbox.java
+++ b/services/core/java/com/android/server/wm/Letterbox.java
@@ -186,7 +186,6 @@
                     createSurface();
                 }
                 t.setPosition(mSurface, mSurfaceFrame.left, mSurfaceFrame.top);
-                t.setSize(mSurface, mSurfaceFrame.width(), mSurfaceFrame.height());
                 t.setWindowCrop(mSurface, mSurfaceFrame.width(), mSurfaceFrame.height());
                 t.show(mSurface);
             } else if (mSurface != null) {
diff --git a/services/core/java/com/android/server/wm/LockTaskController.java b/services/core/java/com/android/server/wm/LockTaskController.java
index 41d0777..d2f2863 100644
--- a/services/core/java/com/android/server/wm/LockTaskController.java
+++ b/services/core/java/com/android/server/wm/LockTaskController.java
@@ -225,7 +225,7 @@
      * of the last locked task and finishing it would mean that lock task mode is ended illegally.
      */
     boolean activityBlockedFromFinish(ActivityRecord activity) {
-        final TaskRecord task = activity.getTask();
+        final TaskRecord task = activity.getTaskRecord();
         if (activity == task.getRootActivity()
                 && activity == task.getTopActivity()
                 && task.mLockTaskAuth != LOCK_TASK_AUTH_LAUNCHABLE_PRIV
@@ -447,7 +447,7 @@
             return;
         }
         task.performClearTaskLocked();
-        mSupervisor.resumeFocusedStacksTopActivitiesLocked();
+        mSupervisor.mRootActivityContainer.resumeFocusedStacksTopActivities();
     }
 
     /**
@@ -579,7 +579,7 @@
         if (andResume) {
             mSupervisor.findTaskToMoveToFront(task, 0, null, reason,
                     lockTaskModeState != LOCK_TASK_MODE_NONE);
-            mSupervisor.resumeFocusedStacksTopActivitiesLocked();
+            mSupervisor.mRootActivityContainer.resumeFocusedStacksTopActivities();
             final ActivityStack stack = task.getStack();
             if (stack != null) {
                 stack.getDisplay().getWindowContainerController().executeAppTransition();
@@ -641,12 +641,13 @@
             taskChanged = true;
         }
 
-        for (int displayNdx = mSupervisor.getChildCount() - 1; displayNdx >= 0; --displayNdx) {
-            mSupervisor.getChildAt(displayNdx).onLockTaskPackagesUpdated();
+        for (int displayNdx = mSupervisor.mRootActivityContainer.getChildCount() - 1;
+             displayNdx >= 0; --displayNdx) {
+            mSupervisor.mRootActivityContainer.getChildAt(displayNdx).onLockTaskPackagesUpdated();
         }
 
-        final ActivityRecord r = mSupervisor.topRunningActivityLocked();
-        final TaskRecord task = (r != null) ? r.getTask() : null;
+        final ActivityRecord r = mSupervisor.mRootActivityContainer.topRunningActivity();
+        final TaskRecord task = (r != null) ? r.getTaskRecord() : null;
         if (mLockTaskModeTasks.isEmpty() && task!= null
                 && task.mLockTaskAuth == LOCK_TASK_AUTH_LAUNCHABLE) {
             // This task must have just been authorized.
@@ -657,7 +658,7 @@
         }
 
         if (taskChanged) {
-            mSupervisor.resumeFocusedStacksTopActivitiesLocked();
+            mSupervisor.mRootActivityContainer.resumeFocusedStacksTopActivities();
         }
     }
 
diff --git a/services/core/java/com/android/server/policy/NavigationBarExperiments.java b/services/core/java/com/android/server/wm/NavigationBarExperiments.java
similarity index 96%
rename from services/core/java/com/android/server/policy/NavigationBarExperiments.java
rename to services/core/java/com/android/server/wm/NavigationBarExperiments.java
index 06772e3..b74fb45 100644
--- a/services/core/java/com/android/server/policy/NavigationBarExperiments.java
+++ b/services/core/java/com/android/server/wm/NavigationBarExperiments.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.policy;
+package com.android.server.wm;
 
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
@@ -25,9 +25,6 @@
 import android.content.Context;
 import android.graphics.Rect;
 
-import com.android.server.policy.WindowManagerPolicy.WindowState;
-import com.android.server.wm.WindowFrames;
-
 /**
  * This class acts as a proxy for Navigation Bar experiments enabled with custom overlays
  * {@see OverlayManagerService}. By default with no overlays, this class will essentially do nothing
diff --git a/services/core/java/com/android/server/wm/PinnedActivityStack.java b/services/core/java/com/android/server/wm/PinnedActivityStack.java
index 3ef42e7..1c7ebd6 100644
--- a/services/core/java/com/android/server/wm/PinnedActivityStack.java
+++ b/services/core/java/com/android/server/wm/PinnedActivityStack.java
@@ -41,7 +41,7 @@
     PinnedStackWindowController createStackWindowController(int displayId, boolean onTop,
             Rect outBounds) {
         return new PinnedStackWindowController(mStackId, this, displayId, onTop, outBounds,
-                mStackSupervisor.mWindowManager);
+                mRootActivityContainer.mWindowManager);
     }
 
     Rect getDefaultPictureInPictureBounds(float aspectRatio) {
diff --git a/services/core/java/com/android/server/wm/PinnedStackController.java b/services/core/java/com/android/server/wm/PinnedStackController.java
index d21f67d..ba23258 100644
--- a/services/core/java/com/android/server/wm/PinnedStackController.java
+++ b/services/core/java/com/android/server/wm/PinnedStackController.java
@@ -514,8 +514,9 @@
      */
     private void getInsetBounds(Rect outRect) {
         synchronized (mService.mGlobalLock) {
-            mService.mPolicy.getStableInsetsLw(mDisplayInfo.rotation, mDisplayInfo.logicalWidth,
-                    mDisplayInfo.logicalHeight, mDisplayInfo.displayCutout, mTmpInsets);
+            mDisplayContent.getDisplayPolicy().getStableInsetsLw(mDisplayInfo.rotation,
+                    mDisplayInfo.logicalWidth, mDisplayInfo.logicalHeight,
+                    mDisplayInfo.displayCutout, mTmpInsets);
             outRect.set(mTmpInsets.left + mScreenEdgeInsets.x, mTmpInsets.top + mScreenEdgeInsets.y,
                     mDisplayInfo.logicalWidth - mTmpInsets.right - mScreenEdgeInsets.x,
                     mDisplayInfo.logicalHeight - mTmpInsets.bottom - mScreenEdgeInsets.y);
diff --git a/services/core/java/com/android/server/policy/PolicyControl.java b/services/core/java/com/android/server/wm/PolicyControl.java
similarity index 92%
rename from services/core/java/com/android/server/policy/PolicyControl.java
rename to services/core/java/com/android/server/wm/PolicyControl.java
index 48e72bc..4c8ce9e 100644
--- a/services/core/java/com/android/server/policy/PolicyControl.java
+++ b/services/core/java/com/android/server/wm/PolicyControl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 The Android Open Source Project
+ * 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.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.policy;
+package com.android.server.wm;
 
 import android.app.ActivityManager;
 import android.content.Context;
@@ -26,8 +26,6 @@
 import android.view.WindowManager;
 import android.view.WindowManager.LayoutParams;
 
-import com.android.server.policy.WindowManagerPolicy.WindowState;
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
@@ -49,9 +47,9 @@
  * Separate multiple name-value pairs with ':'
  *   e.g. "immersive.status=apps:immersive.preconfirms=*"
  */
-public class PolicyControl {
-    private static String TAG = "PolicyControl";
-    private static boolean DEBUG = false;
+class PolicyControl {
+    private static final String TAG = "PolicyControl";
+    private static final boolean DEBUG = false;
 
     private static final String NAME_IMMERSIVE_FULL = "immersive.full";
     private static final String NAME_IMMERSIVE_STATUS = "immersive.status";
@@ -63,7 +61,7 @@
     private static Filter sImmersiveStatusFilter;
     private static Filter sImmersiveNavigationFilter;
 
-    public static int getSystemUiVisibility(WindowState win, LayoutParams attrs) {
+    static int getSystemUiVisibility(WindowState win, LayoutParams attrs) {
         attrs = attrs != null ? attrs : win.getAttrs();
         int vis = win != null ? win.getSystemUiVisibility()
                 : (attrs.systemUiVisibility | attrs.subtreeSystemUiVisibility);
@@ -84,7 +82,7 @@
         return vis;
     }
 
-    public static int getWindowFlags(WindowState win, LayoutParams attrs) {
+    static int getWindowFlags(WindowState win, LayoutParams attrs) {
         attrs = attrs != null ? attrs : win.getAttrs();
         int flags = attrs.flags;
         if (sImmersiveStatusFilter != null && sImmersiveStatusFilter.matches(attrs)) {
@@ -98,7 +96,7 @@
         return flags;
     }
 
-    public static int adjustClearableFlags(WindowState win, int clearableFlags) {
+    static int adjustClearableFlags(WindowState win, int clearableFlags) {
         final LayoutParams attrs = win != null ? win.getAttrs() : null;
         if (sImmersiveStatusFilter != null && sImmersiveStatusFilter.matches(attrs)) {
             clearableFlags &= ~View.SYSTEM_UI_FLAG_FULLSCREEN;
@@ -106,28 +104,32 @@
         return clearableFlags;
     }
 
-    public static boolean disableImmersiveConfirmation(String pkg) {
+    static boolean disableImmersiveConfirmation(String pkg) {
         return (sImmersivePreconfirmationsFilter != null
                 && sImmersivePreconfirmationsFilter.matches(pkg))
                 || ActivityManager.isRunningInTestHarness();
     }
 
-    public static void reloadFromSetting(Context context) {
+    static boolean reloadFromSetting(Context context) {
         if (DEBUG) Slog.d(TAG, "reloadFromSetting()");
         String value = null;
         try {
             value = Settings.Global.getStringForUser(context.getContentResolver(),
                     Settings.Global.POLICY_CONTROL,
                     UserHandle.USER_CURRENT);
-            if (sSettingValue != null && sSettingValue.equals(value)) return;
+            if (sSettingValue == value || sSettingValue != null && sSettingValue.equals(value)) {
+                return false;
+            }
             setFilters(value);
             sSettingValue = value;
         } catch (Throwable t) {
             Slog.w(TAG, "Error loading policy control, value=" + value, t);
+            return false;
         }
+        return true;
     }
 
-    public static void dump(String prefix, PrintWriter pw) {
+    static void dump(String prefix, PrintWriter pw) {
         dump("sImmersiveStatusFilter", sImmersiveStatusFilter, prefix, pw);
         dump("sImmersiveNavigationFilter", sImmersiveNavigationFilter, prefix, pw);
         dump("sImmersivePreconfirmationsFilter", sImmersivePreconfirmationsFilter, prefix, pw);
diff --git a/services/core/java/com/android/server/wm/RecentsAnimation.java b/services/core/java/com/android/server/wm/RecentsAnimation.java
index 067b01a..1e287b4 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimation.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimation.java
@@ -26,6 +26,7 @@
 import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
 import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;
 import static android.view.WindowManager.TRANSIT_NONE;
+
 import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
 import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE;
 import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_ORIGINAL_POSITION;
@@ -37,14 +38,20 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.os.Bundle;
+import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.Trace;
 import android.util.Slog;
 import android.view.IRecentsAnimationRunner;
 
+import com.android.server.LocalServices;
 import com.android.server.am.AssistDataRequester;
+import com.android.server.intelligence.IntelligenceManagerInternal;
 import com.android.server.wm.RecentsAnimationController.RecentsAnimationCallbacks;
 
+import java.util.List;
+
 /**
  * Manages the recents animation, including the reordering of the stacks for the transition and
  * cleanup. See {@link com.android.server.wm.RecentsAnimationController}.
@@ -72,7 +79,7 @@
             int callingPid) {
         mService = atm;
         mStackSupervisor = stackSupervisor;
-        mDefaultDisplay = stackSupervisor.getDefaultDisplay();
+        mDefaultDisplay = mService.mRootActivityContainer.getDefaultDisplay();
         mActivityStartController = activityStartController;
         mWindowManager = wm;
         mCallingPid = callingPid;
@@ -80,14 +87,14 @@
 
     void startRecentsActivity(Intent intent, IRecentsAnimationRunner recentsAnimationRunner,
             ComponentName recentsComponent, int recentsUid,
-            IAssistDataReceiver assistDataReceiver) {
+            @Deprecated IAssistDataReceiver assistDataReceiver) {
         if (DEBUG) Slog.d(TAG, "startRecentsActivity(): intent=" + intent
                 + " assistDataReceiver=" + assistDataReceiver);
         Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "RecentsAnimation#startRecentsActivity");
 
         // TODO(multi-display) currently only support recents animation in default display.
         final DisplayWindowController dwc =
-                mStackSupervisor.getDefaultDisplay().getWindowContainerController();
+                mService.mRootActivityContainer.getDefaultDisplay().getWindowContainerController();
         if (!mWindowManager.canStartRecentsAnimation()) {
             notifyAnimationCancelBeforeStart(recentsAnimationRunner);
             if (DEBUG) Slog.d(TAG, "Can't start recents animation, nextAppTransition="
@@ -117,8 +124,8 @@
         // Send launch hint if we are actually launching the target. If it's already visible
         // (shouldn't happen in general) we don't need to send it.
         if (targetActivity == null || !targetActivity.visible) {
-            mStackSupervisor.sendPowerHintForLaunchStartIfNeeded(true /* forceSend */,
-                    targetActivity);
+            mService.mRootActivityContainer.sendPowerHintForLaunchStartIfNeeded(
+                    true /* forceSend */, targetActivity);
         }
 
         mStackSupervisor.getActivityMetricsLogger().notifyActivityLaunching(intent);
@@ -127,19 +134,10 @@
 
         mWindowManager.deferSurfaceLayout();
         try {
+            final int userId = mService.getCurrentUserId();
+
             // Kick off the assist data request in the background before showing the target activity
-            if (assistDataReceiver != null) {
-                final AppOpsManager appOpsManager = (AppOpsManager)
-                        mService.mContext.getSystemService(Context.APP_OPS_SERVICE);
-                final AssistDataReceiverProxy proxy = new AssistDataReceiverProxy(
-                        assistDataReceiver, recentsComponent.getPackageName());
-                mAssistDataRequester = new AssistDataRequester(mService.mContext,
-                        mWindowManager, appOpsManager, proxy, this, OP_ASSIST_STRUCTURE, OP_NONE);
-                mAssistDataRequester.requestAssistData(mStackSupervisor.getTopVisibleActivities(),
-                        true /* fetchData */, false /* fetchScreenshots */,
-                        true /* allowFetchData */, false /* allowFetchScreenshots */,
-                        recentsUid, recentsComponent.getPackageName());
-            }
+            requestAssistData(recentsComponent, recentsUid, assistDataReceiver, userId);
 
             if (hasExistingActivity) {
                 // Move the recents activity into place for the animation if it is not top most
@@ -150,8 +148,8 @@
                 // If there are multiple tasks in the target stack (ie. the home stack, with 3p
                 // and default launchers coexisting), then move the task to the top as a part of
                 // moving the stack to the front
-                if (targetStack.topTask() != targetActivity.getTask()) {
-                    targetStack.addTask(targetActivity.getTask(), true /* toTop */,
+                if (targetStack.topTask() != targetActivity.getTaskRecord()) {
+                    targetStack.addTask(targetActivity.getTaskRecord(), true /* toTop */,
                             "startRecentsActivity");
                 }
             } else {
@@ -166,7 +164,7 @@
                         .setCallingUid(recentsUid)
                         .setCallingPackage(recentsComponent.getPackageName())
                         .setActivityOptions(SafeActivityOptions.fromBundle(options.toBundle()))
-                        .setMayWait(mService.getCurrentUserId())
+                        .setMayWait(userId)
                         .execute();
                 mWindowManager.prepareAppTransition(TRANSIT_NONE, false);
                 mWindowManager.executeAppTransition();
@@ -194,7 +192,7 @@
 
             // If we updated the launch-behind state, update the visibility of the activities after
             // we fetch the visible tasks to be controlled by the animation
-            mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, PRESERVE_WINDOWS);
+            mService.mRootActivityContainer.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS);
 
             mStackSupervisor.getActivityMetricsLogger().notifyActivityLaunched(START_TASK_TO_FRONT,
                     targetActivity);
@@ -210,6 +208,62 @@
         }
     }
 
+    /**
+     * Requests assist data for the top visible activities.
+     */
+    private void requestAssistData(ComponentName recentsComponent, int recentsUid,
+            @Deprecated IAssistDataReceiver assistDataReceiver, int userId) {
+        final AppOpsManager appOpsManager = (AppOpsManager)
+                mService.mContext.getSystemService(Context.APP_OPS_SERVICE);
+        final List<IBinder> topActivities =
+                mService.mRootActivityContainer.getTopVisibleActivities();
+        final AssistDataRequester.AssistDataRequesterCallbacks assistDataCallbacks;
+        if (assistDataReceiver != null) {
+            assistDataCallbacks = new AssistDataReceiverProxy(assistDataReceiver,
+                    recentsComponent.getPackageName()) {
+                @Override
+                public void onAssistDataReceivedLocked(Bundle data, int activityIndex,
+                        int activityCount) {
+                    // Try to notify the intelligence service first
+                    final IntelligenceManagerInternal imService =
+                            LocalServices.getService(IntelligenceManagerInternal.class);
+                    final IBinder activityToken = topActivities.get(activityIndex);
+                    if (imService == null
+                            || !imService.sendActivityAssistData(userId, activityToken, data)) {
+                        // Otherwise, use the provided assist data receiver
+                        super.onAssistDataReceivedLocked(data, activityIndex, activityCount);
+                    }
+                }
+            };
+        } else {
+            final IntelligenceManagerInternal imService =
+                    LocalServices.getService(IntelligenceManagerInternal.class);
+            if (imService == null) {
+                // There is no intelligence service, so there is no point requesting assist data
+                return;
+            }
+
+            assistDataCallbacks = new AssistDataRequester.AssistDataRequesterCallbacks() {
+                @Override
+                public boolean canHandleReceivedAssistDataLocked() {
+                    return true;
+                }
+
+                @Override
+                public void onAssistDataReceivedLocked(Bundle data, int activityIndex,
+                        int activityCount) {
+                    // Try to notify the intelligence service
+                    final IBinder activityToken = topActivities.get(activityIndex);
+                    imService.sendActivityAssistData(userId, activityToken, data);
+                }
+            };
+        }
+        mAssistDataRequester = new AssistDataRequester(mService.mContext, mWindowManager,
+                appOpsManager, assistDataCallbacks, this, OP_ASSIST_STRUCTURE, OP_NONE);
+        mAssistDataRequester.requestAutofillData(topActivities,
+                recentsUid, recentsComponent.getPackageName());
+    }
+
     private void finishAnimation(@RecentsAnimationController.ReorderMode int reorderMode) {
         synchronized (mService.mGlobalLock) {
             if (DEBUG) Slog.d(TAG, "onAnimationFinished(): controller="
@@ -230,7 +284,7 @@
             // Just to be sure end the launch hint in case the target activity was never launched.
             // However, if we're keeping the activity and making it visible, we can leave it on.
             if (reorderMode != REORDER_KEEP_IN_PLACE) {
-                mStackSupervisor.sendPowerHintForLaunchEndIfNeeded();
+                mService.mRootActivityContainer.sendPowerHintForLaunchEndIfNeeded();
             }
 
             mService.mH.post(
@@ -290,8 +344,8 @@
                     }
 
                     mWindowManager.prepareAppTransition(TRANSIT_NONE, false);
-                    mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, false);
-                    mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                    mService.mRootActivityContainer.ensureActivitiesVisible(null, 0, false);
+                    mService.mRootActivityContainer.resumeFocusedStacksTopActivities();
 
                     // No reason to wait for the pausing activity in this case, as the hiding of
                     // surfaces needs to be done immediately.
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index 6627c2d..83ba384 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -21,7 +21,9 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 import static android.view.RemoteAnimationTarget.MODE_CLOSING;
 import static android.view.RemoteAnimationTarget.MODE_OPENING;
+import static android.view.WindowManager.DOCKED_INVALID;
 import static android.view.WindowManager.INPUT_CONSUMER_RECENTS_ANIMATION;
+
 import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
 import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_RECENTS_ANIM;
 import static com.android.server.wm.AnimationAdapterProto.REMOTE;
@@ -43,18 +45,21 @@
 import android.util.SparseBooleanArray;
 import android.util.SparseIntArray;
 import android.util.proto.ProtoOutputStream;
-import android.view.InputWindowHandle;
 import android.view.IRecentsAnimationController;
 import android.view.IRecentsAnimationRunner;
+import android.view.InputWindowHandle;
 import android.view.RemoteAnimationTarget;
 import android.view.SurfaceControl;
 import android.view.SurfaceControl.Transaction;
+
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.server.LocalServices;
 import com.android.server.inputmethod.InputMethodManagerInternal;
 import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
 import com.android.server.wm.utils.InsetUtils;
+
 import com.google.android.collect.Sets;
+
 import java.io.PrintWriter;
 import java.util.ArrayList;
 
@@ -320,7 +325,11 @@
         }
 
         // Save the minimized home height
-        dc.getDockedDividerController().getHomeStackBoundsInDockedMode(mMinimizedHomeBounds);
+        final TaskStack dockedStack = dc.getSplitScreenPrimaryStackIgnoringVisibility();
+        dc.getDockedDividerController().getHomeStackBoundsInDockedMode(
+                dc.getConfiguration(),
+                dockedStack == null ? DOCKED_INVALID : dockedStack.getDockSide(),
+                mMinimizedHomeBounds);
 
         mService.mWindowPlacerLocked.performSurfacePlacement();
     }
@@ -495,10 +504,12 @@
     public void binderDied() {
         cancelAnimation(REORDER_MOVE_TO_ORIGINAL_POSITION, "binderDied");
 
-        // Clear associated input consumers on runner death
-        final InputMonitor inputMonitor =
-                mService.mRoot.getDisplayContent(mDisplayId).getInputMonitor();
-        inputMonitor.destroyInputConsumer(INPUT_CONSUMER_RECENTS_ANIMATION);
+        synchronized (mService.getWindowManagerLock()) {
+            // Clear associated input consumers on runner death
+            final InputMonitor inputMonitor =
+                    mService.mRoot.getDisplayContent(mDisplayId).getInputMonitor();
+            inputMonitor.destroyInputConsumer(INPUT_CONSUMER_RECENTS_ANIMATION);
+        }
     }
 
     void checkAnimationReady(WallpaperController wallpaperController) {
@@ -594,8 +605,8 @@
             mTask = task;
             mIsRecentTaskInvisible = isRecentTaskInvisible;
             final WindowContainer container = mTask.getParent();
-            container.getRelativePosition(mPosition);
-            container.getBounds(mBounds);
+            container.getRelativeDisplayedPosition(mPosition);
+            mBounds.set(container.getDisplayedBounds());
         }
 
         RemoteAnimationTarget createRemoteAnimationApp() {
diff --git a/services/core/java/com/android/server/wm/RootActivityContainer.java b/services/core/java/com/android/server/wm/RootActivityContainer.java
new file mode 100644
index 0000000..1d86b46
--- /dev/null
+++ b/services/core/java/com/android/server/wm/RootActivityContainer.java
@@ -0,0 +1,2297 @@
+/*
+ * 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.server.wm;
+
+import static android.app.ActivityTaskManager.INVALID_STACK_ID;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+import static android.app.WindowConfiguration.activityTypeToString;
+import static android.app.WindowConfiguration.windowingModeToString;
+import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
+import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_INSTANCE;
+import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_TASK;
+import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;
+import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.Display.INVALID_DISPLAY;
+
+import static com.android.server.am.ActivityStackSupervisorProto.CONFIGURATION_CONTAINER;
+import static com.android.server.am.ActivityStackSupervisorProto.DISPLAYS;
+import static com.android.server.am.ActivityStackSupervisorProto.FOCUSED_STACK_ID;
+import static com.android.server.am.ActivityStackSupervisorProto.IS_HOME_RECENTS_COMPONENT;
+import static com.android.server.am.ActivityStackSupervisorProto.KEYGUARD_CONTROLLER;
+import static com.android.server.am.ActivityStackSupervisorProto.PENDING_ACTIVITIES;
+import static com.android.server.am.ActivityStackSupervisorProto.RESUMED_ACTIVITY;
+import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
+import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
+import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
+import static com.android.server.wm.ActivityStack.ActivityState.STOPPING;
+import static com.android.server.wm.ActivityStackSupervisor.DEFER_RESUME;
+import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
+import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
+import static com.android.server.wm.ActivityStackSupervisor.dumpHistoryList;
+import static com.android.server.wm.ActivityStackSupervisor.printThisActivity;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RECENTS;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RELEASE;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_STACK;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_STATES;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_TASKS;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_RECENTS;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_RELEASE;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_STATES;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_TASKS;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
+import static com.android.server.wm.ActivityTaskManagerService.ANIMATE;
+import static com.android.server.wm.TaskRecord.REPARENT_LEAVE_STACK_IN_PLACE;
+import static com.android.server.wm.TaskRecord.REPARENT_MOVE_STACK_TO_FRONT;
+
+import static java.lang.Integer.MAX_VALUE;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.app.ActivityManager;
+import android.app.ActivityOptions;
+import android.app.AppGlobals;
+import android.app.WindowConfiguration;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.ResolveInfo;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.graphics.Rect;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManagerInternal;
+import android.hardware.power.V1_0.PowerHint;
+import android.os.Build;
+import android.os.FactoryTest;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.os.Trace;
+import android.os.UserHandle;
+import android.service.voice.IVoiceInteractionSession;
+import android.util.ArraySet;
+import android.util.DisplayMetrics;
+import android.util.IntArray;
+import android.util.Slog;
+import android.util.SparseArray;
+import android.util.SparseIntArray;
+import android.util.TimeUtils;
+import android.util.proto.ProtoOutputStream;
+import android.view.Display;
+import android.view.DisplayInfo;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.LocalServices;
+import com.android.server.am.ActivityManagerService;
+import com.android.server.am.AppTimeTracker;
+import com.android.server.am.UserState;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Root node for activity containers.
+ * TODO: This class is mostly temporary to separate things out of ActivityStackSupervisor.java. The
+ * intention is to have this merged with RootWindowContainer.java as part of unifying the hierarchy.
+ */
+class RootActivityContainer extends ConfigurationContainer
+        implements DisplayManager.DisplayListener {
+
+    private static final String TAG = TAG_WITH_CLASS_NAME ? "RootActivityContainer" : TAG_ATM;
+    static final String TAG_TASKS = TAG + POSTFIX_TASKS;
+    private static final String TAG_RELEASE = TAG + POSTFIX_RELEASE;
+    static final String TAG_STATES = TAG + POSTFIX_STATES;
+    private static final String TAG_RECENTS = TAG + POSTFIX_RECENTS;
+
+    /**
+     * The modes which affect which tasks are returned when calling
+     * {@link RootActivityContainer#anyTaskForId(int)}.
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({
+            MATCH_TASK_IN_STACKS_ONLY,
+            MATCH_TASK_IN_STACKS_OR_RECENT_TASKS,
+            MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE
+    })
+    public @interface AnyTaskForIdMatchTaskMode {}
+    // Match only tasks in the current stacks
+    static final int MATCH_TASK_IN_STACKS_ONLY = 0;
+    // Match either tasks in the current stacks, or in the recent tasks if not found in the stacks
+    static final int MATCH_TASK_IN_STACKS_OR_RECENT_TASKS = 1;
+    // Match either tasks in the current stacks, or in the recent tasks, restoring it to the
+    // provided stack id
+    static final int MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE = 2;
+
+    ActivityTaskManagerService mService;
+    ActivityStackSupervisor mStackSupervisor;
+    WindowManagerService mWindowManager;
+    DisplayManager mDisplayManager;
+    private DisplayManagerInternal mDisplayManagerInternal;
+    // TODO: Remove after object merge with RootWindowContainer.
+    private RootWindowContainer mRootWindowContainer;
+
+    /**
+     * List of displays which contain activities, sorted by z-order.
+     * The last entry in the list is the topmost.
+     */
+    private final ArrayList<ActivityDisplay> mActivityDisplays = new ArrayList<>();
+
+    /** Reference to default display so we can quickly look it up. */
+    private ActivityDisplay mDefaultDisplay;
+    private final SparseArray<IntArray> mDisplayAccessUIDs = new SparseArray<>();
+
+    /** The current user */
+    int mCurrentUser;
+    /** Stack id of the front stack when user switched, indexed by userId. */
+    SparseIntArray mUserStackInFront = new SparseIntArray(2);
+
+    /**
+     * A list of tokens that cause the top activity to be put to sleep.
+     * They are used by components that may hide and block interaction with underlying
+     * activities.
+     */
+    final ArrayList<ActivityTaskManagerInternal.SleepToken> mSleepTokens = new ArrayList<>();
+
+    /** Is dock currently minimized. */
+    boolean mIsDockMinimized;
+
+    /** Set when a power hint has started, but not ended. */
+    private boolean mPowerHintSent;
+
+    // The default minimal size that will be used if the activity doesn't specify its minimal size.
+    // It will be calculated when the default display gets added.
+    int mDefaultMinSizeOfResizeableTaskDp = -1;
+
+    // Whether tasks have moved and we need to rank the tasks before next OOM scoring
+    private boolean mTaskLayersChanged = true;
+
+    private final ArrayList<ActivityRecord> mTmpActivityList = new ArrayList<>();
+
+    private final FindTaskResult mTmpFindTaskResult = new FindTaskResult();
+    static class FindTaskResult {
+        ActivityRecord mRecord;
+        boolean mIdealMatch;
+
+        void clear() {
+            mRecord = null;
+            mIdealMatch = false;
+        }
+
+        void setTo(FindTaskResult result) {
+            mRecord = result.mRecord;
+            mIdealMatch = result.mIdealMatch;
+        }
+    }
+
+    RootActivityContainer(ActivityTaskManagerService service) {
+        mService = service;
+        mStackSupervisor = service.mStackSupervisor;
+        mStackSupervisor.mRootActivityContainer = this;
+    }
+
+    @VisibleForTesting
+    void setWindowContainer(RootWindowContainer container) {
+        mRootWindowContainer = container;
+        mRootWindowContainer.setRootActivityContainer(this);
+    }
+
+    void setWindowManager(WindowManagerService wm) {
+        mWindowManager = wm;
+        setWindowContainer(mWindowManager.mRoot);
+        mDisplayManager = mService.mContext.getSystemService(DisplayManager.class);
+        mDisplayManager.registerDisplayListener(this, mService.mH);
+        mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
+
+        final Display[] displays = mDisplayManager.getDisplays();
+        for (int displayNdx = 0; displayNdx < displays.length; ++displayNdx) {
+            final Display display = displays[displayNdx];
+            final ActivityDisplay activityDisplay = new ActivityDisplay(this, display);
+            if (activityDisplay.mDisplayId == DEFAULT_DISPLAY) {
+                mDefaultDisplay = activityDisplay;
+            }
+            addChild(activityDisplay, ActivityDisplay.POSITION_TOP);
+        }
+        calculateDefaultMinimalSizeOfResizeableTasks();
+
+        final ActivityDisplay defaultDisplay = getDefaultDisplay();
+
+        defaultDisplay.getOrCreateStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
+        positionChildAt(defaultDisplay, ActivityDisplay.POSITION_TOP);
+    }
+
+    // TODO(multi-display): Look at all callpoints to make sure they make sense in multi-display.
+    ActivityDisplay getDefaultDisplay() {
+        return mDefaultDisplay;
+    }
+
+    /**
+     * Get an existing instance of {@link ActivityDisplay} that has the given uniqueId. Unique ID is
+     * defined in {@link DisplayInfo#uniqueId}.
+     *
+     * @param uniqueId the unique ID of the display
+     * @return the {@link ActivityDisplay} or {@code null} if nothing is found.
+     */
+    ActivityDisplay getActivityDisplay(String uniqueId) {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityDisplay display = mActivityDisplays.get(i);
+            final boolean isValid = display.mDisplay.isValid();
+            if (isValid && display.mDisplay.getUniqueId().equals(uniqueId)) {
+                return display;
+            }
+        }
+
+        return null;
+    }
+
+    // TODO: Look into consolidating with getActivityDisplayOrCreate()
+    ActivityDisplay getActivityDisplay(int displayId) {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityDisplay activityDisplay = mActivityDisplays.get(i);
+            if (activityDisplay.mDisplayId == displayId) {
+                return activityDisplay;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Get an existing instance of {@link ActivityDisplay} or create new if there is a
+     * corresponding record in display manager.
+     */
+    // TODO: Look into consolidating with getActivityDisplay()
+    ActivityDisplay getActivityDisplayOrCreate(int displayId) {
+        ActivityDisplay activityDisplay = getActivityDisplay(displayId);
+        if (activityDisplay != null) {
+            return activityDisplay;
+        }
+        if (mDisplayManager == null) {
+            // The system isn't fully initialized yet.
+            return null;
+        }
+        final Display display = mDisplayManager.getDisplay(displayId);
+        if (display == null) {
+            // The display is not registered in DisplayManager.
+            return null;
+        }
+        // The display hasn't been added to ActivityManager yet, create a new record now.
+        activityDisplay = new ActivityDisplay(this, display);
+        addChild(activityDisplay, ActivityDisplay.POSITION_BOTTOM);
+        return activityDisplay;
+    }
+
+    /** Check if display with specified id is added to the list. */
+    boolean isDisplayAdded(int displayId) {
+        return getActivityDisplayOrCreate(displayId) != null;
+    }
+
+    ActivityRecord getDefaultDisplayHomeActivity() {
+        return getDefaultDisplayHomeActivityForUser(mCurrentUser);
+    }
+
+    ActivityRecord getDefaultDisplayHomeActivityForUser(int userId) {
+        return getActivityDisplay(DEFAULT_DISPLAY).getHomeActivityForUser(userId);
+    }
+
+    boolean startHomeOnAllDisplays(int userId, String reason) {
+        boolean homeStarted = false;
+        for (int i = mActivityDisplays.size() - 1; i >= 0; i--) {
+            final int displayId = mActivityDisplays.get(i).mDisplayId;
+            homeStarted |= startHomeOnDisplay(userId, reason, displayId);
+        }
+        return homeStarted;
+    }
+
+    /**
+     * This starts home activity on displays that can have system decorations and only if the
+     * home activity can have multiple instances.
+     */
+    boolean startHomeOnDisplay(int userId, String reason, int displayId) {
+        final Intent homeIntent = mService.getHomeIntent();
+        final ActivityInfo aInfo = resolveHomeActivity(userId, homeIntent);
+        if (aInfo == null) {
+            return false;
+        }
+
+        if (!canStartHomeOnDisplay(aInfo, displayId,
+                false /* allowInstrumenting */)) {
+            return false;
+        }
+
+        // Update the reason for ANR debugging to verify if the user activity is the one that
+        // actually launched.
+        final String myReason = reason + ":" + userId + ":" + UserHandle.getUserId(
+                aInfo.applicationInfo.uid);
+        mService.getActivityStartController().startHomeActivity(homeIntent, aInfo, myReason,
+                displayId);
+        return true;
+    }
+
+    /**
+     * This resolves the home activity info and updates the home component of the given intent.
+     * @return the home activity info if any.
+     */
+    private ActivityInfo resolveHomeActivity(int userId, Intent homeIntent) {
+        final int flags = ActivityManagerService.STOCK_PM_FLAGS;
+        final ComponentName comp = homeIntent.getComponent();
+        ActivityInfo aInfo = null;
+        try {
+            if (comp != null) {
+                // Factory test.
+                aInfo = AppGlobals.getPackageManager().getActivityInfo(comp, flags, userId);
+            } else {
+                final String resolvedType =
+                        homeIntent.resolveTypeIfNeeded(mService.mContext.getContentResolver());
+                final ResolveInfo info = AppGlobals.getPackageManager()
+                        .resolveIntent(homeIntent, resolvedType, flags, userId);
+                if (info != null) {
+                    aInfo = info.activityInfo;
+                }
+            }
+        } catch (RemoteException e) {
+            // ignore
+        }
+
+        if (aInfo == null) {
+            Slog.wtf(TAG, "No home screen found for " + homeIntent, new Throwable());
+            return null;
+        }
+
+        homeIntent.setComponent(new ComponentName(aInfo.applicationInfo.packageName, aInfo.name));
+        aInfo = new ActivityInfo(aInfo);
+        aInfo.applicationInfo = mService.getAppInfoForUser(aInfo.applicationInfo, userId);
+        homeIntent.setFlags(homeIntent.getFlags() | FLAG_ACTIVITY_NEW_TASK);
+        return aInfo;
+    }
+
+    boolean resumeHomeActivity(ActivityRecord prev, String reason, int displayId) {
+        if (!mService.isBooting() && !mService.isBooted()) {
+            // Not ready yet!
+            return false;
+        }
+
+        if (displayId == INVALID_DISPLAY) {
+            displayId = DEFAULT_DISPLAY;
+        }
+
+        final ActivityRecord r = getActivityDisplay(displayId).getHomeActivity();
+        final String myReason = reason + " resumeHomeActivity";
+
+        // Only resume home activity if isn't finishing.
+        if (r != null && !r.finishing) {
+            r.moveFocusableActivityToTop(myReason);
+            return resumeFocusedStacksTopActivities(r.getActivityStack(), prev, null);
+        }
+        return startHomeOnDisplay(mCurrentUser, myReason, displayId);
+    }
+
+    /**
+     * Check if home activity start should be allowed on a display.
+     * @param homeInfo {@code ActivityInfo} of the home activity that is going to be launched.
+     * @param displayId The id of the target display.
+     * @param allowInstrumenting Whether launching home should be allowed if being instrumented.
+     * @return {@code true} if allow to launch, {@code false} otherwise.
+     */
+    boolean canStartHomeOnDisplay(ActivityInfo homeInfo, int displayId,
+            boolean allowInstrumenting) {
+        if (mService.mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL
+                && mService.mTopAction == null) {
+            // We are running in factory test mode, but unable to find the factory test app, so
+            // just sit around displaying the error message and don't try to start anything.
+            return false;
+        }
+
+        final WindowProcessController app =
+                mService.getProcessController(homeInfo.processName, homeInfo.applicationInfo.uid);
+        if (!allowInstrumenting && app != null && app.isInstrumenting()) {
+            // Don't do this if the home app is currently being instrumented.
+            return false;
+        }
+
+        if (displayId == DEFAULT_DISPLAY || (displayId != INVALID_DISPLAY
+                && displayId == mService.mVr2dDisplayId)) {
+            // No restrictions to default display or vr 2d display.
+            return true;
+        }
+
+        final ActivityDisplay display = getActivityDisplay(displayId);
+        if (display == null || display.isRemoved() || !display.supportsSystemDecorations()) {
+            // Can't launch home on display that doesn't support system decorations.
+            return false;
+        }
+
+        final boolean supportMultipleInstance = homeInfo.launchMode != LAUNCH_SINGLE_TASK
+                && homeInfo.launchMode != LAUNCH_SINGLE_INSTANCE
+                && homeInfo.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.Q;
+        if (!supportMultipleInstance) {
+            // Can't launch home on other displays if it requested to be single instance. Also we
+            // don't allow home applications that target before Q to have multiple home activity
+            // instances because they may not be expected to have multiple home scenario and
+            // haven't explicitly request for single instance.
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Ensure all activities visibility, update orientation and configuration.
+     *
+     * @param starting The currently starting activity or {@code null} if there is none.
+     * @param displayId The id of the display where operation is executed.
+     * @param markFrozenIfConfigChanged Whether to set {@link ActivityRecord#frozenBeforeDestroy} to
+     *                                  {@code true} if config changed.
+     * @param deferResume Whether to defer resume while updating config.
+     * @return 'true' if starting activity was kept or wasn't provided, 'false' if it was relaunched
+     *         because of configuration update.
+     */
+    boolean ensureVisibilityAndConfig(ActivityRecord starting, int displayId,
+            boolean markFrozenIfConfigChanged, boolean deferResume) {
+        // First ensure visibility without updating the config just yet. We need this to know what
+        // activities are affecting configuration now.
+        // Passing null here for 'starting' param value, so that visibility of actual starting
+        // activity will be properly updated.
+        ensureActivitiesVisible(null /* starting */, 0 /* configChanges */,
+                false /* preserveWindows */, false /* notifyClients */);
+
+        if (displayId == INVALID_DISPLAY) {
+            // The caller didn't provide a valid display id, skip updating config.
+            return true;
+        }
+
+        // Force-update the orientation from the WindowManager, since we need the true configuration
+        // to send to the client now.
+        final Configuration config = mWindowManager.updateOrientationFromAppTokens(
+                getDisplayOverrideConfiguration(displayId),
+                starting != null && starting.mayFreezeScreenLocked(starting.app)
+                        ? starting.appToken : null,
+                displayId, true /* forceUpdate */);
+        if (starting != null && markFrozenIfConfigChanged && config != null) {
+            starting.frozenBeforeDestroy = true;
+        }
+
+        // Update the configuration of the activities on the display.
+        return mService.updateDisplayOverrideConfigurationLocked(config, starting, deferResume,
+                displayId);
+    }
+
+    /**
+     * @return a list of activities which are the top ones in each visible stack. The first
+     * entry will be the focused activity.
+     */
+    List<IBinder> getTopVisibleActivities() {
+        final ArrayList<IBinder> topActivityTokens = new ArrayList<>();
+        final ActivityStack topFocusedStack = getTopDisplayFocusedStack();
+        // Traverse all displays.
+        for (int i = mActivityDisplays.size() - 1; i >= 0; i--) {
+            final ActivityDisplay display = mActivityDisplays.get(i);
+            // Traverse all stacks on a display.
+            for (int j = display.getChildCount() - 1; j >= 0; --j) {
+                final ActivityStack stack = display.getChildAt(j);
+                // Get top activity from a visible stack and add it to the list.
+                if (stack.shouldBeVisible(null /* starting */)) {
+                    final ActivityRecord top = stack.getTopActivity();
+                    if (top != null) {
+                        if (stack == topFocusedStack) {
+                            topActivityTokens.add(0, top.appToken);
+                        } else {
+                            topActivityTokens.add(top.appToken);
+                        }
+                    }
+                }
+            }
+        }
+        return topActivityTokens;
+    }
+
+    ActivityStack getTopDisplayFocusedStack() {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityStack focusedStack = mActivityDisplays.get(i).getFocusedStack();
+            if (focusedStack != null) {
+                return focusedStack;
+            }
+        }
+        return null;
+    }
+
+    ActivityRecord getTopResumedActivity() {
+        final ActivityStack focusedStack = getTopDisplayFocusedStack();
+        if (focusedStack == null) {
+            return null;
+        }
+        final ActivityRecord resumedActivity = focusedStack.getResumedActivity();
+        if (resumedActivity != null && resumedActivity.app != null) {
+            return resumedActivity;
+        }
+        // The top focused stack might not have a resumed activity yet - look on all displays in
+        // focus order.
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityDisplay display = mActivityDisplays.get(i);
+            final ActivityRecord resumedActivityOnDisplay = display.getResumedActivity();
+            if (resumedActivityOnDisplay != null) {
+                return resumedActivityOnDisplay;
+            }
+        }
+        return null;
+    }
+
+    boolean isFocusable(ConfigurationContainer container, boolean alwaysFocusable) {
+        if (container.inSplitScreenPrimaryWindowingMode() && mIsDockMinimized) {
+            return false;
+        }
+
+        return container.getWindowConfiguration().canReceiveKeys() || alwaysFocusable;
+    }
+
+    boolean isTopDisplayFocusedStack(ActivityStack stack) {
+        return stack != null && stack == getTopDisplayFocusedStack();
+    }
+
+    void updatePreviousProcess(ActivityRecord r) {
+        // Now that this process has stopped, we may want to consider it to be the previous app to
+        // try to keep around in case the user wants to return to it.
+
+        // First, found out what is currently the foreground app, so that we don't blow away the
+        // previous app if this activity is being hosted by the process that is actually still the
+        // foreground.
+        WindowProcessController fgApp = null;
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                if (isTopDisplayFocusedStack(stack)) {
+                    final ActivityRecord resumedActivity = stack.getResumedActivity();
+                    if (resumedActivity != null) {
+                        fgApp = resumedActivity.app;
+                    } else if (stack.mPausingActivity != null) {
+                        fgApp = stack.mPausingActivity.app;
+                    }
+                    break;
+                }
+            }
+        }
+
+        // Now set this one as the previous process, only if that really makes sense to.
+        if (r.hasProcess() && fgApp != null && r.app != fgApp
+                && r.lastVisibleTime > mService.mPreviousProcessVisibleTime
+                && r.app != mService.mHomeProcess) {
+            mService.mPreviousProcess = r.app;
+            mService.mPreviousProcessVisibleTime = r.lastVisibleTime;
+        }
+    }
+
+    boolean attachApplication(WindowProcessController app) throws RemoteException {
+        final String processName = app.mName;
+        boolean didSomething = false;
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            final ActivityStack stack = display.getFocusedStack();
+            if (stack != null) {
+                stack.getAllRunningVisibleActivitiesLocked(mTmpActivityList);
+                final ActivityRecord top = stack.topRunningActivityLocked();
+                final int size = mTmpActivityList.size();
+                for (int i = 0; i < size; i++) {
+                    final ActivityRecord activity = mTmpActivityList.get(i);
+                    if (activity.app == null && app.mUid == activity.info.applicationInfo.uid
+                            && processName.equals(activity.processName)) {
+                        try {
+                            if (mStackSupervisor.realStartActivityLocked(activity, app,
+                                    top == activity /* andResume */, true /* checkConfig */)) {
+                                didSomething = true;
+                            }
+                        } catch (RemoteException e) {
+                            Slog.w(TAG, "Exception in new application when starting activity "
+                                    + top.intent.getComponent().flattenToShortString(), e);
+                            throw e;
+                        }
+                    }
+                }
+            }
+        }
+        if (!didSomething) {
+            ensureActivitiesVisible(null, 0, false /* preserve_windows */);
+        }
+        return didSomething;
+    }
+
+    /**
+     * Make sure that all activities that need to be visible in the system actually are and update
+     * their configuration.
+     */
+    void ensureActivitiesVisible(ActivityRecord starting, int configChanges,
+            boolean preserveWindows) {
+        ensureActivitiesVisible(starting, configChanges, preserveWindows, true /* notifyClients */);
+    }
+
+    /**
+     * @see #ensureActivitiesVisible(ActivityRecord, int, boolean)
+     */
+    void ensureActivitiesVisible(ActivityRecord starting, int configChanges,
+            boolean preserveWindows, boolean notifyClients) {
+        mStackSupervisor.getKeyguardController().beginActivityVisibilityUpdate();
+        try {
+            // First the front stacks. In case any are not fullscreen and are in front of home.
+            for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+                final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+                for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                    final ActivityStack stack = display.getChildAt(stackNdx);
+                    stack.ensureActivitiesVisibleLocked(starting, configChanges, preserveWindows,
+                            notifyClients);
+                }
+            }
+        } finally {
+            mStackSupervisor.getKeyguardController().endActivityVisibilityUpdate();
+        }
+    }
+
+    boolean switchUser(int userId, UserState uss) {
+        final int focusStackId = getTopDisplayFocusedStack().getStackId();
+        // We dismiss the docked stack whenever we switch users.
+        final ActivityStack dockedStack = getDefaultDisplay().getSplitScreenPrimaryStack();
+        if (dockedStack != null) {
+            mStackSupervisor.moveTasksToFullscreenStackLocked(
+                    dockedStack, dockedStack.isFocusedStackOnDisplay());
+        }
+        // Also dismiss the pinned stack whenever we switch users. Removing the pinned stack will
+        // also cause all tasks to be moved to the fullscreen stack at a position that is
+        // appropriate.
+        removeStacksInWindowingModes(WINDOWING_MODE_PINNED);
+
+        mUserStackInFront.put(mCurrentUser, focusStackId);
+        final int restoreStackId =
+                mUserStackInFront.get(userId, getDefaultDisplay().getHomeStack().mStackId);
+        mCurrentUser = userId;
+
+        mStackSupervisor.mStartingUsers.add(uss);
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.switchUserLocked(userId);
+                TaskRecord task = stack.topTask();
+                if (task != null) {
+                    stack.positionChildWindowContainerAtTop(task);
+                }
+            }
+        }
+
+        ActivityStack stack = getStack(restoreStackId);
+        if (stack == null) {
+            stack = getDefaultDisplay().getHomeStack();
+        }
+        final boolean homeInFront = stack.isActivityTypeHome();
+        if (stack.isOnHomeDisplay()) {
+            stack.moveToFront("switchUserOnHomeDisplay");
+        } else {
+            // Stack was moved to another display while user was swapped out.
+            resumeHomeActivity(null, "switchUserOnOtherDisplay", DEFAULT_DISPLAY);
+        }
+        return homeInFront;
+    }
+
+    void removeUser(int userId) {
+        mUserStackInFront.delete(userId);
+    }
+
+    /**
+     * Update the last used stack id for non-current user (current user's last
+     * used stack is the focused stack)
+     */
+    void updateUserStack(int userId, ActivityStack stack) {
+        if (userId != mCurrentUser) {
+            mUserStackInFront.put(userId, stack != null ? stack.getStackId()
+                    : getDefaultDisplay().getHomeStack().mStackId);
+        }
+    }
+
+    void resizeStack(ActivityStack stack, Rect bounds, Rect tempTaskBounds,
+            Rect tempTaskInsetBounds, boolean preserveWindows, boolean allowResizeInDockedMode,
+            boolean deferResume) {
+
+        if (stack.inSplitScreenPrimaryWindowingMode()) {
+            mStackSupervisor.resizeDockedStackLocked(bounds, tempTaskBounds,
+                    tempTaskInsetBounds, null, null, preserveWindows, deferResume);
+            return;
+        }
+
+        final boolean splitScreenActive = getDefaultDisplay().hasSplitScreenPrimaryStack();
+        if (!allowResizeInDockedMode
+                && !stack.getWindowConfiguration().tasksAreFloating() && splitScreenActive) {
+            // If the docked stack exists, don't resize non-floating stacks independently of the
+            // size computed from the docked stack size (otherwise they will be out of sync)
+            return;
+        }
+
+        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeStack_" + stack.mStackId);
+        mWindowManager.deferSurfaceLayout();
+        try {
+            if (stack.affectedBySplitScreenResize()) {
+                if (bounds == null && stack.inSplitScreenWindowingMode()) {
+                    // null bounds = fullscreen windowing mode...at least for now.
+                    stack.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
+                } else if (splitScreenActive) {
+                    // If we are in split-screen mode and this stack support split-screen, then
+                    // it should be split-screen secondary mode. i.e. adjacent to the docked stack.
+                    stack.setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+                }
+            }
+            stack.resize(bounds, tempTaskBounds, tempTaskInsetBounds);
+            if (!deferResume) {
+                stack.ensureVisibleActivitiesConfigurationLocked(
+                        stack.topRunningActivityLocked(), preserveWindows);
+            }
+        } finally {
+            mWindowManager.continueSurfaceLayout();
+            Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
+        }
+    }
+
+    /**
+     * Move stack with all its existing content to specified display.
+     * @param stackId Id of stack to move.
+     * @param displayId Id of display to move stack to.
+     * @param onTop Indicates whether container should be place on top or on bottom.
+     */
+    void moveStackToDisplay(int stackId, int displayId, boolean onTop) {
+        final ActivityDisplay activityDisplay = getActivityDisplayOrCreate(displayId);
+        if (activityDisplay == null) {
+            throw new IllegalArgumentException("moveStackToDisplay: Unknown displayId="
+                    + displayId);
+        }
+        final ActivityStack stack = getStack(stackId);
+        if (stack == null) {
+            throw new IllegalArgumentException("moveStackToDisplay: Unknown stackId="
+                    + stackId);
+        }
+
+        final ActivityDisplay currentDisplay = stack.getDisplay();
+        if (currentDisplay == null) {
+            throw new IllegalStateException("moveStackToDisplay: Stack with stack=" + stack
+                    + " is not attached to any display.");
+        }
+
+        if (currentDisplay.mDisplayId == displayId) {
+            throw new IllegalArgumentException("Trying to move stack=" + stack
+                    + " to its current displayId=" + displayId);
+        }
+
+        stack.reparent(activityDisplay, onTop, false /* displayRemoved */);
+        // TODO(multi-display): resize stacks properly if moved from split-screen.
+    }
+
+    boolean moveTopStackActivityToPinnedStack(int stackId) {
+        final ActivityStack stack = getStack(stackId);
+        if (stack == null) {
+            throw new IllegalArgumentException(
+                    "moveTopStackActivityToPinnedStack: Unknown stackId=" + stackId);
+        }
+
+        final ActivityRecord r = stack.topRunningActivityLocked();
+        if (r == null) {
+            Slog.w(TAG, "moveTopStackActivityToPinnedStack: No top running activity"
+                    + " in stack=" + stack);
+            return false;
+        }
+
+        if (!mService.mForceResizableActivities && !r.supportsPictureInPicture()) {
+            Slog.w(TAG, "moveTopStackActivityToPinnedStack: Picture-In-Picture not supported for "
+                    + " r=" + r);
+            return false;
+        }
+
+        moveActivityToPinnedStack(r, null /* sourceBounds */, 0f /* aspectRatio */,
+                "moveTopActivityToPinnedStack");
+        return true;
+    }
+
+    void moveActivityToPinnedStack(ActivityRecord r, Rect sourceHintBounds, float aspectRatio,
+            String reason) {
+
+        mWindowManager.deferSurfaceLayout();
+
+        final ActivityDisplay display = r.getActivityStack().getDisplay();
+        PinnedActivityStack stack = display.getPinnedStack();
+
+        // This will clear the pinned stack by moving an existing task to the full screen stack,
+        // ensuring only one task is present.
+        if (stack != null) {
+            mStackSupervisor.moveTasksToFullscreenStackLocked(stack, !ON_TOP);
+        }
+
+        // Need to make sure the pinned stack exist so we can resize it below...
+        stack = display.getOrCreateStack(WINDOWING_MODE_PINNED, r.getActivityType(), ON_TOP);
+
+        // Calculate the target bounds here before the task is reparented back into pinned windowing
+        // mode (which will reset the saved bounds)
+        final Rect destBounds = stack.getDefaultPictureInPictureBounds(aspectRatio);
+
+        try {
+            final TaskRecord task = r.getTaskRecord();
+            // Resize the pinned stack to match the current size of the task the activity we are
+            // going to be moving is currently contained in. We do this to have the right starting
+            // animation bounds for the pinned stack to the desired bounds the caller wants.
+            resizeStack(stack, task.getOverrideBounds(), null /* tempTaskBounds */,
+                    null /* tempTaskInsetBounds */, !PRESERVE_WINDOWS,
+                    true /* allowResizeInDockedMode */, !DEFER_RESUME);
+
+            if (task.mActivities.size() == 1) {
+                // Defer resume until below, and do not schedule PiP changes until we animate below
+                task.reparent(stack, ON_TOP, REPARENT_MOVE_STACK_TO_FRONT, !ANIMATE, DEFER_RESUME,
+                        false /* schedulePictureInPictureModeChange */, reason);
+            } else {
+                // There are multiple activities in the task and moving the top activity should
+                // reveal/leave the other activities in their original task.
+
+                // Currently, we don't support reparenting activities across tasks in two different
+                // stacks, so instead, just create a new task in the same stack, reparent the
+                // activity into that task, and then reparent the whole task to the new stack. This
+                // ensures that all the necessary work to migrate states in the old and new stacks
+                // is also done.
+                final TaskRecord newTask = task.getStack().createTaskRecord(
+                        mStackSupervisor.getNextTaskIdForUserLocked(r.mUserId), r.info,
+                        r.intent, null, null, true);
+                r.reparent(newTask, MAX_VALUE, "moveActivityToStack");
+
+                // Defer resume until below, and do not schedule PiP changes until we animate below
+                newTask.reparent(stack, ON_TOP, REPARENT_MOVE_STACK_TO_FRONT, !ANIMATE,
+                        DEFER_RESUME, false /* schedulePictureInPictureModeChange */, reason);
+            }
+
+            // Reset the state that indicates it can enter PiP while pausing after we've moved it
+            // to the pinned stack
+            r.supportsEnterPipOnTaskSwitch = false;
+        } finally {
+            mWindowManager.continueSurfaceLayout();
+        }
+
+        stack.animateResizePinnedStack(sourceHintBounds, destBounds, -1 /* animationDuration */,
+                true /* fromFullscreen */);
+
+        // Update the visibility of all activities after the they have been reparented to the new
+        // stack.  This MUST run after the animation above is scheduled to ensure that the windows
+        // drawn signal is scheduled after the bounds animation start call on the bounds animator
+        // thread.
+        ensureActivitiesVisible(null, 0, false /* preserveWindows */);
+        resumeFocusedStacksTopActivities();
+
+        mService.getTaskChangeNotificationController().notifyActivityPinned(r);
+    }
+
+    void executeAppTransitionForAllDisplay() {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            display.getWindowContainerController().executeAppTransition();
+        }
+    }
+
+    void setDockedStackMinimized(boolean minimized) {
+        // Get currently focused stack before setting mIsDockMinimized. We do this because if
+        // split-screen is active, primary stack will not be focusable (see #isFocusable) while
+        // still occluding other stacks. This will cause getTopDisplayFocusedStack() to return null.
+        final ActivityStack current = getTopDisplayFocusedStack();
+        mIsDockMinimized = minimized;
+        if (mIsDockMinimized) {
+            if (current.inSplitScreenPrimaryWindowingMode()) {
+                // The primary split-screen stack can't be focused while it is minimize, so move
+                // focus to something else.
+                current.adjustFocusToNextFocusableStack("setDockedStackMinimized");
+            }
+        }
+    }
+
+    ActivityRecord findTask(ActivityRecord r, int preferredDisplayId) {
+        if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Looking for task of " + r);
+        mTmpFindTaskResult.clear();
+
+        // Looking up task on preferred display first
+        final ActivityDisplay preferredDisplay = getActivityDisplay(preferredDisplayId);
+        if (preferredDisplay != null) {
+            preferredDisplay.findTaskLocked(r, true /* isPreferredDisplay */, mTmpFindTaskResult);
+            if (mTmpFindTaskResult.mIdealMatch) {
+                return mTmpFindTaskResult.mRecord;
+            }
+        }
+
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            if (display.mDisplayId == preferredDisplayId) {
+                continue;
+            }
+
+            display.findTaskLocked(r, false /* isPreferredDisplay */, mTmpFindTaskResult);
+            if (mTmpFindTaskResult.mIdealMatch) {
+                return mTmpFindTaskResult.mRecord;
+            }
+        }
+
+        if (DEBUG_TASKS && mTmpFindTaskResult.mRecord == null) Slog.d(TAG_TASKS, "No task found");
+        return mTmpFindTaskResult.mRecord;
+    }
+
+    /**
+     * Finish the topmost activities in all stacks that belong to the crashed app.
+     * @param app The app that crashed.
+     * @param reason Reason to perform this action.
+     * @return The task id that was finished in this stack, or INVALID_TASK_ID if none was finished.
+     */
+    int finishTopCrashedActivities(WindowProcessController app, String reason) {
+        TaskRecord finishedTask = null;
+        ActivityStack focusedStack = getTopDisplayFocusedStack();
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            // It is possible that request to finish activity might also remove its task and stack,
+            // so we need to be careful with indexes in the loop and check child count every time.
+            for (int stackNdx = 0; stackNdx < display.getChildCount(); ++stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                final TaskRecord t = stack.finishTopCrashedActivityLocked(app, reason);
+                if (stack == focusedStack || finishedTask == null) {
+                    finishedTask = t;
+                }
+            }
+        }
+        return finishedTask != null ? finishedTask.taskId : INVALID_TASK_ID;
+    }
+
+    boolean resumeFocusedStacksTopActivities() {
+        return resumeFocusedStacksTopActivities(null, null, null);
+    }
+
+    boolean resumeFocusedStacksTopActivities(
+            ActivityStack targetStack, ActivityRecord target, ActivityOptions targetOptions) {
+
+        if (!mStackSupervisor.readyToResume()) {
+            return false;
+        }
+
+        if (targetStack != null && (targetStack.isTopStackOnDisplay()
+                || getTopDisplayFocusedStack() == targetStack)) {
+            return targetStack.resumeTopActivityUncheckedLocked(target, targetOptions);
+        }
+
+        // Resume all top activities in focused stacks on all displays.
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            final ActivityStack focusedStack = display.getFocusedStack();
+            if (focusedStack == null) {
+                continue;
+            }
+            final ActivityRecord r = focusedStack.topRunningActivityLocked();
+            if (r == null || !r.isState(RESUMED)) {
+                focusedStack.resumeTopActivityUncheckedLocked(null, null);
+            } else if (r.isState(RESUMED)) {
+                // Kick off any lingering app transitions form the MoveTaskToFront operation.
+                focusedStack.executeAppTransition(targetOptions);
+            }
+        }
+
+        return false;
+    }
+
+    void applySleepTokens(boolean applyToStacks) {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            // Set the sleeping state of the display.
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            final boolean displayShouldSleep = display.shouldSleep();
+            if (displayShouldSleep == display.isSleeping()) {
+                continue;
+            }
+            display.setIsSleeping(displayShouldSleep);
+
+            if (!applyToStacks) {
+                continue;
+            }
+
+            // Set the sleeping state of the stacks on the display.
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                if (displayShouldSleep) {
+                    stack.goToSleepIfPossible(false /* shuttingDown */);
+                } else {
+                    stack.awakeFromSleepingLocked();
+                    if (stack.isFocusedStackOnDisplay()
+                            && !mStackSupervisor.getKeyguardController()
+                            .isKeyguardOrAodShowing(display.mDisplayId)) {
+                        // If the keyguard is unlocked - resume immediately.
+                        // It is possible that the display will not be awake at the time we
+                        // process the keyguard going away, which can happen before the sleep token
+                        // is released. As a result, it is important we resume the activity here.
+                        resumeFocusedStacksTopActivities();
+                    }
+                }
+            }
+
+            if (displayShouldSleep || mStackSupervisor.mGoingToSleepActivities.isEmpty()) {
+                continue;
+            }
+            // The display is awake now, so clean up the going to sleep list.
+            for (Iterator<ActivityRecord> it =
+                 mStackSupervisor.mGoingToSleepActivities.iterator(); it.hasNext(); ) {
+                final ActivityRecord r = it.next();
+                if (r.getDisplayId() == display.mDisplayId) {
+                    it.remove();
+                }
+            }
+        }
+    }
+
+    protected <T extends ActivityStack> T getStack(int stackId) {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final T stack = mActivityDisplays.get(i).getStack(stackId);
+            if (stack != null) {
+                return stack;
+            }
+        }
+        return null;
+    }
+
+    /** @see ActivityDisplay#getStack(int, int) */
+    private <T extends ActivityStack> T getStack(int windowingMode, int activityType) {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final T stack = mActivityDisplays.get(i).getStack(windowingMode, activityType);
+            if (stack != null) {
+                return stack;
+            }
+        }
+        return null;
+    }
+
+    private ActivityManager.StackInfo getStackInfo(ActivityStack stack) {
+        final int displayId = stack.mDisplayId;
+        final ActivityDisplay display = getActivityDisplay(displayId);
+        ActivityManager.StackInfo info = new ActivityManager.StackInfo();
+        stack.getWindowContainerBounds(info.bounds);
+        info.displayId = displayId;
+        info.stackId = stack.mStackId;
+        info.userId = stack.mCurrentUser;
+        info.visible = stack.shouldBeVisible(null);
+        // A stack might be not attached to a display.
+        info.position = display != null ? display.getIndexOf(stack) : 0;
+        info.configuration.setTo(stack.getConfiguration());
+
+        ArrayList<TaskRecord> tasks = stack.getAllTasks();
+        final int numTasks = tasks.size();
+        int[] taskIds = new int[numTasks];
+        String[] taskNames = new String[numTasks];
+        Rect[] taskBounds = new Rect[numTasks];
+        int[] taskUserIds = new int[numTasks];
+        for (int i = 0; i < numTasks; ++i) {
+            final TaskRecord task = tasks.get(i);
+            taskIds[i] = task.taskId;
+            taskNames[i] = task.origActivity != null ? task.origActivity.flattenToString()
+                    : task.realActivity != null ? task.realActivity.flattenToString()
+                    : task.getTopActivity() != null ? task.getTopActivity().packageName
+                    : "unknown";
+            taskBounds[i] = new Rect();
+            task.getWindowContainerBounds(taskBounds[i]);
+            taskUserIds[i] = task.userId;
+        }
+        info.taskIds = taskIds;
+        info.taskNames = taskNames;
+        info.taskBounds = taskBounds;
+        info.taskUserIds = taskUserIds;
+
+        final ActivityRecord top = stack.topRunningActivityLocked();
+        info.topActivity = top != null ? top.intent.getComponent() : null;
+        return info;
+    }
+
+    ActivityManager.StackInfo getStackInfo(int stackId) {
+        ActivityStack stack = getStack(stackId);
+        if (stack != null) {
+            return getStackInfo(stack);
+        }
+        return null;
+    }
+
+    ActivityManager.StackInfo getStackInfo(int windowingMode, int activityType) {
+        final ActivityStack stack = getStack(windowingMode, activityType);
+        return (stack != null) ? getStackInfo(stack) : null;
+    }
+
+    ArrayList<ActivityManager.StackInfo> getAllStackInfos() {
+        ArrayList<ActivityManager.StackInfo> list = new ArrayList<>();
+        for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                list.add(getStackInfo(stack));
+            }
+        }
+        return list;
+    }
+
+    void deferUpdateBounds(int activityType) {
+        final ActivityStack stack = getStack(WINDOWING_MODE_UNDEFINED, activityType);
+        if (stack != null) {
+            stack.deferUpdateBounds();
+        }
+    }
+
+    void continueUpdateBounds(int activityType) {
+        final ActivityStack stack = getStack(WINDOWING_MODE_UNDEFINED, activityType);
+        if (stack != null) {
+            stack.continueUpdateBounds();
+        }
+    }
+
+    @Override
+    public void onDisplayAdded(int displayId) {
+        if (DEBUG_STACK) Slog.v(TAG, "Display added displayId=" + displayId);
+        synchronized (mService.mGlobalLock) {
+            getActivityDisplayOrCreate(displayId);
+            // Do not start home before booting, or it may accidentally finish booting before it
+            // starts. Instead, we expect home activities to be launched when the system is ready
+            // (ActivityManagerService#systemReady).
+            if (mService.isBooted() || mService.isBooting()) {
+                startHomeOnDisplay(mCurrentUser, "displayAdded", displayId);
+            }
+        }
+    }
+
+    @Override
+    public void onDisplayRemoved(int displayId) {
+        if (DEBUG_STACK) Slog.v(TAG, "Display removed displayId=" + displayId);
+        if (displayId == DEFAULT_DISPLAY) {
+            throw new IllegalArgumentException("Can't remove the primary display.");
+        }
+
+        synchronized (mService.mGlobalLock) {
+            final ActivityDisplay activityDisplay = getActivityDisplay(displayId);
+            if (activityDisplay == null) {
+                return;
+            }
+
+            activityDisplay.remove();
+        }
+    }
+
+    @Override
+    public void onDisplayChanged(int displayId) {
+        if (DEBUG_STACK) Slog.v(TAG, "Display changed displayId=" + displayId);
+        synchronized (mService.mGlobalLock) {
+            final ActivityDisplay activityDisplay = getActivityDisplay(displayId);
+            if (activityDisplay != null) {
+                activityDisplay.onDisplayChanged();
+            }
+        }
+    }
+
+    /** Update lists of UIDs that are present on displays and have access to them. */
+    void updateUIDsPresentOnDisplay() {
+        mDisplayAccessUIDs.clear();
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay activityDisplay = mActivityDisplays.get(displayNdx);
+            // Only bother calculating the whitelist for private displays
+            if (activityDisplay.isPrivate()) {
+                mDisplayAccessUIDs.append(
+                        activityDisplay.mDisplayId, activityDisplay.getPresentUIDs());
+            }
+        }
+        // Store updated lists in DisplayManager. Callers from outside of AM should get them there.
+        mDisplayManagerInternal.setDisplayAccessUIDs(mDisplayAccessUIDs);
+    }
+
+    ActivityStack findStackBehind(ActivityStack stack) {
+        final ActivityDisplay display = getActivityDisplay(stack.mDisplayId);
+        if (display != null) {
+            for (int i = display.getChildCount() - 1; i >= 0; i--) {
+                if (display.getChildAt(i) == stack && i > 0) {
+                    return display.getChildAt(i - 1);
+                }
+            }
+        }
+        throw new IllegalStateException("Failed to find a stack behind stack=" + stack
+                + " in=" + display);
+    }
+
+    @Override
+    protected int getChildCount() {
+        return mActivityDisplays.size();
+    }
+
+    @Override
+    protected ActivityDisplay getChildAt(int index) {
+        return mActivityDisplays.get(index);
+    }
+
+    @Override
+    protected ConfigurationContainer getParent() {
+        return null;
+    }
+
+    // TODO: remove after object merge with RootWindowContainer
+    void onChildPositionChanged(DisplayWindowController childController, int position) {
+        // Assume AM lock is held from positionChildAt of controller in each hierarchy.
+        final ActivityDisplay display = getActivityDisplay(childController.getDisplayId());
+        if (display != null) {
+            positionChildAt(display, position);
+        }
+    }
+
+    /** Change the z-order of the given display. */
+    private void positionChildAt(ActivityDisplay display, int position) {
+        if (position >= mActivityDisplays.size()) {
+            position = mActivityDisplays.size() - 1;
+        } else if (position < 0) {
+            position = 0;
+        }
+
+        if (mActivityDisplays.isEmpty()) {
+            mActivityDisplays.add(display);
+        } else if (mActivityDisplays.get(position) != display) {
+            mActivityDisplays.remove(display);
+            mActivityDisplays.add(position, display);
+        }
+    }
+
+    @VisibleForTesting
+    void addChild(ActivityDisplay activityDisplay, int position) {
+        positionChildAt(activityDisplay, position);
+        mRootWindowContainer.positionChildAt(position,
+                activityDisplay.getWindowContainerController().mContainer);
+    }
+
+    void removeChild(ActivityDisplay activityDisplay) {
+        // The caller must tell the controller of {@link ActivityDisplay} to release its container
+        // {@link DisplayContent}. That is done in {@link ActivityDisplay#releaseSelfIfNeeded}).
+        mActivityDisplays.remove(activityDisplay);
+    }
+
+    Configuration getDisplayOverrideConfiguration(int displayId) {
+        final ActivityDisplay activityDisplay = getActivityDisplayOrCreate(displayId);
+        if (activityDisplay == null) {
+            throw new IllegalArgumentException("No display found with id: " + displayId);
+        }
+
+        return activityDisplay.getOverrideConfiguration();
+    }
+
+    void setDisplayOverrideConfiguration(Configuration overrideConfiguration, int displayId) {
+        final ActivityDisplay activityDisplay = getActivityDisplayOrCreate(displayId);
+        if (activityDisplay == null) {
+            throw new IllegalArgumentException("No display found with id: " + displayId);
+        }
+
+        activityDisplay.onOverrideConfigurationChanged(overrideConfiguration);
+    }
+
+    void prepareForShutdown() {
+        for (int i = 0; i < mActivityDisplays.size(); i++) {
+            createSleepToken("shutdown", mActivityDisplays.get(i).mDisplayId);
+        }
+    }
+
+    ActivityTaskManagerInternal.SleepToken createSleepToken(String tag, int displayId) {
+        final ActivityDisplay display = getActivityDisplay(displayId);
+        if (display == null) {
+            throw new IllegalArgumentException("Invalid display: " + displayId);
+        }
+
+        final SleepTokenImpl token = new SleepTokenImpl(tag, displayId);
+        mSleepTokens.add(token);
+        display.mAllSleepTokens.add(token);
+        return token;
+    }
+
+    private void removeSleepToken(SleepTokenImpl token) {
+        mSleepTokens.remove(token);
+
+        final ActivityDisplay display = getActivityDisplay(token.mDisplayId);
+        if (display != null) {
+            display.mAllSleepTokens.remove(token);
+            if (display.mAllSleepTokens.isEmpty()) {
+                mService.updateSleepIfNeededLocked();
+            }
+        }
+    }
+
+    void addStartingWindowsForVisibleActivities(boolean taskSwitch) {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.addStartingWindowsForVisibleActivities(taskSwitch);
+            }
+        }
+    }
+
+    void invalidateTaskLayers() {
+        mTaskLayersChanged = true;
+    }
+
+    void rankTaskLayersIfNeeded() {
+        if (!mTaskLayersChanged) {
+            return;
+        }
+        mTaskLayersChanged = false;
+        for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); displayNdx++) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            int baseLayer = 0;
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                baseLayer += stack.rankTaskLayers(baseLayer);
+            }
+        }
+    }
+
+    void clearOtherAppTimeTrackers(AppTimeTracker except) {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.clearOtherAppTimeTrackers(except);
+            }
+        }
+    }
+
+    void scheduleDestroyAllActivities(WindowProcessController app, String reason) {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.scheduleDestroyActivities(app, reason);
+            }
+        }
+    }
+
+    void releaseSomeActivitiesLocked(WindowProcessController app, String reason) {
+        // Tasks is non-null only if two or more tasks are found.
+        ArraySet<TaskRecord> tasks = app.getReleaseSomeActivitiesTasks();
+        if (tasks == null) {
+            if (DEBUG_RELEASE) Slog.d(TAG_RELEASE, "Didn't find two or more tasks to release");
+            return;
+        }
+        // If we have activities in multiple tasks that are in a position to be destroyed,
+        // let's iterate through the tasks and release the oldest one.
+        final int numDisplays = mActivityDisplays.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            final int stackCount = display.getChildCount();
+            // Step through all stacks starting from behind, to hit the oldest things first.
+            for (int stackNdx = 0; stackNdx < stackCount; stackNdx++) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                // Try to release activities in this stack; if we manage to, we are done.
+                if (stack.releaseSomeActivitiesLocked(app, tasks, reason) > 0) {
+                    return;
+                }
+            }
+        }
+    }
+
+    // Tries to put all activity stacks to sleep. Returns true if all stacks were
+    // successfully put to sleep.
+    boolean putStacksToSleep(boolean allowDelay, boolean shuttingDown) {
+        boolean allSleep = true;
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                if (allowDelay) {
+                    allSleep &= stack.goToSleepIfPossible(shuttingDown);
+                } else {
+                    stack.goToSleep();
+                }
+            }
+        }
+        return allSleep;
+    }
+
+    void handleAppCrash(WindowProcessController app) {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.handleAppCrash(app);
+            }
+        }
+    }
+
+    ActivityRecord findActivity(Intent intent, ActivityInfo info, boolean compareIntentFilters) {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                final ActivityRecord ar = stack.findActivityLocked(
+                        intent, info, compareIntentFilters);
+                if (ar != null) {
+                    return ar;
+                }
+            }
+        }
+        return null;
+    }
+
+    boolean hasAwakeDisplay() {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            if (!display.shouldSleep()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    <T extends ActivityStack> T getLaunchStack(@Nullable ActivityRecord r,
+            @Nullable ActivityOptions options, @Nullable TaskRecord candidateTask, boolean onTop) {
+        return getLaunchStack(r, options, candidateTask, onTop, null /* launchParams */);
+    }
+
+    /**
+     * Returns the right stack to use for launching factoring in all the input parameters.
+     *
+     * @param r The activity we are trying to launch. Can be null.
+     * @param options The activity options used to the launch. Can be null.
+     * @param candidateTask The possible task the activity might be launched in. Can be null.
+     * @params launchParams The resolved launch params to use.
+     *
+     * @return The stack to use for the launch or INVALID_STACK_ID.
+     */
+    <T extends ActivityStack> T getLaunchStack(@Nullable ActivityRecord r,
+            @Nullable ActivityOptions options, @Nullable TaskRecord candidateTask, boolean onTop,
+            @Nullable LaunchParamsController.LaunchParams launchParams) {
+        int taskId = INVALID_TASK_ID;
+        int displayId = INVALID_DISPLAY;
+        //Rect bounds = null;
+
+        // We give preference to the launch preference in activity options.
+        if (options != null) {
+            taskId = options.getLaunchTaskId();
+            displayId = options.getLaunchDisplayId();
+        }
+
+        // First preference for stack goes to the task Id set in the activity options. Use the stack
+        // associated with that if possible.
+        if (taskId != INVALID_TASK_ID) {
+            // Temporarily set the task id to invalid in case in re-entry.
+            options.setLaunchTaskId(INVALID_TASK_ID);
+            final TaskRecord task = anyTaskForId(taskId,
+                    MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE, options, onTop);
+            options.setLaunchTaskId(taskId);
+            if (task != null) {
+                return task.getStack();
+            }
+        }
+
+        final int activityType = resolveActivityType(r, options, candidateTask);
+        T stack;
+
+        // Next preference for stack goes to the display Id set the candidate display.
+        if (launchParams != null && launchParams.mPreferredDisplayId != INVALID_DISPLAY) {
+            displayId = launchParams.mPreferredDisplayId;
+        }
+        if (displayId != INVALID_DISPLAY && canLaunchOnDisplay(r, displayId)) {
+            if (r != null) {
+                stack = (T) getValidLaunchStackOnDisplay(displayId, r, candidateTask, options,
+                        launchParams);
+                if (stack != null) {
+                    return stack;
+                }
+            }
+            final ActivityDisplay display = getActivityDisplayOrCreate(displayId);
+            if (display != null) {
+                stack = display.getOrCreateStack(r, options, candidateTask, activityType, onTop);
+                if (stack != null) {
+                    return stack;
+                }
+            }
+        }
+
+        // Give preference to the stack and display of the input task and activity if they match the
+        // mode we want to launch into.
+        stack = null;
+        ActivityDisplay display = null;
+        if (candidateTask != null) {
+            stack = candidateTask.getStack();
+        }
+        if (stack == null && r != null) {
+            stack = r.getActivityStack();
+        }
+        if (stack != null) {
+            display = stack.getDisplay();
+            if (display != null && canLaunchOnDisplay(r, display.mDisplayId)) {
+                int windowingMode = launchParams != null ? launchParams.mWindowingMode
+                        : WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+                if (windowingMode == WindowConfiguration.WINDOWING_MODE_UNDEFINED) {
+                    windowingMode = display.resolveWindowingMode(r, options, candidateTask,
+                            activityType);
+                }
+                if (stack.isCompatible(windowingMode, activityType)) {
+                    return stack;
+                }
+                if (windowingMode == WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY
+                        && display.getSplitScreenPrimaryStack() == stack
+                        && candidateTask == stack.topTask()) {
+                    // This is a special case when we try to launch an activity that is currently on
+                    // top of split-screen primary stack, but is targeting split-screen secondary.
+                    // In this case we don't want to move it to another stack.
+                    // TODO(b/78788972): Remove after differentiating between preferred and required
+                    // launch options.
+                    return stack;
+                }
+            }
+        }
+
+        if (display == null || !canLaunchOnDisplay(r, display.mDisplayId)) {
+            display = getDefaultDisplay();
+        }
+
+        return display.getOrCreateStack(r, options, candidateTask, activityType, onTop);
+    }
+
+    /** @return true if activity record is null or can be launched on provided display. */
+    private boolean canLaunchOnDisplay(ActivityRecord r, int displayId) {
+        if (r == null) {
+            return true;
+        }
+        return r.canBeLaunchedOnDisplay(displayId);
+    }
+
+    /**
+     * Get a topmost stack on the display, that is a valid launch stack for specified activity.
+     * If there is no such stack, new dynamic stack can be created.
+     * @param displayId Target display.
+     * @param r Activity that should be launched there.
+     * @param candidateTask The possible task the activity might be put in.
+     * @return Existing stack if there is a valid one, new dynamic stack if it is valid or null.
+     */
+    private ActivityStack getValidLaunchStackOnDisplay(int displayId, @NonNull ActivityRecord r,
+            @Nullable TaskRecord candidateTask, @Nullable ActivityOptions options,
+            @Nullable LaunchParamsController.LaunchParams launchParams) {
+        final ActivityDisplay activityDisplay = getActivityDisplayOrCreate(displayId);
+        if (activityDisplay == null) {
+            throw new IllegalArgumentException(
+                    "Display with displayId=" + displayId + " not found.");
+        }
+
+        if (!r.canBeLaunchedOnDisplay(displayId)) {
+            return null;
+        }
+
+        // If {@code r} is already in target display and its task is the same as the candidate task,
+        // the intention should be getting a launch stack for the reusable activity, so we can use
+        // the existing stack.
+        if (r.getDisplayId() == displayId && r.getTaskRecord() == candidateTask) {
+            return candidateTask.getStack();
+        }
+
+        // Return the topmost valid stack on the display.
+        for (int i = activityDisplay.getChildCount() - 1; i >= 0; --i) {
+            final ActivityStack stack = activityDisplay.getChildAt(i);
+            if (isValidLaunchStack(stack, r)) {
+                return stack;
+            }
+        }
+
+        // If there is no valid stack on the external display - check if new dynamic stack will do.
+        if (displayId != DEFAULT_DISPLAY) {
+            final int windowingMode;
+            if (launchParams != null) {
+                // When launch params is not null, we always defer to its windowing mode. Sometimes
+                // it could be unspecified, which indicates it should inherit windowing mode from
+                // display.
+                windowingMode = launchParams.mWindowingMode;
+            } else {
+                windowingMode = options != null ? options.getLaunchWindowingMode()
+                        : r.getWindowingMode();
+            }
+            final int activityType =
+                    options != null && options.getLaunchActivityType() != ACTIVITY_TYPE_UNDEFINED
+                            ? options.getLaunchActivityType() : r.getActivityType();
+            return activityDisplay.createStack(windowingMode, activityType, true /*onTop*/);
+        }
+
+        Slog.w(TAG, "getValidLaunchStackOnDisplay: can't launch on displayId " + displayId);
+        return null;
+    }
+
+    ActivityStack getValidLaunchStackOnDisplay(int displayId, @NonNull ActivityRecord r,
+            @Nullable ActivityOptions options,
+            @Nullable LaunchParamsController.LaunchParams launchParams) {
+        return getValidLaunchStackOnDisplay(displayId, r, null /* candidateTask */, options,
+                launchParams);
+    }
+
+    // TODO: Can probably be consolidated into getLaunchStack()...
+    private boolean isValidLaunchStack(ActivityStack stack, ActivityRecord r) {
+        switch (stack.getActivityType()) {
+            case ACTIVITY_TYPE_HOME: return r.isActivityTypeHome();
+            case ACTIVITY_TYPE_RECENTS: return r.isActivityTypeRecents();
+            case ACTIVITY_TYPE_ASSISTANT: return r.isActivityTypeAssistant();
+        }
+        // There is a 1-to-1 relationship between stack and task when not in
+        // primary split-windowing mode.
+        if (stack.getWindowingMode() != WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
+            return false;
+        } else {
+            return r.supportsSplitScreenWindowingMode();
+        }
+    }
+
+    int resolveActivityType(@Nullable ActivityRecord r, @Nullable ActivityOptions options,
+            @Nullable TaskRecord task) {
+        // Preference is given to the activity type for the activity then the task since the type
+        // once set shouldn't change.
+        int activityType = r != null ? r.getActivityType() : ACTIVITY_TYPE_UNDEFINED;
+        if (activityType == ACTIVITY_TYPE_UNDEFINED && task != null) {
+            activityType = task.getActivityType();
+        }
+        if (activityType != ACTIVITY_TYPE_UNDEFINED) {
+            return activityType;
+        }
+        if (options != null) {
+            activityType = options.getLaunchActivityType();
+        }
+        return activityType != ACTIVITY_TYPE_UNDEFINED ? activityType : ACTIVITY_TYPE_STANDARD;
+    }
+
+    /**
+     * Get next focusable stack in the system. This will search through the stack on the same
+     * display as the current focused stack, looking for a focusable and visible stack, different
+     * from the target stack. If no valid candidates will be found, it will then go through all
+     * displays and stacks in last-focused order.
+     *
+     * @param currentFocus The stack that previously had focus.
+     * @param ignoreCurrent If we should ignore {@param currentFocus} when searching for next
+     *                     candidate.
+     * @return Next focusable {@link ActivityStack}, {@code null} if not found.
+     */
+    ActivityStack getNextFocusableStack(@NonNull ActivityStack currentFocus,
+            boolean ignoreCurrent) {
+        // First look for next focusable stack on the same display
+        final ActivityDisplay preferredDisplay = currentFocus.getDisplay();
+        final ActivityStack preferredFocusableStack = preferredDisplay.getNextFocusableStack(
+                currentFocus, ignoreCurrent);
+        if (preferredFocusableStack != null) {
+            return preferredFocusableStack;
+        }
+        if (preferredDisplay.supportsSystemDecorations()) {
+            // Stop looking for focusable stack on other displays because the preferred display
+            // supports system decorations. Home activity would be launched on the same display if
+            // no focusable stack found.
+            return null;
+        }
+
+        // Now look through all displays
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityDisplay display = mActivityDisplays.get(i);
+            if (display == preferredDisplay) {
+                // We've already checked this one
+                continue;
+            }
+            final ActivityStack nextFocusableStack = display.getNextFocusableStack(currentFocus,
+                    ignoreCurrent);
+            if (nextFocusableStack != null) {
+                return nextFocusableStack;
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Get next valid stack for launching provided activity in the system. This will search across
+     * displays and stacks in last-focused order for a focusable and visible stack, except those
+     * that are on a currently focused display.
+     *
+     * @param r The activity that is being launched.
+     * @param currentFocus The display that previously had focus and thus needs to be ignored when
+     *                     searching for the next candidate.
+     * @return Next valid {@link ActivityStack}, null if not found.
+     */
+    ActivityStack getNextValidLaunchStack(@NonNull ActivityRecord r, int currentFocus) {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityDisplay display = mActivityDisplays.get(i);
+            if (display.mDisplayId == currentFocus) {
+                continue;
+            }
+            final ActivityStack stack = getValidLaunchStackOnDisplay(display.mDisplayId, r,
+                    null /* options */, null /* launchParams */);
+            if (stack != null) {
+                return stack;
+            }
+        }
+        return null;
+    }
+
+    boolean handleAppDied(WindowProcessController app) {
+        boolean hasVisibleActivities = false;
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                hasVisibleActivities |= stack.handleAppDiedLocked(app);
+            }
+        }
+        return hasVisibleActivities;
+    }
+
+    void closeSystemDialogs() {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.closeSystemDialogsLocked();
+            }
+        }
+    }
+
+    /** @return true if some activity was finished (or would have finished if doit were true). */
+    boolean finishDisabledPackageActivities(String packageName, Set<String> filterByClasses,
+            boolean doit, boolean evenPersistent, int userId) {
+        boolean didSomething = false;
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                if (stack.finishDisabledPackageActivitiesLocked(
+                        packageName, filterByClasses, doit, evenPersistent, userId)) {
+                    didSomething = true;
+                }
+            }
+        }
+        return didSomething;
+    }
+
+    void updateActivityApplicationInfo(ApplicationInfo aInfo) {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.updateActivityApplicationInfoLocked(aInfo);
+            }
+        }
+    }
+
+    void finishVoiceTask(IVoiceInteractionSession session) {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            final int numStacks = display.getChildCount();
+            for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.finishVoiceTask(session);
+            }
+        }
+    }
+
+    /**
+     * Removes stacks in the input windowing modes from the system if they are of activity type
+     * ACTIVITY_TYPE_STANDARD or ACTIVITY_TYPE_UNDEFINED
+     */
+    void removeStacksInWindowingModes(int... windowingModes) {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            mActivityDisplays.get(i).removeStacksInWindowingModes(windowingModes);
+        }
+    }
+
+    void removeStacksWithActivityTypes(int... activityTypes) {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            mActivityDisplays.get(i).removeStacksWithActivityTypes(activityTypes);
+        }
+    }
+
+    ActivityRecord topRunningActivity() {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityRecord topActivity = mActivityDisplays.get(i).topRunningActivity();
+            if (topActivity != null) {
+                return topActivity;
+            }
+        }
+        return null;
+    }
+
+    boolean allResumedActivitiesIdle() {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            // TODO(b/117135575): Check resumed activities on all visible stacks.
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            if (display.isSleeping()) {
+                // No resumed activities while display is sleeping.
+                continue;
+            }
+
+            // If the focused stack is not null or not empty, there should have some activities
+            // resuming or resumed. Make sure these activities are idle.
+            final ActivityStack stack = display.getFocusedStack();
+            if (stack == null || stack.numActivities() == 0) {
+                continue;
+            }
+            final ActivityRecord resumedActivity = stack.getResumedActivity();
+            if (resumedActivity == null || !resumedActivity.idle) {
+                if (DEBUG_STATES) {
+                    Slog.d(TAG_STATES, "allResumedActivitiesIdle: stack="
+                            + stack.mStackId + " " + resumedActivity + " not idle");
+                }
+                return false;
+            }
+        }
+        // Send launch end powerhint when idle
+        sendPowerHintForLaunchEndIfNeeded();
+        return true;
+    }
+
+    boolean allResumedActivitiesVisible() {
+        boolean foundResumed = false;
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                final ActivityRecord r = stack.getResumedActivity();
+                if (r != null) {
+                    if (!r.nowVisible
+                            || mStackSupervisor.mActivitiesWaitingForVisibleActivity.contains(r)) {
+                        return false;
+                    }
+                    foundResumed = true;
+                }
+            }
+        }
+        return foundResumed;
+    }
+
+    boolean allPausedActivitiesComplete() {
+        boolean pausing = true;
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                final ActivityRecord r = stack.mPausingActivity;
+                if (r != null && !r.isState(PAUSED, STOPPED, STOPPING)) {
+                    if (DEBUG_STATES) {
+                        Slog.d(TAG_STATES,
+                                "allPausedActivitiesComplete: r=" + r + " state=" + r.getState());
+                        pausing = false;
+                    } else {
+                        return false;
+                    }
+                }
+            }
+        }
+        return pausing;
+    }
+
+    /**
+     * Find all visible task stacks containing {@param userId} and intercept them with an activity
+     * to block out the contents and possibly start a credential-confirming intent.
+     *
+     * @param userId user handle for the locked managed profile.
+     */
+    void lockAllProfileTasks(@UserIdInt int userId) {
+        mWindowManager.deferSurfaceLayout();
+        try {
+            for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+                final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+                for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                    final ActivityStack stack = display.getChildAt(stackNdx);
+                    final List<TaskRecord> tasks = stack.getAllTasks();
+                    for (int taskNdx = tasks.size() - 1; taskNdx >= 0; taskNdx--) {
+                        final TaskRecord task = tasks.get(taskNdx);
+
+                        // Check the task for a top activity belonging to userId, or returning a
+                        // result to an activity belonging to userId. Example case: a document
+                        // picker for personal files, opened by a work app, should still get locked.
+                        if (taskTopActivityIsUser(task, userId)) {
+                            mService.getTaskChangeNotificationController().notifyTaskProfileLocked(
+                                    task.taskId, userId);
+                        }
+                    }
+                }
+            }
+        } finally {
+            mWindowManager.continueSurfaceLayout();
+        }
+    }
+
+    /**
+     * Detects whether we should show a lock screen in front of this task for a locked user.
+     * <p>
+     * We'll do this if either of the following holds:
+     * <ul>
+     *   <li>The top activity explicitly belongs to {@param userId}.</li>
+     *   <li>The top activity returns a result to an activity belonging to {@param userId}.</li>
+     * </ul>
+     *
+     * @return {@code true} if the top activity looks like it belongs to {@param userId}.
+     */
+    private boolean taskTopActivityIsUser(TaskRecord task, @UserIdInt int userId) {
+        // To handle the case that work app is in the task but just is not the top one.
+        final ActivityRecord activityRecord = task.getTopActivity();
+        final ActivityRecord resultTo = (activityRecord != null ? activityRecord.resultTo : null);
+
+        return (activityRecord != null && activityRecord.mUserId == userId)
+                || (resultTo != null && resultTo.mUserId == userId);
+    }
+
+    void cancelInitializingActivities() {
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                stack.cancelInitializingActivities();
+            }
+        }
+    }
+
+    TaskRecord anyTaskForId(int id) {
+        return anyTaskForId(id, MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE);
+    }
+
+    TaskRecord anyTaskForId(int id, @AnyTaskForIdMatchTaskMode int matchMode) {
+        return anyTaskForId(id, matchMode, null, !ON_TOP);
+    }
+
+    /**
+     * Returns a {@link TaskRecord} for the input id if available. {@code null} otherwise.
+     * @param id Id of the task we would like returned.
+     * @param matchMode The mode to match the given task id in.
+     * @param aOptions The activity options to use for restoration. Can be null.
+     * @param onTop If the stack for the task should be the topmost on the display.
+     */
+    TaskRecord anyTaskForId(int id, @AnyTaskForIdMatchTaskMode int matchMode,
+            @Nullable ActivityOptions aOptions, boolean onTop) {
+        // If options are set, ensure that we are attempting to actually restore a task
+        if (matchMode != MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE && aOptions != null) {
+            throw new IllegalArgumentException("Should not specify activity options for non-restore"
+                    + " lookup");
+        }
+
+        int numDisplays = mActivityDisplays.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                final TaskRecord task = stack.taskForIdLocked(id);
+                if (task == null) {
+                    continue;
+                }
+                if (aOptions != null) {
+                    // Resolve the stack the task should be placed in now based on options
+                    // and reparent if needed.
+                    final ActivityStack launchStack =
+                            getLaunchStack(null, aOptions, task, onTop);
+                    if (launchStack != null && stack != launchStack) {
+                        final int reparentMode = onTop
+                                ? REPARENT_MOVE_STACK_TO_FRONT : REPARENT_LEAVE_STACK_IN_PLACE;
+                        task.reparent(launchStack, onTop, reparentMode, ANIMATE, DEFER_RESUME,
+                                "anyTaskForId");
+                    }
+                }
+                return task;
+            }
+        }
+
+        // If we are matching stack tasks only, return now
+        if (matchMode == MATCH_TASK_IN_STACKS_ONLY) {
+            return null;
+        }
+
+        // Otherwise, check the recent tasks and return if we find it there and we are not restoring
+        // the task from recents
+        if (DEBUG_RECENTS) Slog.v(TAG_RECENTS, "Looking for task id=" + id + " in recents");
+        final TaskRecord task = mStackSupervisor.mRecentTasks.getTask(id);
+
+        if (task == null) {
+            if (DEBUG_RECENTS) {
+                Slog.d(TAG_RECENTS, "\tDidn't find task id=" + id + " in recents");
+            }
+
+            return null;
+        }
+
+        if (matchMode == MATCH_TASK_IN_STACKS_OR_RECENT_TASKS) {
+            return task;
+        }
+
+        // Implicitly, this case is MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE
+        if (!mStackSupervisor.restoreRecentTaskLocked(task, aOptions, onTop)) {
+            if (DEBUG_RECENTS) Slog.w(TAG_RECENTS,
+                    "Couldn't restore task id=" + id + " found in recents");
+            return null;
+        }
+        if (DEBUG_RECENTS) Slog.w(TAG_RECENTS, "Restored task id=" + id + " from in recents");
+        return task;
+    }
+
+    ActivityRecord isInAnyStack(IBinder token) {
+        int numDisplays = mActivityDisplays.size();
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                final ActivityRecord r = stack.isInStackLocked(token);
+                if (r != null) {
+                    return r;
+                }
+            }
+        }
+        return null;
+    }
+
+    @VisibleForTesting
+    void getRunningTasks(int maxNum, List<ActivityManager.RunningTaskInfo> list,
+            @WindowConfiguration.ActivityType int ignoreActivityType,
+            @WindowConfiguration.WindowingMode int ignoreWindowingMode, int callingUid,
+            boolean allowed) {
+        mStackSupervisor.mRunningTasks.getTasks(maxNum, list, ignoreActivityType,
+                ignoreWindowingMode, mActivityDisplays, callingUid, allowed);
+    }
+
+    void sendPowerHintForLaunchStartIfNeeded(boolean forceSend, ActivityRecord targetActivity) {
+        boolean sendHint = forceSend;
+
+        if (!sendHint) {
+            // Send power hint if we don't know what we're launching yet
+            sendHint = targetActivity == null || targetActivity.app == null;
+        }
+
+        if (!sendHint) { // targetActivity != null
+            // Send power hint when the activity's process is different than the current resumed
+            // activity on all displays, or if there are no resumed activities in the system.
+            boolean noResumedActivities = true;
+            boolean allFocusedProcessesDiffer = true;
+            for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
+                final ActivityDisplay activityDisplay = mActivityDisplays.get(displayNdx);
+                final ActivityRecord resumedActivity = activityDisplay.getResumedActivity();
+                final WindowProcessController resumedActivityProcess =
+                        resumedActivity == null ? null : resumedActivity.app;
+
+                noResumedActivities &= resumedActivityProcess == null;
+                if (resumedActivityProcess != null) {
+                    allFocusedProcessesDiffer &= !resumedActivityProcess.equals(targetActivity.app);
+                }
+            }
+            sendHint = noResumedActivities || allFocusedProcessesDiffer;
+        }
+
+        if (sendHint && mService.mPowerManagerInternal != null) {
+            mService.mPowerManagerInternal.powerHint(PowerHint.LAUNCH, 1);
+            mPowerHintSent = true;
+        }
+    }
+
+    void sendPowerHintForLaunchEndIfNeeded() {
+        // Trigger launch power hint if activity is launched
+        if (mPowerHintSent && mService.mPowerManagerInternal != null) {
+            mService.mPowerManagerInternal.powerHint(PowerHint.LAUNCH, 0);
+            mPowerHintSent = false;
+        }
+    }
+
+    private void calculateDefaultMinimalSizeOfResizeableTasks() {
+        final Resources res = mService.mContext.getResources();
+        final float minimalSize = res.getDimension(
+                com.android.internal.R.dimen.default_minimal_size_resizable_task);
+        final DisplayMetrics dm = res.getDisplayMetrics();
+
+        mDefaultMinSizeOfResizeableTaskDp = (int) (minimalSize / dm.density);
+    }
+
+    /**
+     * Dumps the activities matching the given {@param name} in the either the focused stack
+     * or all visible stacks if {@param dumpVisibleStacks} is true.
+     */
+    ArrayList<ActivityRecord> getDumpActivities(String name, boolean dumpVisibleStacksOnly,
+            boolean dumpFocusedStackOnly) {
+        if (dumpFocusedStackOnly) {
+            return getTopDisplayFocusedStack().getDumpActivitiesLocked(name);
+        } else {
+            ArrayList<ActivityRecord> activities = new ArrayList<>();
+            int numDisplays = mActivityDisplays.size();
+            for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+                final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+                for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                    final ActivityStack stack = display.getChildAt(stackNdx);
+                    if (!dumpVisibleStacksOnly || stack.shouldBeVisible(null)) {
+                        activities.addAll(stack.getDumpActivitiesLocked(name));
+                    }
+                }
+            }
+            return activities;
+        }
+    }
+
+    public void dump(PrintWriter pw, String prefix) {
+        pw.print(prefix);
+        pw.println("topDisplayFocusedStack=" + getTopDisplayFocusedStack());
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityDisplay display = mActivityDisplays.get(i);
+            display.dump(pw, prefix);
+        }
+    }
+
+    /**
+     * Dump all connected displays' configurations.
+     * @param prefix Prefix to apply to each line of the dump.
+     */
+    void dumpDisplayConfigs(PrintWriter pw, String prefix) {
+        pw.print(prefix); pw.println("Display override configurations:");
+        final int displayCount = mActivityDisplays.size();
+        for (int i = 0; i < displayCount; i++) {
+            final ActivityDisplay activityDisplay = mActivityDisplays.get(i);
+            pw.print(prefix); pw.print("  "); pw.print(activityDisplay.mDisplayId); pw.print(": ");
+            pw.println(activityDisplay.getOverrideConfiguration());
+        }
+    }
+
+    public void dumpDisplays(PrintWriter pw) {
+        for (int i = mActivityDisplays.size() - 1; i >= 0; --i) {
+            final ActivityDisplay display = mActivityDisplays.get(i);
+            pw.print("[id:" + display.mDisplayId + " stacks:");
+            display.dumpStacks(pw);
+            pw.print("]");
+        }
+    }
+
+    boolean dumpActivities(FileDescriptor fd, PrintWriter pw, boolean dumpAll, boolean dumpClient,
+            String dumpPackage) {
+        boolean printed = false;
+        boolean needSep = false;
+        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            ActivityDisplay activityDisplay = mActivityDisplays.get(displayNdx);
+            pw.print("Display #"); pw.print(activityDisplay.mDisplayId);
+            pw.println(" (activities from top to bottom):");
+            final ActivityDisplay display = mActivityDisplays.get(displayNdx);
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                pw.println();
+                pw.println("  Stack #" + stack.mStackId
+                        + ": type=" + activityTypeToString(stack.getActivityType())
+                        + " mode=" + windowingModeToString(stack.getWindowingMode()));
+                pw.println("  isSleeping=" + stack.shouldSleepActivities());
+                pw.println("  mBounds=" + stack.getOverrideBounds());
+
+                printed |= stack.dumpActivitiesLocked(fd, pw, dumpAll, dumpClient, dumpPackage,
+                        needSep);
+
+                printed |= dumpHistoryList(fd, pw, stack.mLRUActivities, "    ", "Run", false,
+                        !dumpAll, false, dumpPackage, true,
+                        "    Running activities (most recent first):", null);
+
+                needSep = printed;
+                boolean pr = printThisActivity(pw, stack.mPausingActivity, dumpPackage, needSep,
+                        "    mPausingActivity: ");
+                if (pr) {
+                    printed = true;
+                    needSep = false;
+                }
+                pr = printThisActivity(pw, stack.getResumedActivity(), dumpPackage, needSep,
+                        "    mResumedActivity: ");
+                if (pr) {
+                    printed = true;
+                    needSep = false;
+                }
+                if (dumpAll) {
+                    pr = printThisActivity(pw, stack.mLastPausedActivity, dumpPackage, needSep,
+                            "    mLastPausedActivity: ");
+                    if (pr) {
+                        printed = true;
+                        needSep = true;
+                    }
+                    printed |= printThisActivity(pw, stack.mLastNoHistoryActivity, dumpPackage,
+                            needSep, "    mLastNoHistoryActivity: ");
+                }
+                needSep = printed;
+            }
+            printThisActivity(pw, activityDisplay.getResumedActivity(), dumpPackage, needSep,
+                    " ResumedActivity:");
+        }
+
+        printed |= dumpHistoryList(fd, pw, mStackSupervisor.mFinishingActivities, "  ",
+                "Fin", false, !dumpAll,
+                false, dumpPackage, true, "  Activities waiting to finish:", null);
+        printed |= dumpHistoryList(fd, pw, mStackSupervisor.mStoppingActivities, "  ",
+                "Stop", false, !dumpAll,
+                false, dumpPackage, true, "  Activities waiting to stop:", null);
+        printed |= dumpHistoryList(fd, pw,
+                mStackSupervisor.mActivitiesWaitingForVisibleActivity, "  ", "Wait",
+                false, !dumpAll, false, dumpPackage, true,
+                "  Activities waiting for another to become visible:", null);
+        printed |= dumpHistoryList(fd, pw, mStackSupervisor.mGoingToSleepActivities,
+                "  ", "Sleep", false, !dumpAll,
+                false, dumpPackage, true, "  Activities waiting to sleep:", null);
+
+        return printed;
+    }
+
+    void writeToProto(ProtoOutputStream proto, long fieldId) {
+        final long token = proto.start(fieldId);
+        super.writeToProto(proto, CONFIGURATION_CONTAINER, false /* trim */);
+        for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
+            final ActivityDisplay activityDisplay = mActivityDisplays.get(displayNdx);
+            activityDisplay.writeToProto(proto, DISPLAYS);
+        }
+        mStackSupervisor.getKeyguardController().writeToProto(proto, KEYGUARD_CONTROLLER);
+        // TODO(b/111541062): Update tests to look for resumed activities on all displays
+        final ActivityStack focusedStack = getTopDisplayFocusedStack();
+        if (focusedStack != null) {
+            proto.write(FOCUSED_STACK_ID, focusedStack.mStackId);
+            final ActivityRecord focusedActivity = focusedStack.getDisplay().getResumedActivity();
+            if (focusedActivity != null) {
+                focusedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
+            }
+        } else {
+            proto.write(FOCUSED_STACK_ID, INVALID_STACK_ID);
+        }
+        proto.write(IS_HOME_RECENTS_COMPONENT,
+                mStackSupervisor.mRecentTasks.isRecentsComponentHomeActivity(mCurrentUser));
+        mService.getActivityStartController().writeToProto(proto, PENDING_ACTIVITIES);
+        proto.end(token);
+    }
+
+    private final class SleepTokenImpl extends ActivityTaskManagerInternal.SleepToken {
+        private final String mTag;
+        private final long mAcquireTime;
+        private final int mDisplayId;
+
+        public SleepTokenImpl(String tag, int displayId) {
+            mTag = tag;
+            mDisplayId = displayId;
+            mAcquireTime = SystemClock.uptimeMillis();
+        }
+
+        @Override
+        public void release() {
+            synchronized (mService.mGlobalLock) {
+                removeSleepToken(this);
+            }
+        }
+
+        @Override
+        public String toString() {
+            return "{\"" + mTag + "\", display " + mDisplayId
+                    + ", acquire at " + TimeUtils.formatUptime(mAcquireTime) + "}";
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index 1baca32..b98d154 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -51,7 +51,6 @@
 import static com.android.server.wm.WindowSurfacePlacer.SET_ORIENTATION_CHANGE_COMPLETE;
 import static com.android.server.wm.WindowSurfacePlacer.SET_UPDATE_ROTATION;
 import static com.android.server.wm.WindowSurfacePlacer.SET_WALLPAPER_ACTION_PENDING;
-import static com.android.server.wm.WindowSurfacePlacer.SET_WALLPAPER_MAY_CHANGE;
 
 import android.annotation.CallSuper;
 import android.annotation.NonNull;
@@ -83,12 +82,16 @@
 import java.util.function.Consumer;
 
 /** Root {@link WindowContainer} for the device. */
-class RootWindowContainer extends WindowContainer<DisplayContent> {
+class RootWindowContainer extends WindowContainer<DisplayContent>
+        implements ConfigurationContainerListener {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "RootWindowContainer" : TAG_WM;
 
     private static final int SET_SCREEN_BRIGHTNESS_OVERRIDE = 1;
     private static final int SET_USER_ACTIVITY_TIMEOUT = 2;
 
+    // TODO: Remove after object merge with RootActivityContainer.
+    private RootActivityContainer mRootActivityContainer;
+
     private Object mLastWindowFreezeSource = null;
     private Session mHoldScreen = null;
     private float mScreenBrightness = -1;
@@ -106,7 +109,6 @@
     private boolean mSustainedPerformanceModeEnabled = false;
     private boolean mSustainedPerformanceModeCurrent = false;
 
-    boolean mWallpaperMayChange = false;
     // During an orientation change, we track whether all windows have rendered
     // at the new orientation, and this will be false from changing orientation until that occurs.
     // For seamless rotation cases this always stays true, as the windows complete their orientation
@@ -114,8 +116,6 @@
     boolean mOrientationChangeComplete = true;
     boolean mWallpaperActionPending = false;
 
-    final WallpaperController mWallpaperController;
-
     private final Handler mHandler;
 
     private String mCloseSystemDialogsReason;
@@ -124,13 +124,10 @@
     // events.
     int mTopFocusedDisplayId = INVALID_DISPLAY;
 
-    // Only a seperate transaction until we seperate the apply surface changes
+    // Only a separate transaction until we separate the apply surface changes
     // transaction from the global transaction.
     private final SurfaceControl.Transaction mDisplayTransaction = new SurfaceControl.Transaction();
 
-    private final Consumer<DisplayContent> mDisplayContentConfigChangesConsumer =
-            mService.mPolicy::onConfigurationChanged;
-
     private final Consumer<WindowState> mCloseSystemDialogsConsumer = w -> {
         if (w.mHasSurface) {
             try {
@@ -150,7 +147,13 @@
     RootWindowContainer(WindowManagerService service) {
         super(service);
         mHandler = new MyHandler(service.mH.getLooper());
-        mWallpaperController = new WallpaperController(mService);
+    }
+
+    void setRootActivityContainer(RootActivityContainer container) {
+        mRootActivityContainer = container;
+        if (container != null) {
+            container.registerConfigurationChangeListener(this);
+        }
     }
 
     boolean updateFocusedWindowLocked(int mode, boolean updateInputWindows) {
@@ -179,7 +182,7 @@
                 mTopFocusedDisplayId != topFocusedDisplayId && mode == UPDATE_FOCUS_NORMAL;
         if (mTopFocusedDisplayId != topFocusedDisplayId) {
             mTopFocusedDisplayId = topFocusedDisplayId;
-            mService.mInputManager.setFocusedDisplay(mTopFocusedDisplayId);
+            mWmService.mInputManager.setFocusedDisplay(mTopFocusedDisplayId);
             if (DEBUG_FOCUS_LIGHT) Slog.v(TAG_WM, "New topFocusedDisplayId="
                     + mTopFocusedDisplayId);
         }
@@ -191,15 +194,13 @@
             final boolean isTopFocusedDisplay =
                     topFocusedDisplayChanged && dc.getDisplayId() == mTopFocusedDisplayId;
             if (windowFocusChanged || isTopFocusedDisplay) {
-                final Message msg = mService.mH.obtainMessage(
+                final Message msg = mWmService.mH.obtainMessage(
                         WindowManagerService.H.REPORT_FOCUS_CHANGE, dc);
                 msg.arg1 = topFocusedDisplayChanged ? 1 : 0;
-                mService.mH.sendMessage(msg);
+                mWmService.mH.sendMessage(msg);
             }
         });
-        final WindowState topFocusedWindow = getTopFocusedDisplayContent().mCurrentFocus;
-        mService.mInputManager.setFocusedWindow(
-                topFocusedWindow != null ? topFocusedWindow.mInputWindowHandle : null);
+
         return changed;
     }
 
@@ -210,7 +211,7 @@
 
     @Override
     void onChildPositionChanged() {
-        mService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, false /* updateInputWindows */);
+        mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, false /* updateInputWindows */);
     }
 
     DisplayContent getDisplayContent(int displayId) {
@@ -232,26 +233,42 @@
         final DisplayContent existing = getDisplayContent(displayId);
 
         if (existing != null) {
+            initializeDisplayOverrideConfiguration(controller, existing);
             existing.setController(controller);
             return existing;
         }
 
-        final DisplayContent dc =
-                new DisplayContent(display, mService, mWallpaperController, controller);
+        final DisplayContent dc = new DisplayContent(display, mWmService, controller);
 
         if (DEBUG_DISPLAY) Slog.v(TAG_WM, "Adding display=" + display);
 
-        mService.mDisplayWindowSettings.applySettingsToDisplayLocked(dc);
+        mWmService.mDisplayWindowSettings.applySettingsToDisplayLocked(dc);
+        initializeDisplayOverrideConfiguration(controller, dc);
 
-        if (mService.mDisplayManagerInternal != null) {
-            mService.mDisplayManagerInternal.setDisplayInfoOverrideFromWindowManager(
+        if (mWmService.mDisplayManagerInternal != null) {
+            mWmService.mDisplayManagerInternal.setDisplayInfoOverrideFromWindowManager(
                     displayId, dc.getDisplayInfo());
             dc.configureDisplayPolicy();
         }
 
+        mWmService.reconfigureDisplayLocked(dc);
+
         return dc;
     }
 
+    /**
+     * The display content may have configuration set from {@link #DisplayWindowSettings}. This
+     * callback let the owner of container know there is existing configuration to prevent the
+     * values from being replaced by the initializing {@link #ActivityDisplay}.
+     */
+    private void initializeDisplayOverrideConfiguration(DisplayWindowController controller,
+            DisplayContent displayContent) {
+        if (controller != null && controller.mListener != null) {
+            controller.mListener.onInitializeOverrideConfiguration(
+                    displayContent.getOverrideConfiguration());
+        }
+    }
+
     boolean isLayoutNeeded() {
         final int numDisplays = mChildren.size();
         for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
@@ -366,8 +383,6 @@
     public void onConfigurationChanged(Configuration newParentConfig) {
         prepareFreezingTaskBounds();
         super.onConfigurationChanged(newParentConfig);
-
-        forAllDisplays(mDisplayContentConfigChangesConsumer);
     }
 
     private void prepareFreezingTaskBounds() {
@@ -421,11 +436,11 @@
 
     void removeReplacedWindows() {
         if (SHOW_TRANSACTIONS) Slog.i(TAG, ">>> OPEN TRANSACTION removeReplacedWindows");
-        mService.openSurfaceTransaction();
+        mWmService.openSurfaceTransaction();
         try {
             forAllWindows(sRemoveReplacedWindowsConsumer, true /* traverseTopToBottom */);
         } finally {
-            mService.closeSurfaceTransaction("removeReplacedWindows");
+            mWmService.closeSurfaceTransaction("removeReplacedWindows");
             if (SHOW_TRANSACTIONS) Slog.i(TAG, "<<< CLOSE TRANSACTION removeReplacedWindows");
         }
     }
@@ -473,7 +488,7 @@
                 final SparseIntArray pidCandidates = new SparseIntArray();
                 for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
                     mChildren.get(displayNdx).forAllWindows((w) -> {
-                        if (mService.mForceRemoves.contains(w)) {
+                        if (mWmService.mForceRemoves.contains(w)) {
                             return;
                         }
                         final WindowStateAnimator wsa = w.mWinAnimator;
@@ -488,7 +503,7 @@
                             pids[i] = pidCandidates.keyAt(i);
                         }
                         try {
-                            if (mService.mActivityManager.killPids(pids, "Free memory", secure)) {
+                            if (mWmService.mActivityManager.killPids(pids, "Free memory", secure)) {
                                 killedApps = true;
                             }
                         } catch (RemoteException e) {
@@ -506,9 +521,8 @@
                     if (SHOW_TRANSACTIONS || SHOW_SURFACE_ALLOC) logSurface(winAnimator.mWin,
                             "RECOVER DESTROY", false);
                     winAnimator.destroySurface();
-                    if (winAnimator.mWin.mAppToken != null
-                            && winAnimator.mWin.mAppToken.getController() != null) {
-                        winAnimator.mWin.mAppToken.getController().removeStartingWindow();
+                    if (winAnimator.mWin.mAppToken != null) {
+                        winAnimator.mWin.mAppToken.removeStartingWindow();
                     }
                 }
 
@@ -533,9 +547,9 @@
         int i;
         boolean updateInputWindowsNeeded = false;
 
-        if (mService.mFocusMayChange) {
-            mService.mFocusMayChange = false;
-            updateInputWindowsNeeded = mService.updateFocusedWindowLocked(
+        if (mWmService.mFocusMayChange) {
+            mWmService.mFocusMayChange = false;
+            updateInputWindowsNeeded = mWmService.updateFocusedWindowLocked(
                     UPDATE_FOCUS_WILL_PLACE_SURFACES, false /*updateInputWindows*/);
         }
 
@@ -551,45 +565,50 @@
         mUserActivityTimeout = -1;
         mObscureApplicationContentOnSecondaryDisplays = false;
         mSustainedPerformanceModeCurrent = false;
-        mService.mTransactionSequence++;
+        mWmService.mTransactionSequence++;
 
         // TODO(multi-display): recents animation & wallpaper need support multi-display.
-        final DisplayContent defaultDisplay = mService.getDefaultDisplayContentLocked();
-        final WindowSurfacePlacer surfacePlacer = mService.mWindowPlacerLocked;
+        final DisplayContent defaultDisplay = mWmService.getDefaultDisplayContentLocked();
+        final WindowSurfacePlacer surfacePlacer = mWmService.mWindowPlacerLocked;
 
         if (SHOW_LIGHT_TRANSACTIONS) Slog.i(TAG,
                 ">>> OPEN TRANSACTION performLayoutAndPlaceSurfaces");
-        mService.openSurfaceTransaction();
+        mWmService.openSurfaceTransaction();
         try {
             applySurfaceChangesTransaction(recoveringMemory);
         } catch (RuntimeException e) {
             Slog.wtf(TAG, "Unhandled exception in Window Manager", e);
         } finally {
-            mService.closeSurfaceTransaction("performLayoutAndPlaceSurfaces");
+            mWmService.closeSurfaceTransaction("performLayoutAndPlaceSurfaces");
             if (SHOW_LIGHT_TRANSACTIONS) Slog.i(TAG,
                     "<<< CLOSE TRANSACTION performLayoutAndPlaceSurfaces");
         }
-        mService.mAnimator.executeAfterPrepareSurfacesRunnables();
+        mWmService.mAnimator.executeAfterPrepareSurfacesRunnables();
 
         checkAppTransitionReady(surfacePlacer);
 
         // Defer starting the recents animation until the wallpaper has drawn
         final RecentsAnimationController recentsAnimationController =
-                mService.getRecentsAnimationController();
+                mWmService.getRecentsAnimationController();
         if (recentsAnimationController != null) {
-            recentsAnimationController.checkAnimationReady(mWallpaperController);
+            recentsAnimationController.checkAnimationReady(defaultDisplay.mWallpaperController);
         }
 
-        if (mWallpaperMayChange) {
-            if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, "Wallpaper may change!  Adjusting");
-            defaultDisplay.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
-            if (DEBUG_LAYOUT_REPEATS) surfacePlacer.debugLayoutRepeats("WallpaperMayChange",
-                    defaultDisplay.pendingLayoutChanges);
+        for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+            final DisplayContent displayContent = mChildren.get(displayNdx);
+            if (displayContent.mWallpaperMayChange) {
+                if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG, "Wallpaper may change!  Adjusting");
+                displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
+                if (DEBUG_LAYOUT_REPEATS) {
+                    surfacePlacer.debugLayoutRepeats("WallpaperMayChange",
+                            displayContent.pendingLayoutChanges);
+                }
+            }
         }
 
-        if (mService.mFocusMayChange) {
-            mService.mFocusMayChange = false;
-            if (mService.updateFocusedWindowLocked(UPDATE_FOCUS_PLACING_SURFACES,
+        if (mWmService.mFocusMayChange) {
+            mWmService.mFocusMayChange = false;
+            if (mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_PLACING_SURFACES,
                     false /*updateInputWindows*/)) {
                 updateInputWindowsNeeded = true;
             }
@@ -603,36 +622,35 @@
 
         handleResizingWindows();
 
-        if (DEBUG_ORIENTATION && mService.mDisplayFrozen) Slog.v(TAG,
+        if (DEBUG_ORIENTATION && mWmService.mDisplayFrozen) Slog.v(TAG,
                 "With display frozen, orientationChangeComplete=" + mOrientationChangeComplete);
         if (mOrientationChangeComplete) {
-            if (mService.mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_NONE) {
-                mService.mWindowsFreezingScreen = WINDOWS_FREEZING_SCREENS_NONE;
-                mService.mLastFinishedFreezeSource = mLastWindowFreezeSource;
-                mService.mH.removeMessages(WINDOW_FREEZE_TIMEOUT);
+            if (mWmService.mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_NONE) {
+                mWmService.mWindowsFreezingScreen = WINDOWS_FREEZING_SCREENS_NONE;
+                mWmService.mLastFinishedFreezeSource = mLastWindowFreezeSource;
+                mWmService.mH.removeMessages(WINDOW_FREEZE_TIMEOUT);
             }
-            mService.stopFreezingDisplayLocked();
+            mWmService.stopFreezingDisplayLocked();
         }
 
         // Destroy the surface of any windows that are no longer visible.
-        boolean wallpaperDestroyed = false;
-        i = mService.mDestroySurface.size();
+        i = mWmService.mDestroySurface.size();
         if (i > 0) {
             do {
                 i--;
-                WindowState win = mService.mDestroySurface.get(i);
+                WindowState win = mWmService.mDestroySurface.get(i);
                 win.mDestroying = false;
                 final DisplayContent displayContent = win.getDisplayContent();
                 if (displayContent.mInputMethodWindow == win) {
                     displayContent.setInputMethodWindowLocked(null);
                 }
                 if (displayContent.mWallpaperController.isWallpaperTarget(win)) {
-                    wallpaperDestroyed = true;
+                    displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
                 }
                 win.destroySurfaceUnchecked();
                 win.mWinAnimator.destroyPreservedSurfaceLocked();
             } while (i > 0);
-            mService.mDestroySurface.clear();
+            mWmService.mDestroySurface.clear();
         }
 
         // Time to remove any exiting tokens?
@@ -641,11 +659,6 @@
             displayContent.removeExistingTokensIfPossible();
         }
 
-        if (wallpaperDestroyed) {
-            defaultDisplay.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
-            defaultDisplay.setLayoutNeeded();
-        }
-
         for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
             final DisplayContent displayContent = mChildren.get(displayNdx);
             if (displayContent.pendingLayoutChanges != 0) {
@@ -658,8 +671,8 @@
             dc.getInputMonitor().updateInputWindowsLw(true /*force*/);
         });
 
-        mService.setHoldScreenLocked(mHoldScreen);
-        if (!mService.mDisplayFrozen) {
+        mWmService.setHoldScreenLocked(mHoldScreen);
+        if (!mWmService.mDisplayFrozen) {
             final int brightness = mScreenBrightness < 0 || mScreenBrightness > 1.0f
                     ? -1 : toBrightnessOverride(mScreenBrightness);
 
@@ -671,7 +684,7 @@
 
         if (mSustainedPerformanceModeCurrent != mSustainedPerformanceModeEnabled) {
             mSustainedPerformanceModeEnabled = mSustainedPerformanceModeCurrent;
-            mService.mPowerManagerInternal.powerHint(
+            mWmService.mPowerManagerInternal.powerHint(
                     PowerHint.SUSTAINED_PERFORMANCE,
                     (mSustainedPerformanceModeEnabled ? 1 : 0));
         }
@@ -681,22 +694,22 @@
             mUpdateRotation = updateRotationUnchecked();
         }
 
-        if (mService.mWaitingForDrawnCallback != null
+        if (mWmService.mWaitingForDrawnCallback != null
                 || (mOrientationChangeComplete && !isLayoutNeeded()
                         && !mUpdateRotation)) {
-            mService.checkDrawnWindowsLocked();
+            mWmService.checkDrawnWindowsLocked();
         }
 
-        final int N = mService.mPendingRemove.size();
+        final int N = mWmService.mPendingRemove.size();
         if (N > 0) {
-            if (mService.mPendingRemoveTmp.length < N) {
-                mService.mPendingRemoveTmp = new WindowState[N + 10];
+            if (mWmService.mPendingRemoveTmp.length < N) {
+                mWmService.mPendingRemoveTmp = new WindowState[N + 10];
             }
-            mService.mPendingRemove.toArray(mService.mPendingRemoveTmp);
-            mService.mPendingRemove.clear();
+            mWmService.mPendingRemove.toArray(mWmService.mPendingRemoveTmp);
+            mWmService.mPendingRemove.clear();
             ArrayList<DisplayContent> displayList = new ArrayList();
             for (i = 0; i < N; i++) {
-                final WindowState w = mService.mPendingRemoveTmp[i];
+                final WindowState w = mWmService.mPendingRemoveTmp[i];
                 w.removeImmediately();
                 final DisplayContent displayContent = w.getDisplayContent();
                 if (displayContent != null && !displayList.contains(displayContent)) {
@@ -724,12 +737,13 @@
 
         // Check to see if we are now in a state where the screen should
         // be enabled, because the window obscured flags have changed.
-        mService.enableScreenIfNeededLocked();
+        mWmService.enableScreenIfNeededLocked();
 
-        mService.scheduleAnimationLocked();
+        mWmService.scheduleAnimationLocked();
 
         if (DEBUG_WINDOW_TRACE) Slog.e(TAG,
-                "performSurfacePlacementInner exit: animating=" + mService.mAnimator.isAnimating());
+                "performSurfacePlacementInner exit: animating="
+                        + mWmService.mAnimator.isAnimating());
     }
 
     private void checkAppTransitionReady(WindowSurfacePlacer surfacePlacer) {
@@ -769,23 +783,23 @@
         mObscuringWindow = null;
 
         // TODO(multi-display): Support these features on secondary screens.
-        final DisplayContent defaultDc = mService.getDefaultDisplayContentLocked();
+        final DisplayContent defaultDc = mWmService.getDefaultDisplayContentLocked();
         final DisplayInfo defaultInfo = defaultDc.getDisplayInfo();
         final int defaultDw = defaultInfo.logicalWidth;
         final int defaultDh = defaultInfo.logicalHeight;
-        if (mService.mWatermark != null) {
-            mService.mWatermark.positionSurface(defaultDw, defaultDh);
+        if (mWmService.mWatermark != null) {
+            mWmService.mWatermark.positionSurface(defaultDw, defaultDh);
         }
-        if (mService.mStrictModeFlash != null) {
-            mService.mStrictModeFlash.positionSurface(defaultDw, defaultDh);
+        if (mWmService.mStrictModeFlash != null) {
+            mWmService.mStrictModeFlash.positionSurface(defaultDw, defaultDh);
         }
-        if (mService.mCircularDisplayMask != null) {
-            mService.mCircularDisplayMask.positionSurface(defaultDw, defaultDh,
-                    mService.getDefaultDisplayRotation());
+        if (mWmService.mCircularDisplayMask != null) {
+            mWmService.mCircularDisplayMask.positionSurface(defaultDw, defaultDh,
+                    mWmService.getDefaultDisplayRotation());
         }
-        if (mService.mEmulatorDisplayOverlay != null) {
-            mService.mEmulatorDisplayOverlay.positionSurface(defaultDw, defaultDh,
-                    mService.getDefaultDisplayRotation());
+        if (mWmService.mEmulatorDisplayOverlay != null) {
+            mWmService.mEmulatorDisplayOverlay.positionSurface(defaultDw, defaultDh,
+                    mWmService.getDefaultDisplayRotation());
         }
 
         final int count = mChildren.size();
@@ -796,7 +810,7 @@
 
         // Give the display manager a chance to adjust properties like display rotation if it needs
         // to.
-        mService.mDisplayManagerInternal.performTraversal(mDisplayTransaction);
+        mWmService.mDisplayManagerInternal.performTraversal(mDisplayTransaction);
         SurfaceControl.mergeToGlobalTransaction(mDisplayTransaction);
     }
 
@@ -804,14 +818,14 @@
      * Handles resizing windows during surface placement.
      */
     private void handleResizingWindows() {
-        for (int i = mService.mResizingWindows.size() - 1; i >= 0; i--) {
-            WindowState win = mService.mResizingWindows.get(i);
+        for (int i = mWmService.mResizingWindows.size() - 1; i >= 0; i--) {
+            WindowState win = mWmService.mResizingWindows.get(i);
             if (win.mAppFreezing) {
                 // Don't remove this window until rotation has completed.
                 continue;
             }
             win.reportResized();
-            mService.mResizingWindows.remove(i);
+            mWmService.mResizingWindows.remove(i);
         }
     }
 
@@ -849,7 +863,7 @@
             if ((attrFlags & FLAG_KEEP_SCREEN_ON) != 0) {
                 mHoldScreen = w.mSession;
                 mHoldScreenWindow = w;
-            } else if (DEBUG_KEEP_SCREEN_ON && w == mService.mLastWakeLockHoldingWindow) {
+            } else if (DEBUG_KEEP_SCREEN_ON && w == mWmService.mLastWakeLockHoldingWindow) {
                 Slog.d(TAG_KEEP_SCREEN_ON, "handleNotObscuredLocked: " + w + " was holding "
                         + "screen wakelock but no longer has FLAG_KEEP_SCREEN_ON!!! called by"
                         + Debug.getCallers(10));
@@ -898,21 +912,17 @@
     boolean copyAnimToLayoutParams() {
         boolean doRequest = false;
 
-        final int bulkUpdateParams = mService.mAnimator.mBulkUpdateParams;
+        final int bulkUpdateParams = mWmService.mAnimator.mBulkUpdateParams;
         if ((bulkUpdateParams & SET_UPDATE_ROTATION) != 0) {
             mUpdateRotation = true;
             doRequest = true;
         }
-        if ((bulkUpdateParams & SET_WALLPAPER_MAY_CHANGE) != 0) {
-            mWallpaperMayChange = true;
-            doRequest = true;
-        }
         if ((bulkUpdateParams & SET_ORIENTATION_CHANGE_COMPLETE) == 0) {
             mOrientationChangeComplete = false;
         } else {
             mOrientationChangeComplete = true;
-            mLastWindowFreezeSource = mService.mAnimator.mLastWindowFreezeSource;
-            if (mService.mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_NONE) {
+            mLastWindowFreezeSource = mWmService.mAnimator.mLastWindowFreezeSource;
+            if (mWmService.mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_NONE) {
                 doRequest = true;
             }
         }
@@ -938,12 +948,12 @@
         public void handleMessage(Message msg) {
             switch (msg.what) {
                 case SET_SCREEN_BRIGHTNESS_OVERRIDE:
-                    mService.mPowerManagerInternal.setScreenBrightnessOverrideFromWindowManager(
+                    mWmService.mPowerManagerInternal.setScreenBrightnessOverrideFromWindowManager(
                             msg.arg1);
                     break;
                 case SET_USER_ACTIVITY_TIMEOUT:
-                    mService.mPowerManagerInternal.setUserActivityTimeoutOverrideFromWindowManager(
-                            (Long) msg.obj);
+                    mWmService.mPowerManagerInternal.
+                            setUserActivityTimeoutOverrideFromWindowManager((Long) msg.obj);
                     break;
                 default:
                     break;
@@ -953,7 +963,7 @@
 
     void dumpDisplayContents(PrintWriter pw) {
         pw.println("WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)");
-        if (mService.mDisplayReady) {
+        if (mWmService.mDisplayReady) {
             final int count = mChildren.size();
             for (int i = 0; i < count; ++i) {
                 final DisplayContent displayContent = mChildren.get(i);
@@ -1006,7 +1016,7 @@
     public void writeToProto(ProtoOutputStream proto, long fieldId, boolean trim) {
         final long token = proto.start(fieldId);
         super.writeToProto(proto, WINDOW_CONTAINER, trim);
-        if (mService.mDisplayReady) {
+        if (mWmService.mDisplayReady) {
             final int count = mChildren.size();
             for (int i = 0; i < count; ++i) {
                 final DisplayContent displayContent = mChildren.get(i);
@@ -1029,9 +1039,8 @@
     @Override
     void positionChildAt(int position, DisplayContent child, boolean includingParents) {
         super.positionChildAt(position, child, includingParents);
-        final RootWindowContainerController controller = getController();
-        if (controller != null) {
-            controller.onChildPositionChanged(child, position);
+        if (mRootActivityContainer != null) {
+            mRootActivityContainer.onChildPositionChanged(child.getController(), position);
         }
     }
 
@@ -1041,13 +1050,8 @@
     }
 
     @Override
-    RootWindowContainerController getController() {
-        return (RootWindowContainerController) super.getController();
-    }
-
-    @Override
     void scheduleAnimation() {
-        mService.scheduleAnimationLocked();
+        mWmService.scheduleAnimationLocked();
     }
 
     /**
@@ -1061,6 +1065,12 @@
         }
     }
 
+    void forAllDisplayPolicies(Consumer<DisplayPolicy> callback) {
+        for (int i = mChildren.size() - 1; i >= 0; --i) {
+            callback.accept(mChildren.get(i).getDisplayPolicy());
+        }
+    }
+
     /**
      * Get current topmost focused IME window in system.
      * Will look on all displays in current Z-order.
diff --git a/services/core/java/com/android/server/wm/RootWindowContainerController.java b/services/core/java/com/android/server/wm/RootWindowContainerController.java
deleted file mode 100644
index 1176220..0000000
--- a/services/core/java/com/android/server/wm/RootWindowContainerController.java
+++ /dev/null
@@ -1,46 +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.server.wm;
-
-/**
- * Controller for the root container. This is created by activity manager to link activity
- * stack supervisor to the root window container they use in window manager.
- */
-public class RootWindowContainerController
-        extends WindowContainerController<RootWindowContainer, RootWindowContainerListener> {
-
-    public RootWindowContainerController(RootWindowContainerListener listener) {
-        super(listener, WindowManagerService.getInstance());
-        synchronized (mGlobalLock) {
-            mRoot.setController(this);
-        }
-    }
-
-    void onChildPositionChanged(DisplayContent child, int position) {
-        // This callback invokes to AM directly so here assumes AM lock is held. If there is another
-        // path called only with WM lock, it should change to use handler to post or move outside of
-        // WM lock with adding AM lock.
-        mListener.onChildPositionChanged(child.getController(), position);
-    }
-
-    /** Move the display to the given position. */
-    public void positionChildAt(DisplayWindowController child, int position) {
-        synchronized (mGlobalLock) {
-            mContainer.positionChildAt(position, child.mContainer);
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/wm/RootWindowContainerListener.java b/services/core/java/com/android/server/wm/RootWindowContainerListener.java
deleted file mode 100644
index f413e3f7..0000000
--- a/services/core/java/com/android/server/wm/RootWindowContainerListener.java
+++ /dev/null
@@ -1,26 +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.server.wm;
-
-/**
- * Interface used by the creator of {@link RootWindowContainerController} to notify the changes to
- * the display container in activity manager.
- */
-public interface RootWindowContainerListener extends WindowContainerListener {
-    /** Called when the z-order of display is changed. */
-    void onChildPositionChanged(DisplayWindowController childController, int position);
-}
diff --git a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
index df97027..3947bd4 100644
--- a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
+++ b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
@@ -222,7 +222,7 @@
     }
 
     public ScreenRotationAnimation(Context context, DisplayContent displayContent,
-            boolean forceDefaultOrientation, boolean isSecure, WindowManagerService service) {
+            boolean fixedToUserRotation, boolean isSecure, WindowManagerService service) {
         mService = service;
         mContext = context;
         mDisplayContent = displayContent;
@@ -234,7 +234,7 @@
         final int originalWidth;
         final int originalHeight;
         DisplayInfo displayInfo = displayContent.getDisplayInfo();
-        if (forceDefaultOrientation) {
+        if (fixedToUserRotation) {
             // Emulated orientation.
             mForceDefaultOrientation = true;
             originalWidth = displayContent.mBaseDisplayWidth;
@@ -261,7 +261,7 @@
         try {
             mSurfaceControl = displayContent.makeOverlay()
                     .setName("ScreenshotSurface")
-                    .setSize(mWidth, mHeight)
+                    .setBufferSize(mWidth, mHeight)
                     .setSecure(isSecure)
                     .build();
 
diff --git a/services/core/java/com/android/server/wm/SeamlessRotator.java b/services/core/java/com/android/server/wm/SeamlessRotator.java
index 95ca0a6..05f556c 100644
--- a/services/core/java/com/android/server/wm/SeamlessRotator.java
+++ b/services/core/java/com/android/server/wm/SeamlessRotator.java
@@ -89,13 +89,16 @@
      * Removing the transform and the result of the {@link WindowState} layout are both tied to the
      * {@link WindowState} next frame, such that they apply at the same time the client draws the
      * window in the new orientation.
+     *
+     * In the case of a rotation timeout, we want to remove the transform immediately and not defer
+     * it.
      */
-    public void finish(WindowState win) {
+    public void finish(WindowState win, boolean timeout) {
         mTransform.reset();
         final Transaction t = win.getPendingTransaction();
         t.setMatrix(win.mSurfaceControl, mTransform, mFloat9);
         t.setPosition(win.mSurfaceControl, win.mLastSurfacePosition.x, win.mLastSurfacePosition.y);
-        if (win.mWinAnimator.mSurfaceController != null) {
+        if (win.mWinAnimator.mSurfaceController != null && !timeout) {
             t.deferTransactionUntil(win.mSurfaceControl,
                     win.mWinAnimator.mSurfaceController.getHandle(), win.getFrameNumber());
             t.deferTransactionUntil(win.mWinAnimator.mSurfaceController.mSurfaceControl,
diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
index b411fad..37b5a7c 100644
--- a/services/core/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -29,7 +29,6 @@
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 
 import android.content.ClipData;
-import android.content.Context;
 import android.graphics.Rect;
 import android.graphics.Region;
 import android.os.Binder;
@@ -42,7 +41,6 @@
 import android.os.UserHandle;
 import android.util.MergedConfiguration;
 import android.util.Slog;
-import android.view.Display;
 import android.view.DisplayCutout;
 import android.view.IWindow;
 import android.view.IWindowId;
@@ -52,6 +50,7 @@
 import android.view.Surface;
 import android.view.SurfaceControl;
 import android.view.SurfaceSession;
+import android.view.InsetsState;
 import android.view.WindowManager;
 
 import com.android.internal.os.logging.MetricsLoggerWrapper;
@@ -60,6 +59,7 @@
 import java.io.PrintWriter;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.function.BiConsumer;
 
 /**
  * This class represents an active client session.  There is generally one
@@ -154,17 +154,21 @@
     public int addToDisplay(IWindow window, int seq, WindowManager.LayoutParams attrs,
             int viewVisibility, int displayId, Rect outFrame, Rect outContentInsets,
             Rect outStableInsets, Rect outOutsets,
-            DisplayCutout.ParcelableWrapper outDisplayCutout, InputChannel outInputChannel) {
+            DisplayCutout.ParcelableWrapper outDisplayCutout, InputChannel outInputChannel,
+            InsetsState outInsetsState) {
         return mService.addWindow(this, window, seq, attrs, viewVisibility, displayId, outFrame,
-                outContentInsets, outStableInsets, outOutsets, outDisplayCutout, outInputChannel);
+                outContentInsets, outStableInsets, outOutsets, outDisplayCutout, outInputChannel,
+                outInsetsState);
     }
 
     @Override
     public int addToDisplayWithoutInputChannel(IWindow window, int seq, WindowManager.LayoutParams attrs,
-            int viewVisibility, int displayId, Rect outContentInsets, Rect outStableInsets) {
+            int viewVisibility, int displayId, Rect outContentInsets, Rect outStableInsets,
+            InsetsState outInsetsState) {
         return mService.addWindow(this, window, seq, attrs, viewVisibility, displayId,
                 new Rect() /* outFrame */, outContentInsets, outStableInsets, null /* outOutsets */,
-                new DisplayCutout.ParcelableWrapper() /* cutout */, null /* outInputChannel */);
+                new DisplayCutout.ParcelableWrapper() /* cutout */, null /* outInputChannel */,
+                outInsetsState);
     }
 
     @Override
@@ -183,7 +187,7 @@
             Rect outFrame, Rect outOverscanInsets, Rect outContentInsets, Rect outVisibleInsets,
             Rect outStableInsets, Rect outsets, Rect outBackdropFrame,
             DisplayCutout.ParcelableWrapper cutout, MergedConfiguration mergedConfiguration,
-            Surface outSurface) {
+            Surface outSurface, InsetsState outInsetsState) {
         if (false) Slog.d(TAG_WM, ">>>>>> ENTERED relayout from "
                 + Binder.getCallingPid());
         Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, mRelayoutTag);
@@ -191,7 +195,7 @@
                 requestedWidth, requestedHeight, viewFlags, flags, frameNumber,
                 outFrame, outOverscanInsets, outContentInsets, outVisibleInsets,
                 outStableInsets, outsets, outBackdropFrame, cutout,
-                mergedConfiguration, outSurface);
+                mergedConfiguration, outSurface, outInsetsState);
         Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
         if (false) Slog.d(TAG_WM, "<<<<<< EXITING relayout to "
                 + Binder.getCallingPid());
@@ -315,14 +319,19 @@
         }
     }
 
+    private void actionOnWallpaper(IBinder window,
+            BiConsumer<WallpaperController, WindowState> action) {
+        final WindowState windowState = mService.windowForClientLocked(this, window, true);
+        action.accept(windowState.getDisplayContent().mWallpaperController, windowState);
+    }
+
     @Override
     public void setWallpaperPosition(IBinder window, float x, float y, float xStep, float yStep) {
         synchronized (mService.mGlobalLock) {
             long ident = Binder.clearCallingIdentity();
             try {
-                mService.mRoot.mWallpaperController.setWindowWallpaperPosition(
-                        mService.windowForClientLocked(this, window, true),
-                        x, y, xStep, yStep);
+                actionOnWallpaper(window, (wpController, windowState) ->
+                        wpController.setWindowWallpaperPosition(windowState, x, y, xStep, yStep));
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -332,7 +341,8 @@
     @Override
     public void wallpaperOffsetsComplete(IBinder window) {
         synchronized (mService.mGlobalLock) {
-            mService.mRoot.mWallpaperController.wallpaperOffsetsComplete(window);
+            actionOnWallpaper(window, (wpController, windowState) ->
+                    wpController.wallpaperOffsetsComplete(window));
         }
     }
 
@@ -341,8 +351,8 @@
         synchronized (mService.mGlobalLock) {
             long ident = Binder.clearCallingIdentity();
             try {
-                mService.mRoot.mWallpaperController.setWindowWallpaperDisplayOffset(
-                        mService.windowForClientLocked(this, window, true), x, y);
+                actionOnWallpaper(window, (wpController, windowState) ->
+                        wpController.setWindowWallpaperDisplayOffset(windowState, x, y));
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -355,9 +365,9 @@
         synchronized (mService.mGlobalLock) {
             long ident = Binder.clearCallingIdentity();
             try {
-                return mService.mRoot.mWallpaperController.sendWindowWallpaperCommand(
-                        mService.windowForClientLocked(this, window, true),
-                        action, x, y, z, extras, sync);
+                final WindowState windowState = mService.windowForClientLocked(this, window, true);
+                return windowState.getDisplayContent().mWallpaperController
+                        .sendWindowWallpaperCommand(windowState, action, x, y, z, extras, sync);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -367,7 +377,8 @@
     @Override
     public void wallpaperCommandComplete(IBinder window, Bundle result) {
         synchronized (mService.mGlobalLock) {
-            mService.mRoot.mWallpaperController.wallpaperCommandComplete(window);
+            actionOnWallpaper(window, (wpController, windowState) ->
+                    wpController.wallpaperCommandComplete(window));
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/StackWindowController.java b/services/core/java/com/android/server/wm/StackWindowController.java
index d8e1ebf..8f18aa5 100644
--- a/services/core/java/com/android/server/wm/StackWindowController.java
+++ b/services/core/java/com/android/server/wm/StackWindowController.java
@@ -200,14 +200,15 @@
     }
 
     /**
-     * @see TaskStack.getStackDockedModeBoundsLocked(Rect, Rect, Rect, boolean)
+     * @see TaskStack.getStackDockedModeBoundsLocked(ConfigurationContainer, Rect, Rect, Rect)
      */
-   public void getStackDockedModeBounds(Rect currentTempTaskBounds, Rect outStackBounds,
-           Rect outTempTaskBounds, boolean ignoreVisibility) {
+    public void getStackDockedModeBounds(Configuration parentConfig, Rect dockedBounds,
+            Rect currentTempTaskBounds,
+            Rect outStackBounds, Rect outTempTaskBounds) {
         synchronized (mGlobalLock) {
             if (mContainer != null) {
-                mContainer.getStackDockedModeBoundsLocked(currentTempTaskBounds, outStackBounds,
-                        outTempTaskBounds, ignoreVisibility);
+                mContainer.getStackDockedModeBoundsLocked(parentConfig, dockedBounds,
+                        currentTempTaskBounds, outStackBounds, outTempTaskBounds);
                 return;
             }
             outStackBounds.setEmpty();
@@ -251,7 +252,7 @@
      * before mContainer has been updated, any relevant properties (like {@param windowingMode})
      * need to be passed in.
      */
-    public void adjustConfigurationForBounds(Rect bounds, Rect insetBounds,
+    public void adjustConfigurationForBounds(Rect bounds,
             Rect nonDecorBounds, Rect stableBounds, boolean overrideWidth,
             boolean overrideHeight, float density, Configuration config,
             Configuration parentConfig, int windowingMode) {
@@ -260,11 +261,12 @@
             final DisplayContent displayContent = stack.getDisplayContent();
             final DisplayInfo di = displayContent.getDisplayInfo();
             final DisplayCutout displayCutout = di.displayCutout;
+            final DisplayPolicy displayPolicy = displayContent.getDisplayPolicy();
 
             // Get the insets and display bounds
-            mService.mPolicy.getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
+            displayPolicy.getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
                     displayCutout, mTmpStableInsets);
-            mService.mPolicy.getNonDecorInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
+            displayPolicy.getNonDecorInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
                     displayCutout, mTmpNonDecorInsets);
             mTmpDisplayBounds.set(0, 0, di.logicalWidth, di.logicalHeight);
 
@@ -301,11 +303,9 @@
                 // Additionally task dimensions should not be bigger than its parents dimensions.
                 // The non decor inset are areas that could never be removed in Honeycomb. See
                 // {@link WindowManagerPolicy#getNonDecorInsetsLw}.
-                intersectDisplayBoundsExcludeInsets(nonDecorBounds,
-                        insetBounds != null ? insetBounds : bounds, mTmpNonDecorInsets,
+                intersectDisplayBoundsExcludeInsets(nonDecorBounds, bounds, mTmpNonDecorInsets,
                         mTmpDisplayBounds, overrideWidth, overrideHeight);
-                intersectDisplayBoundsExcludeInsets(stableBounds,
-                        insetBounds != null ? insetBounds : bounds, mTmpStableInsets,
+                intersectDisplayBoundsExcludeInsets(stableBounds, bounds, mTmpStableInsets,
                         mTmpDisplayBounds, overrideWidth, overrideHeight);
                 width = Math.min((int) (stableBounds.width() / density),
                         parentConfig.screenWidthDp);
@@ -321,7 +321,7 @@
             config.screenWidthDp = width;
             config.screenHeightDp = height;
             config.smallestScreenWidthDp = getSmallestWidthForTaskBounds(
-                    insetBounds != null ? insetBounds : bounds, density, windowingMode);
+                    bounds, density, windowingMode);
         }
     }
 
@@ -372,14 +372,6 @@
         mHandler.obtainMessage(H.REQUEST_RESIZE, bounds).sendToTarget();
     }
 
-    /** @see TaskStack.updateBoundsForConfigChange(Configuration, Configuration, Rect) */
-    public boolean updateBoundsForConfigChange(
-            Configuration parentConfig, Configuration prevConfig, Rect outBounds) {
-        synchronized (mGlobalLock) {
-            return mContainer.updateBoundsForConfigChange(parentConfig, prevConfig, outBounds);
-        }
-    }
-
     @Override
     public String toString() {
         return "{StackWindowController stackId=" + mStackId + "}";
diff --git a/services/core/java/com/android/server/wm/StatusBarController.java b/services/core/java/com/android/server/wm/StatusBarController.java
new file mode 100644
index 0000000..b4de75b
--- /dev/null
+++ b/services/core/java/com/android/server/wm/StatusBarController.java
@@ -0,0 +1,113 @@
+/*
+ * 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.server.wm;
+
+import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
+import static android.view.WindowManager.LayoutParams.MATCH_PARENT;
+
+import static com.android.server.wm.WindowManagerInternal.AppTransitionListener;
+
+import android.app.StatusBarManager;
+import android.os.IBinder;
+import android.view.View;
+
+import com.android.server.statusbar.StatusBarManagerInternal;
+
+/**
+ * Implements status bar specific behavior.
+ */
+public class StatusBarController extends BarController {
+
+    private final AppTransitionListener mAppTransitionListener = new AppTransitionListener() {
+
+        private Runnable mAppTransitionPending = () -> {
+            StatusBarManagerInternal statusBar = getStatusBarInternal();
+            if (statusBar != null && mWin != null) {
+                statusBar.appTransitionPending(mWin.getDisplayId());
+            }
+        };
+
+        private Runnable mAppTransitionCancelled = () -> {
+            StatusBarManagerInternal statusBar = getStatusBarInternal();
+            if (statusBar != null && mWin != null) {
+                statusBar.appTransitionCancelled(mWin.getDisplayId());
+            }
+        };
+
+        private Runnable mAppTransitionFinished = () -> {
+            StatusBarManagerInternal statusBar = getStatusBarInternal();
+            if (statusBar != null && mWin != null) {
+                statusBar.appTransitionFinished(mWin.getDisplayId());
+            }
+        };
+
+        @Override
+        public void onAppTransitionPendingLocked() {
+            mHandler.post(mAppTransitionPending);
+        }
+
+        @Override
+        public int onAppTransitionStartingLocked(int transit, IBinder openToken,
+                IBinder closeToken, long duration, long statusBarAnimationStartTime,
+                long statusBarAnimationDuration) {
+            mHandler.post(() -> {
+                StatusBarManagerInternal statusBar = getStatusBarInternal();
+                if (statusBar != null && mWin != null) {
+                    statusBar.appTransitionStarting(mWin.getDisplayId(),
+                            statusBarAnimationStartTime, statusBarAnimationDuration);
+                }
+            });
+            return 0;
+        }
+
+        @Override
+        public void onAppTransitionCancelledLocked(int transit) {
+            mHandler.post(mAppTransitionCancelled);
+        }
+
+        @Override
+        public void onAppTransitionFinishedLocked(IBinder token) {
+            mHandler.post(mAppTransitionFinished);
+        }
+    };
+
+    StatusBarController() {
+        super("StatusBar",
+                View.STATUS_BAR_TRANSIENT,
+                View.STATUS_BAR_UNHIDE,
+                View.STATUS_BAR_TRANSLUCENT,
+                StatusBarManager.WINDOW_STATUS_BAR,
+                FLAG_TRANSLUCENT_STATUS,
+                View.STATUS_BAR_TRANSPARENT);
+    }
+
+    void setTopAppHidesStatusBar(boolean hidesStatusBar) {
+        StatusBarManagerInternal statusBar = getStatusBarInternal();
+        if (statusBar != null) {
+            statusBar.setTopAppHidesStatusBar(hidesStatusBar);
+        }
+    }
+
+    @Override
+    protected boolean skipAnimation() {
+        return mWin.getAttrs().height == MATCH_PARENT;
+    }
+
+    AppTransitionListener getAppTransitionListener() {
+        return mAppTransitionListener;
+    }
+}
diff --git a/services/core/java/com/android/server/wm/StrictModeFlash.java b/services/core/java/com/android/server/wm/StrictModeFlash.java
index e97b366..82f2ad8 100644
--- a/services/core/java/com/android/server/wm/StrictModeFlash.java
+++ b/services/core/java/com/android/server/wm/StrictModeFlash.java
@@ -16,7 +16,6 @@
 
 package com.android.server.wm;
 
-
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 
@@ -24,12 +23,9 @@
 import android.graphics.Color;
 import android.graphics.PixelFormat;
 import android.graphics.Rect;
-import android.graphics.Region;
-import android.view.Display;
-import android.view.Surface.OutOfResourcesException;
 import android.view.Surface;
+import android.view.Surface.OutOfResourcesException;
 import android.view.SurfaceControl;
-import android.view.SurfaceSession;
 
 class StrictModeFlash {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "StrictModeFlash" : TAG_WM;
@@ -46,7 +42,7 @@
         try {
             ctrl = dc.makeOverlay()
                     .setName("StrictModeFlash")
-                    .setSize(1, 1)
+                    .setBufferSize(1, 1)
                     .setFormat(PixelFormat.TRANSLUCENT)
                     .build();
             ctrl.setLayer(WindowManagerService.TYPE_LAYER_MULTIPLIER * 101);  // one more than Watermark? arbitrary.
@@ -122,7 +118,7 @@
         }
         mLastDW = dw;
         mLastDH = dh;
-        mSurfaceControl.setSize(dw, dh);
+        mSurfaceControl.setBufferSize(dw, dh);
         mDrawNeeded = true;
     }
 
diff --git a/services/core/java/com/android/server/wm/SurfaceAnimator.java b/services/core/java/com/android/server/wm/SurfaceAnimator.java
index 31c0c7f..11068ce 100644
--- a/services/core/java/com/android/server/wm/SurfaceAnimator.java
+++ b/services/core/java/com/android/server/wm/SurfaceAnimator.java
@@ -302,8 +302,7 @@
         if (DEBUG_ANIM) Slog.i(TAG, "Reparenting to leash");
         final SurfaceControl.Builder builder = mAnimatable.makeAnimationLeash()
                 .setParent(mAnimatable.getAnimationLeashParent())
-                .setName(surface + " - animation-leash")
-                .setSize(width, height);
+                .setName(surface + " - animation-leash");
         final SurfaceControl leash = builder.build();
         t.setWindowCrop(leash, width, height);
         if (!hidden) {
diff --git a/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java b/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java
similarity index 93%
rename from services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java
rename to services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java
index d3cc8ef..bdb76c2 100644
--- a/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java
+++ b/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * 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.
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.server.policy;
+package com.android.server.wm;
 
 import android.content.Context;
 import android.os.Handler;
-import android.os.Looper;
 import android.os.SystemClock;
 import android.util.Slog;
 import android.view.GestureDetector;
@@ -27,11 +26,11 @@
 import android.view.WindowManagerPolicyConstants.PointerEventListener;
 import android.widget.OverScroller;
 
-/*
+/**
  * Listens for system-wide input gestures, firing callbacks when detected.
  * @hide
  */
-public class SystemGesturesPointerEventListener implements PointerEventListener {
+class SystemGesturesPointerEventListener implements PointerEventListener {
     private static final String TAG = "SystemGestures";
     private static final boolean DEBUG = false;
     private static final long SWIPE_TIMEOUT_MS = 500;
@@ -46,6 +45,7 @@
     private static final int SWIPE_FROM_LEFT = 4;
 
     private final Context mContext;
+    private final Handler mHandler;
     private final int mSwipeStartThreshold;
     private final int mSwipeDistanceThreshold;
     private final Callbacks mCallbacks;
@@ -55,7 +55,6 @@
     private final long[] mDownTime = new long[MAX_TRACKED_POINTERS];
 
     private GestureDetector mGestureDetector;
-    private OverScroller mOverscroller;
 
     int screenHeight;
     int screenWidth;
@@ -65,8 +64,9 @@
     private boolean mMouseHoveringAtEdge;
     private long mLastFlingTime;
 
-    public SystemGesturesPointerEventListener(Context context, Callbacks callbacks) {
+    SystemGesturesPointerEventListener(Context context, Handler handler, Callbacks callbacks) {
         mContext = context;
+        mHandler = handler;
         mCallbacks = checkNull("callbacks", callbacks);
         mSwipeStartThreshold = checkNull("context", context).getResources()
                 .getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height);
@@ -83,9 +83,7 @@
     }
 
     public void systemReady() {
-        Handler h = new Handler(Looper.myLooper());
-        mGestureDetector = new GestureDetector(mContext, new FlingGestureDetector(), h);
-        mOverscroller = new OverScroller(mContext);
+        mGestureDetector = new GestureDetector(mContext, new FlingGestureDetector(), mHandler);
     }
 
     @Override
@@ -163,14 +161,14 @@
     private void captureDown(MotionEvent event, int pointerIndex) {
         final int pointerId = event.getPointerId(pointerIndex);
         final int i = findIndex(pointerId);
-        if (DEBUG) Slog.d(TAG, "pointer " + pointerId +
-                " down pointerIndex=" + pointerIndex + " trackingIndex=" + i);
+        if (DEBUG) Slog.d(TAG, "pointer " + pointerId
+                + " down pointerIndex=" + pointerIndex + " trackingIndex=" + i);
         if (i != UNTRACKED_POINTER) {
             mDownX[i] = event.getX(pointerIndex);
             mDownY[i] = event.getY(pointerIndex);
             mDownTime[i] = event.getEventTime();
-            if (DEBUG) Slog.d(TAG, "pointer " + pointerId +
-                    " down x=" + mDownX[i] + " y=" + mDownY[i]);
+            if (DEBUG) Slog.d(TAG, "pointer " + pointerId
+                    + " down x=" + mDownX[i] + " y=" + mDownY[i]);
         }
     }
 
@@ -242,6 +240,13 @@
     }
 
     private final class FlingGestureDetector extends GestureDetector.SimpleOnGestureListener {
+
+        private OverScroller mOverscroller;
+
+        FlingGestureDetector() {
+            mOverscroller = new OverScroller(mContext);
+        }
+
         @Override
         public boolean onSingleTapUp(MotionEvent e) {
             if (!mOverscroller.isFinished()) {
diff --git a/services/core/java/com/android/server/wm/TEST_MAPPING b/services/core/java/com/android/server/wm/TEST_MAPPING
index 0c9a14b..bbe5424 100644
--- a/services/core/java/com/android/server/wm/TEST_MAPPING
+++ b/services/core/java/com/android/server/wm/TEST_MAPPING
@@ -1,17 +1,6 @@
 {
   "presubmit": [
     {
-      "name": "CtsWindowManagerDeviceTestCases",
-      "options": [
-        {
-          "include-annotation": "android.platform.test.annotations.Presubmit"
-        },
-        {
-          "exclude-annotation": "android.support.test.filters.FlakyTest"
-        }
-      ]
-    },
-    {
       "name": "FrameworksServicesTests",
       "options": [
         {
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index c9800f8..c70f075 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -27,11 +27,11 @@
 import static com.android.server.wm.TaskProto.APP_WINDOW_TOKENS;
 import static com.android.server.wm.TaskProto.BOUNDS;
 import static com.android.server.wm.TaskProto.DEFER_REMOVAL;
+import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS;
 import static com.android.server.wm.TaskProto.FILLS_PARENT;
 import static com.android.server.wm.TaskProto.ID;
 import static com.android.server.wm.TaskProto.SURFACE_HEIGHT;
 import static com.android.server.wm.TaskProto.SURFACE_WIDTH;
-import static com.android.server.wm.TaskProto.TEMP_INSET_BOUNDS;
 import static com.android.server.wm.TaskProto.WINDOW_CONTAINER;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STACK;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
@@ -66,8 +66,8 @@
     final Rect mPreparedFrozenBounds = new Rect();
     final Configuration mPreparedFrozenMergedConfig = new Configuration();
 
-    // Bounds used to calculate the insets.
-    private final Rect mTempInsetBounds = new Rect();
+    // If non-empty, bounds used to display the task during animations/interactions.
+    private final Rect mOverrideDisplayedBounds = new Rect();
 
     /** ID of the display which rotation {@link #mRotation} has. */
     private int mLastRotationDisplayId = Display.INVALID_DISPLAY;
@@ -302,29 +302,28 @@
 
     @Override
     void onDisplayChanged(DisplayContent dc) {
-        updateSurfaceSize(dc);
         adjustBoundsForDisplayChangeIfNeeded(dc);
         super.onDisplayChanged(dc);
     }
 
     /**
-     * Sets the bounds used to calculate the insets. See
-     * {@link android.app.IActivityTaskManager#resizeDockedStack} why this is needed.
+     * Sets bounds that override where the task is displayed. Used during transient operations
+     * like animation / interaction.
      */
-    void setTempInsetBounds(Rect tempInsetBounds) {
-        if (tempInsetBounds != null) {
-            mTempInsetBounds.set(tempInsetBounds);
+    void setOverrideDisplayedBounds(Rect overrideDisplayedBounds) {
+        if (overrideDisplayedBounds != null) {
+            mOverrideDisplayedBounds.set(overrideDisplayedBounds);
         } else {
-            mTempInsetBounds.setEmpty();
+            mOverrideDisplayedBounds.setEmpty();
         }
     }
 
     /**
-     * Gets the bounds used to calculate the insets. See
+     * Gets the bounds that override where the task is displayed. See
      * {@link android.app.IActivityTaskManager#resizeDockedStack} why this is needed.
      */
-    void getTempInsetBounds(Rect out) {
-        out.set(mTempInsetBounds);
+    Rect getOverrideDisplayedBounds() {
+        return mOverrideDisplayedBounds;
     }
 
     void setResizeable(int resizeMode) {
@@ -333,7 +332,7 @@
 
     boolean isResizeable() {
         return ActivityInfo.isResizeableMode(mResizeMode) || mSupportsPictureInPicture
-                || mService.mForceResizableTasks;
+                || mWmService.mForceResizableTasks;
     }
 
     /**
@@ -381,8 +380,13 @@
         } else {
             mTmpRect2.offsetTo(adjustedBounds.left, adjustedBounds.top);
         }
-        setTempInsetBounds(tempInsetBounds);
-        setBounds(mTmpRect2, false /* forced */);
+        if (tempInsetBounds == null || tempInsetBounds.isEmpty()) {
+            setOverrideDisplayedBounds(null);
+            setBounds(mTmpRect2);
+        } else {
+            setOverrideDisplayedBounds(mTmpRect2);
+            setBounds(tempInsetBounds);
+        }
     }
 
     /** Return true if the current bound can get outputted to the rest of the system as-is. */
@@ -408,6 +412,15 @@
         mStack.getDisplayContent().getBounds(out);
     }
 
+    @Override
+    public Rect getDisplayedBounds() {
+        if (mOverrideDisplayedBounds.isEmpty()) {
+            return super.getDisplayedBounds();
+        } else {
+            return mOverrideDisplayedBounds;
+        }
+    }
+
     /**
      * Calculate the maximum visible area of this task. If the task has only one app,
      * the result will be visible frame of that app. If the task has more than one apps,
@@ -582,7 +595,7 @@
     }
 
     boolean isTaskAnimating() {
-        final RecentsAnimationController recentsAnim = mService.getRecentsAnimationController();
+        final RecentsAnimationController recentsAnim = mWmService.getRecentsAnimationController();
         if (recentsAnim != null) {
             if (recentsAnim.isAnimatingTask(this)) {
                 return true;
@@ -629,13 +642,13 @@
     }
 
     void forceWindowsScaleable(boolean force) {
-        mService.openSurfaceTransaction();
+        mWmService.openSurfaceTransaction();
         try {
             for (int i = mChildren.size() - 1; i >= 0; i--) {
                 mChildren.get(i).forceWindowsScaleableInTransaction(force);
             }
         } finally {
-            mService.closeSurfaceTransaction("forceWindowsScaleable");
+            mWmService.closeSurfaceTransaction("forceWindowsScaleable");
         }
     }
 
@@ -724,7 +737,7 @@
         }
         proto.write(FILLS_PARENT, matchParentBounds());
         getBounds().writeToProto(proto, BOUNDS);
-        mTempInsetBounds.writeToProto(proto, TEMP_INSET_BOUNDS);
+        mOverrideDisplayedBounds.writeToProto(proto, DISPLAYED_BOUNDS);
         proto.write(DEFER_REMOVAL, mDeferRemoval);
         proto.write(SURFACE_WIDTH, mSurfaceControl.getWidth());
         proto.write(SURFACE_HEIGHT, mSurfaceControl.getHeight());
@@ -740,7 +753,7 @@
         pw.println(doublePrefix + "mBounds=" + getBounds().toShortString());
         pw.println(doublePrefix + "mdr=" + mDeferRemoval);
         pw.println(doublePrefix + "appTokens=" + mChildren);
-        pw.println(doublePrefix + "mTempInsetBounds=" + mTempInsetBounds.toShortString());
+        pw.println(doublePrefix + "mDisplayedBounds=" + mOverrideDisplayedBounds.toShortString());
 
         final String triplePrefix = doublePrefix + "  ";
         final String quadruplePrefix = triplePrefix + "  ";
diff --git a/services/core/java/com/android/server/wm/TaskChangeNotificationController.java b/services/core/java/com/android/server/wm/TaskChangeNotificationController.java
index 3b3feac..bb3df02 100644
--- a/services/core/java/com/android/server/wm/TaskChangeNotificationController.java
+++ b/services/core/java/com/android/server/wm/TaskChangeNotificationController.java
@@ -283,8 +283,8 @@
     void notifyActivityPinned(ActivityRecord r) {
         mHandler.removeMessages(NOTIFY_ACTIVITY_PINNED_LISTENERS_MSG);
         final Message msg = mHandler.obtainMessage(NOTIFY_ACTIVITY_PINNED_LISTENERS_MSG,
-                r.getTask().taskId, r.getStackId(), r.packageName);
-        msg.sendingUid = r.userId;
+                r.getTaskRecord().taskId, r.getStackId(), r.packageName);
+        msg.sendingUid = r.mUserId;
         forAllLocalListeners(mNotifyActivityPinned, msg);
         msg.sendToTarget();
     }
diff --git a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java
index 117984a..4ae2a79 100644
--- a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java
+++ b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java
@@ -138,7 +138,7 @@
         // STEP 1: Determine the display to launch the activity/task.
         final int displayId = getPreferredLaunchDisplay(task, options, source, currentParams);
         outParams.mPreferredDisplayId = displayId;
-        ActivityDisplay display = mSupervisor.getActivityDisplay(displayId);
+        ActivityDisplay display = mSupervisor.mRootActivityContainer.getActivityDisplay(displayId);
         if (DEBUG) {
             appendLog("display-id=" + outParams.mPreferredDisplayId + " display-windowing-mode="
                     + display.getWindowingMode());
@@ -300,12 +300,14 @@
             displayId = stack.mDisplayId;
         }
 
-        if (displayId != INVALID_DISPLAY && mSupervisor.getActivityDisplay(displayId) == null) {
+        if (displayId != INVALID_DISPLAY
+                && mSupervisor.mRootActivityContainer.getActivityDisplay(displayId) == null) {
             displayId = currentParams.mPreferredDisplayId;
         }
         displayId = (displayId == INVALID_DISPLAY) ? currentParams.mPreferredDisplayId : displayId;
 
-        return (displayId != INVALID_DISPLAY && mSupervisor.getActivityDisplay(displayId) != null)
+        return (displayId != INVALID_DISPLAY
+                && mSupervisor.mRootActivityContainer.getActivityDisplay(displayId) != null)
                 ? displayId : DEFAULT_DISPLAY;
     }
 
@@ -606,7 +608,8 @@
                 || displayBounds.height() < inOutBounds.height()) {
             // There is no way for us to fit the bounds in the display without changing width
             // or height. Just move the start to align with the display.
-            final int layoutDirection = mSupervisor.getConfiguration().getLayoutDirection();
+            final int layoutDirection =
+                    mSupervisor.mRootActivityContainer.getConfiguration().getLayoutDirection();
             final int left = layoutDirection == View.LAYOUT_DIRECTION_RTL
                     ? displayBounds.width() - inOutBounds.width()
                     : 0;
diff --git a/services/core/java/com/android/server/wm/TaskPersister.java b/services/core/java/com/android/server/wm/TaskPersister.java
index 8120dec..d50af38 100644
--- a/services/core/java/com/android/server/wm/TaskPersister.java
+++ b/services/core/java/com/android/server/wm/TaskPersister.java
@@ -16,7 +16,7 @@
 
 package com.android.server.wm;
 
-import static com.android.server.wm.ActivityStackSupervisor.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS;
+import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS;
 
 import android.annotation.NonNull;
 import android.graphics.Bitmap;
@@ -330,7 +330,7 @@
                                 // mWriteQueue.add(new TaskWriteQueueItem(task));
 
                                 final int taskId = task.taskId;
-                                if (mStackSupervisor.anyTaskForIdLocked(taskId,
+                                if (mService.mRootActivityContainer.anyTaskForId(taskId,
                                         MATCH_TASK_IN_STACKS_OR_RECENT_TASKS) != null) {
                                     // Should not happen.
                                     Slog.wtf(TAG, "Existing task with taskId " + taskId + "found");
diff --git a/services/core/java/com/android/server/wm/TaskPositioner.java b/services/core/java/com/android/server/wm/TaskPositioner.java
index 7182ad6..b88e581 100644
--- a/services/core/java/com/android/server/wm/TaskPositioner.java
+++ b/services/core/java/com/android/server/wm/TaskPositioner.java
@@ -33,6 +33,7 @@
 import android.app.IActivityTaskManager;
 import android.graphics.Point;
 import android.graphics.Rect;
+import android.os.Binder;
 import android.os.Looper;
 import android.os.Process;
 import android.os.RemoteException;
@@ -261,7 +262,7 @@
                 mClientChannel, mService.mAnimationHandler.getLooper(),
                 mService.mAnimator.getChoreographer());
 
-        mDragApplicationHandle = new InputApplicationHandle(null);
+        mDragApplicationHandle = new InputApplicationHandle(new Binder());
         mDragApplicationHandle.name = TAG;
         mDragApplicationHandle.dispatchingTimeoutNanos =
                 WindowManagerService.DEFAULT_INPUT_DISPATCHING_TIMEOUT_NANOS;
@@ -269,7 +270,7 @@
         mDragWindowHandle = new InputWindowHandle(mDragApplicationHandle, null,
                 display.getDisplayId());
         mDragWindowHandle.name = TAG;
-        mDragWindowHandle.inputChannel = mServerChannel;
+        mDragWindowHandle.token = mServerChannel.getToken();
         mDragWindowHandle.layer = mService.getDragLayerLocked();
         mDragWindowHandle.layoutParamsFlags = 0;
         mDragWindowHandle.layoutParamsType = WindowManager.LayoutParams.TYPE_DRAG;
diff --git a/services/core/java/com/android/server/wm/TaskPositioningController.java b/services/core/java/com/android/server/wm/TaskPositioningController.java
index 51567a0..e15bf5b 100644
--- a/services/core/java/com/android/server/wm/TaskPositioningController.java
+++ b/services/core/java/com/android/server/wm/TaskPositioningController.java
@@ -21,15 +21,19 @@
 
 import android.annotation.Nullable;
 import android.app.IActivityTaskManager;
+import android.graphics.Point;
+import android.graphics.Rect;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.RemoteException;
 import android.util.Slog;
+import android.view.Display;
 import android.view.IWindow;
+import android.view.InputWindowHandle;
+import android.view.SurfaceControl;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.server.input.InputManagerService;
-import android.view.InputWindowHandle;
 
 /**
  * Controller for task positioning by drag.
@@ -39,10 +43,14 @@
     private final InputManagerService mInputManager;
     private final IActivityTaskManager mActivityManager;
     private final Handler mHandler;
+    private SurfaceControl mInputSurface;
+    private DisplayContent mPositioningDisplay;
 
     @GuardedBy("WindowManagerSerivce.mWindowMap")
     private @Nullable TaskPositioner mTaskPositioner;
 
+    private final Rect mTmpClipRect = new Rect();
+
     boolean isPositioningLocked() {
         return mTaskPositioner != null;
     }
@@ -59,6 +67,43 @@
         mHandler = new Handler(looper);
     }
 
+    void hideInputSurface(SurfaceControl.Transaction t, int displayId) {
+        if (mPositioningDisplay != null && mPositioningDisplay.getDisplayId() == displayId
+                && mInputSurface != null) {
+            t.hide(mInputSurface);
+        }
+    }
+
+    void showInputSurface(SurfaceControl.Transaction t, int displayId) {
+        if (mPositioningDisplay == null || mPositioningDisplay.getDisplayId() != displayId) {
+            return;
+        }
+        final DisplayContent dc = mService.mRoot.getDisplayContent(displayId);
+        if (mInputSurface == null) {
+            mInputSurface = mService.makeSurfaceBuilder(dc.getSession())
+                    .setContainerLayer(true)
+                    .setName("Drag and Drop Input Consumer").build();
+        }
+
+        final InputWindowHandle h = getDragWindowHandleLocked();
+        if (h == null) {
+            Slog.w(TAG_WM, "Drag is in progress but there is no "
+                    + "drag window handle.");
+            return;
+        }
+
+        t.show(mInputSurface);
+        t.setInputWindowInfo(mInputSurface, h);
+        t.setLayer(mInputSurface, Integer.MAX_VALUE);
+
+        final Display display = dc.getDisplay();
+        final Point p = new Point();
+        display.getRealSize(p);
+
+        mTmpClipRect.set(0, 0, p.x, p.y);
+        t.setWindowCrop(mInputSurface, mTmpClipRect);
+    }
+
     boolean startMovingTask(IWindow window, float startX, float startY) {
         WindowState win = null;
         synchronized (mService.mGlobalLock) {
@@ -122,6 +167,7 @@
             Slog.w(TAG_WM, "startPositioningLocked: Invalid display content " + win);
             return false;
         }
+        mPositioningDisplay = displayContent;
 
         mTaskPositioner = TaskPositioner.create(mService);
         mTaskPositioner.register(displayContent);
@@ -138,9 +184,7 @@
         if (!mInputManager.transferTouchFocus(
                 transferFocusFromWin.mInputChannel, mTaskPositioner.mServerChannel)) {
             Slog.e(TAG_WM, "startPositioningLocked: Unable to transfer touch focus");
-            mTaskPositioner.unregister();
-            mTaskPositioner = null;
-            displayContent.getInputMonitor().updateInputWindowsLw(true /*force*/);
+            cleanUpTaskPositioner();
             return false;
         }
 
@@ -153,11 +197,21 @@
             if (DEBUG_TASK_POSITIONING) Slog.d(TAG_WM, "finishPositioning");
 
             synchronized (mService.mGlobalLock) {
-                if (mTaskPositioner != null) {
-                    mTaskPositioner.unregister();
-                    mTaskPositioner = null;
-                }
+                cleanUpTaskPositioner();
+                mPositioningDisplay = null;
             }
         });
     }
+
+    private void cleanUpTaskPositioner() {
+        final TaskPositioner positioner = mTaskPositioner;
+        if (positioner == null) {
+            return;
+        }
+
+        // We need to assign task positioner to null first to indicate that we're finishing task
+        // positioning.
+        mTaskPositioner = null;
+        positioner.unregister();
+    }
 }
diff --git a/services/core/java/com/android/server/wm/TaskRecord.java b/services/core/java/com/android/server/wm/TaskRecord.java
index bd6689f..3cf0bd7 100644
--- a/services/core/java/com/android/server/wm/TaskRecord.java
+++ b/services/core/java/com/android/server/wm/TaskRecord.java
@@ -310,6 +310,11 @@
     // This number will be assigned when we evaluate OOM scores for all visible tasks.
     int mLayerRank = -1;
 
+    // When non-empty, this represents the bounds this task will be drawn at. This gets set during
+    // transient operations such as split-divider dragging and animations.
+    // TODO(b/119687367): This member is temporary.
+    final Rect mDisplayedBounds = new Rect();
+
     /** Helper object used for updating override configuration. */
     private Configuration mTmpConfig = new Configuration();
 
@@ -447,18 +452,21 @@
         }
 
         mWindowContainerController = controller;
+        if (!mDisplayedBounds.isEmpty() && controller.mContainer != null) {
+            controller.mContainer.setOverrideDisplayedBounds(mDisplayedBounds);
+        }
     }
 
     void removeWindowContainer() {
         mService.getLockTaskController().clearLockedTask(this);
         mWindowContainerController.removeContainer();
+        mWindowContainerController = null;
         if (!getWindowConfiguration().persistTaskBounds()) {
             // Reset current bounds for task whose bounds shouldn't be persisted so it uses
             // default configuration the next time it launches.
             updateOverrideConfiguration(null);
         }
         mService.getTaskChangeNotificationController().notifyTaskRemoved(taskId);
-        mWindowContainerController = null;
     }
 
     @Override
@@ -472,8 +480,8 @@
         }
         mResizeMode = resizeMode;
         mWindowContainerController.setResizeable(resizeMode);
-        mService.mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
-        mService.mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+        mService.mRootActivityContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS);
+        mService.mRootActivityContainer.resumeFocusedStacksTopActivities();
     }
 
     void setTaskDockedResizing(boolean resizing) {
@@ -544,10 +552,9 @@
                     // this won't cause tons of irrelevant windows being preserved because only
                     // activities in this task may experience a bounds change. Configs for other
                     // activities stay the same.
-                    mService.mStackSupervisor.ensureActivitiesVisibleLocked(r, 0,
-                            preserveWindow);
+                    mService.mRootActivityContainer.ensureActivitiesVisible(r, 0, preserveWindow);
                     if (!kept) {
-                        mService.mStackSupervisor.resumeFocusedStacksTopActivitiesLocked();
+                        mService.mRootActivityContainer.resumeFocusedStacksTopActivities();
                     }
                 }
             }
@@ -623,6 +630,7 @@
             @ReparentMoveStackMode int moveStackMode, boolean animate, boolean deferResume,
             boolean schedulePictureInPictureModeChange, String reason) {
         final ActivityStackSupervisor supervisor = mService.mStackSupervisor;
+        final RootActivityContainer root = mService.mRootActivityContainer;
         final WindowManagerService windowManager = mService.mWindowManager;
         final ActivityStack sourceStack = getStack();
         final ActivityStack toStack = supervisor.getReparentTargetStack(this, preferredStack,
@@ -655,7 +663,7 @@
         boolean kept = true;
         try {
             final ActivityRecord r = topRunningActivityLocked();
-            final boolean wasFocused = r != null && supervisor.isTopDisplayFocusedStack(sourceStack)
+            final boolean wasFocused = r != null && root.isTopDisplayFocusedStack(sourceStack)
                     && (topRunningActivityLocked() == r);
             final boolean wasResumed = r != null && sourceStack.getResumedActivity() == r;
             final boolean wasPaused = r != null && sourceStack.mPausingActivity == r;
@@ -748,8 +756,8 @@
         if (!deferResume) {
             // The task might have already been running and its visibility needs to be synchronized
             // with the visibility of the stack / windows.
-            supervisor.ensureActivitiesVisibleLocked(null, 0, !mightReplaceWindow);
-            supervisor.resumeFocusedStacksTopActivitiesLocked();
+            root.ensureActivitiesVisible(null, 0, !mightReplaceWindow);
+            root.resumeFocusedStacksTopActivities();
         }
 
         // TODO: Handle incorrect request to move before the actual move, not after.
@@ -903,7 +911,7 @@
         // Correct the activity intent for aliasing. The task record intent will always be based on
         // the real activity that will be launched not the alias, so we need to use an intent with
         // the component name pointing to the real activity not the alias in the activity record.
-        intent.setComponent(r.realActivity);
+        intent.setComponent(r.mActivityComponent);
         return intent.filterEquals(this.intent);
     }
 
@@ -982,7 +990,7 @@
     @Override
     protected void onParentChanged() {
         super.onParentChanged();
-        mService.mStackSupervisor.updateUIDsPresentOnDisplay();
+        mService.mRootActivityContainer.updateUIDsPresentOnDisplay();
     }
 
     // Close up recents linked list.
@@ -1143,7 +1151,7 @@
     }
 
     boolean okToShowLocked() {
-        // NOTE: If {@link TaskRecord#topRunningActivityLocked} return is not null then it is
+        // NOTE: If {@link TaskRecord#topRunningActivity} return is not null then it is
         // okay to show the activity when locked.
         return mService.mStackSupervisor.isCurrentProfileLocked(userId)
                 || topRunningActivityLocked() != null;
@@ -1182,7 +1190,7 @@
         mActivities.add(newTop);
 
         // Make sure window manager is aware of the position change.
-        mWindowContainerController.positionChildAtTop(newTop.mWindowContainerController);
+        mWindowContainerController.positionChildAtTop(newTop.mAppWindowToken);
         updateEffectiveIntent();
 
         setFrontOfTask();
@@ -1211,7 +1219,7 @@
      * be in the current task or unparented to any task.
      */
     void addActivityAtIndex(int index, ActivityRecord r) {
-        TaskRecord task = r.getTask();
+        TaskRecord task = r.getTaskRecord();
         if (task != null && task != this) {
             throw new IllegalArgumentException("Can not add r=" + " to task=" + this
                     + " current parent=" + task);
@@ -1264,18 +1272,15 @@
             mService.notifyTaskPersisterLocked(this, false);
         }
 
-        // Sync. with window manager
-        updateOverrideConfigurationFromLaunchBounds();
-        final AppWindowContainerController appController = r.getWindowContainerController();
-        if (appController != null) {
+        if (r.mAppWindowToken != null) {
             // Only attempt to move in WM if the child has a controller. It is possible we haven't
             // created controller for the activity we are starting yet.
-            mWindowContainerController.positionChildAt(appController, index);
+            mWindowContainerController.positionChildAt(r.mAppWindowToken, index);
         }
 
         // Make sure the list of display UID whitelists is updated
         // now that this record is in a new task.
-        mService.mStackSupervisor.updateUIDsPresentOnDisplay();
+        mService.mRootActivityContainer.updateUIDsPresentOnDisplay();
     }
 
     /**
@@ -1288,7 +1293,7 @@
     }
 
     boolean removeActivity(ActivityRecord r, boolean reparenting) {
-        if (r.getTask() != this) {
+        if (r.getTaskRecord() != this) {
             throw new IllegalArgumentException(
                     "Activity=" + r + " does not belong to task=" + this);
         }
@@ -1404,7 +1409,7 @@
             if (r.finishing) {
                 continue;
             }
-            if (r.realActivity.equals(newR.realActivity)) {
+            if (r.mActivityComponent.equals(newR.mActivityComponent)) {
                 // Here it is!  Now finish everything in front...
                 final ActivityRecord ret = r;
 
@@ -1562,13 +1567,13 @@
      * the index within the history at which it's found, or < 0 if not found.
      */
     final ActivityRecord findActivityInHistoryLocked(ActivityRecord r) {
-        final ComponentName realActivity = r.realActivity;
+        final ComponentName realActivity = r.mActivityComponent;
         for (int activityNdx = mActivities.size() - 1; activityNdx >= 0; --activityNdx) {
             ActivityRecord candidate = mActivities.get(activityNdx);
             if (candidate.finishing) {
                 continue;
             }
-            if (candidate.realActivity.equals(realActivity)) {
+            if (candidate.mActivityComponent.equals(realActivity)) {
                 return candidate;
             }
         }
@@ -1684,9 +1689,9 @@
         // to do this for the pinned stack as the bounds are controlled by the system.
         if (!inPinnedWindowingMode()) {
             final int defaultMinSizeDp =
-                    mService.mStackSupervisor.mDefaultMinSizeOfResizeableTaskDp;
+                    mService.mRootActivityContainer.mDefaultMinSizeOfResizeableTaskDp;
             final ActivityDisplay display =
-                    mService.mStackSupervisor.getActivityDisplay(mStack.mDisplayId);
+                    mService.mRootActivityContainer.getActivityDisplay(mStack.mDisplayId);
             final float density =
                     (float) display.getConfiguration().densityDpi / DisplayMetrics.DENSITY_DEFAULT;
             final int defaultMinSize = (int) (defaultMinSizeDp * density);
@@ -1735,9 +1740,15 @@
         final Configuration newOverrideConfig = new Configuration();
         if (bounds != null) {
             newOverrideConfig.setTo(getOverrideConfiguration());
-            mTmpRect.set(bounds);
+            if (insetBounds != null && !insetBounds.isEmpty()) {
+                mTmpRect.set(insetBounds);
+                setDisplayedBounds(bounds);
+            } else {
+                mTmpRect.set(bounds);
+                setDisplayedBounds(null);
+            }
             adjustForMinimalTaskDimensions(mTmpRect);
-            computeOverrideConfiguration(newOverrideConfig, mTmpRect, insetBounds,
+            computeOverrideConfiguration(newOverrideConfig, mTmpRect,
                     mTmpRect.right != bounds.right, mTmpRect.bottom != bounds.bottom);
         }
 
@@ -1785,16 +1796,23 @@
                 setLastNonFullscreenBounds(currentBounds);
             }
             setBounds(null);
+            setDisplayedBounds(null);
             newConfig.unset();
         } else {
-            mTmpRect.set(bounds);
+            if (insetBounds != null && !insetBounds.isEmpty()) {
+                mTmpRect.set(insetBounds);
+                setDisplayedBounds(bounds);
+            } else {
+                mTmpRect.set(bounds);
+                setDisplayedBounds(null);
+            }
             adjustForMinimalTaskDimensions(mTmpRect);
             setBounds(mTmpRect);
 
             if (mStack == null || persistBounds) {
                 setLastNonFullscreenBounds(getOverrideBounds());
             }
-            computeOverrideConfiguration(newConfig, mTmpRect, insetBounds,
+            computeOverrideConfiguration(newConfig, mTmpRect,
                     mTmpRect.right != bounds.right, mTmpRect.bottom != bounds.bottom);
         }
         onOverrideConfigurationChanged(newConfig);
@@ -1850,11 +1868,44 @@
         mService.mStackSupervisor.mLaunchParamsPersister.saveTask(this);
     }
 
+    /**
+     * Displayed bounds are used to set where the task is drawn at any given time. This is
+     * separate from its actual bounds so that the app doesn't see any meaningful configuration
+     * changes during transitionary periods.
+     */
+    void setDisplayedBounds(Rect bounds) {
+        if (bounds == null) {
+            mDisplayedBounds.setEmpty();
+        } else {
+            mDisplayedBounds.set(bounds);
+        }
+        final TaskWindowContainerController controller = getWindowContainerController();
+        if (controller != null && controller.mContainer != null) {
+            controller.mContainer.setOverrideDisplayedBounds(
+                    mDisplayedBounds.isEmpty() ? null : mDisplayedBounds);
+        }
+    }
+
+    /**
+     * Gets the current overridden displayed bounds. These will be empty if the task is not
+     * currently overriding where it is displayed.
+     */
+    Rect getDisplayedBounds() {
+        return mDisplayedBounds;
+    }
+
+    /**
+     * @return {@code true} if this has overridden displayed bounds.
+     */
+    boolean hasDisplayedBounds() {
+        return !mDisplayedBounds.isEmpty();
+    }
+
     /** Clears passed config and fills it with new override values. */
     // TODO(b/36505427): TaskRecord.computeOverrideConfiguration() is a utility method that doesn't
     // depend on task or stacks, but uses those object to get the display to base the calculation
     // on. Probably best to centralize calculations like this in ConfigurationContainer.
-    void computeOverrideConfiguration(Configuration config, Rect bounds, Rect insetBounds,
+    void computeOverrideConfiguration(Configuration config, Rect bounds,
             boolean overrideWidth, boolean overrideHeight) {
         mTmpNonDecorBounds.set(bounds);
         mTmpStableBounds.set(bounds);
@@ -1866,7 +1917,7 @@
 
         if (mStack != null) {
             final StackWindowController stackController = mStack.getWindowContainerController();
-            stackController.adjustConfigurationForBounds(bounds, insetBounds,
+            stackController.adjustConfigurationForBounds(bounds,
                     mTmpNonDecorBounds, mTmpStableBounds, overrideWidth, overrideHeight, density,
                     config, parentConfig, getWindowingMode());
         } else {
@@ -1993,7 +2044,7 @@
                 ? reuseActivitiesReport.base.intent.getComponent()
                 : null;
         info.topActivity = reuseActivitiesReport.top != null
-                ? reuseActivitiesReport.top.realActivity
+                ? reuseActivitiesReport.top.mActivityComponent
                 : null;
         info.origActivity = origActivity;
         info.realActivity = realActivity;
@@ -2044,7 +2095,7 @@
             pw.println(origActivity.flattenToShortString());
         }
         if (realActivity != null) {
-            pw.print(prefix); pw.print("realActivity=");
+            pw.print(prefix); pw.print("mActivityComponent=");
             pw.println(realActivity.flattenToShortString());
         }
         if (autoRemoveRecents || isPersistable || !isActivityTypeStandard() || numFullscreen != 0) {
diff --git a/services/core/java/com/android/server/wm/TaskSnapshotSurface.java b/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
index a7b0272..9a56606 100644
--- a/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
+++ b/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
@@ -32,6 +32,7 @@
 import static android.view.WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
+
 import static com.android.internal.policy.DecorView.NAVIGATION_BAR_COLOR_VIEW_ATTRIBUTES;
 import static com.android.internal.policy.DecorView.STATUS_BAR_COLOR_VIEW_ATTRIBUTES;
 import static com.android.internal.policy.DecorView.getColorViewLeftInset;
@@ -65,6 +66,7 @@
 import android.view.SurfaceSession;
 import android.view.View;
 import android.view.ViewGroup.LayoutParams;
+import android.view.InsetsState;
 import android.view.WindowManager;
 import android.view.WindowManagerGlobal;
 
@@ -141,6 +143,7 @@
         final Rect taskBounds;
         final Rect tmpContentInsets = new Rect();
         final Rect tmpStableInsets = new Rect();
+        final InsetsState mTmpInsetsState = new InsetsState();
         final MergedConfiguration tmpMergedConfiguration = new MergedConfiguration();
         int backgroundColor = WHITE;
         int statusBarColor = 0;
@@ -201,7 +204,7 @@
         try {
             final int res = session.addToDisplay(window, window.mSeq, layoutParams,
                     View.GONE, token.getDisplayContent().getDisplayId(), tmpFrame, tmpRect, tmpRect,
-                    tmpRect, tmpCutout, null);
+                    tmpRect, tmpCutout, null, mTmpInsetsState);
             if (res < 0) {
                 Slog.w(TAG, "Failed to add snapshot starting window res=" + res);
                 return null;
@@ -217,7 +220,7 @@
         try {
             session.relayout(window, window.mSeq, layoutParams, -1, -1, View.VISIBLE, 0, -1,
                     tmpFrame, tmpRect, tmpContentInsets, tmpRect, tmpStableInsets, tmpRect, tmpRect,
-                    tmpCutout, tmpMergedConfiguration, surface);
+                    tmpCutout, tmpMergedConfiguration, surface, mTmpInsetsState);
         } catch (RemoteException e) {
             // Local call.
         }
@@ -312,7 +315,7 @@
         // Keep a reference to it such that it doesn't get destroyed when finalized.
         mChildSurfaceControl = new SurfaceControl.Builder(session)
                 .setName(mTitle + " - task-snapshot-surface")
-                .setSize(buffer.getWidth(), buffer.getHeight())
+                .setBufferSize(buffer.getWidth(), buffer.getHeight())
                 .setFormat(buffer.getFormat())
                 .build();
         Surface surface = new Surface();
diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java
index 912cb7f..b16e184c 100644
--- a/services/core/java/com/android/server/wm/TaskStack.java
+++ b/services/core/java/com/android/server/wm/TaskStack.java
@@ -23,11 +23,8 @@
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.PINNED_WINDOWING_MODE_ELEVATION_IN_DIP;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
-import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET;
-import static android.content.res.Configuration.DENSITY_DPI_UNDEFINED;
 import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.WindowManager.DOCKED_BOTTOM;
@@ -66,7 +63,6 @@
 import android.util.proto.ProtoOutputStream;
 import android.view.DisplayCutout;
 import android.view.DisplayInfo;
-import android.view.Surface;
 import android.view.SurfaceControl;
 
 import com.android.internal.policy.DividerSnapAlgorithm;
@@ -106,12 +102,6 @@
      */
     private final Rect mFullyAdjustedImeBounds = new Rect();
 
-    // Display rotation as of the last time {@link #mBounds} was set.
-    private int mRotation;
-
-    /** Density as of last time {@link #mBounds} was set. */
-    private int mDensity;
-
     private SurfaceControl mAnimationBackgroundSurface;
     private boolean mAnimationBackgroundSurfaceIsShown = false;
 
@@ -194,9 +184,15 @@
         // Update bounds of containing tasks.
         for (int taskNdx = mChildren.size() - 1; taskNdx >= 0; --taskNdx) {
             final Task task = mChildren.get(taskNdx);
-            task.setBounds(taskBounds.get(task.mTaskId), false /* forced */);
-            task.setTempInsetBounds(taskTempInsetBounds != null ?
-                    taskTempInsetBounds.get(task.mTaskId) : null);
+            final Rect insetBounds =
+                    taskTempInsetBounds != null ? taskTempInsetBounds.get(task.mTaskId) : null;
+            if (insetBounds != null) {
+                task.setBounds(insetBounds);
+                task.setOverrideDisplayedBounds(taskBounds.get(task.mTaskId));
+            } else {
+                task.setBounds(taskBounds.get(task.mTaskId));
+                task.setOverrideDisplayedBounds(null);
+            }
         }
         return true;
     }
@@ -258,7 +254,6 @@
         getRawBounds(mTmpRect);
         final Rect stackBounds = getBounds();
         getPendingTransaction()
-                .setSize(mAnimationBackgroundSurface, mTmpRect.width(), mTmpRect.height())
                 .setWindowCrop(mAnimationBackgroundSurface, mTmpRect.width(), mTmpRect.height())
                 .setPosition(mAnimationBackgroundSurface, mTmpRect.left - stackBounds.left,
                         mTmpRect.top - stackBounds.top);
@@ -291,28 +286,16 @@
     }
 
     private int setBounds(Rect existing, Rect bounds) {
-        int rotation = Surface.ROTATION_0;
-        int density = DENSITY_DPI_UNDEFINED;
-        WindowContainer parent = getParent();
-        if (parent != null) {
-            parent.getBounds(mTmpRect);
-            rotation = mDisplayContent.getDisplayInfo().rotation;
-            density = mDisplayContent.getDisplayInfo().logicalDensityDpi;
-        }
-
-        if (equivalentBounds(existing, bounds) && mRotation == rotation) {
+        if (equivalentBounds(existing, bounds)) {
             return BOUNDS_CHANGE_NONE;
         }
 
         final int result = super.setBounds(bounds);
 
-        if (mDisplayContent != null) {
+        if (getParent() != null) {
             updateAnimationBackgroundBounds();
         }
 
-        mRotation = rotation;
-        mDensity = density;
-
         updateAdjustedBounds();
 
         updateSurfaceBounds();
@@ -420,78 +403,66 @@
     }
 
     /**
-     * Updates the passed-in {@code inOutBounds} based on how it would change when this container's
-     * override configuration is applied to the specified {@code parentConfig} and
-     * {@code prevConfig}. This gets run *after* the override configuration is updated, so it's
-     * safe to rely on wm hierarchy state in here (though eventually this dependence should be
-     * removed).
+     * Updates the passed-in {@code inOutBounds} based on the current state of the
+     * pinned controller. This gets run *after* the override configuration is updated, so it's
+     * safe to rely on the controller's state in here (though eventually this dependence should
+     * be removed).
      *
      * This does NOT modify this TaskStack's configuration. However, it does, for the time-being,
-     * update various controller state (pinned/docked).
+     * update pinned controller state.
      *
-     * @param parentConfig a parent configuration to compute relative to.
-     * @param prevConfig the full configuration used to produce the incoming {@code inOutBounds}.
      * @param inOutBounds the bounds to update (both input and output).
-     * @return true if bounds were updated to some non-empty value. */
-    boolean updateBoundsForConfigChange(
-            Configuration parentConfig, Configuration prevConfig, Rect inOutBounds) {
-        if (getOverrideWindowingMode() == WINDOWING_MODE_PINNED) {
-            if ((mBoundsAnimatingRequested || mBoundsAnimating)
-                    && !mBoundsAnimationTarget.isEmpty()) {
-                getFinalAnimationBounds(mTmpRect2);
-            } else {
-                mTmpRect2.set(prevConfig.windowConfiguration.getBounds());
-            }
-            boolean updated = mDisplayContent.mPinnedStackControllerLocked.onTaskStackBoundsChanged(
-                    mTmpRect2, mTmpRect3);
-            if (updated) {
-                inOutBounds.set(mTmpRect3);
-
-                // Once we've set the bounds based on the rotation of the old bounds in the new
-                // orientation, clear the animation target bounds since they are obsolete, and
-                // cancel any currently running animations
-                mBoundsAnimationTarget.setEmpty();
-                mBoundsAnimationSourceHintBounds.setEmpty();
-                mCancelCurrentBoundsAnimation = true;
-            }
-            return updated;
+     * @return true if bounds were updated to some non-empty value.
+     */
+    boolean calculatePinnedBoundsForConfigChange(Rect inOutBounds) {
+        if ((mBoundsAnimatingRequested || mBoundsAnimating) && !mBoundsAnimationTarget.isEmpty()) {
+            getFinalAnimationBounds(mTmpRect2);
+        } else {
+            mTmpRect2.set(inOutBounds);
         }
+        boolean updated = mDisplayContent.mPinnedStackControllerLocked.onTaskStackBoundsChanged(
+                mTmpRect2, mTmpRect3);
+        if (updated) {
+            inOutBounds.set(mTmpRect3);
 
-        final int newRotation = parentConfig.windowConfiguration.getRotation();
-        final int newDensity = parentConfig.densityDpi;
-
-        if (prevConfig.windowConfiguration.getRotation() == newRotation
-                && prevConfig.densityDpi == newDensity) {
-            return false;
+            // Once we've set the bounds based on the rotation of the old bounds in the new
+            // orientation, clear the animation target bounds since they are obsolete, and
+            // cancel any currently running animations
+            mBoundsAnimationTarget.setEmpty();
+            mBoundsAnimationSourceHintBounds.setEmpty();
+            mCancelCurrentBoundsAnimation = true;
         }
+        return updated;
+    }
 
-        if (matchParentBounds()) {
-            return false;
+    /**
+     * Updates the passed-in {@code inOutBounds} based on the current state of the
+     * docked controller. This gets run *after* the override configuration is updated, so it's
+     * safe to rely on the controller's state in here (though eventually this dependence should
+     * be removed).
+     *
+     * This does NOT modify this TaskStack's configuration. However, it does, for the time-being,
+     * update docked controller state.
+     *
+     * @param parentConfig the parent configuration for reference.
+     * @param inOutBounds the bounds to update (both input and output).
+     */
+    void calculateDockedBoundsForConfigChange(Configuration parentConfig, Rect inOutBounds) {
+        final boolean primary = getOverrideWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
+        repositionSplitScreenStackAfterRotation(parentConfig, primary, inOutBounds);
+        final DisplayCutout cutout = mDisplayContent.getDisplayInfo().displayCutout;
+        snapDockedStackAfterRotation(parentConfig, cutout, inOutBounds);
+        if (primary) {
+            final int newDockSide = getDockSide(parentConfig, inOutBounds);
+            // Update the dock create mode and clear the dock create bounds, these
+            // might change after a rotation and the original values will be invalid.
+            mWmService.setDockedStackCreateStateLocked(
+                    (newDockSide == DOCKED_LEFT || newDockSide == DOCKED_TOP)
+                            ? SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT
+                            : SPLIT_SCREEN_CREATE_MODE_BOTTOM_OR_RIGHT,
+                    null);
+            mDisplayContent.getDockedDividerController().notifyDockSideChanged(newDockSide);
         }
-
-        mDisplayContent.rotateBounds(parentConfig.windowConfiguration.getBounds(),
-                prevConfig.windowConfiguration.getRotation(), newRotation, inOutBounds);
-        if (getOverrideWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY
-                || getOverrideWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY) {
-            boolean primary = getOverrideWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
-            repositionSplitScreenStackAfterRotation(parentConfig, primary, inOutBounds);
-            final DisplayCutout cutout = mDisplayContent.getDisplayInfo().displayCutout;
-            snapDockedStackAfterRotation(parentConfig, cutout, inOutBounds);
-            if (primary) {
-                final int newDockSide = getDockSide(mDisplayContent, parentConfig, inOutBounds);
-
-                // Update the dock create mode and clear the dock create bounds, these
-                // might change after a rotation and the original values will be invalid.
-                mService.setDockedStackCreateStateLocked(
-                        (newDockSide == DOCKED_LEFT || newDockSide == DOCKED_TOP)
-                                ? SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT
-                                : SPLIT_SCREEN_CREATE_MODE_BOTTOM_OR_RIGHT,
-                        null);
-                mDisplayContent.getDockedDividerController().notifyDockSideChanged(newDockSide);
-            }
-        }
-
-        return true;
     }
 
     /**
@@ -555,10 +526,10 @@
         // Snap the position to a target.
         final int rotation = parentConfig.windowConfiguration.getRotation();
         final int orientation = parentConfig.orientation;
-        mService.mPolicy.getStableInsetsLw(rotation, displayWidth, displayHeight,
+        mDisplayContent.getDisplayPolicy().getStableInsetsLw(rotation, displayWidth, displayHeight,
                 displayCutout, outBounds);
         final DividerSnapAlgorithm algorithm = new DividerSnapAlgorithm(
-                mService.mContext.getResources(), displayWidth, displayHeight,
+                mWmService.mContext.getResources(), displayWidth, displayHeight,
                 dividerSize, orientation == Configuration.ORIENTATION_PORTRAIT, outBounds,
                 getDockSide(), isMinimizedDockAndHomeStackResizable());
         final SnapTarget target = algorithm.calculateNonDismissingSnapTarget(dividerPosition);
@@ -629,7 +600,7 @@
     private int findPositionForTask(Task task, int targetPosition, boolean showForAllUsers,
             boolean addingNew) {
         final boolean canShowTask =
-                showForAllUsers || mService.isCurrentProfileLocked(task.mUserId);
+                showForAllUsers || mWmService.isCurrentProfileLocked(task.mUserId);
 
         final int stackSize = mChildren.size();
         int minPosition = 0;
@@ -663,7 +634,7 @@
             final Task tmpTask = mChildren.get(minPosition);
             final boolean canShowTmpTask =
                     tmpTask.showForAllUsers()
-                            || mService.isCurrentProfileLocked(tmpTask.mUserId);
+                            || mWmService.isCurrentProfileLocked(tmpTask.mUserId);
             if (canShowTmpTask) {
                 break;
             }
@@ -682,7 +653,7 @@
             final Task tmpTask = mChildren.get(maxPosition);
             final boolean canShowTmpTask =
                     tmpTask.showForAllUsers()
-                            || mService.isCurrentProfileLocked(tmpTask.mUserId);
+                            || mWmService.isCurrentProfileLocked(tmpTask.mUserId);
             if (!canShowTmpTask) {
                 break;
             }
@@ -721,7 +692,6 @@
     @Override
     public void onConfigurationChanged(Configuration newParentConfig) {
         final int prevWindowingMode = getWindowingMode();
-        final boolean prevIsAlwaysOnTop = isAlwaysOnTop();
         super.onConfigurationChanged(newParentConfig);
 
         // Only need to update surface size here since the super method will handle updating
@@ -736,17 +706,14 @@
 
         if (prevWindowingMode != windowingMode) {
             mDisplayContent.onStackWindowingModeChanged(this);
-            updateBoundsForWindowModeChange();
-        }
 
-        if (prevIsAlwaysOnTop != isAlwaysOnTop) {
-            // positionStackAt(POSITION_TOP, this) must be called even when always on top gets
-            // turned off because we need to make sure that the stack is moved from among always on
-            // top windows to below other always on top windows. Since the position the stack should
-            // be inserted into is calculated properly in
-            // {@link DisplayContent#findPositionForStack()} in both cases, we can just request that
-            // the stack is put at top here.
-            mDisplayContent.positionStackAt(POSITION_TOP, this, false /* includingParents */);
+            if (inSplitScreenSecondaryWindowingMode()) {
+                // When the stack is resized due to entering split screen secondary, offset the
+                // windows to compensate for the new stack position.
+                forAllWindows(w -> {
+                    w.mWinAnimator.setOffsetPositionForStackResize(true);
+                }, true);
+            }
         }
     }
 
@@ -767,7 +734,7 @@
 
             // We multiply by two to match the client logic for converting view elevation
             // to insets, as in {@link WindowManager.LayoutParams#setSurfaceInsets}
-            return (int)Math.ceil(mService.dipToPixel(PINNED_WINDOWING_MODE_ELEVATION_IN_DIP,
+            return (int)Math.ceil(mWmService.dipToPixel(PINNED_WINDOWING_MODE_ELEVATION_IN_DIP,
                     displayMetrics) * 2);
         }
         return 0;
@@ -778,7 +745,7 @@
             return;
         }
 
-        final Rect stackBounds = getBounds();
+        final Rect stackBounds = getDisplayedBounds();
         int width = stackBounds.width();
         int height = stackBounds.height();
 
@@ -789,7 +756,6 @@
         if (width == mLastSurfaceSize.x && height == mLastSurfaceSize.y) {
             return;
         }
-        transaction.setSize(mSurfaceControl, width, height);
         transaction.setWindowCrop(mSurfaceControl, width, height);
         mLastSurfaceSize.set(width, height);
     }
@@ -803,12 +769,7 @@
         final boolean movedToNewDisplay = mDisplayContent == null;
         mDisplayContent = dc;
 
-        if (movedToNewDisplay) {
-            updateBoundsForWindowModeChange();
-        } else {
-            updateBoundsForDisplayChanges();
-        }
-
+        updateSurfaceBounds();
         if (mAnimationBackgroundSurface == null) {
             mAnimationBackgroundSurface = makeChildSurface(null).setColorLayer(true)
                     .setName("animation background stackId=" + mStackId)
@@ -818,95 +779,6 @@
         super.onDisplayChanged(dc);
     }
 
-    private void updateBoundsForWindowModeChange() {
-        final Rect bounds = calculateBoundsForWindowModeChange();
-
-        if (inSplitScreenSecondaryWindowingMode()) {
-            // When the stack is resized due to entering split screen secondary, offset the
-            // windows to compensate for the new stack position.
-            forAllWindows(w -> {
-                w.mWinAnimator.setOffsetPositionForStackResize(true);
-            }, true);
-        }
-
-        setBoundsForWindowModeChange(bounds);
-        updateSurfaceBounds();
-    }
-
-    private void setBoundsForWindowModeChange(Rect bounds) {
-        if (mDisplayContent == null) {
-            return;
-        }
-
-        if (bounds != null) {
-            setBounds(bounds);
-            return;
-        }
-
-        updateBoundsForDisplayChanges();
-    }
-
-    private void updateBoundsForDisplayChanges() {
-        // Avoid setting override bounds to bounds inherited from parent if there was no override
-        // bounds set.
-        if (matchParentBounds()) {
-            setBounds(null);
-            return;
-        }
-
-        mTmpRect2.set(getRawBounds());
-        final int newRotation = mDisplayContent.getDisplayInfo().rotation;
-        final int newDensity = mDisplayContent.getDisplayInfo().logicalDensityDpi;
-        if (mRotation == newRotation && mDensity == newDensity) {
-            setBounds(mTmpRect2);
-        }
-
-        // If the rotation or density didn't match, we'll update it in onConfigurationChanged.
-    }
-
-    private Rect calculateBoundsForWindowModeChange() {
-        final boolean inSplitScreenPrimary = inSplitScreenPrimaryWindowingMode();
-        final TaskStack splitScreenStack =
-                mDisplayContent.getSplitScreenPrimaryStackIgnoringVisibility();
-        if (inSplitScreenPrimary || (splitScreenStack != null
-                && inSplitScreenSecondaryWindowingMode() && !splitScreenStack.fillsParent())) {
-            // The existence of a docked stack affects the size of other static stack created since
-            // the docked stack occupies a dedicated region on screen, but only if the dock stack is
-            // not fullscreen. If it's fullscreen, it means that we are in the transition of
-            // dismissing it, so we must not resize this stack.
-            final Rect bounds = new Rect();
-            mDisplayContent.getBounds(mTmpRect);
-            mTmpRect2.setEmpty();
-            if (splitScreenStack != null) {
-                if (inSplitScreenSecondaryWindowingMode()
-                        && mDisplayContent.mDividerControllerLocked.isMinimizedDock()
-                        && splitScreenStack.getTopChild() != null) {
-                    // If the primary split screen stack is currently minimized, then don't use the
-                    // stack bounds of the minimized stack, instead, use the temporary task bounds
-                    // to calculate the appropriate uniminized size of any secondary split stack
-                    // TODO: Find a cleaner way for computing new stack bounds while minimized that
-                    //       doesn't assume the primary stack's task bounds as the temp task bounds
-                    splitScreenStack.getTopChild().getBounds(mTmpRect2);
-                } else {
-                    splitScreenStack.getRawBounds(mTmpRect2);
-                }
-            }
-            final boolean dockedOnTopOrLeft = mService.mDockedStackCreateMode
-                    == SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT;
-            getStackDockedModeBounds(mTmpRect, bounds, mTmpRect2,
-                    mDisplayContent.mDividerControllerLocked.getContentWidth(), dockedOnTopOrLeft);
-            return bounds;
-        } else if (inPinnedWindowingMode()) {
-            // Update the bounds based on any changes to the display info
-            getAnimationOrCurrentBounds(mTmpRect2);
-            if (mDisplayContent.mPinnedStackControllerLocked.onTaskStackBoundsChanged(
-                    mTmpRect2, mTmpRect3)) {
-                return new Rect(mTmpRect3);
-            }
-        }
-        return null;
-    }
-
     /**
      * Determines the stack and task bounds of the other stack when in docked mode. The current task
      * bounds is passed in but depending on the stack, the task and stack must match. Only in
@@ -918,12 +790,22 @@
      * @param currentTempTaskBounds the current task bounds of the other stack
      * @param outStackBounds the calculated stack bounds of the other stack
      * @param outTempTaskBounds the calculated task bounds of the other stack
-     * @param ignoreVisibility ignore visibility in getting the stack bounds
      */
-    void getStackDockedModeBoundsLocked(Rect currentTempTaskBounds, Rect outStackBounds,
-            Rect outTempTaskBounds, boolean ignoreVisibility) {
+    void getStackDockedModeBoundsLocked(Configuration parentConfig, Rect dockedBounds,
+            Rect currentTempTaskBounds, Rect outStackBounds, Rect outTempTaskBounds) {
         outTempTaskBounds.setEmpty();
 
+        if (dockedBounds == null || dockedBounds.isEmpty()) {
+            // Calculate the primary docked bounds.
+            final boolean dockedOnTopOrLeft = mWmService.mDockedStackCreateMode
+                    == SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT;
+            getStackDockedModeBounds(parentConfig,
+                    true /* primary */, outStackBounds, dockedBounds,
+                    mDisplayContent.mDividerControllerLocked.getContentWidth(), dockedOnTopOrLeft);
+            return;
+        }
+        final int dockedSide = getDockSide(parentConfig, dockedBounds);
+
         // When the home stack is resizable, should always have the same stack and task bounds
         if (isActivityTypeHome()) {
             final Task homeTask = findHomeTask();
@@ -931,7 +813,8 @@
                 // Calculate the home stack bounds when in docked mode and the home stack is
                 // resizeable.
                 getDisplayContent().mDividerControllerLocked
-                        .getHomeStackBoundsInDockedMode(outStackBounds);
+                        .getHomeStackBoundsInDockedMode(parentConfig,
+                                dockedSide, outStackBounds);
             } else {
                 // Home stack isn't resizeable, so don't specify stack bounds.
                 outStackBounds.setEmpty();
@@ -948,75 +831,54 @@
             return;
         }
 
-        if (!inSplitScreenWindowingMode() || mDisplayContent == null) {
-            outStackBounds.set(getRawBounds());
-            return;
-        }
-
-        final TaskStack dockedStack =
-                mDisplayContent.getSplitScreenPrimaryStackIgnoringVisibility();
-        if (dockedStack == null) {
-            // Not sure why you are calling this method when there is no docked stack...
-            throw new IllegalStateException(
-                    "Calling getStackDockedModeBoundsLocked() when there is no docked stack.");
-        }
-        if (!ignoreVisibility && !dockedStack.isVisible()) {
-            // The docked stack is being dismissed, but we caught before it finished being
-            // dismissed. In that case we want to treat it as if it is not occupying any space and
-            // let others occupy the whole display.
-            mDisplayContent.getBounds(outStackBounds);
-            return;
-        }
-
-        final int dockedSide = dockedStack.getDockSide();
         if (dockedSide == DOCKED_INVALID) {
             // Not sure how you got here...Only thing we can do is return current bounds.
-            Slog.e(TAG_WM, "Failed to get valid docked side for docked stack=" + dockedStack);
+            Slog.e(TAG_WM, "Failed to get valid docked side for docked stack");
             outStackBounds.set(getRawBounds());
             return;
         }
 
-        mDisplayContent.getBounds(mTmpRect);
-        dockedStack.getRawBounds(mTmpRect2);
         final boolean dockedOnTopOrLeft = dockedSide == DOCKED_TOP || dockedSide == DOCKED_LEFT;
-        getStackDockedModeBounds(mTmpRect, outStackBounds, mTmpRect2,
+        getStackDockedModeBounds(parentConfig,
+                false /* primary */, outStackBounds, dockedBounds,
                 mDisplayContent.mDividerControllerLocked.getContentWidth(), dockedOnTopOrLeft);
-
     }
 
     /**
      * Outputs the bounds a stack should be given the presence of a docked stack on the display.
-     * @param displayRect The bounds of the display the docked stack is on.
+     * @param parentConfig The parent configuration.
+     * @param primary {@code true} if getting the primary stack bounds.
      * @param outBounds Output bounds that should be used for the stack.
      * @param dockedBounds Bounds of the docked stack.
      * @param dockDividerWidth We need to know the width of the divider make to the output bounds
      *                         close to the side of the dock.
      * @param dockOnTopOrLeft If the docked stack is on the top or left side of the screen.
      */
-    private void getStackDockedModeBounds(
-            Rect displayRect, Rect outBounds, Rect dockedBounds, int dockDividerWidth,
+    private void getStackDockedModeBounds(Configuration parentConfig, boolean primary,
+            Rect outBounds, Rect dockedBounds, int dockDividerWidth,
             boolean dockOnTopOrLeft) {
-        final boolean dockedStack = inSplitScreenPrimaryWindowingMode();
+        final Rect displayRect = parentConfig.windowConfiguration.getBounds();
         final boolean splitHorizontally = displayRect.width() > displayRect.height();
 
         outBounds.set(displayRect);
-        if (dockedStack) {
-            if (mService.mDockedStackCreateBounds != null) {
-                outBounds.set(mService.mDockedStackCreateBounds);
+        if (primary) {
+            if (mWmService.mDockedStackCreateBounds != null) {
+                outBounds.set(mWmService.mDockedStackCreateBounds);
                 return;
             }
 
             // The initial bounds of the docked stack when it is created about half the screen space
             // and its bounds can be adjusted after that. The bounds of all other stacks are
             // adjusted to occupy whatever screen space the docked stack isn't occupying.
-            final DisplayInfo di = mDisplayContent.getDisplayInfo();
-            mService.mPolicy.getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
-                    di.displayCutout, mTmpRect2);
-            final int position = new DividerSnapAlgorithm(mService.mContext.getResources(),
-                    di.logicalWidth,
-                    di.logicalHeight,
+            final DisplayCutout displayCutout = mDisplayContent.getDisplayInfo().displayCutout;
+            mDisplayContent.getDisplayPolicy().getStableInsetsLw(
+                    parentConfig.windowConfiguration.getRotation(),
+                    displayRect.width(), displayRect.height(), displayCutout, mTmpRect2);
+            final int position = new DividerSnapAlgorithm(mWmService.mContext.getResources(),
+                    displayRect.width(),
+                    displayRect.height(),
                     dockDividerWidth,
-                    mDisplayContent.getConfiguration().orientation == ORIENTATION_PORTRAIT,
+                    parentConfig.orientation == ORIENTATION_PORTRAIT,
                     mTmpRect2).getMiddleTarget().position;
 
             if (dockOnTopOrLeft) {
@@ -1057,12 +919,15 @@
             throw new IllegalStateException("Not a docked stack=" + this);
         }
 
-        mService.mDockedStackCreateBounds = null;
+        mWmService.mDockedStackCreateBounds = null;
 
         final Rect bounds = new Rect();
         final Rect tempBounds = new Rect();
-        getStackDockedModeBoundsLocked(null /* currentTempTaskBounds */, bounds, tempBounds,
-                true /*ignoreVisibility*/);
+        TaskStack dockedStack = mDisplayContent.getSplitScreenPrimaryStackIgnoringVisibility();
+        Rect dockedBounds =
+                (dockedStack == null || dockedStack == this) ? null : dockedStack.getRawBounds();
+        getStackDockedModeBoundsLocked(mDisplayContent.getConfiguration(), dockedBounds,
+                null /* currentTempTaskBounds */, bounds, tempBounds);
         getController().requestResize(bounds);
     }
 
@@ -1096,7 +961,7 @@
         }
 
         mDisplayContent = null;
-        mService.mWindowPlacerLocked.requestTraversal();
+        mWmService.mWindowPlacerLocked.requestTraversal();
     }
 
     void resetAnimationBackgroundAnimator() {
@@ -1118,7 +983,7 @@
         int top = mChildren.size();
         for (int taskNdx = 0; taskNdx < top; ++taskNdx) {
             Task task = mChildren.get(taskNdx);
-            if (mService.isCurrentProfileLocked(task.mUserId) || task.showForAllUsers()) {
+            if (mWmService.isCurrentProfileLocked(task.mUserId) || task.showForAllUsers()) {
                 mChildren.remove(taskNdx);
                 mChildren.add(task);
                 --top;
@@ -1187,7 +1052,7 @@
             }
             mAdjustedForIme = false;
             updateAdjustedBounds();
-            mService.setResizeDimLayer(false, getWindowingMode(), 1.0f);
+            mWmService.setResizeDimLayer(false, getWindowingMode(), 1.0f);
         } else {
             mImeGoingAway |= mAdjustedForIme;
         }
@@ -1320,7 +1185,7 @@
         }
 
         if (dockSide == DOCKED_TOP) {
-            mService.getStableInsetsLocked(DEFAULT_DISPLAY, mTmpRect);
+            mWmService.getStableInsetsLocked(DEFAULT_DISPLAY, mTmpRect);
             int topInset = mTmpRect.top;
             mTmpAdjustedBounds.set(getRawBounds());
             mTmpAdjustedBounds.bottom = (int) (minimizeAmount * topInset + (1 - minimizeAmount)
@@ -1356,7 +1221,7 @@
         }
 
         if (dockSide == DOCKED_TOP) {
-            mService.getStableInsetsLocked(DEFAULT_DISPLAY, mTmpRect);
+            mWmService.getStableInsetsLocked(DEFAULT_DISPLAY, mTmpRect);
             int topInset = mTmpRect.top;
             return getRawBounds().bottom - topInset;
         } else if (dockSide == DOCKED_LEFT || dockSide == DOCKED_RIGHT) {
@@ -1381,11 +1246,11 @@
         }
         setAdjustedBounds(mTmpAdjustedBounds);
 
-        final boolean isImeTarget = (mService.getImeFocusStackLocked() == this);
+        final boolean isImeTarget = (mWmService.getImeFocusStackLocked() == this);
         if (mAdjustedForIme && adjust && !isImeTarget) {
             final float alpha = Math.max(mAdjustImeAmount, mAdjustDividerAmount)
                     * IME_ADJUST_DIM_AMOUNT;
-            mService.setResizeDimLayer(true, getWindowingMode(), alpha);
+            mWmService.setResizeDimLayer(true, getWindowingMode(), alpha);
         }
     }
 
@@ -1520,9 +1385,6 @@
     }
 
     private int getDockSide(DisplayContent dc, Configuration parentConfig, Rect bounds) {
-        if (!inSplitScreenWindowingMode()) {
-            return DOCKED_INVALID;
-        }
         return dc.getDockedDividerController().getDockSide(bounds,
                 parentConfig.windowConfiguration.getBounds(),
                 parentConfig.orientation, parentConfig.windowConfiguration.getRotation());
@@ -1654,14 +1516,14 @@
 
     public boolean setPinnedStackSize(Rect stackBounds, Rect tempTaskBounds) {
         // Hold the lock since this is called from the BoundsAnimator running on the UiThread
-        synchronized (mService.mGlobalLock) {
+        synchronized (mWmService.mGlobalLock) {
             if (mCancelCurrentBoundsAnimation) {
                 return false;
             }
         }
 
         try {
-            mService.mActivityTaskManager.resizePinnedStack(stackBounds, tempTaskBounds);
+            mWmService.mActivityTaskManager.resizePinnedStack(stackBounds, tempTaskBounds);
         } catch (RemoteException e) {
             // I don't believe you.
         }
@@ -1679,7 +1541,7 @@
     @Override  // AnimatesBounds
     public boolean onAnimationStart(boolean schedulePipModeChangedCallback, boolean forceUpdate) {
         // Hold the lock since this is called from the BoundsAnimator running on the UiThread
-        synchronized (mService.mGlobalLock) {
+        synchronized (mWmService.mGlobalLock) {
             if (!isAttached()) {
                 // Don't run the animation if the stack is already detached
                 return false;
@@ -1699,7 +1561,7 @@
 
         if (inPinnedWindowingMode()) {
             try {
-                mService.mActivityTaskManager.notifyPinnedStackAnimationStarted();
+                mWmService.mActivityTaskManager.notifyPinnedStackAnimationStarted();
             } catch (RemoteException e) {
                 // I don't believe you...
             }
@@ -1742,9 +1604,9 @@
             }
 
             try {
-                mService.mActivityTaskManager.notifyPinnedStackAnimationEnded();
+                mWmService.mActivityTaskManager.notifyPinnedStackAnimationEnded();
                 if (moveToFullscreen) {
-                    mService.mActivityTaskManager.moveTasksToFullscreenStack(mStackId,
+                    mWmService.mActivityTaskManager.moveTasksToFullscreenStack(mStackId,
                             true /* onTop */);
                 }
             } catch (RemoteException e) {
@@ -1758,7 +1620,7 @@
 
     @Override
     public boolean isAttached() {
-        synchronized (mService.mGlobalLock) {
+        synchronized (mWmService.mGlobalLock) {
             return mDisplayContent != null;
         }
     }
@@ -1767,19 +1629,19 @@
      * Called immediately prior to resizing the tasks at the end of the pinned stack animation.
      */
     public void onPipAnimationEndResize() {
-        synchronized (mService.mGlobalLock) {
+        synchronized (mWmService.mGlobalLock) {
             mBoundsAnimating = false;
             for (int i = 0; i < mChildren.size(); i++) {
                 final Task t = mChildren.get(i);
                 t.clearPreserveNonFloatingState();
             }
-            mService.requestTraversal();
+            mWmService.requestTraversal();
         }
     }
 
     @Override
     public boolean shouldDeferStartOnMoveToFullscreen() {
-        synchronized (mService.mGlobalLock) {
+        synchronized (mWmService.mGlobalLock) {
             if (!isAttached()) {
                 // Unnecessary to pause the animation because the stack is detached.
                 return false;
@@ -1898,14 +1760,6 @@
         scheduleAnimation();
     }
 
-    @Override
-    void getRelativePosition(Point outPos) {
-        super.getRelativePosition(outPos);
-        final int outset = getStackOutset();
-        outPos.x -= outset;
-        outPos.y -= outset;
-    }
-
     AnimatingAppWindowTokenRegistry getAnimatingAppWindowTokenRegistry() {
         return mAnimatingAppWindowTokenRegistry;
     }
diff --git a/services/core/java/com/android/server/wm/TaskWindowContainerController.java b/services/core/java/com/android/server/wm/TaskWindowContainerController.java
index 59b2055..ec64d2e 100644
--- a/services/core/java/com/android/server/wm/TaskWindowContainerController.java
+++ b/services/core/java/com/android/server/wm/TaskWindowContainerController.java
@@ -16,6 +16,14 @@
 
 package com.android.server.wm;
 
+import static com.android.server.EventLogTags.WM_TASK_CREATED;
+import static com.android.server.wm.ConfigurationContainer.BOUNDS_CHANGE_NONE;
+import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER;
+import static com.android.server.wm.WindowContainer.POSITION_BOTTOM;
+import static com.android.server.wm.WindowContainer.POSITION_TOP;
+import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STACK;
+import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
+
 import android.app.ActivityManager.TaskDescription;
 import android.app.ActivityManager.TaskSnapshot;
 import android.graphics.Rect;
@@ -24,18 +32,11 @@
 import android.os.Message;
 import android.util.EventLog;
 import android.util.Slog;
+
 import com.android.internal.annotations.VisibleForTesting;
 
 import java.lang.ref.WeakReference;
 
-import static com.android.server.EventLogTags.WM_TASK_CREATED;
-import static com.android.server.wm.ConfigurationContainer.BOUNDS_CHANGE_NONE;
-import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER;
-import static com.android.server.wm.WindowContainer.POSITION_BOTTOM;
-import static com.android.server.wm.WindowContainer.POSITION_TOP;
-import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STACK;
-import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
-
 /**
  * Controller for the task container. This is created by activity manager to link task records to
  * the task container they use in window manager.
@@ -103,16 +104,15 @@
         }
     }
 
-    public void positionChildAtTop(AppWindowContainerController childController) {
-        positionChildAt(childController, POSITION_TOP);
+    void positionChildAtTop(AppWindowToken aToken) {
+        positionChildAt(aToken, POSITION_TOP);
     }
 
-    public void positionChildAt(AppWindowContainerController childController, int position) {
+    void positionChildAt(AppWindowToken aToken, int position) {
         synchronized (mService.mGlobalLock) {
-            final AppWindowToken aToken = childController.mContainer;
             if (aToken == null) {
                 Slog.w(TAG_WM,
-                        "Attempted to position of non-existing app : " + childController);
+                        "Attempted to position of non-existing app");
                 return;
             }
 
diff --git a/services/core/java/com/android/server/wm/VrController.java b/services/core/java/com/android/server/wm/VrController.java
index abe40a7..3e136d35 100644
--- a/services/core/java/com/android/server/wm/VrController.java
+++ b/services/core/java/com/android/server/wm/VrController.java
@@ -187,7 +187,7 @@
         synchronized (mGlobalAmLock) {
             vrMode = record.requestedVrComponent != null;
             requestedPackage = record.requestedVrComponent;
-            userId = record.userId;
+            userId = record.mUserId;
             callingPackage = record.info.getComponentName();
 
             // Tell the VrController that a VR mode change is requested.
diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java
index 29e1b20..15239c7 100644
--- a/services/core/java/com/android/server/wm/WallpaperController.java
+++ b/services/core/java/com/android/server/wm/WallpaperController.java
@@ -60,6 +60,7 @@
 class WallpaperController {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "WallpaperController" : TAG_WM;
     private WindowManagerService mService;
+    private final DisplayContent mDisplayContent;
 
     private final ArrayList<WallpaperWindowToken> mWallpaperTokens = new ArrayList<>();
 
@@ -187,8 +188,9 @@
         return false;
     };
 
-    public WallpaperController(WindowManagerService service) {
+    WallpaperController(WindowManagerService service, DisplayContent displayContent) {
         mService = service;
+        mDisplayContent = displayContent;
     }
 
     WindowState getWallpaperTarget() {
@@ -397,11 +399,7 @@
     }
 
     private void updateWallpaperOffsetLocked(WindowState changingTarget, boolean sync) {
-        final DisplayContent displayContent = changingTarget.getDisplayContent();
-        if (displayContent == null) {
-            return;
-        }
-        final DisplayInfo displayInfo = displayContent.getDisplayInfo();
+        final DisplayInfo displayInfo = mDisplayContent.getDisplayInfo();
         final int dw = displayInfo.logicalWidth;
         final int dh = displayInfo.logicalHeight;
 
@@ -464,15 +462,15 @@
         }
     }
 
-    private void findWallpaperTarget(DisplayContent dc) {
+    private void findWallpaperTarget() {
         mFindResults.reset();
-        if (dc.isStackVisible(WINDOWING_MODE_FREEFORM)) {
+        if (mDisplayContent.isStackVisible(WINDOWING_MODE_FREEFORM)) {
             // In freeform mode we set the wallpaper as its own target, so we don't need an
             // additional window to make it visible.
             mFindResults.setUseTopWallpaperAsTarget(true);
         }
 
-        dc.forAllWindows(mFindWallpaperTargetFunction, true /* traverseTopToBottom */);
+        mDisplayContent.forAllWindows(mFindWallpaperTargetFunction, true /* traverseTopToBottom */);
 
         if (mFindResults.wallpaperTarget == null && mFindResults.useTopWallpaperAsTarget) {
             mFindResults.setWallpaperTarget(mFindResults.topWallpaper);
@@ -485,8 +483,7 @@
     }
 
     /** Updates the target wallpaper if needed and returns true if an update happened. */
-    private void updateWallpaperWindowsTarget(DisplayContent dc,
-            FindWallpaperTargetResult result) {
+    private void updateWallpaperWindowsTarget(FindWallpaperTargetResult result) {
 
         WindowState wallpaperTarget = result.wallpaperTarget;
 
@@ -529,7 +526,7 @@
             return;
         }
 
-        if (dc.getWindow(w -> w == prevWallpaperTarget) == null) {
+        if (mDisplayContent.getWindow(w -> w == prevWallpaperTarget) == null) {
             return;
         }
 
@@ -550,9 +547,9 @@
             // is not. If they're both hidden, still use the new target.
             mWallpaperTarget = prevWallpaperTarget;
         } else if (newTargetHidden == oldTargetHidden
-                && !dc.mOpeningApps.contains(wallpaperTarget.mAppToken)
-                && (dc.mOpeningApps.contains(prevWallpaperTarget.mAppToken)
-                || dc.mClosingApps.contains(prevWallpaperTarget.mAppToken))) {
+                && !mDisplayContent.mOpeningApps.contains(wallpaperTarget.mAppToken)
+                && (mDisplayContent.mOpeningApps.contains(prevWallpaperTarget.mAppToken)
+                || mDisplayContent.mClosingApps.contains(prevWallpaperTarget.mAppToken))) {
             // If they're both hidden (or both not hidden), prefer the one that's currently in
             // opening or closing app list, this allows transition selection logic to better
             // determine the wallpaper status of opening/closing apps.
@@ -570,18 +567,21 @@
         }
     }
 
-    void adjustWallpaperWindows(DisplayContent dc) {
-        mService.mRoot.mWallpaperMayChange = false;
+    void adjustWallpaperWindows() {
+        mDisplayContent.mWallpaperMayChange = false;
 
         // First find top-most window that has asked to be on top of the wallpaper;
         // all wallpapers go behind it.
-        findWallpaperTarget(dc);
-        updateWallpaperWindowsTarget(dc, mFindResults);
+        findWallpaperTarget();
+        updateWallpaperWindowsTarget(mFindResults);
 
         // The window is visible to the compositor...but is it visible to the user?
         // That is what the wallpaper cares about.
         final boolean visible = mWallpaperTarget != null && isWallpaperVisible(mWallpaperTarget);
-        if (DEBUG_WALLPAPER) Slog.v(TAG, "Wallpaper visibility: " + visible);
+        if (DEBUG_WALLPAPER) {
+            Slog.v(TAG, "Wallpaper visibility: " + visible + " at display "
+                    + mDisplayContent.getDisplayId());
+        }
 
         if (visible) {
             if (mWallpaperTarget.mWallpaperX >= 0) {
@@ -637,9 +637,11 @@
                 }
                 if (mWallpaperDrawState == WALLPAPER_DRAW_NORMAL) {
                     mWallpaperDrawState = WALLPAPER_DRAW_PENDING;
-                    mService.mH.removeMessages(WALLPAPER_DRAW_PENDING_TIMEOUT);
-                    mService.mH.sendEmptyMessageDelayed(WALLPAPER_DRAW_PENDING_TIMEOUT,
-                            WALLPAPER_DRAW_PENDING_TIMEOUT_DURATION);
+                    mService.mH.removeMessages(WALLPAPER_DRAW_PENDING_TIMEOUT, this);
+                    mService.mH.sendMessageDelayed(
+                                mService.mH.obtainMessage(WALLPAPER_DRAW_PENDING_TIMEOUT, this),
+                                WALLPAPER_DRAW_PENDING_TIMEOUT_DURATION);
+
                 }
                 if (DEBUG_APP_TRANSITIONS || DEBUG_WALLPAPER) Slog.v(TAG,
                         "Wallpaper should be visible but has not been drawn yet. " +
@@ -649,7 +651,7 @@
         }
         if (wallpaperReady) {
             mWallpaperDrawState = WALLPAPER_DRAW_NORMAL;
-            mService.mH.removeMessages(WALLPAPER_DRAW_PENDING_TIMEOUT);
+            mService.mH.removeMessages(WALLPAPER_DRAW_PENDING_TIMEOUT, this);
         }
 
         return transitionReady;
@@ -659,10 +661,9 @@
      * Adjusts the wallpaper windows if the input display has a pending wallpaper layout or one of
      * the opening apps should be a wallpaper target.
      */
-    void adjustWallpaperWindowsForAppTransitionIfNeeded(DisplayContent dc,
-            ArraySet<AppWindowToken> openingApps) {
+    void adjustWallpaperWindowsForAppTransitionIfNeeded(ArraySet<AppWindowToken> openingApps) {
         boolean adjust = false;
-        if ((dc.pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0) {
+        if ((mDisplayContent.pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0) {
             adjust = true;
         } else {
             for (int i = openingApps.size() - 1; i >= 0; --i) {
@@ -675,7 +676,7 @@
         }
 
         if (adjust) {
-            adjustWallpaperWindows(dc);
+            adjustWallpaperWindows();
         }
     }
 
@@ -740,6 +741,7 @@
     }
 
     void dump(PrintWriter pw, String prefix) {
+        pw.print(prefix); pw.print("displayId="); pw.println(mDisplayContent.getDisplayId());
         pw.print(prefix); pw.print("mWallpaperTarget="); pw.println(mWallpaperTarget);
         if (mPrevWallpaperTarget != null) {
             pw.print(prefix); pw.print("mPrevWallpaperTarget="); pw.println(mPrevWallpaperTarget);
diff --git a/services/core/java/com/android/server/wm/Watermark.java b/services/core/java/com/android/server/wm/Watermark.java
index 9216b66..e6ac059 100644
--- a/services/core/java/com/android/server/wm/Watermark.java
+++ b/services/core/java/com/android/server/wm/Watermark.java
@@ -20,19 +20,18 @@
 
 import android.graphics.Canvas;
 import android.graphics.Paint;
+import android.graphics.Paint.FontMetricsInt;
 import android.graphics.PixelFormat;
 import android.graphics.PorterDuff;
 import android.graphics.Rect;
 import android.graphics.Typeface;
-import android.graphics.Paint.FontMetricsInt;
 import android.util.DisplayMetrics;
 import android.util.Log;
 import android.util.TypedValue;
 import android.view.Display;
-import android.view.Surface.OutOfResourcesException;
 import android.view.Surface;
+import android.view.Surface.OutOfResourcesException;
 import android.view.SurfaceControl;
-import android.view.SurfaceSession;
 
 /**
  * Displays a watermark on top of the window manager's windows.
@@ -116,7 +115,7 @@
         try {
             ctrl = dc.makeOverlay()
                     .setName("WatermarkSurface")
-                    .setSize(1, 1)
+                    .setBufferSize(1, 1)
                     .setFormat(PixelFormat.TRANSLUCENT)
                     .build();
             ctrl.setLayerStack(mDisplay.getLayerStack());
@@ -133,7 +132,7 @@
         if (mLastDW != dw || mLastDH != dh) {
             mLastDW = dw;
             mLastDH = dh;
-            mSurfaceControl.setSize(dw, dh);
+            mSurfaceControl.setBufferSize(dw, dh);
             mDrawNeeded = true;
         }
     }
diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java
index 46bb981..b8a0739 100644
--- a/services/core/java/com/android/server/wm/WindowAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowAnimator.java
@@ -16,7 +16,6 @@
 
 package com.android.server.wm;
 
-import static android.view.Display.DEFAULT_DISPLAY;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WINDOW_TRACE;
 import static com.android.server.wm.WindowManagerDebugConfig.SHOW_TRANSACTIONS;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
@@ -259,8 +258,7 @@
             if (DEBUG_WINDOW_TRACE) {
                 Slog.i(TAG, "!!! animate: exit mAnimating=" + mAnimating
                         + " mBulkUpdateParams=" + Integer.toHexString(mBulkUpdateParams)
-                        + " mPendingLayoutChanges(DEFAULT_DISPLAY)="
-                        + Integer.toHexString(getPendingLayoutChanges(DEFAULT_DISPLAY)));
+                        + " hasPendingLayoutChanges=" + hasPendingLayoutChanges);
             }
         }
     }
@@ -270,9 +268,6 @@
         if ((bulkUpdateParams & WindowSurfacePlacer.SET_UPDATE_ROTATION) != 0) {
             builder.append(" UPDATE_ROTATION");
         }
-        if ((bulkUpdateParams & WindowSurfacePlacer.SET_WALLPAPER_MAY_CHANGE) != 0) {
-            builder.append(" WALLPAPER_MAY_CHANGE");
-        }
         if ((bulkUpdateParams & WindowSurfacePlacer.SET_ORIENTATION_CHANGE_COMPLETE) != 0) {
             builder.append(" ORIENTATION_CHANGE_COMPLETE");
         }
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index 266006d..c30cc17 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -115,7 +115,7 @@
      */
     protected final Transaction mPendingTransaction;
     protected final SurfaceAnimator mSurfaceAnimator;
-    protected final WindowManagerService mService;
+    protected final WindowManagerService mWmService;
 
     private final Point mTmpPos = new Point();
     protected final Point mLastSurfacePosition = new Point();
@@ -129,10 +129,10 @@
      */
     private boolean mCommittedReparentToAnimationLeash;
 
-    WindowContainer(WindowManagerService service) {
-        mService = service;
-        mPendingTransaction = service.mTransactionFactory.make();
-        mSurfaceAnimator = new SurfaceAnimator(this, this::onAnimationFinished, service);
+    WindowContainer(WindowManagerService wms) {
+        mWmService = wms;
+        mPendingTransaction = wms.mTransactionFactory.make();
+        mSurfaceAnimator = new SurfaceAnimator(this, this::onAnimationFinished, wms);
     }
 
     @Override
@@ -515,24 +515,6 @@
         }
     }
 
-    /**
-     * Update the surface size when display changed in order to avoid children being bound by the
-     * old display size.
-     *
-     * Note that we don't want to apply this to all layers, but only limiting this to layers that
-     * don't set their own size ({@link Task}, {@link WindowState} and {@link WindowToken}).
-     */
-    void updateSurfaceSize(DisplayContent dc) {
-        if (mSurfaceControl == null) {
-            return;
-        }
-
-        final int newSurfaceSize = dc.getSurfaceSize();
-        if (mSurfaceControl.getWidth() != newSurfaceSize) {
-            getPendingTransaction().setSize(mSurfaceControl, newSurfaceSize, newSurfaceSize);
-        }
-    }
-
     void setWaitingForDrawnIfResizingChanged() {
         for (int i = mChildren.size() - 1; i >= 0; --i) {
             final WindowContainer wc = mChildren.get(i);
@@ -1284,7 +1266,7 @@
             return;
         }
 
-        getRelativePosition(mTmpPos);
+        getRelativeDisplayedPosition(mTmpPos);
         if (mTmpPos.equals(mLastSurfacePosition)) {
             return;
         }
@@ -1293,12 +1275,22 @@
         mLastSurfacePosition.set(mTmpPos.x, mTmpPos.y);
     }
 
-    void getRelativePosition(Point outPos) {
-        final Rect bounds = getBounds();
-        outPos.set(bounds.left, bounds.top);
+    /**
+     * Displayed bounds specify where to display this container at. It differs from bounds during
+     * certain operations (like animation or interactive dragging).
+     *
+     * @return the bounds to display this container at.
+     */
+    Rect getDisplayedBounds() {
+        return getBounds();
+    }
+
+    void getRelativeDisplayedPosition(Point outPos) {
+        final Rect dispBounds = getDisplayedBounds();
+        outPos.set(dispBounds.left, dispBounds.top);
         final WindowContainer parent = getParent();
         if (parent != null) {
-            final Rect parentBounds = parent.getBounds();
+            final Rect parentBounds = parent.getDisplayedBounds();
             outPos.offset(-parentBounds.left, -parentBounds.top);
         }
     }
diff --git a/services/core/java/com/android/server/wm/WindowContainerListener.java b/services/core/java/com/android/server/wm/WindowContainerListener.java
index 4b3cd36..3d3d2e0 100644
--- a/services/core/java/com/android/server/wm/WindowContainerListener.java
+++ b/services/core/java/com/android/server/wm/WindowContainerListener.java
@@ -16,6 +16,8 @@
 
 package com.android.server.wm;
 
+import android.content.res.Configuration;
+
 /**
  * Interface used by the owner/creator of the container to listen to changes with the container.
  * @see WindowContainerController
@@ -23,4 +25,5 @@
 public interface WindowContainerListener {
     void registerConfigurationChangeListener(ConfigurationContainerListener listener);
     void unregisterConfigurationChangeListener(ConfigurationContainerListener listener);
+    default void onInitializeOverrideConfiguration(Configuration config) {}
 }
diff --git a/services/core/java/com/android/server/wm/WindowManagerInternal.java b/services/core/java/com/android/server/wm/WindowManagerInternal.java
index b096bf2..e83b863 100644
--- a/services/core/java/com/android/server/wm/WindowManagerInternal.java
+++ b/services/core/java/com/android/server/wm/WindowManagerInternal.java
@@ -392,11 +392,6 @@
     public abstract boolean isStackVisible(int windowingMode);
 
     /**
-     * @return True if and only if the docked divider is currently in resize mode.
-     */
-    public abstract boolean isDockedDividerResizing();
-
-    /**
      * Requests the window manager to resend the windows for accessibility.
      */
     public abstract void computeWindowsForAccessibility();
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index c47b22f..52b24b3 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -66,6 +66,7 @@
 import static android.view.WindowManager.REMOVE_CONTENT_MODE_UNDEFINED;
 import static android.view.WindowManagerGlobal.RELAYOUT_DEFER_SURFACE_DESTROY;
 import static android.view.WindowManagerGlobal.RELAYOUT_RES_SURFACE_CHANGED;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_INVALID;
 
 import static com.android.internal.util.LatencyTracker.ACTION_ROTATE_SCREEN;
 import static com.android.server.LockGuard.INDEX_WINDOW;
@@ -171,6 +172,8 @@
 import android.os.UserHandle;
 import android.os.WorkSource;
 import android.provider.Settings;
+import android.service.vr.IVrManager;
+import android.service.vr.IVrStateCallbacks;
 import android.text.format.DateUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
@@ -206,6 +209,7 @@
 import android.view.InputChannel;
 import android.view.InputDevice;
 import android.view.InputEventReceiver;
+import android.view.InsetsState;
 import android.view.KeyEvent;
 import android.view.MagnificationSpec;
 import android.view.MotionEvent;
@@ -231,6 +235,7 @@
 import com.android.internal.util.DumpUtils;
 import com.android.internal.util.FastPrintWriter;
 import com.android.internal.util.LatencyTracker;
+import com.android.internal.util.function.pooled.PooledLambda;
 import com.android.internal.view.WindowManagerPolicyThread;
 import com.android.server.AnimationThread;
 import com.android.server.DisplayThread;
@@ -373,6 +378,18 @@
     boolean mKeyguardOrAodShowingOnDefaultDisplay;
     // VR Vr2d Display Id.
     int mVr2dDisplayId = INVALID_DISPLAY;
+    boolean mVrModeEnabled = false;
+
+    private final IVrStateCallbacks mVrStateCallbacks = new IVrStateCallbacks.Stub() {
+        @Override
+        public void onVrStateChanged(boolean enabled) {
+            synchronized (mGlobalLock) {
+                mVrModeEnabled = enabled;
+                mRoot.forAllDisplayPolicies(PooledLambda.obtainConsumer(
+                        DisplayPolicy::onVrStateChangedLw, PooledLambda.__(), enabled));
+            }
+        }
+    };
 
     private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
         @Override
@@ -528,6 +545,7 @@
     boolean mForceDisplayEnabled = false;
     boolean mShowingBootMessages = false;
     boolean mBootAnimationStopped = false;
+    boolean mSystemReady = false;
 
     // Following variables are for debugging screen wakelock only.
     WindowState mLastWakeLockHoldingWindow = null;
@@ -579,14 +597,10 @@
     final WallpaperVisibilityListeners mWallpaperVisibilityListeners =
             new WallpaperVisibilityListeners();
 
-    int mSystemDecorLayer = 0;
-    final Rect mScreenRect = new Rect();
-
     boolean mDisplayFrozen = false;
     long mDisplayFreezeTime = 0;
     int mLastDisplayFreezeDuration = 0;
     Object mLastFinishedFreezeSource = null;
-    boolean mWaitingForConfig = false;
     boolean mSwitchingUser = false;
 
     final static int WINDOWS_FREEZING_SCREENS_NONE = 0;
@@ -597,11 +611,6 @@
     boolean mClientFreezingScreen = false;
     int mAppsFreezingScreen = 0;
 
-    // Last systemUiVisibility we received from status bar.
-    int mLastStatusBarVisibility = 0;
-    // Last systemUiVisibility we dispatched to windows.
-    int mLastDispatchedSystemUiVisibility = 0;
-
     // State while inside of layoutAndPlaceSurfacesLocked().
     boolean mFocusMayChange;
 
@@ -649,6 +658,10 @@
                 Settings.Global.getUriFor(Settings.Global.TRANSITION_ANIMATION_SCALE);
         private final Uri mAnimationDurationScaleUri =
                 Settings.Global.getUriFor(Settings.Global.ANIMATOR_DURATION_SCALE);
+        private final Uri mImmersiveModeConfirmationsUri =
+                Settings.Secure.getUriFor(Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS);
+        private final Uri mPolicyControlUri =
+                Settings.Global.getUriFor(Settings.Global.POLICY_CONTROL);
 
         public SettingsObserver() {
             super(new Handler());
@@ -661,6 +674,10 @@
                     UserHandle.USER_ALL);
             resolver.registerContentObserver(mAnimationDurationScaleUri, false, this,
                     UserHandle.USER_ALL);
+            resolver.registerContentObserver(mImmersiveModeConfirmationsUri, false, this,
+                    UserHandle.USER_ALL);
+            resolver.registerContentObserver(mPolicyControlUri, false, this,
+                    UserHandle.USER_ALL);
         }
 
         @Override
@@ -669,23 +686,40 @@
                 return;
             }
 
+            if (mImmersiveModeConfirmationsUri.equals(uri) || mPolicyControlUri.equals(uri)) {
+                updateSystemUiSettings();
+                return;
+            }
+
             if (mDisplayInversionEnabledUri.equals(uri)) {
                 updateCircularDisplayMaskIfNeeded();
+                return;
+            }
+
+            @UpdateAnimationScaleMode
+            final int mode;
+            if (mWindowAnimationScaleUri.equals(uri)) {
+                mode = WINDOW_ANIMATION_SCALE;
+            } else if (mTransitionAnimationScaleUri.equals(uri)) {
+                mode = TRANSITION_ANIMATION_SCALE;
+            } else if (mAnimationDurationScaleUri.equals(uri)) {
+                mode = ANIMATION_DURATION_SCALE;
             } else {
-                @UpdateAnimationScaleMode
-                final int mode;
-                if (mWindowAnimationScaleUri.equals(uri)) {
-                    mode = WINDOW_ANIMATION_SCALE;
-                } else if (mTransitionAnimationScaleUri.equals(uri)) {
-                    mode = TRANSITION_ANIMATION_SCALE;
-                } else if (mAnimationDurationScaleUri.equals(uri)) {
-                    mode = ANIMATION_DURATION_SCALE;
-                } else {
-                    // Ignoring unrecognized content changes
-                    return;
-                }
-                Message m = mH.obtainMessage(H.UPDATE_ANIMATION_SCALE, mode, 0);
-                mH.sendMessage(m);
+                // Ignoring unrecognized content changes
+                return;
+            }
+            Message m = mH.obtainMessage(H.UPDATE_ANIMATION_SCALE, mode, 0);
+            mH.sendMessage(m);
+        }
+
+        void updateSystemUiSettings() {
+            boolean changed;
+            synchronized (mWindowMap) {
+                changed = ImmersiveModeConfirmation.loadSetting(mCurrentUserId, mContext)
+                        || PolicyControl.reloadFromSetting(mContext);
+            }
+            if (changed) {
+                updateRotation(false /* alwaysSendConfiguration */, false /* forceRelayout */);
             }
         }
     }
@@ -1079,7 +1113,8 @@
     public int addWindow(Session session, IWindow client, int seq,
             LayoutParams attrs, int viewVisibility, int displayId, Rect outFrame,
             Rect outContentInsets, Rect outStableInsets, Rect outOutsets,
-            DisplayCutout.ParcelableWrapper outDisplayCutout, InputChannel outInputChannel) {
+            DisplayCutout.ParcelableWrapper outDisplayCutout, InputChannel outInputChannel,
+            InsetsState outInsetsState) {
         int[] appOp = new int[1];
         int res = mPolicy.checkAddPermission(attrs, appOp);
         if (res != WindowManagerGlobal.ADD_OKAY) {
@@ -1286,10 +1321,11 @@
             final boolean hasStatusBarServicePermission =
                     mContext.checkCallingOrSelfPermission(permission.STATUS_BAR_SERVICE)
                             == PackageManager.PERMISSION_GRANTED;
-            mPolicy.adjustWindowParamsLw(win, win.mAttrs, hasStatusBarServicePermission);
+            final DisplayPolicy displayPolicy = displayContent.getDisplayPolicy();
+            displayPolicy.adjustWindowParamsLw(win, win.mAttrs, hasStatusBarServicePermission);
             win.setShowToOwnerOnlyLocked(mPolicy.checkShowToOwnerOnly(attrs));
 
-            res = mPolicy.prepareAddWindowLw(win, attrs);
+            res = displayPolicy.prepareAddWindowLw(win, attrs);
             if (res != WindowManagerGlobal.ADD_OKAY) {
                 return res;
             }
@@ -1422,11 +1458,11 @@
                 taskBounds = null;
                 floatingStack = false;
             }
-            if (mPolicy.getLayoutHintLw(win.mAttrs, taskBounds, displayFrames, floatingStack,
-                    outFrame, outContentInsets, outStableInsets, outOutsets,
-                    outDisplayCutout)) {
+            if (displayPolicy.getLayoutHintLw(win.mAttrs, taskBounds, displayFrames, floatingStack,
+                    outFrame, outContentInsets, outStableInsets, outOutsets, outDisplayCutout)) {
                 res |= WindowManagerGlobal.ADD_FLAG_ALWAYS_CONSUME_NAV_BAR;
             }
+            outInsetsState.set(displayContent.getInsetsStateController().getInsetsForDispatch(win));
 
             if (mInTouchMode) {
                 res |= WindowManagerGlobal.ADD_FLAG_IN_TOUCH_MODE;
@@ -1824,7 +1860,7 @@
             long frameNumber, Rect outFrame, Rect outOverscanInsets, Rect outContentInsets,
             Rect outVisibleInsets, Rect outStableInsets, Rect outOutsets, Rect outBackdropFrame,
             DisplayCutout.ParcelableWrapper outCutout, MergedConfiguration mergedConfiguration,
-            Surface outSurface) {
+            Surface outSurface, InsetsState outInsetsState) {
         int result = 0;
         boolean configChanged;
         final boolean hasStatusBarPermission =
@@ -1837,11 +1873,13 @@
         long origId = Binder.clearCallingIdentity();
         final int displayId;
         synchronized (mGlobalLock) {
-            WindowState win = windowForClientLocked(session, client, false);
+            final WindowState win = windowForClientLocked(session, client, false);
             if (win == null) {
                 return 0;
             }
             displayId = win.getDisplayId();
+            final DisplayContent displayContent = win.getDisplayContent();
+            final DisplayPolicy displayPolicy = displayContent.getDisplayPolicy();
 
             WindowStateAnimator winAnimator = win.mWinAnimator;
             if (viewVisibility != View.GONE) {
@@ -1850,14 +1888,15 @@
 
             win.setFrameNumber(frameNumber);
 
-            if (!mWaitingForConfig) {
-                win.finishSeamlessRotation();
+            final DisplayContent dc = win.getDisplayContent();
+            if (!dc.mWaitingForConfig) {
+                win.finishSeamlessRotation(false /* timeout */);
             }
 
             int attrChanges = 0;
             int flagChanges = 0;
             if (attrs != null) {
-                mPolicy.adjustWindowParamsLw(win, attrs, hasStatusBarServicePermission);
+                displayPolicy.adjustWindowParamsLw(win, attrs, hasStatusBarServicePermission);
                 // if they don't have the permission, mask out the status bar bits
                 if (seq == win.mSeq) {
                     int systemUiVisibility = attrs.systemUiVisibility
@@ -1996,7 +2035,7 @@
                 try {
                     result = createSurfaceControl(outSurface, result, win, winAnimator);
                 } catch (Exception e) {
-                    win.getDisplayContent().getInputMonitor().updateInputWindowsLw(true /*force*/);
+                    displayContent.getInputMonitor().updateInputWindowsLw(true /*force*/);
 
                     Slog.w(TAG_WM, "Exception thrown when creating surface for client "
                              + client + " (" + win.mAttrs.getTitle() + ")",
@@ -2007,7 +2046,6 @@
                 if ((result & WindowManagerGlobal.RELAYOUT_RES_FIRST_TIME) != 0) {
                     focusMayChange = true;
                 }
-                final DisplayContent displayContent = win.getDisplayContent();
                 if (win.mAttrs.type == TYPE_INPUT_METHOD
                         && displayContent.mInputMethodWindow == null) {
                     displayContent.setInputMethodWindowLocked(win);
@@ -2052,35 +2090,34 @@
             // updateFocusedWindowLocked() already assigned layers so we only need to
             // reassign them at this point if the IM window state gets shuffled
             boolean toBeDisplayed = (result & WindowManagerGlobal.RELAYOUT_RES_FIRST_TIME) != 0;
-            final DisplayContent dc = win.getDisplayContent();
             if (imMayMove) {
-                dc.computeImeTarget(true /* updateImeTarget */);
+                displayContent.computeImeTarget(true /* updateImeTarget */);
                 if (toBeDisplayed) {
                     // Little hack here -- we -should- be able to rely on the function to return
                     // true if the IME has moved and needs its layer recomputed. However, if the IME
                     // was hidden and isn't actually moved in the list, its layer may be out of data
                     // so we make sure to recompute it.
-                    dc.assignWindowLayers(false /* setLayoutNeeded */);
+                    displayContent.assignWindowLayers(false /* setLayoutNeeded */);
                 }
             }
 
             if (wallpaperMayMove) {
-                win.getDisplayContent().pendingLayoutChanges |=
+                displayContent.pendingLayoutChanges |=
                         WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
             }
 
             if (win.mAppToken != null) {
-                dc.mUnknownAppVisibilityController.notifyRelayouted(win.mAppToken);
+                displayContent.mUnknownAppVisibilityController.notifyRelayouted(win.mAppToken);
             }
 
             Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER,
                     "relayoutWindow: updateOrientationFromAppTokens");
-            configChanged = dc.updateOrientationFromAppTokens();
+            configChanged = displayContent.updateOrientationFromAppTokens();
             Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
 
             if (toBeDisplayed && win.mIsWallpaper) {
-                DisplayInfo displayInfo = win.getDisplayContent().getDisplayInfo();
-                dc.mWallpaperController.updateWallpaperOffset(
+                DisplayInfo displayInfo = displayContent.getDisplayInfo();
+                displayContent.mWallpaperController.updateWallpaperOffset(
                         win, displayInfo.logicalWidth, displayInfo.logicalHeight, false);
             }
             if (win.mAppToken != null) {
@@ -2090,7 +2127,7 @@
                 winAnimator.mReportSurfaceResized = false;
                 result |= WindowManagerGlobal.RELAYOUT_RES_SURFACE_RESIZED;
             }
-            if (mPolicy.isNavBarForcedShownLw(win)) {
+            if (displayPolicy.isNavBarForcedShownLw(win)) {
                 result |= WindowManagerGlobal.RELAYOUT_RES_CONSUME_ALWAYS_NAV_BAR;
             }
             if (!win.isGoneForLayoutLw()) {
@@ -2124,6 +2161,7 @@
                     outStableInsets, outOutsets);
             outCutout.set(win.getWmDisplayCutout().getDisplayCutout());
             outBackdropFrame.set(win.getBackdropFrame(win.getFrameLw()));
+            outInsetsState.set(displayContent.getInsetsStateController().getInsetsForDispatch(win));
             if (localLOGV) Slog.v(
                 TAG_WM, "Relayout given client " + client.asBinder()
                 + ", requestedWidth=" + requestedWidth
@@ -2286,7 +2324,7 @@
         }
 
         synchronized (mGlobalLock) {
-            final DisplayContent dc = mRoot.getDisplayContent(displayId);
+            final DisplayContent dc = getDisplayContentOrCreate(displayId, null /* token */);
             if (dc == null) {
                 Slog.w(TAG_WM, "addWindowToken: Attempted to add token: " + binder
                         + " for non-exiting displayId=" + displayId);
@@ -2405,10 +2443,10 @@
             final DisplayContent displayContent = mRoot.getDisplayContent(displayId);
             displayContent.computeScreenConfiguration(mTempConfiguration);
             if (currentConfig.diff(mTempConfiguration) != 0) {
-                mWaitingForConfig = true;
+                displayContent.mWaitingForConfig = true;
                 displayContent.setLayoutNeeded();
                 int anim[] = new int[2];
-                mPolicy.selectRotationAnimationLw(anim);
+                displayContent.getDisplayPolicy().selectRotationAnimationLw(anim);
 
                 startFreezingDisplayLocked(anim[0], anim[1], displayContent);
                 config = new Configuration(mTempConfiguration);
@@ -2418,9 +2456,10 @@
         return config;
     }
 
-    void setNewDisplayOverrideConfiguration(Configuration overrideConfig, DisplayContent dc) {
-        if (mWaitingForConfig) {
-            mWaitingForConfig = false;
+    void setNewDisplayOverrideConfiguration(Configuration overrideConfig,
+            @NonNull DisplayContent dc) {
+        if (dc.mWaitingForConfig) {
+            dc.mWaitingForConfig = false;
             mLastFinishedFreezeSource = "new-config";
         }
 
@@ -2441,26 +2480,36 @@
     @Override
     public void overridePendingAppTransitionMultiThumbFuture(
             IAppTransitionAnimationSpecsFuture specsFuture, IRemoteCallback callback,
-            boolean scaleUp) {
+            boolean scaleUp, int displayId) {
         synchronized (mGlobalLock) {
-            // TODO(multi-display): sysui using this api only support default display.
-            mRoot.getDisplayContent(DEFAULT_DISPLAY)
-                    .mAppTransition.overridePendingAppTransitionMultiThumbFuture(specsFuture,
+            final DisplayContent displayContent = mRoot.getDisplayContent(displayId);
+            if (displayContent == null) {
+                Slog.w(TAG, "Attempted to call overridePendingAppTransitionMultiThumbFuture"
+                        + " for the display " + displayId + " that does not exist.");
+                return;
+            }
+            displayContent.mAppTransition.overridePendingAppTransitionMultiThumbFuture(specsFuture,
                     callback, scaleUp);
         }
     }
 
     @Override
-    public void overridePendingAppTransitionRemote(RemoteAnimationAdapter remoteAnimationAdapter) {
+    public void overridePendingAppTransitionRemote(RemoteAnimationAdapter remoteAnimationAdapter,
+            int displayId) {
         if (!checkCallingPermission(CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS,
                 "overridePendingAppTransitionRemote()")) {
             throw new SecurityException(
                     "Requires CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS permission");
         }
         synchronized (mGlobalLock) {
-            // TODO(multi-display): sysui using this api only support default display.
-            mRoot.getDisplayContent(DEFAULT_DISPLAY)
-                    .mAppTransition.overridePendingAppTransitionRemote(remoteAnimationAdapter);
+            final DisplayContent displayContent = mRoot.getDisplayContent(displayId);
+            if (displayContent == null) {
+                Slog.w(TAG, "Attempted to call overridePendingAppTransitionRemote"
+                        + " for the display " + displayId + " that does not exist.");
+                return;
+            }
+            displayContent.mAppTransition.overridePendingAppTransitionRemote(
+                    remoteAnimationAdapter);
         }
     }
 
@@ -2603,7 +2652,9 @@
         }
     }
 
-    @Override
+    /**
+     * Notifies window manager that {@link DisplayPolicy#isShowingDreamLw} has changed.
+     */
     public void notifyShowingDreamChanged() {
         // TODO(multi-display): support show dream in multi-display.
         notifyKeyguardFlagsChanged(null /* callback */, DEFAULT_DISPLAY);
@@ -2634,6 +2685,21 @@
         mH.sendEmptyMessage(H.RECOMPUTE_FOCUS);
     }
 
+    @Override
+    public void onPowerKeyDown(boolean isScreenOn) {
+        mRoot.forAllDisplayPolicies(PooledLambda.obtainConsumer(
+                DisplayPolicy::onPowerKeyDown, PooledLambda.__(), isScreenOn));
+    }
+
+    @Override
+    public void onUserSwitched() {
+        mSettingsObserver.updateSystemUiSettings();
+        synchronized (mWindowMap) {
+            // force a re-application of focused window sysui visibility on each display.
+            mRoot.forAllDisplayPolicies(DisplayPolicy::resetSystemUiVisibilityLw);
+        }
+    }
+
     /**
      * Starts deferring layout passes. Useful when doing multiple changes but to optimize
      * performance, only one layout pass should be done. This can be called multiple times, and
@@ -2839,7 +2905,8 @@
 
     public boolean isShowingDream() {
         synchronized (mGlobalLock) {
-            return mPolicy.isShowingDreamLw();
+            // TODO: fix this when dream can be shown on non-default display.
+            return getDefaultDisplayContentLocked().getDisplayPolicy().isShowingDreamLw();
         }
     }
 
@@ -3462,7 +3529,9 @@
         try {
             Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "screenshotWallpaper");
             synchronized (mGlobalLock) {
-                return mRoot.mWallpaperController.screenshotWallpaperLocked();
+                // TODO(b/115486823) Screenshot at secondary displays if needed.
+                final DisplayContent dc = mRoot.getDisplayContent(DEFAULT_DISPLAY);
+                return dc.mWallpaperController.screenshotWallpaperLocked();
             }
         } finally {
             Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
@@ -3523,6 +3592,17 @@
         }
     }
 
+    void setRotateForApp(int displayId, boolean enabled) {
+        synchronized (mGlobalLock) {
+            final DisplayContent display = mRoot.getDisplayContent(displayId);
+            if (display == null) {
+                Slog.w(TAG, "Trying to set rotate for app for a missing display.");
+                return;
+            }
+            display.getDisplayRotation().setFixedToUserRotation(enabled);
+        }
+    }
+
     @Override
     public void freezeRotation(int rotation) {
         freezeDisplayRotation(Display.DEFAULT_DISPLAY, rotation);
@@ -3670,13 +3750,6 @@
     }
 
     @Override
-    public WindowManagerPolicy.DisplayContentInfo getDefaultDisplayContentInfo() {
-        synchronized (mGlobalLock) {
-            return getDefaultDisplayContentLocked();
-        }
-    }
-
-    @Override
     public int getDefaultDisplayRotation() {
         synchronized (mGlobalLock) {
             return getDefaultDisplayContentLocked().getRotation();
@@ -4135,13 +4208,11 @@
                 // placement to unfreeze the display since we froze it when the rotation was updated
                 // in DisplayContent#updateRotationUnchecked.
                 synchronized (mGlobalLock) {
-                    if (mWaitingForConfig) {
-                        mWaitingForConfig = false;
+                    final DisplayContent dc = mRoot.getDisplayContent(displayId);
+                    if (dc != null && dc.mWaitingForConfig) {
+                        dc.mWaitingForConfig = false;
                         mLastFinishedFreezeSource = "config-unchanged";
-                        final DisplayContent dc = mRoot.getDisplayContent(displayId);
-                        if (dc != null) {
-                            dc.setLayoutNeeded();
-                        }
+                        dc.setLayoutNeeded();
                         mWindowPlacerLocked.performSurfacePlacement();
                     }
                 }
@@ -4289,10 +4360,29 @@
     }
 
     public void systemReady() {
+        mSystemReady = true;
         mPolicy.systemReady();
+        mRoot.forAllDisplayPolicies(DisplayPolicy::systemReady);
         mTaskSnapshotController.systemReady();
         mHasWideColorGamutSupport = queryWideColorGamutSupport();
         mHasHdrSupport = queryHdrSupport();
+        UiThread.getHandler().post(mSettingsObserver::updateSystemUiSettings);
+        IVrManager vrManager = IVrManager.Stub.asInterface(
+                ServiceManager.getService(Context.VR_SERVICE));
+        if (vrManager != null) {
+            try {
+                final boolean vrModeEnabled = vrManager.getVrModeState();
+                synchronized (mGlobalLock) {
+                    vrManager.registerListener(mVrStateCallbacks);
+                    if (vrModeEnabled) {
+                        mVrModeEnabled = vrModeEnabled;
+                        mVrStateCallbacks.onVrStateChanged(vrModeEnabled);
+                    }
+                }
+            } catch (RemoteException e) {
+                // Ignore, we cannot do anything if we failed to register VR mode listener
+            }
+        }
     }
 
     private static boolean queryWideColorGamutSupport() {
@@ -4694,7 +4784,10 @@
                 break;
                 case WALLPAPER_DRAW_PENDING_TIMEOUT: {
                     synchronized (mGlobalLock) {
-                        if (mRoot.mWallpaperController.processWallpaperDrawPendingTimeout()) {
+                        final WallpaperController wallpaperController =
+                                (WallpaperController) msg.obj;
+                        if (wallpaperController != null
+                                && wallpaperController.processWallpaperDrawPendingTimeout()) {
                             mWindowPlacerLocked.performSurfacePlacement();
                         }
                     }
@@ -5068,7 +5161,7 @@
         configChanged |= currentDisplayConfig.diff(mTempConfiguration) != 0;
 
         if (configChanged) {
-            mWaitingForConfig = true;
+            displayContent.mWaitingForConfig = true;
             startFreezingDisplayLocked(0 /* exitAnim */,
                     0 /* enterAnim */, displayContent);
             displayContent.sendNewConfiguration();
@@ -5316,7 +5409,7 @@
 
             displayContent.updateDisplayInfo();
             screenRotationAnimation = new ScreenRotationAnimation(mContext, displayContent,
-                    displayContent.getDisplayRotation().isDefaultOrientationForced(), isSecure,
+                    displayContent.getDisplayRotation().isFixedToUserRotation(), isSecure,
                     this);
             mAnimator.setScreenRotationAnimationLocked(mFrozenDisplayId,
                     screenRotationAnimation);
@@ -5328,23 +5421,24 @@
             return;
         }
 
-        final DisplayContent dc = mRoot.getDisplayContent(mFrozenDisplayId);
-        if (mWaitingForConfig || mAppsFreezingScreen > 0
+        final DisplayContent displayContent = mRoot.getDisplayContent(mFrozenDisplayId);
+        final boolean waitingForConfig = displayContent != null && displayContent.mWaitingForConfig;
+        final int numOpeningApps = displayContent != null ? displayContent.mOpeningApps.size() : 0;
+        if (waitingForConfig || mAppsFreezingScreen > 0
                 || mWindowsFreezingScreen == WINDOWS_FREEZING_SCREENS_ACTIVE
-                || mClientFreezingScreen || (dc != null && !dc.mOpeningApps.isEmpty())) {
+                || mClientFreezingScreen || numOpeningApps > 0) {
             if (DEBUG_ORIENTATION) Slog.d(TAG_WM,
-                "stopFreezingDisplayLocked: Returning mWaitingForConfig=" + mWaitingForConfig
+                "stopFreezingDisplayLocked: Returning mWaitingForConfig=" + waitingForConfig
                 + ", mAppsFreezingScreen=" + mAppsFreezingScreen
                 + ", mWindowsFreezingScreen=" + mWindowsFreezingScreen
                 + ", mClientFreezingScreen=" + mClientFreezingScreen
-                + ", mOpeningApps.size()=" + (dc != null ? dc.mOpeningApps.size() : 0));
+                + ", mOpeningApps.size()=" + numOpeningApps);
             return;
         }
 
         if (DEBUG_ORIENTATION) Slog.d(TAG_WM,
                 "stopFreezingDisplayLocked: Unfreezing now");
 
-        final DisplayContent displayContent = mRoot.getDisplayContent(mFrozenDisplayId);
 
         // We must make a local copy of the displayId as it can be potentially overwritten later on
         // in this method. For example, {@link startFreezingDisplayLocked} may be called as a result
@@ -5377,7 +5471,8 @@
             if (DEBUG_ORIENTATION) Slog.i(TAG_WM, "**** Dismissing screen rotation animation");
             DisplayInfo displayInfo = displayContent.getDisplayInfo();
             // Get rotation animation again, with new top window
-            if (!mPolicy.validateRotationAnimationLw(mExitAnimId, mEnterAnimId, false)) {
+            if (!displayContent.getDisplayPolicy()
+                    .validateRotationAnimationLw(mExitAnimId, mEnterAnimId, false)) {
                 mExitAnimId = mEnterAnimId = 0;
             }
             if (screenRotationAnimation.dismiss(mTransaction, MAX_ANIMATION_DURATION,
@@ -5517,7 +5612,7 @@
     }
 
     @Override
-    public void statusBarVisibilityChanged(int visibility) {
+    public void statusBarVisibilityChanged(int displayId, int visibility) {
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR)
                 != PackageManager.PERMISSION_GRANTED) {
             throw new SecurityException("Caller does not hold permission "
@@ -5525,9 +5620,12 @@
         }
 
         synchronized (mGlobalLock) {
-            mLastStatusBarVisibility = visibility;
-            visibility = mPolicy.adjustSystemUiVisibilityLw(visibility);
-            updateStatusBarVisibilityLocked(visibility);
+            final DisplayContent displayContent = mRoot.getDisplayContent(displayId);
+            if (displayContent != null) {
+                displayContent.statusBarVisibilityChanged(visibility);
+            } else {
+                Slog.w(TAG, "statusBarVisibilityChanged with invalid displayId=" + displayId);
+            }
         }
     }
 
@@ -5543,49 +5641,26 @@
         }
     }
 
-    // TODO(multidisplay): StatusBar on multiple screens?
-    private boolean updateStatusBarVisibilityLocked(int visibility) {
-        if (mLastDispatchedSystemUiVisibility == visibility) {
-            return false;
-        }
-        final int globalDiff = (visibility ^ mLastDispatchedSystemUiVisibility)
-                // We are only interested in differences of one of the
-                // clearable flags...
-                & View.SYSTEM_UI_CLEARABLE_FLAGS
-                // ...if it has actually been cleared.
-                & ~visibility;
-
-        mLastDispatchedSystemUiVisibility = visibility;
-        mInputManager.setSystemUiVisibility(visibility);
-        getDefaultDisplayContentLocked().updateSystemUiVisibility(visibility, globalDiff);
-        return true;
-    }
-
-    @Override
-    public void reevaluateStatusBarVisibility() {
-        synchronized (mGlobalLock) {
-            int visibility = mPolicy.adjustSystemUiVisibilityLw(mLastStatusBarVisibility);
-            if (updateStatusBarVisibilityLocked(visibility)) {
-                mWindowPlacerLocked.requestTraversal();
-            }
-        }
-    }
-
     /**
      * Used by ActivityManager to determine where to position an app with aspect ratio shorter then
      * the screen is.
-     * @see WindowManagerPolicy#getNavBarPosition()
+     * @see DisplayPolicy#getNavBarPosition()
      */
     @Override
     @WindowManagerPolicy.NavigationBarPosition
-    public int getNavBarPosition() {
+    public int getNavBarPosition(int displayId) {
         synchronized (mGlobalLock) {
             // Perform layout if it was scheduled before to make sure that we get correct nav bar
             // position when doing rotations.
-            final DisplayContent defaultDisplayContent = getDefaultDisplayContentLocked();
-            defaultDisplayContent.performLayout(false /* initial */,
+            final DisplayContent displayContent = mRoot.getDisplayContent(displayId);
+            if (displayContent == null) {
+                Slog.w(TAG, "getNavBarPosition with invalid displayId=" + displayId
+                        + " callers=" + Debug.getCallers(3));
+                return NAV_BAR_INVALID;
+            }
+            displayContent.performLayout(false /* initial */,
                     false /* updateInputWindows */);
-            return mPolicy.getNavBarPosition();
+            return displayContent.getDisplayPolicy().getNavBarPosition();
         }
     }
 
@@ -5648,8 +5723,14 @@
     }
 
     @Override
-    public boolean hasNavigationBar() {
-        return mPolicy.hasNavigationBar();
+    public boolean hasNavigationBar(int displayId) {
+        synchronized (mGlobalLock) {
+            final DisplayContent dc = mRoot.getDisplayContent(displayId);
+            if (dc == null) {
+                return false;
+            }
+            return dc.getDisplayPolicy().hasNavigationBar();
+        }
     }
 
     @Override
@@ -5771,11 +5852,6 @@
         }
     }
 
-    @Override
-    public int getDockedDividerInsetsLw() {
-        return getDefaultDisplayContentLocked().getDockedDividerController().getContentInsets();
-    }
-
     private void dumpPolicyLocked(PrintWriter pw, String[] args, boolean dumpAll) {
         pw.println("WINDOW MANAGER POLICY STATE (dumpsys window policy)");
         mPolicy.dump("    ", pw, args);
@@ -5964,18 +6040,11 @@
         mTaskSnapshotController.dump(pw, "  ");
 
         if (dumpAll) {
-            pw.print("  mSystemDecorLayer="); pw.print(mSystemDecorLayer);
-                    pw.print(" mScreenRect="); pw.println(mScreenRect.toShortString());
-            if (mLastStatusBarVisibility != 0) {
-                pw.print("  mLastStatusBarVisibility=0x");
-                        pw.println(Integer.toHexString(mLastStatusBarVisibility));
-            }
             final WindowState imeWindow = mRoot.getCurrentInputMethodWindow();
             if (imeWindow != null) {
                 pw.print("  mInputMethodWindow="); pw.println(imeWindow);
             }
             mWindowPlacerLocked.dump(pw, "  ");
-            mRoot.mWallpaperController.dump(pw, "  ");
             pw.print("  mSystemBooted="); pw.print(mSystemBooted);
                     pw.print(" mDisplayEnabled="); pw.println(mDisplayEnabled);
 
@@ -5986,7 +6055,6 @@
                     pw.print(" windows="); pw.print(mWindowsFreezingScreen);
                     pw.print(" client="); pw.print(mClientFreezingScreen);
                     pw.print(" apps="); pw.print(mAppsFreezingScreen);
-                    pw.print(" waitingForConfig="); pw.println(mWaitingForConfig);
             final DisplayContent defaultDisplayContent = getDefaultDisplayContentLocked();
             pw.print("  mRotation="); pw.print(defaultDisplayContent.getRotation());
                     pw.print(" mAltOrientation=");
@@ -5995,6 +6063,9 @@
                     pw.print(defaultDisplayContent.getLastWindowForcedOrientation());
                     pw.print(" mLastOrientation=");
                             pw.println(defaultDisplayContent.getLastOrientation());
+                    pw.print(" waitingForConfig=");
+                            pw.println(defaultDisplayContent.mWaitingForConfig);
+
             pw.print("  Animation settings: disabled="); pw.print(mAnimationsDisabled);
                     pw.print(" window="); pw.print(mWindowAnimationScaleSetting);
                     pw.print(" transition="); pw.print(mTransitionAnimationScaleSetting);
@@ -6003,6 +6074,7 @@
                 pw.print("  mRecentsAnimationController="); pw.println(mRecentsAnimationController);
                 mRecentsAnimationController.dump(pw, "    ");
             }
+            PolicyControl.dump("  ", pw);
         }
     }
 
@@ -6266,7 +6338,7 @@
     public void onOverlayChanged() {
         synchronized (mGlobalLock) {
             mRoot.forAllDisplays(displayContent -> {
-                mPolicy.onOverlayChangedLw(displayContent);
+                displayContent.getDisplayPolicy().onOverlayChangedLw();
                 displayContent.updateDisplayInfo();
             });
             requestTraversal();
@@ -6496,7 +6568,7 @@
         final DisplayContent dc = mRoot.getDisplayContent(displayId);
         if (dc != null) {
             final DisplayInfo di = dc.getDisplayInfo();
-            mPolicy.getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
+            dc.getDisplayPolicy().getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
                     di.displayCutout, outInsets);
         }
     }
@@ -7098,13 +7170,6 @@
         }
 
         @Override
-        public boolean isDockedDividerResizing() {
-            synchronized (mGlobalLock) {
-                return getDefaultDisplayContentLocked().getDockedDividerController().isResizing();
-            }
-        }
-
-        @Override
         public void computeWindowsForAccessibility() {
             final AccessibilityController accessibilityController;
             synchronized (mGlobalLock) {
@@ -7363,9 +7428,11 @@
      *                      {@link ActivityManager#LOCK_TASK_MODE_LOCKED},
      *                      {@link ActivityManager#LOCK_TASK_MODE_PINNED}.
      */
-    public void onLockTaskStateChanged(int lockTaskState) {
+    void onLockTaskStateChanged(int lockTaskState) {
+        // TODO: pass in displayId to determine which display the lock task state changed
         synchronized (mGlobalLock) {
-            mPolicy.onLockTaskStateChangedLw(lockTaskState);
+            mRoot.forAllDisplayPolicies(PooledLambda.obtainConsumer(
+                    DisplayPolicy::onLockTaskStateChangedLw, PooledLambda.__(), lockTaskState));
         }
     }
 
@@ -7381,4 +7448,29 @@
             }
         }
     }
+
+    @Override
+    public void reparentDisplayContent(int displayId, IBinder surfaceControlHandle) {
+        final Display display = mDisplayManager.getDisplay(displayId);
+        if (display == null) {
+            throw new IllegalArgumentException(
+                    "Can't reparent display for non-existent displayId: " + displayId);
+        }
+
+        final int callingUid = Binder.getCallingUid();
+        final int displayOwnerUid = display.getOwnerUid();
+        if (callingUid != displayOwnerUid) {
+            throw new SecurityException("Only owner of the display can reparent surfaces to it.");
+        }
+
+        synchronized (mGlobalLock) {
+            long token = Binder.clearCallingIdentity();
+            try {
+                DisplayContent displayContent = getDisplayContentOrCreate(displayId, null);
+                displayContent.reparentDisplayContent(surfaceControlHandle);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
index bf77ba8..6865ce3 100644
--- a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
+++ b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
@@ -76,6 +76,8 @@
                             getNextArgRequired());
                 case "set-user-rotation":
                     return runSetDisplayUserRotation(pw);
+                case "set-fix-to-user-rotation":
+                    return runSetFixToUserRotation(pw);
                 default:
                     return handleDefaultCommands(cmd);
             }
@@ -297,6 +299,32 @@
         }
     }
 
+    private int runSetFixToUserRotation(PrintWriter pw) {
+        int displayId = Display.DEFAULT_DISPLAY;
+        String arg = getNextArgRequired();
+        if ("-d".equals(arg)) {
+            displayId = Integer.parseInt(getNextArgRequired());
+            arg = getNextArgRequired();
+        }
+
+        final boolean enabled;
+        switch (arg) {
+            case "enabled":
+                enabled = true;
+                break;
+            case "disabled":
+                enabled = false;
+                break;
+            default:
+                getErrPrintWriter().println("Error: expecting enabled or disabled, but we get "
+                        + arg);
+                return -1;
+        }
+
+        mInternal.setRotateForApp(displayId, enabled);
+        return 0;
+    }
+
     @Override
     public void onHelp() {
         PrintWriter pw = getOutPrintWriter();
@@ -316,6 +344,8 @@
         pw.println("    Dismiss the keyguard, prompting user for auth if necessary.");
         pw.println("  set-user-rotation [free|lock] [-d DISPLAY_ID] [rotation]");
         pw.println("    Set user rotation mode and user rotation.");
+        pw.println("  set-fix-to-user-rotation [-d DISPLAY_ID] [enabled|disabled]");
+        pw.println("    Enable or disable rotating display for app requested orientation.");
         if (!IS_USER) {
             pw.println("  tracing (start | stop)");
             pw.println("    Start or stop window tracing.");
diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java
index 484bd8c..2dec4dd 100644
--- a/services/core/java/com/android/server/wm/WindowProcessController.java
+++ b/services/core/java/com/android/server/wm/WindowProcessController.java
@@ -443,7 +443,7 @@
             for (int i = 0; i < activities.size(); i++) {
                 final ActivityRecord r = activities.get(i);
                 if (!r.finishing && r.isInStackLocked()) {
-                    r.getStack().finishActivityLocked(r, Activity.RESULT_CANCELED,
+                    r.getActivityStack().finishActivityLocked(r, Activity.RESULT_CANCELED,
                             null, "finish-heavy", true);
                 }
             }
@@ -513,7 +513,7 @@
             }
             ActivityRecord hist = mActivities.get(0);
             intent.putExtra(HeavyWeightSwitcherActivity.KEY_CUR_APP, hist.packageName);
-            intent.putExtra(HeavyWeightSwitcherActivity.KEY_CUR_TASK, hist.getTask().taskId);
+            intent.putExtra(HeavyWeightSwitcherActivity.KEY_CUR_TASK, hist.getTaskRecord().taskId);
         }
     }
 
@@ -524,7 +524,7 @@
                 // Don't kill process(es) that has an activity not stopped.
                 return false;
             }
-            final TaskRecord otherTask = activity.getTask();
+            final TaskRecord otherTask = activity.getTaskRecord();
             if (tr.taskId != otherTask.taskId && otherTask.inRecents) {
                 // Don't kill process(es) that has an activity in a different task that is
                 // also in recents.
@@ -557,7 +557,7 @@
                 continue;
             }
 
-            final TaskRecord task = r.getTask();
+            final TaskRecord task = r.getTaskRecord();
             if (task != null) {
                 if (DEBUG_RELEASE) Slog.d(TAG_RELEASE, "Collecting release task " + task
                         + " from " + r);
@@ -600,7 +600,7 @@
                 }
                 if (r.visible) {
                     callback.onVisibleActivity();
-                    final TaskRecord task = r.getTask();
+                    final TaskRecord task = r.getTaskRecord();
                     if (task != null && minTaskLayer > 0) {
                         final int layer = task.mLayerRank;
                         if (layer >= 0 && minTaskLayer > layer) {
@@ -755,9 +755,9 @@
             return;
         }
         final ActivityDisplay activityDisplay =
-                mAtm.mStackSupervisor.getActivityDisplay(mDisplayId);
+                mAtm.mRootActivityContainer.getActivityDisplay(mDisplayId);
         if (activityDisplay != null) {
-            mAtm.mStackSupervisor.getActivityDisplay(
+            mAtm.mRootActivityContainer.getActivityDisplay(
                     mDisplayId).unregisterConfigurationChangeListener(this);
         }
         mDisplayId = INVALID_DISPLAY;
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index a117cf3..ad43e74 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -143,6 +143,7 @@
 import static com.android.server.wm.WindowStateProto.WINDOW_FRAMES;
 
 import android.annotation.CallSuper;
+import android.annotation.Nullable;
 import android.app.AppOpsManager;
 import android.content.Context;
 import android.content.res.Configuration;
@@ -179,6 +180,8 @@
 import android.view.InputChannel;
 import android.view.InputEvent;
 import android.view.InputEventReceiver;
+import android.view.InputWindowHandle;
+import android.view.Surface.Rotation;
 import android.view.SurfaceControl;
 import android.view.SurfaceSession;
 import android.view.View;
@@ -191,7 +194,6 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ToBooleanFunction;
-import android.view.InputWindowHandle;
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.wm.LocalAnimationAdapter.AnimationSpec;
 import com.android.server.wm.utils.InsetUtils;
@@ -577,10 +579,12 @@
      */
     private boolean mIsDimming = false;
 
+    private @Nullable InsetsSourceProvider mInsetProvider;
+
     private static final float DEFAULT_DIM_AMOUNT_DEAD_WINDOW = 0.5f;
 
-    void seamlesslyRotateIfAllowed(Transaction transaction, int oldRotation, int rotation,
-            boolean requested) {
+    void seamlesslyRotateIfAllowed(Transaction transaction, @Rotation int oldRotation,
+            @Rotation int rotation, boolean requested) {
         // Invisible windows and the wallpaper do not participate in the seamless rotation animation
         if (!isVisibleNow() || mIsWallpaper) {
             return;
@@ -593,16 +597,16 @@
         if (mForceSeamlesslyRotate || requested) {
             mPendingSeamlessRotate = new SeamlessRotator(oldRotation, rotation, getDisplayInfo());
             mPendingSeamlessRotate.unrotate(transaction, this);
-            mService.markForSeamlessRotation(this, true);
+            mWmService.markForSeamlessRotation(this, true);
         }
     }
 
-    void finishSeamlessRotation() {
+    void finishSeamlessRotation(boolean timeout) {
         if (mPendingSeamlessRotate != null) {
-            mPendingSeamlessRotate.finish(this);
+            mPendingSeamlessRotate.finish(this, timeout);
             mFinishSeamlessRotateFrameNumber = getFrameNumber();
             mPendingSeamlessRotate = null;
-            mService.markForSeamlessRotation(this, false);
+            mWmService.markForSeamlessRotation(this, false);
         }
     }
 
@@ -646,8 +650,8 @@
         mAttrs.copyFrom(a);
         mLastSurfaceInsets.set(mAttrs.surfaceInsets);
         mViewVisibility = viewVisibility;
-        mPolicy = mService.mPolicy;
-        mContext = mService.mContext;
+        mPolicy = mWmService.mPolicy;
+        mContext = mWmService.mContext;
         DeathRecipient deathRecipient = new DeathRecipient();
         mSeq = seq;
         mEnforceSizeCompat = (mAttrs.privateFlags & PRIVATE_FLAG_COMPATIBLE_WINDOW) != 0;
@@ -786,6 +790,18 @@
     }
 
     @Override
+    public Rect getDisplayedBounds() {
+        final Task task = getTask();
+        if (task != null) {
+            Rect bounds = task.getOverrideDisplayedBounds();
+            if (!bounds.isEmpty()) {
+                return bounds;
+            }
+        }
+        return super.getDisplayedBounds();
+    }
+
+    @Override
     public void computeFrameLw() {
         if (mWillReplaceWindow && (mAnimatingExit || !mReplacingRemoveRequested)) {
             // This window is being replaced and either already got information that it's being
@@ -801,16 +817,7 @@
         final boolean windowsAreFloating = task != null && task.isFloating();
         final DisplayContent dc = getDisplayContent();
 
-        // If the task has temp inset bounds set, we have to make sure all its windows uses
-        // the temp inset frame. Otherwise different display frames get applied to the main
-        // window and the child window, making them misaligned.
-        // Otherwise we need to clear the inset frame, to avoid using a stale frame after leaving
-        // multi window mode.
-        if (task != null && isInMultiWindowMode()) {
-            task.getTempInsetBounds(mInsetFrame);
-        } else {
-            mInsetFrame.setEmpty();
-        }
+        mInsetFrame.set(getBounds());
 
         // Denotes the actual frame used to calculate the insets and to perform the layout. When
         // resizing in docked mode, we'd like to freeze the layout, so we also need to freeze the
@@ -830,7 +837,7 @@
             layoutXDiff = 0;
             layoutYDiff = 0;
         } else {
-            getBounds(mWindowFrames.mContainingFrame);
+            mWindowFrames.mContainingFrame.set(getDisplayedBounds());
             if (mAppToken != null && !mAppToken.mFrozenBounds.isEmpty()) {
 
                 // If the bounds are frozen, we still want to translate the window freely and only
@@ -841,7 +848,7 @@
                 mWindowFrames.mContainingFrame.bottom =
                         mWindowFrames.mContainingFrame.top + frozen.height();
             }
-            final WindowState imeWin = mService.mRoot.getCurrentInputMethodWindow();
+            final WindowState imeWin = mWmService.mRoot.getCurrentInputMethodWindow();
             // IME is up and obscuring this window. Adjust the window position so it is visible.
             if (imeWin != null && imeWin.isVisibleNow() && isInputMethodTarget()) {
                 if (inFreeformWindowingMode() && mWindowFrames.mContainingFrame.bottom
@@ -880,14 +887,9 @@
 
             layoutDisplayFrame = new Rect(mWindowFrames.mDisplayFrame);
             mWindowFrames.mDisplayFrame.set(mWindowFrames.mContainingFrame);
-            layoutXDiff =
-                    !mInsetFrame.isEmpty() ? mInsetFrame.left - mWindowFrames.mContainingFrame.left
-                            : 0;
-            layoutYDiff =
-                    !mInsetFrame.isEmpty() ? mInsetFrame.top - mWindowFrames.mContainingFrame.top
-                            : 0;
-            layoutContainingFrame =
-                    !mInsetFrame.isEmpty() ? mInsetFrame : mWindowFrames.mContainingFrame;
+            layoutXDiff = mInsetFrame.left - mWindowFrames.mContainingFrame.left;
+            layoutYDiff = mInsetFrame.top - mWindowFrames.mContainingFrame.top;
+            layoutContainingFrame = mInsetFrame;
             mTmpRect.set(0, 0, dc.getDisplayInfo().logicalWidth, dc.getDisplayInfo().logicalHeight);
             subtractInsets(mWindowFrames.mDisplayFrame, layoutContainingFrame, layoutDisplayFrame,
                     mTmpRect);
@@ -1199,7 +1201,7 @@
             }
 
             updateLastInsetValues();
-            mService.makeWindowFreezingScreenIfNeededLocked(this);
+            mWmService.makeWindowFreezingScreenIfNeededLocked(this);
 
             // If the orientation is changing, or we're starting or ending a drag resizing action,
             // then we need to hold off on unfreezing the display until this window has been
@@ -1216,9 +1218,9 @@
                     mAppToken.clearAllDrawn();
                 }
             }
-            if (!mService.mResizingWindows.contains(this)) {
+            if (!mWmService.mResizingWindows.contains(this)) {
                 if (DEBUG_RESIZE || DEBUG_ORIENTATION) Slog.v(TAG_WM, "Resizing window " + this);
-                mService.mResizingWindows.add(this);
+                mWmService.mResizingWindows.add(this);
             }
         } else if (getOrientationChanging()) {
             if (isDrawnLw()) {
@@ -1226,7 +1228,7 @@
                         + this + ", surfaceController " + winAnimator.mSurfaceController);
                 setOrientationChanging(false);
                 mLastFreezeDuration = (int)(SystemClock.elapsedRealtime()
-                        - mService.mDisplayFreezeTime);
+                        - mWmService.mDisplayFreezeTime);
             }
         }
     }
@@ -1260,7 +1262,6 @@
 
     @Override
     void onDisplayChanged(DisplayContent dc) {
-        updateSurfaceSize(dc);
         super.onDisplayChanged(dc);
         // Window was not laid out for this display yet, so make sure mLayoutSeq does not match.
         if (dc != null) {
@@ -1600,7 +1601,7 @@
             // 3. WS is currently visible
             if (!runningAppAnimation && isVisibleNow) {
                 final AccessibilityController accessibilityController =
-                        mService.mAccessibilityController;
+                        mWmService.mAccessibilityController;
                 final int winTransit = TRANSIT_EXIT;
                 mWinAnimator.applyAnimationLocked(winTransit, false /* isEntrance */);
                 //TODO (multidisplay): Magnification is supported only for the default
@@ -1622,8 +1623,8 @@
         if (isVisibleNow()) {
             mWinAnimator.applyAnimationLocked(TRANSIT_EXIT, false);
             //TODO (multidisplay): Magnification is supported only for the default
-            if (mService.mAccessibilityController != null && isDefaultDisplay()) {
-                mService.mAccessibilityController.onWindowTransitionLocked(this, TRANSIT_EXIT);
+            if (mWmService.mAccessibilityController != null && isDefaultDisplay()) {
+                mWmService.mAccessibilityController.onWindowTransitionLocked(this, TRANSIT_EXIT);
             }
             changed = true;
             if (displayContent != null) {
@@ -1641,7 +1642,7 @@
 
     @Override
     void onResize() {
-        final ArrayList<WindowState> resizingWindows = mService.mResizingWindows;
+        final ArrayList<WindowState> resizingWindows = mWmService.mResizingWindows;
         if (mHasSurface && !isGoneForLayoutLw() && !resizingWindows.contains(this)) {
             if (DEBUG_RESIZE) Slog.d(TAG, "onResize: Resizing " + this);
             resizingWindows.add(this);
@@ -1665,8 +1666,8 @@
 
         mLayoutNeeded = true;
         setDisplayLayoutNeeded();
-        if (!mService.mResizingWindows.contains(this)) {
-            mService.mResizingWindows.add(this);
+        if (!mWmService.mResizingWindows.contains(this)) {
+            mWmService.mResizingWindows.add(this);
         }
     }
 
@@ -1698,9 +1699,9 @@
         }
 
         //TODO (multidisplay): Accessibility supported only for the default display.
-        if (mService.mAccessibilityController != null
+        if (mWmService.mAccessibilityController != null
                 && getDisplayContent().getDisplayId() == DEFAULT_DISPLAY) {
-            mService.mAccessibilityController.onSomeWindowResizedOrMovedLocked();
+            mWmService.mAccessibilityController.onSomeWindowResizedOrMovedLocked();
         }
 
         try {
@@ -1800,7 +1801,7 @@
             // also been registered in display.
             dc.mTapExcludeProvidingWindows.remove(this);
         }
-        mPolicy.removeWindowLw(this);
+        dc.getDisplayPolicy().removeWindowLw(this);
 
         disposeInputChannel();
 
@@ -1814,7 +1815,7 @@
             // we are doing this as part of processing a death note.)
         }
 
-        mService.postWindowRemoveCleanupLocked(this);
+        mWmService.postWindowRemoveCleanupLocked(this);
     }
 
     @Override
@@ -1855,7 +1856,7 @@
                     + " mWillReplaceWindow=" + mWillReplaceWindow
                     + " inPendingTransaction="
                     + (mAppToken != null ? mAppToken.inPendingTransaction : false)
-                    + " mDisplayFrozen=" + mService.mDisplayFrozen
+                    + " mDisplayFrozen=" + mWmService.mDisplayFrozen
                     + " callers=" + Debug.getCallers(6));
 
             // Visibility of the removed window. Will be used later to update orientation later on.
@@ -1890,7 +1891,7 @@
 
                     mAppDied = true;
                     setDisplayLayoutNeeded();
-                    mService.mWindowPlacerLocked.performSurfacePlacement();
+                    mWmService.mWindowPlacerLocked.performSurfacePlacement();
 
                     // Set up a replacement input channel since the app is now dead.
                     // We need to catch tapping on the dead window to restart the app.
@@ -1909,11 +1910,12 @@
                         // mAnimatingExit affects canAffectSystemUiFlags(). Run layout such that
                         // any change from that is performed immediately.
                         setDisplayLayoutNeeded();
-                        mService.requestTraversal();
+                        mWmService.requestTraversal();
                     }
                     //TODO (multidisplay): Magnification is supported only for the default display.
-                    if (mService.mAccessibilityController != null && displayId == DEFAULT_DISPLAY) {
-                        mService.mAccessibilityController.onWindowTransitionLocked(this, transit);
+                    if (mWmService.mAccessibilityController != null
+                            && displayId == DEFAULT_DISPLAY) {
+                        mWmService.mAccessibilityController.onWindowTransitionLocked(this, transit);
                     }
                 }
                 final boolean isAnimating = isAnimating()
@@ -1947,7 +1949,7 @@
                     displayContent.sendNewConfiguration();
                 }
             }
-            mService.updateFocusedWindowLocked(isFocused()
+            mWmService.updateFocusedWindowLocked(isFocused()
                             ? UPDATE_FOCUS_REMOVING_FOCUS
                             : UPDATE_FOCUS_NORMAL,
                     true /*updateInputWindows*/);
@@ -1961,9 +1963,9 @@
         setDisplayLayoutNeeded();
         // Request a focus update as this window's input channel is already gone. Otherwise
         // we could have no focused window in input manager.
-        final boolean focusChanged = mService.updateFocusedWindowLocked(
+        final boolean focusChanged = mWmService.updateFocusedWindowLocked(
                 UPDATE_FOCUS_WILL_PLACE_SURFACES, false /*updateInputWindows*/);
-        mService.mWindowPlacerLocked.performSurfacePlacement();
+        mWmService.mWindowPlacerLocked.performSurfacePlacement();
         if (focusChanged) {
             getDisplayContent().getInputMonitor().updateInputWindowsLw(false /*force*/);
         }
@@ -2016,7 +2018,7 @@
 
     private final class DeadWindowEventReceiver extends InputEventReceiver {
         DeadWindowEventReceiver(InputChannel inputChannel) {
-            super(inputChannel, mService.mH.getLooper());
+            super(inputChannel, mWmService.mH.getLooper());
         }
         @Override
         public void onInputEvent(InputEvent event) {
@@ -2036,7 +2038,7 @@
         InputChannel[] inputChannels = InputChannel.openInputChannelPair(name);
         mInputChannel = inputChannels[0];
         mClientChannel = inputChannels[1];
-        mInputWindowHandle.inputChannel = inputChannels[0];
+        mInputWindowHandle.token = mClient.asBinder();
         if (outInputChannel != null) {
             mClientChannel.transferTo(outInputChannel);
             mClientChannel.dispose();
@@ -2047,7 +2049,7 @@
             // Create dummy event receiver that simply reports all events as handled.
             mDeadWindowEventReceiver = new DeadWindowEventReceiver(mClientChannel);
         }
-        mService.mInputManager.registerInputChannel(mInputChannel, mClient.asBinder());
+        mWmService.mInputManager.registerInputChannel(mInputChannel, mClient.asBinder());
     }
 
     void disposeInputChannel() {
@@ -2058,7 +2060,7 @@
 
         // unregister server channel first otherwise it complains about broken channel
         if (mInputChannel != null) {
-            mService.mInputManager.unregisterInputChannel(mInputChannel);
+            mWmService.mInputManager.unregisterInputChannel(mInputChannel);
 
             mInputChannel.dispose();
             mInputChannel = null;
@@ -2067,7 +2069,7 @@
             mClientChannel.dispose();
             mClientChannel = null;
         }
-        mInputWindowHandle.inputChannel = null;
+        mInputWindowHandle.token = null;
     }
 
     /** Returns true if the replacement window was removed. */
@@ -2166,11 +2168,15 @@
                 mTmpRect.inset(-delta, -delta);
             }
             region.set(mTmpRect);
-            cropRegionToStackBoundsIfNeeded(region);
+            region.translate(-mWindowFrames.mFrame.left, -mWindowFrames.mFrame.top);
         } else {
             // Not modal or full screen modal
             getTouchableRegion(region);
         }
+
+        // The area containing the shadows is not touchable.
+        region.translate(mAttrs.surfaceInsets.left, mAttrs.surfaceInsets.top);
+
         return flags;
     }
 
@@ -2186,13 +2192,13 @@
                 if (isFocused()) {
                     if (DEBUG_FOCUS_LIGHT) Slog.i(TAG,
                             "setAnimationLocked: setting mFocusMayChange true");
-                    mService.mFocusMayChange = true;
+                    mWmService.mFocusMayChange = true;
                 }
                 setDisplayLayoutNeeded();
                 // Window is no longer visible -- make sure if we were waiting
                 // for it to be displayed before enabling the display, that
                 // we allow the display to be enabled now.
-                mService.enableScreenIfNeededLocked();
+                mWmService.enableScreenIfNeededLocked();
             }
         }
     }
@@ -2209,8 +2215,8 @@
         // We need to turn on screen regardless of visibility.
         boolean hasTurnScreenOnFlag = (mAttrs.flags & FLAG_TURN_SCREEN_ON) != 0;
         boolean allowTheaterMode =
-                mService.mAllowTheaterModeWakeFromLayout || Settings.Global.getInt(
-                        mService.mContext.getContentResolver(), Settings.Global.THEATER_MODE_ON, 0)
+                mWmService.mAllowTheaterModeWakeFromLayout || Settings.Global.getInt(
+                        mWmService.mContext.getContentResolver(), Settings.Global.THEATER_MODE_ON, 0)
                         == 0;
         boolean canTurnScreenOn = mAppToken == null || mAppToken.canTurnScreenOn();
 
@@ -2260,8 +2266,8 @@
         // For child windows we want to use the pid for the parent window in case the the child
         // window was added from another process.
         final int pid = getParentWindow() != null ? getParentWindow().mSession.mPid : mSession.mPid;
-        mTempConfiguration.setTo(mService.mProcessConfigurations.get(
-                pid, mService.mRoot.getConfiguration()));
+        mTempConfiguration.setTo(mWmService.mProcessConfigurations.get(
+                pid, mWmService.mRoot.getConfiguration()));
         return mTempConfiguration;
     }
 
@@ -2317,13 +2323,14 @@
         public void binderDied() {
             try {
                 boolean resetSplitScreenResizing = false;
-                synchronized (mService.mGlobalLock) {
-                    final WindowState win = mService.windowForClientLocked(mSession, mClient, false);
+                synchronized (mWmService.mGlobalLock) {
+                    final WindowState win = mWmService
+                            .windowForClientLocked(mSession, mClient, false);
                     Slog.i(TAG, "WIN DEATH: " + win);
                     if (win != null) {
                         final DisplayContent dc = getDisplayContent();
                         if (win.mAppToken != null && win.mAppToken.findMainWindow() == win) {
-                            mService.mTaskSnapshotController.onAppDied(win.mAppToken);
+                            mWmService.mTaskSnapshotController.onAppDied(win.mAppToken);
                         }
                         win.removeIfPossible(shouldKeepVisibleDeadAppWindow());
                         if (win.mAttrs.type == TYPE_DOCK_DIVIDER) {
@@ -2347,7 +2354,7 @@
                     try {
                         // Note: this calls into ActivityManager, so we must *not* hold the window
                         // manager lock while calling this.
-                        mService.mActivityTaskManager.setSplitScreenResizing(false);
+                        mWmService.mActivityTaskManager.setSplitScreenResizing(false);
                     } catch (RemoteException e) {
                         // Local call, shouldn't return RemoteException.
                         throw e.rethrowAsRuntimeException();
@@ -2391,11 +2398,11 @@
                 && (mViewVisibility == View.VISIBLE) && !mRemoveOnExit
                 && ((mAttrs.flags & WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) == 0)
                 && (mAppToken == null || mAppToken.windowsAreFocusable())
-                && !canReceiveTouchInput();
+                && !cantReceiveTouchInput();
     }
 
-    /** @return true if this window desires touch events. */
-    boolean canReceiveTouchInput() {
+    /** @return false if this window desires touch events. */
+    boolean cantReceiveTouchInput() {
         return mAppToken != null && mAppToken.getTask() != null
                 && mAppToken.getTask().mStack.shouldIgnoreInput();
     }
@@ -2454,10 +2461,10 @@
             mWinAnimator.applyAnimationLocked(TRANSIT_ENTER, true);
         }
         if (requestAnim) {
-            mService.scheduleAnimationLocked();
+            mWmService.scheduleAnimationLocked();
         }
         if ((mAttrs.flags & FLAG_NOT_FOCUSABLE) == 0) {
-            mService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, false /* updateImWindows */);
+            mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, false /* updateImWindows */);
         }
         return true;
     }
@@ -2492,18 +2499,18 @@
             // Window is no longer visible -- make sure if we were waiting
             // for it to be displayed before enabling the display, that
             // we allow the display to be enabled now.
-            mService.enableScreenIfNeededLocked();
+            mWmService.enableScreenIfNeededLocked();
             if (isFocused) {
                 if (DEBUG_FOCUS_LIGHT) Slog.i(TAG,
                         "WindowState.hideLw: setting mFocusMayChange true");
-                mService.mFocusMayChange = true;
+                mWmService.mFocusMayChange = true;
             }
         }
         if (requestAnim) {
-            mService.scheduleAnimationLocked();
+            mWmService.scheduleAnimationLocked();
         }
         if (isFocused) {
-            mService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, false /* updateImWindows */);
+            mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, false /* updateImWindows */);
         }
         return true;
     }
@@ -2565,7 +2572,7 @@
         // and add the window only if the permission was granted. Therefore, if
         // the mode is MODE_DEFAULT we want the op to succeed as the window is
         // shown.
-        final int mode = mService.mAppOps.startOpNoThrow(mAppOp,
+        final int mode = mWmService.mAppOps.startOpNoThrow(mAppOp,
                 getOwningUid(), getOwningPackage(), true);
         if (mode != MODE_ALLOWED && mode != MODE_DEFAULT) {
             setAppOpVisibilityLw(false);
@@ -2574,7 +2581,7 @@
 
     void resetAppOpsState() {
         if (mAppOp != OP_NONE && mAppOpVisibility) {
-            mService.mAppOps.finishOp(mAppOp, getOwningUid(), getOwningPackage());
+            mWmService.mAppOps.finishOp(mAppOp, getOwningUid(), getOwningPackage());
         }
     }
 
@@ -2587,13 +2594,13 @@
         if (mAppOpVisibility) {
             // There is a race between the check and the finish calls but this is fine
             // as this would mean we will get another change callback and will reconcile.
-            int mode = mService.mAppOps.checkOpNoThrow(mAppOp, uid, packageName);
+            int mode = mWmService.mAppOps.checkOpNoThrow(mAppOp, uid, packageName);
             if (mode != MODE_ALLOWED && mode != MODE_DEFAULT) {
-                mService.mAppOps.finishOp(mAppOp, uid, packageName);
+                mWmService.mAppOps.finishOp(mAppOp, uid, packageName);
                 setAppOpVisibilityLw(false);
             }
         } else {
-            final int mode = mService.mAppOps.startOpNoThrow(mAppOp, uid, packageName, true);
+            final int mode = mWmService.mAppOps.startOpNoThrow(mAppOp, uid, packageName, true);
             if (mode == MODE_ALLOWED || mode == MODE_DEFAULT) {
                 setAppOpVisibilityLw(true);
             }
@@ -2614,7 +2621,7 @@
                 // in wake lock statistics.  So in particular, we don't want to include the
                 // window's hash code as in toString().
                 final CharSequence tag = getWindowTag();
-                mDrawLock = mService.mPowerManager.newWakeLock(DRAW_WAKE_LOCK, "Window:" + tag);
+                mDrawLock = mWmService.mPowerManager.newWakeLock(DRAW_WAKE_LOCK, "Window:" + tag);
                 mDrawLock.setReferenceCounted(false);
                 mDrawLock.setWorkSource(new WorkSource(mOwnerUid, mAttrs.packageName));
             }
@@ -2699,10 +2706,10 @@
         mAppFreezing = false;
 
         if (mHasSurface && !getOrientationChanging()
-                && mService.mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_TIMEOUT) {
+                && mWmService.mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_TIMEOUT) {
             if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "set mOrientationChanging of " + this);
             setOrientationChanging(true);
-            mService.mRoot.mOrientationChangeComplete = false;
+            mWmService.mRoot.mOrientationChangeComplete = false;
         }
         mLastFreezeDuration = 0;
         setDisplayLayoutNeeded();
@@ -2792,7 +2799,7 @@
         }
 
         return win.mShowToOwnerOnly
-                && !mService.isCurrentProfileLocked(UserHandle.getUserId(win.mOwnerUid));
+                && !mWmService.isCurrentProfileLocked(UserHandle.getUserId(win.mOwnerUid));
     }
 
     private static void applyInsets(Region outRegion, Rect frame, Rect inset) {
@@ -2802,25 +2809,32 @@
     }
 
     void getTouchableRegion(Region outRegion) {
+        if (inPinnedWindowingMode() && !isFocused()) {
+            outRegion.setEmpty();
+            return;
+        }
+
         final Rect frame = mWindowFrames.mFrame;
         switch (mTouchableInsets) {
             default:
             case TOUCHABLE_INSETS_FRAME:
                 outRegion.set(frame);
+                outRegion.translate(-frame.left, -frame.top);
                 break;
             case TOUCHABLE_INSETS_CONTENT:
                 applyInsets(outRegion, frame, mGivenContentInsets);
+                outRegion.translate(-frame.left, -frame.top);
                 break;
             case TOUCHABLE_INSETS_VISIBLE:
                 applyInsets(outRegion, frame, mGivenVisibleInsets);
+                outRegion.translate(-frame.left, -frame.top);
                 break;
             case TOUCHABLE_INSETS_REGION: {
                 outRegion.set(mGivenTouchableRegion);
-                outRegion.translate(frame.left, frame.top);
                 break;
             }
         }
-        cropRegionToStackBoundsIfNeeded(outRegion);
+        outRegion.translate(mAttrs.surfaceInsets.left, mAttrs.surfaceInsets.top);
     }
 
     private void cropRegionToStackBoundsIfNeeded(Region region) {
@@ -2884,7 +2898,7 @@
             if (DEBUG_RESIZE || DEBUG_ORIENTATION) Slog.v(TAG, "Reporting new frame to " + this
                     + ": " + mWindowFrames.mCompatFrame);
             final MergedConfiguration mergedConfiguration =
-                    new MergedConfiguration(mService.mRoot.getConfiguration(),
+                    new MergedConfiguration(mWmService.mRoot.getConfiguration(),
                     getMergedOverrideConfiguration());
 
             setLastReportedMergedConfiguration(mergedConfiguration);
@@ -2905,7 +2919,7 @@
             if (mAttrs.type != WindowManager.LayoutParams.TYPE_APPLICATION_STARTING
                     && mClient instanceof IWindow.Stub) {
                 // To prevent deadlock simulate one-way call if win.mClient is a local object.
-                mService.mH.post(new Runnable() {
+                mWmService.mH.post(new Runnable() {
                     @Override
                     public void run() {
                         try {
@@ -2924,8 +2938,8 @@
             }
 
             //TODO (multidisplay): Accessibility supported only for the default display.
-            if (mService.mAccessibilityController != null && getDisplayId() == DEFAULT_DISPLAY) {
-                mService.mAccessibilityController.onSomeWindowResizedOrMovedLocked();
+            if (mWmService.mAccessibilityController != null && getDisplayId() == DEFAULT_DISPLAY) {
+                mWmService.mAccessibilityController.onSomeWindowResizedOrMovedLocked();
             }
 
             mWindowFrames.resetInsetsChanged();
@@ -2934,16 +2948,39 @@
         } catch (RemoteException e) {
             setOrientationChanging(false);
             mLastFreezeDuration = (int)(SystemClock.elapsedRealtime()
-                    - mService.mDisplayFreezeTime);
+                    - mWmService.mDisplayFreezeTime);
             // We are assuming the hosting process is dead or in a zombie state.
             Slog.w(TAG, "Failed to report 'resized' to the client of " + this
                     + ", removing this window.");
-            mService.mPendingRemove.add(this);
-            mService.mWindowPlacerLocked.requestTraversal();
+            mWmService.mPendingRemove.add(this);
+            mWmService.mWindowPlacerLocked.requestTraversal();
         }
         Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
     }
 
+    /**
+     * Called when the insets state changed.
+     */
+    void notifyInsetsChanged() {
+        try {
+            mClient.insetsChanged(
+                    getDisplayContent().getInsetsStateController().getInsetsForDispatch(this));
+        } catch (RemoteException e) {
+            Slog.w(TAG, "Failed to deliver inset state change", e);
+        }
+    }
+
+    void notifyInsetsControlChanged() {
+        final InsetsStateController stateController =
+                getDisplayContent().getInsetsStateController();
+        try {
+            mClient.insetsControlChanged(stateController.getInsetsForDispatch(this),
+                    stateController.getControlsForDispatch(this));
+        } catch (RemoteException e) {
+            Slog.w(TAG, "Failed to deliver inset state change", e);
+        }
+    }
+
     Rect getBackdropFrame(Rect frame) {
         // When the task is docked, we send fullscreen sized backDropFrame as soon as resizing
         // start even if we haven't received the relayout window, so that the client requests
@@ -2982,13 +3019,13 @@
 
         mClient.resized(frame, overscanInsets, contentInsets, visibleInsets, stableInsets, outsets,
                 reportDraw, mergedConfiguration, getBackdropFrame(frame), forceRelayout,
-                mPolicy.isNavBarForcedShownLw(this), displayId,
+                getDisplayContent().getDisplayPolicy().isNavBarForcedShownLw(this), displayId,
                 new DisplayCutout.ParcelableWrapper(displayCutout));
         mDragResizingChangeReported = true;
     }
 
     public void registerFocusObserver(IWindowFocusObserver observer) {
-        synchronized (mService.mGlobalLock) {
+        synchronized (mWmService.mGlobalLock) {
             if (mFocusCallbacks == null) {
                 mFocusCallbacks = new RemoteCallbackList<IWindowFocusObserver>();
             }
@@ -2997,7 +3034,7 @@
     }
 
     public void unregisterFocusObserver(IWindowFocusObserver observer) {
-        synchronized (mService.mGlobalLock) {
+        synchronized (mWmService.mGlobalLock) {
             if (mFocusCallbacks != null) {
                 mFocusCallbacks.unregister(observer);
             }
@@ -3070,7 +3107,7 @@
     @Override
     void setWaitingForDrawnIfResizingChanged() {
         if (isDragResizeChanged()) {
-            mService.mWaitingForDrawn.add(this);
+            mWmService.mWaitingForDrawn.add(this);
         }
         super.setWaitingForDrawnIfResizingChanged();
     }
@@ -3559,7 +3596,7 @@
         if (dc != null && (mAttrs.flags & FLAG_SHOW_WALLPAPER) != 0) {
             dc.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
             dc.setLayoutNeeded();
-            mService.mWindowPlacerLocked.requestTraversal();
+            mWmService.mWindowPlacerLocked.requestTraversal();
         }
 
         for (int i = mChildren.size() - 1; i >= 0; i--) {
@@ -3657,7 +3694,7 @@
 
         logPerformShow("Showing ");
 
-        mService.enableScreenIfNeededLocked();
+        mWmService.enableScreenIfNeededLocked();
         mWinAnimator.applyEnterAnimationLocked();
 
         // Force the show in the next prepareSurfaceLocked() call.
@@ -3665,7 +3702,7 @@
         if (DEBUG_ANIM) Slog.v(TAG,
                 "performShowLocked: mDrawState=HAS_DRAWN in " + this);
         mWinAnimator.mDrawState = HAS_DRAWN;
-        mService.scheduleAnimationLocked();
+        mWmService.scheduleAnimationLocked();
 
         if (mHidden) {
             mHidden = false;
@@ -3944,7 +3981,7 @@
 
         if (mWinAnimator.mEnteringAnimation) {
             mWinAnimator.mEnteringAnimation = false;
-            mService.requestTraversal();
+            mWmService.requestTraversal();
             // System windows don't have an activity and an app token as a result, but need a way
             // to be informed about their entrance animation end.
             if (mAppToken == null) {
@@ -3960,8 +3997,8 @@
         }
 
         //TODO (multidisplay): Accessibility is supported only for the default display.
-        if (mService.mAccessibilityController != null && getDisplayId() == DEFAULT_DISPLAY) {
-            mService.mAccessibilityController.onSomeWindowResizedOrMovedLocked();
+        if (mWmService.mAccessibilityController != null && getDisplayId() == DEFAULT_DISPLAY) {
+            mWmService.mAccessibilityController.onSomeWindowResizedOrMovedLocked();
         }
 
         if (!isSelfOrAncestorWindowAnimatingExit()) {
@@ -3987,10 +4024,10 @@
             mAppToken.destroySurfaces();
         } else {
             if (hasSurface) {
-                mService.mDestroySurface.add(this);
+                mWmService.mDestroySurface.add(this);
             }
             if (mRemoveOnExit) {
-                mService.mPendingRemove.add(this);
+                mWmService.mPendingRemove.add(this);
                 mRemoveOnExit = false;
             }
         }
@@ -4021,7 +4058,7 @@
             }
             if (mDestroying) {
                 mDestroying = false;
-                mService.mDestroySurface.remove(this);
+                mWmService.mDestroySurface.remove(this);
                 didSomething = true;
             }
         }
@@ -4050,7 +4087,7 @@
             if (displayContent != null) {
                 displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
                 if (DEBUG_LAYOUT_REPEATS) {
-                    mService.mWindowPlacerLocked.debugLayoutRepeats("hideWallpaperWindow " + this,
+                    mWmService.mWindowPlacerLocked.debugLayoutRepeats("hideWallpaperWindow " + this,
                             displayContent.pendingLayoutChanges);
                 }
             }
@@ -4265,7 +4302,7 @@
         }
         if (mDestroying) {
             mDestroying = false;
-            mService.mDestroySurface.remove(this);
+            mWmService.mDestroySurface.remove(this);
         }
         if (oldVisibility == View.GONE) {
             mWinAnimator.mEnterAnimationPending = true;
@@ -4333,10 +4370,10 @@
         anim.initialize(mWindowFrames.mFrame.width(), mWindowFrames.mFrame.height(),
                 displayInfo.appWidth, displayInfo.appHeight);
         anim.restrictDuration(MAX_ANIMATION_DURATION);
-        anim.scaleCurrentDuration(mService.getWindowAnimationScaleLocked());
+        anim.scaleCurrentDuration(mWmService.getWindowAnimationScaleLocked());
         final AnimationAdapter adapter = new LocalAnimationAdapter(
                 new WindowAnimationSpec(anim, mSurfacePosition, false /* canSkipFirstFrame */),
-                mService.mSurfaceAnimationRunner);
+                mWmService.mSurfaceAnimationRunner);
         startAnimation(mPendingTransaction, adapter);
         commitPendingTransaction();
     }
@@ -4350,7 +4387,7 @@
         transformFrameToSurfacePosition(left, top, newPosition);
         final AnimationAdapter adapter = new LocalAnimationAdapter(
                 new MoveAnimationSpec(oldPosition.x, oldPosition.y, newPosition.x, newPosition.y),
-                mService.mSurfaceAnimationRunner);
+                mWmService.mSurfaceAnimationRunner);
         startAnimation(getPendingTransaction(), adapter);
     }
 
@@ -4444,7 +4481,7 @@
         public boolean isFocused() {
             final WindowState outer = mOuter.get();
             if (outer != null) {
-                synchronized (outer.mService.mGlobalLock) {
+                synchronized (outer.mWmService.mGlobalLock) {
                     return outer.isFocused();
                 }
             }
@@ -4575,7 +4612,7 @@
             outPoint.offset(-parent.mWindowFrames.mFrame.left + parent.mAttrs.surfaceInsets.left,
                     -parent.mWindowFrames.mFrame.top + parent.mAttrs.surfaceInsets.top);
         } else if (parentWindowContainer != null) {
-            final Rect parentBounds = parentWindowContainer.getBounds();
+            final Rect parentBounds = parentWindowContainer.getDisplayedBounds();
             outPoint.offset(-parentBounds.left, -parentBounds.top);
         }
 
@@ -4765,6 +4802,14 @@
         mWindowFrames.setContentChanged(false);
     }
 
+    void setInsetProvider(InsetsSourceProvider insetProvider) {
+        mInsetProvider = insetProvider;
+    }
+
+    InsetsSourceProvider getInsetProvider() {
+        return mInsetProvider;
+    }
+
     private final class MoveAnimationSpec implements AnimationSpec {
 
         private final long mDuration;
@@ -4776,7 +4821,7 @@
             final Animation anim = AnimationUtils.loadAnimation(mContext,
                     com.android.internal.R.anim.window_move_from_decor);
             mDuration = (long)
-                    (anim.computeDurationHint() * mService.getWindowAnimationScaleLocked());
+                    (anim.computeDurationHint() * mWmService.getWindowAnimationScaleLocked());
             mInterpolator = anim.getInterpolator();
             mFrom.set(fromX, fromY);
             mTo.set(toX, toY);
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 838d2a1..fb5c556 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -234,7 +234,7 @@
     private final Point mTmpPos = new Point();
 
     WindowStateAnimator(final WindowState win) {
-        final WindowManagerService service = win.mService;
+        final WindowManagerService service = win.mWmService;
 
         mService = service;
         mAnimator = service.mAnimator;
@@ -245,7 +245,7 @@
         mSession = win.mSession;
         mAttrType = win.mAttrs.type;
         mIsWallpaper = win.mIsWallpaper;
-        mWallpaperControllerLocked = mService.mRoot.mWallpaperController;
+        mWallpaperControllerLocked = win.getDisplayContent().mWallpaperController;
     }
 
     void cancelExitAnimationForNextAnimationLocked() {
@@ -861,7 +861,7 @@
         // to find the surface size changed underneath it.
         final boolean relayout = !w.mRelayoutCalled || w.mInRelayout;
         if (relayout) {
-            mSurfaceResized = mSurfaceController.setSizeInTransaction(
+            mSurfaceResized = mSurfaceController.setBufferSizeInTransaction(
                     mTmpSize.width(), mTmpSize.height(), recoveringMemory);
         } else {
             mSurfaceResized = false;
@@ -1020,7 +1020,7 @@
                         mTmpPos.x = 0;
                         mTmpPos.y = 0;
                         if (stack != null) {
-                            stack.getRelativePosition(mTmpPos);
+                            stack.getRelativeDisplayedPosition(mTmpPos);
                         }
 
                         xOffset = -mTmpPos.x;
@@ -1343,7 +1343,7 @@
         // is running.
         Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "WSA#applyAnimationLocked");
         if (mWin.mToken.okToAnimate()) {
-            int anim = mPolicy.selectAnimationLw(mWin, transit);
+            int anim = mWin.getDisplayContent().getDisplayPolicy().selectAnimationLw(mWin, transit);
             int attr = -1;
             Animation a = null;
             if (anim != 0) {
diff --git a/services/core/java/com/android/server/wm/WindowSurfaceController.java b/services/core/java/com/android/server/wm/WindowSurfaceController.java
index 6821e94..ce627e2 100644
--- a/services/core/java/com/android/server/wm/WindowSurfaceController.java
+++ b/services/core/java/com/android/server/wm/WindowSurfaceController.java
@@ -19,34 +19,28 @@
 import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
 import static android.view.Surface.SCALING_MODE_SCALE_TO_WINDOW;
 
+import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_VISIBILITY;
+import static com.android.server.wm.WindowManagerDebugConfig.SHOW_LIGHT_TRANSACTIONS;
 import static com.android.server.wm.WindowManagerDebugConfig.SHOW_SURFACE_ALLOC;
 import static com.android.server.wm.WindowManagerDebugConfig.SHOW_TRANSACTIONS;
-import static com.android.server.wm.WindowManagerDebugConfig.SHOW_LIGHT_TRANSACTIONS;
-import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_VISIBILITY;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 import static com.android.server.wm.WindowSurfaceControllerProto.LAYER;
 import static com.android.server.wm.WindowSurfaceControllerProto.SHOWN;
 
-import android.graphics.Point;
-import android.graphics.PointF;
 import android.graphics.Rect;
 import android.graphics.Region;
-import android.os.IBinder;
 import android.os.Debug;
+import android.os.IBinder;
 import android.os.Trace;
+import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
 import android.view.Surface;
 import android.view.SurfaceControl;
 import android.view.SurfaceSession;
 import android.view.WindowContentFrameStats;
-import android.view.Surface.OutOfResourcesException;
 
-import android.util.Slog;
-
-import java.io.FileDescriptor;
 import java.io.PrintWriter;
-import java.util.ArrayList;
 
 class WindowSurfaceController {
     static final String TAG = TAG_WITH_CLASS_NAME ? "WindowSurfaceController" : TAG_WM;
@@ -106,7 +100,7 @@
         final SurfaceControl.Builder b = win.makeSurface()
                 .setParent(win.getSurfaceControl())
                 .setName(name)
-                .setSize(w, h)
+                .setBufferSize(w, h)
                 .setFormat(format)
                 .setFlags(flags)
                 .setMetadata(windowType, ownerUid);
@@ -303,7 +297,7 @@
         }
     }
 
-    boolean setSizeInTransaction(int width, int height, boolean recoveringMemory) {
+    boolean setBufferSizeInTransaction(int width, int height, boolean recoveringMemory) {
         final boolean surfaceResized = mSurfaceW != width || mSurfaceH != height;
         if (surfaceResized) {
             mSurfaceW = width;
@@ -312,7 +306,7 @@
             try {
                 if (SHOW_TRANSACTIONS) logSurface(
                         "SIZE " + width + "x" + height, null);
-                mSurfaceControl.setSize(width, height);
+                mSurfaceControl.setBufferSize(width, height);
             } catch (RuntimeException e) {
                 // If something goes wrong with the surface (such
                 // as running out of memory), don't take down the
diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
index 7d25b8c..2ee58fe 100644
--- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
+++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
@@ -38,7 +38,6 @@
 class WindowSurfacePlacer {
     private static final String TAG = TAG_WITH_CLASS_NAME ? "WindowSurfacePlacer" : TAG_WM;
     private final WindowManagerService mService;
-    private final WallpaperController mWallpaperControllerLocked;
 
     private boolean mInLayout = false;
 
@@ -46,7 +45,6 @@
     private int mLayoutRepeatCount;
 
     static final int SET_UPDATE_ROTATION                = 1 << 0;
-    static final int SET_WALLPAPER_MAY_CHANGE           = 1 << 1;
     static final int SET_ORIENTATION_CHANGE_COMPLETE    = 1 << 2;
     static final int SET_WALLPAPER_ACTION_PENDING       = 1 << 3;
 
@@ -59,7 +57,6 @@
 
     public WindowSurfacePlacer(WindowManagerService service) {
         mService = service;
-        mWallpaperControllerLocked = mService.mRoot.mWallpaperController;
         mPerformSurfacePlacement = () -> {
             synchronized (mService.mGlobalLock) {
                 performSurfacePlacement();
@@ -116,7 +113,9 @@
             return;
         }
 
-        if (mService.mWaitingForConfig) {
+        // TODO(multi-display):
+        final DisplayContent defaultDisplay = mService.getDefaultDisplayContentLocked();
+        if (defaultDisplay.mWaitingForConfig) {
             // Our configuration has changed (most likely rotation), but we
             // don't yet have the complete configuration to report to
             // applications.  Don't do any window layout until we have it.
diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java
index 0cf79b6..9c13782 100644
--- a/services/core/java/com/android/server/wm/WindowToken.java
+++ b/services/core/java/com/android/server/wm/WindowToken.java
@@ -172,8 +172,8 @@
         setHidden(true);
 
         if (changed) {
-            mService.mWindowPlacerLocked.performSurfacePlacement();
-            mService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, false /*updateInputWindows*/);
+            mWmService.mWindowPlacerLocked.performSurfacePlacement();
+            mWmService.updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, false /*updateInputWindows*/);
         }
 
         if (delayed) {
@@ -202,7 +202,7 @@
         if (!mChildren.contains(win)) {
             if (DEBUG_ADD_REMOVE) Slog.v(TAG_WM, "Adding " + win + " to " + this);
             addChild(win, mWindowComparator);
-            mService.mWindowsChanged = true;
+            mWmService.mWindowsChanged = true;
             // TODO: Should we also be setting layout needed here and other places?
         }
     }
@@ -265,7 +265,6 @@
         // to another display before the window behind
         // it is ready.
 
-        updateSurfaceSize(dc);
         super.onDisplayChanged(dc);
     }
 
@@ -327,9 +326,9 @@
      * system bars, or in other words extend outside of the "Decor Frame"
      */
     boolean canLayerAboveSystemBars() {
-        int layer = mService.mPolicy.getWindowLayerFromTypeLw(windowType,
+        int layer = mWmService.mPolicy.getWindowLayerFromTypeLw(windowType,
                 mOwnerCanManageAppTokens);
-        int navLayer = mService.mPolicy.getWindowLayerFromTypeLw(TYPE_NAVIGATION_BAR,
+        int navLayer = mWmService.mPolicy.getWindowLayerFromTypeLw(TYPE_NAVIGATION_BAR,
                 mOwnerCanManageAppTokens);
         return mOwnerCanManageAppTokens && (layer > navLayer);
     }
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
index 04a526f..b85489a 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -2,8 +2,6 @@
     name: "libservices.core",
     defaults: ["libservices.core-libs"],
 
-    cpp_std: "c++17",
-
     cflags: [
         "-Wall",
         "-Werror",
@@ -83,6 +81,7 @@
         "libui",
         "libinput",
         "libinputflinger",
+        "libinputflinger_base",
         "libinputservice",
         "libschedulerservicehidl",
         "libsensorservice",
@@ -107,6 +106,7 @@
         "android.hardware.contexthub@1.0",
         "android.hardware.gnss@1.0",
         "android.hardware.gnss@1.1",
+        "android.hardware.gnss@2.0",
         "android.hardware.ir@1.0",
         "android.hardware.light@2.0",
         "android.hardware.power@1.0",
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
index e2db807..43d2dcf 100644
--- a/services/core/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/core/jni/com_android_server_input_InputManagerService.cpp
@@ -32,6 +32,7 @@
 #include <atomic>
 #include <cinttypes>
 #include <limits.h>
+#include <android-base/parseint.h>
 #include <android-base/stringprintf.h>
 #include <android_runtime/AndroidRuntime.h>
 #include <android_runtime/Log.h>
@@ -71,6 +72,7 @@
 
 #define INDENT "  "
 
+using android::base::ParseUint;
 using android::base::StringPrintf;
 
 namespace android {
@@ -81,11 +83,13 @@
 static const float POINTER_SPEED_EXPONENT = 1.0f / 4;
 
 static struct {
+    jclass clazz;
     jmethodID notifyConfigurationChanged;
     jmethodID notifyInputDevicesChanged;
     jmethodID notifySwitch;
     jmethodID notifyInputChannelBroken;
     jmethodID notifyANR;
+    jmethodID notifyFocusChanged;
     jmethodID filterInputEvent;
     jmethodID interceptKeyBeforeQueueing;
     jmethodID interceptMotionBeforeQueueingNonInteractive;
@@ -94,6 +98,7 @@
     jmethodID checkInjectEventsPermission;
     jmethodID getVirtualKeyQuietTimeMillis;
     jmethodID getExcludedDeviceNames;
+    jmethodID getInputPortAssociations;
     jmethodID getKeyRepeatTimeout;
     jmethodID getKeyRepeatDelay;
     jmethodID getHoverTapTimeout;
@@ -147,15 +152,6 @@
     return value ? "true" : "false";
 }
 
-static jobject getInputApplicationHandleObjLocalRef(JNIEnv* env,
-        const sp<InputApplicationHandle>& inputApplicationHandle) {
-    if (inputApplicationHandle == nullptr) {
-        return nullptr;
-    }
-    return static_cast<NativeInputApplicationHandle*>(inputApplicationHandle.get())->
-            getInputApplicationHandleObjLocalRef(env);
-}
-
 static void loadSystemIconAsSpriteWithPointerIcon(JNIEnv* env, jobject contextObj, int32_t style,
         PointerIcon* outPointerIcon, SpriteIcon* outSpriteIcon) {
     status_t status = android_view_PointerIcon_loadSystemIcon(env,
@@ -191,6 +187,13 @@
     WM_ACTION_PASS_TO_USER = 1,
 };
 
+static std::string getStringElementFromJavaArray(JNIEnv* env, jobjectArray array, jsize index) {
+    jstring item = jstring(env->GetObjectArrayElement(array, index));
+    ScopedUtfChars chars(env, item);
+    std::string result(chars.c_str());
+    return result;
+}
+
 
 // --- NativeInputManager ---
 
@@ -249,6 +252,7 @@
             const sp<IBinder>& token,
             const std::string& reason);
     virtual void notifyInputChannelBroken(const sp<IBinder>& token);
+    virtual void notifyFocusChanged(const sp<IBinder>& token);
     virtual bool filterInputEvent(const InputEvent* inputEvent, uint32_t policyFlags);
     virtual void getDispatcherConfiguration(InputDispatcherConfiguration* outConfig);
     virtual void interceptKeyBeforeQueueing(const KeyEvent* keyEvent, uint32_t& policyFlags);
@@ -341,8 +345,9 @@
     }
     mInteractive = true;
 
-    sp<EventHub> eventHub = new EventHub();
-    mInputManager = new InputManager(eventHub, this, this);
+    mInputManager = new InputManager(this, this);
+    defaultServiceManager()->addService(String16("inputflinger"),
+            mInputManager, false);
 }
 
 NativeInputManager::~NativeInputManager() {
@@ -458,20 +463,44 @@
     }
 
     outConfig->excludedDeviceNames.clear();
-    jobjectArray excludedDeviceNames = jobjectArray(env->CallObjectMethod(mServiceObj,
-            gServiceClassInfo.getExcludedDeviceNames));
+    jobjectArray excludedDeviceNames = jobjectArray(env->CallStaticObjectMethod(
+            gServiceClassInfo.clazz, gServiceClassInfo.getExcludedDeviceNames));
     if (!checkAndClearExceptionFromCallback(env, "getExcludedDeviceNames") && excludedDeviceNames) {
         jsize length = env->GetArrayLength(excludedDeviceNames);
         for (jsize i = 0; i < length; i++) {
-            jstring item = jstring(env->GetObjectArrayElement(excludedDeviceNames, i));
-            const char* deviceNameChars = env->GetStringUTFChars(item, nullptr);
-            outConfig->excludedDeviceNames.push_back(deviceNameChars);
-            env->ReleaseStringUTFChars(item, deviceNameChars);
-            env->DeleteLocalRef(item);
+            std::string deviceName = getStringElementFromJavaArray(env, excludedDeviceNames, i);
+            outConfig->excludedDeviceNames.push_back(deviceName);
         }
         env->DeleteLocalRef(excludedDeviceNames);
     }
 
+    // Associations between input ports and display ports
+    // The java method packs the information in the following manner:
+    // Original data: [{'inputPort1': '1'}, {'inputPort2': '2'}]
+    // Received data: ['inputPort1', '1', 'inputPort2', '2']
+    // So we unpack accordingly here.
+    outConfig->portAssociations.clear();
+    jobjectArray portAssociations = jobjectArray(env->CallStaticObjectMethod(
+            gServiceClassInfo.clazz, gServiceClassInfo.getInputPortAssociations));
+    if (!checkAndClearExceptionFromCallback(env, "getInputPortAssociations") && portAssociations) {
+        jsize length = env->GetArrayLength(portAssociations);
+        for (jsize i = 0; i < length / 2; i++) {
+            std::string inputPort = getStringElementFromJavaArray(env, portAssociations, 2 * i);
+            std::string displayPortStr =
+                    getStringElementFromJavaArray(env, portAssociations, 2 * i + 1);
+            uint8_t displayPort;
+            // Should already have been validated earlier, but do it here for safety.
+            bool success = ParseUint(displayPortStr, &displayPort);
+            if (!success) {
+                ALOGE("Could not parse entry in port configuration file, received: %s",
+                    displayPortStr.c_str());
+                continue;
+            }
+            outConfig->portAssociations.insert({inputPort, displayPort});
+        }
+        env->DeleteLocalRef(portAssociations);
+    }
+
     jint hoverTapTimeout = env->CallIntMethod(mServiceObj,
             gServiceClassInfo.getHoverTapTimeout);
     if (!checkAndClearExceptionFromCallback(env, "getHoverTapTimeout")) {
@@ -657,13 +686,11 @@
 
     JNIEnv* env = jniEnv();
 
-    jobject inputApplicationHandleObj =
-            getInputApplicationHandleObjLocalRef(env, inputApplicationHandle);
     jobject tokenObj = javaObjectForIBinder(env, token);
     jstring reasonObj = env->NewStringUTF(reason.c_str());
 
     jlong newTimeout = env->CallLongMethod(mServiceObj,
-                gServiceClassInfo.notifyANR, inputApplicationHandleObj, tokenObj,
+                gServiceClassInfo.notifyANR, tokenObj,
                 reasonObj);
     if (checkAndClearExceptionFromCallback(env, "notifyANR")) {
         newTimeout = 0; // abort dispatch
@@ -672,7 +699,6 @@
     }
 
     env->DeleteLocalRef(reasonObj);
-    env->DeleteLocalRef(inputApplicationHandleObj);
     return newTimeout;
 }
 
@@ -692,6 +718,22 @@
     }
 }
 
+void NativeInputManager::notifyFocusChanged(const sp<IBinder>& token) {
+#if DEBUG_INPUT_DISPATCHER_POLICY
+    ALOGD("notifyFocusChanged");
+#endif
+    ATRACE_CALL();
+
+    JNIEnv* env = jniEnv();
+
+    jobject tokenObj = javaObjectForIBinder(env, token);
+    if (tokenObj) {
+        env->CallVoidMethod(mServiceObj, gServiceClassInfo.notifyFocusChanged,
+                tokenObj);
+        checkAndClearExceptionFromCallback(env, "notifyFocusChanged");
+    }
+}
+
 void NativeInputManager::getDispatcherConfiguration(InputDispatcherConfiguration* outConfig) {
     ATRACE_CALL();
     JNIEnv* env = jniEnv();
@@ -1690,6 +1732,10 @@
         var = env->GetMethodID(clazz, methodName, methodDescriptor); \
         LOG_FATAL_IF(! (var), "Unable to find method " methodName);
 
+#define GET_STATIC_METHOD_ID(var, clazz, methodName, methodDescriptor) \
+        var = env->GetStaticMethodID(clazz, methodName, methodDescriptor); \
+        LOG_FATAL_IF(! (var), "Unable to find static method " methodName);
+
 #define GET_FIELD_ID(var, clazz, fieldName, fieldDescriptor) \
         var = env->GetFieldID(clazz, fieldName, fieldDescriptor); \
         LOG_FATAL_IF(! (var), "Unable to find field " fieldName);
@@ -1704,6 +1750,7 @@
 
     jclass clazz;
     FIND_CLASS(clazz, "com/android/server/input/InputManagerService");
+    gServiceClassInfo.clazz = reinterpret_cast<jclass>(env->NewGlobalRef(clazz));
 
     GET_METHOD_ID(gServiceClassInfo.notifyConfigurationChanged, clazz,
             "notifyConfigurationChanged", "(J)V");
@@ -1716,10 +1763,13 @@
 
     GET_METHOD_ID(gServiceClassInfo.notifyInputChannelBroken, clazz,
             "notifyInputChannelBroken", "(Landroid/os/IBinder;)V");
+    
+    GET_METHOD_ID(gServiceClassInfo.notifyFocusChanged, clazz,
+            "notifyFocusChanged", "(Landroid/os/IBinder;)V");
 
     GET_METHOD_ID(gServiceClassInfo.notifyANR, clazz,
             "notifyANR",
-            "(Landroid/view/InputApplicationHandle;Landroid/os/IBinder;Ljava/lang/String;)J");
+            "(Landroid/os/IBinder;Ljava/lang/String;)J");
 
     GET_METHOD_ID(gServiceClassInfo.filterInputEvent, clazz,
             "filterInputEvent", "(Landroid/view/InputEvent;I)Z");
@@ -1744,9 +1794,12 @@
     GET_METHOD_ID(gServiceClassInfo.getVirtualKeyQuietTimeMillis, clazz,
             "getVirtualKeyQuietTimeMillis", "()I");
 
-    GET_METHOD_ID(gServiceClassInfo.getExcludedDeviceNames, clazz,
+    GET_STATIC_METHOD_ID(gServiceClassInfo.getExcludedDeviceNames, clazz,
             "getExcludedDeviceNames", "()[Ljava/lang/String;");
 
+    GET_STATIC_METHOD_ID(gServiceClassInfo.getInputPortAssociations, clazz,
+            "getInputPortAssociations", "()[Ljava/lang/String;");
+
     GET_METHOD_ID(gServiceClassInfo.getKeyRepeatTimeout, clazz,
             "getKeyRepeatTimeout", "()I");
 
diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
index 9216005..4d0556c 100644
--- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
+++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
@@ -20,9 +20,11 @@
 
 #include <android/hardware/gnss/1.0/IGnss.h>
 #include <android/hardware/gnss/1.1/IGnss.h>
+#include <android/hardware/gnss/2.0/IGnss.h>
 
 #include <android/hardware/gnss/1.0/IGnssMeasurement.h>
 #include <android/hardware/gnss/1.1/IGnssMeasurement.h>
+#include <android/hardware/gnss/2.0/IGnssMeasurement.h>
 #include <nativehelper/JNIHelp.h>
 #include "jni.h"
 #include "hardware_legacy/power.h"
@@ -110,13 +112,15 @@
 
 using IGnss_V1_0 = android::hardware::gnss::V1_0::IGnss;
 using IGnss_V1_1 = android::hardware::gnss::V1_1::IGnss;
+using IGnss_V2_0 = android::hardware::gnss::V2_0::IGnss;
 using IGnssConfiguration_V1_0 = android::hardware::gnss::V1_0::IGnssConfiguration;
 using IGnssConfiguration_V1_1 = android::hardware::gnss::V1_1::IGnssConfiguration;
 using IGnssMeasurement_V1_0 = android::hardware::gnss::V1_0::IGnssMeasurement;
 using IGnssMeasurement_V1_1 = android::hardware::gnss::V1_1::IGnssMeasurement;
+using IGnssMeasurement_V2_0 = android::hardware::gnss::V2_0::IGnssMeasurement;
 using IGnssMeasurementCallback_V1_0 = android::hardware::gnss::V1_0::IGnssMeasurementCallback;
 using IGnssMeasurementCallback_V1_1 = android::hardware::gnss::V1_1::IGnssMeasurementCallback;
-
+using IGnssMeasurementCallback_V2_0 = android::hardware::gnss::V2_0::IGnssMeasurementCallback;
 
 struct GnssDeathRecipient : virtual public hidl_death_recipient
 {
@@ -135,6 +139,7 @@
 sp<GnssDeathRecipient> gnssHalDeathRecipient = nullptr;
 sp<IGnss_V1_0> gnssHal = nullptr;
 sp<IGnss_V1_1> gnssHal_V1_1 = nullptr;
+sp<IGnss_V2_0> gnssHal_V2_0 = nullptr;
 sp<IGnssXtra> gnssXtraIface = nullptr;
 sp<IAGnssRil> agnssRilIface = nullptr;
 sp<IGnssGeofencing> gnssGeofencingIface = nullptr;
@@ -146,6 +151,7 @@
 sp<IGnssNi> gnssNiIface = nullptr;
 sp<IGnssMeasurement_V1_0> gnssMeasurementIface = nullptr;
 sp<IGnssMeasurement_V1_1> gnssMeasurementIface_V1_1 = nullptr;
+sp<IGnssMeasurement_V2_0> gnssMeasurementIface_V2_0 = nullptr;
 sp<IGnssNavigationMessage> gnssNavigationMessageIface = nullptr;
 
 #define WAKE_LOCK_NAME  "GPS"
@@ -744,7 +750,9 @@
  * GnssMeasurementCallback implements the callback methods required for the
  * GnssMeasurement interface.
  */
-struct GnssMeasurementCallback : public IGnssMeasurementCallback_V1_1 {
+struct GnssMeasurementCallback : public IGnssMeasurementCallback_V2_0 {
+    Return<void> gnssMeasurementCb_2_0(const IGnssMeasurementCallback_V2_0::GnssData& data)
+            override;
     Return<void> gnssMeasurementCb(const IGnssMeasurementCallback_V1_1::GnssData& data) override;
     Return<void> GnssMeasurementCb(const IGnssMeasurementCallback_V1_0::GnssData& data) override;
  private:
@@ -761,6 +769,11 @@
     void setMeasurementData(JNIEnv* env, jobject clock, jobjectArray measurementArray);
 };
 
+Return<void> GnssMeasurementCallback::gnssMeasurementCb_2_0(
+        const IGnssMeasurementCallback_V2_0::GnssData& data) {
+    // TODO(b/119571122): implement gnssMeasurementCb_2_0
+    return Void();
+}
 
 Return<void> GnssMeasurementCallback::gnssMeasurementCb(
         const IGnssMeasurementCallback_V1_1::GnssData& data) {
@@ -1126,13 +1139,22 @@
 }
 
 static void android_location_GnssLocationProvider_class_init_native(JNIEnv* env, jclass clazz) {
-    gnssHal_V1_1 = IGnss_V1_1::getService();
-    if (gnssHal_V1_1 == nullptr) {
-        ALOGD("gnssHal 1.1 was null, trying 1.0");
-        gnssHal = IGnss_V1_0::getService();
-    } else {
-        gnssHal = gnssHal_V1_1;
+    gnssHal_V2_0 = IGnss_V2_0::getService();
+    if (gnssHal_V2_0 != nullptr) {
+        gnssHal = gnssHal_V2_0;
+        gnssHal_V1_1 = gnssHal_V2_0;
+        return;
     }
+
+    ALOGD("gnssHal 2.0 was null, trying 1.1");
+    gnssHal_V1_1 = IGnss_V1_1::getService();
+    if (gnssHal_V1_1 != nullptr) {
+        gnssHal = gnssHal_V1_1;
+        return;
+    }
+
+    ALOGD("gnssHal 1.1 was null, trying 1.0");
+    gnssHal = IGnss_V1_0::getService();
 }
 
 static void android_location_GnssLocationProvider_init_once(JNIEnv* env, jclass clazz) {
@@ -1187,110 +1209,120 @@
         LOG_ALWAYS_FATAL("Unable to get Java VM. Error: %d", jvmStatus);
     }
 
-    if (gnssHal != nullptr) {
-      gnssHalDeathRecipient = new GnssDeathRecipient();
-      hardware::Return<bool> linked = gnssHal->linkToDeath(
-          gnssHalDeathRecipient, /*cookie*/ 0);
-        if (!linked.isOk()) {
-            ALOGE("Transaction error in linking to GnssHAL death: %s",
-                    linked.description().c_str());
-        } else if (!linked) {
-            ALOGW("Unable to link to GnssHal death notifications");
-        } else {
-            ALOGD("Link to death notification successful");
-        }
+    if (gnssHal == nullptr) {
+        ALOGE("Unable to get GPS service\n");
+        return;
+    }
 
-        auto gnssXtra = gnssHal->getExtensionXtra();
-        if (!gnssXtra.isOk()) {
-            ALOGD("Unable to get a handle to Xtra");
-        } else {
-            gnssXtraIface = gnssXtra;
-        }
+    gnssHalDeathRecipient = new GnssDeathRecipient();
+    hardware::Return<bool> linked = gnssHal->linkToDeath(gnssHalDeathRecipient, /*cookie*/ 0);
+    if (!linked.isOk()) {
+        ALOGE("Transaction error in linking to GnssHAL death: %s",
+                linked.description().c_str());
+    } else if (!linked) {
+        ALOGW("Unable to link to GnssHal death notifications");
+    } else {
+        ALOGD("Link to death notification successful");
+    }
 
-        auto gnssRil = gnssHal->getExtensionAGnssRil();
-        if (!gnssRil.isOk()) {
-            ALOGD("Unable to get a handle to AGnssRil");
-        } else {
-            agnssRilIface = gnssRil;
-        }
+    auto gnssXtra = gnssHal->getExtensionXtra();
+    if (!gnssXtra.isOk()) {
+        ALOGD("Unable to get a handle to Xtra");
+    } else {
+        gnssXtraIface = gnssXtra;
+    }
 
-        auto gnssAgnss = gnssHal->getExtensionAGnss();
-        if (!gnssAgnss.isOk()) {
-            ALOGD("Unable to get a handle to AGnss");
-        } else {
-            agnssIface = gnssAgnss;
-        }
+    auto gnssRil = gnssHal->getExtensionAGnssRil();
+    if (!gnssRil.isOk()) {
+        ALOGD("Unable to get a handle to AGnssRil");
+    } else {
+        agnssRilIface = gnssRil;
+    }
 
-        auto gnssNavigationMessage = gnssHal->getExtensionGnssNavigationMessage();
-        if (!gnssNavigationMessage.isOk()) {
-            ALOGD("Unable to get a handle to GnssNavigationMessage");
-        } else {
-            gnssNavigationMessageIface = gnssNavigationMessage;
-        }
+    auto gnssAgnss = gnssHal->getExtensionAGnss();
+    if (!gnssAgnss.isOk()) {
+        ALOGD("Unable to get a handle to AGnss");
+    } else {
+        agnssIface = gnssAgnss;
+    }
 
-        if (gnssHal_V1_1 != nullptr) {
-             auto gnssMeasurement = gnssHal_V1_1->getExtensionGnssMeasurement_1_1();
-             if (!gnssMeasurement.isOk()) {
-                 ALOGD("Unable to get a handle to GnssMeasurement");
-             } else {
-                 gnssMeasurementIface_V1_1 = gnssMeasurement;
-                 gnssMeasurementIface = gnssMeasurementIface_V1_1;
-             }
-        } else {
-             auto gnssMeasurement_V1_0 = gnssHal->getExtensionGnssMeasurement();
-             if (!gnssMeasurement_V1_0.isOk()) {
-                 ALOGD("Unable to get a handle to GnssMeasurement");
-             } else {
-                 gnssMeasurementIface = gnssMeasurement_V1_0;
-             }
-        }
+    auto gnssNavigationMessage = gnssHal->getExtensionGnssNavigationMessage();
+    if (!gnssNavigationMessage.isOk()) {
+        ALOGD("Unable to get a handle to GnssNavigationMessage");
+    } else {
+        gnssNavigationMessageIface = gnssNavigationMessage;
+    }
 
-        auto gnssDebug = gnssHal->getExtensionGnssDebug();
-        if (!gnssDebug.isOk()) {
-            ALOGD("Unable to get a handle to GnssDebug");
+    if (gnssHal_V2_0 != nullptr) {
+        // TODO(b/119638366): getExtensionGnssMeasurement_1_1 from gnssHal_V2_0
+        auto gnssMeasurement = gnssHal_V2_0->getExtensionGnssMeasurement_2_0();
+        if (!gnssMeasurement.isOk()) {
+            ALOGD("Unable to get a handle to GnssMeasurement_V2_0");
         } else {
-            gnssDebugIface = gnssDebug;
+            gnssMeasurementIface_V2_0 = gnssMeasurement;
+            gnssMeasurementIface_V1_1 = gnssMeasurementIface_V2_0;
+            gnssMeasurementIface = gnssMeasurementIface_V2_0;
         }
+    } else if (gnssHal_V1_1 != nullptr) {
+         auto gnssMeasurement = gnssHal_V1_1->getExtensionGnssMeasurement_1_1();
+         if (!gnssMeasurement.isOk()) {
+             ALOGD("Unable to get a handle to GnssMeasurement_V1_1");
+         } else {
+             gnssMeasurementIface_V1_1 = gnssMeasurement;
+             gnssMeasurementIface = gnssMeasurementIface_V1_1;
+         }
+    } else {
+         auto gnssMeasurement_V1_0 = gnssHal->getExtensionGnssMeasurement();
+         if (!gnssMeasurement_V1_0.isOk()) {
+             ALOGD("Unable to get a handle to GnssMeasurement");
+         } else {
+             gnssMeasurementIface = gnssMeasurement_V1_0;
+         }
+    }
 
-        auto gnssNi = gnssHal->getExtensionGnssNi();
-        if (!gnssNi.isOk()) {
-            ALOGD("Unable to get a handle to GnssNi");
-        } else {
-            gnssNiIface = gnssNi;
-        }
+    auto gnssDebug = gnssHal->getExtensionGnssDebug();
+    if (!gnssDebug.isOk()) {
+        ALOGD("Unable to get a handle to GnssDebug");
+    } else {
+        gnssDebugIface = gnssDebug;
+    }
 
-        if (gnssHal_V1_1 != nullptr) {
-            auto gnssConfiguration = gnssHal_V1_1->getExtensionGnssConfiguration_1_1();
-            if (!gnssConfiguration.isOk()) {
-                ALOGD("Unable to get a handle to GnssConfiguration");
-            } else {
-                gnssConfigurationIface_V1_1 = gnssConfiguration;
-                gnssConfigurationIface = gnssConfigurationIface_V1_1;
-            }
-        } else {
-            auto gnssConfiguration_V1_0 = gnssHal->getExtensionGnssConfiguration();
-            if (!gnssConfiguration_V1_0.isOk()) {
-                ALOGD("Unable to get a handle to GnssConfiguration");
-            } else {
-                gnssConfigurationIface = gnssConfiguration_V1_0;
-            }
-        }
+    auto gnssNi = gnssHal->getExtensionGnssNi();
+    if (!gnssNi.isOk()) {
+        ALOGD("Unable to get a handle to GnssNi");
+    } else {
+        gnssNiIface = gnssNi;
+    }
 
-        auto gnssGeofencing = gnssHal->getExtensionGnssGeofencing();
-        if (!gnssGeofencing.isOk()) {
-            ALOGD("Unable to get a handle to GnssGeofencing");
+    if (gnssHal_V1_1 != nullptr) {
+        auto gnssConfiguration = gnssHal_V1_1->getExtensionGnssConfiguration_1_1();
+        if (!gnssConfiguration.isOk()) {
+            ALOGD("Unable to get a handle to GnssConfiguration");
         } else {
-            gnssGeofencingIface = gnssGeofencing;
-        }
-
-        auto gnssBatching = gnssHal->getExtensionGnssBatching();
-        if (!gnssBatching.isOk()) {
-            ALOGD("Unable to get a handle to gnssBatching");
-        } else {
-            gnssBatchingIface = gnssBatching;
+            gnssConfigurationIface_V1_1 = gnssConfiguration;
+            gnssConfigurationIface = gnssConfigurationIface_V1_1;
         }
     } else {
-      ALOGE("Unable to get GPS service\n");
+        auto gnssConfiguration_V1_0 = gnssHal->getExtensionGnssConfiguration();
+        if (!gnssConfiguration_V1_0.isOk()) {
+            ALOGD("Unable to get a handle to GnssConfiguration");
+        } else {
+            gnssConfigurationIface = gnssConfiguration_V1_0;
+        }
+    }
+
+    auto gnssGeofencing = gnssHal->getExtensionGnssGeofencing();
+    if (!gnssGeofencing.isOk()) {
+        ALOGD("Unable to get a handle to GnssGeofencing");
+    } else {
+        gnssGeofencingIface = gnssGeofencing;
+    }
+
+    auto gnssBatching = gnssHal->getExtensionGnssBatching();
+    if (!gnssBatching.isOk()) {
+        ALOGD("Unable to get a handle to gnssBatching");
+    } else {
+        gnssBatchingIface = gnssBatching;
     }
 }
 
@@ -1820,10 +1852,11 @@
 
     sp<GnssMeasurementCallback> cbIface = new GnssMeasurementCallback();
     IGnssMeasurement_V1_0::GnssMeasurementStatus result =
-                    IGnssMeasurement_V1_0::GnssMeasurementStatus::ERROR_GENERIC;;
-    if (gnssMeasurementIface_V1_1 != nullptr) {
-         result = gnssMeasurementIface_V1_1->setCallback_1_1(cbIface,
-                        enableFullTracking);
+            IGnssMeasurement_V1_0::GnssMeasurementStatus::ERROR_GENERIC;
+    if (gnssMeasurementIface_V2_0 != nullptr) {
+        result = gnssMeasurementIface_V2_0->setCallback_2_0(cbIface, enableFullTracking);
+    } else if (gnssMeasurementIface_V1_1 != nullptr) {
+        result = gnssMeasurementIface_V1_1->setCallback_1_1(cbIface, enableFullTracking);
     } else {
         if (enableFullTracking == JNI_TRUE) {
             // full tracking mode not supported in 1.0 HAL
@@ -1837,7 +1870,7 @@
               static_cast<int32_t>(result));
         return JNI_FALSE;
     } else {
-      ALOGD("gnss measurement infc has been enabled");
+        ALOGD("gnss measurement infc has been enabled");
     }
 
     return JNI_TRUE;
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/AbUpdateInstaller.java b/services/devicepolicy/java/com/android/server/devicepolicy/AbUpdateInstaller.java
new file mode 100644
index 0000000..05912a5
--- /dev/null
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/AbUpdateInstaller.java
@@ -0,0 +1,268 @@
+/*
+ * 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.server.devicepolicy;
+
+import android.app.admin.DevicePolicyManager.InstallUpdateCallback;
+import android.app.admin.StartInstallingUpdateCallback;
+import android.content.Context;
+import android.os.ParcelFileDescriptor;
+import android.os.UpdateEngine;
+import android.os.UpdateEngineCallback;
+import android.util.Log;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipException;
+import java.util.zip.ZipFile;
+
+/**
+ * Used for installing an update on <a href="https://source.android.com/devices/tech/ota/ab">AB
+ * devices.</a>
+ * <p>This logic is specific to GOTA and should be modified by OEMs using a different AB update
+ * system.</p>
+ */
+class AbUpdateInstaller extends UpdateInstaller {
+    private static final String PAYLOAD_BIN = "payload.bin";
+    private static final String PAYLOAD_PROPERTIES_TXT = "payload_properties.txt";
+    //https://en.wikipedia.org/wiki/Zip_(file_format)#Local_file_header
+    private static final int OFFSET_TO_FILE_NAME = 30;
+    // kDownloadStateInitializationError constant from system/update_engine/common/error_code.h.
+    private static final int DOWNLOAD_STATE_INITIALIZATION_ERROR = 20;
+    private long mSizeForUpdate;
+    private long mOffsetForUpdate;
+    private List<String> mProperties;
+    private Enumeration<? extends ZipEntry> mEntries;
+    private ZipFile mPackedUpdateFile;
+    private static final Map<Integer, Integer> errorCodesMap = buildErrorCodesMap();
+    private static final Map<Integer, String> errorStringsMap = buildErrorStringsMap();
+    public static final String UNKNOWN_ERROR = "Unknown error with error code = ";
+    private boolean mUpdateInstalled;
+
+    private static Map<Integer, Integer> buildErrorCodesMap() {
+        Map<Integer, Integer> map = new HashMap<>();
+        map.put(UpdateEngine.ErrorCodeConstants.ERROR, InstallUpdateCallback.UPDATE_ERROR_UNKNOWN);
+        map.put(
+                DOWNLOAD_STATE_INITIALIZATION_ERROR,
+                InstallUpdateCallback.UPDATE_ERROR_INCORRECT_OS_VERSION);
+
+        // Error constants corresponding to errors related to bad update file.
+        map.put(
+                UpdateEngine.ErrorCodeConstants.DOWNLOAD_PAYLOAD_VERIFICATION_ERROR,
+                InstallUpdateCallback.UPDATE_ERROR_UPDATE_FILE_INVALID);
+        map.put(
+                UpdateEngine.ErrorCodeConstants.PAYLOAD_SIZE_MISMATCH_ERROR,
+                InstallUpdateCallback.UPDATE_ERROR_UPDATE_FILE_INVALID);
+        map.put(
+                UpdateEngine.ErrorCodeConstants.PAYLOAD_MISMATCHED_TYPE_ERROR,
+                InstallUpdateCallback.UPDATE_ERROR_UPDATE_FILE_INVALID);
+        map.put(
+                UpdateEngine.ErrorCodeConstants.PAYLOAD_HASH_MISMATCH_ERROR,
+                InstallUpdateCallback.UPDATE_ERROR_UPDATE_FILE_INVALID);
+
+        // Error constants corresponding to errors related to devices bad state.
+        map.put(
+                UpdateEngine.ErrorCodeConstants.POST_INSTALL_RUNNER_ERROR,
+                InstallUpdateCallback.UPDATE_ERROR_UNKNOWN);
+        map.put(
+                UpdateEngine.ErrorCodeConstants.INSTALL_DEVICE_OPEN_ERROR,
+                InstallUpdateCallback.UPDATE_ERROR_UNKNOWN);
+        map.put(
+                UpdateEngine.ErrorCodeConstants.DOWNLOAD_TRANSFER_ERROR,
+                InstallUpdateCallback.UPDATE_ERROR_UNKNOWN);
+        map.put(
+                UpdateEngine.ErrorCodeConstants.UPDATED_BUT_NOT_ACTIVE,
+                InstallUpdateCallback.UPDATE_ERROR_UNKNOWN);
+
+        return map;
+    }
+
+    private static Map<Integer, String> buildErrorStringsMap() {
+        Map<Integer, String> map = new HashMap<>();
+        map.put(UpdateEngine.ErrorCodeConstants.ERROR, UNKNOWN_ERROR);
+        map.put(
+                DOWNLOAD_STATE_INITIALIZATION_ERROR,
+                "The delta update payload was targeted for another version or the source partition"
+                        + "was modified after it was installed");
+        map.put(
+                UpdateEngine.ErrorCodeConstants.POST_INSTALL_RUNNER_ERROR,
+                "Failed to finish the configured postinstall works.");
+        map.put(
+                UpdateEngine.ErrorCodeConstants.INSTALL_DEVICE_OPEN_ERROR,
+                "Failed to open one of the partitions it tried to write to or read data from.");
+        map.put(
+                UpdateEngine.ErrorCodeConstants.PAYLOAD_MISMATCHED_TYPE_ERROR,
+                "Payload mismatch error.");
+        map.put(
+                UpdateEngine.ErrorCodeConstants.DOWNLOAD_TRANSFER_ERROR,
+                "Failed to read the payload data from the given URL.");
+        map.put(
+                UpdateEngine.ErrorCodeConstants.PAYLOAD_HASH_MISMATCH_ERROR, "Payload hash error.");
+        map.put(
+                UpdateEngine.ErrorCodeConstants.PAYLOAD_SIZE_MISMATCH_ERROR,
+                "Payload size mismatch error.");
+        map.put(
+                UpdateEngine.ErrorCodeConstants.DOWNLOAD_PAYLOAD_VERIFICATION_ERROR,
+                "Failed to verify the signature of the payload.");
+        map.put(
+                UpdateEngine.ErrorCodeConstants.UPDATED_BUT_NOT_ACTIVE,
+                "The payload has been successfully installed,"
+                        + "but the active slot was not flipped.");
+        return map;
+    }
+
+    AbUpdateInstaller(Context context, ParcelFileDescriptor updateFileDescriptor,
+            StartInstallingUpdateCallback callback, DevicePolicyManagerService.Injector injector,
+            DevicePolicyConstants constants) {
+        super(context, updateFileDescriptor, callback, injector, constants);
+        mUpdateInstalled = false;
+    }
+
+    @Override
+    public void installUpdateInThread() {
+        if (mUpdateInstalled) {
+            throw new IllegalStateException("installUpdateInThread can be called only once.");
+        }
+        try {
+            setState();
+            applyPayload(Paths.get(mCopiedUpdateFile.getAbsolutePath()).toUri().toString());
+        } catch (ZipException e) {
+            Log.w(UpdateInstaller.TAG, e);
+            notifyCallbackOnError(
+                    InstallUpdateCallback.UPDATE_ERROR_UPDATE_FILE_INVALID,
+                    Log.getStackTraceString(e));
+        } catch (IOException e) {
+            Log.w(UpdateInstaller.TAG, e);
+            notifyCallbackOnError(
+                    InstallUpdateCallback.UPDATE_ERROR_UNKNOWN, Log.getStackTraceString(e));
+        }
+    }
+
+    private void setState() throws IOException {
+        mUpdateInstalled = true;
+        mPackedUpdateFile = new ZipFile(mCopiedUpdateFile);
+        mProperties = new ArrayList<>();
+        mSizeForUpdate = -1;
+        mOffsetForUpdate = 0;
+        mEntries = mPackedUpdateFile.entries();
+    }
+
+    private UpdateEngine buildBoundUpdateEngine() {
+        UpdateEngine updateEngine = new UpdateEngine();
+        updateEngine.bind(new DelegatingUpdateEngineCallback(this, updateEngine));
+        return updateEngine;
+    }
+
+    private void applyPayload(String updatePath) throws IOException {
+        if (!updateStateForPayload()) {
+            return;
+        }
+        String[] headerKeyValuePairs = mProperties.stream().toArray(String[]::new);
+        if (mSizeForUpdate == -1) {
+            Log.w(UpdateInstaller.TAG, "Failed to find payload entry in the given package.");
+            notifyCallbackOnError(
+                    InstallUpdateCallback.UPDATE_ERROR_UPDATE_FILE_INVALID,
+                    "Failed to find payload entry in the given package.");
+            return;
+        }
+
+        UpdateEngine updateEngine = buildBoundUpdateEngine();
+        updateEngine.applyPayload(
+                updatePath, mOffsetForUpdate, mSizeForUpdate, headerKeyValuePairs);
+    }
+
+    private boolean updateStateForPayload() throws IOException {
+        long offset = 0;
+        while (mEntries.hasMoreElements()) {
+            ZipEntry entry = mEntries.nextElement();
+
+            String name = entry.getName();
+            offset += buildOffsetForEntry(entry, name);
+            if (entry.isDirectory()) {
+                offset -= entry.getCompressedSize();
+                continue;
+            }
+            if (PAYLOAD_BIN.equals(name)) {
+                if (entry.getMethod() != ZipEntry.STORED) {
+                    Log.w(UpdateInstaller.TAG, "Invalid compression method.");
+                    notifyCallbackOnError(
+                            InstallUpdateCallback.UPDATE_ERROR_UPDATE_FILE_INVALID,
+                            "Invalid compression method.");
+                    return false;
+                }
+                mSizeForUpdate = entry.getCompressedSize();
+                mOffsetForUpdate = offset - entry.getCompressedSize();
+            } else if (PAYLOAD_PROPERTIES_TXT.equals(name)) {
+                updatePropertiesForEntry(entry);
+            }
+        }
+        return true;
+    }
+
+    private long buildOffsetForEntry(ZipEntry entry, String name) {
+        return OFFSET_TO_FILE_NAME + name.length() + entry.getCompressedSize()
+                + (entry.getExtra() == null ? 0 : entry.getExtra().length);
+    }
+
+    private void updatePropertiesForEntry(ZipEntry entry) throws IOException {
+        try (BufferedReader bufferedReader = new BufferedReader(
+                new InputStreamReader(mPackedUpdateFile.getInputStream(entry)))) {
+            String line;
+            /* Neither @line nor @mProperties are size constraint since there is a few properties
+            with limited size. */
+            while ((line = bufferedReader.readLine()) != null) {
+                mProperties.add(line);
+            }
+        }
+    }
+
+    private static class DelegatingUpdateEngineCallback extends UpdateEngineCallback {
+        private UpdateInstaller mUpdateInstaller;
+        private UpdateEngine mUpdateEngine;
+
+        DelegatingUpdateEngineCallback(
+                UpdateInstaller updateInstaller, UpdateEngine updateEngine) {
+            mUpdateInstaller = updateInstaller;
+            mUpdateEngine = updateEngine;
+        }
+
+        @Override
+        public void onStatusUpdate(int statusCode, float percentage) {
+            return;
+        }
+
+        @Override
+        public void onPayloadApplicationComplete(int errorCode) {
+            mUpdateEngine.unbind();
+            if (errorCode == UpdateEngine.ErrorCodeConstants.SUCCESS) {
+                mUpdateInstaller.notifyCallbackOnSuccess();
+            } else {
+                mUpdateInstaller.notifyCallbackOnError(
+                        errorCodesMap.getOrDefault(
+                                errorCode, InstallUpdateCallback.UPDATE_ERROR_UNKNOWN),
+                        errorStringsMap.getOrDefault(errorCode, UNKNOWN_ERROR + errorCode));
+            }
+        }
+    }
+}
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java b/services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java
index 2dbbf55..b9dabb9 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java
@@ -17,10 +17,15 @@
 
 import android.app.admin.DevicePolicyManager;
 import android.app.admin.IDevicePolicyManager;
+import android.app.admin.StartInstallingUpdateCallback;
 import android.content.ComponentName;
+import android.os.ParcelFileDescriptor;
 
 import com.android.server.SystemService;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * Defines the required interface for IDevicePolicyManager implemenation.
  *
@@ -88,4 +93,31 @@
     public String getGlobalPrivateDnsHost(ComponentName who) {
         return null;
     }
+
+    @Override
+    public void grantDeviceIdsAccessToProfileOwner(ComponentName who, int userId) { }
+
+    @Override
+    public void installUpdateFromFile(ComponentName admin,
+            ParcelFileDescriptor updateFileDescriptor, StartInstallingUpdateCallback listener) {}
+
+    @Override
+    public void addCrossProfileCalendarPackage(ComponentName admin, String packageName) {
+    }
+
+    @Override
+    public boolean removeCrossProfileCalendarPackage(ComponentName admin, String packageName) {
+        return false;
+    }
+
+    @Override
+    public List<String> getCrossProfileCalendarPackages(ComponentName admin) {
+        return Collections.emptyList();
+    }
+
+    @Override
+    public boolean isPackageAllowedToAccessCalendarForUser(String packageName,
+            int userHandle) {
+        return false;
+    }
 }
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyConstants.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyConstants.java
index 71fea02..fd59b43 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyConstants.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyConstants.java
@@ -42,6 +42,12 @@
     private static final String DAS_DIED_SERVICE_STABLE_CONNECTION_THRESHOLD_SEC_KEY =
             "das_died_service_stable_connection_threshold_sec";
 
+    private static final String BATTERY_THRESHOLD_NOT_CHARGING_KEY =
+            "battery_threshold_not_charging";
+
+    private static final String BATTERY_THRESHOLD_CHARGING_KEY =
+            "battery_threshold_charging";
+
     /**
      * The back-off before re-connecting, when a service binding died, due to the owner
      * crashing repeatedly.
@@ -63,6 +69,17 @@
      */
     public final long DAS_DIED_SERVICE_STABLE_CONNECTION_THRESHOLD_SEC;
 
+    /**
+     * Battery threshold for installing system update while the device is not charging.
+     */
+    public final int BATTERY_THRESHOLD_NOT_CHARGING;
+
+    /**
+     * Battery threshold for installing system update while the device is charging.
+     */
+    public final int BATTERY_THRESHOLD_CHARGING;
+
+
     private DevicePolicyConstants(String settings) {
 
         final KeyValueListParser parser = new KeyValueListParser(',');
@@ -87,6 +104,12 @@
                 DAS_DIED_SERVICE_STABLE_CONNECTION_THRESHOLD_SEC_KEY,
                 TimeUnit.MINUTES.toSeconds(2));
 
+        int batteryThresholdNotCharging = parser.getInt(
+                BATTERY_THRESHOLD_NOT_CHARGING_KEY, 40);
+
+        int batteryThresholdCharging = parser.getInt(
+                BATTERY_THRESHOLD_CHARGING_KEY, 20);
+
         // Set minimum: 5 seconds.
         dasDiedServiceReconnectBackoffSec = Math.max(5, dasDiedServiceReconnectBackoffSec);
 
@@ -103,6 +126,8 @@
         DAS_DIED_SERVICE_RECONNECT_MAX_BACKOFF_SEC = dasDiedServiceReconnectMaxBackoffSec;
         DAS_DIED_SERVICE_STABLE_CONNECTION_THRESHOLD_SEC =
                 dasDiedServiceStableConnectionThresholdSec;
+        BATTERY_THRESHOLD_NOT_CHARGING = batteryThresholdNotCharging;
+        BATTERY_THRESHOLD_CHARGING = batteryThresholdCharging;
     }
 
     public static DevicePolicyConstants loadFromString(String settings) {
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index a7542d7..6fbb850 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -55,16 +55,15 @@
 import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_OVERVIEW;
 import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
 import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-import static android.app.admin.DevicePolicyManager.PRIVATE_DNS_MODE_UNKNOWN;
 import static android.app.admin.DevicePolicyManager.PRIVATE_DNS_MODE_OFF;
 import static android.app.admin.DevicePolicyManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
 import static android.app.admin.DevicePolicyManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
+import static android.app.admin.DevicePolicyManager.PRIVATE_DNS_MODE_UNKNOWN;
 import static android.app.admin.DevicePolicyManager.PROFILE_KEYGUARD_FEATURES_AFFECT_OWNER;
 import static android.app.admin.DevicePolicyManager.WIPE_EUICC;
 import static android.app.admin.DevicePolicyManager.WIPE_EXTERNAL_STORAGE;
 import static android.app.admin.DevicePolicyManager.WIPE_RESET_PROTECTION_DATA;
 import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES;
-
 import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
 import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER;
 import static android.provider.Telephony.Carriers.DPC_URI;
@@ -75,11 +74,10 @@
         .PROVISIONING_ENTRY_POINT_ADB;
 import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker
         .STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW;
-
-import static com.android.server.devicepolicy.TransferOwnershipMetadataManager.ADMIN_TYPE_DEVICE_OWNER;
-import static com.android.server.devicepolicy.TransferOwnershipMetadataManager.ADMIN_TYPE_PROFILE_OWNER;
-
-
+import static com.android.server.devicepolicy.TransferOwnershipMetadataManager
+        .ADMIN_TYPE_DEVICE_OWNER;
+import static com.android.server.devicepolicy.TransferOwnershipMetadataManager
+        .ADMIN_TYPE_PROFILE_OWNER;
 import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME;
 
 import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
@@ -117,6 +115,7 @@
 import android.app.admin.PasswordMetrics;
 import android.app.admin.SecurityLog;
 import android.app.admin.SecurityLog.SecurityEvent;
+import android.app.admin.StartInstallingUpdateCallback;
 import android.app.admin.SystemUpdateInfo;
 import android.app.admin.SystemUpdatePolicy;
 import android.app.backup.IBackupManager;
@@ -228,19 +227,19 @@
 import com.android.internal.util.FunctionalUtils.ThrowingRunnable;
 import com.android.internal.util.JournaledFile;
 import com.android.internal.util.Preconditions;
+import com.android.internal.util.StatLogger;
 import com.android.internal.util.XmlUtils;
 import com.android.internal.widget.LockPatternUtils;
 import com.android.server.LocalServices;
 import com.android.server.LockGuard;
-import com.android.internal.util.StatLogger;
 import com.android.server.SystemServerInitThreadPool;
 import com.android.server.SystemService;
 import com.android.server.devicepolicy.DevicePolicyManagerService.ActiveAdmin.TrustAgentInfo;
 import com.android.server.net.NetworkPolicyManagerInternal;
 import com.android.server.pm.UserRestrictionsUtils;
 import com.android.server.storage.DeviceStorageMonitorInternal;
-
 import com.android.server.uri.UriGrantsManagerInternal;
+
 import com.google.android.collect.Sets;
 
 import org.xmlpull.v1.XmlPullParser;
@@ -267,7 +266,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -384,6 +382,8 @@
     private static final Set<String> GLOBAL_SETTINGS_DEPRECATED;
     private static final Set<String> SYSTEM_SETTINGS_WHITELIST;
     private static final Set<Integer> DA_DISALLOWED_POLICIES;
+    private static final String AB_DEVICE_KEY = "ro.build.ab_update";
+
     static {
         SECURE_SETTINGS_WHITELIST = new ArraySet<>();
         SECURE_SETTINGS_WHITELIST.add(Settings.Secure.DEFAULT_INPUT_METHOD);
@@ -910,8 +910,12 @@
         private static final String TAG_IS_LOGOUT_ENABLED = "is_logout_enabled";
         private static final String TAG_START_USER_SESSION_MESSAGE = "start_user_session_message";
         private static final String TAG_END_USER_SESSION_MESSAGE = "end_user_session_message";
-        private static final String TAG_METERED_DATA_DISABLED_PACKAGES
-                = "metered_data_disabled_packages";
+        private static final String TAG_METERED_DATA_DISABLED_PACKAGES =
+                "metered_data_disabled_packages";
+        private static final String TAG_CROSS_PROFILE_CALENDAR_PACKAGES =
+                "cross-profile-calendar-packages";
+        private static final String TAG_PACKAGE = "package";
+
 
         DeviceAdminInfo info;
 
@@ -1032,6 +1036,9 @@
         String startUserSessionMessage = null;
         String endUserSessionMessage = null;
 
+        // The whitelist of packages that can access cross profile calendar APIs.
+        final Set<String> mCrossProfileCalendarPackages = new ArraySet<>();
+
         ActiveAdmin(DeviceAdminInfo _info, boolean parent) {
             info = _info;
             isParent = parent;
@@ -1301,6 +1308,12 @@
                 out.text(endUserSessionMessage);
                 out.endTag(null, TAG_END_USER_SESSION_MESSAGE);
             }
+            if (!mCrossProfileCalendarPackages.isEmpty()) {
+                out.startTag(null, TAG_CROSS_PROFILE_CALENDAR_PACKAGES);
+                writeAttributeValuesToXml(
+                        out, TAG_PACKAGE, mCrossProfileCalendarPackages);
+                out.endTag(null, TAG_CROSS_PROFILE_CALENDAR_PACKAGES);
+            }
         }
 
         void writePackageListToXml(XmlSerializer out, String outerTag,
@@ -1493,6 +1506,9 @@
                     } else {
                         Log.w(LOG_TAG, "Missing text when loading end session message");
                     }
+                } else if (TAG_CROSS_PROFILE_CALENDAR_PACKAGES.equals(tag)) {
+                    readAttributeValues(
+                            parser, TAG_PACKAGE, mCrossProfileCalendarPackages);
                 } else {
                     Slog.w(LOG_TAG, "Unknown admin tag: " + tag);
                     XmlUtils.skipCurrentTag(parser);
@@ -1708,6 +1724,8 @@
                 pw.print(prefix);  pw.println("parentAdmin:");
                 parentAdmin.dump(prefix + "  ", pw);
             }
+            pw.print(prefix); pw.print("mCrossProfileCalendarPackages=");
+            pw.println(mCrossProfileCalendarPackages);
         }
     }
 
@@ -2701,7 +2719,7 @@
         final DevicePolicyData policy = getUserData(userId);
         ActiveAdmin admin = policy.mAdminMap.get(who);
         if (admin == null) {
-            throw new SecurityException("No active admin " + who);
+            throw new SecurityException("No active admin " + who + " for UID " + uid);
         }
         if (admin.getUid() != uid) {
             throw new SecurityException("Admin " + who + " is not owned by uid " + uid);
@@ -2709,6 +2727,16 @@
         return admin;
     }
 
+    /**
+     * Returns the active admin for the user of the caller as denoted by uid, which implements
+     * the {@code reqPolicy}.
+     *
+     * The {@code who} parameter is used as a hint:
+     * If provided, it must be the component name of the active admin for that user and the caller
+     * uid must match the uid of the admin.
+     * If not provided, iterate over all of the active admins in the DevicePolicyData for that user
+     * and return the one with the uid specified as parameter, and has the policy specified.
+     */
     private ActiveAdmin getActiveAdminWithPolicyForUidLocked(ComponentName who, int reqPolicy,
             int uid) {
         ensureLocked();
@@ -5435,23 +5463,54 @@
         return false;
     }
 
-    private void enforceIsDeviceOwnerOrCertInstallerOfDeviceOwner(
+    /**
+     * Enforce one the following conditions are met:
+     * (1) The device has a Device Owner, and one of the following holds:
+     *   (1.1) The caller is the Device Owner
+     *   (1.2) The caller is another app in the same user as the device owner, AND
+     *         The caller is the delegated certificate installer.
+     * (2) The user has a profile owner, AND:
+     *   (2.1) The profile owner has been granted access to Device IDs and one of the following
+     *         holds:
+     *     (2.1.1) The caller is the profile owner.
+     *     (2.1.2) The caller is from another app in the same user as the profile owner, AND
+     *       (2.1.2.1) The caller is the delegated cert installer.
+     *
+     *  For the device owner case, simply check that the caller is the device owner or the
+     *  delegated certificate installer.
+     *
+     *  For the profile owner case, first check that the caller is the profile owner or can
+     *  manage the DELEGATION_CERT_INSTALL scope.
+     *  If that check succeeds, ensure the profile owner was granted access to device
+     *  identifiers. The grant is transitive: The delegated cert installer is implicitly allowed
+     *  access to device identifiers in this case as part of the delegation.
+     */
+    @VisibleForTesting
+    public void enforceCallerCanRequestDeviceIdAttestation(
             ComponentName who, String callerPackage, int callerUid) throws SecurityException {
-        if (who == null) {
-            if (!mOwners.hasDeviceOwner()) {
-                throw new SecurityException("Not in Device Owner mode.");
+        final int userId = UserHandle.getUserId(callerUid);
+
+        /**
+         *  First check if there's a profile owner because the device could be in COMP mode (where
+         *  there's a device owner and profile owner on the same device).
+         *  If the caller is from the work profile, then it must be the PO or the delegate, and
+         *  it must have the right permission to access device identifiers.
+         */
+        if (hasProfileOwner(userId)) {
+            // Make sure that the caller is the profile owner or delegate.
+            enforceCanManageScope(who, callerPackage, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER,
+                    DELEGATION_CERT_INSTALL);
+            // Verify that the profile owner was granted access to Device IDs.
+            if (canProfileOwnerAccessDeviceIds(userId)) {
+                return;
             }
-            if (UserHandle.getUserId(callerUid) != mOwners.getDeviceOwnerUserId()) {
-                throw new SecurityException("Caller not from device owner user");
-            }
-            if (!isCallerDelegate(callerPackage, DELEGATION_CERT_INSTALL)) {
-                throw new SecurityException("Caller with uid " + mInjector.binderGetCallingUid() +
-                        "has no permission to generate keys.");
-            }
-        } else {
-            // Caller provided - check it is the device owner.
-            enforceDeviceOwner(who);
+            throw new SecurityException(
+                    "Profile Owner is not allowed to access Device IDs.");
         }
+
+        // If not, fall back to the device owner check.
+        enforceCanManageScope(who, callerPackage, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER,
+                DELEGATION_CERT_INSTALL);
     }
 
     @VisibleForTesting
@@ -5499,7 +5558,7 @@
         final int callingUid = mInjector.binderGetCallingUid();
 
         if (deviceIdAttestationRequired && attestationUtilsFlags.length > 0) {
-            enforceIsDeviceOwnerOrCertInstallerOfDeviceOwner(who, callerPackage, callingUid);
+            enforceCallerCanRequestDeviceIdAttestation(who, callerPackage, callingUid);
         } else {
             enforceCanManageScope(who, callerPackage, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER,
                     DELEGATION_CERT_INSTALL);
@@ -7365,6 +7424,18 @@
         return who != null && who.equals(profileOwner);
     }
 
+    private boolean hasProfileOwner(int userId) {
+        synchronized (getLockObject()) {
+            return mOwners.hasProfileOwner(userId);
+        }
+    }
+
+    private boolean canProfileOwnerAccessDeviceIds(int userId) {
+        synchronized (getLockObject()) {
+            return mOwners.canProfileOwnerAccessDeviceIds(userId);
+        }
+    }
+
     @Override
     public ComponentName getDeviceOwnerComponent(boolean callingUserOnly) {
         if (!mHasFeature) {
@@ -11583,6 +11654,53 @@
         return false;
     }
 
+    private boolean hasGrantProfileOwnerDevcieIdAccessPermission() {
+        return mContext.checkCallingPermission(
+                android.Manifest.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
+    @Override
+    public void grantDeviceIdsAccessToProfileOwner(ComponentName who, int userId) {
+        // As the caller is the system, it must specify the component name of the profile owner
+        // as a sanity / safety check.
+        Preconditions.checkNotNull(who);
+
+        if (!mHasFeature) {
+            return;
+        }
+
+        // Only privileged system apps can grant the Profile Owner access to Device IDs.
+        if (!(isCallerWithSystemUid() || isAdb()
+                || hasGrantProfileOwnerDevcieIdAccessPermission())) {
+            throw new SecurityException(
+                    "Only the system can grant Device IDs access for a profile owner.");
+        }
+
+        if (isAdb() && hasIncompatibleAccountsOrNonAdbNoLock(userId, who)) {
+            throw new SecurityException(
+                    "Can only be called from ADB if the device has no accounts.");
+        }
+
+        // Grant access under lock.
+        synchronized (getLockObject()) {
+            // Sanity check: Make sure that the user has a profile owner and that the specified
+            // component is the profile owner of that user.
+            if (!isProfileOwner(who, userId)) {
+                throw new IllegalArgumentException(String.format(
+                        "Component %s is not a Profile Owner of user %d",
+                        who.flattenToString(), userId));
+            }
+
+            Slog.i(LOG_TAG, String.format("Granting Device ID access to %s, for user %d",
+                        who.flattenToString(), userId));
+
+            // setProfileOwnerCanAccessDeviceIds will trigger writing of the profile owner
+            // data, no need to do it manually.
+            mOwners.setProfileOwnerCanAccessDeviceIds(userId);
+        }
+    }
+
     private void pushMeteredDisabledPackagesLocked(int userId) {
         mInjector.getNetworkPolicyManagerInternal().setMeteredRestrictedPackages(
                 getMeteredDisabledPackagesLocked(userId), userId);
@@ -13220,4 +13338,98 @@
 
         return mInjector.settingsGlobalGetString(PRIVATE_DNS_SPECIFIER);
     }
+
+    @Override
+    public void installUpdateFromFile(ComponentName admin,
+            ParcelFileDescriptor updateFileDescriptor, StartInstallingUpdateCallback callback) {
+        enforceDeviceOwner(admin);
+        final long id = mInjector.binderClearCallingIdentity();
+        try {
+            UpdateInstaller updateInstaller;
+            if (isDeviceAB()) {
+                updateInstaller = new AbUpdateInstaller(
+                        mContext, updateFileDescriptor, callback, mInjector, mConstants);
+            } else {
+                updateInstaller = new NonAbUpdateInstaller(
+                        mContext, updateFileDescriptor, callback, mInjector, mConstants);
+            }
+            updateInstaller.startInstallUpdate();
+        } finally {
+            mInjector.binderRestoreCallingIdentity(id);
+        }
+    }
+
+    private boolean isDeviceAB() {
+        return "true".equalsIgnoreCase(android.os.SystemProperties
+                .get(AB_DEVICE_KEY, ""));
+    }
+
+    @Override
+    public void addCrossProfileCalendarPackage(ComponentName who, String packageName) {
+        if (!mHasFeature) {
+            return;
+        }
+        Preconditions.checkNotNull(who, "ComponentName is null");
+        Preconditions.checkStringNotEmpty(packageName, "Package name is null or empty");
+
+        synchronized (getLockObject()) {
+            final ActiveAdmin admin = getActiveAdminForCallerLocked(
+                    who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
+            if (admin.mCrossProfileCalendarPackages.add(packageName)) {
+                saveSettingsLocked(mInjector.userHandleGetCallingUserId());
+            }
+        }
+    }
+
+    @Override
+    public boolean removeCrossProfileCalendarPackage(ComponentName who, String packageName) {
+        if (!mHasFeature) {
+            return false;
+        }
+        Preconditions.checkNotNull(who, "ComponentName is null");
+        Preconditions.checkStringNotEmpty(packageName, "Package name is null or empty");
+
+        boolean isRemoved = false;
+        synchronized (getLockObject()) {
+            final ActiveAdmin admin = getActiveAdminForCallerLocked(
+                    who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
+            isRemoved = admin.mCrossProfileCalendarPackages.remove(packageName);
+            if (isRemoved) {
+                saveSettingsLocked(mInjector.userHandleGetCallingUserId());
+            }
+        }
+        return isRemoved;
+    }
+
+    @Override
+    public List<String> getCrossProfileCalendarPackages(ComponentName who) {
+        if (!mHasFeature) {
+            return Collections.emptyList();
+        }
+        Preconditions.checkNotNull(who, "ComponentName is null");
+
+        synchronized (getLockObject()) {
+            final ActiveAdmin admin = getActiveAdminForCallerLocked(
+                    who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
+            return new ArrayList<String>(admin.mCrossProfileCalendarPackages);
+        }
+    }
+
+    @Override
+    public boolean isPackageAllowedToAccessCalendarForUser(String packageName,
+            int userHandle) {
+        if (!mHasFeature) {
+            return false;
+        }
+        Preconditions.checkStringNotEmpty(packageName, "Package name is null or empty");
+
+        enforceCrossUsersPermission(userHandle);
+        synchronized (getLockObject()) {
+            final ActiveAdmin admin = getProfileOwnerAdminLocked(userHandle);
+            if (admin != null && admin.mCrossProfileCalendarPackages != null) {
+                return admin.mCrossProfileCalendarPackages.contains(packageName);
+            }
+        }
+        return false;
+    }
 }
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/NonAbUpdateInstaller.java b/services/devicepolicy/java/com/android/server/devicepolicy/NonAbUpdateInstaller.java
new file mode 100644
index 0000000..5f1e926
--- /dev/null
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/NonAbUpdateInstaller.java
@@ -0,0 +1,52 @@
+/*
+ * 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.server.devicepolicy;
+
+import android.app.admin.DevicePolicyManager;
+import android.app.admin.StartInstallingUpdateCallback;
+import android.content.Context;
+import android.os.ParcelFileDescriptor;
+import android.os.RecoverySystem;
+import android.util.Log;
+
+import java.io.IOException;
+
+/**
+ * Used for installing an update for <a href="https://source.android.com/devices/tech/ota/nonab">non
+ * AB</a> devices.
+ */
+class NonAbUpdateInstaller extends UpdateInstaller {
+    NonAbUpdateInstaller(Context context,
+            ParcelFileDescriptor updateFileDescriptor,
+            StartInstallingUpdateCallback callback, DevicePolicyManagerService.Injector injector,
+            DevicePolicyConstants constants) {
+        super(context, updateFileDescriptor, callback, injector, constants);
+    }
+
+    @Override
+    public void installUpdateInThread() {
+        try {
+            RecoverySystem.installPackage(mContext, mCopiedUpdateFile);
+            notifyCallbackOnSuccess();
+        } catch (IOException e) {
+            Log.w(TAG, "IO error while trying to install non AB update.", e);
+            notifyCallbackOnError(
+                    DevicePolicyManager.InstallUpdateCallback.UPDATE_ERROR_UNKNOWN,
+                    Log.getStackTraceString(e));
+        }
+    }
+}
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/Owners.java b/services/devicepolicy/java/com/android/server/devicepolicy/Owners.java
index 632f0aa..ee1c1df3 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/Owners.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/Owners.java
@@ -42,6 +42,8 @@
 import com.android.internal.util.FastXmlSerializer;
 import com.android.server.LocalServices;
 
+import libcore.io.IoUtils;
+
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 import org.xmlpull.v1.XmlSerializer;
@@ -58,8 +60,6 @@
 import java.util.Objects;
 import java.util.Set;
 
-import libcore.io.IoUtils;
-
 /**
  * Stores and restores state for the Device and Profile owners and related device-wide information.
  * By definition there can be only one device owner, but there may be a profile owner for each user.
@@ -99,6 +99,7 @@
     private static final String ATTR_USER_RESTRICTIONS_MIGRATED = "userRestrictionsMigrated";
     private static final String ATTR_FREEZE_RECORD_START = "start";
     private static final String ATTR_FREEZE_RECORD_END = "end";
+    private static final String ATTR_CAN_ACCESS_DEVICE_IDS = "canAccessDeviceIds";
 
     private final UserManager mUserManager;
     private final UserManagerInternal mUserManagerInternal;
@@ -264,8 +265,12 @@
     void setDeviceOwnerWithRestrictionsMigrated(ComponentName admin, String ownerName, int userId,
             boolean userRestrictionsMigrated) {
         synchronized (mLock) {
+            // A device owner is allowed to access device identifiers. Even though this flag
+            // is not currently checked for device owner, it is set to true here so that it is
+            // semantically compatible with the meaning of this flag.
             mDeviceOwner = new OwnerInfo(ownerName, admin, userRestrictionsMigrated,
-                    /* remoteBugreportUri =*/ null, /* remoteBugreportHash =*/ null);
+                    /* remoteBugreportUri =*/ null, /* remoteBugreportHash =*/
+                    null, /* canAccessDeviceIds =*/true);
             mDeviceOwnerUserId = userId;
 
             mUserManagerInternal.setDeviceManaged(true);
@@ -290,7 +295,7 @@
             // For a newly set PO, there's no need for migration.
             mProfileOwners.put(userId, new OwnerInfo(ownerName, admin,
                     /* userRestrictionsMigrated =*/ true, /* remoteBugreportUri =*/ null,
-                    /* remoteBugreportHash =*/ null));
+                    /* remoteBugreportHash =*/ null, /* canAccessDeviceIds =*/ false));
             mUserManagerInternal.setUserManaged(userId, true);
             pushToPackageManagerLocked();
             pushToAppOpsLocked();
@@ -311,7 +316,8 @@
             final OwnerInfo ownerInfo = mProfileOwners.get(userId);
             final OwnerInfo newOwnerInfo = new OwnerInfo(target.getPackageName(), target,
                     ownerInfo.userRestrictionsMigrated, ownerInfo.remoteBugreportUri,
-                    ownerInfo.remoteBugreportHash);
+                    ownerInfo.remoteBugreportHash, /* canAccessDeviceIds =*/
+                    ownerInfo.canAccessDeviceIds);
             mProfileOwners.put(userId, newOwnerInfo);
             pushToPackageManagerLocked();
             pushToAppOpsLocked();
@@ -324,7 +330,8 @@
             // See DevicePolicyManagerService#getDeviceOwnerName
             mDeviceOwner = new OwnerInfo(null, target,
                     mDeviceOwner.userRestrictionsMigrated, mDeviceOwner.remoteBugreportUri,
-                    mDeviceOwner.remoteBugreportHash);
+                    mDeviceOwner.remoteBugreportHash, /* canAccessDeviceIds =*/
+                    mDeviceOwner.canAccessDeviceIds);
             pushToPackageManagerLocked();
             pushToAppOpsLocked();
         }
@@ -351,6 +358,17 @@
         }
     }
 
+    /**
+     * Returns true if {@code userId} has a profile owner and that profile owner was granted
+     * the ability to access device identifiers.
+     */
+    boolean canProfileOwnerAccessDeviceIds(int userId) {
+        synchronized (mLock) {
+            OwnerInfo profileOwner = mProfileOwners.get(userId);
+            return profileOwner != null ? profileOwner.canAccessDeviceIds : false;
+        }
+    }
+
     Set<Integer> getProfileOwnerKeys() {
         synchronized (mLock) {
             return mProfileOwners.keySet();
@@ -486,6 +504,20 @@
         }
     }
 
+    /** Sets the grant to access device IDs, and also writes to file. */
+    void setProfileOwnerCanAccessDeviceIds(int userId) {
+        synchronized (mLock) {
+            OwnerInfo profileOwner = mProfileOwners.get(userId);
+            if (profileOwner != null) {
+                profileOwner.canAccessDeviceIds = true;
+            } else {
+                Slog.e(TAG, String.format(
+                        "Cannot grant Device IDs access for user %d, no profile owner.", userId));
+            }
+            writeProfileOwner(userId);
+        }
+    }
+
     private boolean readLegacyOwnerFileLocked(File file) {
         if (!file.exists()) {
             // Already migrated or the device has no owners.
@@ -507,7 +539,7 @@
                     String packageName = parser.getAttributeValue(null, ATTR_PACKAGE);
                     mDeviceOwner = new OwnerInfo(name, packageName,
                             /* userRestrictionsMigrated =*/ false, /* remoteBugreportUri =*/ null,
-                            /* remoteBugreportHash =*/ null);
+                            /* remoteBugreportHash =*/ null, /* canAccessDeviceIds =*/ true);
                     mDeviceOwnerUserId = UserHandle.USER_SYSTEM;
                 } else if (tag.equals(TAG_DEVICE_INITIALIZER)) {
                     // Deprecated tag
@@ -523,7 +555,8 @@
                                 profileOwnerComponentStr);
                         if (admin != null) {
                             profileOwnerInfo = new OwnerInfo(profileOwnerName, admin,
-                                /* userRestrictionsMigrated =*/ false, null, null);
+                                    /* userRestrictionsMigrated =*/ false, null,
+                                    null, /* canAccessDeviceIds =*/ false);
                         } else {
                             // This shouldn't happen but switch from package name -> component name
                             // might have written bad device owner files. b/17652534
@@ -534,7 +567,8 @@
                     if (profileOwnerInfo == null) {
                         profileOwnerInfo = new OwnerInfo(profileOwnerName, profileOwnerPackageName,
                                 /* userRestrictionsMigrated =*/ false,
-                                /* remoteBugreportUri =*/ null, /* remoteBugreportHash =*/ null);
+                                /* remoteBugreportUri =*/ null, /* remoteBugreportHash =*/
+                                null, /* canAccessDeviceIds =*/ false);
                     }
                     mProfileOwners.put(userId, profileOwnerInfo);
                 } else if (TAG_SYSTEM_UPDATE_POLICY.equals(tag)) {
@@ -894,25 +928,28 @@
         public boolean userRestrictionsMigrated;
         public String remoteBugreportUri;
         public String remoteBugreportHash;
+        public boolean canAccessDeviceIds;
 
         public OwnerInfo(String name, String packageName, boolean userRestrictionsMigrated,
-                String remoteBugreportUri, String remoteBugreportHash) {
+                String remoteBugreportUri, String remoteBugreportHash, boolean canAccessDeviceIds) {
             this.name = name;
             this.packageName = packageName;
             this.admin = new ComponentName(packageName, "");
             this.userRestrictionsMigrated = userRestrictionsMigrated;
             this.remoteBugreportUri = remoteBugreportUri;
             this.remoteBugreportHash = remoteBugreportHash;
+            this.canAccessDeviceIds = canAccessDeviceIds;
         }
 
         public OwnerInfo(String name, ComponentName admin, boolean userRestrictionsMigrated,
-                String remoteBugreportUri, String remoteBugreportHash) {
+                String remoteBugreportUri, String remoteBugreportHash, boolean canAccessDeviceIds) {
             this.name = name;
             this.admin = admin;
             this.packageName = admin.getPackageName();
             this.userRestrictionsMigrated = userRestrictionsMigrated;
             this.remoteBugreportUri = remoteBugreportUri;
             this.remoteBugreportHash = remoteBugreportHash;
+            this.canAccessDeviceIds = canAccessDeviceIds;
         }
 
         public void writeToXml(XmlSerializer out, String tag) throws IOException {
@@ -932,6 +969,10 @@
             if (remoteBugreportHash != null) {
                 out.attribute(null, ATTR_REMOTE_BUGREPORT_HASH, remoteBugreportHash);
             }
+            if (canAccessDeviceIds) {
+                out.attribute(null, ATTR_CAN_ACCESS_DEVICE_IDS,
+                        String.valueOf(canAccessDeviceIds));
+            }
             out.endTag(null, tag);
         }
 
@@ -948,13 +989,17 @@
                     ATTR_REMOTE_BUGREPORT_URI);
             final String remoteBugreportHash = parser.getAttributeValue(null,
                     ATTR_REMOTE_BUGREPORT_HASH);
+            final String canAccessDeviceIdsStr =
+                    parser.getAttributeValue(null, ATTR_CAN_ACCESS_DEVICE_IDS);
+            final boolean canAccessDeviceIds =
+                    ("true".equals(canAccessDeviceIdsStr));
 
             // Has component name?  If so, return [name, component]
             if (componentName != null) {
                 final ComponentName admin = ComponentName.unflattenFromString(componentName);
                 if (admin != null) {
                     return new OwnerInfo(name, admin, userRestrictionsMigrated,
-                            remoteBugreportUri, remoteBugreportHash);
+                            remoteBugreportUri, remoteBugreportHash, canAccessDeviceIds);
                 } else {
                     // This shouldn't happen but switch from package name -> component name
                     // might have written bad device owner files. b/17652534
@@ -965,13 +1010,14 @@
 
             // Else, build with [name, package]
             return new OwnerInfo(name, packageName, userRestrictionsMigrated, remoteBugreportUri,
-                    remoteBugreportHash);
+                    remoteBugreportHash, canAccessDeviceIds);
         }
 
         public void dump(String prefix, PrintWriter pw) {
             pw.println(prefix + "admin=" + admin);
             pw.println(prefix + "name=" + name);
             pw.println(prefix + "package=" + packageName);
+            pw.println(prefix + "canAccessDeviceIds=" + canAccessDeviceIds);
         }
     }
 
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/UpdateInstaller.java b/services/devicepolicy/java/com/android/server/devicepolicy/UpdateInstaller.java
new file mode 100644
index 0000000..7910598
--- /dev/null
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/UpdateInstaller.java
@@ -0,0 +1,146 @@
+/*
+ * 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.server.devicepolicy;
+
+import android.app.admin.DevicePolicyManager;
+import android.app.admin.StartInstallingUpdateCallback;
+import android.content.Context;
+import android.os.BatteryManager;
+import android.os.Environment;
+import android.os.FileUtils;
+import android.os.ParcelFileDescriptor;
+import android.os.PowerManager;
+import android.os.Process;
+import android.os.RemoteException;
+import android.util.Log;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+abstract class UpdateInstaller {
+    private StartInstallingUpdateCallback mCallback;
+    private ParcelFileDescriptor mUpdateFileDescriptor;
+    private DevicePolicyConstants mConstants;
+    protected Context mContext;
+    protected File mCopiedUpdateFile;
+
+    static final String TAG = "UpdateInstaller";
+    private DevicePolicyManagerService.Injector mInjector;
+
+    protected UpdateInstaller(Context context, ParcelFileDescriptor updateFileDescriptor,
+            StartInstallingUpdateCallback callback, DevicePolicyManagerService.Injector injector,
+            DevicePolicyConstants constants) {
+        mContext = context;
+        mCallback = callback;
+        mUpdateFileDescriptor = updateFileDescriptor;
+        mInjector = injector;
+        mConstants = constants;
+    }
+
+    public abstract void installUpdateInThread();
+
+    public void startInstallUpdate() {
+        if (!checkIfBatteryIsSufficient()) {
+            notifyCallbackOnError(
+                    DevicePolicyManager.InstallUpdateCallback.UPDATE_ERROR_BATTERY_LOW,
+                    "The battery level must be above "
+                            + mConstants.BATTERY_THRESHOLD_NOT_CHARGING + " while not charging or"
+                            + "above " + mConstants.BATTERY_THRESHOLD_CHARGING + " while charging");
+            return;
+        }
+        Thread thread = new Thread(() -> {
+            mCopiedUpdateFile = copyUpdateFileToDataOtaPackageDir();
+            if (mCopiedUpdateFile == null) {
+                notifyCallbackOnError(
+                        DevicePolicyManager.InstallUpdateCallback.UPDATE_ERROR_UNKNOWN,
+                        "Error while copying file.");
+                return;
+            }
+            installUpdateInThread();
+        });
+        thread.setPriority(Process.THREAD_PRIORITY_BACKGROUND);
+        thread.start();
+    }
+
+    private boolean checkIfBatteryIsSufficient() {
+        BatteryManager batteryManager =
+                (BatteryManager) mContext.getSystemService(Context.BATTERY_SERVICE);
+        if (batteryManager != null) {
+            int chargePercentage = batteryManager
+                    .getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
+            return batteryManager.isCharging()
+                    ? chargePercentage >= mConstants.BATTERY_THRESHOLD_CHARGING
+                    : chargePercentage >= mConstants.BATTERY_THRESHOLD_NOT_CHARGING;
+        }
+        return false;
+    }
+
+    private File copyUpdateFileToDataOtaPackageDir() {
+        try {
+            File destination = createNewFileWithPermissions();
+            copyToFile(destination);
+            return destination;
+        } catch (IOException e) {
+            Log.w(TAG, "Failed to copy update file to OTA directory", e);
+            notifyCallbackOnError(
+                    DevicePolicyManager.InstallUpdateCallback.UPDATE_ERROR_UNKNOWN,
+                    Log.getStackTraceString(e));
+            return null;
+        }
+    }
+
+    private File createNewFileWithPermissions() throws IOException {
+        File destination = File.createTempFile(
+                "update", ".zip", new File(Environment.getDataDirectory() + "/ota_package"));
+        FileUtils.setPermissions(
+                /* path= */ destination,
+                /* mode= */ FileUtils.S_IRWXU | FileUtils.S_IRGRP | FileUtils.S_IROTH,
+                /* uid= */ -1, /* gid= */ -1);
+        return destination;
+    }
+
+    private void copyToFile(File destination) throws IOException {
+        try (OutputStream out = new FileOutputStream(destination);
+             InputStream in = new ParcelFileDescriptor.AutoCloseInputStream(
+                     mUpdateFileDescriptor)) {
+            FileUtils.copy(in, out);
+        }
+    }
+
+    void cleanupUpdateFile() {
+        if (mCopiedUpdateFile.exists()) {
+            mCopiedUpdateFile.delete();
+        }
+    }
+
+    protected void notifyCallbackOnError(int errorCode, String errorMessage) {
+        cleanupUpdateFile();
+        try {
+            mCallback.onStartInstallingUpdateError(errorCode, errorMessage);
+        } catch (RemoteException e) {
+            Log.d(TAG, "Error while calling callback", e);
+        }
+    }
+
+    protected void notifyCallbackOnSuccess() {
+        cleanupUpdateFile();
+        mInjector.powerManagerReboot(PowerManager.REBOOT_REQUESTED_BY_DEVICE_OWNER);
+    }
+}
diff --git a/services/intelligence/java/com/android/server/intelligence/ContentCaptureSession.java b/services/intelligence/java/com/android/server/intelligence/ContentCaptureSession.java
index b7d34d7..14912c4 100644
--- a/services/intelligence/java/com/android/server/intelligence/ContentCaptureSession.java
+++ b/services/intelligence/java/com/android/server/intelligence/ContentCaptureSession.java
@@ -19,15 +19,19 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.os.IBinder;
-import android.service.intelligence.IntelligenceService;
 import android.service.intelligence.InteractionContext;
 import android.service.intelligence.InteractionSessionId;
+import android.service.intelligence.SmartSuggestionsService;
+import android.service.intelligence.SnapshotData;
 import android.util.Slog;
+import android.view.autofill.AutofillId;
+import android.view.autofill.IAutoFillManagerClient;
 import android.view.intelligence.ContentCaptureEvent;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.util.Preconditions;
 import com.android.server.AbstractRemoteService;
+import com.android.server.intelligence.IntelligenceManagerInternal.AugmentedAutofillCallback;
 import com.android.server.intelligence.RemoteIntelligenceService.RemoteIntelligenceServiceCallbacks;
 
 import java.io.PrintWriter;
@@ -38,12 +42,12 @@
     private static final String TAG = "ContentCaptureSession";
 
     private final Object mLock;
-    private final IBinder mActivityToken;
-
+    final IBinder mActivityToken;
     private final IntelligencePerUserService mService;
     private final RemoteIntelligenceService mRemoteService;
     private final InteractionContext mInterationContext;
     private final InteractionSessionId mId;
+    private AugmentedAutofillCallback mAutofillCallback;
 
     ContentCaptureSession(@NonNull Context context, int userId, @NonNull Object lock,
             @NonNull IBinder activityToken, @NonNull IntelligencePerUserService service,
@@ -55,13 +59,20 @@
         mService = service;
         mId = Preconditions.checkNotNull(sessionId);
         mRemoteService = new RemoteIntelligenceService(context,
-                IntelligenceService.SERVICE_INTERFACE, serviceComponentName, userId, this,
+                SmartSuggestionsService.SERVICE_INTERFACE, serviceComponentName, userId, this,
                 bindInstantServiceAllowed, verbose);
         mInterationContext = new InteractionContext(appComponentName, taskId, displayId, flags);
     }
 
     /**
-     * Notifies the {@link IntelligenceService} that the service started.
+     * Returns whether this session is for the given activity.
+     */
+    boolean isActivitySession(@NonNull IBinder activityToken) {
+        return mActivityToken.equals(activityToken);
+    }
+
+    /**
+     * Notifies the {@link SmartSuggestionsService} that the service started.
      */
     @GuardedBy("mLock")
     public void notifySessionStartedLocked() {
@@ -69,17 +80,37 @@
     }
 
     /**
-     * Notifies the {@link IntelligenceService} of a batch of events.
+     * Notifies the {@link SmartSuggestionsService} of a batch of events.
      */
-    public void sendEventsLocked(List<ContentCaptureEvent> events) {
+    public void sendEventsLocked(@NonNull List<ContentCaptureEvent> events) {
         mRemoteService.onContentCaptureEventsRequest(mId, events);
     }
 
     /**
+     * Notifies the {@link SmartSuggestionsService} of a snapshot of an activity.
+     */
+    @GuardedBy("mLock")
+    public void sendActivitySnapshotLocked(@NonNull SnapshotData snapshotData) {
+        mRemoteService.onActivitySnapshotRequest(mId, snapshotData);
+    }
+
+    /**
+     * Requests the service to autofill the given field.
+     */
+    public AugmentedAutofillCallback requestAutofillLocked(@NonNull IAutoFillManagerClient client,
+            int autofillSessionId, @NonNull AutofillId focusedId) {
+        mRemoteService.onRequestAutofillLocked(mId, client, autofillSessionId, focusedId);
+        if (mAutofillCallback == null) {
+            mAutofillCallback = () -> mRemoteService.onDestroyAutofillWindowsRequest(mId);
+        }
+        return mAutofillCallback;
+    }
+
+    /**
      * Cleans up the session and removes it from the service.
      *
      * @param notifyRemoteService whether it should trigger a {@link
-     * IntelligenceService#onDestroyInteractionSession(InteractionSessionId)}
+     * SmartSuggestionsService#onDestroyInteractionSession(InteractionSessionId)}
      * request.
      */
     @GuardedBy("mLock")
@@ -95,7 +126,7 @@
      * Cleans up the session, but not removes it from the service.
      *
      * @param notifyRemoteService whether it should trigger a {@link
-     * IntelligenceService#onDestroyInteractionSession(InteractionSessionId)}
+     * SmartSuggestionsService#onDestroyInteractionSession(InteractionSessionId)}
      * request.
      */
     @GuardedBy("mLock")
@@ -103,6 +134,11 @@
         if (mService.isVerbose()) {
             Slog.v(TAG, "destroyLocked(notifyRemoteService=" + notifyRemoteService + ")");
         }
+        if (mAutofillCallback != null) {
+            mAutofillCallback.destroy();
+            mAutofillCallback = null;
+        }
+
         // TODO(b/111276913): must call client to set session as FINISHED_BY_SERVER
         if (notifyRemoteService) {
             mRemoteService.onSessionLifecycleRequest(/* context= */ null, mId);
@@ -110,7 +146,7 @@
     }
 
     @Override // from RemoteScreenObservationServiceCallbacks
-    public void onServiceDied(AbstractRemoteService service) {
+    public void onServiceDied(AbstractRemoteService<?> service) {
         // TODO(b/111276913): implement (remove session from PerUserSession?)
         if (mService.isDebug()) {
             Slog.d(TAG, "onServiceDied() for " + mId);
@@ -136,6 +172,12 @@
         pw.print(prefix); pw.print("id: ");  mId.dump(pw); pw.println();
         pw.print(prefix); pw.print("context: ");  mInterationContext.dump(pw); pw.println();
         pw.print(prefix); pw.print("activity token: "); pw.println(mActivityToken);
+        pw.print(prefix); pw.print("has autofill callback: ");
+        pw.println(mAutofillCallback != null);
+    }
+
+    String toShortString() {
+        return mId.getValue() + ":" + mActivityToken;
     }
 
     @Override
diff --git a/services/intelligence/java/com/android/server/intelligence/IntelligenceManagerService.java b/services/intelligence/java/com/android/server/intelligence/IntelligenceManagerService.java
index 3d13570..4c68064 100644
--- a/services/intelligence/java/com/android/server/intelligence/IntelligenceManagerService.java
+++ b/services/intelligence/java/com/android/server/intelligence/IntelligenceManagerService.java
@@ -16,16 +16,26 @@
 
 package com.android.server.intelligence;
 
-import static android.content.Context.INTELLIGENCE_MANAGER_SERVICE;
+import static android.Manifest.permission.MANAGE_SMART_SUGGESTIONS;
+import static android.content.Context.CONTENT_CAPTURE_MANAGER_SERVICE;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.app.ActivityManagerInternal;
 import android.content.ComponentName;
 import android.content.Context;
+import android.os.Bundle;
 import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.ResultReceiver;
+import android.os.ShellCallback;
+import android.os.UserHandle;
 import android.os.UserManager;
 import android.service.intelligence.InteractionSessionId;
+import android.util.Slog;
+import android.view.autofill.AutofillId;
+import android.view.autofill.IAutoFillManagerClient;
 import android.view.intelligence.ContentCaptureEvent;
 import android.view.intelligence.IIntelligenceManager;
 
@@ -38,6 +48,7 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -46,11 +57,14 @@
  * <p>The data collected by this service can be analyzed and combined with other sources to provide
  * contextual data in other areas of the system such as Autofill.
  */
+//TODO(b/111276913): rename once the final name is defined
 public final class IntelligenceManagerService extends
         AbstractMasterSystemService<IntelligenceManagerService, IntelligencePerUserService> {
 
     private static final String TAG = "IntelligenceManagerService";
 
+    static final String RECEIVER_BUNDLE_EXTRA_SESSIONS = "sessions";
+
     @GuardedBy("mLock")
     private ActivityManagerInternal mAm;
 
@@ -63,7 +77,7 @@
     @Override // from AbstractMasterSystemService
     protected String getServiceSettingsProperty() {
         // TODO(b/111276913): STOPSHIP temporary settings, until it's set by resourcs + cmd
-        return "intel_service";
+        return "smart_suggestions_service";
     }
 
     @Override // from AbstractMasterSystemService
@@ -74,7 +88,7 @@
 
     @Override // from SystemService
     public void onStart() {
-        publishBinderService(INTELLIGENCE_MANAGER_SERVICE,
+        publishBinderService(CONTENT_CAPTURE_MANAGER_SERVICE,
                 new IntelligenceManagerServiceStub());
         publishLocalService(IntelligenceManagerInternal.class, mLocalService);
     }
@@ -85,6 +99,61 @@
         service.destroyLocked();
     }
 
+    @Override // from AbstractMasterSystemService
+    protected void enforceCallingPermissionForManagement() {
+        getContext().enforceCallingPermission(MANAGE_SMART_SUGGESTIONS, TAG);
+    }
+
+    // Called by Shell command.
+    void destroySessions(@UserIdInt int userId, @NonNull IResultReceiver receiver) {
+        Slog.i(TAG, "destroySessions() for userId " + userId);
+        enforceCallingPermissionForManagement();
+
+        synchronized (mLock) {
+            if (userId != UserHandle.USER_ALL) {
+                final IntelligencePerUserService service = peekServiceForUserLocked(userId);
+                if (service != null) {
+                    service.destroySessionsLocked();
+                }
+            } else {
+                visitServicesLocked((s) -> s.destroySessionsLocked());
+            }
+        }
+
+        try {
+            receiver.send(0, new Bundle());
+        } catch (RemoteException e) {
+            // Just ignore it...
+        }
+    }
+
+    // Called by Shell command.
+    void listSessions(int userId, IResultReceiver receiver) {
+        Slog.i(TAG, "listSessions() for userId " + userId);
+        enforceCallingPermissionForManagement();
+
+        final Bundle resultData = new Bundle();
+        final ArrayList<String> sessions = new ArrayList<>();
+
+        synchronized (mLock) {
+            if (userId != UserHandle.USER_ALL) {
+                final IntelligencePerUserService service = peekServiceForUserLocked(userId);
+                if (service != null) {
+                    service.listSessionsLocked(sessions);
+                }
+            } else {
+                visitServicesLocked((s) -> s.listSessionsLocked(sessions));
+            }
+        }
+
+        resultData.putStringArrayList(RECEIVER_BUNDLE_EXTRA_SESSIONS, sessions);
+        try {
+            receiver.send(0, resultData);
+        } catch (RemoteException e) {
+            // Just ignore it...
+        }
+    }
+
     private ActivityManagerInternal getAmInternal() {
         synchronized (mLock) {
             if (mAm == null) {
@@ -97,7 +166,7 @@
     final class IntelligenceManagerServiceStub extends IIntelligenceManager.Stub {
 
         @Override
-        public void startSession(int userId, @NonNull IBinder activityToken,
+        public void startSession(@UserIdInt int userId, @NonNull IBinder activityToken,
                 @NonNull ComponentName componentName, @NonNull InteractionSessionId sessionId,
                 int flags, @NonNull IResultReceiver result) {
             Preconditions.checkNotNull(activityToken);
@@ -114,12 +183,12 @@
             synchronized (mLock) {
                 final IntelligencePerUserService service = getServiceForUserLocked(userId);
                 service.startSessionLocked(activityToken, componentName, taskId, displayId,
-                        sessionId, flags, result);
+                        sessionId, flags, mAllowInstantService, result);
             }
         }
 
         @Override
-        public void sendEvents(int userId, @NonNull InteractionSessionId sessionId,
+        public void sendEvents(@UserIdInt int userId, @NonNull InteractionSessionId sessionId,
                 @NonNull List<ContentCaptureEvent> events) {
             Preconditions.checkNotNull(sessionId);
             Preconditions.checkNotNull(events);
@@ -131,12 +200,13 @@
         }
 
         @Override
-        public void finishSession(int userId, @NonNull InteractionSessionId sessionId) {
+        public void finishSession(@UserIdInt int userId, @NonNull InteractionSessionId sessionId,
+                @Nullable List<ContentCaptureEvent> events) {
             Preconditions.checkNotNull(sessionId);
 
             synchronized (mLock) {
                 final IntelligencePerUserService service = getServiceForUserLocked(userId);
-                service.finishSessionLocked(sessionId);
+                service.finishSessionLocked(sessionId, events);
             }
         }
 
@@ -148,20 +218,53 @@
                 dumpLocked("", pw);
             }
         }
+
+        @Override
+        public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err,
+                String[] args, ShellCallback callback, ResultReceiver resultReceiver)
+                throws RemoteException {
+            new IntelligenceServiceShellCommand(IntelligenceManagerService.this).exec(
+                    this, in, out, err, args, callback, resultReceiver);
+        }
     }
 
     private final class LocalService extends IntelligenceManagerInternal {
 
         @Override
-        public boolean isIntelligenceServiceForUser(int uid, int userId) {
+        public boolean isIntelligenceServiceForUser(int uid, @UserIdInt int userId) {
             synchronized (mLock) {
                 final IntelligencePerUserService service = peekServiceForUserLocked(userId);
                 if (service != null) {
                     return service.isIntelligenceServiceForUserLocked(uid);
                 }
             }
-
             return false;
         }
+
+        @Override
+        public boolean sendActivityAssistData(@UserIdInt int userId, @NonNull IBinder activityToken,
+                @NonNull Bundle data) {
+            synchronized (mLock) {
+                final IntelligencePerUserService service = peekServiceForUserLocked(userId);
+                if (service != null) {
+                    return service.sendActivityAssistDataLocked(activityToken, data);
+                }
+            }
+            return false;
+        }
+
+        @Override
+        public AugmentedAutofillCallback requestAutofill(@UserIdInt int userId,
+                @NonNull IAutoFillManagerClient client, @NonNull IBinder activityToken,
+                int autofillSessionId, @NonNull AutofillId focusedId) {
+            synchronized (mLock) {
+                final IntelligencePerUserService service = peekServiceForUserLocked(userId);
+                if (service != null) {
+                    return service.requestAutofill(client, activityToken, autofillSessionId,
+                            focusedId);
+                }
+            }
+            return null;
+        }
     }
 }
diff --git a/services/intelligence/java/com/android/server/intelligence/IntelligencePerUserService.java b/services/intelligence/java/com/android/server/intelligence/IntelligencePerUserService.java
index 3b9c4e2..dbf8601 100644
--- a/services/intelligence/java/com/android/server/intelligence/IntelligencePerUserService.java
+++ b/services/intelligence/java/com/android/server/intelligence/IntelligencePerUserService.java
@@ -16,31 +16,46 @@
 
 package com.android.server.intelligence;
 
+import static com.android.server.wm.ActivityTaskManagerInternal.ASSIST_KEY_CONTENT;
+import static com.android.server.wm.ActivityTaskManagerInternal.ASSIST_KEY_DATA;
+import static com.android.server.wm.ActivityTaskManagerInternal.ASSIST_KEY_STRUCTURE;
+
 import android.Manifest;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
 import android.app.AppGlobals;
+import android.app.assist.AssistContent;
+import android.app.assist.AssistStructure;
 import android.content.ComponentName;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ServiceInfo;
+import android.os.Bundle;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.service.intelligence.InteractionSessionId;
+import android.service.intelligence.SnapshotData;
 import android.util.ArrayMap;
 import android.util.Slog;
+import android.view.autofill.AutofillId;
+import android.view.autofill.IAutoFillManagerClient;
 import android.view.intelligence.ContentCaptureEvent;
-import android.view.intelligence.IntelligenceManager;
+import android.view.intelligence.ContentCaptureManager;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.os.IResultReceiver;
 import com.android.server.AbstractPerUserSystemService;
+import com.android.server.intelligence.IntelligenceManagerInternal.AugmentedAutofillCallback;
 
 import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
  * Per-user instance of {@link IntelligenceManagerService}.
  */
+//TODO(b/111276913): rename once the final name is defined
 final class IntelligencePerUserService
         extends AbstractPerUserSystemService<IntelligencePerUserService,
             IntelligenceManagerService> {
@@ -54,7 +69,7 @@
     // TODO(b/111276913): add mechanism to prune stale sessions, similar to Autofill's
 
     protected IntelligencePerUserService(
-            IntelligenceManagerService master, Object lock, int userId) {
+            IntelligenceManagerService master, Object lock, @UserIdInt int userId) {
         super(master, lock, userId);
     }
 
@@ -73,24 +88,31 @@
             Slog.w(TAG, "Could not get service for " + serviceComponent + ": " + e);
             return null;
         }
-        if (!Manifest.permission.BIND_INTELLIGENCE_SERVICE.equals(si.permission)) {
-            Slog.w(TAG, "IntelligenceService from '" + si.packageName
+        if (!Manifest.permission.BIND_SMART_SUGGESTIONS_SERVICE.equals(si.permission)) {
+            Slog.w(TAG, "SmartSuggestionsService from '" + si.packageName
                     + "' does not require permission "
-                    + Manifest.permission.BIND_INTELLIGENCE_SERVICE);
+                    + Manifest.permission.BIND_SMART_SUGGESTIONS_SERVICE);
             throw new SecurityException("Service does not require permission "
-                    + Manifest.permission.BIND_INTELLIGENCE_SERVICE);
+                    + Manifest.permission.BIND_SMART_SUGGESTIONS_SERVICE);
         }
         return si;
     }
 
+    @Override // from PerUserSystemService
+    @GuardedBy("mLock")
+    protected boolean updateLocked(boolean disabled) {
+        destroyLocked();
+        return super.updateLocked(disabled);
+    }
+
     // TODO(b/111276913): log metrics
     @GuardedBy("mLock")
     public void startSessionLocked(@NonNull IBinder activityToken,
             @NonNull ComponentName componentName, int taskId, int displayId,
-            @NonNull InteractionSessionId sessionId, int flags,
+            @NonNull InteractionSessionId sessionId, int flags, boolean bindInstantServiceAllowed,
             @NonNull IResultReceiver resultReceiver) {
         if (!isEnabledLocked()) {
-            sendToClient(resultReceiver, IntelligenceManager.STATE_DISABLED);
+            sendToClient(resultReceiver, ContentCaptureManager.STATE_DISABLED);
             return;
         }
         final ComponentName serviceComponentName = getServiceComponentName();
@@ -113,13 +135,10 @@
             // TODO(b/111276913): check if local ids match and decide what to do if they don't
             // TODO(b/111276913): should we call session.notifySessionStartedLocked() again??
             // if not, move notifySessionStartedLocked() into session constructor
-            sendToClient(resultReceiver, IntelligenceManager.STATE_ACTIVE);
+            sendToClient(resultReceiver, ContentCaptureManager.STATE_ACTIVE);
             return;
         }
 
-        // TODO(b/117779333): get from mMaster once it's moved to superclass
-        final boolean bindInstantServiceAllowed = false;
-
         session = new ContentCaptureSession(getContext(), mUserId, mLock, activityToken,
                 this, serviceComponentName, componentName, taskId, displayId, sessionId, flags,
                 bindInstantServiceAllowed, mMaster.verbose);
@@ -129,12 +148,13 @@
         }
         mSessions.put(sessionId, session);
         session.notifySessionStartedLocked();
-        sendToClient(resultReceiver, IntelligenceManager.STATE_ACTIVE);
+        sendToClient(resultReceiver, ContentCaptureManager.STATE_ACTIVE);
     }
 
     // TODO(b/111276913): log metrics
     @GuardedBy("mLock")
-    public void finishSessionLocked(@NonNull InteractionSessionId sessionId) {
+    public void finishSessionLocked(@NonNull InteractionSessionId sessionId,
+            @Nullable List<ContentCaptureEvent> events) {
         if (!isEnabledLocked()) {
             return;
         }
@@ -146,8 +166,18 @@
             }
             return;
         }
+        if (events != null && !events.isEmpty()) {
+            // TODO(b/111276913): for now we're sending the events and the onDestroy() in 2 separate
+            // calls because it's not clear yet whether we'll change the manager to send events
+            // to the service directly (i.e., without passing through system server). Once we
+            // decide, we might need to split IIntelligenceService.onSessionLifecycle() in 2
+            // methods, one for start and another for finish (and passing the events to finish),
+            // otherwise the service might receive the 2 calls out of order.
+            session.sendEventsLocked(events);
+        }
         if (mMaster.verbose) {
-            Slog.v(TAG, "finishSession(): " + session);
+            Slog.v(TAG, "finishSession(" + (events == null ? 0 : events.size()) + " events): "
+                    + session);
         }
         session.removeSelfLocked(true);
     }
@@ -168,12 +198,31 @@
             return;
         }
         if (mMaster.verbose) {
-            Slog.v(TAG, "sendEvents(): id=" + sessionId + "; events =" + events.size());
+            Slog.v(TAG, "sendEvents(): id=" + sessionId + ", events=" + events.size());
         }
         session.sendEventsLocked(events);
     }
 
     @GuardedBy("mLock")
+    public boolean sendActivityAssistDataLocked(@NonNull IBinder activityToken,
+            @NonNull Bundle data) {
+        final InteractionSessionId id = getInteractionSessionId(activityToken);
+        if (id != null) {
+            final ContentCaptureSession session = mSessions.get(id);
+            final Bundle assistData = data.getBundle(ASSIST_KEY_DATA);
+            final AssistStructure assistStructure = data.getParcelable(ASSIST_KEY_STRUCTURE);
+            final AssistContent assistContent = data.getParcelable(ASSIST_KEY_CONTENT);
+            final SnapshotData snapshotData = new SnapshotData(assistData,
+                    assistStructure, assistContent);
+            session.sendActivitySnapshotLocked(snapshotData);
+            return true;
+        } else {
+            Slog.e(TAG, "Failed to notify activity assist data for activity: " + activityToken);
+        }
+        return false;
+    }
+
+    @GuardedBy("mLock")
     public void removeSessionLocked(@NonNull InteractionSessionId sessionId) {
         mSessions.remove(sessionId);
     }
@@ -183,6 +232,17 @@
         return uid == getServiceUidLocked();
     }
 
+    @GuardedBy("mLock")
+    private ContentCaptureSession getSession(@NonNull IBinder activityToken) {
+        for (int i = 0; i < mSessions.size(); i++) {
+            final ContentCaptureSession session = mSessions.valueAt(i);
+            if (session.mActivityToken.equals(activityToken)) {
+                return session;
+            }
+        }
+        return null;
+    }
+
     /**
      * Destroys the service and all state associated with it.
      *
@@ -191,6 +251,11 @@
     @GuardedBy("mLock")
     public void destroyLocked() {
         if (mMaster.debug) Slog.d(TAG, "destroyLocked()");
+        destroySessionsLocked();
+    }
+
+    @GuardedBy("mLock")
+    void destroySessionsLocked() {
         final int numSessions = mSessions.size();
         for (int i = 0; i < numSessions; i++) {
             final ContentCaptureSession session = mSessions.valueAt(i);
@@ -199,6 +264,31 @@
         mSessions.clear();
     }
 
+    @GuardedBy("mLock")
+    void listSessionsLocked(ArrayList<String> output) {
+        final int numSessions = mSessions.size();
+        for (int i = 0; i < numSessions; i++) {
+            final ContentCaptureSession session = mSessions.valueAt(i);
+            output.add(session.toShortString());
+        }
+    }
+
+    public AugmentedAutofillCallback requestAutofill(@NonNull IAutoFillManagerClient client,
+            @NonNull IBinder activityToken, int autofillSessionId, @NonNull AutofillId focusedId) {
+        synchronized (mLock) {
+            final ContentCaptureSession session = getSession(activityToken);
+            if (session != null) {
+                // TODO(b/111330312): log metrics
+                if (mMaster.verbose) Slog.v(TAG, "requestAugmentedAutofill()");
+                return session.requestAutofillLocked(client, autofillSessionId, focusedId);
+            }
+            if (mMaster.debug) {
+                Slog.d(TAG, "requestAutofill(): no session for " + activityToken);
+            }
+            return null;
+        }
+    }
+
     @Override
     protected void dumpLocked(String prefix, PrintWriter pw) {
         super.dumpLocked(prefix, pw);
@@ -216,6 +306,20 @@
         }
     }
 
+    /**
+     * Returns the InteractionSessionId associated with the given activity.
+     */
+    @GuardedBy("mLock")
+    private InteractionSessionId getInteractionSessionId(@NonNull IBinder activityToken) {
+        for (int i = 0; i < mSessions.size(); i++) {
+            ContentCaptureSession session = mSessions.valueAt(i);
+            if (session.isActivitySession(activityToken)) {
+                return mSessions.keyAt(i);
+            }
+        }
+        return null;
+    }
+
     private static void sendToClient(@NonNull IResultReceiver resultReceiver, int value) {
         try {
             resultReceiver.send(value, null);
diff --git a/services/intelligence/java/com/android/server/intelligence/IntelligenceServiceShellCommand.java b/services/intelligence/java/com/android/server/intelligence/IntelligenceServiceShellCommand.java
new file mode 100644
index 0000000..b7c1f78
--- /dev/null
+++ b/services/intelligence/java/com/android/server/intelligence/IntelligenceServiceShellCommand.java
@@ -0,0 +1,207 @@
+/*
+ * 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.server.intelligence;
+
+import static com.android.server.intelligence.IntelligenceManagerService.RECEIVER_BUNDLE_EXTRA_SESSIONS;
+
+import android.annotation.NonNull;
+import android.os.Bundle;
+import android.os.ShellCommand;
+import android.os.UserHandle;
+
+import com.android.internal.os.IResultReceiver;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Shell Command implementation for {@link IntelligenceManagerService}.
+ */
+//TODO(b/111276913): rename once the final name is defined
+public final class IntelligenceServiceShellCommand extends ShellCommand {
+
+    private final IntelligenceManagerService mService;
+
+    public IntelligenceServiceShellCommand(@NonNull IntelligenceManagerService service) {
+        mService = service;
+    }
+
+    @Override
+    public int onCommand(String cmd) {
+        if (cmd == null) {
+            return handleDefaultCommands(cmd);
+        }
+        final PrintWriter pw = getOutPrintWriter();
+        switch (cmd) {
+            case "list":
+                return requestList(pw);
+            case "destroy":
+                return requestDestroy(pw);
+            case "get":
+                return requestGet(pw);
+            case "set":
+                return requestSet(pw);
+            default:
+                return handleDefaultCommands(cmd);
+        }
+    }
+
+    @Override
+    public void onHelp() {
+        try (PrintWriter pw = getOutPrintWriter();) {
+            // TODO(b/111276913): rename "intelligence" once SELinux rule changed
+            pw.println("Intelligence Service (intelligence) commands:");
+            pw.println("  help");
+            pw.println("    Prints this help text.");
+            pw.println("");
+            pw.println("  get bind-instant-service-allowed");
+            pw.println("    Gets whether binding to services provided by instant apps is allowed");
+            pw.println("");
+            pw.println("  set bind-instant-service-allowed [true | false]");
+            pw.println("    Sets whether binding to services provided by instant apps is allowed");
+            pw.println("");
+            pw.println("  list sessions [--user USER_ID]");
+            pw.println("    Lists all pending sessions.");
+            pw.println("");
+            pw.println("  destroy sessions [--user USER_ID]");
+            pw.println("    Destroys all pending sessions.");
+            pw.println("");
+        }
+    }
+
+    private int requestGet(PrintWriter pw) {
+        final String what = getNextArgRequired();
+        switch(what) {
+            case "bind-instant-service-allowed":
+                return getBindInstantService(pw);
+            default:
+                pw.println("Invalid set: " + what);
+                return -1;
+        }
+    }
+
+    private int requestSet(PrintWriter pw) {
+        final String what = getNextArgRequired();
+
+        switch(what) {
+            case "bind-instant-service-allowed":
+                return setBindInstantService(pw);
+            default:
+                pw.println("Invalid set: " + what);
+                return -1;
+        }
+    }
+
+    private int getBindInstantService(PrintWriter pw) {
+        if (mService.getAllowInstantService()) {
+            pw.println("true");
+        } else {
+            pw.println("false");
+        }
+        return 0;
+    }
+
+    private int setBindInstantService(PrintWriter pw) {
+        final String mode = getNextArgRequired();
+        switch (mode.toLowerCase()) {
+            case "true":
+                mService.setAllowInstantService(true);
+                return 0;
+            case "false":
+                mService.setAllowInstantService(false);
+                return 0;
+            default:
+                pw.println("Invalid mode: " + mode);
+                return -1;
+        }
+    }
+
+    private int requestDestroy(PrintWriter pw) {
+        if (!isNextArgSessions(pw)) {
+            return -1;
+        }
+
+        final int userId = getUserIdFromArgsOrAllUsers();
+        final CountDownLatch latch = new CountDownLatch(1);
+        final IResultReceiver receiver = new IResultReceiver.Stub() {
+            @Override
+            public void send(int resultCode, Bundle resultData) {
+                latch.countDown();
+            }
+        };
+        return requestSessionCommon(pw, latch, () -> mService.destroySessions(userId, receiver));
+    }
+
+    private int requestList(PrintWriter pw) {
+        if (!isNextArgSessions(pw)) {
+            return -1;
+        }
+
+        final int userId = getUserIdFromArgsOrAllUsers();
+        final CountDownLatch latch = new CountDownLatch(1);
+        final IResultReceiver receiver = new IResultReceiver.Stub() {
+            @Override
+            public void send(int resultCode, Bundle resultData) {
+                final ArrayList<String> sessions = resultData
+                        .getStringArrayList(RECEIVER_BUNDLE_EXTRA_SESSIONS);
+                for (String session : sessions) {
+                    pw.println(session);
+                }
+                latch.countDown();
+            }
+        };
+        return requestSessionCommon(pw, latch, () -> mService.listSessions(userId, receiver));
+    }
+
+    private boolean isNextArgSessions(PrintWriter pw) {
+        final String type = getNextArgRequired();
+        if (!type.equals("sessions")) {
+            pw.println("Error: invalid list type");
+            return false;
+        }
+        return true;
+    }
+
+    private int requestSessionCommon(PrintWriter pw, CountDownLatch latch,
+            Runnable command) {
+        command.run();
+        return waitForLatch(pw, latch);
+    }
+
+    private int waitForLatch(PrintWriter pw, CountDownLatch latch) {
+        try {
+            final boolean received = latch.await(5, TimeUnit.SECONDS);
+            if (!received) {
+                pw.println("Timed out after 5 seconds");
+                return -1;
+            }
+        } catch (InterruptedException e) {
+            pw.println("System call interrupted");
+            Thread.currentThread().interrupt();
+            return -1;
+        }
+        return 0;
+    }
+
+    private int getUserIdFromArgsOrAllUsers() {
+        if ("--user".equals(getNextArg())) {
+            return UserHandle.parseUserArg(getNextArgRequired());
+        }
+        return UserHandle.USER_ALL;
+    }
+}
diff --git a/services/intelligence/java/com/android/server/intelligence/RemoteIntelligenceService.java b/services/intelligence/java/com/android/server/intelligence/RemoteIntelligenceService.java
index 9d241fb..d9f4f20 100644
--- a/services/intelligence/java/com/android/server/intelligence/RemoteIntelligenceService.java
+++ b/services/intelligence/java/com/android/server/intelligence/RemoteIntelligenceService.java
@@ -19,26 +19,35 @@
 import android.annotation.Nullable;
 import android.content.ComponentName;
 import android.content.Context;
+import android.os.Bundle;
 import android.os.IBinder;
 import android.os.IInterface;
 import android.os.RemoteException;
+import android.service.intelligence.ContentCaptureEventsRequest;
 import android.service.intelligence.IIntelligenceService;
 import android.service.intelligence.InteractionContext;
 import android.service.intelligence.InteractionSessionId;
+import android.service.intelligence.SnapshotData;
 import android.text.format.DateUtils;
 import android.util.Slog;
+import android.view.autofill.AutofillId;
+import android.view.autofill.AutofillManager;
+import android.view.autofill.IAutoFillManagerClient;
 import android.view.intelligence.ContentCaptureEvent;
 
-import com.android.server.AbstractRemoteService;
+import com.android.internal.os.IResultReceiver;
+import com.android.server.AbstractMultiplePendingRequestsRemoteService;
 
 import java.util.List;
 
-final class RemoteIntelligenceService extends AbstractRemoteService {
+//TODO(b/111276913): rename once the final name is defined
+final class RemoteIntelligenceService
+        extends AbstractMultiplePendingRequestsRemoteService<RemoteIntelligenceService> {
 
     private static final String TAG = "RemoteIntelligenceService";
 
     private static final long TIMEOUT_IDLE_BIND_MILLIS = 2 * DateUtils.MINUTE_IN_MILLIS;
-    private static final long TIMEOUT_REMOTE_REQUEST_MILLIS = 2 * DateUtils.MINUTE_IN_MILLIS;
+    private static final long TIMEOUT_REMOTE_REQUEST_MILLIS = 2 * DateUtils.SECOND_IN_MILLIS;
 
     private final RemoteIntelligenceServiceCallbacks mCallbacks;
     private IIntelligenceService mService;
@@ -48,7 +57,7 @@
             RemoteIntelligenceServiceCallbacks callbacks, boolean bindInstantServiceAllowed,
             boolean verbose) {
         super(context, serviceInterface, componentName, userId, callbacks,
-                bindInstantServiceAllowed, verbose);
+                bindInstantServiceAllowed, verbose, /* initialCapacity= */ 2);
         mCallbacks = callbacks;
     }
 
@@ -91,6 +100,34 @@
         scheduleRequest(new PendingOnContentCaptureEventsRequest(this, sessionId, events));
     }
 
+    /**
+     * Called by {@link ContentCaptureSession} to send snapshot data to the service.
+     */
+    public void onActivitySnapshotRequest(@NonNull InteractionSessionId sessionId,
+            @NonNull SnapshotData snapshotData) {
+        cancelScheduledUnbind();
+        scheduleRequest(new PendingOnActivitySnapshotRequest(this, sessionId, snapshotData));
+    }
+
+    /**
+     * Called by {@link ContentCaptureSession} to request augmented autofill.
+     */
+    public void onRequestAutofillLocked(@NonNull InteractionSessionId sessionId,
+            @NonNull IAutoFillManagerClient client, int autofillSessionId,
+            @NonNull AutofillId focusedId) {
+        cancelScheduledUnbind();
+        scheduleRequest(new PendingAutofillRequest(this, sessionId, client, autofillSessionId,
+                focusedId));
+    }
+
+    /**
+     * Called by {@link ContentCaptureSession} when it's time to destroy all augmented autofill
+     * requests.
+     */
+    public void onDestroyAutofillWindowsRequest(@NonNull InteractionSessionId sessionId) {
+        cancelScheduledUnbind();
+        scheduleRequest(new PendingDestroyAutofillWindowsRequest(this, sessionId));
+    }
 
     private abstract static class MyPendingRequest
             extends PendingRequest<RemoteIntelligenceService> {
@@ -114,8 +151,9 @@
             final RemoteIntelligenceService remoteService = getService();
             if (remoteService != null) {
                 try {
-                    myRun(remoteService);
                     // We don't expect the service to call us back, so we finish right away.
+                    myRun(remoteService);
+                    // TODO(b/111330312): not true anymore!!
                     finish();
                 } catch (RemoteException e) {
                     Slog.w(TAG, "exception handling " + getClass().getSimpleName() + " for "
@@ -159,7 +197,73 @@
 
         @Override // from MyPendingRequest
         public void myRun(@NonNull RemoteIntelligenceService remoteService) throws RemoteException {
-            remoteService.mService.onContentCaptureEvents(mSessionId, mEvents);
+            remoteService.mService.onContentCaptureEventsRequest(mSessionId,
+                    new ContentCaptureEventsRequest(mEvents));
+        }
+    }
+
+    private static final class PendingOnActivitySnapshotRequest extends MyPendingRequest {
+
+        private final SnapshotData mSnapshotData;
+
+        protected PendingOnActivitySnapshotRequest(@NonNull RemoteIntelligenceService service,
+                @NonNull InteractionSessionId sessionId,
+                @NonNull SnapshotData snapshotData) {
+            super(service, sessionId);
+            mSnapshotData = snapshotData;
+        }
+
+        @Override // from MyPendingRequest
+        protected void myRun(@NonNull RemoteIntelligenceService remoteService)
+                throws RemoteException {
+            remoteService.mService.onActivitySnapshot(mSessionId, mSnapshotData);
+        }
+    }
+
+    private static final class PendingAutofillRequest extends MyPendingRequest {
+        private final @NonNull AutofillId mFocusedId;
+        private final @NonNull IAutoFillManagerClient mClient;
+        private final int mAutofillSessionId;
+
+        protected PendingAutofillRequest(@NonNull RemoteIntelligenceService service,
+                @NonNull InteractionSessionId sessionId, @NonNull IAutoFillManagerClient client,
+                int autofillSessionId, @NonNull AutofillId focusedId) {
+            super(service, sessionId);
+            mClient = client;
+            mAutofillSessionId = autofillSessionId;
+            mFocusedId = focusedId;
+        }
+
+        @Override // from MyPendingRequest
+        public void myRun(@NonNull RemoteIntelligenceService remoteService) throws RemoteException {
+            final IResultReceiver receiver = new IResultReceiver.Stub() {
+
+                @Override
+                public void send(int resultCode, Bundle resultData) throws RemoteException {
+                    final IBinder realClient = resultData
+                            .getBinder(AutofillManager.EXTRA_AUGMENTED_AUTOFILL_CLIENT);
+                    remoteService.mService.onAutofillRequest(mSessionId, realClient,
+                            mAutofillSessionId, mFocusedId);
+                }
+            };
+
+            // TODO(b/111330312): set cancellation signal, timeout (from  both mClient and service),
+            // cache IAugmentedAutofillManagerClient reference, etc...
+            mClient.getAugmentedAutofillClient(receiver);
+        }
+    }
+
+    private static final class PendingDestroyAutofillWindowsRequest extends MyPendingRequest {
+
+        protected PendingDestroyAutofillWindowsRequest(@NonNull RemoteIntelligenceService service,
+                @NonNull InteractionSessionId sessionId) {
+            super(service, sessionId);
+        }
+
+        @Override
+        protected void myRun(@NonNull RemoteIntelligenceService service) throws RemoteException {
+            service.mService.onDestroyAutofillWindowsRequest(mSessionId);
+            // TODO(b/111330312): implement timeout
         }
     }
 
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index f8ac41f..9c6f4b3 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -36,7 +36,6 @@
 import android.database.sqlite.SQLiteCompatibilityWalFlags;
 import android.database.sqlite.SQLiteGlobal;
 import android.hardware.display.ColorDisplayManager;
-import android.hardware.display.DisplayManagerInternal;
 import android.os.BaseBundle;
 import android.os.Binder;
 import android.os.Build;
@@ -56,6 +55,7 @@
 import android.os.Trace;
 import android.os.UserHandle;
 import android.os.storage.IStorageManager;
+import android.sysprop.VoldProperties;
 import android.util.DisplayMetrics;
 import android.util.EventLog;
 import android.util.Slog;
@@ -655,7 +655,7 @@
         traceEnd();
 
         // Only run "core" apps if we're encrypting the device.
-        String cryptState = SystemProperties.get("vold.decrypt");
+        String cryptState = VoldProperties.decrypt().orElse("");
         if (ENCRYPTING_STATE.equals(cryptState)) {
             Slog.w(TAG, "Detected encryption in progress - only parsing core apps");
             mOnlyCore = true;
@@ -717,17 +717,9 @@
 
         // Manages Overlay packages
         traceBeginAndSlog("StartOverlayManagerService");
-        OverlayManagerService overlayManagerService = new OverlayManagerService(
-                mSystemContext, installer);
-        mSystemServiceManager.startService(overlayManagerService);
+        mSystemServiceManager.startService(new OverlayManagerService(mSystemContext, installer));
         traceEnd();
 
-        if (SystemProperties.getInt("persist.sys.displayinset.top", 0) > 0) {
-            // DisplayManager needs the overlay immediately.
-            overlayManagerService.updateSystemUiContext();
-            LocalServices.getService(DisplayManagerInternal.class).onOverlayChanged();
-        }
-
         // The sensor service needs access to package manager service, app ops
         // service, and permissions service, therefore we start it after them.
         // Start sensor service in a separate thread. Completion should be checked
@@ -1512,6 +1504,14 @@
             }
             traceEnd();
 
+            traceBeginAndSlog("RuntimeService");
+            try {
+                ServiceManager.addService("runtime", new RuntimeService(context));
+            } catch (Throwable e) {
+                reportWtf("starting RuntimeService", e);
+            }
+            traceEnd();
+
             // timezone.RulesManagerService will prevent a device starting up if the chain of trust
             // required for safe time zone updates might be broken. RuleManagerService cannot do
             // this check when mOnlyCore == true, so we don't enable the service in this case.
diff --git a/services/print/java/com/android/server/print/PrintManagerService.java b/services/print/java/com/android/server/print/PrintManagerService.java
index dc55179b..c9b9f3e 100644
--- a/services/print/java/com/android/server/print/PrintManagerService.java
+++ b/services/print/java/com/android/server/print/PrintManagerService.java
@@ -146,13 +146,14 @@
                 final long identity = Binder.clearCallingIdentity();
                 try {
                     disabledMessage = dpmi.getPrintingDisabledReasonForUser(callingUserId);
+
+                    if (disabledMessage != null) {
+                        Toast.makeText(mContext, Looper.getMainLooper(), disabledMessage,
+                                Toast.LENGTH_LONG).show();
+                    }
                 } finally {
                     Binder.restoreCallingIdentity(identity);
                 }
-                if (disabledMessage != null) {
-                    Toast.makeText(mContext, Looper.getMainLooper(), disabledMessage,
-                            Toast.LENGTH_LONG).show();
-                }
                 try {
                     adapter.start();
                 } catch (RemoteException re) {
diff --git a/services/robotests/Android.mk b/services/robotests/Android.mk
index 565152c..6f10ed5 100644
--- a/services/robotests/Android.mk
+++ b/services/robotests/Android.mk
@@ -26,6 +26,7 @@
 LOCAL_PRIVILEGED_MODULE := true
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
+    bmgrlib \
     services.backup \
     services.core \
     services.net
diff --git a/services/robotests/src/com/android/commands/bmgr/BmgrTest.java b/services/robotests/src/com/android/commands/bmgr/BmgrTest.java
new file mode 100644
index 0000000..1705f5b
--- /dev/null
+++ b/services/robotests/src/com/android/commands/bmgr/BmgrTest.java
@@ -0,0 +1,63 @@
+/*
+ * 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.commands.bmgr;
+
+import static org.mockito.Mockito.verify;
+
+import android.app.backup.IBackupManager;
+import android.os.UserHandle;
+import android.platform.test.annotations.Presubmit;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+/** Unit tests for {@link com.android.commands.bmgr.Bmgr}. */
+@RunWith(RobolectricTestRunner.class)
+@Presubmit
+public class BmgrTest {
+    @Mock private IBackupManager mBackupManager;
+    private Bmgr mBmgr;
+
+    /** Common setup run before each test method. */
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mBmgr = new Bmgr(mBackupManager);
+    }
+
+    /**
+     * Test that bmgr uses the default user {@link UserHandle.USER_SYSTEM} if no user is specified.
+     */
+    @Test
+    public void testRun_whenUserNotSpecified_callsBackupManagerAsSystemUser() throws Exception {
+        mBmgr.run(new String[] {"run"});
+
+        verify(mBackupManager).isBackupServiceActive(UserHandle.USER_SYSTEM);
+    }
+
+    /** Test that bmgr uses the specified user if an user is specified. */
+    @Test
+    public void testRun_whenUserSpecified_callsBackupManagerAsSpecifiedUser() throws Exception {
+        mBmgr.run(new String[] {"--user", "10"});
+
+        verify(mBackupManager).isBackupServiceActive(10);
+    }
+}
diff --git a/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java b/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
index 25d1cc7..ba4caf44 100644
--- a/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
+++ b/services/robotests/src/com/android/server/backup/BackupManagerServiceTest.java
@@ -16,48 +16,27 @@
 
 package com.android.server.backup;
 
-import static com.android.server.backup.testing.BackupManagerServiceTestUtils.startSilentBackupThread;
 import static com.android.server.backup.testing.TransportData.backupTransport;
-import static com.android.server.backup.testing.TransportData.d2dTransport;
-import static com.android.server.backup.testing.TransportData.localTransport;
-import static com.android.server.backup.testing.TransportTestUtils.setUpCurrentTransport;
-import static com.android.server.backup.testing.TransportTestUtils.setUpTransports;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.robolectric.Shadows.shadowOf;
-import static org.testng.Assert.expectThrows;
 
-import android.app.backup.BackupManager;
+import android.app.Application;
+import android.app.backup.IBackupManagerMonitor;
 import android.app.backup.IBackupObserver;
+import android.app.backup.IFullBackupRestoreObserver;
 import android.app.backup.ISelectBackupTransportCallback;
-import android.content.ComponentName;
 import android.content.Context;
-import android.content.ContextWrapper;
 import android.content.Intent;
-import android.os.HandlerThread;
-import android.os.PowerManager;
-import android.os.PowerSaveState;
+import android.os.IBinder;
+import android.os.ParcelFileDescriptor;
 import android.platform.test.annotations.Presubmit;
-import android.provider.Settings;
 
 import com.android.server.backup.testing.BackupManagerServiceTestUtils;
 import com.android.server.backup.testing.TransportData;
-import com.android.server.backup.testing.TransportTestUtils.TransportMock;
-import com.android.server.backup.transport.TransportNotRegisteredException;
-import com.android.server.testing.shadows.ShadowAppBackupUtils;
-import com.android.server.testing.shadows.ShadowBinder;
-import com.android.server.testing.shadows.ShadowKeyValueBackupJob;
-import com.android.server.testing.shadows.ShadowKeyValueBackupTask;
 
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -65,78 +44,44 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowContextWrapper;
-import org.robolectric.shadows.ShadowLooper;
-import org.robolectric.shadows.ShadowPackageManager;
-import org.robolectric.shadows.ShadowSettings;
 
 import java.io.File;
-import java.util.List;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
 
-/** Tests for the system service {@link BackupManagerService} that performs backup/restore. */
+/** Tests for the user-aware backup/restore system service {@link BackupManagerService}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAppBackupUtils.class})
 @Presubmit
 public class BackupManagerServiceTest {
-    private static final String TAG = "BMSTest";
-    private static final String PACKAGE_1 = "some.package.1";
-    private static final String PACKAGE_2 = "some.package.2";
+    private static final String TEST_PACKAGE = "package";
+    private static final String TEST_TRANSPORT = "transport";
 
+    @Mock private UserBackupManagerService mUserBackupManagerService;
     @Mock private TransportManager mTransportManager;
-    private HandlerThread mBackupThread;
-    private ShadowLooper mShadowBackupLooper;
-    private File mBaseStateDir;
-    private File mDataDir;
-    private ShadowContextWrapper mShadowContext;
+    private BackupManagerService mBackupManagerService;
     private Context mContext;
-    private TransportData mTransport;
-    private String mTransportName;
-    private ShadowPackageManager mShadowPackageManager;
 
-    /**
-     * Initialize state that {@link BackupManagerService} operations interact with. This includes
-     * setting up the transport, starting the backup thread, and creating backup data directories.
-     */
+    /** Initialize {@link BackupManagerService}. */
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
 
-        mTransport = backupTransport();
-        mTransportName = mTransport.transportName;
-
-        // Unrelated exceptions are thrown in the backup thread. Until we mock everything properly
-        // we should not fail tests because of this. This is not flakiness, the exceptions thrown
-        // don't interfere with the tests.
-        mBackupThread = startSilentBackupThread(TAG);
-        mShadowBackupLooper = shadowOf(mBackupThread.getLooper());
-
-        ContextWrapper context = RuntimeEnvironment.application;
-        mShadowPackageManager = shadowOf(context.getPackageManager());
-        mContext = context;
-        mShadowContext = shadowOf(context);
-
-        File cacheDir = mContext.getCacheDir();
-        // Corresponds to /data/backup
-        mBaseStateDir = new File(cacheDir, "base_state");
-        // Corresponds to /cache/backup_stage
-        mDataDir = new File(cacheDir, "data");
+        Application application = RuntimeEnvironment.application;
+        mContext = application;
+        mBackupManagerService =
+                new BackupManagerService(
+                        application,
+                        new Trampoline(application),
+                        BackupManagerServiceTestUtils.startBackupThread(null),
+                        new File(application.getCacheDir(), "base_state"),
+                        new File(application.getCacheDir(), "data"),
+                        mTransportManager);
+        mBackupManagerService.setUserBackupManagerService(mUserBackupManagerService);
     }
 
     /**
-     * Clean up and reset state that was created for testing {@link BackupManagerService}
-     * operations.
-     */
-    @After
-    public void tearDown() throws Exception {
-        mBackupThread.quit();
-        ShadowAppBackupUtils.reset();
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#MORE_DEBUG} is set to {@code false}. This is
-     * specifically to prevent overloading the logs in production.
+     * Test verifying that {@link BackupManagerService#MORE_DEBUG} is set to {@code false}.
+     * This is specifically to prevent overloading the logs in production.
      */
     @Test
     public void testMoreDebug_isFalse() throws Exception {
@@ -145,897 +90,436 @@
         assertThat(moreDebug).isFalse();
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#getDestinationString(String)} returns the
-     * current destination string of inputted transport if the transport is registered.
-     */
+    // TODO(b/118520567): Change the following tests to use the per-user instance of
+    // UserBackupManagerService once it's implemented. Currently these tests only test the straight
+    // forward redirection.
+
+    // ---------------------------------------------
+    // Backup agent tests
+    // ---------------------------------------------
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testDestinationString() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName)))
-                .thenReturn("destinationString");
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testDataChanged_callsDataChangedForUser() throws Exception {
+        mBackupManagerService.dataChanged(TEST_PACKAGE);
 
-        String destination = backupManagerService.getDestinationString(mTransportName);
-
-        assertThat(destination).isEqualTo("destinationString");
+        verify(mUserBackupManagerService).dataChanged(TEST_PACKAGE);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#getDestinationString(String)} returns {@code
-     * null} if the inputted transport is not registered.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testDestinationString_whenTransportNotRegistered() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName)))
-                .thenThrow(TransportNotRegisteredException.class);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testAgentConnected_callsAgentConnectedForUser() throws Exception {
+        IBinder agentBinder = mock(IBinder.class);
 
-        String destination = backupManagerService.getDestinationString(mTransportName);
+        mBackupManagerService.agentConnected(TEST_PACKAGE, agentBinder);
 
-        assertThat(destination).isNull();
+        verify(mUserBackupManagerService).agentConnected(TEST_PACKAGE, agentBinder);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#getDestinationString(String)} throws a {@link
-     * SecurityException} if the caller does not have backup permission.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testDestinationString_withoutPermission() throws Exception {
-        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName)))
-                .thenThrow(TransportNotRegisteredException.class);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testAgentDisconnected_callsAgentDisconnectedForUser() throws Exception {
+        mBackupManagerService.agentDisconnected(TEST_PACKAGE);
 
-        expectThrows(
-                SecurityException.class,
-                () -> backupManagerService.getDestinationString(mTransportName));
+        verify(mUserBackupManagerService).agentDisconnected(TEST_PACKAGE);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#isAppEligibleForBackup(String)} returns
-     * {@code false} when the given app is not eligible for backup.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testIsAppEligibleForBackup_whenAppNotEligible() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        setUpCurrentTransport(mTransportManager, mTransport);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testOpComplete_callsOpCompleteForUser() throws Exception {
+        mBackupManagerService.opComplete(/* token */ 0, /* result */ 0L);
 
-        boolean result = backupManagerService.isAppEligibleForBackup(PACKAGE_1);
-
-        assertThat(result).isFalse();
+        verify(mUserBackupManagerService).opComplete(/* token */ 0, /* result */ 0L);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#isAppEligibleForBackup(String)} returns
-     * {@code true} when the given app is eligible for backup.
-     */
+    // ---------------------------------------------
+    // Transport tests
+    // ---------------------------------------------
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testIsAppEligibleForBackup_whenAppEligible() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        TransportMock transportMock = setUpCurrentTransport(mTransportManager, backupTransport());
-        ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testInitializeTransports_callsInitializeTransportsForUser() throws Exception {
+        String[] transports = {TEST_TRANSPORT};
 
-        boolean result = backupManagerService.isAppEligibleForBackup(PACKAGE_1);
+        mBackupManagerService.initializeTransports(transports, /* observer */ null);
 
-        assertThat(result).isTrue();
-        verify(mTransportManager)
-                .disposeOfTransportClient(eq(transportMock.transportClient), any());
+        verify(mUserBackupManagerService).initializeTransports(transports, /* observer */ null);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#isAppEligibleForBackup(String)} throws a
-     * {@link SecurityException} if the caller does not have backup permission.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testIsAppEligibleForBackup_withoutPermission() throws Exception {
-        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
-        setUpCurrentTransport(mTransportManager, mTransport);
-        ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testClearBackupData_callsClearBackupDataForUser() throws Exception {
+        mBackupManagerService.clearBackupData(TEST_TRANSPORT, TEST_PACKAGE);
 
-        expectThrows(
-                SecurityException.class,
-                () -> backupManagerService.isAppEligibleForBackup(PACKAGE_1));
+        verify(mUserBackupManagerService).clearBackupData(TEST_TRANSPORT, TEST_PACKAGE);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#filterAppsEligibleForBackup(String[])}
-     * returns an {@code array} of only apps that are eligible for backup from an {@array} of
-     * inputted apps.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testFilterAppsEligibleForBackup() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        TransportMock transportMock = setUpCurrentTransport(mTransportManager, mTransport);
-        ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testGetCurrentTransport_callsGetCurrentTransportForUser() throws Exception {
+        mBackupManagerService.getCurrentTransport();
 
-        String[] filtered =
-                backupManagerService.filterAppsEligibleForBackup(
-                        new String[] {PACKAGE_1, PACKAGE_2});
-
-        assertThat(filtered).asList().containsExactly(PACKAGE_1);
-        verify(mTransportManager)
-                .disposeOfTransportClient(eq(transportMock.transportClient), any());
+        verify(mUserBackupManagerService).getCurrentTransport();
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#filterAppsEligibleForBackup(String[])}
-     * returns an empty {@code array} if no inputted apps are eligible for backup.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testFilterAppsEligibleForBackup_whenNoneIsEligible() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testGetCurrentTransportComponent_callsGetCurrentTransportComponentForUser()
+            throws Exception {
+        mBackupManagerService.getCurrentTransportComponent();
 
-        String[] filtered =
-                backupManagerService.filterAppsEligibleForBackup(
-                        new String[] {PACKAGE_1, PACKAGE_2});
-
-        assertThat(filtered).isEmpty();
+        verify(mUserBackupManagerService).getCurrentTransportComponent();
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#filterAppsEligibleForBackup(String[])} throws
-     * a {@link SecurityException} if the caller does not have backup permission.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testFilterAppsEligibleForBackup_withoutPermission() throws Exception {
-        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
-        setUpCurrentTransport(mTransportManager, mTransport);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testListAllTransports_callsListAllTransportsForUser() throws Exception {
+        mBackupManagerService.listAllTransports();
 
-        expectThrows(
-                SecurityException.class,
-                () ->
-                        backupManagerService.filterAppsEligibleForBackup(
-                                new String[] {PACKAGE_1, PACKAGE_2}));
+        verify(mUserBackupManagerService).listAllTransports();
     }
 
-    /* Tests for select transport */
-
-    private ComponentName mNewTransportComponent;
-    private TransportData mNewTransport;
-    private TransportMock mNewTransportMock;
-    private TransportData mOldTransport;
-    private TransportMock mOldTransportMock;
-
-    private void setUpForSelectTransport() throws Exception {
-        mNewTransport = backupTransport();
-        mNewTransportComponent = mNewTransport.getTransportComponent();
-        mOldTransport = d2dTransport();
-        List<TransportMock> transportMocks =
-                setUpTransports(mTransportManager, mNewTransport, mOldTransport, localTransport());
-        mNewTransportMock = transportMocks.get(0);
-        mOldTransportMock = transportMocks.get(1);
-        when(mTransportManager.selectTransport(eq(mNewTransport.transportName)))
-                .thenReturn(mOldTransport.transportName);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#selectBackupTransport(String)} successfully
-     * switches the current transport to the inputted transport, returns the name of the old
-     * transport, and disposes of the transport client after the operation.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testSelectBackupTransport() throws Exception {
-        setUpForSelectTransport();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testListAllTransportComponents_callsListAllTransportComponentsForUser()
+            throws Exception {
+        mBackupManagerService.listAllTransportComponents();
 
-        String oldTransport =
-                backupManagerService.selectBackupTransport(mNewTransport.transportName);
-
-        assertThat(getSettingsTransport()).isEqualTo(mNewTransport.transportName);
-        assertThat(oldTransport).isEqualTo(mOldTransport.transportName);
-        verify(mTransportManager)
-                .disposeOfTransportClient(eq(mNewTransportMock.transportClient), any());
+        verify(mUserBackupManagerService).listAllTransportComponents();
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#selectBackupTransport(String)} throws a
-     * {@link SecurityException} if the caller does not have backup permission.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testSelectBackupTransport_withoutPermission() throws Exception {
-        setUpForSelectTransport();
-        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testGetTransportWhitelist_callsGetTransportWhitelistForUser() throws Exception {
+        mBackupManagerService.getTransportWhitelist();
 
-        expectThrows(
-                SecurityException.class,
-                () -> backupManagerService.selectBackupTransport(mNewTransport.transportName));
+        verify(mUserBackupManagerService).getTransportWhitelist();
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#selectBackupTransportAsync(ComponentName,
-     * ISelectBackupTransportCallback)} successfully switches the current transport to the inputted
-     * transport and disposes of the transport client after the operation.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testSelectBackupTransportAsync() throws Exception {
-        setUpForSelectTransport();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.registerAndSelectTransport(eq(mNewTransportComponent)))
-                .thenReturn(BackupManager.SUCCESS);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
-
-        backupManagerService.selectBackupTransportAsync(mNewTransportComponent, callback);
-
-        mShadowBackupLooper.runToEndOfTasks();
-        assertThat(getSettingsTransport()).isEqualTo(mNewTransport.transportName);
-        verify(callback).onSuccess(eq(mNewTransport.transportName));
-        verify(mTransportManager)
-                .disposeOfTransportClient(eq(mNewTransportMock.transportClient), any());
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#selectBackupTransportAsync(ComponentName,
-     * ISelectBackupTransportCallback)} does not switch the current transport to the inputted
-     * transport and notifies the inputted callback of failure when it fails to register the
-     * transport.
-     */
-    @Test
-    public void testSelectBackupTransportAsync_whenRegistrationFails() throws Exception {
-        setUpForSelectTransport();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.registerAndSelectTransport(eq(mNewTransportComponent)))
-                .thenReturn(BackupManager.ERROR_TRANSPORT_UNAVAILABLE);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
-
-        backupManagerService.selectBackupTransportAsync(mNewTransportComponent, callback);
-
-        mShadowBackupLooper.runToEndOfTasks();
-        assertThat(getSettingsTransport()).isNotEqualTo(mNewTransport.transportName);
-        verify(callback).onFailure(anyInt());
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#selectBackupTransportAsync(ComponentName,
-     * ISelectBackupTransportCallback)} does not switch the current transport to the inputted
-     * transport and notifies the inputted callback of failure when the transport gets unregistered.
-     */
-    @Test
-    public void testSelectBackupTransportAsync_whenTransportGetsUnregistered() throws Exception {
-        setUpTransports(mTransportManager, mTransport.unregistered());
-        ComponentName newTransportComponent = mTransport.getTransportComponent();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.registerAndSelectTransport(eq(newTransportComponent)))
-                .thenReturn(BackupManager.SUCCESS);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
-
-        backupManagerService.selectBackupTransportAsync(newTransportComponent, callback);
-
-        mShadowBackupLooper.runToEndOfTasks();
-        assertThat(getSettingsTransport()).isNotEqualTo(mTransportName);
-        verify(callback).onFailure(anyInt());
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#selectBackupTransportAsync(ComponentName,
-     * ISelectBackupTransportCallback)} throws a {@link SecurityException} if the caller does not
-     * have backup permission.
-     */
-    @Test
-    public void testSelectBackupTransportAsync_withoutPermission() throws Exception {
-        setUpForSelectTransport();
-        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        ComponentName newTransportComponent = mNewTransport.getTransportComponent();
-
-        expectThrows(
-                SecurityException.class,
-                () ->
-                        backupManagerService.selectBackupTransportAsync(
-                                newTransportComponent, mock(ISelectBackupTransportCallback.class)));
-    }
-
-    private String getSettingsTransport() {
-        return ShadowSettings.ShadowSecure.getString(
-                mContext.getContentResolver(), Settings.Secure.BACKUP_TRANSPORT);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#getCurrentTransportComponent()} returns the
-     * {@link ComponentName} of the currently selected transport.
-     */
-    @Test
-    public void testGetCurrentTransportComponent() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.getCurrentTransportComponent())
-                .thenReturn(mTransport.getTransportComponent());
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        ComponentName transportComponent = backupManagerService.getCurrentTransportComponent();
-
-        assertThat(transportComponent).isEqualTo(mTransport.getTransportComponent());
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#getCurrentTransportComponent()} returns
-     * {@code null} if there is no currently selected transport.
-     */
-    @Test
-    public void testGetCurrentTransportComponent_whenNoTransportSelected() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.getCurrentTransportComponent()).thenReturn(null);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        ComponentName transportComponent = backupManagerService.getCurrentTransportComponent();
-
-        assertThat(transportComponent).isNull();
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#getCurrentTransportComponent()} returns
-     * {@code null} if the currently selected transport is not registered.
-     */
-    @Test
-    public void testGetCurrentTransportComponent_whenTransportNotRegistered() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        when(mTransportManager.getCurrentTransportComponent())
-                .thenThrow(TransportNotRegisteredException.class);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        ComponentName transportComponent = backupManagerService.getCurrentTransportComponent();
-
-        assertThat(transportComponent).isNull();
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#getCurrentTransportComponent()} throws a
-     * {@link SecurityException} if the caller does not have backup permission.
-     */
-    @Test
-    public void testGetCurrentTransportComponent_withoutPermission() throws Exception {
-        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        expectThrows(SecurityException.class, backupManagerService::getCurrentTransportComponent);
-    }
-
-    /* Tests for updating transport attributes */
-
-    private static final int PACKAGE_UID = 10;
-    private ComponentName mTransportComponent;
-    private int mTransportUid;
-
-    private void setUpForUpdateTransportAttributes() throws Exception {
-        mTransportComponent = mTransport.getTransportComponent();
-        String transportPackage = mTransportComponent.getPackageName();
-
-        ShadowPackageManager shadowPackageManager = shadowOf(mContext.getPackageManager());
-        shadowPackageManager.addPackage(transportPackage);
-        shadowPackageManager.setPackagesForUid(PACKAGE_UID, transportPackage);
-
-        mTransportUid = mContext.getPackageManager().getPackageUid(transportPackage, 0);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#updateTransportAttributes(int, ComponentName,
-     * String, Intent, String, Intent, String)} succeeds if the uid of the transport is same as the
-     * uid of the caller.
-     */
-    @Test
-    public void
-            testUpdateTransportAttributes_whenTransportUidEqualsCallingUid_callsTransportManager()
-                    throws Exception {
-        setUpForUpdateTransportAttributes();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+    public void testUpdateTransportAttributes_callsUpdateTransportAttributesForUser()
+            throws Exception {
+        TransportData transport = backupTransport();
         Intent configurationIntent = new Intent();
         Intent dataManagementIntent = new Intent();
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
 
-        backupManagerService.updateTransportAttributes(
-                mTransportUid,
-                mTransportComponent,
-                mTransportName,
+        mBackupManagerService.updateTransportAttributes(
+                transport.getTransportComponent(),
+                transport.transportName,
                 configurationIntent,
                 "currentDestinationString",
                 dataManagementIntent,
                 "dataManagementLabel");
 
-        verify(mTransportManager)
+        verify(mUserBackupManagerService)
                 .updateTransportAttributes(
-                        eq(mTransportComponent),
-                        eq(mTransportName),
-                        eq(configurationIntent),
-                        eq("currentDestinationString"),
-                        eq(dataManagementIntent),
-                        eq("dataManagementLabel"));
+                        transport.getTransportComponent(),
+                        transport.transportName,
+                        configurationIntent,
+                        "currentDestinationString",
+                        dataManagementIntent,
+                        "dataManagementLabel");
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#updateTransportAttributes(int, ComponentName,
-     * String, Intent, String, Intent, String)} throws a {@link SecurityException} if the uid of the
-     * transport is not equal to the uid of the caller.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testUpdateTransportAttributes_whenTransportUidNotEqualToCallingUid_throwsException()
+    public void testSelectBackupTransport_callsSelectBackupTransportForUser() throws Exception {
+        mBackupManagerService.selectBackupTransport(TEST_TRANSPORT);
+
+        verify(mUserBackupManagerService).selectBackupTransport(TEST_TRANSPORT);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testSelectTransportAsync_callsSelectTransportAsyncForUser() throws Exception {
+        TransportData transport = backupTransport();
+        ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
+
+        mBackupManagerService.selectBackupTransportAsync(
+                transport.getTransportComponent(), callback);
+
+        verify(mUserBackupManagerService)
+                .selectBackupTransportAsync(transport.getTransportComponent(), callback);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testGetConfigurationIntent_callsGetConfigurationIntentForUser() throws Exception {
+        mBackupManagerService.getConfigurationIntent(TEST_TRANSPORT);
+
+        verify(mUserBackupManagerService).getConfigurationIntent(TEST_TRANSPORT);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testGetDestinationString_callsGetDestinationStringForUser() throws Exception {
+        mBackupManagerService.getDestinationString(TEST_TRANSPORT);
+
+        verify(mUserBackupManagerService).getDestinationString(TEST_TRANSPORT);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testGetDataManagementIntent_callsGetDataManagementIntentForUser() throws Exception {
+        mBackupManagerService.getDataManagementIntent(TEST_TRANSPORT);
+
+        verify(mUserBackupManagerService).getDataManagementIntent(TEST_TRANSPORT);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testGetDataManagementLabel_callsGetDataManagementLabelForUser() throws Exception {
+        mBackupManagerService.getDataManagementLabel(TEST_TRANSPORT);
+
+        verify(mUserBackupManagerService).getDataManagementLabel(TEST_TRANSPORT);
+    }
+
+    // ---------------------------------------------
+    // Settings tests
+    // ---------------------------------------------
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void setBackupEnabled_callsSetBackupEnabledForUser() throws Exception {
+        mBackupManagerService.setBackupEnabled(true);
+
+        verify(mUserBackupManagerService).setBackupEnabled(true);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void setAutoRestore_callsSetAutoRestoreForUser() throws Exception {
+        mBackupManagerService.setAutoRestore(true);
+
+        verify(mUserBackupManagerService).setAutoRestore(true);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testSetBackupProvisioned_callsSetBackupProvisionedForUser() throws Exception {
+        mBackupManagerService.setBackupProvisioned(true);
+
+        verify(mUserBackupManagerService).setBackupProvisioned(true);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testIsBackupEnabled_callsIsBackupEnabledForUser() throws Exception {
+        mBackupManagerService.isBackupEnabled();
+
+        verify(mUserBackupManagerService).isBackupEnabled();
+    }
+
+    // ---------------------------------------------
+    // Backup tests
+    // ---------------------------------------------
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testIsAppEligibleForBackup_callsIsAppEligibleForBackupForUser() throws Exception {
+        mBackupManagerService.isAppEligibleForBackup(TEST_PACKAGE);
+
+        verify(mUserBackupManagerService).isAppEligibleForBackup(TEST_PACKAGE);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testFilterAppsEligibleForBackup_callsFilterAppsEligibleForBackupForUser()
             throws Exception {
-        setUpForUpdateTransportAttributes();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+        String[] packages = {TEST_PACKAGE};
 
-        expectThrows(
-                SecurityException.class,
-                () ->
-                        backupManagerService.updateTransportAttributes(
-                                mTransportUid + 1,
-                                mTransportComponent,
-                                mTransportName,
-                                new Intent(),
-                                "currentDestinationString",
-                                new Intent(),
-                                "dataManagementLabel"));
+        mBackupManagerService.filterAppsEligibleForBackup(packages);
+
+        verify(mUserBackupManagerService).filterAppsEligibleForBackup(packages);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#updateTransportAttributes(int, ComponentName,
-     * String, Intent, String, Intent, String)} throws a {@link RuntimeException} if given a {@code
-     * null} transport component.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testUpdateTransportAttributes_whenTransportComponentNull_throwsException()
+    public void testBackupNow_callsBackupNowForUser() throws Exception {
+        mBackupManagerService.backupNow();
+
+        verify(mUserBackupManagerService).backupNow();
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testRequestBackup_callsRequestBackupForUser() throws Exception {
+        String[] packages = {TEST_PACKAGE};
+        IBackupObserver observer = mock(IBackupObserver.class);
+        IBackupManagerMonitor monitor = mock(IBackupManagerMonitor.class);
+
+        mBackupManagerService.requestBackup(packages, observer, monitor, /* flags */ 0);
+
+        verify(mUserBackupManagerService).requestBackup(packages, observer, monitor, /* flags */ 0);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testCancelBackups_callsCancelBackupsForUser() throws Exception {
+        mBackupManagerService.cancelBackups();
+
+        verify(mUserBackupManagerService).cancelBackups();
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testBeginFullBackup_callsBeginFullBackupForUser() throws Exception {
+        FullBackupJob job = new FullBackupJob();
+
+        mBackupManagerService.beginFullBackup(job);
+
+        verify(mUserBackupManagerService).beginFullBackup(job);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testEndFullBackup_callsEndFullBackupForUser() throws Exception {
+        mBackupManagerService.endFullBackup();
+
+        verify(mUserBackupManagerService).endFullBackup();
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testFullTransportBackup_callsFullTransportBackupForUser() throws Exception {
+        String[] packages = {TEST_PACKAGE};
+
+        mBackupManagerService.fullTransportBackup(packages);
+
+        verify(mUserBackupManagerService).fullTransportBackup(packages);
+    }
+
+    // ---------------------------------------------
+    // Restore tests
+    // ---------------------------------------------
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testRestoreAtInstall_callsRestoreAtInstallForUser() throws Exception {
+        mBackupManagerService.restoreAtInstall(TEST_PACKAGE, /* token */ 0);
+
+        verify(mUserBackupManagerService).restoreAtInstall(TEST_PACKAGE, /* token */ 0);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testBeginRestoreSession_callsBeginRestoreSessionForUser() throws Exception {
+        mBackupManagerService.beginRestoreSession(TEST_PACKAGE, TEST_TRANSPORT);
+
+        verify(mUserBackupManagerService).beginRestoreSession(TEST_PACKAGE, TEST_TRANSPORT);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testGetAvailableRestoreToken_callsGetAvailableRestoreTokenForUser()
             throws Exception {
-        setUpForUpdateTransportAttributes();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+        mBackupManagerService.getAvailableRestoreToken(TEST_PACKAGE);
 
-        expectThrows(
-                RuntimeException.class,
-                () ->
-                        backupManagerService.updateTransportAttributes(
-                                mTransportUid,
-                                null,
-                                mTransportName,
-                                new Intent(),
-                                "currentDestinationString",
-                                new Intent(),
-                                "dataManagementLabel"));
+        verify(mUserBackupManagerService).getAvailableRestoreToken(TEST_PACKAGE);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#updateTransportAttributes(int, ComponentName,
-     * String, Intent, String, Intent, String)} throws a {@link RuntimeException} if given a {@code
-     * null} transport name.
-     */
-    @Test
-    public void testUpdateTransportAttributes_whenNameNull_throwsException() throws Exception {
-        setUpForUpdateTransportAttributes();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    // ---------------------------------------------
+    // Adb backup/restore tests
+    // ---------------------------------------------
 
-        expectThrows(
-                RuntimeException.class,
-                () ->
-                        backupManagerService.updateTransportAttributes(
-                                mTransportUid,
-                                mTransportComponent,
-                                null,
-                                new Intent(),
-                                "currentDestinationString",
-                                new Intent(),
-                                "dataManagementLabel"));
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testSetBackupPassword_callsSetBackupPasswordForUser() throws Exception {
+        mBackupManagerService.setBackupPassword("currentPassword", "newPassword");
+
+        verify(mUserBackupManagerService).setBackupPassword("currentPassword", "newPassword");
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#updateTransportAttributes(int, ComponentName,
-     * String, Intent, String, Intent, String)} throws a {@link RuntimeException} if given a {@code
-     * null} destination string.
-     */
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void testUpdateTransportAttributes_whenCurrentDestinationStringNull_throwsException()
+    public void testHasBackupPassword_callsHasBackupPasswordForUser() throws Exception {
+        mBackupManagerService.hasBackupPassword();
+
+        verify(mUserBackupManagerService).hasBackupPassword();
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testAdbBackup_callsAdbBackupForUser() throws Exception {
+        File testFile = new File(mContext.getFilesDir(), "test");
+        testFile.createNewFile();
+        ParcelFileDescriptor parcelFileDescriptor =
+                ParcelFileDescriptor.open(testFile, ParcelFileDescriptor.MODE_READ_WRITE);
+        String[] packages = {TEST_PACKAGE};
+
+        mBackupManagerService.adbBackup(
+                parcelFileDescriptor,
+                /* includeApks */ true,
+                /* includeObbs */ true,
+                /* includeShared */ true,
+                /* doWidgets */ true,
+                /* doAllApps */ true,
+                /* includeSystem */ true,
+                /* doCompress */ true,
+                /* doKeyValue */ true,
+                packages);
+
+        verify(mUserBackupManagerService)
+                .adbBackup(
+                        parcelFileDescriptor,
+                        /* includeApks */ true,
+                        /* includeObbs */ true,
+                        /* includeShared */ true,
+                        /* doWidgets */ true,
+                        /* doAllApps */ true,
+                        /* includeSystem */ true,
+                        /* doCompress */ true,
+                        /* doKeyValue */ true,
+                        packages);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testAdbRestore_callsAdbRestoreForUser() throws Exception {
+        File testFile = new File(mContext.getFilesDir(), "test");
+        testFile.createNewFile();
+        ParcelFileDescriptor parcelFileDescriptor =
+                ParcelFileDescriptor.open(testFile, ParcelFileDescriptor.MODE_READ_WRITE);
+
+        mBackupManagerService.adbRestore(parcelFileDescriptor);
+
+        verify(mUserBackupManagerService).adbRestore(parcelFileDescriptor);
+    }
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
+    @Test
+    public void testAcknowledgeAdbBackupOrRestore_callsAcknowledgeAdbBackupOrRestoreForUser()
             throws Exception {
-        setUpForUpdateTransportAttributes();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+        IFullBackupRestoreObserver observer = mock(IFullBackupRestoreObserver.class);
 
-        expectThrows(
-                RuntimeException.class,
-                () ->
-                        backupManagerService.updateTransportAttributes(
-                                mTransportUid,
-                                mTransportComponent,
-                                mTransportName,
-                                new Intent(),
-                                null,
-                                new Intent(),
-                                "dataManagementLabel"));
+        mBackupManagerService.acknowledgeAdbBackupOrRestore(
+                /* token */ 0, /* allow */ true, "currentPassword", "encryptionPassword", observer);
+
+        verify(mUserBackupManagerService)
+                .acknowledgeAdbBackupOrRestore(
+                        /* token */ 0,
+                        /* allow */ true,
+                        "currentPassword",
+                        "encryptionPassword",
+                        observer);
     }
 
-    /**
-     * Test verifying that {@link BackupManagerService#updateTransportAttributes(int, ComponentName,
-     * String, Intent, String, Intent, String)} throws a {@link RuntimeException} if given either a
-     * {@code null} data management label or {@code null} data management intent, but not both.
-     */
+    // ---------------------------------------------
+    //  Service tests
+    // ---------------------------------------------
+
+    /** Test that the backup service routes methods correctly to the user that requests it. */
     @Test
-    public void
-            testUpdateTransportAttributes_whenDataManagementArgsNullityDontMatch_throwsException()
-                    throws Exception {
-        setUpForUpdateTransportAttributes();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
+    public void testDump_callsDumpForUser() throws Exception {
+        File testFile = new File(mContext.getFilesDir(), "test");
+        testFile.createNewFile();
+        FileDescriptor fileDescriptor = new FileDescriptor();
+        PrintWriter printWriter = new PrintWriter(testFile);
+        String[] args = {"1", "2"};
 
-        expectThrows(
-                RuntimeException.class,
-                () ->
-                        backupManagerService.updateTransportAttributes(
-                                mTransportUid,
-                                mTransportComponent,
-                                mTransportName,
-                                new Intent(),
-                                "currentDestinationString",
-                                null,
-                                "dataManagementLabel"));
+        mBackupManagerService.dump(fileDescriptor, printWriter, args);
 
-        expectThrows(
-                RuntimeException.class,
-                () ->
-                        backupManagerService.updateTransportAttributes(
-                                mTransportUid,
-                                mTransportComponent,
-                                mTransportName,
-                                new Intent(),
-                                "currentDestinationString",
-                                new Intent(),
-                                null));
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#updateTransportAttributes(int, ComponentName,
-     * String, Intent, String, Intent, String)} succeeds if the caller has backup permission.
-     */
-    @Test
-    public void testUpdateTransportAttributes_whenPermissionGranted_callsThroughToTransportManager()
-            throws Exception {
-        setUpForUpdateTransportAttributes();
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        Intent configurationIntent = new Intent();
-        Intent dataManagementIntent = new Intent();
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        backupManagerService.updateTransportAttributes(
-                mTransportUid,
-                mTransportComponent,
-                mTransportName,
-                configurationIntent,
-                "currentDestinationString",
-                dataManagementIntent,
-                "dataManagementLabel");
-
-        verify(mTransportManager)
-                .updateTransportAttributes(
-                        eq(mTransportComponent),
-                        eq(mTransportName),
-                        eq(configurationIntent),
-                        eq("currentDestinationString"),
-                        eq(dataManagementIntent),
-                        eq("dataManagementLabel"));
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#updateTransportAttributes(int, ComponentName,
-     * String, Intent, String, Intent, String)} throws a {@link SecurityException} if the caller
-     * does not have backup permission.
-     */
-    @Test
-    public void testUpdateTransportAttributes_whenPermissionDenied_throwsSecurityException()
-            throws Exception {
-        setUpForUpdateTransportAttributes();
-        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        expectThrows(
-                SecurityException.class,
-                () ->
-                        backupManagerService.updateTransportAttributes(
-                                mTransportUid,
-                                mTransportComponent,
-                                mTransportName,
-                                new Intent(),
-                                "currentDestinationString",
-                                new Intent(),
-                                "dataManagementLabel"));
-    }
-
-    /* Tests for request backup */
-
-    @Mock private IBackupObserver mObserver;
-
-    private void setUpForRequestBackup(String... packages) throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        for (String packageName : packages) {
-            mShadowPackageManager.addPackage(packageName);
-            ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(packageName);
-        }
-        setUpCurrentTransport(mTransportManager, mTransport);
-    }
-
-    private void tearDownForRequestBackup() {
-        ShadowKeyValueBackupTask.reset();
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} throws a {@link SecurityException} if the caller does not have backup permission.
-     */
-    @Test
-    public void testRequestBackup_whenPermissionDenied() throws Exception {
-        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        expectThrows(
-                SecurityException.class,
-                () -> backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0));
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} throws an {@link IllegalArgumentException} if passed {@null} for packages.
-     */
-    @Test
-    public void testRequestBackup_whenPackagesNull() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        expectThrows(
-                IllegalArgumentException.class,
-                () -> backupManagerService.requestBackup(null, mObserver, 0));
-        verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} throws an {@link IllegalArgumentException} if passed an empty {@code array} for
-     * packages.
-     */
-    @Test
-    public void testRequestBackup_whenPackagesEmpty() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-
-        expectThrows(
-                IllegalArgumentException.class,
-                () -> backupManagerService.requestBackup(new String[0], mObserver, 0));
-        verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} returns {@link BackupManager#ERROR_BACKUP_NOT_ALLOWED} if backup is disabled.
-     */
-    @Test
-    public void testRequestBackup_whenBackupDisabled() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        backupManagerService.setEnabled(false);
-
-        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
-
-        assertThat(result).isEqualTo(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
-        verify(mObserver).backupFinished(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} returns {@link BackupManager#ERROR_BACKUP_NOT_ALLOWED} if the system user hasn't gone
-     * through SUW.
-     */
-    @Test
-    public void testRequestBackup_whenNotProvisioned() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        backupManagerService.setProvisioned(false);
-
-        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
-
-        assertThat(result).isEqualTo(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
-        verify(mObserver).backupFinished(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} returns {@link BackupManager#ERROR_TRANSPORT_ABORTED} if the current transport is not
-     * registered.
-     */
-    @Test
-    public void testRequestBackup_whenTransportNotRegistered() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        setUpCurrentTransport(mTransportManager, mTransport.unregistered());
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        backupManagerService.setEnabled(true);
-        backupManagerService.setProvisioned(true);
-
-        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
-
-        assertThat(result).isEqualTo(BackupManager.ERROR_TRANSPORT_ABORTED);
-        verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} returns {@link BackupManager#SUCCESS} and notifies the observer of {@link
-     * BackupManager#ERROR_BACKUP_NOT_ALLOWED} if the specified app is not eligible for backup.
-     */
-    @Test
-    public void testRequestBackup_whenAppNotEligibleForBackup() throws Exception {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        mShadowPackageManager.addPackage(PACKAGE_1);
-        setUpCurrentTransport(mTransportManager, mTransport);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        backupManagerService.setEnabled(true);
-        backupManagerService.setProvisioned(true);
-        // Haven't set PACKAGE_1 as eligible
-
-        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
-
-        assertThat(result).isEqualTo(BackupManager.SUCCESS);
-        verify(mObserver).onResult(PACKAGE_1, BackupManager.ERROR_BACKUP_NOT_ALLOWED);
-        // TODO: We probably don't need to kick-off KeyValueBackupTask when list is empty
-        tearDownForRequestBackup();
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} returns {@link BackupManager#SUCCESS} and updates bookkeeping if backup for a key value
-     * package succeeds.
-     */
-    @Test
-    @Config(shadows = ShadowKeyValueBackupTask.class)
-    public void testRequestBackup_whenPackageIsKeyValue() throws Exception {
-        setUpForRequestBackup(PACKAGE_1);
-        BackupManagerService backupManagerService = createBackupManagerServiceForRequestBackup();
-
-        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
-
-        mShadowBackupLooper.runToEndOfTasks();
-        assertThat(result).isEqualTo(BackupManager.SUCCESS);
-        ShadowKeyValueBackupTask shadowTask = ShadowKeyValueBackupTask.getLastCreated();
-        assertThat(shadowTask.getQueue()).containsExactly(PACKAGE_1);
-        assertThat(shadowTask.getPendingFullBackups()).isEmpty();
-        // TODO: Assert more about KeyValueBackupTask
-        tearDownForRequestBackup();
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#requestBackup(String[], IBackupObserver,
-     * int)} returns {@link BackupManager#SUCCESS} and updates bookkeeping if backup for a full
-     * backup package succeeds.
-     */
-    @Test
-    @Config(shadows = ShadowKeyValueBackupTask.class)
-    public void testRequestBackup_whenPackageIsFullBackup() throws Exception {
-        setUpForRequestBackup(PACKAGE_1);
-        ShadowAppBackupUtils.setAppGetsFullBackup(PACKAGE_1);
-        BackupManagerService backupManagerService = createBackupManagerServiceForRequestBackup();
-
-        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
-
-        mShadowBackupLooper.runToEndOfTasks();
-        assertThat(result).isEqualTo(BackupManager.SUCCESS);
-        ShadowKeyValueBackupTask shadowTask = ShadowKeyValueBackupTask.getLastCreated();
-        assertThat(shadowTask.getQueue()).isEmpty();
-        assertThat(shadowTask.getPendingFullBackups()).containsExactly(PACKAGE_1);
-        // TODO: Assert more about KeyValueBackupTask
-        tearDownForRequestBackup();
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#backupNow()} clears the calling identity
-     * for scheduling a job and then restores the original calling identity after the operation.
-     */
-    @Test
-    @Config(shadows = {ShadowBinder.class, ShadowKeyValueBackupJob.class})
-    public void testBackupNow_clearsCallingIdentityForJobScheduler() {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        setUpPowerManager(backupManagerService);
-        ShadowBinder.setCallingUid(1);
-
-        backupManagerService.backupNow();
-
-        assertThat(ShadowKeyValueBackupJob.getCallingUid()).isEqualTo(ShadowBinder.LOCAL_UID);
-        assertThat(ShadowBinder.getCallingUid()).isEqualTo(1);
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#backupNow()} restores the original calling
-     * identity if an exception is thrown during execution.
-     */
-    @Test
-    @Config(shadows = {ShadowBinder.class, ShadowKeyValueBackupJobException.class})
-    public void testBackupNow_whenExceptionThrown_restoresCallingIdentity() {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        setUpPowerManager(backupManagerService);
-        ShadowBinder.setCallingUid(1);
-
-        expectThrows(IllegalArgumentException.class, backupManagerService::backupNow);
-        assertThat(ShadowKeyValueBackupJobException.getCallingUid())
-                .isEqualTo(ShadowBinder.LOCAL_UID);
-        assertThat(ShadowBinder.getCallingUid()).isEqualTo(1);
-    }
-
-    private BackupManagerService createBackupManagerServiceForRequestBackup() {
-        BackupManagerService backupManagerService = createInitializedBackupManagerService();
-        backupManagerService.setEnabled(true);
-        backupManagerService.setProvisioned(true);
-        return backupManagerService;
-    }
-
-    /**
-     * Test verifying that {@link BackupManagerService#BackupManagerService(Context, Trampoline,
-     * HandlerThread, File, File, TransportManager)} posts a transport registration task to the
-     * backup handler thread.
-     */
-    @Test
-    public void testConstructor_postRegisterTransports() {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-
-        createBackupManagerService();
-
-        mShadowBackupLooper.runToEndOfTasks();
-        verify(mTransportManager).registerTransports();
-    }
-
-    /**
-     * Test verifying that the {@link BackupManagerService#BackupManagerService(Context, Trampoline,
-     * HandlerThread, File, File, TransportManager)} does not directly register transports in its
-     * own thread.
-     */
-    @Test
-    public void testConstructor_doesNotRegisterTransportsSynchronously() {
-        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
-
-        createBackupManagerService();
-
-        // Operations posted to mBackupThread only run with mShadowBackupLooper.runToEndOfTasks()
-        verify(mTransportManager, never()).registerTransports();
-    }
-
-    private BackupManagerService createBackupManagerService() {
-        return new BackupManagerService(
-                mContext,
-                new Trampoline(mContext),
-                mBackupThread,
-                mBaseStateDir,
-                mDataDir,
-                mTransportManager);
-    }
-
-    private BackupManagerService createInitializedBackupManagerService() {
-        return BackupManagerServiceTestUtils.createInitializedBackupManagerService(
-                mContext, mBackupThread, mBaseStateDir, mDataDir, mTransportManager);
-    }
-
-    private void setUpPowerManager(BackupManagerService backupManagerService) {
-        PowerManager powerManagerMock = mock(PowerManager.class);
-        when(powerManagerMock.getPowerSaveState(anyInt()))
-                .thenReturn(new PowerSaveState.Builder().setBatterySaverEnabled(true).build());
-        backupManagerService.setPowerManager(powerManagerMock);
-    }
-
-    /**
-     * We can't mock the void method {@link #schedule(Context, long, BackupManagerConstants)} so we
-     * extend {@link ShadowKeyValueBackupJob} and throw an exception at the end of the method.
-     */
-    @Implements(KeyValueBackupJob.class)
-    public static class ShadowKeyValueBackupJobException extends ShadowKeyValueBackupJob {
-        /**
-         * Implementation of {@link ShadowKeyValueBackupJob#schedule(Context, long,
-         * BackupManagerConstants)} that throws an {@link IllegalArgumentException}.
-         */
-        public static void schedule(Context ctx, long delay, BackupManagerConstants constants) {
-            ShadowKeyValueBackupJob.schedule(ctx, delay, constants);
-            throw new IllegalArgumentException();
-        }
+        verify(mUserBackupManagerService).dump(fileDescriptor, printWriter, args);
     }
 }
diff --git a/services/robotests/src/com/android/server/backup/UserBackupManagerServiceTest.java b/services/robotests/src/com/android/server/backup/UserBackupManagerServiceTest.java
new file mode 100644
index 0000000..9d43819
--- /dev/null
+++ b/services/robotests/src/com/android/server/backup/UserBackupManagerServiceTest.java
@@ -0,0 +1,1039 @@
+/*
+ * 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.server.backup;
+
+import static com.android.server.backup.testing.BackupManagerServiceTestUtils.startSilentBackupThread;
+import static com.android.server.backup.testing.TransportData.backupTransport;
+import static com.android.server.backup.testing.TransportData.d2dTransport;
+import static com.android.server.backup.testing.TransportData.localTransport;
+import static com.android.server.backup.testing.TransportTestUtils.setUpCurrentTransport;
+import static com.android.server.backup.testing.TransportTestUtils.setUpTransports;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+import static org.testng.Assert.expectThrows;
+
+import android.app.backup.BackupManager;
+import android.app.backup.IBackupObserver;
+import android.app.backup.ISelectBackupTransportCallback;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.ContextWrapper;
+import android.content.Intent;
+import android.os.Binder;
+import android.os.HandlerThread;
+import android.os.PowerManager;
+import android.os.PowerSaveState;
+import android.platform.test.annotations.Presubmit;
+import android.provider.Settings;
+
+import com.android.server.backup.testing.BackupManagerServiceTestUtils;
+import com.android.server.backup.testing.TransportData;
+import com.android.server.backup.testing.TransportTestUtils.TransportMock;
+import com.android.server.backup.transport.TransportNotRegisteredException;
+import com.android.server.testing.shadows.ShadowAppBackupUtils;
+import com.android.server.testing.shadows.ShadowBinder;
+import com.android.server.testing.shadows.ShadowKeyValueBackupJob;
+import com.android.server.testing.shadows.ShadowKeyValueBackupTask;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implements;
+import org.robolectric.shadows.ShadowContextWrapper;
+import org.robolectric.shadows.ShadowLooper;
+import org.robolectric.shadows.ShadowPackageManager;
+import org.robolectric.shadows.ShadowSettings;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Tests for the per-user instance of the backup/restore system service {@link
+ * UserBackupManagerService} that performs operations for its target user.
+ */
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowAppBackupUtils.class})
+@Presubmit
+public class UserBackupManagerServiceTest {
+    private static final String TAG = "BMSTest";
+    private static final String PACKAGE_1 = "some.package.1";
+    private static final String PACKAGE_2 = "some.package.2";
+
+    @Mock private TransportManager mTransportManager;
+    private HandlerThread mBackupThread;
+    private ShadowLooper mShadowBackupLooper;
+    private File mBaseStateDir;
+    private File mDataDir;
+    private ShadowContextWrapper mShadowContext;
+    private Context mContext;
+    private TransportData mTransport;
+    private String mTransportName;
+    private ShadowPackageManager mShadowPackageManager;
+
+    /**
+     * Initialize state that {@link UserBackupManagerService} operations interact with. This
+     * includes setting up the transport, starting the backup thread, and creating backup data
+     * directories.
+     */
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        mTransport = backupTransport();
+        mTransportName = mTransport.transportName;
+
+        // Unrelated exceptions are thrown in the backup thread. Until we mock everything properly
+        // we should not fail tests because of this. This is not flakiness, the exceptions thrown
+        // don't interfere with the tests.
+        mBackupThread = startSilentBackupThread(TAG);
+        mShadowBackupLooper = shadowOf(mBackupThread.getLooper());
+
+        ContextWrapper context = RuntimeEnvironment.application;
+        mShadowPackageManager = shadowOf(context.getPackageManager());
+        mContext = context;
+        mShadowContext = shadowOf(context);
+
+        File cacheDir = mContext.getCacheDir();
+        // Corresponds to /data/backup
+        mBaseStateDir = new File(cacheDir, "base_state");
+        // Corresponds to /cache/backup_stage
+        mDataDir = new File(cacheDir, "data");
+    }
+
+    /**
+     * Clean up and reset state that was created for testing {@link UserBackupManagerService}
+     * operations.
+     */
+    @After
+    public void tearDown() throws Exception {
+        mBackupThread.quit();
+        ShadowAppBackupUtils.reset();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#getDestinationString(String)} returns the
+     * current destination string of inputted transport if the transport is registered.
+     */
+    @Test
+    public void testDestinationString() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName)))
+                .thenReturn("destinationString");
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        String destination = backupManagerService.getDestinationString(mTransportName);
+
+        assertThat(destination).isEqualTo("destinationString");
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#getDestinationString(String)} returns
+     * {@code null} if the inputted transport is not registered.
+     */
+    @Test
+    public void testDestinationString_whenTransportNotRegistered() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName)))
+                .thenThrow(TransportNotRegisteredException.class);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        String destination = backupManagerService.getDestinationString(mTransportName);
+
+        assertThat(destination).isNull();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#getDestinationString(String)} throws a
+     * {@link SecurityException} if the caller does not have backup permission.
+     */
+    @Test
+    public void testDestinationString_withoutPermission() throws Exception {
+        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName)))
+                .thenThrow(TransportNotRegisteredException.class);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                SecurityException.class,
+                () -> backupManagerService.getDestinationString(mTransportName));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#isAppEligibleForBackup(String)} returns
+     * {@code false} when the given app is not eligible for backup.
+     */
+    @Test
+    public void testIsAppEligibleForBackup_whenAppNotEligible() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        setUpCurrentTransport(mTransportManager, mTransport);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        boolean result = backupManagerService.isAppEligibleForBackup(PACKAGE_1);
+
+        assertThat(result).isFalse();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#isAppEligibleForBackup(String)} returns
+     * {@code true} when the given app is eligible for backup.
+     */
+    @Test
+    public void testIsAppEligibleForBackup_whenAppEligible() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        TransportMock transportMock = setUpCurrentTransport(mTransportManager, backupTransport());
+        ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        boolean result = backupManagerService.isAppEligibleForBackup(PACKAGE_1);
+
+        assertThat(result).isTrue();
+        verify(mTransportManager)
+                .disposeOfTransportClient(eq(transportMock.transportClient), any());
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#isAppEligibleForBackup(String)} throws a
+     * {@link SecurityException} if the caller does not have backup permission.
+     */
+    @Test
+    public void testIsAppEligibleForBackup_withoutPermission() throws Exception {
+        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
+        setUpCurrentTransport(mTransportManager, mTransport);
+        ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                SecurityException.class,
+                () -> backupManagerService.isAppEligibleForBackup(PACKAGE_1));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#filterAppsEligibleForBackup(String[])}
+     * returns an {@code array} of only apps that are eligible for backup from an {@array} of
+     * inputted apps.
+     */
+    @Test
+    public void testFilterAppsEligibleForBackup() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        TransportMock transportMock = setUpCurrentTransport(mTransportManager, mTransport);
+        ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        String[] filtered =
+                backupManagerService.filterAppsEligibleForBackup(
+                        new String[] {PACKAGE_1, PACKAGE_2});
+
+        assertThat(filtered).asList().containsExactly(PACKAGE_1);
+        verify(mTransportManager)
+                .disposeOfTransportClient(eq(transportMock.transportClient), any());
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#filterAppsEligibleForBackup(String[])}
+     * returns an empty {@code array} if no inputted apps are eligible for backup.
+     */
+    @Test
+    public void testFilterAppsEligibleForBackup_whenNoneIsEligible() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        String[] filtered =
+                backupManagerService.filterAppsEligibleForBackup(
+                        new String[] {PACKAGE_1, PACKAGE_2});
+
+        assertThat(filtered).isEmpty();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#filterAppsEligibleForBackup(String[])}
+     * throws a {@link SecurityException} if the caller does not have backup permission.
+     */
+    @Test
+    public void testFilterAppsEligibleForBackup_withoutPermission() throws Exception {
+        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
+        setUpCurrentTransport(mTransportManager, mTransport);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                SecurityException.class,
+                () ->
+                        backupManagerService.filterAppsEligibleForBackup(
+                                new String[] {PACKAGE_1, PACKAGE_2}));
+    }
+
+    /* Tests for select transport */
+
+    private ComponentName mNewTransportComponent;
+    private TransportData mNewTransport;
+    private TransportMock mNewTransportMock;
+    private TransportData mOldTransport;
+    private TransportMock mOldTransportMock;
+
+    private void setUpForSelectTransport() throws Exception {
+        mNewTransport = backupTransport();
+        mNewTransportComponent = mNewTransport.getTransportComponent();
+        mOldTransport = d2dTransport();
+        List<TransportMock> transportMocks =
+                setUpTransports(mTransportManager, mNewTransport, mOldTransport, localTransport());
+        mNewTransportMock = transportMocks.get(0);
+        mOldTransportMock = transportMocks.get(1);
+        when(mTransportManager.selectTransport(eq(mNewTransport.transportName)))
+                .thenReturn(mOldTransport.transportName);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#selectBackupTransport(String)}
+     * successfully switches the current transport to the inputted transport, returns the name of
+     * the old transport, and disposes of the transport client after the operation.
+     */
+    @Test
+    public void testSelectBackupTransport() throws Exception {
+        setUpForSelectTransport();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        String oldTransport =
+                backupManagerService.selectBackupTransport(mNewTransport.transportName);
+
+        assertThat(getSettingsTransport()).isEqualTo(mNewTransport.transportName);
+        assertThat(oldTransport).isEqualTo(mOldTransport.transportName);
+        verify(mTransportManager)
+                .disposeOfTransportClient(eq(mNewTransportMock.transportClient), any());
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#selectBackupTransport(String)} throws a
+     * {@link SecurityException} if the caller does not have backup permission.
+     */
+    @Test
+    public void testSelectBackupTransport_withoutPermission() throws Exception {
+        setUpForSelectTransport();
+        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                SecurityException.class,
+                () -> backupManagerService.selectBackupTransport(mNewTransport.transportName));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#selectBackupTransportAsync(ComponentName,
+     * ISelectBackupTransportCallback)} successfully switches the current transport to the inputted
+     * transport and disposes of the transport client after the operation.
+     */
+    @Test
+    public void testSelectBackupTransportAsync() throws Exception {
+        setUpForSelectTransport();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.registerAndSelectTransport(eq(mNewTransportComponent)))
+                .thenReturn(BackupManager.SUCCESS);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
+
+        backupManagerService.selectBackupTransportAsync(mNewTransportComponent, callback);
+
+        mShadowBackupLooper.runToEndOfTasks();
+        assertThat(getSettingsTransport()).isEqualTo(mNewTransport.transportName);
+        verify(callback).onSuccess(eq(mNewTransport.transportName));
+        verify(mTransportManager)
+                .disposeOfTransportClient(eq(mNewTransportMock.transportClient), any());
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#selectBackupTransportAsync(ComponentName,
+     * ISelectBackupTransportCallback)} does not switch the current transport to the inputted
+     * transport and notifies the inputted callback of failure when it fails to register the
+     * transport.
+     */
+    @Test
+    public void testSelectBackupTransportAsync_whenRegistrationFails() throws Exception {
+        setUpForSelectTransport();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.registerAndSelectTransport(eq(mNewTransportComponent)))
+                .thenReturn(BackupManager.ERROR_TRANSPORT_UNAVAILABLE);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
+
+        backupManagerService.selectBackupTransportAsync(mNewTransportComponent, callback);
+
+        mShadowBackupLooper.runToEndOfTasks();
+        assertThat(getSettingsTransport()).isNotEqualTo(mNewTransport.transportName);
+        verify(callback).onFailure(anyInt());
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#selectBackupTransportAsync(ComponentName,
+     * ISelectBackupTransportCallback)} does not switch the current transport to the inputted
+     * transport and notifies the inputted callback of failure when the transport gets unregistered.
+     */
+    @Test
+    public void testSelectBackupTransportAsync_whenTransportGetsUnregistered() throws Exception {
+        setUpTransports(mTransportManager, mTransport.unregistered());
+        ComponentName newTransportComponent = mTransport.getTransportComponent();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.registerAndSelectTransport(eq(newTransportComponent)))
+                .thenReturn(BackupManager.SUCCESS);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class);
+
+        backupManagerService.selectBackupTransportAsync(newTransportComponent, callback);
+
+        mShadowBackupLooper.runToEndOfTasks();
+        assertThat(getSettingsTransport()).isNotEqualTo(mTransportName);
+        verify(callback).onFailure(anyInt());
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#selectBackupTransportAsync(ComponentName,
+     * ISelectBackupTransportCallback)} throws a {@link SecurityException} if the caller does not
+     * have backup permission.
+     */
+    @Test
+    public void testSelectBackupTransportAsync_withoutPermission() throws Exception {
+        setUpForSelectTransport();
+        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        ComponentName newTransportComponent = mNewTransport.getTransportComponent();
+
+        expectThrows(
+                SecurityException.class,
+                () ->
+                        backupManagerService.selectBackupTransportAsync(
+                                newTransportComponent, mock(ISelectBackupTransportCallback.class)));
+    }
+
+    private String getSettingsTransport() {
+        return ShadowSettings.ShadowSecure.getString(
+                mContext.getContentResolver(), Settings.Secure.BACKUP_TRANSPORT);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#getCurrentTransportComponent()} returns
+     * the {@link ComponentName} of the currently selected transport.
+     */
+    @Test
+    public void testGetCurrentTransportComponent() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.getCurrentTransportComponent())
+                .thenReturn(mTransport.getTransportComponent());
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        ComponentName transportComponent = backupManagerService.getCurrentTransportComponent();
+
+        assertThat(transportComponent).isEqualTo(mTransport.getTransportComponent());
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#getCurrentTransportComponent()} returns
+     * {@code null} if there is no currently selected transport.
+     */
+    @Test
+    public void testGetCurrentTransportComponent_whenNoTransportSelected() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.getCurrentTransportComponent()).thenReturn(null);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        ComponentName transportComponent = backupManagerService.getCurrentTransportComponent();
+
+        assertThat(transportComponent).isNull();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#getCurrentTransportComponent()} returns
+     * {@code null} if the currently selected transport is not registered.
+     */
+    @Test
+    public void testGetCurrentTransportComponent_whenTransportNotRegistered() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        when(mTransportManager.getCurrentTransportComponent())
+                .thenThrow(TransportNotRegisteredException.class);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        ComponentName transportComponent = backupManagerService.getCurrentTransportComponent();
+
+        assertThat(transportComponent).isNull();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#getCurrentTransportComponent()} throws a
+     * {@link SecurityException} if the caller does not have backup permission.
+     */
+    @Test
+    public void testGetCurrentTransportComponent_withoutPermission() throws Exception {
+        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(SecurityException.class, backupManagerService::getCurrentTransportComponent);
+    }
+
+    /* Tests for updating transport attributes */
+
+    private static final int PACKAGE_UID = 10;
+    private ComponentName mTransportComponent;
+    private int mTransportUid;
+
+    private void setUpForUpdateTransportAttributes() throws Exception {
+        mTransportComponent = mTransport.getTransportComponent();
+        String transportPackage = mTransportComponent.getPackageName();
+
+        ShadowPackageManager shadowPackageManager = shadowOf(mContext.getPackageManager());
+        shadowPackageManager.addPackage(transportPackage);
+        shadowPackageManager.setPackagesForUid(PACKAGE_UID, transportPackage);
+
+        mTransportUid = mContext.getPackageManager().getPackageUid(transportPackage, 0);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#updateTransportAttributes(int,
+     * ComponentName, String, Intent, String, Intent, String)} succeeds if the uid of the transport
+     * is same as the uid of the caller.
+     */
+    @Test
+    public void
+            testUpdateTransportAttributes_whenTransportUidEqualsCallingUid_callsTransportManager()
+                    throws Exception {
+        setUpForUpdateTransportAttributes();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        Intent configurationIntent = new Intent();
+        Intent dataManagementIntent = new Intent();
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        backupManagerService.updateTransportAttributes(
+                mTransportUid,
+                mTransportComponent,
+                mTransportName,
+                configurationIntent,
+                "currentDestinationString",
+                dataManagementIntent,
+                "dataManagementLabel");
+
+        verify(mTransportManager)
+                .updateTransportAttributes(
+                        eq(mTransportComponent),
+                        eq(mTransportName),
+                        eq(configurationIntent),
+                        eq("currentDestinationString"),
+                        eq(dataManagementIntent),
+                        eq("dataManagementLabel"));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#updateTransportAttributes(int,
+     * ComponentName, String, Intent, String, Intent, String)} throws a {@link SecurityException} if
+     * the uid of the transport is not equal to the uid of the caller.
+     */
+    @Test
+    public void testUpdateTransportAttributes_whenTransportUidNotEqualToCallingUid_throwsException()
+            throws Exception {
+        setUpForUpdateTransportAttributes();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                SecurityException.class,
+                () ->
+                        backupManagerService.updateTransportAttributes(
+                                mTransportUid + 1,
+                                mTransportComponent,
+                                mTransportName,
+                                new Intent(),
+                                "currentDestinationString",
+                                new Intent(),
+                                "dataManagementLabel"));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#updateTransportAttributes(int,
+     * ComponentName, String, Intent, String, Intent, String)} throws a {@link RuntimeException} if
+     * given a {@code null} transport component.
+     */
+    @Test
+    public void testUpdateTransportAttributes_whenTransportComponentNull_throwsException()
+            throws Exception {
+        setUpForUpdateTransportAttributes();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                RuntimeException.class,
+                () ->
+                        backupManagerService.updateTransportAttributes(
+                                mTransportUid,
+                                null,
+                                mTransportName,
+                                new Intent(),
+                                "currentDestinationString",
+                                new Intent(),
+                                "dataManagementLabel"));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#updateTransportAttributes(int,
+     * ComponentName, String, Intent, String, Intent, String)} throws a {@link RuntimeException} if
+     * given a {@code null} transport name.
+     */
+    @Test
+    public void testUpdateTransportAttributes_whenNameNull_throwsException() throws Exception {
+        setUpForUpdateTransportAttributes();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                RuntimeException.class,
+                () ->
+                        backupManagerService.updateTransportAttributes(
+                                mTransportUid,
+                                mTransportComponent,
+                                null,
+                                new Intent(),
+                                "currentDestinationString",
+                                new Intent(),
+                                "dataManagementLabel"));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#updateTransportAttributes(int,
+     * ComponentName, String, Intent, String, Intent, String)} throws a {@link RuntimeException} if
+     * given a {@code null} destination string.
+     */
+    @Test
+    public void testUpdateTransportAttributes_whenCurrentDestinationStringNull_throwsException()
+            throws Exception {
+        setUpForUpdateTransportAttributes();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                RuntimeException.class,
+                () ->
+                        backupManagerService.updateTransportAttributes(
+                                mTransportUid,
+                                mTransportComponent,
+                                mTransportName,
+                                new Intent(),
+                                null,
+                                new Intent(),
+                                "dataManagementLabel"));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#updateTransportAttributes(int,
+     * ComponentName, String, Intent, String, Intent, String)} throws a {@link RuntimeException} if
+     * given either a {@code null} data management label or {@code null} data management intent, but
+     * not both.
+     */
+    @Test
+    public void
+            testUpdateTransportAttributes_whenDataManagementArgsNullityDontMatch_throwsException()
+                    throws Exception {
+        setUpForUpdateTransportAttributes();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                RuntimeException.class,
+                () ->
+                        backupManagerService.updateTransportAttributes(
+                                mTransportUid,
+                                mTransportComponent,
+                                mTransportName,
+                                new Intent(),
+                                "currentDestinationString",
+                                null,
+                                "dataManagementLabel"));
+
+        expectThrows(
+                RuntimeException.class,
+                () ->
+                        backupManagerService.updateTransportAttributes(
+                                mTransportUid,
+                                mTransportComponent,
+                                mTransportName,
+                                new Intent(),
+                                "currentDestinationString",
+                                new Intent(),
+                                null));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#updateTransportAttributes(int,
+     * ComponentName, String, Intent, String, Intent, String)} succeeds if the caller has backup
+     * permission.
+     */
+    @Test
+    public void testUpdateTransportAttributes_whenPermissionGranted_callsThroughToTransportManager()
+            throws Exception {
+        setUpForUpdateTransportAttributes();
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        Intent configurationIntent = new Intent();
+        Intent dataManagementIntent = new Intent();
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        backupManagerService.updateTransportAttributes(
+                mTransportUid,
+                mTransportComponent,
+                mTransportName,
+                configurationIntent,
+                "currentDestinationString",
+                dataManagementIntent,
+                "dataManagementLabel");
+
+        verify(mTransportManager)
+                .updateTransportAttributes(
+                        eq(mTransportComponent),
+                        eq(mTransportName),
+                        eq(configurationIntent),
+                        eq("currentDestinationString"),
+                        eq(dataManagementIntent),
+                        eq("dataManagementLabel"));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#updateTransportAttributes(int,
+     * ComponentName, String, Intent, String, Intent, String)} throws a {@link SecurityException} if
+     * the caller does not have backup permission.
+     */
+    @Test
+    public void testUpdateTransportAttributes_whenPermissionDenied_throwsSecurityException()
+            throws Exception {
+        setUpForUpdateTransportAttributes();
+        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                SecurityException.class,
+                () ->
+                        backupManagerService.updateTransportAttributes(
+                                mTransportUid,
+                                mTransportComponent,
+                                mTransportName,
+                                new Intent(),
+                                "currentDestinationString",
+                                new Intent(),
+                                "dataManagementLabel"));
+    }
+
+    /* Tests for request backup */
+
+    @Mock private IBackupObserver mObserver;
+
+    private void setUpForRequestBackup(String... packages) throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        for (String packageName : packages) {
+            mShadowPackageManager.addPackage(packageName);
+            ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(packageName);
+        }
+        setUpCurrentTransport(mTransportManager, mTransport);
+    }
+
+    private void tearDownForRequestBackup() {
+        ShadowKeyValueBackupTask.reset();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} throws a {@link SecurityException} if the caller does not have backup permission.
+     */
+    @Test
+    public void testRequestBackup_whenPermissionDenied() throws Exception {
+        mShadowContext.denyPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                SecurityException.class,
+                () -> backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0));
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} throws an {@link IllegalArgumentException} if passed {@null} for packages.
+     */
+    @Test
+    public void testRequestBackup_whenPackagesNull() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                IllegalArgumentException.class,
+                () -> backupManagerService.requestBackup(null, mObserver, 0));
+        verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} throws an {@link IllegalArgumentException} if passed an empty {@code array} for
+     * packages.
+     */
+    @Test
+    public void testRequestBackup_whenPackagesEmpty() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+
+        expectThrows(
+                IllegalArgumentException.class,
+                () -> backupManagerService.requestBackup(new String[0], mObserver, 0));
+        verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} returns {@link BackupManager#ERROR_BACKUP_NOT_ALLOWED} if backup is disabled.
+     */
+    @Test
+    public void testRequestBackup_whenBackupDisabled() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        backupManagerService.setEnabled(false);
+
+        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
+
+        assertThat(result).isEqualTo(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
+        verify(mObserver).backupFinished(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} returns {@link BackupManager#ERROR_BACKUP_NOT_ALLOWED} if the system user hasn't gone
+     * through SUW.
+     */
+    @Test
+    public void testRequestBackup_whenNotProvisioned() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        backupManagerService.setProvisioned(false);
+
+        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
+
+        assertThat(result).isEqualTo(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
+        verify(mObserver).backupFinished(BackupManager.ERROR_BACKUP_NOT_ALLOWED);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} returns {@link BackupManager#ERROR_TRANSPORT_ABORTED} if the current transport is not
+     * registered.
+     */
+    @Test
+    public void testRequestBackup_whenTransportNotRegistered() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        setUpCurrentTransport(mTransportManager, mTransport.unregistered());
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        backupManagerService.setEnabled(true);
+        backupManagerService.setProvisioned(true);
+
+        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
+
+        assertThat(result).isEqualTo(BackupManager.ERROR_TRANSPORT_ABORTED);
+        verify(mObserver).backupFinished(BackupManager.ERROR_TRANSPORT_ABORTED);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} returns {@link BackupManager#SUCCESS} and notifies the observer of {@link
+     * BackupManager#ERROR_BACKUP_NOT_ALLOWED} if the specified app is not eligible for backup.
+     */
+    @Test
+    public void testRequestBackup_whenAppNotEligibleForBackup() throws Exception {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        mShadowPackageManager.addPackage(PACKAGE_1);
+        setUpCurrentTransport(mTransportManager, mTransport);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        backupManagerService.setEnabled(true);
+        backupManagerService.setProvisioned(true);
+        // Haven't set PACKAGE_1 as eligible
+
+        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
+
+        assertThat(result).isEqualTo(BackupManager.SUCCESS);
+        verify(mObserver).onResult(PACKAGE_1, BackupManager.ERROR_BACKUP_NOT_ALLOWED);
+        // TODO: We probably don't need to kick-off KeyValueBackupTask when list is empty
+        tearDownForRequestBackup();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} returns {@link BackupManager#SUCCESS} and updates bookkeeping if backup for a key value
+     * package succeeds.
+     */
+    @Test
+    @Config(shadows = ShadowKeyValueBackupTask.class)
+    public void testRequestBackup_whenPackageIsKeyValue() throws Exception {
+        setUpForRequestBackup(PACKAGE_1);
+        UserBackupManagerService backupManagerService =
+                createBackupManagerServiceForRequestBackup();
+
+        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
+
+        mShadowBackupLooper.runToEndOfTasks();
+        assertThat(result).isEqualTo(BackupManager.SUCCESS);
+        ShadowKeyValueBackupTask shadowTask = ShadowKeyValueBackupTask.getLastCreated();
+        assertThat(shadowTask.getQueue()).containsExactly(PACKAGE_1);
+        assertThat(shadowTask.getPendingFullBackups()).isEmpty();
+        // TODO: Assert more about KeyValueBackupTask
+        tearDownForRequestBackup();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#requestBackup(String[], IBackupObserver,
+     * int)} returns {@link BackupManager#SUCCESS} and updates bookkeeping if backup for a full
+     * backup package succeeds.
+     */
+    @Test
+    @Config(shadows = ShadowKeyValueBackupTask.class)
+    public void testRequestBackup_whenPackageIsFullBackup() throws Exception {
+        setUpForRequestBackup(PACKAGE_1);
+        ShadowAppBackupUtils.setAppGetsFullBackup(PACKAGE_1);
+        UserBackupManagerService backupManagerService =
+                createBackupManagerServiceForRequestBackup();
+
+        int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0);
+
+        mShadowBackupLooper.runToEndOfTasks();
+        assertThat(result).isEqualTo(BackupManager.SUCCESS);
+        ShadowKeyValueBackupTask shadowTask = ShadowKeyValueBackupTask.getLastCreated();
+        assertThat(shadowTask.getQueue()).isEmpty();
+        assertThat(shadowTask.getPendingFullBackups()).containsExactly(PACKAGE_1);
+        // TODO: Assert more about KeyValueBackupTask
+        tearDownForRequestBackup();
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#backupNow()} clears the calling identity
+     * for scheduling a job and then restores the original calling identity after the operation.
+     */
+    @Test
+    @Config(shadows = {ShadowBinder.class, ShadowKeyValueBackupJob.class})
+    public void testBackupNow_clearsCallingIdentityForJobScheduler() {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        setUpPowerManager(backupManagerService);
+        ShadowBinder.setCallingUid(1);
+
+        backupManagerService.backupNow();
+
+        assertThat(ShadowKeyValueBackupJob.getCallingUid()).isEqualTo(ShadowBinder.LOCAL_UID);
+        assertThat(Binder.getCallingUid()).isEqualTo(1);
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#backupNow()} restores the original
+     * calling identity if an exception is thrown during execution.
+     */
+    @Test
+    @Config(shadows = {ShadowBinder.class, ShadowKeyValueBackupJobException.class})
+    public void testBackupNow_whenExceptionThrown_restoresCallingIdentity() {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        setUpPowerManager(backupManagerService);
+        ShadowBinder.setCallingUid(1);
+
+        expectThrows(IllegalArgumentException.class, backupManagerService::backupNow);
+        assertThat(ShadowKeyValueBackupJobException.getCallingUid())
+                .isEqualTo(ShadowBinder.LOCAL_UID);
+        assertThat(Binder.getCallingUid()).isEqualTo(1);
+    }
+
+    private UserBackupManagerService createBackupManagerServiceForRequestBackup() {
+        UserBackupManagerService backupManagerService = createInitializedBackupManagerService();
+        backupManagerService.setEnabled(true);
+        backupManagerService.setProvisioned(true);
+        return backupManagerService;
+    }
+
+    /**
+     * Test verifying that {@link UserBackupManagerService#UserBackupManagerService(Context,
+     * Trampoline, HandlerThread, File, File, TransportManager)} posts a transport registration task
+     * to the backup handler thread.
+     */
+    @Test
+    public void testConstructor_postRegisterTransports() {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+
+        createBackupManagerService();
+
+        mShadowBackupLooper.runToEndOfTasks();
+        verify(mTransportManager).registerTransports();
+    }
+
+    /**
+     * Test verifying that the {@link UserBackupManagerService#UserBackupManagerService(Context,
+     * Trampoline, HandlerThread, File, File, TransportManager)} does not directly register
+     * transports in its own thread.
+     */
+    @Test
+    public void testConstructor_doesNotRegisterTransportsSynchronously() {
+        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);
+
+        createBackupManagerService();
+
+        // Operations posted to mBackupThread only run with mShadowBackupLooper.runToEndOfTasks()
+        verify(mTransportManager, never()).registerTransports();
+    }
+
+    private UserBackupManagerService createBackupManagerService() {
+        return new UserBackupManagerService(
+                mContext,
+                new Trampoline(mContext),
+                mBackupThread,
+                mBaseStateDir,
+                mDataDir,
+                mTransportManager);
+    }
+
+    private UserBackupManagerService createInitializedBackupManagerService() {
+        return BackupManagerServiceTestUtils.createInitializedUserBackupManagerService(
+                mContext, mBackupThread, mBaseStateDir, mDataDir, mTransportManager);
+    }
+
+    private void setUpPowerManager(UserBackupManagerService backupManagerService) {
+        PowerManager powerManagerMock = mock(PowerManager.class);
+        when(powerManagerMock.getPowerSaveState(anyInt()))
+                .thenReturn(new PowerSaveState.Builder().setBatterySaverEnabled(true).build());
+        backupManagerService.setPowerManager(powerManagerMock);
+    }
+
+    /**
+     * We can't mock the void method {@link #schedule(Context, long, BackupManagerConstants)} so we
+     * extend {@link ShadowKeyValueBackupJob} and throw an exception at the end of the method.
+     */
+    @Implements(KeyValueBackupJob.class)
+    public static class ShadowKeyValueBackupJobException extends ShadowKeyValueBackupJob {
+        /**
+         * Implementation of {@link ShadowKeyValueBackupJob#schedule(Context, long,
+         * BackupManagerConstants)} that throws an {@link IllegalArgumentException}.
+         */
+        public static void schedule(Context ctx, long delay, BackupManagerConstants constants) {
+            ShadowKeyValueBackupJob.schedule(ctx, delay, constants);
+            throw new IllegalArgumentException();
+        }
+    }
+}
diff --git a/services/robotests/src/com/android/server/backup/encryption/storage/BackupEncryptionDbTest.java b/services/robotests/src/com/android/server/backup/encryption/storage/BackupEncryptionDbTest.java
new file mode 100644
index 0000000..87f21bf
--- /dev/null
+++ b/services/robotests/src/com/android/server/backup/encryption/storage/BackupEncryptionDbTest.java
@@ -0,0 +1,55 @@
+/*
+ * 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.server.backup.encryption.storage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.platform.test.annotations.Presubmit;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+/** Tests for {@link BackupEncryptionDb}. */
+@RunWith(RobolectricTestRunner.class)
+@Presubmit
+public class BackupEncryptionDbTest {
+    private BackupEncryptionDb mBackupEncryptionDb;
+
+    /** Creates an empty {@link BackupEncryptionDb} */
+    @Before
+    public void setUp() {
+        mBackupEncryptionDb = BackupEncryptionDb.newInstance(RuntimeEnvironment.application);
+    }
+
+    /**
+     * Tests that the tertiary keys table gets cleared when calling {@link
+     * BackupEncryptionDb#clear()}.
+     */
+    @Test
+    public void clear_withNonEmptyTertiaryKeysTable_clearsTertiaryKeysTable() throws Exception {
+        String secondaryKeyAlias = "secondaryKeyAlias";
+        TertiaryKeysTable tertiaryKeysTable = mBackupEncryptionDb.getTertiaryKeysTable();
+        tertiaryKeysTable.addKey(new TertiaryKey(secondaryKeyAlias, "packageName", new byte[0]));
+
+        mBackupEncryptionDb.clear();
+
+        assertThat(tertiaryKeysTable.getAllKeys(secondaryKeyAlias)).isEmpty();
+    }
+}
diff --git a/services/robotests/src/com/android/server/backup/encryption/storage/TertiaryKeysTableTest.java b/services/robotests/src/com/android/server/backup/encryption/storage/TertiaryKeysTableTest.java
new file mode 100644
index 0000000..319ec89
--- /dev/null
+++ b/services/robotests/src/com/android/server/backup/encryption/storage/TertiaryKeysTableTest.java
@@ -0,0 +1,179 @@
+/*
+ * 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.server.backup.encryption.storage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.platform.test.annotations.Presubmit;
+
+import com.android.server.backup.testing.CryptoTestUtils;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.Map;
+import java.util.Optional;
+
+/** Tests for {@link TertiaryKeysTable}. */
+@RunWith(RobolectricTestRunner.class)
+@Presubmit
+public class TertiaryKeysTableTest {
+    private static final int KEY_SIZE_BYTES = 32;
+    private static final String SECONDARY_ALIAS = "phoebe";
+    private static final String PACKAGE_NAME = "generic.package.name";
+
+    private TertiaryKeysTable mTertiaryKeysTable;
+
+    /** Creates an empty {@link BackupEncryptionDb}. */
+    @Before
+    public void setUp() {
+        mTertiaryKeysTable =
+                BackupEncryptionDb.newInstance(RuntimeEnvironment.application)
+                        .getTertiaryKeysTable();
+    }
+
+    /** Tests that new {@link TertiaryKey}s get successfully added to the database. */
+    @Test
+    public void addKey_onEmptyDatabase_putsKeyInDb() throws Exception {
+        byte[] key = generateRandomKey();
+        TertiaryKey keyToInsert = new TertiaryKey(SECONDARY_ALIAS, PACKAGE_NAME, key);
+
+        long result = mTertiaryKeysTable.addKey(keyToInsert);
+
+        assertThat(result).isNotEqualTo(-1);
+        Optional<TertiaryKey> maybeKeyInDb =
+                mTertiaryKeysTable.getKey(SECONDARY_ALIAS, PACKAGE_NAME);
+        assertThat(maybeKeyInDb.isPresent()).isTrue();
+        TertiaryKey keyInDb = maybeKeyInDb.get();
+        assertTertiaryKeysEqual(keyInDb, keyToInsert);
+    }
+
+    /** Tests that keys replace older keys with the same secondary alias and package name. */
+    @Test
+    public void addKey_havingSameSecondaryAliasAndPackageName_replacesOldKey() throws Exception {
+        mTertiaryKeysTable.addKey(
+                new TertiaryKey(SECONDARY_ALIAS, PACKAGE_NAME, generateRandomKey()));
+        byte[] newKey = generateRandomKey();
+
+        long result =
+                mTertiaryKeysTable.addKey(new TertiaryKey(SECONDARY_ALIAS, PACKAGE_NAME, newKey));
+
+        assertThat(result).isNotEqualTo(-1);
+        TertiaryKey keyInDb = mTertiaryKeysTable.getKey(SECONDARY_ALIAS, PACKAGE_NAME).get();
+        assertThat(keyInDb.getWrappedKeyBytes()).isEqualTo(newKey);
+    }
+
+    /**
+     * Tests that keys do not replace older keys with the same package name but a different alias.
+     */
+    @Test
+    public void addKey_havingSamePackageNameButDifferentAlias_doesNotReplaceOldKey()
+            throws Exception {
+        String alias2 = "karl";
+        TertiaryKey key1 = generateTertiaryKey(SECONDARY_ALIAS, PACKAGE_NAME);
+        TertiaryKey key2 = generateTertiaryKey(alias2, PACKAGE_NAME);
+
+        long primaryKey1 = mTertiaryKeysTable.addKey(key1);
+        long primaryKey2 = mTertiaryKeysTable.addKey(key2);
+
+        assertThat(primaryKey1).isNotEqualTo(primaryKey2);
+        assertThat(mTertiaryKeysTable.getKey(SECONDARY_ALIAS, PACKAGE_NAME).isPresent()).isTrue();
+        assertTertiaryKeysEqual(
+                mTertiaryKeysTable.getKey(SECONDARY_ALIAS, PACKAGE_NAME).get(), key1);
+        assertThat(mTertiaryKeysTable.getKey(alias2, PACKAGE_NAME).isPresent()).isTrue();
+        assertTertiaryKeysEqual(mTertiaryKeysTable.getKey(alias2, PACKAGE_NAME).get(), key2);
+    }
+
+    /**
+     * Tests that {@link TertiaryKeysTable#getKey(String, String)} returns an empty {@link Optional}
+     * for a missing key.
+     */
+    @Test
+    public void getKey_forMissingKey_returnsEmptyOptional() throws Exception {
+        Optional<TertiaryKey> key = mTertiaryKeysTable.getKey(SECONDARY_ALIAS, PACKAGE_NAME);
+
+        assertThat(key.isPresent()).isFalse();
+    }
+
+    /**
+     * Tests that {@link TertiaryKeysTable#getAllKeys(String)} returns an empty map when no keys
+     * with the secondary alias exist.
+     */
+    @Test
+    public void getAllKeys_withNoKeysForAlias_returnsEmptyMap() throws Exception {
+        assertThat(mTertiaryKeysTable.getAllKeys(SECONDARY_ALIAS)).isEmpty();
+    }
+
+    /**
+     * Tests that {@link TertiaryKeysTable#getAllKeys(String)} returns all keys corresponding to the
+     * provided secondary alias.
+     */
+    @Test
+    public void getAllKeys_withMatchingKeys_returnsAllKeysWrappedWithSecondary() throws Exception {
+        TertiaryKey key1 = generateTertiaryKey(SECONDARY_ALIAS, PACKAGE_NAME);
+        mTertiaryKeysTable.addKey(key1);
+        String package2 = "generic.package.two";
+        TertiaryKey key2 = generateTertiaryKey(SECONDARY_ALIAS, package2);
+        mTertiaryKeysTable.addKey(key2);
+        String package3 = "generic.package.three";
+        TertiaryKey key3 = generateTertiaryKey(SECONDARY_ALIAS, package3);
+        mTertiaryKeysTable.addKey(key3);
+
+        Map<String, TertiaryKey> keysByPackageName = mTertiaryKeysTable.getAllKeys(SECONDARY_ALIAS);
+
+        assertThat(keysByPackageName).hasSize(3);
+        assertThat(keysByPackageName).containsKey(PACKAGE_NAME);
+        assertTertiaryKeysEqual(keysByPackageName.get(PACKAGE_NAME), key1);
+        assertThat(keysByPackageName).containsKey(package2);
+        assertTertiaryKeysEqual(keysByPackageName.get(package2), key2);
+        assertThat(keysByPackageName).containsKey(package3);
+        assertTertiaryKeysEqual(keysByPackageName.get(package3), key3);
+    }
+
+    /**
+     * Tests that {@link TertiaryKeysTable#getAllKeys(String)} does not return any keys wrapped with
+     * another alias.
+     */
+    @Test
+    public void getAllKeys_withMatchingKeys_doesNotReturnKeysWrappedWithOtherAlias()
+            throws Exception {
+        mTertiaryKeysTable.addKey(generateTertiaryKey(SECONDARY_ALIAS, PACKAGE_NAME));
+        mTertiaryKeysTable.addKey(generateTertiaryKey("somekey", "generic.package.two"));
+
+        Map<String, TertiaryKey> keysByPackageName = mTertiaryKeysTable.getAllKeys(SECONDARY_ALIAS);
+
+        assertThat(keysByPackageName).hasSize(1);
+        assertThat(keysByPackageName).containsKey(PACKAGE_NAME);
+    }
+
+    private void assertTertiaryKeysEqual(TertiaryKey a, TertiaryKey b) {
+        assertThat(a.getSecondaryKeyAlias()).isEqualTo(b.getSecondaryKeyAlias());
+        assertThat(a.getPackageName()).isEqualTo(b.getPackageName());
+        assertThat(a.getWrappedKeyBytes()).isEqualTo(b.getWrappedKeyBytes());
+    }
+
+    private TertiaryKey generateTertiaryKey(String alias, String packageName) {
+        return new TertiaryKey(alias, packageName, generateRandomKey());
+    }
+
+    private byte[] generateRandomKey() {
+        return CryptoTestUtils.generateRandomBytes(KEY_SIZE_BYTES);
+    }
+}
diff --git a/services/robotests/src/com/android/server/backup/fullbackup/AppMetadataBackupWriterTest.java b/services/robotests/src/com/android/server/backup/fullbackup/AppMetadataBackupWriterTest.java
index fd7ced2..423512c 100644
--- a/services/robotests/src/com/android/server/backup/fullbackup/AppMetadataBackupWriterTest.java
+++ b/services/robotests/src/com/android/server/backup/fullbackup/AppMetadataBackupWriterTest.java
@@ -1,10 +1,10 @@
 package com.android.server.backup.fullbackup;
 
-import static com.android.server.backup.BackupManagerService.BACKUP_MANIFEST_FILENAME;
-import static com.android.server.backup.BackupManagerService.BACKUP_MANIFEST_VERSION;
-import static com.android.server.backup.BackupManagerService.BACKUP_METADATA_FILENAME;
-import static com.android.server.backup.BackupManagerService.BACKUP_METADATA_VERSION;
-import static com.android.server.backup.BackupManagerService.BACKUP_WIDGET_METADATA_TOKEN;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_VERSION;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_FILENAME;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_VERSION;
+import static com.android.server.backup.UserBackupManagerService.BACKUP_WIDGET_METADATA_TOKEN;
 
 import static com.google.common.truth.Truth.assertThat;
 
diff --git a/services/robotests/src/com/android/server/backup/internal/PerformInitializeTaskTest.java b/services/robotests/src/com/android/server/backup/internal/PerformInitializeTaskTest.java
index 6ee6eb6..a14cc51 100644
--- a/services/robotests/src/com/android/server/backup/internal/PerformInitializeTaskTest.java
+++ b/services/robotests/src/com/android/server/backup/internal/PerformInitializeTaskTest.java
@@ -46,6 +46,7 @@
 import com.android.internal.backup.IBackupTransport;
 import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.testing.TransportData;
 import com.android.server.backup.testing.TransportTestUtils;
 import com.android.server.backup.testing.TransportTestUtils.TransportMock;
@@ -71,7 +72,7 @@
 @Config(shadows = ShadowSlog.class)
 @Presubmit
 public class PerformInitializeTaskTest {
-    @Mock private BackupManagerService mBackupManagerService;
+    @Mock private UserBackupManagerService mBackupManagerService;
     @Mock private TransportManager mTransportManager;
     @Mock private OnTaskFinishedListener mListener;
     @Mock private IBackupTransport mTransportBinder;
diff --git a/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupReporterTest.java b/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupReporterTest.java
index a0afb5e..a1b8a95 100644
--- a/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupReporterTest.java
+++ b/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupReporterTest.java
@@ -26,7 +26,7 @@
 import android.platform.test.annotations.Presubmit;
 import android.util.Log;
 
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.testing.shadows.ShadowEventLog;
 import com.android.server.testing.shadows.ShadowSlog;
 
@@ -41,7 +41,7 @@
 @Config(shadows = {ShadowEventLog.class, ShadowSlog.class})
 @Presubmit
 public class KeyValueBackupReporterTest {
-    @Mock private BackupManagerService mBackupManagerService;
+    @Mock private UserBackupManagerService mBackupManagerService;
     @Mock private IBackupObserver mObserver;
     @Mock private IBackupManagerMonitor mMonitor;
 
diff --git a/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java b/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
index a69f007..1aa4999 100644
--- a/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
+++ b/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
@@ -26,7 +26,7 @@
 
 import static com.android.server.backup.testing.BackupManagerServiceTestUtils.createBackupWakeLock;
 import static com.android.server.backup.testing.BackupManagerServiceTestUtils
-        .createInitializedBackupManagerService;
+        .createInitializedUserBackupManagerService;
 import static com.android.server.backup.testing.BackupManagerServiceTestUtils
         .setUpBackupManagerServiceBasics;
 import static com.android.server.backup.testing.BackupManagerServiceTestUtils
@@ -103,12 +103,12 @@
 
 import com.android.internal.backup.IBackupTransport;
 import com.android.server.EventLogTags;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.BackupRestoreTask;
 import com.android.server.backup.DataChangedJournal;
 import com.android.server.backup.KeyValueBackupJob;
 import com.android.server.backup.PackageManagerBackupAgent;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.internal.BackupHandler;
 import com.android.server.backup.internal.OnTaskFinishedListener;
 import com.android.server.backup.remote.RemoteCall;
@@ -178,7 +178,7 @@
     @Mock private IBackupObserver mObserver;
     @Mock private IBackupManagerMonitor mMonitor;
     @Mock private OnTaskFinishedListener mListener;
-    private BackupManagerService mBackupManagerService;
+    private UserBackupManagerService mBackupManagerService;
     private TransportData mTransport;
     private ShadowLooper mShadowBackupLooper;
     private Handler mBackupHandler;
@@ -227,7 +227,7 @@
         setUpBinderCallerAndApplicationAsSystem(mApplication);
         mBackupManagerService =
                 spy(
-                        createInitializedBackupManagerService(
+                        createInitializedUserBackupManagerService(
                                 mContext, mBaseStateDir, mDataDir, mTransportManager));
         setUpBackupManagerServiceBasics(
                 mBackupManagerService,
@@ -720,7 +720,7 @@
     }
 
     /**
-     * Agent unavailable means {@link BackupManagerService#bindToAgentSynchronous(ApplicationInfo,
+     * Agent unavailable means {@link UserBackupManagerService#bindToAgentSynchronous(ApplicationInfo,
      * int)} returns {@code null}.
      *
      * @see #setUpAgent(PackageData)
@@ -2597,7 +2597,7 @@
      *
      * <ul>
      *   <li>The transport being initialized with {@link IBackupTransport#initializeDevice()}
-     *   <li>{@link BackupManagerService#resetBackupState(File)} being called, which will:
+     *   <li>{@link UserBackupManagerService#resetBackupState(File)} being called, which will:
      *       <ul>
      *         <li>Reset processed packages journal.
      *         <li>Reset current token to 0.
@@ -2617,7 +2617,7 @@
 
     /**
      * Forces transport initialization and call to {@link
-     * BackupManagerService#resetBackupState(File)}
+     * UserBackupManagerService#resetBackupState(File)}
      */
     private void deletePmStateFile() throws IOException {
         Files.deleteIfExists(getStateFile(mTransport, PM_PACKAGE));
diff --git a/services/robotests/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java b/services/robotests/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java
index 0e2b95b..859392d 100644
--- a/services/robotests/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java
+++ b/services/robotests/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java
@@ -51,8 +51,8 @@
 
 import com.android.server.EventLogTags;
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.TransportManager;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.internal.BackupHandler;
 import com.android.server.backup.testing.TransportData;
 import com.android.server.backup.testing.TransportTestUtils;
@@ -85,7 +85,7 @@
     private static final long TOKEN_1 = 1L;
     private static final long TOKEN_2 = 2L;
 
-    @Mock private BackupManagerService mBackupManagerService;
+    @Mock private UserBackupManagerService mBackupManagerService;
     @Mock private TransportManager mTransportManager;
     @Mock private IRestoreObserver mObserver;
     @Mock private IBackupManagerMonitor mMonitor;
diff --git a/services/robotests/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java b/services/robotests/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java
index 603a471..bacc44e 100644
--- a/services/robotests/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java
+++ b/services/robotests/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java
@@ -18,9 +18,7 @@
 
 import static com.android.server.backup.testing.TestUtils.runToEndOfTasks;
 
-import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -36,43 +34,41 @@
 import android.os.Looper;
 import android.os.PowerManager;
 import android.os.Process;
-import android.util.SparseArray;
+import android.util.Log;
 
 import com.android.server.backup.BackupAgentTimeoutParameters;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.Trampoline;
 import com.android.server.backup.TransportManager;
-import com.android.server.backup.internal.Operation;
+import com.android.server.backup.UserBackupManagerService;
 
 import org.mockito.stubbing.Answer;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowBinder;
-import org.robolectric.shadows.ShadowLog;
 
 import java.io.File;
 import java.lang.Thread.UncaughtExceptionHandler;
 import java.util.concurrent.atomic.AtomicReference;
 
-/** Test utils for {@link BackupManagerService} and friends. */
+/** Test utils for {@link UserBackupManagerService} and friends. */
 public class BackupManagerServiceTestUtils {
     /**
      * If the class-under-test is going to execute methods as the system, it's a good idea to also
      * call {@link #setUpBinderCallerAndApplicationAsSystem(Application)} before this method.
      */
-    public static BackupManagerService createInitializedBackupManagerService(
+    public static UserBackupManagerService createInitializedUserBackupManagerService(
             Context context, File baseStateDir, File dataDir, TransportManager transportManager) {
-        return createInitializedBackupManagerService(
+        return createInitializedUserBackupManagerService(
                 context, startBackupThread(null), baseStateDir, dataDir, transportManager);
     }
 
-    public static BackupManagerService createInitializedBackupManagerService(
+    public static UserBackupManagerService createInitializedUserBackupManagerService(
             Context context,
             HandlerThread backupThread,
             File baseStateDir,
             File dataDir,
             TransportManager transportManager) {
-        BackupManagerService backupManagerService =
-                new BackupManagerService(
+        UserBackupManagerService backupManagerService =
+                new UserBackupManagerService(
                         context,
                         new Trampoline(context),
                         backupThread,
@@ -84,15 +80,16 @@
     }
 
     /**
-     * Sets up basic mocks for {@link BackupManagerService} mock. If {@code backupManagerService} is
-     * a spy, make sure you provide in the arguments the same objects that the original object uses.
+     * Sets up basic mocks for {@link UserBackupManagerService} mock. If {@code
+     * backupManagerService} is a spy, make sure you provide in the arguments the same objects that
+     * the original object uses.
      *
      * <p>If the class-under-test is going to execute methods as the system, it's a good idea to
      * also call {@link #setUpBinderCallerAndApplicationAsSystem(Application)}.
      */
     @SuppressWarnings("ResultOfMethodCallIgnored")
     public static void setUpBackupManagerServiceBasics(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             Application application,
             TransportManager transportManager,
             PackageManager packageManager,
@@ -192,8 +189,7 @@
     public static HandlerThread startSilentBackupThread(String tag) {
         return startBackupThread(
                 (thread, e) ->
-                        ShadowLog.e(
-                                tag, "Uncaught exception in test thread " + thread.getName(), e));
+                        Log.e(tag, "Uncaught exception in test thread " + thread.getName(), e));
     }
 
     private BackupManagerServiceTestUtils() {}
diff --git a/services/robotests/src/com/android/server/backup/testing/CryptoTestUtils.java b/services/robotests/src/com/android/server/backup/testing/CryptoTestUtils.java
index 83e8461..0428796 100644
--- a/services/robotests/src/com/android/server/backup/testing/CryptoTestUtils.java
+++ b/services/robotests/src/com/android/server/backup/testing/CryptoTestUtils.java
@@ -17,6 +17,8 @@
 package com.android.server.backup.testing;
 
 import java.security.NoSuchAlgorithmException;
+import java.util.Random;
+
 import javax.crypto.KeyGenerator;
 import javax.crypto.SecretKey;
 
@@ -32,4 +34,12 @@
         keyGenerator.init(KEY_SIZE_BITS);
         return keyGenerator.generateKey();
     }
+
+    /** Generates a byte array of size {@code n} containing random bytes. */
+    public static byte[] generateRandomBytes(int n) {
+        byte[] bytes = new byte[n];
+        Random random = new Random();
+        random.nextBytes(bytes);
+        return bytes;
+    }
 }
diff --git a/services/robotests/src/com/android/server/backup/testing/TestUtils.java b/services/robotests/src/com/android/server/backup/testing/TestUtils.java
index 2f54513..3fe1f3f 100644
--- a/services/robotests/src/com/android/server/backup/testing/TestUtils.java
+++ b/services/robotests/src/com/android/server/backup/testing/TestUtils.java
@@ -25,12 +25,12 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.MessageQueue;
+import android.os.SystemClock;
 
 import com.android.server.testing.shadows.ShadowEventLog;
 
 import org.robolectric.shadows.ShadowLog;
 import org.robolectric.shadows.ShadowLooper;
-import org.robolectric.shadows.ShadowSystemClock;
 
 import java.util.Arrays;
 import java.util.concurrent.Callable;
@@ -87,7 +87,7 @@
         // specific time to the looper the time of those messages will be before the looper's time.
         // To fix this we advance SystemClock as well since that is from where the handlers read
         // time.
-        ShadowSystemClock.setCurrentTimeMillis(shadowLooper.getScheduler().getCurrentTime());
+        SystemClock.setCurrentTimeMillis(shadowLooper.getScheduler().getCurrentTime());
     }
 
     /**
diff --git a/services/robotests/src/com/android/server/location/NtpTimeHelperTest.java b/services/robotests/src/com/android/server/location/NtpTimeHelperTest.java
index aac0a34..a8a258f 100644
--- a/services/robotests/src/com/android/server/location/NtpTimeHelperTest.java
+++ b/services/robotests/src/com/android/server/location/NtpTimeHelperTest.java
@@ -5,6 +5,7 @@
 import static org.mockito.Mockito.doReturn;
 
 import android.os.Looper;
+import android.os.SystemClock;
 import android.platform.test.annotations.Presubmit;
 import android.util.NtpTrustedTime;
 
@@ -18,7 +19,6 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowLooper;
-import org.robolectric.shadows.ShadowSystemClock;
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -74,7 +74,7 @@
         doReturn(true).when(mMockNtpTrustedTime).forceRefresh();
         doReturn(1L).when(mMockNtpTrustedTime).getCacheAge();
         doReturn(MOCK_NTP_TIME).when(mMockNtpTrustedTime).getCachedNtpTime();
-        ShadowSystemClock.sleep(NtpTimeHelper.RETRY_INTERVAL);
+        SystemClock.sleep(NtpTimeHelper.RETRY_INTERVAL);
 
         waitForTasksToBePostedOnHandlerAndRunThem();
         assertThat(mCountDownLatch.await(2, TimeUnit.SECONDS)).isTrue();
diff --git a/services/robotests/src/com/android/server/testing/shadows/ShadowKeyValueBackupTask.java b/services/robotests/src/com/android/server/testing/shadows/ShadowKeyValueBackupTask.java
index ca80664..ac5d2da 100644
--- a/services/robotests/src/com/android/server/testing/shadows/ShadowKeyValueBackupTask.java
+++ b/services/robotests/src/com/android/server/testing/shadows/ShadowKeyValueBackupTask.java
@@ -18,8 +18,8 @@
 
 import android.annotation.Nullable;
 
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.DataChangedJournal;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.internal.OnTaskFinishedListener;
 import com.android.server.backup.keyvalue.KeyValueBackupReporter;
 import com.android.server.backup.keyvalue.KeyValueBackupTask;
@@ -54,7 +54,7 @@
 
     @Implementation
     protected void __constructor__(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             TransportClient transportClient,
             String transportDirName,
             List<String> queue,
diff --git a/services/robotests/src/com/android/server/testing/shadows/ShadowPerformUnifiedRestoreTask.java b/services/robotests/src/com/android/server/testing/shadows/ShadowPerformUnifiedRestoreTask.java
index 228d4eb..2cebbeb 100644
--- a/services/robotests/src/com/android/server/testing/shadows/ShadowPerformUnifiedRestoreTask.java
+++ b/services/robotests/src/com/android/server/testing/shadows/ShadowPerformUnifiedRestoreTask.java
@@ -21,7 +21,7 @@
 import android.app.backup.IRestoreObserver;
 import android.content.pm.PackageInfo;
 
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.internal.OnTaskFinishedListener;
 import com.android.server.backup.restore.PerformUnifiedRestoreTask;
 import com.android.server.backup.transport.TransportClient;
@@ -47,7 +47,7 @@
         sLastShadow = null;
     }
 
-    private BackupManagerService mBackupManagerService;
+    private UserBackupManagerService mBackupManagerService;
     @Nullable private PackageInfo mPackage;
     private boolean mIsFullSystemRestore;
     @Nullable private String[] mFilterSet;
@@ -55,7 +55,7 @@
 
     @Implementation
     protected void __constructor__(
-            BackupManagerService backupManagerService,
+            UserBackupManagerService backupManagerService,
             TransportClient transportClient,
             IRestoreObserver observer,
             IBackupManagerMonitor monitor,
diff --git a/services/tests/mockingservicestests/Android.bp b/services/tests/mockingservicestests/Android.bp
new file mode 100644
index 0000000..ebc816d
--- /dev/null
+++ b/services/tests/mockingservicestests/Android.bp
@@ -0,0 +1,46 @@
+// 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.
+
+android_test {
+    name: "FrameworksMockingServicesTests",
+
+    srcs: ["src/**/*.java"],
+
+    static_libs: [
+        "services.core",
+        "services.net",
+        "androidx.test.runner",
+        "mockito-target-extended-minus-junit4",
+        "platform-test-annotations",
+    ],
+
+    libs: [
+        "android.test.mock",
+        "android.test.base",
+        "android.test.runner",
+    ],
+
+    jni_libs: [
+        "libdexmakerjvmtiagent",
+        "libstaticjvmtiagent",
+    ],
+
+    certificate: "platform",
+    platform_apis: true,
+    test_suites: ["device-tests"],
+
+    optimize: {
+        enabled: false,
+    },
+}
diff --git a/services/tests/mockingservicestests/Android.mk b/services/tests/mockingservicestests/Android.mk
deleted file mode 100644
index b21b3e4..0000000
--- a/services/tests/mockingservicestests/Android.mk
+++ /dev/null
@@ -1,42 +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.
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-    services.core \
-    services.net \
-    androidx.test.runner \
-    mockito-target-extended-minus-junit4 \
-    platform-test-annotations \
-
-LOCAL_JAVA_LIBRARIES := android.test.mock android.test.base android.test.runner
-
-LOCAL_JNI_SHARED_LIBRARIES := \
-    libdexmakerjvmtiagent \
-    libstaticjvmtiagent \
-
-LOCAL_CERTIFICATE := platform
-LOCAL_PACKAGE_NAME := FrameworksMockingServicesTests
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_COMPATIBILITY_SUITE := device-tests
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-include $(BUILD_PACKAGE)
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
new file mode 100644
index 0000000..e804342
--- /dev/null
+++ b/services/tests/servicestests/Android.bp
@@ -0,0 +1,104 @@
+//########################################################################
+// Build FrameworksServicesTests package
+//########################################################################
+
+android_test {
+    name: "FrameworksServicesTests",
+
+    // Include all test java files.
+    srcs: [
+        "src/**/*.java",
+
+        "aidl/com/android/servicestests/aidl/INetworkStateObserver.aidl",
+        "aidl/com/android/servicestests/aidl/ICmdReceiverService.aidl",
+
+        "test-apps/JobTestApp/src/**/*.java",
+
+        "test-apps/SuspendTestApp/src/**/*.java",
+    ],
+    static_libs: [
+        "frameworks-base-testutils",
+        "services.accessibility",
+        "services.appwidget",
+        "services.autofill",
+        "services.backup",
+        "services.core",
+        "services.devicepolicy",
+        "services.net",
+        "services.usage",
+        "guava",
+        "androidx.test.runner",
+        "androidx.test.rules",
+        "mockito-target-minus-junit4",
+        "platform-test-annotations",
+        "ShortcutManagerTestUtils",
+        "truth-prebuilt",
+        "testables",
+        "testng",
+        "ub-uiautomator",
+        "platformprotosnano",
+        "hamcrest-library",
+        "servicestests-utils",
+    ],
+
+    aidl: {
+        local_include_dirs: ["aidl"],
+    },
+
+    libs: [
+        "android.hidl.manager-V1.0-java",
+        "android.hardware.tv.cec-V1.0-java",
+        "android.test.mock",
+        "android.test.base",
+        "android.test.runner",
+    ],
+
+    platform_apis: true,
+    test_suites: ["device-tests"],
+
+    certificate: "platform",
+
+    // These are not normally accessible from apps so they must be explicitly included.
+    jni_libs: [
+        "libbacktrace",
+        "libbase",
+        "libbinder",
+        "libbinderthreadstate",
+        "libc++",
+        "libcutils",
+        "liblog",
+        "liblzma",
+        "libnativehelper",
+        "libnetdaidl",
+        "libui",
+        "libunwind",
+        "libutils",
+    ],
+
+    dxflags: ["--multi-dex"],
+
+    optimize: {
+        enabled: false,
+    },
+}
+
+java_library {
+    name: "servicestests-utils",
+    srcs: [
+        "utils/**/*.java",
+    ],
+    static_libs: [
+        "android-support-test",
+        "mockito-target-minus-junit4",
+    ],
+    libs: [
+        "android.test.runner",
+    ],
+}
+
+filegroup {
+    name: "servicestests-SuspendTestApp-files",
+    srcs: [
+        "src/com/android/server/pm/SuspendPackagesTest.java",
+    ],
+}
diff --git a/services/tests/servicestests/Android.mk b/services/tests/servicestests/Android.mk
deleted file mode 100644
index e2f8995..0000000
--- a/services/tests/servicestests/Android.mk
+++ /dev/null
@@ -1,83 +0,0 @@
-#########################################################################
-# Build FrameworksServicesTests package
-#########################################################################
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-
-# Include all test java files.
-LOCAL_SRC_FILES := \
-    $(call all-java-files-under, src) \
-    $(call all-java-files-under, utils) \
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-    frameworks-base-testutils \
-    services.accessibility \
-    services.appwidget \
-    services.autofill \
-    services.backup \
-    services.core \
-    services.devicepolicy \
-    services.net \
-    services.usage \
-    guava \
-    androidx.test.runner \
-    androidx.test.rules \
-    mockito-target-minus-junit4 \
-    platform-test-annotations \
-    ShortcutManagerTestUtils \
-    truth-prebuilt \
-    testables \
-    testng \
-    ub-uiautomator\
-    platformprotosnano \
-    hamcrest-library
-
-LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/aidl
-
-LOCAL_SRC_FILES += aidl/com/android/servicestests/aidl/INetworkStateObserver.aidl \
-    aidl/com/android/servicestests/aidl/ICmdReceiverService.aidl
-LOCAL_SRC_FILES += $(call all-java-files-under, test-apps/JobTestApp/src)
-LOCAL_SRC_FILES += $(call all-java-files-under, test-apps/SuspendTestApp/src)
-
-LOCAL_JAVA_LIBRARIES := \
-    android.hidl.manager-V1.0-java \
-    android.hardware.tv.cec-V1.0-java \
-    android.test.mock \
-    android.test.base android.test.runner \
-
-LOCAL_PACKAGE_NAME := FrameworksServicesTests
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_COMPATIBILITY_SUITE := device-tests
-
-LOCAL_CERTIFICATE := platform
-
-# These are not normally accessible from apps so they must be explicitly included.
-LOCAL_JNI_SHARED_LIBRARIES := \
-    libbacktrace \
-    libbase \
-    libbinder \
-    libbinderthreadstate \
-    libc++ \
-    libcutils \
-    liblog \
-    liblzma \
-    libnativehelper \
-    libnetdaidl \
-    libui \
-    libunwind \
-    libutils
-
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_JACK_FLAGS := --multi-dex native
-LOCAL_DX_FLAGS := --multi-dex
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-include $(BUILD_PACKAGE)
-
-include $(call all-makefiles-under, $(LOCAL_PATH))
diff --git a/services/tests/servicestests/AndroidManifest.xml b/services/tests/servicestests/AndroidManifest.xml
index fa17b61..746c453 100644
--- a/services/tests/servicestests/AndroidManifest.xml
+++ b/services/tests/servicestests/AndroidManifest.xml
@@ -143,9 +143,6 @@
         <activity android:name="com.android.server.pm.BaseShortcutManagerTest$ShortcutActivity2" />
         <activity android:name="com.android.server.pm.BaseShortcutManagerTest$ShortcutActivity3" />
 
-        <activity android:name="com.android.server.wm.ScreenDecorWindowTests$TestActivity"
-                  android:showWhenLocked="true"/>
-
         <activity android:name="com.android.server.pm.ShortcutTestActivity"
                  android:enabled="true" android:exported="true" />
 
@@ -206,12 +203,6 @@
             </intent-filter>
         </activity-alias>
 
-        <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityA" />
-        <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityB" />
-        <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityRequestedOrientationChange" />
-        <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityTaskChangeCallbacks" />
-        <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityTaskDescriptionChange" />
-
         <receiver android:name="com.android.server.appwidget.DummyAppWidget">
             <intent-filter>
                 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
diff --git a/services/tests/servicestests/aidl/Android.bp b/services/tests/servicestests/aidl/Android.bp
new file mode 100644
index 0000000..d4e53dd
--- /dev/null
+++ b/services/tests/servicestests/aidl/Android.bp
@@ -0,0 +1,22 @@
+// 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.
+
+java_library {
+    name: "servicestests-aidl",
+    sdk_version: "current",
+    srcs: [
+        "com/android/servicestests/aidl/INetworkStateObserver.aidl",
+        "com/android/servicestests/aidl/ICmdReceiverService.aidl",
+    ],
+}
diff --git a/services/tests/servicestests/aidl/Android.mk b/services/tests/servicestests/aidl/Android.mk
deleted file mode 100644
index 166da1d..0000000
--- a/services/tests/servicestests/aidl/Android.mk
+++ /dev/null
@@ -1,24 +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.
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_TAGS := tests
-LOCAL_SDK_VERSION := current
-LOCAL_SRC_FILES := \
-        com/android/servicestests/aidl/INetworkStateObserver.aidl \
-        com/android/servicestests/aidl/ICmdReceiverService.aidl
-LOCAL_MODULE := servicestests-aidl
-include $(BUILD_STATIC_JAVA_LIBRARY)
\ No newline at end of file
diff --git a/services/tests/servicestests/res/raw/input_port_associations.xml b/services/tests/servicestests/res/raw/input_port_associations.xml
new file mode 100644
index 0000000..b10d541
--- /dev/null
+++ b/services/tests/servicestests/res/raw/input_port_associations.xml
@@ -0,0 +1,4 @@
+<ports>
+    <port display="0" input="USB1" />
+    <port display="1" input="USB2" />
+</ports>
\ No newline at end of file
diff --git a/services/tests/servicestests/res/raw/input_port_associations_bad_displayport.xml b/services/tests/servicestests/res/raw/input_port_associations_bad_displayport.xml
new file mode 100644
index 0000000..8eeb1f5
--- /dev/null
+++ b/services/tests/servicestests/res/raw/input_port_associations_bad_displayport.xml
@@ -0,0 +1,3 @@
+<ports>
+    <port display="a" input="USB1" />
+</ports>
\ No newline at end of file
diff --git a/services/tests/servicestests/res/raw/input_port_associations_bad_xml.xml b/services/tests/servicestests/res/raw/input_port_associations_bad_xml.xml
new file mode 100644
index 0000000..cf6e124
--- /dev/null
+++ b/services/tests/servicestests/res/raw/input_port_associations_bad_xml.xml
@@ -0,0 +1,3 @@
+<ports>
+    <port Garbage data inside xml>
+</ports>
\ No newline at end of file
diff --git a/services/tests/servicestests/res/xml/shortcut_share_targets.xml b/services/tests/servicestests/res/xml/shortcut_share_targets.xml
new file mode 100644
index 0000000..ec696e9
--- /dev/null
+++ b/services/tests/servicestests/res/xml/shortcut_share_targets.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright 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.
+  -->
+
+<!-- Test XML resource to read share-targets from, used in ShortcutManagerTest1.java -->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+    <shortcut
+        android:shortcutId="dummy_shortcut1"
+        android:enabled="true"
+        android:shortcutShortLabel="@string/shortcut_title1">
+        <intent
+            android:action="android.intent.action.VIEW"
+            android:targetPackage="com.test.somepackage"
+            android:targetClass="com.test.somepackage.someclass" />
+        <categories android:name="android.shortcut.conversation" />
+    </shortcut>
+
+    <!-- Valid share target definition -->
+    <share-target android:targetClass="com.test.directshare.TestActivity1">
+        <data
+            android:scheme="http"
+            android:host="www.google.com"
+            android:port="1234"
+            android:path="somePath"
+            android:pathPrefix="somePathPrefix"
+            android:pathPattern="somePathPattern"
+            android:mimeType="text/plain"/>
+        <category android:name="com.test.category.CATEGORY1"/>
+        <category android:name="com.test.category.CATEGORY2"/>
+    </share-target>
+
+    <!-- Share target missing data tag, will be dropped -->
+    <share-target android:targetClass="com.test.directshare.TestActivity">
+        <category android:name="com.test.category.CATEGORY2"/>
+    </share-target>
+
+    <!-- Share target missing target class, will be dropped -->
+    <share-target>
+        <data
+            android:scheme="file"
+            android:host="www.somehost.com"
+            android:port="1234"
+            android:mimeType="video/*"/>
+        <category android:name="com.test.category.CATEGORY3"/>
+    </share-target>
+
+    <shortcut
+        android:shortcutId="dummy_shortcut2"
+        android:enabled="true"
+        android:shortcutShortLabel="@string/shortcut_title1">
+        <intent
+            android:action="android.intent.action.VIEW"
+            android:targetPackage="com.test.somepackage"
+            android:targetClass="com.test.somepackage.someclass" />
+        <categories android:name="android.shortcut.conversation" />
+    </shortcut>
+
+    <!-- Share target missing category, will be dropped -->
+    <share-target android:targetClass="com.test.directshare.TestActivity">
+        <data
+            android:scheme="content"
+            android:mimeType="text/plain"/>
+    </share-target>
+
+    <!-- Valid share target definition -->
+    <share-target android:targetClass="com.test.directshare.TestActivity5">
+        <category android:name="com.test.category.CATEGORY5"/>
+        <category android:name="com.test.category.CATEGORY6"/>
+        <data android:mimeType="video/mp4"/>
+        <data
+            android:scheme="content"
+            android:mimeType="video/*"/>
+    </share-target>
+</shortcuts>
\ No newline at end of file
diff --git a/services/tests/servicestests/src/com/android/server/am/MemoryStatUtilTest.java b/services/tests/servicestests/src/com/android/server/am/MemoryStatUtilTest.java
index c7409d7..89c7b71 100644
--- a/services/tests/servicestests/src/com/android/server/am/MemoryStatUtilTest.java
+++ b/services/tests/servicestests/src/com/android/server/am/MemoryStatUtilTest.java
@@ -20,7 +20,6 @@
 import static com.android.server.am.MemoryStatUtil.JIFFY_NANOS;
 import static com.android.server.am.MemoryStatUtil.MemoryStat;
 import static com.android.server.am.MemoryStatUtil.PAGE_SIZE;
-import static com.android.server.am.MemoryStatUtil.parseMemoryMaxUsageFromMemCg;
 import static com.android.server.am.MemoryStatUtil.parseMemoryStatFromMemcg;
 import static com.android.server.am.MemoryStatUtil.parseMemoryStatFromProcfs;
 import static com.android.server.am.MemoryStatUtil.parseVmHWMFromProcfs;
@@ -197,23 +196,6 @@
     }
 
     @Test
-    public void testParseMemoryMaxUsageFromMemCg_parsesCorrectValue() {
-        assertEquals(1234, parseMemoryMaxUsageFromMemCg("1234"));
-    }
-
-    @Test
-    public void testParseMemoryMaxUsageFromMemCg_emptyContents() {
-        assertEquals(0, parseMemoryMaxUsageFromMemCg(""));
-
-        assertEquals(0, parseMemoryMaxUsageFromMemCg(null));
-    }
-
-    @Test
-    public void testParseMemoryMaxUsageFromMemCg_incorrectValue() {
-        assertEquals(0, parseMemoryMaxUsageFromMemCg("memory"));
-    }
-
-    @Test
     public void testParseMemoryStatFromProcfs_parsesCorrectValues() {
         MemoryStat stat = parseMemoryStatFromProcfs(PROC_STAT_CONTENTS);
         assertEquals(1, stat.pgfault);
diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java
index d52051eec..479a19b 100644
--- a/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java
+++ b/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java
@@ -34,7 +34,7 @@
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
-import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.testutils.PackageManagerStub;
 
 import org.junit.Before;
@@ -97,7 +97,7 @@
         applicationInfo.flags |= ApplicationInfo.FLAG_ALLOW_BACKUP;
         applicationInfo.uid = Process.SYSTEM_UID;
         applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME;
-        applicationInfo.packageName = BackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
+        applicationInfo.packageName = UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;
 
         boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo,
                 mPackageManagerStub);
diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/TarBackupReaderTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/TarBackupReaderTest.java
index 4774985..d43b677 100644
--- a/services/tests/servicestests/src/com/android/server/backup/utils/TarBackupReaderTest.java
+++ b/services/tests/servicestests/src/com/android/server/backup/utils/TarBackupReaderTest.java
@@ -51,8 +51,8 @@
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.frameworks.servicestests.R;
-import com.android.server.backup.BackupManagerService;
 import com.android.server.backup.FileMetadata;
+import com.android.server.backup.UserBackupManagerService;
 import com.android.server.backup.restore.PerformAdbRestoreTask;
 import com.android.server.backup.restore.RestorePolicy;
 import com.android.server.backup.testutils.PackageManagerStub;
@@ -150,7 +150,7 @@
 
         assertThat(restorePolicy).isEqualTo(RestorePolicy.IGNORE);
         assertThat(fileMetadata.packageName).isEqualTo(TEST_PACKAGE_NAME);
-        assertThat(fileMetadata.path).isEqualTo(BackupManagerService.BACKUP_MANIFEST_FILENAME);
+        assertThat(fileMetadata.path).isEqualTo(UserBackupManagerService.BACKUP_MANIFEST_FILENAME);
 
         tarBackupReader.skipTarPadding(fileMetadata.size);
 
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 16b127c..5dc6d83 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
@@ -4973,6 +4973,176 @@
         assertProfileOwnershipRevertedWithFakeTransferMetadata();
     }
 
+    public void testGrantDeviceIdsAccess_notToProfileOwner() throws Exception {
+        setupProfileOwner();
+        configureContextForAccess(mContext, false);
+
+        assertExpectException(SecurityException.class, /* messageRegex= */ null,
+                () -> dpm.setProfileOwnerCanAccessDeviceIdsForUser(admin2,
+                        UserHandle.of(DpmMockContext.CALLER_UID)));
+    }
+
+    public void testGrantDeviceIdsAccess_notByAuthorizedCaller() throws Exception {
+        setupProfileOwner();
+        configureContextForAccess(mContext, false);
+
+        assertExpectException(SecurityException.class, /* messageRegex= */ null,
+                () -> dpm.setProfileOwnerCanAccessDeviceIdsForUser(admin1,
+                        UserHandle.of(DpmMockContext.CALLER_UID)));
+    }
+
+    public void testGrantDeviceIdsAccess_byAuthorizedSystemCaller() throws Exception {
+        setupProfileOwner();
+
+        // This method will throw if the system context could not call
+        // setProfileOwnerCanAccessDeviceIds successfully.
+        configureProfileOwnerForDeviceIdAccess(admin1, DpmMockContext.CALLER_USER_HANDLE);
+    }
+
+    private static void configureContextForAccess(DpmMockContext context, boolean granted) {
+        when(context.spiedContext.checkCallingPermission(
+                android.Manifest.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS))
+                .thenReturn(granted ? PackageManager.PERMISSION_GRANTED
+                        : PackageManager.PERMISSION_DENIED);
+    }
+
+    public void testGrantDeviceIdsAccess_byAuthorizedManagedProvisioning() throws Exception {
+        setupProfileOwner();
+
+        final long ident = mServiceContext.binder.clearCallingIdentity();
+        configureContextForAccess(mServiceContext, true);
+
+        mServiceContext.binder.callingUid =
+                UserHandle.getUid(DpmMockContext.CALLER_USER_HANDLE,
+                        DpmMockContext.CALLER_MANAGED_PROVISIONING_UID);
+        try {
+            runAsCaller(mServiceContext, dpms, dpm -> {
+                dpm.setProfileOwnerCanAccessDeviceIdsForUser(admin1,
+                        UserHandle.of(DpmMockContext.CALLER_USER_HANDLE));
+            });
+        } finally {
+            mServiceContext.binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    public void testEnforceCallerCanRequestDeviceIdAttestation_deviceOwnerCaller()
+            throws Exception {
+        mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID;
+        setupDeviceOwner();
+        configureContextForAccess(mContext, false);
+
+        // Device owner should be allowed to request Device ID attestation.
+        dpms.enforceCallerCanRequestDeviceIdAttestation(admin1, admin1.getPackageName(),
+                DpmMockContext.CALLER_SYSTEM_USER_UID);
+
+        // Another package must not be allowed to request Device ID attestation.
+        assertExpectException(SecurityException.class, null,
+                () -> dpms.enforceCallerCanRequestDeviceIdAttestation(null,
+                        admin2.getPackageName(), DpmMockContext.CALLER_UID));
+        // Another component that is not the admin must not be allowed to request Device ID
+        // attestation.
+        assertExpectException(SecurityException.class, null,
+                () -> dpms.enforceCallerCanRequestDeviceIdAttestation(admin2,
+                        admin1.getPackageName(), DpmMockContext.CALLER_UID));
+    }
+
+    public void testEnforceCallerCanRequestDeviceIdAttestation_profileOwnerCaller()
+            throws Exception {
+        configureContextForAccess(mContext, false);
+
+        // Make sure a security exception is thrown if the device has no profile owner.
+        assertExpectException(SecurityException.class, null,
+                () -> dpms.enforceCallerCanRequestDeviceIdAttestation(admin1,
+                        admin1.getPackageName(), DpmMockContext.CALLER_SYSTEM_USER_UID));
+
+        setupProfileOwner();
+        configureProfileOwnerForDeviceIdAccess(admin1, DpmMockContext.CALLER_USER_HANDLE);
+
+        // The profile owner is allowed to request Device ID attestation.
+        mServiceContext.binder.callingUid = DpmMockContext.CALLER_UID;
+        dpms.enforceCallerCanRequestDeviceIdAttestation(admin1, admin1.getPackageName(),
+                DpmMockContext.CALLER_UID);
+        // But not another package.
+        assertExpectException(SecurityException.class, null,
+                () -> dpms.enforceCallerCanRequestDeviceIdAttestation(null,
+                        admin2.getPackageName(), DpmMockContext.CALLER_UID));
+        // Or another component which is not the admin.
+        assertExpectException(SecurityException.class, null,
+                () -> dpms.enforceCallerCanRequestDeviceIdAttestation(admin2,
+                        admin2.getPackageName(), DpmMockContext.CALLER_UID));
+    }
+
+    public void runAsDelegatedCertInstaller(DpmRunnable action) throws Exception {
+        final long ident = mServiceContext.binder.clearCallingIdentity();
+
+        mServiceContext.binder.callingUid = UserHandle.getUid(DpmMockContext.CALLER_USER_HANDLE,
+                DpmMockContext.DELEGATE_CERT_INSTALLER_UID);
+        try {
+            runAsCaller(mServiceContext, dpms, action);
+        } finally {
+            mServiceContext.binder.restoreCallingIdentity(ident);
+        }
+    }
+
+    public void testEnforceCallerCanRequestDeviceIdAttestation_delegateCaller() throws Exception {
+        setupProfileOwner();
+        markDelegatedCertInstallerAsInstalled();
+
+        // Configure a delegated cert installer.
+        runAsCaller(mServiceContext, dpms,
+                dpm -> dpm.setDelegatedScopes(admin1, DpmMockContext.DELEGATE_PACKAGE_NAME,
+                        Arrays.asList(DELEGATION_CERT_INSTALL)));
+
+        configureProfileOwnerForDeviceIdAccess(admin1, DpmMockContext.CALLER_USER_HANDLE);
+
+        // Make sure that the profile owner can still request Device ID attestation.
+        mServiceContext.binder.callingUid = DpmMockContext.CALLER_UID;
+        dpms.enforceCallerCanRequestDeviceIdAttestation(admin1, admin1.getPackageName(),
+                DpmMockContext.CALLER_UID);
+
+        runAsDelegatedCertInstaller(dpm -> {
+            dpms.enforceCallerCanRequestDeviceIdAttestation(null,
+                    DpmMockContext.DELEGATE_PACKAGE_NAME,
+                    UserHandle.getUid(DpmMockContext.CALLER_USER_HANDLE,
+                            DpmMockContext.DELEGATE_CERT_INSTALLER_UID));
+        });
+    }
+
+    public void testEnforceCallerCanRequestDeviceIdAttestation_delegateCallerWithoutPermissions()
+            throws Exception {
+        setupProfileOwner();
+        markDelegatedCertInstallerAsInstalled();
+
+        // Configure a delegated cert installer.
+        runAsCaller(mServiceContext, dpms,
+                dpm -> dpm.setDelegatedScopes(admin1, DpmMockContext.DELEGATE_PACKAGE_NAME,
+                        Arrays.asList(DELEGATION_CERT_INSTALL)));
+
+
+        assertExpectException(SecurityException.class, null,
+                () -> dpms.enforceCallerCanRequestDeviceIdAttestation(admin1,
+                        admin1.getPackageName(),
+                        DpmMockContext.CALLER_UID));
+
+        runAsDelegatedCertInstaller(dpm -> {
+            assertExpectException(SecurityException.class, /* messageRegex= */ null,
+                    () -> dpms.enforceCallerCanRequestDeviceIdAttestation(null,
+                            DpmMockContext.DELEGATE_PACKAGE_NAME,
+                            UserHandle.getUid(DpmMockContext.CALLER_USER_HANDLE,
+                                    DpmMockContext.DELEGATE_CERT_INSTALLER_UID)));
+        });
+    }
+
+    private void configureProfileOwnerForDeviceIdAccess(ComponentName who, int userId) {
+        final long ident = mServiceContext.binder.clearCallingIdentity();
+        mServiceContext.binder.callingUid =
+                UserHandle.getUid(DpmMockContext.CALLER_USER_HANDLE, DpmMockContext.SYSTEM_UID);
+        runAsCaller(mServiceContext, dpms, dpm -> {
+            dpm.setProfileOwnerCanAccessDeviceIdsForUser(who, UserHandle.of(userId));
+        });
+        mServiceContext.binder.restoreCallingIdentity(ident);
+    }
+
     // admin1 is the outgoing DPC, adminAnotherPakcage is the incoming one.
     private void assertDeviceOwnershipRevertedWithFakeTransferMetadata() throws Exception {
         writeFakeTransferMetadataFile(UserHandle.USER_SYSTEM,
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 be00bb6..e411fb5 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
@@ -59,6 +59,12 @@
     public static final int CALLER_UID = UserHandle.getUid(CALLER_USER_HANDLE, 20123);
 
     /**
+     * UID corresponding to {@link #CALLER_USER_HANDLE}.
+     */
+    public static final int CALLER_MANAGED_PROVISIONING_UID = UserHandle.getUid(CALLER_USER_HANDLE,
+            20125);
+
+    /**
      * UID used when a caller is on the system user.
      */
     public static final int CALLER_SYSTEM_USER_UID = 20321;
@@ -81,6 +87,10 @@
     public static final String ANOTHER_PACKAGE_NAME = "com.another.package.name";
     public static final int ANOTHER_UID = UserHandle.getUid(UserHandle.USER_SYSTEM, 18434);
 
+    public static final String DELEGATE_PACKAGE_NAME = "com.delegate.package.name";
+    public static final int DELEGATE_CERT_INSTALLER_UID = UserHandle.getUid(UserHandle.USER_SYSTEM,
+            18437);
+
     private final MockSystemServices mMockSystemServices;
 
     public static class MockBinder {
@@ -427,4 +437,9 @@
     public int getUserId() {
         return UserHandle.getUserId(binder.getCallingUid());
     }
+
+    @Override
+    public int checkCallingPermission(String permission) {
+        return spiedContext.checkCallingPermission(permission);
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java
index 0c8a787..a34c2ff 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java
@@ -50,6 +50,7 @@
     public ComponentName admin3;
     public ComponentName adminAnotherPackage;
     public ComponentName adminNoPerm;
+    public ComponentName delegateCertInstaller;
 
     @Override
     protected void setUp() throws Exception {
@@ -66,6 +67,8 @@
         adminAnotherPackage = new ComponentName(DpmMockContext.ANOTHER_PACKAGE_NAME,
                 "whatever.random.class");
         adminNoPerm = new ComponentName(mRealTestContext, DummyDeviceAdmins.AdminNoPerm.class);
+        delegateCertInstaller = new ComponentName(DpmMockContext.DELEGATE_PACKAGE_NAME,
+                "some.random.class");
         mockSystemPropertiesToReturnDefault();
     }
 
@@ -130,6 +133,20 @@
                 eq(userId));
     }
 
+    protected void markDelegatedCertInstallerAsInstalled() throws Exception {
+        final ApplicationInfo ai = new ApplicationInfo();
+        ai.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+        ai.flags = ApplicationInfo.FLAG_HAS_CODE;
+        // Mark the package as installed on the work profile.
+        ai.uid = UserHandle.getUid(DpmMockContext.CALLER_USER_HANDLE,
+                DpmMockContext.DELEGATE_CERT_INSTALLER_UID);
+        ai.packageName = delegateCertInstaller.getPackageName();
+        ai.name = delegateCertInstaller.getClassName();
+
+        markPackageAsInstalled(delegateCertInstaller.getPackageName(), ai,
+                DpmMockContext.CALLER_USER_HANDLE);
+    }
+
     protected void setUpPackageManagerForAdmin(ComponentName admin, int packageUid)
             throws Exception {
         setUpPackageManagerForAdmin(admin, packageUid,
diff --git a/services/tests/servicestests/src/com/android/server/input/ConfigurationProcessorTest.java b/services/tests/servicestests/src/com/android/server/input/ConfigurationProcessorTest.java
new file mode 100644
index 0000000..636aa37
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/input/ConfigurationProcessorTest.java
@@ -0,0 +1,93 @@
+/*
+ * 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.server.input;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.content.Context;
+import android.util.Pair;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * Build/Install/Run:
+ * atest ConfigurationProcessorTest
+ */
+@RunWith(AndroidJUnit4.class)
+public class ConfigurationProcessorTest {
+
+    private Context mContext;
+
+    @Before
+    public void setUp() throws Exception {
+        mContext = InstrumentationRegistry.getContext();
+    }
+
+    @Test
+    public void testGetInputPortAssociations() {
+        final int res = com.android.frameworks.servicestests.R.raw.input_port_associations;
+        InputStream xml = mContext.getResources().openRawResource(res);
+        List<Pair<String, String>> associations = null;
+        try {
+            associations = ConfigurationProcessor.processInputPortAssociations(xml);
+        } catch (Exception e) {
+            fail("Could not process xml file for input associations");
+        }
+        assertNotNull(associations);
+        assertEquals(2, associations.size());
+        assertTrue(associations.contains(Pair.create("USB1", "0")));
+        assertTrue(associations.contains(Pair.create("USB2", "1")));
+    }
+
+    @Test
+    public void testGetInputPortAssociationsBadDisplayport() {
+        final int res =
+                com.android.frameworks.servicestests.R.raw.input_port_associations_bad_displayport;
+        InputStream xml = mContext.getResources().openRawResource(res);
+        List<Pair<String, String>> associations = null;
+        try {
+            associations = ConfigurationProcessor.processInputPortAssociations(xml);
+        } catch (Exception e) {
+            fail("Could not process xml file for input associations");
+        }
+        assertNotNull(associations);
+        assertEquals(0, associations.size());
+    }
+
+    @Test
+    public void testGetInputPortAssociationsEmptyConfig() {
+        final int res = com.android.frameworks.servicestests.R.raw.input_port_associations_bad_xml;
+        InputStream xml = mContext.getResources().openRawResource(res);
+        try {
+            ConfigurationProcessor.processInputPortAssociations(xml);
+            fail("Parsing should fail, because xml contains bad data");
+        } catch (Exception e) {
+            // This is expected
+        }
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/inputmethod/InputMethodSubtypeSwitchingControllerTest.java b/services/tests/servicestests/src/com/android/server/inputmethod/InputMethodSubtypeSwitchingControllerTest.java
index 9424461..6ab48e5 100644
--- a/services/tests/servicestests/src/com/android/server/inputmethod/InputMethodSubtypeSwitchingControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/inputmethod/InputMethodSubtypeSwitchingControllerTest.java
@@ -375,20 +375,30 @@
         final ComponentName imeZ1 = new ComponentName("com.example.imeZ", "Ime1");
         {
             final List<ImeSubtypeListItem> items = Arrays.asList(
-                    // Subtypes of IME "X".
+                    // Subtypes of two IMEs that have the same display name "X".
                     // Subtypes that has the same locale of the system's.
                     createDummyItem(imeX1, "X", "E", "en_US", 0, "en_US"),
+                    createDummyItem(imeX2, "X", "E", "en_US", 0, "en_US"),
                     createDummyItem(imeX1, "X", "Z", "en_US", 3, "en_US"),
+                    createDummyItem(imeX2, "X", "Z", "en_US", 3, "en_US"),
                     createDummyItem(imeX1, "X", "", "en_US", 6, "en_US"),
+                    createDummyItem(imeX2, "X", "", "en_US", 6, "en_US"),
                     // Subtypes that has the same language of the system's.
                     createDummyItem(imeX1, "X", "E", "en", 1, "en_US"),
+                    createDummyItem(imeX2, "X", "E", "en", 1, "en_US"),
                     createDummyItem(imeX1, "X", "Z", "en", 4, "en_US"),
+                    createDummyItem(imeX2, "X", "Z", "en", 4, "en_US"),
                     createDummyItem(imeX1, "X", "", "en", 7, "en_US"),
+                    createDummyItem(imeX2, "X", "", "en", 7, "en_US"),
                     // Subtypes that has different language than the system's.
                     createDummyItem(imeX1, "X", "A", "hi_IN", 27, "en_US"),
+                    createDummyItem(imeX2, "X", "A", "hi_IN", 27, "en_US"),
                     createDummyItem(imeX1, "X", "E", "ja", 2, "en_US"),
+                    createDummyItem(imeX2, "X", "E", "ja", 2, "en_US"),
                     createDummyItem(imeX1, "X", "Z", "ja", 5, "en_US"),
+                    createDummyItem(imeX2, "X", "Z", "ja", 5, "en_US"),
                     createDummyItem(imeX1, "X", "", "ja", 8, "en_US"),
+                    createDummyItem(imeX2, "X", "", "ja", 8, "en_US"),
 
                     // Subtypes of IME "Y".
                     // Subtypes that has the same locale of the system's.
@@ -449,11 +459,11 @@
         }
 
         {
-            // Currently ComponentName is not used for sorting.
+            // Check if ComponentName is also taken into account when comparing two items.
             final ImeSubtypeListItem ime1 = createDummyItem(imeX1, "X", "A", "ja_JP", 0, "en_US");
             final ImeSubtypeListItem ime2 = createDummyItem(imeX2, "X", "A", "ja_JP", 0, "en_US");
-            assertTrue(ime1.compareTo(ime2) == 0);
-            assertTrue(ime2.compareTo(ime1) == 0);
+            assertTrue(ime1.compareTo(ime2) < 0);
+            assertTrue(ime2.compareTo(ime1) > 0);
             // But those aren't equal to each other.
             assertFalse(ime1.equals(ime2));
             assertFalse(ime2.equals(ime1));
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/SP800DeriveTests.java b/services/tests/servicestests/src/com/android/server/locksettings/SP800DeriveTests.java
new file mode 100644
index 0000000..fc2dcb9
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/locksettings/SP800DeriveTests.java
@@ -0,0 +1,40 @@
+/*
+ * 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.locksettings;
+
+import android.test.AndroidTestCase;
+
+import com.android.internal.util.HexDump;
+
+public class SP800DeriveTests extends AndroidTestCase {
+    public void testFixedInput() throws Exception {
+        // CAVP: https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/key-derivation
+        byte[] keyBytes = HexDump.hexStringToByteArray(
+            "e204d6d466aad507ffaf6d6dab0a5b26"
+            + "152c9e21e764370464e360c8fbc765c6");
+        SP800Derive sk = new SP800Derive(keyBytes);
+        byte[] fixedInput = HexDump.hexStringToByteArray(
+            "7b03b98d9f94b899e591f3ef264b71b1"
+            + "93fba7043c7e953cde23bc5384bc1a62"
+            + "93580115fae3495fd845dadbd02bd645"
+            + "5cf48d0f62b33e62364a3a80");
+        byte[] res = sk.fixedInput(fixedInput);
+        assertEquals((
+                "770dfab6a6a4a4bee0257ff335213f78"
+                + "d8287b4fd537d5c1fffa956910e7c779").toUpperCase(), HexDump.toHexString(res));
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
rename to services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
index 113ee2d..99b827c 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server;
+package com.android.server.net;
 
 import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
 import static android.net.ConnectivityManager.TYPE_WIFI;
@@ -72,7 +72,6 @@
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.isA;
-import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.doAnswer;
@@ -142,12 +141,14 @@
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.util.test.BroadcastInterceptingContext;
 import com.android.internal.util.test.BroadcastInterceptingContext.FutureIntent;
-import com.android.server.net.NetworkPolicyManagerInternal;
-import com.android.server.net.NetworkPolicyManagerService;
-import com.android.server.net.NetworkStatsManagerInternal;
+import com.android.server.DeviceIdleController;
+import com.android.server.LocalServices;
 
 import com.google.common.util.concurrent.AbstractFuture;
 
+import libcore.io.IoUtils;
+import libcore.io.Streams;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -162,9 +163,6 @@
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
-import libcore.io.IoUtils;
-import libcore.io.Streams;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
@@ -195,15 +193,6 @@
 
 /**
  * Tests for {@link NetworkPolicyManagerService}.
- *
- * <p>Typical usage:
- *
- * <pre><code>
-    m -j32 FrameworksServicesTests && adb install -r -g \
-    ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && \
-    adb shell am instrument -e class "com.android.server.NetworkPolicyManagerServiceTest" -w \
-    "com.android.frameworks.servicestests/androidx.test.runner.AndroidJUnitRunner"
- * </code></pre>
  */
 @RunWith(AndroidJUnit4.class)
 @MediumTest
@@ -376,7 +365,7 @@
                 return null;
             }
         }).when(mActivityManager).registerUidObserver(any(), anyInt(),
-                eq(NetworkPolicyManager.FOREGROUND_THRESHOLD_STATE), isNull(String.class));
+                eq(NetworkPolicyManager.FOREGROUND_THRESHOLD_STATE), any(String.class));
 
         mFutureIntent = newRestrictBackgroundChangedFuture();
         mService = new NetworkPolicyManagerService(mServiceContext, mActivityManager,
@@ -425,7 +414,7 @@
 
         // catch INetworkManagementEventObserver during systemReady()
         final ArgumentCaptor<INetworkManagementEventObserver> networkObserver =
-              ArgumentCaptor.forClass(INetworkManagementEventObserver.class);
+                ArgumentCaptor.forClass(INetworkManagementEventObserver.class);
         verify(mNetworkManager).registerObserver(networkObserver.capture());
         mNetworkObserver = networkObserver.getValue();
 
@@ -843,6 +832,18 @@
         assertTrue(mService.isUidForeground(UID_B));
     }
 
+    @Test
+    public void testAppIdleTempWhitelisting() throws Exception {
+        mService.setAppIdleWhitelist(UID_A, true);
+        mService.setAppIdleWhitelist(UID_B, false);
+        int[] whitelistedIds = mService.getAppIdleWhitelist();
+        assertTrue(Arrays.binarySearch(whitelistedIds, UID_A) >= 0);
+        assertTrue(Arrays.binarySearch(whitelistedIds, UID_B) < 0);
+        assertFalse(mService.isUidIdle(UID_A));
+        // Can't currently guarantee UID_B's app idle state.
+        // TODO: expand with multiple app idle states.
+    }
+
     private static long computeLastCycleBoundary(long currentTime, NetworkPolicy policy) {
         RecurrenceRule.sClock = Clock.fixed(Instant.ofEpochMilli(currentTime),
                 ZoneId.systemDefault());
@@ -1770,7 +1771,7 @@
     }
 
     private static NetworkPolicy buildFakeMobilePolicy(int cycleDay, long warningBytes,
-            long limitBytes, boolean inferred){
+            long limitBytes, boolean inferred) {
         final NetworkTemplate template = buildTemplateMobileAll(FAKE_SUBSCRIBER_ID);
         return new NetworkPolicy(template, cycleDay, new Time().timezone, warningBytes,
                 limitBytes, SNOOZE_NEVER, SNOOZE_NEVER, true, inferred);
@@ -1868,7 +1869,7 @@
     }
 
     private static void assertNotificationType(int expected, String actualTag) {
-        assertEquals("notification type mismatch for '" + actualTag +"'",
+        assertEquals("notification type mismatch for '" + actualTag + "'",
                 Integer.toString(expected), actualTag.substring(actualTag.lastIndexOf(':') + 1));
     }
 
@@ -1902,7 +1903,8 @@
         final String action = ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED;
         final Intent intent = future.get(5, TimeUnit.SECONDS);
         assertNotNull("Didn't get a " + action + "intent in 5 seconds");
-        assertEquals("Wrong package on " + action + " intent", expectedPackage, intent.getPackage());
+        assertEquals("Wrong package on " + action + " intent",
+                expectedPackage, intent.getPackage());
     }
 
     // TODO: replace by Truth, Hamcrest, or a similar tool.
@@ -1923,7 +1925,7 @@
         }
         if (errors.length() > 0) {
             fail("assertContainsInAnyOrder(expected=" + Arrays.toString(expected)
-                    + ", actual=" + Arrays.toString(actual) +") failed: \n" + errors);
+                    + ", actual=" + Arrays.toString(actual) + ") failed: \n" + errors);
         }
     }
 
@@ -1986,7 +1988,7 @@
 
         @Override
         public Void answer(InvocationOnMock invocation) throws Throwable {
-            Log.d(TAG,"counting down on answer: " + invocation);
+            Log.d(TAG, "counting down on answer: " + invocation);
             latch.countDown();
             return null;
         }
@@ -2024,8 +2026,8 @@
             final String assetPath = NETPOLICY_DIR + "/" + mNetpolicyXml;
             final File netConfigFile = new File(mPolicyDir, "netpolicy.xml");
             Log.d(TAG, "Creating " + netConfigFile + " from asset " + assetPath);
-            try (final InputStream in = context.getResources().getAssets().open(assetPath);
-                    final OutputStream out = new FileOutputStream(netConfigFile)) {
+            try (InputStream in = context.getResources().getAssets().open(assetPath);
+                    OutputStream out = new FileOutputStream(netConfigFile)) {
                 Streams.copy(in, out);
             }
         }
@@ -2037,9 +2039,7 @@
     @Retention(RetentionPolicy.RUNTIME)
     @Target(ElementType.METHOD)
     public @interface NetPolicyXml {
-
-        public String value() default "";
-
+        String value() default "";
     }
 
     /**
diff --git a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
index a3348c2..1f5c64e 100644
--- a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
@@ -91,8 +91,8 @@
 import com.android.server.SystemService;
 import com.android.server.pm.LauncherAppsService.LauncherAppsImpl;
 import com.android.server.pm.ShortcutUser.PackageWithUser;
-
 import com.android.server.wm.ActivityTaskManagerInternal;
+
 import org.junit.Assert;
 import org.mockito.ArgumentCaptor;
 import org.mockito.invocation.InvocationOnMock;
@@ -105,8 +105,6 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
-import java.security.cert.CertificateEncodingException;
-import java.security.cert.CertificateException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -762,6 +760,7 @@
         LocalServices.addService(UsageStatsManagerInternal.class, mMockUsageStatsManagerInternal);
         LocalServices.removeServiceForTest(ActivityManagerInternal.class);
         LocalServices.addService(ActivityManagerInternal.class, mMockActivityManagerInternal);
+        LocalServices.removeServiceForTest(ActivityTaskManagerInternal.class);
         LocalServices.addService(ActivityTaskManagerInternal.class, mMockActivityTaskManagerInternal);
         LocalServices.removeServiceForTest(UserManagerInternal.class);
         LocalServices.addService(UserManagerInternal.class, mMockUserManagerInternal);
@@ -963,6 +962,10 @@
         return getInstrumentation().getContext();
     }
 
+    protected Context getClientContext() {
+        return mClientContext;
+    }
+
     protected ShortcutManager getManager() {
         return mManager;
     }
@@ -1792,6 +1795,15 @@
     }
 
     /**
+     * @return all share targets stored internally for the caller.
+     */
+    protected List<ShareTargetInfo> getCallerShareTargets() {
+        final ShortcutPackage p = mService.getPackageShortcutForTest(
+                getCallingPackage(), getCallingUserId());
+        return p == null ? null : p.getAllShareTargetsForTest();
+    }
+
+    /**
      * @return all shortcuts owned by caller that are actually visible via ShortcutManager.
      * See also {@link #getCallerShortcuts}.
      */
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
index 58c4bbf..ce59e6e 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
@@ -31,6 +31,7 @@
 import android.content.pm.ServiceInfo;
 import android.content.pm.SharedLibraryInfo;
 import android.content.pm.Signature;
+import android.content.pm.UsesPermissionInfo;
 import android.os.Bundle;
 import android.os.Parcel;
 import android.platform.test.annotations.Presubmit;
@@ -464,6 +465,7 @@
         pkg.services.add(new PackageParser.Service(dummy, new ServiceInfo()));
         pkg.instrumentation.add(new PackageParser.Instrumentation(dummy, new InstrumentationInfo()));
         pkg.requestedPermissions.add("foo7");
+        pkg.usesPermissionInfos.add(new UsesPermissionInfo("foo7"));
         pkg.implicitPermissions.add("foo25");
 
         pkg.protectedBroadcasts = new ArrayList<>();
@@ -494,7 +496,8 @@
         pkg.usesLibraryFiles = new String[] { "foo13"};
 
         pkg.usesLibraryInfos = new ArrayList<>();
-        pkg.usesLibraryInfos.add(new SharedLibraryInfo(null, null, null, 0L, 0, null, null, null));
+        pkg.usesLibraryInfos.add(
+                new SharedLibraryInfo(null, null, null, null, 0L, 0, null, null, null));
 
         pkg.mOriginalPackages = new ArrayList<>();
         pkg.mOriginalPackages.add("foo14");
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
index fa73447..3172afb 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
@@ -106,6 +106,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 import java.util.function.BiConsumer;
@@ -398,7 +399,7 @@
         assertEquals(3, mManager.getRemainingCallCount());
     }
 
-   public void testPublishWithNoActivity() {
+    public void testPublishWithNoActivity() {
         // If activity is not explicitly set, use the default one.
 
         mRunningUsers.put(USER_10, true);
@@ -8015,4 +8016,56 @@
 
         assertFalse(mInternal.isForegroundDefaultLauncher("another", uid));
     }
+
+    public void testParseShareTargetsFromManifest() {
+        // These values must exactly match the content of shortcuts_share_targets.xml resource
+        List<ShareTargetInfo> expectedValues = new ArrayList<>();
+        expectedValues.add(new ShareTargetInfo(
+                new ShareTargetInfo.TargetData[]{new ShareTargetInfo.TargetData(
+                        "http", "www.google.com", "1234", "somePath", "somePathPattern",
+                        "somePathPrefix", "text/plain")}, "com.test.directshare.TestActivity1",
+                new String[]{"com.test.category.CATEGORY1", "com.test.category.CATEGORY2"}));
+        expectedValues.add(new ShareTargetInfo(new ShareTargetInfo.TargetData[]{
+                new ShareTargetInfo.TargetData(null, null, null, null, null, null, "video/mp4"),
+                new ShareTargetInfo.TargetData("content", null, null, null, null, null, "video/*")},
+                "com.test.directshare.TestActivity5",
+                new String[]{"com.test.category.CATEGORY5", "com.test.category.CATEGORY6"}));
+
+        addManifestShortcutResource(
+                new ComponentName(CALLING_PACKAGE_1, ShortcutActivity.class.getName()),
+                R.xml.shortcut_share_targets);
+        updatePackageVersion(CALLING_PACKAGE_1, 1);
+        mService.mPackageMonitor.onReceive(getTestContext(),
+                genPackageAddIntent(CALLING_PACKAGE_1, USER_0));
+
+        List<ShareTargetInfo> shareTargets = getCallerShareTargets();
+
+        assertNotNull(shareTargets);
+        assertEquals(expectedValues.size(), shareTargets.size());
+
+        for (int i = 0; i < expectedValues.size(); i++) {
+            ShareTargetInfo expected = expectedValues.get(i);
+            ShareTargetInfo actual = shareTargets.get(i);
+
+            assertEquals(expected.mTargetData.length, actual.mTargetData.length);
+            for (int j = 0; j < expected.mTargetData.length; j++) {
+                assertEquals(expected.mTargetData[j].mScheme, actual.mTargetData[j].mScheme);
+                assertEquals(expected.mTargetData[j].mHost, actual.mTargetData[j].mHost);
+                assertEquals(expected.mTargetData[j].mPort, actual.mTargetData[j].mPort);
+                assertEquals(expected.mTargetData[j].mPath, actual.mTargetData[j].mPath);
+                assertEquals(expected.mTargetData[j].mPathPrefix,
+                        actual.mTargetData[j].mPathPrefix);
+                assertEquals(expected.mTargetData[j].mPathPattern,
+                        actual.mTargetData[j].mPathPattern);
+                assertEquals(expected.mTargetData[j].mMimeType, actual.mTargetData[j].mMimeType);
+            }
+
+            assertEquals(expected.mTargetClass, actual.mTargetClass);
+
+            assertEquals(expected.mCategories.length, actual.mCategories.length);
+            for (int j = 0; j < expected.mCategories.length; j++) {
+                assertEquals(expected.mCategories[j], actual.mCategories[j]);
+            }
+        }
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java
index 76d52fd..9b59f91 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java
@@ -144,8 +144,8 @@
 
         assertExpectException(
                 IllegalArgumentException.class, "Short label must be provided", () -> {
-            ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
-                    .setActivity(new ComponentName(getTestContext().getPackageName(), "s"))
+            ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
+                    .setActivity(new ComponentName(getClientContext().getPackageName(), "s"))
                     .build();
             assertTrue(getManager().setDynamicShortcuts(list(si)));
         });
@@ -153,15 +153,15 @@
         // same for add.
         assertExpectException(
                 IllegalArgumentException.class, "Short label must be provided", () -> {
-            ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
-                    .setActivity(new ComponentName(getTestContext().getPackageName(), "s"))
+            ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
+                    .setActivity(new ComponentName(getClientContext().getPackageName(), "s"))
                     .build();
             assertTrue(getManager().addDynamicShortcuts(list(si)));
         });
 
         assertExpectException(NullPointerException.class, "Intent must be provided", () -> {
-            ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
-                    .setActivity(new ComponentName(getTestContext().getPackageName(), "s"))
+            ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
+                    .setActivity(new ComponentName(getClientContext().getPackageName(), "s"))
                     .setShortLabel("x")
                     .build();
             assertTrue(getManager().setDynamicShortcuts(list(si)));
@@ -169,8 +169,8 @@
 
         // same for add.
         assertExpectException(NullPointerException.class, "Intent must be provided", () -> {
-            ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
-                    .setActivity(new ComponentName(getTestContext().getPackageName(), "s"))
+            ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
+                    .setActivity(new ComponentName(getClientContext().getPackageName(), "s"))
                     .setShortLabel("x")
                     .build();
             assertTrue(getManager().addDynamicShortcuts(list(si)));
@@ -178,7 +178,7 @@
 
         assertExpectException(
                 IllegalStateException.class, "does not belong to package", () -> {
-            ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
+            ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
                     .setActivity(new ComponentName("xxx", "s"))
                     .build();
             assertTrue(getManager().setDynamicShortcuts(list(si)));
@@ -187,7 +187,7 @@
         // same for add.
         assertExpectException(
                 IllegalStateException.class, "does not belong to package", () -> {
-            ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
+            ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
                     .setActivity(new ComponentName("xxx", "s"))
                     .build();
             assertTrue(getManager().addDynamicShortcuts(list(si)));
@@ -198,24 +198,24 @@
 
         assertExpectException(
                 IllegalStateException.class, "is not main", () -> {
-                    ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
-                            .setActivity(new ComponentName(getTestContext(), "s"))
+                    ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
+                            .setActivity(new ComponentName(getClientContext(), "s"))
                             .build();
                     assertTrue(getManager().setDynamicShortcuts(list(si)));
                 });
         // For add
         assertExpectException(
                 IllegalStateException.class, "is not main", () -> {
-                    ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
-                            .setActivity(new ComponentName(getTestContext(), "s"))
+                    ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
+                            .setActivity(new ComponentName(getClientContext(), "s"))
                             .build();
                     assertTrue(getManager().addDynamicShortcuts(list(si)));
                 });
         // For update
         assertExpectException(
                 IllegalStateException.class, "is not main", () -> {
-                    ShortcutInfo si = new ShortcutInfo.Builder(getTestContext(), "id")
-                            .setActivity(new ComponentName(getTestContext(), "s"))
+                    ShortcutInfo si = new ShortcutInfo.Builder(getClientContext(), "id")
+                            .setActivity(new ComponentName(getClientContext(), "s"))
                             .build();
                     assertTrue(getManager().updateShortcuts(list(si)));
                 });
diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java
index cd15a57..813fa82 100644
--- a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java
@@ -25,6 +25,7 @@
 import static org.junit.Assert.fail;
 
 import android.content.pm.ApplicationInfo;
+import android.content.pm.SharedLibraryInfo;
 import android.util.SparseArray;
 
 import androidx.test.filters.SmallTest;
@@ -39,6 +40,7 @@
 
 import java.io.File;
 import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -108,22 +110,31 @@
         return data;
     }
 
+    private List<SharedLibraryInfo> createMockSharedLibrary(String [] sharedLibrary) {
+        SharedLibraryInfo info = new SharedLibraryInfo(null, null, Arrays.asList(sharedLibrary),
+                null, 0L, SharedLibraryInfo.TYPE_STATIC, null, null, null);
+        ArrayList<SharedLibraryInfo> libraries = new ArrayList<>();
+        libraries.add(info);
+        return libraries;
+    }
+
     @Test
     public void testSplitChain() {
         TestData data = createMockApplicationInfo(PATH_CLASS_LOADER_NAME, true, true);
-        String[] sharedLibrary = new String[] {"a.dex", "b.dex"};
+        List<SharedLibraryInfo> sharedLibrary =
+                createMockSharedLibrary(new String[] {"a.dex", "b.dex"});
         String[] contexts = DexoptUtils.getClassLoaderContexts(
                 data.info, sharedLibrary, data.pathsWithCode);
 
         assertEquals(9, contexts.length);
-        assertEquals("PCL[a.dex:b.dex]", contexts[0]);
-        assertEquals("DLC[];DLC[base-2.dex];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]",
+        assertEquals("PCL[]{PCL[a.dex:b.dex]}", contexts[0]);
+        assertEquals("DLC[];DLC[base-2.dex];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}",
                 contexts[1]);
-        assertEquals("DLC[];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]", contexts[2]);
-        assertEquals("PCL[];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]", contexts[3]);
-        assertEquals("PCL[];PCL[a.dex:b.dex:base.dex]", contexts[4]);
-        assertEquals("PCL[];PCL[a.dex:b.dex:base.dex]", contexts[5]);
-        assertEquals("PCL[];PCL[base-5.dex];PCL[a.dex:b.dex:base.dex]", contexts[6]);
+        assertEquals("DLC[];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[2]);
+        assertEquals("PCL[];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[3]);
+        assertEquals("PCL[];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[4]);
+        assertEquals("PCL[];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[5]);
+        assertEquals("PCL[];PCL[base-5.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[6]);
         assertEquals(null, contexts[7]);  // config split
         assertEquals("PCL[]", contexts[8]);  // feature split with no dependency
     }
@@ -131,25 +142,28 @@
     @Test
     public void testSplitChainNoSplitDependencies() {
         TestData data = createMockApplicationInfo(PATH_CLASS_LOADER_NAME, true, false);
-        String[] sharedLibrary = new String[] {"a.dex", "b.dex"};
+        List<SharedLibraryInfo> sharedLibrary =
+                createMockSharedLibrary(new String[] {"a.dex", "b.dex"});
         String[] contexts = DexoptUtils.getClassLoaderContexts(
                 data.info, sharedLibrary, data.pathsWithCode);
 
         assertEquals(9, contexts.length);
-        assertEquals("PCL[a.dex:b.dex]", contexts[0]);
-        assertEquals("PCL[a.dex:b.dex:base.dex]", contexts[1]);
-        assertEquals("PCL[a.dex:b.dex:base.dex:base-1.dex]", contexts[2]);
-        assertEquals("PCL[a.dex:b.dex:base.dex:base-1.dex:base-2.dex]", contexts[3]);
-        assertEquals("PCL[a.dex:b.dex:base.dex:base-1.dex:base-2.dex:base-3.dex]", contexts[4]);
+        assertEquals("PCL[]{PCL[a.dex:b.dex]}", contexts[0]);
+        assertEquals("PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[1]);
+        assertEquals("PCL[base.dex:base-1.dex]{PCL[a.dex:b.dex]}", contexts[2]);
+        assertEquals("PCL[base.dex:base-1.dex:base-2.dex]{PCL[a.dex:b.dex]}", contexts[3]);
         assertEquals(
-                "PCL[a.dex:b.dex:base.dex:base-1.dex:base-2.dex:base-3.dex:base-4.dex]",
+                "PCL[base.dex:base-1.dex:base-2.dex:base-3.dex]{PCL[a.dex:b.dex]}",
+                contexts[4]);
+        assertEquals(
+                "PCL[base.dex:base-1.dex:base-2.dex:base-3.dex:base-4.dex]{PCL[a.dex:b.dex]}",
                 contexts[5]);
         assertEquals(
-                "PCL[a.dex:b.dex:base.dex:base-1.dex:base-2.dex:base-3.dex:base-4.dex:base-5.dex]",
+                "PCL[base.dex:base-1.dex:base-2.dex:base-3.dex:base-4.dex:base-5.dex]{PCL[a.dex:b.dex]}",
                 contexts[6]);
         assertEquals(null, contexts[7]);  // config split
         assertEquals(
-                "PCL[a.dex:b.dex:base.dex:base-1.dex:base-2.dex:base-3.dex:base-4.dex:base-5.dex:base-6.dex:config-split-7.dex]",
+                "PCL[base.dex:base-1.dex:base-2.dex:base-3.dex:base-4.dex:base-5.dex:base-6.dex:config-split-7.dex]{PCL[a.dex:b.dex]}",
                 contexts[8]);  // feature split with no dependency
     }
 
@@ -200,18 +214,21 @@
     public void testSplitChainWithNullPrimaryClassLoader() {
         // A null classLoaderName should mean PathClassLoader.
         TestData data = createMockApplicationInfo(null, true, true);
-        String[] sharedLibrary = new String[] {"a.dex", "b.dex"};
+        List<SharedLibraryInfo> sharedLibrary =
+                createMockSharedLibrary(new String[] {"a.dex", "b.dex"});
         String[] contexts = DexoptUtils.getClassLoaderContexts(
                 data.info, sharedLibrary, data.pathsWithCode);
 
         assertEquals(9, contexts.length);
-        assertEquals("PCL[a.dex:b.dex]", contexts[0]);
-        assertEquals("DLC[];DLC[base-2.dex];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]", contexts[1]);
-        assertEquals("DLC[];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]", contexts[2]);
-        assertEquals("PCL[];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]", contexts[3]);
-        assertEquals("PCL[];PCL[a.dex:b.dex:base.dex]", contexts[4]);
-        assertEquals("PCL[];PCL[a.dex:b.dex:base.dex]", contexts[5]);
-        assertEquals("PCL[];PCL[base-5.dex];PCL[a.dex:b.dex:base.dex]", contexts[6]);
+        assertEquals("PCL[]{PCL[a.dex:b.dex]}", contexts[0]);
+        assertEquals(
+                "DLC[];DLC[base-2.dex];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}",
+                contexts[1]);
+        assertEquals("DLC[];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[2]);
+        assertEquals("PCL[];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[3]);
+        assertEquals("PCL[];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[4]);
+        assertEquals("PCL[];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[5]);
+        assertEquals("PCL[];PCL[base-5.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[6]);
         assertEquals(null, contexts[7]);  // config split
         assertEquals("PCL[]", contexts[8]);  // feature split with no dependency
     }
@@ -219,35 +236,38 @@
     @Test
     public void tesNoSplits() {
         TestData data = createMockApplicationInfo(PATH_CLASS_LOADER_NAME, false, false);
-        String[] sharedLibrary = new String[] {"a.dex", "b.dex"};
+        List<SharedLibraryInfo> sharedLibrary =
+                createMockSharedLibrary(new String[] {"a.dex", "b.dex"});
         String[] contexts = DexoptUtils.getClassLoaderContexts(
                 data.info, sharedLibrary, data.pathsWithCode);
 
         assertEquals(1, contexts.length);
-        assertEquals("PCL[a.dex:b.dex]", contexts[0]);
+        assertEquals("PCL[]{PCL[a.dex:b.dex]}", contexts[0]);
     }
 
     @Test
     public void tesNoSplitsNullClassLoaderName() {
         TestData data = createMockApplicationInfo(null, false, false);
-        String[] sharedLibrary = new String[] {"a.dex", "b.dex"};
+        List<SharedLibraryInfo> sharedLibrary =
+                createMockSharedLibrary(new String[] {"a.dex", "b.dex"});
         String[] contexts = DexoptUtils.getClassLoaderContexts(
                 data.info, sharedLibrary, data.pathsWithCode);
 
         assertEquals(1, contexts.length);
-        assertEquals("PCL[a.dex:b.dex]", contexts[0]);
+        assertEquals("PCL[]{PCL[a.dex:b.dex]}", contexts[0]);
     }
 
     @Test
     public void tesNoSplitDelegateLast() {
         TestData data = createMockApplicationInfo(
                 DELEGATE_LAST_CLASS_LOADER_NAME, false, false);
-        String[] sharedLibrary = new String[] {"a.dex", "b.dex"};
+        List<SharedLibraryInfo> sharedLibrary =
+                createMockSharedLibrary(new String[] {"a.dex", "b.dex"});
         String[] contexts = DexoptUtils.getClassLoaderContexts(
                 data.info, sharedLibrary, data.pathsWithCode);
 
         assertEquals(1, contexts.length);
-        assertEquals("DLC[a.dex:b.dex]", contexts[0]);
+        assertEquals("DLC[]{PCL[a.dex:b.dex]}", contexts[0]);
     }
 
     @Test
@@ -276,7 +296,8 @@
         TestData data = createMockApplicationInfo(null, true, false);
         Arrays.fill(data.pathsWithCode, false);
 
-        String[] sharedLibrary = new String[] {"a.dex", "b.dex"};
+        List<SharedLibraryInfo> sharedLibrary =
+                createMockSharedLibrary(new String[] {"a.dex", "b.dex"});
         String[] contexts = DexoptUtils.getClassLoaderContexts(
                 data.info, sharedLibrary, data.pathsWithCode);
 
@@ -295,18 +316,21 @@
     public void testContextBaseNoCode() {
         TestData data = createMockApplicationInfo(null, true, true);
         data.pathsWithCode[0] = false;
-        String[] sharedLibrary = new String[] {"a.dex", "b.dex"};
+        List<SharedLibraryInfo> sharedLibrary =
+                createMockSharedLibrary(new String[] {"a.dex", "b.dex"});
         String[] contexts = DexoptUtils.getClassLoaderContexts(
                 data.info, sharedLibrary, data.pathsWithCode);
 
         assertEquals(9, contexts.length);
         assertEquals(null, contexts[0]);
-        assertEquals("DLC[];DLC[base-2.dex];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]", contexts[1]);
-        assertEquals("DLC[];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]", contexts[2]);
-        assertEquals("PCL[];PCL[base-4.dex];PCL[a.dex:b.dex:base.dex]", contexts[3]);
-        assertEquals("PCL[];PCL[a.dex:b.dex:base.dex]", contexts[4]);
-        assertEquals("PCL[];PCL[a.dex:b.dex:base.dex]", contexts[5]);
-        assertEquals("PCL[];PCL[base-5.dex];PCL[a.dex:b.dex:base.dex]", contexts[6]);
+        assertEquals(
+                "DLC[];DLC[base-2.dex];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}",
+                contexts[1]);
+        assertEquals("DLC[];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[2]);
+        assertEquals("PCL[];PCL[base-4.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[3]);
+        assertEquals("PCL[];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[4]);
+        assertEquals("PCL[];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[5]);
+        assertEquals("PCL[];PCL[base-5.dex];PCL[base.dex]{PCL[a.dex:b.dex]}", contexts[6]);
         assertEquals(null, contexts[7]);
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/power/ThermalManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/power/ThermalManagerServiceTest.java
new file mode 100644
index 0000000..5077f92
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/power/ThermalManagerServiceTest.java
@@ -0,0 +1,299 @@
+/*
+ * 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.server.power;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.IBinder;
+import android.os.IPowerManager;
+import android.os.IThermalEventListener;
+import android.os.IThermalStatusListener;
+import android.os.PowerManager;
+import android.os.RemoteException;
+import android.os.Temperature;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.server.SystemService;
+import com.android.server.power.ThermalManagerService.ThermalHalWrapper;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server
+ * /power/ThermalManagerServiceTest.java
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class ThermalManagerServiceTest {
+    private static final long CALLBACK_TIMEOUT_MILLI_SEC = 5000;
+    private ThermalManagerService mService;
+    private ThermalHalFake mFakeHal;
+    private PowerManager mPowerManager;
+    @Mock
+    private Context mContext;
+    @Mock
+    private IPowerManager mIPowerManagerMock;
+    @Mock
+    private IThermalEventListener mEventListener1;
+    @Mock
+    private IThermalEventListener mEventListener2;
+    @Mock
+    private IThermalStatusListener mStatusListener1;
+    @Mock
+    private IThermalStatusListener mStatusListener2;
+
+    /**
+     * Fake Hal class.
+     */
+    private class ThermalHalFake extends ThermalHalWrapper {
+        private static final int INIT_STATUS = Temperature.THROTTLING_NONE;
+        private ArrayList<Temperature> mTemperatureList = new ArrayList<>();
+        private Temperature mSkin1 = new Temperature(0, Temperature.TYPE_SKIN, "skin1",
+                INIT_STATUS);
+        private Temperature mSkin2 = new Temperature(0, Temperature.TYPE_SKIN, "skin2",
+                INIT_STATUS);
+        private Temperature mBattery = new Temperature(0, Temperature.TYPE_BATTERY, "batt",
+                INIT_STATUS);
+        private Temperature mUsbPort = new Temperature(0, Temperature.TYPE_USB_PORT, "usbport",
+                INIT_STATUS);
+
+        ThermalHalFake() {
+            mTemperatureList.add(mSkin1);
+            mTemperatureList.add(mSkin2);
+            mTemperatureList.add(mBattery);
+            mTemperatureList.add(mUsbPort);
+        }
+
+        @Override
+        protected List<Temperature> getCurrentTemperatures(boolean shouldFilter, int type) {
+            return mTemperatureList;
+        }
+
+        @Override
+        protected boolean connectToHal() {
+            return true;
+        }
+
+        @Override
+        protected void dump(PrintWriter pw, String prefix) {
+            return;
+        }
+    }
+
+    private void assertTemperatureEquals(List<Temperature> expected, List<Temperature> value) {
+        assertEquals(new HashSet<>(expected), new HashSet<>(value));
+    }
+
+    @Before
+    public void setUp() throws RemoteException {
+        MockitoAnnotations.initMocks(this);
+        mFakeHal = new ThermalHalFake();
+        mPowerManager = new PowerManager(mContext, mIPowerManagerMock, null);
+        when(mContext.getSystemServiceName(PowerManager.class)).thenReturn(Context.POWER_SERVICE);
+        when(mContext.getSystemService(PowerManager.class)).thenReturn(mPowerManager);
+        resetListenerMock();
+        mService = new ThermalManagerService(mContext, mFakeHal);
+        // Register callbacks before AMS ready and no callback sent
+        assertTrue(mService.mService.registerThermalEventListener(mEventListener1));
+        assertTrue(mService.mService.registerThermalStatusListener(mStatusListener1));
+        assertTrue(mService.mService.registerThermalEventListenerWithType(mEventListener2,
+                Temperature.TYPE_SKIN));
+        assertTrue(mService.mService.registerThermalStatusListener(mStatusListener2));
+        verify(mEventListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).notifyThrottling(any(Temperature.class));
+        verify(mStatusListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).onStatusChange(anyInt());
+        verify(mEventListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).notifyThrottling(any(Temperature.class));
+        verify(mStatusListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).onStatusChange(anyInt());
+        mService.onBootPhase(SystemService.PHASE_ACTIVITY_MANAGER_READY);
+        ArgumentCaptor<Temperature> captor = ArgumentCaptor.forClass(Temperature.class);
+        verify(mEventListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(4)).notifyThrottling(captor.capture());
+        assertTemperatureEquals(mFakeHal.mTemperatureList, captor.getAllValues());
+        verify(mStatusListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(Temperature.THROTTLING_NONE);
+        captor = ArgumentCaptor.forClass(Temperature.class);
+        verify(mEventListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(2)).notifyThrottling(captor.capture());
+        assertTemperatureEquals(new ArrayList<>(Arrays.asList(mFakeHal.mSkin1, mFakeHal.mSkin2)),
+                captor.getAllValues());
+        verify(mStatusListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(Temperature.THROTTLING_NONE);
+    }
+
+    private void resetListenerMock() {
+        reset(mEventListener1);
+        reset(mStatusListener1);
+        reset(mEventListener2);
+        reset(mStatusListener2);
+        doReturn(mock(IBinder.class)).when(mEventListener1).asBinder();
+        doReturn(mock(IBinder.class)).when(mStatusListener1).asBinder();
+        doReturn(mock(IBinder.class)).when(mEventListener2).asBinder();
+        doReturn(mock(IBinder.class)).when(mStatusListener2).asBinder();
+    }
+
+    @Test
+    public void testRegister() throws RemoteException {
+        // Unregister all
+        assertTrue(mService.mService.unregisterThermalEventListener(mEventListener1));
+        assertTrue(mService.mService.unregisterThermalStatusListener(mStatusListener1));
+        assertTrue(mService.mService.unregisterThermalEventListener(mEventListener2));
+        assertTrue(mService.mService.unregisterThermalStatusListener(mStatusListener2));
+        resetListenerMock();
+        // Register callbacks and verify they are called
+        assertTrue(mService.mService.registerThermalEventListener(mEventListener1));
+        assertTrue(mService.mService.registerThermalStatusListener(mStatusListener1));
+        ArgumentCaptor<Temperature> captor = ArgumentCaptor.forClass(Temperature.class);
+        verify(mEventListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(4)).notifyThrottling(captor.capture());
+        assertTemperatureEquals(mFakeHal.mTemperatureList, captor.getAllValues());
+        verify(mStatusListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(Temperature.THROTTLING_NONE);
+        // Register new callbacks and verify old ones are not called (remained same) while new
+        // ones are called
+        assertTrue(mService.mService.registerThermalEventListenerWithType(mEventListener2,
+                Temperature.TYPE_SKIN));
+        assertTrue(mService.mService.registerThermalStatusListener(mStatusListener2));
+        verify(mEventListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(4)).notifyThrottling(any(Temperature.class));
+        verify(mStatusListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(Temperature.THROTTLING_NONE);
+        captor = ArgumentCaptor.forClass(Temperature.class);
+        verify(mEventListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(2)).notifyThrottling(captor.capture());
+        assertTemperatureEquals(new ArrayList<>(Arrays.asList(mFakeHal.mSkin1, mFakeHal.mSkin2)),
+                captor.getAllValues());
+        verify(mStatusListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(Temperature.THROTTLING_NONE);
+    }
+
+    @Test
+    public void testNotify() throws RemoteException {
+        int status = Temperature.THROTTLING_SEVERE;
+        Temperature newBattery = new Temperature(50, Temperature.TYPE_BATTERY, "batt", status);
+        mFakeHal.mCallback.onValues(newBattery);
+        verify(mEventListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).notifyThrottling(newBattery);
+        verify(mStatusListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(status);
+        verify(mEventListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).notifyThrottling(newBattery);
+        verify(mStatusListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(status);
+        resetListenerMock();
+        // Should only notify event not status
+        Temperature newSkin = new Temperature(50, Temperature.TYPE_SKIN, "skin1", status);
+        mFakeHal.mCallback.onValues(newSkin);
+        verify(mEventListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).notifyThrottling(newSkin);
+        verify(mStatusListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).onStatusChange(anyInt());
+        verify(mEventListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).notifyThrottling(newSkin);
+        verify(mStatusListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).onStatusChange(anyInt());
+        resetListenerMock();
+        // Back to None, should only notify event not status
+        status = Temperature.THROTTLING_NONE;
+        newBattery = new Temperature(50, Temperature.TYPE_BATTERY, "batt", status);
+        mFakeHal.mCallback.onValues(newBattery);
+        verify(mEventListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).notifyThrottling(newBattery);
+        verify(mStatusListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).onStatusChange(anyInt());
+        verify(mEventListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).notifyThrottling(newBattery);
+        verify(mStatusListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(0)).onStatusChange(anyInt());
+        resetListenerMock();
+        // Should also notify status
+        newSkin = new Temperature(50, Temperature.TYPE_SKIN, "skin1", status);
+        mFakeHal.mCallback.onValues(newSkin);
+        verify(mEventListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).notifyThrottling(newSkin);
+        verify(mStatusListener1, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(status);
+        verify(mEventListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).notifyThrottling(newSkin);
+        verify(mStatusListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).onStatusChange(status);
+    }
+
+    @Test
+    public void testGetCurrentTemperatures() throws RemoteException {
+        assertTemperatureEquals(mFakeHal.getCurrentTemperatures(false, 0),
+                mService.mService.getCurrentTemperatures());
+        assertTemperatureEquals(mFakeHal.getCurrentTemperatures(true, Temperature.TYPE_SKIN),
+                mService.mService.getCurrentTemperaturesWithType(Temperature.TYPE_SKIN));
+    }
+
+    @Test
+    public void testGetCurrentStatus() throws RemoteException {
+        int status = Temperature.THROTTLING_WARNING;
+        Temperature newSkin = new Temperature(100, Temperature.TYPE_SKIN, "skin1", status);
+        mFakeHal.mCallback.onValues(newSkin);
+        assertEquals(status, mService.mService.getCurrentThermalStatus());
+    }
+
+    @Test
+    public void testThermalShutdown() throws RemoteException {
+        int status = Temperature.THROTTLING_SHUTDOWN;
+        Temperature newSkin = new Temperature(100, Temperature.TYPE_SKIN, "skin1", status);
+        mFakeHal.mCallback.onValues(newSkin);
+        verify(mIPowerManagerMock, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+                .times(1)).shutdown(false, PowerManager.SHUTDOWN_THERMAL_STATE, false);
+    }
+
+    @Test
+    public void testNoHal() throws RemoteException {
+        mService = new ThermalManagerService(mContext);
+        // Do no call onActivityManagerReady to skip connect HAL
+        assertTrue(mService.mService.registerThermalEventListener(mEventListener1));
+        assertTrue(mService.mService.registerThermalStatusListener(mStatusListener1));
+        assertTrue(mService.mService.unregisterThermalEventListener(mEventListener1));
+        assertTrue(mService.mService.unregisterThermalStatusListener(mStatusListener1));
+        assertEquals(0, mService.mService.getCurrentTemperatures().size());
+        assertEquals(0,
+                mService.mService.getCurrentTemperaturesWithType(Temperature.TYPE_SKIN).size());
+        assertEquals(Temperature.THROTTLING_NONE, mService.mService.getCurrentThermalStatus());
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java b/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java
deleted file mode 100644
index 415b5d9..0000000
--- a/services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java
+++ /dev/null
@@ -1,253 +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.wm;
-
-import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
-import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
-import static android.content.res.Configuration.EMPTY;
-import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
-
-import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
-
-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.fail;
-
-import android.platform.test.annotations.Presubmit;
-
-import androidx.test.filters.FlakyTest;
-import androidx.test.filters.SmallTest;
-
-import com.android.server.wm.WindowTestUtils.TestTaskWindowContainerController;
-
-import org.junit.Test;
-
-/**
- * Test class for {@link AppWindowContainerController}.
- *
- * atest FrameworksServicesTests:AppWindowContainerControllerTests
- */
-@FlakyTest(bugId = 74078662)
-@SmallTest
-@Presubmit
-public class AppWindowContainerControllerTests extends WindowTestsBase {
-
-    private final String mPackageName = getInstrumentation().getTargetContext().getPackageName();
-
-    @Test
-    public void testRemoveContainer() {
-        final WindowTestUtils.TestAppWindowContainerController controller =
-                createAppWindowController();
-
-        // Assert token was added to display.
-        assertNotNull(mDisplayContent.getWindowToken(controller.mToken.asBinder()));
-        // Assert that the container was created and linked.
-        assertNotNull(controller.mContainer);
-
-        controller.removeContainer(mDisplayContent.getDisplayId());
-
-        // Assert token was remove from display.
-        assertNull(mDisplayContent.getWindowToken(controller.mToken.asBinder()));
-        // Assert that the container was removed.
-        assertNull(controller.mContainer);
-    }
-
-    @Test
-    public void testSetOrientation() {
-        final WindowTestUtils.TestAppWindowContainerController controller =
-                createAppWindowController();
-
-        // Assert orientation is unspecified to start.
-        assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, controller.getOrientation());
-
-        controller.setOrientation(SCREEN_ORIENTATION_LANDSCAPE, mDisplayContent.getDisplayId(),
-                EMPTY /* displayConfig */, false /* freezeScreenIfNeeded */);
-        assertEquals(SCREEN_ORIENTATION_LANDSCAPE, controller.getOrientation());
-
-        controller.removeContainer(mDisplayContent.getDisplayId());
-        // Assert orientation is unspecified to after container is removed.
-        assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, controller.getOrientation());
-
-        // Reset display frozen state
-        mWm.mDisplayFrozen = false;
-    }
-
-    private void assertHasStartingWindow(AppWindowToken atoken) {
-        assertNotNull(atoken.startingSurface);
-        assertNotNull(atoken.startingData);
-        assertNotNull(atoken.startingWindow);
-    }
-
-    private void assertNoStartingWindow(AppWindowToken atoken) {
-        assertNull(atoken.startingSurface);
-        assertNull(atoken.startingWindow);
-        assertNull(atoken.startingData);
-        atoken.forAllWindows(windowState -> {
-            assertFalse(windowState.getBaseType() == TYPE_APPLICATION_STARTING);
-        }, true);
-    }
-
-    @Test
-    public void testCreateRemoveStartingWindow() {
-        final WindowTestUtils.TestAppWindowContainerController controller =
-                createAppWindowController();
-        controller.addStartingWindow(mPackageName,
-                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
-                false, false);
-        waitUntilHandlersIdle();
-        final AppWindowToken atoken = controller.getAppWindowToken(mDisplayContent);
-        assertHasStartingWindow(atoken);
-        controller.removeStartingWindow();
-        waitUntilHandlersIdle();
-        assertNoStartingWindow(atoken);
-    }
-
-    @Test
-    public void testAddRemoveRace() {
-        // There was once a race condition between adding and removing starting windows
-        for (int i = 0; i < 1000; i++) {
-            final WindowTestUtils.TestAppWindowContainerController controller =
-                    createAppWindowController();
-            controller.addStartingWindow(mPackageName,
-                    android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
-                    false, false);
-            controller.removeStartingWindow();
-            waitUntilHandlersIdle();
-            assertNoStartingWindow(controller.getAppWindowToken(mDisplayContent));
-
-            controller.getAppWindowToken(
-                    mDisplayContent).getParent().getParent().removeImmediately();
-        }
-    }
-
-    @Test
-    public void testTransferStartingWindow() {
-        final WindowTestUtils.TestAppWindowContainerController controller1 =
-                createAppWindowController();
-        final WindowTestUtils.TestAppWindowContainerController controller2 =
-                createAppWindowController();
-        controller1.addStartingWindow(mPackageName,
-                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
-                false, false);
-        waitUntilHandlersIdle();
-        controller2.addStartingWindow(mPackageName,
-                android.R.style.Theme, null, "Test", 0, 0, 0, 0, controller1.mToken.asBinder(),
-                true, true, false, true, false, false);
-        waitUntilHandlersIdle();
-        assertNoStartingWindow(controller1.getAppWindowToken(mDisplayContent));
-        assertHasStartingWindow(controller2.getAppWindowToken(mDisplayContent));
-    }
-
-    @Test
-    public void testTransferStartingWindowWhileCreating() {
-        final WindowTestUtils.TestAppWindowContainerController controller1 =
-                createAppWindowController();
-        final WindowTestUtils.TestAppWindowContainerController controller2 =
-                createAppWindowController();
-        ((TestWindowManagerPolicy) mWm.mPolicy).setRunnableWhenAddingSplashScreen(() -> {
-
-            // Surprise, ...! Transfer window in the middle of the creation flow.
-            controller2.addStartingWindow(mPackageName,
-                    android.R.style.Theme, null, "Test", 0, 0, 0, 0, controller1.mToken.asBinder(),
-                    true, true, false, true, false, false);
-        });
-        controller1.addStartingWindow(mPackageName,
-                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
-                false, false);
-        waitUntilHandlersIdle();
-        assertNoStartingWindow(controller1.getAppWindowToken(mDisplayContent));
-        assertHasStartingWindow(controller2.getAppWindowToken(mDisplayContent));
-    }
-
-    @Test
-    public void testTryTransferStartingWindowFromHiddenAboveToken() {
-
-        // Add two tasks on top of each other.
-        TestTaskWindowContainerController taskController =
-                new WindowTestUtils.TestTaskWindowContainerController(this);
-        final WindowTestUtils.TestAppWindowContainerController controllerTop =
-                createAppWindowController(taskController);
-        final WindowTestUtils.TestAppWindowContainerController controllerBottom =
-                createAppWindowController(taskController);
-
-        // Add a starting window.
-        controllerTop.addStartingWindow(mPackageName,
-                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
-                false, false);
-        waitUntilHandlersIdle();
-
-        // Make the top one invisible, and try transfering the starting window from the top to the
-        // bottom one.
-        controllerTop.setVisibility(false, false);
-        controllerBottom.mContainer.transferStartingWindowFromHiddenAboveTokenIfNeeded();
-
-        // Assert that the bottom window now has the starting window.
-        assertNoStartingWindow(controllerTop.getAppWindowToken(mDisplayContent));
-        assertHasStartingWindow(controllerBottom.getAppWindowToken(mDisplayContent));
-    }
-
-    @Test
-    public void testReparent() {
-        final StackWindowController stackController =
-            createStackControllerOnDisplay(mDisplayContent);
-        final WindowTestUtils.TestTaskWindowContainerController taskController1 =
-                new WindowTestUtils.TestTaskWindowContainerController(stackController);
-        final WindowTestUtils.TestAppWindowContainerController appWindowController1 =
-                createAppWindowController(taskController1);
-        final WindowTestUtils.TestTaskWindowContainerController taskController2 =
-                new WindowTestUtils.TestTaskWindowContainerController(stackController);
-        final WindowTestUtils.TestAppWindowContainerController appWindowController2 =
-                createAppWindowController(taskController2);
-        final WindowTestUtils.TestTaskWindowContainerController taskController3 =
-                new WindowTestUtils.TestTaskWindowContainerController(stackController);
-
-        try {
-            appWindowController1.reparent(taskController1, 0);
-            fail("Should not be able to reparent to the same parent");
-        } catch (IllegalArgumentException e) {
-            // Expected
-        }
-
-        try {
-            taskController3.setContainer(null);
-            appWindowController1.reparent(taskController3, 0);
-            fail("Should not be able to reparent to a task that doesn't have a container");
-        } catch (IllegalArgumentException e) {
-            // Expected
-        }
-
-        // Reparent the app window and ensure that it is moved
-        appWindowController1.reparent(taskController2, 0);
-        assertEquals(taskController2.mContainer, appWindowController1.mContainer.getParent());
-        assertEquals(0, ((WindowTestUtils.TestAppWindowToken) appWindowController1.mContainer)
-                .positionInParent());
-        assertEquals(1, ((WindowTestUtils.TestAppWindowToken) appWindowController2.mContainer)
-                .positionInParent());
-    }
-
-    private WindowTestUtils.TestAppWindowContainerController createAppWindowController() {
-        return createAppWindowController(
-                new WindowTestUtils.TestTaskWindowContainerController(this));
-    }
-
-    private WindowTestUtils.TestAppWindowContainerController createAppWindowController(
-            WindowTestUtils.TestTaskWindowContainerController taskController) {
-        return new WindowTestUtils.TestAppWindowContainerController(taskController);
-    }
-}
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTestUtils.java b/services/tests/servicestests/src/com/android/server/wm/WindowTestUtils.java
deleted file mode 100644
index 80bb936..0000000
--- a/services/tests/servicestests/src/com/android/server/wm/WindowTestUtils.java
+++ /dev/null
@@ -1,399 +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.wm;
-
-import static android.app.AppOpsManager.OP_NONE;
-import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
-import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
-
-import static com.android.server.wm.WindowContainer.POSITION_TOP;
-
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyBoolean;
-import static org.mockito.Mockito.anyFloat;
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import android.app.ActivityManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.res.Configuration;
-import android.graphics.Rect;
-import android.os.Binder;
-import android.os.IBinder;
-import android.view.Display;
-import android.view.IApplicationToken;
-import android.view.IWindow;
-import android.view.Surface;
-import android.view.SurfaceControl.Transaction;
-import android.view.WindowManager;
-
-import org.mockito.invocation.InvocationOnMock;
-
-/**
- * A collection of static functions that can be referenced by other test packages to provide access
- * to WindowManager related test functionality.
- */
-public class WindowTestUtils {
-    private static int sNextTaskId = 0;
-
-    /** An extension of {@link DisplayContent} to gain package scoped access. */
-    public static class TestDisplayContent extends DisplayContent {
-
-        private TestDisplayContent(Display display, WindowManagerService service,
-                WallpaperController wallpaperController, DisplayWindowController controller) {
-            super(display, service, wallpaperController, controller);
-        }
-
-        /** Create a mocked default {@link DisplayContent}. */
-        public static TestDisplayContent create(Context context) {
-            final TestDisplayContent displayContent = mock(TestDisplayContent.class);
-            displayContent.isDefaultDisplay = true;
-
-            final DisplayPolicy displayPolicy = mock(DisplayPolicy.class);
-            when(displayPolicy.navigationBarCanMove()).thenReturn(true);
-            when(displayPolicy.hasNavigationBar()).thenReturn(true);
-
-            final DisplayRotation displayRotation = new DisplayRotation(
-                    mock(WindowManagerService.class), displayContent, displayPolicy,
-                    context, new Object());
-            displayRotation.mPortraitRotation = Surface.ROTATION_0;
-            displayRotation.mLandscapeRotation = Surface.ROTATION_90;
-            displayRotation.mUpsideDownRotation = Surface.ROTATION_180;
-            displayRotation.mSeascapeRotation = Surface.ROTATION_270;
-
-            when(displayContent.getDisplayRotation()).thenReturn(displayRotation);
-
-            return displayContent;
-        }
-    }
-
-    /**
-     * Creates a mock instance of {@link StackWindowController}.
-     */
-    public static StackWindowController createMockStackWindowContainerController() {
-        StackWindowController controller = mock(StackWindowController.class);
-        controller.mContainer = mock(TestTaskStack.class);
-
-        // many components rely on the {@link StackWindowController#adjustConfigurationForBounds}
-        // to properly set bounds values in the configuration. We must mimick those actions here.
-        doAnswer((InvocationOnMock invocationOnMock) -> {
-            final Configuration config = invocationOnMock.<Configuration>getArgument(7);
-            final Rect bounds = invocationOnMock.<Rect>getArgument(0);
-            config.windowConfiguration.setBounds(bounds);
-            return null;
-        }).when(controller).adjustConfigurationForBounds(any(), any(), any(), any(),
-                anyBoolean(), anyBoolean(), anyFloat(), any(), any(), anyInt());
-
-        return controller;
-    }
-
-    /** Creates a {@link Task} and adds it to the specified {@link TaskStack}. */
-    public static Task createTaskInStack(WindowManagerService service, TaskStack stack,
-            int userId) {
-        synchronized (service.mGlobalLock) {
-            final Task newTask = new Task(sNextTaskId++, stack, userId, service, 0, false,
-                    new ActivityManager.TaskDescription(), null);
-            stack.addTask(newTask, POSITION_TOP);
-            return newTask;
-        }
-    }
-
-    /**
-     * An extension of {@link TestTaskStack}, which overrides package scoped methods that would not
-     * normally be mocked out.
-     */
-    public static class TestTaskStack extends TaskStack {
-        TestTaskStack(WindowManagerService service, int stackId) {
-            super(service, stackId, null);
-        }
-
-        @Override
-        void addTask(Task task, int position, boolean showForAllUsers, boolean moveParents) {
-            // Do nothing.
-        }
-    }
-
-    static TestAppWindowToken createTestAppWindowToken(DisplayContent dc) {
-        synchronized (dc.mService.mGlobalLock) {
-            return new TestAppWindowToken(dc);
-        }
-    }
-
-    /** Used so we can gain access to some protected members of the {@link AppWindowToken} class. */
-    public static class TestAppWindowToken extends AppWindowToken {
-        boolean mOnTop = false;
-        private Transaction mPendingTransactionOverride;
-
-        private TestAppWindowToken(DisplayContent dc) {
-            super(dc.mService, new IApplicationToken.Stub() {
-                public String getName() {return null;}
-                }, new ComponentName("", ""), false, dc, true /* fillsParent */);
-        }
-
-        TestAppWindowToken(WindowManagerService service, IApplicationToken token,
-                ComponentName activityComponent, boolean voiceInteraction, DisplayContent dc,
-                long inputDispatchingTimeoutNanos, boolean fullscreen, boolean showForAllUsers,
-                int targetSdk, int orientation, int rotationAnimationHint, int configChanges,
-                boolean launchTaskBehind, boolean alwaysFocusable,
-                AppWindowContainerController controller) {
-            super(service, token, activityComponent, voiceInteraction, dc,
-                    inputDispatchingTimeoutNanos, fullscreen, showForAllUsers, targetSdk,
-                    orientation, rotationAnimationHint, configChanges, launchTaskBehind,
-                    alwaysFocusable, controller);
-        }
-
-        int getWindowsCount() {
-            return mChildren.size();
-        }
-
-        boolean hasWindow(WindowState w) {
-            return mChildren.contains(w);
-        }
-
-        WindowState getFirstChild() {
-            return mChildren.peekFirst();
-        }
-
-        WindowState getLastChild() {
-            return mChildren.peekLast();
-        }
-
-        int positionInParent() {
-            return getParent().mChildren.indexOf(this);
-        }
-
-        void setIsOnTop(boolean onTop) {
-            mOnTop = onTop;
-        }
-
-        @Override
-        boolean isOnTop() {
-            return mOnTop;
-        }
-
-        void setPendingTransaction(Transaction transaction) {
-            mPendingTransactionOverride = transaction;
-        }
-
-        @Override
-        public Transaction getPendingTransaction() {
-            return mPendingTransactionOverride == null
-                    ? super.getPendingTransaction()
-                    : mPendingTransactionOverride;
-        }
-    }
-
-    static TestWindowToken createTestWindowToken(int type, DisplayContent dc) {
-        return createTestWindowToken(type, dc, false /* persistOnEmpty */);
-    }
-
-    static TestWindowToken createTestWindowToken(int type, DisplayContent dc,
-            boolean persistOnEmpty) {
-        synchronized (dc.mService.mGlobalLock) {
-            return new TestWindowToken(type, dc, persistOnEmpty);
-        }
-    }
-
-    /* Used so we can gain access to some protected members of the {@link WindowToken} class */
-    public static class TestWindowToken extends WindowToken {
-
-        private TestWindowToken(int type, DisplayContent dc, boolean persistOnEmpty) {
-            super(dc.mService, mock(IBinder.class), type, persistOnEmpty, dc,
-                    false /* ownerCanManageAppTokens */);
-        }
-
-        int getWindowsCount() {
-            return mChildren.size();
-        }
-
-        boolean hasWindow(WindowState w) {
-            return mChildren.contains(w);
-        }
-    }
-
-    /* Used so we can gain access to some protected members of the {@link Task} class */
-    public static class TestTask extends Task {
-        boolean mShouldDeferRemoval = false;
-        boolean mOnDisplayChangedCalled = false;
-        private boolean mIsAnimating = false;
-
-        TestTask(int taskId, TaskStack stack, int userId, WindowManagerService service,
-                int resizeMode, boolean supportsPictureInPicture,
-                TaskWindowContainerController controller) {
-            super(taskId, stack, userId, service, resizeMode, supportsPictureInPicture,
-                    new ActivityManager.TaskDescription(), controller);
-        }
-
-        boolean shouldDeferRemoval() {
-            return mShouldDeferRemoval;
-        }
-
-        int positionInParent() {
-            return getParent().mChildren.indexOf(this);
-        }
-
-        @Override
-        void onDisplayChanged(DisplayContent dc) {
-            super.onDisplayChanged(dc);
-            mOnDisplayChangedCalled = true;
-        }
-
-        @Override
-        boolean isSelfAnimating() {
-            return mIsAnimating;
-        }
-
-        void setLocalIsAnimating(boolean isAnimating) {
-            mIsAnimating = isAnimating;
-        }
-    }
-
-    /**
-     * Used so we can gain access to some protected members of {@link TaskWindowContainerController}
-     * class.
-     */
-    public static class TestTaskWindowContainerController extends TaskWindowContainerController {
-
-        static final TaskWindowContainerListener NOP_LISTENER = new TaskWindowContainerListener() {
-            @Override
-            public void registerConfigurationChangeListener(
-                    ConfigurationContainerListener listener) {
-            }
-
-            @Override
-            public void unregisterConfigurationChangeListener(
-                    ConfigurationContainerListener listener) {
-            }
-
-            @Override
-            public void onSnapshotChanged(ActivityManager.TaskSnapshot snapshot) {
-            }
-
-            @Override
-            public void requestResize(Rect bounds, int resizeMode) {
-            }
-        };
-
-        TestTaskWindowContainerController(WindowTestsBase testsBase) {
-            this(testsBase.createStackControllerOnDisplay(testsBase.mDisplayContent));
-        }
-
-        TestTaskWindowContainerController(StackWindowController stackController) {
-            super(sNextTaskId++, NOP_LISTENER, stackController, 0 /* userId */, null /* bounds */,
-                    RESIZE_MODE_UNRESIZEABLE, false /* supportsPictureInPicture */, true /* toTop*/,
-                    true /* showForAllUsers */, new ActivityManager.TaskDescription(),
-                    stackController.mService);
-        }
-
-        @Override
-        TestTask createTask(int taskId, TaskStack stack, int userId, int resizeMode,
-                boolean supportsPictureInPicture, ActivityManager.TaskDescription taskDescription) {
-            return new TestTask(taskId, stack, userId, mService, resizeMode,
-                    supportsPictureInPicture, this);
-        }
-    }
-
-    public static class TestAppWindowContainerController extends AppWindowContainerController {
-
-        final IApplicationToken mToken;
-
-        TestAppWindowContainerController(TestTaskWindowContainerController taskController) {
-            this(taskController, new TestIApplicationToken());
-        }
-
-        TestAppWindowContainerController(TestTaskWindowContainerController taskController,
-                IApplicationToken token) {
-            super(taskController, token, new ComponentName("", "") /* activityComponent */,
-                    null /* listener */, 0 /* index */, SCREEN_ORIENTATION_UNSPECIFIED,
-                    true /* fullscreen */, true /* showForAllUsers */, 0 /* configChanges */,
-                    false /* voiceInteraction */, false /* launchTaskBehind */,
-                    false /* alwaysFocusable */, 0 /* targetSdkVersion */,
-                    0 /* rotationAnimationHint */, 0 /* inputDispatchingTimeoutNanos */,
-                    taskController.mService);
-            mToken = token;
-        }
-
-        @Override
-        AppWindowToken createAppWindow(WindowManagerService service, IApplicationToken token,
-                ComponentName activityComponent, boolean voiceInteraction, DisplayContent dc,
-                long inputDispatchingTimeoutNanos,
-                boolean fullscreen, boolean showForAllUsers, int targetSdk, int orientation,
-                int rotationAnimationHint, int configChanges, boolean launchTaskBehind,
-                boolean alwaysFocusable, AppWindowContainerController controller) {
-            return new TestAppWindowToken(service, token, activityComponent, voiceInteraction, dc,
-                    inputDispatchingTimeoutNanos, fullscreen, showForAllUsers, targetSdk,
-                    orientation,
-                    rotationAnimationHint, configChanges, launchTaskBehind, alwaysFocusable,
-                    controller);
-        }
-
-        AppWindowToken getAppWindowToken(DisplayContent dc) {
-            return (AppWindowToken) dc.getWindowToken(mToken.asBinder());
-        }
-    }
-
-    public static class TestIApplicationToken implements IApplicationToken {
-
-        private final Binder mBinder = new Binder();
-        @Override
-        public IBinder asBinder() {
-            return mBinder;
-        }
-        @Override
-        public String getName() {
-            return null;
-        }
-    }
-
-    /** Used to track resize reports. */
-    public static class TestWindowState extends WindowState {
-        boolean resizeReported;
-
-        TestWindowState(WindowManagerService service, Session session, IWindow window,
-                WindowManager.LayoutParams attrs, WindowToken token) {
-            super(service, session, window, token, null, OP_NONE, 0, attrs, 0, 0,
-                    false /* ownerCanAddInternalSystemWindow */);
-        }
-
-        @Override
-        void reportResized() {
-            super.reportResized();
-            resizeReported = true;
-        }
-
-        @Override
-        public boolean isGoneForLayoutLw() {
-            return false;
-        }
-
-        @Override
-        void updateResizingWindowIfNeeded() {
-            // Used in AppWindowTokenTests#testLandscapeSeascapeRotationRelayout to deceive
-            // the system that it can actually update the window.
-            boolean hadSurface = mHasSurface;
-            mHasSurface = true;
-
-            super.updateResizingWindowIfNeeded();
-
-            mHasSurface = hadSurface;
-        }
-    }
-}
diff --git a/services/tests/servicestests/test-apps/Android.mk b/services/tests/servicestests/test-apps/Android.mk
deleted file mode 100644
index 5053e7d..0000000
--- a/services/tests/servicestests/test-apps/Android.mk
+++ /dev/null
@@ -1 +0,0 @@
-include $(call all-subdir-makefiles)
diff --git a/services/tests/servicestests/test-apps/ConnTestApp/Android.bp b/services/tests/servicestests/test-apps/ConnTestApp/Android.bp
new file mode 100644
index 0000000..13e6644
--- /dev/null
+++ b/services/tests/servicestests/test-apps/ConnTestApp/Android.bp
@@ -0,0 +1,31 @@
+// 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.
+
+android_test_helper_app {
+    name: "ConnTestApp",
+
+    test_suites: ["device-tests"],
+
+    static_libs: ["servicestests-aidl"],
+    srcs: ["**/*.java"],
+
+    platform_apis: true,
+    certificate: "platform",
+    dex_preopt: {
+        enabled: false,
+    },
+    optimize: {
+        enabled: false,
+    },
+}
diff --git a/services/tests/servicestests/test-apps/JobTestApp/Android.bp b/services/tests/servicestests/test-apps/JobTestApp/Android.bp
new file mode 100644
index 0000000..ae1eca7
--- /dev/null
+++ b/services/tests/servicestests/test-apps/JobTestApp/Android.bp
@@ -0,0 +1,30 @@
+// 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.
+
+android_test_helper_app {
+    name: "JobTestApp",
+
+    sdk_version: "current",
+
+    test_suites: ["device-tests"],
+
+    srcs: ["**/*.java"],
+
+    dex_preopt: {
+        enabled: false,
+    },
+    optimize: {
+        enabled: false,
+    },
+}
diff --git a/services/tests/servicestests/test-apps/JobTestApp/Android.mk b/services/tests/servicestests/test-apps/JobTestApp/Android.mk
deleted file mode 100644
index 7893c91..0000000
--- a/services/tests/servicestests/test-apps/JobTestApp/Android.mk
+++ /dev/null
@@ -1,30 +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.
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-LOCAL_SDK_VERSION := current
-
-LOCAL_COMPATIBILITY_SUITE := device-tests
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PACKAGE_NAME := JobTestApp
-LOCAL_DEX_PREOPT := false
-LOCAL_PROGUARD_ENABLED := disabled
-
-include $(BUILD_PACKAGE)
\ No newline at end of file
diff --git a/services/tests/servicestests/test-apps/SuspendTestApp/Android.bp b/services/tests/servicestests/test-apps/SuspendTestApp/Android.bp
new file mode 100644
index 0000000..7257275
--- /dev/null
+++ b/services/tests/servicestests/test-apps/SuspendTestApp/Android.bp
@@ -0,0 +1,39 @@
+// 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.
+
+android_test_helper_app {
+    name: "SuspendTestApp",
+
+    test_suites: ["device-tests"],
+
+    static_libs: [
+        "androidx.test.runner",
+        "ub-uiautomator",
+    ],
+
+    srcs: [
+        "**/*.java",
+        ":servicestests-SuspendTestApp-files",
+    ],
+
+    dex_preopt: {
+        enabled: false,
+    },
+    optimize: {
+        enabled: false,
+    },
+
+    platform_apis: true,
+
+}
diff --git a/services/tests/servicestests/test-apps/SuspendTestApp/Android.mk b/services/tests/servicestests/test-apps/SuspendTestApp/Android.mk
deleted file mode 100644
index ab222b9..0000000
--- a/services/tests/servicestests/test-apps/SuspendTestApp/Android.mk
+++ /dev/null
@@ -1,34 +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.
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_COMPATIBILITY_SUITE := device-tests
-
-LOCAL_STATIC_JAVA_LIBRARIES := androidx.test.runner ub-uiautomator
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-LOCAL_SRC_FILES += ../../src/com/android/server/pm/SuspendPackagesTest.java
-
-LOCAL_PACKAGE_NAME := SuspendTestApp
-LOCAL_DEX_PREOPT := false
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-include $(BUILD_PACKAGE)
\ No newline at end of file
diff --git a/services/tests/shortcutmanagerutils/Android.bp b/services/tests/shortcutmanagerutils/Android.bp
new file mode 100644
index 0000000..c2cb6881
--- /dev/null
+++ b/services/tests/shortcutmanagerutils/Android.bp
@@ -0,0 +1,26 @@
+// 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.
+
+java_library {
+    name: "ShortcutManagerTestUtils",
+
+    srcs: ["src/**/*.java"],
+
+    libs: [
+        "mockito-target",
+        "android.test.runner.stubs",
+    ],
+
+    sdk_version: "test_current",
+}
diff --git a/services/tests/shortcutmanagerutils/Android.mk b/services/tests/shortcutmanagerutils/Android.mk
deleted file mode 100644
index 019bcbd3..0000000
--- a/services/tests/shortcutmanagerutils/Android.mk
+++ /dev/null
@@ -1,32 +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)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
-    $(call all-java-files-under, src)
-
-LOCAL_JAVA_LIBRARIES := \
-    mockito-target \
-    android.test.runner.stubs
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE := ShortcutManagerTestUtils
-
-LOCAL_SDK_VERSION := test_current
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/services/tests/uiservicestests/Android.bp b/services/tests/uiservicestests/Android.bp
new file mode 100644
index 0000000..ca8cc0d
--- /dev/null
+++ b/services/tests/uiservicestests/Android.bp
@@ -0,0 +1,58 @@
+//########################################################################
+// Build FrameworksUiServicesTests package
+//########################################################################
+
+android_test {
+    name: "FrameworksUiServicesTests",
+
+    // Include test java files
+    srcs: [
+        "src/**/*.java",
+    ],
+
+    static_libs: [
+        "services.accessibility",
+        "services.core",
+        "services.devicepolicy",
+        "services.net",
+        "services.usage",
+        "guava",
+        "android-support-test",
+        "mockito-target-inline-minus-junit4",
+        "platform-test-annotations",
+        "testables",
+    ],
+
+    libs: [
+        "android.test.runner",
+        "android.test.base",
+    ],
+
+    dxflags: ["--multi-dex"],
+
+    platform_apis: true,
+    test_suites: ["device-tests"],
+
+    certificate: "platform",
+
+    compile_multilib: "both",
+
+    // These are not normally accessible from apps so they must be explicitly included.
+    jni_libs: [
+        "libdexmakerjvmtiagent",
+        "libmultiplejvmtiagentsinterferenceagent",
+        "libbacktrace",
+        "libbase",
+        "libbinder",
+        "libbinderthreadstate",
+        "libc++",
+        "libcutils",
+        "liblog",
+        "liblzma",
+        "libnativehelper",
+        "libnetdaidl",
+        "libui",
+        "libunwindstack",
+        "libutils",
+    ],
+}
diff --git a/services/tests/uiservicestests/Android.mk b/services/tests/uiservicestests/Android.mk
deleted file mode 100644
index f3f4355..0000000
--- a/services/tests/uiservicestests/Android.mk
+++ /dev/null
@@ -1,61 +0,0 @@
-#########################################################################
-# Build FrameworksUiServicesTests package
-#########################################################################
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-
-# Include test java files and source from notifications package.
-LOCAL_SRC_FILES := $(call all-java-files-under, src) \
-	$(call all-java-files-under, ../../core/java/com/android/server/notification) \
-	$(call all-java-files-under, ../../core/java/com/android/server/slice) \
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-    services.accessibility \
-    services.core \
-    services.devicepolicy \
-    services.net \
-    services.usage \
-    guava \
-    android-support-test \
-    mockito-target-inline-minus-junit4 \
-    platform-test-annotations \
-    testables
-
-LOCAL_JAVA_LIBRARIES := android.test.runner android.test.base
-
-LOCAL_JACK_FLAGS := --multi-dex native
-LOCAL_DX_FLAGS := --multi-dex
-
-LOCAL_PACKAGE_NAME := FrameworksUiServicesTests
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_COMPATIBILITY_SUITE := device-tests
-
-LOCAL_CERTIFICATE := platform
-
-LOCAL_MULTILIB := both
-
-# These are not normally accessible from apps so they must be explicitly included.
-LOCAL_JNI_SHARED_LIBRARIES := \
-    libdexmakerjvmtiagent \
-    libmultiplejvmtiagentsinterferenceagent \
-    libbacktrace \
-    libbase \
-    libbinder \
-    libbinderthreadstate \
-    libc++ \
-    libcutils \
-    liblog \
-    liblzma \
-    libnativehelper \
-    libnetdaidl \
-    libui \
-    libunwindstack \
-    libutils
-
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-include $(BUILD_PACKAGE)
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java b/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
index 9da204f..41d5a1c 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
@@ -456,6 +456,31 @@
     }
 
     @Test
+    public void testNoBeepForImportanceDefaultInAutomotive() throws Exception {
+        mService.setIsAutomotive(true);
+
+        NotificationRecord r = getBeepyNotification();
+        r.setSystemImportance(NotificationManager.IMPORTANCE_DEFAULT);
+
+        mService.buzzBeepBlinkLocked(r);
+
+        verifyNeverBeep();
+        assertFalse(r.isInterruptive());
+    }
+
+    @Test
+    public void testBeepForImportanceHighInAutomotive() throws Exception {
+        mService.setIsAutomotive(true);
+
+        NotificationRecord r = getBeepyNotification();
+
+        mService.buzzBeepBlinkLocked(r);
+
+        verifyBeepLooped();
+        assertTrue(r.isInterruptive());
+    }
+
+    @Test
     public void testNoInterruptionForMin() throws Exception {
         NotificationRecord r = getBeepyNotification();
         r.setSystemImportance(NotificationManager.IMPORTANCE_MIN);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index 3266b8b..d950360 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -38,10 +38,8 @@
 import static android.content.pm.PackageManager.PERMISSION_DENIED;
 import static android.os.Build.VERSION_CODES.O_MR1;
 import static android.os.Build.VERSION_CODES.P;
-import static android.service.notification.NotificationListenerService.Ranking
-        .USER_SENTIMENT_NEGATIVE;
-import static android.service.notification.NotificationListenerService.Ranking
-        .USER_SENTIMENT_NEUTRAL;
+import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE;
+import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEUTRAL;
 
 import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertFalse;
@@ -68,16 +66,15 @@
 
 import android.app.ActivityManager;
 import android.app.AppOpsManager;
-import android.app.Application;
 import android.app.IActivityManager;
 import android.app.INotificationManager;
+import android.app.ITransientNotification;
+import android.app.IUriGrantsManager;
 import android.app.Notification;
 import android.app.Notification.MessagingStyle.Message;
 import android.app.NotificationChannel;
 import android.app.NotificationChannelGroup;
 import android.app.NotificationManager;
-import android.app.ITransientNotification;
-import android.app.IUriGrantsManager;
 import android.app.admin.DevicePolicyManagerInternal;
 import android.app.usage.UsageStatsManagerInternal;
 import android.companion.ICompanionDeviceManager;
@@ -100,7 +97,6 @@
 import android.os.Process;
 import android.os.RemoteException;
 import android.os.UserHandle;
-import android.os.UserManager;
 import android.provider.MediaStore;
 import android.provider.Settings.Secure;
 import android.service.notification.Adjustment;
@@ -116,7 +112,6 @@
 import android.text.Html;
 import android.util.ArrayMap;
 import android.util.AtomicFile;
-import android.util.Log;
 
 import com.android.internal.R;
 import com.android.internal.statusbar.NotificationVisibility;
@@ -288,6 +283,7 @@
         when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_NORMAL);
         when(mPackageManagerClient.hasSystemFeature(FEATURE_WATCH)).thenReturn(false);
         when(mUgmInternal.newUriPermissionOwner(anyString())).thenReturn(mPermOwner);
+        when(mPackageManager.getPackagesForUid(mUid)).thenReturn(new String[]{PKG});
 
         // write to a test file; the system file isn't readable from tests
         mFile = new File(mContext.getCacheDir(), "test.xml");
@@ -1735,7 +1731,8 @@
     }
 
     @Test
-    public void testGetNotificationChannelFromPrivilegedListener_assistant_noAccess() throws Exception {
+    public void testGetNotificationChannelFromPrivilegedListener_assistant_noAccess()
+            throws Exception {
         mService.setPreferencesHelper(mPreferencesHelper);
         when(mCompanionMgr.getAssociations(PKG, mUid)).thenReturn(new ArrayList<>());
         when(mAssistants.isServiceTokenValidLocked(any())).thenReturn(false);
@@ -2509,6 +2506,7 @@
 
         mService.mNotificationDelegate.onNotificationDirectReplied(r.getKey());
         assertTrue(mService.getNotificationRecord(r.getKey()).getStats().hasDirectReplied());
+        verify(mAssistants).notifyAssistantNotificationDirectReplyLocked(eq(r.sbn));
     }
 
     @Test
@@ -2517,8 +2515,11 @@
         mService.addNotification(r);
 
         mService.mNotificationDelegate.onNotificationExpansionChanged(r.getKey(), true, true);
+        verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.sbn), eq(true), eq((true)));
         assertTrue(mService.getNotificationRecord(r.getKey()).getStats().hasExpanded());
+
         mService.mNotificationDelegate.onNotificationExpansionChanged(r.getKey(), true, false);
+        verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.sbn), eq(true), eq((false)));
         assertTrue(mService.getNotificationRecord(r.getKey()).getStats().hasExpanded());
     }
 
@@ -2529,8 +2530,12 @@
 
         mService.mNotificationDelegate.onNotificationExpansionChanged(r.getKey(), false, true);
         assertFalse(mService.getNotificationRecord(r.getKey()).getStats().hasExpanded());
+        verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.sbn), eq(false), eq((true)));
+
         mService.mNotificationDelegate.onNotificationExpansionChanged(r.getKey(), false, false);
         assertFalse(mService.getNotificationRecord(r.getKey()).getStats().hasExpanded());
+        verify(mAssistants).notifyAssistantExpansionChangedLocked(
+                eq(r.sbn), eq(false), eq((false)));
     }
 
     @Test
@@ -3459,11 +3464,12 @@
         ApplicationInfo info = new ApplicationInfo();
         info.privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT;
         when(mPackageManager.getApplicationInfo(anyString(), anyInt(), eq(0))).thenReturn(info);
+        when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(new String[]{"any"});
 
-        assertTrue(mService.isCallerInstantApp("any", 45770, 0));
+        assertTrue(mService.isCallerInstantApp(45770, 0));
 
         info.privateFlags = 0;
-        assertFalse(mService.isCallerInstantApp("any", 575370, 0));
+        assertFalse(mService.isCallerInstantApp(575370, 0));
     }
 
     @Test
@@ -3472,8 +3478,9 @@
         info.privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT;
         when(mPackageManager.getApplicationInfo(anyString(), anyInt(), eq(10))).thenReturn(info);
         when(mPackageManager.getApplicationInfo(anyString(), anyInt(), eq(0))).thenReturn(null);
+        when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(new String[]{"any"});
 
-        assertTrue(mService.isCallerInstantApp("any", 68638450, 10));
+        assertTrue(mService.isCallerInstantApp(68638450, 10));
     }
 
     @Test
@@ -3689,4 +3696,38 @@
                 new TestableToastCallback(), 2000, 0);
         assertEquals(1, mService.mToastQueue.size());
     }
+
+    @Test
+    public void testOnNotificationSmartReplySent() {
+        final int replyIndex = 2;
+        final String reply = "Hello";
+        final boolean generatedByAssistant = true;
+
+        NotificationRecord r = generateNotificationRecord(mTestNotificationChannel);
+        mService.addNotification(r);
+
+        mService.mNotificationDelegate.onNotificationSmartReplySent(
+                r.getKey(), replyIndex, reply, generatedByAssistant);
+        verify(mAssistants).notifyAssistantSuggestedReplySent(
+                eq(r.sbn), eq(reply), eq(generatedByAssistant));
+    }
+
+    @Test
+    public void testOnNotificationActionClick() {
+        final int actionIndex = 2;
+        final Notification.Action action =
+                new Notification.Action.Builder(null, "text", null).build();
+        final boolean generatedByAssistant = false;
+
+        NotificationRecord r = generateNotificationRecord(mTestNotificationChannel);
+        mService.addNotification(r);
+
+        NotificationVisibility notificationVisibility =
+                NotificationVisibility.obtain(r.getKey(), 1, 2, true);
+        mService.mNotificationDelegate.onNotificationActionClick(
+                10, 10, r.getKey(), actionIndex, action, notificationVisibility,
+                generatedByAssistant);
+        verify(mAssistants).notifyAssistantActionClicked(
+                eq(r.sbn), eq(actionIndex), eq(action), eq(generatedByAssistant));
+    }
 }
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
index 1a218b2..b027935 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
@@ -1090,6 +1090,24 @@
     }
 
     @Test
+    public void testUpdateChannelsBypassingDnd_onUserSwitch_onUserUnlocked() throws Exception {
+        int user = USER.getIdentifier();
+        NotificationChannelGroup ncg = new NotificationChannelGroup("group1", "name1");
+        NotificationChannel channel1 = new NotificationChannel("id1", "name1",
+                NotificationManager.IMPORTANCE_MAX);
+        channel1.setBypassDnd(true);
+        channel1.setGroup(ncg.getId());
+
+        // channel is associated with a group, then group is deleted
+        mHelper.createNotificationChannelGroup(PKG_N_MR1, user, ncg,  /* fromTargetApp */ true);
+        mHelper.createNotificationChannel(PKG_N_MR1, user, channel1, true, /*has DND access*/ true);
+        mHelper.deleteNotificationChannelGroup(PKG_N_MR1, user, ncg.getId());
+
+        mHelper.onUserSwitched(user);
+        mHelper.onUserUnlocked(user);
+    }
+
+    @Test
     public void testGetChannelsBypassingDndCount_noChannelsBypassing() throws Exception {
         assertEquals(0, mHelper.getNotificationChannelsBypassingDnd(PKG_N_MR1,
                 USER.getIdentifier()).getList().size());
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
index 38d8e39..6c7ede3 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
@@ -41,6 +41,7 @@
 
 import android.app.AppGlobals;
 import android.app.AppOpsManager;
+import android.app.AutomaticZenRule;
 import android.app.NotificationManager;
 import android.app.NotificationManager.Policy;
 import android.content.ComponentName;
@@ -1097,6 +1098,25 @@
         assertFalse(Objects.equals(defaultRuleName, ruleAfterUpdating.name)); // update name
     }
 
+    @Test
+    public void testAddAutomaticZenRule() {
+        AutomaticZenRule zenRule = new AutomaticZenRule("name",
+                new ComponentName("android", "ScheduleConditionProvider"),
+                ZenModeConfig.toScheduleConditionId(new ScheduleInfo()),
+                NotificationManager.INTERRUPTION_FILTER_PRIORITY, true);
+        String id = mZenModeHelperSpy.addAutomaticZenRule(zenRule, "test");
+
+        assertTrue(id != null);
+        ZenModeConfig.ZenRule ruleInConfig = mZenModeHelperSpy.mConfig.automaticRules.get(id);
+        assertTrue(ruleInConfig != null);
+        assertEquals(zenRule.isEnabled(), ruleInConfig.enabled);
+        assertEquals(zenRule.isModified(), ruleInConfig.modified);
+        assertEquals(zenRule.getConditionId(), ruleInConfig.conditionId);
+        assertEquals(NotificationManager.zenModeFromInterruptionFilter(
+                zenRule.getInterruptionFilter(), -1), ruleInConfig.zenMode);
+        assertEquals(zenRule.getName(), ruleInConfig.name);
+    }
+
     private void setupZenConfig() {
         mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
         mZenModeHelperSpy.mConfig.allowAlarms = false;
diff --git a/services/tests/wmtests/Android.bp b/services/tests/wmtests/Android.bp
new file mode 100644
index 0000000..cdba9a1
--- /dev/null
+++ b/services/tests/wmtests/Android.bp
@@ -0,0 +1,52 @@
+//########################################################################
+// Build WmTests package
+//########################################################################
+
+android_test {
+    name: "WmTests",
+
+    // We only want this apk build for tests.
+
+    // Include all test java files.
+    srcs: [
+        "src/**/*.java",
+    ],
+
+    static_libs: [
+        "frameworks-base-testutils",
+        "services.core",
+        "androidx.test.runner",
+        "androidx.test.rules",
+        "mockito-target-extended-minus-junit4",
+        "platform-test-annotations",
+        "servicestests-utils",
+        "truth-prebuilt",
+        "testables",
+        "ub-uiautomator",
+        "hamcrest-library",
+    ],
+
+    libs: [
+        "android.test.mock",
+        "android.test.base",
+        "android.test.runner",
+    ],
+
+    // These are not normally accessible from apps so they must be explicitly included.
+    jni_libs: [
+        "libdexmakerjvmtiagent",
+        "libstaticjvmtiagent",
+    ],
+
+    platform_apis: true,
+    test_suites: ["device-tests"],
+
+    certificate: "platform",
+
+    dxflags: ["--multi-dex"],
+
+    optimize: {
+        enabled: false,
+    },
+
+}
diff --git a/services/tests/wmtests/Android.mk b/services/tests/wmtests/Android.mk
deleted file mode 100644
index 9655b3d..0000000
--- a/services/tests/wmtests/Android.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#########################################################################
-# Build WmTests package
-#########################################################################
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-
-# Include all test java files.
-LOCAL_SRC_FILES := \
-    $(call all-java-files-under, src) \
-    $(call all-java-files-under, ../servicestests/utils) \
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-    frameworks-base-testutils \
-    services.core \
-    androidx.test.runner \
-    androidx.test.rules \
-    mockito-target-minus-junit4 \
-    platform-test-annotations \
-    truth-prebuilt \
-    testables \
-    ub-uiautomator \
-    hamcrest-library
-
-LOCAL_JAVA_LIBRARIES := \
-    android.test.mock \
-    android.test.base \
-    android.test.runner \
-
-LOCAL_PACKAGE_NAME := WmTests
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_COMPATIBILITY_SUITE := device-tests
-
-LOCAL_CERTIFICATE := platform
-
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_JACK_FLAGS := --multi-dex native
-LOCAL_DX_FLAGS := --multi-dex
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-include $(BUILD_PACKAGE)
-
-include $(call all-makefiles-under, $(LOCAL_PATH))
diff --git a/services/tests/wmtests/AndroidManifest.xml b/services/tests/wmtests/AndroidManifest.xml
index ff84803..3f3b996 100644
--- a/services/tests/wmtests/AndroidManifest.xml
+++ b/services/tests/wmtests/AndroidManifest.xml
@@ -34,8 +34,13 @@
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
     <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
     <uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.REORDER_TASKS" />
 
-    <application android:testOnly="true">
+    <application android:debuggable="true"
+                 android:testOnly="true">
+        <uses-library android:name="android.test.mock" android:required="true" />
+
         <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityA" />
         <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityB" />
         <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityRequestedOrientationChange" />
diff --git a/services/tests/wmtests/src/com/android/server/policy/FakeWindowState.java b/services/tests/wmtests/src/com/android/server/policy/FakeWindowState.java
deleted file mode 100644
index d4f2b06..0000000
--- a/services/tests/wmtests/src/com/android/server/policy/FakeWindowState.java
+++ /dev/null
@@ -1,260 +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.policy;
-
-import android.graphics.Rect;
-import android.util.proto.ProtoOutputStream;
-import android.view.Display;
-import android.view.IApplicationToken;
-import android.view.WindowManager;
-
-import com.android.server.wm.WindowFrames;
-
-public class FakeWindowState implements WindowManagerPolicy.WindowState {
-
-    private WindowFrames mWindowFrames = new WindowFrames();
-
-    public WindowManager.LayoutParams attrs;
-    public int displayId;
-    public boolean isVoiceInteraction;
-    public boolean inMultiWindowMode;
-    public boolean visible = true;
-    public int surfaceLayer = 1;
-    public boolean isDimming = false;
-
-    public boolean policyVisible = true;
-
-    @Override
-    public int getOwningUid() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public String getOwningPackage() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public void computeFrameLw() {
-    }
-
-    @Override
-    public Rect getFrameLw() {
-        return mWindowFrames.mParentFrame;
-    }
-
-    @Override
-    public Rect getDisplayFrameLw() {
-        return mWindowFrames.mDisplayFrame;
-    }
-
-    @Override
-    public Rect getOverscanFrameLw() {
-        return mWindowFrames.mOverscanFrame;
-    }
-
-    @Override
-    public Rect getContentFrameLw() {
-        return mWindowFrames.mContentFrame;
-    }
-
-    @Override
-    public Rect getVisibleFrameLw() {
-        return mWindowFrames.mVisibleFrame;
-    }
-
-    public Rect getStableFrame() {
-        return mWindowFrames.mStableFrame;
-    }
-
-    public Rect getDecorFrame() {
-        return mWindowFrames.mDecorFrame;
-    }
-
-    @Override
-    public boolean getGivenInsetsPendingLw() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public Rect getGivenContentInsetsLw() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public Rect getGivenVisibleInsetsLw() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public WindowManager.LayoutParams getAttrs() {
-        return attrs;
-    }
-
-    @Override
-    public boolean getNeedsMenuLw(WindowManagerPolicy.WindowState bottom) {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public int getSystemUiVisibility() {
-        return attrs.systemUiVisibility | attrs.subtreeSystemUiVisibility;
-    }
-
-    @Override
-    public int getSurfaceLayer() {
-        return surfaceLayer;
-    }
-
-    @Override
-    public int getBaseType() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public IApplicationToken getAppToken() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public boolean isVoiceInteraction() {
-        return isVoiceInteraction;
-    }
-
-    @Override
-    public boolean hasAppShownWindows() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public boolean isVisibleLw() {
-        return visible && policyVisible;
-    }
-
-    @Override
-    public boolean isDisplayedLw() {
-        return isVisibleLw();
-    }
-
-    @Override
-    public boolean isAnimatingLw() {
-        return false;
-    }
-
-    @Override
-    public boolean canAffectSystemUiFlags() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public boolean isGoneForLayoutLw() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public boolean isDrawnLw() {
-        return true;
-    }
-
-    @Override
-    public boolean hasDrawnLw() {
-        return true;
-    }
-
-    @Override
-    public boolean hideLw(boolean doAnimation) {
-        if (!policyVisible) {
-            return false;
-        }
-        policyVisible = false;
-        return true;
-    }
-
-    @Override
-    public boolean showLw(boolean doAnimation) {
-        if (policyVisible) {
-            return false;
-        }
-        policyVisible = true;
-        return true;
-    }
-
-    @Override
-    public boolean isAlive() {
-        return true;
-    }
-
-    @Override
-    public boolean isDefaultDisplay() {
-        return displayId == Display.DEFAULT_DISPLAY;
-    }
-
-    @Override
-    public boolean isDimming() {
-        return isDimming;
-    }
-
-    @Override
-    public int getWindowingMode() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public boolean isInMultiWindowMode() {
-        return inMultiWindowMode;
-    }
-
-    @Override
-    public int getRotationAnimationHint() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public boolean isInputMethodWindow() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public int getDisplayId() {
-        return displayId;
-    }
-
-    @Override
-    public boolean canAcquireSleepToken() {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public boolean canReceiveKeys() {
-        return false;
-    }
-
-    @Override
-    public void writeIdentifierToProto(ProtoOutputStream proto, long fieldId) {
-        throw new UnsupportedOperationException("not implemented");
-    }
-
-    @Override
-    public WindowFrames getWindowFrames() {
-        return mWindowFrames;
-    }
-
-    @Override
-    public boolean isInputMethodTarget() {
-        return false;
-    }
-}
diff --git a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerLayoutTest.java b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerLayoutTest.java
deleted file mode 100644
index e8f767a..0000000
--- a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerLayoutTest.java
+++ /dev/null
@@ -1,395 +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.policy;
-
-import static android.view.Surface.ROTATION_270;
-import static android.view.Surface.ROTATION_90;
-import static android.view.View.SYSTEM_UI_FLAG_FULLSCREEN;
-import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
-import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
-import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_SCREEN_DECOR;
-import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
-import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
-
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-
-import android.graphics.PixelFormat;
-import android.graphics.Rect;
-import android.platform.test.annotations.Presubmit;
-import android.view.DisplayCutout;
-import android.view.WindowManager;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Build/Install/Run:
- *  atest WmTests:PhoneWindowManagerLayoutTest
- */
-@SmallTest
-@Presubmit
-public class PhoneWindowManagerLayoutTest extends PhoneWindowManagerTestBase {
-
-    private FakeWindowState mAppWindow;
-
-    @Before
-    public void setUp() throws Exception {
-        mAppWindow = new FakeWindowState();
-        mAppWindow.attrs = new WindowManager.LayoutParams(MATCH_PARENT, MATCH_PARENT,
-                TYPE_APPLICATION,
-                FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR | FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
-                PixelFormat.TRANSLUCENT);
-
-        addStatusBar();
-        addNavigationBar();
-    }
-
-    @Test
-    public void layoutWindowLw_appDrawsBars() {
-        mAppWindow.attrs.flags |= FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), 0, 0);
-        assertInsetByTopBottom(mAppWindow.getStableFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDecorFrame(), 0, 0);
-        assertInsetBy(mAppWindow.getDisplayFrameLw(), 0, 0, 0, 0);
-    }
-
-    @Test
-    public void layoutWindowLw_appWontDrawBars() {
-        mAppWindow.attrs.flags &= ~FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), 0, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getStableFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDecorFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDisplayFrameLw(), 0, NAV_BAR_HEIGHT);
-    }
-
-    @Test
-    public void layoutWindowLw_appWontDrawBars_forceStatus() {
-        mAppWindow.attrs.flags &= ~FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
-        mAppWindow.attrs.privateFlags |= PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), 0, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getStableFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDecorFrame(), 0, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDisplayFrameLw(), 0, NAV_BAR_HEIGHT);
-    }
-
-    @Test
-    public void addingWindow_doesNotTamperWithSysuiFlags() {
-        mAppWindow.attrs.flags |= FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
-        mPolicy.addWindow(mAppWindow);
-
-        assertEquals(0, mAppWindow.attrs.systemUiVisibility);
-        assertEquals(0, mAppWindow.attrs.subtreeSystemUiVisibility);
-    }
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout() {
-        addDisplayCutout();
-
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), 0, 0);
-        assertInsetByTopBottom(mAppWindow.getStableFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDecorFrame(), 0, 0);
-        assertInsetByTopBottom(mAppWindow.getDisplayFrameLw(), 0, 0);
-    }
-
-    @Test
-    public void layoutWindowLw_withhDisplayCutout_never() {
-        addDisplayCutout();
-
-        mAppWindow.attrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), STATUS_BAR_HEIGHT, 0);
-        assertInsetByTopBottom(mAppWindow.getStableFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDecorFrame(), 0, 0);
-        assertInsetByTopBottom(mAppWindow.getDisplayFrameLw(), STATUS_BAR_HEIGHT, 0);
-    }
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout_layoutFullscreen() {
-        addDisplayCutout();
-
-        mAppWindow.attrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), 0, 0);
-        assertInsetByTopBottom(mAppWindow.getStableFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDecorFrame(), 0, 0);
-        assertInsetBy(mAppWindow.getDisplayFrameLw(), 0, 0, 0, 0);
-    }
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout_fullscreen() {
-        addDisplayCutout();
-
-        mAppWindow.attrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_FULLSCREEN;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), STATUS_BAR_HEIGHT, 0);
-        assertInsetByTopBottom(mAppWindow.getStableFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDecorFrame(), 0, 0);
-        assertInsetByTopBottom(mAppWindow.getDisplayFrameLw(), STATUS_BAR_HEIGHT, 0);
-    }
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout_fullscreenInCutout() {
-        addDisplayCutout();
-
-        mAppWindow.attrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_FULLSCREEN;
-        mAppWindow.attrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), 0, 0);
-        assertInsetByTopBottom(mAppWindow.getStableFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDecorFrame(), 0, 0);
-        assertInsetByTopBottom(mAppWindow.getDisplayFrameLw(), 0, 0);
-    }
-
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout_landscape() {
-        addDisplayCutout();
-        setRotation(ROTATION_90);
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetBy(mAppWindow.getFrameLw(), DISPLAY_CUTOUT_HEIGHT, 0, 0, 0);
-        assertInsetBy(mAppWindow.getStableFrame(), 0, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
-        assertInsetBy(mAppWindow.getContentFrameLw(),
-                DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
-        assertInsetBy(mAppWindow.getDecorFrame(), 0, 0, 0, 0);
-        assertInsetBy(mAppWindow.getDisplayFrameLw(), DISPLAY_CUTOUT_HEIGHT, 0, 0, 0);
-    }
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout_seascape() {
-        addDisplayCutout();
-        setRotation(ROTATION_270);
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetBy(mAppWindow.getFrameLw(), 0, 0, DISPLAY_CUTOUT_HEIGHT, 0);
-        assertInsetBy(mAppWindow.getStableFrame(), NAV_BAR_HEIGHT, STATUS_BAR_HEIGHT, 0, 0);
-        assertInsetBy(mAppWindow.getContentFrameLw(),
-                NAV_BAR_HEIGHT, STATUS_BAR_HEIGHT, DISPLAY_CUTOUT_HEIGHT, 0);
-        assertInsetBy(mAppWindow.getDecorFrame(), 0, 0, 0, 0);
-        assertInsetBy(mAppWindow.getDisplayFrameLw(), 0, 0, DISPLAY_CUTOUT_HEIGHT, 0);
-    }
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout_fullscreen_landscape() {
-        addDisplayCutout();
-        setRotation(ROTATION_90);
-
-        mAppWindow.attrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetBy(mAppWindow.getFrameLw(), DISPLAY_CUTOUT_HEIGHT, 0, 0, 0);
-        assertInsetBy(mAppWindow.getStableFrame(), 0, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
-        assertInsetBy(mAppWindow.getContentFrameLw(),
-                DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
-        assertInsetBy(mAppWindow.getDecorFrame(), 0, 0, 0, 0);
-    }
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout_floatingInScreen() {
-        addDisplayCutout();
-
-        mAppWindow.attrs.flags = FLAG_LAYOUT_IN_SCREEN;
-        mAppWindow.attrs.type = TYPE_APPLICATION_OVERLAY;
-        mAppWindow.attrs.width = DISPLAY_WIDTH;
-        mAppWindow.attrs.height = DISPLAY_HEIGHT;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetByTopBottom(mAppWindow.getFrameLw(), 0, NAV_BAR_HEIGHT);
-        assertInsetByTopBottom(mAppWindow.getDisplayFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
-    }
-
-    @Test
-    public void layoutWindowLw_withDisplayCutout_fullscreenInCutout_landscape() {
-        addDisplayCutout();
-        setRotation(ROTATION_90);
-
-        mAppWindow.attrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
-        mAppWindow.attrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
-        mPolicy.addWindow(mAppWindow);
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-        mPolicy.layoutWindowLw(mAppWindow, null, mFrames);
-
-        assertInsetBy(mAppWindow.getFrameLw(), 0, 0, 0, 0);
-        assertInsetBy(mAppWindow.getStableFrame(), 0, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
-        assertInsetBy(mAppWindow.getContentFrameLw(),
-                DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
-        assertInsetBy(mAppWindow.getDecorFrame(), 0, 0, 0, 0);
-    }
-
-    @Test
-    public void layoutHint_screenDecorWindow() {
-        addDisplayCutout();
-        mAppWindow.attrs.privateFlags |= PRIVATE_FLAG_IS_SCREEN_DECOR;
-
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-
-        final Rect frame = new Rect();
-        final Rect content = new Rect();
-        final Rect stable = new Rect();
-        final Rect outsets = new Rect();
-        final DisplayCutout.ParcelableWrapper cutout = new DisplayCutout.ParcelableWrapper();
-        mPolicy.getLayoutHintLw(mAppWindow.attrs, null /* taskBounds */, mFrames,
-                false /* floatingStack */, frame, content, stable, outsets, cutout);
-
-        assertThat(frame, equalTo(mFrames.mUnrestricted));
-        assertThat(content, equalTo(new Rect()));
-        assertThat(stable, equalTo(new Rect()));
-        assertThat(outsets, equalTo(new Rect()));
-        assertThat(cutout.get(), equalTo(DisplayCutout.NO_CUTOUT));
-    }
-
-    @Test
-    public void layoutHint_appWindow() {
-        // Initialize DisplayFrames
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-
-        final Rect outFrame = new Rect();
-        final Rect outContentInsets = new Rect();
-        final Rect outStableInsets = new Rect();
-        final Rect outOutsets = new Rect();
-        final DisplayCutout.ParcelableWrapper outDisplayCutout =
-                new DisplayCutout.ParcelableWrapper();
-
-        mPolicy.getLayoutHintLw(mAppWindow.attrs, null, mFrames, false /* floatingStack */,
-                outFrame, outContentInsets, outStableInsets, outOutsets, outDisplayCutout);
-
-        assertThat(outFrame, is(mFrames.mUnrestricted));
-        assertThat(outContentInsets, is(new Rect(0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT)));
-        assertThat(outStableInsets, is(new Rect(0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT)));
-        assertThat(outOutsets, is(new Rect()));
-        assertThat(outDisplayCutout, is(new DisplayCutout.ParcelableWrapper()));
-    }
-
-    @Test
-    public void layoutHint_appWindowInTask() {
-        // Initialize DisplayFrames
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-
-        final Rect taskBounds = new Rect(100, 100, 200, 200);
-
-        final Rect outFrame = new Rect();
-        final Rect outContentInsets = new Rect();
-        final Rect outStableInsets = new Rect();
-        final Rect outOutsets = new Rect();
-        final DisplayCutout.ParcelableWrapper outDisplayCutout =
-                new DisplayCutout.ParcelableWrapper();
-
-        mPolicy.getLayoutHintLw(mAppWindow.attrs, taskBounds, mFrames, false /* floatingStack */,
-                outFrame, outContentInsets, outStableInsets, outOutsets, outDisplayCutout);
-
-        assertThat(outFrame, is(taskBounds));
-        assertThat(outContentInsets, is(new Rect()));
-        assertThat(outStableInsets, is(new Rect()));
-        assertThat(outOutsets, is(new Rect()));
-        assertThat(outDisplayCutout, is(new DisplayCutout.ParcelableWrapper()));
-    }
-
-    @Test
-    public void layoutHint_appWindowInTask_outsideContentFrame() {
-        // Initialize DisplayFrames
-        mPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
-
-        // Task is in the nav bar area (usually does not happen, but this is similar enough to the
-        // possible overlap with the IME)
-        final Rect taskBounds = new Rect(100, mFrames.mContent.bottom + 1,
-                200, mFrames.mContent.bottom + 10);
-
-        final Rect outFrame = new Rect();
-        final Rect outContentInsets = new Rect();
-        final Rect outStableInsets = new Rect();
-        final Rect outOutsets = new Rect();
-        final DisplayCutout.ParcelableWrapper outDisplayCutout =
-                new DisplayCutout.ParcelableWrapper();
-
-        mPolicy.getLayoutHintLw(mAppWindow.attrs, taskBounds, mFrames, true /* floatingStack */,
-                outFrame, outContentInsets, outStableInsets, outOutsets, outDisplayCutout);
-
-        assertThat(outFrame, is(taskBounds));
-        assertThat(outContentInsets, is(new Rect()));
-        assertThat(outStableInsets, is(new Rect()));
-        assertThat(outOutsets, is(new Rect()));
-        assertThat(outDisplayCutout, is(new DisplayCutout.ParcelableWrapper()));
-    }
-}
diff --git a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTest.java b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTest.java
deleted file mode 100644
index 6c44d65..0000000
--- a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTest.java
+++ /dev/null
@@ -1,255 +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.server.policy;
-
-import static android.view.View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static android.view.WindowManager.DOCKED_BOTTOM;
-import static android.view.WindowManager.DOCKED_LEFT;
-import static android.view.WindowManager.DOCKED_RIGHT;
-import static android.view.WindowManager.DOCKED_TOP;
-import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
-import static android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND;
-import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
-import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
-import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
-import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
-import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
-
-import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_BOTTOM;
-import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_LEFT;
-import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_RIGHT;
-
-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.graphics.PixelFormat;
-import android.platform.test.annotations.Presubmit;
-import android.view.WindowManager;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Test;
-
-/**
- * Build/Install/Run:
- *  atest WmTests:PhoneWindowManagerTest
- */
-@SmallTest
-@Presubmit
-public class PhoneWindowManagerTest {
-
-    private static FakeWindowState createOpaqueFullscreen(boolean hasLightNavBar) {
-        final FakeWindowState state = new FakeWindowState();
-        state.attrs = new WindowManager.LayoutParams(MATCH_PARENT, MATCH_PARENT,
-                TYPE_BASE_APPLICATION,
-                FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR | FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,
-                PixelFormat.OPAQUE);
-        state.attrs.subtreeSystemUiVisibility =
-                hasLightNavBar ? SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR : 0;
-        return state;
-    }
-
-    private static FakeWindowState createDimmingDialogWindow(boolean canBeImTarget) {
-        final FakeWindowState state = new FakeWindowState();
-        state.attrs = new WindowManager.LayoutParams(WRAP_CONTENT, WRAP_CONTENT,
-                TYPE_APPLICATION,
-                FLAG_DIM_BEHIND  | (canBeImTarget ? 0 : FLAG_ALT_FOCUSABLE_IM),
-                PixelFormat.TRANSLUCENT);
-        state.isDimming = true;
-        return state;
-    }
-
-    private static FakeWindowState createInputMethodWindow(boolean visible, boolean drawNavBar,
-            boolean hasLightNavBar) {
-        final FakeWindowState state = new FakeWindowState();
-        state.attrs = new WindowManager.LayoutParams(MATCH_PARENT, MATCH_PARENT,
-                TYPE_INPUT_METHOD,
-                FLAG_NOT_FOCUSABLE | FLAG_LAYOUT_IN_SCREEN
-                        | (drawNavBar ? FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS : 0),
-                PixelFormat.TRANSPARENT);
-        state.attrs.subtreeSystemUiVisibility =
-                hasLightNavBar ? SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR : 0;
-        state.visible = visible;
-        state.policyVisible = visible;
-        return state;
-    }
-
-
-    @Test
-    public void testChooseNavigationColorWindowLw() {
-        final FakeWindowState opaque = createOpaqueFullscreen(false);
-
-        final FakeWindowState dimmingImTarget = createDimmingDialogWindow(true);
-        final FakeWindowState dimmingNonImTarget = createDimmingDialogWindow(false);
-
-        final FakeWindowState visibleIme = createInputMethodWindow(true, true, false);
-        final FakeWindowState invisibleIme = createInputMethodWindow(false, true, false);
-        final FakeWindowState imeNonDrawNavBar = createInputMethodWindow(true, false, false);
-
-        // If everything is null, return null
-        assertNull(null, PhoneWindowManager.chooseNavigationColorWindowLw(
-                null, null, null, NAV_BAR_BOTTOM));
-
-        assertEquals(opaque, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, opaque, null, NAV_BAR_BOTTOM));
-        assertEquals(dimmingImTarget, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, dimmingImTarget, null, NAV_BAR_BOTTOM));
-        assertEquals(dimmingNonImTarget, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, dimmingNonImTarget, null, NAV_BAR_BOTTOM));
-
-        assertEquals(visibleIme, PhoneWindowManager.chooseNavigationColorWindowLw(
-                null, null, visibleIme, NAV_BAR_BOTTOM));
-        assertEquals(visibleIme, PhoneWindowManager.chooseNavigationColorWindowLw(
-                null, dimmingImTarget, visibleIme, NAV_BAR_BOTTOM));
-        assertEquals(dimmingNonImTarget, PhoneWindowManager.chooseNavigationColorWindowLw(
-                null, dimmingNonImTarget, visibleIme, NAV_BAR_BOTTOM));
-        assertEquals(visibleIme, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, opaque, visibleIme, NAV_BAR_BOTTOM));
-        assertEquals(visibleIme, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, dimmingImTarget, visibleIme, NAV_BAR_BOTTOM));
-        assertEquals(dimmingNonImTarget, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, dimmingNonImTarget, visibleIme, NAV_BAR_BOTTOM));
-
-        assertEquals(opaque, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, opaque, invisibleIme, NAV_BAR_BOTTOM));
-        assertEquals(opaque, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, opaque, invisibleIme, NAV_BAR_BOTTOM));
-        assertEquals(opaque, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, opaque, visibleIme, NAV_BAR_RIGHT));
-
-        // Only IME windows that have FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS should be navigation color
-        // window.
-        assertEquals(opaque, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, opaque, imeNonDrawNavBar, NAV_BAR_BOTTOM));
-        assertEquals(dimmingImTarget, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, dimmingImTarget, imeNonDrawNavBar, NAV_BAR_BOTTOM));
-        assertEquals(dimmingNonImTarget, PhoneWindowManager.chooseNavigationColorWindowLw(
-                opaque, dimmingNonImTarget, imeNonDrawNavBar, NAV_BAR_BOTTOM));
-    }
-
-    @Test
-    public void testUpdateLightNavigationBarLw() {
-        final FakeWindowState opaqueDarkNavBar = createOpaqueFullscreen(false);
-        final FakeWindowState opaqueLightNavBar = createOpaqueFullscreen(true);
-
-        final FakeWindowState dimming = createDimmingDialogWindow(false);
-
-        final FakeWindowState imeDrawDarkNavBar = createInputMethodWindow(true, true, false);
-        final FakeWindowState imeDrawLightNavBar = createInputMethodWindow(true, true, true);
-
-        assertEquals(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
-                PhoneWindowManager.updateLightNavigationBarLw(
-                        SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, null, null,
-                        null, null));
-
-        // Opaque top fullscreen window overrides SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR flag.
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                0, opaqueDarkNavBar, opaqueDarkNavBar, null, opaqueDarkNavBar));
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueDarkNavBar, opaqueDarkNavBar, null,
-                opaqueDarkNavBar));
-        assertEquals(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
-                PhoneWindowManager.updateLightNavigationBarLw(0, opaqueLightNavBar,
-                        opaqueLightNavBar, null, opaqueLightNavBar));
-        assertEquals(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
-                PhoneWindowManager.updateLightNavigationBarLw(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
-                        opaqueLightNavBar, opaqueLightNavBar, null, opaqueLightNavBar));
-
-        // Dimming window clears SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR.
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                0, opaqueDarkNavBar, dimming, null, dimming));
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                0, opaqueLightNavBar, dimming, null, dimming));
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueDarkNavBar, dimming, null, dimming));
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueLightNavBar, dimming, null, dimming));
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueLightNavBar, dimming, imeDrawLightNavBar,
-                dimming));
-
-        // IME window clears SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, null, null, imeDrawDarkNavBar,
-                imeDrawDarkNavBar));
-
-        // Even if the top fullscreen has SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, IME window wins.
-        assertEquals(0, PhoneWindowManager.updateLightNavigationBarLw(
-                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueLightNavBar, opaqueLightNavBar,
-                imeDrawDarkNavBar, imeDrawDarkNavBar));
-
-        // IME window should be able to use SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR.
-        assertEquals(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
-                PhoneWindowManager.updateLightNavigationBarLw(0, opaqueDarkNavBar,
-                        opaqueDarkNavBar, imeDrawLightNavBar, imeDrawLightNavBar));
-    }
-
-    @Test
-    public void testIsDockSideAllowedDockTop() {
-        // Docked top is always allowed
-        assertTrue(PhoneWindowManager.isDockSideAllowed(DOCKED_TOP, DOCKED_LEFT, NAV_BAR_BOTTOM,
-                true /* navigationBarCanMove */));
-        assertTrue(PhoneWindowManager.isDockSideAllowed(DOCKED_TOP, DOCKED_LEFT, NAV_BAR_BOTTOM,
-                false /* navigationBarCanMove */));
-    }
-
-    @Test
-    public void testIsDockSideAllowedDockBottom() {
-        // Cannot dock bottom
-        assertFalse(PhoneWindowManager.isDockSideAllowed(DOCKED_BOTTOM, DOCKED_LEFT, NAV_BAR_BOTTOM,
-                true /* navigationBarCanMove */));
-    }
-
-    @Test
-    public void testIsDockSideAllowedNavigationBarMovable() {
-        assertFalse(PhoneWindowManager.isDockSideAllowed(DOCKED_LEFT, DOCKED_LEFT, NAV_BAR_BOTTOM,
-                true /* navigationBarCanMove */));
-        assertFalse(PhoneWindowManager.isDockSideAllowed(DOCKED_LEFT, DOCKED_LEFT, NAV_BAR_LEFT,
-                true /* navigationBarCanMove */));
-        assertTrue(PhoneWindowManager.isDockSideAllowed(DOCKED_LEFT, DOCKED_LEFT, NAV_BAR_RIGHT,
-                true /* navigationBarCanMove */));
-        assertFalse(PhoneWindowManager.isDockSideAllowed(DOCKED_RIGHT, DOCKED_LEFT, NAV_BAR_BOTTOM,
-                true /* navigationBarCanMove */));
-        assertFalse(PhoneWindowManager.isDockSideAllowed(DOCKED_RIGHT, DOCKED_LEFT, NAV_BAR_RIGHT,
-                true /* navigationBarCanMove */));
-        assertTrue(PhoneWindowManager.isDockSideAllowed(DOCKED_RIGHT, DOCKED_LEFT, NAV_BAR_LEFT,
-                true /* navigationBarCanMove */));
-    }
-
-    @Test
-    public void testIsDockSideAllowedNavigationBarNotMovable() {
-        // Navigation bar is not movable such as tablets
-        assertTrue(PhoneWindowManager.isDockSideAllowed(DOCKED_LEFT, DOCKED_LEFT, NAV_BAR_BOTTOM,
-                false /* navigationBarCanMove */));
-        assertTrue(PhoneWindowManager.isDockSideAllowed(DOCKED_LEFT, DOCKED_TOP, NAV_BAR_BOTTOM,
-                false /* navigationBarCanMove */));
-        assertFalse(PhoneWindowManager.isDockSideAllowed(DOCKED_LEFT, DOCKED_RIGHT, NAV_BAR_BOTTOM,
-                false /* navigationBarCanMove */));
-        assertFalse(PhoneWindowManager.isDockSideAllowed(DOCKED_RIGHT, DOCKED_LEFT, NAV_BAR_BOTTOM,
-                false /* navigationBarCanMove */));
-        assertFalse(PhoneWindowManager.isDockSideAllowed(DOCKED_RIGHT, DOCKED_TOP, NAV_BAR_BOTTOM,
-                false /* navigationBarCanMove */));
-        assertTrue(PhoneWindowManager.isDockSideAllowed(DOCKED_RIGHT, DOCKED_RIGHT, NAV_BAR_BOTTOM,
-                false /* navigationBarCanMove */));
-    }
-}
diff --git a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTestBase.java b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTestBase.java
deleted file mode 100644
index fc8fe23..0000000
--- a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTestBase.java
+++ /dev/null
@@ -1,277 +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.policy;
-
-import static android.view.DisplayCutout.BOUNDS_POSITION_BOTTOM;
-import static android.view.DisplayCutout.BOUNDS_POSITION_LEFT;
-import static android.view.DisplayCutout.BOUNDS_POSITION_RIGHT;
-import static android.view.DisplayCutout.BOUNDS_POSITION_TOP;
-import static android.view.Surface.ROTATION_0;
-import static android.view.Surface.ROTATION_180;
-import static android.view.Surface.ROTATION_270;
-import static android.view.Surface.ROTATION_90;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
-import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
-
-import static com.android.server.wm.utils.CoordinateTransforms.transformPhysicalToLogicalCoordinates;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
-
-import android.content.Context;
-import android.content.ContextWrapper;
-import android.content.pm.PackageManager;
-import android.content.res.Resources;
-import android.graphics.Matrix;
-import android.graphics.PixelFormat;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.os.IBinder;
-import android.os.UserHandle;
-import android.testing.TestableResources;
-import android.util.Pair;
-import android.view.Display;
-import android.view.DisplayCutout;
-import android.view.DisplayInfo;
-import android.view.Gravity;
-import android.view.View;
-import android.view.WindowManager;
-import android.view.WindowManagerGlobal;
-import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.IAccessibilityManager;
-
-import androidx.test.InstrumentationRegistry;
-
-import com.android.server.policy.keyguard.KeyguardServiceDelegate;
-import com.android.server.wm.DisplayFrames;
-import com.android.server.wm.WindowTestUtils.TestDisplayContent;
-import com.android.server.wm.utils.WmDisplayCutout;
-
-import org.junit.Before;
-
-class PhoneWindowManagerTestBase {
-    static final int DISPLAY_WIDTH = 500;
-    static final int DISPLAY_HEIGHT = 1000;
-
-    static final int STATUS_BAR_HEIGHT = 10;
-    static final int NAV_BAR_HEIGHT = 15;
-    static final int DISPLAY_CUTOUT_HEIGHT = 8;
-
-    TestablePhoneWindowManager mPolicy;
-    TestContextWrapper mContext;
-    DisplayFrames mFrames;
-
-    FakeWindowState mStatusBar;
-    FakeWindowState mNavigationBar;
-    private boolean mHasDisplayCutout;
-    private int mRotation = ROTATION_0;
-
-    @Before
-    public void setUpBase() {
-        mContext = new TestContextWrapper(InstrumentationRegistry.getTargetContext());
-        mContext.getResourceMocker().addOverride(
-                com.android.internal.R.dimen.status_bar_height_portrait, STATUS_BAR_HEIGHT);
-        mContext.getResourceMocker().addOverride(
-                com.android.internal.R.dimen.status_bar_height_landscape, STATUS_BAR_HEIGHT);
-        mContext.getResourceMocker().addOverride(
-                com.android.internal.R.dimen.navigation_bar_height, NAV_BAR_HEIGHT);
-        mContext.getResourceMocker().addOverride(
-                com.android.internal.R.dimen.navigation_bar_height_landscape, NAV_BAR_HEIGHT);
-        mContext.getResourceMocker().addOverride(
-                com.android.internal.R.dimen.navigation_bar_width, NAV_BAR_HEIGHT);
-
-        mPolicy = TestablePhoneWindowManager.create(mContext);
-
-        updateDisplayFrames();
-    }
-
-    public void setRotation(int rotation) {
-        mRotation = rotation;
-        updateDisplayFrames();
-    }
-
-    private void updateDisplayFrames() {
-        Pair<DisplayInfo, WmDisplayCutout> info = displayInfoAndCutoutForRotation(mRotation,
-                mHasDisplayCutout);
-        mFrames = new DisplayFrames(Display.DEFAULT_DISPLAY, info.first, info.second);
-    }
-
-    public void addStatusBar() {
-        mStatusBar = new FakeWindowState();
-        mStatusBar.attrs = new WindowManager.LayoutParams(MATCH_PARENT, STATUS_BAR_HEIGHT,
-                TYPE_STATUS_BAR, 0 /* flags */, PixelFormat.TRANSLUCENT);
-        mStatusBar.attrs.gravity = Gravity.TOP;
-
-        mPolicy.addWindow(mStatusBar);
-        mPolicy.mLastSystemUiFlags |= View.STATUS_BAR_TRANSPARENT;
-    }
-
-    public void addNavigationBar() {
-        mNavigationBar = new FakeWindowState();
-        mNavigationBar.attrs = new WindowManager.LayoutParams(MATCH_PARENT, NAV_BAR_HEIGHT,
-                TYPE_NAVIGATION_BAR, 0 /* flags */, PixelFormat.TRANSLUCENT);
-        mNavigationBar.attrs.gravity = Gravity.BOTTOM;
-
-        mPolicy.addWindow(mNavigationBar);
-        mPolicy.mLastSystemUiFlags |= View.NAVIGATION_BAR_TRANSPARENT;
-    }
-
-    public void addDisplayCutout() {
-        mHasDisplayCutout = true;
-        updateDisplayFrames();
-    }
-
-    /** Asserts that {@code actual} is inset by the given amounts from the full display rect. */
-    public void assertInsetBy(Rect actual, int expectedInsetLeft, int expectedInsetTop,
-            int expectedInsetRight, int expectedInsetBottom) {
-        assertEquals(new Rect(expectedInsetLeft, expectedInsetTop,
-                mFrames.mDisplayWidth - expectedInsetRight,
-                mFrames.mDisplayHeight - expectedInsetBottom), actual);
-    }
-
-    /**
-     * Asserts that {@code actual} is inset by the given amounts from the full display rect.
-     *
-     * Convenience wrapper for when only the top and bottom inset are non-zero.
-     */
-    public void assertInsetByTopBottom(Rect actual, int expectedInsetTop, int expectedInsetBottom) {
-        assertInsetBy(actual, 0, expectedInsetTop, 0, expectedInsetBottom);
-    }
-
-    public static DisplayInfo displayInfoForRotation(int rotation, boolean withDisplayCutout) {
-        return displayInfoAndCutoutForRotation(rotation, withDisplayCutout).first;
-    }
-    public static Pair<DisplayInfo, WmDisplayCutout> displayInfoAndCutoutForRotation(int rotation,
-            boolean withDisplayCutout) {
-        DisplayInfo info = new DisplayInfo();
-        WmDisplayCutout cutout = null;
-
-        final boolean flippedDimensions = rotation == ROTATION_90 || rotation == ROTATION_270;
-        info.logicalWidth = flippedDimensions ? DISPLAY_HEIGHT : DISPLAY_WIDTH;
-        info.logicalHeight = flippedDimensions ? DISPLAY_WIDTH : DISPLAY_HEIGHT;
-        info.rotation = rotation;
-        if (withDisplayCutout) {
-            cutout = WmDisplayCutout.computeSafeInsets(
-                    displayCutoutForRotation(rotation), info.logicalWidth,
-                    info.logicalHeight);
-            info.displayCutout = cutout.getDisplayCutout();
-        } else {
-            info.displayCutout = null;
-        }
-        return Pair.create(info, cutout);
-    }
-
-    private static DisplayCutout displayCutoutForRotation(int rotation) {
-        RectF rectF = new RectF(DISPLAY_WIDTH / 4, 0, DISPLAY_WIDTH * 3 / 4, DISPLAY_CUTOUT_HEIGHT);
-
-        Matrix m = new Matrix();
-        transformPhysicalToLogicalCoordinates(rotation, DISPLAY_WIDTH, DISPLAY_HEIGHT, m);
-        m.mapRect(rectF);
-
-        int pos = -1;
-        switch (rotation) {
-            case ROTATION_0:
-                pos = BOUNDS_POSITION_TOP;
-                break;
-            case ROTATION_90:
-                pos = BOUNDS_POSITION_LEFT;
-                break;
-            case ROTATION_180:
-                pos = BOUNDS_POSITION_BOTTOM;
-                break;
-            case ROTATION_270:
-                pos = BOUNDS_POSITION_RIGHT;
-                break;
-        }
-
-
-        return DisplayCutout.fromBoundingRect((int) rectF.left, (int) rectF.top,
-                (int) rectF.right, (int) rectF.bottom, pos);
-    }
-
-    static class TestContextWrapper extends ContextWrapper {
-        private final TestableResources mResourceMocker;
-
-        TestContextWrapper(Context targetContext) {
-            super(targetContext);
-            mResourceMocker = new TestableResources(targetContext.getResources());
-        }
-
-        @Override
-        public int checkPermission(String permission, int pid, int uid) {
-            return PackageManager.PERMISSION_GRANTED;
-        }
-
-        @Override
-        public int checkPermission(String permission, int pid, int uid, IBinder callerToken) {
-            return PackageManager.PERMISSION_GRANTED;
-        }
-
-        @Override
-        public Resources getResources() {
-            return mResourceMocker.getResources();
-        }
-
-        public TestableResources getResourceMocker() {
-            return mResourceMocker;
-        }
-    }
-
-    static class TestablePhoneWindowManager extends PhoneWindowManager {
-
-        TestablePhoneWindowManager() {
-        }
-
-        @Override
-        void initializeHdmiState() {
-            // Do nothing.
-        }
-
-        @Override
-        Context getSystemUiContext() {
-            return mContext;
-        }
-
-        void addWindow(WindowState state) {
-            if (state instanceof FakeWindowState) {
-                ((FakeWindowState) state).surfaceLayer =
-                        getWindowLayerFromTypeLw(state.getAttrs().type,
-                                true /* canAddInternalSystemWindow */);
-            }
-            adjustWindowParamsLw(state, state.getAttrs(), true /* hasStatusBarPermission */);
-            assertEquals(WindowManagerGlobal.ADD_OKAY, prepareAddWindowLw(state, state.getAttrs()));
-        }
-
-        public static TestablePhoneWindowManager create(Context context) {
-            TestablePhoneWindowManager[] policy = new TestablePhoneWindowManager[1];
-            InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
-                policy[0] = new TestablePhoneWindowManager();
-                policy[0].mContext = context;
-                policy[0].mKeyguardDelegate = mock(KeyguardServiceDelegate.class);
-                policy[0].mAccessibilityManager = new AccessibilityManager(context,
-                        mock(IAccessibilityManager.class), UserHandle.USER_CURRENT);
-                policy[0].mSystemGestures = mock(SystemGesturesPointerEventListener.class);
-
-                final TestDisplayContent displayContent = TestDisplayContent.create(context);
-                policy[0].setDefaultDisplay(displayContent);
-                policy[0].onConfigurationChanged(displayContent);
-            });
-            return policy[0];
-        }
-    }
-}
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
index 7a9c8dc..5bf3d2d 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
@@ -18,22 +18,24 @@
 
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.content.pm.ActivityInfo.FLAG_ALWAYS_FOCUSABLE;
 import static android.content.pm.ActivityInfo.FLAG_SHOW_WHEN_LOCKED;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
 
 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 static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
 
 import android.platform.test.annotations.Presubmit;
 
@@ -60,8 +62,9 @@
     @Test
     public void testLastFocusedStackIsUpdatedWhenMovingStack() {
         // Create a stack at bottom.
-        final ActivityDisplay display = mSupervisor.getDefaultDisplay();
-        final ActivityStack stack = new StackBuilder(mSupervisor).setOnTop(!ON_TOP).build();
+        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
+        final ActivityStack stack =
+                new StackBuilder(mRootActivityContainer).setOnTop(!ON_TOP).build();
         final ActivityStack prevFocusedStack = display.getFocusedStack();
 
         stack.moveToFront("moveStackToFront");
@@ -81,7 +84,7 @@
     @Test
     public void testFullscreenStackCanBeFocusedWhenFocusablePinnedStackExists() {
         // Create a pinned stack and move to front.
-        final ActivityStack pinnedStack = mSupervisor.getDefaultDisplay().createStack(
+        final ActivityStack pinnedStack = mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD, ON_TOP);
         final TaskRecord pinnedTask = new TaskBuilder(mService.mStackSupervisor)
                 .setStack(pinnedStack).build();
@@ -94,7 +97,7 @@
 
         // Create a fullscreen stack and move to front.
         final ActivityStack fullscreenStack = createFullscreenStackWithSimpleActivityAt(
-                mSupervisor.getDefaultDisplay());
+                mRootActivityContainer.getDefaultDisplay());
         fullscreenStack.moveToFront("moveFullscreenStackToFront");
 
         // The focused stack should be the fullscreen stack.
@@ -136,7 +139,7 @@
         final ActivityDisplay display = spy(createNewActivityDisplay());
         doReturn(false).when(display).shouldDestroyContentOnRemove();
         doReturn(true).when(display).supportsSystemDecorations();
-        mSupervisor.addChild(display, ActivityDisplay.POSITION_TOP);
+        mRootActivityContainer.addChild(display, ActivityDisplay.POSITION_TOP);
 
         // Put home stack on the display.
         final ActivityStack homeStack = display.createStack(
@@ -173,14 +176,14 @@
      */
     @Test
     public void testTopRunningActivity() {
-        final ActivityDisplay display = mSupervisor.getDefaultDisplay();
+        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
         final KeyguardController keyguard = mSupervisor.getKeyguardController();
-        final ActivityStack stack = new StackBuilder(mSupervisor).build();
+        final ActivityStack stack = new StackBuilder(mRootActivityContainer).build();
         final ActivityRecord activity = stack.getTopActivity();
 
         // Create empty stack on top.
         final ActivityStack emptyStack =
-                new StackBuilder(mSupervisor).setCreateActivity(false).build();
+                new StackBuilder(mRootActivityContainer).setCreateActivity(false).build();
 
         // Make sure the top running activity is not affected when keyguard is not locked.
         assertTopRunningActivity(activity, display);
@@ -217,4 +220,61 @@
         assertEquals(top, display.topRunningActivity());
         assertEquals(top, display.topRunningActivity(true /* considerKeyguardState */));
     }
+
+    /**
+     * This test enforces that alwaysOnTop stack is placed at proper position.
+     */
+    @Test
+    public void testAlwaysOnTopStackLocation() {
+        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
+        final ActivityStack alwaysOnTopStack = display.createStack(WINDOWING_MODE_FREEFORM,
+                ACTIVITY_TYPE_STANDARD, true /* onTop */);
+        final ActivityRecord activity = new ActivityBuilder(mService).setCreateTask(true)
+                .setStack(alwaysOnTopStack).build();
+        alwaysOnTopStack.setAlwaysOnTop(true);
+        display.positionChildAtTop(alwaysOnTopStack, false /* includingParents */);
+        assertTrue(alwaysOnTopStack.isAlwaysOnTop());
+        // Ensure always on top state is synced to the children of the stack.
+        assertTrue(alwaysOnTopStack.getTopActivity().isAlwaysOnTop());
+        assertEquals(alwaysOnTopStack, display.getTopStack());
+
+        final ActivityStack pinnedStack = display.createStack(
+                WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD, true /* onTop */);
+        assertEquals(pinnedStack, display.getPinnedStack());
+        assertEquals(pinnedStack, display.getTopStack());
+
+        final ActivityStack anotherAlwaysOnTopStack = display.createStack(
+                WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD, true /* onTop */);
+        anotherAlwaysOnTopStack.setAlwaysOnTop(true);
+        display.positionChildAtTop(anotherAlwaysOnTopStack, false /* includingParents */);
+        assertTrue(anotherAlwaysOnTopStack.isAlwaysOnTop());
+        int topPosition = display.getChildCount() - 1;
+        // Ensure the new alwaysOnTop stack is put below the pinned stack, but on top of the
+        // existing alwaysOnTop stack.
+        assertEquals(anotherAlwaysOnTopStack, display.getChildAt(topPosition - 1));
+
+        final ActivityStack nonAlwaysOnTopStack = display.createStack(
+                WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD, true /* onTop */);
+        assertEquals(display, nonAlwaysOnTopStack.getDisplay());
+        topPosition = display.getChildCount() - 1;
+        // Ensure the non-alwaysOnTop stack is put below the three alwaysOnTop stacks, but above the
+        // existing other non-alwaysOnTop stacks.
+        assertEquals(nonAlwaysOnTopStack, display.getChildAt(topPosition - 3));
+
+        anotherAlwaysOnTopStack.setAlwaysOnTop(false);
+        display.positionChildAtTop(anotherAlwaysOnTopStack, false /* includingParents */);
+        assertFalse(anotherAlwaysOnTopStack.isAlwaysOnTop());
+        // Ensure, when always on top is turned off for a stack, the stack is put just below all
+        // other always on top stacks.
+        assertEquals(anotherAlwaysOnTopStack, display.getChildAt(topPosition - 2));
+        anotherAlwaysOnTopStack.setAlwaysOnTop(true);
+
+        // Ensure always on top state changes properly when windowing mode changes.
+        anotherAlwaysOnTopStack.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
+        assertFalse(anotherAlwaysOnTopStack.isAlwaysOnTop());
+        assertEquals(anotherAlwaysOnTopStack, display.getChildAt(topPosition - 2));
+        anotherAlwaysOnTopStack.setWindowingMode(WINDOWING_MODE_FREEFORM);
+        assertTrue(anotherAlwaysOnTopStack.isAlwaysOnTop());
+        assertEquals(anotherAlwaysOnTopStack, display.getChildAt(topPosition - 1));
+    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java
index 215c51d..cac9cf6 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java
@@ -21,23 +21,33 @@
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyNoMoreInteractions;
+import static com.google.common.truth.Truth.assertWithMessage;
+
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.timeout;
 
 import android.content.Intent;
 import android.os.SystemClock;
 import android.platform.test.annotations.Presubmit;
 import android.util.SparseIntArray;
+import android.util.proto.ProtoOutputStream;
 
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
+import com.android.server.wm.ActivityMetricsLaunchObserver.ActivityRecordProto;
+
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentMatcher;
+
+import java.util.Arrays;
 
 /**
  * Tests for the {@link ActivityMetricsLaunchObserver} class.
@@ -51,6 +61,7 @@
 public class ActivityMetricsLaunchObserverTests extends ActivityTestsBase {
     private ActivityMetricsLogger mActivityMetricsLogger;
     private ActivityMetricsLaunchObserver mLaunchObserver;
+    private ActivityMetricsLaunchObserverRegistry mLaunchObserverRegistry;
 
     private TestActivityStack mStack;
     private TaskRecord mTask;
@@ -61,33 +72,62 @@
     public void setUpAMLO() throws Exception {
         setupActivityTaskManagerService();
 
-        mActivityMetricsLogger =
-                new ActivityMetricsLogger(mSupervisor, mService.mContext, mService.mH.getLooper());
-
         mLaunchObserver = mock(ActivityMetricsLaunchObserver.class);
 
-        // TODO: Use ActivityMetricsLaunchObserverRegistry .
-        java.lang.reflect.Field f =
-                mActivityMetricsLogger.getClass().getDeclaredField("mLaunchObserver");
-        f.setAccessible(true);
-        f.set(mActivityMetricsLogger, mLaunchObserver);
+        // ActivityStackSupervisor always creates its own instance of ActivityMetricsLogger.
+        mActivityMetricsLogger = mSupervisor.getActivityMetricsLogger();
+
+        mLaunchObserverRegistry = mActivityMetricsLogger.getLaunchObserverRegistry();
+        mLaunchObserverRegistry.registerLaunchObserver(mLaunchObserver);
 
         // Sometimes we need an ActivityRecord for ActivityMetricsLogger to do anything useful.
         // This seems to be the easiest way to create an ActivityRecord.
-        mStack = mSupervisor.getDefaultDisplay().createStack(
+        mStack = mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
         mTask = new TaskBuilder(mSupervisor).setStack(mStack).build();
         mActivityRecord = new ActivityBuilder(mService).setTask(mTask).build();
         mActivityRecordTrampoline = new ActivityBuilder(mService).setTask(mTask).build();
     }
 
+    @After
+    public void tearDownAMLO() throws Exception {
+        if (mLaunchObserverRegistry != null) {  // Don't NPE if setUp failed.
+            mLaunchObserverRegistry.unregisterLaunchObserver(mLaunchObserver);
+        }
+    }
+
+    static class ActivityRecordMatcher implements ArgumentMatcher</*@ActivityRecordProto*/ byte[]> {
+        private final @ActivityRecordProto byte[] mExpected;
+
+        public ActivityRecordMatcher(ActivityRecord activityRecord) {
+            mExpected = activityRecordToProto(activityRecord);
+        }
+
+        public boolean matches(@ActivityRecordProto byte[] actual) {
+            return Arrays.equals(mExpected, actual);
+        }
+    }
+
+    static @ActivityRecordProto byte[] activityRecordToProto(ActivityRecord record) {
+        return ActivityMetricsLogger.convertActivityRecordToProto(record);
+    }
+
+    static @ActivityRecordProto byte[] eqProto(ActivityRecord record) {
+        return argThat(new ActivityRecordMatcher(record));
+    }
+
+    static <T> T verifyAsync(T mock) {
+        // AMLO callbacks happen on a separate thread than AML calls, so we need to use a timeout.
+        return verify(mock, timeout(100));
+    }
+
     @Test
     public void testOnIntentStarted() throws Exception {
         Intent intent = new Intent("action 1");
 
         mActivityMetricsLogger.notifyActivityLaunching(intent);
 
-        verify(mLaunchObserver).onIntentStarted(eq(intent));
+        verifyAsync(mLaunchObserver).onIntentStarted(eq(intent));
         verifyNoMoreInteractions(mLaunchObserver);
     }
 
@@ -102,7 +142,7 @@
         mActivityMetricsLogger.notifyActivityLaunched(START_TASK_TO_FRONT,
                 activityRecord);
 
-        verify(mLaunchObserver).onIntentFailed();
+        verifyAsync(mLaunchObserver).onIntentFailed();
         verifyNoMoreInteractions(mLaunchObserver);
     }
 
@@ -113,7 +153,7 @@
         mActivityMetricsLogger.notifyActivityLaunched(START_SUCCESS,
                 mActivityRecord);
 
-        verify(mLaunchObserver).onActivityLaunched(eq(mActivityRecord), anyInt());
+        verifyAsync(mLaunchObserver).onActivityLaunched(eqProto(mActivityRecord), anyInt());
         verifyNoMoreInteractions(mLaunchObserver);
     }
 
@@ -127,7 +167,7 @@
        mActivityMetricsLogger.notifyWindowsDrawn(mActivityRecord.getWindowingMode(),
                SystemClock.uptimeMillis());
 
-       verify(mLaunchObserver).onActivityLaunchFinished(eq(mActivityRecord));
+       verifyAsync(mLaunchObserver).onActivityLaunchFinished(eqProto(mActivityRecord));
        verifyNoMoreInteractions(mLaunchObserver);
     }
 
@@ -135,12 +175,12 @@
     public void testOnActivityLaunchCancelled() throws Exception {
        testOnActivityLaunched();
 
-       mActivityRecord.nowVisible = true;
+       mActivityRecord.mDrawn = true;
 
        // Cannot time already-visible activities.
        mActivityMetricsLogger.notifyActivityLaunched(START_TASK_TO_FRONT, mActivityRecord);
 
-       verify(mLaunchObserver).onActivityLaunchCancelled(eq(mActivityRecord));
+       verifyAsync(mLaunchObserver).onActivityLaunchCancelled(eqProto(mActivityRecord));
        verifyNoMoreInteractions(mLaunchObserver);
     }
 
@@ -151,7 +191,7 @@
         mActivityMetricsLogger.notifyActivityLaunched(START_SUCCESS,
                 mActivityRecord);
 
-        verify(mLaunchObserver).onActivityLaunched(eq(mActivityRecord), anyInt());
+        verifyAsync(mLaunchObserver).onActivityLaunched(eqProto(mActivityRecord), anyInt());
 
         // A second, distinct, activity launch is coalesced into the the current app launch sequence
         mActivityMetricsLogger.notifyActivityLaunched(START_SUCCESS,
@@ -170,7 +210,7 @@
        mActivityMetricsLogger.notifyWindowsDrawn(mActivityRecordTrampoline.getWindowingMode(),
                SystemClock.uptimeMillis());
 
-       verify(mLaunchObserver).onActivityLaunchFinished(eq(mActivityRecordTrampoline));
+       verifyAsync(mLaunchObserver).onActivityLaunchFinished(eqProto(mActivityRecordTrampoline));
        verifyNoMoreInteractions(mLaunchObserver);
     }
 
@@ -178,13 +218,26 @@
     public void testOnActivityLaunchCancelledTrampoline() throws Exception {
        testOnActivityLaunchedTrampoline();
 
-       mActivityRecordTrampoline.nowVisible = true;
+       mActivityRecordTrampoline.mDrawn = true;
 
        // Cannot time already-visible activities.
        mActivityMetricsLogger.notifyActivityLaunched(START_TASK_TO_FRONT,
                mActivityRecordTrampoline);
 
-       verify(mLaunchObserver).onActivityLaunchCancelled(eq(mActivityRecordTrampoline));
+       verifyAsync(mLaunchObserver).onActivityLaunchCancelled(eqProto(mActivityRecordTrampoline));
        verifyNoMoreInteractions(mLaunchObserver);
     }
+
+    @Test
+    public void testActivityRecordProtoIsNotTooBig() throws Exception {
+        // The ActivityRecordProto must not be too big, otherwise converting it at runtime
+        // will become prohibitively expensive.
+        assertWithMessage("mActivityRecord: %s", mActivityRecord).
+                that(activityRecordToProto(mActivityRecord).length).
+                isAtMost(ActivityMetricsLogger.LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE);
+
+        assertWithMessage("mActivityRecordTrampoline: %s", mActivityRecordTrampoline).
+                that(activityRecordToProto(mActivityRecordTrampoline).length).
+                isAtMost(ActivityMetricsLogger.LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE);
+    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
index b865772..b6f1817 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
@@ -18,23 +18,22 @@
 
 import static android.view.Display.DEFAULT_DISPLAY;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_BOTTOM;
+import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_LEFT;
+import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_RIGHT;
 import static com.android.server.wm.ActivityStack.ActivityState.INITIALIZING;
 import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
 import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
 import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_MOVING;
-import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_BOTTOM;
-import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_LEFT;
-import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_RIGHT;
-
-import static junit.framework.TestCase.assertNotNull;
 
 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.mockito.Mockito.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
 
 import android.app.ActivityOptions;
 import android.app.servertransaction.ClientTransaction;
@@ -65,7 +64,7 @@
     @Before
     public void setUp() throws Exception {
         setupActivityTaskManagerService();
-        mStack = new StackBuilder(mSupervisor).build();
+        mStack = new StackBuilder(mRootActivityContainer).build();
         mTask = mStack.getChildAt(0);
         mActivity = mTask.getTopActivity();
     }
@@ -86,7 +85,7 @@
     public void testStackCleanupOnTaskRemoval() {
         mStack.removeTask(mTask, null /*reason*/, REMOVE_TASK_MODE_MOVING);
         // Stack should be gone on task removal.
-        assertNull(mService.mStackSupervisor.getStack(mStack.mStackId));
+        assertNull(mService.mRootActivityContainer.getStack(mStack.mStackId));
     }
 
     @Test
@@ -116,7 +115,7 @@
         assertFalse(pauseFound.value);
 
         // Clear focused stack
-        final ActivityDisplay display = mActivity.mStackSupervisor.getDefaultDisplay();
+        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
         when(display.getFocusedStack()).thenReturn(null);
 
         // In the unfocused stack, the activity should move to paused.
@@ -163,7 +162,8 @@
     private void verifyPositionWithLimitedAspectRatio(int navBarPosition, Rect taskBounds,
             float aspectRatio, Rect expectedActivityBounds) {
         // Verify with nav bar on the right.
-        when(mService.mWindowManager.getNavBarPosition()).thenReturn(navBarPosition);
+        when(mService.mWindowManager.getNavBarPosition(mActivity.getDisplayId()))
+                .thenReturn(navBarPosition);
         mTask.getConfiguration().windowConfiguration.setAppBounds(taskBounds);
         mActivity.info.maxAspectRatio = aspectRatio;
         mActivity.ensureActivityConfiguration(
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStackSupervisorTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStackSupervisorTests.java
index 16dd92f..f7b5d26 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStackSupervisorTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStackSupervisorTests.java
@@ -18,19 +18,17 @@
 
 import static android.app.ActivityManager.START_DELIVERED_TO_TOP;
 import static android.app.ActivityManager.START_TASK_TO_FRONT;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY;
-import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
-import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
-import static android.content.pm.ActivityInfo.FLAG_ALWAYS_FOCUSABLE;
-import static android.content.pm.ActivityInfo.LAUNCH_MULTIPLE;
-import static android.view.Display.DEFAULT_DISPLAY;
 
-import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
-import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_DESTROYING;
-import static com.android.server.wm.ActivityStackSupervisor.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -44,21 +42,8 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.contains;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
 
-import android.app.ActivityOptions;
 import android.app.WaitResult;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.graphics.Rect;
-import android.os.Build;
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.filters.MediumTest;
@@ -66,8 +51,6 @@
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.ArrayList;
-
 /**
  * Tests for the {@link ActivityStackSupervisor} class.
  *
@@ -82,78 +65,11 @@
     @Before
     public void setUp() throws Exception {
         setupActivityTaskManagerService();
-        mFullscreenStack = mService.mStackSupervisor.getDefaultDisplay().createStack(
+        mFullscreenStack = mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
     }
 
     /**
-     * This test ensures that we do not try to restore a task based off an invalid task id. We
-     * should expect {@code null} to be returned in this case.
-     */
-    @Test
-    public void testRestoringInvalidTask() {
-        ((TestActivityDisplay) mSupervisor.getDefaultDisplay()).removeAllTasks();
-        TaskRecord task = mSupervisor.anyTaskForIdLocked(0 /*taskId*/,
-                MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE, null, false /* onTop */);
-        assertNull(task);
-    }
-
-    /**
-     * This test ensures that an existing task in the pinned stack is moved to the fullscreen
-     * activity stack when a new task is added.
-     */
-    @Test
-    public void testReplacingTaskInPinnedStack() {
-        final ActivityRecord firstActivity = new ActivityBuilder(mService).setCreateTask(true)
-                .setStack(mFullscreenStack).build();
-        final TaskRecord firstTask = firstActivity.getTask();
-
-        final ActivityRecord secondActivity = new ActivityBuilder(mService).setCreateTask(true)
-                .setStack(mFullscreenStack).build();
-        final TaskRecord secondTask = secondActivity.getTask();
-
-        mFullscreenStack.moveToFront("testReplacingTaskInPinnedStack");
-
-        // Ensure full screen stack has both tasks.
-        ensureStackPlacement(mFullscreenStack, firstTask, secondTask);
-
-        // Move first activity to pinned stack.
-        final Rect sourceBounds = new Rect();
-        mSupervisor.moveActivityToPinnedStackLocked(firstActivity, sourceBounds,
-                0f /*aspectRatio*/, "initialMove");
-
-        final ActivityDisplay display = mFullscreenStack.getDisplay();
-        ActivityStack pinnedStack = display.getPinnedStack();
-        // Ensure a task has moved over.
-        ensureStackPlacement(pinnedStack, firstTask);
-        ensureStackPlacement(mFullscreenStack, secondTask);
-
-        // Move second activity to pinned stack.
-        mSupervisor.moveActivityToPinnedStackLocked(secondActivity, sourceBounds,
-                0f /*aspectRatio*/, "secondMove");
-
-        // Need to get stacks again as a new instance might have been created.
-        pinnedStack = display.getPinnedStack();
-        mFullscreenStack = display.getStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
-        // Ensure stacks have swapped tasks.
-        ensureStackPlacement(pinnedStack, secondTask);
-        ensureStackPlacement(mFullscreenStack, firstTask);
-    }
-
-    private static void ensureStackPlacement(ActivityStack stack, TaskRecord... tasks) {
-        final ArrayList<TaskRecord> stackTasks = stack.getAllTasks();
-        assertEquals(stackTasks.size(), tasks != null ? tasks.length : 0);
-
-        if (tasks == null) {
-            return;
-        }
-
-        for (TaskRecord task : tasks) {
-            assertTrue(stackTasks.contains(task));
-        }
-    }
-
-    /**
      * Ensures that an activity is removed from the stopping activities list once it is resumed.
      */
     @Test
@@ -178,7 +94,7 @@
 
         // #notifyAll will be called on the ActivityManagerService. we must hold the object lock
         // when this happens.
-        synchronized (mSupervisor.mService.mGlobalLock) {
+        synchronized (mService.mGlobalLock) {
             final WaitResult taskToFrontWait = new WaitResult();
             mSupervisor.mWaitingActivityLaunched.add(taskToFrontWait);
             mSupervisor.reportWaitingActivityLaunchedIfNeeded(firstActivity, START_TASK_TO_FRONT);
@@ -194,337 +110,7 @@
 
             assertThat(mSupervisor.mWaitingActivityLaunched).isEmpty();
             assertEquals(deliverToTopWait.result, START_DELIVERED_TO_TOP);
-            assertEquals(deliverToTopWait.who, firstActivity.realActivity);
+            assertEquals(deliverToTopWait.who, firstActivity.mActivityComponent);
         }
     }
-
-    @Test
-    public void testApplySleepTokensLocked() {
-        final ActivityDisplay display = mSupervisor.getDefaultDisplay();
-        final KeyguardController keyguard = mSupervisor.getKeyguardController();
-        final ActivityStack stack = mock(ActivityStack.class);
-        display.addChild(stack, 0 /* position */);
-
-        // Make sure we wake and resume in the case the display is turning on and the keyguard is
-        // not showing.
-        verifySleepTokenBehavior(display, keyguard, stack, true /*displaySleeping*/,
-                false /* displayShouldSleep */, true /* isFocusedStack */,
-                false /* keyguardShowing */, true /* expectWakeFromSleep */,
-                true /* expectResumeTopActivity */);
-
-        // Make sure we wake and don't resume when the display is turning on and the keyguard is
-        // showing.
-        verifySleepTokenBehavior(display, keyguard, stack, true /*displaySleeping*/,
-                false /* displayShouldSleep */, true /* isFocusedStack */,
-                true /* keyguardShowing */, true /* expectWakeFromSleep */,
-                false /* expectResumeTopActivity */);
-
-        // Make sure we wake and don't resume when the display is turning on and the keyguard is
-        // not showing as unfocused.
-        verifySleepTokenBehavior(display, keyguard, stack, true /*displaySleeping*/,
-                false /* displayShouldSleep */, false /* isFocusedStack */,
-                false /* keyguardShowing */, true /* expectWakeFromSleep */,
-                false /* expectResumeTopActivity */);
-
-        // Should not do anything if the display state hasn't changed.
-        verifySleepTokenBehavior(display, keyguard, stack, false /*displaySleeping*/,
-                false /* displayShouldSleep */, true /* isFocusedStack */,
-                false /* keyguardShowing */, false /* expectWakeFromSleep */,
-                false /* expectResumeTopActivity */);
-    }
-
-    private void verifySleepTokenBehavior(ActivityDisplay display, KeyguardController keyguard,
-            ActivityStack stack, boolean displaySleeping, boolean displayShouldSleep,
-            boolean isFocusedStack, boolean keyguardShowing, boolean expectWakeFromSleep,
-            boolean expectResumeTopActivity) {
-        reset(stack);
-
-        doReturn(displayShouldSleep).when(display).shouldSleep();
-        doReturn(displaySleeping).when(display).isSleeping();
-        doReturn(keyguardShowing).when(keyguard).isKeyguardOrAodShowing(anyInt());
-
-        doReturn(isFocusedStack).when(stack).isFocusedStackOnDisplay();
-        doReturn(isFocusedStack ? stack : null).when(display).getFocusedStack();
-        mSupervisor.applySleepTokensLocked(true);
-        verify(stack, times(expectWakeFromSleep ? 1 : 0)).awakeFromSleepingLocked();
-        verify(stack, times(expectResumeTopActivity ? 1 : 0)).resumeTopActivityUncheckedLocked(
-                null /* target */, null /* targetOptions */);
-    }
-
-    /**
-     * Verifies that removal of activity with task and stack is done correctly.
-     */
-    @Test
-    public void testRemovingStackOnAppCrash() {
-        final ActivityDisplay defaultDisplay = mService.mStackSupervisor.getDefaultDisplay();
-        final int originalStackCount = defaultDisplay.getChildCount();
-        final ActivityStack stack = mService.mStackSupervisor.getDefaultDisplay().createStack(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, false /* onTop */);
-        final ActivityRecord firstActivity = new ActivityBuilder(mService).setCreateTask(true)
-                .setStack(stack).build();
-
-        assertEquals(originalStackCount + 1, defaultDisplay.getChildCount());
-
-        // Let's pretend that the app has crashed.
-        firstActivity.app.setThread(null);
-        mService.mStackSupervisor.finishTopCrashedActivitiesLocked(firstActivity.app, "test");
-
-        // Verify that the stack was removed.
-        assertEquals(originalStackCount, defaultDisplay.getChildCount());
-    }
-
-    @Test
-    public void testFocusability() {
-        final ActivityStack stack = mService.mStackSupervisor.getDefaultDisplay().createStack(
-                WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_STANDARD, true /* onTop */);
-        final ActivityRecord activity = new ActivityBuilder(mService).setCreateTask(true)
-                .setStack(stack).build();
-
-        // Under split screen primary we should be focusable when not minimized
-        mService.mStackSupervisor.setDockedStackMinimized(false);
-        assertTrue(stack.isFocusable());
-        assertTrue(activity.isFocusable());
-
-        // Under split screen primary we should not be focusable when minimized
-        mService.mStackSupervisor.setDockedStackMinimized(true);
-        assertFalse(stack.isFocusable());
-        assertFalse(activity.isFocusable());
-
-        final ActivityStack pinnedStack = mService.mStackSupervisor.getDefaultDisplay().createStack(
-                WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD, true /* onTop */);
-        final ActivityRecord pinnedActivity = new ActivityBuilder(mService).setCreateTask(true)
-                .setStack(pinnedStack).build();
-
-        // We should not be focusable when in pinned mode
-        assertFalse(pinnedStack.isFocusable());
-        assertFalse(pinnedActivity.isFocusable());
-
-        // Add flag forcing focusability.
-        pinnedActivity.info.flags |= FLAG_ALWAYS_FOCUSABLE;
-
-        // We should not be focusable when in pinned mode
-        assertTrue(pinnedStack.isFocusable());
-        assertTrue(pinnedActivity.isFocusable());
-
-        // Without the overridding activity, stack should not be focusable.
-        pinnedStack.removeTask(pinnedActivity.getTask(), "testFocusability",
-                REMOVE_TASK_MODE_DESTROYING);
-        assertFalse(pinnedStack.isFocusable());
-    }
-
-    /**
-     * Verify that split-screen primary stack will be chosen if activity is launched that targets
-     * split-screen secondary, but a matching existing instance is found on top of split-screen
-     * primary stack.
-     */
-    @Test
-    public void testSplitScreenPrimaryChosenWhenTopActivityLaunchedToSecondary() {
-        // Create primary split-screen stack with a task and an activity.
-        final ActivityStack primaryStack = mService.mStackSupervisor.getDefaultDisplay()
-                .createStack(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_STANDARD,
-                        true /* onTop */);
-        final TaskRecord task = new TaskBuilder(mSupervisor).setStack(primaryStack).build();
-        final ActivityRecord r = new ActivityBuilder(mService).setTask(task).build();
-
-        // Find a launch stack for the top activity in split-screen primary, while requesting
-        // split-screen secondary.
-        final ActivityOptions options = ActivityOptions.makeBasic();
-        options.setLaunchWindowingMode(WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY);
-        final ActivityStack result = mSupervisor.getLaunchStack(r, options, task, true /* onTop */);
-
-        // Assert that the primary stack is returned.
-        assertEquals(primaryStack, result);
-    }
-
-    /**
-     * Verify split-screen primary stack & task can resized by
-     * {@link android.app.IActivityTaskManager#resizeDockedStack} as expect.
-     */
-    @Test
-    public void testResizeDockedStackForSplitScreenPrimary() {
-        final Rect taskSize = new Rect(0, 0, 600, 600);
-        final Rect stackSize = new Rect(0, 0, 300, 300);
-
-        // Create primary split-screen stack with a task.
-        final ActivityStack primaryStack = mService.mStackSupervisor.getDefaultDisplay()
-                .createStack(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_STANDARD,
-                        true /* onTop */);
-        final TaskRecord task = new TaskBuilder(mSupervisor).setStack(primaryStack).build();
-
-        // Resize dock stack.
-        mService.resizeDockedStack(stackSize, taskSize, null, null, null);
-
-        // Verify dock stack & its task bounds if is equal as resized result.
-        assertEquals(primaryStack.getBounds(), stackSize);
-        assertEquals(task.getBounds(), taskSize);
-    }
-
-    /**
-     * Verify that home stack would be moved to front when the top activity is Recents.
-     */
-    @Test
-    public void testFindTaskToMoveToFrontWhenRecentsOnTop() {
-        // Create stack/task on default display.
-        final ActivityDisplay display = mSupervisor.getDefaultDisplay();
-        final TestActivityStack targetStack = new StackBuilder(mSupervisor).setOnTop(false).build();
-        final TaskRecord targetTask = targetStack.getChildAt(0);
-
-        // Create Recents on top of the display.
-        final ActivityStack stack =
-                new StackBuilder(mSupervisor).setActivityType(ACTIVITY_TYPE_RECENTS).build();
-
-        final String reason = "findTaskToMoveToFront";
-        mSupervisor.findTaskToMoveToFront(targetTask, 0, ActivityOptions.makeBasic(), reason,
-                false);
-
-        verify(display).moveHomeStackToFront(contains(reason));
-    }
-
-    /**
-     * Verify that home stack won't be moved to front if the top activity on other display is
-     * Recents.
-     */
-    @Test
-    public void testFindTaskToMoveToFrontWhenRecentsOnOtherDisplay() {
-        // Create stack/task on default display.
-        final ActivityDisplay display = mSupervisor.getDefaultDisplay();
-        final ActivityStack targetStack = display.createStack(WINDOWING_MODE_FULLSCREEN,
-                ACTIVITY_TYPE_STANDARD, false /* onTop */);
-        final TaskRecord targetTask = new TaskBuilder(mSupervisor).setStack(targetStack).build();
-
-        // Create Recents on secondary display.
-        final TestActivityDisplay secondDisplay = addNewActivityDisplayAt(
-                ActivityDisplay.POSITION_TOP);
-        final ActivityStack stack = secondDisplay.createStack(WINDOWING_MODE_FULLSCREEN,
-                ACTIVITY_TYPE_RECENTS, true /* onTop */);
-        final TaskRecord task = new TaskBuilder(mSupervisor).setStack(stack).build();
-        new ActivityBuilder(mService).setTask(task).build();
-
-        final String reason = "findTaskToMoveToFront";
-        mSupervisor.findTaskToMoveToFront(targetTask, 0, ActivityOptions.makeBasic(), reason,
-                false);
-
-        verify(display, never()).moveHomeStackToFront(contains(reason));
-    }
-
-    /**
-     * Verify if a stack is not at the topmost position, it should be able to resume its activity if
-     * the stack is the top focused.
-     */
-    @Test
-    public void testResumeActivityWhenNonTopmostStackIsTopFocused() {
-        // Create a stack at bottom.
-        final ActivityDisplay display = mSupervisor.getDefaultDisplay();
-        final ActivityStack targetStack = spy(display.createStack(WINDOWING_MODE_FULLSCREEN,
-                ACTIVITY_TYPE_STANDARD, false /* onTop */));
-        final TaskRecord task = new TaskBuilder(mSupervisor).setStack(targetStack).build();
-        final ActivityRecord activity = new ActivityBuilder(mService).setTask(task).build();
-        display.positionChildAtBottom(targetStack);
-
-        // Assume the stack is not at the topmost position (e.g. behind always-on-top stacks) but it
-        // is the current top focused stack.
-        assertFalse(targetStack.isTopStackOnDisplay());
-        doReturn(targetStack).when(mSupervisor).getTopDisplayFocusedStack();
-
-        // Use the stack as target to resume.
-        mSupervisor.resumeFocusedStacksTopActivitiesLocked(
-                targetStack, activity, null /* targetOptions */);
-
-        // Verify the target stack should resume its activity.
-        verify(targetStack, times(1)).resumeTopActivityUncheckedLocked(
-                eq(activity), eq(null /* targetOptions */));
-    }
-
-    /**
-     * Tests home activities that targeted sdk before Q cannot start on secondary display.
-     */
-    @Test
-    public void testStartHomeTargetSdkBeforeQ() throws Exception {
-        final TestActivityDisplay secondDisplay = spy(createNewActivityDisplay());
-        mSupervisor.addChild(secondDisplay, POSITION_TOP);
-        doReturn(true).when(secondDisplay).supportsSystemDecorations();
-
-        final ActivityInfo info = new ActivityInfo();
-        info.launchMode = LAUNCH_MULTIPLE;
-        info.applicationInfo = new ApplicationInfo();
-        info.applicationInfo.targetSdkVersion = Build.VERSION_CODES.Q;
-        assertTrue(mSupervisor.canStartHomeOnDisplay(info, secondDisplay.mDisplayId,
-                false /* allowInstrumenting */));
-
-        info.applicationInfo.targetSdkVersion = Build.VERSION_CODES.P;
-        assertFalse(mSupervisor.canStartHomeOnDisplay(info, secondDisplay.mDisplayId,
-                false /* allowInstrumenting */));
-    }
-
-    /**
-     * Tests that home activities can be started on the displays that supports system decorations.
-     */
-    @Test
-    public void testStartHomeOnAllDisplays() {
-        // Create secondary displays.
-        final TestActivityDisplay secondDisplay = spy(createNewActivityDisplay());
-        mSupervisor.addChild(secondDisplay, POSITION_TOP);
-        doReturn(true).when(secondDisplay).supportsSystemDecorations();
-
-        // Create mock tasks and other necessary mocks.
-        TaskBuilder taskBuilder = new TaskBuilder(mService.mStackSupervisor).setCreateStack(false);
-        final TaskRecord.TaskRecordFactory factory = mock(TaskRecord.TaskRecordFactory.class);
-        TaskRecord.setTaskRecordFactory(factory);
-        doAnswer(i -> taskBuilder.build()).when(factory)
-                .create(any(), anyInt(), any(), any(), any(), any());
-        doReturn(true).when(mService.mStackSupervisor)
-                .ensureVisibilityAndConfig(any(), anyInt(), anyBoolean(), anyBoolean());
-        doReturn(true).when(mSupervisor).canStartHomeOnDisplay(any(), anyInt(), anyBoolean());
-
-        mSupervisor.startHomeOnAllDisplays(0, "testStartHome");
-
-        assertTrue(mSupervisor.getDefaultDisplay().getTopStack().isActivityTypeHome());
-        assertNotNull(secondDisplay.getTopStack());
-        assertTrue(secondDisplay.getTopStack().isActivityTypeHome());
-    }
-
-    /**
-     * Tests that home activities won't be started before booting when display added.
-     */
-    @Test
-    public void testNotStartHomeBeforeBoot() {
-        final int displayId = 1;
-        final boolean isBooting = mService.mAmInternal.isBooting();
-        final boolean isBooted = mService.mAmInternal.isBooted();
-        try {
-            mService.mAmInternal.setBooting(false);
-            mService.mAmInternal.setBooted(false);
-            mSupervisor.onDisplayAdded(displayId);
-            verify(mSupervisor, never()).startHomeOnDisplay(anyInt(), any(), anyInt());
-        } finally {
-            mService.mAmInternal.setBooting(isBooting);
-            mService.mAmInternal.setBooted(isBooted);
-        }
-    }
-
-    /**
-     * Tests whether home can be started if being instrumented.
-     */
-    @Test
-    public void testCanStartHomeWhenInstrumented() {
-        final ActivityInfo info = new ActivityInfo();
-        info.applicationInfo = new ApplicationInfo();
-        final WindowProcessController app = mock(WindowProcessController.class);
-        doReturn(app).when(mService).getProcessController(any(), anyInt());
-
-        // Can not start home if we don't want to start home while home is being instrumented.
-        doReturn(true).when(app).isInstrumenting();
-        assertFalse(mSupervisor.canStartHomeOnDisplay(info, DEFAULT_DISPLAY,
-                false /* allowInstrumenting*/));
-
-        // Can start home for other cases.
-        assertTrue(mSupervisor.canStartHomeOnDisplay(info, DEFAULT_DISPLAY,
-                true /* allowInstrumenting*/));
-
-        doReturn(false).when(app).isInstrumenting();
-        assertTrue(mSupervisor.canStartHomeOnDisplay(info, DEFAULT_DISPLAY,
-                false /* allowInstrumenting*/));
-        assertTrue(mSupervisor.canStartHomeOnDisplay(info, DEFAULT_DISPLAY,
-                true /* allowInstrumenting*/));
-    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
index 62767e3..048384e 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
@@ -26,6 +26,10 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.ActivityStack.ActivityState.DESTROYING;
 import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
 import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
@@ -44,10 +48,6 @@
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
 
 import android.content.pm.ActivityInfo;
 import android.os.UserHandle;
@@ -74,7 +74,7 @@
     @Before
     public void setUp() throws Exception {
         setupActivityTaskManagerService();
-        mDefaultDisplay = mSupervisor.getDefaultDisplay();
+        mDefaultDisplay = mRootActivityContainer.getDefaultDisplay();
         mStack = spy(mDefaultDisplay.createStack(WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_STANDARD,
                 true /* onTop */));
         mTask = new TaskBuilder(mSupervisor).setStack(mStack).build();
@@ -112,7 +112,7 @@
         r.setState(RESUMED, "testResumedActivityFromTaskReparenting");
         assertEquals(r, mStack.getResumedActivity());
 
-        final ActivityStack destStack = mService.mStackSupervisor.getDefaultDisplay().createStack(
+        final ActivityStack destStack = mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
 
         mTask.reparent(destStack, true /* toTop */, TaskRecord.REPARENT_KEEP_STACK_AT_FRONT,
@@ -130,7 +130,7 @@
         r.setState(RESUMED, "testResumedActivityFromActivityReparenting");
         assertEquals(r, mStack.getResumedActivity());
 
-        final ActivityStack destStack = mService.mStackSupervisor.getDefaultDisplay().createStack(
+        final ActivityStack destStack = mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
         final TaskRecord destTask = new TaskBuilder(mSupervisor).setStack(destStack).build();
 
@@ -233,14 +233,14 @@
                 .setStack(mStack)
                 .setUid(0)
                 .build();
-        final TaskRecord task = r.getTask();
+        final TaskRecord task = r.getTaskRecord();
         // Overlay must be for a different user to prevent recognizing a matching top activity
         final ActivityRecord taskOverlay = new ActivityBuilder(mService).setTask(task)
                 .setUid(UserHandle.PER_USER_RANGE * 2).build();
         taskOverlay.mTaskOverlay = true;
 
-        final ActivityStackSupervisor.FindTaskResult result =
-                new ActivityStackSupervisor.FindTaskResult();
+        final RootActivityContainer.FindTaskResult result =
+                new RootActivityContainer.FindTaskResult();
         mStack.findTaskLocked(r, result);
 
         assertEquals(r, task.getTopActivity(false /* includeOverlays */));
@@ -700,7 +700,7 @@
         // should be destroyed immediately with updating configuration to restore original state.
         final ActivityRecord activity1 = finishCurrentActivity(stack1);
         assertEquals(DESTROYING, activity1.getState());
-        verify(mSupervisor).ensureVisibilityAndConfig(eq(null) /* starting */,
+        verify(mRootActivityContainer).ensureVisibilityAndConfig(eq(null) /* starting */,
                 eq(display.mDisplayId), anyBoolean(), anyBoolean());
     }
 
@@ -778,7 +778,7 @@
         final ActivityDisplay display = mock(ActivityDisplay.class);
         final KeyguardController keyguardController = mSupervisor.getKeyguardController();
 
-        doReturn(display).when(mSupervisor).getActivityDisplay(anyInt());
+        doReturn(display).when(mRootActivityContainer).getActivityDisplay(anyInt());
         doReturn(keyguardGoingAway).when(keyguardController).isKeyguardGoingAway();
         doReturn(displaySleeping).when(display).isSleeping();
         doReturn(focusedStack).when(mStack).isFocusedStackOnDisplay();
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStartControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStartControllerTests.java
index e8de05c..2ba2fdb 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStartControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStartControllerTests.java
@@ -19,12 +19,12 @@
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 
 import android.app.IApplicationThread;
 import android.content.Intent;
@@ -74,7 +74,7 @@
         final ActivityRecord activity = new ActivityBuilder(mService).build();
         final ActivityRecord source = new ActivityBuilder(mService).build();
         final int startFlags = random.nextInt();
-        final ActivityStack stack = mService.mStackSupervisor.getDefaultDisplay().createStack(
+        final ActivityStack stack = mService.mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
         final WindowProcessController wpc = new WindowProcessController(mService,
                 mService.mContext.getApplicationInfo(), "name", 12345,
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
index dda077e..350114c 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
@@ -18,6 +18,7 @@
 
 import static android.content.pm.ApplicationInfo.FLAG_SUSPENDED;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
 import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME;
 
 import static org.junit.Assert.assertEquals;
@@ -25,7 +26,6 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Mockito.when;
 
 import android.app.ActivityManagerInternal;
 import android.app.KeyguardManager;
@@ -90,6 +90,8 @@
     @Mock
     private ActivityTaskManagerService mService;
     @Mock
+    private RootActivityContainer mRootActivityContainer;
+    @Mock
     private ActivityStackSupervisor mSupervisor;
     @Mock
     private DevicePolicyManagerInternal mDevicePolicyManager;
@@ -111,7 +113,8 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mService.mAmInternal = mAmInternal;
-        mInterceptor = new ActivityStartInterceptor(mService, mSupervisor, mContext);
+        mInterceptor = new ActivityStartInterceptor(
+                mService, mSupervisor, mRootActivityContainer, mContext);
         mInterceptor.setStates(TEST_USER_ID, TEST_REAL_CALLING_PID, TEST_REAL_CALLING_UID,
                 TEST_START_FLAGS, TEST_CALLING_PACKAGE);
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
index 88479ec..5c918b4 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
@@ -16,6 +16,7 @@
 
 package com.android.server.wm;
 
+import static android.app.ActivityManager.PROCESS_STATE_TOP;
 import static android.app.ActivityManager.START_ABORTED;
 import static android.app.ActivityManager.START_CLASS_NOT_FOUND;
 import static android.app.ActivityManager.START_DELIVERED_TO_TOP;
@@ -36,6 +37,15 @@
 import static android.content.Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED;
 import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_TASK;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.clearInvocations;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.ActivityDisplay.POSITION_BOTTOM;
 import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
 import static com.android.server.wm.ActivityTaskManagerService.ANIMATE;
@@ -48,15 +58,6 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyObject;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.clearInvocations;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
 
 import android.app.ActivityOptions;
 import android.app.IApplicationThread;
@@ -69,6 +70,7 @@
 import android.content.pm.PackageManagerInternal;
 import android.graphics.Rect;
 import android.os.IBinder;
+import android.os.Process;
 import android.os.RemoteException;
 import android.platform.test.annotations.Presubmit;
 import android.service.voice.IVoiceInteractionSession;
@@ -110,6 +112,8 @@
     private static final int FAKE_CALLING_UID = 666;
     private static final int FAKE_REAL_CALLING_UID = 667;
     private static final String FAKE_CALLING_PACKAGE = "com.whatever.dude";
+    private static final int UNIMPORTANT_UID = 12345;
+    private static final int UNIMPORTANT_UID2 = 12346;
 
     @Before
     public void setUp() throws Exception {
@@ -125,7 +129,7 @@
     public void testUpdateLaunchBounds() {
         // When in a non-resizeable stack, the task bounds should be updated.
         final TaskRecord task = new TaskBuilder(mService.mStackSupervisor)
-                .setStack(mService.mStackSupervisor.getDefaultDisplay().createStack(
+                .setStack(mService.mRootActivityContainer.getDefaultDisplay().createStack(
                         WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */))
                 .build();
         final Rect bounds = new Rect(10, 10, 100, 100);
@@ -136,7 +140,7 @@
 
         // When in a resizeable stack, the stack bounds should be updated as well.
         final TaskRecord task2 = new TaskBuilder(mService.mStackSupervisor)
-                .setStack(mService.mStackSupervisor.getDefaultDisplay().createStack(
+                .setStack(mService.mRootActivityContainer.getDefaultDisplay().createStack(
                         WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD, true /* onTop */))
                 .build();
         assertThat((Object) task2.getStack()).isInstanceOf(PinnedActivityStack.class);
@@ -240,7 +244,7 @@
         final ActivityRecord source = builder.build();
 
         if (!containsConditions(preconditions, PRECONDITION_NO_INTENT_COMPONENT)) {
-            intent.setComponent(source.realActivity);
+            intent.setComponent(source.mActivityComponent);
         }
 
         if (containsConditions(preconditions, PRECONDITION_DISALLOW_APP_SWITCHING)) {
@@ -259,11 +263,11 @@
                     PRECONDITION_ACTIVITY_SUPPORTS_INTENT_EXCEPTION)) {
                 doAnswer((inv) -> {
                     throw new RemoteException();
-                }).when(packageManager).activitySupportsIntent(eq(source.realActivity), eq(intent),
-                        any());
+                }).when(packageManager).activitySupportsIntent(
+                        eq(source.mActivityComponent), eq(intent), any());
             } else {
                 doReturn(!containsConditions(preconditions, PRECONDITION_NO_VOICE_SESSION_SUPPORT))
-                        .when(packageManager).activitySupportsIntent(eq(source.realActivity),
+                        .when(packageManager).activitySupportsIntent(eq(source.mActivityComponent),
                         eq(intent), any());
             }
         } catch (RemoteException e) {
@@ -314,7 +318,7 @@
      * Creates a {@link ActivityStarter} with default parameters and necessary mocks.
      *
      * @param launchFlags The intent flags to launch activity.
-     * @param mockGetLaunchStack Whether to mock {@link ActivityStackSupervisor#getLaunchStack} for
+     * @param mockGetLaunchStack Whether to mock {@link RootActivityContainer#getLaunchStack} for
      *                           always launching to the testing stack. Set to false when allowing
      *                           the activity can be launched to any stack that is decided by real
      *                           implementation.
@@ -323,14 +327,14 @@
     private ActivityStarter prepareStarter(@Intent.Flags int launchFlags,
             boolean mockGetLaunchStack) {
         // always allow test to start activity.
-        doReturn(true).when(mService.mStackSupervisor).checkStartAnyActivityPermission(
+        doReturn(true).when(mSupervisor).checkStartAnyActivityPermission(
                 any(), any(), any(), anyInt(), anyInt(), anyInt(), any(),
                 anyBoolean(), anyBoolean(), any(), any(), any());
 
         // instrument the stack and task used.
-        final ActivityStack stack = mService.mStackSupervisor.getDefaultDisplay().createStack(
+        final ActivityStack stack = mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
-        final TaskRecord task = new TaskBuilder(mService.mStackSupervisor)
+        final TaskRecord task = new TaskBuilder(mSupervisor)
                 .setCreateStack(false)
                 .build();
 
@@ -343,9 +347,9 @@
 
         if (mockGetLaunchStack) {
             // Direct starter to use spy stack.
-            doReturn(stack).when(mService.mStackSupervisor)
+            doReturn(stack).when(mRootActivityContainer)
                     .getLaunchStack(any(), any(), any(), anyBoolean());
-            doReturn(stack).when(mService.mStackSupervisor)
+            doReturn(stack).when(mRootActivityContainer)
                     .getLaunchStack(any(), any(), any(), anyBoolean(), any());
         }
 
@@ -427,7 +431,7 @@
                 .setCreateTask(true)
                 .build();
 
-        focusActivity.getStack().setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+        focusActivity.getActivityStack().setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
 
         final ActivityRecord reusableActivity = new ActivityBuilder(mService)
                 .setCreateTask(true)
@@ -435,13 +439,13 @@
 
         // Create reusable activity after entering split-screen so that it is the top secondary
         // stack.
-        reusableActivity.getStack().setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+        reusableActivity.getActivityStack().setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
 
         // Set focus back to primary.
-        final ActivityStack focusStack = focusActivity.getStack();
+        final ActivityStack focusStack = focusActivity.getActivityStack();
         focusStack.moveToFront("testSplitScreenDeliverToTop");
 
-        doReturn(reusableActivity).when(mService.mStackSupervisor).findTaskLocked(any(), anyInt());
+        doReturn(reusableActivity).when(mRootActivityContainer).findTask(any(), anyInt());
 
         final int result = starter.setReason("testSplitScreenDeliverToTop").execute();
 
@@ -464,16 +468,16 @@
                 .setCreateTask(true)
                 .build();
 
-        reusableActivity.getStack().setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+        reusableActivity.getActivityStack().setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
 
         final ActivityRecord focusActivity = new ActivityBuilder(mService)
                 .setCreateTask(true)
                 .build();
 
         // Enter split-screen. Primary stack should have focus.
-        focusActivity.getStack().setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+        focusActivity.getActivityStack().setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
 
-        doReturn(reusableActivity).when(mService.mStackSupervisor).findTaskLocked(any(), anyInt());
+        doReturn(reusableActivity).when(mRootActivityContainer).findTask(any(), anyInt());
 
         final int result = starter.setReason("testSplitScreenMoveToFront").execute();
 
@@ -486,7 +490,7 @@
      */
     @Test
     public void testTaskModeViolation() {
-        final ActivityDisplay display = mService.mStackSupervisor.getDefaultDisplay();
+        final ActivityDisplay display = mService.mRootActivityContainer.getDefaultDisplay();
         ((TestActivityDisplay) display).removeAllTasks();
         assertNoTasks(display);
 
@@ -551,6 +555,123 @@
     }
 
     /**
+     * This test ensures that unsupported usecases aren't aborted when background starts are
+     * allowed.
+     */
+    @Test
+    public void testBackgroundActivityStartsAllowed_noStartsAborted() {
+        doReturn(true).when(mService).isBackgroundActivityStartsEnabled();
+
+        runAndVerifyBackgroundActivityStartsSubtest("allowed_noStartsAborted", false,
+                UNIMPORTANT_UID, false, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP + 1,
+                false, false);
+    }
+
+    /**
+     * This test ensures that unsupported usecases are aborted when background starts are
+     * disallowed.
+     */
+    @Test
+    public void testBackgroundActivityStartsDisallowed_unsupportedStartsAborted() {
+        doReturn(false).when(mService).isBackgroundActivityStartsEnabled();
+
+        runAndVerifyBackgroundActivityStartsSubtest(
+                "disallowed_unsupportedUsecase_aborted", true,
+                UNIMPORTANT_UID, false, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP + 1,
+                false, false);
+    }
+
+    /**
+     * This test ensures that supported usecases aren't aborted when background starts are
+     * disallowed.
+     * The scenarios each have only one condidion that makes them supported.
+     */
+    @Test
+    public void testBackgroundActivityStartsDisallowed_supportedStartsNotAborted() {
+        doReturn(false).when(mService).isBackgroundActivityStartsEnabled();
+
+        runAndVerifyBackgroundActivityStartsSubtest("disallowed_rootUid_notAborted", false,
+                Process.ROOT_UID, false, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP + 1,
+                false, false);
+        runAndVerifyBackgroundActivityStartsSubtest("disallowed_systemUid_notAborted", false,
+                Process.SYSTEM_UID, false, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP + 1,
+                false, false);
+        runAndVerifyBackgroundActivityStartsSubtest(
+                "disallowed_callingUidHasVisibleWindow_notAborted", false,
+                UNIMPORTANT_UID, true, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP + 1,
+                false, false);
+        runAndVerifyBackgroundActivityStartsSubtest(
+                "disallowed_callingUidProcessStateTop_notAborted", false,
+                UNIMPORTANT_UID, false, PROCESS_STATE_TOP,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP + 1,
+                false, false);
+        runAndVerifyBackgroundActivityStartsSubtest(
+                "disallowed_realCallingUidHasVisibleWindow_notAborted", false,
+                UNIMPORTANT_UID, false, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, true, PROCESS_STATE_TOP + 1,
+                false, false);
+        runAndVerifyBackgroundActivityStartsSubtest(
+                "disallowed_realCallingUidProcessStateTop_notAborted", false,
+                UNIMPORTANT_UID, false, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP,
+                false, false);
+        runAndVerifyBackgroundActivityStartsSubtest(
+                "disallowed_hasForegroundActivities_notAborted", false,
+                UNIMPORTANT_UID, false, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP + 1,
+                true, false);
+        runAndVerifyBackgroundActivityStartsSubtest(
+                "disallowed_callerIsRecents_notAborted", false,
+                UNIMPORTANT_UID, false, PROCESS_STATE_TOP + 1,
+                UNIMPORTANT_UID2, false, PROCESS_STATE_TOP + 1,
+                false, true);
+    }
+
+    private void runAndVerifyBackgroundActivityStartsSubtest(String name, boolean shouldHaveAborted,
+            int callingUid, boolean callingUidHasVisibleWindow, int callingUidProcState,
+            int realCallingUid, boolean realCallingUidHasVisibleWindow, int realCallingUidProcState,
+            boolean hasForegroundActivities, boolean callerIsRecents) {
+        // window visibility
+        doReturn(callingUidHasVisibleWindow).when(mService.mWindowManager).isAnyWindowVisibleForUid(
+                callingUid);
+        doReturn(realCallingUidHasVisibleWindow).when(mService.mWindowManager)
+                .isAnyWindowVisibleForUid(realCallingUid);
+        // process importance
+        doReturn(callingUidProcState).when(mService).getUidStateLocked(callingUid);
+        doReturn(realCallingUidProcState).when(mService).getUidStateLocked(realCallingUid);
+        // foreground activities
+        final IApplicationThread caller = mock(IApplicationThread.class);
+        final ApplicationInfo ai = new ApplicationInfo();
+        ai.uid = callingUid;
+        final WindowProcessController callerApp =
+                new WindowProcessController(mService, ai, null, callingUid, -1, null, null);
+        callerApp.setHasForegroundActivities(hasForegroundActivities);
+        doReturn(callerApp).when(mService).getProcessController(caller);
+        // caller is recents
+        RecentTasks recentTasks = mock(RecentTasks.class);
+        mService.mStackSupervisor.setRecentTasks(recentTasks);
+        doReturn(callerIsRecents).when(recentTasks).isCallerRecents(callingUid);
+
+        final ActivityOptions options = spy(ActivityOptions.makeBasic());
+        ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_NEW_TASK)
+                .setCaller(caller)
+                .setCallingUid(callingUid)
+                .setRealCallingUid(realCallingUid)
+                .setActivityOptions(new SafeActivityOptions(options));
+
+        final int result = starter.setReason("testBackgroundActivityStarts_" + name).execute();
+
+        assertEquals(ActivityStarter.getExternalResult(
+                shouldHaveAborted ? START_ABORTED : START_SUCCESS), result);
+        verify(options, times(shouldHaveAborted ? 1 : 0)).abort();
+    }
+
+    /**
      * This test ensures that when starting an existing single task activity on secondary display
      * which is not the top focused display, it should deliver new intent to the activity and not
      * create a new stack.
@@ -562,7 +683,7 @@
 
         // Create a secondary display at bottom.
         final TestActivityDisplay secondaryDisplay = spy(createNewActivityDisplay());
-        mSupervisor.addChild(secondaryDisplay, POSITION_BOTTOM);
+        mRootActivityContainer.addChild(secondaryDisplay, POSITION_BOTTOM);
         final ActivityStack stack = secondaryDisplay.createStack(WINDOWING_MODE_FULLSCREEN,
                 ACTIVITY_TYPE_STANDARD, true /* onTop */);
 
@@ -600,7 +721,7 @@
 
         // Create a secondary display with an activity.
         final TestActivityDisplay secondaryDisplay = spy(createNewActivityDisplay());
-        mSupervisor.addChild(secondaryDisplay, POSITION_TOP);
+        mRootActivityContainer.addChild(secondaryDisplay, POSITION_TOP);
         final ActivityRecord singleTaskActivity = createSingleTaskActivityOn(
                 secondaryDisplay.createStack(WINDOWING_MODE_FULLSCREEN,
                         ACTIVITY_TYPE_STANDARD, false /* onTop */));
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
index 26286e2..3a56419 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
@@ -26,19 +26,18 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyString;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
 import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_DESTROYING;
 import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
 
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyBoolean;
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-
 import android.app.ActivityManagerInternal;
 import android.app.ActivityOptions;
 import android.app.IApplicationThread;
@@ -67,6 +66,8 @@
 import com.android.server.AttributeCache;
 import com.android.server.ServiceThread;
 import com.android.server.am.ActivityManagerService;
+import com.android.server.am.PendingIntentController;
+import com.android.server.firewall.IntentFirewall;
 import com.android.server.uri.UriGrantsManagerInternal;
 
 import org.junit.After;
@@ -92,6 +93,7 @@
     final TestInjector mTestInjector = new TestInjector();
 
     ActivityTaskManagerService mService;
+    RootActivityContainer mRootActivityContainer;
     ActivityStackSupervisor mSupervisor;
 
     // Default package name
@@ -116,27 +118,14 @@
     }
 
     ActivityTaskManagerService createActivityTaskManagerService() {
-        final TestActivityTaskManagerService atm =
-                spy(new TestActivityTaskManagerService(mContext));
-        setupActivityManagerService(atm);
-        return atm;
+        mService = new TestActivityTaskManagerService(mContext);
+        mSupervisor = mService.mStackSupervisor;
+        mRootActivityContainer = mService.mRootActivityContainer;
+        return mService;
     }
 
     void setupActivityTaskManagerService() {
-        mService = createActivityTaskManagerService();
-        mSupervisor = mService.mStackSupervisor;
-    }
-
-    ActivityManagerService createActivityManagerService() {
-        final TestActivityTaskManagerService atm =
-                spy(new TestActivityTaskManagerService(mContext));
-        return setupActivityManagerService(atm);
-    }
-
-    ActivityManagerService setupActivityManagerService(TestActivityTaskManagerService atm) {
-        final TestActivityManagerService am = spy(new TestActivityManagerService(mTestInjector));
-        setupActivityManagerService(am, atm);
-        return am;
+        createActivityTaskManagerService();
     }
 
     /** Creates a {@link TestActivityDisplay}. */
@@ -151,36 +140,10 @@
     /** Creates and adds a {@link TestActivityDisplay} to supervisor at the given position. */
     TestActivityDisplay addNewActivityDisplayAt(int position) {
         final TestActivityDisplay display = createNewActivityDisplay();
-        mSupervisor.addChild(display, position);
+        mRootActivityContainer.addChild(display, position);
         return display;
     }
 
-    void setupActivityManagerService(
-            TestActivityManagerService am, TestActivityTaskManagerService atm) {
-        atm.setActivityManagerService(am.mIntentFirewall, am.mPendingIntentController);
-        atm.mAmInternal = am.getLocalService();
-        am.mAtmInternal = atm.getLocalService();
-        // Makes sure the supervisor is using with the spy object.
-        atm.mStackSupervisor.setService(atm);
-        doReturn(mock(IPackageManager.class)).when(am).getPackageManager();
-        doReturn(mock(IPackageManager.class)).when(atm).getPackageManager();
-        PackageManagerInternal mockPackageManager = mock(PackageManagerInternal.class);
-        doReturn(mockPackageManager).when(am).getPackageManagerInternalLocked();
-        doReturn(null).when(mockPackageManager).getDefaultHomeActivity(anyInt());
-        doNothing().when(am).grantEphemeralAccessLocked(anyInt(), any(), anyInt(), anyInt());
-        am.mActivityTaskManager = atm;
-        am.mWindowManager = prepareMockWindowManager();
-        atm.setWindowManager(am.mWindowManager);
-
-        // Put a home stack on the default display, so that we'll always have something focusable.
-        final TestActivityStackSupervisor supervisor =
-                (TestActivityStackSupervisor) atm.mStackSupervisor;
-        supervisor.mDisplay.createStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
-        final TaskRecord task = new TaskBuilder(atm.mStackSupervisor)
-                .setStack(supervisor.getDefaultDisplay().getHomeStack()).build();
-        new ActivityBuilder(atm).setTask(task).build();
-    }
-
     /**
      * Builder for creating new activities.
      */
@@ -269,7 +232,9 @@
                     aInfo /*aInfo*/, new Configuration(), null /* resultTo */, null /* resultWho */,
                     0 /* reqCode */, false /*componentSpecified*/, false /* rootVoiceInteraction */,
                     mService.mStackSupervisor, null /* options */, null /* sourceRecord */);
-            activity.mWindowContainerController = mock(AppWindowContainerController.class);
+            spyOn(activity);
+            activity.mAppWindowToken = mock(AppWindowToken.class);
+            doNothing().when(activity).removeWindowContainer();
 
             if (mTaskRecord != null) {
                 mTaskRecord.addActivityToTop(activity);
@@ -355,7 +320,7 @@
 
         TaskRecord build() {
             if (mStack == null && mCreateStack) {
-                mStack = mSupervisor.getDefaultDisplay().createStack(
+                mStack = mSupervisor.mRootActivityContainer.getDefaultDisplay().createStack(
                         WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
             }
 
@@ -406,23 +371,71 @@
         }
     }
 
-    protected static class TestActivityTaskManagerService extends ActivityTaskManagerService {
-        private LockTaskController mLockTaskController;
-        private ActivityTaskManagerInternal mInternal;
+    protected class TestActivityTaskManagerService extends ActivityTaskManagerService {
         private PackageManagerInternal mPmInternal;
 
         // ActivityStackSupervisor may be created more than once while setting up AMS and ATMS.
         // We keep the reference in order to prevent creating it twice.
-        private ActivityStackSupervisor mTestStackSupervisor;
+        ActivityStackSupervisor mTestStackSupervisor;
+
+        ActivityDisplay mDefaultDisplay;
 
         TestActivityTaskManagerService(Context context) {
             super(context);
+            spyOn(this);
+
+            mUgmInternal = mock(UriGrantsManagerInternal.class);
+
             mSupportsMultiWindow = true;
             mSupportsMultiDisplay = true;
             mSupportsSplitScreenMultiWindow = true;
             mSupportsFreeformWindowManagement = true;
             mSupportsPictureInPicture = true;
-            mUgmInternal = mock(UriGrantsManagerInternal.class);
+
+            final TestActivityManagerService am =
+                    new TestActivityManagerService(mTestInjector, this);
+
+            spyOn(getLifecycleManager());
+            spyOn(getLockTaskController());
+            doReturn(mock(IPackageManager.class)).when(this).getPackageManager();
+            // allow background activity starts by default
+            doReturn(true).when(this).isBackgroundActivityStartsEnabled();
+        }
+
+        void setup(IntentFirewall intentFirewall, PendingIntentController intentController,
+                ActivityManagerInternal amInternal, WindowManagerService wm, Looper looper) {
+            mAmInternal = amInternal;
+            initialize(intentFirewall, intentController, looper);
+            initRootActivityContainerMocks(wm);
+            setWindowManager(wm);
+        }
+
+        void initRootActivityContainerMocks(WindowManagerService wm) {
+            spyOn(mRootActivityContainer);
+            mRootActivityContainer.setWindowContainer(mock(RootWindowContainer.class));
+            mRootActivityContainer.mWindowManager = wm;
+            mRootActivityContainer.mDisplayManager =
+                    (DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE);
+            doNothing().when(mRootActivityContainer).setWindowManager(any());
+            // Invoked during {@link ActivityStack} creation.
+            doNothing().when(mRootActivityContainer).updateUIDsPresentOnDisplay();
+            // Always keep things awake.
+            doReturn(true).when(mRootActivityContainer).hasAwakeDisplay();
+            // Called when moving activity to pinned stack.
+            doNothing().when(mRootActivityContainer).ensureActivitiesVisible(any(), anyInt(),
+                    anyBoolean());
+
+            // Create a default display and put a home stack on it so that we'll always have
+            // something focusable.
+            mDefaultDisplay = TestActivityDisplay.create(mStackSupervisor, DEFAULT_DISPLAY);
+            spyOn(mDefaultDisplay);
+            mRootActivityContainer.addChild(mDefaultDisplay, ActivityDisplay.POSITION_TOP);
+            mDefaultDisplay.createStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, ON_TOP);
+            final TaskRecord task = new TaskBuilder(mStackSupervisor)
+                    .setStack(mDefaultDisplay.getHomeStack()).build();
+            new ActivityBuilder(this).setTask(task).build();
+
+            doReturn(mDefaultDisplay).when(mRootActivityContainer).getDefaultDisplay();
         }
 
         @Override
@@ -431,54 +444,17 @@
         }
 
         @Override
-        public LockTaskController getLockTaskController() {
-            if (mLockTaskController == null) {
-                mLockTaskController = spy(super.getLockTaskController());
-            }
-
-            return mLockTaskController;
-        }
-
-        @Override
         void updateUsageStats(ActivityRecord component, boolean resumed) {
         }
 
         @Override
-        protected final ActivityStackSupervisor createStackSupervisor() {
+        protected ActivityStackSupervisor createStackSupervisor() {
             if (mTestStackSupervisor == null) {
-                final ActivityStackSupervisor supervisor = spy(createTestSupervisor());
-                final KeyguardController keyguardController = mock(KeyguardController.class);
-
-                // Invoked during {@link ActivityStack} creation.
-                doNothing().when(supervisor).updateUIDsPresentOnDisplay();
-                // Always keep things awake.
-                doReturn(true).when(supervisor).hasAwakeDisplay();
-                // Called when moving activity to pinned stack.
-                doNothing().when(supervisor).ensureActivitiesVisibleLocked(any(), anyInt(),
-                        anyBoolean());
-                // Do not schedule idle timeouts
-                doNothing().when(supervisor).scheduleIdleTimeoutLocked(any());
-                // unit test version does not handle launch wake lock
-                doNothing().when(supervisor).acquireLaunchWakelock();
-                doReturn(keyguardController).when(supervisor).getKeyguardController();
-
-                supervisor.initialize();
-                mTestStackSupervisor = supervisor;
+                mTestStackSupervisor = new TestActivityStackSupervisor(this, mH.getLooper());
             }
             return mTestStackSupervisor;
         }
 
-        protected ActivityStackSupervisor createTestSupervisor() {
-            return new TestActivityStackSupervisor(this, mH.getLooper());
-        }
-
-        ActivityTaskManagerInternal getLocalService() {
-            if (mInternal == null) {
-                mInternal = new ActivityTaskManagerService.LocalService();
-            }
-            return mInternal;
-        }
-
         @Override
         PackageManagerInternal getPackageManagerInternalLocked() {
             if (mPmInternal == null) {
@@ -525,24 +501,31 @@
         }
     }
 
+    // TODO: Replace this with a mock object since we are no longer in AMS package.
     /**
      * An {@link ActivityManagerService} subclass which provides a test
      * {@link ActivityStackSupervisor}.
      */
-    static class TestActivityManagerService extends ActivityManagerService {
+    class TestActivityManagerService extends ActivityManagerService {
 
-        private ActivityManagerInternal mInternal;
-
-        TestActivityManagerService(TestInjector testInjector) {
+        TestActivityManagerService(TestInjector testInjector, TestActivityTaskManagerService atm) {
             super(testInjector, testInjector.mHandlerThread);
-            mUgmInternal = mock(UriGrantsManagerInternal.class);
-        }
+            spyOn(this);
 
-        ActivityManagerInternal getLocalService() {
-            if (mInternal == null) {
-                mInternal = new LocalService();
-            }
-            return mInternal;
+            mWindowManager = prepareMockWindowManager();
+            mUgmInternal = mock(UriGrantsManagerInternal.class);
+
+            atm.setup(mIntentFirewall, mPendingIntentController, new LocalService(), mWindowManager,
+                    testInjector.mHandlerThread.getLooper());
+
+            mActivityTaskManager = atm;
+            mAtmInternal = atm.mInternal;
+
+            doReturn(mock(IPackageManager.class)).when(this).getPackageManager();
+            PackageManagerInternal mockPackageManager = mock(PackageManagerInternal.class);
+            doReturn(mockPackageManager).when(this).getPackageManagerInternalLocked();
+            doReturn(null).when(mockPackageManager).getDefaultHomeActivity(anyInt());
+            doNothing().when(this).grantEphemeralAccessLocked(anyInt(), any(), anyInt(), anyInt());
         }
     }
 
@@ -550,24 +533,22 @@
      * An {@link ActivityStackSupervisor} which stubs out certain methods that depend on
      * setup not available in the test environment. Also specifies an injector for
      */
-    protected static class TestActivityStackSupervisor extends ActivityStackSupervisor {
-        private ActivityDisplay mDisplay;
+    protected class TestActivityStackSupervisor extends ActivityStackSupervisor {
         private KeyguardController mKeyguardController;
 
-        public TestActivityStackSupervisor(ActivityTaskManagerService service, Looper looper) {
+        TestActivityStackSupervisor(ActivityTaskManagerService service, Looper looper) {
             super(service, looper);
-            mDisplayManager =
-                    (DisplayManager) mService.mContext.getSystemService(Context.DISPLAY_SERVICE);
+            spyOn(this);
             mWindowManager = prepareMockWindowManager();
             mKeyguardController = mock(KeyguardController.class);
-            setWindowContainerController(mock(RootWindowContainerController.class));
-        }
 
-        @Override
-        public void initialize() {
-            super.initialize();
-            mDisplay = spy(TestActivityDisplay.create(this, DEFAULT_DISPLAY));
-            addChild(mDisplay, ActivityDisplay.POSITION_TOP);
+            // Do not schedule idle timeouts
+            doNothing().when(this).scheduleIdleTimeoutLocked(any());
+            // unit test version does not handle launch wake lock
+            doNothing().when(this).acquireLaunchWakelock();
+            doReturn(mKeyguardController).when(this).getKeyguardController();
+
+            initialize();
         }
 
         @Override
@@ -576,11 +557,6 @@
         }
 
         @Override
-        ActivityDisplay getDefaultDisplay() {
-            return mDisplay;
-        }
-
-        @Override
         void setWindowManager(WindowManagerService wm) {
             mWindowManager = wm;
         }
@@ -597,7 +573,7 @@
                 DisplayInfo info) {
             if (displayId == DEFAULT_DISPLAY) {
                 return new TestActivityDisplay(supervisor,
-                        supervisor.mDisplayManager.getDisplay(displayId));
+                        supervisor.mRootActivityContainer.mDisplayManager.getDisplay(displayId));
             }
             final Display display = new Display(DisplayManagerGlobal.getInstance(), displayId,
                     info, DEFAULT_DISPLAY_ADJUSTMENTS);
@@ -605,7 +581,7 @@
         }
 
         TestActivityDisplay(ActivityStackSupervisor supervisor, Display display) {
-            super(supervisor, display);
+            super(supervisor.mService.mRootActivityContainer, display);
             // Normally this comes from display-properties as exposed by WM. Without that, just
             // hard-code to FULLSCREEN for tests.
             setWindowingMode(WINDOWING_MODE_FULLSCREEN);
@@ -616,14 +592,16 @@
         @Override
         <T extends ActivityStack> T createStackUnchecked(int windowingMode, int activityType,
                 int stackId, boolean onTop) {
-            return new StackBuilder(mSupervisor).setDisplay(this)
+            return new StackBuilder(mSupervisor.mRootActivityContainer).setDisplay(this)
                     .setWindowingMode(windowingMode).setActivityType(activityType)
                     .setStackId(stackId).setOnTop(onTop).setCreateActivity(false).build();
         }
 
         @Override
         protected DisplayWindowController createWindowContainerController() {
-            return mock(DisplayWindowController.class);
+            DisplayWindowController out = mock(DisplayWindowController.class);
+            out.mContainer = WindowTestUtils.createTestDisplayContent();
+            return out;
         }
 
         void removeAllTasks() {
@@ -756,8 +734,8 @@
         }
     }
 
-    protected static class StackBuilder {
-        private final ActivityStackSupervisor mSupervisor;
+    static class StackBuilder {
+        private final RootActivityContainer mRootActivityContainer;
         private ActivityDisplay mDisplay;
         private int mStackId = -1;
         private int mWindowingMode = WINDOWING_MODE_FULLSCREEN;
@@ -765,9 +743,9 @@
         private boolean mOnTop = true;
         private boolean mCreateActivity = true;
 
-        StackBuilder(ActivityStackSupervisor supervisor) {
-            mSupervisor = supervisor;
-            mDisplay = mSupervisor.getDefaultDisplay();
+        StackBuilder(RootActivityContainer root) {
+            mRootActivityContainer = root;
+            mDisplay = mRootActivityContainer.getDefaultDisplay();
         }
 
         StackBuilder setWindowingMode(int windowingMode) {
@@ -804,7 +782,8 @@
         <T extends ActivityStack> T build() {
             final int stackId = mStackId >= 0 ? mStackId : mDisplay.getNextStackId();
             if (mWindowingMode == WINDOWING_MODE_PINNED) {
-                return (T) new PinnedActivityStack(mDisplay, stackId, mSupervisor, mOnTop) {
+                return (T) new PinnedActivityStack(mDisplay, stackId,
+                        mRootActivityContainer.mStackSupervisor, mOnTop) {
                     @Override
                     Rect getDefaultPictureInPictureBounds(float aspectRatio) {
                         return new Rect(50, 50, 100, 100);
@@ -813,11 +792,15 @@
                     @Override
                     PinnedStackWindowController createStackWindowController(int displayId,
                             boolean onTop, Rect outBounds) {
-                        return mock(PinnedStackWindowController.class);
+                        PinnedStackWindowController controller =
+                                mock(PinnedStackWindowController.class);
+                        controller.mContainer = mock(TaskStack.class);
+                        return controller;
                     }
                 };
             } else {
-                return (T) new TestActivityStack(mDisplay, stackId, mSupervisor, mWindowingMode,
+                return (T) new TestActivityStack(mDisplay, stackId,
+                        mRootActivityContainer.mStackSupervisor, mWindowingMode,
                         mActivityType, mOnTop, mCreateActivity);
             }
         }
diff --git a/services/tests/servicestests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java b/services/tests/wmtests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java
similarity index 95%
rename from services/tests/servicestests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java
rename to services/tests/wmtests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java
index a907161..5556a15 100644
--- a/services/tests/servicestests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AnimatingAppWindowTokenRegistryTest.java
@@ -19,12 +19,12 @@
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyZeroInteractions;
+
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
 
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
-
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.filters.FlakyTest;
diff --git a/services/tests/servicestests/src/com/android/server/wm/AppTransitionControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/AppTransitionControllerTest.java
rename to services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/AppTransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java
similarity index 84%
rename from services/tests/servicestests/src/com/android/server/wm/AppTransitionTests.java
rename to services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java
index f12619c..577859c 100644
--- a/services/tests/servicestests/src/com/android/server/wm/AppTransitionTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java
@@ -24,18 +24,18 @@
 import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY;
 import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.spy;
 
 import android.graphics.Rect;
 import android.platform.test.annotations.Presubmit;
 import android.view.Display;
-import android.view.IApplicationToken;
 
 import androidx.test.filters.SmallTest;
 
@@ -111,16 +111,9 @@
         final WindowTestUtils.TestAppWindowToken token2 = createTestAppWindowToken(dc2,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
 
-        // Set TestAppWindowContainerController & assign first app token state to be good to go.
-        final WindowTestUtils.TestAppWindowContainerController controller1 =
-                createAppWindowController(dc1, token1.appToken);
-        final WindowTestUtils.TestAppWindowContainerController controller2 =
-                createAppWindowController(dc1, token2.appToken);
-        controller1.setContainer(token1);
         token1.allDrawn = true;
         token1.startingDisplayed = true;
         token1.startingMoved = true;
-        controller2.setContainer(token2);
 
         // Simulate activity resume / finish flows to prepare app transition & set visibility,
         // make sure transition is set as expected for each display.
@@ -132,8 +125,8 @@
         assertEquals(TRANSIT_ACTIVITY_CLOSE, dc2.mAppTransition.getAppTransition());
         // One activity window is visible for resuming & the other activity window is invisible
         // for finishing in different display.
-        controller1.setVisibility(true, false);
-        controller2.setVisibility(false, false);
+        token1.setVisibility(true, false);
+        token2.setVisibility(false, false);
 
         // Make sure each display is in animating stage.
         assertTrue(dc1.mOpeningApps.size() > 0);
@@ -174,16 +167,4 @@
         assertFalse(dc1.mOpeningApps.contains(token1));
     }
 
-    private WindowTestUtils.TestAppWindowContainerController createAppWindowController(
-            DisplayContent dc, IApplicationToken token) {
-        return createAppWindowController(
-                new WindowTestUtils.TestTaskWindowContainerController(
-                        createStackControllerOnDisplay(dc)), token);
-    }
-
-    private WindowTestUtils.TestAppWindowContainerController createAppWindowController(
-            WindowTestUtils.TestTaskWindowContainerController taskController,
-            IApplicationToken token) {
-        return new WindowTestUtils.TestAppWindowContainerController(taskController, token);
-    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenAnimationTests.java b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenAnimationTests.java
similarity index 97%
rename from services/tests/servicestests/src/com/android/server/wm/AppWindowTokenAnimationTests.java
rename to services/tests/wmtests/src/com/android/server/wm/AppWindowTokenAnimationTests.java
index 4522494..dcfb879 100644
--- a/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenAnimationTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenAnimationTests.java
@@ -20,11 +20,12 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.view.SurfaceControl.Transaction;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
 
 import android.view.SurfaceControl;
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
similarity index 64%
rename from services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java
rename to services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
index 552390d..0ee532d 100644
--- a/services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
@@ -18,6 +18,7 @@
 
 import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
+import static android.content.ActivityInfoProto.SCREEN_ORIENTATION_UNSPECIFIED;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_BEHIND;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
@@ -31,13 +32,17 @@
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 import static android.view.WindowManager.TRANSIT_UNSET;
 
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+
 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.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
 
 import android.graphics.Point;
 import android.graphics.Rect;
@@ -66,6 +71,8 @@
     Task mTask;
     WindowTestUtils.TestAppWindowToken mToken;
 
+    private final String mPackageName = getInstrumentation().getTargetContext().getPackageName();
+
     @Before
     public void setUp() throws Exception {
         mStack = createTaskStackOnDisplay(mDisplayContent);
@@ -112,7 +119,8 @@
         assertEquals(window1, mToken.findMainWindow());
         window1.mAnimatingExit = true;
         assertEquals(window1, mToken.findMainWindow());
-        final WindowState window2 = createWindow(null, TYPE_APPLICATION_STARTING, mToken, "window2");
+        final WindowState window2 = createWindow(null, TYPE_APPLICATION_STARTING, mToken,
+                "window2");
         assertEquals(window2, mToken.findMainWindow());
         mToken.removeImmediately();
     }
@@ -150,7 +158,7 @@
         mWm.updateOrientationFromAppTokens(mDisplayContent.getOverrideConfiguration(), null,
                 mDisplayContent.getDisplayId());
         assertEquals(SCREEN_ORIENTATION_LANDSCAPE, mDisplayContent.getLastOrientation());
-        appWindow.resizeReported = false;
+        appWindow.mResizeReported = false;
 
         // Update the orientation to perform 180 degree rotation and check that resize was reported.
         mToken.setOrientation(SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
@@ -158,7 +166,7 @@
                 mDisplayContent.getDisplayId());
         mWm.mRoot.performSurfacePlacement(false /* recoveringMemory */);
         assertEquals(SCREEN_ORIENTATION_REVERSE_LANDSCAPE, mDisplayContent.getLastOrientation());
-        assertTrue(appWindow.resizeReported);
+        assertTrue(appWindow.mResizeReported);
         appWindow.removeImmediately();
     }
 
@@ -179,11 +187,11 @@
 
         // Set initial orientation and update.
         performRotation(spiedRotation, Surface.ROTATION_90);
-        appWindow.resizeReported = false;
+        appWindow.mResizeReported = false;
 
         // Update the rotation to perform 180 degree rotation and check that resize was reported.
         performRotation(spiedRotation, Surface.ROTATION_270);
-        assertTrue(appWindow.resizeReported);
+        assertTrue(appWindow.mResizeReported);
 
         appWindow.removeImmediately();
     }
@@ -215,7 +223,8 @@
         // Can not specify orientation if app isn't visible even though it fills parent.
         assertEquals(SCREEN_ORIENTATION_UNSET, mToken.getOrientation());
         // Can specify orientation if the current orientation candidate is orientation behind.
-        assertEquals(SCREEN_ORIENTATION_LANDSCAPE, mToken.getOrientation(SCREEN_ORIENTATION_BEHIND));
+        assertEquals(SCREEN_ORIENTATION_LANDSCAPE,
+                mToken.getOrientation(SCREEN_ORIENTATION_BEHIND));
     }
 
     @Test
@@ -241,7 +250,8 @@
 
         // Finish relaunching and ensure flag is now not reported
         mToken.finishRelaunching();
-        assertFalse(mToken.containsShowWhenLockedWindow() || mToken.containsDismissKeyguardWindow());
+        assertFalse(
+                mToken.containsShowWhenLockedWindow() || mToken.containsDismissKeyguardWindow());
     }
 
     @Test
@@ -251,7 +261,7 @@
                 "closingWindow");
         closingWindow.mAnimatingExit = true;
         closingWindow.mRemoveOnExit = true;
-        closingWindow.mAppToken.setVisibility(null, false /* visible */, TRANSIT_UNSET,
+        closingWindow.mAppToken.commitVisibility(null, false /* visible */, TRANSIT_UNSET,
                 true /* performLayout */, false /* isVoiceInteraction */);
 
         // We pretended that we were running an exit animation, but that should have been cleared up
@@ -261,6 +271,124 @@
     }
 
     @Test
+    public void testSetOrientation() {
+        // Assert orientation is unspecified to start.
+        assertEquals(SCREEN_ORIENTATION_UNSPECIFIED, mToken.getOrientation());
+
+        mToken.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
+        assertEquals(SCREEN_ORIENTATION_LANDSCAPE, mToken.getOrientation());
+
+        mDisplayContent.removeAppToken(mToken.token);
+        // Assert orientation is unset to after container is removed.
+        assertEquals(SCREEN_ORIENTATION_UNSET, mToken.getOrientation());
+
+        // Reset display frozen state
+        mWm.mDisplayFrozen = false;
+    }
+
+    @Test
+    public void testCreateRemoveStartingWindow() {
+        mToken.addStartingWindow(mPackageName,
+                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
+                false, false);
+        waitUntilHandlersIdle();
+        assertHasStartingWindow(mToken);
+        mToken.removeStartingWindow();
+        waitUntilHandlersIdle();
+        assertNoStartingWindow(mToken);
+    }
+
+    @Test
+    public void testAddRemoveRace() {
+        // There was once a race condition between adding and removing starting windows
+        for (int i = 0; i < 1000; i++) {
+            final WindowTestUtils.TestAppWindowToken appToken = createIsolatedTestAppWindowToken();
+
+            appToken.addStartingWindow(mPackageName,
+                    android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
+                    false, false);
+            appToken.removeStartingWindow();
+            waitUntilHandlersIdle();
+            assertNoStartingWindow(appToken);
+
+            appToken.getParent().getParent().removeImmediately();
+        }
+    }
+
+    @Test
+    public void testTransferStartingWindow() {
+        final WindowTestUtils.TestAppWindowToken token1 = createIsolatedTestAppWindowToken();
+        final WindowTestUtils.TestAppWindowToken token2 = createIsolatedTestAppWindowToken();
+        token1.addStartingWindow(mPackageName,
+                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
+                false, false);
+        waitUntilHandlersIdle();
+        token2.addStartingWindow(mPackageName,
+                android.R.style.Theme, null, "Test", 0, 0, 0, 0, token1.appToken.asBinder(),
+                true, true, false, true, false, false);
+        waitUntilHandlersIdle();
+        assertNoStartingWindow(token1);
+        assertHasStartingWindow(token2);
+    }
+
+    @Test
+    public void testTransferStartingWindowWhileCreating() {
+        final WindowTestUtils.TestAppWindowToken token1 = createIsolatedTestAppWindowToken();
+        final WindowTestUtils.TestAppWindowToken token2 = createIsolatedTestAppWindowToken();
+        ((TestWindowManagerPolicy) token1.mWmService.mPolicy).setRunnableWhenAddingSplashScreen(
+                () -> {
+                    // Surprise, ...! Transfer window in the middle of the creation flow.
+                    token2.addStartingWindow(mPackageName,
+                            android.R.style.Theme, null, "Test", 0, 0, 0, 0,
+                            token1.appToken.asBinder(), true, true, false,
+                            true, false, false);
+                });
+        token1.addStartingWindow(mPackageName,
+                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
+                false, false);
+        waitUntilHandlersIdle();
+        assertNoStartingWindow(token1);
+        assertHasStartingWindow(token2);
+    }
+
+    private WindowTestUtils.TestAppWindowToken createIsolatedTestAppWindowToken() {
+        final TaskStack taskStack = createTaskStackOnDisplay(mDisplayContent);
+        final Task task = createTaskInStack(taskStack, 0 /* userId */);
+        return createTestAppWindowTokenForGivenTask(task);
+    }
+
+    private WindowTestUtils.TestAppWindowToken createTestAppWindowTokenForGivenTask(Task task) {
+        final WindowTestUtils.TestAppWindowToken appToken =
+                WindowTestUtils.createTestAppWindowToken(mDisplayContent);
+        task.addChild(appToken, 0);
+        waitUntilHandlersIdle();
+        return appToken;
+    }
+
+    @Test
+    public void testTryTransferStartingWindowFromHiddenAboveToken() {
+        // Add two tasks on top of each other.
+        final WindowTestUtils.TestAppWindowToken tokenTop = createIsolatedTestAppWindowToken();
+        final WindowTestUtils.TestAppWindowToken tokenBottom =
+                createTestAppWindowTokenForGivenTask(tokenTop.getTask());
+
+        // Add a starting window.
+        tokenTop.addStartingWindow(mPackageName,
+                android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
+                false, false);
+        waitUntilHandlersIdle();
+
+        // Make the top one invisible, and try transferring the starting window from the top to the
+        // bottom one.
+        tokenTop.setVisibility(false, false);
+        tokenBottom.transferStartingWindowFromHiddenAboveTokenIfNeeded();
+
+        // Assert that the bottom window now has the starting window.
+        assertNoStartingWindow(tokenTop);
+        assertHasStartingWindow(tokenBottom);
+    }
+
+    @Test
     public void testTransitionAnimationPositionAndBounds() {
         final Rect stackBounds = new Rect(
                 0/* left */, 0 /* top */, 1000 /* right */, 1000 /* bottom */);
@@ -285,4 +413,19 @@
         assertEquals(expectedY, outPosition.y);
         assertEquals(expectedBounds, outBounds);
     }
+
+    private void assertHasStartingWindow(AppWindowToken atoken) {
+        assertNotNull(atoken.startingSurface);
+        assertNotNull(atoken.startingData);
+        assertNotNull(atoken.startingWindow);
+    }
+
+    private void assertNoStartingWindow(AppWindowToken atoken) {
+        assertNull(atoken.startingSurface);
+        assertNull(atoken.startingWindow);
+        assertNull(atoken.startingData);
+        atoken.forAllWindows(windowState -> {
+            assertFalse(windowState.getBaseType() == TYPE_APPLICATION_STARTING);
+        }, true);
+    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/AssistDataRequesterTest.java b/services/tests/wmtests/src/com/android/server/wm/AssistDataRequesterTest.java
index c6c1c526..2f90baa 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AssistDataRequesterTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AssistDataRequesterTest.java
@@ -22,6 +22,10 @@
 import static android.app.AppOpsManager.OP_ASSIST_STRUCTURE;
 import static android.graphics.Bitmap.Config.ARGB_8888;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertEquals;
@@ -32,9 +36,6 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 
 import android.app.AppOpsManager;
 import android.app.IActivityManager;
diff --git a/services/tests/servicestests/src/com/android/server/wm/BoundsAnimationControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/BoundsAnimationControllerTests.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/BoundsAnimationControllerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/BoundsAnimationControllerTests.java
diff --git a/services/tests/wmtests/src/com/android/server/wm/ClientLifecycleManagerTests.java b/services/tests/wmtests/src/com/android/server/wm/ClientLifecycleManagerTests.java
index f1d840d..28dd458 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ClientLifecycleManagerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ClientLifecycleManagerTests.java
@@ -16,10 +16,10 @@
 
 package com.android.server.wm;
 
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 
 import android.app.IApplicationThread;
 import android.app.servertransaction.ClientTransaction;
diff --git a/services/tests/servicestests/src/com/android/server/wm/DimmerTests.java b/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
similarity index 92%
rename from services/tests/servicestests/src/com/android/server/wm/DimmerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
index 991981f..ee1c8df 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DimmerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
@@ -16,16 +16,17 @@
 
 package com.android.server.wm;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
 
 import android.graphics.Rect;
 import android.platform.test.annotations.Presubmit;
@@ -145,7 +146,7 @@
     }
 
     @Test
-    public void testUpdateDimsAppliesSize() {
+    public void testUpdateDimsAppliesCrop() {
         mDimmer.dimAbove(mTransaction, 0.8f);
 
         int width = 100;
@@ -153,7 +154,7 @@
         Rect bounds = new Rect(0, 0, width, height);
         mDimmer.updateDims(mTransaction, bounds);
 
-        verify(mTransaction).setSize(getDimLayer(), width, height);
+        verify(mTransaction).setWindowCrop(getDimLayer(), width, height);
         verify(mTransaction).show(getDimLayer());
     }
 
@@ -242,13 +243,13 @@
         SurfaceControl dimLayer = getDimLayer();
         bounds.set(0, 0, 10, 10);
         mDimmer.updateDims(mTransaction, bounds);
+        verify(mTransaction).setWindowCrop(dimLayer, bounds.width(), bounds.height());
         verify(mTransaction, times(1)).show(dimLayer);
-        verify(mTransaction).setSize(dimLayer, bounds.width(), bounds.height());
         verify(mTransaction).setPosition(dimLayer, 0, 0);
 
         bounds.set(10, 10, 30, 30);
         mDimmer.updateDims(mTransaction, bounds);
-        verify(mTransaction).setSize(dimLayer, bounds.width(), bounds.height());
+        verify(mTransaction).setWindowCrop(dimLayer, bounds.width(), bounds.height());
         verify(mTransaction).setPosition(dimLayer, 10, 10);
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
similarity index 86%
rename from services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
rename to services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
index 228ece5..3b8d71d 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -16,10 +16,6 @@
 
 package com.android.server.wm;
 
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
@@ -33,6 +29,10 @@
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
 import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.WindowContainer.POSITION_TOP;
 import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_NORMAL;
 
@@ -43,10 +43,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
 
 import android.annotation.SuppressLint;
 import android.content.res.Configuration;
@@ -377,64 +373,6 @@
         verifySizes(displayContent, smallerWidth, smallerHeight, smallerDensity);
     }
 
-    /**
-     * This test enforces that alwaysOnTop stack is placed at proper position.
-     */
-    @Test
-    public void testAlwaysOnTopStackLocation() {
-        final TaskStack alwaysOnTopStack = createStackControllerOnStackOnDisplay(
-                WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD, mDisplayContent).mContainer;
-        final Task task = createTaskInStack(alwaysOnTopStack, 0 /* userId */);
-        alwaysOnTopStack.setAlwaysOnTop(true);
-        mDisplayContent.positionStackAt(POSITION_TOP, alwaysOnTopStack,
-                false /* includingParents */);
-        assertTrue(alwaysOnTopStack.isAlwaysOnTop());
-        // Ensure always on top state is synced to the children of the stack.
-        assertTrue(alwaysOnTopStack.getTopChild().isAlwaysOnTop());
-        assertEquals(alwaysOnTopStack, mDisplayContent.getTopStack());
-
-        final TaskStack pinnedStack = createStackControllerOnStackOnDisplay(
-                WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD, mDisplayContent).mContainer;
-        assertEquals(pinnedStack, mDisplayContent.getPinnedStack());
-        assertEquals(pinnedStack, mDisplayContent.getTopStack());
-
-        final TaskStack anotherAlwaysOnTopStack = createStackControllerOnStackOnDisplay(
-                WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD, mDisplayContent).mContainer;
-        anotherAlwaysOnTopStack.setAlwaysOnTop(true);
-        mDisplayContent.positionStackAt(POSITION_TOP, anotherAlwaysOnTopStack,
-                false /* includingParents */);
-        assertTrue(anotherAlwaysOnTopStack.isAlwaysOnTop());
-        int topPosition = mDisplayContent.getStacks().size() - 1;
-        // Ensure the new alwaysOnTop stack is put below the pinned stack, but on top of the
-        // existing alwaysOnTop stack.
-        assertEquals(anotherAlwaysOnTopStack, mDisplayContent.getStacks().get(topPosition - 1));
-
-        final TaskStack nonAlwaysOnTopStack = createStackControllerOnStackOnDisplay(
-                WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD, mDisplayContent).mContainer;
-        assertEquals(mDisplayContent, nonAlwaysOnTopStack.getDisplayContent());
-        topPosition = mDisplayContent.getStacks().size() - 1;
-        // Ensure the non-alwaysOnTop stack is put below the three alwaysOnTop stacks, but above the
-        // existing other non-alwaysOnTop stacks.
-        assertEquals(nonAlwaysOnTopStack, mDisplayContent.getStacks().get(topPosition - 3));
-
-        anotherAlwaysOnTopStack.setAlwaysOnTop(false);
-        mDisplayContent.positionStackAt(POSITION_TOP, anotherAlwaysOnTopStack,
-                false /* includingParents */);
-        assertFalse(anotherAlwaysOnTopStack.isAlwaysOnTop());
-        // Ensure, when always on top is turned off for a stack, the stack is put just below all
-        // other always on top stacks.
-        assertEquals(anotherAlwaysOnTopStack, mDisplayContent.getStacks().get(topPosition - 2));
-        anotherAlwaysOnTopStack.setAlwaysOnTop(true);
-
-        // Ensure always on top state changes properly when windowing mode changes.
-        anotherAlwaysOnTopStack.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
-        assertFalse(anotherAlwaysOnTopStack.isAlwaysOnTop());
-        assertEquals(anotherAlwaysOnTopStack, mDisplayContent.getStacks().get(topPosition - 2));
-        anotherAlwaysOnTopStack.setWindowingMode(WINDOWING_MODE_FREEFORM);
-        assertTrue(anotherAlwaysOnTopStack.isAlwaysOnTop());
-        assertEquals(anotherAlwaysOnTopStack, mDisplayContent.getStacks().get(topPosition - 1));
-    }
-
     @Test
     public void testDisplayCutout_rot0() {
         synchronized (mWm.getWindowManagerLock()) {
diff --git a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerInsetsTest.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyInsetsTests.java
similarity index 71%
rename from services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerInsetsTest.java
rename to services/tests/wmtests/src/com/android/server/wm/DisplayPolicyInsetsTests.java
index f024fe7..6767465 100644
--- a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerInsetsTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyInsetsTests.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.policy;
+package com.android.server.wm;
 
 import static android.view.Surface.ROTATION_0;
 import static android.view.Surface.ROTATION_180;
@@ -25,36 +25,24 @@
 
 import android.graphics.Rect;
 import android.platform.test.annotations.Presubmit;
-import android.view.Display;
 import android.view.DisplayInfo;
 
 import androidx.test.filters.SmallTest;
 
-import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ErrorCollector;
 
-/**
- * Build/Install/Run:
- *  atest WmTests:PhoneWindowManagerInsetsTest
- */
 @SmallTest
 @Presubmit
-public class PhoneWindowManagerInsetsTest extends PhoneWindowManagerTestBase {
+public class DisplayPolicyInsetsTests extends DisplayPolicyTestsBase {
 
     @Rule
     public final ErrorCollector mErrorCollector = new ErrorCollector();
 
-    @Before
-    public void setUp() throws Exception {
-        addStatusBar();
-        addNavigationBar();
-    }
-
     @Test
     public void portrait() {
-        DisplayInfo di = displayInfoForRotation(ROTATION_0, false /* withCutout */);
+        final DisplayInfo di = displayInfoForRotation(ROTATION_0, false /* withCutout */);
 
         verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
         verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
@@ -63,7 +51,7 @@
 
     @Test
     public void portrait_withCutout() {
-        DisplayInfo di = displayInfoForRotation(ROTATION_0, true /* withCutout */);
+        final DisplayInfo di = displayInfoForRotation(ROTATION_0, true /* withCutout */);
 
         verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
         verifyNonDecorInsets(di, 0, DISPLAY_CUTOUT_HEIGHT, 0, NAV_BAR_HEIGHT);
@@ -72,7 +60,7 @@
 
     @Test
     public void landscape() {
-        DisplayInfo di = displayInfoForRotation(ROTATION_90, false /* withCutout */);
+        final DisplayInfo di = displayInfoForRotation(ROTATION_90, false /* withCutout */);
 
         verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
         verifyNonDecorInsets(di, 0, 0, NAV_BAR_HEIGHT, 0);
@@ -81,7 +69,7 @@
 
     @Test
     public void landscape_withCutout() {
-        DisplayInfo di = displayInfoForRotation(ROTATION_90, true /* withCutout */);
+        final DisplayInfo di = displayInfoForRotation(ROTATION_90, true /* withCutout */);
 
         verifyStableInsets(di, DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
         verifyNonDecorInsets(di, DISPLAY_CUTOUT_HEIGHT, 0, NAV_BAR_HEIGHT, 0);
@@ -90,7 +78,7 @@
 
     @Test
     public void seascape() {
-        DisplayInfo di = displayInfoForRotation(ROTATION_270, false /* withCutout */);
+        final DisplayInfo di = displayInfoForRotation(ROTATION_270, false /* withCutout */);
 
         verifyStableInsets(di, NAV_BAR_HEIGHT, STATUS_BAR_HEIGHT, 0, 0);
         verifyNonDecorInsets(di, NAV_BAR_HEIGHT, 0, 0, 0);
@@ -99,7 +87,7 @@
 
     @Test
     public void seascape_withCutout() {
-        DisplayInfo di = displayInfoForRotation(ROTATION_270, true /* withCutout */);
+        final DisplayInfo di = displayInfoForRotation(ROTATION_270, true /* withCutout */);
 
         verifyStableInsets(di, NAV_BAR_HEIGHT, STATUS_BAR_HEIGHT, DISPLAY_CUTOUT_HEIGHT, 0);
         verifyNonDecorInsets(di, NAV_BAR_HEIGHT, 0, DISPLAY_CUTOUT_HEIGHT, 0);
@@ -108,7 +96,7 @@
 
     @Test
     public void upsideDown() {
-        DisplayInfo di = displayInfoForRotation(ROTATION_180, false /* withCutout */);
+        final DisplayInfo di = displayInfoForRotation(ROTATION_180, false /* withCutout */);
 
         verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT);
         verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT);
@@ -117,7 +105,7 @@
 
     @Test
     public void upsideDown_withCutout() {
-        DisplayInfo di = displayInfoForRotation(ROTATION_180, true /* withCutout */);
+        final DisplayInfo di = displayInfoForRotation(ROTATION_180, true /* withCutout */);
 
         verifyStableInsets(di, 0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT + DISPLAY_CUTOUT_HEIGHT);
         verifyNonDecorInsets(di, 0, 0, 0, NAV_BAR_HEIGHT + DISPLAY_CUTOUT_HEIGHT);
@@ -151,35 +139,39 @@
 
     private Rect getStableInsetsLw(DisplayInfo di) {
         Rect result = new Rect();
-        mPolicy.getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
+        mDisplayPolicy.getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
                 di.displayCutout, result);
         return result;
     }
 
     private Rect getNonDecorInsetsLw(DisplayInfo di) {
         Rect result = new Rect();
-        mPolicy.getNonDecorInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
+        mDisplayPolicy.getNonDecorInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
                 di.displayCutout, result);
         return result;
     }
 
     private int getNonDecorDisplayWidth(DisplayInfo di) {
-        return mPolicy.getNonDecorDisplayWidth(di.logicalWidth, di.logicalHeight, di.rotation,
-                0 /* ui */, Display.DEFAULT_DISPLAY, di.displayCutout);
+        return mDisplayPolicy.getNonDecorDisplayWidth(di.logicalWidth, di.logicalHeight,
+                di.rotation, 0 /* ui */, di.displayCutout);
     }
 
     private int getNonDecorDisplayHeight(DisplayInfo di) {
-        return mPolicy.getNonDecorDisplayHeight(di.logicalWidth, di.logicalHeight, di.rotation,
-                0 /* ui */, Display.DEFAULT_DISPLAY, di.displayCutout);
+        return mDisplayPolicy.getNonDecorDisplayHeight(di.logicalWidth, di.logicalHeight,
+                di.rotation, 0 /* ui */, di.displayCutout);
     }
 
     private int getConfigDisplayWidth(DisplayInfo di) {
-        return mPolicy.getConfigDisplayWidth(di.logicalWidth, di.logicalHeight, di.rotation,
-                0 /* ui */, Display.DEFAULT_DISPLAY, di.displayCutout);
+        return mDisplayPolicy.getConfigDisplayWidth(di.logicalWidth, di.logicalHeight,
+                di.rotation, 0 /* ui */, di.displayCutout);
     }
 
     private int getConfigDisplayHeight(DisplayInfo di) {
-        return mPolicy.getConfigDisplayHeight(di.logicalWidth, di.logicalHeight, di.rotation,
-                0 /* ui */, Display.DEFAULT_DISPLAY, di.displayCutout);
+        return mDisplayPolicy.getConfigDisplayHeight(di.logicalWidth, di.logicalHeight,
+                di.rotation, 0 /* ui */, di.displayCutout);
+    }
+
+    private static DisplayInfo displayInfoForRotation(int rotation, boolean withDisplayCutout) {
+        return displayInfoAndCutoutForRotation(rotation, withDisplayCutout).first;
     }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java
new file mode 100644
index 0000000..845a09f
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java
@@ -0,0 +1,451 @@
+/*
+ * 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.server.wm;
+
+import static android.view.Surface.ROTATION_0;
+import static android.view.Surface.ROTATION_270;
+import static android.view.Surface.ROTATION_90;
+import static android.view.View.SYSTEM_UI_FLAG_FULLSCREEN;
+import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
+import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.spy;
+
+import android.graphics.PixelFormat;
+import android.graphics.Rect;
+import android.platform.test.annotations.Presubmit;
+import android.util.Pair;
+import android.view.DisplayCutout;
+import android.view.DisplayInfo;
+import android.view.WindowManager;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.server.wm.utils.WmDisplayCutout;
+
+import org.junit.Before;
+import org.junit.Test;
+
+@SmallTest
+@Presubmit
+public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
+
+    private DisplayFrames mFrames;
+    private WindowState mWindow;
+    private int mRotation = ROTATION_0;
+    private boolean mHasDisplayCutout;
+
+    @Before
+    public void setUp() throws Exception {
+        updateDisplayFrames();
+
+        mWindow = spy(createWindow(null, TYPE_APPLICATION, "window"));
+        // We only test window frames set by DisplayPolicy, so here prevents computeFrameLw from
+        // changing those frames.
+        doNothing().when(mWindow).computeFrameLw();
+
+        final WindowManager.LayoutParams attrs = mWindow.mAttrs;
+        attrs.width = MATCH_PARENT;
+        attrs.height = MATCH_PARENT;
+        attrs.flags =
+                FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR | FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+        attrs.format = PixelFormat.TRANSLUCENT;
+    }
+
+    public void setRotation(int rotation) {
+        mRotation = rotation;
+        updateDisplayFrames();
+    }
+
+    public void addDisplayCutout() {
+        mHasDisplayCutout = true;
+        updateDisplayFrames();
+    }
+
+    private void updateDisplayFrames() {
+        final Pair<DisplayInfo, WmDisplayCutout> info = displayInfoAndCutoutForRotation(mRotation,
+                mHasDisplayCutout);
+        mFrames = new DisplayFrames(mDisplayContent.getDisplayId(), info.first, info.second);
+    }
+
+    @Test
+    public void addingWindow_doesNotTamperWithSysuiFlags() {
+        mWindow.mAttrs.flags |= FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+        addWindow(mWindow);
+
+        assertEquals(0, mWindow.mAttrs.systemUiVisibility);
+        assertEquals(0, mWindow.mAttrs.subtreeSystemUiVisibility);
+    }
+
+    @Test
+    public void layoutWindowLw_appDrawsBars() {
+        synchronized (mWm.mGlobalLock) {
+            mWindow.mAttrs.flags |= FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), 0, 0);
+            assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDecorFrame(), 0, 0);
+            assertInsetBy(mWindow.getDisplayFrameLw(), 0, 0, 0, 0);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_appWontDrawBars() {
+        synchronized (mWm.mGlobalLock) {
+            mWindow.mAttrs.flags &= ~FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), 0, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDecorFrame(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDisplayFrameLw(), 0, NAV_BAR_HEIGHT);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_appWontDrawBars_forceStatus() throws Exception {
+        synchronized (mWm.mGlobalLock) {
+            mWindow.mAttrs.flags &= ~FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+            mWindow.mAttrs.privateFlags |= PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), 0, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDecorFrame(), 0, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDisplayFrameLw(), 0, NAV_BAR_HEIGHT);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), 0, 0);
+            assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDecorFrame(), 0, 0);
+            assertInsetByTopBottom(mWindow.getDisplayFrameLw(), 0, 0);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_never() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+
+            mWindow.mAttrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), STATUS_BAR_HEIGHT, 0);
+            assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDecorFrame(), 0, 0);
+            assertInsetByTopBottom(mWindow.getDisplayFrameLw(), STATUS_BAR_HEIGHT, 0);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_layoutFullscreen() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+
+            mWindow.mAttrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), 0, 0);
+            assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDecorFrame(), 0, 0);
+            assertInsetBy(mWindow.getDisplayFrameLw(), 0, 0, 0, 0);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_fullscreen() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+
+            mWindow.mAttrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_FULLSCREEN;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), STATUS_BAR_HEIGHT, 0);
+            assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDecorFrame(), 0, 0);
+            assertInsetByTopBottom(mWindow.getDisplayFrameLw(), STATUS_BAR_HEIGHT, 0);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_fullscreenInCutout() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+
+            mWindow.mAttrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_FULLSCREEN;
+            mWindow.mAttrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), 0, 0);
+            assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDecorFrame(), 0, 0);
+            assertInsetByTopBottom(mWindow.getDisplayFrameLw(), 0, 0);
+        }
+    }
+
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_landscape() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+            setRotation(ROTATION_90);
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetBy(mWindow.getParentFrame(), DISPLAY_CUTOUT_HEIGHT, 0, 0, 0);
+            assertInsetBy(mWindow.getStableFrameLw(), 0, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
+            assertInsetBy(mWindow.getContentFrameLw(),
+                    DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
+            assertInsetBy(mWindow.getDecorFrame(), 0, 0, 0, 0);
+            assertInsetBy(mWindow.getDisplayFrameLw(), DISPLAY_CUTOUT_HEIGHT, 0, 0, 0);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_seascape() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+            setRotation(ROTATION_270);
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetBy(mWindow.getParentFrame(), 0, 0, DISPLAY_CUTOUT_HEIGHT, 0);
+            assertInsetBy(mWindow.getStableFrameLw(), NAV_BAR_HEIGHT, STATUS_BAR_HEIGHT, 0, 0);
+            assertInsetBy(mWindow.getContentFrameLw(),
+                    NAV_BAR_HEIGHT, STATUS_BAR_HEIGHT, DISPLAY_CUTOUT_HEIGHT, 0);
+            assertInsetBy(mWindow.getDecorFrame(), 0, 0, 0, 0);
+            assertInsetBy(mWindow.getDisplayFrameLw(), 0, 0, DISPLAY_CUTOUT_HEIGHT, 0);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_fullscreen_landscape() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+            setRotation(ROTATION_90);
+
+            mWindow.mAttrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetBy(mWindow.getParentFrame(), DISPLAY_CUTOUT_HEIGHT, 0, 0, 0);
+            assertInsetBy(mWindow.getStableFrameLw(), 0, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
+            assertInsetBy(mWindow.getContentFrameLw(),
+                    DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
+            assertInsetBy(mWindow.getDecorFrame(), 0, 0, 0, 0);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_floatingInScreen() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+
+            mWindow.mAttrs.flags = FLAG_LAYOUT_IN_SCREEN;
+            mWindow.mAttrs.type = TYPE_APPLICATION_OVERLAY;
+            mWindow.mAttrs.width = DISPLAY_WIDTH;
+            mWindow.mAttrs.height = DISPLAY_HEIGHT;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetByTopBottom(mWindow.getParentFrame(), 0, NAV_BAR_HEIGHT);
+            assertInsetByTopBottom(mWindow.getDisplayFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
+        }
+    }
+
+    @Test
+    public void layoutWindowLw_withDisplayCutout_fullscreenInCutout_landscape() {
+        synchronized (mWm.mGlobalLock) {
+            addDisplayCutout();
+            setRotation(ROTATION_90);
+
+            mWindow.mAttrs.subtreeSystemUiVisibility |= SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
+            mWindow.mAttrs.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+            addWindow(mWindow);
+
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+            mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
+
+            assertInsetBy(mWindow.getParentFrame(), 0, 0, 0, 0);
+            assertInsetBy(mWindow.getStableFrameLw(), 0, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
+            assertInsetBy(mWindow.getContentFrameLw(),
+                    DISPLAY_CUTOUT_HEIGHT, STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT, 0);
+            assertInsetBy(mWindow.getDecorFrame(), 0, 0, 0, 0);
+        }
+    }
+
+    @Test
+    public void layoutHint_appWindow() {
+        synchronized (mWm.mGlobalLock) {
+            // Initialize DisplayFrames
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+
+            final Rect outFrame = new Rect();
+            final Rect outContentInsets = new Rect();
+            final Rect outStableInsets = new Rect();
+            final Rect outOutsets = new Rect();
+            final DisplayCutout.ParcelableWrapper outDisplayCutout =
+                    new DisplayCutout.ParcelableWrapper();
+
+            mDisplayPolicy.getLayoutHintLw(mWindow.mAttrs, null, mFrames,
+                    false /* floatingStack */, outFrame, outContentInsets, outStableInsets,
+                    outOutsets, outDisplayCutout);
+
+            assertThat(outFrame, is(mFrames.mUnrestricted));
+            assertThat(outContentInsets, is(new Rect(0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT)));
+            assertThat(outStableInsets, is(new Rect(0, STATUS_BAR_HEIGHT, 0, NAV_BAR_HEIGHT)));
+            assertThat(outOutsets, is(new Rect()));
+            assertThat(outDisplayCutout, is(new DisplayCutout.ParcelableWrapper()));
+        }
+    }
+
+    @Test
+    public void layoutHint_appWindowInTask() {
+        synchronized (mWm.mGlobalLock) {
+            // Initialize DisplayFrames
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+
+            final Rect taskBounds = new Rect(100, 100, 200, 200);
+
+            final Rect outFrame = new Rect();
+            final Rect outContentInsets = new Rect();
+            final Rect outStableInsets = new Rect();
+            final Rect outOutsets = new Rect();
+            final DisplayCutout.ParcelableWrapper outDisplayCutout =
+                    new DisplayCutout.ParcelableWrapper();
+
+            mDisplayPolicy.getLayoutHintLw(mWindow.mAttrs, taskBounds, mFrames,
+                    false /* floatingStack */, outFrame, outContentInsets, outStableInsets,
+                    outOutsets, outDisplayCutout);
+
+            assertThat(outFrame, is(taskBounds));
+            assertThat(outContentInsets, is(new Rect()));
+            assertThat(outStableInsets, is(new Rect()));
+            assertThat(outOutsets, is(new Rect()));
+            assertThat(outDisplayCutout, is(new DisplayCutout.ParcelableWrapper()));
+        }
+    }
+
+    @Test
+    public void layoutHint_appWindowInTask_outsideContentFrame() {
+        synchronized (mWm.mGlobalLock) {
+            // Initialize DisplayFrames
+            mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
+
+            // Task is in the nav bar area (usually does not happen, but this is similar enough to
+            // the possible overlap with the IME)
+            final Rect taskBounds = new Rect(100, mFrames.mContent.bottom + 1,
+                    200, mFrames.mContent.bottom + 10);
+
+            final Rect outFrame = new Rect();
+            final Rect outContentInsets = new Rect();
+            final Rect outStableInsets = new Rect();
+            final Rect outOutsets = new Rect();
+            final DisplayCutout.ParcelableWrapper outDisplayCutout =
+                    new DisplayCutout.ParcelableWrapper();
+
+            mDisplayPolicy.getLayoutHintLw(mWindow.mAttrs, taskBounds, mFrames,
+                    true /* floatingStack */, outFrame, outContentInsets, outStableInsets,
+                    outOutsets, outDisplayCutout);
+
+            assertThat(outFrame, is(taskBounds));
+            assertThat(outContentInsets, is(new Rect()));
+            assertThat(outStableInsets, is(new Rect()));
+            assertThat(outOutsets, is(new Rect()));
+            assertThat(outDisplayCutout, is(new DisplayCutout.ParcelableWrapper()));
+        }
+    }
+
+    /**
+     * Asserts that {@code actual} is inset by the given amounts from the full display rect.
+     *
+     * Convenience wrapper for when only the top and bottom inset are non-zero.
+     */
+    private void assertInsetByTopBottom(Rect actual, int expectedInsetTop,
+            int expectedInsetBottom) {
+        assertInsetBy(actual, 0, expectedInsetTop, 0, expectedInsetBottom);
+    }
+
+    /** Asserts that {@code actual} is inset by the given amounts from the full display rect. */
+    private void assertInsetBy(Rect actual, int expectedInsetLeft, int expectedInsetTop,
+            int expectedInsetRight, int expectedInsetBottom) {
+        assertEquals(new Rect(expectedInsetLeft, expectedInsetTop,
+                mFrames.mDisplayWidth - expectedInsetRight,
+                mFrames.mDisplayHeight - expectedInsetBottom), actual);
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java
new file mode 100644
index 0000000..8349ac7f
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java
@@ -0,0 +1,199 @@
+/*
+ * 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.server.wm;
+
+import static android.view.View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
+import static android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND;
+import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
+import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
+import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
+
+import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_BOTTOM;
+import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_RIGHT;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.graphics.PixelFormat;
+import android.platform.test.annotations.Presubmit;
+import android.view.WindowManager;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+
+@SmallTest
+@Presubmit
+public class DisplayPolicyTests extends WindowTestsBase {
+
+    private WindowState createOpaqueFullscreen(boolean hasLightNavBar) {
+        final WindowState win = createWindow(null, TYPE_BASE_APPLICATION, "opaqueFullscreen");
+        final WindowManager.LayoutParams attrs = win.mAttrs;
+        attrs.width = MATCH_PARENT;
+        attrs.height = MATCH_PARENT;
+        attrs.flags =
+                FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR | FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
+        attrs.format = PixelFormat.OPAQUE;
+        attrs.systemUiVisibility = attrs.subtreeSystemUiVisibility = win.mSystemUiVisibility =
+                hasLightNavBar ? SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR : 0;
+        return win;
+    }
+
+    private WindowState createDimmingDialogWindow(boolean canBeImTarget) {
+        final WindowState win = spy(createWindow(null, TYPE_APPLICATION, "dimmingDialog"));
+        final WindowManager.LayoutParams attrs = win.mAttrs;
+        attrs.width = WRAP_CONTENT;
+        attrs.height = WRAP_CONTENT;
+        attrs.flags = FLAG_DIM_BEHIND | (canBeImTarget ? 0 : FLAG_ALT_FOCUSABLE_IM);
+        attrs.format = PixelFormat.TRANSLUCENT;
+        when(win.isDimming()).thenReturn(true);
+        return win;
+    }
+
+    private WindowState createInputMethodWindow(boolean visible, boolean drawNavBar,
+            boolean hasLightNavBar) {
+        final WindowState win = createWindow(null, TYPE_INPUT_METHOD, "inputMethod");
+        final WindowManager.LayoutParams attrs = win.mAttrs;
+        attrs.width = MATCH_PARENT;
+        attrs.height = MATCH_PARENT;
+        attrs.flags = FLAG_NOT_FOCUSABLE | FLAG_LAYOUT_IN_SCREEN
+                | (drawNavBar ? FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS : 0);
+        attrs.format = PixelFormat.TRANSPARENT;
+        attrs.systemUiVisibility = attrs.subtreeSystemUiVisibility = win.mSystemUiVisibility =
+                hasLightNavBar ? SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR : 0;
+        win.mHasSurface = visible;
+        return win;
+    }
+
+    @Test
+    public void testChooseNavigationColorWindowLw() {
+        final WindowState opaque = createOpaqueFullscreen(false);
+
+        final WindowState dimmingImTarget = createDimmingDialogWindow(true);
+        final WindowState dimmingNonImTarget = createDimmingDialogWindow(false);
+
+        final WindowState visibleIme = createInputMethodWindow(true, true, false);
+        final WindowState invisibleIme = createInputMethodWindow(false, true, false);
+        final WindowState imeNonDrawNavBar = createInputMethodWindow(true, false, false);
+
+        // If everything is null, return null
+        assertNull(null, DisplayPolicy.chooseNavigationColorWindowLw(
+                null, null, null, NAV_BAR_BOTTOM));
+
+        assertEquals(opaque, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, opaque, null, NAV_BAR_BOTTOM));
+        assertEquals(dimmingImTarget, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, dimmingImTarget, null, NAV_BAR_BOTTOM));
+        assertEquals(dimmingNonImTarget, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, dimmingNonImTarget, null, NAV_BAR_BOTTOM));
+
+        assertEquals(visibleIme, DisplayPolicy.chooseNavigationColorWindowLw(
+                null, null, visibleIme, NAV_BAR_BOTTOM));
+        assertEquals(visibleIme, DisplayPolicy.chooseNavigationColorWindowLw(
+                null, dimmingImTarget, visibleIme, NAV_BAR_BOTTOM));
+        assertEquals(dimmingNonImTarget, DisplayPolicy.chooseNavigationColorWindowLw(
+                null, dimmingNonImTarget, visibleIme, NAV_BAR_BOTTOM));
+        assertEquals(visibleIme, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, opaque, visibleIme, NAV_BAR_BOTTOM));
+        assertEquals(visibleIme, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, dimmingImTarget, visibleIme, NAV_BAR_BOTTOM));
+        assertEquals(dimmingNonImTarget, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, dimmingNonImTarget, visibleIme, NAV_BAR_BOTTOM));
+
+        assertEquals(opaque, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, opaque, invisibleIme, NAV_BAR_BOTTOM));
+        assertEquals(opaque, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, opaque, invisibleIme, NAV_BAR_BOTTOM));
+        assertEquals(opaque, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, opaque, visibleIme, NAV_BAR_RIGHT));
+
+        // Only IME windows that have FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS should be navigation color
+        // window.
+        assertEquals(opaque, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, opaque, imeNonDrawNavBar, NAV_BAR_BOTTOM));
+        assertEquals(dimmingImTarget, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, dimmingImTarget, imeNonDrawNavBar, NAV_BAR_BOTTOM));
+        assertEquals(dimmingNonImTarget, DisplayPolicy.chooseNavigationColorWindowLw(
+                opaque, dimmingNonImTarget, imeNonDrawNavBar, NAV_BAR_BOTTOM));
+    }
+
+    @Test
+    public void testUpdateLightNavigationBarLw() {
+        final WindowState opaqueDarkNavBar = createOpaqueFullscreen(false);
+        final WindowState opaqueLightNavBar = createOpaqueFullscreen(true);
+
+        final WindowState dimming = createDimmingDialogWindow(false);
+
+        final WindowState imeDrawDarkNavBar = createInputMethodWindow(true, true, false);
+        final WindowState imeDrawLightNavBar = createInputMethodWindow(true, true, true);
+
+        assertEquals(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
+                DisplayPolicy.updateLightNavigationBarLw(
+                        SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, null, null,
+                        null, null));
+
+        // Opaque top fullscreen window overrides SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR flag.
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                0, opaqueDarkNavBar, opaqueDarkNavBar, null, opaqueDarkNavBar));
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueDarkNavBar, opaqueDarkNavBar, null,
+                opaqueDarkNavBar));
+        assertEquals(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
+                DisplayPolicy.updateLightNavigationBarLw(0, opaqueLightNavBar,
+                        opaqueLightNavBar, null, opaqueLightNavBar));
+        assertEquals(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
+                DisplayPolicy.updateLightNavigationBarLw(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
+                        opaqueLightNavBar, opaqueLightNavBar, null, opaqueLightNavBar));
+
+        // Dimming window clears SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR.
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                0, opaqueDarkNavBar, dimming, null, dimming));
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                0, opaqueLightNavBar, dimming, null, dimming));
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueDarkNavBar, dimming, null, dimming));
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueLightNavBar, dimming, null, dimming));
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueLightNavBar, dimming, imeDrawLightNavBar,
+                dimming));
+
+        // IME window clears SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, null, null, imeDrawDarkNavBar,
+                imeDrawDarkNavBar));
+
+        // Even if the top fullscreen has SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, IME window wins.
+        assertEquals(0, DisplayPolicy.updateLightNavigationBarLw(
+                SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, opaqueLightNavBar, opaqueLightNavBar,
+                imeDrawDarkNavBar, imeDrawDarkNavBar));
+
+        // IME window should be able to use SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR.
+        assertEquals(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
+                DisplayPolicy.updateLightNavigationBarLw(0, opaqueDarkNavBar,
+                        opaqueDarkNavBar, imeDrawLightNavBar, imeDrawLightNavBar));
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTestsBase.java
new file mode 100644
index 0000000..1d63c57
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTestsBase.java
@@ -0,0 +1,184 @@
+/*
+ * 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.server.wm;
+
+import static android.util.DisplayMetrics.DENSITY_DEFAULT;
+import static android.view.DisplayCutout.BOUNDS_POSITION_BOTTOM;
+import static android.view.DisplayCutout.BOUNDS_POSITION_LEFT;
+import static android.view.DisplayCutout.BOUNDS_POSITION_RIGHT;
+import static android.view.DisplayCutout.BOUNDS_POSITION_TOP;
+import static android.view.Surface.ROTATION_0;
+import static android.view.Surface.ROTATION_180;
+import static android.view.Surface.ROTATION_270;
+import static android.view.Surface.ROTATION_90;
+
+import static com.android.server.wm.utils.CoordinateTransforms.transformPhysicalToLogicalCoordinates;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.ContextWrapper;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.graphics.Matrix;
+import android.graphics.RectF;
+import android.os.IBinder;
+import android.testing.TestableResources;
+import android.util.Pair;
+import android.view.DisplayCutout;
+import android.view.DisplayInfo;
+import android.view.Gravity;
+import android.view.View;
+import android.view.WindowManagerGlobal;
+
+import com.android.internal.R;
+import com.android.server.wm.utils.WmDisplayCutout;
+
+import org.junit.Before;
+
+public class DisplayPolicyTestsBase extends WindowTestsBase {
+
+    static final int DISPLAY_WIDTH = 500;
+    static final int DISPLAY_HEIGHT = 1000;
+    static final int DISPLAY_DENSITY = 320;
+
+    static final int STATUS_BAR_HEIGHT = 10;
+    static final int NAV_BAR_HEIGHT = 15;
+    static final int DISPLAY_CUTOUT_HEIGHT = 8;
+
+    DisplayPolicy mDisplayPolicy;
+
+    @Before
+    public void setUpBase() {
+        super.setUpBase();
+        mDisplayPolicy = spy(mDisplayContent.getDisplayPolicy());
+
+        final TestContextWrapper context =
+                new TestContextWrapper(mDisplayPolicy.getSystemUiContext());
+        final TestableResources resources = context.getResourceMocker();
+        resources.addOverride(R.dimen.status_bar_height_portrait, STATUS_BAR_HEIGHT);
+        resources.addOverride(R.dimen.status_bar_height_landscape, STATUS_BAR_HEIGHT);
+        resources.addOverride(R.dimen.navigation_bar_height, NAV_BAR_HEIGHT);
+        resources.addOverride(R.dimen.navigation_bar_height_landscape, NAV_BAR_HEIGHT);
+        resources.addOverride(R.dimen.navigation_bar_width, NAV_BAR_HEIGHT);
+        when(mDisplayPolicy.getSystemUiContext()).thenReturn(context);
+        when(mDisplayPolicy.hasNavigationBar()).thenReturn(true);
+
+        final int shortSizeDp =
+                Math.min(DISPLAY_WIDTH, DISPLAY_HEIGHT) * DENSITY_DEFAULT / DISPLAY_DENSITY;
+        final int longSizeDp =
+                Math.min(DISPLAY_WIDTH, DISPLAY_HEIGHT) * DENSITY_DEFAULT / DISPLAY_DENSITY;
+        mDisplayContent.getDisplayRotation().configure(
+                DISPLAY_WIDTH, DISPLAY_HEIGHT, shortSizeDp, longSizeDp);
+        mDisplayPolicy.configure(DISPLAY_WIDTH, DISPLAY_HEIGHT, shortSizeDp);
+        mDisplayPolicy.onConfigurationChanged();
+
+        mStatusBarWindow.mAttrs.gravity = Gravity.TOP;
+        addWindow(mStatusBarWindow);
+        mDisplayPolicy.mLastSystemUiFlags |= View.STATUS_BAR_TRANSPARENT;
+
+        mNavBarWindow.mAttrs.gravity = Gravity.BOTTOM;
+        addWindow(mNavBarWindow);
+        mDisplayPolicy.mLastSystemUiFlags |= View.NAVIGATION_BAR_TRANSPARENT;
+    }
+
+    void addWindow(WindowState win) {
+        mDisplayPolicy.adjustWindowParamsLw(win, win.mAttrs, true /* hasStatusBarPermission */);
+        assertEquals(WindowManagerGlobal.ADD_OKAY,
+                mDisplayPolicy.prepareAddWindowLw(win, win.mAttrs));
+        win.mHasSurface = true;
+    }
+
+    static Pair<DisplayInfo, WmDisplayCutout> displayInfoAndCutoutForRotation(int rotation,
+            boolean withDisplayCutout) {
+        final DisplayInfo info = new DisplayInfo();
+        WmDisplayCutout cutout = null;
+
+        final boolean flippedDimensions = rotation == ROTATION_90 || rotation == ROTATION_270;
+        info.logicalWidth = flippedDimensions ? DISPLAY_HEIGHT : DISPLAY_WIDTH;
+        info.logicalHeight = flippedDimensions ? DISPLAY_WIDTH : DISPLAY_HEIGHT;
+        info.rotation = rotation;
+        if (withDisplayCutout) {
+            cutout = WmDisplayCutout.computeSafeInsets(
+                    displayCutoutForRotation(rotation), info.logicalWidth,
+                    info.logicalHeight);
+            info.displayCutout = cutout.getDisplayCutout();
+        } else {
+            info.displayCutout = null;
+        }
+        return Pair.create(info, cutout);
+    }
+
+    private static DisplayCutout displayCutoutForRotation(int rotation) {
+        final RectF rectF =
+                new RectF(DISPLAY_WIDTH / 4, 0, DISPLAY_WIDTH * 3 / 4, DISPLAY_CUTOUT_HEIGHT);
+
+        final Matrix m = new Matrix();
+        transformPhysicalToLogicalCoordinates(rotation, DISPLAY_WIDTH, DISPLAY_HEIGHT, m);
+        m.mapRect(rectF);
+
+        int pos = -1;
+        switch (rotation) {
+            case ROTATION_0:
+                pos = BOUNDS_POSITION_TOP;
+                break;
+            case ROTATION_90:
+                pos = BOUNDS_POSITION_LEFT;
+                break;
+            case ROTATION_180:
+                pos = BOUNDS_POSITION_BOTTOM;
+                break;
+            case ROTATION_270:
+                pos = BOUNDS_POSITION_RIGHT;
+                break;
+        }
+
+        return DisplayCutout.fromBoundingRect((int) rectF.left, (int) rectF.top,
+                (int) rectF.right, (int) rectF.bottom, pos);
+    }
+
+    static class TestContextWrapper extends ContextWrapper {
+        private final TestableResources mResourceMocker;
+
+        TestContextWrapper(Context targetContext) {
+            super(targetContext);
+            mResourceMocker = new TestableResources(targetContext.getResources());
+        }
+
+        @Override
+        public int checkPermission(String permission, int pid, int uid) {
+            return PackageManager.PERMISSION_GRANTED;
+        }
+
+        @Override
+        public int checkPermission(String permission, int pid, int uid, IBinder callerToken) {
+            return PackageManager.PERMISSION_GRANTED;
+        }
+
+        @Override
+        public Resources getResources() {
+            return mResourceMocker.getResources();
+        }
+
+        TestableResources getResourceMocker() {
+            return mResourceMocker;
+        }
+    }
+
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayRotationTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayRotationTests.java
new file mode 100644
index 0000000..e988994
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayRotationTests.java
@@ -0,0 +1,823 @@
+/*
+ * 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.server.wm;
+
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.atMost;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.same;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.database.ContentObserver;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.PowerManagerInternal;
+import android.os.SystemClock;
+import android.platform.test.annotations.Presubmit;
+import android.provider.Settings;
+import android.view.Surface;
+
+import androidx.test.filters.FlakyTest;
+import androidx.test.filters.SmallTest;
+
+import com.android.internal.util.test.FakeSettingsProvider;
+import com.android.server.LocalServices;
+import com.android.server.UiThread;
+import com.android.server.policy.WindowManagerPolicy;
+import com.android.server.statusbar.StatusBarManagerInternal;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Test class for {@link DisplayRotation}.
+ *
+ * Build/Install/Run:
+ *  atest WmTests:DisplayRotationTests
+ */
+@SmallTest
+@Presubmit
+@FlakyTest(detail = "Confirm stable in post-submit before removing")
+public class DisplayRotationTests {
+    private static final long UI_HANDLER_WAIT_TIMEOUT_MS = 50;
+
+    private StatusBarManagerInternal mPreviousStatusBarManagerInternal;
+
+    private WindowManagerService mMockWm;
+    private DisplayContent mMockDisplayContent;
+    private DisplayPolicy mMockDisplayPolicy;
+    private Context mMockContext;
+    private Resources mMockRes;
+    private SensorManager mMockSensorManager;
+    private Sensor mFakeSensor;
+    private DisplayWindowSettings mMockDisplayWindowSettings;
+    private ContentResolver mMockResolver;
+    private FakeSettingsProvider mFakeSettingsProvider;
+    private StatusBarManagerInternal mMockStatusBarManagerInternal;
+
+    // Fields below are callbacks captured from test target.
+    private ContentObserver mShowRotationSuggestionsObserver;
+    private ContentObserver mAccelerometerRotationObserver;
+    private ContentObserver mUserRotationObserver;
+    private SensorEventListener mOrientationSensorListener;
+
+    private DisplayRotationBuilder mBuilder;
+
+    private DisplayRotation mTarget;
+
+    @Before
+    public void setUp() {
+        FakeSettingsProvider.clearSettingsProvider();
+
+        mMockWm = mock(WindowManagerService.class);
+        mMockWm.mPowerManagerInternal = mock(PowerManagerInternal.class);
+
+        mPreviousStatusBarManagerInternal = LocalServices.getService(
+                StatusBarManagerInternal.class);
+        LocalServices.removeServiceForTest(StatusBarManagerInternal.class);
+        mMockStatusBarManagerInternal = mock(StatusBarManagerInternal.class);
+        LocalServices.addService(StatusBarManagerInternal.class, mMockStatusBarManagerInternal);
+
+        mBuilder = new DisplayRotationBuilder();
+    }
+
+    @After
+    public void tearDown() {
+        LocalServices.removeServiceForTest(StatusBarManagerInternal.class);
+        if (mPreviousStatusBarManagerInternal != null) {
+            LocalServices.addService(StatusBarManagerInternal.class,
+                    mPreviousStatusBarManagerInternal);
+            mPreviousStatusBarManagerInternal = null;
+        }
+    }
+
+    // ================================
+    // Display Settings Related Tests
+    // ================================
+    @Test
+    public void testLocksUserRotation_LockRotation_DefaultDisplay() throws Exception {
+        mBuilder.build();
+
+        freezeRotation(Surface.ROTATION_180);
+
+        assertEquals(WindowManagerPolicy.USER_ROTATION_LOCKED, mTarget.getUserRotationMode());
+        assertEquals(Surface.ROTATION_180, mTarget.getUserRotation());
+
+        assertEquals(0, Settings.System.getInt(mMockResolver,
+                Settings.System.ACCELEROMETER_ROTATION));
+        assertEquals(Surface.ROTATION_180, Settings.System.getInt(mMockResolver,
+                Settings.System.USER_ROTATION));
+    }
+
+    @Test
+    public void testPersistsUserRotation_LockRotation_NonDefaultDisplay() throws Exception {
+        mBuilder.mIsDefaultDisplay = false;
+
+        mBuilder.build();
+
+        freezeRotation(Surface.ROTATION_180);
+
+        assertEquals(WindowManagerPolicy.USER_ROTATION_LOCKED, mTarget.getUserRotationMode());
+        assertEquals(Surface.ROTATION_180, mTarget.getUserRotation());
+
+        verify(mMockDisplayWindowSettings).setUserRotation(mMockDisplayContent,
+                WindowManagerPolicy.USER_ROTATION_LOCKED, Surface.ROTATION_180);
+    }
+
+    @Test
+    public void testPersistUserRotation_UnlockRotation_DefaultDisplay() throws Exception {
+        mBuilder.build();
+
+        thawRotation();
+
+        assertEquals(WindowManagerPolicy.USER_ROTATION_FREE, mTarget.getUserRotationMode());
+
+        assertEquals(1, Settings.System.getInt(mMockResolver,
+                Settings.System.ACCELEROMETER_ROTATION));
+    }
+
+    @Test
+    public void testPersistsUserRotation_UnlockRotation_NonDefaultDisplay() throws Exception {
+        mBuilder.mIsDefaultDisplay = false;
+
+        mBuilder.build();
+
+        thawRotation();
+
+        assertEquals(WindowManagerPolicy.USER_ROTATION_FREE, mTarget.getUserRotationMode());
+
+        verify(mMockDisplayWindowSettings).setUserRotation(same(mMockDisplayContent),
+                eq(WindowManagerPolicy.USER_ROTATION_FREE), anyInt());
+    }
+
+    @Test
+    public void testPersistsFixedToUserRotation() throws Exception {
+        mBuilder.build();
+
+        mTarget.setFixedToUserRotation(true);
+
+        verify(mMockDisplayWindowSettings).setFixedToUserRotation(mMockDisplayContent, true);
+
+        reset(mMockDisplayWindowSettings);
+        mTarget.setFixedToUserRotation(false);
+
+        verify(mMockDisplayWindowSettings).setFixedToUserRotation(mMockDisplayContent, false);
+    }
+
+    // ========================================
+    // Tests for User Rotation based Rotation
+    // ========================================
+    @Test
+    public void testReturnsUserRotation_UserRotationLocked_NoAppRequest()
+            throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        freezeRotation(Surface.ROTATION_180);
+
+        assertEquals(Surface.ROTATION_180, mTarget.rotationForOrientation(
+                ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_90));
+    }
+
+    @Test
+    public void testReturnsUserRotation_UserRotationLocked_CompatibleAppRequest()
+            throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        freezeRotation(Surface.ROTATION_180);
+
+        assertEquals(Surface.ROTATION_180, mTarget.rotationForOrientation(
+                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, Surface.ROTATION_90));
+    }
+
+    @Test
+    public void testReturnsSidesays_UserRotationLocked_IncompatibleAppRequest()
+            throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        freezeRotation(Surface.ROTATION_180);
+
+        final int rotation = mTarget.rotationForOrientation(
+                ActivityInfo.SCREEN_ORIENTATION_PORTRAIT, Surface.ROTATION_90);
+        assertTrue("Rotation should be sideways, but it's "
+                        + Surface.rotationToString(rotation),
+                rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270);
+    }
+
+    // =================================
+    // Tests for Sensor based Rotation
+    // =================================
+    private void verifyOrientationListenerRegistration(int numOfInvocation) {
+        final ArgumentCaptor<SensorEventListener> listenerCaptor = ArgumentCaptor.forClass(
+                SensorEventListener.class);
+        verify(mMockSensorManager, times(numOfInvocation)).registerListener(
+                listenerCaptor.capture(),
+                same(mFakeSensor),
+                anyInt(),
+                any());
+        if (numOfInvocation > 0) {
+            mOrientationSensorListener = listenerCaptor.getValue();
+        }
+    }
+
+    @Test
+    public void testNotEnablesSensor_AutoRotationNotSupported() throws Exception {
+        mBuilder.setSupportAutoRotation(false).build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        thawRotation();
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    @Test
+    public void testNotEnablesSensor_ScreenNotOn() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        thawRotation();
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(false);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    @Test
+    public void testNotEnablesSensor_NotAwake() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        thawRotation();
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(false);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    @Test
+    public void testNotEnablesSensor_KeyguardNotDrawnCompletely() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        thawRotation();
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(false);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    @Test
+    public void testNotEnablesSensor_WindowManagerNotDrawnCompletely() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        thawRotation();
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(false);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    @Test
+    public void testNotEnablesSensor_FixedUserRotation() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.setFixedToUserRotation(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    @Test
+    public void testNotEnablesSensor_ForceDefaultRotation() throws Exception {
+        mBuilder.build();
+        when(mMockRes.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation))
+                .thenReturn(true);
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    @Test
+    public void testNotEnablesSensor_ForceDefaultRotation_Car() throws Exception {
+        mBuilder.build();
+        when(mMockRes.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation))
+                .thenReturn(true);
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, true, false);
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    @Test
+    public void testNotEnablesSensor_ForceDefaultRotation_Tv() throws Exception {
+        mBuilder.build();
+        when(mMockRes.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation))
+                .thenReturn(true);
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, true);
+
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(0);
+    }
+
+    private void enableOrientationSensor() {
+        when(mMockDisplayPolicy.isScreenOnEarly()).thenReturn(true);
+        when(mMockDisplayPolicy.isAwake()).thenReturn(true);
+        when(mMockDisplayPolicy.isKeyguardDrawComplete()).thenReturn(true);
+        when(mMockDisplayPolicy.isWindowManagerDrawComplete()).thenReturn(true);
+        mTarget.updateOrientationListener();
+        verifyOrientationListenerRegistration(1);
+    }
+
+    private SensorEvent createSensorEvent(int rotation) throws Exception {
+        final Constructor<SensorEvent> constructor =
+                SensorEvent.class.getDeclaredConstructor(int.class);
+        constructor.setAccessible(true);
+        final SensorEvent event = constructor.newInstance(1);
+        event.sensor = mFakeSensor;
+        event.values[0] = rotation;
+        event.timestamp = SystemClock.elapsedRealtimeNanos();
+        return event;
+    }
+
+    @Test
+    public void testReturnsSensorRotation_RotationThawed() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        thawRotation();
+
+        enableOrientationSensor();
+
+        mOrientationSensorListener.onSensorChanged(createSensorEvent(Surface.ROTATION_90));
+
+        assertEquals(Surface.ROTATION_90, mTarget.rotationForOrientation(
+                SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_0));
+    }
+
+    private boolean waitForUiHandler() throws Exception {
+        final CountDownLatch latch = new CountDownLatch(1);
+        UiThread.getHandler().post(latch::countDown);
+        return latch.await(UI_HANDLER_WAIT_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+    }
+
+    @Test
+    public void testUpdatesRotationWhenSensorUpdates_RotationThawed() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        thawRotation();
+
+        enableOrientationSensor();
+
+        mOrientationSensorListener.onSensorChanged(createSensorEvent(Surface.ROTATION_90));
+        assertTrue(waitForUiHandler());
+
+        verify(mMockWm).updateRotation(false, false);
+    }
+
+    @Test
+    public void testNotifiesChoiceWhenSensorUpdates_RotationLocked() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        freezeRotation(Surface.ROTATION_270);
+
+        enableOrientationSensor();
+
+        mOrientationSensorListener.onSensorChanged(createSensorEvent(Surface.ROTATION_90));
+        assertTrue(waitForUiHandler());
+
+        verify(mMockStatusBarManagerInternal).onProposedRotationChanged(Surface.ROTATION_90, true);
+    }
+
+    @Test
+    public void testReturnsCompatibleRotation_SensorEnabled_RotationThawed() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        thawRotation();
+
+        enableOrientationSensor();
+
+        mOrientationSensorListener.onSensorChanged(createSensorEvent(Surface.ROTATION_180));
+
+        final int rotation = mTarget.rotationForOrientation(SCREEN_ORIENTATION_LANDSCAPE,
+                Surface.ROTATION_0);
+        assertTrue("Rotation should be sideways but it's "
+                + Surface.rotationToString(rotation),
+                rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270);
+    }
+
+    @Test
+    public void testReturnsUserRotation_SensorEnabled_RotationLocked() throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        freezeRotation(Surface.ROTATION_270);
+
+        enableOrientationSensor();
+
+        mOrientationSensorListener.onSensorChanged(createSensorEvent(Surface.ROTATION_180));
+
+        assertEquals(Surface.ROTATION_270, mTarget.rotationForOrientation(
+                SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_0));
+    }
+
+    // =================================
+    // Tests for Policy based Rotation
+    // =================================
+    @Test
+    public void testReturnsUserRotation_ForceDefaultRotation() throws Exception {
+        mBuilder.build();
+        when(mMockRes.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation))
+                .thenReturn(true);
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        assertEquals(Surface.ROTATION_0, mTarget.rotationForOrientation(SCREEN_ORIENTATION_PORTRAIT,
+                Surface.ROTATION_180));
+    }
+
+    @Test
+    public void testReturnsUserRotation_ForceDefaultRotation_Car() throws Exception {
+        mBuilder.build();
+        when(mMockRes.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation))
+                .thenReturn(true);
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, true, false);
+
+        assertEquals(Surface.ROTATION_0, mTarget.rotationForOrientation(SCREEN_ORIENTATION_PORTRAIT,
+                Surface.ROTATION_180));
+    }
+
+    @Test
+    public void testReturnsUserRotation_ForceDefaultRotation_Tv() throws Exception {
+        mBuilder.build();
+        when(mMockRes.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation))
+                .thenReturn(true);
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, true);
+
+        assertEquals(Surface.ROTATION_0, mTarget.rotationForOrientation(SCREEN_ORIENTATION_PORTRAIT,
+                Surface.ROTATION_180));
+    }
+
+    @Test
+    public void testReturnsLidOpenRotation_LidOpen() throws Exception {
+        mBuilder.setLidOpenRotation(Surface.ROTATION_90).build();
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        when(mMockDisplayPolicy.getLidState()).thenReturn(
+                WindowManagerPolicy.WindowManagerFuncs.LID_OPEN);
+
+        freezeRotation(Surface.ROTATION_270);
+
+        assertEquals(Surface.ROTATION_90, mTarget.rotationForOrientation(
+                SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_0));
+    }
+
+    @Test
+    public void testReturnsCarDockRotation_CarDockedMode() throws Exception {
+        mBuilder.setCarDockRotation(Surface.ROTATION_270).build();
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        when(mMockDisplayPolicy.getDockMode()).thenReturn(Intent.EXTRA_DOCK_STATE_CAR);
+
+        freezeRotation(Surface.ROTATION_90);
+
+        assertEquals(Surface.ROTATION_270, mTarget.rotationForOrientation(
+                SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_90));
+    }
+
+    @Test
+    public void testReturnsDeskDockRotation_DeskDockedMode() throws Exception {
+        mBuilder.setDeskDockRotation(Surface.ROTATION_270).build();
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        when(mMockDisplayPolicy.getDockMode()).thenReturn(Intent.EXTRA_DOCK_STATE_DESK);
+
+        freezeRotation(Surface.ROTATION_90);
+
+        assertEquals(Surface.ROTATION_270, mTarget.rotationForOrientation(
+                SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_90));
+    }
+
+    @Test
+    public void testReturnsUserRotation_FixedToUserRotation_IgnoreIncompatibleAppRequest()
+            throws Exception {
+        mBuilder.build();
+        configureDisplayRotation(SCREEN_ORIENTATION_PORTRAIT, false, false);
+
+        mTarget.setFixedToUserRotation(true);
+
+        freezeRotation(Surface.ROTATION_180);
+
+        final int rotation = mTarget.rotationForOrientation(
+                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, Surface.ROTATION_90);
+        assertEquals(Surface.ROTATION_180, rotation);
+    }
+
+    @Test
+    public void testReturnsUserRotation_NonDefaultDisplay() throws Exception {
+        mBuilder.setIsDefaultDisplay(false).build();
+        configureDisplayRotation(SCREEN_ORIENTATION_LANDSCAPE, false, false);
+
+        freezeRotation(Surface.ROTATION_90);
+
+        assertEquals(Surface.ROTATION_90, mTarget.rotationForOrientation(
+                SCREEN_ORIENTATION_UNSPECIFIED, Surface.ROTATION_0));
+    }
+
+    /**
+     * Call {@link DisplayRotation#configure(int, int, int, int)} to configure {@link #mTarget}
+     * according to given parameters.
+     */
+    private void configureDisplayRotation(int displayOrientation, boolean isCar, boolean isTv) {
+        final int width;
+        final int height;
+        switch (displayOrientation) {
+            case SCREEN_ORIENTATION_LANDSCAPE:
+                width = 1920;
+                height = 1080;
+                break;
+            case SCREEN_ORIENTATION_PORTRAIT:
+                width = 1080;
+                height = 1920;
+                break;
+            default:
+                throw new IllegalArgumentException("displayOrientation needs to be either landscape"
+                        + " or portrait, but we got "
+                        + ActivityInfo.screenOrientationToString(displayOrientation));
+        }
+
+        final PackageManager mockPackageManager = mock(PackageManager.class);
+        when(mMockContext.getPackageManager()).thenReturn(mockPackageManager);
+        when(mockPackageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE))
+                .thenReturn(isCar);
+        when(mockPackageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK))
+                .thenReturn(isTv);
+
+        final int shortSizeDp = (isCar || isTv) ? 540 : 720;
+        final int longSizeDp = 960;
+        mTarget.configure(width, height, shortSizeDp, longSizeDp);
+    }
+
+    private void freezeRotation(int rotation) {
+        mTarget.freezeRotation(rotation);
+
+        if (mTarget.isDefaultDisplay) {
+            mAccelerometerRotationObserver.onChange(false);
+            mUserRotationObserver.onChange(false);
+        }
+    }
+
+    private void thawRotation() {
+        mTarget.thawRotation();
+
+        if (mTarget.isDefaultDisplay) {
+            mAccelerometerRotationObserver.onChange(false);
+            mUserRotationObserver.onChange(false);
+        }
+    }
+
+    private class DisplayRotationBuilder {
+        private boolean mIsDefaultDisplay = true;
+        private boolean mSupportAutoRotation = true;
+
+        private int mLidOpenRotation = WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT;
+        private int mCarDockRotation;
+        private int mDeskDockRotation;
+        private int mUndockedHdmiRotation;
+
+        private DisplayRotationBuilder setIsDefaultDisplay(boolean isDefaultDisplay) {
+            mIsDefaultDisplay = isDefaultDisplay;
+            return this;
+        }
+
+        private DisplayRotationBuilder setSupportAutoRotation(boolean supportAutoRotation) {
+            mSupportAutoRotation = supportAutoRotation;
+            return this;
+        }
+
+        private DisplayRotationBuilder setLidOpenRotation(int rotation) {
+            mLidOpenRotation = rotation;
+            return this;
+        }
+
+        private DisplayRotationBuilder setCarDockRotation(int rotation) {
+            mCarDockRotation = rotation;
+            return this;
+        }
+
+        private DisplayRotationBuilder setDeskDockRotation(int rotation) {
+            mDeskDockRotation = rotation;
+            return this;
+        }
+
+        private DisplayRotationBuilder setUndockedHdmiRotation(int rotation) {
+            mUndockedHdmiRotation = rotation;
+            return this;
+        }
+
+        private void captureObservers() {
+            ArgumentCaptor<ContentObserver> captor = ArgumentCaptor.forClass(
+                    ContentObserver.class);
+            verify(mMockResolver, atMost(1)).registerContentObserver(
+                    eq(Settings.Secure.getUriFor(Settings.Secure.SHOW_ROTATION_SUGGESTIONS)),
+                    anyBoolean(),
+                    captor.capture(),
+                    anyInt());
+            if (!captor.getAllValues().isEmpty()) {
+                mShowRotationSuggestionsObserver = captor.getValue();
+            }
+
+            captor = ArgumentCaptor.forClass(ContentObserver.class);
+            verify(mMockResolver, atMost(1)).registerContentObserver(
+                    eq(Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION)),
+                    anyBoolean(),
+                    captor.capture(),
+                    anyInt());
+            if (!captor.getAllValues().isEmpty()) {
+                mAccelerometerRotationObserver = captor.getValue();
+            }
+
+            captor = ArgumentCaptor.forClass(ContentObserver.class);
+            verify(mMockResolver, atMost(1)).registerContentObserver(
+                    eq(Settings.System.getUriFor(Settings.System.USER_ROTATION)),
+                    anyBoolean(),
+                    captor.capture(),
+                    anyInt());
+            if (!captor.getAllValues().isEmpty()) {
+                mUserRotationObserver = captor.getValue();
+            }
+        }
+
+        private Sensor createSensor(int type) throws Exception {
+            Constructor<Sensor> constr = Sensor.class.getDeclaredConstructor();
+            constr.setAccessible(true);
+            Sensor sensor = constr.newInstance();
+
+            setSensorType(sensor, type);
+            setSensorField(sensor, "mName", "Mock " + sensor.getStringType() + "/" + type);
+            setSensorField(sensor, "mVendor", "Mock Vendor");
+            setSensorField(sensor, "mVersion", 1);
+            setSensorField(sensor, "mHandle", -1);
+            setSensorField(sensor, "mMaxRange", 10);
+            setSensorField(sensor, "mResolution", 1);
+            setSensorField(sensor, "mPower", 1);
+            setSensorField(sensor, "mMinDelay", 1000);
+            setSensorField(sensor, "mMaxDelay", 1000000000);
+            setSensorField(sensor, "mFlags", 0);
+            setSensorField(sensor, "mId", -1);
+
+            return sensor;
+        }
+
+        private void setSensorType(Sensor sensor, int type) throws Exception {
+            Method setter = Sensor.class.getDeclaredMethod("setType", Integer.TYPE);
+            setter.setAccessible(true);
+            setter.invoke(sensor, type);
+        }
+
+        private void setSensorField(Sensor sensor, String fieldName, Object value)
+                throws Exception {
+            Field field = Sensor.class.getDeclaredField(fieldName);
+            field.setAccessible(true);
+            field.set(sensor, value);
+        }
+
+        private int convertRotationToDegrees(@Surface.Rotation int rotation) {
+            switch (rotation) {
+                case Surface.ROTATION_0:
+                    return 0;
+                case Surface.ROTATION_90:
+                    return 90;
+                case Surface.ROTATION_180:
+                    return 180;
+                case Surface.ROTATION_270:
+                    return 270;
+                default:
+                    return -1;
+            }
+        }
+
+        private void build() throws Exception {
+            mMockContext = mock(Context.class);
+
+            mMockDisplayContent = mock(WindowTestUtils.TestDisplayContent.class);
+            mMockDisplayContent.isDefaultDisplay = mIsDefaultDisplay;
+
+            mMockDisplayPolicy = mock(DisplayPolicy.class);
+
+            mMockRes = mock(Resources.class);
+            when(mMockContext.getResources()).thenReturn((mMockRes));
+            when(mMockRes.getBoolean(com.android.internal.R.bool.config_supportAutoRotation))
+                    .thenReturn(mSupportAutoRotation);
+            when(mMockRes.getInteger(com.android.internal.R.integer.config_lidOpenRotation))
+                    .thenReturn(convertRotationToDegrees(mLidOpenRotation));
+            when(mMockRes.getInteger(com.android.internal.R.integer.config_carDockRotation))
+                    .thenReturn(convertRotationToDegrees(mCarDockRotation));
+            when(mMockRes.getInteger(com.android.internal.R.integer.config_deskDockRotation))
+                    .thenReturn(convertRotationToDegrees(mDeskDockRotation));
+            when(mMockRes.getInteger(com.android.internal.R.integer.config_undockedHdmiRotation))
+                    .thenReturn(convertRotationToDegrees(mUndockedHdmiRotation));
+
+            mMockSensorManager = mock(SensorManager.class);
+            when(mMockContext.getSystemService(Context.SENSOR_SERVICE))
+                    .thenReturn(mMockSensorManager);
+            mFakeSensor = createSensor(Sensor.TYPE_DEVICE_ORIENTATION);
+            when(mMockSensorManager.getSensorList(Sensor.TYPE_DEVICE_ORIENTATION)).thenReturn(
+                    Collections.singletonList(mFakeSensor));
+
+            mMockResolver = mock(ContentResolver.class);
+            when(mMockContext.getContentResolver()).thenReturn(mMockResolver);
+            mFakeSettingsProvider = new FakeSettingsProvider();
+            when(mMockResolver.acquireProvider(Settings.AUTHORITY))
+                    .thenReturn(mFakeSettingsProvider.getIContentProvider());
+
+            mMockDisplayWindowSettings = mock(DisplayWindowSettings.class);
+            mTarget = new DisplayRotation(mMockWm, mMockDisplayContent, mMockDisplayPolicy,
+                    mMockDisplayWindowSettings, mMockContext, new Object());
+
+            captureObservers();
+        }
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayWindowSettingsTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsTests.java
similarity index 91%
rename from services/tests/servicestests/src/com/android/server/wm/DisplayWindowSettingsTests.java
rename to services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsTests.java
index b823e70..8e881b5 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DisplayWindowSettingsTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsTests.java
@@ -21,13 +21,19 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Matchers.eq;
 
 import android.app.WindowConfiguration;
 import android.platform.test.annotations.Presubmit;
@@ -378,6 +384,33 @@
                 mSecondaryDisplay.getDisplayRotation().getUserRotation());
     }
 
+    @Test
+    public void testNotFixedToUserRotationByDefault() {
+        mTarget.setUserRotation(mPrimaryDisplay, WindowManagerPolicy.USER_ROTATION_LOCKED,
+                Surface.ROTATION_0);
+
+        final DisplayRotation displayRotation = mock(DisplayRotation.class);
+        mPrimaryDisplay = spy(mPrimaryDisplay);
+        when(mPrimaryDisplay.getDisplayRotation()).thenReturn(displayRotation);
+
+        mTarget.applySettingsToDisplayLocked(mPrimaryDisplay);
+
+        verify(displayRotation).restoreSettings(anyInt(), anyInt(), eq(false));
+    }
+
+    @Test
+    public void testSetFixedToUserRotation() {
+        mTarget.setFixedToUserRotation(mPrimaryDisplay, true);
+
+        final DisplayRotation displayRotation = mock(DisplayRotation.class);
+        mPrimaryDisplay = spy(mPrimaryDisplay);
+        when(mPrimaryDisplay.getDisplayRotation()).thenReturn(displayRotation);
+
+        applySettingsToDisplayByNewInstance(mPrimaryDisplay);
+
+        verify(displayRotation).restoreSettings(anyInt(), anyInt(), eq(true));
+    }
+
     private static void assertOverscan(DisplayContent display, int left, int top, int right,
             int bottom) {
         final DisplayInfo info = display.getDisplayInfo();
diff --git a/services/tests/wmtests/src/com/android/server/wm/DockedStackDividerControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/DockedStackDividerControllerTests.java
new file mode 100644
index 0000000..3206208
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/DockedStackDividerControllerTests.java
@@ -0,0 +1,88 @@
+/*
+ * 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.server.wm;
+
+import static android.view.WindowManager.DOCKED_BOTTOM;
+import static android.view.WindowManager.DOCKED_LEFT;
+import static android.view.WindowManager.DOCKED_RIGHT;
+import static android.view.WindowManager.DOCKED_TOP;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_BOTTOM;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_LEFT;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_RIGHT;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.platform.test.annotations.Presubmit;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+
+@SmallTest
+@Presubmit
+public class DockedStackDividerControllerTests {
+
+    @Test
+    public void testIsDockSideAllowedDockTop() {
+        // Docked top is always allowed
+        assertTrue(DockedStackDividerController.isDockSideAllowed(DOCKED_TOP, DOCKED_LEFT,
+                NAV_BAR_BOTTOM, true /* navigationBarCanMove */));
+        assertTrue(DockedStackDividerController.isDockSideAllowed(DOCKED_TOP, DOCKED_LEFT,
+                NAV_BAR_BOTTOM, false /* navigationBarCanMove */));
+    }
+
+    @Test
+    public void testIsDockSideAllowedDockBottom() {
+        // Cannot dock bottom
+        assertFalse(DockedStackDividerController.isDockSideAllowed(DOCKED_BOTTOM, DOCKED_LEFT,
+                NAV_BAR_BOTTOM, true /* navigationBarCanMove */));
+    }
+
+    @Test
+    public void testIsDockSideAllowedNavigationBarMovable() {
+        assertFalse(DockedStackDividerController.isDockSideAllowed(DOCKED_LEFT, DOCKED_LEFT,
+                NAV_BAR_BOTTOM, true /* navigationBarCanMove */));
+        assertFalse(DockedStackDividerController.isDockSideAllowed(DOCKED_LEFT, DOCKED_LEFT,
+                NAV_BAR_LEFT, true /* navigationBarCanMove */));
+        assertTrue(DockedStackDividerController.isDockSideAllowed(DOCKED_LEFT, DOCKED_LEFT,
+                NAV_BAR_RIGHT, true /* navigationBarCanMove */));
+        assertFalse(DockedStackDividerController.isDockSideAllowed(DOCKED_RIGHT, DOCKED_LEFT,
+                NAV_BAR_BOTTOM, true /* navigationBarCanMove */));
+        assertFalse(DockedStackDividerController.isDockSideAllowed(DOCKED_RIGHT, DOCKED_LEFT,
+                NAV_BAR_RIGHT, true /* navigationBarCanMove */));
+        assertTrue(DockedStackDividerController.isDockSideAllowed(DOCKED_RIGHT, DOCKED_LEFT,
+                NAV_BAR_LEFT, true /* navigationBarCanMove */));
+    }
+
+    @Test
+    public void testIsDockSideAllowedNavigationBarNotMovable() {
+        // Navigation bar is not movable such as tablets
+        assertTrue(DockedStackDividerController.isDockSideAllowed(DOCKED_LEFT, DOCKED_LEFT,
+                NAV_BAR_BOTTOM, false /* navigationBarCanMove */));
+        assertTrue(DockedStackDividerController.isDockSideAllowed(DOCKED_LEFT, DOCKED_TOP,
+                NAV_BAR_BOTTOM, false /* navigationBarCanMove */));
+        assertFalse(DockedStackDividerController.isDockSideAllowed(DOCKED_LEFT, DOCKED_RIGHT,
+                NAV_BAR_BOTTOM, false /* navigationBarCanMove */));
+        assertFalse(DockedStackDividerController.isDockSideAllowed(DOCKED_RIGHT, DOCKED_LEFT,
+                NAV_BAR_BOTTOM, false /* navigationBarCanMove */));
+        assertFalse(DockedStackDividerController.isDockSideAllowed(DOCKED_RIGHT, DOCKED_TOP,
+                NAV_BAR_BOTTOM, false /* navigationBarCanMove */));
+        assertTrue(DockedStackDividerController.isDockSideAllowed(DOCKED_RIGHT, DOCKED_RIGHT,
+                NAV_BAR_BOTTOM, false /* navigationBarCanMove */));
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/wm/DragDropControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java
similarity index 93%
rename from services/tests/servicestests/src/com/android/server/wm/DragDropControllerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java
index 55e766d..f1c6eab 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DragDropControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java
@@ -20,13 +20,14 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
 
 import android.content.ClipData;
 import android.graphics.PixelFormat;
@@ -171,7 +172,7 @@
         try {
             final SurfaceControl surface = new SurfaceControl.Builder(appSession)
                     .setName("drag surface")
-                    .setSize(100, 100)
+                    .setBufferSize(100, 100)
                     .setFormat(PixelFormat.TRANSLUCENT)
                     .build();
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java b/services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java
new file mode 100644
index 0000000..88215449
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java
@@ -0,0 +1,84 @@
+/*
+ * 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.server.wm;
+
+import static android.view.InsetsState.TYPE_TOP_BAR;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
+
+import static org.junit.Assert.assertEquals;
+
+import android.graphics.Insets;
+import android.graphics.Rect;
+import android.platform.test.annotations.Presubmit;
+import android.view.InsetsSource;
+
+import androidx.test.filters.FlakyTest;
+import androidx.test.filters.SmallTest;
+
+import org.junit.Before;
+import org.junit.Test;
+
+@SmallTest
+@FlakyTest(detail = "Promote once confirmed non-flaky")
+@Presubmit
+public class InsetsSourceProviderTest extends WindowTestsBase {
+
+    private InsetsSource mSource = new InsetsSource(TYPE_TOP_BAR);
+    private InsetsSourceProvider mProvider;
+
+    @Before
+    public void setUp() throws Exception {
+        mSource.setVisible(true);
+        mProvider = new InsetsSourceProvider(mSource,
+                mDisplayContent.getInsetsStateController(), mDisplayContent);
+    }
+
+    @Test
+    public void testPostLayout() {
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        topBar.getFrameLw().set(0, 0, 500, 100);
+        topBar.mHasSurface = true;
+        mProvider.setWindow(topBar, null);
+        mProvider.onPostLayout();
+        assertEquals(new Rect(0, 0, 500, 100), mProvider.getSource().getFrame());
+        assertEquals(Insets.of(0, 100, 0, 0),
+                mProvider.getSource().calculateInsets(new Rect(0, 0, 500, 500),
+                        false /* ignoreVisibility */));
+    }
+
+    @Test
+    public void testPostLayout_invisible() {
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        topBar.getFrameLw().set(0, 0, 500, 100);
+        mProvider.setWindow(topBar, null);
+        mProvider.onPostLayout();
+        assertEquals(Insets.NONE, mProvider.getSource().calculateInsets(new Rect(0, 0, 500, 500),
+                        false /* ignoreVisibility */));
+    }
+
+    @Test
+    public void testPostLayout_frameProvider() {
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        topBar.getFrameLw().set(0, 0, 500, 100);
+        mProvider.setWindow(topBar,
+                (displayFrames, windowState, rect) -> {
+                    rect.set(10, 10, 20, 20);
+                });
+        mProvider.onPostLayout();
+        assertEquals(new Rect(10, 10, 20, 20), mProvider.getSource().getFrame());
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
new file mode 100644
index 0000000..11526a8
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
@@ -0,0 +1,108 @@
+/*
+ * 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.server.wm;
+
+import static android.view.InsetsState.TYPE_IME;
+import static android.view.InsetsState.TYPE_NAVIGATION_BAR;
+import static android.view.InsetsState.TYPE_TOP_BAR;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import android.platform.test.annotations.Presubmit;
+import android.view.InsetsSourceControl;
+import android.view.InsetsState;
+
+import androidx.test.filters.FlakyTest;
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+
+@SmallTest
+@FlakyTest(detail = "Promote once confirmed non-flaky")
+@Presubmit
+public class InsetsStateControllerTest extends WindowTestsBase {
+
+    @Test
+    public void testStripForDispatch_notOwn() {
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        getController().getSourceProvider(TYPE_TOP_BAR).setWindow(topBar, null);
+        topBar.setInsetProvider(getController().getSourceProvider(TYPE_TOP_BAR));
+        assertNotNull(getController().getInsetsForDispatch(app).getSource(TYPE_TOP_BAR));
+    }
+
+    @Test
+    public void testStripForDispatch_own() {
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        mDisplayContent.getInsetsStateController().getSourceProvider(TYPE_TOP_BAR)
+                .setWindow(topBar, null);
+        topBar.setInsetProvider(getController().getSourceProvider(TYPE_TOP_BAR));
+        assertEquals(new InsetsState(), getController().getInsetsForDispatch(topBar));
+    }
+
+    @Test
+    public void testStripForDispatch_navBar() {
+        final WindowState navBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        final WindowState ime = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        getController().getSourceProvider(TYPE_TOP_BAR).setWindow(topBar, null);
+        getController().getSourceProvider(TYPE_NAVIGATION_BAR).setWindow(navBar, null);
+        getController().getSourceProvider(TYPE_IME).setWindow(ime, null);
+        assertEquals(new InsetsState(), getController().getInsetsForDispatch(navBar));
+    }
+
+    @Test
+    public void testBarControllingWinChanged() {
+        final WindowState navBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        getController().getSourceProvider(TYPE_TOP_BAR).setWindow(topBar, null);
+        getController().getSourceProvider(TYPE_NAVIGATION_BAR).setWindow(navBar, null);
+        getController().onBarControllingWindowChanged(app);
+        InsetsSourceControl[] controls = getController().getControlsForDispatch(app);
+        assertEquals(2, controls.length);
+    }
+
+    @Test
+    public void testControlRevoked() {
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        getController().getSourceProvider(TYPE_TOP_BAR).setWindow(topBar, null);
+        getController().onBarControllingWindowChanged(app);
+        assertNotNull(getController().getControlsForDispatch(app));
+        getController().onBarControllingWindowChanged(null);
+        assertNull(getController().getControlsForDispatch(app));
+    }
+
+    @Test
+    public void testControlRevoked_animation() {
+        final WindowState topBar = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "parentWindow");
+        getController().getSourceProvider(TYPE_TOP_BAR).setWindow(topBar, null);
+        getController().onBarControllingWindowChanged(app);
+        assertNotNull(getController().getControlsForDispatch(app));
+        topBar.cancelAnimation();
+        assertNull(getController().getControlsForDispatch(app));
+    }
+
+    private InsetsStateController getController() {
+        return mDisplayContent.getInsetsStateController();
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/LaunchParamsControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/LaunchParamsControllerTests.java
index f8d64e9..3720c85 100644
--- a/services/tests/wmtests/src/com/android/server/wm/LaunchParamsControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/LaunchParamsControllerTests.java
@@ -22,21 +22,21 @@
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.INVALID_DISPLAY;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.RESULT_CONTINUE;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.RESULT_DONE;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.RESULT_SKIP;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
 
 import android.app.ActivityOptions;
 import android.content.ComponentName;
@@ -89,9 +89,9 @@
         final WindowLayout layout = new WindowLayout(0, 0, 0, 0, 0, 0, 0);
         final ActivityOptions options = mock(ActivityOptions.class);
 
-        mController.calculate(record.getTask(), layout, record, source, options,
+        mController.calculate(record.getTaskRecord(), layout, record, source, options,
                 new LaunchParams());
-        verify(positioner, times(1)).onCalculate(eq(record.getTask()), eq(layout), eq(record),
+        verify(positioner, times(1)).onCalculate(eq(record.getTaskRecord()), eq(layout), eq(record),
                 eq(source), eq(options), any(), any());
     }
 
@@ -114,7 +114,7 @@
 
         mPersister.putLaunchParams(userId, name, expected);
 
-        mController.calculate(activity.getTask(), null /*layout*/, activity, null /*source*/,
+        mController.calculate(activity.getTaskRecord(), null /*layout*/, activity, null /*source*/,
                 null /*options*/, new LaunchParams());
         verify(positioner, times(1)).onCalculate(any(), any(), any(), any(), any(), eq(expected),
                 any());
@@ -228,7 +228,7 @@
 
         final LaunchParams result = new LaunchParams();
         final ActivityRecord vrActivity = new ActivityBuilder(mService).build();
-        vrActivity.requestedVrComponent = vrActivity.realActivity;
+        vrActivity.requestedVrComponent = vrActivity.mActivityComponent;
 
         // VR activities should always land on default display.
         mController.calculate(null /*task*/, null /*layout*/, vrActivity /*activity*/,
@@ -412,8 +412,9 @@
 
         @Override
         void getLaunchParams(TaskRecord task, ActivityRecord activity, LaunchParams params) {
-            final int userId = task != null ? task.userId : activity.userId;
-            final ComponentName name = task != null ? task.realActivity : activity.realActivity;
+            final int userId = task != null ? task.userId : activity.mUserId;
+            final ComponentName name = task != null
+                    ? task.realActivity : activity.mActivityComponent;
 
             params.reset();
             final Map<ComponentName, LaunchParams> map = mMap.get(userId);
diff --git a/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java b/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
index 59e9ce3..f3a125b 100644
--- a/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
@@ -21,14 +21,15 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.view.Display.INVALID_DISPLAY;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.content.ComponentName;
 import android.content.pm.PackageList;
@@ -109,8 +110,9 @@
         final DisplayInfo info = new DisplayInfo();
         info.uniqueId = mDisplayUniqueId;
         mTestDisplay = createNewActivityDisplay(info);
-        mSupervisor.addChild(mTestDisplay, ActivityDisplay.POSITION_TOP);
-        when(mSupervisor.getActivityDisplay(eq(mDisplayUniqueId))).thenReturn(mTestDisplay);
+        mRootActivityContainer.addChild(mTestDisplay, ActivityDisplay.POSITION_TOP);
+        when(mRootActivityContainer.getActivityDisplay(eq(mDisplayUniqueId)))
+                .thenReturn(mTestDisplay);
 
         ActivityStack stack = mTestDisplay.createStack(TEST_WINDOWING_MODE,
                 ACTIVITY_TYPE_STANDARD, /* onTop */ true);
@@ -183,7 +185,7 @@
     public void testReturnsEmptyDisplayIfDisplayIsNotFound() {
         mTarget.saveTask(mTestTask);
 
-        when(mSupervisor.getActivityDisplay(eq(mDisplayUniqueId))).thenReturn(null);
+        when(mRootActivityContainer.getActivityDisplay(eq(mDisplayUniqueId))).thenReturn(null);
 
         mTarget.getLaunchParams(mTestTask, null, mResult);
 
@@ -270,6 +272,51 @@
     }
 
     @Test
+    public void testClearsRecordInMemory() {
+        mTarget.saveTask(mTestTask);
+
+        mTarget.removeRecordForPackage(TEST_COMPONENT.getPackageName());
+
+        mTarget.getLaunchParams(mTestTask, null, mResult);
+
+        assertTrue("Result should be empty.", mResult.isEmpty());
+    }
+
+    @Test
+    public void testClearsWriteQueueItem() {
+        mTarget.saveTask(mTestTask);
+
+        mTarget.removeRecordForPackage(TEST_COMPONENT.getPackageName());
+
+        final LaunchParamsPersister target = new LaunchParamsPersister(mPersisterQueue, mSupervisor,
+                mUserFolderGetter);
+        target.onSystemReady();
+        target.onUnlockUser(TEST_USER_ID);
+
+        target.getLaunchParams(mTestTask, null, mResult);
+
+        assertTrue("Result should be empty.", mResult.isEmpty());
+    }
+
+    @Test
+    public void testClearsFile() {
+        mTarget.saveTask(mTestTask);
+        mPersisterQueue.flush();
+
+        mTarget.removeRecordForPackage(TEST_COMPONENT.getPackageName());
+
+        final LaunchParamsPersister target = new LaunchParamsPersister(mPersisterQueue, mSupervisor,
+                mUserFolderGetter);
+        target.onSystemReady();
+        target.onUnlockUser(TEST_USER_ID);
+
+        target.getLaunchParams(mTestTask, null, mResult);
+
+        assertTrue("Result should be empty.", mResult.isEmpty());
+    }
+
+
+    @Test
     public void testClearsRecordInMemoryOnPackageUninstalled() {
         mTarget.saveTask(mTestTask);
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java
index 6b613ed..6259fa6 100644
--- a/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java
@@ -34,6 +34,13 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
 import static com.android.server.wm.LockTaskController.STATUS_BAR_MASK_LOCKED;
 import static com.android.server.wm.LockTaskController.STATUS_BAR_MASK_PINNED;
 
@@ -44,13 +51,6 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.app.StatusBarManager;
 import android.app.admin.DevicePolicyManager;
@@ -75,7 +75,6 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.server.LocalServices;
 import com.android.server.statusbar.StatusBarManagerInternal;
-import com.android.server.wm.WindowManagerService;
 
 import org.junit.After;
 import org.junit.Before;
@@ -105,6 +104,7 @@
             new DexmakerShareClassLoaderRule();
 
     @Mock private ActivityStackSupervisor mSupervisor;
+    @Mock private RootActivityContainer mRootActivityContainer;
     @Mock private IDevicePolicyManager mDevicePolicyManager;
     @Mock private IStatusBarService mStatusBarService;
     @Mock private WindowManagerService mWindowManager;
@@ -130,6 +130,7 @@
         }
 
         mSupervisor.mRecentTasks = mRecentTasks;
+        mSupervisor.mRootActivityContainer = mRootActivityContainer;
 
         mLockTaskController = new LockTaskController(mContext, mSupervisor,
                 new ImmediatelyExecuteHandler());
diff --git a/services/tests/servicestests/src/com/android/server/wm/PinnedStackControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/PinnedStackControllerTest.java
similarity index 88%
rename from services/tests/servicestests/src/com/android/server/wm/PinnedStackControllerTest.java
rename to services/tests/wmtests/src/com/android/server/wm/PinnedStackControllerTest.java
index 1fae317..63d9fb9 100644
--- a/services/tests/servicestests/src/com/android/server/wm/PinnedStackControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/PinnedStackControllerTest.java
@@ -18,14 +18,15 @@
 
 import static android.view.Display.DEFAULT_DISPLAY;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 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.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.os.RemoteException;
 import android.platform.test.annotations.Presubmit;
@@ -46,6 +47,8 @@
 @Presubmit
 public class PinnedStackControllerTest extends WindowTestsBase {
 
+    private static final int SHELF_HEIGHT = 300;
+
     @Mock private IPinnedStackListener mIPinnedStackListener;
     @Mock private IPinnedStackListener.Stub mIPinnedStackListenerStub;
 
@@ -70,8 +73,6 @@
 
         reset(mIPinnedStackListener);
 
-        final int SHELF_HEIGHT = 300;
-
         mWm.setShelfHeight(true, SHELF_HEIGHT);
         verify(mIPinnedStackListener).onShelfVisibilityChanged(true, SHELF_HEIGHT);
         verify(mIPinnedStackListener).onMovementBoundsChanged(any(), any(), any(), eq(false),
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
index 26241d2..3c7b4b1 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
@@ -29,6 +29,9 @@
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.view.Display.DEFAULT_DISPLAY;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
@@ -38,8 +41,6 @@
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
 
 import static java.lang.Integer.MAX_VALUE;
 
@@ -109,14 +110,13 @@
     @Before
     public void setUp() throws Exception {
         mTaskPersister = new TestTaskPersister(mContext.getFilesDir());
-        mTestService = spy(new MyTestActivityTaskManagerService(mContext));
-        final TestActivityManagerService am = spy(new MyTestActivityManagerService());
-        setupActivityManagerService(am, mTestService);
+        mTestService = new MyTestActivityTaskManagerService(mContext);
         mRecentTasks = (TestRecentTasks) mTestService.getRecentTasks();
         mRecentTasks.loadParametersFromResources(mContext.getResources());
-        mHomeStack = mTestService.mStackSupervisor.getDefaultDisplay().getOrCreateStack(
+        mRunningTasks = (TestRunningTasks) mTestService.mStackSupervisor.mRunningTasks;
+        mHomeStack = mTestService.mRootActivityContainer.getDefaultDisplay().getOrCreateStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, true /* onTop */);
-        mStack = mTestService.mStackSupervisor.getDefaultDisplay().createStack(
+        mStack = mTestService.mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
         mCallbacksRecorder = new CallbacksRecorder();
         mRecentTasks.registerCallback(mCallbacksRecorder);
@@ -867,20 +867,20 @@
         }
 
         @Override
-        protected ActivityStackSupervisor createTestSupervisor() {
-            return new MyTestActivityStackSupervisor(this, mH.getLooper());
-        }
-
-    }
-
-    private class MyTestActivityManagerService extends TestActivityManagerService {
-        MyTestActivityManagerService() {
-            super(mTestInjector);
+        protected ActivityStackSupervisor createStackSupervisor() {
+            if (mTestStackSupervisor == null) {
+                mTestStackSupervisor = new MyTestActivityStackSupervisor(this, mH.getLooper());
+            }
+            return mTestStackSupervisor;
         }
 
         @Override
-        public boolean isUserRunning(int userId, int flags) {
-            return true;
+        void initRootActivityContainerMocks(WindowManagerService wm) {
+            super.initRootActivityContainerMocks(wm);
+            mDisplay = mRootActivityContainer.getActivityDisplay(DEFAULT_DISPLAY);
+            mOtherDisplay = TestActivityDisplay.create(mTestStackSupervisor, DEFAULT_DISPLAY + 1);
+            mRootActivityContainer.addChild(mOtherDisplay, ActivityDisplay.POSITION_TOP);
+            mRootActivityContainer.addChild(mDisplay, ActivityDisplay.POSITION_TOP);
         }
     }
 
@@ -890,15 +890,6 @@
         }
 
         @Override
-        public void initialize() {
-            super.initialize();
-            mDisplay = getActivityDisplay(DEFAULT_DISPLAY);
-            mOtherDisplay = TestActivityDisplay.create(this, DEFAULT_DISPLAY + 1);
-            addChild(mOtherDisplay, ActivityDisplay.POSITION_TOP);
-            addChild(mDisplay, ActivityDisplay.POSITION_TOP);
-        }
-
-        @Override
         RunningTasks createRunningTasks() {
             mRunningTasks = new TestRunningTasks();
             return mRunningTasks;
diff --git a/services/tests/servicestests/src/com/android/server/wm/RecentsAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
similarity index 92%
rename from services/tests/servicestests/src/com/android/server/wm/RecentsAnimationControllerTest.java
rename to services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
index fe5fc06..cc6a58a 100644
--- a/services/tests/servicestests/src/com/android/server/wm/RecentsAnimationControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
@@ -21,6 +21,10 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.view.Display.DEFAULT_DISPLAY;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.atLeast;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyNoMoreInteractions;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
 import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE;
 import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_ORIGINAL_POSITION;
 
@@ -28,10 +32,6 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.atLeast;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
 
 import android.os.Binder;
 import android.os.IInterface;
@@ -123,6 +123,8 @@
         final AppWindowToken hiddenAppWindow = createAppWindowToken(mDisplayContent,
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
         hiddenAppWindow.setHidden(true);
+        mDisplayContent.getConfiguration().windowConfiguration.setRotation(
+                mDisplayContent.getRotation());
         mController.initialize(mDisplayContent, ACTIVITY_TYPE_HOME, new SparseBooleanArray());
 
         // Ensure that we are animating the target activity as well
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationTest.java
index a01a3d9..0ff67d7 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationTest.java
@@ -20,16 +20,16 @@
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE;
 
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -51,61 +51,50 @@
 public class RecentsAnimationTest extends ActivityTestsBase {
 
     private Context mContext = InstrumentationRegistry.getContext();
-    private TestActivityTaskManagerService mTestService;
     private ComponentName mRecentsComponent;
 
     @Before
     public void setUp() throws Exception {
         mRecentsComponent = new ComponentName(mContext.getPackageName(), "RecentsActivity");
-        mTestService = spy(new MyTestActivityTaskManagerService(mContext));
-        setupActivityManagerService(mTestService);
+        mService = new TestActivityTaskManagerService(mContext);
+
+        final RecentTasks recentTasks = mService.getRecentTasks();
+        spyOn(recentTasks);
+        mRecentsComponent = new ComponentName(mContext.getPackageName(), "RecentsActivity");
+        doReturn(mRecentsComponent).when(recentTasks).getRecentsComponent();
     }
 
     @Test
     public void testCancelAnimationOnStackOrderChange() {
         ActivityStack fullscreenStack =
-                mTestService.mStackSupervisor.getDefaultDisplay().createStack(
+                mService.mRootActivityContainer.getDefaultDisplay().createStack(
                         WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
-        ActivityStack recentsStack = mTestService.mStackSupervisor.getDefaultDisplay().createStack(
+        ActivityStack recentsStack = mService.mRootActivityContainer.getDefaultDisplay().createStack(
                 WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_RECENTS, true /* onTop */);
-        ActivityRecord recentsActivity = new ActivityBuilder(mTestService)
+        ActivityRecord recentsActivity = new ActivityBuilder(mService)
                 .setComponent(mRecentsComponent)
                 .setCreateTask(true)
                 .setStack(recentsStack)
                 .build();
         ActivityStack fullscreenStack2 =
-                mTestService.mStackSupervisor.getDefaultDisplay().createStack(
+                mService.mRootActivityContainer.getDefaultDisplay().createStack(
                         WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
-        ActivityRecord fsActivity = new ActivityBuilder(mTestService)
+        ActivityRecord fsActivity = new ActivityBuilder(mService)
                 .setComponent(new ComponentName(mContext.getPackageName(), "App1"))
                 .setCreateTask(true)
                 .setStack(fullscreenStack2)
                 .build();
-        doReturn(true).when(mTestService.mWindowManager).canStartRecentsAnimation();
+        doReturn(true).when(mService.mWindowManager).canStartRecentsAnimation();
 
         // Start the recents animation
         Intent recentsIntent = new Intent();
         recentsIntent.setComponent(mRecentsComponent);
-        mTestService.startRecentsActivity(recentsIntent, null, mock(IRecentsAnimationRunner.class));
+        mService.startRecentsActivity(recentsIntent, null, mock(IRecentsAnimationRunner.class));
 
         fullscreenStack.moveToFront("Activity start");
 
         // Ensure that the recents animation was canceled
-        verify(mTestService.mWindowManager, times(1)).cancelRecentsAnimationSynchronously(
+        verify(mService.mWindowManager, times(1)).cancelRecentsAnimationSynchronously(
                 eq(REORDER_KEEP_IN_PLACE), any());
     }
-
-    private class MyTestActivityTaskManagerService extends TestActivityTaskManagerService {
-        MyTestActivityTaskManagerService(Context context) {
-            super(context);
-        }
-
-        @Override
-        protected RecentTasks createRecentTasks() {
-            RecentTasks recents = mock(RecentTasks.class);
-            doReturn(mRecentsComponent).when(recents).getRecentsComponent();
-            System.out.println(mRecentsComponent);
-            return recents;
-        }
-    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/wm/RemoteAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RemoteAnimationControllerTest.java
similarity index 94%
rename from services/tests/servicestests/src/com/android/server/wm/RemoteAnimationControllerTest.java
rename to services/tests/wmtests/src/com/android/server/wm/RemoteAnimationControllerTest.java
index fa53795..ad2a708 100644
--- a/services/tests/servicestests/src/com/android/server/wm/RemoteAnimationControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RemoteAnimationControllerTest.java
@@ -18,13 +18,14 @@
 
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.atLeast;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyNoMoreInteractions;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.atLeast;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
 
 import android.graphics.Point;
 import android.graphics.Rect;
@@ -143,8 +144,9 @@
     @Test
     public void testTimeout_scaled() throws Exception {
         mWm.setAnimationScale(2, 5.0f);
-        try{
-            final WindowState win = createWindow(null /* parent */, TYPE_BASE_APPLICATION, "testWin");
+        try {
+            final WindowState win = createWindow(null /* parent */, TYPE_BASE_APPLICATION,
+                    "testWin");
             final AnimationAdapter adapter = mController.createAnimationAdapter(win.mAppToken,
                     new Point(50, 100), new Rect(50, 100, 150, 150));
             adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
@@ -163,7 +165,6 @@
         } finally {
             mWm.setAnimationScale(2, 1.0f);
         }
-
     }
 
     @Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java
new file mode 100644
index 0000000..9b18388
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java
@@ -0,0 +1,480 @@
+/*
+ * 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.server.wm;
+
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
+import static android.content.pm.ActivityInfo.FLAG_ALWAYS_FOCUSABLE;
+import static android.content.pm.ActivityInfo.LAUNCH_MULTIPLE;
+import static android.view.Display.DEFAULT_DISPLAY;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
+import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_DESTROYING;
+import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE;
+import static com.google.common.truth.Truth.assertThat;
+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.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.contains;
+import static org.mockito.ArgumentMatchers.eq;
+
+import android.app.ActivityOptions;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
+import android.graphics.Rect;
+import android.os.Build;
+import android.platform.test.annotations.Presubmit;
+import androidx.test.filters.MediumTest;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+
+/**
+ * Tests for the {@link ActivityStackSupervisor} class.
+ *
+ * Build/Install/Run:
+ *  atest WmTests:ActivityStackSupervisorTests
+ */
+@MediumTest
+@Presubmit
+public class RootActivityContainerTests extends ActivityTestsBase {
+    private ActivityStack mFullscreenStack;
+
+    @Before
+    public void setUp() throws Exception {
+        setupActivityTaskManagerService();
+        mFullscreenStack = mRootActivityContainer.getDefaultDisplay().createStack(
+                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
+    }
+
+    /**
+     * This test ensures that we do not try to restore a task based off an invalid task id. We
+     * should expect {@code null} to be returned in this case.
+     */
+    @Test
+    public void testRestoringInvalidTask() {
+        ((TestActivityDisplay) mRootActivityContainer.getDefaultDisplay()).removeAllTasks();
+        TaskRecord task = mRootActivityContainer.anyTaskForId(0 /*taskId*/,
+                MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE, null, false /* onTop */);
+        assertNull(task);
+    }
+
+    /**
+     * This test ensures that an existing task in the pinned stack is moved to the fullscreen
+     * activity stack when a new task is added.
+     */
+    @Test
+    public void testReplacingTaskInPinnedStack() {
+        final ActivityRecord firstActivity = new ActivityBuilder(mService).setCreateTask(true)
+                .setStack(mFullscreenStack).build();
+        final TaskRecord firstTask = firstActivity.getTaskRecord();
+
+        final ActivityRecord secondActivity = new ActivityBuilder(mService).setCreateTask(true)
+                .setStack(mFullscreenStack).build();
+        final TaskRecord secondTask = secondActivity.getTaskRecord();
+
+        mFullscreenStack.moveToFront("testReplacingTaskInPinnedStack");
+
+        // Ensure full screen stack has both tasks.
+        ensureStackPlacement(mFullscreenStack, firstTask, secondTask);
+
+        // Move first activity to pinned stack.
+        final Rect sourceBounds = new Rect();
+        mRootActivityContainer.moveActivityToPinnedStack(firstActivity, sourceBounds,
+                0f /*aspectRatio*/, "initialMove");
+
+        final ActivityDisplay display = mFullscreenStack.getDisplay();
+        ActivityStack pinnedStack = display.getPinnedStack();
+        // Ensure a task has moved over.
+        ensureStackPlacement(pinnedStack, firstTask);
+        ensureStackPlacement(mFullscreenStack, secondTask);
+
+        // Move second activity to pinned stack.
+        mRootActivityContainer.moveActivityToPinnedStack(secondActivity, sourceBounds,
+                0f /*aspectRatio*/, "secondMove");
+
+        // Need to get stacks again as a new instance might have been created.
+        pinnedStack = display.getPinnedStack();
+        mFullscreenStack = display.getStack(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
+        // Ensure stacks have swapped tasks.
+        ensureStackPlacement(pinnedStack, secondTask);
+        ensureStackPlacement(mFullscreenStack, firstTask);
+    }
+
+    private static void ensureStackPlacement(ActivityStack stack, TaskRecord... tasks) {
+        final ArrayList<TaskRecord> stackTasks = stack.getAllTasks();
+        assertEquals(stackTasks.size(), tasks != null ? tasks.length : 0);
+
+        if (tasks == null) {
+            return;
+        }
+
+        for (TaskRecord task : tasks) {
+            assertTrue(stackTasks.contains(task));
+        }
+    }
+
+    @Test
+    public void testApplySleepTokens() {
+        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
+        final KeyguardController keyguard = mSupervisor.getKeyguardController();
+        final ActivityStack stack = mock(ActivityStack.class);
+        display.addChild(stack, 0 /* position */);
+
+        // Make sure we wake and resume in the case the display is turning on and the keyguard is
+        // not showing.
+        verifySleepTokenBehavior(display, keyguard, stack, true /*displaySleeping*/,
+                false /* displayShouldSleep */, true /* isFocusedStack */,
+                false /* keyguardShowing */, true /* expectWakeFromSleep */,
+                true /* expectResumeTopActivity */);
+
+        // Make sure we wake and don't resume when the display is turning on and the keyguard is
+        // showing.
+        verifySleepTokenBehavior(display, keyguard, stack, true /*displaySleeping*/,
+                false /* displayShouldSleep */, true /* isFocusedStack */,
+                true /* keyguardShowing */, true /* expectWakeFromSleep */,
+                false /* expectResumeTopActivity */);
+
+        // Make sure we wake and don't resume when the display is turning on and the keyguard is
+        // not showing as unfocused.
+        verifySleepTokenBehavior(display, keyguard, stack, true /*displaySleeping*/,
+                false /* displayShouldSleep */, false /* isFocusedStack */,
+                false /* keyguardShowing */, true /* expectWakeFromSleep */,
+                false /* expectResumeTopActivity */);
+
+        // Should not do anything if the display state hasn't changed.
+        verifySleepTokenBehavior(display, keyguard, stack, false /*displaySleeping*/,
+                false /* displayShouldSleep */, true /* isFocusedStack */,
+                false /* keyguardShowing */, false /* expectWakeFromSleep */,
+                false /* expectResumeTopActivity */);
+    }
+
+    private void verifySleepTokenBehavior(ActivityDisplay display, KeyguardController keyguard,
+            ActivityStack stack, boolean displaySleeping, boolean displayShouldSleep,
+            boolean isFocusedStack, boolean keyguardShowing, boolean expectWakeFromSleep,
+            boolean expectResumeTopActivity) {
+        reset(stack);
+
+        doReturn(displayShouldSleep).when(display).shouldSleep();
+        doReturn(displaySleeping).when(display).isSleeping();
+        doReturn(keyguardShowing).when(keyguard).isKeyguardOrAodShowing(anyInt());
+
+        doReturn(isFocusedStack).when(stack).isFocusedStackOnDisplay();
+        doReturn(isFocusedStack ? stack : null).when(display).getFocusedStack();
+        mRootActivityContainer.applySleepTokens(true);
+        verify(stack, times(expectWakeFromSleep ? 1 : 0)).awakeFromSleepingLocked();
+        verify(stack, times(expectResumeTopActivity ? 1 : 0)).resumeTopActivityUncheckedLocked(
+                null /* target */, null /* targetOptions */);
+    }
+
+    /**
+     * Verifies that removal of activity with task and stack is done correctly.
+     */
+    @Test
+    public void testRemovingStackOnAppCrash() {
+        final ActivityDisplay defaultDisplay = mRootActivityContainer.getDefaultDisplay();
+        final int originalStackCount = defaultDisplay.getChildCount();
+        final ActivityStack stack = mRootActivityContainer.getDefaultDisplay().createStack(
+                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, false /* onTop */);
+        final ActivityRecord firstActivity = new ActivityBuilder(mService).setCreateTask(true)
+                .setStack(stack).build();
+
+        assertEquals(originalStackCount + 1, defaultDisplay.getChildCount());
+
+        // Let's pretend that the app has crashed.
+        firstActivity.app.setThread(null);
+        mRootActivityContainer.finishTopCrashedActivities(firstActivity.app, "test");
+
+        // Verify that the stack was removed.
+        assertEquals(originalStackCount, defaultDisplay.getChildCount());
+    }
+
+    @Test
+    public void testFocusability() {
+        final ActivityStack stack = mRootActivityContainer.getDefaultDisplay().createStack(
+                WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_STANDARD, true /* onTop */);
+        final ActivityRecord activity = new ActivityBuilder(mService).setCreateTask(true)
+                .setStack(stack).build();
+
+        // Under split screen primary we should be focusable when not minimized
+        mRootActivityContainer.setDockedStackMinimized(false);
+        assertTrue(stack.isFocusable());
+        assertTrue(activity.isFocusable());
+
+        // Under split screen primary we should not be focusable when minimized
+        mRootActivityContainer.setDockedStackMinimized(true);
+        assertFalse(stack.isFocusable());
+        assertFalse(activity.isFocusable());
+
+        final ActivityStack pinnedStack = mRootActivityContainer.getDefaultDisplay().createStack(
+                WINDOWING_MODE_PINNED, ACTIVITY_TYPE_STANDARD, true /* onTop */);
+        final ActivityRecord pinnedActivity = new ActivityBuilder(mService).setCreateTask(true)
+                .setStack(pinnedStack).build();
+
+        // We should not be focusable when in pinned mode
+        assertFalse(pinnedStack.isFocusable());
+        assertFalse(pinnedActivity.isFocusable());
+
+        // Add flag forcing focusability.
+        pinnedActivity.info.flags |= FLAG_ALWAYS_FOCUSABLE;
+
+        // We should not be focusable when in pinned mode
+        assertTrue(pinnedStack.isFocusable());
+        assertTrue(pinnedActivity.isFocusable());
+
+        // Without the overridding activity, stack should not be focusable.
+        pinnedStack.removeTask(pinnedActivity.getTaskRecord(), "testFocusability",
+                REMOVE_TASK_MODE_DESTROYING);
+        assertFalse(pinnedStack.isFocusable());
+    }
+
+    /**
+     * Verify that split-screen primary stack will be chosen if activity is launched that targets
+     * split-screen secondary, but a matching existing instance is found on top of split-screen
+     * primary stack.
+     */
+    @Test
+    public void testSplitScreenPrimaryChosenWhenTopActivityLaunchedToSecondary() {
+        // Create primary split-screen stack with a task and an activity.
+        final ActivityStack primaryStack = mRootActivityContainer.getDefaultDisplay()
+                .createStack(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_STANDARD,
+                        true /* onTop */);
+        final TaskRecord task = new TaskBuilder(mSupervisor).setStack(primaryStack).build();
+        final ActivityRecord r = new ActivityBuilder(mService).setTask(task).build();
+
+        // Find a launch stack for the top activity in split-screen primary, while requesting
+        // split-screen secondary.
+        final ActivityOptions options = ActivityOptions.makeBasic();
+        options.setLaunchWindowingMode(WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY);
+        final ActivityStack result =
+                mRootActivityContainer.getLaunchStack(r, options, task, true /* onTop */);
+
+        // Assert that the primary stack is returned.
+        assertEquals(primaryStack, result);
+    }
+
+    /**
+     * Verify split-screen primary stack & task can resized by
+     * {@link android.app.IActivityTaskManager#resizeDockedStack} as expect.
+     */
+    @Test
+    public void testResizeDockedStackForSplitScreenPrimary() {
+        final Rect taskSize = new Rect(0, 0, 600, 600);
+        final Rect stackSize = new Rect(0, 0, 300, 300);
+
+        // Create primary split-screen stack with a task.
+        final ActivityStack primaryStack = mRootActivityContainer.getDefaultDisplay()
+                .createStack(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_STANDARD,
+                        true /* onTop */);
+        final TaskRecord task = new TaskBuilder(mSupervisor).setStack(primaryStack).build();
+
+        // Resize dock stack.
+        mService.resizeDockedStack(stackSize, taskSize, null, null, null);
+
+        // Verify dock stack & its task bounds if is equal as resized result.
+        assertEquals(primaryStack.getBounds(), stackSize);
+        assertEquals(task.getBounds(), taskSize);
+    }
+
+    /**
+     * Verify that home stack would be moved to front when the top activity is Recents.
+     */
+    @Test
+    public void testFindTaskToMoveToFrontWhenRecentsOnTop() {
+        // Create stack/task on default display.
+        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
+        final TestActivityStack targetStack =
+                new StackBuilder(mRootActivityContainer).setOnTop(false).build();
+        final TaskRecord targetTask = targetStack.getChildAt(0);
+
+        // Create Recents on top of the display.
+        final ActivityStack stack = new StackBuilder(mRootActivityContainer).setActivityType(
+                ACTIVITY_TYPE_RECENTS).build();
+
+        final String reason = "findTaskToMoveToFront";
+        mSupervisor.findTaskToMoveToFront(targetTask, 0, ActivityOptions.makeBasic(), reason,
+                false);
+
+        verify(display).moveHomeStackToFront(contains(reason));
+    }
+
+    /**
+     * Verify that home stack won't be moved to front if the top activity on other display is
+     * Recents.
+     */
+    @Test
+    public void testFindTaskToMoveToFrontWhenRecentsOnOtherDisplay() {
+        // Create stack/task on default display.
+        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
+        final ActivityStack targetStack = display.createStack(WINDOWING_MODE_FULLSCREEN,
+                ACTIVITY_TYPE_STANDARD, false /* onTop */);
+        final TaskRecord targetTask = new TaskBuilder(mSupervisor).setStack(targetStack).build();
+
+        // Create Recents on secondary display.
+        final TestActivityDisplay secondDisplay = addNewActivityDisplayAt(
+                ActivityDisplay.POSITION_TOP);
+        final ActivityStack stack = secondDisplay.createStack(WINDOWING_MODE_FULLSCREEN,
+                ACTIVITY_TYPE_RECENTS, true /* onTop */);
+        final TaskRecord task = new TaskBuilder(mSupervisor).setStack(stack).build();
+        new ActivityBuilder(mService).setTask(task).build();
+
+        final String reason = "findTaskToMoveToFront";
+        mSupervisor.findTaskToMoveToFront(targetTask, 0, ActivityOptions.makeBasic(), reason,
+                false);
+
+        verify(display, never()).moveHomeStackToFront(contains(reason));
+    }
+
+    /**
+     * Verify if a stack is not at the topmost position, it should be able to resume its activity if
+     * the stack is the top focused.
+     */
+    @Test
+    public void testResumeActivityWhenNonTopmostStackIsTopFocused() {
+        // Create a stack at bottom.
+        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
+        final ActivityStack targetStack = spy(display.createStack(WINDOWING_MODE_FULLSCREEN,
+                ACTIVITY_TYPE_STANDARD, false /* onTop */));
+        final TaskRecord task = new TaskBuilder(mSupervisor).setStack(targetStack).build();
+        final ActivityRecord activity = new ActivityBuilder(mService).setTask(task).build();
+        display.positionChildAtBottom(targetStack);
+
+        // Assume the stack is not at the topmost position (e.g. behind always-on-top stacks) but it
+        // is the current top focused stack.
+        assertFalse(targetStack.isTopStackOnDisplay());
+        doReturn(targetStack).when(mRootActivityContainer).getTopDisplayFocusedStack();
+
+        // Use the stack as target to resume.
+        mRootActivityContainer.resumeFocusedStacksTopActivities(
+                targetStack, activity, null /* targetOptions */);
+
+        // Verify the target stack should resume its activity.
+        verify(targetStack, times(1)).resumeTopActivityUncheckedLocked(
+                eq(activity), eq(null /* targetOptions */));
+    }
+
+    /**
+     * Tests home activities that targeted sdk before Q cannot start on secondary display.
+     */
+    @Test
+    public void testStartHomeTargetSdkBeforeQ() throws Exception {
+        final TestActivityDisplay secondDisplay = spy(createNewActivityDisplay());
+        mRootActivityContainer.addChild(secondDisplay, POSITION_TOP);
+        doReturn(true).when(secondDisplay).supportsSystemDecorations();
+
+        final ActivityInfo info = new ActivityInfo();
+        info.launchMode = LAUNCH_MULTIPLE;
+        info.applicationInfo = new ApplicationInfo();
+        info.applicationInfo.targetSdkVersion = Build.VERSION_CODES.Q;
+        assertTrue(mRootActivityContainer.canStartHomeOnDisplay(info, secondDisplay.mDisplayId,
+                false /* allowInstrumenting */));
+
+        info.applicationInfo.targetSdkVersion = Build.VERSION_CODES.P;
+        assertFalse(mRootActivityContainer.canStartHomeOnDisplay(info, secondDisplay.mDisplayId,
+                false /* allowInstrumenting */));
+    }
+
+    /**
+     * Tests that home activities can be started on the displays that supports system decorations.
+     */
+    @Test
+    public void testStartHomeOnAllDisplays() {
+        // Create secondary displays.
+        final TestActivityDisplay secondDisplay = spy(createNewActivityDisplay());
+        mRootActivityContainer.addChild(secondDisplay, POSITION_TOP);
+        doReturn(true).when(secondDisplay).supportsSystemDecorations();
+
+        // Create mock tasks and other necessary mocks.
+        TaskBuilder taskBuilder = new TaskBuilder(mService.mStackSupervisor).setCreateStack(false);
+        final TaskRecord.TaskRecordFactory factory = mock(TaskRecord.TaskRecordFactory.class);
+        TaskRecord.setTaskRecordFactory(factory);
+        doAnswer(i -> taskBuilder.build()).when(factory)
+                .create(any(), anyInt(), any(), any(), any(), any());
+        doReturn(true).when(mRootActivityContainer)
+                .ensureVisibilityAndConfig(any(), anyInt(), anyBoolean(), anyBoolean());
+        doReturn(true).when(mRootActivityContainer).canStartHomeOnDisplay(
+                any(), anyInt(), anyBoolean());
+
+        mRootActivityContainer.startHomeOnAllDisplays(0, "testStartHome");
+
+        assertTrue(mRootActivityContainer.getDefaultDisplay().getTopStack().isActivityTypeHome());
+        assertNotNull(secondDisplay.getTopStack());
+        assertTrue(secondDisplay.getTopStack().isActivityTypeHome());
+    }
+
+    /**
+     * Tests that home activities won't be started before booting when display added.
+     */
+    @Test
+    public void testNotStartHomeBeforeBoot() {
+        final int displayId = 1;
+        final boolean isBooting = mService.mAmInternal.isBooting();
+        final boolean isBooted = mService.mAmInternal.isBooted();
+        try {
+            mService.mAmInternal.setBooting(false);
+            mService.mAmInternal.setBooted(false);
+            mRootActivityContainer.onDisplayAdded(displayId);
+            verify(mRootActivityContainer, never()).startHomeOnDisplay(anyInt(), any(), anyInt());
+        } finally {
+            mService.mAmInternal.setBooting(isBooting);
+            mService.mAmInternal.setBooted(isBooted);
+        }
+    }
+
+    /**
+     * Tests whether home can be started if being instrumented.
+     */
+    @Test
+    public void testCanStartHomeWhenInstrumented() {
+        final ActivityInfo info = new ActivityInfo();
+        info.applicationInfo = new ApplicationInfo();
+        final WindowProcessController app = mock(WindowProcessController.class);
+        doReturn(app).when(mService).getProcessController(any(), anyInt());
+
+        // Can not start home if we don't want to start home while home is being instrumented.
+        doReturn(true).when(app).isInstrumenting();
+        assertFalse(mRootActivityContainer.canStartHomeOnDisplay(info, DEFAULT_DISPLAY,
+                false /* allowInstrumenting*/));
+
+        // Can start home for other cases.
+        assertTrue(mRootActivityContainer.canStartHomeOnDisplay(info, DEFAULT_DISPLAY,
+                true /* allowInstrumenting*/));
+
+        doReturn(false).when(app).isInstrumenting();
+        assertTrue(mRootActivityContainer.canStartHomeOnDisplay(info, DEFAULT_DISPLAY,
+                false /* allowInstrumenting*/));
+        assertTrue(mRootActivityContainer.canStartHomeOnDisplay(info, DEFAULT_DISPLAY,
+                true /* allowInstrumenting*/));
+    }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
index 0e1624e..a8b6dc3 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
@@ -63,7 +63,7 @@
         final int numStacks = 2;
         for (int stackIndex = 0; stackIndex < numStacks; stackIndex++) {
             final ActivityStack stack =
-                    new StackBuilder(mSupervisor).setCreateActivity(false).build();
+                    new StackBuilder(mRootActivityContainer).setCreateActivity(false).build();
             display.addChild(stack, POSITION_BOTTOM);
         }
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/StackWindowControllerTests.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/StackWindowControllerTests.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java b/services/tests/wmtests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java
similarity index 94%
rename from services/tests/servicestests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java
rename to services/tests/wmtests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java
index 584f269..83e7ee7 100644
--- a/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SurfaceAnimationRunnerTest.java
@@ -16,16 +16,17 @@
 
 package com.android.server.wm;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.atLeast;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.atLeastOnce;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.atLeast;
-import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import static java.util.concurrent.TimeUnit.SECONDS;
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimatorTest.java b/services/tests/wmtests/src/com/android/server/wm/SurfaceAnimatorTest.java
similarity index 96%
rename from services/tests/servicestests/src/com/android/server/wm/SurfaceAnimatorTest.java
rename to services/tests/wmtests/src/com/android/server/wm/SurfaceAnimatorTest.java
index 6833dc5..d14f30d 100644
--- a/services/tests/servicestests/src/com/android/server/wm/SurfaceAnimatorTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SurfaceAnimatorTest.java
@@ -16,16 +16,17 @@
 
 package com.android.server.wm;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyZeroInteractions;
+
 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.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
 
 import android.platform.test.annotations.Presubmit;
 import android.view.SurfaceControl;
@@ -225,11 +226,9 @@
             mTransaction = transaction;
             mParent = wm.makeSurfaceBuilder(mSession)
                     .setName("test surface parent")
-                    .setSize(3000, 3000)
                     .build();
             mSurface = wm.makeSurfaceBuilder(mSession)
                     .setName("test surface")
-                    .setSize(1, 1)
                     .build();
             mFinishedCallbackCalled = false;
             mLeash = null;
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java
index 2168fab..9569c0d5 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java
@@ -26,13 +26,13 @@
 import static android.util.DisplayMetrics.DENSITY_DEFAULT;
 import static android.view.Display.DEFAULT_DISPLAY;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.RESULT_CONTINUE;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.RESULT_SKIP;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.when;
 
 import android.app.ActivityOptions;
 import android.content.pm.ActivityInfo;
@@ -175,7 +175,7 @@
                 WINDOWING_MODE_FREEFORM);
         ActivityRecord source = createSourceActivity(freeformDisplay);
 
-        assertEquals(RESULT_CONTINUE, mTarget.onCalculate(source.getTask(), null /* layout */,
+        assertEquals(RESULT_CONTINUE, mTarget.onCalculate(source.getTaskRecord(), null /* layout */,
                 null /* activity */, null /* source */, null /* options */, mCurrent, mResult));
 
         assertEquals(freeformDisplay.mDisplayId, mResult.mPreferredDisplayId);
@@ -888,10 +888,10 @@
 
     @Test
     public void testAdjustBoundsToFitNewDisplay_LargerThanDisplay_RTL() {
-        final Configuration overrideConfig = mSupervisor.getOverrideConfiguration();
+        final Configuration overrideConfig = mRootActivityContainer.getOverrideConfiguration();
         // Egyptian Arabic is a RTL language.
         overrideConfig.setLayoutDirection(new Locale("ar", "EG"));
-        mSupervisor.onOverrideConfigurationChanged(overrideConfig);
+        mRootActivityContainer.onOverrideConfigurationChanged(overrideConfig);
 
         final TestActivityDisplay freeformDisplay = createNewActivityDisplay(
                 WINDOWING_MODE_FREEFORM);
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java
index 785b955..b996bfb 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java
@@ -52,8 +52,8 @@
     private static final boolean DEBUGGING = false;
     private static final String TAG = "TaskPositionerTest";
 
-    private final static int MOUSE_DELTA_X = 5;
-    private final static int MOUSE_DELTA_Y = 5;
+    private static final int MOUSE_DELTA_X = 5;
+    private static final int MOUSE_DELTA_Y = 5;
 
     private int mMinVisibleWidth;
     private int mMinVisibleHeight;
@@ -315,7 +315,7 @@
         // Drag all the way to the right and see the height also shrinking.
         mPositioner.resizeDrag(2000.0f, midY);
         final int w = mMinVisibleWidth;
-        final int h = Math.round((float)w / MIN_ASPECT);
+        final int h = Math.round((float) w / MIN_ASPECT);
         assertBoundsEquals(new Rect(r.right - w, r.top, r.right, r.top + h),
                 mPositioner.getWindowDragBounds());
 
@@ -428,7 +428,7 @@
         // Drag all the way to the right.
         mPositioner.resizeDrag(2000.0f, midY);
         w = mMinVisibleWidth;
-        h = Math.max(Math.round((float)w * MIN_ASPECT), r.height());
+        h = Math.max(Math.round((float) w * MIN_ASPECT), r.height());
         assertBoundsEquals(new Rect(r.right - w, r.top, r.right, r.top + h),
                 mPositioner.getWindowDragBounds());
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskPositioningControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskPositioningControllerTests.java
similarity index 94%
rename from services/tests/servicestests/src/com/android/server/wm/TaskPositioningControllerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskPositioningControllerTests.java
index 00b4629..3991e06 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskPositioningControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskPositioningControllerTests.java
@@ -18,14 +18,15 @@
 
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 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.mockito.Matchers.anyInt;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import android.platform.test.annotations.Presubmit;
 import android.view.InputChannel;
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
index 72d7c90..630a8bf 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
@@ -47,12 +47,10 @@
 import org.xmlpull.v1.XmlPullParserException;
 import org.xmlpull.v1.XmlSerializer;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileReader;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
+import java.io.InputStreamReader;
 import java.io.Reader;
 import java.util.ArrayList;
 
@@ -79,15 +77,10 @@
         final TaskRecord expected = createTaskRecord(64);
         expected.mLastNonFullscreenBounds = new Rect(50, 50, 100, 100);
 
-        final File serializedFile = serializeToFile(expected);
-
-        try {
-            final TaskRecord actual = restoreFromFile(serializedFile);
-            assertEquals(expected.taskId, actual.taskId);
-            assertEquals(expected.mLastNonFullscreenBounds, actual.mLastNonFullscreenBounds);
-        } finally {
-            serializedFile.delete();
-        }
+        final byte[] serializedBytes = serializeToBytes(expected);
+        final TaskRecord actual = restoreFromBytes(serializedBytes);
+        assertEquals(expected.taskId, actual.taskId);
+        assertEquals(expected.mLastNonFullscreenBounds, actual.mLastNonFullscreenBounds);
     }
 
     @Test
@@ -131,10 +124,8 @@
         assertTrue(task.returnsToHomeStack());
     }
 
-    private File serializeToFile(TaskRecord r) throws IOException, XmlPullParserException {
-        final File tmpFile = File.createTempFile(r.taskId + "_task_", "xml");
-
-        try (OutputStream os = new FileOutputStream(tmpFile)) {
+    private byte[] serializeToBytes(TaskRecord r) throws IOException, XmlPullParserException {
+        try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {
             final XmlSerializer serializer = Xml.newSerializer();
             serializer.setOutput(os, "UTF-8");
             serializer.startDocument(null, true);
@@ -142,13 +133,14 @@
             r.saveToXml(serializer);
             serializer.endTag(null, TASK_TAG);
             serializer.endDocument();
-        }
 
-        return tmpFile;
+            os.flush();
+            return os.toByteArray();
+        }
     }
 
-    private TaskRecord restoreFromFile(File file) throws IOException, XmlPullParserException {
-        try (Reader reader = new BufferedReader(new FileReader(file))) {
+    private TaskRecord restoreFromBytes(byte[] in) throws IOException, XmlPullParserException {
+        try (Reader reader = new InputStreamReader(new ByteArrayInputStream(in))) {
             final XmlPullParser parser = Xml.newPullParser();
             parser.setInput(reader);
             assertEquals(XmlPullParser.START_TAG, parser.next());
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/TaskSnapshotCacheTest.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskSnapshotCacheTest.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java
similarity index 92%
rename from services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java
index d2c0765..792e8a6 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java
@@ -48,7 +48,7 @@
     public void testGetClosingApps_closing() {
         final WindowState closingWindow = createWindow(null, FIRST_APPLICATION_WINDOW,
                 "closingWindow");
-        closingWindow.mAppToken.setVisibility(null, false /* visible */, TRANSIT_UNSET,
+        closingWindow.mAppToken.commitVisibility(null, false /* visible */, TRANSIT_UNSET,
                 true /* performLayout */, false /* isVoiceInteraction */);
         final ArraySet<AppWindowToken> closingApps = new ArraySet<>();
         closingApps.add(closingWindow.mAppToken);
@@ -64,9 +64,9 @@
                 "closingWindow");
         final WindowState openingWindow = createAppWindow(closingWindow.getTask(),
                 FIRST_APPLICATION_WINDOW, "openingWindow");
-        closingWindow.mAppToken.setVisibility(null, false /* visible */, TRANSIT_UNSET,
+        closingWindow.mAppToken.commitVisibility(null, false /* visible */, TRANSIT_UNSET,
                 true /* performLayout */, false /* isVoiceInteraction */);
-        openingWindow.mAppToken.setVisibility(null, true /* visible */, TRANSIT_UNSET,
+        openingWindow.mAppToken.commitVisibility(null, true /* visible */, TRANSIT_UNSET,
                 true /* performLayout */, false /* isVoiceInteraction */);
         final ArraySet<AppWindowToken> closingApps = new ArraySet<>();
         closingApps.add(closingWindow.mAppToken);
@@ -79,7 +79,7 @@
     public void testGetClosingApps_skipClosingAppsSnapshotTasks() {
         final WindowState closingWindow = createWindow(null, FIRST_APPLICATION_WINDOW,
                 "closingWindow");
-        closingWindow.mAppToken.setVisibility(null, false /* visible */, TRANSIT_UNSET,
+        closingWindow.mAppToken.commitVisibility(null, false /* visible */, TRANSIT_UNSET,
                 true /* performLayout */, false /* isVoiceInteraction */);
         final ArraySet<AppWindowToken> closingApps = new ArraySet<>();
         closingApps.add(closingWindow.mAppToken);
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java
similarity index 96%
rename from services/tests/servicestests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java
index a569b9e..624ef9b 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskSnapshotSurfaceTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotSurfaceTest.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
+ * limitations under the License.
  */
 
 package com.android.server.wm;
@@ -20,14 +20,15 @@
 import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
 import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager.TaskSnapshot;
 import android.content.ComponentName;
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskStackContainersTests.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/TaskStackContainersTests.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskStackContainersTests.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskStackTests.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/TaskStackTests.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskStackTests.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskWindowContainerControllerTests.java
similarity index 97%
rename from services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/TaskWindowContainerControllerTests.java
index 1af79e4..bbf508d 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TaskWindowContainerControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskWindowContainerControllerTests.java
@@ -17,8 +17,6 @@
 package com.android.server.wm;
 
 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 android.platform.test.annotations.Presubmit;
@@ -37,6 +35,7 @@
 @Presubmit
 public class TaskWindowContainerControllerTests extends WindowTestsBase {
 
+    /* Comment out due to removal of AppWindowContainerController
     @Test
     public void testRemoveContainer() {
         final WindowTestUtils.TestTaskWindowContainerController taskController =
@@ -49,7 +48,9 @@
         assertNull(taskController.mContainer);
         assertNull(appController.mContainer);
     }
+    */
 
+    /* Comment out due to removal of AppWindowContainerController
     @Test
     public void testRemoveContainer_deferRemoval() {
         final WindowTestUtils.TestTaskWindowContainerController taskController =
@@ -74,6 +75,7 @@
         assertNull(appController.mContainer);
         assertNull(app.getController());
     }
+    */
 
     @Test
     public void testReparent() {
diff --git a/services/tests/servicestests/src/com/android/server/wm/TestIWindow.java b/services/tests/wmtests/src/com/android/server/wm/TestIWindow.java
similarity index 90%
rename from services/tests/servicestests/src/com/android/server/wm/TestIWindow.java
rename to services/tests/wmtests/src/com/android/server/wm/TestIWindow.java
index 99deeb9..29738ff 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TestIWindow.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TestIWindow.java
@@ -24,6 +24,8 @@
 import android.view.DisplayCutout;
 import android.view.DragEvent;
 import android.view.IWindow;
+import android.view.InsetsSourceControl;
+import android.view.InsetsState;
 
 import com.android.internal.os.IResultReceiver;
 
@@ -41,6 +43,15 @@
     }
 
     @Override
+    public void insetsChanged(InsetsState insetsState) throws RemoteException {
+    }
+
+    @Override
+    public void insetsControlChanged(InsetsState insetsState, InsetsSourceControl[] activeControls)
+            throws RemoteException {
+    }
+
+    @Override
     public void moved(int newX, int newY) throws RemoteException {
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java b/services/tests/wmtests/src/com/android/server/wm/TestWindowManagerPolicy.java
similarity index 72%
rename from services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java
rename to services/tests/wmtests/src/com/android/server/wm/TestWindowManagerPolicy.java
index 0165e7d..ba81bd1 100644
--- a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TestWindowManagerPolicy.java
@@ -19,19 +19,17 @@
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
 
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
 
 import android.annotation.Nullable;
 import android.content.Context;
 import android.content.res.CompatibilityInfo;
 import android.content.res.Configuration;
-import android.graphics.Rect;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.util.proto.ProtoOutputStream;
-import android.view.DisplayCutout;
 import android.view.IWindow;
 import android.view.IWindowManager;
 import android.view.KeyEvent;
@@ -48,8 +46,8 @@
 class TestWindowManagerPolicy implements WindowManagerPolicy {
     private final Supplier<WindowManagerService> mWmSupplier;
 
-    int rotationToReport = 0;
-    boolean keyguardShowingAndNotOccluded = false;
+    int mRotationToReport = 0;
+    boolean mKeyguardShowingAndNotOccluded = false;
 
     private Runnable mRunnableWhenAddingSplashScreen;
 
@@ -81,11 +79,6 @@
     }
 
     @Override
-    public void adjustWindowParamsLw(WindowState win, WindowManager.LayoutParams attrs,
-            boolean hasStatusBarServicePermission) {
-    }
-
-    @Override
     public void adjustConfigurationLw(Configuration config, int keyboardPresence,
             int navigationPresence) {
     }
@@ -96,30 +89,6 @@
     }
 
     @Override
-    public int getNonDecorDisplayWidth(int fullWidth, int fullHeight, int rotation, int uiMode,
-            int displayId, DisplayCutout displayCutout) {
-        return 0;
-    }
-
-    @Override
-    public int getNonDecorDisplayHeight(int fullWidth, int fullHeight, int rotation, int uiMode,
-            int displayId, DisplayCutout displayCutout) {
-        return 0;
-    }
-
-    @Override
-    public int getConfigDisplayWidth(int fullWidth, int fullHeight, int rotation, int uiMode,
-            int displayId, DisplayCutout displayCutout) {
-        return 0;
-    }
-
-    @Override
-    public int getConfigDisplayHeight(int fullWidth, int fullHeight, int rotation, int uiMode,
-            int displayId, DisplayCutout displayCutout) {
-        return 0;
-    }
-
-    @Override
     public boolean isKeyguardHostWindow(WindowManager.LayoutParams attrs) {
         return attrs.type == TYPE_STATUS_BAR;
     }
@@ -166,28 +135,7 @@
     }
 
     @Override
-    public int prepareAddWindowLw(WindowState win,
-            WindowManager.LayoutParams attrs) {
-        return 0;
-    }
-
-    @Override
-    public void removeWindowLw(WindowState win) {
-    }
-
-    @Override
-    public int selectAnimationLw(WindowState win, int transit) {
-        return 0;
-    }
-
-    @Override
-    public void selectRotationAnimationLw(int[] anim) {
-    }
-
-    @Override
-    public boolean validateRotationAnimationLw(int exitAnimId, int enterAnimId,
-            boolean forceDefault) {
-        return false;
+    public void setKeyguardCandidateLw(WindowState win) {
     }
 
     @Override
@@ -222,32 +170,11 @@
     }
 
     @Override
-    public int getSystemDecorLayerLw() {
-        return 0;
+    public void applyKeyguardPolicyLw(WindowState win, WindowState imeTarget) {
     }
 
     @Override
-    public void beginPostLayoutPolicyLw(int displayWidth, int displayHeight) {
-    }
-
-    @Override
-    public void applyPostLayoutPolicyLw(WindowState win, WindowManager.LayoutParams attrs,
-            WindowState attached, WindowState imeTarget) {
-    }
-
-    @Override
-    public int finishPostLayoutPolicyLw() {
-        return 0;
-    }
-
-    @Override
-    public boolean allowAppAnimationsLw() {
-        return false;
-    }
-
-    @Override
-    public int focusChangedLw(WindowState lastFocus, WindowState newFocus) {
-        return 0;
+    public void setAllowLockscreenWhenOn(int displayId, boolean allow) {
     }
 
     @Override
@@ -310,7 +237,7 @@
 
     @Override
     public boolean isKeyguardLocked() {
-        return keyguardShowingAndNotOccluded;
+        return mKeyguardShowingAndNotOccluded;
     }
 
     @Override
@@ -330,7 +257,7 @@
 
     @Override
     public boolean isKeyguardShowingAndNotOccluded() {
-        return keyguardShowingAndNotOccluded;
+        return mKeyguardShowingAndNotOccluded;
     }
 
     @Override
@@ -349,11 +276,6 @@
     }
 
     @Override
-    public boolean isShowingDreamLw() {
-        return false;
-    }
-
-    @Override
     public void onKeyguardOccludedChangedLw(boolean occluded) {
     }
 
@@ -399,11 +321,6 @@
     }
 
     @Override
-    public int adjustSystemUiVisibilityLw(int visibility) {
-        return 0;
-    }
-
-    @Override
     public boolean hasNavigationBar() {
         return false;
     }
@@ -421,6 +338,16 @@
     }
 
     @Override
+    public boolean isUserSetupComplete() {
+        return false;
+    }
+
+    @Override
+    public int getUiMode() {
+        return 0;
+    }
+
+    @Override
     public void setCurrentUserLw(int newUserId) {
     }
 
@@ -446,43 +373,6 @@
     }
 
     @Override
-    public void getStableInsetsLw(int displayRotation, int displayWidth, int displayHeight,
-            DisplayCutout cutout, Rect outInsets) {
-    }
-
-    @Override
-    public boolean isNavBarForcedShownLw(WindowState win) {
-        return false;
-    }
-
-    @NavigationBarPosition
-    @Override
-    public int getNavBarPosition() {
-        return NAV_BAR_BOTTOM;
-    }
-
-    @Override
-    public void getNonDecorInsetsLw(int displayRotation, int displayWidth, int displayHeight,
-            DisplayCutout cutout, Rect outInsets) {
-    }
-
-    @Override
-    public boolean isDockSideAllowed(int dockSide, int originalDockSide, int displayWidth,
-            int displayHeight, int displayRotation) {
-        return false;
-    }
-
-    @Override
-    public void onConfigurationChanged(DisplayContentInfo displayContentInfo) {
-    }
-
-    @Override
-    public boolean shouldRotateSeamlessly(DisplayRotation displayRotation, int oldRotation,
-            int newRotation) {
-        return false;
-    }
-
-    @Override
     public void setPipVisibilityLw(boolean visible) {
     }
 
@@ -508,10 +398,6 @@
     }
 
     @Override
-    public void onLockTaskStateChangedLw(int lockTaskState) {
-    }
-
-    @Override
     public boolean setAodShowing(boolean aodShowing) {
         return false;
     }
diff --git a/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java
similarity index 99%
rename from services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java
rename to services/tests/wmtests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java
index 9e22c0a..612f9ad 100644
--- a/services/tests/servicestests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/UnknownAppVisibilityControllerTest.java
@@ -73,7 +73,7 @@
     public void testClear() {
         final AppWindowToken token = WindowTestUtils.createTestAppWindowToken(mDisplayContent);
         mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(token);
-        mDisplayContent.mUnknownAppVisibilityController.clear();;
+        mDisplayContent.mUnknownAppVisibilityController.clear();
         assertTrue(mDisplayContent.mUnknownAppVisibilityController.allResolved());
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/WallpaperControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java
similarity index 81%
rename from services/tests/servicestests/src/com/android/server/wm/WallpaperControllerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java
index 25e73e3..d07230e 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WallpaperControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WallpaperControllerTests.java
@@ -18,11 +18,12 @@
 
 import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+
 import static junit.framework.TestCase.assertNotNull;
 
 import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import android.graphics.Bitmap;
 import android.os.IBinder;
@@ -48,7 +49,7 @@
         synchronized (mWm.mGlobalLock) {
             // No wallpaper
             final DisplayContent dc = createNewDisplay();
-            Bitmap wallpaperBitmap = mWm.mRoot.mWallpaperController.screenshotWallpaperLocked();
+            Bitmap wallpaperBitmap = dc.mWallpaperController.screenshotWallpaperLocked();
             assertNull(wallpaperBitmap);
 
             // No wallpaper WSA Surface
@@ -56,25 +57,25 @@
                     true, dc, true /* ownerCanManageAppTokens */);
             WindowState wallpaperWindow = createWindow(null /* parent */, TYPE_WALLPAPER,
                     wallpaperWindowToken, "wallpaperWindow");
-            wallpaperBitmap = mWallpaperController.screenshotWallpaperLocked();
+            wallpaperBitmap = dc.mWallpaperController.screenshotWallpaperLocked();
             assertNull(wallpaperBitmap);
 
             // Wallpaper with not visible WSA surface.
             wallpaperWindow.mWinAnimator.mSurfaceController = windowSurfaceController;
             wallpaperWindow.mWinAnimator.mLastAlpha = 1;
-            wallpaperBitmap = mWallpaperController.screenshotWallpaperLocked();
+            wallpaperBitmap = dc.mWallpaperController.screenshotWallpaperLocked();
             assertNull(wallpaperBitmap);
 
             when(windowSurfaceController.getShown()).thenReturn(true);
 
             // Wallpaper with WSA alpha set to 0.
             wallpaperWindow.mWinAnimator.mLastAlpha = 0;
-            wallpaperBitmap = mWallpaperController.screenshotWallpaperLocked();
+            wallpaperBitmap = dc.mWallpaperController.screenshotWallpaperLocked();
             assertNull(wallpaperBitmap);
 
             // Wallpaper window with WSA Surface
             wallpaperWindow.mWinAnimator.mLastAlpha = 1;
-            wallpaperBitmap = mWallpaperController.screenshotWallpaperLocked();
+            wallpaperBitmap = dc.mWallpaperController.screenshotWallpaperLocked();
             assertNotNull(wallpaperBitmap);
         }
     }
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowAnimationSpecTest.java b/services/tests/wmtests/src/com/android/server/wm/WindowAnimationSpecTest.java
index 21e5d99..9a825e0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowAnimationSpecTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowAnimationSpecTest.java
@@ -16,14 +16,14 @@
 
 package com.android.server.wm;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_AFTER_ANIM;
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_BEFORE_ANIM;
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_NONE;
 
 import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
 
 import android.graphics.Point;
 import android.graphics.Rect;
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowConfigurationTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowConfigurationTests.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/wm/WindowConfigurationTests.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowConfigurationTests.java
index 3643457..885a7e0 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowConfigurationTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowConfigurationTests.java
@@ -231,7 +231,7 @@
 
         final Configuration config = new Configuration();
         final WindowConfiguration winConfig = config.windowConfiguration;
-        stackController.adjustConfigurationForBounds(bounds, null /*insetBounds*/,
+        stackController.adjustConfigurationForBounds(bounds,
                 new Rect() /*nonDecorBounds*/, new Rect() /*stableBounds*/, false /*overrideWidth*/,
                 false /*overrideHeight*/, mDisplayInfo.logicalDensityDpi, config, parentConfig,
                 windowingMode);
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContainerControllerTests.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/WindowContainerControllerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowContainerControllerTests.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
similarity index 97%
rename from services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
index e59afd6..d4a32cf 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
@@ -22,6 +22,13 @@
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyFloat;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.server.wm.WindowContainer.POSITION_BOTTOM;
 import static com.android.server.wm.WindowContainer.POSITION_TOP;
 
@@ -30,13 +37,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyFloat;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
 
 import android.content.res.Configuration;
 import android.graphics.Rect;
@@ -459,13 +459,13 @@
     @Test
     public void testGetOrientation_childSpecified() {
         testGetOrientation_childSpecifiedConfig(false, SCREEN_ORIENTATION_LANDSCAPE,
-            SCREEN_ORIENTATION_LANDSCAPE);
+                SCREEN_ORIENTATION_LANDSCAPE);
         testGetOrientation_childSpecifiedConfig(false, SCREEN_ORIENTATION_UNSET,
-            SCREEN_ORIENTATION_UNSPECIFIED);
+                SCREEN_ORIENTATION_UNSPECIFIED);
     }
 
     private void testGetOrientation_childSpecifiedConfig(boolean childVisible, int childOrientation,
-        int expectedOrientation) {
+            int expectedOrientation) {
         final TestWindowContainerBuilder builder = new TestWindowContainerBuilder(mWm);
         final TestWindowContainer root = builder.setLayer(0).build();
         root.setFillsParent(true);
@@ -704,7 +704,7 @@
         final TestWindowContainer root = builder.build();
 
         final TestWindowContainer child = root.addChildWindow();
-        child.setBounds(new Rect(1,1,2,2));
+        child.setBounds(new Rect(1, 1, 2, 2));
 
         final TestWindowContainer grandChild = mock(TestWindowContainer.class);
 
@@ -742,7 +742,7 @@
         private static final Comparator<TestWindowContainer> SUBLAYER_COMPARATOR = (w1, w2) -> {
             final int layer1 = w1.mLayer;
             final int layer2 = w2.mLayer;
-            if (layer1 < layer2 || (layer1 == layer2 && layer2 < 0 )) {
+            if (layer1 < layer2 || (layer1 == layer2 && layer2 < 0)) {
                 // We insert the child window into the list ordered by the mLayer. For same layers,
                 // the negative one should go below others; the positive one should go above others.
                 return -1;
@@ -782,7 +782,7 @@
         }
 
         TestWindowContainer addChildWindow() {
-            return addChildWindow(new TestWindowContainerBuilder(mService).setLayer(1));
+            return addChildWindow(new TestWindowContainerBuilder(mWmService).setLayer(1));
         }
 
         @Override
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTraversalTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTraversalTests.java
similarity index 93%
rename from services/tests/servicestests/src/com/android/server/wm/WindowContainerTraversalTests.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowContainerTraversalTests.java
index fcde08e..4b666f5 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowContainerTraversalTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTraversalTests.java
@@ -21,9 +21,10 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
 import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
 
 import android.platform.test.annotations.Presubmit;
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowFrameTests.java
similarity index 96%
rename from services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowFrameTests.java
index b0c8d8b..60a8aeb 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowFrameTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowFrameTests.java
@@ -76,7 +76,7 @@
 
     private static class TaskWithBounds extends Task {
         final Rect mBounds;
-        final Rect mInsetBounds = new Rect();
+        final Rect mOverrideDisplayedBounds = new Rect();
         boolean mFullscreenForTest = true;
 
         TaskWithBounds(TaskStack stack, WindowManagerService wm, Rect bounds) {
@@ -100,8 +100,8 @@
             outBounds.set(mBounds);
         }
         @Override
-        void getTempInsetBounds(Rect outBounds) {
-            outBounds.set(mInsetBounds);
+        Rect getOverrideDisplayedBounds() {
+            return mOverrideDisplayedBounds;
         }
         @Override
         boolean isFullscreen() {
@@ -113,9 +113,6 @@
 
     @Before
     public void setUp() throws Exception {
-        // Just any non zero value.
-        mWm.mSystemDecorLayer = 10000;
-
         mWindowToken = WindowTestUtils.createTestAppWindowToken(
                 mWm.getDefaultDisplayContentLocked());
         mStubStack = new TaskStack(mWm, 0, null);
@@ -293,7 +290,7 @@
         w.mRequestedHeight = 300;
         w.mAttrs.gravity = Gravity.RIGHT | Gravity.TOP;
         w.computeFrameLw();
-         assertFrame(w, 700, 0, 1000, 300);
+        assertFrame(w, 700, 0, 1000, 300);
         w.mAttrs.gravity = Gravity.RIGHT | Gravity.BOTTOM;
         w.computeFrameLw();
         assertFrame(w, 700, 700, 1000, 1000);
@@ -346,14 +343,14 @@
                 taskBottom - contentInsetBottom));
 
         pf.set(0, 0, logicalWidth, logicalHeight);
-        // However if we set temp inset bounds, the insets will be computed
-        // as if our window was laid out there,  but it will be laid out according to
-        // the task bounds.
+        // If we set displayed bounds, the insets will be computed with the main task bounds
+        // but the frame will be positioned according to the displayed bounds.
         final int insetLeft = logicalWidth / 5;
         final int insetTop = logicalHeight / 5;
         final int insetRight = insetLeft + (taskRight - taskLeft);
         final int insetBottom = insetTop + (taskBottom - taskTop);
-        task.mInsetBounds.set(insetLeft, insetTop, insetRight, insetBottom);
+        task.mOverrideDisplayedBounds.set(taskBounds);
+        task.mBounds.set(insetLeft, insetTop, insetRight, insetBottom);
         windowFrames.setFrames(pf, pf, pf, cf, cf, pf, cf, mEmptyRect);
         w.computeFrameLw();
         assertFrame(w, taskLeft, taskTop, taskRight, taskBottom);
@@ -433,7 +430,6 @@
         final int taskBottom = logicalHeight / 4 * 3;
         final Rect taskBounds = new Rect(taskLeft, taskTop, taskRight, taskBottom);
         final TaskWithBounds task = new TaskWithBounds(mStubStack, mWm, taskBounds);
-        task.mInsetBounds.set(taskLeft, taskTop, taskRight, taskBottom);
         task.mFullscreenForTest = false;
         WindowState w = createWindow(task, MATCH_PARENT, MATCH_PARENT);
         w.mAttrs.gravity = Gravity.LEFT | Gravity.TOP;
@@ -489,12 +485,12 @@
     }
 
     @Test
-    public void testDisplayCutout_tempInsetBounds() {
+    public void testDisplayCutout_tempDisplayedBounds() {
         // Regular fullscreen task and window
         final TaskWithBounds task = new TaskWithBounds(mStubStack, mWm,
-                new Rect(0, -500, 1000, 1500));
+                new Rect(0, 0, 1000, 2000));
         task.mFullscreenForTest = false;
-        task.mInsetBounds.set(0, 0, 1000, 2000);
+        task.setOverrideDisplayedBounds(new Rect(0, -500, 1000, 1500));
         WindowState w = createWindow(task, MATCH_PARENT, MATCH_PARENT);
         w.mAttrs.gravity = Gravity.LEFT | Gravity.TOP;
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRule.java b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRule.java
similarity index 88%
rename from services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRule.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRule.java
index 9a13efb..266d884 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRule.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRule.java
@@ -21,14 +21,15 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 
 import android.app.ActivityManagerInternal;
 import android.content.Context;
@@ -100,6 +101,7 @@
                         mock(PowerManagerInternal.class));
                 final PowerManagerInternal pm =
                         LocalServices.getService(PowerManagerInternal.class);
+                doNothing().when(pm).registerLowPowerModeObserver(any());
                 PowerSaveState state = new PowerSaveState.Builder().build();
                 doReturn(state).when(pm).getLowPowerState(anyInt());
 
@@ -146,8 +148,8 @@
 
                 final Display display = mService.mDisplayManager.getDisplay(DEFAULT_DISPLAY);
                 final DisplayWindowController dcw = new DisplayWindowController(display, mService);
-                // Display creation is driven by the ActivityManagerService via ActivityStackSupervisor.
-                // We emulate those steps here.
+                // Display creation is driven by the ActivityManagerService via
+                // ActivityStackSupervisor. We emulate those steps here.
                 mService.mRoot.createDisplayContent(display, dcw);
             }
 
@@ -171,21 +173,21 @@
         };
     }
 
-    public WindowManagerService getWindowManagerService() {
+    WindowManagerService getWindowManagerService() {
         return mService;
     }
 
-    public TestWindowManagerPolicy getWindowManagerPolicy() {
-        return mPolicy;
-    }
-
-    public void waitUntilWindowManagerHandlersIdle() {
+    void waitUntilWindowManagerHandlersIdle() {
         final WindowManagerService wm = getWindowManagerService();
-        if (wm != null) {
-            wm.mH.runWithScissors(() -> { }, 0);
-            wm.mAnimationHandler.runWithScissors(() -> { }, 0);
-            SurfaceAnimationThread.getHandler().runWithScissors(() -> { }, 0);
+        if (wm == null) {
+            return;
         }
+        wm.mH.removeCallbacksAndMessages(null);
+        wm.mAnimationHandler.removeCallbacksAndMessages(null);
+        SurfaceAnimationThread.getHandler().removeCallbacksAndMessages(null);
+        wm.mH.runWithScissors(() -> { }, 0);
+        wm.mAnimationHandler.runWithScissors(() -> { }, 0);
+        SurfaceAnimationThread.getHandler().runWithScissors(() -> { }, 0);
     }
 
     private void destroyAllSurfaceTransactions() {
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRuleTest.java b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRuleTest.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/WindowManagerServiceRuleTest.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRuleTest.java
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
similarity index 97%
rename from services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
index 118ce89..7f78034 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
@@ -32,6 +32,12 @@
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
 import static org.junit.Assert.assertEquals;
@@ -43,11 +49,6 @@
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
 
 import android.graphics.Insets;
 import android.graphics.Matrix;
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTestUtils.java b/services/tests/wmtests/src/com/android/server/wm/WindowTestUtils.java
index 3b4ab38..aa0ecf8 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowTestUtils.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestUtils.java
@@ -16,20 +16,34 @@
 
 package com.android.server.wm;
 
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.anyBoolean;
-import static org.mockito.Mockito.anyFloat;
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
+import static android.app.AppOpsManager.OP_NONE;
+import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyFloat;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+import static com.android.server.wm.WindowContainer.POSITION_TOP;
+
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import android.app.ActivityManager;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.res.Configuration;
 import android.graphics.Rect;
+import android.os.Binder;
+import android.os.IBinder;
 import android.view.Display;
+import android.view.IApplicationToken;
+import android.view.IWindow;
 import android.view.Surface;
+import android.view.SurfaceControl.Transaction;
+import android.view.WindowManager;
 
 import org.mockito.invocation.InvocationOnMock;
 
@@ -38,13 +52,30 @@
  * to WindowManager related test functionality.
  */
 public class WindowTestUtils {
+    private static int sNextTaskId = 0;
 
     /** An extension of {@link DisplayContent} to gain package scoped access. */
     public static class TestDisplayContent extends DisplayContent {
 
         private TestDisplayContent(Display display, WindowManagerService service,
-                WallpaperController wallpaperController, DisplayWindowController controller) {
-            super(display, service, wallpaperController, controller);
+                DisplayWindowController controller) {
+            super(display, service, controller);
+        }
+
+        /**
+         * Stubbing method of non-public parent class isn't supported, so here explicitly overrides.
+         */
+        @Override
+        public DisplayRotation getDisplayRotation() {
+            return null;
+        }
+
+        /**
+         * Stubbing method of non-public parent class isn't supported, so here explicitly overrides.
+         */
+        @Override
+        DockedStackDividerController getDockedDividerController() {
+            return null;
         }
 
         /** Create a mocked default {@link DisplayContent}. */
@@ -58,7 +89,7 @@
 
             final DisplayRotation displayRotation = new DisplayRotation(
                     mock(WindowManagerService.class), displayContent, displayPolicy,
-                    context, new Object());
+                    mock(DisplayWindowSettings.class), context, new Object());
             displayRotation.mPortraitRotation = Surface.ROTATION_0;
             displayRotation.mLandscapeRotation = Surface.ROTATION_90;
             displayRotation.mUpsideDownRotation = Surface.ROTATION_180;
@@ -70,6 +101,15 @@
         }
     }
 
+    /** Create a mocked default {@link DisplayContent}. */
+    public static TestDisplayContent createTestDisplayContent() {
+        final TestDisplayContent displayContent = mock(TestDisplayContent.class);
+        DockedStackDividerController divider = mock(DockedStackDividerController.class);
+        when(displayContent.getDockedDividerController()).thenReturn(divider);
+
+        return displayContent;
+    }
+
     /**
      * Creates a mock instance of {@link StackWindowController}.
      */
@@ -80,16 +120,27 @@
         // many components rely on the {@link StackWindowController#adjustConfigurationForBounds}
         // to properly set bounds values in the configuration. We must mimick those actions here.
         doAnswer((InvocationOnMock invocationOnMock) -> {
-            final Configuration config = invocationOnMock.<Configuration>getArgument(7);
+            final Configuration config = invocationOnMock.<Configuration>getArgument(6);
             final Rect bounds = invocationOnMock.<Rect>getArgument(0);
             config.windowConfiguration.setBounds(bounds);
             return null;
-        }).when(controller).adjustConfigurationForBounds(any(), any(), any(), any(),
+        }).when(controller).adjustConfigurationForBounds(any(), any(), any(),
                 anyBoolean(), anyBoolean(), anyFloat(), any(), any(), anyInt());
 
         return controller;
     }
 
+    /** Creates a {@link Task} and adds it to the specified {@link TaskStack}. */
+    public static Task createTaskInStack(WindowManagerService service, TaskStack stack,
+            int userId) {
+        synchronized (service.mGlobalLock) {
+            final Task newTask = new Task(sNextTaskId++, stack, userId, service, 0, false,
+                    new ActivityManager.TaskDescription(), null);
+            stack.addTask(newTask, POSITION_TOP);
+            return newTask;
+        }
+    }
+
     /**
      * An extension of {@link TestTaskStack}, which overrides package scoped methods that would not
      * normally be mocked out.
@@ -104,4 +155,233 @@
             // Do nothing.
         }
     }
+
+    static TestAppWindowToken createTestAppWindowToken(DisplayContent dc) {
+        synchronized (dc.mWmService.mGlobalLock) {
+            return new TestAppWindowToken(dc);
+        }
+    }
+
+    /** Used so we can gain access to some protected members of the {@link AppWindowToken} class. */
+    public static class TestAppWindowToken extends AppWindowToken {
+        boolean mOnTop = false;
+        private Transaction mPendingTransactionOverride;
+
+        private TestAppWindowToken(DisplayContent dc) {
+            super(dc.mWmService, new IApplicationToken.Stub() {
+                @Override
+                public String getName() {
+                    return null;
+                }
+            }, new ComponentName("", ""), false, dc, true /* fillsParent */);
+        }
+
+        TestAppWindowToken(WindowManagerService service, IApplicationToken token,
+                ComponentName activityComponent, boolean voiceInteraction, DisplayContent dc,
+                long inputDispatchingTimeoutNanos, boolean fullscreen, boolean showForAllUsers,
+                int targetSdk, int orientation, int rotationAnimationHint, int configChanges,
+                boolean launchTaskBehind, boolean alwaysFocusable, ActivityRecord activityRecord) {
+            super(service, token, activityComponent, voiceInteraction, dc,
+                    inputDispatchingTimeoutNanos, fullscreen, showForAllUsers, targetSdk,
+                    orientation, rotationAnimationHint, configChanges, launchTaskBehind,
+                    alwaysFocusable, activityRecord);
+        }
+
+        int getWindowsCount() {
+            return mChildren.size();
+        }
+
+        boolean hasWindow(WindowState w) {
+            return mChildren.contains(w);
+        }
+
+        WindowState getFirstChild() {
+            return mChildren.peekFirst();
+        }
+
+        WindowState getLastChild() {
+            return mChildren.peekLast();
+        }
+
+        int positionInParent() {
+            return getParent().mChildren.indexOf(this);
+        }
+
+        void setIsOnTop(boolean onTop) {
+            mOnTop = onTop;
+        }
+
+        @Override
+        boolean isOnTop() {
+            return mOnTop;
+        }
+
+        void setPendingTransaction(Transaction transaction) {
+            mPendingTransactionOverride = transaction;
+        }
+
+        @Override
+        public Transaction getPendingTransaction() {
+            return mPendingTransactionOverride == null
+                    ? super.getPendingTransaction()
+                    : mPendingTransactionOverride;
+        }
+    }
+
+    static TestWindowToken createTestWindowToken(int type, DisplayContent dc) {
+        return createTestWindowToken(type, dc, false /* persistOnEmpty */);
+    }
+
+    static TestWindowToken createTestWindowToken(int type, DisplayContent dc,
+            boolean persistOnEmpty) {
+        synchronized (dc.mWmService.mGlobalLock) {
+            return new TestWindowToken(type, dc, persistOnEmpty);
+        }
+    }
+
+    /* Used so we can gain access to some protected members of the {@link WindowToken} class */
+    public static class TestWindowToken extends WindowToken {
+
+        private TestWindowToken(int type, DisplayContent dc, boolean persistOnEmpty) {
+            super(dc.mWmService, mock(IBinder.class), type, persistOnEmpty, dc,
+                    false /* ownerCanManageAppTokens */);
+        }
+
+        int getWindowsCount() {
+            return mChildren.size();
+        }
+
+        boolean hasWindow(WindowState w) {
+            return mChildren.contains(w);
+        }
+    }
+
+    /* Used so we can gain access to some protected members of the {@link Task} class */
+    public static class TestTask extends Task {
+        boolean mShouldDeferRemoval = false;
+        boolean mOnDisplayChangedCalled = false;
+        private boolean mIsAnimating = false;
+
+        TestTask(int taskId, TaskStack stack, int userId, WindowManagerService service,
+                int resizeMode, boolean supportsPictureInPicture,
+                TaskWindowContainerController controller) {
+            super(taskId, stack, userId, service, resizeMode, supportsPictureInPicture,
+                    new ActivityManager.TaskDescription(), controller);
+        }
+
+        boolean shouldDeferRemoval() {
+            return mShouldDeferRemoval;
+        }
+
+        int positionInParent() {
+            return getParent().mChildren.indexOf(this);
+        }
+
+        @Override
+        void onDisplayChanged(DisplayContent dc) {
+            super.onDisplayChanged(dc);
+            mOnDisplayChangedCalled = true;
+        }
+
+        @Override
+        boolean isSelfAnimating() {
+            return mIsAnimating;
+        }
+
+        void setLocalIsAnimating(boolean isAnimating) {
+            mIsAnimating = isAnimating;
+        }
+    }
+
+    /**
+     * Used so we can gain access to some protected members of {@link TaskWindowContainerController}
+     * class.
+     */
+    public static class TestTaskWindowContainerController extends TaskWindowContainerController {
+
+        static final TaskWindowContainerListener NOP_LISTENER = new TaskWindowContainerListener() {
+            @Override
+            public void registerConfigurationChangeListener(
+                    ConfigurationContainerListener listener) {
+            }
+
+            @Override
+            public void unregisterConfigurationChangeListener(
+                    ConfigurationContainerListener listener) {
+            }
+
+            @Override
+            public void onSnapshotChanged(ActivityManager.TaskSnapshot snapshot) {
+            }
+
+            @Override
+            public void requestResize(Rect bounds, int resizeMode) {
+            }
+        };
+
+        TestTaskWindowContainerController(WindowTestsBase testsBase) {
+            this(testsBase.createStackControllerOnDisplay(testsBase.mDisplayContent));
+        }
+
+        TestTaskWindowContainerController(StackWindowController stackController) {
+            super(sNextTaskId++, NOP_LISTENER, stackController, 0 /* userId */, null /* bounds */,
+                    RESIZE_MODE_UNRESIZEABLE, false /* supportsPictureInPicture */, true /* toTop*/,
+                    true /* showForAllUsers */, new ActivityManager.TaskDescription(),
+                    stackController.mService);
+        }
+
+        @Override
+        TestTask createTask(int taskId, TaskStack stack, int userId, int resizeMode,
+                boolean supportsPictureInPicture, ActivityManager.TaskDescription taskDescription) {
+            return new TestTask(taskId, stack, userId, mService, resizeMode,
+                    supportsPictureInPicture, this);
+        }
+    }
+
+    public static class TestIApplicationToken implements IApplicationToken {
+
+        private final Binder mBinder = new Binder();
+        @Override
+        public IBinder asBinder() {
+            return mBinder;
+        }
+        @Override
+        public String getName() {
+            return null;
+        }
+    }
+
+    /** Used to track resize reports. */
+    public static class TestWindowState extends WindowState {
+        boolean mResizeReported;
+
+        TestWindowState(WindowManagerService service, Session session, IWindow window,
+                WindowManager.LayoutParams attrs, WindowToken token) {
+            super(service, session, window, token, null, OP_NONE, 0, attrs, 0, 0,
+                    false /* ownerCanAddInternalSystemWindow */);
+        }
+
+        @Override
+        void reportResized() {
+            super.reportResized();
+            mResizeReported = true;
+        }
+
+        @Override
+        public boolean isGoneForLayoutLw() {
+            return false;
+        }
+
+        @Override
+        void updateResizingWindowIfNeeded() {
+            // Used in AppWindowTokenTests#testLandscapeSeascapeRotationRelayout to deceive
+            // the system that it can actually update the window.
+            boolean hadSurface = mHasSurface;
+            mHasSurface = true;
+
+            super.updateResizingWindowIfNeeded();
+
+            mHasSurface = hadSurface;
+        }
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
index 53858c7..b3f56e7 100644
--- a/services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
@@ -37,7 +37,7 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
-import static org.mockito.Mockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
 
 import android.content.Context;
 import android.content.res.Configuration;
@@ -90,7 +90,6 @@
     WindowState mChildAppWindowAbove;
     WindowState mChildAppWindowBelow;
     HashSet<WindowState> mCommonWindows;
-    WallpaperController mWallpaperController;
 
     @Rule
     public final DexmakerShareClassLoaderRule mDexmakerShareClassLoaderRule =
@@ -119,8 +118,6 @@
             mWm = mWmRule.getWindowManagerService();
             beforeCreateDisplay();
 
-            mWallpaperController = new WallpaperController(mWm);
-
             context.getDisplay().getDisplayInfo(mDisplayInfo);
             mDisplayContent = createNewDisplay();
             mWm.mDisplayEnabled = true;
@@ -363,8 +360,7 @@
         final Display display = new Display(DisplayManagerGlobal.getInstance(), displayId,
                 displayInfo, DEFAULT_DISPLAY_ADJUSTMENTS);
         synchronized (mWm.mGlobalLock) {
-            return new DisplayContent(display, mWm, mWallpaperController,
-                    mock(DisplayWindowController.class));
+            return new DisplayContent(display, mWm, mock(DisplayWindowController.class));
         }
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java
rename to services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTracingTest.java b/services/tests/wmtests/src/com/android/server/wm/WindowTracingTest.java
index 0445ea0..46d6835 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowTracingTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTracingTest.java
@@ -18,16 +18,17 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyZeroInteractions;
+
 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.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
 
 import android.content.Context;
 import android.platform.test.annotations.Presubmit;
diff --git a/services/tests/servicestests/src/com/android/server/wm/ZOrderingTests.java b/services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java
similarity index 100%
rename from services/tests/servicestests/src/com/android/server/wm/ZOrderingTests.java
rename to services/tests/wmtests/src/com/android/server/wm/ZOrderingTests.java
diff --git a/services/usage/java/com/android/server/usage/AppStandbyController.java b/services/usage/java/com/android/server/usage/AppStandbyController.java
index 152831f..4f573a4 100644
--- a/services/usage/java/com/android/server/usage/AppStandbyController.java
+++ b/services/usage/java/com/android/server/usage/AppStandbyController.java
@@ -27,8 +27,6 @@
 import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_EXEMPTED_SYNC_SCHEDULED_DOZE;
 import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_EXEMPTED_SYNC_SCHEDULED_NON_DOZE;
 import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_EXEMPTED_SYNC_START;
-import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_FOREGROUND_SERVICE_START;
-import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_FOREGROUND_SERVICE_STOP;
 import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_MOVE_TO_BACKGROUND;
 import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_MOVE_TO_FOREGROUND;
 import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_NOTIFICATION_SEEN;
@@ -846,8 +844,6 @@
             // Inform listeners if necessary
             if ((event.mEventType == UsageEvents.Event.MOVE_TO_FOREGROUND
                     || event.mEventType == UsageEvents.Event.MOVE_TO_BACKGROUND
-                    || event.mEventType == UsageEvents.Event.FOREGROUND_SERVICE_START
-                    || event.mEventType == UsageEvents.Event.FOREGROUND_SERVICE_STOP
                     || event.mEventType == UsageEvents.Event.SYSTEM_INTERACTION
                     || event.mEventType == UsageEvents.Event.USER_INTERACTION
                     || event.mEventType == UsageEvents.Event.NOTIFICATION_SEEN
@@ -900,10 +896,6 @@
         switch (eventType) {
             case UsageEvents.Event.MOVE_TO_FOREGROUND: return REASON_SUB_USAGE_MOVE_TO_FOREGROUND;
             case UsageEvents.Event.MOVE_TO_BACKGROUND: return REASON_SUB_USAGE_MOVE_TO_BACKGROUND;
-            case UsageEvents.Event.FOREGROUND_SERVICE_START:
-                return REASON_SUB_USAGE_FOREGROUND_SERVICE_START;
-            case UsageEvents.Event.FOREGROUND_SERVICE_STOP:
-                return REASON_SUB_USAGE_FOREGROUND_SERVICE_STOP;
             case UsageEvents.Event.SYSTEM_INTERACTION: return REASON_SUB_USAGE_SYSTEM_INTERACTION;
             case UsageEvents.Event.USER_INTERACTION: return REASON_SUB_USAGE_USER_INTERACTION;
             case UsageEvents.Event.NOTIFICATION_SEEN: return REASON_SUB_USAGE_NOTIFICATION_SEEN;
diff --git a/services/usage/java/com/android/server/usage/UsageStatsXmlV1.java b/services/usage/java/com/android/server/usage/UsageStatsXmlV1.java
index d940620..01e566c 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsXmlV1.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsXmlV1.java
@@ -20,6 +20,7 @@
 import android.app.usage.UsageStats;
 import android.content.res.Configuration;
 import android.util.ArrayMap;
+import android.util.Log;
 
 import com.android.internal.util.XmlUtils;
 
@@ -89,11 +90,23 @@
         // Apply the offset to the beginTime to find the absolute time.
         stats.mLastTimeUsed = statsOut.beginTime + XmlUtils.readLongAttribute(
                 parser, LAST_TIME_ACTIVE_ATTR);
-        stats.mLastTimeForegroundServiceUsed = statsOut.beginTime + XmlUtils.readLongAttribute(
-                parser, LAST_TIME_SERVICE_USED_ATTR);
+
+        try {
+            stats.mLastTimeForegroundServiceUsed = statsOut.beginTime + XmlUtils.readLongAttribute(
+                    parser, LAST_TIME_SERVICE_USED_ATTR);
+        } catch (IOException e) {
+            Log.e(TAG, "Failed to parse mLastTimeForegroundServiceUsed", e);
+        }
+
         stats.mTotalTimeInForeground = XmlUtils.readLongAttribute(parser, TOTAL_TIME_ACTIVE_ATTR);
-        stats.mTotalTimeForegroundServiceUsed = XmlUtils.readLongAttribute(parser,
+
+        try {
+            stats.mTotalTimeForegroundServiceUsed = XmlUtils.readLongAttribute(parser,
                 TOTAL_TIME_SERVICE_USED_ATTR);
+        } catch (IOException e) {
+            Log.e(TAG, "Failed to parse mTotalTimeForegroundServiceUsed", e);
+        }
+
         stats.mLastEvent = XmlUtils.readIntAttribute(parser, LAST_EVENT_ATTR);
         stats.mAppLaunchCount = XmlUtils.readIntAttribute(parser, APP_LAUNCH_COUNT_ATTR,
                 0);
@@ -350,8 +363,17 @@
         }
 
         statsOut.endTime = statsOut.beginTime + XmlUtils.readLongAttribute(parser, END_TIME_ATTR);
-        statsOut.majorVersion = XmlUtils.readIntAttribute(parser, MAJOR_VERSION_ATTR);
-        statsOut.minorVersion = XmlUtils.readIntAttribute(parser, MINOR_VERSION_ATTR);
+        try {
+            statsOut.majorVersion = XmlUtils.readIntAttribute(parser, MAJOR_VERSION_ATTR);
+        } catch (IOException e) {
+            Log.e(TAG, "Failed to parse majorVersion", e);
+        }
+
+        try {
+            statsOut.minorVersion = XmlUtils.readIntAttribute(parser, MINOR_VERSION_ATTR);
+        } catch (IOException e) {
+            Log.e(TAG, "Failed to parse minorVersion", e);
+        }
 
         int eventCode;
         int outerDepth = parser.getDepth();
diff --git a/startop/view_compiler/Android.bp b/startop/view_compiler/Android.bp
index 0c40a6b..de40e0d 100644
--- a/startop/view_compiler/Android.bp
+++ b/startop/view_compiler/Android.bp
@@ -24,7 +24,6 @@
         "libdexfile",
         "slicer",
     ],
-    cppflags: ["-std=c++17"],
 }
 
 cc_library_host_static {
diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index d97f0c5f..143b323 100644
--- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -304,4 +304,10 @@
      * @see TelecomServiceImpl#handleCallIntent
      */
     void handleCallIntent(in Intent intent);
+
+    void setTestDefaultCallScreeningApp(String packageName);
+
+    void addOrRemoveTestCallCompanionApp(String packageName, boolean isAdded);
+
+    void setTestAutoModeApp(String packageName);
 }
diff --git a/telephony/OWNERS b/telephony/OWNERS
index 054288b..2236cba 100644
--- a/telephony/OWNERS
+++ b/telephony/OWNERS
@@ -13,3 +13,4 @@
 shuoq@google.com
 refuhoo@google.com
 paulye@google.com
+nazaninb@google.com
\ No newline at end of file
diff --git a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml b/telephony/java/android/telephony/AvailableNetworkInfo.aidl
similarity index 69%
copy from packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
copy to telephony/java/android/telephony/AvailableNetworkInfo.aidl
index 5ca9d15..1d4378c 100644
--- a/packages/overlays/ExperimentNavigationBarSlimOverlay/res/values/strings.xml
+++ b/telephony/java/android/telephony/AvailableNetworkInfo.aidl
@@ -1,6 +1,4 @@
-<?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");
@@ -15,8 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Name of overlay [CHAR LIMIT=64] -->
-    <string name="experiment_navigationbar_overlay">Slim Navigation Bar Experiment</string>
-</resources>
\ No newline at end of file
+
+package android.telephony;
+
+parcelable AvailableNetworkInfo;
diff --git a/telephony/java/android/telephony/AvailableNetworkInfo.java b/telephony/java/android/telephony/AvailableNetworkInfo.java
new file mode 100644
index 0000000..fe07370
--- /dev/null
+++ b/telephony/java/android/telephony/AvailableNetworkInfo.java
@@ -0,0 +1,168 @@
+/*
+ * 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.telephony;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Defines available network information which includes corresponding subscription id,
+ * network plmns and corresponding priority to be used for network selection by Alternative Network
+ * Service.
+ */
+public final class AvailableNetworkInfo implements Parcelable {
+
+    /*
+     * Defines number of priority level high.
+     */
+    public static final int PRIORITY_HIGH = 1;
+
+    /*
+     * Defines number of priority level medium.
+     */
+    public static final int PRIORITY_MED = 2;
+
+    /*
+     * Defines number of priority level low.
+     */
+    public static final int PRIORITY_LOW = 3;
+
+    /**
+     * subscription Id of the available network. This value must be one of the entry retrieved from
+     * {@link SubscriptionManager#getOpportunisticSubscriptions}
+     */
+    private int mSubId;
+
+    /**
+     * Priority for the subscription id.
+     * Priorities are in the range of 1 to 3 where 1
+     * has the highest priority.
+     */
+    private int mPriority;
+
+    /**
+     * Describes the List of PLMN ids (MCC-MNC) associated with mSubId.
+     * If this entry is left empty, then the platform software will not scan the network
+     * to revalidate the input.
+     */
+    private ArrayList<String> mMccMncs;
+
+    /**
+     * Return subscription Id of the available network.
+     * This value must be one of the entry retrieved from
+     * {@link SubscriptionManager#getOpportunisticSubscriptions}
+     * @return subscription id
+     */
+    public int getSubId() {
+        return mSubId;
+    }
+
+    /**
+     * Return priority for the subscription id. Valid value will be within
+     * [{@link AvailableNetworkInfo#PRIORITY_HIGH}, {@link AvailableNetworkInfo#PRIORITY_LOW}]
+     * @return priority level
+     */
+    public int getPriority() {
+        return mPriority;
+    }
+
+    /**
+     * Return List of PLMN ids (MCC-MNC) associated with the sub ID.
+     * If this entry is left empty, then the platform software will not scan the network
+     * to revalidate the input.
+     * @return list of PLMN ids
+     */
+    public List<String> getMccMncs() {
+        return (List<String>) mMccMncs.clone();
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(mSubId);
+        dest.writeInt(mPriority);
+        dest.writeStringList(mMccMncs);
+    }
+
+    private AvailableNetworkInfo(Parcel in) {
+        mSubId = in.readInt();
+        mPriority = in.readInt();
+        in.readStringList(mMccMncs);
+    }
+
+    public AvailableNetworkInfo(int subId, int priority, ArrayList<String> mccMncs) {
+        mSubId = subId;
+        mPriority = priority;
+        mMccMncs = new ArrayList<String>(mccMncs);
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        AvailableNetworkInfo ani;
+
+        try {
+            ani = (AvailableNetworkInfo) o;
+        } catch (ClassCastException ex) {
+            return false;
+        }
+
+        if (o == null) {
+            return false;
+        }
+
+        return (mSubId == ani.mSubId
+                && mPriority == ani.mPriority
+                && (((mMccMncs != null)
+                && mMccMncs.equals(ani.mMccMncs))));
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mSubId, mPriority, mMccMncs);
+    }
+
+    public static final Parcelable.Creator<AvailableNetworkInfo> CREATOR =
+            new Creator<AvailableNetworkInfo>() {
+                @Override
+                public AvailableNetworkInfo createFromParcel(Parcel in) {
+                    return new AvailableNetworkInfo(in);
+                }
+
+                @Override
+                public AvailableNetworkInfo[] newArray(int size) {
+                    return new AvailableNetworkInfo[size];
+                }
+            };
+
+    @Override
+    public String toString() {
+        return ("AvailableNetworkInfo:"
+                + " mSubId: " + mSubId
+                + " mPriority: " + mPriority
+                + " mMccMncs: " + Arrays.toString(mMccMncs.toArray()));
+    }
+}
+
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index bcc0e6b..62cead1 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -1023,9 +1023,9 @@
     public static final String KEY_HIDE_ENHANCED_4G_LTE_BOOL = "hide_enhanced_4g_lte_bool";
 
     /**
-     * Default Enhanced 4G LTE mode enabled. When this is {@code true}, Enhanced 4G LTE mode by
-     * default is on, otherwise if {@code false}, Enhanced 4G LTE mode by default is off.
-     * @hide
+     * Sets the default state for the "Enhanced 4G LTE" or "Advanced Calling" mode toggle set by the
+     * user. When this is {@code true}, this mode by default is on, otherwise if {@code false},
+     * this mode by default is off.
      */
     public static final String KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL =
             "enhanced_4g_lte_on_by_default_bool";
@@ -1154,20 +1154,33 @@
      */
     public static final String KEY_CARRIER_NAME_STRING = "carrier_name_string";
 
- /**
-  * The Component Name of a carrier-provided CallScreeningService implementation. Telecom will
-  * bind to {@link android.telecom.CallScreeningService} for ALL incoming calls and provide
-  * the carrier
-  * CallScreeningService with the opportunity to allow or block calls.
-  * <p>
-  * The String includes the package name/the class name.
-  * Example:
-  * <item>com.android.carrier/com.android.carrier.callscreeningserviceimpl</item>
-  * <p>
-  * Using {@link ComponentName#flattenToString()} to convert a ComponentName object to String.
-  * Using {@link ComponentName#unflattenFromString(String)} to convert a String object to a
-  * ComponentName.
-  */
+    /**
+     * String to override sim country iso.
+     * Sim country iso is based on sim MCC which is coarse and doesn't work with dual IMSI SIM where
+     * a SIM can have multiple MCC from different countries.
+     * Instead, each sim carrier should have a single country code, apply per carrier based iso
+     * code as an override. The overridden value can be read from
+     * {@link TelephonyManager#getSimCountryIso()} and {@link SubscriptionInfo#getCountryIso()}
+     *
+     * @hide
+     */
+    public static final String KEY_SIM_COUNTRY_ISO_OVERRIDE_STRING =
+            "sim_country_iso_override_string";
+
+   /**
+    * The Component Name of a carrier-provided CallScreeningService implementation. Telecom will
+    * bind to {@link android.telecom.CallScreeningService} for ALL incoming calls and provide
+    * the carrier
+    * CallScreeningService with the opportunity to allow or block calls.
+    * <p>
+    * The String includes the package name/the class name.
+    * Example:
+    * <item>com.android.carrier/com.android.carrier.callscreeningserviceimpl</item>
+    * <p>
+    * Using {@link ComponentName#flattenToString()} to convert a ComponentName object to String.
+    * Using {@link ComponentName#unflattenFromString(String)} to convert a String object to a
+    * ComponentName.
+    */
     public static final String KEY_CARRIER_CALL_SCREENING_APP_STRING = "call_screening_app";
 
     /**
@@ -1838,6 +1851,13 @@
             "notify_international_call_on_wfc_bool";
 
     /**
+     * Flag to hide Preset APN details. If true, user cannot enter ApnEditor view of Preset APN,
+     * and cannot view details of the APN. If false, user can enter ApnEditor view of Preset APN.
+     * Default value is false.
+     */
+    public static final String KEY_HIDE_PRESET_APN_DETAILS_BOOL = "hide_preset_apn_details_bool";
+
+    /**
      * Flag specifying whether to show an alert dialog for video call charges.
      * By default this value is {@code false}.
      * @hide
@@ -2526,6 +2546,7 @@
         sDefaults.putBoolean(KEY_CONFIG_WIFI_DISABLE_IN_ECBM, false);
         sDefaults.putBoolean(KEY_CARRIER_NAME_OVERRIDE_BOOL, false);
         sDefaults.putString(KEY_CARRIER_NAME_STRING, "");
+        sDefaults.putString(KEY_SIM_COUNTRY_ISO_OVERRIDE_STRING, "");
         sDefaults.putString(KEY_CARRIER_CALL_SCREENING_APP_STRING, "");
         sDefaults.putBoolean(KEY_CDMA_HOME_REGISTERED_PLMN_NAME_OVERRIDE_BOOL, false);
         sDefaults.putString(KEY_CDMA_HOME_REGISTERED_PLMN_NAME_STRING, "");
@@ -2643,6 +2664,7 @@
         sDefaults.putBoolean(KEY_DISPLAY_VOICEMAIL_NUMBER_AS_DEFAULT_CALL_FORWARDING_NUMBER_BOOL,
                 false);
         sDefaults.putBoolean(KEY_NOTIFY_INTERNATIONAL_CALL_ON_WFC_BOOL, false);
+        sDefaults.putBoolean(KEY_HIDE_PRESET_APN_DETAILS_BOOL, false);
         sDefaults.putBoolean(KEY_SHOW_VIDEO_CALL_CHARGES_ALERT_DIALOG_BOOL, false);
         sDefaults.putStringArray(KEY_CALL_FORWARDING_BLOCKS_WHILE_ROAMING_STRING_ARRAY,
                 null);
diff --git a/telephony/java/android/telephony/DataSpecificRegistrationStates.java b/telephony/java/android/telephony/DataSpecificRegistrationStates.java
index b6e6cba..5d809d0 100644
--- a/telephony/java/android/telephony/DataSpecificRegistrationStates.java
+++ b/telephony/java/android/telephony/DataSpecificRegistrationStates.java
@@ -33,17 +33,31 @@
      */
     public final boolean isNrAvailable;
 
+    /**
+     * Indicates that if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the primary serving
+     * cell.
+     *
+     * True the primary serving cell is LTE cell and the plmn-InfoList-r15 is present in SIB2 and
+     * at least one bit in this list is true, otherwise this value should be false.
+     *
+     * Reference: 3GPP TS 36.331 v15.2.2 6.3.1 System information blocks.
+     */
+    public final boolean isEnDcAvailable;
+
     DataSpecificRegistrationStates(
-            int maxDataCalls, boolean isDcNrRestricted, boolean isNrAvailable) {
+            int maxDataCalls, boolean isDcNrRestricted, boolean isNrAvailable,
+            boolean isEnDcAvailable) {
         this.maxDataCalls = maxDataCalls;
         this.isDcNrRestricted = isDcNrRestricted;
         this.isNrAvailable = isNrAvailable;
+        this.isEnDcAvailable = isEnDcAvailable;
     }
 
     private DataSpecificRegistrationStates(Parcel source) {
         maxDataCalls = source.readInt();
         isDcNrRestricted = source.readBoolean();
         isNrAvailable = source.readBoolean();
+        isEnDcAvailable = source.readBoolean();
     }
 
     @Override
@@ -51,6 +65,7 @@
         dest.writeInt(maxDataCalls);
         dest.writeBoolean(isDcNrRestricted);
         dest.writeBoolean(isNrAvailable);
+        dest.writeBoolean(isEnDcAvailable);
     }
 
     @Override
@@ -65,13 +80,14 @@
                 .append(" maxDataCalls = " + maxDataCalls)
                 .append(" isDcNrRestricted = " + isDcNrRestricted)
                 .append(" isNrAvailable = " + isNrAvailable)
+                .append(" isEnDcAvailable = " + isEnDcAvailable)
                 .append(" }")
                 .toString();
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable);
+        return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable, isEnDcAvailable);
     }
 
     @Override
@@ -83,7 +99,8 @@
         DataSpecificRegistrationStates other = (DataSpecificRegistrationStates) o;
         return this.maxDataCalls == other.maxDataCalls
                 && this.isDcNrRestricted == other.isDcNrRestricted
-                && this.isNrAvailable == other.isNrAvailable;
+                && this.isNrAvailable == other.isNrAvailable
+                && this.isEnDcAvailable == other.isEnDcAvailable;
     }
 
     public static final Parcelable.Creator<DataSpecificRegistrationStates> CREATOR =
diff --git a/telephony/java/android/telephony/MbmsGroupCallSession.java b/telephony/java/android/telephony/MbmsGroupCallSession.java
index e373797..269cda1 100644
--- a/telephony/java/android/telephony/MbmsGroupCallSession.java
+++ b/telephony/java/android/telephony/MbmsGroupCallSession.java
@@ -37,6 +37,7 @@
 import android.util.ArraySet;
 import android.util.Log;
 
+import java.util.List;
 import java.util.Set;
 import java.util.concurrent.Executor;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -107,14 +108,14 @@
      * {@link MbmsGroupCallSession} that you received before calling this method again.
      *
      * @param context The {@link Context} to use.
-     * @param executor The executor on which you wish to execute callbacks.
      * @param subscriptionId The subscription ID to use.
+     * @param executor The executor on which you wish to execute callbacks.
      * @param callback A callback object on which you wish to receive results of asynchronous
      *                 operations.
      * @return An instance of {@link MbmsGroupCallSession}, or null if an error occurred.
      */
     public static @Nullable MbmsGroupCallSession create(@NonNull Context context,
-            @NonNull Executor executor, int subscriptionId,
+            int subscriptionId, @NonNull Executor executor,
             final @NonNull MbmsGroupCallSessionCallback callback) {
         if (!sIsInitialized.compareAndSet(false, true)) {
             throw new IllegalStateException("Cannot create two instances of MbmsGroupCallSession");
@@ -138,11 +139,11 @@
 
     /**
      * Create a new {@link MbmsGroupCallSession} using the system default data subscription ID.
-     * See {@link #create(Context, Executor, int, MbmsGroupCallSessionCallback)}.
+     * See {@link #create(Context, int, Executor, MbmsGroupCallSessionCallback)}.
      */
     public static MbmsGroupCallSession create(@NonNull Context context,
             @NonNull Executor executor, @NonNull MbmsGroupCallSessionCallback callback) {
-        return create(context, executor, SubscriptionManager.getDefaultSubscriptionId(), callback);
+        return create(context, SubscriptionManager.getDefaultSubscriptionId(), executor, callback);
     }
 
     /**
@@ -153,7 +154,7 @@
      * instance of {@link MbmsGroupCallSessionCallback}, but callbacks that have already been
      * enqueued will still be delivered.
      *
-     * It is safe to call {@link #create(Context, Executor, int, MbmsGroupCallSessionCallback)} to
+     * It is safe to call {@link #create(Context, int, Executor, MbmsGroupCallSessionCallback)} to
      * obtain another instance of {@link MbmsGroupCallSession} immediately after this method
      * returns.
      *
@@ -189,18 +190,19 @@
      * Asynchronous errors through the callback include any of the errors in
      * {@link MbmsErrors.GeneralErrors}.
      *
-     * @param executor The executor on which you wish to execute callbacks for this stream.
      * @param tmgi The TMGI, an identifier for the group call you want to join.
-     * @param saiArray An array of SAIs for the group call that should be negotiated separately with
+     * @param saiList A list of SAIs for the group call that should be negotiated separately with
      *                the carrier.
-     * @param frequencyArray An array of frequencies for the group call that should be negotiated
+     * @param frequencyList A lost of frequencies for the group call that should be negotiated
      *                separately with the carrier.
+     * @param executor The executor on which you wish to execute callbacks for this stream.
      * @param callback The callback that you want to receive information about the call on.
      * @return An instance of {@link GroupCall} through which the call can be controlled.
      *         May be {@code null} if an error occurred.
      */
-    public @Nullable GroupCall startGroupCall(@NonNull Executor executor, long tmgi, int[] saiArray,
-            int[] frequencyArray, @NonNull GroupCallCallback callback) {
+    public @Nullable GroupCall startGroupCall(long tmgi, @NonNull List<Integer> saiList,
+            @NonNull List<Integer> frequencyList, @NonNull Executor executor,
+            @NonNull GroupCallCallback callback) {
         IMbmsGroupCallService groupCallService = mService.get();
         if (groupCallService == null) {
             throw new IllegalStateException("Middleware not yet bound");
@@ -215,7 +217,7 @@
 
         try {
             int returnCode = groupCallService.startGroupCall(
-                    mSubscriptionId, tmgi, saiArray, frequencyArray, serviceCallback);
+                    mSubscriptionId, tmgi, saiList, frequencyList, serviceCallback);
             if (returnCode == MbmsErrors.UNKNOWN) {
                 // Unbind and throw an obvious error
                 close();
diff --git a/telephony/java/android/telephony/NetworkRegistrationState.java b/telephony/java/android/telephony/NetworkRegistrationState.java
index aee744f..b00665e 100644
--- a/telephony/java/android/telephony/NetworkRegistrationState.java
+++ b/telephony/java/android/telephony/NetworkRegistrationState.java
@@ -219,12 +219,13 @@
     public NetworkRegistrationState(int domain, int transportType, int regState,
             int accessNetworkTechnology, int rejectCause, boolean emergencyOnly,
             int[] availableServices, @Nullable CellIdentity cellIdentity, int maxDataCalls,
-            boolean isDcNrRestricted, boolean isNrAvailable) {
+            boolean isDcNrRestricted, boolean isNrAvailable, boolean isEndcAvailable) {
         this(domain, transportType, regState, accessNetworkTechnology, rejectCause, emergencyOnly,
                 availableServices, cellIdentity);
 
         mDataSpecificStates = new DataSpecificRegistrationStates(
-                maxDataCalls, isDcNrRestricted, isNrAvailable);
+                maxDataCalls, isDcNrRestricted, isNrAvailable, isEndcAvailable);
+        updateNrStatus(mDataSpecificStates);
     }
 
     protected NetworkRegistrationState(Parcel source) {
@@ -448,6 +449,34 @@
         dest.writeInt(mNrStatus);
     }
 
+    /**
+     * Use the 5G NR Non-Standalone indicators from the network registration state to update the
+     * NR status. There are 3 indicators in the network registration state:
+     *
+     * 1. if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the primary serving cell.
+     * 2. if NR is supported by the selected PLMN.
+     * 3. if the use of dual connectivity with NR is restricted.
+     *
+     * The network has 5G NR capability if E-UTRA-NR Dual Connectivity is supported by the primary
+     * serving cell.
+     *
+     * The use of NR 5G is not restricted If the network has 5G NR capability and both the use of
+     * DCNR is not restricted and NR is supported by the selected PLMN. Otherwise the use of 5G
+     * NR is restricted.
+     *
+     * @param state data specific registration state contains the 5G NR indicators.
+     */
+    private void updateNrStatus(DataSpecificRegistrationStates state) {
+        mNrStatus = NR_STATUS_NONE;
+        if (state.isEnDcAvailable) {
+            if (!state.isDcNrRestricted && state.isNrAvailable) {
+                mNrStatus = NR_STATUS_NOT_RESTRICTED;
+            } else {
+                mNrStatus = NR_STATUS_RESTRICTED;
+            }
+        }
+    }
+
     public static final Parcelable.Creator<NetworkRegistrationState> CREATOR =
             new Parcelable.Creator<NetworkRegistrationState>() {
         @Override
diff --git a/telephony/java/android/telephony/NumberVerificationCallback.java b/telephony/java/android/telephony/NumberVerificationCallback.java
new file mode 100644
index 0000000..b00c573
--- /dev/null
+++ b/telephony/java/android/telephony/NumberVerificationCallback.java
@@ -0,0 +1,88 @@
+/*
+ * 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.telephony;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
+
+/**
+ * A callback for number verification. After a request for number verification is received,
+ * the system will call {@link #onCallReceived(String)} if a phone call was received from a number
+ * matching the provided {@link PhoneNumberRange} or it will call {@link #onVerificationFailed(int)}
+ * if an error occurs.
+ * @hide
+ */
+@SystemApi
+public interface NumberVerificationCallback {
+    /** @hide */
+    @IntDef(value = {REASON_UNSPECIFIED, REASON_TIMED_OUT, REASON_NETWORK_NOT_AVAILABLE,
+            REASON_TOO_MANY_CALLS, REASON_CONCURRENT_REQUESTS, REASON_IN_ECBM,
+            REASON_IN_EMERGENCY_CALL},
+            prefix = {"REASON_"})
+    @interface NumberVerificationFailureReason {}
+
+    /**
+     * Verification failed for an unspecified reason.
+     */
+    int REASON_UNSPECIFIED = 0;
+
+    /**
+     * Verification failed because no phone call was received from a matching number within the
+     * provided timeout.
+     */
+    int REASON_TIMED_OUT = 1;
+
+    /**
+     * Verification failed because no cellular voice network is available.
+     */
+    int REASON_NETWORK_NOT_AVAILABLE = 2;
+
+    /**
+     * Verification failed because there are currently too many ongoing phone calls for a new
+     * incoming phone call to be received.
+     */
+    int REASON_TOO_MANY_CALLS = 3;
+
+    /**
+     * Verification failed because a previous request for verification has not yet completed.
+     */
+    int REASON_CONCURRENT_REQUESTS = 4;
+
+    /**
+     * Verification failed because the phone is in emergency callback mode.
+     */
+    int REASON_IN_ECBM = 5;
+
+    /**
+     * Verification failed because the phone is currently in an emergency call.
+     */
+    int REASON_IN_EMERGENCY_CALL = 6;
+
+    /**
+     * Called when the device receives a phone call from the provided {@link PhoneNumberRange}.
+     * @param phoneNumber The phone number within the range that called. May or may not contain the
+     *                    country code, but will be entirely numeric.
+     */
+    default void onCallReceived(@NonNull String phoneNumber) { }
+
+    /**
+     * Called when verification fails for some reason.
+     * @param reason The reason for failure.
+     */
+    default void onVerificationFailed(@NumberVerificationFailureReason int reason) { }
+}
diff --git a/media/java/android/media/update/ProviderCreator.java b/telephony/java/android/telephony/PhoneNumberRange.aidl
similarity index 80%
rename from media/java/android/media/update/ProviderCreator.java
rename to telephony/java/android/telephony/PhoneNumberRange.aidl
index f5f3e47..b0727be 100644
--- a/media/java/android/media/update/ProviderCreator.java
+++ b/telephony/java/android/telephony/PhoneNumberRange.aidl
@@ -14,10 +14,6 @@
  * limitations under the License.
  */
 
-package android.media.update;
+package android.telephony;
 
-/** @hide */
-@FunctionalInterface
-public interface ProviderCreator<T, U> {
-    U createProvider(T instance);
-}
+parcelable PhoneNumberRange;
diff --git a/telephony/java/android/telephony/PhoneNumberRange.java b/telephony/java/android/telephony/PhoneNumberRange.java
new file mode 100644
index 0000000..d65156f
--- /dev/null
+++ b/telephony/java/android/telephony/PhoneNumberRange.java
@@ -0,0 +1,176 @@
+/*
+ * 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.telephony;
+
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.Log;
+
+import java.util.Objects;
+import java.util.regex.Pattern;
+
+/**
+ * This class is used to represent a range of phone numbers. Each range corresponds to a contiguous
+ * block of phone numbers.
+ *
+ * Example:
+ * {@code
+ * {
+ *     mCountryCode = "1"
+ *     mPrefix = "650555"
+ *     mLowerBound = "0055"
+ *     mUpperBound = "0899"
+ * }
+ * }
+ * would match 16505550089 and 6505550472, but not 63827593759 or 16505550900
+ * @hide
+ */
+@SystemApi
+public final class PhoneNumberRange implements Parcelable {
+    public static final Creator<PhoneNumberRange> CREATOR = new Creator<PhoneNumberRange>() {
+        @Override
+        public PhoneNumberRange createFromParcel(Parcel in) {
+            return new PhoneNumberRange(in);
+        }
+
+        @Override
+        public PhoneNumberRange[] newArray(int size) {
+            return new PhoneNumberRange[size];
+        }
+    };
+
+    private final String mCountryCode;
+    private final String mPrefix;
+    private final String mLowerBound;
+    private final String mUpperBound;
+
+    /**
+     * @param countryCode The country code, omitting the leading "+"
+     * @param prefix A prefix that all numbers matching the range must have.
+     * @param lowerBound When concatenated with the prefix, represents the lower bound of phone
+     *                   numbers that match this range.
+     * @param upperBound When concatenated with the prefix, represents the upper bound of phone
+     *                   numbers that match this range.
+     */
+    public PhoneNumberRange(@NonNull String countryCode, @NonNull String prefix,
+            @NonNull String lowerBound, @NonNull String upperBound) {
+        validateLowerAndUpperBounds(lowerBound, upperBound);
+        if (!Pattern.matches("[0-9]+", countryCode)) {
+            throw new IllegalArgumentException("Country code must be all numeric");
+        }
+        if (!Pattern.matches("[0-9]+", prefix)) {
+            throw new IllegalArgumentException("Prefix must be all numeric");
+        }
+        mCountryCode = countryCode;
+        mPrefix = prefix;
+        mLowerBound = lowerBound;
+        mUpperBound = upperBound;
+    }
+
+    private PhoneNumberRange(Parcel in) {
+        mCountryCode = in.readStringNoHelper();
+        mPrefix = in.readStringNoHelper();
+        mLowerBound = in.readStringNoHelper();
+        mUpperBound = in.readStringNoHelper();
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeStringNoHelper(mCountryCode);
+        dest.writeStringNoHelper(mPrefix);
+        dest.writeStringNoHelper(mLowerBound);
+        dest.writeStringNoHelper(mUpperBound);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        PhoneNumberRange that = (PhoneNumberRange) o;
+        return Objects.equals(mCountryCode, that.mCountryCode)
+                && Objects.equals(mPrefix, that.mPrefix)
+                && Objects.equals(mLowerBound, that.mLowerBound)
+                && Objects.equals(mUpperBound, that.mUpperBound);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mCountryCode, mPrefix, mLowerBound, mUpperBound);
+    }
+
+    @Override
+    public String toString() {
+        return "PhoneNumberRange{"
+                + "mCountryCode='" + mCountryCode + '\''
+                + ", mPrefix='" + mPrefix + '\''
+                + ", mLowerBound='" + mLowerBound + '\''
+                + ", mUpperBound='" + mUpperBound + '\''
+                + '}';
+    }
+
+    private void validateLowerAndUpperBounds(String lowerBound, String upperBound) {
+        if (lowerBound.length() != upperBound.length()) {
+            throw new IllegalArgumentException("Lower and upper bounds must have the same length");
+        }
+        if (!Pattern.matches("[0-9]+", lowerBound)) {
+            throw new IllegalArgumentException("Lower bound must be all numeric");
+        }
+        if (!Pattern.matches("[0-9]+", upperBound)) {
+            throw new IllegalArgumentException("Upper bound must be all numeric");
+        }
+        if (Integer.parseInt(lowerBound) > Integer.parseInt(upperBound)) {
+            throw new IllegalArgumentException("Lower bound must be lower than upper bound");
+        }
+    }
+
+    /**
+     * Checks to see if the provided phone number matches this range.
+     * @param number A phone number, with or without separators or a country code.
+     * @return {@code true} if the number matches, {@code false} otherwise.
+     */
+    public boolean matches(String number) {
+        // Check the prefix, make sure it matches either with or without the country code.
+        String normalizedNumber = number.replaceAll("[^0-9]", "");
+        String prefixWithCountryCode = mCountryCode + mPrefix;
+        String numberPostfix;
+        if (normalizedNumber.startsWith(prefixWithCountryCode)) {
+            numberPostfix = normalizedNumber.substring(prefixWithCountryCode.length());
+        } else if (normalizedNumber.startsWith(mPrefix)) {
+            numberPostfix = normalizedNumber.substring(mPrefix.length());
+        } else {
+            return false;
+        }
+
+        // Next check the postfix to make sure it lies within the bounds.
+        try {
+            int lower = Integer.parseInt(mLowerBound);
+            int upper = Integer.parseInt(mUpperBound);
+            int numberToCheck = Integer.parseInt(numberPostfix);
+            return numberToCheck <= upper && numberToCheck >= lower;
+        } catch (NumberFormatException e) {
+            Log.e(PhoneNumberRange.class.getSimpleName(), "Invalid bounds or number.", e);
+            return false;
+        }
+    }
+}
diff --git a/telephony/java/android/telephony/PhysicalChannelConfig.java b/telephony/java/android/telephony/PhysicalChannelConfig.java
index d2001ae..22ddb4a 100644
--- a/telephony/java/android/telephony/PhysicalChannelConfig.java
+++ b/telephony/java/android/telephony/PhysicalChannelConfig.java
@@ -16,11 +16,15 @@
 
 package android.telephony;
 
+import android.annotation.IntDef;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.annotation.IntDef;
+import android.telephony.TelephonyManager.NetworkType;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.Arrays;
+import java.util.Objects;
 
 /**
  * @hide
@@ -50,6 +54,7 @@
      *
      * <p>One of {@link #CONNECTION_PRIMARY_SERVING}, {@link #CONNECTION_SECONDARY_SERVING}.
      */
+    @ConnectionStatus
     private int mCellConnectionStatus;
 
     /**
@@ -57,15 +62,33 @@
      */
     private int mCellBandwidthDownlinkKhz;
 
-    public PhysicalChannelConfig(int status, int bandwidth) {
-        mCellConnectionStatus = status;
-        mCellBandwidthDownlinkKhz = bandwidth;
-    }
+    /**
+     * The radio technology for this physical channel.
+     */
+    @NetworkType
+    private int mRat;
 
-    public PhysicalChannelConfig(Parcel in) {
-        mCellConnectionStatus = in.readInt();
-        mCellBandwidthDownlinkKhz = in.readInt();
-    }
+    /**
+     * The rough frequency range for this physical channel.
+     */
+    @ServiceState.FrequencyRange
+    private int mFrequencyRange;
+
+    /**
+     * The absolute radio frequency channel number, {@link Integer#MAX_VALUE} if unknown.
+     */
+    private int mChannelNumber;
+
+    /**
+     * A list of data calls mapped to this physical channel. An empty list means the physical
+     * channel has no data call mapped to it.
+     */
+    private int[] mContextIds;
+
+    /**
+     * The physical cell identifier for this cell - PCI, PSC, {@link Integer#MAX_VALUE} if known.
+     */
+    private int mPhysicalCellId;
 
     @Override
     public int describeContents() {
@@ -76,6 +99,11 @@
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeInt(mCellConnectionStatus);
         dest.writeInt(mCellBandwidthDownlinkKhz);
+        dest.writeInt(mRat);
+        dest.writeInt(mChannelNumber);
+        dest.writeInt(mFrequencyRange);
+        dest.writeIntArray(mContextIds);
+        dest.writeInt(mPhysicalCellId);
     }
 
     /**
@@ -86,6 +114,60 @@
     }
 
     /**
+     * Get the list of data call ids mapped to this physical channel. This list is sorted into
+     * ascending numerical order. Each id in this list must match the id in
+     * {@link com.android.internal.telephony.dataconnection.DataConnection}. An empty list means the
+     * physical channel has no data call mapped to it.
+     *
+     * @return an integer list indicates the data call ids.
+     */
+    public int[] getContextIds() {
+        return mContextIds;
+    }
+
+    /**
+     * @return the rough frequency range for this physical channel.
+     * @see {@link ServiceState#FREQUENCY_RANGE_LOW}
+     * @see {@link ServiceState#FREQUENCY_RANGE_MID}
+     * @see {@link ServiceState#FREQUENCY_RANGE_HIGH}
+     * @see {@link ServiceState#FREQUENCY_RANGE_MMWAVE}
+     */
+    @ServiceState.FrequencyRange
+    public int getFrequencyRange() {
+        return mFrequencyRange;
+    }
+
+    /**
+     * @return the absolute radio frequency channel number for this physical channel,
+     * {@link Integer#MAX_VALUE} if unknown.
+     */
+    public int getChannelNumber() {
+        return mChannelNumber;
+    }
+
+    /**
+     * In UTRAN, this value is primary scrambling code. The range is [0, 511].
+     * Reference: 3GPP TS 25.213 section 5.2.2.
+     *
+     * In EUTRAN, this value is physical layer cell identity. The range is [0, 503].
+     * Reference: 3GPP TS 36.211 section 6.11.
+     *
+     * In 5G RAN, this value is physical layer cell identity. The range is [0, 1008].
+     * Reference: 3GPP TS 38.211 section 7.4.2.1.
+     *
+     * @return the physical cell identifier for this cell, {@link Integer#MAX_VALUE} if unknown.
+     */
+    public int getPhysicalCellId() {
+        return mPhysicalCellId;
+    }
+
+    /**The radio technology for this physical channel. */
+    @NetworkType
+    public int getRat() {
+        return mRat;
+    }
+
+    /**
      * Gets the connection status of the cell.
      *
      * @see #CONNECTION_PRIMARY_SERVING
@@ -125,12 +207,19 @@
 
         PhysicalChannelConfig config = (PhysicalChannelConfig) o;
         return mCellConnectionStatus == config.mCellConnectionStatus
-                && mCellBandwidthDownlinkKhz == config.mCellBandwidthDownlinkKhz;
+                && mCellBandwidthDownlinkKhz == config.mCellBandwidthDownlinkKhz
+                && mRat == config.mRat
+                && mFrequencyRange == config.mFrequencyRange
+                && mChannelNumber == config.mChannelNumber
+                && mPhysicalCellId == config.mPhysicalCellId
+                && Arrays.equals(mContextIds, config.mContextIds);
     }
 
     @Override
     public int hashCode() {
-        return (mCellBandwidthDownlinkKhz * 29) + (mCellConnectionStatus * 31);
+        return Objects.hash(
+                mCellConnectionStatus, mCellBandwidthDownlinkKhz, mRat, mFrequencyRange,
+                mChannelNumber, mPhysicalCellId, mContextIds);
     }
 
     public static final Parcelable.Creator<PhysicalChannelConfig> CREATOR =
@@ -147,11 +236,111 @@
     @Override
     public String toString() {
         return new StringBuilder()
-            .append("{mConnectionStatus=")
-            .append(getConnectionStatusString())
-            .append(",mCellBandwidthDownlinkKhz=")
-            .append(mCellBandwidthDownlinkKhz)
-            .append("}")
-            .toString();
+                .append("{mConnectionStatus=")
+                .append(getConnectionStatusString())
+                .append(",mCellBandwidthDownlinkKhz=")
+                .append(mCellBandwidthDownlinkKhz)
+                .append(",mRat=")
+                .append(mRat)
+                .append(",mFrequencyRange=")
+                .append(mFrequencyRange)
+                .append(",mChannelNumber=")
+                .append(mChannelNumber)
+                .append(",mContextIds=")
+                .append(mContextIds.toString())
+                .append(",mPhysicalCellId=")
+                .append(mPhysicalCellId)
+                .append("}")
+                .toString();
+    }
+
+    private PhysicalChannelConfig(Parcel in) {
+        mCellConnectionStatus = in.readInt();
+        mCellBandwidthDownlinkKhz = in.readInt();
+        mRat = in.readInt();
+        mChannelNumber = in.readInt();
+        mFrequencyRange = in.readInt();
+        mContextIds = in.createIntArray();
+        mPhysicalCellId = in.readInt();
+    }
+
+    private PhysicalChannelConfig(Builder builder) {
+        mCellConnectionStatus = builder.mCellConnectionStatus;
+        mCellBandwidthDownlinkKhz = builder.mCellBandwidthDownlinkKhz;
+        mRat = builder.mRat;
+        mChannelNumber = builder.mChannelNumber;
+        mFrequencyRange = builder.mFrequencyRange;
+        mContextIds = builder.mContextIds;
+        mPhysicalCellId = builder.mPhysicalCellId;
+    }
+
+    /** The builder of {@code PhysicalChannelConfig}. */
+    public static final class Builder {
+        private int mRat;
+        private int mFrequencyRange;
+        private int mChannelNumber;
+        private int mCellBandwidthDownlinkKhz;
+        private int mCellConnectionStatus;
+        private int[] mContextIds;
+        private int mPhysicalCellId;
+
+        /** @hide */
+        public Builder() {
+            mRat = ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN;
+            mFrequencyRange = ServiceState.FREQUENCY_RANGE_UNKNOWN;
+            mChannelNumber = Integer.MAX_VALUE;
+            mCellBandwidthDownlinkKhz = 0;
+            mCellConnectionStatus = CONNECTION_UNKNOWN;
+            mContextIds = new int[0];
+            mPhysicalCellId = Integer.MAX_VALUE;
+        }
+
+        /** @hide */
+        public PhysicalChannelConfig build() {
+            return new PhysicalChannelConfig(this);
+        }
+
+        /** @hide */
+        public Builder setRat(int rat) {
+            this.mRat = rat;
+            return this;
+        }
+
+        /** @hide */
+        public Builder setFrequencyRange(int frequencyRange) {
+            this.mFrequencyRange = frequencyRange;
+            return this;
+        }
+
+        /** @hide */
+        public Builder setChannelNumber(int channelNumber) {
+            this.mChannelNumber = channelNumber;
+            return this;
+        }
+
+        /** @hide */
+        public Builder setCellBandwidthDownlinkKhz(int cellBandwidthDownlinkKhz) {
+            this.mCellBandwidthDownlinkKhz = cellBandwidthDownlinkKhz;
+            return this;
+        }
+
+        /** @hide */
+        public Builder setCellConnectionStatus(int connectionStatus) {
+            this.mCellConnectionStatus = connectionStatus;
+            return this;
+        }
+
+        /** @hide */
+        public Builder setContextIds(int[] contextIds) {
+            if (contextIds != null) Arrays.sort(contextIds);
+            this.mContextIds = contextIds;
+            return this;
+        }
+
+        /** @hide */
+        public Builder setPhysicalCellId(int physicalCellId) {
+            this.mPhysicalCellId = physicalCellId;
+            return this;
+        }
     }
 }
diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java
index da3acc2..4482074 100644
--- a/telephony/java/android/telephony/RadioAccessFamily.java
+++ b/telephony/java/android/telephony/RadioAccessFamily.java
@@ -460,6 +460,9 @@
         if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA)) != 0) {
             networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;
         }
+        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_NR)) != 0) {
+            networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_NR;
+        }
 
         return (networkTypeRaf == 0) ? TelephonyManager.NETWORK_TYPE_UNKNOWN : networkTypeRaf;
     }
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index 777d219..ca0c854a 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -118,6 +118,13 @@
      */
     public static final int FREQUENCY_RANGE_MMWAVE = 4;
 
+    private static final List<Integer> FREQUENCY_RANGE_ORDER = Arrays.asList(
+            FREQUENCY_RANGE_UNKNOWN,
+            FREQUENCY_RANGE_LOW,
+            FREQUENCY_RANGE_MID,
+            FREQUENCY_RANGE_HIGH,
+            FREQUENCY_RANGE_MMWAVE);
+
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(prefix = "DUPLEX_MODE_",
@@ -223,9 +230,15 @@
     public static final int RIL_RADIO_TECHNOLOGY_LTE_CA = 19;
 
     /**
-     * Number of radio technologies for GSM, UMTS and CDMA.
+     * NR(New Radio) 5G.
+     * @hide
      */
-    private static final int NEXT_RIL_RADIO_TECHNOLOGY = 20;
+    public static final int  RIL_RADIO_TECHNOLOGY_NR = 20;
+
+    /**
+     * The number of the radio technologies.
+     */
+    private static final int NEXT_RIL_RADIO_TECHNOLOGY = 21;
 
     /** @hide */
     public static final int RIL_RADIO_CDMA_TECHNOLOGY_BITMASK =
@@ -1829,4 +1842,13 @@
             mNetworkRegistrationStates.add(regState);
         }
     }
+
+    /**
+     * @hide
+     */
+    public static final int getBetterNRFrequencyRange(int range1, int range2) {
+        return FREQUENCY_RANGE_ORDER.indexOf(range1) > FREQUENCY_RANGE_ORDER.indexOf(range2)
+                ? range1
+                : range2;
+    }
 }
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index b41e14e..bacfe61a 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -150,6 +150,11 @@
     private String mGroupUUID;
 
     /**
+     *  A property in opportunistic subscription to indicate whether it is metered or not.
+     */
+    private boolean mIsMetered;
+
+    /**
      * @hide
      */
     public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName,
@@ -158,7 +163,7 @@
             @Nullable UiccAccessRule[] accessRules, String cardId) {
         this(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number,
                 roaming, icon, mcc, mnc, countryIso, isEmbedded, accessRules, cardId,
-                false, null);
+                false, null, true);
     }
 
     /**
@@ -168,7 +173,7 @@
             CharSequence carrierName, int nameSource, int iconTint, String number, int roaming,
             Bitmap icon, String mcc, String mnc, String countryIso, boolean isEmbedded,
             @Nullable UiccAccessRule[] accessRules, String cardId, boolean isOpportunistic,
-            @Nullable String groupUUID) {
+            @Nullable String groupUUID, boolean isMetered) {
         this.mId = id;
         this.mIccId = iccId;
         this.mSimSlotIndex = simSlotIndex;
@@ -187,8 +192,10 @@
         this.mCardId = cardId;
         this.mIsOpportunistic = isOpportunistic;
         this.mGroupUUID = groupUUID;
+        this.mIsMetered = isMetered;
     }
 
+
     /**
      * @return the subscription ID.
      */
@@ -403,6 +410,18 @@
     }
 
     /**
+     * Used in opportunistic subscription ({@link #isOpportunistic()}) to indicate whether it's
+     * metered or not.This is one of the factors when deciding to switch to the subscription.
+     * (a non-metered subscription, for example, would likely be preferred over a metered one).
+     *
+     * @return whether subscription is metered.
+     * @hide
+     */
+    public boolean isMetered() {
+        return mIsMetered;
+    }
+
+    /**
      * Checks whether the app with the given context is authorized to manage this subscription
      * according to its metadata. Only supported for embedded subscriptions (if {@link #isEmbedded}
      * returns true).
@@ -496,10 +515,11 @@
             String cardId = source.readString();
             boolean isOpportunistic = source.readBoolean();
             String groupUUID = source.readString();
+            boolean isMetered = source.readBoolean();
 
             return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName,
                     nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso,
-                    isEmbedded, accessRules, cardId, isOpportunistic, groupUUID);
+                    isEmbedded, accessRules, cardId, isOpportunistic, groupUUID, isMetered);
         }
 
         @Override
@@ -528,6 +548,7 @@
         dest.writeString(mCardId);
         dest.writeBoolean(mIsOpportunistic);
         dest.writeString(mGroupUUID);
+        dest.writeBoolean(mIsMetered);
     }
 
     @Override
@@ -561,14 +582,14 @@
                 + " mnc " + mMnc + "mCountryIso=" + mCountryIso + " isEmbedded " + mIsEmbedded
                 + " accessRules " + Arrays.toString(mAccessRules)
                 + " cardId=" + cardIdToPrint + " isOpportunistic " + mIsOpportunistic
-                + " mGroupUUID=" + mGroupUUID + "}";
+                + " mGroupUUID=" + mGroupUUID + " isMetered=" + mIsMetered + "}";
     }
 
     @Override
     public int hashCode() {
         return Objects.hash(mId, mSimSlotIndex, mNameSource, mIconTint, mDataRoaming, mIsEmbedded,
-                mIsOpportunistic, mGroupUUID, mIccId, mNumber, mMcc, mMnc, mCountryIso,
-                mCardId, mDisplayName, mCarrierName, mAccessRules);
+                mIsOpportunistic, mGroupUUID, mIsMetered, mIccId, mNumber, mMcc, mMnc,
+                mCountryIso, mCardId, mDisplayName, mCarrierName, mAccessRules);
     }
 
     @Override
@@ -591,6 +612,7 @@
                 && mIsEmbedded == toCompare.mIsEmbedded
                 && mIsOpportunistic == toCompare.mIsOpportunistic
                 && Objects.equals(mGroupUUID, toCompare.mGroupUUID)
+                && mIsMetered == toCompare.mIsMetered
                 && Objects.equals(mIccId, toCompare.mIccId)
                 && Objects.equals(mNumber, toCompare.mNumber)
                 && Objects.equals(mMcc, toCompare.mMcc)
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index 3200aea..2a01ac4 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -147,7 +147,8 @@
     public static final Uri WFC_ENABLED_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "wfc");
 
     /**
-     * A content {@link Uri} used to receive updates on advanced calling user setting.
+     * A content {@link Uri} used to receive updates on advanced calling user setting
+     * @see ImsMmTelManager#isAdvancedCallingSettingEnabled().
      * <p>
      * Use this {@link Uri} with a {@link ContentObserver} to be notified of changes to the
      * subscription advanced calling enabled
@@ -406,6 +407,13 @@
     public static final String MNC = "mnc";
 
     /**
+     * TelephonyProvider column name for the iso country code associated with a SIM.
+     * <P>Type: TEXT (String)</P>
+     * @hide
+     */
+    public static final String ISO_COUNTRY_CODE = "iso_country_code";
+
+    /**
      * TelephonyProvider column name for the sim provisioning status associated with a SIM.
      * <P>Type: INTEGER (int)</P>
      * @hide
@@ -568,14 +576,6 @@
     public static final String IS_OPPORTUNISTIC = "is_opportunistic";
 
     /**
-     * TelephonyProvider column name for subId of parent subscription of an opportunistic
-     * subscription.
-     * if the parent sub id is valid, then is_opportunistic should always to true.
-     * @hide
-     */
-    public static final String PARENT_SUB_ID = "parent_sub_id";
-
-    /**
      * TelephonyProvider column name for group ID. Subscriptions with same group ID
      * are considered bundled together, and should behave as a single subscription at
      * certain scenarios.
@@ -583,7 +583,12 @@
      * @hide
      */
     public static final String GROUP_UUID = "group_uuid";
-
+    /**
+     * TelephonyProvider column name for whether a subscription is metered or not, that is, whether
+     * the network it connects to charges for subscription or not. For example, paid CBRS or unpaid.
+     * @hide
+     */
+    public static final String IS_METERED = "is_metered";
     /**
      * Broadcast Action: The user has changed one of the default subs related to
      * data, phone calls, or sms</p>
@@ -1426,7 +1431,7 @@
      * subscriptions in the slot.
      */
     @Nullable
-    public static int[] getSubscriptionIds(int slotIndex) {
+    public int[] getSubscriptionIds(int slotIndex) {
         return getSubId(slotIndex);
     }
 
@@ -2410,6 +2415,21 @@
         return groupUUID;
     }
 
+    /**
+     * Set metered by simInfo index
+     *
+     * @param isMetered whether it’s a metered subscription.
+     * @param subId the unique SubscriptionInfo index in database
+     * @return the number of records updated
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+    public int setMetered(boolean isMetered, int subId) {
+        if (VDBG) logd("[setIsMetered]+ isMetered:" + isMetered + " subId:" + subId);
+        return setSubscriptionPropertyHelper(subId, "setIsMetered",
+                (iSub)-> iSub.setMetered(isMetered, subId));
+    }
+
     private interface CallISubMethodHelper {
         int callMethod(ISub iSub) throws RemoteException;
     }
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 8324f00..45d914e 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -77,6 +77,7 @@
 import com.android.internal.telecom.ITelecomService;
 import com.android.internal.telephony.CellNetworkScanResult;
 import com.android.internal.telephony.IAns;
+import com.android.internal.telephony.INumberVerificationCallback;
 import com.android.internal.telephony.IPhoneSubInfo;
 import com.android.internal.telephony.ITelephony;
 import com.android.internal.telephony.ITelephonyRegistry;
@@ -1341,6 +1342,13 @@
      */
     public static final String EXTRA_RECOVERY_ACTION = "recoveryAction";
 
+    /**
+     * The max value for the timeout passed in {@link #requestNumberVerification}.
+     * @hide
+     */
+    @SystemApi
+    public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000;
+
     //
     //
     // Device Info
@@ -2243,9 +2251,11 @@
     /** Current network is LTE_CA {@hide} */
     @UnsupportedAppUsage
     public static final int NETWORK_TYPE_LTE_CA = TelephonyProtoEnums.NETWORK_TYPE_LTE_CA; // = 19.
+    /** Current network is NR(New Radio) 5G. */
+    public static final int NETWORK_TYPE_NR = TelephonyProtoEnums.NETWORK_TYPE_NR; // 20.
 
     /** 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_LTE_CA;
+    public static final int MAX_NETWORK_TYPE = NETWORK_TYPE_NR;
 
     /** @hide */
     @IntDef({
@@ -2269,6 +2279,7 @@
             NETWORK_TYPE_TD_SCDMA,
             NETWORK_TYPE_IWLAN,
             NETWORK_TYPE_LTE_CA,
+            NETWORK_TYPE_NR,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface NetworkType{}
@@ -4214,7 +4225,8 @@
     }
 
     /**
-     * Returns the voice mail count for a subscription. Return 0 if unavailable.
+     * Returns the voice mail count for a subscription. Return 0 if unavailable or the caller does
+     * not have the READ_PHONE_STATE permission.
      * @param subId whose voice message count is returned
      * @hide
      */
@@ -4225,7 +4237,7 @@
             ITelephony telephony = getITelephony();
             if (telephony == null)
                 return 0;
-            return telephony.getVoiceMessageCountForSubscriber(subId);
+            return telephony.getVoiceMessageCountForSubscriber(subId, getOpPackageName());
         } catch (RemoteException ex) {
             return 0;
         } catch (NullPointerException ex) {
@@ -5368,7 +5380,7 @@
 
     /**
      * Rollback modem configurations to factory default except some config which are in whitelist.
-     * Used for device configuration by some CDMA operators.
+     * Used for device configuration by some carriers.
      *
      * <p>Requires Permission:
      * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the calling
@@ -5395,7 +5407,7 @@
     }
 
     /**
-     * Generate a radio modem reset. Used for device configuration by some CDMA operators.
+     * Generate a radio modem reset. Used for device configuration by some carriers.
      *
      * <p>Requires Permission:
      * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the calling
@@ -5499,6 +5511,52 @@
     }
 
     /**
+     * Request that the next incoming call from a number matching {@code range} be intercepted.
+     *
+     * This API is intended for OEMs to provide a service for apps to verify the device's phone
+     * number. When called, the Telephony stack will store the provided {@link PhoneNumberRange} and
+     * intercept the next incoming call from a number that lies within the range, within a timeout
+     * specified by {@code timeoutMillis}.
+     *
+     * If such a phone call is received, the caller will be notified via
+     * {@link NumberVerificationCallback#onCallReceived(String)} on the provided {@link Executor}.
+     * If verification fails for any reason, the caller will be notified via
+     * {@link NumberVerificationCallback#onVerificationFailed(int)}
+     * on the provided {@link Executor}.
+     *
+     * In addition to the {@link Manifest.permission#MODIFY_PHONE_STATE} permission, callers of this
+     * API must also be listed in the device configuration as an authorized app in
+     * {@code packages/services/Telephony/res/values/config.xml} under the
+     * {@code config_number_verification_package_name} key.
+     *
+     * @hide
+     * @param range The range of phone numbers the caller expects a phone call from.
+     * @param timeoutMillis The amount of time to wait for such a call, or
+     *                      {@link #MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS}, whichever is lesser.
+     * @param executor The {@link Executor} that callbacks should be executed on.
+     * @param callback The callback to use for delivering results.
+     */
+    @SystemApi
+    @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
+    public void requestNumberVerification(@NonNull PhoneNumberRange range, long timeoutMillis,
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull NumberVerificationCallback callback) {
+        INumberVerificationCallback internalCallback = new INumberVerificationCallback.Stub() {
+            @Override
+            public void onCallReceived(String phoneNumber) throws RemoteException {
+                Binder.withCleanCallingIdentity(() -> callback.onCallReceived(phoneNumber));
+            }
+
+            @Override
+            public void onVerificationFailed(int reason) throws RemoteException {
+                Binder.withCleanCallingIdentity(() -> callback.onVerificationFailed(reason));
+            }
+        };
+
+        // TODO -- call the aidl method
+    }
+
+    /**
      * Sets a per-phone telephony property with the value specified.
      *
      * @hide
@@ -7696,7 +7754,7 @@
         try {
             return getITelephony().isAvailable(getSubId(),
                     MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
-                    ImsRegistrationImplBase.REGISTRATION_TECH_LTE, getOpPackageName());
+                    ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
         } catch (RemoteException | NullPointerException ex) {
             return false;
         }
@@ -8557,9 +8615,30 @@
         return UNKNOWN_CARRIER_ID;
     }
 
+     /**
+      * Returns carrier id based on MCCMNC only. This is for fallback when exact carrier id
+      * {@link #getSimCarrierId()} configurations are not found
+      *
+      * @return matching carrier id from passing mccmnc.
+      * @hide
+      */
+     @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+     public int getCarrierIdFromMccMnc(String mccmnc) {
+        try {
+            ITelephony service = getITelephony();
+            if (service != null) {
+                return service.getCarrierIdFromMccMnc(getSlotIndex(), mccmnc);
+            }
+        } catch (RemoteException ex) {
+            // This could happen if binder process crashes.
+        }
+        return UNKNOWN_CARRIER_ID;
+    }
+
     /**
      * Return the application ID for the uicc application type like {@link #APPTYPE_CSIM}.
-     * All uicc applications are uniquely identified by application ID. See ETSI 102.221 and 101.220
+     * All uicc applications are uniquely identified by application ID, represented by the hex
+     * string. e.g, A00000015141434C00. See ETSI 102.221 and 101.220
      * <p>Requires Permission:
      *   {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE}
      *
@@ -9196,6 +9275,7 @@
                     NETWORK_TYPE_BITMASK_TD_SCDMA,
                     NETWORK_TYPE_BITMASK_LTE,
                     NETWORK_TYPE_BITMASK_LTE_CA,
+                    NETWORK_TYPE_BITMASK_NR,
             })
     public @interface NetworkTypeBitMask {}
 
@@ -9312,6 +9392,13 @@
     public static final int NETWORK_TYPE_BITMASK_LTE_CA = (1 << NETWORK_TYPE_LTE_CA);
 
     /**
+     * network type bitmask indicating the support of radio tech NR(New Radio) 5G.
+     * @hide
+     */
+    @SystemApi
+    public static final int NETWORK_TYPE_BITMASK_NR = (1 << NETWORK_TYPE_NR);
+
+    /**
      * @return Modem supported radio access family bitmask
      *
      * <p>Requires permission: {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE} or
@@ -9500,4 +9587,34 @@
         }
         return subId;
     }
+
+    /**
+     * Update availability of a list of networks in the current location.
+     *
+     * This api should be called to inform AlternativeNetwork Service about the availability
+     * of a network at the current location. This information will be used by AlternativeNetwork
+     * service to decide to attach to the network opportunistically. If an empty list is passed,
+     * it is assumed that no network is available.
+     * Requires that the calling app has carrier privileges on both primary and
+     * secondary subscriptions (see {@link #hasCarrierPrivileges}), or has permission
+     * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}.
+     * @param availableNetworks is a list of available network information.
+     * @return true if request is accepted
+     *
+     */
+    @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges
+    public boolean updateAvailableNetworks(List<AvailableNetworkInfo> availableNetworks) {
+        String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>";
+        boolean ret = false;
+        try {
+            IAns iAlternativeNetworkService = getIAns();
+            if (iAlternativeNetworkService != null) {
+                ret = iAlternativeNetworkService.updateAvailableNetworks(availableNetworks,
+                        pkgForDebug);
+            }
+        } catch (RemoteException ex) {
+            Rlog.e(TAG, "updateAvailableNetworks RemoteException", ex);
+        }
+        return ret;
+    }
 }
diff --git a/telephony/java/android/telephony/emergency/EmergencyNumber.java b/telephony/java/android/telephony/emergency/EmergencyNumber.java
index bdba8c8..41f7bd7 100644
--- a/telephony/java/android/telephony/emergency/EmergencyNumber.java
+++ b/telephony/java/android/telephony/emergency/EmergencyNumber.java
@@ -17,8 +17,9 @@
 package android.telephony.emergency;
 
 import android.annotation.IntDef;
-import android.hardware.radio.V1_3.EmergencyNumberSource;
-import android.hardware.radio.V1_3.EmergencyServiceCategory;
+import android.annotation.NonNull;
+import android.hardware.radio.V1_4.EmergencyNumberSource;
+import android.hardware.radio.V1_4.EmergencyServiceCategory;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -138,7 +139,7 @@
     }
 
     /**
-     * The source to tell where the corresponding @1.3::EmergencyNumber comes from.
+     * The source to tell where the corresponding @1.4::EmergencyNumber comes from.
      *
      * The emergency number has one or more defined emergency number sources.
      *
@@ -196,7 +197,7 @@
     private final int mEmergencyNumberSourceBitmask;
 
     /** @hide */
-    public EmergencyNumber(String number, String countryIso,
+    public EmergencyNumber(@NonNull String number, @NonNull String countryIso,
                            int emergencyServiceCategories,
                            int emergencyNumberSources) {
         this.mNumber = number;
@@ -403,7 +404,7 @@
      *         0 if both have equal display priority.
      */
     @Override
-    public int compareTo(EmergencyNumber emergencyNumber) {
+    public int compareTo(@NonNull EmergencyNumber emergencyNumber) {
         if (this.getDisplayPriorityScore()
                 > emergencyNumber.getDisplayPriorityScore()) {
             return -1;
diff --git a/telephony/java/android/telephony/ims/ImsCallProfile.java b/telephony/java/android/telephony/ims/ImsCallProfile.java
index f73036e..a6c24bf 100644
--- a/telephony/java/android/telephony/ims/ImsCallProfile.java
+++ b/telephony/java/android/telephony/ims/ImsCallProfile.java
@@ -23,6 +23,8 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.telecom.VideoProfile;
+import android.telephony.emergency.EmergencyNumber;
+import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories;
 import android.util.Log;
 
 import com.android.internal.telephony.PhoneConstants;
@@ -295,6 +297,28 @@
     public @CallRestrictCause int mRestrictCause = CALL_RESTRICT_CAUSE_NONE;
 
     /**
+     * The emergency service categories, only valid if {@link #getServiceType} returns
+     * {@link #SERVICE_TYPE_EMERGENCY}
+     *
+     * If valid, the value is the bitwise-OR combination of the following constants:
+     * <ol>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_POLICE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AMBULANCE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MIEC} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AIEC} </li>
+     * </ol>
+     *
+     * Reference: 3gpp 23.167, Section 6 - Functional description;
+     *            3gpp 22.101, Section 10 - Emergency Calls.
+     */
+    private @EmergencyServiceCategories int mEmergencyServiceCategories =
+            EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED;
+
+    /**
      * Extras associated with this {@link ImsCallProfile}.
      * <p>
      * Valid data types include:
@@ -495,6 +519,7 @@
         out.writeInt(mCallType);
         out.writeBundle(filteredExtras);
         out.writeParcelable(mMediaProfile, 0);
+        out.writeInt(mEmergencyServiceCategories);
     }
 
     private void readFromParcel(Parcel in) {
@@ -502,6 +527,7 @@
         mCallType = in.readInt();
         mCallExtras = in.readBundle();
         mMediaProfile = in.readParcelable(ImsStreamMediaProfile.class.getClassLoader());
+        mEmergencyServiceCategories = in.readInt();
     }
 
     public static final Creator<ImsCallProfile> CREATOR = new Creator<ImsCallProfile>() {
@@ -710,4 +736,53 @@
     private static boolean isVideoStateSet(int videoState, int videoStateToCheck) {
         return (videoState & videoStateToCheck) == videoStateToCheck;
     }
+
+    /**
+     * Set the emergency service categories. The set value is valid only if
+     * {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY}
+     *
+     * If valid, the value is the bitwise-OR combination of the following constants:
+     * <ol>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_POLICE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AMBULANCE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MIEC} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AIEC} </li>
+     * </ol>
+     *
+     * Reference: 3gpp 23.167, Section 6 - Functional description;
+     *            3gpp 22.101, Section 10 - Emergency Calls.
+     */
+    public void setEmergencyServiceCategories(
+            @EmergencyServiceCategories int emergencyServiceCategories) {
+        mEmergencyServiceCategories = emergencyServiceCategories;
+    }
+
+    /**
+     * Get the emergency service categories, only valid if {@link #getServiceType} returns
+     * {@link #SERVICE_TYPE_EMERGENCY}
+     *
+     * @return the emergency service categories,
+     *
+     * If valid, the value is the bitwise-OR combination of the following constants:
+     * <ol>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_POLICE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AMBULANCE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MIEC} </li>
+     * <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AIEC} </li>
+     * </ol>
+     *
+     * Reference: 3gpp 23.167, Section 6 - Functional description;
+     *            3gpp 22.101, Section 10 - Emergency Calls.
+     */
+    public @EmergencyServiceCategories int getEmergencyServiceCategories() {
+        return mEmergencyServiceCategories;
+    }
 }
diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java
index e06c372..122626f 100644
--- a/telephony/java/android/telephony/ims/ImsMmTelManager.java
+++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java
@@ -28,17 +28,22 @@
 import android.os.Binder;
 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.IImsRegistrationCallback;
 import android.telephony.ims.feature.ImsFeature;
 import android.telephony.ims.feature.MmTelFeature;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.util.Log;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.ITelephony;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.Executor;
 
 /**
@@ -52,6 +57,7 @@
  * @see #createForSubscriptionId(Context, int)
  * @hide
  */
+@SystemApi
 public class ImsMmTelManager {
 
     private static final String TAG = "ImsMmTelManager";
@@ -70,16 +76,12 @@
     /**
      * Register for IMS over IWLAN if WiFi signal quality is high enough. Do not hand over to LTE
      * registration if signal quality degrades.
-     * @hide
      */
-    @SystemApi
     public static final int WIFI_MODE_WIFI_ONLY = 0;
 
     /**
      * Prefer registering for IMS over LTE if LTE signal quality is high enough.
-     * @hide
      */
-    @SystemApi
     public static final int WIFI_MODE_CELLULAR_PREFERRED = 1;
 
     /**
@@ -91,13 +93,26 @@
 
     /**
      * Callback class for receiving Registration callback events.
-     * @see #addImsRegistrationCallback(Executor, RegistrationCallback) (RegistrationCallback)
-     * @see #removeImsRegistrationCallback(RegistrationCallback)
+     * @see #registerImsRegistrationCallback(Executor, RegistrationCallback) (RegistrationCallback)
+     * @see #unregisterImsRegistrationCallback(RegistrationCallback)
      */
     public static class RegistrationCallback {
 
         private static class RegistrationBinder extends IImsRegistrationCallback.Stub {
 
+            // Translate ImsRegistrationImplBase API to new AccessNetworkConstant because WLAN
+            // and WWAN are more accurate constants.
+            private static final Map<Integer, Integer> IMS_REG_TO_ACCESS_TYPE_MAP =
+                    new HashMap<Integer, Integer>() {{
+                        // Map NONE to -1 to make sure that we handle the REGISTRATION_TECH_NONE
+                        // case, since it is defined.
+                        put(ImsRegistrationImplBase.REGISTRATION_TECH_NONE, -1);
+                        put(ImsRegistrationImplBase.REGISTRATION_TECH_LTE,
+                                AccessNetworkConstants.TransportType.WWAN);
+                        put(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,
+                                AccessNetworkConstants.TransportType.WLAN);
+                    }};
+
             private final RegistrationCallback mLocalCallback;
             private Executor mExecutor;
 
@@ -109,16 +124,16 @@
             public void onRegistered(int imsRadioTech) {
                 if (mLocalCallback == null) return;
 
-                Binder.withCleanCallingIdentity(() ->
-                        mExecutor.execute(() -> mLocalCallback.onRegistered(imsRadioTech)));
+                Binder.withCleanCallingIdentity(() -> mExecutor.execute(() ->
+                        mLocalCallback.onRegistered(getAccessType(imsRadioTech))));
             }
 
             @Override
             public void onRegistering(int imsRadioTech) {
                 if (mLocalCallback == null) return;
 
-                Binder.withCleanCallingIdentity(() ->
-                        mExecutor.execute(() -> mLocalCallback.onRegistering(imsRadioTech)));
+                Binder.withCleanCallingIdentity(() -> mExecutor.execute(() ->
+                        mLocalCallback.onRegistering(getAccessType(imsRadioTech))));
             }
 
             @Override
@@ -134,8 +149,8 @@
                 if (mLocalCallback == null) return;
 
                 Binder.withCleanCallingIdentity(() ->
-                        mExecutor.execute(() ->
-                                mLocalCallback.onTechnologyChangeFailed(imsRadioTech, info)));
+                        mExecutor.execute(() -> mLocalCallback.onTechnologyChangeFailed(
+                                getAccessType(imsRadioTech), info)));
             }
 
             @Override
@@ -150,6 +165,15 @@
             private void setExecutor(Executor executor) {
                 mExecutor = executor;
             }
+
+            private static int getAccessType(int regType) {
+                if (!IMS_REG_TO_ACCESS_TYPE_MAP.containsKey(regType)) {
+                    Log.w("ImsMmTelManager", "RegistrationBinder - invalid regType returned: "
+                            + regType);
+                    return -1;
+                }
+                return IMS_REG_TO_ACCESS_TYPE_MAP.get(regType);
+            }
         }
 
         private final RegistrationBinder mBinder = new RegistrationBinder(this);
@@ -157,19 +181,19 @@
         /**
          * Notifies the framework when the IMS Provider is registered to the IMS network.
          *
-         * @param imsRadioTech the radio access technology. Valid values are defined in
-         * {@link ImsRegistrationImplBase.ImsRegistrationTech}.
+         * @param imsTransportType the radio access technology. Valid values are defined in
+         * {@link android.telephony.AccessNetworkConstants.TransportType}.
          */
-        public void onRegistered(@ImsRegistrationImplBase.ImsRegistrationTech int imsRadioTech) {
+        public void onRegistered(int imsTransportType) {
         }
 
         /**
          * Notifies the framework when the IMS Provider is trying to register the IMS network.
          *
-         * @param imsRadioTech the radio access technology. Valid values are defined in
-         * {@link ImsRegistrationImplBase.ImsRegistrationTech}.
+         * @param imsTransportType the radio access technology. Valid values are defined in
+         * {@link android.telephony.AccessNetworkConstants.TransportType}.
          */
-        public void onRegistering(@ImsRegistrationImplBase.ImsRegistrationTech int imsRadioTech) {
+        public void onRegistering(int imsTransportType) {
         }
 
         /**
@@ -182,14 +206,14 @@
 
         /**
          * A failure has occurred when trying to handover registration to another technology type,
-         * defined in {@link ImsRegistrationImplBase.ImsRegistrationTech}
+         * defined in {@link android.telephony.AccessNetworkConstants.TransportType}
          *
-         * @param imsRadioTech The {@link ImsRegistrationImplBase.ImsRegistrationTech} type that has
-         *         failed
+         * @param imsTransportType The
+         *         {@link android.telephony.AccessNetworkConstants.TransportType}
+         *         transport type that has failed to handover registration to.
          * @param info A {@link ImsReasonInfo} that identifies the reason for failure.
          */
-        public void onTechnologyChangeFailed(
-                @ImsRegistrationImplBase.ImsRegistrationTech int imsRadioTech, ImsReasonInfo info) {
+        public void onTechnologyChangeFailed(int imsTransportType, ImsReasonInfo info) {
         }
 
         /**
@@ -219,8 +243,8 @@
     /**
      * Receives IMS capability status updates from the ImsService.
      *
-     * @see #addMmTelCapabilityCallback(Executor, CapabilityCallback) (CapabilityCallback)
-     * @see #removeMmTelCapabilityCallback(CapabilityCallback)
+     * @see #registerMmTelCapabilityCallback(Executor, CapabilityCallback) (CapabilityCallback)
+     * @see #unregisterMmTelCapabilityCallback(CapabilityCallback)
      */
     public static class CapabilityCallback {
 
@@ -285,13 +309,12 @@
         }
     }
 
-    private Context mContext;
     private int mSubId;
 
     /**
      * Create an instance of ImsManager for the subscription id specified.
      *
-     * @param context
+     * @param context The context to create this ImsMmTelManager instance within.
      * @param subId The ID of the subscription that this ImsMmTelManager will use.
      * @see android.telephony.SubscriptionManager#getActiveSubscriptionInfoList()
      * @throws IllegalArgumentException if the subscription is invalid or
@@ -303,11 +326,15 @@
             throw new IllegalArgumentException("Invalid subscription ID");
         }
 
-        return new ImsMmTelManager(context, subId);
+        return new ImsMmTelManager(subId);
     }
 
-    private ImsMmTelManager(Context context, int subId) {
-        mContext = context;
+    /**
+     * Only visible for testing, use {@link #createForSubscriptionId(Context, int)} instead.
+     * @hide
+     */
+    @VisibleForTesting
+    public ImsMmTelManager(int subId) {
         mSubId = subId;
     }
 
@@ -315,14 +342,18 @@
      * Registers a {@link RegistrationCallback} with the system, which will provide registration
      * updates for the subscription specified in {@link #createForSubscriptionId(Context, int)}. Use
      * {@link SubscriptionManager.OnSubscriptionsChangedListener} to listen to Subscription changed
-     * events and call {@link #removeImsRegistrationCallback(RegistrationCallback)} to clean up
+     * events and call {@link #unregisterImsRegistrationCallback(RegistrationCallback)} to clean up
      * after a subscription is removed.
+     *
+     * When the callback is registered, it will initiate the callback c to be called with the
+     * current registration state.
+     *
      * @param executor The executor the callback events should be run on.
      * @param c The {@link RegistrationCallback} to be added.
-     * @see #removeImsRegistrationCallback(RegistrationCallback)
+     * @see #unregisterImsRegistrationCallback(RegistrationCallback)
      */
-    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
-    public void addImsRegistrationCallback(@CallbackExecutor Executor executor,
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    public void registerImsRegistrationCallback(@CallbackExecutor Executor executor,
             @NonNull RegistrationCallback c) {
         if (c == null) {
             throw new IllegalArgumentException("Must include a non-null RegistrationCallback.");
@@ -332,8 +363,7 @@
         }
         c.setExecutor(executor);
         try {
-            getITelephony().addImsRegistrationCallback(mSubId, c.getBinder(),
-                    mContext.getOpPackageName());
+            getITelephony().registerImsRegistrationCallback(mSubId, c.getBinder());
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
@@ -344,16 +374,15 @@
      * up to avoid memory leaks or when the subscription is removed.
      * @param c The {@link RegistrationCallback} to be removed.
      * @see SubscriptionManager.OnSubscriptionsChangedListener
-     * @see #addImsRegistrationCallback(Executor, RegistrationCallback)
+     * @see #registerImsRegistrationCallback(Executor, RegistrationCallback)
      */
-    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
-    public void removeImsRegistrationCallback(@NonNull RegistrationCallback c) {
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    public void unregisterImsRegistrationCallback(@NonNull RegistrationCallback c) {
         if (c == null) {
             throw new IllegalArgumentException("Must include a non-null RegistrationCallback.");
         }
         try {
-            getITelephony().removeImsRegistrationCallback(mSubId, c.getBinder(),
-                    mContext.getOpPackageName());
+            getITelephony().unregisterImsRegistrationCallback(mSubId, c.getBinder());
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
@@ -364,14 +393,18 @@
      * updates for the subscription specified in {@link #createForSubscriptionId(Context, int)}.
      * Use {@link SubscriptionManager.OnSubscriptionsChangedListener} to listen to
      * subscription changed events and call
-     * {@link #removeImsRegistrationCallback(RegistrationCallback)} to clean up after a subscription
-     * is removed.
+     * {@link #unregisterImsRegistrationCallback(RegistrationCallback)} to clean up after a
+     * subscription is removed.
+     *
+     * When the callback is registered, it will initiate the callback c to be called with the
+     * current capabilities.
+     *
      * @param executor The executor the callback events should be run on.
      * @param c The MmTel {@link CapabilityCallback} to be registered.
-     * @see #removeMmTelCapabilityCallback(CapabilityCallback)
+     * @see #unregisterMmTelCapabilityCallback(CapabilityCallback)
      */
-    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
-    public void addMmTelCapabilityCallback(@CallbackExecutor Executor executor,
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    public void registerMmTelCapabilityCallback(@CallbackExecutor Executor executor,
             @NonNull CapabilityCallback c) {
         if (c == null) {
             throw new IllegalArgumentException("Must include a non-null RegistrationCallback.");
@@ -381,8 +414,7 @@
         }
         c.setExecutor(executor);
         try {
-            getITelephony().addMmTelCapabilityCallback(mSubId, c.getBinder(),
-                    mContext.getOpPackageName());
+            getITelephony().registerMmTelCapabilityCallback(mSubId, c.getBinder());
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
@@ -392,29 +424,42 @@
      * Removes an existing MmTel {@link CapabilityCallback}. Be sure to call this when cleaning
      * up to avoid memory leaks.
      * @param c The MmTel {@link CapabilityCallback} to be removed.
-     * @see #addMmTelCapabilityCallback(Executor, CapabilityCallback)
+     * @see #registerMmTelCapabilityCallback(Executor, CapabilityCallback)
      */
-    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
-    public void removeMmTelCapabilityCallback(@NonNull CapabilityCallback c) {
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    public void unregisterMmTelCapabilityCallback(@NonNull CapabilityCallback c) {
         if (c == null) {
             throw new IllegalArgumentException("Must include a non-null RegistrationCallback.");
         }
         try {
-            getITelephony().removeMmTelCapabilityCallback(mSubId, c.getBinder(),
-                    mContext.getOpPackageName());
+            getITelephony().unregisterMmTelCapabilityCallback(mSubId, c.getBinder());
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
     }
 
     /**
-     * Query the user's setting for whether or not to use MmTel capabilities over IMS,
-     * such as voice and video, depending on carrier configuration for the current subscription.
+     * Query the user’s setting for “Advanced Calling” or "Enhanced 4G LTE", which is used to
+     * enable MmTel IMS features, depending on the carrier configuration for the current
+     * subscription. If this setting is enabled, IMS voice and video telephony over IWLAN/LTE will
+     * be enabled as long as the carrier has provisioned these services for the specified
+     * subscription. Other IMS services (SMS/UT) are not affected by this user setting and depend on
+     * carrier requirements.
+     *
+     * Modifying this value may also trigger an IMS registration or deregistration, depending on
+     * whether or not the new value is enabled or disabled.
+     *
+     * Note: If the carrier configuration for advanced calling is not editable or hidden, this
+     * method will do nothing and will instead always use the default value.
+     *
+     * @see android.telephony.CarrierConfigManager#KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
+     * @see android.telephony.CarrierConfigManager#KEY_EDITABLE_ENHANCED_4G_LTE_BOOL
+     * @see android.telephony.CarrierConfigManager#KEY_HIDE_ENHANCED_4G_LTE_BOOL
+     * @see android.telephony.CarrierConfigManager#KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL
+     * @see android.telephony.CarrierConfigManager#KEY_CARRIER_VOLTE_AVAILABLE_BOOL
      * @see #setAdvancedCallingSetting(boolean)
-     * @return true if the user’s setting for advanced calling is enabled and false otherwise.
-     * @hide
+     * @return true if the user's setting for advanced calling is enabled, false otherwise.
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isAdvancedCallingSettingEnabled() {
         try {
@@ -426,13 +471,25 @@
 
     /**
      * Modify the user’s setting for “Advanced Calling” or "Enhanced 4G LTE", which is used to
-     * enable MmTel IMS features, such as voice and video calling, depending on the carrier
-     * configuration for the current subscription. Modifying this value may also trigger an IMS
-     * registration or deregistration, depending on the new value.
-     * @see #isAdvancedCallingEnabled()
-     * @hide
+     * enable MmTel IMS features, depending on the carrier configuration for the current
+     * subscription. If this setting is enabled, IMS voice and video telephony over IWLAN/LTE will
+     * be enabled as long as the carrier has provisioned these services for the specified
+     * subscription. Other IMS services (SMS/UT) are not affected by this user setting and depend on
+     * carrier requirements.
+     *
+     * Modifying this value may also trigger an IMS registration or deregistration, depending on
+     * whether or not the new value is enabled or disabled.
+     *
+     * Note: If the carrier configuration for advanced calling is not editable or hidden, this
+     * method will do nothing and will instead always use the default value.
+     *
+     * @see android.telephony.CarrierConfigManager#KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
+     * @see android.telephony.CarrierConfigManager#KEY_EDITABLE_ENHANCED_4G_LTE_BOOL
+     * @see android.telephony.CarrierConfigManager#KEY_HIDE_ENHANCED_4G_LTE_BOOL
+     * @see android.telephony.CarrierConfigManager#KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL
+     * @see android.telephony.CarrierConfigManager#KEY_CARRIER_VOLTE_AVAILABLE_BOOL
+     * @see #isAdvancedCallingSettingEnabled()
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setAdvancedCallingSetting(boolean isEnabled) {
         try {
@@ -464,12 +521,11 @@
      * @return {@code true} if the MmTel IMS capability is capable for this subscription, false
      *         otherwise.
      */
-    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isCapable(@MmTelFeature.MmTelCapabilities.MmTelCapability int capability,
             @ImsRegistrationImplBase.ImsRegistrationTech int imsRegTech) {
         try {
-            return getITelephony().isCapable(mSubId, capability, imsRegTech,
-                    mContext.getOpPackageName());
+            return getITelephony().isCapable(mSubId, capability, imsRegTech);
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
@@ -492,12 +548,11 @@
      * @return {@code true} if the MmTel IMS capability is available for this subscription, false
      *         otherwise.
      */
-    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isAvailable(@MmTelFeature.MmTelCapabilities.MmTelCapability int capability,
             @ImsRegistrationImplBase.ImsRegistrationTech int imsRegTech) {
         try {
-            return getITelephony().isAvailable(mSubId, capability, imsRegTech,
-                    mContext.getOpPackageName());
+            return getITelephony().isAvailable(mSubId, capability, imsRegTech);
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
@@ -508,11 +563,10 @@
      * @return true if the user’s “Video Calling” setting is currently enabled.
      * @see #setVtSetting(boolean)
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isVtSettingEnabled() {
         try {
-            return getITelephony().isVtSettingEnabled(mSubId, mContext.getOpPackageName());
+            return getITelephony().isVtSettingEnabled(mSubId);
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
@@ -521,9 +575,7 @@
     /**
      * Change the user's setting for Video Telephony and enable the Video Telephony capability.
      * @see #isVtSettingEnabled()
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setVtSetting(boolean isEnabled) {
         try {
@@ -537,9 +589,7 @@
     /**
      * @return true if the user's setting for Voice over WiFi is enabled and false if it is not.
      * @see #setVoWiFiSetting(boolean)
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isVoWiFiSettingEnabled() {
         try {
@@ -553,9 +603,7 @@
      * Sets the user's setting for whether or not Voice over WiFi is enabled.
      * @param isEnabled true if the user's setting for Voice over WiFi is enabled, false otherwise=
      * @see #isVoWiFiSettingEnabled()
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setVoWiFiSetting(boolean isEnabled) {
         try {
@@ -570,9 +618,7 @@
      * @return true if the user's setting for Voice over WiFi while roaming is enabled, false
      * if disabled.
      * @see #setVoWiFiRoamingSetting(boolean)
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isVoWiFiRoamingSettingEnabled() {
         try {
@@ -587,9 +633,7 @@
      * @param isEnabled true if the user's setting for Voice over WiFi while roaming is enabled,
      *     false otherwise.
      * @see #isVoWiFiRoamingSettingEnabled()
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setVoWiFiRoamingSetting(boolean isEnabled) {
         try {
@@ -611,9 +655,7 @@
      * - {@link #WIFI_MODE_CELLULAR_PREFERRED}
      * - {@link #WIFI_MODE_WIFI_PREFERRED}
      * @see #setVoWiFiSetting(boolean)
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setVoWiFiNonPersistent(boolean isCapable, int mode) {
         try {
@@ -631,9 +673,7 @@
      * - {@link #WIFI_MODE_CELLULAR_PREFERRED}
      * - {@link #WIFI_MODE_WIFI_PREFERRED}
      * @see #setVoWiFiSetting(boolean)
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public @WiFiCallingMode int getVoWiFiModeSetting() {
         try {
@@ -651,9 +691,7 @@
      * - {@link #WIFI_MODE_CELLULAR_PREFERRED}
      * - {@link #WIFI_MODE_WIFI_PREFERRED}
      * @see #getVoWiFiModeSetting()
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setVoWiFiModeSetting(@WiFiCallingMode int mode) {
         try {
@@ -674,9 +712,7 @@
      *     - {@link #WIFI_MODE_CELLULAR_PREFERRED}
      *     - {@link #WIFI_MODE_WIFI_PREFERRED}
      * @see #setVoWiFiRoamingSetting(boolean)
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     @WiFiCallingMode int getVoWiFiRoamingModeSetting() {
         try {
@@ -696,9 +732,7 @@
      *     - {@link #WIFI_MODE_CELLULAR_PREFERRED}
      *     - {@link #WIFI_MODE_WIFI_PREFERRED}
      * @see #getVoWiFiRoamingModeSetting()
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setVoWiFiRoamingModeSetting(@WiFiCallingMode int mode) {
         try {
@@ -712,9 +746,7 @@
     /**
      * Change the user's setting for RTT capability of this device.
      * @param isEnabled if true RTT will be enabled during calls.
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setRttCapabilitySetting(boolean isEnabled) {
         try {
@@ -729,9 +761,7 @@
      * @return true if TTY over VoLTE is supported
      * @see android.telecom.TelecomManager#getCurrentTtyMode
      * @see android.telephony.CarrierConfigManager#KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL
-     * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     boolean isTtyOverVolteEnabled() {
         try {
diff --git a/telephony/java/android/telephony/ims/feature/ImsFeature.java b/telephony/java/android/telephony/ims/feature/ImsFeature.java
index 3f22f98..b55866b 100644
--- a/telephony/java/android/telephony/ims/feature/ImsFeature.java
+++ b/telephony/java/android/telephony/ims/feature/ImsFeature.java
@@ -425,6 +425,12 @@
      */
     public final void addCapabilityCallback(IImsCapabilityCallback c) {
         mCapabilityCallbacks.register(c);
+        try {
+            // Notify the Capability callback that was just registered of the current capabilities.
+            c.onCapabilitiesStatusChanged(queryCapabilityStatus().mCapabilities);
+        } catch (RemoteException e) {
+            Log.w(LOG_TAG, "addCapabilityCallback: error accessing callback: " + e.getMessage());
+        }
     }
 
     /**
diff --git a/telephony/java/android/telephony/mbms/GroupCall.java b/telephony/java/android/telephony/mbms/GroupCall.java
index 9aca18e..25e274e 100644
--- a/telephony/java/android/telephony/mbms/GroupCall.java
+++ b/telephony/java/android/telephony/mbms/GroupCall.java
@@ -17,6 +17,7 @@
 package android.telephony.mbms;
 
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.os.RemoteException;
 import android.telephony.MbmsGroupCallSession;
 import android.telephony.mbms.vendor.IMbmsGroupCallService;
@@ -24,6 +25,7 @@
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.List;
 
 /**
  * Class used to represent a single MBMS group call. After a call has been started with
@@ -41,8 +43,26 @@
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(prefix = { "STATE_" }, value = {STATE_STOPPED, STATE_STARTED, STATE_STALLED})
     public @interface GroupCallState {}
+
+    /**
+     * Indicates that the group call is in a stopped state
+     *
+     * This can be reported after network action or after calling {@link #close}.
+     */
     public static final int STATE_STOPPED = 1;
+
+    /**
+     * Indicates that the group call is started.
+     *
+     * Data can be transmitted and received in this state.
+     */
     public static final int STATE_STARTED = 2;
+
+    /**
+     * Indicates that the group call is stalled.
+     *
+     * This may be due to a network issue or the device being temporarily out of range.
+     */
     public static final int STATE_STALLED = 3;
 
     /**
@@ -122,16 +142,17 @@
      * Send an update to the middleware when the SAI (Service Area Identifier) list and frequency
      * information of the group call has * changed. Callers must obtain this information from the
      * wireless carrier independently.
-     * @param saiArray New array of SAIs that the call is available on.
-     * @param frequencyArray New array of frequencies that the call is available on.
+     * @param saiList New list of SAIs that the call is available on.
+     * @param frequencyList New list of frequencies that the call is available on.
      */
-    public void updateGroupCall(int[] saiArray, int[] frequencyArray) {
+    public void updateGroupCall(@NonNull List<Integer> saiList,
+            @NonNull List<Integer> frequencyList) {
         if (mService == null) {
             throw new IllegalStateException("No group call service attached");
         }
 
         try {
-            mService.updateGroupCall(mSubscriptionId, mTmgi, saiArray, frequencyArray);
+            mService.updateGroupCall(mSubscriptionId, mTmgi, saiList, frequencyList);
         } catch (RemoteException e) {
             Log.w(LOG_TAG, "Remote process died");
             mService = null;
diff --git a/telephony/java/android/telephony/mbms/GroupCallCallback.java b/telephony/java/android/telephony/mbms/GroupCallCallback.java
index 001bb02..77e36bb 100644
--- a/telephony/java/android/telephony/mbms/GroupCallCallback.java
+++ b/telephony/java/android/telephony/mbms/GroupCallCallback.java
@@ -17,6 +17,7 @@
 package android.telephony.mbms;
 
 import android.annotation.IntDef;
+import android.annotation.IntRange;
 import android.annotation.Nullable;
 
 import java.lang.annotation.Retention;
@@ -26,7 +27,7 @@
  * A callback class for use when the application is in a group call. The middleware
  * will provide updates on the status of the call via this callback.
  */
-public class GroupCallCallback {
+public interface GroupCallCallback {
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(value = {
@@ -40,7 +41,7 @@
             MbmsErrors.GeneralErrors.ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE,
             MbmsErrors.GeneralErrors.ERROR_UNABLE_TO_READ_SIM,
             MbmsErrors.GeneralErrors.ERROR_CARRIER_CHANGE_NOT_ALLOWED}, prefix = { "ERROR_" })
-    private @interface GroupCallError{}
+    @interface GroupCallError{}
 
     /**
      * Indicates broadcast signal strength is not available for this call.
@@ -48,7 +49,7 @@
      * This may be due to the call no longer being available due to geography
      * or timing (end of service)
      */
-    public static final int SIGNAL_STRENGTH_UNAVAILABLE = -1;
+    int SIGNAL_STRENGTH_UNAVAILABLE = -1;
 
     /**
      * Called by the middleware when it has detected an error condition in this group call. The
@@ -56,9 +57,7 @@
      * @param errorCode The error code.
      * @param message A human-readable message generated by the middleware for debugging purposes.
      */
-    public void onError(@GroupCallError int errorCode, @Nullable String message) {
-        // default implementation empty
-    }
+    void onError(@GroupCallError int errorCode, @Nullable String message);
 
     /**
      * Called to indicate this call has changed state.
@@ -66,10 +65,8 @@
      * See {@link GroupCall#STATE_STOPPED}, {@link GroupCall#STATE_STARTED}
      * and {@link GroupCall#STATE_STALLED}.
      */
-    public void onGroupCallStateChanged(@GroupCall.GroupCallState int state,
-            @GroupCall.GroupCallStateChangeReason int reason) {
-        // default implementation empty
-    }
+    void onGroupCallStateChanged(@GroupCall.GroupCallState int state,
+            @GroupCall.GroupCallStateChangeReason int reason);
 
     /**
      * Broadcast Signal Strength updated.
@@ -81,7 +78,5 @@
      * {@link #SIGNAL_STRENGTH_UNAVAILABLE} if broadcast is not available
      * for this call due to timing, geography or popularity.
      */
-    public void onBroadcastSignalStrengthUpdated(int signalStrength) {
-        // default implementation empty
-    }
+    void onBroadcastSignalStrengthUpdated(@IntRange(from = -1, to = 4) int signalStrength);
 }
diff --git a/telephony/java/android/telephony/mbms/MbmsErrors.java b/telephony/java/android/telephony/mbms/MbmsErrors.java
index 7c4321b..52e4d33 100644
--- a/telephony/java/android/telephony/mbms/MbmsErrors.java
+++ b/telephony/java/android/telephony/mbms/MbmsErrors.java
@@ -140,5 +140,21 @@
         public static final int ERROR_UNKNOWN_FILE_INFO = 403;
     }
 
+    /**
+     * Indicates the errors that are applicable only to the group call use-case.
+     */
+    public static class GroupCallErrors {
+        private GroupCallErrors() { }
+        /** Indicates that the middleware was unable to start the group call. */
+        public static final int ERROR_UNABLE_TO_START_SERVICE = 501;
+
+        /**
+         * Indicates that the app called
+         * {@link android.telephony.MbmsGroupCallSession#startGroupCall} more than once for the
+         * same {@code tmgi}.
+         */
+        public static final int ERROR_DUPLICATE_START_GROUP_CALL = 502;
+    }
+
     private MbmsErrors() {}
 }
diff --git a/telephony/java/android/telephony/mbms/MbmsGroupCallSessionCallback.java b/telephony/java/android/telephony/mbms/MbmsGroupCallSessionCallback.java
index 7da734e..04e7ba1 100644
--- a/telephony/java/android/telephony/mbms/MbmsGroupCallSessionCallback.java
+++ b/telephony/java/android/telephony/mbms/MbmsGroupCallSessionCallback.java
@@ -17,6 +17,7 @@
 package android.telephony.mbms;
 
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.Context;
 import android.telephony.MbmsGroupCallSession;
@@ -29,9 +30,9 @@
 /**
  * A callback class that is used to receive information from the middleware on MBMS group-call
  * services. An instance of this object should be passed into
- * {@link MbmsGroupCallSession#create(Context, Executor, int, MbmsGroupCallSessionCallback)}.
+ * {@link MbmsGroupCallSession#create(Context, int, Executor, MbmsGroupCallSessionCallback)}.
  */
-public class MbmsGroupCallSessionCallback {
+public interface MbmsGroupCallSessionCallback {
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(value = {
@@ -48,7 +49,7 @@
             MbmsErrors.GeneralErrors.ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE,
             MbmsErrors.GeneralErrors.ERROR_UNABLE_TO_READ_SIM,
             MbmsErrors.GeneralErrors.ERROR_CARRIER_CHANGE_NOT_ALLOWED}, prefix = { "ERROR_" })
-    private @interface GroupCallError{}
+    @interface GroupCallError{}
 
     /**
      * Called by the middleware when it has detected an error condition. The possible error codes
@@ -56,8 +57,7 @@
      * @param errorCode The error code.
      * @param message A human-readable message generated by the middleware for debugging purposes.
      */
-    public void onError(@GroupCallError int errorCode, @Nullable String message) {
-    }
+    void onError(@GroupCallError int errorCode, @Nullable String message);
 
     /**
      * Indicates that the list of currently available SAIs has been updated. The app may use this
@@ -70,21 +70,22 @@
      * @param availableSais A list of lists of available SAIS in neighboring cells, where each list
      *                      contains the available SAIs in an individual cell.
      */
-    public void onAvailableSaisUpdated(List<Integer> currentSais,
-            List<List<Integer>> availableSais) {
-    }
+    void onAvailableSaisUpdated(@NonNull List<Integer> currentSais,
+            @NonNull List<List<Integer>> availableSais);
 
     /**
      * Called soon after the app calls {@link MbmsGroupCallSession#create}. The information supplied
-     * via this callback may be used to establish a data-link interface with the modem before the
-     * middleware is ready.
-     * Note that this method may be called before {@link #onMiddlewareReady()}.
+     * via this callback may be used to establish a data-link interface with the modem.
+     *
+     * In order to establish the data-link interface, the multicast IP and port must be obtained
+     * out-of-band from the carrier. A {@link java.net.MulticastSocket} may then be constructed
+     * using a {@link java.net.NetworkInterface} with the name and interface supplied by this
+     * callback.
      *
      * @param interfaceName The interface name for the data link.
      * @param index The index for the data link.
      */
-    public void onServiceInterfaceAvailable(String interfaceName, int index) {
-    }
+    void onServiceInterfaceAvailable(@NonNull String interfaceName, int index);
 
     /**
      * Called to indicate that the middleware has been initialized and is ready.
@@ -94,6 +95,5 @@
      * delivered via {@link #onError(int, String)} with error code
      * {@link MbmsErrors.GeneralErrors#ERROR_MIDDLEWARE_NOT_YET_READY}.
      */
-    public void onMiddlewareReady() {
-    }
+    void onMiddlewareReady();
 }
diff --git a/telephony/java/android/telephony/mbms/vendor/IMbmsGroupCallService.aidl b/telephony/java/android/telephony/mbms/vendor/IMbmsGroupCallService.aidl
index 721256a..44cc24a 100755
--- a/telephony/java/android/telephony/mbms/vendor/IMbmsGroupCallService.aidl
+++ b/telephony/java/android/telephony/mbms/vendor/IMbmsGroupCallService.aidl
@@ -29,11 +29,11 @@
 
     void stopGroupCall(int subId, long tmgi);
 
-    void updateGroupCall(int subscriptionId, long tmgi, in int[] saiArray,
-        in int[] frequencyArray);
+    void updateGroupCall(int subscriptionId, long tmgi, in List saiList,
+        in List frequencyList);
 
-    int startGroupCall(int subscriptionId, long tmgi, in int[] saiArray,
-        in int[] frequencyArray, IGroupCallCallback callback);
+    int startGroupCall(int subscriptionId, long tmgi, in List saiList,
+        in List frequencyList, IGroupCallCallback callback);
 
     void dispose(int subId);
 }
diff --git a/telephony/java/android/telephony/mbms/vendor/MbmsGroupCallServiceBase.java b/telephony/java/android/telephony/mbms/vendor/MbmsGroupCallServiceBase.java
index 3734ca7..e86a47d 100644
--- a/telephony/java/android/telephony/mbms/vendor/MbmsGroupCallServiceBase.java
+++ b/telephony/java/android/telephony/mbms/vendor/MbmsGroupCallServiceBase.java
@@ -115,15 +115,16 @@
         }
 
         @Override
-        public void updateGroupCall(int subscriptionId, long tmgi, int[] saiArray,
-                int[] frequencyArray) {
+        public void updateGroupCall(int subscriptionId, long tmgi, List saiList,
+                List frequencyList) {
             MbmsGroupCallServiceBase.this.updateGroupCall(
-                    subscriptionId, tmgi, saiArray, frequencyArray);
+                    subscriptionId, tmgi, saiList, frequencyList);
         }
 
         @Override
-        public int startGroupCall(final int subscriptionId, final long tmgi, final int[] saiArray,
-                final int[] frequencyArray, final IGroupCallCallback callback)
+        public int startGroupCall(final int subscriptionId, final long tmgi,
+                final List saiList,
+                final List frequencyList, final IGroupCallCallback callback)
                 throws RemoteException {
             if (callback == null) {
                 throw new NullPointerException("Callback must not be null");
@@ -132,7 +133,7 @@
             final int uid = Binder.getCallingUid();
 
             int result = MbmsGroupCallServiceBase.this.startGroupCall(
-                    subscriptionId, tmgi, saiArray, frequencyArray, new GroupCallCallback() {
+                    subscriptionId, tmgi, saiList, frequencyList, new GroupCallCallback() {
                         @Override
                         public void onError(final int errorCode, final String message) {
                             try {
@@ -209,13 +210,13 @@
      *
      * @param subscriptionId The subscription id to use.
      * @param tmgi The TMGI, an identifier for the group call.
-     * @param saiArray An array of SAIs for the group call.
-     * @param frequencyArray An array of frequencies for the group call.
+     * @param saiList A list of SAIs for the group call.
+     * @param frequencyList A list of frequencies for the group call.
      * @param callback The callback object on which the app wishes to receive updates.
      * @return Any error in {@link MbmsErrors.GeneralErrors}
      */
-    public int startGroupCall(int subscriptionId, long tmgi, int[] saiArray, int[] frequencyArray,
-            GroupCallCallback callback) {
+    public int startGroupCall(int subscriptionId, long tmgi, List<Integer> saiList,
+            List<Integer> frequencyList, GroupCallCallback callback) {
         throw new UnsupportedOperationException("Not implemented");
     }
 
@@ -237,11 +238,11 @@
     /**
      * Called when the app receives new SAI and frequency information for the group call identified
      * by {@code tmgi}.
-     * @param saiArray New array of SAIs that the call is available on.
-     * @param frequencyArray New array of frequencies that the call is available on.
+     * @param saiList New list of SAIs that the call is available on.
+     * @param frequencyList New list of frequencies that the call is available on.
      */
-    public void updateGroupCall(int subscriptionId, long tmgi, int[] saiArray,
-            int[] frequencyArray) {
+    public void updateGroupCall(int subscriptionId, long tmgi, List<Integer> saiList,
+            List<Integer> frequencyList) {
         throw new UnsupportedOperationException("Not implemented");
     }
 
diff --git a/telephony/java/com/android/internal/telephony/IAns.aidl b/telephony/java/com/android/internal/telephony/IAns.aidl
index e9a4649..98bcd41 100755
--- a/telephony/java/com/android/internal/telephony/IAns.aidl
+++ b/telephony/java/com/android/internal/telephony/IAns.aidl
@@ -16,6 +16,7 @@
 
 package com.android.internal.telephony;
 
+import android.telephony.AvailableNetworkInfo;
 
 interface IAns {
 
@@ -78,4 +79,23 @@
      *
      */
     int getPreferredData(String callingPackage);
+
+    /**
+     * Update availability of a list of networks in the current location.
+     *
+     * This api should be called if the caller is aware of the availability of a network
+     * at the current location. This information will be used by AlternativeNetwork service
+     * to decide to attach to the network. If an empty list is passed,
+     * it is assumed that no network is available.
+     * Requires that the calling app has carrier privileges on both primary and
+     * secondary subscriptions (see
+     * {@link #hasCarrierPrivileges}), or has permission
+     * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}.
+     *  @param availableNetworks is a list of available network information.
+     *  @param callingPackage caller's package name
+     *  @return true if request is accepted
+     *
+     */
+    boolean updateAvailableNetworks(in List<AvailableNetworkInfo> availableNetworks,
+            String callingPackage);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/telephony/java/com/android/internal/telephony/INumberVerificationCallback.aidl
similarity index 72%
rename from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
rename to telephony/java/com/android/internal/telephony/INumberVerificationCallback.aidl
index 27d25b8..76918af 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/telephony/java/com/android/internal/telephony/INumberVerificationCallback.aidl
@@ -13,12 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.internal.telephony;
+
+oneway interface INumberVerificationCallback {
+    void onCallReceived(String phoneNumber);
+    void onVerificationFailed(int reason);
 }
diff --git a/telephony/java/com/android/internal/telephony/ISub.aidl b/telephony/java/com/android/internal/telephony/ISub.aidl
index bc44519..f9db4b0 100755
--- a/telephony/java/com/android/internal/telephony/ISub.aidl
+++ b/telephony/java/com/android/internal/telephony/ISub.aidl
@@ -184,6 +184,15 @@
     String setSubscriptionGroup(in int[] subIdList, String callingPackage);
 
     /**
+     * Set whether a subscription is metered
+     *
+     * @param isMetered whether it’s a metered subscription.
+     * @param subId the unique SubscriptionInfo index in database
+     * @return the number of records updated
+     */
+    int setMetered(boolean isMetered, int subId);
+
+    /**
      * Set which subscription is preferred for cellular data. It's
      * designed to overwrite default data subscription temporarily.
      *
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index f0e8586..32e939a0 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -393,16 +393,11 @@
     int getDataActivationState(int subId, String callingPackage);
 
     /**
-      * Returns the unread count of voicemails
-      */
-    int getVoiceMessageCount();
-
-    /**
      * Returns the unread count of voicemails for a subId.
      * @param subId user preferred subId.
      * Returns the unread count of voicemails
      */
-    int getVoiceMessageCountForSubscriber(int subId);
+    int getVoiceMessageCountForSubscriber(int subId, String callingPackage);
 
     /**
       * Returns true if current state supports both voice and data
@@ -1372,6 +1367,15 @@
     String getSubscriptionPreciseCarrierName(int subId);
 
     /**
+     * Returns carrier id based on MCCMNC only. This will return a MNO carrier id used for fallback
+     * check when exact carrier id {@link #getSimCarrierId()} configurations are not found
+     *
+     * @return carrier id from passing mccmnc.
+     * @hide
+     */
+    int getCarrierIdFromMccMnc(int slotIndex, String mccmnc);
+
+    /**
      * Action set from carrier signalling broadcast receivers to enable/disable metered apns
      * Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
      * @param subId the subscription ID that this action applies to.
@@ -1587,35 +1591,31 @@
     /**
      * Adds an IMS registration status callback for the subscription id specified.
      */
-    void addImsRegistrationCallback(int subId, IImsRegistrationCallback c,
-            String callingPackage);
+    void registerImsRegistrationCallback(int subId, IImsRegistrationCallback c);
      /**
       * Removes an existing IMS registration status callback for the subscription specified.
       */
-    void removeImsRegistrationCallback(int subId, IImsRegistrationCallback c,
-            String callingPackage);
+    void unregisterImsRegistrationCallback(int subId, IImsRegistrationCallback c);
 
     /**
      * Adds an IMS MmTel capabilities callback for the subscription specified.
      */
-    void addMmTelCapabilityCallback(int subId, IImsCapabilityCallback c,
-            String callingPackage);
+    void registerMmTelCapabilityCallback(int subId, IImsCapabilityCallback c);
 
     /**
      * Removes an existing IMS MmTel capabilities callback for the subscription specified.
      */
-    void removeMmTelCapabilityCallback(int subId, IImsCapabilityCallback c,
-            String callingPackage);
+    void unregisterMmTelCapabilityCallback(int subId, IImsCapabilityCallback c);
 
     /**
      * return true if the IMS MmTel capability for the given registration tech is capable.
      */
-    boolean isCapable(int subId, int capability, int regTech, String callingPackage);
+    boolean isCapable(int subId, int capability, int regTech);
 
     /**
      * return true if the IMS MmTel capability for the given registration tech is available.
      */
-    boolean isAvailable(int subId, int capability, int regTech, String callingPackage);
+    boolean isAvailable(int subId, int capability, int regTech);
 
     /**
      * Returns true if the user's setting for 4G LTE is enabled, for the subscription specified.
@@ -1630,7 +1630,7 @@
     /**
      * return true if the user's setting for VT is enabled for the subscription.
      */
-    boolean isVtSettingEnabled(int subId, String callingPackage);
+    boolean isVtSettingEnabled(int subId);
 
     /**
      * Modify the user's setting for whether or not VT is available for the subscrption specified.
@@ -1704,7 +1704,7 @@
      * Identify if the number is emergency number, based on all the active subscriptions.
      */
     boolean isCurrentEmergencyNumber(String number);
-    
+
     /**
      * Return a list of certs in hex string from loaded carrier privileges access rules.
      */
diff --git a/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
index 923ab06..76e7509 100644
--- a/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
@@ -25,6 +25,7 @@
 import android.telephony.PhysicalChannelConfig;
 import android.telephony.ServiceState;
 import android.telephony.SignalStrength;
+import android.telephony.emergency.EmergencyNumber;
 import com.android.internal.telephony.IPhoneStateListener;
 import com.android.internal.telephony.IOnSubscriptionsChangedListener;
 
@@ -80,4 +81,5 @@
     void notifyPhoneCapabilityChanged(in PhoneCapability capability);
     void notifyPreferredDataSubIdChanged(int preferredSubId);
     void notifyRadioPowerStateChanged(in int state);
+    void notifyEmergencyNumberList(in List<EmergencyNumber> emergencyNumberList);
 }
diff --git a/test-mock/api/current.txt b/test-mock/api/current.txt
index f91d74a..5b58dd5 100644
--- a/test-mock/api/current.txt
+++ b/test-mock/api/current.txt
@@ -80,6 +80,7 @@
     method public java.io.File getNoBackupFilesDir();
     method public java.io.File getObbDir();
     method public java.io.File[] getObbDirs();
+    method public java.lang.String getOpPackageName();
     method public java.lang.String getPackageCodePath();
     method public android.content.pm.PackageManager getPackageManager();
     method public java.lang.String getPackageName();
@@ -135,6 +136,7 @@
     method public boolean stopService(android.content.Intent);
     method public void unbindService(android.content.ServiceConnection);
     method public void unregisterReceiver(android.content.BroadcastReceiver);
+    method public void updateServiceGroup(android.content.ServiceConnection, int, int);
   }
 
   public deprecated class MockCursor implements android.database.Cursor {
diff --git a/test-mock/api/test-current.txt b/test-mock/api/test-current.txt
index f1ec000..8b2c815 100644
--- a/test-mock/api/test-current.txt
+++ b/test-mock/api/test-current.txt
@@ -1,9 +1,5 @@
 package android.test.mock {
 
-  public class MockContext extends android.content.Context {
-    method public java.lang.String getOpPackageName();
-  }
-
   public deprecated class MockPackageManager extends android.content.pm.PackageManager {
     method public boolean arePermissionsIndividuallyControlled();
     method public java.lang.String getDefaultBrowserPackageNameAsUser(int);
diff --git a/test-mock/src/android/test/mock/MockContext.java b/test-mock/src/android/test/mock/MockContext.java
index 66be6d9..ae6cd29 100644
--- a/test-mock/src/android/test/mock/MockContext.java
+++ b/test-mock/src/android/test/mock/MockContext.java
@@ -591,6 +591,11 @@
     }
 
     @Override
+    public void updateServiceGroup(ServiceConnection conn, int group, int importance) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
     public void unbindService(ServiceConnection conn) {
         throw new UnsupportedOperationException();
     }
diff --git a/tests/Internal/src/android/service/wallpaper/WallpaperServiceTest.java b/tests/Internal/src/android/service/wallpaper/WallpaperServiceTest.java
index 8d8fc84..b9e282e 100644
--- a/tests/Internal/src/android/service/wallpaper/WallpaperServiceTest.java
+++ b/tests/Internal/src/android/service/wallpaper/WallpaperServiceTest.java
@@ -38,7 +38,7 @@
             public Engine onCreateEngine() {
                 return new Engine() {
                     @Override
-                    public void onAmbientModeChanged(boolean inAmbientMode, boolean animated) {
+                    public void onAmbientModeChanged(boolean inAmbientMode, long duration) {
                         ambientModeChangedCount[0]++;
                     }
                 };
@@ -47,12 +47,12 @@
         WallpaperService.Engine engine = service.onCreateEngine();
         engine.setCreated(true);
 
-        engine.doAmbientModeChanged(false, false);
+        engine.doAmbientModeChanged(false, 0);
         assertFalse("ambient mode should be false", engine.isInAmbientMode());
         assertEquals("onAmbientModeChanged should have been called",
                 ambientModeChangedCount[0], 1);
 
-        engine.doAmbientModeChanged(true, false);
+        engine.doAmbientModeChanged(true, 0);
         assertTrue("ambient mode should be false", engine.isInAmbientMode());
         assertEquals("onAmbientModeChanged should have been called",
                 ambientModeChangedCount[0], 2);
diff --git a/tests/TouchLatency/.gitignore b/tests/TouchLatency/.gitignore
index bd79078..7f4121a 100644
--- a/tests/TouchLatency/.gitignore
+++ b/tests/TouchLatency/.gitignore
@@ -3,4 +3,5 @@
 /.idea
 .DS_Store
 /build
+/gen
 .iml
diff --git a/tests/TouchLatency/app/build.gradle b/tests/TouchLatency/app/build.gradle
index 2337110..2594322 100644
--- a/tests/TouchLatency/app/build.gradle
+++ b/tests/TouchLatency/app/build.gradle
@@ -1,13 +1,13 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 21
-    buildToolsVersion "21.1.2"
+    compileSdkVersion 28
+    buildToolsVersion '28.0.3'
 
     defaultConfig {
         applicationId "com.prefabulated.touchlatency"
         minSdkVersion 21
-        targetSdkVersion 21
+        targetSdkVersion 28
         versionCode 1
         versionName "1.0"
     }
diff --git a/tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java b/tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java
index b4b5ca7..360c22f 100644
--- a/tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java
+++ b/tests/TouchLatency/app/src/main/java/com/prefabulated/touchlatency/TouchLatencyActivity.java
@@ -19,11 +19,9 @@
 import android.app.Activity;
 import android.content.Context;
 import android.graphics.Canvas;
-import android.graphics.Color;
 import android.graphics.Paint;
-import android.os.CountDownTimer;
+import android.graphics.Paint.Align;
 import android.os.Bundle;
-import android.text.method.Touch;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.Menu;
@@ -31,15 +29,17 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.os.Trace;
-
-import java.util.ArrayList;
-import java.util.Collections;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
 
 class TouchLatencyView extends View implements View.OnTouchListener {
     private static final String LOG_TAG = "TouchLatency";
     private static final int BACKGROUND_COLOR = 0xFF400080;
     private static final int INNER_RADIUS = 70;
-    private static final int BALL_RADIUS = 100;
+    private static final int BALL_DIAMETER = 200;
+    private static final int SEC_TO_NANOS = 1000000000;
+    private static final float FPS_UPDATE_THRESHOLD = 20;
+    private static final long BALL_VELOCITY = 420;
 
     public TouchLatencyView(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -58,13 +58,17 @@
         mRedPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
         mRedPaint.setColor(0xFFFF0000);
         mRedPaint.setStyle(Paint.Style.FILL);
+        mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+        mTextPaint.setColor(0xFFFFFFFF);
+        mTextPaint.setTextSize(100);
+        mTextPaint.setTextAlign(Align.RIGHT);
 
         mTouching = false;
 
-        mBallX = 100.0f;
-        mBallY = 100.0f;
-        mVelocityX = 7.0f;
-        mVelocityY = 7.0f;
+        mLastDrawNano = 0;
+        mFps = 0;
+        mLastFpsUpdate = 0;
+        mFrameCount = 0;
         Trace.endSection();
     }
 
@@ -113,43 +117,70 @@
         }
     }
 
+    private Paint getBallColor() {
+        if (mFps > 75)
+            return mGreenPaint;
+        else if (mFps > 45)
+            return mYellowPaint;
+        else
+            return mRedPaint;
+    }
+
     private void drawBall(Canvas canvas) {
         Trace.beginSection("TouchLatencyView drawBall");
         int width = canvas.getWidth();
         int height = canvas.getHeight();
+        float fps = 0f;
 
-        // Update position
-        mBallX += mVelocityX;
-        mBallY += mVelocityY;
+        long t = System.nanoTime();
+        long tDiff = t - mLastDrawNano;
+        mLastDrawNano = t;
+        mFrameCount++;
 
-        // Clamp and change velocity if necessary
-        float left = mBallX - BALL_RADIUS;
-        if (left < 0) {
-            left = 0;
-            mVelocityX *= -1;
+        if (tDiff < SEC_TO_NANOS) {
+            fps = 1f * SEC_TO_NANOS / tDiff;
         }
 
-        float top = mBallY - BALL_RADIUS;
-        if (top < 0) {
-            top = 0;
-            mVelocityY *= -1;
+        long fDiff = t - mLastFpsUpdate;
+        if (Math.abs(mFps - fps) > FPS_UPDATE_THRESHOLD) {
+            mFps = fps;
+            mLastFpsUpdate = t;
+            mFrameCount = 0;
+        } else if (fDiff > SEC_TO_NANOS) {
+            mFps = 1f * mFrameCount * SEC_TO_NANOS / fDiff;
+            mLastFpsUpdate = t;
+            mFrameCount = 0;
         }
 
-        float right = mBallX + BALL_RADIUS;
-        if (right > width) {
-            right = width;
-            mVelocityX *= -1;
-        }
+        final long pos = t * BALL_VELOCITY / SEC_TO_NANOS;
+        final long xMax = width - BALL_DIAMETER;
+        final long yMax = height - BALL_DIAMETER;
+        long xOffset = pos % xMax;
+        long yOffset = pos % yMax;
 
-        float bottom = mBallY + BALL_RADIUS;
-        if (bottom > height) {
-            bottom = height;
-            mVelocityY *= -1;
+        float left, right, top, bottom;
+
+        if (((pos / xMax) & 1) == 0) {
+            left = xMax - xOffset;
+        } else {
+            left = xOffset;
         }
+        right = left + BALL_DIAMETER;
+
+        if (((pos / yMax) & 1) == 0) {
+            top = yMax - yOffset;
+        } else {
+            top = yOffset;
+        }
+        bottom = top + BALL_DIAMETER;
 
         // Draw the ball
         canvas.drawColor(BACKGROUND_COLOR);
-        canvas.drawOval(left, top, right, bottom, mYellowPaint);
+        canvas.drawOval(left, top, right, bottom, getBallColor());
+        DecimalFormat df = new DecimalFormat("fps: #.##");
+        df.setRoundingMode(RoundingMode.HALF_UP);
+        canvas.drawText(df.format(mFps), width, 100, mTextPaint);
+
         invalidate();
         Trace.endSection();
     }
@@ -176,15 +207,15 @@
         Trace.endSection();
     }
 
-    private Paint mBluePaint, mGreenPaint, mYellowPaint, mRedPaint;
+    private final Paint mBluePaint, mGreenPaint, mYellowPaint, mRedPaint, mTextPaint;
     private int mMode;
 
     private boolean mTouching;
     private float mTouchX, mTouchY;
     private float mLastDrawnX, mLastDrawnY;
 
-    private float mBallX, mBallY;
-    private float mVelocityX, mVelocityY;
+    private long mLastDrawNano, mLastFpsUpdate, mFrameCount;
+    private float mFps;
 }
 
 public class TouchLatencyActivity extends Activity {
diff --git a/tests/TouchLatency/build.gradle b/tests/TouchLatency/build.gradle
index d3ff69d..03abe82 100644
--- a/tests/TouchLatency/build.gradle
+++ b/tests/TouchLatency/build.gradle
@@ -3,9 +3,10 @@
 buildscript {
     repositories {
         jcenter()
+        google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:1.1.0'
+        classpath 'com.android.tools.build:gradle:3.2.1'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -15,5 +16,6 @@
 allprojects {
     repositories {
         jcenter()
+        google()
     }
 }
diff --git a/tests/TouchLatency/gradle/wrapper/gradle-wrapper.properties b/tests/TouchLatency/gradle/wrapper/gradle-wrapper.properties
index 0c71e76..111992a 100644
--- a/tests/TouchLatency/gradle/wrapper/gradle-wrapper.properties
+++ b/tests/TouchLatency/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Wed Apr 10 15:27:10 PDT 2013
+#Tue Nov 27 13:37:59 PST 2018
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
diff --git a/tests/WindowManagerStressTest/src/test/windowmanagerstresstest/MainActivity.java b/tests/WindowManagerStressTest/src/test/windowmanagerstresstest/MainActivity.java
index ae3914e..d5987a5 100644
--- a/tests/WindowManagerStressTest/src/test/windowmanagerstresstest/MainActivity.java
+++ b/tests/WindowManagerStressTest/src/test/windowmanagerstresstest/MainActivity.java
@@ -26,6 +26,7 @@
 import android.view.Display;
 import android.view.DisplayCutout;
 import android.view.IWindowSession;
+import android.view.InsetsState;
 import android.view.Surface;
 import android.view.View;
 import android.view.WindowManager;
@@ -105,7 +106,7 @@
                                 window.mSeq, mLayoutParams, -1, -1, View.VISIBLE, 0, -1, mTmpRect,
                                 mTmpRect, mTmpRect, mTmpRect, mTmpRect, mTmpRect, mTmpRect,
                                 new DisplayCutout.ParcelableWrapper(), new MergedConfiguration(),
-                                new Surface());
+                                new Surface(), new InsetsState());
                     } catch (RemoteException e) {
                         e.printStackTrace();
                     }
@@ -131,8 +132,9 @@
             final IWindowSession session = WindowManagerGlobal.getWindowSession();
             final Rect tmpRect = new Rect();
             try {
-                final int res = session.addToDisplayWithoutInputChannel(window, window.mSeq, layoutParams,
-                        View.VISIBLE, Display.DEFAULT_DISPLAY, tmpRect, tmpRect);
+                final int res = session.addToDisplayWithoutInputChannel(window, window.mSeq,
+                        layoutParams, View.VISIBLE, Display.DEFAULT_DISPLAY, tmpRect, tmpRect,
+                        new InsetsState());
             } catch (RemoteException e) {
                 e.printStackTrace();
             }
diff --git a/tests/net/java/android/net/IpSecConfigTest.java b/tests/net/java/android/net/IpSecConfigTest.java
index 771faaf..be1a455 100644
--- a/tests/net/java/android/net/IpSecConfigTest.java
+++ b/tests/net/java/android/net/IpSecConfigTest.java
@@ -47,6 +47,7 @@
         assertNull(c.getEncryption());
         assertNull(c.getAuthentication());
         assertEquals(IpSecManager.INVALID_RESOURCE_ID, c.getSpiResourceId());
+        assertEquals(0, c.getXfrmInterfaceId());
     }
 
     private IpSecConfig getSampleConfig() {
@@ -77,6 +78,7 @@
         c.setNattKeepaliveInterval(42);
         c.setMarkValue(12);
         c.setMarkMask(23);
+        c.setXfrmInterfaceId(34);
 
         return c;
     }
diff --git a/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java b/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java
index 9b919abf..d8f9618 100644
--- a/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java
+++ b/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java
@@ -71,6 +71,9 @@
     private final LinkAddress mLocalInnerAddress;
     private final int mFamily;
 
+    private static final int[] ADDRESS_FAMILIES =
+            new int[] {AF_INET, AF_INET6};
+
     @Parameterized.Parameters
     public static Collection ipSecConfigs() {
         return Arrays.asList(
@@ -196,6 +199,7 @@
                         anyString(),
                         eq(TEST_SPI),
                         anyInt(),
+                        anyInt(),
                         anyInt());
 
         // Verify quota and RefcountedResource objects cleaned up
@@ -231,6 +235,7 @@
                         anyString(),
                         eq(TEST_SPI),
                         anyInt(),
+                        anyInt(),
                         anyInt());
 
         // Verify quota and RefcountedResource objects cleaned up
@@ -304,7 +309,8 @@
                         eq((authCrypt != null) ? authCrypt.getTruncationLengthBits() : 0),
                         eq(config.getEncapType()),
                         eq(encapSocketPort),
-                        eq(config.getEncapRemotePort()));
+                        eq(config.getEncapRemotePort()),
+                        eq(config.getXfrmInterfaceId()));
     }
 
     @Test
@@ -430,6 +436,7 @@
                         anyString(),
                         eq(TEST_SPI),
                         anyInt(),
+                        anyInt(),
                         anyInt());
         // quota is not released until the SPI is released by the Transform
         assertEquals(1, userRecord.mSpiQuotaTracker.mCurrent);
@@ -452,6 +459,7 @@
                         anyString(),
                         eq(TEST_SPI),
                         anyInt(),
+                        anyInt(),
                         anyInt());
 
         // Verify quota and RefcountedResource objects cleaned up
@@ -469,6 +477,7 @@
                         anyString(),
                         anyInt(),
                         anyInt(),
+                        anyInt(),
                         anyInt());
         assertEquals(0, userRecord.mSpiQuotaTracker.mCurrent);
 
@@ -504,6 +513,7 @@
                         anyString(),
                         eq(TEST_SPI),
                         anyInt(),
+                        anyInt(),
                         anyInt());
 
         // Verify quota and RefcountedResource objects cleaned up
@@ -532,7 +542,7 @@
 
         verify(mMockNetd)
                 .ipSecApplyTransportModeTransform(
-                        eq(pfd.getFileDescriptor()),
+                        eq(pfd),
                         eq(mUid),
                         eq(IpSecManager.DIRECTION_OUT),
                         anyString(),
@@ -545,7 +555,7 @@
         ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(new Socket());
         mIpSecService.removeTransportModeTransforms(pfd);
 
-        verify(mMockNetd).ipSecRemoveTransportModeTransform(pfd.getFileDescriptor());
+        verify(mMockNetd).ipSecRemoveTransportModeTransform(pfd);
     }
 
     private IpSecTunnelInterfaceResponse createAndValidateTunnel(
@@ -572,11 +582,12 @@
 
         assertEquals(1, userRecord.mTunnelQuotaTracker.mCurrent);
         verify(mMockNetd)
-                .addVirtualTunnelInterface(
+                .ipSecAddTunnelInterface(
                         eq(createTunnelResp.interfaceName),
                         eq(mSourceAddr),
                         eq(mDestinationAddr),
                         anyInt(),
+                        anyInt(),
                         anyInt());
     }
 
@@ -591,7 +602,7 @@
 
         // Verify quota and RefcountedResource objects cleaned up
         assertEquals(0, userRecord.mTunnelQuotaTracker.mCurrent);
-        verify(mMockNetd).removeVirtualTunnelInterface(eq(createTunnelResp.interfaceName));
+        verify(mMockNetd).ipSecRemoveTunnelInterface(eq(createTunnelResp.interfaceName));
         try {
             userRecord.mTunnelInterfaceRecords.getRefcountedResourceOrThrow(
                     createTunnelResp.resourceId);
@@ -614,7 +625,7 @@
 
         // Verify quota and RefcountedResource objects cleaned up
         assertEquals(0, userRecord.mTunnelQuotaTracker.mCurrent);
-        verify(mMockNetd).removeVirtualTunnelInterface(eq(createTunnelResp.interfaceName));
+        verify(mMockNetd).ipSecRemoveTunnelInterface(eq(createTunnelResp.interfaceName));
         try {
             userRecord.mTunnelInterfaceRecords.getRefcountedResourceOrThrow(
                     createTunnelResp.resourceId);
@@ -624,6 +635,41 @@
     }
 
     @Test
+    public void testApplyTunnelModeTransform() throws Exception {
+        IpSecConfig ipSecConfig = new IpSecConfig();
+        ipSecConfig.setMode(IpSecTransform.MODE_TUNNEL);
+        addDefaultSpisAndRemoteAddrToIpSecConfig(ipSecConfig);
+        addAuthAndCryptToIpSecConfig(ipSecConfig);
+
+        IpSecTransformResponse createTransformResp =
+                mIpSecService.createTransform(ipSecConfig, new Binder(), "blessedPackage");
+        IpSecTunnelInterfaceResponse createTunnelResp =
+                createAndValidateTunnel(mSourceAddr, mDestinationAddr, "blessedPackage");
+
+        int transformResourceId = createTransformResp.resourceId;
+        int tunnelResourceId = createTunnelResp.resourceId;
+        mIpSecService.applyTunnelModeTransform(tunnelResourceId, IpSecManager.DIRECTION_OUT,
+                transformResourceId, "blessedPackage");
+
+        for (int selAddrFamily : ADDRESS_FAMILIES) {
+            verify(mMockNetd)
+                    .ipSecUpdateSecurityPolicy(
+                            eq(mUid),
+                            eq(selAddrFamily),
+                            eq(IpSecManager.DIRECTION_OUT),
+                            anyString(),
+                            anyString(),
+                            eq(TEST_SPI),
+                            anyInt(), // iKey/oKey
+                            anyInt(), // mask
+                            eq(tunnelResourceId));
+        }
+
+        ipSecConfig.setXfrmInterfaceId(tunnelResourceId);
+        verifyTransformNetdCalledForCreatingSA(ipSecConfig, createTransformResp);
+    }
+
+    @Test
     public void testAddRemoveAddressFromTunnelInterface() throws Exception {
         for (String pkgName : new String[]{"blessedPackage", "systemPackage"}) {
             IpSecTunnelInterfaceResponse createTunnelResp =
diff --git a/tests/net/java/com/android/server/IpSecServiceTest.java b/tests/net/java/com/android/server/IpSecServiceTest.java
index 2c94a60..724446e 100644
--- a/tests/net/java/com/android/server/IpSecServiceTest.java
+++ b/tests/net/java/com/android/server/IpSecServiceTest.java
@@ -425,7 +425,7 @@
         ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(new Socket());
         mIpSecService.removeTransportModeTransforms(pfd);
 
-        verify(mMockNetd).ipSecRemoveTransportModeTransform(pfd.getFileDescriptor());
+        verify(mMockNetd).ipSecRemoveTransportModeTransform(pfd);
     }
 
     @Test
@@ -620,10 +620,10 @@
                 mIpSecService.openUdpEncapsulationSocket(0, new Binder());
 
         FileDescriptor sockFd = udpEncapResp.fileDescriptor.getFileDescriptor();
-        ArgumentMatcher<FileDescriptor> fdMatcher = (arg) -> {
+        ArgumentMatcher<ParcelFileDescriptor> fdMatcher = (arg) -> {
                     try {
                         StructStat sockStat = Os.fstat(sockFd);
-                        StructStat argStat = Os.fstat(arg);
+                        StructStat argStat = Os.fstat(arg.getFileDescriptor());
 
                         return sockStat.st_ino == argStat.st_ino
                                 && sockStat.st_dev == argStat.st_dev;
diff --git a/tests/net/java/com/android/server/connectivity/NetworkMonitorTest.java b/tests/net/java/com/android/server/connectivity/NetworkMonitorTest.java
index b399b0d..6e07b26 100644
--- a/tests/net/java/com/android/server/connectivity/NetworkMonitorTest.java
+++ b/tests/net/java/com/android/server/connectivity/NetworkMonitorTest.java
@@ -40,6 +40,7 @@
 import android.net.metrics.IpConnectivityLog;
 import android.net.wifi.WifiManager;
 import android.os.Handler;
+import android.os.SystemClock;
 import android.provider.Settings;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
@@ -70,6 +71,7 @@
     private @Mock Handler mHandler;
     private @Mock IpConnectivityLog mLogger;
     private @Mock NetworkAgentInfo mAgent;
+    private @Mock NetworkAgentInfo mNotMeteredAgent;
     private @Mock NetworkInfo mNetworkInfo;
     private @Mock NetworkRequest mRequest;
     private @Mock TelephonyManager mTelephony;
@@ -87,6 +89,10 @@
     private static final String TEST_FALLBACK_URL = "http://fallback.google.com/gen_204";
     private static final String TEST_OTHER_FALLBACK_URL = "http://otherfallback.google.com/gen_204";
 
+    private static final int DATA_STALL_EVALUATION_TYPE_DNS = 1;
+    private static final int RETURN_CODE_DNS_SUCCESS = 0;
+    private static final int RETURN_CODE_DNS_TIMEOUT = 255;
+
     @Before
     public void setUp() throws IOException {
         MockitoAnnotations.initMocks(this);
@@ -95,6 +101,12 @@
                 .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
         mAgent.networkInfo = mNetworkInfo;
 
+        mNotMeteredAgent.linkProperties = new LinkProperties();
+        mNotMeteredAgent.networkCapabilities = new NetworkCapabilities()
+            .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
+            .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
+        mNotMeteredAgent.networkInfo = mNetworkInfo;
+
         when(mAgent.network()).thenReturn(mNetwork);
         when(mDependencies.getNetwork(any())).thenReturn(mNetwork);
         when(mDependencies.getRandom()).thenReturn(mRandom);
@@ -138,6 +150,40 @@
         when(mNetwork.getAllByName(any())).thenReturn(new InetAddress[] {
             InetAddress.parseNumericAddress("192.168.0.0")
         });
+
+        setMinDataStallEvaluateInterval(500);
+        setDataStallEvaluationType(1 << DATA_STALL_EVALUATION_TYPE_DNS);
+        setValidDataStallDnsTimeThreshold(500);
+        setConsecutiveDnsTimeoutThreshold(5);
+    }
+
+    private class WrappedNetworkMonitor extends NetworkMonitor {
+        private long mProbeTime = 0;
+
+        WrappedNetworkMonitor(Context context, Handler handler,
+                NetworkAgentInfo networkAgentInfo, NetworkRequest defaultRequest,
+                IpConnectivityLog logger, Dependencies deps) {
+                super(context, handler, networkAgentInfo, defaultRequest, logger, deps);
+        }
+
+        @Override
+        protected long getLastProbeTime() {
+            return mProbeTime;
+        }
+
+        protected void setLastProbeTime(long time) {
+            mProbeTime = time;
+        }
+    }
+
+    WrappedNetworkMonitor makeMeteredWrappedNetworkMonitor() {
+        return new WrappedNetworkMonitor(
+                mContext, mHandler, mAgent, mRequest, mLogger, mDependencies);
+    }
+
+    WrappedNetworkMonitor makeNotMeteredWrappedNetworkMonitor() {
+        return new WrappedNetworkMonitor(
+                mContext, mHandler, mNotMeteredAgent, mRequest, mLogger, mDependencies);
     }
 
     NetworkMonitor makeMonitor() {
@@ -272,6 +318,113 @@
         assertPortal(makeMonitor().isCaptivePortal());
     }
 
+    @Test
+    public void testIsDataStall_EvaluationDisabled() {
+        setDataStallEvaluationType(0);
+        WrappedNetworkMonitor wrappedMonitor = makeMeteredWrappedNetworkMonitor();
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 100);
+        assertFalse(wrappedMonitor.isDataStall());
+    }
+
+    @Test
+    public void testIsDataStall_EvaluationDnsOnNotMeteredNetwork() {
+        WrappedNetworkMonitor wrappedMonitor = makeNotMeteredWrappedNetworkMonitor();
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 100);
+        makeDnsTimeoutEvent(wrappedMonitor, 5);
+        assertTrue(wrappedMonitor.isDataStall());
+    }
+
+    @Test
+    public void testIsDataStall_EvaluationDnsOnMeteredNetwork() {
+        WrappedNetworkMonitor wrappedMonitor = makeMeteredWrappedNetworkMonitor();
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 100);
+        assertFalse(wrappedMonitor.isDataStall());
+
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 1000);
+        makeDnsTimeoutEvent(wrappedMonitor, 5);
+        assertTrue(wrappedMonitor.isDataStall());
+    }
+
+    @Test
+    public void testIsDataStall_EvaluationDnsWithDnsTimeoutCount() {
+        WrappedNetworkMonitor wrappedMonitor = makeMeteredWrappedNetworkMonitor();
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 1000);
+        makeDnsTimeoutEvent(wrappedMonitor, 3);
+        assertFalse(wrappedMonitor.isDataStall());
+        // Reset consecutive timeout counts.
+        makeDnsSuccessEvent(wrappedMonitor, 1);
+        makeDnsTimeoutEvent(wrappedMonitor, 2);
+        assertFalse(wrappedMonitor.isDataStall());
+
+        makeDnsTimeoutEvent(wrappedMonitor, 3);
+        assertTrue(wrappedMonitor.isDataStall());
+
+        // Set the value to larger than the default dns log size.
+        setConsecutiveDnsTimeoutThreshold(51);
+        wrappedMonitor = makeMeteredWrappedNetworkMonitor();
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 1000);
+        makeDnsTimeoutEvent(wrappedMonitor, 50);
+        assertFalse(wrappedMonitor.isDataStall());
+
+        makeDnsTimeoutEvent(wrappedMonitor, 1);
+        assertTrue(wrappedMonitor.isDataStall());
+    }
+
+    @Test
+    public void testIsDataStall_EvaluationDnsWithDnsTimeThreshold() {
+        // Test dns events happened in valid dns time threshold.
+        WrappedNetworkMonitor wrappedMonitor = makeMeteredWrappedNetworkMonitor();
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 100);
+        makeDnsTimeoutEvent(wrappedMonitor, 5);
+        assertFalse(wrappedMonitor.isDataStall());
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 1000);
+        assertTrue(wrappedMonitor.isDataStall());
+
+        // Test dns events happened before valid dns time threshold.
+        setValidDataStallDnsTimeThreshold(0);
+        wrappedMonitor = makeMeteredWrappedNetworkMonitor();
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 100);
+        makeDnsTimeoutEvent(wrappedMonitor, 5);
+        assertFalse(wrappedMonitor.isDataStall());
+        wrappedMonitor.setLastProbeTime(SystemClock.elapsedRealtime() - 1000);
+        assertFalse(wrappedMonitor.isDataStall());
+    }
+
+    private void makeDnsTimeoutEvent(WrappedNetworkMonitor wrappedMonitor, int count) {
+        for (int i = 0; i < count; i++) {
+            wrappedMonitor.getDnsStallDetector().accumulateConsecutiveDnsTimeoutCount(
+                    RETURN_CODE_DNS_TIMEOUT);
+        }
+    }
+
+    private void makeDnsSuccessEvent(WrappedNetworkMonitor wrappedMonitor, int count) {
+        for (int i = 0; i < count; i++) {
+            wrappedMonitor.getDnsStallDetector().accumulateConsecutiveDnsTimeoutCount(
+                    RETURN_CODE_DNS_SUCCESS);
+        }
+    }
+
+    private void setDataStallEvaluationType(int type) {
+        when(mDependencies.getSetting(any(),
+            eq(Settings.Global.DATA_STALL_EVALUATION_TYPE), anyInt())).thenReturn(type);
+    }
+
+    private void setMinDataStallEvaluateInterval(int time) {
+        when(mDependencies.getSetting(any(),
+            eq(Settings.Global.DATA_STALL_MIN_EVALUATE_INTERVAL), anyInt())).thenReturn(time);
+    }
+
+    private void setValidDataStallDnsTimeThreshold(int time) {
+        when(mDependencies.getSetting(any(),
+            eq(Settings.Global.DATA_STALL_VALID_DNS_TIME_THRESHOLD), anyInt())).thenReturn(time);
+    }
+
+    private void setConsecutiveDnsTimeoutThreshold(int num) {
+        when(mDependencies.getSetting(any(),
+            eq(Settings.Global.DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD), anyInt()))
+            .thenReturn(num);
+    }
+
     private void setFallbackUrl(String url) {
         when(mDependencies.getSetting(any(),
                 eq(Settings.Global.CAPTIVE_PORTAL_FALLBACK_URL), any())).thenReturn(url);
diff --git a/tests/net/java/com/android/server/connectivity/PermissionMonitorTest.java b/tests/net/java/com/android/server/connectivity/PermissionMonitorTest.java
index af7123b..f2bd770 100644
--- a/tests/net/java/com/android/server/connectivity/PermissionMonitorTest.java
+++ b/tests/net/java/com/android/server/connectivity/PermissionMonitorTest.java
@@ -27,9 +27,17 @@
 import static android.content.pm.PackageManager.GET_PERMISSIONS;
 import static android.os.Process.SYSTEM_UID;
 
+import static com.android.server.connectivity.PermissionMonitor.NETWORK;
+import static com.android.server.connectivity.PermissionMonitor.SYSTEM;
+
+import static junit.framework.Assert.fail;
+
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.spy;
@@ -40,6 +48,8 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.os.Build;
+import android.os.INetworkManagementService;
+import android.os.UserHandle;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 
@@ -48,12 +58,19 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+
+import java.util.HashMap;
 
 @RunWith(AndroidJUnit4.class)
 @SmallTest
 public class PermissionMonitorTest {
-    private static final int MOCK_UID = 10001;
-    private static final String[] MOCK_PACKAGE_NAMES = new String[] { "com.foo.bar" };
+    private static final int MOCK_USER1 = 0;
+    private static final int MOCK_USER2 = 1;
+    private static final int MOCK_UID1 = 10001;
+    private static final String MOCK_PACKAGE1 = "appName1";
+    private static final String SYSTEM_PACKAGE1 = "sysName1";
+    private static final String SYSTEM_PACKAGE2 = "sysName2";
     private static final String PARTITION_SYSTEM = "system";
     private static final String PARTITION_OEM = "oem";
     private static final String PARTITION_PRODUCT = "product";
@@ -63,6 +80,7 @@
 
     @Mock private Context mContext;
     @Mock private PackageManager mPackageManager;
+    @Mock private INetworkManagementService mNMS;
 
     private PermissionMonitor mPermissionMonitor;
 
@@ -70,8 +88,7 @@
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
-        when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(MOCK_PACKAGE_NAMES);
-        mPermissionMonitor = spy(new PermissionMonitor(mContext, null));
+        mPermissionMonitor = spy(new PermissionMonitor(mContext, mNMS));
     }
 
     private boolean hasBgPermission(String partition, int targetSdkVersion, int uid,
@@ -80,7 +97,8 @@
         packageInfo.applicationInfo.targetSdkVersion = targetSdkVersion;
         packageInfo.applicationInfo.uid = uid;
         when(mPackageManager.getPackageInfoAsUser(
-                eq(MOCK_PACKAGE_NAMES[0]), eq(GET_PERMISSIONS), anyInt())).thenReturn(packageInfo);
+                eq(MOCK_PACKAGE1), eq(GET_PERMISSIONS), anyInt())).thenReturn(packageInfo);
+        when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(new String[] {MOCK_PACKAGE1});
         return mPermissionMonitor.hasUseBackgroundNetworksPermission(uid);
     }
 
@@ -143,16 +161,16 @@
 
     @Test
     public void testHasUseBackgroundNetworksPermission() throws Exception {
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID, CHANGE_NETWORK_STATE));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID, NETWORK_STACK));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID, CONNECTIVITY_INTERNAL));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID,
+        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_UID, CHANGE_WIFI_STATE));
+        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID1, CHANGE_WIFI_STATE));
 
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, MOCK_UID));
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, MOCK_UID, CHANGE_WIFI_STATE));
+        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, MOCK_UID1));
+        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, MOCK_UID1, CHANGE_WIFI_STATE));
     }
 
     @Test
@@ -172,15 +190,150 @@
 
     @Test
     public void testHasUseBackgroundNetworksPermissionVendorApp() throws Exception {
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID, CHANGE_NETWORK_STATE));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID, NETWORK_STACK));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID, CONNECTIVITY_INTERNAL));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID,
+        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_UID, CHANGE_WIFI_STATE));
+        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID1, CHANGE_WIFI_STATE));
 
-        assertFalse(hasBgPermission(PARTITION_VENDOR, VERSION_Q, MOCK_UID));
-        assertFalse(hasBgPermission(PARTITION_VENDOR, VERSION_Q, MOCK_UID, CHANGE_WIFI_STATE));
+        assertFalse(hasBgPermission(PARTITION_VENDOR, VERSION_Q, MOCK_UID1));
+        assertFalse(hasBgPermission(PARTITION_VENDOR, VERSION_Q, MOCK_UID1, CHANGE_WIFI_STATE));
+    }
+
+    private class NMSMonitor {
+        private final HashMap<Integer, Boolean> mApps = new HashMap<>();
+
+        NMSMonitor(INetworkManagementService mockNMS) throws Exception {
+            // Add hook to verify and track result of setPermission.
+            doAnswer((InvocationOnMock invocation) -> {
+                final Object[] args = invocation.getArguments();
+                final Boolean isSystem = args[0].equals("SYSTEM");
+                for (final int uid : (int[]) args[1]) {
+                    // TODO: Currently, permission monitor will send duplicate commands for each uid
+                    // corresponding to each user. Need to fix that and uncomment below test.
+                    // if (mApps.containsKey(uid) && mApps.get(uid) == isSystem) {
+                    //     fail("uid " + uid + " is already set to " + isSystem);
+                    // }
+                    mApps.put(uid, isSystem);
+                }
+                return null;
+            }).when(mockNMS).setPermission(anyString(), any(int[].class));
+
+            // Add hook to verify and track result of clearPermission.
+            doAnswer((InvocationOnMock invocation) -> {
+                final Object[] args = invocation.getArguments();
+                for (final int uid : (int[]) args[0]) {
+                    // TODO: Currently, permission monitor will send duplicate commands for each uid
+                    // corresponding to each user. Need to fix that and uncomment below test.
+                    // if (!mApps.containsKey(uid)) {
+                    //     fail("uid " + uid + " does not exist.");
+                    // }
+                    mApps.remove(uid);
+                }
+                return null;
+            }).when(mockNMS).clearPermission(any(int[].class));
+        }
+
+        public void expectPermission(Boolean permission, int[] users, int[] apps) {
+            for (final int user : users) {
+                for (final int app : apps) {
+                    final int uid = UserHandle.getUid(user, app);
+                    if (!mApps.containsKey(uid)) {
+                        fail("uid " + uid + " does not exist.");
+                    }
+                    if (mApps.get(uid) != permission) {
+                        fail("uid " + uid + " has wrong permission: " +  permission);
+                    }
+                }
+            }
+        }
+
+        public void expectNoPermission(int[] users, int[] apps) {
+            for (final int user : users) {
+                for (final int app : apps) {
+                    final int uid = UserHandle.getUid(user, app);
+                    if (mApps.containsKey(uid)) {
+                        fail("uid " + uid + " has listed permissions, expected none.");
+                    }
+                }
+            }
+        }
+    }
+
+    @Test
+    public void testUserAndPackageAddRemove() throws Exception {
+        final NMSMonitor mNMSMonitor = new NMSMonitor(mNMS);
+
+        // MOCK_UID1: MOCK_PACKAGE1 only has network permission.
+        // SYSTEM_UID: SYSTEM_PACKAGE1 has system permission.
+        // SYSTEM_UID: SYSTEM_PACKAGE2 only has network permission.
+        doReturn(SYSTEM).when(mPermissionMonitor).highestPermissionForUid(eq(SYSTEM), anyString());
+        doReturn(SYSTEM).when(mPermissionMonitor).highestPermissionForUid(any(),
+                eq(SYSTEM_PACKAGE1));
+        doReturn(NETWORK).when(mPermissionMonitor).highestPermissionForUid(any(),
+                eq(SYSTEM_PACKAGE2));
+        doReturn(NETWORK).when(mPermissionMonitor).highestPermissionForUid(any(),
+                eq(MOCK_PACKAGE1));
+
+        // Add SYSTEM_PACKAGE2, expect only have network permission.
+        mPermissionMonitor.onUserAdded(MOCK_USER1);
+        addPackageForUsers(new int[]{MOCK_USER1}, SYSTEM_PACKAGE2, SYSTEM_UID);
+        mNMSMonitor.expectPermission(NETWORK, new int[]{MOCK_USER1}, new int[]{SYSTEM_UID});
+
+        // Add SYSTEM_PACKAGE1, expect permission escalate.
+        addPackageForUsers(new int[]{MOCK_USER1}, SYSTEM_PACKAGE1, SYSTEM_UID);
+        mNMSMonitor.expectPermission(SYSTEM, new int[]{MOCK_USER1}, new int[]{SYSTEM_UID});
+
+        mPermissionMonitor.onUserAdded(MOCK_USER2);
+        mNMSMonitor.expectPermission(SYSTEM, new int[]{MOCK_USER1, MOCK_USER2},
+                new int[]{SYSTEM_UID});
+
+        addPackageForUsers(new int[]{MOCK_USER1, MOCK_USER2}, MOCK_PACKAGE1, MOCK_UID1);
+        mNMSMonitor.expectPermission(SYSTEM, new int[]{MOCK_USER1, MOCK_USER2},
+                new int[]{SYSTEM_UID});
+        mNMSMonitor.expectPermission(NETWORK, new int[]{MOCK_USER1, MOCK_USER2},
+                new int[]{MOCK_UID1});
+
+        // Remove MOCK_UID1, expect no permission left for all user.
+        mPermissionMonitor.onPackageRemoved(MOCK_UID1);
+        removePackageForUsers(new int[]{MOCK_USER1, MOCK_USER2}, MOCK_UID1);
+        mNMSMonitor.expectNoPermission(new int[]{MOCK_USER1, MOCK_USER2}, new int[]{MOCK_UID1});
+
+        // Remove SYSTEM_PACKAGE1, expect permission downgrade.
+        when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(new String[]{SYSTEM_PACKAGE2});
+        removePackageForUsers(new int[]{MOCK_USER1, MOCK_USER2}, SYSTEM_UID);
+        mNMSMonitor.expectPermission(NETWORK, new int[]{MOCK_USER1, MOCK_USER2},
+                new int[]{SYSTEM_UID});
+
+        mPermissionMonitor.onUserRemoved(MOCK_USER1);
+        mNMSMonitor.expectPermission(NETWORK, new int[]{MOCK_USER2}, new int[]{SYSTEM_UID});
+
+        // Remove all packages, expect no permission left.
+        when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(new String[]{});
+        removePackageForUsers(new int[]{MOCK_USER2}, SYSTEM_UID);
+        mNMSMonitor.expectNoPermission(new int[]{MOCK_USER1, MOCK_USER2},
+                new int[]{SYSTEM_UID, MOCK_UID1});
+
+        // Remove last user, expect no redundant clearPermission is invoked.
+        mPermissionMonitor.onUserRemoved(MOCK_USER2);
+        mNMSMonitor.expectNoPermission(new int[]{MOCK_USER1, MOCK_USER2},
+                new int[]{SYSTEM_UID, MOCK_UID1});
+    }
+
+    // Normal package add/remove operations will trigger multiple intent for uids corresponding to
+    // each user. To simulate generic package operations, the onPackageAdded/Removed will need to be
+    // called multiple times with the uid corresponding to each user.
+    private void addPackageForUsers(int[] users, String packageName, int uid) {
+        for (final int user : users) {
+            mPermissionMonitor.onPackageAdded(packageName, UserHandle.getUid(user, uid));
+        }
+    }
+
+    private void removePackageForUsers(int[] users, int uid) {
+        for (final int user : users) {
+            mPermissionMonitor.onPackageRemoved(UserHandle.getUid(user, uid));
+        }
     }
 }
diff --git a/tests/net/java/com/android/server/connectivity/TetheringTest.java b/tests/net/java/com/android/server/connectivity/TetheringTest.java
index a6ed9f2..8081812 100644
--- a/tests/net/java/com/android/server/connectivity/TetheringTest.java
+++ b/tests/net/java/com/android/server/connectivity/TetheringTest.java
@@ -23,15 +23,15 @@
 import static android.net.ConnectivityManager.EXTRA_ACTIVE_LOCAL_ONLY;
 import static android.net.ConnectivityManager.EXTRA_ACTIVE_TETHER;
 import static android.net.ConnectivityManager.EXTRA_AVAILABLE_TETHER;
-import static android.net.ConnectivityManager.TETHER_ERROR_UNKNOWN_IFACE;
-import static android.net.ConnectivityManager.TETHERING_WIFI;
 import static android.net.ConnectivityManager.TETHERING_USB;
+import static android.net.ConnectivityManager.TETHERING_WIFI;
+import static android.net.ConnectivityManager.TETHER_ERROR_UNKNOWN_IFACE;
 import static android.net.ConnectivityManager.TYPE_MOBILE;
-import static android.net.wifi.WifiManager.IFACE_IP_MODE_LOCAL_ONLY;
-import static android.net.wifi.WifiManager.IFACE_IP_MODE_TETHERED;
 import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_INTERFACE_NAME;
 import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_MODE;
 import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_STATE;
+import static android.net.wifi.WifiManager.IFACE_IP_MODE_LOCAL_ONLY;
+import static android.net.wifi.WifiManager.IFACE_IP_MODE_TETHERED;
 import static android.net.wifi.WifiManager.WIFI_AP_STATE_ENABLED;
 import static android.provider.Settings.Global.TETHER_ENABLE_LEGACY_DHCP_SERVER;
 
@@ -39,19 +39,18 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.notNull;
-import static org.mockito.Matchers.anyBoolean;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 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 static org.mockito.Mockito.mock;
 
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
@@ -91,9 +90,9 @@
 import android.os.Looper;
 import android.os.PersistableBundle;
 import android.os.RemoteException;
-import android.os.test.TestLooper;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.os.test.TestLooper;
 import android.provider.Settings;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
@@ -126,7 +125,6 @@
 public class TetheringTest {
     private static final int IFINDEX_OFFSET = 100;
 
-    private static final String[] PROVISIONING_APP_NAME = {"some", "app"};
     private static final String TEST_MOBILE_IFNAME = "test_rmnet_data0";
     private static final String TEST_XLAT_MOBILE_IFNAME = "v4-test_rmnet_data0";
     private static final String TEST_USB_IFNAME = "test_rndis0";
@@ -370,61 +368,6 @@
         mServiceContext.unregisterReceiver(mBroadcastReceiver);
     }
 
-    private void setupForRequiredProvisioning() {
-        // Produce some acceptable looking provision app setting if requested.
-        when(mResources.getStringArray(
-                com.android.internal.R.array.config_mobile_hotspot_provision_app))
-                .thenReturn(PROVISIONING_APP_NAME);
-        // Don't disable tethering provisioning unless requested.
-        when(mSystemProperties.getBoolean(eq(Tethering.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);
-        when(mCarrierConfigManager.getConfig()).thenReturn(mCarrierConfig);
-        mCarrierConfig.putBoolean(CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL, true);
-    }
-
-    @Test
-    public void canRequireProvisioning() {
-        setupForRequiredProvisioning();
-        sendConfigurationChanged();
-        assertTrue(mTethering.isTetherProvisioningRequired());
-    }
-
-    @Test
-    public void toleratesCarrierConfigManagerMissing() {
-        setupForRequiredProvisioning();
-        when(mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE))
-                .thenReturn(null);
-        sendConfigurationChanged();
-        // Couldn't get the CarrierConfigManager, but still had a declared provisioning app.
-        // We therefore still require provisioning.
-        assertTrue(mTethering.isTetherProvisioningRequired());
-    }
-
-    @Test
-    public void toleratesCarrierConfigMissing() {
-        setupForRequiredProvisioning();
-        when(mCarrierConfigManager.getConfig()).thenReturn(null);
-        sendConfigurationChanged();
-        // We still have a provisioning app configured, so still require provisioning.
-        assertTrue(mTethering.isTetherProvisioningRequired());
-    }
-
-    @Test
-    public void provisioningNotRequiredWhenAppNotFound() {
-        setupForRequiredProvisioning();
-        when(mResources.getStringArray(
-                com.android.internal.R.array.config_mobile_hotspot_provision_app))
-                .thenReturn(null);
-        assertTrue(!mTethering.isTetherProvisioningRequired());
-        when(mResources.getStringArray(
-                com.android.internal.R.array.config_mobile_hotspot_provision_app))
-                .thenReturn(new String[] {"malformedApp"});
-        assertTrue(!mTethering.isTetherProvisioningRequired());
-    }
-
     private void sendWifiApStateChanged(int state) {
         final Intent intent = new Intent(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
         intent.putExtra(EXTRA_WIFI_AP_STATE, state);
diff --git a/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java b/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java
new file mode 100644
index 0000000..0f72229
--- /dev/null
+++ b/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java
@@ -0,0 +1,144 @@
+/*
+ * 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.server.connectivity.tethering;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.res.Resources;
+import android.net.util.SharedLog;
+import android.os.PersistableBundle;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+import android.telephony.CarrierConfigManager;
+
+import com.android.internal.R;
+import com.android.server.connectivity.MockableSystemProperties;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public final class EntitlementManagerTest {
+
+    private static final int EVENT_EM_UPDATE = 1;
+    private static final String[] PROVISIONING_APP_NAME = {"some", "app"};
+
+    @Mock private CarrierConfigManager mCarrierConfigManager;
+    @Mock private Context mContext;
+    @Mock private ContentResolver mContent;
+    @Mock private MockableSystemProperties mSystemProperties;
+    @Mock private Resources mResources;
+    @Mock private SharedLog mLog;
+
+    // Like so many Android system APIs, these cannot be mocked because it is marked final.
+    // We have to use the real versions.
+    private final PersistableBundle mCarrierConfig = new PersistableBundle();
+
+    private EntitlementManager mEnMgr;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        when(mContext.getResources()).thenReturn(mResources);
+        when(mContext.getContentResolver()).thenReturn(mContent);
+        when(mResources.getStringArray(R.array.config_tether_dhcp_range))
+            .thenReturn(new String[0]);
+        when(mResources.getStringArray(R.array.config_tether_usb_regexs))
+            .thenReturn(new String[0]);
+        when(mResources.getStringArray(R.array.config_tether_wifi_regexs))
+            .thenReturn(new String[0]);
+        when(mResources.getStringArray(R.array.config_tether_bluetooth_regexs))
+            .thenReturn(new String[0]);
+        when(mResources.getIntArray(R.array.config_tether_upstream_types))
+            .thenReturn(new int[0]);
+        when(mLog.forSubComponent(anyString())).thenReturn(mLog);
+
+        mEnMgr = new EntitlementManager(mContext, mLog, mSystemProperties);
+        mEnMgr.updateConfiguration(new TetheringConfiguration(mContext, mLog));
+    }
+
+    @After
+    public void tearDown() throws Exception {}
+
+    private void setupForRequiredProvisioning() {
+        // Produce some acceptable looking provision app setting if requested.
+        when(mResources.getStringArray(R.array.config_mobile_hotspot_provision_app))
+                .thenReturn(PROVISIONING_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);
+        when(mCarrierConfigManager.getConfig()).thenReturn(mCarrierConfig);
+        mCarrierConfig.putBoolean(CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL, true);
+    }
+
+    @Test
+    public void canRequireProvisioning() {
+        setupForRequiredProvisioning();
+        mEnMgr.updateConfiguration(new TetheringConfiguration(mContext, mLog));
+        assertTrue(mEnMgr.isTetherProvisioningRequired());
+    }
+
+    @Test
+    public void toleratesCarrierConfigManagerMissing() {
+        setupForRequiredProvisioning();
+        when(mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE))
+            .thenReturn(null);
+        mEnMgr.updateConfiguration(new TetheringConfiguration(mContext, mLog));
+        // Couldn't get the CarrierConfigManager, but still had a declared provisioning app.
+        // Therefore provisioning still be required.
+        assertTrue(mEnMgr.isTetherProvisioningRequired());
+    }
+
+    @Test
+    public void toleratesCarrierConfigMissing() {
+        setupForRequiredProvisioning();
+        when(mCarrierConfigManager.getConfig()).thenReturn(null);
+        mEnMgr.updateConfiguration(new TetheringConfiguration(mContext, mLog));
+        // We still have a provisioning app configured, so still require provisioning.
+        assertTrue(mEnMgr.isTetherProvisioningRequired());
+    }
+
+    @Test
+    public void provisioningNotRequiredWhenAppNotFound() {
+        setupForRequiredProvisioning();
+        when(mResources.getStringArray(R.array.config_mobile_hotspot_provision_app))
+            .thenReturn(null);
+        mEnMgr.updateConfiguration(new TetheringConfiguration(mContext, mLog));
+        assertFalse(mEnMgr.isTetherProvisioningRequired());
+        when(mResources.getStringArray(R.array.config_mobile_hotspot_provision_app))
+            .thenReturn(new String[] {"malformedApp"});
+        mEnMgr.updateConfiguration(new TetheringConfiguration(mContext, mLog));
+        assertFalse(mEnMgr.isTetherProvisioningRequired());
+    }
+
+}
diff --git a/tools/aapt2/format/binary/BinaryResourceParser.cpp b/tools/aapt2/format/binary/BinaryResourceParser.cpp
index ed70fb3..df0daeb 100644
--- a/tools/aapt2/format/binary/BinaryResourceParser.cpp
+++ b/tools/aapt2/format/binary/BinaryResourceParser.cpp
@@ -240,6 +240,12 @@
         }
         break;
 
+      case android::RES_TABLE_OVERLAYABLE_TYPE:
+        if (!ParseOverlayable(parser.chunk())) {
+          return false;
+        }
+        break;
+
       default:
         diag_->Warn(DiagMessage(source_)
                     << "unexpected chunk type "
@@ -383,24 +389,12 @@
       return false;
     }
 
-    const uint32_t type_spec_flags = entry_type_spec_flags_[res_id];
-    if ((entry->flags & ResTable_entry::FLAG_PUBLIC) != 0 ||
-        (type_spec_flags & ResTable_typeSpec::SPEC_OVERLAYABLE) != 0) {
-      if (entry->flags & ResTable_entry::FLAG_PUBLIC) {
-        Visibility visibility;
-        visibility.level = Visibility::Level::kPublic;
-        visibility.source = source_.WithLine(0);
-        if (!table_->SetVisibilityWithIdMangled(name, visibility, res_id, diag_)) {
-          return false;
-        }
-      }
-
-      if (type_spec_flags & ResTable_typeSpec::SPEC_OVERLAYABLE) {
-        Overlayable overlayable;
-        overlayable.source = source_.WithLine(0);
-        if (!table_->AddOverlayableMangled(name, overlayable, diag_)) {
-          return false;
-        }
+    if (entry->flags & ResTable_entry::FLAG_PUBLIC) {
+      Visibility visibility;
+      visibility.level = Visibility::Level::kPublic;
+      visibility.source = source_.WithLine(0);
+      if (!table_->SetVisibilityWithIdMangled(name, visibility, res_id, diag_)) {
+        return false;
       }
 
       // Erase the ID from the map once processed, so that we don't mark the same symbol more than
@@ -433,6 +427,72 @@
   return true;
 }
 
+bool BinaryResourceParser::ParseOverlayable(const ResChunk_header* chunk) {
+  const ResTable_overlayable_header* header = ConvertTo<ResTable_overlayable_header>(chunk);
+  if (!header) {
+    diag_->Error(DiagMessage(source_) << "corrupt ResTable_category_header chunk");
+    return false;
+  }
+
+  ResChunkPullParser parser(GetChunkData(chunk),
+                            GetChunkDataLen(chunk));
+  while (ResChunkPullParser::IsGoodEvent(parser.Next())) {
+    if (util::DeviceToHost16(parser.chunk()->type) == android::RES_TABLE_OVERLAYABLE_POLICY_TYPE) {
+      const ResTable_overlayable_policy_header* policy_header =
+          ConvertTo<ResTable_overlayable_policy_header>(parser.chunk());
+
+      std::vector<Overlayable::Policy> policies;
+      if (policy_header->policy_flags & ResTable_overlayable_policy_header::POLICY_PUBLIC) {
+        policies.push_back(Overlayable::Policy::kPublic);
+      }
+      if (policy_header->policy_flags
+          & ResTable_overlayable_policy_header::POLICY_SYSTEM_PARTITION) {
+        policies.push_back(Overlayable::Policy::kSystem);
+      }
+      if (policy_header->policy_flags
+          & ResTable_overlayable_policy_header::POLICY_VENDOR_PARTITION) {
+        policies.push_back(Overlayable::Policy::kVendor);
+      }
+      if (policy_header->policy_flags
+          & ResTable_overlayable_policy_header::POLICY_PRODUCT_PARTITION) {
+        policies.push_back(Overlayable::Policy::kProduct);
+      }
+      if (policy_header->policy_flags
+          & ResTable_overlayable_policy_header::POLICY_PRODUCT_SERVICES_PARTITION) {
+        policies.push_back(Overlayable::Policy::kProductServices);
+      }
+
+      const ResTable_ref* const ref_begin = reinterpret_cast<const ResTable_ref*>(
+          ((uint8_t *)policy_header) + util::DeviceToHost32(policy_header->header.headerSize));
+      const ResTable_ref* const ref_end = ref_begin
+          + util::DeviceToHost32(policy_header->entry_count);
+      for (auto ref_iter = ref_begin; ref_iter != ref_end; ++ref_iter) {
+        ResourceId res_id(util::DeviceToHost32(ref_iter->ident));
+        const auto iter = id_index_.find(res_id);
+
+        // If the overlayable chunk comes before the type chunks, the resource ids and resource name
+        // pairing will not exist at this point.
+        if (iter == id_index_.cend()) {
+          diag_->Error(DiagMessage(source_) << "failed to find resource name for overlayable"
+                                            << " resource " << res_id);
+          return false;
+        }
+
+        for (Overlayable::Policy policy : policies) {
+          Overlayable overlayable;
+          overlayable.source = source_.WithLine(0);
+          overlayable.policy = policy;
+          if (!table_->AddOverlayable(iter->second, overlayable, diag_)) {
+            return false;
+          }
+        }
+      }
+    }
+  }
+
+  return true;
+}
+
 std::unique_ptr<Item> BinaryResourceParser::ParseValue(const ResourceNameRef& name,
                                                        const ConfigDescription& config,
                                                        const android::Res_value& value) {
diff --git a/tools/aapt2/format/binary/BinaryResourceParser.h b/tools/aapt2/format/binary/BinaryResourceParser.h
index 2bdc051..a2eee50 100644
--- a/tools/aapt2/format/binary/BinaryResourceParser.h
+++ b/tools/aapt2/format/binary/BinaryResourceParser.h
@@ -54,6 +54,7 @@
   bool ParseTypeSpec(const ResourceTablePackage* package, const android::ResChunk_header* chunk);
   bool ParseType(const ResourceTablePackage* package, const android::ResChunk_header* chunk);
   bool ParseLibrary(const android::ResChunk_header* chunk);
+  bool ParseOverlayable(const android::ResChunk_header* chunk);
 
   std::unique_ptr<Item> ParseValue(const ResourceNameRef& name,
                                    const android::ConfigDescription& config,
diff --git a/tools/aapt2/format/binary/TableFlattener.cpp b/tools/aapt2/format/binary/TableFlattener.cpp
index 6c1a9ba..976c328 100644
--- a/tools/aapt2/format/binary/TableFlattener.cpp
+++ b/tools/aapt2/format/binary/TableFlattener.cpp
@@ -24,6 +24,7 @@
 #include "android-base/logging.h"
 #include "android-base/macros.h"
 #include "android-base/stringprintf.h"
+#include "androidfw/ResourceUtils.h"
 
 #include "ResourceTable.h"
 #include "ResourceValues.h"
@@ -216,6 +217,11 @@
   size_t entry_count_ = 0;
 };
 
+struct PolicyChunk {
+  uint32_t policy_flags;
+  std::set<ResourceId> ids;
+};
+
 class PackageFlattener {
  public:
   PackageFlattener(IAaptContext* context, ResourceTablePackage* package,
@@ -267,6 +273,8 @@
       FlattenLibrarySpec(buffer);
     }
 
+    FlattenOverlayable(buffer);
+
     pkg_writer.Finish();
     return true;
   }
@@ -413,6 +421,97 @@
     return sorted_entries;
   }
 
+  void FlattenOverlayable(BigBuffer* buffer) {
+    std::vector<PolicyChunk> policies;
+
+    CHECK(bool(package_->id)) << "package must have an ID set when flattening <overlayable>";
+    for (auto& type : package_->types) {
+      CHECK(bool(type->id)) << "type must have an ID set when flattening <overlayable>";
+      for (auto& entry : type->entries) {
+        CHECK(bool(type->id)) << "entry must have an ID set when flattening <overlayable>";
+
+        // TODO(b/120298168): Convert the policies vector to a policy set or bitmask
+        if (!entry->overlayable_declarations.empty()) {
+          uint16_t policy_flags = 0;
+          for (Overlayable overlayable : entry->overlayable_declarations) {
+            if (overlayable.policy) {
+              switch (overlayable.policy.value()) {
+                case Overlayable::Policy::kPublic:
+                  policy_flags |= ResTable_overlayable_policy_header::POLICY_PUBLIC;
+                  break;
+                case Overlayable::Policy::kSystem:
+                  policy_flags |= ResTable_overlayable_policy_header::POLICY_SYSTEM_PARTITION;
+                  break;
+                case Overlayable::Policy::kVendor:
+                  policy_flags |= ResTable_overlayable_policy_header::POLICY_VENDOR_PARTITION;
+                  break;
+                case Overlayable::Policy::kProduct:
+                  policy_flags |= ResTable_overlayable_policy_header::POLICY_PRODUCT_PARTITION;
+                  break;
+                case Overlayable::Policy::kProductServices:
+                  policy_flags |=
+                      ResTable_overlayable_policy_header::POLICY_PRODUCT_SERVICES_PARTITION;
+                  break;
+              }
+            } else {
+              // Encode overlayable entries defined without a policy as publicly overlayable
+              policy_flags |= ResTable_overlayable_policy_header::POLICY_PUBLIC;
+            }
+          }
+
+          // Find the overlayable policy chunk with the same policies as the entry
+          PolicyChunk* policy_chunk = nullptr;
+          for (PolicyChunk& policy : policies) {
+            if (policy.policy_flags == policy_flags) {
+              policy_chunk = &policy;
+              break;
+            }
+          }
+
+          // Create a new policy chunk if an existing one with the same policy cannot be found
+          if (policy_chunk == nullptr) {
+            PolicyChunk p;
+            p.policy_flags = policy_flags;
+            policies.push_back(p);
+            policy_chunk = &policies.back();
+          }
+
+          policy_chunk->ids.insert(android::make_resid(package_->id.value(), type->id.value(),
+                                                       entry->id.value()));
+        }
+      }
+    }
+
+    if (policies.empty()) {
+      // Only write the overlayable chunk if the APK has overlayable entries
+      return;
+    }
+
+    ChunkWriter writer(buffer);
+    writer.StartChunk<ResTable_overlayable_header>(RES_TABLE_OVERLAYABLE_TYPE);
+
+    // Write each policy block for the overlayable
+    for (PolicyChunk& policy : policies) {
+      ChunkWriter policy_writer(buffer);
+      ResTable_overlayable_policy_header* policy_type =
+          policy_writer.StartChunk<ResTable_overlayable_policy_header>(
+              RES_TABLE_OVERLAYABLE_POLICY_TYPE);
+      policy_type->policy_flags = util::HostToDevice32(policy.policy_flags);
+      policy_type->entry_count = util::HostToDevice32(static_cast<uint32_t>(policy.ids.size()));
+
+      // Write the ids after the policy header
+      ResTable_ref* id_block = policy_writer.NextBlock<ResTable_ref>(policy.ids.size());
+      for (const ResourceId& id : policy.ids) {
+        id_block->ident = util::HostToDevice32(id.id);
+        id_block++;
+      }
+
+      policy_writer.Finish();
+    }
+
+    writer.Finish();
+  }
+
   bool FlattenTypeSpec(ResourceTableType* type, std::vector<ResourceEntry*>* sorted_entries,
                        BigBuffer* buffer) {
     ChunkWriter type_spec_writer(buffer);
@@ -446,11 +545,6 @@
         config_masks[entry->id.value()] |= util::HostToDevice32(ResTable_typeSpec::SPEC_PUBLIC);
       }
 
-      if (!entry->overlayable_declarations.empty()) {
-        config_masks[entry->id.value()] |=
-            util::HostToDevice32(ResTable_typeSpec::SPEC_OVERLAYABLE);
-      }
-
       const size_t config_count = entry->values.size();
       for (size_t i = 0; i < config_count; i++) {
         const ConfigDescription& config = entry->values[i]->config;
diff --git a/tools/aapt2/format/binary/TableFlattener_test.cpp b/tools/aapt2/format/binary/TableFlattener_test.cpp
index cd1414c7e..410efbe 100644
--- a/tools/aapt2/format/binary/TableFlattener_test.cpp
+++ b/tools/aapt2/format/binary/TableFlattener_test.cpp
@@ -628,24 +628,108 @@
 }
 
 TEST_F(TableFlattenerTest, FlattenOverlayable) {
+  std::string name = "com.app.test:integer/overlayable";
   std::unique_ptr<ResourceTable> table =
       test::ResourceTableBuilder()
           .SetPackageId("com.app.test", 0x7f)
-          .AddSimple("com.app.test:integer/overlayable", ResourceId(0x7f020000))
+          .AddSimple(name, ResourceId(0x7f020000))
+          .AddOverlayable(name, Overlayable::Policy::kProduct)
+          .AddOverlayable(name, Overlayable::Policy::kSystem)
+          .AddOverlayable(name, Overlayable::Policy::kVendor)
           .Build();
 
-  ASSERT_TRUE(table->AddOverlayable(test::ParseNameOrDie("com.app.test:integer/overlayable"),
-                                    Overlayable{}, test::GetDiagnostics()));
+  ResourceTable output_table;
+  ASSERT_TRUE(Flatten(context_.get(), {}, table.get(), &output_table));
 
-  ResTable res_table;
-  ASSERT_TRUE(Flatten(context_.get(), {}, table.get(), &res_table));
-
-  const StringPiece16 overlayable_name(u"com.app.test:integer/overlayable");
-  uint32_t spec_flags = 0u;
-  ASSERT_THAT(res_table.identifierForName(overlayable_name.data(), overlayable_name.size(), nullptr,
-                                          0u, nullptr, 0u, &spec_flags),
-              Gt(0u));
-  EXPECT_TRUE(spec_flags & android::ResTable_typeSpec::SPEC_OVERLAYABLE);
+  auto search_result = output_table.FindResource(test::ParseNameOrDie(name));
+  ASSERT_TRUE(search_result);
+  ASSERT_THAT(search_result.value().entry, NotNull());
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations.size(), 3);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[0].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[0].policy,
+            Overlayable::Policy::kSystem);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[1].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[1].policy,
+            Overlayable::Policy::kVendor);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[2].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[2].policy,
+            Overlayable::Policy::kProduct);
 }
 
+TEST_F(TableFlattenerTest, FlattenMultipleOverlayablePolicies) {
+  std::string name_zero = "com.app.test:integer/overlayable_zero";
+  std::string name_one = "com.app.test:integer/overlayable_one";
+  std::string name_two = "com.app.test:integer/overlayable_two";
+  std::string name_three = "com.app.test:integer/overlayable_three";
+  std::unique_ptr<ResourceTable> table =
+      test::ResourceTableBuilder()
+          .SetPackageId("com.app.test", 0x7f)
+          .AddSimple(name_zero, ResourceId(0x7f020000))
+          .AddOverlayable(name_zero, Overlayable::Policy::kProduct)
+          .AddOverlayable(name_zero, Overlayable::Policy::kSystem)
+          .AddOverlayable(name_zero, Overlayable::Policy::kProductServices)
+          .AddSimple(name_one, ResourceId(0x7f020001))
+          .AddOverlayable(name_one, Overlayable::Policy::kPublic)
+          .AddOverlayable(name_one, Overlayable::Policy::kSystem)
+          .AddSimple(name_two, ResourceId(0x7f020002))
+          .AddOverlayable(name_two, Overlayable::Policy::kProduct)
+          .AddOverlayable(name_two, Overlayable::Policy::kSystem)
+          .AddOverlayable(name_two, Overlayable::Policy::kProductServices)
+          .AddSimple(name_three, ResourceId(0x7f020003))
+          .AddOverlayable(name_three, {})
+          .Build();
+
+  ResourceTable output_table;
+  ASSERT_TRUE(Flatten(context_.get(), {}, table.get(), &output_table));
+
+  auto search_result = output_table.FindResource(test::ParseNameOrDie(name_zero));
+  ASSERT_TRUE(search_result);
+  ASSERT_THAT(search_result.value().entry, NotNull());
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations.size(), 3);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[0].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[0].policy,
+            Overlayable::Policy::kSystem);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[1].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[1].policy,
+            Overlayable::Policy::kProduct);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[2].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[2].policy,
+            Overlayable::Policy::kProductServices);
+
+  search_result = output_table.FindResource(test::ParseNameOrDie(name_one));
+  ASSERT_TRUE(search_result);
+  ASSERT_THAT(search_result.value().entry, NotNull());
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations.size(), 2);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[0].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[0].policy,
+            Overlayable::Policy::kPublic);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[1].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[1].policy,
+            Overlayable::Policy::kSystem);
+
+  search_result = output_table.FindResource(test::ParseNameOrDie(name_two));
+  ASSERT_TRUE(search_result);
+  ASSERT_THAT(search_result.value().entry, NotNull());
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations.size(), 3);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[0].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[0].policy,
+            Overlayable::Policy::kSystem);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[1].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[1].policy,
+            Overlayable::Policy::kProduct);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[2].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[2].policy,
+            Overlayable::Policy::kProductServices);
+
+  search_result = output_table.FindResource(test::ParseNameOrDie(name_three));
+  ASSERT_TRUE(search_result);
+  ASSERT_THAT(search_result.value().entry, NotNull());
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations.size(), 1);
+  EXPECT_TRUE(search_result.value().entry->overlayable_declarations[0].policy);
+  EXPECT_EQ(search_result.value().entry->overlayable_declarations[0].policy,
+            Overlayable::Policy::kPublic);
+
+}
+
+
 }  // namespace aapt
diff --git a/tools/aapt2/java/JavaClassGenerator.cpp b/tools/aapt2/java/JavaClassGenerator.cpp
index d1a70a7..31d205e 100644
--- a/tools/aapt2/java/JavaClassGenerator.cpp
+++ b/tools/aapt2/java/JavaClassGenerator.cpp
@@ -298,19 +298,20 @@
                          "<colgroup align=\"left\" />\n"
                          "<tr><th>Attribute</th><th>Description</th></tr>\n";
 
-    // Build the table of attributes with their links and names.
-    for (const StyleableAttr& entry : sorted_attributes) {
-      if (SkipSymbol(entry.symbol)) {
-        continue;
-      }
-
+    // Removed and hidden attributes are public but hidden from the documentation, so don't emit
+    // them as part of the class documentation.
+    std::vector<StyleableAttr> documentation_attrs = sorted_attributes;
+    auto documentation_remove_iter = std::remove_if(documentation_attrs.begin(),
+                                                    documentation_attrs.end(),
+                                                    [&](StyleableAttr entry) -> bool {
       StringPiece attr_comment_line = entry.symbol.value().attribute->GetComment();
-      if (attr_comment_line.contains("@removed")) {
-        // Removed attributes are public but hidden from the documentation, so
-        // don't emit them as part of the class documentation.
-        continue;
-      }
+      return SkipSymbol(entry.symbol) || attr_comment_line.contains("@removed")
+                                      || attr_comment_line.contains("@hide");
+    });
+    documentation_attrs.erase(documentation_remove_iter, documentation_attrs.end());
 
+    // Build the table of attributes with their links and names.
+    for (const StyleableAttr& entry : documentation_attrs) {
       const ResourceName& attr_name = entry.attr_ref->name.value();
       styleable_comment << "<tr><td><code>{@link #" << entry.field_name << " "
                         << (!attr_name.package.empty() ? attr_name.package
@@ -320,16 +321,14 @@
       // Only use the comment up until the first '.'. This is to stay compatible with
       // the way old AAPT did it (presumably to keep it short and to avoid including
       // annotations like @hide which would affect this Styleable).
+      StringPiece attr_comment_line = entry.symbol.value().attribute->GetComment();
       styleable_comment << "<td>" << AnnotationProcessor::ExtractFirstSentence(attr_comment_line)
                         << "</td></tr>\n";
     }
     styleable_comment << "</table>\n";
 
     // Generate the @see lines for each attribute.
-    for (const StyleableAttr& entry : sorted_attributes) {
-      if (SkipSymbol(entry.symbol)) {
-        continue;
-      }
+    for (const StyleableAttr& entry : documentation_attrs) {
       styleable_comment << "@see #" << entry.field_name << "\n";
     }
 
diff --git a/tools/aapt2/java/JavaClassGenerator_test.cpp b/tools/aapt2/java/JavaClassGenerator_test.cpp
index fa208be..4f51fc4 100644
--- a/tools/aapt2/java/JavaClassGenerator_test.cpp
+++ b/tools/aapt2/java/JavaClassGenerator_test.cpp
@@ -366,6 +366,46 @@
   ASSERT_TRUE(generator.Generate("android", &out));
   out.Flush();
 
+  EXPECT_THAT(output, HasSubstr("#Container_one android:one"));
+  EXPECT_THAT(output, HasSubstr("@see #Container_one"));
+  EXPECT_THAT(output, HasSubstr("attr name android:one"));
+  EXPECT_THAT(output, HasSubstr("attr description"));
+  EXPECT_THAT(output, HasSubstr(attr.GetComment()));
+  EXPECT_THAT(output, HasSubstr(styleable.GetComment()));
+}
+
+TEST(JavaClassGeneratorTest, CommentsForStyleableHiddenAttributesAreNotPresent) {
+  Attribute attr;
+  attr.SetComment(StringPiece("This is an attribute @hide"));
+
+  Styleable styleable;
+  styleable.entries.push_back(Reference(test::ParseNameOrDie("android:attr/one")));
+  styleable.SetComment(StringPiece("This is a styleable"));
+
+  std::unique_ptr<ResourceTable> table =
+      test::ResourceTableBuilder()
+          .SetPackageId("android", 0x01)
+          .AddValue("android:attr/one", util::make_unique<Attribute>(attr))
+          .AddValue("android:styleable/Container",
+                    std::unique_ptr<Styleable>(styleable.Clone(nullptr)))
+          .Build();
+
+  std::unique_ptr<IAaptContext> context =
+      test::ContextBuilder()
+          .AddSymbolSource(util::make_unique<ResourceTableSymbolSource>(table.get()))
+          .SetNameManglerPolicy(NameManglerPolicy{"android"})
+          .Build();
+  JavaClassGeneratorOptions options;
+  options.use_final = false;
+  JavaClassGenerator generator(context.get(), table.get(), options);
+
+  std::string output;
+  StringOutputStream out(&output);
+  ASSERT_TRUE(generator.Generate("android", &out));
+  out.Flush();
+
+  EXPECT_THAT(output, Not(HasSubstr("#Container_one android:one")));
+  EXPECT_THAT(output, Not(HasSubstr("@see #Container_one")));
   EXPECT_THAT(output, HasSubstr("attr name android:one"));
   EXPECT_THAT(output, HasSubstr("attr description"));
   EXPECT_THAT(output, HasSubstr(attr.GetComment()));
diff --git a/tools/aapt2/link/ReferenceLinker.cpp b/tools/aapt2/link/ReferenceLinker.cpp
index 3a5d585..1b6626a 100644
--- a/tools/aapt2/link/ReferenceLinker.cpp
+++ b/tools/aapt2/link/ReferenceLinker.cpp
@@ -368,7 +368,16 @@
         // Symbol state information may be lost if there is no value for the resource.
         if (entry->visibility.level != Visibility::Level::kUndefined && entry->values.empty()) {
           context->GetDiagnostics()->Error(DiagMessage(entry->visibility.source)
-                                           << "no definition for declared symbol '" << name << "'");
+                                               << "no definition for declared symbol '" << name
+                                               << "'");
+          error = true;
+        }
+
+        // Ensure that definitions for values declared as overlayable exist
+        if (!entry->overlayable_declarations.empty() && entry->values.empty()) {
+          context->GetDiagnostics()->Error(DiagMessage(entry->overlayable_declarations[0].source)
+                                           << "no definition for overlayable symbol '"
+                                           << name << "'");
           error = true;
         }
 
diff --git a/tools/aosp/aosp_sha.sh b/tools/aosp/aosp_sha.sh
index e50c70d..f25fcdc 100755
--- a/tools/aosp/aosp_sha.sh
+++ b/tools/aosp/aosp_sha.sh
@@ -19,6 +19,6 @@
         echo "If your change contains no confidential details (such as security fixes), please"
         echo "upload and merge this change at https://android-review.googlesource.com/."
         echo
-        exit 77
+        exit 1
     fi
 fi
diff --git a/tools/apilint/apilint.py b/tools/apilint/apilint.py
index 91cd1cb..cb8fef9 100644
--- a/tools/apilint/apilint.py
+++ b/tools/apilint/apilint.py
@@ -1285,10 +1285,19 @@
     if clazz.fullname == "android.os.UserManager": return
 
     for m in clazz.methods:
-        if m.name.endswith("AsUser") or m.name.endswith("ForUser"): continue
         if re.match("on[A-Z]+", m.name): continue
-        if "android.os.UserHandle" in m.args:
-            warn(clazz, m, None, "Method taking UserHandle should be named 'doFooAsUser' or 'queryFooForUser'")
+
+        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'")
 
 
 def verify_params(clazz):
diff --git a/tools/hiddenapi/exclude.sh b/tools/hiddenapi/exclude.sh
new file mode 100755
index 0000000..2291e5a
--- /dev/null
+++ b/tools/hiddenapi/exclude.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -e
+# Make sure that entries are not added for packages that are already fully handled using
+# annotations.
+LOCAL_DIR="$( dirname ${BASH_SOURCE} )"
+# Each team should add a <team>_PACKAGES and <team>_EMAIL with the list of packages and
+# the team email to use in the event of this detecting an entry in a <team> package. Also
+# add <team> to the TEAMS list. 
+LIBCORE_PACKAGES="\
+  android.icu \
+  android.system \
+  com.android.bouncycastle \
+  com.android.conscrypt \
+  com.android.okhttp \
+  com.sun \
+  dalvik \
+  java \
+  javax \
+  libcore \
+  org.apache.harmony \
+  org.json \
+  org.w3c.dom \
+  org.xml.sax \
+  sun \
+  "
+LIBCORE_EMAIL=libcore-team@android.com
+
+# List of teams.
+TEAMS=LIBCORE
+
+# Generate the list of packages and convert to a regular expression.
+PACKAGES=$(for t in $TEAMS; do echo $(eval echo \${${t}_PACKAGES}); done)
+RE=$(echo ${PACKAGES} | sed "s/ /|/g")
+git show --name-only --pretty=format: $1 | grep "config/hiddenapi-.*txt" | while read file; do
+    ENTRIES=$(grep -E "^L(${RE})/" <(git show $1:$file))
+    if [[ -n "${ENTRIES}" ]]; then
+      echo -e "\e[1m\e[31m$file $1 contains the following entries\e[0m"
+      echo -e "\e[1m\e[31mfor packages that are handled using UnsupportedAppUsage. Please remove\e[0m"
+      echo -e "\e[1m\e[31mthese entries and add annotations instead.\e[0m"
+      # Partition the entries by team and provide contact details to aid in fixing the issue.
+      for t in ${TEAMS}
+      do
+        PACKAGES=$(eval echo \${${t}_PACKAGES})
+        RE=$(echo ${PACKAGES} | sed "s/ /|/g")
+        TEAM_ENTRIES=$(grep -E "^L(${RE})/" <(echo "${ENTRIES}"))
+        if [[ -n "${TEAM_ENTRIES}" ]]; then
+          EMAIL=$(eval echo \${${t}_EMAIL})
+          echo -e "\e[33mContact ${EMAIL} or compat- for help with the following:\e[0m"
+          for i in ${ENTRIES}
+          do
+            echo -e "\e[33m  ${i}\e[0m"
+          done
+        fi
+      done
+      exit 1
+    fi
+done
diff --git a/tools/hiddenapi/generate_hiddenapi_lists.py b/tools/hiddenapi/generate_hiddenapi_lists.py
index fdc800b..01728fa1 100755
--- a/tools/hiddenapi/generate_hiddenapi_lists.py
+++ b/tools/hiddenapi/generate_hiddenapi_lists.py
@@ -15,23 +15,56 @@
 # limitations under the License.
 """
 Generate API lists for non-SDK API enforcement.
-
-usage: generate-hiddenapi-lists.py [-h]
-                                   --input-public INPUT_PUBLIC
-                                   --input-private INPUT_PRIVATE
-                                   [--input-whitelists [INPUT_WHITELISTS [INPUT_WHITELISTS ...]]]
-                                   [--input-greylists [INPUT_GREYLISTS [INPUT_GREYLISTS ...]]]
-                                   [--input-blacklists [INPUT_BLACKLISTS [INPUT_BLACKLISTS ...]]]
-                                   --output-whitelist OUTPUT_WHITELIST
-                                   --output-light-greylist OUTPUT_LIGHT_GREYLIST
-                                   --output-dark-greylist OUTPUT_DARK_GREYLIST
-                                   --output-blacklist OUTPUT_BLACKLIST
 """
 import argparse
 import os
 import sys
 import re
 
+# Names of flags recognized by the `hiddenapi` tool.
+FLAG_WHITELIST = "whitelist"
+FLAG_GREYLIST = "greylist"
+FLAG_BLACKLIST = "blacklist"
+FLAG_GREYLIST_MAX_O = "greylist-max-o"
+FLAG_GREYLIST_MAX_P = "greylist-max-p"
+
+# List of all known flags.
+FLAGS = [
+    FLAG_WHITELIST,
+    FLAG_GREYLIST,
+    FLAG_BLACKLIST,
+    FLAG_GREYLIST_MAX_O,
+    FLAG_GREYLIST_MAX_P,
+]
+FLAGS_SET = set(FLAGS)
+
+# Suffix used in command line args to express that only known and
+# otherwise unassigned entries should be assign the given flag.
+# For example, the P dark greylist is checked in as it was in P,
+# but signatures have changes since then. The flag instructs this
+# script to skip any entries which do not exist any more.
+FLAG_IGNORE_CONFLICTS_SUFFIX = "-ignore-conflicts"
+
+# Regex patterns of fields/methods used in serialization. These are
+# considered public API despite being hidden.
+SERIALIZATION_PATTERNS = [
+    r'readObject\(Ljava/io/ObjectInputStream;\)V',
+    r'readObjectNoData\(\)V',
+    r'readResolve\(\)Ljava/lang/Object;',
+    r'serialVersionUID:J',
+    r'serialPersistentFields:\[Ljava/io/ObjectStreamField;',
+    r'writeObject\(Ljava/io/ObjectOutputStream;\)V',
+    r'writeReplace\(\)Ljava/lang/Object;',
+]
+
+# Single regex used to match serialization API. It combines all the
+# SERIALIZATION_PATTERNS into a single regular expression.
+SERIALIZATION_REGEX = re.compile(r'.*->(' + '|'.join(SERIALIZATION_PATTERNS) + r')$')
+
+# Predicates to be used with filter_apis.
+IS_UNASSIGNED = lambda api, flags: not flags
+IS_SERIALIZATION = lambda api, flags: SERIALIZATION_REGEX.match(api)
+
 def get_args():
     """Parses command line arguments.
 
@@ -39,21 +72,21 @@
         Namespace: dictionary of parsed arguments
     """
     parser = argparse.ArgumentParser()
-    parser.add_argument('--input-public', required=True, help='List of all public members')
-    parser.add_argument('--input-private', required=True, help='List of all private members')
-    parser.add_argument(
-        '--input-whitelists', nargs='*',
-        help='Lists of members to force on whitelist')
-    parser.add_argument(
-        '--input-greylists', nargs='*',
-        help='Lists of members to force on light greylist')
-    parser.add_argument(
-        '--input-blacklists', nargs='*',
-        help='Lists of members to force on blacklist')
-    parser.add_argument('--output-whitelist', required=True)
-    parser.add_argument('--output-light-greylist', required=True)
-    parser.add_argument('--output-dark-greylist', required=True)
-    parser.add_argument('--output-blacklist', required=True)
+    parser.add_argument('--output', required=True)
+    parser.add_argument('--public', required=True, help='list of all public entries')
+    parser.add_argument('--private', required=True, help='list of all private entries')
+    parser.add_argument('--csv', nargs='*', default=[], metavar='CSV_FILE',
+        help='CSV files to be merged into output')
+
+    for flag in FLAGS:
+        ignore_conflicts_flag = flag + FLAG_IGNORE_CONFLICTS_SUFFIX
+        parser.add_argument('--' + flag, dest=flag, nargs='*', default=[], metavar='TXT_FILE',
+            help='lists of entries with flag "' + flag + '"')
+        parser.add_argument('--' + ignore_conflicts_flag, dest=ignore_conflicts_flag, nargs='*',
+            default=[], metavar='TXT_FILE',
+            help='lists of entries with flag "' + flag +
+                 '". skip entry if missing or flag conflict.')
+
     return parser.parse_args()
 
 def read_lines(filename):
@@ -65,10 +98,13 @@
         filename (string): Path to the file to read from.
 
     Returns:
-        list: Lines of the loaded file as a list of strings.
+        Lines of the file as a list of string.
     """
     with open(filename, 'r') as f:
-        return filter(lambda line: not line.startswith('#'), f.readlines())
+        lines = f.readlines();
+    lines = filter(lambda line: not line.startswith('#'), lines)
+    lines = map(lambda line: line.strip(), lines)
+    return set(lines)
 
 def write_lines(filename, lines):
     """Writes list of lines into a file, overwriting the file it it exists.
@@ -77,167 +113,168 @@
         filename (string): Path to the file to be writting into.
         lines (list): List of strings to write into the file.
     """
+    lines = map(lambda line: line + '\n', lines)
     with open(filename, 'w') as f:
         f.writelines(lines)
 
-def move_between_sets(subset, src, dst, source = "<unknown>"):
-    """Removes a subset of elements from one set and add it to another.
+class FlagsDict:
+    def __init__(self, public_api, private_api):
+        # Bootstrap the entries dictionary.
 
-    Args:
-        subset (set): The subset of `src` to be moved from `src` to `dst`.
-        src (set): Source set. Must be a superset of `subset`.
-        dst (set): Destination set. Must be disjoint with `subset`.
-    """
-    assert src.issuperset(subset), (
-        "Error processing: {}\n"
-        "The following entries were not found:\n"
-        "{}"
-        "Please visit go/hiddenapi for more information.").format(
-            source, "".join(map(lambda x: "  " + str(x), subset.difference(src))))
-    assert dst.isdisjoint(subset)
-    # Order matters if `src` and `subset` are the same object.
-    dst.update(subset)
-    src.difference_update(subset)
+        # Check that the two sets do not overlap.
+        public_api_set = set(public_api)
+        private_api_set = set(private_api)
+        assert public_api_set.isdisjoint(private_api_set), (
+            "Lists of public and private API overlap. " +
+            "This suggests an issue with the `hiddenapi` build tool.")
 
-def get_package_name(signature):
-    """Returns the package name prefix of a class member signature.
+        # Compute the whole key set
+        self._dict_keyset = public_api_set.union(private_api_set)
 
-    Example: "Ljava/lang/String;->hashCode()J" --> "Ljava/lang/"
+        # Create a dict that creates entries for both public and private API,
+        # and assigns public API to the whitelist.
+        self._dict = {}
+        for api in public_api:
+            self._dict[api] = set([ FLAG_WHITELIST ])
+        for api in private_api:
+            self._dict[api] = set()
 
-    Args:
-        signature (string): Member signature
+    def _check_entries_set(self, keys_subset, source):
+        assert isinstance(keys_subset, set)
+        assert keys_subset.issubset(self._dict_keyset), (
+            "Error processing: {}\n"
+            "The following entries were unexpected:\n"
+            "{}"
+            "Please visit go/hiddenapi for more information.").format(
+                source, "".join(map(lambda x: "  " + str(x), keys_subset - self._dict_keyset)))
 
-    Returns
-        string: Package name of the given member
-    """
-    class_name_end = signature.find("->")
-    assert class_name_end != -1, "Invalid signature: {}".format(signature)
-    package_name_end = signature.rfind("/", 0, class_name_end)
-    assert package_name_end != -1, "Invalid signature: {}".format(signature)
-    return signature[:package_name_end + 1]
+    def _check_flags_set(self, flags_subset, source):
+        assert isinstance(flags_subset, set)
+        assert flags_subset.issubset(FLAGS_SET), (
+            "Error processing: {}\n"
+            "The following flags were not recognized: \n"
+            "{}\n"
+            "Please visit go/hiddenapi for more information.").format(
+                source, "\n".join(flags_subset - FLAGS_SET))
 
-def all_package_names(*args):
-    """Returns a set of packages names in given lists of member signatures.
+    def filter_apis(self, filter_fn):
+        """Returns APIs which match a given predicate.
 
-    Example: args = [ set([ "Lpkg1/ClassA;->foo()V", "Lpkg2/ClassB;->bar()J" ]),
-                      set([ "Lpkg1/ClassC;->baz()Z" ]) ]
-             return value = set([ "Lpkg1/", "Lpkg2" ])
+        This is a helper function which allows to filter on both signatures (keys) and
+        flags (values). The built-in filter() invokes the lambda only with dict's keys.
 
-    Args:
-        *args (list): List of sets to iterate over and extract the package names
-                      of its elements (member signatures)
+        Args:
+            filter_fn : Function which takes two arguments (signature/flags) and returns a boolean.
 
-    Returns:
-        set: All package names extracted from the given lists of signatures.
-    """
-    packages = set()
-    for arg in args:
-        packages = packages.union(map(get_package_name, arg))
-    return packages
+        Returns:
+            A set of APIs which match the predicate.
+        """
+        return set(filter(lambda x: filter_fn(x, self._dict[x]), self._dict_keyset))
 
-def move_all(src, dst):
-    """Moves all elements of one set to another.
+    def get_valid_subset_of_unassigned_apis(self, api_subset):
+        """Sanitizes a key set input to only include keys which exist in the dictionary
+        and have not been assigned any flags.
 
-    Args:
-        src (set): Source set. Will become empty.
-        dst (set): Destination set. Will contain all elements of `src`.
-    """
-    move_between_sets(src, src, dst)
+        Args:
+            entries_subset (set/list): Key set to be sanitized.
 
-def move_from_files(filenames, src, dst):
-    """Loads member signatures from a list of files and moves them to a given set.
+        Returns:
+            Sanitized key set.
+        """
+        assert isinstance(api_subset, set)
+        return api_subset.intersection(self.filter_apis(IS_UNASSIGNED))
 
-    Opens files in `filenames`, reads all their lines and moves those from `src`
-    set to `dst` set.
+    def generate_csv(self):
+        """Constructs CSV entries from a dictionary.
 
-    Args:
-        filenames (list): List of paths to files to be loaded.
-        src (set): Set that loaded lines should be moved from.
-        dst (set): Set that loaded lines should be moved to.
-    """
-    if filenames:
-        for filename in filenames:
-            move_between_sets(set(read_lines(filename)), src, dst, filename)
+        Returns:
+            List of lines comprising a CSV file. See "parse_and_merge_csv" for format description.
+        """
+        return sorted(map(lambda api: ",".join([api] + sorted(self._dict[api])), self._dict))
 
-def move_serialization(src, dst):
-    """Moves all members matching serialization API signatures between given sets.
+    def parse_and_merge_csv(self, csv_lines, source = "<unknown>"):
+        """Parses CSV entries and merges them into a given dictionary.
 
-    Args:
-        src (set): Set that will be searched for serialization API and that API
-                   will be removed from it.
-        dst (set): Set that serialization API will be moved to.
-    """
-    serialization_patterns = [
-        r'readObject\(Ljava/io/ObjectInputStream;\)V',
-        r'readObjectNoData\(\)V',
-        r'readResolve\(\)Ljava/lang/Object;',
-        r'serialVersionUID:J',
-        r'serialPersistentFields:\[Ljava/io/ObjectStreamField;',
-        r'writeObject\(Ljava/io/ObjectOutputStream;\)V',
-        r'writeReplace\(\)Ljava/lang/Object;',
-    ]
-    regex = re.compile(r'.*->(' + '|'.join(serialization_patterns) + r')$')
-    move_between_sets(filter(lambda api: regex.match(api), src), src, dst)
+        The expected CSV format is:
+            <api signature>,<flag1>,<flag2>,...,<flagN>
 
-def move_from_packages(packages, src, dst):
-    """Moves all members of given package names from one set to another.
+        Args:
+            csv_lines (list of strings): Lines read from a CSV file.
+            source (string): Origin of `csv_lines`. Will be printed in error messages.
 
-    Args:
-        packages (list): List of string package names.
-        src (set): Set that will be searched for API matching one of the given
-                   package names. Surch API will be removed from the set.
-        dst (set): Set that matching API will be moved to.
-    """
-    move_between_sets(filter(lambda api: get_package_name(api) in packages, src), src, dst)
+        Throws:
+            AssertionError if parsed API signatures of flags are invalid.
+        """
+        # Split CSV lines into arrays of values.
+        csv_values = [ line.split(',') for line in csv_lines ]
+
+        # Check that all entries exist in the dict.
+        csv_keys = set([ csv[0] for csv in csv_values ])
+        self._check_entries_set(csv_keys, source)
+
+        # Check that all flags are known.
+        csv_flags = set(reduce(lambda x, y: set(x).union(y), [ csv[1:] for csv in csv_values ], []))
+        self._check_flags_set(csv_flags, source)
+
+        # Iterate over all CSV lines, find entry in dict and append flags to it.
+        for csv in csv_values:
+            self._dict[csv[0]].update(csv[1:])
+
+    def assign_flag(self, flag, apis, source="<unknown>"):
+        """Assigns a flag to given subset of entries.
+
+        Args:
+            flag (string): One of FLAGS.
+            apis (set): Subset of APIs to recieve the flag.
+            source (string): Origin of `entries_subset`. Will be printed in error messages.
+
+        Throws:
+            AssertionError if parsed API signatures of flags are invalid.
+        """
+        # Check that all APIs exist in the dict.
+        self._check_entries_set(apis, source)
+
+        # Check that the flag is known.
+        self._check_flags_set(set([ flag ]), source)
+
+        # Iterate over the API subset, find each entry in dict and assign the flag to it.
+        for api in apis:
+            self._dict[api].add(flag)
 
 def main(argv):
-    args = get_args()
+    # Parse arguments.
+    args = vars(get_args())
 
-    # Initialize API sets by loading lists of public and private API. Public API
-    # are all members resolvable from SDK API stubs, other members are private.
-    # As an optimization, skip the step of moving public API from a full set of
-    # members and start with a populated whitelist.
-    whitelist = set(read_lines(args.input_public))
-    uncategorized = set(read_lines(args.input_private))
-    light_greylist = set()
-    dark_greylist = set()
-    blacklist = set()
+    flags = FlagsDict(read_lines(args["public"]), read_lines(args["private"]))
 
-    # Assert that there is no overlap between public and private API.
-    assert whitelist.isdisjoint(uncategorized)
-    num_all_api = len(whitelist) + len(uncategorized)
+    # Combine inputs which do not require any particular order.
+    # (1) Assign serialization API to whitelist.
+    flags.assign_flag(FLAG_WHITELIST, flags.filter_apis(IS_SERIALIZATION))
 
-    # Read all files which manually assign members to specific lists.
-    move_from_files(args.input_whitelists, uncategorized, whitelist)
-    move_from_files(args.input_greylists, uncategorized, light_greylist)
-    move_from_files(args.input_blacklists, uncategorized, blacklist)
+    # (2) Merge input CSV files into the dictionary.
+    for filename in args["csv"]:
+        flags.parse_and_merge_csv(read_lines(filename), filename)
 
-    # Iterate over all uncategorized members and move serialization API to whitelist.
-    move_serialization(uncategorized, whitelist)
+    # (3) Merge text files with a known flag into the dictionary.
+    for flag in FLAGS:
+        for filename in args[flag]:
+            flags.assign_flag(flag, read_lines(filename), filename)
 
-    # Extract package names of members from whitelist and light greylist, which
-    # are assumed to have been finalized at this point. Assign all uncategorized
-    # members from the same packages to the dark greylist.
-    dark_greylist_packages = all_package_names(whitelist, light_greylist)
-    move_from_packages(dark_greylist_packages, uncategorized, dark_greylist)
+    # Merge text files where conflicts should be ignored.
+    # This will only assign the given flag if:
+    # (a) the entry exists, and
+    # (b) it has not been assigned any other flag.
+    # Because of (b), this must run after all strict assignments have been performed.
+    for flag in FLAGS:
+        for filename in args[flag + FLAG_IGNORE_CONFLICTS_SUFFIX]:
+            valid_entries = flags.get_valid_subset_of_unassigned_apis(read_lines(filename))
+            flags.assign_flag(flag, valid_entries, filename)
 
-    # Assign all uncategorized members to the blacklist.
-    move_all(uncategorized, blacklist)
+    # Assign all remaining entries to the blacklist.
+    flags.assign_flag(FLAG_BLACKLIST, flags.filter_apis(IS_UNASSIGNED))
 
-    # Assert we have not missed anything.
-    assert whitelist.isdisjoint(light_greylist)
-    assert whitelist.isdisjoint(dark_greylist)
-    assert whitelist.isdisjoint(blacklist)
-    assert light_greylist.isdisjoint(dark_greylist)
-    assert light_greylist.isdisjoint(blacklist)
-    assert dark_greylist.isdisjoint(blacklist)
-    assert num_all_api == len(whitelist) + len(light_greylist) + len(dark_greylist) + len(blacklist)
-
-    # Write final lists to disk.
-    write_lines(args.output_whitelist, whitelist)
-    write_lines(args.output_light_greylist, light_greylist)
-    write_lines(args.output_dark_greylist, dark_greylist)
-    write_lines(args.output_blacklist, blacklist)
+    # Write output.
+    write_lines(args["output"], flags.generate_csv())
 
 if __name__ == "__main__":
     main(sys.argv)
diff --git a/tools/hiddenapi/generate_hiddenapi_lists_test.py b/tools/hiddenapi/generate_hiddenapi_lists_test.py
index 4716241..249f37d 100755
--- a/tools/hiddenapi/generate_hiddenapi_lists_test.py
+++ b/tools/hiddenapi/generate_hiddenapi_lists_test.py
@@ -2,14 +2,14 @@
 #
 # Copyright (C) 2018 The Android Open Source Project
 #
-# Licensed under the Apache License, Version 2.0 (the "License");
+# 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,
+# 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.
@@ -18,90 +18,90 @@
 from generate_hiddenapi_lists import *
 
 class TestHiddenapiListGeneration(unittest.TestCase):
+    def test_init(self):
+        # Check empty lists
+        flags = FlagsDict([], [])
+        self.assertEquals(flags.generate_csv(), [])
 
-    def test_move_between_sets(self):
-        A = set([1, 2, 3, 4])
-        B = set([5, 6, 7, 8])
-        move_between_sets(set([2, 4]), A, B)
-        self.assertEqual(A, set([1, 3]))
-        self.assertEqual(B, set([2, 4, 5, 6, 7, 8]))
+        # Check valid input - two public and two private API signatures.
+        flags = FlagsDict(['A', 'B'], ['C', 'D'])
+        self.assertEquals(flags.generate_csv(),
+                          [ 'A,' + FLAG_WHITELIST, 'B,' + FLAG_WHITELIST, 'C', 'D' ])
 
-    def test_move_between_sets_fail_not_superset(self):
-        A = set([1, 2, 3, 4])
-        B = set([5, 6, 7, 8])
-        with self.assertRaises(AssertionError) as ar:
-            move_between_sets(set([0, 2]), A, B)
+        # Check invalid input - overlapping public/private API signatures.
+        with self.assertRaises(AssertionError):
+            flags = FlagsDict(['A', 'B'], ['B', 'C', 'D'])
 
-    def test_move_between_sets_fail_not_disjoint(self):
-        A = set([1, 2, 3, 4])
-        B = set([4, 5, 6, 7, 8])
-        with self.assertRaises(AssertionError) as ar:
-            move_between_sets(set([1, 4]), A, B)
+    def test_filter_apis(self):
+        # Initialize flags so that A and B are put on the whitelist and
+        # C, D, E are left unassigned. Try filtering for the unassigned ones.
+        flags = FlagsDict(['A', 'B'], ['C', 'D', 'E'])
+        filter_set = flags.filter_apis(lambda api, flags: not flags)
+        self.assertTrue(isinstance(filter_set, set))
+        self.assertEqual(filter_set, set([ 'C', 'D', 'E' ]))
 
-    def test_get_package_name(self):
-        self.assertEqual(get_package_name("Ljava/lang/String;->clone()V"), "Ljava/lang/")
+    def test_get_valid_subset_of_unassigned_keys(self):
+        # Create flags where only A is unassigned.
+        flags = FlagsDict(['A'], ['B', 'C'])
+        flags.assign_flag(FLAG_GREYLIST, set(['C']))
+        self.assertEquals(flags.generate_csv(),
+            [ 'A,' + FLAG_WHITELIST, 'B', 'C,' + FLAG_GREYLIST ])
 
-    def test_get_package_name_fail_no_arrow(self):
-        with self.assertRaises(AssertionError) as ar:
-            get_package_name("Ljava/lang/String;-clone()V")
-        with self.assertRaises(AssertionError) as ar:
-            get_package_name("Ljava/lang/String;>clone()V")
-        with self.assertRaises(AssertionError) as ar:
-            get_package_name("Ljava/lang/String;__clone()V")
-
-    def test_get_package_name_fail_no_package(self):
-        with self.assertRaises(AssertionError) as ar:
-            get_package_name("LString;->clone()V")
-
-    def test_all_package_names(self):
-        self.assertEqual(all_package_names(), set())
-        self.assertEqual(all_package_names(set(["Lfoo/Bar;->baz()V"])), set(["Lfoo/"]))
+        # Check three things:
+        # (1) B is selected as valid unassigned
+        # (2) A is not selected because it is assigned 'whitelist'
+        # (3) D is not selected because it is not a valid key
         self.assertEqual(
-            all_package_names(set(["Lfoo/Bar;->baz()V", "Lfoo/BarX;->bazx()I"])),
-            set(["Lfoo/"]))
-        self.assertEqual(
-            all_package_names(
-                set(["Lfoo/Bar;->baz()V"]),
-                set(["Lfoo/BarX;->bazx()I", "Labc/xyz/Mno;->ijk()J"])),
-            set(["Lfoo/", "Labc/xyz/"]))
+            flags.get_valid_subset_of_unassigned_apis(set(['A', 'B', 'D'])), set([ 'B' ]))
 
-    def test_move_all(self):
-        src = set([ "abc", "xyz" ])
-        dst = set([ "def" ])
-        move_all(src, dst)
-        self.assertEqual(src, set())
-        self.assertEqual(dst, set([ "abc", "def", "xyz" ]))
+    def test_parse_and_merge_csv(self):
+        flags = FlagsDict(['A'], ['B'])
+        self.assertEquals(flags.generate_csv(), [ 'A,' + FLAG_WHITELIST, 'B' ])
 
-    def test_move_from_packages(self):
-        src = set([ "Lfoo/bar/ClassA;->abc()J",        # will be moved
-                    "Lfoo/bar/ClassA;->def()J",        # will be moved
-                    "Lcom/pkg/example/ClassD;->ijk:J", # not moved: different package
-                    "Lfoo/bar/xyz/ClassC;->xyz()Z" ])  # not moved: subpackage
-        dst = set()
-        packages = set([ "Lfoo/bar/" ])
-        move_from_packages(packages, src, dst)
-        self.assertEqual(
-            src, set([ "Lfoo/bar/xyz/ClassC;->xyz()Z", "Lcom/pkg/example/ClassD;->ijk:J" ]))
-        self.assertEqual(
-            dst, set([ "Lfoo/bar/ClassA;->abc()J", "Lfoo/bar/ClassA;->def()J" ]))
+        # Test empty CSV entry.
+        flags.parse_and_merge_csv(['B'])
+        self.assertEquals(flags.generate_csv(), [ 'A,' + FLAG_WHITELIST, 'B' ])
 
-    def test_move_serialization(self):
-        # All the entries should be moved apart from the last one
-        src = set([ "Lfoo/bar/ClassA;->readObject(Ljava/io/ObjectInputStream;)V",
-                    "Lfoo/bar/ClassA;->readObjectNoData()V",
-                    "Lfoo/bar/ClassA;->readResolve()Ljava/lang/Object;",
-                    "Lfoo/bar/ClassA;->serialVersionUID:J",
-                    "Lfoo/bar/ClassA;->serialPersistentFields:[Ljava/io/ObjectStreamField;",
-                    "Lfoo/bar/ClassA;->writeObject(Ljava/io/ObjectOutputStream;)V",
-                    "Lfoo/bar/ClassA;->writeReplace()Ljava/lang/Object;",
-                    # Should not be moved as signature does not match
-                    "Lfoo/bar/ClassA;->readObject(Ljava/io/ObjectInputStream;)I"])
-        expectedToMove = len(src) - 1
-        dst = set()
-        packages = set([ "Lfoo/bar/" ])
-        move_serialization(src, dst)
-        self.assertEqual(len(src), 1)
-        self.assertEqual(len(dst), expectedToMove)
+        # Test assigning an already assigned flag.
+        flags.parse_and_merge_csv(['A,' + FLAG_WHITELIST])
+        self.assertEquals(flags.generate_csv(), [ 'A,' + FLAG_WHITELIST, 'B' ])
+
+        # 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 + "," + FLAG_WHITELIST,
+              'B,' + FLAG_BLACKLIST + "," + FLAG_GREYLIST_MAX_O ])
+
+        # Test unknown API signature.
+        with self.assertRaises(AssertionError):
+            flags.parse_and_merge_csv([ 'C' ])
+
+        # Test unknown flag.
+        with self.assertRaises(AssertionError):
+            flags.parse_and_merge_csv([ 'A,foo' ])
+
+    def test_assign_flag(self):
+        flags = FlagsDict(['A'], ['B'])
+        self.assertEquals(flags.generate_csv(), [ 'A,' + FLAG_WHITELIST, 'B' ])
+
+        # Test assigning an already assigned flag.
+        flags.assign_flag(FLAG_WHITELIST, set([ 'A' ]))
+        self.assertEquals(flags.generate_csv(), [ 'A,' + FLAG_WHITELIST, 'B' ])
+
+        # Test new additions.
+        flags.assign_flag(FLAG_GREYLIST, set([ 'A', 'B' ]))
+        self.assertEquals(flags.generate_csv(),
+            [ 'A,' + FLAG_GREYLIST + "," + FLAG_WHITELIST, 'B,' + FLAG_GREYLIST ])
+
+        # Test invalid API signature.
+        with self.assertRaises(AssertionError):
+            flags.assign_flag(FLAG_WHITELIST, set([ 'C' ]))
+
+        # Test invalid flag.
+        with self.assertRaises(AssertionError):
+            flags.assign_flag('foo', set([ 'A' ]))
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/tools/incident_section_gen/main.cpp b/tools/incident_section_gen/main.cpp
index 3f42275..faa3547 100644
--- a/tools/incident_section_gen/main.cpp
+++ b/tools/incident_section_gen/main.cpp
@@ -262,8 +262,9 @@
                 return false;
             case FieldDescriptor::TYPE_STRING:
                 if (getPrivacyFlags(field).patterns_size() != 0) return false;
+                break;
             default:
-                continue;
+                break;
         }
     }
     parents->erase(descriptor->full_name());
diff --git a/tools/powermodel/Android.bp b/tools/powermodel/Android.bp
new file mode 100644
index 0000000..f597aab
--- /dev/null
+++ b/tools/powermodel/Android.bp
@@ -0,0 +1,26 @@
+
+java_library_host {
+    name: "powermodel",
+    srcs: [
+        "src/**/*.java",
+    ],
+    static_libs: [
+        "guava",
+    ],
+}
+
+java_test_host {
+    name: "powermodel-test",
+
+    test_suites: ["general-tests"],
+
+    srcs: ["test/**/*.java"],
+    java_resource_dirs: ["test-resource"],
+
+    static_libs: [
+        "powermodel",
+        "junit",
+        "mockito",
+    ],
+}
+
diff --git a/tools/powermodel/TEST_MAPPING b/tools/powermodel/TEST_MAPPING
new file mode 100644
index 0000000..c8db339
--- /dev/null
+++ b/tools/powermodel/TEST_MAPPING
@@ -0,0 +1,8 @@
+{
+  "presubmit": [
+    {
+      "name": "powermodel-test"
+    }
+  ]
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/ActivityReport.java b/tools/powermodel/src/com/android/powermodel/ActivityReport.java
new file mode 100644
index 0000000..4a8f633
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/ActivityReport.java
@@ -0,0 +1,92 @@
+/*
+ * 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.powermodel;
+
+import java.util.Collection;
+import java.util.EnumSet;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import com.google.common.collect.ImmutableList;
+
+/**
+ * ActivityReport contains the summary of the activity that consumes power
+ * as reported by batterystats or statsd.
+ */
+public class ActivityReport {
+    private AppList<AppActivity> mApps;
+
+    public ImmutableList<AppActivity> getAllApps() {
+        return mApps.getAllApps();
+    }
+
+    public ImmutableList<AppActivity> getRegularApps() {
+        return mApps.getRegularApps();
+    }
+
+    public List<AppActivity> findApp(String pkg) {
+        return mApps.findApp(pkg);
+    }
+
+    public AppActivity findApp(SpecialApp specialApp) {
+        return mApps.findApp(specialApp);
+    }
+
+    /**
+     * Find a component in the GLOBAL app.
+     * <p>
+     * Returns null if either the global app doesn't exist (bad data?) or the component
+     * doesn't exist in the global app.
+     */
+    public ComponentActivity findGlobalComponent(Component component) {
+         final AppActivity global = mApps.findApp(SpecialApp.GLOBAL);
+         if (global == null) {
+             return null;
+         }
+         return global.getComponentActivity(component);
+    }
+
+    public static class Builder {
+        private AppList.Builder<AppActivity,AppActivity.Builder> mApps = new AppList.Builder();
+
+        public Builder() {
+        }
+
+        public ActivityReport build() {
+            final ActivityReport result = new ActivityReport();
+            result.mApps = mApps.build();
+            return result;
+        }
+
+        public void addActivity(Component component, Collection<ComponentActivity> activities) {
+            for (final ComponentActivity activity: activities) {
+                addActivity(component, activity);
+            }
+        }
+
+        public void addActivity(Component component, ComponentActivity activity) {
+            AppActivity.Builder app = mApps.get(activity.attribution);
+            if (app == null) {
+                app = new AppActivity.Builder();
+                app.setAttribution(activity.attribution);
+                mApps.put(activity.attribution, app);
+            }
+            app.addComponentActivity(component, activity);
+        }
+    }
+}
diff --git a/tools/powermodel/src/com/android/powermodel/AppActivity.java b/tools/powermodel/src/com/android/powermodel/AppActivity.java
new file mode 100644
index 0000000..b87426c
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/AppActivity.java
@@ -0,0 +1,80 @@
+/*
+ * 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.powermodel;
+
+import java.util.HashMap;
+
+import com.google.common.collect.ImmutableCollection;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+
+public class AppActivity extends AppInfo {
+
+    private ImmutableMap<Component, ComponentActivity> mComponents;
+    // TODO: power rails
+    // private ImmutableMap<Component, PowerRailActivity> mRails;
+
+    private AppActivity() {
+    }
+
+    /**
+     * Returns the {@link ComponentActivity} for the {@link Component} provided,
+     * or null if this AppActivity does not have that component.
+     * @more
+     * If there is no ComponentActivity for a particular Component, then
+     * there was no usage associated with that app for the app in question.
+     */
+    public ComponentActivity getComponentActivity(Component component) {
+        return mComponents.get(component);
+    }
+
+    public ImmutableSet<Component> getComponents() {
+        return mComponents.keySet();
+    }
+
+    public ImmutableMap<Component,ComponentActivity> getComponentActivities() {
+        return mComponents;
+    }
+
+    // TODO: power rails
+    // public ComponentActivity getPowerRail(Component component) {
+    //     return mComponents.get(component);
+    // }
+    //
+    // public Set<Component> getPowerRails() {
+    //     return mComponents.keySet();
+    // }
+
+    public static class Builder extends AppInfo.Builder<AppActivity> {
+        private HashMap<Component, ComponentActivity> mComponents = new HashMap();
+        // TODO power rails.
+        
+        public Builder() {
+        }
+
+        public AppActivity build() {
+            final AppActivity result = new AppActivity();
+            init(result);
+            result.mComponents = ImmutableMap.copyOf(mComponents);
+            return result;
+        }
+
+        public void addComponentActivity(Component component, ComponentActivity activity) {
+            mComponents.put(component, activity);
+        }
+    }
+}
diff --git a/tools/powermodel/src/com/android/powermodel/AppInfo.java b/tools/powermodel/src/com/android/powermodel/AppInfo.java
new file mode 100644
index 0000000..208339e
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/AppInfo.java
@@ -0,0 +1,56 @@
+/*
+ * 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.powermodel;
+
+class AppInfo {
+    private AttributionKey mAttribution;
+
+    protected AppInfo() {
+    }
+
+    public boolean hasPackage(String pkg) {
+        return mAttribution.hasPackage(pkg);
+    }
+
+    public AttributionKey getAttribution() {
+        return mAttribution;
+    }
+
+    abstract static class Builder<APP extends AppInfo> {
+        private AttributionKey mAttribution;
+
+        public Builder() {
+        }
+
+        public abstract APP build();
+
+        protected void init(AppInfo app) {
+            if (mAttribution == null) {
+                throw new RuntimeException("setAttribution(AttributionKey attribution) not called");
+            }
+            app.mAttribution = mAttribution;
+        }
+
+        public void setAttribution(AttributionKey attribution) {
+            mAttribution = attribution;
+        }
+
+        public AttributionKey getAttribution() {
+            return mAttribution;
+        }
+    }
+}
diff --git a/tools/powermodel/src/com/android/powermodel/AppList.java b/tools/powermodel/src/com/android/powermodel/AppList.java
new file mode 100644
index 0000000..19572fc
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/AppList.java
@@ -0,0 +1,91 @@
+/*
+ * 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.powermodel;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+class AppList<APP extends AppInfo> {
+    private ImmutableList<APP> mAllApps;
+    private ImmutableList<APP> mRegularApps;
+    private ImmutableMap<SpecialApp,APP> mSpecialApps;
+
+    private AppList() {
+    }
+
+    public ImmutableList<APP> getAllApps() {
+        return mAllApps;
+    }
+
+    public ImmutableList<APP> getRegularApps() {
+        return mRegularApps;
+    }
+
+    public List<APP> findApp(String pkg) {
+        List<APP> result = new ArrayList();
+        for (APP app: mRegularApps) {
+            if (app.hasPackage(pkg)) {
+                result.add(app);
+            }
+        }
+        return result;
+    }
+
+    public APP findApp(SpecialApp specialApp) {
+        return mSpecialApps.get(specialApp);
+    }
+
+    public static class Builder<APP extends AppInfo, BUILDER extends AppInfo.Builder<APP>> {
+        private final HashMap<AttributionKey,BUILDER> mApps = new HashMap();
+
+        public Builder() {
+        }
+
+        public AppList<APP> build() {
+            final AppList<APP> result = new AppList();
+            final ArrayList<APP> allApps = new ArrayList();
+            final ArrayList<APP> regularApps = new ArrayList();
+            final HashMap<SpecialApp,APP> specialApps = new HashMap();
+            for (AppInfo.Builder<APP> app: mApps.values()) {
+                final AttributionKey attribution = app.getAttribution();
+                final APP appActivity = app.build();
+                allApps.add(appActivity);
+                if (attribution.isSpecialApp()) {
+                    specialApps.put(attribution.getSpecialApp(), appActivity);
+                } else {
+                    regularApps.add(appActivity);
+                }
+            }
+            result.mAllApps = ImmutableList.copyOf(allApps);
+            result.mRegularApps = ImmutableList.copyOf(regularApps);
+            result.mSpecialApps = ImmutableMap.copyOf(specialApps);
+            return result;
+        }
+
+        public BUILDER get(AttributionKey attribution) {
+            return mApps.get(attribution);
+        }
+
+        public BUILDER put(AttributionKey attribution, BUILDER app) {
+            return mApps.put(attribution, app);
+        }
+    }
+}
diff --git a/tools/powermodel/src/com/android/powermodel/AppPower.java b/tools/powermodel/src/com/android/powermodel/AppPower.java
new file mode 100644
index 0000000..283982b
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/AppPower.java
@@ -0,0 +1,86 @@
+/*
+ * 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.powermodel;
+
+import java.util.HashMap;
+import java.util.Set;
+
+import com.google.common.collect.ImmutableMap;
+
+public class AppPower extends AppInfo {
+    private ImmutableMap<Component, ComponentPower> mComponents;
+
+    private double mAppPowerMah;
+
+
+    private AppPower() {
+    }
+
+    /**
+     * Returns the {@link ComponentPower} for the {@link Component} provided,
+     * or null if this AppPower does not have that component.
+     * @more
+     * If the component was in the power profile for this device, there
+     * will be a component for it, even if there was no power used
+     * by that component. In that case, the
+     * {@link ComponentPower.getUsage() ComponentPower.getUsage()}
+     * method will return 0.
+     */
+    public ComponentPower getComponentPower(Component component) {
+        return mComponents.get(component);
+    }
+
+    public Set<Component> getComponents() {
+        return mComponents.keySet();
+    }
+
+    /**
+     * Return the total power used by this app.
+     */
+    public double getAppPowerMah() {
+        return mAppPowerMah;
+    }
+
+    /**
+     * Builder class for {@link AppPower}
+     */
+    public static class Builder extends AppInfo.Builder<AppPower> {
+        private HashMap<Component, ComponentPower> mComponents = new HashMap();
+
+        public Builder() {
+        }
+
+        public AppPower build() {
+            final AppPower result = new AppPower();
+            init(result);
+            result.mComponents = ImmutableMap.copyOf(mComponents);
+
+            // Add up the components
+            double appPowerMah = 0;
+            for (final ComponentPower componentPower: mComponents.values()) {
+                appPowerMah += componentPower.powerMah;
+            }
+            result.mAppPowerMah = appPowerMah;
+
+            return result;
+        }
+
+        public void addComponentPower(Component component, ComponentPower componentPower) {
+            mComponents.put(component, componentPower);
+        }
+    }
+}
diff --git a/tools/powermodel/src/com/android/powermodel/AttributionKey.java b/tools/powermodel/src/com/android/powermodel/AttributionKey.java
new file mode 100644
index 0000000..f19e0b7
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/AttributionKey.java
@@ -0,0 +1,113 @@
+/*
+ * 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.powermodel;
+
+import java.util.Set;
+import java.util.HashSet;
+
+import com.google.common.collect.ImmutableSet;
+
+public class AttributionKey {
+    private final int mUid;
+    private final ImmutableSet<String> mPackages;
+    private final SpecialApp mSpecialApp;
+
+    public AttributionKey(SpecialApp specialApp) {
+        mUid = -1;
+        mPackages = ImmutableSet.of();
+        mSpecialApp = specialApp;
+    }
+
+    public AttributionKey(int uid, Set<String> packages) {
+        mUid = uid;
+        mPackages = ImmutableSet.copyOf(packages);
+        mSpecialApp = null;
+    }
+
+    public ImmutableSet<String> getPackages() {
+        return mPackages;
+    }
+
+    public boolean hasPackage(String pkg) {
+        return mPackages.contains(pkg);
+    }
+
+    public SpecialApp getSpecialApp() {
+        return mSpecialApp;
+    }
+
+    public boolean isSpecialApp() {
+        return mSpecialApp != null;
+    }
+
+    /**
+     * Returns the uid for this attribution, or -1 if there isn't one
+     * (e.g. if it is a special app).
+     */
+    public int getUid() {
+        return mUid;
+    }
+    @Override
+    public int hashCode() {
+        int hash = 7;
+        hash = (31 * hash) + (mUid);
+        hash = (31 * hash) + (mPackages == null ? 0 : mPackages.hashCode());
+        hash = (31 * hash) + (mSpecialApp == null ? 0 : mSpecialApp.hashCode());
+        return hash;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null) {
+            return false;
+        }
+        if (this.getClass() != o.getClass()) {
+            return false;
+        }
+        final AttributionKey that = (AttributionKey)o;
+        return (this.mUid == that.mUid)
+                && this.mPackages != null && this.mPackages.equals(that.mPackages)
+                && this.mSpecialApp != null && this.mSpecialApp.equals(that.mSpecialApp);
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder str = new StringBuilder("AttributionKey(");
+        if (mUid >= 0) {
+            str.append(" uid=");
+            str.append(mUid);
+        }
+        if (mPackages.size() > 0) {
+            str.append(" packages=[");
+            for (String pkg: mPackages) {
+                str.append(' ');
+                str.append(pkg);
+            }
+            str.append(" ]");
+        }
+        if (mSpecialApp != null) {
+            str.append(" specialApp=");
+            str.append(mSpecialApp.name());
+        }
+        str.append(" )");
+        return str.toString();
+    }
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/BatteryStatsReader.java b/tools/powermodel/src/com/android/powermodel/BatteryStatsReader.java
new file mode 100644
index 0000000..595c661
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/BatteryStatsReader.java
@@ -0,0 +1,74 @@
+/*
+ * 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.powermodel;
+
+import java.io.InputStream;
+import java.io.IOException;
+import com.android.powermodel.component.ModemBatteryStatsReader;
+
+public class BatteryStatsReader {
+    /**
+     * Construct a reader.
+     */
+    public BatteryStatsReader() {
+    }
+
+    /**
+     * Parse a powermodel.xml file and return a PowerProfile object.
+     *
+     * @param stream An InputStream containing the batterystats output.
+     *
+     * @throws ParseException Thrown when the xml file can not be parsed.
+     * @throws IOException When there is a problem reading the stream.
+     */
+    public static ActivityReport parse(InputStream stream) throws ParseException, IOException {
+        final Parser parser = new Parser(stream);
+        return parser.parse();
+    }
+
+    /**
+     * Implements the reading and power model logic.
+     */
+    private static class Parser {
+        final InputStream mStream;
+        final ActivityReport mResult;
+        RawBatteryStats mBs;
+
+        /**
+         * Constructor to capture the parameters to read.
+         */
+        Parser(InputStream stream) {
+            mStream = stream;
+            mResult = new ActivityReport();
+        }
+
+        /**
+         * Read the stream, parse it, and apply the power model.
+         * Do not call this more than once.
+         */
+        ActivityReport parse() throws ParseException, IOException {
+            mBs = RawBatteryStats.parse(mStream);
+
+            final ActivityReport.Builder report = new ActivityReport.Builder();
+
+            report.addActivity(Component.MODEM, ModemBatteryStatsReader.createActivities(mBs));
+
+            return report.build();
+        }
+    }
+}
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/Component.java
similarity index 72%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/Component.java
index 27d25b8..baae6d7 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/Component.java
@@ -13,12 +13,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package com.android.powermodel;
 
 /**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
+ * The hardware components that use power on a device.
  */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+public enum Component {
+    CPU,
+    SCREEN,
+    MODEM,
+    WIFI,
+    BLUETOOTH,
+    VIDEO,
+    AUDIO,
+    FLASHLIGHT,
+    CAMERA,
+    GPS,
 }
+
diff --git a/tools/powermodel/src/com/android/powermodel/ComponentActivity.java b/tools/powermodel/src/com/android/powermodel/ComponentActivity.java
new file mode 100644
index 0000000..c1e2662
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/ComponentActivity.java
@@ -0,0 +1,42 @@
+/*
+ * 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.powermodel;
+
+
+/**
+ * Encapsulates the work done by an app (including synthetic apps) that costs power.
+ */
+public class ComponentActivity {
+    public AttributionKey attribution;
+
+    protected ComponentActivity(AttributionKey attribution) {
+        this.attribution = attribution;
+    }
+
+    // TODO: Can we refactor what goes into the activities so this function
+    // doesn't need the global state?
+    /**
+     * Apply the power profile for this component.  Subclasses should implement this
+     * to do the per-component calculatinos.  The default implementation returns null.
+     * If this method returns null, then there will be no power associated for this
+     * component, which, for example is true with some of the GLOBAL activities.
+     */
+    public ComponentPower applyProfile(ActivityReport activityReport, PowerProfile profile) {
+        return null;
+    }
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/ComponentPower.java b/tools/powermodel/src/com/android/powermodel/ComponentPower.java
new file mode 100644
index 0000000..b22ff87
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/ComponentPower.java
@@ -0,0 +1,41 @@
+/*
+ * 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.powermodel;
+
+/**
+ * The hardware component that uses power on a device.
+ * <p>
+ * This base class contains the total power used by each Component in an app.
+ * Subclasses may add more detail, which is a drill-down, but is not to be
+ * <i>added</i> to {@link #powerMah}.
+ */
+public abstract class ComponentPower<ACTIVITY extends ComponentActivity> {
+    /**
+     * The app associated with this ComponentPower.
+     */
+    public AttributionKey attribution;
+
+    /**
+     * The app activity that resulted in the power usage for this component.
+     */
+    public ACTIVITY activity;
+
+    /**
+     * The total power used by this component in this app.
+     */
+    public double powerMah;
+}
diff --git a/media/java/android/media/update/ProviderCreator.java b/tools/powermodel/src/com/android/powermodel/ComponentProfile.java
similarity index 74%
copy from media/java/android/media/update/ProviderCreator.java
copy to tools/powermodel/src/com/android/powermodel/ComponentProfile.java
index f5f3e47..e76e5fb 100644
--- a/media/java/android/media/update/ProviderCreator.java
+++ b/tools/powermodel/src/com/android/powermodel/ComponentProfile.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2018 The Android Open Source Project
+ * 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.
@@ -14,10 +14,7 @@
  * limitations under the License.
  */
 
-package android.media.update;
+package com.android.powermodel;
 
-/** @hide */
-@FunctionalInterface
-public interface ProviderCreator<T, U> {
-    U createProvider(T instance);
+public class ComponentProfile {
 }
diff --git a/tools/powermodel/src/com/android/powermodel/CsvParser.java b/tools/powermodel/src/com/android/powermodel/CsvParser.java
new file mode 100644
index 0000000..78cd261
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/CsvParser.java
@@ -0,0 +1,173 @@
+/*
+ * 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.powermodel;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+
+/**
+ * Parses CSV.
+ * <p>
+ * Call parse() with an InputStream.
+ * <p>
+ * CsvLineProcessor.onLine() will be called for each line in the source document.
+ * <p>
+ * To simplify parsing and to protect against using too much memory for bad
+ * data, the maximum field length is {@link #MAX_FIELD_SIZE}.
+ */
+class CsvParser {
+    /**
+     * The maximum size of a single field in bytes.
+     */
+    public static final int MAX_FIELD_SIZE = (8*1024)-1;
+
+    /**
+     * Callback interface for each line of CSV as it is parsed.
+     */
+    interface LineProcessor {
+        /**
+         * A line of CSV was parsed.
+         * 
+         * @param lineNumber the line number in the file, starting at 1
+         * @param fields the comma separated fields for the line
+         */
+        void onLine(int lineNumber, ArrayList<String> fields) throws ParseException;
+    }
+
+    /**
+     * Parse the CSV text in input, calling onto processor for each row.
+     */
+    public static void parse(InputStream input, LineProcessor processor)
+            throws IOException, ParseException {
+        final Charset utf8 = StandardCharsets.UTF_8;
+        final byte[] buf = new byte[MAX_FIELD_SIZE+1];
+        int lineNumber = 1;
+        int readPos = 0;
+        int prev = 0;
+        ArrayList<String> fields = new ArrayList<String>();
+        boolean finalBuffer = false;
+        boolean escaping = false;
+        boolean sawQuote = false;
+
+        while (!finalBuffer) {
+            int amt = input.read(buf, readPos, buf.length-readPos);
+            if (amt < 0) {
+                // No more data. Process whatever's left from before.
+                amt = readPos;
+                finalBuffer = true;
+            } else {
+                // Process whatever's left from before, plus the new data.
+                amt += readPos;
+                finalBuffer = false;
+            }
+
+            // Process as much of this buffer as we can.
+            int fieldStart = 0;
+            int index = readPos;
+            int escapeIndex = escaping ? readPos : -1;
+            while (index < amt) {
+                byte c = buf[index];
+                if (c == '\r' || c == '\n') {
+                    if (escaping) {
+                        // TODO: Quotes do not escape newlines in our CSV dialect,
+                        // but we actually see some data where it should.
+                        fields.add(new String(buf, fieldStart, escapeIndex-fieldStart));
+                        escapeIndex = -1;
+                        escaping = false;
+                        sawQuote = false;
+                    } else {
+                        fields.add(new String(buf, fieldStart, index-fieldStart));
+                    }
+                    // Don't report blank lines
+                    if (fields.size() > 1 || (fields.size() == 1 && fields.get(0).length() > 0)) {
+                        processor.onLine(lineNumber, fields);
+                    }
+                    fields = new ArrayList<String>();
+                    if (!(c == '\n' && prev == '\r')) {
+                        // Don't double increment for dos line endings.
+                        lineNumber++;
+                    }
+                    fieldStart = index = index + 1;
+                } else {
+                    if (escaping) {
+                        // Field started with a " so quotes are escaped with " and commas
+                        // don't matter except when following a single quote.
+                        if (c == '"') {
+                            if (sawQuote) {
+                                buf[escapeIndex] = buf[index];
+                                escapeIndex++;
+                                sawQuote = false;
+                            } else {
+                                sawQuote = true;
+                            }
+                            index++;
+                        } else if (sawQuote && c == ',') {
+                            fields.add(new String(buf, fieldStart, escapeIndex-fieldStart));
+                            fieldStart = index = index + 1;
+                            escapeIndex = -1;
+                            escaping = false;
+                            sawQuote = false;
+                        } else {
+                            buf[escapeIndex] = buf[index];
+                            escapeIndex++;
+                            index++;
+                            sawQuote = false;
+                        }
+                    } else {
+                        if (c == ',') {
+                            fields.add(new String(buf, fieldStart, index-fieldStart));
+                            fieldStart = index + 1;
+                        } else if (c == '"' && fieldStart == index) {
+                            // First character is a "
+                            escaping = true;
+                            fieldStart = escapeIndex = index + 1;
+                        }
+                        index++;
+                    }
+                }
+                prev = c;
+            }
+
+            // A single field is greater than buf.length, so fail.
+            if (fieldStart == 0 && index == buf.length) {
+                throw new ParseException(lineNumber, "Line is too long: "
+                        + new String(buf, 0, 20, utf8) + "...");
+            }
+
+            // Move whatever we didn't process to the beginning of the buffer
+            // and try again.
+            if (fieldStart != amt) {
+                readPos = (escaping ? escapeIndex : index) - fieldStart;
+                System.arraycopy(buf, fieldStart, buf, 0, readPos);
+            } else {
+                readPos = 0;
+            }
+        
+            // Process whatever's left over
+            if (finalBuffer) {
+                fields.add(new String(buf, 0, readPos));
+                // If there is any content, return the last line.
+                if (fields.size() > 1 || (fields.size() == 1 && fields.get(0).length() > 0)) {
+                    processor.onLine(lineNumber, fields);
+                }
+            }
+        }
+    }
+}
diff --git a/tools/powermodel/src/com/android/powermodel/ParseException.java b/tools/powermodel/src/com/android/powermodel/ParseException.java
new file mode 100644
index 0000000..e1f232b
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/ParseException.java
@@ -0,0 +1,35 @@
+/*
+ * 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.powermodel;
+
+public class ParseException extends Exception {
+    public final int line;
+
+    public ParseException(int line, String message, Throwable th) {
+        super(message, th);
+        this.line = line;
+    }
+
+    public ParseException(int line, String message) {
+        this(line, message, null);
+    }
+
+    public ParseException(String message) {
+        this(0, message, null);
+    }
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/PowerProfile.java b/tools/powermodel/src/com/android/powermodel/PowerProfile.java
new file mode 100644
index 0000000..373a9c9
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/PowerProfile.java
@@ -0,0 +1,527 @@
+/*
+ * 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.powermodel;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import org.xml.sax.Attributes;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import com.android.powermodel.component.AudioProfile;
+import com.android.powermodel.component.BluetoothProfile;
+import com.android.powermodel.component.CameraProfile;
+import com.android.powermodel.component.CpuProfile;
+import com.android.powermodel.component.FlashlightProfile;
+import com.android.powermodel.component.GpsProfile;
+import com.android.powermodel.component.ModemProfile;
+import com.android.powermodel.component.ScreenProfile;
+import com.android.powermodel.component.VideoProfile;
+import com.android.powermodel.component.WifiProfile;
+import com.android.powermodel.util.Conversion;
+
+public class PowerProfile {
+
+    // Remaining fields from the android code for which the actual usage is unclear.
+    //   battery.capacity
+    //   bluetooth.controller.voltage
+    //   modem.controller.voltage
+    //   gps.voltage
+    //   wifi.controller.voltage
+    //   radio.on
+    //   radio.scanning
+    //   radio.active
+    //   memory.bandwidths
+    //   wifi.batchedscan
+    //   wifi.scan
+    //   wifi.on
+    //   wifi.active
+    //   wifi.controller.tx_levels
+
+    private static Pattern RE_CLUSTER_POWER = Pattern.compile("cpu.cluster_power.cluster([0-9]*)");
+    private static Pattern RE_CORE_SPEEDS = Pattern.compile("cpu.core_speeds.cluster([0-9]*)");
+    private static Pattern RE_CORE_POWER = Pattern.compile("cpu.core_power.cluster([0-9]*)");
+
+    private HashMap<Component, ComponentProfile> mComponents = new HashMap();
+
+    /**
+     * Which element we are currently parsing.
+     */
+    enum ElementState {
+        BEGIN,
+        TOP,
+        ITEM,
+        ARRAY,
+        VALUE
+    }
+
+    /**
+     * Implements the reading and power model logic.
+     */
+    private static class Parser {
+        private final InputStream mStream;
+        private final PowerProfile mResult;
+
+        // Builders for the ComponentProfiles.
+        private final AudioProfile mAudio = new AudioProfile();
+        private final BluetoothProfile mBluetooth = new BluetoothProfile();
+        private final CameraProfile mCamera = new CameraProfile();
+        private final CpuProfile.Builder mCpuBuilder = new CpuProfile.Builder();
+        private final FlashlightProfile mFlashlight = new FlashlightProfile();
+        private final GpsProfile.Builder mGpsBuilder = new GpsProfile.Builder();
+        private final ModemProfile.Builder mModemBuilder = new ModemProfile.Builder();
+        private final ScreenProfile mScreen = new ScreenProfile();
+        private final VideoProfile mVideo = new VideoProfile();
+        private final WifiProfile mWifi = new WifiProfile();
+
+        /**
+         * Constructor to capture the parameters to read.
+         */
+        Parser(InputStream stream) {
+            mStream = stream;
+            mResult = new PowerProfile();
+        }
+
+        /**
+         * Read the stream, parse it, and apply the power model.
+         * Do not call this more than once.
+         */
+        PowerProfile parse() throws ParseException {
+            final SAXParserFactory factory = SAXParserFactory.newInstance();
+            AndroidResourceHandler handler = null;
+            try {
+                final SAXParser saxParser = factory.newSAXParser();
+
+                handler = new AndroidResourceHandler() {
+                    @Override
+                    public void onItem(Locator locator, String name, float value)
+                            throws SAXParseException {
+                        Parser.this.onItem(locator, name, value);
+                    }
+
+                    @Override
+                    public void onArray(Locator locator, String name, float[] value)
+                            throws SAXParseException {
+                        Parser.this.onArray(locator, name, value);
+                    }
+                };
+
+                saxParser.parse(mStream, handler);
+            } catch (ParserConfigurationException ex) {
+                // Coding error, not runtime error.
+                throw new RuntimeException(ex);
+            } catch (SAXParseException ex) {
+                throw new ParseException(ex.getLineNumber(), ex.getMessage(), ex);
+            } catch (SAXException | IOException ex) {
+                // Make a guess about the line number.
+                throw new ParseException(handler.getLineNumber(), ex.getMessage(), ex);
+            }
+
+            // TODO: This doesn't cover the multiple algorithms. Some refactoring will
+            // be necessary.
+            mResult.mComponents.put(Component.AUDIO, mAudio);
+            mResult.mComponents.put(Component.BLUETOOTH, mBluetooth);
+            mResult.mComponents.put(Component.CAMERA, mCamera);
+            mResult.mComponents.put(Component.CPU, mCpuBuilder.build());
+            mResult.mComponents.put(Component.FLASHLIGHT, mFlashlight);
+            mResult.mComponents.put(Component.GPS, mGpsBuilder.build());
+            mResult.mComponents.put(Component.MODEM, mModemBuilder.build());
+            mResult.mComponents.put(Component.SCREEN, mScreen);
+            mResult.mComponents.put(Component.VIDEO, mVideo);
+            mResult.mComponents.put(Component.WIFI, mWifi);
+
+            return mResult;
+        }
+
+        /**
+         * Handles an item tag in the power_profile.xml.
+         */
+        public void onItem(Locator locator, String name, float value) throws SAXParseException {
+            Integer index;
+            try {
+                if ("ambient.on".equals(name)) {
+                    mScreen.ambientMa = value;
+                } else if ("audio".equals(name)) {
+                    mAudio.onMa = value;
+                } else if ("bluetooth.controller.idle".equals(name)) {
+                    mBluetooth.idleMa = value;
+                } else if ("bluetooth.controller.rx".equals(name)) {
+                    mBluetooth.rxMa = value;
+                } else if ("bluetooth.controller.tx".equals(name)) {
+                    mBluetooth.txMa = value;
+                } else if ("camera.avg".equals(name)) {
+                    mCamera.onMa = value;
+                } else if ("camera.flashlight".equals(name)) {
+                    mFlashlight.onMa = value;
+                } else if ("cpu.suspend".equals(name)) {
+                    mCpuBuilder.setSuspendMa(value);
+                } else if ("cpu.idle".equals(name)) {
+                    mCpuBuilder.setIdleMa(value);
+                } else if ("cpu.active".equals(name)) {
+                    mCpuBuilder.setActiveMa(value);
+                } else if ((index = matchIndexedRegex(locator, RE_CLUSTER_POWER, name)) != null) {
+                    mCpuBuilder.setClusterPower(index, value);
+                } else if ("gps.on".equals(name)) {
+                    mGpsBuilder.setOnMa(value);
+                } else if ("modem.controller.sleep".equals(name)) {
+                    mModemBuilder.setSleepMa(value);
+                } else if ("modem.controller.idle".equals(name)) {
+                    mModemBuilder.setIdleMa(value);
+                } else if ("modem.controller.rx".equals(name)) {
+                    mModemBuilder.setRxMa(value);
+                } else if ("radio.scanning".equals(name)) {
+                    mModemBuilder.setScanningMa(value);
+                } else if ("screen.on".equals(name)) {
+                    mScreen.onMa = value;
+                } else if ("screen.full".equals(name)) {
+                    mScreen.fullMa = value;
+                } else if ("video".equals(name)) {
+                    mVideo.onMa = value;
+                } else if ("wifi.controller.idle".equals(name)) {
+                    mWifi.idleMa = value;
+                } else if ("wifi.controller.rx".equals(name)) {
+                    mWifi.rxMa = value;
+                } else if ("wifi.controller.tx".equals(name)) {
+                    mWifi.txMa = value;
+                } else {
+                    // TODO: Uncomment this when we have all of the items parsed.
+                    // throw new SAXParseException("Unhandled <item name=\"" + name + "\"> element",
+                    //        locator, ex);
+
+                }
+            } catch (ParseException ex) {
+                throw new SAXParseException(ex.getMessage(), locator, ex);
+            }
+        }
+
+        /**
+         * Handles an array tag in the power_profile.xml.
+         */
+        public void onArray(Locator locator, String name, float[] value) throws SAXParseException {
+            Integer index;
+            try {
+                if ("cpu.clusters.cores".equals(name)) {
+                    mCpuBuilder.setCoreCount(Conversion.toIntArray(value));
+                } else if ((index = matchIndexedRegex(locator, RE_CORE_SPEEDS, name)) != null) {
+                    mCpuBuilder.setCoreSpeeds(index, Conversion.toIntArray(value));
+                } else if ((index = matchIndexedRegex(locator, RE_CORE_POWER, name)) != null) {
+                    mCpuBuilder.setCorePower(index, value);
+                } else if ("gps.signalqualitybased".equals(name)) {
+                    mGpsBuilder.setSignalMa(value);
+                } else if ("modem.controller.tx".equals(name)) {
+                    mModemBuilder.setTxMa(value);
+                } else {
+                    // TODO: Uncomment this when we have all of the items parsed.
+                    // throw new SAXParseException("Unhandled <item name=\"" + name + "\"> element",
+                    //        locator, ex);
+                }
+            } catch (ParseException ex) {
+                throw new SAXParseException(ex.getMessage(), locator, ex);
+            }
+        }
+    }
+
+    /**
+     * SAX XML handler that can parse the android resource files.
+     * In our case, all elements are floats.
+     */
+    abstract static class AndroidResourceHandler extends DefaultHandler {
+        /**
+         * The set of names already processed. Map of name to line number.
+         */
+        private HashMap<String,Integer> mAlreadySeen = new HashMap<String,Integer>();
+
+        /**
+         * Where in the document we are parsing.
+         */
+        private Locator mLocator;
+
+        /**
+         * Which element we are currently parsing.
+         */
+        private ElementState mState = ElementState.BEGIN;
+
+        /**
+         * Saved name from item and array elements.
+         */
+        private String mName;
+
+        /**
+         * The text that is currently being captured, or null if {@link #startCapturingText()}
+         * has not been called.
+         */
+        private StringBuilder mText;
+
+        /**
+         * The array values that have been parsed so for for this array. Null if we are
+         * not inside an array tag.
+         */
+        private ArrayList<Float> mArray;
+
+        /**
+         * Called when an item tag is encountered.
+         */
+        public abstract void onItem(Locator locator, String name, float value)
+                throws SAXParseException;
+
+        /**
+         * Called when an array is encountered.
+         */
+        public abstract void onArray(Locator locator, String name, float[] value)
+                throws SAXParseException;
+
+        /**
+         * If we have a Locator set, return the line number, otherwise return 0.
+         */
+        public int getLineNumber() {
+            return mLocator != null ? mLocator.getLineNumber() : 0;
+        }
+
+        /**
+         * Handle setting the parse location object.
+         */
+        public void setDocumentLocator(Locator locator) {
+            mLocator = locator;
+        }
+
+        /**
+         * Handle beginning of an element.
+         *
+         * @param ns Namespace uri
+         * @param ln Local name (inside namespace)
+         * @param element Tag name
+         */
+        @Override
+        public void startElement(String ns, String ln, String element,
+                Attributes attr) throws SAXException {
+            switch (mState) {
+                case BEGIN:
+                    // Outer element, we don't care the tag name.
+                    mState = ElementState.TOP;
+                    return;
+                case TOP:
+                    if ("item".equals(element)) {
+                        mState = ElementState.ITEM;
+                        saveNameAttribute(attr);
+                        startCapturingText();
+                        return;
+                    } else if ("array".equals(element)) {
+                        mState = ElementState.ARRAY;
+                        mArray = new ArrayList<Float>();
+                        saveNameAttribute(attr);
+                        return;
+                    }
+                    break;
+                case ARRAY:
+                    if ("value".equals(element)) {
+                        mState = ElementState.VALUE;
+                        startCapturingText();
+                        return;
+                    }
+                    break;
+            }
+            throw new SAXParseException("unexpected element: '" + element + "'", mLocator);
+        }
+
+        /**
+         * Handle end of an element.
+         *
+         * @param ns Namespace uri
+         * @param ln Local name (inside namespace)
+         * @param element Tag name
+         */
+        @Override
+        public void endElement(String ns, String ln, String element) throws SAXException {
+            switch (mState) {
+                case ITEM: {
+                    float value = parseFloat(finishCapturingText());
+                    mState = ElementState.TOP;
+                    onItem(mLocator, mName, value);
+                    break;
+                }
+                case ARRAY: {
+                    final int N = mArray.size();
+                    float[] values = new float[N];
+                    for (int i=0; i<N; i++) {
+                        values[i] = mArray.get(i);
+                    }
+                    mArray = null;
+                    mState = ElementState.TOP;
+                    onArray(mLocator, mName, values);
+                    break;
+                }
+                case VALUE: {
+                    mArray.add(parseFloat(finishCapturingText()));
+                    mState = ElementState.ARRAY;
+                    break;
+                }
+            }
+        }
+
+        /**
+         * Interstitial text received.
+         *
+         * @throws SAXException if there shouldn't be non-whitespace text here
+         */
+        @Override
+        public void characters(char text[], int start, int length) throws SAXException {
+            if (mText == null && length > 0 && !isWhitespace(text, start, length)) {
+                throw new SAXParseException("unexpected text: '"
+                        + firstLine(text, start, length).trim() + "'", mLocator);
+            }
+            if (mText != null) {
+                mText.append(text, start, length);
+            }
+        }
+
+        /**
+         * Begin collecting text from inside an element.
+         */
+        private void startCapturingText() {
+            if (mText != null) {
+                throw new RuntimeException("ASSERTION FAILED: Shouldn't be already capturing"
+                        + " text. mState=" + mState.name()
+                        + " line=" + mLocator.getLineNumber()
+                        + " column=" + mLocator.getColumnNumber());
+            }
+            mText = new StringBuilder();
+        }
+
+        /**
+         * Stop capturing text from inside an element.
+         *
+         * @return the captured text
+         */
+        private String finishCapturingText() {
+            if (mText == null) {
+                throw new RuntimeException("ASSERTION FAILED: Should already be capturing"
+                        + " text. mState=" + mState.name()
+                        + " line=" + mLocator.getLineNumber()
+                        + " column=" + mLocator.getColumnNumber());
+            }
+            final String result = mText.toString().trim();
+            mText = null;
+            return result;
+        }
+
+        /**
+         * Get the "name" attribute.
+         *
+         * @throws SAXParseException if the name attribute is not present or if
+         * the name has already been seen in the file.
+         */
+        private void saveNameAttribute(Attributes attr) throws SAXParseException {
+            final String name = attr.getValue("name");
+            if (name == null) {
+                throw new SAXParseException("expected 'name' attribute", mLocator);
+            }
+            Integer prev = mAlreadySeen.put(name, mLocator.getLineNumber());
+            if (prev != null) {
+                throw new SAXParseException("name '" + name + "' already seen on line: " + prev,
+                        mLocator);
+            }
+            mName = name;
+        }
+
+        /**
+         * Gets the float value of the string.
+         *
+         * @throws SAXParseException if 'text' can't be parsed as a float.
+         */
+        private float parseFloat(String text) throws SAXParseException {
+            try {
+                return Float.parseFloat(text);
+            } catch (NumberFormatException ex) {
+                throw new SAXParseException("not a valid float value: '" + text + "'",
+                        mLocator, ex);
+            }
+        }
+    }
+
+    /**
+     * Return whether the given substring is all whitespace.
+     */
+    private static boolean isWhitespace(char[] text, int start, int length) {
+        for (int i = start; i < (start + length); i++) {
+            if (!Character.isSpace(text[i])) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Return the contents of text up to the first newline.
+     */
+    private static String firstLine(char[] text, int start, int length) {
+        // TODO: The line number will be wrong if we skip preceeding blank lines.
+        while (length > 0) {
+            if (Character.isSpace(text[start])) {
+                start++;
+                length--;
+            }
+        }
+        int newlen = 0;
+        for (; newlen < length; newlen++) {
+            final char c = text[newlen];
+            if (c == '\n' || c == '\r') {
+                break;
+            }
+        }
+        return new String(text, start, newlen);
+    }
+
+    /**
+     * If the pattern matches, return the first group of that as an Integer.
+     * If not return null.
+     */
+    private static Integer matchIndexedRegex(Locator locator, Pattern pattern, String text)
+            throws SAXParseException {
+        final Matcher m = pattern.matcher(text);
+        if (m.matches()) {
+            try {
+                return Integer.parseInt(m.group(1));
+            } catch (NumberFormatException ex) {
+                throw new SAXParseException("Invalid field name: '" + text + "'", locator, ex);
+            }
+        } else {
+            return null;
+        }
+    }
+
+    public static PowerProfile parse(InputStream stream) throws ParseException {
+        return (new Parser(stream)).parse();
+    }
+
+    private PowerProfile() {
+    }
+
+    public ComponentProfile getComponent(Component component) {
+        return mComponents.get(component);
+    }
+
+}
diff --git a/tools/powermodel/src/com/android/powermodel/PowerReport.java b/tools/powermodel/src/com/android/powermodel/PowerReport.java
new file mode 100644
index 0000000..76ba672
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/PowerReport.java
@@ -0,0 +1,101 @@
+/*
+ * 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.powermodel;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import com.google.common.collect.ImmutableMap;
+
+/**
+ * PowerReport contains the summary of all power used on a device
+ * as reported by batterystats or statsd, based on the power profile.
+ */
+public class PowerReport {
+    private AppList<AppPower> mApps;
+    private double mTotalPowerMah;
+
+    private PowerReport() {
+    }
+
+    /**
+     * The total power used by this device for this PowerReport.
+     */
+    public double getTotalPowerMah() {
+        return mTotalPowerMah;
+    }
+
+    public List<AppPower> getAllApps() {
+        return mApps.getAllApps();
+    }
+
+    public List<AppPower> getRegularApps() {
+        return mApps.getRegularApps();
+    }
+
+    public List<AppPower> findApp(String pkg) {
+        return mApps.findApp(pkg);
+    }
+
+    public AppPower findApp(SpecialApp specialApp) {
+        return mApps.findApp(specialApp);
+    }
+
+    public static PowerReport createReport(PowerProfile profile, ActivityReport activityReport) {
+        final PowerReport.Builder powerReport = new PowerReport.Builder();
+        for (final AppActivity appActivity: activityReport.getAllApps()) {
+            final AppPower.Builder appPower = new AppPower.Builder();
+            appPower.setAttribution(appActivity.getAttribution());
+
+            for (final ImmutableMap.Entry<Component,ComponentActivity> entry:
+                    appActivity.getComponentActivities().entrySet()) {
+                final ComponentPower componentPower = entry.getValue()
+                        .applyProfile(activityReport, profile);
+                if (componentPower != null) {
+                    appPower.addComponentPower(entry.getKey(), componentPower);
+                }
+            }
+
+            powerReport.add(appPower);
+        }
+        return powerReport.build();
+    }
+
+    private static class Builder {
+        private AppList.Builder mApps = new AppList.Builder();
+
+        public Builder() {
+        }
+
+        public PowerReport build() {
+            final PowerReport report = new PowerReport();
+
+            report.mApps = mApps.build();
+
+            for (AppPower app: report.mApps.getAllApps()) {
+                report.mTotalPowerMah += app.getAppPowerMah();
+            }
+
+            return report;
+        }
+
+        public void add(AppPower.Builder app) {
+            mApps.put(app.getAttribution(), app);
+        }
+    }
+}
diff --git a/tools/powermodel/src/com/android/powermodel/RawBatteryStats.java b/tools/powermodel/src/com/android/powermodel/RawBatteryStats.java
new file mode 100644
index 0000000..76c0482
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/RawBatteryStats.java
@@ -0,0 +1,1175 @@
+/*
+ * 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.powermodel;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.reflect.Array;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+
+public class RawBatteryStats {
+    /**
+     * The factory objects for the records. Initialized in the static block.
+     */
+    private static HashMap<String,RecordFactory> sFactories
+            = new HashMap<String,RecordFactory>();
+
+    /**
+     * The Record objects that have been parsed.
+     */
+    private ArrayList<Record> mRecords = new ArrayList<Record>();
+
+    /**
+     * The Record objects that have been parsed, indexed by type.
+     *
+     * Don't use this before {@link #indexRecords()} has been called.
+     */
+    private ImmutableMap<String,ImmutableList<Record>> mRecordsByType;
+
+    /**
+     * The attribution keys for which we have data (corresponding to UIDs we've seen).
+     * <p>
+     * Does not include the synthetic apps.
+     * <p>
+     * Don't use this before {@link #indexRecords()} has been called.
+     */
+    private ImmutableSet<AttributionKey> mApps;
+
+    /**
+     * The warnings that have been issued during parsing.
+     */
+    private ArrayList<Warning> mWarnings = new ArrayList<Warning>();
+
+    /**
+     * The version of the BatteryStats dumpsys that we are using.  This value
+     * is set to -1 initially, and then when parsing the (hopefully) first
+     * line, 'vers', it is set to the correct version.
+     */
+    private int mDumpsysVersion = -1;
+
+    /**
+     * Enum used in the Line annotation to mark whether a field is expected to be
+     * system-wide or scoped to an app.
+     */
+    public enum Scope {
+        SYSTEM,
+        UID
+    }
+
+    /**
+     * Enum used to indicated the expected number of results.
+     */
+    public enum Count {
+        SINGLE,
+        MULTIPLE
+    }
+
+    /**
+     * Annotates classes that represent a line of CSV in the batterystats CSV
+     */
+    @Retention(RetentionPolicy.RUNTIME)
+    @Target(ElementType.TYPE)
+    @interface Line {
+        String tag();
+        Scope scope();
+        Count count();
+    }
+
+    /**
+     * Annotates fields that should be parsed automatically from CSV
+     */
+    @Retention(RetentionPolicy.RUNTIME)
+    @Target(ElementType.FIELD)
+    @interface Field {
+        /**
+         * The "column" of this field in the most recent version of the CSV.
+         * When parsing old versions, fields that were added will be automatically
+         * removed and the indices will be fixed up.
+         *
+         * The header fields (version, uid, category, type) will be automatically
+         * handled for the base Line type.  The index 0 should start after those.
+         */
+        int index();
+
+        /**
+         * First version that this field appears in.
+         */
+        int added() default 0;
+    }
+
+    /**
+     * Each line in the BatteryStats CSV is tagged with a category, that says
+     * which of the time collection modes was used for the data.
+     */
+    public enum Category {
+        INFO("i"),
+        LAST("l"),
+        UNPLUGGED("u"),
+        CURRENT("c");
+
+        public final String tag;
+
+        Category(String tag) {
+            this.tag = tag;
+        }
+    }
+
+    /**
+     * Base class for all lines in a batterystats CSV file.
+     */
+    public static class Record {
+        /**
+         * Whether all of the fields for the indicated version of this record
+         * have been filled in.
+         */
+        public boolean complete;
+
+
+        @Field(index=-4)
+        public int lineVersion;
+
+        @Field(index=-3)
+        public int uid;
+
+        @Field(index=-2)
+        public Category category;
+
+        @Field(index=-1)
+        public String lineType;
+    }
+
+    @Line(tag="bt", scope=Scope.SYSTEM, count=Count.SINGLE)
+    public static class Battery extends Record {
+        // If which != STATS_SINCE_CHARGED, the csv will be "N/A" and we will get
+        // a parsing warning.  Nobody uses anything other than STATS_SINCE_CHARGED.
+        @Field(index=0)
+        public int startCount;
+
+        @Field(index=1)
+        public long whichBatteryRealtimeMs;
+
+        @Field(index=2)
+        public long whichBatteryUptimeMs;
+
+        @Field(index=3)
+        public long totalRealtimeMs;
+
+        @Field(index=4)
+        public long totalUptimeMs;
+
+        @Field(index=5)
+        public long getStartClockTimeMs;
+
+        @Field(index=6)
+        public long whichBatteryScreenOffRealtimeMs;
+
+        @Field(index=7)
+        public long whichBatteryScreenOffUptimeMs;
+
+        @Field(index=8)
+        public long estimatedBatteryCapacityMah;
+
+        @Field(index=9)
+        public long minLearnedBatteryCapacityMah;
+
+        @Field(index=10)
+        public long maxLearnedBatteryCapacityMah;
+
+        @Field(index=11)
+        public long screenDozeTimeMs;
+    }
+
+    @Line(tag="gn", scope=Scope.SYSTEM, count=Count.SINGLE)
+    public static class GlobalNetwork extends Record {
+        @Field(index=0)
+        public long mobileRxTotalBytes;
+
+        @Field(index=1)
+        public long mobileTxTotalBytes;
+
+        @Field(index=2)
+        public long wifiRxTotalBytes;
+
+        @Field(index=3)
+        public long wifiTxTotalBytes;
+
+        @Field(index=4)
+        public long mobileRxTotalPackets;
+
+        @Field(index=5)
+        public long mobileTxTotalPackets;
+
+        @Field(index=6)
+        public long wifiRxTotalPackets;
+
+        @Field(index=7)
+        public long wifiTxTotalPackets;
+
+        @Field(index=8)
+        public long btRxTotalBytes;
+
+        @Field(index=9)
+        public long btTxTotalBytes;
+    }
+
+    @Line(tag="gmcd", scope=Scope.SYSTEM, count=Count.SINGLE)
+    public static class GlobalModemController extends Record {
+        @Field(index=0)
+        public long idleMs;
+
+        @Field(index=1)
+        public long rxTimeMs;
+
+        @Field(index=2)
+        public long powerMaMs;
+
+        @Field(index=3)
+        public long[] txTimeMs;
+    }
+
+    @Line(tag="m", scope=Scope.SYSTEM, count=Count.SINGLE)
+    public static class Misc extends Record {
+        @Field(index=0)
+        public long screenOnTimeMs;
+
+        @Field(index=1)
+        public long phoneOnTimeMs;
+
+        @Field(index=2)
+        public long fullWakeLockTimeTotalMs;
+
+        @Field(index=3)
+        public long partialWakeLockTimeTotalMs;
+
+        @Field(index=4)
+        public long mobileRadioActiveTimeMs;
+
+        @Field(index=5)
+        public long mobileRadioActiveAdjustedTimeMs;
+
+        @Field(index=6)
+        public long interactiveTimeMs;
+
+        @Field(index=7)
+        public long powerSaveModeEnabledTimeMs;
+
+        @Field(index=8)
+        public int connectivityChangeCount;
+
+        @Field(index=9)
+        public long deepDeviceIdleModeTimeMs;
+
+        @Field(index=10)
+        public long deepDeviceIdleModeCount;
+
+        @Field(index=11)
+        public long deepDeviceIdlingTimeMs;
+
+        @Field(index=12)
+        public long deepDeviceIdlingCount;
+
+        @Field(index=13)
+        public long mobileRadioActiveCount;
+
+        @Field(index=14)
+        public long mobileRadioActiveUnknownTimeMs;
+
+        @Field(index=15)
+        public long lightDeviceIdleModeTimeMs;
+
+        @Field(index=16)
+        public long lightDeviceIdleModeCount;
+
+        @Field(index=17)
+        public long lightDeviceIdlingTimeMs;
+
+        @Field(index=18)
+        public long lightDeviceIdlingCount;
+
+        @Field(index=19)
+        public long lightLongestDeviceIdleModeTimeMs;
+
+        @Field(index=20)
+        public long deepLongestDeviceIdleModeTimeMs;
+    }
+
+    @Line(tag="nt", scope=Scope.UID, count=Count.SINGLE)
+    public static class Network extends Record {
+        @Field(index=0)
+        public long mobileRxBytes;
+
+        @Field(index=1)
+        public long mobileTxBytes;
+
+        @Field(index=2)
+        public long wifiRxBytes;
+
+        @Field(index=3)
+        public long wifiTxBytes;
+
+        @Field(index=4)
+        public long mobileRxPackets;
+
+        @Field(index=5)
+        public long mobileTxPackets;
+
+        @Field(index=6)
+        public long wifiRxPackets;
+
+        @Field(index=7)
+        public long wifiTxPackets;
+
+        // This is microseconds, because... batterystats.
+        @Field(index=8)
+        public long mobileRadioActiveTimeUs;
+
+        @Field(index=9)
+        public long mobileRadioActiveCount;
+
+        @Field(index=10)
+        public long btRxBytes;
+
+        @Field(index=11)
+        public long btTxBytes;
+
+        @Field(index=12)
+        public long mobileWakeupCount;
+
+        @Field(index=13)
+        public long wifiWakeupCount;
+
+        @Field(index=14)
+        public long mobileBgRxBytes;
+
+        @Field(index=15)
+        public long mobileBgTxBytes;
+
+        @Field(index=16)
+        public long wifiBgRxBytes;
+
+        @Field(index=17)
+        public long wifiBgTxBytes;
+
+        @Field(index=18)
+        public long mobileBgRxPackets;
+
+        @Field(index=19)
+        public long mobileBgTxPackets;
+
+        @Field(index=20)
+        public long wifiBgRxPackets;
+
+        @Field(index=21)
+        public long wifiBgTxPackets;
+    }
+
+    @Line(tag="sgt", scope=Scope.SYSTEM, count=Count.SINGLE)
+    public static class SignalStrengthTime extends Record {
+        @Field(index=0)
+        public long[] phoneSignalStrengthTimeMs;
+    }
+
+    @Line(tag="sst", scope=Scope.SYSTEM, count=Count.SINGLE)
+    public static class SignalScanningTime extends Record {
+        @Field(index=0)
+        public long phoneSignalScanningTimeMs;
+    }
+
+    @Line(tag="uid", scope=Scope.UID, count=Count.MULTIPLE)
+    public static class Uid extends Record {
+        @Field(index=0)
+        public int uidKey;
+
+        @Field(index=1)
+        public String pkg;
+    }
+
+    @Line(tag="vers", scope=Scope.SYSTEM, count=Count.SINGLE)
+    public static class Version extends Record {
+        @Field(index=0)
+        public int dumpsysVersion;
+
+        @Field(index=1)
+        public int parcelVersion;
+
+        @Field(index=2)
+        public String startPlatformVersion;
+
+        @Field(index=3)
+        public String endPlatformVersion;
+    }
+
+    /**
+     * Codes for the warnings to classify warnings without parsing them.
+     */
+    public enum WarningId {
+        /**
+         * A row didn't have enough fields to match any records and let us extract
+         * a line type.
+         */
+        TOO_FEW_FIELDS_FOR_LINE_TYPE,
+
+        /**
+         * We couldn't find a Record for the given line type.
+         */
+        NO_MATCHING_LINE_TYPE,
+
+        /**
+         * Couldn't set the value of a field. Usually this is because the
+         * contents of a numeric type couldn't be parsed.
+         */
+        BAD_FIELD_TYPE,
+
+        /**
+         * There were extra field values in the input text.
+         */
+        TOO_MANY_FIELDS,
+
+        /**
+         * There were fields that we were expecting (for this version
+         * of the dumpsys) that weren't provided in the CSV data.
+         */
+        NOT_ENOUGH_FIELDS,
+
+        /**
+         * The dumpsys version in the 'vers' CSV line couldn't be parsed.
+         */
+        BAD_DUMPSYS_VERSION
+    }
+
+    /**
+     * A non-fatal problem detected during parsing.
+     */
+    public static class Warning {
+        private int mLineNumber;
+        private WarningId mId;
+        private ArrayList<String> mFields;
+        private String mMessage;
+        private String[] mExtras;
+
+        public Warning(int lineNumber, WarningId id, ArrayList<String> fields, String message,
+                String[] extras) {
+            mLineNumber = lineNumber;
+            mId = id;
+            mFields = fields;
+            mMessage = message;
+            mExtras = extras;
+        }
+
+        public int getLineNumber() {
+            return mLineNumber;
+        }
+
+        public ArrayList<String> getFields() {
+            return mFields;
+        }
+
+        public String getMessage() {
+            return mMessage;
+        }
+
+        public String[] getExtras() {
+            return mExtras;
+        }
+    }
+
+    /**
+     * Base class for classes to set fields on Record objects via reflection.
+     */
+    private abstract static class FieldSetter {
+        private int mIndex;
+        private int mAdded;
+        protected java.lang.reflect.Field mField;
+
+        FieldSetter(int index, int added, java.lang.reflect.Field field) {
+            mIndex = index;
+            mAdded = added;
+            mField = field;
+        }
+
+        String getName() {
+            return mField.getName();
+        }
+
+        int getIndex() {
+            return mIndex;
+        }
+
+        int getAdded() {
+            return mAdded;
+        }
+
+        boolean isArray() {
+            return mField.getType().isArray();
+        }
+
+        abstract void setField(int lineNumber, Record object, String value) throws ParseException;
+        abstract void setArray(int lineNumber, Record object, ArrayList<String> values,
+                int startIndex, int endIndex) throws ParseException;
+
+        @Override
+        public String toString() {
+            final String className = getClass().getName();
+            int startIndex = Math.max(className.lastIndexOf('.'), className.lastIndexOf('$'));
+            if (startIndex < 0) {
+                startIndex = 0;
+            } else {
+                startIndex++;
+            }
+            return className.substring(startIndex) + "(index=" + mIndex + " added=" + mAdded
+                    + " field=" + mField.getName()
+                    + " type=" + mField.getType().getSimpleName()
+                    + ")";
+        }
+    }
+
+    /**
+     * Sets int fields on Record objects using reflection.
+     */
+    private static class IntFieldSetter extends FieldSetter {
+        IntFieldSetter(int index, int added, java.lang.reflect.Field field) {
+            super(index, added, field);
+        }
+
+        void setField(int lineNumber, Record object, String value) throws ParseException {
+            try {
+                mField.setInt(object, Integer.parseInt(value.trim()));
+            } catch (NumberFormatException ex) {
+                throw new ParseException(lineNumber, "can't parse as integer: " + value);
+            } catch (IllegalAccessException | IllegalArgumentException
+                    | ExceptionInInitializerError ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+
+        void setArray(int lineNumber, Record object, ArrayList<String> values,
+                int startIndex, int endIndex) throws ParseException {
+            try {
+                final int[] array = new int[endIndex-startIndex];
+                for (int i=startIndex; i<endIndex; i++) {
+                    final String value = values.get(startIndex+i);
+                    try {
+                        array[i] = Integer.parseInt(value.trim());
+                    } catch (NumberFormatException ex) {
+                        throw new ParseException(lineNumber, "can't parse field "
+                                + i + " as integer: " + value);
+                    }
+                }
+                mField.set(object, array);
+            } catch (IllegalAccessException | IllegalArgumentException
+                    | ExceptionInInitializerError ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+
+    /**
+     * Sets long fields on Record objects using reflection.
+     */
+    private static class LongFieldSetter extends FieldSetter {
+        LongFieldSetter(int index, int added, java.lang.reflect.Field field) {
+            super(index, added, field);
+        }
+
+        void setField(int lineNumber, Record object, String value) throws ParseException {
+            try {
+                mField.setLong(object, Long.parseLong(value.trim()));
+            } catch (NumberFormatException ex) {
+                throw new ParseException(lineNumber, "can't parse as long: " + value);
+            } catch (IllegalAccessException | IllegalArgumentException
+                    | ExceptionInInitializerError ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+
+        void setArray(int lineNumber, Record object, ArrayList<String> values,
+                int startIndex, int endIndex) throws ParseException {
+            try {
+                final long[] array = new long[endIndex-startIndex];
+                for (int i=0; i<(endIndex-startIndex); i++) {
+                    final String value = values.get(startIndex+i);
+                    try {
+                        array[i] = Long.parseLong(value.trim());
+                    } catch (NumberFormatException ex) {
+                        throw new ParseException(lineNumber, "can't parse field "
+                                + i + " as long: " + value);
+                    }
+                }
+                mField.set(object, array);
+            } catch (IllegalAccessException | IllegalArgumentException
+                    | ExceptionInInitializerError ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+
+    /**
+     * Sets String fields on Record objects using reflection.
+     */
+    private static class StringFieldSetter extends FieldSetter {
+        StringFieldSetter(int index, int added, java.lang.reflect.Field field) {
+            super(index, added, field);
+        }
+
+        void setField(int lineNumber, Record object, String value) throws ParseException {
+            try {
+                mField.set(object, value);
+            } catch (IllegalAccessException | IllegalArgumentException
+                    | ExceptionInInitializerError ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+
+        void setArray(int lineNumber, Record object, ArrayList<String> values,
+                int startIndex, int endIndex) throws ParseException {
+            try {
+                final String[] array = new String[endIndex-startIndex];
+                for (int i=0; i<(endIndex-startIndex); i++) {
+                    array[i] = values.get(startIndex+1);
+                }
+                mField.set(object, array);
+            } catch (IllegalAccessException | IllegalArgumentException
+                    | ExceptionInInitializerError ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+
+    /**
+     * Sets enum fields on Record objects using reflection.
+     *
+     * To be parsed automatically, enums must have a public final String tag
+     * field, which is the string that will appear in the csv for that enum value.
+     */
+    private static class EnumFieldSetter extends FieldSetter {
+        private final HashMap<String,Enum> mTags = new HashMap<String,Enum>();
+
+        EnumFieldSetter(int index, int added, java.lang.reflect.Field field) {
+            super(index, added, field);
+
+            // Build the mapping of tags to values.
+            final Class<?> fieldType = field.getType();
+
+            java.lang.reflect.Field tagField = null;
+            try {
+                tagField = fieldType.getField("tag");
+            } catch (NoSuchFieldException ex) {
+                throw new RuntimeException("Missing tag field."
+                        + " To be parsed automatically, enums must have"
+                        + " a String field called tag.  Enum class: " + fieldType.getName()
+                        + " Containing class: " + field.getDeclaringClass().getName()
+                        + " Field: " + field.getName());
+
+            }
+            if (!String.class.equals(tagField.getType())) {
+                throw new RuntimeException("Tag field is not string."
+                        + " To be parsed automatically, enums must have"
+                        + " a String field called tag.  Enum class: " + fieldType.getName()
+                        + " Containing class: " + field.getDeclaringClass().getName()
+                        + " Field: " + field.getName()
+                        + " Tag field type: " + tagField.getType().getName());
+            }
+
+            for (final Object enumValue: fieldType.getEnumConstants()) {
+                String tag = null;
+                try {
+                    tag = (String)tagField.get(enumValue);
+                } catch (IllegalAccessException | IllegalArgumentException
+                        | ExceptionInInitializerError ex) {
+                    throw new RuntimeException(ex);
+                }
+                mTags.put(tag, (Enum)enumValue);
+            }
+        }
+
+        void setField(int lineNumber, Record object, String value) throws ParseException {
+            final Enum enumValue = mTags.get(value);
+            if (enumValue == null) {
+                throw new ParseException(lineNumber, "Could not find enum for field "
+                        + getName() + " for tag: " + value);
+            }
+            try {
+                mField.set(object, enumValue);
+            } catch (IllegalAccessException | IllegalArgumentException
+                    | ExceptionInInitializerError ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+
+        void setArray(int lineNumber, Record object, ArrayList<String> values,
+                int startIndex, int endIndex) throws ParseException {
+            try {
+                final Object array = Array.newInstance(mField.getType().getComponentType(),
+                        endIndex-startIndex);
+                for (int i=0; i<(endIndex-startIndex); i++) {
+                    final String value = values.get(startIndex+i);
+                    final Enum enumValue = mTags.get(value);
+                    if (enumValue == null) {
+                        throw new ParseException(lineNumber, "Could not find enum for field "
+                                + getName() + " for tag: " + value);
+                    }
+                    Array.set(array, i, enumValue);
+                }
+                mField.set(object, array);
+            } catch (IllegalAccessException | IllegalArgumentException
+                    | ExceptionInInitializerError ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+
+    /**
+     * Factory for the record classes.  Uses reflection to create
+     * the fields.
+     */
+    private static class RecordFactory {
+        private String mTag;
+        private Class<? extends Record> mSubclass;
+        private ArrayList<FieldSetter> mFieldSetters;
+
+        RecordFactory(String tag, Class<? extends Record> subclass,
+                ArrayList<FieldSetter> fieldSetters) {
+            mTag = tag;
+            mSubclass = subclass;
+            mFieldSetters = fieldSetters;
+        }
+
+        /**
+         * Create an object of one of the subclasses of Record, and fill
+         * in the fields marked with the Field annotation.
+         *
+         * @return a new Record with the fields filled in. If there are missing
+         *      fields, the {@link Record.complete} field will be set to false.
+         */
+        Record create(RawBatteryStats bs, int dumpsysVersion, int lineNumber,
+                ArrayList<String> fieldValues) {
+            final boolean debug = false;
+            Record record = null;
+            try {
+                if (debug) {
+                    System.err.println("Creating object: " + mSubclass.getSimpleName());
+                }
+                record = mSubclass.newInstance();
+            } catch (IllegalAccessException | InstantiationException
+                    | ExceptionInInitializerError | SecurityException ex) {
+                throw new RuntimeException("Exception creating " + mSubclass.getName()
+                        + " for '" + mTag + "' record.", ex);
+            }
+            record.complete = true;
+            int fieldIndex = 0;
+            int setterIndex = 0;
+            while (fieldIndex < fieldValues.size() && setterIndex < mFieldSetters.size()) {
+                final FieldSetter setter = mFieldSetters.get(setterIndex);
+
+                if (dumpsysVersion >= 0 && dumpsysVersion < setter.getAdded()) {
+                    // The version being parsed doesn't have the field for this setter,
+                    // so skip the setter but not the field.
+                    setterIndex++;
+                    continue;
+                }
+
+                final String value = fieldValues.get(fieldIndex);
+                try {
+                    if (debug) {
+                        System.err.println("   setting field " + setter + " to: " + value);
+                    }
+                    if (setter.isArray()) {
+                        setter.setArray(lineNumber, record, fieldValues,
+                                fieldIndex, fieldValues.size());
+                        // The rest of the fields have been consumed.
+                        fieldIndex = fieldValues.size();
+                        setterIndex = mFieldSetters.size();
+                        break;
+                    } else {
+                        setter.setField(lineNumber, record, value);
+                    }
+                } catch (ParseException ex) {
+                    bs.addWarning(lineNumber, WarningId.BAD_FIELD_TYPE, fieldValues,
+                            ex.getMessage(), mTag, value);
+                    record.complete = false;
+                }
+
+                fieldIndex++;
+                setterIndex++;
+            }
+
+            // If there are extra fields, this record is complete, there are just
+            // extra values, so we issue a warning but don't mark it incomplete.
+            if (fieldIndex < fieldValues.size()) {
+                bs.addWarning(lineNumber, WarningId.TOO_MANY_FIELDS, fieldValues,
+                        "Line '" + mTag + "' has extra fields.",
+                        mTag, Integer.toString(fieldIndex), Integer.toString(fieldValues.size()));
+                if (debug) {
+                    for (int i=0; i<mFieldSetters.size(); i++) {
+                        System.err.println("    setter: [" + i + "] " + mFieldSetters.get(i));
+                    }
+                }
+            }
+
+            // If we have any fields that are missing, add a warning and return null.
+            for (; setterIndex < mFieldSetters.size(); setterIndex++) {
+                final FieldSetter setter = mFieldSetters.get(setterIndex);
+                if (dumpsysVersion >= 0 && dumpsysVersion >= setter.getAdded()) {
+                    bs.addWarning(lineNumber, WarningId.NOT_ENOUGH_FIELDS, fieldValues,
+                            "Line '" + mTag + "' missing field: index=" + setterIndex
+                                + " name=" + setter.getName(),
+                            mTag, Integer.toString(setterIndex));
+                    record.complete = false;
+                }
+            }
+
+            return record;
+        }
+    }
+
+    /**
+     * Parse the input stream and return a RawBatteryStats object.
+     */
+    public static RawBatteryStats parse(InputStream input) throws ParseException, IOException {
+        final RawBatteryStats result = new RawBatteryStats();
+        result.parseImpl(input);
+        return result;
+    }
+
+    /**
+     * Get a record.
+     * <p>
+     * If multiple of that record are found, returns the first one.  There will already
+     * have been a warning recorded if the count annotation did not match what was in the
+     * csv.
+     * <p>
+     * Returns null if there are no records of that type.
+     */
+    public <T extends Record> T getSingle(Class<T> cl) {
+        final List<Record> list = mRecordsByType.get(cl.getName());
+        if (list == null) {
+            return null;
+        }
+        // Notes:
+        //   - List can never be empty because the list itself wouldn't have been added.
+        //   - Cast is safe because list was populated based on class name (let's assume
+        //     there's only one class loader involved here).
+        return (T)list.get(0);
+    }
+
+    /**
+     * Get a record.
+     * <p>
+     * If multiple of that record are found, returns the first one that matches that uid.
+     * <p>
+     * Returns null if there are no records of that type that match the given uid.
+     */
+    public <T extends Record> T getSingle(Class<T> cl, int uid) {
+        final List<Record> list = mRecordsByType.get(cl.getName());
+        if (list == null) {
+            return null;
+        }
+        for (final Record record: list) {
+            if (record.uid == uid) {
+                // Cast is safe because list was populated based on class name (let's assume
+                // there's only one class loader involved here).
+                return (T)record;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Get all the records of the given type.
+     */
+    public <T extends Record> List<T> getMultiple(Class<T> cl) {
+        final List<Record> list = mRecordsByType.get(cl.getName());
+        if (list == null) {
+            return ImmutableList.<T>of();
+        }
+        // Cast is safe because list was populated based on class name (let's assume
+        // there's only one class loader involved here).
+        return ImmutableList.copyOf((List<T>)list);
+    }
+
+    /**
+     * Get the UIDs that are covered by this batterystats dump.
+     */
+    public Set<AttributionKey> getApps() {
+        return mApps;
+    }
+
+    /**
+     * No public constructor. Use {@link #parse}.
+     */
+    private RawBatteryStats() {
+    }
+
+    /**
+     * Get the list of Record objects that were parsed from the csv.
+     */
+    public List<Record> getRecords() {
+        return mRecords;
+    }
+
+    /**
+     * Gets the warnings that were encountered during parsing.
+     */
+    public List<Warning> getWarnings() {
+        return mWarnings;
+    }
+
+    /**
+     * Implementation of the csv parsing.
+     */
+    private void parseImpl(InputStream input) throws ParseException, IOException {
+        // Parse the csv
+        CsvParser.parse(input, new CsvParser.LineProcessor() {
+                    @Override
+                    public void onLine(int lineNumber, ArrayList<String> fields)
+                            throws ParseException {
+                        handleCsvLine(lineNumber, fields);
+                    }
+                });
+
+        // Gather the records by class name for the getSingle() and getMultiple() functions.
+        indexRecords();
+
+        // Gather the uids from all the places UIDs come from, for getApps().
+        indexApps();
+    }
+
+    /**
+     * Handle a line of CSV input, creating the right Record object.
+     */
+    private void handleCsvLine(int lineNumber, ArrayList<String> fields) throws ParseException {
+        // The standard rows all have the 4 core fields. Anything less isn't what we're
+        // looking for.
+        if (fields.size() <= 4) {
+            addWarning(lineNumber, WarningId.TOO_FEW_FIELDS_FOR_LINE_TYPE, fields,
+                    "Line with too few fields (" + fields.size() + ")",
+                    Integer.toString(fields.size()));
+            return;
+        }
+
+        final String lineType = fields.get(3);
+
+        // Handle the vers line specially, because we need the version number
+        // to make the rest of the machinery work.
+        if ("vers".equals(lineType)) {
+            final String versionText = fields.get(4);
+            try {
+                mDumpsysVersion = Integer.parseInt(versionText);
+            } catch (NumberFormatException ex) {
+                addWarning(lineNumber, WarningId.BAD_DUMPSYS_VERSION, fields,
+                        "Couldn't parse dumpsys version number: '" + versionText,
+                        versionText);
+            }
+        }
+
+        // Find the right factory.
+        final RecordFactory factory = sFactories.get(lineType);
+        if (factory == null) {
+            addWarning(lineNumber, WarningId.NO_MATCHING_LINE_TYPE, fields,
+                    "No Record for line type '" + lineType + "'",
+                    lineType);
+            return;
+        }
+
+        // Create the record.
+        final Record record = factory.create(this, mDumpsysVersion, lineNumber, fields);
+        mRecords.add(record);
+    }
+
+    /**
+     * Add to the list of warnings.
+     */
+    private void addWarning(int lineNumber, WarningId id,
+            ArrayList<String> fields, String message, String... extras) {
+        mWarnings.add(new Warning(lineNumber, id, fields, message, extras));
+        final boolean debug = false;
+        if (debug) {
+            final StringBuilder text = new StringBuilder("line ");
+            text.append(lineNumber);
+            text.append(": WARNING: ");
+            text.append(message);
+            text.append("\n    fields: ");
+            for (int i=0; i<fields.size(); i++) {
+                final String field = fields.get(i);
+                if (field.indexOf('"') >= 0) {
+                    text.append('"');
+                    text.append(field.replace("\"", "\"\""));
+                    text.append('"');
+                } else {
+                    text.append(field);
+                }
+                if (i != fields.size() - 1) {
+                    text.append(',');
+                }
+            }
+            text.append('\n');
+            for (String extra: extras) {
+                text.append("    extra: ");
+                text.append(extra);
+                text.append('\n');
+            }
+            System.err.print(text.toString());
+        }
+    }
+
+    /**
+     * Group records by class name.
+     */
+    private void indexRecords() {
+        final HashMap<String,ArrayList<Record>> map = new HashMap<String,ArrayList<Record>>();
+
+        // Iterate over all of the records
+        for (Record record: mRecords) {
+            final String className = record.getClass().getName();
+
+            ArrayList<Record> list = map.get(className);
+            if (list == null) {
+                list = new ArrayList<Record>();
+                map.put(className, list);
+            }
+
+            list.add(record);
+        }
+
+        // Make it immutable
+        final HashMap<String,ImmutableList<Record>> result
+                = new HashMap<String,ImmutableList<Record>>();
+        for (HashMap.Entry<String,ArrayList<Record>> entry: map.entrySet()) {
+            result.put(entry.getKey(), ImmutableList.copyOf(entry.getValue()));
+        }
+
+        // Initialize here so uninitialized access will result in NPE.
+        mRecordsByType = ImmutableMap.copyOf(result);
+    }
+
+    /**
+     * Collect the UIDs from the csv.
+     *
+     * They come from two places.
+     * <ul>
+     *   <li>The uid to package name map entries ({@link #Uid}) at the beginning.
+     *   <li>The uid fields of the rest of the entries, some of which might not
+     *       have package names associated with them.
+     * </ul>
+     *
+     * TODO: Is this where we should also do the logic about the special UIDs?
+     */
+    private void indexApps() {
+        final HashMap<Integer,HashSet<String>> uids = new HashMap<Integer,HashSet<String>>();
+
+        // The Uid rows, from which we get package names
+        for (Uid record: getMultiple(Uid.class)) {
+            HashSet<String> list = uids.get(record.uidKey);
+            if (list == null) {
+                list = new HashSet<String>();
+                uids.put(record.uidKey, list);
+            }
+            list.add(record.pkg);
+        }
+
+        // The uid fields of everything
+        for (Record record: mRecords) {
+            // The 0 in the INFO records isn't really root, it's just unfilled data.
+            // The root uid (0) will show up practically in every record, but don't force it.
+            if (record.category != Category.INFO) {
+                if (uids.get(record.uid) == null) {
+                    // There is no other data about this UID, but it does exist!
+                    uids.put(record.uid, new HashSet<String>());
+                }
+            }
+        }
+
+        // Turn our temporary lists of package names into AttributionKeys.
+        final HashSet<AttributionKey> result = new HashSet<AttributionKey>();
+        for (HashMap.Entry<Integer,HashSet<String>> entry: uids.entrySet()) {
+            result.add(new AttributionKey(entry.getKey(), entry.getValue()));
+        }
+
+        // Initialize here so uninitialized access will result in NPE.
+        mApps = ImmutableSet.copyOf(result);
+    }
+
+    /**
+     * Init the factory classes.
+     */
+    static {
+        for (Class<?> cl: RawBatteryStats.class.getClasses()) {
+            final Line lineAnnotation = cl.getAnnotation(Line.class);
+            if (lineAnnotation != null && Record.class.isAssignableFrom(cl)) {
+                final ArrayList<FieldSetter> fieldSetters = new ArrayList<FieldSetter>();
+
+                for (java.lang.reflect.Field field: cl.getFields()) {
+                    final Field fa = field.getAnnotation(Field.class);
+                    if (fa != null) {
+                        final Class<?> fieldType = field.getType();
+                        final Class<?> innerType = fieldType.isArray()
+                                ? fieldType.getComponentType()
+                                : fieldType;
+                        if (Integer.TYPE.equals(innerType)) {
+                            fieldSetters.add(new IntFieldSetter(fa.index(), fa.added(), field));
+                        } else if (Long.TYPE.equals(innerType)) {
+                            fieldSetters.add(new LongFieldSetter(fa.index(), fa.added(), field));
+                        } else if (String.class.equals(innerType)) {
+                            fieldSetters.add(new StringFieldSetter(fa.index(), fa.added(), field));
+                        } else if (innerType.isEnum()) {
+                            fieldSetters.add(new EnumFieldSetter(fa.index(), fa.added(), field));
+                        } else {
+                            throw new RuntimeException("Unsupported field type '"
+                                    + fieldType.getName() + "' on "
+                                    + cl.getName() + "." + field.getName());
+                        }
+                    }
+                }
+                // Sort by index
+                Collections.sort(fieldSetters, new Comparator<FieldSetter>() {
+                            @Override
+                            public int compare(FieldSetter a, FieldSetter b) {
+                                return a.getIndex() - b.getIndex();
+                            }
+                        });
+                // Only the last one can be an array
+                for (int i=0; i<fieldSetters.size()-1; i++) {
+                    if (fieldSetters.get(i).isArray()) {
+                        throw new RuntimeException("Only the last (highest index) @Field"
+                                + " in class " + cl.getName() + " can be an array: "
+                                + fieldSetters.get(i).getName());
+                    }
+                }
+                // Add to the map
+                sFactories.put(lineAnnotation.tag(), new RecordFactory(lineAnnotation.tag(),
+                            (Class<Record>)cl, fieldSetters));
+            }
+        }
+    }
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/SpecialApp.java b/tools/powermodel/src/com/android/powermodel/SpecialApp.java
new file mode 100644
index 0000000..df1e1fb
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/SpecialApp.java
@@ -0,0 +1,85 @@
+/*
+ * 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.powermodel;
+
+/**
+ * Identifiers for well-known apps that have unique characteristics.
+ *
+ * @more
+ * This includes three categories:
+ * <ul>
+ *   <li><b>Built-in system components</b> – These have predefined UIDs that are
+ *   always the same. For example, the system UID is always 1000.</li>
+ *   <li><b>Well known apps with shared UIDs</b> – These do not have predefined
+ *   UIDs (i.e. are different on each device), but since they have shared UIDs
+ *   with varying sets of package names (GmsCore is the canonical example), we
+ *   have special logic to capture these into a single entity with a well defined
+ *   key. These have the {@link #uid uid} field set to
+ *   {@link Uid#UID_VARIES Uid.UID_VARIES}.</li>
+ *   <li><b>Synthetic remainder app</b> – The {@link #REMAINDER REMAINDER} app doesn't
+ *   represent a real app. It contains accounting for usage which is not attributed
+ *   to any UID. This app has the {@link #uid uid} field set to
+ *   {@link Uid#UID_SYNTHETIC Uid.UID_SYNTHETIC}.</li>
+ * </ul>
+ */
+public enum SpecialApp {
+
+    /**
+     * Synthetic app that accounts for the remaining amount of resources used
+     * that is unaccounted for by apps, or overcounted because of inaccuracies
+     * in the model.
+     */
+    REMAINDER(Uid.UID_SYNTHETIC),
+
+    /**
+     * Synthetic app that holds system-wide numbers, for example the total amount
+     * of various resources used, device-wide.
+     */
+    GLOBAL(Uid.UID_SYNTHETIC),
+
+    SYSTEM(1000),
+
+    GOOGLE_SERVICES(Uid.UID_VARIES);
+
+    /**
+     * Constants for SpecialApps where the uid is not actually a UID.
+     */
+    public static class Uid {
+        /**
+         * Constant to indicate that this special app does not have a fixed UID.
+         */
+        public static final int UID_VARIES = -1;
+
+        /**
+         * Constant to indicate that this special app is not actually an app with a UID.
+         * 
+         * @see SpecialApp#REMAINDER
+         * @see SpecialApp#GLOBAL
+         */
+        public static final int UID_SYNTHETIC = -2;
+    }
+
+    /**
+     * The fixed UID value of this special app, or {@link #UID_VARIES} if there
+     * isn't one.
+     */
+    public final int uid;
+
+    private SpecialApp(int uid) {
+        this.uid = uid;
+    }
+}
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/AudioProfile.java
similarity index 71%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/AudioProfile.java
index 27d25b8..63ff3a6 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/AudioProfile.java
@@ -13,12 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class AudioProfile extends ComponentProfile {
+    public float onMa;
 }
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/BluetoothProfile.java
similarity index 67%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/BluetoothProfile.java
index 27d25b8..8f5e7d0 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/BluetoothProfile.java
@@ -13,12 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class BluetoothProfile extends ComponentProfile {
+    public float idleMa;
+    public float rxMa;
+    public float txMa;
 }
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/CameraProfile.java
similarity index 71%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/CameraProfile.java
index 27d25b8..8ee22d0 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/CameraProfile.java
@@ -13,12 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class CameraProfile extends ComponentProfile {
+    public float onMa;
 }
+
diff --git a/tools/powermodel/src/com/android/powermodel/component/CpuProfile.java b/tools/powermodel/src/com/android/powermodel/component/CpuProfile.java
new file mode 100644
index 0000000..0b34fc8
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/component/CpuProfile.java
@@ -0,0 +1,145 @@
+/*
+ * 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.powermodel.component;
+
+import java.util.Arrays;
+import java.util.HashMap;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class CpuProfile extends ComponentProfile {
+    public float suspendMa;
+    public float idleMa;
+    public float activeMa;
+    public Cluster[] clusters;
+
+    public static class Cluster {
+        public int coreCount;
+        public float onMa;
+        public Frequency[] frequencies;
+    }
+
+    public static class Frequency {
+        public int speedHz;
+        public float onMa;
+    }
+
+    public static class Builder {
+        private float mSuspendMa;
+        private float mIdleMa;
+        private float mActiveMa;
+        private int[] mCoreCount;
+        private HashMap<Integer,Float> mClusterOnPower = new HashMap<Integer,Float>();
+        private HashMap<Integer,int[]> mCoreSpeeds = new HashMap<Integer,int[]>();
+        private HashMap<Integer,float[]> mCorePower = new HashMap<Integer,float[]>();
+
+        public Builder() {
+        }
+
+        public void setSuspendMa(float value) throws ParseException {
+            mSuspendMa = value;
+        }
+
+        public void setIdleMa(float value) throws ParseException {
+            mIdleMa = value;
+        }
+
+        public void setActiveMa(float value) throws ParseException {
+            mActiveMa = value;
+        }
+
+        public void setCoreCount(int[] value) throws ParseException {
+            mCoreCount = Arrays.copyOf(value, value.length);
+        }
+
+        public void setClusterPower(int cluster, float value) throws ParseException {
+            mClusterOnPower.put(cluster, value);
+        }
+
+        public void setCoreSpeeds(int cluster, int[] value) throws ParseException {
+            mCoreSpeeds.put(cluster, Arrays.copyOf(value, value.length));
+            float[] power = mCorePower.get(cluster);
+            if (power != null && value.length != power.length) {
+                throw new ParseException("length of cpu.core_speeds.cluster" + cluster
+                        + " (" + value.length + ") is different from length of"
+                        + " cpu.core_power.cluster" + cluster + " (" + power.length + ")");
+            }
+            if (mCoreCount != null && cluster >= mCoreCount.length) {
+                throw new ParseException("cluster " + cluster
+                        + " in cpu.core_speeds.cluster" + cluster
+                        + " is larger than the number of clusters specified in cpu.clusters.cores ("
+                        + mCoreCount.length + ")");
+            }
+        }
+
+        public void setCorePower(int cluster, float[] value) throws ParseException {
+            mCorePower.put(cluster, Arrays.copyOf(value, value.length));
+            int[] speeds = mCoreSpeeds.get(cluster);
+            if (speeds != null && value.length != speeds.length) {
+                throw new ParseException("length of cpu.core_power.cluster" + cluster
+                        + " (" + value.length + ") is different from length of"
+                        + " cpu.clusters.cores" + cluster + " (" + speeds.length + ")");
+            }
+            if (mCoreCount != null && cluster >= mCoreCount.length) {
+                throw new ParseException("cluster " + cluster
+                        + " in cpu.core_power.cluster" + cluster
+                        + " is larger than the number of clusters specified in cpu.clusters.cores ("
+                        + mCoreCount.length + ")");
+            }
+        }
+
+        public CpuProfile build() throws ParseException {
+            final CpuProfile result = new CpuProfile();
+
+            // Validate cluster count
+
+            // All null or none null
+            // TODO
+
+            // Same size
+            // TODO
+
+            // No gaps
+            // TODO
+
+            // Fill in values
+            result.suspendMa = mSuspendMa;
+            result.idleMa = mIdleMa;
+            result.activeMa = mActiveMa;
+            if (mCoreCount != null) {
+                result.clusters = new Cluster[mCoreCount.length];
+                for (int i = 0; i < result.clusters.length; i++) {
+                    final Cluster cluster = result.clusters[i] = new Cluster();
+                    cluster.coreCount = mCoreCount[i];
+                    cluster.onMa = mClusterOnPower.get(i);
+                    int[] speeds = mCoreSpeeds.get(i);
+                    float[] power = mCorePower.get(i);
+                    cluster.frequencies = new Frequency[speeds.length];
+                    for (int j = 0; j < speeds.length; j++) {
+                        final Frequency freq = cluster.frequencies[j] = new Frequency();
+                        freq.speedHz = speeds[j];
+                        freq.onMa = power[j];
+                    }
+                }
+            }
+
+            return result;
+        }
+    }
+}
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/FlashlightProfile.java
similarity index 70%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/FlashlightProfile.java
index 27d25b8..c85f3ff 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/FlashlightProfile.java
@@ -13,12 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class FlashlightProfile extends ComponentProfile {
+    public float onMa;
 }
+
diff --git a/tools/powermodel/src/com/android/powermodel/component/GpsProfile.java b/tools/powermodel/src/com/android/powermodel/component/GpsProfile.java
new file mode 100644
index 0000000..83c06a7
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/component/GpsProfile.java
@@ -0,0 +1,53 @@
+/*
+ * 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.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class GpsProfile extends ComponentProfile {
+    public float onMa;
+    public float[] signalQualityMa;
+
+    public static class Builder {
+        private float onMa;
+        private float[] mSignalQualityMa;
+
+        public Builder() {
+        }
+
+        public void setOnMa(float value) throws ParseException {
+            onMa = value;
+        }
+
+        public void setSignalMa(float[] value) throws ParseException {
+            mSignalQualityMa = value;
+        }
+
+        public GpsProfile build() throws ParseException {
+            GpsProfile result = new GpsProfile();
+            result.onMa = onMa;
+            result.signalQualityMa = mSignalQualityMa == null
+                    ? new float[0]
+                    : Arrays.copyOf(mSignalQualityMa, mSignalQualityMa.length);
+            return result;
+        }
+    }
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/component/ModemAppActivity.java b/tools/powermodel/src/com/android/powermodel/component/ModemAppActivity.java
new file mode 100644
index 0000000..cb70051
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/component/ModemAppActivity.java
@@ -0,0 +1,85 @@
+/*
+ * 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.powermodel.component;
+
+import com.android.powermodel.ActivityReport;
+import com.android.powermodel.AttributionKey;
+import com.android.powermodel.Component;
+import com.android.powermodel.ComponentActivity;
+import com.android.powermodel.PowerProfile;
+import com.android.powermodel.util.Conversion;
+
+/**
+ * Encapsulates the work done by the celluar modem on behalf of an app.
+ */
+public class ModemAppActivity extends ComponentActivity {
+    /**
+     * Construct a new ModemAppActivity.
+     */
+    public ModemAppActivity(AttributionKey attribution) {
+        super(attribution);
+    }
+
+    /**
+     * The number of packets received by the app.
+     */
+    public long rxPacketCount;
+
+    /**
+     * The number of packets sent by the app.
+     */
+    public long txPacketCount;
+
+    @Override
+    public ModemAppPower applyProfile(ActivityReport activityReport, PowerProfile profile) {
+        // Profile
+        final ModemProfile modemProfile = (ModemProfile)profile.getComponent(Component.MODEM);
+        if (modemProfile == null) {
+            // TODO: This is kind of a big problem...  Should this throw instead?
+            return null;
+        }
+
+        // Activity
+        final ModemGlobalActivity global
+                = (ModemGlobalActivity)activityReport.findGlobalComponent(Component.MODEM);
+        if (global == null) {
+            return null;
+        }
+
+        final double averageModemPowerMa = getAverageModemPowerMa(modemProfile);
+        final long totalPacketCount = global.rxPacketCount + global.txPacketCount;
+        final long appPacketCount = this.rxPacketCount + this.txPacketCount;
+
+        final ModemAppPower result = new ModemAppPower();
+        result.attribution = this.attribution;
+        result.activity = this;
+        result.powerMah = Conversion.msToHr(
+                (totalPacketCount > 0 ? (appPacketCount / (double)totalPacketCount) : 0)
+                * global.totalActiveTimeMs
+                * averageModemPowerMa);
+        return result;
+    }
+
+    static final double getAverageModemPowerMa(ModemProfile profile) {
+        double sumMa = profile.getRxMa();
+        for (float powerAtTxLevelMa: profile.getTxMa()) {
+            sumMa += powerAtTxLevelMa;
+        }
+        return sumMa / (profile.getTxMa().length + 1);
+    }
+}
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/ModemAppPower.java
similarity index 72%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/ModemAppPower.java
index 27d25b8..f553127 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/ModemAppPower.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import com.android.powermodel.Component;
+import com.android.powermodel.ComponentPower;
+
+public class ModemAppPower extends ComponentPower<ModemAppActivity> {
 }
+
diff --git a/tools/powermodel/src/com/android/powermodel/component/ModemBatteryStatsReader.java b/tools/powermodel/src/com/android/powermodel/component/ModemBatteryStatsReader.java
new file mode 100644
index 0000000..6dbfbc2
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/component/ModemBatteryStatsReader.java
@@ -0,0 +1,110 @@
+/*
+ * 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.powermodel.component;
+
+import java.util.ArrayList;
+import java.util.List;
+import com.android.powermodel.AttributionKey;
+import com.android.powermodel.ComponentActivity;
+import com.android.powermodel.RawBatteryStats;
+import com.android.powermodel.SpecialApp;
+
+public class ModemBatteryStatsReader {
+    private ModemBatteryStatsReader() {
+    }
+
+    public static List<ComponentActivity> createActivities(RawBatteryStats bs) {
+        final List<ComponentActivity> result = new ArrayList<ComponentActivity>();
+
+        // The whole system
+        createGlobal(result, bs);
+
+        // The apps
+        createApps(result, bs);
+
+        // The synthetic "cell" app.
+        createRemainder(result, bs);
+
+        return result;
+    }
+
+    private static void createGlobal(List<ComponentActivity> result, RawBatteryStats bs) {
+        final ModemGlobalActivity global
+                = new ModemGlobalActivity(new AttributionKey(SpecialApp.GLOBAL));
+
+        final RawBatteryStats.GlobalNetwork gn = bs.getSingle(RawBatteryStats.GlobalNetwork.class);
+        final RawBatteryStats.Misc misc = bs.getSingle(RawBatteryStats.Misc.class);
+
+        // Null here just means no network activity.
+        if (gn != null && misc != null) {
+            global.rxPacketCount = gn.mobileRxTotalPackets;
+            global.txPacketCount = gn.mobileTxTotalPackets;
+
+            global.totalActiveTimeMs = misc.mobileRadioActiveTimeMs;
+        }
+
+        result.add(global);
+    }
+
+    private static void createApps(List<ComponentActivity> result, RawBatteryStats bs) {
+        for (AttributionKey key: bs.getApps()) {
+            final int uid = key.getUid();
+            final RawBatteryStats.Network network
+                    = bs.getSingle(RawBatteryStats.Network.class, uid);
+
+            // Null here just means no network activity.
+            if (network != null) {
+                final ModemAppActivity app = new ModemAppActivity(key);
+
+                app.rxPacketCount = network.mobileRxPackets;
+                app.txPacketCount = network.mobileTxPackets;
+
+                result.add(app);
+            }
+        }
+    }
+
+    private static void createRemainder(List<ComponentActivity> result, RawBatteryStats bs) {
+        final RawBatteryStats.SignalStrengthTime strength
+                = bs.getSingle(RawBatteryStats.SignalStrengthTime.class);
+        final RawBatteryStats.SignalScanningTime scanning
+                = bs.getSingle(RawBatteryStats.SignalScanningTime.class);
+        final RawBatteryStats.Misc misc = bs.getSingle(RawBatteryStats.Misc.class);
+
+        if (strength != null && scanning != null && misc != null) {
+            final ModemRemainderActivity remainder
+                    = new ModemRemainderActivity(new AttributionKey(SpecialApp.REMAINDER));
+
+            // Signal strength buckets
+            remainder.strengthTimeMs = strength.phoneSignalStrengthTimeMs;
+
+            // Time spent scanning
+            remainder.scanningTimeMs = scanning.phoneSignalScanningTimeMs;
+
+            // Unaccounted for active time
+            final long totalActiveTimeMs = misc.mobileRadioActiveTimeMs;
+            long appActiveTimeMs = 0;
+            for (RawBatteryStats.Network nw: bs.getMultiple(RawBatteryStats.Network.class)) {
+                appActiveTimeMs += nw.mobileRadioActiveTimeUs / 1000;
+            }
+            remainder.activeTimeMs = totalActiveTimeMs - appActiveTimeMs;
+
+            result.add(remainder);
+        }
+    }
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/component/ModemGlobalActivity.java b/tools/powermodel/src/com/android/powermodel/component/ModemGlobalActivity.java
new file mode 100644
index 0000000..a53b53e
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/component/ModemGlobalActivity.java
@@ -0,0 +1,51 @@
+/*
+ * 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.powermodel.component;
+
+import com.android.powermodel.ActivityReport;
+import com.android.powermodel.AttributionKey;
+import com.android.powermodel.ComponentActivity;
+import com.android.powermodel.ComponentPower;
+import com.android.powermodel.PowerProfile;
+
+/**
+ * Encapsulates total work done by the modem for the device.
+ */
+public class ModemGlobalActivity extends ComponentActivity {
+    /**
+     * Construct a new ModemGlobalActivity.
+     */
+    public ModemGlobalActivity(AttributionKey attribution) {
+        super(attribution);
+    }
+
+    /**
+     * Returns the total number of packets received in the whole device.
+     */
+    public long rxPacketCount;
+
+    /**
+     * Returns the total number of packets sent in the whole device.
+     */
+    public long txPacketCount;
+
+    /**
+     * Returns the total time the radio was active in the whole device.
+     */
+    public long totalActiveTimeMs;
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/component/ModemProfile.java b/tools/powermodel/src/com/android/powermodel/component/ModemProfile.java
new file mode 100644
index 0000000..cda72ee
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/component/ModemProfile.java
@@ -0,0 +1,92 @@
+/*
+ * 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.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class ModemProfile extends ComponentProfile {
+    public float sleepMa;
+    public float idleMa;
+    public float scanningMa;
+    public float rxMa;
+    public float[] txMa;
+
+    public float getSleepMa() {
+        return sleepMa;
+    }
+
+    public float getIdleMa() {
+        return idleMa;
+    }
+
+    public float getRxMa() {
+        return rxMa;
+    }
+
+    public float[] getTxMa() {
+        return Arrays.copyOf(txMa, txMa.length);
+    }
+
+    public float getScanningMa() {
+        return scanningMa;
+    }
+
+    public static class Builder {
+        private float mSleepMa;
+        private float mIdleMa;
+        private float mRxMa;
+        private float[] mTxMa;
+        private float mScanningMa;
+
+        public Builder() {
+        }
+
+        public void setSleepMa(float value) throws ParseException {
+            mSleepMa = value;
+        }
+
+        public void setIdleMa(float value) throws ParseException {
+            mIdleMa = value;
+        }
+
+        public void setRxMa(float value) throws ParseException {
+            mRxMa = value;
+        }
+
+        public void setTxMa(float[] value) throws ParseException {
+            mTxMa = Arrays.copyOf(value, value.length);
+        }
+
+        public void setScanningMa(float value) throws ParseException {
+            mScanningMa = value;
+        }
+
+        public ModemProfile build() throws ParseException {
+            ModemProfile result = new ModemProfile();
+            result.sleepMa = mSleepMa;
+            result.idleMa = mIdleMa;
+            result.rxMa = mRxMa;
+            result.txMa = mTxMa == null ? new float[0] : mTxMa;
+            result.scanningMa = mScanningMa;
+            return result;
+        }
+    }
+}
+
diff --git a/tools/powermodel/src/com/android/powermodel/component/ModemRemainderActivity.java b/tools/powermodel/src/com/android/powermodel/component/ModemRemainderActivity.java
new file mode 100644
index 0000000..0e268c2
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/component/ModemRemainderActivity.java
@@ -0,0 +1,87 @@
+/*
+ * 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.powermodel.component;
+
+import com.android.powermodel.ActivityReport;
+import com.android.powermodel.AttributionKey;
+import com.android.powermodel.Component;
+import com.android.powermodel.ComponentActivity;
+import com.android.powermodel.PowerProfile;
+import com.android.powermodel.util.Conversion;
+
+/**
+ * Encapsulates the work done by the remaining 
+ */
+public class ModemRemainderActivity extends ComponentActivity {
+    /**
+     * Construct a new ModemRemainderActivity.
+     */
+    public ModemRemainderActivity(AttributionKey attribution) {
+        super(attribution);
+    }
+
+    /**
+     * Number of milliseconds spent at each of the signal strengths.
+     */
+    public long[] strengthTimeMs;
+
+    /**
+     * Number of milliseconds spent scanning for a network.
+     */
+    public long scanningTimeMs;
+
+    /**
+     * Number of milliseconds that the radio is active for reasons other
+     * than an app transmitting and receiving data.
+     */
+    public long activeTimeMs;
+
+    @Override
+    public ModemRemainderPower applyProfile(ActivityReport activityReport, PowerProfile profile) {
+        // Profile
+        final ModemProfile modemProfile = (ModemProfile)profile.getComponent(Component.MODEM);
+        if (modemProfile == null) {
+            return null;
+        }
+
+        // Activity
+        final ModemRemainderPower result = new ModemRemainderPower();
+        result.attribution = this.attribution;
+        result.activity = this;
+
+        // strengthMah
+        // TODO: If the array lengths don't match... then?
+        result.strengthMah = new double[this.strengthTimeMs.length];
+        for (int i=0; i<this.strengthTimeMs.length; i++) {
+            result.strengthMah[i] = Conversion.msToHr(
+                    this.strengthTimeMs[i] * modemProfile.getTxMa()[i]);
+            result.powerMah += result.strengthMah[i];
+        }
+
+        // scanningMah
+        result.scanningMah = Conversion.msToHr(this.scanningTimeMs * modemProfile.getScanningMa());
+        result.powerMah += result.scanningMah;
+
+        // activeMah
+        result.activeMah = Conversion.msToHr(
+                this.activeTimeMs * ModemAppActivity.getAverageModemPowerMa(modemProfile));
+        result.powerMah += result.activeMah;
+
+        return result;
+    }
+}
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/ModemRemainderPower.java
similarity index 66%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/ModemRemainderPower.java
index 27d25b8..7f38cd3 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/ModemRemainderPower.java
@@ -13,12 +13,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import com.android.powermodel.Component;
+import com.android.powermodel.ComponentPower;
+
+public class ModemRemainderPower extends ComponentPower<ModemRemainderActivity> {
+
+    public double[] strengthMah;
+
+    public double scanningMah;
+
+    public double activeMah;
 }
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/ScreenProfile.java
similarity index 67%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/ScreenProfile.java
index 27d25b8..e1051c6 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/ScreenProfile.java
@@ -13,12 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class ScreenProfile extends ComponentProfile {
+    public float onMa;
+    public float fullMa;
+    public float ambientMa;
 }
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/VideoProfile.java
similarity index 71%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/VideoProfile.java
index 27d25b8..5152795 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/VideoProfile.java
@@ -13,12 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class VideoProfile extends ComponentProfile {
+    public float onMa;
 }
+
+
diff --git a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl b/tools/powermodel/src/com/android/powermodel/component/WifiProfile.java
similarity index 67%
copy from core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
copy to tools/powermodel/src/com/android/powermodel/component/WifiProfile.java
index 27d25b8..6f424bf 100644
--- a/core/java/android/hardware/biometrics/IBiometricPromptReceiver.aidl
+++ b/tools/powermodel/src/com/android/powermodel/component/WifiProfile.java
@@ -13,12 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
 
-/**
- * Communication channel from the BiometricPrompt (SysUI) back to AuthenticationClient.
- * @hide
- */
-oneway interface IBiometricPromptReceiver {
-    void onDialogDismissed(int reason);
+package com.android.powermodel.component;
+
+import java.util.Arrays;
+
+import com.android.powermodel.ComponentProfile;
+import com.android.powermodel.ParseException;
+
+public class WifiProfile extends ComponentProfile {
+    public float idleMa;
+    public float rxMa;
+    public float txMa;
 }
+
diff --git a/tools/powermodel/src/com/android/powermodel/util/Conversion.java b/tools/powermodel/src/com/android/powermodel/util/Conversion.java
new file mode 100644
index 0000000..e556c25
--- /dev/null
+++ b/tools/powermodel/src/com/android/powermodel/util/Conversion.java
@@ -0,0 +1,47 @@
+/*
+ * 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.powermodel.util;
+
+public class Conversion {
+
+    /**
+     * Convert the the float[] to an int[].
+     * <p>
+     * Values are rounded to the nearest integral value. Null input
+     * results in null output.
+     */
+    public static int[] toIntArray(float[] value) {
+        if (value == null) {
+            return null;
+        }
+        int[] result = new int[value.length];
+        for (int i=0; i<result.length; i++) {
+            result[i] = (int)(value[i] + 0.5f);
+        }
+        return result;
+    }
+    
+    public static double msToHr(double ms) {
+        return ms / 3600.0 / 1000.0;
+    }
+
+    /**
+     * No public constructor.
+     */
+    private Conversion() {
+    }
+}
diff --git a/tools/powermodel/test-resource/bs.csv b/tools/powermodel/test-resource/bs.csv
new file mode 100644
index 0000000..6e84120
--- /dev/null
+++ b/tools/powermodel/test-resource/bs.csv
@@ -0,0 +1,7 @@
+9,0,i,vers,32,177,PPR1.180326.002,PQ1A.181105.015
+9,0,i,uid,10139,com.google.android.gm
+9,0,l,gn,108060756,17293456,4896592,3290614,97840,72941,6903,8107,390,105
+9,0,l,m,2590630,0,384554,3943868,5113727,265,2565483,0,16,0,0,0,0,192,25331,3472068,17,3543323,14,614050,0
+9,10139,l,nt,13688501,534571,13842,7792,9925,5577,30,67,190051799,27,0,0,5,3,126020,42343,13842,7792,207,167,30,67
+9,0,l,sgt,3066958,0,34678,1643364,7045084
+9,0,l,sst,2443805
diff --git a/tools/powermodel/test-resource/power_profile.xml b/tools/powermodel/test-resource/power_profile.xml
new file mode 100644
index 0000000..8e388ea
--- /dev/null
+++ b/tools/powermodel/test-resource/power_profile.xml
@@ -0,0 +1,170 @@
+<?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.
+-->
+
+<!-- Test power profile that parses correctly. -->
+<device>
+    <item name="battery.capacity">2915</item>
+
+    <!-- Number of cores each CPU cluster contains -->
+    <array name="cpu.clusters.cores">
+        <value>4</value>
+        <value>2</value>
+    </array>
+
+    <!-- Power consumption when CPU is suspended -->
+    <item name="cpu.suspend">1.3</item>
+
+    <!-- Additional power consumption when CPU is in a kernel idle loop -->
+    <item name="cpu.idle">3.9</item>
+
+    <!-- Additional power consumption by CPU excluding cluster and core when
+         running -->
+    <item name="cpu.active">18.33</item>
+
+    <!-- Additional power consumption by CPU cluster0 itself when running
+         excluding cores in it -->
+    <item name="cpu.cluster_power.cluster0">2.41</item>
+
+    <!-- Additional power consumption by CPU cluster1 itself when running
+         excluding cores in it -->
+    <item name="cpu.cluster_power.cluster1">5.29</item>
+
+    <!-- Different CPU speeds as reported in
+         /sys/devices/system/cpu/cpu0/cpufreq/stats/scaling_available_frequencies -->
+    <array name="cpu.core_speeds.cluster0">
+        <value>100000</value>
+        <value>303200</value>
+        <value>380000</value>
+        <value>476000</value>
+        <value>552800</value>
+        <value>648800</value>
+        <value>725600</value>
+        <value>802400</value>
+        <value>879200</value>
+    </array>
+
+    <!-- Different CPU speeds as reported in
+         /sys/devices/system/cpu/cpu4/cpufreq/stats/scaling_available_frequencies -->
+    <array name="cpu.core_speeds.cluster1">
+        <value>825600</value>
+        <value>902400</value>
+        <value>979200</value>
+        <value>1056000</value>
+        <value>1209600</value>
+        <value>1286400</value>
+        <value>1363200</value>
+    </array>
+
+    <!-- Additional power used by a CPU core from cluster 0 when running at
+         different speeds, excluding cluster and active cost -->
+    <array name="cpu.core_power.cluster0">
+        <value>0.29</value>
+        <value>0.63</value>
+        <value>1.23</value>
+        <value>1.24</value>
+        <value>2.47</value>
+        <value>2.54</value>
+        <value>3.60</value>
+        <value>3.64</value>
+        <value>4.42</value>
+    </array>
+
+    <!-- Additional power used by a CPU core from cluster 1 when running at
+         different speeds, excluding cluster and active cost -->
+    <array name="cpu.core_power.cluster1">
+        <value>28.98</value>
+        <value>31.40</value>
+        <value>33.33</value>
+        <value>40.12</value>
+        <value>44.10</value>
+        <value>90.14</value>
+        <value>100</value>
+    </array>
+
+    <!-- Additional power used when screen is ambient mode -->
+    <item name="ambient.on">12</item>
+
+    <!-- Additional power used when screen is turned on at minimum brightness -->
+    <item name="screen.on">102.4</item>
+    <!-- Additional power used when screen is at maximum brightness, compared to
+         screen at minimum brightness -->
+    <item name="screen.full">1234</item>
+
+    <!-- Average power used by the camera flash module when on -->
+    <item name="camera.flashlight">1233.47</item>
+
+    <!-- Average power use by the camera subsystem for a typical camera
+         application. Intended as a rough estimate for an application running a
+         preview and capturing approximately 10 full-resolution pictures per
+         minute. -->
+    <item name="camera.avg">941</item>
+
+    <!-- Additional power used when video is playing -->
+    <item name="video">123</item>
+
+    <!-- Additional power used when audio is playing -->
+    <item name="audio">12</item>
+
+    <!-- Cellular modem related values.-->
+    <item name="modem.controller.sleep">1</item>
+    <item name="modem.controller.idle">44</item>
+    <item name="modem.controller.rx">11</item>
+    <array name="modem.controller.tx"> <!-- Strength 0 to 4 -->
+      <value>16</value>
+      <value>19</value>
+      <value>22</value>
+      <value>73</value>
+      <value>132</value>
+    </array>
+    <item name="modem.controller.voltage">1400</item>
+    <item name="radio.scanning">12</item>
+
+    <!-- GPS related values.-->
+    <item name="gps.on">1</item>
+    <array name="gps.signalqualitybased"> <!-- Strength 0 to 1 -->
+      <value>88</value>
+      <value>07</value>
+    </array>
+    <item name="gps.voltage">1500</item>
+
+    <!-- Idle Receive current for wifi radio in mA.-->
+    <item name="wifi.controller.idle">2</item>
+
+    <!-- Rx current for wifi radio in mA.-->
+    <item name="wifi.controller.rx">123</item>
+
+    <!-- Tx current for wifi radio in mA-->
+    <item name="wifi.controller.tx">333</item>
+
+    <!-- Operating volatage for wifi radio in mV.-->
+    <item name="wifi.controller.voltage">3700</item>
+
+    <!-- Idle current for bluetooth in mA.-->
+    <item name="bluetooth.controller.idle">0.02</item>
+
+    <!-- Rx current for bluetooth in mA.-->
+    <item name="bluetooth.controller.rx">3</item>
+
+    <!-- Tx current for bluetooth in mA-->
+    <item name="bluetooth.controller.tx">5</item>
+
+    <!-- Operating voltage for bluetooth in mV.-->
+    <item name="bluetooth.controller.voltage">3300</item>
+
+</device>
+
+
diff --git a/tools/powermodel/test/com/android/powermodel/BatteryStatsReaderTest.java b/tools/powermodel/test/com/android/powermodel/BatteryStatsReaderTest.java
new file mode 100644
index 0000000..e7b2c37
--- /dev/null
+++ b/tools/powermodel/test/com/android/powermodel/BatteryStatsReaderTest.java
@@ -0,0 +1,80 @@
+/*
+ * 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.powermodel;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import org.junit.Test;
+import org.junit.Assert;
+
+import com.android.powermodel.component.ModemAppActivity;
+import com.android.powermodel.component.ModemGlobalActivity;
+import com.android.powermodel.component.ModemRemainderActivity;
+
+/**
+ * Tests {@link BatteryStatsReader}.
+ */
+public class BatteryStatsReaderTest {
+    private static InputStream loadCsvStream() {
+        return BatteryStatsReaderTest.class.getResourceAsStream("/bs.csv");
+    }
+
+    @Test public void testModemGlobal() throws Exception {
+        final ActivityReport report = BatteryStatsReader.parse(loadCsvStream());
+
+        final AppActivity global = report.findApp(SpecialApp.GLOBAL);
+        Assert.assertNotNull(global);
+
+        final ModemGlobalActivity modem
+                = (ModemGlobalActivity)global.getComponentActivity(Component.MODEM);
+        Assert.assertNotNull(modem);
+        Assert.assertEquals(97840, modem.rxPacketCount);
+        Assert.assertEquals(72941, modem.txPacketCount);
+        Assert.assertEquals(5113727, modem.totalActiveTimeMs);
+    }
+
+    @Test public void testModemApp() throws Exception {
+        final ActivityReport report = BatteryStatsReader.parse(loadCsvStream());
+
+        final List<AppActivity> gmailList = report.findApp("com.google.android.gm");
+        Assert.assertEquals(1, gmailList.size());
+        final AppActivity gmail = gmailList.get(0);
+
+        final ModemAppActivity modem
+                = (ModemAppActivity)gmail.getComponentActivity(Component.MODEM);
+        Assert.assertNotNull(modem);
+        Assert.assertEquals(9925, modem.rxPacketCount);
+        Assert.assertEquals(5577, modem.txPacketCount);
+    }
+
+    @Test public void testModemRemainder() throws Exception {
+        final ActivityReport report = BatteryStatsReader.parse(loadCsvStream());
+
+        final AppActivity remainder = report.findApp(SpecialApp.REMAINDER);
+        Assert.assertNotNull(remainder);
+
+        final ModemRemainderActivity modem
+                = (ModemRemainderActivity)remainder.getComponentActivity(Component.MODEM);
+        Assert.assertNotNull(modem);
+        Assert.assertArrayEquals(new long[] { 3066958, 0, 34678, 1643364, 7045084 },
+                modem.strengthTimeMs);
+        Assert.assertEquals(2443805, modem.scanningTimeMs);
+        Assert.assertEquals(4923676, modem.activeTimeMs);
+    }
+}
diff --git a/tools/powermodel/test/com/android/powermodel/CsvParserTest.java b/tools/powermodel/test/com/android/powermodel/CsvParserTest.java
new file mode 100644
index 0000000..55dde41
--- /dev/null
+++ b/tools/powermodel/test/com/android/powermodel/CsvParserTest.java
@@ -0,0 +1,311 @@
+/*
+ * 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.powermodel;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Tests {@link PowerProfile}
+ */
+public class CsvParserTest {
+
+    class LineCollector implements CsvParser.LineProcessor {
+        ArrayList<ArrayList<String>> results = new ArrayList<ArrayList<String>>();
+
+        @Override
+        public void onLine(int lineNumber, ArrayList<String> fields) {
+            System.out.println(lineNumber);
+            for (String str: fields) {
+                System.out.println("-->" + str + "<--");
+            }
+            results.add(fields);
+        }
+    }
+
+    private void assertEquals(String[][] expected, ArrayList<ArrayList<String>> results) {
+        final String[][] resultArray = new String[results.size()][];
+        for (int i=0; i<results.size(); i++) {
+            final ArrayList<String> list = results.get(i);
+            resultArray[i] = list.toArray(new String[list.size()]);
+        }
+        Assert.assertArrayEquals(expected, resultArray);
+    }
+
+    private String makeString(int length) {
+        final StringBuilder str = new StringBuilder();
+        for (int i=0; i<length; i++) {
+            str.append('a');
+        }
+        return str.toString();
+    }
+
+    @Test public void testEmpty() throws Exception {
+        final String text = "";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                }, collector.results);
+    }
+
+    @Test public void testOnlyNewline() throws Exception {
+        final String text = "\n";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                }, collector.results);
+    }
+
+    @Test public void testTwoLines() throws Exception {
+        final String text = "one,twoo,3\nfour,5,six\n";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "one", "twoo", "3", },
+                    { "four", "5", "six", },
+                }, collector.results);
+    }
+
+    
+    @Test public void testEscapedEmpty() throws Exception {
+        final String text = "\"\",\"\",\"\"\n";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "", "", "", },
+                }, collector.results);
+    }
+
+    @Test public void testEscapedText() throws Exception {
+        final String text = "\"one\",\"twoo\",\"3\"\n";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "one", "twoo", "3", },
+                }, collector.results);
+    }
+
+    @Test public void testEscapedQuotes() throws Exception {
+        final String text = "\"\"\"\",\"\"\"\"\"\",\"\"\"\"\n";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "\"", "\"\"", "\"", },
+                }, collector.results);
+    }
+
+    @Test public void testEscapedCommas() throws Exception {
+        final String text = "\",\",\",\",\",\"\n";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { ",", ",", ",", },
+                }, collector.results);
+    }
+
+    @Test public void testEscapedQuotesAndCommas() throws Exception {
+        final String text = "\"\"\",\",\"\"\",\",\"\"\",\"\n";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "\",", "\",", "\",", },
+                }, collector.results);
+    }
+
+    @Test public void testNoNewline() throws Exception {
+        final String text = "a,b,c";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "a", "b", "c", }
+                }, collector.results);
+    }
+
+    @Test public void testNoNewlineWithCommas() throws Exception {
+        final String text = "a,b,,";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "a", "b", "", "" }
+                }, collector.results);
+    }
+
+    @Test public void testNoNewlineWithQuote() throws Exception {
+        final String text = "a,b,\",\"";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "a", "b", "," }
+                }, collector.results);
+    }
+
+    @Test public void testNoCommas() throws Exception {
+        final String text = "aasdfadfadfad";
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { "aasdfadfadfad", }
+                }, collector.results);
+    }
+
+    @Test public void testMaxLength() throws Exception {
+        final String text = makeString(CsvParser.MAX_FIELD_SIZE);
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { text, }
+                }, collector.results);
+    }
+
+    @Test public void testMaxLengthTwice() throws Exception {
+        String big = makeString(CsvParser.MAX_FIELD_SIZE);
+        final String text = big + "," + big;
+        System.out.println("Test: [" + text + "]");
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { big, big, }
+                }, collector.results);
+    }
+
+    @Test public void testTooLong() throws Exception {
+        final String text = makeString(CsvParser.MAX_FIELD_SIZE+1);
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        try {
+            CsvParser.parse(is, collector);
+            throw new RuntimeException("Expected CsvParser.parse to throw ParseException");
+        } catch (ParseException ex) {
+            // good
+        }
+    }
+
+    @Test public void testBufferBoundary() throws Exception {
+        final String big = makeString(CsvParser.MAX_FIELD_SIZE-3);
+        final String text = big + ",b,c,d,e,f,g";
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { big, "b", "c", "d", "e", "f", "g", }
+                }, collector.results);
+    }
+
+    @Test public void testBufferBoundaryEmpty() throws Exception {
+        final String big = makeString(CsvParser.MAX_FIELD_SIZE-3);
+        final String text = big + ",,,,,,";
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { big, "", "", "", "", "", "", }
+                }, collector.results);
+    }
+
+    // Checks that the escaping and sawQuote behavior is correct at the buffer boundary
+    @Test public void testBufferBoundaryEscapingEven() throws Exception {
+        final String big = makeString(CsvParser.MAX_FIELD_SIZE-2);
+        final String text = big + ",\"\"\"\"\"\"\"\"\"\"\"\"," + big;
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { big, "\"\"\"\"\"", big }
+                }, collector.results);
+    }
+
+    // Checks that the escaping and sawQuote behavior is correct at the buffer boundary
+    @Test public void testBufferBoundaryEscapingOdd() throws Exception {
+        final String big = makeString(CsvParser.MAX_FIELD_SIZE-3);
+        final String text = big + ",\"\"\"\"\"\"\"\"\"\"\"\"," + big;
+        final InputStream is = new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+        LineCollector collector = new LineCollector();
+
+        CsvParser.parse(is, collector);
+
+        assertEquals(new String[][] {
+                    { big, "\"\"\"\"\"", big }
+                }, collector.results);
+    }
+
+}
diff --git a/tools/powermodel/test/com/android/powermodel/PowerProfileTest.java b/tools/powermodel/test/com/android/powermodel/PowerProfileTest.java
new file mode 100644
index 0000000..ab45831
--- /dev/null
+++ b/tools/powermodel/test/com/android/powermodel/PowerProfileTest.java
@@ -0,0 +1,159 @@
+/*
+ * 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.powermodel;
+
+import java.io.InputStream;
+
+import com.android.powermodel.component.CpuProfile;
+import com.android.powermodel.component.AudioProfile;
+import com.android.powermodel.component.BluetoothProfile;
+import com.android.powermodel.component.CameraProfile;
+import com.android.powermodel.component.FlashlightProfile;
+import com.android.powermodel.component.GpsProfile;
+import com.android.powermodel.component.ModemProfile;
+import com.android.powermodel.component.ScreenProfile;
+import com.android.powermodel.component.VideoProfile;
+import com.android.powermodel.component.WifiProfile;
+import org.junit.Assert;
+import org.junit.Test;
+
+/*
+ * Additional tests needed:
+ *   - CPU clusters with mismatching counts of speeds and coefficients
+ *   - Extra fields
+ *   - Name listed twice
+ */
+
+/**
+ * Tests {@link PowerProfile}
+ */
+public class PowerProfileTest {
+    private static final float EPSILON = 0.00001f;
+
+    private static InputStream loadPowerProfileStream() {
+        return PowerProfileTest.class.getResourceAsStream("/power_profile.xml");
+    }
+
+    @Test public void testReadGood() throws Exception {
+        final InputStream is = loadPowerProfileStream();
+
+        final PowerProfile profile = PowerProfile.parse(is);
+
+        // Audio
+        final AudioProfile audio = (AudioProfile)profile.getComponent(Component.AUDIO);
+        Assert.assertEquals(12.0f, audio.onMa, EPSILON);
+
+        // Bluetooth
+        final BluetoothProfile bluetooth
+                = (BluetoothProfile)profile.getComponent(Component.BLUETOOTH);
+        Assert.assertEquals(0.02f, bluetooth.idleMa, EPSILON);
+        Assert.assertEquals(3.0f, bluetooth.rxMa, EPSILON);
+        Assert.assertEquals(5.0f, bluetooth.txMa, EPSILON);
+
+        // Camera
+        final CameraProfile camera = (CameraProfile)profile.getComponent(Component.CAMERA);
+        Assert.assertEquals(941.0f, camera.onMa, EPSILON);
+
+        // CPU
+        final CpuProfile cpu = (CpuProfile)profile.getComponent(Component.CPU);
+        Assert.assertEquals(1.3f, cpu.suspendMa, EPSILON);
+        Assert.assertEquals(3.9f, cpu.idleMa, EPSILON);
+        Assert.assertEquals(18.33f, cpu.activeMa, EPSILON);
+        Assert.assertEquals(2, cpu.clusters.length);
+        // Cluster 0
+        Assert.assertEquals(4, cpu.clusters[0].coreCount);
+        Assert.assertEquals(2.41f, cpu.clusters[0].onMa, EPSILON);
+        Assert.assertEquals(9, cpu.clusters[0].frequencies.length, EPSILON);
+        Assert.assertEquals(100000, cpu.clusters[0].frequencies[0].speedHz);
+        Assert.assertEquals(0.29f, cpu.clusters[0].frequencies[0].onMa, EPSILON);
+        Assert.assertEquals(303200, cpu.clusters[0].frequencies[1].speedHz);
+        Assert.assertEquals(0.63f, cpu.clusters[0].frequencies[1].onMa, EPSILON);
+        Assert.assertEquals(380000, cpu.clusters[0].frequencies[2].speedHz);
+        Assert.assertEquals(1.23f, cpu.clusters[0].frequencies[2].onMa, EPSILON);
+        Assert.assertEquals(476000, cpu.clusters[0].frequencies[3].speedHz);
+        Assert.assertEquals(1.24f, cpu.clusters[0].frequencies[3].onMa, EPSILON);
+        Assert.assertEquals(552800, cpu.clusters[0].frequencies[4].speedHz);
+        Assert.assertEquals(2.47f, cpu.clusters[0].frequencies[4].onMa, EPSILON);
+        Assert.assertEquals(648800, cpu.clusters[0].frequencies[5].speedHz);
+        Assert.assertEquals(2.54f, cpu.clusters[0].frequencies[5].onMa, EPSILON);
+        Assert.assertEquals(725600, cpu.clusters[0].frequencies[6].speedHz);
+        Assert.assertEquals(3.60f, cpu.clusters[0].frequencies[6].onMa, EPSILON);
+        Assert.assertEquals(802400, cpu.clusters[0].frequencies[7].speedHz);
+        Assert.assertEquals(3.64f, cpu.clusters[0].frequencies[7].onMa, EPSILON);
+        Assert.assertEquals(879200, cpu.clusters[0].frequencies[8].speedHz);
+        Assert.assertEquals(4.42f, cpu.clusters[0].frequencies[8].onMa, EPSILON);
+        // Cluster 1
+        Assert.assertEquals(2, cpu.clusters[1].coreCount);
+        Assert.assertEquals(5.29f, cpu.clusters[1].onMa, EPSILON);
+        Assert.assertEquals(7, cpu.clusters[1].frequencies.length, EPSILON);
+        Assert.assertEquals(825600, cpu.clusters[1].frequencies[0].speedHz);
+        Assert.assertEquals(28.98f, cpu.clusters[1].frequencies[0].onMa, EPSILON);
+        Assert.assertEquals(902400, cpu.clusters[1].frequencies[1].speedHz);
+        Assert.assertEquals(31.40f, cpu.clusters[1].frequencies[1].onMa, EPSILON);
+        Assert.assertEquals(979200, cpu.clusters[1].frequencies[2].speedHz);
+        Assert.assertEquals(33.33f, cpu.clusters[1].frequencies[2].onMa, EPSILON);
+        Assert.assertEquals(1056000, cpu.clusters[1].frequencies[3].speedHz);
+        Assert.assertEquals(40.12f, cpu.clusters[1].frequencies[3].onMa, EPSILON);
+        Assert.assertEquals(1209600, cpu.clusters[1].frequencies[4].speedHz);
+        Assert.assertEquals(44.10f, cpu.clusters[1].frequencies[4].onMa, EPSILON);
+        Assert.assertEquals(1286400, cpu.clusters[1].frequencies[5].speedHz);
+        Assert.assertEquals(90.14f, cpu.clusters[1].frequencies[5].onMa, EPSILON);
+        Assert.assertEquals(1363200, cpu.clusters[1].frequencies[6].speedHz);
+        Assert.assertEquals(100f, cpu.clusters[1].frequencies[6].onMa, EPSILON);
+
+        // Flashlight
+        final FlashlightProfile flashlight
+                = (FlashlightProfile)profile.getComponent(Component.FLASHLIGHT);
+        Assert.assertEquals(1233.47f, flashlight.onMa, EPSILON);
+
+        // GPS
+        final GpsProfile gps = (GpsProfile)profile.getComponent(Component.GPS);
+        Assert.assertEquals(1.0f, gps.onMa, EPSILON);
+        Assert.assertEquals(2, gps.signalQualityMa.length);
+        Assert.assertEquals(88.0f, gps.signalQualityMa[0], EPSILON);
+        Assert.assertEquals(7.0f, gps.signalQualityMa[1], EPSILON);
+
+        // Modem
+        final ModemProfile modem = (ModemProfile)profile.getComponent(Component.MODEM);
+        Assert.assertEquals(1.0f, modem.sleepMa, EPSILON);
+        Assert.assertEquals(44.0f, modem.idleMa, EPSILON);
+        Assert.assertEquals(12.0f, modem.scanningMa, EPSILON);
+        Assert.assertEquals(11.0f, modem.rxMa, EPSILON);
+        Assert.assertEquals(5, modem.txMa.length);
+        Assert.assertEquals(16.0f, modem.txMa[0], EPSILON);
+        Assert.assertEquals(19.0f, modem.txMa[1], EPSILON);
+        Assert.assertEquals(22.0f, modem.txMa[2], EPSILON);
+        Assert.assertEquals(73.0f, modem.txMa[3], EPSILON);
+        Assert.assertEquals(132.0f, modem.txMa[4], EPSILON);
+
+        // Screen
+        final ScreenProfile screen = (ScreenProfile)profile.getComponent(Component.SCREEN);
+        Assert.assertEquals(102.4f, screen.onMa, EPSILON);
+        Assert.assertEquals(1234.0f, screen.fullMa, EPSILON);
+        Assert.assertEquals(12.0f, screen.ambientMa, EPSILON);
+
+        // Video
+        final VideoProfile video = (VideoProfile)profile.getComponent(Component.VIDEO);
+        Assert.assertEquals(123.0f, video.onMa, EPSILON);
+
+        // Wifi
+        final WifiProfile wifi = (WifiProfile)profile.getComponent(Component.WIFI);
+        Assert.assertEquals(2.0f, wifi.idleMa, EPSILON);
+        Assert.assertEquals(123.0f, wifi.rxMa, EPSILON);
+        Assert.assertEquals(333.0f, wifi.txMa, EPSILON);
+    }
+}
diff --git a/tools/powermodel/test/com/android/powermodel/PowerReportTest.java b/tools/powermodel/test/com/android/powermodel/PowerReportTest.java
new file mode 100644
index 0000000..1a61737
--- /dev/null
+++ b/tools/powermodel/test/com/android/powermodel/PowerReportTest.java
@@ -0,0 +1,128 @@
+/*
+ * 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.powermodel;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import org.junit.Test;
+import org.junit.Assert;
+
+import com.android.powermodel.component.ModemAppPower;
+import com.android.powermodel.component.ModemRemainderPower;
+
+/**
+ * Tests {@link PowerReport}.
+ */
+public class PowerReportTest {
+    private static final double EPSILON = 0.001;
+    private static final double MS_PER_HR = 3600000.0;
+
+    private static final double AVERAGE_MODEM_POWER = ((11+16+19+22+73+132) / 6.0);
+    private static final double GMAIL_MODEM_MAH = ((9925+5577) / (double)(97840+72941))
+            * 5113727 * AVERAGE_MODEM_POWER * (1.0 / 3600 / 1000);
+    private static final double GMAIL_MAH
+            = GMAIL_MODEM_MAH;
+
+    private static final double REMAINDER_MODEM_MAH
+            =  (1.0 / 3600 / 1000)
+            * ((3066958 * 16) + (0 * 19) + (34678 * 22) + (1643364 * 73) + (7045084 * 132)
+                + (2443805 * 12)
+                + (4923676 * AVERAGE_MODEM_POWER));
+    private static final double REMAINDER_MAH
+            = REMAINDER_MODEM_MAH;
+
+    private static final double TOTAL_MAH
+            = GMAIL_MAH
+            + REMAINDER_MAH;
+
+    private static InputStream loadPowerProfileStream() {
+        return PowerProfileTest.class.getResourceAsStream("/power_profile.xml");
+    }
+
+    private static InputStream loadCsvStream() {
+        return BatteryStatsReaderTest.class.getResourceAsStream("/bs.csv");
+    }
+
+    private static PowerReport loadPowerReport() throws Exception {
+        final PowerProfile profile = PowerProfile.parse(loadPowerProfileStream());
+        final ActivityReport activity = BatteryStatsReader.parse(loadCsvStream());
+        return PowerReport.createReport(profile, activity);
+    }
+
+    @Test public void testModemApp() throws Exception {
+        final PowerReport report = loadPowerReport();
+
+        final List<AppPower> gmailList = report.findApp("com.google.android.gm");
+        Assert.assertEquals(1, gmailList.size());
+        final AppPower gmail = gmailList.get(0);
+
+        final ModemAppPower modem = (ModemAppPower)gmail.getComponentPower(Component.MODEM);
+        Assert.assertNotNull(modem);
+        Assert.assertEquals(GMAIL_MODEM_MAH, modem.powerMah, EPSILON);
+    }
+
+    @Test public void testModemRemainder() throws Exception {
+        final PowerReport report = loadPowerReport();
+
+        final AppPower remainder = report.findApp(SpecialApp.REMAINDER);
+        Assert.assertNotNull(remainder);
+
+        final ModemRemainderPower modem
+                = (ModemRemainderPower)remainder.getComponentPower(Component.MODEM);
+        Assert.assertNotNull(modem);
+
+        Assert.assertArrayEquals(new double[] {
+                    3066958 * 16.0 / MS_PER_HR,
+                    0 * 19.0 / MS_PER_HR,
+                    34678 * 22.0 / MS_PER_HR,
+                    1643364 * 73.0 / MS_PER_HR,
+                    7045084 * 132.0 / MS_PER_HR },
+                modem.strengthMah, EPSILON);
+        Assert.assertEquals(2443805 * 12 / MS_PER_HR, modem.scanningMah, EPSILON);
+        Assert.assertEquals(4923676 * AVERAGE_MODEM_POWER / MS_PER_HR, modem.activeMah, EPSILON);
+
+        Assert.assertEquals(REMAINDER_MODEM_MAH, modem.powerMah, EPSILON);
+    }
+
+    @Test public void testAppTotal() throws Exception {
+        final PowerReport report = loadPowerReport();
+
+        final List<AppPower> gmailList = report.findApp("com.google.android.gm");
+        Assert.assertEquals(1, gmailList.size());
+        final AppPower gmail = gmailList.get(0);
+
+        Assert.assertEquals(GMAIL_MAH, gmail.getAppPowerMah(), EPSILON);
+    }
+
+    @Test public void testRemainderTotal() throws Exception {
+        final PowerReport report = loadPowerReport();
+
+        final AppPower remainder = report.findApp(SpecialApp.REMAINDER);
+        Assert.assertNotNull(remainder);
+
+        Assert.assertEquals(REMAINDER_MAH, remainder.getAppPowerMah(), EPSILON);
+    }
+
+    @Test public void testTotal() throws Exception {
+        final PowerReport report = loadPowerReport();
+
+        Assert.assertEquals(TOTAL_MAH, report.getTotalPowerMah(), EPSILON);
+    }
+}
+
diff --git a/tools/powermodel/test/com/android/powermodel/RawBatteryStatsTest.java b/tools/powermodel/test/com/android/powermodel/RawBatteryStatsTest.java
new file mode 100644
index 0000000..fbcac41
--- /dev/null
+++ b/tools/powermodel/test/com/android/powermodel/RawBatteryStatsTest.java
@@ -0,0 +1,96 @@
+/*
+ * 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.powermodel;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import org.junit.Test;
+import org.junit.Assert;
+
+/**
+ * Tests {@link RawBatteryStats}.
+ */
+public class RawBatteryStatsTest {
+    private static final int BS_VERSION = 32;
+
+    private static InputStream makeCsv(String... lines) {
+        return makeCsv(BS_VERSION, lines);
+    }
+
+    private static InputStream makeCsv(int version, String... lines) {
+        final StringBuilder result = new StringBuilder("9,0,i,vers,");
+        result.append(version);
+        result.append(",177,PPR1.180326.002,PQ1A.181105.015\n");
+        for (String line: lines) {
+            result.append(line);
+            result.append('\n');
+        }
+        return new ByteArrayInputStream(result.toString().getBytes(StandardCharsets.UTF_8));
+    }
+
+    @Test public void testVersion() throws Exception {
+        final InputStream is = makeCsv();
+
+        final RawBatteryStats bs = RawBatteryStats.parse(is);
+        final List<RawBatteryStats.Record> records = bs.getRecords();
+        final RawBatteryStats.Version line = (RawBatteryStats.Version)records.get(0);
+
+        Assert.assertEquals(0, bs.getWarnings().size());
+        Assert.assertEquals(true, line.complete);
+
+        Assert.assertEquals(9, line.lineVersion);
+        Assert.assertEquals(0, line.uid);
+        Assert.assertEquals(RawBatteryStats.Category.INFO, line.category);
+        Assert.assertEquals("vers", line.lineType);
+
+        Assert.assertEquals(BS_VERSION, line.dumpsysVersion);
+        Assert.assertEquals(177, line.parcelVersion);
+        Assert.assertEquals("PPR1.180326.002", line.startPlatformVersion);
+        Assert.assertEquals("PQ1A.181105.015", line.endPlatformVersion);
+    }
+
+    @Test public void testUid() throws Exception {
+        final InputStream is = makeCsv("9,0,i,uid,1000,com.example.app");
+
+        final RawBatteryStats bs = RawBatteryStats.parse(is);
+        final List<RawBatteryStats.Record> records = bs.getRecords();
+        final RawBatteryStats.Uid line = (RawBatteryStats.Uid)records.get(1);
+
+        Assert.assertEquals(1000, line.uidKey);
+        Assert.assertEquals("com.example.app", line.pkg);
+    }
+
+    @Test public void testVarargs() throws Exception {
+        final InputStream is = makeCsv("9,0,i,gmcd,1,2,3,4,5,6,7");
+
+        final RawBatteryStats bs = RawBatteryStats.parse(is);
+        final List<RawBatteryStats.Record> records = bs.getRecords();
+        final RawBatteryStats.GlobalModemController line
+                = (RawBatteryStats.GlobalModemController)records.get(1);
+
+        Assert.assertEquals(1, line.idleMs);
+        Assert.assertEquals(2, line.rxTimeMs);
+        Assert.assertEquals(3, line.powerMaMs);
+        Assert.assertEquals(4, line.txTimeMs.length);
+        Assert.assertEquals(4, line.txTimeMs[0]);
+        Assert.assertEquals(5, line.txTimeMs[1]);
+        Assert.assertEquals(6, line.txTimeMs[2]);
+        Assert.assertEquals(7, line.txTimeMs[3]);
+    }
+}
diff --git a/tools/processors/unsupportedappusage/src/android/processor/unsupportedappusage/UnsupportedAppUsageProcessor.java b/tools/processors/unsupportedappusage/src/android/processor/unsupportedappusage/UnsupportedAppUsageProcessor.java
index 1d4c435..d368136 100644
--- a/tools/processors/unsupportedappusage/src/android/processor/unsupportedappusage/UnsupportedAppUsageProcessor.java
+++ b/tools/processors/unsupportedappusage/src/android/processor/unsupportedappusage/UnsupportedAppUsageProcessor.java
@@ -28,6 +28,7 @@
 
 import java.io.IOException;
 import java.io.PrintStream;
+import java.net.URLEncoder;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
@@ -38,7 +39,9 @@
 import javax.annotation.processing.SupportedAnnotationTypes;
 import javax.lang.model.SourceVersion;
 import javax.lang.model.element.AnnotationMirror;
+import javax.lang.model.element.AnnotationValue;
 import javax.lang.model.element.Element;
+import javax.lang.model.element.ExecutableElement;
 import javax.lang.model.element.TypeElement;
 
 /**
@@ -108,10 +111,25 @@
                 "startline",
                 "startcol",
                 "endline",
-                "endcol"
+                "endcol",
+                "properties"
         );
     }
 
+    private String encodeAnnotationProperties(AnnotationMirror annotation) {
+        StringBuilder sb = new StringBuilder();
+        for (Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> e
+                : annotation.getElementValues().entrySet()) {
+            if (sb.length() > 0) {
+                sb.append("&");
+            }
+            sb.append(e.getKey().getSimpleName())
+                    .append("=")
+                    .append(URLEncoder.encode(e.getValue().toString()));
+        }
+        return sb.toString();
+    }
+
     /**
      * Maps an annotated element to the source position of the @UnsupportedAppUsage annotation
      * attached to it. It returns CSV in the format:
@@ -137,7 +155,8 @@
                 lines.getLineNumber(pair.fst.pos().getStartPosition()),
                 lines.getColumnNumber(pair.fst.pos().getStartPosition()),
                 lines.getLineNumber(pair.fst.pos().getEndPosition(pair.snd.endPositions)),
-                lines.getColumnNumber(pair.fst.pos().getEndPosition(pair.snd.endPositions)));
+                lines.getColumnNumber(pair.fst.pos().getEndPosition(pair.snd.endPositions)),
+                encodeAnnotationProperties(unsupportedAppUsage));
     }
 
     /**
diff --git a/tools/stats_log_api_gen/main.cpp b/tools/stats_log_api_gen/main.cpp
index 8585ae9..88b7e2e 100644
--- a/tools/stats_log_api_gen/main.cpp
+++ b/tools/stats_log_api_gen/main.cpp
@@ -1128,7 +1128,10 @@
                 hadStringOrChain = true;
                 fprintf(out, "    jbyte* jbyte_array%d;\n", argIndex);
                 fprintf(out, "    const char* str%d;\n", argIndex);
-                fprintf(out, "    if (arg%d != NULL) {\n", argIndex);
+                fprintf(out,
+                        "    if (arg%d != NULL && env->GetArrayLength(arg%d) > "
+                        "0) {\n",
+                        argIndex, argIndex);
                 fprintf(out,
                         "        jbyte_array%d = "
                         "env->GetByteArrayElements(arg%d, NULL);\n",
diff --git a/tools/stringslint/stringslint.py b/tools/stringslint/stringslint.py
index 03c0b9a..afe91cd 100644
--- a/tools/stringslint/stringslint.py
+++ b/tools/stringslint/stringslint.py
@@ -145,6 +145,13 @@
             if "translatable" in child.attrib and child.attrib["translatable"].lower() == "false":
                 continue
 
+            misspelled_attributes = [
+              ("translateable", "translatable"),
+            ]
+            for misspelling, expected in misspelled_attributes:
+                if misspelling in child.attrib:
+                    error(child, "Misspelled <string> attribute.", misspelling, expected)
+
             limit = re.search("CHAR[ _-]LIMIT=(\d+|NONE|none)", comment.text)
             if limit is None:
                 info(child, "Missing CHAR LIMIT to aid translation",
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl
index 3ec8a41..c6acd02 100644
--- a/wifi/java/android/net/wifi/IWifiManager.aidl
+++ b/wifi/java/android/net/wifi/IWifiManager.aidl
@@ -58,7 +58,7 @@
      */
     oneway void requestActivityInfo(in ResultReceiver result);
 
-    ParceledListSlice getConfiguredNetworks();
+    ParceledListSlice getConfiguredNetworks(String packageName);
 
     ParceledListSlice getPrivilegedConfiguredNetworks();
 
@@ -90,11 +90,11 @@
 
     List<ScanResult> getScanResults(String callingPackage);
 
-    void disconnect(String packageName);
+    boolean disconnect(String packageName);
 
-    void reconnect(String packageName);
+    boolean reconnect(String packageName);
 
-    void reassociate(String packageName);
+    boolean reassociate(String packageName);
 
     WifiInfo getConnectionInfo(String callingPackage);
 
@@ -190,8 +190,8 @@
 
     void unregisterNetworkRequestMatchCallback(int callbackIdentifier);
 
-    boolean addNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName);
+    int addNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName);
 
-    boolean removeNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName);
+    int removeNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName);
 }
 
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 7aff03c..8e0d4ac 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -25,6 +25,7 @@
 import android.annotation.SystemApi;
 import android.annotation.SystemService;
 import android.annotation.UnsupportedAppUsage;
+import android.app.ActivityManager;
 import android.content.Context;
 import android.content.pm.ParceledListSlice;
 import android.net.ConnectivityManager;
@@ -137,6 +138,55 @@
     public static final int ERROR_AUTH_FAILURE_EAP_FAILURE = 3;
 
     /**
+     * Maximum number of active network suggestions allowed per app.
+     * @hide
+     */
+    public static final int NETWORK_SUGGESTIONS_MAX_PER_APP =
+            ActivityManager.isLowRamDeviceStatic() ? 256 : 1024;
+
+    /**
+     * Reason code if all of the network suggestions were successfully added or removed.
+     */
+    public static final int STATUS_NETWORK_SUGGESTIONS_SUCCESS = 0;
+
+    /**
+     * Reason code if there was an internal error in the platform while processing the addition or
+     * removal of suggestions.
+     */
+    public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL = 1;
+
+    /**
+     * Reason code if one or more of the network suggestions added already exists in platform's
+     * database.
+     * @see WifiNetworkSuggestion#equals(Object)
+     */
+    public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_DUPLICATE = 2;
+
+    /**
+     * Reason code if the number of network suggestions provided by the app crosses the max
+     * threshold set per app.
+     * @see #getMaxNumberOfNetworkSuggestionsPerApp()
+     */
+    public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_EXCEEDS_MAX_PER_APP = 3;
+
+    /**
+     * Reason code if one or more of the network suggestions removed does not exist in platform's
+     * database.
+     */
+    public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_REMOVE_INVALID = 4;
+
+    @IntDef(prefix = { "STATUS_NETWORK_SUGGESTIONS_" }, value = {
+            STATUS_NETWORK_SUGGESTIONS_SUCCESS,
+            STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL,
+            STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_DUPLICATE,
+            STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_EXCEEDS_MAX_PER_APP,
+            STATUS_NETWORK_SUGGESTIONS_ERROR_REMOVE_INVALID,
+    })
+
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface NetworkSuggestionsStatusCode {}
+
+    /**
      * Broadcast intent action indicating whether Wi-Fi scanning is allowed currently
      * @hide
      */
@@ -903,8 +953,12 @@
      * establish a connection to a remembered access point that is
      * within range, and will do periodic scans if there are remembered
      * access points but none are in range.
+     *
+     * @deprecated This API is non-functional and will have no impact.
      */
+    @Deprecated
     public static final int WIFI_MODE_FULL = 1;
+
     /**
      * In this Wi-Fi lock mode, Wi-Fi will be kept active,
      * but the only operation that will be supported is initiation of
@@ -913,28 +967,62 @@
      * nor will periodic scans be automatically performed looking for
      * remembered access points. Scans must be explicitly requested by
      * an application in this mode.
+     *
+     * @deprecated This API is non-functional and will have no impact.
      */
+    @Deprecated
     public static final int WIFI_MODE_SCAN_ONLY = 2;
+
     /**
-     * In this Wi-Fi lock mode, Wi-Fi will be kept active as in mode
-     * {@link #WIFI_MODE_FULL} but it operates at high performance
-     * with minimum packet loss and low packet latency even when
-     * the device screen is off. This mode will consume more power
-     * and hence should be used only when there is a need for such
-     * an active connection.
+     * In this Wi-Fi lock mode, Wi-Fi will not go to power save.
+     * This results in operating with low packet latency.
+     * The lock is active  even when the device screen is off or
+     * the acquiring application is running in the background.
+     * This mode will consume more power and hence should be used only
+     * when there is a need for this tradeoff.
      * <p>
      * An example use case is when a voice connection needs to be
-     * kept active even after the device screen goes off. Holding the
-     * regular {@link #WIFI_MODE_FULL} lock will keep the wifi
-     * connection active, but the connection can be lossy.
+     * kept active even after the device screen goes off.
      * Holding a {@link #WIFI_MODE_FULL_HIGH_PERF} lock for the
-     * duration of the voice call will improve the call quality.
+     * duration of the voice call may improve the call quality.
      * <p>
-     * When there is no support from the hardware, this lock mode
-     * will have the same behavior as {@link #WIFI_MODE_FULL}
+     * When there is no support from the hardware, the {@link #WIFI_MODE_FULL_HIGH_PERF}
+     * lock will have no impact.
      */
     public static final int WIFI_MODE_FULL_HIGH_PERF = 3;
 
+    /**
+     * In this Wi-Fi lock mode, Wi-Fi will operate with a priority to achieve low latency.
+     * {@link #WIFI_MODE_FULL_LOW_LATENCY} lock has the following limitations:
+     * <ol>
+     * <li>The lock is only active when the screen is on.</li>
+     * <li>The lock is only active when the acquiring app is running in the foreground.</li>
+     * </ol>
+     * Low latency mode optimizes for reduced packet latency,
+     * and as a result other performance measures may suffer when there are trade-offs to make:
+     * <ol>
+     * <li>Battery life may be reduced.</li>
+     * <li>Throughput may be reduced.</li>
+     * <li>Frequency of Wi-Fi scanning may be reduced. This may result in: </li>
+     * <ul>
+     * <li>The device may not roam or switch to the AP with highest signal quality.</li>
+     * <li>Location accuracy may be reduced.</li>
+     * </ul>
+     * </ol>
+     * <p>
+     * Example use cases are real time gaming or virtual reality applications where
+     * low latency is a key factor for user experience.
+     * <p>
+     * When there is no support from the hardware, the {@link #WIFI_MODE_FULL_LOW_LATENCY}
+     * lock will cause the device not to go power save.
+     * <p>
+     * Note: For an app which acquires both {@link #WIFI_MODE_FULL_LOW_LATENCY} and
+     * {@link #WIFI_MODE_FULL_HIGH_PERF} locks, {@link #WIFI_MODE_FULL_LOW_LATENCY}
+     * lock will be effective when app is running in foreground and screen is on,
+     * while the {@link #WIFI_MODE_FULL_HIGH_PERF} lock will take effect otherwise.
+     */
+    public static final int WIFI_MODE_FULL_LOW_LATENCY = 4;
+
     /** Anything worse than or equal to this will show 0 bars. */
     @UnsupportedAppUsage
     private static final int MIN_RSSI = -100;
@@ -1067,7 +1155,7 @@
     public List<WifiConfiguration> getConfiguredNetworks() {
         try {
             ParceledListSlice<WifiConfiguration> parceledList =
-                mService.getConfiguredNetworks();
+                    mService.getConfiguredNetworks(mContext.getOpPackageName());
             if (parceledList == null) {
                 return Collections.emptyList();
             }
@@ -1126,7 +1214,6 @@
      * @throws UnsupportedOperationException if Passpoint is not enabled on the device.
      * @hide
      */
-    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
     public List<OsuProvider> getMatchingOsuProviders(List<ScanResult> scanResults) {
         try {
@@ -1497,12 +1584,13 @@
      * suggestion back using this API.</li>
      *
      * @param networkSuggestions List of network suggestions provided by the app.
-     * @return true on success, false if any of the suggestions match (See
+     * @return Status code corresponding to the values in {@link NetworkSuggestionsStatusCode}.
      * {@link WifiNetworkSuggestion#equals(Object)} any previously provided suggestions by the app.
      * @throws {@link SecurityException} if the caller is missing required permissions.
      */
     @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE)
-    public boolean addNetworkSuggestions(@NonNull List<WifiNetworkSuggestion> networkSuggestions) {
+    public @NetworkSuggestionsStatusCode int addNetworkSuggestions(
+            @NonNull List<WifiNetworkSuggestion> networkSuggestions) {
         try {
             return mService.addNetworkSuggestions(networkSuggestions, mContext.getOpPackageName());
         } catch (RemoteException e) {
@@ -1510,21 +1598,20 @@
         }
     }
 
-
     /**
-     * Remove a subset of or all of networks from previously provided suggestions by the app to the
-     * device.
+     * Remove some or all of the network suggestions that were previously provided by the app.
      * See {@link WifiNetworkSuggestion} for a detailed explanation of the parameters.
      * See {@link WifiNetworkSuggestion#equals(Object)} for the equivalence evaluation used.
      *
      * @param networkSuggestions List of network suggestions to be removed. Pass an empty list
      *                           to remove all the previous suggestions provided by the app.
-     * @return true on success, false if any of the suggestions do not match any suggestions
-     * previously provided by the app. Any matching suggestions are removed from the device and
-     * will not be considered for any further connection attempts.
+     * @return Status code corresponding to the values in
+     * {@link NetworkSuggestionsStatusCode}.
+     * Any matching suggestions are removed from the device and will not be considered for any
+     * further connection attempts.
      */
     @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE)
-    public boolean removeNetworkSuggestions(
+    public @NetworkSuggestionsStatusCode int removeNetworkSuggestions(
             @NonNull List<WifiNetworkSuggestion> networkSuggestions) {
         try {
             return mService.removeNetworkSuggestions(
@@ -1535,6 +1622,15 @@
     }
 
     /**
+     * Returns the max number of network suggestions that are allowed per app on the device.
+     * @see #addNetworkSuggestions(List)
+     * @see #removeNetworkSuggestions(List)
+     */
+    public int getMaxNumberOfNetworkSuggestionsPerApp() {
+        return NETWORK_SUGGESTIONS_MAX_PER_APP;
+    }
+
+    /**
      * Add or update a Passpoint configuration.  The configuration provides a credential
      * for connecting to Passpoint networks that are operated by the Passpoint
      * service provider specified in the configuration.
@@ -1761,8 +1857,7 @@
     @Deprecated
     public boolean disconnect() {
         try {
-            mService.disconnect(mContext.getOpPackageName());
-            return true;
+            return mService.disconnect(mContext.getOpPackageName());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -1786,8 +1881,7 @@
     @Deprecated
     public boolean reconnect() {
         try {
-            mService.reconnect(mContext.getOpPackageName());
-            return true;
+            return mService.reconnect(mContext.getOpPackageName());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -1811,8 +1905,7 @@
     @Deprecated
     public boolean reassociate() {
         try {
-            mService.reassociate(mContext.getOpPackageName());
-            return true;
+            return mService.reassociate(mContext.getOpPackageName());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -2132,14 +2225,14 @@
      * existing networks. You should assume the network IDs can be different
      * after calling this method.
      *
-     * @return {@code false} Will always return true.
+     * @return {@code false}.
      * @deprecated There is no need to call this method -
      * {@link #addNetwork(WifiConfiguration)}, {@link #updateNetwork(WifiConfiguration)}
      * and {@link #removeNetwork(int)} already persist the configurations automatically.
      */
     @Deprecated
     public boolean saveConfiguration() {
-        return true;
+        return false;
     }
 
     /**
@@ -3406,6 +3499,11 @@
      * @hide
      */
     @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_SETUP_WIZARD,
+            android.Manifest.permission.NETWORK_STACK
+    })
     public void connect(WifiConfiguration config, ActionListener listener) {
         if (config == null) throw new IllegalArgumentException("config cannot be null");
         // Use INVALID_NETWORK_ID for arg1 when passing a config object
@@ -3426,7 +3524,12 @@
      * initialized again
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_SETUP_WIZARD,
+            android.Manifest.permission.NETWORK_STACK
+    })
     public void connect(int networkId, ActionListener listener) {
         if (networkId < 0) throw new IllegalArgumentException("Network id cannot be negative");
         getChannel().sendMessage(CONNECT_NETWORK, networkId, putListener(listener));
@@ -3452,7 +3555,12 @@
      * initialized again
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_SETUP_WIZARD,
+            android.Manifest.permission.NETWORK_STACK
+    })
     public void save(WifiConfiguration config, ActionListener listener) {
         if (config == null) throw new IllegalArgumentException("config cannot be null");
         getChannel().sendMessage(SAVE_NETWORK, 0, putListener(listener), config);
@@ -3471,7 +3579,12 @@
      * initialized again
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_SETUP_WIZARD,
+            android.Manifest.permission.NETWORK_STACK
+    })
     public void forget(int netId, ActionListener listener) {
         if (netId < 0) throw new IllegalArgumentException("Network id cannot be negative");
         getChannel().sendMessage(FORGET_NETWORK, netId, putListener(listener));
@@ -3486,7 +3599,12 @@
      * initialized again
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_SETUP_WIZARD,
+            android.Manifest.permission.NETWORK_STACK
+    })
     public void disable(int netId, ActionListener listener) {
         if (netId < 0) throw new IllegalArgumentException("Network id cannot be negative");
         getChannel().sendMessage(DISABLE_NETWORK, netId, putListener(listener));
@@ -3498,6 +3616,12 @@
      * @param SSID, in the format of WifiConfiguration's SSID.
      * @hide
      */
+    @SystemApi
+    @RequiresPermission(anyOf = {
+            android.Manifest.permission.NETWORK_SETTINGS,
+            android.Manifest.permission.NETWORK_SETUP_WIZARD,
+            android.Manifest.permission.NETWORK_STACK
+    })
     public void disableEphemeralNetwork(String SSID) {
         if (SSID == null) throw new IllegalArgumentException("SSID cannot be null");
         try {
@@ -3744,9 +3868,8 @@
     /**
      * Creates a new WifiLock.
      *
-     * @param lockType the type of lock to create. See {@link #WIFI_MODE_FULL},
-     * {@link #WIFI_MODE_FULL_HIGH_PERF} and {@link #WIFI_MODE_SCAN_ONLY} for
-     * descriptions of the types of Wi-Fi locks.
+     * @param lockType the type of lock to create. See {@link #WIFI_MODE_FULL_HIGH_PERF}
+     * and {@link #WIFI_MODE_FULL_LOW_LATENCY} for descriptions of the types of Wi-Fi locks.
      * @param tag a tag for the WifiLock to identify it in debugging messages.  This string is
      *            never shown to the user under normal conditions, but should be descriptive
      *            enough to identify your application and the specific WifiLock within it, if it
@@ -3771,12 +3894,14 @@
      * @return a new, unacquired WifiLock with the given tag.
      *
      * @see WifiLock
+     *
+     * @deprecated This API is non-functional.
      */
+    @Deprecated
     public WifiLock createWifiLock(String tag) {
         return new WifiLock(WIFI_MODE_FULL, tag);
     }
 
-
     /**
      * Create a new MulticastLock
      *
diff --git a/wifi/java/android/net/wifi/WifiNetworkConfigBuilder.java b/wifi/java/android/net/wifi/WifiNetworkConfigBuilder.java
index aa8d325..f73b9e5 100644
--- a/wifi/java/android/net/wifi/WifiNetworkConfigBuilder.java
+++ b/wifi/java/android/net/wifi/WifiNetworkConfigBuilder.java
@@ -42,8 +42,10 @@
 public class WifiNetworkConfigBuilder {
     private static final String MATCH_ALL_SSID_PATTERN_PATH = ".*";
     private static final String MATCH_EMPTY_SSID_PATTERN_PATH = "";
-    private static final Pair<MacAddress, MacAddress> MATCH_NO_BSSID_PATTERN =
+    private static final Pair<MacAddress, MacAddress> MATCH_NO_BSSID_PATTERN1 =
             new Pair(MacAddress.BROADCAST_ADDRESS, MacAddress.BROADCAST_ADDRESS);
+    private static final Pair<MacAddress, MacAddress> MATCH_NO_BSSID_PATTERN2 =
+            new Pair(MacAddress.ALL_ZEROS_ADDRESS, MacAddress.BROADCAST_ADDRESS);
     private static final Pair<MacAddress, MacAddress> MATCH_ALL_BSSID_PATTERN =
             new Pair(MacAddress.ALL_ZEROS_ADDRESS, MacAddress.ALL_ZEROS_ADDRESS);
     private static final MacAddress MATCH_EXACT_BSSID_PATTERN_MASK =
@@ -60,14 +62,27 @@
      */
     private @Nullable Pair<MacAddress, MacAddress> mBssidPatternMatcher;
     /**
+     * Whether this is an OWE network or not.
+     */
+    private boolean mIsEnhancedOpen;
+    /**
      * Pre-shared key for use with WPA-PSK networks.
      */
-    private @Nullable String mPskPassphrase;
+    private @Nullable String mWpa2PskPassphrase;
+    /**
+     * Pre-shared key for use with WPA3-SAE networks.
+     */
+    private @Nullable String mWpa3SaePassphrase;
     /**
      * The enterprise configuration details specifying the EAP method,
-     * certificates and other settings associated with the EAP.
+     * certificates and other settings associated with the WPA-EAP networks.
      */
-    private @Nullable WifiEnterpriseConfig mEnterpriseConfig;
+    private @Nullable WifiEnterpriseConfig mWpa2EnterpriseConfig;
+    /**
+     * The enterprise configuration details specifying the EAP method,
+     * certificates and other settings associated with the SuiteB networks.
+     */
+    private @Nullable WifiEnterpriseConfig mWpa3EnterpriseConfig;
     /**
      * This is a network that does not broadcast its SSID, so an
      * SSID-specific probe request must be used for scans.
@@ -94,8 +109,11 @@
     public WifiNetworkConfigBuilder() {
         mSsidPatternMatcher = null;
         mBssidPatternMatcher = null;
-        mPskPassphrase = null;
-        mEnterpriseConfig = null;
+        mIsEnhancedOpen = false;
+        mWpa2PskPassphrase = null;
+        mWpa3SaePassphrase = null;
+        mWpa2EnterpriseConfig = null;
+        mWpa3EnterpriseConfig = null;
         mIsHiddenSSID = false;
         mIsAppInteractionRequired = false;
         mIsUserInteractionRequired = false;
@@ -173,7 +191,13 @@
      * Set the BSSID to use for filtering networks from scan results. Will only match network whose
      * BSSID is identical to the specified value.
      * <p>
-     * <li>Only allowed for creating network specifier, i.e {@link #buildNetworkSpecifier()}. </li>
+     * <li>For network requests ({@link NetworkSpecifier}), built using
+     * {@link #buildNetworkSpecifier}, sets the BSSID to use for filtering networks from scan
+     * results. Will only match networks whose BSSID is identical to specified value.</li>
+     * <li>For network suggestions ({@link WifiNetworkSuggestion}), built using
+     * {@link #buildNetworkSuggestion()}, sets a specific BSSID for the network suggestion.
+     * If set, only the specified BSSID with the specified SSID will be considered for connection.
+     * If not set, all BSSIDs with the specified SSID will be considered for connection.</li>
      * <li>Overrides any previous value set using {@link #setBssid(MacAddress)} or
      * {@link #setBssidPattern(MacAddress, MacAddress)}.</li>
      *
@@ -188,36 +212,81 @@
     }
 
     /**
-     * Set the ASCII PSK passphrase for this network. Needed for authenticating to
-     * WPA_PSK networks.
+     * Specifies whether this represents an Enhanced Open (OWE) network.
      *
-     * @param pskPassphrase PSK passphrase of the network.
+     * @return Instance of {@link WifiNetworkConfigBuilder} to enable chaining of the builder
+     * method.
+     */
+    public WifiNetworkConfigBuilder setIsEnhancedOpen() {
+        mIsEnhancedOpen = true;
+        return this;
+    }
+
+    /**
+     * Set the ASCII WPA2 passphrase for this network. Needed for authenticating to
+     * WPA2-PSK networks.
+     *
+     * @param passphrase passphrase of the network.
      * @return Instance of {@link WifiNetworkConfigBuilder} to enable chaining of the builder
      * method.
      * @throws IllegalArgumentException if the passphrase is not ASCII encodable.
      */
-    public WifiNetworkConfigBuilder setPskPassphrase(@NonNull String pskPassphrase) {
-        checkNotNull(pskPassphrase);
+    public WifiNetworkConfigBuilder setWpa2Passphrase(@NonNull String passphrase) {
+        checkNotNull(passphrase);
         final CharsetEncoder asciiEncoder = StandardCharsets.US_ASCII.newEncoder();
-        if (!asciiEncoder.canEncode(pskPassphrase)) {
+        if (!asciiEncoder.canEncode(passphrase)) {
             throw new IllegalArgumentException("passphrase not ASCII encodable");
         }
-        mPskPassphrase = pskPassphrase;
+        mWpa2PskPassphrase = passphrase;
+        return this;
+    }
+
+    /**
+     * Set the ASCII WPA3 passphrase for this network. Needed for authenticating to
+     * WPA3-SAE networks.
+     *
+     * @param passphrase passphrase of the network.
+     * @return Instance of {@link WifiNetworkConfigBuilder} to enable chaining of the builder
+     * method.
+     * @throws IllegalArgumentException if the passphrase is not ASCII encodable.
+     */
+    public WifiNetworkConfigBuilder setWpa3Passphrase(@NonNull String passphrase) {
+        checkNotNull(passphrase);
+        final CharsetEncoder asciiEncoder = StandardCharsets.US_ASCII.newEncoder();
+        if (!asciiEncoder.canEncode(passphrase)) {
+            throw new IllegalArgumentException("passphrase not ASCII encodable");
+        }
+        mWpa3SaePassphrase = passphrase;
         return this;
     }
 
     /**
      * Set the associated enterprise configuration for this network. Needed for authenticating to
-     * WPA_EAP networks. See {@link WifiEnterpriseConfig} for description.
+     * WPA2-EAP networks. See {@link WifiEnterpriseConfig} for description.
      *
      * @param enterpriseConfig Instance of {@link WifiEnterpriseConfig}.
      * @return Instance of {@link WifiNetworkConfigBuilder} to enable chaining of the builder
      * method.
      */
-    public WifiNetworkConfigBuilder setEnterpriseConfig(
+    public WifiNetworkConfigBuilder setWpa2EnterpriseConfig(
             @NonNull WifiEnterpriseConfig enterpriseConfig) {
         checkNotNull(enterpriseConfig);
-        mEnterpriseConfig = new WifiEnterpriseConfig(enterpriseConfig);
+        mWpa2EnterpriseConfig = new WifiEnterpriseConfig(enterpriseConfig);
+        return this;
+    }
+
+    /**
+     * Set the associated enterprise configuration for this network. Needed for authenticating to
+     * WPA3-SuiteB networks. See {@link WifiEnterpriseConfig} for description.
+     *
+     * @param enterpriseConfig Instance of {@link WifiEnterpriseConfig}.
+     * @return Instance of {@link WifiNetworkConfigBuilder} to enable chaining of the builder
+     * method.
+     */
+    public WifiNetworkConfigBuilder setWpa3EnterpriseConfig(
+            @NonNull WifiEnterpriseConfig enterpriseConfig) {
+        checkNotNull(enterpriseConfig);
+        mWpa3EnterpriseConfig = new WifiEnterpriseConfig(enterpriseConfig);
         return this;
     }
 
@@ -324,16 +393,38 @@
         configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
     }
 
-    private void setKeyMgmtInWifiConfiguration(@NonNull WifiConfiguration configuration) {
-        if (!TextUtils.isEmpty(mPskPassphrase)) {
-            // WPA_PSK network.
+    private void setSecurityParamsInWifiConfiguration(@NonNull WifiConfiguration configuration) {
+        if (!TextUtils.isEmpty(mWpa2PskPassphrase)) { // WPA-PSK network.
             configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
-        } else if (mEnterpriseConfig != null) {
-            // WPA_EAP network
+            // WifiConfiguration.preSharedKey needs quotes around ASCII password.
+            configuration.preSharedKey = "\"" + mWpa2PskPassphrase + "\"";
+        } else if (!TextUtils.isEmpty(mWpa3SaePassphrase)) { // WPA3-SAE network.
+            configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE);
+            // PMF mandatory for SAE.
+            configuration.requirePMF = true;
+            // WifiConfiguration.preSharedKey needs quotes around ASCII password.
+            configuration.preSharedKey = "\"" + mWpa3SaePassphrase + "\"";
+        } else if (mWpa2EnterpriseConfig != null) { // WPA-EAP network
             configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
             configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
-        } else {
-            // Open network
+            configuration.enterpriseConfig = mWpa2EnterpriseConfig;
+        } else if (mWpa3EnterpriseConfig != null) { // WPA3-SuiteB network
+            configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SUITE_B_192);
+            configuration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
+            // TODO (b/113878056): Verify these params once we verify SuiteB configuration.
+            configuration.allowedGroupMgmtCiphers.set(
+                    WifiConfiguration.GroupMgmtCipher.BIP_GMAC_256);
+            configuration.allowedSuiteBCiphers.set(
+                    WifiConfiguration.SuiteBCipher.ECDHE_ECDSA);
+            configuration.allowedSuiteBCiphers.set(
+                    WifiConfiguration.SuiteBCipher.ECDHE_RSA);
+            configuration.requirePMF = true;
+            configuration.enterpriseConfig = mWpa3EnterpriseConfig;
+        } else if (mIsEnhancedOpen) { // OWE network
+            configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.OWE);
+            // PMF mandatory.
+            configuration.requirePMF = true;
+        } else { // Open network
             configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
         }
     }
@@ -349,12 +440,10 @@
         if (mSsidPatternMatcher.getType() == PatternMatcher.PATTERN_LITERAL) {
             wifiConfiguration.SSID = "\"" + mSsidPatternMatcher.getPath() + "\"";
         }
-        setKeyMgmtInWifiConfiguration(wifiConfiguration);
-        // WifiConfiguration.preSharedKey needs quotes around ASCII password.
-        if (mPskPassphrase != null) {
-            wifiConfiguration.preSharedKey = "\"" + mPskPassphrase + "\"";
+        if (mBssidPatternMatcher.second == MATCH_EXACT_BSSID_PATTERN_MASK) {
+            wifiConfiguration.BSSID = mBssidPatternMatcher.first.toString();
         }
-        wifiConfiguration.enterpriseConfig = mEnterpriseConfig;
+        setSecurityParamsInWifiConfiguration(wifiConfiguration);
         wifiConfiguration.hiddenSSID = mIsHiddenSSID;
         wifiConfiguration.priority = mPriority;
         wifiConfiguration.meteredOverride =
@@ -382,7 +471,10 @@
                 && mSsidPatternMatcher.getPath().equals(MATCH_EMPTY_SSID_PATTERN_PATH)) {
             return true;
         }
-        if (mBssidPatternMatcher.equals(MATCH_NO_BSSID_PATTERN)) {
+        if (mBssidPatternMatcher.equals(MATCH_NO_BSSID_PATTERN1)) {
+            return true;
+        }
+        if (mBssidPatternMatcher.equals(MATCH_NO_BSSID_PATTERN2)) {
             return true;
         }
         return false;
@@ -396,6 +488,30 @@
         return false;
     }
 
+    private boolean hasSetMatchExactPattern() {
+        // exact ssid match with either match-all bssid or match-exact bssid.
+        if (mSsidPatternMatcher.getType() == PatternMatcher.PATTERN_LITERAL
+                && (mBssidPatternMatcher.equals(MATCH_ALL_BSSID_PATTERN)
+                || mBssidPatternMatcher.second.equals(MATCH_EXACT_BSSID_PATTERN_MASK))) {
+            return true;
+        }
+        return false;
+    }
+
+    private void validateSecurityParams() {
+        int numSecurityTypes = 0;
+        numSecurityTypes += mIsEnhancedOpen ? 1 : 0;
+        numSecurityTypes += !TextUtils.isEmpty(mWpa2PskPassphrase) ? 1 : 0;
+        numSecurityTypes += !TextUtils.isEmpty(mWpa3SaePassphrase) ? 1 : 0;
+        numSecurityTypes += mWpa2EnterpriseConfig != null ? 1 : 0;
+        numSecurityTypes += mWpa3EnterpriseConfig != null ? 1 : 0;
+        if (numSecurityTypes > 1) {
+            throw new IllegalStateException("only one of setIsEnhancedOpen, setWpa2Passphrase,"
+                    + "setWpa3Passphrase, setWpa2EnterpriseConfig or setWpa3EnterpriseConfig"
+                    + " can be invoked for network specifier");
+        }
+    }
+
     /**
      * Create a specifier object used to request a Wi-Fi network. The generated
      * {@link NetworkSpecifier} should be used in
@@ -464,10 +580,7 @@
                     + "setIsUserInteractionRequired/setPriority/setIsMetered are allowed for "
                     + "specifier");
         }
-        if (!TextUtils.isEmpty(mPskPassphrase) && mEnterpriseConfig != null) {
-            throw new IllegalStateException("only one of setPreSharedKey or setEnterpriseConfig can"
-                    + " be invoked for network specifier");
-        }
+        validateSecurityParams();
 
         return new WifiNetworkSpecifier(
                 mSsidPatternMatcher,
@@ -477,9 +590,42 @@
     }
 
     /**
-     * Create a network suggestion object use in
-     * {@link WifiManager#addNetworkSuggestions(List)}.
+     * Create a network suggestion object use in {@link WifiManager#addNetworkSuggestions(List)}.
      * See {@link WifiNetworkSuggestion}.
+     *<p>
+     * Note: Apps can set a combination of SSID using {@link #setSsid(String)} and BSSID
+     * using {@link #setBssid(MacAddress)} to provide more fine grained network suggestions to the
+     * platform.
+     * </p>
+     *
+     * For example:
+     * To provide credentials for one open, one WPA2 and one WPA3 network with their
+     * corresponding SSID's:
+     * {@code
+     * final WifiNetworkSuggestion suggestion1 =
+     *      new WifiNetworkConfigBuilder()
+     *      .setSsid("test111111")
+     *      .buildNetworkSuggestion()
+     * final WifiNetworkSuggestion suggestion2 =
+     *      new WifiNetworkConfigBuilder()
+     *      .setSsid("test222222")
+     *      .setWpa2Passphrase("test123456")
+     *      .buildNetworkSuggestion()
+     * final WifiNetworkSuggestion suggestion3 =
+     *      new WifiNetworkConfigBuilder()
+     *      .setSsid("test333333")
+     *      .setWpa3Passphrase("test6789")
+     *      .buildNetworkSuggestion()
+     * final List<WifiNetworkSuggestion> suggestionsList = new ArrayList<WifiNetworkSuggestion> {{
+     *          add(suggestion1);
+     *          add(suggestion2);
+     *          add(suggestion3);
+     *      }};
+     * final WifiManager wifiManager =
+     *      context.getSystemService(Context.WIFI_SERVICE);
+     * wifiManager.addNetworkSuggestions(suggestionsList);
+     * ...
+     * }
      *
      * @return Instance of {@link WifiNetworkSuggestion}.
      * @throws IllegalStateException on invalid params set.
@@ -488,15 +634,15 @@
         if (mSsidPatternMatcher == null) {
             throw new IllegalStateException("setSsid should be invoked for suggestion");
         }
-        if (mSsidPatternMatcher.getType() != PatternMatcher.PATTERN_LITERAL
-                || mBssidPatternMatcher != null) {
-            throw new IllegalStateException("none of setSsidPattern/setBssidPattern/setBssid are"
+        setMatchAnyPatternIfUnset();
+        if (!hasSetMatchExactPattern()) {
+            throw new IllegalStateException("none of setSsidPattern/setBssidPattern are"
                     + " allowed for suggestion");
         }
-        if (!TextUtils.isEmpty(mPskPassphrase) && mEnterpriseConfig != null) {
-            throw new IllegalStateException("only one of setPreSharedKey or setEnterpriseConfig can"
-                    + "be invoked for suggestion");
+        if (hasSetMatchNonePattern()) {
+            throw new IllegalStateException("cannot set match-none for suggestion");
         }
+        validateSecurityParams();
 
         return new WifiNetworkSuggestion(
                 buildWifiConfiguration(),
diff --git a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
index 25121e2..760f1e6 100644
--- a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
+++ b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
@@ -104,8 +104,8 @@
 
     @Override
     public int hashCode() {
-        return Objects.hash(wifiConfiguration.SSID, wifiConfiguration.allowedKeyManagement,
-                suggestorUid);
+        return Objects.hash(wifiConfiguration.SSID, wifiConfiguration.BSSID,
+                wifiConfiguration.allowedKeyManagement, suggestorUid);
     }
 
     /**
@@ -121,6 +121,7 @@
         }
         WifiNetworkSuggestion lhs = (WifiNetworkSuggestion) obj;
         return Objects.equals(this.wifiConfiguration.SSID, lhs.wifiConfiguration.SSID)
+                && Objects.equals(this.wifiConfiguration.BSSID, lhs.wifiConfiguration.BSSID)
                 && Objects.equals(this.wifiConfiguration.allowedKeyManagement,
                                   lhs.wifiConfiguration.allowedKeyManagement)
                 && suggestorUid == lhs.suggestorUid;
diff --git a/wifi/java/android/net/wifi/WifiScanner.java b/wifi/java/android/net/wifi/WifiScanner.java
index 529548f..fc5caf0 100644
--- a/wifi/java/android/net/wifi/WifiScanner.java
+++ b/wifi/java/android/net/wifi/WifiScanner.java
@@ -184,6 +184,9 @@
     public static final String SCAN_PARAMS_SCAN_SETTINGS_KEY = "ScanSettings";
     /** {@hide} */
     public static final String SCAN_PARAMS_WORK_SOURCE_KEY = "WorkSource";
+    /** {@hide} */
+    public static final String REQUEST_PACKAGE_NAME_KEY = "PackageName";
+
     /**
      * scan configuration parameters to be sent to {@link #startBackgroundScan}
      */
@@ -250,6 +253,14 @@
          */
         @RequiresPermission(android.Manifest.permission.NETWORK_STACK)
         public int type = TYPE_LOW_LATENCY;
+        /**
+         * This scan request may ignore location settings while receiving scans. This should only
+         * be used in emergency situations.
+         * {@hide}
+         */
+        @SystemApi
+        @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
+        public boolean ignoreLocationSettings;
 
         /** Implement the Parcelable interface {@hide} */
         public int describeContents() {
@@ -267,6 +278,7 @@
             dest.writeInt(stepCount);
             dest.writeInt(isPnoScan ? 1 : 0);
             dest.writeInt(type);
+            dest.writeInt(ignoreLocationSettings ? 1 : 0);
             if (channels != null) {
                 dest.writeInt(channels.length);
                 for (int i = 0; i < channels.length; i++) {
@@ -301,6 +313,7 @@
                         settings.stepCount = in.readInt();
                         settings.isPnoScan = in.readInt() == 1;
                         settings.type = in.readInt();
+                        settings.ignoreLocationSettings = in.readInt() == 1;
                         int num_channels = in.readInt();
                         settings.channels = new ChannelSpec[num_channels];
                         for (int i = 0; i < num_channels; i++) {
@@ -798,6 +811,7 @@
         Bundle scanParams = new Bundle();
         scanParams.putParcelable(SCAN_PARAMS_SCAN_SETTINGS_KEY, settings);
         scanParams.putParcelable(SCAN_PARAMS_WORK_SOURCE_KEY, workSource);
+        scanParams.putString(REQUEST_PACKAGE_NAME_KEY, mContext.getOpPackageName());
         mAsyncChannel.sendMessage(CMD_START_BACKGROUND_SCAN, 0, key, scanParams);
     }
 
@@ -812,8 +826,11 @@
         int key = removeListener(listener);
         if (key == INVALID_KEY) return;
         validateChannel();
-        mAsyncChannel.sendMessage(CMD_STOP_BACKGROUND_SCAN, 0, key);
+        Bundle scanParams = new Bundle();
+        scanParams.putString(REQUEST_PACKAGE_NAME_KEY, mContext.getOpPackageName());
+        mAsyncChannel.sendMessage(CMD_STOP_BACKGROUND_SCAN, 0, key, scanParams);
     }
+
     /**
      * reports currently available scan results on appropriate listeners
      * @return true if all scan results were reported correctly
@@ -821,7 +838,10 @@
     @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
     public boolean getScanResults() {
         validateChannel();
-        Message reply = mAsyncChannel.sendMessageSynchronously(CMD_GET_SCAN_RESULTS, 0);
+        Bundle scanParams = new Bundle();
+        scanParams.putString(REQUEST_PACKAGE_NAME_KEY, mContext.getOpPackageName());
+        Message reply =
+                mAsyncChannel.sendMessageSynchronously(CMD_GET_SCAN_RESULTS, 0, 0, scanParams);
         return reply.what == CMD_OP_SUCCEEDED;
     }
 
@@ -856,6 +876,7 @@
         Bundle scanParams = new Bundle();
         scanParams.putParcelable(SCAN_PARAMS_SCAN_SETTINGS_KEY, settings);
         scanParams.putParcelable(SCAN_PARAMS_WORK_SOURCE_KEY, workSource);
+        scanParams.putString(REQUEST_PACKAGE_NAME_KEY, mContext.getOpPackageName());
         mAsyncChannel.sendMessage(CMD_START_SINGLE_SCAN, 0, key, scanParams);
     }
 
@@ -870,7 +891,9 @@
         int key = removeListener(listener);
         if (key == INVALID_KEY) return;
         validateChannel();
-        mAsyncChannel.sendMessage(CMD_STOP_SINGLE_SCAN, 0, key);
+        Bundle scanParams = new Bundle();
+        scanParams.putString(REQUEST_PACKAGE_NAME_KEY, mContext.getOpPackageName());
+        mAsyncChannel.sendMessage(CMD_STOP_SINGLE_SCAN, 0, key, scanParams);
     }
 
     /**
@@ -879,7 +902,10 @@
      */
     public List<ScanResult> getSingleScanResults() {
         validateChannel();
-        Message reply = mAsyncChannel.sendMessageSynchronously(CMD_GET_SINGLE_SCAN_RESULTS, 0);
+        Bundle scanParams = new Bundle();
+        scanParams.putString(REQUEST_PACKAGE_NAME_KEY, mContext.getOpPackageName());
+        Message reply = mAsyncChannel.sendMessageSynchronously(CMD_GET_SINGLE_SCAN_RESULTS, 0, 0,
+                scanParams);
         if (reply.what == WifiScanner.CMD_OP_SUCCEEDED) {
             return Arrays.asList(((ParcelableScanResults) reply.obj).getResults());
         }
diff --git a/wifi/java/android/net/wifi/hotspot2/OsuProvider.java b/wifi/java/android/net/wifi/hotspot2/OsuProvider.java
index 25dcdd8..893b19c 100644
--- a/wifi/java/android/net/wifi/hotspot2/OsuProvider.java
+++ b/wifi/java/android/net/wifi/hotspot2/OsuProvider.java
@@ -49,7 +49,7 @@
     /**
      * SSID of the network to connect for service sign-up.
      */
-    private final WifiSsid mOsuSsid;
+    private WifiSsid mOsuSsid;
 
     /**
      * Friendly name of the OSU provider.
@@ -130,6 +130,10 @@
         return mOsuSsid;
     }
 
+    public void setOsuSsid(WifiSsid osuSsid) {
+        mOsuSsid = osuSsid;
+    }
+
     public String getFriendlyName() {
         return mFriendlyName;
     }
diff --git a/wifi/java/android/net/wifi/hotspot2/ProvisioningCallback.java b/wifi/java/android/net/wifi/hotspot2/ProvisioningCallback.java
index 5c9db53..a62d63c 100644
--- a/wifi/java/android/net/wifi/hotspot2/ProvisioningCallback.java
+++ b/wifi/java/android/net/wifi/hotspot2/ProvisioningCallback.java
@@ -150,6 +150,12 @@
     public static final int OSU_FAILURE_ADD_PASSPOINT_CONFIGURATION = 22;
 
     /**
+     * The reason code for provisioning failure when an {@link OsuProvider} is not found for
+     * provisioning.
+     */
+    public static final int OSU_FAILURE_OSU_PROVIDER_NOT_FOUND = 23;
+
+    /**
      * The status code for provisioning flow to indicate connecting to OSU AP
      */
     public static final int OSU_STATUS_AP_CONNECTING = 1;
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
index 6772096..6631fa8 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
@@ -16,10 +16,16 @@
 
 package android.net.wifi.p2p;
 
+import android.annotation.IntDef;
 import android.annotation.UnsupportedAppUsage;
+import android.net.MacAddress;
 import android.net.wifi.WpsInfo;
-import android.os.Parcelable;
 import android.os.Parcel;
+import android.os.Parcelable;
+import android.text.TextUtils;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 
 /**
  * A class representing a Wi-Fi P2p configuration for setting up a connection
@@ -38,12 +44,46 @@
      */
     public WpsInfo wps;
 
+    /**
+     * The network name of a group, should be configured by helper method
+     */
+    /** @hide */
+    public String networkName = "";
+
+    /**
+     * The passphrase of a group, should be configured by helper method
+     */
+    /** @hide */
+    public String passphrase = "";
+
+    /**
+     * The required band for Group Owner
+     */
+    /** @hide */
+    public int groupOwnerBand = GROUP_OWNER_BAND_AUTO;
+
     /** @hide */
     public static final int MAX_GROUP_OWNER_INTENT   =   15;
     /** @hide */
     @UnsupportedAppUsage
     public static final int MIN_GROUP_OWNER_INTENT   =   0;
 
+    /** @hide */
+    @IntDef(flag = false, prefix = { "GROUP_OWNER_BAND_" }, value = {
+        GROUP_OWNER_BAND_AUTO,
+        GROUP_OWNER_BAND_2GHZ,
+        GROUP_OWNER_BAND_5GHZ
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface GroupOwnerBandType {}
+
+    /**
+     * Recognized Group Owner required band.
+     */
+    public static final int GROUP_OWNER_BAND_AUTO = 0;
+    public static final int GROUP_OWNER_BAND_2GHZ = 1;
+    public static final int GROUP_OWNER_BAND_5GHZ = 2;
+
     /**
      * This is an integer value between 0 and 15 where 0 indicates the least
      * inclination to be a group owner and 15 indicates the highest inclination
@@ -115,6 +155,10 @@
         sbuf.append("\n wps: ").append(wps);
         sbuf.append("\n groupOwnerIntent: ").append(groupOwnerIntent);
         sbuf.append("\n persist: ").append(netId);
+        sbuf.append("\n networkName: ").append(networkName);
+        sbuf.append("\n passphrase: ").append(
+                TextUtils.isEmpty(passphrase) ? "<empty>" : "<non-empty>");
+        sbuf.append("\n groupOwnerBand: ").append(groupOwnerBand);
         return sbuf.toString();
     }
 
@@ -130,6 +174,9 @@
             wps = new WpsInfo(source.wps);
             groupOwnerIntent = source.groupOwnerIntent;
             netId = source.netId;
+            networkName = source.networkName;
+            passphrase = source.passphrase;
+            groupOwnerBand = source.groupOwnerBand;
         }
     }
 
@@ -139,6 +186,9 @@
         dest.writeParcelable(wps, flags);
         dest.writeInt(groupOwnerIntent);
         dest.writeInt(netId);
+        dest.writeString(networkName);
+        dest.writeString(passphrase);
+        dest.writeInt(groupOwnerBand);
     }
 
     /** Implement the Parcelable interface */
@@ -150,6 +200,9 @@
                 config.wps = (WpsInfo) in.readParcelable(null);
                 config.groupOwnerIntent = in.readInt();
                 config.netId = in.readInt();
+                config.networkName = in.readString();
+                config.passphrase = in.readString();
+                config.groupOwnerBand = in.readInt();
                 return config;
             }
 
@@ -157,4 +210,140 @@
                 return new WifiP2pConfig[size];
             }
         };
+
+    /**
+     * Builder used to build {@link WifiP2pConfig} objects for
+     * creating or joining a group.
+     */
+    public static final class Builder {
+
+        private static final MacAddress MAC_ANY_ADDRESS =
+                MacAddress.fromString("00:00:00:00:00:00");
+
+        private MacAddress mDeviceAddress = MAC_ANY_ADDRESS;
+        private String mNetworkName = "";
+        private String mPassphrase = "";
+        private int mGroupOwnerBand = GROUP_OWNER_BAND_AUTO;
+        private int mNetId = WifiP2pGroup.TEMPORARY_NET_ID;
+
+        /**
+         * Specify the peer's MAC address. If not set, the device will
+         * try to find a peer whose SSID matches the network name as
+         * specified by {@link #setNetworkName(String)}. Specifying null will
+         * reset the peer's MAC address to "00:00:00:00:00:00".
+         * <p>
+         *     Optional. "00:00:00:00:00:00" by default.
+         *
+         * @param deviceAddress the peer's MAC address.
+         * @return The builder to facilitate chaining
+         *         {@code builder.setXXX(..).setXXX(..)}.
+         */
+        public Builder setDeviceAddress(MacAddress deviceAddress) {
+            if (deviceAddress == null) {
+                mDeviceAddress = MAC_ANY_ADDRESS;
+            } else {
+                mDeviceAddress = deviceAddress;
+            }
+            return this;
+        }
+
+        /**
+         * Specify the network name, a.k.a. group name,
+         * for creating or joining a group.
+         * <p>
+         *     Must be called - an empty network name is not valid.
+         *
+         * @param networkName network name of a group.
+         * @return The builder to facilitate chaining
+         *         {@code builder.setXXX(..).setXXX(..)}.
+         */
+        public Builder setNetworkName(String networkName) {
+            if (TextUtils.isEmpty(networkName)) {
+                throw new IllegalArgumentException(
+                        "network name must be non-empty.");
+            }
+            mNetworkName = networkName;
+            return this;
+        }
+
+        /**
+         * Specify the passphrase for creating or joining a group.
+         * <p>
+         *     Must be called - an empty passphrase is not valid.
+         *
+         * @param passphrase the passphrase of a group.
+         * @return The builder to facilitate chaining
+         *         {@code builder.setXXX(..).setXXX(..)}.
+         */
+        public Builder setPassphrase(String passphrase) {
+            if (TextUtils.isEmpty(passphrase)) {
+                throw new IllegalArgumentException(
+                        "passphrase must be non-empty.");
+            }
+            mPassphrase = passphrase;
+            return this;
+        }
+
+        /**
+         * Specify the band to use for creating the group. This method only applies when
+         * creating a group as Group Owner using {@link WifiP2pManager#createGroup}.
+         * The band should be {@link #GROUP_OWNER_BAND_2GHZ} or {@link #GROUP_OWNER_BAND_5GHZ},
+         * or allow the system to pick the band by specifying {@link #GROUP_OWNER_BAND_AUTO}.
+         * If the Group Owner cannot create a group in the specified band, the operation will fail.
+         * <p>
+         *     Optional. {@link #GROUP_OWNER_BAND_AUTO} by default.
+         *
+         * @param band the required band of group owner.
+         *             This should be one of {@link #GROUP_OWNER_BAND_AUTO},
+         *             {@link #GROUP_OWNER_BAND_2GHZ}, {@link #GROUP_OWNER_BAND_5GHZ}.
+         * @return The builder to facilitate chaining
+         *         {@code builder.setXXX(..).setXXX(..)}.
+         */
+        public Builder setGroupOwnerBand(int band) {
+            mGroupOwnerBand = band;
+            return this;
+        }
+
+        /**
+         * Specify that the group configuration be persisted (i.e. saved).
+         * By default the group configuration will not be saved.
+         * <p>
+         *     Optional. false by default.
+         *
+         * @param persistent is this group persistent group.
+         * @return The builder to facilitate chaining
+         *         {@code builder.setXXX(..).setXXX(..)}.
+         */
+        public Builder enablePersistentMode(boolean persistent) {
+            if (persistent) {
+                mNetId = WifiP2pGroup.PERSISTENT_NET_ID;
+            } else {
+                mNetId = WifiP2pGroup.TEMPORARY_NET_ID;
+            }
+            return this;
+        }
+
+        /**
+         * Build {@link WifiP2pConfig} given the current requests made on the builder.
+         * @return {@link WifiP2pConfig} constructed based on builder method calls.
+         */
+        public WifiP2pConfig build() {
+            if (TextUtils.isEmpty(mNetworkName)) {
+                throw new IllegalStateException(
+                        "network name must be non-empty.");
+            }
+            if (TextUtils.isEmpty(mPassphrase)) {
+                throw new IllegalStateException(
+                        "passphrase must be non-empty.");
+            }
+
+            WifiP2pConfig config = new WifiP2pConfig();
+            config.deviceAddress = mDeviceAddress.toString();
+            config.networkName = mNetworkName;
+            config.passphrase = mPassphrase;
+            config.groupOwnerBand = mGroupOwnerBand;
+            config.netId = mNetId;
+            return config;
+        }
+    }
 }
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
index f58a006..b0ed110 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
@@ -16,6 +16,7 @@
 
 package android.net.wifi.p2p;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
@@ -25,6 +26,7 @@
 import android.annotation.SystemService;
 import android.annotation.UnsupportedAppUsage;
 import android.content.Context;
+import android.net.NetworkInfo;
 import android.net.wifi.WpsInfo;
 import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo;
 import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceResponse;
@@ -49,6 +51,8 @@
 
 import dalvik.system.CloseGuard;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -158,6 +162,14 @@
      */
     public static final String EXTRA_WIFI_STATE = "wifi_p2p_state";
 
+    /** @hide */
+    @IntDef({
+            WIFI_P2P_STATE_DISABLED,
+            WIFI_P2P_STATE_ENABLED})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface WifiP2pState {
+    }
+
     /**
      * Wi-Fi p2p is disabled.
      *
@@ -250,6 +262,14 @@
      */
     public static final String EXTRA_DISCOVERY_STATE = "discoveryState";
 
+    /** @hide */
+    @IntDef({
+            WIFI_P2P_DISCOVERY_STOPPED,
+            WIFI_P2P_DISCOVERY_STARTED})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface WifiP2pDiscoveryState {
+    }
+
     /**
      * p2p discovery has stopped
      *
@@ -502,6 +522,21 @@
     /** @hide */
     public static final int SET_ONGOING_PEER_CONFIG_SUCCEEDED       = BASE + 89;
 
+    /** @hide */
+    public static final int REQUEST_P2P_STATE                       = BASE + 90;
+    /** @hide */
+    public static final int RESPONSE_P2P_STATE                      = BASE + 91;
+
+    /** @hide */
+    public static final int REQUEST_DISCOVERY_STATE                 = BASE + 92;
+    /** @hide */
+    public static final int RESPONSE_DISCOVERY_STATE                = BASE + 93;
+
+    /** @hide */
+    public static final int REQUEST_NETWORK_INFO                    = BASE + 94;
+    /** @hide */
+    public static final int RESPONSE_NETWORK_INFO                   = BASE + 95;
+
     /**
      * Create a new WifiP2pManager instance. Applications use
      * {@link android.content.Context#getSystemService Context.getSystemService()} to retrieve
@@ -690,6 +725,43 @@
         public void onHandoverMessageAvailable(String handoverMessage);
     }
 
+    /** Interface for callback invocation when p2p state is available
+     *  in response to {@link #requestP2pState}.
+     */
+    public interface P2pStateListener {
+        /**
+         * The requested p2p state is available.
+         * @param state Wi-Fi p2p state
+         *        @see #WIFI_P2P_STATE_DISABLED
+         *        @see #WIFI_P2P_STATE_ENABLED
+         */
+        void onP2pStateAvailable(@WifiP2pState int state);
+    }
+
+    /** Interface for callback invocation when p2p state is available
+     *  in response to {@link #requestDiscoveryState}.
+     */
+    public interface DiscoveryStateListener {
+        /**
+         * The requested p2p discovery state is available.
+         * @param state Wi-Fi p2p discovery state
+         *        @see #WIFI_P2P_DISCOVERY_STARTED
+         *        @see #WIFI_P2P_DISCOVERY_STOPPED
+         */
+        void onDiscoveryStateAvailable(@WifiP2pDiscoveryState int state);
+    }
+
+    /** Interface for callback invocation when {@link android.net.NetworkInfo} is available
+     *  in response to {@link #requestNetworkInfo}.
+     */
+    public interface NetworkInfoListener {
+        /**
+         * The requested {@link android.net.NetworkInfo} is available
+         * @param networkInfo Wi-Fi p2p {@link android.net.NetworkInfo}
+         */
+        void onNetworkInfoAvailable(NetworkInfo networkInfo);
+    }
+
     /**
      * Interface for callback invocation when ongoing peer info is available
      * @hide
@@ -889,6 +961,24 @@
                                     .onOngoingPeerAvailable(peerConfig);
                         }
                         break;
+                    case RESPONSE_P2P_STATE:
+                        if (listener != null) {
+                            ((P2pStateListener) listener)
+                                    .onP2pStateAvailable(message.arg1);
+                        }
+                        break;
+                    case RESPONSE_DISCOVERY_STATE:
+                        if (listener != null) {
+                            ((DiscoveryStateListener) listener)
+                                    .onDiscoveryStateAvailable(message.arg1);
+                        }
+                        break;
+                    case RESPONSE_NETWORK_INFO:
+                        if (listener != null) {
+                            ((NetworkInfoListener) listener)
+                                    .onNetworkInfoAvailable((NetworkInfo) message.obj);
+                        }
+                        break;
                     default:
                         Log.d(TAG, "Ignored " + message);
                         break;
@@ -1126,6 +1216,38 @@
     }
 
     /**
+     * Create a p2p group with the current device as the group owner. This essentially creates
+     * an access point that can accept connections from legacy clients as well as other p2p
+     * devices.
+     *
+     * <p> An app should use {@link WifiP2pConfig.Builder} to build the configuration
+     * for a group.
+     *
+     * <p class="note"><strong>Note:</strong>
+     * This function would normally not be used unless the current device needs
+     * to form a p2p group as a Group Owner and allow peers to join it as either
+     * Group Clients or legacy Wi-Fi STAs.
+     *
+     * <p> The function call immediately returns after sending a group creation request
+     * to the framework. The application is notified of a success or failure to initiate
+     * group creation through listener callbacks {@link ActionListener#onSuccess} or
+     * {@link ActionListener#onFailure}.
+     *
+     * <p> Application can request for the group details with {@link #requestGroupInfo}.
+     *
+     * @param c is the channel created at {@link #initialize}.
+     * @param config the configuration of a p2p group.
+     * @param listener for callbacks on success or failure. Can be null.
+     */
+    public void createGroup(@NonNull Channel c,
+            @Nullable WifiP2pConfig config,
+            @Nullable ActionListener listener) {
+        checkChannel(c);
+        c.mAsyncChannel.sendMessage(CREATE_GROUP, 0,
+                c.putListener(listener), config);
+    }
+
+    /**
      * Remove the current p2p group.
      *
      * <p> The function call immediately returns after sending a group removal request
@@ -1616,4 +1738,68 @@
         c.mAsyncChannel.sendMessage(SET_ONGOING_PEER_CONFIG, 0,
                 c.putListener(listener), config);
     }
+
+    /**
+     * Request p2p enabled state.
+     *
+     * <p> This state indicates whether Wi-Fi p2p is enabled or disabled.
+     * The valid value is one of {@link #WIFI_P2P_STATE_DISABLED} or
+     * {@link #WIFI_P2P_STATE_ENABLED}. The state is returned using the
+     * {@link P2pStateListener} listener.
+     *
+     * <p> This state is also included in the {@link #WIFI_P2P_STATE_CHANGED_ACTION}
+     * broadcast event with extra {@link #EXTRA_WIFI_STATE}.
+     *
+     * @param c is the channel created at {@link #initialize}.
+     * @param listener for callback when p2p state is available..
+     */
+    public void requestP2pState(@NonNull Channel c,
+            @NonNull P2pStateListener listener) {
+        checkChannel(c);
+        if (listener == null) throw new IllegalArgumentException("This listener cannot be null.");
+        c.mAsyncChannel.sendMessage(REQUEST_P2P_STATE, 0, c.putListener(listener));
+    }
+
+    /**
+     * Request p2p discovery state.
+     *
+     * <p> This state indicates whether p2p discovery has started or stopped.
+     * The valid value is one of {@link #WIFI_P2P_DISCOVERY_STARTED} or
+     * {@link #WIFI_P2P_DISCOVERY_STOPPED}. The state is returned using the
+     * {@link DiscoveryStateListener} listener.
+     *
+     * <p> This state is also included in the {@link #WIFI_P2P_DISCOVERY_CHANGED_ACTION}
+     * broadcast event with extra {@link #EXTRA_DISCOVERY_STATE}.
+     *
+     * @param c is the channel created at {@link #initialize}.
+     * @param listener for callback when discovery state is available..
+     */
+    public void requestDiscoveryState(@NonNull Channel c,
+            @NonNull DiscoveryStateListener listener) {
+        checkChannel(c);
+        if (listener == null) throw new IllegalArgumentException("This listener cannot be null.");
+        c.mAsyncChannel.sendMessage(REQUEST_DISCOVERY_STATE, 0, c.putListener(listener));
+    }
+
+    /**
+     * Request network info.
+     *
+     * <p> This method provides the network info in the form of a {@link android.net.NetworkInfo}.
+     * {@link android.net.NetworkInfo#isAvailable()} indicates the p2p availability and
+     * {@link android.net.NetworkInfo#getDetailedState()} reports the current fine-grained state
+     * of the network. This {@link android.net.NetworkInfo} is returned using the
+     * {@link NetworkInfoListener} listener.
+     *
+     * <p> This information is also included in the {@link #WIFI_P2P_CONNECTION_CHANGED_ACTION}
+     * broadcast event with extra {@link #EXTRA_NETWORK_INFO}.
+     *
+     * @param c is the channel created at {@link #initialize}.
+     * @param listener for callback when network info is available..
+     */
+    public void requestNetworkInfo(@NonNull Channel c,
+            @NonNull NetworkInfoListener listener) {
+        checkChannel(c);
+        if (listener == null) throw new IllegalArgumentException("This listener cannot be null.");
+        c.mAsyncChannel.sendMessage(REQUEST_NETWORK_INFO, 0, c.putListener(listener));
+    }
 }
diff --git a/wifi/java/com/android/server/wifi/AbstractWifiService.java b/wifi/java/com/android/server/wifi/AbstractWifiService.java
index 04bc557..0f4e3a8 100644
--- a/wifi/java/com/android/server/wifi/AbstractWifiService.java
+++ b/wifi/java/com/android/server/wifi/AbstractWifiService.java
@@ -73,7 +73,7 @@
     }
 
     @Override
-    public ParceledListSlice getConfiguredNetworks() {
+    public ParceledListSlice getConfiguredNetworks(String packageName) {
         throw new UnsupportedOperationException();
     }
 
@@ -188,17 +188,17 @@
     }
 
     @Override
-    public void disconnect(String packageName) {
+    public boolean disconnect(String packageName) {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public void reconnect(String packageName) {
+    public boolean reconnect(String packageName) {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public void reassociate(String packageName) {
+    public boolean reassociate(String packageName) {
         throw new UnsupportedOperationException();
     }
 
@@ -442,13 +442,13 @@
     }
 
     @Override
-    public boolean addNetworkSuggestions(
+    public int addNetworkSuggestions(
             List<WifiNetworkSuggestion> networkSuggestions, String callingPackageName) {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public boolean removeNetworkSuggestions(
+    public int removeNetworkSuggestions(
             List<WifiNetworkSuggestion> networkSuggestions, String callingPackageName) {
         throw new UnsupportedOperationException();
     }
diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
index 8fe5af9..13c8c9e 100644
--- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
@@ -1298,13 +1298,26 @@
      */
     @Test
     public void addRemoveNetworkSuggestions() throws Exception {
-        when(mWifiService.addNetworkSuggestions(any(List.class), anyString())).thenReturn(true);
-        when(mWifiService.removeNetworkSuggestions(any(List.class), anyString())).thenReturn(true);
+        when(mWifiService.addNetworkSuggestions(any(List.class), anyString()))
+                .thenReturn(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS);
+        when(mWifiService.removeNetworkSuggestions(any(List.class), anyString()))
+                .thenReturn(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS);
 
-        assertTrue(mWifiManager.addNetworkSuggestions(new ArrayList<>()));
+        assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
+                mWifiManager.addNetworkSuggestions(new ArrayList<>()));
         verify(mWifiService).addNetworkSuggestions(anyList(), eq(TEST_PACKAGE_NAME));
 
-        assertTrue(mWifiManager.removeNetworkSuggestions(new ArrayList<>()));
+        assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
+                mWifiManager.removeNetworkSuggestions(new ArrayList<>()));
         verify(mWifiService).removeNetworkSuggestions(anyList(), eq(TEST_PACKAGE_NAME));
     }
+
+    /**
+     * Verify call to {@link WifiManager#getMaxNumberOfNetworkSuggestionsPerApp()}.
+     */
+    @Test
+    public void getMaxNumberOfNetworkSuggestionsPerApp() {
+        assertEquals(WifiManager.NETWORK_SUGGESTIONS_MAX_PER_APP,
+                mWifiManager.getMaxNumberOfNetworkSuggestionsPerApp());
+    }
 }
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkConfigBuilderTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkConfigBuilderTest.java
index 8980ddb..2505499 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkConfigBuilderTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkConfigBuilderTest.java
@@ -22,6 +22,7 @@
 
 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.net.MacAddress;
@@ -81,11 +82,11 @@
      * pattern.
      */
     @Test
-    public void testWifiNetworkSpecifierBuilderForWpaPskNetworkWithBssidPattern() {
+    public void testWifiNetworkSpecifierBuilderForWpa2PskNetworkWithBssidPattern() {
         NetworkSpecifier specifier = new WifiNetworkConfigBuilder()
                 .setBssidPattern(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
                         MacAddress.fromString(TEST_BSSID_OUI_MASK))
-                .setPskPassphrase(TEST_PRESHARED_KEY)
+                .setWpa2Passphrase(TEST_PRESHARED_KEY)
                 .buildNetworkSpecifier();
 
         assertTrue(specifier instanceof WifiNetworkSpecifier);
@@ -119,7 +120,7 @@
      * SSID and BSSID pattern.
      */
     @Test
-    public void testWifiNetworkSpecifierBuilderForEnterpriseHiddenNetworkWithSsidAndBssid() {
+    public void testWifiNetworkSpecifierBuilderForWpa2EapHiddenNetworkWithSsidAndBssid() {
         WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
         enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.TLS);
         enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.GTC);
@@ -127,7 +128,7 @@
         NetworkSpecifier specifier = new WifiNetworkConfigBuilder()
                 .setSsid(TEST_SSID)
                 .setBssid(MacAddress.fromString(TEST_BSSID))
-                .setEnterpriseConfig(enterpriseConfig)
+                .setWpa2EnterpriseConfig(enterpriseConfig)
                 .setIsHiddenSsid()
                 .buildNetworkSpecifier();
 
@@ -174,14 +175,14 @@
     }
 
     /**
-     * Ensure {@link WifiNetworkConfigBuilder#setPskPassphrase(String)} throws an exception
+     * Ensure {@link WifiNetworkConfigBuilder#setWpa2Passphrase(String)} throws an exception
      * when the string is not ASCII encodable.
      */
     @Test(expected = IllegalArgumentException.class)
-    public void testSetPskPassphraseWithNonAsciiString() {
+    public void testSetWpa2PasphraseWithNonAsciiString() {
         new WifiNetworkConfigBuilder()
                 .setSsid(TEST_SSID)
-                .setPskPassphrase("salvē")
+                .setWpa2Passphrase("salvē")
                 .buildNetworkSpecifier();
     }
 
@@ -243,7 +244,7 @@
      * when match-none SSID pattern is set.
      */
     @Test(expected = IllegalStateException.class)
-    public void testWifiNetworkSpecifierBuilderWithMatchNoneSsidPattern() {
+    public void testWifiNetworkSpecifierBuilderWithMatchNoneSsidPattern1() {
         new WifiNetworkConfigBuilder()
                 .setSsidPattern(new PatternMatcher("", PatternMatcher.PATTERN_LITERAL))
                 .buildNetworkSpecifier();
@@ -251,10 +252,21 @@
 
     /**
      * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
+     * when match-none SSID pattern is set.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSpecifierBuilderWithMatchNoneSsidPattern2() {
+        new WifiNetworkConfigBuilder()
+                .setSsid("")
+                .buildNetworkSpecifier();
+    }
+
+    /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
      * when match-none BSSID pattern is set.
      */
     @Test(expected = IllegalStateException.class)
-    public void testWifiNetworkSpecifierBuilderWithMatchNoneBssidPattern() {
+    public void testWifiNetworkSpecifierBuilderWithMatchNoneBssidPattern1() {
         new WifiNetworkConfigBuilder()
                 .setBssidPattern(MacAddress.BROADCAST_ADDRESS, MacAddress.BROADCAST_ADDRESS)
                 .buildNetworkSpecifier();
@@ -262,6 +274,28 @@
 
     /**
      * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
+     * when match-none BSSID pattern is set.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSpecifierBuilderWithMatchNoneBssidPattern2() {
+        new WifiNetworkConfigBuilder()
+                .setBssid(MacAddress.BROADCAST_ADDRESS)
+                .buildNetworkSpecifier();
+    }
+
+    /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
+     * when match-none BSSID pattern is set.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSpecifierBuilderWithMatchNoneBssidPattern3() {
+        new WifiNetworkConfigBuilder()
+                .setBssid(MacAddress.ALL_ZEROS_ADDRESS)
+                .buildNetworkSpecifier();
+    }
+
+    /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
      * when SSID pattern is set for hidden network.
      */
     @Test(expected = IllegalStateException.class)
@@ -275,15 +309,15 @@
 
     /**
      * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
-     * when both {@link WifiNetworkConfigBuilder#setPskPassphrase(String)} and
-     * {@link WifiNetworkConfigBuilder#setEnterpriseConfig(WifiEnterpriseConfig)} are invoked.
+     * when both {@link WifiNetworkConfigBuilder#setWpa2Passphrase(String)} and
+     * {@link WifiNetworkConfigBuilder#setWpa2EnterpriseConfig(WifiEnterpriseConfig)} are invoked.
      */
     @Test(expected = IllegalStateException.class)
-    public void testWifiNetworkSpecifierBuilderWithBothPskPassphraseAndEnterpriseConfig() {
+    public void testWifiNetworkSpecifierBuilderWithBothWpa2PasphraseAndEnterpriseConfig() {
         new WifiNetworkConfigBuilder()
                 .setSsidPattern(new PatternMatcher(TEST_SSID, PATTERN_LITERAL))
-                .setPskPassphrase(TEST_PRESHARED_KEY)
-                .setEnterpriseConfig(new WifiEnterpriseConfig())
+                .setWpa2Passphrase(TEST_PRESHARED_KEY)
+                .setWpa2EnterpriseConfig(new WifiEnterpriseConfig())
                 .buildNetworkSpecifier();
     }
 
@@ -375,10 +409,11 @@
      * app interaction and has a priority of zero set.
      */
     @Test
-    public void testWifiNetworkSuggestionBuilderForWpaEapNetworkWithPriorityAndReqAppInteraction() {
+    public void
+            testWifiNetworkSuggestionBuilderForWpa2EapNetworkWithPriorityAndReqAppInteraction() {
         WifiNetworkSuggestion suggestion = new WifiNetworkConfigBuilder()
                 .setSsid(TEST_SSID)
-                .setPskPassphrase(TEST_PRESHARED_KEY)
+                .setWpa2Passphrase(TEST_PRESHARED_KEY)
                 .setIsAppInteractionRequired()
                 .setPriority(0)
                 .buildNetworkSuggestion();
@@ -401,10 +436,11 @@
      * user interaction and is metered.
      */
     @Test
-    public void testWifiNetworkSuggestionBuilderForWpaPskNetworkWithMeteredAndReqUserInteraction() {
+    public void
+            testWifiNetworkSuggestionBuilderForWpa2PskNetworkWithMeteredAndReqUserInteraction() {
         WifiNetworkSuggestion suggestion = new WifiNetworkConfigBuilder()
                 .setSsid(TEST_SSID)
-                .setPskPassphrase(TEST_PRESHARED_KEY)
+                .setWpa2Passphrase(TEST_PRESHARED_KEY)
                 .setIsUserInteractionRequired()
                 .setIsMetered()
                 .buildNetworkSuggestion();
@@ -422,6 +458,76 @@
     }
 
     /**
+     * Validate correctness of WifiNetworkSuggestion object created by
+     * {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} for OWE network.
+     */
+    @Test
+    public void testWifiNetworkSuggestionBuilderForEnhancedOpenNetworkWithBssid() {
+        WifiNetworkSuggestion suggestion = new WifiNetworkConfigBuilder()
+                .setSsid(TEST_SSID)
+                .setBssid(MacAddress.fromString(TEST_BSSID))
+                .setIsEnhancedOpen()
+                .buildNetworkSuggestion();
+
+        assertEquals("\"" + TEST_SSID + "\"", suggestion.wifiConfiguration.SSID);
+        assertEquals(TEST_BSSID, suggestion.wifiConfiguration.BSSID);
+        assertTrue(suggestion.wifiConfiguration.allowedKeyManagement
+                .get(WifiConfiguration.KeyMgmt.OWE));
+        assertNull(suggestion.wifiConfiguration.preSharedKey);
+        assertTrue(suggestion.wifiConfiguration.requirePMF);
+    }
+
+    /**
+     * Validate correctness of WifiNetworkSuggestion object created by
+     * {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} for SAE network.
+     */
+    @Test
+    public void testWifiNetworkSuggestionBuilderForWpa3PskNetwork() {
+        WifiNetworkSuggestion suggestion = new WifiNetworkConfigBuilder()
+                .setSsid(TEST_SSID)
+                .setWpa3Passphrase(TEST_PRESHARED_KEY)
+                .buildNetworkSuggestion();
+
+        assertEquals("\"" + TEST_SSID + "\"", suggestion.wifiConfiguration.SSID);
+        assertTrue(suggestion.wifiConfiguration.allowedKeyManagement
+                .get(WifiConfiguration.KeyMgmt.SAE));
+        assertEquals("\"" + TEST_PRESHARED_KEY + "\"",
+                suggestion.wifiConfiguration.preSharedKey);
+        assertTrue(suggestion.wifiConfiguration.requirePMF);
+    }
+
+
+    /**
+     * Validate correctness of WifiNetworkSuggestion object created by
+     * {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} for SuiteB network.
+     */
+    @Test
+    public void testWifiNetworkSuggestionBuilderForWpa3EapNetwork() {
+        WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
+        enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.TLS);
+        enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.GTC);
+
+        WifiNetworkSuggestion suggestion = new WifiNetworkConfigBuilder()
+                .setSsid(TEST_SSID)
+                .setWpa3EnterpriseConfig(enterpriseConfig)
+                .buildNetworkSuggestion();
+
+        assertEquals("\"" + TEST_SSID + "\"", suggestion.wifiConfiguration.SSID);
+        assertTrue(suggestion.wifiConfiguration.allowedKeyManagement
+                .get(WifiConfiguration.KeyMgmt.SUITE_B_192));
+        assertTrue(suggestion.wifiConfiguration.allowedGroupCiphers
+                .get(WifiConfiguration.GroupCipher.GCMP_256));
+        assertTrue(suggestion.wifiConfiguration.allowedGroupMgmtCiphers
+                .get(WifiConfiguration.GroupMgmtCipher.BIP_GMAC_256));
+        assertTrue(suggestion.wifiConfiguration.allowedSuiteBCiphers
+                .get(WifiConfiguration.SuiteBCipher.ECDHE_ECDSA));
+        assertTrue(suggestion.wifiConfiguration.allowedSuiteBCiphers
+                .get(WifiConfiguration.SuiteBCipher.ECDHE_RSA));
+        assertTrue(suggestion.wifiConfiguration.requirePMF);
+        assertNull(suggestion.wifiConfiguration.preSharedKey);
+    }
+
+    /**
      * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} throws an exception
      * when {@link WifiNetworkConfigBuilder#setSsidPattern(PatternMatcher)} is set.
      */
@@ -434,7 +540,7 @@
 
     /**
      * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} throws an exception
-     * when {@link WifiNetworkConfigBuilder#setBssid(MacAddress)} is set.
+     * when {@link WifiNetworkConfigBuilder#setBssidPattern(MacAddress, MacAddress)} is set.
      */
     @Test(expected = IllegalStateException.class)
     public void testWifiNetworkSuggestionBuilderWithBssidPattern() {
@@ -447,18 +553,6 @@
 
     /**
      * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} throws an exception
-     * when {@link WifiNetworkConfigBuilder#setBssidPattern(MacAddress, MacAddress)} is set.
-     */
-    @Test(expected = IllegalStateException.class)
-    public void testWifiNetworkSuggestionBuilderWithBssid() {
-        new WifiNetworkConfigBuilder()
-                .setSsid(TEST_SSID)
-                .setBssid(MacAddress.fromString(TEST_BSSID))
-                .buildNetworkSuggestion();
-    }
-
-    /**
-     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} throws an exception
      * when {@link WifiNetworkConfigBuilder#setSsid(String)} is not set.
      */
     @Test(expected = IllegalStateException.class)
@@ -468,6 +562,41 @@
     }
 
     /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} throws an exception
+     * when {@link WifiNetworkConfigBuilder#setSsid(String)} is invoked with an invalid value.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSuggestionBuilderWithInvalidSsid() {
+        new WifiNetworkConfigBuilder()
+                .setSsid("")
+                .buildNetworkSuggestion();
+    }
+
+    /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} throws an exception
+     * when {@link WifiNetworkConfigBuilder#setBssid(MacAddress)} is invoked with an invalid value.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSuggestionBuilderWithInvalidBroadcastBssid() {
+        new WifiNetworkConfigBuilder()
+                .setSsid(TEST_SSID)
+                .setBssid(MacAddress.BROADCAST_ADDRESS)
+                .buildNetworkSuggestion();
+    }
+
+    /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSuggestion()} throws an exception
+     * when {@link WifiNetworkConfigBuilder#setBssid(MacAddress)} is invoked with an invalid value.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSuggestionBuilderWithInvalidAllZeroBssid() {
+        new WifiNetworkConfigBuilder()
+                .setSsid(TEST_SSID)
+                .setBssid(MacAddress.ALL_ZEROS_ADDRESS)
+                .buildNetworkSuggestion();
+    }
+
+    /**
      * Ensure {@link WifiNetworkConfigBuilder#setPriority(int)} throws an exception
      * when the value is negative.
      */
@@ -478,4 +607,46 @@
                 .setPriority(-1)
                 .buildNetworkSuggestion();
     }
+
+    /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
+     * when both {@link WifiNetworkConfigBuilder#setWpa2Passphrase(String)} and
+     * {@link WifiNetworkConfigBuilder#setWpa3Passphrase(String)} are invoked.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSpecifierBuilderWithBothWpa2PasphraseAndWpa3Passphrase() {
+        new WifiNetworkConfigBuilder()
+                .setSsidPattern(new PatternMatcher(TEST_SSID, PATTERN_LITERAL))
+                .setWpa2Passphrase(TEST_PRESHARED_KEY)
+                .setWpa3Passphrase(TEST_PRESHARED_KEY)
+                .buildNetworkSpecifier();
+    }
+
+    /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
+     * when both {@link WifiNetworkConfigBuilder#setWpa3Passphrase(String)} and
+     * {@link WifiNetworkConfigBuilder#setWpa3EnterpriseConfig(WifiEnterpriseConfig)} are invoked.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSpecifierBuilderWithBothWpa3PasphraseAndEnterprise() {
+        new WifiNetworkConfigBuilder()
+                .setSsidPattern(new PatternMatcher(TEST_SSID, PATTERN_LITERAL))
+                .setWpa3Passphrase(TEST_PRESHARED_KEY)
+                .setWpa3EnterpriseConfig(new WifiEnterpriseConfig())
+                .buildNetworkSpecifier();
+    }
+
+    /**
+     * Ensure {@link WifiNetworkConfigBuilder#buildNetworkSpecifier()} throws an exception
+     * when both {@link WifiNetworkConfigBuilder#setWpa3Passphrase(String)} and
+     * {@link WifiNetworkConfigBuilder#setIsEnhancedOpen(} are invoked.
+     */
+    @Test(expected = IllegalStateException.class)
+    public void testWifiNetworkSpecifierBuilderWithBothWpa3PasphraseAndEnhancedOpen() {
+        new WifiNetworkConfigBuilder()
+                .setSsidPattern(new PatternMatcher(TEST_SSID, PATTERN_LITERAL))
+                .setWpa3Passphrase(TEST_PRESHARED_KEY)
+                .setIsEnhancedOpen()
+                .buildNetworkSpecifier();
+    }
 }
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
index 6bab60d..5cc8217 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
@@ -29,6 +29,7 @@
 @SmallTest
 public class WifiNetworkSuggestionTest {
     private static final String TEST_SSID = "\"Test123\"";
+    private static final String TEST_BSSID = "12:12:12:12:12:12";
     private static final String TEST_SSID_1 = "\"Test1234\"";
 
     /**
@@ -38,6 +39,7 @@
     public void testWifiNetworkSuggestionParcel() {
         WifiConfiguration configuration = new WifiConfiguration();
         configuration.SSID = TEST_SSID;
+        configuration.BSSID = TEST_BSSID;
         configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
         WifiNetworkSuggestion suggestion =
                 new WifiNetworkSuggestion(configuration, false, true, 0);
@@ -65,18 +67,20 @@
 
     /**
      * Check NetworkSuggestion equals returns {@code true} for 2 network suggestions with the same
-     * SSID, key mgmt and UID.
+     * SSID, BSSID, key mgmt and UID.
      */
     @Test
     public void testWifiNetworkSuggestionEqualsSame() {
         WifiConfiguration configuration = new WifiConfiguration();
         configuration.SSID = TEST_SSID;
+        configuration.BSSID = TEST_BSSID;
         configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
         WifiNetworkSuggestion suggestion =
                 new WifiNetworkSuggestion(configuration, true, false, 0);
 
         WifiConfiguration configuration1 = new WifiConfiguration();
         configuration1.SSID = TEST_SSID;
+        configuration1.BSSID = TEST_BSSID;
         configuration1.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
         WifiNetworkSuggestion suggestion1 =
                 new WifiNetworkSuggestion(configuration1, false, true, 0);
@@ -86,7 +90,7 @@
 
     /**
      * Check NetworkSuggestion equals returns {@code false} for 2 network suggestions with the same
-     * key mgmt and UID, but different SSID.
+     * BSSID, key mgmt and UID, but different SSID.
      */
     @Test
     public void testWifiNetworkSuggestionEqualsFailsWhenSsidIsDifferent() {
@@ -107,7 +111,29 @@
 
     /**
      * Check NetworkSuggestion equals returns {@code false} for 2 network suggestions with the same
-     * SSID and UID, but different key mgmt.
+     * SSID, key mgmt and UID, but different BSSID.
+     */
+    @Test
+    public void testWifiNetworkSuggestionEqualsFailsWhenBssidIsDifferent() {
+        WifiConfiguration configuration = new WifiConfiguration();
+        configuration.SSID = TEST_SSID;
+        configuration.BSSID = TEST_BSSID;
+        configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
+        WifiNetworkSuggestion suggestion =
+                new WifiNetworkSuggestion(configuration, false, false, 0);
+
+        WifiConfiguration configuration1 = new WifiConfiguration();
+        configuration1.SSID = TEST_SSID;
+        configuration1.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
+        WifiNetworkSuggestion suggestion1 =
+                new WifiNetworkSuggestion(configuration1, false, false, 0);
+
+        assertNotEquals(suggestion, suggestion1);
+    }
+
+    /**
+     * Check NetworkSuggestion equals returns {@code false} for 2 network suggestions with the same
+     * SSID, BSSID and UID, but different key mgmt.
      */
     @Test
     public void testWifiNetworkSuggestionEqualsFailsWhenKeyMgmtIsDifferent() {
@@ -128,7 +154,7 @@
 
     /**
      * Check NetworkSuggestion equals returns {@code false} for 2 network suggestions with the same
-     * SSID and key mgmt, but different UID.
+     * SSID, BSSID and key mgmt, but different UID.
      */
     @Test
     public void testWifiNetworkSuggestionEqualsFailsWhenUidIsDifferent() {